2017-02-27 65 views
0

我无法理解32位计算机字节寻址是如何实现的:在现代计算机中如何实现字节寻址?

是ram本身字节寻址意味着第一个字节有地址0和第二个1等?在这种情况下,不会花费4个读取周期来读取32位字并浪费数据总线的宽度吗?

或者ram是否由32位字组成,这意味着地址0指向前4个字节,地址2指向字节5到8?在这种情况下,我期望ram接口能够使字节寻址成为可能(从CPU的角度来看)

回答

0

将RAM看作具有N个条目的8位宽结构。当引用内存时,N通常是引用的大小(256 MB - 256M条目,2GB - 2G条目等,B是字节)。当你访问这个存储器时,你可以寻址的最小单位是8位(1字节)的这些条目之一。既然你只能在字节级访问它,我们称之为字节可寻址内存。

现在来谈谈访问这个内存的问题,我们不只是访问一个字节。大多数情况下,内存访问都是通过缓存发送的,缓存可以减少内存访问延迟。高速缓存以比字节或单词更高的粒度存储数据,通常是单词的倍数。在这样做时,缓存探索一个名为“locality”的属性。位置意味着,我们很快就可以访问这个数据项或者接近数据项。所以不仅要获取字节,而且所有相邻的字节都不是浪费。将其视为未来的投资,为您节省多次数据提取,否则您将完成此操作。

-1

RAM中的存储器地址从第0个地址开始,它们使用8位寄存器容量的寄存器或32位寄存器。基于这些寄存器,来自特定地址的值由CPU访问。如果您确实需要了解其工作原理,则需要使用汇编语言运行几个程序,以便通过直接使用寄存器和注册移动命令读取值来导航物理内存。