ARM中的预取命令pld的使用
Kernel version:2.6.14
CPU architecture:ARM920T
最近在分析ARM Linux的copy_from_user,主要功能由__arch_copy_from_user实现,该函数定义在linux/arch/arm/lib/uaccess.S文件中,使用汇编实现,部分源码如下:
ENTRY(__arch_copy_from_user)
stmfd sp!, {r0, r2, r4 - r7, lr}
cmp r2, #4
blt .cfu_not_enough
PLD( pld [r1, #0] )//因为后面要用到r0和r1,所有进行预读取,加速存储器的访问
PLD( pld [r0, #0] )
ands ip, r0, #3
bne .cfu_dest_not_aligned
.cfu_dest_aligned:
ands ip, r1, #3
bne .cfu_src_not_aligned
...
这段代码中用到了预读取指令pld(preload),大写的PLD是一个宏,其定义如下(linux/include/asm-arm/assembler.h):
#if __LINUX_ARM_ARCH__ >= 5
#define PLD(code...) code
#else
#define PLD(code...)
#endif
pld,即预读取指令,pld指令只在armv5以上版本有效。使用pld指令可以提示ARM预先把cache line填充好。pld指令中的offset很有讲究。一般为64-byte的倍数。
功能:cache预读取(PLD,PreLoad),使用pld指示存储系统从后面几条指令所指定的存储器地址读取,存储系统可使用这种方法加速以后的存储器访问。
格式:pld[Rn,{offset}]
其中:
- Rn 存储器的基址寄存器。
- Offset 加在Rn上的偏移量。
分享到:
相关推荐
GCC作为广泛使用的开源编译器,在tree-ssa上对循环级数组实现了预取优化。在深入分析GCC4.9循环级数组预取的基本实现机制,以及剖析基于预取收益和分析时间的三种不予预取的代价模型的基础上,得出影响循环数组预取...
针对专题型应用中普遍存在的大数据查询的频繁性和模式固定性特点,提出一种基于模板的数据预取和缓存算法,用于加快数据查询响应速度并减轻服务器端负载压力。通过构建数据查询模板,在触发器被激发时调用模板以构建...
MAP-CP和eMAP-CP通过预测移动用户的下一接入点(access point,AP),预取在当前AP下因切换AP不能获取到的数据并缓存到所预测的下一AP相关联的NDN节点中,为切换AP后的移动用户就近服务,达到降低内容获取延迟和提高...
数据挖掘技术在Web预取中的应用研究.pdf
提出了一种新的用于关系数据库查询缓冲和预取的方法。首先将数据查询语句抽象成由四元组组成的查询模板,同时保存了查询语句的实际参数...该算法基于惯性规则,它使用BP网络来跟踪用户的查询历史。相对于前面的算法,该
Linux 内核中的预取算法 论文 中科大 吴峰光博士的论文
预执行帮助线程在预取过程中需要进行动态预取调节,而传统静态枚举控制参数值的控制方法在预取执行过程中保持固定不变,从而使得该方法不能够有效地为主线程提供预取质量保证(quality of service,QoS)。...
动态二进制翻译中数据预取优化研究,罗琼程,吴强,动态优化是动态二进制翻译研究中一个十分重要的课题,数据预取优化能提高现代处理器体系结构应用程序性能。基于超级块(SuperBlock)的
Linux内核中的预取算法.docx
Web预取是减少用户访问延时、提高网络服务质量的关键技术之一,近年来已成为国内外的研究热点.通过利用WWW访问的空间局部性,Web预取使缓存机制从时间局部性向空间局部性扩展.归纳了Web预取技术的分类,概括和比较了...
网络技术-网络基础
动态优化是动态二进制翻译研究中一个十分重要的课题,数据预取优化能提高现代处理器体系结构应用程序性能。基于超级块(Superblock)的动态数据预取优化采用软件插桩方式收集应用程序的load访存延迟信息并构造...
由于存储系统访问和处理器计算之间存在速度差距,端到端数据处理已成为提高Internet上计算机系统总体性能的瓶颈。... 最后,该方法可以保持指令和数据访问的顺序,从而有利于端到端数据处理中预取的提取。
本教程详细介绍了从51到ARM过度的所有知识,是ARM入门的最好教程,包括: 第1章几个基本概念 1.1从51系列单片机到ARM处理器 1.2ARM不是单片机 1.351系列单片机和ARM处理器的比较 1.4以ARM为核的单片机 1.4.1处理器...
在对象存储系统中,对象存储设备具有很高的智能和处理能力,它负责对象及其属性的数据组织和管理,向外提供基于对象的访问接口。每个对象均具有属性,它反映了对象的某些特征。通过为每个对象自定义一个预取属性页,...
web数据挖掘一篇很好的文章,希望想了解数据挖掘的人仔细研究,推荐!
ARM 体系结构所支持的异常和具体含义如下: 1、复位(优先级1) ... 当处理器的外部中断请求引脚有效,且CPSR 中的I 位为0 时,产生IRQ 异常。系统的外设能该异常请求中断服务(异常向量:0x0000,0018);
本教程详细介绍了从51到ARM过度的所有知识,是ARM入门的最好教程,包括: 第1章几个基本概念 1.1从51系列单片机到ARM处理器 1.2ARM不是单片机 1.351系列单片机和ARM处理器的比较 1.4以ARM为核的单片机 1.4.1处理器...
Fetching 是 Metropolis-Hastings 的并行预测预取的实现。 预取算法使用推测执行来并行化 MCMC。 参考 ...如果你在脚本中使用东西/ $ git clone git@github.com:yamins81/tabular.git 例子 $ mpiru
试论数据挖掘技术在Web预取中的应用.pdf