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

参数控制方法、内存控制器及中央处理器与流程

2021-03-02 18:15:00 来源:中国专利 TAG:控制 中央处理器 器及 内存 参数


[0001]
本申请涉及计算机领域,具体而言,涉及一种参数控制方法、内存控制器及中央处理器。


背景技术:

[0002]
刷新率指的是动态随机存取存储器(dynamic random access memory,简称dram)中存储的数据被读出并重新写入的频率。将dram中存储的数据周期性的读出并重新写入,可以保持dram中用于存储数据的电荷量的漏电量较小,从而避免电荷量漏电量较大导致无法分辨出0和1的问题,保证了dram中存储的数据的准确性。通常来说,dram运行环境的温度越高,用于存储数据的电荷量的漏电速度越快,因此,dram的温度越高,对应的刷新率越高。
[0003]
对于具有多个等级(rank)的存储设备,需要获取存储设备的dram的温度,并根据dram的温度调节dram的刷新率。
[0004]
现有技术中,可以由内存控制器直接获取存储设备的dram的温度状态。然而,在获取温度状态时,内存控制器通常将多个rank作为整体来获取温度状态,并以多个rank的所有dram的最大温度值作为多个rank的整体温度,并依据该整体温度来调节多个rank下的全部dram的刷新率。多个rank下的全部dram均按照最大温度值对应的高刷新率进行刷新,造成了带宽的浪费。


技术实现要素:

