CN110007970A - 一种COMe板的内核启动时长优化方法 - Google Patents
一种COMe板的内核启动时长优化方法 Download PDFInfo
- Publication number
- CN110007970A CN110007970A CN201910161674.2A CN201910161674A CN110007970A CN 110007970 A CN110007970 A CN 110007970A CN 201910161674 A CN201910161674 A CN 201910161674A CN 110007970 A CN110007970 A CN 110007970A
- Authority
- CN
- China
- Prior art keywords
- register
- kernel
- training
- lvl
- memory
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Abstract
本发明属于内核启动优化技术领域,公开了一种COMe板的内核启动时长优化方法,将内存训练后的参数导入到内存控制器参数配置文件,再次启动内核时利用更新过的内存控制器配置文件对内存进行初始化,屏蔽内存训练,通过改变现有内存启动的流程,在初次启动内核之后,再次启动内核则不需要再次进行内存训练,由此缩短了内核启动耗时,可很好的解决COMe板内核启动耗时长的问题。
Description
技术领域
本发明属于内核启动优化技术领域,更具体地,涉及一种COMe板的内核启动时长优化方法。
背景技术
一些处理器内部集成的内存控制器的设计遵守DDR2/3SDRAM的行业标准(JESD79-2和JESD79-3)。在这类处理器中所实现的所有内存读/写操作都遵守JESD79-2B及JESD79-3的规定;支持最大4个由DDR2SDRAM片选信号实现的片选,一共含有19位的地址总线,包括16位的行列地址总线和3位的逻辑Bank总线。
这类处理器可通过调整DDR2/3控制器参数设置对所选用的内存芯片进行支持;处理器发送的内存请求物理地址可以根据控制器内部不同的配置进行多种不同的地址映射。处理器所集成的内存控制电路只接受来自处理器或者外部设备的内存读/写请求,在所有的内存读/写操作中,内存控制电路处于从设备状态。对于内存控制器参数的调试,即内存训练是在DDR3中,智能配置内存控制器读写操作中各种信号间相位关系的操作,通常包括写训练、读训练和窗口训练。内核启动流程参照图1,首先需要利用内存控制器配置文件对内存进行初始化,然后进行内存训练调整相关内存控制器参数,再利用新参数进行内存配置。写训练和窗口训练完成后重新配置内存参数、更新内存参数配置文件,进入正常工作模式,此时内存可以正常访问,内核正常启动。但这种方式下,但是内存训练耗时很长,影响内核启动时间。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了COMe板的内核启动时长优化方法,其目的在于通过省去内存训练所需时间,以缩短内核启动耗时。
为实现上述目的,按照本发明的一个方面,提供了一种COMe板的内核启动时长优化方法,将内存训练后的参数导入到内存控制器参数配置文件,再次启动内核时利用更新过的内存控制器配置文件对内存进行初始化,屏蔽内存训练,由此省去内核再次启动时内存训练所需的时间,缩短了内核启动耗时。
作为一个优选方案,上述的内核启动时长优化方法,具体如下:
(a)初次启动内核时,利用内存控制器配置文件进行内存初始化;再进行内存训练,然后启动内核;
(b)非首次启动内核时,利用已经训练好的内存控制器参数更新内存控制器配置文件,再利用内存控制器配置文件进行内存初始化,同时缩短处理器启动的等待时间,然后进行内核启动。
作为一个优选方案,上述的内核启动时长优化方法,内存训练中,对写操作进行训练时采用经验值作为初值以缩短参数优化时间。
作为一个优选方案,上述的内核启动时长优化方法,其对写操作的训练具体包括如下步骤:
(1)对控制器进行初始化,在Init_start寄存器保持为0的状态下,向控制器除了Init_start寄存器之外的寄存器写入正确的配置值;然后将Init_start寄存器设置为1;
(2)将寄存器Dll_wrdqs_x(0x038,0x058,0x078,……,0x138)中的bit16~bit23设置为0;将Lvl_mode(0x180)寄存器设置为2’b01;
(3)采样Lvl_ready(0x180)寄存器,当该寄存器的值为1时,开始写训练;
(4)将Lvl_req(0x180)寄存器设置为1;
(5)采样Lvl_done(0x180)寄存器,当该寄存器的值为1时,表明一次写训练完成。
优选地,上述的内核启动时长优化方法,在步骤(5)之后,还包括如下步骤:
(6)采样Lvl_resp_(x 0x180、0x188)寄存器,当该寄存器值为0,则将对应的Dll_wrdqs_x[6:0]寄存器增加1,并重复执行上述步骤(3)~(5);当该寄存器值为1,表明内存训练中的写训练操作成功。
作为一个优选方案,上述的内核启动时长优化方法,内存训练的窗口训练采用经验值作为初值以缩短参数优化时间。
作为一个优选方案,上述的内核启动时长优化方法,内存训练的窗口训练用于配置控制寄存器内使能采样读DQS(数据选取脉冲)窗口的时机,具体包括如下步骤:
(1)对内存控制器进行初始化;
(2)将寄存器Dll_gate_x(x=0…8)设置为0;
(3)将寄存器Lvl_mode(0x180)设置为2’b10;
(4)采样Lvl_ready(0x180)寄存器,当该寄存器的值为1时,开始窗口训练;
(5)将寄存器Lvl_req(0x180)设置为1;
(6)采样Lvl_done(0x180)寄存器,如果为1,表明一次窗口训练完成。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)本发明提供的COMe板的内核启动时长优化方法,由于采用经过大量测试的经验值作为内存训练的初始值,进一步提升了内存训练的可靠性。
(2)本发明提供的COMe板的内核启动时长优化方法,初次启动内核时,将内存训练后的参数导入到内存控制器参数配置文件,再次启动内核时利用更新过的内存控制器配置文件对内存进行初始化,屏蔽内存训练;通过改变现有内存启动的流程,在初次启动内核之后,再次启动内核则不需要再次进行内存训练,由此缩短了内核启动耗时,而由于同时缩短了2H处理器启动的等待时间,从而很好的解决COMe板内核启动耗时长的问题。
附图说明
图1是现有技术的COMe板的内核启动流程示意图;
图2是本发明实施例提供的COMe板的内核启动时长优化方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
参照图2,实施例提供的COMe板的内核启动时长优化方法,初次启动内核时,利用内存控制器配置文件进行内存初始化;再进行内存训练,然后启动内核;非初次启动内核时,利用已经训练好的内存控制器参数更新内存控制器配置文件,再利用内存控制器配置文件进行内存初始化,然后进行内核启动。
以下结合具体实施例来进一步阐述本发明提供的COMe板的内核启动时长优化方法的内存训练的方法,在该实施例中,内存控制器的部分寄存器参数设置如下:
0x018:3038383816100001
0x038:00000020203e1e00
0x058:00000020203d1d00
0x078:00000020203b1b00
0x368:0000000000000000。
在实施例提供的内核启动时长优化方法,内存训练中对写操作进行训练时采用经验值作为初值以缩短参数优化时间。在一个实施例中,对写操作的训练具体包括如下步骤:
(1)对控制器进行初始化,在Init_start寄存器保持为0的状态下,向控制器除了Init_start寄存器之外的寄存器写入正确的配置值;然后将Init_start寄存器设置为1;
(2)将寄存器Dll_wrdqs_x(0x038,0x058,0x078,……,0x138)中的bit16~bit23设置为0;将Lvl_mode(0x180)寄存器设置为2’b01;
(3)采样Lvl_ready(0x180)寄存器,当该寄存器的值为1时,开始写训练;
(4)将Lvl_req(0x180)寄存器设置为1;
(5)采样Lvl_done(0x180)寄存器,当该寄存器的值为1时,表明一次写训练完成。
在一个实施例中,步骤(5)之后,还包括如下步骤:
(6)采样Lvl_resp_(x 0x180、0x188)寄存器,当该寄存器值为0,则将对应的Dll_wrdqs_x[6:0]寄存器增加1,并重复执行上述步骤(3)~(5);当该寄存器值为1,表明内存训练中的写训练操作成功。
作在一个实施例中,内存训练的窗口训练采用经验值作为初值以缩短参数优化时间。
内存训练的窗口训练用于配置控制寄存器内使能采样读DQS窗口的时机,在一个实施例中具体包括如下步骤:
(1)对内存控制器进行初始化;
(2)将寄存器Dll_gate_x(x=0…8)设置为0;
(3)将寄存器Lvl_mode(0x180)设置为2’b10;
(4)采样Lvl_ready(0x180)寄存器,当该寄存器的值为1时,开始窗口训练;
(5)将寄存器Lvl_req(0x180)设置为1;
(6)采样Lvl_done(0x180)寄存器,如果为1,表明一次窗口训练完成。
在一个优选实施例中,上述的内核启动时长优化方法,内存训练的窗口训练,步骤(6)之后还包括如下步骤:
(7)采样Lvl_resp_x[0](0x180、0x188)寄存器;若寄存器Lvl_resp_x[0]第一次采样值为1,则将对应的Dll_gate_x[6:0]增加1,并重复执行步骤(6),直至采样结果为0;若寄存器Lvl_resp_x[0]第一次采样值为0,则直接进入步骤(8);
(8)则将对应的Dll_gate_x[6:0]增加1,并进入步骤(6);当Lvl_resp_x[0](0x180、0x188)寄存器进行采样值1,表明窗口训练操作成功。
在一个优选实施例中,上述的内核启动时长优化方法,内存训练的窗口训练,
如果采样结果为0,则将对应的Dll_gate_x[6:0]增加1,并重复执行6-9;如果为1,则表示Gate Leveling操作已经成功;
至此Gate Leveling操作结束,此时Dll_gate_x[6:0]与Dll_wrdata_x[6:0]的和实际上就是读DQS相对于PHY内部时钟的相位关系。
在一个优选实施例中,上述的内核启动时长优化方法,窗口训练中对各个参数进行调整的方法,具体如下:
若Dll_gate_x[6:0]与Dll_wrdata_x[6:0]的和小于0x20或者大于0x60,则将Dll_rddqs_lt_halt设置为1,以将rddqs的相位关系在输入的读DQS基础上再延迟1/4;
若Dll_gate_x[6:0]的值大于0x40,则将Dll_gate_x的值减去0x40;否则将其设为0;
调整完毕后,再分别进行两次Lvl_req操作,观察Lvl_resp_x[7:5]与Lvl_resp_x[4:2]的值变化,若各增加为Burst_length/2,则将Lvl_mode(0x180)设置为2’b00,退出窗口训练;如果不为4,则对Rd_oe_begin_x进行加一或减一操作,如果大于Burst_length/2则对Dll_gate_x的值进行微调。
实测结果表明,初次启动内核时将内存训练后的参数导入到内存控制器参数配置文件,再次启动内核时利用更新过的内存控制器配置文件对内存进行初始化,可将COMe板的内核启动耗时缩短10s-15s。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种COMe板的内核启动时长优化方法,其特征在于,将内存训练后的参数导入到内存控制器参数配置文件,再次启动内核时利用更新过的内存控制器配置文件对内存进行初始化,屏蔽内存训练,由此省去内核再次启动时内存训练所需的时间,缩短内核启动耗时。
2.如权利要求1所述的内核启动时长优化方法,其特征在于,
(a)初次启动内核时,利用内存控制器配置文件进行内存初始化;再进行内存训练,然后启动内核;
(b)非首次启动内核时,利用已经训练好的内存控制器参数更新内存控制器配置文件,再利用内存控制器配置文件进行内存初始化,同时缩短处理器启动的等待时间,然后进行内核启动。
3.如权利要求1或2所述的内核启动时长优化方法,其特征在于,内存训练中,对写操作进行训练时采用经验值作为初值以缩短参数优化时间。
4.如权利要求3所述的内核启动时长优化方法,其特征在于,对写操作的训练具体包括如下步骤:
(1)对控制器进行初始化,在Init_start寄存器保持为0的状态下,向控制器除了Init_start寄存器之外的寄存器写入正确的配置值;然后将Init_start寄存器设置为1;
(2)将寄存器Dll_wrdqs_x(0x038,0x058,0x078,……,0x138)中的bit16~bit23设置为0;将Lvl_mode(0x180)寄存器设置为2’b01;
(3)采样Lvl_ready(0x180)寄存器,当该寄存器的值为1时,开始写训练;
(4)将Lvl_req(0x180)寄存器设置为1;
(5)采样Lvl_done(0x180)寄存器,当该寄存器的值为1时,表明一次写训练完成。
5.如权利要求4所述的内核启动时长优化方法,其特征在于,步骤(5)之后,还包括如下步骤:
(6)采样Lvl_resp_(x 0x180、0x188)寄存器,当该寄存器值为0,则将对应的Dll_wrdqs_x[6:0]寄存器增加1,并重复执行上述步骤(3)~(5);当该寄存器值为1,表明内存训练中的写训练操作成功。
6.如权利要求1或2所述的内核启动时长优化方法,其特征在于,内存训练中进行窗口训练采用经验值作为初值以缩短参数优化时间。
7.如权利要求6所述的内核启动时长优化方法,其特征在于,窗口训练用于配置控制寄存器内使能采样读数据选取脉冲窗口的时机,具体包括如下步骤:
(1)对内存控制器进行初始化;
(2)将寄存器Dll_gate_x(x=0…8)设置为0;
(3)将寄存器Lvl_mode(0x180)设置为2’b10;
(4)采样Lvl_ready(0x180)寄存器,当该寄存器的值为1时,开始窗口训练;
(5)将寄存器Lvl_req(0x180)设置为1;
(6)采样Lvl_done(0x180)寄存器,如果为1,表明一次窗口训练完成。
8.如权利要求7所述的内核启动时长优化方法,其特征在于,内存训练的窗口训练,其步骤(6)之后还包括如下步骤:
(7)采样Lvl_resp_x[0](0x180、0x188)寄存器;若寄存器Lvl_resp_x[0]第一次采样值为1,则将对应的Dll_gate_x[6:0]增加1,并进入步骤(6),直至采样结果为0;若寄存器Lvl_resp_x[0]第一次采样值为0,则直接进入步骤(8);
(8)则将对应的Dll_gate_x[6:0]增加1,并进入步骤(6);当Lvl_resp_x[0](0x180、0x188)寄存器进行采样值1,表明窗口训练操作成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910161674.2A CN110007970A (zh) | 2019-03-04 | 2019-03-04 | 一种COMe板的内核启动时长优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910161674.2A CN110007970A (zh) | 2019-03-04 | 2019-03-04 | 一种COMe板的内核启动时长优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110007970A true CN110007970A (zh) | 2019-07-12 |
Family
ID=67166473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910161674.2A Pending CN110007970A (zh) | 2019-03-04 | 2019-03-04 | 一种COMe板的内核启动时长优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110007970A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596963A (zh) * | 2020-12-14 | 2021-04-02 | 成都海光集成电路设计有限公司 | 一种快速内存训练的方法及系统 |
CN112965754A (zh) * | 2019-12-13 | 2021-06-15 | 合肥杰发科技有限公司 | 一种系统启动的方法及嵌入式设备 |
CN117076081A (zh) * | 2023-08-22 | 2023-11-17 | 上海合芯数字科技有限公司 | 存储器训练方法、设备、存储介质及程序产品 |
CN112596963B (zh) * | 2020-12-14 | 2024-05-03 | 成都海光集成电路设计有限公司 | 一种快速内存训练的方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662711A (zh) * | 2012-04-06 | 2012-09-12 | 中兴通讯股份有限公司 | 一种芯片快速初始化方法及装置 |
CN102804156A (zh) * | 2009-06-17 | 2012-11-28 | 超威半导体公司 | 动态随机存取存储器通道控制器的并行训练 |
US20140032826A1 (en) * | 2012-07-25 | 2014-01-30 | Samsung Electronics Co., Ltd. | Method of training memory core and memory system |
CN104317612A (zh) * | 2014-10-14 | 2015-01-28 | 中国航天科工集团第二研究院七〇六所 | 龙芯处理器内存控制器参数交互式调试的方法 |
CN107111600A (zh) * | 2015-03-31 | 2017-08-29 | 西部数据技术公司 | 通信接口初始化 |
CN107393578A (zh) * | 2016-05-16 | 2017-11-24 | 中国长城科技集团股份有限公司 | 一种内存训练的方法和装置 |
CN108984219A (zh) * | 2018-08-29 | 2018-12-11 | 迈普通信技术股份有限公司 | 内存参数配置方法及电子设备 |
-
2019
- 2019-03-04 CN CN201910161674.2A patent/CN110007970A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102804156A (zh) * | 2009-06-17 | 2012-11-28 | 超威半导体公司 | 动态随机存取存储器通道控制器的并行训练 |
CN102662711A (zh) * | 2012-04-06 | 2012-09-12 | 中兴通讯股份有限公司 | 一种芯片快速初始化方法及装置 |
US20140032826A1 (en) * | 2012-07-25 | 2014-01-30 | Samsung Electronics Co., Ltd. | Method of training memory core and memory system |
CN104317612A (zh) * | 2014-10-14 | 2015-01-28 | 中国航天科工集团第二研究院七〇六所 | 龙芯处理器内存控制器参数交互式调试的方法 |
CN107111600A (zh) * | 2015-03-31 | 2017-08-29 | 西部数据技术公司 | 通信接口初始化 |
CN107393578A (zh) * | 2016-05-16 | 2017-11-24 | 中国长城科技集团股份有限公司 | 一种内存训练的方法和装置 |
CN108984219A (zh) * | 2018-08-29 | 2018-12-11 | 迈普通信技术股份有限公司 | 内存参数配置方法及电子设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965754A (zh) * | 2019-12-13 | 2021-06-15 | 合肥杰发科技有限公司 | 一种系统启动的方法及嵌入式设备 |
CN112965754B (zh) * | 2019-12-13 | 2023-04-18 | 合肥杰发科技有限公司 | 一种系统启动的方法及嵌入式设备 |
CN112596963A (zh) * | 2020-12-14 | 2021-04-02 | 成都海光集成电路设计有限公司 | 一种快速内存训练的方法及系统 |
CN112596963B (zh) * | 2020-12-14 | 2024-05-03 | 成都海光集成电路设计有限公司 | 一种快速内存训练的方法及系统 |
CN117076081A (zh) * | 2023-08-22 | 2023-11-17 | 上海合芯数字科技有限公司 | 存储器训练方法、设备、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11681648B2 (en) | Interface clock management | |
JP3833613B2 (ja) | 高性能マイクロプロセッサのメモリコントローラ・プログラミング方法 | |
KR102030126B1 (ko) | 판독 데이터 스트로브 신호를 포함하는 감소된 핀 카운트(rpc) 메모리 버스 인터페이스를 위한 장치 및 방법 | |
US8266369B2 (en) | Flash memory interface | |
US9965222B1 (en) | Software mode register access for platform margining and debug | |
US20040054864A1 (en) | Memory controller | |
US20050066141A1 (en) | Method and apparatus for accessing a dynamic memory device | |
US20190080771A1 (en) | Memory device read training method | |
CN108139994B (zh) | 内存访问方法及内存控制器 | |
CN110007970A (zh) | 一种COMe板的内核启动时长优化方法 | |
CN109799959A (zh) | 一种提高开放通道固态盘写并行性的方法 | |
US11829640B2 (en) | Asynchronous arbitration across clock domains for register writes in an integrated circuit chip | |
JP5801158B2 (ja) | Ram記憶装置 | |
EP4167080A1 (en) | Memory initialisation apparatus and method, and computer system | |
US20050198542A1 (en) | Method and apparatus for a variable memory enable deassertion wait time | |
US6775718B2 (en) | DMA control system enabling flyby transfer to synchronous memory | |
CN115687172A (zh) | 内存初始化方法、计算机设备及存储介质 | |
CN110265075A (zh) | 一种内存接口的控制方法和系统 | |
US20240134574A1 (en) | Asynchronous arbitration across clock domains for register writes in an integrated circuit chip | |
US8898400B2 (en) | Integrated circuit including multiple memory devices | |
CN114566200A (zh) | Flash控制方法及Flash控制器 | |
CN105468535A (zh) | 一种NAND Flash的数据处理方法及装置 | |
CN115480706A (zh) | 一种执行指令的方法及介质接口控制器 | |
WO2024072981A1 (en) | Signal interference testing using reliable read write interface | |
CN109582615A (zh) | 一种ddr3控制系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190712 |
|
RJ01 | Rejection of invention patent application after publication |