南京大學-計算機專業(yè)考研復習資料-計算機組成原理 筆記_第1頁
南京大學-計算機專業(yè)考研復習資料-計算機組成原理 筆記_第2頁
南京大學-計算機專業(yè)考研復習資料-計算機組成原理 筆記_第3頁
南京大學-計算機專業(yè)考研復習資料-計算機組成原理 筆記_第4頁
南京大學-計算機專業(yè)考研復習資料-計算機組成原理 筆記_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機組成原理

《計算機組成與系統(tǒng)結(jié)構(gòu)》袁春風清華大學出版〃ISBN978-7-302-21905-7

第1章、計算機系統(tǒng)概述

1.計算機硬件的發(fā)展:第一代一電子管;第二代一晶體管;第三代一中小規(guī)模集成電路:第四代一超大規(guī)模IC:

2.馮?諾依曼體系結(jié)構(gòu):控制器,運算器,存儲器和輸入/輸出設備5部分;指令和數(shù)據(jù)用二進制表示,兩者均存放

在存儲器中,按地址訪問:指令由操作碼和地址碼組成;采用“存儲程序”的方式工作;傳統(tǒng)的計算機的組織結(jié)構(gòu)

以運算器為中心,現(xiàn)在發(fā)展為以存儲器為中心;

3.軟件和硬件的分界面是指令集體系結(jié)構(gòu)ISA;

4.計算機的層次結(jié)構(gòu):應用程序,高級語言,匯編語言,操作系統(tǒng),機器語言(,微指令語言);

5.基本性能指標:程序的響應時間,系統(tǒng)的吞吐率;CPU的基本性能參數(shù):時鐘周期(CPU中最小的時間單位)、主

頻(時鐘周期的倒數(shù))、CPI(執(zhí)行指令所需的時鐘周期,與特定指令相關(guān);對CPU或程序,取加權(quán)平均值);

CPU執(zhí)行時間是時鐘周期,CPI和指令條數(shù)三者的乘積;MIPS(定點指令數(shù))、MFLOPS(浮點運算次數(shù));基準程序;

類型說明

時鐘周期/節(jié)拍CPU中最小的時間單位,主頻的倒數(shù)

機器周期/CPU周期執(zhí)行指令的基本操作(取指,譯碼等)所需時間,含多個時鐘周期,現(xiàn)代已不多用此概念

