引用 分立元件:
被大神吸引过来论坛,能讲解一下控制器原理吗?我看了“编码的奥秘”和“穿越计算机的迷雾”两本书,其它的都明白了,就是对控制器内部实现的原理不是很明白!
那我解释一下本贴CPU执行指令的本质原理.
往常的CPU设计每种指令都有一个指令前缀码, 比如0001代表传送 0010代表运算 0011代表跳转...
但是本贴的CPU不是按照这个理念搞, 没有指令前缀码, 因为这样搞对硬件来讲很啰嗦而且也不必要...
这里的CPU传送指令,运算指令,本质都是数据传送.
下面讲一下这个CPU数据传送的控制原理本质, 非常非常的简单.
下面两张图是本贴CPU数据传送本质原理的一个简单结构模型.
图里的ROM存储器0地址装有A寄存器送B寄存器的指令,1地址装有B寄存器送A寄存器的指令,后面地址都是空操作指令.
首先复位;
复位之后给CPU第1个时钟;
第1个时钟执行之后指令寄存器锁到的是0地址的指令,会导致寄存器2锁存线拉低,并且寄存器1的数据输出到数据总线, 程序计数器加1指向1地址;
第2个时钟执行之后指令寄存器锁到的是1地址的指令,会导致寄存器2锁存线拉高锁存数据总线上的数据, 同时寄存器1锁存线拉低,并且寄存器2的数据输出到数据总线, 程序计数器加1指向2地址;
第3个时钟执行之后指令寄存器锁到的是2地址的指令,会导致寄存器1锁存线拉高锁存数据总线上的数据, 程序计数器加1指向3地址.........
指令寄存器锁到第2条指令的时候,执行第1条指令, 锁到第3条指令的时候执行第2条指令............... 工作原理真的很简单很简单..