考研計算機沖刺班組成原理講義-楊楠_第1頁
考研計算機沖刺班組成原理講義-楊楠_第2頁
考研計算機沖刺班組成原理講義-楊楠_第3頁
考研計算機沖刺班組成原理講義-楊楠_第4頁
考研計算機沖刺班組成原理講義-楊楠_第5頁
已閱讀5頁,還剩82頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

考研計算機沖刺班組成原理講義.楊楠【考查目標】.明白得單處理器運算機系統中各部件的內部工作原理、組成結構以及相互連接方式,具有完整的運算機系統的整機概念。.明白得運算機系統層次化結構概念,熟悉硬件與軟件之間的界面,把握指令集體系結構的差不多知識和差不多實現方法。.能夠運用運算機組成的差不多原理和差不多方法,對有關運算機硬件系統中的理論和實際咨詢題進行運算、分析,并能對一些差不多部件進行簡單設計。一、運算機系統概述本章屬于運算機組成原理概述部分,內容比較簡單,也容易把握,在考研中沒有太難的題目。下面就本章內容,要緊部分作以下歸納:(一)運算機的類型電子運算機分為兩大類:電子模擬運算機和電子數字運算機。電子數字運算機的要緊特點是:按位運算。數字運算機又可分為專用運算機和通用運算機。通用運算機又分巨型機、大型機、中型機、小型機、微型機和單片機。它們的區不在于體積、簡易性、功率損耗、性能指標、數據儲備容量、指令系統規模和機器價格等。運算機的應用范疇:社會的各個領域。(二)運算機進展歷程運算機系統的進展歷史如下:第1代運算機(1946年一1957年):電子管時代;第2代運算機(1958年一1964年):晶體管時代;第3代運算機(1965年一1971年):中小規模集成電路時代;第4代運算機(1972年—1985年):超大規模集成電路時代;第5代運算機(1986年一至今):龐大規模集成電路時代。(三)運算機系統層次結構.運算機硬件的差不多組成硬件分為5大部分:操縱器、運算器、儲備器、輸入設備和輸出設備。早期運算器和操縱器構成運算機的CPU,現在一樣還加上CPU內部的Cache共同構成CPU,加入的是第一級Cache,也是儲備器中速度最快,容量最小的儲備器。對馮?諾依曼運算機體系結構的特點要有深刻的明白得:使用二進制(為何用二進制?)儲備程序,同時按照地址順序執行。儲備程序并按照地址順序執行是馮?諾依曼運算機設計的關鍵思想。.運算機軟件的分類運算機軟件按照面向對象的不同可分兩類:系統軟件和應用軟件。系統軟件:用于治理整個運算機系統,合理分配系統資源,確保運算機正常高效地運行,這類軟件面向系統。應用軟件:是面向用戶按照用戶的專門要求編制的應用程序,這類軟件通常實現用戶的某類要求。.運算機的工作過程馮?諾依曼運算機特點差不多上指出了運算機的工作過程。馮?諾依曼體系結構的差不多思想是:儲備程址順序自動執行。第一將指令和數據儲備到運算機中,運算機啟動后,就能夠序取出指令并依次執行,直到程序執行完畢,得到運算結果為止。馮?諾依曼體系結構運算機包含5個差不多部件:輸入設備、運算器、操縱器和輸出設備。運算器進行數據運算和數據變換;操縱器為運算機的工作提供統一的時鐘,對程序的各差不多操作進行時序分相應的操縱信號,驅動運算機的各部件有序地完成程序規定的操作內容;儲備器用來存放程序、數據和運算結果;輸入瑜出設備則完成相應的輸入輸出轉換。.運算機系統的層次結構(1)層次結構。運算機系統是一個復雜的軟、硬件結合體,它包含硬件系統和軟件系統兩部分。它通常由5個不同的級組成,在每一級都能夠進行程序設計。由微程序設計級、一樣機器級、操作系統級、匯編語言級和高級語言級組成,如圖所示:(2)軟件和硬件邏輯上的等價性,任何操作能夠由軟件來實現也能夠由硬件來實現。早期要緊由軟件來實現較復雜的邏輯(硬件軟化),現在存在軟件硬化的趨勢。專門注意運算機是一個軟件和硬件結合的整體系統。固件:把軟件刻入R0M,使軟件固化,如此得到的一個實體確實是固件。(3)兼容性。兼容性的設計思想實際上確實是系列機的概念。在系列機中,新機型要求支持老機型上開發的軟件;而且還有硬件上的兼容要求。兼容要求軟件和硬件設備能夠直截了當在不同的機型上使用。運算機系統的層次結構(四)運算機性能指標(1)差不多字長。差不多字長是指參與運算的數的差不多長度,它由加法器、寄存器和數據總線的位數決定。字長標志著精度,字長越長,運算精度越高。(2)主存容量。運算機主儲備器所能夠儲備的信息的全部總量,稱為主存容量。以字節數來表示儲備容量的運算機稱為字節編碼運算機;而以字為單位編址的運算機,儲備容量等于字數乘以字長。(3)主頻。每臺運算機的內部,都有一個持續地產生固定頻率時鐘脈沖的裝置,稱為主時鐘。主時鐘的頻率通常是機器的主頻率,主頻率是衡量一臺,-c,蹲機速度的重要參數。(4)運算速度。運算速度通常反映運算機運算的快慢。對運算速度的衡量有以下幾種方法:按照不同類型指令在運算過程中顯現的頻率乘上不同的系數,求得統計平均值,這時所指的運算速度是平均運算速度。直截了當給出每條指令的實際執行時刻。以MIPS和MFLOPS作為計量單位來衡量運算速度。MIPS表示每秒百萬條指令,MFLOPS表示每秒百萬次浮點運算。吞吐量、響應時刻(1)吞吐量:單位時刻內可執行程序的個數。(2)響應時刻:從事件開始到事件終止的時刻,也稱執行時刻。CPU時鐘周期、主頻、CPLCPU執行時刻CPU時鐘周期:機器主頻的倒數,Tc(2)主頻:CPU工作主時鐘的頻率,機器主頻RcCPI:執行一條指令所需要的平均時鐘周期CPU執行時刻:TCPU=InXCPIXTCIn執行程序中指令的總數,CPI執行每條指令所需的平均時鐘周期數,TC時鐘周期時刻的長度。MIPS、MFLOPSMIPS(MillionInstructionsPerSecond)MIPS=In/(TeX106)=In/(InXCPIXTcX106)=Rc/(CPIX106)Te:執行該程序的總時刻,In:執行該程序的總指令數,Rc:時鐘周期Tc的到數MIPS只適合評判標量機,不適合評判向量機。標量機執行一條指令,得到一個運行結果。而向量機執行一條指令,能夠得到多個運算結果。MFLOPS(MillionFloatingPointOperationsPerSecond)MFLOPS=Ifn/(TeX106)Ifn:程序中浮點數的運算次數MFLOPS測量單位比較適合于衡量向量機的性能。一樣而言,同一程序運行在不同的運算機上時往往會執行不同數量的指令數,但所執行的浮點數個數常常是相同的。二、數據的表示和運算(一)數制與編碼1.進位計數制及其相互轉換(1)進位計數制進位計數制是指按照進位制的方法表示數,不同的數制均涉及兩個差不多概念:基數和權。任意一個R進制數X,設整數部分為n位,小數部分為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)不同數制間的數據轉換1)二、八、十六進制數轉換成十進制數利用上面講到的公式:(N)2=EDi?2i、(N)8=EDi?8i、(N)16=LDi?16i、進行運算。2)十進制數轉換成二進制數對整數部分,一樣采納除2取余數法,對小數部分,一樣用乘2取整數法。3)二進制數、八進制數和十六進制數之間的轉換3位二進制數組成1位八進制數,4位二進制數組成1位十六進制數。關于一個兼有整數和小數部分的數以小數點為界,小數點前后的數分不分組進行處理,不足的位數用0補足。對整數部分將。補在數的左側,對小數部分將0補在數的右側。如此數值可不能發生差錯。.真值和機器數真值:數據的數值通常以正(+)負(-)號后跟絕對值來表示,稱之為“真值”。機器數:在運算機中正負號也需要數字化,一樣用。表示正號,1表示負號。把符號數字化的數成為機器數。.BCD碼在運算機中采納4位二進制碼對每個十進制數位進行編碼。4位二進制碼有16種不同的組合,從中選出10種來表示十進制數位的。?9,用0000,0001,???,1001分不表示0,1,…,9,每個數位內部滿足二進制規則,而數位之間滿足十進制規則,故稱這種編碼為''以二進制編碼的十進制(binarycodeddecimal,簡稱BCD)碼加法運算的修正規則是:如果兩個一位BCD碼相加之和小于或等于(1001)2,即(9)10,不需要修正;如相加之和大于或等于(1010)2,或者產生進位,要進行加6修正,如果有進位,要向高位進位。.字符與字符串在運算機中要對字符進行識不和處理,必須通過編碼的方法,按照一定的規則將字符用一組二進制數編碼表示。字符的編碼方式有多種,常見的編碼有ASCH碼、EBCDIC碼等。ASCII碼ASCII碼用7位二進制表示一個字符,總共128個字符元素,包括10個十進制數字(0-9)、52個英文字母(A-Z和a-z)、34專用符號和32操縱符號。EBCDIC碼為ExtendedBinaryCodedDecimalInterchangeCode的簡稱,它采納8位來表示一個字符。3)字符串的存放向量儲備法:字符串儲備時,字符串中的所有元素在物理上是鄰接的。串表儲備法:字符串的每個字符代碼后面設置一個鏈接字,用于指出下一個字符的儲備單元的地址。.校驗碼碼距:碼距按照任意兩個合法碼之間至少有幾個二進制位不相同而確定的,僅有一位不同,稱其碼距為1。(1)奇偶校驗碼它的實現原理,是使碼距由1增加到2。若編碼中有1位二進制數出錯了,即由1變成0,或者由0變成lo如此出錯的編碼就成為非法編碼,就能夠明白顯現了錯誤。在原有的編碼之上再增加一位校驗位,原編碼n位,形成新的編碼為n+1位。增加的方法有2種:奇校驗:增加位的?;?要保證整個編碼中1的個數為奇數個。偶校驗:增加位的。或1要保證整個編碼中1的個數為偶數個。(2)海明校驗碼它的實現原理,是在數據中加入幾個校驗位,并把數據的每一個二進制位分配在幾個奇偶校驗組中。當某一位出錯就會引起有關的幾個校驗組的值發生變化,這不但能夠發覺出錯,還能指出是哪一位出錯,為自動糾錯提供了依據。假設校驗位的個數為r,則它能表示2i?個信息,用其中的一個信息指出“沒有錯誤”,其余2r-l個信息指出錯誤發生在哪一位。然而錯誤也可能發生在校驗位,因此只有k=2r-l-r個信息能用于糾正被傳送數據的位數,也確實是講要滿足關系:2r>=k+r+l3)CRC校驗碼CRC校驗碼一樣是指k位信息之后拼接r位校驗碼。關鍵咨詢題是如何從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)所得的余數作為校驗碼的。為了得到r位余數,G(x)必須是r+1位。設所得的余數表達式為R(x),商為Q(x)。將余數拼接在信息位組左移r位空出的r位上,就構成了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)表示的數碼除盡。將收到的CRC碼用約定的生成多項式G(x)去除,如果無錯,余數應為0,有某一位出錯,余數不為0。(二)定點數的表示和運算

.定點數的表示(1)無符號數的表示無符號數確實是指正整數,機器字長的全部位數均用來表示數值的大小,相當于數的絕對值。關于字長為n+1位的無符號數的表示范疇為:0—2n+l-lo(2)帶符號數的表示帶符號數是指在運算機中將數的符號數碼化。在運算機中,一樣規定二進制的最高位為符號位,最高位為“0”表示該數為正,為“1”表示該數為負。這種在機器中使用符號位也被數碼化的數稱為機器數。按照符號位和數值位的編碼方法不同,機器數分為原碼、補碼和反碼。1)原碼表示法X;O<X<1l-X=l+|X|;-l<X<0[X]原=<機器數的最高位為符號位,0表示正數,1表示負數,數值X;O<X<1l-X=l+|X|;-l<X<0[X]原=<2)補碼表示法機器數的最高位為符號位,。表示正數,1表示負數,其定義如下:兇補=<x;o<X<1兇補=<2+X=2-1X|;-1<X<03)反碼表示法機器數的最高位為符號,。表示正數,1表示負數。匕%占、'/LfX;0<X<1反碼的定義:。]反=2-2"n+X;-l<X<04)原碼、補碼和反碼的確明數表示的范疇,原碼為:-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…)兩種表示形式.定點數的運算(1)定點數的位移運算左移,絕對值擴大;右移,絕對值縮小。算術移位規則:符號位不變算術移位和邏輯移位的區不:算術移位:帶符號數移位;邏輯移位:無符號數移位;(2)原碼定點數的加/減運算對原碼表示的兩個操作數進行加減運算時,運算機的實際操作是加依舊減,不僅取決指令中的操作碼,還取決于兩個操作數的符號。而且運算結果的符號判定也較復雜。例如,加法指令指示做(+A)+(-B)由于一操作數為負,實際操作是做減法(+A)-(+B),結果符號與絕對值大的符號相同。同理,在減法指令中指示做(+A)-(-B)實際操作做加法(+A)+(+B),結果與被減數符號相同。由于原碼加減法比較繁瑣,相應地需要由復雜的硬件邏輯才能實現,因此在運算機中專門少被采納。(3)補碼定點數的加/減運算1)加法整數[A]補+出]補=[A+B]補(mod2n+l)小數[A]補+出]補=[A+B]補(mod2)2)減法整數[A]補-出]補=[A+(-B)]補=[A]補+[-B]#(mod2n+1)小數[A]#-[B]#=[A+(-B)]補=[A]補+[-B]補(mod2)無需符號判定,連同符號位一起相加,符號位產生的進位自然丟掉(4)定點數的乘/除運算1)乘法<1>原碼一位乘法兩個原碼數相乘,其乘積的符號為相乘兩數的異或值,數值兩數絕對值之積。<2>定點補碼一位乘法有的機器為方便加減法運算,數據以補碼形式存放。乘法直截了當用補碼進行,以減少轉換次數。具體規則如下:[\乂丫]補=a]補(-yO+0.yly2…yn)<3>布斯法布斯公式:在乘數Yn后添加Yn+l=0。按照Yn+1,Yn相鄰兩位的三種情形,其運算規則如下: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>補碼兩位乘法,按照前述的布斯算法,將兩步合并成一步,即可推導出補碼兩位乘的公式。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>復原余數法被除數(余數)減去除數,如果為0或者為正值時,上商為1,不復原余數;如果結果為負,上商為0,再將除數加到余數中,復原余數。余數左移1位。2>加減交替法當余數為正時,商上1,求下一位商的方法,余數左移一位,再減去除數;當余數為負時,商上0,求下一位商的方法,余數左移一位,再加上除數。<2>定點補碼一位除法(加減交替法)1)如果被除數與除數同號,用被除數減去除數;若兩數異號,被除數加上除數。如果所得余數與除數同號商上1,否貝!1,商上0,該商為結果的符號位。2〉求商的數值部分。如果上次商上1,將除數左移一位后減去除數;如果上次商上0,將余數左移一位后加除數。然后判定此次操作后的余數,如果余數與除數同號商上1,如果余數與除數異號商上0o如此重復執行n-1次(設數值部分n位)。3〉商的最后一位一樣采納恒置1的方法,并省略了最低+1的操作?,F在最大的誤差為2-no(5)溢出概念和判不方法當運算結果超出機器數所能表示的范疇時,稱為溢出。明顯,兩個異號數相加或兩個同號數相減,其結果是可不能溢出的。僅當兩個同號數相加或者兩個異號數相減時,才有可能發溢出的情形,一旦溢出,運算結果就不正確了,因此必須將溢出的情形檢查出來。判不方法有三種:1)當符號相同的兩數相加時,如果結果的符號與加數(或被加數)不相同,則為溢出。2)當任意符號兩數相加時,如果C=Cf,運算結果正確,其中C為數值最高位的進位,Cf為符號位的進位。如果CWCf,則為溢出,因此溢出條件=C3Cf。3)采納雙符號fs2fsl,正數的雙符號位為00,負數的雙符號位為11。符號位參與運算,當結果的兩個符號位甲和乙不相同時為溢出。因此溢出條件=fs20fslo(三)浮點數的表示和運算.浮點數的表示(1)浮點數的表示范疇浮點數是指小數點位置可浮動的數據,通常以下式表示:N=M?RE其中,N為浮點數,M為尾數,E為階碼,R稱為“階的基數(底)”,而且R為一常數,一樣為2、8或16。在一臺運算機中,所有數據的R差不多上相同的,因此不需要在每個數據中表示出來。因此,浮點數的機內表示一樣采納以下形式:浮點數的機內表示一樣采納以下形式:MsEM1位 n+1位 m位Ms是尾數的符號位,設置在最高位上。E為階碼,有n+1位,一樣為整數,其中有一位符號位,設置在E的最高位上,用來表正階或負階。M為尾數,有m位,由Ms和M組成一個定點小數。Ms=0,表示正號,Ms=l,表示負。為了保證數據精度屬數通常用規格化形式表示:當R=2,且尾數值不為0時,其絕對值大于或等于(0.5)10。對非規格化浮點數,通過將尾數左移或右移,并修改階碼值使之滿足規格化要求。2)IEEE754標準按照IEEE754國際標準,常用的浮點數有兩種格式:(1)單精度浮點數(32位),階碼8位,尾數24位(內含:位符號位)。(2)雙精度浮點數(64位),階碼11位,尾數53位(內含:位符號位)。單精度格式32位,階碼為8位,尾數為23位。另有一位符號位S,處在最高位。由于IEEE754標準約定在小數點左部有一位隱含位,從而實際有效位數為24位。如此使得尾數的有效值變為l.Mo例如,最小為xl.O…0,,最大為xl.l…1。規格化表示。故小數點左邊的位橫為1,可省去。階碼部分采納移碼表示,移碼值127,1到254經移碼為126到+127。S(1位)E(8位)M(23位)N(共32位)符號位000符號位0不等于0(-l)S-2-126(0.M)為非規格化數符號位1到254之間-(-1)S-2E-127-(1.M)為規格化數符號位255不等于0NaN(非數值)符號位2550無窮大0有了精確的表示,無窮大也明確表示。關于絕對值較小的數,能夠采納非規格化數表示,減少下溢精度缺失。非規格化數的隱含位是0,不是1。2.浮點數的加/減運算加減法執行下述五步完成運算:“對階”操作比較兩浮點數階碼的大小,求出其差AE,保留其大值E,IE=max(Ex,Ey)0當AEWO時,將階碼小的尾數右移AE位,并將其階碼加上AE,使兩數的階碼值相等。(2)尾數加減運算執行對階之后,兩尾數進行加減操作。(3)規格化操作規格化的目的是使得尾數部分的絕對值盡可能以最大值的形式顯現。(4)舍入在執行右規或者對階時,尾數的低位會被移掉,使數值的精度受到阻礙,常用“0”舍“1”入法。當移掉的部分最高位為1時,在尾數的末尾加1,如果加1后又使得尾數溢出,則要再進行一次右規。(5)檢查階碼是否溢出階碼溢出表示浮點數溢出。在規格化和舍入時都可能發生溢出,若階碼正常,力口/減運算正常終止。若階碼下溢,則設置機器運算結果為機器零,若上溢,則設置溢出標志。(四)算術邏輯單元ALU.串行加法器和并行加法器(1)串行進位加法器并行加法器能夠同時對數據的各位進行相加,一樣用n個全加器來實現2個操作數的各位同時向加。其操作數的各位是同時提供的,由于進位是逐位形成,低位運算所產生的進位會阻礙高位的運算結果。串行進位(也稱波形進位)加法器,邏輯電路比較簡單,然而最高位的加法運算,一定要等到所有低位的加法完成之后才能進行,低位的進位要逐步的傳遞到高位,逐級產生進位,因此運算速度比較慢。串行進位加法器(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進位產生函數:Gi=AiBi進位傳遞函數:Pi=Ai+Bi

