基于误比特率的多通道存储器操作的制作方法

文档序号:14784982发布日期:2018-06-27 22:09阅读:211来源:国知局
基于误比特率的多通道存储器操作的制作方法

本公开一般涉及电子设备,并且更具体地涉及在包括多通道存储器的设备处的操作。



背景技术:

诸如通用串行总线(universal serial bus,USB)闪速存储器设备或可移动的存储卡的非易失性数据存储设备已经允许增加数据和软件应用的可移植性。闪速存储器设备能够通过在每个闪速存储器单元中存储多个比特来增强数据存储密度。例如,多层单元(Multi-Level Cell,MLC)闪速存储器设备通过每一单元存储3比特、每一单元存储4比特或更多来提供增加的存储密度。虽然增加每一单元的比特的数量和减小设备特征尺寸可以增加存储器设备的存储密度,但是存储在存储器设备处的数据的误比特率(bit error rate,BER)也可能增加。闪速存储器设备还能够通过包括不止一个存储器裸芯来增强数据存储容量。当包括多个存储器裸芯时,裸芯的BER可能会变化。在这种情况下,闪速存储器设备的总体吞吐量可以粗略等于“最慢”存储器裸芯(即具有最高BER的存储器裸芯)的吞吐量。



技术实现要素:

根据本公开的各方面,提供一种设备,包括存储器和被耦合到存储器并且被配置为使用至少第一通道和第二通道与存储器通信的控制器。该控制器包括误比特率(BER)估计器,其被配置为估计与第一通道相对应的第一BER和与第二通道相对应的第二BER;以及吞吐量平衡器,其被配置为基于第一BER和第二BER确定是否调整第一通道的第一时钟速率和第二通道的第二时钟速率中的至少一个。

根据本公开的各方面,还提供一种方法,包括:在被耦合到存储器并且被配置为使用至少第一通道和第二通道与存储器通信的控制器处,估计与第一通道相关联的第一误比特率(BER)和与第二通道相关联的第二BER;以及基于第一BER和第二BER确定是否调整第一通道的第一时钟速率和第二通道的第二时钟速率中的至少一个。

根据本公开的各方面,还提供一种装置,包括:用于存储数据的装置;用于估计对应于与用于存储数据的装置相关联的第一通道的第一第一误比特率(BER)、以及用于估计对应于与用于存储数据的装置相关联的第二通道的第二BER的装置;以及用于基于第一BER和第二BER确定是否调整第一通道的第一时钟速率和第二通道的第二时钟速率中的至少一个的装置。

附图说明

图1是可操作地来基于误比特率选择性地平衡多通道存储器处的吞吐量的系统的特定例示性示例的图。

图2是示出图1的系统的示例的特定方面的图。

图3是示出图1的系统的另一示例的特定方面的图,包括基于误比特率来调整多通道存储器的时钟速率。

图4是示出图1的系统的另一示例的特定方面的图,包括基于误比特率来调整多通道存储器的缓冲器分配。

图5是示出图1的系统的另一示例的特定方面的图,包括基于误比特率来调整多通道存储器的缓冲器分配。

图6是示出图1的系统的另一示例的特定方面的图,包括基于误比特率来调整何时在多通道存储器处执行感测/传送命令。

图7是基于误比特率在多通道存储器处选择性地平衡吞吐量的方法的例示性示例的流程图。

具体实施方式

下面参考附图描述本公开的特定方面。在描述中,公共或类似的特征可以由公共参考标号指定。如本文所使用的,“示例性”可以指示示例、实施方式和/或方面,并且不应被解释为限制或指示偏好或优选实施方式。另外,应当理解,某些序数词(例如,“第一”或“第二”)可以被提供以便于参考,并且不一定意味着物理特征或排序。因此,如本文所使用的,用于修改诸如结构、组件、操作等的元素的序数词(例如,“第一”、“第二”、“第三”等)不一定指示元素相对于另一元素的优先级或顺序,而是将元素与具有相同名称(但用于序数词的使用)的另一元素区分开。此外,如本文所使用的,不定冠词(“一”)可以指示“一个或多个”而不是“一个”。如本文所使用的,“包含”或“包括”元素的结构或操作可以包括未明确叙述的一个或多个其它元素。另外,还可以基于未明确叙述的一个或多个其它条件或事件来执行“基于”条件或事件执行的操作。

虽然本文参考数据存储设备描述了某些示例,但是应当理解,本文描述的技术可应用于其它实施方式。例如,除了从存储器访问信息之外或者可替换地,能够由通信设备(例如,无线地或从有线网络)接收信息。作为例示性示例,可以利用吞吐量平衡技术来改进有线或无线通信。本领域技术人员将认识到,本文描述的技术可应用于其它实施方式。

参考图1,系统的特定例示性示例被描绘并且总体上被指定为100。系统100包括设备102(例如,数据存储设备)和访问设备180(例如,主机设备)。设备102包括耦合到控制器130的存储器设备103。

在特定方面,存储器设备103是多通道存储器。为了例示,在图1的示例中,存储器设备103包括多个存储器裸芯,包括存储器裸芯110、111、112和113。第一通道160支持对存储器裸芯的第一子集(例如,存储器裸芯110-111)的数据访问操作。第二通道170支持对存储器裸芯的第二子集(例如,存储器裸芯112-113)的数据访问操作。虽然图1示出了存储器裸芯的两个子集,其中每个子集具有相同数量的存储器裸芯,但是在替换示例中可以存在不同数量的子集,并且不同数量的子集可以包括不同数量的存储器裸芯。如本文所使用的,“通道”可以对应于存储器设备103和访问设备180之间的逻辑和/或物理数据路径。在一些示例中,每个通道160、170可以包括专用于相应通道的区别组件(例如,硬件元件)。可替换地,或者另外,每个通道160、170可以分享某些组件。虽然在图1中示出了具有两个通道且每一通道两个存储器裸芯的配置,但是应当理解,在替换示例中,可以针对具有不止两个通道的设备和/或每一通道不同数量的存储器裸芯,来利用本公开的技术。

