BTB基本原理
基本原理⽐较清晰易懂,但是存在⼀个较⼤的问题,Buffer太⼤,会浪费相当多的存储资源,体现在两个⽅⾯:
1. Buffer 每⼀项位宽太宽:Enrty PC和target PC位宽都是32。
金延宇2. Buffer中的PC⾼位存在冗余:对于branch指令,跳转范围有限,地址⾼位(页号部分)通常不会改变
myhobby
少儿舞蹈培训班为了解决这个问题,Rocket Chip中重新设计了下⾯这种⽅案:
shiningfriends蓝莓之夜插曲BTB Register Model
与基本原理图最明显的区别在于:
1. idx不作为buffer的⼊⼝地址,⽽是与全相联的idxs逐⼀⽐对形成独热码idxHit
男孩子英语名字2. BTB 与页号(图中pages即页号)分离存储,BTB中通过指针指向对应页号(图中红⾊弧线:idxPages、tgtPages为指向pages的指针) 1.1 PC划分
德拉华大学在Rocket Core中,PC切分⽅式如下:
crv是什么
he is just kiddingRocket Core中PC划分⽅式
根据Rocket Generator配置不同,PC位宽为32或39,主要分为了三部分
1. coreInstBytes:指令字节,由于使⽤压缩指令(2字节), 对齐位1bit
2. idx(tgt),idx不作为⼊⼝地址(代码中tgt、target也对应此字段)
3. page,即页号
girl next door