一种内存信息的读取方法、装置、服务器及介质与流程

文档序号:22627250发布日期:2020-10-23 19:35阅读:156来源:国知局
一种内存信息的读取方法、装置、服务器及介质与流程

本申请属于服务器技术领域,尤其涉及一种内存信息的读取方法、装置、服务器及介质。



背景技术:

基板管理控制器(baseboardmanagercontroller,bmc)通过监控系统的电源、温度等来保证系统处于正常运行的状态。在对服务器进行监控的过程中,bmc需要读取内存信息,如内存产品序列号(serialnumber,sn),温度等。

在国产服务器平台中,目前中央处理器(centralprocessingunit/processor,cpu)和bmc读取内存信息都是通过集成电路总线(inter-integratedcircuit,iic)读取。当bmc也需要读取内存信息时,则存在两个主设备访问一个从设备的情况。根据iic通讯标准,同一时间里两个传输数据的设备不能同时处于主模式,即两个只具有主模式的设备是无法直接通讯的,必须一个器件处于主模式,另一个设备处于从模式,且同一时间只能有一个设备发送数据,即一次数据的传输是:主设备发送数据,从设备接收数据;或从设备发送数据,主设备接收数据。

因此,bmc与cpu都作为iic主设备,不能同时直接对内存串行存在探测(serialpresencedetect,spd)寄存器信息进行读取。目前也可以使用开关切换iic通道,选择内存iic连接bmc或者cpu,在同一时间只能有一方连接内存iic,但是,实际使用过程中,对切换通道的时机比较严格,因为如果某一设备还没有结束通信,就切换通道给另一设备,就容易出现内存iic挂死现象。



技术实现要素:

本申请实施例提供了一种内存信息的读取方法、装置、服务器及介质,可以解决基板管理控制器和中央处理器不能同时通过iic总线读取内存信息的问题。

第一方面,本申请实施例提供了一种内存信息的读取方法,应用于服务器,所述服务器包括复杂可编程逻辑器件cpld,所述方法包括:

通过所述cpld的主模块读取内存单元的内存信息,并将所述内存信息存储至所述cpld的寄存器,所述寄存器与至少一个从模块连接,所述至少一个从模块分别与一一对应的目标单元连接;

当接收到来自目标单元的内存信息读取请求时,通过所述目标单元对应的从模块读取所述寄存器中的内存信息,并将所述内存信息发送至所述目标单元。

第二方面,本申请实施例提供了一种内存信息的读取装置,应用于服务器,所述服务器包括复杂可编程逻辑器件cpld,所述装置包括:

内存信息读取模块,用于通过所述cpld的主模块读取内存单元的内存信息,并将所述内存信息存储至所述cpld的寄存器,所述寄存器与至少一个从模块连接,所述至少一个从模块分别与一一对应的目标单元连接;

内存信息发送模块,用于当接收到来自目标单元的内存信息读取请求时,通过所述目标单元对应的从模块读取所述寄存器中的内存信息,并将所述内存信息发送至所述目标单元。

第三方面,本申请实施例提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法。

第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行上述第一方面中所述的方法。

本申请实施例与现有技术相比存在的有益效果是:在本申请实施例中,在cpld中创建一个主模块和多个从模块,主模块和从模块均与cpld内部的寄存器相连,主模块与外部的内存单元相连,从模块分别对应连接一个需要读取内存信息的目标单元;通过cpld的主模块从内存单元中读取内存信息,然后将内存信息存储在寄存器中;目标单元通过对应连接的从模块从寄存器中读取内存信息。本申请实施例使用cpld可以读取、存储和发送内存信息,使得各个目标单元可以通过所连接的从模块随时读取内存信息,且多个目标单元同时访问内存信息时不会发生冲突。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例一提供的一种内存信息的读取方法的流程示意图;

图2是本申请实施例二提供的一种内存信息的读取方法的流程示意图;

图3是本申请实施例三提供的一种内存信息的读取方法的流程示意图;

图4是本申请实施例四提供的一种内存信息读取装置的结构示意图;

图5是本申请实施例五提供的一种内存信息读取装置的结构示意图;

图6是本申请实施例五提供的时序逻辑控制的示意图;

图7是本申请实施例六提供的一种服务器的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其他特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

图1是本申请实施例一提供的一种内存信息的读取方法的流程示意图,如图1所示,所述方法包括:

