版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
考研計算機沖刺班組成原理講義.楊楠【考查目標(biāo)】.明白得單處理器運算機系統(tǒng)中各部件的內(nèi)部工作原理、組成結(jié)構(gòu)以及相互連接方式,具有完整的運算機系統(tǒng)的整機概念。.明白得運算機系統(tǒng)層次化結(jié)構(gòu)概念,熟悉硬件與軟件之間的界面,把握指令集體系結(jié)構(gòu)的差不多知識和差不多實現(xiàn)方法。.能夠運用運算機組成的差不多原理和差不多方法,對有關(guān)運算機硬件系統(tǒng)中的理論和實際咨詢題進行運算、分析,并能對一些差不多部件進行簡單設(shè)計。一、運算機系統(tǒng)概述本章屬于運算機組成原理概述部分,內(nèi)容比較簡單,也容易把握,在考研中沒有太難的題目。下面就本章內(nèi)容,要緊部分作以下歸納:(一)運算機的類型電子運算機分為兩大類:電子模擬運算機和電子數(shù)字運算機。電子數(shù)字運算機的要緊特點是:按位運算。數(shù)字運算機又可分為專用運算機和通用運算機。通用運算機又分巨型機、大型機、中型機、小型機、微型機和單片機。它們的區(qū)不在于體積、簡易性、功率損耗、性能指標(biāo)、數(shù)據(jù)儲備容量、指令系統(tǒng)規(guī)模和機器價格等。運算機的應(yīng)用范疇:社會的各個領(lǐng)域。(二)運算機進展歷程運算機系統(tǒng)的進展歷史如下:第1代運算機(1946年一1957年):電子管時代;第2代運算機(1958年一1964年):晶體管時代;第3代運算機(1965年一1971年):中小規(guī)模集成電路時代;第4代運算機(1972年—1985年):超大規(guī)模集成電路時代;第5代運算機(1986年一至今):龐大規(guī)模集成電路時代。(三)運算機系統(tǒng)層次結(jié)構(gòu).運算機硬件的差不多組成硬件分為5大部分:操縱器、運算器、儲備器、輸入設(shè)備和輸出設(shè)備。早期運算器和操縱器構(gòu)成運算機的CPU,現(xiàn)在一樣還加上CPU內(nèi)部的Cache共同構(gòu)成CPU,加入的是第一級Cache,也是儲備器中速度最快,容量最小的儲備器。對馮?諾依曼運算機體系結(jié)構(gòu)的特點要有深刻的明白得:使用二進制(為何用二進制?)儲備程序,同時按照地址順序執(zhí)行。儲備程序并按照地址順序執(zhí)行是馮?諾依曼運算機設(shè)計的關(guān)鍵思想。.運算機軟件的分類運算機軟件按照面向?qū)ο蟮牟煌煞謨深悾合到y(tǒng)軟件和應(yīng)用軟件。系統(tǒng)軟件:用于治理整個運算機系統(tǒng),合理分配系統(tǒng)資源,確保運算機正常高效地運行,這類軟件面向系統(tǒng)。應(yīng)用軟件:是面向用戶按照用戶的專門要求編制的應(yīng)用程序,這類軟件通常實現(xiàn)用戶的某類要求。.運算機的工作過程馮?諾依曼運算機特點差不多上指出了運算機的工作過程。馮?諾依曼體系結(jié)構(gòu)的差不多思想是:儲備程址順序自動執(zhí)行。第一將指令和數(shù)據(jù)儲備到運算機中,運算機啟動后,就能夠序取出指令并依次執(zhí)行,直到程序執(zhí)行完畢,得到運算結(jié)果為止。馮?諾依曼體系結(jié)構(gòu)運算機包含5個差不多部件:輸入設(shè)備、運算器、操縱器和輸出設(shè)備。運算器進行數(shù)據(jù)運算和數(shù)據(jù)變換;操縱器為運算機的工作提供統(tǒng)一的時鐘,對程序的各差不多操作進行時序分相應(yīng)的操縱信號,驅(qū)動運算機的各部件有序地完成程序規(guī)定的操作內(nèi)容;儲備器用來存放程序、數(shù)據(jù)和運算結(jié)果;輸入瑜出設(shè)備則完成相應(yīng)的輸入輸出轉(zhuǎn)換。.運算機系統(tǒng)的層次結(jié)構(gòu)(1)層次結(jié)構(gòu)。運算機系統(tǒng)是一個復(fù)雜的軟、硬件結(jié)合體,它包含硬件系統(tǒng)和軟件系統(tǒng)兩部分。它通常由5個不同的級組成,在每一級都能夠進行程序設(shè)計。由微程序設(shè)計級、一樣機器級、操作系統(tǒng)級、匯編語言級和高級語言級組成,如圖所示:(2)軟件和硬件邏輯上的等價性,任何操作能夠由軟件來實現(xiàn)也能夠由硬件來實現(xiàn)。早期要緊由軟件來實現(xiàn)較復(fù)雜的邏輯(硬件軟化),現(xiàn)在存在軟件硬化的趨勢。專門注意運算機是一個軟件和硬件結(jié)合的整體系統(tǒng)。固件:把軟件刻入R0M,使軟件固化,如此得到的一個實體確實是固件。(3)兼容性。兼容性的設(shè)計思想實際上確實是系列機的概念。在系列機中,新機型要求支持老機型上開發(fā)的軟件;而且還有硬件上的兼容要求。兼容要求軟件和硬件設(shè)備能夠直截了當(dāng)在不同的機型上使用。運算機系統(tǒng)的層次結(jié)構(gòu)(四)運算機性能指標(biāo)(1)差不多字長。差不多字長是指參與運算的數(shù)的差不多長度,它由加法器、寄存器和數(shù)據(jù)總線的位數(shù)決定。字長標(biāo)志著精度,字長越長,運算精度越高。(2)主存容量。運算機主儲備器所能夠儲備的信息的全部總量,稱為主存容量。以字節(jié)數(shù)來表示儲備容量的運算機稱為字節(jié)編碼運算機;而以字為單位編址的運算機,儲備容量等于字數(shù)乘以字長。(3)主頻。每臺運算機的內(nèi)部,都有一個持續(xù)地產(chǎn)生固定頻率時鐘脈沖的裝置,稱為主時鐘。主時鐘的頻率通常是機器的主頻率,主頻率是衡量一臺,-c,蹲機速度的重要參數(shù)。(4)運算速度。運算速度通常反映運算機運算的快慢。對運算速度的衡量有以下幾種方法:按照不同類型指令在運算過程中顯現(xiàn)的頻率乘上不同的系數(shù),求得統(tǒng)計平均值,這時所指的運算速度是平均運算速度。直截了當(dāng)給出每條指令的實際執(zhí)行時刻。以MIPS和MFLOPS作為計量單位來衡量運算速度。MIPS表示每秒百萬條指令,MFLOPS表示每秒百萬次浮點運算。吞吐量、響應(yīng)時刻(1)吞吐量:單位時刻內(nèi)可執(zhí)行程序的個數(shù)。(2)響應(yīng)時刻:從事件開始到事件終止的時刻,也稱執(zhí)行時刻。CPU時鐘周期、主頻、CPLCPU執(zhí)行時刻CPU時鐘周期:機器主頻的倒數(shù),Tc(2)主頻:CPU工作主時鐘的頻率,機器主頻RcCPI:執(zhí)行一條指令所需要的平均時鐘周期CPU執(zhí)行時刻:TCPU=InXCPIXTCIn執(zhí)行程序中指令的總數(shù),CPI執(zhí)行每條指令所需的平均時鐘周期數(shù),TC時鐘周期時刻的長度。MIPS、MFLOPSMIPS(MillionInstructionsPerSecond)MIPS=In/(TeX106)=In/(InXCPIXTcX106)=Rc/(CPIX106)Te:執(zhí)行該程序的總時刻,In:執(zhí)行該程序的總指令數(shù),Rc:時鐘周期Tc的到數(shù)MIPS只適合評判標(biāo)量機,不適合評判向量機。標(biāo)量機執(zhí)行一條指令,得到一個運行結(jié)果。而向量機執(zhí)行一條指令,能夠得到多個運算結(jié)果。MFLOPS(MillionFloatingPointOperationsPerSecond)MFLOPS=Ifn/(TeX106)Ifn:程序中浮點數(shù)的運算次數(shù)MFLOPS測量單位比較適合于衡量向量機的性能。一樣而言,同一程序運行在不同的運算機上時往往會執(zhí)行不同數(shù)量的指令數(shù),但所執(zhí)行的浮點數(shù)個數(shù)常常是相同的。二、數(shù)據(jù)的表示和運算(一)數(shù)制與編碼1.進位計數(shù)制及其相互轉(zhuǎn)換(1)進位計數(shù)制進位計數(shù)制是指按照進位制的方法表示數(shù),不同的數(shù)制均涉及兩個差不多概念:基數(shù)和權(quán)。任意一個R進制數(shù)X,設(shè)整數(shù)部分為n位,小數(shù)部分為m位,則X可表示為:X=an-1rn-1+an-2rn-2+—+aOrO+a-lr-1+a-2r-2+—+a-mr-m—m(X)r=f=n-I(2)不同數(shù)制間的數(shù)據(jù)轉(zhuǎn)換1)二、八、十六進制數(shù)轉(zhuǎn)換成十進制數(shù)利用上面講到的公式:(N)2=EDi?2i、(N)8=EDi?8i、(N)16=LDi?16i、進行運算。2)十進制數(shù)轉(zhuǎn)換成二進制數(shù)對整數(shù)部分,一樣采納除2取余數(shù)法,對小數(shù)部分,一樣用乘2取整數(shù)法。3)二進制數(shù)、八進制數(shù)和十六進制數(shù)之間的轉(zhuǎn)換3位二進制數(shù)組成1位八進制數(shù),4位二進制數(shù)組成1位十六進制數(shù)。關(guān)于一個兼有整數(shù)和小數(shù)部分的數(shù)以小數(shù)點為界,小數(shù)點前后的數(shù)分不分組進行處理,不足的位數(shù)用0補足。對整數(shù)部分將。補在數(shù)的左側(cè),對小數(shù)部分將0補在數(shù)的右側(cè)。如此數(shù)值可不能發(fā)生差錯。.真值和機器數(shù)真值:數(shù)據(jù)的數(shù)值通常以正(+)負(-)號后跟絕對值來表示,稱之為“真值”。機器數(shù):在運算機中正負號也需要數(shù)字化,一樣用。表示正號,1表示負號。把符號數(shù)字化的數(shù)成為機器數(shù)。.BCD碼在運算機中采納4位二進制碼對每個十進制數(shù)位進行編碼。4位二進制碼有16種不同的組合,從中選出10種來表示十進制數(shù)位的。?9,用0000,0001,???,1001分不表示0,1,…,9,每個數(shù)位內(nèi)部滿足二進制規(guī)則,而數(shù)位之間滿足十進制規(guī)則,故稱這種編碼為''以二進制編碼的十進制(binarycodeddecimal,簡稱BCD)碼加法運算的修正規(guī)則是:如果兩個一位BCD碼相加之和小于或等于(1001)2,即(9)10,不需要修正;如相加之和大于或等于(1010)2,或者產(chǎn)生進位,要進行加6修正,如果有進位,要向高位進位。.字符與字符串在運算機中要對字符進行識不和處理,必須通過編碼的方法,按照一定的規(guī)則將字符用一組二進制數(shù)編碼表示。字符的編碼方式有多種,常見的編碼有ASCH碼、EBCDIC碼等。ASCII碼ASCII碼用7位二進制表示一個字符,總共128個字符元素,包括10個十進制數(shù)字(0-9)、52個英文字母(A-Z和a-z)、34專用符號和32操縱符號。EBCDIC碼為ExtendedBinaryCodedDecimalInterchangeCode的簡稱,它采納8位來表示一個字符。3)字符串的存放向量儲備法:字符串儲備時,字符串中的所有元素在物理上是鄰接的。串表儲備法:字符串的每個字符代碼后面設(shè)置一個鏈接字,用于指出下一個字符的儲備單元的地址。.校驗碼碼距:碼距按照任意兩個合法碼之間至少有幾個二進制位不相同而確定的,僅有一位不同,稱其碼距為1。(1)奇偶校驗碼它的實現(xiàn)原理,是使碼距由1增加到2。若編碼中有1位二進制數(shù)出錯了,即由1變成0,或者由0變成lo如此出錯的編碼就成為非法編碼,就能夠明白顯現(xiàn)了錯誤。在原有的編碼之上再增加一位校驗位,原編碼n位,形成新的編碼為n+1位。增加的方法有2種:奇校驗:增加位的?;?要保證整個編碼中1的個數(shù)為奇數(shù)個。偶校驗:增加位的?;?要保證整個編碼中1的個數(shù)為偶數(shù)個。(2)海明校驗碼它的實現(xiàn)原理,是在數(shù)據(jù)中加入幾個校驗位,并把數(shù)據(jù)的每一個二進制位分配在幾個奇偶校驗組中。當(dāng)某一位出錯就會引起有關(guān)的幾個校驗組的值發(fā)生變化,這不但能夠發(fā)覺出錯,還能指出是哪一位出錯,為自動糾錯提供了依據(jù)。假設(shè)校驗位的個數(shù)為r,則它能表示2i?個信息,用其中的一個信息指出“沒有錯誤”,其余2r-l個信息指出錯誤發(fā)生在哪一位。然而錯誤也可能發(fā)生在校驗位,因此只有k=2r-l-r個信息能用于糾正被傳送數(shù)據(jù)的位數(shù),也確實是講要滿足關(guān)系:2r>=k+r+l3)CRC校驗碼CRC校驗碼一樣是指k位信息之后拼接r位校驗碼。關(guān)鍵咨詢題是如何從k位信息方便地得到r位校驗碼,以如何從位k+r信息碼判定是否出錯。將帶編碼的k位有效信息位組表達為多項式:M(x)=Ck-lxk-l+Ck-2xk-2+—+Cixi+Clx+CO式Ci中為?;?.若將信息位左移r位,則可表示為多項式M(x).xr。如此就能夠空出r位,以便拼接r位校驗位。CRC碼是用多項式M(x).xr除以生成多項式G(x)所得的余數(shù)作為校驗碼的。為了得到r位余數(shù),G(x)必須是r+1位。設(shè)所得的余數(shù)表達式為R(x),商為Q(x)。將余數(shù)拼接在信息位組左移r位空出的r位上,就構(gòu)成了CRC碼,那個碼的可用多項式表達為:M(x)?xr+R(x)=[Q(x)?G(x)+R(x)]+R(x)=[Q(x)?G(x)]+[R(x)+R(x)]=Q(x)?G(x)因此,所得CRC碼可被G(x)表示的數(shù)碼除盡。將收到的CRC碼用約定的生成多項式G(x)去除,如果無錯,余數(shù)應(yīng)為0,有某一位出錯,余數(shù)不為0。(二)定點數(shù)的表示和運算
.定點數(shù)的表示(1)無符號數(shù)的表示無符號數(shù)確實是指正整數(shù),機器字長的全部位數(shù)均用來表示數(shù)值的大小,相當(dāng)于數(shù)的絕對值。關(guān)于字長為n+1位的無符號數(shù)的表示范疇為:0—2n+l-lo(2)帶符號數(shù)的表示帶符號數(shù)是指在運算機中將數(shù)的符號數(shù)碼化。在運算機中,一樣規(guī)定二進制的最高位為符號位,最高位為“0”表示該數(shù)為正,為“1”表示該數(shù)為負。這種在機器中使用符號位也被數(shù)碼化的數(shù)稱為機器數(shù)。按照符號位和數(shù)值位的編碼方法不同,機器數(shù)分為原碼、補碼和反碼。1)原碼表示法X;O<X<1l-X=l+|X|;-l<X<0[X]原=<機器數(shù)的最高位為符號位,0表示正數(shù),1表示負數(shù),數(shù)值X;O<X<1l-X=l+|X|;-l<X<0[X]原=<2)補碼表示法機器數(shù)的最高位為符號位,。表示正數(shù),1表示負數(shù),其定義如下:兇補=<x;o<X<1兇補=<2+X=2-1X|;-1<X<03)反碼表示法機器數(shù)的最高位為符號,。表示正數(shù),1表示負數(shù)。匕%占、'/LfX;0<X<1反碼的定義:。]反=2-2"n+X;-l<X<04)原碼、補碼和反碼的確明數(shù)表示的范疇,原碼為:-l<x^-O,+OWx<];0有-0(1.00-)和+0(0.00…)兩種表示形式補碼為:+OWx<l;0只有一種表示方式,x最小能夠等于-1反碼為:-l<x^-O,+OWx<];0有-0(1.11--)和+0(0.00…)兩種表示形式.定點數(shù)的運算(1)定點數(shù)的位移運算左移,絕對值擴大;右移,絕對值縮小。算術(shù)移位規(guī)則:符號位不變算術(shù)移位和邏輯移位的區(qū)不:算術(shù)移位:帶符號數(shù)移位;邏輯移位:無符號數(shù)移位;(2)原碼定點數(shù)的加/減運算對原碼表示的兩個操作數(shù)進行加減運算時,運算機的實際操作是加依舊減,不僅取決指令中的操作碼,還取決于兩個操作數(shù)的符號。而且運算結(jié)果的符號判定也較復(fù)雜。例如,加法指令指示做(+A)+(-B)由于一操作數(shù)為負,實際操作是做減法(+A)-(+B),結(jié)果符號與絕對值大的符號相同。同理,在減法指令中指示做(+A)-(-B)實際操作做加法(+A)+(+B),結(jié)果與被減數(shù)符號相同。由于原碼加減法比較繁瑣,相應(yīng)地需要由復(fù)雜的硬件邏輯才能實現(xiàn),因此在運算機中專門少被采納。(3)補碼定點數(shù)的加/減運算1)加法整數(shù)[A]補+出]補=[A+B]補(mod2n+l)小數(shù)[A]補+出]補=[A+B]補(mod2)2)減法整數(shù)[A]補-出]補=[A+(-B)]補=[A]補+[-B]#(mod2n+1)小數(shù)[A]#-[B]#=[A+(-B)]補=[A]補+[-B]補(mod2)無需符號判定,連同符號位一起相加,符號位產(chǎn)生的進位自然丟掉(4)定點數(shù)的乘/除運算1)乘法<1>原碼一位乘法兩個原碼數(shù)相乘,其乘積的符號為相乘兩數(shù)的異或值,數(shù)值兩數(shù)絕對值之積。<2>定點補碼一位乘法有的機器為方便加減法運算,數(shù)據(jù)以補碼形式存放。乘法直截了當(dāng)用補碼進行,以減少轉(zhuǎn)換次數(shù)。具體規(guī)則如下:[\乂丫]補=a]補(-yO+0.yly2…yn)<3>布斯法布斯公式:在乘數(shù)Yn后添加Yn+l=0。按照Yn+1,Yn相鄰兩位的三種情形,其運算規(guī)則如下:Yn+1,Yn=0(Yn+1Yn=00或11),部分積加0,右移1位;Yn+1,Yn=1(Yn+1Yn=10),部分積加[X]補,右移1位;Yn+1,Yn=-1(Yn+1Yn=01),部分積加[一X]補,右移1位最后一步不移位。<4>原碼兩位乘法,因此實際操作用Yi-1、Yi、C三位來操縱。Yi-1Yic操作000+0,右移2位OfC001+x,右移2位o->c010+x,右移2位OfC011+2X,右移2位o-c100+2X,右移2位Ofc101-X,右移2位l-C110-X,右移2位Ifc111+0,右移2位LC<5>補碼兩位乘法,按照前述的布斯算法,將兩步合并成一步,即可推導(dǎo)出補碼兩位乘的公式。Yi-1Yic操作000+0,右移2位0-C001+x,右移2位o-*c010+x,右移2位0-C011+2X,右移2位0-C100+2X,右移2位0-C101-X,右移2位l-*c110?x,右移2位l-*c111+(),右移2位1-C2)除法<1>定點原碼一位除法1>復(fù)原余數(shù)法被除數(shù)(余數(shù))減去除數(shù),如果為0或者為正值時,上商為1,不復(fù)原余數(shù);如果結(jié)果為負,上商為0,再將除數(shù)加到余數(shù)中,復(fù)原余數(shù)。余數(shù)左移1位。2>加減交替法當(dāng)余數(shù)為正時,商上1,求下一位商的方法,余數(shù)左移一位,再減去除數(shù);當(dāng)余數(shù)為負時,商上0,求下一位商的方法,余數(shù)左移一位,再加上除數(shù)。<2>定點補碼一位除法(加減交替法)1)如果被除數(shù)與除數(shù)同號,用被除數(shù)減去除數(shù);若兩數(shù)異號,被除數(shù)加上除數(shù)。如果所得余數(shù)與除數(shù)同號商上1,否貝!1,商上0,該商為結(jié)果的符號位。2〉求商的數(shù)值部分。如果上次商上1,將除數(shù)左移一位后減去除數(shù);如果上次商上0,將余數(shù)左移一位后加除數(shù)。然后判定此次操作后的余數(shù),如果余數(shù)與除數(shù)同號商上1,如果余數(shù)與除數(shù)異號商上0o如此重復(fù)執(zhí)行n-1次(設(shè)數(shù)值部分n位)。3〉商的最后一位一樣采納恒置1的方法,并省略了最低+1的操作。現(xiàn)在最大的誤差為2-no(5)溢出概念和判不方法當(dāng)運算結(jié)果超出機器數(shù)所能表示的范疇時,稱為溢出。明顯,兩個異號數(shù)相加或兩個同號數(shù)相減,其結(jié)果是可不能溢出的。僅當(dāng)兩個同號數(shù)相加或者兩個異號數(shù)相減時,才有可能發(fā)溢出的情形,一旦溢出,運算結(jié)果就不正確了,因此必須將溢出的情形檢查出來。判不方法有三種:1)當(dāng)符號相同的兩數(shù)相加時,如果結(jié)果的符號與加數(shù)(或被加數(shù))不相同,則為溢出。2)當(dāng)任意符號兩數(shù)相加時,如果C=Cf,運算結(jié)果正確,其中C為數(shù)值最高位的進位,Cf為符號位的進位。如果CWCf,則為溢出,因此溢出條件=C3Cf。3)采納雙符號fs2fsl,正數(shù)的雙符號位為00,負數(shù)的雙符號位為11。符號位參與運算,當(dāng)結(jié)果的兩個符號位甲和乙不相同時為溢出。因此溢出條件=fs20fslo(三)浮點數(shù)的表示和運算.浮點數(shù)的表示(1)浮點數(shù)的表示范疇浮點數(shù)是指小數(shù)點位置可浮動的數(shù)據(jù),通常以下式表示:N=M?RE其中,N為浮點數(shù),M為尾數(shù),E為階碼,R稱為“階的基數(shù)(底)”,而且R為一常數(shù),一樣為2、8或16。在一臺運算機中,所有數(shù)據(jù)的R差不多上相同的,因此不需要在每個數(shù)據(jù)中表示出來。因此,浮點數(shù)的機內(nèi)表示一樣采納以下形式:浮點數(shù)的機內(nèi)表示一樣采納以下形式:MsEM1位 n+1位 m位Ms是尾數(shù)的符號位,設(shè)置在最高位上。E為階碼,有n+1位,一樣為整數(shù),其中有一位符號位,設(shè)置在E的最高位上,用來表正階或負階。M為尾數(shù),有m位,由Ms和M組成一個定點小數(shù)。Ms=0,表示正號,Ms=l,表示負。為了保證數(shù)據(jù)精度屬數(shù)通常用規(guī)格化形式表示:當(dāng)R=2,且尾數(shù)值不為0時,其絕對值大于或等于(0.5)10。對非規(guī)格化浮點數(shù),通過將尾數(shù)左移或右移,并修改階碼值使之滿足規(guī)格化要求。2)IEEE754標(biāo)準(zhǔn)按照IEEE754國際標(biāo)準(zhǔn),常用的浮點數(shù)有兩種格式:(1)單精度浮點數(shù)(32位),階碼8位,尾數(shù)24位(內(nèi)含:位符號位)。(2)雙精度浮點數(shù)(64位),階碼11位,尾數(shù)53位(內(nèi)含:位符號位)。單精度格式32位,階碼為8位,尾數(shù)為23位。另有一位符號位S,處在最高位。由于IEEE754標(biāo)準(zhǔn)約定在小數(shù)點左部有一位隱含位,從而實際有效位數(shù)為24位。如此使得尾數(shù)的有效值變?yōu)閘.Mo例如,最小為xl.O…0,,最大為xl.l…1。規(guī)格化表示。故小數(shù)點左邊的位橫為1,可省去。階碼部分采納移碼表示,移碼值127,1到254經(jīng)移碼為126到+127。S(1位)E(8位)M(23位)N(共32位)符號位000符號位0不等于0(-l)S-2-126(0.M)為非規(guī)格化數(shù)符號位1到254之間-(-1)S-2E-127-(1.M)為規(guī)格化數(shù)符號位255不等于0NaN(非數(shù)值)符號位2550無窮大0有了精確的表示,無窮大也明確表示。關(guān)于絕對值較小的數(shù),能夠采納非規(guī)格化數(shù)表示,減少下溢精度缺失。非規(guī)格化數(shù)的隱含位是0,不是1。2.浮點數(shù)的加/減運算加減法執(zhí)行下述五步完成運算:“對階”操作比較兩浮點數(shù)階碼的大小,求出其差A(yù)E,保留其大值E,IE=max(Ex,Ey)0當(dāng)AEWO時,將階碼小的尾數(shù)右移AE位,并將其階碼加上AE,使兩數(shù)的階碼值相等。(2)尾數(shù)加減運算執(zhí)行對階之后,兩尾數(shù)進行加減操作。(3)規(guī)格化操作規(guī)格化的目的是使得尾數(shù)部分的絕對值盡可能以最大值的形式顯現(xiàn)。(4)舍入在執(zhí)行右規(guī)或者對階時,尾數(shù)的低位會被移掉,使數(shù)值的精度受到阻礙,常用“0”舍“1”入法。當(dāng)移掉的部分最高位為1時,在尾數(shù)的末尾加1,如果加1后又使得尾數(shù)溢出,則要再進行一次右規(guī)。(5)檢查階碼是否溢出階碼溢出表示浮點數(shù)溢出。在規(guī)格化和舍入時都可能發(fā)生溢出,若階碼正常,力口/減運算正常終止。若階碼下溢,則設(shè)置機器運算結(jié)果為機器零,若上溢,則設(shè)置溢出標(biāo)志。(四)算術(shù)邏輯單元ALU.串行加法器和并行加法器(1)串行進位加法器并行加法器能夠同時對數(shù)據(jù)的各位進行相加,一樣用n個全加器來實現(xiàn)2個操作數(shù)的各位同時向加。其操作數(shù)的各位是同時提供的,由于進位是逐位形成,低位運算所產(chǎn)生的進位會阻礙高位的運算結(jié)果。串行進位(也稱波形進位)加法器,邏輯電路比較簡單,然而最高位的加法運算,一定要等到所有低位的加法完成之后才能進行,低位的進位要逐步的傳遞到高位,逐級產(chǎn)生進位,因此運算速度比較慢。串行進位加法器(2)并行進位加法器為了提升運算速度,減少延遲時刻,能夠采納并行進位法,也叫提早進位或先行進位。全加器中,輸入Ai、Bi、Ci-1,輸出:Si=AiBiCi-l+AiBiCi-l+AiBiCi-l+AiBiCi-1Ci=AiBiCi-l+AiBiCi-l+AiBiCi-l+AiBiCi-1=AiBi+(Ai+Bi)Ci-l進位產(chǎn)生函數(shù):Gi=AiBi進位傳遞函數(shù):Pi=Ai+Bi
Ci=Gi+PiCi-1C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0并行進位加法器的運算速度專門快,形成最高進位輸出的延遲時刻專門短,然而以增加硬件邏輯線路為代價。關(guān)于長字長的加法器,往往將加法器分成若干組,在組內(nèi)采納并行進位,組間則采納串行進位或并行進位,由此形成多種進位結(jié)構(gòu)。4位0并行進位加法器的運算速度專門快,形成最高進位輸出的延遲時刻專門短,然而以增加硬件邏輯線路為代價。關(guān)于長字長的加法器,往往將加法器分成若干組,在組內(nèi)采納并行進位,組間則采納串行進位或并行進位,由此形成多種進位結(jié)構(gòu)。4位CLA加法器4位CLA加法器16位單級先行進位加法器.算術(shù)邏輯單元ALU的功能和機構(gòu)ALU部件是運算器中的要緊組成部分,又稱為多功能函數(shù)發(fā)生器,要緊用于完成各種算術(shù)運算和邏輯運算。ALU的算術(shù)運算部件包含加法器、減法器、乘法器、除法器、增量器(+1)、減量器(-1)、BCD碼運算器等組件。ALU的要緊工作是按照CPU的指令要求執(zhí)行各種指定的運算,如加法、減法、乘法、除法、比較、邏輯移位等操作。通用寄存器組是一組存取速度最快的儲備器,用于儲存參加運算的操作數(shù)和中間結(jié)果。訪咨詢寄存器無需高速緩存,也不需要運行總線周期,因此指令的執(zhí)行速度專門快。幾乎所有
的指令都要將寄存器指定為一個操作數(shù),有些指令還要求將操作數(shù)存放在專用的寄存器中。專用寄存器通常用于表示CPU所處于某種系統(tǒng)狀態(tài),ALU中有兩個重要的狀態(tài)寄存器:指令指針寄存器IP(即程序計數(shù)器PC)和標(biāo)志寄存器FLAGS。三、儲備器層次機構(gòu)(一)儲備器的分類岫如他至典廣隨機幢備^KAM)1.按儲爸介蜃*為靜態(tài)RAM動態(tài)RAM(一)儲備器的分類岫如他至典廣隨機幢備^KAM)1.按儲爸介蜃*為靜態(tài)RAM動態(tài)RAMMROM盤儲備器分為半導(dǎo)體儲差餐矗曾瞬胤磁撮蟠器和光閃速儲備器(FlashMemory)EPROMEEPROM分為■磁盤、通讀儲備器和串行訪咨詢儲備器3.緩存(Cache)(二)儲備器的層次化結(jié)構(gòu)
儲備器有3個重要的指標(biāo):速度、容量和每位價格,一樣來講,速度越快,位價越高;容量越大,位價越低,容量大,速度就越低。上述三者的關(guān)系用下圖表示:儲備系統(tǒng)層次結(jié)構(gòu)(三)半導(dǎo)體隨機存取儲備器SRAM儲備器的工作原理1)靜態(tài)儲備單元SRAM靜態(tài)儲備單元的每個儲備位需要四到六個晶體管組成。比較典型的是六管儲備單元,即一個儲備單元儲備一位信息“0”或“1”。靜態(tài)儲備單元儲存的信息比較穩(wěn)固,信息為非破壞性讀出,故不需要重寫或者刷新操作;另一方面,其結(jié)構(gòu)簡單、可靠性高、速度較快,但其占用元件較多,占硅片面積大,且功耗大,因此集成度不高。寫入Djn讀/寫片選A6A7AllX譯碼器(6)寫入Djn讀/寫片選A6A7AllX譯碼器(6)靜態(tài)隨機儲備單元一個典型的SRAM結(jié)構(gòu)圖靜態(tài)儲備器的結(jié)構(gòu)。SRAM普遍采納全地址線方式,即芯片地址管腳安排了內(nèi)部必要的全部行地址和列地址。芯片采納片選信號CS。SRAM儲備器由儲備體、讀寫電路、地址譯碼器和操縱電路等組成。一個典型的SRAM結(jié)構(gòu)如圖所示。DRAM儲備器的工作原理1)動態(tài)儲備單元常見的動態(tài)RAM儲備單元有三管式和單管式兩種,它們的共特點是靠電容儲備電荷的原理來寄存信息。若電容上存有足夠的電荷表示“”,電容上無電荷表示“0”。電容上的電荷一樣只能堅持l-2ms,因此即使電源不掉電,電容上的電荷會自動消逝。因此,為保證信息的不丟失,必須在2ms之內(nèi)就要對儲備單元進行一次復(fù)原操作,那個過程稱為再生或者刷新。與靜
態(tài)RAM相比,動態(tài)RAM具有集成度更高、功耗更低等特點,目前被各類運算機廣泛使用。三管動態(tài)RAM差不多單元 單管動態(tài)RAM差不多單元2)DRAM儲備單元的刷新刷新方式刷新方法特點集中式在整個刷新間隔內(nèi),前一段時刻重復(fù)進行讀/寫周期或堅持周期,等到需要進行刷新操作時,便暫停讀/寫或堅持周期,而逐行刷新整個儲備器集中時刻刷新。有死時刻存在逐行刷新。適合于高速儲備器分散式把一個儲備系統(tǒng)周期丸分為兩半,周期前半段時刻tm用來讀/寫操作或堅持信息,周期后半段時刻丸作為刷新操作時刻。如此,每通過n個系統(tǒng)周期時刻,整個儲備器便全部刷新一遍逐行刷新。沒有死時刻。白費比較大,因為刷新時刻比承諾的短許多異步式保證在一個刷新周期內(nèi)將儲備芯片內(nèi)的所有行刷新一遍,可能等時刻一間距,也可能不等結(jié)合了以上兩者的優(yōu)點,實際應(yīng)用比較有優(yōu)勢 —集中式刷新周期 CPUCPUCPU訪內(nèi)訪內(nèi)訪內(nèi)CPUCPU刷新第刷新第訪內(nèi)訪內(nèi)1行2CPUCPUCPU訪內(nèi)訪內(nèi)訪內(nèi)CPUI刷新奧CPU刷新第CPUCPUI刷新奧CPU刷新第CPU刷新第訪內(nèi)11行訪內(nèi)2行訪內(nèi)3行分布式新周期CPU刷新最
訪內(nèi)后1行CPUCPI刷新第CPUCPUCPU刷新第訪內(nèi)訪內(nèi)1行訪內(nèi)訪內(nèi)訪內(nèi)2行異步(分布)式刷新周期CPU刷新最訪內(nèi)后1行DRAM的擴展專門性DRAM地址的專門性咨詢題:行地址和列地址復(fù)用,行地址和列地址的定時和選通之間的咨詢題。需要將CPU全地址分為行地址和列地址,以及產(chǎn)生行選通信號RAS和列選通信號CASo(四)只讀儲備器前面介紹的DRAM和SRAM均為可任意讀/寫的隨機儲備器,當(dāng)?shù)綦姇r,所儲備的內(nèi)容消逝,因此是易失性儲備器。只讀儲備器,即使停電,所儲備的內(nèi)容也不丟失。按照半導(dǎo)體制造工藝的不同,可分為ROM,PROM,EPROM,E2ROM和FlashMemory.只讀儲備器(ROM)掩模式ROM由芯片制造商在制造時寫入內(nèi)容,以后只能讀而不能再寫入。其差不多儲備原理是以元件的“有/無”來表示該儲備單元的信息(“1”或“0”),能夠用二極管或晶體管作為元件,顯而易見,其儲備內(nèi)容是可不能改變的。.可編程序的只讀儲備器(PROM)PROM可由用戶按照自己的需要來確定ROM中的內(nèi)容,常見的熔絲式PROM是以熔絲的通和斷開來表示所存的信息為“1”或“0”。剛出廠的產(chǎn)品,其熔絲是全部接通的。按照需要斷開某些單元的熔絲(寫入)。顯而易見,斷開后的熔絲是不能再接通了,因而一次性寫入的儲備器。掉電后可不能阻礙其所儲備的內(nèi)容。.可擦可編程序的只讀儲備器(EPROM)為了能修改ROM中的內(nèi)容,顯現(xiàn)了EPROMo利用浮動?xùn)臡OS電路儲存信息,信息的改寫用紫外線照耀即可擦除。.可電擦可編程序只讀儲備器(E2PROM)E2PROM的編程序原理與EPROM相同,但擦除原理完全不同,重復(fù)改寫的次數(shù)有限制(因氧化層被磨損),一樣為10萬次。其讀寫操作可按每個位或每個字節(jié)進行,類似SRAM,但每字節(jié)的寫入周期要幾毫秒,比SRAM長得多。E2PROM每個儲備單元采則2個晶體管。其柵極氧化層比EPROM薄,因此具有電擦除功能。.快除讀寫儲備器(FlashMemory)FlashMemory是在EPROM與E2PROM基礎(chǔ)上進展起來的,其讀寫過程和E2PROM不同,F(xiàn)lashMemory的讀寫操作一樣是以塊為單位。(五)主儲備器與CPU的連接1個儲備器的芯片的容量是有限的,它在字數(shù)或字長方面與實際儲備器的要求都有專門大差距,因此需要在字向和位向進行擴充才能滿足需要。按照儲備器所需的儲備容量和所提供的芯片的實際容量,能夠運算出總的芯片數(shù)。一個儲備器的容量為MXN位,若使用LXK位儲備器芯片,那么,那個儲備器共需要M/LXN/K儲備器芯片。?位擴展
位擴展指的是用多個儲備器器件對字長進行擴充。位擴AddressBus展的連接方式是將多片儲備器的地址、片選己、讀寫操縱端R/W可相應(yīng)并聯(lián),數(shù)據(jù)端分不引出。1KX4的SRAM儲備芯片構(gòu)造1KX8的儲備器(位擴展)
01Of34CW67tv9aaaaaaaaraA0A1MA3MA5MC時的01Of34CW67tv9aaaaaaaaraA0A1MA3MA5MC時的DCD1D2DJD4DSD6D7MA1A2A3A4A5A6A7A2A9DC01D2D3D4D5D6D7MD1D2D3D4D5D6D7MA1A2A3A4A5MA7MA9D0D1D2B(MD5D6D7AddreuBui1KX8SRAM儲備芯片構(gòu)成4KX8的儲備器(字擴展).字擴展字擴展指的是增加儲備器中字的數(shù)量。靜態(tài)儲備器進行字擴展時,將各芯片的地址線、數(shù)據(jù)線、讀寫操縱線相應(yīng)并聯(lián),而由片選信號來區(qū)分各芯片的地址范疇。下圖是1KX8SRAM儲備芯片構(gòu)成4KX8的儲備。.字位擴展實際儲備器往往需要字向和位向同時擴充。差不多思路可參照位擴展和字擴展。1KX4SRAM儲備芯片構(gòu)成16Kx8的儲備器(六)雙口RAM和多模塊儲備器.雙端口儲備器雙端口儲備器是一種具有兩個單獨的讀/寫端口及操縱電路的儲備器,通過增加一個讀/寫端口,雙端口儲備器擴展了儲備器的的信息交換能力。雙端口儲備器存在沖突的讀寫操縱咨詢題,當(dāng)兩端口同時訪咨詢儲備器統(tǒng)一單元時,便發(fā)生讀寫沖突。為解決此咨詢題,設(shè)置標(biāo)志。讀寫某個單元之前,檢查標(biāo)記,訪咨詢單元時,標(biāo)記置低;讀寫完畢,復(fù)原標(biāo)記高。.多模塊儲備器(1)儲備器的模塊化組織一個由若干個模塊組成的主儲備器是線性編址的。這些地址在各模塊中有兩種安排方式,分不是:順序方式和交叉方式,如表所示。地址高地址低工作方式優(yōu)點缺點位位順序方式選擇模塊選擇字模塊單獨工作,串行儲備器結(jié)構(gòu),連續(xù)地址位于同一模塊中擴容方便,模塊間故障隔離帶寬受限交叉方式選擇字選擇模塊模塊同時并行工作,并行儲備器結(jié)構(gòu);連續(xù)地址分配在不同的模塊中提升了帶寬,提升了機器運行速度故障不能隔離,一個模塊出錯,程序就出錯(七)高速緩沖儲備器(Cache)程序訪咨詢的局部性從大量的統(tǒng)計中得到的一個規(guī)律是,程序中關(guān)于儲備空間90%的訪咨詢局限于儲備空間的10%的區(qū)域中,而另外10%的訪咨詢則分布在儲備空間的其余90%的區(qū)域中。這確實是通常講的局部性原理。訪存的局部性規(guī)律包括兩個方面:時刻局部性:如果一個儲備項被訪咨詢,則可能該項會專門快被再次訪咨詢??臻g局部性:如果一個儲備項被訪咨詢,則該項及其鄰近的項也可能專門快被訪咨詢。Cache的差不多工作原理Cache通常由兩部分組成,塊表和快速儲備器。其工作原理是:處理機按主存地址訪咨詢儲備器,儲備器地址的高段通過主存-Cache地址映象機構(gòu)借助查表判定該地址的儲備單元是否在Cache中,如果在,則Cache命中,按Cache地址訪咨詢Cacheo否則,Cache不命中,則需要訪咨詢主存,并從主存中調(diào)入相應(yīng)數(shù)據(jù)塊到Cache中,若Cache中已寫滿,則要按某種
算法將Cache中的某一塊替換出去,并修改有關(guān)的地址映象關(guān)系。從那個工作原理我們能夠看出,它差不多涉及到了兩個咨詢題。第一是定位、然后是替換的咨詢題。Cache的存在對程序員是透亮的。其地址變換和數(shù)據(jù)塊的替|Tag|TagBlockTagBlockTagBlockTagBlock換算法均由硬件實現(xiàn)。通常Cache被集成到CPU內(nèi)以提升訪咨詢速度。下圖是Cache的差不多結(jié)構(gòu)。Cache和主存之間的映射方式因為處理機訪咨詢差不多上按主存地址訪咨詢的,而Cache的空間遠小于主存,如何明白這一次的訪咨詢內(nèi)容是不是在Cache中,在Cache中的哪一個位置呢?這就需要地址映象,即把主存中的地址映射成Cache中的地址。讓Cache中一個儲備塊(空間)與主存中若干塊相對應(yīng),如此,訪咨詢一個主存地址時,就能夠?qū)?yīng)地明白在cache中哪一個地址了。地址映象的方法有三種:直截了當(dāng)映象、全相聯(lián)映象和組相聯(lián)映象。(1)直截了當(dāng)映像直截了當(dāng)映象確實是將主存地址映象到Cache中的一個指定地址。任何時候,主存中儲備單元的數(shù)據(jù)只能調(diào)入到Cache中的一個位置,這是固定的,若那個位置已有數(shù)據(jù),則產(chǎn)生沖突,原先的塊將無條件地被替換出去。每個主存塊只與一個Cache塊對應(yīng),映射關(guān)系:i=jmodC或者i=jmod2cCache字塊2C-1字塊2CCache字塊2C-1字塊2C字塊2C+1塊Cache?假設(shè)Cache字塊地址字段的內(nèi)容為00—01字塊0字塊1主存字塊0字塊1直截了當(dāng)映射直截了當(dāng)映像的缺點是不夠靈活,每個主存塊只能固定映射到Cache的某個塊上,即使存在閑暇的塊,也不能使用,Cache空間得不到充分利用。(2)全相聯(lián)映象全相聯(lián)映象確實是任何主存塊可映象到任何Cache塊的方式。在這種方式下,主存中儲備單元的數(shù)據(jù)可調(diào)入到Cache中的任意位置。只有在Cache中的塊全部裝滿后才會顯現(xiàn)塊沖突。和直截了當(dāng)映像方式相比,主存的塊標(biāo)記從t增加到t+c位,使得Cache標(biāo)記的位數(shù)增多,而且訪咨詢Cache時主存塊標(biāo)記需要和Cache的全部標(biāo)記位進行比較,才能判定出所訪咨詢主存地址的內(nèi)容是否已在Cache內(nèi)。這種比較通常采納''按內(nèi)容尋址”的相聯(lián)儲備器來完成。主存Cache位主存Cache位b位全相連映射(3)組相聯(lián)映象組相聯(lián)映象是直截了當(dāng)映射和全相連映射的折中。把Cache分為Q組,每組R塊,并有以下關(guān)系:i=jmodQ其中,i為Cache的組號,j為主存的塊號。是將儲備空間的頁面分成若干組,各組之間的直截了當(dāng)映象,而組內(nèi)各塊之間則是全相聯(lián)映象。下圖中,Cache分成2q個組,q=c-r,每組包含2c個塊。主存標(biāo)記字段為s=t+r位。Cachc(r=l)主存Cachc(r=l)主存組相聯(lián)映射Cache中主存塊的替換算法在直截了當(dāng)映象方式下,不存在塊替換的算法,因為每一塊的位置映象是固定的,需要哪一塊數(shù)據(jù)就可直截了當(dāng)確定地將該塊數(shù)據(jù)調(diào)入上層確定位置。而其他兩種映象就存在替換策略的咨詢題,確實是要選擇替換到哪一個Cache塊。即替換算法。思想優(yōu)點缺點隨機算法RAND用軟的或硬的隨機數(shù)產(chǎn)生器產(chǎn)生上層中要被替換的頁號簡單、易于實現(xiàn)沒有利用上層儲備器使用的”歷史信息",沒有反映等程序局部性,命中率低。先進先出FIFO選擇最早裝入上層的頁作為被替換的頁實現(xiàn)方便,利用了主存歷史的信息不能正確反映程序局部性原理,命中率不高,可能顯現(xiàn)一種專門現(xiàn)象。近期最少使用法LRU選擇近期最少訪咨詢的頁作為被替換的頁比較正確反映程序局部性,利用訪存的歷史信息,命中率較高實現(xiàn)較復(fù)雜優(yōu)化替換算法OPT將以后近期不用的頁換出去命中率最高,可作為衡量其他替換算法的標(biāo)準(zhǔn)不現(xiàn)實,只是一種理想算法Cache寫策略對Cache的寫操作,情形比讀操作要復(fù)雜一些。由于寫入Cache時,并沒有寫入主存,因此就顯現(xiàn)Cache和主存數(shù)據(jù)不一致的情形。如何處理Cache和主存不一致的方法就稱為更新策略更新策略思想優(yōu)點缺點寫回法是指在CPU執(zhí)行寫操作時,信息只寫入Cache中,僅當(dāng)需要替換時,才將改寫過的Cache塊先送回主存(寫回),然后再調(diào)塊(設(shè)置dirty位)有利于省去許多將中間結(jié)果寫入主存的無謂開銷。需設(shè)修改位增加Cache的復(fù)雜性全寫法(寫直達法)在寫操作時,將數(shù)據(jù)同時寫入Cache和主存實現(xiàn)開銷小、簡單為了寫中間結(jié)果白費了許多時刻另外,當(dāng)寫不命中時(也確實是寫Cache塊時,這塊早被人替換出去而在Cache中找不到時)是不是要把這塊再取回Cache中,有兩個解決方法:不按寫分配法,確實是直截了當(dāng)寫到主存里,不再把該地址對應(yīng)的塊調(diào)回Cache中。按寫分配法,確實是寫到主存,而且把這一塊從主存中調(diào)入到Cacheo一樣寫回法用按寫分配法,全寫法則采納不按寫分配。(八)虛擬儲備器.虛擬儲備器的差不多概念虛擬儲備器是主存的擴展,虛擬儲備器的空間大小取決于運算機的訪存能力而不是實際外存的大小,實際儲備空間能夠小于虛擬地址空間。從程序員的角度看,外存被看作邏輯儲備空間,訪咨詢的地址是一個邏輯地址(虛地址),虛擬儲備器使儲備系統(tǒng)既具有相當(dāng)于外存的容量又有接近于主存的訪咨詢速度。虛擬儲備器的訪咨詢也涉及到虛地址與實地址的映象、替換算法等,這與Cache中的類似,前面我們講的地址映象以塊為單位,而在虛擬儲備器中,地址映象以頁為單位。設(shè)計虛擬儲備系統(tǒng)需考慮的指標(biāo)是主存空間利用率和主存的命中率。虛擬儲備器與Cache儲備器的治理方法有許多相同之處,它們都需要地址映象表和地址變換機構(gòu)。然而二者也是不同的。虛擬儲備器的三種不同治理方式:按儲備映象算法,分為段式、頁式和段頁式等,這些治理方式的差不多原理是類似的。.頁式虛擬儲備器頁式治理是把虛擬儲備空間和實際空間等分成固定大小的頁,各虛擬頁可裝入主存中的不同實際頁面位置。頁式儲備中,處理機邏輯地址由虛頁號和頁內(nèi)地址兩部分組成,實際地址也分為頁號和頁內(nèi)地址兩部分,由地址映象機構(gòu)將虛頁號轉(zhuǎn)換成主存的實際頁號。頁式治理用一個頁表,包括頁號、每頁在主存中起始位置、裝入位等。頁表是虛擬頁號與物理頁號的映射表。頁式治理由操作系統(tǒng)進行,對應(yīng)用程序員的透亮的。頁式地址變換.段式虛擬儲備器段式治理把主存按段分配的儲備治理方式。它是一種模塊化的儲備治理方式,每個用戶程序模塊可分到一個段,該程序模塊只能訪咨詢分配給該模塊的段所對應(yīng)的主存空間。段長能夠任意設(shè)定,并可放大和縮小。系統(tǒng)中通過一個段表指明各段在主存中的位置。段表中包括段標(biāo)基址寄存器 虛存地址段表(在主存中)段名(段號)、段起點、裝入位和段長等。段表本身也是一個段。段一樣是按程序模塊分的。段式虛存地址到實存地址的變換.段頁式虛擬儲備器段頁式治理:是上述兩種方法的結(jié)合,第一,把程序按邏輯單位分段以后,再把每段分成固定大小的頁。訪存通過一個段表和若干個頁表進行。段的長度必須是頁長的整數(shù)倍,段的起點必須是某一頁的起點。程序?qū)χ鞔娴恼{(diào)入/調(diào)出是按頁面進行的,但它又按段實現(xiàn)共享和愛護,兼?zhèn)漤撌胶投问降膬?yōu)點。缺點是在映像過程中需要多次查表。在段頁式虛擬儲備系統(tǒng)中,每道程序是通過一個段表和一組頁表來進行定位的。段表中的每個表目對應(yīng)一個段,每個表目有一個指向該段的頁表起始地址及該段的操縱愛護信息。由頁表指明該段各頁在主存中的位置以及是否已裝入、己修改等狀態(tài)信息。如果有多個用戶在機器上運行,多道程序的每一道需要一個基號,由它指明該道程序的段表起始地址。虛擬地址格式如下:基號段號頁號頁內(nèi)地址.TLB(快表)在虛擬儲備器中進行地址變換時,需要虛頁號變換成主存中實頁號的內(nèi)部地址變換,這一樣通過查內(nèi)頁表實現(xiàn)。當(dāng)表中該頁對應(yīng)的裝入位為真時,表示該頁在主存中,可按主存地址咨詢主存;如果裝入位為假時,表示該頁不在儲備器中,就產(chǎn)生頁失效中斷,需從外存調(diào)入頁。中斷處理時先通過外部地址變換,一樣通過查外頁表,將虛地址變換為外存中的實際地址,到外存中去選頁,然后通過I/O通道調(diào)入內(nèi)存。當(dāng)外存頁面調(diào)入主存中時還存在一個頁面替換略的咨詢題。提升頁表的訪咨詢速度是提升地址變換速度的關(guān)鍵。因為,每次訪存都要讀頁表,如果頁存放在主存中,就意味著訪存時刻至少是兩次訪咨詢主存的時刻,如此查表的代價大大。只有內(nèi)部地址變換速度提升到使訪咨詢主存的速度接近于不采納虛擬儲備器時的訪主存速度時,虛擬儲備器才能有用。
四、指令系統(tǒng)(一)指令格式.指令的差不多格式運算機是通過執(zhí)行指令來處理各種數(shù)據(jù)的。為了指出數(shù)據(jù)的來源、操作結(jié)果的去向及所執(zhí)行的操作,一條指令必須包含下列信息:(1)操作碼,具體講明了操作的性質(zhì)及功能。(2)操作數(shù)的地址。(3)操作結(jié)果的儲備地址。(4)下一條指令的地址。從上述分析可知,一條指令實際上包括兩種信息即操作碼和地址碼。操作碼(operationcode)用來表示該指令所要完成的操作(如加、減、乘、除、數(shù)據(jù)傳送等),其長度取決于指令系統(tǒng)中的指令條數(shù)。地址碼用來描述該指令的操作對象,或者直截了當(dāng)給出操作數(shù)或者指出操作數(shù)的儲備器地址或寄存器地址(即寄存器名)。.定長操作碼指令格式1)零地巴指令OPCODEOPCODE——操作碼指令中只有操作碼,而沒有操作數(shù)或沒有操作數(shù)地址。這種指令有兩種可能:(1)無需任何操作數(shù),如空操作指令,停機指令等。一地址指令格式:OPCODE格式:OPCODEOPCODE——操作碼A——操作數(shù)的儲備器地址或寄存器名指令中只給出一個地址,該地址既是操作數(shù)的地址,又是操作結(jié)果的儲備地址。如加1,減1和移位等單操作數(shù)指令均采納這種格式,對這一地址所指定的操作數(shù)執(zhí)行相應(yīng)的操作后,產(chǎn)生的結(jié)果又存回該地址中。3)二地址指令格式:OPCODEAlA2OPCODEAlA2 格式:OPCODEAlA2OPCODEAlA2 操作碼第一個源操作數(shù)的儲備器地址或寄存器地址。第二個源操作數(shù)和存放操作結(jié)果的儲備器地址或寄存器地址。這是最常見的指令格式,兩個地址指出兩個源操作數(shù)地址,其中一個依舊存放結(jié)果的目的地址。對兩個源操作數(shù)進行操作碼所規(guī)定的操作后,將結(jié)果存入目的地址,在本例中即為A2指定的地址3)三地址指令OPCODEAlA2A3OPCODEAlA2A3格式:OPCODE——操作碼Al——第一個源操作數(shù)的儲備器地址或寄存器地址A2——第二個源操作數(shù)的儲備器地址或寄存器地址A3——操作結(jié)果的儲備器地址或寄存器地址其操作是對Al,A2指出的兩個源操作數(shù)進行操作碼(0PCODE)所指定的操作,結(jié)果存入A3中。4)多地址指令在某些性能較好的大、中型機甚至高檔小型機中,往往設(shè)置一些功能專門強的,用于處理成批數(shù)據(jù)的指令,如字符串處理指令,向量、矩陣運算指令等。為了描述一批數(shù)據(jù),指令中需要多個地址來指出數(shù)據(jù)存放的首地址、長度和下標(biāo)等信息3.擴展操作碼指令格式設(shè)某機器的指令長度為16位,包括4位差不多操作碼字段和三個4位地址字段,其格式下:OPCODE(4)A1(4)A2(4)A3(4)4位差不多操作碼有16個碼點(即有16種組合),若全部用于表示三地址指令,則只有16條。然而,若三地址指令僅需15條,兩地址指令需15條,一地址指令需15條,零地址指令需16條,共61條指令,應(yīng)如何安排操作碼?明顯,只有4位差不多操作碼是不夠的,必須將操作碼的長度向地址碼字段擴展才行。一種可供擴展的方法和步驟如下:(1)15條三地址指令的操作碼由4位差不多操作碼從0000?1110給出,剩下一個碼點1111用于把操作碼擴展到A1,即4位擴展到8位;(2)15條二地址指令的操作碼由8位操作碼從11110000?11111110給出,剩下一個碼點11111111用于把操作碼擴展到A2,即從8位擴展到12位;15條一地址指令的操作碼由12位操作碼從111111110000?111111111110給出,剩下的一個碼點111111111111用于把操作碼擴展到A3,即從12位擴展到16位;16條零地址指令的操作碼由16位操作碼從1111111111110000~1111111111111111給出。(二)指令的尋址方式.有效地址的概念操作數(shù)的真實地址稱為有效地址,記做EA,它是尋址方式和形式地址共同來決定的。.數(shù)據(jù)尋址和指令尋址尋址方式是指確定本條指令的數(shù)據(jù)地址以及下一條將要執(zhí)行的指令的地址,與硬件結(jié)構(gòu)緊密有關(guān),尋址方式分為指令尋址和數(shù)據(jù)尋址兩大類指令尋址分為順序?qū)ぶ泛吞S尋址兩種。順序?qū)ぶ纺軌蛲ㄟ^程序計數(shù)器PC加1自動形成下一條指令的地址,跳躍尋址則通過轉(zhuǎn)移類指令實現(xiàn),是通過對PC的運算得到新的下一條指令的地址。.常見尋址方式1)趕忙尋址所需的操作數(shù)由指令的地址碼部分直截了當(dāng)給出,就稱為趕忙數(shù)(或直截了當(dāng)數(shù))尋址方式。這種方式的特點是取指時,操作碼和一個操作數(shù)同時被取出,不必再次訪咨詢儲備器,提升了指令的執(zhí)行速度。然而由于這一操作數(shù)是指令的一部分,不能修改,而一樣情形下,指令所處理的數(shù)據(jù)差不多上在持續(xù)變化的(如上條指令的執(zhí)行結(jié)果作為下條指令的操作數(shù)),故這種方式只能適用于操作數(shù)固定的情形。通常用于給某一寄存器或儲備器單元賦初值或提供一個常數(shù)等。2)直截了當(dāng)尋址指令的地址碼部分給出操作數(shù)在儲備器中的地址。3)隱含尋址操作數(shù)的地址隱含在操作碼或者某個寄存器中。4)間接尋址在尋址時,有時按照指令的地址碼所取出的內(nèi)容既不是操作數(shù),也不是下一條要執(zhí)行的指令,而是操作數(shù)的地址或指令的地址,這種方式稱為間接尋址或間址。5)寄存器尋址運算機的中央處理器一樣設(shè)置有一定數(shù)量的通用寄存器,用以存放操作數(shù)、操作數(shù)的地址或中間結(jié)果。如果指令地址碼部分給出某一通用寄存器地址,而且所需的操作數(shù)就在這一寄存器中,則稱為寄存器尋址。通用寄存器的數(shù)量一樣在幾個至幾十個之間,比儲備單元少專門多,因此地址碼短,而且從寄存器中存取數(shù)據(jù)比從儲備器中存取快得多,因此這種方式能夠縮短指令長度、節(jié)約儲備空間,提升指令的執(zhí)行速度,在運算機中得到廣泛應(yīng)用。6)寄存器間接尋址寄存器中給出的是操作數(shù)的地址,因此還需要訪咨詢一次儲備器才能得到操作數(shù)。7)基址尋址在運算機中設(shè)置一個專用的基址寄存器,或由指令指定一個通用寄存器為基址寄存器。操作數(shù)的地址由基址寄存器的內(nèi)容和指令的地址碼A相加得到8)變址尋址指令地址碼部分給出的地址A和指定的變址寄存器X的內(nèi)容通過加法器相加,所得的和作為地址從儲備器中讀出所需的操作數(shù)。這是幾乎所有運算機都采納的一種尋址方式。9)相對尋址把程序計數(shù)器PC的內(nèi)容(即當(dāng)前執(zhí)行指令的地址)與指令的地址碼部分給出的位移量(disp)之和作為操作數(shù)的地址或轉(zhuǎn)移地址,稱為相對尋址。要緊用于轉(zhuǎn)移指令,執(zhí)行本條指令后,將轉(zhuǎn)移到(PC)+disp,(PC)為程序計數(shù)器的內(nèi)容。相對尋址有兩個特點:1)轉(zhuǎn)移地址不是固定的,它隨著PC值的變化而變化,同時總是與PC相差一個固定值disp,因此不管程序裝人儲備器的任何地點,均能正確運行,對浮動程序?qū)iT適用。2)位移量可正、可負,通常用補碼表示。如果位移量為In位,則這種方式的尋址范疇在(PC)-2n-l-(PC)+2n-l-l之間運算機的程序和數(shù)據(jù)一樣是分開存放的,程序區(qū)在程序執(zhí)行過程中不承諾修改。在程序與數(shù)據(jù)分區(qū)存放的情形下,不用相對尋址方式來確定操作數(shù)地址。10)堆棧尋址在一樣運算機中,堆棧要緊用來暫存中斷和子程序調(diào)用時現(xiàn)場數(shù)據(jù)及返回地址,用于訪咨詢堆棧的指令只有壓入(即進棧)和彈出(即退棧)兩種,它們實際上是一種專門的數(shù)據(jù)傳送指令:壓入指令(PUSH)是把指定的操作數(shù)送入堆棧的棧頂;彈出指令(POP)的操作剛好相反,是把棧頂?shù)臄?shù)據(jù)取出,送到指令所指定的目的地。一樣的運算機中,堆棧從高地址向低地址擴展,即棧底的地址總是大于或等于棧頂?shù)牡刂罚ㄒ灿猩贁?shù)運算機剛好相反)當(dāng)執(zhí)行壓入操作時,第一把堆棧指針(SP)減量(減量的多少取決于壓入數(shù)據(jù)的字節(jié)數(shù),若壓入一個字節(jié),則減1;若壓入兩個字節(jié),則減2,以此類推),然后把數(shù)據(jù)送人SP所指定的單元;當(dāng)執(zhí)行彈出操作時,第一把sp所指定的單元(即棧頂)的數(shù)據(jù)取出,然后按照數(shù)據(jù)的大小(即所占的字節(jié)數(shù))對SP增量。(三)CISC和RISC的差不多概念CISC(復(fù)雜指令集運算機)隨著VLSI技術(shù)的進展,運算機的硬件成本持續(xù)下降,軟件成本持續(xù)提升,使得人們熱衷于在指令系統(tǒng)中增加更多的指令和復(fù)雜的指令,來提升操作系統(tǒng)的效率,并盡量縮短指令系統(tǒng)與高級語言的語義差不,以便于高級語言的編譯和降低軟件成本。RISC(簡單指令集運算機)RISC的產(chǎn)生1975年IBM公司開始研究指令的合理性咨詢題,IBM的Johncocke提出了RISC的方法。對CISC的測試表明:最長使用的是一些簡單指令,占指令總數(shù)的20%,但在程序中顯現(xiàn)的頻率卻占80%。 而占20%的復(fù)雜指令,為實現(xiàn)其功能而設(shè)計的微程序代碼卻占總代碼的80%oCISC研制時刻長、成本高、難于實現(xiàn)流水線;因此顯現(xiàn)了RIC技術(shù)。RISC的特點1)優(yōu)先選取使用頻率最高的一些簡單指令;2)指令長度固定;3)只有取數(shù)/存數(shù)指令(load/store)訪咨詢內(nèi)存;4)CPU中的寄存器數(shù)量專門多;5)大部分指令在一個或小于一個機器周期完成;6)硬布線操縱邏輯為主,不用或少用微碼操縱;7)一樣用高級語言編程,專門重視編譯優(yōu)化,以減少程序執(zhí)行時刻。(3)RISC的進展(4)CISC機與RISC機的要緊特點對比CISCRISC指令系統(tǒng)復(fù)雜、龐大簡單、精簡指令數(shù)一樣大于200一樣小于100指令格式一樣大于4一樣小于4指令字長一樣大于4一樣小于4尋址方式不固定固定32位可訪咨詢指令不加限制只有LOAD/STORE指令各種指令使用頻率相差專門大相差不大各種指令執(zhí)行時刻相差專門大絕大多數(shù)在一個機器周期完成優(yōu)化編譯實現(xiàn)專門難較容易程序源代碼長度較短較長操縱邏輯實現(xiàn)方式絕大多數(shù)為微程序操縱絕大多數(shù)為硬連線操縱五、中央處理器(CPU)(一)CPU的功能和差不多結(jié)構(gòu)CPU要緊是由運算器和操縱器組成,由于運算器部分在第二部分介紹過,因此本節(jié)要緊介紹操縱器的組成和工作原理。1.操縱器的功能運算機對信息進行處理(或運算)是通過程序的執(zhí)行而實現(xiàn)的,程序是完成某個確定算法的指令序列,要預(yù)先存放在儲備器中。操縱器的作用是操縱程序的執(zhí)行,它必須具有以下差不多功能:(1)取指令(2)分析指令(3)執(zhí)行指令運算機持續(xù)重復(fù)順序執(zhí)行上述三種差不多操作:取指、分析、執(zhí)行;再取指、再分析、再執(zhí)行,如此循環(huán),直到遇到停機指令或外來的干預(yù)為止。(4)操縱程序和數(shù)據(jù)的輸入與結(jié)果輸出按照程序的安排或人的干預(yù),在適當(dāng)?shù)臅r候向輸入輸出設(shè)備發(fā)出一些相應(yīng)的命令來完成I/O功能,這實際上也是通過執(zhí)行程序來完成的。(5)對專門情形和某些要求的處理當(dāng)機器顯現(xiàn)某些專門情形,諸如算術(shù)運算的溢出和數(shù)據(jù)傳送的奇偶錯等;或者某些外來要求,諸如磁盤上的成批數(shù)據(jù)需送儲備器或程序員從鍵盤送入命令等,現(xiàn)在由這些部件或設(shè)備發(fā)出:“中斷要求”信號。DMA要求信號。操縱器的組成按照對操縱器功能分析,得出操縱器的差不多組成如下:(1)程序計數(shù)器(PC)即指令地址寄存器。在某些運算機中用來存放當(dāng)前正在執(zhí)行的指令地址;而在另一些運算機中則用來存放立即要執(zhí)行的下一條指令地址;而在有指令預(yù)取功能的運算機中,一樣還需要增加一個程序計數(shù)器用來存放下一條要取出的指令地址。有兩種途徑來形成指令地址,其一是順序執(zhí)行的情形,通過程序計數(shù)器加“1”形成下一條指令地址(如儲備器按字節(jié)編址,而指令長度為4個字節(jié),則加"4”)。其二是遇到需要改變順序執(zhí)行程序的情形,一樣由轉(zhuǎn)移類指令形成轉(zhuǎn)移地址送往程序計數(shù)器,作為下一條指令的地址。(2)指令寄存器(IR)用以存放當(dāng)前正在執(zhí)行的指令,以便在指令執(zhí)行過程中,操縱完成一條指令的全部功能。(3)地址寄存器(AR)用以儲存CPU正在訪咨詢內(nèi)存單元的地址。(4)數(shù)據(jù)緩沖寄存器(DR)用以暫存讀出或?qū)懭雰?nèi)存的數(shù)據(jù)。(5)指令譯碼器或操作碼譯碼器對指令寄存器中的操作碼進行分析講明,產(chǎn)生相應(yīng)的操縱信號。在執(zhí)行指令過程中,需要形成有一定時序關(guān)系的操作操縱信號序列,為此還需要下述組成部分。(6)脈沖源及啟停線路脈沖源產(chǎn)生一定頻率的脈沖信號作為整個機器的時鐘脈沖,是機器周期和工作脈沖的基準(zhǔn)信號,在機器剛加電時,還應(yīng)產(chǎn)生一個總清信號(reset)。啟停線路保證可靠地送出或封鎖時鐘脈沖,操縱時序信號的發(fā)生或停止,從而啟動機器工作或使之停機。(7)時序操縱信號形成部件當(dāng)機器啟動后,在CLK時鐘作用下,按照當(dāng)前正在執(zhí)行的指令的需要,產(chǎn)生相應(yīng)的時序操縱信號,并按照被控功能部件的反饋信號調(diào)整時序操縱信號。例如,當(dāng)執(zhí)行加法指令時,若產(chǎn)生運算溢出的專門情形,一樣不再執(zhí)行將結(jié)果送入目的寄存器(或儲備單元)的操作,而發(fā)出中斷要求信號,轉(zhuǎn)入中斷處理;又如執(zhí)行條件轉(zhuǎn)移指令時,按照不同的條件產(chǎn)生不同的操縱信號,從而進入適當(dāng)?shù)某绦蚍种?。(二)指令?zhí)行過程.指令執(zhí)行的時序運算機工作的過程是取指令、分析指令、執(zhí)行指令三個差不多動作的重復(fù)。考慮到所有的器件中(寄存器、儲備器)儲備器的速度最慢,因此,取最慢的器件工作時刻(周期)作為整個工作的最長同步標(biāo)準(zhǔn)。運算機的工作時序是按照儲備器的工作周期劃分的。每個儲備器工作周期又稱為機器周期。因此,每個機器周期至少完成一個差不多操作。一樣最長的操作是訪咨詢儲備器(讀/寫),那個時刻也用于訪咨詢外設(shè)接口(寄存器)。如果,某個操作,例如利用運算器執(zhí)行一次運算,如果不訪咨詢儲備器,即使占用的時刻專門短,然而,也必須為其劃分一個機器周期。因此,機器周期是運算時序劃分的最大單位。現(xiàn)在我們?yōu)檫\算機的執(zhí)行時刻進行最差不多的劃分:由于運算機持續(xù)地重復(fù)執(zhí)行每個指令,因此,我們將執(zhí)行的時刻劃分為一條一條指令執(zhí)行所占用的時刻,如下:執(zhí)行指令1執(zhí)行指令2執(zhí)行指令3執(zhí)行指令4執(zhí)行指令5我們將每指令占用的時刻稱為指令周期。由于每條指令的功能不一樣,因此執(zhí)行的時刻也不同,指令周期長短不一樣。而每條指令的執(zhí)行,又能夠是取指令,分析指令,執(zhí)行指令。由于取指令必須訪咨詢儲備器,因此占用一個機器周期。分析指令是由指令譯碼電路完成的,所占用的時刻極短,無需分配一個完整的機器周期。一樣是在取指周期后期(終止之前的專門短時刻內(nèi))就能夠完成。指令的執(zhí)行較為復(fù)雜:可能不訪咨詢儲備器;訪咨詢一次儲備器;訪咨詢兩次儲備器等。因此,可能是一個機器周期到幾個機器周期。因此,每條指令的執(zhí)行過程如下:取指周期執(zhí)行周期1執(zhí)行周期2執(zhí)行周期3執(zhí)行周期4第一個機器周期總是取指周期,而指令的地址總是從PC中獲得,當(dāng)發(fā)出讀取儲備器命令后,指令總是從數(shù)據(jù)總線DB送回,CPU同意到指令之后,將指令放在指令寄存器IR之中。指令在IR中一直保留到取下一條指令為止。第二個機器周期開始,按照指令有所不同:執(zhí)行一次ALU運算:分配一個機器周期。執(zhí)行訪咨詢一次儲備器:分配一個機器周期。因此,按照指令執(zhí)行的不同情形,將會得到不同指令執(zhí)行所占用的機器周期。按照每個機器周期完成的任務(wù)不同,我們將每個機器周期按照任務(wù)命名。如同用取指周期命名第一個機器周期一樣。.指令執(zhí)行過程舉例假設(shè)指令格式如下:操作碼rs,rdrslimm(Disp)rs,rd,rsl為通用寄存器地址;imm(或disp)為趕忙數(shù)(或位移量)。加法指令功能:將寄存器(rs)中的一個數(shù)與儲備器中的一個數(shù)(其地址為(rsl)+disp)相加,結(jié)果放在寄存器rd中,rs與rd為同一寄存器。加法指令完成以下操作:(1)取指周期從儲備器取指令,送入指令寄存器,并進行操作碼譯碼(分析指令)。程序計數(shù)器加1,為下一條指令作好預(yù)備。操縱器發(fā)出的操縱信號:PC-AB,W/R=O,M/IO=1;DB-IR;PC+lo(2)運算地址周期運算數(shù)據(jù)地址,將運算得到的有效地址送地址寄存器AR。操縱器發(fā)出的操縱信號:rsl—GR,(rsl)-ALU,disp-ALU(將rsl的內(nèi)容與disp送ALU);“+”(加法命令送ALU);ALU-AR(有效地址送地址寄存器)。(3)取數(shù)周期到儲備器取數(shù)。操縱器發(fā)出的操縱信號:AR-AB,W/R=O,M/IO=1;DB-DR(將地址寄存器內(nèi)容送地址總線,同時發(fā)訪存讀命令,儲備器讀出數(shù)據(jù)送數(shù)據(jù)總線后,打入數(shù)據(jù)寄存器)。(4)執(zhí)行周期進行加法運算,結(jié)果送寄存器,并按照運算結(jié)果置狀態(tài)位N,Z,V,Co操縱器送出的操縱信號:rs,rd-GR,(rs)-ALU,DR-ALU(兩個源操作數(shù)送ALU);ALU-*rd(運算結(jié)果送寄存器rd)(三)數(shù)據(jù)通路的功能和差不多結(jié)構(gòu)CPU的數(shù)據(jù)通路是連接CPU內(nèi)部各個部件以及和CPU外部個部件之間的數(shù)據(jù)和操縱信號的連接關(guān)系圖,數(shù)據(jù)通路的差不多結(jié)構(gòu)如下圖所示。(四)操縱器的功能和工作原理.硬布線操縱器操縱器操縱信號的產(chǎn)生是采納邏輯電路,也稱組合邏輯電路操縱方式?!睍r序操縱信號形成部件”是由硬邏輯布線完成的。實際設(shè)計中,需要幾十?幾百條指令,確定每條指令所需的機器周期,將情形相同的指令歸并在一起,列出表達式,畫出邏輯圖。(1)時序與節(jié)拍每一步由一個機器周期來完成,假設(shè)采納4個機器周期,總之,需要4個不同的信號輸出,代表4個不同的周期。(2)操作碼譯碼器指令的操作碼部分指出本指令將執(zhí)行什么指令,如加法、減法等。關(guān)于不同的指令,采納不同的代碼表示。(3)操作操縱信號的產(chǎn)生以加法指令為例,加法指令的完成是由4個機器周期cy1、cy2、cy3、cy4組成,分不是取指、運算地址、取數(shù)、運算4個機器周期。將所有的機器周期的操作操縱信號的邏輯表達式全部寫出來,就會得到各個操作操縱信號的所有表達式,再將這些表達式安每個操作操縱信號組合起來,就得到某個操作操縱信號的表達式。取指周期需要產(chǎn)生的操作操縱信號如下:PC-AB=cyl ;將PC送地址總線
ADS=cyl?Tl ;儲備器地質(zhì)有效M/IO=cyl ;儲備器操作W/R=cyl ;讀操作DB-*IR=cyl ;將讀出的結(jié)果送IRPC+l=cyl ;將程序計數(shù)器加1運算地址周期cy2需要完成有效地址((rsl)+Disp)的運算。;送通用寄存器地址;通用寄存器送ALU;偏移量送ALU;ALU執(zhí)行加法操作;;送通用寄存器地址;通用寄存器送ALU;偏移量送ALU;ALU執(zhí)行加法操作;運算結(jié)果送地址總DispfALU=力口法指令,cy2“+”=加法指令?cy2ALUfAR=力口法指令,cy2例如,“+”操作操縱信號在加法指令的cy2(運算有效地址)和cy4(操作數(shù)相加)時需要;減法指令的cy2(運算有效地址)時需要;轉(zhuǎn)移指令的cy2(運算有效地址)時需要;…。因此,“+”操作操縱信號的邏輯表達式如下:"+”=力口法指令?(cy2+cy4)+減法指令?cy2+轉(zhuǎn)移指令?cy2+…設(shè)機器有7位操作碼(OPO?0P6),假設(shè)加法指令的操作碼為0001100,形成的加法指令信號的邏輯表達式為:力口法指令=OPOOP1OP2OP3OP4OP5OP6如,某機器128條指令,用7位操作碼(OPO?OP6),如果其中有16條算術(shù)邏輯運算指令,能夠?qū)⑦@些指令的3位操作碼都設(shè)計相同的編碼,如OPOOP10P2=001,而其他位OP3?OP6編碼表示16個不同的指令。設(shè)命令A(yù)是所有算術(shù)邏輯運算在cy2周期需要產(chǎn)生的,邏輯表達式:人=加法指令?cy2+減法指令?cy2+邏輯加指令?cy2+…=(加法指令?+減法指令+邏輯加指令+…),cy2=OPO?OP1?OP2?cy2只需要一個與門,就可實現(xiàn)命令A(yù)。.微程序操縱器(1)微程序、微指令和微命令在運算機中,一條指令的功能是通過按一定次序執(zhí)行一系列差不多操作完成的,這些差不多操作稱為微操作。例如,前面講到的加法指令,分成四步(取指令、運算地址、取數(shù)、加法運算)完成,每一步實現(xiàn)若干個微操作。實現(xiàn)這些微操作的操縱命令確實是微命令。微操作是指最差不多的、不可再分的操作,如前面提到的:PC-*AB;W/R=0;DB—IR等。PC-*AB等確實是微命令。微指令:在微程序操縱的運算機中,將由同時發(fā)出的操縱信號所執(zhí)行的一組微操作稱為微指令,因此微指令確實是把同時發(fā)出的操縱信號的有關(guān)信息聚攏起來而形成的。將一條指令分成若干條微指令,按次序執(zhí)行這些微指令,就能夠?qū)崿F(xiàn)指令的功能。組成微指令的微操作又稱微命令。微程序:運算機的程序由指令序列構(gòu)成,而運算機每條指令的功能均由微指令序列講明完成,這些微指令序列的集合就叫做微程序。(2)微指令的編碼方式;1)直截了當(dāng)操縱法在微指令的操縱字段中,每一位代表一個微命令,在設(shè)計微指令時,是否發(fā)出某個微命令,只要將操縱字段中相應(yīng)位置成“1”或“0”,如此就可打開或關(guān)閉某個操縱門,這確實是直截了當(dāng)操縱法。2)字段直截了當(dāng)編譯法在運算機中的各個操縱門,在任一微周期內(nèi),不可能同時被打開,而且大部分是關(guān)閉的(相應(yīng)的操縱位為"0”)。所謂微周期,指的是一條微指令所需的執(zhí)行時刻。如果有若干個(一組)微命令,在每次選擇使用它們的微周期內(nèi),只有一個微命令起作用,那么這若干個微命令是互斥的。選出互斥的微命令,并將這些微命令編成一組,成為微指令字的一個字段,用二進制編碼來表示,確實是字段直截了當(dāng)編譯法。3)字段間接編譯法字段間接編譯法是在字段直截了當(dāng)編譯法的基礎(chǔ)上,進一步縮短微指令字長的一種編譯法。如果在字段直截了當(dāng)編譯法中,還規(guī)定一個字段的某些微命令,要兼由另一字段中的某些微命令來講明,稱為字段間接編譯法。(3)微地址的形成方式1)微程序入口地址的形成<1>一級轉(zhuǎn)移方式當(dāng)操作碼的位數(shù)與位置固定時,可直截了當(dāng)使操作碼與入口地址的部分位對應(yīng)。<2>多級轉(zhuǎn)移方式先按照指令類型標(biāo)志轉(zhuǎn)移到某條微指令,以區(qū)分出是哪一大類,然后能夠進一步按指令操作碼轉(zhuǎn)移,區(qū)分出是該指令中的哪一類具體操作。2)微程序后繼地址的形成<1>以增量方式產(chǎn)生后繼微地址。在順序執(zhí)行微指令時,后繼微地址由現(xiàn)行微地址加上一個增量(通常為1)形成的;而在非順序執(zhí)行時則要產(chǎn)生一個轉(zhuǎn)移微地址。<2>增量與下址字段結(jié)合產(chǎn)生后繼微地址將微指令的下址字段分成兩部分:轉(zhuǎn)移操縱字段BCF和轉(zhuǎn)移地址字段BAF,當(dāng)微程序?qū)崿F(xiàn)轉(zhuǎn)移時,將BAF送nPC,否則順序執(zhí)行下一條微指令(uPC+1)。(五)指令流水線.指令流水線的差不多概念(1)流水線差不多原理流水線技術(shù)是一種明顯提升指令執(zhí)行速度與效率的技術(shù)。方法是:指令取指完成后,不等該指令執(zhí)行完畢即可取下一條指令。
如果把一條指令的講明過程進一步細分,例如,把分析、執(zhí)行兩個過程分成取指、譯碼、執(zhí)行、訪存和寫回寄存器五個子過程,并用五個子部件分不處理這五個子過程。如此只需在上一指令的第一子過程處理完畢進入第二子過程處理時,在第一子部件中就開始對第二條指令的第一子過時間 時間單元指令1指令2指令3指令4指令5指令6指令7指令8指令9[1|2|3|4|5|6|7|8|9|10|11|12|13|14|DICOFIDIFIF0CODIFIEIFOCODIFIWO時間單元指令1指令2指令3指令4指令5指令6指令7指令8指令9[1|2|3|4|5|6|7|8|9|10|11|12|13|14|DICOFIDIFIF0CODIFIEIFOCODIFIWOEIFOCODIFIWO旦FOWOEIWOCODIFOCOWOEIWODICODI!FI?CODIEIWOEl?FO|wiWOEIWO程進行處理。隨著時刻推移,這種重疊操作最后可達到五個子部件同時對五條指令的子過程進行操作。指令六級流水時序(2)阻礙流水線性能的因素在流水線中會顯現(xiàn)三種有關(guān),阻礙流水線的暢通流淌,這三種有關(guān)是結(jié)構(gòu)有關(guān)、數(shù)據(jù)有關(guān)和操縱有關(guān)。結(jié)構(gòu)有關(guān)是當(dāng)多條指令進人流水線后,硬件資源滿足不了指令重疊執(zhí)行的要求時產(chǎn)生的。數(shù)據(jù)有關(guān)是指令在流水線中重疊執(zhí)行時,當(dāng)后繼指令需要用到前面指令的執(zhí)行結(jié)果時發(fā)生的。操縱有關(guān)是當(dāng)流水線遇到分支指令和其他改變PC值的指令時引起的。(3)流水線性能流水線的性能通常用吞吐率、加速比和效率3項指標(biāo)來衡量。1)吞吐率在指令流水線中,吞吐率是指單位時刻內(nèi)流水線所完成的指令或輸出結(jié)果的數(shù)量。2)加速比流水線的加速比是指m段流水線的速度與等功能的非流水線的速度之比。3)效率效率是指流水線中個功能段的利用率。.超標(biāo)量和動態(tài)流水線的差不多概念(1)超標(biāo)量在超標(biāo)量的處理器結(jié)構(gòu)中,整數(shù)和浮點數(shù)運算、裝入、儲備以及條件轉(zhuǎn)移等一般操作指令能夠同時啟動并獨立執(zhí)行。超標(biāo)量流水CPU是指集成了多條流水線結(jié)構(gòu)的CPU,當(dāng)流水線滿載時,每個時鐘周期能夠完成一條以上的指令。(2)動態(tài)流水線流水線按功能可分成單功能流水線和多功能流水線兩種。單功能流水線只完成一種功能。如浮點加法或乘法流水線。多功能流水線則可完成多種功能,它承諾在不同時刻,甚至同一時刻內(nèi)在流水線內(nèi)連接不同功能段的子集來實現(xiàn)不同功能。流水線按工作方式可分為靜態(tài)流水線和動態(tài)流水線兩種。在靜態(tài)流水線中,同一時刻內(nèi)它只能以一種功能方式工作。它能夠是單功能的,也能夠是多功能的。當(dāng)是多功能流水線時,則從一種功能方式變?yōu)榱硪环N功能方式時,必須先排空流水線,然后為另一種功能設(shè)置初始條件后方可使用。明顯,不期望這種功能的轉(zhuǎn)換頻繁的發(fā)生,否則將嚴峻阻礙流水線的處理效率。動態(tài)流水線則承諾在同一時刻內(nèi)將不同的功能段連接成不同的功能子集
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電影放映設(shè)備裝配調(diào)試工班組管理水平考核試卷含答案
- 工業(yè)氣體液化工崗前核心能力考核試卷含答案
- 因孩子拉肚子請假條
- 2025年節(jié)能技術(shù)服務(wù)項目發(fā)展計劃
- 2025年潛水及水下救撈裝備合作協(xié)議書
- 信息安全培訓(xùn)課件博客
- 2025 小學(xué)一年級科學(xué)下冊莖干的繁殖方法課件
- 2026年1月20日內(nèi)蒙古國際蒙醫(yī)醫(yī)院面試真題及答案解析(下午卷)
- 2026年智能腕力球項目公司成立分析報告
- 建筑工程公司施工員崗位工作總結(jié)
- 公司兩權(quán)分離管理制度
- 車輛叉車日常檢查記錄表
- 廣東高校畢業(yè)生“三支一扶”計劃招募考試真題2024
- 膠帶機硫化工藝.課件
- 種雞免疫工作總結(jié)
- 河南省商丘市柘城縣2024-2025學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題(含答案)
- 河南省信陽市2024-2025學(xué)年高二上學(xué)期1月期末英語試題(含答案無聽力原文及音頻)
- 給女朋友申請書
- 八下《桃花源記》《小石潭記》全文背誦(原文+譯文)
- 【8地RJ期末】安徽省蕪湖市2024-2025學(xué)年八年級上學(xué)期期末考試地理試卷+
- 智能法理學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評論
0/150
提交評論