Transcript Document

Computer Architecture & Organization
第 七 章 輸出入與儲存系統
Input/Output and Storage Systems
ROBERT CHEN
SHU-TE UNIVERSITY CSIE DEPT.
Computer Architecture & Organization
第七章 課程目的
• 了解I/O系統如何運作,包括 I/O 的方法和架構
• 熟悉儲存媒體,並了解他們之間格式的不同
• 了解RAID如何增進磁碟的效能和考靠度
SHU-TE UNIVERSITY CSIE DEPT.
7- 2
Computer Architecture & Organization
7.1 簡介
• 輸入裝置
– 鍵盤、滑鼠
• 輸出裝置
– 螢幕(非觸控式)、印表機
• 輸出入裝置(I/O device)
– 磁碟機、數據機
• IO裝置與主機間之互動及控制方法
• 大型儲存裝置之內部構造與應用
SHU-TE UNIVERSITY CSIE DEPT.
7-3
Computer Architecture & Organization
7.2 I/O及效能(I/O and Performance)
• 造成系統執行效能不佳之原因,通常不是CPU與記憶體,而
是系統如何處理I/O
• 性能差的I/O 系統會產生漣漪作用,進而拖垮整個系統
– 尤其是虛擬記憶體,系統如何如何將主記憶體分頁存至磁碟,
以產生更多記憶體空間讓更多的使用者行程(user process)放置
– 應清楚了解系統運作,使資源有效利用,必要時才增加額外資
源
SHU-TE UNIVERSITY CSIE DEPT.
7-4
Computer Architecture & Organization
7.3 安達爾法則(Amdahl ‘s Law)
• 系統的整體效能和系統中所有元件互動的結果,當增進系統
中最常使用元件的效能時,那系統的效能就能有效的增進
• 安德爾法則(Amdahl’s Law)
– 電腦整體效能之提升(speedup)取決於單一元件速度之提升與系
統所使用之元件數
S 是整體系統速度提升;
f 是新(較快)元件的工作效能係數;
k 是新(較快)元件的所提升之速度。
未更新的部分
S
1
f
f1 f 2

 n
k1 k 2
kn
SHU-TE UNIVERSITY CSIE DEPT.
更新的部分

1
n
fi

i 1 k i
S 是整體系統速度提升;
f 是元件的工作比例;
k 是元件的提升之速度(未提升為1)。
7-5
Computer Architecture & Organization
7.3 安達爾法則(Amdahl ‘s Law)
[範例]若行程每天花70%時間在CPU處理,30%時間等待磁碟服務;若有一陣列處
理器(processor array)要價10000元,但比原CPU處理速度快50%;另有一組新磁
碟機要價7000元,但磁碟效能提升2.5倍,請問何者方案較佳?
[答案]
若採第一案:(換CPU)
f  0.7, k  1.5, S 
1
 1.30
(1  0.7)  0.7 / 1.5
若採第二案:(換磁碟機)
f  0.3, k  2.5, S 
1
 1.22
