文档详情

设计一组指令集.ppt

发布:2025-02-06约4.7千字共27页下载文档
文本预览下载声明

βALU常数操作6.004–Fall200210/17/0L12–InstructionSet*其它相似的ALU操作指令: 算数:ADDC,SUBC,MULC,DIVC 比较:CMPEQC,CMPLTC,CMPLEC 布尔:ANDC,ORC,XORC 位移:SHLC,SHRC,SARC符号表示:ADDC(r1,-3,r3)OPCODE=110000,表示ADDCrc=3,表示R3做为目标ra=1,表示R1做为第一个OPERAND常数栏,表示-3做为第二个OPERAND(正负号延伸!)“將ra的內容加上常數;結果儲存在rc”ADDC(ra,const,rc):Reg[rc]=Reg[ra]+sxt(const)我们需要内建的常数吗?6.004–Fall200210/17/0L12–InstructionSet*一个回答架构问题的方法就是:使用小心选择之代表性的标准检查程序

(benchmark)(程序及/或编码序列)来评估不同的重要性.然后依据某些指标

(成本,效能…)来做出”最好的”选择.使用常数OPERAND的操作百分比宝宝的第一个Beta程序

(片段)假定N被储存在r1中,我们想计算N*(N-1),并将结果储存在r2:这两个指令完成我们前述的小型单点机器所做的事.当然了,局限于使用缓存器来储存使得我们的野心变小了....它相当于一个FSM的有限储存空间!需求:支持读取及写入主存储器位置的指令集...SUBC(r1,1,r2) |将N-1放置在r2MUL(r2,r1,r2) |将N*(N-1)留在r212345β载入及储存6.004–Fall200210/17/0L12–InstructionSet*OPCODErcra16-bitsignedconstantLD(ra,const,rc) Reg[rc]=Mem[Reg[ra]+sxt(const)] “将内存(地址为:常数C加上ra的内容)中的内容加载缓存器rc”

缩写:LD(C,rc)表示LD(R31,C,rc)ST(rc,const,ra) Mem[Reg[ra]+sxt(const)]=Reg[rc] “将rc的内容储存至内存(地址为:常数C加上ra的内容)中” 缩写:ST(rc,C)表示ST(rc,C,R31)虽然使用字节地址,但只支持存取字组(word)对齐的32-bit字组(word)地址.低的两个地址字符是忽略的!*****************6.004–Fall200210/17/0L12–InstructionSet*设计一组指令集缴交实作课报告日:今天下周二10/22让我们来建构一个简易的计算机吧6.004–Fall200210/17/0L12–InstructionSet*计算N*(N-1)的数据路径L.E.=可载入(loadenable).缓存器只在LE=1时载入新值ANSWER可程序化控制系统6.004–Fall200210/17/0L12–InstructionSet*以这个数据路径来计算N*(N-1)是一个多步骤的程序.我们可以用一个有限状态机来控制这个程序的每一步骤.如果可以让不同的控制序列加载这个控制有限状态机,那就是说这机器必需是可程序化的.一个初步的程序6.004–Fall200210/17/0L12–InstructionSet*再一次,写一个控制程序不外乎是填表:一个最佳化的程序6.004–Fall200210/17/0L12–InstructionSet*有些部分的程序可以被同时计算:计算阶乘6.004–Fall200210/17/0L12–InstructionSet*为了要计算N!,我们需要加上一些新的逻辑电路以及一个输入到控制有限状态机:可程序化系统的好处是:可们可以重新设定组态来计算新的函数计算阶乘的控制架构6.004–Fall200210/17/0L12–InstructionSet*可程序性使得我们可以重复使用数据路径来解新的问题.我们所需要的是一个通用的数据路径.它必需能够有效率地解大部分的问

显示全部
相似文档