CN100458693C - 基于bios读写内存spd的计算机***信息保存和读取方法 - Google Patents

基于bios读写内存spd的计算机***信息保存和读取方法 Download PDF

Info

Publication number
CN100458693C
CN100458693C CNB2006100268171A CN200610026817A CN100458693C CN 100458693 C CN100458693 C CN 100458693C CN B2006100268171 A CNB2006100268171 A CN B2006100268171A CN 200610026817 A CN200610026817 A CN 200610026817A CN 100458693 C CN100458693 C CN 100458693C
Authority
CN
China
Prior art keywords
data
memory spd
read
spd
write
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.)
Expired - Fee Related
Application number
CNB2006100268171A
Other languages
English (en)
Other versions
CN101078991A (zh
Inventor
朱磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitac International Corp
Original Assignee
Mitac International Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitac International Corp filed Critical Mitac International Corp
Priority to CNB2006100268171A priority Critical patent/CN100458693C/zh
Publication of CN101078991A publication Critical patent/CN101078991A/zh
Application granted granted Critical
Publication of CN100458693C publication Critical patent/CN100458693C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种基于BIOS读写内存SPD的计算机***信息保存和读取方法,保存方法包括初始化SMBUS控制器操作、检测内存SPD是否可被访问及相应的读写操作的正确性、如果内存SPD可以访问并且读写操作正确则进行将需要保存的数据写入内存SPD特定区域的操作;读取方法包括通过SMBUS控制器访问内存SPD、将数据读出、计算检验和并与内存SPD中的校验位数据进行一致性比较、如果数据一致则进行将保存的数据从内存SPD的特定区域中读出的操作。采用该种基于BIOS读写内存SPD的计算机***信息保存和读取方法,解决了BIOS在内存初始化之前的***存储空间不足的状况,保存信息安全性高,程序设计代码量少、编程简单、实现方便,为计算机技术的进一步发展带来了很大的便利。

Description

基于BIOS读写内存SPD的计算机***信息保存和读取方法
技术领域
本发明涉及计算机***领域,特别涉及计算机***信息存取技术领域,具体是指一种基于BIOS读写内存SPD(Serial Presence Detect,串行存在检测)的计算机***信息保存和读取方法。
背景技术
现代生活和工作中,计算机使用得越来越频繁,而且计算机本身的发展也是越来越快,各种新的技术层出不穷。在BIOS初始化内存之前,需要一定数量的存储空间用来保存***的检测信息和CPU类型信息,但是,由于此时内存不能使用,所以CPU可使用并可访问的存储空间相当有限,会给以后的BIOS初始化***带来了一定的困难。BIOS传统的处理方法是在CMOS检测之前利用CPU的MMX寄存器存储***的状态信息;而在CMOS检测后,则使用CMOS来存储***信息。但是,MMX寄存器的数目十分少,且在整个BIOS检测过程中不能长期保存使用;CMOS虽然有256B可以使用,但其中大部分存储空间的用途已经被固定,而相应留给BIOS开发者可以利用的空间相对较少,往往导致在开发过程中因CMOS空间不足,出现重复定义某些空间的现象,并引发***启动错误。
发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种利用内存SPD固件保存计算机***信息、能够解决BIOS在内存初始化之前的***存储空间不足的缺陷的基于BIOS读写内存SPD的计算机***信息保存和读取方法。
为了实现上述的目的,本发明的基于BIOS读写内存SPD的计算机***信息保存和读取方法如下:
该基于BIOS读写内存SPD的计算机***信息保存方法,其主要特点是,所述的保存方法包括以下步骤:
(1)***进行初始化SMBUS(System Management Bus,***管理总线)控制器操作;
(2)***检测内存SPD是否可被访问,并判断相应的读写操作的正确性;
(3)如果内存SPD无法访问或者读写操作不正确,则终止操作并结束;
(4)如果内存SPD可以访问并且读写操作正确,则进行将需要保存的数据写入内存SPD特定区域的操作;
(5)操作完成并结束。
所述的***初始化SMBUS控制器的操作为:中央处理器通过PCI总线初始化SMBUS控制器,并设置SMBUS的IO基地址。
所述的将需要保存的数据写入内存SPD特定区域的操作包括以下步骤:
(1)在需要保存的数据中取出1字节信息写入内存SPD的指定空间中;
(2)计算出校验位数据;
(3)将校验位数据写入内存SPD的指定空间中;
(4)重复上述步骤(1)直到所有数据均写入内存SPD中。
所述的内存SPD的指定空间为内存SPD的后128字节空间。
该基于上述的保存方法进行计算机***信息的读取方法,其主要特点是,所述的读取方法包括以下步骤:
(1)***通过SMBUS控制器访问内存SPD;
(2)将内存SPD特定区域中所保存的数据读出;
(3)计算出检验位数据,并与内存SPD中的校验位数据进行一致性比较;
(4)如果数据不一致,则终止操作并结束;
(5)如果数据一致,则进行将保存的数据从内存SPD的特定区域中读出的操作;
(6)操作完成并结束。
所述的将保存的数据从内存SPD的特定区域中读出的操作包括以下步骤:
(1)在内存SPD的特定区域的保存的数据中取出1字节信息;
(2)计算出校验位数据;
(3)将校验位数据与内存SPD中的校验位数据进行一致性比较;
(4)如果数据不一致,则丢弃所取出的字节信息;如果数据一致,则保留所取出的字节信息;
(5)重复上述步骤(1)直到所有数据均从内存SPD的特定区域中读出。
采用了该发明的基于BIOS读写内存SPD的计算机***信息保存和读取方法,由于利用了内存的SPD固件来保存计算机***的检测信息和CPU的类型信息,从而解决了BIOS在内存初始化之前的***存储空间不足的状况,而且这些信息对整个***的后期初始化至关重要;不仅如此,因为SPD属于非易失性的固件,因此在内存初始化完成和***掉电的情况下,保存的信息依然不会丢失,保存信息安全性高;同时由于SPD实现时不需要添加额外的电路,因此实现过程不需要硬件改动,而在软件方面,SPD的后128字节空间地址可以任意组合进行读写操作,非常适合于BIOS开发人员使用;而且访问SMBUS控制器的程序设计代码量少、编程简单、实现方便,为计算机技术的进一步发展带来了很大的便利。
附图说明
图1为本发明的计算机***初始化SMBUS控制器操作中各模块工作关系示意图。
图2为本发明的计算机***通过SMBUS在内存SPD中存取数据操作中各模块工作关系示意图。
图3为本发明的基于BIOS读写内存SPD的计算机***信息保存方法流程图。
图4为本发明的基于BIOS读写内存SPD的计算机***信息读取方法流程图。
具体实施方式
为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。
请参阅图1至图4所示,该基于BIOS读写内存SPD的计算机***信息保存方法,包括以下步骤:
(1)***进行初始化SMBUS控制器操作,该操作为:中央处理器CPU 1通过PCI总线2初始化SMBUS控制器3,并设置SMBUS的IO基地址;关于初始化SMBUS控制器的具体技术细节,请参阅“System Management Bus(SMBus)Specification Version 2.0,August 3,2000,SBS Implementers Forum”(***管理总线(SMBus)说明书2.0版,2000年8月3日出版,SBS执行论坛)中的第24~50页部分。
(2)***检测内存SPD5是否可被访问,并判断相应的读写操作的正确性;
(3)如果内存SPD5无法访问或者读写操作不正确,则终止操作并结束;
(4)如果内存SPD 5可以访问并且读写操作正确,则进行将需要保存的数据写入内存SPD特定区域的操作,包括以下步骤:
(a)在需要保存的数据中取出1字节信息通过SMBUS 4写入内存SPD 5的指定空间中,该指定空间为内存SPD 5的后128字节空间;
(b)计算出校验位数据;
(c)将校验位数据写入内存SPD5的指定空间中;
(d)重复上述步骤(a)直到所有数据均写入内存SPD5中;
(5)操作完成并结束。
该基于上述的保存方法进行计算机***信息的读取方法,包括以下步骤:
(1)***中央处理器通过SMBUS控制器控制3的SMBUS 4访问内存SPD 5;
(2)将内存SPD 5特定区域中所保存的数据读出;
(3)计算出检验位数据,并与内存SPD 5中的校验位数据进行一致性比较;
(4)如果数据不一致,则终止操作并结束;
(5)如果数据一致,则进行将保存的数据从内存SPD 5的特定区域中读出的操作,包括以下步骤:
(a)在内存SPD 5的特定区域的保存的数据中取出1字节信息;
(b)计算出校验位数据;
(c)将校验位数据与内存SPD 5中的校验位数据进行一致性比较;
(d)如果数据不一致,则丢弃;如果数据一致,则保留;
(e)重复上述步骤(a)直到所有数据均从内存SPD 5的特定区域中读出;
(6)操作完成并结束。
在实际应用当中,***的工作过程如下:
(1)***初始化SMBUS控制器,并设置SMBUS的IO基地址;
(2)检测SPD是否可被访问,并判断读写操作的正确性;
(3)根据BIOS的开发人员要求将需要保存的信息写入SPD的后128字节空间;
(4)将已使用的SPD空间做校验和(checksum),保证访问SPD的正确性;
(5)读取相应的SPD空间的信息之前,先做checksum,保证访问SPD的正确性;
(6)读取相应的SPD空间的信息;
(7)各种出错处理,给BIOS开发人员更好的出错处理能力,保证***正常运行初始化程序。
本发明的方法适合BIOS开发人员使用,并且具有代码小,安全性高,空间大,编程实现简单,适合***扩展等特点。
同时,在进行编程时应注意,首先需要初始化SMBUS控制器,然后再进行读写操作。
在使用当中,如果使用者开发了一块服务器使用的主板,需要让它来实现客户要求的多个硬盘相继启动的功能,而采用本发明的这种方法,就可以很好的解决在内存没有初始化前,每个硬盘状态的保存和计时延迟的实现。
由于本发明的方法的思想是利用内存的SPD固件,保存***的检测信息和CPU的类型信息,来解决BIOS在内存初始化之前的***存储空间不足的状况,而这些信息对整个***的后期初始化至关重要。该方法具有以下的特点:
(1)BIOS可在早期进行访问。BIOS在早期就已经完成了南桥SMBUS控制器的初始化,此时BIOS可以访问SPD空间并存储***信息。对BIOS开发者来说,越早使用可存储的器件保存***信息,则BIOS初始化***越有利;
(2)SPD可利用的存储空间大。通过参考现行的SPD标准可知,在256B大小的SPD空间中,前128B已经被生产厂商使用,而后128B是可被使用的。128B的可利用空间足够BIOS在Memory初始化之前保存***的状态信息和CPU的类型信息。对BIOS开发者来说,充足的存储空间是***开发和扩展的关键;
(3)非易失性,保存信息安全性高。因为SPD属于非易失性的固件,因此,在Memory初始化后,保存的***信息依然正确有效。而且,在***掉电后,保存的信息依然不会丢失。
(4)易用性好,适合开发人员使用。因为SPD是Memory是固有的器件,实现时不需要添加额外的电路,因此实现过程不需要硬件改动。在软件方面,SPD的后128B空间地址可以任意组合进行读写操作,非常适合BIOS开发人员使用;
(5)代码量小,编程简单。BIOS是通过SMBUS访问SPD数据,从而针对访问SMBUS的程序设计有代码量少,编程简单,实现方便等特点。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (6)

1、一种基于BIOS读写内存SPD的计算机***信息保存方法,其特征在于,所述的保存方法包括以下步骤:
(1)***进行初始化***管理总线控制器操作;
(2)***检测内存SPD是否可被访问,并判断相应的读写操作的正确性;
(3)如果内存SPD无法访问或者读写操作不正确,则终止操作并结束;
(4)如果内存SPD可以访问并且读写操作正确,则进行将需要保存的数据写入内存SPD特定区域的操作;
(5)操作完成并结束。
2、根据权利要求1所述的基于BIOS读写内存SPD的计算机***信息保存方法,其特征在于,所述的***初始化***管理总线控制器的操作为:中央处理器通过PCI总线初始化***管理总线控制器,并设置***管理总线的IO基地址。
3、根据权利要求1或2所述的基于BIOS读写内存SPD的计算机***信息保存方法,其特征在于,所述的将需要保存的数据写入内存SPD特定区域的操作包括以下步骤:
(1)在需要保存的数据中取出1字节信息写入内存SPD的指定空间中;
(2)计算出校验位数据;
(3)将校验位数据写入内存SPD的指定空间中;
(4)重复上述步骤(1)直到所有数据均写入内存SPD中。
4、根据权利要求3所述的基于BIOS读写内存SPD的计算机***信息保存方法,其特征在于,所述的内存SPD的指定空间为内存SPD的后128字节空间。
5、一种基于权利要求1所述的保存方法进行计算机***信息的读取方法,其特征在于,所述的读取方法包括以下步骤:
(1)***通过***管理总线控制器访问内存SPD;
(2)将内存SPD特定区域中所保存的数据读出;
(3)计算出检验位数据,并与内存SPD中的校验位数据进行一致性比较;
(4)如果数据不一致,则终止操作并结束;
(5)如果数据一致,则进行将保存的数据从内存SPD的特定区域中读出的操作;
(6)操作完成并结束。
6、根据权利要求5所述的进行计算机***信息的读取方法,其特征在于,所述的将保存的数据从内存SPD的特定区域中读出的操作包括以下步骤:
(1)在内存SPD的特定区域的保存的数据中取出1字节信息;
(2)计算出校验位数据;
(3)将校验位数据与内存SPD中的校验位数据进行一致性比较;
(4)如果数据不一致,则丢弃所取出的字节信息;如果数据一致,则保留所取出的字节信息;
(5)重复上述步骤(1)直到所有数据均从内存SPD的特定区域中读出。
CNB2006100268171A 2006-05-23 2006-05-23 基于bios读写内存spd的计算机***信息保存和读取方法 Expired - Fee Related CN100458693C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100268171A CN100458693C (zh) 2006-05-23 2006-05-23 基于bios读写内存spd的计算机***信息保存和读取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100268171A CN100458693C (zh) 2006-05-23 2006-05-23 基于bios读写内存spd的计算机***信息保存和读取方法

Publications (2)

Publication Number Publication Date
CN101078991A CN101078991A (zh) 2007-11-28
CN100458693C true CN100458693C (zh) 2009-02-04

Family

ID=38906477

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100268171A Expired - Fee Related CN100458693C (zh) 2006-05-23 2006-05-23 基于bios读写内存spd的计算机***信息保存和读取方法

Country Status (1)

Country Link
CN (1) CN100458693C (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101470650B (zh) * 2007-12-28 2015-11-25 技嘉科技股份有限公司 用于检测电脑主机板的方法与装置
CN102929752B (zh) * 2012-09-13 2016-09-21 曙光信息产业(北京)有限公司 一种服务器开机前内存信息的检测方法
CN103971070A (zh) * 2013-01-24 2014-08-06 鸿富锦精密工业(深圳)有限公司 一种***内存保护方法与装置
CN103473161B (zh) * 2013-09-16 2016-04-20 浪潮电子信息产业股份有限公司 一种内存smbus信号测试的发包方法
CN104572365B (zh) * 2013-10-18 2017-12-01 中国长城科技集团股份有限公司 一种内存自适配方法及装置
CN104597843B (zh) * 2014-12-19 2017-10-13 清能德创电气技术(北京)有限公司 一种判断存储设备中数据是否可用的方法
CN106484550B (zh) * 2015-08-24 2019-07-23 鸿富锦精密工业(深圳)有限公司 内存自检修正***及方法
CN107301037B (zh) * 2016-04-15 2021-03-30 龙芯中科技术股份有限公司 操作***内核的加载方法和装置
CN107832620A (zh) * 2017-11-06 2018-03-23 济南浪潮高新科技投资发展有限公司 一种内存spd保护方法及装置
CN108664810A (zh) * 2018-05-11 2018-10-16 济南浪潮高新科技投资发展有限公司 一种基于可逆矩阵的内存spd保护方法
CN110109858A (zh) * 2019-05-07 2019-08-09 苏州浪潮智能科技有限公司 总线架构、服务器、内存数据读写方法及可读存储介质
CN112560120B (zh) * 2020-11-25 2024-04-05 深圳市金泰克半导体有限公司 安全内存条及安全内存条的启动方法
CN112506745B (zh) * 2020-12-11 2024-02-09 浪潮电子信息产业股份有限公司 内存温度读取方法、装置及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0606102A1 (en) * 1986-09-19 1994-07-13 International Business Machines Corporation An input output interface controller connecting a synchronous bus to an asynchronous bus and methods for performing operations on the buses
US20030151939A1 (en) * 2002-02-11 2003-08-14 Laberge Paul A. Methods and apparatus for accessing configuration data
CN1570859A (zh) * 2003-07-16 2005-01-26 联想(北京)有限公司 一种避免误用非ecc内存的设计方法
CN1746807A (zh) * 2005-09-29 2006-03-15 浪潮电子信息产业股份有限公司 一种品牌计算机部件防伪方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0606102A1 (en) * 1986-09-19 1994-07-13 International Business Machines Corporation An input output interface controller connecting a synchronous bus to an asynchronous bus and methods for performing operations on the buses
US20030151939A1 (en) * 2002-02-11 2003-08-14 Laberge Paul A. Methods and apparatus for accessing configuration data
CN1570859A (zh) * 2003-07-16 2005-01-26 联想(北京)有限公司 一种避免误用非ecc内存的设计方法
CN1746807A (zh) * 2005-09-29 2006-03-15 浪潮电子信息产业股份有限公司 一种品牌计算机部件防伪方法

Also Published As

Publication number Publication date
CN101078991A (zh) 2007-11-28

Similar Documents

Publication Publication Date Title
CN100458693C (zh) 基于bios读写内存spd的计算机***信息保存和读取方法
CN101427323B (zh) 读取非易失性计算机存储器的***和方法
US7321951B2 (en) Method for testing flash memory power loss recovery
US8645776B2 (en) Run-time testing of memory locations in a non-volatile memory
TW200917262A (en) Method for creating a memory defect map and optimizing performance using the memory defect map
CN101377748B (zh) 校验储存装置的读写功能的方法
US9552287B2 (en) Data management method, memory controller and embedded memory storage apparatus using the same
TWI486957B (zh) Nand快閃記憶體燒錄資料的處理、使用方法及裝置、運行系統
US20070294588A1 (en) Performing a diagnostic on a block of memory associated with a correctable read error
US11481153B2 (en) Data storage device and operating method thereof
TWI665606B (zh) 資料儲存裝置之測試系統與資料儲存裝置之測試方法
CN102890645A (zh) 存储器储存装置、存储器控制器与数据写入方法
CN114155906A (zh) 一种数据块修复方法、装置、设备及存储介质
US7000159B2 (en) System and method for testing memory
US10921988B2 (en) System and method for discovering parallelism of memory devices
CN107168650B (zh) 一种对bios的存储器中的数据的处理方法及装置
CN115659883A (zh) 用于存储器控制器的验证装置、验证方法、存储介质及芯片
US11156664B2 (en) Scan chain techniques and method of using scan chain structure
CN110989919B (zh) 用于存储器***的日志记录机制
CN108231134B (zh) Ram良率补救方法及装置
US11822793B2 (en) Complete and fast protection against CID conflict
TWI845062B (zh) 對快閃記憶體模組進行測試的方法、與相關的快閃記憶體控制器及記憶裝置
US20230026712A1 (en) Generating system memory snapshot on memory sub-system with hardware accelerated input/output path
US20230280930A1 (en) Memory controller and memory system for executing error correction operation
TWI681296B (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
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090204

Termination date: 20140523