玄铁C910寄存器重命名

1、 寄存器重命名技术

寄存器重命名技术是解决乱序处理器中产生的数据冒险的技术。在C910这样的乱序多发射处理器中,指令经过译码后进入到乱序发射阶段,如果不做处理,乱序后不同指令间对架构寄存器中数据的处理会出现冲突,因此在乱序发射前需要保证乱序发射的指令具有表明指令间先后关系的操作。

玄铁C910中的寄存器重命名主要在两个单元中,分别为IDU和RTU。在IDU中,主要在ir流水级中,通过寄存器重命名表来完成重命名操作。

2、 寄存器重命名表(ir_rt)

玄铁C910中有33个表项来存放指令的目的寄存器对应的源寄存器的索引以及指令其他相关信息。在寄存器重命名表中,会将当周期的四条指令的相关信息写入表项中。目的寄存器号会经过二进制-独热码转换后,作为表项堆的写入索引。

寄存器重命名表在复位时会与物理寄存器建立一一对应关系。在向表项中写入指令的目的寄存器对应的物理寄存器的索引时,遵循 inst3 >2>1>0>update的优先级,这是因为后序指令比前序指令拥有更高的写入优先级。

在完成寄存器重命名后,指令要读取源寄存器和目的寄存器的数据时,读取32个逻辑寄存器表项中的数据,当后序指令的源寄存器和前序指令的目的寄存器相同时,会发生match情况,当发生match时,不需要再访问寄存器堆取数据,而是直接旁路获得数据。

玄铁C910中存在一种特殊指令,MOV指令,即零延时跳转指令,可以直接把源寄存器的数据传递给目的寄存器,其他指令和mov指令发生match情况时,可以直接把mov源寄存器的数据bypass给指令的目的寄存器。

当inst1的目的寄存器和inst0(m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值