第 3 章 微机存储器教 案作者:李芷
2003.5.10
《微机原理与接口技术》
第 3章 微机存储器存储器是计算机实现“记忆”功能的部件,用来存放数据和程序。
微机的存储器系统一般是以分级进行组织的,典型的存储系统是,高速缓冲存储器、内(主)存储器和外
(辅)存储器 三级分层次的体系结构。
3.1 半导体存储器
3.2 存储器体系结构
3.1 半导体 存储器
3.1.1 半导体存储器的分类及其特点
3.1.2 存储器芯片的基本组成
3.1.3 存储器与系统的连接
3.1.4 微机内存储器组织
3.1.1 半导体存储器的分类及其特点
1,存储器的性能指标由于半导体存储器具有 集成度高,功耗低,可靠性好,存取速度快,
成本低 等优点,而作为构成存储器的最主要的存储器件 。
◆ 存储容量,存储器容量 ( 存储空间的大小 ) 是存储能力的指标 。 存储器以字节为单位编址,用字节数表示存储器容量 。 内存空间的大小受到微机系统地址位数的限制 。
◆ 存取速度,存储器的存取速度可用最大存取时间或存取周期来描述 。
存储器的存取时间定义为从接收到存储单元的地址码开始,到它取出或存入数据为止所需时间,单位为纳秒 ( ns) 。
◆ 功耗,功耗指每个存储单元的功耗,单位为微瓦 /单元 ( μW/单元 ),
或给出每块芯片的总功耗,单位为毫瓦 /芯片 ( mW/芯片 ) 。 它不仅涉及到消耗功率的大小,也关系到芯片的集成度 。
◆ 可靠性,可靠性是指存储器对电磁场,温度等外界变化因素的抗干扰能力,一般用平均无故障时间来描述 。 半导体存储器的平均无故障时间通常在几千小时以上 。
◆ 价格,微机的主要特点是体积小,重量轻,价格便宜,使用方便 。
3.1.1 半导体存储器的分类及其特点
2,半导体存储器的分类掩膜 ROM
可编程 ROM(PROM)
紫外线擦除可编程 ROM(EPROM)
电擦除可编程 ROM(E2PROM)
快擦写存储器 ( Flash Memory)
半导体存储器
(Memory)
随机存取存储器
(RAM)
只读 存储器
(ROM)
双极型 RAM
MOS型 RAM
静态 RAM
(SRAM)
动态 RAM
(DRAM)
3.1.1 半导体存储器的分类及其特点
3,常用半导体存储器件的特点
◆ 双极型 RAM以晶体管触发器作为基本存储电路,管子较多 。 它存取速度快,但和 MOS型 RAM相比集成度低,功耗大,成本高,主要用于速度要求较高的微机和大中型机 。
◆ MOS型 RAM存取速度不及双极型 RAM,但制造工艺简单,集成度高,
功耗低,价格便宜 。 静态 RAM( SRAM) 以双稳态触发器作为基本存储电路,集成度较高 。 动态 RAM ( DRAM) 利用电容电荷存储信息,
由于采用的元件比静态 RAM少,集成度更高,功耗更小,但需要附加刷新电路 。 从总的性能来看,DRAM优于 SRAM。 一般小容量的存储器系统采用 SRAM,大容量的存储器系统采用 DRAM。 。
◆ EPROM是一种可用紫外线进行多次 (脱线 )擦除,用专门的编程器重新固化信息的 ROM。 EPROM的编程速度较慢,但由于它可以多次改写,特别适合科研工作的需要 。
◆ E2PROM是一种可用特定电信号进行 ( 在线 ) 擦除和编程的 ROM。
E2PROM比 EPROM使用更加方便,但存取速度较慢,价格也较高 。
◆ 快擦写存储器是在 E2PROM基础上发展的,但比 E2PROM擦除和改写速度快得多 。
3.1.2 存储器芯片的基本组成
1,基本存储电路基本存储电路是存储一位二进制信息的电路,由一个具有两个稳定状态
(,0” 和,1” ) 的电子元件组成 。
T
Cg Cd
位线
( 数据线 )
字线
T4
T5 A
T3
T2T1
B T6位线 1
(数据线 )
Vcc
字线位线 2
(数据线 )
3.1.2 存储器芯片的基本组成
2,存储器芯片的组成半导体存储器芯片是把成千上万个基本存储电路集成在数平方厘米上的大规模集成电路,通常由存储矩阵、单元地址译码器、数据缓冲 /驱动和控制逻辑四部分组成。
D0
A0
A1
Am-1
..
.
..
.
Dn-1
D1.
.....
基本存储电路组成的存储矩阵(体)
片选通 读 /写选通数据缓冲器地址译码器读 /写控制逻辑
⑴ 数据线的连接芯片的数据端可以直接和 CPU的数据总线上相应数据位挂接起来 。
⑵ 地址线的连接芯片的地址端可以直接和 CPU的地址总线上从 A0开始的低位地址部分的相应地址线挂接起来 。
⑶ 读 /写控制线的连接把存储器读 /写操作控制信号 (RD,WR和 M/IO)进行逻辑组合,产生存储器读 MEMR和存储器写 MRMW信号,
分别接存储器芯片的输出允许 OE和写允许 WE信号 。
3.1.3 存储器与系统的连接
1,数据线、地址线和读 /写线的连接当单个存储器芯片的容量不能满足系统要求时,需要用多片组合,以扩充存储器的容量 。 若扩充存储单元 ( 以字节为单位 ) 的位数,称为位扩充,若扩充存储单元的个数,
称为字节扩充 。
⑴ 位扩充方法
⑵ 字节扩充方法
( 示意图 )
3.1.3 存储器与系统的连接
2,存储器容量扩充的连接方法
A1 ~A10
CS WE
A9~A0
2114
(1K× 4)
D3~D0
CS WE
A9~A0
2114
(1K× 4)
D3~D0
D3~D0D7~D4
A9~A0
MEMW
译码器存储器字节扩充连接示意图
MEMW
MEMR
A19
A18
8088
A15 ~A0
D7 ~D0
2-4
译码器
CS OE WR
6116(2)
A10~A0D7~D0
CS OE WR
6116(1)
A10~A0D7~D0
CS OE
27512(2)
A15~A0D7~D0
CS OE
27512(1)
A15~A0D7~D0
16 16 11 11
CPU对存储单元的寻址必须要保证其惟一性 。 当存储器由多个存储器芯片组成时,存储单元寻址分两级进行选择:首先选择存储器芯片,产生存储器芯片选通信号;然后在片选信号有效的前提下,从该芯片中选择某一存储单元 。 片内寻址是根据片内地址码由芯片内部地址译码电路寻址实现的,而片选则是根据提供的片选地址码,通过存储器外部的译码电路产生的 。 产生存储器片选信号的方法有,
⑴ 线选法
⑵ 局部(部分)译码法
⑶ 全局 ( 完全 ) 译码法
3.1.3 存储器与系统的连接
3,片选信号的产生方法
3.1.4 微机内存储器组织
1,微机内存空间结构系统总线
ROM模块 RAM模块模块 i 模块 j 模块 n模块 1
由多个模块(板)构成内存储器空间
3.1.4 微机主存储器组织
2,内存储器模块(板)结构地址译码地址总线
MEMR
MEMW
READY
模块选择存储器接口数据控制地址数据总线存储芯片矩阵
3.1.4 微机主存储器组织
3,IBM PC微机内存空间分配
40KB基本 ROMFFFFFH
F6000H
C8000H
C0000H
A0000H
40000H
00000H
256KB
ROM
空间
768KB
RAM
空间640KB基本内存256KB RAM( 系统板)
384KB RAM ( 选件板)
128KB显 示缓冲区硬盘驱动程序( 4KB)
3.1.4 微机主存储器组织
4,微机内存储器设计要点
◆ 芯片的选择
◆ 总线的负载
◆ 速度的匹配
◆ 地址的分配
( 要保证对存储器寻址的惟一性 )
在高性能微机系统中,高速度、大容量、低价格 是评价存储器性能和存储体系设计的三大主要指标。
提高存储 器 体系性能的技术:
为提高信息吞吐量的 多体存储器( 并行主存 )结构为提高 CPU访存速度的 多体高速缓冲存储器( Cache)
为扩大编程逻辑空间的 虚拟存储器 ( Virtual Memory)
存储器体系结构示意图
3.2.1 并行主存 储器 结构
3.2.2 高速缓冲存储器
3.2.3 虚拟存储器
3.2 存储器体系结构微机存储器体系结构
CPU
主存辅存
Cache
Cache控制器 MMU
DOS存储管理
Cache- 内存-辅存三级存储层次结构
3.2.1 并行主存 储器 结构众所周知,存储器本身的速度往往跟不上 CPU对它的速度要求,尤其是在高速的,流水型处理的微机系统中更加突出,这成为限制系统速度的一个瓶颈 。 多体存储器结构,即并行主存储器结构,可以加速 CPU
访问主存的平均速度,有益于解决 CPU和主存的速度差别 。
存储器结构最简单的是单体单字存储器,CPU一次只能访问一个存储字 。 而并行主存储器的基本原理是:采用字长 w位的 n个容量相同的存储器并行连接组成一个更大的存储器 。 这种存储器在一个存取周期内并行存取 n个字,虽然存储元件仍保持原有速度,但单位时间内存储器提供的信息量扩大了 n倍,有效地提高了信息吞吐率 。
并行主存储器结构有:
◆ 单体多字并行主存
◆ 多体交叉存取并行主存单体多字 并行主存 储器 结构单体多字结构是多个并行存储器共用一套地址寄存器和地址译码器,多个字使用同一个的地址编码并行访问各自对应单元,这样 CPU每访问一个地址就可以同时读 /写多个存储字 。
单体多字并行主存非常适用于向量运算类的特定环境 。 一个向量型操作数包含 n个标量操作数,例如,矩阵运算中的 aibj=a0b0,a0b1,…,可按同一地址分别存放于 n个并行主存之中,在执行向量运算指令时,可以一次并行存取,这样访问主存的速率就提高了 n倍 。
M0 M1 Mn……
n× w
w位 w位 …… w位地址寄存器地址地址译码器多体交叉存取 并行主存 储器 结构多体交叉并行主存是把大容量存储器分成 n个容量相同,有各自的地址寄存器,数据线,时序控制,进行独立编址的存储体 ( 所以称为多体 ) 。 各存储体地址编号采用交叉方式 ( 即交叉编址 ),就是将一套地址码按顺序交叉地横向分配给各个并行存储体 。
多体并行存取是指以 n为模的交叉存取 。 把一段连续的程序或数据,
也按照交叉编址方式类似地交叉存放在 n个存储体中,对并行存储体采取分时访问的时序 。
多体交叉存取方式,需要一套多体存储器控制逻辑 ( 简称存控部件 ),比较复杂 。 采用多体交叉存取方式,CPU可以流水式寻址,使各存储体并行工作,减少等待时间,甚至能达到零等待状态 。 所以多体交叉存取很适合于支持流水线处理方式,是高速流水型微机典型的主存结构 。
3.2.2 高速缓冲存储器如果要求存储器的速度非常高,主存存储器全部采用高速存储器芯片组成,将会使系统的价格大大提高 。 通常的做法是用一些高速的静态 RAM
( SRAM) 组成小容量的存储器,称为高速缓冲存储器 ( Cache),而用廉价的速度稍慢的动态
RAM( DRAM) 组成大容量的主存 。 这样就构成了一个两级存储器结构,Cache— 主存 。 Cache
位于主存与 CPU的通用寄存器组之间,其容量一般为 ( 8~32) KB。 高档微处理器甚至在芯片内又集成了 1~2个 Cache,形成两级 Cache结构 。
Cache存储系统的基本结构
Cache存储系统基本结构
Cache
主存储器地址总线多字宽不命中
CPU
Cache
Cache
替换控制
Cache
地址寄存器主存地址寄存器主存