设备102和访问设备180可以经由诸如总线或无线连接的连接(例如,通信路径)可操作地被耦合。设备102可以包括设备接口137,诸如当设备接口137通信地耦合到访问设备180时,设备接口137使能经由设备102和访问设备180之间的通信路径的通信。

在一些实施方式中,诸如根据联合电子设备工程委员会(Joint Electron Devices Engineering Council,JEDEC)固态技术协会通用闪存存储(Universal Flash Storage,UFS)配置,设备102可以被嵌入在访问设备180内。例如,设备102可以被配置为作为嵌入式存储器耦合到访问设备180,诸如作为例示性示例的(弗吉尼亚州阿灵顿的JEDEC固态技术协会的商标)和eSD。为了例示,设备102可以对应于eMMC(embedded MultiMedia Car,嵌入式多媒体卡)设备。作为另一示例,设备102可以对应于存储器卡,诸如安全数字(Secure Digital,)卡、卡、miniSD TM卡(特拉华州威尔明顿SD-3C LLC的商标)、MultiMediaCardTM(MMC TM)卡(弗吉尼亚州阿灵顿的JEDEC固态技术协会的商标)或(CF)卡(加利福尼亚州米尔皮塔斯SanDisk公司的商标)。可替换地,设备102可以从访问设备180移除(即“可移除地”耦合到访问设备180)。作为示例,设备102可以根据可移除的通用串行总线(USB)配置可移除地耦合到访问设备180。

在一些实施方式中,设备102可以包括或对应于固态驱动器(solid state drive,SSD),所述SSD可以包括在访问设备180中或不同于(且可访问到)访问设备180。例如,设备102可以包括或对应于SSD,作为示例性的非限制性示例,其可以被用作嵌入式存储驱动器(例如,移动嵌入式存储驱动器)、企业存储驱动器(enterprise storage drive,ESD)、客户端存储设备或云存储驱动器。在一些实施方式中,设备102,例如,经由网络间接地被耦合到访问设备180。例如,网络可以包括数据中心存储系统网络、企业存储系统网络、存储区域网络、云存储网络、局域网(local area network,LAN)、广域网(wide area network,WAN)、因特网和/或另一网络。在一些实施方式中,设备102可以是数据中心存储系统、企业存储系统或存储区域网络的网络附加存储(network-attached storage,NAS)设备或组件(例如,固态驱动器(SSD)设备)。

设备102可以遵照JEDEC工业规范进行操作。例如,设备102可以遵照JEDEC eMMC规范、JEDEC通用闪存存储(UFS)规范、一个或多个其它规范、或其组合来进行操作。在一些实施方式中,设备102和访问设备180可以被配置为使用一个或多个协议(诸如作为例示性的、非限制性的示例的eMMC协议、通用闪存存储(UFS)协议、通用串行总线(USB)协议、串行高级技术附件(SATA)协议和/或另一协议)进行通信。

访问设备180可以包括存储器接口(未示出),并且可以被配置为经由存储器接口与设备102通信,以从设备102的存储器设备103读取数据和向其写入数据。例如,访问设备180可以遵照联合电子设备工程委员会(JEDEC)工业规范(诸如通用闪存存储(UFS)访问控制器接口规范)来进行操作。作为其它示例,访问设备180可以遵照一个或多个其它规范(诸如作为例示性的、非限制性的示例的安全数字(SD)访问控制器规范)来进行操作。访问设备180可以根据任何其它合适的通信协议与存储器设备103通信。

访问设备180可以包括处理器和存储器。存储器可以被配置为存储数据和/或可由处理器执行的指令。存储器可以是单一存储器,或者可以包括多个存储器,诸如一个或多个非易失性存储器、一个或多个易失性存储器、或其组合。访问设备180可以向设备102发出一个或多个命令,诸如从设备102的存储器设备103擦除数据、读取数据或向其写入数据的一个或多个请求。例如,访问设备180可以被配置为提供要被存储在存储器设备103处的数据(诸如用户数据182),或者请求要从存储器设备103被读取的数据。作为例示性的、非限制性的示例,访问设备180可以包括移动电话、计算机(例如,膝上型计算机、平板计算机或笔记本计算机)、音乐播放器、视频播放器、游戏设备或操作台、电子书阅读器、个人数字助理(personal digital assistant,PDA)、便携式导航设备、诸如膝上型计算机或笔记本计算机的计算机、网络计算机、服务器、任何其它电子设备或其任何组合。

设备102包括控制器130和耦合到控制器130的存储器设备103。存储器设备103可以包括具有一个或多个存储器裸芯(例如,图1中所示的四个存储器裸芯110-113)的存储器104。存储器裸芯110-113中的每一个可以对应于存储元件的非易失性存储器。例如,作为例示性的、非限制性的示例,存储器104可以包括诸如NAND闪速存储器的闪速存储器、或诸如电阻式随机存取存储器(resistive random access memory,ReRAM)的电阻式存储器。存储器104可以具有三维(three-dimensional,3D)存储器配置。作为示例,存储器104可以具有3D垂直位线(vertical bit line,VBL)配置。在特定实施方式中,存储器104包括具有3D存储器配置的非易失性存储器,其在存储器单元的阵列的一个或多个物理层中单片地形成,所述存储器单元具有设置在硅衬底上方的有源区。可替换地,存储器104可以具有另一配置,诸如二维(two-dimensional,2D)存储器配置或非单片3D存储器配置(例如,堆叠裸芯3D存储器配置)。

存储器104可以包括一个或多个块,诸如存储元件的NAND闪存擦除组。为了例示,作为例示性的、非限制性的示例,存储器104可以包括可以被配置为物理页面、字线或块的一组存储元件。存储器104的每个存储元件可以被编程为指示一个或多个值的状态(例如,闪存配置中的阈值电压或电阻式存储器配置中的电阻状态)。存储器104的每个块可以包括一个或多个字线。每个字线可以包括一个或多个页面,诸如一个或多个物理页面。在一些实施方式中,每个页面可以被配置为存储码字。作为例示性的、非限制性的示例,字线可以被配置为作为单层单元(single-level-cell,SLC)字线、作为多层单元(MLC)字线或作为三层单元(tri-level-cell,TLC)字线来操作。

存储器设备103可以包括诸如读取/写入电路114的支持电路,以支持在存储器裸芯110-113处的操作。虽然被描绘为单一组件,但是读取/写入电路114可以被划分成存储器设备103的单独的组件,诸如读取电路和写入电路。读取/写入电路114可以在存储器104的外部。可替换地,各个存储器裸芯110-113中的一个或多个可以包括相应的读/写电路,其可操作地以独立于任何其它存储器裸芯处的任何其它读取和/或写入操作来从各个存储器裸芯内的存储元件读取数据和/或向其写入数据。在一些示例中,当数据被存储在存储器设备103中时,数据可以跨越存储器裸芯110-113中的一个或多个“条纹化”。类似地,在一些示例中,读取这些数据可以包括访问存储器裸芯110-113中的多个。

控制器130经由总线121和一个或多个存储器接口131被耦合到存储器设备103。例如,总线121可以支持通道160、170以使得控制器130能够与存储器104通信。为了说明,存储器接口131可以包括第一存储器接口和第二存储器接口。第一存储器接口可以使得控制器130能够使用第一通道160经由总线121从存储器裸芯110、111发送和接收数据。第二存储器接口可以使得控制器130能够使用第二通道170经由总线121从存储器裸芯112、113发送和接收数据。在例示性示例中,存储器接口131中的每一个是闪存接口模块(flash interface module,FIM)。

在一些方面,控制器130包括被配置为与控制器130的一个或多个其它组件或模块进行交互并且被配置为确定解码时间和/或其它系统参数的管道计划器(pipeline planner)132。例如,管道计划器132可以被配置为调度和仲裁由存储器接口131对各个存储器裸芯110-113的访问。为了说明,管道计划器132可以调度对应于第一通道160的各个存储器裸芯110、111处的感测操作和传送操作(例如,通过调度感测命令和传送命令)。类似地,管道计划器132可以调度对应于第二通道170的各个存储器裸芯112、113处的感测操作和传送操作。在感测操作期间,可以感测存储在存储器裸芯的各个存储元件处的比特。在传送操作期间,感测到的比特可以经由总线121被传送到存储器接口131中的相应的一个。在一些示例中,如果耦合到存储器接口131的特定裸芯忙碌,则管道计划器132可以调度在耦合到该存储器接口131的另一裸芯处的感测和传送命令,使得该存储器接口131被利用而不是保持空闲。

控制器还可以包括一个或多个抖动缓冲器133。为了说明,抖动缓冲器133中的第一个可以被保留以用于第一通道160,并且第二抖动缓冲器133中的第二个可以被保留以用于第二通道170。在特定方面,抖动缓冲器133对应于在操作期间,例如,响应于固件指令的执行,能够由控制器130动态地分配和收回的系统存储器资源。因此,抖动缓冲器133可以被共享,例如,在通道160、170之间被动态地分派。如本文还描述的,抖动缓冲器133可以被视为具有基于操作条件被分配给不同通道的不同部分以增加或最大化总体吞吐量的单一存储器缓冲器。在读取操作期间,由存储器接口131中的一个接收的数据可以被存储在抖动缓冲器133中的相应的一个中。在写入操作期间,存储器接口131中的一个可以从抖动缓冲器133中的相应的一个中检索数据,以用于经由总线121与存储器设备103通信。

控制器130还可以包括错误校验码(error correction code,ECC)引擎134,其在写入操作期间被配置为接收数据(例如,用户数据182)并且基于该数据生成一个或多个ECC码字(例如,包括数据部分和奇偶校验部分)。为了说明,ECC引擎134可以包括被配置为使用ECC编码技术对数据进行编码的一个或多个编码器135(例如,每一通道160、170一个编码器)。作为例示性的、非限制性的示例,编码器135可以对应于Reed-Solomon编码器、Bose-Chaudhuri-Hocquenghem(BCH)编码器、低密度奇偶校验(low-density parity check,LDPC)编码器、turbo编码器、被配置为根据一个或多个其它ECC技术对数据进行编码的编码器、或其组合。

在读取操作期间,ECC引擎134还可以被配置为从抖动缓冲器133接收数据(例如,码字),以在(错误已校正的)数据被提供给访问设备180之前执行错误检测/校正操作。例如,ECC引擎134可以包括一个或多个解码器136(例如,每一通道160、170一个解码器)。作为例示性的、非限制性的示例,解码器136可以对应于Reed-Solomon解码器、BCH解码器、LDPC解码器、turbo解码器、被配置为根据一个或多个其它ECC技术对码字进行解码的解码器、或其组合。

