通过PLD指令提升软件性能

本文介绍了ARM架构中的PLD指令,用于预加载数据或指令,提高处理器性能。通过在循环中添加PLD指令,可以预先将数据加载到CPU缓存,从而减少等待内存数据的时间。在Android设备上进行的测试显示,对于处理大量内存数据的代码,如RGB到RGBA的像素转换,使用PLD指令可以显著提高速度,甚至接近高度优化的memcpy实现。此外,文章提到了适当调整PLD和LDR指令之间的间隔以避免上下文切换导致预加载数据丢失的重要性。
摘要由CSDN通过智能技术生成

ARM对PLD指令的详细说法是:

Preload Data and Preload Instruction. The processor can signal the memory system that a data or instruction load from an address is likely in the near future.

PLtype{cond} [Rn {, #offset}]
PLtype{cond} [Rn, +/-Rm {, shift}]
PLtype{cond} label


where:
type
    can be one of:
    D
        Data address
    DW
        Data address with intention to write
    I
        Instruction address.

    type cannot be DW if the syntax specifies label.
cond
    is an optional condition code.
    Note:
    cond is permitted only in 32-bit Thumb code, using a preceding IT instruction. This is an unconditional instruction in ARM code and you must not use cond.
Rn
    is the register on which the memory address is based.
offset
    is an immediate offset. If offset is omitted, the address is the value in Rn.
Rm
    is a register containing a value to be used as the offset.
shift
    is an optional shift.
label
    is a PC-relative expression.

The offset is applied to the value in Rn before the preload t

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值