第 5章 微型计算机存储器系统结构
通过本章的学习,使学生掌握微型计算机中存储器的基本概念、存储器的系统组成以及高速缓冲存储器技术
了解半导体存储器的主要性能指标、半导体存储器的分类教学目的和教学要求,
重点:
SRAM和 DRAM的组成原理
高速缓冲存储器的组成原理
微型计算机中存储器的组成结构难点:
存储器与 CPU的连接及内存条的组成
高速缓冲存储器的工作原理本章重点、难点
5.1 存储器概述
5.1.1 存储器的分类一、存储器基本概念存储器由大量的记忆单元组成,记忆单元是一种具有两个稳定状态的物理器件,可用来表示二进制的 0和 1,这种物理器件一般由半导体器件或磁性材料等构成由若干个最基本的存储单元存储一个字,字长有 4位,8位,16位以及 32位等,在微机中,存储器一律按 8位二进制数(一个字节)编址,习惯上把一个地址所寻址的 8位二进制数称为一个存储单元存储器容量一般都很大,无论内存还是外存,
均以字节为单元,常用的有 210字节 =1KB,220字节
=1024KB=1MB,230字节 =1024MB=1GB,240字节
=1024GB=1TB
存储器的容量与微机的地址线有关
CPU
CACHE
主存(内存)
辅存(外存)
微机中存储器的层次
1.内存内存或主存,也称半导体存储器,用于存放当前计算机正在执行或经常要使用的程序或数据,CPU可直接从内存中读取指令并执行,还可直接从内存中存取数据 。 内存一般由快速的存储器件构成,它与 CPU交换数据的速度很快,在共享存储器的多处理机系统中,内存中数据可以共享,并可实现多处理机间的通信二、内存和外存一般是由磁性材料以及运用激光技术等实现的存储器,分为硬磁盘,软磁盘,光盘等 。
外存容量很大,但存取速度很慢,通常使用
DMA技术和 IOP技术来实现内存与外存之间的数据直接传送
2.外存或辅存按工艺结构分类双极型和金属氧化物型存储器按存储器原理分类静态存储器 SRAM和动态存储器 DRAM
按数据传输的宽度分类并行 I/O的存储器,串行 I/O的存储器按存取方式分类随机存取存储器 RAM,只读存储器 ROM
三、半导体存储器分类图 5- 1 半导体存储器的分类半导体存储器只读存储器
( ROM)
随机存取存储器
( RAM)
静态 RAM( SRAM)
动态 RAM( DRAM,
IRAM)
非易失 RAM( NVRAM)
掩膜式 ROM
一次性可编程 ROM( PROM)
紫外线擦除可编程 ROM( EPROM)
电擦除可编程 ROM( EEPROM)
详细展开,注意对比读写存储器 RAM
组成单元 速度 集成度 应用
SRAM 触发器 快 低 小容量系统
DRAM 极间电容 慢 高 大容量系统
NVRAM 带微型电池 慢 低 小容量非易失只读存储器 ROM
掩膜 ROM,信息制作在芯片中,不可更改
PROM,允许一次编程,此后不可更改
EPROM,用紫外光擦除,擦除后可编程;
并允许用户多次擦除和编程
EEPROM( E2PROM),采用加电方法在线进行擦除和编程,也可多次擦写
Flash Memory( 闪存 ),能够快速擦写的
EEPROM,但只能按块 ( Block) 擦除
5.1.2 半导体存储器的主要性能指标
存储容量 微机存储器的容量是指存储器所能容纳的最大字节数
存取周期 存取周期是指存储器从接收到地址,到实现一次完整的读出和写入数据的时间,
也称为存取时间,是存储器进行连续读和写操作所允许的最短时间间隔
易失性 指存储器的供电电源断开后,存储器中的内容是否丢失
功 耗 半导体存储器在额定工作电压下,
外部电源保证它正常工作的前提下所提供的最大电功率称之为功耗
可靠性 指它抵抗干扰,正确完成读 /写数据的性能
5.2 半导体存储器
5.2.1 存储器中地址译码的两种方式一、存储器芯片逻辑图地址寄存地址译码存储体控制电路
AB
数据寄存读写电路 DB
OE WE CS
① 存储体
存储器芯片的主要部分,用来存储信息
② 地址译码电路
根据输入的地址编码来选中芯片内某个特定的存储单元
③ 片选和读写控制逻辑
选中存储芯片,控制读写操作
① 存储体
每个存储单元具有一个唯一的地址,
可存储 1位 ( 位片结构 ) 或多位 ( 字片结构 ) 二进制数据
存储容量与地址,数据线个数有关:
芯片的存储容量= 2M× N
=存储单元数 × 存储单元的位数
M:芯片的 地址线根数
N:芯片的 数据线根数
② 地址译码电路译码器
A5
A4
A3
A2
A1
A0
63
0
1
存储单元
64个单元行译码
A2
A1
A0
7
1
0
列译码
A3A4A5
0 1 7
64个单元单译码 双译码
单译码结构
双译码结构
双译码可简化芯片设计
主要采用的译码结构
③ 片选和读写控制逻辑
片选端 CS*或 CE*
有效时,可以对该芯片进行读写操作
输出 OE*
控制读操作 。 有效时,芯片内数据输出
该控制端对应系统的读控制线
写 WE*( WR*和 RD*)
控制写操作 。 有效时,数据进入芯片中
该控制端对应系统的写控制线表 5-1 存储器芯片的工作方式操 作
1 ╳ ╳ 无操作
0 0 1 RAM→ CPU操作
0 1 0 CPU→ RAM操作
0 0 0 非法
0 1 1 无操作
CS RD WR
二、存储器芯片的存储矩阵与地址译码的两种方式
1,单译码方式双译码结构存储器示意图如图 5-4所示
2.双译码方式
比较图 5-3和图 5-4可以看出,外部地址线与数据线分别都是 11位和 8位,而且都是每次只能访问一个字节,内部存储阵列中所存储的二进制总信息也相等
不同之处是:单译码结构只需要一个译码电路,译码输出选择线 2048根,而双译码结构需要 2个 译码 电 路,译 码输 出 选择 线
64+32=96根,相比之下,采用双译码结构其译码输出选择线大大减少,所以,许多 SRAM
及 ROM存储芯片都采用双译码结构,在 32位微机中也都采用双译码方式存储器芯片的 I/O控制逻辑如图 5-5所示三、存储器芯片的 I/O控制逻辑
5.2.2 静态随机存取存储器 SRAM
静态随机存取存储器 SRAM的基本存储单元一般由六管静态存储电路构成,集成度较低,功耗较大,无需刷新电路,由于存取速度快,一般用作高档微机中的高速缓冲存储器
Intel 6264的引脚图和内部结构框图如图 5-6和图 5-7所示表 5-2 Intel 6264的工作方式方式 操 作
0 0 0 非法 不允许 WE与 OE同时为低电平
0 1 0 读出 从 RAM中读出数据
0 0 1 写入 将数据写入 RAM中
0 1 1 选中 6264内部 I/O三态门均处于高阻
1 × × 未选中 6264内部 I/O三态门均处于高阻
CE WE OE
图 5-8 SARM读时序
tRC,读周期时间
tAA,地址有效到数据出现到外部数据线上的时间
tOR,OE*结束后地址应保持的时间
tRP,读信号有效的时间
tOE,OE*有效到数据出现在外部数据线上的时间
tCW,片号信号有效的宽度
tACE,CE*有效到数据出现在外部数据线上的时间
tRH,地址无效后数据应保持的时间
tOH,OE*结束后数据应保持的时间
TWC,写周期时间
tAW,地址有效到片选信号失效的间隔时间
TWB,写信号撤销后地址应保持的时间
TCW,片选信号有效宽度
TAS,地址有效到 WE*最早有效时间
tWP,写信号有效时间
TWHZ,写信号有效到写入数据有效所允许的最大时间
TDW,写信号结束之前写入数据有效的最小时间
TDH,写信号结束之后写入数据应保持的时间图 5-9 SRAM写时序
5.2.3 只读存储器 ROM
一,掩膜式只读存储器 ROM
由 MOS管组成掩膜式只读存储器的结构图如图 5-10所示掩膜式 ROM图中的存储阵列及位线上的公用负载管均由 NMOS场效应管组成,采用单译码方式,每根译码输出选择线可以选中一个字,字长 4位,共有 4个字,所有的字只能读出,不能写入。存储阵列中的基本存储单元仅由一只
MOS管构成,或缺省,凡有 MOS管处表示存储 0,
反之为 1,显然,字 0到字 3所存储的信息分别为,0001,0010,0011及 0100。这种存储阵列的内容一旦制造好后,只能读出,不能写入,
用户是无法改写的可编程只读存储器 PROM工作原理是存储阵列除了三极管之外,还有熔点较低的连线(熔断丝)串接在每只存储三极管的某一电极上,例如发射极,编程之前,
存储信息全为 0,或全为 1,编程写入时,外加比工作电压高的编程电压,根据需要使某些存储三极管通电,
由于此时电流比正常工作电流大,于是熔断丝熔断开路,一旦开路之后就无法恢复连通状态,所以只能编程一次。如果把开路的三极管存储的信息当作 0,反之,
存储的信息就为 1
二、可编程只读存储器 PROM
1,EPROM的基本存储电路如图 5-11所示三、可擦除可编程只读存储器 EPROM
FAMOS管与 MOS管结构相似,它是在 N型半导体基片上生长出两个高浓度的 P型区,通过欧姆接触分别引出漏极 D和源极 S,在漏源之间的 SiO2绝缘层中,包围了一多晶硅材料,与四周无直接电气连接,
称之为浮置栅极,在对其编程时,在漏源之间加上编程电压 ( 高于工作电压 ) 时,会产生雪崩击穿现象,获得能量的电子会穿过 SiO2注入到多晶硅中,
编程结束后,在漏源之间相对感应出的正电荷导电沟道将会保持下来,如果将漏源之间感应出正电荷导电沟道的 MOS管表示存入 0,反之,浮置栅不带负电,即漏源之间无正电荷导电沟道的 MOS管表示存入 1状态
2,EPROM芯片举例
Intel2764的引脚与内部结构图如图 5-12所示 。 在 EPROM芯片的上方,有一圆形石英窗,
从而允许紫外线穿过透明的圆形石英窗而照射到半导体芯片上,将它放在紫外线光源下一般照射 10分钟左右,EPROM中的内容就被抹掉,即所有浮置栅 MOS管的漏源处于断开状态,然后,才能对它进行编程输入
Intel2764内部有 256× 256存储阵列,采用双译码方式,用于寻址 8KB存储单元,并有输出缓冲器 。 具有 28脚双列直插式封装,
其中 A12~A0是地址线,O7~O0是 8根地址线 。
CE*是片选,OE*是输出允许信号,二者均为低电平有效
Vcc是电源电压,工作电压 +5V。 VPP是编程电压,在编程时接 12~25V电压,注意,一定要根据 2764芯片上实际标注的电压值外加编程电压,PGM*是编程控制端 。
EPROM
顶部开有一个圆形的石英窗口,用于紫外线透过擦除原有信息
一般使用专门的编程器 ( 烧写器 )
进行编程
编程后,应该贴上不透光封条
出厂未编程前,每个基本存储单元都是信息 1
编程就是将某些单元写入信息 0
四、电擦除只读存储器 EEPROM
1,EEPROM基本存储电路如图 5-13所示
EEPROM基本存储电路如图 5-13所示 。 与
EPROM相比,它是在 EPROM基本存储单元电路的浮置栅 MOS管 T1上面再生成一个浮置栅 MOS管 T2,将 T2浮置栅引出一个电极,使该电极接某一电压 VG2,若 VG2为正电压,T1
浮置栅极与漏极之间产生一个隧道效应,使电子注入 T1浮置栅极,于是 T1的漏源接通,
便实现了对该位的写入编程
若 VG2加负电压,迫使 T1管多晶硅体上的自由电子返回到衬底,复合正电荷,使 T1的漏源处于断开状态,便实现了擦除操作 。 一旦擦除后又可重新写入数据 。
EEPROM
用加电方法,进行在线 ( 无需拔下,
直接在电路中 ) 擦写 ( 擦除和编程一次完成 )
有字节擦写,块擦写和整片擦写方法
并行 EEPROM:多位同时进行
串行 EEPROM:只有一位数据线
2,EEPROM芯片举例
EEPROM芯片 2864A
存储容量为 8K× 8
28个 引脚:
13根地址线 A12~ A0
8 根 数 据 线 I/O7 ~
I/O0
片选 CE*
读写 OE*,WE*
Vcc
WE*
NC
A8
A9
A11
OE*
A10
CE*
I/O7
I/O6
I/O5
I/O4
I/O3
NC
A12
A7
A6
A5
A4
A3
A2
A1
A0
I/O0
I/O1
I/O2
GND
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
26
25
24
23
22
21
20
19
18
17
16
15
CE*是片选,OE*是输出允许,WE*是写入允许,2864需在输入端加 21V电压信号才能进行编程 ( 改写 ),而 2864A仅需要 +5V或
TTL电压信号就可以进行改写,所以适合于在线编程操作 。 电源电压 VCC加 +5V,最大电流 160mA。 2864内部结构图与 2764类似,
主要差别是存储阵列是 8K× 8位的 EEPROM,
而不是 8K× 8位的 EPROM存储阵列 。
第一种是按字节为单位进行擦除和写入,擦除和写入是同一种操作,即都是写入,只不过擦除是固定写,1”而已,在擦除时,输入的数据是 TTL高电平 。
在以字节为单位进行擦除和写入时,CE*为低电平,
OE*为高电平,从 WE*端加入编程脉冲,幅度因型号而异,2864为 21V,2864A为 +5V,编程脉冲宽度为 5ms左右 。 注意,EEPROM在进行字节改写之前自动对所要写入的字节单元进行擦除,CPU只需要像写普通 RAM一样写其中某一字节,但一定要等到 5ms之后,CPU才能接着对 EEPROM进行下一次写入操作,因而,以字节为单元写入是常用的一种简便方式
第二种方式是页面写入方式,页面写入在
2864内部设有 16字节的页缓冲器,整个
2864分为 512页,写入操作时,首先把待写入数据写入到页缓冲器中,然后,在内部定时电路的控制下把页缓冲器中的所有数据写入到 EEPROM中所指定的存储单元,显然,
相对字节写入方式,第二种方式的效率高,
写入速度快 。
特点
1、使内部存储信息在不加电的情况下保持 10
年左右
2、可以用比较快的速度将信息擦除以后重写,
反复擦写达几十万次,可以实现分块擦除和重写,也可以按字节擦除与重写。还具有非易失性,可靠性能好,速度快以及容量大等许多优点五、闪烁存储器( Flash Memory)
闪烁存储器也称快速擦写存储器 。 实际上闪烁存储器属于 EEPROM类型,又称 Flash
ROM,性能优于普通 EEPROM。 它是 Intel
公 司 率 先 推 出 的 一 种 新 型 存 储 器,在
Pentium机主板上,用 128KB或 256KB的
Flash ROM存放 BIOS,取代了 EPROM和
EEPROM。 因此现在称 BIOS为 Flash BIOS。
它 的 基 本 存 储 单 元 电 路 如 图 5-15 所示 。 与
EEPROM类似,主要还是由 T1和 T2两只浮置栅
MOS管构成,T1MOS管浮置栅介质很薄,作为隧道氧化层,与 EEPROM相同,在 T2浮置栅引出的电极上加正电压时,使电子进入 T1MOS管的浮置栅,
T1的漏源形成导通沟道 。 读出操作与 EPROM芯片的读出操作相同,即首先对位线上预充电电容充满电荷,当行选线为高电平时,此存储单元电路被选中,如果 T1管漏源之间已形成导通沟道,则电容上存储电荷通过 T3,T1形成回路放电,位线上输出 0V,
若 T1的漏源之间未有形成导通沟道,则在位线上输出高电平,即电容两端已充满电荷所形成的高电位
擦除的方法是在 T1MOS管的源极加正电压,
利用 T1管浮置栅与源极之间的隧道效应,把注入在浮置栅 ( 多晶硅 ) 的负电荷吸引到源极 。 在图 5-15中,当 VPP接通高电压时,T4
管导通,T5管漏极上所外加的 VCC通过 T4,T5
管加到所有存储单元中的 T1管,实现了全片擦除或分块擦除,这就是实现块擦除的基本原理
5.2.4 动态随机存储器 DRAM
DRAM的基本存储单元是单个场效应管及其极间电容
必须配备,读出再生放大电路,进行刷新
每次同时对一行的存储单元进行刷新
每个基本存储单元存储二进制数一位
许多个基本存储单元形成行列存储矩阵
DRAM一般采用,位结构,存储体:
每个存储单元存放一位
需要 8个存储芯片构成一个字节单元
每个字节存储单元具有一个地址
1,单元存储电路及刷新放大器一、基本存储单元电路及存储阵列
① 写入操作 首先由正脉冲信号 ф使 T5导通,平衡触发器,接着 T5管关断,行,列选通信号为有效高电平,T6,T0两管导通,若 I/O数据线上输入逻辑 0
电平,则 T1管截止,由 T1,T3所构成的反相器则以高电平通过 T0存入 C中,对电容 C充电 。 相反,若
I/O输入线以逻辑 1电平作为输入,则经 T1反相后以逻辑 0电平存入 C中,若原 C中有电荷,则会形成一个放电回路,泄放掉电容 C中存储的电荷 。 从以上分析可知,该存储单元电路将输入逻辑信号反相后存入 C中
② 读出操作 与写入操作的开始条件相同,
此时 T6,T0两管导通,如果电容 C中有电荷即为高电平,经 T0管后传送到 T2的栅极,在
T2漏极输出一个原先存入的低电平,此低电平可反过来使 T1可靠截止,于是 T1,T3组成的反相器输出一个标准的高电平经 T0又对 C充电,因而,读出操作既实现了正确读出,又实现了再生 ( 刷新 )
③ 刷新操作 刷新操作也称为再生操作 。 实现刷新一般采用,仅行地址有效,法进行刷新,此时,列地址处于无效状态,由行地址有效选中 DRAM中某一行,将此行中存入的所有二进制信息全部实现一次读操作,从上述读操作过程可知,读操作既可以实现读又可实现再生 。 因为此时列地址无效,读访问到的所有二进制信息并不会输出到外部 I/O
数据线上去
2,DRAM的电路结构
① DRAM芯片 414256/41L4256
二,DRAM举例
由于 DRAM存储单元电路比 SRAM简单得多,
因此,DRAM存储器集成度相对高得多,而且省电,因此常被用作微型计算机的主存储器,目前常用的 DRAM 芯片有 4164
( 64k× 1 ),41256/41L4256
( 256k× 4 ),41464 ( 64k× 4 ) 以及
414256( 256k× 4) 等类型
存储器阵列是 512× 512× 4位 =256K× 4位,由于行,列地址译码输出选择线各有 512根,则行,列地址译码器各有 9位地址线作输入,两个行,列地址译码器分别对应一个行,列地址缓冲器,两个 9
位地址缓冲器有三个作用:一是它们分时寄存 CPU
送来的高低 9位地址;二是产生 9位地址的反变量;
三是具有驱动作用,以满足行,列地址译码器的需要 。 在 DRAM控制器的作用下,DRAM控制器将
CPU发出的访问 DRAM的地址分时送给 DRAM芯片
414256
首先行地址锁存信号有效,将 CPU发出的高 9
位地址经 A8~A0在 1# 时钟发生器的同步作用下锁存于行地址缓冲器中,然后,列地址锁存信号有效,将低 9位地址也经 A8~A0在 2#
时钟发生器的同步作用下锁存于列地址缓冲器中
② 增强型 DRAM( Enhanced DRAM)
② 增强型 DRAM( Enhanced DRAM)
增强型 DRAM 简称为 EDRAM,它是在
DRAM芯片上集成了一个小容量的 SRAM作为内部高速缓冲存储器 ( Cache),从而使
DRAM的存取速度大为提高 。 如图 5-19所示是 1M× 4位 EDRAM芯片的结构图 。
该 EDRAM芯片的存储阵列是 2048× 512× 4 位
=1M× 4位,共有 2048行和 512列,每次选中 4位二 进 制 数 进 行 读 或 写 操 作 。 访问 1M× 4 位的
EDRAM芯片需要 20位内存地址,但芯片引脚设有
11位地址输入 。 当 EDRAM被第一次读访问时,首先有效,内存地址高 11位经 A10~A0同时送入内部行地址锁存器和最后读出行地址锁存器中,行地址锁存器中的 11位行地址经行译码器译码后,指定
DRAM阵列中的某一行,将此行中数据 ( 512× 4
位 ) 全部读取到 512× 4位的 SRAM中,即映射到
Cache中 。
在列地址锁存信号的作用下,内存地址的低 9
位地址经 A10~A0中 9位地址线输入,保存到 9
位列地址锁存器中,经列地址译码后,选中
Cache中 4个存储单元,在读命令信号有效时,
将选中的四位二进制数从芯片的数据线
D3~D0读出 。
在下一次读访问时,首先输入的 11位行地址立即与最后读出行地址锁存器的内容进行比较,若两地址相符合,说明要读出的四位二进制数在 SRAM中,访问 Cache命令,则由输入的列地址从 SRAM中选择指定的四位二进制数并读出 。 若两地址不符合,则访问
Cache未命中,则需要从 DRAM阵列中读出新的一行存入 SRAM中,并从中读出由列地址指出的四位二进制数 。
还要将当前的 11位行地址保存到最后读出行地址锁存器中去 。 如果 CPU连续访问 DRAM阵列中某一行,
共有 512× 4位二进制信息,除第 1次必须将此行内容由 DRAM阵列中传送到 SRAM中外,其他 511次只需从 SRAM中读取指定的 4位二进制信息 。 势必能大大提高 CPU访问 EDRAM的速度 。 这种 EDRAM
的结构还有 2个特点:由于使用了高速缓存技术,
访问 Cache命中率很高,在读 SRAM期间可同时对
DRAM阵列进行刷新;由于芯片内部四位二进制数的输出路径与输入路径是分开的,所以在写操作完成的同时允许启动同一行的读操作 。
这是本章的重点内容
SRAM,EPROM与 CPU的连接
译码方法同样适合 I/O端口
5.3 微型计算机中存储器的系统组成
5.3.1 存储器芯片与 CPU连接存储芯片的数据线存储芯片的地址线存储芯片的片选端存储芯片的读写控制线
1,CPU总线的负载能力
CPU的地址,数据及控制总线的直流负载一般能带 1个或几个 TTL负载 。 半导体存储器基本上是由 MOS
器件组成,直流负载很小,一般在很小的计算机系统中,例如单片机应用系统,CPU可以直接与存储器芯片相连接 。 除此之外,为了减轻 CPU的负载,增强系统的可靠性,一般要采用总线驱动隔离措施,对于数据总线要采用双向驱动,对于地址总线与控制总线则要加上单向驱动,将驱动器的输出连至存储器或其他电路一、几点考虑
2,CPU的时序与存储器存取速度之间的配合高速 CPU与低速存储器之间的速度如果不匹配,应在 CPU访问存储器的周期内插入等待脉冲 TW
3.存储器结构的选定由于 CPU的数据线有 8,16,32,64
位等几类,相应存储器的结构分为单体、
2体,4体,8体等,存储器结构的选定是指 CPU与存储器连接时,存储器是单体结构还是多体结构
4.片选信号及行、列地址产生机制由于存储器芯片的容量是有限的,微机中存储器的总容量一般远大于存储器芯片的容量,
因此,存储器往往由多片存储器芯片组成,在
CPU与存储器芯片之间必须设有片选择译码电路,一般由 CPU的高位地址译码产生片选,而低位地址送给存储器芯片的地址输入端,以提供存储芯片内部的行、列地址
5,DRAM控制器它是 CPU和 DRAM芯片之间的接口电路,
目前已生产出不同型号的集成芯片。它将
CPU的信号变换成适合 DRAM芯片的信号。
不同的计算机系统有不同的 DRAM控制器
存储芯片数据线的处理
若芯片的数据线正好 8根:
一次可从芯片中访问到 8位数据
全部数据线与系统的 8位数据总线相连
若芯片的数据线不足 8根:
一次不能从一个芯片中访问到 8位数据
利用多个芯片扩充数据位
这个扩充方式简称,位扩充,
位扩充
2114
( 1)
A9~ A0
I/O4~ I/O1
片选
D3~ D0
D7~ D4
A9~ A0
2114
( 2)
A9~ A0
I/O4~ I/O1CE
CE
多个位扩充的存储芯片的数据线连接于系统数据总线的不同位数
其它连接都一样
这些芯片应被看作是一个整体
常被称为,芯片组,
存储芯片地址线的连接
芯片的地址线通常应全部与系统的低位地址总线相连
寻址时,这部分地址的译码是在存储芯片内完成的,我们称为
,片内译码,
片内译码
A9~ A0
存储芯片
000H
001H
002H

3FDH
3FEH
3FFH
全 0
全 1
00… 00
00… 01
00… 10

11… 01
11… 10
11… 11
范围( 16进制)A9~ A0
存储芯片片选端的译码
存储系统常需利用多个存储芯片扩充容量
也就是扩充了存储器地址范围
进行,地址扩充,,需要利用存储芯片的片选端对多个存储芯片 ( 组 ) 进行寻址
这个寻址方法,主要通过将存储芯片的片选端与系统的高位地址线相关联来实现
这种扩充简称为,地址扩充,或,字扩充,
地址扩充(字扩充)
片选端
D7~ D0
A19~ A10
A9~ A0
( 2)
A9~ A0 D7~ D0
CE
( 1)
A9~ A0 D7~ D0
CE
译码器
0000000001
0000000000
二,8088系统与存储器的连接
A19~A16 A15~A13 A12~A0 译码器输出地址范围全 0 000 从全 0到全 1 Y0* 00000H~01FFFH
全 0 OO1 从全 0到全 1 Y1* 02000H~03FFFH
全 0 010 从全 0到全 1 Y2* 04000H~05FFFH
全 0 011 从全 0到全 1 Y3* 06000H~07FFFH
全 0 100 从全 0到全 1 Y4* 08000H~09FFFH
全 0 101 从全 0到全 1 Y5* 0A000H~0BFFFH
全 0 110 从全 0到全 1 Y6* 0C000H~0DFFFH
全 0 111 从全 0到全 1 Y7* 0E000H~0FFFFH
三,8086系统与存储器的连接
8086CPU的存储器组织采用 2体结构,把
1MB存储器分为 2个 512KB的存储体,即分为偶地址库与奇地址库 ( 简称偶字库和奇字库 ) 各 512KB,仅当 A0=0时,访问偶地址库中一个字节,仅当时,访问奇地址库中一个字节,当二者均为 0时,访问偶地址的一个字 。 根据 8086存储器组织,在图 5-21中,
由 U1与 U2两片 74LS138三一八译码器,分别产生奇偶地址库的片选信号
U1的与 U2的是同一地址范围内偶地址片选与奇地址片选,由 U1的选中 1#存储器芯片,其数据线接至 8086系统数据线上的 D7~D0,由
U2的选中 2#存储器芯片,其数据线接至
8086系统数据线上的 D15~D8,至于 U1和 U2
的 ~的连接及工作机制均与相同,16个片选的地址范围示于表 5-8中
5.3.2 32位微机系统的内存组织
386/486CPU外部的数据线为 32位,
Pentium 微处理器外部的数据线是 64
位,分别与存储器传送 32位和 64位的数据,其内存组织的原理基本相同一,32位外部数据总线的内存组织
1.内存组织
2,1M× 4位 EDRAM模块组成该 EDRAM模块共有 4个存储体,每个存储体由
2片 2048× 512× 4位 EDRAM芯片组成,便构成了 1M× 8位的存储容量,从左到右,4个存储体的 8位数据线依次接到系统数据总线上的
D31?D24,D23? D16,D15? D8,D7? D0,由 4个列选线 CAS3? CAS0分别选中每个存储体,而
CAS3? CAS0分别与 4个字节允许信号 BE3*?
BE0相对应
① 数据线的连接由 CPU发出的 A21~A2共 20位地址送给
DRAM的控制器,再由控制器将 A21~A11共
11位地址经行选择信号 RAS作用下锁存到
DRAM芯片内部的行地址锁存器中,再由控制电路将 A10~A2共 9位地址经列选择信号
CAS作用下锁存到 DRAM芯片内部的列地址锁存器中。因此,EDRAM芯片上的地址线
A10~A0对应接至控制电路的地址输出线上
② 地址线的连接
EDRAM中的 CAS,RAS以及刷新信号 Ref
等均接至 DRAM控制器对应的输出端上,
由 DRAM控制器来控制 DRAM的读 /写操作
③ 控制信号的连接
3,DRAM控制器结构
DRAM控制器的组成结构刷新地址计数器刷新定时器地址多路复用电路仲裁电路控制信号发生器总线收发器等
DRAM控制器结构图刷新地址计数器 提供刷新操作所需要的刷新地址,有自动加 1的功能,而且能自动循环计数。刷新地址计数器的长度取决于 DRAM芯片存储阵列中行的数量。容量为 256K位以上的
DRAM芯片,多数内部备有刷新地址计数器,
可以采用 CAS*在 RAS*之前有效的刷新方式,
DRAM控制器中的刷新地址计数器就不起作用了
① 刷新地址计数器刷新定时器 提供周期性刷新 DRAM芯片所需要的定时间隔。比如,刷新周期为
8mS的 DRAM芯片,共有 512行,保证在
8mS之内把所有 512行均要刷新一次,如果采用集中刷新方式,每 8mS之内的某一瞬时间集中刷新完 512行,或采用异步刷新方式,采用每 15.6μ S( 8mS/512)
间隔刷新一行
② 刷新定时器地址多路复用电路 把来自 CPU的地址转换成行地址和列地址,然后分时输送给 DRAM
芯片
④ 仲裁电路当 CPU读 /写 DRAM请求与 DRAM控制器内部刷新定时器的刷新请求同时到达时,由仲裁电路对二者的优先权进行裁定
③ 地址多路复用电路控制信号发生器 产生并输出行选择信号
RAS,列选择信号 CAS以及写允许信号,还提供刷新地址计数器的计数输入信号
⑥ 总线收发器总线收发器 为 DRAM存储器的数据输入 /输出提供缓冲功能,称之为 I/O数据缓冲器
⑤ 控制信号发生器二,64位外部数据总线的内存组织
Pentium 系列微处理器外部有 64位数据线,将内存分为 8个体,每个存储体数据宽度仍然为 8位( 1字节),因此,有 8个字节选择信号,分别用于控制每个存储体。
Pentium可寻址的最大存储空间是 4GB,
则每个存储体只有 512MB,而 Pentium
pro,Pentium II及 Pentium III要寻址的最大存储空间为 64GB,则每个存储体 8GB。
64位内存组织的示意图如图 5-25所示
64位内存组织的示意图
5.4 高速缓冲存储器技术
Cache工作原理
Cache组织方式写 cache的策略与一致性
Pentium PC的 Cache
一、存储器系统的层次
80X86 CPU采用了高速缓冲存储器( Cache
Memory)技术,习惯上简称高速缓存,或称
Cache。在 80386系统中,Cache处于 CPU外部的主机板上,在 80486与 Pentium系统中,除了主机板上有第 2级 Cache(L2)外,CPU内部还有第 1级 Cache(L1)。存储器系统的层次关系如图 5-26所示
5.4.1 Cache工作原理存储器系统的层次关系从微机系统来看,增加 Cache的目的,
就是要在性能上使主存的平均访问时间尽可能接近 Cache的访问时间,即保证在大多数情况下,CPU访问 Cache,而不是访问主存二,Cache命中率在某一程序执行期间,设 Nc表示 CPU访问
Cache的总次数,Nm表示 CPU访问主存的总次数,h为命中率,则
( 5-1)
NmNc
Nch
假如 tc表示访问 Cache一次所花的时间,tm
则为访问主存一次所经历的时间,1-h表示未命中率,则平均访问时间 ta定义为:
ta=htc+(1-h)tm ( 5-2)
那么命中率 h又可定义为:
mtct
mtath
( 5-3)
Cache/主存的平均访问时间 ta越接近 tc越好,
当 ta接近于 tc,则表示访问效率高,用 e表示访问效率,则,
其中,r=tm/tc,表示访问主存慢于访问
Cache的倍率。 r的取值一般是 5~10
hrrrhhmthcht
ct
at
cte
)1(
1
)1(
1
)1(



( 5- 4)
例 【 5 -1】 设 CPU执行一般程序时,访问 Cache
次数 Nc=1500,访问主存次数 Nm=90,又假设访问
Cache存取周期为 50ns,访问主存存取周期为 300ns,
试求 h,r,ta以及 e的值
943.0901500 1500
mNcN
cNh
650300 nsns
ct
mtr
ta=htc+(1-h)tm=0.943× 50ns+(1-0.943)× 300ns=64.25ns
%82.7725.64 50 nsns
at
cte
解:
5.4.2 Cache组织方式
Cache的组织方式分为全相联映射方式直接映射方式组相联映射方式
1.全相联映射方式全相联映射方式将主存中某一块的内存可以映射到 Cache中的任意一行中,即把主存中内容划分出若干字节数量相等的数据块,每块存储的字节数与
Cache中任意一行中数据字节相等,那么,主存中某一块的若干字节可以拷贝到 Cache中的任意一行中。而主存中某一块中所有字节相同的高位地址被保存到 Cache中对应的那一行中,即作为标记存入该 Cache行。以便 CPU访问 Cache时,将当前所访问主存的高位地址与标记进行比较,从而确定 CPU
访问 Cache的命中与否全相联映射方式关联存储器的 特点 是按存储内容进行检索,而不是按地址寻找,一般全部标记用一个关联存储器来实现。全相联 Cache组织的 缺点 由于关联存储器容量小,因而全相联映射方式只适合小容量 Cache,全相联映射方式的比较电路复杂,难以设计与实现
2,直接映射方式直接映射( direct mapping)方式也是一种多对一的映射方式,但是,一个主存块只能拷贝(映射)
到 Cache的一个特定行内,而不是任一行内直接映射方式直接映射 Cache组织的 优点,因为仅在指定
Cache行中对一个标记段进行比较,故比较电路简单 。
缺点 是:每个主存块只能拷贝到一个固定的行中,如果 CPU在短时间段内要访问主存中的几个块,而这几个块的内容都必须映射到 Cache
中指定的某一行,则 2个或多个主存块都要拷贝到同一 Cache行中,那么,就要发生冲突,在短时间内会频繁地换入换出 Cache行中的数据与标记,从而会降低 Cache的工作效率。显然,
增加 Cache行数,可以减少冲突的发生,因而,
直接映射 Cache组织适用于大容量 Cache的场合从以上两种映射方式可以看出,两种映射方式优缺点正好相反,全相联映射方式 Cache中存放的位置灵活,命中率高,而直接映射方式的比较电路简单,硬件开销少。于是,设计出了一种适度兼有二者优点而又尽量避免二者缺点的折衷映射方式。那就是目前微机中普遍采用的组相联映射方式
3.组相联映射方式组相联映射方式将 Cache分成 u组,每组有 v行,主存块存放到哪一组是固定的,
至于存放到哪一行是任意的,设 Cache行的总数量为 m,组号为 q,主存块号为 j,
则有如下函数关系:
m = u× v ( 5-6)
q=j mod u ( 5-7)
组相联映射方式中 每组的路数 V值相等,取值一般较小,典型值是 2,4,8,最大为 16,
由于 V路的数量不多,CPU访问 Cache时所需要的标记比较器和全相联映射方式相比,相对简单得多,容易实现。而主存块在组中的排放又有一定的任意性,减少了正如直接映射
Cache组织中的那种冲突的发生,因此,组相联映射方式适度兼有上述两种映射方式的优点
1.最不经常使用( LFU)算法
2.近期最少使用( LRU)算法
3.随机替换二、三种替换策略
1.最不经常使用( LFU)算法
LFU( Least Frequently Used) 算法是将一段时间内被访问次数最少的那一行数据换出 。 为此必须对每行设置一个加计数器,新建立的行必须从 0开始计数,CPU每访问一次
Cache,相应行的计数器加 1,当要替换时,
将那些约定可以替换行的计数值进行比较,
显然,将计数值最少的行换出,同时将该行的计数值清零
2.近期最少使用( LRU)算法
LRU( Least Recently Used) 算法是将近期内被访问次数最少的行换出 。 为此每行设置一个加计数器,当 Cache每命中一次,命中行的计数器清零,而其他行的计数器加 1,显然计数值最大的行近期最少使用,当需要替换时,比较特定行的计数值,将计数值最大的行替换出 。 这种算法的特点是保护了刚拷贝有主存数据的 Cache行,
正好符合 Cache的工作原理,因而可以提高 Cache
的命中率
3.随机替换随机替换 ( Random Replacement) 当需要替换时,只是从特定行中随机选取一行,将其数据换出即可 。 随机替换比前述 2种替换算法所需硬件简单,而且速度快 。 缺点是:随机换出的数据可能马上要用,从而增加了映射的次数,降低了命中率与 Cache的工作效率 。
如果增大 Cache的容量,可以克服随机替换的缺点,实验结果表明,随机替换策略的功效稍逊于前两种替换策略
5.4.3 写 cache的策略与一致性在 Cache系统中,因为 Cache的内容是部分主存内容的副本,应该与主存内容保持一致,
当写 Cache操作发生后,主存中相对应的内容要随之更新,否则会造成数据丢失,如何使
Cache中内容和主存内容保持一致,共有三种写操作方式来保证 Cache和主存中相对应的内容保持一致
5.4.3 写 cache的策略与一致性一,通写法 ( write-through)
二、回写法( write-back)
三、写一次法( write-once)
一、通写法这种方法是每当 CPU把数据写到 Cache中时,
Cache控制器会立即把数据也写入主存中对应的位置 。 主存会随时跟踪 Cache的内容,也就不会有主存丢失新数据的问题二、回写法采用这种方式时,当 CPU对 Cache写命中时,只修改 Cache的内容,并不立即写入主存 。 Cache中每一行还要设置一个更新位,一旦 CPU对 Cache中的某一行写入后,使其更新位置 1。 当 Cache中的某一行要被新的主存块替换时,若此时更新位为 1,则 Cache
控制器先把该行的内容写入主存相应的位置,并把更新位清零,再作替换操作三、写一次法写一次法与回写法的写策略基本相同,写一次法只是在第一次写命中时要同时写入主存 。 这是因为 CPU第一次写 Cache命中时,CPU要在总线上启动一个存储器写周期,其他 Cache监听到此主存块地址及写信号后,即把他们各自保存的主存块该保存到主存中就拷贝,该作废的就作无效处理,以便维护全部 Cache与主存的一致性 。 然后 CPU对 Cache的写命中则按照回写法的策略对待,
这可以节省 CPU的总线周期,有利于超标量流水线的进程,有利于提高系统的运行速度
5.4.4 Pentium PC的 Cache
Pentium PC机是一个单 CPU系统,它采用了两级 Cache结构 。 集成在 Pentium CPU内的 Cache称为 L1级 Cache,其容量为 16KB,
采用 2路组相联映射方式,每行 32B。 安装在主板上的 Cache称之为 L2级 Cache,其容量为 512KB,也采用 2路组相联映射方式,
每行可以是 32B,64B或 128B
Pentium CPU内部数据 Cache的结构如图 5-29
所示 。 数据 Cache采用 2路组相联结构来分成 128
组,每组 2行,每行 32B,数 据 总 容 量 是
128× 2× 32B=8KB,每路 4KB。 使用 32位物理地址寻址,其中 A31~ A12共计 20位地址作为 Cache
中的 20位标记,组号由 A11~ A5共计 7位地址编码,
共计可编为 128组,每组 2行,每行中可存放 32B,
行内数据由主存地址 A4~ A0寻址一,L1级 Cache
二,Pentium 两级 Cache的工作环境
Pentium 两级 Cache的工作环境如图 5-30所示 。 L2级 Cache (512KB)采用了回写法,遵循
MESI协议,L2是主存的子集,保持与主存一致 。 CPU内部的 L1级 Cache是 L2的子集,采用写一次法,同样遵循 MESI协议,维护 L1与 L2
两级之间的一致性,从而保证了 L1- L2-主存三级存储系统的一致性图 5-29 Pentium CPU内部数据 Cache的结构图 5-30 Pentium 两级 Cache的结构习题 5
5.4 5.5 5.6 5.9 5.12 5.15