CN101078991A - 基于bios读写内存spd的计算机系统信息保存和读取方法 - Google Patents
基于bios读写内存spd的计算机系统信息保存和读取方法 Download PDFInfo
- 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
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(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的特定区域中读出。
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)
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)
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 | 浪潮电子信息产业股份有限公司 | 一种品牌计算机部件防伪方法 |
-
2006
- 2006-05-23 CN CNB2006100268171A patent/CN100458693C/zh not_active Expired - Fee Related
Cited By (18)
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 |