异构混合内存架构的计算机系统及其控制方法、内存检测系统与流程

文档序号:13181941阅读:169来源:国知局
技术领域本发明涉及计算机技术领域,特别是涉及一种异构混合内存架构的计算机系统、一种计算机系统的控制方法以及内存检测系统。

背景技术:
针对云计算和大数据所表现出的增量速度快、时间局部性低等特点,使得以计算为中心的传统模式面临着内存容量有限、输入/输出压力大、缓存命中率低、数据处理的总体性能低等诸多挑战,难以取得性能、能耗与成本的最佳平衡,使得目前的计算机系统无法处理PB级以上的大数据。随着电阻存储器、铁电存储器、相变存储器等为代表的新兴非易失性存储介质(Non-VolatileMemory,NVM)技术的发展,使得传统的内存与存储分离的界限逐渐变得模糊,推进了存储技术的发展,为新型的内存与存储体系结构的产生打下了良好的基础。通过把新型的NVM和DRAM相结合,搭建异构混合内存架构是解决上述问题的理想选择。计算机在POST(PowerOnSelf-Test,上电自检)阶段,BIOS(BasicInput&OutputSystem,基本输入输出系统)调用MRC(MemoryReferenceCode,内存参考代码)实现对DRAM(DynamicRandomAccessMemory,动态随机访问存储器)的自检和初始化,在NVM+DRAM的异构混合内存架构下,要使用NVM存储器,BIOS还必须对NVM进行相应的自检和初始化。NVM并不是真正意义上的内存,其非易失性使得NVM除了可以作为内存之外还可以作为外部存储设备使用,因而数据、代码乃至操作系统都可以存储在NVM中。传统的MRC在异构混合内存架构下,无法识别NVM,同时亦不能实现对NVM的初始化和自检。当BIOS没有对NVM做初始化时,操作系统、应用软件无法访问NVM,此时NVM是不可用的。同时,由于NVM的非易失性,一般NVM中存储有数据等资料,BIOS不能像对待DRAM那样进行擦除和写操作,因为这样会导致NVM中的资料丢失。目前业界对NVM的应用,NVM主要还只是作为外部存储器挂在PCIE总线上,如图4所示。NVM和普通机械硬盘相比较,区别是NVM本质上是一种非易失性的存储设备,CPU通过NVM控制器可以直接访问NVM。而普通硬盘是磁盘,需要机械马达的转动来驱动磁头去访问磁盘的各个扇区。因而NVM的读写速度比访问普通硬盘高一些。传统的架构决定了NVM只是作为外部存储设备使用,计算机启动过程中,BIOS不会把NVM和DRAM形成统一的系统内存报表,NVM不能作为内存使用。

