我无法理解如何实现32位计算机字节寻址:
ram本身是否可以字节寻址,这意味着第一个字节的地址为0,第二个字节的地址为1等?在这种情况下,不需要4个读周期来读取32位字并浪费数据总线的宽度?
或者ram是由32位字组成,意味着地址0指向前4个字节,地址2指向字节5到8?在这种情况下,我希望ram接口能够进行字节寻址(从cpu的角度来看)
答案 0 :(得分:0)
将RAM视为具有N个条目的8位宽结构。 N通常是指内存时引用的大小(256 MB - 256M条目,2GB - 2G条目等,B代表字节)。访问此内存时,可以寻址的最小单位是这些条目之一,即8位(1字节)。由于您只能在字节级访问它,我们称之为字节可寻址内存。
现在提出有关访问此内存的问题,我们不只是访问一个字节。大多数情况下,内存访问是通过缓存发送的,缓存可以减少内存访问延迟。高速缓存以比字节或单词更高的粒度存储数据,通常是多个单词。在这样做时,缓存会探索一个名为“locality”的属性。位置意味着,我们很快就会很快访问此数据项或数据项。所以不只是获取字节,而是所有相邻的字节都不是浪费。将其视为未来的投资,为您节省多次数据提取,否则您将会这样做。
答案 1 :(得分:-1)
RAM中的存储器地址从第0个地址开始,使用容量为8位寄存器或32位寄存器的寄存器进行访问。基于这些寄存器,CPU访问特定地址的值。如果你真的需要了解它是如何工作的,你将需要使用汇编语言运行几个程序,通过使用寄存器和寄存器移动命令直接读取值来在物理内存中导航。