chap5.8 write_strategy
1. 写回(Write-Back) 定义: 写回是一种缓存写策略,当处理器修改缓存中的数据时,不会立即将数据写入主存,而是在缓存中标记该数据为“已修改”(dirty)。只有当该缓存行被替换或驱逐时,才会将其写回主存。 特点: 写操作快:因为写操作只需更新缓存,减少了对主存的访问。 多次写入合并:如果对同一缓存行进行了多次写操作,只需最后一次写回主存,减少了主存写操作次数。...
1. 写回(Write-Back) 定义: 写回是一种缓存写策略,当处理器修改缓存中的数据时,不会立即将数据写入主存,而是在缓存中标记该数据为“已修改”(dirty)。只有当该缓存行被替换或驱逐时,才会将其写回主存。 特点: 写操作快:因为写操作只需更新缓存,减少了对主存的访问。 多次写入合并:如果对同一缓存行进行了多次写操作,只需最后一次写回主存,减少了主存写操作次数。...
5.7.1 页的存放与查找 在地址转换过程中,虚拟地址的 Virtual Page Number (VPN) 会通过页表映射到物理地址中的 Physical Page Number (PPN);而 页内偏移 (Page Offset) 在映射过程中保持 **不变**。 页大小固定: 在图中,页大小为 $2^{12}$ 字节(4 KiB),因此虚拟地址和物理地...
Part I: Appendix Knowledge 1-1 Byte 内存的最小可寻址单位是字节(byte),具体原因与硬件相关 如B, MB, KB, GB都是以B(byte)为单位的 Part II: 直接映射 2-1: Index in cache Index = (Mem addr) mod (Number of blocks in the cache) ...
4.8.2 缩短分支延迟 确定分支目标地址的时间越早,需要清除的指令就越少 为了将分支决策提前, 需要提前两个动作:计算分支目标地址和判断分支条件。 计算分支目标地址 我们在 IF/ID 流水线寄存器中已经有了 PC 的值和立即数 段,所以只需要将分支地址计算从 EX 级移到 ID 级就可以了 判断分支...
(一)例子 sub x2, x1, x3 // Register z2 written by sub and x12, x2, x5 // 1st operand(x2) depends on sub or x13, x6, x2 // 2nd operand(x2) depends on sub add x14, x2, x2 // 1st(x2) & 2nd(x2) depen...
Part I: Datapath 1. 流水线寄存器 寄存器的位宽:必须足够大以存储通过它们的所有数据。例如,IF/ID寄存器的位宽必须为96位,因为它需要同时存储从存储器中提取出的32位指令以及自增的64位PC地址。目前,其他三个流水线寄存器的位宽分别为256位、193位和128位; 在发生例外时,PC中的内容必须被保存,而流水线寄存器中的内容则...
流水线概述 1. 每条指令的执行需要一个时钟周期,而这个时钟周期是固定的,等于执行最慢(延迟最长)的指令的时间: 譬如图中设计的一个时钟周期的时长为800ps,即ld指令的时长;执行beq指令时,虽然它本身只需要500ps,但也会消耗800ps; 2. 指令的每个阶段(每个功能单元的操作)的执行时间也是固定的,等于延迟最长的阶段的时长: 如图,Reg执行阶段消耗了200ps的时间...
Build DataPath (R-Type for E.g.) 1. R-Type 1)PC 2)寄存器堆(register file) 以add x1, x2, x3为例: a) 由于R型指令有三个寄存器操作数x1,x2,x3,每条指令需要从寄存器堆中读出两个Data,再写入一个Data。 b) 为读出一个Data,需要一个输入指定要读的寄存器编号(注意 输入的是寄存...
4.3 基本的数据通路 默写PC、Registers、Data Memory、ALU的示意图(带上控制信号) Registers只有一个RegWrite控制信号(因为Registers是一定要被read的,无需设置MemRead),而Data Memory有MemRead和MemWrite这两个控制信号 ImmGen– 如果是loa...