高手进!关于32位CPU

来源:百度知道 编辑:UC知道 时间:2024/07/09 06:25:04
现代CPU的字长是32位,而内存的寻址能力(即每个地址的存储宽度)是8位,是否冲突呢?是不是CPU的每条指令都要访问三个内存地址?是不是效率有点低?为什么不把内存的寻址能力做成32位,与CPU字长统一起来呢?
那32位CPU处理的每条指令必须是32位长的吗?

你没有弄明白字长和字节的概念,字长一般和CPU的数据线的宽度相同,而内存的寻址能力也不像你说的那样只有8位,内存确实是按字节存储的,但是读取的时候却不一定只读取一个字节,例如在8086里就有MOV [B] A,这样的指令,A就是16位的,你说的效率低的问题那不是因为内存的存储方式引起的,而是数据总线的宽度决定的,例如奔腾的处理器就是32位的数据线宽度,它一次可以写入或读出32位的宽度。在8086里效率不高是因为分时复用,所以再后来引入了流水线的设计方式。你说的最后一个问题 那32位CPU处理的每条指令必须是32位长的吗?不是你说的那样,指令长度确实是固定的,但它并不包括数据的长度。如果加数据长度那整个指令长度就不固定了。但是在嵌入式ARM机里就是固定的。

不冲突,只是访问时间变慢了,也就是你说的效率低了。

不是每条质量访问3个地址,是每条指令访问一个地址(指针),以首地址为指针,指4个地址(不是三个)。

最后一个问题我无从回答,我不了解。