一种硬件实现hash链表的装置的制造方法

文档序号:9375488阅读:685来源:国知局
一种硬件实现hash链表的装置的制造方法
【技术领域】
[0001 ] 本发明涉及数据的查找压缩领域,尤其涉及一种硬件实现hash链表的装置。
【背景技术】
[0002]查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算。查找效率依赖于查找功能的实现方式以及查找过程中所进行的比较次数。理想情况下是不经过任何比较,一次存取便能得到所需查找的数据。哈希表作为一种根据关键字直接进行访问的数据结构被广泛应用于各种查找中。然而,很难找到一个哈希函数能保证对任意不同的关键字都产生不同的哈希值。因此,寻找高效解决冲突的方法从而降低冲突时执行查询的查找长度,缩短查询响应时间成了关注的焦点。
[0003]哈希链表的应用能够提高查找效率,哈希链表是一种数据结构,表头和节点的数据结构不同,这样在进行表头或者节点的删除插入以及遍历操作时可以采用统一操作。
[0004]目前实现hash链表的方式主要是利用C语言等高级语言来进行软件实现,硬件实现与软件实现相比,有更快的速度、更高的效率以及更好的稳定性。

【发明内容】

[0005]本发明所要解决的技术问题在于克服现有技术的不足,提供一种硬件实现哈希链表的装置,可以实现哈希链表的插入删除与遍历查找,具有更快的速度、更高的效率和更好的稳定性。
[0006]本发明具体采用以下技术方案解决上述技术问题:
一种硬件实现hash链表的装置,包括FPGA控制逻辑部分、DRAMl表头存储部分和DRAM2节点数据存储部分;
所述FPGA控制逻辑部分,用于关键码值的接收、待插入的节点或表头数据的接收、哈希值的运算处理、表头或节点的插入删除与遍历读写控制、随机存储芯片DRAMl的读写控制、随机存储芯片DRAM2的读写控制和表头或节点数据的输出控制;其包括串口接收模块、串口发送模块、波特率控制模块、顶层控制模块、哈希模块、DRAM I控制模块以及DRAM2控制丰旲块;
所述DRAMl表头存储部分,用于对将关键码值哈希运算后得到的哈希值和与表头匹配的首节点地址进行存储,配合DRAMl控制模块的读写操作;其包括一片随机存储芯片DRAMl ;
所述DRAM2节点数据存储部分,用于将哈希链表的各个节点数据进行存储,配合DRAM2控制模块的读写操作;其包括一片随机存储芯片DRAM2 ;
FPGA控制逻辑部分通过片内总线分别与随机存储芯片DRAMl、随机存储芯片DRAM2相连,实现地址与数据总线的分时复用,同一个总线周期内两个DRAM中仅有一个被读写;在FPGA内部,串口接收模块与串口发送模块分别与波特率模块实现双向通信,以控制数据的接收与发送;顶层控制模块与串口发送模块实现双向通信,以传递要输出的数据;顶层控制模块与哈希模块实现双向通信,以接收经过哈希模块对关键码值进行计算得到的哈希值;顶层控制模块与DRAMl控制模块实现双向通信,以控制随机存储芯片DRAMl的读写,同时协调与DRAM2控制模块工作的顺序;顶层控制模块与DRAM2控制模块实现双向通信,以控制随机存储芯片DRAM2的读写,同时协调与DRAMl控制模块的工作顺序。
[0007]作为其中一个优选方案:
所述串口接收模块是一种控制串口接口接收数据的硬件逻辑,用来接收外部输入的关键码值和数据并将此关键码值进行处理后传送给哈希模块;
所述波特率控制模块是一种产生波特率的硬件逻辑,其作用是控制数据传输的速率;所述串口发送模块是一种控制串口接口发送数据的硬件逻辑,其作用是将顶层控制模块传送过来的数据经过串口发送到上位机。
[0008]作为其中另一个优选方案,所述哈希模块是一种实现简单哈希函数运算的硬件逻辑,用来对关键码值进行哈希运算得到哈希值,然后将此哈希值和关键码值传送给顶层控制模块。
[0009]作为本发明再一优选方案:
所述顶层控制模块是由有限状态机实现的硬件逻辑,用于协调DRAMl控制模块与DRAM2控制模块的工作,接收处理哈希模块传送的哈希值,根据关键码值的某些位来判断数据处理模式,根据DRAMl控制模块或DRAM2控制模块的反馈信息来选择下一周期要读写的存储芯片;
所述DRAMl控制模块是由有限状态机实现的硬件逻辑,用于控制DRAMl芯片的读写操作,并受顶层控制模块的管理,向顶层模块传送反馈信息;
所述DRAM2控制模块是由有限状态机实现的硬件逻辑,用于控制DRAM2芯片的读写操作,并受顶层控制模块的管理,向顶层模块传送反馈信息。
[0010]与现有技术相比较,本发明采用了硬件描述语言来描述所需各项功能,并利用两片DRAM芯片分别存储表头及节点数据,利用FPGA进行逻辑控制。FPGA可选型较丰富,可根据hash链表的规模要求来选择合适的型号。FPGA与两片DRAM芯片之间也可以实现快速通信,提高存取速度,具有较强的灵活性。本发明专利方案中,数据输入输出处理完全由硬件管理,相较于软件,速度更快,效率更高,存取规模可以更大。
【附图说明】
[0011]图1为本发明一种硬件实现hash链表的装置的一种优选结构;
图2为本发明一种硬件实现hash链表的装置数据接收的基本处理流程;
图3为本发明一种硬件实现hash链表的装置数据发送的基本处理流程;
图4为本发明一种硬件实现hash链表的装置对于节点插入的基本处理流程;
图5为本发明一种硬件实现hash链表的装置对于节点删除的基本处理流程;
图6为本发明一种硬件实现hash链表的装置对于遍历查找的基本处理流程。
【具体实施方式】
[0012]下面结合附图对本发明的技术方案进行详细说明:
图1显示了本发明一种硬件实现hash链表的装置的一个优选实施例的基本结构。该硬件实现hash链表的装置包括FPGA控制逻辑部分、DRAMl表头存储部分和DRAM2节点数据存储部分;其中,FPGA控制逻辑部分包括串口接收模块、波特率控制模块、串口发送模块、哈希模块、顶层控制模块、DRAMl控制模块和DRAM2控制模块;DRAM1表头存储部分包括一片内存芯片DRAMl ;DRAM2节点数据存储部分包括一片内存芯片DRAM2 ;
串口接收模块、波特率控制模块和串口发送模块是用以控制串行通信接口 UART进行数据的接收与发送,利用硬件描述语言来编写实现并进行封装处理,串口接收模块通过哈希模块与顶层控制模块双向通信,以实现数据接收功能,串口发送模块直接与顶层控制模块双向通信,以实现数据发送功能。波特率模块用于控制波特率的产生,并与串口发送模块和串口接收模块双向通信,以控制数据接收与发送的速率。
[0013]哈希模块用于实现哈希运算,利用硬件描述语言来编写实现并进行封装处理,在串口接收模块接收到外部传入的关键码值后,再传送到哈希模块,计算出哈希值,并将哈希值和关键码值传送给顶层控制模块,哈希模块与顶层控制模块双向通信。
[0014]顶层控制模块分别与哈希模块、DRAMl控制模块和DRAM2控制模块实现双向通信,其作用在于,接收哈希模块传送的哈希值进行分析处理,选择数据处理模式(删除、插入或遍历查找),协调控制DRAMl控制模块和DRAM2控制模块的工作顺序,保证同一时钟周期两片DRAM芯片仅有一个在读写。
[0015]DRAMl控制模块用于控制DRAMl芯片的读写操作,并将反馈信息传送给顶层模块;DRAM2控制模块用于控制DRA
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1