摘要:引述自:《超标量处理器设计》p_323ROB本质上是一个FIFO,在它当中存储了一条指令的相关信息,如果这条指令的类型、结果、目的寄存器和异常的类型等,如下图所示:ROB的容量决定了流水线中最多可以同时执行的指令个数,在上图中,每个ROB的表项包括:1)complete:表示一条指令是否已经执行完毕...
阅读全文
摘要:Non-Block Cache的实现:《超标量处理器设计》p314_p318.D-Cache数据缺失时:1)在完成操作之前,D-Cache与物理内存之间的数据通路被锁定。2)在发生数据缺失时,仍然可以继续执行后面的load/store指令,这种设计方法称为非阻塞(Non-blocking)Cache...
阅读全文
摘要:参考:《超标量处理器设计》CHP 7对于假性数据相关 WAW 和 WAR,其制约了原始程序可以获得的并行性,需要通过寄存器重命名的方法将它们消除掉。重命名映射表(Register Renaming Table, Intel称之为Register Alias Table, RAT)。(注意Intel文...
阅读全文
摘要:Issue将符合一定条件的指令从发射队列(Issue Queue)中选出来,并送到FU中执行。重命名之后的指令被写到重排序缓存(ROB)的同时,也会被写到发射队列中,此时已经到达了超标量流水线的发射(issue)阶段,而发射队列正是这个流水段的关键部件。发射队列也可以叫做保留站(Reservatio...
阅读全文
摘要:PHT Pattern History Table 2bit饱和计数预测。104BHR Branch History Register 分支历史寄存器。107 基于局部历史的分支预测GHR Global History Register 全局历史寄存器。113 基于全局历史的分支预测BTB Bran...
阅读全文
摘要:参考:《超标量处理器设计》p_94执行访问存储器指令时,涉及如下四种部件(暂不考虑硬盘)D-TLBPage TableD-cachePage每种部件都可能命中/缺失,故有16中组合,但:如果D-TLB命中,则Page Table必然命中;如果D-Cache命中,则Page必然命中;如果Page Ta...
阅读全文
摘要:附:记下查看cache信息的方法:cat /sys/devices/system/cpu/cpu0/cache/index2/sizesudo dmidecode -t cache还有一个链接http://igoro.com/archive/gallery-of-processor-cache-ef...
阅读全文
摘要:cache alias问题的产生:L1cache:VIPT型; 32K,(S、E、B)=(256、4、32)way-size=8KB假定TLBSIZE为4KB,有如下两个地址映射关系:VA0:0X0000_0020 -> PA 0X0000_0020VA1:0X0000_1020 -> PA 0X0...
阅读全文
摘要:同样的物理地址在不同的任务中可能被描述成不同的虚拟地址。这可能导致同样的物理地址被存入到高速缓存两个不同的数据项。许多MIPS CPU没有硬件来检测或者避免这种高速缓存重影(cache alias)而把问题留给操作系统的内存管理程序来解决。 大多数现代的 MIPS CPU拥有回写式、虚拟索引、...
阅读全文
摘要:对cache的小结,参考:Computer System A programmer's Perspective 原版_第二版x86查看cache信息: sudo dmidecode -t cachelocality:操作近期被其它指令所操作、或本身所操作的数或指令。good temporal loc...
阅读全文