龙芯处理器内存控制器参数交互式调试的方法

文档序号:6630143阅读:545来源:国知局
龙芯处理器内存控制器参数交互式调试的方法
【专利摘要】本发明公开了一种龙芯处理器内存控制器参数交互式调试的方法,其包括:步骤S1、加载基础内存配置参数;步骤S2、判断是否进行内存训练,如果是,则进行步骤S3,否则直接跳转到步骤S4;步骤S3、进行内存训练;步骤S4、判断是否需要修改该内存配置参数,如果不需要继续修改,则跳转到步骤S7;步骤S5、读取待修改的内存控制器的寄存器索引值和寄存器内容,并保存到处理器的内存控制器中;步骤S6、跳转到步骤S4;以及步骤S7、保存修改后的内存控制器的内容到闪存中。
【专利说明】龙芯处理器内存控制器参数交互式调试的方法

【技术领域】
[0001]本发明属于龙芯处理器【技术领域】,尤其涉及一种龙龙芯处理器内存控制器调试的方法。

【背景技术】
[0002]随着龙芯处理器的性能、稳定性的逐步提升以及国家对国产化事业的推进和扶持,基于龙芯处理器的计算机开始在各个行业推广应用。由于龙芯处理器与商用X86处理的架构不同,该处理器内部集成内存控制器,而内存控制器的稳定性和性能很大程度上影响计算机整机的性能能稳定性,当计算机主板上处理器与内存插槽的布局改变或计算机应用环境改变时,为了保证整机的高效、稳定运行,内存控制器的配置参数需要做相应的调難
iF.0
[0003]龙芯处理器中的内存控制器参数调试中,现有技术均采用编译烧写的方法进行调试。编译烧写方法的具体实现是,修改固件源码中内存控制器的参数,然后重新编译固件,使用烧写工具将生成的固件文件烧写到Flash芯片中,重新开机上电,启动过程中观察参数是否运行正常。
[0004]由于现有的编译烧写方法需要重复的进行固件源码的修改、编译、烧写的过程,才能进行内存参数的调试。在实际操作中调试过程不灵活,效果不理想,调试效率不高。


【发明内容】

[0005]本发明的目的是提供一种龙芯处理器内存控制器参数交互式调试的方法,能够实现交互式的内存控制参数的调试,以解决现有的内存控制器参数调试的方法调试过程中不灵活,效率不高的缺陷。
[0006]本发明涉及一种龙芯处理器内存控制器参数交互式调试的方法,包括:步骤S1、加载基础内存配置参数;步骤S2、判断是否进行内存训练,如果是,则进行步骤S3,否则直接跳转到步骤S4 ;步骤S3、进行内存训练;步骤S4、判断是否需要修改该内存配置参数,如果不需要继续修改,则跳转到步骤S7;步骤S5、读取待修改的内存控制器的寄存器索引值和寄存器内容,并保存到处理器的内存控制器中;步骤S6、跳转到步骤S4 ;以及步骤S7、保存修改后的内存控制器的内容到闪存中。
[0007]根据本发明的龙芯处理器内存控制器参数交互式调试的方法的一实施例,其中,判断进行内存训练的条件包括:由用户输入进行内存训练指令;处理器检测到工作环境温度变化超过一阈值;或处理器检测到内存规格、型号或工作频率变化。
[0008]根据本发明的龙芯处理器内存控制器参数交互式调试的方法的一实施例,其中,该阈值为30摄氏度。
[0009]根据本发明的龙芯处理器内存控制器参数交互式调试的方法的一实施例,其中,该内存训练包括:A1、定义寄存器的最小值和最大值;A2、向内存地址中写入一个随机值,然后再从写入的地址读取内存内容,比较该随机值和该内存内容是否一致;A3、如果一致则表示该寄存器的当前内容可以使用,则该寄存器的训练结束,否则继续进行操作:在该寄存器的最小值和该寄存器的当前内容区间通过二分法计算新的该寄存器内容值,并更新该寄存器的最大值;在该寄存器的最小值和该寄存器的当前内容区间通过二分法计算另一新的该寄存器内容值,并更新该寄存器的最小值,并跳转步骤A2。
[0010]根据本发明的龙芯处理器内存控制器参数交互式调试的方法的一实施例,其中,读取待修改的内存控制器的寄存器索弓I值和寄存器内容,并保存到处理器的内存控制器中,包括:B1、从处理器串口读取用户输入的内存控制器索引值,如果该值大于180,则需要重新输入;B2、从处理器串口读取用户输入的寄存器内容;以及B3、将该用户输入的寄存器内容的值保存到该寄存器中。
[0011]综上,本发明的龙芯处理器内存控制器参数交互式调试的方法,能够实现交互式的内存控制参数的调试,克服了现有调试过程中不灵活,效率不高的缺陷。且龙芯处理器内存控制器参数交互式调试在启动过程中根据用户输入来动态调整内存控制器配置参数的途径,避免了重新编译烧写固件的过程,加快了内存参数调试的效率和灵活性。

