CN1069423C - 排序***和方法 - Google Patents
排序***和方法 Download PDFInfo
- Publication number
- CN1069423C CN1069423C CN94108249A CN94108249A CN1069423C CN 1069423 C CN1069423 C CN 1069423C CN 94108249 A CN94108249 A CN 94108249A CN 94108249 A CN94108249 A CN 94108249A CN 1069423 C CN1069423 C CN 1069423C
- Authority
- CN
- China
- Prior art keywords
- ordering
- local
- record
- sorting
- merge sort
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及一种可对其记录个数两倍于排序***的存储容量的数据串进行排序的***和方法,这种***和方法甚至能在常规大小的硬件归并分类器中完成较大文件的高速有效排序。该排序***配有一常规大小的硬件归并排序器和一包括一大型缓冲器的排序控制器。该硬件归并排序器配有n个串联的流水线级,其中每一级含一局部处理器和一局部存储器。这些局部存储器的总存储容量达2n个记录。该硬件归并排序器还配有用以控制在一独创的专门排序中存储器的存取的选择器。
Description
本发明涉及在排序***中进行的高速排序,更准确地说,本发明涉及可用以对大量数据以高速度进行处理的基于选择器的高速排序方法和设备。
图16系一包括常规技术的硬件归并排序器的常规排序***的整体框图,该技术在日本未审查专利公开号86043/1988中公开。
图16中的排序***包括硬件归并排序器22、外存储器或磁盘单元30、一个盘控制器31、一个***控制器41和一个通道接口42。根据该图,公用数据总线40在***控制器41和通道接口42之间传递数据。数据总线43在通道接口42和主机之间传递数据。数据总线32在盘单元30和盘控制器31之间传递数据。盘控制器31和公用数据总线40之间的数据传递则由数据总线34来完成。排序数据输入总线33将排序数据传给硬件归并排序器22。已排序数据输出总线35将已排序数据自硬件归并排序器22传至公用数据总路线40。硬件归并排序器22将n个流水线级顺序线性排列并串行级联在一起。每一流水线级有一排序组件或局部处理器和一与之耦合的响应专用存储器或局部存储器。具体说来,第一流水线级有局部处理器P1 1和存储容量为1(2°)个记录的局部存储器M1 11;第二流水线级有局部处理器P2 2和存储容量为2(21)个记录的局部存储器M2 12;第三流水线级有局部处理器P3 3和存储容量为4(22)个记录的局部存储器M3 13,以此类推,直至最后流水线级有局部处理器Pn6和存储容量为2n-1个记录的局部存储器Mn16。每一局部处理器配有内部缓冲器。相邻局部处理器间则配有行缓冲器。
图17系图16中所示常规排序***的简化框图。图中,局部存储总线106在硬件归并排序器22中任一流水线级上的局部处理器和相关局部存储器之间传递数据。排序控制器100是一包括一大型缓冲器、盘单元30、***控制器41、盘控制器31和一通用处理器的多功能装置。
根据图16,待分排序据流由盘控制器31自盘单元30读出,并通常经数据总线32和排序数据输入总线33传至硬件归并排序器22。另外,该数据流可经***控制器41和通道接口42传至主机,然后再经通道接口42和***控制器41回到盘控制器31,以备输入至硬件归并排序器22。
当硬件归并排序器22收到排序数据后,局部处理器P1 1至Pn6便与响应的局部存储器M1 11至Mn16一起进行一系列流水线归并排序器操作。当对输入数据通过各流水线级进行的排序后,所得已排序数据串便自硬件归并排序器22经已排序数据输出总线35传给公用数据总线40。该已排序数据流可随即被传至***控制器41或经通道接口42并通过数据总线43传至主机。
根据常规技术,图16或17中的常规硬件归并排序器22可利用n个含局部处理器和局部存储器的流水线级对N(N≤2n,n为整数)个记录进行排序。常规硬件归并排序器22是根据二路归并来对数据进行排序的。N个记录被串行地输入至局部处理器P1 1并通过流水线级,以便这些记录被按序排列且有一串N个已排序记录被输出。二路归并排序输入并处理已存入每一流水线级的局部存储器和内部缓冲器这些个存储单元里的两串记录。这一操作完成后,局部处理器便 将所得已排序记录串传至流水线级上的下一个局部处理器。例如,有一响应局部处理器Pi的局部存储器Mi能容纳2i-1个记录。局部处理器Pi自前一流水线级的局部处理器Pi-1连续地接过两条各含2i-1个记录的记录中,然后将这两条记录串合并成一条含2i个记录的记录串。该含2i个记录的已排序记录串接着又被输出至邻近的流水线级的局部处理器Pi+1供进一步归并排序用。
现在参考图16或17详细描述常规技术中的二路归并排序的基本操作。该操作分两阶段:存储阶段和归并排序阶段。存储阶段是归并排序阶段的准备。在存储阶段,自流水线级上的前一局部处理器相继传来的两串已排序数据被输入至局部处理器,并被分别存入相应的局部存储器和内部缓冲器。在归并排序阶段,局部处理器每次自己存储的两串记录中的每一串取一个记录供比较用。该对记录被按照给定的要求进行比较并被按序排列。例如,记录可按自最高初值起递减的顺序排序,或自最低初值起按递增的顺序排序。结果,该对已排序记录中排在较先的那一个记录便自局部处理器输出,以便归并进作为流水线节的行缓冲器中的已排序记录串。这样的归并排序操作可重复进行直至两存储单元中的每一个均已不再存有记录,从而所得记录串是有序的。上述已排序记录串随后被传至的流水线级上的下一台局部处理器供进步归并排序用。由此可见,常规技术中的二路归并排序由于需要将两串记录合并成一串已排序记录而使得每一流水线级上的数据量增加了一倍。
图18系用于图解常规排序方法中的一连串常规流水线归并排序操作的概念图。图中,阴影三角,实际上应呈指数曲线状,标明各局部存储器的存储容量,而阴影方格则代表排序组件或局部处理器。根据图18,排序数据流串行输入至局部处理器P1 1,在那里接受一连串常规归并排序操作,然后作为一已排序数据串自局部处理器P1 1输出。该完整的已排序数据串接着被传至排序控制器。
在二路归并排序中,存储中的已排序数据串当其领头记录被输出至局部处理器供比较用时便失去了该领头记录。局部处理器中的领头记录的输入顺序在存储单元之间是随机的,主要取决于比较的结果。为了维持存储中的已排序数据串的领头记录的连续输出,一存储单元中的一个已排序串领头记录的地址空间应总是由同一数据串中余下的已排序数据串的领头记录所占据。换言之,存储中的数据串应每输出一个记录便向前移位一个记录或地址空间以保持排序的序列。维持存储中的已排序数据串的排序序列及不停地输出领头记录是至关重要的。从这一点看来,有必要采取或考虑一些措施以解决这一问题。
以下就通过处理定时来讨论一下二路归并排序。一般地讲,数据排序中的处理单位可以是一个记录、一个字或一个字节。常规技术采用基于记录的单字处理。图19系图解二路归并排序操作中相邻局部处理器之间基于记录的单字处理的定时图。
根据图19,一个记录由两个字段组成:含一定字数的数据段和一个双字指针。每一个字有三个周期:读周期R0、读周期R1和写周期W。按照基于记录的单字处理的二路归并排序基本上是通过一个记录逐字工作的。为了在归并排序步骤中进行比较,二路归并排序应访问三个存储单元:局部存储器、局部处理器中的内部缓冲器及行缓冲器。换言之,局部处理器在读周期R0和R1中分别自两存储单元各接收一个字或记录以备进行比较,比较后在写周期W中将其中一个输出。因此,从每一流水线级出来的所得记录串是逐字顺序排列的。
如前所述,常规硬件归并排序器通常是由线性排列的串联流水线构成,其中任一流水线级包括一局部处理器和一相应局部存储器,后者的存储容量是前一流水线级的局部存储器的两倍。如果硬件归并排序是有n个流水线级,那么最后一个流水线级的局部存储器的存储容量便是2n-1个记录,为所有局部存储器的总存储容量的一半。根据常规技术,最后一个流水线级的局部存储器的存储容量限制住了常规硬件归并排序器的最大可排序记录数。换言之,常规硬件归并排序器只能对其记录数两倍于最后一流水线级的局部存储器的存储容量的数据串进行排序。这也可简单理解为只要能扩展常规排序***中局部存储器的总存储容量,则其可排序记录数便没有上限,理论上,即便是就高速有效排序而言这也是可能的。然而,实际上,从体系结构或组装角度考虑,含局部存储器的流水线级数或硬件归并排序器尺寸的无限制扩大对于一计算***来说是不可能的。超过上限数的记录事实上只能依赖软件来进行处理。这就形成了一个瓶颈并限制了高速有效排序。
本发明的目的显然就是要能提供一种在常规大小硬件归并排序器中可对较大文件中的数据进行高速有效排序的排序***和方法。本目的以及别的目标可由本发明所给出的排序***和方法来实现。
根据本发明,一种可对多个记录进行排序的排序***包括:
(A)一硬件归并排序器,它又包括:
(A-1)多个串联的局部处理器,其中每一局部处理器接收前一局部处理器输出的记录,将其排序成经过排序的数据串,并将经过排序的数据串输出至下一局部处理器,从而硬件归并排序器在通过该排序器进行的第一轮排序中产生至少一条经初次排序的数据串;
(A-2)一存储容量为2n个记录并含多个局部存储器的存储器;
(A-3)多个处于局部存储器和相关局部处理器之间并与二者耦合的选择器,用以在第一轮排序中使局部存储器和相关局部处理器耦合,而在第二轮排序中使多个局部存储器与专门一局部处理器耦合;和
(B)一控制局部处理器和选择器的控制器,以便硬件归并排序器在第一轮排序中产生第一和第二条各含N个记录的已排序数据串,而在第二轮排序中产生一条含2N个记录的已排序数据串。
根据本发明,在本排序***中,多个局部存储器中至少有两个局部存储器,其每一个存储容量达2n-1个记录,且在第二轮排序中由选择器将这两台局部存储器与一专门局部处理器耦合。
根据本发明,本排序***还包括一连按在控制器和多部选择器之间的用来将第一和第二条排序数据串中的一条从控制器传至局部存储器以备第二轮排序用的专用存储总线。
根据本发明,在本排序***中,每一局部存储器具有2n-1+1个记录的存储容量且由两台局部处理器访问。
另据本发明,能对多个记录进行排序的排序***包括:
(A)至少两个串联的硬件归并排序器单元,每一单元包括:
(A-1)串联在一起的多个局部处理器,其中各局部处理器接收前一台局部处理器输出的记录,将其排序成经过排序的数据串,并将经过排序的数据串输出至下一局部处理器,从而保证硬件归并排序器单元在第一轮通过该硬件归并排序器单元产生至少一串经初次排序数据串;
(A-2)一个存储容量为2n个记录并含多个局部存储器的存储器;
(A-3)多部位于局部存储器和相应的局部处理器之间并与二者耦合的选择器,用来在第一轮排序中使局部存储器与相应的局部处理器耦合,在第二轮排序中将多个局部存储器与第一台专门的局部处理器耦合,而在第三轮排序中将多个局部存储器与第二台专门的局部处理器耦合;
(A-4)多个与多台局部处理器串联的输入/输出总线选择器,用以连接各硬件归并排序器单元;和
(B)一台用来控制局部处理器、选择器和输入输出总线选择器的控制器,以便在第一轮排序中将多个数据排序成四条各含N个记录的已排序数据串,在第二轮排序中又将该四串已排序数据排序成两条各含2N个记录的已排序数据串,最后在第三轮排序中将前述两条已排序数据串排序成一条含4N个记录的已排序数据串。
又根据本发明,一种使用硬件归并排序器对多个记录进行排序的方法,其中的硬件归并排序器包括多个局部处理器、多个局部存储器及多个置于多个局部存储器与一相关局部处理器之间并与二者耦合的选择器,用于在第一排序步骤中将局部存储器与相应的局部处理器耦合,在第二排序步骤中则使得若干局部存储器与专门的局部处理器耦合。本方法包括下述步骤:
(A)在第一排序步骤中利用每一局部处理器和每一局部存储器将N个记录排序成第一条已排序数据串;
(B)在第一排序步骤中将另外N个记录排序成第二条已排序数据串;
(C)在第二排序步骤中将上述第一条和第二条已排序数据串中的一条存入多个局部存储器;和
(D)在第二排序步骤中将第一条和第二条已排序数据串中的另一条与已存储的那条数据串进行排序以产生一条含2N个记录的已排序数据串。
根据本发明,一种使用至少两个硬件归并排序器单元对多个记录进行排序的方法,其中每一单元包括多台局部处理器、多台局部存储器及多台置于多台局部存储器和一台相关局部处理器之间并与二者耦合的选择器,用于在第一排序步骤中将局部存储器与相应的局部处理器耦合,在第二排序步骤中则将多台局部存储器与专门的局部处理器耦合,以及多个输入/输出总线选择器;它们与多个局部处理器串联并在第二和第三排序步骤中连接各硬件归并排序器单元。本方法包括下述步骤:
(A)在第一排序步骤中利用第一硬件归并排序器单元里每一台局部处理器和每一台局部存储器将N个记录排序成第一条已排序数据串;
(B)将第一条已排序数据串存入第二硬件归并排序器单元的多个局部存储器中;
(C)在第一硬件归并排序器单元中进行的第一排序步骤中将另外N个记录排序成第二条数据串;
(D)在第二排序步骤中将第二条已排序数据串和已存入第二硬件归并排序器单元的第一条已排序数据串进行排序以产生第一条含2N个记录的已排序数据串;
(E)通过重复步骤(A)到(D)并使用第一和第二硬件归并排序器单元将另外2N个记录分成第二条含2N个记录的排序的数据串;
(F)在第三排序步骤中将上第一和第二个条各含2N个记录的数据串的一条存入第一和第二硬件归并排序器单元的多个局部存储器里;和
(G)将上述第一和第二条各含2N个记录的数据串的另一条与已存入的那条含2N个记录的数据串进行排序以便在第三排序步骤中产生一条含4N个已排序记录的数据串。
根据本发明,一种使用含多台局部处理器和多台局部存储器的硬件归并排序器来对多个记录进行排序的方法,本方法包括下述步骤:
(A)在第一排序步骤中利用每一台局部处理器和每一台局部存储器将N个记录分类成第一条已排序数据串;
(B)将余下的多个记录中取出的一个记录存入每一局部存储器里;
(C)在第二排序步骤中将第一条已排序数据串与那个已存入每一局部存储器的记录进行排序;和
(D)必要时重复步骤(B)和(C)至少一次以产生一串已排序记录。
根据本发明,本排序***还包括置于各相关的多个局部处理器和控制器之间的排序结束信号线,从而每一相关处理器能通知控制器它已完成了第一轮排序,并且,该控制器便可以将两条经初次排序的数据串中的一条的一部分存入相关局部存储器。
附图中,图1系说明第一和第二实施例中所述硬件归并排序器配置和排序控制器的本发明排序***的简化方框图;
图2系图1中总线控制区110的数据总线结构的一般局部方框图,用以说明第一实施例中所述数据控制技术;
图3系用来进一步说明图2中所示数据控制技术的数据总线结构的局部方框图;
图4系用来说明第一实施例中所示的已实现于大规模集成电路中的基于选择器的数据控制技术的局部示意方框图;
图5系用来说明第一实施例中所述地址控制技术的一般方框图;
图6系进一步说明图5中所示地址控制技术的地址总线结构的局部方框图;
图7系用来说明第一实施例中所述的基于控制信号的数据控制技术的地址总线结构的局部方框图;
图8系本发明的排序***的方框图,用以说明第一实施例中所述的由硬件归并排序器在第一步归并排序中实行的一系列常规流水线归并排序操作;
图9系用来说明第一实施例中所述的在第二步归并排序中实行的存储器和归并排序操作的本发明排序***的方框图;
图10系本发明的一排序***配置的方框图,用以说明第三实施例中所述的适用于在多排序器***中进行的串联操作的硬件归并排序器;
图11系用来说明第四和第六实施例中所述的适用于在多排序器***中进行串联操作的另一硬件归并排序器的本发明排序***结构的方框图;
图12系用来说明第一实施例中所述的本发明的基本排序方法的概念图;
图13系用来说明第三实施例中所述的多排序器***中本发明的一种基于串联的排序方法的概念图;
图14系用来说明第五实施例中所述的适用于较小文件的独创分类方法的概念图;
图15说明根据第五实施例中所述独创排序方法进行的串行流水线归并排序操作的实例;
图16系一常规排序***的总方框图;
图17系图16中所示常规排序***的简化方框图;
图18系说明常规排序方法的概念图;
图19系说明在二路归并排序操作中基于记录的单字处理的定时图。
实施例1
图1系说明第一实施例中所述的硬件归并排序器配置和排序控制器的本发明排序***的方框图。图1中的硬件归并排序器是在图7中的常规硬件归并排序器基础上改装而成,其改进之处在于增加了一台存储容量为1个记录的辅助存储器8、总线控制区110及局部存储器总线120,并用局部存储器总线111替换了局部存储器总线106。总线控制区110包括选择器或驱动/接收器9和10及局部地址/数据总线121至124。硬件归并排序器由几个流水线级构成,其中第一流水线级含一局部处理器P1 1,第一流水线级含P2 2,第三流水线级含P3 3,以此类推,直至倒数第二流水线级含局部处理器Pn-15及最后一流水线级含Pn6。每一局部处理器有一响应的局部存储器经由总线控制区110中的驱动/接收器9并通过局部存储器总线111与之相连。存储器包括局部存储器M1 11、M2 12、M3 13等等,直至Mn-115和Mn16,它们分别与编号为P1 1至Pn6的局部处理器相耦合。局部处理器Pn6在完成整个系列归并排序操作之后将已排序数据输出至已排序数据输出总线35。排序控制器101是一包括图16中的***控制器41和盘控制器31的多功能装置。排序控制器101通过排序数据输入总线33将排序数据传至硬件归并排序器。完成排序后的数据被传至排序控制器101,否则经图16中所示的通道接口42和数据总线43被传至主机。
本发明的排序***,其特征为通过排序控制器101和驱动/接收器10来控制的专门或单独分配给一专用的局部处理器或局部处理器Pn6的单一的操作。为实现这些单一操作,局部处理器Pn6可通过局部地址/数据总线121至124访问包括辅助存储器8在内的流水线各级的所有局部存储器。
图2至4均系图1中的总线控制区110中的一种数据总线结构的局部方框图,用以说明本实施例所述的局部处理器与局部存储器之间的数据控制技术。图2中,基本时钟信号660提供使各局部处理器同步的信号。处理器间数据总线650将来自局部处理器的已排序数据串传至流水线级中的下一台局部处理器。图2可用来说明用于一种通过驱动/接收器9和10进行的双向数据控制技术的数据总线配置。当流水线中每一台处理器执行完一个归并排序操作后,数据通过驱动/接收器9而在流水线级上一对局部处理器和响应的局部存储器之间进行传递。另一方面,数据通过多个驱动/接受器10而在每一局部存储器与一专用的局部处理器之间传递。
基于图2的图3和4展示在硬件归并排序器含19个流水线级(n=19)的条件下本发明的硬件归并排序器的最后三个流水线级。图3说明在此情况下图2中的数据控制技术。
图4说明一种实现在基于大规模集成电路(LSI)的配置中的基于选择器的数据控制区。图4中的虚线方框表示LSI线路图,它们包括一组写入和读出选择器21a和21b、三个输入/输出缓冲器20(驱动/接收器)和一台局部处理器。写入选择器21a当一个归并排序操作是在每一流水线级内执行时便自LSI中局部处理器中选取要写进局部存储器的数据流,而对于由局部处理器P19 6执行的唯一存储操作则自专门局部处理器P19 6里选取要写进局部存储器的数据流。读出选择器21b自流水线级上的局部存储器或自前一流水线级中的LSI选取数据流以备传至专门局部处理器供进行单一归并排序操作用。
图5至7系图1中的硬件归并排序器的总线控制区110中的地址总线结构的局部方框图,用来说明本实施例所述局部处理器和局部存储器之间的地址控制技术。图5系说明由驱动/接受器9或10控制的地址控制技术的地址总线结构的全景。基于图5的图6展示在硬件归并排序器含19个流水线级的条件下该归并排序器的最后三个流水线级。
根据图6,当驱动/接收器10被停用时驱动/接收器9使被启用以便当每流水线级执行归并排序操作时将地址数据自局部处理器传至每一流水线级上响应的局部存储器。另一方面,当驱动/接收器10被启用时驱动/接收器9便被停用,以便当局部处理器Pn6利用所有流水线级中的局部存储器进行存储和归并排序操作时地址数据能自专门的局部处理器Pn6被传至流水线级中的每一局部存储器。
根据上述地址数据控制技术,当所有局部存储器为一静态随机存取存储器(SRAM)时可使用芯片选择信号。当这些局部存储器为一动态随机存取存储器(DARM)时,则使用如列地址选通信号这样的地址控制信号。图7展示在DRAM存储器情况下的另一地址控制技术。根据图7,地址控制信号是在地址译码器91中根据地址总线上的地址数据产生的。通过各流水线级上的局部处理器或向地址译码器91选择一总线,一存储器阵列控制信号选择器90控制地址数据向每一流水线级的局部存储器的写入。
现在参照图8和9详细描述根据图1中本实施例所述的独创硬件归并排序器的基本操作。图8和9展示包含第一和第二步归并排序的本发明的硬件归并排序器中进行的一系列独创归并排序。图8说明每一局部处理器是如何在排序的第一步归并排序操作中利用驱动/接收器9来访问其响应的局部存储器的:除了总线控制是由驱动/接收器9完成以外,该阶段的串行流水线归并排序操作与常规技术的一样。图9则说明局部处理器Pn6何以能在排序的第二步归并排序操作中利用总线控制区中的局部地址数据总线121至124和驱动/接收器10来单一地访问所有流水线级的局部存储器。
如前所述,常规排序方法可对N(N≤2n)个数据进行排序。另一方面,当要对其值介于2n与2n+1并含2n+1的某N’(2n<N’≤2n+1)个数据进行排序时,便得用本发明独创排序法来对这样较大量的数据进行排序。根据本发明的独特排序方法,较大文件中的数据应采用如图8和9中所示的常规和创新排序方法的组合在本发明的硬件归并排序器里排序两次。如图8所示,N’个记录被串行输入进本发明的硬件归并排序器并在第一轮排序中通过接受一系列常规流水线归并排序操作而被排序。结果,硬件归并排序器便连续地将所得到的经初始排序的分别含2n和N’-2n个记录的数据串输出至已排序数据输出总线35。这些数据串接着又被传入排序控制器101。
如图9所示,上述排序控制器101来自第一步归并排序的两串经初次排序的记录再在第二步归并排序中在本发明的硬件归并排序器里接受第二轮排序。这第二步归并排序的特征是那些只由局部处理器Pn6执行的单一和不可兼的操作。为了这种单一操作,所有流水线级上的局部存储器受到控制而只对局部处理器Pn6响应,而这种控制是借助总线控制区110中由驱动/接收器10控制的局部地址数据总线121至124来完成的。换言之,局部处理器Pn6利用一包括所有流水线级上的局部存储器M1 11至Mn16以及M8的联合存储器独特地执行上述存储或归并排序操作,而这样的联合存储器的存储容量为2n个记录。第二步归并排序由两个不同的操作组成,即存储操作和归并排序操作。在存储操作中,两条经初始排序的记录串中的一条被通过专门局部处理器存入上述联合存储器中。为了这种单一操作,排序控制器101可以在记录串前头置一跳过标记并跳过局部处理器P1 1至Pn-1 5将该记录串直接传至局部处理器Pn6。局部处理器Pn6在收到该记录串后便开始访问联合存储器以存储输入数据。将数据传到联合存储器后,局部处理器Pn6便为单一归并排序操作作好了准备,为了保证此阶段的存储操作的成功,前面关于应用驱动/接收器的地址数据控制技术的讨论应参照图2至7加以考虑。
当存储操作完成后,排序控制器101便通过排序数据输入总线33将余下的已初始排序的记录串传至硬件归并排序器以接受单一的归并排序操作。该记录串也可因使用了跳过标记而被直接传至局部处理器Pn6。局部处理器Pn6在收到此串记录便开始将其单一地与联合存储器中的那串记录归并。结果便得到含N’个已排序记录的记录串由局部处理器Pn6输出至已排序数据输出总线35。这样便完成了本实施例中所述的整个系列独创归并排序操作。
如上所述,本实施例所述的本发明的硬件归并排序器能够对较大数据文件进行排序。当处理N’或2N(=∑N1)个排序记录时,本发明的硬件归并排序器在第一步归并排序中将这些记录归并成两条分别含N1和N2个记录的记录串。在第二步归并排序中,硬件归并排序器又将上述两条经初次排序的记录串合并成一条经第二次排序的含2N个记录的记录串。
从而,本实施例中涉及的本发明的排序***通过一能够对超过2n个之多的记录也即超出常规归并排序器所能设法排序最大数目进行排序,而尺寸大小与常规硬件归并排序器无异的硬件归并排序器。
且对高速排序作进一步改善。
在本实施例中所讨论的本发明的排序方法可在常规技术中的硬件归并排序器上执行。但是,为了在第二步归并排序中使本发明的单一归并排序操作生效,需要增加一些选择技术或机构,如选择器或驱动/接收器。
图12系说明本发明的可在常规归并排序器上执行的排序方法的概念图。图中,三角形代表局部存储器,方块代表局部处理器,长方形代表排序控制器,而箭头则表明数据流的方向。这些记号若投上了阴影则表示其功能处于执行之中。根据本实施例,硬件归并排序器可对介于2n与2n+1之间的N’之多的记录进行排序。
图12(a)说明第一步归并排序中执行的一系列常规流水线归并排序操作。根据本实施例,N’个记录在第一步归并排序中以在下列两步骤(S1-1和S1-2)中讨论的方式被排序成两条经初次排序的记录串。S1-1:2n个记录经过一系列常规流水线归并排序操作的处理并
被作为一条含2n个经初次排序的记录的记录串N1而传
至排序控制器。S1-2:余下的N’-2n个记录相继被以与S1-1中所述相同
的方式处理,然后作为一条含N’-2n个已初次排序记
录的记录串N2而被传至排序控制器。
图12(b)说明在第二步归并排序中的单一操作这一阶段包括如下的存储操作步骤(S2-1)和归并排序操作步骤(S2-2)。S2-1:含2n个经初次排序的记录的记录串N1自排序控制器被
直接传至最后一流水线级上的专门局部处理器供单一的存
储操作之用。该局部处理器随后又将记录串N1传到包括
一增加的存储容量为一个记录的辅助存储器的联合存储器
供单一的操作用。S2-2:当上述单一存储操作完成后,含N’-2n个记录的经初
次排序的记录串N2被自排序控制器传至专门局部处理器
供单一归并排序操作之用。局部处理器通过单一归并排序
操作将两记录串N1和N2合并,然后输出一条完整的含
N’(2n<N’≤2n+1)个记录的已排序记录串。实施例2
再据实施例1,本发明的硬件归并排序器能提供另一局部存储器,即图1中的局部存储器15a,它具有与流水线级中最后一局部存储器16相同的存储容量2n-1个记录。这意味着这两台局部存储器具有图1中所有流水线级上的局部存储器所共有的存储容量。换言之,专门局部处理器第二步归并排序中只须访问两台局部存储器而不是所有局部存储器。从体系结构角度出发,一方面本实施例所涉及的本发明的归并排序器由于一局部存储器的存储容量被增加,因而根据局部存储器的总存储容量则其尺寸将被扩大。另一方面,由于在第二步归并排序中采用了只访问两台局部存储器用的较简单的总线结构,本发明的硬件归并排序器所需的总线控制区110的尺寸将会缩小。由此看来,本实施例中涉及的硬件归并排序器就第二步归并排序中通过地址数据控制而进行的单一操作而言是有利的。
实施例3
图10系本发明的又一实施例中所述的本发明的一排序***配置的方框图,用以说明本发明的适用于在多排序器***中实行串联操作的归并排序器。图10包括图1,但增加了输入总线选择器50、输入总线选择信号51、排序器间数据总线52、输出总线选择器53、输出总线选择信号54、驱动/接收器113和115以及串联存储总线114和116。
图10中的硬件归并排序器可单独运行也可串联运行,这可通过使用输入总线选择器50和输出总线选择器53控制数据流来实现。输入总线选择信号51选择一条自排序控制器101或自前一级上的排序器传来的数据流。换言之,如需硬件归并排序器单独运行,输入总线选择器50使将排序数据输入总线33上的数据流输出至局部处理器P1 1。而若需该排序器在一多排序器***中串联,则输入总线选择器50便往排序器间数据总线52输出一数据串。输出总线选择信号54为输出所得到的已排序记录串选择一总线。也就是说,若需排序器单独运行,输出总线选择器53将自局部处理器Pn6传来的所得已排序记录串输出到已排序数据输出总线35。而若需排序器在一多排序器***中串联运行,则输出总线选择器53使将已排序记录串输出至排序器间数据总线52供下一级在一排序器进行进一步操作之用。在已排序数据输出总线35上的已排序数据串被传至排序控制器101或如图16所示经通道接口42被传至主机。
当更多的本发明的硬件归并排序器被通过将其中一排序器的输出总线选择器53联到另一排序器的输入总线选择器50上而互相串联在一起时,所得多排序器***的规模就会变得越来越大。结果,该***的可排序数据量也将随着多排序器***中的硬件归并排序器的数目增加而增加。
现在更具体地讨论一下当一多排序器***有如图10所示的两串联的本发明的硬件归并排序器单元时该多排序器***的基本操作。本实施例中所述上述两排序器***可用三步归并排序操作来对N″(2n+1<N″≤2n+2)个记录进行排序。在第一和第二步归并排序中,两台硬件归并排序器中的每一台以如第一实施例中所述的方式(参看图8和9)单独运行。在第三步归并排序中,该两台排序器为第三步排序串联以产生一条完整的已排序记录串。
在第一步归并排序中,所有硬件归并排序器共用N″个记录并通过常规流水线归并排序操作串行地对其进行处理。换言之,上述两硬件归并排序器分别输出1或2串不多于2n个的记录。结果,N″个记录被分成3或4串经初次排序的记录并被传至排序控制器101。
排序控制器101中的这3或4串经初次排序的记录经过第二步归并排序归并成两串,然后分别从两排序器输出至排序器控制器。根据本实施例,由两条各含2n个记录的记录串合并而成的2n+1个记录和自前述1或2条记录串生成的N″-2n+1个记录在两台排序器中被单独进行排序。结果,排序控制器收到两条分别含2n+1和N″-2n+1个记录的经第二次排序的记录串。然而,在此阶段,在排序器中处理的记录串的组合方式是可在排序控制器101中3或4条经初次排序的记录串变化的。
在第三步归并排序中,两硬件归并排序器串联并先后共同完成归并排序操作。这一阶段的操作基于涉及单一存储和归并排序操作的本实施例的第二步归并排序中的那些操作。为了此单一操作,在后面的级中应在排序器中提供专门局部处理器Pn6。
为了取得基于两串联排序器联合存储器,前面一级的排序器的串联存储总线114与后面一级的另一排序器的串联存储总线116相联。为了此阶段的单一操作,后一排序器的局部处理器Pn6或专门局部处理器包括两个排序器的局部存储器M1 11至Mn16和辅助存储器8在内的存储容量为2n+1个记录的一联合响应存储器。为确保成功的存储操作,先前关于图2至7中所示地址数据总线控制技术的讨论应与本实施例结合起来加以考虑。
为了此阶段的单一存储操作,两条经第二次排序的记录串中的一条被输入至前面的排序器的局部处理器P1 1,然后又自排序控制器101直接传入后面的排序器的专门局部处理器Pn6。专门或独有的局部处理器Pn6将输入数据传到联合存储器。完成存储操作后,专门局部处理器Pn6使为利用联合存储器进行单一归并排序操作作好了准备。排序控制器101将余下的串记录直接传至专门局部处理器Pn6。局部处理器Pn6接着便开始对数据进行单一归并排序操作。结果,一条完整的含N″(2n+1<N″≤2n+2)个记录的已排序记录串便自后面的排序器输出至输出数据总线35。
因此,据本实施例,在图10所示两串联硬件归并排序器的多排序器***中,在第一步归并排序中4N个记录被排序成3或4条经初次排序记录串。在第二步归并排序中,上述3或4条经初次排序记录串合并成两条各含2N个记录的经第二次排序的记录串。在基于串联的第三步归并排序中,上述两经第二次排序的记录串又合并成一条完整的含4N个记录的经第三次排序的记录串。
一般说来,对于能对两倍于总存储容量的记录进行排序的排序器或多排序器***来说,存储容量是唯一限制最大可排序数据数的因素。由此看来,随着多排序器***通过串联越来越多的排序器而不断扩展自身,在多排序器***中可排序数据量可显著增加。
又据实施例1及其附图图12,本发明的排序方法也可在多排序器***上执行。图13就是用来说明本发明可在一串联的多排序器***上执行的排序方法的概念图。根据本实施例,该***可对介于2n+1和2n+2之间的N″(2n+1<N″≤2n+2)个记录进行排序。
图13(a)说明由两串联的硬件归并排序器各自单独执行的第一和第二步归并排序。前面级上的硬件归并排序器专用于第一步归并排序中的操作。后面级上的另一排序器则专用于第二步归并排序的操作,根据本实施例,N″个记录通过两排序器以下列两步骤中所讨论的方式在第一和第二步归并排序中被排序成2条经第二次排序的记录串。S11-1:N″个记录被输入至前面级上的排序器。最初的2n个记
录被排序成一条含2n个经初次排序的记录的记录串N1。该记
录串N1接着被传入后面的排序器供第二步归并排序中的单一存
储操作之用。另外2n个记录则在前面的排序器中被连续地排序
成一条也含2n个经初次排序的记录的记录串N2。该记录串
N2接着被传至后面的排序器。
记录串N1和N2通过单一归并排序操作被合并成一条含
2n+1个第二次排序的记录的记录串N1+N2。该记录串
N1+N2接着被传至排序控制器。S11-2:余下的N″-2n+1个记录必要时可接受第一步归并排
序中的两系列操作并按S11-1中所描述的方式被处理,最后
以一条含N″-2n+1个记录的经第二次排序的记录串N3
(+N4)被输出至排序控制器。
图13(b)说明由一组包括两台排序器的装置进行串联操作的第三步即基于串联的归并排序。本实施例的第三步归并排序中的操作与第三实施例的第三步即基于串联的归并排序中所描述的操作相同。两条分别含2n+1和N″-2n+1个记录的经第二次排序的记录串N1+N2和N3(+N4)以在如下两个基于串联的步骤即单一存储操作(S12-1)和单一归并排序操作(S12-2)中所描述的方式被排序。S12-1:两条经第二次排序的记录串N1+N2和N3(+N4)
中的一条通过前面的排序器自排序控制器被直接传至后面的排序
器的专门局部处理器,并存储在两排序器的联合存储器中。S12-2:余下的那串记录则自排序控制器直接传入专门局部处理
器。该串记录通过单一归并排序操作与存储器中的那串记录合并
而成一条完整的含N″(2n+1<N≤2n+2)个记录的已排序记
录串。
实施例4
又据图10,本发明的硬件归并排序器可享有一专用总线以便在第二步归并排序中的存储操作中将排序数据从排序控制器里直接传至硬件归并排序器中的局部存储器。
图11系另一实施例中所述的本发明的一排序***配置的方框图,用以说明另一适用于在多排序器***中进行串行操作的硬件归并排序器。图11包括10,但增加了一专用存储总线70。专用存储总线70通过局部存储总线120将排序数据自排序控制器101和局部地址/数据总线121至124直接传至排序器中的局部存储器。驱动/接收器113是将专用存储总线70与局部存储总线120相联的接口。
根据本实施例,排序控制器101为第二步归并排序中的存储操作将经过第一步归并排序的得到的两条经初次排序的记录串当中的一条通过专用存储总线70直接传至局部存储器M1 11至Mn16和辅助存储器8。此后在第二步归并排序中执行的单一归并排序操作与第一实施例(参看图9)中所述相同。
实施例5
又据第一实施例,本发明的排序方法适用于较小的文件。图14系说明本发明的可在常规硬件归并排序器上执行的排序方法的概念图。根据本实施例,可通过下面三个步骤来处理2n个记录。然而,本实施例所述的本发明的排序方法适用对任何超过2n个的记录进行排序。图14(a)、14(b)和14(c)分别说明第一、第二和第三步。
在如图14(c)所示的第一步(步骤1),2n个记录通过一系列常规流水线归并排序操作被处理,并以一条含2n个记录的经初次排序的记录串而被输出至排序控制器。
在如图14(b)所示的第二步(步骤2)中,余下的n个经预排序的记录以n个流水线级的每一局部存储器接收一个记录的方式被存储进各局部存储器中。对于本步骤中的存储操作来讲,记录自排序控制器的成功的传递可通过该每一个记录带上一个地址标记来实现,或者设置一条专用存储总线来将记录直接自排序控制器存入局部存储器。
在如图14(c)所示的第三步(步骤3)中,步骤1中产生的一条含2n个记录的经初次排序的记录串在步骤2中被输入至硬件归并排序器。存储着的n个记录通过一系列流水线归并排序操作的逐一归并进一条含2n个记录的经初次排序的记录串。结果,硬件归并排序器输出一条完整的含2n+n个记录的已排序记录串。
当记录数超过2n+n时,可重复步骤2和3的组合直至下面没有归并可作。换言之,2n+kn个记录可通过步骤1被处理一次然后再经k次步骤2和3的组合(kn<2)而得到处理。这种排序方法当数据量为2n时特别适宜。
图15展示在如图14(c)所示的步骤3中所执行的流水线归并排序操作的一个具体例子。该图说明存储着的一个记录是如何在一含局部处理器的流水线级上被合并进一条按升序排列的已排序输入记录串中的。
在图15(a)中,在第一流水线级上的局部处理器P1输入一串已排序记录和一个其值为5的存储中的记录并将它们按升序排序。在图15(b)中,上面得到的那串含置于3和6之间的5这个记录的已排序记录随后便被输入至下一流水线级的局部处理器P2。局部处理器P2将存储中的一其值为2的记录并入自局部处理器P1传来的一已排序记录串中。这样得到的一串含置于1和3之间的2这个记录的已排序记录又自局部处理器P2输出至下一流水线级的局部处理器P3。因此,步骤2中存储着的记录在每一流水线级上被重复地归并进一记录串直至局部存储器中不再留有记录。
根据本实施例,通过两种不同系列的流水线归并排序操作,本发明的排序方法可对其记录被介于2n以上和2n+n之间的数据进行排序,而这些系列流水线归并排序操作涉及利用具有能对2n个记录排序的n个流水线级的常规归并排序***来实施的三个步骤。
实施例6
根据前述若干实施例,通过给每一流水级提供一排序结束信号及一如图11所示的排序结束信号线400,本发明的排序***和方法就能在第二步归并排序中提前开始存储操作。在第一和第二步归并排序之间或更具体地说在单一存储操作之前应有潜在的空闲时间。例如,根据第一实施例,存储操作要待最后一流水线级上的局部处理器完成第一步归并排序中最后一个归并排序操作才能开始。与此同时,前面各流水线级上的局部处理器在完成本流水线级上的归并排序操作后使处于无事可做的状态。根据本实施例,当第一流水线级上的局部处理器通过将一串已完成排序的记录输出于下一流水线级而完成一次归并排序操作时,第二步归并排序中的存储操作级可开始。换言之,每一流水线级上的局部处理器通过排序结束信号向排序控制器通报其在本流水线级上的归并排序操作的结束。排序控制器一接到该排序结束信号使通过排序数据输入总线33将数据传至该局部处理器供存储。这意味着局部处理器可在第一步归并排序中刚完成一归并排序操作后使存储数据供下一步归并排序用。这就通过减少空闲时间而节省了时间。
因此,本实施例所述的本发明的排序***和方法具有将第二步归并排序中的存储操作提前的特点,从而可对较高速排序作出贡献。
实施例7
再据第五实施例,本发明的排序***和方法可通过将图14(c)所示的步骤3中的流水线归并排序操作与图14(b)所示的步骤2中的存储操作并行而提早步骤3中的流水线归并排序操作。在步骤2中的存储操作与步骤3的归并排序操作之间应有潜在的空闲时间。根据本实施例,排序控制器101可在步骤2中的存储操作当中便传递记录供步骤3的归并排序操作用。每一局部处理器可在收到来自一流水线级的记录串及响应的局部存储器收到一个记录之后便开始执行归并排序操作。因此,就改善排序速度来讲,上述流水线归并排序操作对本实施例的步骤3是优化的。这也可因减少了空闲时间而节省了时间。
因此,本实施例所述的本发明排序***和方法具有起因子提前进行归并排序操作并行操作的特点,从而提高了排序速度。
实施例8
再据前述若干实施例,在不改变2n个记录这一总存储容量的前提下,本发明的排序***和方法可配以经改进的存储器或若干局部存储器。可能的改进之处便是给一台存储器配以n/2(n为偶数)个流水线级。在此情况下,每一流水线级具有2n-1+1个记录的存储容量,并且应访问n台局部处理器中的两台。
此设想对多排序器***也适用,如两串联的硬件归并排序器。一可能的改进之处就是给两排序器的联合存储器配以n个流水线级。在此情况下,每一流水线级具有2n-1+1个记录的存储容量,并且应访问两排序器的2n台局部处理器中的两台。
Claims (14)
1.一种用于对多个记录进行排序的排序***,包括:
一个硬件归并排序器,它又包括:
多个串行级联的局部处理器,其中所述每一局部处理器接收由前一局部处理器输出的记录,将其排序成已排序数据串,并将所述已排序数据串输出至下一局部处理器,这样,所述硬件归并排序器在第一次通过该硬件归并排序器进行的排序中便产生至少一条已初次排序的数据串;
存储容量为2n个记录且含多个局部存储器的存储器;
多个处于各局部存储器和相应局部处理器之间并与两者耦合的选择器,以便在所述第一次排序中将多个局部存储器与多个局部处理器耦合,并在第二次排序时,使上述多个局部存储器与多个局部处理器中的一个耦合;和
一台控制所述局部处理器和选择器的控制器,所述硬件归并排序器在所述第一次排序中产生第一和第二条各含N个记录的已排序数据串,而在所述第二次排序中产生一条含2N个记录的数据串,其中N≤2n,n为整数。
2,根据权利要求1所述的排序***,其特征在于所述多个局部存储器包括至少存储容量各为2n-1个数据的二个局部存储器,且所述选择器在上述第二次排序中使所述两个局部存储器与所述一个局部处理器耦合。
3.根据权利要求1或2所述的排序***,其特征在于还包括一耦合于所述控制器和所述多个选择器之间的一条存储总线,用以将所述第一和第二条已排序数据串中的一条从所述控制器传至所述局部存储器以便供所述第二次排序用。
4.根据权利要求1所述的排序***,其特征在于所述第一和第二条已排序数据串中的一条当所述第一次排序还在进行时便被存储入所述局部存储器。
5.根据权利要求1所述的排序***,其特征在于所述每一局部存储器具有2n-1+1个数据的存储容量且由所述局部处理器中的两台来访问。
6.根据权利要求1所述的排序***,还包括置于每一相关组局部处理器和控制器之间的排序结束信号线,以便每一相关处理器在已完成第一次排序时通知控制器及控制器可以将两条经初次排序的数据串中的一条的一部分存入相关局部存储器。
7.根据权利要求4所述的排序***,其特征在于每一局部处理器一旦收到一串来自前一局部处理器的已排序记录及所述两条经初次排序的数据串中的一条被存入相关的局部存储器时便开始进行所述第二次排序。
8.根据权利要求1所述的排序***,还包括另一个具有相同的所述局部处理器,所述存储器和所述选择器的硬件归并排序器,并且其中所述控制器控制所述局部处理器,所述选择器和另一个硬件归并排序器,以便将多个记录在所述第一次排序中排序成四条各含N个记录的排序数据串,再将所述四条已排序数据串在所述第二次排序中排序成两条各含2N个记录的已排序数据串,最后又将所述两条已排序数据串在第三次排序中排序成一条含4N个记录的已排序数据串。
9.根据权利要求8所述的排序***,还包括一耦合于所述控制器和所述多个选择器之间的存储总线,用以将所述四条经第一次排序的数据串中的两条自所述控制器传至所述局部存储器供上述第二次排序用。
10.根据权利要求8所述的排序***,其特征在于所述四条经第一次排序的数据串中的一条当所述第一次排序还在进行当中时便被存入每个排序器单元的所述局部存储器中供所述第二次排序用。
11.根据权利要求8所述的排序***,其特征在于所述局部存储器,其每一台具有2n-1+1个记录的存储容量且由所述每个硬件归并排序器单元中的所述局部处理器中的两台来访问。
12.一种使用硬件归并排序器对多个记录进行排序的方法,该排序器包括多个局部处理器、多个局部存储器和多个选择器,每个选择器耦合于并位于该多个局部存储器的一个和一相应局部处理器之间,用来在第一步排序中使局部存储器每一个与相应的局部处理器耦合,而在第二步排序中使上述多个局部存储器与一个局部处理器耦合,该方法包括下述步骤:
(A)在所述第一步排序中使用所述每一局部处理器和所述每一局部存储器将N个记录排序成第一条已排序数据串,其中N≤2n,n为整数;
(B)在所述第一步排序中将另外N个记录排序成第二条已排序数据串;
(C)在所述第二步排序中将所述第一和第二条已排序数据串中的一条存入所述多个存储器;和
(D)将所述第一和第二条已排序数据串的另一条与所述已存储的已排序数据串进行排序以便在所述第二步排序中生成一条含2N个记录的已排序数据串。
13.根据权利要求12所述的排序方法,包括至少两台硬件归并排序器,所述每台硬件归并排序器还包括多个在第三步排序中用于连接所述硬件归并排序器单元的多个局部处理器串行级联的输入输出总线选择器,本方法包括下述步骤:
(E)利用第二个硬件归并排序器单元和自(A)至(D)各步骤将第二批2N个记录排序成第二条含2N个记录的已排序数据串;
(F)在所述第三步排序中将所述第一和第二条含2N个记录的已排序数据串中的一条存入上述第一和第二个硬件归并排序器单元中的多个上述局部存储器;和
(G)将第一和第二条各含2N个记录的数据串中的另一条和存储的2N个记录的数据串进行排序以便在所述第三步排序中生成一条含4N个记录的已排序数据串。
14.根据权利要求12或13所述的方法,其特征在于所述第一和第二条已排序数据串中的一条的存储步骤当上述将另外N个记录排序成第二条数据串的操作还在进行时便已开始。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5173167A JPH0728624A (ja) | 1993-07-13 | 1993-07-13 | ソート装置及びソート方法 |
JP173167/93 | 1993-07-13 | ||
JP173167/1993 | 1993-07-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1105134A CN1105134A (zh) | 1995-07-12 |
CN1069423C true CN1069423C (zh) | 2001-08-08 |
Family
ID=15955348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN94108249A Expired - Fee Related CN1069423C (zh) | 1993-07-13 | 1994-07-13 | 排序***和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5535384A (zh) |
JP (1) | JPH0728624A (zh) |
CN (1) | CN1069423C (zh) |
GB (1) | GB2280523B (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3352786B2 (ja) * | 1993-11-01 | 2002-12-03 | 三菱電機株式会社 | プロセッサ回路 |
US5727200A (en) * | 1994-03-07 | 1998-03-10 | Nippon Steel Corporation | Parallel merge sorting apparatus with an accelerated section |
JP3518034B2 (ja) * | 1995-03-30 | 2004-04-12 | 三菱電機株式会社 | ソート方法並びにソート処理装置並びにデータ処理装置 |
US5898856A (en) * | 1995-09-15 | 1999-04-27 | Intel Corporation | Method and apparatus for automatically detecting a selected cache type |
US5799210A (en) * | 1996-04-18 | 1998-08-25 | Oracle Corporation | Method for allocating either private or shared buffer memory for storing data from sort operations in accordance with an assigned value or threshold value |
DE19625869C2 (de) * | 1996-06-27 | 2001-01-04 | Fraunhofer Ges Forschung | Verfahren zum parallelen Zusammenfassen von N Datensätzen |
US6271693B1 (en) * | 1997-12-12 | 2001-08-07 | United Microelectronics Corp. | Multi-function switched-current magnitude sorter |
US6377258B1 (en) * | 1998-04-20 | 2002-04-23 | Broadcom Corporation | Method and system for providing a hardware sort in a graphics system |
US6556993B2 (en) * | 2000-05-30 | 2003-04-29 | Broadcom Corporation | Method and system for providing a hardware sort in a graphics system |
US6182071B1 (en) | 1998-05-20 | 2001-01-30 | Mitsubishi Denki Kabushiki Kaisha | Sorting and summing record data including generated sum record with sort level key |
US6711558B1 (en) * | 2000-04-07 | 2004-03-23 | Washington University | Associative database scanning and information retrieval |
JP2005078596A (ja) * | 2003-09-03 | 2005-03-24 | Hitachi Ltd | データ転送装置の制御方法、データ転送装置、チャネル制御装置、及び記憶デバイス制御装置 |
WO2006096324A2 (en) | 2005-03-03 | 2006-09-14 | Washington University | Method and apparatus for performing biosequence similarity searching |
US7797326B2 (en) * | 2006-04-18 | 2010-09-14 | International Business Machines Corporation | Method of obtaining data samples from a data stream and of estimating the sortedness of the data stream based on the samples |
US7921046B2 (en) | 2006-06-19 | 2011-04-05 | Exegy Incorporated | High speed processing of financial information using FPGA devices |
US8326819B2 (en) | 2006-11-13 | 2012-12-04 | Exegy Incorporated | Method and system for high performance data metatagging and data indexing using coprocessors |
US7660793B2 (en) | 2006-11-13 | 2010-02-09 | Exegy Incorporated | Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors |
WO2009082852A1 (fr) * | 2007-12-28 | 2009-07-09 | Zte Corporation | Dispositif de tri de données pour traiter des données de communication |
CA3059606C (en) | 2008-12-15 | 2023-01-17 | Ip Reservoir, Llc | Method and apparatus for high-speed processing of financial market depth data |
US8190943B2 (en) * | 2009-03-13 | 2012-05-29 | Massachusetts Institute Of Technology | Systolic merge sorter |
JP5960639B2 (ja) * | 2013-04-17 | 2016-08-02 | 日本電信電話株式会社 | 情報処理装置および情報処理方法 |
TWI511038B (zh) | 2013-06-19 | 2015-12-01 | Univ Nat Chiao Tung | 可重組之排序裝置與排序方法 |
US10936283B2 (en) * | 2017-11-30 | 2021-03-02 | International Business Machines Corporation | Buffer size optimization in a hierarchical structure |
US11354094B2 (en) | 2017-11-30 | 2022-06-07 | International Business Machines Corporation | Hierarchical sort/merge structure using a request pipe |
US10896022B2 (en) | 2017-11-30 | 2021-01-19 | International Business Machines Corporation | Sorting using pipelined compare units |
US11048475B2 (en) | 2017-11-30 | 2021-06-29 | International Business Machines Corporation | Multi-cycle key compares for keys and records of variable length |
CN111949241B (zh) * | 2019-05-15 | 2024-04-12 | 瑞昱半导体股份有限公司 | 排序装置 |
US20240036818A1 (en) * | 2022-07-27 | 2024-02-01 | Untether Ai Corporation | Computational memory for sorting multiple data streams in parallel |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61243530A (ja) * | 1985-04-19 | 1986-10-29 | Nippon Telegr & Teleph Corp <Ntt> | デ−タ整列方法 |
JPS6386043A (ja) * | 1986-09-30 | 1988-04-16 | Mitsubishi Electric Corp | ソ−ト機構を有するメモリ装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4090249A (en) * | 1976-11-26 | 1978-05-16 | International Business Machines Corporation | Apparatus for sorting records in overlap relation with record loading and extraction |
US4110837A (en) * | 1976-12-30 | 1978-08-29 | International Business Machines Corporation | Apparatus for the sorting of records overlapped with loading and unloading of records into a storage apparatus |
US5146590A (en) * | 1989-01-13 | 1992-09-08 | International Business Machines Corporation | Method for sorting using approximate key distribution in a distributed system |
US5179699A (en) * | 1989-01-13 | 1993-01-12 | International Business Machines Corporation | Partitioning of sorted lists for multiprocessors sort and merge |
US5307485A (en) * | 1991-05-31 | 1994-04-26 | International Business Machines Corporation | Method and apparatus for merging sorted lists in a multiprocessor shared memory system |
-
1993
- 1993-07-13 JP JP5173167A patent/JPH0728624A/ja active Pending
-
1994
- 1994-06-08 US US08/255,375 patent/US5535384A/en not_active Expired - Fee Related
- 1994-06-15 GB GB9412003A patent/GB2280523B/en not_active Expired - Fee Related
- 1994-07-13 CN CN94108249A patent/CN1069423C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61243530A (ja) * | 1985-04-19 | 1986-10-29 | Nippon Telegr & Teleph Corp <Ntt> | デ−タ整列方法 |
JPS6386043A (ja) * | 1986-09-30 | 1988-04-16 | Mitsubishi Electric Corp | ソ−ト機構を有するメモリ装置 |
Also Published As
Publication number | Publication date |
---|---|
GB2280523A (en) | 1995-02-01 |
JPH0728624A (ja) | 1995-01-31 |
US5535384A (en) | 1996-07-09 |
CN1105134A (zh) | 1995-07-12 |
GB2280523B (en) | 1998-01-07 |
GB9412003D0 (en) | 1994-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1069423C (zh) | 排序***和方法 | |
CN1029047C (zh) | 具有把组块脉冲式操作转换为流水线操作装置的数据处理*** | |
CN1204626C (zh) | 用于与时钟信号的边缘同步地工作的半导体存储器件 | |
US8364861B2 (en) | Asynchronous ID generation | |
CN1229741C (zh) | 借助并行定序器的数字电路实现 | |
CN1111815C (zh) | 在数据库中存储元素和寻找这样存储的元素的方法 | |
CN1008017B (zh) | 并行处理计算机 | |
CN1113365C (zh) | 实现数据的读修改写操作的方法和电路以及半导体存储器 | |
CN1125006A (zh) | 动态互连于一个动态逻辑内核的现场可编程逻辑设备 | |
CN1530962A (zh) | 具有刷新地址生成电路的半导体存储器件 | |
CN101069211A (zh) | 分页存储器及其智能存储器区段的交错寻址的多次缩略的方法和装置 | |
CN1212400A (zh) | 数据处理装置 | |
CN100341009C (zh) | 在管线微处理器使用卷标以执行结合写入的装置及方法 | |
CN1801397A (zh) | 半导体存储器件 | |
CN86100419A (zh) | 串进存取半导体存储器 | |
CN1133454A (zh) | 半导体集成电路 | |
CN101053158A (zh) | 可重构半导体集成电路及其处理分配方法 | |
CN86106826A (zh) | 数据处理*** | |
CN1390331A (zh) | 基于知识产权的大型集成电路设计***及设计方法 | |
CN1199120C (zh) | 具有共享一个共用存储器的多个处理器的装置 | |
CN1435758A (zh) | 存储装置、数据处理方法以及数据处理程序 | |
CN1691061A (zh) | 数据存储设备和控制设备,数据存储控制方法及程序 | |
CN1956005A (zh) | 数据存取装置和方法 | |
CN100340971C (zh) | 运算装置 | |
CN1146919C (zh) | 具有替换编程电路的半导体存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |