并行存儲(chǔ)器-奧鵬教育_第1頁(yè)
并行存儲(chǔ)器-奧鵬教育_第2頁(yè)
并行存儲(chǔ)器-奧鵬教育_第3頁(yè)
并行存儲(chǔ)器-奧鵬教育_第4頁(yè)
并行存儲(chǔ)器-奧鵬教育_第5頁(yè)
已閱讀5頁(yè),還剩175頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

奧鵬遠(yuǎn)程教育中心心系天下求學(xué)人PagePAGE1ofNUMPAGES179專(zhuān)業(yè)專(zhuān)注周到細(xì)致高校名稱(chēng):福建師范大學(xué)課程名稱(chēng):《計(jì)算機(jī)體系結(jié)構(gòu)》心系天下求學(xué)人PagePAGE176ofNUMPAGES179專(zhuān)業(yè)專(zhuān)注周到細(xì)致目錄TOC\o"1-1"\h\z\u第一章概論課堂筆記 3第一章概論關(guān)鍵詞匯 12第一章概論FAQ 13第一章緒論拓展資源 14第二章存儲(chǔ)系統(tǒng)課堂筆記 15第二章存儲(chǔ)系統(tǒng)關(guān)鍵詞匯 34第二章存儲(chǔ)系統(tǒng)FAQ 35第二章存儲(chǔ)系統(tǒng)拓展資源 36第三章輸入輸出系統(tǒng)課堂筆記 38第三章輸入輸出系統(tǒng)關(guān)鍵詞匯 54第三章輸入輸出系統(tǒng)FAQ 55第三章輸入輸出系統(tǒng)拓展資源 57第四章數(shù)據(jù)表示和指令系統(tǒng)課堂筆記 64第四章數(shù)據(jù)表示和指令系統(tǒng)關(guān)鍵詞匯 87第四章數(shù)據(jù)表示和指令系統(tǒng)FAQ 88第四章數(shù)據(jù)表示和指令系統(tǒng)拓展資源 89第五章流水線處理技術(shù)課堂筆記 91第五章流水線處理技術(shù)關(guān)鍵詞匯 118第五章流水線處理技術(shù)FAQ 119第五章流水線處理技術(shù)拓展資源 120第六章并行處理技術(shù)和多處理機(jī)課堂筆記 121第六章并行處理技術(shù)和多處理機(jī)關(guān)鍵詞匯 141第六章并行處理技術(shù)和多處理機(jī)FAQ 141第六章并行處理技術(shù)和多處理機(jī)拓展資源 142第七章互聯(lián)網(wǎng)絡(luò)課堂筆記 144第七章互聯(lián)網(wǎng)絡(luò)關(guān)鍵詞匯 161第七章互聯(lián)網(wǎng)絡(luò)FAQ 162第七章互聯(lián)網(wǎng)絡(luò)拓展資源 163第八章非馮·諾依曼計(jì)算機(jī)結(jié)構(gòu)課堂筆記 164第八章非馮·諾依曼計(jì)算機(jī)結(jié)構(gòu)關(guān)鍵詞匯 176第八章非馮·諾依曼計(jì)算機(jī)結(jié)構(gòu)FAQ 176第八章非馮·諾依曼計(jì)算機(jī)結(jié)構(gòu)拓展資源 177第一章概論課堂筆記主要知識(shí)點(diǎn)掌握程度本章主要內(nèi)容包括:介紹了現(xiàn)代計(jì)算機(jī)系統(tǒng)的構(gòu)成和層次結(jié)構(gòu);了解計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的定義及結(jié)構(gòu)劃分,重點(diǎn)掌握計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的原則、任務(wù)、方法和性能評(píng)價(jià)指標(biāo)。知識(shí)點(diǎn)整理一、現(xiàn)代計(jì)算機(jī)系統(tǒng)自1946年第一臺(tái)電子數(shù)字計(jì)算機(jī)問(wèn)世以來(lái),已經(jīng)過(guò)了半個(gè)世紀(jì),計(jì)算機(jī)經(jīng)歷了五次更新?lián)Q代,各代劃分的主要標(biāo)志是硬件和軟件技術(shù)的明顯變革。從所用的器件而言,它經(jīng)歷了由電子管、晶體管到集成電路,由繼電器存儲(chǔ),磁介質(zhì)存儲(chǔ)到集成電路,乃至大規(guī)模和超大規(guī)模集成電路存儲(chǔ)的發(fā)展過(guò)程。從結(jié)構(gòu)的發(fā)展而言,它經(jīng)歷了由單個(gè)CPU組成的單機(jī)系統(tǒng)到流水線機(jī)、多處理機(jī)到大規(guī)模的并行處理機(jī)的發(fā)展過(guò)程,從技術(shù)的發(fā)展上而言,它不斷引入變址技術(shù)、中斷技術(shù)、微程序技術(shù)、緩沖技術(shù)共享、重用技術(shù)、虛擬技術(shù)。從語(yǔ)言和應(yīng)用方面而言,它經(jīng)歷了由匯編到高級(jí)語(yǔ)言,從單用戶(hù)到多用戶(hù),到并行處理的語(yǔ)言、編譯、操作系統(tǒng),直到如今計(jì)算機(jī)網(wǎng)絡(luò)、異構(gòu)系統(tǒng)處理等等這一發(fā)展過(guò)程。隨著硬、軟件的發(fā)展。展示在人們面前的計(jì)算機(jī)也已大大不同于50年前的樣子,而且仍然在不停地迅速發(fā)展和變化著。(一)現(xiàn)在計(jì)算機(jī)的構(gòu)成計(jì)算機(jī)系統(tǒng)不只是最明顯的硬件設(shè)備,還應(yīng)包括與它不可分割的系統(tǒng)軟件、應(yīng)用軟件、用戶(hù)接口等,它們形成一個(gè)集成系統(tǒng),如圖1.1.1所示。(二)計(jì)算機(jī)系統(tǒng)層次結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)由硬件/器件和軟件組成,按功能可以劃分成以下7級(jí)層次結(jié)構(gòu):級(jí)別計(jì)算機(jī)系統(tǒng)人實(shí)現(xiàn)方式6應(yīng)用語(yǔ)言級(jí)用戶(hù)軟件5高級(jí)語(yǔ)言級(jí)高級(jí)語(yǔ)言程序員軟件4匯編語(yǔ)言級(jí)匯編程序師軟件3操作系統(tǒng)級(jí)操作員軟件2傳統(tǒng)機(jī)器語(yǔ)言級(jí)機(jī)器語(yǔ)言程序員軟硬件接口1微程序機(jī)器級(jí)邏輯設(shè)計(jì)員固件0電子線路級(jí)硬件設(shè)計(jì)員硬件其中,第0級(jí)由硬件實(shí)現(xiàn),第1級(jí)由微程序(固件)實(shí)現(xiàn),第2級(jí)至第6級(jí)由軟件實(shí)現(xiàn)。可見(jiàn),計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)是指在計(jì)算機(jī)系統(tǒng)軟、硬件的分接口上,機(jī)器所表現(xiàn)出的外特性。二、計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(一)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)定義概念:計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)就是計(jì)算機(jī)的機(jī)器語(yǔ)言程序員或編譯程序編寫(xiě)者所看到的外特性,是硬件子系統(tǒng)的概念結(jié)構(gòu)及其功能特性。系統(tǒng)結(jié)構(gòu)一般應(yīng)包括以下幾個(gè)方面:機(jī)器內(nèi)的數(shù)據(jù)表示、尋址方式、寄存器定義、指令系統(tǒng)、中斷機(jī)構(gòu)、存儲(chǔ)體系和管理、機(jī)器工作狀態(tài)的定義和切換、輸入輸出結(jié)構(gòu)、信息保護(hù)等。在計(jì)算機(jī)技術(shù)中,一種本來(lái)存在的事物或?qū)傩?,但從某種角度看似乎不存在,這稱(chēng)為透明性。(二)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)、組成與實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)是機(jī)器語(yǔ)言程序員所了解的計(jì)算機(jī)的屬性,即外特性。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)者的主要任務(wù)是研究軟件、硬件功能分配和對(duì)軟件、硬件界面的確定,即哪些功能由軟件完成,哪些功能由硬件完成。包括:數(shù)據(jù)表示、尋址方式、寄存器定義、指令系統(tǒng)、中斷機(jī)構(gòu)、存儲(chǔ)體系和管理、機(jī)器工作狀態(tài)的定義和切換、輸入輸出結(jié)構(gòu)、信息保護(hù)等。計(jì)算機(jī)組成是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的邏輯實(shí)現(xiàn),計(jì)算機(jī)組成的任務(wù)是在計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)確定分配給硬件子系統(tǒng)的功能及其概念結(jié)構(gòu)之后,研究各組成部分的內(nèi)部構(gòu)造和相互聯(lián)系,以實(shí)現(xiàn)機(jī)器指令級(jí)的各種功能和特性。具體包括:數(shù)據(jù)通路的寬度、專(zhuān)用部件的設(shè)置、各功能部件操作部件的并行度和共享程度、控制機(jī)構(gòu)的組成方式、緩沖技術(shù)排隊(duì)技術(shù)的采用、可靠性技術(shù)的采用和方式的選擇、預(yù)估預(yù)判優(yōu)化處理。計(jì)算機(jī)實(shí)現(xiàn)即計(jì)算機(jī)邏輯設(shè)計(jì)之后的物理實(shí)現(xiàn),包括:處理機(jī),主存部件的物理結(jié)構(gòu),器件的集成度,速度的選擇,模塊、插件、底板的劃分與連接,電源、冷卻,以及整機(jī)的裝配技術(shù)等。(三)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的分類(lèi)計(jì)算機(jī)系統(tǒng)的分類(lèi)常見(jiàn)分類(lèi)方法:1、按大小劃分種類(lèi):巨型機(jī)、大型機(jī)、中型機(jī)、小型機(jī)、微型機(jī)等。2、按用途劃分種類(lèi):科學(xué)計(jì)算、事務(wù)處理、實(shí)時(shí)控制、工作站、服務(wù)器、家用計(jì)算機(jī)等。3、按數(shù)據(jù)類(lèi)型劃分種類(lèi):定點(diǎn)機(jī)、浮點(diǎn)機(jī)、向量機(jī)、堆棧機(jī)等。4、按處理機(jī)個(gè)數(shù)和種類(lèi)劃分種類(lèi):?jiǎn)翁幚頇C(jī)、并行處理機(jī)、多處理機(jī)、分布處理機(jī)、關(guān)聯(lián)處理機(jī)、超標(biāo)量處理機(jī)、超流水線處理機(jī)、SMP(對(duì)稱(chēng)多處理機(jī))、MPP(大規(guī)模并行處理機(jī))、機(jī)群(Cluster)系統(tǒng)等。5、按所使用的器件劃分種類(lèi):第一代:電子管計(jì)算機(jī)(Valve)第二代:晶體管計(jì)算機(jī)(Transistor)第三代:集成電路計(jì)算機(jī)(LSI)第四代:大規(guī)模集成電路計(jì)算機(jī)(VLSI)第五代:智能計(jì)算機(jī)等6、佛林(Flynn)分類(lèi)法1966年由Michael.J.Flynn提出,按照指令流和數(shù)據(jù)流的多倍性特征對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行分類(lèi)。指令流(instructionstream):機(jī)器執(zhí)行的指令序列;數(shù)據(jù)流(datastream):由指令流調(diào)用的數(shù)據(jù)序列,包括輸入數(shù)據(jù)和中間結(jié)果;多倍性(multiplicity):在系統(tǒng)性能瓶頸部件上同時(shí)處于同一執(zhí)行階段的指令或數(shù)據(jù)的最大可能個(gè)數(shù)。種類(lèi):(1)單指令流單數(shù)據(jù)流SISD(SingleInstructionSingleDatastream)(2)單指令流多數(shù)據(jù)流SIMD(SingleInstructionMultipleDatastream)(3)多指令流單數(shù)據(jù)流MISD(MultipleInstructionSingleDatastream)(4)多指令流多數(shù)據(jù)流MIMS(MultipleInstructionMultipleDatastream)CU:控制部件PU:處理部件MM:內(nèi)存模塊IS:指令流DS:數(shù)據(jù)流圖1.2.1Flynn分類(lèi)法各類(lèi)機(jī)器結(jié)構(gòu)7、馮澤云分類(lèi)法1972年美籍華人馮澤云提出用最大并行度來(lái)對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行分類(lèi)。最大并行度:指在單位時(shí)間內(nèi)能夠處理的最大二進(jìn)制位數(shù)。字寬:在一個(gè)字中同時(shí)處理的二進(jìn)制的位數(shù)。位寬:在一個(gè)位片中能同時(shí)處理的字?jǐn)?shù)。例如:同時(shí)處理的字寬為n,位寬為m,則最大并行度定義為:圖1.2.2按最大并行度的馮氏分類(lèi)法由圖1.2.2可得出4類(lèi)不同處理方法的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu):種類(lèi):(1)字符串位串WSBS(WordSerialandBitSerial)串行計(jì)算機(jī);m=1,n=1;例如:EDVAC(1,1)(2)字并位串WPBS(WordParallelandBitSerial)傳統(tǒng)的單處理機(jī);m=1,n>1;例如:Pentium(32,1)(3)字符串位并WSBP(WordSerialandBitParallel)并行計(jì)算機(jī)、MPP、相聯(lián)計(jì)算機(jī);m>1,n=1;例如:MPP(1,16384),STARAN(1,256),DAP(4)字并位并WPBP(WordParallelandBitParallel)全并行計(jì)算機(jī);m>1,n>1;例如:IILIACIV(64,64),ASC(64,32),PEPE,Cmmp8、漢德勒分類(lèi)法由WolfganHandler于1977年根據(jù)并行度和流水線提出的一種分類(lèi)方法。又稱(chēng)為ESC(ErlangeClassificationScheme)分類(lèi)法。根據(jù)并行度和流水線分類(lèi),計(jì)算機(jī)硬件結(jié)構(gòu)分成三個(gè)層次,并分別考慮它們的可并行性和流水處理程度。這三個(gè)層次是:(1)程序級(jí)k:程控部件(PCU)的個(gè)數(shù);(2)操作級(jí)d:算術(shù)邏輯部件(ALU)或處理部件(PU)的個(gè)數(shù);(3)邏輯級(jí)w:每個(gè)算術(shù)邏輯部件包含的邏輯線路(ELC)的套數(shù)。據(jù)此可以把計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)用公式t(系統(tǒng)型號(hào))=(k,d,w)表示。例如:t(EDVAC)=(1,1,1) t(Pentium)=(1,1,32)t(STARAN)=(1,8192,1)t(ILLIACⅣ)=(1,64,64)t(Cmmp)=(16,1,16)為了表示流水線,采用:t(系統(tǒng)型號(hào))=(k×k',d×d',w×w')其中:k'表示宏流水線中程控部件的個(gè)數(shù)d'表示指令流水線中算術(shù)邏輯部件的個(gè)數(shù)w'表示操作流水線中基本邏輯線路的套數(shù)例如:Cray1有1個(gè)CPU,12個(gè)相當(dāng)于ALU或PE的處理部件,最多8級(jí)流水線,字長(zhǎng)為64位,可以實(shí)現(xiàn)1~14位流水線。表示為:t(Cray1)=(1,12×8,64(1~14))又例如:t(PEPE)=(1×3,288,32)t(TIASC)=(1,4,64×8)三、計(jì)算機(jī)系統(tǒng)設(shè)計(jì)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)是整個(gè)計(jì)算機(jī)系統(tǒng)設(shè)計(jì)當(dāng)中極為重要的內(nèi)容,因此也必須遵守計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的原則方法和步驟。下面介紹目前在計(jì)算機(jī)系統(tǒng)設(shè)計(jì)中應(yīng)該遵守的定量原理。(一)計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)原則1、加快經(jīng)常性事件的速度(Makethecommoncasefast)這是最重要也是被廣泛采用的設(shè)計(jì)準(zhǔn)則。道理十分明顯,使經(jīng)常性事件的處理速度加快能明顯提高整個(gè)系統(tǒng)的性能。2、Amdahl定律IBM公司的設(shè)計(jì)師Amdahl在1967年提出的Amdahl定律告訴我們:系統(tǒng)中某一部件由于采用某種更快的執(zhí)行方式后整個(gè)系統(tǒng)性能的提高與這種執(zhí)行方式的使用頻率或占總執(zhí)行時(shí)間的比例有關(guān)。性能提高的衡量指標(biāo)為加速比,其定義為:在Amdahl定律中,加速比與兩個(gè)因素有關(guān):一是被改進(jìn)部分的使用頻率的大小即可改進(jìn)部分所占時(shí)間的百分比:二是被改進(jìn)部分本身在改進(jìn)后所取得的效果,即改進(jìn)部分的加速比,也可以用時(shí)間參量來(lái)表示:改進(jìn)之后整個(gè)任務(wù)的執(zhí)行時(shí)間為(改進(jìn)前時(shí)間-(改進(jìn)前可改時(shí)間-改進(jìn)后可改時(shí)間)):其中T0為改進(jìn)前的整個(gè)任務(wù)的執(zhí)行時(shí)間。改進(jìn)后整個(gè)系統(tǒng)的加速比達(dá)到:其中(1-Fe)表示不可改進(jìn)部分,顯然當(dāng)Fe為0,即沒(méi)有改進(jìn)部分時(shí),Sn為1,所以性能的提高受改進(jìn)部分所占比例的限制。當(dāng)Se→∞時(shí),則Sn=1/(1-Fe),因此,可獲取性能改善極限值受Fe值的約束。3、訪問(wèn)局部性原理程序訪問(wèn)局部性原理說(shuō)明了計(jì)算機(jī)在程序執(zhí)行過(guò)程中呈現(xiàn)出的一種規(guī)律,即程序往往重復(fù)使用它剛剛使用過(guò)的數(shù)據(jù)和指令。局部性分為時(shí)間上的局部性和空間上的局部性?xún)煞N。所謂時(shí)間局部性是指近期被訪問(wèn)的代碼,很可能不久又將再次被訪問(wèn);空間局部性是指地址上相鄰近的代碼可能會(huì)被連續(xù)地訪問(wèn)。目前存儲(chǔ)系統(tǒng)層次結(jié)構(gòu)的設(shè)計(jì)就是以此為理論基礎(chǔ)。(二)計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的主要任務(wù)1、確定用戶(hù)對(duì)計(jì)算機(jī)系統(tǒng)的功能、價(jià)格和性能要求功能要求包括:應(yīng)用領(lǐng)域、軟件兼容性、操作系統(tǒng)的要求、各種通用國(guó)際標(biāo)準(zhǔn)的要求。價(jià)格要求:考慮用戶(hù)或市場(chǎng)對(duì)計(jì)算機(jī)功能和性能要求的前提下,盡量降低成本。性能要求包括:速度、容量、輸入/輸出的種類(lèi)、可靠性、可維護(hù)性、安全性、容錯(cuò)能力、人機(jī)交互的能力等等。2、軟硬件的平衡硬件實(shí)現(xiàn):速度快、成本高;靈活性差、占用內(nèi)存少。軟件實(shí)現(xiàn):速度低、復(fù)制費(fèi)用低;靈活性好、占用內(nèi)存多。設(shè)計(jì)必須考慮硬件和軟件的合理分配,同時(shí)還應(yīng)考慮設(shè)計(jì)的復(fù)雜性及軟硬件實(shí)現(xiàn)的難易程度。3、設(shè)計(jì)出符合今后發(fā)展方向的系統(tǒng)結(jié)構(gòu)一個(gè)成功的系統(tǒng)結(jié)構(gòu)應(yīng)該能經(jīng)得住軟、硬件技術(shù)的發(fā)展以及應(yīng)用的變化。因此設(shè)計(jì)者必須特別注意計(jì)算機(jī)應(yīng)用和計(jì)算機(jī)技術(shù)的發(fā)展趨勢(shì),這樣才能延長(zhǎng)一種機(jī)器的使用壽命。發(fā)展趨勢(shì):硬件實(shí)現(xiàn)的比例越來(lái)越高,軟件所占的成本越來(lái)越高。(三)計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的主要方法基于計(jì)算機(jī)系統(tǒng)層次結(jié)構(gòu)的基礎(chǔ)上,其設(shè)計(jì)方法可以有以下的三種:1、由上向下(Top-Down)設(shè)計(jì)過(guò)程:面向應(yīng)用的數(shù)學(xué)模型→面向應(yīng)用的高級(jí)語(yǔ)言→面向這種應(yīng)用的操作系統(tǒng)→面向操作系統(tǒng)和高級(jí)語(yǔ)言的機(jī)器語(yǔ)言→面向機(jī)器語(yǔ)言的微指令系統(tǒng)和硬件實(shí)現(xiàn)。應(yīng)用場(chǎng)合:專(zhuān)用計(jì)算機(jī)的設(shè)計(jì)(早期計(jì)算機(jī)的設(shè)計(jì))。特點(diǎn):對(duì)于所面向的應(yīng)用領(lǐng)域,性能(性能價(jià)格比)很高。隨著通用計(jì)算機(jī)價(jià)格降低,目前已經(jīng)很少采用。2、由下向上(Bottom-Up)(通用計(jì)算機(jī)系統(tǒng)的一種設(shè)計(jì)方法)設(shè)計(jì)過(guò)程:根據(jù)當(dāng)時(shí)的器件水平,設(shè)計(jì)微程序機(jī)器級(jí)和傳統(tǒng)機(jī)器級(jí)。根據(jù)不同的應(yīng)用領(lǐng)域設(shè)計(jì)多種操作系統(tǒng)、匯編語(yǔ)言、高級(jí)語(yǔ)言編譯器等。最后設(shè)計(jì)面向應(yīng)用的虛擬機(jī)器級(jí)。應(yīng)用場(chǎng)合:在計(jì)算機(jī)早期設(shè)計(jì)中(60~70年代)廣為采用。特點(diǎn):容易使軟件和硬件脫節(jié),整個(gè)計(jì)算機(jī)系統(tǒng)的效率降低。3、中間開(kāi)始(Middle-Out)設(shè)計(jì)過(guò)程:首先定義軟硬件的分界面。然后各個(gè)層次分別進(jìn)行設(shè)計(jì)。應(yīng)用場(chǎng)合:用于系列機(jī)的設(shè)計(jì)。特點(diǎn):軟硬件的分界面在上升,硬件比例在增加。硬件價(jià)格下降,軟件價(jià)格上升。軟硬件人員結(jié)合共同設(shè)計(jì)。四、計(jì)算機(jī)的性能評(píng)價(jià)(一)CPU性能CPU的性能是指CPU執(zhí)行程序所用時(shí)間,也就是CPU連續(xù)地執(zhí)行一條條指令的時(shí)間,不包括I/O等待時(shí)間。CPU的性能取決于三個(gè)要素:①時(shí)鐘頻率;②每條指令所花的時(shí)鐘周期數(shù)CPI;③指令條數(shù)IC。則:其中Ii表示i指令在程序中執(zhí)行的次數(shù),CPIi表示i指令所需的平均時(shí)鐘周期數(shù),n為指令種類(lèi)數(shù)。(二)MIPS和MFLOPS1、MIPS(millioninstructionspersecond)它表示每秒百萬(wàn)條指令數(shù),對(duì)于一個(gè)給定的程序,MIPS定義為:程序的執(zhí)行時(shí)間為:其中:Te為程序執(zhí)行時(shí)間,CPI為每條指令的平均時(shí)鐘周期,時(shí)鐘頻率為每秒周期數(shù)即每周期的時(shí)間的倒數(shù)。顯然,機(jī)器愈快其MIPS愈高,但MIPS對(duì)指令系統(tǒng)和程序的依賴(lài)性很大,故在某些情況下不能準(zhǔn)確反映系統(tǒng)的性能。2、MFLOPS(millionfloatingpointoperationspersecond)表示每秒百萬(wàn)次浮點(diǎn)操作次數(shù),MFLOPS定義為:顯然,MFLOPS可以用來(lái)衡量機(jī)器浮點(diǎn)操作的性能,因?yàn)橥怀绦蛟诓煌瑱C(jī)器上執(zhí)行的指令可能不同,但執(zhí)行的浮點(diǎn)運(yùn)算卻是完全相同的。但是,MFLOPS不能體現(xiàn)機(jī)器的整體性能;MFLOPS取決于機(jī)器和程序兩個(gè)方面,因?yàn)椴煌瑱C(jī)器浮點(diǎn)運(yùn)算集不同,因此不同的浮點(diǎn)操作類(lèi)型運(yùn)算時(shí)間不同。(三)系統(tǒng)性能測(cè)試為了能進(jìn)行合理的評(píng)價(jià),通常采用不同類(lèi)型的程序進(jìn)行測(cè)試,經(jīng)過(guò)實(shí)踐選擇出的這些程序稱(chēng)為基準(zhǔn)測(cè)試程序。1、基準(zhǔn)測(cè)試程序(1)實(shí)際應(yīng)用程序:例如C語(yǔ)言的編譯程序,Tex正文處理程序,SpiceCAD工具軟件等。(2)核心程序:從實(shí)際程序中抽取小量關(guān)鍵的循環(huán)程序段,例如Livermore24Loop(24個(gè)循環(huán)段)、Linpack(解線性方程組)。(3)綜合測(cè)試程序:它類(lèi)似于核心程序,但考慮到各種不同的操作和不同種類(lèi)的程序。如Whetstone和Dhrystone等。2、性能評(píng)價(jià)結(jié)果處理根據(jù)哪個(gè)數(shù)據(jù)來(lái)確定機(jī)器的性能呢?一般有以下三個(gè):假設(shè)有n個(gè)測(cè)試程序,Ri為第i個(gè)測(cè)試程序的速率;Ti為第i個(gè)測(cè)試程序所需的時(shí)間,則:速率算術(shù)平均值A(chǔ)m:速率幾何平均值Gm:通常用于各機(jī)器之間的比較,可以以某一機(jī)器為標(biāo)準(zhǔn),對(duì)其他機(jī)器進(jìn)行規(guī)格化,再求其幾何平均值的比。速率加權(quán)平均值A(chǔ)m:其中,ωi是第i個(gè)程序在任務(wù)中所占的比重。五、計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的發(fā)展(一)馮·諾依曼機(jī)型及其演變1946年普林斯頓高級(jí)研究所數(shù)學(xué)家馮·諾依曼(VanNenmann)提出了一個(gè)完整的現(xiàn)代計(jì)算機(jī)雛形,它由運(yùn)算器、控制器、存儲(chǔ)器、輸入輸出四部分組成,主要特點(diǎn)是程序存儲(chǔ),指令驅(qū)動(dòng),集中控制,見(jiàn)圖1.5.1所示。一般認(rèn)為其主要特征有以下幾點(diǎn):(1)機(jī)器以運(yùn)算器為中心。除了完成運(yùn)算以外,機(jī)器內(nèi)部的數(shù)據(jù)傳輸都經(jīng)過(guò)運(yùn)算器。各部件的操作以及它們之間的協(xié)調(diào)由控制器集中控制。(2)存儲(chǔ)器按一維線性編址,順序訪問(wèn)存儲(chǔ)器地址單元,每個(gè)存儲(chǔ)單元的位數(shù)固定。(3)程序存儲(chǔ),指令和數(shù)據(jù)無(wú)區(qū)別存放在存儲(chǔ)器中,指令和數(shù)據(jù)一樣可以送到運(yùn)算器中進(jìn)行運(yùn)算,指令與數(shù)據(jù)的區(qū)別主要在于地址區(qū)域不同。(4)指令在存儲(chǔ)器中按其執(zhí)行順序存放,由一個(gè)順序控制器(亦稱(chēng)程序計(jì)數(shù)器或指令計(jì)數(shù)器)指定即將被執(zhí)行的指令地址。每讀取一條指令后,計(jì)數(shù)器自動(dòng)按順序遞增。(5)指令由操作碼和地址碼組成,操作碼指明操作類(lèi)型,地址碼指明操作數(shù)的地址和結(jié)果地址。(6)數(shù)據(jù)以二進(jìn)制表示。經(jīng)歷幾十年的不斷改進(jìn)與發(fā)展,現(xiàn)代的計(jì)算機(jī)雖然仍然以馮·諾依曼的結(jié)構(gòu)為基礎(chǔ),但已有了許多重大改進(jìn),主要改進(jìn)是:存儲(chǔ)器為中心,總線結(jié)構(gòu),分散控制。具體表現(xiàn)在下列幾個(gè)方面。(1)計(jì)算機(jī)處理的數(shù)據(jù)類(lèi)型不斷增加新的表示形式,除了通常的定點(diǎn)數(shù)、浮點(diǎn)數(shù)、十進(jìn)制數(shù)、邏輯數(shù)字符等基本數(shù)據(jù)類(lèi)型外,還有向量、堆棧、自定義數(shù)據(jù)、漢字等。(2)指令種類(lèi)與尋址方式增加,增加了支持操作系統(tǒng)與語(yǔ)言編譯的指令,增加了多種尋址方式如變址尋址、間接尋址、相對(duì)尋址、基址尋址以及為了存儲(chǔ)管理而采用的頁(yè)面尋址等方式。(3)改變了以CPU為中心的數(shù)據(jù)傳送方式,以存儲(chǔ)器為中心,存儲(chǔ)系統(tǒng)中采用了虛擬存儲(chǔ),高速緩存,為了提高速度出現(xiàn)了多存儲(chǔ)體的并行存取或交叉存儲(chǔ)的結(jié)構(gòu),改變了一維線性編址的方式。采用了指令與數(shù)據(jù)分體的存儲(chǔ)方式,以有利于并行操作。(4)處理器采用了多種新技術(shù),如堆棧的采用、支持過(guò)程調(diào)用及遞歸、表達(dá)式的計(jì)算,采用指令流水、操作流水的技術(shù)與多功能部件,多處理器的并行技術(shù),提高了CPU的功能,改進(jìn)并行性能。(二)系統(tǒng)結(jié)構(gòu)并行技術(shù)的發(fā)展計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)發(fā)展的重要方向就是并行處理。并行處理技術(shù)的發(fā)展經(jīng)過(guò)以下幾個(gè)階段:1、串行階段傳統(tǒng)的程序存儲(chǔ)計(jì)算機(jī)。2、先行處理最初的并行,通過(guò)預(yù)取指令使取指令與指令執(zhí)行操作重疊。3、功能并行(1)采用并行多功能部件;(2)中斷技術(shù),使輸入輸出與CPU操作并行;(3)多體存儲(chǔ)器交叉并行訪問(wèn)技術(shù),使存儲(chǔ)器與存儲(chǔ)器及CPU并行;(4)整數(shù)運(yùn)算,浮點(diǎn)運(yùn)算以及指令執(zhí)行的取指、譯碼、讀操作數(shù)由各自獨(dú)立的功能部件完成。4、流水線技術(shù)(1)一個(gè)任務(wù)分成多個(gè)子任務(wù)同時(shí)執(zhí)行;(2)用軟件控制循環(huán)執(zhí)行,稱(chēng)為標(biāo)量流水線處理機(jī)。5、向量處理機(jī)(1)以硬件或固件的結(jié)構(gòu)執(zhí)行,稱(chēng)為顯式向量處理機(jī);(2)實(shí)現(xiàn)存儲(chǔ)器到存儲(chǔ)器和寄存器到寄存器之間的并行處理。6、SIMD、MIMD如陣列機(jī)、聯(lián)想機(jī)、多處理機(jī)與多計(jì)算機(jī)。(三)影響計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的因素1、軟件對(duì)系統(tǒng)結(jié)構(gòu)的影響由于軟件相對(duì)于硬件的成本越來(lái)越貴,并且已積累了大量成熟的系統(tǒng)軟件和應(yīng)用軟件,用戶(hù)希望能在性能更好的機(jī)器上運(yùn)行原來(lái)開(kāi)發(fā)的軟件,以便保護(hù)軟件開(kāi)發(fā)投資,為此采用以下幾種措施。(1)系列機(jī)與兼容機(jī):所謂系列機(jī)是指同一廠家生產(chǎn)的具有相同系統(tǒng)結(jié)構(gòu),但采取了不同的組成和實(shí)現(xiàn)技術(shù)的一系列計(jì)算機(jī)系統(tǒng)。如IBM系列機(jī)具有以下結(jié)構(gòu)特點(diǎn):相同的指令系統(tǒng),采用順序執(zhí)行、重迭、流水和并行處理方式。相同的32位字長(zhǎng),數(shù)據(jù)通路寬度為8位、16位、32位、64位。采用系列機(jī)方法的主要優(yōu)點(diǎn):系列機(jī)之間軟件兼容,可移植性好;插件、接口等相互兼容;便于實(shí)現(xiàn)機(jī)間通信;便于維修、培訓(xùn);有利于提高產(chǎn)量、降低成本。采用系列機(jī)方法的主要缺點(diǎn):限制了計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的發(fā)展。如PC系列機(jī),其系統(tǒng)結(jié)構(gòu)最落后,使用也最普及(2)模擬和仿真:用軟件的方法在一臺(tái)現(xiàn)有的計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)另一臺(tái)計(jì)算機(jī)的指令系統(tǒng)叫模擬。被模擬的機(jī)器是不存在的,稱(chēng)為虛擬機(jī),執(zhí)行模擬程序的機(jī)器稱(chēng)為宿主機(jī)。用微程序(即用硬件、固件或軟件、硬件、固件混合)的方法在一臺(tái)現(xiàn)有的計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)另一臺(tái)計(jì)算機(jī)的指令系統(tǒng)叫仿真。執(zhí)行微程序的機(jī)器稱(chēng)為宿主機(jī),被實(shí)現(xiàn)的稱(chēng)為目標(biāo)機(jī)。模擬是用宿主機(jī)的指令編寫(xiě)出一段程序來(lái)解釋虛擬機(jī)上的一條指令;仿真是直接用宿主機(jī)的一段微程序解釋執(zhí)行目標(biāo)機(jī)的每條指令。從而實(shí)現(xiàn)軟件的移植。(3)統(tǒng)一標(biāo)準(zhǔn)高級(jí)語(yǔ)言:采用同一種不依賴(lài)于任何具體機(jī)器的高級(jí)語(yǔ)言編寫(xiě)系統(tǒng)軟件和應(yīng)用軟件。但至今還沒(méi)有這樣一種高級(jí)語(yǔ)言。2、應(yīng)用需求對(duì)系統(tǒng)結(jié)構(gòu)的影響應(yīng)用的需求一直是計(jì)算機(jī)發(fā)展的動(dòng)力。3、器件對(duì)系統(tǒng)結(jié)構(gòu)的影響在相當(dāng)長(zhǎng)的一段時(shí)間內(nèi),器件的改進(jìn)是提高計(jì)算機(jī)速度的主要途徑,器件發(fā)展對(duì)提高處理機(jī)主頻(Fz)起決定性作用。器件發(fā)展的特點(diǎn):集成度迅速提高、速度已接近極限、價(jià)格直線下降、可靠性越來(lái)越高。第一章概論關(guān)鍵詞匯1、計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)就是計(jì)算機(jī)的機(jī)器語(yǔ)言程序員或編譯程序編寫(xiě)者所看到的外特性,是硬件子系統(tǒng)的概念結(jié)構(gòu)及其功能特性。系統(tǒng)結(jié)構(gòu)一般應(yīng)包括以下幾個(gè)方面:機(jī)器內(nèi)的數(shù)據(jù)表示、尋址方式、寄存器定義、指令系統(tǒng)、中斷機(jī)構(gòu)、存儲(chǔ)體系和管理、機(jī)器工作狀態(tài)的定義和切換、輸入輸出結(jié)構(gòu)、信息保護(hù)等。2、指令流機(jī)器執(zhí)行的指令序列。3、數(shù)據(jù)流由指令流調(diào)用的數(shù)據(jù)序列,包括輸入數(shù)據(jù)和中間結(jié)果。4、多倍性在系統(tǒng)性能瓶頸部件上同時(shí)處于同一執(zhí)行階段的指令或數(shù)據(jù)的最大可能個(gè)數(shù)。5、Amdahl定律IBM公司的設(shè)計(jì)師Amdahl在1967年提出的Amdahl定律告訴我們:系統(tǒng)中某一部件由于采用某種更快的執(zhí)行方式后整個(gè)系統(tǒng)性能的提高與這種執(zhí)行方式的使用頻率或占總執(zhí)行時(shí)間的比例有關(guān)。性能提高的衡量指標(biāo)為加速比,其定義為:6、字寬在一個(gè)字中同時(shí)處理的二進(jìn)制的位數(shù)。7、位寬在一個(gè)位片中能同時(shí)處理的字?jǐn)?shù)。8、MIPS它表示每秒百萬(wàn)條指令數(shù),對(duì)于一個(gè)給定的程序,MIPS定義為:9、MFLOPS表示每秒百萬(wàn)次浮點(diǎn)操作次數(shù),MFLOPS定義為:10、CPU的性能是指CPU執(zhí)行程序所用時(shí)間,也就是CPU連續(xù)地執(zhí)行一條條指令的時(shí)間。11、程序訪問(wèn)局部性原理程序訪問(wèn)局部性原理說(shuō)明了計(jì)算機(jī)在程序執(zhí)行過(guò)程中呈現(xiàn)出的一種規(guī)律,即程序往往重復(fù)使用它剛剛使用過(guò)的數(shù)據(jù)和指令。局部性分為時(shí)間上的局部性和空間上的局部性?xún)煞N。所謂時(shí)間局部性是指近期被訪問(wèn)的代碼,很可能不久又將再次被訪問(wèn);空間局部性是指地址上相鄰近的代碼可能會(huì)被連續(xù)地訪問(wèn)。12、最大并行度指在單位時(shí)間內(nèi)能夠處理的最大二進(jìn)制位數(shù)。13、透明性在計(jì)算機(jī)技術(shù)中,一種本來(lái)存在的事物或?qū)傩?,但從某種角度看似乎不存在,這稱(chēng)為透明性。14、系列機(jī)所謂系列機(jī)是指同一廠家生產(chǎn)的具有相同系統(tǒng)結(jié)構(gòu),但采取了不同的組成和實(shí)現(xiàn)技術(shù)的一系列計(jì)算機(jī)系統(tǒng)。15、模擬用軟件的方法在一臺(tái)現(xiàn)有的計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)另一臺(tái)計(jì)算機(jī)的指令系統(tǒng)叫模擬,是用宿主機(jī)的指令編寫(xiě)出一段程序來(lái)解釋虛擬機(jī)上的一條指令;16、仿真用微程序(即用硬件、固件或軟件、硬件、固件混合)的方法在一臺(tái)現(xiàn)有的計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)另一臺(tái)計(jì)算機(jī)的指令系統(tǒng)叫仿真,是直接用宿主機(jī)的一段微程序解釋執(zhí)行目標(biāo)機(jī)的每條指令。第一章概論FAQ一、實(shí)現(xiàn)程序移植的主要途徑有什么?答:統(tǒng)一高級(jí)語(yǔ)言、系列機(jī)、模擬、和仿真。二、提高計(jì)算機(jī)系統(tǒng)并行性的主要技術(shù)途徑有什么?答:提高計(jì)算機(jī)系統(tǒng)并行性的主要技術(shù)途徑有時(shí)間重疊、資源重復(fù)和資源共享。三、計(jì)算機(jī)系統(tǒng)的Flynn(弗林)分類(lèi)法是按什么來(lái)分類(lèi)的?共分哪幾類(lèi)?解釋其含義。弗林分類(lèi)法是按指令流、數(shù)據(jù)流以及多倍性分類(lèi)的。共分四類(lèi)。SISD——指令部件只對(duì)一條指令處理,只控制一個(gè)操作部件操作。如一般的串行單處理機(jī)。SIMD——由單一指令部件同時(shí)控制多個(gè)重復(fù)設(shè)置的處理單元,執(zhí)行同一指令下不同數(shù)據(jù)的操作。如陣列處理機(jī)。MISD——多個(gè)指令部件對(duì)同一數(shù)據(jù)的各個(gè)處理階段進(jìn)行操作。這種機(jī)器很少見(jiàn)。MIMD——多個(gè)獨(dú)立或相對(duì)獨(dú)立的處理機(jī)分別執(zhí)行各自的程序、作業(yè)或進(jìn)程。例如多處理機(jī)。四、假設(shè)高速緩存Cache工作速度為主存的5倍,且Cache被訪問(wèn)命中的概率為90%,則采用Cache后,能使整個(gè)存儲(chǔ)系統(tǒng)獲得多高的加速比?能使整個(gè)存儲(chǔ)系統(tǒng)獲得3.57的加速比。第一章緒論拓展資源—計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的發(fā)展現(xiàn)狀和方向一、從CISC到RISC70年代以前的CBC結(jié)構(gòu)下的計(jì)算機(jī),將許多復(fù)雜指令通過(guò)硬件來(lái)實(shí)現(xiàn),很大程度簡(jiǎn)化了目標(biāo)程序,CISC指令長(zhǎng)度不一,可以接節(jié)省存儲(chǔ)空間,而且,CISC指令可以直接對(duì)存儲(chǔ)器操作。從80年代,隨著VLSI技術(shù)的發(fā)展,電路集成度大大提高,而由于CISC中指令系統(tǒng)龐大尋址方式,指令格式較多且長(zhǎng)度不一,許多復(fù)雜指令的控制邏輯及其不規(guī)整,用VLSI工藝實(shí)現(xiàn)存在很大困難,增加了硬件復(fù)雜度和設(shè)計(jì)成本,同時(shí)大量DRAM做主存儲(chǔ)器,主存與控存速度相當(dāng),復(fù)雜指令用微程序?qū)崿F(xiàn)和簡(jiǎn)單指令的子程序?qū)崿F(xiàn)效率相當(dāng),而且,大量的數(shù)字統(tǒng)計(jì)表明20%指令占據(jù)了80%的處理機(jī)時(shí)間,許多指令使用頻度低。針對(duì)以上這些問(wèn)題,1980年,PATTERSON和DITZEL提出了精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)的設(shè)想,通過(guò)精簡(jiǎn),指令系統(tǒng)使計(jì)算機(jī)結(jié)構(gòu)變得簡(jiǎn)單,合理,有效。IBM在1980年推出了PC/XT,然后又推出了RISC系統(tǒng)/6000。SUN也在其SPARC處理器中采用了這個(gè)概念。二、RISC技術(shù)的主要內(nèi)容一般來(lái)說(shuō),CPU的執(zhí)行速度受程序中的指令數(shù)L,每條指令執(zhí)行所需的周期數(shù)CPI和每個(gè)周期的時(shí)間T3個(gè)因素的影響。RISC技術(shù)主要從減少CP入手,采取了以下措施:(1)精簡(jiǎn)指令系統(tǒng)。大多數(shù)典型的RISC指令系統(tǒng)通過(guò)采用寄存器堆減少緩存次數(shù),減少CPI來(lái)提高CPU速度。同時(shí),采用簡(jiǎn)單的指令格式,固定的指令字長(zhǎng)和簡(jiǎn)單的尋址方式,讓指令的執(zhí)行盡可能安排在一個(gè)周期內(nèi)完成。(2)流水線和延遲轉(zhuǎn)移技術(shù)。采用流水線技術(shù)的方式工作,取指令和執(zhí)行指令并行進(jìn)行,雖然一條指令的執(zhí)行需要幾個(gè)周期的時(shí)間,但從平均效應(yīng)來(lái)看,每條指令的周期數(shù)大大減少,甚至達(dá)到每條指令只需一個(gè)周期。同時(shí)為了避免轉(zhuǎn)移指令中出現(xiàn)重疊方式預(yù)取的下一條指令作廢的浪費(fèi),提出了延遲轉(zhuǎn)移的思想,在這兩類(lèi)指令之后分別安排一條與它們不存在依賴(lài)關(guān)系的可立即執(zhí)行的指令,確保流水線的高效運(yùn)行。(3)采用LOAD,STORE結(jié)構(gòu)和高速緩存結(jié)構(gòu)。RISC技術(shù)只允許LOAD指令和STORE指令執(zhí)行存儲(chǔ)器操作,其他指令只能對(duì)寄存器進(jìn)行操作,使大多數(shù)指令的功能得到簡(jiǎn)化。縮短了執(zhí)行時(shí)間。同時(shí),RISC機(jī)器還設(shè)置了較大容量的高速緩存,以擴(kuò)展存儲(chǔ)器的帶寬,滿(mǎn)足CPU頻繁取指的需要,提高流水線的效率。(4)重疊寄存器窗口技術(shù)。重疊寄存窗口技術(shù)的基本思想是:在機(jī)器中配置一個(gè)很大的寄存器群,將其劃分給若干個(gè)過(guò)程使用,每個(gè)過(guò)程所用的一組寄存器又可分為三部分,第一部分用來(lái)與高一級(jí)(本過(guò)程的主調(diào)過(guò)程)交換參數(shù);第二部分只供本過(guò)程使用;第三部分用來(lái)與低一級(jí)過(guò)程(本過(guò)程的受調(diào)過(guò)程)交換參數(shù)。每個(gè)過(guò)程的第三部分寄存器與低一級(jí)的第一部分寄存器合用相同的物理寄存器,以達(dá)到寄存器的重疊使用。利用該重疊窗口進(jìn)行過(guò)程的參數(shù)交換沒(méi)有任何延遲。(5)在邏輯上采用以硬件為主,軟件為輔的技術(shù)。RISC控制器采用組合邏輯部件,而不采用微程序控制。首先微程序?qū)ξ⒋a的解釋和執(zhí)行很難在一個(gè)機(jī)器周期內(nèi)完成,這與RISC機(jī)器在一個(gè)機(jī)器周期內(nèi)執(zhí)行一條指令的思想是相違背的;其次,RISC采用硬布線控制邏輯的控制部件所占面積要比微程序存儲(chǔ)器少得多,可以利用所節(jié)余的面積安放寄存器組或其它邏輯電路。(6)采用優(yōu)化編譯程序。RISC指令集的簡(jiǎn)化使用CPU執(zhí)行同樣一個(gè)程序所需的指令數(shù)I比CISC所需的指令數(shù)I多,但通過(guò)優(yōu)化編譯程序和其他方法可減少指令數(shù)I。另外,還可優(yōu)化調(diào)整指令的執(zhí)行順序,以盡量減少機(jī)器的空等時(shí)間。(7)指令流調(diào)整技術(shù)。為了使RISC處理機(jī)中的指令流水線高效地工作。當(dāng)發(fā)現(xiàn)指令流有斷流可能時(shí),調(diào)整指令序列,可以通過(guò)重命名來(lái)取消數(shù)據(jù)相關(guān)等,從而提高流水線執(zhí)行效率。(8)指令取消技術(shù)。在使用指令取消技術(shù)的處理機(jī)里,所有指令都可以決定下面待執(zhí)行的指令是否應(yīng)該取消,如果取消,相當(dāng)于執(zhí)行一條空指令,不影響程序執(zhí)行環(huán)境。三、RISC技術(shù)的優(yōu)缺點(diǎn)實(shí)踐證明,采用RISC結(jié)構(gòu)可以帶來(lái)如下好處:(1)精簡(jiǎn)指令系統(tǒng)設(shè)計(jì)適合超大規(guī)模集成電路實(shí)現(xiàn)。指令條數(shù)相對(duì)較少,尋址方式簡(jiǎn)單,指令格式規(guī)整,控制器的譯碼和執(zhí)行硬件相對(duì)簡(jiǎn)單,VLSI片中用于實(shí)現(xiàn)控制器的這部分面積所占的比例明顯減少。(2)可以提供直接支持高級(jí)語(yǔ)言的能力,簡(jiǎn)化編譯程序的設(shè)計(jì)。指令總數(shù)的減少,縮小了編譯過(guò)程中對(duì)功能類(lèi)似的機(jī)器指令進(jìn)行選擇的范圍,減輕了對(duì)各種尋址方式進(jìn)行選擇,分析和變換的負(fù)擔(dān),易于更換或取消指令,調(diào)整指令順序,提高程序的運(yùn)行速度。而且,由于主要操作在寄存器間進(jìn)行,及寄存器重疊窗口的采用,直接支持子程序和過(guò)程調(diào)用的高級(jí)語(yǔ)言處理。(3)可提高機(jī)器的執(zhí)行速度和效率,降低設(shè)計(jì)成本,提高系統(tǒng)的可靠性。指令系統(tǒng)的精簡(jiǎn)可以加快指令的譯碼,控制器的簡(jiǎn)化可以縮短指令的執(zhí)行延時(shí)等等,這些都可以提高程序執(zhí)行的速度。同時(shí)也縮短了設(shè)計(jì)周期,減少了設(shè)計(jì)錯(cuò)誤,降低了設(shè)計(jì)成本,提高了系統(tǒng)的可靠性。四、計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的新發(fā)展VLIWVLIW(VERYLONGINSTRUCTIONWORD)超長(zhǎng)指令集架構(gòu),是微處理器設(shè)計(jì)領(lǐng)域中的一種越來(lái)越流行的技術(shù),采用了先進(jìn)的EPIC(清晰并行指令)設(shè)計(jì)。這種類(lèi)型的CPU芯片能從應(yīng)用程序中提取高度并行且長(zhǎng)度稍短的指令組成定長(zhǎng)長(zhǎng)指令數(shù)據(jù),并把這些機(jī)器指令均勻地分配給芯片中的眾多執(zhí)行單元。VLIW最大優(yōu)點(diǎn)是通過(guò)編譯器靜脈調(diào)度發(fā)掘程序中潛在的并行性,簡(jiǎn)化了處理器的結(jié)構(gòu),刪除了處理器內(nèi)部許多復(fù)雜的控制電路,這些電路通常是超標(biāo)量芯片(CISC和RISC)協(xié)調(diào)并行工作時(shí)必須使用的。VLIW的結(jié)構(gòu)簡(jiǎn)單,也能夠使其芯片制造成本降低,價(jià)格低廉,能耗少,而且性能也要比超標(biāo)量芯片高得多。目前基于這種指令架構(gòu)的微處理器主要有INTEL的IA-64和AMD的X86-64兩種。第二章存儲(chǔ)系統(tǒng)課堂筆記主要知識(shí)點(diǎn)掌握程度本章重點(diǎn)介紹了存儲(chǔ)系統(tǒng)的相關(guān)知識(shí),包括存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu)及特征,重點(diǎn)介紹了并行存儲(chǔ)器、高速緩沖存儲(chǔ)器、虛擬存儲(chǔ)器的功能/結(jié)構(gòu)及原理,最后簡(jiǎn)要介紹了存儲(chǔ)保護(hù)的常用方法。知識(shí)點(diǎn)整理一、存儲(chǔ)系統(tǒng)概述(一)存儲(chǔ)系統(tǒng)的形成在計(jì)算機(jī)系統(tǒng)中,存在著許多個(gè)不同介質(zhì)、不同性能,不同工作方式的存儲(chǔ)器,其目的都是存放計(jì)算機(jī)系統(tǒng)中所需要處理的程序和數(shù)據(jù)。儲(chǔ)存系統(tǒng)是隨計(jì)算機(jī)技術(shù)的不斷發(fā)展而逐步形成的。首先由于計(jì)算機(jī)的結(jié)構(gòu)由以CPU為中心轉(zhuǎn)變到以主儲(chǔ)存器為中心,使得訪問(wèn)存儲(chǔ)器的部件不只是單一通路的CPU,而且還有輸入輸出設(shè)備,有時(shí)還需要接受多個(gè)CPU,多個(gè)I/O部件的訪問(wèn),因此對(duì)主存的訪問(wèn)速度要求越來(lái)越高;其次由于計(jì)算機(jī)應(yīng)用的不斷發(fā)展,程序越來(lái)越大,數(shù)據(jù)越來(lái)越多,對(duì)機(jī)器處理能力的要求不斷提高,主存的容量要求也急劇增加;第三,由于半導(dǎo)體技術(shù)的不斷發(fā)展,CPU速度改進(jìn)很快,主存儲(chǔ)器要與其合理地匹配。計(jì)算機(jī)系統(tǒng)對(duì)存儲(chǔ)器的希望是速度高,能與CPU速度匹配;容量大,能存放下盡可能多的程序數(shù)據(jù),系統(tǒng)軟件;同時(shí)希望價(jià)格低廉。一種解決辦法是致力于對(duì)存儲(chǔ)器的介質(zhì)、器件組成技術(shù)的研究,以提供性能良好的新型存儲(chǔ)器;另一種解決辦法是通過(guò)對(duì)各種不同性能的存儲(chǔ)器之間尋求一種相互聯(lián)系、缺陷互補(bǔ)的方法,使其組成存儲(chǔ)器的系統(tǒng)以滿(mǎn)足高性能的要求。所以存儲(chǔ)系統(tǒng)是兩個(gè)或兩個(gè)以上的速度、容量、價(jià)格不同的存儲(chǔ)器采用硬件,軟件或軟、硬件結(jié)合的辦法聯(lián)結(jié)成一個(gè)系統(tǒng),使得整個(gè)系統(tǒng)看起來(lái)像一個(gè)存儲(chǔ)器,其速度接近其中最快的一個(gè),容量接近其中最大的一個(gè),價(jià)格接近其中最便宜的一個(gè)。(二)存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu)通用寄存器:CPU的一部分,匯編和編譯器可支配,速度最快。高速緩沖存儲(chǔ)器:Cache置于主存儲(chǔ)器與CPU之間,對(duì)匯編透明,速度比主存快得多。主存儲(chǔ)器:存儲(chǔ)系統(tǒng)的核心,是用戶(hù)的編程空間。輔助存儲(chǔ)器:軟盤(pán)、硬盤(pán)等,容量大,價(jià)格低。脫機(jī)大容量存儲(chǔ):磁帶機(jī),光盤(pán)等?,F(xiàn)代計(jì)算機(jī)的存儲(chǔ)系統(tǒng)中,主要采取了以下2種技術(shù):1.在主存與CPU之間增加了一級(jí)高速緩沖存儲(chǔ)器,使得CPU在對(duì)主存訪問(wèn)時(shí),所面對(duì)的存儲(chǔ)器具有高速緩存的速度和主存的容量。2.在主存與輔存之間采用了虛擬存儲(chǔ)技術(shù),使得CPU在訪問(wèn)主存時(shí),所見(jiàn)到的存儲(chǔ)器速度接近主存,容量接近輔存。(三)存儲(chǔ)系統(tǒng)的局部性、包含性、一致性局部性:根據(jù)局部性原理即程序往往重復(fù)訪問(wèn)它剛剛使用過(guò)的數(shù)據(jù)和指令,就有可能將最近期和最經(jīng)常被訪問(wèn)的那一部分指令和數(shù)據(jù)預(yù)取出來(lái)存放到速度更高的存儲(chǔ)器中,然后將執(zhí)行完成或不經(jīng)常訪問(wèn)的指令和數(shù)據(jù)不斷地替換出去放到容量大而速度慢的存儲(chǔ)器中。包含性:是指在容量小的存儲(chǔ)器中(稱(chēng)上層)所存放的內(nèi)容一定是其下層存儲(chǔ)器內(nèi)容的一部分,也就是說(shuō)在容量大的存儲(chǔ)器中,一定能找到上層存儲(chǔ)信息的副本。一致性:由于同一信息在各個(gè)層次中都存放了它的內(nèi)容,當(dāng)在某一層存儲(chǔ)器中被修改后,也必須使其在其他存儲(chǔ)器的副本,都進(jìn)行修改,以保持同一信息的一致性。二、并行存儲(chǔ)器(一)多體并行訪問(wèn)存儲(chǔ)器一個(gè)多體的主寄存器結(jié)構(gòu)圖如圖2.2.1所示,存儲(chǔ)器是由m個(gè)體組成,設(shè)m=2a,每個(gè)存儲(chǔ)體的容量為n,則n=2b由上述結(jié)構(gòu)可以看出該存儲(chǔ)器的頻帶寬度(指單位時(shí)間內(nèi)所能訪問(wèn)的數(shù)據(jù)量)B=mW/T,即可以同時(shí)訪問(wèn)m條指令或m個(gè)數(shù)據(jù),但取出的m個(gè)數(shù)不一定都有用,產(chǎn)生這一缺陷的主要原因是地址寄存器共用一個(gè),每次訪問(wèn)的地址碼各體內(nèi)相同。如果每個(gè)存儲(chǔ)體分別具有自己的地址寄存器那么上述缺陷可以大大改善。(二)多體并行交叉訪問(wèn)存儲(chǔ)器所謂交叉訪問(wèn)是指當(dāng)存在多個(gè)訪問(wèn)源時(shí),這些訪問(wèn)源可以同時(shí)向多個(gè)體中的任何一個(gè)發(fā)出訪問(wèn)請(qǐng)求。依據(jù)編址方式的不同,可分為高位交叉訪問(wèn)與低位交叉訪問(wèn)兩種。1、高位交叉訪問(wèn)圖2.2.2示出了高位交叉訪問(wèn)的存儲(chǔ)器結(jié)構(gòu)(高位連續(xù)地址分別處于不同體中),圖中結(jié)構(gòu)具有m個(gè)體,每個(gè)體內(nèi)容量為n個(gè)字,存儲(chǔ)單元的地址由兩部分組成,地址碼的低位部分為各體內(nèi)地址,由0~(n-1);高位字段表示了各體的體號(hào),由0~(m-1)。尋址時(shí),地址的高位字段指出尋址的體,低位字段送到該體的地址寄存器(MAR)。存儲(chǔ)器的總?cè)萘繛閙×n個(gè)字,地址碼長(zhǎng)度為log2(m×n)位,其中,地址的高字段為log2m位,低位字段為log2由于程序局部性原理,近期所用到的指令和數(shù)據(jù)往往都集中在一個(gè)體內(nèi),從而出現(xiàn)了并行訪問(wèn)沖突,如果在多任務(wù)多用戶(hù)的應(yīng)用狀態(tài)下,訪問(wèn)沖突較少。2、低位交叉訪問(wèn)圖2.2.3示出了低位交叉訪問(wèn)存儲(chǔ)器結(jié)構(gòu)(低位連續(xù)地址分別處于不同體中),地址碼的低位字段為存儲(chǔ)體號(hào),高位字段為存儲(chǔ)體內(nèi)的地址,低位字段譯碼后決定選擇哪個(gè)存儲(chǔ)體的數(shù)據(jù)。由于編址方式采用連續(xù)地址分布在不同存儲(chǔ)體中,因此并行性比較好,可以有效地拓寬存儲(chǔ)器的頻帶。為了達(dá)到提高主存儲(chǔ)器速度的目的,采用了低位交叉方式的存儲(chǔ)器,在一個(gè)存儲(chǔ)器周期內(nèi),m個(gè)存儲(chǔ)體必須分時(shí)啟動(dòng),實(shí)際上是一種采用流水線方式工作,因而被廣泛地采用,特別是在多處理機(jī),流水線處理機(jī)中,一般都采用了這種低位交叉訪問(wèn)的多體存儲(chǔ)器。在低位交叉訪問(wèn)的存儲(chǔ)器中,影響其性能提高的因素有二點(diǎn):一是轉(zhuǎn)移指令的出現(xiàn);二是數(shù)據(jù)訪問(wèn)時(shí)同體產(chǎn)生沖突,兩者比較起來(lái),后者的影響更為嚴(yán)重。如何才能減少這種沖突呢?下面以一維數(shù)組和二維數(shù)組為例,說(shuō)明解決沖突的方法。(1)一維數(shù)組(向量)的無(wú)沖突訪問(wèn)存儲(chǔ)器按連續(xù)地址訪問(wèn),沒(méi)有沖突,按位移量為2的變址方式訪問(wèn),頻帶寬度降低一半……方法:存儲(chǔ)體的個(gè)數(shù)取質(zhì)數(shù),且m≥向量長(zhǎng)度。例如:Burroughs公司巨型機(jī)BSP,存儲(chǔ)體個(gè)數(shù)為17;CRAY-1機(jī)存儲(chǔ)體個(gè)數(shù)為31;我國(guó)研制的銀河巨型機(jī),存儲(chǔ)體的個(gè)數(shù)為37。(2)二維數(shù)組的無(wú)沖突訪問(wèn)存儲(chǔ)器要求:一個(gè)n×n的二維數(shù)組,按行、列、對(duì)角線以及反對(duì)角線訪問(wèn),并且在不同的變址位移量情況下,都能實(shí)現(xiàn)無(wú)沖突訪問(wèn)。順序存儲(chǔ):按行、對(duì)角線訪問(wèn)沒(méi)有沖突,但按列訪問(wèn)每次沖突。方法:存儲(chǔ)體的個(gè)數(shù)大于或等于向量長(zhǎng)度(數(shù)組列數(shù))且取質(zhì)數(shù),并錯(cuò)位存放。三、高速緩沖存儲(chǔ)器(Cache)(一)高速緩沖存儲(chǔ)器的功能、結(jié)構(gòu)與工作原理高速緩沖存儲(chǔ)器是存在于主存與CPU之間的一級(jí)存儲(chǔ)器,由靜態(tài)存儲(chǔ)芯片(SRAM)組成,容量比較小但速度比主存高得多,接近于CPU的速度。Cache的功能是用來(lái)存放那些近期需要運(yùn)行的指令與數(shù)據(jù)。目的是提高CPU對(duì)存儲(chǔ)器的訪問(wèn)速度。為此需要解決2個(gè)技術(shù)問(wèn)題:一是主存地址與緩存地址的映象及轉(zhuǎn)換;二是按一定原則對(duì)Cache的內(nèi)容進(jìn)行替換。Cache的結(jié)構(gòu)和工作原理如圖2.3.1所示。主要由三大部分組成:Cache存儲(chǔ)體:存放由主存調(diào)入的指令與數(shù)據(jù)塊。地址轉(zhuǎn)換部件:建立目錄表以實(shí)現(xiàn)主存地址到緩存地址的轉(zhuǎn)換。替換部件:在緩存已滿(mǎn)時(shí)按一定策略進(jìn)行數(shù)據(jù)塊替換,并修改地址轉(zhuǎn)換部件。(二)地址映象與轉(zhuǎn)換概念:地址映象是指某一數(shù)據(jù)在內(nèi)存中的地址與在緩沖中的地址,兩者之間的對(duì)應(yīng)關(guān)系。下面介紹三種地址映象的方式。1、全相聯(lián)方式地址映象規(guī)則:主存的任意一塊可以映象到Cache中的任意一塊(1)主存與緩存分成相同大小的數(shù)據(jù)塊。(2)主存的某一數(shù)據(jù)塊可以裝入緩存的任意一塊空間中。全相聯(lián)方式的對(duì)應(yīng)關(guān)系如圖2.3.2所示。如果Cache的塊數(shù)為Cb,主存的塊數(shù)為Mb,則映象關(guān)系共有Cb×Mb種。圖2.3.3示出了目錄表的格式及地址變換規(guī)則。目錄表存放在相關(guān)(聯(lián))存儲(chǔ)器中,其中包括三部分:數(shù)據(jù)塊在主存的塊地址、存入緩存后的塊地址、及有效位(也稱(chēng)裝入位)。由于是全相聯(lián)方式,因此,目錄表的容量應(yīng)當(dāng)與緩存的塊數(shù)相同。舉例:某機(jī)主存容量為1M,Cache的容量為32KB,每塊的大小為16個(gè)字(或字節(jié))。劃出主、緩存的地址格式、目錄表格式及其容量。容量:與緩沖塊數(shù)量相同即211=2048(或32K/16=2048)。優(yōu)點(diǎn):命中率比較高,Cache存儲(chǔ)空間利用率高。缺點(diǎn):訪問(wèn)相關(guān)存儲(chǔ)器時(shí),每次都要與全部?jī)?nèi)容比較,速度低,成本高,因而應(yīng)用少。2、直接相聯(lián)方式地址映象規(guī)則:主存儲(chǔ)器中一塊只能映象到Cache的一個(gè)特定的塊中。(1)主存與緩存分成相同大小的數(shù)據(jù)塊。(2)主存容量應(yīng)是緩存容量的整數(shù)倍,將主存空間按緩存的容量分成區(qū),主存中每一區(qū)的塊數(shù)與緩存的總塊數(shù)相等。(3)主存中某區(qū)的一塊存入緩存時(shí)只能存入緩存中塊號(hào)相同的位置。圖2.3.4示出了直接相聯(lián)映象規(guī)則。可見(jiàn),主存中各區(qū)內(nèi)相同塊號(hào)的數(shù)據(jù)塊都可以分別調(diào)入緩存中塊號(hào)相同的地址中,但同時(shí)只能有一個(gè)區(qū)的塊存入緩存。由于主、緩存塊號(hào)相同,因此,目錄登記時(shí),只記錄調(diào)入塊的區(qū)號(hào)即可。圖2.3.5示出了主、緩沖地址格式、目錄表的格式及地址變換規(guī)則。主、緩存塊號(hào)及塊內(nèi)地址兩個(gè)字段完全相同。目錄表存放在高速小容量存儲(chǔ)器中,其中包括二部分:數(shù)據(jù)塊在主存的區(qū)號(hào)和有效位。目錄表的容量與緩存的塊數(shù)相同。地址變換過(guò)程:用主存地址中的塊號(hào)B去訪問(wèn)目錄存儲(chǔ)器,把讀出來(lái)的區(qū)號(hào)與主存地址中的區(qū)號(hào)E進(jìn)行比較,比較結(jié)果相等,有效位為1,則Cache命中,可以直接用塊號(hào)及塊內(nèi)地址組成的緩沖地址到緩存中取數(shù);比較結(jié)果不相等,有效位為1,可以進(jìn)行替換,如果有效位為0,可以直接調(diào)入所需塊。優(yōu)點(diǎn):地址映象方式簡(jiǎn)單,數(shù)據(jù)訪問(wèn)時(shí),只需檢查區(qū)號(hào)是否相等即可,因而可以得到比較快的訪問(wèn)速度,硬件設(shè)備簡(jiǎn)單。缺點(diǎn):替換操作頻繁,命中率比較低。舉例:上例中,主存容量為1M,Cache的容量為32KB,每塊的大小為16個(gè)字(或字節(jié))。劃出主、緩存的地址格式、目錄表格式及其容量。容量:與緩沖塊數(shù)量相同即211=2048(或32K/16=2048)。3、組相聯(lián)映象方式組相聯(lián)的映象規(guī)則:(1)主存和Cache按同樣大小劃分成塊。(2)主存和Cache按同樣大小劃分成組。(3)主存容量是緩存容量的整數(shù)倍,將主存空間按緩沖區(qū)的大小分成區(qū),主存中每一區(qū)的組數(shù)與緩存的組數(shù)相同。(4)當(dāng)主存的數(shù)據(jù)調(diào)入緩存時(shí),主存與緩存的組號(hào)應(yīng)相等,也就是各區(qū)中的某一塊只能存入緩存的同組號(hào)的空間內(nèi),但組內(nèi)各塊地址之間則可以任意存放,即從主存的組到Cache的組之間采用直接映象方式;在兩個(gè)對(duì)應(yīng)的組內(nèi)部采用全相聯(lián)映象方式。圖2.3.6示出了組相聯(lián)的映象關(guān)系,圖中緩存共分Cg個(gè)組,每組包含有Gb塊;主存是緩存的Me倍,所以共分有Me個(gè)區(qū),每個(gè)區(qū)有Cg組,每組有Gb塊。那么,主存地址格式中應(yīng)包含4個(gè)字段:區(qū)號(hào)、區(qū)內(nèi)組號(hào)、組內(nèi)塊號(hào)和塊內(nèi)地址。而緩存中包含3個(gè)字段:組號(hào)、組內(nèi)塊號(hào)、塊內(nèi)地址。主存地址與緩存地址的轉(zhuǎn)換有兩部分,組地址是按直接映象方式,按地址進(jìn)行訪問(wèn),而塊地址是采用全相聯(lián)方式,按內(nèi)容訪問(wèn)。組相聯(lián)的地址轉(zhuǎn)換部件也是采用相關(guān)存儲(chǔ)器實(shí)現(xiàn),見(jiàn)圖2.3.7。相關(guān)存儲(chǔ)器中每個(gè)單元包含有:主存地址中的區(qū)號(hào)E與組內(nèi)塊號(hào)B,兩者結(jié)合在一起,其對(duì)應(yīng)的字段是緩存塊地址b。相關(guān)存儲(chǔ)器的容量,應(yīng)與緩存的塊數(shù)相同。當(dāng)進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),先根據(jù)組號(hào),在目錄表中找到該組所包含的各塊的目錄,然后將被訪數(shù)據(jù)的主存區(qū)號(hào)與組內(nèi)塊號(hào),與本組內(nèi)各塊的目錄同時(shí)進(jìn)行比較。如果比較相等,而且有效位為“1”則命中??蓪⑵鋵?duì)應(yīng)的緩存塊地址b送到緩存地址寄存器的塊地址字段,與組號(hào)及塊內(nèi)地址組裝即形成緩存地址。如果比較不相等,說(shuō)明沒(méi)命中,所訪問(wèn)的數(shù)據(jù)塊尚沒(méi)有進(jìn)入緩存,則進(jìn)行組內(nèi)替換;如果有效位為0,則說(shuō)明緩存的該塊尚未利用,或是原來(lái)數(shù)據(jù)作廢,可重新調(diào)入新塊。優(yōu)點(diǎn):塊的沖突概率比較低,塊的利用率大幅度提高,塊失效率明顯降低。缺點(diǎn):實(shí)現(xiàn)難度和造價(jià)要比直接映象方式高。(三)替換策略根據(jù)程序局部性規(guī)律可知:程序在運(yùn)行中,總是頻繁地使用那些最近被使用過(guò)的指令和數(shù)據(jù)。這就提供了替換策略的理論依據(jù)。綜合命中率、實(shí)現(xiàn)的難易及速度的快慢各種因素,替換策略可有隨機(jī)法、先進(jìn)先出法、最近最少使用法等。1、隨機(jī)法(RAND法)隨機(jī)法是隨機(jī)地確定替換的存儲(chǔ)塊。設(shè)置一個(gè)隨機(jī)數(shù)產(chǎn)生器,依據(jù)所產(chǎn)生的隨機(jī)數(shù),確定替換塊。這種方法簡(jiǎn)單、易于實(shí)現(xiàn),但命中率比較低。2、先進(jìn)先出法(FIFO法)先進(jìn)先出法是選擇那個(gè)最先調(diào)入的那個(gè)塊進(jìn)行替換。當(dāng)最先調(diào)入并被多次命中的塊,很可能被優(yōu)先替換,因而不符合局部性規(guī)律。這種方法的命中率比隨機(jī)法好些,但還不滿(mǎn)足要求。先進(jìn)先出方法易于實(shí)現(xiàn),例如Solar-16/65機(jī)Cache采用組相聯(lián)方式,每組4塊,每塊都設(shè)定一個(gè)兩位的計(jì)數(shù)器,當(dāng)某塊被裝入或被替換時(shí)該塊的計(jì)數(shù)器清為0,而同組的其它各塊的計(jì)數(shù)器均加1,當(dāng)需要替換時(shí)就選擇計(jì)數(shù)值最大的塊被替換掉。3、最近最少使用法(LRU法)LRU法是依據(jù)各塊使用的情況,總是選擇那個(gè)最近最少使用的塊被替換。這種方法比較好地反映了程序局部性規(guī)律。實(shí)現(xiàn)LRU策略的方法有多種。下面簡(jiǎn)單介紹計(jì)數(shù)器法、寄存器棧法及硬件邏輯比較對(duì)法的設(shè)計(jì)思路。計(jì)數(shù)器方法:緩存的每一塊都設(shè)置一個(gè)計(jì)數(shù)器,計(jì)數(shù)器的操作規(guī)則是:(1)被調(diào)入或者被替換的塊,其計(jì)數(shù)器清“0”,而其它的計(jì)數(shù)器則加“1”。(2)當(dāng)訪問(wèn)命中時(shí),所有塊的計(jì)數(shù)值與命中塊的計(jì)數(shù)值要進(jìn)行比較,如果計(jì)數(shù)值小于命中塊的計(jì)數(shù)值,則該塊的計(jì)數(shù)值加“1”;如果塊的計(jì)數(shù)值大于命中塊的計(jì)數(shù)值,則數(shù)值不變。最后將命中塊的計(jì)數(shù)器清為0。(3)需要替換時(shí),則選擇計(jì)數(shù)值最大的塊被替換。例如IBM370/65機(jī)的Cache用組相聯(lián)方式,每組4塊,每一塊設(shè)置一個(gè)2位的計(jì)數(shù)器,其工作狀態(tài)如表2.3.1。表2.3.1計(jì)數(shù)器法實(shí)現(xiàn)LRU策略主存塊地址塊4塊2塊3塊5塊號(hào)計(jì)數(shù)器塊號(hào)計(jì)數(shù)器塊號(hào)計(jì)數(shù)器塊號(hào)計(jì)數(shù)器Cache塊0110111111500Cache塊1301310300301Cache塊2400401410411Cache塊3空XX200201210操作起始狀態(tài)調(diào)入命中替換寄存器棧法:設(shè)置一個(gè)寄存器棧,其容量為Cache中替換時(shí)參與選擇的塊數(shù)。如在組相聯(lián)方式中,則是同組內(nèi)的塊數(shù)。堆棧由棧頂?shù)綏5滓来斡涗浿鞔鏀?shù)據(jù)存入緩存的塊號(hào),現(xiàn)以一組內(nèi)4塊為例說(shuō)明其工作情況,如表2.3.2所示,表中1~4為緩存中的一組的4個(gè)塊號(hào)。表2.3.2寄存器棧法實(shí)現(xiàn)緩存操作初始狀態(tài)調(diào)入2命中塊4替換塊1寄存器03241寄存器14324寄存器21432寄存器3空113(1)當(dāng)緩存中尚有空閑時(shí),如果不命中,則可直接調(diào)入數(shù)據(jù)塊,并將新訪問(wèn)的緩沖塊號(hào)壓入堆棧,位于棧頂。其他棧內(nèi)各單元依次由頂向下順壓一個(gè)單元,直到空閑單元為止。(2)當(dāng)緩存已滿(mǎn),如果數(shù)據(jù)訪問(wèn)命中,則將訪問(wèn)的緩存塊號(hào)壓入堆棧,其他各單元內(nèi)容由頂向底逐次下壓直到被命中塊號(hào)的原來(lái)位置為止。如果訪問(wèn)不命中,說(shuō)明需要替換,此時(shí)棧底單元中的塊號(hào)即是最久沒(méi)有被使用的。所以將新訪問(wèn)塊號(hào)壓入堆棧,棧內(nèi)各單元內(nèi)容依次下壓直到棧底,自然,棧底所指出的塊被替換。比較對(duì)法:比較對(duì)法是用一組硬件的邏輯電路來(lái)記錄各塊使用的時(shí)間與次數(shù)。假設(shè)Cache的每組中有4塊,替換時(shí),是比較4塊中那一塊是最久沒(méi)使用的,4塊之間兩兩相比可以有6種比較關(guān)系。如果每?jī)蓧K之間的對(duì)比關(guān)系用一個(gè)RS觸發(fā)器,則需要6個(gè)觸發(fā)器(T12,T13,T14,T23,T24,T34),設(shè)T12=0表示塊1比塊2最久沒(méi)使用,T12=1表示塊2比塊1最久沒(méi)有被使用。在每次訪問(wèn)命中或者新調(diào)入塊時(shí),與該塊有關(guān)的觸發(fā)器的狀態(tài)都要進(jìn)行修改。按此原理,由6個(gè)觸發(fā)器組成的一組編碼狀態(tài)可以指出應(yīng)被替換的塊。例如,塊1被替換的條件是:T12=0,T13=0,T14=0;塊2被替換的條件是:T12=1,T23=0,T24=0等等。(四)Cache的一致性問(wèn)題Cache的內(nèi)容是主存內(nèi)容的一部分,是主存的副本,內(nèi)容應(yīng)該與主存一致。由于:(1)CPU寫(xiě)Cache,沒(méi)有立即寫(xiě)主存;(2)I/O處理機(jī)或I/O設(shè)備寫(xiě)主存。從而造成Cache與主存內(nèi)容的不一致,如圖2.3.8所示。對(duì)Cache進(jìn)行寫(xiě)操作時(shí)引起的不一致的解決方法:1、全寫(xiě)法亦稱(chēng)寫(xiě)直達(dá)法(WT法-Writethrough)方法:在對(duì)Cache進(jìn)行寫(xiě)操作的同時(shí),也對(duì)主存該內(nèi)容進(jìn)行寫(xiě)入。優(yōu)點(diǎn):可靠性較高,操作過(guò)程比較簡(jiǎn)單。缺點(diǎn):寫(xiě)操作速度得不到改善,與寫(xiě)主存的速度相同。2、寫(xiě)回法(WB法-Writeback)方法:在CPU執(zhí)行寫(xiě)操作時(shí),只寫(xiě)入Cache,不寫(xiě)入主存。優(yōu)點(diǎn):速度較高。缺點(diǎn):可靠性較差,控制操作比較復(fù)雜。(五)Cache性能分析1、Cache系統(tǒng)的加速比存儲(chǔ)系統(tǒng)采用Cache技術(shù)的主要目的是提高存儲(chǔ)器的訪問(wèn)速度,加速比是其重要的性能參數(shù)。Cache存儲(chǔ)系統(tǒng)的加速比SP(Speedup)為:其中:Tm為主存儲(chǔ)器的訪問(wèn)周期,Tc為Cache的訪問(wèn)周期,T則為Cache存儲(chǔ)系統(tǒng)的等效訪問(wèn)周期,H為命中率??梢钥闯?,加速比的大小與兩個(gè)因素有關(guān):命中率H及Cache與主存訪問(wèn)周期的比值Tc/Tm,命中率越高加速比越大。圖2.3.9示出了加速比與命中率的關(guān)系。2、Cache的命中率影響Cache命中率的因素很多,如Cache的容量,塊的大小,映象方式,替換策略以及程序執(zhí)行中地址流的分布情況等等。一般地說(shuō),Cache容量越大則命中率越高,當(dāng)容量達(dá)到一定程度后,容量的增加命中率的改善并不大;Cache塊容量加大,命中率也明顯增加,但增加到一定值之后反而出現(xiàn)命中率下降的現(xiàn)象;直接映象法命中率比較低,全相聯(lián)方式命中率比較高,在組相聯(lián)方式中,組數(shù)分得越多,則命中率下降。四、虛擬存儲(chǔ)器(一)概述目的:虛擬存儲(chǔ)器是由主存儲(chǔ)器和輔助存儲(chǔ)器組成,通過(guò)必須的軟件和硬件的支持,使得CPU可以訪問(wèn)的存儲(chǔ)器具有近似于主存的速度和近似于輔存的容量。虛擬存儲(chǔ)器通過(guò)存儲(chǔ)管理部件,使輔存中的內(nèi)容動(dòng)態(tài)地調(diào)入主存,以滿(mǎn)足程序?qū)Υ笕萘看鎯?chǔ)器的要求。工作過(guò)程:CPU訪問(wèn)主存時(shí)所給出的是虛地址VA,必須通過(guò)存儲(chǔ)管理部件進(jìn)行轉(zhuǎn)換。如果訪問(wèn)命中主存,則將VA轉(zhuǎn)換成主存的物理地址PA,到主存存取數(shù)據(jù)或指令(D或I);如果不命中,則說(shuō)明所需的I或D尚在輔存,則將VA轉(zhuǎn)換成輔存地址,進(jìn)行輔存與主存之間的信息傳輸。主要技術(shù)問(wèn)題:虛實(shí)地址映象與轉(zhuǎn)換,主存內(nèi)容的替換(與高速緩存存儲(chǔ)器相同)。(二)虛擬存儲(chǔ)器的管理方式1、段式管理(1)地址映象:一個(gè)用戶(hù)程序可以包含多個(gè)功能不同的程序段,例如主程序、各個(gè)子程序、數(shù)據(jù)塊、表格、向量等等。各段的大小可以不同。因此,可以將虛存空間分段,當(dāng)程序從輔存調(diào)入主存時(shí),按段調(diào)入,按段分配足夠的空間,段內(nèi)地址連續(xù),只要主存具有足夠的連續(xù)空間,新調(diào)入的段可以存放在內(nèi)存的任意空間。如圖2.4.1所示。為了記錄地址映象關(guān)系,每一個(gè)應(yīng)用程序(或進(jìn)程)都建立一個(gè)段表。段表的內(nèi)容主要應(yīng)包括段長(zhǎng)度及在主存的起始地址。每個(gè)程序段調(diào)入時(shí),應(yīng)填入段表相應(yīng)內(nèi)容。(2)地址轉(zhuǎn)換:主存與虛存的地址格式如下:如圖2.4.2所示,當(dāng)CPU進(jìn)行訪問(wèn)時(shí),給出的是虛地址VA,首先根據(jù)用戶(hù)號(hào)對(duì)基址寄存器進(jìn)行訪問(wèn)找到用戶(hù)號(hào),取出其段首地址,然后與VA中的段號(hào)相加,即得到所要訪問(wèn)的段號(hào),根據(jù)此段記錄的主存首地址與段內(nèi)地址相加即可得主存實(shí)地址。(3)主要優(yōu)點(diǎn):程序模塊化的性能好,各段在功能上是相互獨(dú)立的。便于編制、修改和調(diào)試,對(duì)某一段的處理對(duì)其他各段沒(méi)有影響。便于程序和數(shù)據(jù)的共享。因?yàn)楣δ苌溪?dú)立而完整,所以當(dāng)其他程序需要共享時(shí),可以在主段中裝入此段,在段表中列入它的主存首址即可享用。程序的動(dòng)態(tài)鏈接比較容易。便于實(shí)現(xiàn)存儲(chǔ)保護(hù)。(4)主要缺點(diǎn):地址變換所需的時(shí)間比較長(zhǎng)。主存的空間利用不充分。對(duì)輔存(磁盤(pán))的管理比較困難。2、頁(yè)式管理(1)地址映象:頁(yè)式管理是將主存空間與虛存空間按固定的大小劃分成塊,每塊稱(chēng)為一頁(yè)。頁(yè)的大小和劃分與程序的邏輯功能無(wú)關(guān),由操作系統(tǒng)軟件來(lái)執(zhí)行。一般而言,一頁(yè)的大小應(yīng)該是512Bit的整數(shù)倍,因?yàn)檩o助磁盤(pán)存儲(chǔ)的物理塊的大小為512Bit。虛頁(yè)中的頁(yè)稱(chēng)為虛頁(yè),實(shí)存中的各頁(yè)稱(chēng)為實(shí)頁(yè),各虛頁(yè)與實(shí)頁(yè)之間按全相聯(lián)方式映象,也就是虛頁(yè)中的一頁(yè),可以存入主存中的任意一頁(yè)的位置,如圖2.4.3所示。(2)地址轉(zhuǎn)換:主存地址與虛存地址只是頁(yè)號(hào)不同,也就是頁(yè)的首地址不同,而頁(yè)內(nèi)地址是相同的。其地址格式如下:圖2.4.4示出了地址轉(zhuǎn)換過(guò)程,當(dāng)CPU給出所要訪問(wèn)的虛地址后,根據(jù)用戶(hù)號(hào)訪問(wèn)基址寄存器,求得用戶(hù)的頁(yè)表首地址Pa,然后與虛地址中的虛頁(yè)號(hào)P相加,得到該頁(yè)的表目,由此表目中得到該頁(yè)存入主存中的實(shí)頁(yè)號(hào)為p,將該頁(yè)號(hào)讀出與頁(yè)內(nèi)地址組裝即可得到主存的實(shí)際地址。(3)主要優(yōu)點(diǎn):主存儲(chǔ)器的空間利用率比較高,不得已而浪費(fèi)的空間每個(gè)用戶(hù)不到一頁(yè)。頁(yè)表的管理比較簡(jiǎn)單,可以不考慮程序的長(zhǎng)短;頁(yè)表的結(jié)構(gòu)也比較簡(jiǎn)單。地址映象與地址轉(zhuǎn)換速度比較快。按頁(yè)的管理方式,與對(duì)輔存的地址格式是一致的,因而管理起來(lái)比較容易。(4)主要缺點(diǎn):由于頁(yè)的長(zhǎng)度一般比段小,所以虛空間的頁(yè)數(shù)就很多,頁(yè)表長(zhǎng)度很大,占用很大的存儲(chǔ)空間(幾MB~幾十MB)。程序的模塊化性能不好。3、段頁(yè)式管理(1)地址映象:段頁(yè)式管理是將虛擬存儲(chǔ)空間按段式管理,而主存空間按頁(yè)式管理,存在于虛空間的程序按邏輯關(guān)系分段,每一段又可分為固定大小的頁(yè);主存則只分成若干相同大小的頁(yè)。段頁(yè)式地址映象的方式是虛存的任意一段的任意一頁(yè),可以存入主存的任意一個(gè)實(shí)頁(yè)空間。如圖2.4.5所示。(2)地址轉(zhuǎn)換:為了記錄下這種映象關(guān)系和進(jìn)行地址轉(zhuǎn)換,需要三層表:段表基地址表,段表和頁(yè)表。每個(gè)用戶(hù)在段表基址表中占一行,在段表基地址表中給出該用戶(hù)的段表長(zhǎng)度和段表首地址;每個(gè)用戶(hù)一張段表,每個(gè)程序段在段表中占一行,在段表中給出該程序段的頁(yè)表長(zhǎng)度和頁(yè)表的起始地址;每一段都有一張頁(yè)表,頁(yè)表中給出這個(gè)程序段的每一頁(yè)在主存儲(chǔ)器中的實(shí)頁(yè)號(hào)。圖2.4.6示出了段頁(yè)式管理地址轉(zhuǎn)換過(guò)程,CPU根據(jù)虛地址用戶(hù)號(hào)U,查找段表基地址表得到該用戶(hù)的段表首地址As,然后與虛地址中的段號(hào)S相加,在段表中查找到頁(yè)表的首地址,然后再與虛地址中的虛頁(yè)號(hào)P相加,在頁(yè)表中找到該頁(yè)在內(nèi)存的實(shí)際頁(yè)首地址p,再與虛地址中的頁(yè)內(nèi)地址組合得到所要訪問(wèn)的主存地址。(3)主要優(yōu)缺點(diǎn):綜合了段式、頁(yè)式的優(yōu)點(diǎn),但多了一次查表過(guò)程,因而降低了速度。(三)虛擬存儲(chǔ)器的工作過(guò)程在說(shuō)明虛擬存儲(chǔ)器工作過(guò)程之前需要先說(shuō)明兩個(gè)問(wèn)題,一是為了加快查表速度所采取的措施;二是虛地址與輔存地址,也就是磁盤(pán)地址的轉(zhuǎn)換。下面以頁(yè)式管理為例。1、快表和目錄表為了提高地址轉(zhuǎn)換速度,縮短查表時(shí)間,采用一個(gè)小容量的、高速的相關(guān)存儲(chǔ)部件,用來(lái)存放當(dāng)前最經(jīng)常用到的那一部分頁(yè)表,采取按內(nèi)容相聯(lián)方式進(jìn)行訪問(wèn)。這樣,查頁(yè)表的時(shí)間就相當(dāng)于訪問(wèn)小容量的相關(guān)存儲(chǔ)器的時(shí)間,從而大大地提高了速度,這個(gè)小容量相關(guān)存儲(chǔ)器稱(chēng)為快表,存放在主存的頁(yè)表稱(chēng)為慢表??毂淼膬?nèi)容包括兩部分即虛地址與實(shí)地址的對(duì)應(yīng)關(guān)系。虛地址中包括用戶(hù)號(hào)及虛頁(yè)號(hào),對(duì)應(yīng)的是它存入主存的實(shí)頁(yè)號(hào)。當(dāng)進(jìn)行地址轉(zhuǎn)換時(shí),將虛地址中的用戶(hù)號(hào)和虛頁(yè)號(hào)做為模式與快表中的各表目進(jìn)行比較。同時(shí)也送往主存,查找慢表。如果快表命中,立即可以得到對(duì)應(yīng)的實(shí)頁(yè)號(hào)。如果不命中,則由慢表中求出實(shí)頁(yè)號(hào)。然后替換快表內(nèi)容。如圖2.4.7所示。目錄表法是采用一個(gè)小容量的高速存儲(chǔ)器(按照內(nèi)容訪問(wèn)的相關(guān)存儲(chǔ)器,稱(chēng)為目錄表),把那些已經(jīng)調(diào)入的頁(yè)的地址對(duì)應(yīng)關(guān)系存入其中。因?yàn)轫?yè)表的容量是整個(gè)虛空間的頁(yè)數(shù),但實(shí)際上被用到的頁(yè)表內(nèi)容占整個(gè)頁(yè)表容量的比例很小,因此可以把裝入位為“1”的頁(yè)表表目存入高速的目錄表中。在CPU訪問(wèn)時(shí),可先查目錄表,凡已入駐主存的地址都記錄在此目錄表中,一般情況下都可查到它的主存地址。如果在目錄表中沒(méi)有查到,則說(shuō)明此頁(yè)尚未進(jìn)入主存。此時(shí)需要由輔存將要訪問(wèn)的頁(yè)全部送入主存。如圖2.4.8所示。2、虛存與外存地址的轉(zhuǎn)換當(dāng)CPU訪問(wèn)主存時(shí),虛地址通過(guò)頁(yè)表轉(zhuǎn)換成主存地址。當(dāng)該虛地址所在的頁(yè)尚沒(méi)有調(diào)入主存時(shí),就應(yīng)當(dāng)按照虛地址到輔存中尋找到該頁(yè),并通過(guò)輸入輸出操作調(diào)入主存。因此需要將虛地址轉(zhuǎn)換成輔存地址。虛地址與磁盤(pán)地址(輔存地址)的轉(zhuǎn)換也是建立一個(gè)對(duì)應(yīng)關(guān)系表稱(chēng)為外頁(yè)表,它記錄了虛地址與磁盤(pán)實(shí)地址的對(duì)應(yīng)關(guān)系,轉(zhuǎn)換過(guò)程如圖2.4.9所示。外頁(yè)表的表目是按虛存頁(yè)號(hào)順序排放的,每個(gè)表目?jī)?nèi)只記錄了該虛頁(yè)對(duì)應(yīng)的磁盤(pán)地址及裝入位。每一個(gè)用戶(hù)具有一張外頁(yè)表,外頁(yè)表存放在主存中,通過(guò)執(zhí)行軟件進(jìn)行表目的查找。外頁(yè)表的首地址根據(jù)虛地址中的用戶(hù)號(hào)來(lái)查找,再根據(jù)虛頁(yè)號(hào)到外頁(yè)表中查找該頁(yè)對(duì)應(yīng)的磁盤(pán)地址。3、頁(yè)式管理虛擬存儲(chǔ)器工作過(guò)程(1)系統(tǒng)中每個(gè)用戶(hù)都有自己的頁(yè)表基址寄存器,頁(yè)表(慢表)及快表,當(dāng)CPU需要訪問(wèn)時(shí),首先查快表,如果命中則可以得到實(shí)頁(yè)號(hào),然后與頁(yè)內(nèi)地址組裝成為主存的實(shí)際地址。(2)如果在快表中不命中,則通過(guò)查慢表得出實(shí)頁(yè)號(hào),同時(shí)修改快表內(nèi)容。(3)如果慢表中仍然沒(méi)有命中,則說(shuō)明該頁(yè)尚未進(jìn)入主存,發(fā)生頁(yè)面實(shí)效,出現(xiàn)缺頁(yè)中斷,系統(tǒng)轉(zhuǎn)入中斷處理。在中斷處理程序中需完成兩項(xiàng)工作:一是查外頁(yè)表,進(jìn)行虛地址與磁盤(pán)地址的轉(zhuǎn)換,并到磁盤(pán)中讀取該頁(yè)。二是查詢(xún)主存使用狀態(tài),如果主存沒(méi)有存滿(mǎn),則直接將磁盤(pán)信息調(diào)入,并修改頁(yè)表及快表;如果主存已滿(mǎn),則需要進(jìn)行替換。為了方便查詢(xún)主存占用情況,通常建立一個(gè)幀頁(yè)表(幀頁(yè)號(hào),內(nèi)容,虛地址,狀態(tài)位),其中幀頁(yè)號(hào)字段是指主存的實(shí)際頁(yè)號(hào),內(nèi)容字段存放用戶(hù)名或程序名,虛地址字段記錄存入該頁(yè)的虛頁(yè)號(hào),狀態(tài)頁(yè)字段指明虛頁(yè)的信息是否已調(diào)入主存。(四)頁(yè)面替換策略當(dāng)發(fā)生頁(yè)面失效時(shí),要從磁盤(pán)中調(diào)入一頁(yè)到主存。如果主存儲(chǔ)器的所有頁(yè)面都已經(jīng)被占用,必須從主存儲(chǔ)器中淘汰掉一個(gè)不常使用的頁(yè)面,以便騰出主存空間來(lái)存放新調(diào)入的頁(yè)面。由于虛擬存儲(chǔ)器技術(shù)的理論依據(jù)與高速緩沖存儲(chǔ)器相同,都是程序局部性原理,所以替換策略基本上是相同的。即:(1)隨機(jī)算法(RANDrandomalgorithm)(2)先進(jìn)先出算法(FIFOfirst-infirst-outalgorithm)(3)近期最少使用算法(LFUleastfrequentlyusedalgorithm)(4)最久沒(méi)有使用算法(LRUleastrecentlyusedalgorithm)(五)虛擬存儲(chǔ)器的性能分析虛擬存儲(chǔ)器技術(shù),改善了主存容量不足的缺陷,使用戶(hù)可以使用到近似于輔存的空間,希望獲得近似于主存的訪問(wèn)速度。影響訪問(wèn)速度的主要因素是訪問(wèn)快表和頁(yè)表的命中率,訪問(wèn)虛存的等效訪問(wèn)周期Tv可以用下式計(jì)算:其中:Hv是訪問(wèn)主存的命中率;T1是訪問(wèn)主存的時(shí)間;T2是磁盤(pán)存儲(chǔ)器的訪問(wèn)速度。影響命中率的因素有下列幾方面:1.頁(yè)面大?。寒?dāng)頁(yè)面比較小時(shí),隨著頁(yè)面的增大,命中率明顯提高,但當(dāng)頁(yè)面增大到一定值時(shí),命中率不再增大,而隨著頁(yè)面的增大而下降。2.主存容量:當(dāng)主存容量增加時(shí),命中率不斷提高;當(dāng)容量增大到一定程度后,命中率的提高就不大了。3.頁(yè)面調(diào)度方式:頁(yè)面的調(diào)度都是發(fā)生在產(chǎn)生缺頁(yè)中斷時(shí)進(jìn)行,因此在程序剛開(kāi)始運(yùn)行時(shí)命中率很低,為此可以采用預(yù)取式調(diào)度法,提高命中率。五、存儲(chǔ)保護(hù)在采用了多用戶(hù)虛擬存儲(chǔ)技術(shù)后,在主存中存放的有系統(tǒng)程序也有用戶(hù)程序,甚至是多個(gè)用戶(hù)的程序。為了防止各用戶(hù)程序之間訪問(wèn)錯(cuò)誤,保護(hù)系統(tǒng)程序免受破壞,就要設(shè)法使各用戶(hù)之間,用戶(hù)與系統(tǒng)程序之間隔離開(kāi)。下面介紹三種存儲(chǔ)保護(hù)方式。(一)加界保護(hù)方式在采用段式管理的方式下,程序段在內(nèi)存是連續(xù)存放的,因此可以在CPU中設(shè)置多個(gè)界限寄存器,每一個(gè)程序占用一對(duì)界限寄存器。當(dāng)調(diào)入時(shí),可以將其上界、下界存入界限寄存器中,當(dāng)程序運(yùn)行過(guò)程中,每當(dāng)訪問(wèn)主存時(shí),首先將訪問(wèn)地址與上下界寄存器進(jìn)行比較,如果在此區(qū)域內(nèi),則允許訪問(wèn),否則不允許訪問(wèn)。這種保護(hù)方式是對(duì)存儲(chǔ)區(qū)的保護(hù),運(yùn)用于段式管理。(二)鍵保護(hù)方式在頁(yè)式或段頁(yè)式管理中,主存是按頁(yè)面管理的。將主存的每一頁(yè)都設(shè)置一個(gè)存儲(chǔ)鍵,給予一個(gè)鍵號(hào),此鍵號(hào)存放在快表的表目中。對(duì)于每個(gè)用戶(hù)程序的各頁(yè),也設(shè)置一個(gè)程序鍵,給予一個(gè)鍵號(hào)。當(dāng)該頁(yè)由輔存調(diào)入主存時(shí),就將其調(diào)入的實(shí)頁(yè)號(hào)及其鍵號(hào)登記在快表中,將程序鍵號(hào),送入程序狀態(tài)字中。每次訪問(wèn)主存,首先進(jìn)行鍵號(hào)比較,如果鍵號(hào)相等才允許訪問(wèn),存儲(chǔ)鍵與程序鍵鍵號(hào)的分配,由操作系統(tǒng)完成。(三)環(huán)保護(hù)方式將系統(tǒng)程序和各用戶(hù)程序按其功能的性質(zhì)和要求分為幾個(gè)級(jí)別,分別授予不同的權(quán)限。各級(jí)之間如同同心環(huán)的關(guān)系由內(nèi)層向外層級(jí)別逐漸降低,各層的環(huán)號(hào)由操作系統(tǒng)給定,每個(gè)程序都具有一個(gè)環(huán)號(hào),此環(huán)號(hào)說(shuō)明該程序只能訪問(wèn)它的同級(jí)或低級(jí)的程序。為了進(jìn)一步對(duì)信息進(jìn)行保護(hù),對(duì)于那些可以訪問(wèn)頁(yè)面的訪問(wèn)方式也給予了授權(quán),對(duì)內(nèi)存的信息可以有三種訪問(wèn)操作,即讀、寫(xiě)、執(zhí)行,訪問(wèn)方式就是對(duì)這三種訪問(wèn)操作的規(guī)定。第二章存儲(chǔ)系統(tǒng)關(guān)鍵詞匯1、通用寄存器CPU的一部分,匯編和編譯器可支配,速度最快。2、高速緩沖存儲(chǔ)器Cache置于主存儲(chǔ)器與CPU之間,對(duì)匯編透明,速度比主存快得多。3、主存儲(chǔ)器存儲(chǔ)系統(tǒng)的核心,是用戶(hù)的編程空間。4、輔助存儲(chǔ)器軟盤(pán)、硬盤(pán)等,容量大,價(jià)格低。5、脫機(jī)大容量存儲(chǔ)磁帶機(jī),光盤(pán)等。6、地址映象指某一數(shù)據(jù)在內(nèi)存中的地址與在緩沖中的地址,兩者之間的對(duì)應(yīng)關(guān)系。7、全相聯(lián)方式地址映象地址映象規(guī)則:主存的任意一塊可以映象到Cache中的任意一塊(1)主存與緩存分成相同大小的數(shù)據(jù)塊。(2)主存的某一數(shù)據(jù)塊可以裝入緩存的任意一塊空間中。8、直接相聯(lián)方式地址映象地址映象規(guī)則:主存儲(chǔ)器中一塊只能映象到Cache的一個(gè)特定的塊中。(1)主存與緩存分成相同大小的數(shù)據(jù)塊。(2)主存容量應(yīng)是緩存容量的整數(shù)倍,將主存空間按緩存的容量分成區(qū),主存中每一區(qū)的塊數(shù)與緩存的總塊數(shù)相等。(3)主存中某區(qū)的一塊存入緩存時(shí)只能存入緩存中塊號(hào)相同的位置。9、組相聯(lián)映象方式地址映象組相聯(lián)的映象規(guī)則:(1)主存和Cache按同樣大小劃分成塊。(2)主存和Cache按同樣大小劃分成組。(3)主存容量是緩存容量的整數(shù)倍,將主存空間按緩沖區(qū)的大小分成區(qū),主存中每一區(qū)的組數(shù)與緩存的組數(shù)相同。(4)當(dāng)主存的數(shù)據(jù)調(diào)入緩存時(shí),主存與緩存的組號(hào)應(yīng)相等,也就是各區(qū)中的某一塊只能存入緩存的同組號(hào)的空間內(nèi),但組內(nèi)各塊地址之間則可以任意存放,即從主存的組到Cache的組之間采用直接映象方式;在兩個(gè)對(duì)應(yīng)的組內(nèi)部采用全相聯(lián)映象方式。第二章存儲(chǔ)系統(tǒng)FAQ一、主存實(shí)際頻寬與模數(shù)m的關(guān)系是什么?出現(xiàn)這種現(xiàn)象的原因是什么?指令流與數(shù)據(jù)流完全隨機(jī)時(shí),主存實(shí)際頻寬與模塊數(shù)m有什么關(guān)系?答:并行主存系統(tǒng)的實(shí)際頻寬隨模數(shù)m的增加會(huì)提高,但不是線性增加,隨模數(shù)m增大,其實(shí)際頻寬的增量越來(lái)越小。這是因?yàn)槌绦蛑械闹噶詈蛿?shù)據(jù)并不是完全順序放置和被訪問(wèn)的。程序會(huì)有轉(zhuǎn)移,數(shù)據(jù)分布有一定的隨機(jī)性。如果指令流和數(shù)據(jù)流完全隨機(jī)時(shí),主存的實(shí)際頻寬將隨模數(shù)m的增大,大致成平方根的關(guān)系增大。二、在頁(yè)式虛擬儲(chǔ)存器中,什么叫頁(yè)面失效?什么叫頁(yè)面爭(zhēng)用?什么時(shí)候兩者同時(shí)發(fā)生?什么時(shí)候兩者不同時(shí)發(fā)生?答:要訪問(wèn)的虛頁(yè)不再實(shí)際主存中時(shí),就會(huì)發(fā)生頁(yè)面失效。當(dāng)頁(yè)面調(diào)入主存,主存中的頁(yè)面位置全部已被其它虛頁(yè)占用時(shí),就會(huì)發(fā)生頁(yè)面增用。當(dāng)分配給程序的內(nèi)存已被全部占用之后,只要發(fā)生頁(yè)面失效,就一定會(huì)發(fā)生頁(yè)面爭(zhēng)用。反之,發(fā)生頁(yè)面失效,并不會(huì)發(fā)生頁(yè)面爭(zhēng)用。三、什么是堆棧型的替換算法(用式子描述)?答:能滿(mǎn)足下列兩個(gè)關(guān)系式的替換算法就是堆棧型的替換算法。即其中,n為分配給程序的實(shí)頁(yè)數(shù),Bt(n)為t時(shí)刻在n個(gè)實(shí)頁(yè)中的頁(yè)面集合,Lt為t時(shí)刻已處理過(guò)的不同虛頁(yè)的頁(yè)面數(shù)。四、對(duì)于二級(jí)虛擬存儲(chǔ)層次,其等效訪問(wèn)時(shí)間與主、輔存的訪問(wèn)時(shí)間有什么關(guān)系?需提高存儲(chǔ)層次的等效訪問(wèn)速度,可采取的措施有哪些?答:存儲(chǔ)層次的等效訪問(wèn)時(shí)間是主、輔訪問(wèn)時(shí)間T1和T2的概率加權(quán)平均和,即式中,H為主存命中率。要提高存儲(chǔ)層次等效訪問(wèn)速度,可采取的措施有:①當(dāng)?shù)刃гL問(wèn)時(shí)間遠(yuǎn)遠(yuǎn)大于主訪問(wèn)周期時(shí),可采取提高主存命中率的方法,如,改進(jìn)替換算法、增大主存容量、調(diào)整頁(yè)面大小、改進(jìn)頁(yè)面調(diào)度算法等。②當(dāng)主存命中率H已經(jīng)很高時(shí),可提高主存的訪問(wèn)速度,以降低T1。③加快內(nèi)部地址映象和變換,如采用快-慢表層次、增大快表命中率等等。五、CPU寫(xiě)Cache時(shí),會(huì)發(fā)生Cache與主存的對(duì)應(yīng)復(fù)本內(nèi)容不一致的現(xiàn)象,解決這個(gè)問(wèn)題有什么方法?各需要增加什么開(kāi)銷(xiāo)?答:寫(xiě)回法:CPU只寫(xiě)入Cache,不寫(xiě)入主存,僅當(dāng)Cache快替換時(shí),才寫(xiě)回主存后在替換。這種方法要求對(duì)每個(gè)Cache塊增加一個(gè)修改位的資源開(kāi)銷(xiāo)。寫(xiě)直達(dá)法:CPU每次寫(xiě)Cache的同時(shí),也經(jīng)寫(xiě)直達(dá)通路寫(xiě)入主存。這種方法要增加寫(xiě)主存的時(shí)間開(kāi)銷(xiāo)。第二章存儲(chǔ)系統(tǒng)拓展資源——綠色存儲(chǔ)綠色存儲(chǔ)系統(tǒng)的流行已經(jīng)成為一個(gè)不爭(zhēng)的事實(shí)。那么,選擇綠色存儲(chǔ)系統(tǒng)時(shí),需要考慮哪些要素?綠色存儲(chǔ)系統(tǒng)的技術(shù)將走向哪里?衡量綠色數(shù)據(jù)中心的標(biāo)準(zhǔn)目前,如何建立一個(gè)標(biāo)準(zhǔn)、理想的綠色數(shù)據(jù)中心還沒(méi)有一個(gè)明確的定義。規(guī)劃一個(gè)理想的綠色數(shù)據(jù)中心是一個(gè)非常復(fù)雜的系統(tǒng)工程,涉及的因素較多,在沒(méi)有明確的模板、標(biāo)準(zhǔn)的情況下可以從數(shù)據(jù)中心建筑物本身和數(shù)據(jù)中心內(nèi)部設(shè)施兩個(gè)方面進(jìn)行考慮。首先要保證數(shù)據(jù)中心建筑物本身的綠色、環(huán)保,可以參考美國(guó)綠色建筑委員會(huì)(USGBC)倡議的有關(guān)能源與環(huán)境設(shè)計(jì)的標(biāo)準(zhǔn)——LEED標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)從熱島效應(yīng)、節(jié)能、再生能源、暴雨管理、建筑物再利用、建筑廢料管理、地方材料和創(chuàng)新設(shè)計(jì)等方面,給出了明確的建議和評(píng)判標(biāo)準(zhǔn)。其次,對(duì)于數(shù)據(jù)中心內(nèi)部的運(yùn)行設(shè)備,可以參考Sun公司制訂的有關(guān)下一代Internet服務(wù)器的評(píng)價(jià)標(biāo)準(zhǔn),即SWaP標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)從設(shè)備占用的空間、消耗的電力、最終提供的服務(wù)性能三個(gè)維度給出了一個(gè)簡(jiǎn)單的評(píng)測(cè)計(jì)算公式,既SWaP=P/(S*W)。其中P為基準(zhǔn)性能測(cè)試工具獲得的測(cè)試值,S為設(shè)備在數(shù)據(jù)中心機(jī)架中占用的高度,W為服務(wù)器在基準(zhǔn)測(cè)試時(shí)的功耗。什么是綠色存儲(chǔ)?綠色存儲(chǔ)是一個(gè)系統(tǒng)設(shè)計(jì)方案,在方案的每個(gè)設(shè)計(jì)環(huán)節(jié)都以降低能耗為宗旨,該方案涉及到存儲(chǔ)數(shù)據(jù)的產(chǎn)品、數(shù)據(jù)存儲(chǔ)的技術(shù)、文件系統(tǒng)和軟件配置等多方面的因素,其最終目的是用最少的存儲(chǔ)容量來(lái)滿(mǎn)足業(yè)務(wù)的需求,從而消耗最低的能源。綠色存儲(chǔ)產(chǎn)品實(shí)際上在產(chǎn)品設(shè)計(jì)、開(kāi)發(fā)之初就融入了一些環(huán)保、節(jié)能的理念以保障產(chǎn)品在最低的能耗下提供最佳的效率。下面將從五個(gè)方面剖析綠色存儲(chǔ)產(chǎn)品的一些設(shè)計(jì)特點(diǎn)或選擇要素,以幫助讀者在選擇存儲(chǔ)產(chǎn)品時(shí)進(jìn)行綜合考慮。綠色存儲(chǔ)產(chǎn)品的系統(tǒng)設(shè)計(jì)存儲(chǔ)產(chǎn)品結(jié)構(gòu)設(shè)計(jì)的合理性決定了產(chǎn)品的穩(wěn)定性、產(chǎn)品的壽命和產(chǎn)品的能耗。在評(píng)價(jià)一個(gè)產(chǎn)品是否屬于綠色存儲(chǔ)產(chǎn)品時(shí),首先要觀察產(chǎn)品中各個(gè)部件設(shè)計(jì)位置的合理性,因?yàn)椴考奈恢弥苯?/p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論