Cache无处不在 体系结构中, Cache无处不在 寄存器: Cache on variab|es 二级 Cache: Cache on memory Memory Cache on hard disks 存储最近执行的程序和数据 Hard disks可以视为主存的扩展(M) 分支目标缓存及分支预测缓存 缓存分支目标及预测信息 2021/2/11 计算机体系结构
Cache 无处不在 • 体系结构中,Cache无处不在 • 寄存器:Cache on variables • 一、二级Cache: Cache on memory • Memory:Cache on hard disks – 存储最近执行的程序和数据 – Hard disks可以视为主存的扩展(VM) • 分支目标缓存及分支预测缓存 – 缓存分支目标及预测信息 2021/2/11 计算机体系结构 17
Cache基本知识 Sample memory hierarch hy CPU LO ICache LO DCache L2 1 Cache I Cache backside ption Disk L2 L2 L2 Cache Cache Cache Tape Juke Box 1/0 Adapter Main Memory 2021/2/11 计算机体系结构
Cache基本知识 2021/2/11 计算机体系结构 18
Q1:映象规则 当要把一个块从主存调入 Cache时,如何放置问题 三种方式 全相联方式:即所调入的块可以放在 cache中的任何位置 直接映象方式:主存中每一块只能存放在 cache中的唯一位置 一般,主存块地址与 cache中块地址的关系为: =imod(M),M为 cache中的块数 组相联映象:主存中每一块可以被放置在 Cache中唯一的一个组中的任意 一个位置,组由若干块构成,若一组由n块构成,我们称N路组相联 组间直接映象 组内全相联 若 cache中有G组,则主存中的第i块的组号K K=i mod (G 2021/2/11 计算机体系结构
Q1:映象规则 • 当要把一个块从主存调入Cache时,如何放置问题 • 三种方式 – 全相联方式:即所调入的块可以放在cache中的任何位置 – 直接映象方式:主存中每一块只能存放在cache中的唯一位置 一般,主存块地址i 与cache中块地址j 的关系为: j = i mod (M) ,M为cache中的块数 – 组相联映象:主存中每一块可以被放置在Cache中唯一的一个组中的任意 一个位置,组由若干块构成,若一组由n块构成,我们称N路组相联 • 组间直接映象 • 组内全相联 • 若cache中有G组,则主存中的第i 块的组号K • K = i mod (G), 2021/2/11 计算机体系结构 19
Q1: Where can a block be placed in the upper level? Block 12 placed in 8 block cache Fully associative, direct mapped, 2-way set associative S.A. Mapping Block Number Modulo Number Sets Fully associative Direct mapped Set associative block 12 can go block 12 can go block 12 can go anywhere only into block 4 anywhere in set O (12mod8) (12mod4) Bock01234567 Block 01234567 Block 01234567 no Set set set set Block -frame address 0123 Block 1111111111222222222233 01234567890123456789012345678901 2021/2/11 计算机体系结构
Q1: Where can a block be placed in the upper level? • Block 12 placed in 8 block cache: – Fully associative, direct mapped, 2-way set associative – S.A. Mapping = Block Number Modulo Number Sets 2021/2/11 计算机体系结构 20 0 1 2 3 4 5 6 7 Block no. Fully associative: block 12 can go anywhere 0 1 2 3 4 5 6 7 Block no. Direct mapped: block 12 can go only into block 4 (12 mod 8) 0 1 2 3 4 5 6 7 Block no. Set associative: block 12 can go anywhere in set 0 (12 mod 4) Set 0 Set 1 Set 2 Set 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 Block-frame address 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 Block no
Q1的讨论 N-Way组相联:如果每组由N个块构成, cache的块数为M, 则 cache的组数G为M/N 不同相联度下的路数和组数 路数 组数 全相联 直接相联 其他组相联1<N<M 1<G<M 相联度越高, cache空间利用率就越高,块冲突概率就越小,失效 率就越低 N值越大,失效率就越低,但 Cache的实现就越复杂,代价越大 现代大多数计算机都采用直接映象,两路或四路组相联。 2021/2/11 计算机体系结构
Q1的讨论 • N-Way组相联:如果每组由N个块构成,cache的块数为M, 则cache的组数G为M/N • 不同相联度下的路数和组数 路数 组数 全相联 M 1 直接相联 1 M 其他组相联 1 < N <M 1 < G < M – 相联度越高,cache空间利用率就越高,块冲突概率就越小,失效 率就越低 – N值越大,失效率就越低,但Cache的实现就越复杂,代价越大 – 现代大多数计算机都采用直接映象,两路或四路组相联。 2021/2/11 计算机体系结构 21