基板控制器获取内存温度的方法以及装置与流程

文档序号:20874872发布日期:2020-05-26 16:21阅读:650来源:国知局
基板控制器获取内存温度的方法以及装置与流程

本发明涉及计算机技术领域,具体来说,涉及一种基板控制器获取内存温度的方法以及装置。



背景技术:

内存温度为bmc(基板控制器)监控的运行服务器的重要参数之一,bmc需要通过内存温度的变化进行相应的散热处理,确保其不影响服务器的正常运行。当前各平台服务器对bmc获取内存温度的方式有以下几种,intel平台可以通过ipmi命令从nm中获取或者通过peci接口直接从cpu获取。对于其他没有直接获取内存温度接口的平台(amd等),会在内存周围放置温度传感器用于温度的读取。本方法采用bmc通过i2c接口与内存spd的相连的方式进行内存温度的读取,可以作为intel平台内存温度读取的备选方案或替代当前intel的读取方案,同时可以作为amd等平台获取内存温度的首选方案。

然而,现有的内存温度读取方法存在以下问题:

1,非intel平台的机器获取内存温度是采用在内存周围放置温度传感器的方式,不能准确的反应每根内存的温度,同时会增加多使用的温度传感器的成本。

2,intel平台可以通过ipmi命令从nodemanager或者通过peci命令从cpu获取,其温度源也为内存spd信息,属于间接获取。没有直接从spd获取快速。

3,因为bios在post过程中也要获取内存spd的信息,如启动过程中未扫到内存的spd信息,将会影响整个系统的正常运行。即涉及到bmc和bios对内存spd的访问权限切换的问题。



技术实现要素:

针对相关技术中的上述问题,本发明提出一种基板控制器获取内存温度的方法以及装置。

本发明的技术方案是这样实现的:

根据本发明的一个方面,提供了一种基板控制器获取内存温度的方法,包括:

通过控制切换开关处于第一状态,使得cpu与多个内存连通并读取多个内存的spd信息,其中,spd信息是内存中的存储的与内存相关联的信息;

cpu控制切换开关处于第二状态,使得基板控制器与多个内存连通,并将开关处于第二状态的状态信号发送至基板控制器;

基板控制器在接收到状态信号之后,读取多个内存的spd信息以通过spd信息获取多个内存的温度。

根据本发明的实施例,在控制切换开关处于第一状态之后,还包括:cpu将开关处于第一状态的状态信号发送至基板控制器。

根据本发明的实施例,基板控制器读取多个内存温度包括:通过切换连接在多个内存与基板控制器之间的i2c扩展芯片的多个通道,来获取分别与多个通道连接的多个内存中的每个的温度。

根据本发明的实施例,基板控制器读取多个内存温度包括:基板控制器在接收到状态信号之后使能内存温度读取函数,并通过内存温度读取函数读取多个内存温度。

根据本发明的另一方面,提供了一种基板控制器获取内存温度的装置,包括:

切换开关,分别与cpu、基板控制器和多个内存连接;

其中,当切换开关处于第一状态时,cpu与多个内存连通并读取多个内存的spd信息;

当切换开关处于第二状态时,基板控制器与多个内存连通,并将开关处于第二状态的状态信号发送至基板控制器;

基板控制器在接收到状态信号之后,读取多个内存的spd信息以通过spd信息获取多个内存的温度。

根据本发明的实施例,在控制切换开关处于第一状态之后,还包括:cpu将开关处于第一状态的状态信号发送至基板控制器。

根据本发明的实施例,基板控制器获取内存温度的装置还包括:i2c扩展芯片,连接在多个内存与切换开关之间,其中,通过切换i2c扩展芯片的分别与多个通道连接的多个通道,来获取多个内存中的每个的温度。

根据本发明的实施例,基板控制器在接收到状态信号之后使能内存温度读取函数,并通过内存温度读取函数读取多个内存温度。

本发明的上述技术方案,通过控制切换开关来使得bmc能够直接读取内存的spd信息以获取内存温度,从而通过简单的线路实现简化了电路布局并减少了非intel平台获取内存温度传感器的成本,另外,相比于通过在内存附近放置温度传感器的现有方法,读取的温度更准确。

附图说明

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

图1是根据本发明实施例的基板控制器获取内存温度的方法的流程图;

图2是根据本发明实施例的基板控制器获取内存温度的原理示意图;

图3是根据本发明具体实施例的基板控制器获取内存温度的方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,根据本发明的实施例提供了一种bmc获取内存温度的方法,可以包括以下步骤:

s11,通过控制切换开关处于第一状态,使得cpu与多个内存连通并读取多个内存的spd信息,其中,spd信息是内存中的存储的与内存相关联的信息,例如,内存的芯片及模组厂商、工作频率、工作电压、速度、容量、电压与行、列地址带宽等参数。

s12,cpu控制切换开关处于第二状态,使得bmc与多个内存连通,并将开关处于第二状态的状态信号发送至bmc。

s13,bmc在接收到状态信号之后,读取多个内存的spd信息以通过spd信息获取多个内存的温度。

本发明提供的bmc获取内存温度的方法可以用于intel平台内存温度读取,也可以用于amd等平台获取内存温度。

本发明的上述技术方案,通过控制切换开关来使得bmc能够直接读取内存的spd信息以获取内存温度,从而通过简单的线路实现简化了电路布局并减少了非intel平台获取内存温度传感器的成本,另外,相比于通过在内存附近放置温度传感器的现有方法,读取的温度更准确。

在一个实施例中,bmc可以通过切换连接在多个内存40(dimm)与bmc之间的i2c扩展芯片的多个通道,来获取分别与多个通道连接的多个内存40中的每个的温度。参考图2所示,bmc10与服务器cpu20可以分别通过有一条i2c总线连接到一个i2c的切换芯片上,切换芯片的开关31(切换开关)由cpu20端进行控制,通过控制开关31的电平状态可以切换bmc或者cpu20与ic扩展芯片32进行连通。默认状态可以是cpu20与i2c扩展芯片32连通,保证bios可以获取正确的内存spd信息。i2c扩展芯片32保证cpu20或者bmc10可以通过切换不同的通道获取各通道的内存spd信息,在此只列举两个通道但真实应用中不限于两个通道。

在一个具体实施例中,结合图2和图3所示,本发明的方法可以通过以下步骤来执行:

步骤s31,系统上电或者重启。

步骤s32,bios通过设置spd_sw信号状态(第一状态)将i2c扩展芯片对应的bus与cpu端进行连通,

步骤s33,post过程中对内存进行初始化,读取spd信息进行内存相关的配置,在此不进行说明。

在本实施例中,在控制切换开关处于第一状态之后,cpu可以将开关处于第一状态的状态信号发送至bmc。具体的,同时spd_sw信号状态也会传递给bmc,告诉bmc当前没有权限访问内存spd,避免bmc做无意义的读取操作。

步骤s34,bios读取完spd信息并进行完配置工作后,将i2c切换给bmc,使bmc与i2c扩展芯片进行连通。

步骤s35,并将spd_sw信号传递给bmc,bmc接收到信号后进行内存温度读取。在一个实施例中,bmc可以在接收到状态信号之后使能内存温度读取函数,并通过内存温度读取函数读取多个内存温度。具体的,bmc接收到信号后可以使能内存温度读取函数。然后,内存读取函数部分的操作为通过切换i2c扩展芯片的通道,去获取准确的各通道上每根内存的温度。

通过图3所示的流程,bmc可以获取到每根内存的准确温度用于散热处理及温度监控。

参考图2所示,根据本发明的另一方面,提供了一种bmc获取内存温度的装置,包括:

切换开关31,分别与cpu20、bmc10和多个内存连接;

其中,当切换开关31处于第一状态时,cpu20与多个内存连通并读取多个内存的spd信息;

当切换开关31处于第二状态时,bmc10与多个内存连通,并将开关处于第二状态的状态信号发送至bmc;

bmc在接收到状态信号之后,读取多个内存的spd信息以通过spd信息获取多个内存的温度。

根据本发明的实施例,在控制切换开关处于第一状态之后,还包括:cpu将开关处于第一状态的状态信号发送至bmc。

根据本发明的实施例,bmc获取内存温度的装置还包括:i2c扩展芯片,连接在多个内存与切换开关之间,其中,通过切换i2c扩展芯片的分别与多个通道连接的多个通道,来获取多个内存中的每个的温度。

根据本发明的实施例,bmc在接收到状态信号之后使能内存温度读取函数,并通过内存温度读取函数读取多个内存温度。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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