人世繁华|CPU中的程序是怎么运行起来的( 四 )


人世繁华|CPU中的程序是怎么运行起来的
人世繁华|CPU中的程序是怎么运行起来的?
它用一堆OR门检查其中一位是否为1 , 哪怕只有一个输入的bit(位)为1 , 但都会被被或门到最后一个NOT(非)门进行取反 , 所以只有输入的数字是0 , 输出才能是为1 。
告诉ALU执行加减法 , 下面图片里面的的V代表ALU部分 。
人世繁华|CPU中的程序是怎么运行起来的
人世繁华|CPU中的程序是怎么运行起来的?
通过ALU的FLAGS进行判断 , 下面有三个标志一个是OVERFLOW(操作超出了总线宽度 , 设置为true(1))、ZERO(运算结果是否为零)、NEGATIVE(运算结果第一位为1 , 则设置为true(1) , 表示为负数)
人世繁华|CPU中的程序是怎么运行起来的
人世繁华|CPU中的程序是怎么运行起来的?
这就是ALU中的一些单元 , 其实也是一大堆逻辑门巧妙连到一起 。
此外我们还需要存储器(memory) , 如果ALU计算出来数据丢掉那么数据也没什么用了 , 所以需要内存把数据保存起来 , 与ALU一起组成CPU
之前的介绍都是单向顺序执行的电路 , 那有什么可以返回的电路呢 , 通过输出来控制影响输入 。
人世繁华|CPU中的程序是怎么运行起来的
人世繁华|CPU中的程序是怎么运行起来的?
进行AND 、NOT、OR组合 , 变成一个1位锁存器
人世繁华|CPU中的程序是怎么运行起来的
人世繁华|CPU中的程序是怎么运行起来的?
输入STE为1 , 输出为1
人世繁华|CPU中的程序是怎么运行起来的
人世繁华|CPU中的程序是怎么运行起来的?
输入RESTE为1 , 输出为0
人世繁华|CPU中的程序是怎么运行起来的
人世繁华|CPU中的程序是怎么运行起来的?
如果设置和置位都为0 , 电路会输出最后放置的状态 , 所以它就保存住1bit位的数据
人世繁华|CPU中的程序是怎么运行起来的


推荐阅读