比较有难度的一个部分。
运算单元ALU,其实就是通过OP选择计算方式,然后选通某个计算,之后输出。每个计算逐个实现就行了。
下面是一个优化占地面积的ALU,变得紧凑了一点。
下面是一个简单的OP选通原理线路。判断是立即数寻址,还是进行运算,或者比较,以及复制(MOV)的指令。
条件判断单元,和上面的ALU原理很像,OP需要什么就选通什么就完事了。
图灵完备如下,这里没要求加入RAM和栈,比较早期的一个cpu,主要是注意排线就完事了,这里的话,因为我在后面删除了一个RegisterPlus的图纸,导致寄存器那里有些缺失,0号寄存器同时也充当着条件判断后跳PC的具体指令位置的功能。0号和1号固定是参与计算的两个数,结果送2号,因此这里比较早期。