第四章-存储器04-高速缓冲存储器
第4章 存储器

2.数据总线匹配和存储器接口
奇 存 储 体 (512KB) 偶 存 储 体 (512KB)
00001H 00003H 00005H · · ·
00000H 00002H 00004H · · ·
FFFFFHH
FFFFEHH
A19~A1
D15~D8
BHE
D7~D0
A0
图4.23 8086的存储体组织
字选择线
。
位 线
T1
C
D
图4.8
单管动态存储元
2. DRAM存储芯片实例(见图4.9)
4.2.3 存储器芯片的读/写时序
tCYC tRAS RAS
CAS
tCAS
地址
行地址 tRCS
列地址 tRCH
tCYC:读周期时间 tRAS:RAS脉冲宽度 tCAS:CAS脉冲宽度 tRCS:读命令建立时间 tRCH:读命令保持时间 tDOH:数据输出保持时间
4.1 存储器系统概述
4.1.0 存储器系统的Cache—主存层次结构
硬件管理
CPU
Cache
主存储器
图4.0 Cache—主存存储层次
4.1.1 存储器分类
1.按存储介质分类 (1)半导体存储器 (2)磁表面存储器 (3)光盘存储器 2.按存取方式分类 (1)随机存储器RAM (2)只读存储器ROM (3)顺序存储器SAM (4)相联存储器 3. 按在计算机中的作用分类 (1)主存储器 (2)外存储器 (3)高速度缓冲存储器(Cache) (4)控制存储器 4. 按信息的可保存性分类
R/W 32K×8
D7~D0
R/W D7 ~D0
图4.26
内存与CPU的连接框图
计算机原理 第四章 存储系统 课堂笔记及练习题

计算机原理第四章存储系统课堂笔记及练习题主题:第四章存储系统学习时间:2016年10月24日--10月30日内容:一、学习要求这周我们将学习第四章存储系统的相关内容。
通过本章的学习要求了解主存储器的主要技术指标、理解存储器的层次结构及分类,加深对半导体随机读写器相关知识的理解。
二、主要内容(一)存储系统概述存储器是计算机系统中的记忆设备,用来存放程序和数据,是计算机系统的重要组成部分之一。
存储器有主存储器和辅助存储器之分,主存储器(简称主存)处于全机中心地位,直接与CPU交换信息;辅助存储器(简称辅存)或称为外存储器(简称外存)通常用来存放主存的副本和当前不在运行的程序和数据,在程序执行过程中,每条指令所需的数据及取下一条指令的操作都不能直接访问辅助存储器,需要通过主存储器与CPU交换信息。
(二)主存储器的主要技术指标主存储器的主要性能指标为主存容量、存储器存取时间和存储周期时间。
计算机可寻址的最小信息单位是一个存储字,一个存储字所包括的二进制位数称为字长。
主存储器的另一个重要的性能指标是存储器的速度,一般用存储器存取时间和存储周期来表示。
存储器存取时间(memory access time)又称存储器访问时间,是指从启动一次存储器操作到完成该操作所经历的时间。
存储周期(memory cycle time)指连续启动两次独立的存储器操作(例如连续两次读操作)所需间隔的最小时间。
通常,存储周期略大于存取时间。
(三)存储器的层次结构对存储器的要求是“大容量、高速度、低成本”,但是在一个存储器中要求同时兼顾这三方面是困难的。
一般来讲,速度高的存储器,每位价格也高,因此容量不能太大。
主存-辅存层次,满足了存储器的大容量和低成本需求。
cache-主存层次,解决了速度与成本之间的矛盾。
现代大多数计算机同时采用主存-辅存和cache-主存这两种存储层次,构成cache-主存-辅存三级存储层次,如下图所示。
CPU能直接访问的存储器称为内存储器,包括cache和主存储器。
第4章半导体存储器-4.2高速缓冲存储器Cache

