共享第一级处理器高速缓存的硬件排序加速器制造技术

技术编号:23484993 阅读:14 留言:0更新日期:2020-03-10 12:37
共享第一级处理器高速缓存的硬件排序加速器。计算机处理器包括存储器单元和处理器高速缓存,存储器单元存储要加载到部分锦标赛排序中的键值,处理器高速缓存从存储器单元获得指示键值的树数据。硬件合并排序加速器基于键值生成锦标赛树,并且执行部分锦标赛排序,以将锦标赛结果的第一部分存储在处理器高速缓存中,同时从处理器高速缓存中排除锦标赛结果的第二部分。

Hardware sorting accelerator sharing the first level processor cache

【技术实现步骤摘要】
共享第一级处理器高速缓存的硬件排序加速器
本专利技术一般而言涉及计算系统,并且更具体而言,涉及被配置为对计算机处理器的数据记录进行排序的排序加速器。
技术介绍
计算系统被广泛用来处理和排序存储在数据库中的数据记录。已经开发了各种排序算法来减少排序时间以改进计算系统的处理性能。一个这样的排序算法被称为锦标赛树排序(tournamenttreesort)。通常,锦标赛树排序是基于二叉树的选择和替换排序算法。锦标赛树排序算法允许以连续流传输的方式对与数据记录相关联的键进行排序。传入的键被输入到叶子节点中,并且这些键以排序的顺序从树的根节点退出。对于最初填充到叶子节点中的一组输入记录,在每个树级别执行成对比较,直到在树根处出现获胜记录。在初始回合的比较和填充之后,除了从树中发送出的获胜键之外,每个非叶子节点只保持一个输入键。在连续排序期间,在从树中移除获胜者之后,在先前获胜者的叶子节点处插入新的输入记录,并且将新的输入记录与每个级别的恰好一个非叶子节点进行比较(并且如果需要则进行交换),直到到达树根并且确定新的获胜者。
技术实现思路
根据非限制性实施例,一种计算机处理器包括存储器单元和处理器高速缓存,存储器单元被配置为存储要加载到部分锦标赛排序中的键值,处理器高速缓存被配置为从存储器单元获得指示键值的树数据。计算机处理器还包括与存储器单元和处理器高速缓存进行通信的硬件合并排序加速器。合并排序加速器被配置为基于仅存储在存储器和处理器高速缓存中的键值生成锦标赛树,并且执行部分锦标赛排序,以将锦标赛结果的第一部分存储在处理器高速缓存中。根据另一个非限制性实施例,提供了一种计算机实现的方法,用于对存储在硬件计算机处理器中的多个数据值进行排序。该方法包括在计算机处理器的存储器单元中存储要加载到部分锦标赛排序中的键值,以及经由处理器高速缓存从存储器单元获得指示键值的数据。该方法还包括经由硬件合并排序加速器基于键值生成锦标赛树,以及经由合并排序加速器执行部分锦标赛排序,以将锦标赛结果的第一部分存储在处理器高速缓存中,同时从处理器高速缓存中排除锦标赛结果的第二部分。根据又一个非限制性实施例,提供了一种计算机程序产品,用于控制电子计算机处理器对数据进行排序。该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有与其一起实施的程序指令。程序指令可由电子计算机处理器执行以执行操作,所述操作包括在计算机处理器的存储器单元中存储引用要加载到部分锦标赛排序中的键值的列表,以及经由处理器高速缓存从存储器单元获得指示键值的数据。该方法还包括经由硬件合并排序加速器基于键值生成锦标赛树,以及经由合并排序加速器执行部分锦标赛排序,以将锦标赛结果的第一部分存储在处理器高速缓存中,同时从处理器高速缓存中排除锦标赛结果的第二部分。键值表示被划分成高阶基数(例如2^64)的多个字(word)或数位(digit)的字符串。为了简单起见,附图使用基数10的数位。根据又一个非限制性实施例,计算机系统被配置为对数据进行排序。计算机系统包括处理器高速缓存和硬件合并排序加速器。处理器高速缓存与安装在计算机系统中的单独存储器单元进行信号通信,并且被配置为确定存储在存储器单元中的多个键值。硬件合并排序加速器与存储器单元和处理器高速缓存进行信号通信。合并排序加速器被配置为基于从处理器高速缓存获得的键值生成锦标赛树,并且执行多个部分锦标赛排序,以确定参与部分锦标赛排序的键值列表当中的总体获胜键值。计算机系统还包括存储器单元,存储器单元包括被配置为存储每个总体获胜键值的存储器位置。响应于存储总体获胜键而连续地更新存储器单元,使得每个总体获胜键相对于彼此自动地顺序存储。根据又一个非限制性实施例,提供了一种计算机实现的方法,用于利用顺序排序的数据更新计算机系统。该方法包括经由处理器高速缓存确定存储在计算机系统上安装的存储器单元中的多个键值,以及经由硬件合并排序加速器基于从处理器高速缓存获得的键值生成锦标赛树。该方法还包括经由合并排序加速器确定参与部分锦标赛排序的键值列表当中的多个总体获胜键值。该方法还包括响应于将最近确定的总体获胜键值存储在存储器单元中,利用相对于彼此自动地顺序存储的多个总体获胜键值连续地更新存储器单元。通过本专利技术的技术实现了附加的技术特征和益处。本文中详细描述了本专利技术的实施例和各方面,并且它们被认为是所要求保护的主题的一部分。为了更好地理解,参考详细说明和附图。附图说明在说明书的结论处的权利要求书中特别地指出并清楚地要求保护本文中描述的专有权的细节。通过以下结合附图的详细描述,本专利技术的实施例的前述和其它特征和优点是明显的,其中:图1描绘根据非限制性实施例的用于实施本文中的教导的计算机系统的框图;图2A示出根据非限制性实施例的基于要根据由图1中所示的计算机系统执行的部分比较锦标赛排序进行排序的当前键值的锦标赛树的初始化;图2B描绘根据非限制性实施例的参与部分比较锦标赛排序的当前键值的第一遍历(pass);图2C描绘根据非限制性实施例的参与部分比较锦标赛排序的当前键值的第二遍历;图2D描绘根据非限制性实施例的参与部分比较锦标赛排序的下一个键值的第一遍历;图2E描绘根据非限制性实施例的参与部分比较锦标赛排序的下一个键值的第二遍历;图2F图示根据非限制性实施例的参与部分比较锦标赛排序的另一个接下来的键值的初始化;图3描绘根据非限制性实施例的被配置为执行部分比较锦标赛排序的处理器和排序加速器的框图;图4是根据非限制性实施例的合并排序加速器流水线图;图5A-图5B图示根据非限制性实施例的部分比较锦标赛排序的流程图;以及图6是图示根据非限制性实施例的由部分比较锦标赛排序采用的锦标赛树中包括的节点的属性的框图。本文中描绘的图是说明性的。在不偏离本专利技术的精神的情况下,可以对图或其中描述的操作进行许多变型。例如,可以以不同的顺序执行动作,或者可以添加、删除或修改动作。而且,术语“耦合”及其变型描述了在两个元件之间具有通信路径,并且不是暗示元件之间的直接连接而在它们之间没有中间元件/连接。所有这些变型都被认为是本说明书的一部分。在附图中以及所公开的实施例的以下详细描述中,各图中所示的各种元件具有两个或三个数位的参考标记。除了少数例外,每个参考标记的最左边的(一个或多个)数位对应于首先图示其元件的图。具体实施方式本文中参考相关附图描述了本专利技术的各种实施例。在不偏离本专利技术的范围的情况下,可以设计出本专利技术的替代实施例。在以下描述和附图中阐述了元件之间的各种连接和位置关系(例如,上方、下方、相邻等)。除非另有说明,否则这些连接和/或位置关系可以是直接的或间接的,并且本专利技术并不意图在这方面进行限制。因此,实体的耦合可以指直接或间接耦合,并且实体之间的位置关系可以是直接或间接的位置关系。此外,本文中描述的各种任务和处理步骤可以合并到具有本文中未详细描述的附加步骤或功能的更综合的过程或处理中。以下的定义和缩写将用于本文档来自技高网...

