CN112596963A - 一种快速内存训练的方法及系统 - Google Patents
一种快速内存训练的方法及系统 Download PDFInfo
- Publication number
- CN112596963A CN112596963A CN202011470809.2A CN202011470809A CN112596963A CN 112596963 A CN112596963 A CN 112596963A CN 202011470809 A CN202011470809 A CN 202011470809A CN 112596963 A CN112596963 A CN 112596963A
- Authority
- CN
- China
- Prior art keywords
- training
- value
- parameter
- memory
- interval
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012360 testing method Methods 0.000 claims abstract description 204
- 230000003247 decreasing effect Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005070 sampling Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种快速内存训练的方法及系统,所述方法包括:从存储设备中读取预设参数信息,所述预设参数信息至少包括内存训练的预设状态参数和预设参数区间;当预设状态参数为预设值时,将预设参数区间作为内存训练的测试参考,并根据预设参数区间对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合。本发明能够根据内存训练结果的惯性原理,即外部环境在一定程度上变化时,同一个设备上内存训练的测试通过参数窗口和上一次训练的测试通过参数窗口相近的原理,在上一次内存训练结果的基础上选择参数进行测试,找到测试通过参数窗口,减少遍历参数的个数,提高内存训练效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种快速内存训练的方法及系统。
背景技术
随着人工智能、高性能计算的发展,处理器、显卡等计算单元对内存的容量、带宽提出了更高的要求。由于内存自身的高工作频率(GHz级)、并行同步总线(并行数据线、命令地址线,与时钟、采样信号同步)、封装工艺差异或PCB走线差异,以及外部应用环境如温度、电压变化的影响,内存信号极容易被干扰导致数据收发错误。
内存训练是通过循环尝试调整内存控制器中相关时序参数值,如ADDR/CMD信号对CLK,DQ信号对DQS的延时参数,测试出可以保证各个信号在信号采样前有足够的建立时间,采样后有足够的保持时间,从而信号能被正确采样的延时参数。从这些可以工作的延时参数中选取最优值,配置到内存控制器中,保证内存设备工作在最稳定的状态。所以处理器或显卡在开机过程或生产测试过程中可以进行内存训练,找到最优参数,配置到内存控制器中,保证内存稳定工作。
由于内存训练包含大量循环迭代的参数配置和数据收发测试,所以内存训练需要较长时间,可能达到数分钟甚至几十分钟之久,严重影响开机体验或生产测试效率。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
现有技术对一个参数的训练是从该参数的参数区间最小值开始尝试,依次增大参数值,直到找到可以通过测试的参数值,然后继续查找,再找到不能通过测试的参数值,停止查找。从而得到一个测试通过参数窗口,再从该窗口中选择中间值作为该参数的训练结果。
可以测试通过参数窗口一般为整个参数区间内靠近中间的一段区间。假设参数区间为[0,19],共20个参数,其中[5,14]这10个参数可以测试通过,为测试通过窗口,用灰底方框表示,参数区间和测试通过参数窗口具体如下所示。
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
因此,按照该技术方案,需要测试的参数值从最小值0开始,依次遍历到参数5,找到第一个测试通过的参数值,作为测试通过参数窗口的最小值。然后继续遍历,遍历到参数15,找到测试通过参数窗口后的第一个不能通过的参数值,从而确定测试通过参数窗口为[5,14]。由于内存训练大部分时间都是在进行各个参数值的测试,而按照该技术方案,需要遍历参数区间内的大部分参数值才能找到测试通过参数窗口,内存训练效率比较低下。
发明内容
本发明提供的快速内存训练的方法及系统,能够根据内存训练结果的惯性原理,即外部环境在一定程度上变化时,同一个设备上内存训练的测试通过参数窗口和上一次训练的测试通过参数窗口相近的原理,在上一次内存训练结果的基础上选择参数进行测试,找到测试通过参数窗口,减少遍历参数的个数,提高内存训练效率。
第一方面,本发明提供一种快速内存训练的方法,包括:
从存储设备中读取预设参数信息,所述预设参数信息至少包括内存训练的预设状态参数和预设参数区间;
当预设状态参数为预设值时,将预设参数区间作为内存训练的测试参考,并根据预设参数区间对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合。
可选地,所述预设参数区间包括有下述至少之一:至少一次历史参数区间信息、至少两次历史参数区间的加权值信息、至少两次历史参数区间的平均值信息、预先设定的一参数区间信息;
和/或,所述预设状态参数包括下述至少之一:存储设备中是否存储有有效的预设参数信息、训练状态是否进行完整的内存训练、是否是首次进行内存训练、是否直接进入快速内存训练模式。
可选地,在所述从存储设备中读取预设参数信息之后,所述方法还包括:
当预设状态参数不为预设值时,则直接对内存控制器参数进行内存训练,获得符合训练要求的所述内存控制器参数的训练值集合,作为第一参数区间;
将所述第一参数区间存储到存储设备中,作为预设参数区间。
可选地,所述将预设参数区间作为内存训练的测试参考,并根据预设参数区间对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合包括:
将预设参数区间的区间最大值、和/或区间最小值作为内存训练的测试参考值,并根据区间最大值、和/或区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合。
可选地,所述根据区间最大值、和/或区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合包括:
先根据区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最小值;然后根据区间最大值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最大值;
或者,先根据区间最大值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最大值;然后根据区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最小值。
或者,仅根据区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最小值;
或者,仅根据区间最大值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最大值。
可选地,所述根据区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最小值包括:
获取所述区间最小值并作为第一测试值,配置到所述内存控制器中;
所述内存控制器收发数据,根据数据收发状态,将第一测试值按预设测试跨度进行递减或递增,确定出第二测试值;
将第二测试值配置到所述内存控制器中进行训练,直至确定出训练值集合中的最小值。
可选地,所述根据区间最大值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最大值包括:
获取所述区间最大值并作为第三测试值,配置到所述内存控制器中;
所述内存控制器收发数据,根据数据收发状态,将第三测试值按预预设测试跨度进行递增或递减,确定出第四测试值;
将第四测试值配置到所述内存控制器中进行训练,直至确定出训练值集合中的最大值。
可选地,在确定出所述训练值集合之后,所述方法还包括:
将所述训练值集合作为第二参数区间存储到存储设备中,作为预设参数区间。
第二方面,本发明提供一种内存训练的系统,包括:
存储设备,用于存储预设参数信息;
读取单元:用于从存储设备中读取预设参数信息;
判断单元:用于判断预设状态参数是否为预设值;
内存训练单元:用于当预设状态参数为预设值时,将预设参数区间作为内存训练的测试参考,并根据预设参数区间对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合;
其中,所述预设参数信息至少包括内存训练的预设状态参数和预设参数区间。
可选地,所述内存训练单元包括:
第一内存训练模块:用于当预设状态参数为预设值时,将预设参数区间作为内存训练的测试参考,并根据预设参数区间对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合;
第二内存训练模块:用于当预设状态参数不为预设值时,则直接对内存控制器参数进行内存训练,获得符合训练要求的所述内存控制器参数的训练值集合,作为第一参数区间。
可选地,所述第一内存训练模块包括:
获取子模块:用于获取所述区间最小值或最大值并作为测试值;
配置子模块:用于将测试值配置到内存控制器中;
数据收发子模块,用于收发数据;
判断子模块:用于判断数据的状态;
测试值计算子模块:用于根据数据收发状态,将测试值按预设测试跨度进行递减或递增,确定出下一个测试值。
本发明实施例提供的快速内存训练的方法及系统,根据内存训练结果的惯性原理,即外部环境在一定程度上变化时,同一个设备上内存训练的测试通过参数窗口(即内存训练对参数区间内的各个参数进行测试,能通过测试的参数组成一个集合,该集合一般为一个连续区间,该连续区间为测试通过参数窗口。)和历史训练的测试通过参数窗口相近的原理,尤其是与前一次训练的测试通过参数窗口相近;因此,本实施例主要是采用了在一预设参数区间(即测试通过参数窗口)的基础上选择参数进行测试,确定所述内存控制器对应的训练值集合,作为该内存控制器的测试通过参数窗口,不仅能够减少遍历测试参数的个数,大大提高了内存训练效率;还能够通过根据预设参数信息确定查找方向,在该方向上依次查找各个参数值,直到找到通过测试的最小和最大参数值,确定测试通过参数窗口。由于同一个设备内存训练结果的惯性,可以较少测试次数即可找到通过测试的最小和最大参数值,完成内存训练,大幅提升内存训练速度。
附图说明
图1为本发明一实施例快速内存训练的方法的流程图;
图2为本发明另一实施例快速内存训练的方法流程图;
图3为本发明一实施例快速内存训练的系统的结构示意图;
图4为本发明另一实施例快速内存训练的系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种快速内存训练的方法,如图1所示,所述方法包括:
S11、从存储设备中读取预设参数信息,所述预设参数信息至少包括内存训练的预设状态参数和预设参数区间;
S12、当预设状态参数为预设值时,将预设参数区间作为内存训练的测试参考,并根据预设参数区间对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合。
本发明实施例提供的快速内存训练的方法,根据内存训练结果的惯性原理,即外部环境在一定程度上变化时,同一个设备上内存训练的测试通过参数窗口(即内存训练对参数区间内的各个参数进行测试,能通过测试的参数组成一个集合,该集合一般为一个连续区间,该连续区间为测试通过参数窗口。)和历史训练的测试通过参数窗口相近的原理,尤其是与前一次训练的测试通过参数窗口相近;因此,本实施例主要是采用了在一预设参数区间(即测试通过参数窗口)的基础上选择参数进行测试,确定所述内存控制器对应的训练值集合,作为该内存控制器的测试通过参数窗口,不仅能够减少遍历测试参数的个数,大大提高了内存训练效率;还能够通过根据预设参数信息确定查找方向,在该方向上依次查找各个参数值,直到找到通过测试的最小和最大参数值,确定测试通过参数窗口。由于同一个设备内存训练结果的惯性,可以较少测试次数即可找到通过测试的最小和最大参数值,完成内存训练,大幅提升内存训练速度。
另外,所述预设参数信息可包括预设状态参数、和/或预设参数区间信息、和/或预设测试跨度。
进一步地,所述预设参数区间包括有下述至少之一:至少一次历史参数区间信息、至少两次历史参数区间的加权值信息、至少两次历史参数区间的平均值信息、预先设定的一参数区间信息;
和/或,所述预设状态参数包括下述至少之一:存储设备中是否存储有有效的预设参数信息、训练状态是否进行完整的内存训练、是否是首次进行内存训练、是否直接进入快速内存训练模式。
可选地,在所述从存储设备中读取预设参数信息之后,所述方法还包括:
当预设状态参数不为预设值时,则直接对内存控制器参数进行内存训练,获得符合训练要求的所述内存控制器参数的训练值集合,作为第一参数区间;
将所述第一参数区间存储到存储设备中,作为预设参数区间。
具体的,本实施例中所述当预设状态参数不为预设值时,则进行一次完整的内存训练,所述完整的内存训练是指遍历所有的测试参数,确定所有能够通过测试的参数集合作为本次内存训练的参数区间(即第一参数区间),然后将第一参数区间信息存储在存储设备中;例如提取第一参数区间中的最大值、最小值信息存储在存储设备中,或者将第一参数区间中的参数值都存储到存储设备中,或者提取第一参数区间中的区间中位数和区间跨度信息存储到存储设备中(即参数区间[5,9]其中位数为7,区间跨度为2)。另外,所述当预设状态参数不为预设值时即不满足某一预设条件,例如存储设备中未存储有有效的参数区间信息,或者需要直接进行完整的内存训练,或本次内存训练为首次内存训练等。本实施例该步骤不仅能够兼顾快速内存训练的特性,还能够保留完整的内存训练,保证内存训练的完整性;使得内存训练能够高效、快速的运行。
可选地,所述将预设参数区间作为内存训练的测试参考,并根据预设参数区间对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合包括:
将预设参数区间的区间最大值、和/或区间最小值作为内存训练的测试参考值,并根据区间最大值、和/或区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合。
具体的,本实施例中所述方法主要是通过预设参数区间为内存训练的测试值提供一些参考,减少需要训练的参数数量;例如根据内存训练结果的惯性原理,优先考虑预设参数区间的区间最大值或最小值作为内存训练的测试参数边界参考;然后在此基础上进行参数训练确认训练值集合;可以减少大量对预设参考区间中参数的重复测试的浪费,提高了内存训练的进度和准确度,大大提高了内存训练的效率。
可选地,所述根据区间最大值、和/或区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合包括:
先根据区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最小值;然后根据区间最大值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最大值;
或者,先根据区间最大值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最大值;然后根据区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最小值。
或者,仅根据区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最小值;
或者,仅根据区间最大值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最大值。
具体的,本实施例所述根据区间最大值、和/或区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合可以采用多种训练方式进行训练,例如先训练确定区间最小值,在训练确定区间最大值;或者先训练区间最大值,在训练区间最小值,或者根据需求只需训练区间的最大值或最小值;区间边界参数的确定不分先后,也不限于区间两端边界必须都训练的情况;只要能够达到提高内存训练的效率即可,或者根据具体内存训练的要求匹配出以上几种方式中效率最高的方式也可。
可选地,所述根据区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最小值包括:
获取所述区间最小值并作为第一测试值,配置到所述内存控制器中;
所述内存控制器收发数据,根据数据收发状态,将第一测试值按预设测试跨度进行递减或递增,确定出第二测试值;
将第二测试值配置到所述内存控制器中进行训练,直至确定出训练值集合中的最小值。
可选地,所述根据区间最大值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最大值包括:
获取所述区间最大值并作为第三测试值,配置到所述内存控制器中;
所述内存控制器收发数据,根据数据收发状态,将第三测试值按预设测试跨度进行递增或递减,确定出第四测试值;
将第四测试值配置到所述内存控制器中进行训练,直至确定出训练值集合中的最大值。
可选地,在确定出所述训练值集合之后,所述方法还包括:
将所述训练值集合作为第二参数区间存储到存储设备中,作为预设参数区间。
具体的,本实施例中所述将已完成训练的测试值按预设测试跨度进行递增或递减确定出下一个待训练的测试值中,例如DQS相对DQ的延时参数,在硬件可支持的参数范围内依次递增或者递减;以及按某一预设跨度(例如跨度为两个参数,三个参数);或者从上一次内存训练测试通过参数窗口的最小值和最大值上进行递增或递减的幅度根据实际设备情况决定。如果设备配置参数颗粒为整数,如每个整数表示延时PI/16的相位,则递增递减的幅度为1。如果设备配置参数颗粒为浮点数表示的模拟值,则递增递减的幅度根据内存训练时间和精度的折中考虑,选取一个合适的浮点数。
具体的,如图2所示,本实施例中所述方法可采用以下步骤实现快速内存训练:
首先,在存储设备中存储的预设参数信息包括有历史内存训练结果信息(即预设参数区间)以及是否是第一次内存训练的状态信息(即预设状态参数)存储到存储设备中,以便在此基础上进行快速内存训练。其中所述存储设备指掉电数据不丢失的存储设备,如flash或磁盘等存储设备。例如:是否是第一次内存训练状态位、上一次内存训练通过测试的最小值和最大值参数;具体如下所示:
IsFirst | MinVal | MaxVal |
其中,IsFrist是一个布尔量,true表示是第一次进行内存训练,后续的MinVal和MaxVal无效。false表示不是第一进行内存训练,后续的MinVal和MaxVal中已经存储了上一次的内存训练测试通过参数窗口的最小值和最大值。设备出厂时,IsFirst配置为true,MinVal和MaxVal不配置。
然后再按照以下步骤进行快速内存训练:
[S301]从存储设备中读取历史信息,包括是否第一次内存训练的状态IsFirst,以及上一次内存训练可通过测试的最小值参数MinVal和最大值参数MaxVal。
[S302]如果IsFirst为true,表示第一次进行内存训练,跳转到步骤S303,否则表示不是第一次内存训练,跳转到步骤S306。
[S303]第一次进行内存训练,存储设备中不存在有效内存训练结果,进行完整内存训练。
[S304]将完整内存训练结果中通过测试的最小值和最大值分别存储到存储设备中的MinVal和MaxVal处,以备下一次内存训练使用。
[S305]将存储设备中的IsFirst配置为false,表示已经不是第一次内存训练了,MinVal和MaxVal有效。
[S306]取历史信息中的MinVal作为测试值,配置到内存控制器中。
[S307]进行数据收发,判断使用该参数值是否能够正确收发数据,如果正确,则跳转到步骤S308,否则跳转到步骤S311。
[S308]之前的参数值都通过测试,递减参数值,配置到内存控制器中,以备下一个测试,直到找到不能通过测试的参数值。
[S309]进行数据收发,判断使用该参数值是否能够正确收发数据,如果正确,则跳转回步骤S308,否则跳转到步骤S310。
[S310]找到的第一个不能通过测试的参数值,前一个测试的参数值为能通过测试的最小值,将通过测试的最小值存储到存储设备中,覆盖MinVal。
[S311]之前的参数值都不能通过测试,递增参数值,配置到内存控制器中,以备下一个测试,直到找到能通过测试的参数值。
[S312]进行数据收发,判断使用该参数值是否能够正确收发数据,如果不正确,则跳转回步骤S311,否则跳转到步骤S313。
[S313]找到的第一个能通过测试的参数值,表示能通过测试的最小值,将其存储到存储设备中,覆盖MinVal。
[S314]取历史信息中的MaxVal作为测试值,配置到内存控制器中。
[S315]进行数据收发,判断使用该参数值是否能够正确收发数据,如果正确,则跳转到步骤S316,否则跳转到步骤S319。
[S316]之前的参数值都通过测试,递增参数值,配置到内存控制器中,以备下一个测试,直到找到不能通过测试的参数值。
[S317]进行数据收发,判断使用该参数值是否能够正确收发数据,如果正确,则跳转回步骤S316,否则跳转到步骤S318。
[S318]找到的第一个不能通过测试的参数值,前一个测试的参数值为能通过测试的最大值,将通过测试的最大值存储到存储设备中,覆盖MaxVal。
[S319]之前的参数值都不能通过测试,递减参数值,配置到内存控制器中,以备下一个测试,直到找到能通过测试的参数值。
[S320]进行数据收发,判断使用该参数值是否能够正确收发数据,如果不正确,则跳转回步骤S319,否则跳转到步骤S321。
[S321]找到的第一个能通过测试的参数值,表示能通过测试的最大值,将其存储到存储设备中,覆盖MaxVal。
与现有技术相比,针对一参数值范围为[0,19]的内存训练,测试可通过的参数范围为[5,14]的内存训练,使用现有技术需要遍历区间[0,15]中所有的参数;而采用本发明的技术方案,可以显著减少遍历测试参数的个数,大大提高了内存训练效率。具体针对不同情况举几个实施例进行说明:
实例一:可通过测试的参数值窗口不变,仍为[5,14]
按照本实施例所述方法,在上一次内存训练结果[5,14]的基础上查找,首先判断上一次结果的最小参数值5,能够通过测试,则向左继续查找,直到找到不能通过测试的参数值,这里找到参数值4不能通过测试。然后判断上一次结果的最大参数值14,能够通过测试,则向右继续查找,直到找到不能通过测试的参数值,这里找到参数值15不能通过测试,内存训练结束。按照本技术方案,只需要遍历参数(5,4,14,15)共4个参数值即可完成内存训练,找到可通过测试的参数值窗口为[5,14]。
实例二:可通过测试的参数值窗口左移为[4,12]
按照本实施例所述方法,在上一次内存训练结果[5,14]的基础上查找,首先判断上一次结果的最小参数值5,能够通过测试,则向左继续查找,直到找到不能通过测试的参数值,这里找到参数值3不能通过测试。然后判断上一次结果的最大参数值14,不能通过测试,则向左继续查找,直到找到能够通过测试的参数值,这里找到参数值12能够通过测试,内存训练结束。按照本技术方案,只需要遍历参数(5,4,3,14,13,12)共6个参数值即可完成内存训练,找到可通过测试的参数值窗口为[4,12],可通过测试的参数值窗口如下所示。
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
实例三:可通过测试的参数值窗口缩小为[7,11]
按照本实施例所述方法,在上一次内存训练结果[4,12]的基础上查找,首先判断上一次结果的最小参数值4,不能通过测试,则向右继续查找,直到找到能够通过测试的参数值,这里找到参数值7可以通过测试。然后判断上一次结果的最大参数值12,不能通过测试,则向左继续查找,直到找到能够通过测试的参数值,这里找到参数值11能够通过测试,内存训练结束。按照本技术方案,只需要遍历参数(4,5,6,7,12,11)共6个参数值即可完成内存训练,找到可通过测试的参数值窗口为[7,11],可通过测试的参数值窗口如下所示。
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
本发明实施例还提供一种内存训练的系统,如图3所示,所述系统包括:
存储设备,用于存储预设参数信息;
读取单元:用于从存储设备中读取预设参数信息;
判断单元:用于判断预设状态参数是否为预设值;
内存训练单元:用于当预设状态参数为预设值时,将预设参数区间作为内存训练的测试参考,并根据预设参数区间对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合;
其中,所述预设参数信息至少包括内存训练的预设状态参数和预设参数区间。
本发明实施例提供的内存训练的系统,根据内存训练结果的惯性原理,即外部环境在一定程度上变化时,同一个设备上内存训练的测试通过参数窗口(即内存训练对参数区间内的各个参数进行测试,能通过测试的参数组成一个集合,该集合一般为一个连续区间,该连续区间为测试通过参数窗口。)和历史训练的测试通过参数窗口相近的原理,尤其是与前一次训练的测试通过参数窗口相近;因此,本实施例主要是采用了在一预设参数区间(即测试通过参数窗口)的基础上选择参数进行测试,确定所述内存控制器对应的训练值集合,作为该内存控制器的测试通过参数窗口,不仅能够减少便利参数的个数,大大提高了内存训练效率。还能够通过根据预设参数信息确定查找方向,在该方向上依次查找各个参数值,直到找到通过测试的最小和最大参数值,确定测试通过参数窗口。由于同一个设备内存训练结果的惯性,可以较少测试次数即可找到通过测试的最小和最大参数值,完成内存训练,大幅提升内存训练速度。
另外,所述预设参数信息可包括预设状态参数、和/或预设参数区间信息、和/或预设测试跨度。
可选地,如图4所示,所述内存训练单元包括:
第一内存训练模块:用于当预设状态参数为预设值时,将预设参数区间作为内存训练的测试参考,并根据预设参数区间对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合;
第二内存训练模块:用于当预设状态参数不为预设值时,则直接对内存控制器参数进行内存训练,获得符合训练要求的所述内存控制器参数的训练值集合,作为第一参数区间。
可选地,所述第一内存训练模块包括:
获取子模块:用于获取所述区间最小值或最大值并作为测试值;
配置子模块:用于将测试值配置到内存控制器中;
数据收发子模块,用于收发数据;
判断子模块:用于判断数据的状态;
测试值计算子模块:用于根据数据收发状态,将测试值按预设测试跨度进行递减或递增,确定出下一个测试值。
本实施例的系统,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (11)
1.一种快速内存训练的方法,其特征在于,包括:
从存储设备中读取预设参数信息,所述预设参数信息至少包括内存训练的预设状态参数和预设参数区间;
当预设状态参数为预设值时,将预设参数区间作为内存训练的测试参考,并根据预设参数区间对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合。
2.根据权利要求1所述的方法,其特征在于,所述预设参数区间包括有下述至少之一:至少一次历史参数区间信息、至少两次历史参数区间的加权值信息、至少两次历史参数区间的平均值信息、预先设定的一参数区间信息;
和/或,所述预设状态参数包括下述至少之一:存储设备中是否存储有有效的预设参数信息、训练状态是否进行完整的内存训练、是否是首次进行内存训练、是否直接进入快速内存训练模式。
3.根据权利要求1或2所述的方法,其特征在于,在所述从存储设备中读取预设参数信息之后,所述方法还包括:
当预设状态参数不为预设值时,则直接对内存控制器参数进行内存训练,获得符合训练要求的所述内存控制器参数的训练值集合,作为第一参数区间;
将所述第一参数区间存储到存储设备中,作为预设参数区间。
4.根据权利要求1-3任一所述的方法,其特征在于,所述将预设参数区间作为内存训练的测试参考,并根据预设参数区间对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合包括:
将预设参数区间的区间最大值、和/或区间最小值作为内存训练的测试参考值,并根据区间最大值、和/或区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合。
5.根据权利要求4所述的方法,其特征在于,所述根据区间最大值、和/或区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合包括:
先根据区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最小值;然后根据区间最大值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最大值;
或者,先根据区间最大值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最大值;然后根据区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最小值。
或者,仅根据区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最小值;
或者,仅根据区间最大值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最大值。
6.根据权利要求5所述的方法,其特征在于,所述根据区间最小值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最小值包括:
获取所述区间最小值并作为第一测试值,配置到所述内存控制器中;
所述内存控制器收发数据,根据数据收发状态,将第一测试值按预设测试跨度进行递减或递增,确定出第二测试值;
将第二测试值配置到所述内存控制器中进行训练,直至确定出训练值集合中的最小值。
7.根据权利要求5所述的方法,其特征在于,所述根据区间最大值对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合中的最大值包括:
获取所述区间最大值并作为第三测试值,配置到所述内存控制器中;
所述内存控制器收发数据,根据数据收发状态,将第三测试值按预设测试跨度进行递增或递减,确定出第四测试值;
将第四测试值配置到所述内存控制器中进行训练,直至确定出训练值集合中的最大值。
8.根据权利要求4-7任一所述的方法,其特征在于,在确定出训练值集合之后,所述方法还包括:
将所述训练值集合作为第二参数区间存储到存储设备中,作为预设参数区间。
9.一种内存训练的系统,其特征在于,包括:
存储设备,用于存储预设参数信息;
读取单元:用于从存储设备中读取预设参数信息;
判断单元:用于判断预设状态参数是否为预设值;
内存训练单元:用于当预设状态参数为预设值时,将预设参数区间作为内存训练的测试参考,并根据预设参数区间对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合;
其中,所述预设参数信息至少包括内存训练的预设状态参数和预设参数区间。
10.根据权利要求9所述的系统,其特征在于,所述内存训练单元包括:
第一内存训练模块:用于当预设状态参数为预设值时,将预设参数区间作为内存训练的测试参考,并根据预设参数区间对内存控制器参数进行内存训练;确定所述内存控制器的训练值集合;
第二内存训练模块:用于当预设状态参数不为预设值时,则直接对内存控制器参数进行内存训练,获得符合训练要求的所述内存控制器参数的训练值集合,作为第一参数区间。
11.根据权利要求10所述的系统,其特征在于,所述第一内存训练模块包括:
获取子模块:用于获取所述区间最小值或最大值并作为测试值;
配置子模块:用于将测试值配置到内存控制器中;
数据收发子模块,用于收发数据;
判断子模块:用于判断数据的状态;
测试值计算子模块:用于根据数据收发状态,将测试值按预设测试跨度进行递减或递增,确定出下一个测试值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011470809.2A CN112596963B (zh) | 2020-12-14 | 2020-12-14 | 一种快速内存训练的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011470809.2A CN112596963B (zh) | 2020-12-14 | 2020-12-14 | 一种快速内存训练的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112596963A true CN112596963A (zh) | 2021-04-02 |
CN112596963B CN112596963B (zh) | 2024-05-03 |
Family
ID=75195197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011470809.2A Active CN112596963B (zh) | 2020-12-14 | 2020-12-14 | 一种快速内存训练的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112596963B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115061860A (zh) * | 2022-05-20 | 2022-09-16 | 飞腾信息技术有限公司 | 单路系统内存调试方法、装置及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317612A (zh) * | 2014-10-14 | 2015-01-28 | 中国航天科工集团第二研究院七〇六所 | 龙芯处理器内存控制器参数交互式调试的方法 |
CN107393578A (zh) * | 2016-05-16 | 2017-11-24 | 中国长城科技集团股份有限公司 | 一种内存训练的方法和装置 |
CN110007970A (zh) * | 2019-03-04 | 2019-07-12 | 湖北三江航天万峰科技发展有限公司 | 一种COMe板的内核启动时长优化方法 |
CN110751275A (zh) * | 2019-08-03 | 2020-02-04 | 北京达佳互联信息技术有限公司 | 图训练系统、数据访问方法及装置、电子设备、存储介质 |
CN111221582A (zh) * | 2020-01-02 | 2020-06-02 | 深圳中电长城信息安全系统有限公司 | 一种内存训练的方法及系统 |
CN111459557A (zh) * | 2020-03-12 | 2020-07-28 | 烽火通信科技股份有限公司 | 一种缩短服务器开机时间的方法及系统 |
-
2020
- 2020-12-14 CN CN202011470809.2A patent/CN112596963B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317612A (zh) * | 2014-10-14 | 2015-01-28 | 中国航天科工集团第二研究院七〇六所 | 龙芯处理器内存控制器参数交互式调试的方法 |
CN107393578A (zh) * | 2016-05-16 | 2017-11-24 | 中国长城科技集团股份有限公司 | 一种内存训练的方法和装置 |
CN110007970A (zh) * | 2019-03-04 | 2019-07-12 | 湖北三江航天万峰科技发展有限公司 | 一种COMe板的内核启动时长优化方法 |
CN110751275A (zh) * | 2019-08-03 | 2020-02-04 | 北京达佳互联信息技术有限公司 | 图训练系统、数据访问方法及装置、电子设备、存储介质 |
CN111221582A (zh) * | 2020-01-02 | 2020-06-02 | 深圳中电长城信息安全系统有限公司 | 一种内存训练的方法及系统 |
CN111459557A (zh) * | 2020-03-12 | 2020-07-28 | 烽火通信科技股份有限公司 | 一种缩短服务器开机时间的方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115061860A (zh) * | 2022-05-20 | 2022-09-16 | 飞腾信息技术有限公司 | 单路系统内存调试方法、装置及介质 |
CN115061860B (zh) * | 2022-05-20 | 2023-08-29 | 飞腾信息技术有限公司 | 单路系统内存调试方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112596963B (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10310129B2 (en) | Sensor devices and methods for calculating an orientation while accounting for magnetic interference | |
JP2021504680A (ja) | コンピュータ実装方法、コンピュータ・プログラム製品および装置 | |
CN110296699B (zh) | 一种基于地磁场的室内定位方法及装置 | |
CN111912409A (zh) | 可编程智能反射面辅助的多移动设备定位方法及装置 | |
CN105022686A (zh) | 安卓平台上进程的cpu占用率确定方法和装置 | |
CN112596963A (zh) | 一种快速内存训练的方法及系统 | |
US20210240167A1 (en) | Method and apparatus for detecting abnormality of manufacturing facility | |
CN111177295A (zh) | 建图重影消除方法、装置、计算机可读存储介质及机器人 | |
CN110969200A (zh) | 基于一致性负样本的图像目标检测模型训练方法及装置 | |
CN112526470A (zh) | 标定雷达参数的方法和装置、电子设备、存储介质 | |
CN110336535A (zh) | 一种晶体振荡器校准方法、装置、终端设备及存储介质 | |
CN112462326A (zh) | 一种位置信息确定方法、装置、电子设备和存储介质 | |
CN115659268A (zh) | 基于adcp测流数据的场景识别方法及其应用 | |
CN112612608B (zh) | 一种内存训练的方法及系统 | |
CN111597096B (zh) | 一种基准测试方法、系统及终端设备 | |
CN112630624A (zh) | 一种通信主板测试方法及装置 | |
CN109217946B (zh) | 提高wifi性能的方法、装置、存储介质及wifi设备 | |
CN112235002A (zh) | 谐波消除方法及装置、存储介质、终端 | |
CN115687881B (zh) | 用于测距传感器精度优化的误差补偿测算方法及其应用 | |
CN112764102A (zh) | 地震资料采集方法及装置 | |
CN112464054A (zh) | 测井数据处理方法及装置 | |
CN117270075A (zh) | 一种随钻方位电磁波仪器方位信号本底值校正方法及装置 | |
CN116147689B (zh) | 一种外场跟踪器脱靶量延时测试方法及装置 | |
CN116582596B (zh) | 数据处理方法、装置和基于物联网的plc数据传输系统 | |
CN113822445B (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 | ||
GR01 | Patent grant |