电子说
这个问题应该从cpu、寄存器和内存单元的物理结构来看。
图1
上图是一个手画的cpu访问寄存器和内存的简单结构图,从图中我们看到,寄存器是在cpu芯片的内部,内存是在cpu的外部。仅此一点,我们就可以理解为什么cpu访问寄存器的速度比内存要快。
为了进一步加深对这个问题的理解,参考图2和图3:
图2
图2是cpu内部结构图。从图中可以看到,要执行的指令、执行指令的电路部分以及ALU和寄存器是通过总线直接连在一起的。
图3
从图3可以看出,存储器处于cpu的外部,cpu要对存储单元进行访问,就必须通过地址总线。这里的寄存器是指R0,R1等。
图4
图4是一个简单的寄存器电路。
图5
我们知道,一个内存地址分为段地址和偏移地址,两者相加才会形成一个实际的物理地址,这部分由专门的电路完成,如图5,这个电路也处于cpu的内部,但它产生的物理地址必须输出到cpu外部的地址译码器。
图6
图6是一块内存电路,包括地址译码器和内存电路。
图7
图7是上面几部分的连接示意图。图下面的译码器代表指令执行电路,左上角是寄存器,上部中间是内存地址形成电路,这三部分都在cpu芯片的内部。右上角蓝色部分是地址译码器和内存电路,两者处于cpu的外部。
假设一条指令的机器码由下部译码器的输入端A0,A1,A2等引脚输入,由此可以明显看出,如果这条指令中分别用到了寄存器和内存单元,两者的访问速度肯定存在着明显的差别。
全部0条评论
快来发表一下你的评论吧 !