【技术保护点】
1.一种计算机处理器,包括:/n存储器单元,所述存储器单元被配置为存储要加载到部分锦标赛排序中的键值;/n处理器高速缓存,所述处理器高速缓存被配置为从所述存储器单元获得指示键值的数据;/n与所述存储器单元和所述处理器高速缓存进行信号通信的硬件合并排序加速器,所述合并排序加速器被配置为基于键值生成锦标赛树,并且执行部分锦标赛排序,以将锦标赛结果的第一部分存储在所述处理器高速缓存中,同时从所述处理器高速缓存中排除锦标赛结果的第二部分。/n

【技术特征摘要】
20180831 US 16/118,5601.一种计算机处理器,包括:
存储器单元,所述存储器单元被配置为存储要加载到部分锦标赛排序中的键值;
处理器高速缓存,所述处理器高速缓存被配置为从所述存储器单元获得指示键值的数据;
与所述存储器单元和所述处理器高速缓存进行信号通信的硬件合并排序加速器,所述合并排序加速器被配置为基于键值生成锦标赛树,并且执行部分锦标赛排序,以将锦标赛结果的第一部分存储在所述处理器高速缓存中,同时从所述处理器高速缓存中排除锦标赛结果的第二部分。


2.如权利要求1所述的计算机处理器,其中所述键值表示包括多个数位的数字。


3.如权利要求2所述的计算机处理器,其中所述合并排序加速器通过执行第一锦标赛以确定总体获胜键值的第一数位并且执行第二锦标赛以确定总体获胜键值的第二数位来执行部分锦标赛排序。


4.如权利要求3所述的计算机处理器,其中所述合并排序加速器基于第一键值的第一数位和不同于第一键值的第二键值的第一数位之间的特定比赛的获胜数位来确定所述锦标赛结果的第一部分。


5.如权利要求4所述的计算机处理器,其中所述合并排序加速器将获胜数位确定为给定比赛的第一键和第二键的数位之间的比较当中的最低值。


6.如权利要求4所述的计算机处理器,其中所述合并排序加速器通过从锦标赛列表中选择键值并且使用所选择的键值执行通过锦标赛树的多个遍历来确定部分锦标赛排序的总体获胜键值。


7.如权利要求6所述的计算机处理器,其中将总体获胜键值从所述合并排序加速器存储到所述存储器单元。


8.如权利要求7所述的计算机处理器,其中存储到所述存储器单元的每个总体获胜键值相对于彼此自动地顺序存储。


9.一种对存储在硬件计算机处理器中的多个数据值进行排序的计算机实现的方法,所述方法包括:
在计算机处理器的存储器单元中存储要加载到部分锦标赛排序中的键值;
经由处理器高速缓存从所述存储器单元获得指示键值的树数据;
经由硬件合并排序加速器,基于键值生成锦标赛树;以及
经由所述合并排序加速器执行部分锦标赛排序,以将锦标赛结果的第一部分存储在所述处理器高速缓存中,同时从所述处理器高速缓存中排除锦标赛结果的第二部分。


10.如权利要求9所述的方法,其中所述键值表示包括多个数位的数字。


11.如权利要求10所述的方法,其中执行部分锦标赛排序包括:
执行第一锦标赛以确定总体获胜键值的第一数位;以及
执行第二锦标赛以确定总体获胜键值的第二数位。


12.如权利要求11所述的方法,其中确定锦标赛结果的第一部分是基于第一键值和不同于第一键值的第二键值之间的特定比赛的获胜数位,所述获胜数位是根据第一键值的第一数位和第二键值的第一数位之间的比较来确定的。


13.如权利要求12所述的方法,其中获胜数位被确定为给定比赛的第一键和第二键的数位之间的比较当中的最低值。


14.如权利要求12所述的方法,还包括:
通过从锦标赛列表中选择键值来确定部分锦标赛排序的总体获胜键值;以及
使用所选择的键值来执行通过锦标赛树的多个遍历。


15.如权利要求14所述的方法,还包括将总体获胜键值从所述合并排序加速器存储到所述存储器单元。


16.如权利要求15所述的方法,还包括响应于将每个总体获胜键值存储到所述存储器单元来更新所述存储器单元,使得每个总体获胜键值相对于彼此自动地顺序存储。


17.一种控制电子计算机处理器对数据进行排序的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有与其一起实施的程序指令,所述程序指令能由电子计算机处理器执行以执行操作,所述操作包括:
在计算机处理器的存储器单...

【专利技术属性】
技术研发人员:C·雅科比A·普拉尼克M·雷克滕瓦尔德C·佐尔林
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1