一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于存储器子系统的元数据辅助的编码和解码的制作方法

2021-10-12 13:23:00 来源:中国专利 TAG:子系统 存储器 解码 辅助 编码


1.本公开大体上涉及一种存储器子系统,且更确切地说,涉及用于存储器子系统的元数据辅助的编码和解码。


背景技术:

2.存储器子系统可以是存储系统,如固态驱动器(ssd)或硬盘驱动器(hdd)。存储器子系统可以是存储器模块,例如双列直插式存储器模块(dimm)、小型dimm(so

dimm)或非易失性双列直插式存储器模块(nvdimm)。存储器子系统可以包含存储数据的一或多个存储器组件。存储器组件可以例如是非易失性存储器组件和易失性存储器组件。一般来说,主机系统可以利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。
附图说明
3.根据下文给出的详细描述和本公开的各种实施方案的附图,将更充分地理解本公开。
4.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。
5.图2是执行用于存储器子系统的元数据辅助的编码的实例方法的流程图。
6.图3说明根据本公开的一些实施例的用于基于固定数据和非固定数据的映射进行码字编码的数据结构的产生。
7.图4是执行用于存储器子系统的元数据辅助的解码的实例方法的流程图。
8.图5a说明根据本公开的一些实施例的基于固定系统元数据消除经解码数据的潜在候选项。
9.图5b说明根据本公开的一些实施例的基于与码字中的每一主机数据扇区片段关联的校验码消除经解码数据的潜在候选项。
10.图6是本公开的实施方案可在其中操作的实例计算机系统的框图。
具体实施方式
11.本公开的方面针对于用于存储器子系统的元数据辅助的编码和解码。a存储器子系统在下文也称为“存储器装置”。存储器子系统的实例是通过外围互连件(例如,输入/输出总线、存储区域网络)耦合到中央处理单元(cpu)的存储装置。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器和硬盘驱动器(hdd)。存储器子系统的另一实例是经由存储器总线联接到cpu的存储器模块。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so

dimm)、非易失性双列直插式存储器模块(nvdimm)等。存储器子系统可为混合式存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。
12.常规存储器子系统可针对存储于存储器子系统的存储器组件处和/或从所述存储
器子系统的存储器组件检索到的数据实施错误检测和校正(即,错误控制)操作。错误控制操作可利用错误校正码(ecc)对主机数据进行编码且将经编码主机数据存储于存储器子系统处。举例来说,可对主机数据进行编码以产生码字,且可将码字存储于存储器子系统处。随后,当主机系统请求主机数据时,可对码字进行解码以产生主机数据。错误控制操作的编码和解码可用以于检测可能已由噪声或其它此类减损造成的任何错误,所述噪声或其它此类减损可使主机数据的值或位在主机数据被存储或读取时转变(例如,从
‘0’
值转变到
‘1’
值或反过来)。随后可基于错误控制操作而校正检测到的错误。
13.可基于用于存储于常规存储器子系统处的数据的信道编码来设计常规存储器子系统的错误控制操作所利用的错误校正码。举例来说,码字中的由于噪声(

坏’位信道)而更易发生错误的特定位的方位(例如,对应于某些位信道)与那些较不容易发生错误(

好’位信道)的方位相比对于存储有价值的主机数据来说可能是较不可取的。常规存储器子系统的错误控制操作可识别

好’位信道(通常被称为

未冻结位’)并且使用那些位信道(或其子集)用于存储主机数据和相关元数据,而使用

坏’位信道用于奇偶位,所述奇偶位是编码器和解码器已知的预定或经定义固定值(通常被称为

冻结位’)。主机数据和相关元数据随后可与冻结数据交错以构造码字。极化码属于此类型的信道编码。
14.以此方式编码的常规存储器子系统通常可有意限制所使用的冻结位的数目以便增加所得码字中的主机数据的量。在这类情况下,相对于主机数据的量的较少冻结位可产生较弱错误校正码,这是由于需要在解码过程期间进行验证的数据量成比例地大于不需要验证的数据量。在一些情况下,可通过将额外错误校验码附加到码字来补充较弱错误校正码实施方案以提高解码能力。然而,这通常可增加执行时间且降低总体性能,原因是解码过程和错误处置通常实施为单独操作。解码过程通常可在执行任何错误校验过程之前尝试解码整个码字,从而分析经解码主机数据的所有潜在候选项。因此,解码操作通常可在分析用于经解码主机数据的稍后被确定为无效的候选项上消耗不必要的时间和计算资源两者。
15.本公开的方面通过利用用于存储器子系统的元数据辅助的编码和解码来解决以上和其它缺陷。在一些实施例中,极化编码器和极化解码器可用于存储器子系统的元数据辅助的编码和解码。极化编码器可用系统部分或完全已知的额外元数据补充用以产生码字的冻结位。举例来说,极化编码器可利用系统元数据信息,即对存储或读取主机数据的请求的分量。极化解码器过程可在消除经解码主机数据的潜在候选项时利用来自已知位值的系统元数据的补充性冻结位。举例来说,极化解码器可消除用于经解码主机数据的其中在期望方位处(例如,在冻结位的已知方位处)不存在已知系统元数据的潜在候选项。另外,极化解码器可分级执行解码操作以使得经解码主机数据的每一扇区可使用用于所述扇区的校验码被校验,之后再继续到下一扇区。经解码主机数据上的校验结果可供极化解码器用于消除剩余扇区的解码过程的潜在候选项。
16.本公开的优点包含但不限于产生更稳健的错误校正码以及更高效的解码过程。用以补充编码过程中所使用的冻结位的数目的系统元数据可增加冻结数据与主机数据的比例,因此提高错误校正码的可靠性。另外,系统元数据的使用可提高编码和解码过程的灵活性,原因是元数据可能已经包含在典型读取和写入请求中。类似地,额外冻结位的使用可在时间和计算资源两者方面提高解码过程的效率。通过增加已知冻结位的数目,解码过程可更高效地消除用于经解码主机数据的不匹配已知系统元数据的候选项。此外,通过分级解
码码字,可基于校验码提供的校验结果消除额外候选项。因此,可通过消除额外无效候选项显著地减少存储器子系统的计算资源占用,进而进一步提高解码过程效率。
17.图1示出根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112a到112n。存储器组件112a到112n可以是易失性存储器组件、非易失性存储器组件或这类组件的组合。在一些实施例中,存储器子系统是存储系统。存储系统的实例是ssd。在一些实施例中,存储器子系统110是混合式存储器/存储装置子系统。一般来说,计算环境100可包含使用存储器子系统110的主机系统120。举例来说,主机系统120可将数据写入到存储器子系统110以及从存储器子系统110读取数据。
18.主机系统120可以是计算装置,例如台式计算机、手提式计算机、网络服务器、移动装置或包含存储器和处理装置的此类计算装置。主机系统120可包含或耦合到存储器子系统110使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文所使用,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等的连接。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤信道、串行连接的scsi(sas)等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口存取存储器组件112a到112n。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。
19.存储器组件112a到112n可以包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(nand)类型快闪存储器。存储器组件112a到112n中的每一个可包含一或多个存储器单元阵列,如单层级单元(slc)或多层级单元(mlc)(例如,三层级单元(tlc)或四层级单元(qlc))。在一些实施例中,特定存储器组件可以包含存储器单元的slc部分和mlc部分两者。存储器单元中的每一个可存储供主机系统120使用的一或多个数据位(例如,数据块)。虽然描述如nand类型快闪存储器的非易失性存储器组件,但存储器组件112a到112n可基于任何其它类型的存储器,如易失性存储器。在一些实施例中,存储器组件112a到112n可以是(但不限于)随机存取存储器(ram)、只读存储器(rom)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、相变存储器(pcm)、磁随机存取存储器(mram)、或非(negative

or;nor)快闪存储器、电可擦除可编程只读存储器(eeprom)以及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,存储器组件112a到112n的存储器单元可分组为存储器页或数据块,其可指代用于存储数据的存储器组件的单元。
20.存储器系统控制器115(下文称为“控制器”)可与存储器组件112a到112n通信以执行操作,例如在存储器组件112a到112n处读取数据、写入数据或擦除数据,以及其它此类操作。控制器115可包含硬件,如一或多个集成电路和/或离散组件、缓冲存储器或其组合。控
制器115可以是微控制器、专用逻辑电路(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。控制器115可包含被配置成执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明的实例中,控制器115的本地存储器119包含被配置成存储指令以用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程以及例程的嵌入式存储器。在一些实施例中,本地存储器119可以包含存储器寄存器,其存储存储器指针、提取的数据等。本地存储器119还可以包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可能不包含控制器115,且可改为依靠(例如由外部主机或由与存储器子系统分离的处理器或控制器提供的)外部控制。
21.一般来说,控制器115可从主机系统120接收命令或操作且可将所述命令或操作转换成指令或适合的命令以实现对存储器组件112a到112n的所需存取。控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、差错检测和差错校正码(ecc)操作、加密操作、高速缓存操作和在与存储器组件112a到112n相关联的逻辑块地址与物理块地址之间的地址转译。控制器115可另外包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路可将从主机系统接收到的命令转换成命令指令以存取存储器组件112a到112n,以及将与存储器组件112a到112n相关联的响应转换成用于主机系统120的信息。
22.存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲(例如dram)和地址电路(例如行解码器和列解码器),其可从控制器115接收地址且对地址进行解码以存取存储器组件112a到112n。
23.存储器子系统110包含编码器

解码器组件113,其可用以对主机数据进行编码以产生待存储于存储器组件112a至112n处的码字,并且对码字进行解码以产生主机数据。在一些实施例中,控制器115包含编码器和解码器组件113的至少一部分。举例来说,控制器115可包含处理器117(处理装置),其被配置成执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,编码器

解码器组件113为主机系统120、应用程序或操作系统的部分。
24.编码器

解码器组件113可接收主机数据,所述主机数据包含用户数据和与用户数据相关联的系统元数据。随后可至少部分地基于所包含的系统元数据来编码主机数据。举例来说,系统元数据的某一部分对于存储器子系统110来说是已知的并且可用以增加并入到编码操作(例如,极化编码操作)中的冻结位的数目以产生将存储于存储器子系统110的一或多个存储器组件(例如,存储器组件112a到112n)处的经编码码字。随后,编码器

解码器组件113可接收对存储于存储器组件112a到112n中的主机数据的请求,检索与主机数据相关联的码字,并且对码字执行解码操作(例如,极化解码操作)。下文描述关于编码器

解码器组件113的操作的另外细节。
25.图2是执行用于存储器子系统的元数据辅助的编码的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200由图1的编码器

解码器组件113执行。虽然以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为
实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
26.如图2所示,在操作205处,处理逻辑从主机系统接收主机数据。举例来说,主机系统可提供待存储于存储器子系统处的数据(即,主机数据)。在一些实施例中,主机数据可包含用户数据(例如,与用户相关过程或操作相关联的数据,通常以主机数据扇区形式呈现)和系统元数据(例如,主机系统已知并且是从主机系统接收的一或多个预定值,例如扇区校验码)。在操作210处,处理逻辑确定主机数据的包含用户数据的部分。在一些实施例中,处理逻辑在对存储数据的请求中接收到主机数据,其中所述请求指示数据的什么部分是用户数据。举例来说,所述请求可经结构化以使得用户数据包含在请求包内的特定偏移处。在操作215处,处理逻辑确定主机数据的包含系统元数据的另一部分。在一些实施例中,系统元数据可包含从主机系统接收的元数据。举例来说,系统元数据可包含逻辑块地址(lba)、补充系统元数据(例如,用于系统管理信息的位数)、扇区校验码信息、全局校验码信息(例如,用于整个主机数据的校验码信息),或与主机系统、存储器子系统等相关联的其它类似数据。在一些实施例中,系统元数据可包含存储器子系统添加的元数据,例如用于子系统管理目的的数据。在这类情况下,存储器子系统所添加的此额外系统元数据可在操作215处添加。
27.在操作220处,处理逻辑接收用于数据结构的映射。所述映射可供编码操作用于确定包含在所得经编码码字中的用户数据和系统元数据两者的组织。在一些实施例中,所述映射可识别数据结构内的相对于编码操作是固定位值的一个方位集以及数据结构内的相对于编码操作并非固定位值的另一方位集。举例来说,数据结构内的是固定位值的方位集可包含极化码的冻结位,且数据结构内的并非固定位值的方位集可包含极化码的未冻结位。
28.在操作225处,处理逻辑基于通过操作220接收到的映射,产生用于用户数据、系统元数据和额外冻结位(即,具有固定模式的位序列)的数据结构。在一些实施方案中,数据结构可经产生以使得用户数据和系统元数据的一部分放置于映射中的并非固定位值的方位处。另外,系统元数据的不同部分可放置于映射表中的是固定位值的方位处。举例来说,在准备极化编码过程时,可选择用户数据和系统元数据的一个部分用于未冻结位,并且可选择系统元数据的另一部分用于冻结位。在一些实施例中,从主机系统或存储器子系统接收的系统元数据的一部分可被视为冻结位,原因是所述部分为极化编码器和解码器过程已知。在一些实施例中,处理逻辑可通过具有固定模式的额外位次序进一步补充数据结构中的冻结位。因此,数据结构可包含用户数据、被视为未冻结位的系统元数据、被视为冻结位的系统元数据,以及被视为冻结位的额外固定位模式。下文结合图3描述关于映射和数据结构产生操作的另外细节。
29.在操作230处,处理逻辑对数据结构执行编码操作以产生码字。编码操作可以是数据的线性变换。举例来说,可对冻结位和未冻结位集合两者执行编码操作并且可执行数据的线性变换以产生码字。此类编码操作的实例包含但不限于极化码或极化编码操作。极化码可以是将矩阵应用于数据以将数据转换成码字的线性块错误校正码。码字的校验位可以是用以在稍后检索码字时检测并校正任何错误的额外位。在一些实施例中,校验位可基于
待编码的数据的位的值或通过所述待编码的数据的位的值计算。因而,码字可包含待编码数据和用于此数据的奇偶位。在一些实施例中,奇偶位可为如上文所描述的冻结位。在操作235处,处理逻辑存储码字。举例来说,码字可存储于存储器子系统处的一或多个存储器组件中。
30.图3说明根据本公开的一些实施例的用于基于固定位值和非固定位值的映射进行码字编码的数据结构的产生。数据结构产生可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,数据结构产生可由图1的编码器

解码器组件113执行。
31.如图3所示,用户数据301可与系统元数据302交错以产生可在如本文中所描述的编码操作期间使用的组合数据结构304。在一些实施例中,用户数据301可表示待编码的非固定数据。举例来说,如上文所描述,用户数据301可包含被主进程请求编码并存储于存储器子系统中的信息。如在图3中所示,用户数据301可包含四个位u1、u2、u3和u4。也在编码过程期间被使用的系统元数据302可包含在对存储数据的请求中从主机系统接收的信息,例如逻辑块地址、补充系统管理数据等。系统元数据302可另外包含存储器子系统添加的系统元数据且系统元数据302的一部分可为非固定数据(即,未冻结位)。在一些实施例中,系统元数据302可与用户数据301相关联。举例来说,基于用户数据301的内容产生系统元数据302的一部分。如在图3中所示,系统元数据302可包含四个位s1、s2、s3和s4。
32.映射303可表示可用以产生数据结构304的固定数据(例如,冻结位)和非固定数据的方位的预定布局。映射303的布局可通过极化码结构和部分或完全固定的系统元数据位两者预先确定。在一些实施例中,可还在解码操作期间利用映射303从考虑因素消除经解码数据的潜在候选项。如图3所示,在说明性实例中,假设两个位s1和s2是系统元数据中的固定位值(为编码器和解码器两者已知)并且采用具有四个冻结位的长度十二的极化码,映射303可包含十二位,其中六位指定为固定的。在映射303中在适用位位置中用

f’指定固定位。因此,位置2、3、4、7、9和10指定为用于映射303的固定位。在一些实施例中,指定为固定的位置可与系统元数据302一起传播。替代地,这些位置可与来自系统元数据302的数据的一部分以及编码器和解码器先验已知的额外序列的预定固定位值一起传播。
33.可通过将映射303应用于用户数据301和系统元数据302产生数据结构304。如在图3中所示,由于映射303指示位置2、3、4、7、9和10应为固定数据,因此数据结构304中的那些位置可与系统元数据302中的s1和s2(两个固定位值)以及编码器和解码器两者先验商定的预定序列的四个固定位值一起传播。四个固定位值可设置为任何模式,例如

0000’、

1111’或其任何组合。因此,在一个实施例中,数据结构304中的位置2和3可分别与s1和s2一起传播。类似地,位置4、7、9和10可与额外固定位模式一起传播。在其它实施例中,可产生数据结构304以使得已知系统元数据值传播到不同固定数据位置中或以不同次序传播。举例来说,数据结构304中的位置9和10可分别与s1和s2一起传播,或数据结构304中的位置2和3可分别与s2和s1一起传播,等等。类似地,在一些实施例中,系统元数据302中的所有四个位(例如,s1、s2、s3和s4)可为编码器和解码器两者已知的固定值。因此,映射303可指示来自系统元数据302的所有四个位可传播到六个固定位位置中的四个固定位位置中,使得剩余两个固定位位置以编码器和解码器两者先验商定的额外固定位模式传播。
34.类似地,由于映射303指示位置0、1、5、6、8和11应与并非固定的数据(例如,用户数据和系统元数据的不被指定为固定的部分)一起传播,数据结构304中的那些位置与来自用户数据301的值和系统元数据302的不指定为固定位的任何部分(例如,s3和s4)一起传播因此,在一个实施例中,数据结构304中的位置0、1、5和6。可分别与u1、u2、u3和u4一起传播。另外,位置8和11可分别与s3和s4一起传播。在其它实施例中,可产生数据结构304以使得用户数据和系统元数据值的剩余部分以不同次序传播到固定数据位置中。举例来说,数据结构304中的位置0、1、5、6、8和11可分别与u4、u3、u2、u1、s4和s3一起传播等等。应注意,为简单说明起见,已描绘具有四位大小的用户数据301和系统元数据302,但其它实施例可包含更少位或更多位。类似地,映射303和数据结构304可包含比描绘的十二更少或更多的位。
35.图4是根据本公开的一些实施例的执行用于存储器子系统的元数据辅助的解码的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的编码器

解码器组件113执行。虽然以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
36.如图4中所示出,在操作405处,处理逻辑接收对识别系统元数据的主机数据的请求。在一些实施例中,所述请求可包含与待检索的主机数据相关联的系统元数据。举例来说,所述请求可为从主机系统接收的对读取与特定逻辑块地址(lba)相关联的主机数据的请求。在一些实施例中,系统元数据的一部分可被子系统识别为并入在码字中的固定数据(例如,冻结位)。所识别的固定数据随后可在下文关于操作421

424所描述的解码操作期间被利用。
37.在操作410处,处理逻辑检索与所请求的主机数据和系统元数据对应的码字。可响应于规定先前编码到码字中的主机数据的操作405的读取请求而检索码字。如先前所描述,码字可包含与用户数据对应的第一部分和与系统元数据对应的第二部分。在一些实施例中,码字可由一系列片段组成。举例来说,码字可包含与包含于码字内的不同主机数据扇区对应的片段集。另外,码字可包含与用于包含主机数据扇区的每一片段的校验码对应的另一片段集。因此,片段可成对组织以使得每一主机数据扇区与对应校验码配对。在一些实施例中,校验码可为循环冗余校验(crc)码。crc码是可用以检测数据无意改变的错误检测码。
38.在操作415处,处理逻辑接收用于与码字相关联的数据的映射。在一些实施例中,所述映射识别数据的相对于解码操作为固定的方位(例如,冻结位)。举例来说,所述映射可为上文结合图2的操作220所描述的映射。
39.在操作420处,处理逻辑对操作410所检索的码字执行解码操作以产生主机数据。举例来说,极化解码器可用以解码码字以产生主机数据。在一些实施例中,处理逻辑可通过进一步调用操作421

424执行解码操作。在操作421处,处理逻辑产生用于经解码码字的对应于与码字相关联的经写入数据(例如,针对码字最初写入的数据)的可能候选项。举例来说,处理逻辑可产生可有可能匹配期望的经解码数据的候选项列表。在操作422处,处理逻辑基于数据的固定方位(例如,冻结位)和所识别的系统元数据的至少一部分消除潜在候选
项中的一或多个。举例来说,系统元数据的为编码器和解码器两者已知的值的部分可被解码器视为冻结位并且用以消除潜在候选项。在一些实施例中,处理逻辑可首先基于在操作415处接收到的映射确定与码字相关联的数据的固定方位。处理逻辑随后可将这些方位处的与码字相关联的数据(例如,系统元数据的预定部分和可用作冻结位的固定数据模式)与对应位方位处的潜在候选项中的位进行比较。处理逻辑随后可基于中映射中被识别为固定的方位处的比较结果,从潜在候选项列表消除候选项。举例来说,如果潜在候选项的位模式不匹配被映射表指定为固定的方位处的已知冻结位,那么可消除候选项。下文结合图5a描述关于基于冻结位(固定系统元数据)消除经解码数据的潜在候选项的另外细节。
40.在操作423处,处理逻辑基于经解码主机数据扇区和对应经解码扇区校验码,消除额外候选项。举例来说,处理逻辑可在候选项的经解码主机数据扇区和经解码扇区校验码不匹配的情况下从潜在候选项列表消除所述候选项。在一些实施例中,处理逻辑可开始基于经解码主机数据扇区(例如,码字的含有主机数据的片段)和经解码扇区校验码的校验结果,确定先前识别的潜在候选项的第一子集(例如,恰当子集)。对于潜在候选项,如果处理逻辑确定经解码主机数据扇区匹配经解码扇区校验码,那么潜在候选项可保留于子集中。如果处理逻辑确定经解码主机数据扇区不匹配经解码扇区校验码,那么从子集消除潜在候选项。
41.处理逻辑可针对码字中的额外主机数据扇区重复上述过程以进一步消除潜在候选项。举例来说,处理逻辑可基于另一主机数据扇区的校验结果,确定先前所识别的子集的第二子集(例如,恰当子集)。举例来说,处理逻辑可通过选择另一主机数据扇区来选择此子集并且使用其相关联校验码进行验证。对于潜在候选项,如果处理逻辑确定经解码主机数据扇区匹配经解码扇区校验码,那么潜在候选项可保留在子集中;如果处理逻辑确定经解码主机数据扇区无法匹配经解码扇区校验码,那么从子集消除潜在候选项。下文结合图5b描述关于基于经解码数据和经解码扇区校验码消除潜在候选项的另外细节。
42.在操作424处,处理逻辑可基于任何剩余潜在候选项产生与码字相关联的数据。此外,在一些实施例中,处理逻辑将主机数据返回到主机系统。举例来说,可响应于通过操作405接收到的请求(例如,来自主机系统的请求)而将来自码字的经解码主机数据返回到主机系统。在一些实施例中,返回到主机系统的主机数据可为最后一个剩余潜在候选项。替代地,基于概率测量,返回的主机数据可为潜在候选项当中的最可能潜在候选项。
43.图5a说明根据本公开的一些实施例的基于固定系统元数据消除经解码数据的潜在候选项。潜在候选项的消除可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,可通过图1的编码器

解码器组件113以此方式消除潜在候选项。
44.如图5a中所示,系统元数据501可与映射502组合确定可用以消除经解码码字的潜在候选项的候选项目标503。如上所述,系统元数据501可为从主机系统接收与对存储或读取数据的请求相关联的系统元数据的一部分或整个系统元数据。替代地,系统元数据501可包含存储器子系统添加的系统元数据。如图5a中所示,系统元数据501可包含四个固定位
‘1’

‘0’

‘0’

‘1’

45.还如上所述,映射502可表示可用以使用户数据、系统元数据和可能的其它冻结位
交错以产生驱动码字编码的数据结构的固定数据(例如,冻结位)和非固定数据的方位的预定布局。类似地,可在解码操作期间使用映射502从考虑因素消除经解码码字的潜在候选项。在一些实施例中,映射502可指示固定数据可与系统元数据501的所有四个位一起传播。替代地,映射502可指示固定数据可与系统元数据501的一部分以及额外固定位数据模式一起传播。如图5a中所示,映射502可包含八个位,其中的四个位被指定为固定的。在映射502中在适用位位置中用

f’指定固定位。因此,位置0、4、6和7指定为用于映射502的固定位。
46.在一些实施例中,如本文中所描述的元数据辅助的解码操作可将系统元数据501与映射502组合以确定候选项目标503。如图5a中所示,候选项目标503将固定值位从系统元数据501传播到映射502中被指定为固定位的方位中。因此,候选项目标503可包含分别处于位置0、4、6和7处的固定位值
‘1’

‘0’

‘0’

‘1’
。解码操作随后可将候选项目标503的内容与经解码码字的潜在候选项进行比较,并且消除那些不匹配候选项目标503的候选项。如图5a中所示,解码操作可产生包含经解码码字的潜在候选项(例如,潜在位模式值)的候选项列表504。解码操作可消除任何其位模式不匹配候选项目标503的候选项。举例来说,由于候选项目标503包含位置0和7中的
‘1’
,因此可消除不包含那些位置中的
‘1’
的任何候选项。此处,候选项列表504用删除线说明消除的候选项。可保留那些其位模式确实匹配候选项目标503的候选项。此处,候选项列表504用粗体说明保留的候选项(例如,

1000 0001’、

1000 0101’、

1001 0001’、

1001 0101’、

1010 0001’和

1010 0101’)。
47.在一些实施例中,在分析候选项目标503时一次一个位地产生解码操作候选项列表504。举例来说,解码操作分析映射502并且使用系统元数据501确定位位置0是固定的(例如,冻结位集为
‘1’
)。因此,候选项列表504可包含单一候选项
‘1’
。解码器随后可转到候选项目标503中的位位置1。由于所述位置不指定为固定位置,因此候选项列表随后可更新为包含用于潜在候选项的前两个位置的

10’和

11’。解码器随后可转到分析后续位位置,添加到候选项列表504直到遇到下一个固定位位置为止。解码器随后可基于下一个遇到的固定位位置而消除候选项列表504中的候选项。因此,当解码器到达位位置4时,可基于映射502确定位置与固定位集一起传播到
‘0’
。因此,可从候选项列表504消除不包含位置0中的
‘1’
和位置4中的
‘0’
的任何位模式。可重复此过程直到已经分析所有位位置。
48.应注意,为简单说明起见,已将系统元数据501描绘为具有四个位的大小,但在其它实施例中,可包含更少位或更多位。类似地,映射502和候选项目标503可包含与所描绘的八个相比更少或更多位。另外,如上文关于图3所描述,在一些实施例中,映射502可被配置成使得固定位位置与系统元数据501的一部分以及额外固定数据模式一起传播。此外,虽然候选项列表504描绘24个潜在候选项,但在一些实施例中,候选项列表504可包含更少候选项或更多候选项。
49.图5b说明根据本公开的一些实施例的基于与码字中的每一主机数据扇区相关联的扇区校验码消除经解码数据的潜在候选项。消除潜在候选项可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,可通过图1的编码器

解码器组件113以此方式消除潜在候选项。
50.如上文所描述,在一些实施例中,码字可包含多个片段,其中一些片段包含经编码主机数据扇区,且其它片段包含与主机数据扇区相关联的扇区校验码。如上文关于图4所描
述的解码操作可基于使用每一经解码主机数据扇区的对应的经解码扇区校验码验证所述经解码主机数据扇区,消除经解码码字的潜在候选项。在一些实施例中,循环冗余校验(crc)可用以验证主机数据扇区和/或极化编码器产生的码字。
51.如图5b中所示,解码操作可解码包含主机数据扇区551

a、扇区校验码552

a、主机数据扇区551

b和扇区校验码552

b的码字。应注意,在一些实施例中,解码器在解码开始之前可能未知主机数据扇区551

a、扇区校验码552

a、主机数据扇区551

b和扇区校验码552

b中描绘的值。还应注意,虽然为简单说明起见,图5b描绘码字中的两个主机数据扇区片段,但在一些实施例中,码字可包含更少或更多待解码片段。解码器可针对每一潜在候选项(例如校验553

a)校验经解码主机数据扇区和经解码扇区校验码之间的匹配。举例来说,校验553

a可确定经解码主机数据扇区和经解码扇区校验码是否满足解码器已知的校验码的性质规定的约束条件。如果候选项一经解码主机数据扇区匹配候选项的对应经解码扇区校验码,那么将候选项视为有效的并且可保留于候选项列表中。相反地,如果经解码主机数据扇区不匹配经解码扇区校验码,那么将候选项视为无效并且将其丢弃。举例来说,如图3所示,对于来自候选项列表554

a的候选项

1000010’,对应经解码主机数据扇区和经解码扇区校验码分别是

1000’和

010’。解码器随后可基于校验码的性质规定的约束条件,验证

010’是否是用于

1000’的经解码主机数据扇区值的有效校验码值。假设

1000’匹配

010’,可保留候选项

1000 010’(以粗体说明)以供解码操作进一步考虑。类似地,可消除其它候选项(使用删除线说明),原因是其不能够通过匹配测试。可保留候选项列表554

a的此子集以稍后产生候选项列表554

b并且当解码后续主机数据扇区时供解码操作使用。
52.在一些实施例中,解码操作随后可针对码字中的下一可用主机数据扇区重复所述过程。举例来说,如图5b中所示,候选项列表554

b仅包含一旦校验553

a完成从候选项列表554

a保留的潜在候选项子集(例如,那些以位模式

1000 010’开始的候选项)。在校验533

b处,针对每一潜在候选项在经解码主机数据扇区和经解码扇区校验码之间进行新轮次的校验。在校验553

b之后,位模式

1000 010 0001 110’保留于候选项列表554

b的子集中,原因是经解码主机数据扇区

0001’匹配经解码校验码

110’,同时消除其它候选项(使用删除线说明删除线,原因是其不能够通过匹配测试。候选项列表554

b的此子集可保留并且当解码后续主机数据扇区时供解码操作使用。
53.在一些实施例中,在解码操作完成之后,如果仅有一个候选项保留于候选项列表中,那么剩余候选项可被视为最终解码结果,且相关主机数据部分将返回到主机系统。在其它实施例中,在解码操作完成之后,多个候选项可保留于候选项列表中。在此类实例中,最可能候选项(例如,基于概率测量)可被视为最终解码结果且其相关主机数据部分将返回到主机系统。
54.图6说明计算机系统600的实例机器,可在其内执行用于使得机器进行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用以执行控制器的操作(例如,运行操作系统以执行对应于图1的编码器

解码器组件113的操作)。在替代性实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端

服务器网络环境中的服
务器或客户端机器的容量进行操作。
55.机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器或非数字电路系统,或能够(依序或以其它方式)执行指定待由机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。
56.实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(rom)、闪存存储器、动态随机存取存储器(dram)例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器606(例如,闪存存储器、静态随机存取存储器(sram)等),以及数据存储系统618,其经由总线630彼此通信。
57.处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可以是一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或类似物。处理装置602被配置成执行指令626以用于执行本文中所论述的操作和步骤。计算机系统600可另外包含网络接口装置608以在网络620上通信。
58.数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体),所述机器可读存储媒体上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任何一或多种的软件。指令626还可在由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可以对应于图1的存储器子系统110。
59.在一个实施例中,指令626包含实施对应于编码器

解码器组件(例如,图1的编码器

解码器组件113)的功能性的指令。尽管在实例实施例中机器可读存储媒体624展示为单个媒体,但应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。术语“机器可读存储媒体”因此应被视为包含但不限于固态存储器、光学媒体和磁性媒体。
60.已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
61.然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
62.本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、cd

rom以及磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自连接到计算机系统总线。
63.本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
64.本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、闪存存储器组件等。
65.在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