建构Beta计算机课件_第1页
建构Beta计算机课件_第2页
建构Beta计算机课件_第3页
建构Beta计算机课件_第4页
建构Beta计算机课件_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

建构Beta计算机

6.004-Fall200210/29/0L15-BuildingaBeta1

中央处理单元的设计取舍

最大效能:以每秒可执行的指令数来衡量

最小成本:以电路的大小来衡量

最佳效能/价钱:以MIPS(每秒百万指令)与大小的来比例来衡量.

在重视能量消耗的应用中,MIPS/瓦特也很重要.

6.004-Fall200210/29/0L15-BuildingaBeta2

效能之量测

每秒百万指令

时脉频率(百万赫)

ClockFrequency(MHz)

MIPS=

C.P.L

每指令所需时脉数

推进效能…

今天:1时脉/指令

下次:以管路技术来达成更多百万赫

下下次:修正不同的管路技术问题

6.004-Fall200210/29/0L15-BuildingaBeta3

Beta指令集

操作类别:Reg[Rc]<-Reg[Ra]opReg[Rb]

11xxxx|RcIRa]rteraiC(signed;以操作码区分的指令类

另小

操作类别: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

达成方法:累进功能法

每个指令是由一个简单的功能组件成来达成的.我们将试着实现各个指令类别

的数据路径,然后再将它们合并(使用解多任务器等).

步骤:我们的组件百宝袋:

1.操作类指令bI缓存器匹

2.存取类指令

3.跳跃与分流类指令、口解多任务器

4.例外

父三7“黑盒子”运算逻辑单元

5.合并数据路径

RA1RA2

WA

Register

inctruoUon

;eMemory

(3-port)D

RD2内存

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

起始点:ALU操作

32•位(4-字节)ADD指令:

1oooodooi0王001d0001dooooooooooa

OpCodeRcRa◎(unused)

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

首先,硬件必需能够:

・读取下一个32•位指令

•指令译码(DECODE):ADD,SUB,XOR,等等

•从缓存器档案进行读取(READ)(Ra,Rb)之操作;

•执行(PERFORM)指定的操作;

•将结果写回(WRITE)缓存器档案(Rc).

6.004-Fall200210/29/0L15-BuildingaBeta8

指令取得/译码

•使用计数器来取得(FETCH)下一个指令:

程序计数器(PC)

•使用PC来当作内存地址

・力口4到PC,然后在时脉结束时加载新的值

・从内存取得指令

o直接使用某些指令字段(缓存器编号,

16■位之常数)

o使用<31:26>位来产生控制讯号

INSTRUCTION

WORD

FIELDS

CONTROLSIGNALS

6.004-F;L15-BuildingaBeta9

ALU操作之数据路径

6.0..daBeta10

ALU操作(常数存在时)

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(当相等/不等时,则跳跃)指令

6.004-Fall200210/29/0L15-BuildingaBeta15

“加载相对地址”指令

rteraiC(sigred;

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

等等,“加载相对地址”指令有什么好处呢???我认为

・程序代码是单纯的,举例来说,它们是只读的,并且存在一个“程序”内存区;

•但数据是可读/写的,而使用以下方法之一来储存

•存在堆栈(STACK)中(内部);或

•在某些外部变数中;或,______________

•存在一个外部的储存堆栈(HEAP)./c:x=x♦i:

所以,为什么一个指令要设计成可以加载“靠近”这个血wxO)

指令的数据呢???LDR(clr:

LDR(clzrrl)

当数据是“地址“及“其它较大的常数”时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产厂、Rc:<2S21>

4:【一

Register

ControlLogic

Epc

RA

EA二

B

itvAu

m,

m

<E

6.004-Fall200210/29/0L15-BuildingaBeta17

例外处理

计划::

•中断正在执行的程序

•呼叫例外处理(像是一个过程调用)

•返回并继续执行.

我们希望有可修复的中断以达成

•由中央处理器(CPU)或系统产生的同步化事件

错误(例如,不合法的指令,除数为0,不合法的内存地址)

捕捉及系统呼叫(例如,从外围读取一个字符)

・由I/O所产生的异步化事件

(例如,键盘键入,收到封包,磁盘传输完成)

关键:对于被中断程序的透明度.

•这对异步化中断是最难的

6.004-Fall200210/29/0L15-BuildingaBeta18

实施方法…

例外如何运作:

•不要执行现在的指令

­取而代之的,假装有一个“强制”的过程调用

•储存现在的程序计数(PC)(事实上是现在的PC+4)

•用例外向量载入PC

•同步化例外是0x4,异步化例外是0x8

问题:要把现在的PC+4存到哪呢?

•我们的方法:保留一个缓存器(R30,也称XP)

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

例子:DIV指令并未实施不合法的操作:

PUSH(XP)

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

LD(R31,A,R0)检查DIV操作码,找到缓存器号码

LD(R31,B,R1)用软件来执行这个操作,填入结果缓存器

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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论