CN1381797A - 高速信息检索系统 - Google Patents
高速信息检索系统 Download PDFInfo
- Publication number
- CN1381797A CN1381797A CN02105604A CN02105604A CN1381797A CN 1381797 A CN1381797 A CN 1381797A CN 02105604 A CN02105604 A CN 02105604A CN 02105604 A CN02105604 A CN 02105604A CN 1381797 A CN1381797 A CN 1381797A
- Authority
- CN
- China
- Prior art keywords
- address
- code
- memory
- retrieval
- subcode
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90339—Query processing by using parallel associative memories or content-addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种信息检索系统,包括两个对其进行搜索以寻找与m-位/n-位检索关键字子码相同的m-位/n-位代码的内容可寻址存储器(20a/20b),用于将有关分别用m-位/n-位代码的组合表示的不同检索关键字的信息片存储在分配了地址的可寻址存储单元中的数据存储器(4),和从内容可寻址存储器提供了与m-位/n-位检索关键字子码相同的m-位/n-位代码的地址以便从地址产生一个用于存取有关一个给定检索关键字的信息片的目标地址的地址产生装置(3/5),从而能够搜索两个内容可寻址存储器,以实际上并行地寻找m-位/n-位代码。
Description
技术领域
本发明涉及一种信息检索系统,更具体地讲,涉及一种用于由位宽度大于检索码的数据代码代表的数据信息片的信息检索系统。
背景技术
内容可寻址存储器具有多个用内容而不是用它们的专用地址识别的存储单元。通常将内容可寻址存储器缩写为“CAM”。当用户检索涉及字的信息片时,他或她将代表该字的检索关键字码输入到内容可寻址存储器。然后,从内容可寻址存储器选择存储单元,并且从该存储单元读出信息片。
内容可寻址存储器是结合在信息检索系统中的。当用户输入检索关键字时,信息检索系统输出与检索关键字相同或类似的数据片。信息检索系统可以输出数据片存储的一个地址或多个地址。检索关键字是用二进制代码代表的,其位宽度等于数据字的位宽度。如果用户要检索带有比数据字更长的位宽度的数据片时,信息检索系统将检索关键字分割成多个关键字部分,并且反复地为多个关键字部分搜索内容可寻址存储器。因此,检索关键字或关键字部分分别对应于寄存在内容可寻址存储器中的内容。为此,信息检索系统需要有对寄存在内容可寻址存储器中的内容的管理和对存储单元的寻址技术。日本专利申请公开11-273363中公开了一种寻址系统。这种寻址系统结合在现有技术的信息检索系统中,并且包括地址比较器。地址比较器具有两个输入端口,其中一个端口连接到内容可寻址存储器,另一个端口连接到另一个内容可寻址存储器。现有技术信息检索系统确定存储数据信息片的存储单元的地址。
图1示出了现有技术的信息检索系统。现有技术信息检索系统包括数据输入缓存器101,内容可寻址存储器102a和102b,地址寄存器103,数据存储器104,和地址比较器105。检索关键字具有等于存储在内容可寻址存储器102a/102b中的内容的总位宽度的位宽度。将检索关键字提供到数据输入缓存器101中,并且存储在其中。检索关键字代表内容,并且该内容由N-位检索码表示。
内容可寻址存储器102a具有多个存储单元,并且另一个内容可寻址存储器102b也具有多个存储单元。内容可寻址存储器102a的存储单元分别对应于另一个内容可寻址存储器102b的存储单元。将地址“0”,…“k”,“k+1”,“k+2”,“k+3”,“k+4”,“k+5”,…分配给内容可寻址存储器102a的存储单元和另一个内容可寻址存储器102b的对应存储单元(见图2)。因此,两个内容可寻址存储器102a和102b之间共享地址。将子内容“AA”,“BB”,“CC”…有选择地存储在内容可寻址存储器102a的存储单元中,并且用m-位代码表示。另一方面,将子内容“aa”,“bb”,“cc”…有选择地存储在另一个内容可寻址存储器102b的存储单元中,并且用n-位代码表示。每个n-位代码和对应的m-位代码的总位宽度等于N-位检索码。
数据输入缓存器101将N-位检索码分割成代表检索关键字的两个部分的两个子码。一个子码是由m-位组成的,另一个子码是由n-位组成的。两个子码分别从数据输入缓存器101输出到内容可寻址存储器102a和102b。当子码遇到存储在存储单元中的m-位代码或n-位代码时,内容可寻址存储器102a/102b将分配给存储m-位代码/n-位代码的存储位置的地址传送到另一个内容可寻址存储器102b/102a和地址比较器105。另一个内容可寻址存储器搜索另一个子码的存储单元。当另一个子码遇到存储在存储单元中的n-位代码/m-位代码时,另一个内容可寻址存储器将地址传送到内容可寻址存储器和地址比较器105。地址比较器105比较分别从内容可寻址存储器102a/102b提供的地址,确定这两个地址是否相符。如果答案是否定的,那么内容可寻址存储器102a/102b继续检索。另一方面,当答案是肯定的时候,将地址传送到地址寄存器103,并且从数据存储器104中的地址读出数据信息片。因此,即使检索码的位宽度比子码宽,现有技术信息检索系统也能检索有关检索关键字的数据信息片。
图3示出了现有技术信息检索系统中检索操作的流程。同时参考图1,2和3详细说明数据检索。假设检索关键字是由检索码“Ccaa”代表的。m-位子码和n-位子码代表关键字部分“CC”和另一个关键字部分“aa”。
当检索关键字到达数据输入缓存器101时,检索关键字被存储在数据输入缓存器101中,并且被分割成两个关键字部分,即,m-位子码“CC”和n-位子码“aa”。以下也将关键字部分标为“CC”和“aa”。将关键字部分“CC”和“aa”从数据输入缓存器101提供到内容可寻址存储器102a和102b。
首先,激活内容可寻址存储器102a,并且从地址“0”到终点,搜索内容可寻址存储器102a,寻找m-位代码“CC”。当地址递增到“k+1”时,内容可寻址存储器102a发现与关键字部分“CC”相同的m-位代码。然后,将地址“k+1”传送到地址比较器105和另一个内容可寻址存储器102b。内容可寻址存储器102a停止检索。
内容可寻址存储器102b在地址“k+1”开始搜索。当地址递增到“k+2”时,内容可寻址存储器102b发现了与另一个关键字部分“aa”相同的n-位代码。然后,内容可寻址存储器102b将地址“k+2”传送到另一个内容可寻址存储器102a和地址比较器105,并停止检索。
地址比较器105将从内容可寻址存储器102a传送的地址“k+1”与地址“k+2”比较,看这两个地址是否相符。地址“k+2”与地址“k+1”不同,并且给出了否定的回答。地址比较器105将否定的答案通知内容可寻址存储器102a,并使内容可寻址存储器102a在地址“k+2”重新开始检索。当地址递增到“k+3”时,内容可寻址存储器102a在地址“k+3”再次发现与关键字部分“CC”相同的m-位代码。内容可寻址存储器102a将地址“k+3”传送到另一个内容可寻址存储器102b和地址比较器105,并停止检索。
另一个内容可寻址存储器102b在地址“k+3”重新开始检索,并在地址“k+4”发现与关键字部分“aa”相同的n-位代码。内容可寻址存储器102b将地址“k+4”传送到另一个内容可寻址存储器102a和地址比较器,并停止检索。
地址比较器105比较从内容可寻址存储器102a/102b传送的地址,以确定两个地址是否彼此相符。从内容可寻址存储器102a传送的地址是“k+3”,而从内容可寻址存储器102b传送的地址是“k+4”。地址比较器105发现这两个地址彼此不相符。地址比较器105将否定的回答通知内容可寻址存储器。
根据否定回答,内容可寻址存储器102a在地址“k+4”重新开始检索,并在地址“k+5”发现与关键字部分“CC”相同的m-位代码。内容可寻址存储器102a将地址“k+5”传送到另一个内容可寻址存储器102b和地址比较器105,并停止检索。
另一个内容可寻址存储器102b在地址“k+5”重新开始检索,并在地址“k+5”发现与关键字部分“aa”相同的n-位代码。内容可寻址存储器102b将地址“k+5”传送到另一个内容可寻址存储器102a和地址比较器105,并停止检索。
地址比较器105比较两个地址,以确定两个地址是否彼此相符。从内容可寻址存储器102a传送的地址“k+5”与从另一个内容可寻址存储器102b传送的地址“k+5”相符,答案变成肯定的。地址比较器105将肯定的答案通知内容可寻址存储器102a,以便重新开始检索,并将地址“k+5”传送到地址寄存器103。
将地址“k+5”从地址寄存器103传送到数据存储器104,并且从数据存储器104读出数据信息片。因此,内容可寻址存储器102a/102b交替地启动以进行检索,并且将开始地址从在前启动的内容可寻址存储器传递给另一个内容可寻址存储器。结果,关键字部分与m-位/n-位代码相符的最后地址被地址比较器采纳。
现有技术检索系统中遇到的问题在于,在数据存储器104输出数据信息片之前耗费了不固定长度的时间。这是由于内容可寻址存储器102a/102b交替地检索存储在它们中的m-位/n-位代码。检索至少要重复两次。在图3所示的情况下,检索重复了六次。命中之前的时间周期取决于存储(m+n)-位代码的存储单元。这导致了不固定时间周期。
另一个问题是,耗费了大量存储单元来存储(m+n)-位代码。尽管在地址“k+1”,“k+3”,“k+5”的(m+n)-位代码具有m-位代码“CC”,但在这些地址的相关的n-位代码是彼此不同的,并且m-位代码“CC”被重复地存储。
发明内容
因此,本发明的重要目的是要提供一种信息检索系统,这种检索系统能够通过对经济地存储在存储器中的候选者的检索操作,在短时间周期内输出有关检索关键字的信息。
根据本发明的一个方面,提供了一种用于选择有关分割成多个检索子码的检索关键字码的信息片的信息检索系统,信息检索系统包括:包括分别存储多组位宽等于多个检索子码的位宽的内容代码的多个存储空间、并且响应多个检索子码以便输出代表分别从多个存储空间选择的存储单元的多个地址码,与存储在存储单元中的多个检索子码相同的内容代码的第一存储器,具有多个用于存储信息片的可寻址存储单元并且响应一个目标地址以便从信息片中选择有关检索关键字码的信息片的第二存储器,和连接到第一和第二存储器并且通过一种对地址码的运算操作产生目标地址,以便将目标地址提供到第二存储器的地址产生装置。
附图说明
通过以下结合附图的说明,可以对信息检索系统的特征和优点有更清楚的理解,在附图中:
图1是显示现有技术信息检索系统的布置的方框图;
图2是显示有关与现有技术检索系统结合的内容可寻址存储器的检索操作的时间图;
图3是显示现有技术的检索顺序的示意图;
图4是显示本发明信息检索系统的系统配置的方框图;
图5是显示本发明检索系统进行的检索操作的时间图;
图6是显示本发明的另一个信息检索系统的系统配置的方框图;
图7是显示检索中使用的检索关键字码的示意图;
图8是显示信息检索系统中建立的内容代码,指针值和信息片的排列的示意图;
图9是显示本发明的再一个信息检索系统的系统配置的方框图;
图10是显示在信息检索系统中建立的内容代码、指针值和信息片的排列的示意图;
图11是显示本发明的又一个信息检索系统的系统配置的方框图;
图12是显示在信息检索系统中建立的内容代码、指针值和信息片的排列的示意图;
图13是显示本发明的又一个信息检索系统的系统配置的方框图;
图14是显示在信息检索系统中建立的内容代码、指针值和信息片的排列的示意图;
图15是显示本发明的又一个信息检索系统的系统配置的方框图;
图16是显示在信息检索系统中建立的内容代码、指针值和信息片的排列的示意图;
图17是显示本发明的又一个信息检索系统的系统配置的方框图;和
图18是显示在信息检索系统中建立的内容代码、指针值和信息片的排列的示意图。
具体实施方式第一实施例
参考图4,具体实现本发明的信息检索系统包括:数据缓存器1,内容可寻址存储器2a/2b,地址确定装置3,数据存储器4,和控制器5。数据缓存器1具有一个数据输入端口和两个数据输出端口。将检索关键字提供到数据缓存器1的数据输入端口,并且临时存储在数据缓存器1中。检索关键字是用N-位检索码表示的。检索关键字可以分割成两个关键字部分,因此,N-位检索码可以分割成m-位检索子码和n-位检索子码。两个关键字部分分别由m-位检索子码和n-位检索子码表示。m-位检索子码和n-位检索子码分别从数据缓存器1的两个数据输出端口输出。
内容可寻址存储器2a/2b具有各自的地址端口和各自的输出端口。数据输入缓存器1的数据输出端口分别连接到地址端口,从而能够将m-位检索子码和n-位检索子码分别提供到内容可寻址存储器2a/2b的地址端口。
内容可寻址存储器2a/2b的电路布置是彼此相同的。每个内容可寻址存储器2a/2b具有多个可寻址存储单元。内容可寻址存储器2a的多个存储单元用于存储代表内容的一些部分的m-位代码,并且把地址分别分配给内容可寻址存储器2a的存储单元。同样地,另一个内容可寻址存储器2b的多个存储单元用于存储代表剩余的内容部分的n-位代码,并且将地址分配给另一个内容可寻址存储器2b的存储单元。分配给内容可寻址存储器2a的存储单元的地址与分配给内容可寻址存储器2b的存储单元的地址不同。也就是说,m-位代码仅分别对应于内容可寻址存储器2a中的地址,而n-位代码仅分别对应于内容可寻址存储器2b中的地址。结果,内容可寻址存储器2a/2b被独立地搜索,寻找m-位检索子码和n-位检索子码。也就是说,同时地进行对存储在内容可寻址存储器2a中的m-位代码和存储在内容可寻址存储器2b中的n-位代码的检索操作。当发现一个m-代码与m-位检索子码相同时,内容可寻址存储器2a将分配给存储m-位代码的存储单元的地址输出到它的输出端口。同样地,当发现一个n-位代码与n-位检索子码相同时,内容可寻址存储器2b将分配给存储n-位代码的存储单元的地址输出到其输出端口。此后,将从内容可寻址存储器2a输出的地址和从内容可寻址存储器2b输出的地址分别称为“基本地址”和“位移地址”。
内容可寻址存储器2a/2b的输出端口连接到地址确定装置3的输入端口。地址确定装置3根据基本地址和位移地址执行预定的计算,并且决定存储有关检索关键字的信息片地址。此后,将根据基本地址和位移地址确定的地址称为“运算地址”。地址确定装置3将运算地址从它的输出端口输出。
数据存储器4具有地址端口和数据输出端口,并且地址确定装置3的输出端口连接到数据存储器4的地址端口。数据存储器具有多个可寻址存储单元,并且有关各检索关键字的信息片分别存储在多个存储单元中。将地址分配给数据存储器4的存储单元。当把运算地址提供到地址端口时,从分配了与运算地址相同的地址的存储单元读出信息片。
控制器5管理其它系统组件,即,数据缓存器1,内容可寻址存储器2a/2b,地址确定装置3和数据存储器4。如图5中所示,其它系统组件1/2a/2b/3/4在控制器5的管理下操作。
首先,将N-位检索关键字提供到信息检索系统。N-位检索关键字被分离成m-位检索关键字部分和n-位检索关键字部分,并且被同时从数据缓存器1提供到内容可寻址存储器2a/2b的地址端口。并行地搜索内容可寻址存储器2a/2b,寻找一个与m-位检索关键字部分相同的m-位代码和一个与n-位检索关键字部分相同的n-位代码,作为步骤SP1。当发现一个m-位代码与m-位关键字部分相同时,从内容可寻址存储器2a将基本地址“地址1”提供到地址确定装置3,作为步骤SP2。同样地,当发现一个n-位代码与n-位关键字部分相同时,从内容可寻址存储器2b将位移地址“地址2”提供到地址确定装置3,作为步骤SP3。如果发现一个以上的n-位代码与n-位关键字部分相同,那么在步骤SP3将这些都从内容可寻址存储器2b提供到地址确定装置3。当检查了所有m-位代码时,内容可寻址存储器2a在最后一个地址终止检索操作。同样地,当检查了所有n-位代码时,内容可寻址存储器2b在最后一个地址终止检索操作。因此,检索中消耗的时间周期是可估算的。
从上述说明中可以知道,数据存储器是利用分配给多个内容可寻址存储器2a/2b的存储单元的地址计算的运算地址寻址的。实际上是并行地搜索内容可寻址存储器2a/2b,以寻找与检索子码相同的代码。为了与一个相关的检索子码相同的代码,仅对每个内容可寻址存储器2a/2b搜索一次。检索中消耗的时间是可估算的。因此,本发明的信息检索系统在一个固定的短时间周期内提供了有关检索关键字的信息片。
内容是由m-位代码和n-位代码之间的组合表示的。例如,如果几个内容之间共享一个m-位代码,那么将m-位代码存储在某个地址,而不复制到任何其它地址。这导致了制造商减少了内容可寻址存储器2a/2b的存储容量。
可以用一个具有流水线结构的单一CAM替代内容可寻址存储器2a/2b。在这种情况下,m-位代码和n-位代码被存储在不同的存储空间。但是,以流水线方式串行地搜索存储空间。因此,信息检索系统可以仅使用一个流水线内容可寻址存储器,而不会降低吞吐量。第二实施例
转到图6,实现本发明的另一个信息检索系统包括:检索控制器10,内容可寻址存储器20a/20b,地址存储器30a,和数据存储器30b。信息检索系统用N-位检索码表示的检索关键字执行检索操作。如图7中所示,每个检索关键字可以分割成用m-位检索子码和n-位检索子码表示的关键字部分。图7中示出了三个检索关键字1,2和3。第一个检索关键字1是由m-位检索关键字部分“AA”和n-位检索关键字部分“aa”组成的,第二检索关键字2是由m-位检索关键字部分“AA”和n-位检索关键字部分“bb”组成的,和第三检索关键字3是由m-位检索关键字部分“BB”和n-位检索关键字部分“aa”组成的。
内容可寻址存储器20a/20b具有多个可寻址存储单元。内容的一些部分是分别通过m-位代码表示的,并且分别将m-位代码存储在内容可寻址存储器20a的多个可寻址存储单元中。内容的其余部分是分别通过n-位代码表示的,并且将n-位代码分别存储在内容可寻址存储器20b的多个可寻址存储单元中。因此,(m+n)-位代码代表了内容。利用由m-位检索子码代表的关键字部分搜索内容可寻址存储器20a,查找与之相同的一个m-位代码,并且利用n-位检索子码代表的剩余关键字部分搜索内容可寻址存储器20b,查找与之相同的一个n-位代码。
地址存储器30a具有两个存储空间。将一个存储空间分配给内容可寻址存储器20a的存储单元的指针值,而将另一个存储空间分配给另一个内容可寻址存储器20b的存储单元的指针值。指针值存储在与分配给内容可寻址存储器20a/20b的存储单元的地址相同的地址。使分配给内容可寻址存储器20b的指针值的存储空间与分配给另一个内容可寻址存储器20a的指针值的存储空间间隔γ。
数据存储器30b具有多个可寻址存储单元,信息片存储在多个可寻址存储单元中。信息片与检索关键字有关。给存储信息片的多个存储单元分配地址。为了可以区分地址,此后将分配给数据存储器30b的地址称为“对象地址(object address)”。
控制器10包括:检索关键字提取器11,检索关键字分割器12,数据缓存器13a/13b,CAM控制器14a/14b,加法器15,数据接收器和发送器16。尽管在图6中没有示出,但是信号输入端口连接到检索关键字提取器。将信息检索请求信号提供到检索关键字提取器11,检索关键字提取器11从请求信号提取N-位检索码。检索关键字提取器11连接到检索关键字分割器12,并且将N-位检索码或N-位检索关键字从检索关键字提取器11提供到检索关键字分割器12。检索关键字分割器12将N-位检索码分割成m-位检索子码和n-位检索子码,即,m-位检索关键字部分和n-位检索关键字部分。
检索关键字分割器12具有两个输出端口,它们分别连接到数据缓存器13a/13b。将m-位检索子码提供到数据缓存器13a,并存储在其中。另一方面,将n-位置检索子码提供到数据缓存器13b,并存储在其中。数据缓存器13a/13b分别连接到CAM控制器14a/14b,并且分别把m-位检索子码和n-位检索子码提供到CAM控制14a/14b。
CAM控制器14a与内容可寻址存储器20a相联,另一个CAM控制器14b与另一个内容可寻址存储器20b相联。CAM控制器14a/14b也连接到地址存储器30a,地址存储器30a连接到加法器15。CAM控制器14a/14b搜索相联的内容可寻址存储器20a/20b,寻找与m-位/n-位检索子码相同的m-位/n-位代码,并且指定存储m-位/n-位代码的地址。CAM控制器14a/14b将地址提供到地址存储器30a,并且致使地址存储器30a将指针值传送到加法器15。加法器15将指针值彼此相加,产生出目标地址。
加法器15具有连接到数据接收器和发送器16的输出端口,并且将目标地址从加法器15提供到数据接收器和发送器16。数据接收器和发送器16存取分配了目标地址的存储单元,并且从中读出信息片。数据接收器和发送器接收信息片,并将它发送到目的地。
信息检索系统如下操作。假设现在检索请求信号携带检索关键字1,即,N-位检索码“AAaa”(见图7),检索关键字提取器11从检索请求信号提取检索关键字码“AAaa”,并且把检索关键字码“AAaa”提供到检索关键字分割器12。检索关键字分割器12将检索关键字码“AAaa”分割成m-位检索子码“AA”和n-位检索子码“aa”。从检索关键字分割器12将m-位检索子码“AA”和n-位检索子码“aa”提供到数据缓存器13a/13b。将m-位检索子码“AA”和n-位检索子码“aa”分别存储在数据缓存器13a/13b中。
如图8中所示,m-位代码“AA”,“BB”,“CC”,…,n-位数据代码“aa”,“bb”,“cc”,…,指针值“A’”,“B’”,“C’”…,“a’”,“b’”,“c’”,…和信息片“1”,“2”,“3”,…“k”,“k+1”…存储在内容可寻址存储器20a/20b,地址存储器30a,和数据存储器30b中。
将m-位检索子码“AA”和n-位检索子码“aa”分别提供到CAM控制器14a/14b,CAM控制器14a/14b搜索内容可寻址存储器20a/20b,以寻找与m-位/n-位检索子码“AA”和“aa”相同的m-位/n-位代码。m-位代码“AA”存储在地址“a1”的存储单元中,并且n-位代码“aa”存储在地址“a2”的存储单元中。当检索关键字部分遇到这些代码时,内容可寻址存储器20a/20b将地址“a1”和“a2”分别传送到CAM控制器14a/14b。
如上所述,分配给内容可寻址存储器20a中的地址的存储空间与分配给另一个内容可寻址存储器20b中的地址的存储空间间隔γ。CAM控制器14b给地址“a”加上γ,并且把地址“a2+γ”提供到地址存储器30a。另一方面,CAM控制器14a将地址“a1”提供到地址存储器30a。地址“a1”和“a2+γ”分别指出了指针值“A’”和“a’”,并且提供到加法器15。地址“a1’”用作基本地址,而另一个地址“a’”用作位移地址。加法器15计算目标地址,即,计算地址“A’+a’”,并且将目标地址“A’+a’”提供到数据接收机和发送机16。粗实线指出了关键字部分“AA”的检索操作,虚线指出了关键字部分“aa”的检索操作。
数据接收机和发送机16存取存储在目标地址“A’+a’”的信息片“1”,并且把信息片“1”传送到目的地。
因此,检索操作实际上是在内容可寻址存储器20a/20b上并行执行的,并且仅搜索一次内容可寻址存储器20a/20b中的存储单元,以寻找m-位/n-位代码。这导致了检索中耗费的时间周期减少,和时间周期恒定。第三实施例
转到图9,实现本发明的再一个信息检索系统包括:检索控制器110,内容可寻址存储器20,地址存储器30a,和数据存储器30b。信息检索系统用N-位检索码表示的检索关键字执行检索操作。每个检索关键字可以分割成由如同第二实施例中使用的一个m-位检索子码和一个n-位检索子码表示的关键字部分。但是,m-位检索子码在位宽度上等于n-位检索子码,即,m=n。
内容可寻址存储器20具有多个可寻址存储单元。一些内容部分由m-位代码分别表示,并且m-位代码存储在无规则地彼此间隔的存储单元中。m-位代码“AA”和“BB”存储在地址“a”和地址“h”的存储单元中(见图10)。剩余的内容部分分别由n-位代码表示,并且n-位代码存储在内容可寻址存储器20的剩余可寻址存储单元中。把要与每个m-为代码组合的n-位代码分成组,以便n-位代码形成多个代码组。将多个代码组分配到分配给m-位代码的存储单元之间的存储空间中。因此,将m-位代码和相关联的n-位代码一起存储在内容可寻址存储器20中,并且把地址“a”,“b”,“c”,…“g”,“h”,“I”,“j”,…分配给内容可寻址存储器20中的存储单元。m-位代码的位宽度等于n-位代码,即,m=n。在CAM控制器14的控制下,搜索内容可寻址存储器20,寻找与m-位/n-位检索子码相同的m-位/n-位代码。
m-位代码的地址的指针值与n-位代码的地址的指针值之间共享地址存储器30a。m-位代码的地址的指针值存储在与分配给内容可寻址存储器20的存储单元的地址相同的地址。m-位代码的地址的指针值与n-位代码的地址的指针值交替地存储。
数据存储器30b具有多个可寻址存储单元,并且把信息片存储在多个可寻址存储单元中。信息片与检索关键字有关。将地址分配给存储在信息片的多个存储单元。每个信息片是利用基于指针值的运算地址指定的。
控制器110包括检索关键字提取器11,检索关键字分割器12,数据缓存器13a/13b,加法器15,和一数据接收器和发送器16。尽管在图9中没有示出,但信号输入端口连接到检索关键字提取器11。信息检索请求信号被提供到检索关键字提取器11,检索关键字提取器11从请求信号提取N-位检索码。检索关键字提取器11连接到检索关键字分割器12,并且将N-位检索码或N-位检索关键字从检索关键字提取器11提供到检索关键字分割器12。检索关键字分割器12将N-位检索码分割成m-位检索子码和n-位检索子码,即,m-位检索关键字部分和n-位检索关键字部分。
检索关键字分割器12具有两个分别连接到数据缓存器13a/13b的输出端口。将m-位检索子码提供到数据缓存器13a,并存储在其中。另一方面,将n-位检索子码提供到数据缓存器13b,并存储在其中。数据缓存器13a/13b连接到CAM控制器14,并且把m-位检索子码和n-位检索子码顺序地提供到CAM控制器14。
CAM控制器14与内容可寻址存储器20相联。CAM控制14也连接到地址存储器30a,并且地址存储器30a连接到加法器15。CAM控制器14搜索相联的内容可寻址存储器20,寻找一个与m-位检索子码相同的m-位代码,并且确定存储在m-位代码的地址。CAM控制器14把地址提供到地址存储器30a,并把指针值从地址存储器30a提供到加法器15。
CAM控制器14进一步搜索相联的内容可寻址存储器20,寻找与n-位检索子码相同的n-位代码,并确定存储n-位代码的地址。CAM控制器14把地址提供到地址存储器30a,并且把指针值从地址存储器30a提供到加法器15。加法器15将指针值彼此相加,产生运算地址。
加法器15具有连接到数据接收器和发送器16的输出端口,并且把运算地址从加法器15提供到数据接收器和发送器16。数据接收器和发送器16存取分配了运算地址的存储单元,并从中读出信息片。数据接收器和发送器接收信息片,并将它发送到目的地。
信息检索系统如下操作。假设现在检索请求信号携带检索关键字1,即,N-位检索码“AAaa”,检索关键字提取器11从检索请求信号提取检索关键字码“AAaa”,并把检索关键字码“AAaa”提供到检索关键字分割器12。检索关键字分割器12将检索关键字码“AAaa”分割成m-位检索子码“AA”和n-位检索子码“aa”。将m-位检索子码“AA”和n-位检索子码从检索关键字分割器12提供到数据缓存器13a/13b。m-位检索子码“AA”和n-位检索子码“aa”分别存储在数据缓存器13a/13b中。
首先,CAM控制器14取出m-位检索子码“AA”。CAM控制器14搜索内容可寻址存储器20,寻找与m-位检索子码“AA”相同的m-位代码。m-位代码存储在地址“a”的存储单元中。当使检索关键字部分“AA”遇到m-位代码时,内容可寻址存储器20将地址“a”传送到CAM控制器14。CAM控制器14把地址“a”提供到地址存储器30a,并且用地址“a”确定指针值“A’”。将指针值“A’”提供到加法器15。地址“A’”用作基本地址。
接下来,CAM控制器14取出n-位检索子码“aa”。CAM控制14搜索内容可寻址存储器20,寻找与n-位检索子码“aa”相同的n-位代码。n-位代码存储在地址“b”的存储单元中。当检索关键字部分“aa”遇到n-位代码时,内容可寻址存储器20把地址“b”传送到CAM控制器14。CAM控制器14把地址“b”提供到地址存储器30a,并且用地址“b”指定指针值“a’”。将指针值“a’”提供到加法器15。地址“a’”用作位移地址。
加法器15计算目标地址,即,运算地址“A’+a’”,并且把目标地址“A’+a’”提供到数据接收器和发送器16。粗实线代表关键字部分“AA”的检索操作,虚线代表关键字部分“aa”的检索操作。
数据接收器和发送器16存取存储在目标地址“A’+a’”中的信息片“1”,并且把信息片“1”传送到目的地。
尽管在内容可寻址存储器20上串行地进行了两次检索操作,但搜索内容可寻址存储器20a/20一次,以寻找m-位代码,并且部分地搜索内容可寻址存储器20以寻找n-位代码。这导致了检索耗费时间周期的减少。
检索控制器110仅需要一个内容可寻址存储器20,因此,仅需要一个CAM控制器14。尽管搜索耗费的时间周期略长于第二实施例,但实现第三实施例的信息检索系统比实现第二实施例的信息检索系统更简单。第四实施例
转到图11,实现本发明的又一个信息检索系统包括:检索控制器110,内容可寻址存储器20,和数据存储器30。用一个单一的数据存储器30替代了地址存储器30a和数据存储器30b。信息检索系统利用以N-位检索码表示的检索关键字实施检索操作。每个检索关键字被分割成与第二实施例中使用的相同的一个m-位检索子码和一个n-位检索子码表示的关键字部分。但是,m-位检索子码的位宽度等于n-位检索子码,即,m=n。
内容可寻址存储器20具有多个可寻址存储单元。内容的一部分分别由m-位代码表示,并且把m-位代码存储在无规则间隔的存储单元中。m-位代码“AA”和“BB”存储在地址“a”和地址“h”的存储单元中(见图12)。剩余的内容部分分别用n-位代码表示,并且把n-位代码存储在内容可寻址存储器20的剩余可寻址存储单元中。把要与每个m-位代码组合的n-位代码分成组,以便使n-位代码形成多个组。将多个代码组分配到分配给m-位代码的存储单元之间的存储空间。因此,将每个m-位代码和相关的n-位代码一起存储在内容可寻址存储器20中,并且将地址“a”,“b”,“c”,...“g”,“h”,“I”,“j”,…分配给内容可寻址存储器20中的存储单元。m-位代码的位宽度等于n-位代码,即,m=n。在CAM控制器14的控制下,搜索内容可寻址存储器20,以寻找与m-位/n-位检索子码相同的m-位/n-位代码。
在指针值与有关检索关键字的信息片之间共享数据存储器30。也就是说,数据存储器30中的存储空间被分割成两个存储子空间。地址a,b,c,…分配给指针值的存储子空间。因此,分配给m-位/n-位代码的存储单元的地址对应于存储相关指针值的地址。另一方面,将地址“A’+a’”,“A’+b’”,“A’+c’”分配给信息片的其它存储子空间。被加数“A’”,“B’”,“C’”是m-位代码地址的指针值,加数“a’”,“b’”,“c’”是n-位代码地址的指针值。因此,信息片被存储在分配了运算地址的存储单元中。也就是说,信息片与检索关键字码有关。
控制器110包括检索关键字提取器11,检索关键字分割器12,数据缓存器13a/13b,CAM控制器14,加法器15,和数据接收器和发送器16。尽管在图11中没有示出,但有一个信号输入端口连接到检索关键字提取器11。信息检索请求信号被提供到检索关键字提取器11,检索关键字提取器11从请求信号中提取N-位检索码。检索关键字提取器11连接到检索关键字分割器12,并且把N-位检索码或N-位检索关键字从检索关键字提取器11提供到检索关键字分割器12。检索关键字分割器12将N-位检索码分割成m-位检索子码和n-位检索子码,即,m-位检索关键字部分和n-位检索关键字部分。
检索关键字分割器12具有分别连接到数据缓存器13a/13b的两个输出端口。m-位检索子码被提供到数据缓存器13a,并存储在其中。另一方面,n-位检索子码被提供到数据缓存器13b,并存储在其中。数据缓存器13a/13b连接到CAM控制器14,并且把m-位检索子码和n-位检索子码顺序提供到CAM控制器14。
CAM控制器14与内容可寻址存储器20和数据存器30相联,并且把数据存储器30连接到加法器15和数据接收器和发送器16。CAM控制器14搜索相联的内容可寻址存储器20,寻找与m-位检索子码相同的m-位代码,并且确定存储m-位代码的地址。CAM控制器14把地址提供到数据存储器30,并且把指针值从数据存储器30提供到加法器15。
CAM控制器14进一步搜索相联的内容可寻址存储器20,寻找与n-位检索子码相同的n-位代码,并且存储n-确定位代码的地址。CAM控制器14把地址提供到数据存储器30,并且把指针值从数据存储器30提供到加法器15。加法器15将指针值彼此相加,并且产生运算地址。
加法器15具有一个连接到数据接收器和发送器16的输出端口,并且将运算地址从加法器15提供到数据接收器和发送器16。数据接收器和发送器16存取分配了运算地址的存储单元,从中读出信息片。数据接收器和发送器接收信息片,并把它发送到目的地。
信息检索系统如下操作。假设现在检索请求信号携带检索关键字1,即N-位检索码“AAaa”,检索关键字提取器11从检索请求信号中提取检索关键字码“AAaa”,并且把检索关键字码“AAaa”提供到检索关键字分割器12。检索关键字分割器12将检索关键字码“AAaa”分割成m-位检索子码“AA”和n-位检索子码“aa”。从检索关键字分割器12将m-位检索子码“AA”和n-位检索子码“aa”提供到数据缓存器13a/13b。将m-位检索子码“AA”和n-位检索子码“aa ”分别存储在数据缓存器13a/13b中。
首先,CAM控制器14取出m-位检索子码“AA”。CAM控制器14搜索内容可寻址存储器20,寻找与m-位检索子码“AA”相同的m-位代码。m-位代码“AA”存储在地址“a”的存储单元中。当检索关键字部分“AA”遇到m-位代码时,内容可寻址存储器20把地址“a”传送到CAM控制器14。CAM控制器14把地址“a”提供到数据存储器30,并且用地址“a”确定指针值“A’”。将指针值“A’”提供到加法器15。地址“A’”用作基本地址。
接下来,CAM控制器14取出n-位检索子码“aa”。CAM控制器14搜索内容可寻址存储器20,寻找与n-位检索子码“aa”相同的n-位代码。n-位代码“aa”存储在地址“b”的存储单元中。当使检索关键字部分“aa”遇到n-位代码时,内容可寻址存储器20把地址“b”传送到CAM控制器14。CAM控制器14将地址“b”提供到数据存储器30,并且用地址“b”确定指针值“a’”。将指针值“a’”提供到加法器15。地址“a’”用作位移地址。
加法器计算运算地址“A’+a’”,并且把运算地址“A’+a’”提供到数据接收器和发送器16。粗实线代表关键字部分“AA”的检索操作,而虚线代表关键字部分“aa”的检索操作。
数据接收器和发送器16存取存储在地址“A’+a’”的信息片“1”,并且把信息片“1”发送到目的地。
尽管在内容可寻址存储器20上进行了两次检索操作,但是只完全搜索了一次内容可寻址存储器20a/20,以寻找m-位代码,并且部分地搜索n-位代码。这导致检索中耗费的时间周期减少。
检索控制器110仅需要一个内容可寻址存储器20,因此,只需要一个CAM控制器14,并且在指针值与信息片之间共享数据存储器30。尽管搜索耗费的时间周期比第二实施例稍长,但是实现第四实施例的信息检索系统比实现第二和第三实施例的信息检索系统更简单。第五实施例
转到图13,实现本发明的又一个信息检索系统包括:检索控制器210,内容可寻址存储器20,地址存储器230a,和数据存储器230b。信息检索系统使用一个由N-位检索码表示的检索关键字实施检索操作。每个检索关键字可以分割成用与第二实施例中使用的相同的一个m-位检索子码和一个n-位检索子码表示的关键字部分。在本例中,m-位代码的位宽度上远大于n-位代码,即,m>>n,并且n-位检索子码代表位移地址。N-位检索码是用n-位检索子码代表位移地址的方式产生的。
内容可寻址存储器20具有多个可寻址存储单元。内容的一些部分分别由m-位代码表示,并且把m-位代码存储在存储单元“a”,“b”,“c”,…“f”,“g”,…中(见图13)。内容的其余部分如上所述转换成n-位检索子码。搜索内容可寻址存储器20,以寻找与m-位检索子码相同的m-位代码。
地址存储器230a具有多个分配了地址“a”,“b”,“c”,…“f”,“g”,…的存储单元。m-位代码的地址的指针值存储在与分配给内容可寻址存储器20的存储单元的地址相同的地址中。
数据存储器230b具有多个可寻址存储单元,并且把信息片“1”,“2”,“3”,…“k”,“k+1”,…存储在多个可寻址存储单元中。信息片与检索关键字有关。运算地址“A’+aa”,…“B’+bb”分配给多个存储了信息片的存储单元。利用基于指针值和用n-位检索子码表示的位移地址的运算地址指定每个信息片。
控制器110包括检索关键字提取器11,检索关键字分割器12,数据缓存器13a/13b,CAM控制器214,加法器215,和数据接收器和发送器16。尽管在图13中没有示出,但是有一个信号输入端口连接到检索关键字提取器11。将一个信息检索请求信号提供到检索关键字提取器11,检索关键字提取器11从请求信号中提取N-位检索码。检索关键字提取器11连接到检索关键字分割器12,并且将N-位检索码或N-位检索关键字从检索关键字提取器11提供到检索关键字分割器12。检索关键字分割器12把N-位检索码分割成m-位检索子码和n-位检索子码,即,m-位检索关键字部分和n-位检索关键字部分。
检索关键字分割器12具有两个分别连接到数据缓存器13a/13b的输出端口。将m-位检索子码提供到数据缓存器13a,并存储在其中。另一方面,将n-位检索子码提供到数据缓存器13b,并存储在其中。数据缓存器13a连接到CAM控制器214,并且将m-位检索子码提供到CAM控制器214。另一方面,数据缓存器13b连接到加法器215,并且把n-位检索子码提供到加法器215,作为加数。
CAM控制器214与内容可寻址存储器20相联。CAM控制器214进一步连接到地址存储器230a,地址存储器230a连接到加法器215。CAM控制器214搜索相联的内容可寻址存储器20,寻找一个与m-位检索子码相同的m-位代码,并且确定存储m-位代码的地址。CAM控制器214将地址提供到地址存储器230a,并且把指针值从地址存储器230a提供到加法器215。加法器215把指针值加到由n-位检索子码表示的值,并且确定一个运算地址。
加法器215具有一个连接到数据接收器和发送器16的输出端口,并且把运算地址从加法器215提供到数据接收器和发送器16。数据接收器和发送器16存取分配了与运算地址相同的地址的存储单元,并且从中读出信息片。数据接收器和发送器16接收信息片,并且把它发送到目的地。
信息检索系统如下操作。假设现在检索请求信号携带检索关键字1,即N-位检索码“AAaa”,检索关键字提取器11从检索请求信号提取检索关键字码“AAaa”,并且把检索关键字码“AAaa”提供到检索关键字分割器12。检索关键字分割器12将检索关键字码“AAaa”分割成m-位检索子码“AA”和n-位检索子码“aa”。从检索关键字分割器12将m-位检索子码“AA”和n-位检索子码“aa”提供到数据缓存器13a/13b。m-位检索子码“AA”和n-位检索子码“aa”分别存储在数据缓存器13a/13b中。
CAM控制器214取出m-位检索子码“AA”。CAM控制器214搜索内容可寻址存储器20,寻找与m-位检索子码“AA”相同的m-位代码。m-位代码“AA”存储在地址“a”的存储单元中。当检索关键字部分“AA”遇到m-位代码时,内容可寻址存储器20把地址“a”提供到CAM控制器214。CAM控制器214把地址“a”提供到地址存储器230a,并且用地址“a”确定指针值“A’”。将指针值“A’”提供到加法器215。地址“A’”用作基本地址。
从数据缓存器13b把n-位检索子码提供到加法器215,作为加数。加法器215计算运算地址“A’+a’”,并且把运算地址“A’+a’”提供到数据接收器和发送器16。
数据接收器和发送器16存取存储在地址“A’+a’”的信息片“1”,并且把信息片“1”传送到目的地。
尽管使n-位检索子码与位移地址一致,但是仅搜索内容可寻址存储器20一次,以寻找m-位代码。这导致了检索中耗费时间周期的减少,并且无论检索关键字如何都使时间周期恒定。
检索控制器110仅需要一个内容可寻址存储器20,因而仅需要一个CAM控制器。因此,实现第五实施例的信息检索系统比实现第一实施例的信息检索系统更为简单。
n-位检索子码的位数与指针值一起定义数据存储器230b中的存储空间。如果位数太大,那么数据接收器和发送器16不能适当地存取存储空间外部的存单元。第六实施例
转到图15,实现本发明的又一个信息检索系统包括:检索控制器210,内容可寻址存储器20,和数据存储器230。地址存储器230a和数据存储器230b被一个单一的数据存储器230代替。信息检索系统利用一个由N-位检索码表示的检索关键字实施检索操作。每个检索关键字可以分割成用与第二实施例中使用的相同的一个m-位检索子码和一个n-位检索子码表示的关键字部分。但是,m-位检索子码的位宽度大于n-位检索子码,即,m>>n,并且n-位检索子码代表位移地址。N-位检索代码是以n-位检索子码代表位移地址的方式产生的。
内容可寻址存储器20具有多个可寻址存储单元。内容的一些部分分别由m-位代码表示,并且把m-位代码存储在存储单元“a”,“b”,“c”…“f”,“g”,…中(见图16)。其余的内容部分被转换成n-位检索子码,并且如上所述,n-位检索子码用作位移地址。搜索内容可寻址存储器20,以寻找与m-位检索子码相同的m-位代码。
数据存储器230具有两个存储空间,其中一个分配给指针值,另一个分配给有关检索关键字的信息片。第一存储空间具有多个分配了地址“a”,“b”,“c”…“f”,“g”,…的存储单元,并且把m-位代码的地址的指针值存储在与分配给内容可寻址存储器20的存储单元的地址相同的地址中。
第二存储空间也具有多个可寻址存储单元,并且将信息片“1”,“2”,“3”,…“k”,“k+1”,…存储在多个可寻址存储单元中。信息片与检索关键字相关。把运算地址“A’+aa”,…“B’+bb”分配给存储了信息片的多个存储单元。利用基于指针值和n-位检索子码表示的位移地址的运算地址指定每个信息片。
控制器210包括一个检索关键字提取器11,一个检索关键字分割器12,数据缓存器13a/13b,一个CAM控制器214,一个加法器215,和一个数据接收器和发送器16。尽管在图15中没有示出,但是有一个信号输入端口连接到检索关键字提取器11。将一个信息检索请求信号提供到检索关键字提取器11,检索关键字提取器11从请求信号中提取N-位检索码。检索关键字提取器11连接到检索关键字分割器12,并且从检索关键字提取器11将N-位检索码或N-位检索关键字提供到检索关键字分割器12。检索关键字分割器12将N-位检索码分割成m-位检索子码和n-位检索子码,即,m-位检索关键字部分和n-位检索关键字部分。
检索关键字分割器12具有两个分别连接到数据缓存器13a/13b的输出端口。m-位检索子码被提供到数据缓存器13a,并存储在其中。另一方面,n-位检索子码被提供到数据缓存器13b,并存储在其中。数据缓存器13a连接到CAM控制器214,并且把m-位检索子码提供到CAM控制器214。另一方面,数据缓存器13b连接到加法器215,并且把n-位检索子码提供到加法器215,作为加数。
CAM控制器214与内容可寻址存储器20相联。CAM控制器214进一步连接到数据存储器230,数据存储器230连接到加法器215和接收器和发送器16。CAM控制器搜索相联的内容可寻址存储器20,寻找一个与m-位检索子码相同的m-位代码,并且确定存储m-位代码的地址。CAM控制器214将地址提供到数据存储器230,并且从数据存储器230将指针值提供到加法器215。加法器215把指针值加到用n-位检索子码表示的值上,并确定一个运算地址。
加法器215具有一个连接到数据接收器和发送器16的输出端口,并且把运算地址从加法器215提供到数据接收器和发送器16。数据接收器和发送器16存取分配了与运算地址相同地址的存储单元,并且从中读出信息片。数据接收器和发送器16接收信息片,并把它发送到目的地。
信息检索系统如下操作。假设现在检索请求信号携带检索关键字1,即,N-位检索码“AAaa”,检索关键字提取器11从检索请求信号中提取检索关键字码“AAaa”,并且将检索关键字码“AAaa”提供到检索关键字分割器12。检索关键字分割器12将检索关键码“AAaa”分割成m-位检索子码“AA”和n-位检索子码“aa”。从检索关键字分割器12将m-位检索子码“AA”和n-位检索子码“aa”提供到数据缓存器13a/13b。将m-位检索子码“AA”和n-位检索子码“aa”分别存储在数据缓存器13a/13b中。
CAM控制器214取出m-位检索子码“AA”。CAM控制器214搜索内容可寻址存储器20,寻找与m-位检索子码“AA”相同的m-位代码。m-位代码“AA”存储在分配了地址“a”的存储单元中。当使检索关键字部分“AA”遇到m-位代码时,内容可寻址存储器20将地址“a”传送到CAM控制器214。CAM控制器214将地址“a”提供到数据存储器230,并且用地址“a”确定指针值“A’”。将指针值“A’”提供到加法器215。地址“A’”用作基本地址。
n-位检索子码从数据缓存器13b提供到加法器215,作为加数。加法器215计算运算地址“A’+a’”,并且把运算地址“A’+a’”提供到数据接收器和发射器16。
数据接收器和发射器16存取存储在地址“A’+a’”的信息片“1”,并且把信息片“1”传送到目的地。
尽管使n-位检索子码与位移地址一致,但仅搜索内容可寻址存储器20一次,寻找m-位代码。这导致了检索耗费时间周期的减少,并且可以不管检索关键字使时间周期恒定。
检索控制器110仅需要一个内容可寻址存储器20,因此,仅需要一个CAM控制器214和一个数据存储器230。因此,实现第六实施例的信息检索系统比实现第四实施例的信息检索系统更简单。第七实施例
转到图17,实现本发明的又一个信息检索系统包括:检索控制器310,内容可寻址存储器20,和数据存储器30b。信息检索系统利用一个用N-位检索码表示的检索关键字执行检索操作。每个检索关键字可以分割成由一个m-位检索子码和一个n-位检索子码表示的关键字部分。在本例中,m-位代码的位宽度等于n-位代码,即,m=n。
内容可寻址存储器20具有多个可寻址存储单元。一些内容部分分别用m-位代码表示,并且把m-位代码存储在存储单元“a”,“b”,“c”…中。其余的内容部分分别用n-位代码表示,并且把n-位代码存储在存储单元“f”,“g”,“h”…中(见图18)。每个n-位代码具有代表位移地址的低位。搜索内容可寻址存储器20,以寻找与m-位/n-位检索子码相同的m-位/n-位代码。
数据存储器30b具有多个可寻址存储单元,信息片“1”,“2”,“3”,…“k”,“k+1”,…存储在多个可寻址存储单元中。信息片与检索关键字相关。将运算地址“A”+A”,…“B”+b”,…分配给存储信息片的多个存储单元。利用基于指针值和用n-位检索子码的低位表示的位移地址的运算地址指定每个信息片。
控制器110包括一个检索关键字提取器11,一个检索关键字分割器12,数据缓存器13a/13b,一个CAM控制器314,一个移位器17,一个屏蔽电路18,一个加法器215,和一个数据接收器和发送器16。尽管图17中没有示出,但有一个信号输入端口连接到检索关键字提取器11。将一个信息检索请求信号提供到检索关键字提取器11,检索关键字提取器11从请求信号中提取N-位检索码。检索关键字提取器11连接到检索关键字分割器12,并且从检索关键字提取器11将N-位检索码或N-位检索关键字提供到检索关键字分割器12。检索关键字分割器12将N-位检索码分割成m-位检索子码和n-位检索子码,即,m-位检索关键字部分和n-位检索关键字部分。
检索关键字分割器12具有两个分别连接到数据缓存器13a/13b的输出端口。m-位检索子码被提供到数据缓存器13a,并存储在其中。另一方面,n-位检索子码被提供到数据缓存器13b,并存储在其中。数据缓存器13a/13b连接到CAM控制器314,CAM控制器314顺序地取出m-位检索子码和n-位检索子码。
CAM控制器314与内容可寻址存储器20相联,并且重复两次检索。搜索内容可寻址存储器20,以寻找与m-位检索子码相同的m-位代码,和与n-位检索子码相同的n-位代码。在图17中,粗实线代表m-位代码的检索操作的流程,虚线代表n-位代码检索操作的流程。
内容可寻址存储器20连接到移位器17和屏蔽电路18,移位器17和屏蔽电路连接到加法器315。当从内容可寻址存储器20读出与m-位检索子码相同的一个m-位代码的地址时,在移位器17中将地址代码向最高有效位移位预定的位数。用移位的地址代码表示的地址用作基本地址。另一方面,当从内容可寻址存储器20读出与n-位检索子码相同的一个n-位代码的地址时,屏蔽地址代码的高位,并且这个局部屏蔽的地址代码代表位移地址。
将基本地址和位移地址提供到加法器315,加法器315将位移地址加到基本地址上,以便产生一个运算地址。加法器315具有一个连接到数据接收器和发送器16的输出端口,并且把运算地址从加法器315提供到数据接收器和发送器16。数据接收器和发送器16存取分配了与运算地址相同的地址的存储单元,并且从中读出信息片。数据接收器和发送器16接收信息片,并把它发送到目的地。
信息检索系统如下操作。假设现在检索请求信号携带检索关键字1,即,N-位检索码“AAaa”,检索关键字提取器11从检索请求信号中提取检索关键字码“AAaa”,并且将检索关键字码“AAaa”提供到检索关键字分割器12。检索关键字分割器12将检索关键字码“AAaa”分割成m-位检索子码“AA”和n-位检索子码“aa”。从检索关键字分割器12将m-位检索子码“AA”和n-位检索子码“aa”提供到数据缓存器13a/13b。m-位检索子码“AA”和n-位检索子码“aa”分别存储在数据缓存器13a/13b中。
CAM控制器214从数据缓存器13a取出m-位检索子码“AA”。CAM控制器214搜索内容可寻址存储器20,寻找与m-位检索子码“AA”相同的一个m-位代码。m-位代码“AA”存储在地址“a”的存储单元中。当使检索关键字部分“AA”遇到m-位代码时,内容可寻址存储器20将地址“a”传送到移位器17。将代表地址“a”的地址代码向最高有效位移位预定的位数,并且移位的地址代码代表了基本地址“A””。将基本地址“A””提供到加法器315。
CAM控制器214从数据缓存器13b取出n-位子码“aa”,并搜索内容可寻址存储器20,以寻找与n-位检索子码相同到n-位代码。n-位代码“aa”存储在分配了地址“g”的存储单元中。当使n-位检索子码遇到n-位代码时,将地址“g”从内容可寻址存储器20提供到屏蔽电路18。将代表地址“g”的地址代码的高位屏蔽,并且把局部屏蔽的地址代码,即,位移地址“a””从屏蔽电路18提供到加法器315。
加法器315计算运算地址“A”+a””,并且把运算地址“A”+a””提供到数据接收器和发送器16。
数据接收器和发送器16存取存储在地址“A”+a””的信息片“1”,并且把信息片“1”传送到目的地。
尽管实现第七实施例的信息检索系统对内容可寻址存储器20执行检索操作两次,但是检索操作是在比现有技术信息检索系统短的时间内完成的,并且仅需要两个存储器20/30b。因此,可以大大减小实现第七实施例的信息检索系统中的存储器容量。
从上面的说明中可以知道,本发明的检索系统具有以下优点。
首先,对于每个检索关键字部分,独立于另一个检索关键字部分搜索内容可寻址存储器。这导致了信息检索耗费时间周期的减少。在具有独立地分配了检索关键字部分的内容可寻址存储器的实施例中,对于各检索关键字部分,控制器并行地搜索相联的内容可寻址存储器,以便能够在一恒定时间中快速完成检索。即使内容可寻址存储器比检索关键字部分的数量少,检索顺序也能适合于流水线内容可寻址存储器或多个存储器,并且在短的时间周期内完成检索。
第二,m-位/n-位代码的组合对应于检索关键字。从减少存储器容量的观点看,这个特征是十分可取的,因为可以把内容的各部分分别存储在存储单元中,而不必复制。例如,检索关键字1具有与检索关键字3的n-位代码相同的n-位代码(见图7)。在现有技术信息检索系统中,m-位代码“AA”和“BB”存储在一个内容可寻址存储器中,并且把n-位代码“aa”存储在另一个内容可寻址存储器中存储两次。另一方面,尽管对于m-位代码“AA”和“BB”需要两个存储单元,但是在本发明的信息检索系统中,仅把n-位代码“aa”寄存在一个存储单元中。
第三,利用分配给指针值的存储空间,使得信息检索中的内容寄存简化。这是由于内容是独立于分配给有关内容的信息片的地址的事实。
最后,可以用一个适合的电路或多个电路部分或全部地取代地址存储器。在那些实施例中,需要的存储容量减少。
每个内容可寻址存储器2a/2b/,20a/20b,20作为第一存储器,而数据存储器4/30b/230b/30b或数据存储器30/230中的存储空间相当于一个第二存储器。通过地址确定装置与控制器的组合3/5,地址存储器与检索控制器的组合30a/10,30a/110,230a/210,数据存储器中的存储空间与检索控制器的组合30/110,230/210,或仅是检索控制器310,实现了地址产生装置。
尽管已经示出和说明了本发明的特定实施例,但熟悉本领域的人员应当知道,可以进行各种改变或修改,而不脱离本发明的精神和范围。
例如,可以把检索关键字分割成两个以上的关键字部分。在这种情况下,将每个内容分割成两个以上的子码,并且分别独立地存储在内容可寻址存储器中。并行地进行检索,并且在一个预定的时间周期内完成。
CAM控制器可以搜索内容可寻址存储器,以寻找一个与n-位检索子码相同的n-位代码,并且随后,寻找与m-位检索子码相同的m-位代码。
在上述实施例中,结合了加法器。但是,可以用任何种类的运算电路替代加法器,只要运算电路能够通过预定的算法或逻辑操作确定要存取的地址。
Claims (17)
1.一种用于选择有关分割成多个检索子码的检索关键字码的信息片的信息检索系统,包括:
第一存储器(2a/2b;20a/20b;20),包括多个用于分别存储多组位宽度等于所述多个检索子码的内容代码的存储空间,并且响应所述多个检索子码,以便输出多个代表分别从所述多个存储空间选择的存储单元的地址代码,与多个存储在所述存储单元中的所述检索子码相同的内容代码;
第二存储器(4;30b;30;230b;230),具有多个用于存储信息片的可寻址存储单元,并且响应目标地址,以便从所述信息片选择有关所述检索关键字码的所述信息片;
地址产生装置,连接到所述第一存储器和第二存储器,
其特征在于,
所述地址产生装置(3/5;10/30a;110/30a;110/30;210/230a;210/230;310/30b)通过运算操作从所述地址代码产生所述目标地址,以便将所述目标地址提供到所述第二存储器。
2.根据权利要求1所述的信息检索系统,其特征在于所述地址产生装置还通过与所述地址代码的间接寻址产生所述目标地址。
3.根据权利要求2所述的信息检索系统,其特征在于所述地址产生装置包括:
地址存储器(30a;30;230a;230),具有多个用于将所述值与其它值一同存储的可寻址存储单元,并且响应所述地址代码,以便从所述地址代码确定的可寻址存储单元输出所述值;
运算电路(15;13b/215;17/18/315),连接到所述地址存储器和所述第二存储器、并且从所述值产生所述目标地址以便将所述目标地址提供到所述第二存储器。
4.根据权利要求3所述的信息检索系统,其特征在于所述运算电路(15;215;315)执行所述值之间的加法运算。
5.根据权利要求2所述的信息检索系统,其特征在于所述地址产生装置包括:
地址存储器(230a;230),具有多个用于将所述值中的至少一个与其它值一同存储的可寻址存储单元、并且响应所述地址代码中的至少一个,以便从所述至少一个所述地址代码指定的至少一个可寻址存储单元输出所述至少一个所述值;
地址转换器(13b),对其提供所述多个检索子码中的至少一个,以便产生剩余值;
运算电路(215),连接到所述地址存储器和所述地址转换器,并且从所述值中的所述至少一个和所述剩余值产生所述目标地址,以便将所述目标地址提供到所述第二存储器。
6.根据权利要求5所述的信息检索系统,其特征在于所述地址转换器是存储所述多个检索子码中的所述至少一个的数据缓存器(13b)。
7.根据权利要求5所述的信息检索系统,其特征在于所述运算电路(215)执行所述值中的所述至少一个与所述其余值之间的加法运算。
8.根据权利要求2所述的信息检索系统,其特征在于所述地址产生装置包括:
地址转换器(17/18),连接到所述第一存储器并转换所述地址代码以修改代表所述值的代码;
运算电路(315),连接到所述地址转换器并从所述值产生所述目标地址以便将所述目标地址提供到所述第二存储器。
9.根据权利要求8所述的信息检索系统,其特征在于所述地址转换器包括:
移位器(17),连接到所述第一存储器并移位所述地址代码中的至少一个以便产生一个所述修改代码;
屏蔽电路(18),连接到所述第一存储器并屏蔽另一个所述地址代码的预定位以便产生另一个所述修改代码。
10.根据权利要求8所述的信息检索系统,其特征在于所述运算电路(315)是用一个对其提供所述修改代码以产生所述目标地址的加法器实现的。
11.根据权利要求1所述的信息检索系统,其特征在于所述多个存储空间是在彼此独立的多个存储装置(20a/20b)中建立的,并且所述地址产生装置包括与所述多个存储装置相联以便实际上并行地存取所述地址代码的多个存储器控制器(14a/14b)。
12.根据权利要求11所述的信息检索系统,其特征在于所述地址产生装置包括:
地址存储器(30a),包括多个彼此间隔对应于特定地址距离的存储空间并且具有多组用于将所述值与其它值一同存储的可寻址存储单元;
控制器(14a/14b),连接到所述第一存储器和所述地址存储器,并且响应所述地址代码中的一个以从所述多个存储空间之一中读出一个所述值,和根据另一个所述地址代码和所述特定地址计算一个修改地址代码,以便从所述多个存储空间中的另一个存储空间中读出另一个所述值;
运算电路(15),连接到所述地址存储器并且从所述值产生所述目标地址以便将所述目标地址提供到所述第二存储器。
13.根据权利要求12所述的信息检索系统,其特征在于所述运算电路(15)执行所述值中的所述至少一个与所述值中所述另一个之间的加法运算。
14.根据权利要求1所述的信息检索系统,其特征在于所述第一存储器的所述多个存储单元是建立在一个单一存储器件(20)中的,并且所述第一存储器串行地将所述地址代码提供到所述地址产生装置。
15.根据权利要求14所述的信息检索系统,其特征在于所述多个存储空间中的一个具有特定数量的可寻址存储单元(a/h),并且被分配了代表所述多个检索子码中的一个的不同代码(AA/BB),和所述多个存储空间中的另一个被分割成多个存储子空间(b/c/g;i/j)以存储多个代表所述多个检索子码中的另一个的代码组(aa/bb/ff;cc/gg),其中所述多个存储子空间与所述多个存储空间中所述一个中的所述特定数量的可寻址存储单元交替排列。
16.根据权利要求15所述的信息检索系统,其特征在于所述地址产生装置包括:
地址存储器(30a),具有多个用于将所述值与其它值一同存储的可寻址存储单元,并且响应所述地址代码以便从所述地址代码确定的可寻址存储单元输出所述值;
运算电路(15),连接到所述地址存储器并且从所述值产生所述目标地址以便将所述目标地址提供到所述第二存储器。
17.根据权利要求16所述的信息检索系统,其特征在于所述运算电路(15)执行所述值之间的加法运算。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001115468 | 2001-04-13 | ||
JP2001115468A JP3644494B2 (ja) | 2001-04-13 | 2001-04-13 | 情報検索装置 |
JP115468/2001 | 2001-04-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1381797A true CN1381797A (zh) | 2002-11-27 |
CN1194321C CN1194321C (zh) | 2005-03-23 |
Family
ID=18966363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021056048A Expired - Fee Related CN1194321C (zh) | 2001-04-13 | 2002-04-15 | 高速信息检索系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20020152352A1 (zh) |
JP (1) | JP3644494B2 (zh) |
CN (1) | CN1194321C (zh) |
CA (1) | CA2381112A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221538B (zh) * | 2008-01-24 | 2010-10-13 | 杭州华三通信技术有限公司 | 实现对缓存中数据快速查找的系统和方法 |
CN105190762A (zh) * | 2013-03-13 | 2015-12-23 | 长瀬产业株式会社 | 半导体装置及写入/读取登录位址于半导体装置中的方法 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003169A1 (en) * | 2002-06-27 | 2004-01-01 | Josh Meit | Method for executing look up table function |
US20040078536A1 (en) * | 2002-10-22 | 2004-04-22 | Tai-Ming Chen | Authentication mechanism integrated with random access memory and method of use |
US7296127B2 (en) | 2003-03-31 | 2007-11-13 | Intel Corporation | NoDMA cache |
US7260675B1 (en) | 2003-07-15 | 2007-08-21 | Integrated Device Technology, Inc. | CAM-based search engines that support pipelined multi-database search operations using encoded multi-database identifiers |
US7058757B1 (en) * | 2003-07-15 | 2006-06-06 | Integrated Device Technology, Inc. | Content addressable memory (CAM) devices that support distributed CAM control and methods of operating same |
US9229646B2 (en) * | 2004-02-26 | 2016-01-05 | Emc Corporation | Methods and apparatus for increasing data storage capacity |
JP4634751B2 (ja) * | 2004-07-08 | 2011-02-16 | 株式会社東芝 | 記憶媒体処理方法、記憶媒体処理装置及びプログラム |
EP2259204A1 (en) | 2008-03-28 | 2010-12-08 | Panasonic Corporation | Software updating apparatus, software updating system, invalidation method, and invalidation program |
WO2009118800A1 (ja) * | 2008-03-28 | 2009-10-01 | パナソニック株式会社 | ソフトウェア更新装置、ソフトウェア更新システム、改ざん検証方法、及び改ざん検証プログラム |
US8356125B1 (en) * | 2008-05-15 | 2013-01-15 | Xilinx, Inc. | Method and apparatus for providing a channelized buffer |
JP6166306B2 (ja) * | 2015-05-18 | 2017-07-19 | 長瀬産業株式会社 | 半導体装置,情報処理システム,及び情報書込/読出方法 |
US9875776B1 (en) * | 2016-11-29 | 2018-01-23 | Qualcomm Incorporated | Bit writability implementation for memories |
US11436071B2 (en) | 2019-08-28 | 2022-09-06 | Micron Technology, Inc. | Error control for content-addressable memory |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5259066A (en) * | 1990-04-16 | 1993-11-02 | Schmidt Richard Q | Associative program control |
US5440715A (en) * | 1990-06-27 | 1995-08-08 | Advanced Micro Devices, Inc. | Method and apparatus for expanding the width of a content addressable memory using a continuation bit |
JP2812262B2 (ja) * | 1995-08-31 | 1998-10-22 | 日本電気株式会社 | 連想記憶装置 |
JP3141866B2 (ja) * | 1999-01-18 | 2001-03-07 | 日本電気株式会社 | 連想記憶装置及び連想メモリ検索方法 |
US20020089937A1 (en) * | 2000-11-16 | 2002-07-11 | Srinivasan Venkatachary | Packet matching method and system |
US6629099B2 (en) * | 2000-12-07 | 2003-09-30 | Integrated Silicon Solution, Inc. | Paralleled content addressable memory search engine |
-
2001
- 2001-04-13 JP JP2001115468A patent/JP3644494B2/ja not_active Expired - Fee Related
-
2002
- 2002-04-08 US US10/117,197 patent/US20020152352A1/en not_active Abandoned
- 2002-04-10 CA CA002381112A patent/CA2381112A1/en not_active Abandoned
- 2002-04-15 CN CNB021056048A patent/CN1194321C/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221538B (zh) * | 2008-01-24 | 2010-10-13 | 杭州华三通信技术有限公司 | 实现对缓存中数据快速查找的系统和方法 |
CN105190762A (zh) * | 2013-03-13 | 2015-12-23 | 长瀬产业株式会社 | 半导体装置及写入/读取登录位址于半导体装置中的方法 |
CN105190762B (zh) * | 2013-03-13 | 2018-06-12 | 长瀬产业株式会社 | 半导体装置及写入/读取登录位址于半导体装置中的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1194321C (zh) | 2005-03-23 |
US20020152352A1 (en) | 2002-10-17 |
JP3644494B2 (ja) | 2005-04-27 |
CA2381112A1 (en) | 2002-10-13 |
JP2002313086A (ja) | 2002-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1306420C (zh) | 利用永久历史页表数据预取数据到高速缓存的装置和方法 | |
CN1194321C (zh) | 高速信息检索系统 | |
CN1295622C (zh) | 地址映射方法和映射信息管理方法及其闪速存储器 | |
CN1191524C (zh) | 预取指令的执行方法和设备 | |
CN1205549C (zh) | 用于多-线程虚拟机的存储器分配的方法和装置 | |
CN1950802A (zh) | 存储器分配 | |
CN1014565B (zh) | 用dasd高速缓存器处埋磁盘扇区误差的方法 | |
US5606685A (en) | Computer workstation having demand-paged virtual memory and enhanced prefaulting | |
CN1084896C (zh) | 清空高速缓冲存储器内容的装置 | |
CN1690952A (zh) | 根据多组高速缓存组预测来选择执行的指令的装置和方法 | |
CN1655118A (zh) | 处理器和编译器 | |
CN1652092A (zh) | 不同高速缓存级上具有关联集重叠同余组的多级高速缓存 | |
CN1581069A (zh) | 具有多位字段的寄存器的重命名 | |
CN1929451A (zh) | 一种解决Hash冲突的方法及装置 | |
CN1794236A (zh) | 高效的基于cam在分组有效载荷中进行串搜索的技术 | |
CN87100507A (zh) | 微处理器芯片上的堆栈式超高速缓冲存储器 | |
CN1975679A (zh) | 用于优化分段资源分配的方法和设备 | |
CN101034412A (zh) | 一种信息存储的方法、信息查找的方法及引擎装置 | |
CN100341009C (zh) | 在管线微处理器使用卷标以执行结合写入的装置及方法 | |
CN1901549A (zh) | 数据传输方法、装置、数据处理方法和数据传输系统 | |
CN112085644B (zh) | 多列数据排序方法、装置、可读存储介质和电子设备 | |
CN1278931A (zh) | 特别适于译码数字音频信号的数字信号处理器 | |
KR20200052558A (ko) | 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법 | |
CN1893282A (zh) | 一跨序列排序涡轮码系统和其操作方法 | |
CN1302396C (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 | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050323 Termination date: 20160415 |
|
CF01 | Termination of patent right due to non-payment of annual fee |