中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

流水线编排加速实例

接下来通过几个实例介绍一下流水线编排的应用效果。

消除流水线的数据依赖

ADD x1,x2,x3
SUB x4,x1,x5

上述代码中,SUB指令的计算依赖ADD指令中x1寄存器的结果,因此在SUB指令之前插入气泡(空指令)等待SUB指令将计算的结果写入寄存器文件,在增加-mtune=tsv110之后,编译器会增加两条无关指令以消除数据冒险:

ADD x1,x2,x3
其他指令1
其他指令2
SUB x4,x1,x5

消除流水线的结构依赖

ADD x1x2x3
SUB x4x5x6
LDR x6, [ x7, #12 ]
SDR x6, [ x7, #12 ]

上述代码中,ADD与SUB指令需要同时使用ALU资源,LDR与STR需要同时使用MEM资源。当硬件不足以支持多条指令在同一时刻执行时,会发生结构冒险,在增加-mtune=tsv110之后,编译器会增加两条无关指令以消除结构依赖:

ADD x1x2x3
其他指令1
SUB x4x5x6
其他指令2
LDR x6, [ x7, #12 ]
其他指令3
SDR x6, [ x7, #12 ]
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词