陈伟婷《计算机组成原理》ch3存储系统.ppt_第1页
陈伟婷《计算机组成原理》ch3存储系统.ppt_第2页
陈伟婷《计算机组成原理》ch3存储系统.ppt_第3页
陈伟婷《计算机组成原理》ch3存储系统.ppt_第4页
陈伟婷《计算机组成原理》ch3存储系统.ppt_第5页
已阅读5页,还剩137页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 存储系统,2,6/17/2019,l掌握半导体存储器的分类、组成及组成部件的作用及工作原理、读/写操作的基本过程。 l掌握SRAM、DRAM芯片的组成特点、工作过程、典型芯片的引脚信号、了解DRAM刷新的基本概念。 l掌握半导体存储器的主要技术指标、芯片的扩充、CPU与半导体存储器间的连接。 l熟悉Cache的基本概念、特点、在系统中的位置。 l熟悉虚拟存储器的基本概念、特点、工作原理。,6/17/2019,3,存储器的出现,1951年,中国移民王安发明了磁芯存储器,IBM于1956年购买了这项技术专利。,4,6/17/2019,3.1 存储器概述,存储器是计算机系统中的记忆设备,用来存放程序和数据。 存储元:存储一位(bit)二进制代码的存储元件称为基本存储单元(或存储元、存储位、记忆单元)。 存储单元:主存中最小可编址的单位,是对主存可访问操作的最小单位。 存储体:多个存储单元按一定规则组成一个整体。 存贮器:存贮体同周围的逻辑线路一起组成。 存贮体中,为区分不同的存贮单元,对每一单元给一个编号,这个编号叫地址,地址与存贮单元一一对应。,5,6/17/2019,存储器分类,按存储介质分: 半导体存储器、磁表面存储器 按存储方式分: 随机存储器、顺序存储器 按存储器的读写功能分: 只读存储器(ROM) 、随机读写存储器(RAM) 按信息的易失性分: 非永久记忆的存储器、永久记忆性存储器 按在计算机系统中的作用分: 主存储器、辅助存储器、高速缓冲存储器、控制存储器等。,6,6/17/2019,分级存储体系,对存储器的要求:容量大,速度快,成本低 难以兼顾三者? 采用多级存储器体系结构,7,6/17/2019,An example memory hierarchy,Larger, slower, and cheaper (per byte) storage devices,Smaller, faster, and costlier (per byte) storage devices,8,6/17/2019,存储系统的分层结构 Memory Hierarchy,存储器访问的局部性(Locality)原理 时间局部性:当前正在使用的信息很可能是后面立即还要用的信息,例程序循环和堆栈操作. 空间局部性:指连续使用到的信息很可能在存储空间上相邻或相近,以顺序执行的程序和数据(如数组),便是如此. 访问顺序性:指令顺序执行比转移执行的可能性大(约5:1) 局部性原理是存储系统层次结构技术可行性的基础。一般: CPU频繁访问的信息 高速存储器中 CPU不频繁访问的信息 低速存储器中,9,6/17/2019,存储系统的层次结构,三级两层次的整体。 用户就可以使用一个大容量(决定于辅存)、低价格(接近于辅存)、高速度(主要决定于高速缓存)的存储器系统,CPU,高速缓存,(Cache),辅助硬件,主存,辅助存储器,辅助,软、硬件,三级存储系统,10,6/17/2019,分级存储体系,11,6/17/2019,主存储器的技术指标,存储器的技术指标包括:存储容量;存取时间(存储器访问时间)、存储周期和存储器带宽;可靠性;功耗及集成度等。,12,6/17/2019,主存储器的技术指标,存取时间TA(Memory Access Time):存储器收到读或写的地址到从存储器读出(写入)信息所需的时间. 存储周期TM(Memory Cycle Time): 指连续启动二次独立的存储器操作(例连续2次读)所需间隔的最小时间.一般TM TA. 带宽BM:指每秒访问二进制位的数目. BM=W/ TM 例:若TM=500ns,每周期访问16位,则BM=16/0.5=32Mbps 要提高BM可从以下三方面入手: (1)使TM (2)使W (3)增加存储体 容量:指计算机存储信息的能力,即最大的二进制信息量,以b或B表示。,13,6/17/2019,3.2 随机读写存储器,半导体记忆元件: 二进制的记忆元件要有2个确定状态,表示逻辑值“0”和“1” 检测2个状态 电信号.,转换,工艺,双极型,MOS型,TTL型,ECL型,速度很快、,功耗大、,容量小,电路结构,PMOS,NMOS,CMOS,功耗小、,容量大,工作方式,静态MOS,动态MOS,(静态MOS除外),14,6/17/2019,(1)RAM(Random Access Memory):能随机地对存储器中任一单元存取,存取时间与该单元的物理位置无关.要求: 有2种稳定状态. 在外部信号激励下,2种稳定状态能进行无数次相互转换. 在外部信号激励下,能读出2种稳定状态. 存储可靠.,主存的组成,15,6/17/2019,主存的组成,(2)RAM分类: SRAM(Static RAM): 即静态RAM 利用开关特性记忆,只要电源有电,就能稳定保存信息. DRAM(Dynamic RAM):即动态RAM 除需电源外,还要定期对它充电(刷新).,16,6/17/2019,主存的组成,(3)SRAM记忆元件: 有双极型和MOS型两种 以MOS为例 当栅极和源极间加有正电压Vgs(大于门限电压)时, D与S间形成一个导电沟道, MOS导通。 单管MOS存储单元没有记忆功能,必须使用具有双稳态的触发器作为记忆元件,17,6/17/2019,3.2.1 SRAM存储器,T1,T2工作管 T3,T4- 负载管,作为阻抗 T5,T6,T7,T8(控制管)读写控制门,用来选中记忆单元 一个存储元表示一位二进制的1和0. 设 T1截止,T2导通, “1”态(A=1,B=0) T1导通,T2截止, “0”态(A=0,B=1) A 、B两点电位总是相反,MOS管静态记忆单元特点: 优点:非破坏性读出,抗干扰强,可靠. 缺点:记忆单元管子多,占硅片面积大,功耗较大,集成度不高.,Vss(0V),VDD(5V),I/O,O/I,Y地址译码线,X地址译码线,A,B,18,6/17/2019,六管MOS单元的读写过程,写操作 写“1”:在I/O线上输入高电位,在I/O线上输入低电位,开启T5,T6,T7,T8四个晶体管。把高、低电位分别加在A,B点,使T1管截止,使T2管导通,将“1”写入存储元. 写“0”:在I/O线上输入低电位,在I/O线上输入高电位,打开T5,T6,T7,T8四个开门管。把低、高电位分别加在A,B点,使T1管导通,T2管截止,将“0”信息写入了存储元。 读操作 若某个存储元被选中,则该存储元的T5,T6,T7,T8管均导通,A,B两点与位线D与D相连。存储元的信息被送到I/O与I/O线上。I/O与I/O线接着一个差动读出放大器 ,从其电流方向可以判知所存信息是“1”还是“0”。,19,6/17/2019, 静态 RAM 基本电路的 读 操作,20,6/17/2019, 静态 RAM 基本电路的 写 操作,21,6/17/2019,基本的静态存储元阵列,存储位元: 锁存器(触发器) 三组信号线 地址线 数据线 控制线,22,6/17/2019,SRAM存储器芯片实例,23,6/17/2019,故其容量为:1024字4位(又称为1K 4),RAM2114共有10根地址线,4根数据线。,24,6/17/2019,存储器的读、写周期,25,6/17/2019,存取周期:读周期时间TRC=写周期时间tWC,26,6/17/2019,3.2.2 DRAM存储器,动态RAM是利用栅极电容上的电荷来记忆信息的。 电容上的电荷有泄漏,不可能长久保存,因此需要定时充电补充,这个过程叫刷新。这种电路因要不断补充电荷,故称为动态存贮单元电路。,27,6/17/2019,四管DRAM存储器,Vss(0V),T1,T2,T5,T7,T8,T6,I/O,O/I,Vss(0V),预充,T10,T9,ED,X地址译码线,Y地址译码线,A,B,C1,C2,D,D,28,6/17/2019,四管DRAM存储器写操作,Vss(0V),T1,T2,T5,T7,T8,T6,I/O,O/I,Vss(0V),Vss(0V),预充,T10,T9,ED,X地址译码线,Y地址译码线,A,B,C1,C2,CD,CD,D,D,29,6/17/2019,四管DRAM存储器读操作,Vss(0V),T1,T2,T5,T7,T8,T6,I/O,O/I,Vss(0V),Vss(0V),预充,T10,T9,ED,X地址译码线,Y地址译码线,A,B,C1,C2,CD,CD,D,D,30,6/17/2019,1、MOS管做为开关使用,而所存储的信息1或0则是由电容器上的电荷量来体现当电容器充满电荷时,代表存储了1,当电容器放电没有电荷时,代表存储了0。,2、图(a)表示写1到存储位元。此时输出缓冲器关闭、刷新缓冲器关闭,输入缓冲器打开(R/W为低),输入数据DIN=1送到存储元位线上,而行选线为高,打开MOS管,于是位线上的高电平给电容器充电,表示存储了1。,3、图(b)表示写0到存储位元。此时输出缓冲器和刷新缓冲器关闭,输入缓冲器打开,输入数据DIN=0送到存储元位线上;行选线为高,打开MOS管,于是电容上的电荷通过MOS管和位线放电,表示存储了0。,4、图(c)表示从存储位元读出1。输入缓冲器和刷新缓冲器关闭,输出缓冲器/读放打开(R/W为高)。行选线为高,打开MOS管,电容上所存储的1送到位线上,通过输出缓冲器/读出放大器发送到DOUT,即DOUT=1。,5、图(d)表示(c)读出1后存储位元重写1。由于(c)中读出1是破坏性读出,必须恢复存储位元中原存的1。此时输入缓冲器关闭,刷新缓冲器打开,输出缓冲器/读放打开,DOUT=1经刷新缓冲器送到位线上,再经MOS管写到电容上。注意,输入缓冲器与输出缓冲器总是互锁的。这是因为读操作和写操作是互斥的,不会同时发生。,单管动态存储电路,31,6/17/2019,DRAM存储器,32,6/17/2019,DRAM存储芯片实例,16K1位DRAM芯片 2116,33,6/17/2019,DRAM存储器读/写周期,读周期、写周期的定义是从行选通信号RAS下降沿开始,到下一个RAS信号的下降沿为止的时间,也就是连续两个读周期的时间间隔。通常为控制方便,读周期和写周期时间相等。,34,6/17/2019,DRAM的刷新,刷新周期:动态MOS存储器采用“读出”方式进行刷新。从上一次对整个存储器刷新结束到下一次对整个存储器全部刷新一遍为止,这一段时间间隔叫刷新周期,一般为2ms,4ms或8ms。 常用的刷新方式有: 集中式 分散式 异步式,35,6/17/2019,集中刷新方式,2ms内集中安排所有刷新周期。,用在实时要求不高的场合。,36,6/17/2019,分散刷新方式,各刷新周期分散安排在存取周期中。,用在低速系统中,37,6/17/2019,异步刷新方式,各刷新周期分散安排在2ms内,每隔一段时间刷新一行。,每隔15.5微秒提一次刷新请求,刷新一行;2毫秒内刷新完所有行,用在大多数计算机中。,2ms,128行,15.5 微秒,38,6/17/2019,DRAM存储器控制电路,39,6/17/2019,DRAM的发展,FPM DRAM (Fast Page Mode DRAM) EDRAM (Enhanced DRAM) 在普通DRAM芯片中增加了一小容量的SRAM Cache,猝发式读取可以大大提高访问速度 EDO DRAM (Enhanced Data Out DRAM) SDRAM (Synchronous DRAM) PC66 PC100 PC133 168 pin DDR SDRAM (double data rate synch. DRAM) PC1600 PC2100 PC2700 PC3200 184/240 pin DDR200 DDR266 DDR333 DDR400 RDRAM (Rambus DRAM) 。,40,6/17/2019,FPM DRAM(快速页模式动态存储器) 根据程序的局部性原理来实现的。页是由一个唯一的行地址和该行中所有的列地址确定的若干存储单元的组合。快速页模式允许在选定的行中对每一列地址进行快速的读/写操作。 同步DRAM(SDRAM) 普通DRAM CPU访问的过程是先给出要访问单元的地址和控制信号(R/W),经过一段延迟时间(存取时间)向DRAM写入数据或从DRAM中读出数据。在这一段延迟时间内,CPU只能等待。SDRAM与CPU的数据交换时钟信号同步,且以处理器/主存总线的最高速度运行,不需要等待时间。 DDR SDRAM DDR (Double Data Rate) SDRAM。利用时钟周期的上沿和下沿分别进行两次数据传输,从而实现双倍数据传输速率,41,6/17/2019,3.2.3 主存储器结构,存储体,读 写 电 路,. . .,42,6/17/2019,存储器的组成,组成一个存储器时需考虑的问题: 芯片的选择 类型;速度、容量、功耗等 芯片的数量 芯片的连接,43,6/17/2019,存储器扩展的主要方法,位扩展 只在位数方向扩展(加大字长) 数据线的扩展 字扩展 仅在字数方向扩展 地址线的扩展 字位扩展 在位数方向和字数方向上扩展 数据线和地址线的扩展,44,6/17/2019,1位扩展,当芯片的存储单元数满足存储器要求,但位数不满足要求时,需要进行位扩展。 位扩展的连接方式: 各存储器芯片的地址线、片选信号线和读/写控制线对应并接 各芯片的数据线单独列出,45,6/17/2019,用 1K 4位存储器芯片组成 1K 8位 的存储器,?片,例1:用2114存储器芯片组成1K8位的存储器,2 片,4根数据线,低4位,高4位,8根数据线,46,6/17/2019,2字扩展,当芯片的的位数满足存储器位数的要求,而芯片的存储单元数(或字数)不满足存储器要求时,需要进行字扩展。 字扩展的连接方式: 将所有芯片的地址线、数据线、读/写控制线均对应地并接 由片选信号选择工作芯片,47,6/17/2019,例2:用 1K 8位存储器芯片组成 2K 8位 的存储器,?片,2 片,A10,简单译码(门电路组成),8根数据线,11根地址线,10根地址线,48,6/17/2019,采用专用译码器扩展 如2-4线译码器74139、3-8线译码器74138、4 -16线译码器4067等。,例3:用 16K 8位存储器芯片组成 64K 8位 的存储器,?片,4 片,用16位地址线中的低14位A13A0进行片内寻址, 高两位地址A15、A14用于选择芯片,即选片寻址。,14根地址线,16根地址线,49,6/17/2019,设存储器从0000H开始连续编址,则四块芯片的地址分配为:,C000H FFFFH,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,4,8000H BFFFH,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 0,3,4000H 7FFFH,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 1,2,0000H 3FFFH,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,地址 范围,片内地址 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0,选片地址 A15 A14,芯片号,50,6/17/2019,51,6/17/2019,3字位扩展,当芯片的存储单元数和位数均不满足存储器的要求时需要进行字位扩展。 字位扩展: 按位扩展和字扩展的方法分别在位方向和字方向进行扩展。 先位扩展再字扩展,52,6/17/2019,例4: 用 1K 4位 存储器芯片组成 4K 8位 的存储器,?片,8片,8根数据线,12根地址线,4根数据线,10根地址线,53,6/17/2019,存储器与CPU连接,CPU对存储器进行读/写操作 首先由地址总线给出地址信号 然后要发出读操作或写操作的控制信号 最后在数据总线上进行信息交流 地址线的连接 数据线的连接 控制线的连接,54,6/17/2019,55,6/17/2019,讨论,什么时候需要进行芯片扩展? 若系统需要的存储容量为128K8位,而 1)可选的芯片只有256K8位的芯片 2)可选的芯片只有128K16位的芯片 是否需要扩展? 如何处理?,56,6/17/2019,3.3 半导体ROM记忆元件 Read Only Memory,特点:只能读出,不能写入的无源存储器,是非易失性器件.主要用于存储常用的固定信息, 根据其物理特性可分成: (1)MROM(Mask ROM) 采用二次光刻掩模工艺一次制成. (2)PROM(Programmable ROM):常用的是熔丝型. (目前已淘汰) 写入:出厂时完成,存“0”要用大电流把熔丝熔断,断后不能恢复. 由于可靠性差,并只能一次性编程,目前已经淘汰。 (3)EPROM(Erasable Programmable ROM):可改写的ROM 也称可擦可编程的ROM.常用的是用浮动栅雪崩注入型MOS管构成, 称FAMOS (Floating gate Avalanche injection MOS ). 按擦除方法,可分成两种EPROM.,57,6/17/2019,半导体ROM记忆元件 Read Only Memory,脱机擦除,半导体ROM记忆元件 Read Only Memory,紫外线擦除EPROM(UVEPROM-Ultra Violet EPROM) 特点:有一石英窗口,改写时要将其置于一定波长的紫外线灯下,照射一定时间,使浮栅上的电荷形成光电流而泄放掉. 恢复到不带电的“1”状态.即回到信息擦除状态.然后才可重新写入信息.写后要贴住石英玻璃窗口.此类EPROM存在两个问题: A.用紫外线灯的擦除时间长. B.只能整片擦除,不能改写个别单元或个别位. 电可改写EPROM(EEPRPM-Electrically Erasable PROM) 可字擦除,页擦除和全片擦除,都可联机状态下擦除.,脱机擦除,58,6/17/2019,新型存储器,Flash Memory NVRAM(Non-volatile RAM) FRAM(铁电RAM) MRAM(磁阻RAM) PRAM(相变RAM) NRAM(纳米管RAM),59,6/17/2019,闪速存储器 Flash Memory,闪速存储器又称快擦存储器,是在EEPROM基础上发展起来的新型电可擦可编程的非易失性存储器。 特点:高密度/非易失性/读/写, 兼有RAM和ROM的特点.但它只能整片擦除.可代替软盘和硬盘.擦写次数可达10万次以上.读取时间小于10ns。,60,6/17/2019,3.4 并行存储器,61,6/17/2019,3.4.1 双端口存储器(Dual Port Memory),指同一个存储器具有两组相互独立的读写控制线路,是一种高速工作的存储器。 特点: 每个芯片有二组DB,AB,CB, 形成二个访问端口,允许二个端口并行独立的读写. 注意: 如2个端口同时访问同一存储单元,由片内仲裁逻辑(Arbitrate) 决定由哪个端口访问,可让2个CPU同时访MM,或1个端口面向CPU,1个面向I/O处理.,62,6/17/2019,双端口存储器无冲突读写控制,当两个端口的地址不相同时,在两个端口上进行读写操作,一定不会发生冲突。 当任一端口被选中驱动时,就可对整个存储器进行存取 每一个端口都有自己的片选控制和输出驱动控制,63,6/17/2019,当两个端口同时存取存储器同一存储单元时,便发生读写冲突。为解 决此问题,特设置了BUSY标志。 由片上的判断逻辑决定对哪个端口优先进行读写操作,而暂时关闭另 一个被延迟的端口。 当发生冲突时,判断逻辑可以使地址匹配或片使能匹配下降至5ns,并 决定对那个端口进行存取。判断方式有两种: CE判断: 如果地址匹配且在CE之前有效,片上的控制逻辑在CEL和CER之间进 行判断来选择端口。 (2)地址有效判断: 如果CE在地址匹配之前变低,片上的控制逻辑在左、右地址间进行判 断来选择端口。,双端口存储器有冲突的读写控制,64,6/17/2019,3.4.2 多模块交叉存储器,一、存储器的模块化组织 一个由若干个模块组成的主存储器是线性编址的。 地址在各模块中的安排有两种方式:一种是顺序方式,一种是交叉方式。 例:设存储器容量为32字,分成M0M3共四个模块,每个模块8个字 顺序方式: M0:07 M1:815 M2:1623 M3:2431 交叉方式: M0:0,4,. mod 40 M1:1,5,. mod 41 M2:2,6,. mod 42 M3:3,7,. mod 43,65,6/17/2019,存储器模块的两种组织方式,66,6/17/2019,假设有n个存储体,每个存储体的容量为m个存储单元 顺序方式: 高位选模块,低位选块内地址 特点:某个模块进行存取时,其他模块不工作,优点是某一模块出现故障时,其他模块可以照常工作,通过增添模块来扩充存储器容量比较方便。缺点是各模块串行工作,存储器的带宽受到了限制。,67,6/17/2019,交叉方式 (可以实现多模块流水式并行存取) 高位选块内地址,低位选模块 特点:连续地址分布在相邻的不同模块内,同一个模块内的地址都是不连续的。优点是对连续字的成块传送可实现多模块流水式并行存取,大大提高存储器的带宽。使用场合为成批数据读取。,68,6/17/2019,二、多模块交叉存储器的基本结构,四模块交叉存储器: 主存被分成4个相互独立、容量相同的模块 CPU同时访问四个模块,由存储器控制部件控制分时使用数据总线进行信息传递 对每一模块,从CPU给出访存命令直到读出信息使用一个存取周期时间 对CPU,可在一个存取周期内连续访问四个模块 各模块的读写过程将重叠进行,所以是一种并行存储器结构,四模块交叉存储器结构框图,69,6/17/2019,模块字长等于数据总线宽度,设模块存取一个字的存储周期为T,总线传送周期为,存储器的交叉模块数为m,为了实现流水线方式存取,应当满足: T=m m=T/称为交叉存取度 交叉存储器连续读取m 个字所需的时间为 t1=T+(m-1) 顺序方式存储器连续读取m个字所需时间为 t2=mT,70,6/17/2019,【例】 设存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织。存储周期T=200ns,数据总线宽度为64位,总线传送周期=50ns。问顺序存储器和交叉存储器的带宽各是多少?,【解】 顺序存储器和交叉存储器连续读出m=4个字的信息总量都是: q=64位4=256位 顺序存储器和交叉存储器连续读出4个字所需的时间分别是: t2=mT=4200ns=800ns=810-7s; t1=T+(m-1)=200ns+150ns=350ns=3.510-7s 顺序存储器和交叉存储器的带宽分别是: W2=q/t2=256(810-7)=32107 (b/s)320 (Mb/s) W1=q/t1=256(3.510-7)=73107 (b/s)=730 (Mb/s),71,6/17/2019,3.5 Cache,一、Cache的功能 Cache旨在解决CPU和主存之间的速度匹配问题,提高主存系统的性价比。 根据局部性原理,在主存和CPU之间设置一个高速的容量相对较小的缓冲存储器Cache 若事先将CPU在某一小段时间内所要访问的程序和数据从主存调入Cache中,则当CPU需要这些程序和数据时,就不必从主存储器取指令和取数据,而只需访问这个高速存储器,这样可大大提高存取速度。 Cache一般由高速的SRAM组成,工作速度接近于CPU速度。包括管理在内的全部功能由硬件实现,对程序员透明。,72,6/17/2019,73,6/17/2019,图书馆与cache的对比,Main Memory,Off-chip cache,on-chip cache,DISK,74,6/17/2019,二、Cache的基本原理,工作原理 基于程序访问的局部性原理 CPU与Cache之间的数据交换以字为单位,而Cache与主存之间的数据交换则是以块为单位的。 主存和Cache都划分为相同大小的块,一个块由若干个定长字组成。,75,6/17/2019,Cache的读写过程,读:CPU读主存时,把地址同时送给cache和主存,cache控制逻辑依据地址判断此字是否在cache中 若在cache中,此字立即传送给CPU; 否则,则用主存读周期把此字从主存读出送到CPU,同时,把含有这个字的整个数据块从主存读出送到cache中,并采用一定的替换策略将cache中的某一块替换掉,替换算法由cache管理逻辑电路来实现。 写:比读操作复杂。因cache中保存的是主存中某些信息的副本,所以有主/副本一致的问题 A.CPU从cache读入数据,重新写入修改后的新数据 B.主存数据被修改,造成主副本不同,76,6/17/2019,Cache的读操作流程,77,6/17/2019,cache原理图,78,6/17/2019,关键问题,如何判断一个数据在cache中? 数据查找 Data Identification 如需访问的数据在cache中,存放在什么地方? 地址映射 Address Mapping cache满了以后如何处理? 替换策略 Placement Policy 如何保证cache与memory的一致性? 写入策略 Write Policy,79,6/17/2019,相联存储器(associative memory),通常的存储器都是按地址访问的,而相联存储器则是按内容进行访问的。 相联存储器是指其中任一存储项内容作为地址来存取的存储器。 相联存储器中每个字由若干字段组成,每个字段描述对象的1个属性,即内容。 存放在相联存储器中的项的格式:KEY,DATA,其中键KEY是地址,而数据DATA是被读写信息。,80,6/17/2019,相联存储器,相联存储器的基本原理是把存储单元所存内容的一部分作为检索项(关键字)去检索存储器,并将存储器中与检索项符合的存储单元内容进行读出或写入。 基本操作:读、写、检索(比较),检索只能按内容进行。 附加操作:,MAX,MIN等逻辑检索,比一般M贵且复杂 用途:用于虚拟存储器中存放段表、页表、快表及cache的指令cache,数据cache及数据、 指令的混合cache等.,81,6/17/2019,相联存储器的组成框图,比较线路,译码选择电路,代码寄存器,符合寄存器,1,2,m,3,0,检索寄存器,屏蔽寄存器,符合寄存器,0,0,1,0,0,检索寄存器,00001101,屏蔽寄存器,00001000,存储体,00111111 000,11000000 001,11010101 010,00001010 011,00110011 100,00101111 101,82,6/17/2019,三、Cache的命中率,在一个程序执行期间,设Nc表示cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有 h=Nc /(Nc+Nm) 影响命中率的因素 程序行为(局部性) cache容量 组织方式 块大小,83,6/17/2019,平均访问时间和访问效率,若tc表示命中时的cache访问时间,tm表示未命中时的主存访问时间,1-h表示未命中率,则cache/主存系统的平均访问时间ta为: ta=htc +(1-h)tm 设r=tm/tc表示主存慢于cache的倍率,e表示访问效率,则有 为提高访问效率,命中率h越接近于1越好,r值以510为宜,不宜太大。,84,6/17/2019,例,CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。,【解】 h=Nc/(Nc+Nm)=1900/(1900+100)=0.95 r=tm/tc=250ns/50ns=5 e=1/(r+(1-r)h)=1/(5+(1-5)0.95)=83.3% ta=tc/e=50ns/0.833=60ns,85,6/17/2019,四、主存与cache地址映射关系,为了把主存块放到cache中,必须应用某种方法把主存地址定位到cache中,称为地址映射 全相联 (fully-associated) 直接相联(direct mapped) 组相联 (set-associated) 无论选择那种映射方式,都要把主存和cache划分为同样大小的“块”。 选择哪种映射方式,要考虑: 硬件是否容易实现 地址变换的速度是否快 主存空间的利用率是否高 主存装入一块时,发生冲突的概率,86,6/17/2019,1、全相联映射方式,第0块,第0块,第1块,第n-1块,L0,L1,Ln-1,Cache,主存,主存中任何一块均可映射到 Cache中的任意一块,87,6/17/2019,全相联映射地址变换,N = 区内块数,阴影区表示查找范围,88,6/17/2019,Cache全相联映射载入过程,22,26,22,26,16,4,16,18,载入,载入,命中,命中,载入,载入,命中,载入,t,22,26,16,4,18,操作,地址块号,块分配情况,89,6/17/2019,特点及适用场合,特点: 优点:灵活,冲突概率小,cache利用率高 缺点:比较器电路难于设计和实现 适用场合: 适用于小容量的Cache,90,6/17/2019,2、直接映射方式,将主存按Cache的大小分成大小相等的区,每个区的第i块只能装入cache的第i块。 若Cache块号i, 共n块,主存块号j,则 i=j mod n,一个主存块只能拷贝到cache的一个特定位置上去,第0块,第0块,第0区,第m区,第1块,第mn块,第mn+1块,第mn+2块,第(m+1)n-1块,Cache,主存,第1区,第2区,区地址,91,6/17/2019,直接映射的地址变换,访问cache,92,6/17/2019,Cache直接映射载入过程,22,26,22,26,16,4,16,18,载入,载入,命中,命中,载入,载入,命中,替换,t,22,26,16,4,16,18,操作,地址块号,块分配情况,93,6/17/2019,特点及适用场合,特点 优点:硬件实现简单,成本低 缺点:冲突概率高,cache效率降低 适用场合 适合大容量cache,94,6/17/2019,3、组相联映射方式,首先把主存与cache按同样大小分为u组,每组v块,然后再将主存按cache大小分区。MM与cache的映射规则是:主存任何一区的i组只能映射到cache的第i组,但主存任何一组的各块可映射到cache相应组的任何一块中去。 若主存块组号j,块号k,j=k/v 主存对应cache组号q, 则q=j mod u,95,6/17/2019,组相联映射地址变换,N = 区内块数,阴影区表示查找范围,根据组号在块表中寻找组,组内相联查找。,96,6/17/2019,Cache组相联映射载入过程,例:设有8个块,分成2个组,22,26,22,26,16,4,16,18,载入,载入,命中,命中,载入,载入,命中,载入,t,22,26,16,4,18,操作,地址块号,块分配情况,97,6/17/2019,Cache组相联映射载入过程,例:设有8个块,分成4个组,98,6/17/2019,特点,组相联映射方式是全相联映射和直接映射方式的折衷方案,适度兼顾二者的优点又尽量避免二者的缺点,因此被普遍采用。 组相联映射方式的每组行数v一般较小,典型值为2、4、8、16。这种规模的v路比较器容易设计和实现,而块在组中的排放又有一定的灵活性,使冲突减少。为强调比较器的规模和存放的灵活程度,常称之为v路组相联cache。,99,6/17/2019,例: 设有一个cache的容量为2K字,每个块为16字,求 (1) 该cache可容纳多少个块? (2) 如果主存的容量是256K字,则有多少个块? (3) 主存的地址有多少位?cache地址有多少位? (4) 在直接映射方式下,主存中的第i块映象到cache中哪一个块中? (5) 进行地址映象时,存储器的地址分成哪几段?各段分别有多少位?,解: (1) cache中有2048/16=128个块。 (2) 主存有256K/16=16384个块。 (3) 主存容量为256K=218字,所以主存字地址为18位。 cache容量为2K=211字,所以cache字地址为11位。 (4) 主存中的第i块映象到cache中第 i mod 128 个块中。 (5) 存储器的字地址分成三段:区号、块号、块内字地址。 区号的长度为18-11=7位,块号为7位(128个块)。块内字地址为4位(16字)。,100,6/17/2019,五、cache的替换策略,101,6/17/2019,替换策略,先进先出法 先装入Cache的主存块,替换时先被淘汰。用FIFO队列实现;容易实现,较好地利用空间的局部性原理 最近最不经常使用(LFU)算法: 被访问的行计数器增加1,换值小的行。不能反映近期cache的访问情况 近期最少使用(LRU)算法 被访问的行计数器置0,其他的计数器增加1,换值大的行。符合cache的工作原理 随机替换法 从特定的行位置中随机地选取一行换出即可。硬件上容易实现,且速度也比前两种策略快。缺点是随意换出的数据很可能马上又要使用,从而降低命中率和cache工作效率。但这个不足随着cache容量增大而减小。随机替换策略的功效只是稍逊于前两种策略。,102,6/17/2019,先进先出替换策略(FIFO),22,11,22,19,7,16,4,3,载入,载入,命中,载入,载入,替换,替换,替换,t,22,11,7,16,22,19,4,3,地址块号,操 作,103,6/17/2019,最不经常使用(LFU)算法,22,11,22,19,11,16,4,3,载入,载入,命中,载入,命中,载入,替换,替换,t,220,11,111,16,221,19,4,3,22,命中,222,操 作,地址块号,104,6/17/2019,近期最少使用(LRU)算法,22,11,22,19,7,16,4,3,载入,载入,命中,载入,载入,替换,替换,替换,t,220,110,70,160,220,190,40,30,地址块号,操 作,105,6/17/2019,六、cache的写操作策略,由于cache的内容是部分主存内容的副本,应该与主存内容保持一致。 CPU对cache的写入更改了cache内容,如何与主存内容保持一致可采用三种写操作策略:,写回法:写命中时,只改cache,只有当此行被换出时才写回主存 全写法:写命中时,Cache与内存一起写 写一次法:与写回法一致,但是第一次Cache命中时采用全写法,106,6/17/2019,1、写回法,CPU对cache写命中时 只修改cache的内容不立即写入主存,只当此行被换出时才写回主存;每个cache行必须配置一个修改位,以反映此行是否被CPU修改过。 CPU对cache写未命中时 为包含欲写字的主存块在cache分配一行,将此块整个拷贝到Cache后在cache中对其进行修改 将主存写修改操作统一留待换出时进行。 优点: 写cache与写主存分开进行方式可显著减少写主存次数 缺点: 但存在cache/主存不一致性的隐患,107,6/17/2019,2、全写法,CPU对cache写命中时: cache与主存同时发生写修改 CPU对cache写未命中时: 直接向主存写入 但是否将修改过的主存块取到cache有两种选择: 一种是取主存块到cache并为它分配一个行位置 另一种是不取主存块到cache 优点: cache每行无需设置一个修改位以及相应的判测逻辑 较好地维护了cache与主存的内容一致性 缺点: cache对CPU向主存的写操作无高速缓存功能,降低了cache的功效。,108,6/17/2019,3、写一次法,一种基于写回法又结合了全写法的写策略,即写命中和写未命中的处理与写回法基本相同,只是第一次写命中时要同时写入主存。 这是因为第一次cache写命中时, CPU要在总线上启动一个存储器写周期。其它cache监听到此主存块地址及写信号后,即可拷贝该块或及时作废,以便维护系统全部cache的一致性。尔后若有对片内cache此行的再次或多次写命中,则按写回法处理,无需再送出信号了。,109,6/17/2019,3.6 虚拟存储器(P282 9.4),一、基本概念: 虚拟存储器是以存储器访问局部性原理为基础,建立在主辅存体系上的存储器管理技术. 基本思想:通过某种策略,把辅存中信息的一部分调入主存,在用户面前呈现的是比主存大得多的地址空间. 虚拟(逻辑)地址:是访问虚拟空间的指令地址码 面向程序员 物理(实存)地址:实际主存的地址. 存储器管理: 页式管理-定长,以页为单位装入程序. 段式管理-不定长,以程序模块大小分割.,段页式,110,6/17/2019,基本概念,用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间; 而计算机物理内存的访问地址则称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间。 程序进行虚地址到实地址转换的过程称为程序的再定位。,111,6/17/2019,虚存的访问原理,虚存空间的用户程序按照虚地址编程并存放在辅存中。程序运行时CPU以虚地址访问主存,由地址变换机构依据当时分配给该程序的实地址空间把程序的一部分调入实存。每次访存时,首先判断该虚地址所对应的部分是否在实存中: 如果是,则进行地址转换并用实地址访问主存; 否则,按照某种算法将辅存中的部分程序调度进内存,再按同样的方法访问主存。 每个程序的虚地址空间可以远大于实地址空间,也可以远小于实地址空间。前一种情况以提高存储容量为目的;后一种情况则以地址变换为目的。通常出现在多用户或多任务系统中:实存空间较大,而单个任务并不需要很大的地址空间,较小的虚存空间则可以缩短指令中地址字段的长度。,112,6/17/2019,Cache与虚存的异同,在三级存储体系中,cache-主存和主存-辅存这两个存储层次有许多相同点: 出发点相同: 都是为了提高存储系统的性能价格比而构造的分层存储体系,都力图使存储系统的性能接近高速存储器,而价格和容量接近低速存储器。 原理相同: 都是利用了程序运行时的局部性原理,把最近常用的信息块从相对慢速而大容量的存储器调入相对高速而小容量的存储器。,113,6/17/2019,Cache主存和主存辅存这两个存储层次也有许多不同之处: 侧重点不同:cache主要解决主存与CPU的速度差异问题;虚存主要解决存储容量问题,另外还包括存储管理、主存分配和存储保护等方面。 数据通路不同:CPU与cache和主存之间均有直接访问通路;而虚存所依赖的辅存与CPU之间不存在直接的数据通路,当主存不命中时只能通过调页解决,CPU最终还是要访问主存。 透明性不同:cache的管理完全由硬件完成;而虚存管理由软件(操作系统)和硬件共同完成。 未命中时的损失不同:主存的存取时间是cache的存取时间的510倍,而通常比辅存的存取速度快上千倍,故主存未命中时系统的性能损失要远大于cache未命中时的损失。,114,6/17/2019,虚存机制要解决的关键问题,调度问题:决定哪些程序和数据应被调入主存。 地址映射问题:在访问主存时把虚地址变为主存物理地址(这一过程称为内地址变换);在访问辅存时把虚地址变成辅存的物理地址(这一过程称为外地址变换),以便换页。此外还要解决主存分配、存储保护与程序再定位等问题。 替换问题:决定哪些程序和数据应被调出主存。 更新问题:确保主存与辅存的一致性。 在操作系统的控制下,硬件和系统软件为用户解决了上述问题,从而使应用程序的编程大大简化。,115,6/17/2019,二、页式虚拟存储器,1、页式虚存地址映射 页式虚拟存储系统中 虚地址空间被分成等长大小的页,称为逻辑页; 主存空间也被分成同样大小的页,称为物理页 每页长度是2的整数幂,从512 几KB,故页的起点都落在低位字段为零的地址上 地址由页号和页内地址两部分组成,按页管理,以页为单位往内存调。虚地址和实存地址分为两个字段 虚地址:高字段为逻辑页号,低字段为页内地址(偏移量) 实存地址:高字段为物理页号,低字段为页内地址 实地址和虚地址的页内地址相同 虚-实地址转换: 逻辑地址 实存地址,116,6/17/2019,页式虚拟存储器页面映像的一个实例,117,6/17/2019,CPU访主存 送程序虚地址 它在MM中? 找页(主存中) 调页(从辅存) 为此要为每个程序建立一张页表. 页表:是一张虚地址页号与实地址页号的对照表,是存储管理软件在主存运行时,为每个程序自动建立的,存放在主存特定区

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论