包含与控制器分离的封装内定序器的存储器子系统的制作方法

文档序号:25181703发布日期:2021-05-25 14:56阅读:66来源:国知局
包含与控制器分离的封装内定序器的存储器子系统的制作方法

本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及包含与控制器分离的封装内定序器的存储器子系统。



背景技术:

存储器子系统可以是存储系统,如固态驱动器(ssd)或硬盘驱动器(hdd)。存储器子系统可以是存储器模块,如双列直插式存储器模块(dimm)、小型dimm(so-dimm)或非易失性双列直插式存储器模块(nvdimm)。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可例如是非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统来将数据存储在存储器组件处且从存储器组件检索数据。

附图说明

根据下文给出的详细描述和本公开的各种实施例的随附图式,将更充分地理解本公开。

图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。

图2说明根据本公开的一些实施例的包含可操作地联接到具有不同存储器类型的不同存储器组件的多个定序器的实例封装。

图3是根据本公开的一些实施例的用于进行指令的实例方法的流程图。

图4是根据本公开的一些实施例的用于在存储器组件上进行操作的实例方法的流程图。

图5说明根据本公开的一些实施例的包含减小数目的引脚和减小的外观尺寸的控制器。

图6是根据本公开的一些实施例的用于确定待用于错误校正码操作的配置参数的实例方法的流程图。

图7是根据本公开的一些实施例的用于确定待用于存储器管理操作的配置参数的实例方法的流程图。

图8是根据本公开的一些实施例的用于确定待用于存储器映射操作的配置参数的实例方法的流程图。

图9是根据本公开的实施例的用于确定用于定序器操作的配置参数和以将配置参数发送到定序器的实例方法的流程图。

图10是本公开的实施例可在其中操作的实例计算机系统的框图。

具体实施方式

本公开的方面是针对包含与控制器分离的封装内定序器的存储器子系统。存储器子系统在下文也称为“存储器装置”。存储器子系统的实例是经由外围互连件(例如,输入/输出总线、存储区域网络)联接到中央处理单元(cpu)的存储装置。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器和硬盘驱动器(hdd)。存储器子系统的另一实例是经由存储器总线联接到cpu的存储器模块。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm)、非易失性双列直插式存储器模块(nvdimm)等。在一些实施例中,存储器子系统可以是混合式存储器/存储装置子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供数据以存储于存储器子系统处且可请求从存储器子系统检索数据。

存储器子系统可包含可存储来自主机系统的数据的多个存储器组件。每个存储器组件可包含不同类型的媒体。媒体的实例包含但不限于非易失性存储器的交叉点阵列和基于快闪的存储器,如单层级单元(slc)存储器、三层级单元(tlc)存储器和四层级单元(qlc)存储器。不同类型的媒体的特性在一种媒体类型与另一媒体类型之间可不同。与存储器组件相关联的特性的一个实例是数据密度。数据密度对应于存储器组件的每存储器单元可存储的数据量(例如,数据位)。使用基于快闪的存储器的实例,四层级单元(qlc)可存储四个数据位,而单层级单元(slc)可存储一个数据位。存储器组件的特性的另一实例是存取速度,所述存取速度对应于存储器组件存取存储于存储器组件处的数据的时间量。

存储器子系统还可包含可操作地联接到存储器组件的控制器。控制器可操作为主机系统与存储器子系统的存储器组件之间的“桥接器”以用于数据传输和/或管理。在一些情况下,控制器和相关联存储器组件可由不同供应商制造,且控制器和/或存储器组件中的每一个可具有对应的封装。为增大存储器子系统的容量,存储器组件可添加到存储器子系统。控制器必须与多个存储器组件介接。为与存储器组件介接,在常规系统中,控制器包含大量引脚。包含大量引脚可增大控制器的封装大小,其可继而增大系统外观尺寸。

在一些常规系统中,控制器使用串行器/解串器(serdes)连接(例如,串行高级技术附件(sata)、通用串行总线(usb)、外围组件互连高速(pcie)、通用快闪存储装置(ufs)等)与主机系统介接以使引脚计数最小化。常规控制器可包含使用对存储器组件的存储器类型特定的协议和时序要求(例如,读取/写入时延等)与存储器组件介接且指示存储器组件的定序器组件。控制器可经由利用双数据速率(ddr)的并行接口与存储器组件介接以获得特定带宽和容量。增大与控制器直接介接的存储器组件的数目可使用更多空间且在布线并行接口时造成困难。因此,控制器与存储器组件之间的布线路径(例如,迹线)可以是长的,由此损害信号完整性。另外,使用经由并行接口到存储器组件的较长布线路径可使负荷更大,由此消耗非所要功率量。

本公开的方面通过将定序器组件与控制器分离且在个别封装中包含具有一或多个存储器组件的定序器组件来解决以上和其它缺陷。定序器组件可制造于独立硅中,存储器组件可制造于独立裸片中,且独立硅和独立裸片可包含在相同封装中。封装可指支持将封装连接到应用板的电触点且防止物理损害和腐蚀的壳体。应用板可指控制器、封装和/或存储器组件驻存在其上的印刷电路板。每一定序器组件利用存储器组件的某一类型(例如,交叉点阵列、nand快闪等)操作且可利用具有所述类型的存储器的多个存储器组件操作。定序器组件可经由对存储器类型特定的协议与存储器组件介接。每一封装可包含与对应的不同类型的存储器组件介接的多个定序器组件。另外,存储器子系统可包含各自包含与一或多个存储器组件介接的一或多个定序器组件的多个封装。

