打印

c28x下使用定点和浮点计算乘加操作需要的Cycle

[复制链接]
466|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Violin11|  楼主 | 2017-9-28 10:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ov, AD, AC, FOR, hm
c28x下使用定点和浮点计算乘加操作需要的Cycle


; C28x 32位定点计算需要14个Cycle;
;Y1=(M1*X1)>> Q + B1
MOVL XT,@M1
IMPYL P,XT,@X1
QMPYL ACC,XT,@X1
ASR64 ACC:P,#Q
ADDL ACC,@B1
MOVL @Y1,ACC
; Y2=(M2*X2)>> Q + B2
MOVL XT,@M2
IMPYL P,XT,@X2
QMPYL ACC,XT,@X2
ASR64 ACC:P,#Q
ADDL ACC,@B2
MOVL @Y2,ACC
; 14 cycles


使用未优化的32位浮点计算需要14个Cycle
MOV32 R0H,@M1
MOV32 R1H,@X1
MPYF32 R1H,R1H,R0H
|| MOV32 R0H,@B1
NOP ; delay for MPYF32
ADDF32 R1H,R1H,R0H
NOP ; delay for ADDF32
MOV32 @Y1,R1H
; Y2 = M2*X2 + B2
MOV32 R0H,@M2
MOV32 R1H,@X2
MPYF32 R1H,R1H,R0H
|| MOV32 R0H,@B2
NOP ; delay for MPYF32
ADDF32 R1H,R1H,R0H
NOP ; delay for ADDF32
MOV32 @Y2,R1H


使用 C28x+FPU 优化的 32位浮点,需要9个Cycle
; Y1 = M1*X1 + B1
; Y2 = M2*X2 + B2
MOV32 R2H,@X1
MOV32 R1H,@M1
MPYF32 R3H,R2H,R1H
|| MOV32 R0H,@M2
MOV32 R1H,@X2
MPYF32 R0H,R1H,R0H
|| MOV32 R4H,@B1
ADDF32 R1H,R4H,R3H
|| MOV32 R2H,@B2
ADDF32 R0H,R2H,R0H
MOV32 @Y1,R1H
MOV32 @Y2,R0H


相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

717

主题

1010

帖子

3

粉丝