CN116521429A - 资产信息的上报方法及装置、存储介质及电子设备 - Google Patents

资产信息的上报方法及装置、存储介质及电子设备 Download PDF

Info

Publication number
CN116521429A
CN116521429A CN202310767751.5A CN202310767751A CN116521429A CN 116521429 A CN116521429 A CN 116521429A CN 202310767751 A CN202310767751 A CN 202310767751A CN 116521429 A CN116521429 A CN 116521429A
Authority
CN
China
Prior art keywords
memory
information
register
spd information
configuration space
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
CN202310767751.5A
Other languages
English (en)
Other versions
CN116521429B (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202310767751.5A priority Critical patent/CN116521429B/zh
Publication of CN116521429A publication Critical patent/CN116521429A/zh
Application granted granted Critical
Publication of CN116521429B publication Critical patent/CN116521429B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例提供了一种资产信息的上报方法及装置、存储介质及电子设备,其中,该资产信息的上报方法包括:在目标设备支持内存扩展的情况下,通过基本输入输出系统从所述目标设备的内存扩展控制器的配置空间寄存器中读取所述目标设备下挂的指定内存条的序列存在检测SPD信息,其中,所述目标设备为支持开放式互连标准CXL协议的设备;在读取到目标SPD信息的情况下,通过所述基本输入输出系统将所述目标SPD信息作为系统资产信息上报至所述目标设备的中央处理器。

Description

资产信息的上报方法及装置、存储介质及电子设备
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种资产信息的上报方法及装置、存储介质及电子设备。
背景技术
目前,由于CXL(Computer Express Link,一种开放式互连新标准)协议可以有效解决CPU(Central Processing Unit,中央处理器)、Memory(内存)扩展以及加速器缓存一致性的问题,进而减少数据在不同设备之间的拷贝次数,节省了内存空间。
然而,引入CXL设备的系统,无法直接使用传统的I2C(Inter-IntegratedCircuit,一种同步、半双工的通信总线)线路来读取DIMM(Dual-Inline-Memory-Modules,双列直插式存储模块,一种内存条)的SPD(Serial Presence Detect,序列存在检测)区域,在MXC(Memory Expander Controller,内存扩展控制器)芯片通过I2C访问到DIMM的SPD信息之后,需要先由通过I2C线路与MXC芯片连接的BMC(Baseboard Management Controller,底板管理控制器)从MXC处获取到SPD信息,BIOS(Basic Input Output System,基本输入输出系统)再通过IPMI命令从BMC处获得SPD信息,以完成DIMM的资产信息的上报。
由此可见,相关技术中的资产信息的上报方法,存在由于涉及带外访问导致的资产信息的上报效率较低的问题。
发明内容
本申请实施例提供了一种资产信息的上报方法及装置、存储介质及电子设备,以至少解决相关技术中的资产信息的上报方法存在由于涉及带外访问导致的资产信息的上报效率较低的问题。
根据本申请的一个实施例,提供了一种资产信息的上报方法,包括:在目标设备支持内存扩展的情况下,通过基本输入输出系统从所述目标设备的内存扩展控制器的配置空间寄存器中读取所述目标设备下挂的指定内存条的序列存在检测SPD信息,其中,所述目标设备为支持开放式互连标准CXL协议的设备;在读取到目标SPD信息的情况下,通过所述基本输入输出系统将所述目标SPD信息作为系统资产信息上报至所述目标设备的中央处理器。
根据本申请的又一个实施例,提供了一种资产信息的上报装置,包括:第一读取单元,用于在目标设备支持内存扩展的情况下,通过基本输入输出系统从所述目标设备的内存扩展控制器的配置空间寄存器中读取所述目标设备下挂的指定内存条的序列存在检测SPD信息,其中,所述目标设备为支持开放式互连标准CXL协议的设备;上报单元,用于在读取到目标SPD信息的情况下,通过所述基本输入输出系统将所述目标SPD信息作为系统资产信息上报至所述目标设备的中央处理器。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请实施例,采用将指定内存条的SPD信息在存入内存扩展控制器的配置空间寄存器中的方式,在目标设备支持内存扩展的情况下,通过基本输入输出系统从目标设备的内存扩展控制器的配置空间寄存器中读取目标设备下挂的指定内存条的序列存在检测SPD信息,其中,目标设备为支持开放式互连标准CXL协议的设备;在读取到目标SPD信息的情况下,通过基本输入输出系统将目标SPD信息作为系统资产信息上报至目标设备的中央处理器,由于存入配置空间寄存器的信息可以直接让基本输入输出系统访问到,无需再通过BMC间接获取,可以实现仅通过带内访问获取资产信息的目的,达到提高资产信息上报的效率的技术效果,进而解决了相关技术中的资产信息的上报方法存在由于涉及带外访问导致的资产信息的上报效率较低的问题。
附图说明
图1是根据本申请实施例的一种资产信息的上报方法的硬件环境示意图;
图2是根据本申请实施例的一种资产信息的上报方法的流程图;
图3是根据本申请实施例的一种资产信息的上报方法的示意图;
图4是根据本申请实施例的另一种资产信息的上报方法的示意图;
图5是根据本申请实施例的又一种资产信息的上报方法的示意图;
图6是根据本申请实施例的又一种资产信息的上报方法的示意图;
图7是根据本申请实施例的另一种资产信息的上报方法的流程图;
图8是根据本申请实施例的一种资产信息的上报装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是根据本申请实施例的一种资产信息的上报方法的硬件环境示意图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的资产信息的上报方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
根据本申请实施例的一个方面,提供了一种资产信息的上报方法,以由计算机终端来执行本实施例中的资产信息的上报方法为例,图2是根据本申请实施例的一种资产信息的上报方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,在目标设备支持内存扩展的情况下,通过基本输入输出系统从目标设备的内存扩展控制器的配置空间寄存器中读取目标设备下挂的指定内存条的序列存在检测SPD信息,其中,目标设备为支持开放式互连标准CXL协议的设备。
本实施例中的资产信息的上报方法可以应用到将CXL设备内的指定内存条的资产信息的上报的场景中。CXL设备可以是支持CXL协议的设备。CXL协议允许CPU(centralprocessing unit,中央处理器)的memory(内存)和attached device(附加设备)上的memory之间保持一致性。CXL设备内的指定内存条可以是CXL设备下挂的DIMM。对应地,指定内存条的资产信息可以是DIMM的SPD信息,包括但不限于内存的芯片及模组厂商、工作频率、工作电压、速度、容量、电压与行、列地址带宽等参数。
对于未引入CXL协议的普通系统,其DIMM 的资产信息上报流程主要是,系统上电,CPU通过PCH (集成南桥芯片)经过MUX (Multiplexer,多路复用器)选通,经I2C访问到DIMM获取SPD 信息。当在系统中引入CXL设备时,其下所挂DIMM 是系统可见的,可以被引入系统的地址空间中。但是CPU到CXL memory 的通路是CXL,一种基于PCIe(PCI-Express,即Peripheral Component Interconnect express,一种高速串行计算机扩展总线标准)Phy(Physical,物理)层链路的复合总线。引入CXL协议的系统获取DIMM 资产信息的方式,需要由 BMC (Baseboard Management Controller,底板管理控制器)通过I2C连接到MXC(Memory Expander Controller,内存扩展控制器)芯片,MXC通过I2C访问到DIMM的SPD信息。在BMC 获取了资产信息之后,BIOS可以通过IPMI命令从BMC处获得对应的SPD信息。然而,该方法虽然可以获取到准确的SPD信息,但是需要涉及到带外访问,对于BIOS来说不够直接,获取资产信息的效率也较低。
为了至少解决部分上述问题,考虑到MXC和CPU之间是通过CXL/PCIe连接的,PCIe协议规定了PCIe 设备可以将自己的一些配置信息通过memory map(内存映射)的方式让Host(主机)/CPU 访问到,对于CXL设备下挂的DIMM的SPD信息,也可以采用同样的方式完成对SPD信息的访问。例如,通过自定义一组PCIe Extended Capability (扩展能力)寄存器,将SPD信息存入自定义的寄存器中,BIOS可直接通过memory map方式访问到SPD信息,如图3所示,无需再经过带外访问。
考虑到SPD信息只存在于存储设备中,对于没有内存扩展能力的设备,无需进行SPD信息的读取,在本实施例中,可以在确定目标设备支持内存扩展的情况下,再对目标设备执行对应的SPD信息的读取操作。SPD信息的读取操作可以是通过基本输入输出系统(即,BIOS),直接从目标设备的内存扩展控制器的配置空间寄存器中读取目标设备下挂的指定内存条的SPD信息。这里,目标设备可以是支持开放式互连标准CXL协议的设备,即,CXL设备。内存扩展控制器和指定内存条之间可以通过I2C连接。内存扩展控制器的配置空间寄存器可以是指内存扩展控制器中仅用于存储SPD信息的配置空间寄存器,可以是一个寄存器,也可以是一组寄存器。
步骤S204,在读取到目标SPD信息的情况下,通过基本输入输出系统将目标SPD信息作为系统资产信息上报至目标设备的中央处理器。
对于读取到的指定内存条的SPD信息,在确定其为目标设备的目标SPD信息的情况下,可以通过基本输入输出系统,直接将目标SPD信息作为系统资产信息上报至目标设备的中央处理器。上报的方式可以是通过将读取到的目标SPD信息添加至记录系统资产信息的数据表结构中,以完成系统资产信息的上报,也可以是直接将目标SPD信息发送至中央处理器,本实施例对此不做限定。
通过上述步骤,通过在目标设备支持内存扩展的情况下,通过基本输入输出系统从目标设备的内存扩展控制器的配置空间寄存器中读取目标设备下挂的指定内存条的序列存在检测SPD信息,其中,目标设备为支持开放式互连标准CXL协议的设备;在读取到目标SPD信息的情况下,通过基本输入输出系统将目标SPD信息作为系统资产信息上报至目标设备的中央处理器,可以解决相关技术中的资产信息的上报方法存在由于涉及带外访问导致的资产信息的上报效率较低的问题,达到提高资产信息的上报效率的技术效果。
在一个示范性实施例中,在读取到目标SPD信息的情况下,通过基本输入输出系统将目标SPD信息作为系统资产信息上报至目标设备的中央处理器,包括:在读取到目标SPD信息的情况下,通过基本输入输出系统将目标SPD信息添加到基本输入输出系统的指定数据结构中,以将目标SPD信息作为基本输入输出系统的系统资产信息上报至目标设备的中央处理器,其中,指定数据结构是用于进行系统资产信息的上报的数据结构。
考虑到对符合 SMBIOS (System Management Basic Input/Output System,系统管理基本输入/输出系统)规范的计算机,可以通过访问 SMBIOS 的结构的方式来获得系统资产信息,即,基于表结构的方法,找到与系统资产信息对应的type 结构表,进而获取对应的系统资产信息。因此,在本实施例中,将目标SPD信息作为系统资产信息上报至目标设备的中央处理器,可以是通过基本输入输出系统将目标SPD信息添加到基本输入输出系统的指定数据结构中完成的。
上述指定数据结构可以是用于进行系统资产信息的上报的数据结构,如,用于记录存储设备的数据表结构,即,Smbios type17.(系统管理基本输入/输出系统中的一个数据表结构)。
通过本实施例,通过将目标SPD信息添加至指定数据结构中以完成系统资产信息的上报,可以提高信息上报的简便性。
在一个示范性实施例中,在目标设备支持内存扩展的情况下,通过基本输入输出系统从目标设备的内存扩展控制器的配置空间寄存器中读取目标设备下挂的指定内存条的序列存在检测SPD信息,包括:在目标设备支持内存扩展的情况下,通过基本输入输出系统按照内存映射的方式访问内存扩展控制器的配置空间寄存器,以从内存扩展控制器的配置空间寄存器中读取目标设备下挂的指定内存条的SPD信息。
目标设备的内存扩展控制器可以有多个配置空间寄存器,以分别存储与目标设备对应的配置信息和目标设备的指定内存条的SPD信息。获取配置空间寄存器内存储的信息的方式可以是内存映射。
通过内存映射的方式,可以直接根据待获取信息与配置空间寄存器的映射关系,确定与待获取信息对应的配置空间寄存器,进而访问该配置空间寄存器,并从该配置空间寄存器中读取待获取信息。
在本实施例中,对于SPD信息的读取,可以与前述读取待获取信息的方式相同,通过基本输入输出系统按照内存映射的方式访问目标设备的内存扩展控制器的配置空间寄存器,以实现从内存扩展控制器的配置空间寄存器中读取指定内存条的SPD信息。
通过本实施例,通过内部映射方式完成SPD信息的读取,可以提高信息获取的效率。
在一个示范性实施例中,在在目标设备支持内存扩展的情况下,通过基本输入输出系统从目标设备的内存扩展控制器的配置空间寄存器中读取目标设备下挂的指定内存条的序列存在检测SPD信息之前,上述方法还包括:在内存扩展控制器上电之后,通过内存扩展控制器读取目标设备下挂的指定内存条的SPD信息;将读取到的指定内存条的SPD信息写入到内存扩展控制器的配置空间寄存器中。
为了避免出现数据延迟,在本实施例中,对于内存扩展控制器的配置空间寄存器对指定内存条的SPD信息的写入,可以是在内存扩展控制器上电之后立即进行的。即,在内存扩展控制器上电之后,可以通过内存扩展控制器读取目标设备下挂的指定内存条的SPD信息,并将读取到的指定内存条的SPD信息写入到内存扩展控制器的配置空间寄存器中,以便于基本输入输出系统在启动时就可以及时访问到目标设备的对应信息(包括SPD信息)。写入的结果可以是成功的,也可以是失败的。
由于MXC在上电之后可以立即读取SPD信息并将其填入自己的配置空间寄存器,而BIOS对SPD信息的读取需要再CPU上电之后才能启动,且MXC的上电在CPU上电之前,在BIOS需要SPD信息时,MXC有很大可能已经准备好SPD信息,从而减少数据延迟的可能性。
通过本实施例,内存扩展控制器上电之后就开始读取和写入SPD信息,可以有效减少数据延迟的可能性,提高基本输入输出系统获取SPD信息的效率。
在一个示范性实施例中,内存扩展控制器的配置空间寄存器为指定供应商特定扩展能力DVSEC寄存器;将读取到的指定内存条的SPD信息写入到内存扩展控制器的配置空间寄存器中,包括:将读取到的指定内存条的SPD信息写入到一个DVSEC寄存器中,其中,DVSEC寄存器的空间大小为指定空间大小;或者, 将从多个数据块中的每个数据块中读取到的子SPD信息分别写入到一个DVSEC寄存器中,其中,指定内存条的SPD信息被划分为多个子SPD信息,多个子SPD信息中的每个子SPD信息被分别写入到每个数据块中的一个数据块中。
配置空间寄存器可以是DVSEC(Designated Vendor-Specific ExtendedCapability,指定供应商特定扩展能力)寄存器,将读取到的指定内存条的SPD信息写入到内存扩展控制器的配置空间寄存器,可以是指将读取到的SPD信息写入到DVSEC的空间中。如图4所示,第一种版本(capability version)可以用于表示capability(一种结构体)版本。第二种版本(dvsec revision)为供应商自定义版本号,用于表示DVSEC结构体的版本,DVSEC Header(标头)中可以指定DVSEC空间大小(DVSEC Length:0x400),DVSEC Vendor ID(DVSEC Vendor Identity Document,指定供应商特定扩展能力的供应商标识)可以配置为与设备类型对应的固定值,通过设置不同的DVSEC ID(DVSEC Identity Document,指定供应商特定扩展能力标识),以区分不同DVSEC空间。这里的设备类型可以是根据设备是否具有内存扩展能力区分出的具有内存扩展能力的设备和不具有内存扩展能力的设备。
在本实施例中,可以将读取到的指定内存条的SPD信息写入一个DVSEC寄存器中。DVSEC寄存器的空间大小可以为指定空间大小,即,DIMM的SPD信息的大小。以DIMM DDR5(DDR SDRAM 5,Double Data Rate Synchronous Dynamic Random Access Memory,第五代内存条)的SPD信息为例,其SPD信息为1KB,对应的DVSEC空间大小为1KB。
考虑到目标设备可能是块设备,对应的DIMM的SPD信息可能被划分为多个子SPD信息,多个子SPD信息中的每个子SPD信息被分别存储到每个数据块中的一个数据块中,对应地,SPD信息的格式可以如表1所示。
表1
在本实施例中,对于SPD信息被划分为多个子SPD信息的情况,可以将从多个数据块中的每个数据块中读取到的子SPD信息分别写入到一个DVSEC寄存器中。对应地,根据不同的数据块可以分别申请一个DVSEC ID,分别对应一个DVSEC寄存器。
通过本实施例,通过不同写入方式对SPD信息进行写入,可以提高SPD信息在配置空间寄存器中写入的效率。
在一个示范性实施例中,在所述将从多个数据块中的每个数据块中读取到的子SPD信息分别写入到一个所述DVSEC寄存器中之前,所述方法还包括:根据所述每个数据块的空间大小,为所述每个数据块设置对应的所述DVSEC寄存器,其中,与所述每个数据块设置对应的所述DVSEC寄存器的空间大小大于或者等于所述每个数据块的空间大小。
对于多个数据块的分别存储子SPD信息的情况,在本实施例中,可以根据每个数据块的空间大小,为所述每个数据块分别设置对应的所述DVSEC寄存器。设置的DVSEC寄存器的空间大小可以大于或者等于对应的数据块的空间大小。
上述数据块可以是前述Block,每个Block大小可以是不同的,对应地,每个DVSEC寄存器的空间大小(即,DVSEC Length)也可以是不同的。
通过本实施例,根据每个数据块的大小设置对应的寄存器的空间大小,可以提高寄存器的存储利用率。
在一个示范性实施例中,在所述将从多个数据块中的每个数据块中读取到的子SPD信息分别写入到一个所述DVSEC寄存器中之前,所述方法还包括:对所述多个数据块中的每个数据块进行编号;为所述每个数据块设置对应的寄存器标识,其中,与所述每个数据块对应的寄存器标识包括:用于标识与所述每个数据块对应的所述DVSEC寄存器的寄存器供应商的第一寄存器标识,用于标识与所述每个数据块对应的所述DVSEC寄存器的第二寄存器标识,与所述每个数据块对应的所述第二寄存器标识中的部分标识与所述每个数据块的编号匹配。
对于多个数据块的分别存储子SPD信息的情况,为了提高读取到的子SPD信息在DVSEC寄存器中的填入效率,避免将从一个数据块中的读取的子SPD信息填入到其他数据块对应的DVSEC寄存器中的情况发生,在本实施例中,可以对所述多个数据块中的每个数据块进行编号,并按照编号为所述每个数据块设置对应的寄存器标识。
上述与所述每个数据块对应的寄存器标识可以包括:用于标识与所述每个数据块对应的所述DVSEC寄存器的寄存器供应商的第一寄存器标识(即,DVSEC Vendor ID),以及用于标识与所述每个数据块对应的所述DVSEC寄存器的第二寄存器标识(即,DVSEC ID)。与所述每个数据块对应的所述第二寄存器标识中的部分标识可以与所述每个数据块的编号匹配。
例如,对于DVSEC寄存器的DVSEC Vendor ID,可以按照CXL协议设置为1E98。而对于DVSEC寄存器的DVSEC ID,由于目前CXL官方规定占用了的DVSEC ID有:0-A(1010(bit)),可以使用bit(4)作为标识位,也就是说(10000)开始可以与数据块对应。由于SPD信息一共可以对应16个Block,可以如表1所示分别将16个Block编号为0~15,那么16个DVSEC寄存器的DVSEC ID,可以从(10000)开始,对应设置为(10000-11111)。在需要将读取到的子SPD信息填入一个DVSEC寄存器时,就可以通过每个寄存器的DVSEC ID中与数据块标识对应的部分比特位来选择对应的DVSEC寄存器。
通过本实施例,通过第二寄存器标识来区分存储不同数据块的子SPD信息的DVSEC寄存器,可以提高SPD信息在DVSEC寄存器中的填入效率。
在一个示范性实施例中,在通过内存扩展控制器读取目标设备下挂的指定内存条的SPD信息之后,上述方法还包括:确定与读取到的指定内存条的SPD信息对应的第一哈希值;比较第一哈希值和与内存扩展控制器的配置空间寄存器中已记录的SPD信息对应的第二哈希值,其中,将读取到的指定内存条的SPD信息写入到内存扩展控制器的配置空间寄存器中是在第一哈希值和第二哈希值不一致的情况下执行的。
为了避免内存扩展控制器每次上电都重复读取并写入相同的SPD信息,在本实施例中,可以对每次读取到的SPD信息生成对应的哈希值,并对哈希值进行保存,在内存扩展控制器上电并读取到SPD信息时,可以先将当前读取到的SPD信息的哈希值与已保存的哈希值进行比较,如果当前哈希值与已保存的哈希值都不同,再将其保存至配置空间寄存器中。
在通过内存扩展控制器读取目标设备下挂的指定内存条的SPD信息之后,可以先确定与读取到的指定内存条的SPD信息对应的第一哈希值,并将第一哈希值和与内存扩展控制器的配置空间寄存器中已记录的SPD信息对应的第二哈希值进行比较,在第一哈希值和第二哈希值不一致的情况下,将读取到的指定内存条的SPD信息写入到内存扩展控制器的配置空间寄存器中。
通过本实施例,通过记录每次读取到的SPD信息的哈希值,可以避免对相同的SPD信息的重复写入。
在一个示范性实施例中,在所述在目标设备支持内存扩展的情况下,通过基本输入输出系统从所述目标设备的内存扩展控制器的配置空间寄存器中读取所述目标设备下挂的指定内存条的序列存在检测SPD信息之前,所述方法还包括:通过所述基本输入输出系统从所述目标设备的内存扩展控制器的特定配置空间寄存器中读取内存扩展指示信息,其中,所述特定配置空间寄存器为记录所述目标设备的设备类型的配置空间寄存器,所述内存扩展指示信息用于指示所述目标设备是否支持内存扩展;在所述内存扩展指示信息指示所述目标设备支持内存扩展的情况下,确定所述目标设备支持内存扩展。在所述内存扩展指示信息指示所述目标设备不支持内存扩展的情况下,确定所述目标设备没有SPD信息。
考虑到存在不支持内存扩展的设备,在本实施例中,在系统上电之后,可以先通过基本输入输出系统从所述目标设备的内存扩展控制器的特定配置空间寄存器中读取内存扩展指示信息。在内存扩展指示信息指示所述目标设备支持内存扩展的情况下,确定所述目标设备支持内存扩展,并按照前述实施例的描述进行SPD信息的读取和写入等相关操作。
上述特定配置空间寄存器可以是记录所述目标设备的设备类型的配置空间寄存器,可以是仅记录目标设备的设备类型配置空间寄存器,可以与前述配置空间寄存器的类型相同,也可以不同,本实施例对此不做限定。上述内存扩展指示信息可以用于指示所述目标设备是否支持内存扩展。
在所述内存扩展指示信息指示所述目标设备不支持内存扩展的情况下,可以确定所述目标设备没有SPD信息,不执行对SPD信息的读取和写入等相关操作。
通过本实施例,先通过读取到的寄存器中的指示数据,在确定设备支持内存扩展再执行对SPD信息的读取和写入等操作,可以避免在无SPD信息的设备进行较长时间的SPD信息的读取操作,从而提高信息的读取效率。
在一个示范性实施例中,在通过基本输入输出系统从目标设备的内存扩展控制器的配置空间寄存器中读取目标设备下挂的指定内存条的序列存在检测SPD信息之后,上述方法还包括:在未读取到SPD信息的情况下,启动定时器,其中,定时器的定时时间为预设的、相邻两次读取指定内存条的SPD信息的时间间隔;在定时器的定时时间到达的情况下,通过基本输入输出系统重新从内存扩展控制器的配置空间寄存器中读取指定内存条的SPD信息。
考虑到在CPU上电之后、BIOS从内存扩展控制器的配置空间寄存器中读取SPD信息时,存在内存扩展控制器未将读取到的SPD信息写入在自己的配置空间寄存器的可能,也存在从内存扩展控制器的配置空间寄存器中读取失败的可能。对于读取失败的可能情况,考虑到通过再次读取可能会读取成功,在本实施例中,在通过基本输入输出系统从配置空间寄存器中未读取到SPD信息的情况下,可以间隔一段时间,通过基本输入输出系统对SPD信息进行再次读取。相邻两次读取的时间间隔可以是预先设定的,可以通过定时器来进行时间间隔的设定的。
在未读取到SPD信息的情况下,可以启动定时器,并在定时器的定时时间到达的情况下,通过基本输入输出系统重新从内存扩展控制器的配置空间寄存器中读取指定内存条的SPD信息。这里,定时器的定时时间可以是预设的、相邻两次读取指定内存条的SPD信息的时间间隔。
可选地,在重新读取仍未读取到SPD信息的情况下,可以直接返回错误。
通过本实施例,在未读取到的SPD信息时,通过定时器控制再次读取的时刻,可以避免短时间内的无效读取,提高读取成功的可能性。
在一个示范性实施例中,在通过基本输入输出系统从目标设备的内存扩展控制器的配置空间寄存器中读取目标设备下挂的指定内存条的序列存在检测SPD信息之前,上述方法还:从内存扩展控制器的配置空间寄存器中获取与指定内存条的SPD信息对应的第一比特位信息,其中,第一比特位信息用于标识内存扩展控制器的配置空间寄存器中存储的SPD信息是否有效,从内存扩展控制器的配置空间寄存器中读取指定内存条的SPD信息是在第一比特位信息用于标识内存扩展控制器的配置空间寄存器中存储的SPD信息有效的情况下执行的。
为了读取到的数据错误的SPD信息,进而导致上报的系统资产信息出现错误,在本实施例中,对于存储在配置空间寄存器中的SPD信息,可以增加对应的第一比特位信息,通过第一比特位信息标识内存扩展控制器的配置空间寄存器中存储的SPD信息是否有效。例如,可以用1标识该SPD信息有效, 0标识该SPD信息无效。这里,SPD信息是否有效可以表示SPD信息是否符合DDR SPD协议的相关规定,即,SPD信息有效表示其符合DDR SPD协议的相关规定,SPD信息无效表示其不符合DDR SPD协议的相关规定。
在通过基本输入输出系统从目标设备的内存扩展控制器的配置空间寄存器中读取目标设备下挂的指定内存条的SPD信息之前,可以先从内存扩展控制器的配置空间寄存器中获取与指定内存条的SPD信息对应的第一比特位信息,确定该第一比特位信息是否有效,并在该第一比特位信息有效的情况下,执行从内存扩展控制器的配置空间寄存器中读取指定内存条的SPD信息的操作。
通过本实施例,通过对配置空间寄存器中存储的SPD信息增加对应的第一比特位信息,以便于基本输入输出系统确定该SPD信息是否有效,可以有效避免上报错误的资产信息。
在一个示范性实施例中,所述指定内存条为一组内存条;所述方法还包括:在发生内存故障的情况下,从所述内存扩展控制器的配置空间寄存器中获取与所述一组内存条对应的故障指示信息,其中,与所述一组内存条对应的故障指示信息用于指示所述一组内存条中的每个内存条是否发生故障;根据与所述一组内存条对应的故障指示信息进行故障定位,以定位出所述一组内存条中发生故障的内存条。
现有技术中,在发生内存故障时,只能确定定位到内存扩展控制器,在一个内存扩展控制器仅下挂一个内存条时,可以准确知道出现故障的内存条,但若如图5所示,一个内存扩展控制器下挂多个内存条,将无法对出现故障的内存条进行准确定位。
为了至少解决上述部分问题,在一个内存扩展控制器下挂多个内存条的情况下,上述指定内存条为一组内存条,在本实施例中,可以在内存扩展控制器的配置空间寄存器中写入与每个内存条对应的故障指示信息。
在发生内存故障的情况下,可以从所述内存扩展控制器的配置空间寄存器中获取与所述一组内存条对应的故障指示信息。这里,与所述一组内存条对应的故障指示信息可以用于指示所述一组内存条中的每个内存条是否发生故障。根据与所述一组内存条对应的故障指示信息可以进行故障定位,以定位出所述一组内存条中发生故障的内存条。
通过本实施例,通过内存扩展控制器的配置空间寄存器中的故障指示信息,确定发生故障的内存条,可以提高内存故障定位的准确性。
在一个示范性实施例中,所述在发生内存故障的情况下,从所述内存扩展控制器的配置空间寄存器中获取与所述一组内存条对应的故障指示信息,包括:在发生内存故障的情况下,从所述内存扩展控制器的配置空间寄存器中获取与所述一组内存条中的每个内存条对应的第二比特位信息,其中,与所述每个内存条对应的第二比特位信息用于指示所述每个内存条是否发生故障。
在本实施例中,故障指示信息可以是用比特位表示的。在发生内存故障的情况下,可以从所述内存扩展控制器的配置空间寄存器中获取与所述一组内存条中的每个内存条对应的第二比特位信息。
上述与所述每个内存条对应的第二比特位信息,可以用于指示所述每个内存条是否发生故障。对于未发生故障的内存条,对应的第二比特位信息可以是0,而对于发生故障的内存条,对应的第二比特位信息可以是1。
可选地,在一个内存扩展控制器下挂多个内存条的情况下,在设置配置空间寄存器以存储内存条的SPD信息的同时,可以将配置空间寄存器的部分标识设置为与不同内存条对应的标识。即,可以对多个内存条进行编号,并将前述DVSEC寄存器的第二寄存器标识中的部分标识设置为可以表示不同内存条的编号的标识。例如,DVSEC ID一共16 bit,可以使用前8bit表示dimm的编号。
例如,MXC发现一个DIMM报错后,可以在对应的配置空间寄存器中置起对应bit,表示对应的DIMM发生故障,主机Host收到报错后,轮询MXC的配置空间寄存器,在读取到对应bit为1的寄存器后,根据该寄存器的标识确定对应的DIMM。
通过本实施例,在发生内存故障的情况下,根据内存扩展控制器的配置空间寄存器中的第二比特位信息确定发生故障的内存条,可以提高故障定位的准确性。
在一个示范性实施例中,所述方法还包括:在所述内存扩展控制器与一组主机端服务器相连的情况下,在一个所述指定内存条的不同区域中分别存储与所述一组主机端服务器中的每个主机端服务器对应的SPD信息。
考虑到存在如图6所示的,一个MXC可以连接到不同的主机Host的情况,在本实施例中,在所述内存扩展控制器与一组主机端服务器相连的情况下,可以在一个指定内存条的不同区域中分别存储与所述一组主机端服务器中的每个主机端服务器对应的SPD信息。
例如,以指定内存条为一根内存条为例,在一个MXC连接到不同的Host的情况下,一根内存条可能被分区分配给不同的Host。
通过本实施例,在一个所述指定内存条的不同区域中分别存储与所述一组主机端服务器中的每个主机端服务器对应的SPD信息,可以提高内存扩展控制器的利用率。
在一个示范性实施例中,在所述在一个所述指定内存条的不同区域中分别存储与所述一组主机端服务器中的每个主机端服务器对应的SPD信息之后,所述方法还包括:在所述内存扩展控制器上电之后,通过所述内存扩展控制器读取所述目标设备下挂的所述指定内存条的SPD信息;根据所述指定内存条的不同区域的大小,对读取到的所述指定内存条的SPD信息中的内存大小进行更新,并写入到所述内存扩展控制器的配置空间寄存器中,其中,更新前的所述指定内存条的SPD信息中的内存大小为所述指定内存条的内存大小。
在一个MXC仅支持连接到一个Host的情况下,配置空间寄存器的设计可以按照前述实施例的方式来进行。而对于在一个MXC可以连接到不同的Host,一根内存条可能被分区分配给不同的Host的情况,配置空间寄存器的设计可以进行更进一步的复杂设计,以支持multi logic device(多逻辑器件)。
在本实施例中,在所述内存扩展控制器上电之后,可以通过所述内存扩展控制器读取所述目标设备下挂的所述指定内存条的SPD信息。根据所述指定内存条的不同区域的大小,可以对读取到的所述指定内存条的SPD信息中的内存大小进行更新,并写入到所述内存扩展控制器的配置空间寄存器中。
上述更新前的所述指定内存条的SPD信息中的内存大小可以是指定内存条的内存大小。对读取到的所述指定内存条的SPD信息中的内存大小进行的更新,可以是按照前述指定内存条中、分别存储与一组主机端服务器中的每个主机端服务器对应的SPD信息的不同区域进行的更新。
例如,在同一个DIMM不同分区的大小不同的情况下,MXC读取到的SPD信息中memory size的大小为一个总的值,但MXC在上报SPD信息的时候,可以根据各个分区的具体情况修改SPD信息中memory size的大小。
通过本实施例,内存扩展控制器可以根据下挂的内存条的分区情况修改读取到的SPD信息的内存大小,在无需增加其他分析操作的情况下,可以使得上报的SPD信息更准确。
下面结合可选示例对本申请实施例中的资产信息的上报方法进行解释说明。在本可选示例中,目标设备为CXL设备。
本可选示例中提供了一种基于CXL内存扩展的资产信息上报方法,通过在MXC中定义用于存储DIMM的SPD信息的配置空间寄存器,MXC上电后,就将DIMM的SPD信息填入自己的配置空间寄存器,等待CPU上电后,BIOS可以直接从MXC的配置空间寄存器中获取到相应的SPD信息,实现CXL内存扩展设备的带内资产信息上报,有助于未来大内存池的应用场景下的故障定位问题。
本可选示例中的资产信息的上报方法的流程可以如图7所示,可以包括以下步骤:
步骤1,系统上电。
步骤2,MXC 上电。
步骤3,MXC 通过I2C读取DIMM Spd信息,并存放入自己的DVSEC 空间。
步骤4,BIOS读取 DVSEC Vendor ID:1e98h的寄存器空间中的信息。
步骤5,根据读取到的信息,判断CXL设备是否具有memory 扩展能力。
步骤6,若该CXL设备支持内存扩展,则读取对应的寄存器(如,DVSEC Vendor ID:30)来获取SPD信息。
步骤7,将读取到的CXL设备的SPD信息添加入Smbios type17.作为系统资产信息清单进行上报。
通过本可选示例,解决了当前CXL 设备资产信息需要通过BMC来获取的问题,使得CXL设备资产信息可以像正常Dimm一样作为资产信息上报。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
根据本申请实施例的又一方面,还提供了一种资产信息的上报装置,该装置用于实现上述实施例中所提供的资产信息的上报方法,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本申请实施例的一种资产信息的上报装置的结构框图,如图8所示,该装置包括:
第一读取单元802,用于在目标设备支持内存扩展的情况下,通过基本输入输出系统从目标设备的内存扩展控制器的配置空间寄存器中读取目标设备下挂的指定内存条的序列存在检测SPD信息,其中,目标设备为支持开放式互连标准CXL协议的设备;
上报单元804,用于在读取到目标SPD信息的情况下,通过基本输入输出系统将目标SPD信息作为系统资产信息上报至目标设备的中央处理器。
通过本申请实施例,在目标设备支持内存扩展的情况下,通过基本输入输出系统从目标设备的内存扩展控制器的配置空间寄存器中读取目标设备下挂的指定内存条的序列存在检测SPD信息,其中,目标设备为支持开放式互连标准CXL协议的设备;在读取到目标SPD信息的情况下,通过基本输入输出系统将目标SPD信息作为系统资产信息上报至目标设备的中央处理器,可以解决相关技术中的资产信息的上报方法存在由于涉及带外访问导致的资产信息的上报效率较低的问题,提高资产信息的上报效率。
可选地,上报单元包括:
添加模块,用于在读取到所述目标SPD信息的情况下,通过基本输入输出系统将目标SPD信息添加到基本输入输出系统的指定数据结构中,以将目标SPD信息作为基本输入输出系统的系统资产信息上报至目标设备的中央处理器,其中,指定数据结构是用于进行系统资产信息的上报的数据结构。
可选地,第一读取单元包括:
访问模块,用于在目标设备支持内存扩展的情况下,通过基本输入输出系统按照内存映射的方式访问内存扩展控制器的配置空间寄存器,以从内存扩展控制器的配置空间寄存器中读取目标设备下挂的指定内存条的SPD信息。
可选地,上述装置还包括:
第二读取单元,用于在内存扩展控制器上电之后,通过内存扩展控制器读取目标设备下挂的指定内存条的SPD信息;
写入单元,用于将读取到的指定内存条的SPD信息写入到内存扩展控制器的配置空间寄存器中。
可选地,内存扩展控制器的配置空间寄存器为指定供应商特定扩展能力DVSEC寄存器;写入单元包括:
第一写入模块,用于将读取到的指定内存条的SPD信息写入到一个DVSEC寄存器中,其中,DVSEC寄存器的空间大小为指定空间大小。
可选地,内存扩展控制器的配置空间寄存器为指定供应商特定扩展能力DVSEC寄存器;写入单元包括:
第二写入模块,用于将从多个数据块中的每个数据块中读取到的子SPD信息分别写入到一个DVSEC寄存器中,其中,指定内存条的SPD信息被划分为多个子SPD信息,多个子SPD信息中的每个子SPD信息被分别写入到每个数据块中的一个数据块中。
可选地,上述装置还包括:
第一设置单元,用于在所述将从多个数据块中的每个数据块中读取到的子SPD信息分别写入到一个所述DVSEC寄存器中之前,根据所述每个数据块的空间大小,为所述每个数据块设置对应的所述DVSEC寄存器,其中,与所述每个数据块设置对应的所述DVSEC寄存器的空间大小大于或者等于所述每个数据块的空间大小。
可选地,上述装置还包括:
执行单元,用于在所述将从多个数据块中的每个数据块中读取到的子SPD信息分别写入到一个所述DVSEC寄存器中之前,对所述多个数据块中的每个数据块进行编号;
第二设置单元,用于为所述每个数据块设置对应的寄存器标识,其中,与所述每个数据块对应的寄存器标识包括:用于标识与所述每个数据块对应的所述DVSEC寄存器的寄存器供应商的第一寄存器标识,用于标识与所述每个数据块对应的所述DVSEC寄存器的第二寄存器标识,与所述每个数据块对应的所述第二寄存器标识中的部分标识与所述每个数据块的编号匹配。
可选地,上述装置还包括:
第一确定单元,用于在通过内存扩展控制器读取目标设备下挂的指定内存条的SPD信息之后,确定与读取到的指定内存条的SPD信息对应的第一哈希值;
比较单元,用于比较第一哈希值和与内存扩展控制器的配置空间寄存器中已记录的SPD信息对应的第二哈希值,其中,将读取到的指定内存条的SPD信息写入到内存扩展控制器的配置空间寄存器中是在第一哈希值和第二哈希值不一致的情况下执行的。
可选地,上述装置还包括:
第三读取单元,用于在所述在目标设备支持内存扩展的情况下,通过基本输入输出系统从所述目标设备的内存扩展控制器的配置空间寄存器中读取所述目标设备下挂的指定内存条的序列存在检测SPD信息之前,通过所述基本输入输出系统从所述目标设备的内存扩展控制器的特定配置空间寄存器中读取内存扩展指示信息,其中,所述特定配置空间寄存器为记录所述目标设备的设备类型的配置空间寄存器,所述内存扩展指示信息用于指示所述目标设备是否支持内存扩展;
第二确定单元,用于在所述内存扩展指示信息指示所述目标设备支持内存扩展的情况下,确定所述目标设备支持内存扩展。
可选地,上述装置还包括:
第三确定单元,用于在所述通过所述基本输入输出系统从所述目标设备的内存扩展控制器的特定配置空间寄存器中读取内存扩展指示信息之后,在所述内存扩展指示信息指示所述目标设备不支持内存扩展的情况下,确定所述目标设备没有SPD信息。
可选地,上述装置还包括:
启动单元,用于在通过基本输入输出系统从目标设备的内存扩展控制器的配置空间寄存器中读取目标设备下挂的指定内存条的序列存在检测SPD信息之后,在未读取到SPD信息的情况下,启动定时器,其中,定时器的定时时间为预设的、相邻两次读取指定内存条的SPD信息的时间间隔;
第四读取单元,用于在定时器的定时时间到达的情况下,通过基本输入输出系统重新从内存扩展控制器的配置空间寄存器中读取指定内存条的SPD信息。
可选地,上述装置还包括:
第一获取单元,用于在通过基本输入输出系统从目标设备的内存扩展控制器的配置空间寄存器中读取目标设备下挂的指定内存条的序列存在检测SPD信息之前,从内存扩展控制器的配置空间寄存器中获取与指定内存条的SPD信息对应的第一比特位信息,其中,第一比特位信息用于标识内存扩展控制器的配置空间寄存器中存储的SPD信息是否有效,从内存扩展控制器的配置空间寄存器中读取指定内存条的SPD信息是在第一比特位信息用于标识内存扩展控制器的配置空间寄存器中存储的SPD信息有效的情况下执行的。
可选地,所述指定内存条为一组内存条;上述装置还包括:
第二获取单元,用于在发生内存故障的情况下,从所述内存扩展控制器的配置空间寄存器中获取与所述一组内存条对应的故障指示信息,其中,与所述一组内存条对应的故障指示信息用于指示所述一组内存条中的每个内存条是否发生故障;
定位单元,用于根据与所述一组内存条对应的故障指示信息进行故障定位,以定位出所述一组内存条中发生故障的内存条。
可选地,所述第二获取单元包括:
获取模块,用于在发生内存故障的情况下,从所述内存扩展控制器的配置空间寄存器中获取与所述一组内存条中的每个内存条对应的第二比特位信息,其中,与所述每个内存条对应的第二比特位信息用于指示所述每个内存条是否发生故障。
可选地,上述装置还包括:
存储单元,用于在所述内存扩展控制器与一组主机端服务器相连的情况下,在一个所述指定内存条的不同区域中分别存储与所述一组主机端服务器中的每个主机端服务器对应的SPD信息。
可选地,上述装置还包括:
第五读取单元,用于在所述在一个所述指定内存条的不同区域中分别存储与所述一组主机端服务器中的每个主机端服务器对应的SPD信息之后,在所述内存扩展控制器上电之后,通过所述内存扩展控制器读取所述目标设备下挂的所述指定内存条的SPD信息;
更新单元,用于根据所述指定内存条的不同区域的大小,对读取到的所述指定内存条的SPD信息中的内存大小进行更新,并写入到所述内存扩展控制器的配置空间寄存器中,其中,更新前的所述指定内存条的SPD信息中的内存大小为所述指定内存条的内存大小。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
根据本申请实施例的又一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
根据本申请实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请实施例,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请实施例的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。

Claims (20)

1.一种资产信息的上报方法,其特征在于,包括:
在目标设备支持内存扩展的情况下,通过基本输入输出系统从所述目标设备的内存扩展控制器的配置空间寄存器中读取所述目标设备下挂的指定内存条的序列存在检测SPD信息,其中,所述目标设备为支持开放式互连标准CXL协议的设备;
在读取到目标SPD信息的情况下,通过所述基本输入输出系统将所述目标SPD信息作为系统资产信息上报至所述目标设备的中央处理器。
2.根据权利要求1所述的方法,其特征在于,所述在目标设备支持内存扩展的情况下,通过基本输入输出系统从所述目标设备的内存扩展控制器的配置空间寄存器中读取所述目标设备下挂的指定内存条的序列存在检测SPD信息,包括:
在所述目标设备支持内存扩展的情况下,通过所述基本输入输出系统按照内存映射的方式访问所述内存扩展控制器的配置空间寄存器,以从所述内存扩展控制器的配置空间寄存器中读取所述目标设备下挂的所述指定内存条的SPD信息。
3.根据权利要求1所述的方法,其特征在于,所述在读取到目标SPD信息的情况下,通过所述基本输入输出系统将所述目标SPD信息作为系统资产信息上报至所述目标设备的中央处理器,包括:
在读取到所述目标SPD信息的情况下,通过所述基本输入输出系统将所述目标SPD信息添加到所述基本输入输出系统的指定数据结构中,以将所述目标SPD信息作为所述基本输入输出系统的系统资产信息上报至所述目标设备的中央处理器,其中,所述指定数据结构是用于进行系统资产信息的上报的数据结构。
4.根据权利要求1所述的方法,其特征在于,在所述在目标设备支持内存扩展的情况下,通过基本输入输出系统从所述目标设备的内存扩展控制器的配置空间寄存器中读取所述目标设备下挂的指定内存条的序列存在检测SPD信息之前,所述方法还包括:
在所述内存扩展控制器上电之后,通过所述内存扩展控制器读取所述目标设备下挂的所述指定内存条的SPD信息;
将读取到的所述指定内存条的SPD信息写入到所述内存扩展控制器的配置空间寄存器中。
5.根据权利要求4所述的方法,其特征在于,所述内存扩展控制器的配置空间寄存器为指定供应商特定扩展能力DVSEC寄存器;所述将读取到的所述指定内存条的SPD信息写入到所述内存扩展控制器的配置空间寄存器中,包括:
将读取到的所述指定内存条的SPD信息写入到一个所述DVSEC寄存器中,其中,所述DVSEC寄存器的空间大小为指定空间大小。
6.根据权利要求4所述的方法,其特征在于,所述内存扩展控制器的配置空间寄存器为指定供应商特定扩展能力DVSEC寄存器;所述将读取到的所述指定内存条的SPD信息写入到所述内存扩展控制器的配置空间寄存器中,还包括:
将从多个数据块中的每个数据块中读取到的子SPD信息分别写入到一个所述DVSEC寄存器中,其中,所述指定内存条的SPD信息被划分为多个子SPD信息,所述多个子SPD信息中的每个子SPD信息被分别存储到所述每个数据块中的一个数据块中。
7.根据权利要求6所述的方法,其特征在于,在所述将从多个数据块中的每个数据块中读取到的子SPD信息分别写入到一个所述DVSEC寄存器中之前,所述方法还包括:
根据所述每个数据块的空间大小,为所述每个数据块设置对应的所述DVSEC寄存器,其中,与所述每个数据块设置对应的所述DVSEC寄存器的空间大小大于或者等于所述每个数据块的空间大小。
8.根据权利要求6所述的方法,其特征在于,在所述将从多个数据块中的每个数据块中读取到的子SPD信息分别写入到一个所述DVSEC寄存器中之前,所述方法还包括:
对所述多个数据块中的每个数据块进行编号;
为所述每个数据块设置对应的寄存器标识,其中,与所述每个数据块对应的寄存器标识包括:用于标识与所述每个数据块对应的所述DVSEC寄存器的寄存器供应商的第一寄存器标识,用于标识与所述每个数据块对应的所述DVSEC寄存器的第二寄存器标识,与所述每个数据块对应的所述第二寄存器标识中的部分标识与所述每个数据块的编号匹配。
9.根据权利要求4所述的方法,其特征在于,在所述通过所述内存扩展控制器读取所述目标设备下挂的所述指定内存条的SPD信息之后,所述方法还包括:
确定与读取到的所述指定内存条的SPD信息对应的第一哈希值;
比较所述第一哈希值和与所述内存扩展控制器的配置空间寄存器中已记录的SPD信息对应的第二哈希值,其中,将读取到的所述指定内存条的SPD信息写入到所述内存扩展控制器的配置空间寄存器中是在所述第一哈希值和所述第二哈希值不一致的情况下执行的。
10.根据权利要求1所述的方法,其特征在于,在所述在目标设备支持内存扩展的情况下,通过基本输入输出系统从所述目标设备的内存扩展控制器的配置空间寄存器中读取所述目标设备下挂的指定内存条的序列存在检测SPD信息之前,所述方法还包括:
通过所述基本输入输出系统从所述目标设备的内存扩展控制器的特定配置空间寄存器中读取内存扩展指示信息,其中,所述特定配置空间寄存器为记录所述目标设备的设备类型的配置空间寄存器,所述内存扩展指示信息用于指示所述目标设备是否支持内存扩展;
在所述内存扩展指示信息指示所述目标设备支持内存扩展的情况下,确定所述目标设备支持内存扩展。
11.根据权利要求10所述的方法,其特征在于,在所述通过所述基本输入输出系统从所述目标设备的内存扩展控制器的特定配置空间寄存器中读取内存扩展指示信息之后,所述方法还包括:
在所述内存扩展指示信息指示所述目标设备不支持内存扩展的情况下,确定所述目标设备没有SPD信息。
12.根据权利要求1所述的方法,其特征在于,在所述通过基本输入输出系统从所述目标设备的内存扩展控制器的配置空间寄存器中读取所述目标设备下挂的指定内存条的序列存在检测SPD信息之后,所述方法还包括:
在未读取到SPD信息的情况下,启动定时器,其中,所述定时器的定时时间为预设的、相邻两次读取所述指定内存条的SPD信息的时间间隔;
在所述定时器的定时时间到达的情况下,通过所述基本输入输出系统重新从所述内存扩展控制器的配置空间寄存器中读取所述指定内存条的SPD信息。
13.根据权利要求1所述的方法,其特征在于,在所述通过基本输入输出系统从所述目标设备的内存扩展控制器的配置空间寄存器中读取所述目标设备下挂的指定内存条的序列存在检测SPD信息之前,所述方法还包括:
从所述内存扩展控制器的配置空间寄存器中获取与所述指定内存条的SPD信息对应的第一比特位信息,其中,所述第一比特位信息用于标识所述内存扩展控制器的配置空间寄存器中存储的SPD信息是否有效,从所述内存扩展控制器的配置空间寄存器中读取所述指定内存条的SPD信息是在所述第一比特位信息用于标识所述内存扩展控制器的配置空间寄存器中存储的SPD信息有效的情况下执行的。
14.根据权利要求1所述的方法,其特征在于,所述指定内存条为一组内存条;所述方法还包括:
在发生内存故障的情况下,从所述内存扩展控制器的配置空间寄存器中获取与所述一组内存条对应的故障指示信息,其中,与所述一组内存条对应的故障指示信息用于指示所述一组内存条中的每个内存条是否发生故障;
根据与所述一组内存条对应的故障指示信息进行故障定位,以定位出所述一组内存条中发生故障的内存条。
15.根据权利要求14所述的方法,其特征在于,所述在发生内存故障的情况下,从所述内存扩展控制器的配置空间寄存器中获取与所述一组内存条对应的故障指示信息,包括:
在发生内存故障的情况下,从所述内存扩展控制器的配置空间寄存器中获取与所述一组内存条中的每个内存条对应的第二比特位信息,其中,与所述每个内存条对应的第二比特位信息用于指示所述每个内存条是否发生故障。
16.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述内存扩展控制器与一组主机端服务器相连的情况下,在一个所述指定内存条的不同区域中分别存储与所述一组主机端服务器中的每个主机端服务器对应的SPD信息。
17.根据权利要求16所述的方法,其特征在于,在所述在一个所述指定内存条的不同区域中分别存储与所述一组主机端服务器中的每个主机端服务器对应的SPD信息之后,所述方法还包括:
在所述内存扩展控制器上电之后,通过所述内存扩展控制器读取所述目标设备下挂的所述指定内存条的SPD信息;
根据所述指定内存条的不同区域的大小,对读取到的所述指定内存条的SPD信息中的内存大小进行更新,并写入到所述内存扩展控制器的配置空间寄存器中,其中,更新前的所述指定内存条的SPD信息中的内存大小为所述指定内存条的内存大小。
18.一种资产信息的上报装置,其特征在于,包括:
第一读取单元,用于在目标设备支持内存扩展的情况下,通过基本输入输出系统从所述目标设备的内存扩展控制器的配置空间寄存器中读取所述目标设备下挂的指定内存条的序列存在检测SPD信息,其中,所述目标设备为支持开放式互连标准CXL协议的设备;
上报单元,用于在读取到目标SPD信息的情况下,通过所述基本输入输出系统将所述目标SPD信息作为系统资产信息上报至所述目标设备的中央处理器。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至17任一项中所述的方法的步骤。
20.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至17任一项中所述的方法的步骤。
CN202310767751.5A 2023-06-27 2023-06-27 资产信息的上报方法及装置、存储介质及电子设备 Active CN116521429B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310767751.5A CN116521429B (zh) 2023-06-27 2023-06-27 资产信息的上报方法及装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310767751.5A CN116521429B (zh) 2023-06-27 2023-06-27 资产信息的上报方法及装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN116521429A true CN116521429A (zh) 2023-08-01
CN116521429B CN116521429B (zh) 2023-08-29

Family

ID=87397923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310767751.5A Active CN116521429B (zh) 2023-06-27 2023-06-27 资产信息的上报方法及装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN116521429B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116881016A (zh) * 2023-09-06 2023-10-13 苏州浪潮智能科技有限公司 服务器进程的处理方法及装置、存储介质及电子设备
CN117112452A (zh) * 2023-08-24 2023-11-24 上海合芯数字科技有限公司 寄存器模拟配置方法、装置、计算机设备和存储介质
CN117785489A (zh) * 2024-02-27 2024-03-29 苏州元脑智能科技有限公司 一种服务器及一种任务执行方法、装置和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030179598A1 (en) * 2002-03-20 2003-09-25 Yu-Guang Chen Device for selectively providing read-only data
CN109358908A (zh) * 2018-11-01 2019-02-19 郑州云海信息技术有限公司 一种获取内存条的spd信息的方法、装置及存储介质
CN113608684A (zh) * 2021-06-30 2021-11-05 苏州浪潮智能科技有限公司 内存信息获取方法、装置、系统、电子设备及存储介质
US20220382688A1 (en) * 2021-06-01 2022-12-01 Microchip Technology Inc. System and method for bypass memory read request detection
CN115686153A (zh) * 2022-12-29 2023-02-03 浪潮电子信息产业股份有限公司 一种内存模组及一种电子设备
CN116225177A (zh) * 2023-05-06 2023-06-06 苏州浪潮智能科技有限公司 内存系统、内存资源调节方法、装置、电子设备和介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030179598A1 (en) * 2002-03-20 2003-09-25 Yu-Guang Chen Device for selectively providing read-only data
CN109358908A (zh) * 2018-11-01 2019-02-19 郑州云海信息技术有限公司 一种获取内存条的spd信息的方法、装置及存储介质
US20220382688A1 (en) * 2021-06-01 2022-12-01 Microchip Technology Inc. System and method for bypass memory read request detection
CN113608684A (zh) * 2021-06-30 2021-11-05 苏州浪潮智能科技有限公司 内存信息获取方法、装置、系统、电子设备及存储介质
CN115686153A (zh) * 2022-12-29 2023-02-03 浪潮电子信息产业股份有限公司 一种内存模组及一种电子设备
CN116225177A (zh) * 2023-05-06 2023-06-06 苏州浪潮智能科技有限公司 内存系统、内存资源调节方法、装置、电子设备和介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117112452A (zh) * 2023-08-24 2023-11-24 上海合芯数字科技有限公司 寄存器模拟配置方法、装置、计算机设备和存储介质
CN117112452B (zh) * 2023-08-24 2024-04-02 上海合芯数字科技有限公司 寄存器模拟配置方法、装置、计算机设备和存储介质
CN116881016A (zh) * 2023-09-06 2023-10-13 苏州浪潮智能科技有限公司 服务器进程的处理方法及装置、存储介质及电子设备
CN116881016B (zh) * 2023-09-06 2024-01-19 苏州浪潮智能科技有限公司 服务器进程的处理方法及装置、存储介质及电子设备
CN117785489A (zh) * 2024-02-27 2024-03-29 苏州元脑智能科技有限公司 一种服务器及一种任务执行方法、装置和存储介质
CN117785489B (zh) * 2024-02-27 2024-05-10 苏州元脑智能科技有限公司 一种服务器及一种任务执行方法、装置和存储介质

Also Published As

Publication number Publication date
CN116521429B (zh) 2023-08-29

Similar Documents

Publication Publication Date Title
CN116521429B (zh) 资产信息的上报方法及装置、存储介质及电子设备
CN106571954B (zh) 一种ap设备的异常重启原因检测方法及装置
CN111737173B (zh) I2c总线通信控制方法、装置、系统及可读存储介质
CN111857840B (zh) 基本输入输出系统bios启动方法及装置
CN110765032A (zh) 基于系统管理总线接口对i2c存储器进行读写的方法
CN103077102A (zh) 计算机开机侦测系统
CN112130911A (zh) 一种数据交互方法、装置、系统及电子设备和存储介质
CN112835528A (zh) 脏页刷新方法和装置、电子设备和存储介质
US9323539B2 (en) Constructing persistent file system from scattered persistent regions
US11226755B1 (en) Core dump in a storage device
US20210149804A1 (en) Memory Interleaving Method and Apparatus
CN112003960B (zh) 工控设备的网络接口管理方法、装置和电子装置
CN107957923B (zh) 一种内存诊断方法和装置
US10911259B1 (en) Server with master-slave architecture and method for reading and writing information thereof
CN111142787A (zh) 存储分层的数据交换测试方法、系统、终端及存储介质
CN108008908A (zh) 一种管控sd卡上数据的方法和装置
US11687253B2 (en) Configuration of a computational drive
CN116521608A (zh) 数据迁移方法及计算设备
CN114281570B (zh) 嵌入式控制电路、控制方法、装置及芯片
WO2016101177A1 (zh) 计算机设备内存的检测方法和计算机设备
CN115794232A (zh) 一种vpd获取方法、装置、设备及计算机可读存储介质
CN115454896A (zh) 基于smbus的ssd mctp控制消息验证方法、装置、计算机设备及存储介质
CN113821369A (zh) 一种内存巡检的方法、装置及介质
US10642494B2 (en) Method, electronic device and computer program product for data processing
CN115687173B (zh) 一种数据地址查询方法、装置、电子设备及可读存储介质

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
GR01 Patent grant
GR01 Patent grant