定序器组件可经由提供比并行接口更高带宽的serdes连接与控制器介接。另外,serdes连接使用比并行连接更少的引脚。因此,可使用所公开的技术减小控制器中的引脚计数,同时仍容纳包含在联接到控制器的封装中的相同数目或更多存储器组件。减小控制器的引脚计数可引起包含与包含更多引脚的先前常规系统相同的容量(例如,相同数目的存储器组件)的存储器子系统的减小的外观尺寸。

另外,信号完整性可改良,这是因为独立封装内的定序器组件与存储器组件之间的距离短于常规系统中的定序器组件与存储器组件之间的距离,在所述常规系统中定序器组件在控制器内。也就是说,封装小于应用板,且因此,封装内的定序器组件与存储器组件之间的迹线短于常规系统,在所述常规系统中迹线在应用板上延行。较短迹线可改良信号完整性,以及减小封装上的负荷且消耗比常规系统更少的功率,在所述常规系统中布线路径较长。

在一些实施例中,定序器组件可尝试通过施行对存储器组件的存储器类型的时序要求来使存储器组件与定序器组件之间的接口带宽最大化。时序要求可涉及针对存储器类型进行的读取/写入操作的时延。定序器组件可基于所述类型的存储器组件的时延而计时何时其发出读取/写入命令。另外,定序器组件可基于与命令和命令中涉及的地址相关的某些规则而重新排序命令。也就是说,定序器组件可通过考虑确保数据相干性的规则来重新排序读取/写入请求。举例来说,如果存在写入请求且随后存在对相同地址的读取请求,那么规则可指示读取请求不能在写入请求之前移动,这是因为读取请求将返回旧数据。因此,定序器组件可基于存储器组件的带宽来重新排序操作且施行何时将操作传输到存储器组件的时序。

在一些实施例中,缺乏定序器组件的控制器可进行与存储器管理、存储器映射和/或错误校正相关的一或多个操作。由控制器接收到的数据和/或操作的结果可存储于控制器的存储器缓冲器中。控制器可经由数个输出引脚将数据和/或结果传输到定序器组件。可经由定序器组件调适每一操作以用于包含在联接到控制器的封装中的具体类型的存储器组件。

控制器可确定待用于不同操作的一或多个配置参数,且一或多个配置参数可基于与控制器相关联且联接到定序器组件的存储器组件的存储器类型。存储器组件可通过从主机系统接收存储器类型的指示、存取先前存储于控制器的本地存储器中的存储器类型或查询定序器组件以获得联接到定序器组件的存储器组件的存储器类型来确定存储器组件的存储器类型。控制器可基于对存储器类型特定的配置参数来进行操作。

举例来说,一个存储器管理操作可包含在封装中的存储器组件上进行耗损均衡。耗损均衡可指使被选择以进行读取和/或写入操作的存储器组件交替以确保每一存储器组件均匀地耗损。耗损均衡方案可基于存储器组件的类型(例如,交叉点阵列、快闪等)因为存储器类型的不同属性而不同。因此,存储器组件可确定用于具有第一存储器类型的第一存储器组件的第一耗损均衡方案的第一配置参数和用于具有第二存储器类型的第二存储器组件的第二耗损均衡方案的第二配置参数。

在另一实例中,与错误校正相关的操作可包含可用于改良存储于存储器子系统中的数据的可靠性的错误校正码操作。错误校正码操作可指用于表达一序列数据以使能够基于其它剩余数据来检测和校正引入到数据的错误的技术。所述序列的数据可称为码字。错误校正码的类型可包含分组码(例如,汉明(hamming)码、里德所罗门(reedsolomon)码等)。通常,编码器编码待写入有额外数据位的数据以形成码字,且码字的部分可跨存储器子系统的存储器组件分布(例如,分割)。当将读取数据时,解码器通过去除额外数据位和提供所要原始数据来解码码字。

用于错误校正码操作的配置参数可包含用于存储器组件的存储器类型的错误校正码参数(例如,编码/解码)。控制器可从主机系统接收数据且通过使用错误校正码操作基于配置参数来产生用于数据的码字。随后,码字可发送到控制器外部的定序器组件,且定序器组件可根据上文所描述的时序要求和规则来分布码字。

在另一实例中,一个存储器映射操作可包含进行地址转译。主机系统可利用不同于存储器组件的实际物理地址空间的地址空间。因此,存储器组件可确定待用于存储器组件的存储器类型的存储器映射操作的配置参数。存储器组件可基于用于操作中涉及的存储器组件的类型的配置参数来进行逻辑地址映射到物理地址映射。存储器组件可将命令中的物理地址发送到定序器。

在另一实施例中,控制器可确定用于由定序器组件执行的操作的配置参数,且将配置参数发送到定序器组件。配置参数可包含对联接到定序器组件的存储器组件的存储器类型的时序要求。如上文所描述,定序器组件可基于对存储器组件的存储器类型的时序要求来计时何时将命令发出到存储器组件(例如,读取/写入操作)。

