一种内存自适配方法及装置的制造方法

文档序号:8258245阅读:404来源:国知局
一种内存自适配方法及装置的制造方法
【技术领域】
[0001 ] 本发明属于计算机领域,尤其涉及一种内存自适配方法及装置。
【背景技术】
[0002]串行检测SI3D是SERIAL PRESENCE DETECT的缩写。内存的SI3D信息是一组关于内存模组的配置信息,通常存储在内存条上的一颗采用SOIC封装的8针的EEPROM芯片里,容量为256字节。sro芯片内记录了内存的许多重要信息,诸如地址选通脉冲延迟、行预充电时间、行寻址至列寻址延迟时间、行有效至行预充电时间、内存芯片及模组的生产厂商、额定工作频率、工作电压、速度、容量等参数。
[0003]目前的飞腾平台,固件会在EEPROM中预留一段空间,用于存放内存的STO信息,以下称为内存参数存储区。第一次开机时,固件辨别内存参数存储区的数据是空的,固件就会执行一次读取内存的sro信息,初始化微控制单元mcu,同时将内存的sro信息存放到内存参数存储区中,后续开机则直接使用内存参数存储区中的sro信息进行开机。但是在更换不相同的内存条以后,若还使用存储在内存参数存储区中的sro参数进行开机时,将会出现开机异常、程序运行异常,甚至档机等现象。所以在更换不同的内存条以后,需要手动操作,重新读取一次内存的sro信息,初始化mcu,操作繁琐,不灵活。

【发明内容】

[0004]本发明提供一种内存自适配方法及装置,以解决飞腾平台中更换不同的内存后首次开机启动操作繁琐的问题。
[0005]本发明是这样实现的,一种内存自适配方法,所述方法包括:
[0006]在检测到系统开机时,读取第一存储区中的串行检测sro信息;
[0007]判断读取的所述sro信息是否为缺省值;
[0008]若否,读取内存sro芯片的sro信息;
[0009]判断第一存储区中读取的sro信息和内存sro芯片上读取的sro信息是否相同;
[0010]若否,根据所述内存sro芯片上读取的sro信息,初始化微控制单元mcu ;
[0011]所述第一存储区为系统预先配置的电可擦可编程只读存储器中的存储空间。
[0012]本发明还提供一种内存自适配装置,所述装置包括:
[0013]第一读取单元,用于在检测到系统开机时,读取第一存储区中的串行检测sro信息;
[0014]缺省值判断单元,用于判断读取的所述sro信息是否为缺省值;
[0015]第二读取单元,用于在所述缺省值判断单元判断结果为否时,读取内存sro芯片的SPD信息;
[0016]第二判断单元,用于判断第一存储区中读取的sro信息和内存sro芯片上读取的SPD信息是否相同;
[0017]初始化单元,用于在所述第二判断单元判断结果为否时,根据所述内存sro芯片上读取的sro信息,初始化微控制单元Mcu ;
[0018]所述第一存储区为预先配置的电可擦可编程只读存储器中的存储空间。
[0019]在本发明中,通过判断第一存储区的sro信息是否为缺省值;若否,则读取内存SPD芯片的sro信息,判断所述内存sro芯片的sro信息和第一存储区中的sro信息是否相同;若不相同,则根据所述内存sro芯片的sro信息,初始化微控制单元mcu。从而完成了内存自适配,简化了飞腾平台中设备更换不同的内存后首次开机启动的操作,提升了用户体验。
【附图说明】
[0020]图1是本发明实施例提供的内存自适配方法的流程图;
[0021]图2是本发明实施例提供的内存自适配装置的结构图;
【具体实施方式】
[0022]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0023]本发明适用于飞腾平台,提供了一种内存自适配方法及装置。该方法基于SPARC架构,利用sro信息来分辨是否更换了不相同的内存。若是,则重新读取内存sro芯片上的SPD信息,初始化MCU ;否则,加载第一存储区中的sro信息,系统正常开机。从而完成了内存的自适配。
[0024]为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
[0025]图1示出了本发明实施例提供的内存自适配方法的流程,详述如下:
[0026]在步骤SlOl中,在检测到系统开机时,读取第一存储区中的串行检测sro信息;
[0027]在本实施例中,所述系统包括但不限于计算机系统、手机系统。
[0028]所述系统开机信息是指系统上电的开机信息。
[0029]所述串行检测SH)是SERIAL PRESENCE DETECT的缩写,SH)信息是一组关于内存模组的配置信息,通常存储在内存条上的一颗采用SOIC封装的8针的EEPROM芯片里,该芯片称为SPD芯片,容量为256字节。SPD芯片内记录了内存的许多重要信息,诸如内存类型、内存插槽类型、DRAM容量和内部bank数、DRAM行列地址线数目、DRAM最小时钟周期、内存芯片及模组的生产厂商、额定工作频率、工作电压、速度、容量等参数。
[0030]作为本发明的一个实施示例,固件预先配置了 16byte的EEPROM空间作为第一存储区,用于存放系统前一次开机时所使用的内存条的内存sro芯片上的sro信息。
[0031]在步骤S102中,判断读取的所述sro信息是否为缺省值;
[0032]在本实施例中,所述缺省值为预先配置。缺省值是指系统第一次开机以前,第一存储区里存储的初始值,通常设置为全零。
[0033]进行缺省值判断,是为了识别系统是否为首次开机;若为首次开机,第一存储区上为全零的缺省值;否则,第一存储区上为系统前一次开机时所使用的内存条的内存sro芯片上的sro信息。
[0034]判断读取的所述sro信息是否为缺省值。判断结果为是时,则读取内存SPD芯片的sro信息,执行步骤S105 ;否则,执行步骤S103。
[0035]在步骤S103中,读取内存SPD芯片的SH)信息;
[0036]在本实施例中,内存SPD芯片是指系统当前所使用的内存的SPD芯片。
[0037]在步骤S104中,判断第一存储区中读取的SPD信息和内存SPD芯片上读取的SPD息是否相同。
[0038]作为本发明的一个实施示例,固件预留了一个EEPROM空间作为临时区,用于在读取内存sro芯片上的sro信息后,存储所述sro信息。
[0039]对第一存储区中读取的sro信息和内存sro芯片上的sro信息是否相同进行判断,是为了判断是否更换了不同的内存。判断结果为相同时,表示没有更换内存条或者更换了完全相同的内存条,sro信息不变;若判断结果为不相同时,表示更换了不相同的内存条。
[0040]在本实施例中,判断所述内存sro芯片的sro信息和第一存储区中sro信息是否相同;若是,则执行步骤S106 ;否则,执行步骤S105。
[0041]在步骤S105中,根据所述内存sro芯片上读取的sro信息,初始化微控制单元MCU ;
[0042]作为本发明的一个实施示例,所述根据所述内存sro芯片上读取的sro信息,初始化微控制单元MCU步骤是指在飞腾平台中,固件执行memory leveling操作。B1S利用sro信息中的模块大小、数据宽度、速度以及电压等信息来合适配置内存以达到最好的性能和可靠性。
[0043]进一步地,所述步骤S105后还包括:
[0044]将所述内存sro芯片的sro信息更新到所述第一存储区中。
[0045]在MCU初始化结束后,系统正常开机。
[0046]在步骤S106中,加载第一存储区中的sro信息,系统正常开机;
[0047]
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1