第三章 存储系统

Post on 17-Mar-2016

131 Views

Category:

Documents

10 Downloads

Preview:

Click to see full reader

DESCRIPTION

第三章 存储系统. 内容提要: 存储器概述; RAM 存储器; ROM 存储器(选择 RAM 与 ROM 芯片设计主存并实现与 CPU 的连接); 高速存储器; 高速缓冲存储器 Cache ; 虚拟存储器; 重点:多层次存储体系结构的概念; 主存设计及其与 CPU 的连接; Cache 的工作原理。. 第三章 存储系统 3.1 存储器概述. 3.1.1 存储器的发展 一、存储器件的变化 第一台电子计算机 ENIAC 用的是电子管触发器; - PowerPoint PPT Presentation

TRANSCRIPT

第三章 存储系统 内容提要: 存储器概述; RAM 存储器; ROM 存储器(选择 RAM 与 ROM 芯片设计主存并实现与 CPU 的连接); 高速存储器; 高速缓冲存储器 Cache ; 虚拟存储器; 重点:多层次存储体系结构的概念; 主存设计及其与 CPU 的连接; Cache 的工作原理。

第三章 存储系统3.1 存储器概述 3.1.1 存储器的发展一、存储器件的变化 第一台电子计算机 ENIAC 用的是电子管触发器; 此后经历过:汞延迟线——磁带——磁鼓——磁心( 1951 年始)——半导体( 1968 年 IBM 360/85 首次将其用作 Cache ; 1971 年 IBM 370/145首次将其用作主存,取代了磁芯)。 主存的重要作用及主存器件发展史总结图表:

主存的重要作用图示

外设 主 外设 存

输入的数据要输出的数据

程序 中间数据

控制器 运算器指令 数据

主存器件发展史总结表 时 代 元 件 存取周期 存储容量

* 1 磁鼓等 12s 2K 字节 2 磁心 2.18 s 32K 字节 3 磁心 750ms 1M 字节 3.5 IC , LSI 320ms 8M 字节 4 VLSI 312ms 128M 字节

二、存储体系结构的发展 1 、由主 - 辅二级结构发展到多层次存储体系结构。2 、主存由单体发展到多体交叉(并行)。3 、采用了虚拟存储技术。 3.1.2 评价存储器性能的主要指标一、存储容量 能存放二进制位的总量。一般主存和辅存分别考查。 常以字节 B ( Byte )为单位( MB 、 GB 、 TB )。 关于 W (字长): 8 的倍数 地址码的位数与主存容量的关系。

二、存取时间和存取周期1 、存取时间( Memory Access Time ): 孤立地考察某一次 R/W 操作所需要的时间,以 TA表示。2 、存取周期( Memory Circle Time ): 连续两次启动 R/W 操作所需间隔的最小时间,以 TM ( TC 、 TMC )表示。 TA 、 TM 的内涵: TM>TA。单位: ns 。三、频宽(带宽) Bm :单位时间内读取的信息量。 Bm=W/TM ( B/s ,b/s )其中 W—— 每次 R/W 数据的宽度,一般等于 Memory 字长。

例:计算机 A 、 B 编址单位分别是 32bit 和 8bit , TM 均为 10ns 。求二者的带宽。解: 4 X 108B/s ; 108B/s反映主存的数据吞吐率。按此定义 Bm 也被叫做存储器的数据传输率。四、价格:以每位价格来衡量。 P=C/S C—— 存储芯片价格, S—— 存储芯片容量( bits )。容量越大、速度越快,价格就越高。 3.1.3 存储器分类一、按存储介质分1 、半导体存储器

利用触发器的双稳态或MOS 管栅极有无电荷来表示二进制的 0/1 。2 、磁表面存储器:利用两种不同的剩磁状态表示二进制 0/1 。常见有磁带、磁盘两种。3 、光及磁光存储器( 1 )利用激光在非磁性介质上写入和读出信息,也称第一代光存储(技术)( Optical Memory )。( 2 )利用激光在磁记录介质上存储信息,也称第二代光存储(技术)( Megnetooptical Memory )。

二、按存取方式(工作方式)分1 、随机存取存储器 RAM ( Random Access Memory ) 按地址码编址,地址译码线对应唯一确定的存储单元( 1位、 1 字节、 1 字… …); 按照给定地址可以随时访问( R/W )任何存储单元,且访问时间与存储单元的物理位置无关; 速度较快, TM 为 ns 级。常用作 Cache 和主存。2 、只读存储器 ROM ( Read Only Memory ) 也是按地址译码访问,但只能随机读取,不能随机写入。又分为 MROM 、 PROM 、 EPROM 和 Flash ROM几类。

3 、直接存取存储器DAS (Direct Access Storage ) 信息所在地址按控制字编码形式给出,然后以字符、记录形式成块存取。存取时间与信息所在物理位置有关; 容量大,寻址较慢,便宜。 磁盘。4 、串行(顺序)存取存储器 SAM ( Serial Access Memory ) 以记录、字节形式成块、成组存取信息; 地址以块号和块间间隔给出,要顺序找到块号,再依次存取; 磁带。

三、按在计算机中的功能分1 、主存储器存放计算机运行其间的大量程序和数据;由 MOS 半导体存储器构成DRAM (动态);CPU直接访问。2 、高速缓冲存储器( Cache )存放最活跃的程序块和数据;由双极型半导体存储器或MOS型的 SRAM (静态)构成;3 、辅助存储器(外存)4 、控制存储器(控存、 CM )微程序设计(控制器)的计算机中,存放解释执行机器指令的微程序。ROM 。属于控制器。

3.1.4 多层次存储体系结构一、为什么要用多层次存储体系结构 主存的速度总落后于 CPU 的需要,主存的容量总落后于软件的需要。二、多层次存储结构系统的设计目标 在一定的成本下,获得尽可能大的存储容量、尽可能高的存取速度及可靠性等。 容量、速度、和成本的矛盾。三、多层次存储结构系统的一般形式

CPU

M0

M1

Mn-1 磁带 光盘磁盘磁盘 Cache主存Cache

CPU寄存器

存储器层次结构的 一般模式图 多层次存储器实际构成

四、多层次存储结构系统的常见形式 —— 三级存储器体系结构

寄存器组Cache

主存辅存

辅助硬件辅助软、硬件

CPU

1 、通用寄存器(组) 速度近于 CPU ,少量连续计算时存放部分数据及中间结果,通过减少主存访问而提高系统速度。 2 、 Cache- 主存层次( 1 )什么是 cache 高速缓冲存储器,高缓。是在CPU 和主存之间的小容量快速存储器,速度与 CPU相当。 依据程序运行的局部性,把主存中部分信息映射到 cache中, CPU 与之打交道,如此弥补了主存在速度上的不足。( 2 ) Cache 与 CPU 、主存的关系(工作原理)( 3 ) Cache 的物理构成

一般为 SRAM即静态 RAM ( Static );而主存一般为 DRAM即动态 RAM ( Dynamic );SRAM较快,约为 DRAM 的 3~5 倍,但功耗大,集成度低,价格高。( 4 )目前 PC 系统中一般设有一级缓存和二级缓存 L1 Cache 做在 CPU 内部,叫内部 Cache ,速度最快,容量较小,常在几十 KB 。 L2 Cache又叫外部或片外 Cache 。

3 、主 - 辅层次( 1 )构成 主存和辅存。( 2 )作用 解决主存容量不足的问题。( 3 )虚拟存储器( Virtual Memory ):虚存。 是建立在主 - 辅物理结构基础之上,由附加的硬件装置及操作系统的存储管理软件组成的一种存储体系。它将主存和辅存地址空间统一编址,用户在这个空间里编程,如同拥有一个容量很大的内存。

三、小结—— 多层次存储系统设计得当的话,会使用户感到拥有了 Cache 的速度、辅存的容量; 而且,无论 Cache还是虚存对应用程序员都是透明的; Cache更是对各级程序员透明。

3.2 随机读写存储器 RAM3.2.1 SRAM 存储器 一、 SRAM 的基本存储单元又叫记忆元件、存储元,指存放一个二进制位( 0/1 )的电路。对 SRAM而言,电路为触发器结构 1.六管 SRAM 的电路构成(教材 P.73 图 2.2 ) 2.该电路工作原理

设 T1截止 T2 导通即 A 点高电平 B 点低电平表示“ 1”, T2截止 T1 导通即 A 点低电平 B 点高电平表示“ 0”。

2.该电路工作原理 ( 1 )写入:首先译码选中。

写“ 1”:在 I/O 线加高电位,I/O 线加低电位。写完成后译码线上高电位信号撤销,电路进入保持状态。

( 2 )读出:首先译码选中。原来存放的“ 0”或“ 1”以不同电位值传到 I/O 线上。读完成后和写一样进入保持状态。

二、 SRAM 存储器基本组成

地址线 数 据线

控制信号

存储体阵列 I/O 电路及控制电路地址译码驱动

1 、存储体阵列:见下图,注意其中几个常用概念——( 1 )记忆元件(存储元)( 2 )存储单元( 3 )字线( 4 )位线( 5 )存储芯片规格。 字线 0 … … 字线 1 … … . ….. …… …….. …… ……. …….. 字线 m- 1 位线 0 位线 1 位线 2 位线 n- 1

0 1 2 n-1

0 1 2 n-1

0 1 2 n-1

【练习】名词解释:存储元、存储单元、单元地址、存储体、存储容量、存储器。 解答: 存储元(存储元件、记忆元件)— 存储器的最小组成单位,用来存放一位二进制代码“ 0”或“ 1”。任何一个具有两个稳定状态的物理器件都可用作存储元。 存储单元— 将存储器中的所有存储元按相同位数分组,组内所有存储元同时进行信息写入或读出,这样的一组存储元称为一个存储单元。它是 CPU访问存储器的基本单位。

解答(续): 单元地址— 存储器中的每一个存储单元都有一个唯一的编号,该编号称为单元地址。 CPU通过单元地址访问相应的存储单元;用二进制表示的地址码的长度(位数),表明了能访问的存储单元的数目,称为地址空间。

