CN114969022A - 链表搜索方法与链表搜索装置 - Google Patents

链表搜索方法与链表搜索装置 Download PDF

Info

Publication number
CN114969022A
CN114969022A CN202110217017.2A CN202110217017A CN114969022A CN 114969022 A CN114969022 A CN 114969022A CN 202110217017 A CN202110217017 A CN 202110217017A CN 114969022 A CN114969022 A CN 114969022A
Authority
CN
China
Prior art keywords
node
data
memory
field
address
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.)
Pending
Application number
CN202110217017.2A
Other languages
English (en)
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.)
Realtek Semiconductor Corp
Original Assignee
Realtek Semiconductor Corp
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 Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Priority to CN202110217017.2A priority Critical patent/CN114969022A/zh
Publication of CN114969022A publication Critical patent/CN114969022A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种链表搜索方法,用以利用高速缓冲存储器来搜索链表,包含以下步骤:将链表写入存储器中,链表包含第一与第二节点,第一与第二节点都具有数据与指针,且第一节点的指针指示第二节点的地址;将第一节点的数据写入高速缓冲存储器中的标签存储器中的第一字段,并将第一节点的地址写入高速缓冲存储器中的数据存储器中的第一字段,标签存储器的第一字段对应数据存储器的第一字段;将第二节点的数据写入标签存储器中的第二字段,并将第二节点的地址写入数据存储器中的第二字段,标签存储器的第二字段对应数据存储器的第二字段;及当根据第二节点的数据搜索其在链表中的地址时,在标签存储器中搜索第二节点的数据以直接得到第二节点的地址。

Description

链表搜索方法与链表搜索装置
技术领域
本发明是关于一种数据搜索方法,特别是关于一种链表搜索方法与链表搜索装置。
背景技术
链表包含了用以储存数据的多个节点,其中每个节点中除了储存数据外,还包含指针指示了下一个节点的地址。因链表具有上述特性,当增减节点时,链表仅需修改新增/删除的节点前后的节点中的指针,而不需要改变原先已存在的节点在存储器中的位置。因此,对于储存动态数据来说,链表具有方便的操作优势。然而,在寻找链表中的节点时,搜索的工作必须依照节点中指针所建立的列表一个一个向下搜索,当链表的节点越来越多时,上述搜索的操作不仅消耗处理器更多的运算时间且耗电,造成效能低下。因此,要如何快速地在链表中搜索到目标节点已成为本领域极欲解决的问题之一。
发明内容
本发明公开一种链表搜索方法,用以利用高速缓冲存储器来搜索链表。链表搜索方法包含以下步骤:将链表写入存储器中,链表包含第一节点与第二节点,第一节点与第二节点都具有数据与指针,且第一节点的指针指示第二节点的地址;将第一节点的数据写入高速缓冲存储器中的标签存储器中的第一字段,并将第一节点的地址写入高速缓冲存储器中的数据存储器中的第一字段,标签存储器的第一字段对应数据存储器的第一字段;将第二节点的数据写入标签存储器中的第二字段,并将第二节点的地址写入数据存储器中的第二字段,标签存储器的第二字段对应数据存储器的第二字段;以及当根据第二节点的数据搜索其在链表中的地址时,在标签存储器中搜索第二节点的数据以直接得到第二节点的地址。
本发明公开一种链表搜索装置,其包含存储器、处理器、高速缓冲存储器、写入单元及搜索单元。存储器用以储存链表,其中链表包含第一节点与第二节点。第一节点与第二节点都具有数据与指针,且第一节点的指针指示第二节点的地址。处理器耦接存储器,用以将链表写入存储器中。写入单元耦接处理器与高速缓冲存储器。高速缓冲存储器包含标签存储器与数据存储器。写入单元用以分别将第一节点的数据与第二节点的数据写入标签存储器中的第一字段与第二字段,并将第一节点的地址与第二节点的地址写入数据存储器中的第一字段与第二字段。搜索单元耦接处理器以及高速缓冲存储器,用以在当根据第二节点的数据搜索第二节点在链表中的地址时,在标签存储器中搜索第二节点的数据以直接得到第二节点的地址。
相较于已知的技术,本发明的链表搜索方法与装置利用处理器外的高速缓冲存储器来辅助链表的搜索操作,以提升整体的搜索速度。
附图说明
在阅读了下文实施方式以及附图时,能够最佳地理解本发明的多种方面。应注意到,根据本领域的标准操作习惯,图中的各种特征并未按比例绘制。事实上,为了能够清楚地进行描述,可能会刻意地放大或缩小某些特征的尺寸。
图1为本发明一些实施例中,链表搜索装置的示意图。
图2为本发明一些实施例中,链表在高速缓冲存储器中的示意图。
图3为本发明其他些实施例中,链表在高速缓冲存储器中的示意图。
图4为本发明一些实施例中,搜索单元的操作示意图。
图5为本发明另一些实施例中,搜索单元的操作示意图。
具体实施方式
图1为依据本发明一些实施例,链表搜索装置10的示意图。链表搜索装置10包含处理器100、存储器200、高速缓冲(Cache)存储器300、搜索单元400与写入单元500。如图1所示,存储器200、搜索单元400与写入单元500分别耦接处理器100,高速缓冲存储器300耦接搜索单元400与写入单元500。在一些实施例中,处理器100(例如中央处理器(centralprocessing unit,CPU))包含其他高速缓冲存储器。在一些实施例中,高速缓冲存储器300为处理器100之外的高速缓冲存储器300,但不以此为限,本发明也可利用处理器内建的高速缓冲存储器来操作为高速缓冲存储器300。
处理器100用以在存储器200中建立链表LL。请同时参考图2。图2下方的存储器200中的链表LL包含节点N1、节点N2~节点Nn与节点N(n+1)等多个节点,各节点分别对应于数据D1~数据D(n+1)与指针P1~指针P(n+1)(每个节点分别对应一个数据以及一个指针)。处理器100用以将数据D1~数据D(n+1)分别写入存储器200中的地址A1~地址A(n+1),并将节点N1的指针P1指向节点N2的地址A2,以及将节点N2的指针P2指向节点N3的地址A3,其后的节点N3~节点Nn依此类推不再赘述,旨在使节点N1~N(n+1)依指向关系形成前述的链表LL。根据这样的指向关系,如果想要搜索链表LL中某一个节点,例如节点N100时,已知的作法是利用处理器依照链表LL当中节点的顺序在存储器200中从节点N1开始,依序地搜索,直到到达节点N100。而本发明实施例的链表搜索装置10可先利用写入单元500将链表LL的节点的数据和地址写入高速缓冲存储器300中,当处理器100要搜索存储器200中链表LL中的某个节点时,链表搜索装置10利用搜索单元400在高速缓冲存储器300中寻找目标节点的数据,再对应地得到地址后,便可依据该地址让处理器100对存储器200中链表LL的该目标节点进行存取,此种搜索操作可提升操作速度,并且降低功耗。细节说明于下。
图2上方描绘的高速缓冲存储器300当中包含作为标签存储器(tag RAM)310使用的区块与作为数据存储器(data RAM)320使用的区块,但高速缓冲存储器300中并非全部区块都用作标签或数据存储器使用。当处理器100在存储器200中建立链表LL时,写入单元500用以将数据D1~数据D(n+1)与地址A1~地址A(n+1)写入高速缓冲存储器300中。如图2所示,写入单元500将数据D1~数据(Dn+1)与地址A1~地址(An+1)分别写入标签存储器310的区块与数据存储器320的区块。
在一些实施例中,当处理器100新增节点至链表LL中时,写入单元500将新增节点的数据与地址写入高速缓冲存储器300的标签存储器310与数据存储器320中。在一些实施例中,当处理器100从链表LL中删除节点时,写入单元500删除储存在高速缓冲存储器300中对应被删除的节点的数据与地址。换言之,当处理器100对链表LL当中的节点进行增减时,写入单元500也在高速缓冲存储器300中对应地增减新增或被删除节点的数据与地址。
在一些实施例中,标签存储器310与数据存储器320都具有字段R1、字段R2~字段Rm等多个字段,标签存储器310的字段R1、字段R2~字段Rm分别对应至数据存储器320的字段R1、字段R2~字段Rm(即,如图2所示的列对应关系)。写入单元500将数据D1~数据D(n+1)与地址A1~地址A(n+1)写入标签存储器310的字段R1、字段R2~字段Rm与数据存储器320的字段R1、字段R2~字段Rm中。例如,节点N1的数据D1与地址A1分别被写入标签存储器310与数据存储器320的字段R1中,节点N2的数据D2与地址A2分别被写入标签存储器310与数据存储器320的字段Ra中,及节点Nn的数据Dn与地址An分别被写入标签存储器310与数据存储器320的字段Rm中。因此,节点N1、节点N2与节点Nn可分别对应至标签存储器310与数据存储器320的字段R1、字段Ra与字段Rm。应理解,图2仅是示意图,用以表示数据与地址的对应关系,标签存储器310的区块与数据存储器320的区块在高速缓冲存储器300当中的实际分布关系未必如图所示。
当处理器100要对节点Nn进行存取时,搜索单元400用以搜索高速缓冲存储器300中对应节点Nn的字段(即,如图2所示的字段Rm),以取得与节点Nn关联的地址An,使处理器100可以依据地址An在存储器200中对节点Nn进行存取。
详细而言,在一些实施例中,处理器100将节点Nn的数据Dn传输给搜索单元400,搜索单元400在高速缓冲存储器300中的标签存储器310中依序搜索是否有符合数据Dn的字段。在图2的实施例中,搜索单元400从字段R1搜索至字段Rm时,比对标签存储器310的字段Rm所储存的数据与数据Dn相同,因此判断比对成功。接着搜索单元400从数据存储器320的字段Rm取得所储存的地址An,并将取得的地址An传输给处理器100,使处理器可以依据地址An对节点Nn进行存取。
在一些实施例中,写入单元500先将数据D1~数据D(n+1)分类,再将其写入标签存储器310中。具体来说,以数据D1为例,写入单元500将数据D1除上分类因子以取得一余数,其中分类因子为大于1的正整数。接着,写入单元500依据计算出的余数选择标签存储器310的字段写入。在一些实施例中,分类因子的值X等于标签存储器310与数据存储器320的字段的数量(亦即m等于10,字段Rm即为字段R10)。因此,当写入单元500在取余数的时候,最多只会有X种余数,且这些余数可以一对一的分配至X个字段中。例如,节点Nn的数据Dn为90,标签存储器310与数据存储器320的字段的数量为10,写入单元500将90除上10以取得余数为0。接着,写入单元500将余数0对应至标签存储器310与数据存储器320的字段Rm(R10),并且把为90的数据Dn写入标签存储器310的字段Rm中,及将节点Nn的地址An写入数据存储器320的字段Rm中。
在另一些实施例中,标签存储器310与数据存储器320的字段的数量为2的幂次方。如此一来,当写入单元500对数据D1~D(n+1)取余数时,仅需取数据D1~D(n+1)的最低有效位(least significant bits,LSB)即为余数,不需另做除法运算。例如,标签存储器310与数据存储器320的字段的数量为32(25),写入单元500取数据D1~D(n+1)的最后5位来做为余数。
在一些实施例中,标签存储器310与数据存储器320中的每个字段仅能储存一个节点的数据与地址。例如,当不同数据(例如数据D5与数据D7,图2中未示出,仅为示例)具有相同余数5时,写入单元500在标签存储器310的字段R5中使用数据D7将数据D5覆盖,并在数据存储器320的字段R5中使用地址A7将地址A5覆盖。
在一些实施例中,在搜索节点N2时,处理器100将数据D2给予搜索单元400,搜索单元400接着将数据D2除上分类因子取余数,接着再依据余数去比对标签存储器310中对应的字段Ra与数据D2。当数据D2与标签存储器310中对应的字段Ra相等时,搜索单元400取得数据存储器320中字段Ra所储存的地址A2。处理器100再依据取得的地址A2对节点N2进行存取。
在一些实施例中,标签存储器310与数据存储器320中的每个字段可储存多个节点的数据与地址。如图3所示,高速缓冲存储器300的标签存储器310与数据存储器320的每个字段的区块包含4个组(set)S1~S4。在对应一个字段的组中,每一个组S1~S4可分别储存一个节点的数据与地址。换言之,标签存储器310与数据存储器320的每个字段可储存4个节点的数据与地址。
在图3的实施例中,当写入单元500将节点N1~N(n+1)的数据D1~D(n+1)写入标签存储器310时,写入单元500将数据D1~D(n+1)除上分类因子以取余数,再依据余数对应的标签存储器310的字段将数据D1~D(n+1)写入标签存储器310与数据存储器320当中。以图3的实施例来解释,数据D1~D(n+1)中具有余数为3(除以10)的节点有3个(分别为73、03、63),其分别为被写入标签存储器310的字段R3的组S1、S2与S3,以及其地址(分别为0x3760、0x2040、0x4460)分别被写入数据存储器320的字段R3的组S1、S2与S3。
请同时参考图4。图4为搜索单元400在图3所示的高速缓冲存储器300中搜索的操作示意图。当处理器100要对目标节点Nt(图4中未示出,仅为举例)进行存取前,将目标节点Nt的目标数据Dt传输给搜索单元400,使搜索单元400依据目标数据Dt在高速缓冲存储器300中取得目标节点Nt的目标地址At并将其传输给处理器100。处理器100再依据目标地址At在存储器200中对目标节点Nt进行存取。
搜索单元400包含比较器COM1~COM4、逻辑门AND1~AND4及选择器SE1。比较器COM1~COM4用以接收处理器100传输来的目标数据Dt,以及分别耦接高速缓冲存储器300的标签存储器310的组S1~S4。请同时参考图3与图4。例如,如果目标数据Dt为节点Nn的数据Dn(如图3所示,数据Dn的值为51)时,搜索单元400对数据Dn(值为51)除上分类因子(字段数10)以取得余数(值为1)。因此,搜索单元400可比对目标数据Dt与标签存储器310中对应余数为1的字段R1的组S1~S4。比较器COM1~COM4分别用以比较目标数据Dt与标签存储器310中字段R1的组S1~S4,并输出比较结果至逻辑门AND1~AND4。逻辑门AND1~AND4分别对比较结果与数据存储器中的字段R1的组S1~S4进行与(AND)逻辑运算以输出逻辑运算结果。选择器SE1接着选择逻辑门AND1~AND4的逻辑运算结果中的一个输出为目标地址At。
因为数据Dt与标签存储器310中字段R1的组S3当中的值(Dn的值为51)相同,所以比较器COM3输出比较结果指示比对成功(cache hit)。接着逻辑门AND3对比较器COM3输出的比较结果与数据存储器320中字段R1的组S3(地址An,其值为0x2560)进行AND逻辑运算以将地址An输出为目标地址At并送至处理器100。
在一些实施例中,选择器SE1由或门(OR gate)实现。在另一些实施例中,选择器SE1由多路复用器(MUX)实现。
上述搜索单元400中的设置仅用于示例,本发明不限于此。例如,在其他实施例中,搜索单元400由如示于图5中的搜索单元600取代。
请同时参考图3与图5。图5为搜索单元600在图3所示的高速缓冲存储器300中搜索的操作示意图。搜索单元600包含比较器COM5~COM8、逻辑门AND5~AND8、逻辑门OR、编码器EN及选择器SE2。比较器COM5~COM8用以接收处理器100传输来的目标数据Dt,以及分别耦接高速缓冲存储器300的标签存储器310的组S1~S4。例如,如果目标数据Dt为节点Nn的数据Dn(如图3所示,数据Dn的值为51)时,搜索单元600对数据Dn(值为51)除上分类因子(字段数10)以取得余数(值为1)。因此,搜索单元600可比对目标数据Dt与标签存储器310中对应余数为1的字段R1的组S1~S4。比较器COM5~COM8分别用以比较目标数据Dt与标签存储器310中字段R1的组S1~S4,并输出比较结果至逻辑门AND5~AND8。在此实施例中,高速缓冲存储器300的每一字段中的每一组还包含有效指针存储器,如图5中所示的V1~V4。有效指针存储器V1~V4用以指示其对应的组S1~S4是否有被写入。例如,字段R1的组S1被写入,有效指针存储器V1的值被更新为1。逻辑门AND5~AND8分别对比较结果与对应的有效指针存储器V1~V4进行与(AND)逻辑运算以输出逻辑运算结果。逻辑门OR接着对输出的逻辑运算结果执行或(OR)逻辑运算。当逻辑门AND5~AND8输出的逻辑运算结果有比对成功者,逻辑门OR用以输出信号CH指示比对成功(cache hit)。另一方面,编码器EN对逻辑门AND5~AND8输出的逻辑运算结果进行编码,并产生编码信号EC至选择器SE2。编码信号EC用以指示在高速缓冲存储器300的字段R1中的哪一组(S1~S4)比对成功。选择器SE2接着依据编码信号EC选择数据存储器320中的数据存储器320对应的组(在此例中为组S3)输出为目标地址At
上文的叙述简要地提出了本发明某些实施例的特征,而使得本发明所属技术领域普通技术人员能够更全面地理解本发明内容的多种方面。本发明所属技术领域普通技术人员当可明了,其可轻易地利用本发明内容作为基础,来设计或改变其他制程与结构,以实现与此处的实施方式相同的目的和/或达到相同的优点。本发明所属技术领域普通技术人员应当明白,这些等同的实施方式仍属于本发明内容的精神与范围,且其可进行各种变更、替代与改变,而不会悖离本发明内容的精神与范围。
附图标记说明
10:链表搜索装置
100:处理器
200:存储器
300:高速缓冲存储器
310:标签存储器
320:数据存储器
400:搜索单元
500:写入单元
600:搜索单元
A(n+1):地址
A1:地址
A2:地址
An:地址
AND1:逻辑门
AND2:逻辑门
AND3:逻辑门
AND4:逻辑门
AND5:逻辑门
AND6:逻辑门
AND7:逻辑门
AND8:逻辑门
At:目标地址
CH:信号
COM1:比较器
COM2:比较器
COM3:比较器
COM4:比较器
COM5:比较器
COM6:比较器
COM7:比较器
COM8:比较器
D(n+1):数据
D1:数据
D2:数据
Dn:数据
Dt:目标数据
EC:编码信号
EN:编码器
LL:链表
N(n+1):节点
N1:节点
N2:节点
Nn:节点
OR:逻辑门
P(n+1):指针
P1:指针
P2:指针
Pn:指针
R1:字段
R10:字段
R2:字段
R3:字段
R4:字段
R5:字段
Ra:字段
Rm:字段
S1:组
S2:组
S3:组
S4:组
SE1:选择器
SE2:选择器
V1:有效指针存储器
V2:有效指针存储器
V3:有效指针存储器
V4:有效指针存储器

Claims (10)

1.一种链表搜索方法,用以利用高速缓冲存储器来搜索链表,包含:
将所述链表写入存储器中,所述链表包含第一节点与第二节点,所述第一节点与所述第二节点都具有数据与指针,且所述第一节点的所述指针指示所述第二节点的地址;
将所述第一节点的数据写入所述高速缓冲存储器中的标签存储器中的第一字段,并将所述第一节点的地址写入所述高速缓冲存储器中的数据存储器中的第一字段,所述标签存储器的所述第一字段对应所述数据存储器的所述第一字段;
将所述第二节点的数据写入所述标签存储器中的第二字段,并将所述第二节点的地址写入所述数据存储器中的第二字段,所述标签存储器的所述第二字段对应所述数据存储器的所述第二字段;以及
当根据所述第二节点的数据搜索所述第二节点在所述链表中的地址时,在所述标签存储器中搜索所述第二节点的数据以直接得到所述第二节点的地址。
2.如权利要求1中所述的链表搜索方法,其中在所述标签存储器中搜索所述第二节点的数据以直接得到所述第二节点的地址包含:
依序比对所述第二节点的数据与所述标签存储器中的所述第一字段与所述第二字段是否相同;以及
当所述标签存储器中的所述第二字段与所述第二节点的数据相同时,从所述数据存储器的所述第二字段取得所述第二节点的地址。
3.如权利要求2中所述的链表搜索方法,其中在所述标签存储器中搜索所述第二节点的数据以直接得到所述第二节点的地址还包含:
依据所述第二节点的地址,对所述第二节点进行存取。
4.如权利要求1中所述的链表搜索方法,其中所述链表还包含第三节点,所述第三节点具有数据与指针,且所述第二节点的所述指针指示所述第三节点的地址,其中所述链表搜索方法还包含:
对所述第一节点的数据除上一分类因子,以取得第一余数;
对所述第二节点的数据除上所述分类因子,以取得第二余数;
对所述第三节点的数据除上所述分类因子,以取得第三余数,其中所述第一余数不同于所述第二余数;
当所述第一余数与所述第三余数相等时,将所述第三节点的数据写入所述标签存储器中的所述第一字段,并将所述第三节点的地址写入所述数据存储器中的所述第一字段;
当所述第三余数与所述第二余数相等时,将所述第三节点的数据写入所述标签存储器中的所述第二字段,并将所述第三节点的地址写入所述数据存储器中的所述第二字段;以及
当所述第三余数与所述第一余数及所述第二余数皆不相等时,将所述第三节点的数据写入所述标签存储器中的第三字段,并将所述第三节点的地址写入所述数据存储器中的第三字段。
5.如权利要求4中所述的链表搜索方法,其中将所述第三节点的数据写入所述标签存储器中的所述第一字段,并将所述第三节点的地址写入所述数据存储器中的所述第一字段包含:
在所述标签存储器中的所述第一字段上,用所述第三节点的数据覆盖所述第一节点的数据;以及
在所述数据存储器中的所述第一字段上,用所述第三节点的地址覆盖所述第一节点的地址。
6.如权利要求4中所述的链表搜索方法,其中将所述第二节点的数据写入所述高速缓冲存储器中的所述标签存储器中的所述第二字段,并将所述第二节点的地址写入所述高速缓冲存储器中的所述数据存储器中的所述第二字段包含:
将所述第二节点的数据写入所述高速缓冲存储器中的所述标签存储器中的所述第二字段的第一区,并将所述第二节点的地址写入所述高速缓冲存储器中的所述数据存储器中的所述第二字段的第一区;其中将所述第三节点的数据写入所述标签存储器中的所述第二字段,并将所述第三节点的地址写入所述数据存储器中的所述第二字段包含:
将所述第三节点的数据写入所述高速缓冲存储器中的所述标签存储器中的所述第二字段的第二区,并将所述第三节点的地址写入所述高速缓冲存储器中的所述数据存储器中的所述第二字段的第二区。
7.如权利要求6中所述的链表搜索方法,其中在所述标签存储器中搜索所述第二节点的数据以直接得到所述第二节点的地址包含:
比对所述第二节点的数据与所述标签存储器中的所述第二字段的所述第一区与所述第二区是否相同;以及
当所述标签存储器中的所述第二字段的所述第一区与所述第二节点的数据相同时,从所述数据存储器的所述第二字段的所述第一区取得所述第二节点的地址。
8.如权利要求4中所述的链表搜索方法,其中所述标签存储器与所述数据存储器的字段的数量等于所述分类因子的值。
9.如权利要求1中所述的链表搜索方法,还包含:
新增第三节点至所述链表中,所述第三节点具有数据;以及
将所述第三节点的数据写入所述标签存储器中的第三字段,并将所述第三节点的地址写入所述数据存储器中的第三字段。
10.一种链表搜索装置,包含
存储器,用以储存链表,所述链表包含第一节点与第二节点,所述第一节点与所述第二节点都具有数据与指针,且所述第一节点的所述指针指示所述第二节点的地址;
处理器,耦接所述存储器,用以将所述链表写入所述存储器中;
写入单元,耦接所述处理器以及高速缓冲存储器,所述高速缓冲存储器包含标签存储器与数据存储器,其中所述写入单元用以分别将所述第一节点的数据与所述第二节点的数据写入所述标签存储器中的第一字段与第二字段,并将所述第一节点的地址与所述第二节点的地址写入所述数据存储器中的第一字段与第二字段;以及
搜索单元,耦接所述处理器以及所述高速缓冲存储器,用以在当根据所述第二节点的数据搜索所述第二节点在所述链表中的地址时,在所述标签存储器中搜索所述第二节点的数据以直接得到所述第二节点的地址。
CN202110217017.2A 2021-02-26 2021-02-26 链表搜索方法与链表搜索装置 Pending CN114969022A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110217017.2A CN114969022A (zh) 2021-02-26 2021-02-26 链表搜索方法与链表搜索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110217017.2A CN114969022A (zh) 2021-02-26 2021-02-26 链表搜索方法与链表搜索装置

Publications (1)

Publication Number Publication Date
CN114969022A true CN114969022A (zh) 2022-08-30

Family

ID=82973772

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110217017.2A Pending CN114969022A (zh) 2021-02-26 2021-02-26 链表搜索方法与链表搜索装置

Country Status (1)

Country Link
CN (1) CN114969022A (zh)

Similar Documents

Publication Publication Date Title
EP0380294B1 (en) String matching
US4384325A (en) Apparatus and method for searching a data base using variable search criteria
US7107258B2 (en) Search engine for large database search using CAM and hash
US6434662B1 (en) System and method for searching an associative memory utilizing first and second hash functions
US5317708A (en) Apparatus and method for an improved content addressable memory
US4833642A (en) Cache controller giving versatility to cache memory structure
US5428565A (en) Single stage sensing apparatus for a content addressable memory
US6502163B1 (en) Method and apparatus for ordering entries in a ternary content addressable memory
JP2005538465A (ja) ページ・サイズ指標に基づきハッシュされる部分的タグを用いる変換索引バッファ
US5499382A (en) Circuit and method of bit-packing and bit-unpacking using a barrel shifter
US7421563B2 (en) Hashing and serial decoding techniques
US5394353A (en) Flipflop and control circuit in a content addressable memory
US11467966B2 (en) Cache memory having a programmable number of ways
US7793047B2 (en) Apparatus and method for generating a secondary cache index
GB1488043A (en) Data storage system
US20060143382A1 (en) Reducing power consumption in a sequential cache
EP1428127A1 (en) A memory engine for the inspection and manipulation of data
US5218687A (en) Method and apparatus for fast memory access in a computer system
US20080244169A1 (en) Apparatus for Efficient Streaming Data Access on Reconfigurable Hardware and Method for Automatic Generation Thereof
CN114969022A (zh) 链表搜索方法与链表搜索装置
JP4004847B2 (ja) 連想メモリ装置
TWI774245B (zh) 連結串列搜尋方法與連結串列搜尋裝置
US4327407A (en) Data driven processor
TWI801601B (zh) 資料庫處理系統及用於卸載資料庫操作的方法
US7363460B2 (en) Semiconductor memory device having tag block for reducing initialization time

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination