IO

◦IN和OUT的簡稱,CPU需要從內存中提取數據來運算,運算完送回內存,或者直接將電信號發向一些針腳以操作外部設備;
◦IN:從內存提取數據。
◦OUT:運算完放回內存或者直接發送到某些其他針腳。
◦對磁盤來說:
◦IN:寫入磁盤
◦OUT:從磁盤讀
 
•現代計算機:IO是通過共享一條總線來實現的; 
•總線:一條或多條物理上的導線,這條總線是共享的。但工作模式是全單工。 
◦通過仲裁總線或者中斷總線上給出的信號來判斷當時總線可以有哪個部件使用;
◦產生仲裁總線或者中斷電位的可以是CPU,也可以是總線上的其他設備;
◦cpu要向某個設備做輸出操作,就由cpu做主動中斷;
◦如果某個設備請求向cpu發送信號,則由這個設備來主動產生中斷信號來通知cpu;
◦cpu運行os內核的設備管理程序,產生這些信號。
 
•主板上的設備都是通過總線連接的,總線的數量可以是8,16,32,64,128。
◦因爲都放在一起會產生干擾,所以將這些導線印刷到不同的電路板上(PCB),板與板之間的信號屏蔽性很好,不會產生干擾。
•導線:
◦數據總線:交互數據
◦控制總線:交互傳遞控制信號
◦中斷總線:中斷與仲裁使用
◦地址總線:確認通信時的目標設備
•總線位寬:用數據總線的條數來確定位寬,例如32位PCI總線,表明有32根導線用戶傳輸數據信號。
•CPU位數:根據內部寄存器與運算單元之間的總線數據來確定
•PCI總線
◦分時複用的,如此做的好處:①節省插件的管腳數目②便於實現突發數據傳輸
◦中斷共享:不同設備可以使用同一中斷而不發生衝突
 
•網絡
◦將所有要通信的節點連接起來,然後找到目標,發送數據
◦連,找,發
■連:HUB總線、以太網交換、電話交換、無線、直連、中轉;
■找:通過地址尋找。例如TCP/IP,其他各種地址也都映射成IP地址,例如MAC到IP的映射、FR中的DLCI到IP的映射、ATM到IP的映射。
■發:發送數據(網絡層),依靠上層的傳輸層來保障數據的可靠性。發什麼數據,數據是什麼格式,不是網絡層關心的,是應用層的東西。
•系統總線/前端總線:
◦CPU與北橋連接的總線
◦和CPU自身的頻率不同
■總線頻率是CPU向外部存取數據時的數據傳輸速度;(現在的前端總線已經達到1600MHz)
■CPU自身頻率是CPU運算時電路產生的頻率;(3GHz)
◦前段總線的條數就是總線位數,例如64或者128條。與CPU位數不同
■CPU位數:寄存器與運算單元之間總線的條數;
•內存總線:內存與北橋連接的總線
•南橋:IO總線速度相對北橋速度太慢,所以北橋和IO總線之間,會增加一個南橋
 
•CPU和磁盤通信
◦兩個節點之間,通過電路通信(物理層)
•計算機總線是沒有鏈路層的:
◦因爲這些節點之間太短了,非常穩定,無需鏈路層的司機來判斷交通規則;
◦計算機總線網絡只有物理層,網絡層和上三層;
 
•CPU與磁盤通信的過程:
◦連:已經通過總線連接了
◦找:每個IO設備在啓動時都會向內存中映射一個或者多個地址,又叫做IO端口(8位長)
■針對這個地址的數據,都被北橋芯片重定向到總線上的實際設備上。
◦發:
■CPU將IO地址放在系統總線上,北橋接收到之後,會等待CPU發送第一個針對這個外設的指令。然後CPU發送如下3條指令
■第一條:到底是讀還是寫,同時包含了其他選項,例如操作完成時是否用中斷來通知CPU處理,是否啓用磁盤緩存等;
■第二條:指定應該讀取的硬盤邏輯塊號(LBA)。讀/寫在哪裏;
■第三條:讀取出來的內容應該存放在內存中的哪個地址中;
■這3條指令被北橋依次發送給IO總線上的磁盤控制器來執行
■磁盤控制器會依照這3條指令完成操作:
■第一條指定讀還是寫操作,指定完成是否發中斷,是否啓用磁盤緩存等,然後磁盤控制器會繼續等待下一條指令。
■第二條的1個LBA可能會對應多個扇區,找到LBA後,控制器驅動磁頭尋到,等盤體旋轉到對應扇區後,磁頭開始讀取數據。
■磁頭讀取數據的同時,磁盤控制器會接收到第三條指令,也就是CPU給出的數據應該存放在內存中的地址。有了這個地址,數據讀出後直接通過DMA技術(磁盤控制器可以直接對內存尋址並執行寫操作而不經過CPU)
■數據存到內存後,cpu從內存中取數據,進行運算
•CPU給磁盤發指令的定義:
◦實際上這些指令是發給主板南橋上集成的(或者是通過PCI接入IO總線)控制器,例如ATA或者SCSI控制器。
◦然後控制器再向磁盤發出一系列的指令,讓磁盤讀取或者寫入某個磁盤,扇區等。
◦CPU不用知道這些,只需要知道LBA是讀還是寫就可以了。
◦讓CPU產生這些信號的是磁盤控制器驅動程序。
•磁盤控制器對磁盤的指令:
◦ATA指令集
◦SCSI指令集
◦指令集=協議=語言:讓通信雙方知道對方傳過來的bit流裏面到底包括什麼。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章