CN104199895B - 一种基于双体内存系统的大数据实时排序处理器 - Google Patents

一种基于双体内存系统的大数据实时排序处理器 Download PDF

Info

Publication number
CN104199895B
CN104199895B CN201410423394.1A CN201410423394A CN104199895B CN 104199895 B CN104199895 B CN 104199895B CN 201410423394 A CN201410423394 A CN 201410423394A CN 104199895 B CN104199895 B CN 104199895B
Authority
CN
China
Prior art keywords
internal memory
data
address
memory body
binary
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
Application number
CN201410423394.1A
Other languages
English (en)
Other versions
CN104199895A (zh
Inventor
唐国良
王红霞
刘宁
王燕玲
张银丽
朱红磊
李瑞昌
赵春霞
姜姗
杨枫
宋学坤
王林景
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Henan University of Traditional Chinese Medicine HUTCM
Original Assignee
Henan University of Traditional Chinese Medicine HUTCM
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Henan University of Traditional Chinese Medicine HUTCM filed Critical Henan University of Traditional Chinese Medicine HUTCM
Priority to CN201410423394.1A priority Critical patent/CN104199895B/zh
Publication of CN104199895A publication Critical patent/CN104199895A/zh
Application granted granted Critical
Publication of CN104199895B publication Critical patent/CN104199895B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及一种基于双体内存系统的大数据实时排序处理器,可有效解决现有排序算法时间复杂度、空间复杂度高的问题,技术方案是,由Intel 64位或AMD 64位或Intel IA64架构的CPU和双体内存系统组成,CPU和双体内存系统间通过数据总线、地址总线和控制总线连接,本发明采用两个独立内存体之间在一个内存读写周期内依次双向批量传输相对应地址的存储单元的数据的方法,来改进现有排序算法的速度瓶颈,保证了本发明的方法在n个元素的有序表中检索任一数据时的算法时间复杂度均为O(logn)、排序和检索算法的空间复杂度为O(n),能够保证海量数据的排序和检索响应的实时性、以及在本方法的基础上保证大数据的增加、删除、修改操作的实时性,易操作,速度快。

Description

一种基于双体内存系统的大数据实时排序处理器
技术领域
本发明涉及一种基于双体内存系统的大数据实时排序处理器及采用基于双体内存系统的大数据实时排序处理器的实时排序检索及增删改的方法。
背景技术
目前,计算机数据处理领域使用的排序算法,由于受到现有的线性单体内存结构的制约,各种排序算法在海量和大数据面前都有时间复杂度高、空间复杂度高、响应实时性差的缺点。如插入排序算法的速度瓶颈是找到要插入的存储位置后,最坏情况下要将所有的元素依次后移,这就使得插入排序算法的时间效率很低;平衡二叉搜索树在排序时由于其结构的特点要维持各结点间的链接指针,同样要增加空间复杂度和算法本身的复杂性。如何解决现有排序算法时间复杂度、空间复杂度高的问题,是本领域技术人员困扰已久的问题。
发明内容
针对上述情况,为克服现有技术之缺陷,本发明之目的就是提供一种基于双体内存系统的大数据实时排序处理器,可有效解决现有排序算法时间复杂度、空间复杂度高的问题。
本发明解决的技术方案是,一种基于双体内存系统的大数据实时排序处理器,由Intel 64位或AMD 64位或Intel IA64架构的CPU和双体内存系统组成,CPU和双体内存系统间通过数据总线、地址总线和控制总线连接;
所述的双体内存系统由内存体1和内存体2组成,内存体1和内存体2分别都有n+1个存储单元,这些存储单元的地址编号为0,1,2,…,n;
内存体1的i号地址存储单元和内存体2的i号地址存储单元之间在批量传输控制信号线CE的控制下由单向数据线分别联通,i=0,1,2,3,…n;
内存体2的i号地址存储单元和内存体1的i+1号地址存储单元之间在批量传输控制信号线CI的控制下由单向数据线分别联通;
内存体2的i+1号地址存储单元和内存体1的i号地址存储单元之间在批量传输控制信号线CD的控制下由单向数据线分别联通;
双体内存系统中内存体1的各存储单元的数据并行传输到内存体2的相同地址的存储单元中的实现方法是:内存体1的i号地址存储单元和内存体2的i号地址存储单元的数据线通过三态门连接,在批量传输控制信号线CE的统一控制下,实现将内存体1的各存储单元的数据在一个内存读写周期内并行传输到内存体2的同一地址的存储单元中;
双体内存系统中内存体2的地址范围是[i,i+m]的连续多个存储单元的数据并行传输到内存体1的相应地址范围是[i+1,i+m+1]的各存储单元中的实现方法是:内存体2的k号地址存储单元和内存体1的k+1号地址存储单元的单向数据线通过三态门连接,在批量传输控制信号线CI的统一控制下,实现将内存体2的地址范围[i,i+m]的各存储单元的数据在一个内存读写周期内并行传输到内存体1的地址范围[i+1,i+m+1]的各存储单元中;其中,m为非负整数;k=i,i+1,…,i+m;
双体内存系统中内存体2的地址范围是[i+1,i+m+1]的连续多个存储单元的数据并行传输到内存体1的相应地址范围是[i,i+m]的各存储单元中的实现方法是:内存体2的k+1号地址存储单元和内存体1的k号地址存储单元的单向数据线通过三态门连接,在批量传输控制信号线CD的统一控制下,实现将内存体2的地址范围[i+1,i+m+1]的各存储单元的数据在一个内存读写周期内并行传输到内存体1的地址范围[i,i+m]的各存储单元中;其中,m为非负整数;k=i,i+1,…,i+m。
一种采用基于双体内存系统的大数据实时排序处理器的实时排序检索及增删改的方法,包括以下步骤:
1)排序算法所用的有序数据表SeqList=(a0, a1, a2,……,aL)在内存体1中采用顺序存储结构存储,数据以升序顺序自低地址向高地址存储;a0, a1, a2,……,aL表示有序数据表SeqList中的各个数据元素,这里a0≤a1≤a2≤……≤aL ,即a0, a1, a2,……,aL单调增加;该有序数据表SeqList的长度Len=L+1;其中,L为非负整数;
2)新插入数据c到内存体1中的有序数据表SeqList时,首先采用二分查找算法,找到c元素的插入点存储单元的地址mid;
3)在批量传输控制信号线CE的统一控制下,实现将内存体1的各存储单元的数据在一个内存读写周期内并行传输到内存体2的同一地址的存储单元中;
4)在批量传输控制信号线CI的统一控制下,实现将内存体2的地址范围是[mid,mid+m]的各存储单元的数据在一个内存读写周期内并行传输到内存体1的地址范围是[mid+1, mid+m+1]的各存储单元中;其中,m=L-mid;
5)在CPU的写内存单元指令控制下,将数据c插入到内存体1的地址为mid的存储单元中;
6)当有新数据插入有序数据表时,重复利用步骤2)至5)的操作,即可完成新数据的插入排序;
7)当需要在n个元素的有序数据表中检索任一数据时,利用二分查找算法即可,保证该查找算法的时间复杂度为O(logn);
8)当需要在n个元素的有序数据表中修改任一数据时,首先利用二分查找算法找到该数据所在的存储单元,按要求修改即可,保证该修改算法的时间复杂度为O(logn);
9)当需要在n个元素的有序数据表中删除任一数据时,首先利用二分查找算法找到该数据所在的存储单元的地址mid,利用权利要求1所述的“双体内存系统中内存体1的各存储单元的数据并行传输到内存体2的相同地址的存储单元中的实现方法”,在批量传输控制信号线CE的统一控制下,实现将内存体1的各存储单元的数据在一个内存读写周期内并行传输到内存体2的同一地址的存储单元中;然后,按照权利要求1所述的“双体内存系统中内存体2的地址范围是[i+1,i+m+1]的连续多个存储单元的数据并行传输到内存体1的相应地址范围是[i,i+m]的各存储单元中的实现方法”,在批量传输控制信号线CD的统一控制下,实现将内存体2的地址范围[mid+1,Len-1]的各存储单元的数据在一个内存读写周期内并行传输到内存体1的地址范围[mid,Len-2]的各存储单元中,同时,将有序数据表SeqList的长度Len减1;该删除算法的时间复杂度为O(logn)。
本发明采用两个独立内存体之间在一个内存读写周期内依次双向批量传输相对应地址的存储单元的数据的方法,来改进现有排序算法的速度瓶颈,使得在n个有序数据中插入1个新数据时需要为其腾出存储单元而后移数据的时间复杂度为O(1),从而保证了本发明的方法在n个元素的有序表中检索任一数据时的算法时间复杂度均为O(logn)、排序和检索算法的空间复杂度为O(n),能够保证海量数据的排序和检索响应的实时性、以及在本方法的基础上保证大数据的增加、删除、修改操作的实时性,易操作,速度快,有良好的社会和经济效益。
附图说明
图1为本发明的双体内存系统的组成架构图,其中a为批量传输控制信号线CE连接示意图;b为批量传输控制信号线CI连接示意图;c为批量传输控制信号线CD连接示意图。
图2为本发明的内存体1到内存体2批量复制数据示意图。
图3为本发明的内存体2到内存体1批量复制数据前的示意图。
图4为本发明的内存体2的[1,n]各存储单元到内存体1的[0,n-1]各存储单元批量复制数据前的示意图。
图5为本发明的内存体2到内存体1批量复制数据后的示意图。
图6为本发明的新插入的数据c到内存体1中的有序数据表的示意图。
图7为本发明的控制内存体2的[i,i+m]各存储单元的数据并行传输到内存体1的[i+1,i+m+1]各存储单元的示意图。
图8为本发明的控制内存体2的[i+1,i+m+1]各存储单元的数据并行传输到内存体1的[i,i+m]各存储单元的示意图。
具体实施方式
以下结合附图对本发明的具体实施方式作进一步详细说明。
由图1-8给出,本发明由Intel 64位或AMD 64位或Intel IA64架构的CPU和双体内存系统组成,CPU和双体内存系统间通过数据总线、地址总线和控制总线连接;
所述的双体内存系统由内存体1和内存体2组成,内存体1和内存体2分别都有n+1个存储单元,这些存储单元的地址编号为0,1,2,…,n;
内存体1的i号地址存储单元和内存体2的i号地址存储单元之间在批量传输控制信号线CE的控制下由单向数据线分别联通,i=0,1,2,3,…n;
内存体2的i号地址存储单元和内存体1的i+1号地址存储单元之间在批量传输控制信号线CI的控制下由单向数据线分别联通;
内存体2的i+1号地址存储单元和内存体1的i号地址存储单元之间在批量传输控制信号线CD的控制下由单向数据线分别联通;
双体内存系统中内存体1的各存储单元的数据并行传输到内存体2的相同地址的存储单元中的实现方法是:内存体1的i号地址存储单元和内存体2的i号地址存储单元的数据线通过三态门连接,在批量传输控制信号线CE的统一控制下,实现将内存体1的各存储单元的数据在一个内存读写周期内并行传输到内存体2的同一地址的存储单元中;
双体内存系统中内存体2的地址范围是[i,i+m]的连续多个存储单元的数据并行传输到内存体1的相应地址范围是[i+1,i+m+1]的各存储单元中的实现方法是:内存体2的k号地址存储单元和内存体1的k+1号地址存储单元的单向数据线通过三态门连接,在批量传输控制信号线CI的统一控制下,实现将内存体2的地址范围[i,i+m]的各存储单元的数据在一个内存读写周期内并行传输到内存体1的地址范围[i+1,i+m+1]的各存储单元中;其中,m为非负整数;k=i,i+1,…,i+m;
双体内存系统中内存体2的地址范围是[i+1,i+m+1]的连续多个存储单元的数据并行传输到内存体1的相应地址范围是[i,i+m]的各存储单元中的实现方法是:内存体2的k+1号地址存储单元和内存体1的k号地址存储单元的单向数据线通过三态门连接,在批量传输控制信号线CD的统一控制下,实现将内存体2的地址范围[i+1,i+m+1]的各存储单元的数据在一个内存读写周期内并行传输到内存体1的地址范围[i,i+m]的各存储单元中;其中,m为非负整数;k=i,i+1,…,i+m。
所述的内存体1和内存体2均为线性编址的内存储器,由如型号为金士顿Kingston8GB DDR3 1333(KVR1333D3N9/8G)或金士顿16GB DDR3 1600 REG ECC(KVR16R11D4/16)的SDRAM同步动态随机存储器构成,不仅限于上述处列出的型号,凡是和此处列出的兼容的内存储器均可使用;所述的Intel 64位或AMD 64位或Intel IA64架构的CPU为市售产品,如型号为Intel Xeon X5670、Intel Xeon X7500、AMD Opteron 2435(6-Core) 、AMD Opteron6140( 8-Core )、AMD Opteron 6344或6348 (12-Core)、PowerXCell 8i的CPU,不仅限于上述处列出的架构,凡是和此处列出的兼容的CPU均可使用;
所述的批量传输控制信号线CE、批量传输控制信号线CI和批量传输控制信号线CD,均为双体内存系统中宽度为一位的信号线,其接受CPU发来的高电位/低电位控制信号,从而控制双体内存系统中内存体1和内存体2之间各对应存储单元间的一次性同时批量数据的传输;
所述的双体内存系统采用带电热插拔方式,使得数据量接近双内存体的容量时,可以带电热插来扩展内存体的容量,以保证排序处理器不因扩充内存容量而停机;
所述的双体内存系统也采用非易失性NVDIMM内存,通过电池或超级电容在断电后维持运行、转移数据,以保证内存中的数据在断电后不丢失;
所述的批量传输控制信号线CI和批量传输控制信号线CE在同一控制信号的控制下分段加电,以提高加到三态门控制端的电压的稳定性。
双体内存系统中内存体2的地址范围是[i,i+m]的连续多个存储单元的数据并行传输到内存体1的相应地址范围是[i+1,i+m+1]的各存储单元中的详细实现方法如图7所示。图7中,i取值为p+3,m取值为2,p为一非负整数。具体步骤如下:
1)初始时,Td1~Td5均置0,它们控制的三态门TSG1~TSG5处于高阻状态,使得内存体1和内存体2相应单元之间的数据线Data1~Data5均处于截止(不导通)状态;
2)T1~T5均置1,它们控制的三态门处于导通状态,使得控制线CI的信号能自上而下传输;
3)在内存体1中,因为新插入的数据c的内存单元地址为p+3,所以将T5置0,使其控制的三态门截止,从而截断控制线CI的信号向下传输;
4)Td3置1,从而使其控制的三态门TSG3导通,也使得TSG4、TSG5导通,使得内存体2的[p+3,p+5]单元的数据批量传输到右侧内存体1的[p+4,p+6]各对应单元中,实现内存体1中[p+3,p+5]地址单元的数据批量同时后移从而为新插入的数据腾出地址为p+3的存储单元。
双体内存系统中内存体2的地址范围是[i+1,i+m+1]的连续多个存储单元的数据并行传输到内存体1的相应地址范围是[i,i+m]的各存储单元中的详细实现方法如图8所示.这里i取值为p+3,m取值为1。具体步骤如下:
1)初始时,Td2~Td5均置0,它们控制的三态门TSGD2~TSGD5处于高阻状态,使得内存体1和内存体2相应单元之间的数据线Data2~Data5均处于截止(不导通)状态;
2)T1~T5均置1,它们控制的三态门处于导通状态,使得控制线CI的信号能自上而下传输;
3)在内存体1中,当前有序线性表的最后一个元素是e,其存储单元地址是Len-1(这里等于p+5),所以将T5置0,使其控制的三态门截止,从而截断控制线CD的信号向下传输;
4)在内存体1中,因为要删除的数据c的内存单元地址为p+3,Td4置1,从而使其控制的三态门TSGD4导通,也使得TSGD5导通,使得内存体2的[p+4,p+5]单元的数据批量传输到右侧内存体1的[p+3,p+4]各对应单元中,实现内存体1中[p+4,p+5]地址单元的数据批量同时前移从而实现删除原地址p+3的存储单元中的数据c,接着,须将当前线性有序表的长度Len减1。
一种采用基于双体内存系统的大数据实时排序处理器的实时排序检索及增删改的方法,包括以下步骤:
1)排序算法所用的有序数据表SeqList=(a0, a1, a2,……,aL)在内存体1中采用顺序存储结构存储,数据以升序顺序自低地址向高地址存储;a0, a1, a2,……,aL表示有序数据表SeqList中的各个数据元素,这里a0≤a1≤a2≤……≤aL ,即a0, a1, a2,……,aL单调增加;该有序数据表SeqList的长度Len=L+1;其中,L为非负整数;
2)新插入数据c到内存体1中的有序数据表SeqList时,首先采用二分查找算法,找到c元素的插入点存储单元的地址mid;
二分查找算法如下:
S1: low = 0。
S2: high = SeqList.Length – 1。
S3: mid = -1。
S4: 当high – low <= 1时,转S8执行。
S5: mid = ((low + high) - (low + high) % 2) / 2。
S6: 如果c > SeqList[mid],则low = mid + 1,否则 high = mid - 1;
S7:转S4执行;
S8:如果c <= SeqList[low],则mid = low;否则,如果c >= SeqList[high],则mid = high + 1,否则,mid = high。然后,结束,此时,所得到的mid的值就是c元素的插入点存储单元的地址。
3)在批量传输控制信号线CE的统一控制下,实现将内存体1的各存储单元的数据在一个内存读写周期内并行传输到内存体2的同一地址的存储单元中;
4)在批量传输控制信号线CI的统一控制下,实现将内存体2的地址范围是[mid,mid+m]的各存储单元的数据在一个内存读写周期内并行传输到内存体1的地址范围是[mid+1, mid+m+1]的各存储单元中;其中,m=L-mid;
5)在CPU的写内存单元指令控制下,将数据c插入到内存体1的地址为mid的存储单元中;
6)当有新数据插入有序数据表时,重复利用步骤2)至5)的操作,即可完成新数据的插入排序;
7)当需要检索任一数据时,利用二分查找算法即可,保证该查找算法的时间复杂度为O(logn);
8)当需要修改任一数据时,首先利用二分查找算法找到该数据所在的存储单元,按要求修改即可,保证该修改算法的时间复杂度为O(logn);
9)当需要删除任一数据时,首先利用二分查找算法找到该数据所在的存储单元的地址mid,利用权利要求1所述的“双体内存系统中内存体1的各存储单元的数据并行传输到内存体2的相同地址的存储单元中的实现方法”,在批量传输控制信号线CE的统一控制下,实现将内存体1的各存储单元的数据在一个内存读写周期内并行传输到内存体2的同一地址的存储单元中;然后,按照权利要求1所述的“双体内存系统中内存体2的地址范围是[i+1,i+m+1]的连续多个存储单元的数据并行传输到内存体1的相应地址范围是[i,i+m]的各存储单元中的实现方法”,在批量传输控制信号线CD的统一控制下,实现将内存体2的地址范围[mid+1,Len-1]的各存储单元的数据在一个内存读写周期内并行传输到内存体1的地址范围[mid,Len-2]的各存储单元中,同时,将有序数据表SeqList的长度Len减1;该删除算法的时间复杂度为O(logn)。
下面结合附图对本发明的优选实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
为了通过实施例来说明本发明的基于双体内存系统的大数据实时排序处理器,我们假定该实施例中所用到的有序数据表初始为空表(空表即是不含任何数据元素的表,空表的长度为零),下面以有序数据表中已有5个元素(a,b,d,e,f),现要插入新元素c为例,、再删除一个元素a,来说明本发明的具体实施方式。
本实施例基于双体内存系统的大数据实时排序处理器的实施步骤如下:
1)首先通过二分查找算法找到c元素的插入点存储单元的地址2。
2)如图2所示,将内存体1中地址为0至n之间的内存单元的数据在批量传输控制信号线CE为高电位信号的控制下传输到右侧内存单元2的相同地址的内存单元中。
3)在批量传输结束后,批量传输控制信号线CE恢复为低电位信号,使内存体1和内存体2各存储单元之间的数据线处于高阻状态,实现各存储单元之间的隔离。
4)如图3和图5所示,在下一个读写周期内,在批量传输控制信号线CI为高电位信号的控制下,将右侧内存体2中地址为2至4之间的内存单元的数据批量传输到左侧内存体1中地址为3至5之间的内存单元中,实现自插入点2后各存储单元的数据一次性后移1位,为新插入的数据c腾出了地址为2的存储单元。
5)在批量传输结束后,批量传输控制信号线CI恢复为低电位信号,使内存体1和内存体2各存储单元之间的数据线处于高阻状态,实现各存储单元之间的隔离。
6)如图6所示,将新数据c插入到地址为2的存储单元中,实现插入排序。排序后的结果如图6所示。
7)2100的海量有序数据中插入一个新数据最多比较100次即可找到其插入位置,而需要为新插入数据腾出存储单元的数据逐个依次后移的操作由于采用了本发明的双体内存实现了在一个内存读写周期内一次性批量后移,从而保证了在n个元素的有序数据表中插入一个新数据时的排序算法的时间复杂度为O(logn)。
8)当要删除元素a时,先通过二分查找算法找到a元素的存储单元的地址0,然后,如图2所示,将内存体1中地址为0至n之间的内存单元的数据在批量传输控制信号线CE为高电位信号的控制下传输到右侧内存单元2的相同地址的内存单元中;在批量传输结束后,批量传输控制信号线CE恢复为低电位信号,使内存体1和内存体2各存储单元之间的数据线处于高阻状态,实现各存储单元之间的隔离;
如图4所示,在下一个读写周期内,在批量传输控制信号线CD为高电位信号的控制下,将右侧内存体2中地址为1至n之间的各内存单元的数据批量传输到左侧内存体1中地址为0至n-1之间的各存单元中,实现自删除点0号地址存储单元起的各存储单元的数据一次性均前移1个存储单元,实现了对元素a的删除同时保持了剩余的数据之间有序;
在批量传输结束后,批量传输控制信号线CD恢复为低电位信号,使内存体1和内存体2各存储单元之间的数据线处于高阻状态,实现各存储单元之间的隔离。
与现有技术相比,本发明具有以下优点:
第一,由于本发明采用了双体内存系统的主存储器,彻底解决了目前计算机系统中所用的单体线性内存结构对功能的制约,解决了现有各排序算法的时间复杂度高、空间复杂度高以及响应不及时的缺点,使得数据规模为n的海量和大数据的排序复杂度为O(1)、检索的时间复杂度为O(logn)、空间复杂度为O(n),保证了海量数据排序和检索响应的实时性,可以用到所有需要对数据进行实时排序和检索应用的商用业务场合,应用范围广;
第二,基于本发明的排序处理器实现的检索方法,利用双体内存避免了平衡二叉搜索树必须使用指针来保存各结点之间链接关系的复杂性,更进一步使得本发明在大数据的排序、检索、增加、删除和修改等操作方面的算法更加简单且易于实现。
申请人要指出的是,以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和变化,在本质上与本申请技术方案相同,这些改进和变化仍应视为本发明的保护范围。

Claims (4)

1.一种基于双体内存系统的大数据实时排序处理器,其特征在于,由Intel 64位或AMD64位或Intel IA64架构的CPU和双体内存系统组成,CPU和双体内存系统间通过数据总线、地址总线和控制总线连接;
所述的双体内存系统由内存体1和内存体2组成,内存体1和内存体2分别都有n+1个存储单元,这些存储单元的地址编号为0,1,2,…,n;
内存体1的i号地址存储单元和内存体2的i号地址存储单元之间在批量传输控制信号线CE的控制下由单向数据线分别联通,i=0,1,2,3,…n;
内存体2的i号地址存储单元和内存体1的i+1号地址存储单元之间在批量传输控制信号线CI的控制下由单向数据线分别联通;
内存体2的i+1号地址存储单元和内存体1的i号地址存储单元之间在批量传输控制信号线CD的控制下由单向数据线分别联通;
双体内存系统中内存体1的各存储单元的数据并行传输到内存体2的相同地址的存储单元中的实现方法是:内存体1的i号地址存储单元和内存体2的i号地址存储单元的数据线通过三态门连接,在批量传输控制信号线CE的统一控制下,实现将内存体1的各存储单元的数据在一个内存读写周期内并行传输到内存体2的同一地址的存储单元中;
双体内存系统中内存体2的地址范围是[i,i+m]的连续多个存储单元的数据并行传输到内存体1的相应地址范围是[i+1,i+m+1]的各存储单元中的实现方法是:内存体2的k号地址存储单元和内存体1的k+1号地址存储单元的单向数据线通过三态门连接,在批量传输控制信号线CI的统一控制下,实现将内存体2的地址范围[i,i+m]的各存储单元的数据在一个内存读写周期内并行传输到内存体1的地址范围[i+1,i+m+1]的各存储单元中;其中,m为非负整数;k=i,i+1,…,i+m;
双体内存系统中内存体2的地址范围是[i+1,i+m+1]的连续多个存储单元的数据并行传输到内存体1的相应地址范围是[i,i+m]的各存储单元中的实现方法是:内存体2的k+1号地址存储单元和内存体1的k号地址存储单元的单向数据线通过三态门连接,在批量传输控制信号线CD的统一控制下,实现将内存体2的地址范围[i+1,i+m+1]的各存储单元的数据在一个内存读写周期内并行传输到内存体1的地址范围[i,i+m]的各存储单元中;其中,m为非负整数;k=i,i+1,…,i+m。
2.根据权利要求1所述的基于双体内存系统的大数据实时排序处理器,其特征在于,所述的内存体1和内存体2均为线性编址的内存储器。
3.根据权利要求1所述的基于双体内存系统的大数据实时排序处理器,其特征在于,所述的批量传输控制信号线CI和批量传输控制信号线CE在同一控制信号的控制下分段加电,以提高加到三态门控制端的电压的稳定性。
4.一种采用权利要求1所述的基于双体内存系统的大数据实时排序处理器的实时排序检索及增删改的方法,其特征在于,包括以下步骤:
1)排序算法所用的有序数据表SeqList=(a0, a1, a2,……,aL)在内存体1中采用顺序存储结构存储,数据以升序顺序自低地址向高地址存储;a0, a1, a2,……,aL表示有序数据表SeqList中的各个数据元素,这里a0≤a1≤a2≤……≤aL ,即a0, a1, a2,……,aL单调增加;该有序数据表SeqList的长度Len=L+1;其中,L为非负整数;
2)新插入数据c到内存体1中的有序数据表SeqList时,首先采用二分查找算法,找到c元素的插入点存储单元的地址mid;
3)在批量传输控制信号线CE的统一控制下,将内存体1中地址[0, L]单元中的数据元素并行复制到内存体2中地址[0, L]单元中,其中内存体1中地址[0, L]单元中的数据元素不变;
4)在批量传输控制信号线CI的统一控制下,利用内存体2中地址 [mid, mid+m]单元中的数据元素并行覆盖内存体1中地址 [mid+1, mid+m+1]单元中的数据元素;其中,m=L-mid;
5)在CPU的写内存单元指令控制下,将数据c插入到内存体1的地址为mid的存储单元中;
6)当有新数据插入有序数据表时,重复利用步骤2)至5)的操作,即可完成新数据的插入排序;
7)当需要在n个元素的有序数据表中检索任一数据时,利用二分查找算法即可,保证该查找算法的时间复杂度为O(logn);
8)当需要在n个元素的有序数据表中修改任一数据时,首先利用二分查找算法找到该数据所在的存储单元,按要求修改即可,保证该修改算法的时间复杂度为O(logn);
9)当需要在n个元素的有序数据表中删除任一数据时,首先利用二分查找算法找到该数据所在的存储单元的地址mid,利用权利要求1所述的“双体内存系统中内存体1的各存储单元的数据并行传输到内存体2的相同地址的存储单元中的实现方法”,在批量传输控制信号线CE的统一控制下,将内存体1中地址[0, L]单元中的数据元素并行复制到内存体2中地址[0, L]单元中,其中内存体1中地址[0, L]单元中的数据元素不变;然后,按照权利要求1所述的“双体内存系统中内存体2的地址范围是[i+1,i+m+1]的连续多个存储单元的数据并行传输到内存体1的相应地址范围是[i,i+m]的各存储单元中的实现方法”,在批量传输控制信号线CD的统一控制下,利用内存体2中地址[mid+1,Len-1]单元中的数据元素并行覆盖内存体1中地址 [mid,Len-2]单元中的数据元素,同时,将有序数据表SeqList的长度Len减1;该删除算法的时间复杂度为O(logn)。
CN201410423394.1A 2014-08-26 2014-08-26 一种基于双体内存系统的大数据实时排序处理器 Expired - Fee Related CN104199895B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410423394.1A CN104199895B (zh) 2014-08-26 2014-08-26 一种基于双体内存系统的大数据实时排序处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410423394.1A CN104199895B (zh) 2014-08-26 2014-08-26 一种基于双体内存系统的大数据实时排序处理器