Ci=Gi+PiCi-1C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0并行進位加法器的運算速度專門快,形成最高進位輸出的延遲時刻專門短,然而以增加硬件邏輯線路為代價。關于長字長的加法器,往往將加法器分成若干組,在組內采納并行進位,組間則采納串行進位或并行進位,由此形成多種進位結構。4位0并行進位加法器的運算速度專門快,形成最高進位輸出的延遲時刻專門短,然而以增加硬件邏輯線路為代價。關于長字長的加法器,往往將加法器分成若干組,在組內采納并行進位,組間則采納串行進位或并行進位,由此形成多種進位結構。4位CLA加法器4位CLA加法器16位單級先行進位加法器.算術邏輯單元ALU的功能和機構ALU部件是運算器中的要緊組成部分,又稱為多功能函數發生器,要緊用于完成各種算術運算和邏輯運算。ALU的算術運算部件包含加法器、減法器、乘法器、除法器、增量器(+1)、減量器(-1)、BCD碼運算器等組件。ALU的要緊工作是按照CPU的指令要求執行各種指定的運算,如加法、減法、乘法、除法、比較、邏輯移位等操作。通用寄存器組是一組存取速度最快的儲備器,用于儲存參加運算的操作數和中間結果。訪咨詢寄存器無需高速緩存,也不需要運行總線周期,因此指令的執行速度專門快。幾乎所有

的指令都要將寄存器指定為一個操作數,有些指令還要求將操作數存放在專用的寄存器中。專用寄存器通常用于表示CPU所處于某種系統狀態,ALU中有兩個重要的狀態寄存器:指令指針寄存器IP(即程序計數器PC)和標志寄存器FLAGS。三、儲備器層次機構(一)儲備器的分類岫如他至典廣隨機幢備^KAM)1.按儲爸介蜃*為靜態RAM動態RAM(一)儲備器的分類岫如他至典廣隨機幢備^KAM)1.按儲爸介蜃*為靜態RAM動態RAMMROM盤儲備器分為半導體儲差餐矗曾瞬胤磁撮蟠器和光閃速儲備器(FlashMemory)EPROMEEPROM分為■磁盤、通讀儲備器和串行訪咨詢儲備器3.緩存(Cache)(二)儲備器的層次化結構

儲備器有3個重要的指標:速度、容量和每位價格,一樣來講,速度越快,位價越高;容量越大,位價越低,容量大,速度就越低。上述三者的關系用下圖表示:儲備系統層次結構(三)半導體隨機存取儲備器SRAM儲備器的工作原理1)靜態儲備單元SRAM靜態儲備單元的每個儲備位需要四到六個晶體管組成。比較典型的是六管儲備單元,即一個儲備單元儲備一位信息“0”或“1”。靜態儲備單元儲存的信息比較穩固,信息為非破壞性讀出,故不需要重寫或者刷新操作;另一方面,其結構簡單、可靠性高、速度較快,但其占用元件較多,占硅片面積大,且功耗大,因此集成度不高。寫入Djn讀/寫片選A6A7AllX譯碼器(6)寫入Djn讀/寫片選A6A7AllX譯碼器(6)靜態隨機儲備單元一個典型的SRAM結構圖靜態儲備器的結構。SRAM普遍采納全地址線方式,即芯片地址管腳安排了內部必要的全部行地址和列地址。芯片采納片選信號CS。SRAM儲備器由儲備體、讀寫電路、地址譯碼器和操縱電路等組成。一個典型的SRAM結構如圖所示。DRAM儲備器的工作原理1)動態儲備單元常見的動態RAM儲備單元有三管式和單管式兩種,它們的共特點是靠電容儲備電荷的原理來寄存信息。若電容上存有足夠的電荷表示“”,電容上無電荷表示“0”。電容上的電荷一樣只能堅持l-2ms,因此即使電源不掉電,電容上的電荷會自動消逝。因此,為保證信息的不丟失,必須在2ms之內就要對儲備單元進行一次復原操作,那個過程稱為再生或者刷新。與靜

態RAM相比,動態RAM具有集成度更高、功耗更低等特點,目前被各類運算機廣泛使用。三管動態RAM差不多單元 單管動態RAM差不多單元2)DRAM儲備單元的刷新刷新方式刷新方法特點集中式在整個刷新間隔內,前一段時刻重復進行讀/寫周期或堅持周期,等到需要進行刷新操作時,便暫停讀/寫或堅持周期,而逐行刷新整個儲備器集中時刻刷新。有死時刻存在逐行刷新。適合于高速儲備器分散式把一個儲備系統周期丸分為兩半,周期前半段時刻tm用來讀/寫操作或堅持信息,周期后半段時刻丸作為刷新操作時刻。如此,每通過n個系統周期時刻,整個儲備器便全部刷新一遍逐行刷新。沒有死時刻。白費比較大,因為刷新時刻比承諾的短許多異步式保證在一個刷新周期內將儲備芯片內的所有行刷新一遍,可能等時刻一間距,也可能不等結合了以上兩者的優點,實際應用比較有優勢 —集中式刷新周期 CPUCPUCPU訪內訪內訪內CPUCPU刷新第刷新第訪內訪內1行2CPUCPUCPU訪內訪內訪內CPUI刷新奧CPU刷新第CPUCPUI刷新奧CPU刷新第CPU刷新第訪內11行訪內2行訪內3行分布式新周期CPU刷新最

訪內后1行CPUCPI刷新第CPUCPUCPU刷新第訪內訪內1行訪內訪內訪內2行異步(分布)式刷新周期CPU刷新最訪內后1行DRAM的擴展專門性DRAM地址的專門性咨詢題:行地址和列地址復用,行地址和列地址的定時和選通之間的咨詢題。需要將CPU全地址分為行地址和列地址,以及產生行選通信號RAS和列選通信號CASo(四)只讀儲備器前面介紹的DRAM和SRAM均為可任意讀/寫的隨機儲備器,當掉電時,所儲備的內容消逝,因此是易失性儲備器。只讀儲備器,即使停電,所儲備的內容也不丟失。按照半導體制造工藝的不同,可分為ROM,PROM,EPROM,E2ROM和FlashMemory.只讀儲備器(ROM)掩模式ROM由芯片制造商在制造時寫入內容,以后只能讀而不能再寫入。其差不多儲備原理是以元件的“有/無”來表示該儲備單元的信息(“1”或“0”),能夠用二極管或晶體管作為元件,顯而易見,其儲備內容是可不能改變的。.可編程序的只讀儲備器(PROM)PROM可由用戶按照自己的需要來確定ROM中的內容,常見的熔絲式PROM是以熔絲的通和斷開來表示所存的信息為“1”或“0”。剛出廠的產品,其熔絲是全部接通的。按照需要斷開某些單元的熔絲(寫入)。顯而易見,斷開后的熔絲是不能再接通了,因而一次性寫入的儲備器。掉電后可不能阻礙其所儲備的內容。.可擦可編程序的只讀儲備器(EPROM)為了能修改ROM中的內容,顯現了EPROMo利用浮動柵MOS電路儲存信息,信息的改寫用紫外線照耀即可擦除。.可電擦可編程序只讀儲備器(E2PROM)E2PROM的編程序原理與EPROM相同,但擦除原理完全不同,重復改寫的次數有限制(因氧化層被磨損),一樣為10萬次。其讀寫操作可按每個位或每個字節進行,類似SRAM,但每字節的寫入周期要幾毫秒,比SRAM長得多。E2PROM每個儲備單元采則2個晶體管。其柵極氧化層比EPROM薄,因此具有電擦除功能。.快除讀寫儲備器(FlashMemory)FlashMemory是在EPROM與E2PROM基礎上進展起來的,其讀寫過程和E2PROM不同,FlashMemory的讀寫操作一樣是以塊為單位。(五)主儲備器與CPU的連接1個儲備器的芯片的容量是有限的,它在字數或字長方面與實際儲備器的要求都有專門大差距,因此需要在字向和位向進行擴充才能滿足需要。按照儲備器所需的儲備容量和所提供的芯片的實際容量,能夠運算出總的芯片數。一個儲備器的容量為MXN位,若使用LXK位儲備器芯片,那么,那個儲備器共需要M/LXN/K儲備器芯片。?位擴展

位擴展指的是用多個儲備器器件對字長進行擴充。位擴AddressBus展的連接方式是將多片儲備器的地址、片選己、讀寫操縱端R/W可相應并聯,數據端分不引出。1KX4的SRAM儲備芯片構造1KX8的儲備器(位擴展)