设备接口137可以支持控制器130和访问设备180之间的通信。在特定方面,设备接口137包括至少一个传送缓冲器138,其可以可替换地被称为传送RAM(transfer RAM,TRAM)或分段缓冲器(staging buffer)。为了说明,可以为经由第一通道160通信的数据保留传送缓冲器138的第一部分,并且可以为经由第二通道170通信的数据保留传送缓冲器138中的第二部分。

在写入操作期间,控制器130可以从访问设备180接收数据和指令。控制器130还可以发送数据和写入命令以使存储器设备103将数据存储到指定的地址。写入命令可以指定要存储数据的存储器104的一部分的物理地址(例如,字线的物理地址)。作为例示性的、非限制性的示例,控制器130还可以被配置为将与后台扫描操作、垃圾回收操作和/或磨损均衡操作等相关联的数据和命令发送到存储器设备103。

在读取操作期间,控制器130可以将数据发送到访问设备180。为了说明,控制器130可以被配置为向存储器设备103发送读取命令以从存储器104处的指定地址访问数据。读取命令可以指定存储器104的一部分的物理地址(例如,字线的物理地址)。诸如响应于来自访问设备180的对读取访问的请求,控制器130可以使存储器设备103访问码字的表示。控制器130可以发送读取命令以使码字的表示被感测并经由存储器接口131和抖动缓冲器133中的一个从存储器设备103传送到ECC引擎134。ECC引擎134可以确定接收到的码字的表示包括一个或多个比特错误,并且可以校正比特错误以生成存储在传送缓冲器138中的错误已校正的数据,以便随后与访问设备180通信。在多通道实施方式中,诸如图1中所示,用于各个通道的解码器136可以并行操作,并且生成用于在传送缓冲器138中缓冲的错误已校正的数据。

通常,码字的解码时间可以随着码字中的比特错误的数量增加而增加。由于诸如存储器裸芯质量、裸芯到裸芯的变化、生命的开始、生命的结束、数据保留和读取/写入温度差等因素,存储器裸芯110-113中不同的存储器裸芯可以具有不同的BER。因此,从存储器裸芯110-113中的一个读取的码字可以具有比从存储器裸芯110-113中的另一个读取的码字更高或更低的平均BER。在其中访问设备180以交替方式经由通道160、170接收数据的顺序读取操作中,BER的变化可能不利地影响性能。为了说明,如果存储器裸芯110-111具有比存储器裸芯112-113更高的BER,则由于第一通道160的解码器136花费更长时间执行错误校正操作,经由第一通道160的数据吞吐量可以小于经由第二通道170的数据吞吐量。在这种情况下,设备102的总体吞吐量可以由最低的各个通道吞吐量(即第一通道160的吞吐量)来管控。

避免“最差通道”性能的一种可能的方法是引入基于解码器可用性在可用的解码器136当中分派工作量的硬件仲裁器。然而,诸如硬件仲裁器可能设计复杂,并且可能极大增加设备102的成本。

本公开的技术可以在不向设备添加复杂硬件的情况下使得能够避免“最差通道”性能。根据所描述的技术,控制器130可以包括BER估计器140和吞吐量平衡器150,其可以与控制器130的硬件组件、在控制器130处执行的软件或固件、或其组合相对应。

BER估计器140可以估计与第一通道相对应的第一BER142和与第二通道相对应的第二BER144。例如,BER估计器140可以确定对于存储器裸芯110-113中的每一个的估计的BER,并且与通道相对应的BER可以是对于通道的存储器裸芯中的每一个的BER的最高值或平均值。BER估计器140可以估计页面级、裸芯级、字线级、码字级或一些其它级上的BER。而且,BER估计器140可以静态地(例如,在生命的开始时)、周期性地、响应于特定事件(例如,上电事件)的发生或以某些其它频率来估计BER。

在第一示例中,BER估计器140可以基于在通道160、170的解码器136处的解码操作期间确定的校验权重(syndrome weight,SW)来估计BER。为了说明,在LDPC解码期间,解码器136中的一个可以基于执行比特级计算来确定校验权重,其中更高的校验权重对应于更大数量的潜在比特错误。因此,当从第一存储器裸芯读取的数据具有比从第二存储器裸芯读取的数据更高的校验权重时,第一存储器裸芯可以被估计为具有比第二存储器裸芯更高的BER。在一些示例中,BER估计器140可以存储或访问校验权重到估计的BER的映射。

在第二示例中,BER估计器140可以基于在通道160、170的解码器136处的解码操作的解码模式来估计BER。为了说明,LDPC解码器可以被配置为以多个模式或档位来操作,诸如第一档位、第二档位和第三档位。以更低档位的解码操作可以比以较快档位的解码操作更不复杂和更快。因此,解码模式或档位越高,解码时间就越长。在特定示例中,解码器可以具有在所使用的解码算法(例如,比特翻转或如最小和变量以及置信传播的消息传递解码算法)方面以及在固定点实施方式的消息解析(例如,1、2、3、……比特消息)方面可能不同的多个解码变档。在接收用于解码的码字(或块)时,LDPC解码器可以首先尝试在档位1中进行解码。如果档位1失败,则LDPC解码器可以尝试在档位2中进行解码。如果档位2失败,则LDPC解码器可以尝试在档位3中进行解码。因此,BER估计器140可以能够通过监测通道160、170的解码器136正在以哪个LDPC解码模式进行操作来确定BER 142、BER144中的哪个更高。在一些示例中,BER估计器140可以存储或访问解码模式到估计的BER的映射。

吞吐量平衡器150可以被配置为基于第一BER 142和第二BER 144的比较来确定是否在设备102处调整各种操作参数。例如,如果第一BER 142等于或几乎等于第二BER 144(例如,相差低于阈值量),则吞吐量平衡器150可以避免调整任何操作参数。然而,如果第一BER 142与第二BER 144相差超过阈值量,则吞吐量平衡器150可以选择性地执行各种操作以实现比上述“最差性能”情况更高的吞吐量。

作为第一示例,通道160、170中的每一个可以根据独立的时钟信号进行操作,并且吞吐量平衡器150可以基于BER 142、BER 144来调整通道160、170的时钟速率。如本文所使用的,通道的时钟速率可以是施加到通道的一个或多个组件的时钟信号的时钟速率。根据本公开,当BER 142、BER 144相差至少阈值量时,可以调整提供给通道160、170的(多个)组件的时钟信号的时钟速率,使得通道160、170的LDPC解码器136具有类似的利用率。这可以通过提高更高BER通道的时钟信号的时钟速率以加速在通道处的整体操作来实现,所述整体操作被由于高BER引起的复杂LDPC操作减慢。可替换地,或者另外地,这可以通过降低更低BER通道的时钟信号的时钟速率以便减缓在该通道处的整体操作来匹配更高BER通道的整体操作来实现,。在特定方面,吞吐量平衡器150基于修改锁相环(phase-locked loop,PLL)或其它电路的参数来编程地调整时钟速率。参考图3进一步描述时钟速率的调整。

作为第二示例,吞吐量平衡器150可以基于BER 142、BER144动态地调整系统资源分配。为了说明,因为当BER高时,LDPC操作花费更长时间,所以更高BER通道中的抖动缓冲器133的大小可以相对于更低BER通道中的抖动缓冲器133的大小而增加。在BER高时,增加抖动缓冲器133的大小可以减轻更高BER通道的存储器接口131和解码器136之间的缓冲瓶颈,并且可以使得更高BER通道的存储器接口131能够以减小的“停顿(hiccup)”而继续操作。在一些示例中,除了抖动缓冲器133的大小之外或者代替抖动缓冲器133的大小,还可以调整传送缓冲器138的分配。为了说明,当通道160、170具有相等或近似相等的BER 142、BER144时,传送缓冲器138的一半可以被保留以用于第一通道160,并且传送缓冲器170的另一半可以被保留以用于第二通道。当BER142、BER144不相等或不近似相等时,可以增加用于更低BER通道的传送缓冲器分配。参考图4和图5进一步描述系统资源分配的调整。

作为第三示例,吞吐量平衡器150可以基于BER 142、BER144,当在存储器接口131中的一个或多个处执行感测/传送命令时,通知管道计划器132进行调整。为了说明,当存储器裸芯具有更高BER并且解码操作花费更长时间时,可以调整感测/传送执行时间,使得耦合到该存储器裸芯的存储器接口不频繁地检索数据而不是处理“停顿”。参考图6进一步描述感测/传送执行时间的调整。

要理解的是,吞吐量平衡器150可以选择性地调整的操作参数的上述示例被提供用于例示,并且不被认为是限制性的。在替换的实施方式中,吞吐量平衡器150可以被配置为选择性地调整更多、更少和/或不同的操作参数。

而且,在一些情况下,吞吐量平衡器150可以在调整另一操作参数之前最大限度地调整一个操作参数。作为例示性的、非限制性的示例,当BER 142、BER144相差超过阈值量时,吞吐量平衡器150可以分别估计在通道160、170处的解码时间D1、D2,其中更高BER通道将具有更长的估计解码时间。吞吐量平衡器150可以基于估计解码时间D1、D2来确定均衡因素s1、s2。均衡因素s1、s2可以对应于时钟速率调整,并且可以受设备102处的平均和峰值功率约束的约束。吞吐量平衡器150可以基于均衡因素来确定新的估计解码时间,即D1new=s1*D1和D2new=s2*D2。如果新的估计解码时间相等或近似相等(例如,相差小于阈值),则这意味着时钟速率调整足以平衡通道160、170处的吞吐量。然而,如果新的估计解码时间不相等或不近似相等,并且时钟速率的进一步调整不可用(例如,由于平均/峰值功率约束),则吞吐量平衡器150可以进行调整缓冲器分配、感测/传送执行时间或两者。

因此图1的设备102可以可操作地来基于BER平衡多通道存储器处的吞吐量(例如,为了减少吞吐量不平衡)。例如,如果通道BER不同,诸如由于各个存储器裸芯的BER的差异,则设备102可以选择性地调整操作参数(例如,时钟速率、缓冲器分配、感测/传送执行时间等),使得设备102的总体吞吐量大约是各个通道吞吐量的平均值,而不受最低通道吞吐量约束。

图2-图7示出了基于BER平衡多通道存储器处的吞吐量的各种示例。特别地,图2示出了包括图1的四个存储器裸芯110-113的系统200。存储器裸芯110、111经由第一通道260(表示为“通道0”)可访问主机280。存储器裸芯112、113经由第二通道270(表示为“通道1”)可访问主机280。在例示性方面,主机280对应于图1的访问设备180。并且通道260、270对应于图1的通道160、170。

第一通道260可以包括第一FIM 231a(表示为“FIM 0”)、第一抖动缓冲器233a(表示为“抖动缓冲器0”)和第一ECC解码器236a(表示为“ECC 0”)。第一FIM 231a可以被配置为根据第一感测/传送执行时间290a从存储器裸芯110、111检索数据。第二通道270可以包括第二FIM 231b(表示为“FIM 1”)、第二抖动缓冲器233b(表示为“抖动缓冲器1”)和第二ECC解码器236b(表示为“ECC 1”)。第二FIM 231b可以被配置为根据第二感测/传送执行时间290b从存储器裸芯112、113检索数据。在例示性方面,FIM 231对应于图1的存储器接口131、抖动缓冲器233对应于图1的抖动缓冲器133、并且ECC解码器236对应于图1的解码器136。

