本文作者:kaifamei

具有带有纠错码保护的每行激活计数的存储器芯片的制作方法

更新时间:2025-01-11 04:01:08 0条评论

具有带有纠错码保护的每行激活计数的存储器芯片的制作方法



1.本发明的领域总体上涉及计算科学,并且更具体地涉及一种用于具有带有纠错码保护的每行激活计数的存储器芯片的方法和装置。


背景技术:



2.动态随机存取存储器(dram)单元将电荷存储在电容性单元中。在待机模式期间(当不存在对单元的访问时),电荷可能持续地从单元泄漏到其存储的值发生改变(例如,从1到0)的点。
3.为了防止这种数据丢失,dram存储器芯片被设计为刷新其存储单元。刷新活动典型地需要从单元读取以检测其存储的值,然后将相同的值写回单元。写入操作为单元补充针对特定存储的值的新电荷量。
4.为了在延长的运行时间内保证其数据的完整性,存储器芯片将定期刷新其存储单元。具体地,存储器芯片的单元阵列中的每个单元都将以足够的频率被刷新,以防止其存储的数据的丢失,即使该单元被频繁访问也将如此。
5.近期发布的联合电子设备工程委员会(jedec)标准双倍数据速率5(“ddr5”)定义了在存储器芯片与主机(存储器控制器)之间的协作刷新行为。具体地,存储器芯片制造商(在存储器芯片的模式寄存器(mr)空间中)定义了与对存储器芯片的单元阵列中的单元的刷新相关的特定时序要求。
6.存储器控制器读取时序要求,并根据与时序要求一致的调度来调度刷新命令。存储器控制器然后与调度一致地向存储器芯片发出刷新命令。响应于每个刷新命令,存储器芯片刷新在由它接收到的刷新命令的类型指定的阵列位置处的单元(特定存储体(bank)组中的所有存储体,或所有存储体组中的相同存储体)。
7.dram存储器单元也可能遭受称为“行锤(row hammer)”的数据损坏机制。在行锤的情况下,与接近频繁激活的行(例如,在其旁边)的行耦合的单元中的数据可能会被破坏。因此,存储器系统理想地包括监视行激活的计数器。如果认为某行在时间窗口内已经接收到超过阈值的多次激活,则与附近行耦合的单元将主动刷新以保护它们免受行锤效应。
8.jedec ddr5标准包括一种被称为“刷新管理”的行锤缓解方法。在刷新管理的情况下,存储器控制器对每个存储体的行激活进行计数。如果针对存储体的计数超过由存储器芯片制造商指定的阈值,则存储器控制器向存储器芯片发出刷新管理(rfm)命令。
9.响应于每个rfm命令,存储器芯片刷新在由它接收到的rfm命令的类型指定的阵列位置处的单元(特定存储体组中的所有存储体,或所有存储体组中的相同存储体)。注意,响应于rfm命令执行的刷新是在利用上面描述的刷新命令实现的正常调度的刷新之外的附加刷新。
附图说明
10.通过以下结合附图的具体实施方式可以获得对本发明的更好理解,其中:
11.图1描绘了具有每行激活计数的存储器芯片;
12.图2描绘了具有带有纠错码(ecc)保护的每行激活计数的存储器芯片;
13.图3示出了耦合到具有带有纠错码(ecc)保护的每行激活计数的存储器芯片的存储器控制器;
14.图4示出了系统;
15.图5示出了数据中心;
16.图6示出了环境。
具体实施方式
17.预计下一代存储器芯片被设计为包括其自己的行锤威胁检测电路装置。例如,预计至少一些下一代存储器芯片在每行包括附加的dram单元,这些dram单元用于保存该行的激活计数。
18.图1描绘了具有每行附加单元101的存储器芯片100的高级视图,这些附加单元101被保留用于对行的激活进行计数。这里,如在图1中观察到的,核心存储器单元阵列102对应于存储例如随机客户数据的传统存储器阵列。每行还包括计数器单元101的集合,这些计数器单元101保持对其特定行自其上次刷新以来已经被激活的次数的计数。在操作中,每次在行被激活时,在存储器芯片内的电路装置103读取针对该行的计数值,将该计数递增1,然后将更新后的值存储回计数器单元中。
19.存储器芯片包括将计数值与阈值进行比较的比较器104。如果针对任何特定行的行激活计数达到阈值,则存储器芯片识别存在针对该特定行的行锤威胁(该行可以称为“锤行(hammer row)”)。
20.正如背景技术中所讨论的,通过刷新锤行的可能的受害行来缓解行锤威胁。通常,锤行的可能的受害行是锤行的最接近的相邻行。例如,锤行的可能的受害行的集合可能包括锤行的直接相邻行以及该直接相邻行的直接相邻行(而不是锤行)。可能的受害行的精确数量/集合取决于存储器芯片的特定设计和制造技术。
21.取决于实现方式,一旦计数值被认为已经达到阈值并且存储器芯片识别出存在行锤威胁,则存储器芯片200可以向存储器控制器通知威胁和/或请求存储器控制器发出rfm命令来处理问题(rfm命令应针对可能的受害行驻留在其中的(多个)存储体)。可替代地或组合地,存储器芯片200可以在没有来自存储器控制器的显式命令的情况下发起和执行对可能的受害行的刷新。
22.另外地,响应于计数值已经被认为达到阈值,计数值被重置(例如,被重置为0)并存储回存储器阵列中。然后重复该过程。
23.可以将其他功能扩展添加到这些基本操作。然而,如果要成功地将这些扩展集成到存储器芯片的功能中,则这些扩展也会带来一些应被克服的复杂问题。
24.如图2中所描绘的,第一功能扩展是将纠错码(ecc)信息添加到计数值。这里,例如,如果计数值以每行m个位记录,则另外的每行n个位用于ecc信息(使得每行总共保留m+n个位用于激活计数目的)。n位ecc信息“保护”了m位计数值。这里,在读取计数值期间(例如,为了响应于其对应行的新激活而递增计数值),m个计数值位和n个ecc位都被读取。
25.然后由存储器芯片200内的ecc读取逻辑电路装置205_1处理m+n个位。如果在m+n
个位中的一个位中存在损坏,则ecc读取逻辑电路装置205_1可以纠正错误。因此,将获得正确的计数值(如果错误在m位计数值中,则ecc读取逻辑电路装置205_1纠正该错误;如果错误在n位ecc信息中,则m位计数值被未损坏)。
26.在正确的计数值递增之后,ecc写入逻辑电路装置205_2处理更新后的计数值,并且针对更新后的计数值确定新的一组n位ecc信息。然后将递增后的m位计数值和新计算出的n位ecc信息存储回存储器阵列201中。
27.各种形式的ecc保护是可能的,并且可能从一个实施例到另一实施例而不同。例如,在“单错误纠正”(sec)的情况下,ecc信息可以用于纠正单个位错误但不能用于纠正或甚至检测两个位错误(如果m=16,则在n=5时实现sec)。相比之下,在“单错误纠正,双错误检测”(secded)的情况下,ecc信息可以用于纠正单个位错误,并且可以用于检测但不纠正两个位错误(如果m=16,则在n=6时实现secded)。
28.如果采用其中错误可以被检测但无法纠正的ecc方法(例如,secded),则在各种实施例中,检测到无法纠正的m+n个位中的错误可以导致存储器芯片200的不同响应,这取决于实现方式。
29.根据第一方法,检测到无法纠正的错误将针对其m+n个位具有无法纠正的错误的行自动地触发对可能的受害行的行锤缓解。这里,行锤逻辑206使具有计数错误的行的可能的受害行被刷新。
30.该特定方法提供了高度的保护,以防止由于行锤效应而导致的数据丢失。实质上,该方法假定在m位计数值的最高位中存在一个或多个错误,或者换言之,假定(未知)正确的计数值在阈值处/接近阈值。因此,存储器芯片200就好像已经达到阈值一样进行响应。
31.同时,这种方法可以对存储器性能造成打击。这里,在行锤缓解期间执行的刷新阻止了存储器芯片200响应读取/写入请求,这进而从存储器芯片作为其组件的较大系统的角度降低了存储器芯片的性能。即,对计数值在阈值处/接近阈值的自动假设会导致执行不必要的行锤缓解(当假设不正确时),这会阻止存储器达到其全部性能。
32.然而,如果无法纠正的行计数错误以太频繁的速率发生,则存储器控制器易于注意到存储器正在要求太多的行锤缓解(和/或刷新)并且可能触发封装后修复(例如,将存储器的包括经历高速率的无法纠正的行激活计数的行的一部分替换为存储器的另一备用部分)或某种其他类型的应变方法。
33.根据第二方法,不会响应于针对遭受被检测到但无法纠正的错误的特定行的激活计数而执行行锤缓解活动。这种方法导致更好的整体存储器性能,因为没有执行不必要的刷新。然而,如果实际上m位计数值的较高阶位中存在错误,则可以将计数值更改为低得多的值,这进而可以迫使可能的受害行大大超过阈值。
34.比较器204如何确定是否已经达到计数值可以影响第一方法或第二方法中的哪一种更合适。例如,如果在计数值大于或等于阈值时认为达到阈值,则第一方法可能更好。例如,如果阈值是远低于可以用m个位表示的最大值的值,则错误位对应于阈值的较高阶位的可能性更大。
35.相比之下,如果在计数值等于阈值时认为已经达到阈值,则第二方法可能更好。在这种情况下,错误位易于是除了阈值的较高阶位之外的位,或者换言之,不正确的计数值仅比其正确值小一点。因此,最好继续利用不正确的值进行操作,因为在基于计数值执行行锤
缓解之前,这仅导致超出阈值的一些附加行激活。
36.一些存储器芯片可以被设计为在检测到计数值中的无法纠正错误之后选择使用哪种类型的方法,和/或相对阈值的哪种类型的比较触发行锤缓解(例如,大于或等于、等于,等等)。此外,该方法可以直接根据对比较类型的选择而建立(例如,如果选择大于或等于,则自动采用第一方法,或者如果选择等于,则自动采用第二方法)。要使用的比较类型和/或方法类型可以由主机例如在存储器芯片200的模式寄存器(mr)空间206中设置。
37.其他复杂情况涉及对计数器值的重置。如上面所描述的,当计数值达到阈值时,计数器被重置。在扩展中,如果用于计数值的行通过其他方式刷新(例如,响应于调度的刷新命令或rfm命令),计数值也会被重置。
38.然而,当存储器芯片制造商在其mr空间206和/或存储器控制器中阐明刷新命令时序信息时,存储器芯片制造商应确保其计数器由于调度的刷新命令和/或rfm命令而重置的行的可能的受害行也在短时间之后刷新(例如,通过紧跟在刷新或rfm命令之后)。这里,响应于刷新来重置计数器使可能的受害行暴露于行的附加激活(超过阈值),这可能导致可能的受害行实际上遭受行锤故障。
39.因此,在各种实施例中,鉴于在针对行及其可能的受害行的调度的刷新命令之间和/或rfm命令之间可能经过的最大时间量,来确定针对存储器建立的阈值(例如,其可以在存储器芯片200的mr空间206中指定为单个值或值的范围)。可能经过的时间越长,就应设置越低的阈值。
40.如果在重置锤行的计数器的刷新与阻止锤行的可能的受害行免于附加行激活的受害的刷新之间经过长时间段,则这样做允许为超出可能的受害行能够承受的阈值的附加行激活留出更多空间。
41.还应特别考虑修复的行(其利用不同物理位置中的冗余行)。如果在冗余行被刷新之后不久存储器无法刷新冗余行的可能的受害行,则在冗余行被刷新时不应重置冗余行的计数器。
42.计数值重置的另一种可能扩展是将计数器重置为不同的值,例如,随机值。即,例如,与每次重置计数器时将该计数器重置为相同的值(例如,0)相反,而是将计数器重置为几个或多个值中的一个。这样做会给行锤刷新活动带来一些随机性,这进而使“攻击者”程序代码(故意编写以引发行锤故障)更难成功。
43.另一个扩展是为锤行的不同可能的受害行指派不同的阈值。这里,与距离锤行两行的行相比,锤行的最接近的邻居更容易受到行锤效应的影响,依此类推。因此,可以为最接近的相邻行建立比较远的行更低的阈值。仅作为一个示例,距离锤行最远的可能的受害行设置了这样的阈值:该阈值触发对锤行的计数器的重置。然后将针对较接近的行的阈值确定为该阈值的分数。
44.例如,如果距最远的可能的受害行的距离为三行,则可以针对这些可能的受害行设置50000的阈值。针对距其距离为两行的行的阈值被设置为该阈值的1/5(=10000),并且针对最接近的相邻行的阈值被设置为该阈值的1/10(=5000)。存储器芯片的比较器204然后可以根据计数值确定阈值中的任一个何时已经达到(比较器204被设计为执行针对所有三个阈值的比较)。即,对于最接近的相邻行,比较器204可以检测计数值何时达到值5000;1000;15000等。同样地,对于距其距离为两行的行,比较器204可以检测计数值何时达到值
10000;20000;30000等。然后,当达到特定阈值时,针对距锤行特定距离的行激活行锤缓解。
45.存储器芯片200可以被设计为包括mr空间206,该mr空间206指定在不同距离的可能的受害行之间的因素和/或触发计数值的重置的阈值。
46.对计数值执行的ecc处理可能会消耗时间,这延迟了存储器的响应读取或写入请求的能力。具体地,ecc处理扩展了存储器芯片的tras(从行被激活到该行被停用的时间)。这里,针对行的计数值应在tras内被更新。因此,如果对计数值的ecc处理消耗太多时间,则这可能具有将tras扩展为与不存在ecc的情况相比更长时间量的效果。
47.因此,一些实施例可以选择不包括针对计数值的ecc信息,或者可以使针对计数值的ecc信息成为可以(例如,通过存储器的mr空间206)被启用/禁用的特征。无论如何,在各种实施例中,如果ecc信息不用于计数值,则计数值以格雷码(gray code)表示。如本领域已知的,在格雷码的情况下,在连续值之间只存在一位的差异。因此,如果位错误,则这只会导致计数值与正确的计数值相差1(相比之下,在二进制表示的情况下,存在连续值之间所有位都不同的实例)。
48.此外,由于格雷码,错误的影响最小,存储器的tras可以被推送/最小化,从而即使计数值不能及时更新(针对行的计数值可能在计数值的行被激活然后被停用的时间量内不被更新),行锤效应的风险也是最小的(因为计数值仅差1)。在各种实施例中,可以降低阈值以为由于tras被最小化而小于实际行激活计数的计数值提供一些空间。
49.格雷码仍可以用于使用ecc保护的实施例中。
50.在进一步的实施例中,tras可以是温度的函数。具体地,tras在较高温度下减少,并且在较低温度下增加。这里,当存储器芯片处于较低温度时,可能花费较长的时间来写回计数值。因此,tras在较低温度下扩展,以使存储器芯片有更多时间写回更新后的计数值。在较高的温度下,存储器芯片应该需要较少的时间来写回更新后的计数值,因此可以减少tras。
51.这里,存储器控制器可以读取存储器管芯的内部温度,从而可以理解适用的tras(并向存储器芯片提供对应的信号)。存储器芯片可以具有mr空间来指示适当的tras作为管芯温度的函数。
52.图3示出了存储器控制器311,该存储器控制器311通信地耦合到具有上面刚刚描述的存储器芯片300的存储器模块310。存储器模块可以具有多种不同的外形规格中的任何一种,例如,双列直插式存储器模块(dimm)、堆叠式存储器芯片存储器模块等。存储器控制器包括特殊逻辑电路装置312以在操作上与存储器芯片300兼容。例如,逻辑电路装置312使存储器控制器进行以下操作:1)注意到存储器芯片300存储器正在要求太多的行锤缓解(和/或刷新)并且触发了封装后修复或某种其他类型的应变方法;2)确保其计数器由于调度的刷新命令和/或rfm命令而重置的行的可能的受害行也在短时间之后刷新(例如,通过立即遵循刷新或rfm命令);3)读取存储器管芯的内部温度,使其可以理解适用的tras(并向存储器芯片提供对应的信号)。存储器控制器311是其组件的主机可以执行这些操作中的任何一个。另外地,存储器控制器311和/或主机可以读取和/或设置具有上面描述的mr空间信息中的任一个的存储器芯片mr空间。
53.上面提供的教导可以应用于各种存储器实现方式,包括jedec ddr5实现方式、jedec ddr6实现方式、jedec图形ddr(gddr)实现方式、jedec高带宽存储器(hbm)实现方式、
jedec lpddr5实现方式、jedec lpddr6实现方式等。
54.虽然上述实施例已经针对dram存储器芯片,但可以想象本文所描述的方法/扩展可以应用于展现行锤损坏或以其他方式可以利用对行激活、行访问等中的任何一个进行计数的其他存储器技术。各种类型的固态存储器技术包括闪速存储器和三维电阻式单元非易失性存储器(例如,相变存储器、电介质存储器、磁存储器等)。在后者的情况下,存储单元通常形成为集成在芯片衬底上方的布线层内的三维阵列。
55.上面描述的各种类型的电路装置可以至少部分地利用逻辑电路装置来实现。逻辑电路装置可以包括逻辑门和/或由这种逻辑门形成的较大的逻辑宏,这些逻辑门是专用的且硬连线的、可编程的或可配置的逻辑电路装置,例如,现场可编程门阵列(fpga)电路装置和/或用于执行某种形式的程序代码的电路装置设计(例如,微控制器)。
56.图4描绘了示例系统。该系统可以使用本文提供的教导。系统400包括处理器410,该处理器410为系统400提供处理、操作管理和指令的执行。处理器410可以包括任何类型的微处理器、中央处理单元(cpu)、图形处理单元(gpu)、处理核心或用于为系统400提供处理的其他处理硬件或处理器的组合。处理器410控制系统400的整体操作,并且可以是或包括一个或多个可编程通用或专用微处理器、数字信号处理器(dsp)、可编程控制器、专用集成电路(asic)、可编程逻辑器件(pld)等,或者这些设备的组合。
57.在一个示例中,系统400包括耦合到处理器410的接口412,该接口412可以表示针对需要更高的带宽连接的系统组件(例如,存储器子系统420或图形接口组件440或加速器442)的更高速度接口或高吞吐量接口。接口412表示接口电路,该接口电路可以是独立组件或者集成到处理器管芯上。在存在图形接口440的情况下,该图形接口440与图形组件接合,以将视觉显示提供给系统400的用户。在一个示例中,图形接口440可以驱动向用户提供输出的高清晰度(hd)显示器。高清晰度可以指代具有大约100ppi(每英寸像素)或更大的像素密度的显示器,并且可以包括诸如全hd(例如,1080p)、视网膜显示、4k(超高清晰度或uhd)或其他格式之类的格式。在一个示例中,显示器可以包括触摸屏显示器。在一个示例中,图形接口440基于在存储器430中存储的数据或者基于由处理器410执行的操作或两者来生成显示。在一个示例中,图形接口440基于在存储器430中存储的数据或者基于由处理器410执行的操作或两者来生成显示。
58.加速器442可以是可以由处理器410访问或使用的固定功能卸载引擎。例如,加速器442中的加速器可以提供压缩(dc)能力、诸如公钥加密(pke)之类的密码服务、密码、散列/认证能力、解密或其他能力或服务。在一些实施例中,另外地或可替代地,加速器442中的加速器提供如本文所描述的现场选择控制器能力。在一些情况下,加速器442可以被集成到cpu插座(例如,到包括cpu并提供与cpu的电气接口的主板或电路板的连接器)中。例如,加速器442可以包括单核心或多核心处理器、图形处理单元、逻辑执行单元、单级或多级高速缓存、可用于独立执行程序或线程的功能单元、专用集成电路(asic)、神经网络处理器(nnp)、“x”处理单元(xpu)、可编程控制逻辑以及诸如现场可编程门阵列(fpga)之类的可编程处理元件。加速器442可以提供多个神经网络、处理器核心、或者可以使其可供人工智能(ai)或机器学习(ml)模型使用的图形处理单元。例如,ai模型可以使用或包括以下各项中的任何一个或其组合:强化学习方案、q-学习方案、深度-q学习、或asynchronous advantage actor-critic(a3c)、组合神经网络、递归组合神经网络或其他ai或ml模型。可
以使多个神经网络、处理器核心或图形处理单元可供ai或ml模型使用。
59.存储器子系统420表示系统400的主存储器,并且为要由处理器410执行的代码或要在执行例程中使用的数据值提供存储。存储器子系统420可以包括一个或多个存储器设备430,例如,只读存储器(rom)、闪速存储器、易失性存储器或这些设备的组合。存储器430存储并托管操作系统(os)432以及其他事物,以提供用于执行系统400中的指令的软件平台。另外地,应用434可以从存储器430在os 432的软件平台上执行。应用434表示具有其自己的操作逻辑以执行对一个或多个功能的执行的程序。进程436表示向os 432或一个或多个应用434或其组合提供辅助功能的代理或例程。os 432、应用434和进程436提供软件逻辑以提供用于系统400的功能。在一个示例中,存储器子系统420包括存储器控制器422,该存储器控制器422是用于生成命令并将命令发出到存储器430的存储器控制器。将理解的是,存储器控制器422可以是处理器410的物理部分或接口412的物理部分。例如,存储器控制器422可以是集成到具有处理器410的电路上的集成存储器控制器。在一些示例中,片上系统(soc或soc)将以下各项中的一个或多个组合到一个soc封装中:处理器、图形、存储器、存储器控制器和输入/输出(i/o)控制逻辑。
60.易失性存储器是一种这样的存储器:如果到设备的电力被中断,则其状态(以及因此存储在其中的数据)是不确定的。动态易失性存储器要求刷新存储在设备中的数据以维持状态。动态易失性存储器的一个示例包括dram(动态随机存取存储器)或诸如同步dram(sdram)之类的一些变型。如本文所描述的存储器子系统可以与多种存储器技术兼容,例如,ddr3(双倍数据速率版本3,由jedec(联合电子器件工程委员会)于2007年6月27日最初发布)、ddr4(ddr版本4,由jedec于2012年9月公布的初始规范)、ddr4e(ddr版本4)、lpddr3(低功率ddr版本3)、jesd209-3b(由jedec于2013年8月发布)、lpddr4(lpddr版本4)、jesd209-4(由jedec于2014年8月最初公布)、wio2(宽输入/输出版本2)、jesd229-2(由jedec于2014年8月最初公布)、hbm(高带宽存储器)、jesd325(由jedec于2013年10月最初公布)、lpddr5(目前由jedec正在讨论)、hbm2(hbm版本2,目前由jedec正在讨论),或其他存储器技术或这些存储器技术的组合,以及基于这样的规范的派生物或扩展的技术。jedec标准在www.jedec.org处是可获得的。
61.存储器430可以包括上面详细描述的扩展中的一个或多个。
62.尽管没有具体示出,但是将理解的是,系统400可以包括设备之间的一条或多条总线或一个或多个总线系统,例如,存储器总线、图形总线、接口总线等。总线或其他信号线可以将组件通信地或电气地耦合在一起,或者将组件通信地且电气地耦合。总线可以包括物理通信线路、点对点连接、桥、适配器、控制器或其他电路装置或其组合。总线可以包括例如系统总线、快速外围组件互连(pcie)总线、超传输或行业标准架构(isa)总线、小型计算机系统接口(scsi)总线、远程直接存储器访问(rdma)、互联网小型计算机系统接口(iscsi)、快速nvm(nvme)、相干加速器接口(cxl)、相干加速器处理器接口(capi)、通用串行总线(usb)或电气和电子工程师协会(ieee)标准1394总线中的一个或多个。
63.在一个示例中,系统400包括接口414,该接口414可以耦合到接口412。在一个示例中,接口414表示接口电路,该接口电路可以包括独立组件和集成电路装置。在一个示例中,多个用户接口组件或外围组件或两者耦合到接口414。网络接口450向系统400提供通过一个或多个网络与远程设备(例如,服务器或其他计算设备)通信的能力。网络接口450可以包
括以太网适配器、无线互连组件、蜂窝网络互连组件、usb(通用串行总线)、或其他基于有线标准或无线标准的接口或专有接口。网络接口450可以将数据发送到远程设备,这可以包括发送存储在存储器中的数据。网络接口450可以从远程设备接收数据,这可以包括将接收到的数据存储在存储器中。可以结合网络接口450、处理器410和存储器子系统420使用各种实施例。
64.在一个示例中,系统400包括一个或多个输入/输出(i/o)接口460。i/o接口460可以包括用户通过其与系统400交互(例如,音频、字母数字、触觉/触摸或其他接合)的一个或多个接口组件。外围接口470可以包括上面未具体提到的任何硬件接口。外围设备通常指代依赖地连接到系统400的设备。依赖连接是其中系统400提供在其上执行操作并且用户与其进行交互的软件平台或硬件平台或两者的一种连接。
65.在一个示例中,系统400包括用于以非易失性方式存储数据的存储子系统480。在一个示例中,在某些系统实现方式中,存储装置480的至少某些组件可以与存储器子系统420的组件重叠。存储子系统480包括(多个)存储设备484,这些存储设备484可以是或包括用于以非易失性方式存储大量数据的任何常规介质,例如,一个或多个基于磁性、固态或光学的盘或其组合。存储装置484以持久状态保存代码或指令以及数据486(例如,尽管到系统400的电力被中断,但值仍被保留)。存储装置484通常可以被认为是“存储器”,但是存储器430典型地是用于向处理器410提供指令的执行或操作存储器。尽管存储装置484是非易失性的,但是存储器430可以包括易失性存储器(例如,如果到系统400的电力被中断,则数据的值或状态是不确定的)。在一个示例中,存储子系统480包括用于与存储装置484接合的控制器482。在一个示例中,控制器482是接口414或处理器410的物理部分,或者可以包括处理器410和接口414两者中的电路或逻辑。
66.非易失性存储器(nvm)设备是一种这样的存储器:即使到设备的电力被中断,其状态也是确定的。在一个实施例中,nvm设备可以包括块可寻址存储器设备,例如,nand技术,或者更具体地,多阈值级nand闪速存储器(例如,单级单元(“slc”)、多级单元(“mlc”)、四级单元(“qlc”)、三级单元(“tlc”)或某种其他nand)。nvm设备还可以包括字节可寻址的就地写入三维交叉点存储器设备,或其他字节可寻址的就地写入nvm设备(也被称为持久性存储器),例如,单级或多级相变存储器(pcm)或具有开关的相变存储器(pcms)、使用硫族相变材料(例如,硫族玻璃)的nvm设备、电阻式存储器(包括金属氧化物基、氧空位基和导电桥随机存取存储器(cb-ram))、纳米线存储器、铁电随机存取存储器(feram、fram)、结合忆阻器技术的磁阻随机存取存储器(mram)、自旋移矩(stt)-mram、基于自旋电子磁结存储器的设备、基于磁性隧道结(mtj)的设备、基于dw(畴壁)和sot(自旋轨道转移)的设备、基于晶闸管的存储器设备或上述存储器中的任何存储器的组合或其他存储器。
67.电源(未描绘)向系统400的组件提供电力。更具体地,电源典型地与系统400中的一个或多个电源供应接合,以向系统400的组件提供电力。在一个示例中,电源供应包括用于插入壁式插座的ac到dc(交流电到直流电)适配器。这样的ac电力可以是可再生能源(例如,太阳能)电源。在一个示例中,电源包括dc电源,例如,外部ac到dc转换器。在一个示例中,电源或电源供应包括无线充电硬件,以经由与充电场的接近度来充电。在一个示例中,电源可以包括内部电池、交流电供应、基于运动的电源供应、太阳能电源供应或燃料电池源。
68.在示例中,系统400可以被实现为分解式计算系统。例如,系统1300可以利用处理器、存储器、存储装置、网络接口和其他组件的互连计算托架来实现。可以使用高速互连,例如,pcie、以太网或光学互连(或其组合)。例如,托架可以根据由开放计算项目(ocp)或其他分解式计算工作颁布的任何规范进行设计,其努力将主架构计算机组件模块化为机架可插拔组件(例如,机架可插拔处理组件、机架可插拔存储器组件、机架可插拔存储组件、机架可插拔加速器组件等)。
69.图5描绘了数据中心的示例。各种实施例可以在图5的数据中心中使用或与图5的数据中心一起使用。如图5中示出的,数据中心500可以包括光学结构512。光学结构512通常可以包括光学信令介质(例如,光缆)和光学交换基础设施的组合,数据中心500中的任何特定托架可以经由其向数据中心500的其他托架发送信号(以及从其他托架接收信号)。然而,可以使用结构512发送光学、无线和/或电信号。光学结构512提供给任何给定托架的信令连接性可以包括到同一机架中的其他托架和其他机架中的托架的连接性。数据中心500包括四个机架502a至502d,并且机架502a至502d容纳相应的托架对504a-1和504a-2、504b-1和504b-2、504c-1和504c-2以及504d-1和504d-2。因此,在该示例中,数据中心500总共包括八个托架。光学结构512可以提供与其他七个托架中的一个或多个的托架信令连接性。例如,经由光学结构512,机架502a中的托架504a-1可以拥有与机架502a中的托架504a-2以及分布在数据中心500的其他机架502b、502c和502d之间的其他六个托架504b-1、504b-2、504c-1、504c-2、504d-1和504d-2的信令连接性。实施例不限于该示例。例如,结构512可以提供光学和/或电信令。
70.图6描绘了环境600,该环境600包括多个计算机架602,每个计算机架包括机架顶部(tor)交换机604、吊舱(pod)管理器606和多个池化系统抽屉。通常,池化系统抽屉可以包括池化计算抽屉和池化存储抽屉,以例如实现分解式计算系统。可选地,池化系统抽屉还可以包括池化存储器抽屉和池化输入/输出(i/o)抽屉。在所示的实施例中,池化系统抽屉包括池化计算抽屉608和atom
tm
池化计算抽屉610、池化存储抽屉612、池化存储器抽屉614和池化i/o抽屉616。池化系统抽屉中的每一个经由高速链路618(例如,40千兆位/秒(gb/s)或100gb/s以太网链路或100+gb/s硅光子(siph)光学链路)连接到tor交换机604。在一个实施例中,高速链路618包括800gb/s siph光学链路。
71.再次强调,抽屉可以根据由开放计算项目(ocp)或其他分解式计算工作颁布的任何规范进行设计,其努力将主架构计算机组件模块化为机架可插拔组件(例如,机架可插拔处理组件、机架可插拔存储器组件、机架可插拔存储组件、机架可插拔加速器组件等)。
72.多个计算机架600可以经由其tor交换机604互连(例如,互连到吊舱级交换机或数据中心交换机),如由到网络620的连接所示的。在一些实施例中,经由(多个)吊舱管理器606将计算机架602的组作为单独的吊舱进行管理。在一些实施例中,单个吊舱管理器用于管理吊舱中的所有机架。可替代地,分布式吊舱管理器可以用于吊舱管理操作。
73.rsd环境600还包括用于管理rsd环境的各种方面的管理接口622。这包括管理机架配置,其中对应的参数被存储为机架配置数据624。
74.本文的实施例可以在各种类型的计算、智能电话、平板计算机、个人计算机和联网装备(例如,交换机、路由器、机架和刀片式服务器(例如,在数据中心和/或服务器场环境中所采用的那些))中实现。数据中心和服务器场中使用的服务器包括阵列式服务器配置,例
如,基于机架的服务器或刀片式服务器。这些服务器经由各种网络配置进行通信互连,例如,将多组服务器划分为局域网(lan),该lan具有lan之间的适当的交换和路由设施,以形成私有的内联网。例如,云托管设施可以典型地采用具有大量服务器的大型数据中心。刀片包括单独的计算平台,该计算平台被配置为执行服务器类型的功能,即,“卡上服务器”。因此,每个刀片包括常规的服务器所共有的组件,包括提供用于耦合适当的集成电路(ic)和安装到主印刷电路板(主板)上的其他组件的内部布线(即,总线)的主印刷电路板(主板)。
75.各种示例可以使用硬件元件、软件元件或者两者的组合来实现。在一些示例中,硬件元件可以包括设备、组件、处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、asic、pld、dsp、fpga、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等等。在一些示例中,软件元件可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、api、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定示例是否是使用硬件元件和/或软件元件实现的可以根据任何数量的因素(例如,期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和根据给定的实现方式的期望的其他设计或者性能约束)而变化。要注意的是,硬件、固件和/或软件元件可以在本文中被统称为或者单独称为“模块”、“逻辑”、“电路”或“电路装置”。
76.一些示例可以使用制品或者至少一种计算机可读介质来实现或被实现为制品或者至少一种计算机可读介质。计算机可读介质可以包括用于存储逻辑的非暂时性存储介质。在一些示例中,非暂时性存储介质可以包括能够存储电子数据的一种或者多种类型的计算机可读存储介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写入或可重写存储器等等。在一些示例中,逻辑可以包括各种软件元件,例如,软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、api、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。
77.根据一些示例,计算机可读介质可以包括用于存储或者维持指令的非暂时性存储介质,该指令在由机器、计算设备或者系统执行时使得该机器、计算设备或者系统执行根据所描述的示例的方法和/或操作。指令可以包括任何合适类型的代码,例如,源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等。指令可以根据预定义的计算机语言、方式或者句法来实现,以用于指示机器、计算设备或者系统执行特定功能。指令可以使用任何适合的高级、低级、面向对象、视觉、编译和/或解释编程语言来实现。
78.至少一个示例的一个或多个方面可以由存储在至少一种机器可读介质上的表示处理器内的各种逻辑的代表性指令实现,该指令在由机器、计算设备或者系统读取时使得该机器、计算设备或者系统制造用于执行本文描述的技术的逻辑。被称为“ip核心”的这样的表示可以被存储在有形的机器可读介质上并且被供应到各种客户或者制造设施以加载到实际上制造逻辑或者处理器的制造机器中。
79.短语“一个示例”或“示例”的出现不一定都指代相同的示例或实施例。本文描述的任何方面可以与本文所描述的任何其他方面或类似的方面组合,而不管这些方面是否是关于相同的附图或元素来描述的。附图中描绘的块功能划分、省略或者包含并不暗指用于实
现这些功能的硬件组件、电路、软件和/或元件将一定在实施例中被划分、省略或者包含。
80.一些示例可以使用表述“耦合”和“连接”以及其衍生词来描述。这些术语不一定旨在是彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可以指示两个或者更多个元件彼此直接物理或者电接触。然而,术语“耦合”也可以意味着两个或者更多个元件彼此不直接接触,但是仍然协同操作或者与彼此交互。
81.本文中的术语“第一”、“第二”等并不表示任何次序、数量或重要性,而是用于将一个元素与另一元素区分开。本文中的术语“一(a)”和“一个(an)”不表示对数量的限制,而是表示所引用的项目中的至少一个的存在。本文中参考信号使用的术语“使
……
生效”表示其中信号为活动的信号的状态,并且可以通过将任何逻辑电平(逻辑0或逻辑1)施加到信号来实现。术语“跟随”或“之后”可以指代紧跟或跟随在某种其他事件或多个事件之后。步骤的其他序列也可以根据替代实施例来执行。此外,可以取决于特定的应用来添加或移除附加的步骤。可以使用改变的任何组合,并且受益于本公开的本领域的普通技术人员将理解其许多变型、修改和替代实施例。
82.除非另有明确说明,否则诸如短语“x,y或z中的至少一个”之类的析取语言在上下文内被理解为通常用于表示项目、术语等,并且可以是x,y或z或者其任何组合(例如,x,y和/或z)。因此,这种析取语言通常不旨在并且不应该暗示某些实施例要求存在x中的至少一个、y中的至少一个或z中的至少一个。另外地,除非另有明确说明,否则诸如短语“x,y和z中的至少一个”之类的连接词语言也应该被理解为表示x,y,z或其任何组合,包括“x,y和/或z”。

技术特征:


1.一种存储器芯片,包括:a)沿所述存储器芯片的存储单元阵列的行的存储单元,所述存储单元用于存储所述行的激活的计数值和用于保护所述计数值的纠错码(ecc)信息;b)ecc读取逻辑电路装置,所述ecc读取逻辑电路装置用于纠正所述计数值中的错误;c)比较器,所述比较器用于将所述计数值与阈值进行比较;d)用于如果所述计数值被认为尚未达到所述阈值,则递增所述计数值的电路装置,并且ecc写入逻辑电路装置用于确定针对递增后的计数值的新ecc信息,并且写入驱动器电路装置用于将所述递增后的计数值和所述新ecc信息写入所述存储单元中;以及e)用于如果所述计数值被认为已经达到所述阈值,则使所述行被刷新的电路装置。2.根据权利要求1所述的存储器芯片,其中,所述ecc读取逻辑电路装置能够检测所述计数值中的多于一个错误但不能够纠正所述计数值。3.根据权利要求2所述的存储器芯片,其中,所述存储器芯片包括:用于因为所述多于一个错误不能被纠正而自动地使所述行被刷新的逻辑电路装置。4.根据权利要求3所述的存储器芯片,其中,所述比较器能够确定所述计数值是否大于所述阈值。5.根据权利要求2所述的存储器芯片,其中,所述存储器芯片不响应于所述计数值未被纠正而刷新所述行。6.根据权利要求1和2所述的存储器芯片,其中,所述存储器芯片包括:模式寄存器空间,所述模式寄存器空间用于设置以下各项中的至少一个:由所述比较器执行的比较的类型;对所述计数值中无法纠正的错误的响应。7.根据权利要求1所述的存储器芯片,其中,所述存储器控制器包括:用于由于所述行已经出于除了所述计数值已经被认为达到所述阈值之外的原因被刷新,而重置所述计数值的逻辑电路装置。8.根据权利要求7所述的存储器芯片,其中,所述阈值是至少部分地基于在所述行出于除了所述计数值已经被认为达到所述阈值之外的原因被刷新之后,所述行的可能的受害行何时将被刷新的。9.根据权利要求1所述的存储器芯片,其中,所述存储器控制器包括:用于将所述计数值重置为不同值的逻辑电路装置。10.根据权利要求1所述的存储器芯片,其中,所述阈值仅针对具有距所述行的特定距离的所述行的可能的受害行,并且不针对具有距所述行的不同特定距离的所述行的其他可能的受害行。11.根据权利要求1所述的存储器芯片,其中,所述计数值以格雷码表示。12.根据权利要求1所述的存储器芯片,其中,所述存储器芯片的tras是基于所述存储器芯片的温度而变化的。13.一种计算系统,包括:多个处理核心;外围控制器;存储器控制器,所述存储器控制器耦合到所述多个处理核心;
存储器模块,所述存储器模块耦合到所述存储器控制器,所述存储器模块包括存储器芯片,所述存储器芯片包括:a)沿所述存储器芯片的存储单元阵列的行的存储单元,所述存储单元用于存储所述行的激活的计数值和用于保护所述计数值的纠错码(ecc)信息;b)ecc读取逻辑电路装置,所述ecc读取逻辑电路装置用于纠正所述计数值中的错误;c)比较器,所述比较器用于将所述计数值与阈值进行比较;d)用于如果所述计数值被认为尚未达到所述阈值,则递增所述计数值的电路装置,并且ecc写入逻辑电路装置用于确定针对递增后的计数值的新ecc信息,并且写入驱动器电路装置用于将所述递增后的计数值和所述新ecc信息写入所述存储单元中;e)用于如果所述计数值被认为已经达到所述阈值,则使所述行被刷新的电路装置。14.根据权利要求13所述的存储器芯片,其中,所述ecc读取逻辑电路装置能够检测所述计数值中的多于一个错误但不能够纠正所述计数值。15.根据权利要求14所述的存储器芯片,其中,所述存储器芯片包括:用于因为所述多于一个错误不能被纠正而自动地使所述行被刷新的逻辑电路装置。16.根据权利要求14所述的存储器芯片,其中,所述存储器芯片不响应于所述计数值未被纠正而刷新所述行。17.根据权利要求13所述的存储器芯片,其中,所述存储器芯片包括:模式寄存器空间,所述模式寄存器空间用于设置以下各项中的至少一个:由所述比较器执行的比较的类型;对所述计数值中无法纠正的错误的响应。18.根据权利要求13所述的存储器芯片,其中,所述存储器控制器包括:用于由于所述行已经出于除了所述计数值已经被认为达到所述阈值之外的原因被刷新,而重置所述计数值的逻辑电路装置。19.根据权利要求1所述的存储器芯片,其中,所述阈值仅针对具有距所述行的特定距离的所述行的可能的受害行,并且不针对具有距所述行的不同特定距离的所述行的其他可能的受害行。20.一种存储器芯片,包括:a)沿所述存储器芯片的存储单元阵列的行的存储单元,所述存储单元用于存储所述行的激活的计数值,所述计数值以格雷码表示;b)比较器,所述比较器用于将所述计数值与阈值进行比较;以及,c)用于如果所述计数值被认为尚未达到所述阈值,则递增所述计数值的电路装置,并且写入驱动器电路装置用于将递增后的计数值写入所述存储单元中;以及,d)用于如果所述计数值被认为已经达到所述阈值,则使所述行被刷新的电路装置。

技术总结


描述了一种存储器芯片。该存储器芯片包括沿存储器芯片的存储单元阵列的行的存储单元,该存储单元用于存储行的激活的计数值和用于保护计数值的纠错码(ECC)信息。存储器芯片包括ECC读取逻辑电路装置,该ECC读取逻辑电路装置用于纠正计数值中的错误。存储器芯片包括比较器,该比较器用于将计数值与阈值进行比较。存储器芯片包括用于如果计数值被认为尚未达到阈值,则递增计数值的电路装置,并且ECC写入逻辑电路装置用于确定针对递增后的计数值的新ECC信息,并且写入驱动器电路装置用于将递增后的计数值和新ECC信息写入存储单元中。存储器芯片包括用于如果计数值被认为已经达到阈值,则使行被刷新的电路装置。则使行被刷新的电路装置。则使行被刷新的电路装置。


技术研发人员:

B

受保护的技术使用者:

英特尔公司

技术研发日:

2022.04.28

技术公布日:

2022/12/5


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-39694-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2022-12-15 14:40:49

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论