計(jì)算機(jī)組成原理考研知識(shí)點(diǎn)非常全_第1頁
計(jì)算機(jī)組成原理考研知識(shí)點(diǎn)非常全_第2頁
計(jì)算機(jī)組成原理考研知識(shí)點(diǎn)非常全_第3頁
計(jì)算機(jī)組成原理考研知識(shí)點(diǎn)非常全_第4頁
計(jì)算機(jī)組成原理考研知識(shí)點(diǎn)非常全_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

承載教育理想傳播文都精神--移碼表示中零也是唯一的真值的移碼和補(bǔ)碼僅差一個(gè)符號(hào)位.假設(shè)將補(bǔ)碼的符號(hào)位由0改為1或從1改為0即可得到真值的移碼乘法運(yùn)算可用移碼和加法來實(shí)現(xiàn),兩個(gè)n位數(shù)相乘,總共要進(jìn)展n次加法運(yùn)算和n次移位運(yùn)算三種機(jī)器數(shù)的特點(diǎn)可以歸納為:·三種機(jī)器數(shù)的最高位均為符號(hào)位.符號(hào)位和數(shù)值位之間可用".〞(對(duì)于小數(shù))或",〞(對(duì)于整數(shù))隔開·當(dāng)真值為正時(shí),原碼,補(bǔ)碼和反碼的表示形式均一樣,即符號(hào)位用"0〞表示,數(shù)值局部與真值局部一樣·當(dāng)真值為負(fù)時(shí),原碼,補(bǔ)碼和反碼的表示形式不同,其它符號(hào)位都用"1〞表示,而數(shù)值局部有這樣的關(guān)系,即補(bǔ)碼是原碼的"求反加1〞,反碼是原碼的"每位求反〞.2.定點(diǎn)數(shù)的運(yùn)算1)定點(diǎn)數(shù)的位移運(yùn)算左移,絕對(duì)值擴(kuò)大;右移,絕對(duì)值縮小.算術(shù)移位規(guī)則符號(hào)位不變碼制添補(bǔ)代碼正數(shù)0負(fù)數(shù)原0補(bǔ)右移添0左移添1反1算術(shù)移位和邏輯移位的區(qū)別:算術(shù)移位:帶符號(hào)數(shù)移位;邏輯移位:無符號(hào)數(shù)移位;2)原碼定點(diǎn)數(shù)的加/減運(yùn)算;對(duì)原碼表示的兩個(gè)操作數(shù)進(jìn)展加減運(yùn)算時(shí),計(jì)算機(jī)的實(shí)際操作是加還是減,不僅取決指令中的操作碼,還取決于兩個(gè)操作數(shù)的符號(hào).而且運(yùn)算結(jié)果的符號(hào)判斷也較復(fù)雜.例如,加法指令指示做(+A)+(-B)由于一操作數(shù)為負(fù),實(shí)際操作是做減法(+A)-(+B),結(jié)果符號(hào)與絕對(duì)值大的符號(hào)一樣.同理,在減法指令中指示做(+A)-(-B)實(shí)際操作做加法(+A)+(+B),結(jié)果與被減數(shù)符號(hào)一樣.由于原碼加減法比擬繁瑣,相應(yīng)地需要由復(fù)雜的硬件邏輯才能實(shí)現(xiàn),因此在計(jì)算機(jī)中很少被采用.3)補(bǔ)碼定點(diǎn)數(shù)的加/減運(yùn)算;(1)加法整數(shù)[A]補(bǔ)+[B]補(bǔ)=[A+B]補(bǔ)(mod2n+1)小數(shù)[A]補(bǔ)+[B]補(bǔ)=[A+B]補(bǔ)(mod2)(2)減法整數(shù)[A]補(bǔ)-[B]補(bǔ)=[A+(-B)]補(bǔ)=[A]補(bǔ)+[-B]補(bǔ)(mod2n+1)小數(shù)[A]補(bǔ)-[B]補(bǔ)=[A+(-B)]補(bǔ)=[A]補(bǔ)+[-B]補(bǔ)(mod2)無需符號(hào)判定,連同符號(hào)位一起相加,符號(hào)位產(chǎn)生的進(jìn)位自然丟掉4)定點(diǎn)數(shù)的乘/除運(yùn)算(1)一位乘法<1>原碼定點(diǎn)一位乘法兩個(gè)原碼數(shù)相乘,其乘積的符號(hào)為相乘兩數(shù)的異或值,數(shù)值兩數(shù)絕對(duì)值之積.設(shè)[*]原=*0*1*2…*n[Y]原=Y0Y1Y2…Yn[*·Y]原=[*]原·[Y]原=(*0⊕Y0)∣(*1*2…*n)·(Y1Y2…Yn)符號(hào)∣表示把符號(hào)位和數(shù)值鄰接起來.原碼兩位乘和原碼一位乘比擬原碼一位乘原碼兩位乘符號(hào)位操作數(shù)絕對(duì)值絕對(duì)值的補(bǔ)碼移位邏輯右移算術(shù)右移移位次數(shù)n最多加法次數(shù)n<2>定點(diǎn)補(bǔ)碼一位乘法有的機(jī)器為方便加減法運(yùn)算,數(shù)據(jù)以補(bǔ)碼形式存放.乘法直接用補(bǔ)碼進(jìn)展,減少轉(zhuǎn)換次數(shù).具體規(guī)則如下:[*·Y]補(bǔ)=[*]補(bǔ)(-Y0+0.Y1Y2…Yn)<3>布斯法"布斯公式〞:在乘數(shù)Yn后添加Yn+1=0.按照Yn+1,Yn相鄰兩位的三種情況,其運(yùn)算規(guī)則如下:(1)Yn+1,Yn=0(Yn+1Yn=00或11),局部積加0,右移1位;(2)Yn+1,Yn=1(Yn+1Yn=10),局部積加[*]補(bǔ),右移1位;(3)Yn+1,Yn=-1(Yn+1Yn=01),局部積加[-*]補(bǔ),右移1位最后一步不移位.(2)兩位乘法<1>原碼兩位乘法,因此實(shí)際操作用Yi-1,Yi,C三位來控制,運(yùn)算規(guī)則如下Yi-1YiC操作000001010011100101110111+0,右移2位0→C+*,右移2位0→C+*,右移2位0→C+2*,右移2位0→C+2*,右移2位0→C-*,右移2位1→C-*,右移2位1→C+0,右移2位1→C<2>補(bǔ)碼兩位乘法根據(jù)前述的布斯算法,將兩步合并成一步,即可推導(dǎo)出補(bǔ)碼兩位乘的公式.Yn-i-1Yn-iYn-i+1[Pi+2]補(bǔ)000001010011100101110111+0,右移2位+[*]補(bǔ),右移2位+[*]補(bǔ),右移2位+2[*]補(bǔ),右移2位-2[*]補(bǔ),右移2位-[*]補(bǔ),右移2位-[*]補(bǔ),右移2位+0,右移2位求局部積的次數(shù)和右移操作的控制問題.當(dāng)乘數(shù)由1位符號(hào)位和以n(奇數(shù))位數(shù)據(jù)位組成時(shí),求局部積的次數(shù)為(1+n)/2,而且最后一次的右移操作只右移一位.假設(shè)數(shù)值位本身為偶數(shù)n,可采用下述兩種方法之一:①可在乘數(shù)的最后一位補(bǔ)一個(gè)0,乘數(shù)的數(shù)據(jù)位就成為奇數(shù),而且其值不變,求局部積的次數(shù)為1+(n+l)/2,即n/2+1,最后一次右移操作也只右移一位.②乘數(shù)增加一位符號(hào)位,使總位數(shù)仍為偶數(shù),此時(shí)求局部積的次數(shù)為n/2+1,而且最后一次不再執(zhí)行右移操作.(3)補(bǔ)碼除法筆算除法和機(jī)器除法的比擬筆算除法機(jī)器除法商符單獨(dú)處理符號(hào)位異或形成心算上商余數(shù)不動(dòng)低位補(bǔ)"0〞減右移一位的除數(shù)余數(shù)左移一位低位補(bǔ)"0〞減除數(shù)2倍字長加法器1倍字長加法器上商位置不固定在存放器最末位上商<1>定點(diǎn)原碼一位除法1>恢復(fù)余數(shù)法被除數(shù)(余數(shù))減去除數(shù),如果為0或者為正值時(shí),上商為1,不恢復(fù)余數(shù);如果結(jié)果為負(fù),上商為0,再將除數(shù)加到余數(shù)中,恢復(fù)余數(shù).余數(shù)左移1位.2>加減交替法當(dāng)余數(shù)為正時(shí),商上1,求下一位商的方法,余數(shù)左移一位,再減去除數(shù);當(dāng)余數(shù)為負(fù)時(shí),商上0,求下一位商的方法,余數(shù)左移一位,再加上除數(shù).<2>定點(diǎn)補(bǔ)碼一位除法(加減交替法)1〉如果被除數(shù)與除數(shù)同號(hào),用被除數(shù)減去除數(shù);假設(shè)兩數(shù)異號(hào),被除數(shù)加上除數(shù).如果所得余數(shù)與除數(shù)同號(hào)商上1,否則,商上0,該商為結(jié)果的符號(hào)位.2〉求商的數(shù)值局部.如果上次商上1,將除數(shù)左移一位后減去除數(shù);如果上次商上0,將余數(shù)左移一位后加除數(shù).然后判斷本次操作后的余數(shù),如果余數(shù)與除數(shù)同號(hào)商上1,如果余數(shù)與除數(shù)異號(hào)商上0.如此重復(fù)執(zhí)行n-1次(設(shè)數(shù)值局部n位).5)溢出概念和判別方法當(dāng)運(yùn)算結(jié)果超出機(jī)器數(shù)所能表示的范圍時(shí),稱為溢出.顯然,兩個(gè)異號(hào)數(shù)相加或兩個(gè)同號(hào)數(shù)相減,其結(jié)果是不會(huì)溢出的.僅當(dāng)兩個(gè)同號(hào)數(shù)相加或者兩個(gè)異號(hào)數(shù)相減時(shí),才有可能發(fā)溢出的情況,一旦溢出,運(yùn)算結(jié)果就不正確了,因此必須將溢出的情況檢查出來.判別方法有三種:1〉當(dāng)符號(hào)一樣的兩數(shù)相加時(shí),如果結(jié)果的符號(hào)與加數(shù)(或被加數(shù))不一樣,則為溢出.2〉當(dāng)任意符號(hào)兩數(shù)相加時(shí),如果C=Cf,運(yùn)算結(jié)果正確,其中C為數(shù)值最高位的進(jìn)位,Cf為符號(hào)位的進(jìn)位.如果C≠Cf,則為溢出,所以溢出條件=C⊕Cf.3〉采用雙符號(hào)fs2fs1.正數(shù)的雙符號(hào)位為00,負(fù)數(shù)的雙符號(hào)位為11.符號(hào)位參與運(yùn)算,當(dāng)結(jié)果的兩個(gè)符號(hào)位甲和乙不一樣時(shí),為溢出.所以溢出條件=fs2⊕fs1,或者溢出條件=fs2fs1+fs2fs1(三)浮點(diǎn)數(shù)的表示和運(yùn)算1.浮點(diǎn)數(shù)的表示1)浮點(diǎn)數(shù)的表示范圍;浮點(diǎn)數(shù)是指小數(shù)點(diǎn)位置可浮動(dòng)的數(shù)據(jù),通常以下式表示:N=M×RE其中,N為浮點(diǎn)數(shù),M(Mantissa)為尾數(shù)(可正可負(fù)),E(E*ponent)為階碼(可正可負(fù)),R(Radi*)稱為"階的基數(shù)(底)〞,而且R為一常數(shù),一般為2,8或16.在一臺(tái)計(jì)算機(jī)中,所有數(shù)據(jù)的R都是一樣的,于是不需要在每個(gè)數(shù)據(jù)中表示出來.因此,浮點(diǎn)數(shù)的機(jī)內(nèi)表示一般采用以下形式:浮點(diǎn)數(shù)的機(jī)內(nèi)表示一般采用以下形式:MsEM1位n+1位m位Ms是尾數(shù)的符號(hào)位,設(shè)置在最高位上.E為階碼(移碼),有n+1位,一般為整數(shù),其中有一位符號(hào)位,設(shè)置在E的最高位上,用來表正階或負(fù)階.M為尾數(shù)(原碼),有m位,由Ms和M組成一個(gè)定點(diǎn)小數(shù).Ms=0,表示正號(hào),Ms=1,表示負(fù).為了保證數(shù)據(jù)精度屬數(shù)通常用規(guī)格化形式表示:當(dāng)R=2,且尾數(shù)值不為0時(shí),其絕對(duì)值大于或等于(0.5)10.對(duì)非規(guī)格化浮點(diǎn)數(shù),通過將尾數(shù)左移或右移,并修改階碼值使之滿足規(guī)格化要求.浮點(diǎn)數(shù)的表示范圍以通式N=M×RE設(shè)浮點(diǎn)數(shù)階碼的數(shù)值位取m位,尾數(shù)的數(shù)值位取n位2)IEEE754標(biāo)準(zhǔn)(InstituteofElectricalandElectronicsEngineers美國電氣和電子工程協(xié)會(huì))S階碼(含階符)尾數(shù)數(shù)符小數(shù)點(diǎn)位置根據(jù)IEEE754國際標(biāo)準(zhǔn),常用的浮點(diǎn)數(shù)有三種格式:符號(hào)位S階碼尾數(shù)總位數(shù)短實(shí)數(shù)182332長實(shí)數(shù)1115264臨時(shí)實(shí)數(shù)1156480單精度格式32位,階碼為8位,尾數(shù)為23位.另有一位符號(hào)位S,處在最高位.由于IEEE754標(biāo)準(zhǔn)約定在小數(shù)點(diǎn)左部有一位隱含位,從而實(shí)際有效位數(shù)為24位.這樣使得尾數(shù)的有效值變?yōu)?.M.例如,最小為*1.0…0,,最大為*1.1…1.規(guī)格化表示.故小數(shù)點(diǎn)左邊的位橫為1,可省去.階碼局部采用移碼表示,移碼值127,1到254經(jīng)移碼為-126到+127.S(1位)E(8位)M(23位)N(共32位)符號(hào)位000符號(hào)位0不等于0(-1)S·2-126·(0.M)為非規(guī)格化數(shù)符號(hào)位1到254之間-(-1)S·2E-127·(1.M)為規(guī)格化數(shù)符號(hào)位255不等于0NaN(非數(shù)值)符號(hào)位2550無窮大0有了準(zhǔn)確的表示,無窮大也明確表示.對(duì)于絕對(duì)值較小的數(shù),可以采用非規(guī)格化數(shù)表示,減少下溢精度損失.非規(guī)格化數(shù)的隱含位是0,不是1.2.浮點(diǎn)數(shù)的加/減運(yùn)算加減法執(zhí)行下述五步完成運(yùn)算:1)"對(duì)階〞操作比擬兩浮點(diǎn)數(shù)階碼的大小,求出其差ΔE,保存其大值E,E=ma*(E*,Ey).當(dāng)ΔE≠0時(shí),將階碼小的尾數(shù)右移ΔE位,并將其階碼加上ΔE,使兩數(shù)的階碼值相等.2)尾數(shù)加減運(yùn)算執(zhí)行對(duì)階之后,兩尾數(shù)進(jìn)展加減操作.3)規(guī)格化操作規(guī)格化的目的是使得尾數(shù)局部的絕對(duì)值盡可能以最大值的形式出現(xiàn).4)舍入在執(zhí)行右規(guī)或者對(duì)階時(shí),尾數(shù)的低位會(huì)被移掉,使數(shù)值的精度受到影響,常用"0〞舍"1〞入法.當(dāng)移掉的局部最高位為1時(shí),在尾數(shù)的末尾加1,如果加1后又使得尾數(shù)溢出,則要再進(jìn)展一次右規(guī).5)檢查階碼是否溢出階碼溢出表示浮點(diǎn)數(shù)溢出.在規(guī)格化和舍入時(shí)都可能發(fā)生溢出,假設(shè)階碼正常,加/減運(yùn)算正常完畢.假設(shè)階碼下溢,則設(shè)置機(jī)器運(yùn)算結(jié)果為機(jī)器零,假設(shè)上溢,則設(shè)置溢出標(biāo)志.定點(diǎn)數(shù)和浮點(diǎn)數(shù)可從如下幾個(gè)方面進(jìn)展比擬①當(dāng)浮點(diǎn)機(jī)和定點(diǎn)機(jī)中的位數(shù)一樣時(shí),浮點(diǎn)數(shù)的表示范圍比定點(diǎn)數(shù)大得多②當(dāng)浮點(diǎn)數(shù)位規(guī)格化數(shù)時(shí),其相對(duì)絕對(duì)遠(yuǎn)比定點(diǎn)數(shù)高③浮點(diǎn)數(shù)運(yùn)算要分階碼局部和尾數(shù)局部,而且運(yùn)算結(jié)果都要求規(guī)格化,故浮點(diǎn)運(yùn)算步驟比定點(diǎn)運(yùn)算的步驟多,運(yùn)算速度比定點(diǎn)運(yùn)算的低,運(yùn)算線路比定點(diǎn)運(yùn)算的復(fù)雜④在溢出的判斷方法上,浮點(diǎn)數(shù)是對(duì)規(guī)格化的階碼進(jìn)展判斷,而定點(diǎn)數(shù)是對(duì)數(shù)值本身進(jìn)展判斷總之,浮點(diǎn)數(shù)在數(shù)的表示范圍,數(shù)的精度,溢出處理和程序編程方面(不取比例因子)均優(yōu)于定點(diǎn)數(shù).但在運(yùn)算規(guī)則即硬件本錢方面又不如定點(diǎn)數(shù)(四)算術(shù)邏輯單元ALU串行加法器和并行加法器1)串行進(jìn)位加法器并行加法器可以同時(shí)對(duì)數(shù)據(jù)的各位進(jìn)展相加,一般用n個(gè)全加器來實(shí)現(xiàn)2個(gè)操作數(shù)的各位同時(shí)向加.其操作數(shù)的各位是同時(shí)提供的,由于進(jìn)位是逐位形成,低位運(yùn)算所產(chǎn)生的進(jìn)位會(huì)影響高位的運(yùn)算結(jié)果.串行進(jìn)位(也稱波形進(jìn)位)加法器,邏輯電路比擬簡單,但是最高位的加法運(yùn)算,一定要等到所有低位的加法完成之后才能進(jìn)展,低位的進(jìn)位要逐步的傳遞到高位,逐級(jí)產(chǎn)生進(jìn)位,因此運(yùn)算速度比擬慢.2)并行進(jìn)位加法器為了提高運(yùn)算速度,減少延遲時(shí)間,可以采用并行進(jìn)位法,也叫提前進(jìn)位或先行進(jìn)位.全加器中,輸入Ai,Bi,Ci-1,輸出:Si=AiBiCi-1+AiBiCi-1+AiBiCi-1+AiBiCi-1Ci=AiBiCi-1+AiBiCi-1+AiBiCi-1+AiBiCi-1=AiBi+(Ai+Bi)Ci-1進(jìn)位產(chǎn)生函數(shù):Gi=AiBi進(jìn)位傳遞函數(shù):Pi=Ai+BiCi=Gi+PiCi-1C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0并行進(jìn)位加法器的運(yùn)算速度很快,形成最高進(jìn)位輸出的延遲時(shí)間很短,但是以增加硬件邏輯線路為代價(jià).對(duì)于長字長的加法器,往往將加法器分成假設(shè)干組,在組內(nèi)采用并行進(jìn)位,組間則采用串行進(jìn)位或并行進(jìn)位,由此形成多種進(jìn)位構(gòu)造.(1)單級(jí)先行進(jìn)位單級(jí)先行進(jìn)位方式將n位字長分為假設(shè)干組,每組內(nèi)采用并行進(jìn)位方式,組與組之間冊(cè)采用串行進(jìn)位方式.(2)多級(jí)先行進(jìn)位多級(jí)先行進(jìn)位在組內(nèi)和組間都采用先行進(jìn)位方式.16位單級(jí)先行進(jìn)位加法器2.算術(shù)邏輯單元ALU的功能和機(jī)構(gòu)ALU部件是運(yùn)算器中的主要組成局部,又稱多功能函數(shù)發(fā)生器,主要用于完成各種算術(shù)運(yùn)算和邏輯運(yùn)算.ALU的算術(shù)運(yùn)算部件包含加法器,減法器,乘法器,除法器,增量器(+1),減量器(-1),BCD碼運(yùn)算器等組件.ALU的主要工作是根據(jù)CPU指令要求執(zhí)行各種指定運(yùn)算,如加法,減法,乘法,除法,比擬,邏輯移位等操作.通用存放器組是一組存取速度最快的存儲(chǔ)器,用于保存參加運(yùn)算的操作數(shù)和中間結(jié)果.存放器無需高速緩存,也不需要運(yùn)行總線周期,因此指令的執(zhí)行速度很快.幾乎所有的指令都要將存放器指定為一個(gè)操作數(shù),有些指令還要求將操作數(shù)存放在專用的存放器中.專用存放器通常用于表示CPU所處于*種系統(tǒng)狀態(tài),ALU中有兩個(gè)重要的狀態(tài)存放器:指令指針存放器IP(即程序計(jì)數(shù)器PC)和標(biāo)志存放器FLAGS.三,存儲(chǔ)器層次機(jī)構(gòu)(一)存儲(chǔ)器的分類-.z.提高存儲(chǔ)器帶寬eq\o\ac(○,1)縮短儲(chǔ)存周期eq\o\ac(○,2)增加存儲(chǔ)字長,使每個(gè)周期可讀/寫更多的二進(jìn)制數(shù)eq\o\ac(○,3)增加存儲(chǔ)體內(nèi)存地址線n,數(shù)據(jù)線數(shù)k芯片的容量為2k×k位20位的地址可以1MB的存儲(chǔ)空間,32位的地址可以4GB的內(nèi)存空間,64位可以1800萬TB-.z.靜態(tài)RAM和動(dòng)態(tài)RAM之間的比擬。目前,動(dòng)態(tài)RAM的應(yīng)用比靜態(tài)RAM要廣泛的多:同樣大小的芯片中,動(dòng)態(tài)的RAM的集成度遠(yuǎn)高于靜態(tài)RAM,DRAM的根本單元電路為一個(gè)MOS管,SRAM的根本單元電路可為4~6個(gè)MOS管DRAM行、列按先后順序輸送,減少了芯片引腳,封裝尺寸也減少DRAM的功耗比SRAM小DRAM的價(jià)格比SRAM的價(jià)格廉價(jià)DRAM也有缺點(diǎn)由于使用動(dòng)態(tài)元件(電容),因此它的速度比SRAM低DRAM需再生,需配置再生電路,也消耗一局部功率.通常容量不大的Cache大多用SRAM實(shí)現(xiàn)存儲(chǔ)器與CPU連接比照工程SRAMDRAM儲(chǔ)存信息觸發(fā)器電容破壞性讀出非是需要刷新非是行列地址同時(shí)送分兩次運(yùn)行速度快慢集成度低高發(fā)熱量大小存儲(chǔ)本錢高低(二)存儲(chǔ)器的層次化構(gòu)造存儲(chǔ)器有3個(gè)重要的指標(biāo):速度,容量和每位價(jià)格,一般來說,速度越快,位價(jià)越高;容量越大,位價(jià)越低,容量大,速度就越低.上述三者的關(guān)系用以下圖表示:存儲(chǔ)系統(tǒng)層次構(gòu)造主要表達(dá)在緩存-主存-輔存這兩個(gè)存儲(chǔ)層次上,如以下圖所示:緩存-主存層次主要解決CPU和主存速度不匹配的問題主存-輔存層次主要解決存儲(chǔ)系統(tǒng)的容量問題從CPU角度來看緩存-主存層次的速度接近于緩存,高于主存;其容量和價(jià)位卻接近于主存,這就從速度和本錢的矛盾中獲得了理想的解決方法.主存-輔存層次從整體分析,其速度接近于主存,容量接近于輔存,平均價(jià)位也接近于低速的、廉價(jià)的存儲(chǔ)價(jià)位,這又解決了速度、容量、本錢這三者之間的矛盾.現(xiàn)代計(jì)算機(jī)系統(tǒng)幾乎都具有這兩個(gè)存儲(chǔ)層次,構(gòu)成了緩存、主存、輔存三級(jí)存儲(chǔ)系統(tǒng).(三)半導(dǎo)體隨機(jī)存取存儲(chǔ)器1.SRAM存儲(chǔ)器的工作原理SRAM靜態(tài)存儲(chǔ)單元的每個(gè)存儲(chǔ)位需要四到六個(gè)晶體管組成.比擬典型的是六管存儲(chǔ)單元,即一個(gè)存儲(chǔ)單元存儲(chǔ)一位信息"0"或"1".靜態(tài)存儲(chǔ)單元保存的信息比擬穩(wěn)定,信息為非破壞性讀出,故不需要重寫或者刷新操作;另一方面,其構(gòu)造簡單,可靠性高,速度較快,但其占用元件較多,占硅片面積大,且功耗大,所以集成度不高.靜態(tài)隨機(jī)存儲(chǔ)單元2.DRAM存儲(chǔ)器的工作原理常見的DRAM存儲(chǔ)單元有三管式和單管式兩種,它們的共特點(diǎn)是靠電容存儲(chǔ)電荷的原理來存放信息.假設(shè)電容上存有足夠的電荷表示"〞,電容上無電荷表示"0".電容上的電荷一般只能維持1-2ms,因此即使電源不掉電,電容上的電荷會(huì)自動(dòng)消失.因此,為保證信息的不喪失,必須在2ms之內(nèi)就要對(duì)存儲(chǔ)單元進(jìn)展一次恢復(fù)操作,這個(gè)過程稱為再生或者刷新.與SRAM相比,DRAM具有集成度更高,功耗低等特點(diǎn),目前被各類計(jì)算機(jī)廣泛使用.(四)只讀存儲(chǔ)器前面介紹的DRAM和SRAM均為可任意讀/寫的隨機(jī)存儲(chǔ)器,當(dāng)?shù)綦姇r(shí),所存儲(chǔ)的內(nèi)容消失,所以是易失性存儲(chǔ)器.只讀存儲(chǔ)器,即使停電,存儲(chǔ)內(nèi)容也不喪失.根據(jù)半導(dǎo)體制造工藝不同,分為ROM,PROM,EPROM,E2ROM和FlashMemory1.只讀存儲(chǔ)器(ROM)掩模式ROM由芯片制造商在制造時(shí)寫入內(nèi)容,以后只能讀而不能再寫入.其根本存儲(chǔ)原理是以元件的"有/無〞來表示該存儲(chǔ)單元的信息("1〞或"0〞),可以用二極管或晶體管作為元件,顯而易見,其存儲(chǔ)內(nèi)容是不會(huì)改變的.2.可編程序的只讀存儲(chǔ)器(PROM)PROM可由用戶根據(jù)自己的需要來確定ROM中的內(nèi)容,常見的熔絲式PROM是以熔絲的通和斷開來表示所存的信息為"1〞或"0〞.剛出廠的產(chǎn)品,其熔絲是全部接通的.根據(jù)需要斷開*些單元的熔絲(寫入).顯而易見,斷開后的熔絲是不能再接通了,因而一次性寫入的存儲(chǔ)器.掉電后不會(huì)影響其所存儲(chǔ)的內(nèi)容.3.可擦可編程序的只讀存儲(chǔ)器(EPROM)為了能修改ROM中的內(nèi)容,出現(xiàn)了EPROM.利用浮動(dòng)?xùn)臡OS電路保存信息,信息改寫用紫外線照射即可擦除.4.可電擦可編程序只讀存儲(chǔ)器(E2PROM)E2PROM的編程序原理與EPROM一樣,擦除原理完全不同,重復(fù)改寫次數(shù)有限制(因氧化層被磨損),一般10萬次.其讀寫操作可按每個(gè)位或每個(gè)字節(jié)進(jìn)展,類似SRAM,但每字節(jié)的寫入周期要幾毫秒,比SRAM長得多.E2PROM每個(gè)存儲(chǔ)單元采則2個(gè)晶體管.其柵極氧化層比EPROM薄,因此具有電擦除功能.5.快除讀寫存儲(chǔ)器(FlashMemory)F1ashMemory是在EPROM與E2PROM根底上開展起來的,其讀寫過程和E2PROM不同,F1ashMemory的讀寫操作一般是以塊為單位.(五)主存儲(chǔ)器與CPU的連接1個(gè)存儲(chǔ)器的芯片的容量是有限的,它在字?jǐn)?shù)或字長方面與實(shí)際存儲(chǔ)器的要求都有很大差距,所以需要在字向和位向進(jìn)展擴(kuò)大才能滿足需要.根據(jù)存儲(chǔ)器所需的存儲(chǔ)容量和所提供的芯片的實(shí)際容量,可以計(jì)算出總的芯片數(shù).一個(gè)存儲(chǔ)器的容量為M×N位,假設(shè)使用L×K位存儲(chǔ)器芯片,則,這個(gè)存儲(chǔ)器共需要M/L×N/K存儲(chǔ)器芯片.1.位擴(kuò)展位擴(kuò)展指的是用多個(gè)存儲(chǔ)器器件對(duì)字長進(jìn)展擴(kuò)大.位擴(kuò)展的連接方式是將多片存儲(chǔ)器的地址,片選己,讀寫控制端R/W可相應(yīng)并聯(lián),數(shù)據(jù)端分別引出.2)字?jǐn)U展字?jǐn)U展指的是增加存儲(chǔ)器中字的數(shù)量.靜態(tài)存儲(chǔ)器進(jìn)展字?jǐn)U展時(shí),將各芯片的地址線,數(shù)據(jù)線,讀寫控制線相應(yīng)并聯(lián),而由片選信號(hào)來區(qū)分各芯片的地址范圍.3)字位擴(kuò)展實(shí)際存儲(chǔ)器往往需要字向和位向同時(shí)擴(kuò)大.(六)雙口RAM和多模塊存儲(chǔ)器1.雙端口存儲(chǔ)器雙端口存儲(chǔ)器是一種具有兩個(gè)單獨(dú)的讀/寫端口及控制電路的存儲(chǔ)器,通過增加一個(gè)讀/寫端口,雙端口存儲(chǔ)器擴(kuò)展了存儲(chǔ)器的的信息交換能力.2.多模塊存儲(chǔ)器為了解決CPU與主存儲(chǔ)器之間的速度匹配問題,在高速存儲(chǔ)器中,普遍采用并行主存系統(tǒng).即利用類似存儲(chǔ)器擴(kuò)展(位擴(kuò)展,字?jǐn)U展,字位擴(kuò)展)的方法,將n個(gè)字長為W位的存儲(chǔ)器并行連接,構(gòu)建一個(gè)更大的存儲(chǔ)器.并行主存有單體多字方式,多體并行方式和多體穿插方式.(七)高速緩沖存儲(chǔ)器(Cache實(shí)際上,這是來自法文的一個(gè)單詞,意思是隱蔽之所或藏東西的地方)概述1.問題的提出防止CPU"空等〞現(xiàn)象CPU和主存(DRAM)的速度差異1.程序的局部性從大量的統(tǒng)計(jì)中得到的一個(gè)規(guī)律是,程序中對(duì)于存儲(chǔ)空間90%的局限于存儲(chǔ)空間的10%的區(qū)域中,而另外10%的則分布在存儲(chǔ)空間的其余90%的區(qū)域中.這就是通常說的局部性原理.訪存的局部性規(guī)律包括兩個(gè)方面:時(shí)間局部性:如果一個(gè)存儲(chǔ)項(xiàng)被,則可能該項(xiàng)會(huì)很快被再次.空間局部性:如果一個(gè)存儲(chǔ)項(xiàng)被,則該項(xiàng)及其鄰近的項(xiàng)也可能很快被.2.Cache的根本工作原理Cache通常由兩局部組成,塊表和快速存儲(chǔ)器.其工作原理是:處理機(jī)按主存地址存儲(chǔ)器,存儲(chǔ)器地址的高段通過主存-Cache地址映象機(jī)構(gòu)借助查表判定該地址的存儲(chǔ)單元是否在Cache中,如果在,則Cache命中,按Cache地址Cache.否則,Cache不命中,則需要主存,并從主存中調(diào)入相應(yīng)數(shù)據(jù)塊到Cache中,假設(shè)Cache中已寫滿,則要按*種算法將Cache中的*一塊替換出去,并修改有關(guān)的地址映象關(guān)系.從這個(gè)工作原理我們可以看出,它已經(jīng)涉及到了兩個(gè)問題.首先是定位,然后是替換的問題.Cache的存在對(duì)程序員是透明的.其地址變換和數(shù)據(jù)塊的替換算法均由硬件實(shí)現(xiàn).通常Cache被集成到CPU內(nèi)以提高速度.3.Cache和主存之間的映射方式因?yàn)樘幚頇C(jī)都是按主存地址的,而Cache的空間遠(yuǎn)小于主存,如何知道這一次的內(nèi)容是不是在Cache中,在Cache中的哪一個(gè)位置呢"這就需要地址映象,即把主存中的地址映射成Cache中的地址.讓Cache中一個(gè)存儲(chǔ)塊(空間)與主存中假設(shè)干塊相對(duì)應(yīng),如此,一個(gè)主存地址時(shí),就可以對(duì)應(yīng)地知道在cache中哪一個(gè)地址了.地址映象的方法有三種:直接映象,全相聯(lián)映象和組相聯(lián)映象.直接映象就是將主存地址映象到Cache中的一個(gè)指定地址.任何時(shí)候,主存中存儲(chǔ)單元的數(shù)據(jù)只能調(diào)入到Cache中的一個(gè)位置,這是固定的,假設(shè)這個(gè)位置已有數(shù)據(jù),則產(chǎn)生沖突,原來的塊將無條件地被替換出去.全相聯(lián)映象就是任何主存地址可映象到任何Cache地址的方式.在這種方式下,主存中存儲(chǔ)單元的數(shù)據(jù)可調(diào)入到Cache中的任意位置.只有在Cache中的塊全部裝滿后才會(huì)出現(xiàn)塊沖突.組相聯(lián)映象指的是將存儲(chǔ)空間的頁面分成假設(shè)干組,各組之間的直接映象,而組內(nèi)各塊之間則是全相聯(lián)映象.4.Cache中主存塊的替換算法在直接映象方式下,不存在塊替換的算法,因?yàn)槊恳粔K的位置映象是固定的,需要哪一塊數(shù)據(jù)就可直接確定地將該塊數(shù)據(jù)調(diào)入上層確定位置.而其他兩種映象就存在替換策略的問題,就是要選擇替換到哪一個(gè)Cache塊.即替換算法.思想優(yōu)點(diǎn)缺點(diǎn)隨機(jī)算法RAND用軟的或硬的隨機(jī)數(shù)產(chǎn)生器產(chǎn)生上層中要被替換的頁號(hào)簡單,易于實(shí)現(xiàn)沒有利用上層存儲(chǔ)器使用的"歷史信息",沒有反映等程序局部性,命中率低.先進(jìn)先出FIFO選擇最早裝入上層的頁作為被替換的頁實(shí)現(xiàn)方便,利用了主存歷史的信息不能正確反映程序局部性原理,命中率不高,可能出現(xiàn)一種異?,F(xiàn)象.近期最少使用法LRU選擇近期最少的頁作為被替換的頁比擬正確反映程序局部性,利用訪存的歷史信息,命中率較高實(shí)現(xiàn)較復(fù)雜優(yōu)化替換算法OPT將未來近期不用的頁換出去命中率最高,可作為衡量其他替換算法的標(biāo)準(zhǔn)不現(xiàn)實(shí),只是一種理想算法5.Cache寫策略對(duì)Cache的寫操作,情況比讀操作要復(fù)雜一些.由于寫入Cache時(shí),并沒有寫入主存,因此就出現(xiàn)Cache和主存數(shù)據(jù)不一致的情況.如何處理Cache和主存不一致的方法就稱為更新策略.更新策略思想優(yōu)點(diǎn)缺點(diǎn)寫回法是指在CPU執(zhí)行寫操作時(shí),信息只寫入Cache中,僅當(dāng)需要替換時(shí),才將改寫過的Cache塊先送回主存(寫回),然后再調(diào)塊(設(shè)置dirty位)有利于省去許多將中間結(jié)果寫入主存的無謂開銷.需設(shè)修改位增加Cache的復(fù)雜性全寫法(寫直達(dá)法)在寫操作時(shí),將數(shù)據(jù)同時(shí)寫入Cache和主存實(shí)現(xiàn)開銷小,簡單為了寫中間結(jié)果浪費(fèi)了不少時(shí)間另外,當(dāng)寫不命中時(shí)(也就是寫Cache塊時(shí),這塊早被人替換出去而在Cache中找不到時(shí))是不是要把這塊再取回Cache中,有兩個(gè)解決方法:不按寫分配法,就是直接寫到主存里,不再把該地址對(duì)應(yīng)的塊調(diào)回Cache中.按寫分配法,就是寫到主存,而且把這一塊從主存中調(diào)入到Cache.一般寫回法用按寫分配法,全寫法則采用不按寫分配.(八)虛擬存儲(chǔ)器1.虛擬存儲(chǔ)器的根本概念虛擬存儲(chǔ)器是主存的擴(kuò)展,虛擬存儲(chǔ)器的空間大小取決于計(jì)算機(jī)的訪存能力而不是實(shí)際外存的大小,實(shí)際存儲(chǔ)空間可以小于虛擬地址空間.從程序員的角度看,外存被看作邏輯存儲(chǔ)空間,的地址是一個(gè)邏輯地址(虛地址),虛擬存儲(chǔ)器使存儲(chǔ)系統(tǒng)既具有相當(dāng)于外存的容量又有接近于主存的速度.虛擬存儲(chǔ)器的也涉及到虛地址與實(shí)地址的映象,替換算法等,這與Cache中的類似,前面我們講的地址映象以塊為單位,而在虛擬存儲(chǔ)器中,地址映象以頁為單位.設(shè)計(jì)虛擬存儲(chǔ)系統(tǒng)需考慮的指標(biāo)是主存空間利用率和主存的命中率.虛擬存儲(chǔ)器與Cache存儲(chǔ)器的管理方法有許多一樣之處,它們都需要地址映象表和地址變換機(jī)構(gòu).但是二者也是不同的.虛擬存儲(chǔ)器的三種不同管理方式:按存儲(chǔ)映象算法,分為段式,頁式和段頁式等,這些管理方式的根本原理是類似的.2.頁式虛擬存儲(chǔ)器頁式管理:是把虛擬存儲(chǔ)空間和實(shí)際空間等分成固定大小的頁,各虛擬頁可裝入主存中的不同實(shí)際頁面位置.頁式存儲(chǔ)中,處理機(jī)邏輯地址由虛頁號(hào)和頁內(nèi)地址兩局部組成,實(shí)際地址也分為頁號(hào)和頁內(nèi)地址兩局部,由地址映象機(jī)構(gòu)將虛頁號(hào)轉(zhuǎn)換成主存的實(shí)際頁號(hào).頁式管理用一個(gè)頁表,包括頁號(hào),每頁在主存中起始位置,裝入位等.頁表是虛擬頁號(hào)與物理頁號(hào)的映射表.頁式管理由操作系統(tǒng)進(jìn)展,對(duì)應(yīng)用程序員的透明的.3.段式虛擬存儲(chǔ)器段式管理:把主存按段分配的存儲(chǔ)管理方式.它是一種模塊化的存儲(chǔ)管理方式,每個(gè)用戶程序模塊可分到一個(gè)段,該程序模塊只能分配給該模塊的段所對(duì)應(yīng)的主存空間.段長可以任意設(shè)定,并可放大和縮小.系統(tǒng)中通過一個(gè)段表指明各段在主存中的位置.段表中包括段名(段號(hào)),段起點(diǎn),裝入位和段長等.段表本身也是一個(gè)段.段一般是按程序模塊分的.4.段頁式虛擬存儲(chǔ)器段頁式管理:是上述兩種方法的結(jié)合,它將存儲(chǔ)空間按邏輯模塊分成段,每段又分成假設(shè)干個(gè)頁,訪存通過一個(gè)段表和假設(shè)干個(gè)頁表進(jìn)展.段的長度必須是頁長的整數(shù)倍,段的起點(diǎn)必須是*一頁的起點(diǎn).5.TLB(快表)在虛擬存儲(chǔ)器中進(jìn)展地址變換時(shí),需要虛頁號(hào)變換成主存中實(shí)頁號(hào)的內(nèi)部地址變換,這一般通過查內(nèi)頁表實(shí)現(xiàn).當(dāng)表中該頁對(duì)應(yīng)的裝入位為真時(shí),表示該頁在主存中,可按主存地址問主存;如果裝入位為假時(shí),表示該頁不在存儲(chǔ)器中,就產(chǎn)生頁失效中斷,需從外存調(diào)入頁.中斷處理時(shí)先通過外部地址變換,一般通過查外頁表,將虛地址變換為外存中的實(shí)際地址,到外存中去選頁,然后通過I/0通道調(diào)入內(nèi)存.當(dāng)外存頁面調(diào)入主存中時(shí)還存在一個(gè)頁面替換略的問題.提高頁表的速度是提高地址變換速度的關(guān)鍵.因?yàn)?每次訪存都要讀頁表,如果頁存放在主存中,就意味著訪存時(shí)間至少是兩次主存的時(shí)間,這樣查表的代價(jià)大大.只有內(nèi)部地址變換速度提高到使主存的速度接近于不采用虛擬存儲(chǔ)器時(shí)的訪主存速度時(shí),虛擬存儲(chǔ)器才能實(shí)用.根據(jù)訪存的局部性,表內(nèi)各項(xiàng)的使用的概率不是均勻分布的.在一段時(shí)間內(nèi),可能只用表中的很少幾項(xiàng),因此應(yīng)重點(diǎn)提高使用概率高的這局部頁表的速度,可用快速硬件構(gòu)成全表小得多的局部表格,而將整個(gè)表格放在主存中,這就引出了快表和慢表的概念和技術(shù).這樣,虛地址到實(shí)地址的變換方法如后圖所示.查表時(shí),根據(jù)虛頁表同時(shí)查找快表和慢表,當(dāng)在快表中查到該虛頁號(hào)時(shí),就能很快找到對(duì)應(yīng)的實(shí)頁號(hào),將其送入主存實(shí)地址存放器,同時(shí)使慢表的查找作廢,這時(shí)主存的速度沒降低多少.如果在快表中查不到,則經(jīng)過一個(gè)訪主存的時(shí)間延遲后,將從慢表中查到的實(shí)頁送入實(shí)地址存放器,同時(shí)將此虛頁號(hào)和對(duì)應(yīng)的實(shí)頁號(hào)送入快表,這里也涉及到用一個(gè)替換算法從快表中替換出一行.快表的存在對(duì)所有的程序員都是透明的.軟磁盤存儲(chǔ)器硬盤軟盤速度高低磁頭固定、活動(dòng)、浮動(dòng)活動(dòng)、接觸盤片盤片固定盤、盤組大局部不可換可換盤片價(jià)格高低環(huán)境苛刻四,指令系統(tǒng)人們習(xí)慣把每一條機(jī)器語言的語句稱為機(jī)器指令,而又將全部機(jī)器指令的集合稱為機(jī)器的指令系統(tǒng)指令的執(zhí)行過程讀取指令指令地址(在PC中)送到地址存放器讀主存,讀出內(nèi)容(指令代碼)送入指令存放器IR分析指令形成下一條指令的地址并送到PC中執(zhí)行指令用一到幾個(gè)執(zhí)行步驟,完成指令的運(yùn)算、操作功能,不同的指令操作步驟和具體運(yùn)算、操作功能各不一樣減產(chǎn)有無中斷請(qǐng)求無中斷請(qǐng)求、進(jìn)入下一條指令的執(zhí)行過程(一)指令格式1.指令的根本格式計(jì)算機(jī)是通過執(zhí)行指令來處理各種數(shù)據(jù)的.為了指出數(shù)據(jù)的來源,操作結(jié)果的去向及所執(zhí)行的操作,一條指令必須包含以下信息:(1)操作碼,具體說明了操作的性質(zhì)及功能.(2)操作數(shù)的地址.(3)操作結(jié)果的存儲(chǔ)地址.(4)下一條指令的地址.從上述分析可知,一條指令實(shí)際上包括兩種信息即操作碼和地址碼.操作碼(operationcode)用來表示該指令所要完成的操作(如加,減,乘,除,數(shù)據(jù)傳送等),其長度取決于指令系統(tǒng)中的指令條數(shù).如操作碼占7位,則該機(jī)器最多包含27=128條指令.地址碼用來描述該指令的操作對(duì)象,或直接給出操作數(shù)或指出操作數(shù)的存儲(chǔ)器地址或存放器地址(即存放器名).操作碼的長度不固定會(huì)增加指令譯碼和分析難度,使控制器的設(shè)計(jì)復(fù)雜.操作碼尋址地址形式地址A形式地址指令字中的地址有效地址操作數(shù)的真實(shí)地址約定指令字長=存儲(chǔ)字長=機(jī)器字長2.定長操作碼指令格式1)零地址指令OP格式:OP——操作碼指令中只有操作碼,而沒有操作數(shù)或沒有操作數(shù)地址.這種指令有兩種可能:(1)無需任何操作數(shù),如空操作指令,停機(jī)指令等.(2)所需的操作數(shù)是默認(rèn)的.如堆棧構(gòu)造計(jì)算機(jī)的運(yùn)算指令,所需的操作數(shù)默認(rèn)在堆棧中,由堆棧指針SP隱含指出,操作結(jié)果仍然放回堆棧中.又如Intel8086的字符串處理指令,源,目的操作數(shù)分別默認(rèn)在源變址存放器SI和目的變址存放器DI所指定的存儲(chǔ)器單元中.2)一地址指令格式:OP——操作碼A——操作數(shù)的存儲(chǔ)器地址或存放器名指令中只給出一個(gè)地址,該地址既是操作數(shù)的地址,又是操作結(jié)果的存儲(chǔ)地址.如加1,減1和移位等單操作數(shù)指令均采用這種格式,對(duì)這一地址所指定的操作數(shù)執(zhí)行相應(yīng)的操作后,產(chǎn)生的結(jié)果又存回該地址中.在*些字長較短的微型機(jī)中(如早期的Z80,Intel8080,MC6800等),大多數(shù)算術(shù)邏輯指令也采用這種格式,第一個(gè)源操作數(shù)由地址碼A給出,第二個(gè)源操作數(shù)在一個(gè)默認(rèn)的存放器中,運(yùn)算結(jié)果仍送回到這個(gè)存放器中,替換了原存放器內(nèi)容,通常把這個(gè)存放器稱累加器.3)二地址指令格式:OP——操作碼A1——第一個(gè)源操作數(shù)的存儲(chǔ)器地址或存放器地址.A2——第二個(gè)源操作數(shù)和存放操作結(jié)果的存儲(chǔ)器地址或存放器地址.這是最常見的指令格式,兩個(gè)地址指出兩個(gè)源操作數(shù)地址,其中一個(gè)還是存放結(jié)果的目的地址.對(duì)兩個(gè)源操作數(shù)進(jìn)展操作碼所規(guī)定的操作后,將結(jié)果存入目的地址,在本例中即為A2指定的地址4)三地址指令格式:OP——操作碼A1——第一個(gè)源操作數(shù)的存儲(chǔ)器地址或存放器地址A2——第二個(gè)源操作數(shù)的存儲(chǔ)器地址或存放器地址A3——操作結(jié)果的存儲(chǔ)器地址或存放器地址其操作是對(duì)A1,A2指出的兩個(gè)源操作數(shù)進(jìn)展操作碼(OP)所指定的操作,結(jié)果存入A3中.6)多地址指令在*些性能較好的大,中型機(jī)甚至高檔小型機(jī)中,往往設(shè)置一些功能很強(qiáng)的,用于處理成批數(shù)據(jù)的指令,如字符串處理指令,向量,矩陣運(yùn)算指令等.3.擴(kuò)展操作碼指令格式OP(4)A1(4)A2(4)A3(4)4位根本操作碼有16個(gè)碼點(diǎn)(即有16種組合),假設(shè)全部用于表示三地址指令,則只有16條.但,假設(shè)三地址指令僅需15條,兩地址指令需15條,一地址指令需15條,零地址指令需16條,共61條指令,應(yīng)如何安排操作碼?顯然,只有4位根本操作碼是不夠的,必須將操作碼的長度向地址碼字段擴(kuò)展才行.一種可供擴(kuò)展的方法和步驟如下:(1)15條三地址指令的操作碼由4位根本操作碼從0000~1110給出,剩下一個(gè)碼點(diǎn)1111用于把操作碼擴(kuò)展到A1,即4位擴(kuò)展到8位;(2)15條二地址指令的操作碼由8位操作碼從11110000~11111110給出,剩下一個(gè)碼點(diǎn)11111111用于把操作碼擴(kuò)展到A2,即從8位擴(kuò)展到12位;(3)15條一地址指令的操作碼由12位操作碼從~給出,剩下的一個(gè)碼點(diǎn)用于把操作碼擴(kuò)展到A3,即從12位擴(kuò)展到16位;Pentium處理器的數(shù)據(jù)類型有邏輯數(shù)、有符號(hào)數(shù)(補(bǔ)碼)、無符號(hào)數(shù)、壓縮和未壓縮的BCD碼、地址指針、位串以及浮點(diǎn)數(shù)(符合IEEE754標(biāo)準(zhǔn))等指令操作類型1.數(shù)據(jù)傳送數(shù)據(jù)傳送包括存放器與存放器,存放器與存儲(chǔ)單元,存儲(chǔ)單元與存儲(chǔ)單元之間的傳送2.算術(shù)邏輯操作這操作可實(shí)現(xiàn)算術(shù)運(yùn)算(加,減,乘,除,增1,減1,取負(fù)即求補(bǔ))邏輯運(yùn)算(與,或,非,異或)3.移位移位可分為算術(shù)移位,邏輯移位和循環(huán)移位三種4.轉(zhuǎn)移無條件轉(zhuǎn)移不受任何約束條件直接把程序轉(zhuǎn)移到下一條需執(zhí)行指令的地址條件轉(zhuǎn)移根據(jù)當(dāng)前指令的執(zhí)行結(jié)果斷定是否需要轉(zhuǎn)移調(diào)用與返回子程序可在多處被調(diào)用子程序調(diào)用可出現(xiàn)在子程序中,即允許子程序嵌套每個(gè)CALL指令都對(duì)應(yīng)一條RETURN指令CPU必須記住返回地址,使子程序能準(zhǔn)確返回,返回地址存放在以下3處存放器內(nèi).機(jī)器內(nèi)設(shè)有專用存放器,專用于存放返回地址子程序的入口地址內(nèi)棧頂內(nèi).現(xiàn)代計(jì)算機(jī)都設(shè)有堆棧,執(zhí)行RETURN指令后,便可自動(dòng)從堆棧內(nèi)取出應(yīng)返回的地址陷阱(Trap)與陷阱指令其實(shí)是一種意外事故的中斷,一般不提供應(yīng)用戶使用,作為隱指令,再出現(xiàn)故障時(shí),由CPU自動(dòng)產(chǎn)生并執(zhí)行5.輸入輸出對(duì)于I/O單獨(dú)編址的計(jì)算機(jī)而言,通常設(shè)有輸入輸出指令,他完成從外設(shè)中的存放器讀入一個(gè)數(shù)據(jù)到CPU存放器內(nèi),或?qū)?shù)據(jù)從CPU的存放器輸出至*外設(shè)的存放器中6.其它包括等待指令、停機(jī)指令、空操作指令、開中斷指令、關(guān)中斷指令、置條件碼指令等備注有些大型或巨型機(jī)還設(shè)有向量指令,可對(duì)整個(gè)向量或矩陣進(jìn)展求和求積運(yùn)算(二)指令的尋址方式1.有效地址的概念操作數(shù)的真實(shí)地址稱為有效地址,記做EA,它是尋址方式和形式地址共同來決定的.2.數(shù)據(jù)尋址和指令尋址尋址方式是指確定本條指令的數(shù)據(jù)地址以及下一條將要執(zhí)行的指令的地址,與硬件構(gòu)造密切相關(guān),尋址方式分為指令尋址和數(shù)據(jù)尋址兩大類指令尋址分為順序?qū)ぶ泛吞S尋址兩種.順序?qū)ぶ房梢酝ㄟ^程序計(jì)數(shù)器PC加1自動(dòng)形成下一條指令的地址,跳躍尋址則通過轉(zhuǎn)移類指令實(shí)現(xiàn),是通過對(duì)PC的運(yùn)算得到新的下一條指令的地址.3.常見尋址方式1)立即尋址所需的操作數(shù)由指令的地址碼局部直接給出,就稱為立即數(shù)(或直接數(shù))尋址方式.這種方式的特點(diǎn)是取指時(shí),操作碼和一個(gè)操作數(shù)同時(shí)被取出,不必再次存儲(chǔ)器,提高了指令的執(zhí)行速度.但是由于這一操作數(shù)是指令的一局部,不能修改,而一般情況下,指令所處理的數(shù)據(jù)都是在不斷變化的(如上條指令的執(zhí)行結(jié)果作為下條指令的操作數(shù)),故這種方式只能適用于操作數(shù)固定的情況.通常用于給*一存放器或存儲(chǔ)器單元賦初值或提供一個(gè)常數(shù)等.(圖中"#〞表示立即尋址的標(biāo)記,A的位數(shù)限制了這類指令所能表述的立即數(shù)的范圍)2)直接尋址指令的地址碼局部給出操作數(shù)在存儲(chǔ)器中的地址.3)隱含尋址操作數(shù)的地址隱含在操作碼或者*個(gè)存放器中.4)間接尋址在尋址時(shí),有時(shí)根據(jù)指令的地址碼所取出的內(nèi)容既不是操作數(shù),也不是下一條要執(zhí)行的指令,而是操作數(shù)的地址或指令的地址,這種方式稱為間接尋址或間址.5)存放器尋址6)存放器間接尋址EA=(Ri)有效地址在存放器中存放器中給出的是操作數(shù)的地址,因此還需要一次存儲(chǔ)器才能得到操作數(shù).7)基址尋址在計(jì)算機(jī)中設(shè)置一個(gè)專用的基址存放器,或由指令指定一個(gè)通用存放器為基址存放器.操作數(shù)的地址由基址存放器的內(nèi)容和指令的地址碼A相加得到8)變址尋址指令地址碼局部給出的地址A和指定的變址存放器*的內(nèi)容通過加法器相加,所得的和作為地址從存儲(chǔ)器中讀出所需的操作數(shù).這是幾乎所有計(jì)算機(jī)都采用的一種尋址方式.9)相對(duì)尋址把程序計(jì)數(shù)器PC的內(nèi)容(即當(dāng)前執(zhí)行指令的地址)與指令的地址碼局部給出的位移量(disp)之和作為操作數(shù)的地址或轉(zhuǎn)移地址,稱為相對(duì)尋址.主要用于轉(zhuǎn)移指令,執(zhí)行本條指令后,將轉(zhuǎn)移到(PC)+disp,(PC)為程序計(jì)數(shù)器的內(nèi)容.相對(duì)尋址有兩個(gè)特點(diǎn):1〉轉(zhuǎn)移地址不是固定的,它隨著PC值的變化而變化,并且總是與PC相差一個(gè)固定值disp,因此無論程序裝人存儲(chǔ)器的任何地方,均能正確運(yùn)行,對(duì)浮動(dòng)程序很適用.2〉(PC)-2n-1~(PC)+2n-1-1之間計(jì)算機(jī)的程序和數(shù)據(jù)一般是分開存放的,程序區(qū)在程序執(zhí)行過程中不允許修改.在程序與數(shù)據(jù)分區(qū)存放的情況下,不用相對(duì)尋址方式來確定操作數(shù)地址.10)堆棧尋址在一般計(jì)算機(jī)中,堆棧主要用來暫存中斷和子程序調(diào)用時(shí)現(xiàn)場(chǎng)數(shù)據(jù)及返回地址,用于堆棧的指令只有壓入(即進(jìn)棧)和彈出(即退棧)兩種,它們實(shí)際上是一種特殊的數(shù)據(jù)傳送指令:壓入指令(PUSH)是把指定的操作數(shù)送入堆棧的棧頂;彈出指令(POP)的操作剛好相反,是把棧頂?shù)臄?shù)據(jù)取出,送到指令所指定的目的地.一般的計(jì)算機(jī)中,堆棧從高地址向低地址擴(kuò)展,即棧底的地址總是大于或等于棧頂?shù)牡刂?也有少數(shù)計(jì)算機(jī)剛好相反)當(dāng)執(zhí)行壓入操作時(shí),首先把堆棧指針(SP)減量(減量的多少取決于壓入數(shù)據(jù)的字節(jié)數(shù),假設(shè)壓入一個(gè)字節(jié),則減1;假設(shè)壓入兩個(gè)字節(jié),則減2,以此類推),然后把數(shù)據(jù)送人SP所指定的單元;當(dāng)執(zhí)行彈出操作時(shí),首先把sp所指定的單元(即棧頂)的數(shù)據(jù)取出,然后根據(jù)數(shù)據(jù)的大小(即所占的字節(jié)數(shù))對(duì)SP增量.設(shè)計(jì)指令格式應(yīng)考慮的各種因素指令系統(tǒng)集中反映了機(jī)器的性能,又是程序員編程的依據(jù),高檔機(jī)必須能兼容低檔機(jī)的程序運(yùn)行,稱之為"向上兼容〞.指令格式集中表達(dá)了指令系統(tǒng)的功能.為此,在確定指令系統(tǒng)時(shí),必須從以下幾個(gè)方面綜合考慮.操作類型:包括指令數(shù)及操作的難易程度數(shù)據(jù)類型:確定哪些數(shù)據(jù)類型可以參加操作指令格式:包括指令字長、操作碼位數(shù)、地址碼位數(shù)、地址個(gè)數(shù)、尋址方式類型、以及指令字長和操作碼位數(shù)是否可變等.尋址方式:包括指令和操作數(shù)具體有哪些尋址方式.⑤存放器個(gè)數(shù):存放器的多少直接影響指令的執(zhí)行時(shí)間.尋址方式詳情指令尋址順序?qū)ぶ讽樞驅(qū)ぶ房赏ㄟ^程序計(jì)數(shù)器PC加1自動(dòng)形成下一條指令的地址跳躍尋址跳躍尋址則通過轉(zhuǎn)移類指令實(shí)現(xiàn)數(shù)據(jù)尋址1.立即尋址操作數(shù)本身設(shè)在指令字內(nèi),即形式地址A不是操作數(shù)地址而是操作數(shù)本身指令執(zhí)行階段不訪存A的位數(shù)限制了這類指令所能表述的立即數(shù)的范圍2.直接尋址指令中的形式地址A就是操作數(shù)的真實(shí)地址EA,即EA=A執(zhí)行階段一次存儲(chǔ)器缺點(diǎn)在于A的位數(shù)限制了操作數(shù)的尋址范圍而且必須修改A的值才能修改操作數(shù)的地址3.隱含尋址指令字中不明顯給出操作數(shù)的地址,其操作數(shù)的地址隱含在操作碼或*個(gè)存放器中由于隱含尋址在指令字中少了一個(gè)地址,因此,這種尋址方式的指令有利于縮短指令字長4.間接尋址倘假設(shè)指令字中的形式地址不直接指出操作數(shù)的地址,而是指出操作數(shù)有效地址所在的存儲(chǔ)單元的地址,也就是說,有效地址是由形式地址間接提供的,即為間接地址,即EA=(A)優(yōu)點(diǎn)與直接尋址相比,擴(kuò)大了操作數(shù)的尋址范圍,因?yàn)锳的位數(shù)通常小于指令字長,而存儲(chǔ)字長可與指令字長相等它便于編制程序缺點(diǎn)指令的執(zhí)行階段需要訪存兩次(一次間接尋址)或?qū)掖?屢次間接尋址),致使指令執(zhí)行時(shí)間延長5.存放器尋址在存放器尋址的指令字中,地址碼字段直接指出了存放器的編號(hào),即EA=R由于地址字段只需指明存放器編號(hào)(計(jì)算機(jī)中存放器數(shù)有限)故指令字較短,節(jié)省了存儲(chǔ)空間,因此存放器尋址在計(jì)算機(jī)中得到廣泛應(yīng)用執(zhí)行階段不訪存,只存放器,執(zhí)行速度快存放器個(gè)數(shù)有限,可縮短指令字長6.存放器間接尋址有效地址EA+=(Ri),因有效地址有效地址在存放器中,操作數(shù)在存儲(chǔ)器中,執(zhí)行階段訪存便于編制循環(huán)程序7.基址尋址基址尋址需設(shè)有基址存放器BR,其操作數(shù)的有效地址EA等于指令字中的形式地址與基址存放器中的內(nèi)容(稱為基地址)相加,即EA=A+(BR)采用專用存放器作基址存放器可擴(kuò)大尋址范圍有利于多道程序BR內(nèi)容由操作系統(tǒng)或管理程序確定在程序的執(zhí)行過程中BR內(nèi)容不變,形式地址A可變采用通用存放器作基址存放器由用戶指定哪個(gè)通用存放器作為基址存放器基址存放器的內(nèi)容由操作系統(tǒng)確定在程序的執(zhí)行過程中R0內(nèi)容不變,形式地址A可變8.變址尋址變址尋址與基址尋址極為相似.其有效地址EA等于指令字中的形式地址A與變址存放器I*的內(nèi)容相加之和,即EA=A+(I*)可擴(kuò)大尋址范圍I*的內(nèi)容由用戶給定在程序的執(zhí)行過程中I*內(nèi)容可變,形式地址A不變便于處理數(shù)組問題9.相對(duì)尋址~的有效地址是將PC的內(nèi)容(即當(dāng)前指令地址)與指令字中的形式地址A(A是相對(duì)于當(dāng)前指令的位移量(可正可負(fù),補(bǔ)碼)相加而成,即EA=(PC)+AA的位數(shù)決定操作數(shù)的尋址范圍程序浮動(dòng)廣泛應(yīng)用于轉(zhuǎn)移指令10.堆棧尋址要求計(jì)算機(jī)中設(shè)有堆棧.堆棧既可用存放器組(稱為硬堆棧)來實(shí)現(xiàn),也可利用主存的一局部空間作堆棧(稱為軟堆棧)硬堆棧多個(gè)存放器軟堆棧制定的存儲(chǔ)空間(三)CISC和RISC的根本概念1.CISC(復(fù)雜指令集計(jì)算機(jī))隨著VLSI技術(shù)的開展,計(jì)算機(jī)的硬件本錢不斷下降,軟件本錢不斷提高,使得人們熱衷于在指令系統(tǒng)中增加更多的指令和復(fù)雜的指令,來提高操作系統(tǒng)的效率,并盡量縮短指令系統(tǒng)與高級(jí)語言的語義差異,以便于高級(jí)語言的編譯和降低軟件本錢.另外,為了做到程序兼容,同一系列計(jì)算機(jī)的新機(jī)器和高檔機(jī)的指令系統(tǒng)只能擴(kuò)大而不能減去任意一條,因此,促使指令系統(tǒng)越來越復(fù)雜,*些計(jì)算機(jī)的指令多達(dá)幾百條.例如,DEC公司的VA*11/780計(jì)算機(jī)有303條指令,18種尋址方式,我們稱這些計(jì)算機(jī)為復(fù)雜指令系統(tǒng)計(jì)算機(jī)(ple*instructionsetputer,簡稱CISC).Intel公司的180*86微處理器,IBM公司的大,中計(jì)算機(jī)均為CISC.2.RISC(簡單指令集計(jì)算機(jī))(1)RISC的產(chǎn)生1975年IBM公司開場(chǎng)研究指令的合理性問題,IBM的Johncocke提出了RISC的想法.對(duì)CISC的測(cè)試說明:最長使用的是一些簡單指令,占指令總數(shù)的20%,但在程序中出現(xiàn)的頻率卻占80%.而占20%的復(fù)雜指令,為實(shí)現(xiàn)其功能而設(shè)計(jì)的微程序代碼卻占總代碼的80%.CISC研制時(shí)間長,本錢高,難于實(shí)現(xiàn)流水線;因此出現(xiàn)了RIC技術(shù).計(jì)算機(jī)執(zhí)行程序所需的時(shí)間P可用下式表述:P=I×C×T其中,I是高級(jí)語言程序編譯后在機(jī)器上運(yùn)行的機(jī)器指令數(shù);C為執(zhí)行每條機(jī)器指令所需的平均機(jī)器周期;T是每個(gè)機(jī)器周期的執(zhí)行時(shí)間.(2)RISC的特點(diǎn)1)優(yōu)先選取使用頻率最高的一些簡單指令;選用使用頻度較高的一些簡單指令,復(fù)雜指令的功能由簡單指令來組合2)指令長度固定;指令長度固定、指令格式種類少、尋址方式少3)只有取數(shù)/存數(shù)指令(load/store)內(nèi)存;只有LOAD/STORE指令訪存4)CPU中的存放器數(shù)量很多;CPU中有多個(gè)通用存放器5)大局部指令在一個(gè)或小于一個(gè)機(jī)器周期完成;采用流水技術(shù)一個(gè)時(shí)鐘周期內(nèi)完成一條指令6)硬布線控制邏輯為主,不用或少用微碼控制;采用組合邏輯實(shí)現(xiàn)控制器7)一般用高級(jí)語言編程,特別重視編譯優(yōu)化,以減少程序執(zhí)行時(shí)間.采用優(yōu)化的編譯程序(3)RISC的開展1983年,一些中小型公司開場(chǎng)推出RISC產(chǎn)品,由于其高性能價(jià)格比,市場(chǎng)占有率不斷提高.1987年SUN公司用SPARC芯片構(gòu)成工作站;目前一些大公司,IBM,DEC,Intel,Motorola以將局部力量轉(zhuǎn)移到RISC方面.(4)CISC機(jī)與RISC機(jī)的主要特征比照

CISCRISC指令系統(tǒng)指令數(shù)指令格式指令字長尋址方式可指令各種指令使用頻率各種指令執(zhí)行時(shí)間復(fù)雜,龐大一般大于200一般大于4一般大于4不固定不加限制相差很大相差很大簡單,精簡一般小于100一般小于4一般小于4固定32位只有LOAD/STORE指令相差不大絕大多數(shù)在一個(gè)機(jī)器周期完成優(yōu)化編譯實(shí)現(xiàn)很難較容易程序源代碼長度較短較長控制邏輯實(shí)現(xiàn)方式絕大多數(shù)為微程序控制絕大多數(shù)為硬連線控制RISC機(jī)的主要優(yōu)點(diǎn)可歸納如下①充分利用VLSI芯片的面積②提高了計(jì)算機(jī)運(yùn)行速度③便于設(shè)計(jì),降低本錢,提高可靠性④有效支持高級(jí)語言程序五,中央處理器(CPU)(一)CPU的功能和根本構(gòu)造CPU主要是由運(yùn)算器和控制器組成,由于運(yùn)算器(實(shí)現(xiàn)算術(shù)運(yùn)算和邏輯運(yùn)算)局部在第二局部介紹過,所以本節(jié)主要介紹控制器的組成和工作原理.1.控制器的功能計(jì)算機(jī)對(duì)信息進(jìn)展處理(或計(jì)算)是通過程序的執(zhí)行而實(shí)現(xiàn)的,程序是完成*個(gè)確定算法的指令序列,要預(yù)先存放在存儲(chǔ)器中.控制器的作用是控制程序的執(zhí)行,它必須具有以下根本功能:1).取指令2).分析指令3).執(zhí)行指令計(jì)算機(jī)不斷重復(fù)順序執(zhí)行上述三種根本操作:取指,分析,執(zhí)行;再取指,再分析,再執(zhí)行,如此循環(huán),直到遇到停機(jī)指令或外來的干預(yù)為止.4).控制程序和數(shù)據(jù)的輸入與結(jié)果輸出根據(jù)程序的安排或人的干預(yù),在適當(dāng)?shù)臅r(shí)候向輸入輸出設(shè)備發(fā)出一些相應(yīng)的命令來完成I/O功能,這實(shí)際上也是通過執(zhí)行程序來完成的.5).對(duì)異常情況和*些請(qǐng)求的處理當(dāng)機(jī)器出現(xiàn)*些異常情況,諸如算術(shù)運(yùn)算的溢出和數(shù)據(jù)傳送的奇偶錯(cuò)等;或者*些外來請(qǐng)求,諸如磁盤上的成批數(shù)據(jù)需送存儲(chǔ)器或程序員從鍵盤送入命令等,此時(shí)由這些部件或設(shè)備發(fā)出:(1)"中斷請(qǐng)求〞信號(hào).(2)DMA請(qǐng)求信號(hào).2.控制器的組成根據(jù)對(duì)控制器功能分析,得出控制器的根本組成如下:1).程序計(jì)數(shù)器(PC)即指令地址存放器.在*些計(jì)算機(jī)中用來存放當(dāng)前正在執(zhí)行的指令地址;而在另一些計(jì)算機(jī)中則用來存放即將要執(zhí)行的下一條指令地址;而在有指令預(yù)取功能的計(jì)算機(jī)中,一般還需要增加一個(gè)程序計(jì)數(shù)器用來存放下一條要取出的指令地址.有兩種途徑來形成指令地址,其一是順序執(zhí)行的情況,通過程序計(jì)數(shù)器加"1〞形成下一條指令地址(如存儲(chǔ)器按字節(jié)編址,而指令長度為4個(gè)字節(jié),則加"4〞).其二是遇到需要改變順序執(zhí)行程序的情況,一般由轉(zhuǎn)移類指令形成轉(zhuǎn)移地址送往程序計(jì)數(shù)器,作為下一條指令的地址.2).指令存放器(IR)3).指令譯碼器或操作碼譯碼器對(duì)指令存放器中的操作碼進(jìn)展分析解釋,產(chǎn)生相應(yīng)的控制信號(hào).在執(zhí)行指令過程中,需要形成有一定時(shí)序關(guān)系的操作控制信號(hào)序列,為此還需要下述組成局部.4).脈沖源及啟停線路脈沖源產(chǎn)生一定頻率的脈沖信號(hào)作為整個(gè)機(jī)器的時(shí)鐘脈沖,是機(jī)器周期和工作脈沖的基準(zhǔn)信號(hào),在機(jī)器剛加電時(shí),還應(yīng)產(chǎn)生一個(gè)總清信號(hào)(reset).啟停線路保證可靠地送出或封鎖時(shí)鐘脈沖,控制時(shí)序信號(hào)的發(fā)生或停頓,從而啟動(dòng)機(jī)器工作或使之停機(jī).5).時(shí)序控制信號(hào)形成部件當(dāng)機(jī)器啟動(dòng)后,在CLK時(shí)鐘作用下,根據(jù)當(dāng)前正在執(zhí)行的指令的需要,產(chǎn)生相應(yīng)的時(shí)序控制信號(hào),并根據(jù)被控功能部件的反應(yīng)信號(hào)調(diào)整時(shí)序控制信號(hào).例如,當(dāng)執(zhí)行加法指令時(shí),假設(shè)產(chǎn)生運(yùn)算溢出的異常情況,一般不再執(zhí)行將結(jié)果送入目的存放器(或存儲(chǔ)單元)的操作,而發(fā)出中斷請(qǐng)求信號(hào),轉(zhuǎn)入中斷處理;又如執(zhí)行條件轉(zhuǎn)移指令時(shí),根據(jù)不同的條件產(chǎn)生不同的控制信號(hào),從而進(jìn)入適當(dāng)?shù)某绦蚍种?(二)指令執(zhí)行過程1.指令執(zhí)行的時(shí)序計(jì)算機(jī)工作的過程是取指令,分析指令,執(zhí)行指令三個(gè)根本動(dòng)作的重復(fù).考慮到所有的器件中(存放器,存儲(chǔ)器)存儲(chǔ)器的速度最慢,因此,取最慢的器件工作時(shí)間(周期)作為整個(gè)工作的最長同步標(biāo)準(zhǔn).計(jì)算機(jī)的工作時(shí)序是按照存儲(chǔ)器的工作周期劃分的.每個(gè)存儲(chǔ)器工作周期又稱為機(jī)器周期.因此,每個(gè)機(jī)器周期至少完成一個(gè)根本操作.一般最長的操作是存儲(chǔ)器(讀/寫),這個(gè)時(shí)間也用于外設(shè)接口(存放器).如果,*個(gè)操作,比方利用運(yùn)算器執(zhí)行一次運(yùn)算,如果不存儲(chǔ)器,即使占用的時(shí)間很短,但是,也必須為其劃分一個(gè)機(jī)器周期.因此,機(jī)器周期是計(jì)算時(shí)序劃分的最大單位.現(xiàn)在我們?yōu)橛?jì)算機(jī)的執(zhí)行時(shí)間進(jìn)展最根本的劃分:由于計(jì)算機(jī)不斷地重復(fù)執(zhí)行每個(gè)指令,所以,我們將執(zhí)行的時(shí)間劃分為一條一條指令執(zhí)行所占用的時(shí)間,如下:執(zhí)行指令1執(zhí)行指令2執(zhí)行指令3執(zhí)行指令4執(zhí)行指令5我們將每指令占用的時(shí)間稱為指令周期.由于每條指令的功能不一樣,因此執(zhí)行的時(shí)間也不同,指令周期長短不一樣.而每條指令的執(zhí)行,又可以是取指令,分析指令,執(zhí)行指令.由于取指令必須存儲(chǔ)器,所以占用一個(gè)機(jī)器周期.分析指令是由指令譯碼電路完成的,所占用的時(shí)間極短,無需分配一個(gè)完整的機(jī)器周期.一般是在取指周期后期(完畢之前的很短時(shí)間內(nèi))就可以完成.指令的執(zhí)行較為復(fù)雜:可能不存儲(chǔ)器;一次存儲(chǔ)器;兩次存儲(chǔ)器等.因此,可能是一個(gè)機(jī)器周期到幾個(gè)機(jī)器周期.因此,每條指令的執(zhí)行過程如下:取指周期執(zhí)行周期1執(zhí)行周期2執(zhí)行周期3執(zhí)行周期4第一個(gè)機(jī)器周期總是取指周期,而指令的地址總是從PC中獲得,當(dāng)發(fā)出讀取存儲(chǔ)器命令后,指令總是從數(shù)據(jù)總線DB送回,CPU承受到指令之后,將指令放在指令存放器IR之中.指令在IR中一直保存到取下一條指令為止.第二個(gè)機(jī)器周期開場(chǎng),根據(jù)指令有所不同:執(zhí)行一次ALU運(yùn)算:分配一個(gè)機(jī)器周期.執(zhí)行一次存儲(chǔ)器:分配一個(gè)機(jī)器周期.所以,根據(jù)指令執(zhí)行的不同情況,將會(huì)得到不同指令執(zhí)行所占用的機(jī)器周期.根據(jù)每個(gè)機(jī)器周期完成的任務(wù)不同,我們將每個(gè)機(jī)器周期按照任務(wù)命名.如同用取指周期命名第一個(gè)機(jī)器周期一樣.2.指令執(zhí)行過程舉例假設(shè)指令格式如下:操作碼rs,rdrs1imm(Disp)rs,rd,rsl為通用存放器地址;imm(或disp)為立即數(shù)(或位移量).加法指令功能:將存放器(rs)中的一個(gè)數(shù)與存儲(chǔ)器中的一個(gè)數(shù)(其地址為(rsl)+disp)相加,結(jié)果放在存放器rd中,rs與rd為同一存放器.加法指令完成以下操作:①取指周期從存儲(chǔ)器取指令,送入指令存放器,并進(jìn)展操作碼譯碼(分析指令).程序計(jì)數(shù)器加1,為下一條指令作好準(zhǔn)備.控制器發(fā)出的控制信號(hào):PC→AB,W/R=0,M/IO=1;DB→IR;PC+1.②計(jì)算地址周期計(jì)算數(shù)據(jù)地址,將計(jì)算得到的有效地址送地址存放器AR.控制器發(fā)出的控制信號(hào):rsl→GR,(rsl)→ALU,disp→ALU(將rsl的內(nèi)容與disp送ALU);"+〞(加法命令送ALU);ALU→AR(有效地址送地址存放器).③取數(shù)周期到存儲(chǔ)器取數(shù).控制器發(fā)出的控制信號(hào):AR→AB,W/R=0,M/IO=1;DB→DR(將地址存放器內(nèi)容送地址總線,同時(shí)發(fā)訪存讀命令,存儲(chǔ)器讀出數(shù)據(jù)送數(shù)據(jù)總線后,打入數(shù)據(jù)存放器).④執(zhí)行周期進(jìn)展加法運(yùn)算,結(jié)果送存放器,并根據(jù)運(yùn)算結(jié)果置狀態(tài)位N,Z,V,C.控制器送出的控制信號(hào):rs,rd→GR,(rs)→ALU,DR→ALU(兩個(gè)源操作數(shù)送ALU);ALU→rd(運(yùn)算結(jié)果送存放器rd)(三)數(shù)據(jù)通路的功能和根本構(gòu)造CPU的數(shù)據(jù)通路是連接CPU內(nèi)部各個(gè)部件以及和CPU外部個(gè)部件之間的數(shù)據(jù)和控制信號(hào)的連接關(guān)系圖.數(shù)據(jù)通路的根本構(gòu)造:(四)控制器的功能和工作原理1.硬布線控制器控制器控制信號(hào)的產(chǎn)生是采用邏輯電路,也稱組合邏輯電路控制方式."時(shí)序控制信號(hào)形成部件〞是由硬邏輯布線完成的.實(shí)際設(shè)計(jì)中,需要幾十~幾百條指令,確定每條指令所需的機(jī)器周期,將情況一樣的指令歸并在一起,列出表達(dá)式,畫出邏輯圖.(1)時(shí)序與節(jié)拍每一步由一個(gè)機(jī)器周期來完成,假設(shè)采用4個(gè)機(jī)器周期,總之,需要4個(gè)不同的信號(hào)輸出,代表4個(gè)不同的周期.(2)操作碼譯碼器指令的操作碼局部指出本指令將執(zhí)行什么指令,如加法,減法等.對(duì)于不同的指令,采用不同的代碼表示.(3)操作控制信號(hào)的產(chǎn)生以加法指令為例,加法指令的完成是由4個(gè)機(jī)器周期cy1,cy2,cy3,cy4組成,分別是取指,計(jì)算地址,取數(shù),計(jì)算4個(gè)機(jī)器周期.將所有的機(jī)器周期的操作控制信號(hào)的邏輯表達(dá)式全部寫出來,就會(huì)得到各個(gè)操作控制信號(hào)的所有表達(dá)式,再將這些表達(dá)式安每個(gè)操作控制信號(hào)組合起來,就得到*個(gè)操作控制信號(hào)的表達(dá)式.取指周期需要產(chǎn)生的操作控制信號(hào)如下:PC→AB=cy1;將PC送地址總線ADS=cy1·T1;存儲(chǔ)器地質(zhì)有效M/IO=cy1;存儲(chǔ)器操作W/R=cy1;讀操作DB→IR=cy1;將讀出的結(jié)果送IRPC+1=cy1;將程序計(jì)數(shù)器加1rs1→GR=加法指令·cy2;送通用存放器地址(rs1)→ALU=加法指令·cy2;通用存放器送ALUDisp→ALU=加法指令·cy2;偏移量送ALU"+〞=加法指令·cy2;ALU執(zhí)行加法操作ALU→AR=加法指令·cy2;運(yùn)算結(jié)果送地址總線例如,"+〞操作控制信號(hào)在加法指令的cy2(計(jì)算有效地址)和cy4(操作數(shù)相加)時(shí)需要;減法指令的cy2(計(jì)算有效地址)時(shí)需要;轉(zhuǎn)移指令的cy2(計(jì)算有效地址)時(shí)需要;….所以,"+〞操作控制信號(hào)的邏輯表達(dá)式如下:"+〞=加法指令·(cy2+cy4)+減法指令·cy2+轉(zhuǎn)移指令·cy2+…設(shè)機(jī)器有7位操作碼(OP0~OP6),假設(shè)加法指令的操作碼為0001100,形成的加法指令信號(hào)的邏輯表達(dá)式為:加法指令=OP0OP1OP2OP3OP4OP5OP6如,*機(jī)器128條指令,用7位操作碼(OP0~OP6),如果其中有16條算術(shù)邏輯運(yùn)算指令,可以將這些指令的3位操作碼都設(shè)計(jì)一樣的編碼,如OP0OP1OP2=001,而其他位OP3~OP6編碼表示16個(gè)不同的指令.設(shè)命令A(yù)是所有算術(shù)邏輯運(yùn)算在cy2周期需要產(chǎn)生的,邏輯表達(dá)式:A=加法指令·cy2+減法指令·cy2+邏輯加指令·cy2+…=(加法指令·+減法指令+邏輯加指令+…)·cy2=OP0·OP1·OP2·cy2只需要一個(gè)與門,就可實(shí)現(xiàn)命令A(yù).2.微程序控制器(1)微程序,微指令和微命令在計(jì)算機(jī)中,一條指令的功能是通過按一定次序執(zhí)行一系列根本操作完成的,這些根本操作稱為微操作.例如,前面講到的加法指令,分成四步(取指令,計(jì)算地址,取數(shù),加法運(yùn)算)完成,每一步實(shí)現(xiàn)假設(shè)干個(gè)微操作.實(shí)現(xiàn)這些微操作的控制命令就是微命令.微操作是指最根本的,不可再分的操作,如前面提到的:PC→AB;W/R=0;DB→IR等.PC→AB等就是微命令.微指令:在微程序控制的計(jì)算機(jī)中,將由同時(shí)發(fā)出的控制信號(hào)所執(zhí)行的一組微操作稱為微指令,所以微指令就是把同時(shí)發(fā)出的控制信號(hào)的有關(guān)信息聚集起來而形成的.將一條指令分成假設(shè)干條微指令,按次序執(zhí)行這些微指令,就可以實(shí)現(xiàn)指令的功能.組成微指令的微操作又稱微命令.微程序:計(jì)算機(jī)的程序由指令序列構(gòu)成,而計(jì)算機(jī)每條指令的功能均由微指令序列解釋完成,這些微指令序列的集合就叫做微程序.(2)微指令的編碼方式;1)直接控制法在微指令的控制字段中,每一位代表一個(gè)微命令,在設(shè)計(jì)微指令時(shí),是否發(fā)出*個(gè)微命令,只要將控制字段中相應(yīng)位置成"1〞或"0〞,這樣就可翻開或關(guān)閉*個(gè)控制門,這就是直接控制法.2)字段直接編譯法在計(jì)算機(jī)中的各個(gè)控制門,在任一微周期內(nèi),不可能同時(shí)被翻開,而且大局部是關(guān)閉的(相應(yīng)的控制位為"0〞).所謂微周期,指的是一條微指令所需的執(zhí)行時(shí)間.如果有假設(shè)干個(gè)(一組)微命令,在每次選擇使用它們的微周期內(nèi),只有一個(gè)微命令起作用,則這假設(shè)干個(gè)微命令是互斥的.選出互斥的微命令,并將這些微命令編成一組,成為微指令字的一個(gè)字段,用二進(jìn)制編碼來表示,就是字段直接編譯法.3)字段間接編譯法字段間接編譯法是在字段直接編譯法的根底上,進(jìn)一步縮短微指令字長的一種編譯法.如果在字段直接編譯法中,還規(guī)定一個(gè)字段的*些微命令,要兼由另一字段中的*些微命令來解釋,稱為字段間接編譯法.(3)微地址的形式方式.1)微程序入口地址的形成<1>一級(jí)轉(zhuǎn)移方式當(dāng)操作碼的位數(shù)與位置固定時(shí),可直接使操作碼與入口地址的局部位對(duì)應(yīng).<2>多級(jí)轉(zhuǎn)移方式先按照指令類型標(biāo)志轉(zhuǎn)移到*條微指令,以區(qū)分出是哪一大類,然后可以進(jìn)一步按指令操作碼轉(zhuǎn)移,區(qū)分出是該指令中的哪一類具體操作.2)微程序后繼地址的形成<1>以增量方式產(chǎn)生后繼微地址.在順序執(zhí)行微指令時(shí),后繼微地址由現(xiàn)行微地址加上一個(gè)增量(通常為1)形成的;而在非順序執(zhí)行時(shí)則要產(chǎn)生一個(gè)轉(zhuǎn)移微地址.<2>增量與下址字段結(jié)合產(chǎn)生后繼微地址將微指令的下址字段分成兩局部:轉(zhuǎn)移控制字段BCF和轉(zhuǎn)移地址字段BAF,當(dāng)微程序?qū)崿F(xiàn)轉(zhuǎn)移時(shí),將BAF送μPC,否則順序執(zhí)行下一條微指令(μPC+1).(五)指令流水線1.指令流水線的根本概念(1)流水線根本原理流水線技術(shù)是一種顯著提高指令執(zhí)行速度與效率的技術(shù).方法是:指令取指完成后,不等該指令執(zhí)行完畢即可取下一條指令.如果把一條指令的解釋過程進(jìn)一步細(xì)分,例如,把分析,執(zhí)行兩個(gè)過程分成取指,譯碼,執(zhí)行,訪存和寫回存放器五個(gè)子過程,并用五個(gè)子部件分別處理這五個(gè)子過程.這樣只需在上一指令的第一子過程處理完畢進(jìn)入第二子過程處理時(shí),在第一子部件中就開場(chǎng)對(duì)第二條指令的第一子過程進(jìn)展處理.隨著時(shí)間推移,這種重疊操作最后可到達(dá)五個(gè)子部件同時(shí)對(duì)五條指令的子過程進(jìn)展操作.指令六級(jí)流水時(shí)序(2)影響流水線性能的因素在流水線中會(huì)出現(xiàn)三種相關(guān),影響流水線的暢通流動(dòng),這三種相關(guān)是構(gòu)造相關(guān),數(shù)據(jù)相關(guān)和控制相關(guān).數(shù)據(jù)相關(guān)是指令在流水線中重疊執(zhí)行時(shí),當(dāng)后繼指令需要用到前面指令的執(zhí)行結(jié)果時(shí)發(fā)生的.控制相關(guān)是當(dāng)流水線遇到分支指令和其他改變PC值的指令時(shí)引起的.(3)流水線性能流水線的性能通常用吞吐率,加速比和效率3項(xiàng)指標(biāo)來衡量.1)吞吐率在指令流水線中,吞吐率是指單位時(shí)間內(nèi)流水線所完成的指令或輸出結(jié)果的數(shù)量.2)加速比流水線的加速比是指m段流水線的速度與等功能的非流水線的速度之比.3)效率效率是指流水線中個(gè)功能段的利用率.2.超標(biāo)量和動(dòng)態(tài)流水線的根本概念(1)超標(biāo)量在超標(biāo)量的處理器構(gòu)造中,整數(shù)和浮點(diǎn)數(shù)運(yùn)算,裝入,存儲(chǔ)以及條件轉(zhuǎn)移等普通操作指令可以同時(shí)啟動(dòng)并獨(dú)立執(zhí)行.超標(biāo)量流水CPU是指集成了多條流水線構(gòu)造的CPU,當(dāng)流水線滿載時(shí),每個(gè)時(shí)鐘周期可以完成一條以上的指令.(2)動(dòng)態(tài)流水線流水線按功能可分成單功能流水線和多功能流水線兩種.單功能流水線只完成一種功能.如浮點(diǎn)加法或乘法流水線.多功能流水線則可完成多種功能,它允許在不同時(shí)間,甚至同一時(shí)間內(nèi)在流水線內(nèi)連接不同功能段的子集來實(shí)現(xiàn)不同功能.流水線按工作方式可分為靜態(tài)流水線和動(dòng)態(tài)流水線兩種.在靜態(tài)流水線中,同一時(shí)間內(nèi)它只能以一種功能方式工作.它可以是單功能的,也可以是多功能的.當(dāng)是多功能流水線時(shí),則從一種功能方式變?yōu)榱硪环N功能方式時(shí),必須先排空流水線,然后為另一種功能設(shè)置初始條件前方可使用.顯然,不希望這種功能的轉(zhuǎn)換頻繁的發(fā)生,否則將嚴(yán)重影響流水線的處理效率.動(dòng)態(tài)流水線則允許在同一時(shí)間內(nèi)將不同的功能段連接成不同的功能子集(前提條件是功能部件的使用不發(fā)生沖突),以完成不同的運(yùn)算功能.顯然,動(dòng)態(tài)流水線必是多功能流水線,而單功能流水線則必是靜態(tài)的.六,總線(一)總線概述1.總線的根本概念總線是連接各個(gè)部件的信息傳輸線,是各個(gè)部件共享的傳輸介質(zhì),總線上信息的傳送分為串行和并行傳輸同步通信通信雙方由統(tǒng)一時(shí)標(biāo)控制數(shù)據(jù)傳送稱為同步通信一般用于總線長度較短,各部件存取時(shí)間比擬一致的場(chǎng)合異步通信異步通信克制了同步通信的缺點(diǎn),允許各模塊速度的不一致性,給設(shè)計(jì)者充分的靈活性和選擇余地.(1)不互鎖方式.主模塊發(fā)出請(qǐng)求信號(hào)后,不等待接到從模塊的答復(fù)信號(hào),而是經(jīng)過一段時(shí)間.確認(rèn)從模塊已收到請(qǐng)求信號(hào)后,便撤消其請(qǐng)求信號(hào);從設(shè)備接到請(qǐng)求信號(hào)后,在條件允許時(shí)發(fā)出答復(fù)信號(hào),并經(jīng)過一段時(shí)間,確認(rèn)主設(shè)備已收到答復(fù)信號(hào)后,自動(dòng)撤消答復(fù)信號(hào).可見通信雙方并無互鎖關(guān)系.(2)半互鎖方式.主模塊發(fā)出請(qǐng)求信號(hào),待接到從模塊的答復(fù)信號(hào)后再撤消其請(qǐng)求信號(hào),存在著簡單的互鎖關(guān)系:而從模塊發(fā)出答復(fù)信號(hào)后,不等待主模塊答復(fù),在一段時(shí)間后便撤消其答復(fù)信號(hào),無互鎖關(guān)系.故稱半互鎖方式.(3)全互鎖方式.主模塊發(fā)出請(qǐng)求信號(hào),待從模塊答復(fù)后再撤其請(qǐng)求信號(hào);從模塊發(fā)出答復(fù)信號(hào),待主模塊獲知后,再撤消其答復(fù)信號(hào).故稱全互鎖方式.半同步通信半同步通信集同步與異步通信之優(yōu)點(diǎn),既保存了同步通信的根本特點(diǎn),如所有的地址,命令,數(shù)據(jù)信號(hào)的發(fā)出時(shí)間,都嚴(yán)格參照系統(tǒng)時(shí)鐘的*個(gè)前沿開場(chǎng),而接收方都采用系統(tǒng)時(shí)鐘后沿時(shí)刻來進(jìn)展判斷識(shí)別.同時(shí)又像異步通信那樣,允許不同速度的模塊和諧地工作.為此增設(shè)了一條"等待〞()響應(yīng)信號(hào)線.半同步通信適用于系統(tǒng)工作速度不高,但又包含了許多工作速度差異較大的各類設(shè)備的簡單系統(tǒng).半同步通信控制方式比異步通信簡單,在全系統(tǒng)內(nèi)各模塊又在統(tǒng)一的系統(tǒng)時(shí)鐘控制下同步工作,可靠性較高,同步構(gòu)造較方便.其缺點(diǎn)是對(duì)系統(tǒng)時(shí)鐘頻率不能要求太高,故從整體上來看,系統(tǒng)工作的速度還是不很高.別離式通信別離式通信的根本思想是將一個(gè)傳輸周期(或總線周期)分解為兩個(gè)子周期這種方式控制比擬復(fù)雜,一般在普通微機(jī)系統(tǒng)很少采用按照系統(tǒng)總線傳輸信息的不同數(shù)據(jù)總線雙向傳輸高電平為1低電平為0地址總線單向傳輸?shù)刂肪€位數(shù)n與存儲(chǔ)單元N數(shù)之間的關(guān)系N=2n控制總線讀寫控制線片選線每根都是單向的總體輸入輸出用來發(fā)出各種控制信號(hào)的傳輸線通信總線串行總線近距離小于30米并行總線遠(yuǎn)距離幾米到數(shù)公里2.總線的分類1)片內(nèi)總線:芯片內(nèi)部的總線2)系統(tǒng)總線:計(jì)算機(jī)各部件之間的信息傳輸線數(shù)據(jù)總線:雙向與機(jī)器字長,存儲(chǔ)字長有關(guān)地址總線:單向與存儲(chǔ)地址,I/O地址有關(guān)控制總線:局部出局部入控制器控制所有部件3)通信總線:用于計(jì)算機(jī)系統(tǒng)之間或計(jì)算機(jī)系統(tǒng),與其他系統(tǒng)(如控制儀表,移動(dòng)通信等)之間的通信傳輸方式:串行通信總線和并行通信總線3.總線的組成及性能指標(biāo)總線的構(gòu)造通常分為單總線構(gòu)造和多總線構(gòu)造.單總線構(gòu)造是將CPU,主存,I/O設(shè)備(通過I/O接口)都掛在一組總線上.多總線構(gòu)造的特點(diǎn)是將速度較低的I/O設(shè)備從單總線上別離出來,形成主總線與I/O設(shè)備總線分開的構(gòu)造.總線的性能指標(biāo)1)總線寬度:數(shù)據(jù)總線的根數(shù)2)總線帶寬:數(shù)據(jù)傳輸率3)時(shí)鐘同步/異步:總線上的數(shù)據(jù)與時(shí)鐘同步的稱為同步總線,與時(shí)鐘不同步的稱為異步總線4)總線復(fù)用:一條信號(hào)線上分時(shí)傳送兩種信號(hào).5)信號(hào)線數(shù):地址總線,數(shù)據(jù)總線和控制總線三種總線數(shù)的總和.6)總線控制方式:包括突發(fā)工作,自動(dòng)配置,總裁方式,邏輯方式,技術(shù)方式等.7)其他指標(biāo):負(fù)載能力,電源電壓,總線寬度能否擴(kuò)展等.(二)總線仲裁由于總線上連接著多個(gè)部件,何時(shí)由哪個(gè)部件發(fā)送信息,如何定時(shí),如何防止信息喪失,如何防止多個(gè)設(shè)備同時(shí)發(fā)送,如何規(guī)定接收部件等一系列問題都需要總線控制器統(tǒng)一管理,主要包括總線的判優(yōu)控制(仲裁邏輯)和通信控制.總線仲裁邏輯可分為集中式和分布式兩種,前者將控制邏輯集中在一處(如在CPU中),后者將控制邏輯分散在總線的各個(gè)部件之上.1.集中仲裁方式集中仲裁方式有三種:(1)鏈?zhǔn)讲樵儺?dāng)一個(gè)或多個(gè)設(shè)備同時(shí)發(fā)出總線使用請(qǐng)求信號(hào)BR時(shí),中央仲裁器發(fā)出的總線授權(quán)信號(hào)BG沿著菊花鏈串行的從一個(gè)設(shè)備依次傳送到下一個(gè)設(shè)備,到達(dá)離出發(fā)點(diǎn)最近的發(fā)出總線請(qǐng)求的設(shè)備之后就不再往下傳.(2)計(jì)數(shù)器定時(shí)查詢總線上個(gè)設(shè)備通過總線請(qǐng)求信號(hào)BR,發(fā)出請(qǐng)求,中央仲裁器接收到請(qǐng)求信號(hào)后,在總線忙信號(hào)BS為"0〞的情況下,讓計(jì)數(shù)器開場(chǎng)計(jì)數(shù),計(jì)數(shù)值通過一組地址線發(fā)往各設(shè)備.每個(gè)設(shè)備有一個(gè)地址判別電路,如果地

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論