【专利附图】

【附图说明】
[0012]图1是本发明龙芯处理器内存控制器参数交互式调试的方法的流程图。

【具体实施方式】
[0013]下面通过具体实例对本发明作进一步的详述,以下实施例只是描述性的,非限定性,不能以此限定本发明的保护范围。
[0014]本发明龙芯处理器内存控制器参数交互式调试的方法,主要是根据龙芯内存控制器的寄存器索引值,对龙芯内存控制器的寄存器内容进行修改。内存控制器的寄存器索引是指内存控制器寄存器在内存控制器中的地址偏移量,如第一个寄存器索引值为O、第二个为1、以此类推,龙芯内存控制器总共包含180个寄存器;内存控制器的寄存器内容是指一个8字节的16进制常量值。
[0015]图1是本发明龙芯处理器内存控制器参数交互式调试的方法的流程图。如图1所示,本发明龙芯处理器内存控制器参数交互式调试的方法包括:
[0016]步骤S1、加载基础内存配置参数。基础内存配置参数包括:源码中对内存控制器的每一个寄存器设定的8字节常量值,并按照寄存器的索引序号存放在源文件中,编译烧写到Flash之后,处理器按照寄存器索引值从Flash中依次读取并写入到内存控制器的对应寄存器中;
[0017]步骤S2、判断是否进行内存训练。如果满足以下任何一种条件则进行内存训练,否则直接跳转到步骤S4 ;上述的条件包括:
[0018]由用户直接指示;例如由用户通过处理器串口输入字符’ I’ ;
[0019]处理器检测到工作环境温度变化超过一定阈值,例如30摄氏度;
[0020]满足此情况时,还通过处理器内部的温度寄存器值与Flash中保存的上一次启动时的温度进行比较判定,然后保存当前的温度值到Flash中;
[0021]处理器检测到内存规格,型号以及工作频率变化;
[0022]满足此情况时,还通过读取当前的内存规格、型号、工作频率与Flash中保存的上一次启动时的值进行比较是否一致,然后保存当前的值到Flash中。
[0023]步骤S3、进行内存训练。该内存训练是对内存控制器的寄存器内容进行动态调整,以达到内存读写稳定的目的。以训练寄存器RA为例,其当前内容SV_RA,主要包含:
[0024]Al、定义寄存器RA的最小值V_RA_MIN和最大值V_RA_MAX ;
[0025]A2、向内存地址M_ADDR中写入一个随机值M_W,然后再从写入的地址读取内存内容M_R,比较M_W和M_R是否一致;
[0026]A3、如果一致则表示V_RA可以使用,则寄存器RA的训练结束,否则继续操作;
[0027]先在V_RA_MIN和V_RA区间通过二分法计算新的V_RA值,并更新V_RA_MAX ;然后再在V_RA和V_RA_MAX区间通过二分法计算新的V_RA值,并更新V_RA_MIN,跳转步骤A2。
[0028]步骤S4、判断是否需要修改内存配置参数。通过处理器串口读取用户输入的数据,如果输入为0,表示不需要继续修改,则跳转到步骤S7,其他值则继续进行下面的步骤;
[0029]步骤S5、读取待修改的内存控制器的寄存器索引值和寄存器内容,并保存到处理器的内存控制器中;包括:
[0030]B1、从处理器串口读取用户输入的内存控制器索引值IDX,如果该值大于180,则重新输入;
[0031]B2、从处理器串口读取用户输入的寄存器内容V_NEW,该值为8个字节的16进制数;
[0032]B3、将V_NEW的值保存到IDX寄存器中。
[0033]步骤S6、跳转到步骤S4,并循环进行上述的处理过程;
[0034]步骤S7、保存修改后的内存控制器内容到Flash中,正常启动。
[0035]系统启动后,在操作系统中验证内存运行是否稳定,如果不稳定只需要重启系统,重新设置新的参数即可,而不需要编译和烧写固件。
[0036]综上,本发明的龙芯处理器内存控制器参数交互式调试的方法,能够实现交互式的内存控制参数的调试,克服了现有调试过程中不灵活,效率不高的缺陷。且龙芯处理器内存控制器参数交互式调试在启动过程中根据用户输入来动态调整内存控制器配置参数的途径,避免了重新编译烧写固件的过程,加快了内存参数调试的效率和灵活性。
[0037]虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离本发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在所附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为所附权利要求所涵盖。
【权利要求】
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、将该用户输入的寄存器内容的值保存到该寄存器中。
【文档编号】G06F9/445GK104317612SQ201410541886
【公开日】2015年1月28日 申请日期:2014年10月14日 优先权日:2014年10月14日
【发明者】濮约刚, 赵立伟, 孙大东, 杨帆 申请人:中国航天科工集团第二研究院七〇六所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1