具体实施方式
参照本发明的实施例描述本发明。
在本发明的描述全文中参照图1-图5。
如下文具体描述的那样,本发明的一个实施例是一种用于存储三元数据字的内容可寻址存储器器件。数据字中的每个数据位可设置为低、高和随意的三元数据值之一。内容可寻址存储器器件包括多个存储器单元。每个存储器单元包括第一存储器元件和第二存储器元件。每个存储器单元的第一存储器元件和第二存储器元件在并联电路中电耦合到匹配线。
在本发明的一种具体配置中,第一存储器元件和第二存储器元件是由相变材料(诸如,锗-锑-碲(GST))组成的相变元件。存储器元件可被编程为两个状态之一:晶态或者非晶态。在晶态(SET)中,存储器元件呈现相对较低的阻抗,并且需要较少的电流来编程。另一方面,在非晶态(RESET)中,存储器元件具有相对较高的阻抗,并且需要较多的电流来编程。第一存储器元件和第二存储器元件的阻态用来在数据字中存储数据位。例如,为了存储三元数据值为低的数据位,第一存储器元件被编程为低阻态,第二存储器元件被编程为高阻态。
在图1中,示出了根据本发明一个实施例的存储器单元102的实施例。存储器单元102包括第一存储器元件104和第二存储器元件106。第一存储器元件104和第二存储器元件106在并联电路中电耦合到位线112。金属线112在搜索操作期间还被用作匹配线。第一存储器元件104和第二存储器元件106可以包括但不限于相变存储器元件、阻抗存储器元件、浮栅场效应晶体管(浮栅FET)、磁阻随机访问存储器(MRAM)或者电荷俘获器件。
存储器单元102包括第一访问器件108,其电耦合到第一存储器元件104、第一金属线114和共同接地端118。存储器单元102还包括第二访问器件110,其电耦合到第二存储器元件106、第二金属线116和共同接地端118。第一访问器件108和第二访问器件110可以包括但不限于场效应晶体管(FET)或者双极结晶体管(BJT)。
在本发明的一种配置中,访问器件108和访问器件110包括源极、漏极和共同端子。访问器件108和访问器件110的源极端子电耦合在一起并且电耦合到共同接地端。第一访问器件108的漏极端子电耦合到第一存储器元件104。第二访问器件110的漏极端子电耦合到第二存储器元件106。第一访问器件108的栅极端子电耦合到在数据存储操作期间充当字线的金属线114。在搜索操作期间,金属线114还充当互补搜索线。第二访问器件106的栅极端子电耦合到在数据存储操作期间充当互补字线的金属线116。在搜索操作期间,线116充当作搜索线。
现在参照图2,其中示出了表202,表202示出了在存储于存储器单元中的数据位值204与搜索位值206之间的匹配结果208。如图所示,所存储的数据位值204可以是“0”、“1”和“随意”值(用“X”示出)这三个数据值之一。搜索位值206可以是“0”、“1”和“随意”值(用“X”示出)这三个数据值之一。表202示出了每当数据位值204和搜索位值206相等或者每当所存储的数据位值204或者搜索位值206为“随意”时,都出现匹配210。还示出了在搜索位值206为“1”而数据位值204为“0”时以及在搜索位值206为“0”而数据位值204为“1”时的失配212。在本发明的一个实施例中,数据位值204在其为低时代表“0”并且数据位值204在其为高时代表“1”。在本发明的一个备选实施例中,数据位值204在其为低时代表“1”并且数据位值204在其为高时代表“0”。
图3A示出了用于本发明一个实施例的存储器元件存储状态的表302。表302包括数据位值304、用于第一存储器元件的对应状态306和用于第二存储器元件的对应状态308。如图所示,当数据位值304为高时,第一存储器元件被设置为高阻态306(即,相变存储器非晶态),并且第二存储器元件被设置为低阻态308(即相变存储器晶态)。当数据位值304为低时,第一存储器元件被设置为低阻态306,并且第二存储器元件被设置为高阻态308。当数据位值304为随意时,第一存储器元件被设置为高阻态306,并且第二存储器元件也被设置为高阻态308。在本发明的一个实施例中,高阻态在阻抗上比低阻态高至少一个量级。
回到图1,现在说明一种用于使用相变器件在存储器单元中存储单个位信息的方法的实施例。
数据存储操作包括两个步骤。开始,访问器件108和访问器件110均处于关断状态,因为字线114和互补字线116被偏置于零电压。在第一步骤中,通过在字线114施加电压脉冲来接通访问器件108。如果待存储的数据位值为低状态或者随意状态,则向位线112施加RESET电流脉冲,使得穿过第一存储器元件104的电流的量值高到足以熔融硫族合金的临界体积。这一施加的脉冲被快速关断,以便将熔融的体积转换为非晶相,从而将存储器元件104编程为高阻态。如果待存储的数据位值为高状态,则向位线112施加SET电流脉冲,使得穿过第一存储器元件104的电流的量值将任何非晶区退火为材料的多晶相,从而将存储器元件104编程为低阻态。在这一阶段期间,在访问器件110关断时无电流穿过存储器元件106。
在第二步骤中,通过在字线116施加电压脉冲来接通访问器件110。如果待存储的数据位值为高状态或者随意状态,则向位线112施加RESET电流脉冲,使得穿过第二存储器元件106的电流量值高到足以熔融硫族合金的临界体积。这一施加的脉冲被快速关断,以便将熔融体积转换成非晶相,从而将存储器元件106编程为高阻态。如果待存储的数据位值为低状态,则向位线112施加SET电流脉冲,使得穿过第二存储器元件106的电流的量值将任何非晶区退火为材料的多晶相,从而将存储器元件106编程为低阻态。在这一阶段期间,在访问器件108关断时无电流穿过存储器元件104。
图3B示出了在搜索操作期间的访问器件搜索状态的表310。表310包括搜索位值312、用于第一访问器件(图1中的项目108)的对应状态314和用于第二访问器件(图1中的项目110)的对应状态316。如图所示,当在特定存储器单元中搜寻高搜索位值312时,存储器单元中的第一访问器件被设置为低阻态314,并且存储器单元中的第二访问器件被设置为高阻态316。当在特定存储器单元中搜寻低搜索位值312时,存储器单元中的第一访问器件被设置为高阻态314,并且存储器单元中的第二访问器件被设置为低阻态316。当在特定存储器单元中搜寻“随意”搜索位值312时,存储器单元中的第一访问器件被设置为高阻态314,并且存储器单元中的第二访问器件被设置为高阻态316。在本发明的一个实施例中,高阻态在阻抗上比低阻态高至少一个量级。
回到图1,现在说明一种用于根据图3B并且再次使用相变器件在存储器单元中搜寻单个位信息的方法的实施例。
如果搜索位值为高,则通过向互补搜索线114施加正电压将第一访问器件108设置为低阻,并且通过向搜索线116施加零偏置将第二访问器件110设置为高阻。
如果搜索位值为低,则通过向互补搜索线114施加零偏置将第一访问器件108设置为高阻,并且通过向搜索线116施加正电压将第二访问器件110设置为低阻。
如果搜索位值为“随意”,则通过向互补搜索线114和搜索线116施加零偏置将第一访问器件108和第二访问器件110设置为高阻。
然后,通过在搜索线112施加少量正偏置电压并且测量从搜索线112流向接地端118的所得电流来执行搜索操作。注意,只有当第一访问器件108和第一存储器元件104两者均处于低阻态或者第二访问器件110和第二存储器元件106两者均处于低阻态时,明显的大量电流(大于预定基线电流)才将穿过匹配线112到达接地端118。这样的条件指示所存储的位与搜索位之间的失配。在所存储的数据与搜索数据之间的理想匹配期间,无明显电流可以从搜索线112流向接地端118,因为连接到低阻存储器元件的访问器件将处于关断状态,并且连接到处于低阻态的访问器件的存储器元件将处于高阻态。另外,如果第一存储器元件106和第二存储器元件108均处于高阻态,则明显的大量电流不能流动,这指示将不会出现失配状况。因此,在高阻态下对第一存储器元件106和第二存储器元件108进行编程向存储器单元分配随意值。
现在转向图4,其示出了根据本发明一个实施例的内容可寻址存储器器件402。内容可寻址存储器器件402包括布置于内容可寻址存储器阵列420中的多个存储器单元404、多个字线406、多个互补字线408、多个匹配线410和匹配电路412。在本发明的一个实施例中,内容可寻址存储器器件还包括字线解码器414、位解码器/数据驱动器416和搜索驱动器418。本领域技术人员将理解,在这一配置之下,字线406在搜索操作期间还充当互补搜索线,互补字线408还充当搜索线,并且匹配线410还充当位线。
存储器阵列420中的每个数据字包括在并联电路中电耦合到个体匹配线410的多个存储器单元。数据字的每个位设置成低、高和随意的三元数据值之一。低数据值和高数据值分别可以存储“0”和“1”或者“1”和“0”。随意值在图中由“X”代表。如图所示,每个存储器单元404电耦合到个体第一字线406、个体第二字线408和个体匹配线410。
字线406和互补字线408电耦合到字线解码器414和搜索驱动器418。在本发明的一个实施例中,字线解码器/数据驱动器414在存储操作期间向字线406和互补字线408施加电压偏置以选择存储器单元,并且搜索驱动器418在搜索操作期间向互补搜索线406和搜索线408施加偏置电压。位解码器/数据驱动器基于个体存储器单元404中的两个存储器元件需要被编程为的阻态向它们提供RESET电流脉冲或者SET电流脉冲。搜索驱动器基于需要在存储器单元404中搜索的阻值向个体互补搜索线406和搜索线408提供偏置电压。
多个匹配线410电耦合到位解码器/数据驱动器416和匹配电路412。在本发明的一个实施例中,匹配电路412在搜索操作期间向多个匹配线410施加正电压。如上文所述,在搜索操作期间,如果个体匹配线410具有阈值以下的总电流,则由匹配电路412指示数据字与搜索字之间的匹配。在本发明的一个备选实施例中,如果个体匹配线410具有高于阈值的总阻抗,则由匹配电路412指示数据字与搜索字之间的匹配。如果串联电耦合到个体匹配线410的多个存储器单元404中的任何数目的存储器单元具有失配,则未指示匹配。如果确定在数据字与搜索字之间的匹配,则输出字位置(具体匹配的匹配线的地址)。
在本发明的一个特定实施例中,在确定个体匹配线410中的失配数目时使用模糊匹配。例如,根据附图,存储于匹配线M0中的数据字为“0110”。如果搜索字为“1111”,则相对大的电流将在存储第一数据位的存储器单元404和存储第四数据位的存储器单元流向匹配线410。由于存储器单元404并联电耦合到匹配线410,因此由匹配电路412测量的总电流将具有两个失配存储器单元404的组合电流。沿着M0的电流数量允许匹配电路412确定匹配线M0包含两个失配。因此,匹配电路412配置用于基于经过个体匹配线的总电流来确定在数据字与搜索字之间的失配位的数目。失配位的数目与经过个体匹配线的总电流成比例。
在本发明的一个备选实施例中,匹配电路412基于个体匹配线410的总阻抗来确定在数据字与搜索字之间的失配位的数目。失配位的数目与总阻抗成反比。
图5A示出了用于内容可寻址存储器器件中的三元数据字存储的方法的实施例。数据字的每个数据位设置成低、高和随意这三个值之一。该过程流始于接收操作502。在接收操作502期间,位解码器/数据驱动器接收数据字或者数据字的汇集。数据字包含三元数据位值串。每个数据位值设置成低、高和随意这三个值之一。每个数据位值存储于个体匹配线上的对应存储器单元。在完成接收操作502之后,控制传向编程操作504。
在编程操作504期间,字线驱动器依次向字线406和互补字线408施加偏置电压以便每次选择每个存储器单元内的一个访问器件。在每个步骤期间,位解码器/数据驱动器向位线410提供RESET或者SET电流脉冲,以便顺序地将每个存储器单元内的两个存储器元件编程为低阻态或者高阻态。如上文所述,向两个存储器元件编程的阻态基于将存储于每个存储器单元中的数据位值。该方法在编程操作506之后结束。
图5B示出了通过本发明一个实施例设想的用于内容可寻址存储器器件的搜索操作的方法。过程流始于接收操作508。在接收操作508期间,搜索驱动器接收搜索字。搜索字包含将在内容可寻址存储器器件中搜寻的三元数据值串。在接收操作508完成之后,控制传向测量操作510。
在测量操作510期间,并行测量内容可寻址存储器器件中的多个匹配线中的每个匹配线的总阻抗。如上文所述,个体匹配线的总阻抗是电耦合到指定匹配线的每个存储器单元的累加阻抗。在本发明的一个实施例中,匹配电路用来测量每个匹配线的总阻抗。在本发明的另一实施例中,匹配电路通过向每个匹配线施加正偏置来测量流过每个匹配线的总电流。在测量操作510之后,控制传向确定操作512。
在确定操作512期间,确定具体匹配线中的失配数目。如上文所言,基于指定匹配线的总阻抗来确定在搜索字与数据字之间的失配数目。失配位的数目与总阻抗成反比。在本发明的一个备选实施例中,基于指定匹配线的总电流来确定在搜索字与数据字之间的失配数目。失配位的数目与总电流成比例。如果无失配(也就是说,总阻抗高于阈值或者总电流低于阈值),则控制传向确定操作514。
在确定操作514期间,确定具体匹配线的位置并且输出结果,该匹配线包含与搜索字匹配的数据字。如上文所述,可以在本发明的一个实施例中运用模糊匹配。在这一实施例中,输出与搜索字最接近的所存储数据字的存储器地址。在另一实施例中,输出每个所存储字的存储器地址和在搜索字与每个所存储字之间的失配位的位置的对应数目。还可以激活输出位以指示未发现与搜索字的准确匹配。在确定操作514之后,该过程结束。
本领域技术人员将理解,结合这里公开的实施例描述的各种示例逻辑块、模块、电路和算法步骤可以实现为电子硬件、计算机软件或者二者的组合。
为了清楚地说明硬件和软件的这一可互换性,上文主要已经在各种示例组件、块、模块、电路和步骤的功能方面描述了各种示例组件、块、模块、电路和步骤。这样的功能是实现为硬件还是软件依赖于对整个系统施加的具体应用和设计约束。本领域技术人员可以针对每个具体应用以可变方式实现所描述的功能,但是这样的实施决策不应解释为引起脱离本发明的范围。
可以利用设计成执行这里描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或者其任何组合来实现或者执行与这里公开的实施例结合描述的各种示例逻辑块、模块和电路。通用处理器可以是微处理器、常规处理器、控制器、微控制器、状态机等。处理器也可以实现为计算设备的组合(例如DSP与微处理器的组合)、多个微处理器、与DPS芯结合的一个或者多个微处理器或者任何其它这样的配置。此外,术语“处理”是意味着涵盖若干含义(例如包括实现程序代码、执行指令、执行算术运算等)的广义术语。
可以用硬件、用由处理器执行的软件模块或者用二者的组合直接实施与这里公开的实施例结合描述的方法或者算法的步骤。软件模块可以驻留于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可拆卸盘、CD-ROM、DVD或者本领域中已知的任何其它形式的存储介质中。存储介质耦合到处理器从而使得处理器可以从存储介质读取信息和向存储介质写入信息。在备选中,存储介质可以在处理器内部。处理器和存储介质可以驻留于ASIC中。ASIC可以驻留于用户终端中。取而代之,处理器和存储介质可以作为分立部件驻留于用户终端中。
模块可以包括但不限于以下模块中的任何模块:软件或者硬件组件(诸如软件面向对象的软件组件、类组件和任务组件)、进程、方法、函数、属性、过程、子例程、程序代码段、驱动器、固件、微代码、电路、数据、数据库、数据结构、表、数组或者变量。
上文参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图示出和/或框图描述本发明。将理解流程图示出和/或框图的每个块以及在流程图示出和/或框图中的块的组合可以由计算机程序指令实现。可以向通用计算机、专用计算机或者其它可编程数据处理装置的处理器提供这些计算机程序指令以产生机器从而使得经由计算机或者其它可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或者多个块中指定的功能/动作的装置。
这些计算机程序指令也可以存储于可以指引计算机或者其它可编程数据处理装置以特定方式工作的计算机可读存储器中从而使得存储于计算机可读存储器中的指令产生如下制造产品,该制造产品包括实现在流程图和/或框图的一个或者多个块中指定的功能/动作的指令装置。
计算机程序指令也可以加载到计算机或者其它可编程数据处理装置上以使一系列操作步骤在计算机或者其它可编程装置上执行以产生计算机实现的过程从而使得在计算机或者其它可编程装置上执行的指令提供用于实现在流程图和/或框图的一个或者多个块中指定的功能/动作的步骤。
附图中的流程图和框图示出了根据本发明各种实施例的系统、方法和计算机程序产品的可能的实现的架构、功能和操作。在此方面,在流程图或者框图中的每个块可以代表如下代码模块、段或者部分,该代码模块、段或者部分包括用于实现一个或者多个指定逻辑功能的一个或者多个可执行指令。也应当足以,在一些备选实现中,在块中记载的功能可以不按图中记载的顺序出现。例如,事实上根据涉及到的功能可以基本上并行执行相继示出的两个块或者有时可以逆序执行这些块。也将注意,框图和/或流程图示出的每个块以及在框图和/或流程图示出中的块的组合可以由执行指定功能或者动作的基于专用硬件的系统或者专用硬件与计算机指令的组合实现。
这里所用术语仅为了描述特定实施例而并非限制本发明。如这里所用,除非上下文另有明示,单数形式“一个/一种”和“该”旨在于也包括复数形式。将进一步理解术语“包括”在使用于本说明书中时指定存在记载的特征、证书、步骤、操作、元件和/或组件、但是并不排除存在或者添加一个或者多个其它特征、整数、步骤、操作、元件,组件和/或其分组。
权利要求中的所有装置或者步骤加上功能单元的对应结构、材料、动作和等效物旨在于包括用于结合如具体要求保护的其它要求保护的单元组合执行功能的任何结构、材料或者动作。已经呈现的对本发明的描述是为了示出和描述而并非为了穷举本发明或者使本发明限于所公开的形式。本领域普通技术人员将清楚许多修改和变化而不脱离本发明的范围和精神实质。选择和描述实施例以便最好地说明本发明的原理和实际应用并且使本领域普通技术人员能够针对如下各种实施例理解本发明,这些实施例具有如与设想的特定用途相适应的各种修改。
已经这样具体并且通过参照其实施例描述了本申请的发明,将清楚可能有修改和变化而不脱离所附权利要求中限定的本发明范围。