计算机组成原理 第17讲_Cache

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

… …
m-1
盛建伦jlsheng@
直接映射 Direct Mapping 若 Cache有m行,每行n字,主存有2S块, S— r位 主存地址(S+w位) Cache地址(r+w位) 标志Tag r位 行地址Line 行地址Line 选中1行 Cache的 内容 Tag 字0 字1 设 m=2r ,n=2W w位 字地址Word 字地址Word 选中行内1个字 …… 字 n-1
From Processor 主存地址 块号 已装不进 Cache 替换策略 块内地址
地址总线
若Cache已满,则按 照某种替换策略把该 行替换进Cache。 CPU访问Cache, 每次1个字。
Miss
Hit 装入 Cache 1行 主存- Cache 地址映射变换机构 Cache地址
Address Mapping
主存地址
地址总线
块号
已装不进 Cache
块内地址
Miss Hit 装入 Cache
主存- Cache 地址映射变换机构 Cache地址
Address Mapping
替换策略
块 号 块内地址
主存
直接通路
1行
Cache
1个字
To Processor
数据总线
主存-Cache地址映射变换机构将处理机发出的主存地址变换 成Cache地址,判定该字所在行是否在Cache中。 如果在Cache中,称为命中Hit,则访问Cache。 如果不在Cache中,称为不命中Miss(块失效),则访问主存。 同时,将包含该字的一行装入Cache。
装入 Cache 主存- Cache 地址映射变换机构 Cache地址
Address Mapping
块 号 块内地址 1行 Cache 1个字
To Processor
数据总线
主存
直接通路
When the processor needs to read or write a location in main memory, it first checks whether that memory location is in the cache. This is accomplished by comparing the address of the memory location to all tags in the cache that might contain that address.
块 号 块内地址
主存
直接通路
Cache
1个字
To Processor 数据总线
主存与 Cache之间 的数据传输以数据 块为单位。要求总 线和主存支持多字 (块)同时传输。
以取指令为例 2345* 程序计数器PC 访问Cache Cache Tag 2345 内容 AB CD 不命中 读主存
行地址
盛建伦jlsheng@
主存储器
2344 2345 2346 2347 2348 2349 234A 234B 08 BD AB CD 30 CD 9B 76 C3 BD 0B CD 1F CD 90 71
不命中 读主存
Cache已满, 替换1行
指令寄存器IR
10
原理上,Cache-主存层次有两种工作方式: 方式1. CPU对Cache和主存都有直接访问路径。 CPU Cache
主存储器 2344 2345 2346 2347 2348 2349 234A 234B 08 BD AB CD 30 CD 9B 76 C3 BD 0B CD 1F CD 90 71
并将从主存 读出的字装 入Cache
每行2个字
AB
指令寄存器IR
7
盛建伦jlsheng@
以取指令为例 2346* 程序计数器PC 访问Cache Cache Tag 2345 2346 内容 AB CD 30 CD 不命中 读主存 2344 2345 2346 2347 2348 2349 234A 234B 30 指令寄存器IR
If the processor finds that the memory location is in the cache, we say that a cache hit has occurred;
otherwise, we speak of a cache miss.
From Processor
(二)平均访问时间 例如,主存的访问时间为100ns,Cache的访问时间为10ns, 命中率为90%。则Cache-主存层次的平均访问时间为
TA=H· TA1 +(1—H)· TA2 =
H· TC +(1—H)· (TM+ TC)
20 ns = 0.9×10+(1—0.9)×110 ns = 使用Cache可明显改进计算机系统的平均访问时间。如果命 中率足够高,则大多数的访问时间都接近于快速的Cache存储器 的访问时间。 如果Cache的速度与处理机相当,容量足够大,配上以合适 的调度算法为基础的、全部硬化的地址映射变换部件,实现高的 命中率,则可能实现高主振频率的CPU的零等待(在访存时,不 插入TW)。 平均访问时间受命中率的影响很大。
9
主存储器 08 BD AB CD 30 CD 9B 76 C3 BD 0B CD 1F CD 90 71
盛建伦jlsheng@
以取指令为例 2344* 程序计数器PC 访问Cache Cache Tag 2345 2344 2346 234A 234B 内容 ABCD 08 BD 30 CD 1F CD 90 71 08
(2) A CPU cache is a cache used by the central processing unit of a computer to reduce the average time to access memory. The cache is a smaller, faster memory which stores copies of the data from the most frequently used main memory locations. As long as most memory accesses are cached memory locations, the average latency of memory accesses will be closer to the cache latency than to the latency of main memory.
盛建伦jlsheng@ 3
(一)Cache-主存层次的基本结构 Cache和主存都分成若干行(块,Block,Line,Slot),每 行有若干字(Word)或字节组成。
From Processor 主存地址 地址总线
块号
已装不进 Cache 替换策略
块内地址
Miss Hit
② 相联映射(全相联) Fully Associative Mapping ③ 组相联映射 Set- associative Mapping
盛建伦jlsheng@
14
(1)直接映射 Direct Mapping 主存的每一块只能映射到Cache的一个特定的行。 若Cache有m行,每行n字,主存有2S块, 则直接映射可表示为 Cache的行号i =主存的块号j(Modulo m)
8
主存储器 08 BD AB CD 30 CD 9B 76 C3 BD 0B CD 1F CD 90 71
并将从主存 读出的字装 入Cache
盛建伦jlsheng@
以取指令为例 2345* 程序计数器PC 访问Cache Cache Tag 2345 2346 内容 AB CD 30 CD 命中 读Cache 2344 2345 2346 2347 2348 2349 234A 234B AB 指令寄存器IR

