初学单片机的时候,由于没有看过计算机相关的知识,很难理解寄存器是个什么东西。内存虽在生活中常常被提到,但一和寄存器放一块就显得有点混乱了。现在就用一张图来展示一下它们之间的关系。
寄存器
寄存器是用于存储二进制数的逻辑部件,一个触发器可以存储1位二进制数据,存储N位二进制数据的寄存器需要N个触发器组成。由8个触发器构成的8位寄存器的逻辑图如下图所示:
在时钟CP上升作用下,
D
0
D_0
D0~
D
7
D_7
D7同时存入数据,当使能信号有效时,触发器存储的数据就可以通过三态门进行输出。
由于寄存器是集成在CPU内部的,所以当CPU访问寄存器时,只要找到相关的位进行读取就可以了,访问速度自然很快。
内存
与寄存器不同,内存是独立于CPU之外的。CPU访问内存时,需要经历一系列过程,访问速度自然要比访问寄存器慢很多。例如,CPU要从内存中读取一条指令:首先内核先将代码中的逻辑地址送给内存管理单元(MMU),由MMU将逻辑地址转换成实际的物理地址,并通过地址总线传送到内存,定位出指令的存放位置;接着内存再将指令通过数据总线传送到缓存;最终CPU从缓存中取得指令。
值得注意的是,缓存是CPU内部的一种存储器,可以存放好几条指令。在实际工作中,CPU往往一次性读取多条指令有序存放在缓存中。当CPU执行完缓存里存放的指令时,内存刚好又送来好几条指令,如此便能保证内存与CPU都维持在工作状态,工作效率就可以得到保证了。
参考文献:
[1]康华光,电子技术基础 数字部分(第六版).北京:高等教育出版社,2014.1;