用于从SRAM存储器中读取数据的集成电路装置和方法与流程

文档序号:12274123阅读:812来源:国知局
用于从SRAM存储器中读取数据的集成电路装置和方法与流程

本发明涉及一种用于从SRAM存储器中读取数据的集成电路装置和方法。



背景技术:

静态随机存取存储器(SRAM)利用晶体管在存储器阵列中保持数据位。为了保持数据位,向SRAM施加电压。传统上,精确地保持数据位和补偿SRAM泄漏所需的电压被称作数据保持电压(DRV)。在低功率装置中,补偿SRAM泄漏所需的DRV可以显著地贡献于该装置的总功耗。



技术实现要素:

根据本发明的实施例,公开了IC装置。在实施例中,IC装置包括静态随机存取存储器(SRAM)的位单元的阵列;多级数字化模块,该多级数字化模块被配置成从该位单元的阵列中的位单元生成在值的范围内的值,该值的范围包括两个以上离散值;输出缓冲器,该输出缓冲器被配置成存储所生成的值;以及错误校正码(ECC)解码器,该错误校正码(ECC)解码器被配置成基于所存储的值输出错误校正值。

在另一实施例中,该多级数字化模块被配置成基于预定义的阈值从位单元生成值。

在另一实施例中,该输出缓冲器被配置成具有多个寄存器以存储所生成的值。

在另一实施例中,该ECC解码器被另外配置成基于如由该多级数字化模块生成的值指示的该SRAM模块中的位单元已经滑动的概率,输出该错误校正值。

在另一实施例中,该ECC解码器被另外配置成利用存储在内建自测试中的信息以输出错误校正值。

在另一实施例中,该ECC解码器被另外配置成将关于错误校正过程的信息回写到内建自测试。

在第二实施例中,公开了用于从IC装置中的SRAM存储器的位单元的阵列中读取数据的方法。在该实施例中,该方法涉及:测量位单元的阵列中的位单元的特性;从测量结果生成在值范围内的值,该值范围包括两个以上离散值;将所生成的值存储在输出缓冲器中;对所存储的值执行错误校正,以及输出校正值。

在另一实施例中,生成值涉及输出与如由预定义的电压阈值所确定的位单元的电压对应的值。

在另一实施例中,存储所生成的值涉及将所生成的值存储在两个或更多个寄存器中。

在另一实施例中,对所存储的值执行错误校正涉及将所存储的值从浮点数转换为单个二进制数。

在另一实施例中,每个读取操作测量一次位单元的特性。

在另一实施例中,执行错误校正另外涉及使用如由从错误码校正的性能中的测量结果生成的该值所指示的位单元已经滑动的该概率。

在另一实施例中,执行错误校正另外涉及利用存储在内建自测试中的信息。

在另一实施例中,输出校正值另外涉及将关于错误校正过程的信息回写到内建自测试。

在第三实施例中,公开了集成电路(IC)装置。在该实施例中,该IC装置包括SRAM的多个位单元;多级数字化模块,该多级数字化模块被配置成基于该多个位单元中的位单元的电压生成在值范围内的值,该值范围包括两个以上离散值;输出缓冲器,该输出缓冲器被配置成存储所生成的值,该输出缓冲器具有用于存储该值的位的至少两个寄存器;以及错误校正码(ECC)解码器,该错误校正码(ECC)解码器被配置成基于所存储的值输出错误校正值,该ECC解码器被配置成使用单错误校正双错误检测(SECDED)编码。

在另一实施例中,该多级数字化模块被配置成基于该位单元的该电压与预定义的阈值的关系生成值。

在另一实施例中,该输出缓冲器被配置成具有多个寄存器以存储该值中的值。

在另一实施例中,该ECC解码器被另外配置成基于如由该多级数字化模块生成的该值指示的该SRAM的该多个位单元中的位单元已经滑动的概率,输出该错误校正值。

在另一实施例中,该ECC解码器被另外配置成利用存储在内建自测试中的信息以输出错误校正值。

在另一实施例中,该ECC解码器被另外配置成将关于错误校正过程的信息回写到内建自测试。

通过以下结合附图的详细描述,本发明的实施例的其它方面和优点应变得显而易见。

附图说明

图1示出了SRAM模块的配置。

图2描绘了SRAM模块中的6晶体管位单元的电路图。

图3是在DRV的范围内测量的所存储数据的误码率(BER)的曲线图。

图4是示出在位单元的电压、由1位数字化模块输出的值和由多级数字化模块输出的值之间的相关性的表格。

图5示出了多级数字化值在执行错误校正中的使用。

图6描绘了根据本发明的实施例被配置成利用多级数字化模块的IC装置。

图7描绘了根据本发明的实施例用于生成多级数字化值的系统的实施例。

图8描绘了根据本发明的实施例被配置成利用多级数字化模块和内建自测试(BIST)的IC装置。

图9是根据本发明的实施例的用于从IC装置中的SRAM存储器的位单元的阵列中读取数据的方法的过程流程图。

在整个说明书中,可以使用类似的参考标号以识别类似的元件。

具体实施方式

容易理解的是,如本文中大体描述且在附图中示出的实施例的组件可以用各种各样不同的配置来布置和设计。因此,以下如图中所表示的各种实施例的更详细描述并非意图限制本公开的范围,而仅仅是表示各种实施例。虽然在附图中呈现了实施例的各个方面,但是除非特别地指示,否则附图未必按比例绘制。

在不脱离本发明精神或基本特性的情况下,可以其它具体形式体现本发明。所描述的实施例应视为在所有方面均仅为说明性而非限制性的。因此,由所附权利要求书而不是由此详细描述来指示本发明的范围。在权利要求书的等效物的含义和范围内的所有变化均涵盖在权利要求书的范围内。

贯穿本说明书对特征、优点或类似语言的参考并不暗示可以用本发明实现的所有特征和优点应该在或在本发明的任何单一实施例中。实际上,涉及特征和优点的语言应理解成意指结合实施例描述的具体特征、优点或特性包含在本发明的至少一个实施例中。因此,贯穿本说明书对特征和优点的论述以及类似语言可以(但未必)是指同一实施例。

此外,本发明的所描述的特征、优点和特性可以任何合适方式在一个或多个实施例中组合。相关领域的技术人员将认识到,鉴于本文的描述,本发明可在无特定实施例的具体特征或优点中的一个或多个的情况下实践。在其它情况下,可在某些实施例中辨识可能不存在于本发明的所有实施例中的另外特征和优点。

贯穿本说明书对“一个实施例”、“实施例”或类似语言的引用意指结合所指示的实施例描述的特定特征、结构或特性包含在本发明的至少一个实施例中。因此,贯穿本说明书的短语“在一个实施例中”、“在实施例中”和类似语言可以(但未必)全部指的是同一实施例。

图1示出了SRAM模块100的配置。SRAM模块包括控制电路102、电荷源104(“预充电/EQ”)、存储器阵列106、行解码器108、列多路复用器110和感测放大器112。当存储器被存取时,控制电路被配置成确定数据是否正在被写入存储器阵列或是否正在从存储器阵列读取数据。在实施例中,存储器阵列是6晶体管SRAM位单元的阵列,但其它配置例如7晶体管阵列或9晶体管阵列同样是适用的。为了从存储器阵列中的位单元读取或写入该存储器阵列中的位单元,电荷源对每个位单元内的一个或多个位线预充电。行解码器用于选择待写入的位单元,并且结合列多路复用器从选择的位单元中读取所存储的数据。不同于DRAM,存储在SRAM模块的每个位单元中的数据可以得到维持而无需定期地刷新这些数据,只要保持足够的电力可用于存储器阵列即可。在实施例中,在SRAM中维持数据的最小充足电力被称作数据保持电压(DRV)。

图2描绘了SRAM模块中的位单元200的电路图。在将电荷存储在单元内的操作中,晶体管M1-M6可以是断开的或闭合的。由于由晶体管M1-M4形成的锁存器的稳定性,所以只要提供到SRAM模块的电源电压保持高于DRV,就可以可靠地维持存储在SRAM模块的单元内的位。如果电源电压降低到低于DRV,则锁存器可能无法保持稳定,并且存储在该SRAM模块的单元内的位可能变得不可靠。因此,在数据保持模式期间SRAM模块的电力需求很大程度上由DRV确定。在实施例中,DRV受泄漏(来自晶体管内的充电电容器的能量损失)的影响,如由短划线箭头202所指示。可以向SRAM存储器施加低于DRV的电压,但这样做增大了存储的位变得不可靠的可能性。

在实施例中,向从SRAM模块读取的数据应用错误校正允许在数据保持状态期间使用较低的DRV,同时还可靠地维持存储在SRAM模块的单元内的位。图3是在DRV范围内测量的所存储数据的误码率(BER)的曲线图300。该曲线图指示在未使用错误校正时的曲线302、在使用错误校正时的曲线304以及阈值BER 306,在该阈值BER 306下,数据必须保持以便为可靠的。如由该曲线图所指示的,与使用错误校正时相比,在未使用错误校正时,DRV必须保持较高以保持BER高于阈值。因此,通过利用错误校正,可以减小DRV,并且将需要向SRAM模块施加较小的电压以维持在SRAM单元中的可靠电荷。

典型地,可以由模/数转换器(ADC)基于单个预定义的阈值将存储码字(例如,32位字)的位单元的电压(或另一个特性例如电流)转换为1或0。例如,如果位单元的电压被测量为超过0.5V,则ADC输出“1”,并且如果位单元的电压被测量为0.5V或以下,则ADC输出“0”。针对存储特定码字的位的每个位单元执行该过程。一旦每个位单元的电压已经被转换为1或0,就可以向码字应用使用错误校正码(ECC)的错误校正,以确定码字中的位中的一个或多个位是否已经滑动(例如,由电压或电流漂移引起的位单元的电压或电流的错误增益或下降),并且校正滑动的位。许多不同的技术可以用于向集成电路(IC)装置中的SRAM模块应用错误校正。例如,技术可以利用附加到码字的末端的奇偶校验位以确定码字中的位是否正确。然而,将位单元的电压转换为1或0并不提供关于位单元已经滑动的概率的任何指示。例如,在预定义的阈值下具有仅0.1伏电压(例如,在0.5V阈值情况下的0.4V)的位单元可以指示位单元经受电压漂移(否则电压将基于电压源而处于最大或最小电压),并且可以已经切换状态(例如,从高电压状态到低电压状态)。然而,一旦转换为0,失去指示。因此,错误校正通常依赖于另外的信息例如奇偶校验位以确定位单元是否已经切换状态。

根据本发明的实施例,公开了IC装置。在实施例中,IC装置包括:静态随机存取存储器(SRAM)的位单元的阵列;多级数字化模块,该多级数字化模块被配置成从该位单元的阵列中的位单元生成在值的范围内的值,该值的范围包括两个以上离散值;输出缓冲器,该输出缓冲器被配置成存储所生成的值;以及错误校正码(ECC)解码器,该错误校正码(ECC)解码器被配置成基于所存储的值输出错误校正值。因此,多级数字化模块充当模/数转换器,该模/数转换器能够基于位单元的特性生成在值范围内的值,因此允许所生成的值指示位单元是否已经滑动的概率。可以由ECC解码器使用该另外的信息,以执行与通过仅使用传统的错误校正方法可能执行的错误校正相比更好的错误校正。

除使用奇偶校验位之外,如上所述,通过使用多级数字化模块,可以基于位单元的电压生成多个不同的多级数字化值以指示位单元已经滑动的概率。ECC解码器可以另外利用关于位单元已经滑动的概率的指示以校正位滑动(例如,补充传统的错误校正方法)。图4是示出在位单元的电压402、如上所述由传统的模/数转换器(例如,具有0.5V阈值的1位数字化模块)输出的值404和由多级数字化模块输出的值406之间的相关性的例子的表格400。如所示出的,如果电压高于给定的阈值410,则1位数字化模块输出“1”,并且如果电压低于给定的阈值,则输出“0”。阈值可以增大或减小以增大或减小“1”在其输出的电压,但是阈值对于每个读取操作是恒定的。可替换的是,通过为每个读取操作使用多个阈值,多级数字化模块输出众多的离散值中的一个(例如,从表示为整数或二进制字的包括0、1、2等的在0和8之间的范围中选择的值)。在实施例中,多级数字化模块可编程以使用2-4位来输出例如通过非均匀量化所确定的在0和15之间的值。在实施例中,阈值是由用户预定义的,但还可以由多级数字化模块自动地定义。因为使用多个阈值,所以与使用单个阈值时相比,每个输出值更接近地对应于位单元的实际电压,并且可以提供关于位单元已经滑动的概率的更好指示。

图5示出了多级数字化值在执行错误校正中的例子使用。在图5的例子中,输入码字500具有32个数据位502和7个奇偶校验位504,并且每个位具有多级数字化值(中间行)和对应的1位数字化值(底部行)。例如,第一位单元具有0.2V的电压,这对应于多级数字化值2和1位数字化值“0”(因为值降到阈值5以下)。在图5的例子中,当执行错误校正时,确定出第一个8位中的位已经滑动(例如,通过错误校正方法)。通过考虑输入码字(具体地说第一个8位)的多级数字化值,因为第8位(位7)508最接近阈值(6仅距离阈值1),所以有可能第8位(位7)508已经滑动。因此,错误校正过程可以使第8位从“1”翻转为“0”(不管其多级数字化值如何)以输出校正的码字510。在实施例中,可以使用多级数字化值以增大最小距离(例如,在可以不再执行错误校正之前可以滑动的位的数目)。例如,汉明码通常具有最小距离3(例如,最大3位可以滑动),但通过考虑多级数字化值可以增大到4,而不需使用另外的奇偶校验位。另外,当对完全块进行解码时,可以使用多级数字化。例如,如果第8位(位7)已经滑动,并且现在具有多级数字化值5(例如,正好在阈值处,并且可以或者是1或者是0),则当第8位是1时且当第8位是0时,错误校正过程可以执行校正,并且比较错误校正的结果以选择更好的结果(例如,其中已经校正更多错误的结果)。

图6描绘了根据本发明的实施例被配置成利用多级数字化模块的IC装置602。在实施例中,IC装置包括处理器604、接口606、ECC编码器608、SRAM模块600和ECC解码器618。如下所述,SRAM模块另外包括用于生成多级数字化值(例如,由多级数字化模块生成的输出)的系统。在其它实施例中,用于生成多级数字化值的系统可以在SRAM模块的外部。在实施例中,当数据被写入SRAM模块时,经由接口接收数据,将数据传递到处理器用于进行处理,并且将数据传递到ECC编码器以用于进行编码。在实施例中,可以从IC装置内接收数据,而不需经由接口接收数据,并且可以由处理器实施ECC编码器。处理器可以是例如ARM处理器,并且接口可以是例如串行接口,例如I2C接口,和/或无线接口。一旦数据被编码,则编码的数据就可以被写入SRAM模块(例如,作为具有32个数据位和7个奇偶校验位的39位码字)。在实施例中,当从SRAM模块读取数据时,数据经过用于生成多级数字化值的系统被传递到ECC解码器,进行解码和/或校正,并且输出用于另外的使用。在实施例中,数据可以被输出到接口以用于在IC装置外部使用,或者可以被输出到IC装置内的其它组件(未示出)。

图7描绘了根据本发明的实施例用于生成多级数字化值的系统的实施例。系统包括SRAM的位单元706、感测放大器712、多级数字化模块714、输出缓冲器716和ECC解码器718。在实施例中,位单元、感测放大器、多级数字化模块和输出缓冲器是SRAM模块700的部分,并且输出缓冲器被连接以便将多级数字化值输出到ECC解码器。图7描绘了具有单个位单元的系统,但多个系统可以并行存在(例如,32位字中每位一个系统),或者多级数字化模块可以耦合到感测放大器以用于随后被串行处理的多个位单元。关于图7,在例子操作中,沿着位线(由“BL”所指示)从位单元中读取位,由感测放大器进行放大,并且传递到多级数字化模块以用于转换为对应于例如位单元的电压的多级数字化值(如上文参考图4所描述的)。例如,参考图4,当从位单元读取具有0.4V的电压的位时,将生成多级数字化值4或其等效二进制位数0100。在实施例中,可以用模/数转换器(ADC)例如flash型ADC实施多级数字化模块,但还可以由反复1位采样实施多级数字化模块。ADC被配置成具有几个输出电平或状态,并且然后来自多级数字化模块的输出可以被传递到输出缓冲器,输出缓冲器被配置成将所生成的值存储在多个寄存器中。例如,输出缓冲器可以接收所生成的值,并且然后或者并行地(例如,同时针对所有的39位编码的码字驱动4位多级数字化值)或者串行地(例如,一次针对39位编码的码字4位中的每位驱动每个4位多级数字化值)将该值驱动到ECC解码器。在实施例中,用至少一个运算放大器(op-amp)实施输出缓冲器,该放大器将来自多级数字化模块的输出驱动到ECC解码器。在实施例中,ECC解码器在硬件电路中实施,该硬件电路被配置成有助于ECC-算法功能和/或用于存储将被微处理器执行以执行错误校正的微码。ECC解码器使用例如汉明编码或单错误校正双错误检测编码(SECDED)执行错误校正,并且输出码字中位单元的电压的单错误校正的硬位表示(例如,1或0),以形成解码的32位数据字。例如,多级数字化值“0100”将被输出为“0”。

除使用多级数字化值执行错误校正之外,还可以由ECC解码器使用关于位单元的正常状态的数据以执行错误校正。图8描绘了根据本发明的实施例被配置成利用多级数字化模块和内建自测试(BIST)812的IC装置802。在实施例中,IC装置包括处理器804、接口806、SRAM模块800(其包括BIST)和ECC解码器818。在实施例中,当数据被写入SRAM模块时,经由接口接收数据,数据被传递到处理器以用于进行处理,并且被传递到ECC编码器以用于进行编码。在实施例中,可以从IC装置内接收数据,而不需经由接口接收数据,并且可以由处理器实施ECC编码器。处理器可以是例如ARM处理器,并且接口可以是例如串行接口,例如I2C接口,和/或无线接口。一旦数据被编码(例如,将7个奇偶校验位添加到32位码字的末端),则其可以被写入SRAM模块。在实施例中,当执行第一数据读取操作时,数据被传递到ECC解码器,并且如参考图6和7所描述的进行解码。由BIST记录ECC解码过程的结果(例如,如果存在的话,哪些位单元滑动)。在实施例中,可以或者通过硬件(例如,SRAM模块上的另外电路系统)或者通过软件(例如,SRAM模块的部分的软件配置)促进BIST。如果通过硬件促进BIST,则例如ECC解码过程的结果是存储在SRAM模块的另外电路系统中的被标识为弱的位的地址的列表。如果通过软件促进BIST,则例如ECC解码过程的结果是写入SRAM存储器的位和对应于每个位的健康状态(例如,强或弱)的表格。在后续读取操作时,数据被传递到ECC解码器,但关于位单元的健康的另外数据(例如,其中每个位单元先前已经滑动的情况的数目)也被从BIST传递到ECC解码器,并且由BIST记录ECC解码过程的结果。在实施例中,如果BIST指示位单元具有滑动历史,则相比不具有滑动历史的位单元,ECC解码器将有利于校正具有滑动历史的该位单元。在实施例中,在数据由ECC解码器解码之后,数据可以被输出到接口以用于在IC装置外部使用,或者可以被输出到IC装置内的其它组件(未示出)。另外,当写入数据时,可以由ECC编码器使用来自BIST的信息以避免将数据写入具有滑动历史的位单元。

图9是根据本发明的实施例的用于从IC装置中的SRAM存储器的位单元的阵列中读取数据的方法的过程流程图。在框902,测量位单元的阵列中的位单元的特性。在实施例中,经由感测放大器测量并放大每个位单元的电压。在框904,从测量结果生成在值范围内的值,该值范围包括两个以上离散值。在实施例中,该值是基于每个位单元的电压生成的多级数字化值(例如,0和8之间的整数值的范围)。在框906,所生成的值被存储在输出缓冲器中。在实施例中,使用至少一个运算放大器临时存储所生成的值,并且将所生成的值驱动到ECC解码器。在框908,对所存储的值执行错误校正。在实施例中,由ECC解码器执行错误校正。在框910,输出错误校正值以用于由例如应用程序使用。在实施例中,在框910,关于错误校正过程的信息也被回写到BIST。可以在后续的读取和/或写入操作中使用回写到BIST的信息。

虽然以特定次序示出和描述了本文中的一个或多个方法的操作,但是可以更改每个方法的操作次序,使得可以逆序执行某些操作,或使得可以至少部分地与其它操作同时执行某些操作。在另一实施例中,可以间断的和/或交替的方式实施不同操作的指令或子操作。

还应当注意的是,可以使用存储在计算机可用存储媒体上用于由计算机执行的软件指令实施该方法的操作中的至少一些操作。作为例子,计算机程序产品的实施例包括存储计算机可读程序的计算机可用存储媒体,当在计算机上执行该计算机可读程序时致使计算机执行如本文所描述的操作。

此外,本发明的至少部分的实施例可以采用可从计算机可用或计算机可读媒体存取的计算机程序产品的形式,该计算机可用或计算机可读媒体提供程序代码用于由计算机或任何指令执行系统使用或结合该计算机或任何指令执行系统使用。出于该描述的目的,计算机可用或计算机可读媒体可以是可以包含、存储、传达、传播或传送用于由指令执行系统、设备或装置使用或结合该指令执行系统、设备或装置使用的程序的任何设备。

计算机可用或计算机可读媒体可以为电子、磁性、光学、电磁、红外或半导体系统(或设备或装置)或传播媒体。计算机可读媒体的例子包括半导体或固态存储器、磁带、可移除计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。目前的光盘例子包括具有只读存储器的压缩光盘(CD-ROM)、具有读/写的压缩光盘(CD-R/W)、数字视频光盘(DVD)和蓝光光盘。

在上面的描述中,提供各种实施例的具体细节。然而,可以在并没有这些具体细节的全部细节的情况下实践一些实施例。在其它情况下,为了简洁和清晰起见,除了能够实现本发明的各种实施例的方法、操作步骤、组件、结构和/或功能之外,不再详细描述某些方法、操作步骤、组件、结构和/或功能。

虽然已经描述和示出了本发明的具体实施例,但是本发明不限于如此描述和示出的部分的具体形式或布置。本发明的范围将由在此所附的权利要求书及其等效物限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1