CN110941454A - 一种实现内存自适应的方法及*** - Google Patents
一种实现内存自适应的方法及*** Download PDFInfo
- Publication number
- CN110941454A CN110941454A CN201911085325.3A CN201911085325A CN110941454A CN 110941454 A CN110941454 A CN 110941454A CN 201911085325 A CN201911085325 A CN 201911085325A CN 110941454 A CN110941454 A CN 110941454A
- Authority
- CN
- China
- Prior art keywords
- memory
- module
- manufacturer
- spd information
- firmware
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 260
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012360 testing method Methods 0.000 claims description 33
- 238000012549 training Methods 0.000 claims description 28
- 230000006978 adaptation Effects 0.000 claims description 14
- 238000011161 development Methods 0.000 abstract description 4
- 238000012423 maintenance Methods 0.000 abstract description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种实现国产平台内存自适应的方法及***,属于国产平台计算机固件设计技术领域。本发明的实现国产平台内存自适应的方法,该方法通过读取内存SPD信息,判断当前使用的内存厂家,根据不同的厂家加载适配好的内存参数,每个国产平台根据一版固件完成对多家内存的自适应。该发明的实现国产平台内存自适应的方法不需要针对每种内存适配一版固件,不仅简化了固件开发过程,而且将大大降低后续对固件程序的维护成本,具有很好的推广应用价值。
Description
技术领域
本发明涉及国产平台计算机固件设技术领域,具体提供一种实现内存自适应的方法及***。
背景技术
随着国家对信息安全的重视,计算机的国产化成为主要的发展趋势,由于国产平台技术较国外起步晚、技术不够成熟,因此国产平台在硬件兼容性方面尚存在许多问题,例如,国产平台对内存的兼容较x86平台有较大差距。x86 平台有一套成熟的内存训练算法,通过读取内存中的SPD信息,可以自动完成对不同厂家内存的训练工作,无需人为参与;而国产平台针对不同厂家的内存,往往无法通过SPD信息完成对内存的训练工作,需要手动对内存参数进行适配,且每版固件对应的内存参数只能对一种内存完成内存训练,当一款国产平台需要兼容多种内存时,需要多版固件与之对应,这不仅增加了固件调试难度,更增加了产品固件维护的难度。
发明内容
本发明的技术任务是针对上述存在的问题,提供一种不需要针对每种内存适配一版固件,不仅简化了固件开发过程,而且将大大降低后续对固件程序的维护成本的实现内存自适应的方法。
本发明进一步的技术任务是提供一种实现内存自适应的***。
为实现上述目的,本发明提供了如下技术方案:
一种实现内存自适应的方法,该方法通过读取内存SPD信息,判断当前使用的内存厂家,根据不同的厂家加载适配好的内存参数,每个国产平台根据一版固件完成对多家内存的自适应。
SPD即Serial Presence Detect,串行检测。
作为优选,该实现内存自适应的方法具体包括以下步骤:
S1、读取内存SPD信息;
S2、通过读取的内存SPD信息判断内存厂家;
S3、根据内存厂家信息,加载相应的内存参数;
S4、将内存参数写入内存控制器中;
S5、启动内存训练过程;
S6、对内存进行读写测试,若测试通过执行步骤S7,否则返回步骤S5;
S7、结束。
步骤S4中,将内存参数写入内存控制器的寄存器中。
该实现内存自适应的方法通过该实现内存自适应的***来实现。该实现内存自适应的***包括内存SPD信息读取模块、内存厂家判断模块、内存参数加载模块、内存训练模块和内存测试模块:内存SPD信息读取模块用于读取内存 SPD信息。内存厂家判断模块用于通过读取的内存SPD信息判断内存厂家。内存参数加载模块用于根据内存厂家信息,加载相应的内存参数。内存训练模块用于将内存参数写入内存控制器中,启动内存训练过程。内存测试模块用于对内存进行读写测试,若测试通过则结束,否则内存训练模块继续工作。
作为优选,步骤S1中,针对多种内存适配内存参数,将适配好的内存参数存入固件中,在固件中添加内存厂家判断程序,固件启动过程中读取内存SPD 信息。
作为优选,步骤S1中通过I2C接口读取内存的SPD信息。
作为优选,步骤S2中,读取内存SPD信息,根据读取的SPD信息中的 BYTE 128~145判断内存厂家。
一种实现内存自适应的***,该***包括内存SPD信息读取模块、内存厂家判断模块、内存参数加载模块、内存训练模块和内存测试模块:
内存SPD信息读取模块用于读取内存SPD信息;
内存厂家判断模块用于通过读取的内存SPD信息判断内存厂家;
内存参数加载模块用于根据内存厂家信息,加载相应的内存参数;
内存训练模块用于将内存参数写入内存控制器中,启动内存训练过程;
内存测试模块用于对内存进行读写测试,若测试通过则结束,否则内存训练模块继续工作。
作为优选,内存SPD信息读取模块通过I2C接口读取内存的SPD信息,针对多种内存适配内存参数,将适配好的内存参数存入固件中,在固件中添加内存厂家判断程序,固件启动过程中读取内存SPD信息。
作为优选,内存厂家判断模块根据读取的SPD信息中的BYTE 128~145判断内存厂家。
与现有技术相比,本发明的实现内存自适应的方法具有以下突出的有益效果:所述实现内存自适应的方法能够实现当一款国产平台产品需要支持多种厂家内存时,只需要在固件中添加厂家判断程序,通过读取内存SPD信息,判断当前使用的内存厂家,不需要针对每种内存适配一版固件,这样不仅简化了固件开发过程,而且将大大降低后续对固件程序的维护成本,具有良好的推广应用价值。
附图说明
图1是本发明所述实现内存自适应的方法的流程图。
具体实施方式
下面将结合附图和实施例,对本发明的实现内存自适应的方法及***作进一步详细说明。
实施例
如图1所示,本发明的实现内存自适应的方法,该方法通过读取内存SPD 信息,判断当前使用的内存厂家,根据不同的厂家加载适配好的内存参数,每个国产平台根据一版固件完成对多家内存的自适应。
其中,该实现内存自适应的方法通过该实现内存自适应的***来实现。该实现内存自适应的***包括内存SPD信息读取模块、内存厂家判断模块、内存参数加载模块、内存训练模块和内存测试模块:内存SPD信息读取模块用于读取内存SPD信息。内存厂家判断模块用于通过读取的内存SPD信息判断内存厂家。内存参数加载模块用于根据内存厂家信息,加载相应的内存参数。内存训练模块用于将内存参数写入内存控制器中,启动内存训练过程。内存测试模块用于对内存进行读写测试,若测试通过则结束,否则内存训练模块继续工作。
该实现内存自适应的方法具体包括以下步骤:
S1、读取内存SPD信息。
针对多种内存适配内存参数,将适配好的内存参数存入固件中,在固件中添加内存厂家判断程序,固件启动过程中读取内存SPD信息。
通过I2C接口读取内存的SPD信息。
S2、通过读取的内存SPD信息判断内存厂家。
读取内存SPD信息,根据读取的SPD信息中的BYTE 128~145判断内存厂家。
S3、根据内存厂家信息,加载相应的内存参数。
S4、将内存参数写入内存控制器中。
将内存参数写入内存控制器的寄存器中。
S5、启动内存训练过程。
S6、对内存进行读写测试,若测试通过执行步骤S7,否则返回步骤S5;
S7、结束。
本发明的实现内存自适应的***,该***包括内存SPD信息读取模块、内存厂家判断模块、内存参数加载模块、内存训练模块和内存测试模块:
内存SPD信息读取模块用于读取内存SPD信息。
内存SPD信息读取模块通过I2C接口读取内存的SPD信息,针对多种内存适配内存参数,将适配好的内存参数存入固件中,在固件中添加内存厂家判断程序,固件启动过程中读取内存SPD信息。
内存厂家判断模块用于通过读取的内存SPD信息判断内存厂家。
内存厂家判断模块根据读取的SPD信息中的BYTE 128~145判断内存厂家。
内存参数加载模块用于根据内存厂家信息,加载相应的内存参数。
内存训练模块用于将内存参数写入内存控制器中,启动内存训练过程。
内存测试模块用于对内存进行读写测试,若测试通过则结束,否则内存训练模块继续工作。
该实现内存自适应的方法针对多种内存适配内存参数,将适配好的内存参数存入固件中特定位置。在固件中添加内存厂家判断程序,固件启动过程中读取内存SPD信息,并根据SPD信息获取内存厂商信息,根据内存厂商信息选择加载相应的适配好的内存参数,将该参数写入内存控制器的寄存器,启动内存训练过程,对内存进行读写测试,进而判断读写测试是否通过,来判断出内存厂家。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (8)
1.一种实现内存自适应的方法,其特征在于:该方法通过读取内存SPD信息,判断当前使用的内存厂家,根据不同的厂家加载适配好的内存参数,每个国产平台根据一版固件完成对多家内存的自适应。
2.根据权利要求1所述的实现内存自适应的方法,其特征在于:该方法具体包括以下步骤:
S1、读取内存SPD信息;
S2、通过读取的内存SPD信息判断内存厂家;
S3、根据内存厂家信息,加载相应的内存参数;
S4、将内存参数写入内存控制器中;
S5、启动内存训练过程;
S6、对内存进行读写测试,若测试通过执行步骤S7,否则返回步骤S5;
S7、结束。
3.根据权利要求2所述的实现内存自适应的方法,其特征在于:步骤S1中,针对多种内存适配内存参数,将适配好的内存参数存入固件中,在固件中添加内存厂家判断程序,固件启动过程中读取内存SPD信息。
4.根据权利要求3所述的实现内存自适应的方法,其特征在于:步骤S1中通过I2C接口读取内存的SPD信息。
5.根据权利要求4所述的实现内存自适应的方法,其特征在于:步骤S2中,读取内存SPD信息,根据读取的SPD信息中的BYTE 128~145判断内存厂家。
6.一种实现内存自适应的***,其特征在于:该***包括内存SPD信息读取模块、内存厂家判断模块、内存参数加载模块、内存训练模块和内存测试模块:
内存SPD信息读取模块用于读取内存SPD信息;
内存厂家判断模块用于通过读取的内存SPD信息判断内存厂家;
内存参数加载模块用于根据内存厂家信息,加载相应的内存参数;
内存训练模块用于将内存参数写入内存控制器中,启动内存训练过程;
内存测试模块用于对内存进行读写测试,若测试通过则结束,否则内存训练模块继续工作。
7.根据权利要求6所述的实现内存自适应的***,其特征在于:内存SPD信息读取模块通过I2C接口读取内存的SPD信息,针对多种内存适配内存参数,将适配好的内存参数存入固件中,在固件中添加内存厂家判断程序,固件启动过程中读取内存SPD信息。
8.根据权利要求7所述的实现内存自适应的***,其特征在于:内存厂家判断模块根据读取的SPD信息中的BYTE 128~145判断内存厂家。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911085325.3A CN110941454A (zh) | 2019-11-08 | 2019-11-08 | 一种实现内存自适应的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911085325.3A CN110941454A (zh) | 2019-11-08 | 2019-11-08 | 一种实现内存自适应的方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110941454A true CN110941454A (zh) | 2020-03-31 |
Family
ID=69906554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911085325.3A Pending CN110941454A (zh) | 2019-11-08 | 2019-11-08 | 一种实现内存自适应的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110941454A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306127A (zh) * | 2011-08-05 | 2012-01-04 | 烽火通信科技股份有限公司 | 一种新型ddriii内存识别和初始化方法 |
CN102521093A (zh) * | 2011-12-31 | 2012-06-27 | 曙光信息产业股份有限公司 | 内存管理方法和装置 |
CN103164368A (zh) * | 2013-03-29 | 2013-06-19 | 惠州Tcl移动通信有限公司 | 一种嵌入式设备兼容不同地址映射内存芯片的方法及*** |
CN103605591A (zh) * | 2013-11-27 | 2014-02-26 | 华为技术有限公司 | 一种终端***内存初始化的控制方法及装置 |
CN104317612A (zh) * | 2014-10-14 | 2015-01-28 | 中国航天科工集团第二研究院七〇六所 | 龙芯处理器内存控制器参数交互式调试的方法 |
CN104572365A (zh) * | 2013-10-18 | 2015-04-29 | 中国长城计算机深圳股份有限公司 | 一种内存自适配方法及装置 |
CN107393578A (zh) * | 2016-05-16 | 2017-11-24 | 中国长城科技集团股份有限公司 | 一种内存训练的方法和装置 |
-
2019
- 2019-11-08 CN CN201911085325.3A patent/CN110941454A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306127A (zh) * | 2011-08-05 | 2012-01-04 | 烽火通信科技股份有限公司 | 一种新型ddriii内存识别和初始化方法 |
CN102521093A (zh) * | 2011-12-31 | 2012-06-27 | 曙光信息产业股份有限公司 | 内存管理方法和装置 |
CN103164368A (zh) * | 2013-03-29 | 2013-06-19 | 惠州Tcl移动通信有限公司 | 一种嵌入式设备兼容不同地址映射内存芯片的方法及*** |
CN104572365A (zh) * | 2013-10-18 | 2015-04-29 | 中国长城计算机深圳股份有限公司 | 一种内存自适配方法及装置 |
CN103605591A (zh) * | 2013-11-27 | 2014-02-26 | 华为技术有限公司 | 一种终端***内存初始化的控制方法及装置 |
CN104317612A (zh) * | 2014-10-14 | 2015-01-28 | 中国航天科工集团第二研究院七〇六所 | 龙芯处理器内存控制器参数交互式调试的方法 |
CN107393578A (zh) * | 2016-05-16 | 2017-11-24 | 中国长城科技集团股份有限公司 | 一种内存训练的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101853692B (zh) | 具闪存测试功能的控制器及其储存***与测试方法 | |
CN106158047A (zh) | 一种nand flash测试方法 | |
CN107193560B (zh) | 配置更新方法及装置 | |
CN110135130B (zh) | 一种嵌入式设备软件防改装方法及*** | |
CN105637521A (zh) | 一种数据处理方法及智能终端 | |
CN102841802A (zh) | 移动终端的软件升级方法 | |
CN109614119B (zh) | 一种烧录方法、装置、电子设备及介质 | |
CN111459744A (zh) | 视频处理芯片的固件烧录方法和固件调试方法 | |
CN107315607B (zh) | 一种驱动自适应加载*** | |
CN107168750B (zh) | 一种固件升级保护方法及*** | |
CN111124921A (zh) | 内存越界的检测方法、装置、设备和存储介质 | |
CN112216340A (zh) | 硬盘测试方法、装置、存储介质及电子设备 | |
CN112996020A (zh) | 一种基于蓝牙的自动化测试方法、装置及蓝牙测试终端 | |
CN107657153B (zh) | 一种芯片内flash区的代码保护方法及装置 | |
CN102479124A (zh) | 一种测试方法 | |
CN110941454A (zh) | 一种实现内存自适应的方法及*** | |
CN107894899A (zh) | Rom程序升级***及升级方法 | |
CN107678770B (zh) | 接口芯片升级方法、装置、存储介质和处理器 | |
CN107885536A (zh) | 一种嵌入式处理器的启动方法、嵌入式处理器及存储装置 | |
CN115602242B (zh) | 一种存储装置及其测试方法 | |
CN116048640A (zh) | 一种驱动计算机***中iic设备正常工作的方法 | |
CN115587026A (zh) | 芯片测试方法、装置、存储介质及芯片 | |
CN108563402A (zh) | 一种自动配置raid卡参数的方法和*** | |
CN103345456B (zh) | 调节BootLoader启动地址的电路及方法 | |
CN110297604A (zh) | 一种有效提高nand启动使用寿命的方法及其*** |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200331 |