建構(gòu)Beta計算機(jī)課件_第1頁
建構(gòu)Beta計算機(jī)課件_第2頁
建構(gòu)Beta計算機(jī)課件_第3頁
建構(gòu)Beta計算機(jī)課件_第4頁
建構(gòu)Beta計算機(jī)課件_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

建構(gòu)Beta計算機(jī)

6.004-Fall200210/29/0L15-BuildingaBeta1

中央處理單元的設(shè)計取舍

最大效能:以每秒可執(zhí)行的指令數(shù)來衡量

最小成本:以電路的大小來衡量

最佳效能/價錢:以MIPS(每秒百萬指令)與大小的來比例來衡量.

在重視能量消耗的應(yīng)用中,MIPS/瓦特也很重要.

6.004-Fall200210/29/0L15-BuildingaBeta2

效能之量測

每秒百萬指令

時脈頻率(百萬赫)

ClockFrequency(MHz)

MIPS=

C.P.L

每指令所需時脈數(shù)

推進(jìn)效能…

今天:1時脈/指令

下次:以管路技術(shù)來達(dá)成更多百萬赫

下下次:修正不同的管路技術(shù)問題

6.004-Fall200210/29/0L15-BuildingaBeta3

Beta指令集

操作類別:Reg[Rc]<-Reg[Ra]opReg[Rb]

11xxxx|RcIRa]rteraiC(signed;以操作碼區(qū)分的指令類

另小

操作類別:Reg[Rc]-Reg[Ra]opSXT(C)

兩種格式共享的操作碼(OPCODE):OP

ADDSUBMUL*DIV*"optionalOPC

CMPEQCMPLECMPLT

ANDORXORMEM

SHLSHRSRATransferofControl

31xxxx|RcRaiteraiC(signed)

LD:RegNc]-Ver[Reg[Ra]*SXT(C)]

ST:MeT[Reg[Ra]+SXT(C?—Reg(Rc]

Reg(Rc]—PCM;PC4-Reg[Ra:

BEQ:Reg[Rc]—PC+4;if司T:nenPC—PCWSXT(C)

BNEReg(^cj4-PC+4;-RegfRaW)tnenPC-nc+4WSXT《C)

LOR:^eg[Rc]1Vem(PC+4+4'SXT(C)]

O.UUH--ran乙uu/Iu/“/uLIO—ouiiuiiiyaoeia4

達(dá)成方法:累進(jìn)功能法

每個指令是由一個簡單的功能組件成來達(dá)成的.我們將試著實(shí)現(xiàn)各個指令類別

的數(shù)據(jù)路徑,然后再將它們合并(使用解多任務(wù)器等).

步驟:我們的組件百寶袋:

1.操作類指令bI緩存器匹

2.存取類指令

3.跳躍與分流類指令、口解多任務(wù)器

4.例外

父三7“黑盒子”運(yùn)算邏輯單元

5.合并數(shù)據(jù)路徑

RA1RA2

WA

Register

inctruoUon

;eMemory

(3-port)D

RD2內(nèi)存

6.004-Fall200210/29/0L15-BuildingaBeta5

多端口緩存器檔案

6.004-Fall200210/29/0L15-BuildingaBeta6

緩存器檔案之時序

兩組組合邏輯式讀取端口,一組時脈控制式寫入埠

WE__________________L___3______

)000播XX施必XXX二DWWX

WDXXXXXXXXXXXX施政CMD000綸XXXX

%

如果(舉例來說)WA=RA1,將會如何???

RD1會讀取“舊的"Reg[RA1]之值,一直到下一個時脈邊緣為止!

6.004-Fall200210/29/0L15-BuildingaBeta7

起始點(diǎn):ALU操作

32?位(4-字節(jié))ADD指令:

1oooodooi0王001d0001dooooooooooa

OpCodeRcRa◎(unused)

對BETA而言,表示Reg[R4]—Reg[R2]+Reg[R3]

首先,硬件必需能夠:

?讀取下一個32?位指令

?指令譯碼(DECODE):ADD,SUB,XOR,等等

?從緩存器檔案進(jìn)行讀取(READ)(Ra,Rb)之操作;

?執(zhí)行(PERFORM)指定的操作;

?將結(jié)果寫回(WRITE)緩存器檔案(Rc).

6.004-Fall200210/29/0L15-BuildingaBeta8

指令取得/譯碼

?使用計數(shù)器來取得(FETCH)下一個指令:

程序計數(shù)器(PC)

?使用PC來當(dāng)作內(nèi)存地址

?力口4到PC,然后在時脈結(jié)束時加載新的值

?從內(nèi)存取得指令

o直接使用某些指令字段(緩存器編號,

16■位之常數(shù))

o使用<31:26>位來產(chǎn)生控制訊號

INSTRUCTION

WORD

FIELDS

CONTROLSIGNALS

6.004-F;L15-BuildingaBeta9

ALU操作之?dāng)?shù)據(jù)路徑

6.0..daBeta10

ALU操作(常數(shù)存在時)

6.004-Fall200210/29/0L15-BuildingaBeta11

“加載'指令

6.004-Fall200210/29/0L15-BuildingaBeta12

“儲存”指令

6.004-Fall200210/29/0L15-BuildingaBeta13

“跳躍”(JMP)指令

6.004-Fall200210/29/0L15-BuildingaBeta14

BEQ/BNE(當(dāng)相等/不等時,則跳躍)指令

6.004-Fall200210/29/0L15-BuildingaBeta15

“加載相對地址”指令

rteraiC(sigred;

LDR:Reg[Rc]-Mem[PC+4+4*SXT(C)]

等等,“加載相對地址”指令有什么好處呢???我認(rèn)為

?程序代碼是單純的,舉例來說,它們是只讀的,并且存在一個“程序”內(nèi)存區(qū);

?但數(shù)據(jù)是可讀/寫的,而使用以下方法之一來儲存

?存在堆棧(STACK)中(內(nèi)部);或

?在某些外部變數(shù)中;或,______________

?存在一個外部的儲存堆棧(HEAP)./c:x=x?i:

所以,為什么一個指令要設(shè)計成可以加載“靠近”這個血wxO)

指令的數(shù)據(jù)呢???LDR(clr:

LDR(clzrrl)

當(dāng)數(shù)據(jù)是“地址“及“其它較大的常數(shù)”時MULCxO,xl,xO)

ST(xOzX)

6.004-Fall200210/29/0L15-BuildingaBeta16

“加載相對地址”(LDR)指令

RcliteralC(signed)

ICR—Mcm[R:444.4e6XT(C)]

Incruoton

Memory

向LDR:Reg[Rc]—Mem[PC+4+4*SXT(C)]

?)<15:1產(chǎn)廠、Rc:<2S21>

4:【一

Register

ControlLogic

Epc

RA

EA二

B

itvAu

m,

m

<E

6.004-Fall200210/29/0L15-BuildingaBeta17

例外處理

計劃::

?中斷正在執(zhí)行的程序

?呼叫例外處理(像是一個過程調(diào)用)

?返回并繼續(xù)執(zhí)行.

我們希望有可修復(fù)的中斷以達(dá)成

?由中央處理器(CPU)或系統(tǒng)產(chǎn)生的同步化事件

錯誤(例如,不合法的指令,除數(shù)為0,不合法的內(nèi)存地址)

捕捉及系統(tǒng)呼叫(例如,從外圍讀取一個字符)

?由I/O所產(chǎn)生的異步化事件

(例如,鍵盤鍵入,收到封包,磁盤傳輸完成)

關(guān)鍵:對于被中斷程序的透明度.

?這對異步化中斷是最難的

6.004-Fall200210/29/0L15-BuildingaBeta18

實(shí)施方法…

例外如何運(yùn)作:

?不要執(zhí)行現(xiàn)在的指令

-取而代之的,假裝有一個“強(qiáng)制”的過程調(diào)用

?儲存現(xiàn)在的程序計數(shù)(PC)(事實(shí)上是現(xiàn)在的PC+4)

?用例外向量載入PC

?同步化例外是0x4,異步化例外是0x8

問題:要把現(xiàn)在的PC+4存到哪呢?

?我們的方法:保留一個緩存器(R30,也稱XP)

?禁止使用者程序使用XP.為什么?

例子:DIV指令并未實(shí)施不合法的操作:

PUSH(XP)

取得指令于Mem[Reg[XP]-4]

LD(R31,A,R0)檢查DIV操作碼,找到緩存器號碼

LD(R31,B,R1)用軟件來執(zhí)行這個操作,填入結(jié)果緩存器

DIV(R0,R1,R2)

POP(XP)

ST(R2,C,R31)

JMP(XP)

6.004-Fall200210/29/0L15-BuildingaBeta19

例外

BadOpcode:Reg[XP]-PC+4;PC-“川Op”

Other:Reg[XP]-PC+4;PC-“Xadr”

intirucftcn

(30

X

u

H

/

?;

6.004-Fall200210/29/0L15-BuildingaBeta20

控制邏輯

*Or

39今%3

ALUFNF(op)F(op)y———*——

WERF1110111i11

ffSEL0111——————

WbSEL112—000200

WR0001000000

RA25EL0—1——————

PC5EL00002Z?1:0Z?0:1034

ASEL0000——

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論