CN103283149A - 用于处理数据元素序列的装置和方法 - Google Patents

用于处理数据元素序列的装置和方法 Download PDF

Info

Publication number
CN103283149A
CN103283149A CN2011800634251A CN201180063425A CN103283149A CN 103283149 A CN103283149 A CN 103283149A CN 2011800634251 A CN2011800634251 A CN 2011800634251A CN 201180063425 A CN201180063425 A CN 201180063425A CN 103283149 A CN103283149 A CN 103283149A
Authority
CN
China
Prior art keywords
data element
string
data
output
search
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
Application number
CN2011800634251A
Other languages
English (en)
Other versions
CN103283149B (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103283149A publication Critical patent/CN103283149A/zh
Application granted granted Critical
Publication of CN103283149B publication Critical patent/CN103283149B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)

Abstract

一种当在CAM中存储的数据中没有生成错误时使用CAM执行的过程,即使在CAM中存储的数据中生成错误也可以继续。输入字符编码被提供给压缩数据路径和非压缩数据路径。在压缩数据路径中,重复数据检索电路(21)输出CAM中的字符串的一致地址和指示CAM中的字符串的一致性的字符串一致信号输出。另一方面,在非压缩数据路径中,触发器(1001至1004)发送字符码而不做任何改变。如果从重复数据检索电路(21)没有输出奇偶错误信号并且字符串一致信号的连续输出的数目为3或更大,则选择器(98)输出来自压缩数据路径的一致地址和字符串一致信号的连续输出的数目,否则输出来自非压缩数据路径的字符码。

Description

用于处理数据元素序列的装置和方法
技术领域
本发明涉及用于处理数据元素串的设备和方法,并且具体地,涉及用于基于第二部分数据元素串的位置来处理数据元素串的第一部分数据元素串的设备和方法。
背景技术
Deflate压缩(RFC1951)是一种当前在电脑上广泛使用的ZLIB(RFC1950)和GZIP(RFC1952)以其为基础的压缩方法,并且使用LZ77编码。在LZ77编码中,搜索数据中的字符串的重复部分,并且用重复的部分的位置和长度来替换字符串,以压缩数据。例如,如果字符串“IBM is IBM”使用LZ77编码,则第二次出现的“IBM”就被压缩,因为该部分是重复部分。特别地,该部分通过用诸如“7,3”的编码替换它而被压缩,编码“7,3”指示“三个字符长的字符出现在它重复之前的七个字符处”。在这种情况下,重复的部分越长,压缩比就越高。
在针对deflate压缩的规范中,在字符串之前的多达32K字节的数据中搜索该字符串的重复出现,这要求针对搜索字符的重复出现对字符串进行比较的大量处理。
因此,由软件来执行该处理需要大量的处理时间。哈希算法通常用于通过软件减少搜索时间。然而,如果多个字符串具有相同的哈希值,哈希算法就可能丢弃一些字符串。也即,考虑到处理时间和缓冲器容量,很难在没有遗漏的情况下找出所有字符串。
因此,本申请提出能够在没有遗漏的情况下通过硬件找出所有字符串(例如,见专利文献1至专利文献3)的方法。此外,该方法能够相当快地找到字符串。
在专利文献1中,被搜索字符串(BABCABB)以该顺序存储在内容可寻址存储器的单元列中,当在被搜索字符串(BABCABB)中搜索一个搜索字符串(ABCA)时,在所有的单元列中进行与首字符(A)的比较操作,与下一字符(B)的比较操作仅在与以前发现了匹配的单元列邻近的具有地址(2)和地址(5)的单元列中进行,与下一字符(C)的比较操作相似地仅在具有地址(3)和地址(6)的单元列中进行,并且与末字符(A)的比较操作相似地仅在具有地址(4)的单元列中进行,以便搜索处理在短时间内完成。
在专利文献2中,在与接地端相反的匹配线的部分和电源之间提供在它们之间带有开关元件的第一开关设备。第一开关设备在周期的部分接通,在该周期的部分期间或者在比较之前的预备周期的部分期间,内容可寻址存储器根据比较的结果来接通或断开开关元件,由此减小了直通电流流过的周期,从而节省了功率消耗。
在专利文献3中,写缓冲中的搜索字符与存储在CAM的每个单元列中的字符数据的比较结果被依次保持在第一锁存器和第二锁存器中,信号生成电路将前级中的来自第一锁存器的输出的和来自第三锁存器的输出的AND(与)通过第三锁存器输出至优先编码器,并且在输入信号为低时输出至OR(或)电路,或者将前级中的来自第一锁存器的输出的和来自第二锁存器的输出的AND通过第三锁存器输出至优先编码器,并且在输入信号为高时输出至或电路,然后第一优先编码器和第二优先编码器将输入信号的OR输出,并且从或电路输出的信号通过第四锁存器和另一或电路输入每个信号生成电路,从而将信号需要在一个时钟周期内通过的路径减半,以加快处理。
在这些字符串搜索方法中,组成字符的每个比特都被保持在内容可寻址存储器(CAM)的存储单元中。由于存储器单元更密集地聚集而生成的宇宙射线或其它噪声的影响,这些存储单元固有地倾向于发生称为软件错误的错误。一些传统的存储器具有错误检测电路,诸如奇偶校验电路,以便提高可靠性。本申请提出分别向CAM提供奇偶位,来执行奇偶错误检测(例如,见专利文献4)。
如果在CAM的存储单元中发生错误,则处理在该时间点挂起。为了避免此类停止,实际上期望合并一种错误更正电路,诸如ECC。然而,CAM需要针对每个字节合并ECC电路,这大大增加了电路尺寸。因此,专利文献4中的CAM仅合并奇偶校验电路。如果仅合并奇偶校验电路,则由于奇偶电路增加了电路大小,奇偶校验电路被创造性地设计成使得电路尺寸最小化。
[引用列表]
[专利文献]
[专利文献1]JP7-114577A
[专利文献2]JP8-147986A
[专利文献3]JP8-242176A
[专利文献4]WO2010/050282
发明内容
[技术问题]
期望在例如包压缩期间,如果在CAM中发生了专利文献4中描述的奇偶错误,则对该包的处理仍能够继续。这也是在一般地使用CAM的处理期间,在存储于CAM中的数据发生错误的情况下所期望的。
本发明的目的是允许除非存储在CAM中的数据发生错误否则使用CAM的处理能够继续,即使存储在CAM中的数据发生了错误。
[问题的解决方案]
为了实现这一目的,本发明提供一种设备,用于基于数据元素串的第二部分数据元素串的位置来处理数据元素串的第一部分数据元素串,并且包括:内容可寻址存储器,用于将构成至少部分的数据元素串的多个数据元素中的每一个存储进与数据元素在数据元素串中的位置对应的地址中,并且当提供搜索数据元素时,如果匹配搜索数据元素的匹配数据元素被存储为多个数据元素之一,则输出匹配数据元素所存储在的地址;第一路径,向内容可寻址存储器提供输入数据元素作为搜索数据元素,并且输出从内容可寻址存储器输出的地址;第二路径,将输入数据元素输出,而不向内容可寻址存储器提供输入数据元素作为搜索数据元素;以及处理部,当第一路径响应于特定数据元素的输入而向内容可寻址存储器提供包含于第一部分数据元素串中的特定数据元素作为搜索数据时,如果在匹配搜索数据元素的匹配数据元素中没有发生错误,则该处理部通过使用由从第一路径输出的地址所确定的第二部分数据元素串的位置来处理第一部分数据元素串,并且如果在匹配搜索数据元素的匹配数据元素中发生错误,则该处理部通过使用从第二路径输出的特定数据元素来处理第一部分数据元素串。
第二路径可以具有用于与来自第一路径的地址的输出同步地输出数据元素的流水线配置。
本发明还提供一种设备,该设备用指示数据元素串的第二部分数据元素串的位置和长度的信息来替换数据元素串的第一部分数据元素串,以压缩数据元素串,并且该设备包括:内容可寻址存储器,将构成至少部分的数据元素串的多个数据元素中的每一个存储进与数据元素串中的数据元素的位置对应的地址中,并且当提供搜索数据元素时,如果与搜索数据元素匹配的匹配数据元素被存储为多个数据元素之一,则输入匹配数据元素所存储在的地址;以及生成电路,当向内容可寻址存储器提供搜索数据元素时,如果匹配搜索数据元素串被存储进内容可寻址存储器,则该生成电路基于从内容可寻址存储器输出的地址而生成指示匹配之前提供的搜索数据元素串的匹配数据元素串被存储的串存在信息,以及指示匹配字符元素串所存储在的地址的列地址信息;第一路径,向内容可寻址存储器提供输入数据元素作为搜索数据元素,并且将由生成电路所生成的串存在信息和列地址信息输出;第二路径,将输入数据元素输出,而不向内容可寻址存储器提供输入数据元素作为搜索数据元素;以及处理部,当第一路径响应于特定数据元素的输入而向内容可寻址存储器提供包含于第一部分数据元素串的特定数据元素作为搜索数据元素时,如果满足了在匹配搜索数据元素的匹配数据元素中没有发生错误的条件,则该处理部就执行操作,用指示由来自第一路径的串存在信息的连续输出的数目和来自第一路径的列地址信息所确定的第二部分数据元素串的位置和长度的信息来替换第一部分数据元素串,并且如果在匹配搜索数据元素的匹配数据元素中发生错误,则该处理部就使用从第二路径输出的特定数据元素执行操作来防止第一部分数据元素串的部分被压缩。
当第一路径向内容可寻址存储器提供特定数据元素作为搜索数据元素时,如果除了上述一个条件之外,还满足了来自第一路径的串存在信息的连续输出的数目超过预定数目的条件,则处理部可以执行用为指示第二部分数据元素串的位置和长度的信息进行替换的操作。
当第一路径向内容可寻址存储器提供特定数据元素作为搜索数据元素时,如果来自第一路径的串存在信息的连续输出的数目没有超过预定数目,则处理部可以使用从第二路径输出的特定数据元素执行操作来防止第一部分数据元素串的部分被压缩。
第二路径可以具有用于与来自第一路径的串存在信息和列地址信息的输出同步地输出数据元素的流水线配置。
本发明还提供一种用指示数据元素串的第二部分数据元素串的位置和长度的信息来替换数据元素串的第一部分数据元素串的设备,以压缩数据元素串,并且包括:内容可寻址存储器,存储构成至少部分的数据元素串的多个数据元素中的每一个和对应于在与数据元素串中的数据元素位置对应的地址中的数据元素的奇偶元素,并且当提供搜索数据元素时,如果匹配搜索数据元素的匹配数据元素被存储为多个数据元素中的一个,则输出匹配数据元素所存储在的地址;以及生成电路,当向内容可寻址存储器提供搜索数据元素时,如果匹配数据串存储在内容可寻址存储器中,则在从内容可寻址存储器输出的地址的基础之上生成指示匹配之前提供的搜索数据元素串的匹配数据元素串被存储的串存在信息和指示匹配数据串所存储在的地址的列地址信息;确定电路,当向内容可寻址存储器提供搜索数据元素时,如果匹配数据元素存储在内容可寻址存储器中,则确定存储在匹配搜索数据信息的匹配数据信息所存储在的地址的奇偶元素的值是否生成自搜索数据元素;第一路径,向内容可寻址存储器提供输入数据元素作为搜索数据元素,并且输出由生成电路生成的串存在信息和列地址信息;第二路径,将输入数据元素输出,,而不向内容可寻址存储器提供输入数据元素作为搜索数据元素;以及处理部,当第一路径响应于特定数据元素的输入而向内容可寻址存储器提供包含于第一部分数据元素串的特定数据元素作为搜索数据元素时,如果满足了确定电路确定生成了奇偶元素的值以及来自第一路径的串存在信息的连续输出的数目超过了预定数目这两个条件,则执行用指示由从第一路径输出的连续输出的数目和列地址信息确定的第二部分数据元素串的位置和长度的信息来替换第一部分数据元素串,并且如果满足了确定电路确定未生成奇偶元素的值和来自第一路径的串存在信息的连续输出的数目未超过预定数目这两个条件中的至少一个,则使用从第二路径输出的特定数据元素执行操作来防止第一部分数据元素串的特定数据元素部分被压缩。
本发明还提供了一种基于数据元素串的第二部分数据元素串的位置来处理数据元素串的第一部分数据元素串的方法。方法包括:内容可寻址存储器,将构成至少部分的数据元素串的多个数据元素中的每一个存储进与数据元素在数据元素串中的位置对应的地址中,并且当搜索数据元素被提供时,如果匹配搜索数据元素的匹配数据元素被存储为多个数据元素中的一个,则输入匹配数据元素所存储在的地址;第一路径,向内容可寻址存储器提供输入数据元素作为搜索数据元素并且输出从内容可寻址存储器输出的地址;第二路径,将输入数据元素输出,而不向内容可寻址存储器提供输入数据元素作为搜索数据元素;并且包括步骤:当第一路径响应于特定数据元素的输入而向内容可寻址存储器提供包含于第一部分数据元素串的特定数据元素作为搜索数据元素时,确定在匹配搜索数据元素的匹配数据元素中是否发生了错误;并且如果确定了匹配数据元素中没有发生错误,则使用从第一路径输出的地址来处理第一部分数据元素串,并且如果确定匹配数据元素中发生了错误,则使用从第二路径输出的特定数据元素来处理第一部分数据元素串。
[发明的有益效果]
根据本发明,除非存储在CAM中的数据发生错误否则使用CAM来执行的操作可以继续,即使存储在CAM中的数据中发生了错误。
附图说明
图1是图示本发明的实施例所应用于的微型计算机示例性配置的框图;
图2是图示本发明的实施例中的重复数据搜索电路的示例性配置的框图;
图3是图示内容可寻址存储单元的示例性配置的电路图;
图4是图示奇偶存储单元的示例性配置的电路图;
图5是图示本发明的实施例中的比较结果控制电路的示例性配置的框图;
图6(a)至图6(e)是图示本发明的实施例中的比较结果控制电路的操作的概念图;
图7是图示在字符串搜索期间发生的奇偶错误的示例的框图;
图8是图示常规的重复数据搜索设备和数据压缩控制器的示例性配置的框图;
图9是图示本发明的实施例中的重复数据搜索设备和数据压缩控制器的示例性配置的框图;
图10-1是图示本发明的实施例中的数据压缩控制器的示例性操作的流程图;
图10-2是图示本发明的实施例中的数据压缩控制器的示例性操作的流程图;
图11是图示在图10的流程图中的压缩的数据输出操作的细节的流程图。
具体实施方式
将参考附图对本发明的实施例进行如下详细描述。
图1图示了实施例所应用于的微型计算机10的(至少部分)配置。微型计算机10包括CPU 12、ROM 14和RAM 16,它们通过包括地址总线、数据总线和控制总线的总线18互相连接。
微型计算机10还包括多个重复数据搜索设备20a、20b……根据本发明的实施例,它们通过数据压缩控制器22被连接至总线18,该数据压缩控制器22控制重复数据搜索设备的操作。注意,重复数据搜索设备20a、20b……具有相同的配置,并且本实施例中提供了p+1个重复数据搜索设备。在下文中,p+1个重复数据搜索设备将被统称为“重复数据搜索设备20”,并且重复数据搜索设备20的配置将被描述。单独的重复数据搜索设备将通过把它们称为“块0”到“块p”来彼此地加以区别。
图2是图示构成本实施例中的重复数据搜索设备20的一部分的重复数据搜索电路21的框图。
重复数据搜索电路21包括CAM单元阵列26,其具有由图中的细线圆圈所指示的内容可寻址存储器单元(下文中内容可寻址存储器被缩写为CAM)28的矩阵。CAM单元阵列26具有N+1个字线WL0到WLN的矩阵、N+1个匹配线MATCH0到MATCHN的矩阵、M+1对位线BL0、BL0’到BLM、BLM’。每个CAM单元28被连接至字线WL0到WLN中的任何一个、匹配线MATCH0到MATCHN中的任何一个和位线BL0、BL0’到BLM、BLM’中的任何一对。
多个CAM单元28具有相同的配置。如图3中图示的,每个CAM单元28包括两个非(NOT)电路30和非电路32。每个非电路30和非电路32具有输入端,该输入端被连接至非电路30和非电路32中另一个的输出端。非电路30和非电路32的环路构成存储一位数据的存储电路(SRAM)。非电路30的输出端连接至N-MOSFET(金属氧化物半导体场效应晶体管)34的源极,非电路32的输出端连接至N-MOSFET 36的源极,并且每个N-MOSFET 34和N-MOSFET 36的栅极连接至字线WL。N-MOSFET34和N-MOSFET 36的漏极分别连接至位线BL和BL’。
此处,当1比特的数据被写入CAM单元28时,字线WL被驱动为高,位线BL被驱动为与将被写入的数据D对应的电平(当D是“1”时为高或当D是“0”时为低),并且位线BL’被驱动为与位线BL的电平相反的电平(当位线BL为高时则为低或当位线BL为低时则为高)。由此,N-MOSFET 34和N-MOSFET 36接通,并且通过位线BL或BL’提供的数据被保持在非电路30和非电路32的环路中。
非电路30的输出端连接至N-MOSFET 38的栅极并且非电路32的输出端连接至N-MOSFET40的栅极。注意,与数据D相反的数据(Q′)从非电路32输出,并且与数据Q′相反的数据Q(=D)从非电路30输出。N-MOSFET 38和N-MOSFET 40的漏极分别连接至位线BL’和BL,并且源极连接至N-MOSFET 42的栅极。N-MOSFET 42的漏极被连接至匹配线MATCH,并且源极接地。
注意,在本实施例中,M+1个CAM单元28例如连接至相同的字线和相同的匹配线,使得M+1位数据能够被存储进连接至相同的字线和匹配线的多个CAM单元28(下文中这些CAM单元将被称为CAM单元列)。地址被分配给CAM单元阵列26中的每个CAM单元列。
由图中的粗线圆圈指示的N+1个奇偶存储单元24在CAM单元列26中被布置成列。CAM单元阵列26中提供N+1个读奇偶线RPLO至RPLN和一对写奇偶线WPL和WPL’,并且每个奇偶存储单元24连接至字线WL0至WLN中的任何一个和读奇偶线RPLO至RPLN中的任何一个以及写奇偶线对WPL和WPL’。
N+1个奇偶存储单元24具有相同的配置。如图4中图示的,每个奇偶存储单元24都具有与图3中的CAM单元28的配置相似的配置,区别在于奇偶存储单元24并不具有包含于CAM单元28的N-MOSFET 38、N-MOSFET 40和N-MOSFET 42,并且非电路30的输出端连接至读奇偶线RPL使得保持在非电路30和非电路32的环路中的数据直接地被读取。
注意,地址被分配给CAM单元阵列26中的每个奇偶存储单元24。
返回图2,重复数据搜索电路21包括定时控制器50。定时控制器50连接至数据压缩控制器22。当搜索指令SEARCH从数据压缩控制器22被输入定时控制器50时,重复数据搜索电路21进入“搜索”模式,其中重复数据搜索电路21重复地将输入搜索数据与存储在CAM单元阵列26的每个CAM单元列中的数据进行比较,继而将搜索数据写入CAM单元阵列26的任意CAM单元列。
来自数据压缩控制器22的系统时钟CLOCK被输入定时控制器50,并且定时控制器50生成并输出与系统时钟CLOCK同步的时钟SR。时钟SR被输出至与定时控制器50连接的写缓冲器56。
写缓冲器56连接至数据压缩控制器22,并且搜索数据被顺序地从控制器22输入写缓冲器56。位线对BL0、BL0’至BLM、BLM’连接至写缓冲器56,使得写缓冲器56保持输入搜索数据,并且根据保持的搜索数据的值而与从定时控制器50输入的时钟SR同步地改变位线对BL0、BL0’的电平至BLM、BLM’(驱动位线对)。当写缓冲器56根据给定的搜索数据驱动每个位线对时,存储在每个CAM单元列中的数据与给定的搜索数据进行比较,并且给定的搜索数据被写入给定的CAM单元列。
奇偶生成器54连接至写缓冲器56,并且搜索数据顺序地从写缓冲器56被输入奇偶生成器54。写奇偶线对WPL和WPL’连接至奇偶生成器54。奇偶生成器54基于输入搜索数据计算奇偶位,并且根据计算出的奇偶位而与从定时控制器50输入的时钟SR同步地改变写奇偶线对WPL和WPL’的电平(驱动位线对)。当奇偶生成器54根据奇偶位驱动位线对时,奇偶位被写入预定的奇偶存储单元24。搜索奇偶线SPL也连接至奇偶生成器54,并且奇偶生成器54根据计算的奇偶位改变搜索奇偶线SPL的电平。
地址解码器52连接至定时控制器50,并且时钟SR也被输出至地址解码器52。地址解码器52连接至数据压缩控制器22,并且搜索数据将被从数据压缩控制器22写入的CAM单元列的地址(写地址WADR)被指定。字线WL0至WLN连接至地址解码器52。与时钟SR同步地,更具体地说是以给定的搜索数据与存储在每个CAM单元列中的数据比较之后写缓冲器56根据给定的搜索数据驱动每个位线对的时段中的定时,对应于指定写地址WADR的字线被断言(使能),以将给定的搜索数据写入对应于指定的地址的CAM单元列,并且根据指定的地址,从给定搜索数据计算的奇偶位被写入奇偶存储单元24。
连接至匹配线MATCH0至MATICHN的N+1个匹配线控制器580至58N还连接至定时控制器50,并且时钟SR还被输出至每个匹配线控制器580至58N。匹配线控制器580至58N在搜索数据与存储在每个CAM单元列中的数据比较之前,基于输入时钟SR将匹配线MATCH0至MATCHN充电(预充电)至高电平。匹配线控制器580至58N对匹配线的预充电在写缓冲器56根据给定的搜索数据驱动每个位线对的结束与根据下一个搜索数据驱动每个位线对的开始之间的期间执行。
匹配线MATCH0至MATICHN连接至比较结果控制电路60。如图5所示,比较结果控制电路60包括锁存器620至62N、信号生成电路640至64N和锁存器660至66N。注意,匹配线控制器580至58N从图5中省略。注意,匹配线控制器580至58N从图5中省略。虽然仅仅描绘了信号生成电路610至64N中的连接至匹配线MATCH1的信号生成电路641的详细配置,但是其他信号生成电路具有和信号生成电路641相同的配置,并且下面将仅仅描述比较结果控制电路60中的与匹配线MATCH1关联的电路部分。
匹配线MATCH1连接至锁存器621的输入端,并且锁存器621的输出端连接至信号生成电路641的与电路681和701中每一个的两个输入端之一。或电路721的输出端连接至与电路681的两个输入端中的另一个,并且或电路721的两个输入端中的另一个和与电路701的两个输入端中的另一个连接至前一级中的锁存器660的输出端。与电路681的输出端连接至锁存器661的输入端,并且锁存器661的输出端连接至后一级中的信号生成电路642中的或电路722和与电路702(未示出)的输入端。锁存器661的输出端还连接至第一优先编码器74的输入端。另外,与电路701的输出端连接至或电路78的一个输入端,并且与电路700以及702至70N(未示出)连接至或电路78的另一输入端。或电路78的输出终端连接至或电路80的一个输入端,并且另一重复数据搜索电路21的或电路78的输出端连接至或电路80的另一输入端。或电路80的输出端通过反相器连接至信号生成电路640至64N的或电路720至72N的输入端,这在图中未示出(仅仅描绘了或电路721),并且从或电路80输出的反馈信号ORFB被反相并且被输入或电路720至72N。从或电路80输出的反馈信号ORFB还被输出至数据压缩控制器22(另见图2)。
注意,图5图示了块0的重复数据搜索电路21的比较结果控制电路60,并且信号生成电路640的或电路720的两个输入端之一连接至块P的比较结果控制电路60的锁存器66N的输出端。另外,块0的比较结果控制电路60的锁存器66N的输出端连接至块1的比较结果控制电路60的或电路720的两个输入端之一(另见图2)。
第一优先编码器74的输出端连接至第二优先编码器76的输入端。第一优先编码器74编码与从比较结果控制电路60的锁存器660至66N输入的信号之中的、在“搜索”操作之后已经变高的输入信号相对应的地址,将编码的地址作为匹配地址MADR0输出至第二优先编码器76,并且还将从锁存器660至66N输入的信号的或输出至第二优先编码器76作为匹配信号MSIG0。注意,如果从锁存器660至66N输入的信号之中不止一个信号为高,则第一优先编码器74根据预定标准输出具有较高优先级的内容可寻址存储器列的地址作为匹配地址MADR0,例如最低地址或与当前写地址WADR最近的地址。注意,之所以将后者地址输出,是因为压缩所要求的距离信息量少,从而压缩比增加。
从其他重复数据搜索电路21的第一优先编码器74输出的匹配地址MADR和匹配信号MSIG还被输入第二优先编码器76的输入端。第二优先编码器76输出端连接至数据压缩控制器22。
第二优先编码器76具有与第一优先编码器74的配置相似的配置。第二优先编码器76根据预定标准向数据压缩控制器22输出具有处于高电平的MSIG0至MSIGP的多个第一优先编码器74输入的地址MADR0至MADRP之中具有较高优先级的地址作为匹配地址MADTR,例如最低地址、加上该块的地址(被分配给多个重复搜索设备中的每一个的地址)或与当前写地址WADR最近的地址,并且将表示从多个第一优先编码器74输入的匹配信号MSIG0至匹配信号MSIGP的OR的信号输出至数据压缩控制器22作为匹配信号MSIG。
比较结果控制电路60还包括异或(EXOR)电路820至82N以及与非(NAND)电路840至84N。下面将仅仅描述与这些电路间的读奇偶线RPL1关联的电路部分。
读奇偶线RPL1连接至异或电路821的两个输入端之一,并且搜索奇偶线SPL连接至异或电路821的输入端中的另一个。异或电路821的输出端连接至与非电路841的两个输入端之一,并且与非电路841的两个输入端中的另一个连接至锁存器621的输出端。与非电路841的输出端通过反相器连接至或电路86的一个输入端,并且与非电路840和与非电路842至84N的输出端通过反相器连接至或电路86的其他输入端。或电路86的输出端连接至或电路88的一个输入端,并且其他重复数据搜索电路21的或电路86的输出端连接至或电路88的其他输入端。从或电路88输出的奇偶错误信号PE被输出至数据压缩控制器22(另见图2)。
重复数据搜索电路21中的比较操作将作为本实施例的操作首先被描述。当将被压缩的数据(原始数据)被压缩时,数据压缩控制器22从原始数据中依次取出带有预定的比特长度的单元数据,作为将在之后描述的搜索数据,并且依次将搜索数据随着搜索指令SEARCH和写地址WADR一起输出至重复数据搜索电路21。
当搜索指令SEARCH被输入至重复数据搜索电路21时,重复数据搜索电路21中的定时控制器50输出时钟SR至写缓冲器56、地址解码器52和匹配线控制器580至58N,并且匹配线控制器58对匹配线MATCH0至MATCHN进行预充电以准备CAM单元阵列26中的比较操作,并且写缓冲器56保持输入搜索数据并根据搜索数据驱动位线对BL0、BL0’至BLM、BLM’。
在CAM单元阵列26的每个CAM单元28中,N-MOSFET 38在从非电路30输出的数据Q是“1”(高)时接通,或者N-MOSFET 40在从非电路32输出的数据Q’是“1”时接通。因此,如果保持在非电路30和非电路32的环路中的数据Q(Q’)与通过位线对BL、BL’提供的数据D(D’)匹配,则N-MOSFET 42不会接通;如果它们不匹配,则电流从接通的N-MOSFET 38和N-MOSFET 40之一的漏极流向源极,以接通N-MOSFET 42。这使得已经预充电的匹配线MATCH的电平降低为低(放电)。
以上描述的数据比较同时地在CAM单元28中执行。由于多个CAM单元28(CAM单元列)连接至一个匹配线MATCH,所以将输入字符数据与存储在CAM单元列中的字符数据进行比较的比较操作几乎在一个时钟SR周期的前半部分完成,并且仅仅当所有连接至匹配线的CAM单元28中的N-MOSFET 42都未接通时,即仅仅当存储在CAM单元列中的字符数据与输入写缓冲器56的字符数据匹配时,每个匹配线才被保持为高。当它们不匹配时,匹配线被驱动为低。
在时钟SR周期的后半部分,与输入的写地址WADR对应的CAM单元列的字线被地址解码器52断言(使能),并且搜索数据被写入该CAM单元列。当完成将搜索数据写入CAM单元列并且位线被驱动为低并且写缓冲器56停止驱动每个位线对时,匹配线控制器58引起匹配线被再次预充电。
上述操作(比较操作)在一个时钟SR周期中执行,并且与来自数据压缩控制器22的搜索数据、搜索指令SEARCH和写地址WADR的输入同步地重复。
在该操作中,重复数据搜索电路21还校验存储在每个CAM单元列中的字符数据的奇偶性。将描述奇偶校验操作。
异或电路82将从奇偶生成器54输出的搜索奇偶线SPL的电平与从奇偶存储单元24输出的读奇偶线RPL的电平进行比较,并且如果它们匹配,则输出低电平信号,如果它们不匹配,则输出高电平信号。
当从锁存器62输出的信号被驱动为高,以指示数据匹配,并且从异或电路82输出的信号被驱动为低,以指示奇偶位匹配时,或者当从锁存器62输出的信号被驱动为低,以指示数据失配时,与非电路84输出高电平信号。
另一方面,当从锁存器62输出的信号被驱动为高,以指示数据匹配,并且从异或电路82输出的信号被驱动为高,以指示奇偶位失配时,与非电路84输出低电平信号。
如果从与非电路840至84N输出的信号中的至少一个为低,则或电路86输出高电平信号并且或电路88输出奇偶错误信号PE出至数据压缩控制器22。
注意,前述描述中的字符数据是数据元素的一个示例,并且奇偶位是奇偶元素的一个示例。当ORFB为“1”时的信号是指示匹配搜索数据元素串的匹配数据元素串被存储的串存在信息的示例,MADR是指示匹配搜索数据元素串的匹配数据元素串所存储在的地址的列地址信息的一个示例,并且包括信号生成电路64、锁存器66、第一优先编码器74、第二优先编码器76、或电路78和80的部分是生成电路的一个示例。此外,包括锁存器62、异或电路82、与非电路84、或电路86和88的部分是确定电路的一个示例。
下面将参考图6来描述比较结果控制电路60的操作。如6图示了其中原始数据是文本数据,字符数据串“ABABBC”已经被依次存储在带有地址“0”到地址“5”的CAM单元列中,并且字符数据“ABBBC……”被依次输入为搜索数据的示例。锁存器620至625被称为ML0至ML5,并且锁存器660至665被称为PS0至PS5。另外,在以下描述中假定在其他的重复数据搜索设备中的比较操作连续地导致了“不匹配”。
如图6(a)所示,当字符数据“A”首先被输入为搜索数据时,带有地址“0”和地址“2”的CAM单元列(由图6中的粗线框指示)中的比较导致了“失配”,匹配线MATCH0至MATCH5中除了匹配线MATCH0和MATCH2之外的匹配线被放电至低,并且仅仅匹配线MATCH0和MATCH2被保持为高。匹配线MATCH0至MATCH5的电平被分别保持在比较结果控制电路60的锁存器ML0至ML5中,并且然后在下一周期中被输出至信号生成电路640至信号生成电路645
如图6(a)所示,由于保持在每个锁存器PS0至锁存器PS5中的电平在此时间点为低(图6中的“0”;同样地适用于锁存器PS6至锁存器PSN,未示出,以及其他块中的锁存器PS0至锁存器PSN),从与电路700至705输出的信号为低,并且从或电路78输出的反馈信号ORFB0以及从或电路80输出的反馈信号ORFB也为低。以这样的方式,在本实施例中,仅仅一个字符被匹配,即其中在一个比较操作中发现“匹配”的CAM单元列的存在的事实,并不足以将反馈信号ORFB驱动为高。另外,由于反馈信号ORFB为低,来自或电路720至725的输出变高,并且从锁存器ML0至ML5输出的信号的电平在锁存器PS0至锁存器PS5中被保持不变(见图6(b))。
如图6(b)所示,当字符数据“B”被输入为下一搜索数据时,在带有地址“1”、地址“3”和地址“4”的CAM单元列中的比较导致“匹配”,并且匹配线(仅匹配线MATCH1、MATCH3和MATCH5为高)的电平被保持在锁存器ML0至ML5中。在下一周期,来自锁存器ML1、ML3和ML5的输出变高,并且来自锁存器PS0和PS2(即,在锁存器ML1和ML3的前一级中的锁存器PS)的输出变高,并且因此从与电路701和703输出的信号变高,并且从或电路78输出的反馈信号ORFB0和从或电路80输出的反馈信号ORFB变高。
以这样的方式,仅仅在两个或更多的连续字符具有匹配时,即,仅仅在由连续输入的多片搜索数据组成的数据串被存储在CAM单元阵列26中时,反馈信号ORFB才变高。注意,如果第一优先编码器74被配置成将最低地址输出为匹配地址MADR0,则匹配地址MADR0是对应于PS0的地址“0”。从第二优先编码器76输出的匹配地址MADR的较低比特的值取决于从其他重复数据搜索设备输入的匹配地址的值,并且如果数据在其他重复数据搜索设备中没有匹配,则等于匹配地址MADR0的值。匹配地址MADR的较高比特的值等于其中发现了匹配的编码器块的地址(分配给多个重复数据搜索设备中的每一个的地址)。在这样的情况下,块是带有地址0的块,并且因此所有的值都是0。
如图6(c)所示,当字符数据“B”被输入为下一搜索数据时,先前已经变高的相同匹配线变高,匹配线的电平首先被分别保持在锁存器ML0至ML5中,然后被分别输出至信号生成电路640至645。由于在输出高电平信号的锁存器ML1、ML3和ML4中,只有锁存器ML4具有在此时也输出高电平信号的先前锁存器PS,因此从与电路701、703和704输出的信号中,只有从与电路704输出的信号变高。因此,从或电路78输出的反馈信号ORFB0被保持为高,并且匹配地址MADR0是对应于PS4的地址“4”。
此外,由于反馈信号ORFB被保持为高,所以与前级中来自带有地址n的锁存器ML的输出ML(n,m)和锁存器PS的输出PS(n-1,m)的与相等的信号被输出至带有地址n的锁存器PS,其中m是当前周期。因此,仅仅锁存器PS4将电平保持为高。
然后,如图6(d)所示,字符“B”被输入作为下一搜索数据。在这样的情况下,分别被首先保持在锁存器ML0至ML5中、然后被输入进信号生成电路640至645的匹配线的电平与先前周期中的电平相同。然而,对于所有的输出高电平信号的锁存器ML1、ML3和ML4,从它们的前级锁存器PS输出的信号为低,并且因此从与电路700至705输出的信号为低,并且反馈信号ORFB0和ORFB也为低。当反馈信号ORFB变低时,从信号生成电路640至645的或电路720至725输出的信号变高,并且因此从锁存器ML1至ML5输出的信号的电平被照原样地保持在锁存器PS0至PS5中。
如图6(e)所示,当字符数据“C”被输入为下一搜索数据时,仅匹配线MATCH5变高,匹配线的电平分别被首先保持在锁存器ML0至ML5中,并且然后被输出至信号生成电路640至645。由于仅仅锁存器ML5输出高电平信号并且其前级锁存器PS4也输出高电平信号,所以从与电路700至705输出的信号中仅仅从与电路705输出的信号为高。因此,从或电路78输出的反馈信号ORFB0被保持为高,并且匹配地址MADR0是对应于PS1的地址“1”。
以这样的方式,重复数据搜索电路21可以在一个时钟周期中搜索与一个字符的匹配,并且使得字符串搜索能够快于到目前为止的任何其他方法。特别地,每次输入一个字符,输入的字符就能够与CAM单元阵列26中的所有字符进行比较,其使得快速搜索成为可能。
此处,考虑重复数据搜索电路21中发生奇偶错误的情况。
图7图示了出现在重复数据搜索电路21的重复数据搜索操作中的奇偶错误。
假定字符串“IBMisIB”依次输入CAM单元阵列26。还假定奇偶位(由“P”表示)被存储在CAM单元阵列26中,每一个奇偶位与每个字符关联。注意。图中出现在CAM单元阵列26左边的数字表示CAM的单元列的地址,并且对应于字线WLN(匹配线MATCH和读奇偶线RPLN)的值N。
当下一字符串“IBMi”被一次一个字符地输入至处于该状态的重复数据搜索电路21的写缓冲器56时,重复数据搜索电路21顺序地将字符和存储在CAM单元阵列26中的字符串进行比较。具体地,当第一字符“I”被输入写缓冲器56时,匹配线MATCH0被保持为高,因为地址0中的字符输入匹配了字符。当第二字符“B”被输入写缓冲器56时,匹配线MATCH1被保持为高,因为地址1中的字符数据匹配了字符。当第三字符“M”被输入写缓冲器56时,匹配线MATCH2被保持为高,因为地址2中的字符数据匹配了字符。
假定当第四字符“i”被输入写缓冲器56时,检测到奇偶错误(在图中用“×”指示)而匹配线MATCH3被保持为高。原因例如可能是由于噪声引起的位翻转使得原先不同的字符的比特的排列变得与字符“i”的比特的排列相等。因此,与字符“i”的匹配是不可靠的。也即,CAM单元阵列26中的数据是不可靠的。因此,操作不能再继续,并且重复数据搜索电路21的操作需要在该时间点终止。
在这样的情况下,通常,所有的操作都会再次重新执行。特别地,奇偶错误被报告给数据源,以请求数据源从头重发数据。
如果奇偶错误是由噪声引起的临时错误,则重发数据允许从错误中的恢复。然而,如果错误不是临时错误而是由于CAM单元阵列26的位损坏等而引起的持久性错误,则无法恢复,因为这是CAM单元阵列26的故障。
下面将描述在奇偶错误的情况下再次重新执行操作的配置。
图8是图示被配置成执行它的重复数据搜索设备20和数据压缩控制器22的配置的(部分)示例的框图。
如图所示,重复数据搜索设备20包括参考图2至图6描述的重复数据搜索电路21。数据压缩控制器22包括保持从重复数据搜索电路21输出的字符数据的触发器90、保持从重复数据搜索电路21输出的匹配地址(图2中的MADR)的触发器92,对来自重复数据搜索电路21的字符串匹配信号(图2中的ORFB)的连续输出进行计数的计数器94以及保持从重复数据搜索电路21输出的奇偶错误信号(图2中的PE)的触发器96。数据压缩控制器22还包括选择器98,该选择器98选择并输出被触发器90保持的字符数据之一、被触发器92保持的匹配地址集合以及基于计数器94的计数的计数器94的计数。
下面将描述具有示例性配置的重复数据搜索设备20和数据压缩控制器22的操作。
首先,字符数据被输入重复字符搜索电路21,一次一个字节。注意,尽管并没有在图中清楚地描绘出来,但是字符数据是从数据压缩控制器22输入的。重复数据搜索电路21顺序地将输入字符数据写入CAM,将输入字符数据与到目前为止已经写入的所有字符数据片进行比较,并且如果存在匹配的字符数据片,则输出“1”作为字符串匹配信号。然而,当仅仅一个字符具有匹配时,重复数据搜索电路21并不输出“1”作为字符串匹配信号;它在两个或多个连续字符具有匹配时输出“1”。当存在与字符串的字符的匹配时,重复数据搜索电路21继续输出“1”。也即,如果“1”在一个时钟周期期间被输出,并且然后“0”在下一时钟周期中被输出为字符串匹配信号,则指示两个字符的匹配。如果“1”在两个时钟周期期间被输出,并且“0”在下一时钟周期中被输出为字符串匹配信号,则指示三个字符串的匹配。以这样的方式,如果“1”在K个时钟周期期间被输出,并且“0”在下一时钟周期被输入,则指示K+1个字符的匹配。因此,数据压缩控制器22可以利用计数器94来计数字符串匹配信号的输出,以检测多少个字符具有匹配。
重复数据搜索电路21输出CAM中的字符数据匹配的地址作为匹配地址,并且触发器92保持匹配地址。
此外,无论是否存在与字符的匹配,重复数据搜索电路21都输出输入字符数据,并且触发器90保持字符数据。如果不存在与字符数据的匹配,则要求字符数据是未压缩数据。
当不存在与字符数据的匹配时,选择器98输出被保持在触发器90中的字符数据;当存在与字符数据的匹配时,选择器98输出保持在触发器92中的匹配地址和计数器94的计数(与字符数据的连续匹配的数目)。
在该示例性配置中,如果奇偶错误发生在重复数据搜索电路21中,则重复数据搜索电路21输出“1”至数据压缩控制器22,作为奇偶错误信号。这允许数据压缩控制器22知道字符串匹配信号和字符编码是不可靠的。在这种情况下,压缩处理不能继续,并且因此重新输入将被压缩的数据。
为避免这种情况,本实施例使得即使重复数据搜索电路21中发生了奇偶错误并且重复数据搜索电路21的处理停止,压缩的数据的可靠性仍然能够得到确保。
图9是图示本实施例中的重复数据搜索设备20和数据压缩控制器22的(部分)示例性配置的框图。
如图所示,除了图8中的配置中的组件之外,重复数据搜索设备20还包括触发器1001、1002、1003和1004。数据压缩控制器22包括保持从触发器1004输出的字符数据的触发器102,而不包括图8中的触发器90,并且包括信号生成电路104,该信号生成电路104基于计数器94的计数和来自触发器96的奇偶错误信号生成将被输出至选择器98的信号。在本实施例中,数据压缩控制器22被提供为处理部的示例。
图中的压缩数据路径是用于执行基于重复数据搜索电路21的搜索结果的压缩的第一路径的示例。另一方面,非压缩路径是如下路径的示例,输入字符数据通过该路径而又不发生改变。也即,本实施例中提供两个路径,以向重复数据搜索设备20提供冗余。
下面将描述本实施例中的重复数据搜索设备20和数据压缩控制器22的操作。
操作与图8中的操作相似,直到重复数据搜索电路21输出匹配地址和字符串匹配信号,触发器92保持匹配地址并且计数器94计数连续的匹配。
然而,在本实施例中,触发器102保持通过在重复数据搜索电路21的外部提供的触发器1001、1002、1003和1004的字符数据,而非通过如图8中的重复数据搜索电路21的字符数据。
如果奇偶错误发生在重复数据搜索电路21中并且重复数据搜索电路21输出奇偶错误信息,则信号生成电路104输出信号,指示选择器98选择通过至选择器98的非压缩数据路径的数据。响应于此,选择器98选择被保持在触发器102中的字符数据并输出字符数据至数据压缩控制器22的处理部。
另一方面,如果没有奇偶错误发生在重复数据搜索电路21中,并且重复数据搜索电路21没有输出奇偶错误信号,则信号生成电路104向选择器98输出一个信号,该信号向选择器98指示如果连续匹配字符的数目少于或等于2,则选择通过非压缩路径的数据。响应于此,选择器98选择被保持在触发器102中的字符数据,并且输出字符数据至数据压缩控制器22的处理部。如果连续匹配字符的数目大于或等于3,则信号生成电路104输出信号,指示选择器98选择通过至选择器98的压缩数据路径的数据。响应于此,选择器98选择被保持在触发器92中的字符数据集合和计数器94的计数,并且将数据和计数输出至数据压缩控制器22的处理部。注意。之所以如果连续匹配字符的数目少于或等于2则选择通过非压缩数据路径的数据,如果连续匹配字符的数目大于或等于3则选择通过压缩数据路径的数据,是因为使用包括两个或更少的连续匹配字符的匹配字符串的位置和长度的压缩并非不具有压缩效果。
由于在图7中的示例中针对第一“IBM”没有发生奇偶错误,因此重复数据搜索电路21正确地操作,并且选择器98输出指示三个字符“IBM”具有匹配的数据(0,3)。然后,奇偶错误发生,并且因此选择器98输出字符数据“i”作为第四字符而没有改变。也即,数据(0,3)和“i”以该顺序被输出。
另一方面,如果没有奇偶错误发生在重复数据搜索电路21中,则选择器98输出(0,4),因为这表示意味着四个字符“IBMi”具有匹配。
由于本发明的实施例使用上文描述的配置,所以即使在奇偶错误发生在压缩数据路径中的情况下,数据也不会丢失,因为原始数据保留在非压缩数据路径中。因此,本实施例具有如下效果:即使发生了奇偶错误,处理也不会停止并且将会输出正确的数据,尽管压缩比由于所压缩的数据变得无效而减小。
注意,图9中的压缩数据路径中的重复数据搜索电路21被配置成每个时钟周期把一个字符(1字节)的输入当作字符数据,并且在具有4个级的流水线中处理输入字符数据。也即,字符数据在第一时钟周期中被写入CAM单元阵列26,字符数据的匹配在第二时钟周期被保持在锁存器62中,在该字符数据之前的字符串的匹配在第三时钟周期中被保持在锁存器66中,并且匹配地址在第四时钟周期中被保持在触发器92中。因此,匹配地址和字符串匹配信号在字符数据的输入后的四个时钟周期之后被输出。因此,非压缩数据路径需要具有带有四个级的流水线配置,即触发器1001、1002、1003和1004,其等于压缩数据路径的级的数目。然而,级的数目仅仅是说明性的;如果压缩数据路径的级的数目是k,则非压缩数据路径需要具有k个级。
下面将描述本发明中的数据压缩控制器22的操作。
图10-1和图10-2是图示在数据压缩控制器22中的处理的流程图。处理开始于待压缩的数据(原始数据)通过总线18被传送至数据压缩控制器22并且压缩原始数据的指令从CPU12被发出时。
数据压缩控制器22首先重置重复数据搜索设备20的比较结果控制电路60的锁存器620至62N以及锁存器660至66N(步骤200)。数据压缩控制电路22然后将匹配长度MLEN初始化为“1”并且将写地址WADR初始化为“0”(步骤202)。数据压缩控制器22然后确定原始数据向重复数据搜索设备20的输出是否已经完成(步骤204)。如果确定是否定的,则数据压缩控制器22从原始数据中取出与第一个字符对应的字符C0数据作为搜索数据,并且将数据随搜索指令SEARCH和写地址WADR一起输出至重复数据搜索设备20(步骤206)。因此,字符C0数据被提供给重复数据搜索设备20中的非压缩数据路径和压缩数据路径,并且上文描述的搜索操作被执行。
数据压缩控制器22然后确定奇偶错误信号PE是否已经变高(步骤207)。在奇偶错误信号PE已经变高并且确定为肯定的情况下执行的操作将稍后描述。如果奇偶错误信号PE为低并且确定是否定的,则数据压缩控制器22确定从重复数据搜索设备20输出的字符串匹配信号OEFB是否已经变高(步骤208)。在这种情况下,由于锁存器62和66之前已经在步骤200被重置,所以字符串匹配信号ORFB被保持为低。因此确定是否定的,并且操作继续至步骤210,在此数据压缩控制器22确定当前比较操作是否是针对给定原始数据的第一比较操作(步骤210)。如果确定是肯定的,则处理继续至步骤214而不执行在步骤212输出压缩的数据的处理。由于字符串匹配信号ORFB不会变高,除非如上所述存在与两个或更多连续字符d匹配,因此如果比较导致连续的“失配”,则先前搜索的字符被输出为压缩数据,这将在稍后描述。因此,此时不存在将被输出为已压缩数据的数据,并且因此步骤212未被执行。
然后,数据压缩控制器22将“1”赋值给匹配长度MLEN(步骤214)并且继续至步骤218。数据压缩控制器22然后设置先前搜索字符C1的数据以替换倒数第二个搜索字符C2的数据(步骤218),并且设置当前搜索字符C0的数据以替换先前搜索字符C1(步骤218),并且将字符C0的数据写入与当前写地址WADR(针对第一比较操作是0)相对应的CAM单元列(步骤220)。写操作实际上由断言(使能)对应于写地址WADR的CAM单元列的字线的地址解码器52执行。数据压缩控制器22让写地址WADR增加1(因此,字符数据被写入升序排列的CAM单元列地址),将结果除以CAM单元列26的大小N+1,并且将余数设置成下一写地址WADR(步骤222)。
一旦数据已经以这样的方式被写入所有的CAM单元列,数据就被写入带有地址“0”的CAM单元列。因此CAM单元阵列26用作所谓的环形缓冲器并且CAM单元阵列26将不会发生溢出。
在步骤222的处理被执行之后,处理返回至步骤204。如果在步骤204的确定是否定的,则步骤206和随后的步骤被再次执行。在步骤206,跟随先前搜索字符C1的字符C0的数据被从原始数据中取出作为搜索数据,并且与搜索指令SEARCH和写地址WADR一起被输出至重复数据搜索设备20。如果在步骤208的确定是否定的,则处理继续至步骤210。如果在步骤210的确定是否定的,则压缩的数据输出处理在步骤212被执行。
在压缩的数据输出处理中,数据压缩控制器22如图11所示确定匹配长度MLEN是否为0(步骤229)。如果先前奇偶错误信号PE为高,则所有过去的数据都已经由一个过程被输出,这将在之后描述,并且匹配长度MLEN已经被设置为0。因此,数据未被输出为压缩的数据并且处理继续至图10-1的流程图的步骤214。
如果在步骤229的确定是否定的,则数据压缩控制器22确定匹配长度MLEN是否是2(步骤230)。如果先前比较结果是“匹配”但倒数第二比较结果不是“匹配”,则确定是肯定的并且倒数第二搜索字符C2的数据的数据被输出为已压缩数据(步骤236),然后先前搜索字符C1的数据被输出(步骤238),并且然后处理继续至图10-1的流程图的步骤214。
如果在步骤230的确定是否定的,则数据压缩控制器22确定匹配长度MLEN是否是1(步骤232)。如果先前比较结果不是“匹配”,则确定是肯定的并且先前搜索字符C1的数据被输出为压缩的数据(步骤238),然后操作继续至图10-1的流程图的步骤214。
另一方面,如果在图10-1的流程图的步骤208的确定是肯定的,则匹配长度MLEN被相加(步骤216),然后过程继续至步骤218。因此,压缩的数据未被输出而字符串匹配信号ORFB保持为高。
如果在先前比较操作中是高的字符串匹配信号ORFB变低并且在步骤210的确定是否定的,则意味着已经发现了具有大于或等于两个字符长度的重复数据字符串的结尾,因此在步骤212执行已压缩数据输出过程。此处,如果先前比较和倒数第二比较的结果都是“匹配”,匹配长度MLEN在上文描述的步骤216被相加至3或更大,则因此在步骤229、230和232的确定是否定的并且处理继续至步骤234。
数据压缩控制器22获得用于压缩重复字符串的压缩编码。本实施例使用包括代表指向与重复字符串相同的字符串的位置的指针的第一编码和代表重复字符串的长度的第二编码。数据压缩控制器22将匹配地址MADR和匹配长度MLEN的差加上1(MADR-MLEN+1)设置为第一编码,将匹配长度MLEN设置为第二编码,并且将值输出(步骤234)。因此,从数据压缩控制器22输出的压缩的数据短于原始数据。
注意,为了输出已压缩数据,数据压缩控制器22还将代表分隔符的编码插入在字符数据和压缩编码之间,以便允许压缩编码和字符数据在压缩的字符串被解压时能够被互相区分。以这样的方式,步骤234在每次发现了重复字符串时就被执行,并且发现的重复字符串被转变为转换码并被输出,由此消除原始数据的冗余,从而将原始数据压缩为压缩的数据。
如果在图10-1的流程图的步骤207的确定是肯定的,则处理继续至图10-2的流程图的步骤240。如果在步骤240的确定是否定的,则在步骤242的压缩的数据输出处理被执行。已经参考图11的流程图对压缩的数据输出处理进行了描述,并且因此对已压缩数据输出过程的描述将被省略。
如果奇偶错误信号PE变高,则字符串匹配信号ORFG不可靠。因此,通过重复数据搜索设备20的非压缩数据路径获得的字符C0在此时间点被输出(步骤244)。然后“0”被赋值给匹配长度MLEN(步骤246),处理继续至图10-1的流程图的步骤218,并且然后以上描述的处理继续。
以上描述的过程被重复,并且当原始数据中的字符C数据取出位置达到原始数据的结尾时,在步骤204的确定将是肯定的,并且数据压缩控制器22再次执行压缩的数据输出处理(步骤224)。此处,如果匹配长度MLEN的值大于或等于3,则压缩编码在步骤234被输出;如果匹配长度MLEN的值是2,则倒数第二搜索字符C2的数据和先前搜索字符C1的数据分别在步骤236和步骤238被输出为压缩的数据;如果匹配长度MLEN的至是1,则先前搜索字符C 1数据在步骤238被输出为压缩的数据。过程随后结束。
注意,当指向与重复字符串相同的字符串的位置的指针用作本示例性操作中的压缩编码中的第一编码时,与重复字符串相同的字符串的位置和重复字符串的位置之间的距离可以根据以下描述的示例被使用。在那样的情况下,第一编码可以是WADR减去与重复字符串相同的字符串的位置。
本发明的实施例已经被如上描述。
在本实施例中,在如上所述的重复数据搜索设备20中提供了输入字符数据通过其而不改变的非压缩数据路径和将CAM中的包括与输入字符数据的连续匹配的字符串的位置和长度输出的压缩数据路径。如果CAM中发生了奇偶错误,则使用来自非压缩数据路径的字符数据。这使得使用字符数据的处理在没有打断的情况下继续,即使CAM中的字符数据中发生奇偶错误。
奇偶错误发生的情况总结如下:
-情况1:临时错误
该错误偶然地出现并且各自归因于宇宙射线或者噪声的影响。在这样的情况下,当数据被再次读取时,不会发生错误。
-情况2:单元故障
由于存储器的存储单元,诸如CAM,通常在装运之前在制造厂会被测试,所以有缺陷的存储器单元很少装运。单元故障在操作中发生。
本实施例对于情况1和情况2都是有效的。
情况1错误是临时的并且因此仅仅临时地降低了压缩比。在情况2中,每当碰到故障的单元时压缩比就降低。然而,由于数据本身在任一情况中都未损坏,所以错误在本实施例中不会引起任何问题。
尽管在本实施例中假定了字符串的特定部分被指示另一部分的位置和长度的信息替换,以压缩字符串,但是字符串的特定部分可以基于另一部分的位置被处理。在那样的情况下,压缩数据路径可以是从CAM单元阵列26的字符数据被输入的点至匹配字符数据的字符数据的地址被输出的点的路径,并且非压缩路径可以是具有将字符数据与来自压缩数据路径的地址的输出同步地输出的流水线配置的路径。
尽管本实施例中奇偶位被存储在CAM单元阵列26中,但是奇偶位可以被存储在与CAM单元阵列26不同的存储器中。尽管以上给出的奇偶错误是发生在存储在CAM单元阵列26中的数据中的错误,但是本发明也适用于并非奇偶错误的错误发生的情况。
尽管本发明已经用其实施例被描述,但是本发明的技术范围并不限于以上描述的实施例。对本技术领域的技术人员明显的是,可以做出各种修改并且使用各种变化而不脱离本发明的精神和范围。
[参考符号列表]
20…重复数据搜索设备
21…重复数据搜索电路
22…数据压缩控制器
24…奇偶存储单元
26…CAM单元阵列
28…CAM单元
52…地址解码器
54…奇偶生成器
60…比较结果控制电路
64…信号生成电路
74…第一优先编码器
76…第二优先编码器
90,92,96,100,102…触发器
94…计数器
98…选择器

Claims (8)

1.一种基于数据元素串的第二部分数据元素串的位置来处理所述数据元素串的第一部分数据元素串的设备,所述设备包括:
内容可寻址存储器,将构成所述数据元素串的至少一部分的多个数据元素中的每个数据元素存储在与所述数据元素在所述数据元素串中的位置相对应的地址中,并且当搜索数据元素被提供时,如果与所述搜索数据元素相匹配的匹配数据元素被存储为所述多个所述数据元素之一,则输出存储所述匹配数据元素的地址;
第一路径,向所述内容可寻址存储器提供输入数据元素作为所述搜索数据元素,并且输出从所述内容可寻址存储器输出的所述地址;
第二路径,将输入数据元素输出,而不向所述内容可寻址存储器提供所述输入数据作为所述搜索数据元素;以及
处理部,当所述第一路径响应于所述第一部分数据元素串中所包括的特定数据元素的输入而向所述内容可寻址存储器提供所述特定数据元素作为所述搜索数据元素时,如果与所述搜索数据元素相匹配的匹配数据元素中未发生错误,则通过使用所述第二部分数据元素串的所述位置来处理所述第一部分数据元素串,并且如果与所述搜索数据元素相匹配的匹配数据元素中发生错误,则通过使用从所述第二路径输出的所述特定数据元素来处理所述第一部分数据元素,所述第二部分数据元素串的所述位置由从所述第一路径输出的所述地址确定。
2.根据权利要求1所述的设备,其中所述第二路径具有流水线配置,所述流水线配置与来自所述第一路径的所述地址的所述输出同步地输出所述数据元素。
3.一种利用指示数据元素串的第二部分数据元素串的位置和长度的信息来替换所述数据元素串的第一部分数据元素串以压缩所述数据元素串的设备,所述设备包括:
内容可寻址存储器,将构成所述数据元素串的至少一部分的多个数据元素中的每个数据元素存储在与所述数据元素在所述数据元素串中的位置相对应的地址中,并且当搜索数据元素被提供时,如果与所述搜索数据元素相匹配的匹配数据元素被存储为多个所述数据元素之一,则输出存储所述匹配数据元素的地址;
生成电路,当所述搜索数据元素被提供给所述内容可寻址存储器时,如果所述匹配数据元素的串被存储在所述内容可寻址存储器中,则基于从所述内容可寻址存储器输出的所述地址生成串存在信息和列地址信息,所述串存在信息指示存储有与先前提供的搜索数据元素的串相匹配的匹配数据元素的串,所述列地址信息指示所述匹配数据元素的所述串被存储的地址;
第一路径,向所述内容可寻址存储器提供输入数据元素作为所述搜索数据元素,并且输出由所述生成电路生成的所述串存在信息和所述列地址信息;
第二路径,将输入数据元素输出,而不向所述内容可寻址存储器提供所述输入数据元素作为所述搜索数据元素;以及
处理部,当所述第一路径响应于所述第一部分数据元素串中所包括的特定数据元素的输入而向所述内容可寻址存储器提供所述特定数据元素作为所述搜索数据元素时,如果与所述搜索数据元素相匹配的匹配数据元素中未发生错误的一个条件被满足,则执行用于利用指示所述第二部分数据元素串的所述位置和长度的信息来替换所述第一部分数据元素串的过程,并且如果与所述搜索数据元素相匹配的匹配数据元素中发生错误,则执行使用从所述第二路径输出的所述特定数据元素以防止所述第一部分数据元素串的一部分被压缩的过程,所述第二部分数据元素串的所述位置和长度由来自所述第一路径的所述串存在信息的连续输出的数目以及从所述第一路径输出的所述列地址信息来确定。
4.根据权利要求3所述的设备,其中当所述第一路径向所述内容可寻址存储器提供所述特定数据元素作为所述搜索数据元素时,如果除满足所述一个条件之外还满足来自所述第一路径的所述串存在信息的所述连续输出的数目超过预定数目的另一条件,则所述处理部执行利用指示所述第二部分数据元素串的所述位置和长度的信息来进行替换的所述过程,指示所述第二部分数据元素串的所述位置和长度的所述信息由来自所述第一路径的所述连续输出的数目和所述列地址信息来确定。
5.根据权利要求3或4所述的设备,其中当所述第一路径向所述内容可寻址存储器提供所述特定数据元素作为所述搜索数据元素时,如果来自所述第一路径的所述串存在信息的所述连续输出的数目没有超过预定数目,则所述处理部执行使用从所述第二路径输出的所述特定数据元素以防止所述第一部分数据元素串的一部分被压缩的过程。
6.根据权利要求3至5任一项所述的设备,其中所述第二路径具有流水线配置,所述流水线配置与来自所述第一路径的所述串存在信息和所述列地址信息的所述输出同步地输出所述数据元素。
7.一种利用指示数据元素串的第二部分数据元素串的位置和长度的信息来替换所述数据元素串的第一部分数据元素串以压缩所述数据元素串的设备,所述设备包括:
内容可寻址存储器,将构成所述数据元素串的至少一部分的多个数据元素中的每个数据元素以及与所述数据元素对应的奇偶元素存储在与所述数据元素在所述数据元素串中的位置相对应的地址中,并且当搜索数据元素被提供时,如果与所述搜索数据元素相匹配的匹配数据元素被存储为所述多个数据元素之一,则输出存储所述匹配数据元素的地址;
生成电路,当所述搜索数据元素被提供给所述内容可寻址存储器时,如果所述匹配数据元素的串被存储在所述内容可寻址存储器中,则基于从所述内容可寻址存储器输出的所述地址生成串存在信息和列地址信息,所述串存在信息指示存储有与先前提供的搜索数据元素的串相匹配的匹配数据元素的串,所述列地址信息指示所述匹配数据元素的所述串被存储的地址;
确定电路,当所述搜索数据元素被提供给所述内容可寻址存储器时,如果所述匹配数据元素被存储在所述内容可寻址存储器中,则确定存储在与所述搜索数据元素相匹配的匹配数据元素被存储的地址处的所述奇偶元素的值是否从所述搜索数据元素被生成;
第一路径,向所述内容可寻址存储器提供输入数据元素作为所述搜索数据元素,并且输出由所述生成电路生成的所述串存在信息和所述列地址信息;
第二路径,将输入数据元素输出,而不向所述内容可寻址存储器提供所述输入数据元素作为所述搜索数据元素;以及
处理部,当所述第一路径响应于所述第一部分数据元素串中所包括的特定数据元素的输入而向所述内容可寻址存储器提供所述特定数据元素作为所述搜索数据元素时,如果所述确定电路确定所述奇偶元素的值被生成的条件以及来自所述第一路径的所述串存在信息的连续输出的数目超过预定数目的条件均被满足,则执行利用指示所述第二部分数据元素串的所述位置和长度的信息来替换所述第一部分数据元素串的过程,并且如果所述确定电路确定所述奇偶信息的值未被生成的条件以及来自所述第一路径的所述串存在信息的所述连续输出的数目没有超过所述预定数目的条件中的至少一个条件被满足,则执行使用从所述第二路径输出的所述特定数据元素以防止所述第一部分数据元素串的所述特定数据元素的所述部分被压缩的过程,所述第二部分数据元素串的所述位置和长度由从所述第一路径输出的所述连续输出的数目和所述列地址信息来确定。
8.一种用于基于数据元素串的第二部分数据元素串的位置来处理所述数据元素串的第一部分数据元素串的方法,所述方法包括:
内容可寻址存储器将构成所述数据元素串的至少一部分的多个数据元素中的每个数据元素存储在与所述数据元素在所述数据元素串中的位置相对应的地址中,并且当搜索数据元素被提供时,如果与所述搜索数据元素相匹配的匹配数据元素被存储为所述多个数据元素之一,则输出存储所述匹配数据元素的地址;
第一路径向所述内容可寻址存储器提供输入数据元素作为所述搜索数据元素,并且输出从所述内容可寻址存储器输出的所述地址;以及
第二路径将输入数据元素输出,而不向所述内容可寻址存储器提供所述输入数据元素作为所述搜索数据元素;以及
所述方法包括步骤:
当所述第一路径响应于所述第一部分数据元素串中所包括的特定数据元素的输入而向所述内容可寻址存储器提供所述特定数据元素作为所述搜索数据元素时,确定在与所述搜索数据元素相匹配的匹配数据元素中是否发生了错误;以及
如果确定在所述匹配数据元素中没有发生错误,则使用从所述第一路径输出的所述地址来处理所述第一部分数据元素串,并且如果确定在所述匹配数据元素串中发生了错误,则使用从所述第二路径输出的所述特定数据元素来处理所述第一部分数据元素串。
CN201180063425.1A 2010-12-28 2011-10-04 用于处理数据元素序列的装置和方法 Active CN103283149B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010-293933 2010-12-28
JP2010293933 2010-12-28
PCT/JP2011/072891 WO2012090564A1 (ja) 2010-12-28 2011-10-04 データ要素列を処理する装置及び方法