图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,如存储器组件112。存储器组件112可以是易失性存储器组件、非易失性存储器组件或此类组件的组合。在一些实施例中,存储器子系统是存储系统。存储系统的实例是ssd。在一些实施例中,存储器子系统110是混合式存储器/存储装置子系统。

在一些实施例中,存储器组件112可包含在分离的对应的封装130a到130n中。如所描绘,存储器组件112a(1)到112n(1)联接到第一封装130a中的第一定序器组件140a且存储器组件112a(2)到112n(2)联接到另一封装130n中的另一定序器组件140n。定序器组件140a到140n中的每一个可制造于独立硅中,且存储器组件112中的每一个可制造于独立裸片中。在常规存储器子系统中,定序器组件140通常定位于存储器系统控制器115(下文称为“控制器”)内。定序器组件140和对应的存储器组件112可包含在单个封装中且经由短迹线160联接以改良将命令从定序器组件140发出到存储器组件112的性能。通过使用定序器组件140与存储器组件之间的较短迹线,相较于常规布置,功率负荷消耗可减小且数据信号完整性可增强。此外,如本文所论述,将定序器组件140移动到与控制器115分离的封装130可提供许多其它益处,如减小存储器子系统110的外观尺寸,增大控制器115与存储器组件112之间的带宽等等。

举例来说,相较于并行接口,封装130中的定序器组件140和存储器组件112可经由serdes接口150联接到控制器115。serdes接口150提供比并行接口更高的带宽,且还使用较少传出引脚,由此减小控制器115所需的引脚的数目以提供具有相同容量(例如,存储器组件112的数目)的存储器子系统110。举例来说,serdes接口可使用六个引脚(例如,两个用于时钟,两个用于传输,两个用于接收),然而并行接口可使用超过二十个引脚来操作。减小控制器115的传出引脚计数可通过减小控制器110的大小来改良整个存储器子系统110的外观尺寸。另外,从控制器115去除定序器组件140还可减小控制器115的大小。

定序器组件140a到140n可进行一或多个操作且可基于对应的定序器组件联接到的存储器组件112的类型而配置。举例来说,定序器组件140a可从控制器115接收各种数据且基于所附接存储器组件112a(1)到112a(1)的类型的时序要求和用于确保数据相干性的某些规则等来调度何时将读取/写入命令发出到所附接存储器组件112a(1)到112a(1)。在一些实施例中,一个定序器组件140联接到具有单个存储器类型的存储器组件112。可存在包含在每一封装130中的许多定序器组件140,且因此,单个封装130可包含具有不同类型的联接到封装140内的不同对应的定序器组件140的存储器组件112。在额外实施例中,每一封装140可包含具有单个存储器类型的存储器组件112,且因此,每一封装130可专用于提供与正使用的存储器组件112的类型相关联的操作特性。

一般来说,计算环境100可包含使用存储器子系统110的主机系统120。举例来说,主机系统120可将数据写入到存储器子系统110且从存储器子系统110读取数据。主机系统120可以是计算装置,如台式计算机、膝上型计算机、网络服务器、移动装置或包含存储器和处理装置的此类计算装置。主机系统120可包含或联接到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可经由物理主机接口联接到存储器子系统110。如本文中所使用,“联接到”总体上指代组件之间的连接,其可以是间接通信连接或直接通信连接(例如,无介入组件),不论有线或无线的,包含如电连接、光学连接、磁性连接等连接。物理主机接口的实例包含(但不限于)串行/解串(serdes)接口、串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行附接scsi(sas)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120联接时,主机系统120可进一步利用nvm高速(nvme)接口来存取存储器组件112a到112n。物理主机接口可提供接口以用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号。

存储器组件112可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(nand)型快闪存储器。存储器组件112中的每一个可包含存储器单元的一或多个阵列,所述存储器单元如单层级单元(slc)或多层级单元(mlc)(例如,三层级单元(tlc)或四层级单元(qlc))。在一些实施例中,特定存储器组件可包含存储器单元的slc部分和mlc部分两者。存储器单元中的每一个可存储由主机系统120使用的一或多个数据位(例如,数据块)。尽管描述非易失性存储器组件,如nand型快闪存储器,但存储器组件112可基于任何其它类型的存储器,如易失性存储器。在一些实施例中,存储器组件112可以是(但不限于)随机存取存储器(ram)、只读存储器(rom)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、相变存储器(pcm)、磁随机存取存储器(mram)、或非(nor)快闪存储器、电可擦除可编程只读存储器(eeprom)和非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。此外,相比于许多基于快闪的存储器,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下编程非易失性存储器单元。此外,存储器组件112的存储器单元可分组为存储器页或数据块,其可指代用于存储数据的存储器组件的单元。

控制器115可经由定序器组件140与存储器组件112通信以进行操作,如在存储器组件112处读取数据、写入数据或擦除数据以及其它这类操作。在一个实例中,且如下文进一步所论述,控制器115可包含错误组件116。错误校正码可用于改良存储于存储器子系统110中的数据的可靠性。错误校正码可指用于表达一序列数据以使能够基于其它剩余数据来检测和校正引入到数据的错误的技术。所述序列的数据可称为码字。错误校正码的类型可包含分组码(例如,汉明码、里德所罗门码等)。

错误组件116可进行错误校正码编码操作,所述错误校正码编码操作编码由主机系统120接收到的具有额外数据位(例如,奇偶位)的数据以形成待经由定序器组件140写入到存储器组件112的码字。错误组件116还可进行错误校正码解码操作,所述错误校正码解码操作通过去除额外数据位来解码码字。编码/解码操作可使用基于数据待存储在其上的存储器组件112的类型的某些配置参数。控制器115可将一或多个码字发送到定序器组件140a。定序器组件140a可通过考虑存储器组件112a(1)到112n(1)的带宽和可用性、存储器组件112a(1)到112n(1)的时序要求(例如,读取/写入时延)和关于读取/写入操作的定序的规则来确定哪些码字的部分存储在存储器组件112a(1)到112n(1)上。定序器组件116的一个目的可以是使定序器组件116与存储器组件112a(1)到112n(1)之间的接口带宽最大化。

控制器115可包含硬件,如一或多个集成电路和/或离散组件、缓冲存储器或其组合。控制器115可以是微控制器、专用逻辑电路(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。控制器115可包含配置成执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明的实例中,控制器115的本地存储器119包含配置成存储指令的嵌入式存储器,所述指令用于进行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。尽管图1中的实例存储器子系统110已说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可不包含控制器115,且可实际上依赖于(例如由外部主机或由与存储器子系统分离的处理器或控制器提供的)外部控制。

一般来说,控制器115可从主机系统120接收命令或操作且可将命令或操作转换成指令或适当的命令,以实现对存储器组件112的所要存取。控制器115可包含进行错误校正码操作的错误组件116、进行与存储器组件112相关联的逻辑块地址与物理块地址之间的地址转译的存储器映射组件118和进行耗损均衡操作的存储器管理组件121。处理装置117可执行各种组件116、118和121。此外,各种组件116、118和121可使用对包含在存储器子系统110中的存储器组件112的类型特定的配置参数。可从主机系统120接收配置参数,且所述配置参数可在制造工艺期间预存储在本地存储器119中,和/或可经由定序器组件140通过查询什么类型的存储器组件112包含在封装130中来从封装130提取所述配置参数。在一些情况下,定序器组件140可提供指示其与之相关联的存储器组件112的类型的通知。下文描述关于错误组件116、存储器映射组件118和存储器管理组件121的操作的其它细节。

控制器115可负责其它操作,此类垃圾收集操作、加密操作和/或高速缓存操作。控制器115可进一步包含主机接口电路以经由物理主机接口与主机系统120通信。主机接口电路可将从主机系统接收到的命令转换成命令指令以经由定序器组件140a到140n存取存储器组件112,以及将与存储器组件112相关联的响应转换成用于主机系统120的信息。

存储器子系统110还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲(例如,dram)和地址电路(例如,行解码器和列解码器),其可从控制器115接收地址且解码地址以存取存储器组件112。

图2说明根据本公开的一些实施例的包含可操作地联接到具有不同存储器类型的不同存储器组件112的多个定序器组件140的实例封装130a。如所描绘,第一定序器组件140a(1)联接到具有第一存储器类型(例如,nand快闪)的第一存储器组件112a(1.1)到112n(1.2),且第二定序器组件140n(1)联接到具有第二存储器类型(例如,交叉点阵列)的第二存储器组件112a(2.1)到112n(2.2)。应理解,联接到具有对应的存储器类型的对应的存储器组件的任何数目的定序器组件可包含在封装130中以满足封装130的所要性能属性。

图3是根据本公开的一些实施例的用于进行指令的实例方法300的流程图。方法300可由处理逻辑进行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的定序器组件140a进行。虽然以特定顺序或次序来展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。此外,可在各种实施例中省略一或多个过程。因此,在每一实施例中并不需要所有过程。其它过程流程是可能的。

在框310处,处理装置在定序器组件140a处接收指令。可从控制器115接收指令。定序器组件140a可定位于包含联接到一或多个存储器组件112a(1)到112n(1)的定序器组件140a的封装130a中。定序器组件140a可制造于其自身的独立硅中,存储器组件112a(1)到112n(1)可制造于其自身的独立裸片中,且独立硅和独立裸片可包含在封装130a中。定序器组件140a可联接到与封装130a分离的控制器115。定序器组件140a可经由serdes接口联接到控制器115。定序器组件140a与存储器组件112a(1)到112n(1)之间的迹线可短于定序器组件140a与控制器115之间的迹线。

在框320处,定序器组件140a的处理装置基于指令在一或多个存储器组件112a(1)到112n(1)中的至少一个上进行操作。操作可包含经由对存储器组件112a(1)到112n(1)的类型特定的协议与一或多个存储器组件112a(1)到112n(1)介接,基于存储器组件112a(1)到112n(1)的类型来施行对一或多个存储器组件112a(1)到112n(1)的操作时序要求,和基于与数据相干性相关的规则来重新排序操作。

在一些实施例中,处理装置可基于各种存储器组件112a(1)到112n(1)的读取/写入时延来施行对何时发出命令的时序要求。举例来说,如果确定存储器组件112a(1)到112n(1)进行操作花费多长时间的时延,那么处理装置可调度何时将后续命令发出到存储器组件112a(1)到112n(1)。在一些情况下,可根据配置参数确定时延。在另一个例子中,处理装置可动态地确定时延。另外,如果时延在存储器组件的使用期间改变,那么处理装置可在发出其它命令时考虑所述改变。处理装置可施行时序要求以使定序器组件140a与存储器组件112a(1)到112n(1)之间的带宽最大化。

另外,处理装置可基于与从控制器115接收到的指令中涉及的命令和地址相关的规则来重新排序操作。一般来说,处理装置可重新排序读取和写入操作以使定序器组件140a与存储器组件112a(1)到112n(1)之间的带宽最大化。举例来说,如果存在针对第一地址接收到的读取操作,但包含所述地址的存储器组件112a(1)繁忙,那么可利用可更早执行的另一操作移动所述读取操作以改良性能。如果重新排序满足规则,那么可进行重新排序。举例来说,指令可指定存储器组件112a(1)的相同地址处的写入和读取。在此类例子中,规则可指定不能重新排序操作,因为如果读取操作重新排序为第一,那么读取操作将在写入操作更新数据之前提供旧数据。

在一些实施例中,第二定序器组件140n可接收第二指令。第二定序器组件140n可定位于另一封装140n中,且第二定序器组件140n能够可操作地联接到第二封装130n内的一或多个第二存储器组件112a(2)到112n(2)。第二定序器组件140n能够可操作地联接到控制器115。第二封装130n中的存储器组件112a(2)到112n(2)可包含不同于封装130a中的存储器组件112a(1)到112n(1)的存储器类型。第二定序器组件140n可经由对第二存储器类型特定的协议与第二存储器类型介接。

图4是根据本公开的一些实施例的用于在存储器组件上进行操作的实例方法的流程图。方法400可由处理逻辑进行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的定序器组件140a进行。虽然以特定顺序或次序来展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。此外,可在各种实施例中省略一或多个过程。因此,在每一实施例中并不需要所有过程。其它过程流程是可能的。

在框410处,定序器组件140a的处理装置从定位在包含定序器组件140a的系统外部的控制器115接收指令。在一些实施例中,系统可以是封装130a。封装130a可包含可操作地联接到存储器组件112a(1)的定序器组件140a。定序器组件140a能够可操作地联接到封装130a外部的控制器115。在一些实施例中,定序器组件140a与存储器组件112a(1)之间的迹线可短于控制器115与定序器组件140a之间的迹线。定序器组件140a和控制器115可经由serdes接口联接。

在框420处,处理装置基于指令来确定在存储器组件112a(1)上进行的操作。指令可以是将数据写入到存储器组件112a(1)的物理地址或从存储器组件112a(1)的物理地址读取数据。举例来说,指令可包含码字,且操作可包含将码字划分成部分和发出将所述部分存储在存储器组件112a(1)的一或多个数据块上的命令。码字可由控制器115基于对包含在封装130a中的存储器组件112a(1)的类型特定的配置参数来编码。处理装置可基于对存储器组件112a(1)的存储器类型的时序要求来确定何时进行操作的时序。

在框430处,处理装置在存储器组件112a(1)上进行操作。举例来说,处理装置可使存储器组件112a(1)将码字的部分写入到存储器组件112a(1)的一或多个数据块。

在一些情况下,在进行操作之前,处理装置还可从系统外部的控制器115接收第二指令。处理装置可基于第二指令来确定在存储器组件112a(1)上进行的第二操作。处理装置可基于规则而确定将在操作之前进行第二操作。举例来说,第一指令可与到地址的读取操作相关联,且第二指令可与到所述地址的写入操作相关联。规则可指定在读取操作之前进行写入操作以使得读取操作返回当前数据。处理装置可随后在操作之前在存储器组件112a(1)上进行第二操作且随后在存储器组件112a(1)上进行所述操作。

图5说明根据本公开的一些实施例的包含减小数目的引脚500和减小的外观尺寸的控制器115。控制器经由连接150联接到封装130a,所述连接150在一些实施例中可以是serdes接口。如上文所描述,serdes接口可使用控制器115的大致六个传出引脚来与定序器组件140a通信。六个传出引脚可包含用于时钟的两个引脚、用于传输的两个引脚和用于接收的两个引脚。应了解,在常规系统中,具有二十个或更多引脚的并行接口通常用于将控制器115连接到存储器组件112。然而,本公开的实施例可通过将定序器组件140a移动到具有存储器组件112a到112n的封装130a和间接地通过定序器组件140a将控制器115连接到存储器组件112a到112n来使用serdes接口。因此,控制器115与存储器组件112a到112n之间的带宽可使用serdes接口150来增大,控制器115的大小可由于减小数目的引脚500而减小,且存储器子系统110的外观尺寸可减小,以及其它。

如所描绘,控制器115包含错误组件116、存储器映射组件118和存储器管理组件121。各种组件115、116和121可进行基于对包含在封装130中的存储器组件112a到112n的类型特定的配置参数的各种操作。图6到8总体上涉及使用用于存储器组件112a到112n的特定类型的配置参数来进行不同操作的控制器115。此外,控制器115可确定包含在封装130a中的存储器组件的类型且可将与特定存储器类型的时序要求相关的配置参数提供到定序器组件140a。图9总体上涉及控制器确定配置参数且将配置参数传输到定序器组件140a。

图6是根据本公开的一些实施例的用于确定待用于错误校正码操作的配置参数的实例方法600的流程图。方法600可由处理逻辑进行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法600由图1的错误组件116进行。虽然以特定顺序或次序来展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。此外,可在各种实施例中省略一或多个过程。因此,在每一实施例中并不需要所有过程。其它过程流程是可能的。

在框610处,处理装置确定待用于错误校正码(ecc)操作的配置参数。配置参数是基于与控制器115相关联的存储器组件112a(1)的存储器类型。存储器组件112a(1)可与定序器组件140a一起包含在封装130a中。定序器组件140a和存储器组件112a(1)可以通信方式联接。控制器115可经由serdes接口与控制器115外部的定序器组件140a联接。控制器115可将指令发出到定序器组件140a,且定序器组件140a可确定在与控制器115相关联的存储器组件112a(1)上进行的各种操作。

处理装置可以数种方式确定配置参数。举例来说,在框612中,处理装置可从主机系统120接收包含用于一或多种类型的存储器组件112的配置参数的第一数据结构(例如,表)。在一些实施例中,处理装置可由定序器组件140a通知关于包含在封装130a中的存储器组件112a到112n的类型。在另一实施例中,定序器组件140a可请求定序器组件140a提供包含在封装130a中的存储器组件112a到112n的类型。处理装置可使用存储器组件112a到112n的类型来搜寻第一数据结构以确定待用于错误校正码操作的配置参数。确切地说,配置参数可涉及所使用的编码/解码方案,所述编码/解码方案可基于所使用的存储器组件的类型而改变。

另一确定配置参数的方式展示于框614中,其中处理装置可在本地存储器119中存取包含配置参数的第二数据结构。第二数据结构可在制造控制器115之后和在初始设置和数据加载到控制器115时存储于本地存储器119中。在一些实施例中,第二数据结构可在软件、固件或类似物的更新期间存储于本地存储器119中。类似于上文所描述的内容,处理装置可搜寻用于所使用的存储器组件112a到112n的类型的第二数据结构且确定待用于错误校正码操作的配置参数。

又另一确定配置参数的方式展示于框616中,其中处理装置可查询定序器组件140a以获得配置参数。举例来说,定序器组件140a可从控制器115接收请求且通过搜寻封装130a的本地存储器或基于定序器组件140a所已知的存储器组件112a到112n的属性来确定配置参数。定序器组件140a可将待用于错误校正码操作的配置参数提供到控制器115。

在框620处,处理装置从主机系统120接收数据。数据可包含主机系统120请求的待存储于存储器子系统110中的数据。在一个实例中,数据可以是用户数据。

在框630处,处理装置通过使用基于配置参数的ecc操作来产生用于数据的码字。如上所述,配置参数可包含用于封装130a中的存储器组件112a到112n的存储器类型的ecc参数。ecc参数可指定在ecc操作期间应用于数据的编码/解码方案。应理解,控制器115可与超过一个存储器组件相关联,且其它存储器组件可具有不同类型。使用所公开的技术,控制器115可确定待用于每个类型的相关联存储器组件的ecc操作的配置参数且可使用对应的配置参数来进行ecc操作。

在框640处,处理装置将码字发送到控制器115外部的定序器组件140a。在一些情况下,待写入的码字可存储于本地存储器119(例如,存储缓冲器)中,且处理装置可通过控制器115的输出引脚经由serdes接口将存储于存储缓冲器处的码字传输到定序器组件140a。

在一些实施例中,控制器115可请求从定序器组件140a读取码字。定序器组件140a可提供码字,且控制器115可基于所确定的配置参数来解码码字。在一些情况下,解码的数据可由控制器115传输到主机系统120。

图7是根据本公开的一些实施例的用于确定待用于存储器管理操作的配置参数的实例方法700的流程图。方法700可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法700由图1的的存储器管理组件121进行。虽然以特定顺序或次序来展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。此外,可在各种实施例中省略一或多个过程。因此,在每一实施例中并不需要所有过程。其它过程流程是可能的。

在框710处,处理装置确定待用于存储器管理操作的配置参数。配置参数是基于与控制器115相关联的存储器组件112a(1)的存储器类型。在一个实例中,待用于存储器管理操作的配置参数可涉及用于具体类型的存储器组件112a(1)的耗损均衡方案。存储器组件112a(1)可与定序器组件140a一起包含在封装130a中。定序器组件140a和存储器组件112a(1)可以通信方式联接。控制器115可经由serdes接口与控制器115外部的定序器组件140a联接。控制器115可将指令发出到定序器组件140a,且定序器组件140a可确定在与控制器115相关联的存储器组件112a(1)上进行的各种操作。

类似于如何参考图6确定待用于ecc操作的配置参数,处理装置可以数种方式确定待用于存储器管理操作的配置参数。举例来说,在框712中,处理装置可从主机系统120接收包含待用于特定类型的存储器组件112a(1)的存储器管理操作的配置参数的第一数据结构(例如,表)。在另一实例中,在框714中,处理装置可在本地存储器119中存取包含待用于存储器管理操作的配置参数的第二数据结构。在又另一实例中,在框716中,处理装置可查询定序器组件140a以获得待用于存储器管理操作的配置参数。另外或替代地,在一些实施例中,处理装置可向定序器组件140a查询存储器组件112a(1)的类型,且使用接收到的对上文描述的技术中的任一种的响应。

在框720处,处理装置基于配置参数来确定应用于存储器组件112a(1)上的操作的用于定序器组件140a的耗损均衡方案。某些类型(例如,交叉点阵列、nand快闪等)可包含不同属性,如物理媒体在进行操作时的降级速率。使用用于所述类型的存储器组件112a(1)的配置参数,处理装置可确定将读取/写入操作均匀地分布、将读取操作或写入操作不成比例地分布或其某一组合到存储器组件112a(1)和/或存储器组件112a(1)到112n(1)的不同数据块以确保将操作的耗损分布成提高存储器组件112a(1)到112n(1)的使用寿命的耗损均衡方案。

在框730处,处理装置将耗损均衡方案和/或数据发送到定序器组件140a。耗损均衡方案可指对使用哪些存储器组件进行操作的调度,或用以在某些存储器组件上进行操作以实行耗损均衡的实际指令。在一些情况下,待写入的耗损均衡方案和/或任何数据可存储于本地存储器119(例如,存储缓冲器)中,且处理装置可通过控制器115的输出引脚将存储于存储缓冲器处的耗损均衡方案和/或数据传输到定序器组件140a。

定序器组件140a可使用何时调度使用哪些存储器组件112a(1)到112n(1)以用于某些操作和何时在存储器组件112a(1)到112n(1)上进行操作的耗损均衡方案。调适用于存储器组件112的类型的耗损均衡方案提供灵活架构,其中不同类型的存储器组件112可基于其所要性能特点而使用,同时仍使存储器组件112耐久性最大化。

图8是根据本公开的一些实施例的用于确定待用于存储器映射操作的配置参数的实例方法800的流程图。方法800可由处理逻辑进行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法800由图1的存储器映射组件118进行。虽然以特定顺序或次序来展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。此外,可在各种实施例中省略一或多个过程。因此,在每一实施例中并不需要所有过程。其它过程流程是可能的。

在框810处,处理装置确定待用于存储器映射操作的配置参数。配置参数是基于与控制器115相关联的存储器组件112a(1)的存储器类型。在一个实例中,待用于存储器映射操作的配置参数可包含用于具体类型的存储器组件112a(1)的与物理地址的存储器映射。存储器组件112a(1)可与定序器组件140a一起包含在封装130a中。定序器组件140a和存储器组件112a(1)可以通信方式联接。控制器115可经由serdes接口与控制器115外部的定序器组件140a联接。控制器115可将指令发出到定序器组件140a,且定序器组件140a可确定在与控制器115相关联的存储器组件112a(1)上进行的各种操作。

类似于如何参考图6确定待用于ecc操作的配置参数,处理装置可以数种方式确定待用于存储器映射操作的配置参数。举例来说,在框812中,处理装置可从主机系统120接收包含待用于存储器组件112a(1)的特定类型的存储器映射操作的配置参数的第一数据结构(例如,表)。在另一实例中,在框814中,处理装置可在本地存储器119中存取包含待用于存储器映射操作的配置参数的第二数据结构。在又另一实例中,在框816中,处理装置可查询定序器组件140a以获得待用于存储器映射操作的配置参数。另外或替代地,在一些实施例中,处理装置可向定序器组件140a查询存储器组件112a(1)的类型,且使用接收到的对上文描述的技术中的任一种的响应。

在框820处,处理装置使用存储器映射基于配置参数来将读取或写入数据之处的逻辑地址转译为存储器组件112a(1)上的物理地址。在一些实施例中,主机系统120可将数据发送到控制器115,且数据可包含数据存储于主机系统120中之处的逻辑地址。使用存储器映射,处理装置可将逻辑地址转译为存储器组件112a(1)中的物理地址。

在框830处,处理装置将物理地址和/或数据发送到定序器组件140a。在一些情况下,物理地址和/或数据可存储于本地存储器119(例如,存储缓冲器)中,且处理装置可通过控制器115的输出引脚将存储于存储缓冲器处的物理地址和/或数据传输到定序器组件140a。

定序器组件140a可使用物理地址来将数据写入到存储器组件112a(1)。如可了解,不同类型的存储器组件112可具有不同物理地址。因此,使存储器映射组件118能够将逻辑地址转译为对目标存储器组件112特定的任何物理地址可基于存储器子系统110的所要性能来提供使用存储器子系统110中的不同类型的存储器组件112的益处。

图9是根据本公开的实施例的用于确定用于定序器组件操作的配置参数和以将配置参数发送到定序器组件的实例方法900的流程图。方法900可由处理逻辑进行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法900由图1的控制器115进行。虽然以特定顺序或次序来展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。此外,可在各种实施例中省略一或多个过程。因此,在每一实施例中并不需要所有过程。其它过程流程是可能的。

在框910处,处理装置确定由定序器组件140a进行的一或多个操作的配置参数。配置参数是基于与控制器115相关联的存储器组件112a(1)的存储器类型。操作可涉及施行对存储器组件112a(1)的具体类型的时序要求。如此,在一些实施例中,配置参数可包含时序参数,所述时序参数基于存储器组件112a(1)的类型、存储器组件112a(1)的不同产生和类似物而改变。配置参数还可包含用于重新排序操作的规则。存储器组件112a(1)可与定序器组件140a一起包含在封装130a中。定序器组件140a和存储器组件112a(1)可以通信方式联接。控制器115可经由serdes接口与控制器115外部的定序器组件140a联接。

类似于如何参考图6确定待用于ecc操作的配置参数,处理装置可以数种方式确定待用于由定序器组件140a进行的操作的配置参数。举例来说,在框912中,处理装置可基于存储器组件112a(1)的特定类型来从主机系统120接收包含由定序器组件140a进行的操作的配置参数的第一数据结构(例如,表)。在另一实例中,在框914中,处理装置可在本地存储器119中存取包含由定序器组件140a进行的操作的配置参数的第二数据结构。在又另一实例中,在框916中,处理装置可查询定序器组件140a以获得待用于操作的配置参数。另外或替代地,在一些实施例中,处理装置可向定序器组件140a查询存储器组件112a(1)的类型,且使用接收到的对上文描述的技术中的任一种的响应。

在框920处,处理装置将待写入的配置参数和/或任何数据发送到定序器组件140a。在一些情况下,配置参数和/或数据可存储于本地存储器119(例如,存储缓冲器)中,且处理装置可通过控制器115的输出引脚将存储于存储缓冲器处的配置参数和/或数据传输到定序器组件140a。

定序器组件140a可使用配置参数来进行操作。举例来说,配置参数可包含对存储器组件112a(1)的类型的时序要求,且处理装置可基于时序要求来定序在存储器组件112a(1)上进行的操作的次序。此外,配置参数可包含基于命令和包含在指令中的地址的规则以重新排序操作的顺序。如上文所描述,定序器组件140a可通过施行时序要求和使用规则以重新排序操作的顺序来使定序器组件140a与存储器组件112a(1)之间的带宽最大化。

图10说明计算机系统1000的实例机器,在所述实例机器内可执行用于使机器进行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统1000可对应于包含、联接到或利用存储器子系统(例如,图1的存储器子系统110)的主机系统(例如,图1的主机系统120)或可用于进行控制器的操作(例如,执行操作系统以进行对应于图1的错误组件116、存储器映射组件118和/或存储器管理组件121的操作)或图1的定序器组件140a到140n的操作。在替代性实施例中,机器可连接(例如,联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为点对点(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。

机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。

实例计算机系统1000包含处理装置1002、主存储器1004(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),如同步dram(sdram)或rambusdram(rdram)等)、静态存储器1006(例如,快闪存储器、静态随机存取存储器(sram)等)和数据存储系统1018,它们经由总线1030彼此通信。

处理装置1002表示一或多个通用处理装置,如微处理器、中央处理单元或类似物。更确切地说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置1002也可以是一或多个专用处理装置,如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或类似物。处理装置602配置成执行用于进行本文中所论述的操作和步骤的指令1026。计算机系统1000可进一步包含网络接口装置1008以经由网络1020通信。

数据存储系统1018可包含机器可读存储媒体1024(也称为计算机可读媒体),其上存储有一或多个指令集1026或体现本文中所描述的方法或功能中的任何一或多种的软件。指令1026还可在其由计算机系统1000执行期间完全或至少部分地驻存在主存储器1004内和/或处理装置1002内,主存储器1004和处理装置1002也构成机器可读存储媒体。机器可读存储媒体1024、数据存储系统1018和/或主存储器1004可对应于图1的存储器子系统110。

在一个实施例中,指令1026包含用以实施对应于图1的错误组件116、存储器映射组件118、存储器管理组件121和/或定序器组件140a到140n的功能性的指令。尽管在实例实施例中机器可读存储媒体1024展示为单个媒体,但术语“机器可读存储媒体”应认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应认为包含能够存储或编码供机器执行的指令集且使得机器进行本公开的方法中的任何一或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。

已依据计算机存储器内的数据位上的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其它技术人员的方式。算法在这里且通常认为是引起所期望结果的操作的自洽序列。操作是要求对物理量进行物理操控的操作。通常(但未必),这些量采用能够存储、组合、比较和以其它方式操控的电信号或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或类似物是方便的。

然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标签。本公开可涉及将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。

本公开还涉及用于进行本文中的操作的设备。这一设备可出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,如但不限于任何类型的盘(包含软盘、光盘、cd-rom和磁性光盘)、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自联接到计算机系统总线。

本文中呈现的算法和显示器并非在本质上与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以进行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。此外,不参考特定编程语言来描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。

本公开可提供为计算机程序产品或软件,其可包含在其上存储有指令的机器可读媒体,所述指令可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。

在前文说明书中,已经参照其具体示例性实施例描述了本公开的实施例。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

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