計算機組成原理考研知識點非常全_第1頁
計算機組成原理考研知識點非常全_第2頁
計算機組成原理考研知識點非常全_第3頁
計算機組成原理考研知識點非常全_第4頁
計算機組成原理考研知識點非常全_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上計算機組成原理一, 計算機系統(tǒng)概述(一) 計算機發(fā)展歷程第一臺電子計算機ENIAC誕生于1946年美國賓夕法尼亞大學(xué).ENIAC用了18000電子管,1500繼電器,重30噸,占地170m2,耗電140kw,每秒計算5000次加法.馮諾依曼(VanNeumann)首次提出存儲程序概念,將數(shù)據(jù)和程序一起放在存儲器,使編程更加方便.50年來,雖然對馮諾依曼機進行很多改革,但結(jié)構(gòu)變化不大,仍稱馮諾依曼機.一般把計算機的發(fā)展分為五個階段:發(fā)展階段時間硬件技術(shù)速度/(次/秒)第一代1946-1957電子管計算機時代40 000第二代1958-1964晶體管計算機時代200 00

2、0第三代1965-1971中小規(guī)模集成電路計算機時代1 000 000第四代1972-1977大規(guī)模集成電路計算機時代10 000 000第五代1978-現(xiàn)在超大規(guī)模集成電路計算機時代100 000 000 ENIAC(Electronic Numerical Integrator And Computer)電子數(shù)字積分機和計算機 EDVAC(Electronic Discrete Variable Automatic Computer)電子離散變量計算機 組成原理是講硬件結(jié)構(gòu)的 系統(tǒng)結(jié)構(gòu)是講結(jié)構(gòu)設(shè)計的 摩爾定律 微芯片上的集成管數(shù)目每3年翻兩番.處理器的處理速度每18個月增長一倍. 每代芯片

3、的成本大約為前一代芯片成本的兩倍 新摩爾定律 全球入網(wǎng)量每6個月翻一番. 數(shù)學(xué)家馮·諾依曼(von Neumann)在研究EDVAC機時提出了“儲存程序”的概念.以此為基礎(chǔ)的各類計算機通稱為馮·諾依曼機.它有如下特點:計算機由運算器,控制器,存儲器,輸入和輸出五部分組成指令和數(shù)據(jù)以同等的地位存放于存儲器內(nèi),并可按地址尋訪指令和數(shù)據(jù)均用二進制數(shù)表示指令由操作碼和地址碼組成,操作碼用來表示操作的性質(zhì),地址碼用來表示操作數(shù)在存儲器中的位置指令在存儲器內(nèi)按順序存放機器以運算器為中心,輸入輸出設(shè)備與存儲器間的數(shù)據(jù)傳送通過運算器完成圖中各部件的功能·運算器用來完成算術(shù)運算和邏

4、輯運算并將的中間結(jié)果暫存在運算器內(nèi)·存儲器用來存放數(shù)據(jù)和程序·控制器用來控制,指揮程序和數(shù)據(jù)的輸入,運行以及處理運行結(jié)果·輸入設(shè)備用來將人們熟悉的信息轉(zhuǎn)換為機器識別的信息·輸出設(shè)備將機器運算結(jié)果轉(zhuǎn)為人熟悉的信息形式運算器最少包括3個寄存器(現(xiàn)代計算機內(nèi)部往往設(shè)有通用寄存器)和一個算術(shù)邏輯單元(ALU Arithmetic Logic Unit).其中ACC(Accumulator)為累加器,MQ(Multiplier-Quotient Register)為乘商寄存器,X為操作數(shù)寄存器,這3個寄存器在完成不同運算時,說存放的操作數(shù)類別也各不相同.計算機的主

5、要硬件指標 (4.a) 主機完成一條指令的過程以取數(shù)指令為例(4.b) 主機完成一條指令的過程以存數(shù)指令為例(二) 計算機系統(tǒng)層次結(jié)構(gòu)1. 計算機硬件的基本組成計算機硬件主要指計算機的實體部分,通常有運算器,控制器,存儲器,輸入和輸出五部分.CPU是指將運算器和控制器集成到一個電路芯片中.2. 計算機軟件的分類計算機軟件按照面向?qū)ο蟮牟煌煞謨深?系統(tǒng)軟件:用于管理整個計算機系統(tǒng),合理分配系統(tǒng)資源,確保計算機正常高效地運行,這類軟件面向系統(tǒng).(包括:標準程序庫,語言處理程序,OS,服務(wù)程序,數(shù)據(jù)庫管理系統(tǒng),網(wǎng)絡(luò)軟件)應(yīng)用軟件:是面向用戶根據(jù)用戶的特殊要求編制的應(yīng)用程序,這類軟件通常實現(xiàn)用戶的某

6、類要求.3. 計算機的工作過程(1)計算機的工作過程就是執(zhí)行指令的過程 指令由操作碼和操作數(shù)組成:操作碼地址碼 操作碼指明本指令完成的操作地址碼指明本指令的操作對象(2)指令的存儲 指令按照存儲器的地址順序連續(xù)的存放在存儲器中.(3)指令的讀取 為了紀錄程序的執(zhí)行過程,需要一個記錄讀取指令地址的寄存器,稱為指令地址寄存器,或者程序計數(shù)器.指令的讀取就可以根據(jù)程序計數(shù)器所指出的指令地址來決定讀取的指令,由于指令通常按照地址增加的順序存放,故此,每次讀取一條指令之后,程序計數(shù)器加一就為讀取下一條指令做好準備.(4)執(zhí)行指令的過程 在控制器的控制下,完成以下三個階段任務(wù):1)取指令階段 按照程序計數(shù)

