第 3 章 半导体存储器

116
第3第 第第 第第第 第第第第第第第第第第第第 第第第 第第第第第第第 第第第第 、体, 第第第第第 Cache 第第第第第第第第第第第第第第第第第 SRAM 第第第第第 SRAM 第第第第第第第第第第第第第第第第 DRAM 第第第 DRAM 第第第第第第第第第第第第第第 第第第第第第 第第第第 、, EPROM 第第第第第 第第第第第 FLASH 第第第第第第第第第第第第第第第第第第 PC 第第第第第第第第第第第第第第第

Upload: zelig

Post on 18-Mar-2016

102 views

Category:

Documents


5 download

DESCRIPTION

第 3 章 半导体存储器. 本章概述存储器的层次结构、半导体存储器的分类,以及高速 缓冲存储器 Cache 和虚拟存储器; 讲解静态随机存取存储器 SRAM 结构及常用 SRAM 存储器芯片; 叙述动态随机存取存储器 DRAM 及常用 DRAM 存储器芯片; 讨论只读存储器组成、原理与分类,介绍常用 EPROM 存储芯片和 快闪存储器 FLASH; 简述新型的非挥发随机存取存储器; 最后对 PC 机存储器的组织与管理作了概括。. 第三章 半导体存储器. 3.1 存储器概述 3.2 静态随机存取存储器 SRAM - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 3 章 半导体存储器

第 3 章 半导体存储器 本章概述存储器的层次结构、半导体存储器的分类,以及高速 缓冲存储器 Cache 和虚拟存储器; 讲解静态随机存取存储器 SRAM 结构及常用 SRAM 存储器芯片;

叙述动态随机存取存储器 DRAM 及常用 DRAM 存储器芯片; 讨论只读存储器组成、原理与分类,介绍常用 EPROM 存储芯片和 快闪存储器 FLASH; 简述新型的非挥发随机存取存储器; 最后对 PC 机存储器的组织与管理作了概括。

Page 2: 第 3 章 半导体存储器

第三章 半导体存储器 3.1 存储器概述 3.2 静态随机存取存储器 SRAM 3.3 动态随机存取存储器 DRAM 3.4 只读存储器 3.5 非挥发随机存取存储器 3.6 存储器组织与管理 3.1 存储器概述 3.1.1 存储系统的分层结构 3.1.2 半导体存储器分类 3.1.3 高速缓冲存储器 Cache

3.1.4 虚拟存储器

Page 3: 第 3 章 半导体存储器

3.1.1 存储系统的分层结构 主存 - 辅存层次 :具有主存的较快存取速度又具有辅存的大容量 和低价格 解决存储器的容量问题。 高速缓存 - 主存层次 :速度接近于 Cache ,而容量则是主存的容量 解决存储器的存取速度问题 微型计算机中存储子系统的分层结构如图所示

Page 4: 第 3 章 半导体存储器

3.1.2 半导体存储器分类 存储器分类:按存储介质分—— 磁表面存储器(硬磁盘、软磁盘、磁带等)、 光盘存储器和半导体存储器。 半导体存储器分类:按制造工艺分—— MOS 型和双极型两大类。 半导体存储器一般都是 MOS 型存储器。 MOS 型半导体存储器分类:从应用角度分—— 只读存储器 ROM 和随机存取存储器 RAM ROM和 RAM 进一步细分如下表所示 表中类型还可进一步细分: 如兼有 SRAM和DRAM 共同优点的组合型半导体存储器

iRAM, DRAM 中专为图形操作设计的 WRAM和 SGRAM, ROM 中又有串行和并行之分,等等。

Page 5: 第 3 章 半导体存储器
Page 6: 第 3 章 半导体存储器

3.1.2 半导体存储器分类(续) ROM 存储器的发展过程就是不断方便用户使用的过程:掩模 ROM→PROM→EPROM→E2PROM→FLASH。 静态随机访问存储器 SRAM 主要发展方向:提高访问速度与功能多样化。●提高速度——早期约 300ns→ 现在只有几个甚至不到一个 ns;●功能多样化——支持突发操作的同步 SRAM即 SB SRAM 作为二级高速缓存 L2 Cache 使用,实现了与快速处理器的匹配。 支持缓冲操作的先进先出存储器 FIFO

支持数据共享的多端口 SRAM(即Multi-SRAM) 掉电时信息不丢失的非挥发随机存取存储器 NV SRAM 高集成度类静态随机存取存储器 PSRAM(Pseudo SRAM)

动态随机存取存储器 DRAM 发展方向:增大存储容量、提高访问速度。●存储容量——早期几十 Kb(bit :二进位 )→ 现在 512Mb 至几 Gb● 访问速度——从几百 ns→SDRAM 的 10ns→DDR、 RDRAM 最快 1ns左右 ECC RAM 对每个一定长度的二进制数都产生并存储一组附加的数据位,称为校验和,即 ECC 码。

Page 7: 第 3 章 半导体存储器

3.1.3 高速缓冲存储器 Cache 1. Cache 工作原理 现在微机中均设置有一级高速缓存 (L1 Cache) 和二级高速缓存

(L2Cache)Cache 内容只是主存中部分存储数据块的副本,它们以块为单位一一对应

Cache使 CPU 访问内存的速度大大加快。 二级缓存存储系统的基本结构如图所示。

Page 8: 第 3 章 半导体存储器

3.1.3 高速缓冲存储器 Cache (续) 1. Cache 工作原理(续) 判断:访问存储器时, CPU 输出访问主存的地址,经地址总线送到 Cache

的主存地址寄存器 MA ,主存 -Cache 地址转换机构从 MA获得地址 并判断该单元的内容是否已经在 Cache 中存储? 命中:如在则称为“命中”,立即把访问地址转换成其在 Cache 中的地址, 随即访问 Cache 存储器。 未命中:如果被访问的单元内容不在 Cache 中,称为“未命中”, CPU直接 访问主存,并将包含该单元的一个存储块的内容及该块的地址 信息装入Cache 中;否则 置换——若Cache已满,则在替换控制部件控制下,按某种置换算法, 将从主存中读取的信息块替换Cache 中原来的某块信息。 2. Cache 基本操作 高速缓存操作的具体实现途径: CPU←→Cache←→ 主存。◆CPU←→Cache 之间按行传输,一般一行为连续的 256bit ,即 32 个字节;◆ Cache←→ 主存之间按页(又称块)传输,页的大小与 Cache←→ 主存 之间地址映射方式相关,通常为 256 个字节的整数倍。

Page 9: 第 3 章 半导体存储器

3.1.3 高速缓冲存储器 Cache (续) 2. Cache 基本操作(续) ( 1 )读操作 ◆命中 Cache :则从 Cache 中读出数据送上数据总线,并立即进行下 一次访问操作; ◆未命中 Cache:CPU 就从主存中读出数据,同时 Cache替换部件把 被读单元所在的存储块从主存拷贝到 Cache 中。 ( 2 )写操作 ——三种 Cache写入方法 ① 通写( Write-Through) 每次写入 Cache 的同时也写入主存,使主存与 Cache 对应单元的内容 始终保持一致。不会造成数据丢失,影响工作速度。 ② 改进通写( Improve Write-Through) 若 Cache写入后紧接着进行的是读操作,那么在主存写入完成前即 让 CPU开始下一个操作,这样就不致于造成时间上的浪费。

Page 10: 第 3 章 半导体存储器

3.1.3 高速缓冲存储器 Cache (续) 2. Cache 基本操作(续) ③ 回写( Write-Back)

只是在相应内容被替换出 Cache 时才考虑向主存回写: Cache 行数据只 要在它存在期间发生过对它的写操作,那么在该行被覆盖(替换出 Cache )前必须将其内容写回到对应主存位置中;如果该行内容没有被 改写,则其内容可以直接淘汰,不需回写。这种方法的速度比通写法 快,被普遍采用。 3. 地址映射 ( 1 ) 直接映射 直接映射:将主存中的块号 (块地址 )对 Cache 中的块数 (块的总数 ) 取模,

得到其在 Cache 中的块号。 相当于将主存的空间按 Cache 的大小分区,每个区内相同的 块号映射到 Cache 中的同一块号。 优点:直接映射最简单,块调入 Cache 时不涉及替换策略问题,地 址变换速度快。 缺点:块冲突概率高,当程序反复访问冲突块中的数据时, Cache 命中率急剧下降, Cache 中有空闲块也无法利用。

Page 11: 第 3 章 半导体存储器

3. 地址映射 直接映射的对应关系如图所示

( 2 ) 全相联映射 全相联映射:主存中的每个块可映射到 Cache 中任意一个块的位置上 优点——具有相当高的 Cache命中率 缺点——查找速度慢,数据块调入时存在复杂的替换策略问题全相联映射的对应关系如图所示

Page 12: 第 3 章 半导体存储器

3. 地址映射(续) ( 3 ) 组相联映射 组相联映射:将 Cache 和主存各自分为若干组,各组之间采用直接映射,

组内各块之间采用全相联映射 特点:主存的某一存储块可调入 Cache 中一个对应组内的任意块中 是全相联映射和直接映射的一种折中—— 组数为 1 时就成了直接映射 分组数和块数相等时就成了全相联映射组相联映射的对应关系如图所示

Page 13: 第 3 章 半导体存储器

4. 替换规则 替换规则应尽量使被替换下的块在下一时间段内最少用到。 ( 1 )先进先出规则 FIFO FIFO规则总是把最先调进 Cache 的数据块替换出去。 ( 2 )近期最少使用规则 LRU LRU(Least Recently Used)规则是将 Cache 中近期使用最少的信息 块替换出去。 LRU规则需要随时记录 Cache 中各个块的使用情况,以确定哪个块 是近期使用最少的块。 LRU 的命中率比 FIFO 高;加大分组容量,能提高 LRU规则的命中率。

Page 14: 第 3 章 半导体存储器

3.1.4 虚拟存储器 虚拟存储器:建立在“主存—辅存”层次上,将主存和辅存地址空间统 一编址,使程序员可以按比主存大得多的空间来自由地 编制程序,运行程序又能获得接近于主存的存取速度。 虚拟存储器的管理:由硬件实现的存储管理部件MMU 和操作系统软件 共同完成。 1. 虚拟存储原理 ◆逻辑地址:编程时使用的指令地址,又叫虚地址。 ◆逻辑空间: CPU 按虚地址访问的存储空间。即虚地址所对应的空间, 可达整个被用到的辅存,称为“虚存空间” 。 ◆虚拟存储器是程序所能占有的空间,其大小取决于计算机访问存储 器的能力,由指令的地址位数和地址形成机构等决定。 ◆物理地址:实际主存单元的地址,又叫“实地址”。 实地址对应的是“主存空间”,又叫“物理空间”。 虚地址的寻址范围比实地址的大得多。 ◆虚 - 实地址变换:通常先由存储管理部件MMU 判断该地址的内容是否 已调入主存中,若在主存中则通过地址变换机制把 虚地址变换为实地址,然后访问主存; 若尚未调入主存,则产生缺页中断,以页为单位调 入主存或实现主存—辅存内容调换。

Page 15: 第 3 章 半导体存储器

主存—辅存与 Cache—主存的基本差异 ◆ Cache— 主存体系目的是满足程序对速度的要求,容量小,读写速度快; 主存—辅存体系是为了满足存储容量的要求,容量大,读写相对较慢。 ◆在 Cache— 主存体系中, CPU 可直接访问 Cache 和主存, 在主存—辅存体系中, CPU 不能直接访问辅存。 ◆在 Cache—主存体系中,为争取速度,地址变换、替换策略和信息存取 全部采用硬件来实现,因此对各级程序员和用户全都是透明的(就 像 Cache 不存在一样); 在主存—辅存体系中,由MMU 等辅助硬件和操作系统的存储管理软件 等共同进行信息块的规划和主存—辅存的调度,所以对设计相应管 理软件的系统程序员来说是不透明的 ( 必须考虑主存—辅存的有关情 况 ) ,对广大用户来说,则是透明的 (不必考虑机器如何进行调度 ) 。

Page 16: 第 3 章 半导体存储器

2. 页式虚拟存储器 分页:虚存空间和主存空间划分若干页,每页大小相等,通常是 512B

的整数倍。虚存的页称虚页,主存的页称实页。分页面向存储器物理结构,大小固定,有利主存与辅存之间的调度管理。 虚地址:高位部分是虚页号,低位部分是页内地址。 页表:在主存中为每个用户作业建立一个页表,提供虚实地址变换依据 页表按虚页号分行,每行记录:虚页号、块号、实页号和一些控制位: ● 虚页号:编程时由虚地址给出 ● 块号 ( 盘号 ) :表示该页在磁盘中的位置,是该页在磁盘中的起始地址 ● 实页号:当该虚页已在主存中时,该项登记对应的主页号 ●控制位:包括▲ 装入位 ( 有效位 ) :为 1 表示该虚页已调入主存 ▲ 修改位:为 1 表示对应的主存实页已被修改过 ▲ 替换控制位:为 1 表示对应的主存实页需要替换 ▲ 读写保护位:指明该页的读写允许权限—— 只读不写或可读可写 页表基址寄存器:存放当前运行程序的页表的起始地址

Page 17: 第 3 章 半导体存储器

◆根据虚地址访存,首先将虚页号与页表起始地址合成页表地址,找到页表 的对应行,根据该行装入位判断该虚页是否在主存中; ◆若已在主存中,则从该行中读出对应的实页号,与虚地址中的页内地址合 并,得到主存的实地址,据此访问主存的相应单元。 ◆若该虚页尚未调入主存,则申请缺页中断,以中断方式将所需页的内容调 入主存; ◆若主存空间已满,则按事先设计好的算法(如 FIFO或 LRU 等),选择可以 淘汰的主存实页并将其调出(若修改位为 1 则必须把该页重新写入辅存), 再将所需的虚页调入主存。

Page 18: 第 3 章 半导体存储器

2. 页式虚拟存储器(续) 快慢表结构 快表:存放在快速小容量存储器中最常用的页表信息,作为主存中页表 局部内容的副本。 快表存储器可按虚页号名字并行查询,能迅速找到对应的实页号。 慢表:主存中的页表。 采用快慢表结构,访问页表的过程与 Cache 工作原理相似。 若计算机采用多道程序方式工作,则慢表有多个,但全机快表只有一个。 3. 段式虚拟存储器 分段:面向程序的逻辑结构分段,以段为单位进行调度、传送、定位, 各段之间相对独立,互不干扰,非常适应模块化程序。 段长:长度按程序逻辑段设置,有的甚至可在执行时动态地确定其大小。 段表:在主存内为每个作业设置一个段表 每行记录:段号、段起点、段长及装入位、修改位等控制信息。 段表基址寄存器:存放当前运行程序的段表的起始地址。 访问段式虚拟存储器时虚实地址转换过程如下图所示。

Page 19: 第 3 章 半导体存储器

◆ CPU根据虚地址访问存储器,先将虚地址中的段号与段表起始地址合成段 表地址去访问段表的对应行,判读装入位看该段是否已调入主存; ◆若已在主存中,取出段起点(该段在主存中的起始地址),与虚地址中的 段内地址(即在段内的偏移量)相加,得到实地址,据此访问主存。 ◆若该段尚未调入主存,则产生缺段中断,将所需的段调入主存,与缺页调 入主存情况类似。

Page 20: 第 3 章 半导体存储器

4. 段页式虚拟存储器 分段分页:将虚存空间按程序的逻辑模块分成段,每段再分为若干大小 相等的页; 主存空间也划分为若干同样大小的页,并相应地建立段表和 页表; 分两级查表(段表和页表)实现虚实转换, 以页为单位调进或调出主存,按段共享、保护程序和数据。 虚地址: 单道程序工作方式——三部分:段号、段内页号、页内地址; 多道程序工作方式——四部分:基号、段号、段内页号、页内地址。 段号又称为用户标志号,标识各个用户程序。 每个用户程序有自己的段表,段表的起始地址存放在段表基址寄存器中,

多道程序的多个段表起始地址存放在一组段表基址寄存器中。 段页式虚拟存储器虚实地址转换须经两级查表,过程如下图所示。

Page 21: 第 3 章 半导体存储器

◆根据基号选取相应的段表基址寄存器,读出自己的段表起始地址,与虚地 址中的段号相加得到访问段表对应行的地址;◆从段表中取出该段的页表起始地址,与段内页号相加得到访问页表对应行 地址;◆从页表中取出实页号,与页内地址拼装形成访问主存单元的实地址。Pentium 处理器采用段页式地址转换机制,其段表和页表的设置有很大的灵活性,详见后述。

Page 22: 第 3 章 半导体存储器

3.2 静态随机存取存储器 SRAM 3.2.1 SRAM 结构 1. 基本存储电路 6个MOS 管组成: T1~T4 组成一个双稳态触发器。 Q=0 (或 =1 )这一稳定状态表示二进制“ 0” , 另一稳定状态 Q=1 (或 =0 )表示二进制“ 1” 。 T5、 T6 :行选通门 ( 每个存储单元一对选通门 ) ,受地址译码信号控制的; T7、 T8 :列选通门 ( 每列存储单元一对选通门 ) ,受列选信号控制。 存储的数据通过数据线 T5/T6、D/-D和 T7/T8传输到外部引线 I/O 和 -

I/O, D 和 -D 称为位线, I/O 和 -I/O 称为数据线。

Page 23: 第 3 章 半导体存储器

1. 基本存储电路(续) 读出数据:相应的行选择信号和列选择信号均为有效高电平, T5、 T6、

T7、 T8 均导通,触发器的状态 Q( -Q )通过 T5( T6 )传递给 数据线D( -D),D( -D )通过 T7( T8 )送到 I/O( -I/O) 线上。 读出信息时,触发器状态不受影响,为非破坏性读出。

写入数据:地址译码器使相应的行选、列选信号有效,选中某个基本存 储电路, T5、 T6、 T7、 T8 导通,被写入的信息从 I/O 和线通过, 经 T7、 T8 输入至 D线和 -D线,然后通过 T5、 T6被写入到 Q 端 和 -Q 端。 写入时可能使触发器状态发生翻转,由于是正反馈的交叉耦 合过程,翻转极快,所需的写入时间极短。 行选或列选信号无效(低电平), T5、 T6或 T7、 T8截止,基本存储电路 与外部数据线 I/O( -I/O )隔断,维持原来状态不变。

Page 24: 第 3 章 半导体存储器

2. SRAM 组成结构 SRAM 结构:存储体和外围电路(行 /列地址译码器、 I/O 缓冲器和读写控制电路等)组成,如图所示。存储体:由 64×64=4096 个六管静态存储电路组成的存储矩阵。双译码方式:▲ X 地址译码器输出端提供 X0~X63 共 64条行选线,每一行 选线接在同一行中的 64 个存储电路的行选端,为该行 64 个行选端提供行选信号; ▲ Y 地址译码器输出端提供 Y0~Y63 共 64条列选线,同一列 的 64 个存储电路共用一条位线,由列选线控制该位线与 I/O 数据线的连通。

Page 25: 第 3 章 半导体存储器

2. SRAM 组成结构(续) 片选控制:每块存储芯片都有一个片选控制端,片选信号由地址线的高 位译码产生,用来选择存储单元所在的芯片;而低位地址线 经片内译码选中该芯片内的某个存储单元。 三态缓冲器:用于输入输出缓冲。 浮动电源控制电路:对未选中的存储单元降低电源电压,仅使其能够维 持所存储的信息。 3. SRAM 的读 /写过程 (1) 读出过程 ●选中: 12 位地址 A0~A11 加到 RAM 芯片的地址输入端,经 X与 Y 地址 译码器译码,分别产生一根行选信号与一根列选信号,选中 行列交叉点上的存储单元。 ●缓冲:该单元中存储的代码经过一定时间出现在 I/O 和 -I/O线上, 经 I/O 电路放大、整形后送至三态输入输出缓冲器。 ●读出:三态输入输出缓冲器在 CPU 发出的片选信号( -CS )和读信 号( R/-W )的控制下将三态门打开,于是存储单元的信息 就被送到数据总线DB上,完成读出操作。

Page 26: 第 3 章 半导体存储器

3. SRAM 的读 /写过程(续) ●选中: 12 位地址 A0~A11 加到 RAM 芯片的地址输入端,双译码后选中某 个存储单元;●缓冲: CPU将要写入的数据放在数据总线DB上,三态输入输出缓冲器 在片选信号( -CS )和写入信号( R/-W )作用下被打开,将DB

上的数据( 0或 1 )送入缓冲器;●写入:缓冲器数据经 I/O 电路传送到 I/O 和 -I/O线上,再送到存储单元 的位线上,从而写入到所选中的存储单元内。 4. SRAM 芯片例举 ( 1) Intel 2114 Intel 2114是NMOS的 SRAM 芯片,容量为 1K×4 位。有 4096 ( 1024×4 )个基本存储电路,排成 64×64 的矩阵。其芯片引脚如图所示。

Page 27: 第 3 章 半导体存储器

4. SRAM 芯片例举(续)( 1) Intel 2114 (续) ●译码: 1K 容量需要 10根( 210=1K )地址线,其中 A3~A8 用于行译 码,产生 64 个行选信号; A0A1A2A9四根地址线用于列译码,产生 16 个列选信号,每 一列选信号同时控制 4 对位线 64/4=16) ,对应 4 位数据线。 ●数据缓冲:芯片内部有 4条 I/O 电路以及 4 个三态输入 / 输出缓冲器,

通过 4根双向数据线 I/O1~I/O4引出,与外部数据总线 的 4 位相连。 ●数据读写:片选信号必须有效—— 若写允许信号 -WE=0 (有效)则打开四个三态输入门, 将数据写入芯片; 若 -WE=1 (无效),则打开四个三态输出门,将数据 从芯片中读出。

Page 28: 第 3 章 半导体存储器

( 2) HM62W16255H HM62W16255H 是 256K×16 位的高速

SRAM

Page 29: 第 3 章 半导体存储器

( 2) HM62W16255H 片内寻址: 256K(218) 存储单元需 18条地址线寻址; ●行地址线: A1、 A2、 A7~ A9、 A13、 A16和 A17 共 8根,行地址译码器输 出有 256条,一条有效同时选中存储矩阵中的连续 8 行; ●列地址线: A0、 A3~ A6、 A10~ A12、 A14、 A15 共 10根,列地址输出有 1024条,一条有效同时选中存储矩阵中的相邻两列。 数据读写:●一个有效地址可选中存储矩阵的 8 (行) ×2 (列)= 16个 存储单元,每个单元表示一位二进制数,通过三态门分别 与数据线 I/O1~ I/O16相连。 ● 16 位数据线可以按字或字节输入 / 输出,由 -LB (低字节) 和 -UB (高字节)信号控制实现。 其它控制信号:片选信号、读 /写控制信号、输出允许信号。 芯片的功能由上述控制信号定义,如下表所示。