[微指令周期讀出并執(zhí)行一條微指令的時間,一般即機器周期

指令周期取出并執(zhí)行一條指令所需時間,含多個時鐘周期

存取時間又稱存儲器訪問時間,完成次讀/寫的時間

存取周期/存儲周期進行連續(xù)兩次獨立的存儲器操作所需的最小間隔,一定大于存取時間

總線周期CPU通過總線對主存或10端口進行一次訪問的時間

第2章、數(shù)據(jù)的機器級表示

1.從ISA的層次來看,計算機底層的機器級只有幾類簡單的基本數(shù)據(jù)類型,由它們可以組合成各種復雜類型的數(shù)據(jù);

2.二進制一十進制:若有n位整數(shù),m位小數(shù),按權(quán)展開,為EIL瓦?251+2;2仇?27;

十進制整數(shù)一二進制:除2取余,倒序排列;十進制小數(shù)一二進制:乘2取整(舍掉整數(shù)),順序排列,最后在前

而加卜0.口口(可能需要近似):若戴有整數(shù),也有小數(shù).整數(shù)和小數(shù)分別轉(zhuǎn)換后合并即可:

3.定點數(shù)一原碼:二進制(絕對值)的真值,在最高位加1位符號位;有+0和-0;加減運算需區(qū)分符號位;定點原

碼小數(shù)用來表示浮點數(shù)的尾數(shù)部分;后面提到的真值也都是指絕對值;

反碼:正數(shù)的反碼與原碼相同,負數(shù)的反碼是真值按位取反:同樣有+0和-0:很少使用;

補碼:定點整數(shù)和小數(shù)的正數(shù)的補碼均與原碼相同;對負數(shù),定點整數(shù)的補碼是反碼+1,即真值按位取反后(末位)

+1(昔進位);0的編碼是唯一的,負數(shù)的個數(shù)比正數(shù)多1個,即n位補碼(1位符號+(n-1)位數(shù)值)的范圍為

一2"-二?0?(2〃T一“;如-1,n位補碼為2〃-1(%2n)=11...1(n個1);定點小數(shù)的補碼是即真值按位取反,

末位+1(帶進位),表示的范圍為一1工乂〈1:-1作為小數(shù)的門位補碼為2-1=1.00...0(41個0):加減運算不

必區(qū)分符號位,與數(shù)值位一同參與運算;實質(zhì)是模2n運算;整數(shù)利小數(shù)不能合并求補碼,需單獨處理;

移碼;只適用于表示整數(shù),n位真值加上偏置常數(shù)/一1,使所有值都為非負整數(shù),主要用于表示浮點數(shù)的階;一個

數(shù)的移碼是其補碼最高位取反,其余位不變;

4.同樣的位數(shù),浮點數(shù)的個數(shù)并不比定點數(shù)多,只是范圍變大了,在數(shù)軸上不等距分布;以單精度(32bit)為例,IEEE

754浮點數(shù)格式如下(注意階碼的偏置不是128,而是127,擴大了表示范圍):

類型符號lbit階碼8bits尾數(shù)23bits二進制數(shù)值

正零/負零0/100000000(0)全0+0/-0

正無窮/負無窮0/111111111(255)全。4-00/—co

1無定義數(shù)

0/111111111(255)W0(共223-1個)NaN

規(guī)格化非零數(shù)0/10<e<255f=00...0?11...1l,fX2”】27

■非規(guī)格化數(shù)

0/100000000(0)"0O.fX2-126

5.十進制的BCD碼(8421碼等),邏輯值,西文和中文字符與字符吊;大端(BigEndian)/小端(LittleEndian)

6.常用數(shù)據(jù)校驗碼:奇偶校驗碼,海明校驗碼,循環(huán)冗余校驗碼(8C);檢錯,糾錯;

7.奇/偶校驗:若數(shù)據(jù)為8=6-他“-2,“瓦,當有奇數(shù)/偶數(shù)個1,取檢驗為P=0/1,即使得P8中1的總個數(shù)為奇數(shù)/

偶數(shù),用位運算表示,奇校驗時P=%.i十匕-2十…十瓦十1,偶校驗P=%T十&-2十…十尻:

能檢H奇數(shù)個bit錯誤的情況(不論奇校驗還是偶校驗,兩者效果一樣),不能發(fā)現(xiàn)偶數(shù)個bit出錯,實現(xiàn)簡單,常

用于字節(jié)長度的數(shù)據(jù)檢錯;

8.十為異或運算,亦記為XOR,A^B=AB+AB,(:語言表示為==(?a)&b|a&(~b);異或滿足結(jié)合律;

若A,8相同,結(jié)果為0,不同則為1;若。=力十8,則A=B十C;若C=0,說明48相同,即4=8;

多個bit的異或結(jié)果,當奇數(shù)個1為工,偶數(shù)個1為0,故用于生成奇偶校驗碼;

A^A=0,A十0=力,由此得到不用臨時變量交換兩個數(shù)的代碼a=a人b;b=aAb;a=aAb;

9.海明校驗:實質(zhì)是多重(分組)奇偶校驗;

若有/H立校驗位,故障字也為A位,則可表示2匕個狀態(tài),若有,位數(shù)據(jù),與校驗碼一起存儲,對于只發(fā)生1位出錯

的情況,有九+k種,力口上1個無錯的狀態(tài),則要求2乂2九+k+1,由此可計算出k的值;

由九十k位數(shù)值進行位運算,得到k位故障位,規(guī)定故障字的含義如下:

當故障字全0—表示正確狀態(tài):

當故障字只有1位為1一表示該校驗位出錯;校驗位出錯無需糾正;

當故障字有多位為1—表示相應的無符號整數(shù)(十進制)是出錯位,將該位翻轉(zhuǎn)即可紅正;

由此可知,k位校驗位應放在2"】(i=1.../C)位處,〃位數(shù)據(jù)則順序填充余下的位置;

例如:6位數(shù)據(jù),計算校驗位數(shù)A,由中27+匕顯然A>3,而左=4剛好滿足不等式,故應有4位校驗位,分別

位于數(shù)據(jù)的第1,2,4,8位,故障字也為4位,數(shù)據(jù)位+校驗位共10位;

故障字0100表示第4位,亦即第3個校驗位出錯,可以忽略:這說明第4位碼與第3位故障位有關(guān):

故障字0110表示第6位,亦即第3個數(shù)據(jù)位出錯,將其翻轉(zhuǎn)就可分正:這說明第6位碼與第3,4位故障位都有關(guān);

故障位和各碼位的關(guān)系如下表:

M10M9MBM7M6M5M4M3M2Ml

DD4D3D2D1

6DSP4P3P2Pl

64JJJ

63JVJV

C2JJJVV

eiVVVVV

故障字

1010100110000111011001010100001100100001

故障位的計算方法為:

e4=M10?M9?M8=De十D$十

e3=M7十Me十M5十=十D3十D2十P3

十十十十

e2=Mi。十M7十Me十M3十M2=口6D4D3DiP2

e〔=M9十M7十M5十M3十M]=D5十D4十D2十Di十Pi

正確狀態(tài)下,64636261=0000,由異或運算性質(zhì)(若4十8=0,則48相同,即A=8),可得

P4=D6eDsP3=D4十D3十D2P2=D6eD4?D3?D1Pl=Ds十D4十D2十Di

校驗時,直接用各碼元計算故障字,如e4=M']o十Ml十Ml即可知是否有錯,及錯誤碼位;

或由D1計算出P"j,則e,=P'j十P、

海明距離指兩個碼字的對應比特取值不同的位數(shù),簡稱碼距;在一個有效編碼集中,任意兩個碼字的海明距離的最小

值稱為該編碼集的海明距離;

海明碼如果要檢測d位錯誤,需要碼距吊1的編碼方案;如果要糾正d位錯誤,則需要碼距用+1的編碼方案:

上面的例子中,每個數(shù)據(jù)位至少參與了兩個校驗碼的生成過程,當該位翻轉(zhuǎn)時,會導致碼字中的3位發(fā)生變化(2校驗

位+該位〕,故碼距為3,可糾正1位錯誤,這正是我們的要求,還可知該編碼方案能檢測出2位出錯的情況,但不能同

時發(fā)現(xiàn)兩位錯和糾正一位錯,這種方案稱為SEC(SingleErrorCheck):能同時發(fā)現(xiàn)兩位錯和糾正一位錯的編碼方案稱為

SEC-DED(DoubleErrorsDetection),需增加一位校驗位;還可知奇偶校驗的碼距為2;

10.循環(huán)冗余校驗碼(CRC):若M為n位二進制數(shù)據(jù),CRC校驗碼有k位;將M左移k位,除以(模2運算除法)一

個約定的k+1位常數(shù)G(生成多項式),會得到k位余數(shù),即M關(guān)于G的CRC校驗碼,將其拼接到M后,即D=Mx2k+R,

一起發(fā)送或存儲;注,k+1位除數(shù)得到的余數(shù)一定是k位,計算除法前將M左移k位僅為了給k位余數(shù)R留出位置;

檢錯時,將D也除以G,若余數(shù)為0,則說明沒有錯誤,否則有錯;不同的余數(shù)對應不同的出錯位,可據(jù)此糾錯;

1-1

多項式M(x)與二進制數(shù)M=m71mHt…叫的對應關(guān)系為M(x)=^匕取?%,如1001對應爐+1;

模2運算除法的加減法均為異或(XOR)運算,相同為0,不同為1,不進向;部分余數(shù)首位為1則商1,否則商0;

當部分余數(shù)比除數(shù)位數(shù)少1位時停U計算,另外,如果將余數(shù)補0,繼續(xù)除下去,那么一組余數(shù)會循環(huán)出現(xiàn),這就

是CRC的由來;事實上,若(Mx2k)+G=Q...R,貝lJ(Mx2k)=GxQ+R,

D=Mx2k+R=GxQ+R+R=GxQ(R+R為異或運算),即余數(shù)為0;

CRC是面向bit流的,適用于磁盤和網(wǎng)絡傳輸?shù)葓龊希痪W(wǎng)絡應用時,用于校驗較長的一幀,并且只用于檢錯,不用F

糾錯,如果發(fā)現(xiàn)錯誤則重傳;PS.模2運算除法10瑞

第3章、運算方法和運算部件旦

01

1.行波進位加法器:將多個1位全加器串聯(lián),串行進位,速度慢;00

進位選擇加法器:類似分支預測,硬件較多工

先行(超前)進位加法器:通過“進位生成”和“進位傳遞”函數(shù)使各進位獨立,并行產(chǎn)生,速度快,可用單級,

兩級或更多級先行進位方式連接;Carryin

2.算術(shù)邏輯單元ALU,在先行進位加法器基礎上增加其它功能,實現(xiàn)基本算術(shù)和邏輯運算,

有2人操作數(shù)輸入,低位進位輸入,澡作控制輸入(操作碼位數(shù)決定了操作類型數(shù)量),

1個結(jié)果輸出,1位高位進位輸出和相應標志輸出等;

如74181是一種典型的4位ALUIC,操作碼有4位,加1位功能選擇,可實現(xiàn)16種算

術(shù)和16種邏輯運算;74182是一種成組先行進位生成IC,可配合74181擴展為多位兩-----?Overflowflag

級先行進位(組內(nèi),組間均先行)加法器:彳

3.定點整數(shù)運算,由專門的定點運算器實現(xiàn),核心部件是帶快速加法器的ALU;Carryout

移位運算:算術(shù)移位,邏輯移位,循環(huán)移位;

擴展運算:零擴展,適用于無符號數(shù),高位補0:符號擴展,適用于有符號整數(shù)(補碼),高位補符號;

補碼加減運算:符號位和數(shù)值位一起參加運算,減法用加法實現(xiàn);同號相加時,若結(jié)果的符號不同于加數(shù)的符號,

則發(fā)生溢出:加減法器,在基本加法器基礎上增加進位/加減控制,求補電路,溢出判斷電路等;

補碼乘法運算:用加法和右移實現(xiàn),符號位和數(shù)值位一起運算,采用Booth算法或MBA算法;快速乘法器,可用基

于CSA的陣列乘法器,MBA+WT乘法器實現(xiàn);

補碼除法運算;用加減法和左移實現(xiàn),符號位和數(shù)值位一起運算,有恢復余數(shù)法和不恢復余數(shù)法(常用,加減交替,

最后一次還是要恢復余數(shù)的)兩種;陣列除法器,用可控加減單元CAS組合成一個除法陣列;

4.浮點數(shù)運算,由專門的浮點運算器實現(xiàn);

加減運算:

1)對階:向階碼大的對齊,階碼小的尾數(shù)右移,右移時保留附加位(指為保證精度,計算過程中多保留的位):

