CPU 寄存器 和内存三者之间的关系

寄存器

不知道什么是寄存器?那见过太监没有?大家应该都看过古装戏,那些皇帝们要阅读奏章的时候,大臣总是先将奏章交给皇帝身边的小太监,小太监呢再交给皇帝同志进行处理。这个小太监只是个中转站,并无别的功能。

好,那我们再联想到我们的CPU。CPU不就是我们的皇帝同志么?大臣就相当于我们的内存,数据从他这拿出来。那个小太监就是我们的寄存器了(这里先不考虑CPU的高速缓存区)。数据从内存里拿出来先放到寄存器,然后CPU再从寄存器里读取数据来进行处理,处理完后同样把数据通过寄存器存放到内存里,CPU不直接和内存打交道。这里要说明的一点是:小太监是主动的从大臣手里接过奏章,然后主动的交给皇帝同志,但寄存器可没那么自觉,它从不主动干什么事。一个皇帝可能有好些个小太监,那么一个CPU也可以有很多寄存器,不同型号的CPU拥有的寄存器的数量也不一样。

为啥要这么麻烦呢,速度!就是因为速度。寄存器其实就是一块一块小的存储空间,只不过其存储速度要比内存快得多。近水楼台先得月嘛,它离CPU很近,CPU一伸手就拿到数据了,比在那么大的内存里去寻找某个地址上的数据是不是快多了?那有人问既然它速度那么快,那我们的内存硬盘都改成寄存器得了,我要说的是:你真有钱。

寄存器属于硬件层面,比如需要设置编码器的编码速度,设置CPU的通信速率或者摄像头的曝光等等,这些其实都是通过操作硬件来实现的,需要参考寄存器手册。但是不是只有CPU才有寄存器,好多东西都会有,比如传感器、编码器等等。

你可能感兴趣的:(嵌入式linux)