一种面向众核处理器的全局感知数据主动预取方法及系统技术方案

技术编号:16528778 阅读:40 留言:0更新日期:2017-11-09 20:28
本发明专利技术公开了一种面向众核处理器的全局感知数据主动预取方法和系统,用于将一处理端需要的数据从一存储端预取出来并通过一传输端将预取出的数据传输至处理端,该方法在存储端设置有需求信息表,需求信息表中的每一信息条目分别记录有一线程的线程号num、该线程中正在执行的任务的优先级VPriority以及该线程中的任务在最近时间T内的访存频率Vmemory,该方法在存储端设置一渗透决策器,渗透决策器包括一忙闲感知单元、一决策计算单元以及一渗透执行单元,其中,忙闲感知单元实时侦测访存存储器端口及/或总线的忙闲端口的忙闲状态,决策计算单元用于根据每一任务的优先级VPriority、访存频率Vmemory以及预设的优先级权值m和访存频率权值n决定是否对任务进行数据渗透操作。

【技术实现步骤摘要】
一种面向众核处理器的全局感知数据主动预取方法及系统
本专利技术涉及数据预取
,具体而言,涉及一种面向众核处理器的全局感知数据主动预取方法及系统。
技术介绍
“存储墙”问题一直是影响计算机效能的挑战性问题。随着处理器体系结构技术的发展,处理器和存储器的速度差异不断的增大,同时大规模众核技术使得存储瓶颈更加严重。随着网络服务、人工智能及物联网等技术的迅猛发展,数据中心的并发用户数量从千万级发展到亿级规模,数据规模从目前的10PB(1016B)增加到海量的EB(1018B)级。这种由互联网发展带来的新型应用(以下称为高通量应用)已经成为数据中心的主要负载,其特征也从传统的浮点计算变成处理大量高并发的用户服务请求以及海量数据分析,强调任务的高并发、用户服务请求的强实时以及数据的高吞吐的处理能力。众核处理器因其具有高并发处理能力、高能效比等特点,成为数据中心处理器设计的主要选择。随着数据中心处理的数据量的激增,处理器结构的访存数据通路的设计变得越来越关键。传统的Cache结构已无法满足高并发、高通量数据处理的需求。预取技术是提高处理器访存请求效率的重要方式,目前的处理器几乎都采用了各种各样的预取技术。预取技术通过提前从内存读取将来可能使用的数据降低内存时延对处理器执行的影响,是一种被广泛应用的提升处理器性能的技术。预取技术分为软件预取和硬件预取。软件预取为编程人员和编译器通过插入软件预取指令来实现数据预取,比较有代表性的工作有,D.Callahan等人发表在ASPLOS’91会议上的成果提出了在程序的循环中执行静态插入预取操作,通过在程序中对即将要用到的数据进行提前的预读,实现数据从主存到Cache中,提高读取效率;Y.Wu等人在CC’02会议以及M.Khan等人在PACT’15会议上发表的成果提出在程序运行过程中通过预测或者使用软件工具的方法实现预取,实现边执行边预测预取的操作;J.Garside等人在RTNS'14会议发表成果分析了预取机制对WCET模型的影响并提出了优化解决方案;HuaiyuZhu等人在ICS’10会议上发表的成果则考虑数据预取时机的合理性。硬件预取所能处理的数据访问模式比较固定,例如英特尔V.Viswanathan等人以及TaesuKim等人在CF’14会议上提出的按照访问数据的stride机械地预取数据;随着研究的深入也出现了更为智能化的硬件预取控制方式,例如SaamiRahman等人在HPCC’15上提出的利用机器学习算法控制硬件逻辑执行预取。随着处理器芯片核数越来越多,数据预取的公平性、合理性、实时性变得越来越重要。例如JiyangYu等人在ICCD’14上发表的通过预测线程之间的共享数据以及根据预取的反馈信息自动调节数据预取的控制;Chia-JungChang等人在VLSI-DAT’15会议上提出的AGP策略,通过调节粗细粒度的预取以及调节预取的深度,减少处理器核之间的干扰;JunghoonLee等人在MICRO’11会议上发表的论文通过在片上网络对结合预取感知的路由器设计和拥塞敏感的预取控制提高预取的性能;EimanEbrahimi等人从多核处理器的全局性能考虑,在MICRO’09上发表了研究成果,结合局部单核和全局多核的反馈信息最大化系统的执行性能。然而,随着数据中心高并发、高数据通路的需求,单芯片的计算核心会逐渐增多,简单不合时宜的预取技术会引发众核之间的严重相互干扰。目前的预取策略在高通量应用带来的高并发任务中并不适用,大量的存储共享会造成预取的混乱和低效,甚至造成预取比不预取性能更差的现象。实践证明,华为和百度的典型高通量应用负载对系统实际带宽利用率低于5%,然而其数据中心的处理器流水线的执行部件的利用率却并不高,实验证明,在除去指令取值的延迟造成的处理器流水线暂停之外,数据的供给仍然是造成处理器利用率较低的主要原因,也就是一直困扰冯诺依曼体系结构的瓶颈问题—“存储墙”。总体来说,在目前的体系结构上,处理端想要的数据与存储器主动供给的数据并不匹配,导致处理效率低下,另外,较低的带宽利用率也恰好给数据的预取提供了发挥的空间。
技术实现思路
本专利技术提供一种面向众核处理器的全局感知数据主动预取方法及系统,用以保证数据渗透的公平性、均衡性以及实时性等。为达到上述目的,本专利技术提供了一种面向众核处理器的全局感知数据主动预取方法,该方法用于将一处理端需要的数据从一存储端预取出来并通过一传输端将预取出的数据传输至所述处理端,该方法在存储端设置有一需求信息表,所述需求信息表具有多个信息条目,每一信息条目分别记录有一线程的线程号num、该线程中正在执行的任务的优先级VPriority以及该线程中的任务在最近时间T内的访存频率Vmemory,该方法在存储端设置一渗透决策器,所述渗透决策器包括一忙闲感知单元、一决策计算单元以及一渗透执行单元,其中,所述忙闲感知单元与访存存储器端口及/或总线的忙闲端口连接,以实时侦测访存存储器端口及/或总线的忙闲端口的忙闲状态,所述决策计算单元用于根据每一任务的优先级VPriority、访存频率Vmemory以及预设的优先级权值m和访存频率权值n决定是否对任务进行数据渗透操作,所述渗透执行单元用于根据所述决策计算单元的命令执行数据渗透操作,该方法包括以下步骤:S1:设置一精灵线程,所述精灵线程用于实时收集众核处理器中的多个核上执行的多个任务的实时性需求;S2:所述精灵线程根据每一任务的实时性需求得出其相应的优先级并反馈给每个任务;S3:每个任务将其对应的优先级添加至其发送的数据请求包中;S4:所述数据请求包经过所述传输端而被发送至所述存储端;S5:所述需求信息表读取所述数据请求包中的信息并更新相应的信息条目中的线程号以及优先级;S6:每一信息条目根据对应的线程中的任务在最近时间T内的访存次数更新Vmemory;S7:所述决策计算单元读取所述需求信息表中的数据并根据以下公式计算每一线程中正在执行的任务对应的决策值P:P=m×VPriority+n×VmemoryS8:当所述忙闲感知单元侦测到访存存储器端口及/或总线的忙闲端口处于空闲状态时,所述渗透执行单元根据决策值P执行数据渗透操作。在本专利技术的一实施例中,任务的实时性需求包括任务预先被设置的优先级以及任务距离必须结束时间点的时间。在本专利技术的一实施例中,每个任务发送的数据请求包的包头包含一优先级信息域,其中记录有任务的优先级。在本专利技术的一实施例中,于该方法中进一步设置有一访存频率累计单元,用于累计每一线程中的任务在最近的时间T内的访存频率并将其实时更新至所述需求信息表。在本专利技术的一实施例中,所述渗透执行单元执行数据渗透操作的机制为:所述渗透执行单元根据每一线程中正在执行的任务对应的决策值P由大至小的顺序依次对每一任务执行数据渗透。在本专利技术的一实施例中,所述渗透执行单元执行数据渗透操作的机制为:所述渗透执行单元根据“决策值P/所有决策值之和”的比例对每一线程分配相应的时间以进行数据渗透。本专利技术还提供了一种面向众核处理器的全局感知数据主动预取系统,该系统用于执行上述面向众核处理器的全局感知数据主动预取方法。本专利技术提供的面向众核处理器的全局感知数据主动预取方法和系统适用于面向数据中心大规模众核处理器结构的数据本文档来自技高网
...
一种面向众核处理器的全局感知数据主动预取方法及系统

【技术保护点】
一种面向众核处理器的全局感知数据主动预取方法,该方法用于将一处理端需要的数据从一存储端预取出来并通过一传输端将预取出的数据传输至所述处理端,其特征在于,该方法在存储端设置有一需求信息表,所述需求信息表具有多个信息条目,每一信息条目分别记录有一线程的线程号num、该线程中正在执行的任务的优先级VPriority以及该线程中的任务在最近时间T内的访存频率Vmemory,该方法在存储端设置一渗透决策器,所述渗透决策器包括一忙闲感知单元、一决策计算单元以及一渗透执行单元,其中,所述忙闲感知单元与访存存储器端口及/或总线的忙闲端口连接,以实时侦测访存存储器端口及/或总线的忙闲端口的忙闲状态,所述决策计算单元用于根据每一任务的优先级VPriority、访存频率Vmemory以及预设的优先级权值m和访存频率权值n决定是否对任务进行数据渗透操作,所述渗透执行单元用于根据所述决策计算单元的命令执行数据渗透操作,该方法包括以下步骤:S1:设置一精灵线程,所述精灵线程用于实时收集众核处理器中的多个核上执行的多个任务的实时性需求;S2:所述精灵线程根据每一任务的实时性需求得出其相应的优先级并反馈给每个任务;S3:每个任务将其对应的优先级添加至其发送的数据请求包中;S4:所述数据请求包经过所述传输端而被发送至所述存储端;S5:所述需求信息表读取所述数据请求包中的信息并更新相应的信息条目中的线程号以及优先级;S6:每一信息条目根据对应的线程中的任务在最近时间T内的访存次数更新Vmemory;S7:所述决策计算单元读取所述需求信息表中的数据并根据以下公式计算每一线程中正在执行的任务对应的决策值P:P=m×VPriority+n×VmemoryS8:当所述忙闲感知单元侦测到访存存储器端口及/或总线的忙闲端口处于空闲状态时,所述渗透执行单元根据决策值P执行数据渗透操作。...

【技术特征摘要】
1.一种面向众核处理器的全局感知数据主动预取方法,该方法用于将一处理端需要的数据从一存储端预取出来并通过一传输端将预取出的数据传输至所述处理端,其特征在于,该方法在存储端设置有一需求信息表,所述需求信息表具有多个信息条目,每一信息条目分别记录有一线程的线程号num、该线程中正在执行的任务的优先级VPriority以及该线程中的任务在最近时间T内的访存频率Vmemory,该方法在存储端设置一渗透决策器,所述渗透决策器包括一忙闲感知单元、一决策计算单元以及一渗透执行单元,其中,所述忙闲感知单元与访存存储器端口及/或总线的忙闲端口连接,以实时侦测访存存储器端口及/或总线的忙闲端口的忙闲状态,所述决策计算单元用于根据每一任务的优先级VPriority、访存频率Vmemory以及预设的优先级权值m和访存频率权值n决定是否对任务进行数据渗透操作,所述渗透执行单元用于根据所述决策计算单元的命令执行数据渗透操作,该方法包括以下步骤:S1:设置一精灵线程,所述精灵线程用于实时收集众核处理器中的多个核上执行的多个任务的实时性需求;S2:所述精灵线程根据每一任务的实时性需求得出其相应的优先级并反馈给每个任务;S3:每个任务将其对应的优先级添加至其发送的数据请求包中;S4:所述数据请求包经过所述传输端而被发送至所述存储端;S5:所述需求信息表读取所述数据请求包中的信息并更新相应的信息条目中的线程号以及优先级;S6:每一信息条目根据对应的线程中的任务在最近时间T内的访存次数更新Vmemory;S7:所述决策计算单元读取所述需求信息表...

【专利技术属性】
技术研发人员:李文明范东睿张浩王达叶笑春
申请(专利权)人:北京中科睿芯科技有限公司
类型:发明
国别省市:北京,11

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

1