(1  0.3)  0.3 / 2.5
但應考量C/P值(Cost/Performance)
第一案: C/P = 10000/30=333 元(提升1%效能所需花費成本)
第二案: C/P = 7000/22=318 元
所以應採第二案,更新磁碟機較佳!!
SHU-TE UNIVERSITY CSIE DEPT.
7-6
Computer Architecture & Organization
課本習題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 the processor.
c. 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.
SHU-TE UNIVERSITY CSIE DEPT.
7-7
Computer Architecture & Organization
7.4 I/O架構(I/O Architecture)
•
輸入/輸出
– 定義為一個在外部裝置和主機間移動編碼資料的子系統元件,包含
• 專門負責I/O運作的主記憶體區塊
• 用於載送資料進出系統的匯流排
• 負責主機和週邊裝置溝通的控制模組
• 外部元件的介面, 如鍵盤和磁碟
• 主系統和週邊之間的纜線或通訊鏈路
• I/O組態模組如右圖
主機板
裝置轉接器
電路板
(轉接器卡)
SHU-TE UNIVERSITY CSIE DEPT.
7-8
Computer Architecture & Organization
7.4 I/O架構(I/O Architecture)
• 協定(protocol)
– 在收送兩端做訊號交換的方式,包含命令訊號(如Printer Reset)、
狀態訊號(Tape Ready)、資料傳遞訊號(如Here are the data you
requested.)
• 交握(handshake)
– 在大多數的資料交換協定中,接收端必須回應傳送端以收到命
令與資料,或表示已準備好接收資料,此種協定稱為交握。
• 緩衝記憶體(buffer memory)
– 主機快速傳送大量資料給周邊裝置時,不用等待速度較慢的周
邊裝置去時將資料寫入,裝置的控制電路負責存取資料,並確
保其正確性
• 永久性儲存裝置(durable storage)[實際不然]
– 資料保存時間比揮發性記憶體長久
– 磁性材料約5-30年;光學材料約100年
SHU-TE UNIVERSITY CSIE DEPT.
7-9
Computer Architecture & Organization
7.4 I/O架構(I/O Architecture)
• 一般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 處理器
SHU-TE UNIVERSITY CSIE DEPT.
7 - 10
Computer Architecture & Organization
7.4 I/O架構(I/O Architecture)
• 程式化I/O (輪詢式I/O:polled I/O)【即PIO模式】
– CPU持續監控(輪詢)與I/O埠(port)連接之暫存器。當有一個Byte
資料到達該埠時,控制暫存器(control register)中的控制位元也設
為“data ready” ,CPU重置該控制位元,並讀出該資料加以處理
,處理完畢CPU繼續做輪詢。
– 好處:簡單易行,容易控制
– 缺點:CPU一值儲於”busy wait”的情況,另外輪詢的頻率多寡不
一,依裝置特性而定
SHU-TE UNIVERSITY CSIE DEPT.
7 - 11
Computer Architecture & Organization
7.4 I/O架構(I/O Architecture)
• 中斷驅動I/O(interrupt-driven I/O)
– 裝置會主動中斷來告之CPU有資料要送。CPU會處理其他工作
直到有裝置送出中斷給CPU來請求服務,常見且有效率之方法
– 通常有中斷控制器(Interrupt controller,如Intel 8259A)作為溝通
過程之運作


如8259A

SHU-TE UNIVERSITY CSIE DEPT.

