計算機組織與結構 - 效能設計
-
Upload
edan-velazquez -
Category
Documents
-
view
107 -
download
3
description
Transcript of 計算機組織與結構 - 效能設計
![Page 1: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/1.jpg)
計算機組織與結構 - 效能設計
第七章I/O ( 輸入 / 輸出 )
1
![Page 2: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/2.jpg)
I/O(Input-Output) I/O 通常包含 I/O 模組和外部設備 外部設備 : 各種不同的週邊裝置
使用不同的速度 使用不同的格式 傳送不等量的資料
I/O 模組:外部設備需要 I/O 模組,連接到系統 然而,相對 CPU 和 RAM 而言, I/O 的速度很慢
2
![Page 3: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/3.jpg)
7.1 外部設備人類可讀設備
比如:螢幕、印表機、鍵盤…等 機器可讀設備
比如:磁碟、磁帶通訊設備
比如:數據機、網路介面卡 (NIC)
3
![Page 4: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/4.jpg)
4
外部設備方塊圖
![Page 5: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/5.jpg)
5
I/O 資料傳輸過程 處理器詢問 I/O 模組,以了解外部設備的狀態。 I/O 模組傳回外部設備的狀態。 如果外部設備處於運轉狀態,而且已經準備好傳送資料,則處理器會對 I/O 模組發出命令,要求進行資料的傳輸。
I/O 模組會由外部設備取得一個單位的資料。 該筆資料由 I/O 模組傳送到處理器內。
![Page 6: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/6.jpg)
7.2 I/O 模組 CPU( 記憶體 ) 和週邊裝置之間的介面一個 I/O 模組可以連接多個週邊裝置
6
![Page 7: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/7.jpg)
7
I/O 模組模型
![Page 8: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/8.jpg)
8
I/O 模組功能控制和時序 CPU 通訊設備通訊資料緩衝錯誤偵測
![Page 9: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/9.jpg)
9
I/O 模組方塊圖
![Page 10: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/10.jpg)
I/O 主要技術程式 I/O中斷 I/O DMA ( 直接記憶體存取 )
10
![Page 11: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/11.jpg)
11
I/O 主要技術流程圖(a) 程式 I/O (b) 中斷 I/O (c)DMA
![Page 12: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/12.jpg)
7.3 程式 I/O (Programmed I/O) 程式 I/O 就是軟體 I/O 、輪詢 I/O CPU 執行程式來直接控制 I/O 動作
感測狀態 讀寫命令 傳送資料
通常 CPU 必須等待 I/O 的回應,可惜 I/O 很慢,往往需要時間才有能力回答 CPU 的詢問,因此,很浪費 CPU 時間
12
![Page 13: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/13.jpg)
13
程式 I/O 運作程序 CPU 請求 I/O 動作
定址 I/O 模組 發佈 I/O 命令
I/O 模組開始動作 I/O 模組設定狀態位元 CPU 定期地檢查狀態位元 請注意:
I/O 模組不會主動通知 CPU I/O 模組也不會中斷 CPU I/O 慢速, CPU 必須等待
![Page 14: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/14.jpg)
14
定址 I/O 模組記憶體對映 I/O
設備和記憶體共用相同的位址空間 I/O 讀寫方式就像記憶體的讀寫方式 沒有特殊 I/O 指令,使用記憶體指令即可存取
隔離式 I/O 分開成不同的位址空間 要先選擇 I/O 或記憶體 使用特殊的 I/O 指令,但所提供的相關指令通常不多
![Page 15: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/15.jpg)
15
發佈 I/O 命令控制命令 - 用來啟動某個週邊裝置,指示動作 比如:旋轉磁片
測試命令 - 用來測試與 I/O 模組和週邊裝置的狀態 比如:電源?錯誤?
讀寫命令 - 經由設備彼此傳輸資料 類似記憶體存取
![Page 16: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/16.jpg)
7.4 中斷驅動 I/O克服 CPU 的等待問題 CPU 不必重複地檢查設備等到 I/O 內部動作完成, I/O 會主動對 CPU發出中斷要求
16
![Page 17: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/17.jpg)
17
中斷 I/O 動作方式 CPU 發佈 I/O 模組的讀取命令然後, CPU 繼續執行其它工作同時, I/O 模組開始從週邊裝置取得資料等到 I/O 模組取得所有的資料後,中斷
CPU CPU 暫停其它工作,再對 I/O 模組請求資料
最後, I/O 模組把所有的資料傳輸給 CPU
![Page 18: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/18.jpg)
18
重新以 CPU 觀點來看中斷 I/O CPU 發佈讀取命令不管 I/O 模組,轉而執行其它工作在每個指令週期尾,檢查使否有中斷要求如果有中斷要求的話
儲存某些可能會被中斷破壞的內容 ( 暫存器 ) 執行中斷處理程序,以擷取資料和儲存資料
![Page 19: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/19.jpg)
19
中斷處理程序
![Page 20: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/20.jpg)
20
中斷設計主題如何辨識是那個 I/O 模組發出中斷要求?同時發生數個中斷要求時,該優先執行哪一個中斷處理程序?
![Page 21: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/21.jpg)
21
辨識誰發出中斷要求? (1)
多重中斷線路 有幾個 I/O 模組,就給幾條中斷線路 I/O 設備數目會受到限制
軟體輪詢 CPU 依序輪流詢問每個模組 很慢
![Page 22: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/22.jpg)
22
辨識誰發出中斷要求? (2)
菊花鏈 ( 硬體輪詢 ) I/O 模組以向量方式串接一起 CPU 送出中斷認可到鏈結線路上 發出中斷要求的 I/O 模組,會指出向量位址指標,指向其中斷服務常式
匯流排仲裁 使用中斷之前,必須先取得匯流排控制權 比如: PCI & SCSI
![Page 23: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/23.jpg)
23
中斷優先順序以上各種中斷有各自的優先順序高優先權可以中斷較低優先權
![Page 24: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/24.jpg)
24
8259A 中斷控制器 80x86 有一條中斷線 80x86 採用 8259A 中斷控制器,擴充中斷線
8259A 可直接外接八條中斷線
![Page 25: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/25.jpg)
25
8259A 中斷事件順序 8259A 接收中斷要求 8259A 決定優先順序 8259A 通知 8086 ( 拉起 INTR 線 ) CPU 發出認可訊號 8259A 在資料匯流排上,置放正確的中斷向量位址
CPU 開始進行中斷
![Page 26: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/26.jpg)
26
串接的 8259A可以把兩個 8259A 直接串接起來經由 IR2 串接起這兩個 8259A因此,總共可外接 15 個中斷線目前常把這些 8259A 合併到晶片組內
![Page 27: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/27.jpg)
27
串接的 8259A 結構圖
![Page 28: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/28.jpg)
28
Intel 82C55A 可程式週邊介面
![Page 29: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/29.jpg)
29
使用 82C55A 控制鍵盤 / 顯示器
![Page 30: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/30.jpg)
DMA( 直接記憶體存取 )中斷 I/O 和程式 I/O 仍然需要 CPU 中介
傳輸速度受限 CPU 仍需管理資料傳輸過程
DMA 是比較好的解答
30
![Page 31: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/31.jpg)
31
DMA 功能在匯流排上,加入 DMA 控制器 DMA 控制器的功能類似 CPU 中介資料傳輸的角色,直接存取記憶體,而不再依賴CPU
![Page 32: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/32.jpg)
32
DMA 方塊圖
![Page 33: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/33.jpg)
33
DMA 動作方式 CPU 會告知 DMA 控制器執行以下訊息 :
讀取 / 寫入 設備位址 資料記憶體區塊的啟始位址 傳輸資料區塊大小
然後, CPU 轉而執行其它工作 DMA 控制器開始接手資料傳輸工作 確定整個傳輸結束後, DMA 控制器才送出中斷給 CPU
![Page 34: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/34.jpg)
34
DMA 傳輸的週期匯流排偷削技術 DMA 必須等 CPU 不用系統匯流排時,才可以使用。 或者, 可以在處理器使用系統匯流排時,強迫 CPU 暫停一個週
期,讓 DMA 控制器取得暫時的匯流排控制權 通常會在運算元、資料擷取、資料寫入週期之前 DMA 一次傳輸一字組資料 這種方法稱為匯流排偷削 (Cycle stealing) 技術 偷削技術仍會降低處理器的執行效率 ( 但相對影響較輕 )
DMA 並非中斷,因為 CPU 並沒有切換去執行其它工作
![Page 35: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/35.jpg)
35
DMA 組態 (1)
單一匯流排 , 分離式 DMA 控制器每次傳輸總是使用兩個匯流排週期
I/O - DMA , DMA- 記憶體 CPU 會被暫停兩次
![Page 36: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/36.jpg)
36
DMA 組態 (2)
單一匯流排,整合型 DMA 控制器 控制器可以支援多個設備 每次傳輸使用一個匯流排週期
DMA - memory
CPU 被暫停一次
![Page 37: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/37.jpg)
37
DMA 組態 (3)
在 DMA 下,使用 I/O 匯流排連接所有 I/O 模組 每個傳輸使用一次匯流排週期
DMA - memory CPU 被暫停一次
![Page 38: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/38.jpg)
38
Intel 8237A DMA 控制器
![Page 39: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/39.jpg)
39
DMA 模組把記憶體資料區塊轉移給磁碟 週邊裝置(比如:磁碟控制器)將會把 DREQ ( DMA request)訊號拉升,請求 DMA 服務。
DMA 會把 HRQ ( hold request)變成 high ,藉由 HOLD 訊號,通知 CPU它需要使用匯流排。
CPU 會結束目前匯流排週期,把 HLDA變成 high ,來回應 DMA請求,並且允許 8237 DMA 使用匯流排,來執行任務,當 DMA 正在執行任務時, HOLD 必須一直保留該請求狀態。
DMA 啟用 DACK ( DMA acknowledge)訊號,告訴週邊裝置,它要開始轉移資料。
DMA 會把區塊第一個位元組位址放在位址匯流排上,開始把記憶體的資料轉移到週邊裝置,並且啟動 MEMR 來讀取記憶體的位元組進入資料匯流排;然後,啟動 IOW將資料寫入週邊裝置。最後 DMA遞減計數器,增加位址指標,不斷地重複這個程序…,直到計數器歸零,整個任務結束。
DMA 結束任務,關閉 HRQ ,通知 CPU ,歸還匯流排控制權, CPU再度重新掌控匯流排。
![Page 40: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/40.jpg)
7.6 I/O 通道和 I/O 處理器由於, I/O 設備日趨複雜 ( 比如: 3D影像卡 )因此, CPU 指揮所有 I/O 模組進行傳輸的過程,也愈來愈複雜。
I/O 通道把程式執行能力加入 I/O 模組中。使得 I/O 控制器可以自行執行 I/O 傳輸作業,
讓 CPU 不再涉及這些細節。 I/O 通道好處在於:改善速度、減輕 CPU負擔。
40
![Page 41: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/41.jpg)
41
I/O 通道結構
![Page 42: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/42.jpg)
7.7 外部介面 : FireWire 和 InfiniBand 介面連接設備
並列介面 ( 一次多位元傳輸 ) 串列介面 ( 一次一位元傳輸 )
並列介面技術必須注意平行線路之間的串音干擾。 高速串列介面出現後,並列介面變得愈來愈少! 比如: FireWire (火線串列匯流排) 比如: InfiniBand (無限頻寬)
42
![Page 43: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/43.jpg)
43
FireWire(火線串列匯流排 )火線又稱為 IEEE 1394是一種高效能的串列匯流排高速低成本容易實現常用於數位相機、 VCR 、和 TV
![Page 44: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/44.jpg)
44
火線組態菊花鏈組態單一埠最多可連結 63 個設備
實際上是 64 個設備,但須扣除介面該部設備藉由橋接器連接 1022 個火線匯流排 自動組態不需匯流排終端器不一定菊花鏈組態,也可以改用樹狀結構
![Page 45: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/45.jpg)
45
簡易火線組態
![Page 46: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/46.jpg)
46
火線協定 (三層通訊 )實體層 (Physical layer)
定義傳輸媒介、媒介的電氣特性、和訊號特性連結層 (Link layer)
使用封包傳輸資料傳輸層 (Transaction layer)
“請求 -回應”協定
![Page 47: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/47.jpg)
47
火線協定堆疊
![Page 48: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/48.jpg)
48
火線 – 實體層資料傳輸率由 25 至 400Mbps兩種仲裁方式
樹狀結構基底根節點如同仲裁器 先到先服務 同時數個請求出現時,如何決定優先權等級?
何者較近根節點者優先公平仲裁緊急仲裁
![Page 49: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/49.jpg)
49
火線 – 連結層非同步傳輸
把數量不等的資料和數個位元組,以封包方式傳送
隱含位址 認可回覆
等時傳輸 把數量不等的資料,在固定的時間間隔內,分成固定大小的封包傳送
簡化的定址方式無認可回覆
![Page 50: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/50.jpg)
50
火線次動作
![Page 51: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/51.jpg)
51
InfiniBand(無限頻寬 )針對高階伺服器所發展的 I/O規格
合併”未來 I/O” (Cisco 、 HP 、 Compaq 、 IBM) 計畫成果
合併”新世代 I/O”(Intel) 計畫成果 2001年初發表 第一版描述:處理器和智慧型 I/O 設備之間的資料交換架構和規格
希望:能取代 PCI 在伺服器的地位更大容量、擴充度、彈性
![Page 52: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/52.jpg)
52
InfiniBand 結構 遠端儲存設備、網路設備、和互連設備 可以把伺服器、遠端儲存設備、網路設備等,連結到中央交換結構上
更大的伺服密度 資料存取中心 必要的話,可以隨時加入獨立的節點設備 I/O 到伺服器的距離
銅線可長達 17m 多模光纖可長達 300m 單模光纖可長達 10km
傳輸率高達 30Gbps
![Page 53: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/53.jpg)
53
InfiniBand交換結構
![Page 54: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/54.jpg)
54
InfiniBand 動作方式每個實體連結可以支援 16 個邏輯通道,稱為虛擬線道
保留一個線道作管理,其它線道則用來傳輸資料
以封包將資料串流傳送虛擬線道專注於節點到節點傳輸交換器則控制資料從進入線道到外出線道的整體交通
![Page 55: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/55.jpg)
55
InfiniBand協定堆疊
![Page 56: 計算機組織與結構 - 效能設計](https://reader035.fdocument.pub/reader035/viewer/2022081418/5681369a550346895d9e3591/html5/thumbnails/56.jpg)
本章結束李鴻鵬老師整理