Page 30: 第 3 章 半导体存储器

3.2.2 同步突发静态随机存取存储器 SB SRAM SB RAM 主要用作高性能处理器的二级高速缓存 1. SB SRAM 内部结构与引脚信号 KM718V889 是 SamSung 公司的 256K×18 位 SB RAM ,片内集成有 多 个 地 址 寄存器、控制寄存器和一个 2 位的突发地址计数器,如下图所示。

Page 31: 第 3 章 半导体存储器

1. SB SRAM 内部结构与引脚信号(续) KM718V889采用 100引脚的 TQFP封装,四边的引脚数分别为 30 、20 、 30 、 20 ,其引脚功能如下表所示。

Page 32: 第 3 章 半导体存储器

1. SB SRAM 内部结构与引脚信号(续) ●全宽度写入: -GW 有效可实现总线全宽度的写入操作, ●字节写入: -GW 和 -CS1 都无效时 -WEX 和 -BW联合作用可执行字节写入, ●禁止地址流水线方式:通过 -ADSP (地址状态处理器)可禁止对地址 流水线方式的支持。 ●启动突发周期:通过 -ADSP或 -ADSC (地址状态高速缓存控制器)的 输入信号来启动突发周期,连续的突发地址在芯片内 部产生,并可通过引脚 ADV (突发地址允许)来控制。 ●突发模式: -LBO引脚决定突发模式是线性突发还是交替突发, ●电源控制: ZZ引脚控制电源关闭状态,以减少在线功耗。 2. SB SRAM 特点与功能 ● 具有 4 次突发的二级流水线结构,支持统一时钟下的同步操作,可控 制异步输出; ● 具有片内地址计数器、片内地址缓冲器,可自定时写周期; ● 既支持按字节写入,也支持全总线宽度写入; ● 支持交替突发和线性突发。

Page 33: 第 3 章 半导体存储器

2. SB SRAM 特点与功能(续) SB RAM 主要用于支持突发访问的微处理器系统,用作高性能微处理器 的 L2 Cache。 芯片除 -OE、 -LBO和 ZZ引脚外,所有输入均在时钟信号上升沿采样。 片选信号有三个,控制是否访问芯片,它们和 -ADSP 、 -ADSC及

ADV 共 同控制突发访问的操作(启动和持续); -WEX控制读和写,见下表

Page 34: 第 3 章 半导体存储器

2. SB SRAM 特点与功能(续) 突发访问过程:突发操作的起始地址由外部逻辑提供,后续地址则由该 起始地址和 -LBO (突发模式控制)的状态决定: 为 0 时按线性突发进行,为 1 时按交替突发进行,如下表

Page 35: 第 3 章 半导体存储器

3.2.3 多端口静态随机存取存储器 Multi- SRAM Multi-SRAM 主要用于数据共享场合。 Multi-SRAM 一般具有两个(甚至多个)独立的端口,不同的端口分别连 接到不同的设备,以便这些共享设备异步访问同一存储体中的信息。 1. Multi-SRAM 内部结构 DS1609 存储芯片:双口 SRAM—— 双口存储阵列 两个完全独立的端口 A、 B 。

Page 36: 第 3 章 半导体存储器

3.2.3 多端口静态随机存取存储器 Multi- SRAM (续) DS1609 芯片内存储矩阵的存储单元电路:交叉正反馈的四管电路,

A、 B 端口构成:数据开关管——两对(四管), 地址 / 数据复用、锁存、译码逻辑和芯片操作控制逻辑。

Page 37: 第 3 章 半导体存储器

3.2.3 多端口静态随机存取存储器 Multi- SRAM (续) DS1609封装引脚: DIP封装 24引脚,分时复用的 8条地址数据线, 每个端口引脚:输出允许、写允许、端口允许。

Page 38: 第 3 章 半导体存储器

2. Multi-SRAM 的操作 Multi-SRAM 存储器的操作:读和写 读周期——从地址 / 数据复用引脚 AD7~ AD0上地址有效开始,稍后 -CE 有效,控制将地址信息锁存到片内的地址锁存器中,开始对片内存储单元寻址,当 -

OE 有效并滞后 tOEA 后,输出的数据稳定出现在 AD7~ AD0上,直到 -OE或 -CE 出现上升沿(开始变为无效)为止,读周期结束, AD7~ AD0维持在高阻状态。

Page 39: 第 3 章 半导体存储器

2. Multi-SRAM 的操作(续) 写周期——地址有效且 -CE变为低电平开始对片内存储单元寻址,与读周期一样, -CE 有效后经 tCWE 时间后 AD7~ AD0上的数据才稳定,这时 -WE变为有效,将数据写入到被选中的存储单元中; -WE 有效前必须保证有

tDS (数据建立时间)的延时, -WE无效后经 tDH (数据保持时间)延时,写周期结束, AD7~ AD0维持在高阻状态。

Page 40: 第 3 章 半导体存储器

3.2.4 其它 SRAM 存储器 1. 先进先出存储器 FIFO SRAM FIFO SRAM 功能:中间缓冲器◆存储主体是静态存储器,允许以不同的速率进行读写,作为两种或多 种速度不匹配的接口电路的中间缓冲器,广泛用于现代微机中不同标 准总线之间的接口缓冲,如完成 CPU 主总线到 PCI 总线之间的转换、

PCI 总线到 ISA 总线之间的转换。◆不同传输速率的接口电路相互连接、传输数据,在较长时间段内传诵 的总量是一致的;但在某个时间片内,由于传输速率的差异,写入、 读出的数据量是不等的,这就必须要有一定容量的 FIFO 存储器作为读 写之间的缓冲。 FIFO 存储器类型—— 按数据流向:有单向和双向之分, 按操作方式:有(时钟)同步和异步之分, 按数据宽度:有 1 位、 4 位、 5 位、 9 位、 18 位、 36 位等多种……

Page 41: 第 3 章 半导体存储器

3.2.4 其它 SRAM 存储器(续) SN74ALVC7804/06/14 :低功耗、单向、同步、 18 位的 FIFO 存储器。

Page 42: 第 3 章 半导体存储器

3.2.4 其它 SRAM 存储器(续) 同步 FIFO 存储器的操作——◆在装载时钟 LDCK 和卸载时钟UNCK 的作用下同步进行: 在 LDCK上升沿,从一个端口将数据写入 FIFO 存储器; 在 UNCK 的上升沿,从 FIFO 存储器的另一端口读出数据。◆当两时钟数之差超过 FIFO深度时存储器满, -FULL 信号有效,此时

LDCK 的变化不改变 FIFO 存储器中的数据; 当存储器空( -EMPTY 信号有效)时, UNCK 的变化也不影响 FIFO 存储器。

FIFO 存储器的状态信号有 -FULL (满)、 -EMPTY (空)、 HF (半满)和 AF/AE (几乎满 / 几乎空)。◆相应信号线有效,表示相应状态;其中 AF/AE 输出状态的度量标准依编 程而定。◆复位信号 -RESET 有效(低电平)期间,将复位内部堆栈指针,使AF/AE、 -EMPTY 有效, -FULL、HF无效。

Page 43: 第 3 章 半导体存储器

2. 非挥发静态随机存取存储器 NV SRAM NV SRAM—— 存储主体为低功耗的 SRAM ,还整合了一个能检测电压的 存储器控制器,以及锂电池或者 E2ROM/FLASH。◆当外供的电源电压低于维持 SRAM 信息的最低值时,存储器控制器将芯 片的供电切换到内部的锂电池上,或者将 SRAM 中的信息转存到 E2PROM

/FLASH ,以维持存储的数据并防止外部的数据写入。◆ NV SRAM既具有 SRAM 的接口简单、读写速度高、时序简洁的优点,又具 有 ROM 的非挥发特性,应用相当广泛。

NV SRAM :型号多,容量从 16Kb 到 16Mb 不等。主要研发、生产厂家: DALLAS公司 NV SRAM 芯片的主要特点如下: ● 低功耗的 CMOS 电路; ● 读写访问周期与 SRAM 同速; ● 在存储电路中可直接替换 SRAM或 E2PROM、 FLASH; ● 无限制的写周期; ● 切断外部电源,芯片中存储的数据自动转入保护状态; ● 在完全没有外供电源情况下,芯片中存储的数据可保持 10年以上。

Page 44: 第 3 章 半导体存储器

3.3 动态随机存取存储器 DRAM DRAM特点:存储密度高,存取速度相对较慢 DRAM 用途:大容量存储,一般用作计算机的主存储器(主存) 3.3.1 基本存储电路与存储器结构 1. DRAM 单管基本存储电路 DRAM 基本存储电路多为单管电路,只有一个管子 T和一个 ( 寄生 ) 电容 C

单个基本存储电路存放的是“ 1”还是“ 0”,取决于电容器的充电状态。

Page 45: 第 3 章 半导体存储器

1. DRAM 单管基本存储电路(续) 读操作—— ◆行地址译码选中某一行,该行上所有基本存储电路中的管子 T全导通, 于是连在每一列上的刷新放大器读取该行上各列电容 C的电压。 ◆刷新放大器灵敏度高,将读得的电压放大整形成逻辑“ 0”或“ 1”的电平。 ◆对列地址进行译码产生列选信号,列选信号将被选行中该列的基本存 储电路内容读出送到芯片的数据输入/输出 I/O线上。 写操作—— 相应行、列选择线为“ 1”,数据输入/输出 I/O线上的信息经刷新放大 器驱动后再通过 T管加到电容 C上。 刷新 ( 再生 )—— ◆在读/写过程中,某条行选线为“ 1”,该行上所有 ( 各列 ) 基本存储电 路都被选通,由刷新放大器读取电容 C上电压; ◆对非写的存储电路,刷新放大器读出、放大、驱动之后又立即对之重 写,进行刷新 (又称再生 ) ,维持电容 C上的电荷,保持该存储电路中 的内容(即状态)不变。 ◆电容 C是MOS 管的极间电容,容量很小,读出时电容 C上的电荷又被寄 生的分布电容分泄,因此读出后原来 C上的电压变得极小,是破坏性 读出,读后必须重写。

Page 46: 第 3 章 半导体存储器

1. DRAM 单管基本存储电路(续) 刷新操作周期——◆电容 C 上电压将按 exp(-t/(RC))指数规律放电,因此 DRAM须不断进行读 出和再写入,以使泄放的电荷得到补充,即要进行刷新 ( 再生 ) 。虽然 每次读/写操作都进行了刷新,因为读/写操作是随机的,不能保证 对 DRAM 中的所有基本存储电路都按时刷新,因此必须设置专门的电路 来对 DRAM 中的所有存储电路周期性地进行刷新操作。◆每个 DRAM 存储单元两次刷新的间隔时间随温度而变化,一般为 1~ 100ms 。在 70℃情况下典型的刷新时间不超过 2ms。

Page 47: 第 3 章 半导体存储器

2. DRAM 组成 下图是由单管存储元件组成的 DRAM 存储矩阵简图,共有 16384个存储单元,每个存储单元只有一个存储元件,故存储容量为 16K×1 。它需要 14位地址码。分成 X 地址码( 7位)和 Y 地址译码( 7位)来共同选择所需的存储单元。

Page 48: 第 3 章 半导体存储器

2. DRAM 组成(续) 读操作——

◆ X 地址译码线 Xi上出现高电平,这一行上的 128个存储元件的控制门 T管 全部导通,与之相连的 128个电容 C上的信息便送入读出(刷新)放大 器 A 中去放大,放大后的原信息又被写回到原存储单元之中,以便使读 后被破坏的信息得以再生;◆一行 128个存储单元中只有一个存储单元的信息读出后被送到片外: 当 Y 地址译码线 Yi上出现高电平后,该列线上的那个 MOS 管才导通,才 能使对应 Yi这一列的存储单元所读出的信息经该管送至缓冲电路输出。◆只有 X 和 Y 译码线上都出现有效译码信号时,由这两个地址译码所确定 的唯一一个存储单元才能被选中,将其信息读出送到片外。 写操作——◆选通某行进行刷新操作,◆选通某列将某个存储单元与缓冲电路沟通,把写入的信息经缓冲器送 至刷新放大器,驱动后再存入该存储单元。 刷新—— 给 X 译码电路一个 7位地址代码,便能对一行的存储单元进行刷新; 用 7位计数器产生行地址码,就能周期性地对每行存储单元进行“再生”。

Page 49: 第 3 章 半导体存储器

2. DRAM 组成(续) DRAM 的刷新操作按行进行,由特殊的放大器电路完成; 该放大器灵敏度很高,读出信号的放大、读后重写、写入、刷新等操作都要经过该放大器完成。 该放大器称为读出放大器(又称刷新放大器),其原理如下图所示。

Page 50: 第 3 章 半导体存储器

2. DRAM 组成(续) 读出放大器由触发器和控制管 T5 组成。 触发器状态:当 L1 为高电平而 L2 为低电平时, T1T2T3T4构成双稳态触发器( 六管静态存储单元 ) 。正常情况下,触发器保持一个稳定状态,例如

D=“1”,=“0” ,或者相反。 平衡状态: L1 为低电平, L2 为高电平; L1=0使 T3、 T4截止,防止 VCC经

T3或 T4向存储单元的电容 C 充电 ( 否则某行被选通时 VCC会向原存信息为“ 0”的单元充电而使其变为“ 1”); L2=1保证 T5 导通, D 和 -D 端电位相等,放大器处于微妙的平衡状态。 读、写或刷新操作: L2由“ 1”跳至“ 0”, L1由“ 0”跳至“ 1”,使

T1T2T3T4又成为正常的触发器,这时若 X 选择线所选中的单元 (假定为左边单元,右边单元的情况类似 ) 所存信息为“ 1”,其位线电位略高,经 D 端加到 T2 管的栅极,使 T2 管导通, -D 端向“ 0”变化, -D 端又加到 T1 管的栅极,使 T1截止,这个强烈的正反馈过程使 T2 导通, T1截止,使原来存储的微弱的“ 1”信号变成为触发器的状态,实现了放大。另一方面,这个“ 1”状态又通过被选中的 T管向电容充电,从而实现了重写。 存储电容状态:由上述可知,存储相同 的“ 1”(或者“ 0”),读出放大器左右两边(对应图的读出放大器上下两边)存储电容的状态正好相反。

Page 51: 第 3 章 半导体存储器

2. DRAM 组成(续) 读出放大器参考单元的设置——◆电路问题:当所选的单元 (以左边为例 ) 存储的信息为“ 0”时,读出时位 线电位为 0 ,对触发器无影响, L2由“ 1”变为“ 0”(相当于撤消外平衡力 ) 后,触发器的状态变化不确定。 ◆参考单元:要解决这个问题,须在该放大器两侧各设置一个参考单元, 其存储电容为 C/2 ,如上图所示。参考单元始终处于充电状态,其内容 永远为“ 1”。 读写某单元 (例如左边的一个单元 ) 则同时选中放大器另一侧的参考单 元,两单元同时读出,分别加到 D和 -D端。当所选存储单元的信息为“ 1” 时, D 端电位上升了△U, -D 端上升了△U/2,迫使触发器向 D=1 的方向翻 转;若所选存储单元的信息为“ 0”, D 端电位上升为 0 , -D端仍上升 △U/2 ,迫使触发器向 =1 的方向翻转。 ◆预充电:一旦读写周期结束后,除了对所选存储单元重写外,还必须 对参考单元进行预充电使其恢复为“ 1”,然后才能进行下一次读写。 这段时间叫恢复时间或预充电时间。

Page 52: 第 3 章 半导体存储器

3.3.2 传统 DRAM 存储器 1. 早期 DRAM Intel 2164A : 64K×1 存储芯片,需 16条地址线对片内 65536 个存储单元寻址。数据线只有一条,且读出与写入是分开的, 8 片位并联可构成 64KB 存储器。 2164A 芯片只有 8条输入地址线,分别在 -RAS 和 -CAS 信号控制下,分时 将输入的 8 位地址送入片内的行地址锁存器和列地址锁存器。

Page 53: 第 3 章 半导体存储器

1. 早期 DRAM (续) 2164A 存储体: 64K ,由 4 个 128×128 的存储矩阵组成。 ◆每个存储矩阵由 7条行地址和 7条列地址进行寻址。 ◆行地址锁存器的 RA6~ RA0 同时加到 4 个存储矩阵上,对每个存储矩阵 都选中一行,共选中并读出 512 个存储单元电路的内容送读出放大器, 经鉴别后重写,达到刷新目的。 ◆列地址锁存器的 CA6~ CA0也同时加到 4 个存储矩阵上,对每个存储矩 阵选中一列,然后经由 RA7与 CA7控制的 4选 1的 I/O门控电路选中一个 单元,对其进行读写。 读写控制引脚 -WE :数据的读出与写入是分开的。 ◆ -WE 为高电平是读出,控制将选中单元的内容通过输出缓冲器在 Dout

引脚上输出; ◆ -WE 为低电平是写入, Din引脚上数据经由输入缓冲器写入选中的单元。

Page 54: 第 3 章 半导体存储器

1. 早期 DRAM (续) 2164A没有片选信号,片选功能由 -RAS 和 -CAS完成。 2164A 为双列直查式 DIP16引脚,如图所示。 总线周期:读周期、写周期(早写、延迟写)、读 -修改 -写周期、 刷新周期(包括自我刷新、隐含刷新、刷新 CBR 等); 2164A 还支持快速页面操作模式。

Page 55: 第 3 章 半导体存储器

2. FPM DRAM FPM DRAM( 快速页面模式 DRAM) :传统 DRAM 的改进型。 ◆传统 DRAM 存取数据前必须分别输入行地址和列地址。 ◆计算机中存储的大量数据一般是连续存放的,一页内相邻数据存储的 行地址(高位地址)相同而列地址(低位地址)连续变化; ◆为提高访问速度,采用触发行地址后连续输出列地址(行地址不变) 的方式。 ◆一页:行地址不变,列地址从全 0 到全 1 的存储空间,一页通常是 1024 (字节)的整数倍。 ◆ FPM DRAM :具有上述访问操作模式的存储器 (Fast Page Mode

DRAM )。 快速页面模式实现:必须由内存芯片和内存控制器(通常在芯片组中) 共同配合完成。 FPM DRAM 存储器:多为 72线的 SIMM 内存条,存取时间不断缩短, 从 120ns 到上世纪末的 60ns ,工作电压 5V。

Page 56: 第 3 章 半导体存储器

3. EDO DRAM EDO DRAM(Extended Data Output DRAM :扩展数据输出 DRAM)

◆与 FPM DRAM 制造技术相同,只增加少量 EDO控制逻辑电路。 ◆读写 FPM DRAM 数据时,必须等当前总线周期完成才能输出下一个总 线周期地址,而 EDO DRAM因采用了特殊的内存读出控制逻辑,在读 写一个存储单元的同时启动下一个(连续的)存储单元的读写周期, 从而节省了重选地址的时间,加快了读写速度。 ◆与 FPM DRAM相比, EDO DRAM性能约提高了 15%~ 30% ,而两者 制造成本相近。 芯片组支持: EDO DRAM 所增加的机能必须在相应的芯片组支持下才能实现效率的提高。 EDO DRAM 内存条:多采用 72线的 SIMM封装,少部分也采用 168线的 DIMM封装,存取时间为 50ns~ 70ns ,工作电压 5V。

Page 57: 第 3 章 半导体存储器

3.3.3 高速大容量 SDRAM和 RDRAM存储器 1. SDRAM SDRAM(Synchronous DRAM :同步 DRAM) 是广泛应用于计算机中的高速大容量存储器,在相当长时期内是存储器市场的主流。 前述的 DRAM 是非同步存取存储器,在存取数据时必须等待若干时钟周期才能接受和发送数据,如 FPM DRAM和 EDO DRAM须分别等待 3 个和 2 个时钟周期。这种等待限制了存储器的数据传输速率, FPM DRAM和 EDO DRAM 的速率不能超过 66MHz。

(1)   SDRAM 概述 SDRAM 在同步脉冲控制下工作,和 CPU 共享一个时钟周期,在理论上可与 CPU外频同步。多数 SDRAM搭配运行的时钟频率为 66MHz~ 133MHz ,存取时间为 15ns~ 7ns。

Intel 430VX 芯片组支持的 SDRAM ,在 66.6MHz 存储器总线速度下,流水操作达到 7-1-1-1 的时序水准,即第一次存取要 7 个时钟周期,接下来的存取都在 1 个时钟周期内完成;如果总线速度更高,则第一次存取所需的 时钟周期 数会更少。当系 统 时钟增 加 到 100MHz 以上时, SDRAM比 EDO DRAM 的优点愈发明显,已经接近主板上同步Cache 的 3-1-1-1 时序水准。

Page 58: 第 3 章 半导体存储器

(1)       SDRAM 概述(续) SDRAM 使用 3.3V 电压,功耗比 FPM DRAM 和 EDO DRAM 都低。封装采用 168线DIMM ,见下图。

Page 59: 第 3 章 半导体存储器

( 2) SDRAM 芯片结构与特性 HM5264805 芯片:典型 64Mb的 SDRAM 存储器,其内部结构如下图所示。 HM5264805 内部: 4 组存储体,每组为 4096×4096矩阵,即 4096行 × ( 512列×8 位),因此 64Mb呈现 2M×8 位 ×4 组的形式。 4组存储体可同时打开,能够同时或独立操作,各组可串行工作也可交替工作。

Page 60: 第 3 章 半导体存储器

( 2) SDRAM 芯片结构与特性(续) HM5264805 操作:支持突发的读 /写操作和突发读 / 单次写操作,突发长度可编程为 1 行 /2 行 /4 行 /8 行 /整个页面( 512字节),突发过程亦可编程设定,突发操作能连续进行,支持突发停止。 HM5264805 芯片刷新一遍需 4096 个周期,共 64ms 。支持自动刷新和自我刷新两种方式。芯片 3.3V 供电, CLK 时钟频率为 100MHz/

125MHz ,信号接口电气特性符合 LVTTL。 HM5264805采用 DIP54脚封装引脚位置、名称与含义如图所示 时钟允许引脚 CLE :

