片上Cache网络中基于位置感知的数据预取方法技术

技术编号:11974293 阅读:89 留言:0更新日期:2015-08-30 10:16
本发明专利技术公开一种片上Cache网络中基于位置感知的数据预取方法,步骤包括:1)在处理器启动后,利用数据位置向量表记录被取入处理器上片上Cache网络中的数据在片上Cache网络中的Cache块信息;2)当处理器核在执行到程序中的预取指示指令时,跳转执行步骤3);3)在数据位置向量表中查找预取指示指令的目标数据在片上Cache网络中的Cache块信息,预取出目标数据后存储至预取指示指令指定的Cache块中,并更新目标数据在片上Cache网络中的Cache块信息。本发明专利技术能够实现针对众核处理器片上Cache网络中的数据预取,具有实现原理简单、预取准确率高且灵活性强的优点。

【技术实现步骤摘要】
【专利摘要】本专利技术公开一种,步骤包括:1)在处理器启动后,利用数据位置向量表记录被取入处理器上片上Cache网络中的数据在片上Cache网络中的Cache块信息;2)当处理器核在执行到程序中的预取指示指令时,跳转执行步骤3);3)在数据位置向量表中查找预取指示指令的目标数据在片上Cache网络中的Cache块信息,预取出目标数据后存储至预取指示指令指定的Cache块中,并更新目标数据在片上Cache网络中的Cache块信息。本专利技术能够实现针对众核处理器片上Cache网络中的数据预取,具有实现原理简单、预取准确率高且灵活性强的优点。【专利说明】
本专利技术涉及众核处理器的存储访问
,尤其涉及一种。
技术介绍
存储墙是指处理器访问存储器获取指令和数据的时间远远高于处理器内指令执行的时间,是制约处理器性能发挥的主要因素之一。目前,随着片上多核甚至众核体系结构的迅速发展,众核核处理器的存储墙问题变得更为突出。为了缓解存储墙问题,通常是在处理器芯片上设计多级Cache (高速缓存),众核处理器的每个处理器核心通常就匹配设计了本地Cache,众多处理器核的片上Cache构成了片上Cache网络。在处理器工作过程中,将主存储器取出的数据分别缓存于处理器芯片上的Cache网络中。 片上Cache网络通过二维网络方式连接的处理器体系结构模型如图1所示,在其他的处理器中,也可能为环形网络,如Intel的XEON Phi的众核协处理器,其片上Cache网络就采用了环形网络连接。片上Cache网络中无论采用何种互联方式,每个Cache块都对应了一个或两个处理器核心作为处理器核心的本地Cache,处理器核访问本地Cache的延迟要小于访问对应于其他处理器核的非本地Cache。 数据预取是指在处理器处理数据之前就将即将要处理的数据从远离处理器核的存储层次(通常是片外存储器)预先取到处理器片上的高速缓存(Cache)中,这样处理器核进行数据处理时就能从速度较快的片上Cache获取数据,减少了计算时访问数据的时间。数据预取优化是针对处理器多级存储层次进行存储访问优化的有效手段。 目前,在高性能微处理器中普遍实现了硬件数据预取机制和软件数据预取机制,其中硬件预取是通过处理器的存储控制器根据处理器一段时间内的存储访问行为,推断未来一段时间内处理器的访存行为,从而自动实施存储器的预取操作,但硬件预取的方法灵活性以及对应用的适应性较差。通常在硬件可以实现预取的情况下,多种处理器设计实现了软件预取,通过在软件中插入预取指令,实现软件预取。软件预取提升了预取操作的灵活性和适应性,因而在编译优化或应用程序编写中通常是采用软件预取机制来提高存储访问的性能。软件预取方法虽然提高了预取的灵活性和适应性,但是需要程序编写人员或编译器来插入预取操作,增加了编程的难度或者增加了编译器实现的复杂度;另外,软件预取的效果也极大地依赖于软件预取的准确性。 片上Cache网络中的众多Cache块相对于一个特定的处理器核而言,其数据读取时间有很大差异,需要将预取的数据放置在尽可能靠近处理器核的Cache块中,因而针对片上众核处理器的片上Cache网络,软件预取非常复杂,不仅要考虑预取的时机还需要考虑预取数据存储于片上Cache网络中位置。
技术实现思路
本专利技术要解决的技术问题是克服现有技术的不足,提供一种能够实现针对众核处理器片上Cache网络中数据预取的,具有实现原理简单、预取准确率高且灵活性强的优点。 为解决上述技术问题,本专利技术提出的技术方案为:一种,步骤包括:1)在处理器启动后,利用数据位置向量表记录被取入处理器上片上Cache网络中的数据在片上Cache网络中的Cache块信息;2)当处理器核在执行到程序中的预取指示指令时,跳转执行步骤3);3)在数据位置向量表中查找所述预取指示指令的目标数据在片上Cache网络中的Cache块信息,当从存储器中预取出目标数据后存储至预取指示指令指定的目的Cache块中,并更新目标数据在片上Cache网络中的Cache块信息。 作为本专利技术的进一步改进,所述步骤I)的具体实施步骤为:1.1)在处理器初始化时建立用于记录各个处理器核所访问的数据在片上Cache网络中位置的数据位置向量表且初始化为空,所述数据位置向量表的每一个表项的字段包括处理器核编号和Cache块标识;1.2)在处理器启动后,当一个处理器核发出访问指令时,如果所访问的数据不在片上Cache网络中,则处理器的存储控制单元在将数据取入片上Cache网络的同时在所述数据位置向量表中增加一条记录,通过该记录标记该处理器核所处理的数据位于片上Cache网络中的哪些Cache块中。 作为本专利技术的进一步改进,所述数据位置向量表的每一个表项的Cache块位置字段的位数与Cache网络中的Cache块的数目相同且一一对应,且所述Cache块位置字段以对应位为O或I表示处理器核所访问的数据是否位于Cache网络中对应的Cache块中。 作为本专利技术的进一步改进,所述步骤2)中的预取指示指令的字段包括读写标识W/R、处理器核标识CorelD、目标数据起始地址Addr以及预取数据长度LTH ;所述读写标识W/R为指定预取目标数据的读写操作类型,所述处理器核标识CoreID指定预取目标数据目的存储位置对应的处理器核。 作为本专利技术的进一步改进:如果所述预取指示指令的目标数据为标量数据或为写操作类型的向量数据,则所述处理器核标识CoreID对应为访问所述目标数据的处理器核;如果所述预取指示指令的目标数据为读操作类型的标量数据,则所述处理器核标识CoreID对应为访问所述目标数据的处理器核以外的其他处理器核。 作为本专利技术的进一步改进,所述预取指示指令的字段中读写标识W/R为I位、处理器核标识CoreID为8位、目标数据起始地址Addr为40位以及预取数据长度LTH为15位。 作为本专利技术的进一步改进,所述步骤2)程序中嵌入的预取指示指令具体是指用户编程嵌入或者使用编译器编译嵌入。 与现有技术相比,本专利技术的优点在于:I)本专利技术结合众核处理器的片上Cache网络结构,利用数据位置向量表记录每个处理核所访问的数据在片上Cache网络中的Cache块信息,在需要执行数据预取时根据记录的Cache块信息实现预取,能够有效提高数据预取的准确率,并通过预取指示指令给与预取提示同时指示预取数据的目的存储位置,实现片上Cache网络中快速、高效的数据预取。 2)本专利技术通过预取指示指令区分数据的类型、数据读写访问类型,将预取数据指定存储至不同的位置,指定标量数据以及写操作的向量数据预取至处理器核的本地Cache中,而读操作的向量数据指定预取至其他处理器核对应的本地Cache中,即可以减少读操作的向量数据和写操作的向量数据在处理器核的本地Cache中的冲突,也可以保证向量数据尽可能地放置到众核处理器的片上Cache中。 【专利附图】【附图说明】 图1是二维网络连接的片上Cache网络处理器体系结构的结构示意图。 图2是本实施例的实现流程示意图。 图3是本实施例中数据位置向量表的结构示意图。 图4是本实施例中预取指示指令的结构示意图。 本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201410774705.html" title="片上Cache网络中基于位置感知的数据预取方法原文来自X技术">片上Cache网络中基于位置感知的数据预取方法</a>

【技术保护点】
一种片上Cache网络中基于位置感知的数据预取方法,其特征在于步骤包括:1)在处理器启动后,利用数据位置向量表记录被取入处理器上片上Cache网络中的数据在片上Cache网络中的Cache块信息;2)当处理器核在执行到程序中的预取指示指令时,跳转执行步骤3);3)在数据位置向量表中查找所述预取指示指令的目标数据在片上Cache网络中的Cache块信息,当从存储器预取出目标数据后存储至预取指令指定的目的Cache块中,并更新目标数据在片上Cache网络中的Cache块信息。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨灿群李春江王锋黄春杜云飞彭林左克李宽姜浩
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:湖南;43

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

1