主存-编制与计算
概念
需要先了解两个概念:编制、寻址。
编址
是指,对于一个个存储单元构成的存储器,要进行有效管理,就得对各存储单元编号,即给每个单元赋予一个地址码。经编址后,存储器在逻辑上便形成一个线性地址空间
寻址
存取数据时,必须先给出地址码,再由硬件电路译码找到数据所在地址,这叫寻址。
编制可以分为两种,按字编制和按字节编制
按字编制:存储体的存储单元是字存储单元,即最小寻址单位是一个字
按字节编制:存储体的存储单元是字节存储单元,即最小寻址单位是一个字节
字和字节
都是计算机的存储单元,字由若干个字节组成,一个字节是8个比特bit。
字的位数叫做字长,即cpu一次处理二进制代码的位数
字的长度与计算架构有关,比如32位机,一个字就是32位,换算成字节就是4字节;同样的64位机,一个字就是64位,也就是8字节。
字也是计算机一次处理数据的最大单位。
计算
根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需芯片的总数
$$
\begin{align} 总片数=\frac{总容量}{每片容量} \end{align}
$$
\begin{align} 总片数=\frac{总容量}{每片容量} \end{align}
$$
例题
若内存地址区间为4000H~43FFH, 每个存储单元可存储16位二进制数, 该内存区域用四片存储器芯片构成, 则构成该内存所用的存储器芯片的容量是多少?
[答案] 512KB
[解析]
$$
\begin{align} &首先算出存储单元个数 \\ &43FF_{(H)}-4000_{(H)}=400_{(H)}=4*16^2\\ &然后可知每个存储单元字长16位,即2KB\\ &根据上述公式可得\\ &每片容量=\frac{总容量}{总片数}=\frac{4*16^2*2(KB)}{4}=512KB \end{align}
$$
\begin{align} &首先算出存储单元个数 \\ &43FF_{(H)}-4000_{(H)}=400_{(H)}=4*16^2\\ &然后可知每个存储单元字长16位,即2KB\\ &根据上述公式可得\\ &每片容量=\frac{总容量}{总片数}=\frac{4*16^2*2(KB)}{4}=512KB \end{align}
$$
I/O编址
常用的I/O编址方式有两种:
-
I/O与内存统一编址
-
I/O独立编址
I/O内存统一编址:I/O地址采用与主存单元地址完全一样的格式,I/O设备和主存占用同一个地址空间,CPU可像访问主存一样访问I/O设备,不需要安排专门的I/O指令.
I/O独立编址:机器为I/O设备专门安排一套完全不同于主存地址格式的地址编码,此时I/O地址与主存地址是两个独立的空间,CPU需要通过专门的I/O指令来访问I/O地址空间.