技术实现要素:
基于此,有必要提供一种可将NVM作为内存使用的异构混合内存架构的计算机系统,可使整个计算机系统达到读写速度和成本的平衡。此外还提供一种该计算机系统的控制方法和该计算机系统内的内存检测系统。一种异构混合内存架构的计算机系统,包括:内存单元,包括第一SPD芯片,并通过DIMM接口接入计算机系统;所述第一SPD芯片包括内存单元的存储容量信息;非易失性存储单元,包括第二SPD芯片,并通过DIMM接口接入计算机系统;所述第二SPD芯片包括非易失性存储单元的存储容量和存储器类别信息;BIOS单元,用于在上电自检阶段获取所述第二SPD芯片的容量信息,与所述内存单元的存储容量信息一起形成系统内存报表。在其中一个实施例中,所述非易失性存储单元还包括存储控制器和存储介质,所述存储控制器与DIMM接口连接、并控制对存储介质的读写。在其中一个实施例中,所述存储介质为电阻存储介质、铁电存储介质或相变存储介质。在其中一个实施例中,所述非易失性存储单元还包括动态随机访问存储缓冲模块,与所述存储控制器连接。在其中一个实施例中,所述非易失性存储单元的数量为两个以上,分别通过DIMM接口接入计算机系统,所述BIOS单元在上电自检阶段逐一获取各个非易失性存储单元的第二SPD芯片容量信息。一种异构混合内存架构的计算机系统的控制方法,基于上述的计算机系统,包括如下步骤:BIOS单元通过读取所述第一SPD芯片或第二SPD芯片中的存储器类别信息以判断存储单元的类型;若判断存储单元为内存单元,则执行正常的上电自检过程;否则获取当前非易失性存储单元的容量信息;统计所有非易失性存储单元的容量信息,并与所述内存单元的存储容量信息一起形成系统内存报表。在其中一个实施例中,所述第二SPD芯片还保存表示非易失性存储单元是否包含数据的数据标志位,所述获取当前非易失性存储单元的容量信息的步骤包括:根据所述数据标志位的值判断所述非易失性存储单元是否包含数据,若是,则对包含数据的区域进行完整性校验;否则,进行擦除和写入操作以检验所述非易失性存储单元是否包含坏块,生成自检结果和容量信息。在其中一个实施例中,所述非易失性存储单元的地址空间映射到所述内存单元的结束地址之后的一段连续的地址空间中。在其中一个实施例中,所述系统内存报表还标明属于内存单元的地址段和属于非易失性存储单元的地址段。一种内存检测系统,基于上述的计算机系统,运行于所述BIOS单元中,包括:内存侦测模块,用于侦测DIMM接口是否连接存储单元,所述存储单元包括内存单元和非易失性存储单元;识别模块,用于读取所述第一SPD芯片或第二SPD芯片中的存储器类别信息以判断存储单元的类型;非易失性存储单元自检模块,用于判断所述非易失性存储单元是否包含数据,若是,则对包含数据的区域进行完整性校验;否则,进行擦除和写入操作以检验所述非易失性存储单元是否包含坏块,生成自检结果和容量信息;系统内存报表模块,用于将所述非易失性存储单元的地址空间映射到所述内存单元的结束地址之后的一段连续的地址空间中,并标明属于内存单元的地址段和属于非易失性存储单元的地址段。上述异构混合内存架构的计算机系统、控制方法以及内存检测系统,通过在使非易失性存储单元挂载在内存控制器下,并且利用第二SPD芯片保存存储器类型信息,在BIOS单元中添加对应于非易失性存储单元的检测功能,可以将非易失性存储单元在开机自检阶段就纳入内存体系,并在之后的系统运行阶段作为内存进行读写操作。而非易失性存储单元就其读写速度来说远高于传统的磁盘,同时单位存储量的成本又远低于DRAM等内存单元,使得整个计算机系统在读写速度和成本上取得一定程度的平衡。附图说明图1为一实施例的异构混合内存架构的计算机系统;图2为一实施例的异构混合内存架构的计算机系统控制流程图;图3为一实施例的异构混合内存架构的计算机系统中的内存检测系统模块图;图4为传统的NVM的应用方式。具体实施方式如图1所示,为一实施例的异构混合内存架构的计算机系统。该异构混合内存架构的计算机系统10包括内存单元100、非易失性存储单元200和BIOS单元300。内存单元100和非易失性存储单元200均通过DIMM(DualInlineMemoryModules,双列直插式存储模块)接口接入计算机系统。内存单元100即DRAM(DynamicRandomAccessMemory,动态随机访问存储器)。内存单元100上通常设有SPD(SerialPresenceDetect,串行存在检测)芯片,其用来存储DRAM的配置信息,例如P-Bank数量、电压、行地址/列地址数量、位宽以及各种主要操作时序等,另外还可保存内存单元100的存储容量信息。本实施例中,将内存单元100上所设有的SPD芯片称为第一SPD芯片110。非易失性存储单元200不同于易失性的内存单元100,其包括非易失性(Non-Volatile)的存储介质,其读写数据的方式也不同于传统的磁盘。常见的非易失性存储介质包括电阻存储介质、铁电存储介质或相变存储介质。本实施例的非易失性存储单元200可以包括以上任何一种非易失性存储介质。参考图1,非易失性存储单元200也是通过DIMM接口接入计算机系统。具体地,非易失性存储单元200包括存储控制器210和存储介质220,存储控制器210与DIMM接口连接、并控制对存储介质220的读写。这样,非易失性存储单元200就可以挂载在计算机系统的内存控制器下。类似的,非易失性存储单元200也设有SPD芯片,在本实施例中称为第二SPD芯片230。第二SPD芯片230中包含非易失性存储单元200的型号、存储容量、存储器类别以及制造商等重要信息。其中存储器类别信息是第一SPD芯片110中所不包括的。非易失性存储单元200的数量可以是两个以上。BIOS单元300保存有在计算机开机时最初用来执行的一组程序。本实施例的BIOS单元300与传统的BIOS单元相比,除了包括正常的内存检测代码,还包括对非易失性存储单元200的检测代码,用于在上电自检阶段获取第二SPD芯片230的容量信息,并与内存单元100的存储容量信息一起形成系统内存报表。对于包含两个以上的非易失性存储单元200的计算机系统,BIOS单元300在上电自检阶段逐一获取各个非易失性存储单元的第二SPD芯片容量信息。上述异构混合内存架构的计算机系统10,通过在使非易失性存储单元200挂载在内存控制器下,并且利用第二SPD芯片保存存储器类型信息,在BIOS单元300中添加对应于非易失性存储单元200的检测代码,可以将非易失性存储单元200在开机自检阶段就纳入内存体系,并在之后的系统运行阶段作为内存进行读写操作。而非易失性存储单元200就其读写速度来说远高于传统的磁盘,同时单位存储量的成本又远低于DRAM等内存单元,使得整个计算机系统在读写速度和成本上取得一定程度的平衡。进一步地,非易失性存储单元200还包括动态随机访问存储缓冲(DRAM缓冲)模块240。动态随机访问存储缓冲模块240与存储控制器210连接。动态随机访问存储缓冲模块240采用动态随机访问存储介质保存数据,在运算速度需求较高的场合充当缓冲,存储控制器210先将运算结果保存在动态随机访问存储缓冲模块240中,全部运算执行完成后,再写入非易失性存储介质220中。基于上述的计算机系统10,结合图1和图2,提供一种异构混合内存架构的计算机系统的控制方法。该方法包括如下步骤。步骤S101:SMBus控制器初始化。SMBus即为系统管理总线(systemmanagementbus)。当计算机启动后执行BIOS程序时,CPU单元对SMBus控制器进行初始化。BIOS单元中为各个SPD芯片分配了固定的地址,上述初始化即在SMBus控制器中写入需要检测的SPD芯片的地址。步骤S102:下一个SPD地址。如果是首次检测,则为第一个SPD地址。步骤S103:SMBus读操作。步骤S104:判断SPD芯片是否有响应,是则执行步骤S105,否则执行步骤S102。如果SPD有响应则表示当前内存槽(DIMM接口)上接有存储单元(内存单元或非易失性存储单元),可以执行下一步操作;否则表示当前内存槽未接存储单元,需要检测下一个SPD地址。上述步骤S101~S104中,SPD芯片可能是第一SPD芯片110或第二SPD芯片230。步骤S105:读取存储类型信息。BIOS单元300读取所述第一SPD芯片110或第二SPD芯片230中的存储器类别信息。步骤S106:判断是否为非易失性存储单元,是则执行步骤S107,否则执行步骤S115。根据上述实施例的说明,只有第二SPD芯片230中才保存存储器类别信息,因此可以根据是否读到该存储器类别信息判断当前内存槽内插入的是内存单元100还是非易失性存储单元200。如果是非易失性存储单元200,则执行对应于非易失性存储单元200的检测代码,也即下述的步骤S107~S109。如果是传统的内存单元100(即DRAM),则执行传统的内存检测步骤,即步骤S115。步骤S107:判断非易失性存储单元中是否有数据,是则执行步骤S108,否则执行步骤S113。非易失性存储单元200中可能存储有其他有用数据,需要进行判断。本实施例中,第二SPD芯片230还保存表示非易失性存储单元200是否包含数据的数据标志位,根据所述数据标志位的值判断所述非易失性存储单元是否包含数据。步骤S108:判断数据是否完整,是则执行步骤S109,否则执行步骤S114。若非易失性存储单元200中存储有数据,还对其进行数据完整性校验。步骤S109:将所述非易失性存储单元的地址空间进行映射。主要是将非易失性存储单元200的地址空间映射到内存的地址空间。至步骤S109可统计当前已检测的所有非易失性存储单元的容量信息。步骤S110:判断SPD遍历是否结束,是则执行步骤S111,否则执行步骤S102。步骤S111:获取内存单元的地址信息。本步骤在内存的正常自检过程中执行。步骤S112:形成系统内存报表。获得内存单元100和非易失性存储单元200的容量信息后,可以将非易失性存储单元200的地址空间映射到内存单元100的结束地址之后的一段连续的地址空间中,与所述内存单元的存储容量信息一起形成系统内存报表。对于多个非易失性存储单元200的情况,内存单元100的结束地址之后的连续地址空间内依次分配多个非易失性存储单元200的容量。进一步地,所述系统内存报表还标明属于内存单元100的地址段和属于非易失性存储单元200的地址段。计算机系统在写数据时,若内存充裕,可优先考虑属于内存单元100的地址段,提高写入速度。步骤S113:非易失性存储单元初始化、自检。具体为:进行擦除和写入操作以检验非易失性存储单元200是否包含坏块,生成自检结果和容量信息。步骤S114:输出提示信息。可在步骤S113之后或步骤S108判断为否的情况下执行,输出非易失性存储单元200的自检信息。步骤S115:上电自检过程。也即POST过程继续。步骤S116:根据内存参考代码进行检测。步骤S115~S116为正常的内存自检过程,不再赘述。基于上述的计算机系统10,结合图1和图3,提供一种异构混合内存架构的计算机系统的内存检测系统30,该内存检测系统30运行于BIOS单元300中。该内存检测系统30包括内存侦测模块310、识别模块320、非易失性存储单元自检模块330以及系统内存报表模块340。内存侦测模块310用于侦测DIMM接口是否连接存储单元。所述存储单元包括内存单元和非易失性存储单元。侦测方法可参考上述步骤S101~S104。识别模块320用于读取所述第一SPD芯片或第二SPD芯片中的存储器类别信息以判断存储单元的类型。识别方法可参考上述步骤S105。非易失性存储单元自检模块330用于判断所述非易失性存储单元是否包含数据,若是,则对包含数据的区域进行完整性校验;否则,进行擦除和写入操作以检验所述非易失性存储单元是否包含坏块,生成自检结果和容量信息。可参考步骤S106~S108以及步骤S113~S114。系统内存报表模块340用于将所述非易失性存储单元200的地址空间映射到所述内存单元的结束地址之后的一段连续的地址空间中,并标明属于内存单元的地址段和属于非易失性存储单元的地址段。可参考步骤S112。以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1