我读到在Ram中每个物理地址只能存储一个值。现在,这些数据可以是指令或数据。这是因为当CPU从Ram读取Word时,一次只能处理一个值吗?可以是指令、int或字符串。是否有技术原因导致每个指数不能包含一个以上的值。我读过关于标量处理器的文章,但它们真的不老吗。例如,你不能在一个64位字的宽度中放入两个或多个值吗?或者我错过了一些非常明显的东西。我想我想问的是,这是一个编程概念,还是有实际的技术/硬件原因导致cpu每次从Ram读取Word时不能处理一个以上的值。。
感谢
Rob
大多数最新的计算机使用指向内存中"Byte"位置的地址。
每个包含"从内存加载(或存储("功能的机器指令都包含从目标字节地址开始加载/存储的字节数的隐式或显式规范。常见大小为1、2、4、8字节(对应于最常用支持大小的单个数据项(。
由应用程序决定如何解释字节以及对字节执行什么操作。将字符串的字符存储在连续字节的内存位置,并使用32位(4字节(或64位(8字节(加载和存储指令一次处理4或8个字符,这当然是常见的。对单个字节(字符(的操作可能涉及在处理器的通用寄存器中屏蔽、移位和复制,但自20世纪90年代末以来,许多/大多数微处理器都包含了专门设计用于将寄存器的内容视为多个独立(较小(值的指令。
将多个数据项"打包"到连续字节的内存中,不需要限制为支持的算术类型的寄存器大小(1、2、4、8字节(。自2000年以来,许多处理器还包括"单指令多数据"(SIMD(指令,以将更大的有效载荷加载到一组"SIMD寄存器"中。(常见的大小为16和32字节,但有些处理器支持64字节寄存器。(包含这些SIMD加载和存储指令的系统通常还包含"并行"操作SIMD寄存器的指令,将寄存器内容视为多个独立值。通常提供将256位(32字节(寄存器的内容视为32个1字节值、16个2字节值、8个4字节值或4个8字节值的指令。细节因处理器体系结构和生成而异。