如图所示,ECC解码器236a、ECC解码器236b可以被配置为将数据写入传送缓冲器238的相应部分,其中传送缓冲器238的部分可由主机280访问。在例示性方面,传送缓冲器238对应于图1的传送缓冲器138。

在图2所示的示例中,通道260、270可以具有相等或近似相等的BER。例如,BER估计器140可以确定第一通道260的第一BER与第二通道270的第二BER相差小于阈值量。在特定方面,BER估计器140可以基于由ECC解码器236计算的校验权重、基于ECC解码器236正运行的模式(例如,档位)、基于一个或多个其它度量(例如,数据保留度量、生命开始以来的时间、到生命结束的时间、读取/写入温度差等)或其任何组合,来估计通道260、270的BER。作为响应,吞吐量平衡器150可以避免调整通道260、270的操作参数。为了说明,当BER相差小于阈值量时,施加到第一通道260的组件的第一时钟信号262的第一时钟速率和施加到第二通道270的组件的第二时钟信号272的第二时钟速率可以是相同的时钟速率。另外,抖动缓冲器233a、抖动缓冲器233b的大小可以近似相等,并且感测/传送执行时间290a、感测/传送执行时间290b可以指示在不同存储器裸芯处执行感测/传送的近似相同的频率。为第一通道260分配的传送缓冲器238的部分(例如,图2中具有阴影图案的部分)和为第二通道270分配的部分的大小可以取决于主机280的速度。

继续到图3,在系统200的操作期间,吞吐量平衡器150可以确定第二通道270具有比第一通道260更高的估计BER。如参照图1所描述的,吞吐量平衡器150可以响应于这样的确定执行尝试平衡通道260、270的吞吐量的各种操作。在图3中,如362处所示,吞吐量平衡器150减慢施加到更低BER通道260的第一时钟信号262的时钟速率。例如,第一时钟信号262可以具有比图2的第一时钟速率更低的第三时钟速率。如处372所示,吞吐量平衡器150还加速施加到更高BER通道270的第二时钟信号272的时钟速率。例如,第二时钟信号272可以具有比图2的第一时钟速率更高的第四时钟速率。在一些示例中,吞吐量平衡器150可以仅调整时钟信号中的一个,而不是调整时钟信号两者。

在图4的示例中,如433处所示,吞吐量平衡器150增加了更高BER通道(示出为第二通道270)的抖动缓冲器的大小。参考图5,如538处所示,如果主机280具有比系统200的其余部分更高的吞吐量,则主机280“当前”从其读取的通道260、270可以接收更小的传送缓冲器分配,并且主机280当前未从其读取的(多个)其它通道(并且其可能会经历停顿)可以接收更大的传送缓冲器分配。在图6的示例中,如690所示,吞吐量平衡器150在更高BER通道(例如,第二通道270)处调整感测/传送执行时间。为了说明,如果裸芯112具有比裸芯113更高的BER,则可以调整感测/传送执行时间,使得FIM 231b从裸芯112中比从裸芯113中更不频繁地检索数据。

虽然图3-图6示出了能够被执行以平衡多通道存储器处的吞吐量的不同操作的示例,应当理解,这样的选项不是相互排斥的。在替换示例中,可以执行更多、更少和/或不同的操作以平衡多通道存储器处的吞吐量。

参考图7,示出了基于BER选择性地平衡多通道存储器处的吞吐量的方法700的特定例示性示例。方法700可以在诸如图1的设备102的设备处或图3-图6的系统200内执行。

在702处,控制器估计第一BER和第二BER。控制器被耦合到存储器并且被配置为使用至少第一通道和第二通道与存储器通信。第一BER与第一通道相关联,并且第二BER与第二通道相关联。例如,参考图1,BER估计器140可以估计与第一通道160相关联的第一BER 142和与第二通道144相关联的第二BER 144。可以基于校验权重、基于解码器136处的解码操作的模式、基于一个或多个母因素、或其任何组合来确定第一BER 142和第二BER 144。

在704处,将第一BER与第二BER进行比较。当第一BER和第二BER相等或近似相等(例如,相差小于阈值量,诸如5%)时,在706处,控制器避免调整与第一通道和第二通道相关联的参数,并且方法700在718处结束。例如,参考图1,吞吐量平衡器150可以避免调整与通道160、170相关联的操作参数。可替换地,当第一BER和第二BER相差至少阈值量时,在708处,控制器估计与第一通道相关联的第一解码时间和与第二通道相关联的第二解码时间。例如,参考图1,吞吐量平衡器150可以估计通道160、170中的解码器136的解码时间。

继续到710,控制器调整与第一通道相关联的第一时钟速率和/或与第二通道相关联的第二时钟速率。例如,参考图1,如果第一通道160具有比第二通道170更高的BER,则吞吐量平衡器150可以提高与第一通道160相关联的时钟速率和/或降低与第二通道170相关联的时钟速率。在例示性示例中,可以如参考图3所述来调整(多个)时钟速率。

调整(多个)时钟速率可以导致通道的估计解码时间的改变。在712处,控制器确定改变的估计解码时间是否相等或近似相等(例如,相差小于阈值量,诸如5%)。如果是,则方法700在718处结束。如果改变的估计解码时间不相等或不近似相等,则在714处,控制器调整与第一通道或第二通道中的至少一个相关联的资源分配的大小。例如,参考图1,吞吐量平衡器150可以调整抖动缓冲器133中的一个或多个的大小、传送缓冲器138的至少一部分的大小、或其任何组合。在例示性示例中,可以如参考图4和图5所述来调整缓冲器分配。可替换地,或者另外地,在716处,管道计划器(例如,在控制器内)可以调整与至少一个存储器裸芯相关联的感测/传送执行时间。例如,参考图1,吞吐量平衡器可以通知管道计划器132来调整与存储器裸芯110-113中的至少一个相关联的感测/传送执行时间。在例示性方面中,可以如参考图6所述来调整感测/传送执行时间。

在调整资源分配和/或感测/传送执行时间之后,方法700可以在718处结束。然而,要理解的是,可以在设备处迭代地执行方法700,并且可以根据设备处估计的BER如何变化以在不同的时间执行不同的调整。

因此,图7示出了当多通道存储器的通道具有变化的BER时,设备的控制器可以平衡吞吐量的方法。虽然图7描绘了比较估计的BER,但是在替换的方面,一个通道的(多个)操作参数可以独立于另一通道的(多个)操作参数或估计的BER被调整。为了说明,控制器可以确定通道的估计的BER是否大于或小于阈值BER,而不是彼此比较估计的BER。如果估计BER比阈值BER更大,则可以调整通道的(多个)操作参数(例如,时钟速率、资源分配、感测/传送执行时间等)。

虽然本文描绘的各种组件被示出为块组件并且以一般术语被描述,但是这样的组件可以包括一个或多个微处理器、状态机、或其它被配置为使得这样的组件能够执行本文描述的一个或多个操作的电路。例如,图1的控制器130和/或图2的系统200的组件可以表示物理组件,诸如硬件控制器、状态机、逻辑电路或其它结构,以使能本文所述的各种操作。

可替换地或另外地,控制器130和/或系统200的一个或多个组件的至少一部分可以使用微处理器或微控制器来实施。例如,可以由处理器执行存储在诸如图1的存储器104的存储器处的指令(例如,固件)来执行所述操作。可替换地或者另外地,由处理器执行的可执行指令可以被存储在不是存储器104的一部分的单独的存储器位置,诸如在控制器130的只读存储器(read-only memory,ROM)处。

应当理解,在替换实施方式中,可以在存储器设备103处执行本文描述为由控制器130执行的一个或多个操作。作为例示性示例,可替换地可以在控制器130处执行存储器内的ECC操作(例如,编码操作和/或解码操作),或者除了在存储器设备103处执行这样的操作之外。

结合所描述的方面,装置可以包括用于存储数据的装置。例如,用于存储数据的装置可以包括存储器设备103、存储器104、存储器裸芯110-113中的一个或多个、被配置为存储数据的一个或多个其它设备、结构或电路、或其任何组合。

该装置还可以包括用于估计对应于与用于存储数据的装置相关联的第一通道的第一BER、以及用于估计对应于与用于存储数据的装置相关联的第二通道的第二BER的装置。例如,用于估计的装置可以包括图1的BER估计器140。为了说明,用于估计的装置可以基于校验权重和/或第一通道和第二通道处使用的解码模式来估计BER。在一些示例中,用于估计的装置可以根据图7的流程图的至少一部分来进行操作。

该装置还可以包括用于基于第一BER和第二BER确定是否调整第一通道的第一时钟速率和第二通道的第二时钟速率中的至少一个的装置。例如,用于确定的装置可以包括图1的吞吐量平衡器150。在一些示例中,用于确定的装置可以根据图7的流程图的至少一部分来进行操作。

第一通道可以包括用于缓冲数据的第一装置并且第二通道可以包括用于缓冲数据的第二装置。例如,用于缓冲数据的第一装置可以包括图1的抖动缓冲器133中的第一个或图2的第一抖动缓冲器233a,并且用于缓冲数据的第二装置可以包括图1的抖动缓冲器133中的第二个或图2的第二抖动缓冲器233b。

在特定方面,存储器(例如,存储器设备103的驱动器)可以包括电阻式随机存取存储器(ReRAM)、闪速存储器(例如,NAND存储器、NOR存储器、单层单元(SLC)闪速存储器、多层单元(MLC)闪速存储器、分割位线NOR(divided bit-line NOR,DINOR)存储器、AND存储器、高电容耦合(high capacitive coupling ratio,HiCR)器件、不对称非接触晶体管(asymmetrical contactless transistor,ACT)器件)或其它闪速存储器)、可擦除可编程只读存储器(electrically-erasable programmable read-only memory,EPROM)、电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、一次可编程存储器(one-time programmable memory,OTP)、另一种类型的存储器、或其组合。在特定实施例中,设备102经由网络间接地被耦合到访问设备(例如,访问设备180)。例如,设备102可以是数据中心存储系统、企业存储系统或存储区域网络的网络附加存储(NAS)设备或组件(例如,固态驱动器(SSD)组件)。

半导体存储器设备包括易失性存储器设备(诸如动态随机存取存储器(dynamic random access memory,“DRAM”)或静态随机存取存储器(static random access memory,“SRAM”)设备),非易失性存储器设备(诸如电阻式随机存取存储器(“ReRAM”)、磁阻式随机存取存储器(magnetoresistive random access memory,“MRAM”)、电可擦除可编程只读存储器(“EEPROM”)、闪速存储器(也可以被认为是EEPROM的子集)、铁电随机存取存储器(ferroelectric random access memory,“FRAM”))和其它能够存储信息的半导体元件。每种类型的存储器设备可以具有不同的配置。例如,闪速存储器设备可以被配置在NAND或NOR配置中。

存储器设备能够由无源和/或有源元件以任何组合形成。作为非限制性示例,无源半导体存储器元件包括ReRAM设备元件,其在一些实施例中包括诸如反熔丝、相变材料等的电阻率开关存储元件,以及可选地包括诸如二极管等的转向元件。另外,作为非限制性示例,有源半导体存储器元件包括EEPROM和闪速存储器设备元件,其在一些实施例中包括包含电荷区域的元件,诸如浮置栅极、导电纳米颗粒或电荷存储介电材料。

多个存储器元件可以被配置为使得它们被串联连接或者使得每个元件可被单个地访问。作为非限制性示例,NAND配置中的闪速存储器设备(NAND存储器)通常包含串联连接的存储器元件。NAND存储器阵列可以被配置为使得阵列由多个存储器串构成,其中串由共享单一位线并作为组被访问的多个存储器元件组成。可替换地,存储器元件可以被配置为使得每个元件可以被单个地访问,例如,NOR存储器阵列。NAND和NOR存储器配置是示例性的,并且存储器元件可以以其它方式被配置。

位于衬底内和/或衬底上的半导体存储器元件可以被布置成二维或三维,诸如二维存储器结构或三维存储器结构。在二维存储器结构中,半导体存储器元件被布置在单一平面或单一存储器设备级(memory device level)中。通常,在二维存储器结构中,存储器元件被布置在大体上平行于支撑存储器元件的衬底的主表面延伸的平面中(例如,x-z方向平面中)。衬底可以是在其上或其中形成存储器元件的层的晶圆,或者它可以是存储器元件形成之后附着到其的载体衬底。作为非限制性实例,衬底可以包括诸如硅的半导体。

存储器元件可以以有序阵列(诸如以多个行和/或列)被布置在单一存储器设备级中。然而,存储器元件可以以非正规或非正交配置被排列。存储器元件可以各自具有两个或更多个电极或接触线,诸如位线和字线。

三维存储器阵列被布置成使得存储器元件占据多个平面或多个存储器设备级,从而形成三维结构(即在x、y和z方向上,其中y方向大体上垂直于衬底的主表面,并且x和z方向大体上平行于衬底的主表面)。作为非限制性示例,三维存储器结构可以垂直地被布置为多个二维存储器设备级的堆叠。作为另一非限制性示例,三维存储器阵列可以被布置为多个垂直列(例如,大体上垂直于衬底的主表面(即在y方向上)延伸的列),其中每个列具有在每个列中的多个存储器元件。列可以以二维配置被布置,例如,在x-z平面中,导致具有多个垂直堆叠的存储器平面上的元件的存储元件的三维布置。三维的存储器元件的其它配置也能够构成三维存储器阵列。

作为非限制性的示例,在三维NAND存储器阵列中,存储器元件可以被耦合在一起以形成单一水平面(例如,x-z)存储器设备级内的NAND串。可替换地,存储器元件可以被耦合在一起以形成穿过多个水平面存储器设备级的垂直NAND串。能够预想其它三维配置,其中一些NAND串包含单一存储器级中的存储器元件,而其它串包含跨越多个存储器级的存储器元件。也可以以NOR配置和ReRAM配置来设计三维存储器阵列。

通常,在单片三维存储器阵列中,在单一衬底上方形成一个或多个存储器设备级。可选地,单片三维存储器阵列还可以具有至少部分地在单一衬底内的一个或多个存储器层。作为非限制性实例,衬底可以包括诸如硅的半导体。在单片三维阵列中,构成阵列的每个存储器设备级的层通常形成在阵列的底层存储器设备级的层上。然而,单片三维存储器阵列的相邻存储器设备级的层可以被共享或者在存储器设备级之间具有中间层。

可替换地,可以分开形成二维阵列,然后封装在一起以形成具有多层存储器的非单片存储器设备。例如,能够通过在单独的衬底上形成存储器级并且然后将存储器级堆叠在彼此顶部来构建非单片堆叠存储器。衬底可以在堆叠之前减薄或从存储器设备级去除,但是当存储器件级别最初形成在不同的衬底上时,所得到的存储器阵列不是单片三维存储器阵列。另外,多个二维存储器阵列或三维存储器阵列(单片或非单片)可以被形成在单独的芯片上,然后被封装在一起以形成堆叠芯片的存储器设备。

存储器元件的操作和与存储器元件的通信通常需要相关电路。作为非限制性示例,存储器设备可以具有用于控制和驱动存储器元件以完成诸如编程和读取等功能的电路。该相关电路可以在与存储器元件相同的衬底上和/或在单独的衬底上。例如,用于存储器读取-写入操作的控制器可以位于单独的控制器芯片上和/或位于与存储器元件相同的衬底上。

本领域技术人员将认识到,本公开不限于所描述的二维和三维示例性结构,而是覆盖在本文所述的并且如本领域技术人员所理解的本公开的精神和范围内的所有相关存储器结构。本文描述的实施例的例示意图提供对各种实施例的一般理解。可以从本公开中利用和推导出其它实施例,使得可以在不脱离本公开的范围的情况下做出结构的和逻辑的替换和改变。本公开意图覆盖各种实施例的任何和所有随后的适应或变化。本领域技术人员将认识到这样的修改是在本公开的范围内。

以上公开的主题将被认为是例示性的而不是限制性的,并且所附权利要求意图覆盖落入本公开的范围的所有这样的修改、增强、和其它实施例。因此,本发明的范围被对所附权利要求及其等同物的最广泛可允许解释确定到法律所允许的最大程度,并且不应该被前述详细描述所约束或限制。

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