第一篇:計(jì)算機(jī)體系結(jié)構(gòu)論文剖析
高 級(jí) 計(jì) 算 機(jī) 體 系 結(jié) 構(gòu)
題目: 計(jì)算機(jī)體系結(jié)構(gòu)的發(fā)展史
2015年12月
計(jì)算機(jī)體系結(jié)構(gòu)的發(fā)展史
摘要
本文回顧了計(jì)算機(jī)體系的發(fā)展歷程,并分析了計(jì)算機(jī)體系的發(fā)展和技術(shù)研究的關(guān)鍵: Cell和多核等新型處理結(jié)構(gòu)和可重構(gòu)計(jì)算技術(shù)。提出了新的計(jì)算機(jī)體系結(jié)構(gòu),為計(jì)算機(jī)研究和應(yīng)用提供參考。
關(guān)鍵詞: 計(jì)算機(jī)體系 微處理器 多處理器 可重構(gòu) 多核
目錄
引言................................................................1 計(jì)算機(jī)體系的發(fā)展歷程................................................1 Cell和多核等新型處理器結(jié)構(gòu)帶來新的方向.............................3 可重構(gòu)技術(shù)與多核技術(shù)的融合..........................................6
引言
現(xiàn)代計(jì)算機(jī)的發(fā)展歷程可以分為2個(gè)時(shí)代:串行計(jì)算時(shí)代和并行計(jì)算時(shí)代。并行計(jì)算是在串行計(jì)算的基礎(chǔ)上,由一組處理單元組成,處理單元彼此通過相互之間的通信與協(xié)作,共同高速完成一項(xiàng)大規(guī)模的計(jì)算任務(wù)。而每一個(gè)計(jì)算時(shí)代都是從體系結(jié)構(gòu)的發(fā)展開始,然后才是基于該結(jié)構(gòu)的系統(tǒng)軟件(特別是編譯器與操作系統(tǒng))、應(yīng)用軟件的發(fā)展,最后隨著問題求解和發(fā)展而達(dá)到頂峰。
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)也可以稱為計(jì)算機(jī)體系結(jié)構(gòu)。1964年Amdahl等人提出了計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)這個(gè)概念。他們把系統(tǒng)結(jié)構(gòu)定義為程序員所看到的計(jì)算機(jī)系統(tǒng)的屬性,即計(jì)算機(jī)系統(tǒng)的概念性結(jié)構(gòu)與功能屬性。這些屬性是機(jī)器語(yǔ)言程序設(shè)計(jì)者(或者編譯程序生成系統(tǒng))為使其所設(shè)計(jì)(或生成)的程序能在機(jī)器上正常運(yùn)行,所需遵循的計(jì)算機(jī)屬性。這些屬性是計(jì)算機(jī)系統(tǒng)中由硬件或固件完成的功能,程序員在了解這些屬性后才能編出在傳統(tǒng)機(jī)器級(jí)上正確運(yùn)行的程序。因此,計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)概念的實(shí)質(zhì)是確定計(jì)算機(jī)系統(tǒng)中軟硬件的界面。界面之上是軟件的功能,界面之下是硬件和固件的功能。
微電子技術(shù)和封裝技術(shù)的進(jìn)步,使得高性能的VLSI 微處理器得以大批量生產(chǎn),性能價(jià)格比不斷合理,這為并行多處理機(jī)的發(fā)展奠定了重要的物質(zhì)基礎(chǔ)。
計(jì)算機(jī)系統(tǒng)性能增長(zhǎng)的根本因素有兩個(gè):一是微電子技術(shù),另一個(gè)是計(jì)算機(jī)體系結(jié)構(gòu)技術(shù)。五十年代以來,人們先后采用了先行控制技術(shù)、流水線技術(shù)、增加功能部件甚至多機(jī)技術(shù)、存儲(chǔ)尋址和管理能力的擴(kuò)充、功能分布的強(qiáng)化、各種互聯(lián)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)以及支持多道、多任務(wù)的軟件技術(shù)等一系列并行處理技術(shù),提高計(jì)算機(jī)處理速度,增強(qiáng)系統(tǒng)性能。多處理機(jī)體系結(jié)構(gòu)是計(jì)算機(jī)體系結(jié)構(gòu)發(fā)展中的一個(gè)重要內(nèi)容,已成為并行計(jì)算機(jī)發(fā)展中人們最關(guān)注的結(jié)構(gòu)。
計(jì)算機(jī)體系的發(fā)展歷程
隨著計(jì)算技術(shù)的發(fā)展,計(jì)算機(jī)體系也在不斷發(fā)展變化。20世紀(jì)60年代初期,隨著晶體管和磁芯存儲(chǔ)器的出現(xiàn),處理單元和存儲(chǔ)器實(shí)現(xiàn)小型化,并行計(jì)算機(jī)開始出現(xiàn)。到了20世紀(jì)60年代末期,單一處理器中可以集成多個(gè)功能單元,產(chǎn)生 了流水線技術(shù)。該技術(shù)與單純提高CPU時(shí)鐘頻率相比,大大提高了并行計(jì)算機(jī)系統(tǒng)的性能。
當(dāng)時(shí),伊利諾依大學(xué)和Burroughs公司開始著手實(shí)施Illiac Ⅳ計(jì)劃,研制1臺(tái)64顆CPU的SIMD主機(jī)系統(tǒng),涉及到相關(guān)硬件技術(shù)、體系結(jié)構(gòu)、I/O設(shè)備、操作系統(tǒng)、程序設(shè)計(jì)語(yǔ)言,以及包括應(yīng)用程序在內(nèi)的眾多研究課題。1975年,隨著一臺(tái)規(guī)模大大縮小的原型系統(tǒng)(僅使用了16顆CPU)的面世,新的計(jì)算技術(shù)也得到了發(fā)展。
首先是存儲(chǔ)系統(tǒng)的概念,提出了虛擬存儲(chǔ)和緩存的思想,大大提高了計(jì)算機(jī)的整體性能。其次是半導(dǎo)體存儲(chǔ)器開始代替磁芯存儲(chǔ)器,大大縮小了存儲(chǔ)器的體積并提高了訪存速度。集成電路技術(shù)也被廣泛而迅速地應(yīng)用到計(jì)算機(jī)技術(shù)中。1976年Cray-1問世,向量計(jì)算技術(shù)被應(yīng)用到高性能計(jì)算機(jī)中。Cray-1對(duì)所使用的邏輯電路是經(jīng)過精心設(shè)計(jì)的,采用RISC精簡(jiǎn)指令集,引入向量寄存器,完成向量運(yùn)算。
20世紀(jì)80年代開始,微處理器技術(shù)高速發(fā)展,隨著機(jī)器的字長(zhǎng)從4位、8位、16位一直增加到32位、64位,其性能也隨之顯著提高。卡內(nèi)基·梅隆大學(xué)提出共享存儲(chǔ)多處理器體系結(jié)構(gòu),并在當(dāng)時(shí)流行的DEC PDP-11小型計(jì)算機(jī)的基礎(chǔ)上研制出1臺(tái)由16臺(tái)PDP-11/40處理機(jī)通過交叉開關(guān)與16個(gè)共享存儲(chǔ)器模塊相連接而成的共享存儲(chǔ)多處理器系統(tǒng)C.mmp。伯克利加州大學(xué)對(duì)基于SMP方式的總線協(xié)議進(jìn)行擴(kuò)展,提出了Cache一致性問題的處理方案。從此,C.mmp開創(chuàng)出的共享存儲(chǔ)多處理器體系結(jié)構(gòu)便成為服務(wù)器和桌面工作站的主流。
20世紀(jì)80年代中期,基于消息傳遞機(jī)制的并行計(jì)算機(jī)開始出現(xiàn),加州理工學(xué)院將64個(gè)i8086/i8087處理器通過超立方體互連結(jié)構(gòu)連接起來。此后,便先后出現(xiàn)了Intel iPSC系列、INMOS Transputer系列、Intel Paragon,以及IBM SP的前身Vulcan等基于消息傳遞機(jī)制的并行計(jì)算機(jī)。RISC 精簡(jiǎn)指令集計(jì)算機(jī),用20%指令的組合實(shí)現(xiàn)了CISC 計(jì)算機(jī)指令系統(tǒng)不常用的80%指令的功能。在提高性能方面,RISC 采用了超級(jí)流水線、超級(jí)標(biāo)量、超長(zhǎng)指令字并行處理結(jié)構(gòu);多級(jí)指令Cache;編譯優(yōu)化等技術(shù),充分利用RISC 的內(nèi)部資源,發(fā)揮其內(nèi)部操作的并行性,從而提高流水線的執(zhí)行效率。20 世紀(jì)80 年代后期,RISC 處理機(jī)的性能指標(biāo)幾乎以每年翻一番的速度發(fā)展,它對(duì)于提高計(jì)算機(jī)系統(tǒng)的性能和應(yīng)用水平起著巨大的作用。目前,由Intel 和HP 兩家公司聯(lián)合開發(fā)的基于IA—64 架構(gòu)的Merced 芯片,并由其共同定義的顯式并行指令計(jì)算技術(shù)EPIC(Explicitly Parallel Instruction Computing),將為微處理器技術(shù)的發(fā)展帶來突破性進(jìn)展。EPIC 技術(shù)主要指編譯器在微處理器執(zhí)行指令之前就對(duì)整個(gè)程序的代碼作出優(yōu)化安排,編譯器分析指令間的依賴關(guān)系,將沒有依賴關(guān)系的指令(最多3 個(gè))組成一“組”,由Merced內(nèi)置的執(zhí)行單元讀入被分成組的指令群并執(zhí)行。從理論上講,EPIC 可以并行執(zhí)行3 倍于執(zhí)行單元數(shù)的指令。64 位體系結(jié)構(gòu)的Merced 芯片還采用了指令預(yù)測(cè)、數(shù)據(jù)預(yù)裝等技術(shù),可以顯著地減少實(shí)際執(zhí)行程序的長(zhǎng)度,同時(shí)增強(qiáng)語(yǔ)句執(zhí)行的并行性,經(jīng)過代碼的重組,程序的執(zhí)行時(shí)間比基于傳統(tǒng)體系結(jié)構(gòu)的微處理器幾乎減少了一半;更加不同凡響的是,可以消除分支預(yù)測(cè)錯(cuò)誤的三分之二。IA—64 微處理器具有128 個(gè)通用寄存器以及128 個(gè)浮點(diǎn)寄存器,而目前基于RISC 的微處理器通常只有32 個(gè)寄存器。它還具有更為豐富的與大量寄存器相連的附屬功能部件,使得其應(yīng)用更為廣泛,同時(shí)內(nèi)部各功能部件之間的可伸縮性擴(kuò)展了機(jī)器的“寬度”,提高了系統(tǒng)的性能。容量更大的Cache 以及更多的讀寫端口,使得基于IA—64 微處理器的速度不再受到存儲(chǔ)延遲的限制。EPIC 設(shè)計(jì)的Merced 芯片可并行處理十幾個(gè)運(yùn)算,而當(dāng)今最優(yōu)秀的芯片也只能并行處理4 個(gè)運(yùn)算操作。EPIC 芯片用并行方式執(zhí)行任務(wù)而不用順序執(zhí)行,這將使其速度比現(xiàn)在的CISC 和RISC 芯片至少快兩倍。只有0.18 微米微小距離的跡線間寬度也使芯片時(shí)鐘能夠達(dá)到900MHZ。使用EPIC 設(shè)計(jì)的Merced 是第一個(gè)被分為三部分的芯片:一部分運(yùn)行CISC,另一部分運(yùn)行RISC,第三部分運(yùn)行EPIC。把三種體系結(jié)合于一塊芯片意味著現(xiàn)存的應(yīng)用程序?qū)⑷匀豢梢赃\(yùn)行在基于新芯片的服務(wù)器上。
Cell和多核等新型處理器結(jié)構(gòu)帶來新的方向
隨著人們對(duì)計(jì)算機(jī)CPU速度的不斷追求和微電子技術(shù)的發(fā)展及限制,一種新的處理器結(jié)構(gòu)開始出現(xiàn),它就是Cell和多核架構(gòu)技術(shù)的實(shí)現(xiàn)。
Cell架構(gòu)是1個(gè)單芯片多核處理單元,處理單元之間共享存儲(chǔ)器資源。與多核處理器不同,Cell主要采用協(xié)處理器方式,然后依靠多個(gè)處理器并行技術(shù)來實(shí) 現(xiàn)運(yùn)算速度的提高。盡管存在應(yīng)用程序難以充分利用的弊病,但是其綜合效率以及功耗控制都非常理想,開創(chuàng)了完全可擴(kuò)展的架構(gòu)模式。從而為大型機(jī)、服務(wù)器、以至包括手機(jī)在內(nèi)的所有消費(fèi)類電子產(chǎn)品提供1個(gè)統(tǒng)一的架構(gòu)平臺(tái)。只需要改變頻率、內(nèi)核數(shù)量等相關(guān)參數(shù),即可保證在1個(gè)機(jī)器上開發(fā)、在所有機(jī)器上運(yùn)行,大大節(jié)省了軟件移植所帶來的費(fèi)用。因此,使用Cell的手機(jī)完全可以與相應(yīng)的服務(wù)器進(jìn)行直接溝通和資源共享,從而把這些小資源集合成為一個(gè)龐大的計(jì)算資源,構(gòu)成一個(gè)真正的信息化時(shí)代。在這個(gè)資源體系中,每個(gè)資源節(jié)點(diǎn)可能是微不足道的,但是每個(gè)節(jié)點(diǎn)的運(yùn)算都可能被整個(gè)資源庫(kù)無(wú)窮放大,從而構(gòu)成一個(gè)完整的Cell網(wǎng)絡(luò),為消費(fèi)類電子的信息網(wǎng)絡(luò)化帶來真正的革命。
多核處理器的出現(xiàn)則是一場(chǎng)新的計(jì)算方式的革命[1,2]。2006 年,處理器開始從單核向多核處理器發(fā)展,多核處理器已不再局限于高端服務(wù)器,開始向 PC機(jī)普及,多核處理器使 PC 機(jī)變成并行式計(jì)算機(jī)。在多核處理器逐漸成為市場(chǎng)主導(dǎo)后,怎樣利用多核的優(yōu)勢(shì)來優(yōu)化并行程序設(shè)計(jì)成為一個(gè)需要研究和解決的問題。多核設(shè)計(jì)的出現(xiàn)為摩爾定律轉(zhuǎn)向基辛格規(guī)則帶來了生命力。英特爾推出了雙核、四核至強(qiáng)和雙核安騰處理器,AMD也推出了雙核、四核皓龍芯片,IBM的Power5+芯片也是雙核設(shè)計(jì),針對(duì)HPC和圖形運(yùn)算的Cell芯片更是擁有1+8個(gè)核,SUN公司的Ultrasparc T1擁有8個(gè)核,Clearspeed(96核)、思科NPU(192核)、RIKEN(512核)更是推出了擁有數(shù)十個(gè)甚至數(shù)百個(gè)核的芯片,預(yù)計(jì)到2020年,千核CPU也會(huì)誕生。同時(shí),多核技術(shù)在高性能計(jì)算中也已獲得了廣泛應(yīng)用。
3可重構(gòu)計(jì)算技術(shù)帶來新的亮點(diǎn) 以前的計(jì)算機(jī)硬件技術(shù)都是固件化的,無(wú)法隨著環(huán)境的改變而改變,產(chǎn)生大量的電子垃圾,不利于環(huán)保經(jīng)濟(jì)的發(fā)展,而可重構(gòu)計(jì)算技術(shù)的出現(xiàn)則為我們帶來了曙光??芍貥?gòu)計(jì)算就是通過實(shí)現(xiàn)硬件的可編程技術(shù)來滿足不同計(jì)算任務(wù)的需求,從而達(dá)到最佳性能,且要求這種硬件結(jié)構(gòu)的變化能實(shí)時(shí)地適應(yīng)計(jì)算任務(wù)要求的變化。這種體系結(jié)構(gòu)可變的特點(diǎn),可以滿足實(shí)際應(yīng)用中的多元化需求。實(shí)現(xiàn)可重構(gòu)計(jì)算的底層技術(shù)有FPGA(現(xiàn)場(chǎng)可編程門陣列)和CPLD編程技術(shù)。
在處理器芯片體系結(jié)構(gòu)設(shè)計(jì)中采用可重構(gòu)計(jì)算技術(shù)的基本思想是通過動(dòng)態(tài)配置片上大量的處理單元、存儲(chǔ)單元和互連單元,來支持各種不同類型并行性的計(jì)算模型,從而能在一個(gè)很寬的應(yīng)用范圍內(nèi)達(dá)到高性能,提高片上硬件資源的利用率。基于可重構(gòu)計(jì)算技術(shù)實(shí)現(xiàn)的多型微處理芯片體系結(jié)構(gòu)能夠很好地利用半導(dǎo)體技術(shù)發(fā)展提供的能力,在解決應(yīng)用的多樣性問題的同時(shí),還可解決片上資源利用率、設(shè)計(jì)復(fù)雜性、系統(tǒng)可靠性以及降低成本和功耗等多方面的問題。可重構(gòu)計(jì)算技術(shù)在處理器芯片設(shè)計(jì)中的應(yīng)用改變了傳統(tǒng)的指令集體系結(jié)構(gòu)、微體系結(jié)構(gòu)設(shè)計(jì)和實(shí)現(xiàn)技術(shù)。
可重構(gòu)計(jì)算技術(shù)[3-5]使計(jì)算機(jī)硬件的設(shè)計(jì)不再?gòu)?fù)雜,硬件不再只是“硬”,也具備“軟”的特性,即硬件可“編程”。在可編程的介質(zhì)中提供強(qiáng)大的計(jì)算能力和密度,使得在單片系統(tǒng)上以低硬件復(fù)雜度開發(fā)出各種類型的應(yīng)用, 同時(shí)能夠針對(duì)應(yīng)用中固有的并行性特征動(dòng)態(tài)配置多個(gè)微體系結(jié)構(gòu)模型,從而大幅度提高計(jì)算系統(tǒng)性能、降低功耗和設(shè)計(jì)的復(fù)雜性。
在設(shè)計(jì)中通常采用“自頂向下”的方法,即把系統(tǒng)分為若干模塊。原則是使得每個(gè)模塊有較獨(dú)立的功能,模塊之間的耦合盡可能?。ㄍǔ1憩F(xiàn)為相互通信盡量簡(jiǎn)單)。劃分之后,再分別實(shí)現(xiàn)每個(gè)模塊,最后把模塊像搭積木似地組裝起來。其中某些模塊可以做成現(xiàn)成的,可供設(shè)計(jì)時(shí)使用,即IP核心,它可以重復(fù)使用,從而提高了設(shè)計(jì)效率。再配合成熟的EDA工具作為設(shè)計(jì)流程的工具鏈,這樣設(shè)計(jì)就顯得相對(duì)容易。當(dāng)然相對(duì)使用高級(jí)語(yǔ)言的軟件編程,仍然是難于設(shè)計(jì)和缺乏靈活性的,其實(shí)IP的思想與軟件的靜態(tài)鏈接庫(kù)很相似。可以把IP核心封裝成軟件可調(diào)用的庫(kù)的形式。庫(kù)分為靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù),動(dòng)態(tài)庫(kù)允許在程序執(zhí)行時(shí)按需加載和卸載。這相當(dāng)于硬件在設(shè)計(jì)運(yùn)行時(shí),IP核心可以動(dòng)態(tài)地載入和卸出,當(dāng)然前提是并不破壞原有程序和數(shù)據(jù)。把IP核心封裝成動(dòng)態(tài)庫(kù),將是可重構(gòu)計(jì)算平5 臺(tái)最為核心的思想。
隨著芯片設(shè)計(jì)技術(shù)的SoC化,如何在1個(gè)芯片中集成很多現(xiàn)有的IP核,快速設(shè)計(jì)系統(tǒng)成為未來研究發(fā)展的重點(diǎn)。這時(shí),IP核的可重用性和可更改性就成了最關(guān)鍵的技術(shù),而開放源碼的IP核將提供方向。中國(guó)有案可查的開放源碼硬件項(xiàng)目是2001年3月啟動(dòng)的OpenARM項(xiàng)目,在“中國(guó)芯”盛行的那幾年里,不少學(xué)校和研究單位參考開放源碼的處理器設(shè)計(jì)了自己的微處理器。這個(gè)時(shí)期,中國(guó)利用開放源碼硬件的資源進(jìn)行IC設(shè)計(jì)的方法開始悄然流行。中國(guó)工程院院士許居衍的論文《半導(dǎo)體特征循環(huán)與可重構(gòu)芯片》中基于此技術(shù)的發(fā)展提出 “許氏循環(huán)”[3],半導(dǎo)體產(chǎn)品的主要特征將沿著“通用”與“專用”循環(huán)波動(dòng),每10年1次,從2018年~2028年,將會(huì)重新走向通用。“許氏循環(huán)”發(fā)展圖如圖2所示。
許居衍的依據(jù)是,因?yàn)椤翱芍貥?gòu)計(jì)算是1個(gè)難度頗大、涉及面甚廣的課題,盡管當(dāng)前很多人在研究,但是無(wú)論在器件結(jié)構(gòu)、系統(tǒng)結(jié)構(gòu)還是在設(shè)計(jì)方法學(xué)方面,均存在不少問題,仍有很長(zhǎng)的路要走??芍貥?gòu)計(jì)算技術(shù)的發(fā)展,最終將推動(dòng)主流應(yīng)用進(jìn)入U(xiǎn)-SoC通用波動(dòng)。只通過對(duì)‘毛坯芯片’(Raw Chip)的配置編程就可以得到用戶自定義的功能電路,從而引導(dǎo)半導(dǎo)體產(chǎn)業(yè)結(jié)構(gòu)演變,最終促進(jìn)芯片應(yīng)用創(chuàng)新Designless 模式的興起”。所謂的Designless,就是無(wú)需設(shè)計(jì)、自動(dòng)生成集成電路,工程師只需要關(guān)注應(yīng)用和功能層面即可。但實(shí)現(xiàn)Disignless的前提是必須軟硬件都開放。因?yàn)槿绻婚_放軟件,不知硬件細(xì)節(jié),還是無(wú)法生成一個(gè)完整設(shè)計(jì)。因此,一個(gè)邏輯的發(fā)展應(yīng)是“硬”、“軟”均可編程,即算法可編程、可重構(gòu)器件也可編程的U-SoC。
可重構(gòu)技術(shù)與多核技術(shù)的融合 自從計(jì)算機(jī)發(fā)明以來,馮·諾依曼體系結(jié)構(gòu)一直占據(jù)計(jì)算機(jī)體系結(jié)構(gòu)的統(tǒng)治地位,科學(xué)家和工程師們?cè)诖嘶A(chǔ)上不斷研究硬件和軟件,使CPU和存儲(chǔ)器技術(shù)得到了飛速的發(fā)展,也為信息化、網(wǎng)絡(luò)化奠定了基礎(chǔ)。隨著人們對(duì)信息化的要求越來越高,馮·諾依曼體系結(jié)構(gòu)已經(jīng)無(wú)法滿足人們的技術(shù)需求和發(fā)展要求,對(duì)計(jì)算機(jī)的要求不再僅僅是高速計(jì)算,同時(shí)更應(yīng)具備信息處理和智能升級(jí)能力??芍貥?gòu)技術(shù)與多核技術(shù)的出現(xiàn)為此提供了基礎(chǔ)。筆者認(rèn)為新的計(jì)算機(jī)體系結(jié)構(gòu)將是:(1)CPU將不再由1個(gè)核組成,而是由多個(gè)核組成的Cell;(2)存儲(chǔ)器將不是中心,取而代之的將是信息通路;(3)計(jì)算機(jī)不再是五大部件,而是由多個(gè)信息處理節(jié)點(diǎn)構(gòu)成,每個(gè)節(jié)點(diǎn)的智能化[5]和集成化越來越高;(4)程序設(shè)計(jì)將包括軟件和硬件設(shè)計(jì),生產(chǎn)商們提供的產(chǎn)品將是一個(gè)個(gè)封裝好的中間件,作為應(yīng)用者將勿需關(guān)心程序設(shè)計(jì),只需要關(guān)注專業(yè)設(shè)計(jì),對(duì)于應(yīng)用者將會(huì)更加友好。新的計(jì)算機(jī)體系結(jié)構(gòu)如圖3所示。
全文回顧了計(jì)算機(jī)體系的發(fā)展歷程和新技術(shù),并分析了目前計(jì)算機(jī)體系的發(fā)展和技術(shù)研究的關(guān)鍵: Cell和多核等新型處理結(jié)構(gòu)和可重構(gòu)計(jì)算技術(shù),提出了新的計(jì)算機(jī)體系結(jié)構(gòu),為計(jì)算機(jī)研究和應(yīng)用提供了參考。
第二篇:計(jì)算機(jī)體系結(jié)構(gòu)總結(jié)(模版)
計(jì)算機(jī)體系結(jié)構(gòu)的詳盡描述
一.計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的基本概念
1.計(jì)算機(jī)體系結(jié)構(gòu)的概念
1964年G.M.Amdahl在介紹IBM360系統(tǒng)時(shí)提出:計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)是從程序員所看到的計(jì)算機(jī)屬性,即程序員編寫出能在機(jī)器上正確運(yùn)行的程序所必須了解的概念性結(jié)構(gòu)和功能特性。
系統(tǒng)結(jié)構(gòu)是對(duì)計(jì)算機(jī)系統(tǒng)中各級(jí)界面的劃分、定義及其上下功能的分配。
系統(tǒng)結(jié)構(gòu)設(shè)計(jì)主要研究界面的屬性的透明性的取舍。
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(體系結(jié)構(gòu))指的是傳統(tǒng)機(jī)器級(jí)的系統(tǒng)結(jié)構(gòu)。
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)研究的是軟、硬件之間的功能分配以及對(duì)傳統(tǒng)機(jī)器級(jí)界面的確定。
2.計(jì)算機(jī)系統(tǒng)的多級(jí)層次結(jié)構(gòu)
二.計(jì)算機(jī)指令集結(jié)構(gòu)設(shè)計(jì)
根據(jù)五個(gè)因素對(duì)計(jì)算機(jī)指令集結(jié)構(gòu)進(jìn)行分類:在CPU中操作數(shù)的存儲(chǔ)方法;指令中顯式表示的操作數(shù)個(gè)數(shù);操作數(shù)的尋址方式;指令集所提供的操作類型;操作數(shù)的類型和大小。其中1是最主要的區(qū)別 根據(jù)CPU內(nèi)部存儲(chǔ)單元類型,可將指令集結(jié)構(gòu)分為
堆棧型指令集結(jié)構(gòu)、累加器型指令集結(jié)構(gòu)和通用寄存器型指令集結(jié)構(gòu)。優(yōu)缺點(diǎn)?堆棧型(其CPU中存儲(chǔ)操作數(shù)的主要單元是堆棧):是一種表示計(jì)算的簡(jiǎn)單模型;指令短小。不能隨機(jī)訪問堆棧,從而很難生成有效代碼;同時(shí),由于堆棧是瓶頸,所以很難被高效地實(shí)現(xiàn)。累加器型(其CPU中存儲(chǔ)操作數(shù)的主要單元是累加器):減少了機(jī)器的內(nèi)部狀態(tài);指令短小。由于累加器是唯一的暫存器,這種機(jī)器的存儲(chǔ)器通信開銷最大。寄存器型(CPU中存儲(chǔ)操作數(shù)的主要單元是通用寄存器):易于生成高效的目標(biāo)代碼。所有操作數(shù)均需命名,且要顯式表示,因而指令比較長(zhǎng)
現(xiàn)代大多數(shù)機(jī)器均采用通用寄存器型指令集結(jié)構(gòu),原因:一是寄存器和CPU內(nèi)部其他存儲(chǔ)單元一樣,要比存儲(chǔ)器快;其次是對(duì)編譯器而言,可以更加容易、有效地分配和使用寄存器。
寄存器-寄存器型(RR)優(yōu)點(diǎn):簡(jiǎn)單,指令字長(zhǎng)固定,是一種簡(jiǎn)單的代碼生成模型,各種指令的執(zhí)行時(shí)鐘周期數(shù)相近。缺點(diǎn):和ALU指令中含存儲(chǔ)器操作數(shù)的指令集結(jié)構(gòu)相比,指令條數(shù)多,因而其目標(biāo)代碼量較大。
寄存器-存儲(chǔ)器(RM)優(yōu)點(diǎn):可以直接對(duì)存儲(chǔ)器操作數(shù)進(jìn)行訪問,容易對(duì)指令進(jìn)行編碼,且其目標(biāo)代碼量較小。缺點(diǎn):指令中的操作數(shù)類型不同。在一條指令中同時(shí)對(duì)一個(gè)寄存器操作數(shù)和存儲(chǔ)器操作數(shù)進(jìn)行編碼,將限制指令所能夠表示的寄存器個(gè)數(shù)。由于指令的操作數(shù)可以存儲(chǔ)在不同類型的存儲(chǔ)器單元,所以每條指令的執(zhí)行時(shí)鐘周期數(shù)也不盡相同存儲(chǔ)器-存儲(chǔ)器型(MM)優(yōu)點(diǎn):是一種最緊密的編碼方式,無(wú)需“浪費(fèi)”寄存器保存變量。缺點(diǎn):指令字長(zhǎng)多種多樣。每條指令的執(zhí)行時(shí)鐘周期數(shù)也大不一樣,對(duì)存
儲(chǔ)器的頻繁訪問將導(dǎo)致存儲(chǔ)器訪問瓶頸問題
CISC即復(fù)雜指令集計(jì)算機(jī)。它是增強(qiáng)指令功能,把越來越多的功能交由硬件來實(shí)行,并且指令的數(shù)量也是越來越多。RISC精簡(jiǎn)指令集計(jì)算機(jī)。它是盡可能的把指令集簡(jiǎn)化,不僅指令的條數(shù)少,而且指令的功能也比較簡(jiǎn)單。
三.流水線技術(shù)
流水線技術(shù):將一個(gè)重復(fù)的時(shí)序過程分解成為若干個(gè)子過程,而每一個(gè)子過程都可有效地在其專用功能段上與其他子過程同時(shí)執(zhí)行。
時(shí)空?qǐng)D:用來描述流水線的工作,橫坐標(biāo)表示時(shí)間,縱坐標(biāo)代表流水線的各段。
流水技術(shù)有哪些特點(diǎn)?
1)流水過程由多個(gè)相聯(lián)系的子過程組成,每個(gè)過程稱為流水線的“級(jí)”或“段”。2)每個(gè)子過程由專用的功能段實(shí)現(xiàn)。3)各個(gè)功能段所需時(shí)間應(yīng)盡量相等。4)流水線需要有“通過時(shí)間”,在此之后流水過程才進(jìn)入穩(wěn)定工作狀態(tài),每一個(gè)時(shí)鐘周期(拍)流出一個(gè)結(jié)果。5)流水技術(shù)適合于大量重復(fù)的時(shí)序過程,只有在輸入端能連續(xù)地提供任務(wù),流水線的效率才能充分發(fā)揮。
多倍性:在系統(tǒng)受限的部件上,同時(shí)處于同一執(zhí)行階段的指令或數(shù)據(jù)的最大數(shù)目。
流水線分類
1按照流水線所完成的功能(1)單功能流水線:只能完成一種固定功能的流水線(2)多功能流水線:流水線的各段可以進(jìn)行不同的連接,從而使流水線在不同的時(shí)間,或者在同一時(shí)間完成不同的功能。2按照同一時(shí)間內(nèi)各段之間的連接方式(1)靜態(tài)流水線:在同一時(shí)間內(nèi),流水線的各段只能按同一種功能的連接方式工作。2)動(dòng)態(tài)流水線:在同一時(shí)間內(nèi),當(dāng)某些段正在實(shí)現(xiàn)某種運(yùn)算時(shí),另一些段卻在實(shí)現(xiàn)另一種運(yùn)算。
3按照流水的級(jí)別(1)部件級(jí)流水線(運(yùn)算操作流水線):把處理機(jī)的算術(shù)邏輯部件分段,以便為各種數(shù)據(jù)類型進(jìn)行流水操作。(2)處理機(jī)級(jí)流水線(指令流水線):把解釋指令的過程按照流水方式處理。(3)處理機(jī)間流水線(宏流水線):由兩個(gè)以上的處理機(jī)串行地對(duì)同一數(shù)據(jù)流進(jìn)行處理,每個(gè)處理機(jī)完成一項(xiàng)任務(wù)。
4按數(shù)據(jù)表示(1)標(biāo)量流水處理機(jī):處理機(jī)不具有向量數(shù)據(jù)表示,僅對(duì)標(biāo)量數(shù)據(jù)進(jìn)行流水處理。(2)向量流水處理機(jī):處理機(jī)具有向量數(shù)據(jù)表示,并通過向量指令對(duì)向量的各元素進(jìn)行處理。
5按照流水線中是否有反饋回路(1)線性流水線:流水線的各段串行連接,沒有反饋回路。(2)非線性流水線:流水線中除有串行連接的通路外,還有反饋回路。
流水線寄存器的作用:把數(shù)據(jù)和控制信息從一個(gè)流水段傳送到下一個(gè)流水段。
消除流水線的瓶頸段:細(xì)分瓶頸段;重復(fù)設(shè)置瓶頸段。
價(jià)流水線的性能指標(biāo)(1)吞吐率:指在單位時(shí)間內(nèi)流水線所完成的任務(wù)數(shù)或輸出結(jié)果的數(shù)量。(2)流水線的加速比:指m段流水線的速度與等功能的非流水線的速度之比。(3)效率:指流水線的設(shè)備利用率。
流水線相關(guān)的三種類型:
相關(guān)是指兩條指令之間存在某種依賴關(guān)系。確定程序中指令之間存在什么樣的相關(guān),對(duì)于充分發(fā)揮流水線的效率有重要的意義。1.結(jié)構(gòu)相關(guān):當(dāng)指令在重疊執(zhí)行過程中,硬件資源滿足不了指令重疊執(zhí)行的要求,發(fā)生資源沖突時(shí)將產(chǎn)生“結(jié)構(gòu)相關(guān)”;2.數(shù)據(jù)相關(guān):當(dāng)一條指令需要用到前面指令的執(zhí)行結(jié)果,而這些指令均在流水線中重疊執(zhí)行時(shí),就可能引起“數(shù)據(jù)相關(guān)”;3.控制相關(guān):當(dāng)流水線遇到分支指令和其他會(huì)改變PC值的指令時(shí)就會(huì)發(fā)生“控制相關(guān)”。
消除相關(guān)的基本方法:1讓流水線暫停執(zhí)行某些指令,而繼續(xù)執(zhí)行其他一些指令。2當(dāng)一條指令被暫停時(shí),在該暫停指令之后發(fā)射的所有指令都要被暫停,而在該暫停指令之前發(fā)射的指令則可繼續(xù)執(zhí)行,在暫停
期間,流水線不會(huì)取新的指令。
輸入/輸出方式:程序控制(程序等待、程序中斷)、DMA、通道、I/O處理機(jī)
數(shù)據(jù)相關(guān):對(duì)于兩條指令i(在前)和j(在后),如果下述條件之一成立,則稱指令j與指令i數(shù)據(jù)相關(guān):
(1)指令j使用指令i產(chǎn)生的結(jié)果;(2)指令j與指令k數(shù)據(jù)相關(guān),而指令k又與指令i數(shù)據(jù)相關(guān)。名相關(guān)
如果兩條指令使用相同的名,但是它們之間并沒有數(shù)據(jù)流動(dòng),則稱這兩條指令存在名相關(guān)。指令j與指令i之間的名相關(guān)有以下兩種:(1)反相關(guān)。如果指令j寫的名與指令i讀的名相同,則稱指令i和j發(fā)生了反相關(guān)。反相關(guān)指令之間的執(zhí)行順序是必須嚴(yán)格遵守的,以保證i讀的值是正確的。(2)輸出相關(guān)。如果指令j和指令i寫相同的名,則稱指令i和j發(fā)生了輸出相關(guān)。輸出相關(guān)指令的執(zhí)行順序是不能顛倒的,以保證最后的結(jié)果是指令j寫進(jìn)去的。
解決方法:換名技術(shù),通過改變指令中操作數(shù)的名來消除名相關(guān)。
控制相關(guān):由分支指令引起的相關(guān)。它需要根據(jù)分支指令的執(zhí)行結(jié)果來確定后續(xù)指令是否執(zhí)行。
流水線沖突
指對(duì)于具體的流水線來說,由于相關(guān)的存在,使得指令流中的下一條指令不能在指定的時(shí)鐘周期執(zhí)行。
(1)結(jié)構(gòu)沖突:因硬件資源滿足不了指令重疊執(zhí)行的要求而發(fā)生的沖突。解決方法:流水化功能單元;資源重復(fù);暫停流水線。(2)數(shù)據(jù)沖突:當(dāng)指令在流水線中重疊執(zhí)行時(shí),因需要用到前面指令的執(zhí)行結(jié)果而發(fā)生的沖突。根據(jù)指令對(duì)寄存器的讀寫順序,可將數(shù)據(jù)沖突分為:寫后讀沖突;寫后寫沖突;讀后寫沖突。(3)控制沖突:流水線遇到分支指令和其他會(huì)改變PC值的指令所引起的沖突。
四種解決數(shù)據(jù)沖突的方法:1)定向技術(shù):在某條指令產(chǎn)生一個(gè)結(jié)果之前,其他指令并不真正需要該計(jì)算結(jié)果,如果將該計(jì)結(jié)果從其產(chǎn)生的地方直接送到其他指令需要它的地方,就可以避免暫停;2)暫停技術(shù):設(shè)置一個(gè)“流水線互鎖”的功能部件,一旦流水線互鎖檢測(cè)到數(shù)據(jù)相關(guān),流水線暫停執(zhí)行發(fā)生數(shù)據(jù)相關(guān)指令后續(xù)的所有指令,直到該數(shù)據(jù)相關(guān)解決為止。;3)采用編譯器調(diào)度。當(dāng)流水線中出現(xiàn)沖突時(shí),編譯器通過重新排列代碼的順序來消除流水線中的暫停,這種技術(shù)稱為流水線調(diào)度4)重新組織代碼順序。流水線設(shè)計(jì)者有時(shí)會(huì)允許結(jié)構(gòu)沖突的存在,原因:一是為了減少硬件開銷,二是為了減少功能單元的延遲。
向量處理機(jī):具有向量數(shù)據(jù)表示和相應(yīng)向量指令的流水線處理機(jī)。
向量處理方式
(1)水平處理方式:向量計(jì)算是按行的方式從左到右橫向地進(jìn)行。若向量長(zhǎng)度為N,則水平處理方式相當(dāng)于執(zhí)行N次循環(huán)。若使用流水線,在每次循環(huán)中可能出現(xiàn)數(shù)據(jù)相關(guān)和功能轉(zhuǎn)換,不適合對(duì)向量進(jìn)行流水處理。(2)垂直處理方式:適合對(duì)向量進(jìn)行流水處理,向量運(yùn)算指令的源/目向量都放在存儲(chǔ)器內(nèi),使得流水線運(yùn)算部件的輸入、輸出端直接與存儲(chǔ)器相聯(lián),構(gòu)成MM型(存儲(chǔ)器-存儲(chǔ)器)的運(yùn)算流水線。(3)分組處理方式:適合流水處理??稍O(shè)長(zhǎng)度為n的向量寄存器,使每組向量運(yùn)算的源/目向量都在向量寄存器中,流水線的運(yùn)算部件輸入、輸出端與向量寄存器相聯(lián),構(gòu)成RR型運(yùn)算流水線。
提高向量處理機(jī)性能的方法:多個(gè)功能部件;鏈接技術(shù);分段開采技術(shù);多處理機(jī)系統(tǒng)
向量鏈接技術(shù):當(dāng)兩條向量指令出現(xiàn)“寫后讀”相關(guān)時(shí),若它們不存在功能部件沖突和向量寄存器(源或目的)沖突,就有可能把它們所用的功能部件頭尾相接,形成一個(gè)鏈接流水線,進(jìn)行流水處理。
鏈接技術(shù)應(yīng)用條件:1.無(wú)功能部件沖突2.無(wú)向量寄存器使用沖突 3.只有在前一條指令的第1個(gè)結(jié)果元素送入結(jié)果向量機(jī)寄存器的那個(gè)時(shí)鐘周期才可以進(jìn)行鏈接。4.當(dāng)一條向量指令的兩個(gè)源操作數(shù)分別是兩條先行指令的結(jié)果寄存器時(shí),要求先行指令產(chǎn)生運(yùn)算結(jié)果的時(shí)間必須相等。5.要求進(jìn)行鏈接執(zhí)行的向量指令的向量長(zhǎng)度必須相等。
四.指令級(jí)并行
指令級(jí)并行:當(dāng)指令之間不存在相關(guān)時(shí),它們可以在流水線中重疊起來并行執(zhí)行。這種指令序列中存在的潛在并行性稱為指令級(jí)并行。
靜態(tài)調(diào)度技術(shù):依靠編譯器對(duì)代碼進(jìn)行靜態(tài)調(diào)度,以減少相關(guān)和沖突。它不是在程序執(zhí)行的過程中、而是在編譯期間進(jìn)行代碼調(diào)度和優(yōu)化。靜態(tài)調(diào)度通過把相關(guān)的指令拉開距離來減少可能產(chǎn)生的停頓。動(dòng)態(tài)調(diào)度方法:在流水線中出現(xiàn)相關(guān)時(shí),通過硬件重新安排指令的執(zhí)行順序,來調(diào)整相關(guān)指令實(shí)際執(zhí)行時(shí)的關(guān)系,減少處理器空轉(zhuǎn)。優(yōu)點(diǎn)。(1)能夠處理一些編譯時(shí)情況不明的相關(guān)(比如涉及存儲(chǔ)器訪問的相關(guān)),并簡(jiǎn)化了編譯器。(2)能夠使本來是面向某一流水線優(yōu)化編譯的代碼在其他的流水線(動(dòng)態(tài)調(diào)度)上也能高效地執(zhí)行。當(dāng)然,動(dòng)態(tài)調(diào)度的這些優(yōu)點(diǎn)是以硬件復(fù)雜性的顯著增加為代價(jià)的。
為了支持亂序執(zhí)行,將5段流水線的譯碼(ID)段細(xì)分為兩個(gè)段(1)流出:指令譯碼,并檢查是否存在結(jié)構(gòu)沖突。如果不存在結(jié)構(gòu)沖突,就將指令流出。(2)讀操作數(shù):等待數(shù)據(jù)沖突消失(如果有的話),然后讀操作數(shù)。
Tomasulo算法的核心思想① 記錄和檢測(cè)指令相關(guān),操作數(shù)一旦就緒就立即執(zhí)行,把發(fā)生RAW沖突的可能性減少到最少;② 通過寄存器換名來消除WAR沖突和WAW沖突。
Tomasulo算法的基本思想是:只要操作數(shù)有效,就將其取到保留站,避免指令流出時(shí)才到寄存器中取數(shù)據(jù),這就使得即將執(zhí)行的指令從相應(yīng)的保留站中取得操作數(shù),而不是從寄存器中。指令的執(zhí)行結(jié)果也是直接送到等待數(shù)據(jù)的其他保留站中去。因而,對(duì)于連續(xù)的寄存器寫,只有最后一個(gè)才真正更新寄存器中的內(nèi)容。一條指令流出時(shí),存放操作數(shù)的寄存器名被換成為對(duì)應(yīng)于該寄存器保留站的名稱(編號(hào))。指令流出邏輯和保留站相結(jié)合實(shí)現(xiàn)寄存器換名,從而完全消除了數(shù)據(jù)寫后寫和先讀后寫相關(guān)這類名相關(guān)。保留站:設(shè)置在運(yùn)算部件的入口,每個(gè)保留站中保存一條已經(jīng)流出并等待到本功能部件執(zhí)行的指令(相關(guān)信息),包括操作碼、操作數(shù)以及用于檢測(cè)和解決沖突的信息。
動(dòng)態(tài)分支預(yù)測(cè)技術(shù)
在程序運(yùn)行時(shí),根據(jù)分支指令過去的表現(xiàn)來預(yù)測(cè)其將來的行為。如果分支行為發(fā)生了變化,預(yù)測(cè)結(jié)果也跟著改變。動(dòng)態(tài)分支預(yù)測(cè)技術(shù)的目的有兩個(gè):預(yù)測(cè)分支是否成功和盡快找到分支目標(biāo)地址(或指令),從而避免因控制相關(guān)而造成流水線停頓。
需要解決兩個(gè)關(guān)鍵問題(1)如何記錄分支的歷史信息;(2)如何根據(jù)這些信息來預(yù)測(cè)分支的去向(甚至取到指令)。
前瞻執(zhí)行的基本思想。
對(duì)分支指令的結(jié)果進(jìn)行猜測(cè),并假設(shè)這個(gè)猜測(cè)總是對(duì)的,然后按這個(gè)猜測(cè)結(jié)果繼續(xù)取、流出和執(zhí)行后續(xù)的指令。只是執(zhí)行指令的結(jié)果不是寫回到寄存器或存儲(chǔ)器,而是放到一個(gè)稱為ROB的緩沖器中。等到相應(yīng)的指令得到“確認(rèn)”(即確實(shí)是應(yīng)該執(zhí)行的)后,才將結(jié)果寫入寄存器或存儲(chǔ)器。
五.存儲(chǔ)層次
單級(jí)存儲(chǔ)器的主要矛盾:速度越快,每位價(jià)格就越高。容量越大,每位價(jià)格就越低。容量越大,速度越慢。采取多級(jí)存儲(chǔ)層次方法來解決。
從用戶的角度來看,存儲(chǔ)器的三個(gè)主要指標(biāo)是:容量、速度和價(jià)格。
評(píng)價(jià)存儲(chǔ)層次的主要參數(shù):存儲(chǔ)層次的平均每位價(jià)格、命中率或失效率、平均訪問時(shí)間。
“Cache-主存”層次:在CPU和主存之間增加一級(jí)速度快、但容量較小而每位價(jià)格較貴的高速緩沖存儲(chǔ)器。借助于輔助軟硬件,它與主存構(gòu)成一個(gè)有機(jī)的整體,以彌補(bǔ)主存速度的不足。
“主存-輔存”層次:目的是為了彌補(bǔ)主存容量的不足。它是在主存外面增加一個(gè)容量更大、每位價(jià)格更便宜、但速度更慢的存儲(chǔ)器。它們依靠輔助軟硬件的作用,構(gòu)成一個(gè)整體。
主要區(qū)別是什么?
目的:為了彌補(bǔ)主存速度的不足;為了彌補(bǔ)主存容量的不足。存儲(chǔ)管理的實(shí)現(xiàn):全部由專用硬件實(shí)現(xiàn);主要由軟件實(shí)現(xiàn)。典型的塊(頁(yè))大?。簬资畟€(gè)字節(jié);幾百到幾千個(gè)字節(jié)。CPU對(duì)第二級(jí)的訪問方式:可直接訪問;均通過第一級(jí)。不命中時(shí)CPU是否切換:不切換切換到其他進(jìn)程
存儲(chǔ)層次中應(yīng)解決四個(gè)問題:映像規(guī)則:當(dāng)把一個(gè)塊調(diào)入高一層存儲(chǔ)器時(shí),可以放到哪些位置上。查找算法:當(dāng)所要訪問的塊在高一層存儲(chǔ)器中時(shí),如何找到該塊。替換算法:當(dāng)發(fā)生失效時(shí),應(yīng)替換哪一塊。寫策略:當(dāng)進(jìn)行寫訪問時(shí),應(yīng)進(jìn)行哪些操作。
地址映像方法,優(yōu)缺點(diǎn)
(1)全相聯(lián)映像。實(shí)現(xiàn)查找的機(jī)制復(fù)雜,代價(jià)高,速度慢。Cache空間的利用率較高,塊沖突概率較低,因而Cache的失效率也低。
(2)直接映像。實(shí)現(xiàn)查找的機(jī)制簡(jiǎn)單,速度快。Cache空間的利用率較低,塊沖突概率較高,因而Cache的失效率也高。
(3)組相聯(lián)映像。組相聯(lián)是直接映像和全相聯(lián)的一種折中。
組相聯(lián)Cache比相同容量的直接映像Cache的失效率低。由此是否可以得出結(jié)論:采用組相聯(lián)Cache一定能帶來性能上的提高?為什么? 不一定。因?yàn)榻M相聯(lián)命中率的提高是以增加命中時(shí)間為代價(jià)的,組相聯(lián)需要增加多路選擇開關(guān)。
Cache中,實(shí)現(xiàn)并行查找的方法:1用相聯(lián)存儲(chǔ)器實(shí)現(xiàn)。2用單體多字存儲(chǔ)器和比較器來實(shí)現(xiàn)。替換算法
(1)隨機(jī)法:簡(jiǎn)單、易于用硬件實(shí)現(xiàn),但這種方法沒有考慮Cache塊過去被使用的情況,反映不了程序的局部性,所以其失效率比LRU的高。(2)先進(jìn)先出法:容易實(shí)現(xiàn)。它雖然利用了同一組中各塊進(jìn)入Cache的順序這一“歷史”信息,但還是不能正確地反映程序的局部性。(3)最近最少使用法LRU:失效率最低。但是LRU比較復(fù)雜,硬件實(shí)現(xiàn)比較困難。
有效構(gòu)建方法:在構(gòu)建系統(tǒng)的過程中消除故障隱患,這樣建立起來的系統(tǒng)就不會(huì)出現(xiàn)故障。
寫策略
(1)寫直達(dá)法:易于實(shí)現(xiàn),而且下一級(jí)存儲(chǔ)器中的數(shù)據(jù)總是最新的。
(2)寫回法:速度快,寫操作能以Cache存儲(chǔ)器的速度進(jìn)行。而且對(duì)于同一單元的多個(gè)寫最后只需一次寫回下一級(jí)存儲(chǔ)器,有些“寫”只到達(dá)Cache,不到達(dá)主存,因而所使用的存儲(chǔ)器頻帶較低。
六.輸入/輸出系統(tǒng)
輸入/輸出系統(tǒng)簡(jiǎn)稱I/O系統(tǒng),它包括I/O設(shè)備以及I/O設(shè)備與處理機(jī)的連接。
總線按用途分類,總線可分為
(1)CPU存儲(chǔ)器總線。CPU存儲(chǔ)器總線比較短,通常具有較高的速度,并且要和存儲(chǔ)器系統(tǒng)的速度匹配來優(yōu)化帶寬。(2)I/O總線。I/O總線要連接許多不同類型、不同帶寬的設(shè)備,因而比較長(zhǎng),并且應(yīng)遵循總線標(biāo)準(zhǔn)。
按設(shè)備定時(shí)方式分類,總線可分為
(1)同步總線。所有設(shè)備通過統(tǒng)一的總線系統(tǒng)時(shí)鐘進(jìn)行同步。成本低,因?yàn)樗恍枰O(shè)備之間互相確定時(shí)序的邏輯。缺點(diǎn):總線操作必須以相同的速度運(yùn)行。(2)異步總線。設(shè)備之間沒有統(tǒng)一的系統(tǒng)時(shí)鐘,設(shè)備自己內(nèi)部定時(shí)。設(shè)備之間的信息傳送用總線發(fā)送器和接收器控制。容易適應(yīng)更廣泛的設(shè)備類型,擴(kuò)充總線時(shí)不用擔(dān)心時(shí)鐘時(shí)序和時(shí)鐘同步問題。但在傳輸時(shí),異步總線需要額外的同步開銷。
輸入輸出系統(tǒng)概述
經(jīng)歷了3個(gè)階段對(duì)應(yīng)著3種方式:程序控制I/O(程序查詢、中斷驅(qū)動(dòng))、直接存儲(chǔ)器訪問(DMA)、I/O處理機(jī)方式(通道、外圍處理機(jī)PPU)。
輸入輸出設(shè)備分外存和傳輸設(shè)備兩大類。
總線設(shè)計(jì)
總線分類:半雙工、全雙工;
芯片級(jí)、板級(jí)(局部總線)、系統(tǒng)級(jí);
專用總線、非專用總線。
根據(jù)信息傳送方式的不同通道分為三種類型:
(1)字節(jié)多路通道:一種簡(jiǎn)單的共享通道,主要為多臺(tái)低速或中速的外圍設(shè)備服務(wù)。傳送過程:通道每連接一個(gè)外圍設(shè)備,只傳送一個(gè)字節(jié),然后又與另一臺(tái)設(shè)備連接,并傳送一個(gè)字節(jié)。
(2)數(shù)組多路通道:適于為高速設(shè)備服務(wù)。傳送過程:每連接一臺(tái)高速設(shè)備,一般傳送一個(gè)數(shù)據(jù)塊,傳送完成后,又與另一臺(tái)高速設(shè)備連接,再傳送一個(gè)數(shù)據(jù)塊。
(3)選擇通道:為多臺(tái)高速外圍設(shè)備服務(wù)。傳送過程:在選擇通道中,通道每連接一個(gè)外圍設(shè)備,就把這個(gè)設(shè)備的n個(gè)字節(jié)全部傳送完成,然后再與另一臺(tái)設(shè)備相連接。
通道處理機(jī):能夠執(zhí)行有限I/O指令,并且能夠被多臺(tái)外圍設(shè)備共享的小型DMA專用處理機(jī)。通道完成一次數(shù)據(jù)傳輸?shù)闹饕^程?
(1)在用戶程序中使用訪管指令進(jìn)入管理程序,由CPU通過管理程序組織一個(gè)通道程序,并啟動(dòng)通道。(2)通道處理機(jī)執(zhí)行CPU為它組織的通道程序,完成指定的數(shù)據(jù)I/O工作。(3)通道程序結(jié)束后向CPU發(fā)中斷請(qǐng)求。CPU響應(yīng)這個(gè)中斷請(qǐng)求后,第二次進(jìn)入操作系統(tǒng),調(diào)用管理程序?qū)/O中斷請(qǐng)求進(jìn)行處理。通道的主要功能8
(1)接收CPU發(fā)來的I/O指令,根據(jù)指令要求選擇一臺(tái)指定的外圍設(shè)備與通道相連接。(2)執(zhí)行CPU為通道組織的通道程序,從主存中取出通道指令,對(duì)通道指令進(jìn)行譯碼,并根據(jù)需要向被選中的設(shè)備控制器發(fā)出各種操作命令。(3)給出外圍設(shè)備的有關(guān)地址,即進(jìn)行讀/寫操作的數(shù)據(jù)所在的位置。(4)給出主存緩沖區(qū)的首地址,這個(gè)緩沖區(qū)用來暫時(shí)存放從外圍設(shè)備上輸入的數(shù)據(jù),或者暫時(shí)存放將要輸出到外圍設(shè)備中去的數(shù)據(jù)。(5)控制外圍設(shè)備與主存緩沖區(qū)之間數(shù)據(jù)交換的個(gè)數(shù),對(duì)交換的數(shù)據(jù)個(gè)數(shù)進(jìn)行計(jì)數(shù),并判斷數(shù)據(jù)傳送工作是否結(jié)束。(6)指定傳送工作結(jié)束時(shí)要進(jìn)行的操作。(7)檢查外圍設(shè)備的工作狀態(tài)是正?;蚬收?。根據(jù)需要將設(shè)備的狀態(tài)信息送往主存指定單元保存。(8)在數(shù)據(jù)傳輸過程中完成必要的格式變換。
第三篇:深圳大學(xué)-計(jì)算機(jī)體系結(jié)構(gòu)總結(jié)
一,計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)導(dǎo)論
1.層次機(jī)構(gòu):按照計(jì)算機(jī)語(yǔ)言從低級(jí)到高級(jí)的次序,把計(jì)算機(jī)系統(tǒng)按功能劃分成多級(jí)層次結(jié)構(gòu)。這些層次依次為:微程序機(jī)器級(jí),傳統(tǒng)機(jī)器級(jí),操作系統(tǒng)機(jī)器級(jí),匯編語(yǔ)言機(jī)器級(jí),高級(jí)語(yǔ)言機(jī)器級(jí),應(yīng)用語(yǔ)言機(jī)器級(jí)等。
2.翻譯:先用轉(zhuǎn)換程序把高一級(jí)機(jī)器上的程序轉(zhuǎn)換為低一級(jí)機(jī)器上等效的程序,然后再在這低一級(jí)機(jī)器上運(yùn)行,實(shí)現(xiàn)程序的功能。
解釋:對(duì)于高一級(jí)機(jī)器上的程序中的每一條語(yǔ)句或指令,都是轉(zhuǎn)去執(zhí)行低一級(jí)機(jī)器上的一段等效程序。執(zhí)行完后,再去高一級(jí)機(jī)器取下一條語(yǔ)句或指令,再進(jìn)行解釋執(zhí)行,如此反復(fù),直到解釋執(zhí)行完整個(gè)程序。
解釋比翻譯花的時(shí)間多,存儲(chǔ)空間占用少。
3.虛擬機(jī):用軟件實(shí)現(xiàn)的機(jī)器。以區(qū)別于由硬件或固件實(shí)現(xiàn)的實(shí)際機(jī)器。
4.計(jì)算機(jī)系統(tǒng)結(jié)構(gòu):傳統(tǒng)機(jī)器程序員所看到的計(jì)算機(jī)屬性,即概念性結(jié)構(gòu)與功能特性。5.透明性:在計(jì)算機(jī)技術(shù)中,把這種本來存在的事物或?qū)傩?,但從某種角度看又好像不存在的概念稱為透明性。
三種分類:Fllynn,馮氏,Handler。
6.計(jì)算機(jī)組成:計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的邏輯實(shí)現(xiàn),計(jì)算機(jī)實(shí)現(xiàn):計(jì)算機(jī)組成的物理實(shí)現(xiàn),一種體系結(jié)構(gòu)可以有多種組成。一種組成可以有多種實(shí)現(xiàn)。
址。3寄存器尋址是指在指令的地址碼部分直接給出操作數(shù)所在的寄存器編號(hào)。而所需的操作數(shù)就在這個(gè)寄存器中4.寄存器間接尋址,寄存器給的不是操作數(shù)而是操作數(shù)地址,可以用這一地址去讀寫存儲(chǔ)器相關(guān)單元。
三.?dāng)?shù)據(jù)表示與指令系統(tǒng)設(shè)計(jì) 1.數(shù)據(jù)表示:是指能由機(jī)器硬件直接識(shí)別、可以被指令系統(tǒng)直接調(diào)用的數(shù)據(jù)類型。
數(shù)據(jù)結(jié)構(gòu):研究的是面向系統(tǒng)軟件、應(yīng)用領(lǐng)域所需要處理的各種數(shù)據(jù)類型,研究這些數(shù)據(jù)類型的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)之間的關(guān)系,并給出相應(yīng)的算法。數(shù)據(jù)表示是結(jié)構(gòu)的組成元素,都是數(shù)據(jù)類型的子集。是硬軟件交界面。
2.定點(diǎn)數(shù):數(shù)據(jù)表示中小數(shù)點(diǎn)位置固定的數(shù)據(jù),分為純整數(shù)和純小數(shù).純整數(shù):最大數(shù)(Rm的n次-1)最小數(shù)(-Rm的n次)表數(shù)個(gè)數(shù)(Rm的n+1次)
純小數(shù):最大數(shù)(1-Rm的-n次)最小數(shù)(-Rm的-n次)表數(shù)個(gè)數(shù)(Rm的n+1次)。
3.浮點(diǎn)數(shù)
第一種:
單精度:A =(-1)S*2E-127 *1.F 雙精度:A =(-1)S*2E-1023 *1.F
7.馮諾依曼特點(diǎn):1.機(jī)器以運(yùn)算器為中心2.采用存儲(chǔ)程序原理3.存儲(chǔ)器是按地址訪問的,線性編址的空間4.控制流由指令流產(chǎn)生5.指令由操作碼和地址碼組成6.數(shù)據(jù)以二進(jìn)制編碼表示,采用二進(jìn)制運(yùn)算。
范圍:1to(2-2的-23次)
N?m?ree?rg
8.計(jì)算機(jī)應(yīng)用的發(fā)展可以歸納為:數(shù)據(jù)處理,信息處理,知識(shí)處理,智能處理。
9.同型號(hào)的計(jì)算機(jī)。系列機(jī):由同一廠家生產(chǎn)的具有相同系統(tǒng)結(jié)構(gòu)、但具有不同組成和實(shí)現(xiàn)的一系列不
兼容機(jī):由不同公司廠家生產(chǎn)的具有相同系統(tǒng)結(jié)構(gòu)的計(jì)算機(jī)。10.軟件兼容:一個(gè)軟件可以不經(jīng)修改或者只需少量修改就可以由一臺(tái)計(jì)算機(jī)移植到另一臺(tái)計(jì)算機(jī)上運(yùn)行。差別只是執(zhí)行時(shí)間的不同。
向上(下)兼容:按某檔計(jì)算機(jī)編制的程序,不加修改就能運(yùn)行于比它高(低)檔的計(jì)算機(jī)。向后(前)兼容:按某個(gè)時(shí)期投入市場(chǎng)的某種型號(hào)計(jì)算機(jī)編制的程序,不加修改地就能運(yùn)行于在它之后(前)投入市場(chǎng)的計(jì)算機(jī)。
軟件具有兼容性和可移植性
硬件軟件邏輯上等效 11.解決軟件可移植性:采用系列機(jī),模擬和仿真,采用統(tǒng)一高級(jí)語(yǔ)言。
11.模擬:用軟件的方法在一臺(tái)現(xiàn)有的計(jì)算機(jī)上實(shí)現(xiàn)另一臺(tái)計(jì)算機(jī)的指令系統(tǒng)。
仿真:用一臺(tái)現(xiàn)有計(jì)算機(jī)上的微程序去解釋實(shí)現(xiàn)另一臺(tái)計(jì)算機(jī)的指令系統(tǒng)。
12.MIPS:每秒百萬(wàn)條指令
MFLOPS:每秒百萬(wàn)條浮點(diǎn)運(yùn)算指令。無(wú)法體現(xiàn)機(jī)器性能
指令條數(shù) MIPS?指令條數(shù)Te=執(zhí)行時(shí)間?106MIPS?106MFLOPS?程序中的浮點(diǎn)操作次數(shù)12.大概率事件優(yōu)先原則:是計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)中最重要和最常用的原則,基本思想CPU執(zhí)行時(shí)間?106是:對(duì)于大概率事件,賦予它優(yōu)先的處理權(quán)和資源使用權(quán),以獲得全局的最優(yōu)結(jié)果。13.Amdahl定律:當(dāng)對(duì)一個(gè)系統(tǒng)中的某個(gè)部件進(jìn)行改進(jìn)后,所能獲得的整個(gè)系統(tǒng)性能的提高,受限于該部件的執(zhí)行時(shí)間占總執(zhí)行時(shí)間的百分比。14.15.可改進(jìn)部分在原系統(tǒng)計(jì)算時(shí)間中所占比例:改進(jìn)部分采用改進(jìn)措施后比沒有采用改進(jìn)措施前性能提高的倍數(shù):Fe
Se
T 1?FT0?Fe?F?T01n ?T 0?e??S?T0?1?Fee?S?Sn?T?n?1?FFeee?e??CPU CPU時(shí)鐘周期數(shù)? 時(shí)間=SCPU時(shí)間=CPU時(shí)鐘周期數(shù)?時(shí)鐘周期長(zhǎng)度e 時(shí)鐘頻率CPU時(shí)鐘周期數(shù)CPU時(shí)間 = CPI?IC?時(shí)鐘周期長(zhǎng)度= IC?CPICPI = IC時(shí)鐘頻率16.IC:執(zhí)行指令條數(shù)
CPI:平均時(shí)鐘周期數(shù)
MIPS=f(MHz)/ CPI
17.程序的局部性原理:程序執(zhí)行時(shí)所訪問的存儲(chǔ)器地址不是隨機(jī)分布的,而是相對(duì)地簇聚。包括時(shí)間局部性和空間局部性。時(shí)間局部性:程序即將用到的信息很可能是目前正在使用的信息??臻g局部性:程序即將用到的信息很可能與目前正在使用的信息在空間上相鄰或接近。
CPU時(shí)間=用戶CPU時(shí)間和系統(tǒng)CPU時(shí)間。
二.現(xiàn)代計(jì)算機(jī)組成
1.馮諾依曼體系:1運(yùn)算器和控制器成為中央處理機(jī),CPU是硬件系統(tǒng)核心,用于數(shù)據(jù)加工處理,完成各種算術(shù),邏輯運(yùn)算及各種控制功能。2存儲(chǔ)器是記憶設(shè)備,分內(nèi)存和外存。3輸入輸出設(shè)備是計(jì)算機(jī)與外界交換信息的裝置。
2.CPU:由控制器,運(yùn)算器和寄存器組成。控制器是計(jì)算機(jī)控制中心,運(yùn)算器是計(jì)算機(jī)對(duì)數(shù)據(jù)進(jìn)行加工處理的中心,寄存器是CPU內(nèi)部臨時(shí)存儲(chǔ)單元,容量小速度快。3.尋址方式:解決的是指令中如何提供操作數(shù)及操作數(shù)地址等問題。
分為立即數(shù)尋址,直接尋址,寄存器尋址,寄存器間接尋址,變址尋址,基址尋址,相對(duì)尋址。4.設(shè)備和算法的總稱。存儲(chǔ)系統(tǒng):計(jì)算機(jī)中存放程序和數(shù)據(jù)的各種存儲(chǔ)設(shè)備,控制部件及管理信息調(diào)度的主要指標(biāo):大容量,高速度,低價(jià)格。
5.程序訪問局部性原因:1程序進(jìn)行時(shí),除了少部分的轉(zhuǎn)移和過程調(diào)用指令外,大多數(shù)情況下仍是順序執(zhí)行。2過程調(diào)用深度值大多數(shù)情況不超過5,3程序中存在循環(huán)結(jié)構(gòu) 4.7.程序中包括許多對(duì)數(shù)據(jù)結(jié)構(gòu)的處理輸入輸出系統(tǒng)作用:1.提供人機(jī)交互接口。
2.完成數(shù)據(jù)格式的轉(zhuǎn)換。3.是重要的存儲(chǔ)媒介。4.為各領(lǐng)域提供應(yīng)用手段。
8.件提供互連和信息傳輸?shù)囊唤M公共信號(hào)線。總線:是多個(gè)系統(tǒng)功能部件之間進(jìn)行數(shù)據(jù)傳送的公共通路,或者說是能為多個(gè)功能部
工作原理:當(dāng)多個(gè)設(shè)備連接在總線上時(shí),其中一個(gè)設(shè)備發(fā)出的信號(hào)可以為其他所有設(shè)備接收,但是在某個(gè)時(shí)段內(nèi),只有一個(gè)設(shè)備能成功發(fā)出信號(hào),總線數(shù)據(jù)傳輸過程分為:總線申請(qǐng)與裁決,總線尋址,數(shù)據(jù)傳送及錯(cuò)誤檢測(cè)等。
9.單總線結(jié)構(gòu):所有部件,設(shè)備連接到這組總線。結(jié)構(gòu)簡(jiǎn)單,成本低,易于接入新的設(shè)備,不利于提高總線的數(shù)據(jù)傳輸率。
10.雙總線結(jié)構(gòu):CPU和主存間設(shè)置一組高速存儲(chǔ)總線。
11.三總線結(jié)構(gòu):在雙總線基礎(chǔ)上增加一組從存儲(chǔ)器到高速I/O的總線,DMA總線、主存總線用于CPU和主存之間的信息傳送;I/O總線用于CPU和各個(gè)I/O之間進(jìn)行信息傳輸;DMA總線用于高速外設(shè)和主存之間的信息交換。DMA和主存總線不能同時(shí)訪問主存。
目前常用——Cache總線,主存總線,I/O總線三級(jí)總線結(jié)構(gòu)。
12.配。CPU
和 接口功能I/O處理匹配:數(shù)據(jù)緩沖功能,接受和執(zhí)行:速度不匹配,時(shí)序不匹配,信息格式不匹配,信息類型不匹CPU命令功能,信號(hào)轉(zhuǎn)換功能,地址譯碼和設(shè)備選擇功能,中斷管理功能,可編程功能。
13.操作數(shù)地址。四種基本尋址方式區(qū)別2直接尋址是指在指令的地址碼部分給出的就是操作數(shù)在存儲(chǔ)器中的地:1立即數(shù)尋址指令的地址碼部分就是指令操作數(shù),而不是第二種:m:尾數(shù)的值
e:階碼的值
Rm:尾數(shù)的基
Re:階碼的基
p:尾數(shù)長(zhǎng)度
q:階碼長(zhǎng)度m e
3.四種舍入法:截?cái)喾?,舍入法,恒置法,查表舍入法?/p>
4.常用的編址方式:隱含編址,統(tǒng)一編址,獨(dú)立編址。
隱含編址:操作碼隱含了其尋址方式。統(tǒng)一編址:將I/O端口地址和存儲(chǔ)器地址合為一體,進(jìn)行統(tǒng)一編址。
獨(dú)立編址:將I/O與存儲(chǔ)器分別單獨(dú)編址。
5.尋址技術(shù):系統(tǒng)尋找數(shù)據(jù)或其他有用信息的地址的技術(shù)。
尋址方式:指令系統(tǒng)中如何形成所要訪問的數(shù)據(jù)的地址。
三類面向:面向主存,面向寄存器,面向堆棧。6.邏輯地址:計(jì)算機(jī)系統(tǒng)的各個(gè)源程序或程序段是從自己的零地址開始分配地址空間的。
物理地址:程序調(diào)入主存中占用的實(shí)際地址稱為物理地址。
7.數(shù)的類型。指令一般由操作碼和地址碼組成。
地址碼包括操作數(shù)地址,地址的附加信息和尋址方式等信息。
操作碼通常包括指令的操作種類和所用的操作 8.指令格式優(yōu)化:操作碼優(yōu)化+地址碼優(yōu)化。
9.息量。操作碼優(yōu)化可以通過信息源熵和信息冗余衡量。
操作碼編碼分為:固定長(zhǎng)度編碼,Huffman
編碼和擴(kuò)展編碼。信息源熵是信息源所含的平均信
10.Huffman編碼不是唯一的,操作碼的平均碼長(zhǎng)是唯一的,且肯定是可用二進(jìn)制位編碼平均碼長(zhǎng)最短的編碼。
信息冗余=(實(shí)際平均碼長(zhǎng)-H)/實(shí)際平均碼長(zhǎng)
11.地址碼個(gè)數(shù)選擇標(biāo)準(zhǔn):程序的存儲(chǔ)量(越小越好)和程序的執(zhí)行速度(越快越好)。12.地址碼指令:1零地址指令,只有操作碼沒有地址碼。2一地址指令,包含一個(gè)地址字段。3二地址指令,兩個(gè)操作數(shù)地址,源和目標(biāo)地址。4三地址指令,兩個(gè)源操作地址,一個(gè)目標(biāo)操作數(shù)地址。
13.DLX指令格式:I類指令,J類指令,R類指令。
14.的目的存儲(chǔ)器基地址I類指令:1.Store指令: 2.LordOP指令:為操作碼,OP為操作碼,Ra為要讀取的源寄存器地址,Ra為要寫入的目的寄存器地址,Rb為要寫入Rb為要讀取的源存儲(chǔ)器基地址。3移位指令格式:Ra:要寫入的目的寄存器地址,Rs是要進(jìn)行移位操作的源寄存器,保留10位,5位Imm是移位的位數(shù)
4.有一個(gè)立即數(shù)指令:Ra為目的寄存器地址,Rd為源操作數(shù)地址,Imm為立即數(shù)。5.條件分支指令:Rb為判斷跳轉(zhuǎn)條件,Rb空缺,Imm為16位偏移量。6.寄存器跳轉(zhuǎn)指令:Ra空缺,Rb15.J為跳轉(zhuǎn)的目的基地址,類指令:OP,0-25位在跳轉(zhuǎn)指令中為跳轉(zhuǎn)地址,在中斷指令中為中斷向量號(hào)。Imm為跳轉(zhuǎn)的偏移地址。
16.R類指令:1.算術(shù)/邏輯運(yùn)算指令:OP為操作碼,Ra為目的寄存器,Rs,Rt為源寄存器,F(xiàn)unc包含四位指令擴(kuò)展功能碼和6位保留。2.移位指令:OP為操作碼,Rd為移位目的寄存器,Rs為移位源操作數(shù)寄存器,Rt為移位位數(shù)寄存器,F(xiàn)unc同上。3.第一類寄存器間數(shù)據(jù)傳輸指令:OP為操作碼,Rd為目的寄存器,Rs,Rt保留,F(xiàn)unc同上。4.第二類寄存器間數(shù)據(jù)傳輸指令:OP為操作碼,Rd空缺,Rs為移位源操作數(shù)寄存器,Rt空缺,F(xiàn)unc同上
17.CISC(Complex Instruction Set Computer):復(fù)雜指令集計(jì)算機(jī)
缺點(diǎn):1.各種指令的使用頻率相差懸殊 2.帶來了計(jì)算機(jī)體系結(jié)構(gòu)的復(fù)雜性 3.不利于單片集成 4.運(yùn)行速度慢 5.不利于采用先進(jìn)的計(jì)算機(jī)體系結(jié)構(gòu)技術(shù)來提高性能。
18.RISC(Reduced Instruction Set Computer): 精簡(jiǎn)指令集計(jì)算機(jī)
設(shè)計(jì)原則:1.選取使用頻率最高的指令,并補(bǔ)充一些最有用的指令 2.每條指令功能盡可能簡(jiǎn)單,并在一個(gè)機(jī)器周期內(nèi)完成 3.所有指令長(zhǎng)度相同 4.只有Load和Store才能防問存儲(chǔ)器,其余在寄存器中進(jìn)行 5.以簡(jiǎn)單有效的方式支持高級(jí)語(yǔ)言。
19.的指令使用量則很少,僅占整個(gè)程序使用量的二八定理:20%的指令反復(fù)地執(zhí)行,使用量占據(jù)整個(gè)程序使用量20%。80%:而剩下80%20.現(xiàn)代微處理機(jī)主頻提升的原因:先延遲,功耗。
21.3.計(jì)算機(jī)價(jià)格的發(fā)展趨勢(shì)。計(jì)算機(jī)系統(tǒng)設(shè)計(jì)中設(shè)計(jì)者應(yīng)考慮的因素
:1.技術(shù)發(fā)展趨勢(shì) 2.計(jì)算機(jī)使用的發(fā)展趨勢(shì) 22.線延遲墻:隨著集成電路工藝的進(jìn)步,芯片內(nèi)晶體管大小不斷變小,其邏輯門延遲也隨之減小,而走線延遲所占的比重也隨之越來越大,導(dǎo)致電路頻率不能隨著工藝的減小而線性減小。
23.指令集結(jié)構(gòu)設(shè)計(jì)考慮的問題以及解決方法:1.指令及功能設(shè)計(jì):RISC和CISC。2.尋址方式設(shè)計(jì):可以對(duì)基準(zhǔn)程序進(jìn)行測(cè)試統(tǒng)計(jì),查看使用頻度,確定尋址方式。3.操作數(shù)表示和操作數(shù)類型:浮點(diǎn)型,整形,字符型。4.尋址方式表示:尋址方式可以編入操作碼(速度快,增大了CPU譯碼難度)也可以單獨(dú)處理(速度慢,易于指令擴(kuò)展)5.指令集格式設(shè)計(jì):固定長(zhǎng),可變長(zhǎng),混合編碼。
24.指令集基本要求:完整性,規(guī)整性,高效率,兼容性。
25.區(qū)別不同指令集結(jié)構(gòu)的主要因素:區(qū)別不同指令集結(jié)構(gòu)的主要因素是CPU中用來存儲(chǔ)操作數(shù)的存儲(chǔ)單元。據(jù)此可將指令分為堆棧結(jié)構(gòu)、累加器結(jié)構(gòu)和通用寄存器結(jié)構(gòu)。四,存儲(chǔ)系統(tǒng)
1.存儲(chǔ)器容量Sm=W*l*m。W為存儲(chǔ)體字長(zhǎng),l為每個(gè)存儲(chǔ)體字?jǐn)?shù),m為并行存儲(chǔ)體個(gè)數(shù)。訪問時(shí)間TA:存儲(chǔ)器從接到訪存申請(qǐng)到信息被讀到數(shù)據(jù)總線上所需時(shí)間。存儲(chǔ)周期TM:是連續(xù)啟動(dòng)一個(gè)存儲(chǔ)體所需要的時(shí)間間隔,一般大于TA。頻寬Bm:存儲(chǔ)器可以提供的數(shù)據(jù)傳輸率。容量大價(jià)格低,速度越快價(jià)格越高,容量越大速度越慢。2.存儲(chǔ)系統(tǒng)目的:1.組織好速度,容量,價(jià)格不同的存儲(chǔ)器,2.使這個(gè)存儲(chǔ)器速度接近速度最快的存儲(chǔ)器。3.存儲(chǔ)容量接近容量最大的存儲(chǔ)器。4.單位價(jià)格接近最便宜。3.命中率H:由CPU產(chǎn)生的邏輯地址在存儲(chǔ)器M訪問到指定信息的概率。
4.平均訪問時(shí)間T=H*T1+(1-H)*T2 提高存儲(chǔ)器系統(tǒng)速度兩條途徑:1.提高命中率。2.使構(gòu)成存儲(chǔ)系統(tǒng)的相鄰兩個(gè)存儲(chǔ)器速度之比不要太大。
5.虛擬存儲(chǔ)器:是“主存-輔存”存儲(chǔ)層次的發(fā)展和完善,它使該存儲(chǔ)層次具有輔存容量,接近主存的等效速度和輔存的每位價(jià)格。多個(gè)進(jìn)程共享主存空間。
6.虛擬地址:是應(yīng)用程序員對(duì)程序進(jìn)行翻譯生成的訪問地址,它表示的存儲(chǔ)空間為虛存空間。實(shí)地址:是指主存儲(chǔ)器或磁盤存儲(chǔ)器的物理地址,表示的存儲(chǔ)空間為主存物理空間。
7.地址映像:虛擬存儲(chǔ)器中虛擬地址和物理地址之間的對(duì)應(yīng)關(guān)系的規(guī)則。
8.地址變換:虛擬存儲(chǔ)系統(tǒng)按照某種地址映像方式把虛擬地址變換為主存實(shí)地址。9.虛擬存儲(chǔ)器工作原理:頁(yè)式虛擬存儲(chǔ)器是比較廣泛的一種。把主存儲(chǔ)器,磁盤存儲(chǔ)器和虛擬存儲(chǔ)器都分成固定大小的頁(yè),每一頁(yè)容納字?jǐn)?shù)相同。當(dāng)用戶要訪問虛擬存儲(chǔ)器時(shí),必須給出多用戶虛地址Av;如果未命中,必須訪問輔存,需要進(jìn)行外部地址變換;如果主存儲(chǔ)器中沒有空頁(yè),利用某種替換算法處理。
10.管理方式:1.段式:將虛地址通過段表找到段的基地址,然后形成物理地址,訪問存儲(chǔ)器。2.頁(yè)式。3.段頁(yè)式:把實(shí)存機(jī)械的等分成固定大小的頁(yè),把程序按模塊分段,每個(gè)段分成與主存頁(yè)面大小相同的頁(yè),每道程序通過一個(gè)段表和相應(yīng)于每段的一組頁(yè)表來進(jìn)行定位。
10.頁(yè)面替換算法:1.隨機(jī)替換算法(RAND):利用軟件或硬件的隨機(jī)數(shù)發(fā)生器來確定11.中斷源:把凡能向CPU提出中斷請(qǐng)求的各種因素統(tǒng)稱為中斷源。
中斷軟硬功能分配:一是中斷響應(yīng)時(shí)間,二是靈活性。要在硬件的快速性和軟件的靈活性之間進(jìn)行綜合權(quán)衡。必須硬件:保存中斷點(diǎn)和進(jìn)入中斷服務(wù)程序入口。必須軟件:中斷服務(wù)和返回到中斷點(diǎn)。
12.中斷屏蔽:為提高中斷系統(tǒng)靈活性,可以動(dòng)態(tài)改變中斷源優(yōu)先級(jí)
用處:(1)在中斷優(yōu)先級(jí)由硬件確定了的情況下,改變中斷源的中斷服務(wù)順序。(2)決定設(shè)備是否采用中斷方式工作。(3)在多處理機(jī)系統(tǒng)中,把外圍設(shè)備的服務(wù)工作分配到不同的處理機(jī)中。
13.四種I/O工作方式:程序控制,中斷,DMA I/O處理機(jī)。
六.流水線技術(shù)
1.指令執(zhí)行過程:1.取指令。按照指令計(jì)數(shù)器的內(nèi)容訪問主存。2.分析指令。對(duì)指令寄存器中的指令進(jìn)行譯碼分析。3.執(zhí)行指令。對(duì)操作數(shù)進(jìn)行運(yùn)算處理,完成指定功能。2.重疊方式:1.順序執(zhí)行方式(串行執(zhí)行)。T=3nt,控制簡(jiǎn)單,利用率低,速度慢。2.一次重疊方式:指第i條指令的執(zhí)行階段和第i+1條指令的取指令階段同時(shí)進(jìn)行。T=(1+2n)t,利用率中,速度中,控制復(fù)雜。3.二次重疊方式:指第i條指令的執(zhí)行階段,第i+1條指令的分析階段和第i+2條指令的取指令階段同時(shí)進(jìn)行。T=(2+n)t,利用率高,速度快,需要解決問題:1.必須有獨(dú)立的取指令部件,指令分析部件和指令執(zhí)行部件。2.要解決訪問主存沖突問題。
3.解決訪問主存沖突問題:1.把主存分成兩個(gè)獨(dú)立編址的存儲(chǔ)器,一個(gè)指令存儲(chǔ)器,一個(gè)數(shù)據(jù)存儲(chǔ)器。2.主存采用低位交叉編址的秉性存儲(chǔ)器。3.采用先行控制技術(shù)。
4.先行指令緩沖棧:平滑主存和指令分
析器的工作。指令分析器:從先行指令
緩沖棧取得指令后就行預(yù)處理。先行操
作棧:是指令分析器和運(yùn)算控制器之間的一個(gè)緩沖存儲(chǔ)器。先行讀書棧:平滑
運(yùn)算器與主存儲(chǔ)器的工作。后行寫數(shù)棧 主存儲(chǔ)器中被替換頁(yè)的頁(yè)號(hào)。2.先進(jìn)先出替換算法(FIFO):選擇最早裝入主存的頁(yè)作為被替換的頁(yè)。3.近期最少使用算法:選擇近期最少訪問的頁(yè)面作為被替換頁(yè)面。4.最久沒用使用的算法(LFU):把近期最久沒有訪問過的頁(yè)面作為被替換的頁(yè)面。5.最后的算法應(yīng)該是選擇將來最久不被訪問的頁(yè)面作為被替換的頁(yè)面,命中率一定最高,但只是理想標(biāo)準(zhǔn)。
11.為頁(yè)數(shù)減少了。虛擬存儲(chǔ)器性能2.主存容量,當(dāng)主存容量增加到一定值,對(duì)命中率影響不大。:1.頁(yè)面大小,當(dāng)頁(yè)大小增加到一定值時(shí),命中率反而降低,是因3.頁(yè)面調(diào)度方式:分頁(yè)方式,請(qǐng)求頁(yè)式,預(yù)取式+請(qǐng)求頁(yè)式結(jié)合。
12.13.Cache命中時(shí)間:高速緩沖存儲(chǔ)器是在:訪問Cache命中時(shí)所用的時(shí)間。CPU與主存之間設(shè)置的一個(gè)高速度,小容量存儲(chǔ)器。
失效率:CPU訪存時(shí),在一級(jí)存儲(chǔ)器 中找不到所需信息的概率。
失效開銷:CPU向二級(jí)存儲(chǔ)器發(fā)出訪問請(qǐng)求到把這個(gè)數(shù)據(jù)調(diào)入一級(jí)存儲(chǔ)器所需的時(shí)間。
Cache平均訪問時(shí)間=命中時(shí)間+失效率*失效開銷。14.Cache與虛擬存儲(chǔ)器的不同:1.Cache與主存之間以塊為單位進(jìn)行數(shù)據(jù)交換。2.兩級(jí)存儲(chǔ)器的速度比不同。3.CPU和Cache之間和CPU與主存之間都有直接通路。4.Cache系統(tǒng)以提高存儲(chǔ)系統(tǒng)速度為目標(biāo),虛擬存儲(chǔ)系統(tǒng)以擴(kuò)大存儲(chǔ)系統(tǒng)容量為目標(biāo)。
13.基本工作原理:Cache與主存分成大小相同的塊,主存地址由塊號(hào)B和塊內(nèi)地址W組成,Cache地址由塊號(hào)b和塊內(nèi)地址w組成。由于塊相等,塊內(nèi)地址相同。、15.復(fù)雜)地址映像及變換方式:主存中的任意一塊可以映像到:1.全相聯(lián)映像及變換(利用率最高,沖突概率最低,實(shí)現(xiàn)最Cache中任意一塊位置上。2.直接相聯(lián)映像及變換(利用率最低,沖突概率最高,實(shí)現(xiàn)最簡(jiǎn)單):雖然也是多對(duì)一,但一個(gè)主存塊只能映像到Cache的一個(gè)特定塊上去。3.組相聯(lián)映像及變換:把主存按Cache容量分區(qū),主存中各區(qū)和Cache再按同樣大小分成相同數(shù)量的組,組內(nèi)按同樣大小分成相同數(shù)量的塊,主存組到Cache組間采用直接映像方式,兩個(gè)對(duì)應(yīng)的組的塊之間采用全相聯(lián)映像方式。4.段相聯(lián)映像方式:實(shí)質(zhì)上是組相聯(lián)的特例。5.位選擇組相聯(lián)及其變換:與一般組相聯(lián)映像方式不同,Cache仍然分組,主存不分組。
16.提高Cache性能方法:1.命中率與容量關(guān)系。2.命中率與塊大小關(guān)系。3.命中率與組數(shù)關(guān)系:Cache容量一定時(shí),分組的數(shù)目對(duì)命中率的影響是很明顯的,隨著分組數(shù)目增加,組內(nèi)的塊數(shù)減少,命中率下降。4.命中率與Cache組織方式間的關(guān)系:容量一定,全相聯(lián)命中率比直接相聯(lián)高。
17.體,避免存儲(chǔ)體沖突。提高主存性能方法:增加存儲(chǔ)器寬度,采用簡(jiǎn)單的多體交叉存儲(chǔ)器,采用獨(dú)立存儲(chǔ)
18.從哪幾方面改進(jìn)主存性能:降低失效率,減少失效開銷,減少Cache命中時(shí)間。
五.輸入輸出系統(tǒng)
1.輸入輸出系統(tǒng):把處理機(jī)與主存儲(chǔ)器之外的部分統(tǒng)稱為輸入輸出系統(tǒng)。包括輸入輸出設(shè)備、輸入輸出接口和輸入輸出軟件等。
2.輸入輸出系統(tǒng)特點(diǎn):1.異步性:各個(gè)設(shè)備按照自己時(shí)鐘工作。2.與設(shè)備無(wú)關(guān)性:設(shè)有獨(dú)立于具體設(shè)備的標(biāo)準(zhǔn)接口。3.實(shí)時(shí)性。針對(duì)異步性,采用自治控制方針,針對(duì)與設(shè)備無(wú)關(guān)性,采用分類處理方法,針對(duì)實(shí)時(shí)性,采用層次結(jié)構(gòu)的方法。
3.基本輸入輸出方式:1.程序查詢方式:不斷查詢I/O準(zhǔn)備情況。2.中斷輸入輸出方式。3.直接存儲(chǔ)器訪問方式(DMA):主存和I/O設(shè)備交換信息時(shí),無(wú)需處理中斷服務(wù)程序。
4.通道方式。5.I/O處理機(jī)方式
4.DMA特點(diǎn):1.主存儲(chǔ)器可以被CPU訪問,也可以被外圍設(shè)備訪問。2.外設(shè)與主存之間傳送數(shù)據(jù)不需要執(zhí)行程序,也不動(dòng)用CPU中的資源。3.在DMA開始之前,CPU要對(duì)DMA控制器進(jìn)行初始化。
5.總線分類:1.在計(jì)算機(jī)結(jié)構(gòu)中所在位置:片內(nèi)總線,片總線,內(nèi)總線,外總線。2.傳遞信息類型:數(shù)據(jù)總線,地址總線,控制總線。3.信息傳送方向:?jiǎn)蜗蚝碗p向。4.總線用途:CPU-存儲(chǔ)器總線和I/O總線。5.信息在總線上傳送方式:同步和異步。
6.總線仲裁:解決的是多個(gè)設(shè)備競(jìng)爭(zhēng)使用總線的管理問題,由總線仲裁邏輯線路完成。7.總線控制方式:1.集中式串行鏈接控制:選擇算法簡(jiǎn)單,可擴(kuò)充性好,可靠性差,靈活性差,分配速度低。2.集中式定時(shí)查詢控制:靈活性好,可靠性高,可擴(kuò)充性差,輔助總線多,分配速度低。3.集中式獨(dú)立請(qǐng)求控制:分配速度高,靈活性好,可靠性高,輔助總線多,可擴(kuò)充性差,復(fù)雜價(jià)格高。
8.步通信。總線的通行方式4.雙向互鎖異步通信。:1.單向源控式異步通信。2.單向目控式異步通信。3.雙向非互鎖異9.總線指標(biāo):總線寬度:通常指其一次操作可以傳輸?shù)臄?shù)據(jù)位數(shù)??偩€頻率:是總線工作的最高頻率時(shí)鐘
單個(gè)數(shù)據(jù)傳送周期數(shù)。
10.中斷:當(dāng)出現(xiàn)異常情況或者特殊請(qǐng)求時(shí),計(jì)算機(jī)停止現(xiàn)行程序的運(yùn)行,轉(zhuǎn)向?qū)@些異常情況或特殊請(qǐng)求的處理,處理結(jié)束后再返回到現(xiàn)行程序的間斷處。
:是主存儲(chǔ)器與運(yùn)算器之間的一個(gè)緩沖
存儲(chǔ)器。
4.執(zhí)行指令部件完全獨(dú)立的工作。并始終處于忙碌狀態(tài)。先行控制技術(shù)是緩沖技術(shù)和預(yù)處理技術(shù)的結(jié)合。
使取指令部件,分析指令部件和
5.流水線技術(shù):流水線技術(shù)是指將一個(gè)重復(fù)的時(shí)序過程分解為若干個(gè)子過程,每一個(gè)子過程都可有效地在其專用功能段上與其他子過程同時(shí)執(zhí)行。
6.時(shí)空?qǐng)D:橫坐標(biāo)表示時(shí)間:即輸入到流水線中的各個(gè)任務(wù)在流水線中所經(jīng)過的時(shí)間;縱坐標(biāo)表示空間:即流水線的各個(gè)子過程。從橫坐標(biāo)方向看,流水線中的各個(gè)功能部件在逐個(gè)連續(xù)地完成自己的任務(wù)。
從縱坐標(biāo)方向看,在同一個(gè)時(shí)間段內(nèi)有多個(gè)流水段在同時(shí)工作,執(zhí)行不同的任務(wù)。
7.流水線特點(diǎn):1.把一個(gè)大的功能部件分解為多個(gè)獨(dú)立的功能部件。2.每一個(gè)功能部件后面都有一個(gè)緩沖寄存器,3.工作一般分為時(shí)間段,裝入時(shí)間,裝滿和排空時(shí)間。4.流水線中各段時(shí)間應(yīng)盡量相等,長(zhǎng)的功能段將成為其瓶頸,造成堵塞和斷流。5.流水線技術(shù)適合大量同類任務(wù),只有向連續(xù)不斷提供任務(wù),其效率才能充分發(fā)揮。8.行分段,再把這些部件分段相互連接而成。它使得運(yùn)算操作能夠按流水方式進(jìn)行。這流水線分類:1.按級(jí)別分:部件級(jí)流水線(運(yùn)算操作流水線):把處理機(jī)中的部件進(jìn)種流水線也稱為運(yùn)算操作流水線。處理機(jī)級(jí)流水線(指令流水線):它是把指令的執(zhí)行過程按照流水方式進(jìn)行處理,即把一條指令的執(zhí)行過程分解為若干個(gè)子過程,每個(gè)子過程在獨(dú)立的功能部件中執(zhí)行。
處理機(jī)間流水線(宏流水線):它是把多個(gè)處理機(jī)串行連接起來,對(duì)同一數(shù)據(jù)流進(jìn)行處理,每個(gè)處理機(jī)完成整個(gè)任務(wù)中的一部分。前一個(gè)處理機(jī)的輸出結(jié)果存入存儲(chǔ)器中,作為后一個(gè)處理機(jī)的輸入。
2.按反饋回路分:線性流水線(各段逐個(gè)串接起來)非線性流水線(除了有串行連接,還有反饋回路)3.功能多少分:?jiǎn)喂δ芎投喙δ堋?.同一時(shí)間各段連接方式:靜態(tài)(指同一時(shí)段,多功能流水線中各個(gè)流水段只能按照一個(gè)固定方式連接,實(shí)現(xiàn)固定功能)和動(dòng)態(tài)(指同一時(shí)段,多功能流水線中各段可以按照不同方式連接,同時(shí)執(zhí)行多種功能)。5.按數(shù)據(jù)表示分:標(biāo)量處理機(jī)(只能同時(shí)對(duì)一個(gè)或一對(duì)標(biāo)量操作數(shù)進(jìn)行運(yùn)算或操作指令)和向量處理機(jī)(可以同時(shí)處理相同類型的多個(gè)或多對(duì)數(shù)據(jù))。
8.吞吐率:?jiǎn)挝粫r(shí)間內(nèi)流水線完成的任務(wù)數(shù)或輸出的結(jié)果數(shù)。TP=N/Tk
N:任務(wù)數(shù),Tk完成n個(gè)任務(wù)所用的時(shí)間。
最大吞吐率受限于瓶頸子過程,要提高最大吞吐率,設(shè)法取消瓶頸功能段。方法有:1.將流水線瓶頸部分再細(xì)分。2.重復(fù)設(shè)置瓶頸功能段,讓多個(gè)瓶頸部件并行工作。
9.加速比:是指完成一批任務(wù)時(shí),不采用流水線所用時(shí)間與采用流水線所用的時(shí)間之比。S=T0/Tk。T0:順序方式下執(zhí)行時(shí)間 最大加速比與流水線的功能段數(shù)相等。10.效率:是指流水線的設(shè)備利用率。時(shí)空?qǐng)D上是n個(gè)任務(wù)占的時(shí)空區(qū)和k個(gè)功能段總的時(shí)空區(qū)之比
E=T0/KTk
E=TP*t
E=S/k 11.12.相關(guān)包括資源相關(guān):資源相關(guān),數(shù)據(jù)相關(guān),控制相關(guān)。:指多條指令進(jìn)入流水線后,同一時(shí)間爭(zhēng)用同一功能部件從而發(fā)生的沖突。一般采用延遲執(zhí)行和細(xì)分功能部件來解決。
數(shù)據(jù)相關(guān):又稱局部相關(guān),指令在流水線中執(zhí)行時(shí),使得原來對(duì)操作數(shù)的訪問順序發(fā)生變化,對(duì)數(shù)據(jù)的讀寫操作順序不同于指令在順序方式下執(zhí)行時(shí)的順序,從而導(dǎo)致對(duì)數(shù)據(jù)的訪問發(fā)生錯(cuò)誤。
數(shù)據(jù)相關(guān)分為:先寫后讀,先讀后寫,寫后寫。
解決方法有:推遲處理,設(shè)置專用路徑。
控制相關(guān):又稱全局相關(guān),是由程序執(zhí)行轉(zhuǎn)移類指令而引起的相關(guān)。它的影響范圍比較大,會(huì)引起程序執(zhí)行方向的改變。解決方法有:改進(jìn)硬件功能,采用預(yù)測(cè)分支失敗機(jī)制,采用延遲分支機(jī)制。
13.碼。減少條件轉(zhuǎn)移對(duì)流水線的影響3.轉(zhuǎn)移預(yù)測(cè)技術(shù)。分為靜態(tài)轉(zhuǎn)移預(yù)測(cè)和動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)。:1.延遲轉(zhuǎn)移技術(shù)和指令取消技術(shù)。2.提前形成條件14.靜態(tài)轉(zhuǎn)移預(yù)測(cè):指在處理機(jī)的硬件和軟件設(shè)計(jì)完成后,轉(zhuǎn)移預(yù)測(cè)的方向就已經(jīng)確定,在程序?qū)嶋H執(zhí)行過程中,轉(zhuǎn)移預(yù)測(cè)的方向不能改變。分為:軟件猜測(cè)法,硬件猜測(cè)法和設(shè)置兩個(gè)指令緩沖棧。
15.動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)技術(shù):是根據(jù)近期轉(zhuǎn)移是否成功的歷史記錄來預(yù)測(cè)下一次轉(zhuǎn)移的方向,它能夠隨程序的執(zhí)行過程動(dòng)態(tài)地改變轉(zhuǎn)移的預(yù)測(cè)方向。分為:在指令Cache中記錄轉(zhuǎn)移歷史記錄,轉(zhuǎn)移目標(biāo)地址緩沖棧,轉(zhuǎn)移指令功能緩沖棧。
16.中斷:中斷請(qǐng)求是隨機(jī)發(fā)生的,不可預(yù)知的。
不精確斷點(diǎn):凡是已經(jīng)進(jìn)入流水線的指令都執(zhí)行完成,斷點(diǎn)就是最后進(jìn)入流水線的那條指令的地址。
精確斷點(diǎn):是對(duì)于在流水線中同時(shí)執(zhí)行的多條指令,如果有哪一條指令由于程序錯(cuò)誤或者故障發(fā)出中斷申請(qǐng),斷點(diǎn)就是那條指令的地址。
17.過程中,可能會(huì)多次通過同一個(gè)功能段或越過某個(gè)功能段。非線性流水線的調(diào)度技術(shù):在非線性流水線中,功能段間有反饋回路,任務(wù)在執(zhí)行
如果每個(gè)時(shí)鐘周期向流水線送入一個(gè)新任務(wù),將會(huì)發(fā)生多個(gè)任務(wù)爭(zhēng)用同一個(gè)功能段的沖突現(xiàn)象。
一張非線性流水線的預(yù)約表可能與多個(gè)非線性流水線的連接圖相對(duì)應(yīng);一個(gè)非線性流水線的連接圖也可能與多個(gè)非線性流水線的預(yù)約表相對(duì)應(yīng)。
19.非線性流水線的啟動(dòng)距離:是指向一條非線性流水線的輸入端連續(xù)輸入兩個(gè)任務(wù)之間的時(shí)間間隔,它通常用時(shí)鐘周期數(shù)表示。
非線性流水線調(diào)度的任務(wù):就是找出一個(gè)最小的啟動(dòng)循環(huán)周期,按照這個(gè)周期向流水線輸入任務(wù),流水線的各個(gè)功能段都不會(huì)發(fā)生沖突。同時(shí),非線性流水線的吞吐率和效率最高。
20.水線的狀態(tài)圖(當(dāng)初始沖突向量確定后,狀態(tài)圖就是唯一的,由于不同的預(yù)約表可能非線性流水線的調(diào)度方法步驟:1.寫出禁止向量和初始沖突向量。2.畫出非線性流產(chǎn)生相同的初始沖突向量,因此從預(yù)約表可以畫出狀態(tài)圖,但從狀態(tài)圖不能得到預(yù)約表)。3.求出最小啟動(dòng)循環(huán)(指平均啟動(dòng)距離最小的啟動(dòng)循環(huán))和最小平均啟動(dòng)距離。4.求平均啟動(dòng)距離最小的恒定循環(huán)。
21.多指令流水線技術(shù):在一般流水線標(biāo)量處理機(jī)的基礎(chǔ)上,提出提高指令級(jí)并行的高性能超級(jí)處理機(jī),讓單個(gè)處理機(jī)在每個(gè)時(shí)鐘周期里可以執(zhí)行多條指令。
22.超標(biāo)量處理機(jī):指在一個(gè)時(shí)鐘周期內(nèi)能夠同時(shí)發(fā)射兩條或者兩條以上的指令的處理機(jī)。
超流水線處理機(jī):指在一個(gè)時(shí)鐘周期內(nèi)分時(shí)發(fā)射多條指令的處理機(jī)。
超標(biāo)量超流水線處理機(jī):是前兩種的結(jié)合,在一個(gè)時(shí)鐘周期發(fā)射n次,每次發(fā)射m條指令。23.定向技術(shù):是指流水線中將計(jì)算結(jié)果從其產(chǎn)生的地方直接送到真正需要它的地方,而不是從寄存器文件讀出使用,它是一種解決數(shù)據(jù)相關(guān),避免流水線暫停的方法。
第四篇:計(jì)算機(jī)體系結(jié)構(gòu) 實(shí)驗(yàn)報(bào)告2 華東理工大學(xué)
實(shí)驗(yàn)名稱多通路運(yùn)算器和寄存器堆
實(shí)驗(yàn)地點(diǎn) 信息樓420 實(shí)驗(yàn)日期 2012-12-7
一、實(shí)驗(yàn)?zāi)康?/p>
1. 了解多通路的運(yùn)算器與寄存器堆的組成結(jié)構(gòu)。
2. 掌握多通路的運(yùn)算器與寄存器堆的工作原理及設(shè)計(jì)方法。
二、實(shí)驗(yàn)設(shè)備
PC 機(jī)一臺(tái),TD-CMX 實(shí)驗(yàn)系統(tǒng)一套。
三、實(shí)驗(yàn)原理
1.ALU® 單元的結(jié)構(gòu)
ALU®單元由運(yùn)算器和雙端口寄存器堆構(gòu)成,通過不同的控制信號(hào)SEL1、SEL0 產(chǎn)生不同結(jié)構(gòu)的運(yùn)算器。運(yùn)算器內(nèi)部含有三個(gè)獨(dú)立運(yùn)算部件,分別為算術(shù)、邏輯和移位運(yùn)算部件,要處理的數(shù)據(jù)存于暫存器A 和暫存器B。
SEL0 和SEL1 用于選擇運(yùn)算器和寄存器堆的通路:
(1)當(dāng)SEL1=0、SEL0=0,ALU 的輸出D7?D0、REG(右口)的輸出OUT7?OUT0 和ALU與REG 的輸入IN7?IN0 接到CPU 內(nèi)總線上時(shí),如圖1-2-1 所示,寄存器堆只能從右口進(jìn)行操作,相當(dāng)于只有一組控制線的單端口寄存器堆,一般計(jì)算機(jī)組成原理實(shí)驗(yàn)涉及到的運(yùn)算器和寄存器就是采用這種結(jié)構(gòu)。
(2)當(dāng)SEL1=
1、SEL0=0,REG(右口)的輸出OUT7?OUT0 和ALU 與REG(右口)的輸入IN7?IN0 接到CPU 內(nèi)總線上時(shí),運(yùn)算器和雙端口寄存器堆的結(jié)構(gòu)如圖1-2-2 所示,寄存器堆由兩組控制信號(hào)來分別進(jìn)行控制,每組控制信號(hào)都可以相對(duì)獨(dú)立的對(duì)寄存器堆進(jìn)行讀寫操作,同時(shí)增加了執(zhí)行專用通道A 總線,以利于提高指令執(zhí)行的效率。
(3)當(dāng)SEL1=
1、SEL0=1,REG(右口)的輸出OUT7?OUT0 和ALU 與REG(右口)的輸入IN7?IN0 接到CPU 內(nèi)總線上時(shí),運(yùn)算器和雙端口寄存器堆的結(jié)構(gòu)如圖1-2-3 所示,在雙通道雙端口運(yùn)算器和寄存器堆的基礎(chǔ)上增加了暫存器旁路,把運(yùn)算結(jié)果寫回到寄存器堆的同時(shí)也可以寫到暫存器A、暫存器B 中。由于在運(yùn)算型指令中把運(yùn)算的結(jié)果寫到通用寄存器中的指令很多,占運(yùn)算型指令的大多數(shù),發(fā)生通用寄存器數(shù)據(jù)相關(guān)的概率相當(dāng)高,因此,可以用硬件 設(shè)置專用路徑來解決這種通用寄存器數(shù)據(jù)相關(guān)問題。
上面介紹了運(yùn)算器和寄存器堆的三種典型的數(shù)據(jù)通路圖,在計(jì)算機(jī)組成原理這門課程中我們已經(jīng)對(duì)運(yùn)算器有了初步的了解,明白運(yùn)算器的主要功能是完成算術(shù)和邏輯類運(yùn)算。在系統(tǒng)結(jié)構(gòu)這門課程中經(jīng)過進(jìn)一步的研究,還會(huì)了解到運(yùn)算器與寄存器堆的結(jié)構(gòu)對(duì)于計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)有著重要的作用,對(duì)于計(jì)算機(jī)性能的優(yōu)劣有著很大的影響。2.ALU® 單元的應(yīng)用
在了解運(yùn)算器與寄存器堆結(jié)構(gòu)的基礎(chǔ)上,基于如圖1-2-3 所示的雙通道雙端口運(yùn)算器和雙端口寄存器堆的結(jié)構(gòu)可以設(shè)計(jì)一段程序:從IN 單元讀入一個(gè)數(shù)據(jù),存入R0;從IN 單元讀入另一個(gè)數(shù)據(jù),存于R1;將R0 和R1 相加,結(jié)果存于R0;將R0 和R1 相加,結(jié)果存于R3,同 時(shí)打入暫存器A 中;再將R0 的值送OUT 單元顯示。
四、實(shí)驗(yàn)操作及運(yùn)行結(jié)果
(1)實(shí)驗(yàn)步驟
1、把時(shí)序與操作臺(tái)單元的“MODE”短路塊插上,使系統(tǒng)工作在四節(jié)拍模式,按實(shí)驗(yàn)連接圖接線。注意:連線時(shí)實(shí)驗(yàn)箱電源要處于關(guān)閉狀態(tài)。
2、確保接線正確后,將實(shí)驗(yàn)箱連到電腦:電源線+并口Jtag下載線(打印機(jī)口),并打開實(shí)驗(yàn)箱電源。
3、在軟件Quartus II 8.0中選擇“File->Open Project”選項(xiàng),按照以下路徑查找實(shí)驗(yàn)過程中需要下載到FPGA中的數(shù)據(jù)“C:TangDuCMXFPGAALU® ALU®.qpf(.sof)”,打開該文件后,單擊軟件中的“Programmer”選項(xiàng),單擊“Start”完成下載。如果下載成功在界面Progress中可以看到100%的標(biāo)志字樣。
4、用串口電纜連接實(shí)驗(yàn)箱和電腦打印機(jī)口,接通電源,打開軟件CMX,進(jìn)行串口測(cè)試(如果串口線未連接或者串口線故障則自動(dòng)彈出錯(cuò)誤信息對(duì)話框):端口→串口選擇→COM1或者COM2;然后,測(cè)試串口通訊是否成功:端口→串口測(cè)試。
5、如果串口通訊成功,在PC 機(jī)上運(yùn)行TD-CMX,進(jìn)入聯(lián)機(jī)軟件界面,選擇菜單命令“【實(shí)驗(yàn)】—【ALU®實(shí)驗(yàn)】”,打開數(shù)據(jù)通路圖。
6、首先按CON單元的CLR開關(guān)進(jìn)行系統(tǒng)清零,狀態(tài)機(jī)為S0態(tài)。然后,采用單節(jié)拍運(yùn)行方式來觀察數(shù)據(jù)流通。
1)用連接成的雙通道雙端口運(yùn)算器和雙端口寄存器堆的結(jié)構(gòu)實(shí)現(xiàn)以下一段程序:從IN 單元讀入一個(gè)數(shù)據(jù),存入R0;從IN 單元讀入另一個(gè)數(shù)據(jù),存于R1;將R0 和R1 相加,結(jié)果存于R0;將R0 和R1 相加,結(jié)果存于R3,同時(shí)打入暫存器A 中;再將R0 的值送OUT 單元顯示。
2)根據(jù)指令要求,得出用時(shí)鐘進(jìn)行驅(qū)動(dòng)的狀態(tài)機(jī)描述,即得出其有限狀態(tài)機(jī)
S0:空操作,系統(tǒng)復(fù)位后的狀態(tài)
S1:IN->R0;從IN 單元往R0 中打一個(gè)數(shù) S2:IN->R1;從IN 單元往R1 中打一個(gè)數(shù)
S3:R0->A, R1->B;同時(shí)把R0、R1 中的數(shù)打入暫存器A、B 中 S4:A+B->R0;將A+B 的結(jié)果送往R0 S5:A+B->R3,A+B->A;增加暫存器旁路,將A+B 的結(jié)果送往R3 的同時(shí)打入暫存器A中 S6:R0->OUT;把R0 中的數(shù)送入輸出單元顯示
3)每個(gè)狀態(tài)運(yùn)行4個(gè)周期(T1—T4),即每個(gè)狀態(tài)按4次單節(jié)拍運(yùn)行按鈕
。請(qǐng)?jiān)赟1和S2狀態(tài),通過IN單元的開關(guān)分別輸入兩個(gè)數(shù)(比如1和3)。觀察數(shù)據(jù)通路圖中數(shù)據(jù)的變化,并檢查是否與狀態(tài)的描述相符合。最后觀察OUT液晶單元是否顯示正確(如果從IN單元輸入的兩個(gè)數(shù)分別為1和3,則OUT單元輸出應(yīng)該為4)。
7、當(dāng)模型機(jī)執(zhí)行完一遍后,檢查OUT 單元顯示的數(shù)是否正確,按下CON 單元的總清按 鈕CLR,改變IN 單元的值,再次執(zhí)行機(jī)器程序,從OUT 單元顯示的數(shù)判別程序執(zhí)行是否正確。
(2)實(shí)驗(yàn)結(jié)果
五、實(shí)驗(yàn)中出現(xiàn)的問題和解決方法
問題1:接線問題 解決方法:本試驗(yàn)我自認(rèn)為是這三個(gè)實(shí)驗(yàn)里連線最復(fù)雜的一個(gè),因?yàn)殚_始的時(shí)候小組其他的兩個(gè)同學(xué)連的線,后來實(shí)驗(yàn)執(zhí)行不成功,所以我們又檢查了一下連線,雖然找到了幾個(gè)錯(cuò)誤但是仍然不成功,不得不在找一遍,最終發(fā)現(xiàn)了加法運(yùn)算器執(zhí)行不正確的地方了。問題2:串口問題
解決方法:使用新的串口需要根據(jù)實(shí)驗(yàn)操作指示重新安裝USB轉(zhuǎn)串口驅(qū)動(dòng)程序。問題3:ID問題
解決3:每次實(shí)驗(yàn)的 ID都不一致所以需要根據(jù)實(shí)驗(yàn)操作指示做相關(guān)修改。
第五篇:剖析自我論文
剖析自我,走陽(yáng)光人生路
很多時(shí)候,人往往將別人看得極為透徹,卻迷失在自我的世界里。古有:以人為鏡,可以正衣冠;以史為鏡,可以知興衰。我們的形象大都定義在別人口中。別人可以從側(cè)面給自己評(píng)價(jià),然而,最真實(shí)的自己,活在自己心里?!坝H愛的自己,好久沒能像老朋友似得與你敞開心扉交流了。近來你的一切我都看在眼里。來到大學(xué)的這幾個(gè)月,我很欣慰。因?yàn)榭吹杰娪?xùn)時(shí)你臉上的堅(jiān)毅;因?yàn)槁牭缴险n時(shí)你朗朗的書聲;更因感受到步入大學(xué)之后的你的成長(zhǎng)?可是,我也看到了你在入學(xué)不久便加入了“低頭一族”:吃飯、走路、睡覺時(shí)時(shí)刻刻都抱著手機(jī);也聽到了你生氣發(fā)怒時(shí)粗魯?shù)脑捳Z(yǔ);更感受到了那個(gè)勤儉節(jié)約的你逐漸遠(yuǎn)去,取而代之的,是一個(gè)吃飯?zhí)籼?,穿衣追求品牌高檔的盲目攀比的人?我很不愿看到的一些壞毛病在你的身上都有了些許萌芽。及時(shí)的反思,靜下心去思考,找回那個(gè)丟失的你?!爆F(xiàn)在的人們已隨快節(jié)奏的生活日益匆匆,要想靜下心來好好剖析自己實(shí)非易事。所以,很感謝老師能夠給我這樣一個(gè)點(diǎn)醒,讓我真正的走進(jìn)內(nèi)心深處的那個(gè)自己。
人生之路唱響樂觀自信之曲
親愛的自己,沒有人比我更了解你。初次見你的人,一定認(rèn)為你安靜且不易接近,高冷的氣場(chǎng)讓人望而生畏??晌抑?,他們錯(cuò)了。好朋友面前,你是標(biāo)準(zhǔn)的“女漢子”,你會(huì)為了畢業(yè)時(shí)分別的傷感痛哭一場(chǎng);你會(huì)因?yàn)橐痪湓捙c朋友爭(zhēng)的面紅耳赤,只為心中那份堅(jiān)持;得知朋友身份證丟失,你可以二話不說陪著她在寒冷的冬夜?jié)M校園尋找?這些品質(zhì)都讓你閃閃發(fā)光,也正因此你擁有了真摯的友情??墒牵阒绬??大學(xué)的課堂上,你不應(yīng)再伏案奮戰(zhàn),默不作聲。大學(xué)生,應(yīng)該走出教室,四處觀望,放下心中的膽怯,明明心中吶喊著想表達(dá),就不必過分抑制,抓住機(jī)會(huì),跨出那一步,即使會(huì)出錯(cuò);即使沒有經(jīng)驗(yàn);即使你認(rèn)為自己笨嘴拙舌;可那些都不足以戰(zhàn)勝勇敢的你。給自己一個(gè)勇敢的機(jī)會(huì),你會(huì)成為我更喜歡的那個(gè)自己!繼續(xù)保持內(nèi)心的樂觀,陽(yáng)光。人生的道路都是由心來描繪的。所以,無(wú)論自己處于多么嚴(yán)酷的境遇之中,心頭都不應(yīng)為悲觀的思想所縈繞。曾經(jīng)你無(wú)數(shù)次感動(dòng)了我,參加籃球隊(duì)是為了挑戰(zhàn)自己,即使是一瘸一拐仍堅(jiān)持訓(xùn)練,我為你的堅(jiān)強(qiáng)鼓掌;參加教師風(fēng)采大賽是為了挑戰(zhàn)自己,即便是輸了比賽你的臉上依然明媚,我為你的豁達(dá)鼓掌;參加志愿者服務(wù)是為了鍛煉自己,即便有些辛苦可你的笑容亦溫暖了整個(gè)冬天?在挑戰(zhàn)自我的路上,我相信你終會(huì)到達(dá)屬于自己的康莊大道一步步邁向成功。
活到老,學(xué)到老
成功是一個(gè)抽象名詞,不同的人對(duì)于成功的定義也不同。當(dāng)然,不論從哪個(gè)角度定義,成功的過程終歸是學(xué)習(xí)的過程?!畹嚼?,學(xué)到老’’這句話很好地詮釋了學(xué)習(xí)貫穿整個(gè)人生的過程。親愛的自己,從小學(xué)到高中,你一直都在努力的學(xué)習(xí),相信這九年義務(wù)教育已為你打下了較為堅(jiān)實(shí)的基礎(chǔ)?;蛟S你曾經(jīng)無(wú)數(shù)次幻想在大學(xué)校園里暢玩,或許有人告訴你大學(xué)的學(xué)習(xí)已不那么重要。但是,我想告訴你的是:學(xué)習(xí)不分階段,沒有年齡限制,即便步入了大學(xué),學(xué)習(xí)也仍是你生活中不可或缺的一部分。不但如此,它的主導(dǎo)性不能改變。大學(xué)的學(xué)習(xí)相對(duì)寬松,課程安排相對(duì)合理,你有足夠的時(shí)間去讀書學(xué)習(xí),廣泛地涉獵各種書籍,增長(zhǎng)自己的知識(shí),陶冶自己的性情,植根于內(nèi)心的修養(yǎng),充實(shí)精神世界。還記得大學(xué)時(shí)你曾信誓旦旦的說過:我要每節(jié)課都坐第一排?!瘨行淖詥枺阕龅搅藛??每天晚上背英語(yǔ)單詞你又堅(jiān)持了多久?學(xué)習(xí)不是一時(shí)興起便能速成。學(xué)習(xí)如春起之苗,不見其增,日有所長(zhǎng)。或許一兩天的堅(jiān)持沒有看到成效,如果你因此而早早放棄,那么你注定與成功無(wú)緣。學(xué)習(xí)貴在堅(jiān)持,堅(jiān)持到底,善始善終,總有一天你會(huì)變成一個(gè)優(yōu)秀的人,脫穎而出?;仨呷?,宛如昨日,為什么你每天朝九晚五卻不知疲倦,為什么你每天作業(yè)紛繁仍精神飽滿;為什么你每天滿課卻從未請(qǐng)假早退?因?yàn)槟阌心繕?biāo),所以你動(dòng)力無(wú)窮。大學(xué),請(qǐng)為自己設(shè)立一個(gè)新的目標(biāo)并為之而奮斗,不要等到匆匆四年后只留下一聲凄涼的“時(shí)間都去哪了”?不要整天抱著手機(jī)刷微博、逛淘寶。記住:你是在花父母的錢,這些錢不是理所應(yīng)當(dāng)?shù)?,每一分錢每一分錢都凝結(jié)著父母殷殷的期盼,你沒有理由去揮霍,青春亦經(jīng)不起揮霍,趁著年輕,努力奮斗吧!那些比你優(yōu)秀的人一刻也沒有停止前進(jìn)的腳步!
和平待人友好相處,將心比心,以真心換真情
大學(xué)的學(xué)習(xí)固然重要,脫離了父母的懷抱,大學(xué)的我們除了學(xué)習(xí),便是與室友、同學(xué)的朝夕相處,人際交往是大學(xué)學(xué)習(xí)的重要內(nèi)容。良好的人際關(guān)系不僅可以讓你每天處于快樂的學(xué)習(xí)生活環(huán)境之中,更能為以后的發(fā)展積累人脈資源。親愛的自己,人際交往中,你要做到以下幾點(diǎn):
(一)尊重他人。相互尊重是友好交往的前提,一個(gè)懂得尊重別人的人才會(huì)贏得別人的尊重,與人交流時(shí),不要輕易的否定他人的意見,不要隨便批評(píng)別人,不要隨便打斷別人。
(二)學(xué)會(huì)聆聽。每個(gè)人都是獨(dú)立的個(gè)體,內(nèi)心都渴望表達(dá),沒有人愿意一直默不作聲,所以,給別人發(fā)言的機(jī)會(huì),不要一直喋喋不休。
(三)站在他人的角度思考問題。想想近來發(fā)生在大學(xué)生身邊的一系列殺人案件,歸根結(jié)底是由于沒有換位思考而引起的誤會(huì)。如果我們?cè)谏钪卸帱c(diǎn)將心比心的感悟,就會(huì)對(duì)老人生出一份尊重,對(duì)孩子懷有一份憐愛,會(huì)使人與人之間多一些寬容和理解,少一些計(jì)較和猜疑??傊?,以一顆真誠(chéng)之心去對(duì)待你身邊的人,他們定會(huì)在心里為你鼓掌。知道你從小在爸媽的懷抱中長(zhǎng)大,沒有受到過太多批評(píng),心里很脆弱。但是,到了大學(xué),就不要再耍小孩子脾氣了,更不能隨意指使別人,沒有人有義務(wù)幫你,即是成年人就應(yīng)該擺脫依賴,有擔(dān)當(dāng)、有主見,做一個(gè)獨(dú)立的人,讓自己真正站起來!
理性感性要兼顧,樹立正確的戀愛觀,篤定前行
親愛的自己,你是一個(gè)內(nèi)心感情極其豐富的人,別人的一個(gè)眼神,有時(shí)都會(huì)蕩起你心中的千層漣漪。人的感情千百種:親情、友情、愛情?無(wú)論何種感情,都離不開心中的愛。一個(gè)重感情的人,心里必定有一個(gè)是不可觸碰的位置留給了家人;一個(gè)重感情的人,心靈的空間極其有限,只能容納幾位知己;一個(gè)重感情的人,心靈的情愫極其神秘,它流露的緩慢而自然?,F(xiàn)如今,大學(xué)生談戀愛已是一種普遍現(xiàn)象,不再“猶抱琵琶半遮面”,它是那樣的具有魅力,撥動(dòng)同學(xué)們的心弦,令人向往。在我看來,戀愛是青春期自然而然的事情,俗話說:“男大當(dāng)婚,女大當(dāng)嫁”還是有一定的道理的,畢竟到了一定的年齡,心理生理都已趨近成熟,戀愛已不再像高中生那樣明令禁止。但是,親愛的自己,請(qǐng)樹立正確的愛情觀,愛情是一件神圣而美好的事情,不要因?yàn)槟撤N目的而玷污了它。我知道你身邊可能有朋友會(huì)在網(wǎng)上秀恩愛,大學(xué)校園里公園漫步的情侶也屢見不鮮,但不要因此作為你談戀愛的動(dòng)力,慎重對(duì)待感情。我了解你,對(duì)于感情,一旦你做出選擇,便會(huì)傾其所有的付出。然而,付出越多的人。往往極易受到傷害。于在校大學(xué)生來說,戀愛也是成長(zhǎng)道路上真情實(shí)感的流露和表白,如何擺正學(xué)業(yè)與戀情的關(guān)系,如何樹立正確愛情觀,無(wú)悔自己的大學(xué)生活,教育理論家蘇霍姆林斯基說過:“愛情首先意味著對(duì)你的愛侶的命運(yùn)、前途承擔(dān)責(zé)任?!睈矍椴粌H是一種權(quán)利,更是責(zé)任和義務(wù),“愛的本質(zhì)是奉獻(xiàn)而非索取”,必須以高度慎重與負(fù)責(zé)的態(tài)度對(duì)待戀愛。所以,對(duì)于愛情這種不期而至的事情,隨緣就好,不必刻意去追求。
親愛的自己,耐得住寂寞才能守得住繁華,該奮斗的年齡不要選擇了安逸。我在未來等待完美蛻變的你!