CN110297726A - 具有串行存在检测数据的计算机系统及内存模块控制方法 - Google Patents
具有串行存在检测数据的计算机系统及内存模块控制方法 Download PDFInfo
- Publication number
- CN110297726A CN110297726A CN201910593290.8A CN201910593290A CN110297726A CN 110297726 A CN110297726 A CN 110297726A CN 201910593290 A CN201910593290 A CN 201910593290A CN 110297726 A CN110297726 A CN 110297726A
- Authority
- CN
- China
- Prior art keywords
- serial
- memory
- virtual
- detection data
- memory modules
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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
- G06F9/4403—Processor initialisation
-
- 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
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
串行存在检测数据可更新的计算机系统,以一用户端可编程存储器,储存一虚拟串行存在检测数据。该虚拟串行存在检测数据报括一内存模块的配置信息,且该虚拟串行存在检测数据的储存与一引导系统码分离。一运算单元为该内存模块运行一内存驱动器,其通过一虚拟串行存在检测模块,该内存驱动器读取该用户端可编程存储器上的该虚拟串行存在检测数据,取得该内存模块的配置信息。
Description
技术领域
本案是有关于计算机系统中内存模块的串行存在检测(Serial PresenceDetect,简写SPD),特别有关于计算机系统中内存模块的SPD数据的获取与更新。
背景技术
串行存在检测(Serial Presence Detect,简写SPD)是一种存取内存模块配置信息的标准化方式。以动态随机存取内存(DRAM)为例,其串行存在检测(SPD)数据报括:该动态随机存取内存的记忆库(bank)数量、操作电压、行/列地址数量、位宽、操作时序…等信息。通常需要256甚至512字节的储存空间。
传统DRAM内存条具有一电子抹除式可复写只读存储器(EEPROM)。内存生产厂商是根据使用的DRAM芯片型号,将对应的SPD数据程序化至该EEPROM。DRAM驱动器(DRAMdriver)将自该EEPROM取得SPD数据,以精确的配置信息,组态内存模块的各种参数,以达到最佳的使用效果。
然而,SPD数据可能会需要再调整。若SPD数据是由内存生产厂商程序化在内存条上的EEPROM,其错误需要召回原厂才能处理。
发明内容
本案提出一种弹性维护串行存在检测(Serial Presence Detect,简写SPD)数据的技术。不限定使用内存模块上的EEPROM,本案将SPD数据储存于一用户端可编程存储器,呈虚拟SPD数据,可经由本发明的虚拟串行存在检测模块读取,且该虚拟SPD数据与一引导系统码(引导系统码可以是基本输入输出系统BIOS码或统一可扩展固件接口UEFI码或可扩展固件接口EFI码)分离,故在线更新用户端可编程存储器内的SPD数据时,可实现独立更新SPD数据,引导系统码无须一并调整。
根据本案一种实施方式所实现的一种具有可更新的串行存在检测(SPD)数据的计算机系统,包括:一内存模块;一用户端可编程存储器;以及一运算单元。该用户端可编程存储器储存一虚拟串行存在检测数据,其包括该内存模块的配置信息,其中该虚拟串行存在检测数据的储存与该计算机系统的一引导系统码分离。该运算单元为该内存模块运行一内存驱动器,该内存驱动器通过一虚拟串行存在检测模块,读取该用户端可编程存储器上的该虚拟串行存在检测数据,取得该内存模块的配置信息。
依照以上概念所实现的内存模块控制方法也属于本案范围。根据一种实施方式所实现的一种内存模块控制方法包括以下步骤:以一用户端可编程存储器储存一虚拟串行存在检测数据,其中,该虚拟串行存在检测数据报括一内存模块的配置信息,且该虚拟串行存在检测数据的储存与一计算机系统的一引导系统码分离;以及令一运算单元为该内存模块运行一内存驱动器,该内存驱动器通过一虚拟串行存在检测模块,读取该用户端可编程存储器上的该虚拟串行存在检测数据,取得该内存模块的配置信息。
下文特举实施例,并配合所附图示,详细说明本发明内容。
附图说明
图1根据本发明一实施方式图解计算机系统100,其中计算机系统100包括一运算单元102、一内存模块104以及一用户端可编程存储器105;
图2为流程图,根据本发明一实施方式图解DRAM驱动器DRAM_Driver如何检测DRAM芯片C1…C8;
图3根据本发明一实施方式图解用户端可编程存储器105的配置;
图4A根据本发明一实施方式图解标头302结构;
图4B根据本发明一实施方式图解一个SPD数据块的结构;
图5根据本发明一实施方式图解一计算机系统500,其中以板上内存颗粒502取代内存模块104;
图6根据本发明一种实施方式图解一计算机系统600。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求界定之。
图1根据本发明一实施方式图解计算机系统100,其中计算机系统100包括一运算单元102、一内存模块104以及一用户端可编程存储器105,在一实施方式中该用户端可编程存储器105为一串行外围接口(Serial Peripheral Interface,简写SPI)内存(SPI ROM),其中该用户端可编程存储器105存有虚拟串行存在检测数据Virtual_SPD_Data。
运算单元102在一实施方式中包括中央处理器(central processing unit,CPU)以及芯片组(chipset)…等操作数件。
内存模块104在一实施方式中除了包括动态随机存取内存(DRAM)晶粒封装成的芯片C1…C8,更具有一电子抹除式可复写只读存储器(EEPROM)106。EEPROM 106中储存串行存在检测(Serial Presence Detect,简写SPD)数据SPD_Data,包括内存模块104上该些DRAM芯片C1…C8的配置信息,如:记忆库(bank)数量、操作电压、行/列地址数量、位宽、操作时序…等信息。SPD数据SPD_Data更包括该组配置信息的标识符,以下以SPD_ID标号之。SPD数据SPD_Data通常为256甚至512字节。
为了解决内存模块104上的EEPROM 106更新需要召回原厂的问题,本案的用户端可编程存储器105也管理SPD数据,且特别是与引导系统码Boot_System_Code分开储存。值得注意的是,引导系统码Boot_System_Code用以在计算机系统100开机时实现引导系统,其可以是一基本输入输出系统(Basic Input Output System,BIOS)码,亦可是一统一可扩展固件接口(Unified Extensible Firmware Interface,UEFI)码或一可扩展固件接口(Extensible Firmware Interface,EFI)码。
如图1的实施例所示,用户端可编程存储器105中除了存有引导系统码Boot_System_Code(例如为BIOS/UEFI/EFI code),更独立于引导系统码Boot_System_Code载有替代EEPROM106内的SPD数据SPD_Data的虚拟SPD数据Virtual_SPD_Data。相较EEPROM 106上的SPD数据SPD_Data,用户端可编程存储器105所载的虚拟SPD数据Virtual_SPD_Data便于更新。特别是,虚拟SPD数据Virtual_SPD_Data与引导系统码Boot_System_Code在用户端可编程存储器105上乃独立维护。虚拟SPD数据Virtual_SPD_Data更新时,引导系统码Boot_System_Code无须变动。
计算机系统100开机时,用户端可编程存储器105中的引导系统码Boot_System_Code运行,以下以引导系统码Boot_System_Code为UEFI码为例说明,UEFI码运行具有四个阶段,包括:安全启动阶段(SEC phase)、预可延伸固件接口初始化阶段(PEI phase)、驱动运行时间(DXE phase)、及启动设备选择阶段(BDS phase)。在PEI阶段,运算单元102的中央处理单元(CPU)工作在保护模式32位状态,启动并开始初始化硬件芯片。在DXE阶段,中央处理单元(CPU)工作模式转为64位保护模式中的长模式,所有硬件芯片装载驱动化程序,完成初始化。本案一实施方式可特别是在PEI阶段正确取得硬件芯片初始化所需的参数。
详细叙述之,图1的实施例中EEPROM106可经由一系统管理总线(systemmanagement bus)SMBus耦接至运算单元102,用户端可编程存储器105可经由一串行外围接口总线(Serial Peripheral Interface bus)SPIBus耦接至运算单元102。值得注意的是,这里系统管理总线SMBus及串行外围接口总线SPIBus仅为举例,其它实施例中亦可采用其它规格的总线,例如集成电路总线(Inter-Integrated Circuit bus,简称I2C Bus)等,本发明在此并不做限制。在UEFI码运行的PEI阶段,DRAM驱动器DRAM_Driver运行,且系统管理总线SMBus的驱动器建立,标号为SMBus_Driver,在一实施例中该驱动器SMBus_Driver可以是一PEIM到PEIM接口(PEIM-to-PEIM Interfaces,PPI),其中PEIM为Pre-EFIInitialization Modules的缩写,又其中的EFI为Extensible Firmware Interface的缩写。DRAM驱动器DRAM_Driver通过系统管理总线驱动器SMBus_Driver,读取内存模块104上EEPROM 106所内建的SPD资料SPD_Data,取得其中所载配置信息的标识符SPD_ID。EEPROM106的SPD数据SPD_Data所载的配置信息可能为旧版内容。实际存取的当为用户端可编程存储器105上的虚拟SPD数据Virtual_SPD_Data。
在一实施方式,DRAM驱动器DRAM_Driver以及系统管理总线驱动器SMBus_Driver的原始代码可以是引导系统码Boot_System_Code(例如BIOS/UEFI/EFI code)的一部分,在被运算单元102运行之前其原始代码是嵌入在引导系统码Boot_System_Code中的。
本案令运算单元102的中央处理单元(CPU)基于存储器映像输入输出(memory-mapped I/O,MMIO)方式调用虚拟串行存在检测模块,标号为Virtual_SPD_Module。DRAM驱动器DRAM_Driver透过虚拟串行存在检测模块Virtual_SPD_Module,经由物理接口(例如图1所示的SPI总线SPIBus),读取用户端可编程存储器105上的虚拟SPD数据Virtual_SPD_Data,取得其中对应标识符SPD_ID的一组配置信息─即芯片C1…C8的最新版本配置信息。
如图所示,计算机系统100可能以一硬件做为SPD数据更新来源108。例如,一U盘(USB flash disk)、或一硬盘、或一远程服务器,都可用来供应新版本的SPD数据。
一种实施方式中,研发人员可将新版本的SPD数据储存在SPD数据更新来源108(例如为U盘或硬盘),再以通过一引导系统环境下的工具(例如UEFI引导系统下的环境Shell的工具)将新版本的SPD数据写入用户端可编程存储器105,更新虚拟SPD数据Virtual_SPD_Data。
一种实施方式中,客户端可透过操作系统(OS)上网连结远程服务器,将新版本的配置信息载下。在一实施例中,由于虚拟SPD数据Virtual_SPD_Data与引导系统码Boot_System_Code均存放在用户端可编程存储器105中,可以采用计算机系统100更新引导系统码Boot_System_Code的方式来更新虚拟SPD数据Virtual_SPD_Data。经过重开机,计算机系统100将新版本的SPD数据由SPD数据更新来源108(例如为远程服务器)加载该用户端可编程存储器105,更新该虚拟SPD数据Virtual_SPD_Data。
值得注意的是,前述的这些更新虚拟SPD数据Virtual_SPD_Data的实施方式中用户端可编程存储器105中所存储的引导系统码Boot_System_Code并不会一并更新或受影响。
此段落特别讨论虚拟串行存在检测模块Virtual_SPD_Module,在一实施方式中,虚拟串行存在检测模块Virtual_SPD_Module为一软件模块,其可由DRAM驱动器DRAM_Driver调用,其原始代码储存于用户端可编程存储器105中,在一实施方式其原始代码可以是引导系统码Boot_System_Code(例如BIOS/UEFI/EFI code)的一部分,其在被运算单元102运行之前其原始代码是嵌入在引导系统码Boot_System_Code中的。当DRAM驱动器DRAM_Driver调用虚拟串行存在检测模块Virtual_SPD_Module时,基于MMIO方式,虚拟串行存在检测模块Virtual_SPD_Module令中央处理单元(CPU)将偏移地址迭加至基地址,获得一地址。通过高速(达48兆(M)传输率)的SPI总线SPIBus,中央处理单元(CPU)访问该用户端可编程存储器105中的该地址,自虚拟SPD数据Virtual_SPD_Data取得芯片C1…C8的配置信息。相较之,系统管理总线SMBus通信相当慢(仅几十K)。此外,系统管理总线SMBus需要一控制器(SMBus controller)操作,远不及运算单元102的中央处理单元(CPU)直接进行虚拟串行存在检测模块Virtual_SPD_Module有效率。值得注意的是,虚拟串行存在检测模块Virtual_SPD_Module尽管可嵌入在引导系统码Boot_System_Code中,其并不是普通的硬件设备驱动(Driver)程序码,其是以MMIO方式访问用户端可编程存储器105,而无需借助任何硬件设备驱动(Driver)程序。
在一种实施场景中,虚拟串行存在检测数据Virtual_SPD_Data与EEPROM106上的SPD数据SPD_Data为同样版本。即使如此,切换至SPI总线SPIBus获得芯片C1…C8的配置信息仍显著受益于SPI总线SPIBus的高速传输。计算机系统100开机时间显著缩短。
图2为流程图,根据本发明一实施方式图解DRAM驱动器DRAM_Driver如何检测DRAM芯片C1…C8。
步骤S202,DRAM驱动器DRAM_Driver通过系统管理总线驱动器SMBus_Driver读取内存模块104上EEPROM 106上的SPD资料SPD_Data,取得其中所载配置信息的标识符SPD_ID。在一实施例方式中,前述步骤S202的读取操作是经由图1所示的系统管理总线SMBus作为物理接口完成,但本发明并不限制该物理接口的类型。
步骤S204,DRAM驱动器DRAM_Driver通过虚拟串行存在检测模块Virtual_SPD_Module,读取用户端可编程存储器105上的虚拟SPD数据Virtual_SPD_Data,取得其中对应标识符SPD_ID的一组配置信息─即最新版本数据。在一实施例方式中,前述步骤S204的读取操作是经由SPI总线SPIBus作为物理接口完成,但本发明并不限制该物理接口的类型,但值得注意的是,在本发明的实施方式中存储虚拟SPD数据Virtual_SPD_Data的用户端可编程存储器105的物理接口(或总线)的传输速度高于储SPD数据SPD_Data的EEPROM 106的物理接口(或总线)的传输速度。
步骤S206,DRAM驱动器DRAM_Driver根据所取得的最新版本配置信息,初始化DRAM芯片C1…C8。串行存在检测(SPD)完成。
图3根据本发明一实施方式图解用户端可编程存储器105的配置。用户端可编程存储器105即使储存引导系统码Boot_System_Code,也尚有充裕空间可使用。本案使用该些空间储存虚拟SPD数据Virtual_SPD_Data。图3实施例更是规划两个区域Virtual_SPD_R1(其起始地址例如为地址:0x00108000)以及Virtual_SPD_R2(其起始地址例如为地址:0x004E0000)储存两套虚拟SPD数据Virtual_SPD_Data。区域Virtual_SPD_R1以及Virtual_SPD_R2互为备份。
以区域Virtual_SPD_R1为例,其中储存的虚拟SPD数据Virtual_SPD_Data包括:一标头(header)302、以及复数个SPD数据块(SPD blocks)SPD_Blk_1、SPD_Blk_2…SPD_Blk_n。各SPD数据块对应一种内存模块型号,有各自的标识符SPD_ID,即是说各SPD数据块各自储存标识符SPD_ID以及对应型号的内存模块的配置信息。如此一来,用户端可编程存储器105上维护的虚拟SPD数据Virtual_SPD_Data可应付多种型号的内存模块。
图4A根据本发明一实施方式图解标头302结构。标头302包括:识别标志(signature,为’V’、’S’、’P’或’D’);标头尺寸(header size);区域Virtual_SPD_R#尺寸(total virtual SPD region size,#为区域编号);SPD数据块数量(number of SPDblocks);SPD数据块的CRC32校验码(CRC32value of SPD blocks);以及保留区(reserved)。
图4B根据本发明一实施方式图解一个SPD数据块的结构。头八个字节即SPD标识符SPD_ID,包括:总线宽度(Bus Width);模块组织(Module Organization);模块型态(Type);DRAM型态(DRAM Type);模块标识符最高有效位(Module ID MSB);模块标识符最低有效位(Module ID LSB);参考用裸卡(Ref Raw Card);以及最短操作时钟(min cycle time)。后面512字节即串行存在检测(SPD)所取得的配置信息,如:记忆库(bank)数量、操作电压、行/列地址数量、位宽、操作时序…等信息。
现今更有直接将内存颗粒焊在主板上,取代内存模块104的技术。图5根据本发明一实施方式图解一计算机系统500,其中以板上内存颗粒502取代内存模块104。与图1的实施方式不同在于,板上内存颗粒502不同于实现内存模块104的内存条,其不具备EEPROM106以存放其SPD数据SPD_Data,其SPD数据SPD_Data即是编排在用户端可编程存储器105上,为独立于引导系统码Boot_System_Code的虚拟SPD数据Virtual_SPD_Data。
开机时,用户端可编程存储器105中的引导系统码Boot_System_Code运行,以下以引导系统码Boot_System_Code为可扩展固件接口UEFI为例说明。在UEFI的PEI阶段,DRAM驱动器DRAM_Driver运行,通过虚拟串行存在检测模块Virtual_SPD_Module,经由例如SPI总线SPIBus,读取用户端可编程存储器105上的虚拟SPD数据Virtual_SPD_Data,取得板上内存颗粒502的配置信息。
本发明的虚拟SPD数据Virtual_SPD_Data可不限定以用户端可编程存储器105储存。图6根据本发明一种实施方式图解一计算机系统600。内存模块602(可能为内存条或是板上内存颗粒)的配置信息可以虚拟SPD数据Virtual_SPD_Data方式管理,由一特约储存媒体604储存。特约储存媒体604独立于储存引导系统码Boot_System_Code的用户端可编程存储器105,也不同于图1实施例中内存模块104上的EEPROM 106。开机时,用户端可编程存储器105中的引导系统码Boot_System_Code运行,以下以引导系统码Boot_System_Code为UEFI为例说明。特约储存媒体的驱动器606可为引导系统码Boot_System_Code一部分,早于DRAM驱动器DRAM_Driver于运算单元备妥。DRAM驱动器DRAM_Driver运行时,令特约储存媒体的驱动器606调用本发明之前述虚拟串行存在检测模块Virtual_SPD_Module,利用特约储存媒体的总线608作为硬件接口,读取特约储存媒体604上的虚拟SPD数据Virtual_SPD_Data,取得内存模块602的配置信息。
一种实施方式中,该特约储存媒体604为I2C(Inter-Integrated Circuit)内存(I2C ROM)。特约储存媒体的总线608采集成电路总线(I2C bus)。
一种实施方式中,该特约储存媒体604为U盘(USB flash disk)。特约储存媒体的总线608采通用串行总线(USB bus)。
一种实施方式中,该特约储存媒体604为硬盘(hard disk)。特约储存媒体的总线608采PCIe或SATA。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟悉此项技艺者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视后附的权利要求所界定者为准。
【符号说明】
100~计算机系统;
102~运算单元;
104~内存模块;
105~用户端可编程存储器;
106~电子抹除式可复写只读存储器(EEPROM);
108~串行存在检测(SPD)数据更新来源;
302~标头(header);
500~计算机系统;
502~板上内存颗粒;
600~计算机系统;
602~内存模块;
604~特约储存媒体;
606~特约储存媒体的驱动器;
608~特约储存媒体的总线;
Boot_System_Code~引导系统码;
C1…C8~动态随机存取内存(DRAM)晶粒封装成的芯片;
DRAM_Driver~动态随机存取内存(DRAM)驱动器;
S202…S206~步骤;
SMBus~系统管理总线;
SMBus_Driver~系统管理总线驱动器;
SPD_Blk_1、SPD_Blk_2…SPD_Blk_n~串行存在检测(SPD)数据块;
SPD_Data~串行存在检测数据;
SPD_ID~串行存在检测(SPD)标识符;
SPIBus~串行外围接口(SPI)总线;
Virtual_SPD_Module~虚拟串行存在检测模块;
Virtual_SPD_Data~虚拟串行存在检测数据;
Virtual_SPD_R1、Virtual_SPD_R2~Virtual_SPD_Data储存区。
Claims (20)
1.一种具有可更新的串行存在检测数据的计算机系统,包括:
一内存模块;
一用户端可编程存储器,储存一虚拟串行存在检测数据,其包括该内存模块的配置信息,其中该虚拟串行存在检测数据的储存与该计算机系统的一引导系统码分离;以及
一运算单元,为该内存模块运行一内存驱动器,该内存驱动器通过一虚拟串行存在检测模块,读取该用户端可编程存储器上的该虚拟串行存在检测数据,取得该内存模块的配置信息。
2.如权利要求1所述的具有可更新的串行存在检测数据的计算机系统,其中:
该虚拟串行存在检测数据的更新独立于该引导系统码的维护。
3.如权利要求1所述的具有可更新的串行存在检测数据的计算机系统,更包括:
一储存装置,作为该串行存在检测数据的更新来源,所载的新版本的串行存在检测数据,系经一引导系统环境下的工具加载该用户端可编程存储器,以更新该虚拟串行存在检测数据。
4.如权利要求1所述的具有可更新的串行存在检测数据的计算机系统,其中:
新版本的串行存在检测数据系由该计算机系统经网络载下,于该计算机系统再次开机时,加载该用户端可编程存储器,以更新该虚拟串行存在检测数据。
5.如权利要求1所述的具有可更新的串行存在检测数据的计算机系统,其中:
该内存模块为该计算机系统的板上内存颗粒。
6.如权利要求1所述的具有可更新的串行存在检测数据的计算机系统,其中:
该虚拟串行存在检测数据报含复数型号的内存模块对应的串行存在检测数据。
7.如权利要求1所述的具有可更新的串行存在检测数据的计算机系统,其中:
该虚拟串行存在检测数据报括一标头以及复数个数据块;且
该些数据块每一者对应一个型号的内存模块,储存一标识符以及所述对应型号的内存模块的配置信息。
8.如权利要求1所述的具有可更新的串行存在检测数据的计算机系统,其中:
该虚拟串行存在检测数据在该用户端可编程存储器上分复数个区域储存,互为备份。
9.如权利要求1所述的具有可更新的串行存在检测数据的计算机系统,其中:
该虚拟串行存在检测模块基于一存储器映像输入输出方式得出一地址,并依据该地址读取该用户端可编程存储器上的该虚拟串行存在检测数据。
10.如权利要求1所述的具有可更新的串行存在检测数据的计算机系统,其中:
该引导系统码亦储存在该用户端可编程存储器中。
11.如权利要求1所述的具有可更新的串行存在检测数据的计算机系统,其中:
该虚拟串行存在检测模块属于该引导系统码的一部分。
12.如权利要求1所述的具有可更新的串行存在检测数据的计算机系统,其中:
该内存模块上的一电子抹除式可复写只读存储器载有该内存模块对应的一标识符;
通过一总线驱动器,该内存驱动器自该电子抹除式可复写只读存储器取得该标识符;且
通过该虚拟串行存在检测模块,该内存驱动器自该用户端可编程存储器对应该标识符取得上述配置信息。
13.如权利要求12所述的具有可更新的串行存在检测数据的计算机系统,其中:
该用户端可编程存储器所使用的总线的传输速度高于该电子抹除式可复写只读存储器所使用的总线。
14.如权利要求12所述的具有可更新的串行存在检测数据的计算机系统,其中:
该用户端可编程存储器所使用的总线为一串行外围接口总线,且该电子抹除式可复写只读存储器所使用的总线为一系统管理总线。
15.如权利要求12所述的具有可更新的串行存在检测数据的计算机系统,其中:
该总线驱动器、该虚拟串行存在检测模块及该内存驱动器均属于该引导系统码的一部分。
16.如权利要求1所述的具有可更新的串行存在检测数据的计算机系统,其中:
该用户端可编程存储器为一特约储存媒体,不同于储存该引导系统码的一内存;
该内存驱动器运行时,令该特约储存媒体的驱动器通过该虚拟串行存在检测模块,读取该特约储存媒体上的该虚拟串行存在检测数据,取得该内存模块的配置信息。
17.如权利要求16所述的具有可更新的串行存在检测数据的计算机系统,其中:
该特约储存媒体为U盘、或硬盘。
18.一种内存模块控制方法,包括:
以一用户端可编程存储器储存一虚拟串行存在检测数据,其中,该虚拟串行存在检测数据包括一内存模块的配置信息,且该虚拟串行存在检测数据的储存与一计算机系统的一引导系统码分离;以及
令一运算单元为该内存模块运行一内存驱动器,该内存驱动器通过一虚拟串行存在检测模块,读取该用户端可编程存储器上的该虚拟串行存在检测数据,取得该内存模块的配置信息。
19.如权利要求18所述的内存模块控制方法,其中:
该虚拟串行存在检测模块基于一存储器映像输入输出方式得出一地址,并依据该地址读取该用户端可编程存储器上的该虚拟串行存在检测数据。
20.如权利要求18所述的内存模块控制方法,更包括:
令该内存模块上的一电子抹除式可复写只读存储器载有该内存模块对应的一标识符;
通过一总线驱动器,以该内存驱动器自该电子抹除式可复写只读存储器取得该标识符;且
通过该虚拟串行存在检测模块,令该内存驱动器自该用户端可编程存储器对应该标识符取得上述配置信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910593290.8A CN110297726B (zh) | 2019-07-03 | 2019-07-03 | 具有串行存在检测数据的计算机系统及内存模块控制方法 |
US16/600,706 US10915472B2 (en) | 2019-07-03 | 2019-10-14 | Computer system with programmable serial presence detection data and memory module control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910593290.8A CN110297726B (zh) | 2019-07-03 | 2019-07-03 | 具有串行存在检测数据的计算机系统及内存模块控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110297726A true CN110297726A (zh) | 2019-10-01 |
CN110297726B CN110297726B (zh) | 2023-08-25 |
Family
ID=68030015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910593290.8A Active CN110297726B (zh) | 2019-07-03 | 2019-07-03 | 具有串行存在检测数据的计算机系统及内存模块控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10915472B2 (zh) |
CN (1) | CN110297726B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716756A (zh) * | 2019-10-15 | 2020-01-21 | 上海兆芯集成电路有限公司 | 多晶粒的多核计算机平台及其开机方法 |
CN110727466A (zh) * | 2019-10-15 | 2020-01-24 | 上海兆芯集成电路有限公司 | 多晶粒的多核计算机平台及其开机方法 |
CN113495812A (zh) * | 2020-04-01 | 2021-10-12 | 森富科技股份有限公司 | 内存封装后维修检查方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120191964A1 (en) * | 2011-01-25 | 2012-07-26 | Jong-Min Lee | Methods of booting information handling systems and information handling systems performing the same |
CN105488274A (zh) * | 2015-11-30 | 2016-04-13 | 沪东中华造船(集团)有限公司 | 一种船舶结构设计虚拟评估方法 |
CN105812322A (zh) * | 2014-12-30 | 2016-07-27 | 华为数字技术(苏州)有限公司 | 因特网安全协议安全联盟的建立方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6625692B1 (en) * | 1999-04-14 | 2003-09-23 | Micron Technology, Inc. | Integrated semiconductor memory chip with presence detect data capability |
JP4616586B2 (ja) * | 2004-06-30 | 2011-01-19 | 富士通株式会社 | メモリ初期化制御装置 |
US7318151B1 (en) * | 2004-11-04 | 2008-01-08 | Network Appliance, Inc. | Method and system for firmware management |
KR101075676B1 (ko) * | 2004-11-20 | 2011-10-21 | 삼성전자주식회사 | 이동통신 단말기에 소프트웨어를 설치하는 장치 및 방법 |
US20060143600A1 (en) * | 2004-12-29 | 2006-06-29 | Andrew Cottrell | Secure firmware update |
US8181020B2 (en) * | 2005-02-02 | 2012-05-15 | Insyde Software Corp. | System and method for securely storing firmware |
KR100894251B1 (ko) * | 2006-12-28 | 2009-04-21 | 삼성전자주식회사 | 다중화된 에스피디 롬을 가지는 메모리 모듈 시스템 및 그부팅 방법 |
US8312444B2 (en) * | 2007-07-30 | 2012-11-13 | Ocz Technology Group, Inc. | Method for optimizing memory modules for user-specific environments |
US8429643B2 (en) * | 2007-09-05 | 2013-04-23 | Microsoft Corporation | Secure upgrade of firmware update in constrained memory |
US9519786B1 (en) * | 2012-10-05 | 2016-12-13 | Google Inc. | Firmware integrity ensurance and update |
-
2019
- 2019-07-03 CN CN201910593290.8A patent/CN110297726B/zh active Active
- 2019-10-14 US US16/600,706 patent/US10915472B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120191964A1 (en) * | 2011-01-25 | 2012-07-26 | Jong-Min Lee | Methods of booting information handling systems and information handling systems performing the same |
CN105812322A (zh) * | 2014-12-30 | 2016-07-27 | 华为数字技术(苏州)有限公司 | 因特网安全协议安全联盟的建立方法及装置 |
CN105488274A (zh) * | 2015-11-30 | 2016-04-13 | 沪东中华造船(集团)有限公司 | 一种船舶结构设计虚拟评估方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716756A (zh) * | 2019-10-15 | 2020-01-21 | 上海兆芯集成电路有限公司 | 多晶粒的多核计算机平台及其开机方法 |
CN110727466A (zh) * | 2019-10-15 | 2020-01-24 | 上海兆芯集成电路有限公司 | 多晶粒的多核计算机平台及其开机方法 |
CN110716756B (zh) * | 2019-10-15 | 2023-03-14 | 上海兆芯集成电路有限公司 | 多晶粒的多核计算机平台及其开机方法 |
CN110727466B (zh) * | 2019-10-15 | 2023-04-11 | 上海兆芯集成电路有限公司 | 多晶粒的多核计算机平台及其开机方法 |
CN113495812A (zh) * | 2020-04-01 | 2021-10-12 | 森富科技股份有限公司 | 内存封装后维修检查方法 |
CN113495812B (zh) * | 2020-04-01 | 2024-02-06 | 森富科技股份有限公司 | 内存封装后维修检查方法 |
Also Published As
Publication number | Publication date |
---|---|
US10915472B2 (en) | 2021-02-09 |
CN110297726B (zh) | 2023-08-25 |
US20210004336A1 (en) | 2021-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7277978B2 (en) | Runtime flash device detection and configuration for flash data management software | |
CN110297726A (zh) | 具有串行存在检测数据的计算机系统及内存模块控制方法 | |
US8549271B1 (en) | Method, system, and computer readable medium for updating and utilizing the contents of a non-essential region of a memory device | |
US7590835B1 (en) | Dynamically updating a computer system firmware image | |
US8806151B2 (en) | Multipage preparation commands for non-volatile memory systems | |
US7039799B2 (en) | Methods and structure for BIOS reconfiguration | |
US8578360B1 (en) | Dynamically updating a computer system and firmware image utilizing an option read only memory (OPROM) data structure | |
US7404031B2 (en) | Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory | |
US9395968B1 (en) | Uniquely identifying and validating computer system firmware | |
CN104750616A (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN101253468A (zh) | 用于存储装置的双模式存取的方法和系统 | |
CN102467399A (zh) | 基板管理控制器的韧体更新系统及方法 | |
US8417902B2 (en) | One-time-programmable memory emulation | |
US6260102B1 (en) | Interface for flash EEPROM memory arrays | |
CN103377129A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN106528123A (zh) | 一种基于eFuse模块的SoC启动方法和装置 | |
CN100437485C (zh) | 用于配置计算机系统的系统和方法 | |
WO2022143991A1 (zh) | 一种多次编程电子熔丝装置 | |
CN102200946B (zh) | 资料存取方法、记忆体控制器与储存系统 | |
JPH07302175A (ja) | 半導体ディスク装置 | |
US6986035B2 (en) | Modular bios for detecting resources of a system and reporting information about the resources during two separate phases | |
US6687783B1 (en) | Access apparatus and method for accessing a plurality of storage device having different characteristics | |
US20080040525A1 (en) | Initializing Expansion Adapters Installed in a Computer System Having Similar Expansion Adapters | |
CN105204896A (zh) | 一种数字存储示波器的BootLoader设计方法 | |
KR100486244B1 (ko) | 직렬 이이피롬을 이용하여 인터페이스용 카드를초기화하는 반도체 장치 및 초기화 방법 |
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 | ||
CB02 | Change of applicant information |
Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203 Applicant after: Shanghai Zhaoxin Semiconductor Co.,Ltd. Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203 Applicant before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |