计算机组成原理课设Tec-2 03-指令设计
计算机组成原理课设Tec-2 03-指令设计
看了前面两篇的话,算是个入门了,相当于你已经能跑 hello world!了,接下来就是进入设计的阶段了,如果还没看前两篇的话,建议先去看看
首先,每一年的题目会有微小的变化,比如换控存入口,减法变成加法,最后输出位置之类的,但是换汤不换药
第一题
就是第二篇的实例分析
第二题
题目:
把立即数DATA传输至地址为ADDR的内存单元中保存
指令格式:D8××,ADDR,DATA, 三字指令(控存入口110H)
功能: [ADDR]=DATA
设计思路
该指令为三字指令,类似于实验一,需要先取出第二个地址中的内容,并储存回第一个地址位置。由此可见第一个地址直至最后都需要使用到,为了增加效率,可以先将第二个操作数取出储存至Q寄存器,再取用第一个地址
流程图中的缩写含义:
PC: Program Counter (程序计数器)
AR: Address Register (地址寄存器)
MEM: Memory (当出现MEM的时候,就是在对"AR"存的地址取值)
AR相当于"指针",MEM相当于"值"
Q: Q Register (用来计算的)
|
微指令流程图 |
|
|
|
微指令详细设计 |
|||
|
序号 |
微指令功能 |
微指令代码 |
详细功能 |
|
1 |
PC+1→AR |
0000 0E00 90B5 5402 |
为AR读入第二个操作数的地址做准备 |
|
2 |
MEM→Q |
0000 0E00 00F0 0000 |
读第二个操作数并送Q寄存器 |
|
3 |
PC→AR,PC+1→PC |
0000 0E00 A0B5 5402 |
为AR读入第一个操作数的地址做准备 |
|
4 |
MEM→AR |
0000 0E00 10F0 0002 |
AR读入第一个操作数的地址 |
|
5 |
Q→MEM,CC#=0 |
0029 0300 1020 0010 |
Q寄存器结果送回第一个操作数位置 |
仔细观察你会发现,实验二就是把实验一的第2条和第6条去掉了。具体原因我们来分析一下:
下面这部分建议把02-实例分析也打开到对应的位置,双开对比着看
首先,第一题和第二题的共同点都是要把数据最后存回ADDR中。区别在于,第一题和第二题的第一步指令虽然功能都是PC+1→AR,但是在第一题中,读入的是ADDR1的地址,第二题中读入的是DATA的地址。也就是说,在第一题中对AR取值后取出来的是另一个地址,第二题取出来的直接就是要用的的数字了。即:第一题中是指针的指针,第二题只是一个指针,取一层就出来值了。
所以,在第二题中,指令2直接可以MEM→Q,因为MEM(也就是对AR取值)就是立即数DATA了,而第一题你需要再加一条MEM→AR,这样才把ADDR1的地址取出来,再执行MEM→Q才是把ADDR1里的东西取出来。
实验二去掉实验一的第6条单纯是因为不需要运算了,直接送回就完事了。
具体的单条分析也在02中,这里就不贴了。
第三题
题目:
转移指令,判断两个通用寄存器的内容是否相等,若不相等则转移到指定的目的地址,否则顺序执行
指令格式:E1 DR SR,ADDR 单字指令(控存入口130H)
功能: if DR!=SR go to ADDR else 顺序执行
设计思路
该指令为二字指令,第一步让SR-DR,把结果是否为零的信息记录在标识位,接着根据标志位Z#来条件跳转。等于1,说明两个数不相等,微程序跳转,取出需要跳转的位置位置至PC。反之,顺序执行
流程图中的缩写含义:
SR,DR: 通用寄存器,Tec-2 共有16个寄存器,部分有专属功能,部分为通用寄存器
PC: Program Counter (程序计数器)
AR: Address Register (地址寄存器)
MEM: Memory (当出现MEM的时候,就是在对"AR"存的地址取值)
AR相当于"指针",MEM相当于"值"
(CC)#: 条件码
Z#:条件码
(条件码这个东西有单独说)
|
微指令流程图 |
|
|
|
微指令详细设计 |
|||
|
序号 |
微指令功能 |
微指令代码 |
详细功能 |
|
1 |
SR-DR |
0000 0E01 9190 0088 |
通过SR-DR改变Z状态值 |
|
2 |
PC→AR PC+1→PC (CC)#=Z# |
0029 03E0 A0B5 5402 |
为顺序执行做准备 并通过判断Z状态值判断是否要跳转 |
|
3 |
MEM→PC |
0029 0300 30F0 5000 |
跳转 |
逐条分析
每条指令里面,标黄的部分是关键的指令位,对着analyzer一条一条看一遍,大概能理解了就(看起来最难的题结果只有三条指令)
|
Instruction#1 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Instruction#2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Instruction#3 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
下一篇是一些需要注意的点和心得
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐






所有评论(0)