编程内容可寻址存储器的制作方法

阅读: 评论:0



1.本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及编程存储器子系统中的内容可寻址存储器(cam)。


背景技术:



2.存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可以例如是非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以将数据存储在存储器装置处且从存储器装置检索数据。


技术实现要素:


附图说明
3.根据下文给出的具体实施方式且根据本公开的各种实施例的附图,将更加充分地理解本公开。
4.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
5.图2是根据本公开的一些实施例的与存储器子系统的存储器子系统控制器通信的存储器装置的框图。
6.图3是说明根据本公开的一些实施例的编程存储器子系统中的内容可寻址存储器(cam)的框图。
7.图4是根据本公开的一些实施例的在存储器装置内实施的内容可寻址存储器(cam)块的框图。
8.图5是根据本公开的一些实施例的编程存储器子系统中的内容可寻址存储器(cam)的实例方法的流程图。
9.图6是本公开的实施例可在其中进行操作的实例计算机系统的框图。
具体实施方式
10.本公开的各方面涉及编程存储器子系统中的内容可寻址存储器(cam)。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用存储器子系统,所述存储器子系统包含一或多个组件,例如存储数据的存储器装置。主机系统可提供待存储在存储器子系统处的数据,且可请求待从存储器子系统检索的数据。
11.内容可寻址存储器(cam)是某些极高速搜索应用程序(例如标识符(id)和模式匹配)中常用的存储器装置类型。通常,通过将输入搜索数据与所存储数据项的表进行比较来搜索cam,并返回表中的匹配数据的存储器地址。cam常在动态随机存取存储器(dram)或同步随机存取存储器(sram)中实施。然而,dram和sram这两者都具有有限的存储器容量,这会限制常规cam实施方案中可存储和搜索的数据量。
12.存储器子系统可包含高密度非易失性存储器装置,其中当没有电力供应到存储器装置时需要保留数据。非易失性存储器装置的一个实例为与非(nand)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置为一或多个裸片的封装。每个裸片可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,nand装置),每个平面由物理块集合组成。每个块由页集合组成。每个页由存储器单元(“单元”)集合组成。单元为存储信息的电子电路。取决于单元类型,单元可存储二进制信息的一或多个位,且具有与正存储的位数相关的各种逻辑状态。逻辑状态可由二进制值(例如,“0”和“1”)或此类值的组合表示。
13.存储器装置可由以二维或三维网格布置的位组成。存储器单元以列(下文也称为位线)和行(下文也称为字线)阵列的形式蚀刻到硅晶片上。字线可以指存储器装置的存储器单元的一或多个行,所述一或多个行与一或多个位线一起使用以生成存储器单元中的每一者的地址。位线和字线的相交点构成存储器单元的地址。下文中,块是指存储器装置的用于存储数据的单元,且可包含存储器单元组、字线组、字线或个别存储器单元。可以将一或多个块分组在一起以形成存储器装置的平面,以便允许在每个平面上进行并发操作。存储器装置可包含执行两个或更多个存储器平面的并发存储器页存取的电路系统。举例来说,存储器装置可包含可以由存储器装置的平面共享的多个存取线驱动器电路和电力电路,以促进两个或更多个存储器平面的包含不同页类型的页的并发存取。为易于描述,这些电路通常可称为独立的平面驱动器电路。取决于所采用的存储架构,可以跨越存储器平面(即,在条带中)存储数据。因此,读取数据的片段(例如,对应于一或多个数据地址)的一个请求可产生对存储器装置的存储器平面中的两者或更多者执行的读取操作。
14.串是nand型快闪存储器装置中的单元。nand型快闪存储器装置通常具有32个或更多个存储器单元,其中每个存储器单元用于表示位值(例如,0或1)。因此,具有32个存储器单元的串可表示32个数据位,并且具有64个存储器单元的串可表示64个数据位。在nand型快闪存储器块中,个别串连接成允许存储和检索来自所选择单元的数据。通常,块中的串的一端连接到共同源极线,且另一端连接到位线。每个串还包含与存储器单元串联的两个控制机构。串选择晶体管和接地选择晶体管连接到串选择线和接地选择线。nand型快闪组件中的存储器单元在其控制栅极处水平地连接到字线以形成页。页为共享同一字线的经连接存储器单元集合且是编程的最小单位。nand型快闪存储器装置可具有64k或128k单元的页大小。尽管常规nand型快闪存储器与dram和sram相比具有较大容量,但其对于串行数据搜索和存取来说通常太缓慢了。
15.因此,在某些实施方案中,存储器子系统利用在nand型快闪存储器装置中实施以提供快速和高容量搜索能力两者的cam架构可以是有益的。根据此架构,数据项可存储在nand型快闪存储器阵列的串上。表示输入搜索字的搜索模式可竖直输入到与cam的阵列中的串对应的每个字线上。单个读取操作将输入搜索字(即,搜索键)与阵列的所选择部分中的所有串进行比较,且标识匹配数据(即,所存储键)的存储地址,所述所选择部分通常为一或多个平面中的子块。为了实现本文中所描述的搜索cam时的性能益处,数据项沿着与多个字线相交的串竖直存储。因此,每个字线包含许多不同数据项(即,所存储键)的部分。然而,当在nand型快闪存储器装置中实施cam时,每次对一个字线执行编程。因此,许多不同数据项(例如,1024个所存储键)必须被存储且在编程任何一个字线时可用。在给定所涉及的数
据项的数目的情况下,将这些数据项维持在例如dram等高速易失性存储器中将过分昂贵。
16.本公开的各方面通过提供用于编程存储器子系统中的内容可寻址存储器(cam)的改进技术来解决以上和其它不足。存储器子系统包含具有沿着nand型快闪存储器阵列的串竖直存储的数据项的待编程的cam块。在一个实施例中,存储器子系统进一步包含编程缓冲器,其中数据项可在被编程到cam块之前临时存储。取决于实施方案,编程缓冲器可在nand型快闪存储器或不使用cam架构布置的其它非易失性存储器中实施。在一个实施例中,当在存储器子系统处(例如,从主机系统)接收到待存储的数据时,可以将所述数据作为页存储在编程缓冲器中。每个页可包含某一数目个数据项(例如,1024个键)。取决于编程缓冲器的大小,编程缓冲器可保持某一数目个页(例如,128个页)。一旦编程缓冲器的每个页都填满了待存储在cam块中的数据项,存储器子系统控制器就可执行转换操作以准备用于编程到cam块的数据。如下文更详细地描述,转换操作高效地使数据旋转90度,使得存储在编程缓冲器中的每个键的一部分可写入到cam块中的给定字线(或字线集合)。cam块中的每个字线或字线集合可被称为cam页。因此,先前维持在编程缓冲器的单个页中的每个键现在沿着与多个字线相交的串(即,跨越多个cam页)竖直存储在cam块中。一旦存储在cam块中,就可快速且高效地搜索数据项以用于与输入搜索键进行比较,从而标识cam块中的匹配项。
17.此方法的优点包含但不限于存储器子系统中改进的性能。可以执行编程基于nand的cam架构,而不需要大量dram来缓冲数据项。这减少了存储器子系统的成本,且改进编程操作期间的电力利用。将数据项高效地编程到cam阵列中使得存储器子系统实际上能用于其中执行高速和高密度模式匹配的新应用程序,例如与人工智能、机器视觉和大型遗传数据库相关的应用程序。此类cam架构还改进现有数据库搜索系统和搜索算法,例如云端联网和服务器中的索引存储器。
18.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。
19.存储器子系统110可以是存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器、安全数字(sd)卡和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm),以及各种类型的非易失性双列直插式存储器模块(nvdimm)。
20.计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(iot)的装置、嵌入式计算机(例如,运载工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
21.计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与...耦合”通常指组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有中间组件),无论有线还是无线,包含例如电连接、光学连接、磁连接等连接。
22.主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆叠。处理器芯
片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,nvdimm控制器),以及存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用存储器子系统110以例如将数据写入到存储器子系统110以及从存储器子系统110读取数据。
23.主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤信道、串行附接的scsi(sas)、双数据速率(ddr)存储器总线、小型计算机系统接口(scsi)、双列直插式存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm套接接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过物理主机接口(例如,pcie主线)与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口、开放nand快闪接口(onfi)接口,或某一其它接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合来存取多个存储器子系统。
24.存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
25.非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(nand)型快闪存储器和就地写入存储器,例如三维交叉点(“3d交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的变化来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand型快闪存储器包含例如二维nand(2dnand)和三维nand(3d nand)。
26.存储器装置130中的每一者可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(slc),可每单元存储一个位。其它类型的存储器单元,例如多层级单元(mlc)、三层级单元(tlc)、四层级单元(qlc)和五层级单元(plc),可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元阵列,例如,slc、mlc、tlc、qlc或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部分,以及mlc部分、tlc部分、qlc部分或plc部分。存储器装置130的存储器单元可分组为可指用于存储数据的存储器装置的逻辑单元的页。在一些类型的存储器(例如,nand)的情况下,可以将页分组以形成块。
27.尽管描述了非易失性存储器组件,例如3d交叉点非易失性存储器单元阵列和nand型快闪存储器(例如,2d nand、3d nand),但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)快闪存储器、电可擦除可编程只读存储器(eeprom)。
28.存储器子系统控制器115(或简称为控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据,以及其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲器存储器,或其组合。硬件可包含具有用以执行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路系统。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。
29.存储器子系统控制器115可以是处理装置,其包含被配置成执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所说明实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其被配置成存储指令,所述指令用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流和例程。
30.在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可替代地依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
31.一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将命令或操作转换为指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓冲操作,以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(lba)、名字空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换成命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
32.存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址且对所述地址进行解码以存取存储器装置130。
33.在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115进行操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110为受管理存储器装置,其包含具有裸片上的控制逻辑(例如,本地媒体控制器135)和用于相同存储器装置封装内的媒体管理的控制器(例如,存储器子系统控制器115)的原始存储器装置130。受管理存储器装置的实例为受管理nand(mnand)装置。
34.在一个实施例中,存储器装置130可被配置成包含编程缓冲器137和内容可寻址存储器(cam)块139,所述编程缓冲器和cam块可任选地为cam nand键值数据库的一部分。编程缓冲器137可用于临时存储在被编程到cam块139之前的数据项。取决于实施方案,编程缓冲器137可在nand型快闪存储器或不使用cam架构布置的其它非易失性存储器中实施。如下文
更详细地描述,cam块139可包含组织为串的一或多个存储器单元阵列。每个串存储数据项且包括在匹配线与页缓冲器之间串联连接的存储器单元。也就是说,cam块139包含多个匹配线,并且每个匹配线连接到阵列中的多个串中的一者。cam块139的匹配线对应于在上面实施cam块139的nand块的位线。在给定串内,存储器单元可组织为互补存储器单元对。由串存储的数据项的每个位值映射到串中的互补存储器单元对中的一者。在一个实施例中,编程缓冲器137和cam块139在同一存储器裸片(例如,存储器装置130)上实施。然而,在其它实施例中,编程缓冲器137和cam块139可位于存储器子系统110中的单独存储器装置上。
35.可以通过将搜索模式作为输入提供到cam块139的搜索线来搜索cam块139。cam块139的搜索线对应于在上面实施cam块139的nand块的字线。在一个实施例中,对cam块139的匹配线进行预充电以促进搜索。也就是说,在输入搜索之前,将电压信号施加到cam块139的匹配线。在搜索操作期间,如果输入搜索字匹配由cam块139存储的任何数据项,那么一或多个被匹配线(例如,对应于存储匹配数据项的串的匹配线)变得导电且响应于搜索线处输入的搜索模式而释放信号。如果搜索字并不匹配任何所存储项,那么所有匹配线都不导电。每个匹配线进一步连接到页缓冲器(例如,包括一或多个锁存电路),所述页缓冲器接收放电信号且存储指示匹配数据沿着经连接匹配线存储的数据。
36.在一个实施例中,存储器子系统110进一步包含促进对cam块139的编程的程序组件113。根据一些实施例,程序组件113包含于存储器子系统控制器115中,如所展示。举例来说,存储器子系统控制器115可包含处理器117(例如,处理装置),所述处理器被配置成执行存储在本地存储器119中以用于执行本文中所描述的程序组件113的操作的指令。在一些实施例中,存储器装置130包含程序组件113的至少一部分。在一些实施例中,程序组件113为主机系统120、应用程序或操作系统的一部分。
37.在一个实施例中,当在存储器子系统110处(例如,从主机系统120或某一其它源)接收到待存储的数据时,程序组件113可初始地将所述数据作为页存储在编程缓冲器137中。如果个别地接收到多个数据项(例如,搜索键),那么程序组件113可将那些项合并到单个页中,其中每个页包含某一数目个数据项(例如,1024个键)。程序组件113可在编程缓冲器137中继续存储所接收的数据,直到编程缓冲器137满为止。取决于编程缓冲器137的大小,编程缓冲器137可保持某一数目个页(例如,128个页)。一旦编程缓冲器137的每个页都填满了待存储在cam块139中的数据项,程序组件113就可执行转换操作以准备用于编程到cam块139的数据。在一个实施例中,程序组件113从编程缓冲器137读取每个所存储键的第一部分且将那些部分写入到cam块139的第一字线(或字线集合)。程序组件113重复此过程以从编程缓冲器137读取每个所存储键的第二部分且将那些部分写入到cam块139的第二字线(或字线集合),依此类推,直到每个所存储键的所有部分已编程到cam块139为止。因此,先前维持在编程缓冲器137的单个页中的每个键现在沿着与多个字线相交的串(即,跨越多个cam页)竖直存储在cam块139中。下文描述关于搜索组件113、编程缓冲器137和cam块139的操作和结构的另外细节。
38.图2是根据实施例的呈存储器装置130的形式的第一设备与呈存储器子系统(例如,图1的存储器子系统110)的存储器子系统控制器115的形式的第二设备通信的简化框图。电子系统的一些实例包含个人计算机、个人数字助理(pda)、数码相机、数字媒体播放器、数字记录器、游戏、电气设备、车辆、无线装置、移动电话等。存储器子系统控制器115(例
如,在存储器装置130外部的控制器)可以是存储器控制器或其它外部主机装置。
39.存储器装置130包含以行和列逻辑地布置的存储器单元阵列250。逻辑行的存储器单元通常连接到同一存取线(例如,字线),而逻辑列的存储器单元通常选择性地连接到同一数据线(例如,位线)。单个存取线可与多于一个逻辑行的存储器单元相关联,并且单个数据线可与多于一个逻辑列相关联。存储器单元阵列250的至少一部分的存储器单元(图2中未展示)能够被编程为至少两个目标数据状态中的一者。在一个实施例中,存储器单元阵列250包含编程缓冲器137和cam块139。如本文中所描述,cam块139包含竖直存储在串中的数个存储键,所接收的搜索键可与所述多个存储键进行比较。当确定匹配时,cam块139中的匹配存储键的位置指向值数据块(未展示)中的对应值的位置,所述对应值的位置可被检索并返回到请求方。在一个实施例中,存储器装置130组织成多个平面。在一个实施例中,例如,存储器装置130包含四个平面。然而,在其它实施例中,可存在更多或更少的平面。平面中的每一者可被配置成包含一或多个编程缓冲器137和cam块139。
40.提供行解码电路系统208和列解码电路系统210以对地址信号进行解码。接收地址信号并对其进行解码以存取存储器单元阵列250。存储器装置130还包含输入/输出(i/o)控制电路系统212,以管理将命令、地址和数据输入到存储器装置130以及从存储器装置130输出数据和状态信息。地址寄存器214与i/o控制电路系统212以及行解码电路系统208和列解码电路系统210通信以在解码之前锁存地址信号。命令寄存器224与i/o控制电路系统212和本地媒体控制器135通信以锁存传入命令。
41.控制器(例如,在存储器装置130内部的本地媒体控制器135)响应于命令而控制对存储器单元阵列250的存取且产生用于外部存储器子系统控制器115的状态信息,即,本地媒体控制器135被配置成对存储器单元阵列250执行存取操作(例如,读取操作、编程操作和/或擦除操作)。本地媒体控制器135与行解码电路系统208和列解码电路系统210通信,以响应于地址而控制行解码电路系统208和列解码电路系统210。
42.本地媒体控制器135还与高速缓冲寄存器242通信。高速缓冲寄存器242锁存如由本地媒体控制器135引导的传入或传出数据以临时存储数据,同时存储器单元阵列250正忙于分别写入或读取其它数据。在编程操作(例如,写入操作)期间,可将数据从高速缓冲寄存器242传递到数据寄存器244以供传送到存储器单元阵列250;接着可将新数据从i/o控制电路系统212锁存在高速缓冲寄存器242中。在读取操作期间,可将数据从高速缓冲寄存器242传递到i/o控制电路系统212以供输出到存储器子系统控制器115;接着可将新数据从数据寄存器244传递到高速缓冲寄存器242。高速缓冲寄存器242和/或数据寄存器244可形成存储器装置130的页缓冲器(例如,可形成其一部分)。页缓冲器可进一步包含感测装置(图2中未展示),以例如通过感测连接到存储器单元阵列250的存储器单元的数据线的状态来感测所述存储器单元的数据状态。状态寄存器222可与i/o控制电路系统212和本地存储器控制器135通信以锁存状态信息以供输出到存储器子系统控制器115。
43.存储器装置130经由控制链路232从本地媒体控制器135接收存储器子系统控制器115处的控制信号。举例来说,控制信号可包含芯片启用信号ce#、命令锁存启用信号cle、地址锁存启用信号ale、写入启用信号we#、读取启用信号re#和写入保护信号wp#。取决于存储器装置130的性质,可进一步经由控制链路232接收额外或替代的控制信号(未展示)。在一个实施例中,存储器装置130经由多路复用的输入/输出(i/o)总线234从存储器子系统控制
器115接收命令信号(其表示命令)、地址信号(其表示地址)和数据信号(其表示数据),且经由i/o总线234将数据输出到存储器子系统控制器115。
44.举例来说,可在i/o控制电路系统212处经由i/o总线234的输入/输出(i/o)引脚[7:0]接收命令且接着可将所述命令写入到命令寄存器224中。可在i/o控制电路系统212处经由i/o总线234的输入/输出(i/o)引脚[7:0]接收地址且接着可将所述地址写入到地址寄存器214中。可在i/o控制电路系统212处经由用于8位装置的输入/输出(i/o)引脚[7:0]或用于16位装置的输入/输出(i/o)引脚[15:0]接收数据且接着可将所述数据写入到高速缓冲寄存器242中。随后可将数据写入到数据寄存器244中以用于编程存储器单元阵列250。
[0045]
在实施例中,可省略高速缓冲寄存器242,且可将数据直接写入到数据寄存器244中。还可经由用于8位装置的输入/输出(i/o)引脚[7:0]或用于16位装置的输入/输出(i/o)引脚[15:0]输出数据。尽管可参考i/o引脚,但其可包含实现通过外部装置(例如,存储器子系统控制器115)电连接到存储器装置130的任何导电节点,例如常用的导电衬垫或导电凸块。
[0046]
所属领域的技术人员应了解,可以提供额外的电路系统和信号,并且已经简化图2的存储器装置130。应认识到,参考图2所描述的各种块组件的功能性可不必与集成电路装置的不同组件或组件部分分离。举例来说,集成电路装置的单个组件或组件部分可适于执行图2的多于一个块组件的功能性。替代地,可组合集成电路装置的一或多个组件或组件部分以执行图2的单个块组件的功能性。此外,虽然根据各种信号的接收和输出的流行惯例来描述特定i/o引脚,但应注意,可在各种实施例中使用其它i/o引脚(或其它i/o节点结构)的组合或其它数目个i/o引脚(或其它i/o节点结构)。
[0047]
图3是根据实施例的说明编程存储器子系统中的内容可寻址存储器(cam)的框图。图3说明存储器装置130包含编程缓冲器137和cam块139两者的实施例。然而,应了解,在其它实施例中,编程缓冲器137和cam块139可在存储器子系统110内的单独存储器装置上实施。
[0048]
在一个实施例中,当在存储器子系统110处(例如,从主机系统120或某一其它源)接收到待存储的数据时,程序组件113可初始地将所述数据作为页存储在编程缓冲器137中。取决于编程缓冲器137的大小,编程缓冲器137可保持某一数目m个页(例如,页0至页m-1)。编程缓冲器137的每个页可存储某一数目n个所存储键。举例来说,页0可存储键0至键n-1,页1可存储键n至键(n-1)*2,且依此类推直到页m-1,所述页m-1可存储键n*m至键(n-1)*(m-1)。如果个别地接收到多个键,那么程序组件113可将那些项合并到单个页中,所述单个页写入到编程缓冲器137。程序组件113可继续将所接收的键作为页存储在编程缓冲器137中,直到编程缓冲器137满为止。编程缓冲器137使得个别键能够临时存储,直到所述个别键可编程到cam块139为止,如下文将描述。在其它实施例中,编程缓冲器137可包含某一其它数目个页,并且每个页可包含某一其它数目个键。
[0049]
一旦编程缓冲器137的每个页(即,页0至页m-1)都填满了键,程序组件113就可执行转换操作310以准备用于编程到cam块139的数据。转换操作310高效地使数据旋转90度,使得存储在编程缓冲器137中的每个键的一部分可写入到cam块139中的给定字线(或字线集合)。在一个实施例中,程序组件113从编程缓冲器137读取每个所存储键的第一部分且将那些部分写入到cam块139的第一字线(或字线集合)。举例来说,程序组件113可读取键0的
部分301、键1的部分304,依此类推,直到键(n-1)*(m-1)的部分307,且将那些部分301、304直到307编程到cam块139的单个页(例如,cam页0)。在一个实施例中,每个cam页包含cam块139中的一对字线,其中所述对中的一个字线包含存储来自部分301、304直到307的真值的存储器单元,且所述对中的另一字线包含存储那些值的补集的存储器单元。
[0050]
在一个实施例中,程序组件113重复此过程以从编程缓冲器137读取每个所存储键的第二部分且将那些部分写入到cam块139的第二字线(或字线集合),依此类推,直到每个所存储键的所有部分已编程到cam块139为止。举例来说,程序组件113可读取键0的部分302、键1的部分305,依此类推,直到键(n-1)*(m-1)的部分308,且将那些部分302、305直到308编程到cam页1,并且可读取键0的部分303、键1的部分306,依此类推,直到键(n-1)*(m-1)的部分309,且将那些部分303、306直到309编程到cam页m-1。因此,先前维持在编程缓冲器137的单个页中的每个键现在沿着与多个字线相交的串(即,跨越多个cam页)竖直存储在cam块139中。举例来说,键0至键(n-1)*(m-1)中的每个键的对应部分可跨越cam页0至cam页m-1分布。
[0051]
一旦编程,就可搜索cam块139以检测匹配输入搜索键的所存储键的存在。在一个实施例中,存储器子系统控制器115接收输入搜索键(例如,搜索字)且将输入搜索键施加到cam块139以将输入搜索键与所存储搜索键进行比较。在一个实施例中,存储器子系统控制器115基于输入搜索键生成搜索模式。输入搜索键可包含第一位序列(例如,“1011”)。所生成搜索模式可包含表示输入搜索键的第一电压信号集合以及表示包括第一位序列的反相值的第二位序列(例如,“0100”)的第二电压信号集合。在一个实施例中,存储器子系统控制器115包含用以生成输入搜索键的反相值的反相器和用以生成第一信号和第二信号的电平选择器。在生成第一电压信号和第二电压信号时,电平选择器可使用高电压来表示二进制值“1”,并且使用低电压来表示二进制值“0”,其中高电压高于阈值电压(vt)且低电压低于vt。
[0052]
为了搜索cam块139,存储器子系统控制器115沿着cam块139的搜索线竖直输入搜索键(即,代表性搜索模式)。搜索键的输入使得表示匹配的所存储位值的任何互补存储器单元对变得导电。如果串正在存储匹配数据(即,所存储搜索键中的匹配所存储搜索键),那么整个串变得导电。cam块139中的匹配线被预充电(例如,连接到高电压),并且由于匹配线被预充电,因此搜索线上的搜索键的输入使块中的存储匹配数据(例如,所存储搜索键中的与输入搜索键相同的所存储搜索键)的任何匹配线输出放电信号,因为对应串是导电的。放电信号提供匹配数据(例如,输入搜索键)存储在其上的指示。放电信号提供匹配数据存储在连接到匹配线的串上的指示。
[0053]
每个串连接在匹配线与页缓冲器(例如,包括一或多个锁存电路)之间,并且被匹配线的页缓冲器响应于由于匹配线沿着串放电而提供的信号而存储指示匹配数据沿着被匹配线存储的数据。页缓冲器可包含一或多个锁存电路。物理上,页缓冲器驻存在其中实施cam块139的存储器单元阵列下方或邻近于所述存储器单元阵列驻存。当匹配数据由将信号传导到页缓冲器的经连接串存储时,页缓冲器基于由被匹配线提供的信号而锁存数据。存储器子系统控制器115从页缓冲器读取数据且提供输入搜索键310是否存储在正被搜索的cam块139中以与匹配位置(例如,阵列中的串的存储器地址)一起作为输出的指示符。
[0054]
在一些实施例中,存储器子系统控制器115可在多个存储器平面的cam块139中依
序搜索匹配数据。在一些实施例中,存储器子系统控制器115可在多个存储器平面的cam块139中并行搜索匹配数据。对多个存储器平面的并行搜索允许在单个搜索操作中搜索存储在平面的所有cam块139当中的所有数据项,而非在四个单独搜索操作中完成对所有数据项的搜索。因此,如上文所描述的实施例中利用的并行搜索可允许存储器子系统控制器115相对于利用依序搜索的实施例实现搜索速度的提高。
[0055]
在一些实施例中,可跨越存储器平面中的两个或更多个存储数据项。在这些情况下,存储器子系统控制器115可跨越两个或更多个存储器平面同时搜索匹配数据的部分。当与数据项存储在单个平面内的实施例相比时,跨越平面划分数据项实现更大的字长。举例来说,如果cam块139中的每一者支持64位字,那么在所有四个平面当中划分数据项将允许存储器装置支持256位字(4*64=256)。
[0056]
图4是根据本公开的一些实施例的在存储器装置内实施的内容可寻址存储器(cam)块的框图。如所展示,cam块139包含匹配线402-0至402-n、搜索线404-0至404-m,以及反相值搜索线406-0至406-m。在此实施方案中,cam块139的匹配线402-0至402-n对应于nand型快闪存储器装置的位线,并且cam块139的搜索线404-0至404-m和反相值搜索线406-0至406-m对应于nand型快闪存储器装置的字线。
[0057]
匹配线402-0至402-n中的每一者连接到包括串联连接的多个存储器单元的串。举例来说,匹配线402-0连接到包括存储器单元408-0至408-x的串,其中x=2m。cam块139的每个串中的存储器单元被配置成互补对。例如,在串连接到匹配线402-0的情况下,存储器单元408-0至408-x被编程为互补存储器单元对410-0至410-m。
[0058]
存储器单元对被配置成互补的,因为所述对中的一个存储器单元存储数据值(“0”),且所述对中的另一存储器单元存储数据值的反相值(“1”)。举例来说,存储器单元对410-0包括两个存储器单元。第一存储器单元存储数据位值data,并且第二存储器单元408-0存储其为数据位值data的反相值。并且,如所展示,搜索线404-0连接到第一存储器单元的控制栅极,并且反相值搜索线406-0连接到第二存储器单元的控制栅极。
[0059]
搜索线404-0从输入搜索字接收表示搜索位值的第一信号sl,并且反相值搜索线406-0接收表示搜索位值的反相值的第二信号如果sl与data匹配且与匹配,那么存储器单元对410-0从a到b将为导电的。举例来说,下文提供的
[0060]
表1是定义存储器单元对410-0至410-m中的任一给定存储器单元对的行为的真值表。
[0061][0062]
表1
[0063]
在表1中,“sl”是搜索位值,是搜索位值的反相值,“data”是所存储位值,并且是所存储位值的反相值。如所展示,当搜索数据值与所存储数据值匹配且搜索数据值的反相值与所存储数据值的反相值匹配时,互补单元对是导电的。在其它情况
下,存储器单元对410是不导电的,因为所存储数据与搜索位不匹配。
[0064]
在一个实施例中,cam块139中的每个串存储数据项,并且数据项中的每个数据位值映射到串中的存储器单元对410-0至410-m中的一者。以此方式,在串中的互补存储器单元对410中的每一者内,第一存储器单元存储来自数据项的位值,并且第二存储器单元存储来自数据项的位值的反相值。
[0065]
在nand型快闪存储器装置支持128位串(即,x为128)的实例中,匹配线402-0连接到存储器单元408-0至408-127,其存储包括位值d
0,0
至d
63,63
的64位数据项。在此实例中,位值d
0,0
映射到包括存储器单元408-0和408-1的存储器单元对410-0。更具体地说,存储器单元408-0存储位值d
0,0
,并且互补存储器单元存储其为位值d
0,0
的反相值。
[0066]
搜索模式420可沿着搜索线404-0至404-m和反相值搜索线406-0至406-m竖直输入。更具体地说,搜索线404-0至404-m接收表示搜索字420的第一电压信号集合sl
0-m
,并且反相值搜索线406-0至406-m接收表示搜索字的反相值的第二电压信号集合搜索模式420沿着搜索线的输入使得存储匹配数据的任何串变得导电,因为如上文所论述,串中的每个个别存储器单元对410将为导电的。因为匹配线402被预充电,所以导电串允许匹配线402放电。连接到导电串的页缓冲器锁存指示cam块139中的匹配数据(即,搜索字)的位置的数据。
[0067]
存储器子系统控制器115输出搜索字是否由cam块139存储的指示以及匹配数据的位置(例如,存储器地址)的指示符。在一些实施例中,存储器子系统控制器115包括读出电路,所述读出电路从cam块139的页缓冲器读取数据以标识所述数据的位置。
[0068]
在一些实施例中,cam块139中的两个页缓冲器可连接在一起以形成串行移位寄存器。根据这些实施例,存储器子系统控制器115将数据从第一页缓冲器移位到第二页缓冲器,并且存储器子系统控制器115包括输出比较和计数器组件以跟踪从一个页缓冲器到另一页缓冲器的移位的数目,从而标识由cam块139存储的匹配数据的位置。在一些实施例中,两个页缓冲器可使用单个晶体管连接在一起以形成移位寄存器。
[0069]
图5是根据本公开的一些实施例的编程存储器子系统中的内容可寻址存储器(cam)的实例方法的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法500由图1的程序组件113执行。虽然以特定顺序或次序展示,但除非另外规定,否则可修改过程的次序。因此,说明的实施例应仅作为实例理解,且说明的过程可以不同次序执行,且一些过程可并行地执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
[0070]
在操作505处,接收数据项。举例来说,处理逻辑(例如,程序组件113)可从请求方(例如,主机系统120)接收数据项(例如,输入搜索键)。在一个实施例中,每个数据项包含相应位序列(例如,“1001 1010 1011”)。
[0071]
在操作510处,存储数据项。举例来说,处理逻辑可将数据项存储在编程缓冲器(例如,编程缓冲器137)的页(例如,页0至页m-1)中。取决于编程缓冲器137的大小,编程缓冲器137可保持某一数目m个页。编程缓冲器137的每个页可存储某一数目n个数据项,其表示所
接收数据项的相应子集。如果个别地接收到多个数据项,那么程序组件113可合并那些项,所述项作为单个页一起写入到编程缓冲器137。
[0072]
在操作515处,作出确定。举例来说,处理逻辑可确定编程缓冲器137是否填满数据项。在一个实施例中,当每个页(例如,页0至页m-1)已全部写入有数据项且不存在存储额外数据项的容量时,编程缓冲器137是满的。在另一实施例中,定义某一其它阈值准则,且当满足所述阈值准则时,处理逻辑确定编程缓冲器137是满的。
[0073]
如果确定编程缓冲器137不是满的(例如,不满足阈值准则),那么处理可返回到操作505和510,并且处理逻辑可继续将所接收的数据项作为页存储在编程缓冲器137中直到编程缓冲器137满为止。然而,如果确定编程缓冲器137被填满,那么在操作520处,发起转换操作。举例来说,处理逻辑可执行转换操作以将数据项从编程缓冲器137复制到cam块139。转换操作高效地使数据项旋转90度,使得存储在编程缓冲器137中的每个数据项的一部分可写入到cam块139中的给定字线(或字线集合)。
[0074]
在操作525处,读取数据的部分。举例来说,处理装置可从编程缓冲器127的页读取数据项的每个相应子集中的每个数据项的相应部分。在一个实施例中,程序组件113从编程缓冲器137读取每个所存储数据项的第一部分。举例来说,程序组件113可读取键0的部分301、键1的部分304,依此类推,直到键(n-1)*(m-1)的部分307。
[0075]
在操作530处,写入数据的部分。举例来说,处理装置可将每个数据项的相应部分写入到cam块139的相应cam页。在一个实施例中,程序组件113可将部分301、304直到307编程到cam块139的单个页(例如,cam页0)。在一个实施例中,每个cam页包含cam块139中的一对字线,其中所述对中的一个字线包含存储来自部分301、304直到307的真值的存储器单元,且所述对中的另一字线包含存储那些值的补集的存储器单元。在一个实施例中,程序组件113重复此过程以从编程缓冲器137读取每个所存储数据项的第二部分且将那些部分写入到cam块139的第二字线(或字线集合),依此类推,直到每个所存储数据项的所有部分已编程到cam块139为止。因此,先前维持在编程缓冲器137的单个页中的每个数据项现在沿着与多个字线相交的串(即,跨越多个cam页)竖直存储在cam块139中。
[0076]
图6说明计算机系统600的实例机器,在所述实例机器内可执行用于使机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的程序组件113的操作)。在替代实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中进行操作。
[0077]
机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,虽然说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行指令的集合(或多个集合)以执行本文中所论述的方法中的任何一或多种。
[0078]
实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(rom)、快
闪存储器、例如同步dram(sdram)或rambus dram(rdram)等动态随机存取存储器(dram))、静态存储器606(例如,快闪存储器、静态随机存取存储器(sram)等),以及数据存储系统618,它们经由总线630彼此通信。
[0079]
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更确切地说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602还可以是一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置602被配置成执行指令626以用于执行本文中所论述的操作和步骤。计算机系统600可进一步包含网络接口装置608以经由网络620进行通信。
[0080]
数据存储系统618可包含机器可读存储媒体624(也被称为计算机可读媒体,例如非暂时性计算机可读媒体),其上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任何一或多者的软件。指令626还可在其由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。
[0081]
在一个实施例中,指令626包含用以实施对应于图1的程序控制器113的功能性的指令。尽管在实例实施例中机器可读存储媒体624展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集且使机器执行本公开的方法中的任何一或多种的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体和磁性媒体。
[0082]
已就计算机存储器内的数据位的操作的算法和符号表示而言呈现了之前详细描述的一些部分。这些算法描述和表示为数据处理领域的技术人员用于将其工作的主旨最有效地传达给所属领域的其它技术人员的方式。算法在这里并且通常被认为是产生所需结果的操作的自洽序列。所述操作为需要对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已证明将这些信号称为位、值、元件、符号、字符、术语、数字等是方便的。
[0083]
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标记。本公开可指将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
[0084]
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、cd-rom和磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
[0085]
本文中呈现的算法和显示本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造更加专用的设备以执行所述
方法是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示。
[0086]
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
[0087]
在前述说明书中,本公开的实施例已经参考其特定实例实施例进行描述。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

技术特征:


1.一种系统,其包括:存储器装置,其包括编程缓冲器和内容可寻址存储器cam块;以及处理装置,其以操作方式与所述存储器装置耦合以执行包括以下各项的操作:接收待存储在所述存储器装置处的多个数据项;将所述多个数据项存储在所述编程缓冲器的多个页中,所述编程缓冲器的所述多个页中的每一者包括所述多个数据项的相应子集;以及发起转换操作以将所述多个数据项从所述编程缓冲器复制到所述cam块,其中所述转换操作包括:从所述编程缓冲器的所述多个页读取所述多个数据项的每个相应子集中的每个数据项的相应部分;以及将所述相应部分写入到所述cam块的相应cam页。2.根据权利要求1所述的系统,其中所述转换操作进一步包括:从所述编程缓冲器的所述多个页读取所述多个数据项的每个相应子集中的每个数据项的第一部分;以及将每个数据项的所述第一部分写入到所述cam块的第一cam页。3.根据权利要求1所述的系统,其中所述cam块包括组织成多个串的存储器单元阵列,每个串包括在预充电匹配线与页缓冲器之间串联连接的多个存储器单元,并且其中所述多个存储器单元中的每一者连接到多个搜索线中的一者。4.根据权利要求3所述的系统,其中所述cam块的每个相应cam页与所述多个搜索线中的相应一者相关联。5.根据权利要求3所述的系统,其中一旦给定数据项的每个部分写入到所述cam块的所述相应cam页,所述给定数据项就沿着与所述多个搜索线中的每一者相交的所述多个串中的一者存储在所述cam块中。6.根据权利要求1所述的系统,其中所述处理装置将执行进一步包括以下各项的操作:确定所述编程缓冲器充满数据项;以及响应于确定所述编程缓冲器充满数据项,发起所述转换操作。7.根据权利要求1所述的系统,其中所述存储器装置包括与非nand型快闪存储器装置,并且其中所述编程缓冲器并不使用cam架构来布置。8.一种方法,其包括:接收待存储在包括编程缓冲器和内容可寻址存储器cam块的存储器装置处的多个数据项;将所述多个数据项存储在所述编程缓冲器的多个页中,所述编程缓冲器的所述多个页中的每一者包括所述多个数据项的相应子集;以及发起转换操作以将所述多个数据项从所述编程缓冲器复制到所述cam块,其中所述转换操作包括:从所述编程缓冲器的所述多个页读取所述多个数据项的每个相应子集中的每个数据项的相应部分;以及将所述相应部分写入到所述cam块的相应cam页。9.根据权利要求8所述的方法,其中所述转换操作进一步包括:
从所述编程缓冲器的所述多个页读取所述多个数据项的每个相应子集中的每个数据项的第一部分;以及将每个数据项的所述第一部分写入到所述cam块的第一cam页。10.根据权利要求8所述的方法,其中所述cam块包括组织成多个串的存储器单元阵列,每个串包括在预充电匹配线与页缓冲器之间串联连接的多个存储器单元,并且其中所述多个存储器单元中的每一者连接到多个搜索线中的一者。11.根据权利要求10所述的方法,其中所述cam块的每个相应cam页与所述多个搜索线中的相应一者相关联。12.根据权利要求10所述的方法,其中一旦给定数据项的每个部分写入到所述cam块的所述相应cam页,所述给定数据项就沿着与所述多个搜索线中的每一者相交的所述多个串中的一者存储在所述cam块中。13.根据权利要求8所述的方法,其进一步包括:确定所述编程缓冲器充满数据项;以及响应于确定所述编程缓冲器充满数据项,发起所述转换操作。14.根据权利要求8所述的方法,其中所述存储器装置包括与非nand型快闪存储器装置,并且其中所述编程缓冲器并不使用cam架构来布置。15.一种非暂时性机器可读存储媒体,其存储指令,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:接收待存储在包括编程缓冲器和内容可寻址存储器cam块的存储器装置处的多个数据项;将所述多个数据项存储在所述编程缓冲器的多个页中,所述编程缓冲器的所述多个页中的每一者包括所述多个数据项的相应子集;以及发起转换操作以将所述多个数据项从所述编程缓冲器复制到所述cam块,其中所述转换操作包括:从所述编程缓冲器的所述多个页读取所述多个数据项的每个相应子集中的每个数据项的相应部分;以及将所述相应部分写入到所述cam块的相应cam页。16.根据权利要求15所述的非暂时性机器可读存储媒体,其中所述转换操作进一步包括:从所述编程缓冲器的所述多个页读取所述多个数据项的每个相应子集中的每个数据项的第一部分;以及将每个数据项的所述第一部分写入到所述cam块的第一cam页。17.根据权利要求15所述的非暂时性机器可读存储媒体,其中所述cam块包括组织成多个串的存储器单元阵列,每个串包括在预充电匹配线与页缓冲器之间串联连接的多个存储器单元,并且其中所述多个存储器单元中的每一者连接到多个搜索线中的一者。18.根据权利要求17所述的非暂时性机器可读存储媒体,其中所述cam块的每个相应cam页与所述多个搜索线中的相应一者相关联。19.根据权利要求17所述的非暂时性机器可读存储媒体,其中一旦给定数据项的每个部分写入到所述cam块的所述相应cam页,所述给定数据项就沿着与所述多个搜索线中的每
一者相交的所述多个串中的一者存储在所述cam块中。20.根据权利要求15所述的非暂时性机器可读存储媒体,其中所述存储器装置包括与非nand型快闪存储器装置,并且其中所述编程缓冲器并不使用cam架构来布置。

技术总结


一种存储器系统包含存储器装置,所述存储器装置包括编程缓冲器和内容可寻址存储器CAM块。所述存储器系统进一步包含处理装置,所述处理装置接收待存储在所述存储器装置处的多个数据项且将所述多个数据项存储在所述编程缓冲器的多个页中,所述编程缓冲器的所述多个页中的每一者包括所述多个数据项的相应子集。所述处理装置进一步发起转换操作以将所述多个数据项从所述编程缓冲器复制到所述CAM块。所述转换操作包含从所述编程缓冲器的所述多个页读取所述多个数据项的每个相应子集中的每个数据项的相应部分,且将所述相应部分写入到所述CAM块的相应CAM页。到所述CAM块的相应CAM页。到所述CAM块的相应CAM页。


技术研发人员:

T

受保护的技术使用者:

美光科技公司

技术研发日:

2022.05.05

技术公布日:

2022/11/3

本文发布于:2022-11-27 01:40:07,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/4/6546.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:存储器   所述   多个   缓冲器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图