1 / 56

計算機組織與結構 - 效能設計

計算機組織與結構 - 效能設計. 第七章 I/O ( 輸入 / 輸出 ). I/O(Input-Output). I/O 通常包含 I/O 模組和外部設備 外部設備 : 各種不同的週邊裝置 使用不同的速度 使用不同的格式 傳送不等量的資料 I/O 模組:外部設備需要 I/O 模組,連接到系統 然而,相對 CPU 和 RAM 而言, I/O 的速度很慢. 7.1 外部設備. 人類可讀設備 比如:螢幕、印表機、鍵盤 … 等 機器可讀設備 比如:磁碟、磁帶 通訊設備 比如:數據機、網路介面卡 (NIC). 外部設備方塊圖. I/O 資料傳輸過程.

Download Presentation

計算機組織與結構 - 效能設計

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 計算機組織與結構-效能設計 第七章 I/O(輸入/輸出)

  2. I/O(Input-Output) • I/O通常包含I/O模組和外部設備 • 外部設備:各種不同的週邊裝置 • 使用不同的速度 • 使用不同的格式 • 傳送不等量的資料 • I/O模組:外部設備需要I/O模組,連接到系統 • 然而,相對CPU和RAM而言,I/O的速度很慢

  3. 7.1 外部設備 • 人類可讀設備 • 比如:螢幕、印表機、鍵盤…等 • 機器可讀設備 • 比如:磁碟、磁帶 • 通訊設備 • 比如:數據機、網路介面卡 (NIC)

  4. 外部設備方塊圖

  5. I/O資料傳輸過程 處理器詢問I/O模組,以了解外部設備的狀態。 I/O模組傳回外部設備的狀態。 如果外部設備處於運轉狀態,而且已經準備好傳送資料,則處理器會對I/O模組發出命令,要求進行資料的傳輸。 I/O模組會由外部設備取得一個單位的資料。 該筆資料由I/O模組傳送到處理器內。

  6. 7.2 I/O模組 • CPU(記憶體)和週邊裝置之間的介面 • 一個I/O模組可以連接多個週邊裝置

  7. I/O模組模型

  8. I/O模組功能 控制和時序 CPU通訊 設備通訊 資料緩衝 錯誤偵測

  9. I/O模組方塊圖

  10. I/O主要技術 • 程式I/O • 中斷I/O • DMA(直接記憶體存取)

  11. I/O主要技術流程圖 (a)程式I/O (b)中斷I/O (c)DMA

  12. 7.3 程式I/O (Programmed I/O) • 程式I/O就是軟體I/O、輪詢I/O • CPU執行程式來直接控制I/O動作 • 感測狀態 • 讀寫命令 • 傳送資料 • 通常CPU必須等待I/O的回應,可惜I/O很慢,往往需要時間才有能力回答CPU的詢問,因此,很浪費CPU時間

  13. 程式I/O運作程序 CPU請求I/O動作 定址I/O模組 發佈I/O命令 I/O模組開始動作 I/O模組設定狀態位元 CPU定期地檢查狀態位元 請注意: I/O模組不會主動通知CPU I/O模組也不會中斷CPU I/O慢速,CPU必須等待

  14. 定址I/O模組 記憶體對映I/O 設備和記憶體共用相同的位址空間 I/O讀寫方式就像記憶體的讀寫方式 沒有特殊I/O指令,使用記憶體指令即可存取 隔離式I/O 分開成不同的位址空間 要先選擇I/O或記憶體 使用特殊的I/O指令,但所提供的相關指令通常不多

  15. 發佈I/O命令 控制命令-用來啟動某個週邊裝置,指示動作 比如:旋轉磁片 測試命令-用來測試與I/O模組和週邊裝置的狀態 比如:電源?錯誤? 讀寫命令-經由設備彼此傳輸資料 類似記憶體存取

  16. 7.4 中斷驅動I/O • 克服CPU的等待問題 • CPU不必重複地檢查設備 • 等到I/O內部動作完成,I/O會主動對CPU發出中斷要求

  17. 中斷I/O 動作方式 CPU發佈I/O模組的讀取命令 然後,CPU繼續執行其它工作 同時,I/O模組開始從週邊裝置取得資料 等到I/O模組取得所有的資料後,中斷CPU CPU暫停其它工作,再對I/O模組請求資料 最後,I/O模組把所有的資料傳輸給CPU

  18. 重新以CPU觀點來看中斷I/O CPU發佈讀取命令 不管I/O模組,轉而執行其它工作 在每個指令週期尾,檢查使否有中斷要求 如果有中斷要求的話 儲存某些可能會被中斷破壞的內容(暫存器) 執行中斷處理程序,以擷取資料和儲存資料

  19. 中斷處理程序

  20. 中斷設計主題 如何辨識是那個I/O模組發出中斷要求? 同時發生數個中斷要求時,該優先執行哪一個中斷處理程序?

  21. 辨識誰發出中斷要求?(1) 多重中斷線路 有幾個I/O模組,就給幾條中斷線路 I/O設備數目會受到限制 軟體輪詢 CPU依序輪流詢問每個模組 很慢

  22. 辨識誰發出中斷要求?(2) 菊花鏈(硬體輪詢) I/O模組以向量方式串接一起 CPU送出中斷認可到鏈結線路上 發出中斷要求的I/O模組,會指出向量位址指標,指向其中斷服務常式 匯流排仲裁 使用中斷之前,必須先取得匯流排控制權 比如:PCI & SCSI

  23. 中斷優先順序 以上各種中斷有各自的優先順序 高優先權可以中斷較低優先權

  24. 8259A 中斷控制器 80x86有一條中斷線 80x86採用8259A中斷控制器,擴充中斷線 8259A可直接外接八條中斷線

  25. 8259A中斷事件順序 8259A接收中斷要求 8259A決定優先順序 8259A通知8086 (拉起INTR線) CPU發出認可訊號 8259A在資料匯流排上,置放正確的中斷向量位址 CPU開始進行中斷

  26. 串接的8259A 可以把兩個8259A直接串接起來 經由IR2串接起這兩個8259A 因此,總共可外接15個中斷線 目前常把這些8259A合併到晶片組內

  27. 串接的8259A結構圖

  28. Intel 82C55A可程式週邊介面

  29. 使用82C55A控制鍵盤/顯示器

  30. DMA(直接記憶體存取) • 中斷I/O和程式I/O仍然需要CPU中介 • 傳輸速度受限 • CPU仍需管理資料傳輸過程 • DMA是比較好的解答

  31. DMA功能 在匯流排上,加入DMA控制器 DMA控制器的功能類似CPU中介資料傳輸的角色,直接存取記憶體,而不再依賴CPU

  32. DMA方塊圖

  33. DMA動作方式 CPU會告知DMA控制器執行以下訊息: 讀取/寫入 設備位址 資料記憶體區塊的啟始位址 傳輸資料區塊大小 然後,CPU轉而執行其它工作 DMA控制器開始接手資料傳輸工作 確定整個傳輸結束後,DMA控制器才送出中斷給CPU

  34. DMA傳輸的週期匯流排偷削技術 DMA必須等CPU不用系統匯流排時,才可以使用。 或者, 可以在處理器使用系統匯流排時,強迫CPU暫停一個週期,讓DMA控制器取得暫時的匯流排控制權 通常會在運算元、資料擷取、資料寫入週期之前 DMA一次傳輸一字組資料 這種方法稱為匯流排偷削(Cycle stealing)技術 偷削技術仍會降低處理器的執行效率(但相對影響較輕) DMA並非中斷,因為CPU並沒有切換去執行其它工作

  35. DMA組態(1) 單一匯流排,分離式DMA控制器 每次傳輸總是使用兩個匯流排週期 I/O - DMA,DMA-記憶體 CPU會被暫停兩次

  36. DMA組態(2) 單一匯流排,整合型DMA控制器 控制器可以支援多個設備 每次傳輸使用一個匯流排週期 DMA - memory CPU被暫停一次

  37. DMA組態(3) 在DMA下,使用I/O匯流排連接所有I/O模組 每個傳輸使用一次匯流排週期 DMA - memory CPU被暫停一次

  38. Intel 8237A DMA控制器

  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再度重新掌控匯流排。

  40. 7.6 I/O通道和I/O處理器 • 由於,I/O設備日趨複雜(比如:3D影像卡) • 因此,CPU指揮所有I/O模組進行傳輸的過程,也愈來愈複雜。 • I/O通道把程式執行能力加入I/O模組中。 • 使得I/O控制器可以自行執行I/O傳輸作業,讓CPU不再涉及這些細節。 • I/O通道好處在於:改善速度、減輕CPU負擔。

  41. I/O通道結構

  42. 7.7 外部介面: FireWire和 InfiniBand • 介面連接設備 • 並列介面 (一次多位元傳輸) • 串列介面(一次一位元傳輸) • 並列介面技術必須注意平行線路之間的串音干擾。 • 高速串列介面出現後,並列介面變得愈來愈少! • 比如:FireWire(火線串列匯流排) • 比如:InfiniBand(無限頻寬)

  43. FireWire(火線串列匯流排) 火線又稱為IEEE 1394 是一種高效能的串列匯流排 高速 低成本 容易實現 常用於數位相機、 VCR、和 TV

  44. 火線組態 菊花鏈組態 單一埠最多可連結63個設備 實際上是64個設備,但須扣除介面該部設備 藉由橋接器連接1022個火線匯流排 自動組態 不需匯流排終端器 不一定菊花鏈組態,也可以改用樹狀結構

  45. 簡易火線組態

  46. 火線協定(三層通訊) 實體層(Physical layer) 定義傳輸媒介、媒介的電氣特性、和訊號特性 連結層(Link layer) 使用封包傳輸資料 傳輸層(Transaction layer) “請求-回應”協定

  47. 火線協定堆疊

  48. 火線 – 實體層 資料傳輸率由25至400Mbps 兩種仲裁方式 樹狀結構基底 根節點如同仲裁器 先到先服務 同時數個請求出現時,如何決定優先權等級? 何者較近根節點者優先 公平仲裁 緊急仲裁

  49. 火線–連結層 非同步傳輸 把數量不等的資料和數個位元組,以封包方式傳送 隱含位址 認可回覆 等時傳輸 把數量不等的資料,在固定的時間間隔內,分成固定大小的封包傳送 簡化的定址方式 無認可回覆

  50. 火線次動作

More Related