软件中断如何与端口IN / OUT不同,

时间:2017-02-28 12:21:20

标签: cpu

我对端口映射和ISR感到困惑 因为我正在关注一篇文章,其中提到硬件端口映射到内存从0x00000000到0x000003FF 现在我们可以使用这些端口与该硬件的微控制器通信,不使用IN和OUT指令确定

但是什么是ivt然后意味着我读了ivt包含中断服务程序的地址  everthing被记在心里

当我们使用IN / OUTwith端口没有ivt中的cpu检查以及微控制器如何知道它们的数量

1 个答案:

答案 0 :(得分:0)

当硬件端口映射到内存位置时,这称为Memory-Mapped IO。 通过在寄存器中读/写数据/命令来访问硬件。在存储器映射IO中,cpu不是将数据/命令发送到硬件寄存器,而是在映射到硬件寄存器的特定存储器位置读/写信号/命令/数据。因此,硬件和CPU之间的通信是通过读/写到特定的内存位置进行的。

当为安装的硬件提供一组固定的内存位置以便存储器映射IO时,会记录这些内存位置。此外,每个硬件都有其ISR,其地址存储在IVT中。现在当特定硬件中断cpu时,cpu从IVT中找到中断硬件的ISR地址。一旦cpu识别出需要完成通信(I / O)的硬件,则它通过利用为该硬件分配的固定存储器位置,通过存储器映射IO与该硬件通信。