多级单元存储器的制造方法

文档序号:6764630阅读:148来源:国知局
多级单元存储器的制造方法
【专利摘要】一种多级单元存储器,包括:存储器单元,其存储两个或更多位的信息;感测电路,其耦合到存储器单元;以及行缓冲器结构,其包括分页缓冲器,所述分页缓冲器具有第一页缓冲器和第二页缓冲器。感测电路进行操作以读自和写至存储器设备,将第一位置于第一页缓冲器和第二页缓冲器之一中,并且将第二位置于第一页缓冲器和第二页缓冲器之一中。
【专利说明】
多级单元存储器

【背景技术】
[0001]计算机存储器设备包括存储器单元的阵列以及外围输入和输出(I/O)电路。在阵列中,存储器单元被布置成行和列。每行中的所有存储器单元连接到公共字线。每列中的所有存储器单元连接到公共位线(bit line)。通过使用字线同时访问行中的所有存储器单元并且使用位线将数据传输到存储器单元和从存储器单元传输数据来增大数据吞吐量。
[0002]在I/O侧上,来自位线的数据信号被感测放大器检测到并且锁存(存储)在已知为行缓冲器的外围电路中。一旦行的数据被置于行缓冲器中,对相同行的随后的请求就可以通过访问行缓冲器中的数据而被服务。这样的访问已知为行缓冲器命中(hit),并且能够在没有与存储器单元阵列交互的情况下以外围电路的等待时间被服务。为了服务针对另一行的访问请求,必须从存储器单元阵列访问数据。该访问请求(其将导致行缓冲器的内容被替换)已知为行缓冲器未命中(miss),并且与行缓冲器命中相比,它将招致更长的等待时间和更高的能量消耗。
[0003]相变存储器(PCM)是非易失性随机存取存储器技术,其可以取代动态随机存取存储器或结合其而被使用。PCM技术的一个特定实现通过变化已知为硫族化物的材料的电阻而存储信息。硫族化物是指代周期表的VI族元素的术语。PCM利用硫族化物的性能,其中由通过硫族化物的电流的通道所产生的热使该材料在两个状态(晶质和非晶)之间切换。在不存在电功率的情况下,硫族化物的状态被保持。此外,硫族化物可以被操纵成(例如两个)附加的不同状态,实际上增大(例如加倍)基于硫族化物的存储器的存储容量。

【专利附图】

【附图说明】
[0004]详细描述将参考以下附图,其中同样的标号指代同样的项,并且其中:
图1图示了并入分页缓冲的多级存储器的实施例;
图2更详细地图示了图1的多级存储器的一方面;
图3图示了并入分页缓冲的行缓冲器的实施例;
图4和5图示了用于当实现APB时读自和写至存储器单元的过程的实施例;并且图6-10图示了当实现关联页缓冲时读和写过程的可替换实施例。