7、器取出指令,程序計數(shù)器加一2)指令譯碼階段 分析操作碼,決定操作內(nèi)容,并準備操作數(shù)3)指令執(zhí)行階段 執(zhí)行操作碼所指定內(nèi)容(三) 計算機性能指標1. 吞吐量,響應(yīng)時間(1) 吞吐量:單位時間內(nèi)的數(shù)據(jù)輸出數(shù)量.(2) 響應(yīng)時間:從事件開始到事件結(jié)束的時間,也稱執(zhí)行時間.2. CPU時鐘周期,主頻,CPI,CPU執(zhí)行時間(1) CPU時鐘周期:機器主頻的倒數(shù),TC(2)主頻:CPU工作主時鐘的頻率,機器主頻Rc(3)CPI:執(zhí)行一條指令所需要的平均時鐘周期(4)CPU執(zhí)行時間:TCPU=In×CPI×TC In執(zhí)行程序中指令的總數(shù) CPI執(zhí)行每條指令所需的平均時鐘周期數(shù) TC時鐘

8、周期時間的長度3. MIPS,MFLOPS(1)MIPS:(Million Instructions Per Second) Te:執(zhí)行該程序的總時間=指令條數(shù)/(MIPS×)In:執(zhí)行該程序的總指令數(shù)Rc:時鐘周期Tc的到數(shù) MIPS只適合評價標量機,不適合評價向量機.標量機執(zhí)行一條指令,得到一個運行結(jié)果.而向量機執(zhí)行一條指令,可以得到多個運算結(jié)果.(2) MFLOPS: (Million Floating Point Operations Per Second) MFLOPS=Ifn/(Te×)Ifn:程序中浮點數(shù)的運算次數(shù)MFLOPS測量單位比較適合于衡量向量機的性能

9、.一般而言,同一程序運行在不同的計算機上時往往會執(zhí)行不同數(shù)量的指令數(shù),但所執(zhí)行的浮點數(shù)個數(shù)常常是相同的.特點:1. MFLOPS取決于機器和程序兩方面,不能反映整體情況,只能反映浮點運算情況2. 同一機器的浮點運算具有一定的同類可比性,而非同類浮點操作仍無可比性當(dāng)前微處理器的發(fā)展重點進一步提高復(fù)雜度來提高處理器性能通過線程進程級的并發(fā)性提高處理器性能將存儲器集成到處理器芯片來提高處理器性能發(fā)展嵌入式處理器軟件開發(fā)有以下幾個特點1) 開發(fā)周期長2) 制作成本昂貴3) 檢測軟件產(chǎn)品質(zhì)量的特殊性計算機的展望一、計算機具有類似人腦的一些超級智能功能 要求計算機的速度達1015/秒 二、芯片集成度的提高

10、受以下三方面的限制 芯片集成度受物理極限的制約 按幾何級數(shù)遞增的制作成本 芯片的功耗、散熱、線延遲計算機輔助設(shè)計CAD 計算機輔助制造CAM計算機輔助工藝規(guī)劃 Computer Aided Process Planning CAPP計算機輔助工程 Computer Aided Engineering CAE計算機輔助教學(xué) Computer Assisted Instruction CAI 科學(xué)計算和數(shù)據(jù)處理 工業(yè)控制和實時控制網(wǎng)絡(luò)技術(shù)應(yīng)用虛擬現(xiàn)實辦公自動化和管理信息系統(tǒng) Computer Aided DesignCAD,CAM,CIMS Computer Aided Manufacturing

11、多媒體技術(shù) Computer Integrated Manufacturing System人工智能,模式識別,文字/語音識別,語言翻譯,專家系統(tǒng),機器人二, 數(shù)據(jù)的表示和運算(一) 數(shù)制與編碼1. 進位計數(shù)制及其相互轉(zhuǎn)換1)進位計數(shù)制進位計數(shù)制是指按照進位制的方法表示數(shù),不同的數(shù)制均涉及兩個基本概念:基數(shù)和權(quán). 基數(shù):進位計數(shù)制中所擁有數(shù)字的個數(shù).權(quán):每位數(shù)字的值等于數(shù)字乘以所在位數(shù)的相關(guān)常數(shù),這個常數(shù)就是權(quán).任意一個R進制數(shù)X,設(shè)整數(shù)部分為n位,小數(shù)部分為m位,則X可表示為:Xan-1rn-1 + an-2rn-2 + + a0r0 + a-1r-1 + a-2r-2 + + a-mr-m

12、(X)r = 2)不同數(shù)制間的數(shù)據(jù)轉(zhuǎn)換 (1)二,八,十六進制數(shù)轉(zhuǎn)換成十進制數(shù) 利用上面講到的公式: (N)2=Di2i ,(N)8=Di8i, (N)16=Di16i,進行計算.(2)十進制數(shù)轉(zhuǎn)換成二進制數(shù)通常要對一個數(shù)的整數(shù)部分和小數(shù)部分分別進行處理,各自得出結(jié)果后再合并.u 對整數(shù)部分,一般采用除2取余數(shù)法,其規(guī)則如下:將十進制數(shù)除以2,所得余數(shù)(0或1)即為對應(yīng)二進制數(shù)最低位的值.然后對上次所得商除以2,所得余數(shù)即為二進制數(shù)次低位的值,如此進行下去,直到商等于0為止,最后得的余數(shù)是所求二進制數(shù)最高位的值.u 對小數(shù)部分,一般用乘2取整數(shù)法,其規(guī)則如下:將十進制數(shù)乘以2,所得乘積的整數(shù)部

