arm处理器上多线程如何优化加速

arm处理器上多线程如何优化加速,第1张

嵌入式多核处理器。

嵌入式多核处理器已经在嵌入式设备领域得到广泛运用,但嵌人式系统软件开发技术还停留在传统单核模式,并没有充分发挥多核处理器的性能。程序并行化优化目前在PC平台上有一定运用,但在嵌入式平台上还很少,另外,嵌入式多核处理器与PC平台多核处理器有很大不同,因此不能直接将PC平台的并行化优化方法应用到嵌人式平台。本文分别从任务并行和缓存优化两方面进行并行化优化的研究,探索在嵌人式多核处理器上对程序进行并行化优化的方法。

刚开始学习STM32汇编,可能不是最简形式;以下程序MDK编译通过了;

***********************************************

ALPHA_FORMULA_1 参数传递S=R1,D=R2,A=R3

***********************************************

ALPHA_FORMULA_1

PUSH {R0,R1,R3-R7,LR}

MUL.W R0,R1,R3

MOV.W R4,#0X1F

SUB.W R4,R3

MUL.W R4,R2

LSR.W R4,R4,#0X05

ADD.W R2,R0,R4

POP {R0,R1,R3-R7,PC}

***********************************************

alpha_blend_2 参数传递P1=R1,P2=R2,A=R3

参数p2_t由R0传出

***********************************************

alpha_blend_2

PUSH {R1-R7,LR}

LDR.W R4,=0Xf81f07e0 R4=p1_t = (p1 &0xf81f07e0)

AND.W R4,R1

LDR.W R5,=0X07e0f81f R5=p1 &= 0x07e0f81f

AND.W R5,R1

LDR.W R6,=0Xf81f07e0 R6=p2_t = (p2 &0xf81f07e0)

AND.W R6,R2

LDR.W R7,=0X07e0f81f R7=p2 &= 0x07e0f81f

AND.W R7,R2

ROR.W R4,R4,#16 LOOP_SHIFT_R(p1_t, 16) //p1_t 循环右移 16位

ROR.W R6,R6,#16 LOOP_SHIFT_R(p2_t, 16) //p2_t 循环右移 16位

MOV.W R1,R4 ALPHA_FORMULA_1(p1_t, p2_t, a) //公式套用

MOV.W R2,R6

BL.W ALPHA_FORMULA_1

MOV.W R6,R2

MOV.W R1,R5 ALPHA_FORMULA_1(p1, p2, a)

MOV.W R2,R7

BL.W ALPHA_FORMULA_1

MOV.W R7,R2

LDR.W R2,=0X07e0f81f R6=p2_t &= 0x07e0f81f//

AND.W R6,R2

LDR.W R2,=0X07e0f81f R7=p2 &= 0x07e0f81f

AND.W R7,R2

ROR.W R6,R6,#16 LOOP_SHIFT_R(p2_t, 16) //p2_t循环右移 16位

ORR.W R7,R6 p2_t |= p2

MOV.W R0,R6 return p2_t

POP {R1-R7,PC}

***********************************************

不可以。

ARM11与ARM9体系架构已经变了,它是ARMv6的处理器,而ARM9是基于ARMv4。 再者,同个程序,就是同是ARM9的S3C2440与S3C2410,你也不可能直接适用。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11521606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存