CN117636963A - 用于减少长代码的门数的混合精度ms解码器 - Google Patents

用于减少长代码的门数的混合精度ms解码器 Download PDF

Info

Publication number
CN117636963A
CN117636963A CN202211505574.5A CN202211505574A CN117636963A CN 117636963 A CN117636963 A CN 117636963A CN 202211505574 A CN202211505574 A CN 202211505574A CN 117636963 A CN117636963 A CN 117636963A
Authority
CN
China
Prior art keywords
memory
decoder
mode
min1
precision
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211505574.5A
Other languages
English (en)
Inventor
张帆
段宏伟
王浩博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN117636963A publication Critical patent/CN117636963A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/091Parallel or block-wise CRC computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种操作MS解码器的方法和使用该MS解码器的相关联的存储器系统。该方法确定MS解码器的操作模式。该方法针对每个变量节点,计算变量至校验节点V2C消息。该方法根据操作模式,将与所计算的V2C消息相关联的校验信息存储在校验节点单元CNU存储器中。校验信息包括当操作模式为高精度模式时的完整信息以及当操作模式为低精度模式时的部分信息。

Description

用于减少长代码的门数的混合精度MS解码器
技术领域
本公开的实施例涉及一种具有解码器的存储器系统以及操作这种系统和解码器的方法,具体地,涉及解码失败预测。
背景技术
计算机环境范例已经转变为可以随时随地使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用迅速增加。这些便携式电子装置通常使用具有存储器装置即数据存储装置的存储器系统。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
因为使用存储器装置的数据存储装置不具有移动部件,所以使用存储器装置的数据存储装置提供了优异的稳定性、耐久性、高信息访问速度和低功耗。具有这种优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、以及固态驱动器(SSD)。
SSD可以包括闪速存储器组件和控制器,该控制器包括将闪速存储器组件桥接到SSD输入/输出(I/O)接口的电子装置。SSD控制器可以包括嵌入式处理器,该嵌入式处理器可以运行诸如固件的功能组件。SSD功能组件专用于装置,并且在大多数情况下可以被更新。
两种主要类型的闪速存储器组件以NAND逻辑门和NOR逻辑门命名。各个闪速存储器单元呈现与其相应栅极相似的内部特性。NAND型闪速存储器可以以比整个存储器空间小得多的块(或页面)来写入和读取。NOR型闪速存储器允许将单个机器字(字节)写入到已擦除位置或者单独地读取单个机器字(字节)。NAND型闪速存储器主要以用于通用存储和数据传输的存储卡、USB闪存驱动器、固态驱动器和类似产品来操作。
基于NAND闪存的存储装置因其更快的读取/写入性能、更低的功耗和防震特性而被广泛采用。然而,通常,它们比硬盘驱动器(HDD)更昂贵。为了降低成本,NAND闪存制造商一直在将其制造工艺的极限推向20纳米甚至更低,这通常会导致使用寿命缩短和数据可靠性下降。因此,需要比传统的博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码更强大的错误校正码(ECC)来克服相关的噪声和干扰,从而提高数据完整性。ECC的一种这样的代码是低密度奇偶校验(LDPC)代码。各种算法可以用于解码LDPC码。
LDPC码和相关解码器具有不同的迭代解码算法,诸如位翻转(BF)解码算法、置信传播(BP)解码算法、和积(SP)解码算法、最小和(MS)解码算法、最小-最大解码算法等。一些算法可提供速度,而另一些算法则在更高的噪音水平下更具性能。在特定系统中可以使用多种解码算法,以根据诸如噪声水平和干扰的条件使用不同的解码器对不同的码字进行解码。
在该背景下,出现了本发明的实施例。
发明内容
本发明的方面包括一种用于操作MS解码器的方法。该方法确定MS解码器的操作模式。该方法针对每个变量节点,计算变量至校验节点V2C消息。该方法根据操作模式,将与所计算的V2C消息相关联的校验信息存储在校验节点单元CNU存储器中。校验信息包括当操作模式为高精度模式时的完整信息以及当操作模式为低精度模式时的部分信息。
本发明的其他方面包括一种存储器系统,包括:存储器装置、与存储器装置通信并被配置为控制存储器装置的控制器、以及与存储器装置的存储装置通信的最小和(MS)解码器。MS解码器被配置为:针对每个变量节点,计算变量至校验节点V2C消息;并且根据MS解码器的操作模式,将与所计算的V2C消息相关联的校验信息存储在校验节点单元CNU存储器中。校验信息包括当操作模式为高精度模式时的完整信息以及当操作模式为低精度模式时的部分信息。
本发明的其他方面包括方法,特别是操作包括解码器或与解码器相关联的存储器系统的方法。这种操作存储器系统的方法包括输入。
鉴于以下描述和附图,本发明的其他特征、方面和优点将变得清楚。
附图说明
图1是示意性地示出根据本发明的实施例的存储器系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器系统的存储器装置的存储块的电路图。
图4是示出根据本发明的实施例的示例性存储器系统的示图。
图5是示出根据本发明的实施例的包括不同解码器的示例性存储器系统的示图。
图6是LDPC码的矩阵图。
图7A和图7B示出LDPC码和用户位、校验节点和奇偶校验位的Tanner图表示。
图8是根据本发明的实施例的混合精度MS解码器的框图。
图9是描述根据本发明的实施例的用于操作MS解码器的方法的流程图。
具体实施方式
下面参照附图更详细地描述多种实施例。然而,本发明可以以不同的形式实施并且不应被解释为限于本文阐述的实施例。相反,提供这些实施例是为了使本公开是彻底和完整的,并将本发明的范围充分传达给本领域技术人员。此外,本文对“实施例”、“另一实施例”等的引用不一定仅指一个实施例,并且对任何这种短语的不同引用不一定指相同的实施例。在整个公开中,相同的附图标记指代本发明的附图和实施例中的相同部件。
本发明可以以多种方式实施,包括作为进程;设备;系统;物质的组成;实现在计算机可读存储介质上的计算机程序产品;和/或处理器,例如适用于运行存储在和/或由联接到处理器的存储器提供的指令的处理器。在本说明书,这些实施方案或本发明可以采取的任何其他形式可以被称为技术。通常,在本发明的范围内可以改变公开进程的步骤顺序。除非另有说明,否则被描述为适用于执行任务的诸如处理器或存储器的组件可以被实施为被临时配置为在给定时间执行任务的通用组件,或者被制造为执行任务的特定组件。如本文所使用的,术语“处理器”是指适用于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
下面结合示出本发明的方面的附图提供对本发明的实施例的具体实施方式。结合这些实施例描述了本发明,但本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明包括许多替代方案、修改方案和等效方案。为了提供对本发明的透彻理解,在以下描述中阐述了许多具体细节。提供这些细节是出于示例的目的;可以在没有这些具体实施方案的一些或全部的情况下根据权利要求书实践本发明。为了清楚,未详细描述与本发明相关的技术领域中已知的技术材料,以免不必要地模糊本发明。
本发明认识到,与位翻转BF解码器相比,最小和MS解码器在错误校正方面较强,但需要比BF解码器更大的门数(GC)。这表示MS解码器的每个GC或每个功率的吞吐量低于BF解码器。当片上系统SoC需要长代码(例如,8KB或16KB)支持时,这个问题会变得更加严重。
本发明的一个实施例提供了一种混合精度MS解码器,其可以同时支持4KB和8KB/16KB并且能够减少MS解码器的门数(GC)用于长代码支持。
如下详述,在一个实施例中,提供了一种用于操作MS解码器的方法,包括:确定MS解码器的操作模式;针对每个变量节点,计算变量至校验节点(V2C)消息;并且根据操作模式,将与所计算的V2C消息相关联的校验信息存储在校验节点单元(CNU)存储器中。校验信息包括当操作模式为高精度模式时的完整信息以及当操作模式为低精度模式时的部分信息。在本发明的一个实施例中,该方法允许4KB的高性能,同时使得长代码的GC相对较小。
图1是示意性地示出根据本发明的实施例的存储器系统的框图。
参照图1,存储器系统10可以包括存储器控制器100和半导体存储器装置200,它们可以表示不止一个这种装置。半导体存储器装置200可以是闪速存储器装置。
存储器控制器100可以控制半导体存储器装置200的全部操作。
半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可以通过输入/输出线(I/O)接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可以通过电力线接收电力PWR并且通过控制线接收控制信号CTRL。控制信号CTRL可以包括命令锁存使能(CLE)信号、地址锁存使能(ALE)信号、芯片使能(CE)信号、写入使能(WE)信号、读取使能(RE)信号等。
存储器控制器100和半导体存储器装置200可以集成到诸如固态驱动器(SSD)的单个半导体装置中。SSD可以包括用于在其中存储数据的存储装置。当半导体存储器系统10用于SSD中时,联接到存储器系统10的主机(未示出)的操作速度可以显著提高。
存储器控制器100和半导体存储器装置200可以集成到诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以被集成以配置个人计算机存储卡国际协会(PCMCIA)的PC卡、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、缩小尺寸的多媒体卡(RS-MMC)、微型版本MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、安全数字大容量(SDHC)和/或通用闪存(UFS)。
在另一实施例中,存储器系统10可以被设置为诸如以下的电子装置中的各种组件中的一种:计算机、超移动PC(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器,数据中心的存储装置,能够在无线环境中接收和发送信息的装置、射频识别(RFID)装置、以及家庭网络的各种电子装置中的一种、计算机网络的各种电子装置中的一种、远程信息处理网络的电子装置中的一种或计算系统的各种组件中的一种。
图2是示出根据本发明的实施例的存储器系统的详细框图。例如,图2的存储器系统可以描绘图1所示的存储器系统10。
参照图2,存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器系统10可以响应于来自主机装置的请求而操作,并且具体地,存储待由主机装置访问的数据。
主机装置可以利用各种类型的电子装置中的任意一种来实施。在一些实施例中,主机装置可以包括诸如以下的电子装置:台式计算机、工作站、3D电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器和数字视频播放器。在一些实施例中,主机装置可以包括诸如以下的便携式电子装置:移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机。
半导体存储器装置200可以存储待由主机装置访问的数据。
半导体存储器装置200可以利用诸如以下的易失性存储器装置来实施:动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM),或者利用诸如以下的非易失性存储器装置来实施:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM))、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻式RAM(MRAM)和/或电阻式RAM(RRAM)。
存储器控制器100可以控制数据在半导体存储器装置200中的存储。例如,存储器控制器100可以响应于来自主机装置的请求而控制半导体存储器装置200。存储器控制器100可以将从半导体存储器装置200读取的数据提供给主机装置,并且可以将从主机装置提供的数据存储到半导体存储器装置200中。
存储器控制器100可以包括通过总线160联接的存储装置110、可以被实施为诸如中央处理单元(CPU)的处理器的控制组件120、错误校正码(ECC)组件130、主机接口(I/F)140和存储器接口(I/F)150。
存储装置110可以作为存储器系统10和存储器控制器100的工作存储器,并且存储用于驱动存储器系统10和存储器控制器100的数据。当存储器控制器100控制半导体存储器装置200的操作时,存储装置110可以存储由存储器控制器100和半导体存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作的操作的数据。
存储装置110可以利用诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)的易失性存储器来实施。如上所述,存储装置110可以将由主机装置使用的数据存储在半导体存储器装置200中以用于读取操作和写入操作。为了存储数据,存储装置110可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
控制组件120可以响应于来自主机装置的写入请求或读取请求而控制存储器系统10的一般操作以及对半导体存储器装置200的写入操作或读取操作。控制组件120可以驱动被称为闪存转换层(FTL)的固件,以控制存储器系统10的操作。例如,FTL可以执行诸如逻辑至物理(L2P)映射、损耗均衡、垃圾收集和/或坏块处理的操作。L2P映射称为逻辑块寻址(LBA)。
ECC组件130可以在读取操作期间检测和校正从半导体存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC组件130可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
ECC组件130可以基于诸如以下的编码调制执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、turbo码、turbo乘积码(TPC)、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。这样,ECC组件130可以包括适用于错误校正操作的任意和全部电路、系统或装置。
主机接口140可以通过诸如以下的各种接口协议中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。
存储器接口150可以提供存储器控制器100与半导体存储器装置200之间的接口,以允许存储器控制器100响应于来自主机装置的请求而控制半导体存储器装置200。存储器接口150可以生成用于半导体存储器装置200的控制信号并在控制组件120的控制下处理数据。当半导体存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可以生成用于存储器的控制信号并在控制组件120的控制下处理数据。
半导体存储器装置200可以包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、以页面缓冲器阵列的形式的页面缓冲器250、列解码器260、以及输入/输出电路270。存储器单元阵列210可以包括可以存储数据的多个存储块211。电压生成电路230、行解码器240、页面缓冲器阵列250、列解码器260和输入/输出电路270可以形成存储器单元阵列210的外围电路。外围电路可以执行存储器单元阵列210的编程操作、读取操作或擦除操作。控制电路220可以控制外围电路。
电压生成电路230可以生成各种电平的操作电压。例如,在擦除操作中,电压生成电路230可以生成诸如擦除电压和通过电压的各种电平的操作电压。
行解码器240可以与电压生成电路230和多个存储块211电通信。行解码器240可以响应于由控制电路220生成的行地址RADD而从多个存储块211之中选择至少一个存储块,并且将从电压生成电路230供应的操作电压传输到所选择的存储块。
页面缓冲器250可以通过位线BL(如图3所示)与存储器单元阵列210电通信。页面缓冲器250可以利用正电压对电位线BL预充电,在编程操作和读取操作中向所选择的存储块传输数据和从所选择的存储块接收数据,或者响应于由控制电路220生成的页面缓冲器控制信号临时存储所传输的数据。
列解码器260可以向页面缓冲器250传输数据和从页面缓冲器250接收数据,或者可以向输入/输出电路270传输数据和从输入/输出电路270接收数据。
输入/输出电路270可以通过输入/输出电路270向控制电路220传输从外部装置(例如,存储器控制器100)接收的命令和地址,将数据从外部装置传输到列解码器260,或者将数据从列解码器260输出到外部装置。
控制电路220可以响应于命令和地址而控制外围电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2所示的存储器单元阵列200的存储块211中的任意一个。
参照图3,示例性存储块211可以包括联接到行解码器240的多条字线WL0至WLn-1、漏极选择线DSL和源极选择线SSL。这些线可以平行布置,将多条字线布置在DSL与SSL之间。
示例性存储块211可以进一步包括分别联接到位线BL0至BLm-1的多个单元串221。每一列的单元串可以包括一个或多个漏极选择晶体管DST以及一个或多个源极选择晶体管SST。在所示实施例中,每个单元串具有一个DST和一个SST。在单元串中,多个存储器单元或存储器单元晶体管MC0至MCn-1可以串联联接在选择晶体管DST与SST之间。存储器单元中的每一个可以形成为存储多个位的数据信息的多层单元(MLC)。
每个单元串中的SST的源极可以联接到公共源极线CSL,并且每个DST的漏极可以联接到相应位线。单元串中的SST的栅极可以联接到SSL,并且单元串中的DST的栅极可以联接到DSL。跨单元串的存储器单元的栅极可以联接到相应字线。也就是说,存储器单元MC0的栅极联接到相应字线WL0,存储器单元MC1的栅极联接到相应字线WL1等。联接到特定字线的一组存储器单元可以被称为物理页面。因此,存储块211中的物理页面的数量可以对应于字线的数量。
页面缓冲器阵列250可以包括联接到位线BL0至BLm-1的多个页面缓冲器251。页面缓冲器251可以响应于页面缓冲器控制信号而操作。例如,页面缓冲器251可以临时存储通过位线BL0至BLm-1接收的数据,或者可以在读取操作或验证操作期间感测位线的电压或电流。
在一些实施例中,存储块211可以包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可以包括NOR型闪速存储器单元。存储器单元阵列210可以被实施为其中组合两种或更多种类型的存储器单元的混合闪速存储器,或者其中控制器嵌入到存储器芯片内的1-NAND(one-NAND)闪速存储器。
参照图4,图4示意性地示出存储器系统40的一般示例。存储器系统40可以包括易失性存储器400(例如,DRAM)、非易失性存储器(NVM)402(例如,NAND)、诸如本文所述的控制组件或控制逻辑404、诸如本文所述的错误校正码(ECC)模块406、以及总线408,存储器系统40的这些组件通过总线408进行通信。易失性存储器400可以包括用于映射位的物理到逻辑地址的逻辑位地址LBA表410。NVM 402可以包括多个存储块(和/或多个超级存储块)以及用于主机写入的开放块430和用于垃圾收集(GC)的开放块440。存储器系统40示出了一般的存储器系统。鉴于本公开,本领域技术人员将理解的是,可以与存储器系统一起使用实现本发明的附加/替代组件。
如本文所提及的,诸如“NAND”或“NVM”的术语可以指代诸如可以实现错误校正码过程的闪速存储器的非易失性存储器。进一步地,“DRAM”可以指代可以包括诸如控制器和ECC模块的组件的易失性存储器。
在本发明的实施例中,存储器系统10可以包括被配置为对低密度奇偶校验(LDPC)码进行解码的多个解码器。
存在用于LDPC码的许多迭代解码算法,诸如位翻转(BF)解码算法、置信传播(BP)解码算法、和积(SP)解码算法、最小和(MS)解码算法、以及最小-最大解码算法等。
根据本发明的实施例,并且如图5所示,存储器系统10可以包括半导体存储器装置200和存储器控制器100,半导体存储器装置200可以是NAND装置。存储器系统10可以包括:解码组件502,其包括运行执行BF解码算法以对从存储器装置501读取的码字进行解码的位翻转(BF)解码器503;以及最小和(MS)解码器504,其运行MS解码算法。BF解码器503和MS解码器504可以实现在存储器控制器100中的ECC组件130(图1所示)中或实现在任意其他合适的位置。由存储器控制器100从半导体存储器装置200接收的码字可以在被传送到一个或另一个解码器之前临时存储在存储器控制器100的缓冲器或存储装置505中。在本发明的一个实施例中,MS解码器504是混合精度MS解码器(在上面提到并在下面更详细地描述)。
存储器系统10可以包括诸如校验和模块的其他组件(未示出),校验和模块在解码之前计算从半导体存储器装置200检索的码字的校验和。校验和模块可以实现在存储器控制器100内,在存储装置505之前。存储器系统10可以进一步包括分别设置在BF解码器503和MS解码器504下游的循环冗余校验(CRC)模块。CRC模块可以实现在存储器控制器100内。
关于两种解码算法,由其相关联解码器504执行的MS解码因其处理软输入信息所需的更高复杂性而更强大。然而,由其相关联解码器503执行的较弱BF解码在错误数量较少时是有用的。
MS解码可以用作迭代LDPC解码的一部分。LDPC码是被由0和1组成的稀疏奇偶校验矩阵H定义的线性块码。本文中使用术语“稀疏矩阵”来指代其中每列和每行中的非零值的数量远小于其维度的矩阵。本文中使用的术语“列权重”是指奇偶校验矩阵H的特定列中非零值的数量。本文中使用的术语“行权重”是指奇偶校验矩阵H的特定行中非零值的数量。通常,如果与LDPC码相对应的奇偶校验矩阵中所有列的列权重相似,则该码被称为“常规”LDPC码。另一方面,如果列权重中的至少一个与其他列权重不同,则LDPC码称为“非常规”LDPC码。通常,非常规LDPC码提供比常规LDPC码更好的错误校正能力。
LDPC码通常用二分图表示。一组节点、变量或位节点对应于码字的元素,而另一组节点,例如校验节点,对应于码字满足的奇偶校验约束集。通常,边缘连接是随机选择的。如果在图中避免短长度的循环,则可以提高LDPC码的错误校正能力。在(r,c)常规代码中,n个变量节点(V1,V2,……,Vn)中的每一个都连接到r个校验节点,并且m个校验节点(C1,C2,……,Cm)中的每一个都连接到c位节点。在非常规LDPC码中,校验节点的度不统一。类似地,变量节点的度也不统一。在QC-LDPC码中,奇偶校验矩阵H被构造成p×p矩阵块,使得块中的一位仅参与块中的一个校验等式,并且块中的每个校验等式只涉及块中的一位。在QC-LDPC码中,码字循环移位p会产生另一码字。此处p为方块矩阵的大小,其可以是零矩阵或循环矩阵。循环码被概括为一个码字循环移位1产生另一码字。p×p矩阵块可以是零矩阵或大小为p×p的循环移位单位矩阵。
图6示出示例奇偶校验矩阵H 600,并且图7A示出与奇偶校验矩阵600相对应的示例二分图。
如图6所示,示例性奇偶校验矩阵600具有六个列向量和四个行向量。图7A所示的网络702表示与奇偶校验矩阵600相对应的网络,并且表示为二分图。可能存在各种类型的二分图,包括例如Tanner图。图7B示出LDPC码的Tanner图表示,其具有用户位71、奇偶校验位72和校验节点73。
通常,网络702中的变量节点与奇偶校验矩阵600中的列向量相对应。网络702中的校验节点与奇偶校验矩阵600中的行向量相对应。节点之间的互连由奇偶校验矩阵200的值确定。具体地,“1”表示相应校验节点和变量节点具有连接。“0”表示没有连接。例如,奇偶校验矩阵600中最左边的列向量和从顶部开始的第二行向量中的“1”与变量节点704和校验节点710之间的连接相对应。
消息传递算法可以用于对LDPC码进行解码。本领域中存在多种消息传递算法的变形,例如最小和(MS)算法、和-积算法(SPA)等。如图7A所示,消息传递使用变量节点和校验节点的网络。
可以执行硬判决消息传递算法。在第一步骤中,每个变量节点向与该变量节点连接的一个或多个校验节点发送消息。在这种情况下,消息是每个变量节点都认为是其正确值的值。
在第二步骤中,每个校验节点使用该校验节点先前从变量节点接收到的信息来计算响应,以发送到与该校验节点连接的变量节点。这个步骤可以称为校验节点更新(CNU)。响应消息对应于校验节点基于从连接到该校验节点的其他变量节点接收的信息认为该变量节点应该具有的值。使用奇偶校验等式计算该响应,该等式令连接到特定校验节点的所有变量节点的值总和为零(模量为2)。
此时,如果所有等式在所有校验节点处都满足,则解码算法表明找到正确的码字并终止。如果未找到正确的码字,则迭代继续使用从校验节点接收到的消息从变量节点进行另一更新,以根据多数规则决定其位置的位应该是0还是1。变量节点然后将该硬判决消息发送到连接到该变量节点的校验节点。继续迭代直到找到正确的码字,根据码字(例如,经解码的码字)的校正子执行一定次数的迭代,或者在没有找到正确码字的情况下执行最大次数的迭代。
在解码的每次迭代中,系统(用户)位71和低度奇偶校验位72(如图7B所示)可以被交替解码。可以使用例如MS操作对用户位71进行逐一解码。可以使用用户位71的结果对低度奇偶校验位进行联合解码。联合解码的结果可以用于下一次迭代。
在本发明的一个实施例中,当迭代更新变量节点和校验节点时,使用下面描述的混合精度MS解码器对LDPC码进行解码。
图8是根据本发明的实施例的混合精度MS解码器的框图。如图8所示,MS解码器801包含LCH存储器803、HD存储器缓冲器805、Sign Mem单元807、校验和存储器809、CNU存储器阵列811、位节点更新单元BNU 813和ALL_SIGN单元815。来自解码器的输出(在本发明的一个实施例中)被供应给错误校正单元821(例如位错误率计数器)。
LCH存储器803存储或以其他方式保存信道值(即用户位或数据位71)。HD存储器缓冲器805存储或以其他方式保存解码结果的最新最佳估计。Sign Mem单元807存储或以其他方式保存每个V2C消息的符号。校验和存储器809存储或以其他方式保存校正子值。CNU存储器阵列811存储或以其他方式保存每个校验和的min1、min2和min1索引以及min2索引值。Min1是最小幅度的绝对值,并且Min1_idx是指示幅度Min1的位置的值。相应地,Min2是第二最小幅度的绝对值,并且Min2_idx是指示幅度Min2的位置的值。这通常以触发器的形式实现,并且需要每周期访问/更新。
例如,在MS LDPC解码期间,当(例如,由存储数据的应用程序或用户)请求或以其他方式期望所存储的数据时,所读取的数据可能包括噪声或错误,并且可以被存储在LCH存储器803中。例如,在BNU单元813中的似然比(LLR)值生成器可以访问所读取的数据,可以处理所读取的数据,并且可以输出针对每个位读取的LLR值。基于LLR值和基于变量-校验节点消息V2C_MSG(如图8所示)可以对所读取的数据执行解码。如果解码成功,则可以输出经解码的码字。
如上所述,MS解码器801可以包括校验节点更新(CNU)单元811、位节点更新(BNU)单元813以及校验和更新(CSU)单元809。CNU811可以被配置为从BNU 813接收位-校验消息(Lbc)(例如,对于3位解码器,可以将1位分配给符号,而将2位分配给幅度)以及位置基准(idx)。CNU 811还可以访问与Lbc消息的符号的乘积相对应的all_sgn值(并且存储在All-Sign单元815中)。CNU 811还可以被配置为基于位置基准idx和sgn_mem内容输出校验-位(Lcb)消息。sgn_mem值存储在Sign Mem单元807中,并包含/包括位-校验消息(Lbc)的符号。
如上所述,在解码期间,可能会发生多次迭代。可以使用来自先前解码迭代的值。例如,之前的解码可能已经基于min1_idx和输入位置基准idx发现Lcb的大小为Min1/Min2。Lcb的符号为all_sgn*sgn—mem。
BNU 813可以使用缩放因子并计算Lbc值。另外,BNU 813可以被配置为更新硬判决(hard_dec)(例如,关于位是0还是1做出的判决),然后CKSUM 809可以使用它来检查数据是否已经收敛至码字,在收敛至码字的情况下可以停止解码。
CKSUM 808可以从BNU 813接收硬判决HD并且可以被配置为计算每个奇偶校验的校验和(例如,硬判决的XOR奇偶校验)。如果所有的奇偶校验均为零,则码字已经收敛。CKSUM 808也可以被配置为输出计算的/运算的校验和。
更详细地,在MS解码器中可以使用以下程序:
初始化:将LCH存储器初始化为信道值。将CNU存储器初始化为每个校验和的[max,max,0,1]。将迭代计数设置为0。
对于每次迭代:
如果迭代达到最大值,则终止解码。
对于每个循环列中的每个变量节点VN:生成变量至校验节点V2C消息。
对于连接到VN的每个校验节点CN,计算校验至变量节点C2V消息。
计算总LLR并更新HD存储器805。
更新校验和存储器809。
计算另一V2C消息并基于最近的V2C消息更新CNU存储器阵列811。
如果校验和全为零或码字的循环冗余校验CRC有条件通过,则终止解码。
对于传统的MS解码器,min1值(4位)、min1索引(6位)、min2值(4位)、min2索引(6位)和校验和(1位)值被存储在CNU存储器阵列811中。CNU存储器阵列811通常由寄存器实施并且包括MS解码器的较大百分比的门数GC。信道信息LCH单元803也被设置为4位精度。
值得注意的是,其他类型的GC优化的MS解码器已使用较低精度(3位或2位)的min1、min2值,并且在LCH存储器中也使用了较低精度的值。LCH存储器过去也曾被设置为3位或2位精度。
值得注意的是,已经使用了其他类型的简化的MS解码器,其仅在每个CNU中存储min1、min2和min1索引以及校验和。结合较低的精度,这些简化设计降低了MS解码器的GC。
在本发明中,提供了一种使用高精度(在使用4KB模式时存储完整的校验节点CN信息)和使用低精度(在使用8KB/16KB模式时存储部分CN信息)的混合精度MS解码器。这种混合精度MS解码器通过改变使用模式支持动态代码长度改变。这种混合解码器的门数GC主要由使用低精度的长代码(8KB或16KB模式)确定,因此与完全高精度的MS解码器相比减少了GC。
现在返回图8所示的混合解码器的框图,LCH存储器803消耗大约20%的MS解码器的GC,而CNU存储器811消耗大约40%的MS解码器801的GC。在本发明的一个实施例中,如果解码器设置为4KB模式,则这两个块以高精度模式(每信息位4位)工作。如果解码器设置为8KB或16KB模式,则这两个块以低精度模式(2位或3位)工作。
假设代码长度为n,则2位部分CNU MS解码器用于低精度模式。进一步地,假设4KB和16KB MS解码器每个周期都处理t位。LCH存储器大小被设置为k*4宽度和n/k深度。4KB解码器将在每个周期从LCH存储器803读取t/k个连续地址的数据。16KB解码器将在每个周期从LCH存储器803读取t/(2k)个连续地址的数据。4KB精度的CNU存储器811将访问来自CNU寄存器阵列811的d*(4+4+6+6+1)*128个寄存器并且16KB解码器将从CNU寄存器阵列811访问d*(2+2+6+1)*128个寄存器,其中d为正在处理的当前列的列权重。
在上面的示例中,与非混合16KB MS解码器相比,LCH存储器大小减少了一半,并且CNU寄存器大小减少了大约一半。来自本发明的混合MS解码器节省了GC和功率。校正能力的任何折衷都会被GC和功耗的节省所抵消。
图9是描述根据本发明的实施例的用于操作MS解码器的方法的流程图。如图9所示,在901中,该方法确定MS解码器的操作模式。如本文所使用的,MS解码器的操作模式是指在MS解码器中操作的寄存器的数量(或寄存器大小)。在903中,该方法针对每个变量节点,计算变量至校验节点(V2C)消息。在905中,该方法根据操作模式,将与计算的V2C消息相关联的校验信息存储在校验节点单元CNU存储器中。校验信息包括当操作模式为高精度模式时的完整信息并且包括当操作模式为低精度模式时的部分信息。下面给出了完整信息和部分信息的示例。通常,部分信息是完整信息的子集,这表示部分信息包含较少的与用于错误代码处理的度量相关的信息,包括但不限于以较低位精度存储的信息。
在该方法的一个方面,对于每个校验和,完整信息可以包括min1值、min1索引、min2值、min2索引和校验和。在这方面,min1值和min2值以4位精度存储在校验节点单元CNU存储器中,min1索引和min2索引以6位精度存储在校验节点单元CNU存储器中,并且校验和以1位精度存储。操作模式可以在具有完整信息的4KB模式下操作。
在该方法的一个方面,对于每个校验和,部分信息可以包括min1值、min1索引、min2值和校验和。在这方面,min1值和min2值以2位或3位精度存储在校验节点单元CNU存储器中,min1索引以6位精度存储在校验节点单元CNU存储器中,并且校验和以1位精度存储。对于部分信息,操作模式以8KB或16KB模式操作。在该方法的一个方面,MS解码器中的CNU存储器作为MS LDPC解码器的一部分操作,并且MS LDPC解码的迭代继续进行,直到达到最大迭代次数或直到LDPC码字被成功解码为止。
在该方法的一个方面,与完全以高精度模式操作的解码器相比,该MS解码器的门数减少。
在本发明中,提供了一种存储器系统,包括:存储器装置、与存储器装置通信并被配置为控制存储器装置的控制器、以及与存储器装置的存储装置通信的最小和(MS)解码器。MS解码器被配置为:针对每个变量节点,计算变量至校验节点V2C消息;并且根据MS解码器的操作模式,将与计算的V2C消息相关联的校验信息存储在校验节点单元CNU存储器中。校验信息包括当操作模式为高精度模式时的完整信息以及当操作模式为低精度模式时的部分信息。
在该系统的一个方面,对于每个校验和,完整信息可以包括min1值、min1索引、min2值、min2索引和校验和。在这方面,min1值和min2值以4位精度存储在校验节点单元CNU存储器中,min1索引和min2索引以6位精度存储在校验节点单元CNU存储器中,并且校验和以1位精度存储。操作模式可以在具有完整信息的4KB模式下操作。
在该系统的一个方面,对于每个校验和,部分信息可以包括min1值、min1索引、min2值和校验和。在这方面,min1值和min2值以2位或3位精度存储在校验节点单元CNU存储器中,min1索引以6位精度存储在校验节点单元CNU存储器中,并且校验和以1位精度存储。对于部分信息,操作模式以8KB或16KB模式操作。在该方法的一个方面,MS解码器中的CNU存储器作为MS LDPC解码器的一部分操作,并且MS LDPC解码的迭代继续进行,直到达到最大迭代次数或直到LDPC码字被成功解码为止。
在该系统的一个方面,与完全以高精度模式操作的解码器相比,该MS解码器的门数减少。
尽管为了清楚和理解的目的已经详细描述了前述实施例,但是本发明不限于所提供的细节。正如本领域技术人员根据前述公开内容将理解的,存在许多实施本发明的替代方式。因此,所公开的实施例是说明性的,而非限制性的。

