加载中...
您的位置:首页 >栏目首页 > 管理 > 正文

#3 处理器架构(Part.2)OVERTURE架构全解

2023-08-03 10:39:14 来源:哔哩哔哩

开始搭建真正的计算机咯!


(资料图片)

(激动地搓手手)

在开始之前我想先介绍几个我的自定义零件

自定义元件

(寄存器加强版)

寄存器的加强版

上面有一个永久输出口,左右分别有两个控制输出口和一个控制输入口

有两个输出口是为了LEG架构准备,在OVERTURE架构暂时用不上两个

但是多一个口总归没啥坏处吧!

(条件判断)

输入一个判断的条件(<0,<=0,=0,!<0,>0,>=0这一类)和一个数字

然后输出是否符合条件

这一个COND组件在之前的小关卡已经做过了

Decoder(控制码解码器)

用来把输入的两位控制模式进行分线

(其实就是一个2位解码器)

但是因为这一坨线放在大电路图里面太丑了

所以就做成一个组件了

(算术逻辑单元)For OVERTURE

之前小关卡做过的

输入指令和两个数值,输出计算结果

但是因为OVERTURE架构的ALU和LEG架构的ALU里面的指令不同

所以名字特地标开了ALU FOR OVERTURE

我自己添加了一个输出控制口,只是因为后面有一些地方容易在总线短路

所以加一个控制口没那么容易打架

1.寄存器之间

第一关只是为了搭建6个寄存器用来临时存储数值

就把线分开,分别接到每一个读取控制口和写入控制口,然后全部连起来就行了

很简单,过

2.计算单元

因为开始有两种指令了,所以就要把Order Decoder放进去用来解码

然后分出控制线,算术模式(绿色线)

因为第一种模式是复制模式,没有什么需要单独控制的,所以就空出来了

右边放一个ALU,控制输入打开,把指令码和两个数导进去ALU

计算结果输回去3号寄存器

但是要禁用三位解码器(避免寄存器打开了写入开关)

3.立即数

橙色线是立即数模式控制线

立即数模式的时候禁用三位解码器(避免寄存器打开了写入开关)

同时单独打开0号寄存器的写入开关将立即数写进去(白色线)

因为立即数模式的时候指令最高两位是00所以不需要处理就能直接写入了

4.图灵完备

最后一步!条件跳转

把3号寄存器引一条永久输出线接到COND,指令码也接进去

然后在Order Decoder引一条控制线下来控制开关

(记得禁用三位解码器)

至此,OVERTURE架构已经建好了!

很棒!

在沙盒模式里面查一下

门数量1297总延迟60

原来60的延迟里面有+54都来自ALU

然后这+54里面就是来自减法的NEG(取负)和ADD(加)

所以减法成为了OVERTURE架构的短木板(暴论)

很好已经踏出了第一步

我已经在人类智慧的结晶上打造出了人类智慧的结晶(?)

关键词:

推荐内容