1 / 34

第 七 章 輸出入與儲存系統 Input/Output and Storage Systems

第 七 章 輸出入與儲存系統 Input/Output and Storage Systems. ROBERT CHEN. 第七章 課程目的. 了解 I/O 系統如何運作,包括 I/O 的方法和架構 熟悉儲存媒體,並了解他們之間格式的不同 了解 RAID 如何增進磁碟的效能和考靠度. 7.1 簡介. 輸入裝置 鍵盤、滑鼠 輸出裝置 螢幕 ( 非觸控式 ) 、印表機 輸出入裝置 (I/O device) 磁碟機、數據機 IO 裝置與主機間之互動及控制方法 大型儲存裝置之內部構造與應用. 7.2 I/O 及效能 (I/O and Performance).

bran
Download Presentation

第 七 章 輸出入與儲存系統 Input/Output and Storage Systems

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. 第 七 章 輸出入與儲存系統 Input/Output and Storage Systems ROBERT CHEN

  2. 第七章 課程目的 • 了解I/O系統如何運作,包括 I/O 的方法和架構 • 熟悉儲存媒體,並了解他們之間格式的不同 • 了解RAID如何增進磁碟的效能和考靠度

  3. 7.1 簡介 • 輸入裝置 • 鍵盤、滑鼠 • 輸出裝置 • 螢幕(非觸控式)、印表機 • 輸出入裝置(I/O device) • 磁碟機、數據機 • IO裝置與主機間之互動及控制方法 • 大型儲存裝置之內部構造與應用

  4. 7.2I/O及效能(I/O and Performance) • 造成系統執行效能不佳之原因,通常不是CPU與記憶體,而是系統如何處理I/O • 性能差的I/O 系統會產生漣漪作用,進而拖垮整個系統 • 尤其是虛擬記憶體,系統如何如何將主記憶體分頁存至磁碟,以產生更多記憶體空間讓更多的使用者行程(user process)放置 • 應清楚了解系統運作,使資源有效利用,必要時才增加額外資源

  5. 7.3 安達爾法則(Amdahl ‘s Law) • 系統的整體效能和系統中所有元件互動的結果,當增進系統中最常使用元件的效能時,那系統的效能就能有效的增進 • 安德爾法則(Amdahl’s Law) • 電腦整體效能之提升(speedup)取決於單一元件速度之提升與系統所使用之元件數 • S 是整體系統速度提升; • f是新(較快)元件的工作效能係數; • k是新(較快)元件的所提升之速度。 未更新的部分 更新的部分 • S 是整體系統速度提升; • f是元件的工作比例; • k是元件的提升之速度(未提升為1)。

  6. 7.3 安達爾法則(Amdahl ‘s Law) [範例]若行程每天花70%時間在CPU處理,30%時間等待磁碟服務;若有一陣列處理器(processor array)要價10000元,但比原CPU處理速度快50%;另有一組新磁碟機要價7000元,但磁碟效能提升2.5倍,請問何者方案較佳? [答案] 若採第一案:(換CPU) 若採第二案:(換磁碟機) 但應考量C/P值(Cost/Performance) 第一案: C/P = 10000/30=333 元(提升1%效能所需花費成本) 第二案: C/P = 7000/22=318 元 所以應採第二案,更新磁碟機較佳!!

  7. 課本習題3 • 系統工作有55%CPU及45%磁碟,今提出2改善方案:第一案花8000美元升級磁碟,速度提高為2.5倍,另一方案花5000美元升級CPU速度提高為1.4倍,請問 • 哪一方案之CP值較佳? • 若不考慮成本,何者可使系統更快? • 升級之收支平衡點為何?(i.e.整體效能提升1%之成本,只更改其中一項) • 若題目改為60%CPU與40%磁碟,則以上答案又為何?(習題2) [ANS] • Fraction of work: 55% CPU, 45% disk. • S CPU = 1/((1-f)+(f/k)) = 1/((1-0.55)+(0.55/1.4)) = 1.1864 or 18.64% • S DISK = 1/((1-f)+(f/k)) = 1/((1-0.45)+(0.45/2.5)) = 1.3699 or 36.99% • a. Choose the disk upgrade: • CPU = $5000/18.64% = $268.24 per 1% increase in performance • Disk = $8000/36.99% = $216.27 per 1% increase in performance • b. The disk upgrade gives the greater improvement: 36.99% versus 18.64% for theprocessor. • We want the price per 1% to be the same. • If we change the price of the CPU, we have X/18.64 = 216.27, and X= $4031. • If we change the price of the disk, we have Y/36.99 = 268.24, or Y = $9922.

  8. 7.4I/O架構(I/OArchitecture) • 輸入/輸出 • 定義為一個在外部裝置和主機間移動編碼資料的子系統元件,包含 • 專門負責I/O運作的主記憶體區塊 • 用於載送資料進出系統的匯流排 • 負責主機和週邊裝置溝通的控制模組 • 外部元件的介面, 如鍵盤和磁碟 • 主系統和週邊之間的纜線或通訊鏈路 • I/O組態模組如右圖 主機板 裝置轉接器 電路板 (轉接器卡)

  9. 7.4I/O架構(I/OArchitecture) • 協定(protocol) • 在收送兩端做訊號交換的方式,包含命令訊號(如Printer Reset)、狀態訊號(Tape Ready)、資料傳遞訊號(如Here are the data you requested.) • 交握(handshake) • 在大多數的資料交換協定中,接收端必須回應傳送端以收到命令與資料,或表示已準備好接收資料,此種協定稱為交握。 • 緩衝記憶體(buffer memory) • 主機快速傳送大量資料給周邊裝置時,不用等待速度較慢的周邊裝置去時將資料寫入,裝置的控制電路負責存取資料,並確保其正確性 • 永久性儲存裝置(durable storage)[實際不然] • 資料保存時間比揮發性記憶體長久 • 磁性材料約5-30年;光學材料約100年

  10. 7.4I/O架構(I/OArchitecture) • 一般I/O 有四種控制的方式 • 程式化 I/O (programmed I/O)/輪詢式/IO (polled I/O) • 為每個I/O裝置保留一個暫存器。每個暫存器會被輪流詢問是否有資料到達 • 中斷驅動I/O (interrupt-driven I/O) • 允許CPU在I/O沒發出要求時去做別的事 • 直接記憶體存取(Direct Memory Access, DMA) • 將 I/O 交給特殊的晶片(DMAC)來處理 • 通道式I/O(channel-attached I/O) • 使用專屬的 I/O 處理器

  11. 7.4I/O架構(I/OArchitecture) • 程式化I/O(輪詢式I/O:polled I/O)【即PIO模式】 • CPU持續監控(輪詢)與I/O埠(port)連接之暫存器。當有一個Byte資料到達該埠時,控制暫存器(controlregister)中的控制位元也設為“data ready” ,CPU重置該控制位元,並讀出該資料加以處理,處理完畢CPU繼續做輪詢。 • 好處:簡單易行,容易控制 • 缺點:CPU一值儲於”busy wait”的情況,另外輪詢的頻率多寡不一,依裝置特性而定

  12. 7.4I/O架構(I/OArchitecture) • 中斷驅動I/O(interrupt-driven I/O) • 裝置會主動中斷來告之CPU有資料要送。CPU會處理其他工作直到有裝置送出中斷給CPU來請求服務,常見且有效率之方法 • 通常有中斷控制器(Interruptcontroller,如Intel 8259A)作為溝通過程之運作   如8259A  

  13. 7.4I/O架構(I/OArchitecture) • 中斷檢查與中斷處理流程 開始 中斷訊號 偵測 發生中斷? 儲存變數與暫存器 處理中斷 完成指令週期 在中斷向量表中尋找ISR位址 將ISR位址 放入PC中 開始 分支到ISR 完成 中斷工作 回復所儲存變數與暫存器 返回 跳至 指令週期 頂端

  14. 7.4I/O架構(I/OArchitecture) • 直接記憶體存取(Direct Memory Access: DMA) • DMA 和CPU共享匯流排 • DMA的優先權較高, 會從CPU竊取記憶體週期(週期竊取cycle-stealing) DMA資料傳輸演算法: WHILE (更多輸入AND 無錯誤) Byte-count 加1 IF (Byte-count > 欲傳輸位元組數量) THEN EXIT ENDIF 將byte放到目的地之緩衝區 發出位元組備妥(byte ready)訊號 啟動計時器 REPEAT 等待 UNTIL 位元組回應訊號, 逾時或錯誤 ENDWHILE

  15. 7.4I/O架構(I/OArchitecture) • 直接記憶體存取(Direct Memory Access: DMA)之 • 直接記憶體存取(direct memory access,DMA)為一個特殊的硬體結構,它允許介面裝置與記憶體之間直接轉移資料,而不需經由CPU的參與。在週邊與記憶體之間需要大量資料轉移時,此種方式可說是一種不需要中斷服務程式的中斷服務,直接由硬體完成此特定的工作,節省了許多程式執行的時間。 • CPU需傳送三個資料給DMAC • 傳輸位元組起始位置(starting address) • 欲傳輸位元組之數量(byte count) • 裝置編號(device number) • DMA傳輸模式 • 週期竊取(cycle stealing)/單一位元組傳輸 • DMAC利用CPU執行指令週期時,多用一個Clock cycle來傳輸1 byte的資料 • 區塊模式(block mode)/爆發模式(burst mode) • 適合運用在記憶體與記憶體之間區塊資料,或是記憶體與硬碟間叢集資料(cluster)的傳輸作業。 目前電腦多採用第二種的區塊模式

  16. 7.4I/O架構(I/OArchitecture-補充) • 直接記憶體存取的工作程序(以8086與8237為例) 一個直接記憶體存取的微電腦架構,其中DMAC是這個架構中負責行使直接記憶體存取的控制晶片,整個DMA的工作程序描述如下: • (1)    一個週邊的I/O裝置須要直接記憶體存取時,以DRQ=1向DMAC提出DMA請求。 • (2)    DMAC以HRQ=1通知CPU 的HOLD端。 • (3)    CPU執行完畢目前的匯流排週期,將位址匯流排、資料匯流排以及控制匯流排置於高阻抗狀態,亦即與CPU接腳中分離,然後啟動HLDA=1告知DMAC可以使用系統匯流排了。 • (4)    DMAC將事先以程式規劃好的位址計數器內容轉移至位址匯流排。 • (5)    接著以DACK=1通知I/O裝置位址線已備妥。 • (6)    啟動記憶體及I/O裝置的讀或寫控制線,完成第一筆資料的轉移。如果DMAC設定在區段模式,DMAC會將位址計數器加一,語句計數器減一,再回到前一個步驟,直到DMAC中的語句計數器等於零。 • (7)    DMAC釋放控制權將所有匯流排開路,移除DMA請求,以HRQ=0通知 DMA工作已經結束,CPU得知後以HLDA=0回應,並收回匯流排控制權繼續原先的工作。

  17. 7.4I/O架構(I/OArchitecture) • 通道式I/O • 多用於超大型系統 • 通道式 I/O 由一或多個I/O 處理器構成 (IOPs) ,它們控制不同的通道路徑 • 較慢的裝置(終端機、印表機)會接到多工器 (multiplexed)一個快速的通道 • 在IBM的大型電腦中,這種多工通道稱為多工器通道(multiplexor channels ),較快的稱為選擇器通道(selector channels) • 通道式I/O和 DMA 的差別 • 在於IOP的智慧程度, • IOP 會負責協定, 發出裝置的命令,翻譯儲存碼成為記憶編,並傳輸全部或多組的檔案。 • 主機只要建立I/O運作所需的程式指令並告訴IOP該程式指令之位址。

  18. 7.4I/O架構(I/OArchitecture) • 通道式IO • IOP執行由CPU放在主記憶體中的程式。由一系列的通道指令字集(Channel Command Word,)組成,包含實際傳輸指令、控制IO裝置指令、如初始化裝置、列印、磁帶轉動等命令。 • CP劃花初啟動子通道命令(start subchannel,SSCH)通知IO程式位址找尋範圍內的IOP。 • 當IOP完成工作後會發出中斷給CPU,以作後續處理

  19. 7.4.2 字元I/O和區塊I/O • 字元IO • 以鍵盤為例, • 按下鍵盤送出相對掃描碼翻成字元碼存在鍵盤緩衝區送出中斷訊號,等待被讀取 • 區塊IO • 適用於磁碟或磁帶,因其資料儲存以區塊為單位,多採用DMA • 區塊大小與系統效能有關

  20. 7.4.3I/O匯流排操作 • DMA,將資料寫入磁碟機之步驟 • DMA送出位址,並發出請求(Request)及寫入(Write)訊號 • 當控制器解碼電路檢查是否有Request訊號 • 檢查為自己的位址,啟動磁碟控制電路,並送出Ready訊號,以完成Handshake • DMA送出資料後,清除Request訊號 • 磁碟控制器接收資料到磁碟緩衝區,並清除Ready訊號

  21. 7.5 資料傳輸模式 • 資料傳輸模式有二種 • 平行傳輸(parallel transmission) • 有多條(8)資料傳輸線與一條同步線(閃控strobe),傳輸1byte/次 • 可傳輸距離通常在30呎內(9公尺) • 例如印表機協定 • 序列傳輸/串列傳輸(serial transmission) • 一條資料傳輸線與控制線,傳輸1bit/次 • 有效傳輸距離比平行傳輸遠 • 例如RS232(COM)協定

  22. 7.6 磁碟技術 • 磁碟 • 可快速存取的大量持久性儲存體,磁碟機稱為隨機 (或直接) 存取儲存裝置,因為資料區塊可根據在磁碟上的位置來存取 • 磁碟組織圖 • 磁軌(track)從0開始,由外向內編號 • 讀/寫頭下轉動的磁碟形成磁柱 • 資料區塊是由磁柱(cylinder),磁盤(platter)和磁區(sector)來定址的

  23. 7.6 磁碟技術 • 磁碟硬碟存取資料的速度取決於很多電子機械特性 • 搜尋時間(Seek time) 是磁臂移到磁柱的時間(不含讀取目錄時間:C7P3S74) • 旋轉延遲(Rotational delay) 是磁區轉到讀寫頭之下的時間 • 存取時間(Access time) = Seek time + Rotational delay • 傳輸時間(Transfer time) =存取時間+資料讀取時間(與資料量有關) • 傳輸率(Transfer rate)是資料從磁碟讀取的速度 • 平均延遲時間(Average latency)是旋轉速度的函數 • 平均出錯時間(Mean Time To Failure (MTTF)) • 是一個由實驗求出的統計值,以失敗次數所描繪出的機率曲線 • 它通常不會告訴我們磁碟的壽命,設計壽命(Design life)通常實在些

  24. FAT/CD/DVD/TAPE • 待補(不考)

  25. 7.9RAID • RAID(獨立磁碟之冗餘陣列Redundant Array of Independent Disks) • 由David Patterson 、 Garth Gibson和 Randy Katz提出,對 RAID 的分類已經適用了25年之久,有些定義已經重新被定義了 • 一種資料即時備援與復原技術,解決磁碟可靠度,成本和效能問題。 • RAID特性 • RAID實體上是多個磁碟的組合;對作業系統而言,視同單一磁碟機 • 資料分散儲存在多個磁碟內, • 備份資料多用來儲存同位元資訊,做錯誤修正用 • 資料分成多個條帶(strip),並以循環的方式分散儲存於多個不同磁碟中

  26. 7.9.1RAID 0 • RAID-0 • 又稱為磁碟跨距(drive spanning ),能增進效能,但沒有冗餘磁碟 • 寫入的資料區塊或資料段(strip)是橫跨所有磁碟陣列 • 缺點為無備份,可靠度比較低 一筆資料紀錄(data record)分成多個資料區塊(段stripe) 分散存育多個磁碟中

  27. 7.9.2RAID 1 • RAID Level 1 • 也稱為磁碟鏡射(disk mirroring),需多一倍的 磁碟空間,效能也很好 • 有二組相對的磁碟,擁有相同的資料 • RAID 1 的缺點就是成本太高 資料磁碟 備份磁碟

  28. 7.9.3RAID 2 • RAID Level 2 • 由一組資料磁碟和一組漢明碼(Hamming code)磁碟所組成 • Hamming code 磁碟為資料磁碟提供了錯誤修正的能力 • RAID 2 的效能差(產生漢明碼需要時間),而且成本相對也高 資料磁碟 漢明碼磁碟

  29. 7.9.4RAID 3 • RAID Level 3 • 將帶狀位元分散在資料磁碟上,需多一個同位元磁碟 • 同位位元就是資料位元的XOR結果(採偶同位) • 一次只能橫跨所有硬碟,每個硬碟寫入1個bit • RAID 3 並不適合商業用,但對個人系統來說非常不錯 • 圖例:‘W’= 57H=0101 0111,採偶同位 High nibble :0101=0 Low nibble :0111=1

  30. 7.9.5RAID 4 • RAID Level 4 • 就像是將同位元磁碟加到RAID 0 • 資料區塊(條)是分散在資料磁碟,而同位元區塊寫到額外的磁碟 • 一次橫跨所有硬碟,每個硬碟寫入1個資料段 • 如果所有的區塊大小都一樣的話,那RAID 4是可行的 • 當寫入2個資料段時(如資料段1,3),則同位磁碟是效能的瓶頸,故不適合商業用途

  31. 7.9.6RAID 5 • RAID Level 5 • 類似同位元分散在個別磁碟的RAID 4 • 當同位元分開儲存時,某些存取就可以同時的進行了,提供了不錯的效能和可靠度 • RAID 5 在很多商業系統上使用

  32. 7.9.7RAID 6 • RAID Level 6 • 資料條有雙層的資料保護: Reed-Soloman 和 同位元。 • 可以容忍二個磁碟發生問題。 • RAID 6 寫的動作很頻繁,但是錯誤容忍度很高。

  33. 7.9.8RAID DP • 雙同位檢查RAID(Double Parity RAID, RAID DP) • 採用一對同位區塊,用於保護重疊的資料區塊,能容忍兩個磁碟的資料同時遺失,而沒有錯誤 • 簡單的同位函式在效能上比RAID6好很多

  34. 7.9.9RAID 效能彙整

More Related