Claims (20)

1.一种操作MS解码器的方法,包括:
确定所述MS解码器的操作模式;
针对每个变量节点,计算变量至校验节点V2C消息;并且
根据所述操作模式,将与所计算的V2C消息相关联的校验信息存储在校验节点单元CNU存储器中,
其中所述校验信息包括当所述操作模式为高精度模式时的完整信息以及当所述操作模式为低精度模式时的部分信息。
2.根据权利要求1所述的方法,其中对于每个校验和,所述完整信息包括min1值、min1索引、min2值、min2索引和校验和。
3.根据权利要求2所述的方法,其中
所述min1值和所述min2值以4位精度存储在所述校验节点单元CNU存储器中,
所述min1索引和所述min2索引以6位精度存储在所述校验节点单元CNU存储器中,并且
所述校验和以1位精度存储。
4.根据权利要求2所述的方法,其中对于所述完整信息,所述操作模式以4KB模式操作。
5.根据权利要求1所述的方法,其中对于每个校验和,所述部分信息包括min1值、min1索引、min2值和校验和。
6.根据权利要求5所述的方法,其中
所述min1值和所述min2值以2位或3位精度存储在所述校验节点单元CNU存储器中,
所述min1索引以6位精度存储在所述校验节点单元CNU存储器中,并且
所述校验和以1位精度存储。
7.根据权利要求5所述的方法,其中对于所述部分信息,所述操作模式以8KB或16KB模式操作。
8.根据权利要求1所述的方法,其中所述MS解码器中的所述校验节点单元CNU存储器作为MS LDPC解码器的一部分操作。
9.根据权利要求8所述的方法,其中MS LDPC解码的迭代继续进行,直到达到最大迭代次数或者直到LDPC码字被成功解码为止。
10.根据权利要求9所述的方法,其中与完全以所述高精度模式操作的解码器相比,所述MS解码器的门数减少。
11.一种存储器系统,包括:
存储器装置;
控制器,与所述存储器装置通信并控制所述存储器装置;以及
最小和解码器即MS解码器,与所述存储器装置的存储装置通信,
其中所述MS解码器:
针对每个变量节点,计算变量至校验节点V2C消息;并且
根据所述MS解码器的操作模式,将与所计算的V2C消息相关联的校验信息存储在校验节点单元CNU存储器中,
其中所述校验信息包括当所述操作模式为高精度模式时的完整信息以及当所述操作模式为低精度模式时的部分信息。
12.根据权利要求11所述的系统,其中对于每个校验和,所述完整信息包括min1值、min1索引、min2值、min2索引和校验和。
13.根据权利要求12所述的系统,其中
所述min1值和所述min2值以4位精度存储在所述校验节点单元CNU存储器中,
所述min1索引和所述min2索引以6位精度存储在所述校验节点单元CNU存储器中,并且
所述校验和以1位精度存储。
14.根据权利要求12所述的系统,其中对于所述完整信息,所述操作模式以4KB模式操作。
15.根据权利要求11所述的系统,其中对于每个校验和,所述部分信息包括min1值、min1索引、min2值和校验和。
16.根据权利要求15所述的系统,其中
所述min1值和所述min2值以2位或3位精度存储在所述校验节点单元CNU存储器中,
所述min1索引以6位精度存储在所述校验节点单元CNU存储器中,并且
所述校验和以1位精度存储。
17.根据权利要求15所述的系统,其中,对于所述部分信息,所述操作模式以8KB或16KB模式操作。
18.根据权利要求11所述的系统,其中所述MS解码器中的所述校验节点单元CNU存储器作为MS LDPC解码器的一部分操作。
19.根据权利要求18所述的系统,其中MS LDPC解码的迭代继续进行,直到达到最大迭代次数或者直到LDPC码字被成功解码为止。
20.根据权利要求19所述的系统,其中与完全以所述高精度模式操作的解码器相比,所述MS解码器的门数减少。
CN202211505574.5A 2022-09-01 2022-11-28 用于减少长代码的门数的混合精度ms解码器 Pending CN117636963A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/901,306 US11973515B2 (en) 2022-09-01 2022-09-01 Hybrid precision MS decoder to reduce gate-count for long codes
US17/901,306 2022-09-01

Publications (1)

Publication Number Publication Date
CN117636963A true CN117636963A (zh) 2024-03-01

Family

ID=90022340

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211505574.5A Pending CN117636963A (zh) 2022-09-01 2022-11-28 用于减少长代码的门数的混合精度ms解码器

Country Status (2)

Country Link
US (1) US11973515B2 (zh)
CN (1) CN117636963A (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156409B2 (en) * 2008-02-29 2012-04-10 Seagate Technology Llc Selectively applied hybrid min-sum approximation for constraint node updates of LDPC decoders
US9048874B2 (en) * 2013-03-15 2015-06-02 Lsi Corporation Min-sum based hybrid non-binary low density parity check decoder
KR20210064723A (ko) * 2019-11-26 2021-06-03 에스케이하이닉스 주식회사 전자 장치 및 이의 동작 방법
US11204839B2 (en) 2020-02-20 2021-12-21 SK Hynix Inc. Memory system with low-latency read recovery and method of operating the memory system

Also Published As

Publication number Publication date
US20240080042A1 (en) 2024-03-07
US11973515B2 (en) 2024-04-30

Similar Documents

Publication Publication Date Title
CN106997777B (zh) 具有改进的硬解码吞吐量的vss ldpc解码器
CN109616148B (zh) 具有解码器的存储器系统、其操作方法和解码器
TWI705452B (zh) 具有硬通道資訊的位元翻轉ldpc解碼演算法
US10484008B2 (en) Memory system with on-the-fly error detection and termination and operating method thereof
US10693496B2 (en) Memory system with LDPC decoder and method of operating such memory system and LDPC decoder
CN110275796B (zh) 具有混合解码方案的存储器系统及其操作方法
US10447302B2 (en) Memory system decoding design and operating method thereof
US11182243B2 (en) Memory system with adaptive information propagation and method of operating such memory
CN112687323B (zh) 具有用于解码的错误减少方案的存储器系统及其操作方法
CN110277999B (zh) Ldpc解码装置、包括其的存储器系统及其方法
US20190377635A1 (en) Decoder for memory system and method thereof
US11062758B2 (en) Memory system to process multiple word line failures with limited storage and method of operating such memory system
CN110444245B (zh) 具有混合迭代解码能力的存储器系统及其操作方法
CN110275844B (zh) 利用自适应阈值解码的存储器系统及其操作方法
US11973515B2 (en) Hybrid precision MS decoder to reduce gate-count for long codes
US20210013905A1 (en) Memory system with low-complexity decoding and method of operating such memory system
US11967970B2 (en) Bit-flipping decoder and decoding method for irregular codes
US11621727B2 (en) Decoding systems and methods for local reinforcement
US11881871B1 (en) On-the-fly scaling factor change for irregular LDPC codes
CN116954984A (zh) Crc终止时的准确ber报告

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination