内存最小单位是一些类似于二极管这样的东西,它能存储一个电状态,高或低,可表示1或0;
-这些单元经过组织起来保存数据,组织的方法是8个编成一个字节,4个字节一个字,每组数据都可以读写;
-这些单元按照顺序排放后用地址编号,按照地址可访问其中的任一个字、字节;
-这些电路访问时由两组数据连线:地址线和数据线,比如都是32位的,地址线描述要访问的具体单元,数据线存放要给这个单元赋值的数据(写访问)或读出的数据(读访问);
-这些单元上电时才能保持状态,所以内存你一掉电(关机),其中的数据就丢失了。
硬盘存储器中,所存储二进制信息的两种状态是用什么表示的?
用两个不同方向的磁化,来表示数码0和1。
将磁性材料均匀地涂覆在圆形的铝合金载体上就成为硬磁盘盘体,当磁头上的写线圈中通过一定方向的脉冲电流时,磁头铁芯内就产生一定方向的磁通。在磁头缝隙处则会产生很强的磁场并形成一个闭合回路,磁头下方硬磁盘盘体上一个很小区域被磁化形成一个磁化元(即记录单元)。若在磁头的写线圈中通过相反方向的脉冲电流,该磁化元则向相反方向磁化。如果某一个方向的脉冲电流将磁头下方硬磁盘的极小区域磁化为信息"1"的话(写入"1"),那么相反方向的脉冲电流就会将磁头下方硬磁盘的极小区域磁化为信息"0"(写入"0")。也就是说,硬盘中的"0"和"1",是用盘体上磁化元的不同磁化方向来表示的。
本文讲内存的实现,从底层的二极管到内存的电路结构,本章逻辑线路为:电路–>二极管–>逻辑门–>组合逻辑单元j和存储单元–>内存
我们知道计算机本质是在做0和1的二进制运算,那么内存从抽象意义上看也是保存着0和1,那么问题是怎么保存这些0和1呢?下面就说说内存的硬件实现哈。
电路
先从一个简单电路看起,
二极管
然而我们要控制二进制,在计算机里我们用两种互补的二极管(CMOS即n-MOS管和p-MOS管)实现这个开关,这两种原理如下。
n-MOS管,栅极端(Gate)通电后,则电路联通,栅极断电则电路断开
p-MOS管反过来,栅极端(Gate)通电后,则电路断开,栅极断电则电路联通
提示:小圆圈表示“非”,即取反的意思,若输入为1,流经小圆圈后则变为0
逻辑门
通过这些二极管的组合,我们可以实现计算机里的“与”、“或”、“非”逻辑电路。
非门(NOT):
对应真值表:
In | Out |
---|---|
0 | 1 |
1 | 0 |
或门(OR):
真值表:
A | B | C |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
与门(AND):
真值表:
A | B | C |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
既然知道逻辑门的二极管实现后则可以用符号替代这复杂的底层实现。
看完了逻辑门,紧接着看计算机内的逻辑单元。逻辑单元可以分为两类:
一类不可存储信息的(组合逻辑单元)
另一类可存储信息(存储单元)。我们分别介绍和内存相关的几个结构。
组合逻辑单元
不可储存信息的结构:用于计算或控制二进制
译码器:依据输入端的二进制,在输出端选中某一条电路
如图,如果A=0,B=0,则选中最上面的那条线
多路复用器:根据控制信号,只选择输入端的某根电路,把这根线输出到输出端
如图,若S1=0,S2=0,则A线路被选中,A的值即是输出值。
存储单元
可存储信息的结构:可用于保存二进制
门控D锁存器
WE=0时(不可读写),S和R必为1,则电路稳定,out端可保持原来的值
WE=1时(可读写),则根据D的值,out端变为对应的值。然后恢复WE=0则保存起来
寄存器:
一个门控D锁存器只能保存一个bit,则组合起来就能保存n个bit,这就是寄存器
介绍完这些组成结构后,我们终于可以讲解内存啦!
内存
先介绍两个概念:
寻址空间:即能保存多少个内存地址,我们通常意义上的4G内存,就表示计算机能保存2的32次方个地址!能保存这么多地址,也就能找到这些地址上的二进制信息
寻址能力:每个地址里具体存多少个bit,由于历史原因,绝大部分计算机都是8bit的寻址能力。
那么我们来看一个超简单的内存哈。这个内存是2的2次方的寻址空间,即只能查找4个地址。寻址能力是3个bit,即每个地址只能存3个bit。
如图
内存的寻址由一个2个输入的译码器实现。译码器根据A1和A2的输入,选中对应的一条线,即找到地址对应的存储空间。
内存存储信息的能力具体实现是由门控D锁存器保存bit信息。
读取内存的输出由多路复用器实现。根据寻址时译码器选中的某一个线路,每一列的多路复用器只能输出那个线路的对应的那个门控D锁存器保存的bit。则最终的三个bit都是由同一个线路对应的三个门控D锁存器的输出。