SDRAM引脚与以往最大的不同。CLE 决定下一个 CLK 是否有效:CLE 为高电平则下一个 CLK 有效, 为低电平则下一个 CLK无效;该引脚支持 SDRAM挂起模式, 降低后备状态功耗。

Page 61: 第 3 章 半导体存储器

( 3) SDRAM 操作 SDRAM 有多种操作模式,根据引脚 -CS、 -RAS、 -CAS、 -WE 和地址信号的状态, HM5264805 解读并执行不同的操作,如下表所示。

Page 62: 第 3 章 半导体存储器

( 3) SDRAM 操作(续) DESL :忽略命令。当无效(高电平)时, SDRAM忽略所有输入的命令,内部依然保持原有的状态。 NOP :无操作命令。为非操作命令, SDRAM 原内部操作仍继续进行。 BST :全页面操作方式下的突发停止命令。用于停止一次全页面 (512字节 ) 的突发操作。 READ :列地址锁存与读命令。启动一次读操作,突发读操作的起始地址由列地址 AY0~ AY8 和组选择地址 A12/A13 决定。 READA :伴随自动预充电的读操作。该命令迫使长度为 1 、 2 、 4或 8的突发读操作之后自动执行一条预充电操作。当突发长度为整个页面时该命令无效。 WRIT :列地址锁存与写命令。期待一次写操作,突发写操作的起始地址由列地址 AY0~ AY8 和组选择地址 A12/A13 决定。 WRITA :伴随自动预充电的写操作。该命令迫使长度为 1 、 2 、 4或 8的突发写操或单次写操作之后自动执行一条预充电操作。当突发长度为整个页面时该命令无效。 ACTV :组激活。激活组选择信号 A13A12 和行地址 AX0~ AX11 所选择的组。当 A13A12 为 00 、 01 、 10 、 11 时分别激活第 0 、 1 、 2 、 3 组。

Page 63: 第 3 章 半导体存储器

( 3) SDRAM 操作 (续) PRE :组预充电。启动 A13A12 所选择的组预充电。 PALL :预充电所有组。该命令对所有的组进行预充电操作。 REF/SELF :自动刷新 /自我刷新操作命令。 MRS :模式寄存器设置命令。对模式寄存器进行设置,控制 SDRAM 工作在不同的操作模式下。 执行 MRS 操作期间,通过地址线上的 A0~ A13 对模式寄存器各位进行设置,可定义突发长度、突发类型、延迟、测试模式、开发特定属性等,使 SDRAM适用于各个领域。

SDRAM 突发操作是一种主要的操作模式。 SDRAM 的操作状态主要受 CKE 信号控制。 SDRAM 有行激活、读、写、读且预充电、写且预充电、各种操作的挂起、后备、刷新、预充电等 17种状态,这些状态及其相互转换受 CKE(n-1)、 CKE(n)、 -

CS、 -RAS、 -CAS、 -WE 等信号引脚控制。

Page 64: 第 3 章 半导体存储器

2. SLDRAM SLDRAM :采用 SDRAM 存储芯片技术的 RamLink。 RamLink 对传统 DRAM 的最根本的改变不是 DRAM 芯片的内部结构,而是存储器与处理器的接口。 RamLink 是存储器与环形排列的点对点连接器的接口,如下图 ( 左 ) 所示。 存储器控制器:管理环形网络上的信息,它发送消息给作为环中节点的

DRAM 芯片,数据以包的形式传输、交换。 RamLink包的格式如下图 ( 右 ) 所示。

Page 65: 第 3 章 半导体存储器

( 3) SDRAM 操作 (续) 请求包初始化存储器: ◆包由命令头、地址、待写的数据(如果是写操作)、校验和等组成。 ◆命令头含有类型、容量和控制信息,以及特定的响应时间或允许做出 反应的最大时间; ◆控制信息中有一位指示随后的请求是否为顺序的地址; ◆每个设备最多同时激活 4 个业务,由包中的 2 位业务 ID指明匹配的请求 和响应包。 对于成功的读操作, DRAM 发送含有读取数据的响应包;若读未成功, DRAM 发出一个重试包,告知完成这一操作任务还需多少时间。 RamLink 具有可缩放的结构,提供了与存储器控制器有效的接口,用以支持数量多少不等的 DRAM ,而不需描述它们的内部结构。 当环上节点 DRAM 采用 SDRAM 芯 片技术, 就 成 了 SLDRAM

[GILL97]。

Page 66: 第 3 章 半导体存储器

3. DDR SDRAM DDR SDRAM ( Double Data Rate SDRAM : 双倍数 据传输率

SDRAM )简称 DDR 存储器。 DDR 完全沿用 SDRAM 现有生产体系,两者生产成本也差不多。与

SDRAM 不同在于: DDR 不仅能在时钟脉冲上升沿存取数据,还能在时钟脉冲下降沿存取数据,同样时钟频率下读写数据的速率提高一倍。 DDR 可工作在 2.5V 低电压环境下,工作频率也不断提升,有 PC133/

DDR266/DDR333/DDR400…… 带宽达 3GB/s 甚至更高。 DDR 内存条采用 184线的 DIMM封装,见下图,引脚边只有一个小缺口,而不像 168线的 DIMM 内存条有两个小缺口。

Page 67: 第 3 章 半导体存储器

4. RDRAM RDRAM是 Rambus DRAM 的简称,是新型高速动态随机存取存储器。 异步面向块协议: RDRAM 总线使用异步的面向块的协议来传送地址信息和控制信息,总线最多能寻址 320块 RDRAM 芯片,经过 480ns初始地址存取时间后,总线本身能够产生 555Mb/s 的数据传输速度 (异步

DRAM 只有 33Mb/s)。 RDRAM 用 28根不超过 12cm 的引线与处理器交换数据,所有引线都在一边,采用垂直封装。 Rambus 非常精确地定义了阻抗、时序和信号,与传统的 DRAM采用显式的 -RAS、 -CAS、 R/-W、 -WE 等控制信号来定义访问存储器周期不同, RDRAM通过高速总线获得存储器请求,该请求包含了访问存储器操作所需的地址、操作类型和字节数。 RDRAM 的容量一般为 64Mb/ 72Mb或 128Mb/144Mb ,组织结构为

4M×16 / 4M×18 或 8M×16 / 8M×18 , 18 位的组织结构允许进行ECC检验。

RDRAM 的行列地址相互分离、各自独立,行与列的地址几乎在同一时间内完成,弥补了 RDRAM寻址过程较 SDRAM慢的缺点,进一步提高了工作频率。

Page 68: 第 3 章 半导体存储器

4. RDRAM (续) RDRAM 引 入 了 RISC 精 简 指 令 集 技 术 , 工 作 频 率 有

300MHz、 356MHz、 400MHz、 533MHz 等多种,采用双沿(上升沿和 下降沿)传输 。上述 工 作频率的 RDRAM 内 存 分别称 为 PC-600、 PC-700、 PC-800、 PC-1000 内存。

RDRAM 芯片具有多组结构,可分为 16 、 32或 64 组,支持至多 4 组的同时传输(四通道)。 RDRAM 结构的带宽由工作频率和同时传输的组数决定,工作频率 400MHz情况下 1 组 /2 组 /4 组传输的带宽分别为 400×2×16=1600MB/s=1.6GB/s 、 400×2×2×16 =3.2GB/s 、 400×2×4×16 =6.4GB/s。

RDRAM 可灵活使用三种预充电机制;具有减少读延迟的写缓冲,可在各组间交替传输。 RDRAM 具有高级电源管理特性,有多种低功耗状态,允许只在传输数据期间处于激活状态而在自我刷新时处于低功耗状态。 RDRAM由于对外接口不同于以前的 DRAM ,所以采用 184线的 RIMM内存条封装,见下图。

Page 69: 第 3 章 半导体存储器

4. RDRAM (续) RIMM 内存条的使用: ◆不少芯片组同时支持 DDR与 RDRAM ,但两种不同类型的内存芯片不 能混用。 ◆使用 RDRAM 要求所有的 RIMM槽必须全部插满 RIMM 内存条,若有空 余则必须用专门的 Rambus终结器插满,这是由于时钟信号依次流过 每个 RIMM槽卡再返回。 RDRAM 应用:主要在高性能存储、图形图像、视频和其它需要高带宽 低延迟的应用场合。 RDRAM 的缺点价格比 SDRAM贵。

Page 70: 第 3 章 半导体存储器

3.4 只读存储器 ROM(Read Only Memory :只读存储器 )——◆正常在线使用时只读不写,其中的内容不会改变,即使掉电也不会丢失。◆ ROM 中存放系统软件和系统配置参数、应用程序和常数、表格等,存储 在 ROM 中的这些内容称为固件 (Firmware)。 ◆大批量生产的固件常用 Mask (掩模) ROM和 PROM ,研制和小批量生产 时常用 EPROM、 E2PROM和 FLASH ,以便修改、升级程序和用户编程。 ◆ FLASH 可在线改写其中内容,得到广泛使用,用户可通过因特网方便地 升级所购软件(比如 BIOS 等)。 3.4.1 只读存储器组成与分类 1. 只读存储器组成 与随机存取存储器类似,只读存储器也是由地址译码电路、存储矩阵读出电路等部分组成。结构示意图如右。

Page 71: 第 3 章 半导体存储器

3.4.1 只读存储器组成与分类(续) 存储矩阵: 128×128, 14位地址线分行、列译码,行译码选中一行时该行上的全部存储单元信息都选通到各列的列线上,而只有列译码选中的列上的三态门打开,该列上的信息才能经过该列选门送到片选信号控制的三态输出门进行输出,即只把行列交叉点上的单元内信息读出。 信息所在存储单元的晶体管仅起一个开关作用:晶体管漏极与列线相连的单元存储的信息为“ 0”,因为选中时该单元晶体管导通,将列线下拉为“ 0”电平 (晶体管源极接地 ) ;晶体管漏极不与列线相连的单元存储的信息为“ 1”(列线高电平保持不变,经三态门输出 ) 。 各单元存储的信息固定不变,只读不写,所以读出控制电路简单,读出信息可靠。八片这样的存储矩阵可构成 16KB的 ROM 存储器。

Page 72: 第 3 章 半导体存储器

3.4.1 只读存储器组成与分类(续) 2. 只读存储器分类 基本存储电路可看作一个开关电路,见右图 开关种类不同,只读存储器类型亦不同。 掩模式 ROM:在芯片制造过程中可采用连线或断线的方法使开关 S接通或断开,栅或厚栅 ( 开启电压低或高 )来使开关 S接通或断开。 PROM :制成后所有开关都处于同一种状态,允许用户在特定的设备上对成品芯片中的各个开关 S作一次性编程修改。 EPROM :浮动栅 MOS 管。◆写入——出厂时所有 MOS “管的源、漏极不导通,存储的值全为 1”。若

对 MOS 管在衬底(与源极相连接地)与漏极之间加 24V 的反向电压,造 成雪崩击穿,使注入浮动栅的电子足够多而在硅表面感应出一个反型 “层,造成源、漏极间连通(低阻状态),该管存储的信息就变为 0”。◆擦除——用紫外线透过 EPROM 芯片上方石英玻璃窗口对之照射约 20 分钟, 使浮动栅上电荷受激逃逸,源、漏极间反型层消失,源、漏极断开, “整个芯片内每个管子的存储信息又都恢复为 1”。◆ EPROM 具有多次改写的优点,但价格比 PROM 贵。

