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

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

Info

Publication number
CN101078991A
CN101078991A CN 200610026817 CN200610026817A CN101078991A CN 101078991 A CN101078991 A CN 101078991A CN 200610026817 CN200610026817 CN 200610026817 CN 200610026817 A CN200610026817 A CN 200610026817A CN 101078991 A CN101078991 A CN 101078991A
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.)
Granted
Application number
CN 200610026817
Other languages
English (en)
Other versions
CN100458693C (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.)
Huanda Computer Shanghai Co Ltd
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)系统检测内存SPD 5是否可被访问,并判断相应的读写操作的正确性;
(3)如果内存SPD 5无法访问或者读写操作不正确,则终止操作并结束;
(4)如果内存SPD 5可以访问并且读写操作正确,则进行将需要保存的数据写入内存SPD特定区域的操作,包括以下步骤:
(a)在需要保存的数据中取出1字节信息通过SMBUS 4写入内存SPD 5的指定空间中,该指定空间为内存SPD 5的后128字节空间;
(b)计算出校验位数据;
(c)将校验位数据写入内存SPD 5的指定空间中;
(d)重复上述步骤(a)直到所有数据均写入内存SPD 5中;
(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所述的基于BIOS读写内存SPD的计算机系统信息保存方法,其特征在于,所述的将保存的数据从内存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 true CN101078991A (zh) 2007-11-28
CN100458693C 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)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473161A (zh) * 2013-09-16 2013-12-25 浪潮电子信息产业股份有限公司 一种内存smbus信号测试的发包方法
CN103971070A (zh) * 2013-01-24 2014-08-06 鸿富锦精密工业(深圳)有限公司 一种系统内存保护方法与装置
CN104572365A (zh) * 2013-10-18 2015-04-29 中国长城计算机深圳股份有限公司 一种内存自适配方法及装置
CN104597843A (zh) * 2014-12-19 2015-05-06 清能德创电气技术(北京)有限公司 一种判断存储设备中数据是否可用的方法
CN101470650B (zh) * 2007-12-28 2015-11-25 技嘉科技股份有限公司 用于检测电脑主机板的方法与装置
CN102929752B (zh) * 2012-09-13 2016-09-21 曙光信息产业(北京)有限公司 一种服务器开机前内存信息的检测方法
CN106484550A (zh) * 2015-08-24 2017-03-08 鸿富锦精密工业(深圳)有限公司 内存自检修正系统及方法
CN107301037A (zh) * 2016-04-15 2017-10-27 龙芯中科技术有限公司 操作系统内核的加载方法和装置
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 苏州浪潮智能科技有限公司 总线架构、服务器、内存数据读写方法及可读存储介质
CN112506745A (zh) * 2020-12-11 2021-03-16 浪潮电子信息产业股份有限公司 内存温度读取方法、装置及计算机可读存储介质
CN112560120A (zh) * 2020-11-25 2021-03-26 深圳市金泰克半导体有限公司 安全内存条及安全内存条的启动方法

Family Cites Families (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
US6771526B2 (en) * 2002-02-11 2004-08-03 Micron Technology, Inc. Method and apparatus for data transfer
CN100346296C (zh) * 2003-07-16 2007-10-31 联想(北京)有限公司 一种避免误用非ecc内存的设计方法
CN100385365C (zh) * 2005-09-29 2008-04-30 浪潮电子信息产业股份有限公司 一种品牌计算机部件防伪方法

Cited By (18)

* 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信号测试的发包方法
CN103473161A (zh) * 2013-09-16 2013-12-25 浪潮电子信息产业股份有限公司 一种内存smbus信号测试的发包方法
CN104572365B (zh) * 2013-10-18 2017-12-01 中国长城科技集团股份有限公司 一种内存自适配方法及装置
CN104572365A (zh) * 2013-10-18 2015-04-29 中国长城计算机深圳股份有限公司 一种内存自适配方法及装置
CN104597843A (zh) * 2014-12-19 2015-05-06 清能德创电气技术(北京)有限公司 一种判断存储设备中数据是否可用的方法
CN106484550B (zh) * 2015-08-24 2019-07-23 鸿富锦精密工业(深圳)有限公司 内存自检修正系统及方法
CN106484550A (zh) * 2015-08-24 2017-03-08 鸿富锦精密工业(深圳)有限公司 内存自检修正系统及方法
CN107301037A (zh) * 2016-04-15 2017-10-27 龙芯中科技术有限公司 操作系统内核的加载方法和装置
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 苏州浪潮智能科技有限公司 总线架构、服务器、内存数据读写方法及可读存储介质
CN112560120A (zh) * 2020-11-25 2021-03-26 深圳市金泰克半导体有限公司 安全内存条及安全内存条的启动方法
CN112560120B (zh) * 2020-11-25 2024-04-05 深圳市金泰克半导体有限公司 安全内存条及安全内存条的启动方法
CN112506745A (zh) * 2020-12-11 2021-03-16 浪潮电子信息产业股份有限公司 内存温度读取方法、装置及计算机可读存储介质
CN112506745B (zh) * 2020-12-11 2024-02-09 浪潮电子信息产业股份有限公司 内存温度读取方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN100458693C (zh) 2009-02-04

Similar Documents

Publication Publication Date Title
CN101078991A (zh) 基于bios读写内存spd的计算机系统信息保存和读取方法
CN101848000B (zh) 解码方法、编码方法及启动控制系统
US20100205517A1 (en) Solid State Disk Device and Program Fail Processing Method Thereof
US11269722B2 (en) Apparatus for diagnosing memory system and operating method thereof
CN107957959B (zh) 具有文件级安全擦除的存储器系统及其操作方法
US9159423B1 (en) Robust erase page detection logic for NAND flash memory devices
TWI726314B (zh) 資料儲存裝置與資料處理方法
CN101042654A (zh) 从一非就地执行内存进行开机的方法与装置
CN1667755A (zh) 带有存储器的半导体器件和存储器测试的方法
WO2022204928A1 (en) Memory controller with read error handling
CN106372011B (zh) 用于pcie ssd控制器的高性能主机队列监控器
US8812772B2 (en) Data merging method for non-volatile memory and controller and storage apparatus using the same
US20140372831A1 (en) Memory controller operating method for read operations in system having nonvolatile memory device
TWI523030B (zh) 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置
TWI692771B (zh) 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置
US10942678B2 (en) Method of accessing data in storage device, method of managing data in storage device and storage device performing the same
US20200125292A1 (en) Memory system and operating method thereof
US20220415403A1 (en) Enhanced Word Line Stripe Erase Abort Detection
TWI665606B (zh) 資料儲存裝置之測試系統與資料儲存裝置之測試方法
TWI749279B (zh) 資料儲存裝置與資料處理方法
US11815985B2 (en) Apparatus and method for checking an operation status of a memory device in a memory system
US10921988B2 (en) System and method for discovering parallelism of memory devices
US11216380B2 (en) Controller and operation method thereof for caching plural pieces of map data read from memory device
US9652172B2 (en) Data storage device performing merging process on groups of memory blocks and operation method thereof
US11157401B2 (en) Data storage device and operating method thereof performing a block scan operation for checking for valid page counts

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