存儲器,I/O端口,寄存器

分析這幾個容易混淆的概念. 引用一段資料: 幾乎每一種外設都是通過讀寫設備上的寄存器來進行操作的。外設寄存器也稱爲“I/O端口”,通常包括:控制寄存器、狀態寄存器和數據寄存器三大類,而且一個外設的寄存器通常被連續地編址。CPU對外設IO端口物理地址的編址方式有兩種:一種是I/O映射方式(I/O-mapped),另一種是內存映射方式(Memory-mapped)。具體採用哪一種則取決於CPU的體系結構。   有些體系結構的CPU(如PowerPC、m68k等)通常只實現一個物理地址空間(RAM)。在這種情況下,外設I/O端口的物理地址就被映射到CPU的單一物理地址空間中,而成爲內存的一部分。此時,CPU可以象訪問一個內存單元那樣訪問外設I/O端口,而不需要設立專門的外設I/O指令。這就是所謂的“內存映射方式”(Memory-mapped)。主要缺點是是存儲器空間變小.   而另外一些體系結構的CPU(如X86)則爲外設專門實現了一個單獨地地址空間,稱爲“I/O地址空間”或者“I/O端口空間”。這是一個與CPU的RAM物理地址空間不同的地址空間,所有外設的I/O端口均在這一空間中進行編址。CPU通過設立專門的I/O指令(如X86的IN和OUT指令)來訪問這一空間中的地址單元(也即I/O端口)。這就是所謂的“I/O映射方式”(I/O-mapped)。與RAM物理地址空間相比,I/O地址空間通常都比較小,如x86 CPU的I/O空間就只有64KB(0-0xffff)。這是“I/O映射方式”的一個主要缺點。 在張凡的<微機原理與接口技術>一書中提到的I/O端口的兩種編址方式:(1)I/O與存儲器統一編址(如單片機);(2)單獨編址(X86系統).這和上述的內存映射方式,I/O映射方式分別對應. 我的理解是:寄存器就是I/O端口;而採用內存映射方式的I/O是存儲器的一個子集,採用I/O單獨映射方式的I/O是和存儲器平級的存儲空間. 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章