超标量处理器设计_Virtual_Memory
超标量处理器笔记_虚拟存储器1.概述现代的高性能处理器都支持虚拟地址Virtual address但是为什么需要虚拟地址。 随着应用程序规模越来越大,以至于物理内存已经无法容纳下这样的程序了,通常的做法就是把程序分割成很多片段,片段0首先放到物理内存中执行,当他执行完时调用下一个片段。 虽然片段在物理内存中的交换是操作系统完成的,但是程序眼需要先对程序进行分割,费时费力。 为了解决这个问题,有了虚拟存储器Virtual Memory。 虚拟存储器的基本思想,是对于一个程序来说,它的程序code数据data和堆栈stack的总大小可以超过实际物理内存的大小,操作系统把当前使用的部分放到物理内存中,而把其他未使用的内容放到下一级存储器,如硬盘或闪存。这样不需要进行分割。 有了这一样的概念就可以说一个程序是运行在虚拟存储器空间的,空间大小由处理器的位数决定。 [!TIP] 对于一个32位的处理器来说,其地址范围就是0~0xFFFF_FFFF,也就是4GB,这个范围就是处理器能够产生的地址范围。 其中的某一个地址就称为虚拟地址,与虚拟存储器相对应的就是物理存储器,其中的某一个地址就是...
FTB中fallThroughErr逻辑梳理
FTB中fallThroughErr逻辑梳理 FTB Bank读取阶段断言检查 在读取FTB条目时,验证预测的fallThrough地址是否超出范围(必须保证指令块的结束地址不超过预测范围) // Check if the entry read by ftbBank is legal.for (n <- 0 to numWays - 1) { val req_pc_reg = RegEnable(io.req_pc.bits, 0.U.asTypeOf(io.req_pc.bits), io.req_pc.valid) val req_pc_reg_lower = Cat(0.U(1.W), req_pc_reg(instOffsetBits + log2Ceil(PredictWidth) - 1, instOffsetBits)) val ftbEntryEndLowerwithCarry = Cat(read_entries(n).carry, read_entries(n).pftAddr) val fallThroughErr ...
Xiangshan_BPU_FTB
Xiangshan_BPU_FTB简介FTB 是香山 BPU 的第三个子预测器,它也能一并获取到 uFTB 和 TAGE-SC 的输出。在 FTB 的输入接口中,s1 通道含有 uFTB 的基础预测结果,s2 通道和 s3 通道中仅有 br_taken_mask 一组信号被 TAGE-SC 填充,并无 FTB 项生成的基础预测结果。FTB 的工作便是为 s2 和 s3 通道提供基础预测结果。 FTB 在功能和结构上都与 uFTB 类似,其主要区别就是 FTB 能够容纳更多的 FTB 项,并且 FTB 的预测结果是在 s2 与 s3 通道输出。正是由于容量大,其读出的速度上会比 uFTB 慢,无法被放置在第一周期产生预测结果,但大容量也使它能够获得更加精准的预测结果。 功能概述 缓存更多 FTB 项,为 s2 和 s3 通道提供基础预测结果。 FTB 预测器的本质是一个较大容量的存储器,其会根据当前预测的 PC 读出对应的 FTB 项,并在 s2 阶段产出预测结果。与此同时该 FTB 项还会被再保存一个周期,生成 s3 阶段预测结果。 根据更新请求,更新存储中的 FTB 项。 ...
超标量处理器设计_Cache
CacheL1 Cache L2 Cache l1c快,每个核私有的。l2c全,可能是核之间共享的(现代也可能是l3c共享) ICache:需要每周期能读多条指令,延迟时间即使很大,也不会造成处理器性能下降 DCache:需要支持每周期有多条load store指令访问,需要多端口设计 几个概念cache主要由两部分组成,Tag部分和Data部分,一个Tag和它对应的所有数据组成的一行称为一个Cache line,数据部分 称为数据块Cache data block/Cache block/Data block,若一个数据可以存储在擦车中的多个地方,则这些被同一地址找到的多个Cache Line称为Cache Set。 Cache的实现方式 直接映射 direct-mapped Cache 对物理内存中的一个数据来说,如果Cache中只有一个地方可以容纳它,则为直接映射。 组相联set-associative Cache 如果Cache中有多个地方可以放置这个数据,则为组相联。 全相联fully-associative Cache 如果Cache中任何一个...




