一种编译器数据预取方法和装置制造方法及图纸

技术编号:8452855 阅读:217 留言:0更新日期:2013-03-21 13:48
本发明专利技术实施例提供一种编译器数据预取方法和装置,以实现高效的访存优化。所述方法包括:提供硬件指令查询软件管理片上存储器SPM中划分的局存空间,所述硬件指令包含数据的主存地址;若在所述SPM局存空间查询到所述主存地址对应的数据,则读取所述主存地址对应的数据;若在所述SPM局存空间没有查询到所述主存地址对应的数据,则根据所述硬件指令进行不命中处理以将数据预取到所述SPM局存空间。本发明专利技术充分利用硬件的高效性和软件灵活性,以较小的硬件开销实现高效的访存优化,在此基础上实现了结合硬件支持和精简的预取算法的基于软硬件协同管理机制的编译器数据预取方法,在性能上要优于纯软件算法,保证了软件算法的灵活性。

【技术实现步骤摘要】

本专利技术涉及数据处理领域,尤其涉及一种编译器数据预取方法和装置
技术介绍
由于高速缓存(Cache)复杂的硬件逻辑,使得在一些多核结构里不可容纳 Cache结构,取而代之的是硬件结构简单、占用面积小和功耗更低的软件管理片上存储器 (Scratch Pad Memory, SPM)0 SPM在带来高效能、低功耗的同时,也对于编程模型和编译优化提出了更高的要求和挑战。Cache可以由硬件自动维护数据的一致性,而SPM则需要由软件来实现一致性的维护以及管理数据在不同层次存储系统之间的移动,要在保证程序正确性的前提下,充分利用数据局部性和局存空间,开发计算与访存并行,尽量避免存储器碎片,合理选择数据放入片上存储器。考虑到目前大多数包含SPM的嵌入式系统中都支持直接内存访问(Direct Memory Access, DMA)模式,现有的一种针对SPM预取的方法是,将层次存储分配(Memory Hierarchical Layer Assignment,MHLA)优化策略、预取算法和DMA模式结合,并引入优先级的概念,使用不同优先级的DMA来完成数据在主存和SPM之间的移动,引入双缓冲进行协同预取。这种结合了 DMA的预取技术既引入了已经比较成熟的MHLA优化策略,同时针对嵌入式的结构特点使用DMA模式来取代硬件Cache的自动控制数据移动,相对于Cache的硬件自动控制而言,DMA具有更好的灵活性和可控性,可有效避免盲目预取和冗余预取。然而,上述现有技术缺乏软、硬件两方面的协同支持,其软件算法的开销会对整体性能造成较大的影响,而硬件方面SPM无法完成Cache的一些基本功能,给程序员造成较大负担。
技术实现思路
本专利技术实施例提供一种编译器数据预取方法和装置,以实现高效的访存优化。本专利技术实施例提供一种编译器数据预取方法,所述方法包括提供硬件指令查询软件管理片上存储器SPM中划分的局存空间,所述硬件指令包含数据的主存地址;若在所述SPM局存空间查询到所述主存地址对应的数据,则读取所述主存地址对应的数据;若在所述SPM局存空间没有查询到所述主存地址对应的数据,则根据所述硬件指令进行不命中处理以将数据预取到所述SPM局存空间。本专利技术实施例提供一种编译器数据预取装置,所述装置包括硬件指令提供模块,用于提供硬件指令查询软件管理片上存储器SPM中划分的局存空间,所述硬件指令包含数据的主存地址;读取模块,用于若所述硬件指令提供模块在所述SPM局存空间查询到所述主存地址对应的数据,则读取所述主存地址对应的数据;不命中处理模块,用于若所述硬件指令提供模块在所述SPM局存空间没有查询到所述主存地址对应的数据,则根据所述硬件指令进行不命中处理以将数据预取到所述SPM 局存空间。从上述本专利技术实施例可知,由于查询软件管理片上存储器中划分的局存空间是由硬件提供的硬件指令进行,而在SPM局存空间不能查询到主存地址对应的数据时,则进行不命中处理可通过软件算法实现。因此,与现有技术相比,本专利技术实施例提供的方法结合了软硬件协同Cache模型,软硬件协同完成数据的缓存管理,充分利用硬件的高效性和软件灵活性,以较小的硬件开销实现高效的访存优化,在此基础上实现了结合硬件支持和精简的预取算法的基于软硬件协同管理机制的编译器数据预取方法。由于很好地利用了硬件指令加速,在性能上要优于纯软件算法,同时也保证了软件算法的灵活性,便于实现相关技术。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对现有技术或实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域技术人员来讲,还可以如这些附图获得其他的附图。图I是本专利技术实施例提供的编译器数据预取方法流程示意图2是本专利技术实施例提供的编译器数据预取装置结构示意图3是本专利技术另一实施例提供的编译器数据预取装置结构示意图4是本专利技术另一实施例提供的编译器数据预取装置结构示意图5是本专利技术另一实施例提供的编译器数据预取装置结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅附图1,是本专利技术实施例提供的编译器数据预取方法流程示意图,主要包括步骤S101、步骤S102和步骤S103,具体地S101,提供硬件指令查询软件管理片上存储器SPM中划分的局存空间,所述硬件指令包含数据的主存地址。在软件管理片上存储器(Scratch Pad Memory, SPM)上,划分出一部分连续空间作为Cache行,保存程序所需的数据,这一部分空间称为局存空间。需要说明的是,SPM上还会预留一部分指定空间,用于软件算法中一些基本变量和代码的保存,这部分空间不能作为局存空间来使用的。在局存空间上可以申请多个Cache,每个Cache的行数也可由用户指定。在本专利技术实施例中,硬件指令由硬件提供,其携带的是数据在主存储器上的地址。 为了便于说明,在下文的描述中,数据在主存储器上的地址简称为“数据的主存地址”;查询SPM局存空间实际上是查询硬件指令携带的主存地址对应的数据是否存在于SPM局存空间。S102,若在所述SPM局存空间查询到所述主存地址对应的数据,则读取所述主存地址对应的数据。如前所述,SPM上预留的一部分指定空间用于保存软件算法中一些基本变量和代码。在本专利技术实施例中,“标签(tag)”作为其中一个变量,其以一个表的形式存在于SPM上预留的指定空间,每一个表项标记的是数据的主存地址与数据的局存地址的对应关系,因此,若查询到硬件指令携带的主存地址存在于tag中,则表明该主存地址对应的数据存在于SPM局存空间,即在SPM局存空间能够查询到主存地址对应的数据,从而直接读取主存地址对应的数据。S103,若在所述SPM局存空间没有查询到所述主存地址对应的数据,则根据所述硬件指令进行不命中处理以将数据预取到所述SPM局存空间。若在SPM局存空间没有查询到主存地址对应的数据,即tag中没有标记该数据的主存地址与数据的局存地址的对应关系的表项,则根据硬件指令进行不命中处理以将数据预取到SPM局存空间,包括根据硬件指令,修改预取到SPM局存空间的数据的主存地址和局存地址对应关系,以使后续查询所述SPM局存空间时命中数据。由于SPM局存空间没有主存地址对应的数据,因此,首先根据数据的主存地址,将所述数据从主存空间搬移到SPM 局存空间,然后,按照数据在SPM局存空间的存储位置,建立数据的主存地址与数据在SPM 局存空间的局存地址之间的对应关系,即在tag中建立新的表项,标记数据的主存地址与数据的局存地址之间的对应关系。数据的主存地址与数据的局存地址之间的对应关系建立后,如果后续再次查询SPM局存空间时,由于tag中保存了该数据的主存地址与数据的局存地址之间的对应关系,因此,可以直接命中。这里需要说明的是,要使当前数据的主存地址命中,首先要保证上一次的直接内存访问(Direct Memory Access, DMA)完成,在提供的硬件指令C0DC_SEARCH中,这种情形表现为等待上一次的预取DMA完成,本文档来自技高网
...

【技术保护点】
一种编译器数据预取方法,其特征在于,所述方法包括:提供硬件指令查询软件管理片上存储器SPM中划分的局存空间,所述硬件指令包含数据的主存地址;若在所述SPM局存空间查询到所述主存地址对应的数据,则读取所述主存地址对应的数据;若在所述SPM局存空间没有查询到所述主存地址对应的数据,则根据所述硬件指令进行不命中处理以将数据预取到所述SPM局存空间。

【技术特征摘要】

【专利技术属性】
技术研发人员:漆锋滨肖谦沈莉姜军王超
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1