存储体

┇┇┇

存储单元••• ••• •••

存储元单元地址00…0000…01 . . . . .XX…XX

存储容量

MAR

CPU

存储器主要概念之间的关系图

2 、地址译码驱动系统( 1 )地址译码器的功能:把CPU给定的地址码翻译成能驱动指定存储单元的控制信息。 ( n----2n )( 2 )简单译码器电路( 3 )“驱动”的含义( 4 )地址译码系统的设计——一维和二维地址译码方案及选择 例: 1K X 4 位 RAM 的地址译码方案。

A0 字线w00 字线 W01 A1 字线 W10 字线 W11 A0 A0 A1 A1

&

&

&

&

地址译码系统的设计例子: 1K X 4 位 RAM 。 一维地址译码方案:存储体阵列的每一个存储单元由一条字线驱动。也叫单译码结构。例中用此方案共需字线条数为: 1024条 二维地址译码方案:从CPU 来的地址线分成两部分,分别进入 X (横向)地址译码器和 Y(纵向)地址译码器,由二者同时有效的字线交叉选中一个存储单元。 例中将 1K X 4 RAM 的 10条地址线中 6条( A0~A5 )用在横向, 4条( A6~A9 )用在纵向,则共产生字线条数为: 64+16=80条 1K X 4 位 RAM 二维地址译码的图示:

X地址译码器

0/1

I/O

I/OI/OI/O

Y地址译码器A6 A7 A8 A9

A0A1A2A3A4A5

0

63

0 15

1K X 4 位 RAM 二维地址译码示意图

3 、 I/O 电路 处于存储芯片的数据线和被选中的单元之间; 不同存储芯片的 I/O 电路具体形式可能不同,但功能类似。4 、控制电路 用于控制芯片的操作,如读写控制、片选控制、输出控制等(一般表示为 R/W或WE 、 CS或 CE 、OE )。以上四部分封装在一起成为一片 SRAM 。请看教材 P.74 图 3.3 ---- SRAM 存储器结构图:

64X64=4096存储矩阵1

2

16⁊⁊⁊

I/O 电路Y译码器1 ••• ••• 64

•••A6 A7 A11

输出驱动控制电路

输出输入

读写 片选

驱动器

12•••64

X译码器

12•••64

地址反相器•••

A0A1

A5

•••

图 3.3 SRAM 存储器结构框图

三、 SRAM 芯片实例—— Intel 2114请看教材P.76 图 3.5 ,完成下面作业:【作业】 请从 Intel 2114 的逻辑结构框图说明:1 、 2114 芯片引脚数目2 、地址线的横向、纵向安排3 、写入与读出的控制四、存储器与 CPU 的连接 ( RAM 芯片的扩展、 RAM 芯片的组织、由 RAM 芯片构成主存) 用较小容量的现成RAM 芯片构成机器所需的大容量内存,同时完成RAM 芯片与 CPU 的数据线、地址线、控制线的连接。

(一)扩展方法的实例 现有 2114即 1K X 4SRAM 芯片,要构成 8K X 16 位主存,应该用多少片 2114?画出扩展、连接图。 解答: 首先计算用多少片 2114 :( 8K X 16 ) / ( 1K X 4 ) =32片然后进行位扩展:把 1K X 4扩成 1K X 16 ,用 16/4=4 片 最后进行字扩展:把 1KX16 位扩展到 8KX16 位 ,需要 1KX16 位的单元共 8K/1K=8个,即总共用 2114 为 8X4=32 片 以下分别为位扩展、字扩展图:

