CN104317612A - 龙芯处理器内存控制器参数交互式调试的方法 - Google Patents
龙芯处理器内存控制器参数交互式调试的方法 Download PDFInfo
- Publication number
- CN104317612A CN104317612A CN201410541886.0A CN201410541886A CN104317612A CN 104317612 A CN104317612 A CN 104317612A CN 201410541886 A CN201410541886 A CN 201410541886A CN 104317612 A CN104317612 A CN 104317612A
- Authority
- CN
- China
- Prior art keywords
- memory controller
- register
- controller hub
- memory
- value
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种龙芯处理器内存控制器参数交互式调试的方法,其包括:步骤S1、加载基础内存配置参数;步骤S2、判断是否进行内存训练,如果是,则进行步骤S3,否则直接跳转到步骤S4;步骤S3、进行内存训练;步骤S4、判断是否需要修改该内存配置参数,如果不需要继续修改,则跳转到步骤S7;步骤S5、读取待修改的内存控制器的寄存器索引值和寄存器内容,并保存到处理器的内存控制器中;步骤S6、跳转到步骤S4;以及步骤S7、保存修改后的内存控制器的内容到闪存中。
Description
技术领域
本发明属于龙芯处理器技术领域,尤其涉及一种龙龙芯处理器内存控制器调试的方法。
背景技术
随着龙芯处理器的性能、稳定性的逐步提升以及国家对国产化事业的推进和扶持,基于龙芯处理器的计算机开始在各个行业推广应用。由于龙芯处理器与商用X86处理的架构不同,该处理器内部集成内存控制器,而内存控制器的稳定性和性能很大程度上影响计算机整机的性能能稳定性,当计算机主板上处理器与内存插槽的布局改变或计算机应用环境改变时,为了保证整机的高效、稳定运行,内存控制器的配置参数需要做相应的调整。
龙芯处理器中的内存控制器参数调试中,现有技术均采用编译烧写的方法进行调试。编译烧写方法的具体实现是,修改固件源码中内存控制器的参数,然后重新编译固件,使用烧写工具将生成的固件文件烧写到Flash芯片中,重新开机上电,启动过程中观察参数是否运行正常。
由于现有的编译烧写方法需要重复的进行固件源码的修改、编译、烧写的过程,才能进行内存参数的调试。在实际操作中调试过程不灵活,效果不理想,调试效率不高。
发明内容
本发明的目的是提供一种龙芯处理器内存控制器参数交互式调试的方法,能够实现交互式的内存控制参数的调试,以解决现有的内存控制器参数调试的方法调试过程中不灵活,效率不高的缺陷。
本发明涉及一种龙芯处理器内存控制器参数交互式调试的方法,包括:步骤S1、加载基础内存配置参数;步骤S2、判断是否进行内存训练,如果是,则进行步骤S3,否则直接跳转到步骤S4;步骤S3、进行内存训练;步骤S4、判断是否需要修改该内存配置参数,如果不需要继续修改,则跳转到步骤S7;步骤S5、读取待修改的内存控制器的寄存器索引值和寄存器内容,并保存到处理器的内存控制器中;步骤S6、跳转到步骤S4;以及步骤S7、保存修改后的内存控制器的内容到闪存中。
根据本发明的龙芯处理器内存控制器参数交互式调试的方法的一实施例,其中,判断进行内存训练的条件包括:由用户输入进行内存训练指令;处理器检测到工作环境温度变化超过一阈值;或处理器检测到内存规格、型号或工作频率变化。
根据本发明的龙芯处理器内存控制器参数交互式调试的方法的一实施例,其中,该阈值为30摄氏度。
根据本发明的龙芯处理器内存控制器参数交互式调试的方法的一实施例,其中,该内存训练包括:A1、定义寄存器的最小值和最大值;A2、向内存地址中写入一个随机值,然后再从写入的地址读取内存内容,比较该随机值和该内存内容是否一致;A3、如果一致则表示该寄存器的当前内容可以使用,则该寄存器的训练结束,否则继续进行操作:在该寄存器的最小值和该寄存器的当前内容区间通过二分法计算新的该寄存器内容值,并更新该寄存器的最大值;在该寄存器的最小值和该寄存器的当前内容区间通过二分法计算另一新的该寄存器内容值,并更新该寄存器的最小值,并跳转步骤A2。
根据本发明的龙芯处理器内存控制器参数交互式调试的方法的一实施例,其中,读取待修改的内存控制器的寄存器索引值和寄存器内容,并保存到处理器的内存控制器中,包括:B1、从处理器串口读取用户输入的内存控制器索引值,如果该值大于180,则需要重新输入;B2、从处理器串口读取用户输入的寄存器内容;以及B3、将该用户输入的寄存器内容的值保存到该寄存器中。
综上,本发明的龙芯处理器内存控制器参数交互式调试的方法,能够实现交互式的内存控制参数的调试,克服了现有调试过程中不灵活,效率不高的缺陷。且龙芯处理器内存控制器参数交互式调试在启动过程中根据用户输入来动态调整内存控制器配置参数的途径,避免了重新编译烧写固件的过程,加快了内存参数调试的效率和灵活性。
附图说明
图1是本发明龙芯处理器内存控制器参数交互式调试的方法的流程图。
具体实施方式
下面通过具体实例对本发明作进一步的详述,以下实施例只是描述性的,非限定性,不能以此限定本发明的保护范围。
本发明龙芯处理器内存控制器参数交互式调试的方法,主要是根据龙芯内存控制器的寄存器索引值,对龙芯内存控制器的寄存器内容进行修改。内存控制器的寄存器索引是指内存控制器寄存器在内存控制器中的地址偏移量,如第一个寄存器索引值为0、第二个为1、以此类推,龙芯内存控制器总共包含180个寄存器;内存控制器的寄存器内容是指一个8字节的16进制常量值。
图1是本发明龙芯处理器内存控制器参数交互式调试的方法的流程图。如图1所示,本发明龙芯处理器内存控制器参数交互式调试的方法包括:
步骤S1、加载基础内存配置参数。基础内存配置参数包括:源码中对内存控制器的每一个寄存器设定的8字节常量值,并按照寄存器的索引序号存放在源文件中,编译烧写到Flash之后,处理器按照寄存器索引值从Flash中依次读取并写入到内存控制器的对应寄存器中;
步骤S2、判断是否进行内存训练。如果满足以下任何一种条件则进行内存训练,否则直接跳转到步骤S4;上述的条件包括:
由用户直接指示;例如由用户通过处理器串口输入字符'l';
处理器检测到工作环境温度变化超过一定阈值,例如30摄氏度;
满足此情况时,还通过处理器内部的温度寄存器值与Flash中保存的上一次启动时的温度进行比较判定,然后保存当前的温度值到Flash中;
处理器检测到内存规格,型号以及工作频率变化;
满足此情况时,还通过读取当前的内存规格、型号、工作频率与Flash中保存的上一次启动时的值进行比较是否一致,然后保存当前的值到Flash中。
步骤S3、进行内存训练。该内存训练是对内存控制器的寄存器内容进行动态调整,以达到内存读写稳定的目的。以训练寄存器RA为例,其当前内容为V_RA,主要包含:
A1、定义寄存器RA的最小值V_RA_MIN和最大值V_RA_MAX;
A2、向内存地址M_ADDR中写入一个随机值M_W,然后再从写入的地址读取内存内容M_R,比较M_W和M_R是否一致;
A3、如果一致则表示V_RA可以使用,则寄存器RA的训练结束,否则继续操作;
先在V_RA_MIN和V_RA区间通过二分法计算新的V_RA值,并更新V_RA_MAX;然后再在V_RA和V_RA_MAX区间通过二分法计算新的V_RA值,并更新V_RA_MIN,跳转步骤A2。
步骤S4、判断是否需要修改内存配置参数。通过处理器串口读取用户输入的数据,如果输入为0,表示不需要继续修改,则跳转到步骤S7,其他值则继续进行下面的步骤;
步骤S5、读取待修改的内存控制器的寄存器索引值和寄存器内容,并保存到处理器的内存控制器中;包括:
B1、从处理器串口读取用户输入的内存控制器索引值IDX,如果该值大于180,则重新输入;
B2、从处理器串口读取用户输入的寄存器内容V_NEW,该值为8个字节的16进制数;
B3、将V_NEW的值保存到IDX寄存器中。
步骤S6、跳转到步骤S4,并循环进行上述的处理过程;
步骤S7、保存修改后的内存控制器内容到Flash中,正常启动。
系统启动后,在操作系统中验证内存运行是否稳定,如果不稳定只需要重启系统,重新设置新的参数即可,而不需要编译和烧写固件。
综上,本发明的龙芯处理器内存控制器参数交互式调试的方法,能够实现交互式的内存控制参数的调试,克服了现有调试过程中不灵活,效率不高的缺陷。且龙芯处理器内存控制器参数交互式调试在启动过程中根据用户输入来动态调整内存控制器配置参数的途径,避免了重新编译烧写固件的过程,加快了内存参数调试的效率和灵活性。
虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离本发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在所附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为所附权利要求所涵盖。
Claims (5)
1.一种龙芯处理器内存控制器参数交互式调试的方法,其特征在于,包括:
步骤S1、加载基础内存配置参数;
步骤S2、判断是否进行内存训练,如果是,则进行步骤S3,否则直接跳转到步骤S4;
步骤S3、进行内存训练;
步骤S4、判断是否需要修改该内存配置参数,如果不需要继续修改,则跳转到步骤S7;
步骤S5、读取待修改的内存控制器的寄存器索引值和寄存器内容,并保存到处理器的内存控制器中;
步骤S6、跳转到步骤S4;以及
步骤S7、保存修改后的内存控制器的内容到闪存中。
2.如权利要求1所述的龙芯处理器内存控制器参数交互式调试的方法,其特征在于,判断进行内存训练的条件包括:
由用户输入进行内存训练指令;
处理器检测到工作环境温度变化超过一阈值;或
处理器检测到内存规格、型号或工作频率变化。
3.如权利要求2所述的龙芯处理器内存控制器参数交互式调试的方法,其特征在于,该阈值为30摄氏度。
4.如权利要求1所述的龙芯处理器内存控制器参数交互式调试的方法,其特征在于,该内存训练包括:
A1、定义寄存器的最小值和最大值;
A2、向内存地址中写入一个随机值,然后再从写入的地址读取内存内容,比较该随机值和该内存内容是否一致;
A3、如果一致则表示该寄存器的当前内容可以使用,则该寄存器的训练结束,否则继续进行操作:
在该寄存器的最小值和该寄存器的当前内容区间通过二分法计算新的该寄存器内容值,并更新该寄存器的最大值;在该寄存器的最小值和该寄存器的当前内容区间通过二分法计算另一新的该寄存器内容值,并更新该寄存器的最小值,并跳转步骤A2。
5.如权利要求1所述的龙芯处理器内存控制器参数交互式调试的方法,其特征在于,读取待修改的内存控制器的寄存器索引值和寄存器内容,并保存到处理器的内存控制器中,包括:
B1、从处理器串口读取用户输入的内存控制器索引值,如果该值大于180,则需要重新输入;
B2、从处理器串口读取用户输入的寄存器内容;以及
B3、将该用户输入的寄存器内容的值保存到该寄存器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410541886.0A CN104317612B (zh) | 2014-10-14 | 2014-10-14 | 龙芯处理器内存控制器参数交互式调试的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410541886.0A CN104317612B (zh) | 2014-10-14 | 2014-10-14 | 龙芯处理器内存控制器参数交互式调试的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104317612A true CN104317612A (zh) | 2015-01-28 |
CN104317612B CN104317612B (zh) | 2017-09-19 |
Family
ID=52372847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410541886.0A Active CN104317612B (zh) | 2014-10-14 | 2014-10-14 | 龙芯处理器内存控制器参数交互式调试的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104317612B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109960616A (zh) * | 2017-12-22 | 2019-07-02 | 龙芯中科技术有限公司 | 基于处理器的内存参数的调试方法及系统 |
CN110007970A (zh) * | 2019-03-04 | 2019-07-12 | 湖北三江航天万峰科技发展有限公司 | 一种COMe板的内核启动时长优化方法 |
CN110941454A (zh) * | 2019-11-08 | 2020-03-31 | 山东超越数控电子股份有限公司 | 一种实现内存自适应的方法及系统 |
CN112181867A (zh) * | 2020-09-29 | 2021-01-05 | 西安电子科技大学 | 基于多目标遗传算法的片上网络内存控制器布局方法 |
CN112596963A (zh) * | 2020-12-14 | 2021-04-02 | 成都海光集成电路设计有限公司 | 一种快速内存训练的方法及系统 |
CN112667407A (zh) * | 2021-01-18 | 2021-04-16 | 成都国科微电子有限公司 | 一种处理器参数调节方法、装置、电子设备及存储介质 |
CN114489817A (zh) * | 2021-12-28 | 2022-05-13 | 深圳市腾芯通智能科技有限公司 | 处理器启动方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120030540A1 (en) * | 2010-07-29 | 2012-02-02 | Stmicroelectronics (Grenoble) Sas | Ram memory device selectively protectable with ecc |
CN102508726A (zh) * | 2011-11-14 | 2012-06-20 | 福建星网锐捷网络有限公司 | 内存参数配置方法、处理器及设备 |
CN102637155A (zh) * | 2012-01-10 | 2012-08-15 | 江苏中科梦兰电子科技有限公司 | 通过训练加修正配置ddr3中数据选通信号延时的方法 |
-
2014
- 2014-10-14 CN CN201410541886.0A patent/CN104317612B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120030540A1 (en) * | 2010-07-29 | 2012-02-02 | Stmicroelectronics (Grenoble) Sas | Ram memory device selectively protectable with ecc |
CN102508726A (zh) * | 2011-11-14 | 2012-06-20 | 福建星网锐捷网络有限公司 | 内存参数配置方法、处理器及设备 |
CN102637155A (zh) * | 2012-01-10 | 2012-08-15 | 江苏中科梦兰电子科技有限公司 | 通过训练加修正配置ddr3中数据选通信号延时的方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109960616A (zh) * | 2017-12-22 | 2019-07-02 | 龙芯中科技术有限公司 | 基于处理器的内存参数的调试方法及系统 |
CN110007970A (zh) * | 2019-03-04 | 2019-07-12 | 湖北三江航天万峰科技发展有限公司 | 一种COMe板的内核启动时长优化方法 |
CN110941454A (zh) * | 2019-11-08 | 2020-03-31 | 山东超越数控电子股份有限公司 | 一种实现内存自适应的方法及系统 |
CN112181867A (zh) * | 2020-09-29 | 2021-01-05 | 西安电子科技大学 | 基于多目标遗传算法的片上网络内存控制器布局方法 |
CN112181867B (zh) * | 2020-09-29 | 2022-07-26 | 西安电子科技大学 | 基于多目标遗传算法的片上网络内存控制器布局方法 |
CN112596963A (zh) * | 2020-12-14 | 2021-04-02 | 成都海光集成电路设计有限公司 | 一种快速内存训练的方法及系统 |
CN112596963B (zh) * | 2020-12-14 | 2024-05-03 | 成都海光集成电路设计有限公司 | 一种快速内存训练的方法及系统 |
CN112667407A (zh) * | 2021-01-18 | 2021-04-16 | 成都国科微电子有限公司 | 一种处理器参数调节方法、装置、电子设备及存储介质 |
CN112667407B (zh) * | 2021-01-18 | 2023-09-19 | 成都国科微电子有限公司 | 一种处理器参数调节方法、装置、电子设备及存储介质 |
CN114489817A (zh) * | 2021-12-28 | 2022-05-13 | 深圳市腾芯通智能科技有限公司 | 处理器启动方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104317612B (zh) | 2017-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104317612A (zh) | 龙芯处理器内存控制器参数交互式调试的方法 | |
US10296217B2 (en) | Techniques to configure a solid state drive to operate in a storage mode or a memory mode | |
US10664252B2 (en) | Inserting implicit sequence points into computer program code to support debug operations | |
US8479176B2 (en) | Register mapping techniques for efficient dynamic binary translation | |
CN102662717A (zh) | 一种嵌入式系统自引导启动方法 | |
CN104484185A (zh) | 固件生成系统及方法 | |
CN105320553A (zh) | 一种基于国产处理器平台更新网卡固件的方法及系统 | |
CN103677885A (zh) | 一种arm flash简易程序烧写的方法 | |
CN102622249A (zh) | 一种防止cpu自锁的安全启动方法 | |
CN103677745B (zh) | 一种在龙芯主板中写入和读取设备标识的方法 | |
CN104156234A (zh) | 启动多核处理器、bootloader大小端模式自适应的方法及装置 | |
CN104063329B (zh) | 64位立即数处理方法及装置 | |
KR102128472B1 (ko) | 인-스토리지 컴퓨팅 동작들을 수행할 수 있는 스토리지 장치, 이의 동작 방법, 및 이를 포함하는 시스템 | |
CN108334413A (zh) | 一种基于飞腾平台的固件与操作系统之间信息传递方法 | |
CN102722382B (zh) | 仿真过程中加载表项的方法及仿真设备 | |
CN104866388A (zh) | 数据处理方法及装置 | |
CN105045718A (zh) | 基于Linux嵌入式系统的调试系统、方法及修改方法 | |
WO2024087607A1 (zh) | 闪存管理算法调试方法、系统、设备和可读存储介质 | |
CN104765626A (zh) | 一种固件程序烧写方法及装置 | |
US9981184B2 (en) | Method and system for invoking plug-in function | |
CN110515645A (zh) | 一种bios的功能更新的实现方法及相关装置 | |
CN102750167B (zh) | 应用程序启动方法、装置和计算机系统 | |
CN104571951A (zh) | Emmc/ufs卡及其提高emmc/ufs卡读性能的方法 | |
CN104166633A (zh) | 用于存储器访问保护的方法和系统 | |
CN104657165A (zh) | 服务器及其控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |