408王道计算机组成原理强化——存储系统大题

简介: 408王道计算机组成原理强化——存储系统大题(下)

2.Cache行和TLB的构成

2.1.Cache行的构成934de346307541e3bec0cd50fbe24982.png

1.Cache数据区总大小 = Cache总行数 * Cache块大小

2.Cache总大小 = Cache数据区总大小 + Cache标志位总大小

3.Cache行构成 = Tag + 有效位 + 替换信息位 + 脏位 + 块内数据

①Tag:Cache标签;由物理地址位数 + Cache总行数 + Cache块大小 + Cache映射方式共同决定位数

(1)直接映射:Tag = 物理地址位数 - 行号位数 - 块内地址位数(行号 = Cache总行数)

(2)组相联映射:Tag = 物理地址位数 - 组号位数 - 块内地址位数(组号 = Cache总行数 / 几路组相联)

(3)全相联映射:Tag = 物理地址位数 - 块内地址位数

②有效位:该Cache行的数据是否有效,固定存在且固定为 1 bit

③替换信息位:反映当Cache行满需要进行替换时,该Cache的被替换优先级;由映射方式 + 替换算法 + Cache总行数决定位数

④脏位(修改位):在该行Cache被替换时,根据脏位判断该Cache是否被修改过,即是否需要写回内存

写回法(write - back):只有淘汰某个Cache块时才将被修改过的Cache写回主存,故需要脏位来表示Cache是否被修改过;脏位为 1 bit

直接法(write - through):Cache被修改时直接写回主存,即Cache内数据和主存中数据保持一致,故不需要脏位;脏位为 0 bit

⑤块内数据:Cache块大小决定位数

⑥行号(直接映射):Cache总行数决定位数

组号(组相联映射):Cache总行数 + 几路组相联映射决定位数(总行数 / 路数)

行号和组号是被隐含的,不会额外占用标志位

2.2.TLB的构成

1.Tag:①全相联映射:位数 = 虚拟页号位数

②组相联映射:位数 = 虚拟页号位数 - 组号位数

2.有效位:一定存在,且固定为1bit

3.页框号:由页大小决定(注意区别于主存块大小)

4.替换信息位:与Cache同理

3.真题image.png

(1)①总块数 = 数据区容量 / 主存块大小 = 32KB / 64B = 512块

②组数 = 总块数 / 8路 = 512 / 8 = 64 → 6bit

③块内地址: 主存块大小 = 64B → 6bit

④Tag = 32bit(物理地址位数) - 6 bit(组号)- 6 bit(块内地址)= 20 bit

⑤直写法:Cache数据和对应的主存块数据保持一致,不需要修改位

⑥LRU:8路组相联映射,每组8个,故3 bit(0 - 7)

73543a7992b144489427ae79571a2c36.png61dd767619a14c54b987c0a27ae8ee4d.png

(1)物理地址为28bit(右侧20 + 3 + 5,即是物理地址分成三个部分)

(2)TLB采用全相联映射,SRAM

(3)①组相联映射(每次都判断左右tag是否匹配,故是组相联映射,且为二路组相联)

②LRU → 替换信息位;二路组相联映射 → 每组2个Cache行 →1bit

③写回法 → 脏位:1 bit

④Cache总行数:组号3bit → 分为8组;二路组相联映射 → 每组2行Cache;8 * 2 = 16行

⑤Tag = 20bit

⑥总容量 = (20 + 1 + 1 + 1 + 32 * 8)* 16b,即(Tag + 脏位 + 有效位 + LRU + 数据)* 行数

⑦有效位说明该Cache的数据是否有效

(4)①0008 C040H的虚拟页号位0008 C得到实页号为0040

②实页号0040与页内地址040进行拼接得到物理地址→0040 040H

③0040 040H的末尾8bit为40H,即0100 0000,得到组号为010,即2

④对比组号为2的Cache,有0040 0的Cache标签,但是有效位为0,故Cache未命中

⑤0007 C260H的页内地址为260H,取末尾8bit,即0110 0000,组号为011,即3

88cdbb3a75cd4b23bd37527d436962b2.pnga60f5cd765be49a5935abbc8dee3d219.png1.45题中的第一列为行号,第二列为指令的虚拟地址,第三列为机器指令,第四列为汇编指令

2.主存地址32位,即物理地址为32位

3.页大小为4KB,按字节编址,即页内偏移量为12位

4.push指令的虚拟地址为0040 1000H,即虚拟页号为0040 1;ret指令的虚拟地址为0040 104AH,即虚拟页号为0040 1;两者的虚拟页号相等,故两个指令在同一页中

5.主存块大小为64B,即块内地址为6位

6.指令Cache有64行;采用四路组相联映射,即每组4行Cache;组数 = 64 / 4 = 16,即组号4bit

7.Tag标记位 = 32位(物理地址)- 6位(块内地址)- 4位(组号)= 22位

8.Call指令的虚拟地址为0040 1025H,转换成二进制后,相应的组号位为0000,即0号组

虚拟地址分为虚拟页号和页内偏移量,虚拟地址转换为物理地址时,将会使用对应的页框号拼接上页内偏移量形成物理地址,故页内偏移量就是物理地址的一部分,且为物理地址的低地址部分

4.Cache硬件原理拓展61dd767619a14c54b987c0a27ae8ee4d.png

1.通过中间3位找到对应的组,通过比较器同时比较组内两个Cache行的Tag是否与物理地址的Tag标记位匹配:通过电路分别将物理地址的Tag标记位和Cache的Tag输入到比较器中(物理地址来自MAR),如果两者相等,比较器输出1;如果两者不相等,比较器输出0

2.通过比较器上面的与门控制多路选择器是否接通:当且仅当比较器输出1(即Cache的Tag和物理地址的Tag相等)且有效位的电路输出1(即Cache数据有效)时,与门输出1给多路选择器,即多路选择器连通(但是仅连通左半边或者右半边,即将左边的Cache行的Data输入到多路选择器中或者将右边的Cache行的Data输入到多路选择器中,二者只会发生一个),然后多路选择器将输入的Data输出到数据中

3.将物理地址末尾的5位输入到数据中与2中输入的Tag位拼接,形成访问数据的具体字节的地址dd3c34dc765d4e52a2f9112fead0da65.png

①虚拟地址→物理地址:虚拟地址48位由36位VPN(虚拟页号)和12位VPO(页内偏移量)组成

1.左上角:VA即虚拟地址:由36位虚拟页号(VPN)和12位页内偏移量(VPO)组成

2.36位虚拟页号(VPN):由32位TLB标签(TLBT,Tag)和4位组号(TLBI,INDEX)组成;即说明采用的是组相联映射方式

3.组号4位:分为16个分组(16sets)

4.每组4个:四路组相联映射(4entries / set),每个的标志位由PPN(physical page number,物理页号)、Valid(有效位)和Tag(TLB标签)组成

5.通过进行前32位(虚拟页号36位 - 组号4位)和组内各行TLB标签(同32位)进行匹配后,若命中(TLB - hit),则将PPN和PPO(physical page offset,页内偏移量)进行拼接得到物理地址PA

6.左下角:如果TLB miss(TLB未命中),则前36位虚拟页号将会被拆分为4个9位的虚拟页号(VPN),说明采用的是4级页表;CR3是CPU中的寄存器,指向第一级页表的起始地址,然后逐级寻找下一级页表的页表项位置,最终得到PPN,再进行拼接得到物理地址

②物理地址→Cache:物理地址42位由40位CT(Tag)+ 6位CI(Index,组号)+ 6位CO(offset,块内偏移量)组成

1.Cache共64个分组(64 sets),每组8行Cache → 8路组相联映射

2.用物理地址的前40位Tag和组内各行Cache的Tag进行匹配,Cache Hit则得到具体块号,通过块内偏移量在相应位置读出32/64bit9fa8d57c9eb54ecfbecaa094e215599f.png

1.TLBT(Tag): TLB标签位,6bit

2.TLBI(Index):TLB组号位,Set为组号,0 - 3,即4组,2bit

3.TLBT + TLBI = VPN(虚拟页号),8bit

4.VPO(页内偏移量),6bit

5.每个Set中有4行Cache → 四路组相联映射024410e38e6148869ea57fe204caeb5d.png

四路组相联映射

相关文章
408王道计算机组成原理强化——输入输出系统大题(I/O)
408王道计算机组成原理强化——输入输出系统大题(I/O)
407 1
408王道计算机组成原理强化——输入输出系统大题(I/O)
|
7月前
|
JavaScript 前端开发 Java
关于对计算机发展史、冯诺依曼体系、CPU基本工作流程以及关于编程语言的简单认识
关于对计算机发展史、冯诺依曼体系、CPU基本工作流程以及关于编程语言的简单认识
|
存储 内存技术
408王道计算机组成原理强化——存储系统大题(上)
408王道计算机组成原理强化——存储系统大题
981 2
408王道计算机组成原理强化——存储系统大题(上)
408王道计算机组成原理强化——数据的运算及大题(上)
408王道计算机组成原理强化——数据的运算及大题
223 1
408王道计算机组成原理强化——数据的运算及大题(上)
408王道计算机组成原理强化——数据的运算及大题(下)
408王道计算机组成原理强化——数据的运算及大题
582 1
408王道计算机组成原理强化——数据的运算及大题(下)
|
存储 缓存 固态存储
408计算机组成原理学习笔记——存储系统(一)
408计算机组成原理学习笔记——存储系统
902 2
408计算机组成原理学习笔记——存储系统(一)
|
人工智能
408王道计算机组成原理强化——中央处理器及大题解构(下)
408王道计算机组成原理强化——中央处理器及大题解构
1006 1
408王道计算机组成原理强化——中央处理器及大题解构(下)
|
内存技术
408王道计算机组成原理强化——中央处理器及大题解构(上)
408王道计算机组成原理强化——中央处理器及大题解构
725 1
408王道计算机组成原理强化——中央处理器及大题解构(上)
|
存储 固态存储 芯片
408计算机组成原理学习笔记——存储系统(二)
408计算机组成原理学习笔记——存储系统
647 1
408计算机组成原理学习笔记——存储系统(二)
|
存储 算法 程序员
408计算机组成原理学习笔记——存储系统(三)
408计算机组成原理学习笔记——存储系统
462 1
408计算机组成原理学习笔记——存储系统(三)

热门文章

最新文章