2)尾數(shù)相加減:隱藏位和附加位都參加運算;用定點小數(shù)原碼加減法運算實現(xiàn),符號位判斷操作,數(shù)值位參

加運算,同號相加,異號相減,大數(shù)減小數(shù),減法即加負數(shù)的補碼,結(jié)果取大數(shù)的符號;

3)規(guī)格化處理:根據(jù)尾數(shù)結(jié)果進行左規(guī)或右規(guī)操作;

4)舍入:可采用就近舍入,正句舍入,負向舍入,截斷4種方式;

5)溢出判斷:當階碼上溢時,結(jié)果溢出;

乘除運算:

尾數(shù)用定點小數(shù)原碼乘除運算實現(xiàn),符號位,數(shù)值位分開運算,數(shù)值位用無符號數(shù)乘除法實現(xiàn);

階碼用定點整數(shù)加減運算實現(xiàn);

第4章、存儲器分層體系結(jié)構(gòu)★

1.存儲器按存取方式分為:隨機存取,順序存取,直接存取,相聯(lián)存儲(按內(nèi)容,如快表TLB)

主要指標:容量,速度,價格;層次化結(jié)構(gòu);

SRAM—6管雙穩(wěn)觸發(fā)器,MOS管多,集成度低,功耗大,無需刷新,讀寫速度快,常作為cache

DRAM-MOS管的柵極電容,集成度高,功耗小,需定時刷新,讀后再生,速度較慢,常作為主存

大容量存儲芯片為減少地址引腳,多采用復用技術(shù),行地址和列地址通過相同的管腳先后輸入;

DRAM的刷新是讀出后原樣寫入,按行進行;

集中刷新;分散刷新(分散到每個存儲周期);異步刷新(常用,刷新間隔=刷新周期/行數(shù));

傳統(tǒng)的內(nèi)存與CPU之間采用異步方式交換數(shù)據(jù);SDRAM,DDR等是采用同步方式,支持突發(fā)傳輸;

一般采用海明校驗;內(nèi)存包括RAM和ROM;主存芯片內(nèi)采用行緩存,當前行的數(shù)據(jù)直接從緩存中??;

2.存儲芯片的位擴展和字擴展;與CPU的連接:控制線(CS,W/R,行/列選通);數(shù)據(jù)線:地址線;

多模塊存儲器,連續(xù)編址時CPU地址線的高位作為片選信號,低位表示模塊內(nèi)/體內(nèi)地址,地址在模塊內(nèi)連續(xù),CPU

串行訪問存儲模塊,但DMA可同時訪問其它的模塊;交叉編址貝!以低位作為片選信號,高位表示模塊內(nèi)地址,多

采用輪流啟動方式,存取速度提高r倍,提高了帶寬;

雙DRAM,發(fā)生沖突時可按優(yōu)先級選擇某一端口,也可增加一個busy引腳,避免沖突;

3.程序訪問的局部性原理:時間(某直?元在很短時間內(nèi)被重復訪問)/空間(相鄰單元)局部性;Cache的有效位;

Cache平均訪問時間Ta=px「+(l—p)x7;n;P為命中率,適用于cache和內(nèi)存并行訪問的情況;

cache行―主存塊,一行可能有1到多個字節(jié),為2的整數(shù)哥:分塊太小不能充分利用空間局部性,也使塊數(shù)增加,

沖突概率增大;若分塊太大,在Cache容量一定的情況下,行數(shù)減小,導致缺失率增加,也會降低性能;

4.Cache與主存之間的映射:

直接映射一每個主存塊對應固定的cache行,行號=主存塊號%cache行/,若cache有2n行,則主存塊號(不

是主存地址?。┑牡蚽位對應cache吁號,主存地址形式:|標記|cached亍號|塊內(nèi)地址|:首先按主存塊

號低n位找到對應cache行,cache每行有對應的多位標記,若與主存標記相同,且cache有效位為1,則命中;實

現(xiàn)簡單,命中時間短,無需替換算法,但不能充分利用cache空間,命中率低,適合大容量cache;

全相聯(lián)映射一每個主存塊對應cache的任一行,主存地址形式:|標記|塊內(nèi)地址|;按內(nèi)容訪問,需要比較

所有cache行的標記,時間和元件開銷大,實現(xiàn)困難,沖突概率低,不適合大容量cache二

組相聯(lián)映射一將cache調(diào)整為二維邏輯結(jié)構(gòu),組間模映射,組內(nèi)全映射,組號=主存塊號%cache組紂,主存地址

形式:|標記|cache組號|塊內(nèi)地址cache每組s行即稱為s路組相聯(lián),適當選取s,性能上就能接近

全相聯(lián)方式;首先按主存塊號低n位找到對應cache組,對應cache組中每行標記與主存標記比較,若某行相同,

且有效位為1,則命中;

5.Cache中主存塊替換算法:先進先出(FIFO),缺失率較大;最近最少使用(LRU,是堆棧算法,每行需要計數(shù)器,

命中率隨組增大而提高);最不經(jīng)常用(LFU);隨機替換:

6.Cache一致性問題,關(guān)鍵是處理好寫操作:

全寫法(WriteThrough)一若命中,同時寫Cache和主存;若不命中,寫內(nèi)存后,可以裝入cache,也可以不裝入;

寫回法(WriteBack)—若命中,只寫Cache,每行增加dirty位,被換出時才寫內(nèi)存;若不命中,先裝入cache,

只寫Cache;需要其它機制保證Cache和內(nèi)存一致性;

寫一次法(WriteOnce)一與寫回法基本相同,僅是第一次寫命中時要同時寫Cache和主存;

7.Cache性能,即命中率,與容量,行大小有關(guān);現(xiàn)在一般采用多級Cache,且L1分指令和數(shù)據(jù)兩個Cache:一般L1

更關(guān)注速度,L2則要求盡量高的命中率;采用快速杳找算法,采用并行判定也能提高命中率;

8.虛擬存儲見操作系統(tǒng)對應部分;

9.快表(TLB)通常采用全相聯(lián)或組相聯(lián),隨機替換算法,寫回法;

10.在一個具有Cache和虛存的系統(tǒng)中,CPU訪存最長的過程是:CPU給出虛擬地址VA—TLB缺失一訪問主存頁表一

缺頁一主存沒有空閑頁,需換頁一從硬盤讀出一頁到主存一更新頁表和TLB-將VA轉(zhuǎn)換為物理地址PA-Cache缺失

-Cache中沒有空閑行,需替換一主存塊送入Cache-讀取數(shù)據(jù);

11.增加Cache,是為了匹配CPU和內(nèi)存的速度;虛存主要是為了解決內(nèi)存容量有限的問題,同時也解決了進程內(nèi)存

空間的隔離保護和共享問題;

第5章、指令系統(tǒng)

1.指令系統(tǒng)的設計原則:完備性;兼容性;均勻性(能處理多種數(shù)據(jù)類型);可擴充性;

指令=操作碼[+地址碼](不一定是地址):指令一般為整數(shù)個字節(jié),可能全部指令長度固定,也可以操作碼長度固定,

或指令和操作碼都固定,也可以都不固定;

定長一方便地址計算、取指和譯碼;變長(擴展)一緊湊,節(jié)約存儲空間:

零地址指令或者是無操作數(shù),不需要地址,或者操作數(shù)隱含在堆棧中,地址由棧指針給出;

寄存器數(shù)量多,可減少訪存,提高性能,但會增加指令長度,增加芯片成本;

2.操作數(shù)類型:地址/指針,用無符號整數(shù)表示;有符號整數(shù),浮點數(shù),十進制數(shù);字符串,邏輯值:

3.尋址方式

1)立即(數(shù))尋址,ADD#FFH;2)直接尋址,MOVAL,FFH:3)間接尋址(指針),MOVALJFFH]:

4)寄存器尋址(寄存器本身)ADDAL:5)寄存器間址MOVEAX,[ECX],可擴大尋址范圍;

變址尋址,常用于循環(huán)中對數(shù)組訪問,是數(shù)組首地址,是循環(huán)變量,是

6)MOVAL,[SI*Size+1000H],1000HSISize

數(shù)組元素的大?。挥械挠嬎銠C還允許變址和間址結(jié)合,EA=((I)+A)為先變址再間址,稱為前變址,是一個指針數(shù)組;

EA=(I)+(A)為先間址后變址,稱為后變址,A為指針的指針;

7)相對尋址,用于指令尋址,地址碼給出的是偏移量,是有符號整數(shù),基址隱含由PC給出,實現(xiàn)指令跳轉(zhuǎn)或浮動

子程序,JMPFFH;

基址尋址,在尋址過程中,基址是固定的,可變,用于進程的重定位/分段;變址,基址和相對

8)EA=(Base)+A,A

三種很類似,統(tǒng)稱偏移尋址;

9)其它:隱含累加器尋址;堆棧操作,隱含在棧頂;位尋址;塊尋址,串尋址,首地址+長度/末地址/尾標志;

4.操作類型

數(shù)據(jù)傳送:在寄存器,主存,棧頂之間傳送數(shù)據(jù);

運算:各種算術(shù)和邏輯運算;

移位:算術(shù)/邏輯左移,低位補零;算術(shù)右移,高位補符號;邏輯右移,高位補零;半字交換等:

串處理:串查找,傳送,比較等;

I/O操作:CPU與外設接口進行數(shù)據(jù)、狀態(tài)、命令交換:

程序流程控制:條件轉(zhuǎn)移,無條件轉(zhuǎn)移,程序調(diào)用,返回等;

系統(tǒng)控制:停機,中斷,模式切換,開關(guān)中斷,空操作等,一般為特權(quán)指令;

5.狀態(tài)位/條件碼/標志位(Flags)

1)符號位NF/SF=1表示結(jié)果為負數(shù);2)溢出位VF/OF=1表示結(jié)果溢出;

3)進位/借位標志CF=1表示產(chǎn)生了進位/借位;4)零位ZF=1表示結(jié)果為0;

條件轉(zhuǎn)移指令會用到這些標志位,如無/有符號數(shù)是否為0或另一個數(shù)的大小關(guān)系(做減法):

對無符號數(shù):a==bOZF:a>bOCFTZFwCF.ZF,aWb—CF+ZF;a<bOCF-ZF,a2b—CF+ZF;

有符號數(shù)還要考慮溢出位OF;

6.按地址碼指定風格,指令系統(tǒng)有累加器型(早期),堆棧型(JVM,CLI),通用寄存器型(x86),Load/Store型(也

算是一種通用寄存器型,但限制訪存方式,RISC);

7.按指令復雜度,指令系統(tǒng)有

CISC-a.指令系統(tǒng)復雜,指令多,尋址方式多,指令格式多;b.指令周期長;c.指令周期差距大;d.采用微程序控

制;e.編譯優(yōu)化較難;

RISC-a.指令數(shù)量少,只含常用的簡單指令:b.指令格式規(guī)整;cLoad/Store型風格;d.流水線方式執(zhí)行指令:e.

大量通用寄存器;f.采用組合邏輯電路控制;g.有利于編譯優(yōu)化;

RISC隨著系統(tǒng)功能擴展,日趨復雜;CISC采用微指令,吸收RISC的優(yōu)點,也實現(xiàn)了流水線,又保持了指令集兼容;

第6章、中央處理器★

1.CPU的執(zhí)行指令的過程:1)指令地址計算;2)取指令,對定長指令,通常只需一次訪存,若指令長度可變,則可

能需多次訪存;3)指令操作碼譯碼,生成控制信號;4)源操作數(shù)地址計算,取操作數(shù);5)數(shù)據(jù)運算;6)目的操

作數(shù)地址計算,存數(shù):7)檢查是否發(fā)生中斷,如有則轉(zhuǎn)入中斷處理程序;

2.CPU的基本功能:1)控制指令的執(zhí)行順序;2)控制指令執(zhí)行操作(what);3)控制操作時序(when);4)對數(shù)據(jù)

進行運算;5)對存儲器或10訪問進行控制;6)異常和中斷處理;

3.CPU基本結(jié)構(gòu):由數(shù)據(jù)通路和控制單元組成;

數(shù)據(jù)通路:包含組合邏輯單元和存儲信息的狀態(tài)單元;

組合邏輯單元用于對數(shù)據(jù)進行處理,如加法器,ALU,擴展器(0擴展和符號擴展),多路選擇器,以及狀態(tài)單元的

讀操作邏輯等;

狀態(tài)單元包括觸發(fā)器,寄存器等,用于保存指令執(zhí)行的中間狀態(tài)或最終結(jié)果;某?時刻的輸出狀態(tài)可能與輸入端不

同,再經(jīng)過一個時鐘邊沿后,輸入狀態(tài)才能傳遞到輸出端;

早期有累加器+內(nèi)存結(jié)構(gòu)的數(shù)據(jù)通路(如IAS),還有采用總線結(jié)構(gòu)的數(shù)據(jù)通路(單總線,多總線,總線與部件間一

般要通過寄存器和三態(tài)門隔離),現(xiàn)代多采用專用數(shù)據(jù)通路結(jié)構(gòu);

控制單元:對取出的指令譯碼,與指令執(zhí)行得到的條件碼,或當前機器狀態(tài),時序信號等組合,生成對數(shù)據(jù)通路的

控制信號;包括PC,IR,指令譯碼器,時序信號產(chǎn)生部件,操作控制信號形成部件,總線控制邏輯,中斷機構(gòu)等;

4.用戶可見寄存器:用戶程序中的指令可直接訪問或間接修改的寄存器;有,

通用寄存器:用來存放數(shù)據(jù)或地址:

地址寄存器:專門用來存放首地址或指針,如段寄存器,變址寄存器,基址寄存器,堆棧指針等;

程序計數(shù)器PC/EIP:存放下一條指令的地址;

部分可見寄存器:只能讀取部分信息的寄存器,如程序狀態(tài)字PSWR或標志寄存器,其內(nèi)容由CFU根據(jù)指令執(zhí)行結(jié)

果自動設置,用戶程序只能隱含讀出部分內(nèi)容,不能直接修改這些寄存器的內(nèi)容:

不可見寄存器:用于記錄控制和狀態(tài)的寄存器,只能由CPU硬件或操作系統(tǒng)內(nèi)核訪問,用戶程序不可訪問;

指令寄存器IR:存放正在執(zhí)行的指令;

存儲器地址寄存器MAR:存放將要訪問的存儲單元地址;

存儲器數(shù)據(jù)(緩沖)寄存器MDR:存放從存儲器讀出或要寫入存儲器的數(shù)據(jù);

其它寄存器:如中斷請求寄存器,進程控制塊指針,頁表基址指針等;

5.早期計算機采用機器周期,節(jié)拍,脈沖三級時序系統(tǒng);現(xiàn)代計算機沒有機器周期的概念,而一個節(jié)拍即一個脈沖;

數(shù)據(jù)通路采用時鐘信號進行定時,在時鐘邊沿,數(shù)據(jù)通路中的狀態(tài)單元開始寫入信息:

每條指令功能不同,所以執(zhí)行時數(shù)據(jù)在數(shù)據(jù)通路中經(jīng)過的部件和路徑可能不同,但取指階段是一樣的;

6.控制器的功能和控制原理;

7.控制單元的實現(xiàn)方式:硬連線路控制器(組合邏輯控制器)和微程序控制器;

硬連線路控制器:將指令執(zhí)行過程中每個時鐘周期所包含的控制信號取值組合看成一個狀態(tài),每來一個時鐘,控制

信號會有一組新的取值,也就是一個新的狀態(tài),這樣所有指令的執(zhí)行過程可以用一個有限狀態(tài)轉(zhuǎn)換圖來描述;用一

個組合邏輯電路(一般為PLA)來生成控制信號,用一個狀態(tài)寄存器實現(xiàn)狀態(tài)之間的轉(zhuǎn)換;速度快,適合簡單或規(guī)

整的指令系統(tǒng),如RISC:

微程序控制器:將指令執(zhí)行過程中每個時鐘周期所包含的控制信號取值組合看成是一個0/1序列,每個控制信號對

應一個微命令,控制信號取不同的值,就發(fā)出不同的微命令;若干微命令組合成一個微指令,每條指令所包含的動

作由若干條微指令來完成:每條指令執(zhí)行時,先找到對應的第一條微指令,然后安裝特定的順序取出后續(xù)微指令執(zhí)

行:每來一個時鐘脈沖,執(zhí)行一條微指令;實現(xiàn)時,每條指令對應的微指令序列實現(xiàn)存放在一個只讀存儲器(稱為

控制存儲器,簡稱控存CM)中,用一個PLA或ROM來生成每條指令對應的微程序的第一條微指令地址,用相應的

微程序定序器來控制微指令執(zhí)行過程;結(jié)構(gòu)標準化程度高,便于擴充,速度較硬連線結(jié)構(gòu)慢;

微程序定序器(即確定卜.條微指令地址的部件)的實現(xiàn)有計數(shù)器法(*C)和斷定法(又稱卜址字段法,顯式給出

下條微指令地址);

8.微指令的編碼方式:

直接控制法:在微指令的控制字段中,每一位代表一個微命令,在設計微指令時,是否發(fā)出某個微命令,只要將控

制字段中相應位置成“1”或“0”,這樣就可打開或關(guān)閉某個控制門:全0對應nop指令;微操作碼長度與微命令

個數(shù)相同,無需譯碼,控制電路簡單,速度快,便于并行執(zhí)行;但浪費碼位;

字段直接編譯法:在計算機中的各個控制門,在任一微周期內(nèi),不可能同時被打開,而且大部分是關(guān)閉的(相應的

控制位為"0”);所謂微周期,指的是一條微指令所需的執(zhí)行時間;如果有若干個(一組)微命令,在每次選擇使

用它們的微周期內(nèi),只有一個微命令起作用,那么這若干個微命令是互斥的;選出互斥的微命令,并將這些微命令

編成一組,成為微指令字的一個字段,用二進制編碼來表示,就是字段宜接編譯法:相容微命令在不同的字段里:

字段間接編譯法:在字段直接編譯法的基礎上,進一步縮短微指令字長的一種編譯法;在字段直接編譯法中,還規(guī)

定一個字段的某些微命令,要兼由另一字段中的某些微命令來解釋;極少采用:

9.異常(內(nèi)中斷)指CPU內(nèi)部在執(zhí)行其條指令時發(fā)生的程序異?;蛴布惓?,有故障,陷阱和終止三種類型,也被稱

為程序性中斷;

故障:由某條正在執(zhí)行的指令產(chǎn)生的異常,如溢出,除數(shù)為0,非法操作,缺頁等,有些故障處理后程序可以

繼續(xù)執(zhí)行,有的不能處理,只能停止執(zhí)行發(fā)生異常的進程;

陷阱:預先安排的一種“異常”事件,如斷點,單步跟蹤,系統(tǒng)調(diào)用等;

終止:嚴重的硬件故障,一旦發(fā)生只能終止整個系統(tǒng),或者重啟;

外部中斷,外設或其它CPU通過中斷請求線向CPU發(fā)出的處理請求,與當前指令無關(guān),是一種I??刂品绞剑?/p>

10.異常處理過程:1)保護斷點和程序狀態(tài)(PC和PSW);2)識別異常事件并轉(zhuǎn)入處理;3)關(guān)中斷;

第7章、指令流水線★

1.指令流水線的基本概念:

流水線技術(shù)是一種能顯著提高指令吞吐率的技術(shù);方法是指令取指后,不等該指令執(zhí)行完畢,即取下一條指令;如

果把一條指令的解釋過程進一步細分,例如,把分析、執(zhí)行兩個過程,分成取指IF、譯碼ID、取數(shù)OF、執(zhí)行EX、

和寫回寄存器WB5個子過程,并用5個子部件分別處理這些子過程:在上一指令的第1子過程處理完畢進入第2

子過程處理后,第1子部件中就開始對第二條指令的第1子過程進行處理;隨著時間推移,這種重置操作最后可達

到5人子部件同時對5條不同指令的子過程進行處理;

將每務指令的執(zhí)行規(guī)整化為若干個流水階段,每個流水階段的執(zhí)行時間以最慢的流水段所需時間為準,定為一個時

鐘周期,這樣可能有的指令執(zhí)行時間變長了,但在理想情況卜,每個時鐘有1條指令進人流水線,并有1條指令執(zhí)

行結(jié)束,達到CPI=1,最終的效果是執(zhí)行效率顯著提高了;

每個流水段中的部件都是組合邏輯部件,流水線段之間需要加流水段寄存器,組合邏輯中產(chǎn)生的結(jié)果在時鐘到來時被存

儲到流水段寄存器中;流水段寄存器用以記錄所有流到后面階段要用的各種信息,例如控制信號、指令、新的PC值、

參加運算的操作數(shù)、指令運算結(jié)果、由令異常信息、寄存器讀口地址、寄存器寫口地址、存儲地址等;

指令譯碼得到的控制信號通過流水段寄存器與本指令的數(shù)據(jù)信息一起,同步傳送到后面各個流水段;

2.指令流水線的局限性:

不同指令的功能不同,并不是每條指令都能劃分成相同多個階段,按最復雜指令所需規(guī)劃流水段后,有些指令的某

些流水段執(zhí)行的可能是空操作nop;

不同流水階段的功能不同,并不是每個流水段所用的時間都?樣長,按最長時間流水段確定時鐘周期后,某些流水

段中可能會有時間浪費;

隨著流水線深度的增加,流水段寄存器的額外開銷比例也增大:指令在資源沖突、數(shù)據(jù)相關(guān)或控制相關(guān)時會發(fā)生流

水線阻塞,因而影響指令執(zhí)行效率;

3.指令流水線的執(zhí)行效率

吞吐率:比非流水線方式下提高若干倍,理想情況下,其倍數(shù)為劃分的流水段個數(shù);

加速比:指m段流水線的速度與等功能的非流水線的速度之比,理想情況為m倍;

指令執(zhí)行時間:由于流水段劃分要求的一致性,以及流水段寄存器的額外開銷,使得流水線方式下一條指令的執(zhí)行

時間更長了:

4.結(jié)構(gòu)冒險(資源沖突):多條指令同時要求使用同一個功能部件:解決策略:

規(guī)定每個功能部件在一條指令中只能被使用一次;

規(guī)定每個功能部件只能在某個特定的階段被使用;

指令存cache和數(shù)據(jù)cache分開;

5.數(shù)據(jù)冒險(數(shù)據(jù)相關(guān)):前面指令的目的操作數(shù)是后面指令的源操作數(shù);解決策略:

用軟件(如編譯器)在數(shù)據(jù)相關(guān)指令前插入nop指令:

在硬件檢測到數(shù)據(jù)相關(guān)時,使后面的數(shù)據(jù)相關(guān)指令進入停頓狀態(tài),即在特定的流水段中插入“氣泡”,以“阻塞”

指令繼續(xù)執(zhí)行,直到取得所需數(shù)據(jù)為止;

利用“轉(zhuǎn)發(fā)(旁路)”技術(shù),把前面指令執(zhí)行過程中得到的數(shù)據(jù)直接傳送到后面指令需要使用數(shù)據(jù)的地方,能解決

寫后讀(RAW),或?qū)懞髮懀╓AW)情況;

對于取數(shù)后直接使用的情況(如Load指令取出的數(shù)據(jù)是隨后下一條運算指令的操作數(shù),load-use情況,又可歸為讀

后寫,WAR),則采用“阻塞加轉(zhuǎn)發(fā)”的方式解決數(shù)據(jù)冒險;

6.控制冒險(控制相關(guān)):有兩種情況,

1)轉(zhuǎn)移指令:分支、調(diào)用、返回、跳轉(zhuǎn)等指令(統(tǒng)稱為轉(zhuǎn)移指令)需要計算目標轉(zhuǎn)移地址,分支指令還需根據(jù)條

件確定新的PC值;由于獲取轉(zhuǎn)移目標地址的時間較長,使得在目標地址產(chǎn)生前,后續(xù)指令已被取到流水線中;如

果已經(jīng)取出并正在執(zhí)行的指令不是應該執(zhí)行的指令,則發(fā)生了控制冒險;分支指令引起的控制冒險稱為分支冒險;

2)異常和中斷:處理器檢測到發(fā)生異常和中斷時,可能已有多條不該執(zhí)行的指令在流水線中執(zhí)行,導致控制冒險;

解決黃略:

由編譯器在轉(zhuǎn)移指令后面插入nop指令(插入指令條數(shù)等于延遲損失時間片);

在硬件檢測到有關(guān)轉(zhuǎn)移指令時,使后面若干條指令(指令條數(shù)等于延遲損失時間片)進入停頓狀態(tài),也即在特定的

流水段中插入“氣泡”,以“阻塞”指令繼續(xù)執(zhí)行,直到能確定正確的PC值為止;

對于分支冒險,可結(jié)合采用“分支預測”技術(shù);有簡單(靜態(tài))預測和動態(tài)預測兩種方式:靜態(tài)預測方式下,預測

的結(jié)果是固定的,總是預測轉(zhuǎn)移(taken)或不轉(zhuǎn)移(nottaken);動態(tài)預測方式下,根據(jù)分支指令執(zhí)行的歷史情況

調(diào)整預測位;動態(tài)預測比靜態(tài)預測成功率高得多;

采用廷遲分支技術(shù);將前面幾條與轉(zhuǎn)移指令無關(guān)的指令放到分支指令后面的延遲槽中執(zhí)行,無關(guān)指令不夠時用nop

指令填滿延遲槽;這樣,硬件不需對流水線進行阻塞,對指令順序進行調(diào)整的工作在編譯階段完成;

7.在一個時鐘周期內(nèi),流水線的每個階段都可能發(fā)生異?;蛑袛啵话愕淖龇ㄊ侵粚惓T蚝蛿帱c記錄到特定寄存

器,指令繼續(xù)在流水線中執(zhí)行,直到最后階段,檢測該指令是否發(fā)生了異?;虺霈F(xiàn)外部中斷,若有則刷新流水線并

轉(zhuǎn)入中斷處理過程;

8.高級流水線技術(shù):在時間和空間上進一步提高指令級并行性,通常有三種措施:

超流水線:將指令執(zhí)行過程劃分得更細,采用更多級數(shù)的流水線,著重在于時間上并行;

多發(fā)射流水線(超標量處理器):同時發(fā)射多條指令,并由多個功能部件并行執(zhí)行,著重在于空間上并行,CPK1;

“指令打包”和“冒險處理”是實現(xiàn)多發(fā)射的兩個基本任務:

靜態(tài)多發(fā)射:“指令打包”和“冒險處理”任務主要由編譯器靜態(tài)、完成,打包后的指令相當于一條由多條指

令組成的長指令,被同時發(fā)射執(zhí)行,因此,這類處理器有時被稱為VLIW處理器(超長指令字):Intel的IA-64

(Itanium)架構(gòu)采用這種方法,Intel稱其為EPIC技術(shù)(顯式并行指令運算);過于依賴編譯器,硬件的變更會

