一种实现异构混合内存的方法、BMC、装置及存储介质与流程

文档序号:14742870发布日期:2018-06-19 22:54阅读:194来源:国知局
一种实现异构混合内存的方法、BMC、装置及存储介质与流程

本发明涉及存储技术领域,特别是涉及一种实现异构混合内存的方法、BMC、装置及计算机可读存储介质。



背景技术:

随着存储技术的发展,一种新型存储介质NVM(Non-Volatile Memory,非易失性存储器)逐渐被广泛应用。NVM具有按位存取能力、断电后数据不丢失、存储密度大、静态功耗低、动态功耗高及可扩展性强等优点。但是,NVM的写延迟比目前常用的DRAM(Dynamic Random Access Memory,动态随机存取存储器)慢一个或几个数量级,其写入次数还受限制,所以,为了满足计算机系统的实时性需求,将DRAM和NVM一起连接在系统总线上组合成异构混合内存,异构混合内存组合的关键是如何进行DRAM和NVM之间的通信,从而传递各自所需的内存信息,并且需要考虑如何控制异构混合内存所在的系统完成启动。

因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种实现异构混合内存的方法、BMC、装置及计算机可读存储介质,实现了在系统上电后组合异构混合内存,并控制异构混合内存所在的系统完成启动。

为解决上述技术问题,本发明提供了一种实现异构混合内存的方法,应用于计算机系统中的基板管理控制器BMC,包括:

在所述计算机系统完成上电操作后,引导基本输入输出系统BIOS进行快速通道互联QPI启动;

在所述BIOS完成QPI启动后控制所述计算机系统中的CPU访问该计算机系统中的非易失性存储器NVM的通道连通;

控制所述计算机系统中的动态随机存取存储器DRAM与所述NVM之间的内存信息交互,并引导所述BIOS完成剩余启动流程,控制所述计算机系统完成启动。

优选地,所述控制所述计算机系统中的CPU访问该计算机系统中的非易失性存储器NVM的通道连通的过程具体为:

分别配置所述计算机系统中的第一现场可编程逻辑门阵列FPGA和挂载NVM的第二FPGA;

控制所述计算机系统中的CPU与第一FPGA之间的访问通道连通,并控制所述第一FPGA与所述第二FPGA之间的访问通道连通,以便于所述CPU依次通过所述第一FPGA和所述第二FPGA访问所述NVM。

优选地,所述内存信息包括内存容量及内存地址。

优选地,所述控制所述计算机系统中的动态随机存取存储器DRAM与所述NVM之间的内存信息交互的过程具体为:

从所述CPU中获取该计算机系统中DRAM的内存信息,并将所述DRAM的内存信息发送至所述第二FPGA;

从所述第二FPGA中获取所述第二FPGA根据所述DRAM的内存信息及所述DRAM和所述NVM的拼接顺序相应地确定的NVM的内存信息;

将确定的NVM的内存信息发送至所述BIOS,完成所述DRAM与所述NVM之间的内存信息的交互。

优选地,所述分别配置所述计算机系统中的第一现场可编程逻辑门阵列FPGA和挂载NVM的第二FPGA的过程具体为:

根据所述计算机系统中的第一FPGA和挂载NVM的第二FPGA两个芯片的芯片说明相应地写入规定数据至两个所述芯片。

优选地,所述引导基本输入输出系统BIOS进行快速通道互联QPI启动的过程具体为:

引导BIOS进行QPI慢速启动;

在接收到所述BIOS在完成QPI慢速启动后生成的重启信号后引导所述BIOS进行QPI快速启动。

优选地,所述第一FPGA具体为Virtex7 2000T型FPGA,所述第二FPGA具体为Virtex7 690T型FPGA。

为解决上述技术问题,本发明还提供了一种实现异构混合内存的BMC,包括:

引导单元,用于在计算机系统完成上电操作后,引导BIOS进行QPI启动;

启动单元,用于在所述BIOS完成QPI启动后控制所述计算机系统中的CPU访问该计算机系统中的NVM的通道连通,并控制所述计算机系统中的DRAM与所述NVM之间的内存信息交互,且引导所述BIOS完成剩余启动流程,控制所述计算机系统完成启动。

为解决上述技术问题,本发明还提供了一种实现异构混合内存的装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述任一种实现异构混合内存的方法的步骤。

为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种实现异构混合内存的方法的步骤。

本发明提供了一种实现异构混合内存的方法,应用于计算机系统中的基板管理控制器BMC,包括:在计算机系统完成上电操作后,引导基本输入输出系统BIOS进行快速通道互联QPI启动;在BIOS完成QPI启动后控制计算机系统中的CPU访问该计算机系统中的非易失性存储器NVM的通道连通;控制计算机系统中的动态随机存取存储器DRAM与NVM之间的内存信息交互,并引导BIOS完成剩余启动流程,控制计算机系统完成启动。

本申请在计算机系统完成上电操作后,通过BMC引导BIOS进行QPI启动,QPI是计算机系统中的CPU和其他芯片之间的快速互联通道。BMC在BIOS完成QPI启动后控制CPU访问NVM的通道连通,并且,控制DRAM与NVM之间的内存信息交互,然后BMC引导BIOS完成剩余启动流程,直至计算机系统运行至开机的操作界面,完成计算机系统的启动流程,从而实现了计算机系统在上电后组合异构混合内存,并控制异构混合内存所在的计算机系统完成启动。

本发明还提供一种实现异构混合内存的BMC、装置及计算机可读存储介质,与上述实现方法具有相同的有益效果。

附图说明

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

图1为本发明提供的一种实现异构混合内存的方法的流程图;

图2为本发明提供的一种实现异构混合内存的BMC的结构示意图。

具体实施方式

本发明的核心是提供一种实现异构混合内存的方法、BMC、装置及计算机可读存储介质,实现了在系统上电后组合异构混合内存,并控制异构混合内存所在的系统完成启动。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参照图1,图1为本发明提供的一种实现异构混合内存的方法的流程图,该方法应用于计算机系统中的BMC(Baseboard Management Controller,基板管理控制器),包括:

步骤S1:在计算机系统完成上电操作后,引导基本输入输出系统BIOS进行快速通道互联QPI启动;

具体地,BMC通常包含在待监控设备的主板或主电路板中,其常被应用于监控和管理服务器的运行状态,如通过带外方式进行开关机、监控服务器的传感器状态、访问BIOS(Basic Input Output System,基本输入输出系统)配置或访问操作系统控制台信息等。

计算机系统在启动运行时,首先会进入BIOS。BIOS是一组固化到计算机系统内ROM(Read Only Memory,只读存储器)芯片上的程序,BIOS程序包括基本输入输出的程序、开机后自检的程序及系统自启动的程序。

所以,在计算机系统完成上电操作得以启动运行时,该计算机系统中的BMC首先引导BIOS进行QPI(Quick Path Interconnect,快速通道互联)启动,QPI是计算机系统中各芯片(比如系统中的CPU和其他芯片)之间快速互联的架构,主要用于数据传输,而且,通过QPI完成的数据传输具有较高的数据传输速率。

步骤S2:在BIOS完成QPI启动后控制计算机系统中的CPU访问该计算机系统中的非易失性存储器NVM的通道连通;

具体地,在BIOS完成QPI启动后,BMC控制计算机系统中的CPU访问该计算机系统中的NVM的通道连通,为CPU访问NVM打下基础。

如果计算机系统中包含第一FPGA(Field-Programmable Gate Array,现场可编程逻辑门阵列)和第二FPGA,该计算机系统中的NVM挂载在第二FPGA上。该计算机系统中的CPU要想访问NVM,需要先经过第一FPGA,再经过第二FPGA。所以,为了建立一条CPU访问NVM的链路,应配置第一FPGA与第二FPGA。

本申请由BMC配置计算机系统中的第一FPGA,配置第一FPGA的目的是连通CPU与第一FPGA之间的访问通道,使得CPU能够访问到第一FPGA。此外,BMC还配置计算机系统中的第二FPGA,配置第二FPGA的目的与配置第一FPGA的目的类似,目的是连通第一FPGA与第二FPGA之间的访问通道,使得CPU能够通过第一FPGA访问到第二FPGA,进而实现CPU访问NVM。