13、分即為對應(yīng)二進制小數(shù)最高位的值,然后對所余數(shù)的小數(shù)部分部分乘以2,所得乘積的整數(shù)部分為次高位的值,如此進行下去,直到乘積的小數(shù)部分為0,或結(jié)果已滿足所需精度要求為止.(3)二進制數(shù),八進制數(shù)和十六進制數(shù)之間的轉(zhuǎn)換八進制數(shù)和十六進制數(shù)是從二進制數(shù)演變而來的:由3位二進制數(shù)組成1位八進制數(shù);由4位二進制數(shù)組成1位十六進制數(shù).對一個兼有整數(shù)和小數(shù)部分的數(shù)以小數(shù)點為界,小數(shù)點前后的數(shù)分別分組進行處理,不足的位數(shù)用0補足.對整數(shù)部分將0補在數(shù)的左側(cè),對小數(shù)部分將0補在數(shù)的右側(cè).這樣數(shù)值不會發(fā)生差錯.2. 真值和機器數(shù)真值:數(shù)據(jù)的數(shù)值通常以正(+)負(-)號后跟絕對值來表示,稱之為“真值”. 機器數(shù):在計

14、算機中正負號也需要數(shù)字化,一般用0表示正號,1表示負號.把符號數(shù)字化的數(shù)成為機器數(shù).3. BCD碼(Binary Coded Decimal以二進制編碼的十進制碼)在計算機中采用4位二進制碼對每個十進制數(shù)位進行編碼.4位二進制碼有16種不同的組合,從中選出10種來表示十進制數(shù)位的09,用0000,0001,1001分別表示0,1,9,每個數(shù)位內(nèi)部滿足二進制規(guī)則,而數(shù)位之間滿足十進制規(guī)則,故稱這種編碼為“以二進制編碼的十進制(binary coded decima1,簡稱BCD)碼”.在計算機內(nèi)部實現(xiàn)BCD碼算術(shù)運算,要對運算結(jié)果進行修正,對加法運算的修正規(guī)則是: 如果兩個一位BCD碼相加之和小

15、于或等于(1001)2,即(9)10,不需要修正; 如相加之和大于或等于(1010)2,或者產(chǎn)生進位,要進行加6修正,如果有進位,要向高位進位.4. 字符與字符串在計算機中要對字符進行識別和處理,必須通過編碼的方法,按照一定的規(guī)則將字符用一組二進制數(shù)編碼表示.字符的編碼方式有多種,常見的編碼有ASCII碼,EBCDIC碼等.1)ASCII碼(American Standard Code for Information Interchange 美國信息交換標準碼)ASCII碼用7位二進制表示一個字符,總共128個字符元素,包括10個十進制數(shù)字(0-9),52個英文字母(A-Z和a-z),34專用

16、符號和32控制符號.2)EBCDIC碼為Extended Binary Coded Decimal Interchange Code的簡稱,它采用8位來表示一個字符.3)字符串的存放向量存儲法:字符串存儲時,字符串中的所有元素在物理上是鄰接的.串表存儲法:字符串的每個字符代碼后面設(shè)置一個鏈接字,用于指出下一個字符的存儲單元的地址.5. 校驗碼Check Digit數(shù)據(jù)校驗碼是一種常用的帶有發(fā)現(xiàn)某些錯誤或自動改錯能力的數(shù)據(jù)編碼方法.其實現(xiàn)原理,是加進一些冗余碼,使合法數(shù)據(jù)編碼出現(xiàn)某些錯誤時,就成為非法編碼. 這樣,可以通過檢測編碼的合法性來達到發(fā)現(xiàn)錯誤的目的.合理地安排非法編碼數(shù)量和編碼規(guī)則,可

17、以提高發(fā)現(xiàn)錯誤的能力,或達到自動改正錯誤的目的. 碼距:碼距根據(jù)任意兩個合法碼之間至少有幾個二進制位不相同而確定的,僅有一位不同,稱其碼距為1.1)奇偶校驗碼(Parity Bit)WIKI (開銷最小,能發(fā)現(xiàn)數(shù)據(jù)代碼中一位出錯情況的編碼,常用于存儲器讀寫檢查或ASCII字符或其它類型的信息傳輸?shù)臋z查)P216它的實現(xiàn)原理,是使碼距由1增加到2.若編碼中有1位二進制數(shù)出錯了,即由1變成0,或者由0變成1.這樣出錯的編碼就成為非法編碼,就可以知道出現(xiàn)了錯誤.在原有的編碼之上再增加一位校驗位,原編碼n位,形成新的編碼為n+1 位.增加的方法有2種: 奇校驗:增加位的0或1要保證整個編碼中1的個數(shù)為

18、奇數(shù)個. 偶校驗:增加位的0或1要保證整個編碼中1的個數(shù)為偶數(shù)個. 2)海明校驗碼(Hamming Code)P100實現(xiàn)原理,在數(shù)據(jù)中加入幾個校驗位,并把數(shù)據(jù)的每一個二進制位分配在幾個奇偶校驗組中.當(dāng)某一位出錯就會引起有關(guān)的幾個校驗組的值發(fā)生變化,這不但可以發(fā)現(xiàn)出錯,還能指出是哪一位出錯,為自動糾錯提供了依據(jù). 假設(shè)校驗位的個數(shù)為r,則它能表示2r個信息,用其中的一個信息指出“沒有錯誤”,其余2r-1個信息指出錯誤發(fā)生在哪一位.然而錯誤也可能發(fā)生在校驗位,因此只有k=2r-1-r個信息能用于糾正被傳送數(shù)據(jù)的位數(shù),也就是說要滿足關(guān)系:2rk+r+1 3)CRC校驗碼(Cyclic Redund

19、ancy Check 循環(huán)冗余校驗)P144CRC校驗碼一般是指k位信息之后拼接r位校驗碼.關(guān)鍵問題是如何從k位信息方便地得到r位校驗碼,以如何從位k+r信息碼判斷是否出錯. 將帶編碼的k位有效信息位組表達為多項式: 式Ci中為0或1.若將信息位左移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)·