3、存储器管理
虚拟存储器:虚拟存储器是由主存-辅存物理结构和负责信息块 划分以及主存-辅存之间信息调度的存储器管理部件(MMU)的 辅助硬件及操作系统的存储器管理软件所组成的存储系统。 管理方式:页式虚拟存储器、段式虚拟存储器、段页式虚拟 存储器 虚拟地址:能访问虚拟空间的指令地址码称为虚拟地址。 物理地址:实际的主存地址。
地址对准实际上是保证数据的对准。 未对准的数据要在CPU内部经过字节交换,使其在数据线 上对准存储体。 非对准的字要两个总线周期,对相邻的两个字进行两次操 作,在CPU内部经过字节交换,最终完成读写。
№ 13
2、替换策略
先进先出FIFO:选择最早装入快存的页作为被替换 的页; 最近最少使用策略LRU:选择CPU最近最少访问的页 作为被替换的页
AD0 L H L H
读写的字节 两个字节(AD15—AD0) 高字节(AD15—AD8) 低字节 (AD7—AD0) 不读写
如何连接,满足读写一个字节的需要,又能达到读一个字(低 № 10 位字节在偶地址)?
� � � �
1、存储器的奇偶分体 偶地址(从0开始)单元组成偶存储体, 奇地址单元组成奇存储体。 偶体、奇体共同组成16位存储器系统 。 16位读写是从偶体中选中1个单元、 再从地址加1的奇体中选中1个单元同时读写 。
虚地址
…
段式虚拟存储器的映像
3)段页式虚拟存储器
3、段页式虚拟存储器 虚地址
基号
段号
段表 0
页号
页表
页内地址 实地址
段基址表 0 L N-1
段表 段表 长度 基址 ‥ 1 L-1
M
装入 段长 位
页表 下址
实页 装入 号 位
访问 方式
高速缓冲存储器(Cache)

工作原理和基本结构 地址映象与变换 Cache存储器的LRU替换算法的硬件实现 Cache存储器的透明性及性能分析
为什么要使用Cache?
用以弥补主存速度的不足。
CPU速度与主存速度相差很大(例如,一般的DRAM的 工作速度比CPU慢100倍以上。
有Cache的主存系统都采用多体交叉存储器; 应尽量提高Cache的访主存的优先级;
地址映象与变换
地址映象:是将每个主存块按某种规则(算法) 装入(定位于)Cache,并建立主存地址与 Cache地址之间的对应关系。
地址变换:是主存块按照这种映象关系装入 Cache后,每次访Cache,如何将主存地址变换 成Cache地址。
比较结果不相等, 有效位为0, 表示Cache中的这一块 是空的
比较结果不相等, 有效位为1, 表示原来在CaE
块号B 块内地址w
块号b 块失效 相等比较 Cache地址
块内地址w 命中
比较相等且
E
1 有效位为1,
访问Cache
区号E (按地址访问) 有效位
预取法
恒预取:只要访问到主存第i块的某个字,不论 Cache是否命中,恒发预取命令。
不命中时预取:近当访问第i块不命中时,才预取命 令。
采用预取法并非能提高命中率,其他因素
块的大小 预取开销
说明
采用缓冲器技术是减少预取干扰的好办 法
模拟结果表明
恒预取法使不命中率降低75%--80% 不命中率时预取法使不命中率降低30%--
块失效率明显降低
组相联映象方式的缺点: 实现难度和造价要比直接映象方式高
地址变换过程: 用主存地址的组号G按地址访问块表存储器
高速缓冲存储器名词解释

高速缓冲存储器名词解释高速缓冲存储器(CacheMemory)是计算机系统中用来加快访问速度的一种临时存储器。
它可以被看作是内存系统中一层虚拟存储器,能够有效地把系统从内存、磁盘等设备中获取的数据以及未来所需要的数据暂存到cache memory中。
简言之,cache memory是一种可用来为CPU加速数据访问速度的存储器,是由CPU直接访问的一种高速存储器。
高速缓冲存储器由三个部分组成:cache级(cache level)、cache 缓存行(cache line)和cache单元(cache cell)。
cache是一组缓存行的集合,是 cache memory最小单元。
cache是由一组相连接的 cache line成。
cache line括一组相同大小的 cache元,每个单元根据它的作用可分为三类:索引(index)、标记(tag)、数据(data)。
cache可以将源数据分成多个子集,并将其中一部分存储到cache memory 中,以便快速访问。
cache据地址映射(address mapping)原理,将一段内存区域缩小,便于数据的快速访问。
当 CPU求某条指令时,它会首先检查 cache 中是否已经缓存了这条指令,如果缓存中有,就可以从 cache 中取出该指令,省去了访问主存的时间,这样就提高了 CPU运算速度。
除此之外,高速缓冲存储器还利用了多级缓存(multi-level cache)技术,把cache memory分为多级,从而提高了 cache memory 命中率。
在这种技术下,如果一级缓存(L1 cache)中没有找到所要访问的数据,则会再到二级缓存(L2 cache)中查找。
如果L2 cache中也没有相应的数据,则会再去其他更高级的缓存中查找,直至主存中的数据被访问到。
多级缓存的出现大大提高了 cache memory性能,大大提升了整个系统的访问效率,从而使CPU能更加高效地运行程序。
高速缓冲存储器cache的原理

高速缓冲存储器cache的原理高速缓冲存储器(Cache)原理简介什么是高速缓冲存储器•高速缓冲存储器(Cache)是计算机体系结构中一种用于提高数据传输速度的存储器层次结构。
•它位于处理器和主存储器之间,作为一个中间层,存储处理器频繁使用的数据,以提供更快的访问速度。
高速缓冲存储器的工作原理1.局部性原理–高速缓冲存储器的设计基于计算机程序的局部性原理。
–局部性原理包括时间局部性和空间局部性两个方面。
–时间局部性指的是在一段时间内,CPU对某些数据的访问很频繁。
–空间局部性指的是当访问某个地址时,很可能在不久的将来还会访问附近的地址。
2.缓存工作原理–高速缓冲存储器通过存储最近使用的数据来加速访问速度。
–缓存采用一种称为缓存行的数据块单位,将主存储器中的数据缓存在缓存中。
–缓存行的大小一般为2^n字节,其中n为缓存行地址的位数。
–当CPU需要从主存储器中读取数据时,首先会检查缓存中是否有对应的缓存行。
–如果有,称为缓存命中;如果没有,称为缓存未命中。
3.缓存命中–当缓存命中时,CPU可以直接从缓存中读取数据,避免了对主存储器的访问,大大提高了访问速度。
–同时,缓存还可以缓存下一条指令,提前加载到缓存中,以等待CPU的执行。
4.缓存未命中–当缓存未命中时,需要从主存储器中读取数据,此时会引起一定的延迟。
–缓存未命中会触发缓存替换算法,将最近最少使用的缓存行替换出去,腾出空间存放新的缓存行。
5.缓存替换算法–常见的缓存替换算法有最近最久未使用(LRU)、先进先出(FIFO)和随机替换等。
–这些算法会根据缓存行的使用频率等因素来进行替换决策。
–替换算法的选择往往取决于不同的应用场景和硬件架构。
高速缓冲存储器的优势与应用•高速缓冲存储器极大地提高了计算机的性能和效率。
•它可以减少CPU对主存储器的访问次数,缩短了数据传输的时间。
•高速缓冲存储器被广泛应用于各种计算机硬件架构中,包括个人电脑、服务器和嵌入式系统等。
第4章-计算机系统结构(第五版)李学干

例来分析。 存储层次的每位价格为
c1 S M1 c2 S M 2 c S M1 S M 2
第4章 存储体系
图 4 - 4 二级存储体系的评价
第4章 存储体系
存储层次的等效访问时间TA= HTA (1 H )TA 。希望 1 2 TA越接近于 T ,即存储层次的访问效率e= TA /TA越接近于1 A 越好。
第4章 存储体系
图 4 - 14 主存页面表
第4章 存储体系
【例 4-1】
设有一道程序,有1~5页,执行时的页地址流(即依次用
到的程序页页号)为 2,3,2,1,5,2,4,5,3,2,5,2 若分配给该道程序的主存有3页,则图4 - 15表示FIFO、 LRU、OPT这3种替换算法对这3页的使用和替换过程。
第4章 存储体系
4.1 基本概念 4.2 虚拟存储器 4.3 高速缓冲存储器 4.4 三级存储体系
4.5 存储系统的保护
4.6 本章小结
第4章 存储体系
4.1 基 本 概 念
4.1.1 存储体系及其分支
前面已经讲过,为了同时满足存储系统的大容量、高速度 和低价格,需要将多种不同工艺的存储器组织在一起。 虚拟存储器是因为主存容量满足不了要求而提出来的。在
第4章 存储体系
2. 页式管理 段式存储中各段装入主存的起点是随意的,段表中的地 址字段很长,必须能表示出主存中任意一个绝对地址,加上 各段长度也是随意的,段长字段也很长,这既增加了辅助硬
件开销,降低了查表速度,也使主存管理麻烦。
例如,主存中已有A、B、C三个程序,其大小和位置如 图4 - 7所示,现有一长度为12 KB的D道程序想要调入。
高速缓冲存储器

Cache的实现原理是:将CPU最近最可能用到的指令或数据从主存复制到Cache中,当CPU下次再用到 这些信息时,就不必访问慢速的主存,而直接从快速的Cache中得到,从而提高访问速度。
Cache的工作原理
当 CPU 发 出 读 命 令 时 , Cache 控 制部件先要检查CPU送出的地址,判 断 CPU 要 访 问 的 地 址 单 元 是 否 在 Cache 中 。 若 在 , 称 为 Cache 命 中 , CPU 就 可 直 接 从 Cache 中 访 问 ; 若 不 在,则称为Cache未命中(或失效), 这时就需要从内存中访问,并把与本 次访问相邻近的存储区内容复制到 Cache中,以备下次使用。组内全相联映来自的方法。高速缓冲存储器
1.3 Cache的替换策略
当CPU访问的数据不在Cache中(即Cache未命中)时,就要访问主存,并把数据所在的页调入Cache,以 替换Cache中的页。
从C随ac机he替中换随算机法地选 一页替换。
先进选先择出最(先F调IF入O的)页算法 替换
最近最少使用(LRU) 选择最算近法最少使用 的页替换。
写 贯 穿 法 ( WT ) : 在 对 Cache 进 行 写 操作的同时,也写入主存。
回 写 法 ( WB ) : 在 对 Cache 进行写操作时,不写入主存,只是 在Cache中加以标记。只有当Cache 中的数据被再次更改时,才将原更 新的数据写入主存。
微机原理与接口技术
高速缓冲存储器
1.2 Cache的地址映射
被复制到Cache中的数据在内存中的地址与在Cache 中的地址之间的对应关系称为Cache的地址映射。
为了方便管理,将主存和Cache都分成大小相等的 若干页。设主存容量为2n,Cache容量为2m,页的大小 为2p(即页内地址有p位),则主存的页号(即页地址) 共有n-p位,Cache页号共有m-p位。这样,在进行地 址映射时,就是把主存页映射到Cache页上(即页号的 映射)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Cache 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
调入
4.1、地址映象——直接映像
例2:设一个Cache中有8块,访问主存进行读操作的块地址依次为: 10110、11010、10110、11010、10000、00100、10010, 求每次访问时Cache的内容。
硬件完成功能: 访存地址 转成 Cache地址 辅助存储器
Cache 的全部功能都是 由硬件完成的, 对程序员来说是透明的。
4.1、地址映象
映象:其物理意义就是位置的对应关系,将主存地址变成Cache地址。
常见的映象方式主要有三种: 1)直接映象 2)全相联映象 3)组相联映象
CPU Cache 字 数据总线 字
2位 主存区号标记 00 主存块号 比较 3位 区内块号 100 Cache块号 未命中 访问内存 000 001 010 011 100 101 110 111 块内地址 块内地址
Cache
000 001 010 011 100 101 110 111
调入
块表 000 001 010 011 100 101 110 111
4、高速缓冲存储器(Cache)
考研试题精选:
假设:CPU执行某段程序时,共访问Cache 3800 次,访问主存200 次,已知Cache存取周期为50ns,主存存取周期为250ns。
求:Cache—主存系统的平均存取时间和效率。 解: 系统命中率 h = 3800 / 3800 + 200 = 0.95
Cache
000 001 010 011 100 101 110 111 调入
块表 000 10 001 010 11 011 100 101 110 10 111
内存10区
4.1、地址映象——直接映像
例2:设一个Cache中有8块,访问主存进行读操作的块地址依次为: 10110、11010、10110、11010、10000、00100、10010, 求每次访问时Cache的内—直接映像
例2:设一个Cache中有8块,访问主存进行读操作的块地址依次为: 10110、11010、10110、11010、10000、00100、10010, 求每次访问时Cache的内容。
2位 主存区号 10 主存块号 3位 区内块号 110 Cache块号 比较 未命中 访问内存 内存10区 块表 000 001 010 011 100 101 110 10 111 调入 块内地址 块内地址
0
1
4.1、地址映象——直接映像
CPU先送出一个主存地址,用主存地址中的区号与块表中区号比较, 若命中:访Cache(主存地址的块号+块内地址)读出一字送CPU; 若未命中:访内存(主存地址的区号+块号)读出一块送Cache。
区号
块号 Cache块号
块内地址 块内地址
主存地址
Cache地址
未命中 访问内存
Cache
000 001 010 011 100 101 110 111
替换
块表 000 001 010 011 100 101 110 111
内存10区
10 10 11 替换 00 10
4.1、地址映象——直接映像
直接映射方式的优点:硬件电路设计比较简单,且实现成本低。
地址总线 相联 未命中 存储表 命中 CPU Cache 字 字 块
主存 DRAM
数据总线
我们利用程序运行的局部性特点,把CPU正在访问和即将访问的若 干程序块和数据块从主存调入高速缓存中,使CPU访存内容大部分 从高速缓存中读取,极大地提高了存储系统的读写速度。
4、高速缓冲存储器(Cache)
CPU读取数据字时: 1)CPU输出存储单元地址(字)给内存,Cache拦截地址并分析; 2)Cache 先判断该存储单元的内容是否已在Cache中; 如果在,Cache直接送给CPU; 如果不在,CPU再去主存中读取。 3)CPU去主存中读取存储单元时,不仅把该存储单元取出, 同时还把该存储单元附近的一块数据,都取出送给Cache, 以便CPU顺序读取下一存储单元时,直接在Cache中读取。
系统平均存取时间 Ta = 50 ns * 0.95 + 250 ns *(1-0.95) = 60 ns
公式一 系统效率 = (Cache存取时间 / 平均存取时间)
= 50ns / 60ns = 83.3%
4、高速缓冲存储器(Cache)
考研试题精选: 例:CPU执行一段程序时,Cache完成存取的次数为1900次,主存完成存 取的次数为100次,已知Cache存取周期为50ns,主存存取周期为250ns。 求: Cache/
2位 主存区号标记 11 主存块号 11 比较 3位 区内块号 010 Cache块号 未命中 访问内存 内存11区 块表 000 001 010 11 调入 011 100 101 110 10 111 000 001 010 011 100 101 110 111 块内地址 块内地址
Cache
000 001 010 011 100 101 110 111
第四章 存储器
1、存储器的分类 2、存储器的层次结构(三级存储系统) 3、主存储器(内存 Main memory) 4、高速缓冲存储器(Cache) 5、虚拟存储器(Virtual Memory) 6、相联存储器(了解)
辅助存储器
4、高速缓冲存储器(Cache)
为了弥补主存速度的不足,在CPU与主存之间设置一个 高速 小容量 的缓冲存储器,称高速缓存(Cache),主要由高速的SRAM组成。 其工作原理如下:
Cache
000 001 010 011 100 101 110 111
访问Cache 块表 000 001 010 11 011 100 101 110 10 111
4.1、地址映象——直接映像
例2:设一个Cache中有8块,访问主存进行读操作的块地址依次为: 10110、11010、10110、11010、10000、00100、10010, 求每次访问时Cache的内容。
解:
系统命中率 h = 1900 / (1900+100)=0.95 倍率 r = Tm / Tc = 250ns / 50ns = 5
公式二
系统效率 = 1 /(r +(1 - r)h)= 1 /(5+(1-5)*0.95) = 83.3% 系统平均访问时间 Ta = h*Tc +(1-h)Tm = 0.95*50ns + 0.05*250ns = 47.5 + 12.5 = 60ns
2位 主存区号标记 11 主存块号 命中 3位 区内块号 010 Cache块号 比较 块内地址 块内地址
Cache
000 001 010 011 100 101 110 111
访问Cache 块表 000 001 010 11 011 100 101 110 10 111
4.1、地址映象——直接映像
地址总线 相联 未命中 存储表 命中 CPU Cache 字 数据总线 字 块 主存 DRAM
Cache的命中率 高达98%以上。
4、高速缓冲存储器(Cache)
增加Cache后,将使主存系统的平均存取时间尽可能接近Cache的。 由于程序访问的局部性使之可能。 在一个程序执行期间 命中率 h = 命中Cache的总次数 / CPU访存的总次数
4、高速缓冲存储器(Cache)
CPU与Cache或主存之间的数据交换以“字”(即:存储单元)为单位, 而主存与Cache之间的数据交换以“块”(即:数据块)为单位。
一块数据由若干个字组成,且块是定长的!
为了实现Cache的上述功能,需要解决这样一些问题:
1)Cache与主存中存储单元地址映象关系,主存容量大而Cache容量小; (主存中的存储单元 放在 Cache的哪个单元地址 中呢?) 2)如何实现地址转换,将访问主存的地址转换成访问Cache的地址; (CPU直接输出的是访问主存单元的地址,主存长地址 变 Cache短地址?)
0区 第1块
Cache地址
4位 块号
9位 块内地址
4.1、地址映象——直接映像
直接映象方式是多对一映射。
主存中的一块只能映象到Cache某一个固定的块中。 直接映象的关系式:
K = I mod M
K:Cache块号, I:主存块号, 0 16 32 48 . . . 2032 M:Cache总块数 1 17 33 49 . . . 2033
调入
4.1、地址映象——直接映像
例2:设一个Cache中有8块,访问主存进行读操作的块地址依次为: 10110、11010、10110、11010、10000、00100、10010, 求每次访问时Cache的内容。
2位 主存区号标记 10 主存块号 命中 3位 区内块号 110 Cache块号 比较 块内地址 块内地址
3)若访问Cache未命中且Cache未满时,主存数据块如何调入? Cache已满时,主存数据块如何替换?先来先走?
4)数据的一致性问题:Cache中的更新数据与主存中的陈旧数据之间的更新。
第四章 存储系统
4、高速缓冲存储器(Cache) 4.1、地址映象 4.2、替换算法 4.3、多层次的Cache
比较
命中 访问Cache
Cache块号 区号标记 000 按块号 001 查找块表 010 011
4.1、地址映象——直接映像
例1:设有一个Cache的容量为2KB,每块16个字(设一字一字节) 求: 1)该Cache可容纳多少个块? 2KB = 2048B 2048B / 16B = 128块 2)如果主存容量为256KB,则有多少块? 256 KB = 256 * 1024 B = 262144 B 262144B / 16B = 16384块 3)主存地址有多少位?Cache 地址有多少位? 主存有18位,Cache有11位。 4)在直接映象方式下,主存中第135块映象到Cache中哪块? K= I mod M = 135 mod 128 = 7 5)进行地址映射时,主存地址分成哪几段?各段分别有多少位? 主存地址分为三段: 主存区号位数 = 主存地址位数 – Cache 地址位数=18 -11 = 7位 Cache块号位数 = 7位 27=128 块内地址位数 = 4位 24=16