[0005]
本申请实施例的目的在于提供一种参数控制方法、内存控制器及中央处理器,用以改善现有技术造成了带宽浪费的问题。
[0006]
第一方面,本申请实施例提供了一种参数控制方法,应用于内存控制器,用于对存储设备包括的多个rank中的每个rank分别进行参数控制,所述每个rank均包括多个动态随机存取存储器dram,所述方法包括:接收每个所述rank中的多个dram各自的模式寄存器发送的温度区间信息;对于每个所述rank,从其包含的所述多个dram对应的温度区间信息中,选择温度区间最高的温度区间信息,并将所述温度区间最高的温度区间信息作为该rank的温度区间信息;根据每个所述rank的温度区间信息,确定每个所述rank所对应的刷新率;对于每个所述rank,根据其对应的刷新率,生成并发送刷新命令,以使每个所述rank在接收到所述刷新命令后对自身包括的多个dram进行刷新。
[0007]
在上述的实施方式中,可以接收存储设备中的每个rank所包含的多个dram发送的温度区间信息。对于每个rank,对归属于同一rank的多个dram对应的温度区间信息进行相互比较,选出其中的最高温度值所对应的温度区间信息,并将该最高温度值所对应的温度区间信息作为该rank的温度区间信息。通过上述方式,可以得到每个rank所对应的温度区间信息,然后确定出各个rank对应的刷新率,从而对各个rank的dram按照rank各自对应的刷新率进行刷新,从而实现了对多个rank的区分管理,避免了对多个rank下的全部dram均按照最大温度值对应的高刷新率进行刷新,造成带宽浪费的问题。
[0008]
在一个可能的设计中,在所述接收每个所述rank中的多个dram各自的模式寄存器发送的温度区间信息之前,所述方法还包括:向所述存储设备的每个所述rank发送与该rank对应的模式寄存器读命令;所述接收每个所述rank中的多个dram各自的模式寄存器发送的温度区间信息,包括:接收每个所述rank中的多个dram各自的模式寄存器返回的读应答信息,其中,所述读应答信息包括dram所在的温度区间信息。
[0009]
在上述的实施方式中,温度区间信息可以被包括在存储设备返回的读应答信息中,读应答信息可以是存储设备响应于内存控制器发送的模式寄存器读命令而返回的。
[0010]
在一个可能的设计中,所述对于每个所述rank,从其包含的所述多个dram对应的温度区间信息中,选择温度区间最高的温度区间信息,包括:若每个所述rank中的多个dram各自的模式寄存器返回的读应答信息均通过校验,在从属于同一rank的多个dram对应的温度区间信息中,选择温度区间最高的温度区间信息。
[0011]
在上述的实施方式中,在进行温度区间信息的选择之前,还可以判断每个rank的多个dram各自的模式寄存器返回的读应答信息是否通过校验,若通过校验,则说明数据的传输过程未出现异常。对读应答信息进行校验,可以提高该参数控制方法的安全性和稳定性。
[0012]
在一个可能的设计中,在所述接收每个所述rank中的多个dram各自的模式寄存器返回的读应答信息之后,所述方法还包括:若每个所述rank中的多个dram各自的模式寄存器返回的读应答信息中存在未通过校验的读应答信息,记录校验失败次数,并执行步骤:向所述存储设备的每个所述rank发送与该rank对应的模式寄存器读命令;若所述校验失败次数超过预设次数,向中央处理器传输致命中断指令。
[0013]
在上述的实施方式中,若每个rank的多个dram各自的模式寄存器返回的读应答信息中,存在未通过校验的读应答信息,则表示数据的传输过程存在异常,因此,可以重新进行整个数据传输过程,即重新向每个rank发送模式寄存器读命令,并记录校验失败次数,若连续循环预设次数,且每次均存在读应答信息未通过校验,则内存控制器可以向中央处理器传输致命中断指令,反映内存控制器自身存在故障,以便工作人员进行处理。
[0014]
在一个可能的设计中,所述向所述存储设备的每个所述rank发送与该rank对应的模式寄存器读命令,包括:依次向每个rank发送与该rank对应的模式寄存器读命令,以使每个rank依次返回各自的读应答信息,其中,每个rank的多个dram各自的模式寄存器均会返回读应答信息,同一rank接收到模式寄存器读命令的次序与发送读应答信息的次序相同。
[0015]
在上述的实施方式中,可以按照一定的顺序依次向预设数量的rank发送与该rank对应的模式寄存器读命令;存储设备内的多个模式寄存器返回的读应答信息也按照上述的顺序依次向内存控制器返回。
[0016]
在一个可能的设计中,在所述对于每个所述rank,从其包含的所述多个dram对应的温度区间信息中,选择温度区间最高的温度区间信息,并将所述温度区间最高的温度区间信息作为该rank的温度区间信息之后,所述方法还包括:根据每个所述rank的温度区间信息,调节所述内存控制器内部的读写命令的发送频率。
[0017]
在上述的实施方式中,内存控制器除了可以依据每个rank各自对应的温度区间信息,分别调节各rank中的多个dram的刷新率,也可以对内存控制器内部发送向每个rank的读写命令的发送频率进行分别调节,通过读写命令的发送频率的调节,可以分别影响各自
rank所处的温度区间,实现对每个rank所处的温度区间的精细化调节。
[0018]
在一个可能的设计中,所述读应答信息还包括所属的dram的温度变化状态位,所述方法还包括:若所述读应答信息中的温度变化状态位为表征温度发生变化的状态位,发送中断信息至中央处理器,以使所述中央处理器从所述内存控制器读取每个所述rank的温度区间信息,并根据所述温度区间信息调整中央处理器针对各个rank的读写频率。
[0019]
在上述的实施方式中,内存控制器还可以从读应答信息中获取温度变化状态位,并判断温度变化状态位是否发生变化。在温度变化状态位表征温度发生了变化,则内存控制器可以发送中断信息到中央处理器,以使中央处理器从内存控制器读取存储单元的每个rank的温度区间信息,从而由中央处理器调节自身针对各个rank的读写频率,中央处理器可以从自身对各个rank的读写频率进行调节,有利于进一步实现对每个rank所处的温度区间的精细化调节。
[0020]
第二方面,本申请实施例提供了一种参数控制方法,所述方法包括:接收内存控制器发送的中断信息;从所述内存控制器读取每个rank的温度区间信息,其中,每个所述rank为存储设备中的rank;根据所述温度区间信息调整中央处理器针对各个rank的读写频率。
[0021]
在上述的实施方式中,中央处理器在接收到中断信息时,可以从内存控制器读取存储单元的每个rank的温度区间信息,从而由中央处理器调节自身针对各个rank的读写频率。中央处理器可以从自身对各个rank的读写频率进行调节,有利于进一步实现对每个rank所处的温度区间的精细化调节。
[0022]
在一个可能的设计中,所述从所述内存控制器读取每个rank的温度区间信息,包括:对于每个所述rank,从所述内存控制器读取rank中的多个dram对应的温度区间信息,选择温度区间最高的温度区间信息;将所述温度区间最高的温度区间信息作为该rank的温度区间信息。
[0023]
在上述的实施方式中,中央处理器可以从内存控制器读取每个rank的多个dram分别对应的温度区间信息,并由中央处理器选择出温度区间最高的温度区间信息。由中央处理器进行多个温度区间的筛选,可以提高选择的准确性,避免由于内存控制器故障导致筛选出的温度区间信息出错,而牵连到中央处理器获取各rank对应的温度区间信息的准确性。
[0024]
第三方面,本申请提供一种内存控制器,与存储器相配合,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述内存控制器读取并运行时,执行第一方面或第一方面的任一可选的实现方式所述的方法。
[0025]
第四方面,本申请提供一种中央处理器,与存储器相配合,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述中央处理器读取并运行时,执行第一方面或第一方面的任一可选的实现方式所述的方法。
[0026]
为使本申请实施例所要实现的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
[0027]
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看
作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0028]
图1示出了本申请实施例提供的参数控制方法所处的应用场景图;
[0029]
图2示出了本申请实施例提供的参数控制方法的流程示意图;
[0030]
图3示出了本申请实施例提供的参数控制方法的一种具体实施方式的流程示意图;
[0031]
图4示出了本申请实施例提供的参数控制方法的另一种具体实施方式的流程示意图;
[0032]
图5示出了图4中步骤s220的具体步骤的流程示意图。
具体实施方式
[0033]
在对照实施例中,可以由内存控制器直接获取存储设备的dram的温度状态。然而,在获取温度状态时,内存控制器通常将存储设备的多个rank作为整体来获取温度状态,其中,rank指的是连接到同一个片选(chip select,简称cs)的所有dram。具体地,内存控制器可以获取存储设备的每个rank中的多个dram的温度值,并将所有dram的最大温度值作为存储设备的多个rank的整体温度,并依据该整体温度来调节全部rank下的全部dram的刷新率。
[0034]
多个rank下的全部dram均按照最大温度值对应的高刷新率进行刷新,使得部分温度值较低、本不需要在高刷新率下刷新的rank的dram也处于高刷新率下,造成了带宽的浪费。
[0035]
本申请实施例提供的参数控制方法接收存储设备中的每个rank所包含的多个dram发送的温度区间信息。对于每个rank,对归属于同一rank的多个dram对应的温度区间信息进行相互比较,选出其中的最高温度值所对应的温度区间信息,并将该最高温度值所对应的温度区间信息作为该rank的温度区间信息。通过上述方式,可以得到每个rank所对应的温度区间信息,然后确定出各个rank对应的刷新率,从而对各个rank的dram按照rank各自对应的刷新率进行刷新,从而实现了对多个rank的精细化管理,避免了对多个rank下的全部dram均按照最大温度值对应的高刷新率进行刷新,造成带宽浪费的问题。
[0036]
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
[0037]
请参见图1,图1示出了本申请实施例提供的参数控制方法所处的应用场景图,该应用场景图中包括内存控制器100、存储设备200以及中央处理器300(central processing unit,简称cpu)。内存控制器100分别与存储设备200以及cpu 300连接。
[0038]
内存控制器100包括实时温度控制刷新频率tcr控制逻辑电路110、刷新控制逻辑电路120、仲裁逻辑电路130、命令发送模块140、ca tx io 150、中断请求逻辑电路160、dq tx/rx io 170、数据接收模块180、mrr数据完整性校验模块190以及mrr数据处理模块1010。
[0039]
tcr控制逻辑电路110用于周期性地产生模式寄存器4(mode register 4,简称mr4)命令读取请求。其中,mr4命令读取请求的数量与存储设备200中的rank的数量相同,且多个mr4命令读取请求与多个rank一一对应。tcr控制逻辑电路110会依次产生与各个rank对应的mr4命令读取请求,并依次将mr4命令读取请求经仲裁逻辑电路130、命令发送模块140以及ca tx io 150发送到存储设备200的各个rank,以便存储设备200中的各个rank进
行处理。存储设备200中各个rank的具体处理过程将在下文中进行详细描述。
[0040]
tcr控制逻辑电路110还用于接收mrr数据处理模块1010发送的存储设备200的各个rank的温度区间信息,并根据每个rank的温度区间信息,生成每个rank对应的刷新率,并将刷新率发送给刷新控制逻辑电路120。
[0041]
tcr控制逻辑电路110还用于在接收到mrr数据处理模块1010发送的mrr数据格式校验错误指令时,重新进行mr4命令读取请求的发送。
[0042]
tcr控制逻辑电路110还用于在接收到mrr数据处理模块1010发送的温度超限提示信息时,阻止温度超限的rank所对应的读写命令请求的发送,直到温度超限的rank的温度区间回落到安全温度区域。
[0043]
刷新控制逻辑电路120用于根据刷新率,产生与刷新率对应的刷新命令,该刷新命令会依次经仲裁逻辑电路130、命令发送模块140以及ca tx io 150发送到存储设备200的各个rank,以便存储设备200的各个rank按照自身对应的刷新命令的刷新率,对自身包括的多个dram进行刷新。
[0044]
可选地,刷新控制逻辑电路120可以按照刷新率在单位时间内生成对应数量的刷新命令,并将刷新命令发送给存储设备200的对应的rank,存储设备200的对应的rank每接收到一次刷新命令后便会进行一次刷新。
[0045]
仲裁逻辑电路130用于对接收到的数据进行仲裁,并且在仲裁通过之后,发送给命令发送模块140。仲裁逻辑电路130接收到的数据包括:tcr控制逻辑电路110发送的mr4命令读取请求、刷新控制逻辑电路120发送的刷新命令以及其他命令仲裁请求。
[0046]
命令发送模块140用于将仲裁逻辑电路130发送的数据转换为ddr5协议命令格式,并将经过格式转换后的数据发送给ca tx io 150,由ca tx io 150发送给存储设备200。
[0047]
ca tx io 150可以按照ddr5的电气规格输出地址命令控制信号,该地址命令控制信号经图1示出的地址命令线发送给存储设备200。
[0048]
中断请求逻辑电路160用于在存储设备200的多个rank中的某一rank的温度区间发生变化时,产生中断信息,并将该中断信息发送给cpu 300,cpu 300的具体处理过程将在下文中进行详细描述。温度区间是否发生变化可以由mrr数据处理模块1010进行判断,mrr数据处理模块1010的具体判断过程同样会在下文中进行详细描述。
[0049]
dq tx/rx io 170用于依次接收存储设备200的多个rank中的每个rank返回的读应答信息。每个rank均会返回多个读应答信息,每个rank返回的多个读应答信息是由每个rank下的多个dram各自产生的,读应答信息与dram一一对应。具体地,读应答信息是由每个dram各自的mr4产生的。
[0050]
dq tx/rx io 170除了接收多个rank中的每个rank返回的读应答信息,还用于接收cpu读信息,dq tx/rx io 170将接收到的读应答信息以及cpu读信息均发送给数据接收模块180。
[0051]
数据接收模块180用于接收cpu读信息以及读应答信息,数据接收模块180用于根据命令发送模块140发送的数据读取标志,区分自身接收到的信息是cpu读信息还是读应答信息。数据接收模块180具备数据循环冗余校验(cyclic redundancy check,简称crc)校验、解扰码、错误检查和纠正(error correcting code,简称ecc)校验电路、模式寄存器读取(mode megister read,简称mmr)数据直通功能。
[0052]
对于cpu读信息,数据接收模块180输出解扰码之后的数据,并输出cpu读信息的crc校验结果以及ecc校验结果;对于读应答信息,数据接收模块180依据ddr5规格书,不对读应答信息进行校验,直接将读应答信息的原始数据发送给mrr数据完整性校验模块190。
[0053]
mrr数据完整性校验模块190用于对读应答信息进行完整性校验,得到校验结果,并将校验结果发送给mrr数据处理模块1010。
[0054]
mrr数据处理模块1010用于根据校验结果确定读应答信息是否通过完整性校验。
[0055]
若读应答信息通过完整性校验,则mrr数据处理模块1010用于判断读应答信息对应的dram所处的温度区间是否发生变化。
[0056]
若发生变化,mrr数据处理模块1010用于将表征温度区间发生变化的指令发送给中断请求逻辑电路160,以便中断请求逻辑电路160产生中断信息,并将该中断信息发送给cpu 300。mrr数据处理模块1010还用于在dram所处的温度区间发生变化时,更新该dram所在的rank的温度区间信息,并将温度区间信息发送给tcr控制逻辑电路110。若读应答信息对应的dram所处的温度区间未发生变化,则mrr数据处理模块1010可以对该dram暂不做处理。
[0057]
在一种具体实施方式中,mrr数据处理模块1010判断读应答信息对应的dram所处的温度区间是否发生变化,可以通过如下方式进行:
[0058]
mrr数据处理模块1010可以获取读应答信息中包括的温度变化状态位,并根据温度变化状态位的数值判断dram所处的温度区间是否发生变化。例如,读应答信息可以为一个8比特长度的数据,其op[7]为温度变化状态位,op[7]为1,表示该读应答信息对应的dram所处的温度区间发生变化;op[7]为0,表示该读应答信息对应的dram所处的温度区间未发生变化。
[0059]
在另一种具体实施方式中,mrr数据处理模块1010判断读应答信息对应的dram所处的温度区间是否发生变化,还可以通过如下方式进行:
[0060]
mrr数据处理模块1010可以直接获取当前的读应答信息中包括的温度区间信息,并将当前的温度区间信息与上一次获取的读应答信息中的温度区间信息进行比较,判断两者是否相同。若两者不同,则表示该读应答信息对应的dram所处的温度区间发生变化;若两者相同,则表示该读应答信息对应的dram所处的温度区间未发生变化。例如,可以利用dq触发器将温度区间信息延迟一个时钟周期,并将延迟一个时钟周期的温度区间信息与当前的读应答信息中的温度区间信息一同发送给同或门,从而判断两者是否相同。mrr数据处理模块1010判断温度区间是否发生变化的具体方式不应该理解为是对本申请的限制。
[0061]
若读应答信息未通过完整性校验,则mrr数据处理模块1010用于产生mrr数据格式校验错误状态信号,并将mrr数据格式校验错误状态信号发送给tcr控制逻辑电路110,以便tcr控制逻辑电路110重新进行mr4命令读取请求的发送;mrr数据处理模块1010还用于执行自身的次数计数器,对校验错误的次数加1。若tcr控制逻辑电路110重新发送的mr4命令读取请求所对应的读应答指令全部通过mrr数据完整性校验模块190的校验,则mrr数据处理模块1010将校验错误的次数清零;若tcr控制逻辑电路110重新发送的mr4命令读取请求所对应的读应答指令中存在读应答指令连续多次未通过mrr数据完整性校验模块190的校验,导致校验错误的次数超过预设阈值,则mrr数据处理模块1010可以向cpu 300上报致命中断信息。其中,上述的预设阈值可以为3次,也可以为其他数值,预设阈值的具体数值不应该理
解为是对本申请的限制。
[0062]
存储设备200为包括有多个rank的存储设备200,存储设备200可以为双列直插式存储模块(dual-inline-memory-modules,简称dimm),也可以为封装有多个rank的芯片,存储设备200的具体类型不应该理解为是对本申请的限制。
[0063]
请参见图1,图1示出的存储设备200中,包括有i 1个rank:rank0、rank1、rank2

