CN117785069A - 一种存储器及其参数调整方法 - Google Patents
一种存储器及其参数调整方法 Download PDFInfo
- Publication number
- CN117785069A CN117785069A CN202410205089.9A CN202410205089A CN117785069A CN 117785069 A CN117785069 A CN 117785069A CN 202410205089 A CN202410205089 A CN 202410205089A CN 117785069 A CN117785069 A CN 117785069A
- Authority
- CN
- China
- Prior art keywords
- clock adjustment
- writing
- adjustment value
- host data
- host
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 71
- 238000000034 method Methods 0.000 title claims abstract description 22
- 239000000872 buffer Substances 0.000 claims abstract description 41
- 238000013507 mapping Methods 0.000 claims description 51
- 230000009471 action Effects 0.000 claims description 20
- 125000004122 cyclic group Chemical group 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000012795 verification Methods 0.000 description 12
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 229940044442 onfi Drugs 0.000 description 4
- 238000005070 sampling Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Read Only Memory (AREA)
Abstract
本发明提供了一种存储器及其参数调整方法,存储器包括:闪存,其包括多个平面,平面包括多块存储块;寄存器,用以存储第一时钟调整值、第二时钟调整值以及第三时钟调整值;以及主控器,其用以获取主机数据、第一时钟调整值以及第二时钟调整值,主控器内设有缓冲区;主控器用以在第一高频状态下,获取符合要求的目标时钟调整值,在第二高频状态下,符合要求的目标脉冲调整值;将第一时钟调整值、第二时钟调整值、目标时钟调整值和目标脉冲调整值保存于缓冲区中。通过本发明提供的一种存储器及其参数调整方法,能够便于将存储器的参数调整为最佳值。
Description
技术领域
本发明涉及存储领域,特别涉及一种存储器及其参数调整方法。
背景技术
对于不同的存储器而言,其闪存因制作工艺和出厂设计的差别,导致时钟信号(Delay-Locked Loop,DLL)和脉冲信号(Data Strobe Signal,DQS)的参数也是不同的。因此,需要对存储器的参数进行调整,以调试出合适的DLL参数与DQS参数来适配当前闪存的状态。目前的参数都是厂商提供的,针对同一型号的存储器,其参数是相同的,导致存储器中的当前参数并不是最佳值。因此,存在待改进之处。
发明内容
本发明的目的在于提供种存储器及其参数调整方法,以便于将存储器的参数调整为最佳值。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明提供了存储器,包括:
闪存,其包括多个平面,所述平面包括多块存储块;
寄存器,用以存储第一时钟调整值、第二时钟调整值以及第三时钟调整值;以及
主控器,其用以获取主机数据、第一时钟调整值以及第二时钟调整值,所述主控器内设有缓冲区;
其中,所述主控器用以在低频状态下,分别以第一写入方式、第二写入方式向缓冲区的映射位置写入主机数据,获取符合要求的第三时钟调整值的均值,并剔除第三时钟调整值,所述第一写入方式表示写入过程中不进行循环冗余校验,所述第二写入方式表示写入过程中进行循环冗余校验;
所述主控器还用以在第一高频状态下,分别以第一写入方式、第二写入方式向映射位置写入主机数据,获取符合要求的第三时钟调整值的均值,表示为目标时钟调整值,并剔除第三时钟调整值;
所述主控器还用以在第二高频状态下,分别以第一写入方式、第二写入方式向映射位置写入主机数据,获取符合要求的第三时钟调整值,并对多个符合要求的第三时钟调整值进行排序,获取最小的所述第三时钟调整值,表示为目标脉冲调整值;
所述主控器还用以将第一时钟调整值、第二时钟调整值、目标时钟调整值和目标脉冲调整值保存于缓冲区中。
在本发明一实施例中,在所述低频状态下,以所述第一写入方式写入主机数据后,所述主控器依次根据不同级别的第三时钟调整值对主机数据进行读取,所述主控器确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第一区间内。
在本发明一实施例中,在所述低频状态下,所述主控器以第一写入方式多次重复写入主机数据,直至重复写入次数达到预设次数为止。
在本发明一实施例中,在所述低频状态下,以所述第二写入方式写入主机数据后,所述主控器依次根据不同级别的第三时钟调整值对主机数据进行读取,所述主控器确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第一区间内。
在本发明一实施例中,在所述第一高频状态下,以所述第一写入方式写入主机数据后,所述主控器依次根据不同级别的第三时钟调整值对主机数据进行读取,所述主控器确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第一区间内。
在本发明一实施例中,在所述第一高频状态下,所述主控器以第一写入方式多次重复写入主机数据,直至重复写入次数达到预设次数为止。
在本发明一实施例中,在所述第一高频状态下,以所述第二写入方式写入主机数据后,所述主控器依次根据不同级别的第三时钟调整值对主机数据进行读取,所述主控器确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第一区间内。
在本发明一实施例中,在所述第二高频状态下,以所述第一写入方式写入主机数据后,所述主控器依次根据不同级别的第三时钟调整值对主机数据进行读取,所述主控器确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第二区间内。
在本发明一实施例中,在所述第二高频状态下,以所述第二写入方式写入主机数据后,所述主控器依次根据不同级别的第三时钟调整值对主机数据进行读取,所述主控器确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第二区间内。
本发明还提供了一种存储器的参数调整方法,包括:
获取主机数据、第一时钟调整值、第二时钟调整值以及不同级别的第三时钟调整值;
在低频状态下,分别以第一写入方式、第二写入方式向主控器的缓冲区的映射位置写入主机数据,获取符合要求的第三时钟调整值的均值,并剔除第三时钟调整值,所述第一写入方式表示写入过程中不进行循环冗余校验,所述第二写入方式表示写入过程中进行循环冗余校验;
在第一高频状态下,分别以所述第一写入方式、第二写入方式向映射位置写入主机数据,获取符合要求的第三时钟调整值的均值,表示为目标时钟调整值,并剔除第三时钟调整值;
在第二高频状态下,分别以所述第一写入方式、第二写入方式向映射位置写入主机数据,获取符合要求的第三时钟调整值,并对多个符合要求的第三时钟调整值进行排序,获取最小的第三时钟调整值,表示为目标脉冲调整值;
将所述第一时钟调整值、第二时钟调整值、目标时钟调整值和目标脉冲调整值保存于缓冲区中。
如上所述,本发明提供一种存储器及其参数调整方法,通过对不同存储器的DLL参数与DQS参数进行动态调整,能够使当前存储器的采样信号、时钟调整到和闪存数据交互的最佳配置状态,进而有效提升存储器的存储效率。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中存储器的示意图;
图2为本发明一实施例中存储器的参数调整方法的流程图;
图3为图2中步骤S10的流程图;
图4为图2中步骤S20的流程图;
图5为图4中步骤S21的流程图;
图6为图4中步骤S22的流程图;
图7为图2中步骤S30的流程图;
图8为图7中步骤S31的流程图;
图9为图7中步骤S32的流程图;
图10为图2中步骤S40的流程图;
图11为图10中步骤S41的流程图;
图12为图10中步骤S42的流程图。
图中:100、主控器;110、缓冲区;200、闪存;300、寄存器。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明提供了一种存储器,其可对内部的时钟信号DLL和脉冲信号DQS的参数进行动态调整(Tuning),以使调整后的参数能够适配当前的闪存(nand)。存储器可包括主控器100、闪存200以及寄存器300。
在本发明的一个实施例中,主控器100可用以管理数据传输、执行命令、控制数据流向和来自闪存200的路径以及处理错误更正代码(ECC)。主控器100还可用以与外部设备(如智能手机、主机、平板电脑或嵌入式系统中的处理器)进行通信,处理外部设备的命令和请求,执行数据读取、写入和擦除操作。
在本发明的一个实施例中,主控器100中可以设置有缓冲区110(buffer)。缓冲区110是一块临时存储的区域,用于在内存与存储设备之间的数据传输中起到中继或缓冲作用。当外部设备发起数据读取或写入请求时,缓冲区110可以先存储这些数据。在写入操作时,数据首先被写入缓冲区110,然后由主控器100在合适的时候异步地写入闪存200。在读取操作时,将预先从闪存200读取的数据缓存在缓冲区110中,当外部设备请求数据时可立即提供,从而减少访问延迟。同时,由于闪存200只能以块为单位进行擦除,连续的小容量写入可能导致大量的写放大效应。缓冲区110可以用来合并这些小容量写入操作,达到整合数据更新和减少对闪存200擦写次数的目的,从而增强了写入效率。在进行数据写入之前,数据首先存入缓冲区110。然后,主控器100可以添加额外的错误更正代码(ECC),对数据进行校验,以便在读取时发现并更正可能出现的错误。此操作通常发生在数据被写入到闪存200之前。缓冲区110还可以用于实现命令队列,使主控器100可以收集一系列指令并决定最优的执行顺序。这可能进一步优化整体性能和效率。
在本发明的一个实施例中,闪存200的数量可以为多个。闪存200是非易失性存储介质。闪存200的基础数据存储单位是页(page)。页是数据读取和写入的最小单位。每个页通常能存储几百KB的数据,并且包含一个额外的小区域用于存储错误更正代码(ECC)和其他元数据。块(Block)是由多个页组成的更大存储单位。一个块可能包含数十到数百个页。在闪存中,擦除操作是按块进行的。面(plane)是更大的组织结构,一个闪存200可以包含一个或多个面。每个面都可以包含一定数量的块,它们共同构成该面。
在本发明的一个实施例中,寄存器300可以是用来临时存储控制信号、地址信息、状态码、命令及数据的小型存储设备。当外部设备发出指令读写指令时,读写指令可以由寄存器300来传递。寄存器300还可以会存储一些关于存储器状态的关键信息,供主控器100查询与操作。
在本发明的一个实施例中,当需要对存储器的DLL的参数和DQS的参数进行动态调整时,可以根据顺序,分别对DLL的参数与DQS的参数进行动态调整。在本实施例中,可以先对DLL的参数进行调整,之后,再对DQS的参数进行调整。
在本发明的一个实施例中,在对DLL的参数和DQS的参数进行动态调整时,主控器100可以先获取寄存器300中的第一时钟调整值(band)、第二时钟调整值(coarse)以及第三时钟调整值(phase)。其中,第一时钟调整值(band)通常是指一组时钟延迟的预设范围(Bandwidth),是DLL的一个较粗略的调整设置,用以适应温度或电源电压等环境变化。在不同的band内,主控器能够选择不同的延迟参数集。第二时钟调整值(coarse)是在选定的Band内进一步调整时钟延迟的设置,进而主控器100能够对DLL进行更精细的控制,以确保时钟和数据的有效对齐,使得时钟信号能在数据采集的最佳时机到达。第三时钟调整值(phase)是对时钟信号更精准的调整,通过改变时钟脉冲的相位,可以微调数据采集的具体时刻,使数据读取更加精确。第一时钟调整值、第二时钟调整值以及第三时钟调整值是确保DQS能够与时钟信号保持良好同步,以便数据可以在最佳时机被主控器100正确地采集。
在本发明的一个实施例中,主控器100可以根据闪存200中第一个面的第一个块(block0 plane0)在缓冲区110中的映射关系和临时数据的存储位置,获取对应的映射位置,进而获取第一个面的第一个块的元数据(matadata),并向元数据写入预定标记(pattern)。其中,元数据是关于数据的数据,元数据通常包含了描述存储块特性的信息,比如块的有效性、磨损等级、错误校正码(ECC)信息、块内数据的使用状态以及其他管理信息。每个存储块都会有相应的元数据与之关联,使得主控器100能够有效地管理存储块和保证数据完整性。预定标记可以是一个特定序列或值,用于在元数据中标识块或页的某些状态或信息。预定标记可以用来指示一个块已被分配、正在使用中、被标记为坏块、清除(erase)待用,或是包含特定类型的数据。
进一步地,主控器100可以从寄存器300中获取第一时钟调整值、第二时钟调整值。对于第三时钟调整值,主控器100可以获取默认的不同级别(level)的第三时钟调整值,并通过不同级别的第三时钟调整值对数据进行读取,以挑选出合适的第三时钟调整值。其中,可以根据不同的精细度,对第三时钟调整值设定不同的级别。例如,在DLL调整过程中可以设定16个级别,即,在时钟信号一个周期内可以设定16个不同的刻度点,主控器100在这16个点中选择一个作为数据采集的时刻。当然,第三时钟调整值的级别的具体数量可根据实际需求进行设定。
在本发明的一个实施例中,当需要对DLL的参数进行调整时,主控器100可以先在低频状态下,分别以第一写入方式、第二写入方式向缓冲区110的映射位置写入主机数据,获取符合要求的第三时钟调整值的均值,并剔除第三时钟调整值。之后,主控器100还用以在第一高频状态下,分别以第一写入方式、第二写入方式向映射位置写入主机数据,获取符合要求的第三时钟调整值的均值,表示为目标时钟调整值,并剔除第三时钟调整值。
在本发明的一个实施例中,低频状态可以指主控器100在时钟频率为100Mhz的状态下进行工作。当然,在其他实施例中,低频状态的时钟频率也可为其他数值。第一写入方式可以指主控器100将数据写入到缓冲区110的映射位置时,不进行循环冗余校验(crc)。第二写入方式可以指主控器100将数据写入到缓冲区110的映射位置时,进行循环冗余校验(crc)。
在本发明的一个实施例中,在低频状态下,以第一写入方式写入主机数据后,主控器100依次根据不同级别的第三时钟调整值对主机数据进行读取,主控器100确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第一区间(【PhaseStart,PhaseEnd】)内。其中,第一区间可以保存于缓冲区110中。
具体地,主控器100可以先对存储器的接口协议(op mode)进行切换,将接口协议切换为toggle 1.0(onfi 3.0)。之后,主控器100可以在低频状态下,以第一写入方式向第一个面的第一个块的映射位置写入主机数据。之后,主控器100可以依次根据不同级别的第三时钟调整值对主机数据进行读取,并判断读取后的主机数据与写入时的主机数据是否相同。
例如,在对主机数据进行校验的过程中,在主机数据写入之前,主控器100可以计算写入前的主机数据的校验和值或哈希值,然后在主机数据写入缓冲区110之后,再次计算该映射位置的校验和值或哈希值,最后比较这两个值。或者,主控器100还可以选择将主机数据写入缓冲区110后,立即从缓冲区110读取数据,然后将其与写入前的主机数据进行逐字节或逐位比较,以确认主机数据是否相同。又或者,主控器100在将主机数据写入缓冲区110时通常会生成ECC数据,然后在读取主机数据时使用ECC来验证主机数据的准确性。
进一步地,当主控器100在某一等级的第三时钟调整值下对主机数据进行读取时,判断出读取后的主机数据与写入时的主机数据相同时,此时主控器100可将对应等级的第三时钟调整值保存于第一区间内,且将主控器100的频率调整为预设频率。其中,预设频率的大小可不加限制。在本实施例中,预设频率可以为50Mhz。当主控器100在某一等级的第三时钟调整值下对主机数据进行读取时,判断出读取后的主机数据与写入时的主机数据不相同时,此时主控器100可将对应等级的第三时钟调整值剔除,不进行保留。当主控器100在所有等级的第三时钟调整值下对主机数据进行验证后,可以表示为主控器100完成一次验证任务。同时,可以将符合要求的第三时钟调整值保存于第一区间内。当然,在本实施例中,主控器100可以进行多次验证任务。例如,主控器100可以以第一写入方式多次重复向映射位置写入主机数据,并将符合要求的第三时钟调整值保存于第一区间内,直至重复写入次数达到预设次数为止。通过多次验证,能够使得保存的第三时钟调整值更加精确。预设次数的大小可不加限制,可以为5次、6次等。在每次验证后,都需要将主控器100的频率调整至预设频率。
在本发明的一个实施例中,在低频状态下,通过第一写入方式向映射位置写入主机数据后,主控器100可以通过第二写入方式写入主机数据,主控器100依次根据不同级别的第三时钟调整值对主机数据进行读取,主控器100确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第一区间内。之后,可获取保存于第一区间内的多个第三时钟调整值的均值,并对剔除对应的第三时钟调整值,以清空第一区间中的数据。
在上述低频状态下,主控器100可以重复5次以第一写入方式向映射位置写入主机数据,之后以第二写入方式写入主机数据,即主控器100共完成6次主机数据的写入。在每次主机数据写入后,主控器100都遍历16个等级的第三时钟调整值,通过不同等级的第三时钟调整值对写入后的主机数据进行读取,以挑选出符合要求的第三时钟调整值。通过6次主机数据的写入,主控器100可读取96次主机数据。
在本发明的一个实施例中,由于上述主控器100仅在低频状态下对DLL的参数进行调整,并未完成DLL的参数的调整工作,因此,主控器100还需要在高频状态下继续对DLL的参数进行调整,以获取调整后的DLL的参数。
在本发明的一个实施例中,主控器100可以在第一高频状态下,分别以第一写入方式、第二写入方式向缓冲区110的映射位置写入主机数据,获取符合要求的第三时钟调整值的均值,并剔除第三时钟调整值。之后,主控器100还用以在第一高频状态下,分别以第一写入方式、第二写入方式向映射位置写入主机数据,获取符合要求的第三时钟调整值的均值,表示为目标时钟调整值,并剔除第三时钟调整值。在本发明的一个实施例中,第一高频状态可以指主控器100在时钟频率为266Mhz的状态下进行工作。当然,在其他实施例中,第一高频状态的时钟频率也可为其他数值。
在本发明的一个实施例中,在第一高频状态下,以第一写入方式写入主机数据后,主控器100依次根据不同级别的第三时钟调整值对主机数据进行读取,主控器100确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第一区间内。
具体地,主控器100可以先对存储器的接口协议(op mode)进行切换,将接口协议切换为toggle 1.0(onfi 3.0)。之后,主控器100可以在第一高频状态下,以第一写入方式向第一个面的第一个块的映射位置写入主机数据。之后,主控器100可以依次根据不同级别的第三时钟调整值对主机数据进行读取,判断读取后的主机数据与写入时的主机数据是否相同。
进一步地,当主控器100在某一等级的第三时钟调整值下对主机数据进行读取时,判断出读取后的主机数据与写入时的主机数据相同时,此时主控器100可将对应等级的第三时钟调整值保存于第一区间内,且将主控器100的频率调整为预设频率。其中,预设频率的大小可不加限制,在本实施例中,预设频率可以为50Mhz。当主控器100在某一等级的第三时钟调整值下对主机数据进行读取时,判断出读取后的主机数据与写入时的主机数据不相同时,此时主控器100可将对应等级的第三时钟调整值剔除,不进行保留。当主控器100在所有等级的第三时钟调整值下对主机数据进行验证后,可以表示为主控器100完成一次验证任务。同时,可以将符合要求的第三时钟调整值保存于第一区间内。当然,在本实施例中,主控器100可以进行多次验证任务。例如,主控器100可以以第一写入方式多次重复向映射位置写入主机数据,并将符合要求的第三时钟调整值保存于第一区间内,直至重复写入次数达到预设次数为止。通过多次验证,能够使得保存的第三时钟调整值更加精确。在每次验证后,都需要将主控器100的频率调整至预设频率。
在本发明的一个实施例中,在第一高频状态下,通过第一写入方式向映射位置写入主机数据后,主控器100可以通过第二写入方式写入主机数据,主控器100依次根据不同级别的第三时钟调整值对主机数据进行读取,主控器100确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第一区间内。之后,可获取保存于第一区间内的多个第三时钟调整值的均值,表示为目标时钟调整值,并对剔除对应的第三时钟调整值,以清空第一区间中的数据。此时,DLL的参数调整完成,可以获得对应的第一时钟调整值(band)、第二时钟调整值(coarse)以及目标时钟调整值。
在上述第一高频状态下,主控器100可以重复5次以第一写入方式向映射位置写入主机数据,之后以第二写入方式写入主机数据,即主控器100共完成6次主机数据的写入。在每次主机数据写入后,主控器100都遍历16个等级的第三时钟调整值,通过不同等级的第三时钟调整值对写入后的主机数据进行读取,以挑选出符合要求的第三时钟调整值。通过6次主机数据的写入,主控器100可读取96次主机数据。
在本发明的一个实施例中,当完成DLL的参数调整后,需要对DQS的参数进行调整。在对DQS的参数进行调整前,可以先对存储器的接口协议(op mode)进行切换,将接口协议切换为toggle 1.0(onfi 3.0)。之后,可以将主控器100的频率调整为高频状态,高频状态可以为266Mhz。同时,主控器100可以获取在调整DLL的参数过程中的第一时钟调整值(band)、第二时钟调整值(coarse)以及第三时钟调整值(phase)。
在本发明的一个实施例中,在对DQS的参数进行调整时,对于第三时钟调整值,主控器100可以获取默认的不同级别(level)的第三时钟调整值,并通过不同级别的第三时钟调整值对数据进行读取,以挑选出合适的第三时钟调整值。其中,可以根据不同的精细度,对第三时钟调整值设定不同的级别。例如,在DQS调整过程中可以设定32个级别,即,在时钟信号一个周期内可以设定32个不同的刻度点,主控器100在这32个点中选择一个作为数据采集的时刻。当然,第三时钟调整值的级别的具体数量可根据实际需求进行设定。
在本发明的一个实施例中,当需要对DLL的参数进行调整时,主控器100可以先在第二高频状态下,分别以第一写入方式、第二写入方式向缓冲区110的映射位置写入主机数据,获取符合要求的第三时钟调整值的均值,并剔除第三时钟调整值。之后,主控器100还用以在第一高频状态下,分别以第一写入方式、第二写入方式向映射位置写入主机数据,获取符合要求的第三时钟调整值的均值,表示为目标时钟调整值,并剔除第三时钟调整值。第二高频状态可以指主控器100在时钟频率为266Mhz的状态下进行工作。当然,在其他实施例中,第二高频状态的时钟频率也可为其他数值。
在本发明的一个实施例中,在第二高频状态下,以第一写入方式写入主机数据后,主控器100依次根据不同级别的第三时钟调整值对主机数据进行读取,主控器100确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第二区间(【m08IntersectionStart,m08IntersectionEnd】)内。其中,第二区间可以保存于缓冲区110中。
具体地,主控器100可以先对存储器的接口协议(op mode)进行切换,将接口协议切换为toggle 1.0(onfi 3.0)。之后,主控器100可以在第二高频状态下,以第一写入方式向第一个面的第一个块的映射位置写入主机数据。之后,主控器100可以依次根据不同级别的第三时钟调整值对主机数据进行读取,判断读取后的主机数据与写入时的主机数据是否相同。
进一步地,当主控器100在某一等级的第三时钟调整值下对主机数据进行读取时,判断出读取后的主机数据与写入时的主机数据相同时,此时主控器100可将对应等级的第三时钟调整值保存于第二区间内,且将主控器100的频率调整为预设频率。当主控器100在某一等级的第三时钟调整值下对主机数据进行读取时,判断出读取后的主机数据与写入时的主机数据不相同时,此时主控器100可将对应等级的第三时钟调整值剔除,不进行保留。当主控器100在所有等级的第三时钟调整值下对主机数据进行验证后,可以表示为主控器100完成一次验证任务。同时,可以将符合要求的第三时钟调整值保存于第二区间内。当然,在本实施例中,主控器100可以进行多次验证任务。例如,主控器100可以以第一写入方式多次重复向映射位置写入主机数据,并将符合要求的第三时钟调整值保存于第二区间内,直至重复写入次数达到预设次数为止。通过多次验证,能够使得保存的第三时钟调整值更加精确。预设次数的大小可不加限制,可以为5次、6次等。在每次验证后,都需要将主控器100的频率调整至预设频率。
在本发明的一个实施例中,在第二高频状态下,通过第一写入方式向映射位置写入主机数据后,主控器100可以通过第二写入方式写入主机数据,主控器100依次根据不同级别的第三时钟调整值对主机数据进行读取,主控器100确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第二区间内。
在上述第二高频状态下,主控器100可以重复5次以第一写入方式向映射位置写入主机数据,之后以第二写入方式写入主机数据,即主控器100共完成6次主机数据的写入。在每次主机数据写入后,主控器100都遍历32个等级的第三时钟调整值,通过不同等级的第三时钟调整值对写入后的主机数据进行读取,以挑选出符合要求的第三时钟调整值。通过6次主机数据的写入,主控器100可读取192次主机数据。
在本发明的一个实施例中,当将符合要求的多个不同等级的第三时钟调整值保存于第二区间后,可以按照不同的第三时钟调整值的大小顺序,以对所有的第三时钟调整值进行排序。之后,可以挑选第二区间中的最左侧的第三时钟调整值,即最小的第三时钟调整值,表示为目标脉冲调整值。此时,DQS的参数调整完成,可以获得对应的第一时钟调整值(band)、第二时钟调整值(coarse)以及目标脉冲调整值。
在本发明的一个实施例中,由于DLL参数与DQS参数中的第一时钟调整值(band)、第二时钟调整值(coarse)是相同的,因此可将第一时钟调整值(band)、第二时钟调整值(coarse)、目标时钟调整值、目标脉冲调整值保存于主控器100的缓冲区中,进而完成DLL参数与DQS参数的调整。
可见,在上述方案中,通过对不同存储器的DLL参数与DQS参数进行动态调整,能够使当前存储器的采样信号、时钟调整到和闪存数据交互的最佳配置状态,进而有效提升存储器的存储效率。
请参阅图2,本发明还提供了一种存储器的参数调整方法,该参数调整方法可以应用于上述实施例中的存储器中,以对存储器的DLL参数与DQS参数进行调整。该参数调整方法可以包括如下步骤:
步骤S10、获取主机数据、第一时钟调整值、第二时钟调整值以及不同级别的第三时钟调整值;
步骤S20、在低频状态下,分别以第一写入方式、第二写入方式向主控器的缓冲区的映射位置写入主机数据,获取符合要求的第三时钟调整值的均值;
步骤S30、在第一高频状态下,分别以第一写入方式、第二写入方式向主控器的缓冲区的映射位置写入主机数据,获取符合要求的第三时钟调整值的均值,表示为目标时钟调整值,并剔除第三时钟调整值;
步骤S40、在第二高频状态下,分别以第一写入方式、第二写入方式向主控器的缓冲区的映射位置写入主机数据,获取符合要求的第三时钟调整值;
步骤S50、对多个符合要求的第三时钟调整值进行排序,获取最小的第三时钟调整值,表示为目标脉冲调整值;
步骤S60、将第一时钟调整值、第二时钟调整值、目标时钟调整值和目标脉冲调整值保存于缓冲区中。
请参阅图3,在本发明的一个实施例中,当执行步骤S10时,具体地,步骤S10可包括如下步骤:
步骤S11、根据主控器的缓冲区中的映射位置,获取第一个面的第一个块的元数据,并向元数据写入预定标记;
步骤S12、从主机中获取主机数据,从寄存器中获取合适的第一时钟调整值、第二时钟调整值以及不同级别的第三时钟调整值;
请参阅图4,在本发明的一个实施例中,当执行步骤S20时,具体地,步骤S20可包括如下步骤:
步骤S21、在低频状态下,以第一写入方式向第一个面的第一个块的映射位置写入主机数据,并将符合要求的第三时钟调整值保存于第一区间内;
步骤S22、在低频状态下,以第二写入方式向映射位置写入主机数据,并将符合要求的第三时钟调整值保存于第一区间内;
步骤S23、获取第一区间中的第三时钟调整值的均值,并剔除第一区间中的第三时钟调整值;
请参阅图5,在本发明的一个实施例中,当执行步骤S21时,具体地,步骤S21可包括如下步骤:
步骤S211、在低频状态下,以第一写入方式向第一个面的第一个块的映射位置写入主机数据;
步骤S212、依次根据不同级别的第三时钟调整值对主机数据进行读取,判断读取后的主机数据与写入时的主机数据是否相同;
步骤S213、若相同,则将对应的第三时钟调整值保存于第一区间内,且将主控器的频率调整为预设频率;
步骤S214、若不相同,则剔除对应的第三时钟调整值;
步骤S215、以第一写入方式多次重复向映射位置写入主机数据,并将符合要求的第三时钟调整值保存于第一区间内,直至重复写入次数达到预设次数为止。
请参阅图6,在本发明的一个实施例中,当执行步骤S22时,具体地,步骤S22可包括如下步骤:
步骤S221、在低频状态下,以第二写入方式向映射位置写入主机数据;
步骤S222、依次根据不同级别的第三时钟调整值对主机数据进行读取,判断读取后的主机数据与写入时的主机数据是否相同;
步骤S223、若相同,则将对应的第三时钟调整值保存于第一区间内,且将主控器的频率调整为预设频率;
步骤S224、若不相同,则剔除对应的第三时钟调整值。
请参阅图7,在本发明的一个实施例中,当执行步骤S30时,具体地,步骤S30可包括如下步骤:
步骤S31、在第一高频状态下,以第一写入方式向第一个面的第一个块的映射位置写入主机数据,并将符合要求的第三时钟调整值保存于第一区间内;
步骤S32、在第一高频状态下,以第二写入方式向映射位置写入主机数据,并将符合要求的第三时钟调整值保存于第一区间内;
步骤S33、获取第一区间中的第三时钟调整值的均值,表示为目标时钟调整值。
请参阅图8,在本发明的一个实施例中,当执行步骤S31时,具体地,步骤S31可包括如下步骤:
步骤S311、在第一高频状态下,以第一写入方式向映射位置写入主机数据;
步骤S312、依次根据不同级别的第三时钟调整值对主机数据进行读取,判断读取后的主机数据与写入时的主机数据是否相同;
步骤S313、若相同,则将对应的第三时钟调整值保存于第一区间内,且将主控器的频率调整为预设频率;
步骤S314、若不相同,则剔除对应的第三时钟调整值;
步骤S315、以第一写入方式多次重复向映射位置写入主机数据,并将符合要求的第三时钟调整值保存于第一区间内,直至重复写入次数达到预设次数为止。
请参阅图9,在本发明的一个实施例中,当执行步骤S32时,具体地,步骤S32可包括如下步骤:
步骤S321、在第一高频状态下,以第二写入方式向映射位置写入主机数据;
步骤S322、依次根据不同级别的第三时钟调整值对主机数据进行读取,判断读取后的主机数据与写入时的主机数据是否相同;
步骤S323、若相同,则将对应的第三时钟调整值保存于第一区间内,且将主控器的频率调整为预设频率;
步骤S324、若不相同,则剔除对应的第三时钟调整值。
请参阅图10,在本发明的一个实施例中,当执行步骤S40时,具体地,步骤S40可包括如下步骤:
步骤S41、在第二高频状态下,以第一写入方式向映射位置写入主机数据,并将符合要求的第三时钟调整值保存于第二区间内;
步骤S42、在第二高频状态下,以第二写入方式向映射位置写入主机数据,并将符合要求的第三时钟调整值保存于第二区间内。
请参阅图11,在本发明的一个实施例中,当执行步骤S141时,具体地,步骤S41可包括如下步骤:
步骤S411、在第二高频状态下,以第一写入方式向映射位置写入主机数据;
步骤S412、依次根据不同级别的第三时钟调整值对主机数据进行读取,判断读取后的主机数据与写入时的主机数据是否相同;
步骤S413、若相同,则将对应的第三时钟调整值保存于第二区间内;
步骤S414、若不相同,则剔除对应的第三时钟调整值;
步骤S415、以第一写入方式多次重复向映射位置写入主机数据,并将符合要求的第三时钟调整值保存于第二区间内,直至重复写入次数达到预设次数为止。
请参阅图12,在本发明的一个实施例中,当执行步骤S42时,具体地,步骤S42可包括如下步骤:
步骤S421、在第二高频状态下,以第二写入方式向映射位置写入主机数据;
步骤S422、依次根据不同级别的第三时钟调整值对主机数据进行读取,判断读取后的主机数据与写入时的主机数据是否相同;
步骤S423、若相同,则将对应的第三时钟调整值保存于第二区间内;
步骤S424、若不相同,则剔除对应的第三时钟调整值。
以上公开的本发明实施例只是用于帮助阐述本发明。实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种存储器,其特征在于,包括:
闪存,其包括多个平面,所述平面包括多块存储块;
寄存器,用以存储第一时钟调整值、第二时钟调整值以及第三时钟调整值;以及
主控器,其用以获取主机数据、第一时钟调整值以及第二时钟调整值,所述主控器内设有缓冲区;
其中,所述主控器用以在低频状态下,分别以第一写入方式、第二写入方式向缓冲区的映射位置写入主机数据,获取符合要求的第三时钟调整值的均值,并剔除第三时钟调整值,所述第一写入方式表示写入过程中不进行循环冗余校验,所述第二写入方式表示写入过程中进行循环冗余校验;
所述主控器还用以在第一高频状态下,分别以第一写入方式、第二写入方式向映射位置写入主机数据,获取符合要求的第三时钟调整值的均值,表示为目标时钟调整值,并剔除第三时钟调整值;
所述主控器还用以在第二高频状态下,分别以第一写入方式、第二写入方式向映射位置写入主机数据,获取符合要求的第三时钟调整值,并对多个符合要求的第三时钟调整值进行排序,获取最小的第三时钟调整值,表示为目标脉冲调整值;
所述主控器还用以将第一时钟调整值、第二时钟调整值、目标时钟调整值和目标脉冲调整值保存于缓冲区中。
2.根据权利要求1所述的存储器,其特征在于,在所述低频状态下,以所述第一写入方式写入主机数据后,所述主控器依次根据不同级别的第三时钟调整值对主机数据进行读取,所述主控器确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第一区间内。
3.根据权利要求2所述的存储器,其特征在于,在所述低频状态下,所述主控器以第一写入方式多次重复写入主机数据,直至重复写入次数达到预设次数为止。
4.根据权利要求2所述的存储器,其特征在于,在所述低频状态下,以所述第二写入方式写入主机数据后,所述主控器依次根据不同级别的第三时钟调整值对主机数据进行读取,所述主控器确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第一区间内。
5.根据权利要求1所述的存储器,其特征在于,在所述第一高频状态下,以所述第一写入方式写入主机数据后,所述主控器依次根据不同级别的第三时钟调整值对主机数据进行读取,所述主控器确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第一区间内。
6.根据权利要求5所述的存储器,其特征在于,在所述第一高频状态下,所述主控器以第一写入方式多次重复写入主机数据,直至重复写入次数达到预设次数为止。
7.根据权利要求5所述的存储器,其特征在于,在所述第一高频状态下,以所述第二写入方式写入主机数据后,所述主控器依次根据不同级别的第三时钟调整值对主机数据进行读取,所述主控器确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第一区间内。
8.根据权利要求1所述的存储器,其特征在于,在所述第二高频状态下,以所述第一写入方式写入主机数据后,所述主控器依次根据不同级别的第三时钟调整值对主机数据进行读取,所述主控器确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第二区间内。
9.根据权利要求8所述的存储器,其特征在于,在所述第二高频状态下,以所述第二写入方式写入主机数据后,所述主控器依次根据不同级别的第三时钟调整值对主机数据进行读取,所述主控器确定读取后的主机数据与写入时的主机数据相同时,执行的动作为确认该级别的第三时钟调整值符合要求,并保存于第二区间内。
10.一种存储器的参数调整方法,其特征在于,包括:
获取主机数据、第一时钟调整值、第二时钟调整值以及不同级别的第三时钟调整值;
在低频状态下,分别以第一写入方式、第二写入方式向主控器的缓冲区的映射位置写入主机数据,获取符合要求的第三时钟调整值的均值,并剔除第三时钟调整值,所述第一写入方式表示写入过程中不进行循环冗余校验,所述第二写入方式表示写入过程中进行循环冗余校验;
在第一高频状态下,分别以所述第一写入方式、第二写入方式向映射位置写入主机数据,获取符合要求的第三时钟调整值的均值,表示为目标时钟调整值,并剔除第三时钟调整值;
在第二高频状态下,分别以所述第一写入方式、第二写入方式向映射位置写入主机数据,获取符合要求的第三时钟调整值,并对多个符合要求的第三时钟调整值进行排序,获取最小的第三时钟调整值,表示为目标脉冲调整值;
将所述第一时钟调整值、第二时钟调整值、目标时钟调整值和目标脉冲调整值保存于缓冲区中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410205089.9A CN117785069B (zh) | 2024-02-26 | 2024-02-26 | 一种存储器及其参数调整方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410205089.9A CN117785069B (zh) | 2024-02-26 | 2024-02-26 | 一种存储器及其参数调整方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117785069A true CN117785069A (zh) | 2024-03-29 |
CN117785069B CN117785069B (zh) | 2024-05-24 |
Family
ID=90391278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410205089.9A Active CN117785069B (zh) | 2024-02-26 | 2024-02-26 | 一种存储器及其参数调整方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117785069B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956743A (en) * | 1997-08-25 | 1999-09-21 | Bit Microsystems, Inc. | Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations |
JP2008067245A (ja) * | 2006-09-11 | 2008-03-21 | Sharp Corp | 位相調整回路 |
US20140334243A1 (en) * | 2013-05-09 | 2014-11-13 | Avago Technologies General Ip (Singapore) Pte. Ltd | Write level training using dual frequencies in a double data-rate memory device interface |
US20150278151A1 (en) * | 2014-03-25 | 2015-10-01 | Ipgoal Microelectronics (Sichuan) Co., Ltd. | Start-up method for usb flash disk with synchronous flash memory and control system |
CN109582591A (zh) * | 2018-10-12 | 2019-04-05 | 深圳市紫光同创电子有限公司 | Ddr控制器写入均衡方法及装置、系统、存储计算机 |
US20190235760A1 (en) * | 2018-01-30 | 2019-08-01 | Micron Technology, Inc. | Write level initialization syncronization |
CN111506527A (zh) * | 2020-04-13 | 2020-08-07 | 天津飞腾信息技术有限公司 | 数字高速并行总线自适应区间校正方法、装置及存储介质 |
CN112242169A (zh) * | 2019-07-16 | 2021-01-19 | 合肥杰发科技有限公司 | 一种调整采样相位的方法及串行闪存控制器 |
CN113889172A (zh) * | 2021-09-15 | 2022-01-04 | 至誉科技(武汉)有限公司 | 变温环境中dqs相位校准方法、装置、设备及存储介质 |
CN115188402A (zh) * | 2022-07-27 | 2022-10-14 | 长鑫存储技术有限公司 | 一种延迟锁相环和存储器 |
CN116631490A (zh) * | 2023-05-30 | 2023-08-22 | 合肥康芯威存储技术有限公司 | 一种eMMC芯片的命令识别异常处理方法及装置 |
-
2024
- 2024-02-26 CN CN202410205089.9A patent/CN117785069B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956743A (en) * | 1997-08-25 | 1999-09-21 | Bit Microsystems, Inc. | Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations |
JP2008067245A (ja) * | 2006-09-11 | 2008-03-21 | Sharp Corp | 位相調整回路 |
US20140334243A1 (en) * | 2013-05-09 | 2014-11-13 | Avago Technologies General Ip (Singapore) Pte. Ltd | Write level training using dual frequencies in a double data-rate memory device interface |
US20150278151A1 (en) * | 2014-03-25 | 2015-10-01 | Ipgoal Microelectronics (Sichuan) Co., Ltd. | Start-up method for usb flash disk with synchronous flash memory and control system |
US20190235760A1 (en) * | 2018-01-30 | 2019-08-01 | Micron Technology, Inc. | Write level initialization syncronization |
CN109582591A (zh) * | 2018-10-12 | 2019-04-05 | 深圳市紫光同创电子有限公司 | Ddr控制器写入均衡方法及装置、系统、存储计算机 |
CN112242169A (zh) * | 2019-07-16 | 2021-01-19 | 合肥杰发科技有限公司 | 一种调整采样相位的方法及串行闪存控制器 |
CN111506527A (zh) * | 2020-04-13 | 2020-08-07 | 天津飞腾信息技术有限公司 | 数字高速并行总线自适应区间校正方法、装置及存储介质 |
CN113889172A (zh) * | 2021-09-15 | 2022-01-04 | 至誉科技(武汉)有限公司 | 变温环境中dqs相位校准方法、装置、设备及存储介质 |
CN115188402A (zh) * | 2022-07-27 | 2022-10-14 | 长鑫存储技术有限公司 | 一种延迟锁相环和存储器 |
CN116631490A (zh) * | 2023-05-30 | 2023-08-22 | 合肥康芯威存储技术有限公司 | 一种eMMC芯片的命令识别异常处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117785069B (zh) | 2024-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1769331B1 (en) | Storage device and host apparatus | |
US7065608B2 (en) | Apparatus for recording data and method for writing data to flash memory | |
JP4524309B2 (ja) | フラッシュメモリ用のメモリコントローラ | |
US8292177B2 (en) | Optimized non-volatile storage systems | |
US9122611B2 (en) | Method for giving read commands and reading data, and controller and storage system using the same | |
EP2428962A2 (en) | Nonvolatile memory system, and data read/write method for nonvolatile memory system | |
EP1787202A1 (en) | Storage device, memory management method and program | |
US6516400B1 (en) | Data storage, data processing system and method | |
CN104731674B (zh) | 使用mlc nvm存储电子系统固件的方法与设备 | |
US8667348B2 (en) | Data writing method for non-volatile memory module and memory controller and memory storage apparatus using the same | |
WO2008042467A1 (en) | End of life recovery and resizing of memory cards | |
US20120198131A1 (en) | Data writing method for rewritable non-volatile memory, and memory controller and memory storage apparatus using the same | |
TWI473103B (zh) | 快閃記憶體儲存裝置及其不良儲存區域的判定方法 | |
CN116880782B (zh) | 一种内嵌式存储器及其测试方法 | |
JP2013016148A (ja) | メモリコントローラ、不揮発性記憶装置 | |
JP4180757B2 (ja) | シミュレーション装置 | |
CN110688141B (zh) | 固件更新方法 | |
CN117785069B (zh) | 一种存储器及其参数调整方法 | |
CN103383663B (zh) | 系统运作方法、存储器控制器与存储器 | |
TWI417889B (zh) | 快閃記憶體之寫入逾時控制方法及其記憶裝置 | |
US11461516B2 (en) | Development system and productization method for data storage device | |
US10579306B1 (en) | Memory management method and storage controller | |
CN106910520B (zh) | 存储装置的写入方法、存储装置、存储控制器和存储系统 | |
TWI591641B (zh) | 資料程式化方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI814625B (zh) | 資料儲存裝置與寫入緩存器管理方法 |
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 | ||
GR01 | Patent grant |