CN104572365A - 一种内存自适配方法及装置 - Google Patents
一种内存自适配方法及装置 Download PDFInfo
- Publication number
- CN104572365A CN104572365A CN201310493224.6A CN201310493224A CN104572365A CN 104572365 A CN104572365 A CN 104572365A CN 201310493224 A CN201310493224 A CN 201310493224A CN 104572365 A CN104572365 A CN 104572365A
- Authority
- CN
- China
- Prior art keywords
- spd
- memory
- information
- spd information
- chip
- 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
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明适用于计算机领域,提供了一种内存自适配方法及装置,所述方法包括下述步骤:在检测到系统开机时,读取第一存储区中的串行检测SPD信息;判断读取的所述SPD信息是否为缺省值;若否,读取内存SPD芯片的SPD信息;判断第一存储区中读取的SPD信息和内存SPD芯片上读取的SPD信息是否相同;若否,根据所述内存SPD芯片上读取的SPD信息,初始化微控制单元MCU;所述第一存储区为预先配置的电可擦可编程只读存储器中的存储空间。本发明通过利用SPD信息来进行内存自适配,从而简化了飞腾平台中设备更换不同的内存后首次开机启动时的操作。
Description
技术领域
本发明属于计算机领域,尤其涉及一种内存自适配方法及装置。
背景技术
串行检测SPD是SERIAL PRESENCE DETECT的缩写。内存的SPD信息是一组关于内存模组的配置信息,通常存储在内存条上的一颗采用SOIC封装的8针的EEPROM芯片里,容量为256字节。SPD芯片内记录了内存的许多重要信息,诸如地址选通脉冲延迟、行预充电时间、行寻址至列寻址延迟时间、行有效至行预充电时间、内存芯片及模组的生产厂商、额定工作频率、工作电压、速度、容量等参数。
目前的飞腾平台,固件会在EEPROM中预留一段空间,用于存放内存的SPD信息,以下称为内存参数存储区。第一次开机时,固件辨别内存参数存储区的数据是空的,固件就会执行一次读取内存的SPD信息,初始化微控制单元MCU,同时将内存的SPD信息存放到内存参数存储区中,后续开机则直接使用内存参数存储区中的SPD信息进行开机。但是在更换不相同的内存条以后,若还使用存储在内存参数存储区中的SPD参数进行开机时,将会出现开机异常、程序运行异常,甚至档机等现象。所以在更换不同的内存条以后,需要手动操作,重新读取一次内存的SPD信息,初始化MCU,操作繁琐,不灵活。
发明内容
本发明提供一种内存自适配方法及装置,以解决飞腾平台中更换不同的内存后首次开机启动操作繁琐的问题。
本发明是这样实现的,一种内存自适配方法,所述方法包括:
在检测到系统开机时,读取第一存储区中的串行检测SPD信息;
判断读取的所述SPD信息是否为缺省值;
若否,读取内存SPD芯片的SPD信息;
判断第一存储区中读取的SPD信息和内存SPD芯片上读取的SPD信息是否相同;
若否,根据所述内存SPD芯片上读取的SPD信息,初始化微控制单元MCU;
所述第一存储区为系统预先配置的电可擦可编程只读存储器中的存储空间。
本发明还提供一种内存自适配装置,所述装置包括:
第一读取单元,用于在检测到系统开机时,读取第一存储区中的串行检测SPD信息;
缺省值判断单元,用于判断读取的所述SPD信息是否为缺省值;
第二读取单元,用于在所述缺省值判断单元判断结果为否时,读取内存SPD芯片的SPD信息;
第二判断单元,用于判断第一存储区中读取的SPD信息和内存SPD芯片上读取的SPD信息是否相同;
初始化单元,用于在所述第二判断单元判断结果为否时,根据所述内存SPD芯片上读取的SPD信息,初始化微控制单元MCU;
所述第一存储区为预先配置的电可擦可编程只读存储器中的存储空间。
在本发明中,通过判断第一存储区的SPD信息是否为缺省值;若否,则读取内存SPD芯片的SPD信息,判断所述内存SPD芯片的SPD信息和第一存储区中的SPD信息是否相同;若不相同,则根据所述内存SPD芯片的SPD信息,初始化微控制单元MCU。从而完成了内存自适配,简化了飞腾平台中设备更换不同的内存后首次开机启动的操作,提升了用户体验。
附图说明
图1是本发明实施例提供的内存自适配方法的流程图;
图2是本发明实施例提供的内存自适配装置的结构图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明适用于飞腾平台,提供了一种内存自适配方法及装置。该方法基于SPARC架构,利用SPD信息来分辨是否更换了不相同的内存。若是,则重新读取内存SPD芯片上的SPD信息,初始化MCU;否则,加载第一存储区中的SPD信息,系统正常开机。从而完成了内存的自适配。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1示出了本发明实施例提供的内存自适配方法的流程,详述如下:
在步骤S101中,在检测到系统开机时,读取第一存储区中的串行检测SPD信息;
在本实施例中,所述系统包括但不限于计算机系统、手机系统。
所述系统开机信息是指系统上电的开机信息。
所述串行检测SPD是SERIAL PRESENCE DETECT的缩写,SPD信息是一组关于内存模组的配置信息,通常存储在内存条上的一颗采用SOIC封装的8针的EEPROM芯片里,该芯片称为SPD芯片,容量为256字节。SPD芯片内记录了内存的许多重要信息,诸如内存类型、内存插槽类型、DRAM容量和内部bank数、DRAM行列地址线数目、DRAM最小时钟周期、内存芯片及模组的生产厂商、额定工作频率、工作电压、速度、容量等参数。
作为本发明的一个实施示例,固件预先配置了16byte的EEPROM空间作为第一存储区,用于存放系统前一次开机时所使用的内存条的内存SPD芯片上的SPD信息。
在步骤S102中,判断读取的所述SPD信息是否为缺省值;
在本实施例中,所述缺省值为预先配置。缺省值是指系统第一次开机以前,第一存储区里存储的初始值,通常设置为全零。
进行缺省值判断,是为了识别系统是否为首次开机;若为首次开机,第一存储区上为全零的缺省值;否则,第一存储区上为系统前一次开机时所使用的内存条的内存SPD芯片上的SPD信息。
判断读取的所述SPD信息是否为缺省值。判断结果为是时,则读取内存SPD芯片的SPD信息,执行步骤S105;否则,执行步骤S103。
在步骤S103中,读取内存SPD芯片的SPD信息;
在本实施例中,内存SPD芯片是指系统当前所使用的内存的SPD芯片。
在步骤S104中,判断第一存储区中读取的SPD信息和内存SPD芯片上读取的SPD信息是否相同。
作为本发明的一个实施示例,固件预留了一个EEPROM空间作为临时区,用于在读取内存SPD芯片上的SPD信息后,存储所述SPD信息。
对第一存储区中读取的SPD信息和内存SPD芯片上的SPD信息是否相同进行判断,是为了判断是否更换了不同的内存。判断结果为相同时,表示没有更换内存条或者更换了完全相同的内存条,SPD信息不变;若判断结果为不相同时,表示更换了不相同的内存条。
在本实施例中,判断所述内存SPD芯片的SPD信息和第一存储区中SPD信息是否相同;若是,则执行步骤S106;否则,执行步骤S105。
在步骤S105中,根据所述内存SPD芯片上读取的SPD信息,初始化微控制单元MCU;
作为本发明的一个实施示例,所述根据所述内存SPD芯片上读取的SPD信息,初始化微控制单元MCU步骤是指在飞腾平台中,固件执行memoryleveling操作。BIOS利用SPD信息中的模块大小、数据宽度、速度以及电压等信息来合适配置内存以达到最好的性能和可靠性。
进一步地,所述步骤S105后还包括:
将所述内存SPD芯片的SPD信息更新到所述第一存储区中。
在MCU初始化结束后,系统正常开机。
在步骤S106中,加载第一存储区中的SPD信息,系统正常开机;
在本发明实施例中,通过判断第一存储区中的SPD信息是否为缺省值来确定系统是否为首次开机;当第一存储区中的SPD信息不为缺省值时,表示系统为非首次开机,读取内存SPD芯片的SPD信息,并判断所述内存SPD芯片的SPD信息与第一存储区中的SPD信息是否相同;在判断结果为不相同时,表示更换了不同的内存条,根据所述内存SPD芯片上的SPD信息,初始化MCU;初始化结束后,系统正常开机。从而完成了内存自适配,简化了飞腾平台中设备更换不同的内存后首次开机启动的操作,省去了用户手动读取内存SPD信息的步骤,提升了用户体验。
图2示出了本发明实施例提供的内存自适配装置的结构。该装置主要应用于飞腾平台,适用于平板电脑、笔记本电脑和台式计算机,用于运行本发明图1实施例所述的内存自适配方法。为了便于说明,仅示出了与本实施例相关的部分。
参照图2,该装置包括:
第一读取单元21,读取第一存储区中的串行检测SPD信息;
作为本发明的一个实施示例,固件预留了16byte的EEPROM空间作为第一存储区,用于存放系统前一次开机时所使用的内存条的内存SPD芯片上的SPD信息。
缺省值判断单元22,判断读取的所述SPD信息是否为缺省值;
所述缺省值预先配置。缺省值是指系统第一次开机前,第一存储区里存储的初始值,通常设置为全零。
第二读取单元23,用于在所述缺省值判断单元判断结果为否时,读取内存SPD芯片上的SPD信息。
第二判断单元24,用于判断第一存储区中读取的SPD信息和内存SPD芯片上读取的SPD信息是否相同。
对第一存储区中读取的SPD信息和内存SPD芯片上的SPD信息是否相同进行判断,是为了判断是否更换了不同的内存。判断结果为相同时,表示没有更换内存条或者更换了完全相同的内存条,SPD信息不变;若判断结果为不相同时,表示更换了不相同的内存条。
初始化单元25,用于在所述第二判断单元判断结果为否时,根据所述内存SPD芯片上读取的SPD信息,初始化微控制单元MCU;
作为本发明的一个实施示例,所述根据所述内存SPD芯片上读取的SPD信息,初始化MCU是指在飞腾平台中,固件执行memory leveling操作。BIOS利用SPD信息中的模块大小、数据宽度、速度以及电压等信息来合适配置内存以达到最好的性能和可靠性。
进一步地,所述初始化单元25还用于:
在所述第一存储区中的SPD信息为缺省值时,根据所述内存SPD芯片上读取的SPD信息,初始化MCU。
进一步地,所述初始化单元25还用于:
将所述内存SPD芯片上的SPD信息更新到所述第一存储区中。
MCU初始化结束后,系统正常开机。
加载单元26,在所述内存SPD芯片上的SPD信息和第一存储区中的SPD信息相同时,加载第一存储区中的SPD信息。
SPD信息加载结束后,系统正常开机。
在本发明实施例中,通过判断第一存储区中的SPD信息是否为缺省值来确定系统是否为首次开机;在判断第一存储区中的SPD信息不为缺省值时,系统为非首次开机,则读取内存SPD芯片的SPD信息,并判断所述内存SPD芯片的SPD信息和第一存储区中的SPD信息是否相同;在判断结果为不相同时,表示更换了不同的内存条,则根据所述内存SPD芯片的SPD信息初始化MCU,MCU初始化结束后,系统正常开机。从而完成了内存自适配,简化了飞腾平台中设备更换不同的内存后首次开机启动的操作,省去了用户手动读取内存SPD信息的步骤,提升了用户体验。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种内存自适配方法,其特征在于,所述方法包括:
在检测到系统开机时,读取第一存储区中的串行检测SPD信息;
判断读取的所述SPD信息是否为缺省值;
若否,读取内存SPD芯片的SPD信息;
判断第一存储区中读取的SPD信息和内存SPD芯片上读取的SPD信息是否相同;
若否,根据所述内存SPD芯片上读取的SPD信息,初始化微控制单元MCU;
所述第一存储区为预先配置的电可擦可编程只读存储器中的存储空间。
2.如权利要求1所述的内存自适配方法,其特征在于,所述缺省值为系统第一次开机以前,第一存储区存储的初始值。
3.如权利要求1所述的内存自适配方法,其特征在于,所述方法进一步包括:
在所述第一存储区中的SPD信息为缺省值时,读取内存SPD芯片的SPD信息,初始化微控制单元MCU。
4.如权利要求1所述的内存自适配方法,其特征在于,所述方法进一步包括:
在所述内存SPD芯片的SPD信息和第一存储区中的SPD信息相同时,加载第一存储区中的SPD信息。
5.如权利要求1所述的内存自适配方法,其特征在于,所述根据所述内存SPD芯片上读取的SPD信息,初始化微控制单元MCU的步骤之后还包括:
将所述内存SPD芯片上读取的SPD信息更新到所述第一存储区中。
6.一种内存自适配装置,其特征在于,所述装置包括:
第一读取单元,用于在检测到系统开机时,读取第一存储区中的串行检测SPD信息;
缺省值判断单元,用于判断读取的所述SPD信息是否为缺省值;
第二读取单元,用于在所述缺省值判断单元判断结果为否时,读取内存SPD芯片的SPD信息;
第二判断单元,用于判断第一存储区中读取的SPD信息和内存SPD芯片上读取的SPD信息是否相同;
初始化单元,用于在所述第二判断单元判断结果为否时,根据所述内存SPD芯片上读取的SPD信息,初始化微控制单元MCU;
所述第一存储区为预先配置的电可擦可编程只读存储器中的存储空间。
7.如权利要求6所述的内存自适配装置,其特征在于,所述缺省值为系统第一次开机以前,第一存储区存储的初始值。
8.如权利要求6所述的内存自适配装置,其特征在于,所述初始化单元还用于:
在所述第一存储区中的SPD信息为缺省值时,根据所述内存SPD芯片上读取的SPD信息,初始化微控制单元MCU。
9.如权利要求6所述的内存自适配装置,其特征在于,所述装置还包括:
加载单元,用于在所述内存SPD芯片上的SPD信息和第一存储区中的SPD信息相同时,加载第一存储区中的SPD信息。
10.如权利要求6所述的内存自适配装置,其特征在于,所述初始化单元还用于:
将所述内存SPD芯片上读取的SPD信息更新到所述第一存储区中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310493224.6A CN104572365B (zh) | 2013-10-18 | 2013-10-18 | 一种内存自适配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310493224.6A CN104572365B (zh) | 2013-10-18 | 2013-10-18 | 一种内存自适配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572365A true CN104572365A (zh) | 2015-04-29 |
CN104572365B CN104572365B (zh) | 2017-12-01 |
Family
ID=53088500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310493224.6A Active CN104572365B (zh) | 2013-10-18 | 2013-10-18 | 一种内存自适配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572365B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107451023A (zh) * | 2017-08-18 | 2017-12-08 | 济南浪潮高新科技投资发展有限公司 | 一种基于uboot的内存自适配方法 |
CN107957925A (zh) * | 2016-10-17 | 2018-04-24 | 佛山市顺德区顺达电脑厂有限公司 | 用于计算机装置的系统信息存取方法 |
CN110941454A (zh) * | 2019-11-08 | 2020-03-31 | 山东超越数控电子股份有限公司 | 一种实现内存自适应的方法及系统 |
WO2023060893A1 (zh) * | 2021-10-12 | 2023-04-20 | 深圳市广和通无线股份有限公司 | 存储空间管理方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588326A (zh) * | 2004-09-21 | 2005-03-02 | 威盛电子股份有限公司 | 动态随机存取存储器初始化设定架构及方法 |
CN1797360A (zh) * | 2004-12-30 | 2006-07-05 | 英业达股份有限公司 | 内存可靠性检测系统以及方法 |
CN1959638A (zh) * | 2005-10-31 | 2007-05-09 | 株式会社东芝 | 计算机系统中存储器初始化的方法和设备 |
CN101078991A (zh) * | 2006-05-23 | 2007-11-28 | 环达电脑(上海)有限公司 | 基于bios读写内存spd的计算机系统信息保存和读取方法 |
US20080301715A1 (en) * | 2007-05-31 | 2008-12-04 | Fujitsu Limited | Information processing apparatus, failure notification circuit, and failure notification method |
CN101676872A (zh) * | 2008-09-19 | 2010-03-24 | 刘杰 | 一种固态硬盘的结构及其加速初始化的方法 |
JP2011227646A (ja) * | 2010-04-19 | 2011-11-10 | Mitsubishi Electric Corp | 計算機の診断装置及び診断方法 |
CN102929752A (zh) * | 2012-09-13 | 2013-02-13 | 曙光信息产业(北京)有限公司 | 一种服务器开机前内存信息的检测方法 |
CN103197933A (zh) * | 2012-01-06 | 2013-07-10 | 华硕电脑股份有限公司 | 计算机及其快速启动方法 |
-
2013
- 2013-10-18 CN CN201310493224.6A patent/CN104572365B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588326A (zh) * | 2004-09-21 | 2005-03-02 | 威盛电子股份有限公司 | 动态随机存取存储器初始化设定架构及方法 |
CN1797360A (zh) * | 2004-12-30 | 2006-07-05 | 英业达股份有限公司 | 内存可靠性检测系统以及方法 |
CN1959638A (zh) * | 2005-10-31 | 2007-05-09 | 株式会社东芝 | 计算机系统中存储器初始化的方法和设备 |
CN101078991A (zh) * | 2006-05-23 | 2007-11-28 | 环达电脑(上海)有限公司 | 基于bios读写内存spd的计算机系统信息保存和读取方法 |
US20080301715A1 (en) * | 2007-05-31 | 2008-12-04 | Fujitsu Limited | Information processing apparatus, failure notification circuit, and failure notification method |
CN101676872A (zh) * | 2008-09-19 | 2010-03-24 | 刘杰 | 一种固态硬盘的结构及其加速初始化的方法 |
JP2011227646A (ja) * | 2010-04-19 | 2011-11-10 | Mitsubishi Electric Corp | 計算機の診断装置及び診断方法 |
CN103197933A (zh) * | 2012-01-06 | 2013-07-10 | 华硕电脑股份有限公司 | 计算机及其快速启动方法 |
CN102929752A (zh) * | 2012-09-13 | 2013-02-13 | 曙光信息产业(北京)有限公司 | 一种服务器开机前内存信息的检测方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107957925A (zh) * | 2016-10-17 | 2018-04-24 | 佛山市顺德区顺达电脑厂有限公司 | 用于计算机装置的系统信息存取方法 |
CN107451023A (zh) * | 2017-08-18 | 2017-12-08 | 济南浪潮高新科技投资发展有限公司 | 一种基于uboot的内存自适配方法 |
CN107451023B (zh) * | 2017-08-18 | 2019-12-03 | 浪潮集团有限公司 | 一种基于uboot的内存自适配方法 |
CN110941454A (zh) * | 2019-11-08 | 2020-03-31 | 山东超越数控电子股份有限公司 | 一种实现内存自适应的方法及系统 |
WO2023060893A1 (zh) * | 2021-10-12 | 2023-04-20 | 深圳市广和通无线股份有限公司 | 存储空间管理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104572365B (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100914265B1 (ko) | 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및그것의 읽기 방법 | |
WO2012030547A1 (en) | Handling errors during device bootup from a non-volatile memory | |
CN104572365A (zh) | 一种内存自适配方法及装置 | |
CN103823642A (zh) | 用于Flash均衡存储的方法及系统 | |
CN105224425B (zh) | 一种存储芯片的数据保护电路及其方法 | |
CN102004706A (zh) | 一种基于ftl的闪存擦写掉电保护方法 | |
CN102622249A (zh) | 一种防止cpu自锁的安全启动方法 | |
JP2005284700A (ja) | メモリカード | |
CN102736932B (zh) | 镜像文件、镜像文件的制作方法及多系统的启动引导方法 | |
CN102902566A (zh) | 一种应用软件的安装及启动方法和装置 | |
CN102184117A (zh) | 系统在不同类型的Nandflash上的启动方法及装置 | |
US8988951B2 (en) | Method and device for writing block data to an embedded DRAM free of address conflicts | |
CN103399520B (zh) | 用于可编程逻辑控制器系统的掉电数据存取方法及装置 | |
CN103226505A (zh) | 一种校验基本输入输出系统bios的方法及设备 | |
CN103150184B (zh) | 一种对闪存进行操作的方法和系统芯片 | |
CN102135943A (zh) | 闪存数据的存储、访问方法及装置 | |
CN110399168A (zh) | 多数据盘存储服务器的系统启动方法、装置及设备 | |
CN106503542A (zh) | 设备参数防改写方法、设备和空调器 | |
CN106649131B (zh) | 一种固态硬盘及其逻辑地址范围冲突监控方法、系统 | |
CN106030544A (zh) | 计算机设备内存的检测方法和计算机设备 | |
CN110347444A (zh) | 一种ssd多状态切换的启动方法及其系统 | |
CN101950256A (zh) | 一种嵌入式系统及嵌入式系统重新启动的方法 | |
CN111402943B (zh) | 减少非型闪存读操作泵面积方法、系统、储存介质和终端 | |
CN104750617A (zh) | 电子装置及其数据维护方法 | |
US20060288154A1 (en) | Data clearing methods and computer systems utilizing the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 518057 computer building of the Great Wall, Nanshan District science and Technology Park, Shenzhen, Guangdong Applicant after: China the Great Wall science and technology group Limited by Share Ltd Address before: 518057 computer building of the Great Wall, Nanshan District science and Technology Park, Shenzhen, Guangdong Applicant before: China Changcheng Computer Shenzhen Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |