按字读取,按字节读取

现代存储器基本存储单元都是以字节为单位, 这样就设立了按字节来编号地址,如000代表0地址,001代表了1地址……,这样一个个按字节为单位的空间组成了整个大的存储器

所谓的按字节都取就是,给第一个地址编号,CPU从存储器相对应的地址编号中读取一个字节的数据。

下面来说下按字读取,字是一个不定大小的存储量,我们可以说2个字节为一个字,4个字节,8个字节等为一个字。虽然这样但是针对每个存储器当然也不会随意乱编一通。我们知道存储器是由一个个存储芯片构成,而每个存储器位宽通常是一个字节,那么假如现在生产一款存储器一次性要读取8个字节,那么我们会将8个1字节位宽的存储芯片并联,  这样原来给一个地址只能读取一个字节的,就变成8个字节了,而这个一次性就能取到的8字节就是代表当前这个存储器的一个字

那如果按字读取,我们传递的地址又会是多少呢? 我想想象一下存储器的存储空间是一个 矩阵 ,针对上面这个存储器,每行是8列,读取一行就是8个字节了,我们只要给定每行的第一列的地址就可以获取整行了,当然这个时候你也许会问为什么不会读取第一行第一列呢,

这个时候其实还会有一个信号来控制,暂时不讨论。 第一行的开头是00000,第二行是01000,第三行是10000,第4行是11000,也就是8 的倍数地址。其实我们可以看出,这样一个地址,后面的3位其实没什么多大作用了,不用来参与寻找地址了。

也就是实际上如果按字读取数据的时候,地址是由从由往左第4位开始 及以上高位的地址编号决定了读取哪个字。

 

posted @ 2018-11-10 12:35  自由小菜园  阅读(1251)  评论(0编辑  收藏  举报