7 - 12
Computer Architecture & Organization
7.4 I/O架構(I/O Architecture)
• 中斷檢查與中斷處理流程
開始
中斷訊號
偵測
儲存變數與暫
存器
在中斷向量表中尋
找ISR位址
發生
中斷?
處理中斷
完成指令週期
將ISR位址
放入PC中
開始
分支到ISR
完成
中斷工作
回復所儲存變數
與暫存器
返回
跳至
指令週期
頂端
SHU-TE UNIVERSITY CSIE DEPT.
7 - 13
Computer Architecture & Organization
7.4 I/O架構(I/O Architecture)
• 直接記憶體存取(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
SHU-TE UNIVERSITY CSIE DEPT.
7 - 14
Computer Architecture & Organization
7.4 I/O架構(I/O Architecture)
•
直接記憶體存取(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)的傳輸作業。
目前電腦多採用第二種的區塊模式
SHU-TE UNIVERSITY CSIE DEPT.
7 - 15
Computer Architecture & Organization
7.4 I/O架構(I/O Architecture-補充)
•
直接記憶體存取的工作程序(以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回應,並收回匯流排控制權繼續原先的工作。
SHU-TE UNIVERSITY CSIE DEPT.
ADDRESS BUS
AD0~AD15
ALE
74373
MEMORY
DATA BUS
DT / R
74245
DEN
8086
I/O
RD
WR
M / IO
CONTROL BUS
74257
DRQ
DACK
4
1
DREQ
DACK
DMAC
HLDA
HOLD
2
HREQ
HLDA
3
圖 6 - 2 微電腦系統含 DMA 控制器的方塊圖
7 - 16
Computer Architecture & Organization
7.4 I/O架構(I/O Architecture)
•
通道式I/O
– 多用於超大型系統
– 通道式 I/O 由一或多個I/O 處理器構成 (IOPs) ,它們控制不同的通道路徑
– 較慢的裝置(終端機、印表機)會接到多工器 (multiplexed)一個快速的通道
– 在IBM的大型電腦中,這種多工通道稱為多工器通道(multiplexor channels ),
較快的稱為選擇器通道(selector channels)
• 通道式I/O和 DMA 的差別
– 在於IOP的智慧程度,
– IOP 會負責協定, 發出裝置的命令,翻譯儲存碼成為記憶編,並傳輸
全部或多組的檔案。
– 主機只要建立I/O運作所需的程式指令並告訴IOP該程式指令之位址。
SHU-TE UNIVERSITY CSIE DEPT.
7 - 17
Computer Architecture & Organization
7.4 I/O架構(I/O Architecture)
• 通道式IO
– IOP執行由CPU放在主記憶體中的程式。由一系列的通道指令字集
(Channel Command Word,)組成,包含實際傳輸指令、控制IO裝置指
令、如初始化裝置、列印、磁帶轉動等命令。
– CP劃花初啟動子通道命令(start subchannel,SSCH)通知IO程式位址找
尋範圍內的IOP。
– 當IOP完成工作後會發出
中斷給CPU,以作後續處理
SHU-TE UNIVERSITY CSIE DEPT.
7 - 18
Computer Architecture & Organization
7.4.2 字元I/O和區塊I/O
• 字元IO
– 以鍵盤為例,
– 按下鍵盤送出相對掃描碼翻成字元碼存在鍵盤緩衝區
送出中斷訊號,等待被讀取
• 區塊IO
– 適用於磁碟或磁帶,因其資料儲存以區塊為單位,多採用DMA
– 區塊大小與系統效能有關
SHU-TE UNIVERSITY CSIE DEPT.
7 - 19
Computer Architecture & Organization
7.4.3 I/O匯流排操作
•
DMA,將資料寫入磁碟機之步驟
– DMA送出位址,並發出請求(Request)及寫入(Write)訊號
– 當控制器解碼電路檢查是否有Request訊號
– 檢查為自己的位址,啟動磁碟控制電路,並送出
Ready訊號,以完成Handshake
– DMA送出資料後,清除Request訊號
– 磁碟控制器接收資料到磁碟緩衝區,並清除
Ready訊號
SHU-TE UNIVERSITY CSIE DEPT.
7 - 20
Computer Architecture & Organization
7.5 資料傳輸模式
• 資料傳輸模式有二種
– 平行傳輸(parallel transmission)
• 有多條(8)資料傳輸線與一條同步線(閃控strobe),傳輸1byte/次
• 可傳輸距離通常在30呎內(9公尺)
• 例如印表機協定
– 序列傳輸/串列傳輸(serial transmission)
• 一條資料傳輸線與控制線,傳輸1bit/次
• 有效傳輸距離比平行傳輸遠
• 例如RS232(COM)協定
SHU-TE UNIVERSITY CSIE DEPT.
7 - 21
Computer Architecture & Organization
7.6 磁碟技術
• 磁碟
– 可快速存取的大量持久性儲存體,磁碟機稱為隨機 (或直接) 存取儲存
裝置,因為資料區塊可根據在磁碟上的位置來存取
• 磁碟組織圖
– 磁軌(track)從0開始,由外向內編號
– 讀/寫頭下轉動的磁碟形成磁柱
– 資料區塊是由磁柱(cylinder),磁盤(platter)和磁區(sector)來定址的
SHU-TE UNIVERSITY CSIE DEPT.
7 - 22
Computer Architecture & Organization
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)通常實在些
SHU-TE UNIVERSITY CSIE DEPT.
7 - 23
Computer Architecture & Organization
FAT/CD/DVD/TAPE
• 待補(不考)
SHU-TE UNIVERSITY CSIE DEPT.
7 - 24
Computer Architecture & Organization
7.9 RAID
• RAID(獨立磁碟之冗餘陣列Redundant Array of Independent Disks)
– 由David Patterson 、 Garth Gibson和 Randy Katz提出 ,對 RAID 的分類
已經適用了25年之久,有些定義已經重新被定義了
– 一種資料即時備援與復原技術,解決磁碟可靠度,成本和效能問題。
• RAID特性
– RAID實體上是多個磁碟的組合;對作業系統而言,視同單一磁碟機
– 資料分散儲存在多個磁碟內,
– 備份資料多用來儲存同位元資訊,做錯誤修正用
– 資料分成多個條帶(strip),並以循環的方式分散儲存於多個不同磁碟中
SHU-TE UNIVERSITY CSIE DEPT.
7 - 25
Computer Architecture & Organization
7.9.1 RAID 0
• RAID-0
– 又稱為磁碟跨距(drive spanning ),能增進效能,但沒有冗餘磁碟
– 寫入的資料區塊或資料段(strip)是橫跨所有磁碟陣列
– 缺點為無備份,可靠度比較低
一筆資料紀錄(data record)
分成多個資料區塊(段stripe)
分散存育多個磁碟中
SHU-TE UNIVERSITY CSIE DEPT.
7 - 26
Computer Architecture & Organization
7.9.2 RAID 1
• RAID Level 1
– 也稱為磁碟鏡射( disk mirroring),需多一倍的 磁碟空間,效能也很好
– 有二組相對的磁碟,擁有相同的資料
– RAID 1 的缺點就是成本太高
資料磁碟
SHU-TE UNIVERSITY CSIE DEPT.
備份磁碟
7 - 27
Computer Architecture & Organization
7.9.3 RAID 2
• RAID Level 2
– 由一組資料磁碟和一組 漢明碼(Hamming code)磁碟所組成
– Hamming code 磁碟為資料磁碟提供了錯誤修正的能力
– RAID 2 的效能差(產生漢明碼需要時間),而且成本相對也高
資料磁碟
漢明碼磁碟
SHU-TE UNIVERSITY CSIE DEPT.
7 - 28
Computer Architecture & Organization
7.9.4 RAID 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
SHU-TE UNIVERSITY CSIE DEPT.
7 - 29
Computer Architecture & Organization
7.9.5 RAID 4
• RAID Level 4
–
–
–
–
–
就像是將同位元磁碟加到RAID 0
資料區塊(條)是分散在資料磁碟,而同位元區塊寫到額外的磁碟
一次橫跨所有硬碟,每個硬碟寫入1個資料段
如果所有的區塊大小都一樣的話,那RAID 4是可行的
當寫入2個資料段時(如資料段1,3),則同位磁碟是效能的瓶頸,
故不適合商業用途
SHU-TE UNIVERSITY CSIE DEPT.
7 - 30
Computer Architecture & Organization
7.9.6 RAID 5
• RAID Level 5
– 類似同位元分散在個別磁碟的RAID 4
– 當同位元分開儲存時,某些存取就可以同時的進行了,提供了
不錯的效能和可靠度
– RAID 5 在很多商業系統上使用
SHU-TE UNIVERSITY CSIE DEPT.
7 - 31
Computer Architecture & Organization
7.9.7 RAID 6
• RAID Level 6
– 資料條有雙層的資料保護: Reed-Soloman 和 同位元。
– 可以容忍二個磁碟發生問題。
– RAID 6 寫的動作很頻繁,但是錯誤容忍度很高。
SHU-TE UNIVERSITY CSIE DEPT.
7 - 32
Computer Architecture & Organization
7.9.8 RAID DP
• 雙同位檢查RAID(Double Parity RAID, RAID DP)
– 採用一對同位區塊,用於保護重疊的資料區塊,能容忍兩個磁
碟的資料同時遺失,而沒有錯誤
– 簡單的同位函式在效能上比RAID6好很多
SHU-TE UNIVERSITY CSIE DEPT.
7 - 33
Computer Architecture & Organization
7.9.9 RAID 效能彙整
RAID
描述
可靠度
效能
比單一
非常好
磁碟差
優缺點
0
資料以區塊(條)切割
1
資料鏡射到其他磁碟
優
比單一磁碟差,寫入較差 資料保護極佳,高成本
2
資料以位元(條)切割
採漢明碼檢查
好
非常好
效能好,高成本,不採用
3
資料以位元(條)切割
採同位檢查
好
非常好
效能好,成本合理
4
資料以區塊(條)切割
搭配一個位元檢查碟
好
讀取效能非常好
寫入比單一磁碟差很多
效能差,成本合理,不採用
5
資料以區塊(條)切割
分散式位元檢查碟
好
讀取效能非常好
寫入不如單一磁碟
效能好,成本合理
6
資料以區塊(條)切割
雙 錯誤檢查
優
讀取效能非常好
寫入比單一磁碟差很多
效能好,成本合理,
複雜度高
優
讀取效能比單一磁碟好
寫入不如單一磁碟
效能好,高成本,
資料保護極佳
優
讀取效能比單一磁碟好
寫入不如單一磁碟
效能好,成本合理,
資料保護極佳
10(1+0) 鏡射磁碟資料分割
DP
資料以區塊(條)切割
搭配兩個位元檢查碟
SHU-TE UNIVERSITY CSIE DEPT.
低成本,無資料保護
7 - 34