第 6 章 存储系统 6.1 概述 6.1.1 存储器的层次结构 6.1.2 存储器的分类 6.1.3 存储器的基本组成 第 6 章 存储系统 6.1 概述 6.1.1 存储器的层次结构 6.1.2 存储器的分类 6.1.3 存储器的基本组成 6.2 RAM随机存储器 6.2.1 静态RAM 6.2.2 动态RAM 6.2.3 动态RAM的刷新 6.3 ROM只读存储器 6.3.1 掩膜只读存储器(MROM) 6.3.2 可编程的只读存储器(PROM) 6.3.3 可编程、擦除的 只读存储器(EPROM) 6.3.4 闪速存储器 6.4 存储器的设计与控制 6.4.1 常用的译码电路 6.4.2 内存容量扩充 6.4.3 设计实例 6.5 Cache高速缓冲存储器 6.5.1 高速缓存工作原理 6.5.2 替换策略 6.5.3 Cache读/写 6.6 虚拟存储器 6.6.1 基本原理 6.6.2 虚拟存储的实现 6.7 内存技术的发展 6.7.1 内存的技术特点 6.7.2 内存的硬件新技术
6.1 概述 6.1.1 存储器的层次结构 ● 存储层次结构:各种不同存储容量、不同存取速度的存储器,按一 定的体系结构组织起来,形成一个统一整体的存储 系统。 ● 高速缓冲存储器和内存间称为Cache-内存层次 ● 内存和外存间称为内存——外存层次 教学进程
(1)随机存取存储器RAM(Random Access Memory ) (2)只读存储器ROM(Read Only Memory) 6.1.2 存储器的分类 ● 按存储器在计算机系统中的作用分类 (1)高速缓冲存储器 (2)内存储器 (3)外存储器 ● 按存取方式分类 (1)随机存取存储器RAM(Random Access Memory ) (2)只读存储器ROM(Read Only Memory) (3)顺序存取存储器SAM(Sequential Access Memory) (4)直接存取存储器DAM(Direct Access Memory) 教学进程
6.1.2 存储器的分类(续) ● 按存储介质分类 (1)磁介质存储器 (2)半导体存储器 (3)光存储器 ● 按信息的可保存性分类 ● 按存储介质分类 (1)磁介质存储器 (2)半导体存储器 (3)光存储器 ● 按信息的可保存性分类 (1)易失性存储器 (2)非易失性存储器 教学进程
位 —— 二进制数的最基本单位,也是存储器存储信息的最 小单位。 6.1.3 存储器的基本组成 1. 内存储器的存储单元 位 —— 二进制数的最基本单位,也是存储器存储信息的最 小单位。 存储字——一个二进制数由若干位组成,当这个二进制数作为 一个整体存入或取出时这个二进制数称为存储字。 存储单元或内存单元——存放存储字的内存空间 存储体——大量存储单元的集合构成 在大多数计算机系统中,内存是以字节为单位编址的。 教学进程
内存储器的基本结构 地址 译码 驱动 电路 存 储 体 I/O 和 读 写 电 路 6.1.3 存储器的基本组成 2. 内存储器的基本结构 内存通常由存储体、地址译码驱动电路、I/O和读写电路组成。 地址 译码 驱动 电路 存 储 体 I/O 和 读 写 电 路 教学进程
6.2 RAM随机存储器 常用的半导体存储器 ● 双极型半导体存储器TTL 优点: 速度高,驱动能力强; 缺点: 集成度低,功耗大,价格高。 优点: 速度高,驱动能力强; 缺点: 集成度低,功耗大,价格高。 ●金属氧化物场效应管(Metal Oxide Semiconductor,MOS)存储器 优点:集成度高,功耗小成本低; 缺点:速度比较低。 目前普遍使用的都是MOS型存储器。 教学进程
6.2 RAM随机存储器 RAM存储器包括 双极型 RAM 和 MOS 型 RAM; MOS型RAM又分 静态 RAM,即SRAM(Static RAM) 动态 RAM,即DRAM(Dynamic RAM) 教学进程
单元电路由六个MOS管组成,编号为T1~T8。T1、T2两个组成双稳态触发器,这是单元电路的基本存储单元。 6.2.1 静态RAM 单元电路由六个MOS管组成,编号为T1~T8。T1、T2两个组成双稳态触发器,这是单元电路的基本存储单元。 T3、T4为负载管;T3和T1构成一个反向器,负载T4和T1构成另外一个反向器,这两个反向器构成一个双稳态触发器。 1. 六管静态存储电路 (I/O) T8 X地址译码线 T7 A B T6 Vcc T3 T4 T1 T2 T5 接Y地址译码器 六管SRAM基本存储电路 教学进程
6.2.1 静态RAM T5、T6为控制管,接X地址选择线(又称字线),当X地址选择线为高电平时,T5、T6导通,使双稳态电路与读/写电路连接,可对其进行写入或读出。当X地址选择线为低电平时,T5、T6断开,双稳态电路与读/写电路断开,T1、T2存储信息保持原状态不变。 1. 六管静态存储电路 (I/O) T8 X地址译码线 T7 A B T6 Vcc T3 T4 T1 T2 T5 接Y地址译码器 六管SRAM基本存储电路 教学进程
1.六管静态存储电路 ●(1)写操作 如果要写入1,则在I/O线上输入高电平,在I/O线上输入低电平,它们通过T5、T7和T6、T8分别与A、B端相连,使A=1,B=0。则T1截止,T2导通。当输入信号和地址选择信号消失后,T5、T6 、T7、T8截止,T1、T2保持被写入的状态。只要不断电,写入的信息就保持不变。 ●(2)读操作 只要某个存储单元被选中,则T5、T6 、T7、T8导通,存储信号被送到 I/O和I/O线上。读出时I/O和I/O线接到一个差动放大器上,由电流的方向可以判定存储单元的信号是“1”还是“0”。 教学进程
6.2.1 静态RAM 2. SRAM芯片 A0~A12 :地址信号线 D0~D7 :双向数据线8位 CS1、CS2:片选信号 NC A 12 7 6 5 4 3 2 1 D GND — V CC WE CS 8 9 11 OE 10 1 28 2 27 3 26 4 25 5 24 6 23 7 22 8 21 9 20 10 19 11 18 12 17 13 16 14 15 A0~A12 :地址信号线 D0~D7 :双向数据线8位 CS1、CS2:片选信号 OE :读控制信号 WE :写控制信号 Vcc:+5V:工作电源 GND :地线 NC :空端 教学进程
● 写入时: 栅极电容接字选线。 字选线为1,T1导通,写入信 号由数据线存入电容C中; 6.2.2 动态RAM 1. 单管动态存储电路 ● 单管存储电路由一个MOS管T1和 一个电容C构成。 ● 写入时: 栅极电容接字选线。 字选线为1,T1导通,写入信 号由数据线存入电容C中; ● 读出时: 选择线为1,T1导通, 存储在电容C上的电荷,通过 T1输出到数据线上,通过读 出放到器即可得到存储信息。 字选线 数据线 T1 C 教学进程
RAS :行地址锁存信号CAS :列地址锁存信号 6.2.2 动态RAM 2.DRAM芯片 NC D IN WE RAS A A2 A1 GND — V CC CAS OUT A6 A3 A4 A5 A7 1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9 DRAM2164A外部引脚图 A0~A7 :地址线,输入 DIN、DOUT:数据输入和输出线 RAS :行地址锁存信号CAS :列地址锁存信号 WR :写允许信号 教学进程
6.2.2 动态RAM DRAM芯片四个控制信号的功能 CS2 数据传输状态 1 × 写入数据 读出数据 三态 (高阻) CS1 WE OE × 写入数据 读出数据 三态 (高阻) CS1 WE OE 教学进程
6.2.3 动态RAM的刷新 1.刷新方式 刷新时间=存储矩阵行数×刷新周期 这里刷新周期是指刷新一行所需要的时间 ●(l)集中刷新方式 读写操作 刷新操作 3935 64个周期(32µs) 3936个周期(1968µs) 刷新间隔(2ms) 3936 3999 2 1 集中刷新方式示意图 教学进程
——把刷新操作分散到每个存取周期内进行,系统的存取周期被分为两部分,前一部分时间进行读写操作或保持,后一部分时间进行刷新操作。 1.刷新方式 ●(2) 分散刷新方式 ——把刷新操作分散到每个存取周期内进行,系统的存取周期被分为两部分,前一部分时间进行读写操作或保持,后一部分时间进行刷新操作。 分散刷新方式示意图示意图 周期0 读写 周期63 刷新间隔(64µs) 刷新 周期2 周期1 教学进程
——刷新操作平均分配到整个最大刷新间隔时间内进行,故有: 1.刷新方式 ●(3) 异步刷新方式 ——刷新操作平均分配到整个最大刷新间隔时间内进行,故有: 相邻两行的刷新间隔=最大刷新间隔时间+行数 异步刷新方式 30.75µs 读写 31.25µs 刷新间隔(2ms) 刷新 0.5µs 教学进程
刷新不依赖于外部的访问,对CPU是透明的。 刷新通常是一行一行地进行的,刷新操作时仅需要行地址, 不需要列地址。 6.2.3 动态RAM的刷新 2. 刷新控制 ●当刷新请求和访存请求同时发生时,应优先进行刷新操作 。 DRAM刷新要注意: 刷新不依赖于外部的访问,对CPU是透明的。 刷新通常是一行一行地进行的,刷新操作时仅需要行地址, 不需要列地址。 刷新操作类似于读出操作,但又有所不同。 考虑刷新时,应当从单个芯片的存储容量着手,而不是从 整个存储器的容量着手。 教学进程
6.3 ROM只读存储器 6.3.1 掩膜只读存储器(MROM) 在生产过程中直接将用户要求信息中写入,写入之后无法改变其内容。 优点:可靠性高,集成度高,形成批量之后价格便宜; 缺点:用户对制造厂商的依赖性过大,灵活性差。 6.3.2 可编程的只读存储器(PROM) 在制作时不写入任何信息,但允许用户利用专门的设备(编程器)写入自己的程序,写入是一次性的。写入后,其内容将无法改变。 双极型PROM 有两种结构: ● 一种是熔丝烧断型; ● 一种是PN结击穿型; 教学进程
可编程、可擦除的只读存储器(EPROM) 6.3.3 可编程、可擦除的只读存储器(EPROM) EPROM(Ereaasble PROM)不仅可以由用户利用编程器写入信息,而且可以对其内容进行多次改写。 EPROM又可分为两种: ● 一种紫外线擦除(UVEPROM); ● 一种是电擦除(EEPROM); 6.3.4 闪速存储器(Flash Memory) ●可在不加电的情况下长期保存信息; ●又能在线进行快速擦除与重写; ●兼备了EEPROM和RAM的优点。 教学进程
6.4 存储器的设计与控制 6.4.1 常用的译码电路 1. 内存和CPU之间的硬连接 主存容量 CPU 2k字 字长n位 ● 三组连线:地址总线(AB)、数据总线(DB)和控制总线(CB), ● 把内存看作一个黑盒子,存储器地址寄存器(MAR) 和存储 器数据寄存器(MDR)是内存和CPU之间的接口 。 主存容量 2k字 字长n位 CPU MAR MDR 地址总线 k位 数据总线 n位 Read Write MFC 教学进程
6.4.1 常用的译码电路 2. 译码电路 ● CPU要实现对存储单元的访问,首先要选择存储芯片,即进行片选, 然后再从选中的芯片中根据地址码选择出相应的存储单元,以进行 数据的存取,这称为字选。 ● 片选信号的译码方法又可分为全译码法和部分译码法。 ● 全译码法——除片内寻址外的全部高位地址线都作为地址译码器的 输入,译码器的输出作为各芯片的片选信号,将它们 分别接到存储芯片的片选端,实现对存储芯片的选择。 ● 部分译码——用除片内寻址外的高位地址的一部分来译码产生片选 信号。 教学进程
内存容量扩充 总片数=(1K×8)/ (1K×1)=8(片) 6.4.2 内存容量扩充 总片数=总容量/(容量/片) 位扩展——只在位数方向扩展(加大字长),而芯片的字数和存储 器的字数是一致的。位扩展的连接方式是将各存储芯片的地 址线、片选线和读写线相应地并联起来,而将各芯片的数据 线单独列出。 1.位扩展 用1K×l的SRAM芯片组成1K×8的存储器,所需芯片数为: 总片数=(1K×8)/ (1K×1)=8(片) 例如 教学进程
6.4.2 内存容量扩充 位扩展连接举例 地址总线 数据总线 CS 8 7 WE 6 I/O 5 4 3 2 A0 1 1024×1 … 6.4.2 内存容量扩充 位扩展连接举例 8 D7 I/O 7 6 5 4 3 2 1024×1 1 … A0 A9 地址总线 数据总线 D0 …… CS WE 教学进程
字扩展 总片数=(4K×8)/ (1K×8)=4(片) 6.4.2 内存容量扩充 2. 字扩展 ●字扩展——仅在字数方向扩展,而位数不变。字扩展将芯片的 地址线、数据线、读写线并联,由片选信号来区分各个芯片。 用1K×8的SRAM组成4K×8的存储器,所需芯片数为: 总片数=(4K×8)/ (1K×8)=4(片) 例如 教学进程
6.5 Cache高速缓冲存储器 6.5.1 高速缓存工作原理 ● 程序访问的局部性——CPU对局部范围的存储器地址频繁地访问, 而对此范围以外的地址访问甚少的现象。 ● 高速缓冲技术——利用程序的局部性原理,把程序中正在使用的 部分(活跃块)存放在一个高速的容量较小的Cache 中,使CPU的访存操作大多数针对Cache进行,从而 使程序的执行速度大大提高。 ● Cache介于CPU和内存之间,将Cache和内存有机的结合起来,借助 于辅助硬件组成Cache——内存层次。Cache的存取速度接近于CPU 的工作速度,但是容量较小。 教学进程
6.5.2 替换策略 替换算法主要有: 随机替换 最不经常使用(LFU)算法 近期最少使用(LRU)算法 教学进程
当CPU发出读请求时,如果Cache命中,就直接对Cache进行 读操作,与内存无关; 6.5.3 Cache读/写 1. Cache的读操作 当CPU发出读请求时,如果Cache命中,就直接对Cache进行 读操作,与内存无关; 如果Cache不命中,则仍需访问内存,并把该块信息一次从 内存调入Cache内。 若此时Cache已满,则须根据替换算法,用这个块替换掉 Cache中原来的某块信息。 教学进程
6.5.3 Cache读/写 2. Cache的写操作 Cache中的内容只是主存中部分内容的一个副本,因此Cache中的内容应该与主存中数据保持一致。但是对Cache的写入将更改其中的内容,就会遇到如何保持Cache与主存中的内容一致的问题,处理的方法主要有以下三种: 写回法 全写法 写一次法 教学进程
6.6 虚拟存储器 6.6.1 基本原理 ● 虚拟存储器主要指: 内—外存层次虚拟存储器。 虚拟存储器建立在内—外存层次上,由附加硬件装置及操作系统存储 管理软件组成的存储体系。虚拟存储器将内存或外存的地址空间统一 编址,形成一个庞大的存储空间。 ● 用户编程的地址称为虚地址或逻辑地址,实际的内存单元地址称为实 地址或物理地址。 ● 程序运行时,CPU以虚地址来访问内存,由辅助硬件找出虚地址和实地址之间的对应关系,并判断这个虚地址指示的存储单元内容是否已装入内存。如果已在,则通过地址变换,CPU可直接访问内存的实际单元;如果不在,则把包含这个字的一个程序块调入内存后再由CPU访问。如果内存已满,则由替换算法从内存中将暂时不运行的一块调回外存,再从外存调入新的一块到内存。 教学进程
6.6.2 虚拟存储的实现 1.页式虚拟存储器 ● 程序虚地址分为两个字段:高位字段为虚页号,低位字段为页内地址。虚地址到实地址之间的变换是由页表来实现的。 ● 页表是一张存放在内存中的虚页号和实页号的对照表,记录着程序的虚页调入内存时被安排在内存中的位置. ● 页表中的每一行记录了与某个虚页对应的若干信息,包括虚页号、装入位和实页号等。 教学进程
页表基址寄存器和虚页号拼接成页表索引地址。 6.6.2 虚拟存储的实现 页表基址寄存器 页表基地址 虚地址 + … 实地址 页表 1 页内地址 实页号 虚页号 页表基址寄存器和虚页号拼接成页表索引地址。 教学进程
6.6.2 虚拟存储的实现 2. 段式虚拟存储器 ● 段式虚拟存储器中的段是按照程序的逻辑结构划分的,各个段的长度 因程序而异。为了把程序虚地址变换成内存实地址,需要一个段表。 ● 段表中每一行记录了某个段对应的若干信息,包括段号、装入位、段 起点和段长等。 ● CPU根据虚地址访存时,首先将段号与段表的起始地址相拼加,形成 访问段表对应行的地址,然后根据段表内装入位判断该段是否已调入内 存。若已调入内存,从段表读出该段在内存中的起始地址,与段内地址 (偏移量)相加,得到对应的内存实地址。 教学进程
6.6.2 虚拟存储的实现 + 段式虚拟存储器地址转换 段表基址寄存器 段号 段内地址 虚地址 内存地址 实地址 段表 段表基地址 … 6.6.2 虚拟存储的实现 段表基址寄存器 段表基地址 段号 段内地址 虚地址 + … 内存地址 实地址 段式虚拟存储器地址转换 段表 教学进程
首先将段表起始地址与段号合成,得到段表地址; 然后从段表中取出该段的页表起始地址,与段内页号合成, 得到页表地址; 6.6.2 虚拟存储的实现 3. 段页式虚拟存储器 ● 段页式虚拟存储器。将程序按其逻辑结构分段,每段再划分为若干 大小相等的页;内存空间也划分为若干同样大小的页。 ● 虚存和实存之间以页为基本传送单位,每个程序对应一个段表, 每段对应一个页表。 ● CPU访向时,虚地址包含段号、段内页号、页内地址三部分。 首先将段表起始地址与段号合成,得到段表地址; 然后从段表中取出该段的页表起始地址,与段内页号合成, 得到页表地址; 最后从页表中取出实页号,与页内地址拼接形成内存实地址。 教学进程
6.7 内存技术的发展 6.7.1 内存的技术特点 ● 内存条实际上是一条焊有多片存储芯片的印刷电路板,插在主板内 存插槽中。 6.7.1 内存的技术特点 ● 内存条实际上是一条焊有多片存储芯片的印刷电路板,插在主板内 存插槽中。 ● 单列直插存储模块SIMM(Single In一Line Memory Module)和 双列直插存储模块DIMM(Dual Inline Memory Module); SIMM有30线和72线两种,容量通常有1MB、4MB、8MB、16MB、32MB DIMM内存条两边均有金属引脚线,每边84线,双边共有84×2=168 条引脚,故而常称为168线内存条。其容量有32MB、64MB、128MB 教学进程
FPM DRAM (Fast Pagemode DRAM 快速页模式随机存储器) 6.7.2 内存的硬件新技术 FPM DRAM (Fast Pagemode DRAM 快速页模式随机存储器) EDO DRAM (Extended Data Output DRAM 扩展数据输出DRAM) SDRAM (Synchronous DRAM,同步DRAM) DDR SDRAM (Double Data Rate SDRAM) RDRAM (Rambus DRAM) 教学进程
● 小结 第6章 存储系统 ● —— 重要知识点 6.1 概述 6.4 存储器的设计与控制 6.4.1 常用的译码电路 第6章 存储系统 6.4 存储器的设计与控制 6.4.1 常用的译码电路 ● 6.4.2 内存容量扩充 6.4.3 设计实例 6.5 Cache高速缓冲存储器 6.5.1 高速缓存工作原理 ● 6.5.2 替换策略 6.5.3 Cache读/写 6.6 虚拟存储器 ● 6.6.1 基本原理 6.6.2 虚拟存储的实现 6.7 内存技术的发展 6.7.1 内存的技术特点 6.7.2 内存的硬件新技术 6.1 概述 6.1.1 存储器的层次结构 6.1.2 存储器的分类 6.1.3 存储器的基本组成 6.2 RAM随机存储器 ● 6.2.1 静态RAM ● 6.2.2 动态RAM ● 6.2.3 动态RAM的刷新 6.3 ROM只读存储器 ● 6.3.1 掩膜只读存储器 6.3.2 可编程的只读存储器 6.3.3 可编程、擦除的只读存储器 6.3.4 闪速存储器 ● —— 重要知识点 教学进程