Cache
地址变换数据总线单字宽命中
3.2.2 高速缓冲存储器
1,Cache地址映像方法
◆ 应用某种函数把主存地址映像到 Cache中定位,称作地址映像。当主存信息按这种映像关系装入 Cache后,访问主存的地址应变换为相应的 Cache地址。要能实现这一点,
将主存和 Cache的存储空间划分成若干大小相同的页(或称块) 。 由于主存空间大,Cache空间小,因此,必须让
Cache的一个页与主存的若干个页相对应,即若干主存地址将映射成同一个 Cache地址。
◆ Cache地址映像方式有 直接映像、全相联映像、组相联映像 三种。
Cache地址映像方法
◆ 直接映像,每个主存地址映像到 Cache中一个指定地址的方式。映像规则是:把 Cache分成 2N页,主存按同样大小顺序分页,再顺序分组,每组
2N页,主存的 I页号与 Cache的 J页号之间的对应关系为 J = I mod 2N,即以
2N为模的重复映像关系。直接映像方式地址变换速度快,比较简单,容易实现,但不够灵活,页冲突概率较高。
◆ 全相联映像,主存的每一个页可以自由映像到 Cache的任何一个页位置的方式。全相联映像方式比直接映像方式灵活,可以达到很高的命中率。
但是地址映像速度很慢,控制复杂,实现比较困难。
◆ 组相联映像,又称为页组映像方式,映像规则是:将主存和 Cache都以页为单位顺序分组。 Cache有 2N页,分成 2I组,主存有 2M页,以 2 I页分组,
即主存组内的页数和 Cache的组数相同。主存的各页与 Cache的组号之间有固定映像关系,但可以自由映像到对应 Cache组中的任何一页。
组相联映像方式是介于前两种映像方式的一种折衷方案。判断页命中和替换算法比全相联映像方式简单,映像定位比直接映像方式灵活,
页冲突率比直接映像方式低,命中率介于直接 映像和全相联映像方式之间。
3.2.2 高速缓冲存储器
2,Cache替换策略
◆ 先进先出( FIFO) 策略
FIFO按调入 Cache的先后决定淘汰的顺序,即在需要更新时,总是淘汰最先调入 Cache的页 。 这种方法容易实现,
系统开销 ( 为实现替换算法而系统花费的时间 ) 少,但不一定合理 。 因为有些页虽然调入较早,但仍可能在使用 。
◆ 近期最少使用 ( LRU) 策略为 Cache的各页建立一个 LRU( Least Recently Used) 表,
随时记录它们的调用情况 。 当需要替换时,将在最近一段时间内使用最少的页予以替换 。 显然,这是按调用频繁程度决定淘汰的顺序,比较合理,Cache的访问命中率较高 。
但是比 FIFO策略复杂,系统开销稍大 。
3.2.2 高速缓冲存储器
3,Cache读 /写过程
◆ 读操作,访主存时,一方面将主存地址送往主存,启动读主存,同时将主存地址送 Cache,按所用的映像方式从中提取 Cache地址。将相应的 Cache页的标记与主存地址中的主存页标记进行比较,如果二者相同,表明访问 Cache命中,从命中的 Cache页中读出数据,送往 CPU,不等主存读操作结束,就可继续下一次访存操作;如果标记不符合,或是按映像方式搜索完毕仍未找到相符的 Cache标记,
表明本次访问 Cache失败(不命中),则根据主存地址从主存中读取,送 CPU,
并考虑是否需要更新 Cache某页的内容。
◆ 读操作,Cache的写操作和读操作一样先要进行地址映像,在命中时才执行
Cache写操作,否则就是正常的主存写操作。 Cache写操作有两种写入方法。
一种方法称为标志交换方式 ( 或称写回法 ),先暂时只写入 Cache有关单元,并用标志予以注明,直到该页需要从 Cache中替换出来时,才一次性地写入主存 。
这种方式主要是为了不在快速写入 Cache的过程中插入较慢速的写主存操作,可以保持程序运行的快速性 。 但是,在页替换写回主存前,主存中没有这些对应的更改内容,与 Cache不一致,有可能导致失误 。
另一种方法称为写直达法,即每次写入 Cache的同时也写入主存,主存与 Cache始终保持一致性 。 这种方式比较简单,能保持主存与 Cache副本的一致性,但是这种方式要插入慢速访问主存操作,而且有些写入过程可能是不必要的 。
3.2.3 虚拟存储器
◆ 虚拟存储器 ( VM,Virtual Memory) 是建立在主存-辅存物理结构基础之上,由负责主存-辅存之间信息调度的硬件装置 —— 存储管理部件 ( MMU) 和操作系统的存储管理软件所组成的一种存储体系层次 。
◆ 主存-辅存存储系统,对于应用者来说,好像有一个比实际主存大得多的,可使编程空间不受限制的虚 ( 主 ) 存空间存在,并可用接近主存的速度在这个虚拟存储器上运行 。
◆ 虚拟存储器采用软件和硬件的综合技术,将主存,辅存的地址空间统一编址,用户采用逻辑地址 ( 虚地址 ) 分模块进行编程 。 所编程序和数据在操作系统管理下先送入辅存 ( 一般是磁盘 ),然后会自动地将当前急需运行的模块调入主存,供 CPU操作,其余暂不运行模块留在辅存中 。
◆ 虚拟存储器一般有 页式,段式,段页式 三种管理方式 。
页式虚拟存储器地址转换示意图实地址页表基址寄存器页表起始地址虚地址页表页表地址实页号 页内地址虚页号 页内地址段式虚拟存储器地址转换示意图段表基址寄存器段表起始地址虚地址实地址段表段号 段内地址段表地址主存地址段页式虚拟存储器地址转换示意图段表基址寄存器组段表 1起始地址段表 i起始地址段表 i
页表 j
虚地址 基号 段号 段内页号 页内地址实地址 实页号 页内地址