Publications (2)

Publication Number Publication Date
CN104199895A CN104199895A (zh) 2014-12-10
CN104199895B true CN104199895B (zh) 2017-04-26

Family

ID=52085188

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410423394.1A Expired - Fee Related CN104199895B (zh) 2014-08-26 2014-08-26 一种基于双体内存系统的大数据实时排序处理器

Country Status (1)

Country Link
CN (1) CN104199895B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170044782A (ko) * 2015-10-15 2017-04-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN109635458B (zh) * 2018-12-17 2023-05-12 扬州环锐科技有限公司 一种通用物联网软网关的设计方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5504919A (en) * 1993-02-19 1996-04-02 National Science Council Sorter structure based on shiftable content memory
US5600819A (en) * 1993-03-12 1997-02-04 Hitachi, Ltd. Memory with sequential data transfer scheme
CN1790337A (zh) * 2005-12-27 2006-06-21 北京中星微电子有限公司 基于位的排序方法和装置
CN101162471A (zh) * 2007-11-15 2008-04-16 华为技术有限公司 一种插入排序的方法和装置
CN101739301A (zh) * 2009-12-09 2010-06-16 南京联创科技集团股份有限公司 Unix环境下进程间大量数据传输的方法
CN102999581A (zh) * 2012-11-14 2013-03-27 北京北纬点易信息技术有限公司 用于业务中大用户量数据访问及实时排序系统
CN203217553U (zh) * 2013-03-29 2013-09-25 江苏复芯物联网科技有限公司 归并排序结构

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5504919A (en) * 1993-02-19 1996-04-02 National Science Council Sorter structure based on shiftable content memory
US5600819A (en) * 1993-03-12 1997-02-04 Hitachi, Ltd. Memory with sequential data transfer scheme
CN1790337A (zh) * 2005-12-27 2006-06-21 北京中星微电子有限公司 基于位的排序方法和装置
CN101162471A (zh) * 2007-11-15 2008-04-16 华为技术有限公司 一种插入排序的方法和装置
CN101739301A (zh) * 2009-12-09 2010-06-16 南京联创科技集团股份有限公司 Unix环境下进程间大量数据传输的方法
CN102999581A (zh) * 2012-11-14 2013-03-27 北京北纬点易信息技术有限公司 用于业务中大用户量数据访问及实时排序系统
CN203217553U (zh) * 2013-03-29 2013-09-25 江苏复芯物联网科技有限公司 归并排序结构

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
"APU集显如何挑选内存搭档";王健;《电脑爱好者》;20140101;全文 *
"一种BCA结构形式的硬件排序电路模型";魏凤歧 等;《内蒙古大学学报(自然科学版)》;20011130;第31卷(第6期);全文 *
"五种排序算法的性能分析";淦艳 等;《重庆文理学院学报(自然科学版)》;20100630;第29卷(第3期);全文 *
"基于内存技术的比较排序算法";陈斌文 等;《西北工业大学学报》;20020830;第20卷(第3期);全文 *
"多插入排序算法族";路梅 等;《徐州师范大学学报(自然科学版)》;20030630;第21卷(第2期);全文 *
"超巨大规模的数值排序";童小明;《电脑编程技巧与维护》;20121231;全文 *

Also Published As

Publication number Publication date
CN104199895A (zh) 2014-12-10

Similar Documents

Publication Publication Date Title
CN109085997B (zh) 用于非易失性存储器的存储器高效持续键值储存
WO2018064962A1 (zh) 数据存储方法、电子设备和计算机非易失性存储介质
CN105103137B (zh) 数据存储系统的数据的压缩和格式化
US20180089074A1 (en) Techniques to Manage Key-Value Storage at a Memory or Storage Device
CN103345472B (zh) 基于有限二叉树布隆过滤器的去冗文件系统及其构建方法
CN103488709B (zh) 一种索引建立方法及系统、检索方法及系统
CN109923530A (zh) 混合式存储器中的数据重新定位
CN105320775A (zh) 数据的存取方法和装置
CN103514210B (zh) 小文件处理方法及装置
CN104238962B (zh) 向缓存中写入数据的方法及装置
CN103106158A (zh) 包括键-值存储的存储器系统
CN104503703B (zh) 缓存的处理方法和装置
CN107045531A (zh) 一种优化hdfs小文件存取的系统及方法
CN101533408A (zh) 一种海量数据的处理方法及处理装置
US20180188971A1 (en) Devices, systems, and methods having high data deduplication and low read latencies
TW201737092A (zh) 使用去重複dram系統演算法架構的去重複記憶體模組及其方法
CN110390979A (zh) 存储器控制器和具有存储器控制器的存储器系统
CN105745628B (zh) 一种将数据写入闪存装置的方法、闪存装置和存储系统
CN108052541B (zh) 基于多级页表目录结构的文件系统的实现、访问方法、终端
CN107844436B (zh) 一种缓存中脏数据的组织管理方法、系统及存储系统
CN104054071A (zh) 访问存储设备的方法和存储设备
CN103701469A (zh) 一种大规模图数据的压缩存储方法
CN104750432B (zh) 一种数据存储方法及装置
KR101438667B1 (ko) 비휘발성 램 기반의 b+ 트리 데이터베이스화 방법
CN108139882A (zh) 针对网络装置实施阶层分布式链接列表的系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170426

Termination date: 20200826

CF01 Termination of patent right due to non-payment of annual fee