【具体实施方式】
[0005]存储器技术通过产生物理状态中可辨别的改变来表示不同的符号而使得能够存储信息。传统地,存储器单元各自存储一位(bit)信息。更近来,多级单元(MLC)存储器设备已经被开发并且每存储器单元可以存储两个或更多位。通过操纵参数来表示多个符号而实现MLC存储器。在存储器单元中具有两位的MLC存储器设备中,“ 11”、“ 01”、“ 1 ”、和“ 00 ”编码方案是可能的。
[0006]相变存储器(PCM)是非易失性固态存储器,其可以满足对于随机存取存储器以及大容量数据存储的需要。PCM使用诸如硫族化物玻璃之类的相变材料的独特性能,其可以在两个状态(即晶质状态和非晶状态)之间切换。在非晶状态中,相变材料具有高电阻。在晶质状态中,相变材料具有低电阻。由于在晶质和非晶状态中相变材料具有不同的电阻率,该物理属性可以用于存储数据。具有高电阻的非晶状态可以用于表示逻辑零,而晶质、低电阻状态可以用于表示逻辑一。
[0007]相变存储器单元可以被编程以包括多于两个的不同电阻级别。PCM存储器单元可以例如被编程以具有跨越例如从1k欧姆至1M欧姆的范围的四个不同级别的电阻。1k欧姆的低电阻级别可以对应于两个逻辑位11,10k欧姆的下一电阻级别可以表示两个逻辑位10,例如IM欧姆的下一较高电阻级别可以表示01的逻辑位组合,并且1M欧姆的最高电阻级别可以表示逻辑位00。因此,PCM存储器单元可以形成多级相变存储器单元,其具有多个电阻级别以在单个存储器单元中存储多于一位。多级相变存储器单元用于在一个单元中存储多位的能力增大了 PCM的有效存储密度。电阻级别或状态中的每一个可以具有在读操作期间可以测量的不同物理属性。
[0008]因而,MLC PCM与SLC (单级单元,能够每单元存储一位)PCRAM相比,提供更高的密度和每位的更低成本。然而,MLC PCM也具有缺点,最显著的是对于涉及读自和写至存储器的某些操作的长等待时间、能量消耗和耐久性。然而,等待时间问题可以被改善。
[0009]诸如RAM之类的存储器的传统观点是具有固定访问等待时间的平的单片结构。为了降低访问等待时间,存储器被拆分成多个相等大小的单元,被称作存储体(bank)。例如,一些存储器芯片可以具有8至16个存储体。每个存储体存储数以万计的页。
[0010]存储器存储体一次只可以服务一个请求。对相同存储体的任何其它访问必须等待先前的访问完成。每个存储器存储体可以具有一个行缓冲器,其是提供对存储体处开放的页的访问的结构。在存储器位置可以读之前,包含该存储器位置的整个页开放并且被读进行缓冲器中。该页可以停留在行缓冲器中直到该页被显式关闭。如果对开放页的访问到达存储体处,则从行缓冲器可以立即服务该访问。这种场景被称作行缓冲器命中(典型地少于十个处理器周期)。然而,如果对另一行的访问到达,则在可以服务该请求之前,当前行必须被关闭并且新的行必须被开放。这称作行缓冲器冲突或者行缓冲器未命中。行缓冲器冲突在一些存储器中招致相当大的延迟(例如,70+处理器周期)。
[0011]通过增大行缓冲器中的空间局部性,可以减少行缓冲器冲突,诸如通过使接连的存储器访问尽可能靠近彼此。这经常意味着将很可能在接连的存储器位置中被一起访问的数据打包。
[0012]本文公开的是通过以对应于存储器单元中不同位的方式去耦行缓冲器来改善存储器性能的方法和架构。该去耦有效地增加存储器中可用的行缓冲器而无需附加的锁存器。去耦可以提供在管理最低有效位(LSB)和最高有效位(MSB)行缓冲器中的更多的灵活性,其在耦合的位方案中是不可能的。去耦存储器位还可以加速对MLC存储器的读和写,并且降低存储器控制器处的排队延迟和平均访问时间。
[0013]在本文中公开的、涉及持有两位信息的存储器单元的位去耦方案中,行中每个存储器单元的两位被去耦,并且行缓冲器被配置成提供两个对应的页缓冲器。在该去耦的位方案中,多级单元存储器的行中的两页的真实物理内容都可以在任何读操作时被读取并且返回。使位去耦可以不需要任何附加的裸片区域并且可以在对控制信号和总线组织的最小修改的情况下被实现。访问主存储器是两步骤过程:首先存储体的行解码器激活页并且将页存储在行缓冲器中;其次,列解码器选择行的子集并且将行子集传递到I/o感测放大器。利用去耦,在激活过程期间,来自地址的由存储器控制器解码的附加控制信号通知I/o感测放大器是检索LSB还是MSB。该过程的开销是可忽略的,因为单个信号可以被整行感测放大器共享。同样,由于每个单元只贡献一位,所以页变成一半大小,但是数量上两倍。这具有积极的副作用:减少过度取(overfetch)并且改进能量效率。为了从行缓冲器中选择缓存线,由于所读的位的数目在去耦和耦合的位方案二者中都是相同的,本文公开的去耦方案重组复用器以使得对于每个传递只选择MSB或LSB。
[0014]在某些多级存储器中,每个感测电路应当具有与单元中所存储的位的数目一样多的锁存器以如实地读或存储所有位。在这些设计中,对单元的读操作将检索所有的值并且将值存储在对应于该单元的锁存器中。类似地,当存在行缓冲器冲突时,所有锁存器立刻回写所述值。
[0015]本文公开的方法和架构放宽该约束以提供在处置行缓冲器中的更多灵活性。对应于一列存储器单元的锁存器于是可以存储来自不同单元的值。换言之,连接到位线的每个锁存器可以存储不同的页,从而有效地增加行缓冲器的数目并且减少行缓冲器冲突。
[0016]为了解决存储器控制器处的争用或者排队延迟,所公开的系统和方法使用全异(Disparate)页缓冲(DPB)和关联页缓冲(APB)。全异页缓冲(DPB)消除这样的约束:只有来自相同物理行的逻辑页可以占据行缓冲器。换言之,DPB允许行缓冲器持有来自不同物理行的逻辑页。
[0017]关联页缓冲(APB)消除这样的约束:一个页缓冲器被硬连线以仅仅持有LSB位,而另一页缓冲器被硬连线以仅仅持有MSB位。因而,APB允许两个页缓冲器中的任一个持有行的LSB位或MSB位。当在行缓冲器未命中之后替换页缓冲器的内容时,APB使得有可能逐出最近最少使用的页缓冲器(出自行缓冲器中的两个页缓冲器),而不是必须逐出对应于LSB/MSB区别的硬连线的页缓冲器。APB还使得有可能将来自不同行的两个LSB位的页持有在行缓冲器中。然而,两个MSB位的页不能被缓冲,这是因为将MSB位的页读进页缓冲器中使另一页缓冲器的内容无效。
[0018]支持去耦的存储器设备可以直接支持全异页缓冲。取决于感测电路的实现方式,关联页缓冲可以使用重配置的位线复用器,以使得不存在关于在行缓冲器锁存器中只存储LSB或MSB位的限制。主要的复杂性可能是在存储器控制器处,其追踪行缓冲器内的不同子页。另外,在调度回写时,存储器控制器可以确定LSB和MSB缓冲器二者都存储来自单元的相同行的值。如果不是这样,则存储器控制器可以显式调度读请求。
[0019]图1是其中实现了位去耦的多级单元存储器的实施例的示意图。图1的存储器被组织成行和列。存储器请求指定其数据的地址,这通过指示行索引以及从其开始访问数据的行内列的偏移。在读请求时,所指定行的数据内容被感测放大器读取并且被锁存在已知为行缓冲器的外围电路中。于是通过将来自行缓冲器的数据传输到输出端口来服务读请求。在写请求的情况中,来自输入端口的传入的数据被写至行缓冲器。一旦特定行的数据内容被锁存在行缓冲器中,对相同行中不同列的随后的存储器请求可以快速地从行缓冲器被服务。这样的存储器访问被称为行缓冲器命中,而如果不同的行被请求并且行缓冲器的内容需要被改变,则该存储器访问被称为行缓冲器未命中。对于行缓冲器命中,只使用外围电路,并且没有必要访问底层存储器单元阵列。行缓冲器局部化(RBL)是指在相同行被缓冲时重用它,因而能够高效地服务存储器请求而不必替换行缓冲器的内容。
[0020]在图1中,所图示的存储器是多级相变存储器(MLC-PCM)。然而,MLC-PCM只是为了说明性目的而示出的示例,并且其它存储器技术可以实现本文公开的去耦的位方案。在图1的存储器100中,位去耦涉及使两位MLC-PCM单元的两位分离或去耦。然而,MLC-PCM存储器单元可以持有多于两位的信息。如以下将描述的,这样的位去耦提供在管理LSB和MSB行缓冲器中的灵活性,其在耦合的位方案中是不可能的。
[0021]在图1中,存储器100包括存储器单元110的4X4阵列101。尽管在图1中图示了 4X4阵列,但是存储器100可以具有存储器单元的更大阵列。与存储器单元110中的每一个相关联的是选择设备120和存储器元件130。
[0022]存储器100包括列线141-144和行线151-154来在写或读操作期间选择存储器单元的特定行。列线141-144和行线151-154还可以称作地址线,因为这些线可以用于在编程或读取期间寻址存储器单元110。列线141-144还可以称作位线并且行线151-154还可以称作字线。
[0023]存储器单元110耦合到I/O电路160,并且来自位线141-144的数据信号被感测放大器162检测并且锁存在行缓冲器(未示出)中。存储器控制器165控制存储器阵列101的读和写操作。
[0024]读取MLC-PCM的单元涉及使用(集成)模拟至数字变换器来将MLC PCM单元的电阻量化成离散(2位)符号值。可以通过测量对于预充电的位线的电压下降所花费的时钟周期的数目来确定符号值,并且时钟周期的数目取决于电荷必须流过的单元电阻的大小。因此,在存储器100中,读等待时间被最高电阻(其允许电荷以最低速率流动)情况下检测单元状态所花费的时间所界限。对于N位MLC-PCM,该时间是2n时钟周期或更多。
[0025]然而,关于单元内容的一些信息可以在完成读操作之前被辨别。例如,在开始读操作之后的(2N)/2周期的点处,确定MSB是可能的:在“11”、“10”、“01”、“00”的符号编码方案下,如果通过第(2N)/2周期确定存储器单元状态,则MSB是“I”。否则,MSB是“0”,而不顾LSB如何。
[0026]图2图示了图1的存储器的一方面,其示出两个锁存器,锁存器用于缓冲来自存储器100的单元110的两位,具体是LSB和MSB。通过去耦单元的LSB和MSB并且将去耦的位映射到分离的逻辑页,与图1的存储器阵列101相关联的行缓冲器可以被看作两个页缓冲器,如将在图3中示出的。在图2中,用于存储器阵列101中每个单元的两个锁存器之一被群组在一起以形成页缓冲器,在示例中,为LSB页缓冲器。用于每个单元的其它锁存器被群组在一起以形成另一页缓冲器,其在相同示例中是MSB页缓冲器。因而,如图2中所示,用于存储器单元110的位线141连接到感测放大器162以提供可以锁存在MSB锁存器或LSB锁存器中的信号。
[0027]图3示出如应用于图1的存储器100的分页缓冲的示意性表示。在图3中,位线141-145输出数据,通过复用器166,到行缓冲器200,其被划分成页缓冲器(0)210和页缓冲器(I) 220。也就是说,用于存储器单元110的两个锁存器之一与来自其它存储器单元110的对应锁存器群组在一起以形成页缓冲器210,并且用于每个单元110的其它锁存器被群组在一起以形成页缓冲器220。更具体地,在所图示的分页缓冲方案中,沿LSB/MSB维度划分行缓冲器200,并且页缓冲器210持有MSB并且页缓冲器220持有LSB。行缓冲器200的该组织相比于使用单个大的行缓冲器,呈现对于增加的行缓冲器命中率(RBHR-是行缓冲器命中的存储器访问的分数)的机会,从而实现更高的性能和能量效率。该机会通过使用之前提到的DPB和APB而被增强。
[0028]每个位线141-145包括感测放大器162,其接收参考电压Vref和位线电压Vbl。感测放大器162连接到计数器164,其接收时钟信号、时钟。当发生读操作时,时钟倒数直到位线电压和参考电压相等为止。当位线电压减小(或增大)到参考电压的值时,相关联的存储器单元输出其符号值,如由时钟信号所确定的。如由时钟所测量的时间量指示单元的电阻级别或符号值。符号值被持有在行缓冲器200中,并且更具体地,MSB可以被持有在页缓冲器O中并且LSB在页缓冲器I中。可替换地,LSB可以被持有在页缓冲器O中并且MSB在页缓冲器I中。在图3中,MSB被持有在页缓冲器I中。
[0029]图3中还示出存储器阵列的附加硬件组件,其可以被存储器控制器165用来访问存储器单元,并且其构成用以从行缓冲器200读出数据的机制的示例。附加硬件组件包括复用器172,其读出页缓冲器O和页缓冲器I的锁存器O和锁存器I值。复用器172从存储器控制器165接收页缓冲器选择信号192,其确定锁存器值中的哪一个将输出到I/O电路182。在去往行缓冲器200的输入端处的复用器166也接收页缓冲器选择信号192,其确定来自存储器单元110的值要存储到锁存器210、220中的哪一个中。一次只发生一个操作:将值存储在行缓冲器200中或者从行缓冲器200读取值。因而,取决于操作,要么读自行缓冲器200要么将值存储在行缓冲器200中,相同的页缓冲器选择信号192确定值的流。
[0030]全异页缓冲(DPB)消除这样的约束:只有来自相同物理行的逻辑页可以占据行缓冲器。换言之,DPB允许行缓冲器200持有来自不同物理行的逻辑页(例如,MSB页或LSB页)。利用所公开的架构和方法,虽然感测LSB可以通过使用单个锁存器(例如,锁存器O)来执行,但是感测MSB使用两个锁存器,因为持有LSB的锁存器必须倒数存储器单元的不同符号(“ U”、“ 1辽”、“01”和“0辽”)以使得持有MSB的锁存器达到符号的MSB值(“11 ”、“10”、“立I”和“卯”)。因此,LSB可以被读到页缓冲器210中,而不影响页缓冲器220的内容。将MSB读到页缓冲器220中可能使得页缓冲器210的内容成为无效的。对该发生的解释开始于以下事实:确定MSB比LSB需要更少时间。也就是说,为了读取单元的内容,感测放大器162比较位线的信号电平与参考电压,如图2中所示,并且计数器测量对于信号重叠所花费的时间,如在图2的示例中可以看到的,其发生于时间t3处,并且其产生01的符号值。MSB可以被更快速地读取,因为计数器以二进制格式倒数(参见图2)。例如在tl处,值是1-1,t2,值是1-0,t3,值是0-1,并且t4,值是0-0。如果倒数停止于中途或停止在中途之前,第一位(来自1-1或1-0)是I。同样,如果倒数没有中途停止,那么(来自0-1或0-0)第一位必须是O。仅仅读取MSB使LSB无效的原因是因为当MSB被读取时,当第一位(即MSB )被确定时,倒数停止。然后,另一位(即LSB)不予处理。因而,当读取MSB时,在倒数中途,MSB已知,进一步的计数不是必要的,并且倒数停止。
[0031]当页缓冲器210和220中的两页来自相同行(例如,二者都来自行151)时,可能发生对该无效约束的例外。在图1的存储器100中,存储器控制器165追踪哪些行被读到行缓冲器200中,并且因而,存储器控制器165将“知道”何时页缓冲器210和220中的MSB页和LSB页来自存储器100的相同物理行。当将MSB位读到页缓冲器220中将使页缓冲器210的内容无效时,存储器控制器165可以执行下述附加操作。不管这些附加操作的复杂性如何,能够缓冲来自存储器100的不同部分的两页、甚至是在上述失效约束的情况下可以是有益的,因为减少了在DPB情况下发生的行缓冲器冲突。
[0032]关联页缓冲(APB)消除这样的约束:一个页缓冲器被硬连线成只持有LSB,而另一页缓冲器被硬连线成只持有MSB。因而,APB允许两个页缓冲器210、220中的任一个持有行的LSB或MSB。当在行缓冲器未命中之后替换页缓冲器的内容时,APB使得有可能逐出最近最少使用的页缓冲器(出自行缓冲器中的两个页缓冲器),而不是必须逐出对应于LSB/MSB区别的硬连线的页缓冲器。例如,如果页缓冲器210 (LSB页缓冲器)是最近最少使用的页缓冲器,并且如果存储器控制器165用信号通知读取MSB,那么在APB下,存储器控制器165将清除页缓冲器210的内容而不是页缓冲器220的内容。在该示例中,行缓冲器200将持有两个LSB页。也就是说,APB使得有可能将来自不同行的两个LSB页持有在行缓冲器200中。然而,不能缓冲两个MSB页,因为将MSB页读到页缓冲器中,如以上关于DPB所描述的那样,使另一页缓冲器的内容无效。
[0033]支持去耦的存储器设备、诸如存储器100与其存储器控制器165可以直接支持全异页缓冲而没有任何硬件附加。然而,取决于感测电路的实现方式,关联页缓冲可以使用重配置的位线复用器,诸如图3中的复用器166、172,以使得不存在关于在行缓冲器锁存器中只存储LSB或MSB的限制。
[0034]然而,全异/关联页缓冲可能需要对存储器控制器165处的读和写请求的改变,所述存储器控制器165追踪行缓冲器200内的不同页(例如MSB、LSB)的内容。例如,当调度回写时,存储器控制器165可以确定LSB和MSB缓冲器210和220 二者是否都存储了来自相同存储器行的值。如果行缓冲器200没有存储来自相同存储器行的LSB和MSB,则存储器控制器165可以显式地调度读请求。然而,当缓冲器210和220之一持有脏位时,读和写过程变得复杂。所述复杂部分地起源于以下事实:如关于图2所指出的,只需要一个页缓冲器来读LSB,但是需要两个页缓冲器来读MSB。为了更新存储器行的内容(回写),行缓冲器200必须持有来自相同行的MSB和LSB 二者。如果在服务写请求的时候该条件不存在,则如以上所指出的那样存储器控制器165可以显式地调度从存储器行的读。然而,从存储器行对位的读取可能覆写行缓冲器200中的脏位。为了避免该相关问题和其它相关问题,图4和5图示了用于当实现APB时读自和写至存储器单元的过程的实施例。图4和5的实施例通过避免其中写或读可能非故意地覆写脏数据的情形而保证了数据完整性。具体地,图4和5中的实施例确保了当脏数据被带进行缓冲器中时相同行的匹配的LSB和MSB数据总是存在于行缓冲器中。图6-10图示了当实现APB时读和写过程的可替换实施例。图6-10的实施例还避免了其中非意图的对脏数据的覆写可能发生的情形。图6-10的实施例确保了当脏LSB页数据被带进行缓冲器中时相同行的匹配的LSB和MSB数据总是存在于行缓冲器中。
[0035]在图4-10中,通过使用图1的存储器阵列和图3的分页缓冲器布置而图示了写和读请求。为了易于图示,在图4-10的示例中,初始读和写被示出为应用于存储器行151。
[0036]图4图示了在其中实现了 APB的图1的存储器系统100中的写请求的示例。在图4中,当服务MSB (或LSB)写请求时,方法400开始。如果MSB被持有在行缓冲器200中,则行缓冲器命中发生,并且如果MSB不在行缓冲器200中,则行缓冲器未命中发生。参见块410。如果在块410中,没有发生行缓冲器命中,则方法400移动至块415,并且存储器控制器165确定现有行缓冲器内容是否是脏的。如果现有行缓冲器内容不是脏的,则方法400移动至块425。如果行缓冲器内容是脏的,则意味着行缓冲器200持有来自不同于存储器行151的行的脏MSB,方法400移动至块420。在块420中,存储器控制器165指引行缓冲器200的内容被回写到适当的存储器行。在块420之后,方法400移动至块425。在块425中,行缓冲器200现在是空的,并且存储器控制器165指引从存储器行151的读。方法400然后移动至块440。
[0037]返回到块410,如果发生行缓冲器命中,则方法400移动至块430。在块430中,存储器控制器165确定行缓冲器200是否持有相同存储器行(例如存储器行151)的LSB和MSB。如果LSB和MSB来自行151,则方法400移动至块440。如果MSB和LSB来自不同的行,则方法400移动至块435。在块435中,存储器控制器165指引将行151的LSB读到行缓冲器200中,所述行缓冲器200如以上所指出的也读MSB。注意到,在块405中,如果代替于MSB写请求,LSB写请求被服务,则在块435中,存储器控制器165将会指引从行151读MSB。方法400然后移动至块440。在块440中,存储器控制器165指引将来自行缓冲器200的数据写到存储器行151。方法400然后移动至块445并且结束。
[0038]图5图示了其中实现了 APB的图1的存储器系统100中的读请求的示例。在图5中,方法450开始于具有MSB读请求的块455中。在块460中,存储器控制器165确定是否已经发生行缓冲器命中。如果发生行缓冲器未命中,则方法450移动至块465,并且存储器控制器165确定行缓冲器200中的现有位是否是脏的。如果不存在脏位,则方法450移动至块475。然而,如果在行缓冲器200中存在脏位,则方法450移动至块470并且行缓冲器200的内容被写至适当的存储器行。方法450然后移动至块475。在块475中,存储器控制器165指引从行151的MSB读。注意到,在块455中,如果代替于服务MSB读请求,LSB读请求被服务,则在块475中,行151的LSB将会被读到行缓冲器200中。在块475之后,方法450移动至块480。
[0039]返回到块460,如果发生行缓冲器命中,则方法450移动至块480。在块480中,从行缓冲器200发送所请求的数据。方法450然后结束,块485。
[0040]图6-10图示了当在具有图3的行缓冲器结构的图1的存储器100中实现了 APB时读和写过程的可替换实施例。在示例过程中,初始读和写请求被图示为应用于存储器行151。
[0041 ] 图6图示了 LSB写方法600,其开始于块605中,当在存储器控制器165上服务LSB写请求时。在块610中,存储器控制器165确定是否发生行缓冲器命中,其意味着页缓冲器210持有针对存储器行151的LSB。在块610中,如果不存在行缓冲器命中,则针对行151的LSB不被持有在页缓冲器210中。在该情况中,方法600移动至块615,并且存储器控制器165确定现有行缓冲器内容是否是脏的。如果现有行缓冲器内容不是脏的,那么行缓冲器200中的LSB和MSB可以被覆写而没有数据丢失。因此,方法600移动至块620,并且存储器控制器165指引行151的LSB和MSB被读到行缓冲器200中。然而,如果在块615中,现有行缓冲器内容是脏的,则方法600移动至块800,并且存储器控制器165指引行缓冲器200的内容被回写到存储器阵列100。图10图示了块800的回写过程。
[0042]返回到块610,如果在服务LSB写请求时存在行缓冲器命中,则方法600移动至块625,并且存储器控制器165确定行缓冲器200是否持有来自相同行的LSB和MSB (在示例中,来自存储器行151的LSB和MSB)。如果行缓冲器持有来自行151的LSB和MSB,则方法600移动至块635。然而,如果行缓冲器200不持有来自行151的LSB和MSB,则方法600移动至块630。在块630中,存储器控制器165指引将来自行151的MSB读到行缓冲器200中,并且更具体地到页缓冲器220中。在块630处理之后,方法600移动至块635。在块635中,存储器控制器将来自行151的LSB写到行缓冲器200中,并且具体地到页缓冲器210中。方法600然后移动至块640并且结束。
[0043]图7图示了示例LSB读过程。在图7中,LSB读方法650开始于块655中,当存储器控制器165服务LSB读请求以读取存储器行151中的LSB时。在块660中,存储器控制器165确定是否存在行缓冲器命中,意味着针对行151的LSB已经被持有在行缓冲器200中。不存在行缓冲器命中时,方法650移动至块670。在块670中,存储器控制器165确定行缓冲器200是否持有脏LSB。如果行缓冲器200不持有脏LSB,则方法650移动至块675。然而,如果行缓冲器200持有脏LSB,则方法650移动至块800,并且存储器控制器165指引回写过程,其在图10中详细示出。在块800之后,方法650移动至块675。在块675中,行151的LSB被读到行缓冲器200中。在块675之后,方法650移动至块680。
[0044]返回到块660,如果存在行缓冲器命中,则方法650移动至块680。在块680中,从行缓冲器200发送所请求的数据。方法650然后移动至块685并且结束。
[0045]图8图示了示例MSB写过程。在图7中,MSB写方法700开始于块705中,当存储器控制器165服务MSB写请求时。存储器控制器165首先确定是否存在行缓冲器命中条件,块710。如果不存在行缓冲器命中,则方法700移动至块715,并且存储器控制器165确定现有行缓冲器内容是否是脏的。如果现有行缓冲器内容不是脏的,则方法700移动至块720。然而,如果现有行缓冲器内容是脏的,则方法700移动至块800。在块800中,存储器控制器165指引回写过程,其在图10中详细示出。方法700然后移动至块720。在块720中,存储器控制器165指引将行151的MSB读到行缓冲器200中。然后,方法700移动至块725。
[0046]返回到块710,如果发生行缓冲器命中,则方法700移动至块725。在块725中,存储器控制器165指引将数据写至行缓冲器200。方法700然后移动至块730并且结束。
[0047]图9图示了示例MSB读过程,其中读取存储器行151的MSB的请求被服务。在图9中,方法750开始于具有针对存储器行151的MSB读请求的块755中。在块760中,存储器控制器165确定是否存在行缓冲器命中。在不存在行缓冲器命中时,方法750移动至块765。在块765中,存储器控制器165确定行缓冲器200的现有内容是否是脏的。如果行缓冲器200不持有脏位,则方法750移动至块770。然而,如果行缓冲器200持有脏位,则方法750移动至块800,并且存储器控制器165指引回写过程,其在图10中详细示出。在块800之后,方法750移动至块770。在块770中,行151的MSB被读到行缓冲器200中。在块770之后,方法750移动至块775。
[0048]返回到块760,如果不存在行缓冲器命中,则方法750移动至块775。在块775中,从行缓冲器200发送请求数据。方法750然后移动至块780并且结束。
[0049]图10图示了回写过程的示例。在图10中,回写方法800开始于块805中,在存储器控制器165在读或写过程中确定了行缓冲器200的某一内容是脏的之后(分别参见图6-9的块615、670、715和765)。在块810中,存储器控制器165确定行缓冲器200是否持有相同存储器行的LSB和MSB。如果行缓冲器200不持有相同存储器行的LSB和MSB,则方法800移动至块815,并且存储器控制器165指引读取对应于行缓冲器200中的MSB的存储器行的LSB。该操作将不覆写任何脏数据,因为如果LSB页是(或匹配的LSB和MSB页二者都是)脏的,则匹配的MSB页必须已经被缓冲在行缓冲器200中,并且方法800将继续进行至块820。然而,如果只有MSB页被缓冲并且是脏的,则行缓冲器200的另一锁存器阵列可以持有干净的LSB页,其来自与脏的缓冲MSB页的存储器行不同的存储器行。可能存在该后者条件,并且在这样的情况中,为了回写脏MSB页,其匹配的LSB页可以通过使用锁存器的单个阵列(如与两个页缓冲器相对的一个页缓冲器)被读到行缓冲器200中。因而,块815的读操作将不覆写任何脏位。在块810或815之后,方法800移动至块820。在块820中,现有行缓冲器内容被写至存储器阵列。方法800然后移动至块825并且结束。
[0050]因而,图4和5图示了针对实现APB的存储器中的读写过程的一个实施例,并且图6-10图示了另一实施例。虽然两个实施例都将提供读和写操作而没有数据的丢失或恶化,但是图6-10的实施例具有以下潜在益处:能够增大来自不同存储器行的页被缓冲所至的程度,从而增大行缓冲器命中率。然而,相同的实施例可能增大服务读或写请求的最坏情况延迟。这是因为,为了执行从行缓冲器到存储器阵列的回写,行缓冲器内容现在必须被检查以确保它们是来自相同行,并且如果行缓冲器内容不是来自相同行,那么进行从阵列的附加读取(以在行缓冲器中具有匹配的LSB和MSB页)。通过对照,在图4和5的实施例中,LSB和MSB页被限制成是相同行的,每当在行缓冲器中存在脏数据的时候。
【权利要求】
1.一种多级单元存储器,包括: 存储器单元,其存储两个或更多位的信息; 感测电路,其耦合到存储器单元,其中感测电路进行操作以读自和写至存储器设备;行缓冲器结构,其包括分页缓冲器,所述分页缓冲器具有第一页缓冲器和第二页缓冲器,其中感测电路将第一位置于第一页缓冲器和第二页缓冲器之一中,并且其中感测电路将第二位置于第一页缓冲器和第二页缓冲器之一中。
2.根据权利要求1所述的存储器,其中行缓冲器在最低有效位/最高有效位方向上被拆分成两个逻辑页。
3.根据权利要求2所述的存储器,其中来自存储器的第一物理行的逻辑页和来自存储器的第二物理行的逻辑页被持有在第一页缓冲器中。
4.根据权利要求1所述的存储器,其中第一位是LSB位并且第二位是MSB位,并且其中LSB位被置于第一页缓冲器中并且MSB位被置于第二页缓冲器中。
5.根据权利要求1所述的存储器,其中第一位是来自第一物理行的LSB位并且第二位是来自第二物理行的LSB位,并且其中第一 LSB位和第二 LSB位被置于相同的页缓冲器中。
6.根据权利要求1所述的存储器,其中第一和第二位被映射到分离的逻辑页。
7.根据权利要求1所述的存储器,其中用于存储器单元的两个锁存器之一与用于存储器的其它存储器单元的两个锁存器之一相群组以形成第一页缓冲器并且用于存储器单元的两个锁存器中的另一个与用于其它存储器单元的两个锁存器中的另一个相群组以形成第二页缓冲器。
8.根据权利要求1所述的存储器,其中行缓冲器结构还包括: 行缓冲器输入复用器,其用于选择第一位和第二位之一以存储在分页缓冲器中; 行缓冲器输出复用器,其用于选择第一页缓冲器和第二页缓冲器之一;以及 页缓冲器选择信号,其确定输入和输出缓冲器的操作。
9.一种多级单元存储器,包括: 多个多级单元,每个单元持有多个信息位; 行缓冲器,其耦合到所述单元,包括: 第一页缓冲器,其锁存来自多个多级单元中每一个的第一信息位,以及多个附加页缓冲器,附加页缓冲器中的每一个锁存来自多个多级单元中每一个的附加信息位之一;以及 外围电路,其选择第一页缓冲器和附加页缓冲器之一来锁存信息位。
10.根据权利要求9所述的多级单元存储器,其中外围电路包括复用器,其耦合到第一页缓冲器的锁存器以及附加页缓冲器中每一个的锁存器,存储器还包括存储器控制器,其中存储器控制器包括页缓冲器选择信号电路,其指定要选择哪个锁存器;并且其中页缓冲器持有来自多级单元存储器的不同行的信息位。
11.一种用于缓冲多级单元存储器的方法,包括: 接收针对所请求的存储器行的访问请求,其中存储器包括行缓冲器,并且行缓冲器包括第一页缓冲器和第二页缓冲器; 确定是否发生行缓冲器命中;并且 如果发生行缓冲器命中,则完成访问请求。
12.根据权利要求11所述的方法,其中访问是MSB写请求,并且其中没有发生行缓冲器命中,所述方法还包括: 确定行缓冲器的现有内容是否是脏的,其中: 如果现有行缓冲器内容不是脏的,则所述方法包括将所请求行的LSB和MSB读到行缓冲器中,并且其中: 如果现有行缓冲器内容是脏的,则所述方法包括: 将现有行缓冲器内容写至存储器阵列;以及 将所请求行的LSB和MSB读到行缓冲器中。
13.根据权利要求11所述的方法,其中访问是MSB写请求,并且其中发生行缓冲器命中,所述方法还包括: 确定行缓冲器是否持有相同行的LSB和MSB,其中: 如果行缓冲器不持有相同行的LSB和MSB,则所述方法包括: 将所请求行的LSB读到行缓冲器中,以及 将数据写至行缓冲器中;以及其中: 如果行缓冲器持有相同行的LSB和MSB,则所述方法包括将数据写到行缓冲器中。
14.根据权利要求11所述的方法,其中访问是LSB写请求,并且其中没有发生行缓冲器命中,所述方法还包括: 确定行缓冲器的现有内容是否是脏的,其中: 如果行缓冲器的现有内容是脏的,则所述方法包括: 将现有内容写到存储器中; 将所请求行的LSB和MSB读到行缓冲器中;以及 将写数据置于行缓冲器中,并且其中: 如果行缓冲器的现有内容不是脏的,则所述方法包括: 将所请求行的LSB和MSB读到行缓冲器中;以及 将写数据置于行缓冲器中。
15.根据权利要求14所述的方法,其中将现有内容写到存储器中包括: 确定行缓冲器是否持有相同行的LSB和MSB ; 如果行缓冲器不持有相同行的LSB和MSB: 则读取与行缓冲器中的MSB的行相对应的行的LSB,并且 将行缓冲器的现有内容写至存储器;以及 如果行缓冲器持有相同行的LSB和MSB: 则将行缓冲器的现有内容写至存储器。
【文档编号】G11C16/06GK104380383SQ201280074302
【公开日】2015年2月25日 申请日期:2012年6月28日 优先权日:2012年6月28日
【发明者】N.穆拉利马诺哈, H.B.庸, N.P.朱皮 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1