340 likes | 494 Views
第 七 章 輸出入與儲存系統 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).
E N D
第 七 章 輸出入與儲存系統 Input/Output and Storage Systems ROBERT CHEN
第七章 課程目的 • 了解I/O系統如何運作,包括 I/O 的方法和架構 • 熟悉儲存媒體,並了解他們之間格式的不同 • 了解RAID如何增進磁碟的效能和考靠度
7.1 簡介 • 輸入裝置 • 鍵盤、滑鼠 • 輸出裝置 • 螢幕(非觸控式)、印表機 • 輸出入裝置(I/O device) • 磁碟機、數據機 • IO裝置與主機間之互動及控制方法 • 大型儲存裝置之內部構造與應用
7.2I/O及效能(I/O and Performance) • 造成系統執行效能不佳之原因,通常不是CPU與記憶體,而是系統如何處理I/O • 性能差的I/O 系統會產生漣漪作用,進而拖垮整個系統 • 尤其是虛擬記憶體,系統如何如何將主記憶體分頁存至磁碟,以產生更多記憶體空間讓更多的使用者行程(user process)放置 • 應清楚了解系統運作,使資源有效利用,必要時才增加額外資源
7.3 安達爾法則(Amdahl ‘s Law) • 系統的整體效能和系統中所有元件互動的結果,當增進系統中最常使用元件的效能時,那系統的效能就能有效的增進 • 安德爾法則(Amdahl’s Law) • 電腦整體效能之提升(speedup)取決於單一元件速度之提升與系統所使用之元件數 • S 是整體系統速度提升; • f是新(較快)元件的工作效能係數; • k是新(較快)元件的所提升之速度。 未更新的部分 更新的部分 • S 是整體系統速度提升; • f是元件的工作比例; • k是元件的提升之速度(未提升為1)。
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 元 所以應採第二案,更新磁碟機較佳!!
課本習題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.
7.4I/O架構(I/OArchitecture) • 輸入/輸出 • 定義為一個在外部裝置和主機間移動編碼資料的子系統元件,包含 • 專門負責I/O運作的主記憶體區塊 • 用於載送資料進出系統的匯流排 • 負責主機和週邊裝置溝通的控制模組 • 外部元件的介面, 如鍵盤和磁碟 • 主系統和週邊之間的纜線或通訊鏈路 • I/O組態模組如右圖 主機板 裝置轉接器 電路板 (轉接器卡)
7.4I/O架構(I/OArchitecture) • 協定(protocol) • 在收送兩端做訊號交換的方式,包含命令訊號(如Printer Reset)、狀態訊號(Tape Ready)、資料傳遞訊號(如Here are the data you requested.) • 交握(handshake) • 在大多數的資料交換協定中,接收端必須回應傳送端以收到命令與資料,或表示已準備好接收資料,此種協定稱為交握。 • 緩衝記憶體(buffer memory) • 主機快速傳送大量資料給周邊裝置時,不用等待速度較慢的周邊裝置去時將資料寫入,裝置的控制電路負責存取資料,並確保其正確性 • 永久性儲存裝置(durable storage)[實際不然] • 資料保存時間比揮發性記憶體長久 • 磁性材料約5-30年;光學材料約100年
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 處理器
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”的情況,另外輪詢的頻率多寡不一,依裝置特性而定
7.4I/O架構(I/OArchitecture) • 中斷驅動I/O(interrupt-driven I/O) • 裝置會主動中斷來告之CPU有資料要送。CPU會處理其他工作直到有裝置送出中斷給CPU來請求服務,常見且有效率之方法 • 通常有中斷控制器(Interruptcontroller,如Intel 8259A)作為溝通過程之運作 如8259A
7.4I/O架構(I/OArchitecture) • 中斷檢查與中斷處理流程 開始 中斷訊號 偵測 發生中斷? 儲存變數與暫存器 處理中斷 完成指令週期 在中斷向量表中尋找ISR位址 將ISR位址 放入PC中 開始 分支到ISR 完成 中斷工作 回復所儲存變數與暫存器 返回 跳至 指令週期 頂端
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
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)的傳輸作業。 目前電腦多採用第二種的區塊模式
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回應,並收回匯流排控制權繼續原先的工作。
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該程式指令之位址。
7.4I/O架構(I/OArchitecture) • 通道式IO • IOP執行由CPU放在主記憶體中的程式。由一系列的通道指令字集(Channel Command Word,)組成,包含實際傳輸指令、控制IO裝置指令、如初始化裝置、列印、磁帶轉動等命令。 • CP劃花初啟動子通道命令(start subchannel,SSCH)通知IO程式位址找尋範圍內的IOP。 • 當IOP完成工作後會發出中斷給CPU,以作後續處理
7.4.2 字元I/O和區塊I/O • 字元IO • 以鍵盤為例, • 按下鍵盤送出相對掃描碼翻成字元碼存在鍵盤緩衝區送出中斷訊號,等待被讀取 • 區塊IO • 適用於磁碟或磁帶,因其資料儲存以區塊為單位,多採用DMA • 區塊大小與系統效能有關
7.4.3I/O匯流排操作 • DMA,將資料寫入磁碟機之步驟 • DMA送出位址,並發出請求(Request)及寫入(Write)訊號 • 當控制器解碼電路檢查是否有Request訊號 • 檢查為自己的位址,啟動磁碟控制電路,並送出Ready訊號,以完成Handshake • DMA送出資料後,清除Request訊號 • 磁碟控制器接收資料到磁碟緩衝區,並清除Ready訊號
7.5 資料傳輸模式 • 資料傳輸模式有二種 • 平行傳輸(parallel transmission) • 有多條(8)資料傳輸線與一條同步線(閃控strobe),傳輸1byte/次 • 可傳輸距離通常在30呎內(9公尺) • 例如印表機協定 • 序列傳輸/串列傳輸(serial transmission) • 一條資料傳輸線與控制線,傳輸1bit/次 • 有效傳輸距離比平行傳輸遠 • 例如RS232(COM)協定
7.6 磁碟技術 • 磁碟 • 可快速存取的大量持久性儲存體,磁碟機稱為隨機 (或直接) 存取儲存裝置,因為資料區塊可根據在磁碟上的位置來存取 • 磁碟組織圖 • 磁軌(track)從0開始,由外向內編號 • 讀/寫頭下轉動的磁碟形成磁柱 • 資料區塊是由磁柱(cylinder),磁盤(platter)和磁區(sector)來定址的
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)通常實在些
FAT/CD/DVD/TAPE • 待補(不考)
7.9RAID • RAID(獨立磁碟之冗餘陣列Redundant Array of Independent Disks) • 由David Patterson 、 Garth Gibson和 Randy Katz提出,對 RAID 的分類已經適用了25年之久,有些定義已經重新被定義了 • 一種資料即時備援與復原技術,解決磁碟可靠度,成本和效能問題。 • RAID特性 • RAID實體上是多個磁碟的組合;對作業系統而言,視同單一磁碟機 • 資料分散儲存在多個磁碟內, • 備份資料多用來儲存同位元資訊,做錯誤修正用 • 資料分成多個條帶(strip),並以循環的方式分散儲存於多個不同磁碟中
7.9.1RAID 0 • RAID-0 • 又稱為磁碟跨距(drive spanning ),能增進效能,但沒有冗餘磁碟 • 寫入的資料區塊或資料段(strip)是橫跨所有磁碟陣列 • 缺點為無備份,可靠度比較低 一筆資料紀錄(data record)分成多個資料區塊(段stripe) 分散存育多個磁碟中
7.9.2RAID 1 • RAID Level 1 • 也稱為磁碟鏡射(disk mirroring),需多一倍的 磁碟空間,效能也很好 • 有二組相對的磁碟,擁有相同的資料 • RAID 1 的缺點就是成本太高 資料磁碟 備份磁碟
7.9.3RAID 2 • RAID Level 2 • 由一組資料磁碟和一組漢明碼(Hamming code)磁碟所組成 • Hamming code 磁碟為資料磁碟提供了錯誤修正的能力 • RAID 2 的效能差(產生漢明碼需要時間),而且成本相對也高 資料磁碟 漢明碼磁碟
7.9.4RAID 3 • RAID Level 3 • 將帶狀位元分散在資料磁碟上,需多一個同位元磁碟 • 同位位元就是資料位元的XOR結果(採偶同位) • 一次只能橫跨所有硬碟,每個硬碟寫入1個bit • RAID 3 並不適合商業用,但對個人系統來說非常不錯 • 圖例:‘W’= 57H=0101 0111,採偶同位 High nibble :0101=0 Low nibble :0111=1
7.9.5RAID 4 • RAID Level 4 • 就像是將同位元磁碟加到RAID 0 • 資料區塊(條)是分散在資料磁碟,而同位元區塊寫到額外的磁碟 • 一次橫跨所有硬碟,每個硬碟寫入1個資料段 • 如果所有的區塊大小都一樣的話,那RAID 4是可行的 • 當寫入2個資料段時(如資料段1,3),則同位磁碟是效能的瓶頸,故不適合商業用途
7.9.6RAID 5 • RAID Level 5 • 類似同位元分散在個別磁碟的RAID 4 • 當同位元分開儲存時,某些存取就可以同時的進行了,提供了不錯的效能和可靠度 • RAID 5 在很多商業系統上使用
7.9.7RAID 6 • RAID Level 6 • 資料條有雙層的資料保護: Reed-Soloman 和 同位元。 • 可以容忍二個磁碟發生問題。 • RAID 6 寫的動作很頻繁,但是錯誤容忍度很高。
7.9.8RAID DP • 雙同位檢查RAID(Double Parity RAID, RAID DP) • 採用一對同位區塊,用於保護重疊的資料區塊,能容忍兩個磁碟的資料同時遺失,而沒有錯誤 • 簡單的同位函式在效能上比RAID6好很多