CN1329923C - 边界可寻址存储器 - Google Patents

边界可寻址存储器 Download PDF

Info

Publication number
CN1329923C
CN1329923C CNB018201822A CN01820182A CN1329923C CN 1329923 C CN1329923 C CN 1329923C CN B018201822 A CNB018201822 A CN B018201822A CN 01820182 A CN01820182 A CN 01820182A CN 1329923 C CN1329923 C CN 1329923C
Authority
CN
China
Prior art keywords
signal
input
bam
unit
output
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
CNB018201822A
Other languages
English (en)
Other versions
CN1479925A (zh
Inventor
亚历克斯·E·汉德森
沃尔特·克罗夫特
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN1479925A publication Critical patent/CN1479925A/zh
Application granted granted Critical
Publication of CN1329923C publication Critical patent/CN1329923C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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
    • 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
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Static Random-Access Memory (AREA)
  • Image Processing (AREA)
  • Logic Circuits (AREA)

Abstract

一种边界可寻址存储器(BAM)阵列,包括多个BAM字模块。每个BAM字模块包括多个BAM单元,该BAM单元用于在输入数据和存储在每个BAM单元中的上限值和下限值之间执行算术比较,以便生成表示输入数据不大于上限值并且不小于下限值或输入数据不大于下限值和不小于上限值的匹配信号。

Description

边界可寻址存储器
相关申请
本申请根据35 U.S.C§119(e)要求Alex.E.Henderson和WalterE.Croft在2000年11月7日申请的、名称为“Boundary AddressableMemory”的U.S.临时申请No.60/246,795的优先权,其内容在此全部引入作为参考。
技术领域
本发明总的来说涉及半导体存储器,更具体地说涉及边界可寻址存储器(Boundary Addressable Memory,BAM)设备。
背景技术
在计算机网络中,经计算机网络从一个网络设备传送到另一个网络设备的数据通常被分成称为包的小数据块。包过滤是网络设备,诸如路由器、上层开关、防火墙、带宽管理器以及类似设备的基本要求。
内容可寻址存储器(CAM)设备是公知的用来执行分类系统中数据筛选的半导体设备。CAM允许搜索和匹配存储器的内容而不必指定从存储器检索数据的一个或多个具体的存储单元。通常使用CAM设备的应用的一个例子是搜索路由表以便查看匹配的目的地址,诸如Internet协议(IP)目的地址,以便可将数据路由到适当的目的地址。在识别出匹配地址后,通常要求应用其他的过滤标准来确定匹配地址是否落在某一范围内。范围校验是计算机网络中的应用,诸如校验Ethernet MAC报头中的端口号范围以及有效长度和类型值。然而,实现用于非二进制CAM的范围校验要求多个入口。具有多个入口使得布线非常昂贵并且空间利用效率低。此外,类似CAM的存储设备通过查看多个周期内存储器中的整个区域来搜索匹配数据,从而增加等待时间。
因此,需要用于执行算术范围校验的存储设备。
发明内容
本发明克服了用于执行分类系统中算术范围校验的具有边界可寻址存储器(BAM)设备的现有技术的缺陷和限制。本发明特别有利,因为它使用范围校验执行算术比较,而不是执行类似CAM的等于比较(equality comparison)。算术范围校验提供用于匹配大于或等于存储的下限值同时小于或等于上限值的输入值的方法。
本发明的BAM设备包括BAM字模块(word module)的阵列。每个BAM字模块包括多个BAM单元。在本发明的优选实施例中,每个BAM单元包括存储上限值的第n位的存储单元和存储下限值的第n位的存储单元。BAM单元进一步包括用于执行上限值的第n位以及输入数据的第n位之间的算术比较的上限比较器。BAM单元也包括用于执行下限值的第n位以及输入数据的第n位之间的算术比较的下限比较器。
在本发明的优选实施例中,按下述方式发生在BAM设备中搜索具有小于或等于输入数据的下限值以及大于或等于输入数据的上限值的BAM字。将输入数据的第n位同时提供给上限比较器和下限比较器。上限比较器将输入信号的第n位与存储的上限值的第n位进行比较。同时,下限比较器将输入数据的第n位与存储的下限值的第n位进行比较。逐位执行比较并且从最高命令位(highest order bit)一直传播到最低命令位。因此,BAM字断言(assert)表示输入数据是否小于或等于上限值以及大于或等于下限值,或输入数据是否大于或等于上限值并且小于或等于下限值的信号。
耦合逻辑门来接收每个BAM字模块的小于或等于以及大于或等于输出,并且响应接收的输出,生成匹配信号。在本发明的一个实施例中,匹配信号表示输入数据落在由上限值和下限值指定的范围内。在另一实施例中,匹配信号表示输入数据落在由上限值和下限值指定的范围外。
本发明的这些和其他特征以及优点通过考虑下述本发明的优选实施例的详细描述变得更好理解。在进行说明期间,频繁地参考附图。
附图说明
图1是由多个BAM字模块组成的边界可寻址存储(BAM)阵列的实施例的高级框图。
图2是由多个BAM单元组成的图1的实施例的一个BAM字模块的实施例的高级框图。
图3是图2的实施例的BAM字模块的一个BAM单元的实施例的高级框图。
图4是图3的BAM单元的上限部分的门级实现。
图5是图3的BAM单元的上限部分的晶体管级实现。
图6是图3的BAM单元的下限部分的门级实现。
图7是图3的BAM单元的下限部分的晶体管级实现。
图8是图4和6的实施例的超前等于电路(look ahead equalcircuit)的高级框图。
图9是将上限比较器和下限比较器堆叠在一起实现的图8的超前电路的框图。
图10是低功率BAM单元的上限部分的晶体管级实现。
图11是低功率BAM单元的下限部分的晶体管级实现。
图12是图10和11的实施例的BAM单元时序图。
具体实施方式
现在参考图1,该图示出了根据本发明的的实施例的边界寻址存储(BAM)阵列100的实施例的高级框图。BAM阵列100包括多个BAM字模块102(a)-102(n),其中(n)表示阵列100中BAM字模块102的数量。每个BAM字模块102(a)-102(n)由多个BAM单元50(a)-(n)组成,BAM单元的例子在图3中详细地示出。每个BAM单元50(a)-(n)存储上限位和下限位,如下面图3-7所示。每个上限位和下限位是用来执行BAM阵列100中的范围校验的任意值。每个BAM字模块102(a)-102(n)能执行在信号线70上提供的输入数据和在BAM字模块102(a)-102(n)的每个BAM单元50(a)-(n)中存储的相应的上限位和下限位之间的算术比较。每个BAM字模块102(a)-102(n)最好在信号线62(a)-62(n)上输出小于或等于信号并且在信号线64(a)-64(n)上输出大于或等于的信号。耦合逻辑门15(a)-15(n)来分别从每个BAM字模块102(a)-102(n)接收信号线62(a)-62(n)和64(a)-64(n)上的小于或等于信号以及大于或等于信号,并且在各个信号线75(a)-75(n)上产生匹配信号。在本发明的一个实施例中,匹配信号当其表示在信号线70上提供的输入数据不大于存储在BAM字102(a)-102(n)中的上限值并且不小于下限值时断定其为高。在本发明的另一实施例中,匹配信号当其表示在信号线70上提供的输入数据不小于上限值并且不大于下限值时断定其为高。未示出用于读取上限值和下限值并将其写入每个BAM字102(a)-102(n)中的位线,因为它们是常规的,并且是本领域的技术人员所理解的。
现在参考图2,该图示出了一个BAM字模块102(n)。BAM字模块102(n)包括多个BAM单元50(a)-(n)。本发明在优选实施例中实现为32位BAM字模块,从而其将具有32个BAM单元50。然而,本领域的技术人员将意识到,BAM字模块102(n)能是任何大小。如图2所示,将BAM字模块102(n)分成多个BAM单元50(a)-(n),用于执行在信号线70上提供的输入值与存储在每个BAM单元50(n)中的上限值的第n位以及下限值的第n位之间的算术比较。
在优选实施例中,每个BAM单元50(a)-(n)每次估算一个最高有效位。在每个BAM单元50(a)-(n)中执行比较并且以菊花链的形式从最高命令位传播到最低命令位。将每个BAM单元50(a)-(n)耦合到线“或”信号线62、64。如果BAM单元50(a)-(n)中任何一个为高,那么断定在信号线62、64上为高信号,并且挂起对较低命令位的比较。将逻辑门15(n)耦合到用于接收小于等于信号的小于等于信号线62。进一步将逻辑门15(n)耦合到用于接收大于等于信号的大于等于线64。在本发明的一个优选实施例中,逻辑门15(n)在两个输入上执行AND功能同时断言信号线75(n)上的匹配信号。逻辑门15当小于等于以及大于等于信号均为高时断言在其各个信号线75(n)上为“高”。在本发明的一个实施例中,当对至少一个BAM单元50(a)-(n)来说,输入信号不大于上限值同时不小于下限值时,小于等于以及大于等于信号均为高。在本发明的另一实施例中,当对至少一个BAM单元50(a)-(n)来说,输入信号不小于上限值同时不大于下限值时,这两个信号均为“高”。否则,逻辑门15(n)断定在其输出75(n)上为“false”或“0”。
现在参考图3,它示出了如图2中所示的BAM字102(n)的BAM单元50(n)的优选实施例。该示例性的BAM单元50(n)包括多个典型的六晶体管SRAM存储单元52和54、上限比较器56以及下限比较器58。上限位线9是用于读取上限值并将其写入SRAM单元52的常规的位线。下限位线11是用于读取下限值并将其写入SRAM单元54中的常规的位线。位线驱动器12将上限值和下限值推动到SRAM单元52、54,以及将IN和IN_N值推动到比较器56、58。将上限比较器56耦合到SRAM单元52来从SRAM单元52接收上限值。将下限比较器58耦合到SRAM单元54来从SRAM单元54接收下限值。传感设备55是被耦合的常规读出放大器以便读取存储在SRAM单元52,54中的上限和下限位的内容。
在操作中,以下述方式发生根据本发明的实施例在BAM设备100中搜索匹配的BAM字102(a)-(n)。将输入信号线70上输入数据的第n位提供给上限比较器56和下限比较器58。上限比较器56将输入信号的第n位与存储在SRAM52中的上限值的相应位进行比较。同时,下限比较器58将输入信号的第n位与存储在SRAM54中的下限值的相应位进行比较。在信号线60上将来自较高命令位的等于信号提供给上限比较器56并在信号线67上将等于信号提供给下限比较器58。在信号线60、67上提供的每个等于信号表示高于输入数据的第n位的每个命令位等于存储在SRAM52、54中的相应位。
在该优选实施例中,在每个BAM单元50(a)-(n)中执行比较并且以菊花链的形式从最高命令位一直传播到最低命令位。如果在BAM单元50(n)中执行的比较结果为“等于”,即,高于输入数据的第n位的每个命令位等于存储在SRAM52、54中的相应位,下限比较器58断言信号线90上的高等于输出信号至下一BAM单元50。同样,上限比较器56断言信号线99上的至下一BAM单元50的高等于输出信号。如果在BAM单元50(n)中执行的比较结果为“小于或等于”,则上限比较器56断言信号线62上的高信号(如图2中所示)以及禁止比较较低命令位。同样,如果在BAM单元50(n)中执行的比较结果是“大于或等于”,那么下限比较器58断言在信号线64(如图2所示)中的高信号以及禁止比较较低命令位。本领域的技术人员将意识到,同时在BAM阵列100中的每个BAM字模块102(a)-(n)中执行比较。
现在参考图4,该图示出了结合图3描述的BAM单元50(n)的上限部分的门级实现。BAM单元50(n)的上限部分包括上限比较器56和SRAM单元52。在本发明的一个实施例中,将上限比较器56作为用于执行“小于等于”比较的NAND门电路10。用于执行“等于”比较的“同”门电路20,以及用于执行AND操作和用于在各个信号线90上将等于输出信号输出给下一BAM单元50的AND门电路30来实现。在优选实施例中,将AND门电路30作为NAND门电路33以及反相器35实现。在另一实施例中(未示出),将AND门电路30作为AND门电路实现。
NAND门电路10具有三个输入。将第一输入耦合到用于接收输入数据的第n位的输入信号线70。将第二输入耦合到用于接收等于信号(校验位信号)的信号线60。当等于输出信号为高时,它表示高于当前输入位的每个命令位与存储在SRAM52中的上限值的相应位相等。将NAND门电路10的第三输入耦合到用于接收SRAM52的反相输出的信号线53。将NAND门电路10的漏极耦合到小于等于信号线62。该小于等于信号线62是断言其输出上的小于等于信号的线“或”线。
“同”门电路20具有两个输入。将“同”门电路20的第一输入耦合到输入信号线80以便接收输入信号的反相第n位。耦合“同”门电路20的第二输入以便在信号线53上接收SRAM52的反相输出。“同”门电路20的输出断言信号线25上的单元等于(cell equal)信号。
AND门电路30具有两个输入。将第一输入耦合到用于接收等于信号的信号线60。将第二输入耦合到用于接收XNOR门电路20的输出(单元等于信号)的单元等于信号线25。AND门电路30断言信号线90上的等于输出信号。应当理解,同时执行“小于等于”和“等于”信号的比较。
在优选实施例中,用下述方式执行比较。
1、信号是相等的
在输入信号线70上提供的输入数据的第n位和存储的第n位是相等的(两者均具有逻辑1或逻辑0值)。在信号线62上等于输入信号高。NAND门电路10接收其输入上的下述信号:信号线70上的输入信号、信号线53上的SRAM52的输出;以及信号线60上的等于信号。NAND门电路10执行NAND功能并断言信号线62上的高信号。
与NAND门电路10执行比较的同时,“同”门电路20接收信号线53上的SRAM52的输出以及信号线80上的反相输入信号并执行“等于”线的比较。由于SRAM52的输入信号和输出是相等的,XNOR门电路20断言在信号线25上的高单元等于信号。该单元等于信号表示如果这两个信号是相等的(两者均具有逻辑值“1”或“0”),那么对该特定单元的比较结果是“相等的”。AND门电路30接收信号线25上的单元等于信号以及信号线60上的高等于输入信号并在这两个信号上执行AND功能。AND门电路10断言在信号线90上为高等于输出信号。该高等于输出信号(equal out signal)表示所有在前BAM单元是“相等的”,并且当前比较是“相等的”。因此,使等于输出信号变成等于输入信号并且将比较传播到下一有效位(BAM单元50),直到在信号线70上的输入信号小于存储在SRAM52中的上限值或大于上限值。
2、小于等于
当信号线70上的输入信号为逻辑0以及SRAM52的输出为逻辑1时,NAND门电路10接收信号线62上的高等于输入信号,信号线53上的SRAM52的低输出以及信号线70上的低输入信号。NAND门电路10在执行NAND操作后断言信号线62上为高小于等于信号。
在由NAND门电路10执行比较的同时,“同”门电路20接收信号线80上的反相输入信号以及信号线430上的SRAM52的反相输出53并执行“等于”线的比较。“同”门电路20在执行“同”功能后断言信号线25上为低单元等于信号。AND门电路30在其输入接收信号线25上的低单元等于信号以及信号线60上的高等于输入信号并在这两个信号上执行AND功能。AND门电路30断言信号线90上为低等于输出信号。
作为该比较的结果,输入信号不大于或等于在SRAM52的输出提供的存储信号。信号线62上的小于等于信号仍然为高并且禁止传播所有较低命令位。如图1和2所示的逻辑门15(n)接收信号线62上的高小于等于信号。
3、大于
信号线70上的输入信号为逻辑1,信号线53上的SRAM52的输出为逻辑1,以及信号线60上的等于输入信号为逻辑1。NAND10在三个信号上执行NAND功能并断言信号线62上的低信号。该信号表示输入信号大于存储在SRAM52中的位。因此,禁止传播所有较低命令位且逻辑门15接收信号线62上的低小于等于信号,如图1和2所示。
表1示例说明当输入位等于存储的上限位,不大于存储的上限位以及大于存储的上限位时的情形。
表1.在BAM单元50(n)的下面部分中执行的比较图。
  IN   IN_N   SRAM   SRAM方波(bar)   等于输入     NAND门的输入     小于等于     XNOR门的输入     单元等于     AND门的输入  等于输出
  0   1   0   1   1     0,1,1     1     1,1     1     1,1  等于输出=等于输入
  1   0   1   0   1     1,1,0     1     0,0     1     1,1  等于输出=等于输入
  0   1   1   0   1     1,0,0     1     1,0     0     0,1  0
  1   0   0   1   1     1,1,1     0     0,1     0     1,0  0
应当理解,在图4中所示的门级图可用许多可能的方式在晶体管级上实现。图5示出了BAM单元50(n)的上限部分的门级图的示例性的实施方式。如图5所示,NAND门10的功能作为晶体管M1、M2和M3实现。XNOR门20的功能作为晶体管M4-M7以及M10实现。AND门30的功能作为晶体管M8和M9实现。
晶体管M1、M2和M3实现“小于等于”逻辑线。将M1的漏级连接到小于等于线62。将M1的源极连接到M2的漏极。将M2的源极连接到M3的漏极。位线9将上限值写入SRAM单元52。M2栅极接收SRAM单元52的反相输出。M3接收信号线80上的反相输入信号。M3的源极连接到VSS地。
代替图4的实施例中的XNOR门20实现的XOR门20的功能作为M4、M5、M6和M7实现。这些晶体管执行“等于”线比较。将M4的源极连接到M5的漏极。将M4的漏极连接到M6的漏极。将M5的源极连接到VSS地。将M6的源极连接到M7的漏极。将M7的源极连接到VSS地。
在此代替图4的实施例的AND门30实现的NOR门30的功能作为晶体管M8和M9实现。这些晶体管执行“等于输出”逻辑。将M8的漏极连接到M9的漏极。M10是用来预处理晶体管M4、M5、M6和M7的晶体管。将M10连接到M4的漏极以及M6的漏极。将M10的源极连接到VDD。应当注意,晶体管M8和M10作为PMOS晶体管实现。其余所有晶体管作为NMOS晶体管实现。
图5中所示的实施例有利地允许BAM阵列100在一个周期内执行范围校验。将该周期分为三个阶段:建立所有假设期间的预处理阶段、确认或无效所有假定期间的比较阶段以及更新阶段。
在周期的预处理阶段期间,最好预处理下述信号:信号线62上的小于等于信号、信号线25上的单元等于方波信号(bar signal)以及信号线70和80上的输入信号。在优选实施例中,预充电信号线70和80上的输入信号到低电平以便使功耗守恒。在预充电输入信号后,允许它们进入它们的初始状态。在该优选实施例中,假定信号线62上的小于等于信号为高(逻辑1),表示信号线70上的输入信号不大于SRAM52中的相应存储位。PMOS晶体管M10预处理信号线25上的单元等于方波信号以便将其假定为高(逻辑1),从而表示在信号线70上的输入信号不等于存储位。本领域的技术人员将理解,可使用任何PMOS晶体管来预处理小于等于信号线62上的信号。在另一实施例中,将信号线62上的小于等于信号预处理为低值。因此,假定输入信号不小于存储在SRAM52中的位。同样,将信号线25上的单元等于方波信号预处理为低电平,从而表示存储位等于输入数据的第n位。
在预处理阶段后的比较阶段期间,执行所有比较并且在第一阶段中建立的假设或是无效或是有效。
1、信号是相等的
在信号线70上的输入信号以及存储在SRAM52中的位是相等的。执行NADN功能的晶体管M1-M3断言在信号线62上的高信号。因此,表示输入信号不大于存储在SRAM52中的位的初始假定是有效的。执行NOR门功能的晶体管M4-M7在信号线25上输出低单元等于方波信号,从而无效这两个信号是不相等的初始假定。执行AND功能的晶体管M8和M9在信号线90上输出高单元等于输出信号,表示输入数据的第n位等于存储的第n位并且在前比较的结果是“相等的”。因此,将等于输出信号变为等于输入信号并且将比较传播到下一BAM单元50(n)以便执行下一较低命令位的比较,直到信号线70上的输入信号大于或不大于在SRAM52的输出提供的信号。
2、小于等于
信号线70上的输入信号具有逻辑0值,存储在SRAM52中的位为逻辑1,以及在等于输入线60上的信号为高。晶体管M1-M3在执行AND功能后断言信号线62上为高信号,从而使初始假定有效。同时,晶体管M4-M7在信号线25上输出高单元等于方波信号,从而使表明这两个信号不相等的初始假定有效。M8和M9接收信号线60上的高等于输入信号以及信号线25上的高单元等于方波信号,并在信号线90上输出低单元等于输出信号。
因此,在信号线62上将表示输入信号不大于存储在SRAM52中的位的高小于等于信号提供给如图1、2所示的逻辑门15(n),并禁止传播到较低命令位。
3、大于
输入信号具有逻辑1值,存储的SRAM位具有逻辑0值,并在信号线60上提供等于输入信号。晶体管M1-M3在三个信号上执行NAND功能。作为NAND操作的结果,M1-M3断言在信号线62上为低信号,从而表示初始假定是错误的,即,输入信号大于存储的位。如图1、2所示的逻辑门15(a)-(n)接收小于等于信号线62上的低信号。挂起在BAM字模块102(n)中所有较低命令位的比较。
当无效初始假定时,在更新阶段更新于预处理阶段中预处理过的所有信号,以便使它们各个值从“高”变为“低”或从“低”变为“高”。
在与BAM单元50(n)的上限部分中执行的比较的同时,在BAM单元50(n)的下限部分中执行比较。下面将结合图6和7来详细地描述这些比较。
现在参考图6,该图示出了BAM单元50(n)的下面部分的门级实现。BAM单元50(n)的下限部分包括下限比较器58和SRAM单元54。应当注意到,BAM单元50(n)的下面部分的门级实现与BAM单元50(n)的上限部分的实现类似。下面是BAM单元50(n)的上限部分与BAM单元50(n)的下限部分的门级实现之间的一些差异:NAND门10接收信号线70上的输入信号的第n位、存储在SRAM单元54中的反相位以及等于输入信号67。下限比较器58执行“大于等于”比较。SRAM单元54存储下限值。在操作中,如在优选实施例中实现的那样,如果输入信号的第n位不小于存储在SRAM54中的第n位并且等于输入信号67是真的(即,每个较高命令位等于其相应的存储位),那么将大于等于线64拉低并且挂起任何进一步的传播。如果相反,输入信号的第n位不小于存储的第n位,那么大于等于信号线64仍然为高并且挂起至较低命令位的所有传播。
用与BAM单元50(n)的上面部分的“等于”功能相似的方式执行BAM单元50(n)的下面部分的“等于”比较。下面是一些差异:XNOR门20接收信号线70上输入信号的第n位以及存储在SRAM54中的一位。在BAM单元50(n)的上限部分的门级实现中,XNOR门20接收信号线80上的反相输入信号以及存储在SRAM54中的反相位。
在BAM单元50(n)的上限部分中执行的比较图看起来与表1类似,但是其显示出当输入位等于存储的下限位、不小于存储的下限位以及小于存储的上限位时的情形。
现在参考图7,该图示出了BAM单元50(n)的下限部分的门级图的晶体管级实现。除存在一些差异外,利用与BAM单元50(n)的上面部分相同的方式实现BAM单元50(n)的下面部分。例如,BAM单元50(n)的下面部分的下限比较器58执行大于等于比较。在预处理阶段,通过PMOS晶体管(未示出)将大于等于信号线64预处理为高。位线11将下限值写入SRAM单元54。晶体管M2接收存储在SRAM 54中的位以及M6接收反相存储位。M3接收信号线80上的反相输入信号,以及M5接收信号线70上的输入信号。用类似于BAM单元50(n)的上面部分的“等于”逻辑实现BAM单元50(n)的下面部分的“等于”逻辑。
如果使初始假定无效,则在更新阶段期间更新大于等于信号线64和单元等于方波信号线25,以便将它们各自的值从“高”变为“低”或从“低”变为“高”。应当理解,可通过将它们预充电到高或低值来实现信号的预处理。类似地,可通过将它们放电到高或低值来实现信号的更新。
如果作为比较的结果,输入信号的第n位等于下限值的第n位,则将比较传播到下一第n位(BAM单元50)。或者,挂起剩余BAM单元50中的比较并在信号线64上将高或低大于等于信号提供给逻辑门15(a)-(n)(如图2所示)。
图8是耦合到图2的实施例的BAM字102(n)的超前等于电路45的框图。在该优选实施例中,BAM字模块102(a)-(n)(如图1和2所示)是32位宽,从而具有32个BAM单元50。在本发明的一个实施例中,超前电路45每次估算四位。然而,本领域的技术人员将理解,超前电路45一次可估算任何数量的位。如图8所示,使BAM单元50(n)的四个上限部分或下限部分彼此连接。每个BAM单元50(n)在信号线25上输出单元等于输出信号。在一个优选实施例中,超前电路45是一个5输入的AND门,其由NAND门33和一个反相器35形成。将超前电路45耦合到信号线25以便从四个BAM单元50接收单元等于输出信号。进一步将超前电路45耦合到等于输入信号线60以便接收等于输入信号。超前电路45确定在信号线70上提供的四位输入信号是否等于分别存储在SRAM单元52和54(在图8中未示出)中的四位上限值或下限值,并在各自的信号线92上输出Fast等于输出信号。电路45的优选实现要求8次传播以便在信号线92上生成至下四个BAM单元50的Fast等于输出信号。
等于超前电路45的优点在于简化每个等于输出信号必须通过的逻辑。从而,不是等待一系列改变从最高命令位到最低命令位的传播,而是不管较高命令位是否相等,都对BAM单元50(n)的每个上限部分或下限部分平行地生成四个单元等于信号。该传播速度是以另外5个AND门45为代价实现的。本领域的技术人员将意识到,BAM设备100可具有1个以上的超前电路45。因此,图9示例说明用于分别在信号线92a和92b上传播1个以上Fast等于输出信号的两个等于超前电路45a和45b。
现在参考图10,该图示出了图3的低功率BAM单元50(n)的上限部分的另一晶体管级实现。BAM单元50(n)的上限部分包括SRAM单元52、NAND门10、XNOR门20以及NOR门30。NAND门10作为晶体管M1、M2、M3以及M10实现。将M3的漏极连接到小于等于线62。将M1的源极连接到M2的漏极。将晶体管M10插入晶体管M2和M3之间,以便将M2的源极连接到M10的漏极。将M2的栅极连接到SRAM单元52的反相输出。将M3的源极连接到VSS地。XNOR门20作为晶体管M4、M5、M6、M7、M11以及M12实现。将晶体管M11插入晶体管M4和M5之间。将晶体管M12插入晶体管M6和M7之间。将M4的源极连接到M11的漏极。将M4的漏极连接到M6的漏极。将M5的源极连接到VSS地。将M6的源极连接到M7的漏极。将M7的源极连接到VSS地。M15是预充电晶体管,将其连接到M4的漏极以及M6的漏极。将M10的源极连接到VDD。应当注意,以PMOS晶体管来实现晶体管M15。所有其他晶体管用NMOS晶体管实现。
在操作中,当断言相等选通68时,晶体管M11和M12为开。在信号线70和80上将输入信号提供给晶体管M5和M7。在信号线53上将SRAM52的输出提供给晶体管M4和M6。晶体管M11-M12以及M4-M7估算输入信号的第n位是否等于在SRAM52的输出提供的信号,并断言信号线25上的单元等于方波信号。耦合NAND门33以便接收信号线25上的反相单元等于方波信号(单元等于)以及信号线60上的等于输入信号。在NAND门33的输入上提供等于输入信号60前使其反相两次。NAND门33的输出是表示在前比较为相等的并且在该BAM单元50(n)中执行的比较是相等的等于输出信号。
在执行等于比较后,断言小于等于选通脉冲66,从而接通晶体管10。当晶体管M10为开时,确定输入信号的第n位是否不大于在SRAM52上提供的信号。因此,在该实施例中,不象同时执行所有比较的优选实施例,仅当断言“相等”选通、“小于等于”选通或“大于等于”选通时才执行所有估算。在图10中所示的实施例是有利的,因为使用相等选通允许在信号线25上的等于信号在执行小于或大于比较前按菊花链传播。
应当注意,在本优选实施例中,在预充电阶段期间,将在信号线70和80上提供的输入信号预充电为0。在预处理阶段后,允许这些信号回到它们的初始状态。在该实施例中,在预充电阶段期间输入信号不需要预处理以便它们可转到任何状态。
图11表示图3的低功率BAM单元50(n)的下限部分的晶体管体级实现。用与低功率BAM单元50(n)的上限部分相似的方式实现低功率BAM单元50(n)的下面部分。不象BAM单元50(n)的上限部分,下面部分执行大于等于比较。
现在参考图12,该图示出了表示图10和11的实施例的信号间的关系的低功率BAM单元50(n)的时序图。首先,在预充电阶段,最好通过晶体管M15预充电在信号线25上提供的单元等于信号。通过PMOS晶体管(未示出)预充电小于等于信号线62和大于等于信号线64。然后,断言相等选通68。相等选通68是表示需要执行所有等于计算的定时信号。在执行所有等于估算后,断言表示需要执行“小于等于”或“大于等于”比较的小于等于选通66或大于等于选通69。

Claims (25)

1、一种边界可寻址存储器(BAM)设备,包括:
BAM字模块装置,每个BAM字模块用于执行输入数据和存储在每个BAM字中的上限值之间以及该输入数据和存储在每个BAM字模块中的下限值之间的算术比较,以及用于响应该比较产生多个输出信号;以及
具有输入和输出的逻辑门,耦合该逻辑门的输入以便接收每个BAM字模块的输出,耦合该逻辑门的输出以便生成表示输入数据是不大于上限值并且不小于下限值还是该输入数据不大于下限值并且不小于上限值的匹配信号。
2、如权利要求1所述的设备,其特征在于:每个BAM字模块进一步包括多个BAM单元,其中每个BAM单元进一步包括:
至少两个存储单元,用于存储上限值和下限值;
第一比较器,用于将输入数据与上限值进行比较,该第一比较器具有输入和输出,耦合该第一比较器的输入来接收输入数据和上限值,以及将该第一比较器的输出耦合到逻辑门;
第二比较器,用于将输入数据与下限值进行比较,该第二比较器具有输入和输出,耦合该第二比较器的输入以便接收输入数据和下限值,以及将该第二比较器的输出耦合到逻辑门。
3、如权利要求1所述的设备,其特征在于:每个存储单元是SRAM单元。
4、一种边界可寻址存储器(BAM)单元,包括:
第一预处理逻辑,用于将第一比较信号预处理到第一状态;
耦合到该第一预处理逻辑的第一逻辑,该第一逻辑具有第一输入、第二输入、第三输入以及输出,将第一输入耦合到用于接收第一校验位的等于输入信号线,将第二输入耦合到用于接收存储位的信号线,将第三输入耦合到用于接收输入信号的输入信号线,第一逻辑用于将输入位与存储位进行比较,以及用于基于比较,通过表示第一比较信号的第一状态是否正确来确认第一比较信号;
耦合到第一逻辑的第二预处理逻辑,用于将第二比较信号预处理到第二状态;
耦合到第二预处理逻辑的第二逻辑,其具有第一输入、第二输入以及输出,将第一输入耦合到用于接收存储位的信号线,以及将第二输入耦合到用于接收输入信号的输入信号线,第二逻辑门用于将输入信号和存储信号进行比较,以及通过表示第二比较信号的第一状态是否正确来确认第二比较信号;以及
具有第一输入、第二输入以及输出的第三逻辑,将第一输入耦合到用于接收校验位的等于输入信号线,将第二输入耦合到用于接收第二比较信号的单元等于信号线,第三逻辑门用于断言在其输出上的至下一最高有效位的第二校验位,表示第二比较信号的第二状态是否正确以及第一校验位是否为真。
5、如权利要求4所述的单元,其特征在于:存储位是上限值的最高有效位。
6、如权利要求4所述的单元,其特征在于:存储位是下限值的最高有效位。
7、如权利要求4所述的单元,其特征在于:第一逻辑是NAND门。
8、如权利要求4所述的单元,其特征在于:第二逻辑是XOR门。
9、如权利要求4所述的单元,其特征在于:第三逻辑门是NOR门。
10、如权利要求4所述的单元,其特征在于:第三逻辑门是NOR门。
11、如权利要求4所述的单元,其特征在于:第一比较信号的第一状态表示输入信号小于等于存储位。
12、如权利要求4所述的单元,其特征在于:第一比较信号的第一状态表示输入信号不小于等于存储位。
13、如权利要求4所述的单元,其特征在于:第一比较信号的第一状态表示输入信号大于等于存储位。
14、如权利要求4所述的单元,其特征在于:第一比较信号的第一状态表示输入信号不大于等于存储位。
15、如权利要求4所述的单元,其特征在于:第二比较信号的第二状态表示输入信号等于存储位。
16、如权利要求4所述的单元,其特征在于:第二比较信号的第二状态表示输入信号不等于存储位。
17、如权利要求4所述的单元,其特征在于:第一逻辑作为NMOS晶体管实现。
18、如权利要求4所述的单元,其特征在于:第二逻辑作为NMOS晶体管实现。
19、如权利要求4所述的单元,其特征在于:第三逻辑作为PMOS晶体管实现。
20、如权利要求4所述的单元,其特征在于:第三逻辑作为NMOS晶体管实现。
21、如权利要求4所述的单元,其特征在于:第一和第二预处理逻辑均作为PMOS晶体管实现。
22、一种用于在边界可寻址存储器(BAM)设备中生成匹配信号的方法,包括:
将输入数据与存储在BAM设备中的上限值进行比较并生成表示输入数据是否不大于该上限值的第一输出;
将输入数据与存储在BAM设备中的下限值进行比较并生成表示输入数据是否不小于该下限值的第二输出;以及
结合第一输出和第二输出并生成表示输入数据是否不大于该上限值并且不小于该下限值的匹配信号。
23、一种用于在边界可寻址存储器(BAM)设备中生成匹配信号的方法,包括:
将输入数据与存储在BAM设备中的上限值进行比较并生成表示输入数据是否不小于该上限值的第一输出;
将输入数据与存储在BAM设备中的下限值进行比较并生成表示输入数据是否不大于该下限值的第二输出;以及
结合第一输出和第二输出并生成表示输入数据是否不小于该上限值并且不大于该下限值的匹配信号。
24、一种边界可寻址存储器(BAM)设备,包括:
第一比较装置,用于将输入数据与存储在BAM设备中的上限值进行比较并生成表示输入数据是否不小于该上限值的第一输出;
第二比较装置,用于将输入数据与存储在BAM设备中的下限值进行比较并生成表示输入数据是否不大于该下限值的第二输出;以及
结合装置,用于结合第一输出和第二输出并生成表示输入数据是否不小于该上限值并且不大于该下限值的匹配信号,
25、一种边界可寻址存储器(BAM)设备,包括:
第一比较装置,用于将输入数据与存储在BAM设备中的上限值进行比较并生成表示输入数据是否不大于该上限值的第一输出;
第二比较装置,用于将输入数据与存储在BAM设备中的下限值进行比较并生成表示输入数据是否不小于该下限值的第二输出;以及
结合装置,用于结合第一输出和第二输出并生成表示输入数据是否不大于该上限值并且不小于该下限值的匹配信号
CNB018201822A 2000-11-07 2001-11-07 边界可寻址存储器 Expired - Fee Related CN1329923C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US24679500P 2000-11-07 2000-11-07
US60/246,795 2000-11-07

Publications (2)

Publication Number Publication Date
CN1479925A CN1479925A (zh) 2004-03-03
CN1329923C true CN1329923C (zh) 2007-08-01

Family

ID=22932238

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018201822A Expired - Fee Related CN1329923C (zh) 2000-11-07 2001-11-07 边界可寻址存储器

Country Status (4)

Country Link
CN (1) CN1329923C (zh)
AU (1) AU2002239502A1 (zh)
CA (1) CA2428982C (zh)
WO (1) WO2002043069A2 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035968B1 (en) 2001-09-24 2006-04-25 Netlogic Microsystems, Inc. Content addressable memory with range compare function
US7301961B1 (en) 2001-12-27 2007-11-27 Cypress Semiconductor Corportion Method and apparatus for configuring signal lines according to idle codes
US7272684B1 (en) 2002-06-26 2007-09-18 Netlogic Microsystems, Inc. Range compare circuit for search engine
US7206212B1 (en) 2002-08-13 2007-04-17 Netlogic Microsystems, Inc. Content addressable memory (CAM) device with entries having ternary match and range compare functions
US9960759B2 (en) * 2015-08-14 2018-05-01 Qualcomm Incorporated N-bit compare logic with single ended inputs

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3845465A (en) * 1973-01-12 1974-10-29 Us Air Force Associative storage apparatus for comparing between specified limits
US4627024A (en) * 1983-07-21 1986-12-02 Trw Inc. Window-addressable memory circuit
US4760374A (en) * 1984-11-29 1988-07-26 Advanced Micro Devices, Inc. Bounds checker
US5561429A (en) * 1986-04-16 1996-10-01 Raytheon Company Content limit addressable memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3845465A (en) * 1973-01-12 1974-10-29 Us Air Force Associative storage apparatus for comparing between specified limits
US4627024A (en) * 1983-07-21 1986-12-02 Trw Inc. Window-addressable memory circuit
US4760374A (en) * 1984-11-29 1988-07-26 Advanced Micro Devices, Inc. Bounds checker
US5561429A (en) * 1986-04-16 1996-10-01 Raytheon Company Content limit addressable memory

Also Published As

Publication number Publication date
WO2002043069A2 (en) 2002-05-30
CN1479925A (zh) 2004-03-03
CA2428982A1 (en) 2002-05-30
WO2002043069A3 (en) 2003-02-20
CA2428982C (en) 2007-06-26
AU2002239502A1 (en) 2002-06-03

Similar Documents

Publication Publication Date Title
US6148364A (en) Method and apparatus for cascading content addressable memory devices
KR102401526B1 (ko) 입력 클록 신호와 다상 클록 신호 간의 위상 관계를 결정하기 위한 장치 및 방법
US6392910B1 (en) Priority encoder with multiple match function for content addressable memories and methods for implementing the same
US6763426B1 (en) Cascadable content addressable memory (CAM) device and architecture
US7804699B2 (en) Segmented ternary content addressable memory search architecture
EP0773548B1 (en) Semiconductor memory device
US7940598B2 (en) Integrated circuit memory device, system and method having interleaved row and column control
TW201443651A (zh) 與資料匯流排反相記憶體電路、組態及/或操作有關之系統與方法
US7161867B2 (en) Semiconductor memory device
JP2009507431A (ja) 高速用途においてパラレルデータをシリアルデータに変換する方法および装置
CN1329923C (zh) 边界可寻址存储器
US6201756B1 (en) Semiconductor memory device and write data masking method thereof
US20070217244A1 (en) High performance and scalable width expansion architecture for fully parallel CAMs
US5805928A (en) Burst length detection circuit for detecting a burst end time point and generating a burst mode signal without using a conventional burst length detection counter
JPH09120687A (ja) データ処理システムのための内容アドレス可能メモリ
US5889708A (en) Data reading circuit for semiconductor memory device
JP5772398B2 (ja) 電子部品及び反射波キャンセル方法
US20040125664A1 (en) Semiconductor memory device for reducing data accessing time
US6072746A (en) Self-timed address decoder for register file and compare circuit of a multi-port CAM
US7085147B2 (en) Systems and methods for preventing malfunction of content addressable memory resulting from concurrent write and lookup operations
US6055276A (en) Signal transmitting circuit and method with selection among differential pairs
US6480031B2 (en) High speed latch/register
US5870349A (en) Data processing system and method for generating memory control signals with clock skew tolerance
US6721842B2 (en) Boundary addressable memory
JP3740312B2 (ja) Camセル回路

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070801

Termination date: 20101107