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

一种DIMM的数据初始化方法、装置、系统及设备与流程

2021-03-09 14:15:00 来源:中国专利 TAG:初始化 数据 装置 方法 设备

一种dimm的数据初始化方法、装置、系统及设备
技术领域
1.本发明涉及计算机技术领域以及数据初始化技术领域,尤其涉及一种dimm(dual-inline-memory-modules,双列直插式存储模块)的数据初始化方法、装置、系统及设备。


背景技术:

2.计算机包括内存,内存可以包括多个内存条,dimm是一种新型内存条,它提供了64位的数据通道,dimm是由用于存储数据的dram(dynamic random access memory,动态随机存取存储器)颗粒组成的,一个dimm还可以被划分为多个rank(阵列),每个rank由若干dram颗粒组成。
3.计算机开机时需要对内存的dimm进行数据初始化,即向所有dimm的rank的所有内存地址空间,发送写全0或者全1的初始化的数据。目前,在初始化的过程中,需要通过dq/dqs总线传输初始化的数据,并且,针对不同rank需要有不同的dq/dqs时序(delay timing),因此,需要串行的发送写命令到通道内每个dimm的每个rank,从而导致初始化的时间比较长。
4.并且,随着计算机内存容量的增加,尤其对于服务器而言,一般配有大容量的dimm,每一个内存通道的dimm容量都可达到128gb或256gb。而且,最新的ddr5 sdram(double data rate5synchronous dynamic random access memory,双倍数据率同步动态随机存取存储器)相比上一代ddr4 sdram,其dram颗粒容量增加了4倍。
5.因此,如果继续采用现有的dimm的数据初始化方法,将导致对计算机内存的数据初始化需要消耗更多的时间,影响计算机开机速度。


技术实现要素:

6.有鉴于此,本发明实施例提供一种dimm的数据初始化方法、装置、系统及设备,以解决目前存在的计算机内存的数据初始化的时间较长,开机速度慢的问题。
7.第一方面,本发明实施例提供一种双列直插式存储模块dimm的数据初始化方法,应用于内存控制器mc,所述dimm包括待初始化的多个阵列rank,所述多个rank划分为至少一个rank组,每个rank组包括至少两个rank,所述方法包括:
8.向所述多个rank的模式寄存器发送模式寄存器写mrw命令,以针对待初始化数据配置所述多个rank的动态随机存取存储器dram的写模式;
9.针对所述多个rank的相同一行,向所述多个rank的该相同一行发送激活act命令,以激活所述多个rank的该相同一行;
10.分别针对每个rank组,以及该rank组包括的rank的每个指定列,同时向该rank组包括的各rank的该指定列,发送写模式wrp命令,其中,各指定列中包括第一列,且相邻的两个指定列之间相差突发长度;
11.向所述多个rank的该相同一行发送关闭pre命令,以关闭所述多个rank的该相同一行。
12.根据本发明实施例的一种具体实现方式,针对所述多个rank的相同一行,向所述多个rank的该相同一行发送act命令,以激活所述多个rank的该相同一行,包括:
13.分别针对所述多个rank的每个区块组中每个区块的相同一行,向所述多个rank的该区块组的该区块的该相同一行发送act命令,以激活所述多个rank的该区块组的该区块的该相同一行。
14.根据本发明实施例的一种具体实现方式,分别针对每个rank组,以及该rank组包括的rank的每个指定列,同时向该rank组包括的各rank的该指定列,发送wrp命令,包括:
15.分别针对每个rank组,以及该rank组包括的rank的每个指定列,通过ca地址总线,同时向该rank组包括的各rank的该指定列,发送wrp命令。
16.根据本发明实施例的一种具体实现方式,每个rank组包括两个rank,或者,每个rank组包括四个rank。
17.根据本发明实施例的一种具体实现方式,所述待初始化数据包括错误检查和纠正ecc数据。
18.第二方面,本发明实施例提供一种双列直插式存储模块dimm的数据初始化装置,应用于内存控制器mc,所述dimm包括待初始化的多个阵列rank,所述多个rank划分为至少一个rank组,每个rank组包括至少两个rank,所述装置包括:
19.模式寄存器配置模块,用于向所述多个rank的模式寄存器发送模式寄存器写mrw命令,以针对待初始化数据配置所述多个rank的动态随机存取存储器dram的写模式;
20.激活模块,用于针对所述多个rank的相同一行,向所述多个rank的该相同一行发送激活act命令,以激活所述多个rank的该相同一行;
21.写模块,用于分别针对每个rank组,以及该rank组包括的rank的每个指定列,同时向该rank组包括的各rank的该指定列,发送写模式wrp命令,其中,各指定列中包括第一列,且相邻的两个指定列之间相差突发长度;
22.关闭模块,用于向所述多个rank的该相同一行发送关闭pre命令,以关闭所述多个rank的该相同一行。
23.根据本发明实施例的一种具体实现方式,所述激活模块,具体用于分别针对所述多个rank的每个区块组中每个区块的相同一行,向所述多个rank的该区块组的该区块的该相同一行发送act命令,以激活所述多个rank的该区块组的该区块的该相同一行。
24.根据本发明实施例的一种具体实现方式,所述写模块,具体用于分别针对每个rank组,以及该rank组包括的rank的每个指定列,通过ca地址总线,同时向该rank组包括的各rank的该指定列,发送wrp命令。
25.根据本发明实施例的一种具体实现方式,每个rank组包括两个rank,或者,每个rank组包括四个rank。
26.根据本发明实施例的一种具体实现方式,所述待初始化数据包括错误检查和纠正ecc数据。
27.第三方面,本发明实施例提供一种双列直插式存储模块dimm的数据初始化系统,包括:内存控制器mc、物理层接口phy和多个dimm,所述多个dimm包括待初始化的多个阵列rank,所述多个rank划分为至少一个rank组,每个rank组包括至少两个rank,其中;
28.所述mc与所述phy之间通过dfi接口连接;
29.所述phy与所述多个dimm之间通过一条ca地址总线连接;
30.所述mc,用于向所述多个rank的模式寄存器发送模式寄存器写mrw命令,以针对待初始化数据配置所述多个rank的动态随机存取存储器dram的写模式;
31.针对所述多个rank的相同一行,向所述多个rank的该相同一行发送激活act命令,以激活所述多个rank的该相同一行;
32.分别针对每个rank组,以及该rank组包括的rank的每个指定列,同时向该rank组包括的各rank的该指定列,发送写模式wrp命令,其中,各指定列中包括第一列,且相邻的两个指定列之间相差突发长度;
33.向所述多个rank的该相同一行发送关闭pre命令,以关闭所述多个rank的该相同一行。
34.根据本发明实施例的一种具体实现方式,所述mc,包括:初始化引擎ie、维护引擎me、计时模块、仲裁器和后端队列,其中:
35.所述ie,用于向所述仲裁器发送所述mrw命令、所述act命令、所述wrp命令和所述pre命令;
36.所述me,用于向所述仲裁器发送自动刷新命令;
37.所述仲裁器,用于从接收的所述mrw命令、所述act命令、所述wrp命令、所述pre命令和所述自动刷新命令中,按照自动刷新规则所表示的顺序,选择需要发送给所述后端队列的命令;
38.所述后端队列,用于接收所述冲裁器发送的命令,并向所述phy转发接收的命令;
39.所述计时模块分别与所述ie和所述仲裁器相连,用于向所述ie和所述仲裁器提供计时功能。
40.第四方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一权利要求所述的方法。
41.第五方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一权利要求所述的方法。
42.采用本发明实施例提供的dimm的数据初始化方法,在针对待初始化数据配置多个rank的dram的写模式后,通过向多个rank的相同一行发送act命令,激活多个rank的该相同一行,然后分别针对每个rank组,以及该rank组包括的rank的每个指定列,同时向该rank组包括的各rank的该指定列,发送wrp命令,以完成待初始化数据从模式寄存器写入该多个rank的该相同一行,在完成待初始化数据的写入之后,向多个rank的该相同一行发送pre命令,以关闭该多个rank的该相同一行。本方案中,基于wrp命令的固有特性,可以同时向多个rank发送wrp命令,从而能够实现同时向一个rank组包括的至少两个rank发送wrp命令,即实现并行的传输,相比现有技术,不再需要通过dq总线串行的传输写命令和待初始化数据,减少了计算机内存的数据初始化的时间,进而提高了开机速度。
附图说明
43.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
44.图1为本发明实施例提供的一种dimm的数据初始化方法的流程图;
45.图2为本发明实施例提供的另一种dimm的数据初始化方法的流程图;
46.图3为本发明实施例中内存控制器与dimm之间连接的结构示意图;
47.图4-1为本发明实施例提供的一种dimm的数据初始化系统的结构示意图;
48.图4-2为本发明实施例提供的另一种dimm的数据初始化系统的结构示意图;
49.图5为本发明实施例提供的一种dimm的数据初始化装置的结构示意图;
50.图6为本发明实施例提供的电子设备的结构示意图。
具体实施方式
51.下面结合附图对本发明实施例进行详细描述。应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
52.本发明实施例公开一种dimm的数据初始化方法,应用于mc(memory controller,内存控制器),dimm包括待初始化的多个rank,该多个rank划分为至少一个rank组,每个rank组包括至少两个rank,如图1所示,该方法包括:
53.步骤11、向该多个rank的模式寄存器发送mrw(mode register write,模式寄存器写)命令,以针对待初始化数据配置该多个rank的dram的写模式。
54.步骤12、针对该多个rank的相同一行,向该多个rank的该相同一行发送act(activate,激活)命令,以激活该多个rank的该相同一行。
55.步骤13、分别针对每个rank组,以及该rank组包括的rank的每个指定列,同时向该rank组包括的各rank的该指定列,发送wrp(write pattern,写模式)命令,其中,各指定列中包括第一列,且相邻的两个指定列之间相差burst length(突发长度);
56.步骤14、向该多个rank的该相同一行发送关闭pre命令,以关闭该多个rank的该相同一行。
57.采用本发明实施例提供的上述dimm的数据初始化方法,在针对待初始化数据配置多个rank的dram的写模式后,通过向多个rank的相同一行发送act命令,激活多个rank的该相同一行,然后分别针对每个rank组,以及该rank组包括的rank的每个指定列,同时向该rank组包括的各rank的该指定列,发送wrp命令,以完成待初始化数据从模式寄存器写入该多个rank的该相同一行,在完成待初始化数据的写入之后,向多个rank的该相同一行发送pre命令,以关闭该多个rank的该相同一行,针对每一行均按照这种方式完成初始化数据的写入,即可以完成对dimm的数据初始化。本方案中,基于wrp命令的固有特性,可以同时向多个rank发送wrp命令,从而能够实现同时向一个rank组包括的至少两个rank发送wrp命令,即实现并行的传输,相比现有技术,不再需要通过dq总线串行的传输写命令和待初始化数据,减少了计算机内存的数据初始化的时间,进而提高了开机速度。
58.下面结合附图,用具体实施例对本发明实施例提供的上述dimm的数据初始化方法进行详细描述。
59.本发明实施例还提供一种dimm的数据初始化方法,应用于mc(内存控制器),用于针对一条总线通道所连接的多个dimm进行数据初始化,该多个dimm共计包括多个rank,且该多个rank划分为至少一个rank组,每个rank组包括至少两个rank,如图2所示,可以包括如下步骤:
60.步骤21、向该多个rank的模式寄存器发送mrw命令,以针对待初始化数据配置该多个rank的dram的写模式。
61.本步骤中,向该多个rank的模式寄存器发送mrw命令,也可以理解为将需要初始化的数据模式配置在该多个rank的模式寄存器中,以便后续可以直接将待初始化数据从模式寄存器写入rank,而不再需要通过总线传输。
62.本发明实施例中,待初始化数据可以包括ecc(error correcting code,错误检查和纠正)数据,以便完成初始化后具备ecc功能。
63.步骤22、针对该多个rank,确定待初始化的行。
64.当首次执行本步骤时,待初始化的行可以是第一行,后续每次执行本步骤时,待初始化的行可以是最近一次完成初始化的行的下一行。
65.步骤23、分别针对该多个rank的每个区块组中每个区块的该待初始化的行,向该多个rank的该区块组的该区块的该待初始化的行发送act命令,以激活该多个rank的该区块组的该区块的该待初始化的行。
66.本步骤中,可以从rank的第一个区块组的第一个区块开始,连续的向每个区块组的每个区块的该待初始化的行,发送act命令,以激活该多个rank的每个区块组的每个区块的该待初始化的行。
67.步骤24、针对该多个rank,确定待初始化的指定列。
68.当首次执行本步骤时,待初始化的指定列可以是第一列,后续每次执行本步骤时,待初始化的指定列可以是最近一次完成初始化的列加上burst length(突发长度)的列。
69.步骤25、分别针对每个rank组,同时向该rank组包括的各rank的待初始化的该指定列,发送wrp命令。
70.本步骤中,可以通过ca地址总线,同时向该rank组包括的各rank的待初始化的该指定列,发送wrp命令。
71.本申请实施例中,每个rank组包括的rank的数量,可以基于实际需要进行灵活配置。
72.如图3所示,一条ca地址总线连接有两个dimm,分别为dimm0和dimm1,dimm0和dimm1各自分别包括两个rank,dimm0包括rank0和rank1,dimm1包括rank2和rank3。
73.针对图3中所示的结构,可以采用如下两种划分方式:
74.第一种划分方式:将rank0和rank2划分为一组rank,将rank1和rank3划分为另一组rank。
75.第二种划分方式:将rank0、rank1、rank2和rank3共计4个rank划分为一组rank。
76.针对上述第一种划分方式,可以通过ca地址总线,同时先向rank0和rank2的待初始化的该指定列,发送wrp命令,然后通过a地址总线,同时先向rank1和rank3的待初始化的
该指定列,发送wrp命令。
77.针对上述第二种划分方式,可以通过ca地址总线,同时先向rank0、rank1、rank2和rank3的待初始化的该指定列,发送wrp命令。
78.基于wrp命令的固有特性,在向rank发送wrp命令后,即可以实现将模式寄存器中预先配置的待初始化数据写入rank。
79.步骤26、确定最近一次完成初始化的该指定列是否为最后一列,如果不是最后一列,返回上述步骤24,如果是最后一列,执行下述步骤27。
80.步骤27、向该多个rank的最近一次完成初始化的行发送pre(关闭)命令,以关闭该多个rank的该相同一行。
81.步骤28、确定最近一次完成初始化的该行是否为最后一行,如果不是最后一行,返回上述步骤22,如果是最后一行,确定数据初始化结束。
82.采用上述图2所示的dimm的数据初始化方法,基于wrp命令的固有特性,可以同时向多个rank发送wrp命令,即实现并行的传输,相比现有技术,不再需要通过dq总线串行的传输写命令和待初始化数据,对不同rank的写操作也不再受dq timing的限制,减少了计算机内存的数据初始化的时间,进而提高了开机速度。
83.基于同一发明构思,根据本发明上述实施例提供的dimm的数据初始化方法,本发明实施例还提供了一种dimm的数据初始化系统,如图4-1所示,包括:mc(内存控制器)41、phy(physical interface,物理层接口)42和多个dimm 43,该多个dimm包括待初始化的多个rank,该多个rank划分为至少一个rank组,每个rank组包括至少两个rank,其中;
84.mc 41与phy 42之间通过dfi接口44连接;
85.phy 42与多个dimm 43之间通过一条ca地址总线45连接;
86.mc 41,用于向该多个rank的模式寄存器发送mrw命令,以针对待初始化数据配置该多个rank的dram的写模式;
87.针对该多个rank的相同一行,向该多个rank的该相同一行发送act命令,以激活该多个rank的该相同一行;
88.分别针对每个rank组,以及该rank组包括的rank的每个指定列,同时向该rank组包括的各rank的该指定列,发送wrp命令,其中,各指定列中包括第一列,且相邻的两个指定列之间相差burst length;
89.向该多个rank的该相同一行发送pre命令,以关闭该多个rank的该相同一行。
90.进一步的,如图4-2所示,mc 41,包括:ie(initialization engine,初始化引擎)411、me(maintaining engine,维护引擎)412、计时模块413、仲裁器(arbiter)414和后端队列(backend queue)415,其中:
91.ie 411,用于向仲裁器414发送上述mrw命令、act命令、wrp命令和pre命令;
92.me 412,用于向仲裁器414发送自动刷新命令;
93.仲裁器414,用于从接收的mrw命令、act命令、wrp命令、pre命令和自动刷新命令中,按照自动刷新规则所表示的顺序,选择需要发送给后端队列415的命令;
94.后端队列415,用于接收冲裁器414发送的命令,并向phy 42转发接收的命令;
95.计时模块413分别与ie 411和仲裁器414相连,用于向ie 411和仲裁器414提供计时功能。
96.本发明实施例中,后端队列415也可以接收从dimm 43读回的数据,返回给ie 101,以便检查数据是否正确。
97.本发明实施例中,对于上述图4-1和图4-2中一个phy所连接的dimm的数量,可以基于实际需要进行灵活配置,例如,一个phy可以连接两个dimm,也可以连接三个dimm,也可以连接更多的dimm,在此不做限定。
98.基于同一发明构思,根据本发明上述实施例提供的dimm的数据初始化方法,相应地,本发明另一实施例还提供了一种dimm的数据初始化装置,应用于mc,该dimm包括待初始化的多个rank,该多个rank划分为至少一个rank组,每个rank组包括至少两个rank,如图5所示,该装置包括:
99.模式寄存器配置模块51,用于向多个rank的模式寄存器发送模式寄存器写mrw命令,以针对待初始化数据配置多个rank的动态随机存取存储器dram的写模式;
100.激活模块52,用于针对多个rank的相同一行,向多个rank的该相同一行发送激活act命令,以激活多个rank的该相同一行;
101.写模块53,用于分别针对每个rank组,以及该rank组包括的rank的每个指定列,同时向该rank组包括的各rank的该指定列,发送写模式wrp命令,其中,各指定列中包括第一列,且相邻的两个指定列之间相差突发长度burst length;
102.关闭模块54,用于向多个rank的该相同一行发送关闭pre命令,以关闭多个rank的该相同一行。
103.进一步的,激活模块52,具体用于分别针对所述多个rank的每个区块组中每个区块的相同一行,向所述多个rank的该区块组的该区块的该相同一行发送act命令,以激活所述多个rank的该区块组的该区块的该相同一行。
104.进一步的,写模块53,具体用于分别针对每个rank组,以及该rank组包括的rank的每个指定列,通过ca地址总线,同时向该rank组包括的各rank的该指定列,发送wrp命令。
105.进一步的,每个rank组包括两个rank,或者,每个rank组包括四个rank。
106.进一步的,所述待初始化数据包括错误检查和纠正ecc数据。
107.本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
108.图6为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-2所示任一实施例的流程,如图6所示,上述电子设备可以包括:壳体601、处理器602、存储器603、电路板604和电源电路605,其中,电路板604安置在壳体601围成的空间内部,处理器602和存储器603设置在电路板604上;电源电路605,用于为上述电子设备的各个电路或器件供电;存储器603用于存储可执行程序代码;处理器602通过读取存储器603中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的方法。
109.处理器602对上述步骤的具体执行过程以及处理器602通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-6所示实施例的描述,在此不再赘述。
110.该电子设备以多种形式存在,包括但不限于:
111.(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。
112.(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。
113.(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
114.(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
115.(5)其他具有数据交互功能的电子设备。
116.基于同一发明构思,根据本发明上述实施例提供的任一方法,相应地,本发明另一实施例还提供了一种计算机可读存储介质,该计算机可读存储介质有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现本发明任一实施例提供的方法。
117.本发明的实施例还提供一种应用程序,所述应用程序被执行以实现本发明任一实施例提供的方法。
118.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质、应用程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
119.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
120.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
121.尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
122.为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
123.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
124.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