導致不兼容,甚至需重新編譯應用軟件:

動態(tài)多發(fā)射:由處理器硬件在指令執(zhí)行時動態(tài)確定哪些指令被同時發(fā)射,如果沒有可以被同時發(fā)射的指令或遇

到指令相關(guān)時,則某些流水段空閑;目前超標量處理器多指采用動態(tài)多發(fā)射流水線的處理器,并且通常會結(jié)合

采用動態(tài)流水線調(diào)度技術(shù);

動態(tài)流水線調(diào)度:處理器通過指令相關(guān)性檢測和動態(tài)分支預測等手段,投機性地不按指令順序執(zhí)行;即當發(fā)生

流水線阻塞時,根據(jù)指令的依賴關(guān)系,動態(tài)地到后面找?些沒有依賴關(guān)系的指令提前執(zhí)行;在動態(tài)流水線調(diào)度

下,指令被“亂序”執(zhí)行;

第8章、系統(tǒng)總線

1.總線是一組設備共享的傳輸線,一次只能為一個部件提供服務,其發(fā)出的信號可以其它所有部件接收;

2.按連接部件可分為內(nèi)部總線(片內(nèi)),系統(tǒng)總線(功能部件),通信總線(主機與10或其它主機,如USB,以太網(wǎng));

3.系統(tǒng)總線按傳輸信息,可分為數(shù)據(jù)總線(雙向傳輸),地址總線(單向),控制總線(用來傳輸時鐘和命令信息);

也有將地址線和數(shù)據(jù)線復用,經(jīng)數(shù)據(jù)線傳送地址的設計:

4.對同步總線,帶寬B與數(shù)據(jù)總線位寬W,總線時鐘頻率F和傳輸每個數(shù)據(jù)所需的時鐘周期N有關(guān),B=W-F/N:

5.總線上一對設備間一次交換信息的過程稱為總線事務,典型如存儲器讀寫,10讀寫,中斷響應等;一次總線事務包

括地址階段和數(shù)據(jù)階段,詳細又分申請分配階段,尋址階段,數(shù)據(jù)傳送階段和結(jié)束階段;突發(fā)(burst)傳送由一個

地址階段和多個數(shù)據(jù)階段構(gòu)成,可傳送多個連續(xù)單元的數(shù)據(jù),也稱為組傳送;

6.一個總線事務總是在一對主,從設備之間傳送數(shù)據(jù),當有多個主控設備時,需要總線裁決來決定哪個主控設備使用

總線;有集中式(有總線控制器/裁決器)和分布式兩種裁決方法;

7.集中式一主控設備使用請求信號發(fā)出請求,獲準后傳送,完成后需通過某種方式通知總線控制器,釋放總線:

鏈式查詢/菊花鏈:只有總線請求,允許,忙三根控制線(前2根用于裁決),各主控設備串接在允許線上,被選中

設備置總線忙信號;靠近控制器的設備優(yōu)先級高,結(jié)構(gòu)簡單,但不能保證公正,可靠性低,裁決速度慢;擊鼓傳花

計數(shù)器定時查詢;n個設備,有ceil(log2(n))根設備地址線,一根請求線,和總線忙狀態(tài)線,裁決器內(nèi)的計數(shù)器即選

中設各的地址,被選中設備置總線忙信號;若每次裁決都從。開始計數(shù),則設備地址即優(yōu)先級(越小優(yōu)先級越高),

若從上次選中設備開始,則優(yōu)先級平等:也可由程序設置計數(shù)初值:從而調(diào)整優(yōu)先級;可靠性較高,但控制較好雜;

點名報到

獨立請求方式:每個設備都有一根請求線和允許線,共2n根控制線,沒有總線忙狀態(tài)線;裁決器內(nèi)有排隊器,優(yōu)

先級控制方法非常靈活,裁決響應快,但控制邏輯和結(jié)構(gòu)復雜;領(lǐng)導說了算

8.分布式一沒有中央的裁決器,每人設備有自己的裁決器和請求號,競爭使用總線,自行裁決;

自舉式:每個設備一根請求線,兼做總線忙狀態(tài)線,檢測較高優(yōu)先級設備的請求線均為空閑時可使用總線;優(yōu)先級

固定,請求線較多,故多復用數(shù)據(jù)線;

沖突檢測式:如以太網(wǎng)的載波監(jiān)聽多點接入/沖突檢測(CSMA/CD)方式;控制線少,沖突多;

并行競爭式:n個設備,有ceil(log2(n))根仲裁線,各設備出牌(仲裁號)比大小,設備和仲裁線的邏輯相反;優(yōu)先

級靈活,裁決線少;

9.總線的定時方式有4種:同步,異步,半同步和分離事務;

同步:總線.上的所有設備從公共的時鐘線上獲得定時信號,傳輸協(xié)議規(guī)定了在每個周期應完成的特定操作;傳輸速

度快,接口邏輯少;但必須按最慢的設備來確定時鐘,適合于存取時間比較接近的設備;由于時鐘偏移,導致總線

不能過長;由于沒有上一步操作的確認信號,故可靠性較低:

異步:采用應答(握手)方式,需增加請求和應答線;有不互鎖,半互鎖和全互鎖(三次握手)三種應答方式;

半同步:在異步方式中增加時鐘線,要求握手信號總是在時鐘邊沿發(fā)生,提高了抗干擾能力;

分離事務:設備不使用總線時立即粗放,多個設備可交替使用總線,但完成一個事務可能要多次獲得總線,從設備

也必須跟蹤對方的狀態(tài),與主設備聯(lián)系;

10.總線標準:系統(tǒng)總線ISA,EISA,PCI,PCI-E等;設備總線/接口IDE,SATA,SCSI,USB等;圖形總線/接口AGP等;

11.總線結(jié)構(gòu):單總線,雙總線(主存總線+系統(tǒng)總線,或主存總線+10處理器&10總線),多總線U0總線+主存總線

+高速10與內(nèi)存之間的DMA總線,處理器總線+橋接器+主存總線+高速10總線+10處

溫馨提示

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

評論

0/150

提交評論