一种存储器校准系统及方法、可读存储介质与流程

文档序号:21361256发布日期:2020-07-04 04:34阅读:228来源:国知局
一种存储器校准系统及方法、可读存储介质与流程

本发明涉及存储器技术领域,特别是涉及一种存储器校准系统及方法、可读存储介质。



背景技术:

电子设备在每次开机启动的时候,处理器会先运行固化在芯片内部的引导程序,然后会将引导程序搬到芯片的静态随机存取存储器(staticrandom-accessmemory,sram)中运行,引导程序会设置各种必要的锁相回路(phaselockedloop,pll)并初始化动态随机存取存储器(dynamicrandomaccessmemory,dram)的控制器,为后续使用dram做准备;在初始化dram控制器的过程中,会对dram的全部参数进行校准以获取dram正常工作所需的参数。

本申请的发明人在长期的研发过程中,发现现有技术方案中,由于每次校准都需要获取dram的全部参数,所需时间较长。



技术实现要素:

本发明提供一种存储器校准系统及方法、可读存储介质,能够解决现有技术中存储器校准时间过长的技术问题。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种存储器校准方法,包括:

从第一存储器读取第一数据,所述第一数据包括第二存储器用于校准的预存参数;

对所述第一数据进行第一次校验;

若所述第一数据通过第一校验,则对所述第一数据进行第二校验;

若所述第一数据通过第二校验,则使用所述第一数据配置所述第二存储器的控制器;

对所述第二存储器进行测试,若测试通过,则完成对所述第二存储器的校准。

为解决上述技术问题,本发明采用的另一个技术方案是:提供一种存储器校准系统,所述系统包括第一存储器、第二存储器以及处理器,所述第一存储器内存储有第一数据;处理器用于从第一存储器读取第一数据,所述第一数据包括第二存储器的预存参数;还用于对第一数据进行第一校验和第二校验,并判断所述第一数据是否有效;若所述第一数据有效,则使用所述第一数据配置所述第二存储器的控制器;还用于对所述第二存储器进行测试,若测试通过,则完成对所述第二存储器的校准。

为解决上述技术问题,本发明采用的又一个技术方案是:提供一种可读存储介质,存储有指令,所述指令被执行时实现上述所述方法中的步骤。

本发明的有益效果是:区别于现有技术的情况,本发明提供的存储器校准方法中需要获取第二存储器的参数时先从第一存储器中读取第一数据,第一数据包括第二存储器的预存参数,第一数据可用的情况下直接使用第一数据来配置第二存储器的控制器,在判断第一数据是否可用的过程中只需对第二存储器的部分参数进行校准来判断,无需对第二存储器进行完整的校准,能够有效节省配置第二存储器的时间,加快系统启动。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:

图1是本发明存储器校准方法一实施方式的流程示意图;

图2是图1所示的步骤s20的具体步骤流程示意图;

图3是图1所示的步骤s30的具体步骤流程示意图;

图4是本发明存储器校准方法一具体实施方式的流程示意图;

图5是本发明存储器校准系统一实施方式的结构架构图;

图6是本发明可读存储介质一实施方式的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,本发明提供一种存储器校准方法,该存储器校准方法可应用汽车、电脑等设备,存储器校准方法包括:

步骤s10,从第一存储器读取第一数据,第一数据包括第二存储器用于校准的预存参数。

其中,第一存储器为非易失性存储器,例如闪存,第二数据为易失性存储器,例如dram。

本实施方式中,是根据当前环境状况从第一存储器读取相应的第一数据,在一具体实施例中,第二存储器以dram为例,dram控制器支持做动态电压频率调整(dynamicvoltageandfrequencyscaling,dvfs)的情况下,dram控制器设置有固定的几个档位的工作电压,工作电压值则由dram控制器决定,每个档位的工作电压会有对应的预存参数,即structdram_parameters,预存参数保存在第一存储器中,当系统启动后则会根据当前所选的档位选择对应的预存参数。

第一数据还包括魔法数和预存循环冗余校验码,循环冗余校验码是根据预存参数计算得到的。

其中,第一存储器保存第一数据的数据结构structdram_parameters{u32magic;u32crc32;structparameters{u32write_leveing_dly;u32gating_dly;u32rxdly;u32tx_dly;u32tx_vref;…}para;…}。

在一具体实施例中,第二存储器以dram为例进行说明,预存参数包括双倍速率(doubledatarate,ddr)标准参数以及dram控制器自定义的参数,其中,ddr标准参数可以为commandaddressdelay、commandaddressvref、writelevelingdelay、gatingdelay、rx_dly、tx_dly、rx_dq_vref、tx_dq_vref等;dram控制器自定义的参数则会随着dram控制器的不同而改变,例如dram控制器的上拉能力、下拉能力以及阻抗等均会影响参数值。

步骤s20,对第一数据进行第一次校验。

其中,请结合查阅图2,对第一数据进行第一次校验的步骤包括:

步骤s21,判断第一数据中的魔法数与预设魔法数是否相等,并根据第一数据计算循环冗余校验码,判断循环冗余校验码与预存循环冗余校验码是否相等。

在一具体实施例中,预设魔法数为0x12345678,判断魔法数是否与0x12345678相等,若相等,则完成魔法数的比较。

可以理解,第一数据包括预存参数、魔法数和预存循环冗余校验码,循环冗余校验码是根据预存参数计算得到的。

步骤s22,若魔法数与预设魔法数相等,且循环冗余校验码与预存循环冗余校验码相等,则判定第一数据通过第一校验。

进一步的,若魔法数与预设魔法数不相等或/和循环冗余校验码与预存循环冗余校验码不相等,则对第二存储器的全部校准参数进行计算,获得第二数据;

使用第二数据配置第二存储器的控制器并将第二数据作为预存参数保存至第一存储器中。

步骤s30,若第一数据通过第一校验,则对第一数据进行第二校验。

其中,请结合参阅图3,对第一数据进行第二校验的步骤包括:

步骤s31,计算得到第二寄存器的部分校准参数,将部分校准参数与第一数据中对应的预存参数进行比较。

步骤s32,若部分校准参数与对应的预存参数的误差处于预设范围内,则判定第一数据通过第二校验。

其中,计算方法可以为动态随机存取存储器校准算法,误差指的是部分校准参数与对应的预存参数之间的绝对值误差,预设范围为0~10%,例如1%、5%或者10%等,若二者的误差范围超过10%,则系统将不能开机,无法进行工作。

参数延时(gatingdelay)为重要的参数之一,容易受到电压和温度的影响,部分校准参数以延时为例,则将计算所得到的延时参数与第一存储器中所预设的延时参数进行比较,若二者之间的误差范围为0~10%,则将第一存储器中的第一数据配置第二存储器的控制器。

步骤s40,若第一数据通过第二校验,则使用第一数据配置第二存储器的控制器。

进一步的,若部分校准参数与对应的预存参数的误差未处于预设范围内,则对第二存储器的全部校准参数进行计算,获得第二数据;

使用第二数据配置第二存储器的控制器并将第二数据作为预存参数保存至第一存储器中。

步骤s50,对第二存储器进行测试,若测试通过,则完成对第二存储器的校准。

进一步的,若未通过测试,则对第二存储器的全部校准参数进行计算,获得第二数据;

使用第二数据配置第二存储器的控制器并将第二数据作为预存参数保存至第一存储器中。

可以理解,对第二存储器进行read/write测试,如果对第二存储器的read/write测试通过,则认为第一存储器中的预存参数可用,完成对第二存储器的校准;如果read/write测试没有通过,则对第二存储器的全部参数进行校准,获得第二数据,并使用第二数据配置第二存储器的控制器并将第二数据作为预存参数保存至第一存储器中。

在实际使用过程中,启动设备后dram的部分参数基本不变,例如,有些参数与温度、电压等相关,在温度、电压变化不大的情况下校准出的参数变化不大。本发明实施方式提供的存储器校准方法中需要获取第二存储器的参数时先从第一存储器中读取第一数据,第一数据包括第二存储器用于校准的预存参数,在第一数据可用的情况下可以直接使用第一数据来配置第二存储器的控制器,其中,在判断第一数据是否可用的过程中只需对第二存储器的部分校准参数进行计算来判断,无需对第二存储器全部校准参数进行计算,能够有效节省配置第二存储器的时间,从而加快系统启动。

请参阅图4,本发明一具体实施方式的存储器校准方法包括以下步骤:

步骤s110,启动设备。

步骤s111,判断第一数据中的魔法数与预设魔法数是否相等,并根据第一数据计算循环冗余校验码,判断循环冗余校验码与预存循环冗余校验码是否相等,若魔法数与预设魔法数相等,且循环冗余校验码与预存循环冗余校验码相等,则判定第一数据通过第一校验,则进入步骤s112;若若魔法数与预设魔法数不相等或/和循环冗余校验码与预存循环冗余校验码不相等,则进入步骤s115。

步骤s112,计算得到第二存储器的部分校准参数。

步骤s113,将部分校准参数与第一数据中对应的预存参数进行比较,若部分校准参数与对应的预存参数之间的误差在预设范围之内,则进入步骤s114;若部分校准参数与对应的预存参数之间的误差未处于预设范围之内,则进入步骤s116。

步骤s114,对第二存储器进行测试,若测试通过,则进入步骤s115;若测试未通过,则进入步骤s116。

步骤s115,使用第一数据配置第二存储器的控制器,进入步骤s118。

步骤s116,对第二存储器的全部校准参数进行计算,获得第二数据,进入步骤s117。

步骤s117,使用第二数据配置第二存储器的控制器并将第二数据作为预存参数保存至第一存储器中,进入步骤s118。

步骤s118,运行设备。

区别于现有技术,本发明实施方式提供的存储器校准方法中需要获取第二存储器的参数时先从第一存储器中读取第一数据,第一数据包括第二存储器用于校准的预存参数,第一数据可用的情况下直接使用第一数据来配置第二存储器的控制器,在判断第一数据是否可用的过程中只需对第二存储器的部分参数进行校准来判断,无需对第二存储器进行完整的校准,能够有效节省配置第二存储器的时间,从而加快系统启动。

请结合参阅图5,本发明还提供一种存储器校准系统100,该存储器校准系统100可应用汽车、电脑等设备。其中,存储器校准系统100包括第一存储器10、第二存储器20以及处理器30,第一存储器10内存储有第一数据;处理器30用于从第一存储器10读取第一数据,第一数据包括第二存储器20用于校准的预存参数;还用于对第一数据进行第一校验和第二校验,并判断所述第一数据是否有效;若第一数据有效,则使用第一数据配置第二存储器20的控制器;还用于对第二存储器20进行测试,若测试通过,则完成对第二存储器20的校准。

第一数据还包括魔法数和预存循环冗余校验码,循环冗余校验码是根据预存参数计算得到的。

处理器30还用于将第一数据中的魔法数与预设魔法数进行比较,并根据第一数据计算循环冗余校验码,将循环冗余校验码与预存循环冗余校验码进行比较,以判断魔法数与预设魔法数是否相等,循环冗余校验码与预存循环冗余校验码是否相等,若魔法数与预设魔法数相等,且循环冗余校验码与预存循环冗余校验码相等,则判定第一数据通过第一校验。

处理器30还用于计算得到第二存储器的部分校准参数,并将部分校准参数与第一数据中对应的预存参数进行比较,以判断部分校准参数与第一数据中对应的预存参数的误差是否处于预设范围内。

进一步的,若魔法数与预设魔法数不相等或/和循环冗余校验码与预存循环冗余校验码不相等,或者,部分校准参数与对应的预存参数的误差未处于预设范围内,或者,未通过测试,则处理器30还用于对第二存储器20的全部校准参数进行计算,获得第二数据,使用第二数据配置第二存储器的控制器并将第二数据作为预存参数保存至第一存储器中。其中,误差指的是部分校准参数与对应的预存参数之间的绝对值误差,预设范围为0~10%。

请参阅图6,本发明可读存储介质一实施方式包括存储器310,存储器310存储有指令,该指令被执行时实现本发明存储器的校准方法。

存储器310可以包括只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、闪存(flashmemory)、硬盘、光盘等。

以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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