我只是想知道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. DMA和內存映射IO之間有什麼區別?
- 2. IO完成端口和OpenSSL
- 3. 反應調度器io和計算之間的區別?
- 4. 網絡端口IO
- 5. 非主線程中的async io和do io有什麼區別?
- 6. 澄清誰決定內存映射和端口IO映射
- 7. maven dependencies org.apache.commons:commons-io和commons-io:commons-io有什麼區別?
- 8. x86 IO映射IO端口保護和DOS擴展
- 9. 流星和插座IO端口
- 10. 高內存和高內存區域之間的區別
- 11. Perl的IO和Java IO
- 12. .NET如何使用IO線程或IO完成端口?
- 13. 「內存緩存」和「內存池」之間的區別
- 14. Win32 IO完成端口和同步出現的IO會發生什麼?
- 15. 文件IO和緩衝區
- 16. AVR IO端口不能是全局的
- 17. 使用O_DIRECT與IO內存
- 18. IO完成端口:WSARecv()如何工作?
- 19. c#並行IO完成端口
- 20. 爲Mac OS X IO完成端口
- 21. 內存競技場和內存池之間有什麼區別?
- 22. MQTT中端口和偵聽器之間的區別
- 23. 端口號和套接字之間的區別
- 24. OpenCL - 緩衝區和全局內存之間的區別
- 25. 會話和緩存之間的區別
- 26. 內核加載地址和入口點之間的區別
- 27. Scalaz中的Task和IO有什麼區別?
- 28. IIS 7和ASP.NET MVC客戶端緩存之間的區別
- 29. IO字符串和IO數據類型
- 30. 內存映射的IO概念細節