少女祈祷中...

内部存储器

1、存储器

存储器由一定数量的单元构成,每个单元可以被唯一标识,每个单元都有存储一个数值的能力。

  • 地址:单元的唯一标识符
  • 地址空间:可唯一标识的单元总数(你用这几位最多可以表示出几个地址)
  • 寻址能力:存储在每个单元中信息的位数,即内存中能被单独识别并独立存放一个数据的最小空间(一个地址指向的空间中包含了多少位)

2、存储器层次结构

1、主板内存储器

  • 寄存器
  • Cache(高速缓存)
  • 主存
    2、主板外存储器
  • 磁盘
  • CD-ROM
  • CD-RW
  • DVD-RW
  • DVD-RAM
    3、离线存储器
  • 磁带

3、寄存器基本原理

Alt text

一个时钟周期分为两个部分:时钟上升沿和时钟下降沿

只有在时钟前半部分可以改变触发器中存储着的数据
Alt text

图中两条红色虚线之间都是时钟上升沿。第一条红线时,Din是高电平,于是Qout在经历一段时间的延迟后也变成了高电平,与Din保持一致。之后紧接着的时钟上升沿,Din仍然为高电平,因此Qout没有改变。直到第二根红线的位置,Din变成了低电平,于是Qout在经历一段时间的延迟后就变回了低电平。

半导体存储器

半导体芯片做主存储器是主流选择

位元:半导体存储器的基本元件,存储1位数据

  • 呈现表示0和1的稳态或半稳态
  • 能至少被写入一次,能被读取
    Alt text

4、随机存取存储器(RAM)

随机访问:访问数据时间与数据位置无关

特性

  • 可以简单快速进行读写操作
  • 易失的

类型

  • 静态RAM
  • 动态RAM

SRAM
Alt text

信息的保持:字选择线低电平,阻断T5和T6

信息的读取:字选择线打开,如果存1,则左边线高电平,T2阻断,右端会产生负脉冲;如果存0则相反

信息的写入:字选择线打开,如果想要存1,那么右端低电平,使左端电位上升,T2阻断

可以想象为两个游泳池,每个游泳池底下有排水管,上面有一个水位传感器,可以控制另一个游泳池的排水管的打开与关闭(如果感应到了水位就会打开对面泳池的排水管使得对面的水被排走)。而两个泳池同时也各自有入水管。

信息的保持:入水管关闭,泳池内部保持原有状态

信息的读取:入水管打开,如果哪边的水位高,那么就会导致另一边泳池的排水管被打开,从而泳池一直漏水(在这种情况下漏水的那边没法除法上面的水传感器,也就没法让水位高的那边漏水,就可以维持这种状态),因而入水管流入的水一直在被漏走,我们就可以根据哪边的加进来的水在被漏走判断是1还是0

信息的写入:入水管打开,如果想要写入1,那么可以主动把右边的水抽干,使得右边的传感器失效,左边的排水管关闭,水不会被排走,一直累计水直到碰到水传感器,打开右边的排水管,使得右边本不富裕的水更是雪上加霜,也就改变了水池的状态。

DRAM
Alt text

通过电容来存储数据,读数据时直接读取电容中的电平,写数据时给电容充电或不充。

SRAM和DRAM的对比
Alt text

可以把SRAM想象为C++,DRAM想象为Java,C++集成度低(偏底层),功耗高(写起来很痛苦),但是速度快,不用刷新(没有自动释放内存的操作),价格低;而Java集成度高(很多功能都被封装起来了,不那么底层),功耗低(写起来比较轻松),但是速度慢(比较一下Java和基岩版的我的世界就知道,Java垃圾回收机制等大大降低了程序速度),需要刷新(得不停检测垃圾),价格高

5、只读存储器(ROM)

可以长期保存信息的存储器,断电后信息仍可保存,工作时只可读取不可写入

非易失的,用户无法写入数据

可编程ROM(PROM)
只能被写入一次,写过程用电信号执行,需要特殊设备完成写过程

6、主要进行读操作的存储器

写操作和读操作相比较为困难

光可擦除/可编程只读存储器EPROM

电写入(1->0),光擦除(0->1)
Alt text

电可擦除/可编程只读存储器EEPROM

电写入(1->0),电擦除(0->1)
Alt text

快闪存储器

电可擦除,可以在块级擦除,不能在字节级擦除,需要先擦除再写入

分类:NOR Flash(数据线和地址线分开,可以读任意字节),NAND Flash(数据线和地址线共有,只能按页读取)
Alt text

各类ROM对比
Alt text

6、存储阵列

Alt text
如何寻址?

第一步先获得总线控制权,然后发送地址,从地址中读出行地址和列地址,然后将其分别发出,分别从行译码器和列译码器中选出行和列,(先处理行,处理完毕后再处理列,有先后顺序)

刷新方式

  • 集中式刷新:停止读写,逐行刷新,此时无法操作内存
  • 分散式刷新:读写完成时刷新,一次读写完成刷新一行,增加每个存储周期时间
  • 异步刷新:固定间隔刷新,DRAM在译码阶段刷新,有效利用时间

7、高级的DRAM架构

传统DRAM是异步的,处理器必须等待存取延迟

高级DARM架构是同步的

同步DRAM,双速率SDRAM

Alt text

  • SDRAM:先行选,然后列选,然后每个时钟周期发送一次数据。

Alt text

  • DDR SDRAM:发送数据时,每个时钟周期发送两次数据。因此,频率也会增加。

8、模块组织

三种扩展:

  • 位扩展:地址线不变,数据线增加(相当于每个地址能够表示的数据量增加了,芯片看上去变的更“厚”)(使用8块4K*1的芯片组成4K*8的芯片)
  • 字扩展:地址线增加,数据线不变(增加了地址的总量,而每个地址能够表示的位数不变,芯片看上去变的更“宽”)(使用4个16K*8的芯片构成64K*8的芯片)
  • 字、位同时扩展:地址线增加,数据线增加(使用8个16K*4bit的芯片组成64K*8bit的存储器)