Page 73: 第 3 章 半导体存储器

2. 只读存储器分类(续) E2PROM :可电擦除编程 ROM ◆工作原理:与 EPROM 类似,但擦除和编程更方便,而且可按寻址的字 节或数据块进行改写;写操作的时间比读操作的长得多。 ◆编程和擦除:与 EPROM相比, E2PROM 增加了第二栅极(多晶硅),并 在漏极上面增加了一个隧道二极管。在第二栅极与漏极之间加电压

UG, 可使电荷通过隧道二极管流向浮动栅,起编程作用; 若 UG极性相反,也可使电荷从浮动栅流向栅极,起擦除作用; 编程和擦除所用的电流极小。 ◆ E2PROM比 EPROM更贵,集成度也更低。

FLASH :工作原理与 EPROM/E2PROM 类似,无论是价格还是功能,都介于后两者之间,详见 3.4.3 。

Page 74: 第 3 章 半导体存储器

3.4.2 常用 EPROM 存储芯片 Intel 2716~ Intel 27512 芯片

Intel 27××× 系列芯片的引脚和外接信号基本相同,管脚排列上也尽量相互兼容。该系列芯片数据线宽均为 8位,数据引脚为 O0~ O7 ;地址线宽根据容量不同而不等,从 A0~ A9到 A0~ A15。 -CE 为片选信号,在编程写入时接编程脉冲; -OE 是数据输出允许,在线读出时为有效低电平,编程写入时为高电平。 Vcc 接 +5V 电源, Vpp正常读出时接+5V 、而编程时须接 +25V (不同芯片有所差别)。

Page 75: 第 3 章 半导体存储器

工作方式:根据 -CE、 PGM、 Vpp 等引脚的状态, Intel 27××× 有多种工作方式——读出、未选中、待机、编程输入、校验编程内容、禁止编程等。

CE

3.4.3 快闪存储器 FLASHFLASH也称闪烁存储器,简称闪存,因其可以快速重新编程使其内容频繁变化而得名。FLASH 存储信息密度高、存取速度快、成本低、不挥发,可以块擦除、单一供电,得到广泛应用。1. FLASH 单元存储电路与存储矩阵 FLASH 单元存储电路由一个晶体管构成:被氧化物包围的浮空栅内有电荷(电子)时衬底上源和漏极导通,为一种稳定状态,可视之为“ 0”;浮空栅内无电荷(电子)时源与漏极不通,为另一种稳定状态,可视之为“ 1”。

Page 76: 第 3 章 半导体存储器

3.4.3 快闪存储器 FLASH 上述两种稳定状态可以互相转换: ◆在源与栅极之间加一正向电压(如 12V),浮空栅内电荷向源极扩散,

导致浮空栅电荷丢失,源与漏极之间的导电沟道消失,状态由“ 0”转 变为“ 1”,这一过程完成对 FLASH 的擦除; ◆在栅源之间加正向电压,其值大于漏源间的正向电压时,来自源极的 电荷向浮空栅扩散,使浮空栅带上足够的电荷,在衬底源与漏极间感 应出一个反型的导电层,源与漏极导通,状态由“ 1”转变为“ 0”,这一 过程完成了对 FLASH 存储单元的写“ 0”。 正常读取操作:只需在源与漏极间加适当电压(5V 或 3V) 即可,源与控制栅之间不加电压。 正常使用情况下, FLASH浮空栅上电荷可以保存 100年左右不丢失。

Page 77: 第 3 章 半导体存储器

2. FLASH 芯片内部结构 HN29WT800 是广泛应用的 8Mb FLASH 存储器,其内部结构如下图所示。

Page 78: 第 3 章 半导体存储器

2. FLASH 芯片内部结构(续) HN29WT800 组成:存储体、地址缓冲与译码、命令用户接口 CUI 、状态 /标识寄存器、写状态机WSM 、灵敏放大器、复接器及数据输入 / 输出缓冲器等

8Mb 存储体:排成 2048(行 )×(256(列 )×16)矩阵, ◆行地址 A8~ A18(11 位 ) 译码选择 211=2048行中的一行, ◆列地址 A0~ A7(8 位 ) 译码选择 28=256列中的一列,每一列选中、输出 16 个存储单元,作为 16位数据 I/O0~ I/O15。 ◆该芯片数据传输有 16位宽与 8位宽两种方式,由输入的 47#引脚 -BYTE 的电平决定: -BYTE=1 为 16位数据线宽, -BYTE=0 为 8位数据线宽。 ◆ -BYTE=0进行 8位数据传输时, I/O15 数据引脚变为 A-1 地址引脚, A-1~ A18共 20 位地址线寻址 1MB 的存储空间。

存储体由页面缓冲区、根块、参数块和主存储块组成。 ◆页面缓冲区很小( 128字节),用于数据输入 /输出时的中间缓冲; ◆根块保存系统数据,系统数据在正常操作时很少改变,通过引脚 -RP (复位 /电源关闭)、 -WP (写保护)及电源电压的不同组合来保证根 块中的数据安全; ◆参数块保存经常需要修改的配置参数; ◆主块用于保存数据。

Page 79: 第 3 章 半导体存储器

2. FLASH 芯片内部结构(续)HM29WT800 共有 19个块,这些块位于不同的寻址空间,各块存储内容不同,操作各自独立,每块都可单独编程设置成不同的操作模式。各块的地址映射关系如下表所示。

Page 80: 第 3 章 半导体存储器

2. FLASH 芯片内部结构(续) 其中 A18~ A15 为块选择号,对根快、参数块和 16KW(字 ) 的主存储块都为 1111 ,对参数块和第一主块还另需 A14~ A12 进行进一步的选择。 HN29WT800为 DIP48线封装,其引脚位置、名称如下图所示。

Page 81: 第 3 章 半导体存储器

3. FLASH 操作 FLASH 操作模式:由输入控制信号线 -CE、 -OE、 -WE、 -RP 的状态决定。

Page 82: 第 3 章 半导体存储器

3. FLASH 操作(续) 读操作模式——五种:读取存储块中数据、读取状态寄存器、 读取分块锁定状态、读取标识。 分块地址由 A18~ A12 提供( A11~ A0 为高电平),分块锁定状态由 I/O6表示: I/O6=1 为块锁定, I/O6=0 为块解锁。 读取标识时, A0 为低电平读制造商代码, A0 为高电平读设备代码

(HN29WT800 系列的 FLASH 为 85H, HN29WB800 系列的为86H)。 对字模式读出的为 I/O0~ I/O15 ,对字节模式读出的是 I/O0~ I/O7。 输出禁止、在线、关闭电源操作模式中, I/O0~ I/O7/15 为高阻状态。 写操作模式——三种:编程 ( 写入命令和数据 ) 、擦除 ( 写入命令 ) 、 其它 ( 写入命令 ) 。 FLASH 操作模式必须先进行定义(即写入相应命令)、再进行相应操作。

Page 83: 第 3 章 半导体存储器

3. FLASH 操作(续) 不同的操作模式,所需的总线周期也不等,见下表。

Page 84: 第 3 章 半导体存储器

3. FLASH 操作(续) ① IA标识地址: A0=0 为制造商代码, A0=1 为设备代码; ID标识代码 ② SRD 为状态寄存器数据 ③ WA 为写地址, WD 为写数据 ④ BA 为分块地址( A12~ A18)

⑤ I/O6表示各分快锁定状态:为 1锁定,为 0 解锁 ⑥ -BYTE当为 1 时,编程的页面大小为 256字节, A-1~ A6从 00H~FFH; -BYTE 为 0 时,编程的页面大小为 128字节, A0~ A6从 00H~7FH。

因命令数有限,字模式下第一总线周期中写入的命令忽略高字节数据( I/O8~ I/O15)所有命令都是 8位编码。FLASH 支持对存储阵列中各分块进行数据锁定,从而保护相应的数据。

状态寄存器高 5 位表示相应操作后的状态(低 3 位保留未用),见右表。

Page 85: 第 3 章 半导体存储器

3.5 非挥发随机存取存储器 新型的非挥发存储器 FRAM和MRAM:随机存取,既不挥发又易写入,得到广泛应用。 3.5.1 铁电随机存取存储器 FRAM FRAM( Ferroelectric RAM :铁电随机存取存储器)存储原理:◆核心是铁电晶体材料。◆铁电晶体处在一定强度的电场中,中心原子顺电场方向移动,穿越势 垒,引起击穿,迁至高能位,达到一种状态;◆撤消电场,中心原子受壁垒所困不能回归原位,存储的状态得以保存。 加一定强度的反向电场,原子穿透壁垒回归原位,达到原来的状态。 FRAM采用 0.35μm 工艺制造,与标准的 CMOS 制造工艺相兼容:铁电薄膜被放在

CMOS衬层之上,置于两块电极之间,用金属互连并钝化。 FRAM 掉电后数据不丢失,长期保存而无须定时刷新。 FRAM 读写速度快,且不易写坏。 FRAM 产品结构:并行和串行两种。◆并行结构的 FRAM 与相应容量的 SRAM 芯片引脚兼容,例如 FM1808 为 256Kb 的 并行结构 FRAM ,与 SRAM 芯片 62256引脚完全一样,访问时间为 70ns。 ◆串行结构的 FRAM 与相应容量的 E2PROM 芯片引脚兼容。 FM25××× 和 FM24××× 是串行结构 FRAM 芯片。并口 FRAM 在芯片使能引脚 -CE 下降沿锁存地址信息,这样在每次访问存储器周期开始之后就可以改变地址总线为下个地址信息,加快存取速度。必须保证每个内存访问周期开始处引脚产生一个负跳变,这是和并口 SRAM 的一个差别( SRAM 的端只要低电平即可选通)。

Page 86: 第 3 章 半导体存储器

3.5.2 磁随机存取存储器 MFAM MRAM(Magnetic RAM :磁随机存取存储器):◆原理:以磁介质不同的磁化状态表示“ 0”或“ 1”,与硬磁盘类似, 存储的数据具有永久性。 MRAM 磁介质的磁密度比硬磁盘要大得多,也相当薄,因 而产生的自感和阻尼要小得多,这是 MRAM 的速度大大快 于硬盘的物理基础。◆流水读写:在进行读写操作时, MRAM 中的磁化方向控制单元会 使用相反的磁力方向,以使数据流水线能同时进行 读写操作,加快数据的存取。 ◆性能:▲除了不挥发,在速度、功耗、体积上, MRAM比起流行 的 DDR和 RDRAM也不逊色。 ▲ 256KB MRAM 的通用存储器芯片,结构是 16KB×16,

读写周期小于 50ns ,在 3V 电压下读功耗为 24mW。 ▲随着技术进步,读写周期有望在 10ns 以下,功耗小 于 8mW ,芯片存储能力进一步提高。

Page 87: 第 3 章 半导体存储器