s101,通过所述cpld的主模块读取内存单元的内存信息,并将所述内存信息存储至所述cpld的寄存器,所述寄存器与至少一个从模块连接,所述至少一个从模块分别与一一对应的目标单元连接;

本实施例的方法可以应用在服务器中的。这些服务器一般为使用国产平台,例如飞腾平台的服务器。在x86平台,中央处理器通过集成电路(integratedcircuit,ic)读取内存条spd寄存器信息,并在内部解析,但是,在飞腾平台中,中央处理器不能解析spd寄存器信息,读取内存信息是通过iic总线来读取的。根据iic通讯协议,在同一时间,只能有一个主设备使用iic总线,因此两个设备不能同时通过iic总线读取内存信息。

本实施例中使用了一个cpld,cpld通过模拟iic时序,模拟搭建一个主iic设备和多个从iic设备。上述主模块为cpld模拟的主iic设备,上述从模块为cpld模拟的从iic设备。cpld中还可以包括分别与主模块和各个从模块连接的寄存器。

上述内存信息可以为存储在内存spd寄存器中的信息,例如,内存产品序列号,温度等。主模块拥有与内存连接的iic总线的使用权,可以通过内存地址去读取内存信息,并通过iic总线接收内存信息,然后将内存信息存储在cpld的寄存器中。

s102,当接收到来自目标单元的内存信息读取请求时,通过所述目标单元对应的从模块读取所述寄存器中的内存信息,并将所述内存信息发送至所述目标单元。

具体地,上述目标单元为需要读取内存信息的单元,比如在开机自检过程中,中央处理器需要访问内存spd寄存器获取内存信息才能开机;基板管理控制器需要实时读取内存信息以保障服务器正常运行。

具体地,一个目标单元可以与一个从模块对应相连,当目标单元需要读取内存信息时,可以向从模块发送内存信息读取指令,然后从模块接收到指令后从寄存器中读取内存信息并发送给目标单元。

在一种可能的实现方式中,各个目标单元可以分别与cpld的寄存器通过iic总线连接,一个目标单元拥有与寄存器连接的iic总线的使用权,并存储有寄存器的地址;当需要读取内存信息时,目标单元通过iic总线和寄存器地址,读取寄存器中的内存信息,然后通过iic总线接收内存信息。

本实施例中,在cpld中创建一个主模块和至少一个从模块,主模块可以读取内存信息并将读取的内存信息存放在寄存器中;需要读取内存信息的目标单元,可以通过从模块从寄存器中读取内存信息,不直接从内存中读取信息,因而多个设备可以同时通过iic读取到内存信息。

图2是本申请实施例二提供的一种内存信息的读取方法的流程示意图,如图2所示,所述方法包括:

s201,每隔预设时间间隔,通过所述主模块读取内存单元的内存信息,并将所述内存信息存储至所述cpld的寄存器;

本实施例可以应用在服务器中的,所述服务器可以使用飞腾服务器平台。

具体地,利用cpld作为内存信息读取的过渡单元,在cpld中创建一个主模块和多个从模块。主模块与内存通过iic总线相连,主模块通过iic总线发送读取内存信息的地址和指令,然后通过iic总线接收内存发送的内存信息,并将其存储在寄存器中。

s202,当接收到来自中央处理器的内存信息读取请求时,通过所述第一从模块读取所述寄存器中存储的内存信息,并将所述内存信息发送至所述中央处理器;

具体地,在开机自检过程中,中央处理器需要访问内存spd信息才能开机,所以中央处理器在开机的时候,可以通过所连接的第一从模块从寄存器中读取内存信息,用于开机自检。

当第一从模块接收到来自中央处理器的内存信息读取请求时,可以从所连接的寄存器中读取内存信息,然后通过iic总线发送至中央处理器。

s203,当接收到来自基板管理控制器的内存信息读取请求时,通过所述第二从模块读取所述寄存器中存储的内存信息,并将所述内存信息发送至所述基板管理控制器。

具体地,基板管理控制器,可以远程监控和管理服务器,在服务器进行监控过程中,需要随时读取内存信息,比如随时查看内存温度。基板管理控制器通过监控服务器的电源、温度等来保证系统处于正常运行的状态。

基板管理控制器可以和第二从模块相连,然后通过第二从模块,从寄存器中读取内存信息。因为主模块可以每隔预设时间读取内存信息并存储在寄存器中,所以基板管理控制器可以随时读取到内存信息。

在本申请实施例中,基板管理控制器和中央处理器均可以通过所连接的从模块从cpld的寄存器中读取内存信息,避免了二者直接通过iic总线同时从内存spd寄存器中直接读取信息时的冲突。

图3是本申请实施例三提供的一种内存信息的读取方法的流程示意图,如图3所示,所述方法包括:

s301,当服务器开机时,控制所述内存单元上电并控制所述中央处理器处于断电状态;

具体地,当服务器连接电源时,基板管理控制器和cpld在服务器中,都是一直通电运行状态,只要通了外部电,基板管理控制器和cpld就开始工作。

开机自检过程中,因为中央处理器需要从内存单元中读取内存信息,因此可以控制内存单元先上电,而中央处理先不上电。

s302,在通过所述主模块读取所述内存单元的内存信息并将所述内存信息存储至所述cpld的寄存器后,控制所述中央处理器上电;

具体地,内存上电后,cpld通过主模块从内存spd寄存器中获取内存信息,然后将内存信息存储在cpld的寄存器中。一般,内存spd寄存器的地址是固定的,因此主模块可以直接通过iic总线发送要访问的地址和有关内存信息读取的命令;之后再通过iic总线接收传输过来的内存信息,并将内存信息存储在cpld的寄存器中。

s303,当接收到来自中央处理器的内存信息读取请求时,通过所述第一从模块读取所述寄存器中存储的内存信息,并将所述内存信息发送至所述中央处理器;

s304,当接收到来自基板管理控制器的内存信息读取请求时,通过所述第二从模块读取所述寄存器中存储的内存信息,并将所述内存信息发送至所述基板管理控制器;

本实施例中的s303-s304与上述实施例中的s202-s203类似,可以相互参考,在此不赘述。

s305,通过所述cpld的主模块读取时钟芯片的时钟信息,并将所述时钟信息存储至所述cpld的寄存器;

采用一个cpld模块,作为读取时钟芯片的时钟信息的过渡单元,可以实现多个目标单元对时钟信息的同时读取。具体地,可以在cpld模块中创建一个主模块和多个从模块;主模块可以与时钟芯片通过iic总线连接,从模块可以分别与需要读取时钟信息的目标单元连接;cpld中包括寄存器,主模块和各个从模块均与寄存器相连。

cpld的主模块可以通过iic总线读取时钟芯片的时钟信息,并将时钟信息存储在相连的寄存器中。

s306,当接收到来自目标单元的时钟信息读取请求时,通过所述目标单元对应的从模块读取所述寄存器中的时钟信息,并将所述时钟信息发送至所述目标单元。

上述目标单元可以包括基板管理控制器和中央处理器。

具体地,各个目标单元分别与从模块通过iic总线连接,当需要读取时钟信息时,目标单元通过iic总线向所连接的从模块发送时钟信息读取请求,从模块接收到时钟信息读取请求后,从寄存器中读取时钟信息,并将时钟信息通过iic总线发送至目标单元。

本实施例中,通过cpld模块进行上电时序控制,在内存上电并读取内存信息后,再对中央处理器上电,避免中央处理器读取内存信息时,内存还未上电的状况,采用cpld控制时序,减少了软件的调试难度;另外还可以使用cpld模块使不同目标单元同时读取时钟芯片的时钟信息;各个目标单元可以通过iic总线并行获取信息,互不干扰。

图4是本申请实施例四提供的一种内存信息读取装置4的结构示意图,如图4所示,所述装置4包括:

内存信息读取模块41,用于通过所述cpld的主模块读取内存单元的内存信息,并将所述内存信息存储至所述cpld的寄存器,所述寄存器与至少一个从模块连接,所述至少一个从模块分别与一一对应的目标单元连接;

内存信息发送模块42,用于当接收到来自目标单元的内存信息读取请求时,通过所述目标单元对应的从模块读取所述寄存器中的内存信息,并将所述内存信息发送至所述目标单元。

上述内存信息读取模块41包括:

读取子模块,用于每隔预设时间间隔,通过所述主模块读取内存单元的内存信息,并将所述内存信息存储至所述cpld的寄存器。

上述装置中,目标单元包括所述服务器的中央处理器,所述至少一个从模块包括分别与所述寄存器和所述中央处理器连接的第一从模块,上述内存信息发送模块42包括:

第一内存信息发送子模块,用于当接收到来自中央处理器的内存信息读取请求时,通过所述第一从模块读取所述寄存器中存储的内存信息,并将所述内存信息发送至所述中央处理器。

上述装置中,所述目标单元包括所述服务器的基板管理控制器,所述至少一个从模块包括分别与所述寄存器和所述基板管理控制器连接的第二从模块,上述内存信息发送模块42还包括:

第二内存信息发送子模块,用于当接收到来自基板管理控制器的内存信息读取请求时,通过所述第二从模块读取所述寄存器中存储的内存信息,并将所述内存信息发送至所述基板管理控制器。

上述装置4还包括:

内存上电控制模块,用于当服务器开机时,控制所述内存单元上电并控制所述中央处理器处于断电状态;

中央处理器上电控制模块,用于在通过所述主模块读取所述内存单元的内存信息并将所述内存信息存储至所述cpld的寄存器后,控制所述中央处理器上电。

上述装置4还包括:

时钟信息读取模块,用于通过所述cpld的主模块读取时钟芯片的时钟信息,并将所述时钟信息存储至所述cpld的寄存器,

时钟信息发送模块,用于当接收到来自目标单元的时钟信息读取请求时,通过所述目标单元对应的从模块读取所述寄存器中的时钟信息,并将所述时钟信息发送至所述目标单元。

图5是本申请实施例五提供的一种内存信息读取装置的结构示意图,如图5所示,所述装置包括cpld模块,cpld模块中包括一个主iic模块和两个从iic模块;主iic模块和从iic模块都连接在寄存器上。主iic模块与内存spd寄存器通过iic总线连接,两个从模块分别与基板管理控制器bmc和中央处理器cpu通过iic总线连接。cpld可以进行时序控制,图6为cpld的时序逻辑控制图。

当开机时,cpld控制内存上电,之后cpld的主模块,通过iic总线读取内存spd寄存器中的内存信息,然后将读取到的内存信息存储在寄存器中;然后cpld再控制中央处理器上电,在开机自检过程中,中央处理器可以通过iic总线发送内存信息读取指令,当与中央处理器相连的从模块接收到来自中央处理器的内存信息读取指令时,从寄存器中读取内存信息,然后将内存信息通过iic总线发送至中央处理器。中央处理器采用接收到的内存信息完成开机自检过程。

在服务器连接电源的情况下,cpld和基板管理控制器均处于上电状态。基板管理控制器读取内存信息用于监控服务器运行状态,一般需要随时获取到内存信息。cold中的主模块可以每隔预设时间读取内存信息然后存储在寄存器中,当与基板管理控制器相连的从模块接收到来自基板管理控制器的内存信息读取请求时,从寄存器中获取最新读取的内存信息,并将内存信息通过iic总线发送至基板管理控制器。

另外,图5中的cpld这一结构也可以用于其他读取信息的场景下。例如,可以将cpld的主模块与时钟系芯片相连,两个从模块分别与中央处理器和基板管理控制器相连,这样中央处理器和基板管理控制器可以通过cpld随时读取时钟芯片的时钟信息,且在同时读取信息时,不会发生冲突。

图7为本申请实施例六提供的服务器的结构示意图。如图7所示,该实施例的服务器7包括:至少一个处理器70(图7中仅示出一个)处理器、存储器71以及存储在所述存储器71中并可在所述至少一个处理器70上运行的计算机程序72,所述处理器70执行所述计算机程序72时实现上述任意各个方法实施例中的步骤。

所述服务器7可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是服务器7的举例,并不构成对服务器7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。

所称处理器70可以是中央处理单元(centralprocessingunit,cpu),该处理器70还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器71在一些实施例中可以是所述服务器7的内部存储单元,例如服务器7的硬盘或内存。所述存储器71在另一些实施例中也可以是所述服务器7的外部存储设备,例如所述服务器7上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器71还可以既包括所述服务器7的内部存储单元也包括外部存储设备。所述存储器71用于存储操作系统、应用程序、引导装载程序(bootloader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。

需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。

本申请实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行时实现可实现上述各个方法实施例中的步骤。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/服务器的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/服务器和方法,可以通过其他的方式实现。例如,以上所描述的装置/服务器实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其他的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1