20、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ù)的表示和運算1. 定點數(shù)的表示1)無符號數(shù)的表示 無符號數(shù)就是指正整數(shù),機器字長的全部位數(shù)均用來表示數(shù)值的大小,相當(dāng)于數(shù)的絕對值. 對于字長為n+1位的無符號數(shù)的表示范圍為: 0-12)帶符號數(shù)的表示 (真值范圍-n-1n) 帶符號數(shù)是指在計算機中將數(shù)的符號數(shù)碼化.在計算機中,一般規(guī)定二進制的

21、最高位為符號位,最高位為“0”表示該數(shù)為正,為“1”表示該數(shù)為負.這種在機器中使用符號位也被數(shù)碼化的數(shù)稱為機器數(shù). 根據(jù)符號位和數(shù)值位的編碼方法不同,機器數(shù)分為原碼,補碼和反碼.(1)原碼表示法機器數(shù)的最高位為符號位,0表示正數(shù),1表示負數(shù),數(shù)值跟隨其后,并以絕對值形式給出.這是與真值最接近的一種表示形式. 原碼的定義:(2)補碼表示法機器數(shù)的最高位為符號位,0表示正數(shù),1表示負數(shù),其定義如下:(3)反碼表示法 機器數(shù)的最高位為符號,0表示正數(shù),1表示負數(shù).反碼的定義:原碼補碼反碼整數(shù) (mod ) (mod()小數(shù) (mod 2) (mod(2-)0=0.0000=1.0000=0.0000

22、=0.0000=1.1111負數(shù)原碼求反+1負數(shù)每位求反移碼 移碼表示中零也是唯一的真值的移碼和補碼僅差一個符號位.若將補碼的符號位由0改為1或從1改為0即可得到真值的移碼乘法運算可用移碼和加法來實現(xiàn),兩個n位數(shù)相乘,總共要進行n次加法運算和n次移位運算三種機器數(shù)的特點可以歸納為:·三種機器數(shù)的最高位均為符號位.符號位和數(shù)值位之間可用“.”(對于小數(shù))或“,”(對于整數(shù))隔開·當(dāng)真值為正時,原碼,補碼和反碼的表示形式均相同,即符號位用“0”表示,數(shù)值部分與真值部分相同·當(dāng)真值為負時,原碼,補碼和反碼的表示形式不同,其它符號位都用“1”表示,而數(shù)值部分有這樣的關(guān)系,

23、即補碼是原碼的“求反加1”,反碼是原碼的“每位求反”.2. 定點數(shù)的運算1)定點數(shù)的位移運算左移,絕對值擴大;右移,絕對值縮小.算術(shù)移位規(guī)則符號位不變碼制添補代碼正數(shù)0負數(shù)原0補右移添0左移添1反1算術(shù)移位和邏輯移位的區(qū)別:算術(shù)移位:帶符號數(shù)移位;邏輯移位:無符號數(shù)移位; 2)原碼定點數(shù)的加/減運算;對原碼表示的兩個操作數(shù)進行加減運算時,計算機的實際操作是加還是減,不僅取決指令中的操作碼,還取決于兩個操作數(shù)的符號.而且運算結(jié)果的符號判斷也較復(fù)雜.例如,加法指令指示做(A)(B)由于一操作數(shù)為負,實際操作是做減法(A)-(+B),結(jié)果符號與絕對值大的符號相同.同理,在減法指令中指示做(A)(B)

24、實際操作做加法(A)(B),結(jié)果與被減數(shù)符號相同.由于原碼加減法比較繁瑣,相應(yīng)地需要由復(fù)雜的硬件邏輯才能實現(xiàn),因此在計算機中很少被采用.3)補碼定點數(shù)的加/減運算;(1) 加法 整數(shù) A補 + B補= A+B補(mod 2n+1)小數(shù) A補 + B補= A+B補(mod 2)(2) 減法 整數(shù) A補 - B補= A+(-B)補=A補 + -B補(mod 2n+1)小數(shù) A補 - B補= A+(-B)補=A補 + -B補(mod 2)無需符號判定,連同符號位一起相加,符號位產(chǎn)生的進位自然丟掉4)定點數(shù)的乘/除運算(1)一位乘法<1>原碼定點一位乘法 兩個原碼數(shù)相乘,其乘積的符號為相乘

25、兩數(shù)的異或值,數(shù)值兩數(shù)絕對值之積.設(shè) X原=X0 X1 X2 Xn Y原=Y0 Y1 Y2 Yn X·Y原=X原·Y原= (X0Y0)(X1 X2 Xn)·(Y1 Y2 Yn)符號表示把符號位和數(shù)值鄰接起來. 原碼兩位乘和原碼一位乘比較原碼一位乘原碼兩位乘符號位操作數(shù)絕對值絕對值的補碼移位邏輯右移算術(shù)右移移位次數(shù)n最多加法次數(shù)n<2>定點補碼一位乘法有的機器為方便加減法運算,數(shù)據(jù)以補碼形式存放.乘法直接用補碼進行,減少轉(zhuǎn)換次數(shù).具體規(guī)則如下: X·Y補=X補(Y0 + 0. Y1 Y2 Yn )<3>布斯法“布斯公式”: 在乘數(shù)Y

26、n后添加Yn+1=0.按照Yn+1 ,Yn相鄰兩位的三種情況,其運算規(guī)則如下:(1) Yn+1 ,Yn =0( Yn+1 Yn =00或11),部分積加0,右移1位;(2) Yn+1 ,Yn =1( Yn+1 Yn =10) ,部分積加X補,右移1位;(3) Yn+1 ,Yn =-1( Yn+1 Yn =01) ,部分積加X補,右移1位 最后一步不移位.(2)兩位乘法<1>原碼兩位乘法,因此實際操作用Yi-1,Yi,C三位來控制,運算規(guī)則如下Yi-1 Yi C操作0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1 +0, 右移2位 0C +X, 右移2

27、位 0C +X, 右移2位 0C +2X, 右移2位 0C +2X, 右移2位 0C -X, 右移2位 1C -X, 右移2位 1C +0, 右移2位 1C <2>補碼兩位乘法根據(jù)前述的布斯算法,將兩步合并成一步,即可推導(dǎo)出補碼兩位乘的公式.Yn-i-1 Yn-i Yn-i+1Pi+2補 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 +0, 右移2位 +X補, 右移2位 +X補, 右移2位 +2X補, 右移2位 -2X補, 右移2位 -X補, 右移2位 -X補, 右移2位 +0, 右移2位 求部分積的次數(shù)和右移操作的控制問題. 當(dāng)乘

28、數(shù)由1位符號位和以n(奇數(shù))位數(shù)據(jù)位組成時,求部分積的次數(shù)為(1n)2,而且最后一次的右移操作只右移一位. 若數(shù)值位本身為偶數(shù)n,可采用下述兩種方法之一:可在乘數(shù)的最后一位補一個0,乘數(shù)的數(shù)據(jù)位就成為奇數(shù),而且其值不變,求部分積的次數(shù)為1+(n+l)/2,即n/21,最后一次右移操作也只右移一位.乘數(shù)增加一位符號位,使總位數(shù)仍為偶數(shù),此時求部分積的次數(shù)為n/2+1,而且最后一次不再執(zhí)行右移操作.(3)補碼除法筆算除法和機器除法的比較筆算除法機器除法商符單獨處理符號位異或形成心算上商余數(shù) 不動 低位補“0”減右移一位 的除數(shù)余數(shù) 左移一位 低位補“0”減 除數(shù)2 倍字長加法器1 倍字長加法器上商

29、位置 不固定在寄存器 最末位上商<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,否則,商上0,該商為結(jié)果的符號位.2求商的數(shù)值部分.如果上次商上1,將除數(shù)左移

30、一位后減去除數(shù);如果上次商上0,將余數(shù)左移一位后加除數(shù).然后判斷本次操作后的余數(shù),如果余數(shù)與除數(shù)同號商上1,如果余數(shù)與除數(shù)異號商上0.如此重復(fù)執(zhí)行n-1次(設(shè)數(shù)值部分n位).3商的最后一位一般采用恒置1的辦法,并省略了最低+1的操作.此時最大的誤差為2-n.5)溢出概念和判別方法當(dāng)運算結(jié)果超出機器數(shù)所能表示的范圍時,稱為溢出.顯然,兩個異號數(shù)相加或兩個同號數(shù)相減,其結(jié)果是不會溢出的.僅當(dāng)兩個同號數(shù)相加或者兩個異號數(shù)相減時,才有可能發(fā)溢出的情況,一旦溢出,運算結(jié)果就不正確了,因此必須將溢出的情況檢查出來.判別方法有三種:1當(dāng)符號相同的兩數(shù)相加時,如果結(jié)果的符號與加數(shù)(或被加數(shù))不相同,則為溢出.

31、2當(dāng)任意符號兩數(shù)相加時,如果C=Cf,運算結(jié)果正確,其中C為數(shù)值最高位的進位,Cf為符號位的進位.如果CCf ,則為溢出,所以溢出條件=CCf .3采用雙符號fs2fs1.正數(shù)的雙符號位為00,負數(shù)的雙符號位為11.符號位參與運算,當(dāng)結(jié)果的兩個符號位甲和乙不相同時,為溢出.所以溢出條件= fs2fs1 ,或者溢出條件= fs2fs1 + fs2fs1(三) 浮點數(shù)的表示和運算1. 浮點數(shù)的表示1)浮點數(shù)的表示范圍;浮點數(shù)是指小數(shù)點位置可浮動的數(shù)據(jù),通常以下式表示: N=M×RE其中,N為浮點數(shù),M(Mantissa)為尾數(shù)(可正可負),E(Exponent)為階碼(可正可負),R(R

32、adix)稱為“階的基數(shù)(底)”,而且R為一常數(shù),一般為2,8或16.在一臺計算機中,所有數(shù)據(jù)的R都是相同的,于是不需要在每個數(shù)據(jù)中表示出來.因此,浮點數(shù)的機內(nèi)表示一般采用以下形式:浮點數(shù)的機內(nèi)表示一般采用以下形式:MsEM 1位 n+1位 m位Ms是尾數(shù)的符號位,設(shè)置在最高位上.E為階碼(移碼),有n+1位,一般為整數(shù),其中有一位符號位,設(shè)置在E的最高位上,用來表正階或負階.M為尾數(shù)(原碼),有m位,由Ms和M組成一個定點小數(shù).Ms=0,表示正號,Ms=1,表示負.為了保證數(shù)據(jù)精度屬數(shù)通常用規(guī)格化形式表示:當(dāng)R2,且尾數(shù)值不為0時,其絕對值大于或等于(0.5)10.對非規(guī)格化浮點數(shù),通過將尾

33、數(shù)左移或右移,并修改階碼值使之滿足規(guī)格化要求.浮點數(shù)的表示范圍以通式N=M×RE設(shè)浮點數(shù)階碼的數(shù)值位取m位,尾數(shù)的數(shù)值位取n位2)IEEE754標準(Institute of Electrical and Electronics Engineers美國電氣和電子工程協(xié)會)S階碼(含階符)尾 數(shù)數(shù)符 小數(shù)點位置根據(jù)IEEE 754國際標準,常用的浮點數(shù)有三種格式:符號位S階碼尾數(shù)總位數(shù)短實數(shù)182332長實數(shù)1115264臨時實數(shù)1156480單精度格式32位,階碼為8位,尾數(shù)為23位.另有一位符號位S,處在最高位.由于IEEE754標準約定在小數(shù)點左部有一位隱含位,從而實際有效位數(shù)為

