to 1楼:
CPU的基本功能有3个,取指、译码和执行。只有取到正确的指令,CPU才能进行后面的译码和执行操作。
感觉你问了3个问题:
1. CPU如何从存储器中获取指令,这是和CPU的具体实现的硬件结构有关系的。根据芯片内硬件实现的不同,可以从ROM, flash, ram等地方取指。
2. 程序段和内存的对应关系,是你在链接的时候用链接脚本指定的。不同的链接器有不同的脚本格式。这个对应关系确保CPU取指取到的是正确的指令,而不是随意乱取。
3. 虚拟内存通常是用低速存储器来模拟高速存储器。通常按照速度排序, 寄存器>Cache>SRAM(Flash)>DRAM>硬盘。速度越快的存储器,通常越贵,所以通常配置的容量越小。当小容量的高速存储器不够用的时候,可以使用虚拟内存来模拟。实际上就是加了个内存管理单元来做,内存管理单元可以用硬件或者软件是来实现。这东西一般在操作系统的书里面,内存管理部分会有讲述的。
|