存储器模块具有128位宽的数据总线。如果模块保持4GB(2 ^ 31字节),那么多少个地址位是多余的?
我相信有一些公式(如果不是公式的逻辑程序)我们可以用来找出地址总线然后从那里我们可以找到冗余的地址位数。我没有关于这些事情如何相关的基本概念:地址总线,总线宽度,数据总线等。
答案 0 :(得分:1)
其中一条并行总线上的每条线代表一位信息。这就是构成总线的行数也以位的宽度引用的原因。
地址总线用于发送地址以从存储器模块读取或写入存储器模块。因为每条线只能“传输”一个位,所以并行使用多条线。
例如,为了能够寻址存储器中的256个不同位置,(至少)地址总线需要8条线(因为2 ^ 8 = 256)。因此,这40亿个存储器位置需要地址总线上的32条总线,地址总线为32位宽。
请注意,我在上面使用了“memory location ”一词,因为发送到内存模块的地址可能指的是字节或其他一些存储单元,如“单词”(2个字节)或“双字”(4个字节)或其他内容。
可直接寻址的最小存储单元的大小取决于内存模块及其内部组织。
数据总线的总线宽度为128位的存储器模块可以同时发送或接收128位= 16字节。对于这种类型的存储器,最小的可寻址单元可能是128位,因此只能以16字节的块访问它,这些块通常在该块的倍数上对齐大小
在这种情况下,第一个16字节的块将由地址0寻址,并占用内存的前16个字节。然后在地址1将是下一个块,从字节#16开始。地址2从字节#32给出16个字节,依此类推。
因此,如果地址总线上的每个地址用于同时寻址16个字节,则与逐字节寻址相比,访问整个存储器所需的地址更少。
为了能够单独寻址这4GB的每个字节,地址总线需要32位宽(2 ^ 32字节= 4GB)。但是,如果只有16个字节的整个块可以单独作为地址,则只需要(2 ^ 32)/ 16个不同的寻址来寻址整个存储器。 16 = 2 ^ 4,所以(2 ^ 32)/(2 ^ 4)= 2 ^ 28。 - >需要28位来寻址每个16字节(= 128位)的整个块,并且地址总线的宽度可能会减少到28行。