- 計算機系統解密:從理解計算機到編寫高效代碼
- (美)喬納森·E.斯坦哈特
- 578字
- 2021-09-27 16:57:05
4.2 輸入輸出
一臺不能與外界通信的計算機用處有限,我們需要使用一些方法使計算機能夠與外界交換信息,即輸入輸出,簡稱I/O。與I/O相連接的設備叫作I/O設備。由于它們位于計算機的外圍,所以通常也被稱為外圍設備。
計算機過去有一個單獨的I/O通道,如圖4-5所示,類似于內存通道。過去計算機體積巨大時,這個通道是有意義的,因為它們沒有被擠壓在有限的電氣連接的小組件中。而且,內存通道不是很長,所以僅僅為了支持I/O而限制地址的數量是沒有意義的。

圖4-5 獨立的內存和I/O總線
由于32位和64位計算機的普及,內存通道比過去長很多。內存通道太長了,并不是通道中每個地址都有“房子”,空地也很多。換句話說,有些地址沒有與之相關聯的內存。因此,為I/O設備預留一部分內存通道更為合理,這就像城市邊緣的工業區。而且,當更多的電路被封裝進一個連接數量有限的組件中時,I/O和內存在同一總線上是有意義的。
許多計算機都設計了標準的輸入/輸出插槽,以便I/O設備可以以統一的方式與任一計算機連接。這有點像美國舊西部的財產分配方式,非法人領地被劃分為一系列的政府贈地,如圖4-6所示。每個插槽持有者都可以使用其邊界內的所有地址。通常每個插槽中都有一個特定的地址,地址中包含某種標識符,這樣“市中心”就可以進行統計普查,以確定每個插槽中“居住”的是誰。

圖4-6 共享的內存和I/O總線
如果用船運來比喻設備和I/O端口的關系,那設備就好像鉤在了I/O端口上。
推薦閱讀
- C#高級編程(第10版) C# 6 & .NET Core 1.0 (.NET開發經典名著)
- WildFly:New Features
- Practical Game Design
- Data Analysis with Stata
- 實戰Java高并發程序設計(第3版)
- JavaScript動態網頁開發詳解
- Kinect for Windows SDK Programming Guide
- Python忍者秘籍
- 運用后端技術處理業務邏輯(藍橋杯軟件大賽培訓教材-Java方向)
- 智能搜索和推薦系統:原理、算法與應用
- Vue.js 2 Web Development Projects
- 多模態數據分析:AGI時代的數據分析方法與實踐
- Building Business Websites with Squarespace 7(Second Edition)
- 大學計算機應用基礎(Windows 7+Office 2010)(IC3)
- 現代CPU性能分析與優化