计算机系统基础
Programming Assignment
PA 3 存储管理
——PA 3-1 Cache的模拟
2017年11月14 日
前情提要(以餐厅为类比)
客户定制菜单=ELF文件(PA 2-2 + PA 2-3.2)
PA 2-2 Kernel
PA 2-1 指挥双手的大脑
= 解码和执行指令的控制器
PA 2-2 装载 PA 1 ALU
总线数据 PA 1 FPU
交换(我
们不模拟)
冰箱= 内存 PA 1 灶台上的锅 PA 2-3.1 丰富的味觉
2017/11/14 = 寄存器 2
= 完善的调试器 (强行类比)
PA 3的总体任务 (以餐厅为类比)
对这一块有点不满意
2017/11/14 Programming Assignment 3-1 3
PA 3-1 Cache的模拟
如何加快获取数据的速度?
2017/11/14 Programming Assignment 3-1 4
PA 3-1 Cache的模拟
• 动机:频繁的访存大大影响了运算的速度
• 每次取指令要访存
• instr_fetch()
• 每次取/存操作数要访存
• operand_read() / write()
• 调用vaddr_read() / write()
• 一条指令访存三四次,时间都花在访存上了
食材摆太远,取用太耗时
对这一块有点不满意
2017/11/14 Programming Assignment 3-1 5
PA 3-1 Cache的模拟
• 怎么办?
• 灶台(CPU芯片)上还有点空间,我放些小碟子来临
时存放马上要用的东西(数据)
• 这就是Cache ,内存的Cache
后厨冰箱送出来,马上要烫
的食材,在台面盘子里放好。
要吃的时候直接盘子里夹。
否则服务员一趟趟的跑,菜
没吃几口,汤都烧干了。
内存里读出来,马上要用的
数据,在Cach