我只是想知道I/O端口和I/O內存之間的區別,因爲我很困惑。如果有人解釋它的使用,那會很好。我的意思是,當I/O端口是首選的,並且I/O存儲器是首選的時候。I/O端口和I/O內存之間的區別
8
A
回答
10
有存儲區域和I/O區域之間沒有概念上的差異:兩者都被通過地址總線和控制總線
上斷言電信號雖然一些CPU製造商在他們的芯片實現單個地址空間訪問,其他人則認爲外圍設備與內存不同,因此需要單獨的地址空間。某些處理器(最着名的是x86系列)具有獨立的讀寫電線,用於I/O端口和用於訪問端口的特殊CPU指令。
Linux在所有運行的計算機平臺上實現I/O端口的概念,即使在CPU實現單個地址空間的平臺上。端口訪問的實現有時取決於主機的具體品牌和型號(因爲不同的型號使用不同的芯片組來將總線事務映射到內存地址空間中)。
即使外圍總線有一個獨立的I/O端口地址空間,並非所有設備都將其寄存器映射到I/O端口。儘管ISA外設板使用I/O端口很常見,但大多數PCI設備都將寄存器映射到內存地址區域。這種I/O內存方法通常是首選,因爲它不需要使用專用處理器指令; CPU內核訪問內存的效率更高,編譯器在訪問內存時具有更多的寄存器分配和尋址模式選擇自由。
相關問題
- 1. IO-APIC-connector和IO-APIC-edge之間的區別
- 2. DMA和內存映射IO之間有什麼區別?
- 3. IO完成端口和OpenSSL
- 4. 反應調度器io和計算之間的區別?
- 5. 內存緩衝區和IO操作
- 6. 網絡端口IO
- 7. 非主線程中的async io和do io有什麼區別?
- 8. 澄清誰決定內存映射和端口IO映射
- 9. maven dependencies org.apache.commons:commons-io和commons-io:commons-io有什麼區別?
- 10. 阻止IO和While 1的區別?
- 11. x86 IO映射IO端口保護和DOS擴展
- 12. Keen IO - 如何找到兩個Keen.Series之間的區別
- 13. Lua中隱式和顯式io名稱空間函數之間的區別
- 14. VESA通過IO /端口
- 15. haskell io流內存
- 16. 流星和插座IO端口
- 17. 遺留在傳統C++ IO庫和標準IO庫之間
- 18. 高內存和高內存區域之間的區別
- 19. 內核編程中互斥和阻塞IO的區別?
- 20. 重新分配和重新打開Ruby IO流之間的區別
- 21. Perl的IO和Java IO
- 22. .NET如何使用IO線程或IO完成端口?
- 23. 「內存緩存」和「內存池」之間的區別
- 24. Win32 IO完成端口和同步出現的IO會發生什麼?
- 25. 文件IO和緩衝區
- 26. AVR IO端口不能是全局的
- 27. OpenCL:__constant內存和const之間的區別__global內存
- 28. Haskell內存使用情況和IO
- 29. C++ IO流sync_with_stdio沒有區別
- 30. 窗口和ViewController之間的區別