CN115516568A - 用于三元内容可寻址存储器搜索的架构 - Google Patents
用于三元内容可寻址存储器搜索的架构 Download PDFInfo
- Publication number
- CN115516568A CN115516568A CN202180033042.3A CN202180033042A CN115516568A CN 115516568 A CN115516568 A CN 115516568A CN 202180033042 A CN202180033042 A CN 202180033042A CN 115516568 A CN115516568 A CN 115516568A
- Authority
- CN
- China
- Prior art keywords
- search
- memory
- data
- don
- bits
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital 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/04—Digital 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
- G11C15/046—Digital 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 using non-volatile storage elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
- G11C11/4082—Address Buffers; level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/12—Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Static Random-Access Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
基于包括第一位序列的输入搜索字而产生搜索模式。所述搜索模式包括所述输入搜索字的表示及所述输入搜索字的反转的表示。所述搜索模式作为输入被提供到三元内容可寻址存储器(TCAM)块的搜索线。所述搜索线的子集基于所述输入搜索字的第一部分被指明为无关位而设定为逻辑高状态。所述搜索模式使所述CAM块中的至少一个弦线导电且响应于存储于所述弦线上的数据条目包括所述输入搜索字的排除所述无关位的第二部分而提供信号。确定并输出所述数据条目的位置。
Description
优先权申请案
本申请案主张2020年3月6日申请的序列号为16/811,574的美国申请案的优先权益,所述美国申请案的全部内容以引用的方式并入本文中。
技术领域
本公开的实施例大体上涉及存储器子系统,且更特定地涉及用以促进三元内容可寻址存储器(TCAM)搜索的存储器组件架构。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置及易失性存储器装置。大体上说,主机系统可利用存储器子系统以将数据存储于存储器装置处及从所述存储器装置检索数据。
附图说明
本公开将从下文给出的具体实施方式及本公开的各种实施例的随附图式而得到更充分地理解。
图1示出包含根据本公开的一些实施例的实施于存储器子系统内的三元内容可寻址存储器(TCAM)架构的实例计算系统。
图2为示出根据本公开的一些实施例的实施于存储器子系统内的TCAM架构的额外细节的框图。
图3示出根据本公开的一些实施例的实施于呈NAND型快闪存储器组件的实例形式的存储器装置内的TCAM块的组件。
图4示出根据本公开的一些实施例的实施于NAND快闪存储器装置内的TCAM块的单一TCAM单元。
图5为示出根据本公开的一些实施例的可作为TCAM架构的部分包含的移位寄存器的框图。
图6为示出根据本公开的一些实施例的在TCAM上执行不精确搜索匹配中的存储器子系统的实例操作的流程图。
图7为实例计算机系统的框图,本公开的实施例可在所述实例计算机系统中操作。
具体实施方式
本公开的方面涉及用于存储器子系统的三元内容可寻址存储器(TCAM)架构。存储器子系统可为存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置及存储器模块的实例在下文结合图1加以描述。大体上说,主机系统可利用包含一或多个组件(例如存储数据的存储器装置)的存储器子系统。主机系统可提供待存储于存储器子系统处的数据且可请求待从所述存储器子系统检索的数据。存储器子系统控制器从主机系统接收命令或操作且将命令或操作转换成指令或适当命令以实现对存储器子系统的存储器装置的所需存取。
内容可寻址存储器(CAM)为在某些极高速搜索应用(例如标识符(ID)及模式匹配)中使用的特殊类型的存储器组件。一般来说,通过对照存储数据项的表比较输入搜索数据来搜索CAM,且返回匹配表中的数据的存储器地址。CAM频繁地实施于动态随机存取存储器(DRAM)或同步随机存取存储器(SRAM)中。然而,DRAM及SRAM两者具有有限存储器容量,其限制可以常规CAM实施方案存储及搜索的数据的量。
在某些人工智能应用中,还需要“不精确”匹配,其中视为“无关”位的某些位在匹配过程中忽略,由此允许为部分匹配而搜索数据条目。即,搜索过程可忽略搜索字的第一部分(即,对应于无关位)并识别对应于搜索字的第二部分(即,剩余位)的匹配数据。传统上,使用在SRAM中实施的三元CAM(TCAM)促进此种不精确匹配。此类实施方案通常需要每数据位大数目个晶体管(例如,每数据位高达16个晶体管)且因此容量极有限且裸片大小极昂贵。
常规与非(NAND)型快闪存储器装置可包含一或多个块。NAND块包含包括页(行)及弦线(列)的二维(2-D)阵列。三维(3D)NAND型快闪存储器装置包含多个平面,其中的每一者包含一或多个块。弦线包含串联连接的多个单单元(下文中也简称为“存储器单元”),例如NAND快闪单元。单一NAND快闪单元包含将电荷存储于通过上方及下方的氧化物绝缘层绝缘的存储器层上的晶体管。一般来说,当存储器单元的存储器层上存在电荷时,存储器单元通过存储器子系统编程并识别为二进制值0。当存储器单元的存储器层没有电荷时,其被擦除并被识别为二进制值1。
弦线为在NAND型快闪存储器装置中用以读取的单元。NAND型快闪装置通常具有32或64或更多个存储器单元。常规地,每一存储器单元用于表示位值(0或1)。因此,在常规实施方案中,具有32个存储器单元的弦线可表示数据的32个位且具有64个存储器单元的弦线可表示数据的64个位。
在NAND型快闪存储器块中,个别弦线经连接以允许存储及检索来自所选择单元的数据。通常,在块中的弦线是在一个末端处连接到共同源极线且在另一末端处连接到位线。每一弦线还含有与存储器单元串联的两个控制机构。弦线及接地选择晶体管连接到弦线选择线及接地选择线。NAND型快闪装置中的存储器单元在其控制栅极处水平地连接到字线以形成页。页为共享相同字线且为待编程的最小单元的经连接存储器单元的集合。NAND型快闪存储器装置可具有64K或128K单元的页大小。尽管常规NAND型快闪存储器具有比DRAM及SRAM大的容量,但一般来说对于串行数据搜索及存取太缓慢。
本公开的方面运用实施于NAND型快闪存储器装置中的TCAM架构解决前述及其它问题以提供快速及大容量不精确搜索能力。根据此架构,数据条目存储于NAND型快闪存储器阵列的弦线上。与常规NAND实施方案相反,数据条目的每一位经映射到经配置为互补的一对存储器单元。即,所述对的第一存储器单元存储位值且所述对的第二存储器单元存储位值的反转。表示输入搜索字的搜索模式垂直地在对应于阵列块中的弦线的每一字线上输入。单一读取操作比较输入搜索字与阵列块中的全部弦线并识别匹配数据的存储地址。
为允许不精确匹配,一或多个无关位的指示作为输入经提供到TCAM架构。经配置用于搜索TCAM块的搜索组件强迫TCAM块的对应于无关位的搜索线处于逻辑高状态。以此方式,对应于无关位的存储器单元经强迫返回正匹配而无论基本值为何。基本上,这允许基本值被忽略,由此允许搜索组件识别匹配搜索字的剩余部分的所存储数据。
如本文中所描述,基于NAND的TCAM架构实现其中需要高速及高密度不精确模式匹配的新的应用,例如与人工智能、机器视觉及大型遗传数据库相关的应用。此TCAM架构还改进现存数据库不精确搜索系统及算法,例如云联网及服务器中的索引存储器。
图1示出根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类装置的组合。
存储器子系统110可为存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包含SSD、闪存驱动器、通用串行总线(USB)闪存驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可为计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置、载具(例如,飞机、无人机、火车、汽车或其它运输工具)、具备物联网(IoT)功能的装置、嵌入式计算机(例如,包含于载具、工业设备或联网商业装置中的嵌入式计算机),或包含存储器及处理装置(例如,处理器)的此类计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与……耦合”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,无介入组件),无论是有线还是无线的,包含例如电连接、光学连接、磁性连接等的连接。
主机系统120可包含处理器芯片组及由所述处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,NVDIMM控制器)及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110以例如将数据写入到存储器子系统110及从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含(但不限于)串行高级附接技术(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤信道接口、串行附接SCSI(SAS)接口、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM插口接口)、开放式NAND快闪接口(ONFI)、双数据速率(DDR)、低功率双数据速率(LPDDR)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用快速NVM(NVMe)接口以存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。图1示出存储器子系统110作为实例。大体上说,主机系统120可经由同一通信连接、多个分开的通信连接及/或通信连接的组合来存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器组件及/或易失性存储器组件的任何组合。易失性存储器元件(例如,存储器装置140)可为(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。
非易失性存储器装置的一些实例(例如,存储器装置130)包含NAND型快闪存储器及就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可基于体电阻的改变结合可堆叠交叉栅格数据存取阵列而执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在先前未擦除非易失性存储器单元的情况下编程非易失性存储器单元。NAND型快闪存储器包含例如二维NAND(2D NAND)及三维NAND(3D NAND)。
存储器装置130中的每一者可包含存储器单元的一或多个阵列。一种类型的存储器单元(例如单级单元(SLC))可每单元存储一个位。其它类型的存储器单元(例如多级单元(MLC)、三级单元(TLC)及四级单元(QLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含存储器单元(例如SLC、MLC、TLC、QLC或这些的任何组合)的一或多个阵列。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分及MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可经分组为可指用于存储数据的存储器装置的逻辑单元的页。在使用一些类型的存储器(例如,NAND)的情况下,页可经分组以形成块。
尽管描述例如NAND型快闪存储器(例如,2D NAND、3D NAND)及非易失性存储器单元的3D交叉点阵列的非易失性存储器装置,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选择存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁性随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、NOR快闪存储器及电可擦除可编程只读存储器(EEPROM)。
如所展示,存储器装置130中的任一或多者可经配置以包含一或多个三元内容可寻址存储器(TCAM)块113。TCAM块112包含经组织为弦线的存储器单元的一或多个阵列。每一弦线存储数据条目且包含串联连接于匹配线与页缓冲器之间的存储器单元。即,TCAM块112包含多个匹配线且每一匹配线连接到阵列中的多个弦线中的一者。TCAM块112的匹配线对应于上面实施TCAM块112的NAND块的位线。在给定弦线内,存储器单元经组织为互补存储器单元对。由弦线存储的数据条目的每一位值经映射到所述弦线中的互补存储器单元对中的一者。
可通过将搜索模式作为输入提供到TCAM块112的搜索线来搜索TCAM块112。TCAM块112的搜索线对应于上面实施TCAM块112的NAND块的字线。CAM块112的匹配线经预充电以促进搜索。即,在输入搜索之前,电压信号施加到CAM块112的匹配线。在搜索操作期间,如果由TCAM 112存储任一匹配数据,那么一或多个经匹配线(例如,匹配线对应存储匹配数据的弦线)变为导电且响应于在搜索线处输入的搜索模式而使信号放电。如果未存储匹配数据,那么全部匹配线不导电。每一匹配线进一步连接到接收放电信号并存储指示沿着所连接匹配线存储经匹配数据的数据的页缓冲器(例如,包含一或多个锁存器)。
存储器子系统控制器115(或为了简单起见,控制器115)可与存储器装置130通信以执行例如以下各者的操作:在存储器装置130处的读取数据、写入数据或擦除数据,及其它此类操作。控制器115可包含硬件,例如一或多个集成电路及/或离散组件、缓冲器存储器或其组合。硬件可包含具有执行本文中所描述的操作的专用(即,硬编码)逻辑的数字电路系统。控制器115可为微控制器、专用逻辑电路系统(例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或另一合适的处理器。
控制器115可包含经配置以执行存储于本地存储器119中的指令的处理器117(例如,处理装置)。在所示出实例中,控制器115的本地存储器119包含嵌入式存储器,其经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流程及例程的指令,包含操纵存储器子系统110与主机系统120之间的通信。
在一些实施例中,本地存储器119可包含存储存储器指标、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的ROM。尽管图1中的实例存储器子系统110已示出为包含控制器115,但在本公开的另一实施例中,存储器子系统110不包含控制器115,且可改为依赖于外部控制(例如由外部主机或由与存储器子系统分开的处理器或控制器提供)。
大体上说,控制器115可从主机系统120接收命令或操作且可将命令或操作转换成指令或适当命令以实现对存储器装置130的所需存取。控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓冲存储操作,及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA),名称空间)与物理地址(例如,物理块地址)之间的地址转译。控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统120所接收的命令转换成用以存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,DRAM),及可从控制器115接收地址且对所述地址进行解码以存取存储器装置130的地址电路系统(例如,行解码器及列解码器)。
在一些实施例中,存储器装置130包含与存储器子系统控制器115协同操作以对存储器装置130的一或多个存储器单元执行操作的本地媒体控制器135。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130为经管理存储器装置,其为与用于相同存储器装置封装内的媒体管理的本地控制器(例如,本地控制器135)组合的原始存储器装置。经管理存储器装置的实例为经管理NAND(MNAND)装置。
存储器子系统110还包含促进一或多个TCAM块112的搜索的搜索组件113。尽管经示出为存储器装置130的部分,但在一些实施例中,搜索组件113可包含于控制器115或存储器装置140中。在一些实施例中,控制器115包含搜索组件113的至少一部分。举例来说,控制器115可包含经配置以执行存储于本地存储器119中的用于执行本文中所描述的搜索组件113的操作的指令的处理器117(处理装置)。在一些实施例中,搜索组件113为主机系统120、应用程序或操作系统的部分。在一些实施例中,本地媒体控制器135包含搜索组件113。
搜索组件113基于经接收输入搜索字产生搜索模式并沿着TCAM块112的搜索线垂直地输入搜索模式。如上文所提及,如果匹配数据由TCAM块112存储,那么搜索模式使存储数据条目的匹配线(也称作“经匹配线”)变为导电;由于匹配线经预充电,因此经匹配线将信号提供到所连接页缓冲器,所述信号指示搜索字存储于所连接页缓冲器上。任何匹配数据条目的位置(例如,存储地址)可基于由于弦线是导电的而通过经匹配线提供的信号来识别。更特定地说,连接到任何经匹配线的页缓冲器响应于检测到放电信号而存储数据,所述放电信号指示经匹配数据沿着经匹配线而存储。搜索组件113的组件(例如,读出电路)可从页缓冲器读取数据。基于从页缓冲器读取的数据,搜索组件113输出搜索字是否由TCAM块112存储的指示及匹配线的位置的指示符。
为促进不精确匹配,搜索组件113在搜索操作期间强迫TCAM块112的搜索线的一部分进入逻辑高状态。经强迫进入高状态的搜索线对应于搜索字中的经指定为无关位的一或多个位。所述一或多个无关位可在从主机系统120接收到的输入中指定。主机系统120可以编程方式或基于用户输入选择一或多个无关位。将搜索线强迫到逻辑高状态使所连接存储器单元出于找到匹配数据的目的而被忽略,这是因为这些所连接存储器单元变为导电而无论由存储器单元存储的基本值或由搜索模式表示的搜索字的对应值为何。以此方式,存储在由搜索组件113识别的TCAM块112中的匹配数据对应于输入搜索字的剩余部分。即,匹配数据对应于排除无关位的输入搜索字的一部分。
图2为示出根据本公开的一些实施例的实施于存储器子系统110内的TCAM架构的额外细节的框图。如图2中所展示,存储器装置200可组织成多个平面201-1到平面201-4。存储器装置200为存储器装置130的实例。尽管图2将存储器装置200示出为包括四个平面,但应了解存储器装置200不限于四个平面,且在其它实施例中可包含更多或更少平面。平面200-1到200-4中的每一者经配置以包含一或多个TCAM块112。可经由软件或硬件配置每平面TCAM块112的数目。
如所展示,搜索组件113接收输入搜索字206并基于输入搜索字206产生搜索模式208。输入搜索字206包含位的第一序列(例如,“1011”)。由搜索组件113产生的搜索模式208包含表示输入搜索字的电压信号的第一集合209A(SL0-M)及表示包括位(例如,“0100”)的第一序列的反转的位的第二序列的电压信号的第二集合搜索组件113包含用以产生输入搜索字的反转的反转器210及用以产生第一及第二电压信号的电平选择器211。在产生第一及第二电压信号中,电平选择器211可使用电压Vhigh来表示二进制值“1”并使用电压Vlow来表示二进制值“0”,其中Vhigh高于阈值电压(Vt)且Vlow低于所述阈值电压。
如所展示,搜索组件113还包含用以促进不精确匹配的屏蔽寄存器212。搜索组件113(例如,从主机系统120)接收无关位213的指示符并将无关位213写入到屏蔽寄存器212。在图2中所示出的实例中,屏蔽寄存器212为M位长,且条目已经写入到屏蔽寄存器212中D2处,D2指示存储在TCAM块112中的数据条目中的第三位为无关位。
搜索组件113在搜索操作期间使用屏蔽寄存器212来选择置于逻辑高状态中的TCAM块112的搜索线以强迫所连接存储器单元返回正匹配,而不管基本存储数据值是否匹配搜索字206的对应位值。由搜索组件113设定为逻辑高状态的TCAM块112的线对应于无关位213。搜索组件113通过将搜索线连接到电压源而将搜索线设定为逻辑高状态,所述电压源供应对应于逻辑高状态的电压信号。遵循上述符号,搜索组件113可通过将搜索线连接到Vhigh将搜索线设定为逻辑高状态。
为搜索TCAM块112中的一者,搜索组件113沿着正被搜索的TCAM块112的搜索线垂直地输入搜索模式208。搜索模式208的输入使表示匹配存储位值的任何互补存储器单元对变为导电。如果弦线正存储匹配数据,那么整个弦线变为导电。TCAM块112中的匹配线经预充电(例如,连接到Vhigh),且因为匹配线经预充电,因此搜索线上的搜索模式208的输入使块中的存储匹配数据(例如,数据条目匹配搜索字206的至少一部分)的任何匹配线输出放电信号,这是因为对应弦线为导电的。放电信号提供匹配数据存储于连接到匹配线的弦线上的指示。
将无关位搜索线置于逻辑高状态中使所连接存储器单元出于找到匹配数据的目的而被忽略,这是因为这些所连接存储器单元变为导电而无论由存储器单元存储的基本值或由搜索模式表示的搜索字的对应值为何。以此方式,在不精确匹配的情况下的匹配数据对应于输入搜索字206的剩余部分。即,匹配数据对应于排除无关位213的输入搜索字206的一部分。
每一弦线连接于匹配线与页缓冲器(例如,包括一或多个锁存电路)之间且匹配线的页缓冲器存储指示响应于由于匹配线沿着弦线放电而提供的信号而沿着所匹配线存储匹配数据的数据。如所展示,平面201-4包含页缓冲器214。页缓冲器214可包含一或多个锁存电路。物理上,页缓冲器214可驻存在TCAM块112实施于其中的存储器单元的阵列下方或邻近于所述阵列而驻存。
当匹配数据由将信号传导到页缓冲器214的所连接弦线存储时,页缓冲器214基于由匹配线所提供的信号锁存数据。搜索组件113从页缓冲器214读取数据并提供作为输出的输入搜索字206是否存储于正被搜索的TCAM块112中的指示符以及匹配数据的位置(例如,阵列中的弦线的存储器地址)。
在一些实施例中,搜索组件113可依次搜索平面201-1到201-4的TCAM块112中的匹配数据。即,搜索组件113可初始地搜索平面201-1的TCAM块112,此后搜索平面200-2的TCAM块112,此后搜索平面201-3的TCAM块112,且最终搜索平面201-4的TCAM块112。
在一些实施例中,搜索组件113可并行搜索平面201-1到201-4的TCAM块112中的匹配数据。即,搜索组件113可同时搜索平面201-1到201-4的全部TCAM块112以找到匹配数据。平面201-1到201-4的并行搜索允许存储于平面201-1到201-4的全部TCAM块112当中的全部数据条目待在单一搜索操作中搜索而不是在四个单独搜索操作中完成全部数据条目的搜索。因此,如在上文所描述的实施例中所利用,并行搜索可允许搜索组件113实现搜索速度相对于其中利用依序搜索的实施例的增加。
在一些实施例中,数据条目可横越平面201-1到201-4的两者或大于两者而存储。在这些情形中,搜索组件113可横越平面201-1到201-4的两者或大于两者同时搜索匹配数据的部分。当与其中数据条目存储于单一平面内的实施例相比时,横越平面分配数据条目允许较大字大小。举例来说,如果TCAM块112中的每一者支持64位字,那么在全部四个平面当中分配数据条目将允许存储器装置200支持256位字(4*64=256)。
为避免不必要细节混淆本发明主题,已从图2省去与传达理解本发明主题没有密切关系的各种功能组件。然而,所属领域的技术人员将容易认识到各种额外功能组件可作为存储器子系统110的部分而包含以促进本文中未特定描述的额外功能性。举例来说,存储器子系统110可包含允许常规读取及写入操作待对于存储器装置130及140中的一或多者执行的额外电路系统(例如,一或多个多路复用器)。
图3示出根据本公开的一些实施例的实施于呈NAND型快闪存储器装置的实例形式的存储器装置130内的TCAM块300的组件。TCAM块300为TCAM块112的实例。
如所展示,TCAM块300包含匹配线302-0到302-N、搜索线304-0到304-M,及反转搜索线306-0到306-M。在此实施方案中,TCAM块300的匹配线302-0到302-N对应于NAND型快闪存储器装置的位线,且TCAM块300的搜索线304-0到304-M及反转搜索线306-0到306-M对应于NAND型快闪存储器装置的字线。
匹配线302-0到302-N中的每一者连接到包括串联连接的多个存储器单元的弦线。举例来说,匹配线302-0连接到包括存储器单元308-0到308-X(其中X=2M)的弦线。TCAM块300的每一弦线中的存储器单元经配置为互补对。举例来说,在弦线连接到匹配线302-0的情况下,存储器单元308-0到308-X经编程为互补存储器单元对310-0到310-M。
存储器单元对经配置为互补,原因在于所述对中的一个存储器单元存储数据值(“0”)其所述对中的另一存储器单元存储数据值的反转(“1”)。举例来说,如图4中所展示,存储器单元对310-0包含存储器单元308-0及308-1。存储器单元308-0存储数据位值DATA,且存储器单元308-1存储其为数据位值DATA的反转。此外,如图3中所展示,搜索线304-0连接到存储器单元308-0的控制栅极且反转搜索线306-0连接到存储器单元308-1的控制栅极。
搜索线304-0接收表示来自输入搜索字的搜索位值的第一信号SL且反转搜索线306-0接收表示搜索位值的反转的第二信号如果SL匹配DATA且匹配那么存储器单元对310-0将为导电的。举例来说,提供于下文中的表1为定义存储器单元对310-0到310-M中的任何给定者的性能的真值表。
表1
在表1中,为“0”的“DATA”值表示擦除状态且为“1”的“DATA”值表示存储器单元的经编程状态。“SL”为搜索位值,为搜索位值的反转,“DATA”为所存储位值,且为所存储位值的反转。如所展示,当搜索数据值匹配所存储数据值且搜索数据值的反转匹配所存储数据值的反转时互补单元对为导电的。为促进不精确匹配,如果SL对应于无关位,那么SL及经设定为“1”(逻辑高值)。如所展示,在这些情形中,互补单元对独立于实际搜索位或数据位而导电。
TCAM块300还能够存储包括一或多个无关(X)位的数据。举例来说,如表1中所示,当DATA指示为无关时,二进制值零(逻辑低状态)存储在DATA映射到的互补单元对的两个存储器单元(例如,互补存储器单元对310-0的存储器单元308-0及308-1)中。在这些情形中,互补存储器单元对将为导电的。
返回到图3,TCAM块300中的每一弦线存储数据条目及数据条目中的每一数据位值映射到弦线中的存储器单元对310-0到310-N中的一者。以此方式,在弦线中的互补存储器单元对中的每一者内,除非位值经指示为无关位(在此情况下第一存储器单元及第二存储器单元两者存储二进制值零),否则第一存储器单元存储来自数据条目的位值且第二存储器单元存储来自数据条目的位值的反转。
在其中NAND型快闪存储器装置支持128位字(即,N为128)的实例中,匹配线302-0连接到存储器单元308-0到308-63,其存储包括位值D0,0到D63,63的64位数据条目。在此实例中,位值D0,0映射到包括存储器单元308-0及308-1的存储器单元对310-0。更特定地说,存储器单元308-0存储位值D0,0且互补存储器单元308-1存储其为位值D0,0的反转。
搜索模式312可沿着搜索线304-0到304-M及反转搜索线306-0到306-M垂直地输入。更特定地说,搜索线304-0到304-M接收表示搜索字的电压信号的第一集合SL0-M,且反转搜索线306-0到306-M接收表示搜索字的反转的电压信号的第二集合搜索模式312沿着搜索线的输入使存储匹配数据的任一弦线导电,这是因为如上文所论述,弦线中的每一个别存储器单元对将是导电的。因为匹配线经预充电,因此导电弦线允许匹配线放电。连接到导电弦线的页缓冲器锁存指示匹配数据(即,搜索字)在TCAM块300中的位置的数据。
如上文所提及,为促进不精确匹配,搜索线304-0到304-M中的一或多者及反转搜索线306-0到306-M的对应一或多者可在搜索弦线的输入之前或与搜索弦线的输入并行地经设定为逻辑高状态。搜索组件113可通过将搜索线连接到电压源而将任一搜索线设定为逻辑高状态,所述电压源提供对应于逻辑高状态(例如,Vhigh)的电压信号。作为实例,假定搜索字的第二位为无关位213。搜索线304-1及反转搜索线306-1对应于搜索字SL1的第二位及所存储数据条目D1的第二位。因此,作为执行此实例搜索的部分,搜索组件113通过将搜索线304-1及反转搜索线306-1连接到Vhigh而将搜索线304-1及反转搜索线306-1设定为逻辑高。结果,连接到搜索线304-1及反转搜索线306-1的互补存储器单元对中的每一者变为导电,由此指示正匹配而无论所存储的基本数据或搜索模式中的实际对应值为何。
搜索组件113输出匹配数据是否由TCAM块300存储的指示及匹配数据的位置(例如,存储器地址)的指示符。在一些实施例中,搜索组件113包含读取来自TCAM块300的页缓冲器的数据以识别匹配数据的位置的读出电路。
在一些实施例中,TCAM块300中的两个或多于两个页缓冲器可关联在一起以形成串行移位寄存器。根据这些实施例,搜索组件113将连接到匹配线的第一页缓冲器中的数据移位到第二页缓冲器,且搜索组件113包含输出比较及计数组件以跟踪从一个页缓冲器到另一页缓冲器的移位的数目以识别由TCAM块300存储的匹配数据的位置。
两个页缓冲器可使用单一晶体管关联在一起以形成移位寄存器。举例来说,如图5中所展示,移位寄存器500包含通过晶体管506连接的页缓冲器502及页缓冲器504。
图6为示出根据本公开的一些实施例的用于不精确搜索存储器子系统中的TCAM组件的实例方法600的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法600由图1的搜索组件113执行。尽管以特定序列或次序展示,但除非另有规定,否则可修改所述过程的次序。因此,所示出的实施例应仅理解为实例,且所示出的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中,可省略一或多个过程。因此,并非所有过程在每一实施例中皆需要。其它处理流程是可能的。
在操作605处,处理装置接收输入搜索字。所述输入搜索字可从与处理装置通信的主机系统(例如,主机系统120)接收。输入搜索字包含M位的第一序列(例如,“100110101011”)。
在操作610处,处理装置接收经指定为无关位的M位的第一序列中的一或多个位的指示符。为了识别匹配数据的目的可忽略搜索字的无关位。无关位的指示符可从主机系统接收。主机系统可以编程方式或基于用户输入选择一或多个无关位。一或多个无关位对应于输入字的第一部分且搜索字的剩余部分(例如,未指定为无关的部分)在下文被称作“第二部分”。
在操作615处,处理装置基于无关位将TCAM块的搜索线的子集设定为逻辑高状态。逻辑高状态表示二进制值1。处理装置通过将搜索线连接到表示逻辑高状态的电压信号将这些搜索线设定为逻辑高状态。因此,电压信号具有大于阈值电压的对应电压,其中低于阈值的电压表示逻辑低状态且高于阈值的电压表示逻辑高状态。
TCAM块包含存储器单元的阵列(例如,NAND型快闪存储器阵列)。阵列的存储器单元经布置为弦线且所述弦线中的每一者存储数据条目。弦线包含串联连接于预充电匹配线与页缓冲器之间的多个存储器单元。匹配线经预充电原因在于其连接到电压信号(例如,表示逻辑高状态)。TCAM块进一步包含多个搜索线,且每一弦线中的存储器单元中的每一者连接到多个搜索线中的一者。
设定为逻辑高状态的TCAM块的搜索线的子集对应于输入搜索字的无关位。即,经设定为逻辑高状态的TCAM块的搜索线的子集连接到存储对应于输入搜索字中的无关位的数据值的存储器单元。举例来说,如上文所提及,每一弦线中的存储器单元经组织为互补存储器单元对。由弦线存储的数据条目的每一位值经映射到所述弦线中的互补存储器单元对。具体地说,第一存储器单元存储位值且第二存储器单元存储位值的反转。更特定地说,第一存储器单元存储表示位值的第一电荷且第二存储器单元存储表示位值的反转的第二电荷。因此,对于每一无关位,对应于无关位的部位处的位值的搜索线皆经设定为逻辑高状态。即,对于表示无关位的部位处的位值的阵列中的互补存储器单元对中的每一者,连接到存储数据值的第一存储器单元的第一搜索线经设定为逻辑高状态且连接到存储所述数据值的反转的第二存储器单元的第二线也经设定为逻辑高状态。
在操作620处,处理装置基于输入搜索字产生搜索模式。搜索模式包含表示搜索字的电压信号的第一集合。即,电压信号的所述第一集合表示M位的第一序列。搜索模式进一步包含表示包括位的第一序列的反转(例如,“0110 0101 0100”)的M位的第二序列的电压信号的第二集合。因此,在产生搜索模式时,处理装置通过反转输入搜索字产生位的第二序列并将位的第一及第二序列分别地转换成第一及第二信号。处理装置可基于位的第一序列替代地产生第一信号且通过产生第一信号的反转而产生第二信号。在产生第一及第二电压信号时,处理装置可使用电压Vhigh来表示二进制值“1”并使用电压Vlow来表示二进制值“0”,其中Vhigh高于阈值电压(Vt)且Vlow低于Vt。
处理装置提供搜索模式以搜索TCAM块的线(在操作625处)。无论由搜索模式表示的值为何,经设定为逻辑高状态的TCAM块的搜索线的子集保持处于逻辑高状态。在将搜索模式提供到TCAM的搜索线时,处理装置将表示来自第一位序列的搜索位值的第一信号提供到连接到互补存储器单元对中的第一存储器单元的第一搜索线且将表示搜索位值的反转的第二搜索信号提供到连接到互补存储器单元对中的第二存储器单元的第二搜索线。
如果输入搜索字的第二部分(例如,排除无关位的部分)存储于TCAM块中,那么搜索模式的输入使上面存储输入搜索字的第二部分的弦线变为导电。因为匹配的线经预充电,因此导电弦线允许匹配线放电。即,弦线基于存储于连接到匹配输入搜索字的第二部分的匹配线的弦线上的数据条目传导由匹配线放电产生的信号。导电弦线将信号提供到在弦线的另一末端处连接的页缓冲器。所述页缓冲器响应于由于匹配线放电而提供的信号而锁存数据。锁存的数据指示连接到页缓冲器的匹配线存储匹配输入搜索字的至少第二部分的数据条目。
在操作630处,处理装置确定任何匹配数据是否由TCAM块存储。出于不精确匹配的目的,匹配数据包含输入搜索字的第二部分但可能排除第一部分。处理装置可通过读取来自TCAM块的页缓冲器的数据确定任何匹配数据是否由TCAM块存储。
如果在操作630处,处理装置确定无匹配数据由TCAM块存储,那么处理装置可返回到操作610并使用至少一个新的无关位再次重复所描述的过程。至少一个新的无关位的指示符可在操作610处再次由主机系统提供。即,可提供无关位的第一集合,且如果基于无关位的所述第一集合未识别匹配数据,那么可提供无关位的第二集合,且处理装置基于无关位的第二集合搜索用于匹配数据的TCAM块。
如果处理装置确定匹配数据由TCAM块存储,那么处理装置在操作635处确定存储于TCAM块中的任何匹配数据的位置。即,处理装置确定匹配输入搜索字的第二部分的所存储数据条目的位置。处理装置可基于从页缓冲器读取的数据确定匹配数据的位置。匹配数据的位置可包含对应于阵列内的一或多个弦线的一或多个存储器地址。
在操作640处,处理装置输出匹配数据是否由TCAM块存储的指示及匹配数据的位置。匹配数据的位置可例如用于检索与由存储器子系统存储的输入搜索字相关联的额外数据。相关联数据可存储于上面实施TCAM块的存储器装置的不同部分中或存储器子系统的另一存储器装置上。
实例1为一种系统,其包括:存储器装置,其包括三元内容可寻址存储器(TCAM)块,所述三元内容可寻址存储器块包括组织成多个弦线的存储器单元的阵列,所述多个弦线中的弦线存储数据条目,所述弦线包括串联连接于预充电匹配线与页缓冲器之间的多个存储器单元,所述存储器单元中的每一者连接到多个搜索线中的一者;及处理装置,其耦合到所述存储器装置,所述处理装置用以执行包括以下各者的操作:接收包括位序列的输入搜索字;接收所述位序列中的一或多个无关位的指示符,所述一或多个无关位对应于所述输入搜索字的第一部分;将所述多个搜索线的子集设定为逻辑高状态,所述多个搜索线的所述子集对应于所述一或多个无关位;基于所述输入搜索字产生搜索模式;将所述搜索模式作为输入提供到所述多个搜索线,所述搜索模式使所述弦线导电并响应于存储于所述弦线上的所述数据条目匹配所述输入搜索字的排除所述一或多个无关位的至少第二部分而将信号提供到所述页缓冲器,所述信号是由所述预充电匹配线经由所述弦线放电而产生,所述页缓冲器响应于所述信号而存储数据;及基于由所述页缓冲器读取的所述数据而输出所述TCAM块内的所述数据条目的位置。
在实例2中,实例1的所述多个存储器单元任选地经配置为多个互补存储器单元对且所述数据条目的位值映射到所述多个互补存储器单元对中的互补存储器单元对。
在实例3中,实例1及2中任一项的主题任选地包括互补存储器单元对,所述互补存储器单元对包括:用以存储所述数据条目的位值的第一存储器单元;及与所述第一存储器单元串联连接的第二存储器单元,所述第二存储器单元用以存储所述位值的反转,其中所述多个搜索线中的第一搜索线连接到所述第一存储器单元;且其中所述多个字线中的第二字线连接到所述第二存储器单元。
在实例4中,实例1到3中任一项的主题任选地包括用以接收表示来自所述输入搜索字的搜索位值的第一搜索信号的第一搜索线,及用以接收表示所述搜索位值的反转的第二搜索信号的第二搜索线。
在实例5中,实例1到4中任一项的搜索模式任选地包括表示所述输入搜索字的第一信号集合及表示所述输入搜索字的反转的第二信号集合。
在实例6中,实例1到5中任一项的主题任选地包括用以产生所述位序列的反转的反转器;及用以基于所述第一位序列产生第一信号集合且基于所述位序列的所述反转产生第二信号集合的电平移位器。
在实例7中,实例1到6中任一项的主题任选地包括基于由所述页缓冲器读取的数据而确定匹配数据是否由所述TCAM块存储,所述匹配数据包括所述输入搜索字的至少所述第二部分;及输出匹配数据是否由所述TCAM块存储的指示。
实例8包含实例1到7的主题,其中所述一或多个无关位为无关位的第一集合;所述多个搜索线的所述子集为第一子集;且所述操作进一步任选地包括:在接收无关位的所述第一集合之前接收无关位的第二集合;将所述多个搜索线的第二子集设定为逻辑高状态,所述多个搜索线的所述第二子集对应于无关位的第二集合;确定匹配数据不由所述TCAM存储;且其中基于确定匹配数据不由所述TCAM存储而提供无关位的所述第一集合。
在实例9中,实例1到8中任一项的数据条目的位置任选地包括所述CAM块内的所述弦线的存储器地址。
在实例10中,实例1到9中任一项的存储器装置任选地包括与非(NAND)型快闪存储器装置。
实例11为一种方法,其包括:接收包括第一位序列的输入搜索字;接收所述第一位序列中的一或多个无关位的指示符,所述一或多个无关位对应于所述输入搜索字的第一部分;将三元内容可寻址存储器(TCAM)块的多个搜索线的子集设定为逻辑高状态,所述多个搜索线的所述子集对应于所述一或多个无关位;基于所述输入搜索字产生搜索模式;将所述搜索模式提供到所述TCAM的所述多个搜索线,所述搜索模式使所述TCAM中的弦线导电且响应于所述弦线存储匹配数据而将信号提供到页缓冲器,所述匹配数据包括所述输入搜索字的排除所述无关位的第二部分,所述信号是由预充电匹配线经由所述弦线放电而产生,所述页缓冲器响应于所述信号而存储数据;及基于由所述页缓冲器读取的所述数据而输出所述TCAM块内的所述数据条目的位置。
在实例12中,实例11的所述多个存储器单元任选地经配置为多个互补存储器单元对且所述数据条目的位值映射到所述多个互补存储器单元对中的互补存储器单元对。
在实例13中,实例11及12中任一项的主题任选地包括互补存储器单元对,所述互补存储器单元对包括:用以存储所述数据条目的位值的第一存储器单元;及与所述第一存储器单元串联连接的第二存储器单元,所述第二存储器单元用以存储所述位值的反转,其中所述多个搜索线中的第一搜索线连接到所述第一存储器单元;且其中所述多个字线中的第二字线连接到所述第二存储器单元。
在实例14中,实例11到13中任一项的提供搜索模式作为输入任选地包括将表示来自所述输入搜索字的搜索位值的第一搜索信号提供到所述第一搜索线,及将表示所述搜索位值的反转的第二搜索信号提供到所述第二搜索线。
在实例15中,实例11到14中任一项的主题任选地包括基于由所述页缓冲器读取的数据而确定匹配数据是否由所述TCAM块存储,所述匹配数据包括所述输入搜索字的至少所述第二部分;及输出匹配数据是否由所述TCAM块存储的指示。
在实例16中,实例11到15中任一项的主题任选地包括通过从所述页缓冲器中读取所述数据确定所述数据条目的所述位置,所述数据指示所述弦线的所述位置。
在实例17中,实例11到16中任一项的搜索模式任选地包括表示所述输入搜索字的第一信号集合及表示所述位序列的反转的第二信号集合。
在实例18中,所述位序列为第一位序列,实例11到17中任一项中的所述产生搜索模式任选地包括:反转所述第一位序列以产生所述第二位序列;产生表示所述第一位序列的第一电压信号;及产生表示所述第二位序列的第二电压信号。
在实例19中,实例11到18中任一项的数据条目的位置任选地包括所述TCAM块内的所述弦线的存储器地址。
实例20为一种非暂时性计算机可读存储媒体,其包括在由处理装置执行时配置所述处理装置执行包括以下各者的操作的指令:接收包括第一位序列的输入搜索字;接收所述第一位序列中的一或多个无关位的指示符,所述一或多个无关位对应于所述输入搜索字的第一部分;将三元内容可寻址存储器(TCAM)块的多个搜索线的子集设定为逻辑高状态,所述多个搜索线的所述子集对应于所述一或多个无关位;基于所述输入搜索字产生搜索模式;将所述搜索模式作为输入提供到所述TCAM的所述多个搜索线,所述搜索模式使弦线导电且响应于所述弦线存储匹配数据而将信号提供到页缓冲器,所述匹配数据包括所述输入搜索字的排除所述无关位的第二部分,所述信号是由预充电匹配线经由所述弦线放电而产生,所述页缓冲器响应于所述信号而存储数据;及基于由所述页缓冲器读取的所述数据而输出所述TCAM块内的所述数据条目的位置。
图7示出呈计算机系统700的形式的实例机器,指令集可在所述计算机系统内执行以用于使机器执行本文中所论述的方法中的任何一或多者。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的计算机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的搜索组件113的操作)。在替代实施例中,机器可连接(例如,联网)到局域网(LAN)、企业内部网、企业外部网及/或互联网中的其它机器。机器可在主从式网络环境中以服务器或客户端机器的身分操作,在对等(或分布式)网络环境中作为对等机器操作,或在云计算基础设施或环境中作为服务器或客户端机器操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行指定待由所述机器采取的动作的指令集(依序或以其它方式)的任何机器。此外,虽然示出单个机器,但术语“机器”还应被视为包含个别地或联合地执行指令集(或多个指令集)以执行本文中所论述的方法中的任何一或多者的机器的任何集合。
实例计算机系统700包含处理装置702、主存储器704(例如,ROM、快闪存储器、例如SDRAM或Rambus DRAM(RDRAM)的DRAM等)、静态存储器707(例如,快闪存储器、静态随机存取存储器(SRAM)等)及数据存储系统718,以上各者经由总线730彼此通信。
处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元或其类似者。更明确地说,处理装置702可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702还可为一或多个专用处理装置,例如ASIC、FPGA、数字信号处理器(DSP)、网络处理器或其类似者。处理装置702经配置以执行用于执行本文所论述的操作及步骤的指令726。计算机系统700可进一步包含网络接口装置708以经由网络720通信。
数据存储系统718可包含机器可读存储媒体724(也称为计算机可读媒体),在所述机器可读存储媒体上存储指令727的一或多个集合或体现本文中所描述方法或功能中的任一或多者的软件。在其由计算机系统700执行期间,指令727还可完全或至少部分地驻存于主存储器704内及/或处理装置702内,主存储器704及处理装置702还构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718及/或主存储器704可对应于图1的存储器子系统110。
在一个实施例中,指令727包含用以实施对应于安全组件(例如,图1的搜索组件113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体724展示为单一媒体,但术语“机器可读存储媒体”应视为包含存储指令727的一或多个集合的单一媒体或多个媒体。术语“机器可读存储媒体”还应被视为包含能够存储或编码供机器执行的指令集且使机器执行本公开的方法中的任一或多者的任何媒体。术语“机器可读存储媒体”因此应被视为包含(但不限于)固态存储器、光学媒体及磁性媒体。
已根据对计算机存储器内的数据位的操作的算法及符号表示来呈现前述详细描述的一些部分。这些算法描述及表示为数据处理领域的技术人员用来向所属领域的其他技术人员传达其工作的实质的方式。此处且大体上将算法构想为产生所需结果的操作的自一致序列。所述操作为需要物理量的物理操控的那些操作。通常但未必,这些量采用能够存储、组合、比较以及以其它方式操控的电信号或磁信号的形式。主要出于常用的原因,已证实将这些信号称为位、值、元件、符号、字符、术语、数字或其类似者时常为便利的。
然而,应牢记,所有这些及类似术语与适当物理量相关联,且仅是应用于这些量的便利标记。本公开可涉及操控表示为计算机系统的寄存器及存储器内的物理(电子)量的数据并将其变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据的计算机系统或类似电子计算装置的动作及过程。
本公开还涉及一种用于执行本文中的操作的设备。此设备可经特别构造以用于所预期目的,或其可包含由存储于计算机中的计算机程序选择性地激活或重新配置的通用型计算机。此计算机程序可存储于计算机可读存储媒体中,例如(但不限于)任何类型的盘,包含软盘、光盘、CD-ROM及磁光盘;ROM;RAM;可擦除可编程只读存储器(EPROM);EEPROM;磁卡或光卡;或任何类型的适用于存储电子指令的媒体,且每一者耦合到计算机系统总线。
本文中所呈现的算法及显示器并非固有地与任何特定计算机或其它设备相关。根据本文教示各种通用系统可与程序一起使用,或其可证明便于构造较专用设备来执行方法。用于各种这些系统的结构将如以上描述所阐述的。另外,并未参考任何特定编程语言来描述本公开。应了解,各种编程语言可用以实施如本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含存储有指令的机器可读媒体,所述指令可用以编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于存储呈机器(例如计算机)可读取形式的信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器可读(例如,计算机可读)存储媒体,例如ROM、RAM、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,本公开的实施例已参考其特定实例实施例加以描述。将显而易见的是,可在不脱离如所附权利要求书中所阐述的本公开的实施例的更广泛范围的情况下对其进行各种修改。因此,本说明书及图式应在说明性意义上而非限制性意义上来理解。
Claims (20)
1.一种系统,其包括:
存储器装置,其包括三元内容可寻址存储器(TCAM)块,所述三元内容可寻址存储器块包括组织成多个弦线的存储器单元的阵列,所述多个弦线中的弦线存储数据条目,所述弦线包括串联连接于预充电匹配线与页缓冲器之间的多个存储器单元,所述存储器单元中的每一者连接到多个搜索线中的一者;及
处理装置,其耦合到所述存储器装置,所述处理装置用以执行包括以下各者的操作:
接收包括位序列的输入搜索字;
接收所述位序列中的一或多个无关位的指示符,所述一或多个无关位对应于所述输入搜索字的第一部分;
将所述多个搜索线的子集设定为逻辑高状态,所述多个搜索线的所述子集对应于所述一或多个无关位;
基于所述输入搜索字产生搜索模式;
将所述搜索模式作为输入提供到所述多个搜索线,所述搜索模式使所述弦线导电且响应于存储于所述弦线上的所述数据条目匹配所述输入搜索字的排除所述一或多个无关位的至少第二部分而将信号提供到所述页缓冲器,所述信号是由所述预充电匹配线经由所述弦线放电而产生,所述页缓冲器响应于所述信号而存储数据;及
基于由所述页缓冲器读取的所述数据而输出所述TCAM块内的所述数据条目的位置。
2.根据权利要求1所述的系统,其中:
所述多个存储器单元经配置为多个互补存储器单元对,且
所述数据条目的位值映射到所述多个互补存储器单元对中的互补存储器单元对。
3.根据权利要求2所述的系统,其中:
所述互补存储器单元对包括:
第一存储器单元,其用以存储所述数据条目的位值,及
第二存储器单元,其与所述第一存储器单元串联连接,所述第二存储器单元用以存储所述位值的反转,
所述多个搜索线中的第一搜索线连接到所述第一存储器单元;且
多个搜索线中的第二搜索线连接到所述第二存储器单元。
4.根据权利要求3所述的系统,其中:
所述第一搜索线接收表示来自所述位序列的搜索位值的第一信号,且
所述第二搜索线接收表示所述搜索位值的反转的第二信号。
5.根据权利要求4所述的系统,其中所述处理装置包括:
反转器,其用以产生所述位序列的反转;及
电平移位器,其用以基于所述位序列产生所述第一信号且基于所述位序列的所述反转产生所述第二信号。
6.根据权利要求1所述的系统,其中所述操作进一步包括:
基于由所述页缓冲器读取的所述数据而确定匹配数据是否由所述TCAM块存储,所述匹配数据包括所述输入搜索字的至少所述第二部分;及
输出所述匹配数据是否由所述TCAM块存储的指示。
7.根据权利要求1所述的系统,其中所述搜索模式包括表示所述输入搜索字的第一信号集合及表示所述输入搜索字的反转的第二信号集合。
8.根据权利要求1所述的系统,其中:
所述一或多个无关位为无关位的第一集合;
所述多个搜索线的所述子集为第一子集;且
所述操作进一步包括:
在接收无关位的所述第一集合之前接收无关位的第二集合;
将所述多个搜索线的第二子集设定为逻辑高状态,所述多个搜索线的所述第二子集对应于无关位的第二集合;
确定匹配数据不由TCAM存储;且
其中无关位的所述第一集合是基于确定匹配数据不由所述TCAM存储而提供。
9.根据权利要求1所述的系统,其中所述数据条目的所述位置包括所述TCAM块内的所述弦线的存储器地址。
10.根据权利要求1所述的系统,其中所述存储器装置包括与非(NAND)型快闪存储器装置。
11.一种方法,其包括:
接收包括第一位序列的输入搜索字;
接收所述第一位序列中的一或多个无关位的指示符,所述一或多个无关位对应于所述输入搜索字的第一部分;
将三元内容可寻址存储器(TCAM)块的多个搜索线的子集设定为逻辑高状态,所述多个搜索线的所述子集对应于所述一或多个无关位;
基于所述输入搜索字产生搜索模式;
将所述搜索模式提供到TCAM的所述多个搜索线,所述搜索模式使所述TCAM中的弦线导电且响应于所述弦线存储匹配数据而将信号提供到页缓冲器,所述匹配数据包括所述输入搜索字的排除所述无关位的第二部分,所述信号是由预充电匹配线经由所述弦线放电而产生,所述页缓冲器响应于所述信号而存储数据;及
基于由所述页缓冲器读取的所述数据而输出所述TCAM块内的数据条目的位置。
12.根据权利要求11所述的方法,其中:
多个存储器单元经配置为多个互补存储器单元对,且
所述数据条目的位值映射到所述多个互补存储器单元对中的互补存储器单元对。
13.根据权利要求12所述的方法,其中:
所述互补存储器单元对包括:
第一存储器单元,其用以存储所述数据条目的位值,及
第二存储器单元,其与所述第一存储器单元串联连接,所述第二存储器单元用以存储所述位值的反转,
所述多个搜索线中的第一搜索线连接到所述第一存储器单元;且
多个搜索线中的第二搜索线连接到所述第二存储器单元。
14.根据权利要求13所述的方法,其中所述提供所述搜索模式作为输入包括:
将表示来自位序列的搜索位值的第一搜索信号提供到所述第一搜索线,及
将表示所述搜索位值的反转的第二搜索信号提供到所述第二搜索线。
15.根据权利要求11所述的方法,其进一步包括:
基于由所述页缓冲器读取的所述数据而确定匹配数据是否由所述TCAM块存储,所述匹配数据包括所述输入搜索字的至少所述第二部分;及
输出所述输入搜索字是否由所述TCAM块存储的指示。
16.根据权利要求11所述的方法,其中所述输出所述数据条目的所述位置包括从所述页缓冲器中读取所述数据,所述数据指示所述弦线的位置。
17.根据权利要求11所述的方法,其中所述搜索模式包括表示所述输入搜索字的第一信号集合及表示所述位序列的反转的第二信号集合。
18.根据权利要求11所述的方法,其中:
所述位序列为第一位序列;且
所述产生所述搜索模式包括:
反转所述位序列以产生第二位序列;
产生表示所述第一位序列的第一电压信号;及
产生表示所述第二位序列的第二电压信号。
19.根据权利要求11所述的方法,其中所述数据条目的所述位置包括所述TCAM块内的所述弦线的存储器地址。
20.一种包括指令的非暂时性计算机可读存储媒体,所述指令在由存储器子系统控制器执行时配置所述存储器子系统控制器以执行包括以下各者的操作:
接收包括第一位序列的输入搜索字;
接收所述第一位序列中的一或多个无关位的指示符,所述一或多个无关位对应于所述输入搜索字的第一部分;
将三元内容可寻址存储器(TCAM)块的多个搜索线的子集设定为逻辑高状态,所述多个搜索线的所述子集对应于所述一或多个无关位;
基于所述输入搜索字产生搜索模式;
将所述搜索模式作为输入提供到TCAM的所述多个搜索线,所述搜索模式使弦线导电且响应于所述弦线存储匹配数据而将信号提供到页缓冲器,所述匹配数据包括所述输入搜索字的排除所述无关位的第二部分,所述信号是由预充电匹配线经由所述弦线放电而产生,所述页缓冲器响应于所述信号而存储数据;及
基于由所述页缓冲器读取的所述数据而输出所述TCAM块内的数据条目的位置。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/811,574 US11133065B1 (en) | 2020-03-06 | 2020-03-06 | Architecture for ternary content-addressable memory search |
| US16/811,574 | 2020-03-06 | ||
| PCT/US2021/021157 WO2021178851A1 (en) | 2020-03-06 | 2021-03-05 | Architecture for ternary content-addressable memory search |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN115516568A true CN115516568A (zh) | 2022-12-23 |
Family
ID=77556306
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202180033042.3A Withdrawn CN115516568A (zh) | 2020-03-06 | 2021-03-05 | 用于三元内容可寻址存储器搜索的架构 |
Country Status (6)
| Country | Link |
|---|---|
| US (2) | US11133065B1 (zh) |
| EP (1) | EP4115425A1 (zh) |
| KR (1) | KR20220159393A (zh) |
| CN (1) | CN115516568A (zh) |
| TW (1) | TWI773171B (zh) |
| WO (1) | WO2021178851A1 (zh) |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11133065B1 (en) | 2020-03-06 | 2021-09-28 | Micron Technology, Inc. | Architecture for ternary content-addressable memory search |
| CN113936710B (zh) * | 2021-09-15 | 2026-01-09 | 浙江毫微米科技有限公司 | 一种三态内容寻址存储器以及电子设备 |
| CN115881189A (zh) * | 2021-09-27 | 2023-03-31 | 三星电子株式会社 | 内容可寻址存储器和包括其的电子装置 |
| US11854619B2 (en) * | 2022-01-19 | 2023-12-26 | Taiwan Semiconductor Manufacturing Company, Ltd. | Memory device with content addressable memory units |
| US12057179B2 (en) | 2022-03-04 | 2024-08-06 | Macronix International Co., Ltd. | Memory device with high content density |
| TWI807668B (zh) * | 2022-03-04 | 2023-07-01 | 旺宏電子股份有限公司 | 高內容密度之記憶體裝置 |
| US12131787B2 (en) * | 2022-08-19 | 2024-10-29 | Macronix International Co., Ltd. | Page buffer counting for in-memory search |
| US12159672B2 (en) | 2023-02-01 | 2024-12-03 | Macronix International Co., Ltd. | Hybrid IMS CAM cell, memory device and data search method |
| TWI849716B (zh) * | 2023-02-01 | 2024-07-21 | 旺宏電子股份有限公司 | 混合式記憶體內搜尋(ims)內容定址記憶體(cam)單元、記憶體裝置及資料搜尋方法 |
| US12417170B2 (en) | 2023-05-10 | 2025-09-16 | Macronix International Co., Ltd. | Computing system and method of operation thereof |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7596553B2 (en) * | 2002-10-11 | 2009-09-29 | Avaya Inc. | String matching using data bit masks |
| US8166536B1 (en) * | 2009-02-10 | 2012-04-24 | Juniper Networks, Inc. | Transformation of network filter expressions to a content addressable memory format |
| US9704576B2 (en) * | 2014-02-28 | 2017-07-11 | Rambus Inc. | Complementary RRAM applications for logic and ternary content addressable memory (TCAM) |
| US9224091B2 (en) * | 2014-03-10 | 2015-12-29 | Globalfoundries Inc. | Learning artificial neural network using ternary content addressable memory (TCAM) |
| US9875799B1 (en) * | 2015-01-12 | 2018-01-23 | Micron Technology, Inc. | Methods for pattern matching using multiple cell pairs |
| JP6533129B2 (ja) | 2015-08-28 | 2019-06-19 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
| US9484096B1 (en) | 2015-11-30 | 2016-11-01 | National Tsing Hua University | Ternary content-addressable memory |
| US9859006B1 (en) * | 2016-06-17 | 2018-01-02 | Globalfoundries Inc. | Algorithmic N search/M write ternary content addressable memory (TCAM) |
| US9934857B2 (en) * | 2016-08-04 | 2018-04-03 | Hewlett Packard Enterprise Development Lp | Ternary content addressable memories having a bit cell with memristors and serially connected match-line transistors |
| US9728258B1 (en) | 2016-10-04 | 2017-08-08 | National Tsing Hua University | Ternary content addressable memory |
| US10846296B2 (en) | 2018-04-30 | 2020-11-24 | Hewlett Packard Enterprise Development Lp | K-SAT filter querying using ternary content-addressable memory |
| US10504595B1 (en) | 2019-02-28 | 2019-12-10 | Palo Alto Networks, Inc. | Amortizing dissipated power and current demand in a ternary content addressable memory |
| US11133065B1 (en) | 2020-03-06 | 2021-09-28 | Micron Technology, Inc. | Architecture for ternary content-addressable memory search |
-
2020
- 2020-03-06 US US16/811,574 patent/US11133065B1/en active Active
-
2021
- 2021-03-05 TW TW110107924A patent/TWI773171B/zh active
- 2021-03-05 KR KR1020227034951A patent/KR20220159393A/ko active Pending
- 2021-03-05 EP EP21763709.9A patent/EP4115425A1/en not_active Withdrawn
- 2021-03-05 WO PCT/US2021/021157 patent/WO2021178851A1/en not_active Ceased
- 2021-03-05 CN CN202180033042.3A patent/CN115516568A/zh not_active Withdrawn
- 2021-09-09 US US17/470,468 patent/US11664072B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US20210280250A1 (en) | 2021-09-09 |
| US11133065B1 (en) | 2021-09-28 |
| TW202145224A (zh) | 2021-12-01 |
| TWI773171B (zh) | 2022-08-01 |
| EP4115425A1 (en) | 2023-01-11 |
| KR20220159393A (ko) | 2022-12-02 |
| US20210407595A1 (en) | 2021-12-30 |
| WO2021178851A1 (en) | 2021-09-10 |
| US11664072B2 (en) | 2023-05-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI773171B (zh) | 用於記憶體搜尋之系統及方法,及非暫時性電腦可讀儲存媒體 | |
| US12001716B2 (en) | Key-value data storage system using content addressable memory | |
| US12019780B2 (en) | Memory device data security based on content-addressable memory architecture | |
| US12142318B2 (en) | Redundancy and majority voting in a key-value data storage system using content addressable memory | |
| US11756619B2 (en) | Key storage for sorted string tables using content addressable memory | |
| US11756621B2 (en) | Architecture for fast content addressable memory search | |
| CN117916719A (zh) | 存储器中的存取跟踪 | |
| US11955175B2 (en) | Copy redundancy in a key-value data storage system using content addressable memory | |
| US20240370202A1 (en) | Programming content addressable memory | |
| US20260031146A1 (en) | Searching a clustered or non-clustered index database using content addressable memory | |
| CN114691028A (zh) | 存储器子系统存储器存储体搜索组件 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| WW01 | Invention patent application withdrawn after publication | ||
| WW01 | Invention patent application withdrawn after publication |
Application publication date: 20221223 |