2.行的容量( Block Size )
一般每行1~16字。每行4~8个可寻址单元似乎接近最好。
盛建伦jlsheng@
13
3.主存-Cache地址映射变换( Mapping Function ) Cache存储器的基本特点是快速的访存。因此,在Cache中寻 找字的时间必须极短。 把主存地址变换成Cache地址称为映射。实际使用的映射变 换有3种: ① 直接映射 Direct Mapping
盛建伦jlsheng@ 2
§7.2 高速缓冲存储器 (Cache)
Cache-主存层次工作原理 Cache 是位于CPU与主存之间的一个高速小容量的存储器。 Cache一般采用和CPU相同的半导体工艺制成,在物理位置 上尽量靠近CPU,而不在主存模块中,最好在处理器芯片内。 其速度与CPU的速度相匹配,即能够在一个最短的存储周期内完 成一次读/写,约比主存速度高数倍~数十倍以上。 Cache的管理全部用硬件实现。 Once the data is stored in the cache, future use can be made by accessing the cached copy rather than re-fetching the original data, so that the average access time is shorter. Small memories on or close to the CPU chip can be made faster than the much larger main memory. Most CPUs since the 1980s have used one or more caches.
主存
Cache既是Cache-主存层次中的 一层,也是一个旁路存储器。 TA= H· TC +(1—H)· (TM)
CPU发出的地址同时访问Cache和主存。如果Cache命中,则 放弃对主存的访问。如果Cache不命中,则从主存读出。 方式2. CPU只直接访问Cache,不直接访问主存。 标准的二级存储层次。 Cache CPU 主存 TA= H· TC +(1—H)· (TM+ TC) 当CPU需要访问存储器时,先检查Cache,此时,地址不出现 在地址总线上。如果Cache不命中,才通过总线访问主存。
Cache 行 i 0 1 …… m-1 主存块 j 0,m,2m,……,2 S-m 1,m+1,2 m+1,……,2S-m+1 …… m-1,2 m-1,3 m-1,……,2S-1
Cache 0 1 2
主存 0 1 2 … … m-1 m m+1 m+2 … … 2m-1 2m 2m+1 … … km-1 km … … nm-1
计算机组成原理
Principles of Computer Organization
广义双语教学课程
青岛理工大学 校级精品课程
http://211.64.192.109/skyclass25/
/ec/C84/
第 7 章 存储系统
Chapter 7 Storage System
盛建伦jlsheng@
16
直接映射 Direct Mapping 例如: 主存容量16MB,按字节编址,Cache容量64KB,每行4个字节。 16M = 224,主存地址24位。
S- r = 8位
主存的行数 S = 22,
r = 14位 w = 2位
Cache的行数 m = 16k行 = 214行, n = 4 , 主存地址(S+w位) 标志Tag Cache地址(r+w位) Cache的内容 Tag 8位 W0 8位 行地址Line 行地址Line
盛建伦jlsheng@ 12
Cache设计 影响命中率的因素:Cache的容量,行的容量,地址映射 变换,替换算法,Cache的个数,地址流,等。 1.Cache的容量 (Cache Size) Cache的容量每增加一倍,不命中率减少30%。 Cache的容量 越大命中率越高。 为什么我们不把Cache的容量做的和主存容量一样大?
相关文档
最新文档