rank i。每个rank中均包括有多个dram,例如,rank0中包括有m 1个dram:dram 00、dram 01、dram 02

dram 0m,rank1中也可以包括有m 1个dram:dram 10、dram 11、dram 12

dram 1m。rank i中也可以包括有m 1个dram:dram i0、dram i1、dram i2

dram im。不同rank中的dram的数量可以相同,也可以不同,各rank中的dram的数量不应该理解为是对本申请的限制。
[0064]
上述的每个dram中,均包括有模式寄存器4(mode register 4,简称mr4),mr4用于响应于内存控制器100发送的mr4命令读取请求,返回读应答信息。读应答信息为一个包含有8比特长度的信息,该信息的低三位op[2:0]用于表征该mr4所在的dram所处的温度区间,该信息的最高位op[7]用于表征该mr4所在的dram所处的温度区间是否发生变化,其中,具体指当前温度所在的温度区间与上一次mr4命令读取请求请求的温度所在的温度区间是否发生变化,op[7]为1,表示该读应答信息对应的dram所处的温度区间发生变化;op[7]为0,表示该读应答信息对应的dram所处的温度区间未发生变化。
[0065]
mr4具体用于接收温度传感器检测到的dram的当前温度,并利用op[2:0]表示dram的当前温度所处的温度区间。
[0066]
可选地,温度区间为温度范围互不重叠的多个温度区间,例如,温度区间可以为五个温度区间,五个温度区间分别为:<80℃,[80℃,85℃),[85℃,90℃),[90℃,95℃),≥95℃。不同的温度区间对应的刷新率不同,对于温度小于85℃的dram,需要1x刷新率;对于温度大于或等于85℃的dram,需要2x刷新率。当dram的温度超过95℃时,为避免dram中的数据丢失,应暂时停止数据传输,直到dram的温度下降到安全的工作温度范围。可选地,可以在dram的温度处于[90℃,95℃)区间时就适当减少数据传输,尽可能避免温度进一步上升到≥95℃的温度区间。
[0067]
op[2:0]的编码数据与温度区间的对应关系如下:
[0068]
001对应温度区间:<80℃;
[0069]
010对应温度区间:[80℃,85℃);
[0070]
011对应温度区间:[85℃,90℃);
[0071]
100对应温度区间:[90℃,95℃);
[0072]
101对应温度区间:≥95℃。
[0073]
其中,op[2:0]的000、110、111三组数据未编码。应当理解,温度区间可以为五个,也可以为更多或更少的温度区间,温度区间的具体个数不应该理解为是对本申请的限制。若温度区间的数量少于或等于8个,则可以用op[2:0]的8种数据组合分别进行表示,若温度区间的数量超过8个,则可以用读应答信息的四位比特位进行表示。
[0074]
存储设备200可以接收内存控制器100依次发送的mr4命令读取请求,并根据cs选中mr4命令读取请求对应的rank,并向同一rank下的全部dram传输该mr4命令读取请求。
[0075]
存储设备200在返回与mr4命令读取请求对应的多个读应答信息时,也会按照接收
mr4命令读取请求的顺序,进行读应答信息的发送。存储设备200发送读应答信息的顺序与存储设备200接收mr4命令读取请求的顺序可以保持一致。
[0076]
cpu 300用于在收到内存控制器100中的中断请求逻辑电路160发送的中断信息后,读取内存控制器100中所采集并存储的每个rank的温度区间信息。cpu 300可以根据各个rank的温度区间信息以及预先存储在自身的温度流量调节策略,对各个rank的流量进行控制,避免rank的温度范围超过允许的工作区间,例如≥95℃。
[0077]
可选地,在一种具体实施方式中,cpu 300可以从mrr数据处理模块1010获取多个rank中每个rank所包括的多个dram的温度区间信息,然后对同一rank,选择出温度最高的dram的温度区间信息,并将该dram的温度区间信息作为该rank的温度区间信息。
[0078]
可选地,在另一种具体实施方式中,cpu 300可以从mrr数据处理模块1010获取经mrr数据处理模块1010处理出的每个rank的温度区间信息。cpu 300获取多个rank中的每个rank的温度区间信息的具体过程不应该理解为是对本申请的限制。
[0079]
可选地,请参见图2,图2示出了本申请实施例提供的参数控制方法,该方法可以由上述的内存控制器100执行,具体包括如下步骤s110至步骤s140:
[0080]
步骤s110,接收每个所述rank中的多个dram各自的模式寄存器发送的温度区间信息。
[0081]
模式寄存器即为上文中的mr4,每个dram均有各自对应的mr4,因此,同一rank中有多少个dram,便会发送多少个温度区间信息。例如,请参见图1,rank0中有m个dram,则m个dram中的每个dram的mr4均会返回一个温度区间信息。因此,rank0会返回m个温度区间信息。rank1、rank2