3.6 存储器组织与管理 3.6.1 存储器组织 1. 存储单元的编址与访问 存储单位:位是二进制数的最基本单元,也是存储器最小的存储单元。绝大多数计算机把一个字节( 8位二进制数)作为一个存储单位,也有的计算机把一个二进制数作为一个整体来存储,称之为存储字,存储字的位数随计算机而异,例如 16位( 2 个字节)或 32 位( 4个字节)。计算机内存通常以字节为单位编址,即字节是最小编址单位,相邻单元存放字的相邻字节。 存放方案:若一个字由 4个字节组成,分别用 B3 (最高有效字节)、 B2、 B1、 B0 (最低有效字节)表示。在字节编址的计算机中,规则存放字的地址总是等于 4的整数倍。◆低端方案:假如字的存储地址为 N ,那么 B3、 B2、 B1和 B0 的存放地址依 次为 N+3、 N+2、 N+1和 N ,即字地址等于最低有效字节地址。 低端方案为 80x86 系列、 DEC VAX 等计算机所采用。◆高端方案: B3、 B2、 B1和 B0 存放的地址分别为 N、 N+1、 N+2和 N+3, 即字地址等于最高有效字节地址。 高端方案为 IBM 360/370、Motorola 6800 等计算机采用。◆规则存放:不管哪种方案,存储单元按字节编址,字的地址总是等于 4 (组成字的字节数)的整数倍。

Page 88: 第 3 章 半导体存储器

3.6.1 存储器组织(续) 计算机中要存放的数据是多种多样的,它们的长度不一定相同。 例如数据字长为 32 位的计算任务中要读写的数据可能有 8位(字节)、 16位(半字)、 32位(单字)和64位(双字)。一次可存取 64位的计算机系统如何存放这些数据呢? 右图给出了三种存放方法。

Page 89: 第 3 章 半导体存储器

3.6.1 存储器组织(续) 1. 存储单元的编址与访问(续) 图 (a) 的方法节省存储空间,但浪费访问时间。4种不同长度的 8个数据一个紧挨一个存放,存储空间无浪费;但其中双字、单字、半字都有跨存两个存储字的,这使得对其访问需要两个总线周期,使读写速度降低了一半,况且控制也趋复杂。 图 (b) 的方法节省访问时间,但浪费存储空间。从存储字的起始位置开始存放,无论访问字节、半字、单字还是双字都只需要一个总线周期,但浪费了许多存储资源。如果 4种不同长度的数据出现的概率相同,则有 53%多的存储空间被浪费掉。 图 (c) 是规则存放,即边界对齐的存放方法。要求双字地址末 3 位必须为 000 ,单字的末 2 位必须为 00 ,半字( 16位)的最末位为 0 。规则存放方式无论是访问双字、单字、半字或字节,都能保证在一个总线周期内完成。存储空间虽然还有所浪费,但要小得多。

Page 90: 第 3 章 半导体存储器

2. 存储器接口与数据宽度匹配 字节编址的内存,允许每次访问读写 8 位或 8 的整数倍( 1~ 8 )位的数据。 (1) 8 位微处理器与存储器接口 数据总线宽度为 8位的 8088微处理器,读 /写(由 -RD、 -WR和 IO/-M控制)按字节编址的内存数据进行,访问很简单,如下图所示。

Page 91: 第 3 章 半导体存储器

2. 存储器接口与数据宽度匹配(续) (2) 16位微处理器与存储器接口 16位微处理器可在一个总线周期内读 /写 2 个字节,存储器分为奇偶两个存储体,地址线上出现的偶地址可对存储体中的偶地址单元和相邻的奇地址单元寻址,用数据总线的低 8位和高 8位读取其中的字节数据,如下图所示。

Page 92: 第 3 章 半导体存储器

2. 存储器接口与数据宽度匹配(续) 8086 CPU 有 20根地址线(分时复用的 A0~ A19),可寻址 1MB 存储空间。 1MB 存储空间分为两个 512KB 的存储体,用 A1~ A19 对存储体内的单元寻址,用 A0 和 -BHE( 高字节有效 )来寻址两个存储体,见下表:

Page 93: 第 3 章 半导体存储器

2. 存储器接口与数据宽度匹配(续) 16 位微处理器与存储器之间一次数据传送可以是一个字节,也可以是一个字,有四种情况,如下图所示:

Page 94: 第 3 章 半导体存储器

2. 存储器接口与数据宽度匹配(续) (3) 32 位存储接口 32 位微处理器 80386/80486/Pentium 有 32 位地址线,可直接寻址

4GB 存储空间。 4GB 存储空间分为 4个存储体,每个存储体的存储空间为 1GB ,由 A31~ A2 共 30条地址线进行体内寻址,每个存储体的 8位数据线分别接 D31~ D24、 D23~ D16、 D15~ D8、 D7~ D0 ;低 2位地址线 A1、 A0 经内部译码产生 4个字节使能信号 -BE0~ -BE3 ,如下图所示。

Page 95: 第 3 章 半导体存储器

2. 存储器接口与数据宽度匹配(续) 32 位微处理器可在一个总线周期内实现 32 位、 24位、 16位、 8位的数据传输,根据指令类型产生的~控制数据传输宽度,见 X 2 表。

Page 96: 第 3 章 半导体存储器

2. 存储器接口与数据宽度匹配(续) (1)       64 位存储接口 从第五代微处理器开始,其存储空间是以 64位二进制位为单位组成一个线性阵列,传送的 n位数据包含了 n/8 个可单独寻址的字节。

4GB( 32 位地址线)或 64GB( 36 位地址线)的存储空间分为 8个存储体,体内存储单元由 A35(A31)~ A3 地址线寻址, A2~ A0 内部编码产生 -BE0~ -BE7字节使能信号控制相关字节传输。 64位宽的存储器组织如下图所示。

Page 97: 第 3 章 半导体存储器

Pentium 处理器与存储器之间要传送 64位数据,则8个存储体都被选中;传送 32 位数据,有 4个存储体被选中;传送 16位或 8位数据只有2 个或 1 个存储体被选中;其情景与32 位存储接口类似。 Pentium 微机对 64/32/16/8位存储器寻址及与数据总线接口见右图。

Page 98: 第 3 章 半导体存储器

3.6.2 存储器管理 对存储器的管理有分段方式和分页方式。 段按程序的逻辑结构划分,长短不固定,分段为各自不同的代码和数据提供了一种保护隔离机制,以便多个任务或程序能够在同一个处理器上运行而互不干扰。 分页是把在虚拟存储系统中运行的程序环境映射到物理存储器上的一种实现机制,分页也能用于多任务的隔离,页的大小因计算机系统而异,同类计算机页的长短固定。 系统工作在保护模式时必须采用分段机制,而分页则是可选的。通过分段分页的适当配置,能够支持多任务或多处理器系统对存储器的共享。

Page 99: 第 3 章 半导体存储器

1. 实地址模式下的管理 16位微处理器 8086、 8088、 80186、 80188只能运行在实地址模式下。8086/8088 CPU 有 20 位地址线,可寻址 1MB 存储空间。 ◆CPU 内部用于寻址的寄存器只有 16位,为此,将 1MB 的存储空间划分为 多个段供程序使用,每个段段首地址(又称段基址)的高 16位用 16位 的段寄存器(如 CS、 DS、 ES或 SS )来表示,低 4位默认为 0 ;

◆存储单元在段内的地址,即该单元相对于段首的偏移量(字节距离) 称为偏移地址,用 16位寄存器(如 IP、 BX、 SP、 BP、 SI或 DI )表示, 其值从 0000H~ FFFFH ,这样一个段的范围最大为 64KB。 ◆段在内存中的定位是独立的,各个段可互相分离,可相邻连续,也可 互相重叠(部分重叠或完全重叠)。 ◆对互相重叠的段,重叠部分的内存单元在不同时间段可能属于不同的 段(由程序决定),其段属性和具体寻址由段基址和偏移地址决定。 逻辑地址:程序中表示一个存储单元的段基址和偏移地址。 8086/8088

Page 100: 第 3 章 半导体存储器

1. 实地址模式下的管理(续) 系统访问内存单元的方法较多,它们段基址和偏移地址的表示有相应约定,如下表所示。

Page 101: 第 3 章 半导体存储器

1. 实地址模式下的管理(续) 物理地址:存储单元在存储器中的实际地址(即绝对地址),是 20 位无符号的二进制数,由 CPU中 BIU 内 20位地址加法器根据公式计算完成:物理地址=段基址×16+偏移地址。物理地址的产生过程如右图所示。

16位微处理器工作在实地址模式下,指令中的操作数都是 16位或 8位,而操作数的地址是 20 位(如 8086/8088系统)或 24位(可寻址 16MB 存储空间,如 80286系统)。8位微处理器如 Intel 8080、 8085 等,指令中的操作数只有 8位,操作数的地址一般为 16位,可寻址的存储空间只有 64KB。实际上 8位微处理器把在实模式下的整个内存储器看成一个段,或者说所有的段都完全重叠在一起,存储单元的寻址完全靠(段内的) 16位偏移地址决定。

Page 102: 第 3 章 半导体存储器

2. 分段分页管理 段页式管理:现代微处理器的地址线不少于 32 位,可寻址的物理空间不少于

4GB 。对如此庞大的存储空间,一般都采用分段分页机制进行管理。 段描述符:分段时不仅要给出段基址(长达 32 位),而且还要给出段的最大允许长度、特权级、段的类型以及其它控制和状态信息(这些也有 32 位之多),我们把这 64位有关段的描述信息称作段描述符。◆段描述符有两类: ▲代码段和数据段描述符——用于对代码段或数据段的描述; ▲系统描述符——包括局部描述符表 LDT 的段描述符、任务状态段描述符、 调用门描述符、中断门描述符、自陷门描述符、任务门描述符等。 段描述符表:将段描述符在内存中顺序排列而成。 ◆段选择子:微处理器用 16位的段寄存器指向一个段的段描述符在段描述 符表中的位置 (表内偏移量,以一个段描述符的长度即 8个字 节为单位 ) ,该段寄存器中的 16位内容 (即标识符 ) 即段选择子。 ▲请求特权级:段选择子的 D1D0 两位(见后述) ▲标识位: D2 为全局描述符表 GDT/局部描述符表 LDT 的标识位 ▲索引值: 13 位,这样描述符表中最多只有 8191 ( 213-1 )个描述符。

Page 103: 第 3 章 半导体存储器

2. 分段分页管理(续) 描述符表有两种——◆全局描述符表 GDT :每个系统必须有一个 GDT ,以维护系统中所有程序 和任务的调度与执行。◆局部描述符表 LDT :每个单独运行的任务或多个任务都要定义相应的 LDT ,可以有一个或多个 LDT。 逻辑地址——由一个 16位段选择子和一个 32 位的偏移量组成,

◆采用分段机制,通过一个逻辑地址可访问处理器地址空间中的每一个 单元。 ◆线性地址空间——包含了所有的段和已定义的系统表达的 4GB (或 64GB )地址空间,其地址范围从 0到 FFFF FFFFH (或 F FFFF FFFFH)。

◆逻辑地址转换成处理器线性地址空间中 32 位(或 36位)的线性地址。 必须:①依据段选择子在 GDT或 LDT 中找到段描述符;

② 检查段描述符的访问权限和段界限,以保证该段是可访问的并 且不越界;

③ 用段描述符的基地址加上逻辑地址的偏移量,得到线性地址。

Page 104: 第 3 章 半导体存储器

2. 分段分页管理(续) 不分页——处理器把线性地址当成物理地址输出到处理器的地址总线上, 对物理存储器进行寻址。 分页——线性地址空间太大,一般再采用分页机制将线性地址空间分页。 页面大小固定(一般长度为 4KB ,也有 4MB或 2MB 的), 映射到物理存储器(主存或磁盘存储器)中。 ◆分页时线性地址组成——三个部分: 页目录D31~D22 :页目录有 4KB 大小,最多保存 1024个 PDE(页目录入口 ) ,

每个 PDE 为 32 位 (4个字节 ) ; 页表 D21~D12 :页表为 4KB 大小,最多保存 1024个 PTE(页表入口 ) ,每个 PTE 有 32 位( 4个字节); 页面 D11~D0 :页面为 4096个连续的字节地址空间。 ◆线性地址转换成物理地址——三级的级联映射:

由页目录中的 PDE映射得到页表, 由页表中的 PTE映射得到页面, 由页面映射得到存储单元的物理地址。

Page 105: 第 3 章 半导体存储器

2. 分段分页管理(续) 整个逻辑地址 -线性地址 -物理地址的映射关系如下图所示。 ◆ 通过分段机制,将逻辑地址转换成线性地址;◆通过分页机制,将线性地址转换成物理地址。◆缺页异常: “如果包含在线性地址中的页面不在当前的内存中(称为 缺

”页 ),就产生缺页异常中断,启动 I/O 系统,把该页从辅 助存储器调入内存,以供 CPU 访问;◆替换:若内存已满,则按相应的替换算法先将内存中暂不运行的某页 送回辅助存储器,再将所需的页面从辅存调入内存。

Page 106: 第 3 章 半导体存储器

2. 分段分页管理(续) 页面大小控制——从第五代微处理器开始,可通过控制寄存器 CR4的 D4位(即

CR4.4 )控制定义为 4MB( 32 位线性地址处理器)或 2MB( 36 位线性地址处理器)。4MB页面设置时,取消页表项,页面直接从页目录中一个或多个 PDE映射得到。其地址映射关系如下图所示。

从第六代微处理器开始,地址总线扩展到 36根,允许通过扩展寻址进行 4KB页面或2MB页面的线性地址转换。

Page 107: 第 3 章 半导体存储器

3. 保护模式下的操作 段描述符不仅为处理器提供了段的位置,还设置了段的类型、长度限制、基于不同访问权限的特权级等。 ◆要实现分段保护机制,必须设置控制寄存器 CR0的 D0 位即 CR0.PE (保护 允许位)为 1 ;◆特权级:由段选择子的最低 2 位定义,有 4个特权级。◆分页允许: CR0的 D31 位即 CR0.PG 设置为 1 则允许分页,自动实行分页保 护,页面有两个特权级。 段页保护可对操作系统、应用软件提供支持,能用于软件设计的各个阶段,以辅助确定、检测在设计时潜伏的问题。

Page 108: 第 3 章 半导体存储器

3. 保护模式下的操作(续) 段描述符概述

Page 109: 第 3 章 半导体存储器

3. 保护模式下的操作(续) 系统段描述符的 D22D21D20 为 000,D12=0; 代码段描述符的 D22 表示缺省操作数大小: 为 1采用 32 位地址及 32或 8位操作数,为 0采用 16位地址及 16或 8位操作数 ) ;

D11~D8表示 1CRA(C= 一致性、 R= 可读性、 A= 可访问性 ) ; 数据段D22 表示 B大小: 1=32 位的段, 0=16位的段);

D11~D8为 0EWA( E=扩展方向、 W= 可写性、 A= 可访问性)。 段描述符的基地址域 32 位:分在三处,不连续; 定义了段首 (段的第 0号字节 ) 在 4GB线性地址空间的位置。 段的基地址应与 16字节的边界对齐 (即 32 位地址中的低 4位应为 0000) ,以避 免产生总线周期分裂,提高对存储器的访问速度。 在保护模式下,所有对存储器的访问操作都要在存储器访问周期开始之前进行检查,以验证是否满足不同的保护权限;非法的操作将会产生一个异常来进行处理。 保护检查与地址变换并行进行,不会带来操作上的延迟。

Page 110: 第 3 章 半导体存储器

3. 保护模式下的操作(续) (1) 段界限检查 20 位的段界限域可防止程序或过程寻址到段之外的存储区域。

◆段界限的大小:与密度位 G 的设置有关—— ▲当 G 为 0 时,段长度以字节为单位,有限段界限的范围从 0到FFFFFH, 段长最大为 1MB; ▲当 G 为 1 时,段长以 4KB(=212) 为单位,有限段界限范围从 0 到 FFFF FFFFH ,段长最大为 4GB。

堆栈段一般采用向下伸展,即数据段描述符的类型码中 E(D10)=1。 有限段界限是指段不允许访问的最后一个地址,即有效偏移量范围—— 从有限段界限加 1到 FFFFFH(标志位 B=0情况 ) , 或有限段界限加 1到 FFFF FFFFH(标志位 B=1情况 ) 。 段界限检查能够检测出诸如代码混乱、标注出错和无效指针计算之类的 程序错误,并容易确认这类错误发生的原因。否则,这些错误可能改写 其它段中的代码和数据。

Page 111: 第 3 章 半导体存储器

3. 保护模式下的操作(续) (2) 类型检查 段描述符的标志位 S和类型域包含类型信息。 ◆ S位说明是系统段 (=0) 还是代码段 - 数据段 (=1)描述符; ◆类型域有 4位,用于定义系统 / 代码 - 数据段描述符的不同类型 (共有 24=16种 ) 。 ◆在处理段选择子和段描述符时处理器将检查类型信息,据此可以检测 出程序错误。 特定类型的段寄存器只能装载相关类型的段选择子—— CS寄存器只能装载代码段选择子,只有可写段的段选择子才能装载到 SS段寄存器,等等。 只能以预先定义的方式通过指令来使用某些段,通常无法用指令去读一个可执行的代码段,等等。 某些类型的指令只能访问一些特定类型的段或门。如远跳转指令 JMP 和远调用指令 Call 只能访问一个代码段、任务状态段、调用门或任务门, IDT( 中断描述符表 )入口必须是中断、自陷或任务门,等等。

Page 112: 第 3 章 半导体存储器

3. 保护模式下的操作(续) (3) 特权级检查 四种特权级:分段保护机制提供的,编号从 0 到 3 ,号数越大特权级越低。 ◆在一个计算机系统中,操作系统内核之类的具有特定要求的程序和数 据被存放在特权级为 0 的段中,受到严格保护; ◆其他程序和数据,根据其重要性存放在不同特权级的段中; ◆普通用户程序和数据,存放段的特权级最低 (为 3) ,所受约束最少。 通过使用特权级,处理器防止一个较低特权级的程序或任务去访问拥有较高特权级的段。 特权级类型:在代码段和数据段之间进行检查的特权级通常有三类—— 当前特权级 CPL :当前运行的程序(或任务)的特权级,保存在 CS或 SS的 D1D0 位,通常等于被取指的代码段的特权级。

描述符特权级 DPL :一个段(或门)的特权级,保存在段(或门)描述符的 DPL域中,表示该段被访问时所要求的特权级。

请求特权级 RPL :说明段选择子的另一种特权级,保存在段选择子的D1D0 位。

Page 113: 第 3 章 半导体存储器

3. 保护模式下的操作(续) 访问允许:当前执行的程序企图访问一个数据段(访问非一致代码段、调用门、任务状态段的情况相同)时,段的 DPL 便与当前程序的段选择子的 CPL(和 RPL) 作比较,只有当 CPL(和 RPL) 的特权级高于 DPL 时程序才能访问该数据段。 ◆改变 CPL :当程序从访问非一致代码段切换到特权级较低的代码段时, 处理器改变 CPL;◆一致性代码段:一致性代码段主要用于数学库和异常句柄等代码模块, 以支持无须受到访问保护的具有系统特性的应用程序。◆访问一致性代码段: CPL 的特权级可以低于被访问段的 DPL ,并且

CPL 不 能改变。◆通过调用门访问代码段(一致性或非一致性):其 DPL说明能够访问该 段的程序应具有的最低特权级。 CPU对 RPL和 CPL 一同检查,即使请求访问一个段的程序具有有效的特权级,若其 RPL无效,该次访问也会被否定。

Page 114: 第 3 章 半导体存储器

3. 保护模式下的操作(续) (4) 指针有效性检查 保护模式下,所有指针必须有效,以维持段间和特权级间的保护和隔离。 ◆在执行指令期间, CPU自动检查访问权限(检查段描述符类型及特权级 DPL 与被执行的操作是否匹配)、读 /写权限(验证读写操作的许可性)、 指针偏移量是否超越段界限; ◆若特权级为 3且允许对齐检查 (CR0.AM=1和 EFLAGS.AC=1) 则自动检查偏移 量对齐情况; ◆通过执行指令 ARPL来检查指针的提供者是否允许访问该段。 (5) 页面级保护 页面级保护可与段保护联合使用,也可单独使用。页面的保护有两级,分别在页目录入口 PDE 和页表入口 PTE的 D2D1 中。 D2 位是 U/S (用户 /系统管理员)标志位。 ◆ U/S=0 为最高特权级模块,如操作系统或其它系统软件的内核、受保护的 系统数据; ◆ U/S=1 为最低特权级模块,如应用程序的代码和数据等。 D1 位是 R/W (读 /写)标志位。

R/W=0 为只读访问型页面, R/W=1 为读写访问型页面。

Page 115: 第 3 章 半导体存储器

3. 保护模式下的操作(续) 使用页面保护机制,必须建立两个代码段和数据段: ◆为管理员建立特权级为 0 的代码段和数据段, ◆为用户建立特权级为 3 的代码段和数据段,堆栈位于相应的数据段中。 ◆为了使用最少的段,管理员(以及用户)的代码段和数据段可以重叠, 都起于线性地址空间的 0 地址处。 4. 虚拟 8086 模式 虚拟 8086模式实际上是保护模式下的程序运行的一种特定模式。 ◆在虚拟 8086模式下,处理器仿真 8086 CPU ,运行环境与实地址模式基 本相同。 ◆通过设置 TSS (任务状态段)中的标志寄存器 EFLAGS 副本,使

EFLAGS.VM (虚拟 8086位)置位(为 1 ),使处理器切换至虚拟 8086模式。 ◆为实地址模式编写的任何程序,都可作为一个虚拟 8086模式任务,以多 任务的形式运行在常规保护模式下。

当运行多个虚拟 8086任务时,还可通过分页机制为每个虚拟 8086任务提供低1MB 的线性地址空间,然后将它们映射到内存的不同物理地址处。采用分页,对运行在虚拟 8086模式下的程序是透明的。

Page 116: 第 3 章 半导体存储器

3. 保护模式下的操作(续) 虚拟 8086模式任务的当前特权级 CPL 总是 3 (最低特权),虚拟 8086模式下运行的 8086程序只能是用户级的。

本 章 小 结 本章重点掌握存储器的层次结构( Cache- 主存和主存 - 辅存),理解高速缓存 Cache 和虚拟存储器的工作原理;掌握静态随机存取存储器

SRAM 结构、了解常见 SRAM 芯片及其用途;掌握动态随机存取存储器DRAM 的存储电路和结构、了解常用 DRAM 芯片性能;了解 NV RAM 非挥发存储器,掌握只读存储器的组成与分类、了解 EPROM和FLASH 芯片特性和使用,熟悉微机存储器的组织与管理。