主存中存储单元地址的分配
上B站计算机组成原理(哈工大刘宏伟)课程时,对于主存中存储单元地址的分配比较疑惑,整理了老师的课件还有几篇博客.
存储器的基本组成
概念整理
1.主存的核心部件是存储体,用来存放数据;
2.存储体由许多存储单元构成;
3.每个存储单元包含若干个存储元件;
4.每个存储元件可以寄存一位0/1代码;
5.每8位作为一个存储单位即字节;
6.一个存储单元可以存放一串二进制代码,这串代码即为一个存储字,简称字,代码的位数称为存储字长.
7.存储单元有编号,这些编号为存储单元的字地址.
存储体的另一种示意图
忽略存储元件
条件
假设字长为32位即4个字节.(0123四个小方格为一个存储单元,存放一个存储字,该存储单元的地址为字地址)
假设主存的编址单位为字节,即每个字节都有一个地址(0,1,2,3),称为字节地址
问题
现在要存储16进制数12345678H.
分析:16进制数转化位二进制刚好32位,一个字长.
解决
有两种方式存储
- 大端/大尾方式
高位字节存放在低地址,地位字节存放在高地址,并将高位字节作为字地址
- 小段/小尾方式
低位放在低地址,高位放在高地址,将低位字节作为字地址
另一个问题
假设地址线24根,按字节进行编址(即每个字节对应一个地址),
若按字节寻址,2^24=16MB//那么访问的范围可以用16MB表示
若字长为16位且按字寻址 8MW(字节为8位,字长为16位,则数值为8,单位为MW)
若字长为32位,按字寻址 4MW(同理可得)