A0……A9 R/W 2114(1#)CS D3 D2 D1 D0

A0……A9R/W 2114(4#)CSD3 D2 D1 D0

A9

A0

D15

D12

D3

D0R/W

1K X 4扩展成 1K X 16 :位扩展、并联

……

字扩展: 1K 字— 8K 字,用上面位扩展得到的1KX16 位单元共 8K/1K=8个,即总共用 2114为 8X4=32 片。见下图:A12 Y7A11A10 Y0A9A0

D15D12D3D0R/W

3/8译码器

A0……A9R/W 1# CS

D3…...D0

A0……A9R/W 4# CSD3……D0

A0……A9R/W29#CSD3……D0

A0……A9R/W32#CSD3……D0

( 1KX4—— ) 1KX16——8KX16 的扩展图:串联…

(二)补充资料:主存设计过程的三个阶段1 、系统设计从计算机系统的角度,提出对存储器主要技术指标、功能及结构形式等的要求,如容量、字长、存储周期、总线宽度、控制方式、检纠错能力、环境温度、可靠性等要求。还要确定存储器类型和外电路形式……。2 、逻辑设计 按地址空间的分配选择合适的 RAM 、 ROM 芯片与 CPU相连。其中还要考虑到逻辑电路的扇入 /扇出系数,信号的传输与衰减,等等。3 、工艺设计落实于生产。问:前例 RAM 的扩展属于以上三个阶段中的哪一个?

五、存储器的读写周期 (时序图 )——P.78 图3.8

TRC TA地址 TCOCS TCX数据输出 TOTD

TOHA

目的:了解控制信号与存储器的读 /写周期应该正确配合,即,认识地址信号、控制信号与数据之间的时序关系。

地址 地址数据 数据CS* CS*

R/W* R/W*

P.79【例 1 】图 3.9 ( a )是 SRAM 的写入时序图。其中 R/W*是读写命令控制线,当 R/W*线为低电平时,存储器按给定地址把数据线上的数据写入存储器。请指出图 3.9 ( a )写入时序中的错误,并画出正确的写入时序图。

图 3.9( a ) ( b )

有关的书后习题: P.125习题 1 、设有一个具有 20 位地址和 32 位字长的存储器,问: ( 1 )该存储器能存储多少个字节的信息? ( 2 )如果存储器由 512K X 8 位的 RAM 芯片组成,需要多少片? ( 3 )需要多少位地址作芯片选择? 解: ( 1 ) 220 X 32 位即 1M X 32 位 =4M 字节 ( 2 ) N= ( 1M X 32 ) / ( 512K X 8 ) =8 (片) ( 3 )用 A19即只需 1 位(最高位)作为芯片选择。

5 、要求用 256K X 16 位 SRAM 芯片设计 1024K X 32 位的存储器。 SRAM 芯片有两个控制端:当CS*有效时,该片选中。当W*/R=1 时执行读操作,当W*/R=0 时执行写操作。( *代表该信号为低电平有效) 解答: 首先计算出需要 1024K X 32/ ( 256K X 16 ) =8 片已知的SRAM 芯片进行设计;然后进行并联设计——位扩展: 2 片 256K X 16 ——256K X 32 ; 最后进行串联设计——字扩展: 4组 256K X 32——1024K X 32 。扩展设计的总图如下:

A17…A0256KX16

1#W*/R CS*D15…D0

A17…A0256KX16

8#W*/R CS*D15…D0

A17…A0256KX16

7#W*/R CS*D15…D0

A17…A0256KX16

2#W*/R CS*D15…D0

D31

D0WE*

Y3*Y2*Y1*Y0*

A19

A18

A17

A0

……

2/4译码器

3.2.2 DRAM 存储器一、静态RAM 与动态RAM静态RAM : (如前所述的六管 SRAM )记忆元件电路能在很低的频率乃至直流的情况下工作,在没有外界信号作用时,触发器的状态可以长久保持不变,即信息不会丢失。 动态RAM :利用 MOS 管栅极电容上充积的电荷来存储信息的记忆元件电路中,由于有漏电阻的存在,电容上的电荷不可能长久保存,需要周期地对电容充电,以补充泄漏的电荷。这类电路是在动态的情况下工作,故名Dynamic RAM (DRAM )。

二、为什么提出动态存储单元 静态 RAM 主要优点: SRAM 单元电路能长久保持信息,速度快工作稳定可靠。 主要缺点: 功耗大,集成度低,价格高。DRAM 单元电路恰好克服了这种缺点。DRAM 的出现是半导体存储技术的一大进步。

①动态 RAM 的高位密度。对静态 RAM 来说,一个基本存储电路要由 6个管子组成,而动态 RAM 结构要简单得多,可以用 4个或者 3个管子组成一个基本存储电路,甚至用 1个管子也可以。这样,在一个半导体芯片上,如要制造动态 RAM ,就可容纳更多的基本存储电路,即位密度得到显著提高。于是,如果用动态 RAM 来组成指定容量的存储模块,所用的器件要比用其他类型的器件大大减少。

②动态 RAM 的低功耗特性。同样为一个基本存储电路,动态 RAM 的功耗要比静态 RAM 的低得多。具体地说,动态 RAM 每个基本存储电路的功耗为 0.05mw。而静态 RAM 为 0.2mw。动态 RAM 的低功耗特性减少了系统的功率要求,也降低了系统的价格。③动态 RAM 的价格低廉。如果按“位”来计算,动态 RAM比静态 RAM更便宜得多。不过,动态 RAM 需要较多的支持电路,所以,如果要建立的存储系统容量比较小,那么,几乎谈不上什么优点。但是,在存储容量比较大时,动态 RAM 价格低廉的优点会很显著。

三、 DRAM 与 SRAM 构成上的异同点芯片结构类似点:都由存储体和外围电路构成。单元电路及外围电路的主要不同。

1 、电路组成:一只MOS晶体管 T 和一个电容C (作在T 的源极的一侧) 。2 、工作原理C上有电荷表示存储“1”,反之为“ 0”( 1 )保持状态保持状态字线为低电位, T 关闭,切断了 C 的通路,使所充电荷不能放掉。但电容总有一定的漏电阻,见右图。

字线 W T C CD D (位线)

三、 DRAM记忆元件电路之一:单管 DRAM

刷新的原因。

( 2 )写入:字线的正驱动脉冲打开T 。写“1”:在D线加高电位;写“0”:在D线加低电位。( 3 )读出:字线的正驱动脉冲打开T 。 原存“1”:电荷经 T使D线电位升高; 原存“0”:D线电位将降低。 单管DRAM 为“破坏性读出“电路。 读后立即写。

字线 W T C R CD

D (位线)

五、 DRAM 的刷新(刷新、再生— Refresh )1 、刷新的定义 在利用电容上的电荷来存储信息的动态半导体存储器中,由于漏电使电容上的电荷衰减,需要定期地重新进行存储,这个过程称为刷新。2 、刷新周期 对整个DRAM必须在一定的时间间隔内完成一次全部单元内容的刷新,否则会出现信息错误。从整个DRAM上一次刷新结束到下一次刷新完为止的时间间隔叫刷新周期。刷新周期一般为 ms 级,由电容中信息可保持的时间决定。( 2ms , 8ms , 4ms )

五、 DRAM 的刷新(刷新、再生— Refresh )3 、刷新过程 以行为单位,读出一行中全部单元的数据,经信号放大后同时全部写回; 行的含义; 读出时一定断开存储器的输出。4 、刷新方式(刷新的控制方式)——集中刷新、分散刷新和异步刷新通过 P.84 图 3.14 (三种刷新方式的时间分配)了解三种刷新方式; (例中 TM=0.5µs ,刷新周期为 2ms ,需刷新的存储矩阵为 128X128 )。

三种刷新方式的小结: ( 1 )第二种方式即分散方式的主要缺点; ( 2 )第一种与第三种方式即集中方式与异步方式的比较; ( 3 )刷新优先于访存,但不能打断访存周期。刷新其间不允许访存。

六、DRAM 芯片(特殊性) 1 、DRAM 芯片与 SRAM 芯片相同之处 2 、DRAM 芯片与 SRAM 芯片不同之处 ( 1 )增加了刷新控制电路:因此作DRAM扩展类题目时,一般不需表示出存储器芯片与 CPU 的连接; ( 2 )地址引脚复用——减少引线: 由 RAS*和 CAS*分时选择地址并锁存到芯片中; ( 3 )一般没有CS*信号; ( 4 )在X1 (例: 16KX1 、 256KX1 等)的DRAM 芯片中,数据线D常分为两个引脚:Din 和Dout 。

3 、 DRAM 芯片实例: 2116 ( 16KX1 ) Intel 2116 的逻辑符号见下图。

RAS* CAS*A6

A0

WE*

~ 16KX1bit

Din Dout

4 、 DRAM 控制器 ( 1 )是 CPU 与 DRAM 芯片之间的接口; ( 2 )提供 DRAM刷新的硬件支持。 一般 DRAM 控制器的逻辑框图如下(教材 P.85 图 3.16 ):

CPU

DRA

M

刷新地址计数器 地址多路开关刷新定时器 仲裁电路 定时发生器

地址总线

读 /写

地址

RAS*CAS*WR*

七、有关DRAM 芯片的书后习题 ----P.125 2 、已知某 64 位机主存采用半导体存储器,其地址码为26 位,若使用 256K X 16 位的DRAM 芯片组成该机所允许的最大主存空间,并选用模块板结构形式,问: ( 1 )若每个模块板为 1024K X 64 位,共需几个模块板? ( 2 )每个模块板内共有多少DRAM 芯片? ( 3 )主存共需多少DRAM 芯片?CPU如何选择各模块板? 解答:( 1 ) 226 X 64/ ( 1024K X 64 ) =64个模块板 ( 2 ) 1024K X 64/ ( 256K X 16 ) =16 片DRAM 芯片

( 3 )主存共需 64 X 16=1024 片DRAM 芯片; CPU 用 26 位地址的高 6 位经 6/64译码选择各模块板。 3 、用 16K X 8 位的DRAM 芯片构成64K X 32 位存储器,要求: ( 1 )画出该存储器的组成逻辑框图。 解答: 首先计算出需用DRAM 芯片的数量为: 64K X 32/ ( 16K X 8 ) =16 片;然后按 SRAM扩展的方法进行并联、串联;同时要考虑DRAM 芯片的特殊性; 作出如下的存储器组成逻辑框图:

A6…A016K X 8 1#

WRRAS*CAS*

D7…D0

A6…A016K X 8 4#

WRRAS*CAS*

D7…D0

A6…A016K X 8 13#

WRRAS*CAS*

D7…D0

A6…A016K X 8 16#

WRRAS*CAS*

D7…D0

A6~A0 ( A13~A7 )

… ……

D31

D0

A15

A14

与Y3*Y2*Y1*Y0*

与t1

t2t2=t1+Δt

… RAS3*

CAS3*

RAS0*RAS3*

用 16 片 16K X 8DRAM 构成 64K X 32 主存的逻辑图

( 2 )设存储器读 /写周期为 0.5s , CPU在1 s 内至少要访问一次。试问采用哪种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一遍所需的实际刷新时间是多少? 解答: 采用异步刷新较为合理。 关于两次刷新的最大时间间隔。 实际刷新时间—— 设每片DRAM 为 128 行,则有 ( 128 行 /组) X 4组 X 0.5 s/ 行 =256 s(注意:①芯片中行、列的数目要作为已知条件; ②刷新周期与刷新信号周期。)

( 3 )采用异步刷新方式,如单元刷新间隔不超过 8ms ,则刷新信号周期是多少?8000 (s)/128(行 /组 )×4组 =15.5(s)

3.3 只读存储器和闪速存储器 3.3.1 只读存储器 ROMSRAM 、 DRAM都是挥发性( volatile )存储器,而 ROM 是非挥发性的存储器。(易失性、非易失性存储器)ROM 中一旦有了信息,就不能轻易改变,也不会在掉电时丢失,它们在计算机系统中是只供读出的存储器。ROM 器件有两个显著的优点:

1. 结构简单,所以位密度比可读/写存储器高。 2.具有非易失性,所以可靠性高。

由于 ROM 器件的功能是只许读出,不许写入,所以,它只能用在不需要经常对信息进行修改和写入的地方。计算机系统中,一般既有 RAM模块,也有 ROM模块。 ROM模块中常常用来存放系统启动程序和参数表,也用来存放常驻内存的监控程序或者操作系统的常驻内存部分,甚至还可以用来存放字库或者某些语言的编译程序及解释程序。

一、 MROM——全固定、掩模型 ROM 1 、概念解释 M : Mask即掩模(膜)版。半导体 IC 的制作工序中关键的一项是光刻。各种元件尺寸和元件间连接都靠光刻工艺完成,而光刻是通过掩模版曝光刻出图形来。 所以,制作 ROM 时,可根据使用的具体需要,在制作 mask时将信息( Program )编排进去。光刻成的 ROM ,所存信息与 mask完全一致,不可改变。故名全固定 ROM 。

2 、 MROM特点:掩膜型 ROM又可分为 MOS型和双极型两种。 MOS型功耗小,但速度比较慢、微型机系统中用的 ROM 主要是这种类型。双极型速度比 MOS型快,但功耗大,只用在速度要求较高的系统中。适合大批量生产已成型的产品。小量生产则成本上升( mask制作工艺复杂,周期长)。所以,总是在一个计算机系统完成开发以后,才用掩膜 ROM 来容纳不再作修改的程序或数据。

3 、 MROM 例图( 32 字 X8 位) VC A0 0 A1 W0 1 W1 A4 31 W31 D0 D1 D7

地址译码器

二、一次可编程的 ROM—PROM ( Programmable )何为 PROM :制造者生产 ROM 时为全“ 0”或全“ 1”出厂。用户可以根据需要用专门的写入器(编程器)写入信息。一旦写入,不可更改。 PROM 的两种类型 1 、结击穿(结破坏)型 2 、熔(断)丝型写入时,利用外部引脚输入地址,对其中的二极管键进行选择,使某一些被烧断,某一些保持原状,于是就进行了编程。

三、可擦除可编程 ROM—EPROM ( Erasable PROM )光擦,电擦等。具体种类较多。满足灵活性需要。但两次改写之间仍是只读的。而且可改写的次数也是有限的。

1 、光擦除 EPROM 存储单元一般为 MOS晶体管,栅极是一个被绝缘体隔绝的悬空的多晶硅电极,初始时栅极上没有电荷。 编程时加 25V电压,可向栅极注入电荷( 负),使晶体管导通。 电压撤掉,绝缘体隔绝了电荷,使晶体管保持导通(或截止),从而存储数据。紫外线擦除;又称 UVEPROM 。在 EPROM 芯片上方有一个石英窗,从而允许紫外线穿过而照射到电路上。此时,聚集在各基本存储电路中的电荷会形成光电流泄漏走使电路恢复为初始状态,从而擦除了写入信息。

EPROM 一般用在软件或系统开发阶段,一旦设计过程彻底完成,就用掩膜型 ROM或者 PROM 取而代之。因为 EPROM可以擦除,所以,它们换下来后还可以反复使用。 EPROM在初始状态下,所有的数位均为“ 1” ,写入 时只能 将“ 1” 改变 为“ 0” , 用紫外 线光源抹除时 ,才能 将“ 0”变为“ 1”

2 、电可擦写 PROM——EEPROM或 E2PROM擦除机理不同: EEPROM增加了一个控制栅极,擦写时在源极加较高的编程电压 Vpp,而控制栅极接地。电场作用使浮置栅极上的电子越过氧化层进入源区,被外加电源中和掉。两个写周期完成擦除和写入。可字节擦,也可全片擦。

3.3.2 闪速存储器( flash memory :快闪存储器、快擦存储器)在 EEPROM基础上发展起来的新型电可擦除非挥发性存储器件。 存储单元结构类似于 EEPROM ,主要差别是闪存的氧化层较薄,因而电擦性能更好。特点: 从全片擦除进步到部分(块)擦除,适合文件存储; 擦写次数 10万次以上,读取时间小于 90ns ;

固有的非易失性 RAM断电后保存的信息随即丢失,闪存具有可靠的非易失性,是一种理想的存储器

廉价的高密度 1M 位闪存的位成本比 SRAM低一半以上, 16M的更低;与 DRAM相比节省后援存储器的费用和空间

可直接执行 省去了从磁盘到 RAM 的加载步骤,工作速度仅取决于存取时间

固态性能 低功耗、高密度、无机电移动装置,适合于便携式计算机,替代硬盘的理想工具

3.3.2 闪速存储器( flash memory :快闪存储器、快擦存储器)用途: 作为系统软件核心部分的存储器; 外部数据采集; 在某些应用中代替硬盘(被称为固态盘而广泛用于便携式计算机系统)。3.3.3 ROM 、 RAM 与 CPU 的连接 按照指定的地址空间分配,正确选择所给各种存储器芯片及其它片子、门电路等; 将对应的地址线、数据线、控制线连接起来,构成较完整的处理器与存储器的相连系统。

例之一:教材P.93【例 3 】。CPU 的地址总线 16根( A15~A0),双向数据总线 8根(D7~D0),控制总线中与主存有关的信号有MREQ*(允许访存,低电平有效), R/W*(高电平为读命令,低电平为写命令)。主存地址空间分配如下:0~8191 为系统程序区; 8192~32767 为用户程序区;最后(最大地址) 2K 为系统程序工作区。上述地址为十进制,按字编址。现有如下存储器芯片: EPROM : 8KX8 位(控制端仅有CS*)SRAM : 16KX1 位, 2KX8 位, 4KX8 位, 8KX8 位请从上述芯片中选择适当芯片设计该计算机主存储器,画出主存储器逻辑框图。注意:

画出选片逻辑(可选用门电路及 3 : 8译码器74LS138 )与 CPU 的连接,说明选哪些存储器芯片,各选多少片。作为此类设计常用芯片,首先回顾 74LS138译码器:( 1 ) 74138 的逻辑符号

G1G2AG2BCBA

Y7

Y0

¦¦

其中:G1 , G2A , G2B 为输入控制端;C , B , A 为译码输入端;Y7 ,……, Y0 为译码输出端。( 2 ) 74138 的真值表:

G1 G2A G2B

C B A Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0

0 X X

X X X 1 1 1 1 1 1 1 1 X 1 X

X X X 1 1 1 1 1 1 1 1 X X 1

X X X 1 1 1 1 1 1 1 1 1 0 0

0 0 0 1 1 1 1 1 1 1 0 1 0 0

0 0 1 1 1 1 1 1 1 0 1 1 0 0

0 1 0 1 1 1 1 1 0 1 1 1 0 0

0 1 1 1 1 1 1 0 1 1 1 1 0 0

1 0 0 1 1 1 0 1 1 1 1 1 0 0

1 0 1 1 1 0 1 1 1 1 1 1 0 0

1 1 0 1 0 1 1 1 1 1 1 1 0 0

1 1 1 0 1 1 1 1 1 1 1

解题的步骤: 1 、完整列出二进制表示的地址空间分配 A15A14A13 A12A11A10A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ┇ ┇ 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1

1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 ┇ ┇ 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1

1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 ┇ ┇ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1

空闲未用的区域

解题步骤: 2 、根据空间分配和题意确定存储芯片类型及数量,同时确定 74138 的输入、输出端如何使用。( 1 )前 8K 选用一片 8KX8 的 EPROM即可,用 74138的 Y0 输出进行该片的选片(即 A15A14A13=000 );( 2 )相邻 24K 选用 8KX8 的 SRAM 三片即可,用 74138 中 Y1 、 Y2 、 Y3 分别选三片中的一片(即 A15A14A13 =001 、 010 、 011 );( 3 )末 2K 用一片 2KX8 的 SRAM即可,在 74138 的Y7 输出有效的基础上再加入 A12 、 A11同时为 1 的条件——用一个非门和一个与门逻辑就可以实现。 解题步骤: 3 、作出连接图。(教材P.94 图 3.24 。)

D0┆D7

A0 ┆A10A11A12A13A14A15 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7

G2A 74LS138G2B A B C G1 MREQ

V

R/W

8KBSRAM

CPU CS CS8KBSRAM

D7…D0

CSA0…A12

8KBEPROM

D7…D0

CSA0…A12

D7…D0

CSA0…A10

2KBSRAM

8KBSRAM

A0…A12A0…A12

D7…D0D7…D0

例之二:设 CPU共有 16根地址线, 8根数据线,并用 MREQ*作访存控制信号(低电平有效),用 WR*作读写控制信号(高电平为读,低电平为写),现有下列芯片及各种门电路(自定)如图。画出 CPU 与存储器的连接图。要求: Am……A0 Ak…...Ao

Dn…… Do Dn… ..Do 2KX8 位 1KX4 位 8KX8 位 2KX8 位 32KX8 位 8KX8 位 16KX1 位, 4KX4 位

74LS138CS

RD ROM CSWE RAM

( 1 )存储芯片地址空间分配为:最大 4K空间为系统程序区,相邻的4K 为系统程序工作区,最小 16K 为用户程序区;( 2 )指出选用的存储芯片类型及数量;( 3 )详细画出片选逻辑。 ROM : 2KX8 位 RAM : 1KX4 位 8KX8 位 2KX8 位 32KX8 位 8KX8 位 16KX1 位 4KX4 位解答:步骤1 、地址空间分配:强调必须用二进制完整列出,否则无法正确选片。

A15A14A13A12A11A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

中间有 40K 的空白未用地址空间

4K

4K

16K

步骤 2 、确定芯片的类型和数量。除了 74138译码器与门电路之外要选:( 1 ) 4K 的系统程序区用两片 2K X 8 位的 ROM ,片选用 74138 的 Y7 输出加进 A12 、 A11组合分别为 11 和 10 (各对应一片)的条件,可以用简单门电路实现。( 2 )相邻 4K 的系统程序工作区用 4K X 4 位的 RAM进行位扩展即可。片选用 74138 的 Y7 输出加进 A12=0 的条件即可。( 3 )最小 16K 用户程序区用两片 8K X 8 位的 RAM ,两片的片选分别用 74138 的 Y1 、 Y0 输出端。步骤 3 、作出连接图

MREQ

A15A14A13A12A11A10A9

A0

D7D0WR

8KX8RAM

8KX8RAM

2KX8ROM

2KX8ROM

4KX4RAM

4KX4RAM

或非

或或非

+V

┇┇┇

G1G2AG2B

CBA

Y7

Y1Y0

… … …… …… …. ….

有关 ROM 的书后习题 P.125 6 、用 32K X 8 位的 EPROM 芯片组成 128K X 16 位的只读存储器,试问: ( 1 )数据寄存器多少位? ( 2 )地址寄存器多少位? ( 3 )共需多少个 EPROM 芯片? ( 4 )画出此存储器组成框图。 解答( 1 ) 8 位, 16 位; ( 2 ) 15 位, 17 位; ( 3 )共需 128K X 16/ ( 32K X 8 ) =8个 EPROM 芯片; ( 4 )存储器的组成框图如下:

A14…A032K X 81# CS*D7…D0

A14…A032K X 8CS* 2# D7…D0

A14…A032K X 87# CS*D7…D0

A14…A032K X 8CS* 8# D7…D0

D15D8D7D0

……

A14

A0

… …

2/4译码A16

A15

有关 ROM 的书后习题 P.125 7 、某机器中,已知配有一个地址空间为 0000H~3FFFH的 ROM区域。现在再用一种 RAM 芯片( 8K X 8 )形成 40K X 16 位的 RAM区域,起始地址为 6000H。假设 RAM 芯片有CS*和 WE*信号控制端。 CPU 的地址总线为A15~A0 ,数据总线为 D15~D0 ,控制信号为R/W (读 /写), MREQ*(访存),要求: ( 1 )画出地址译码方案。 ( 2 )将 ROM 与 RAM同 CPU 连接。

7 、解答:作出地址空间分配方案: A15A14A13A12A11A10A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3FFFH 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 6000H 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 FFFFH 选用 10 片 8K X 8RAM 芯片两两并联后五组再串联: (只画出了 RAM 与 CPU 的连接,读写控制线图中没有画出)

D0……D78KX8 RAM

1# CS*A0……A12

D0……D78KX8 RAM

CS * 2# A0……A12

D0……D78KX8 RAM9# CS*

A0……A12

D0……D78KX8 RAMCS * 10#A0……A12

CPU

D15┇D8D7┇D0

A0┇┇A12

A13A14A15MREQ

ABC G2A* G2B* G1

Y3* Y7*74LS138

……

…… ……

V

3.4 高速存储器题意—— 提高存储器工作速度的技术(频带平衡) 解决存储器与 CPU 速度不匹配 容量、速度、价格的矛盾 提高存储器速度——减小内存与 CPU之间速度差异的主要途径—— 在CPU 内部设多个通用寄存器; 研究新的DRAM 芯片技术; 在结构技术上考虑更好的措施; 从系统结构角度考虑采用多层存储体系。

(每项技术措施都是为了整体改善存储器性能价格比,但不同技术主要针对某个存储器技术指标的提高。) 1 、芯片技术在DRAM 芯片中采用高速存取方式。 快速页面访问方式( FPM ):此次访问的存储单元与上次访问的单元处于存储单元阵列的同一行(即页面)时,可以利用上次访问的行地址。比一般访问提高 2~3 倍。

增强数据输出存储器( EDO DRAM ):在FPM DRAM 的基础上,增加一个数据锁存器,在输出一个数据的过程中就准备下一个数据的输出。性能提高 15%~30%。同步型DRAM ( SDRAM ):将 CPU 和 RAM通过一个相同的时钟锁在一起。实际是通过地址、数据锁存及流水方式达到同步。 RDRAM ( Rambus DRAM ):经专用 RDRAM 总线与 CPU之间传送数据。 SLDRAM 。… …。 (???)芯片技术中还有:双端口存储器;相联存储器 ;等等。

2 、结构技术—— 选定存储芯片后,进一步提高存储器性能的措施:从结构上提高存储器的带宽; 实际是采用并行操作的存储器; 主要采用技术——多体交叉存储技术。 3 、采用多层次存储体系结构 (寄存器——) Cache—— 主存——辅存; 其中 Cache 技术面向速度问题而虚存技术面向容量问题。

3.4 高速存储器

地址寄存器

地址寄存器

译码器译码器

存储体

地址 地址

MDR MDR数据 数据读写电路 读写电路WE WE

MAR MAR

双端口存储器框图

3.4.1 双端口存储器一、端口的含义 指读写口,含地址寄存器、地址译码器、数据寄存器和读写控制电路。见下图。

仲裁逻辑

二、无冲突和有冲突的读写 三、双端口存储器的应用场合 1 、多层次存储器系统中的 Cache 采用双端口结构; 2 、一般主存用来实现 CPU 和其他总线主设备(如DMAC 和 IOP )同时并行访问; 3 、多机系统中可用来实现多机之间信息交换 (可考虑用多端口);双端口存储器是显示卡上的显示存储器的主要形式;…。

3.4.2 多模块交叉(多体交叉)存储器 一、多体交叉存储器的实质是并行的主存系统 1 、并行主存的含义 数据总线仍然是单字宽( W ),却能在一个存取周期 Tm访问到多个字( nW )的信息。 2 、实现并行的基础 用多个( n个)存储体(存储模块)组成主存。回忆RAM扩展时将 1KX4 芯片组织成 8KX16 存储器的方法: ( 1 ) 4个芯片位扩展为 1KX16——称其为一个分(存储)体或一个模块(板); ( 2 )再用 8个模块字扩展成 8KX16 的主存;

A12 Y7A11A10 Y0A9A0

D15D12D3D0R/W

3/8译码器

A0……A9R/W 1# CS

D3…...D0

A0……A9R/W 4# CSD3……D0

A0……A9R/W29#CSD3……D0

A0……A9R/W32#CSD3……D0

该图所示结构已经具备了并行的基础;但因为线性地址在各模块间的安排是顺序方式的,实际上只起到了扩充容量的作用,而没有达到增加频宽进而提高存取速度的目的。…

二、多模块存储器中线性地址的两种安排方式 1 、顺序方式 线性地址按模块走,第一块排完再排第二块… . ;编址为高位交叉。 2 、交叉方式 线性地址逐模块走,所有块编一个单元,再回到第一块……;编址为低位交叉,真正的并行主存系统中常用的是这种方式。 以上两种方式图解如下: (类教材 P.101 图 3.29 )

00000M0 M1 M2 M3

内存地址:4 3 2 1 0

00001000100001100100001010011000111

0100001001010100101101100011010111001111

1000010001100101001110100101011011010111

1100011001110101101111100111011111011111

模块 ( 分体 )号 块内字地址

数据寄存器 MDR ( 16 位)DB ( 16 位)

多模块的顺序编址方式

整个内存需地址寄存、数据寄存和读写控制电路各一套。16 位 16 位 16 位 16 位

译码器

00000

数据总线 DB ( 16 位)

内存地址:4 3 2 1 0

00001

00010 0001100100 00101 00110 0011101000 01001 01010 0101101100 01101 01110 0111110000 10001 100

101001110100 10101 10110 10111

11000 11001 11010 1101111100 11101 11110 11111

模块 ( 分体 )号块内字地址 译码器寻找模块多模块的交叉编址方式

MDR0 MDR3MDR2MDR1

MAR0 MAR3MAR2MAR1

16 位 16 位16 位16 位

n个并行的存储体具有各自的地址寄存器的地址译码、驱动、读放等电路

三、多体交叉存储器的工作原理( Interleaved memory ) 1 、地址交叉排列的目的获得比单体或多体顺序排列方式更高的频宽。【例】在一个具有 4个存储体的多体交叉存储器中,如果处理器的访存地址为以下十进制值;求该存储器比单体存储器的平均访问速率提高多少(忽略初启时的延迟)?( 0001 为第一个地址。)( 1 ) 0001 , 0002 , 0003 ,…, 0100( 2 ) 0002 , 0004 , 0006 ,…, 0200( 3 ) 0003 , 0006 , 0009 ,…, 0300—— ( 1 ) 4 倍 ( 2 ) 2 倍 ( 3 ) 4 倍

2 、多体交叉存储体分时工作原理 无论多体存储器中有几个分体, CPU 与主存之间数据通路仍是一个字长的 W 位。 n个W 位如何在一个存储周期 Tm 中读出?一般采用分时启动分体的分时读出法:设有 n个分体(模块),各自的存取周期都是 Tm ;则第一个分体启动后,每隔 1/n个 Tm再启动下一个分体。例:设有 4 体交叉的存储器,分时即每隔 1/4Tm启动一个分体,见图示。

分时启动各个分存储体的示意图(以四体交叉存储器为例)M3

M2

M1

M0

1/4 2/4 3/4 1 2 t(Tm) 可见多体交叉存储器是一种采用流水方式工作的并行存储器系统。

3 、交叉存取度(计算问题) ( 1 )概念与例题说明 设多体中各分体(模块)字长等于数据总线宽度;又设各模块存取周期为 T ,总线传送周期为,存储器的模块数为 m ,为了实现流水存取,应满足: T= m m=T/ 叫做交叉存取度。 存储器的模块数必须大于或等于 m t1=T+( m-1 )为交叉存储器连续取 m个字所需时间;( P.102 图 3.31 ) t2=mT 为顺序存储器连续取 m个字所需时间。

T 时间

字模块

W0 M0

W1 M1

W2 M2

W3 M3

W0 M0

初启延迟P.102 图 3.31流水方式存取示意图

【例 4】设存储器容量为 32 字,字长 64 位,模块数 m=4 ,分别用顺序方式和交叉方式进行组织。存储周期 T=200ns ,数据总线宽度为 64 位,总线传送周期 =50ns 。问顺序存储器和交叉存储器的带宽各是多少? 解:二者读出 4个字的信息量均为 64 X 4=256 位;所需时间分别为: T1=T+( m-1 ) =350ns T2=mT =800ns 带宽分别为: W1=256/350=73 X 107 位 /s W2=256/800=32 X 107 位 /s???带宽的物理含义。 Bm=W/Tm :单位时间里存储器所存取的信息量。

( 3 )有关多体交叉存储器的书后习题: P.125习题 8 、 P.126习题 138 、设存储容量为 64M ,字长为 64 位,模块数 m=8 ,分别用顺序和交叉方式进行组织。存储周期 T=100ns ,数据总线宽度为 64 位,总线传送周期 =50ns 。求:顺序存储器和交叉存储器的带宽各是多少?解答:m=8 ,从存储器读取 8个字的位数为 W=8 X 64=512 (位)

顺序存储器要取的 8个字在同一分体(模块)内,所用时间为 t2=8 X Tm=8 X 100=800 ( ns ) 频宽为 Bm2=W/t2=6.4 X 108 ( bits/s ) 交叉存储器要取的 8个字在 8个模块内,所用时间为 t1=Tm+( m-1 ) X (总线传送周期) =100+7 X 50=450 ( ns )频宽为 Bm1=W/t1≈1.14 X 109 ( bits/s ) ( 比较大小。 )

13 、某机器采用四体交叉存储器,今执行一小段循环程序,此程序放在存储器的连续地址单元中。假设每条指令的执行时间相等,而且不需要到存储器存取数据,请问在下面两种情况中(执行的指令数相等),程序的运行时间是否相等? ( 1 )循环程序由 6条指令组成,重复执行 80 次。 ( 2 )循环程序由 8条指令组成,重复执行 60 次。 解答:

… … … …

指令 1指令 5 指令 2指令 6 指令 3 指令 4指令 7 指令 8M0 M3M2M1

( 1 ) T1= ( T+3 +T+ ) X 80=160T+320 ( 2 ) T2= ( T+3 +T+ 3 ) X 60=120T+360 T1-T2=40 ( T- )∴T1>T2∵T>

4 、多体交叉存储器的几点补充说明 ( 1 )采用低位交叉方式工作的存储器实际是一种流水方式工作的并行存储器系统。能够大幅度提高主存储器的速度,在共享主存的多机系统及许多高速的单机系统中用作主存。 ( 2 )增加存储体个数(多模块的块数)可提高主存速度,但是,主存速度并非随存储体个数增加而线性提高。 ( 3 )多体交叉存储器在提高频宽的同时也扩大了容量,但使用该技术的主要目的是为了速度而不是容量。

5 、多体交叉存储器的组成框图 I/O处理器

CPU

M0 M1 M2 M3

总 线 控 制IOP

地址 地址 地址 地址存 储 器 控 制 器

存控的作用——组织多体并行工作,实现分时流水读出,管理信息流动次序和方向。

3.4.3 相联存储器( CAM——Content Access Memory )一、相联存储器的实质(工作原理) 按内容访问的存储器。“内容”指存储单元中一个子段(字段)。 将数据字的某字段作为关键字,给出要找数据字的关键字的值,用它与存储体中所有单元进行比较,找出关键字相同的数据字,且,有多少个找出多少个。二、相联存储器的结构与功能结构框图如下:

检索寄存器( n 位)屏蔽寄存器( n 位)

数据寄存器( n 位)

存储体(包括比较电路)( m个单元,每单元 n 位)译码电路

地址寄存器12

m┇

匹配寄存器┇ ┇ ┇

••• •••

••• •••

••• •••

相联存储器的结构框图

①用来存放关键字②屏蔽关键字段以外的值。

③存储体中各单元相应字段同时与关键字比较,相同者,匹配寄存器相应位置为 1 。

④译码电路找到对应的存储单元。⑤数据寄存器存放读出或写入的数据。

也具备按地址访问的功能。

三、相联存储器的用途 1 、用在高速缓冲存储器中; 2 、在虚拟存储器中用作段表、页表存储器,或快表存储器; 3 、用于数据库和知识库中。

第三章 存储系统 习题课一、填空题 1 、某计算机字长 16bit ,存储器存储容量为 1MB ,若按字编址,那么它的寻址范围是( )。 2 、某 SRAM 芯片容量为 512 X 8 位,除电源和地线外,该芯片的引出线最小数目应为( )。 3 、DRAM靠( )存储信息,所以需要定期( )。 4 、主存储器的性能指标主要是( )、( )、存储周期和存储器带宽。主存用( )来区分不同的存储单元。

5 、存储芯片并联的目的是为了( ),串联的目的是为了( )。 6 、三级存储系统是指( )这三级。 7 、在多层次存储系统中,上一层次的存储器比下一层次存储器( )、( ),每位成本高。 8 、闪存特别适合于( )式微机系统,被誉为( )而成为代替磁盘的一种理想工具。 9 、相联存储器是按( )访问的存储器,同时也具备按( )访问的能力。 10 、双端口存储器和多体交叉存储器属于( )存储器结构。前者采用( )并行技术,后者采用( )并行技术。

11 、半导体 RAM 进行读写操作时,必须先接受( )信号,再接受( )信号和( )信号。 12 、当我们说 16 位微机的主存储器容量是 640KB 时,表示主存储器有( ) Bytes 存储器空间,地址号码是从( )号地址到( )号地址(本题均要求写出具体十进制数值)。 13 、建立高速缓冲存储器的理论依据是( )。

14 、某计算机字长 32 位,存储容量为 1MB ,若按字编址,它的寻址范围是( )。 15 、某计算机字长 16 位,存储容量为 2MB ,若按半字编址,它的寻址范围是( )。 16 、某计算机字长 32 位,存储容量为 8MB ,若按双字编址,它的寻址范围是( )。 17 、一个 16K X 32 位的存储器,其地址线和数据线的总和是( )条。 18 、DRAM 的刷新一般有( )、( )和( )三种方式, 之所以刷新是因为( )。

二、判断题 1 、多体交叉存储器主要解决扩充容量的问题。 2 、双端口存储器之所以能高速读写,是因为采用了流水技术。 3 、在 CPU 和内存之间增加 cache 的目的是为了增加内存容量,同时加快存取速度。 4 、 CPU访问存储器的时间是由存储体的容量决定的,容量越大,访问存储器所需时间越长。 5 、因为DRAM 是破坏性读出,必须不断地刷新。

6 、 RAM 中的任何一个单元都可以随时访问。 7 、 ROM 中的任何一个单元不能随机访问。8 、一般情况下, ROM 和 RAM在主存储器中是统一编址的。 9 、在当今的计算机系统中,存储器是数据传送的中心,但访问存储器的请求是由 CPU或 I/O 发出的。 10 、 EPROM 是可改写的,因而也是随机存储器的一种。 11 、DRAM 和 SRAM都是易失性半导体存储器。

三、综合题 1 、指出下列存储器哪些是易失性的?哪些是非易失性的?哪些是破坏性读出的?哪些是非破坏性读出的? SRAM ,DRAM , Cache ,磁盘,光盘 2 、通常情况下 SRAM 由哪几部分组成?简述各部分的作用。 存储体,地址译码驱动电路, I/O 电路(读写电路),控制电路。 P.74 3 、与 SRAM相比,DRAM在电路组成上有什么不同之处?

解答:DRAM还要有动态刷新电路;另外,一般DRAM 地址引线一般只有一半(约),用 RAS 、 CAS 来区分接收的是行地址或列地址;DRAM没有CS引脚,芯片扩展时用 RAS 代替其作用。 4 、设有存储器容量为 1MB ,字长为 32 位,若按以下方式编址,请写出地址寄存器、数据寄存器各为多少位?编址范围为多大? ( 1 )按字节编址; ( 2 )按半字编址; ( 3 )按字编址。

A9~A0CS2114-1WEI/O3~I/O0

A9~A0 A9~A0 A9~A0CS CS CS2114-2 2114-3 2114-4WE WE WEI/O3~I/O0 I/O3~I/O0 I/O3~I/O0

与 与与

…… … …

R/W

D7┇D0

A15A14~

A10A9~

A0

CPU

MREQ

5 、有 4 片 Intel 2114 芯片,如图连接。问:

( 1 )图示的连接组成了几部分存储区域?共有多大的存储容量?字长是多少? 解答:图中组成了两部分存储区域; 容量为 2K X 8 ,即字长 8 位。 ( 2 )写出每部分存储区域的地址范围。 解答:第 1 、 2 片 2114 地址范围是——FC00H~FFFFH( A15~A10=111111 ); 第 3 、 4 片 2114 地址范围是—— 7C00H~7FFFH( A15~A10=011111 )。 ( 3 )说明图中存储器的地址是否连续,若不连续,怎样修改才能使存储器的地址是连续的?

解答:图中存储器的地址不是连续的;可以将图中的 A15 与 A10 接线颠倒一下,原来的 7C00H~7FFFH( A15~A10=011111 )就变为F800H~FBFFH( A15~A10=111110 ),与另一部分 FC00H~FFFFH成为地址连续的存储器。

6 、描述 CPU访问存储器的步骤。 解答: ( 1 )通过地址总线送出存储单元的地址; ( 2 )通过控制总线发出读 /写命令; ( 3 )通过数据总线进行信息交换。 7 、试说明双端口存储器的结构特点和工作过程。

解答要点:结构特点——每个芯片有两组相互独立的读写控制电路(端口)。每个端口与普通 RAM 类似,较特别的是 BUSY信号,低电平有效时端口关闭,禁止访问。是一种并行存储器(空间)。 工作过程:分两个端口地址不同和地址相同的两种情况说明;后一种情况即读写冲突时,由双端口存储器内部的仲裁器根据两个端口的 CS (片选)信号或地址信号到达的先后次序的细微差别决定访问优先权由哪个端口取得。

8 、假如CPU 按以下地址相继访问存储器(以十进制表示):0000 , 0005 , 0010 ,…, 0285存储器为 4 体交叉存储器,求它比单体存储器平均访问速率提高多少?解答:访问地址间隔为 5 , 4 体交叉存储器中相继访问的地址在不同的存储体中;每隔 1/4 存储周期轮流启动各存储体,访问速率提高到单体存储器的 4 倍。

9 、如果从4 体交叉存储器取出 16个地址连续编号的数据,一个单体的存取周期为 T ,总共需要多少时间? 解答: T+15x1/4T=4.75T 10 、在一个8 体交叉存储器中,如果CPU 按以下次序相继访问存储器,其平均访问速率比单体提高多少? ( 1 ) 00018 , 00028 , 00038 ,…, 01008 ( 2 ) 00028 , 00048 , 00068 ,…, 02008 ( 3 ) 10038 , 10068 , 10118 ,…, 13008 解答( 1 )相继访问的地址选中 8个不同分体, 8 体重叠工作—— 8 倍; ( 2 ) 4 体并行工作—— 4 倍; ( 3 ) 8 体并行( 3 、 6 、 1 、 4 、 7 、 2 、 5 、 0 )。

11 、某微机的寻址范围是 64KB ,由 8 片 8KX8 位的芯片组成。 ( 1 )请写出每个芯片的寻址范围; 解答:第 1 片 0000H~1FFFH 第 2 片 2000H~3FFFH 第 3 片 4000H~5FFFH 第 4 片 6000H~7FFFH 第 5 片 8000H~9FFFH 第 6 片 A000H~BFFFH 第 7 片 C000H~DFFFH 第 8 片 E000H~FFFFH

( 2 )如果运行时发现不论往哪个芯片存放8KB 的数据,以 A000H为起始地址的芯片中都有与之相同的数据,请分析故障原因;该片的片选始终接地,或与之相连的译码器的相应输出端始终是低电平 ( 3 )若发现译码器输入中的地址线 A13 与CPU断开并始终搭到高电平上,问后果将会怎样?缺失了一半的地址空间,并且出现混乱。

3.5 Cache 存储器►回忆: Cache 的概念在本章中的初次引出 —— 多层次存储体系结构

cache

主存辅存

CPU

辅助硬件

►回忆: Cache 的定义(作用)辅助软、硬件

3.5.1 Cache 基本原理一、 Cache 的工作机制 ► Cache 的工作机制基于程序访问的局部性原则。(principle of locality ) ►“程序访问的局部性”定义 一个运行程序的代码大都顺序存放在地址连续的存储器中,与程序相关的数据在存储器中也相对集中。所以程序运行时,尤其有循环程序段和子程序段时,在较短时间区间内,常会对局部范围的存储器频繁访问,而此范围之外的地址访问甚少。这种现象称为程序访问的局部性。

►【例】选择一个正确答案:程序局部性理论的基本含义是——。A.空间局部性;B. 代码的顺序执行;C. 程序执行对主存的访问是不均匀的。二、 Cache 的构成1 、 “块”的概念( block, block frame )► Cache 存储器中,把Cache 和主存各分成若干块。(页、行 line )►主存与 Cache 中块的数目不同但块的大小相等。►块的大小通常以在主存的一个读 /写周期中能访问的数据长度为限,常为几十字节。► Cache 与主存之间数据交换的单位。

主存地址寄存器MAR

主存— Cache地址变换机构Cache地址寄存器CAR

Cache存储器

替换控制部件

CPU

不命中命中

单字宽

多字宽

地址总线

数据总线Cache 的构成图,虚框内为 Cache 的控制部分Cache=Cache 存储器 +Cache 控制器

2 、 Cache 的构成图

以下主要了解:Cache- 主存地址映射与地址变换的方法;简要了解:Cache 的写操作策略;替换策略;多级 Cache 。

三、 Cache 的命中率1 、命中率的公式► h=Nc/ ( Nc+Nm ) 教材P.106 ( 3.4 )►其中, Nc 表示在一个程序执行期间 Cache完成存取的总次数, Nm 表示在一个程序执行期间主存完成存取的总次数, h即为命中率。►命中率和哪些因素有关?—— 外部因素:所运行程序的特性; Cache自身的结构: Cache 的容量、块的大小、映射方式、替换算法……。

2 、与 Cache有关的另外两个参数及相关公式( 1 ) Cache/ 主存系统的平均访问时间 ta 设 tc 表示命中时即Cache 的访问时间, tm 表示未命中时即主存的访问时间, 1-h 表示未命中率,则有: ta=htc+( 1-h ) tm 教材P.107 ( 3.5)( 2 ) Cache 的访问效率 e 设 r=tm/tc 表示主存慢于 cache 的倍率, e 表示访问效率; 则有: e=tc/ta=tc/[htc+( 1-h ) tm]=1/[h+( 1-h ) r] =1/[r+( 1-r ) h] 教材P.107 ( 3.6)

【例】(由 P.107 例 5改进) CPU执行一段程序时, Cache完成存取的次数 1900 次,主存完成存取的次数为 100 次,已知Cache 的存取周期为 1ns ,主存存取周期为 6ns ,求 Cache/ 主存系统的效率和平均访问时间。 解: h=Nc/ ( Nc+Nm ) =1900/ ( 1900+100 ) =0.95 r=tm/tc=6ns/1ns=6 e=1/[r+(1-r)h]=1/[6+(1-6)X0.95]=80.0% ta=tc/e=1ns/0.80=1.25ns ( ta= htc+( 1-h ) tm =0.95X1+0.05X6=1.25ns e=tc/ta=1/1.25= 80.0% )

► 主存— Cache 地址映射( mapping) 把存放在主存中的程序按某种规则装入 Cache中,并依此建立主存地址与 Cache 地址的对应关系。► 主存— Cache 地址变换 程序运行时,根据地址映射把主存地址即MAR内容变换成 Cache 地址即 CAR 内容。 以上两个概念紧密相关而又不同。► 常用的三种地址映射方式及对应的地址变换方法:

3.5.2 主存与 Cache 的地址映射(映象)和地址 变换

一、全相联映射及其地址变换 1 、全相联映射( fully associative mapping) ► 映射规则: 主存中任一个块能够映射到 Cache 中任一块的位置。 ► 示意图 设 Cache块数 Cb=4 ,主存块数 Mb=8 , 主存— Cache 的全相联映射关系如下图。

00块000块主存

01块 10块 1 1块

001 块010 块011 块 100块101 块110 块111 块

Cache

••• ••• •••

主存 - Cache全相联映射规则示意图

Cb=4Mb=8注意:映射图中未表示块内字地址

2 、全相联映射方式的地址变换( 1 )全相联映射方式下的主存地址与 Cache 地址形式 ►主存地址形式——主存块号B+块内地址 W ; ► Cache 地址形式—— Cache块号b+块内地址w。( 2 )全相联映射地址关系的建立 ►用 CAM 构成目录表,该表由 Cb个字(等于 Cache 的块数)组成; ► 该目录表的 Cb个字中,每一字由主存块号B 、 Cache块号b 构成。(有效位)( 3 )地址变换 由 MAR 内容即主存地址变换出 CAR 内容即Cache 地址的过程如下:

主 存 块 号 B 块内地址 WCache块号 b块内地址w

主 存 块 号 B Cache块号 b

B b

••• •••

相联比较 命中不命中访问主存

MAR

CAR

目录表:共 Cb个字

全相联映射的地址变换示意图

用 CAM构成

3 、全相联映射的特点( 1 )块的冲突率最小, Cache利用率高;( 2 )代价较高( CAM ),相联比较的时间较长,影响 Cache 的速度。小容量适用。二、直接映射及地址变换1 、直接映射(direct mapping)►映射规则: 首先将主存按 Cache 的大小分区,然后各个区仍与 Cache 一样分成块:各区内的块数、块长均同Cache ; 主存各区中相同序号的块只能映射到 Cache 中相应序号的块中。►示意图:

00块

主存

01块10块11 块

000块00 1块0 10块01 1 块100 块10 1 块1 10 块1 1 1 块

0区

1区

主存 - Cache直接映射规则示意图Cache

设 j 为主存中某块块号,i 为 Cache 中某块块号,则直接映射关系可以表示成: i=j mod Cb

Cb=4Mb=8

v 2 、直接映射的地址变换( 1 )直接映射方式下的主存地址与 Cache 地址形式 ►主存地址形式——区号 E+主存块号B+块内地址 W ; ► Cache 地址形式—— Cache块号 b+块内地址w。( 2 )直接映射地址关系的建立 ►直接在Cache 的每一个块上增加一个“区号”内容的存储;当主存某块内容调入 Cache 某块位置时,在块的区号存储位置记录下该主存块属于哪一个区。( 3 )地址变换 由 MAR 内容即主存地址变换出 CAR 内容即Cache地址的过程如下:

直接映射的地址变换示意图( 区内 )块号 B区号 E MAR

块号 b 块内地址w CAR选择信号送 CPU相等不等

访问主存

区号 E 数据 D0数据 D1 数据 Dw-1E D0 D1 Dw-1

……

Cache

块内地址 W

比较 1/w多路选择器

按块地址访问

快速的

3 、直接映射的特点:( 1 )硬件实现简单,访问速度较快;( 2 ) Cache 的空间利用率低,常有块冲突,命中率也低。三、组相联映射及其地址变换1 、组相联映射( set associative mapping)►映射规则: 主存先按 Cache 大小分成若干个区;主存与 Cache 的各区内再分成大小相等的组;各组再分成大小相等的块; 组间采用直接映射:主存不同区中同序号的组只能映射到 Cache中同序号的组;

00块01块 11 块

111 块110块101块100块011 块010块001块000块

10块

0组1组0组1组

0区

1区1组0组

组相联映射规则示意图

主存Cache

组内各块采用全相联映射:一个组内各个块可映射到 Cache 中对应组中的任一块的位置。

2 、组相联映射的地址变换( 1 )组相联映射的地址形式 ► MAR 内容即主存地址形式—— 区号E+组号G+组内块号B+块内地址 W ► CAR 内容即Cache 地址形式—— 组号g+组内块号b+块内地址w( 2 )组相联映射地址关系的建立 用 CAM 构成“块表”; Cache 中有几组就有几个(小)块表; 每个(小)块表中的行数等于每组中块的个数; 块表内容及其填写。( 3 )地址变换

组相联映射的地址变换示意图区号 E 组号 G 组内块号 B 块内地址 W MAR

组号 g 组内块号 b 块内地址w CAR

相联比较 相等不命中访问主存 (命中)

区号 E 组内块号 B 组内块号 b┇

┇ ┇

块表:每组一个小块表,行数等于组内分块时块的个数。用 CAM构成。

用组号找到该组的小块表● ●用区号和组内块号进行相联比较

主 存 块 号 B 块内地址 WCache块号 b块内地址w

主 存 块 号 B Cache块号 b

B b

••• •••

相联比较 命中不命中访问主存

MAR

CAR

目录表:共 Cb个字

全相联映射的地址变换过程

用 CAM构成

直接映射的地址变换示意图( 区内 )块号 B区号 E MAR

块号 b 块内地址w CAR选择信号送 CPU相等不等

访问主存

区号 E 数据 D0数据 D1 数据 Dw-1E D0 D1 Dw-1

……

Cache

块内地址 W

比较 1/w多路选择器

按块地址访问

快速的

3 、组相联映射的特点:比全相联方式速度快,又减少了直接映射方式下块的冲突。提高了存储体系的效率,因此使用广泛。 关于“N路组相联”的概念。【例】一台计算机的主存容量为 1MB ,字长 32 位,直接映射的 Cache 容量为 512 字。试设计主存地址格式(设该机为字节寻址方式)。 ( 1 ) Cache块长为 1 字; ( 2 ) Cache块长为 8 字。 解答:主存地址位数为 20 位, Cache 地址位数为 11 位。 主存按 Cache 大小分区。其中分区个数: 1MB/512 字 =1MB/2KB=29个分区

区号 区内块号 块内地址直接映射方式下主存的地址格式为:

Cache 的地址格式为:块号 块内地址

由上可知区号始终为 9 位;

19 0

10 0

19 11

( 1 ) Cache块长为 1 字,每区有 512块,块号 9 位;

1 0

( 2 ) Cache块长为 8 字,每区有 64块,块号 6 位;

10 2

1 0

10 54 0

10 54 0

区号 区内块号 块内字地址 字节地址

10 2

3.5.3 替换策略 一、替换及替换算法的概念 1 、替换 主存—Cache 地址变换中一旦发生不命中,即需将主存中一个新的块调入 Cache ;而一般情况此时 Cache 中相应位置的块中已经装满数据,需找出一个不常用的块将其放入主存或丢弃,空出来的 Cache 位置放新调入的块,此为替换。 2 、替换算法 也叫替换策略。指按映射方式等决定如何进行相应的调入与调出块的操作。直接映射方式的替换策略。 高—主层次及主—辅层次均有替换问题。

二、几种常用替换算法的简要介绍 (均以硬件实现,以保证速度)LFU----Least Frequently UsedLRU----Least Recently UsedFIFO----First In First Out RND----随机替换 1 、LFU--- 最不经常使用算法 每块设置一个计数器,新块调入 Cache即从0开始计数; 某块被访问一次计数器加1 ; 需要替换时选特定块中计数值最小的块替换出去,同时所有特定的块的计数器清零。 能否严格反映近期访问情况? 2 、LRU----近期最少使用法

每块也设置一个计数器,某块被访问时,其计数器清零;其他各块的计数器加1 ; 需要替换时,比较特定块的计数器的值,将值最大的块换出去。比较合理。 奔腾 CPU 内的数据 Cache 为 2路组相联,可以简化使用LRU 算法。 3.5.4 Cache 的写操作策略 -------如何保证 Cache 内容与主存中“原本”内容相一致(只有“写”操作才有的问题)。常见的写操作策略有两种: 1 、全写法、写直达法( Write Through )命中时,不仅写Cache ,也同时写入主存。 2 、回写法、写回法( Write Back)

命中时,只改写Cache 的内容,而并不立即修改主存中相应单元的内容,只有在被改写过的块将被替换出去时才一次写回主存。不命中时,调入 Cache而后写。 每块要设修改位( Update )。 以上二方法优缺点比较。 3 、写一次法前二者在一定意义上的结合(基于写回法)。 第一次写命中时要同时写入内存,此时总线上启动一个存储写周期,其他Cache监听到该主存地址及写信号后即可拷贝该块或及时作废,以便维护全部Cache 的一致性

3.5.5 多级 Cache一、指令 Cache 和数据 Cache开始实现 Cache 时是统一(整体)的,指令和数据都存放在同一个 Cache里; 数据访问与取指令操作的冲突随着处理速度加快而更加频繁,延迟了指令的读取; 发展的趋势是二者分开——哈佛结构; 指令 Cache 是只读的,用单端口存储器;而数据 Cache 是随机读 /写的,用双端口结构有利于 CPU 高速执行程序奔腾机中 L1 Cache 就是这样的结构。

二、多级 Cache 快速微处理器芯片将 Cache集成在片内称为L1 Cache ,如奔腾的 8KB 指令 Cache 和 8KB 数据 Cache ;( PⅡ则是各 16KB )相应地把片外的 Cache称为 L2 Cache (如PⅡ 的 512KB 、 1MB或 2MB L2 Cache );“L1 Cache-- L2 Cache—主存”也可称为一种三级存储系统;

练习题1 、设某流水线计算机有一个指令和数据合一的 cache ,已知 cache 的读写时间为 10ns ,主存的读写时间为 100ns ,取指令的命中率为 98%,取数据的命中率为 95%,执行程序时,有1/5的指令需要存取一个操作数。为简化起见,假设指令流水线在任何时候都不阻塞。问设置 cache 后,与无 cache比较,计算机的运算速度可提高多少倍? 解:设置 cache 后的平均访问时间为: Ta=[10X0.98+100X0.02]+[10X0.95+100X0.05]X1/5= ( 9.8+2 )+( 9.5+5 ) /5=11.8+2.9=14.7 ( ns ) 无 cache 时的平均访问时间为: Tm=100X1+100x1/5=120 ( ns ) ∴ 速度提高的倍数为: 120/14.7≈8 (倍)。

练习题 2 、上题中如采用指令 cache 与数据 cache分开的结构(哈佛结构),运算速度可提高多少倍? 解: 有 cache 的平均访存时间为 Ta=10X0.98+100X0.02=9.8+2=11.8 ( ns ); 无 cache 的平均访存时间为 Tm=100X1+100X1/5=120 ( ns ) 速度提高倍数为: 120/11.8≈10 (倍)。

练习题 3 、设某计算机的 cache 采用 4路组相联映射,已知 cache 容量为 16KB ,主存容量为 2MB ,每块 8个字,每字 32 位,请回答: ( 1 )主存地址多少位(按字节编址),各字段如何划分(各需多少位)? ( 1 )解:主存地址按字节编址为 21 位。2MB/16KB=128 ,即主存按 cache 大小分成 128个区,故区号地址段占 7 位;4路组相联指每组内有 4块,故块号地址段占 2位;每块 8个字,故块内地址字段占 3 位;每块 32 位即 4个字节,故字节寻址字段占 2 位;

以上共计为 7+2+3+2=14 (位), 21-14=7(位)为组号地址段所占位数。见下图:

区号 组号 块内地址块号 字节地址7 位 7 位 2 位 3 位 2 位

( 2 )设 cache起始为空, CPU从主存单元 0 , 1 ,…, 100依次读出 101个字(一次从主存读一个字),并按此重复11 次,问命中率为多少?若cache 速度为主存的 5 倍,问采用 cache 与无cache比较速度提高多少倍? ( 2 )解:命中率为: 10/11≈91%有无cache 的速度比为:11X5/ ( 10X1+1X5 ) =55/15≈3.61 (倍 ) ??????????????? 读出 101个字并重复11 次的访存次数: 101X11=1111 次; 其中访问cache 的未命中次数为: 13 次( 101个字位于 13个块中);∴命中率应为:( 1111-13 ) /1111≈98.8%

有无 cache 的速度提高倍数的计算: 设 cache 、主存的存取周期分别为 Tc 、 Tm ,依题意有: Tm=5Tc ; 1111xTm/ ( 13Tm+1098Tc ) =1111x5Tc/ ( 13x5Tc+1098Tc ) =5555/1163≈4.78 倍练习题 4 、设某计算机采用直接映射 cache ,已知容量为 4096B 。若 CPU依次从主存单元 0 , 1 ,… 99和 4096 , 4097 ,…, 4195 交替取指令,循环执行10 次,问命中率为多少? ——答:命中率为 0 。

练习题5 、今有两级 Cache 结构的存储系统,访问次数 1000次,L1 级 Cache有40 次不命中,L2 级 Cache有 10 次不命中。问两级 Cache 的命中率各是多少?总的命中率是多少? 96%, 75%, 99%。练习题6 、某机主存容量为 8个块, Cache 容量为 4个块,采用直接地址映射,程序开始运行时, Cache 内容为空。今执行下列主存块地址序列: 0 、 2 、 1 、 5 、 4 、 6 、 4 、 7 、1 、 2 、 4 、 1 、 3 、 7 、 4 。请列出每次访问后 Cache 中各块分配情况、 Cache命中情况及命中率。 解答方法:作表统计。 结果—— 27%。

Cache 中 4个块的分配情况表访问顺序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15地址序列第 0块第 1块第 2块第 3块命中情况

0 2 1 5 4 6 4 7 1 2 4 1 3 7 4

X

0

2

X

012

X

052

X

452

X

456

X

456

4567X

4167X

4127X

4127√

4127√

4123X

4127X

4127√

0

4/15=27%。

3.6 虚拟存储器 3.6.1 虚拟存储器的基本概念 一、什么叫虚拟存储器( Virtual Memory ) 虚拟存储器是建立在主存—辅存物理结构的基础之上,由附加的硬件装置及操作系统存储管理软件组成的一种存储体系。它将主存和辅存的物理空间统一编址,形成一个庞大的存储空间,用户可在其中自由编程,感到的不再是处处受主存容量限制的存储系统。但是,实质上 CPU仍只能执行调入主存的程序,所以称这种存储体系为虚拟存储器。

3.6 虚拟存储器 3.6.1 虚拟存储器的基本概念 二、虚地址和实地址( VA : Virtual Address , PA :Physical Address )引入虚拟存储器后用户编程时使用的指令地址叫做虚地址(逻辑地址),该地址允许涉及的空间范围叫做虚存空间(逻辑空间)。 实际的主存单元地址叫做实地址(物理地址、主存地址),对应的空间叫做实存空间(物理空间、主存空间)。 虚 - 实地址的变换。

三、虚拟存储器与 cache 存储器比较认识 是两个不同层次的存储体系。 两者在概念上有许多共同之处: 1 、程序划分为信息块; 2 、程序运行时,信息块自动从慢速存储器向快速存储器调度; 3 、块的调出都采用一定的替换策略; 4 、新块的调入按一定的映射关系确定调入的位置。 两者也有许多不同之处:

1 、作用不同:Cache 存储器采用与 CPU 速度相匹配的快速存储元件弥补了主存和 CPU之间的速度差距;而虚存的主要功能是用来弥补主存和辅存之间的容量差距; 2 、块长不同:两个存储体系均以信息块作为存储层次之间信息传送的单位,但 cache 与主存每次传送的信息块定长,常为几十个字节;而主存和辅存之间即虚拟信息块的划分却有多种方案:页、段等,块长通常为几百~几百 K 字节;3 、层次间速度比不同:CPU访问 cache比访问慢速主存快 5~10 倍;而虚存中主存速度比辅存快 100~1000 倍;

4 、数据通路不同:主存— cache 体系中, CPU 与二者都有直接的通路;而虚存中辅存与 CPU之间无直接通路(辅存向主存调块时间为 ms 级);5 、透明程度不同:Cache 存储器存取信息、地址变换和替换策略全部用硬件实现,因而对各类程序员透明;虚存基本由操作系统的存储管理软件辅助一些硬件进行块的划分及主 - 辅间调度,所以对设计系统软件的程序员不透明。

P.125~126习题9 、 CPU执行一段程序时, cache完成存取的次数为2420 次,主存完成存取的次数为 80 次,已知 cache存储周期为 40ns ,主存存储周期为 240ns ,求 cache/ 主存系统的效率和平均访问时间。解: Nc=2420 次, Nm=80 次 ∴h=Nc/ ( Nc+Nm ) =96.8% Tc=40ns,Tm=240ns,r=Tm/Tc=6 ∴cache/ 主存系统效率为: e=1/(r+(1-r)h)≈86.2% 平均访问时间为: Ta=Tc/e=40ns/0.862≈46.4ns

P.125~126习题10 、已知 cache 存储周期 40ns ,主存存储周期 200ns , cache/ 主存系统平均访问时间为 50ns ,求 cache 的命中率是多少?解: Tc=40ns , Tm=200ns , Ta=50ns Ta=hTc+( 1-h ) Tm ∴Ta=hTc+Tm-hTm=Tm- ( Tm-Tc ) h ∴h= ( Tm-Ta ) / ( Tm-Tc ) = ( 200-50 ) / ( 200-40 ) =150/160=93.75%

12 、假设可供用户程序使用的主存容量为 200KB ,而某用户的程序和数据所占的主存容量超过 200KB ,但小于逻辑地址所表示的范围。请问:具有虚存和不具有虚存对用户有何影响?

12 、解答(仅供参考):( 1 )虚存仿佛扩大了整个主存的容量,用户可以使用远远大于主存的空间;对于无虚存的主—辅结构,用户只能使用主存或更确切地说是操作系统分配给他的那部分主存;( 2 )用虚存,访存要作虚—实地址的变换,无虚存则不用进行地址变换,但这件事不需一般用户关心;( 3 )有虚存的存储空间分配是操作系统完成的,而无虚存的主—辅结构,空间的使用由应用程序进行。

12 、解答(续):所以,虚存必须是建立在主—辅结构上,但一般的主—辅结构并不就是虚存。虚存本质上是这样一种技术:在主—辅结构的基础上,利用管理技术将实际存在的容量较小的主存虚构(模拟)成(让用户感觉有)一个容量相当大的存储空间,使之能运行大于主存容量的程序。

15 、从下列有关存储器的描述中,选择出正确的答案: A 、多体交叉存储主要解决扩充容量问题。B 、访问存储器的请求是由 CPU 发出的。C 、 cache 与主存统一编址,即主存空间的某一部分属于 cache 。D、 cache 的功能全由硬件实现。

top related