0%

ch5存储器

存储器分类

  • 寄存器
  • Cache(一般use SRAM)
  • 内部存储器 (ROM, RAM)

    • CPU总线访问

    • 容量$\le 2^{N_{地址总线}} \times 8bits$

    • 内容:系统软件(ROM),当前将运行application software(RAM)

    • 内存分类:

      基本内存:00000H~9FFFFH,640KB,DOS系统;

      高端内存:A0000H~FFFFFH,384KB,系统ROM、缓冲区;

      扩充内存:CPU直接寻址范围之外的物理存储器,扩充内存管理软件EMM管理,映射到高端内存中;

      扩展内存:1MB以上但不是通过内存扩充卡映射来获得的内存空间;

  • 外部存储器
    • 专用设备(如硬盘驱动器、软驱、光驱等)管理
    • CPU不直接访问
    • 容量不受限制
    • 内容:任意 software, data

程序运行

  • step1 内存ROM: 引导程序 -> start system
  • step2 外存: 系统、应用程序 -> 内存RAM
  • step3 内存RAM: run 系统、应用程序
  • step4 内存RAM: store 中间结果(while running program)
  • step5 内存RAM: 最后结果 -> 外存(when program exit)

存储器指标

  • memory size
  • access time(存取时间、速度)
  • 功耗
  • 性价比
  • 工艺复杂
  • 集成度
  • 控制简单:是否need 刷新

RAM(Random Access Memory)

  • 种类:

    • Static RAM, SRAM

      例子:

      2114 (1K*4位)

      6116 (2K*8位) $\overline{CS}$

      6264 (8K*8位) $\overline{CE}$

      62128 (16K*8位)

      62256 (32K*8位) $\overline{CS}$

      FIFO: First In First Out

      • ASRAM (asynchronous SRAM)

      • SSRAM (synchronous SRAM)

        例子:SBSRAM: Synchronous Burst SRAM

    • Dynamic RAM, DRAM

      DRAM

      • SDRAM (Synchronous Dynamic RAM)

        用时钟同步CPU和DRAM;

        有突发模式;

        有PC66/100/133/150不同规范速率,工作频率分别是66/100/133/150MHz;

      • DDR SDRAM (Double data rate SDRAM)

        时钟上升沿、下降沿均传输数据,速率加倍;

        数据线宽64位(8字节);

        主要标准:DDR200/266/333/400等,分别对应PC1600/2100/2700/3200规范

        例:DDR200,工作频率100MHz,传输速率200MHz,传输带宽1600MB/s。

      • DDR2 SDRAM

        在DDR的基础上,有两倍的预读取能力,数据传输速率4倍于工作频率;

        主要标准:DDR2 400/533/667/800等;

      • DDR3 SDRAM

        是DDR2的升级,数据传输速率8倍于工作频率;

        主要标准:DDR3 800/1066/1333/1600等;

      • DDR4 SDRAM

        是DDR3的升级,数据传输速率8倍于工作频率,频率提高;

        最低标准DDR4 1600。random access/read any unit

  • 不同于顺序存储器,for不同存储单元:visit time 一样
  • 存储数据lost(when 断电)
property SRAM DRAM
memory size small big
access time short long
功耗
性价比 price high price low
工艺复杂 complex simple
集成度
控制简单:是否需刷新 简单:不需要 复杂:需要 (刷新时限 2ms)

SRAM-62256 && DRAM MT48LC4M32

62256

62256

A0 ~ A14 15根地址线,可访问215=32768(32K)存储单元;

I/O1 ~ I/O8,8根数据线;

3个控制引脚 控制 存储器的读写:

$\overline{CS}$:片选信号chip select,低有效,允许存储器读写 (6116 为$\overline{CS}$ ,6264中为 $\overline{CE}$ chip enable)

$\overline{WE}$:写控制信号,低有效,低电平为写

$\overline{OE}$:输出使能,低有效,在读存储器周期中,$\overline{OE}$为低电平允许输出数据

两根电源线:Vcc,Vss

  • 为了刷新,控制器有3 功能

    时序功能

    地址处理功能

    仲裁功能

    DRAM_renew

MT48LC4M32

初始化:Initialization

在正常操作之前进行

通过LOAD MODE REGISTER command对模式寄存器(Mode Register)编程

ROM

  • 种类

    • 掩膜ROM: Mask Programmed ROM

    • PROM 可编程ROM: Programmable ROM

    • EPROM 可擦除的PROM: Erasable PROM

      例子:2716,2732,2764,27128,27256,27512 $\overline{CE}$

      它们的存储容量分别为2K、4K、6K、16K、32K、64K Byte;

      27128

      27128_chart

      • $\overline{E}$ 即 $\overline{CE}$ ,$\overline{G}$ 即 $\overline{OE}$
  • E2PROM/EEPROM 电擦除的PROM: Electrically Erasable PROM

    例子:2816的基本特点

    容量为2K×8bit的电擦除PROM,它的管脚排列与EPROM2716一致。

    2816的存储时间为250ns, 按字节为单位进行擦除和编程,擦除和编程只用$\overline{CE}$、$\overline{OE}$两个信号来控制

    2816_chart

  • NOR flash/NAND flash 闪烁存储器FLASH

  • 串行EEPROM

Cache

Cache

Cache2

微机系统的内存组织

16位微机系统 (8086)

  • 20根地址线—> 2^20=1MB存储空间 00000H~FFFFFH;

    两个512KB的存储器组成:(两个存储器和地址线A19~A1连接)

    奇地址存储器(高字节存储器),与数据总线D15 ~ D8高8位相连;

    偶地址存储器(低字节存储器),与数据总线D7 ~ D0低8位相连;

  • 字节访问 && 按字访问两种方式

    按字节访问时:可只访问奇地址存储体,也可只访问偶地址存储体

    visit_byte

    visit_byte_chart

    按字访问时:

    对准状态

    1 个字的低 8 位在偶地址体中,高 8位在奇地址体中。

    (A0 和$\overline{BHE}$ ==0) 用 1个总线周期即可通过D15~ D0 完成 16位的字传输

    非对准状态

    1个字的低 8位在奇地址体中,高 8位在偶地址体中。

    CPU 会自动用两个总线周期完成 16位的字传输,

    第一个总线周期访问奇地址体,在 D15~ D8 传输低 8位数据,

    第二个总线周期访问偶地址体,在 D7~ D0传输高 8位数据。

32位微机系统

  • 32位地址总线—> 2^32 = 4GB 的物理地址空间,地址范围为 0 ~ FFFFFFFFH

    4个存储体,每个为 1GB : (4个存储体均与地址线 A31~ A2 相连 )

    均与32位数据总线D31 ~ D0相连

    字节允许信号$\overline{BE3}$~$\overline{BE0}$则作为体选信号分别连接 1个存储体

    32byte_BE

  • 32 位存储器要满足对 8位、16 位、32 位各种不同规格的数据的访问 ($\overline{BE3}$~$\overline{BE0}$ 决定)

    32byte_visit_BE

    在 D23~ D16或 D31~ D24上进行 8位传输时,分别在 D7~ D0 或 D15~8 上传输同样数据;

    在 D31~ D16上进行 16位传输时,在 D15~0 上也传输同样数据。

    • 地址 A31~ A2 选择双字的起始地址,(A1A0==00)地址A31~A0是 4的倍数即 0、4、8、……FFFFFFFCH

    对准状态、非对准状态:

    如果用奇地址进行字访问或双字访问,或者用不是 4的倍数的地址进行双字访问,

    ==> 出现非对准状态,这时需要用 2个总线周期完成字传输或双字传输

存储器应用设计

  • 预备知识:

    74LS138 :

    G1 == 1 & $\overline{G2A}$ == 0 & $\overline{G2B}$ == 0时选通

    (CBA) = i 决定 $\overline{Y_{i}}$ == 0

    • 注意:

      8086、8088的 $\overline{M}$/IO == 0 时 ,才能74LS138选通,对存储器操作

      8086、8088的 $\overline{WR}$ —> SRAM存储器$\overline{WE}$ (EPROM、EEPROM没有)

      8086、8088的 $\overline{RD}$ —> SRAM、EPROM、EEPROM存储器 $\overline{OE}$

      8086通过 $\overline{Y_{i}}$ + A0 => $\overline{CE}$ 偶位、$\overline{Y_{i}}$ + $\overline{BHE}$ => $\overline{CE}$ 奇位 —-> 8位(D7~D0, D15~D8)拓展为16位(D15~D0);

      8088 没有A0,$\overline{BHE}$ 决定输出奇偶位的作用

      2716,2732,2764,27128,27256,27512 的 $\overline{PGM}$ == +5V

      选通信号:

      • SRAM (6116、62256 为$\overline{CS}$ ;6264中为 $\overline{CE1}$ chip enable,$\overline{CE2}$不接)
      • EPROM 2716,2732,2764,27128,27256,27512 为 $\overline{CE}$ or $\overline{CS}$
  • 存储拓展

    • 存储宽度扩展: 位扩展 (多个存储器$\overline{CE}$ 同时选通,data同时输入输出I/O)

      width

      • 8086的8位(D7~D0, D15~D8)拓展为16位(D15~D0)

        [通过 $\overline{Y_{i}}$ + A0 => $\overline{CE}$ 偶位、$\overline{Y_{i}}$ + $\overline{BHE}$ => $\overline{CE}$ 奇位]

    • 存储深度扩充: 字扩展 (不同 Address —> 不同存储器的$\overline{CE_{i}}$ 分别选通)

      depth

  • 地址译码方式

    • 线选法

      直接用地址线作为片选信号,不需要片选译码器

      优点:译码逻辑简单

      缺点1:整个存储器的地址常常不连续;

      缺点2:同一单元可对应不同的地址,形成地址重叠

      addr_lineselect

  • 全地址译码法

    除去用作片内译码的低位地址后,把全部高位地址进行译码来产生片选信号

    优点:存储单元地址是唯一的、不存在地址重叠问题;

    缺点:需要较多的译码逻辑

    • 全译码法8088与SRAM 6264(8K * 8bits)构成32KB存储空间

      addr_alladdr

  • 部分地址译码法

    除去用作片内译码的低位地址后,将高位地址的一部分进行译码来产生片选信号

    优点:存储单元地址是唯一的、不存在地址重叠问题 => 充分利用存储空间;

    缺点:需要较多的译码逻辑

    部分译码法8088与SRAM 6116(2K * 8 bits)构成8KB存储空间

    addr_partaddr

  • 8086 和 8088的杂例

    图5.35 8088需要16KB的ROM和16KB的RAM

    16KB的ROM:两片EPROM2764 8K*8bits

    16KB的RAM:两片SRAM6264 8K*8bits

    8088_5_35

    图5.36 8088需要256KB的ROM和256KB的RAM

    256KB的ROM:?片EPROM27256 32K*8bits

    256KB的RAM:?片SRAM62256 32K*8bits

    ROM地址范围的选取:高端,C0000H~FFFFFH

    RAM地址范围的选取:00000H~3FFFFH

    8088_5_36

    • 8086芯片简化图

      8086通过 $\overline{Y_{i}}$ + A0 => $\overline{CE}$ 偶位、$\overline{Y_{i}}$ + $\overline{BHE}$ => $\overline{CE}$ 奇位 —-> 8位(D7~D0, D15~D8)拓展为16位(D15~D0);

      8086_simplify

    图5.39 全译码法8086与6116构成8KB存储空间 (6116:2K*8bits)

    8086_5_39

    图5.40 8086与ROM/RAM综合

    6116(2K×8bit)构成8KB(4K字)的RAM

    2716 (2K×8bits)构成8KB(4K字)的ROM

    8086_5_40