Publications (2)

Publication Number Publication Date
CN103283149A true CN103283149A (zh) 2013-09-04
CN103283149B CN103283149B (zh) 2016-05-11

Family

ID=46382688

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180063425.1A Active CN103283149B (zh) 2010-12-28 2011-10-04 用于处理数据元素序列的装置和方法

Country Status (6)

Country Link
US (1) US9043676B2 (zh)
JP (1) JP5520390B2 (zh)
CN (1) CN103283149B (zh)
DE (1) DE112011104620T5 (zh)
GB (1) GB2500524A (zh)
WO (1) WO2012090564A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5520391B2 (ja) 2010-12-28 2014-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 検索開始点を決定する装置及び方法
CN103840835A (zh) * 2012-11-26 2014-06-04 艺伦半导体技术股份有限公司 一种数据解压缩方法及装置
JP6834335B2 (ja) * 2016-10-17 2021-02-24 Tdk株式会社 不揮発性連想メモリ
JP2019008845A (ja) * 2017-06-22 2019-01-17 ルネサスエレクトロニクス株式会社 半導体装置
US11573834B2 (en) * 2019-08-22 2023-02-07 Micron Technology, Inc. Computational partition for a multi-threaded, self-scheduling reconfigurable computing fabric
WO2023210643A1 (ja) * 2022-04-26 2023-11-02 克己 井上 全文検索プロセッサ
JP7475078B2 (ja) 2022-04-26 2024-04-26 克己 井上 全文検索プロセッサ

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558302A (en) * 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
JPS6488827A (en) * 1987-09-30 1989-04-03 Matsushita Electric Ind Co Ltd Data processor
JP3129248B2 (ja) * 1997-07-18 2001-01-29 日本電気株式会社 2次元配列コードを用いた文字列検索方法
JP2009098777A (ja) * 2007-10-15 2009-05-07 Fuji Xerox Co Ltd データ処理装置及びデータ処理プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63177242A (ja) * 1987-01-19 1988-07-21 Hitachi Ltd 連想メモリのパリテイチエツク方法
JP2693338B2 (ja) * 1992-03-04 1997-12-24 富士通株式会社 データ圧縮・復元処理における誤り制御処理方式
JPH07114577A (ja) * 1993-07-16 1995-05-02 Internatl Business Mach Corp <Ibm> データ検索装置、データ圧縮装置及び方法
US5883588A (en) 1994-10-04 1999-03-16 Nec Corporation Data compression system and data compression device for improving data compression rate and coding speed
JP3117375B2 (ja) 1994-11-28 2000-12-11 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 連想メモリの制御回路及び連想メモリ装置
JP3007819B2 (ja) 1994-12-28 2000-02-07 インターナショナル・ビジネス・マシーンズ・コーポレイション データ圧縮用検索装置
GB0001707D0 (en) * 2000-01-25 2000-03-15 Btg Int Ltd Data compression having more effective compression
US20040022312A1 (en) 2002-07-31 2004-02-05 Jones Simon R. Lossless data compression
JP2005175940A (ja) 2003-12-11 2005-06-30 Matsushita Electric Ind Co Ltd データ圧縮装置
RU2498425C2 (ru) 2008-10-28 2013-11-10 Интернэшнл Бизнес Машинз Корпорейшн Параллельная ассоциативная память
JP4806054B2 (ja) * 2009-05-13 2011-11-02 インターナショナル・ビジネス・マシーンズ・コーポレーション データが記憶された位置を選択する装置及び方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558302A (en) * 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
US4558302B1 (zh) * 1983-06-20 1994-01-04 Unisys Corp
JPS6488827A (en) * 1987-09-30 1989-04-03 Matsushita Electric Ind Co Ltd Data processor
JP3129248B2 (ja) * 1997-07-18 2001-01-29 日本電気株式会社 2次元配列コードを用いた文字列検索方法
JP2009098777A (ja) * 2007-10-15 2009-05-07 Fuji Xerox Co Ltd データ処理装置及びデータ処理プログラム

Also Published As

Publication number Publication date
US20130283135A1 (en) 2013-10-24
WO2012090564A1 (ja) 2012-07-05
GB201310822D0 (en) 2013-07-31
JP5520390B2 (ja) 2014-06-11
DE112011104620T5 (de) 2013-10-02
CN103283149B (zh) 2016-05-11
JPWO2012090564A1 (ja) 2014-06-05
US9043676B2 (en) 2015-05-26
GB2500524A (en) 2013-09-25

Similar Documents

Publication Publication Date Title
CN103283149A (zh) 用于处理数据元素序列的装置和方法
CN100357899C (zh) 存储装置的数据写入、读取方法及数据存储系统
KR100632952B1 (ko) 정전으로 인한 프로그램 페일의 유무를 판별할 수 있는방법 및 장치
CN101536110B (zh) 纠错器件及其方法
US7581153B2 (en) Memory with embedded error correction codes
JP2001358702A (ja) 誤り訂正符号の検査装置
CN102017425B (zh) 用于执行级联纠错的方法和系统
EP0031183A2 (en) Multi-processor computer system
US9246515B2 (en) Error correction code block having dual-syndrome generator, method thereof, and system having same
JP2010518464A (ja) 半導体記憶装置
JPS6122826B2 (zh)
CN1825493A (zh) 存储电路
EP1994470B1 (en) Electronic circuit with a memory matrix that stores pages including extra data
CN104393878A (zh) 用于纠正在编码比特序列中的至少单比特错误的设备和方法
KR20220104031A (ko) 오류 정정 시스템
CN106802837B (zh) 一种更新错误检测和纠正ecc码的方法及装置
CN103270699A (zh) 用于确定搜索起点的装置和方法
WO2000073906A1 (en) Mechanism for decoding linearly-shifted codes to facilitate correection of bit errors due to component failures
US20180122494A1 (en) Raid decoding architecture with reduced bandwidth
RU164633U1 (ru) Устройство хранения и передачи информации с обнаружением ошибок
CN108665940B (zh) Ecc编码电路、解码电路以及存储器控制器
CN110795271A (zh) 对用户数据执行纠错的纠错电路和使用其的纠错方法
CN114765054B (zh) 纠错系统
TW202113863A (zh) 快閃記憶體控制器、儲存裝置及讀取方法
WO2014146488A1 (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
C14 Grant of patent or utility model
GR01 Patent grant