ranki均通过上述的方式返回温度区间信息,在此便不做赘述。
[0082]
步骤s120,对于每个所述rank,从其包含的所述多个dram对应的温度区间信息中,选择温度区间最高的温度区间信息,并将所述温度区间最高的温度区间信息作为该rank的温度区间信息。
[0083]
接上文的举例继续进行说明,内存控制器100会从rank0返回的五个温度区间信息中选择出最高温度值的温度区间信息,并将该温度区间信息作为该rank的温度区间信息。
[0084]
步骤s130,根据每个所述rank的温度区间信息,确定每个所述rank所对应的刷新率。
[0085]
温度区间信息与刷新率的对应关系预先存储在内存控制器100中,内存控制器100在获得每个rank的温度区间信息之后,根据上述的对应关系,确定每个rank对应的刷新率。
[0086]
步骤s140,对于每个所述rank,根据其对应的刷新率,生成并发送刷新命令,以使每个所述rank在接收到所述刷新命令后对自身包括的多个dram进行刷新。
[0087]
在上述实施例提供的参数控制方法中,可以接收存储设备200中的每个rank所包含的多个dram发送的温度区间信息。对于每个rank,对归属于同一rank的多个dram对应的温度区间信息进行相互比较,选出其中的最高温度值所对应的温度区间信息,并将该最高温度值所对应的温度区间信息作为该rank的温度区间信息。通过上述方式,可以得到每个rank所对应的温度区间信息,然后确定出各个rank对应的刷新率,从而对各个rank的dram按照rank各自对应的刷新率进行刷新,从而实现了对多个rank的区分管理,避免了对多个rank下的全部dram均按照最大温度值对应的高刷新率进行刷新,造成带宽浪费的问题。
[0088]
可选地,请参见图3,图3示出了本申请实施例提供的参数控制方法的一种具体实
施方式,具体包括如下步骤s101至步骤s140:
[0089]
步骤s101,向所述存储设备200的每个所述rank发送与该rank对应的模式寄存器读命令。
[0090]
步骤s111,接收每个所述rank中的多个dram各自的模式寄存器返回的读应答信息。
[0091]
温度区间信息可以被包括在存储设备200返回的读应答信息中,读应答信息可以是存储设备200响应于内存控制器100发送的模式寄存器读命令而返回的。温度区间信息可以在内存控制器100向存储设备200请求时再返回,与存储设备200周期性进行温度区间信息的返回相比,节省了功耗。
[0092]
可选地,在一种具体实施方式中,步骤s101具体可以包括:依次向预设数量的rank中的每个rank发送与该rank对应的模式寄存器读命令。
[0093]
对应的,步骤s111具体可以包括:依次接收预设数量的rank中的每个rank的多个dram各自的模式寄存器所各自返回的读应答信息,其中,同一rank接收到模式寄存器读命令的次序与发送读应答信息的次序相同
[0094]
可以按照一定的顺序依次向预设数量的rank发送与该rank对应的模式寄存器读命令;存储设备200内的多个模式寄存器返回的读应答信息也按照上述的顺序依次向内存控制器100返回。
[0095]
步骤s120,对于每个所述rank,从其包含的所述多个dram对应的温度区间信息中,选择温度区间最高的温度区间信息,并将所述温度区间最高的温度区间信息作为该rank的温度区间信息。
[0096]
可选地,在步骤s120之前,还可以包括如下步骤:判断每个rank中的多个dram各自的模式寄存器返回的读应答信息是否均通过校验,若是,则执行上述的步骤s120。若通过校验,则说明数据的传输过程未出现异常。对读应答信息进行校验,可以提高该参数控制方法的安全性和稳定性。
[0097]
若每个所述rank中的多个dram各自的模式寄存器返回的读应答信息中存在未通过校验的读应答信息,则内存控制器100可以记录校验失败次数,并跳转到步骤s101。
[0098]
若所述校验失败次数超过预设次数,向中央处理器300传输致命中断指令。
[0099]
若每个rank的多个dram各自的模式寄存器返回的读应答信息中,存在未通过校验的读应答信息,则表示数据的传输过程存在异常,因此,可以重新进行整个数据传输过程,即重新向每个rank发送模式寄存器读命令,并记录校验失败次数,若连续循环预设次数,且每次均存在读应答信息未通过校验,则内存控制器100可以向中央处理器300传输致命中断指令,反映内存控制器100自身存在故障,以便工作人员进行处理。
[0100]
步骤s130,根据每个所述rank的温度区间信息,确定每个所述rank所对应的刷新率。
[0101]
步骤s140,对于每个所述rank,根据其对应的刷新率,生成并发送刷新命令,以使每个所述rank在接收到所述刷新命令后对自身包括的多个dram进行刷新。
[0102]
图3示出的步骤s130至步骤s140与图2示出的步骤s130至步骤s140对应相同,在此便不做赘述。
[0103]
可选地,在一种具体实施方式中,在步骤s120之后,还可以包括如下步骤:根据每
个所述rank的温度区间信息,调节所述内存控制器100内部的读写命令的发送频率。
[0104]
内存控制器100除了可以依据每个rank各自对应的温度区间信息,分别调节各rank中的多个dram的刷新率,也可以对内存控制器100内部发送向每个rank的读写命令的发送频率进行分别调节,具体可以在某个rank所对应的温度区间处于较高温度时,减少该rank对应的读写命令的发送;也可以在某个rank在最高温度所在的温度区间时,停止该rank的读写请求,同时继续执行其他的温度较低的温度区间的rank的读写请求的发送。
[0105]
可选地,在一种具体实施方式中,所述读应答信息还包括所属的dram的温度变化状态位,所述方法还包括:若所述读应答信息中的温度变化状态位为表征温度发生变化的状态位,发送中断信息至中央处理器300,以使所述中央处理器300从所述内存控制器100读取每个所述rank的温度区间信息,并根据所述温度区间信息调整中央处理器300针对各个rank的读写频率。
[0106]
内存控制器100还可以从读应答信息中获取温度变化状态位,并判断温度变化状态位是否发生变化。在温度变化状态位表征温度发生了变化,则内存控制器100可以发送中断信息到中央处理器300,以使中央处理器300从内存控制器100读取存储单元的每个rank的温度区间信息,从而由中央处理器300调节自身针对各个rank的读写频率,中央处理器300可以从自身对各个rank的读写频率进行调节,有利于进一步实现对每个rank所处的温度区间的精细化调节。
[0107]
请参见图4,图4示出了本申请实施例提供的一种参数控制方法,该方法可以由上述的cpu 300执行,具体包括如下步骤s210至步骤s230:
[0108]
步骤s210,接收内存控制器100发送的中断信息。
[0109]
步骤s220,从所述内存控制器100读取每个rank的温度区间信息,其中,每个所述rank为存储设备200中的rank。
[0110]
步骤s230,根据所述温度区间信息调整中央处理器300针对各个rank的读写频率。
[0111]
内存控制器100还可以从读应答信息中获取温度变化状态位,并判断温度变化状态位是否发生变化。在温度变化状态位表征温度发生了变化,则内存控制器100可以发送中断信息到中央处理器300,以使中央处理器300从内存控制器100读取存储单元的每个rank的温度区间信息,从而由中央处理器300调节自身针对各个rank的读写频率,中央处理器300可以从自身对各个rank的读写频率进行调节,cpu 300可以根据各rank所处的温度区间的不同对不同的rank做各自的读写访问的细粒度流量控制,有利于进一步实现对每个rank所处的温度区间的精细化调节。
[0112]
可选地,中央处理器300也可以周期性地主动获取各rank所在的温度区间,中央处理器300获取各rank的温度区间的方式不应该理解为是对本申请的限制。
[0113]
可选地,请参见图5,在一种具体实施方式中,步骤s220可以包括如下步骤s221至步骤s222:
[0114]
步骤s221,对于每个所述rank,从所述内存控制器100读取rank中的多个dram对应的温度区间信息,选择温度区间最高的温度区间信息。
[0115]
步骤s222,将所述温度区间最高的温度区间信息作为该rank的温度区间信息。
[0116]
中央处理器300可以从内存控制器100读取每个rank的多个dram分别对应的温度区间信息,并由中央处理器300选择出温度区间最高的温度区间信息。由中央处理器300进
行多个温度区间的筛选,可以提高选择的准确性,避免由于内存控制器100故障导致筛选出的温度区间信息出错,而牵连到中央处理器300获取各rank对应的温度区间信息的准确性。
[0117]
在一种具体实施方式中,cpu 300也可以从mrr数据处理模块1010获取经mrr数据处理模块1010处理出的每个rank的温度区间信息,从而提高获取温度区间信息的效率。
[0118]
在本申请所提供的实施例中,应该理解到,所揭露设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0119]
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0120]
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0121]
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
[0122]
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