步骤S3:控制计算机系统中的动态随机存取存储器DRAM与NVM之间的内存信息交互,并引导BIOS完成剩余启动流程,控制计算机系统完成启动。

具体地,异构混合内存由连接在计算机系统总线上的DRAM和NVM组合而成。DRAM与NVM组合成异构混合内存的前提是DRAM与NVM交互各自的内存信息。比如,若NVM的内存拼接在DRAM之后,在NVM得知DRAM的内存信息的基础上才能确定NVM在内存块中的位置。

所以,为了构建异构混合内存,BMC应控制计算机系统中的DRAM与NVM之间的内存信息交互,从而确定DRAM和NVM在内存块中的位置,实现将DRAM与NVM组合成异构混合内存。然后,BMC引导BIOS完成剩余启动流程,剩余启动流程完成的标志是计算机系统运行至开机的操作界面,从而完成了计算机系统的启动。

本发明提供了一种实现异构混合内存的方法,应用于计算机系统中的基板管理控制器BMC,包括:在计算机系统完成上电操作后,引导基本输入输出系统BIOS进行快速通道互联QPI启动;在BIOS完成QPI启动后控制计算机系统中的CPU访问该计算机系统中的非易失性存储器NVM的通道连通;控制计算机系统中的动态随机存取存储器DRAM与NVM之间的内存信息交互,并引导BIOS完成剩余启动流程,控制计算机系统完成启动。

本申请在计算机系统完成上电操作后,通过BMC引导BIOS进行QPI启动,QPI是计算机系统中的CPU和其他芯片之间的快速互联通道。BMC在BIOS完成QPI启动后控制CPU访问NVM的通道连通,并且,控制DRAM与NVM之间的内存信息交互,然后BMC引导BIOS完成剩余启动流程,直至计算机系统运行至开机的操作界面,完成计算机系统的启动流程,从而实现了计算机系统在上电后组合异构混合内存,并控制异构混合内存所在的计算机系统完成启动。

在上述实施例的基础上:

作为一种优选地实施例,控制计算机系统中的CPU访问该计算机系统中的非易失性存储器NVM的通道连通的过程具体为:

分别配置计算机系统中的第一现场可编程逻辑门阵列FPGA和挂载NVM的第二FPGA;

控制计算机系统中的CPU与第一FPGA之间的访问通道连通,并控制第一FPGA与第二FPGA之间的访问通道连通,以便于CPU依次通过第一FPGA和第二FPGA访问NVM。

进一步地,计算机系统中包含第一FPGA和第二FPGA,该计算机系统中的NVM挂载在第二FPGA上。该计算机系统中的CPU要想访问NVM,需要先经过第一FPGA,再经过第二FPGA。所以,为了建立一条CPU访问NVM的链路,应分别配置第一FPGA与第二FPGA。

本申请由BMC配置计算机系统中的第一FPGA,配置第一FPGA的目的是连通CPU与第一FPGA之间的访问通道,使得CPU能够访问到第一FPGA。此外,BMC还配置计算机系统中的第二FPGA,配置第二FPGA的目的与配置第一FPGA的目的类似,目的是连通第一FPGA与第二FPGA之间的访问通道,使得CPU能够通过第一FPGA访问到第二FPGA,进而实现CPU访问NVM。

作为一种优选地实施例,内存信息包括内存容量及内存地址。

具体地,本申请中的内存信息可以包括内存容量及内存地址,内存容量表示内存的存储能力,比如64MB内存的存储能力小于128MB内存的存储能力,越大内存容量的内存越有利于计算机系统的运行。

内存地址表示内存在内存块中的位置,内存地址一般是指内存的基地址,也即内存的首地址。所以,已知内存的内存地址和内存容量,便可以确定内存的尾地址。

当然,本申请中的内存信息还可以包括其他信息,本申请在此不做特别的限定,根据实际情况而定。

作为一种优选地实施例,控制计算机系统中的动态随机存取存储器DRAM与NVM之间的内存信息交互的过程具体为:

从CPU中获取该计算机系统中DRAM的内存信息,并将DRAM的内存信息发送至第二FPGA;

从第二FPGA中获取第二FPGA根据DRAM的内存信息及DRAM和NVM的拼接顺序相应地确定的NVM的内存信息;

将确定的NVM的内存信息发送至BIOS,完成DRAM与NVM之间的内存信息的交互。

进一步地,DRAM就是CPU的内存,所以BMC从CPU中获取DRAM的内存信息,即DRAM的内存地址及内存容量。又由于第二FPGA上挂载有NVM,所以将DRAM的内存地址及内存容量发送至第二FPGA。第二FPGA根据DRAM和NVM的拼接顺序及DRAM的内存地址和内存容量,相应地确定NVM的内存地址及内存容量。

具体地,如果NVM拼接在DRAM的后面,第二FPGA已知DRAM的内存地址和内存容量,便可以确定DRAM的尾地址,DRAM的尾地址即为NVM的首地址,从而确定NVM在内存块中的位置。如果NVM拼接在DRAM的前面,第二FPGA已知DRAM的首地址,DRAM的首地址即为NVM的尾地址,并且,第二FPGA获取NVM的内存容量,从而确定NVM的首地址,即NVM的内存地址。

BMC便可以从第二FPGA中相应地获取确定的NVM的内存信息,并将确定的NVM的内存信息发送至BIOS,从而完成DRAM与NVM之间的内存信息的交互。

作为一种优选地实施例,分别配置计算机系统中的第一现场可编程逻辑门阵列FPGA和挂载NVM的第二FPGA的过程具体为:

根据计算机系统中的第一FPGA和挂载NVM的第二FPGA两个芯片的芯片说明相应地写入规定数据至两个芯片。

具体地,BMC配置第一FPGA和第二FPGA的过程就是向寄存器写入数据的过程,写入的数据由第一FPGA和第二FPGA两个芯片的芯片说明决定。比如,第一FPGA的芯片说明中规定,向第一FPGA的0x00地址写入0x01便能连通CPU和第一FPGA,则BMC配置第一FPGA的过程即为向第一FPGA的0x00地址写入0x01。

作为一种优选地实施例,引导基本输入输出系统BIOS进行快速通道互联QPI启动的过程具体为:

引导BIOS进行QPI慢速启动;

在接收到BIOS在完成QPI慢速启动后生成的重启信号后引导BIOS进行QPI快速启动。

进一步地,QPI是计算机系统中各芯片之间快速互联的架构,受芯片自身的限制,配置一次QPI不能使之达到较快的传输速度。所以,BMC引导BIOS进行QPI启动包括慢速启动和快速启动。慢速启动是指配置QPI并将其传输速度提升到慢速水平,快速启动是指在慢速启动的基础上再次配置QPI,使其传输速度提升到高速水平。

具体地,BMC引导BIOS进行QPI慢速启动。BIOS在完成QPI慢速启动后生成重启信号,并将重启信号发送至BMC。BMC在接收到重启信号后引导BIOS进行QPI快速启动。

作为一种优选地实施例,第一FPGA具体为Virtex7 2000T型FPGA,第二FPGA具体为Virtex7 690T型FPGA。

具体地,本申请中的第一FPGA的型号可以选用但不仅限于Virtex72000T,第二FPGA的型号可以选用但不仅限于Virtex7 690T。至于第一FPGA和第二FPGA的具体型号,本申请在此不做特别的限定。

请参照图2,图2为本发明提供的一种实现异构混合内存的BMC的结构示意图,该系统包括:

引导单元1,用于在计算机系统完成上电操作后,引导BIOS进行QPI启动;

启动单元2,用于在BIOS完成QPI启动后控制计算机系统中的CPU访问该计算机系统中的NVM的通道连通,并控制计算机系统中的DRAM与NVM之间的内存信息交互,且引导BIOS完成剩余启动流程,控制计算机系统完成启动。

本申请提供的BMC的介绍请参考上述方法实施例,本申请在此不再赘述。

本发明还提供了一种实现异构混合内存的装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现上述任一种实现异构混合内存的方法的步骤。

本申请提供的装置的介绍请参考上述方法实施例,本申请在此不再赘述。

本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任一种实现异构混合内存的方法的步骤。

本申请提供的存储介质的介绍请参考上述方法实施例,本申请在此不再赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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