34、24位.這樣使得尾數(shù)的有效值變?yōu)?.M .例如,最小為x1.00,最大為x1.11.規(guī)格化表示.故小數(shù)點左邊的位橫為1,可省去. 階碼部分采用移碼表示,移碼值127,1到254經(jīng)移碼為-126到+127.S(1位)E(8位)M(23位)N(共32位)符號位000符號位0不等于0(-1)S·2-126·(0.M) 為非規(guī)格化數(shù)符號位1到254之間-(-1)S·2E-127·(1.M) 為規(guī)格化數(shù)符號位255不等于0NaN(非數(shù)值)符號位2550無窮大0 有了精確的表示,無窮大也明確表示.對于絕對值較小的數(shù),可以采用非規(guī)格化數(shù)表示,減少下溢精度損失.非規(guī)格化

35、數(shù)的隱含位是0,不是1.2. 浮點數(shù)的加/減運算加減法執(zhí)行下述五步完成運算:1)“對階”操作 比較兩浮點數(shù)階碼的大小,求出其差E,保留其大值E,E=max(Ex, Ey).當(dāng)E0時,將階碼小的尾數(shù)右移E位,并將其階碼加上E,使兩數(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)檢查階碼是否溢出 階碼溢出表示浮點

36、數(shù)溢出.在規(guī)格化和舍入時都可能發(fā)生溢出,若階碼正常,加/減運算正常結(jié)束.若階碼下溢,則設(shè)置機器運算結(jié)果為機器零,若上溢,則設(shè)置溢出標志.定點數(shù)和浮點數(shù)可從如下幾個方面進行比較當(dāng)浮點機和定點機中的位數(shù)相同時,浮點數(shù)的表示范圍比定點數(shù)大得多當(dāng)浮點數(shù)位規(guī)格化數(shù)時,其相對絕對遠比定點數(shù)高浮點數(shù)運算要分階碼部分和尾數(shù)部分,而且運算結(jié)果都要求規(guī)格化,故浮點運算步驟比定點運算的步驟多,運算速度比定點運算的低,運算線路比定點運算的復(fù)雜在溢出的判斷方法上,浮點數(shù)是對規(guī)格化的階碼進行判斷,而定點數(shù)是對數(shù)值本身進行判斷總之,浮點數(shù)在數(shù)的表示范圍,數(shù)的精度,溢出處理和程序編程方面(不取比例因子)均優(yōu)于定點數(shù).但在運算

37、規(guī)則即硬件成本方面又不如定點數(shù)(四) 算術(shù)邏輯單元ALU1. 串行加法器和并行加法器1)串行進位加法器并行加法器可以同時對數(shù)據(jù)的各位進行相加,一般用n個全加器來實現(xiàn)2個操作數(shù)的各位同時向加.其操作數(shù)的各位是同時提供的,由于進位是逐位形成,低位運算所產(chǎn)生的進位會影響高位的運算結(jié)果.串行進位(也稱波形進位)加法器,邏輯電路比較簡單,但是最高位的加法運算,一定要等到所有低位的加法完成之后才能進行,低位的進位要逐步的傳遞到高位,逐級產(chǎn)生進位,因此運算速度比較慢.2)并行進位加法器為了提高運算速度,減少延遲時間,可以采用并行進位法,也叫提前進位或先行進位.全加器中,輸入Ai ,Bi,Ci-1,輸出:Si

38、 = Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1Ci = Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1 = Ai Bi + (Ai+Bi)Ci-1進位產(chǎn)生函數(shù):Gi = Ai Bi進位傳遞函數(shù):Pi = Ai+BiCi = Gi + Pi Ci-1C4 = G4 + P4G3 + P4P3G2 + P4P3P2G1 + P4P3P2P1C0并行進位加法器的運算速度很快,形成最高進位輸出的延遲時間很短,但是以增加硬件邏輯線路為代價.對于長字長的加法器,往往將加法器分成若干組,在組內(nèi)采用并行進位,組間則采用串行進

39、位或并行進位,由此形成多種進位結(jié)構(gòu).(1)單級先行進位單級先行進位方式將n位字長分為若干組,每組內(nèi)采用并行進位方式,組與組之間冊采用串行進位方式.(2)多級先行進位多級先行進位在組內(nèi)和組間都采用先行進位方式.16位單級先行進位加法器2. 算術(shù)邏輯單元ALU的功能和機構(gòu)ALU部件是運算器中的主要組成部分,又稱多功能函數(shù)發(fā)生器,主要用于完成各種算術(shù)運算和邏輯運算.ALU的算術(shù)運算部件包含加法器,減法器,乘法器,除法器,增量器(+1),減量器(-1),BCD碼運算器等組件.ALU的主要工作是根據(jù)CPU指令要求執(zhí)行各種指定運算,如加法,減法,乘法,除法,比較,邏輯移位等操作.通用寄存器組是一組存取速度

40、最快的存儲器,用于保存參加運算的操作數(shù)和中間結(jié)果.訪問寄存器無需高速緩存,也不需要運行總線周期,因此指令的執(zhí)行速度很快.幾乎所有的指令都要將寄存器指定為一個操作數(shù),有些指令還要求將操作數(shù)存放在專用的寄存器中.專用寄存器通常用于表示CPU所處于某種系統(tǒng)狀態(tài),ALU中有兩個重要的狀態(tài)寄存器:指令指針寄存器IP(即程序計數(shù)器PC)和標志寄存器FLAGS.三, 存儲器層次機構(gòu)(一) 存儲器的分類專心-專注-專業(yè)提高存儲器帶寬縮短儲存周期增加存儲字長,使每個周期可讀/寫更多的二進制數(shù)增加存儲體內(nèi)存地址線n,數(shù)據(jù)線數(shù)k芯片的容量為2k×k位20位的地址可以訪問1MB的存儲空間,32位的地址可以訪