01Of34CW67tv9aaaaaaaaraA0A1MA3MA5MC時的01Of34CW67tv9aaaaaaaaraA0A1MA3MA5MC時的DCD1D2DJD4DSD6D7MA1A2A3A4A5A6A7A2A9DC01D2D3D4D5D6D7MD1D2D3D4D5D6D7MA1A2A3A4A5MA7MA9D0D1D2B(MD5D6D7AddreuBui1KX8SRAM儲備芯片構成4KX8的儲備器(字擴展).字擴展字擴展指的是增加儲備器中字的數量。靜態儲備器進行字擴展時,將各芯片的地址線、數據線、讀寫操縱線相應并聯,而由片選信號來區分各芯片的地址范疇。下圖是1KX8SRAM儲備芯片構成4KX8的儲備。.字位擴展實際儲備器往往需要字向和位向同時擴充。差不多思路可參照位擴展和字擴展。1KX4SRAM儲備芯片構成16Kx8的儲備器(六)雙口RAM和多模塊儲備器.雙端口儲備器雙端口儲備器是一種具有兩個單獨的讀/寫端口及操縱電路的儲備器,通過增加一個讀/寫端口,雙端口儲備器擴展了儲備器的的信息交換能力。雙端口儲備器存在沖突的讀寫操縱咨詢題,當兩端口同時訪咨詢儲備器統一單元時,便發生讀寫沖突。為解決此咨詢題,設置標志。讀寫某個單元之前,檢查標記,訪咨詢單元時,標記置低;讀寫完畢,復原標記高。.多模塊儲備器(1)儲備器的模塊化組織一個由若干個模塊組成的主儲備器是線性編址的。這些地址在各模塊中有兩種安排方式,分不是:順序方式和交叉方式,如表所示。地址高地址低工作方式優點缺點位位順序方式選擇模塊選擇字模塊單獨工作,串行儲備器結構,連續地址位于同一模塊中擴容方便,模塊間故障隔離帶寬受限交叉方式選擇字選擇模塊模塊同時并行工作,并行儲備器結構;連續地址分配在不同的模塊中提升了帶寬,提升了機器運行速度故障不能隔離,一個模塊出錯,程序就出錯(七)高速緩沖儲備器(Cache)程序訪咨詢的局部性從大量的統計中得到的一個規律是,程序中關于儲備空間90%的訪咨詢局限于儲備空間的10%的區域中,而另外10%的訪咨詢則分布在儲備空間的其余90%的區域中。這確實是通常講的局部性原理。訪存的局部性規律包括兩個方面:時刻局部性:如果一個儲備項被訪咨詢,則可能該項會專門快被再次訪咨詢。空間局部性:如果一個儲備項被訪咨詢,則該項及其鄰近的項也可能專門快被訪咨詢。Cache的差不多工作原理Cache通常由兩部分組成,塊表和快速儲備器。其工作原理是:處理機按主存地址訪咨詢儲備器,儲備器地址的高段通過主存-Cache地址映象機構借助查表判定該地址的儲備單元是否在Cache中,如果在,則Cache命中,按Cache地址訪咨詢Cacheo否則,Cache不命中,則需要訪咨詢主存,并從主存中調入相應數據塊到Cache中,若Cache中已寫滿,則要按某種

算法將Cache中的某一塊替換出去,并修改有關的地址映象關系。從那個工作原理我們能夠看出,它差不多涉及到了兩個咨詢題。第一是定位、然后是替換的咨詢題。Cache的存在對程序員是透亮的。其地址變換和數據塊的替|Tag|TagBlockTagBlockTagBlockTagBlock換算法均由硬件實現。通常Cache被集成到CPU內以提升訪咨詢速度。下圖是Cache的差不多結構。Cache和主存之間的映射方式因為處理機訪咨詢差不多上按主存地址訪咨詢的,而Cache的空間遠小于主存,如何明白這一次的訪咨詢內容是不是在Cache中,在Cache中的哪一個位置呢?這就需要地址映象,即把主存中的地址映射成Cache中的地址。讓Cache中一個儲備塊(空間)與主存中若干塊相對應,如此,訪咨詢一個主存地址時,就能夠對應地明白在cache中哪一個地址了。地址映象的方法有三種:直截了當映象、全相聯映象和組相聯映象。(1)直截了當映像直截了當映象確實是將主存地址映象到Cache中的一個指定地址。任何時候,主存中儲備單元的數據只能調入到Cache中的一個位置,這是固定的,若那個位置已有數據,則產生沖突,原先的塊將無條件地被替換出去。每個主存塊只與一個Cache塊對應,映射關系:i=jmodC或者i=jmod2cCache字塊2C-1字塊2CCache字塊2C-1字塊2C字塊2C+1塊Cache?假設Cache字塊地址字段的內容為00—01字塊0字塊1主存字塊0字塊1直截了當映射直截了當映像的缺點是不夠靈活,每個主存塊只能固定映射到Cache的某個塊上,即使存在閑暇的塊,也不能使用,Cache空間得不到充分利用。(2)全相聯映象全相聯映象確實是任何主存塊可映象到任何Cache塊的方式。在這種方式下,主存中儲備單元的數據可調入到Cache中的任意位置。只有在Cache中的塊全部裝滿后才會顯現塊沖突。和直截了當映像方式相比,主存的塊標記從t增加到t+c位,使得Cache標記的位數增多,而且訪咨詢Cache時主存塊標記需要和Cache的全部標記位進行比較,才能判定出所訪咨詢主存地址的內容是否已在Cache內。這種比較通常采納''按內容尋址”的相聯儲備器來完成。主存Cache位主存Cache位b位全相連映射(3)組相聯映象組相聯映象是直截了當映射和全相連映射的折中。把Cache分為Q組,每組R塊,并有以下關系:i=jmodQ其中,i為Cache的組號,j為主存的塊號。是將儲備空間的頁面分成若干組,各組之間的直截了當映象,而組內各塊之間則是全相聯映象。下圖中,Cache分成2q個組,q=c-r,每組包含2c個塊。主存標記字段為s=t+r位。Cachc(r=l)主存Cachc(r=l)主存組相聯映射Cache中主存塊的替換算法在直截了當映象方式下,不存在塊替換的算法,因為每一塊的位置映象是固定的,需要哪一塊數據就可直截了當確定地將該塊數據調入上層確定位置。而其他兩種映象就存在替換策略的咨詢題,確實是要選擇替換到哪一個Cache塊。即替換算法。思想優點缺點隨機算法RAND用軟的或硬的隨機數產生器產生上層中要被替換的頁號簡單、易于實現沒有利用上層儲備器使用的”歷史信息",沒有反映等程序局部性,命中率低。先進先出FIFO選擇最早裝入上層的頁作為被替換的頁實現方便,利用了主存歷史的信息不能正確反映程序局部性原理,命中率不高,可能顯現一種專門現象。近期最少使用法LRU選擇近期最少訪咨詢的頁作為被替換的頁比較正確反映程序局部性,利用訪存的歷史信息,命中率較高實現較復雜優化替換算法OPT將以后近期不用的頁換出去命中率最高,可作為衡量其他替換算法的標準不現實,只是一種理想算法Cache寫策略對Cache的寫操作,情形比讀操作要復雜一些。由于寫入Cache時,并沒有寫入主存,因此就顯現Cache和主存數據不一致的情形。如何處理Cache和主存不一致的方法就稱為更新策略更新策略思想優點缺點寫回法是指在CPU執行寫操作時,信息只寫入Cache中,僅當需要替換時,才將改寫過的Cache塊先送回主存(寫回),然后再調塊(設置dirty位)有利于省去許多將中間結果寫入主存的無謂開銷。需設修改位增加Cache的復雜性全寫法(寫直達法)在寫操作時,將數據同時寫入Cache和主存實現開銷小、簡單為了寫中間結果白費了許多時刻另外,當寫不命中時(也確實是寫Cache塊時,這塊早被人替換出去而在Cache中找不到時)是不是要把這塊再取回Cache中,有兩個解決方法:不按寫分配法,確實是直截了當寫到主存里,不再把該地址對應的塊調回Cache中。按寫分配法,確實是寫到主存,而且把這一塊從主存中調入到Cacheo一樣寫回法用按寫分配法,全寫法則采納不按寫分配。(八)虛擬儲備器.虛擬儲備器的差不多概念虛擬儲備器是主存的擴展,虛擬儲備器的空間大小取決于運算機的訪存能力而不是實際外存的大小,實際儲備空間能夠小于虛擬地址空間。從程序員的角度看,外存被看作邏輯儲備空間,訪咨詢的地址是一個邏輯地址(虛地址),虛擬儲備器使儲備系統既具有相當于外存的容量又有接近于主存的訪咨詢速度。虛擬儲備器的訪咨詢也涉及到虛地址與實地址的映象、替換算法等,這與Cache中的類似,前面我們講的地址映象以塊為單位,而在虛擬儲備器中,地址映象以頁為單位。設計虛擬儲備系統需考慮的指標是主存空間利用率和主存的命中率。虛擬儲備器與Cache儲備器的治理方法有許多相同之處,它們都需要地址映象表和地址變換機構。然而二者也是不同的。虛擬儲備器的三種不同治理方式:按儲備映象算法,分為段式、頁式和段頁式等,這些治理方式的差不多原理是類似的。.頁式虛擬儲備器頁式治理是把虛擬儲備空間和實際空間等分成固定大小的頁,各虛擬頁可裝入主存中的不同實際頁面位置。頁式儲備中,處理機邏輯地址由虛頁號和頁內地址兩部分組成,實際地址也分為頁號和頁內地址兩部分,由地址映象機構將虛頁號轉換成主存的實際頁號。頁式治理用一個頁表,包括頁號、每頁在主存中起始位置、裝入位等。頁表是虛擬頁號與物理頁號的映射表。頁式治理由操作系統進行,對應用程序員的透亮的。頁式地址變換.段式虛擬儲備器段式治理把主存按段分配的儲備治理方式。它是一種模塊化的儲備治理方式,每個用戶程序模塊可分到一個段,該程序模塊只能訪咨詢分配給該模塊的段所對應的主存空間。段長能夠任意設定,并可放大和縮小。系統中通過一個段表指明各段在主存中的位置。段表中包括段標基址寄存器 虛存地址段表(在主存中)段名(段號)、段起點、裝入位和段長等。段表本身也是一個段。段一樣是按程序模塊分的。段式虛存地址到實存地址的變換.段頁式虛擬儲備器段頁式治理:是上述兩種方法的結合,第一,把程序按邏輯單位分段以后,再把每段分成固定大小的頁。訪存通過一個段表和若干個頁表進行。段的長度必須是頁長的整數倍,段的起點必須是某一頁的起點。程序對主存的調入/調出是按頁面進行的,但它又按段實現共享和愛護,兼備頁式和段式的優點。缺點是在映像過程中需要多次查表。在段頁式虛擬儲備系統中,每道程序是通過一個段表和一組頁表來進行定位的。段表中的每個表目對應一個段,每個表目有一個指向該段的頁表起始地址及該段的操縱愛護信息。由頁表指明該段各頁在主存中的位置以及是否已裝入、己修改等狀態信息。如果有多個用戶在機器上運行,多道程序的每一道需要一個基號,由它指明該道程序的段表起始地址。虛擬地址格式如下:基號段號頁號頁內地址.TLB(快表)在虛擬儲備器中進行地址變換時,需要虛頁號變換成主存中實頁號的內部地址變換,這一樣通過查內頁表實現。當表中該頁對應的裝入位為真時,表示該頁在主存中,可按主存地址咨詢主存;如果裝入位為假時,表示該頁不在儲備器中,就產生頁失效中斷,需從外存調入頁。中斷處理時先通過外部地址變換,一樣通過查外頁表,將虛地址變換為外存中的實際地址,到外存中去選頁,然后通過I/O通道調入內存。當外存頁面調入主存中時還存在一個頁面替換略的咨詢題。提升頁表的訪咨詢速度是提升地址變換速度的關鍵。因為,每次訪存都要讀頁表,如果頁存放在主存中,就意味著訪存時刻至少是兩次訪咨詢主存的時刻,如此查表的代價大大。只有內部地址變換速度提升到使訪咨詢主存的速度接近于不采納虛擬儲備器時的訪主存速度時,虛擬儲備器才能有用。

四、指令系統(一)指令格式.指令的差不多格式運算機是通過執行指令來處理各種數據的。為了指出數據的來源、操作結果的去向及所執行的操作,一條指令必須包含下列信息:(1)操作碼,具體講明了操作的性質及功能。(2)操作數的地址。(3)操作結果的儲備地址。(4)下一條指令的地址。從上述分析可知,一條指令實際上包括兩種信息即操作碼和地址碼。操作碼(operationcode)用來表示該指令所要完成的操作(如加、減、乘、除、數據傳送等),其長度取決于指令系統中的指令條數。地址碼用來描述該指令的操作對象,或者直截了當給出操作數或者指出操作數的儲備器地址或寄存器地址(即寄存器名)。.定長操作碼指令格式1)零地巴指令OPCODEOPCODE——操作碼指令中只有操作碼,而沒有操作數或沒有操作數地址。這種指令有兩種可能:(1)無需任何操作數,如空操作指令,停機指令等。一地址指令格式:OPCODE格式:OPCODEOPCODE——操作碼A——操作數的儲備器地址或寄存器名指令中只給出一個地址,該地址既是操作數的地址,又是操作結果的儲備地址。如加1,減1和移位等單操作數指令均采納這種格式,對這一地址所指定的操作數執行相應的操作后,產生的結果又存回該地址中。3)二地址指令格式:OPCODEAlA2OPCODEAlA2 格式:OPCODEAlA2OPCODEAlA2 操作碼第一個源操作數的儲備器地址或寄存器地址。第二個源操作數和存放操作結果的儲備器地址或寄存器地址。這是最常見的指令格式,兩個地址指出兩個源操作數地址,其中一個依舊存放結果的目的地址。對兩個源操作數進行操作碼所規定的操作后,將結果存入目的地址,在本例中即為A2指定的地址3)三地址指令OPCODEAlA2A3OPCODEAlA2A3格式:OPCODE——操作碼Al——第一個源操作數的儲備器地址或寄存器地址A2——第二個源操作數的儲備器地址或寄存器地址A3——操作結果的儲備器地址或寄存器地址其操作是對Al,A2指出的兩個源操作數進行操作碼(0PCODE)所指定的操作,結果存入A3中。4)多地址指令在某些性能較好的大、中型機甚至高檔小型機中,往往設置一些功能專門強的,用于處理成批數據的指令,如字符串處理指令,向量、矩陣運算指令等。為了描述一批數據,指令中需要多個地址來指出數據存放的首地址、長度和下標等信息3.擴展操作碼指令格式設某機器的指令長度為16位,包括4位差不多操作碼字段和三個4位地址字段,其格式下:OPCODE(4)A1(4)A2(4)A3(4)4位差不多操作碼有16個碼點(即有16種組合),若全部用于表示三地址指令,則只有16條。然而,若三地址指令僅需15條,兩地址指令需15條,一地址指令需15條,零地址指令需16條,共61條指令,應如何安排操作碼?明顯,只有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給出。(二)指令的尋址方式.有效地址的概念操作數的真實地址稱為有效地址,記做EA,它是尋址方式和形式地址共同來決定的。.數據尋址和指令尋址尋址方式是指確定本條指令的數據地址以及下一條將要執行的指令的地址,與硬件結構緊密有關,尋址方式分為指令尋址和數據尋址兩大類指令尋址分為順序尋址和跳躍尋址兩種。順序尋址能夠通過程序計數器PC加1自動形成下一條指令的地址,跳躍尋址則通過轉移類指令實現,是通過對PC的運算得到新的下一條指令的地址。.常見尋址方式1)趕忙尋址所需的操作數由指令的地址碼部分直截了當給出,就稱為趕忙數(或直截了當數)尋址方式。這種方式的特點是取指時,操作碼和一個操作數同時被取出,不必再次訪咨詢儲備器,提升了指令的執行速度。然而由于這一操作數是指令的一部分,不能修改,而一樣情形下,指令所處理的數據差不多上在持續變化的(如上條指令的執行結果作為下條指令的操作數),故這種方式只能適用于操作數固定的情形。通常用于給某一寄存器或儲備器單元賦初值或提供一個常數等。2)直截了當尋址指令的地址碼部分給出操作數在儲備器中的地址。3)隱含尋址操作數的地址隱含在操作碼或者某個寄存器中。4)間接尋址在尋址時,有時按照指令的地址碼所取出的內容既不是操作數,也不是下一條要執行的指令,而是操作數的地址或指令的地址,這種方式稱為間接尋址或間址。5)寄存器尋址運算機的中央處理器一樣設置有一定數量的通用寄存器,用以存放操作數、操作數的地址或中間結果。如果指令地址碼部分給出某一通用寄存器地址,而且所需的操作數就在這一寄存器中,則稱為寄存器尋址。通用寄存器的數量一樣在幾個至幾十個之間,比儲備單元少專門多,因此地址碼短,而且從寄存器中存取數據比從儲備器中存取快得多,因此這種方式能夠縮短指令長度、節約儲備空間,提升指令的執行速度,在運算機中得到廣泛應用。6)寄存器間接尋址寄存器中給出的是操作數的地址,因此還需要訪咨詢一次儲備器才能得到操作數。7)基址尋址在運算機中設置一個專用的基址寄存器,或由指令指定一個通用寄存器為基址寄存器。操作數的地址由基址寄存器的內容和指令的地址碼A相加得到8)變址尋址指令地址碼部分給出的地址A和指定的變址寄存器X的內容通過加法器相加,所得的和作為地址從儲備器中讀出所需的操作數。這是幾乎所有運算機都采納的一種尋址方式。9)相對尋址把程序計數器PC的內容(即當前執行指令的地址)與指令的地址碼部分給出的位移量(disp)之和作為操作數的地址或轉移地址,稱為相對尋址。要緊用于轉移指令,執行本條指令后,將轉移到(PC)+disp,(PC)為程序計數器的內容。相對尋址有兩個特點:1)轉移地址不是固定的,它隨著PC值的變化而變化,同時總是與PC相差一個固定值disp,因此不管程序裝人儲備器的任何地點,均能正確運行,對浮動程序專門適用。2)位移量可正、可負,通常用補碼表示。如果位移量為In位,則這種方式的尋址范疇在(PC)-2n-l-(PC)+2n-l-l之間運算機的程序和數據一樣是分開存放的,程序區在程序執行過程中不承諾修改。在程序與數據分區存放的情形下,不用相對尋址方式來確定操作數地址。10)堆棧尋址在一樣運算機中,堆棧要緊用來暫存中斷和子程序調用時現場數據及返回地址,用于訪咨詢堆棧的指令只有壓入(即進棧)和彈出(即退棧)兩種,它們實際上是一種專門的數據傳送指令:壓入指令(PUSH)是把指定的操作數送入堆棧的棧頂;彈出指令(POP)的操作剛好相反,是把棧頂的數據取出,送到指令所指定的目的地。一樣的運算機中,堆棧從高地址向低地址擴展,即棧底的地址總是大于或等于棧頂的地址(也有少數運算機剛好相反)當執行壓入操作時,第一把堆棧指針(SP)減量(減量的多少取決于壓入數據的字節數,若壓入一個字節,則減1;若壓入兩個字節,則減2,以此類推),然后把數據送人SP所指定的單元;當執行彈出操作時,第一把sp所指定的單元(即棧頂)的數據取出,然后按照數據的大小(即所占的字節數)對SP增量。(三)CISC和RISC的差不多概念CISC(復雜指令集運算機)隨著VLSI技術的進展,運算機的硬件成本持續下降,軟件成本持續提升,使得人們熱衷于在指令系統中增加更多的指令和復雜的指令,來提升操作系統的效率,并盡量縮短指令系統與高級語言的語義差不,以便于高級語言的編譯和降低軟件成本。RISC(簡單指令集運算機)RISC的產生1975年IBM公司開始研究指令的合理性咨詢題,IBM的Johncocke提出了RISC的方法。對CISC的測試表明:最長使用的是一些簡單指令,占指令總數的20%,但在程序中顯現的頻率卻占80%。 而占20%的復雜指令,為實現其功能而設計的微程序代碼卻占總代碼的80%oCISC研制時刻長、成本高、難于實現流水線;因此顯現了RIC技術。RISC的特點1)優先選取使用頻率最高的一些簡單指令;2)指令長度固定;3)只有取數/存數指令(load/store)訪咨詢內存;4)CPU中的寄存器數量專門多;5)大部分指令在一個或小于一個機器周期完成;6)硬布線操縱邏輯為主,不用或少用微碼操縱;7)一樣用高級語言編程,專門重視編譯優化,以減少程序執行時刻。(3)RISC的進展(4)CISC機與RISC機的要緊特點對比CISCRISC指令系統復雜、龐大簡單、精簡指令數一樣大于200一樣小于100指令格式一樣大于4一樣小于4指令字長一樣大于4一樣小于4尋址方式不固定固定32位可訪咨詢指令不加限制只有LOAD/STORE指令各種指令使用頻率相差專門大相差不大各種指令執行時刻相差專門大絕大多數在一個機器周期完成優化編譯實現專門難較容易程序源代碼長度較短較長操縱邏輯實現方式絕大多數為微程序操縱絕大多數為硬連線操縱五、中央處理器(CPU)(一)CPU的功能和差不多結構CPU要緊是由運算器和操縱器組成,由于運算器部分在第二部分介紹過,因此本節要緊介紹操縱器的組成和工作原理。1.操縱器的功能運算機對信息進行處理(或運算)是通過程序的執行而實現的,程序是完成某個確定算法的指令序列,要預先存放在儲備器中。操縱器的作用是操縱程序的執行,它必須具有以下差不多功能:(1)取指令(2)分析指令(3)執行指令運算機持續重復順序執行上述三種差不多操作:取指、分析、執行;再取指、再分析、再執行,如此循環,直到遇到停機指令或外來的干預為止。(4)操縱程序和數據的輸入與結果輸出按照程序的安排或人的干預,在適當的時候向輸入輸出設備發出一些相應的命令來完成I/O功能,這實際上也是通過執行程序來完成的。(5)對專門情形和某些要求的處理當機器顯現某些專門情形,諸如算術運算的溢出和數據傳送的奇偶錯等;或者某些外來要求,諸如磁盤上的成批數據需送儲備器或程序員從鍵盤送入命令等,現在由這些部件或設備發出:“中斷要求”信號。DMA要求信號。操縱器的組成按照對操縱器功能分析,得出操縱器的差不多組成如下:(1)程序計數器(PC)即指令地址寄存器。在某些運算機中用來存放當前正在執行的指令地址;而在另一些運算機中則用來存放立即要執行的下一條指令地址;而在有指令預取功能的運算機中,一樣還需要增加一個程序計數器用來存放下一條要取出的指令地址。有兩種途徑來形成指令地址,其一是順序執行的情形,通過程序計數器加“1”形成下一條指令地址(如儲備器按字節編址,而指令長度為4個字節,則加"4”)。其二是遇到需要改變順序執行程序的情形,一樣由轉移類指令形成轉移地址送往程序計數器,作為下一條指令的地址。(2)指令寄存器(IR)用以存放當前正在執行的指令,以便在指令執行過程中,操縱完成一條指令的全部功能。(3)地址寄存器(AR)用以儲存CPU正在訪咨詢內存單元的地址。(4)數據緩沖寄存器(DR)用以暫存讀出或寫入內存的數據。(5)指令譯碼器或操作碼譯碼器對指令寄存器中的操作碼進行分析講明,產生相應的操縱信號。在執行指令過程中,需要形成有一定時序關系的操作操縱信號序列,為此還需要下述組成部分。(6)脈沖源及啟停線路脈沖源產生一定頻率的脈沖信號作為整個機器的時鐘脈沖,是機器周期和工作脈沖的基準信號,在機器剛加電時,還應產生一個總清信號(reset)。啟停線路保證可靠地送出或封鎖時鐘脈沖,操縱時序信號的發生或停止,從而啟動機器工作或使之停機。(7)時序操縱信號形成部件當機器啟動后,在CLK時鐘作用下,按照當前正在執行的指令的需要,產生相應的時序操縱信號,并按照被控功能部件的反饋信號調整時序操縱信號。例如,當執行加法指令時,若產生運算溢出的專門情形,一樣不再執行將結果送入目的寄存器(或儲備單元)的操作,而發出中斷要求信號,轉入中斷處理;又如執行條件轉移指令時,按照不同的條件產生不同的操縱信號,從而進入適當的程序分支。(二)指令執行過程.指令執行的時序運算機工作的過程是取指令、分析指令、執行指令三個差不多動作的重復??紤]到所有的器件中(寄存器、儲備器)儲備器的速度最慢,因此,取最慢的器件工作時刻(周期)作為整個工作的最長同步標準。運算機的工作時序是按照儲備器的工作周期劃分的。每個儲備器工作周期又稱為機器周期。因此,每個機器周期至少完成一個差不多操作。一樣最長的操作是訪咨詢儲備器(讀/寫),那個時刻也用于訪咨詢外設接口(寄存器)。如果,某個操作,例如利用運算器執行一次運算,如果不訪咨詢儲備器,即使占用的時刻專門短,然而,也必須為其劃分一個機器周期。因此,機器周期是運算時序劃分的最大單位?,F在我們為運算機的執行時刻進行最差不多的劃分:由于運算機持續地重復執行每個指令,因此,我們將執行的時刻劃分為一條一條指令執行所占用的時刻,如下:執行指令1執行指令2執行指令3執行指令4執行指令5我們將每指令占用的時刻稱為指令周期。由于每條指令的功能不一樣,因此執行的時刻也不同,指令周期長短不一樣。而每條指令的執行,又能夠是取指令,分析指令,執行指令。由于取指令必須訪咨詢儲備器,因此占用一個機器周期。分析指令是由指令譯碼電路完成的,所占用的時刻極短,無需分配一個完整的機器周期。一樣是在取指周期后期(終止之前的專門短時刻內)就能夠完成。指令的執行較為復雜:可能不訪咨詢儲備器;訪咨詢一次儲備器;訪咨詢兩次儲備器等。因此,可能是一個機器周期到幾個機器周期。因此,每條指令的執行過程如下:取指周期執行周期1執行周期2執行周期3執行周期4第一個機器周期總是取指周期,而指令的地址總是從PC中獲得,當發出讀取儲備器命令后,指令總是從數據總線DB送回,CPU同意到指令之后,將指令放在指令寄存器IR之中。指令在IR中一直保留到取下一條指令為止。第二個機器周期開始,按照指令有所不同:執行一次ALU運算:分配一個機器周期。執行訪咨詢一次儲備器:分配一個機器周期。因此,按照指令執行的不同情形,將會得到不同指令執行所占用的機器周期。按照每個機器周期完成的任務不同,我們將每個機器周期按照任務命名。如同用取指周期命名第一個機器周期一樣。.指令執行過程舉例假設指令格式如下:操作碼rs,rdrslimm(Disp)rs,rd,rsl為通用寄存器地址;imm(或disp)為趕忙數(或位移量)。加法指令功能:將寄存器(rs)中的一個數與儲備器中的一個數(其地址為(rsl)+disp)相加,結果放在寄存器rd中,rs與rd為同一寄存器。加法指令完成以下操作:(1)取指周期從儲備器取指令,送入指令寄存器,并進行操作碼譯碼(分析指令)。程序計數器加1,為下一條指令作好預備。操縱器發出的操縱信號:PC-AB,W/R=O,M/IO=1;DB-IR;PC+lo(2)運算地址周期運算數據地址,將運算得到的有效地址送地址寄存器AR。操縱器發出的操縱信號:rsl—GR,(rsl)-ALU,disp-ALU(將rsl的內容與disp送ALU);“+”(加法命令送ALU);ALU-AR(有效地址送地址寄存器)。(3)取數周期到儲備器取數。操縱器發出的操縱信號:AR-AB,W/R=O,M/IO=1;DB-DR(將地址寄存器內容送地址總線,同時發訪存讀命令,儲備器讀出數據送數據總線后,打入數據寄存器)。(4)執行周期進行加法運算,結果送寄存器,并按照運算結果置狀態位N,Z,V,Co操縱器送出的操縱信號:rs,rd-GR,(rs)-ALU,DR-ALU(兩個源操作數送ALU);ALU-*rd(運算結果送寄存器rd)(三)數據通路的功能和差不多結構CPU的數據通路是連接CPU內部各個部件以及和CPU外部個部件之間的數據和操縱信號的連接關系圖,數據通路的差不多結構如下圖所示。(四)操縱器的功能和工作原理.硬布線操縱器操縱器操縱信號的產生是采納邏輯電路,也稱組合邏輯電路操縱方式?!睍r序操縱信號形成部件”是由硬邏輯布線完成的。實際設計中,需要幾十?幾百條指令,確定每條指令所需的機器周期,將情形相同的指令歸并在一起,列出表達式,畫出邏輯圖。(1)時序與節拍每一步由一個機器周期來完成,假設采納4個機器周期,總之,需要4個不同的信號輸出,代表4個不同的周期。(2)操作碼譯碼器指令的操作碼部分指出本指令將執行什么指令,如加法、減法等。關于不同的指令,采納不同的代碼表示。(3)操作操縱信號的產生以加法指令為例,加法指令的完成是由4個機器周期cy1、cy2、cy3、cy4組成,分不是取指、運算地址、取數、運算4個機器周期。將所有的機器周期的操作操縱信號的邏輯表達式全部寫出來,就會得到各個操作操縱信號的所有表達式,再將這些表達式安每個操作操縱信號組合起來,就得到某個操作操縱信號的表達式。取指周期需要產生的操作操縱信號如下:PC-AB=cyl ;將PC送地址總線

ADS=cyl?Tl ;儲備器地質有效M/IO=cyl ;儲備器操作W/R=cyl ;讀操作DB-*IR=cyl ;將讀出的結果送IRPC+l=cyl ;將程序計數器加1運算地址周期cy2需要完成有效地址((rsl)+Disp)的運算。;送通用寄存器地址;通用寄存器送ALU;偏移量送ALU;ALU執行加法操作;;送通用寄存器地址;通用寄存器送ALU;偏移量送ALU;ALU執行加法操作;運算結果送地址總DispfALU=力口法指令,cy2“+”=加法指令?cy2ALUfAR=力口法指令,cy2例如,“+”操作操縱信號在加法指令的cy2(運算有效地址)和cy4(操作數相加)時需要;減法指令的cy2(運算有效地址)時需要;轉移指令的cy2(運算有效地址)時需要;…。因此,“+”操作操縱信號的邏輯表達式如下:"+”=力口法指令?(cy2+cy4)+減法指令?cy2+轉移指令?cy2+…設機器有7位操作碼(OPO?0P6),假設加法指令的操作碼為0001100,形成的加法指令信號的邏輯表達式為:力口法指令=OPOOP1OP2OP3OP4OP5OP6如,某機器128條指令,用7位操作碼(OPO?OP6),如果其中有16條算術邏輯運算指令,能夠將這些指令的3位操作碼都設計相同的編碼,如OPOOP10P2=001,而其他位OP3?OP6編碼表示16個不同的指令。設命令A是所有算術邏輯運算在cy2周期需要產生的,邏輯表達式:人=加法指令?cy2+減法指令?cy2+邏輯加指令?cy2+…=(加法指令?+減法指令+邏輯加指令+…),cy2=OPO?OP1?OP2?cy2只需要一個與門,就可實現命令A。.微程序操縱器(1)微程序、微指令和微命令在運算機中,一條指令的功能是通過按一定次序執行一系列差不多操作完成的,這些差不多操作稱為微操作。例如,前面講到的加法指令,分成四步(取指令、運算地址、取數、加法運算)完成,每一步實現若干個微操作。實現這些微操作的操縱命令確實是微命令。微操作是指最差不多的、不可再分的操作,如前面提到的:PC-*AB;W/R=0;DB—IR等。PC-*AB等確實是微命令。微指令:在微程序操縱的運算機中,將由同時發出的操縱信號所執行的一組微操作稱為微指令,因此微指令確實是把同時發出的操縱信號的有關信息聚攏起來而形成的。將一條指令分成若干條微指令,按次序執行這些微指令,就能夠實現指令的功能。組成微指令的微操作又稱微命令。微程序:運算機的程序由指令序列構成,而運算機每條指令的功能均由微指令序列講明完成,這些微指令序列的集合就叫做微程序。(2)微指令的編碼方式;1)直截了當操縱法在微指令的操縱字段中,每一位代表一個微命令,在設計微指令時,是否發出某個微命令,只要將操縱字段中相應位置成“1”或“0”,如此就可打開或關閉某個操縱門,這確實是直截了當操縱法。2)字段直截了當編譯法在運算機中的各個操縱門,在任一微周期內,不可能同時被打開,而且大部分是關閉的(相應的操縱位為"0”)。所謂微周期,指的是一條微指令所需的執行時刻。如果有若干個(一組)微命令,在每次選擇使用它們的微周期內,只有一個微命令起作用,那么這若干個微命令是互斥的。選出互斥的微命令,并將這些微命令編成一組,成為微指令字的一個字段,用二進制編碼來表示,確實是字段直截了當編譯法。3)字段間接編譯法字段間接編譯法是在字段直截了當編譯法的基礎上,進一步縮短微指令字長的一種編譯法。如果在字段直截了當編譯法中,還規定一個字段的某些微命令,要兼由另一字段中的某些微命令來講明,稱為字段間接編譯法。(3)微地址的形成方式1)微程序入口地址的形成<1>一級轉移方式當操作碼的位數與位置固定時,可直截了當使操作碼與入口地址的部分位對應。<2>多級轉移方式先按照指令類型標志轉移到某條微指令,以區分出是哪一大類,然后能夠進一步按指令操作碼轉移,區分出是該指令中的哪一類具體操作。2)微程序后繼地址的形成<1>以增量方式產生后繼微地址。在順序執行微指令時,后繼微地址由現行微地址加上一個增量(通常為1)形成的;而在非順序執行時則要產生一個轉移微地址。<2>增量與下址字段結合產生后繼微地址將微指令的下址字段分成兩部分:轉移操縱字段BCF和轉移地址字段BAF,當微程序實現轉移時,將BAF送nPC,否則順序執行下一條微指令(uPC+1)。(五)指令流水線.指令流水線的差不多概念(1)流水線差不多原理流水線技術是一種明顯提升指令執行速度與效率的技術。方法是:指令取指完成后,不等該指令執行完畢即可取下一條指令。

如果把一條指令的講明過程進一步細分,例如,把分析、執行兩個過程分成取指、譯碼、執行、訪存和寫回寄存器五個子過程,并用五個子部件分不處理這五個子過程。如此只需在上一指令的第一子過程處理完畢進入第二子過程處理時,在第一子部件中就開始對第二條指令的第一子過時間 時間單元指令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)阻礙流水線性能的因素在流水線中會顯現三種有關,阻礙流水線的暢通流淌,這三種有關是結構有關、數據有關和操縱有關。結構有關是當多條指令進人流水線后,硬件資源滿足不了指令重疊執行的要求時產生的。數據有關是指令在流水線中重疊執行時,當后繼指令需要用到前面指令的執行結果時發生的。操縱有關是當流水線遇到分支指令和其他改變PC值的指令時引起的。(3)流水線性能流水線的性能通常用吞吐率、加速比和效率3項指標來衡量。1)吞吐率在指令流水線中,吞吐率是指單位時刻內流水線所完成的指令或輸出結果的數量。2)加速比流水線的加速比是指m段流水線的速度與等功能的非流水線的速度之比。3)效率效率是指流水線中個功能段的利用率。.超標量和動態流水線的差不多概念(1)超標量在超標量的處理器結構中,整數和浮點數運算、裝入、儲備以及條件轉移等一般操作指令能夠同時啟動并獨立執行。超標量流水CPU是指集成了多條流水線結構的CPU,當流水線滿載時,每個時鐘周期能夠完成一條以上的指令。(2)動態流水線流水線按功能可分成單功能流水線和多功能流水線兩種。單功能流水線只完成一種功能。如浮點加法或乘法流水線。多功能流水線則可完成多種功能,它承諾在不同時刻,甚至同一時刻內在流水線內連接不同功能段的子集來實現不同功能。流水線按工作方式可分為靜態流水線和動態流水線兩種。在靜態流水線中,同一時刻內它只能以一種功能方式工作。它能夠是單功能的,也能夠是多功能的。當是多功能流水線時,則從一種功能方式變為另一種功能方式時,必須先排空流水線,然后為另一種功能設置初始條件后方可使用。明顯,不期望這種功能的轉換頻繁的發生,否則將嚴峻阻礙流水線的處理效率。動態流水線則承諾在同一時刻內將不同的功能段連接成不同的功能子集

溫馨提示

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

評論

0/150

提交評論