

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第六章輸入輸出系統(tǒng),1. 輸入/輸出系統(tǒng)簡(jiǎn)稱I/O系統(tǒng) 包括:,I/O設(shè)備(如鍵盤、磁盤、打印機(jī)) I/O設(shè)備與處理機(jī)的連接 (1)數(shù)據(jù)如何傳送(并行或串行,傳輸速率) (2)對(duì)外設(shè)如何控制(如程序控制、DMA、I/O處理機(jī)),6.1 I/O系統(tǒng)性能與CPU性能,2. I/O系統(tǒng)的基本任務(wù):完成計(jì)算機(jī)與外界的信息交換給計(jì)算機(jī)提供大容量的外部存儲(chǔ)器3. 按照主要完成的工作進(jìn)行分類:存儲(chǔ)I/O系統(tǒng)(本章內(nèi)
2、容) 通信I/O系統(tǒng),6.1 I/O系統(tǒng)性能與CPU性能,3. 幾個(gè)與I/O有關(guān)的問(wèn)題 (1) 對(duì)系統(tǒng)性能的影響 CPU速度再提高,如果無(wú)相適應(yīng)的I/O系統(tǒng)的話,將無(wú)多大意義。,6.1 I/O系統(tǒng)性能與CPU性能,例6.1 假設(shè)一臺(tái)計(jì)算機(jī)的I/O處理占10%,當(dāng)其CPU性能改進(jìn),而I/O性能保持不變時(shí),系統(tǒng)總體性能會(huì)出現(xiàn)什么變化? 解:假設(shè)原來(lái)的程序執(zhí)行時(shí)間為1個(gè)單位時(shí)間。如果
3、CPU的性能提高10倍,程序的計(jì)算(包含I/O處理)時(shí)間為: (1 - 10%)/10 + 10% = 0.19,如果CPU的性能提高10倍 如果CPU的性能提高100倍,6.1 I/O系統(tǒng)性能與CPU性能,即整機(jī)性能只能提高約5倍,差不多有50%的CPU性能浪費(fèi)在I/O上。 如果CPU性能提高100倍,程序的計(jì)算時(shí)間為: (1 - 10%)/100 + 10%
4、= 0.109而整機(jī)性能只能提高約10倍,表示有90%的性能浪費(fèi)在沒有改進(jìn)的I/O上了。,6.1 I/O系統(tǒng)性能與CPU性能,(2) 不同系統(tǒng)中I/O的差異 不同類型系統(tǒng)(微機(jī)、工作站、大型機(jī)、巨型機(jī))的CPU速度差異正在縮小,差異更多來(lái)自于I/O系統(tǒng)。,6.1 I/O系統(tǒng)性能與CPU性能,(3) 評(píng)價(jià)I/O系統(tǒng)性能的參數(shù)主要有: 連接特性(哪些I/O設(shè)備可以和計(jì)算機(jī)系統(tǒng)相連接) I/O系統(tǒng)的容量(
5、I/O系統(tǒng)可以容納的I/O設(shè)備數(shù)) 響應(yīng)時(shí)間和吞吐率等(4) 另一種衡量I/O系統(tǒng)性能的方法: 考慮I/O操作對(duì)CPU的打擾情況。 即考查某個(gè)進(jìn)程在執(zhí)行時(shí),由于其他進(jìn)程的I/O操作,使得該進(jìn)程的執(zhí)行時(shí)間增加了多少。,6.1 I/O系統(tǒng)性能與CPU性能,,6.2 可靠性、可用性和可信性,◆ 反映存儲(chǔ)外設(shè)可靠性能的參數(shù),可靠性(Reliability) 可用性(Availability) 可信性(Dependabili
6、ty),◆ 與可靠性相關(guān)的三個(gè)術(shù)語(yǔ),故障(fault) 錯(cuò)誤(error) 失效(failure),◆ 可信性是存儲(chǔ)的基礎(chǔ),,6.2 可靠性、可用性和可信性,1. 故障、錯(cuò)誤和失效之間的關(guān)系(1) 一個(gè)故障可能會(huì)導(dǎo)致一個(gè)或者多個(gè)錯(cuò)誤;(2) 錯(cuò)誤通常具有以下特性 ◆ 錯(cuò)誤在潛在狀態(tài)和有效狀態(tài)間相互轉(zhuǎn)換; ◆ 潛在的錯(cuò)誤可能通過(guò)激活而有效; ◆ 有效錯(cuò)誤的影響可以傳遞,引起新的錯(cuò)誤。(3) 如果錯(cuò)誤影響到部件正常
7、的服務(wù)時(shí),部件就發(fā) 生了失效;(4) 系統(tǒng)中的所有部件的故障、錯(cuò)誤和失效均存在 這樣的關(guān)系。,,6.2 可靠性、可用性和可信性,3. 系統(tǒng)可靠性◆ 系統(tǒng)從初始狀態(tài)開始一直提供服務(wù)的能力◆ 用平均無(wú)故障時(shí)間MTTF來(lái)衡量 (Mean Time To Failure) ◆ MTTF的倒數(shù)為失效率◆如果一個(gè)系統(tǒng)有多個(gè)部件,其工作時(shí)間服從指數(shù)分布(獨(dú)立概率事件),則系統(tǒng)失效率為部件失效率之和
8、 MTTR(平均維修時(shí)間) MTBF(平均失效間隔時(shí)間),,6.2 可靠性、可用性和可信性,4. 系統(tǒng)可用性◆ 系統(tǒng)正常工作時(shí)間在連續(xù)兩次正常服務(wù)間隔 時(shí)間中所占的比率如果時(shí)間僅包含工作和維修兩個(gè)成分:MTBF =MTTF + MTTR可用性= MTTF/( MTTF + MTTR)5. 系統(tǒng)可信性◆ 多大程度上可以合理地認(rèn)為服務(wù)是可靠的◆ 可信性不可度量,,6.2 可靠性、可用性和可信性,例
9、6.2 假設(shè)磁盤子系統(tǒng)的組成部件和它們的MTTF 如下:(1) 磁盤子系統(tǒng)由10個(gè)磁盤構(gòu)成,每個(gè)磁盤 的MTTF為1000000小時(shí);(2) 1個(gè)SCSI控制器,其MTTF為500000小時(shí);(3) 1個(gè)不間斷電源,其MTTF為200000小時(shí);(4) 1個(gè)風(fēng)扇,其MTTF為200000小時(shí);(5) 1根SCSI連線,其MTTF為1000000小時(shí);,,6.2 可靠性、可用性和可信性,假定部件的工作時(shí)
10、間服從指數(shù)分布,部件的工作時(shí)間與故障出現(xiàn)的概率無(wú)關(guān);同時(shí)假定各部件的故障相互獨(dú)立,試計(jì)算整個(gè)系統(tǒng)的MTTF。解:整個(gè)系統(tǒng)的失效率為:,,,,,,,,1000000,23,1000000,1,200000,1,200000,1,500000,1,1000000,1,10,=,+,+,+,+,×,=,系統(tǒng)失效率,,6.2 可靠性、可用性和可信性,系統(tǒng)的MTTF為系統(tǒng)失效率的倒數(shù),即:,,,小時(shí),=,43500,23,100000
11、0,MTTF,=,大約為5年。,6.2 可靠性、可用性和可信性,指數(shù)分布:用于電子設(shè)備可靠性預(yù)計(jì)的一種分布.概率密度函數(shù):,P(x) = ?e- ?x,期望值:,平均無(wú)故障工作時(shí)間MTTF,,? 為失效率,可靠度:,6.2 可靠性、可用性和可信性,串聯(lián)系統(tǒng):任一部件的故障即構(gòu)成系統(tǒng)的故障.,,,6.2 可靠性、可用性和可信性,6. 提高系統(tǒng)組成部件可靠性的方法 有效構(gòu)建方法(valid construction) 在
12、構(gòu)建系統(tǒng)的過(guò)程中消除故障隱患,這樣建立起來(lái)的系統(tǒng)就不會(huì)出現(xiàn)故障。糾錯(cuò)方法(error correction) 在系統(tǒng)構(gòu)建中采用容錯(cuò)的方法。這樣即使出現(xiàn)故障,也可以通過(guò)容錯(cuò)信息保證系統(tǒng)正常工作。,6.3 廉價(jià)磁盤冗余陣列RAID,磁盤陣列DA(Disk Array):使用多個(gè)磁盤(包括驅(qū)動(dòng)器)的組合來(lái)代替一個(gè)大容量的磁盤。多個(gè)磁盤并行工作。以條帶為單位把數(shù)據(jù)均勻地分布到多個(gè)磁盤上。(交叉存放)條帶存放可以使多個(gè)數(shù)據(jù)讀/
13、寫請(qǐng)求并行地被處理,從而提高總的I/O性能。,6.3 廉價(jià)磁盤冗余陣列RAID,這里并行性有兩方面的含義:多個(gè)獨(dú)立的請(qǐng)求可以由多個(gè)盤來(lái)并行地處理。 減少了I/O請(qǐng)求的排隊(duì)等待時(shí)間 如果一個(gè)請(qǐng)求訪問(wèn)多個(gè)塊,就可以由多個(gè)盤合作來(lái)并行處理。 提高了單個(gè)請(qǐng)求的數(shù)據(jù)傳輸率,6.3 廉價(jià)磁盤冗余陣列RAID,問(wèn)題:陣列中磁盤數(shù)量的增加會(huì)導(dǎo)致磁盤陣 列可靠性的下降。 磁盤出錯(cuò)的概率增加。解決方法:在磁盤陣列中設(shè)置冗余信息
14、盤 當(dāng)單個(gè)磁盤失效時(shí),丟失的信息可以通過(guò)冗 余盤中的信息重新構(gòu)建。,6.3 廉價(jià)磁盤冗余陣列RAID,◆ 廉價(jià)磁盤冗余陣列 Redundant Array of Inexpensive Disks◆ 獨(dú)立磁盤冗余陣列 Redundant Array of Independent Disks◆ 簡(jiǎn)稱盤陣列技術(shù) 1988年,Patterson教授首先提出。 ◆ 優(yōu)點(diǎn) 容量大、速
15、度快、可靠性高、造價(jià)低廉,6.3 廉價(jià)磁盤冗余陣列RAID,大多數(shù)磁盤陣列的組成可以由以下兩個(gè)特征來(lái)區(qū)分: 1. 數(shù)據(jù)交叉存放的粒度 細(xì)粒度磁盤陣列是在概念上把數(shù)據(jù)分割成相對(duì)較 小的單位交叉存放。 優(yōu)點(diǎn):所有I/O請(qǐng)求都能夠獲得很高的數(shù)據(jù)傳輸率。缺點(diǎn):在任何時(shí)間,都只有一個(gè)邏輯上的I/O在處理當(dāng)中,而且所有的磁盤都會(huì)因?yàn)闉槊總€(gè)請(qǐng)求進(jìn)行定位而浪費(fèi)時(shí)間。 粗粒度磁盤陣列是把數(shù)據(jù)以相
16、對(duì)較大的單位交叉 存放。多個(gè)較小規(guī)模的請(qǐng)求可以同時(shí)得到處理。對(duì)于較大規(guī)模的請(qǐng)求又能獲得較高的傳輸率。,6.3 廉價(jià)磁盤冗余陣列RAID,2. 冗余數(shù)據(jù)的計(jì)算方法以及在磁盤陣列中的存放方式糾錯(cuò)檢錯(cuò)方案大多都是采用奇偶校驗(yàn)碼;也有采用漢明碼(Hamming code)或Reed-Solomon碼的。 冗余信息分布 有兩種方法:把冗余信息集中存放在少數(shù)的幾個(gè)盤中。把冗余信息均勻地存放到所有的盤中。 (能避免
17、出現(xiàn)熱點(diǎn)問(wèn)題),RAID的分級(jí)及其特性,RAID的分級(jí)及其特性,6.3 廉價(jià)磁盤冗余陣列RAID,8. 有關(guān)RAID的幾個(gè)問(wèn)題 (1) 關(guān)鍵問(wèn)題:如何發(fā)現(xiàn)磁盤的失效 磁盤技術(shù)提供了故障檢測(cè)操作的信息。 (2) 設(shè)計(jì)的另一個(gè)問(wèn)題: 如何減少平均修復(fù)時(shí)間MTTR 典型的做法:在系統(tǒng)中增加熱備份盤 (3) 熱切換技術(shù) 與熱備份盤相關(guān)的一
18、種技術(shù),6.3 廉價(jià)磁盤冗余陣列RAID,6.3.1 RAID0 ◆ 把數(shù)據(jù)切分成條帶,以條帶為單位交叉地 分布存放到多個(gè)磁盤中。 ◆ 非冗余陣列、無(wú)冗余信息。 ◆ 嚴(yán)格地說(shuō),它不屬于RAID系列。,6.3 廉價(jià)磁盤冗余陣列RAID,6.3.2 RAID1 亦稱鏡像盤,使用雙備份磁盤。 每當(dāng)數(shù)據(jù)寫入一個(gè)磁盤時(shí),將該數(shù)據(jù)也寫 到另一個(gè)冗余盤,形成信息的兩份復(fù)制品。,6.3 廉價(jià)磁盤
19、冗余陣列RAID,1. RAID1的特點(diǎn)◆ 讀性能好 RAID1的性能能夠達(dá)到RAID0性能的兩倍?!?寫性能由寫性能最差的磁盤決定。相對(duì)以后 各級(jí)RAID來(lái)說(shuō),RAID1的寫速度較快?!?可靠性很高,數(shù)據(jù)的恢復(fù)很簡(jiǎn)單?!?最昂貴的解決方法,物理磁盤空間是邏輯磁 盤空間的兩倍。,6.3 廉價(jià)磁盤冗余陣列RAID,2. RAID1中的鏡像和分塊如何相互作用? ◆ RAID0+1 先分塊后鏡像(或稱RA
20、ID01 ),6.3 廉價(jià)磁盤冗余陣列RAID,◆ RAID1+0 先鏡像后分塊(或稱RAID10 ),6.3 廉價(jià)磁盤冗余陣列RAID,,6.3.3 RAID21. 位交叉式海明編碼陣列2. 各個(gè)數(shù)據(jù)盤上的相應(yīng)位計(jì)算海明校驗(yàn)碼,編碼 位被存放在多個(gè)校驗(yàn)(Ecc)磁盤的對(duì)應(yīng)位上。,,6.3 廉價(jià)磁盤冗余陣列RAID,3. RAID2的特點(diǎn)每個(gè)數(shù)據(jù)盤存放所有數(shù)據(jù)字的一位 (位交叉存放)各個(gè)數(shù)據(jù)盤上的相應(yīng)位計(jì)算漢明校
21、驗(yàn)碼,編碼位被存放在多個(gè)校驗(yàn)(ECC)磁盤的對(duì)應(yīng)位上。冗余盤用來(lái)存放漢明碼的校驗(yàn)位,其個(gè)數(shù)為log2m級(jí)。 m:數(shù)據(jù)盤的個(gè)數(shù)(也就是數(shù)據(jù)字的位數(shù))并未被廣泛應(yīng)用,目前還沒有商業(yè)化產(chǎn)品。,6.3 廉價(jià)磁盤冗余陣列RAID,6.3.4 RAID31. 位交叉奇偶校驗(yàn)盤陣列2. 單盤容錯(cuò)并行傳輸:數(shù)據(jù)以位或字節(jié)交叉存儲(chǔ), 奇偶校驗(yàn)信息存儲(chǔ)在一臺(tái)專用盤上。,6.3 廉價(jià)磁盤冗余陣列RAID,3.RAID3的特點(diǎn)采用奇偶校驗(yàn)
22、寫數(shù)據(jù)時(shí)為每行數(shù)據(jù)形成奇偶校驗(yàn)位并寫入校驗(yàn)盤讀出數(shù)據(jù)時(shí)如果控制器發(fā)現(xiàn)某個(gè)磁盤出故障,就可以根據(jù)故障盤以外的所有其他盤中的正確信息恢復(fù)故障盤中的數(shù)據(jù)。(通過(guò)異或運(yùn)算實(shí)現(xiàn)) 細(xì)粒度的磁盤陣列,即采用的條帶寬度較小。 (可以是1個(gè)字節(jié)或1位)只需要一個(gè)校驗(yàn)盤,校驗(yàn)空間開銷比較小。,6.3 廉價(jià)磁盤冗余陣列RAID,6.3.5 RAID41. 專用奇偶校驗(yàn)獨(dú)立存取盤陣列2. 數(shù)據(jù)以塊(塊大小可變)交叉的方式存于各盤, 奇
23、偶校驗(yàn)信息存在一臺(tái)專用盤上。 目標(biāo):能同時(shí)處理多個(gè)小規(guī)模訪問(wèn)請(qǐng)求,6.3 廉價(jià)磁盤冗余陣列RAID,3. RAID4特點(diǎn)◆ 冗余代價(jià)與RAID3相同◆ 訪問(wèn)數(shù)據(jù)的方法與RAID3不同,在RAID4中,一次磁盤訪問(wèn)不需對(duì)所有磁盤 進(jìn)行操作; RAID4出現(xiàn)的原因:希望使用較少的磁盤 參與操作,以使磁盤陣列可以并行進(jìn)行多 個(gè)數(shù)據(jù)的磁盤操作。,6.3 廉價(jià)磁盤冗余陣列RAID,4. RAID4讀
24、寫特點(diǎn)假定:有4個(gè)數(shù)據(jù)盤和一個(gè)冗余盤◆ 讀出數(shù)據(jù),最少一次讀操作(利用扇區(qū)檢錯(cuò));◆ 寫數(shù)據(jù)需要2次磁盤讀和2次磁盤寫操作(優(yōu)化),6.3 廉價(jià)磁盤冗余陣列RAID,6.3.6 RAID51. 塊交叉分布式奇偶校驗(yàn)盤陣列2. 數(shù)據(jù)以塊交叉的方式存于各盤,無(wú)專用冗余盤, 奇偶校驗(yàn)信息均勻分布在所有磁盤上。,6.4 廉價(jià)磁盤冗余陣列RAID,6.3 廉價(jià)磁盤冗余陣列RAID,6.3.7 RAID61. 雙維奇偶校驗(yàn)獨(dú)立存取
25、盤陣列2. 數(shù)據(jù)以塊(塊大小可變)交叉方式存于各盤, 檢、糾錯(cuò)信息均勻分布在所有磁盤上。,6.3 廉價(jià)磁盤冗余陣列RAID,3. RAID6特點(diǎn)◆ 可容忍雙盤出錯(cuò);◆ 存儲(chǔ)開銷是RAID5的兩倍,6.3 廉價(jià)磁盤冗余陣列RAID,6.3.8 RAID7◆ 采用Cache和異步技術(shù)的RAID6◆ 較高的響應(yīng)速度和傳輸速率,6.3 廉價(jià)磁盤冗余陣列RAID,6.3.9 RAID的實(shí)現(xiàn)與發(fā)展1. 實(shí)現(xiàn)盤陣列的方式主要有三種
26、◆ 軟件方式:陣列管理軟件由主機(jī)來(lái)實(shí)現(xiàn) 優(yōu)點(diǎn):成本低 缺點(diǎn):過(guò)多地占用主機(jī)時(shí)間,并且?guī)捴?標(biāo)上不去?!?陣列卡方式:把RAID管理軟件固化在I/O控制 卡上,從而可不占用主機(jī)時(shí)間,一般用于工作 站和PC機(jī)。,6.3 廉價(jià)磁盤冗余陣列RAID,◆ 子系統(tǒng)方式:這是一種基于通用接口總線 的開放式平臺(tái),可用于各種主機(jī)平臺(tái)和網(wǎng) 絡(luò)系統(tǒng)。,2. 盤陣列技術(shù)研究的主要熱點(diǎn)問(wèn)題◆ 新型陣列
27、體系結(jié)構(gòu);◆ RAID結(jié)構(gòu)與其所記錄文件特性的關(guān)系;◆ 在RAID冗余設(shè)計(jì)中,綜合平衡性能、可靠 性和開銷的問(wèn)題;◆ 超大型盤陣列在物理上如何構(gòu)造和連結(jié)的問(wèn)題。,3.盤陣列技術(shù)飛速發(fā)展的原因: (1)應(yīng)用需求,CPU與單個(gè)磁盤的速度差異越來(lái)越大。 (2)一些單項(xiàng)技術(shù)(如交叉存取、數(shù)據(jù)分塊、緩沖存儲(chǔ)等) 已比較成熟。 (3)在PC帶動(dòng)下,小盤驅(qū)動(dòng)器得到了更高速發(fā)展。 (4)微電子技術(shù)的發(fā)展,使得支持
28、盤陣列的大規(guī)模芯片成 為可能。,,6.3 廉價(jià)磁盤冗余陣列RAID,在計(jì)算機(jī)系統(tǒng)中,各子系統(tǒng)之間可以通過(guò)總線互相連接優(yōu)點(diǎn):低成本、多樣性、靈活性、可擴(kuò)展性缺點(diǎn):必須獨(dú)占使用,造成了設(shè)備信息交換的瓶頸,從而限制了系統(tǒng)中總的I/O吞吐量。,6.4 總 線,6.4 總 線,總線設(shè)計(jì)存在很多技術(shù)難點(diǎn)一個(gè)重要原因:總線上信息傳送的速度極大地受限于各種物理因素。 如總線的長(zhǎng)度、設(shè)備的數(shù)目、信號(hào)的強(qiáng)度等,這些
29、物理因素限制了總線性能的提高。另外,我們一方面要求I/O操作響應(yīng)快,另一方面又要求高吞吐量,這可能造成設(shè)計(jì)需求上的沖突。,設(shè)計(jì)總線時(shí)需要考慮的一些問(wèn)題,2. 分離事務(wù)總線(又稱:流水總線、懸掛總線、包交換總線)在有多個(gè)主設(shè)備時(shí),可以通過(guò)打包技術(shù)來(lái)提高總線帶寬?;舅枷雽⒖偩€事務(wù)分成請(qǐng)求和應(yīng)答兩部分。在請(qǐng)求和應(yīng)答之間的空閑時(shí)間內(nèi),總線可以供其他的I/O使用,這樣就不必在整個(gè)I/O過(guò)程中都獨(dú)占總線。,6.4 總 線,分離事務(wù)總線有
30、較高的帶寬,但是它的數(shù)據(jù)傳送延遲通常比獨(dú)占總線方法大。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6.4 總 線,(2) 同步總線 包含一個(gè)供總線上所有設(shè)備使用的時(shí)鐘,并且這些設(shè)備是基于該時(shí)鐘按照一個(gè)固定的協(xié)議來(lái)發(fā)送地址和數(shù)據(jù)的。 優(yōu)點(diǎn):速度快、成本低。 缺點(diǎn):總線操作都必須以同樣的時(shí)鐘頻率進(jìn)行。(3) 異步總線 沒有統(tǒng)一的參考時(shí)鐘,每個(gè)設(shè)備都有各自的定時(shí) 方法。
31、 采用握手協(xié)議 。,6.4 總 線,I/O總線標(biāo)準(zhǔn):定義如何將設(shè)備與計(jì)算機(jī)進(jìn)行連接的文檔。常見I/O總線的一些典型特征,6.4.2 總線標(biāo)準(zhǔn)和實(shí)例,6.4 總 線,幾種常用并行I/O總線,6.4 總 線,在嵌入式系統(tǒng)中使用較多的4種串行I/O總線的一些典型特征,幾種CPU-存儲(chǔ)器互連系統(tǒng),6.4 總 線,6.4 總 線,6.4.3 與CPU的連接,I/O總線的物理連接方式有兩種選擇連接到存儲(chǔ)器上, 更常見連接到Cache上I
32、/O總線連接到存儲(chǔ)器總線上的方式一種典型的組織結(jié)構(gòu),,,,CPU,,Cache,,主存,,I/O,控制器,,圖形輸出,,,,,,,,,,,,,,I/O,控制器,,,,總線適配器,,,網(wǎng)絡(luò),,,CPU,-主存總線,I/O,總線,,總線適配器,,,AGP總線,PCI總線,,I/O,控制器,,,I/O,控制器,總線適配器,磁盤,磁盤,CD,CPU對(duì)I/O設(shè)備的編址有兩種方式存儲(chǔ)器映射I/O(也稱為統(tǒng)一編址)將一部分存儲(chǔ)器地址空間分配給I
33、/O設(shè)備,用load指令和store指令對(duì)這些地址進(jìn)行讀寫將引起I/O設(shè)備的數(shù)據(jù)傳輸。將一部分存儲(chǔ)空間留出用于設(shè)備控制,對(duì)這一部分地址空間進(jìn)行讀寫就是向設(shè)備發(fā)出控制命令。,6.4 總 線,給I/O設(shè)備獨(dú)立編址需要在CPU中設(shè)置專用的I/O指令來(lái)訪問(wèn)I/O設(shè)備。CPU需要發(fā)出一個(gè)標(biāo)志信號(hào)來(lái)表示所訪問(wèn)的地址是I/O設(shè)備的地址。,6.4 總 線,CPU與外部設(shè)備進(jìn)行輸入/輸出的方式可分為4 種程序查詢中斷DMA通道,6.4 總
34、線,6.5 通道處理機(jī),程序控制、中斷和DMA方式管理外圍設(shè)備會(huì)引起兩個(gè)問(wèn)題:所有外設(shè)的輸入/輸出工作均由CPU承擔(dān),CPU的計(jì)算工作經(jīng)常被打斷而去處理輸入/輸出的事務(wù),不能充分發(fā)揮CPU的計(jì)算能力。 大型計(jì)算機(jī)系統(tǒng)的外設(shè)雖然很多,但同時(shí)工作的機(jī)會(huì)不是很多。 解決上述問(wèn)題的方法:采用通道處理機(jī),6.5.1 通道的作用和功能,通道處理機(jī): 能夠執(zhí)行有限I/O指令,并且能夠被多 臺(tái)外圍
35、設(shè)備共享的小型DMA專用處理 機(jī)。,6.5 通道處理機(jī),通道的功能 接收CPU發(fā)來(lái)的I/O指令,并根據(jù)指令要求選擇指定的外設(shè)與通道相連接。執(zhí)行通道程序 從主存中逐條取出通道指令,對(duì)通道指令進(jìn)行譯碼,并根據(jù)需要向被選中的設(shè)備控制器發(fā)出各種操作命令。給出外設(shè)中要進(jìn)行讀/寫操作的數(shù)據(jù)所在的地址, 如磁盤存儲(chǔ)器的柱面號(hào)、磁頭號(hào)、扇區(qū)號(hào)等。,6.5 通道處理機(jī),6.5 通道處理機(jī)
36、,給出主存緩沖區(qū)的首地址, 該緩沖區(qū)存放從外設(shè)輸入的數(shù)據(jù)或者將要輸出到外設(shè)中去的數(shù)據(jù)??刂仆庠O(shè)與主存緩沖區(qū)之間的數(shù)據(jù)傳送的長(zhǎng)度, 對(duì)傳送的數(shù)據(jù)個(gè)數(shù)進(jìn)行計(jì)數(shù),并判斷數(shù)據(jù)傳送是否結(jié)束。指定傳送工作結(jié)束時(shí)要進(jìn)行的操作, 例如:將外設(shè)的中斷請(qǐng)求及通道的中斷請(qǐng)求送往CPU等。檢查外設(shè)的工作狀態(tài)是否正常,并將該狀態(tài)信息送往主存指定單元保存。在數(shù)據(jù)傳輸過(guò)程中完成必要的格式變換 例如:把字拆分為字節(jié),或者把字節(jié)裝配成字 等。,通道的主要硬件
37、 (1) 寄存器部分,數(shù)據(jù)緩沖寄存器 主存地址計(jì)數(shù)器 傳輸字節(jié)數(shù)計(jì)數(shù)器 通道命令字寄存器 通道狀態(tài)字寄存器,6.5 通道處理機(jī),(2) 控制邏輯,分時(shí)控制 地址分配 數(shù)據(jù)傳送 數(shù)據(jù)裝配 拆卸,6.5 通道處理機(jī),6.5 通道處理機(jī),通道對(duì)外設(shè)的控制通過(guò)輸入/輸出接口和設(shè)備控制器進(jìn)行 通道與設(shè)備控制器之間一般采用標(biāo)準(zhǔn)的輸入/輸出接口來(lái)連接。 通道通過(guò)標(biāo)準(zhǔn)接口把操作命令送到設(shè)備控制器,設(shè)備控制器解
38、釋并執(zhí)行這些通道命令,完成命令指定的操作。 設(shè)備控制器能夠記錄外設(shè)的狀態(tài),并把狀態(tài)信息送往通道和CPU。,通道對(duì)外設(shè)的連接,6.5.2 通道工作過(guò)程 (1) 在用戶程序中使用訪管指令進(jìn)入管理程序, 由CPU通過(guò)管理程序組織一個(gè)通道程序,并 啟動(dòng)通道。該廣義指令一般是調(diào)用操作系統(tǒng)的管理程序來(lái)實(shí)現(xiàn)。管理程序根據(jù)廣義指令提供的參數(shù)來(lái)編制通道程序。 啟動(dòng)輸入/輸出設(shè)備指令是一條主
39、要的輸入/輸出指令,屬于特權(quán)指令。,6.5 通道處理機(jī),(2) 通道處理機(jī)執(zhí)行CPU為它組織的通道程序, 完成指定的數(shù)據(jù)I/O工作。通道處理機(jī)執(zhí)行 通道程序是與CPU執(zhí)行用戶程序并行的。,(3) 通道程序結(jié)束后向CPU發(fā)中斷請(qǐng)求。CPU響應(yīng) 這個(gè)中斷請(qǐng)求后,第二次進(jìn)入操作系統(tǒng),調(diào) 用管理程序?qū)/O中斷請(qǐng)求進(jìn)行處理。,6.5 通道處理機(jī),通道程序、管理程序和用戶程序的執(zhí)行時(shí)
40、間關(guān)系,6.5 通道處理機(jī),6.5.3 通道種類◆ 通道分為三種類型字節(jié)多路通道 選擇通道 數(shù)組多路通道,6.5 通道處理機(jī),1) 字節(jié)多路通道 (1) 字節(jié)多路通道主要為多臺(tái)低速或中速的外圍 設(shè)備服務(wù)。 (2) 采用分時(shí)方式工作,依靠它與CPU之間的高 速數(shù)據(jù)通路分時(shí)為多臺(tái)設(shè)備服務(wù)。,6.5 通道處理機(jī),2. 選擇通道 (1) 選擇通道也是為多高速外圍設(shè)備服務(wù)的。
41、 (2) 在傳送數(shù)據(jù)期間,該通道只能為一臺(tái)高速外圍設(shè)備服務(wù),但在不同的時(shí)間內(nèi)可以選擇不同的設(shè)備。,6.5 通道處理機(jī),3. 數(shù)組多路通道 (1) 數(shù)組多路通道適于為高速設(shè)備服務(wù)。 (2) 每次選擇一個(gè)高速設(shè)備后傳送一個(gè)數(shù)據(jù)塊, 并輪流為多臺(tái)外圍設(shè)備服務(wù)。 (3) 數(shù)組多路通道之所以能夠并行地為多個(gè)高速 外圍設(shè)備服務(wù),是因?yàn)檫@些高速外圍設(shè)備并 不能在整個(gè)數(shù)據(jù)輸入輸出時(shí)間內(nèi)單
42、獨(dú)利用通 道的全部傳輸能力。,6.5 通道處理機(jī),6.5 通道處理機(jī),6.5.4 通道中的數(shù)據(jù)傳送過(guò)程與流量分析,通道流量一個(gè)通道在數(shù)據(jù)傳送期間,單位時(shí)間內(nèi)能夠傳送的數(shù)據(jù)量。所用單位一般為Bps。 又稱為通道吞吐率、通道數(shù)據(jù)傳輸率等。通道最大流量 一個(gè)通道在滿負(fù)荷工作狀態(tài)下的流量 。,1) 字節(jié)多路通道的數(shù)據(jù)傳送過(guò)程 通道每連接一個(gè)外圍設(shè)備,只傳送一個(gè)字節(jié), 然后又與另
43、一臺(tái)設(shè)備連接,并傳送一個(gè)字節(jié)。,6.5 通道處理機(jī),P 臺(tái)設(shè)備每臺(tái)傳送n個(gè)數(shù)據(jù)總共所需的時(shí)間為,,6.5 通道處理機(jī),最大流量實(shí)際流量是連接在這個(gè)通道上的所有設(shè)備的數(shù)據(jù)傳輸率之和。fi:第 i 臺(tái)設(shè)備的實(shí)際數(shù)據(jù)傳輸率,2) 選擇通道的工作過(guò)程 在一段時(shí)間內(nèi)只能單獨(dú)為一臺(tái)高速外設(shè)服務(wù),當(dāng)這臺(tái)設(shè)備的數(shù)據(jù)傳送工作全部完成后,通道才能為另一臺(tái)設(shè)備服務(wù)。,,,6.5 通道處理機(jī),TD1 = TD2 = … = TDn =
44、TD,,,6.5 通道處理機(jī),p 臺(tái)設(shè)備每臺(tái)傳送 n 個(gè)數(shù)據(jù)總共所需的時(shí)間 最大流量,3) 數(shù)組多路通道的數(shù)據(jù)傳送過(guò)程 每連接一臺(tái)高速設(shè)備,傳送一個(gè)數(shù)據(jù)塊,傳 送完成后,又與另一臺(tái)高速設(shè)備連接,再傳送一 個(gè)數(shù)據(jù)塊。,6.5 通道處理機(jī),,,6.5 通道處理機(jī),p 臺(tái)設(shè)備每臺(tái)傳送 n 個(gè)數(shù)據(jù)總共所需的時(shí)間 最大流量,,,6.5 通道處理機(jī),數(shù)組多路通道和選擇通道在一段時(shí)間內(nèi)與一臺(tái)設(shè)備相連,因
45、此實(shí)際流量與連接的設(shè)備不同而不同。 實(shí)際流量小于連接在這個(gè)通道上的所有設(shè)備中數(shù)據(jù)流量最大的那一個(gè) 。,,,◆ 實(shí)際流量不大于最大流量 字節(jié)多路通道選擇通道數(shù)組多路通道,◆ 兩邊的差值越小,通道的利用率就越高?!?當(dāng)兩邊相等時(shí),通道處于滿負(fù)荷工作狀態(tài)。,6.5 通道處理機(jī),6.6 I/O與操作系統(tǒng),在計(jì)算機(jī)系統(tǒng)中,I/O系統(tǒng)硬件的功能如何使用, 往往完全是由操作系統(tǒng)來(lái)決定的。
46、I/O操作主要在外設(shè)和存儲(chǔ)器間進(jìn)行,所以操 作系統(tǒng)的一個(gè)重要任務(wù)是維護(hù)數(shù)據(jù)的安全性。,6.6 I/O與操作系統(tǒng),6.6.1 DMA和虛擬存儲(chǔ)器DMA是使用虛擬地址還是物理地址?1. 使用物理地址進(jìn)行DMA,存在的問(wèn)題:◆ 對(duì)于超過(guò)一頁(yè)的數(shù)據(jù)緩沖區(qū),由于緩沖區(qū)使 用的頁(yè)面在物理存儲(chǔ)器中不一定是連續(xù)的, 所以傳輸可能會(huì)發(fā)生問(wèn)題。 ◆ 如果DMA正在存儲(chǔ)器和緩沖器之間傳輸數(shù)據(jù) 時(shí),操作系統(tǒng)從存儲(chǔ)器中移出(或重
47、新裝載) 一些頁(yè)面后,DMA將會(huì)在存儲(chǔ)器中錯(cuò)誤的頁(yè) 面上傳輸數(shù)據(jù)。,6.6 I/O與操作系統(tǒng),◆ 解決問(wèn)題的方法,鎖定在主存中的頁(yè)面 虛擬DMA技術(shù),2. 通過(guò)DMA連接的I/O “虛擬DMA”技術(shù),它允許DMA設(shè)備直接使用虛擬地址,在DMA期間由硬件將虛擬地址映射到物理地址。 DMA地址表必須能及時(shí)更新,6.6 I/O與操作系統(tǒng),,,CPU,,Cache,,主存,,,DMA,控制器,,,,I/
48、O,總線,,TLB,,地址轉(zhuǎn)換寄存器,-主存總線,CPU,6.7.2 I/O 和 Cache 數(shù)據(jù)一致性 ◆ Cache會(huì)使一個(gè)數(shù)據(jù)出現(xiàn)兩個(gè)副本 一個(gè)在Cache中,一個(gè)在主存中。 ◆ I/O 計(jì)算機(jī)的連接方式 1. 連接到CPU的Cache上,6.6 I/O與操作系統(tǒng),,,,CPU,,Cache,,主存,,,CPU,-主存總線,,總線適配器,,,,I/O,總線,,TLB,6.6 I/O與操作
49、系統(tǒng),,◆ 不會(huì)產(chǎn)生數(shù)據(jù)不一致的問(wèn)題 ◆ 所有I/O設(shè)備和CPU都能在Cache中看到最新的 數(shù)據(jù),而且存儲(chǔ)器中的機(jī)制能保證數(shù)據(jù)的其它 副本得到及時(shí)更新。問(wèn)題:大量的I/O數(shù)據(jù)填充Cache內(nèi)容; I/O要傳給Cache的數(shù)據(jù)往往不是CPU當(dāng) 前需要訪問(wèn)的數(shù)據(jù)。,6.6 I/O與操作系統(tǒng),,,CPU,,Cache,,主存,,,CPU,-主存總線,,DMA,控制器,,,
50、,I/O,總線,,TLB,,地址轉(zhuǎn)換寄存器,2. 直接連到存儲(chǔ)器上I/O與存儲(chǔ)器之間的數(shù)據(jù)交換不會(huì)干擾CPU。,6.6 I/O與操作系統(tǒng),數(shù)據(jù)不一致問(wèn)題有兩個(gè)方面:(1) 存儲(chǔ)器中可能不是CPU產(chǎn)生的最新數(shù)據(jù),所以 I/O系統(tǒng)從存儲(chǔ)器中取出來(lái)使用的是陳舊數(shù)據(jù)。 如何確保I/O使用到正確的數(shù)據(jù)?,寫直達(dá)Cache可以保證存儲(chǔ)器和Cache有 相同的數(shù)據(jù); 寫回Cache則需要操作系統(tǒng)幫助進(jìn)行數(shù)據(jù)
51、 檢查。,6.6 I/O與操作系統(tǒng),(2) I/O與存儲(chǔ)器交換數(shù)據(jù)之后,在Cache中被CPU 使用的可能就是陳舊數(shù)據(jù)。如何確保CPU使用到正確的數(shù)據(jù)?,6.6 I/O與操作系統(tǒng),6.6 I/O與操作系統(tǒng),1. 軟件的方法 設(shè)法保證I/O緩沖器中的所有各塊都不在 Cache中。具體做法有兩種 把I/O緩沖器的頁(yè)面設(shè)置為不可進(jìn)入Cache的,在進(jìn)行輸入操作時(shí),操作系統(tǒng)總是把輸入的數(shù)據(jù)
52、放到該頁(yè)面上。 在進(jìn)行輸入操作之前,操作系統(tǒng)先把Cache中與I/O緩沖器相關(guān)的數(shù)據(jù)“趕出”Cache,即把相應(yīng)的數(shù)據(jù)塊設(shè)置為“無(wú)效”狀態(tài)。,6.6 I/O與操作系統(tǒng),2. 硬件的方法在進(jìn)行輸入操作時(shí),檢查相應(yīng)的I/O地址(I/O緩沖器中的單元)是否在Cache中(即是否有數(shù)據(jù)副本)。如果發(fā)現(xiàn)I/O地址在Cache中有匹配的項(xiàng),就把相應(yīng)的Cache塊設(shè)置為“無(wú)效”。,6.7.3 異步I/O 提高I/O性能的
53、一種方法:并行 使用多個(gè)磁盤同時(shí)工作來(lái)獲得一批數(shù)據(jù)。如何在編程模型層面支持這種并行? 同步I/O: 進(jìn)程處于等待狀態(tài)直到所需數(shù)據(jù)從磁 盤讀出。 異步I/O: 允許進(jìn)程在發(fā)出I/O請(qǐng)求后繼續(xù)執(zhí)行, 直到該進(jìn)程真正訪問(wèn)這些數(shù)據(jù)而它們 又尚未就緒時(shí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
評(píng)論
0/150
提交評(píng)論