41、問4GB的內(nèi)存空間,64位可以訪問1800萬TB靜態(tài)RAM和動態(tài)RAM之間的比較。目前,動態(tài)RAM的應(yīng)用比靜態(tài)RAM要廣泛的多: 同樣大小的芯片中,動態(tài)的RAM的集成度遠高于靜態(tài)RAM,DRAM的基本單元電路為一個MOS管,SRAM的基本單元電路可為46個MOS管 DRAM行、列按先后順序輸送,減少了芯片引腳,封裝尺寸也減少 DRAM的功耗比SRAM小 DRAM的價格比SRAM的價格便宜DRAM也有缺點 由于使用動態(tài)元件(電容),因此它的速度比SRAM低 DRAM需再生,需配置再生電路,也消耗一部分功率.通常容量不大的Cache大多用SRAM實現(xiàn)存儲器與CPU連接對比項目SRAMDRAM儲存信

42、息觸發(fā)器電容破壞性讀出非是需要刷新非是行列地址同時送分兩次運行速度快慢集成度低高發(fā)熱量大小存儲成本高低 (二) 存儲器的層次化結(jié)構(gòu)存儲器有3個重要的指標:速度,容量和每位價格,一般來說,速度越快,位價越高;容量越大,位價越低,容量大,速度就越低.上述三者的關(guān)系用下圖表示:存儲系統(tǒng)層次結(jié)構(gòu)主要體現(xiàn)在緩存-主存-輔存這兩個存儲層次上,如下圖所示:緩存-主存層次主要解決CPU和主存速度不匹配的問題 主存-輔存層次主要解決存儲系統(tǒng)的容量問題從CPU角度來看緩存-主存層次的速度接近于緩存,高于主存;其容量和價位卻接近于主存,這就從速度和成本的矛盾中獲得了理想的解決辦法.主存-輔存層次從整體分析,其速度接

43、近于主存,容量接近于輔存,平均價位也接近于低速的、廉價的存儲價位,這又解決了速度、容量、成本這三者之間的矛盾.現(xiàn)代計算機系統(tǒng)幾乎都具有這兩個存儲層次,構(gòu)成了緩存、主存、輔存三級存儲系統(tǒng). (三) 半導(dǎo)體隨機存取存儲器1. SRAM存儲器的工作原理SRAM靜態(tài)存儲單元的每個存儲位需要四到六個晶體管組成.比較典型的是六管存儲單元,即一個存儲單元存儲一位信息"0"或"1".靜態(tài)存儲單元保存的信息比較穩(wěn)定,信息為非破壞性讀出,故不需要重寫或者刷新操作;另一方面,其結(jié)構(gòu)簡單,可靠性高,速度較快,但其占用元件較多,占硅片面積大,且功耗大,所以集成度不高.靜態(tài)隨機存儲

44、單元2. DRAM存儲器的工作原理常見的DRAM存儲單元有三管式和單管式兩種,它們的共特點是靠電容存儲電荷的原理來寄存信息.若電容上存有足夠的電荷表示“”,電容上無電荷表示"0".電容上的電荷一般只能維持1-2ms,因此即使電源不掉電,電容上的電荷會自動消失.因此,為保證信息的不丟失,必須在2ms之內(nèi)就要對存儲單元進行一次恢復(fù)操作,這個過程稱為再生或者刷新.與SRAM相比,DRAM具有集成度更高,功耗低等特點,目前被各類計算機廣泛使用.(四) 只讀存儲器前面介紹的DRAM和SRAM均為可任意讀寫的隨機存儲器,當(dāng)?shù)綦姇r,所存儲的內(nèi)容消失,所以是易失性存儲器.只讀存儲器,即使停

45、電,存儲內(nèi)容也不丟失.根據(jù)半導(dǎo)體制造工藝不同,分為ROM,PROM,EPROM,E2ROM和Flash Memory1. 只讀存儲器(ROM) 掩模式ROM由芯片制造商在制造時寫入內(nèi)容,以后只能讀而不能再寫入.其基本存儲原理是以元件的“有無”來表示該存儲單元的信息(“1”或“0”),可以用二極管或晶體管作為元件,顯而易見,其存儲內(nèi)容是不會改變的.2. 可編程序的只讀存儲器(PROM) PROM可由用戶根據(jù)自己的需要來確定ROM中的內(nèi)容,常見的熔絲式PROM是以熔絲的通和斷開來表示所存的信息為“1”或“0”.剛出廠的產(chǎn)品,其熔絲是全部接通的.根據(jù)需要斷開某些單元的熔絲(寫入).顯而易見,斷開后的

46、熔絲是不能再接通了,因而一次性寫入的存儲器.掉電后不會影響其所存儲的內(nèi)容.3. 可擦可編程序的只讀存儲器(EPROM)為了能修改ROM中的內(nèi)容,出現(xiàn)了EPROM.利用浮動?xùn)臡OS電路保存信息,信息改寫用紫外線照射即可擦除.4. 可電擦可編程序只讀存儲器(E2PROM) E2PROM的編程序原理與EPROM相同,擦除原理完全不同,重復(fù)改寫次數(shù)有限制(因氧化層被磨損),一般10萬次. 其讀寫操作可按每個位或每個字節(jié)進行,類似SRAM,但每字節(jié)的寫入周期要幾毫秒,比SRAM長得多.E2PROM每個存儲單元采則2個晶體管.其柵極氧化層比EPROM薄,因此具有電擦除功能. 5. 快除讀寫存儲器(Flas

47、h Memory) F1ash Memory是在EPROM與E2PROM基礎(chǔ)上發(fā)展起來的,其讀寫過程和E2PROM不同,F1ash Memory的讀寫操作一般是以塊為單位.(五) 主存儲器與CPU的連接1個存儲器的芯片的容量是有限的,它在字數(shù)或字長方面與實際存儲器的要求都有很大差距,所以需要在字向和位向進行擴充才能滿足需要.根據(jù)存儲器所需的存儲容量和所提供的芯片的實際容量,可以計算出總的芯片數(shù).一個存儲器的容量為M×N位,若使用L×K位存儲器芯片,那么,這個存儲器共需要M/L×N/K存儲器芯片.1位擴展 位擴展指的是用多個存儲器器件對字長進行擴充.位擴展的連接方式

48、是將多片存儲器的地址,片選己,讀寫控制端R/W可相應(yīng)并聯(lián),數(shù)據(jù)端分別引出.2)字擴展 字擴展指的是增加存儲器中字的數(shù)量. 靜態(tài)存儲器進行字擴展時,將各芯片的地址線,數(shù)據(jù)線,讀寫控制線相應(yīng)并聯(lián),而由片選信號來區(qū)分各芯片的地址范圍. 3)字位擴展 實際存儲器往往需要字向和位向同時擴充.(六) 雙口RAM和多模塊存儲器1.雙端口存儲器雙端口存儲器是一種具有兩個單獨的讀/寫端口及控制電路的存儲器,通過增加一個讀/寫端口,雙端口存儲器擴展了存儲器的的信息交換能力.2.多模塊存儲器為了解決CPU與主存儲器之間的速度匹配問題,在高速存儲器中,普遍采用并行主存系統(tǒng).即利用類似存儲器擴展(位擴展,字擴展,字位擴

49、展)的方法,將n個字長為W位的存儲器并行連接,構(gòu)建一個更大的存儲器.并行主存有單體多字方式,多體并行方式和多體交叉方式.(七) 高速緩沖存儲器(Cache實際上,這是來自法文的一個單詞,意思是隱蔽之所或藏東西的地方)概述1. 問題的提出避免 CPU “空等” 現(xiàn)象CPU 和主存(DRAM)的速度差異1. 程序訪問的局部性從大量的統(tǒng)計中得到的一個規(guī)律是,程序中對于存儲空間90%的訪問局限于存儲空間的10%的區(qū)域中,而另外10%的訪問則分布在存儲空間的其余90%的區(qū)域中.這就是通常說的局部性原理.訪存的局部性規(guī)律包括兩個方面:時間局部性:如果一個存儲項被訪問,則可能該項會很快被再次訪問. 空間局部

50、性:如果一個存儲項被訪問,則該項及其鄰近的項也可能很快被訪問.2. Cache的基本工作原理Cache通常由兩部分組成,塊表和快速存儲器.其工作原理是:處理機按主存地址訪問存儲器,存儲器地址的高段通過主存-Cache地址映象機構(gòu)借助查表判定該地址的存儲單元是否在Cache中,如果在,則Cache命中,按Cache地址訪問Cache.否則,Cache不命中,則需要訪問主存,并從主存中調(diào)入相應(yīng)數(shù)據(jù)塊到Cache中,若Cache中已寫滿,則要按某種算法將Cache中的某一塊替換出去,并修改有關(guān)的地址映象關(guān)系.從這個工作原理我們可以看出,它已經(jīng)涉及到了兩個問題.首先是定位,然后是替換的問題.Cache

51、的存在對程序員是透明的.其地址變換和數(shù)據(jù)塊的替換算法均由硬件實現(xiàn).通常Cache被集成到CPU內(nèi)以提高訪問速度. 3. Cache和主存之間的映射方式因為處理機訪問都是按主存地址訪問的,而Cache的空間遠小于主存,如何知道這一次的訪問內(nèi)容是不是在Cache中,在Cache中的哪一個位置呢? 這就需要地址映象,即把主存中的地址映射成Cache中的地址.讓Cache中一個存儲塊(空間)與主存中若干塊相對應(yīng),如此,訪問一個主存地址時,就可以對應(yīng)地知道在cache中哪一個地址了.地址映象的方法有三種:直接映象,全相聯(lián)映象和組相聯(lián)映象. 直接映象就是將主存地址映象到Cache中的一個指定地址.任何時候

52、,主存中存儲單元的數(shù)據(jù)只能調(diào)入到Cache中的一個位置,這是固定的,若這個位置已有數(shù)據(jù),則產(chǎn)生沖突,原來的塊將無條件地被替換出去.全相聯(lián)映象就是任何主存地址可映象到任何Cache地址的方式.在這種方式下,主存中存儲單元的數(shù)據(jù)可調(diào)入到Cache中的任意位置.只有在Cache中的塊全部裝滿后才會出現(xiàn)塊沖突.組相聯(lián)映象指的是將存儲空間的頁面分成若干組,各組之間的直接映象,而組內(nèi)各塊之間則是全相聯(lián)映象.4. Cache中主存塊的替換算法在直接映象方式下,不存在塊替換的算法,因為每一塊的位置映象是固定的,需要哪一塊數(shù)據(jù)就可直接確定地將該塊數(shù)據(jù)調(diào)入上層確定位置.而其他兩種映象就存在替換策略的問題,就是要選擇替換到哪一個Cache塊.即替換算法.思想優(yōu)點缺點隨機算法RAND用軟的或硬的隨機數(shù)產(chǎn)生器產(chǎn)生上層中要被替換的頁號簡單,易于實現(xiàn)沒有利用上層存儲器使用的"歷史信息",沒有反映等程序局部性,命中率低.先進先出FIFO選擇最早裝入上層的頁作為被替換的頁實現(xiàn)方便,利用了主存歷史的信息不能正確反映程序局部性原理,命中率不高,可能出現(xiàn)一種異?,F(xiàn)象.近期最少使用法LRU選擇近期最少訪問的頁作為被替換的頁比較正確反映程序局部性,利用訪存的歷史信息,命中率較高實現(xiàn)較復(fù)雜優(yōu)化替換算法OPT將未來近期不用的頁換出去命中率最高,可作為衡量其他替換算法的標準不現(xiàn)實,只是一種理想算法5. C

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論