首页> 中国专利> 具有存储器系统体系结构的数据系统和数据读取方法

具有存储器系统体系结构的数据系统和数据读取方法

摘要

本发明提供了一种数据系统,包括:存储器,其配置为存储数据,纠正从存储的数据中读取的数据中的错误,并且响应于纠正从存储的数据中读取的数据中的错误而产生错误信息;以及处理器,其通过第一通信路径和第二通信路径连接至存储器,并且配置为:通过第一通信路径从存储器接收数据;并且通过第二通信路径从存储器接收错误信息。本发明还提供了一种读取数据的方法。

著录项

  • 公开/公告号CN105373443A

    专利类型发明专利

  • 公开/公告日2016-03-02

    原文格式PDF

  • 申请/专利权人 三星电子株式会社;

    申请/专利号CN201510511586.2

  • 申请日2015-08-19

  • 分类号G06F11/10;

  • 代理机构北京天昊联合知识产权代理有限公司;

  • 代理人张帆

  • 地址 韩国京畿道

  • 入库时间 2023-12-18 14:30:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-04-07

    授权

    授权

  • 2017-09-05

    实质审查的生效 IPC(主分类):G06F11/10 申请日:20150819

    实质审查的生效

  • 2016-03-02

    公开

    公开

说明书

技术领域

本公开涉及存储器系统体系结构,并且,更具体地说,涉及具有错误纠正的存储器系统体系结构。

背景技术

存储器控制器可配置为执行错误纠正。例如,存储器控制器可从存储器模块中读取72位数据,其中64位是数据,8位是奇偶校验位。存储器控制器可执行其它错误纠正技术。利用这些技术,可识别和/或纠正从存储器模块读取的数据中的一些错误。另外,存储器控制器可使得能够提供关于错误的信息。一种包括存储器控制器的系统可基于错误信息作出操作决策,诸如退出存储页面、使系统停止等。这种存储器控制器可与处理器集成在一起。例如,IntelXeon处理器可包括配置为执行错误纠正的集成的存储器控制器。

然而,如果在接收数据之前由存储器控制器执行错误纠正,则在存储器控制器中可能不能获得关于纠正的错误信息,因此,系统不能获得用于系统管理决策的关于纠正的错误信息。

发明内容

一个实施例包括一种数据系统,包括:存储器,其配置为存储数据,纠正从存储的数据中读取的数据中的错误,并且响应于纠正从存储的数据中读取的数据中的错误而产生错误信息;以及处理器,其通过第一通信路径和第二通信路径连接至存储器,并且配置为:通过第一通信路径从存储器接收数据;并且通过第二通信路径从存储器接收错误信息。

另一实施例包括一种存储器模块,包括:至少一个存储器装置,其配置为存储数据;第一接口;以及第二接口。第一接口配置为发送和接收数据;并且第二接口配置为发送响应于纠正从所述至少一个存储器装置读取的数据中的错误所产生的错误信息。

另一实施例包括一种读取数据的方法,包括步骤:在存储器模块读取包括错误的数据;基于包括错误的数据产生错误信息;在存储器模块接收读取错误信息的命令;以及响应于该命令从存储器模块发送错误信息。

另一实施例包括一种数据系统,包括:存储器;处理器,其通过主存储器通道连接至存储器;以及通信链路,其与主存储器通道分离并且连接至存储器和处理器。存储器和处理器配置为通过主存储器通道和通信链路彼此通信。

另一实施例包括一种数据系统,包括:不具有错误纠正的存储器;错误纠正电路,其连接至存储器,配置为纠正从存储器读取的数据中的错误,并且配置为响应于错误而产生错误信息;处理器,其通过第一通信路径和第二通信路径连接至错误纠正电路。处理器配置为通过第一通信路径从错误纠正电路接收已纠正的数据;并且处理器配置为通过第二通信路径从错误纠正电路接收错误信息。

附图说明

图1是根据实施例的具有存储器系统体系结构的数据系统的示意图。

图2是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构包括控制器。

图3是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构包括主板管理控制器。

图4是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构不具有基于处理器的错误纠正。

图5是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有中毒数据选通信号。

图6是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有分离的不可纠正的错误信号。

图7是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有软件模块。

图8是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有错误检测和纠正模块。

图9是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有聚合模块。

图10是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有从存储器控制体系结构模块聚合信息的错误纠正模块。

图11是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有共享接口的多个模块。

图12是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有共享接口的可纠正的错误模块和串行存在检测/记录时钟驱动器模块。

图13是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有DRAM内错误纠正。

图14A至图14D是根据一些实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有模块内错误纠正。

图15是根据实施例的存储器模块的示意图。

图16是根据实施例的具有SPD或RCD接口的存储器模块的示意图。

图17是根据实施例的具有分离的不可纠正的错误接口的存储器模块的示意图。

图18是根据实施例的传达错误信息的技术的流程图。

图19是根据另一实施例的传达错误信息的技术的流程图。

图20是根据另一实施例的传达错误信息的技术的流程图。

图21是根据实施例的具有存储器系统体系结构的数据系统的示意图。

图22是根据实施例的服务器的示意图。

图23是根据实施例的服务器系统的示意图。

图24是根据实施例的数据中心的示意图。

具体实施方式

实施例涉及存储器系统体系结构。提供以下描述以使得本领域普通技术人员之一能够实现和使用实施例,并且在专利申请的语境及其要求中提供以下描述。本文描述的实施例的各种修改形式和一般原理和特征将是清楚的。主要在特定实施方式中提供的特定方法和系统方面来描述实施例。

然而,所述方法和系统将在其它实施方式中有效地操作。诸如“实施例”、“一个实施例”和“另一实施例”的词语可指示相同或不同的实施例以及多个实施例。将参照具有特定组件的系统和/或装置来描述实施例。然而,系统和/或装置可包括比所示出的组件更多或更少的组件,并且在不脱离本公开的范围的情况下可实现组件的布置方式和类型的变化。同样,将在具有特定步骤的特定方法的语境中描述实施例。然而,方法和系统根据具有不同步骤和/或额外步骤以及具有与实施例不一致的不同次序的步骤的其它方法进行操作。因此,实施例不旨在限于示出的特定实施例,而是与具有本文所述的原理和特征的最宽范围一致。

在具有特定组件的特定存储器系统体系结构的语境中描述各实施例。本领域普通技术人员之一将容易理解这些实施例与具有其它和/或额外组件和/或其它特征的存储器系统体系结构的用法一致。然而,本领域普通技术人员之一将容易理解,所述方法和系统与其它结构一致。也可在单个元件的语境中描述所述方法和系统。然而,本领域普通技术人员之一将容易理解,所述方法和系统与具有多个元件的存储器系统体系结构的用法一致。

本领域技术人员应该理解,通常,本文中(尤其是权利要求(例如,权利要求的主体)中)使用的术语通常旨在是“开放式”术语(例如,术语“包括”应该被解释为“包括(但不限于)”、术语“具有”应该被解释为“至少具有”、术语“包含”应该被解释为“包含(但不限于)”等)。本领域技术人员还应该理解,如果引入的权利要求叙述的特定数字具有意图,则这种意图将在权利要求中明确详述,如果没有这种叙述,则不存在这种意图。例如,为了帮助理解,权利要求可包含引导词“至少一个”和“一个或多个”的使用,以引入权利要求叙述。然而,这种词的使用不应被理解为意指通过不定冠词“一个”、“一”引入的权利要求叙述将包含这种引入的权利要求叙述的任何特定权利要求限于仅包含一个这种叙述的示例,即使当相同的权利要求包括引导词“一个或多个”或“至少一个”以及诸如“一个”或“一”(例如,“一个”和/或“一”应该被解释为意指“至少一个”或“一个或多个”)的不定冠词时也是如此;对于用于引入的权利要求叙述的定冠词的用法,也是这样。此外,在那些使用了类似于“A、B或C中的至少一个等”的习惯性用法的情况下,通常,这种习惯性用法旨在符合本领域技术人员应该理解的所述习惯性用法的含义(例如,“具有A、B或C中的至少一个的系统”将包括(但不限于)只有A、只有B、只有C、具有A和B、具有A和C、具有B和C和/或具有A、B和C等的系统等)。实际上,本领域技术人员还应该理解,具有两种或更多种可替代术语的任何含多意词语和/或短语,无论其出现在说明书中、权利要求中或附图中,其都应该被理解为考虑到包括这些术语中的一者、这些术语中的任一者或者以上两者的可能性。例如,短语“A或B”应该被理解为包括“A”或“B”或“A和B”的可能性。

图1是根据实施例的具有存储器系统体系结构的数据系统的示意图。数据系统100包括连接至处理器104的存储器102。存储器102配置为存储数据。当从存储器102中读取数据时,存储器102配置为纠正数据中的错误(如果存在)。例如,存储器102可配置为纠正单比特错误。存储器102还可配置为检测双比特错误。虽然使用了特定数量的纠正的错误作为示例,但是存储器120可配置为纠正任何数量的错误或检测任何数量的错误。而且,虽然一种或多种错误纠正技术可导致单比特错误纠正和/或双比特错误检测,但是存储器102可配置为执行可纠正至少一个错误的任何错误纠正技术。

存储器102可包括配置为存储数据的任何装置。在特定示例中,存储器102可为动态随机存取存储器(DRAM)模块。存储器102可包括根据诸如DDR、DDR2、DDR3、DDR4等的各种标准的双数据率同步动态随机存取存储器(DDRSDRAM)。在其它实施例中,存储器102可包括静态随机存取存储器(SRAM)、非易失性存储器等。

存储器102配置为响应于纠正从存储的数据读取的数据中的错误和/或尝试纠正该错误而产生错误信息。例如,错误信息可包括关于已纠正的错误、未纠正的错误、没有错误、这种错误的数量等的信息。错误信息可包括实际错误、错误的地址、错误发生的次数或特定于存储器102的其它信息。在特定示例中,错误信息可包括关于单比特错误的信息,其指示存储器102已纠正单比特错误。虽然已经描述了错误信息的特定示例,但是错误信息可包括与错误相关的任何信息。

处理器104可为配置为操作性地连接至存储器102并且能够执行指令的任何装置。例如,处理器104可为通用处理器、数字信号处理器(DSP)、图形处理单元(GPU)、专用集成电路、可编程逻辑装置等。

处理器104通过第一通信路径106和第二通信路径108连接至存储器102。处理器104配置为通过第一通信路径106从存储器102接收数据。例如,第一通信路径106可为具有信号线的系统存储器接口,所述信号线用于数据信号、选通信号、时钟信号、使能信号等。也就是说,通信路径106可为主存储器通道(处理器104与作为主系统存储器的存储器102之间的接口)的一部分。

处理器104还通过不同通信路径(第二通信路径108)连接至存储器102。处理器104配置为通过第二通信路径108从存储器102接收错误信息。因此,在一个实施例中,处理器104配置为通过除第一通信路径106以外的通信路径接收错误信息(并且具体地说,已纠正的错误信息)。已纠正的错误信息是关于已纠正的错误的错误信息。如上所述,错误信息可包括与错误相关的各种信息。因此,已纠正的错误信息可包括与已纠正的错误相关的相似信息类型。

软件110示为连接至处理器104;然而,软件110表示可在处理器104上执行的各种程序、驱动器、模块、子程序等。例如,软件110可包括驱动器、核心模块、后台程序、应用等。在一些实施例中,软件110可使得处理器104能够配置为执行本文所述的特定功能。

虽然使用了单个存储器102作为示例,但是任何数量的存储器102可通过与通信路径106和108相似的两个通信路径连接至处理器104。在一个实施例中,每个存储器102可通过与其它存储器102分离的专用第一通信路径106和同样与其它存储器102分离的专用第二通信路径108连接至处理器104。然而,在其它实施例中,可由不止一个存储器102共享第一通信路径106,并且可由不止一个存储器102共享第二通信路径108。此外,虽然已经描述了单个第一通信路径106,但是在一个或多个存储器102之间可存在多个第一通信路径106。相似地,虽然已经描述了单个第二通信路径108,但是在一个或多个存储器102之间可存在多个第二通信路径108。

在一个实施例中,错误信息的通信可通过带外通信路径传达。第二通信路径108可为这种带外通信路径。也就是说,处理器104与存储器102之间的主通信可通过第一通信路径106,而错误信息通过带外第二通信路径108传达。

图2是根据实施例的具有包括控制器的存储器系统体系结构的数据系统的示意图。在该实施例中,数据系统200包括与图1的存储器102、处理器104、通信路径106和108和软件110相似的存储器202、处理器204、通信路径206和208以及软件210。然而,第二通信路径208包括连接在控制器214与存储器202之间的第一总线212和连接在控制器214与处理器204之间的第二总线216。换句话说,连接至处理器204和存储器202二者的控制器214是第二通信路径208的一部分。

控制器214可为配置为操作性地连接至存储器202和处理器204的任何装置。例如,控制器214可包括通用处理器、数字信号处理器(DSP)、专用集成电路、可编程逻辑装置等。

总线212和216可为各种通信链路。例如,总线212和216可为系统管理总线(SMBus)、集成电路间(I2C)总线、智能平台管理接口(IPMI)标准总线、Modbus总线等。在特定实施例中,通信路径208的至少一部分可实质上比通信路径206更慢。例如,存储器202与处理器204之间的通信路径206可设计为用于10GB/s数量级的较高数据率转移;然而,通信路径208可具有10Mbit/s、100Kbit/s等数量级的较低数据转移率。因此,在一些实施例中,通信路径206与通信路径208的数据转移速度的比率可为约100、1000或更大。

在一个实施例中,第二通信路径208可为专用通信路径。也就是说,第二通信路径208可仅用于存储器202与处理器204之间的信息的通信。然而,在其它实施例中,控制器214可允许其它装置进行访问。例如,非存储器装置268可通过总线212连接至控制器214。在另一示例中,其它装置266可连接至控制器214。因此,除来自存储器202的信息以外的信息可通过总线212和/或总线216相对于处理器204和/或存储器202来回发送。具体地说,可将来自存储器202的错误信息通过用于其它用途(包括非存储器用途)的第二通信路径208传达至处理器204。

在一个实施例中,控制器214可包括非易失性存储器254。非易失性存储器254可配置为存储来自存储器202的错误信息。因此,错误信息在断电时可保持在控制器214中。处理器204可配置为从控制器214请求错误信息。因此,控制器214可配置为通过以下步骤响应于这种请求:提供存储在非易失性存储器254中的错误信息;访问存储器202以检索错误信息以响应于处理器204等。

在一个实施例中,控制器214可配置为针对错误信息轮询存储器202。在另一实施例中,存储器202可配置为将错误信息推送至控制器214。不管怎样,存储在非易失性存储器254中的错误信息可为实质上最新的副本。

图3是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构包括主板管理控制器。在该实施例中,数据系统300包括与图2的存储器202、处理器204、通信路径206和208以及软件210相似的存储器302、处理器304、通信路径306和308以及软件310。然而,控制器314是主板管理控制器(BMC)314。

BMC314可配置为管理数据系统300。例如,BMC314可连接至数据系统300的各个传感器,包括处理器304、存储器302其它装置366等的传感器。BMC314可配置为关于诸如温度、冷却状态、功率状态等的各种系统参数进行收集和报告。BMC314可配置为管理系统并能够根据标准访问信息。可使管理信息对于处理器304是可获得的,因此对于软件310是可获得的。可替换地,BMC314可使得所述信息是通过诸如带外通信路径的另一通信路径是可获得的。这里,带外通信路径可包括不包括处理器304的任何通信路径。

图4是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构不具有基于处理器的错误纠正。在该实施例中,数据系统400包括与图1的存储器102、处理器104、通信路径106和108以及软件110相似的存储器402、处理器404、通信路径406和408以及软件410。然而,在该实施例中,处理器404包括存储器控制器(MC)450和机器校验体系结构(MCA)寄存器452。

存储器控制器450与处理器404集成在一起。存储器控制器450可为作为的主存储器通道(处理器404与存储器402之间的主接口)的一部分。存储器控制器450配置为控制通过通信路径406对存储在存储器402中的数据的访问。在一些实施例中,存储器控制器450可配置为纠正错误,但是在可由存储器402执行错误纠正时存储器控制器450不具有纠正这种错误的机会。然而,在该实施例中,存储器控制器450不配置为纠正从存储器402读取的数据中的错误。存储器控制器450可不配置为报告基于从存储器402读取的数据的任何错误信息。

MCA寄存器452是一种可报告硬件错误的寄存器。例如,可在MCA寄存器452中检测和报告高速缓存错误、总线错误、数据错误等。然而,因为存储器控制器450不配置为纠正从存储器402读取的数据中的错误,所以可不在MCA寄存器452中报告基于从存储器402读取的数据的任何潜在错误信息。不管怎样,如上所述,错误信息可通过通信路径408传达至处理器404。因此,尽管不通过存储器控制器450和MCA寄存器452,错误信息对于软件410也可以仍是可获得的。

在一个实施例中,错误信息通过第二通信路径408的可获得性可允许更低成本的数据系统400。例如,可使用具有不带何存储器错误纠正的存储器控制器450的处理器404,但是错误信息可仍然是可获得的。具体地说,即使期望存储器错误纠正,也可使用不具有存储器错误纠正的处理器404,这是因为错误信息通过第二通信路径408是可获得的。因此,软件410(包括使用错误信息的任何软件)可仍然好像处理器404能够进行存储器错误纠正一样操作。不具有错误纠正的处理器404可为较低功率、较低成本的处理器。因此,可降低数据系统400的总功率用量和/或成本。

虽然已将存储器控制器450示出为与处理器404集成在一起,但是存储器控制器450可与处理器404分离。不管怎样,通信路径408可绕开存储器控制器450和原本可具有错误纠正电路的处理器404的其它部分。绕开这些组件使得错误信息通过第二通信路径408的通信实质上独立于存储器控制器450、MCA寄存器452等的特征。也就是说,即使不能通过存储器控制器450和/或MCA寄存器452获得类似信息,错误信息也仍然是可获得的。

图5是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有中毒数据选通信号。在该实施例中,数据系统500包括与图1的存储器102、处理器104、通信路径106和108以及软件110相似的存储器502、处理器504、通信路径506和508以及软件510。然而,在该实施例中,通信路径506包括数据线532和数据选通线533。其它线可作为通信路径506的一部分存在;然而,为了清楚起见,这些线未示出。

在一个实施例中,关于不可纠正的错误的错误信息和关于可纠正的错误的错误信息可通过不同路径传达。如上所述,可纠正的错误信息可通过通信路径508传达。不可纠正的错误信息可包括基于不可纠正的错误的多种不同类型的信息。不可纠正的错误信息可通过第一通信路径506传达。例如,存储器502可配置为通过在数据选通线533上发送(或未发送)的信号传达不可纠正的错误。也就是说,在正常数据转移过程中,随着数据被转移,可切换在数据选通线533上发送的数据选通信号;然而,如果存储器502已检测到不可纠正的错误,则存储器502可配置为产生用于通过数据选通线533传输的与在正常数据转移中的数据选通信号不同的数据选通信号。在特定示例中,存储器502可配置为不切换通过数据选通线533发送的数据选通信号。当检测到这种条件时,处理器504可配置为产生可通过软件510处理的硬件异常。

虽然将通信路径506中的信号和/或线的特定示例用作传达不可纠正的错误的技术的示例,但是其它信号和/或线可用于将不可纠正的错误传达至处理器504。不管如何传达,处理器504都可配置为诸如通过使数据系统500停止或采取另一行为来响应于这种不可纠正的错误的通信。

图6是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有分离的不可纠正的错误信号。在该实施例中,数据系统600包括与图1的存储器102、处理器104、通信路径106和108以及软件110相似的存储器602、处理器604、通信路径606和608以及软件610。然而,在该实施例中,分离的通信路径634连接在存储器602与处理器604之间。

与图5的数据系统500相似,可将不可纠正的错误传达至处理器604。在该实施例中,存储器602配置为通过第三通信路径634传达不可纠正的错误信息。例如,第三通信路径634可为与第一通信路径606分离的专用线路。因此,可通过处理器604通过除第一通信路径606和第二通信路径608以外的通信路径接收关于不可纠正的错误的错误信息。

图7是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有软件模块。在该实施例中,数据系统700包括与图1的存储器102、处理器104、通信路径106和108以及软件110相似的存储器702、处理器704、通信路径706和708以及软件710。然而,在该实施例中,软件710包括模块718。

模块718表示配置为通过处理器访问错误信息722的软件710的一部分。例如,模块718可包括核心模块、驱动器、扩展等。模块718可包括用于与通信路径708关联的接口的驱动器。在特定示例中,模块718可包括与IPMI总线、IPMI2总线等关联的驱动器。其它信息720对于软件710也可以是可获得的。将错误信息722分离地示出以指示软件710的哪个部分与错误信息722关联。

在一个实施例中,模块718可使得处理器704从存储器702请求错误信息。例如,存储器702可产生错误信息。在稍后的时间,处理器704可通过通信路径708发送对错误信息的请求。存储器702可配置为通过通信路径708用错误信息响应于所述请求。

图8是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有错误检测和纠正模块。在该实施例中,数据系统800包括与图7的存储器702、处理器704、通信路径706和708以及具有对信息720和722响应的模块718的软件710相似的存储器802、处理器804、通信路径806和808以及具有对信息820和822响应的模块818的软件810。然而,在该实施例中,软件810还包括错误检测和纠正(EDAC)模块824。

在一个实施例中,EDAC模块824可配置为管理来自存储器、高速缓存、输入/输出(I/O)装置、外围装置、总线和/或数据系统800的其它方面的错误信息,并且可配置为将这种信息暴露于更高的功能层,诸如应用层。具体地说,EDAC模块824可配置为从模块818接收错误信息。EDAC模块824可配置为将错误信息与其它信息组合,以使得其它模块、应用等可访问错误信息。

图9是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有聚合模块。在该实施例中,数据系统900包括与图7的存储器702、处理器704、通信路径706和708以及具有对信息720和722响应的模块718的软件710相似的存储器902、处理器904、通信路径906和908以及具有对信息920和922响应的第一模块918的软件910。然而,在该实施例中,软件910还包括第二模块926。第二模块926配置为接收信息920。具体地说,这些其它信息920可包括与存储器902的错误无关的信息。其它信息920的至少一部分921可被第一模块918接收。第一模块918可配置为将错误信息922与来自第二模块926的其它信息920中的一些或全部组合。第一模块918可配置为将组合的信息提供给单个接口。例如,第一模块918可配置为将组合的信息提供给EDAC模块,诸如图8的EDAC模块824。

图10是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有从存储器控制体系结构模块聚合信息的错误纠正模块。在该实施例中,数据系统1000包括与图9的存储器902、处理器904、通信路径906和908以及具有对信息920和922响应的模块918和926的软件910相似的存储器1002、处理器1004、通信路径1006和1008以及具有对信息1020和1022响应的模块1018和1026的软件1010。然而,在该实施例中,模块1018是错误纠正(EC)模块1018,第二模块1026是MCA模块1026。

MCA模块1026配置为控制对诸如图4的MCA寄存器452的MCA寄存器的访问。信息1020表示来自MCA寄存器的这种信息。EC模块1018配置为访问MCA模块1026以检索这种信息1020。EC模块1018可将来自MCA模块1026的信息1020与错误信息1022组合,并且将组合的信息提供给单个接口。

具体地说,EC模块1018可提供与处理器1004能够纠正错误的MCA模块1026的接口相似或相同的接口。例如,如果处理器1004配置为纠正从存储器1002读取的数据中的错误,并且这种错误信息是可获得的,则可通过MCA模块1026获得信息。然而,如果处理器1004不配置为纠正从存储器1002读取的数据中的错误,或者处理器1004配置为纠正错误,但上由于错误已在存储器1002中纠正而从不通过由MCA模块1026监控的通信路径接收错误信息,则MCA模块1026将不能提供错误信息。不管怎样,EC模块1018可将MCA模块1026信息1020与通过通信路径1008获得的错误信息1022组合,并且提供与处理器1004配置为纠正从存储器1002读取的数据中的错误时MCA模块1026将提供的信息或者错误信息是MCA模块1026可获得的信息相似或相同的组合的信息。随后,软件可使用相同或相似的接口,而不管是否存在具有错误纠正的处理器1004。换句话说,对于依赖错误信息以充分操作的软件而言,能够进行错误纠正的处理器1004不是必要的。结果,可通过使用不具有错误纠正的便宜的处理器1004降低成本。

图11是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有共享接口的多个模块。在该实施例中,数据系统1100包括与图7的存储器702、处理器704、通信路径706和708以及对信息720和722响应的软件710相似的存储器1102、处理器1104、通信路径1106和1108以及对信息1120和1122响应的软件1110。然而,在该实施例中,软件1110包括第一模块1118、第二模块1128和接口模块1130。

第一模块1118与图7的模块718相似。然而,第一模块1118配置为通过接口模块1130从存储器1102接收错误信息。接口模块1130是配置为向通信路径1108提供接口的模块。例如,接口模块1130可为配置为允许通过IPMI总线的访问的模块。

诸如第二模块1128的其它模块也可配置为利用接口模块1130通信。例如,第二模块1128可配置为访问附接至IPMI总线的其它装置、访问存储器1102的其它方面(诸如热或功率信息)等。错误信息和其它信息二者可为通过接口模块1130转移的信息1122的一部分。换句话说,可沿着整个路径利用专用软件转移错误信息,但是也可与相关或不相关的信息和/或源共享模块、接口、总线等。

图12是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有共享接口的可纠正的错误模块和串行存在检测/记录时钟驱动器模块。在该实施例中,数据系统1200包括与图11的存储器1102、处理器1104、通信路径1106和1108以及具有对信息1120和1122响应的模块1118、1128和1130的软件1110相似的存储器1202、处理器1204、通信路径1206和1208以及具有对信息1220和1222响应的模块1218、1228和1230的软件1210。然而,在该实施例中,第一模块1218是已纠正的错误(CE)模块1218,第二模块1228是串行存在检测(SPD)/记录时钟驱动器(RCD)模块1228。

具体地说,SPD/RCD模块1228配置为访问与串行存在检测系统和/或记录时钟驱动器系统相关的信息。SPD/RCD模块1228可配置为访问这些系统之一或二者。所述信息是通过第二通信路径1208访问的。因此,在一个实施例中,可通过与SPD/RCD相关的信息相同的通信路径1208访问来自存储器1202的错误信息。

图13是根据实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有DRAM内错误纠正。在该实施例中,数据系统1300包括与图10的存储器1002、处理器1004和具有对信息1020和1022响应的EC模块1018和MCA模块1026的软件1010相似的存储器1302、处理器1304、具有对信息1320和1322响应的EC模块1318和MCA模块1326的核心1310。然而,在该实施例中,存储器1302中的每一个是纠错码(ECC)双列直插存储器模块(DIMM)。每个ECCDIMM1302配置为存储数据和至少纠正存储的数据中的错误。在该实施例中,ECCDIMM1302各自通过对应的通信路径1364连接至处理器1304的存储器控制器(MC)1350。通信路径1364包括与图5的通信路径506相似的至少用于数据信号和数据选通信号等的线。ECCDIMM1302各自通过包括与图3的总线312、BMC314和总线316相似的总线1312、BMC1314和总线1316的通信路径1308连接至处理器1304。

在一个实施例中,ECCDIMM1302可配置为纠正从ECCDIMM1302读取的数据中的一个或多个错误。错误纠正技术可包括单错误纠正-双错误检测(SEC-DEC)技术、单芯片chipkill技术、双芯片chipkill技术等。可使用任何错误纠正技术。

在该实施例中,存储器控制器(MC)1350不配置为执行错误纠正,或者可替换地,不配置为从ECCDIMM1302接收错误信息。由于从ECCDIMM1302传递的数据已被纠正,MC1350甚至可不接收表示可纠正的错误的任何信息。然而,错误信息,具体地说,已纠正的错误信息可通过通信路径1308(即,通过总线1312和1316以及BMC1314)发送至处理器1304。

在一个实施例中,处理器1304可为本来不能执行错误纠正但具有能够连接至总线1316的接口的现有处理器。然而,一旦通过核心1310(具体地说,EC模块1318)配置处理器1304,整个数据系统1300就可配置为与具有能够进行错误纠正的处理器的系统相似地执行错误纠正。

在一个实施例中,EC模块1318可生成具有ECC接口的虚拟存储器控制器。例如,如上所述,EC模块1318可配置为从MCA模块1326接收信息。该信息可为具有ECC接口的实际存储器控制器可提供的去除一部分或全部错误信息后的信息。EC模块1318可用错误信息补充来自MCA模块1326的信息,以产生期望来自具有ECC接口的存储器控制器的一组完整的信息。结果,可使用EDAC模块1324、存储器ECC后台程序1358、其它应用1360等,而无需从那些利用具有错误纠正的处理器的模块进行改变。例如,EDAC模块1324可配置为针对存储器ECC信息轮询EC模块1318。反过来,EC模块1318可返回通过第二通信路径1308接收的错误信息。存储器ECC后台程序1358,在与EDAC模块1324通信时,可针对错误信息轮询EDAC模块1324。存储器ECC后台程序1358随后可在应用水平根据错误信息采取行动。这些行动可包括页面退出、管理错误以保持数据系统1300运行、保持可靠性水平、建议停止等的其它行为。

如上所述,可检测到不可纠正的错误。可通过MC1350、MCA寄存器1352和MCA模块1326将不可纠正的错误信息传达至EC模块1318。例如,可通过MCA模块1326由不可屏蔽中断、异常等来传达不可纠正的错误。在特定示例中,存储器控制器1350可响应于不可纠正的错误产生硬件异常,而不管该不可纠正的错误如何传达至存储器控制器1350。MCA模块1326可拦截该异常,并且将其传递至EC模块1318。EC模块1318随后可将该异常传达至EDAC模块1324。除如上所述地传达不可纠正的错误信息以外或作为替代,可通过通信路径1308传达不可纠正的错误信息。

在一个实施例中,ECCDIMM1302可配置为将已纠正的数据提供至处理器1304。然而,数据在ECCDIMM1302与MC1350之间可变得出错。因此,可在ECCDIMM1302与处理器1304或MC1350之间执行一些形式的错误纠正。例如,可通过旨在检测在通信链路1364上发生的错误的纠错码对从ECCDIMM1302发送的数据进行编码。通过这种错误纠正,可对从ECCDIMM1302中的存储元件至处理器的基本整个路径利用错误纠正进行保护。

图14A至图14D是根据一些实施例的具有以下存储器系统体系结构的数据系统的示意图,所述存储器系统体系结构具有模块内错误纠正。参照图14A,数据系统1400包括与图13的那些组件相似的组件;然而,在该实施例中,ECCDIMM1402包括缓冲器1462。缓冲器1462配置为纠正从对应的ECCDIMM1402中读取的数据中的错误。具体地说,可从内部存储器装置(诸如ECCDIMM1402的DRAM装置(未示出))读取未纠正的数据。缓冲器1462可配置为纠正未纠正的数据并产生已纠正的错误信息,与本文描述的其它存储器相似。该错误信息可通过通信路径1408传达,并且可如上所述地使用。也就是说,错误信息可如上所述地使用,而不管错误信息如何产生。

参照图14B,数据系统1400的组件可与图14A中的那些组件相似。然而,在该实施例中,EDAC模块1424配置为与MCA模块1426通信。例如,EDAC模块1424可配置为针对硬件相关信息、不可纠正的错误信息或如上所述通过MCA模块1426可获得的其它信息轮询MCA模块1426。EDAC模块1424可配置为将来自MCA模块1426的信息与来自EC模块1418的信息组合。

参照图14C,数据系统1400的组件可与图14A的那些组件相似。然而,在该实施例中,MCELOG模块1425配置为从CE模块1418接收信息。MCELOG模块1425可配置为记录与诸如存储器错误、数据转移错误或其它错误的各种系统错误相关的机器校验事件(MCE)。MCELOG模块1425可配置为对存储器ECC后台程序1458提出中断和将错误信息传递至存储器ECC后台程序1458。

参照图14D,数据系统1400的组件可与图14C的组件相似。然而,在该实施例中,与图14A与图14B之间的差异相似,MCELOG模块1425可配置为与图14B的EDAC模块1424相似地从MCA模块1426接收信息。

虽然已经参照图14A至图14D中的具有缓冲器1462的ECCDIMM1402描述了不同的模块,但是在其它实施例中,可将各种构造应用于具有ECCDIMM1302的图13的数据系统1300。

图15是根据实施例的存储器模块的示意图。存储器模块1500包括一个或多个存储器装置1501、数据接口1536、错误接口1538和控制器1541。数据接口1536配置为发送和接收数据1540,其来自存储在存储器装置1501中的数据。存储器模块1500配置为针对从一个或多个存储器装置1501读取的数据产生错误信息。错误接口1538配置为发送响应于纠正从一个或多个存储器装置1501读取的数据中的错误产生的错误信息。

数据接口1536是这样的接口,存储在存储器装置1501中的数据通过该接口发送,并且将要存储在存储器装置1501中的数据1540通过该接口接收。例如,数据接口1536可包括用于线路(诸如数据线、选通线、地址线、使能线、时钟线等)的缓冲器、驱动电路、端子或其它电路。

错误接口1538可为配置为在诸如SMBus、IPMI或其它总线的特定总线上进行通信的接口,如本文所述。在一个实施例中,错误接口1538可为现有接口,存储器模块1500通过该接口还可以传达除错误信息以外的其它信息。因此,信息1542将不仅包括错误信息,而且包括其它信息。

控制器1541连接至存储器装置1501、数据接口1536和错误接口1538。控制器1541配置为获得错误信息。在一个实施例中,控制器1541可从存储器装置1501获得错误信息;然而,在其它实施例中,控制器1541可配置为纠正来自存储器装置1501的数据中的错误并产生错误信息。

在一个实施例中,控制器1541可配置为通过数据接口1536传达不可纠正的错误。例如,如上所述,可使用数据选通信号来指示不可纠正的错误。控制器1541可配置为响应于检测到不可纠正的错误而修改通过数据接口1536发送的数据选通信号。

图16是根据实施例的具有SPD或RCD接口的存储器模块的示意图。在该实施例中,存储器模块1600包括与图15的一个或多个存储器装置1501、数据接口1536、错误接口1538和控制器1541相似的一个或多个存储器装置1601、数据接口1636、错误接口1638和控制器1641。然而,这里,图15的错误接口1538是SPD/RCD接口1638。

SPD/RCD接口1638可用于提供对SPD系统或RCD系统(未示出)的访问。在特定实施例中,可通过这种SPD或RCD系统中的特定寄存器或存储器位置获得错误信息。因此,可通过可获得SPD或RCD信息的接口相同的接口获得错误信息。

由于通过现有硬件接口可获得错误信息,因此可不需要额外硬件。例如,通过SPD/RCD接口1638接收的旨在访问错误信息的命令可与其它命令在地址、寄存器地址或SPD/RCD系统未使用的其它字段方面不同。在一个实施例中,SPD/RCD系统的新寄存器可定义为暴露错误信息。在另一实施例中,可再使用现有寄存器以传达错误信息。

图17是根据实施例的具有分离的不可纠正的错误接口的存储器模块的示意图。在该实施例中,存储器模块1700包括与图15的一个或多个存储器装置1501、数据接口1536、错误接口1538和控制器1541相似的一个或多个存储器装置1701、数据接口1736、错误接口1738和控制器1741。然而,存储器模块1700还包括不可纠正的错误(UE)接口1744。

UE接口1744是分离的接口,存储器模块1700配置为通过该接口传达不可纠正的错误。例如,UE接口1744可为专用线路、专用总线等。

图18是根据实施例的传达错误信息的技术的流程图。在该实施例中,在操作1800中,当从存储器读取数据时发生读取错误。作为响应,可产生错误信息。例如,读取错误可为被纠正的可纠正的错误。错误信息可为关于可纠正的错误的信息。在另一示例中,读取错误可为多个错误。错误信息可为关于这些错误的信息。

在操作1802中,接收到读取错误命令。在一个实施例中,可通过存储器模块接收到读取错误命令。如果发生错误,则在操作1804中,存储器可发送错误信息。在在操作1802中接收读取错误命令之前,存储器模块可存储关于已发生的错误的错误信息。在操作1804中可响应于读取错误命令发送关于较早错误的错误信息。然而,如果未发生错误,则操作1804中的错误信息的传输可为指示错误未发生的信息的传输。

如上所述,错误信息可在总线上发送。具体地说,总线可为相对于存储器模块的主数据路径的带外路径。因此,在操作1804中的发送步骤可包括在总线上发送错误信息。

在一个实施例中,在操作1806中可从控制器发送读取错误命令。例如,控制器可配置为轮询存储器模块。因此,在操作1806中控制器可发送读取错误命令,并且在操作1808中在控制器接收错误信息。如上所述,控制器可具有诸如非易失性存储器的存储器,控制器可将错误信息存储在其中。稍后,在操作1810中,错误信息可被发送至处理器。

在操作1806中,虽然将使用控制器以发送读取错误命令用作一个示例,但是在一个实施例中,处理器可发送读取错误命令。在操作1802中,该读取错误命令可由存储器模块接收,并且在操作1810中,可将错误信息发送至处理器。

图19是根据另一实施例的传达错误信息的技术的流程图。在该实施例中,分别与图18的操作1800、1802和1804相似,在操作1900中可发生读取错误、在操作1902中可接收读取错误命令并且在操作1904中可发送错误信息。然而,在该实施例中,在操作1912中,将读取错误命令发送至控制器。例如,控制器可从处理器接收读取错误命令。在操作1914中,将读取错误命令发送至存储器模块。例如,在操作1914中,控制器可将从处理器接收的读取错误命令向前传送至存储器模块,修改读取错误命令,针对存储器模块生成不同的读取错误命令等,以将读取错误命令发送至存储器模块。错误信息可如上所述被传播至处理器。

如上所述,控制器可针对错误信息轮询存储器模块,并且存储该错误信息。因此,当通过控制器从处理器接收到读取错误命令时,控制器可已读取了该错误信息。控制器可将存储的错误信息发送至处理器。在控制器将存储的错误信息发送至处理器之前,控制器可(但不一定)针对更多的错误信息轮询存储器模块。

图20是根据另一实施例的传达错误信息的技术的流程图。在一个实施例中,在操作2000中,处理器可发送读取错误命令。作为响应,在操作2002中,处理器可接收错误信息。在操作2006中,处理器可将错误信息与额外信息组合。如上所述,额外信息可为包括与存储器模块无关的信息的任何信息,诸如处理器、外围设备、总线的状态等。在特定示例中,处理器可将错误信息与来自MCA模块的信息组合。

在特定实施例中,在操作2008中,可将组合的信息提供至EDAC模块。如上所述,EDAC模块可使得关于各种系统的错误的信息对于更高水平的应用而言是可获得的。

图21是具有根据实施例的存储器系统体系结构的数据系统的示意图。在该实施例中,数据系统2100包括与图1的处理器104和软件110相似的处理器2104和软件2110。然而,在该实施例中,数据系统2100包括存储器2102和错误纠正电路2168。

在该实施例中,存储器2102不配置为纠正错误。存储器连接至错误纠正电路2168,并且配置为通过通信路径2172将数据发送至错误纠正电路2168。

错误纠正电路2168配置为纠正从存储器2102接收到的数据中的错误。错误纠正电路2168通过第二通信路径2170和第三通信路径2108连接至处理器2104。第二通信路径2170是主路径,处理器2104配置为通过该路径接收数据。例如,第二通信路径2170可为用于处理器2104的系统总线。

相反,第三通信路径2108与上述通信路径108等相似。也就是说,第三通信路径2108可为分离的带外通信路径,其包括控制器2114或具有与上述通信路径相似的其它变形形式。

图22是根据实施例的服务器的示意图。在该实施例中,服务器2200可包括独立服务器、机架安装式服务器、刀片式服务器等。服务器2200包括存储器2202、处理器2204和BMC2214。处理器2204通过通信路径2206连接至存储器2202。BMC通过总线2216连接至处理器2204,并且通过总线2212连接至存储器2202。存储器2202、处理器2204、BMC2214、通信路径2206和总线2212和2216可为上述对应组件中的任一个。

图23是根据实施例的服务器系统的示意图。在该实施例中,服务器系统2300包括多个服务器2302-1至2302-N。服务器2302各自连接至管理器2304。服务器2302中的一个或多个可与上述服务器2100相似。另外,管理器2304可包括具有上述存储器系统体系结构的系统。

管理器2304配置为管理服务器2302和服务器系统2300的其它组件。例如,管理器2304可配置为管理各个服务器2302的配置。每个服务器2302配置为将错误信息传达至管理器2304。错误信息可包括如上所述传达至服务器2302之一中的处理器的可纠正的错误信息或基于可纠正的错误信息的其它错误信息。管理器2304可配置为基于该错误信息采取行动。例如,服务器2302-1可具有超过阈的多个可纠正的错误。管理器2304可配置为将该服务器2302-1的功能转移至服务器2302-2,并且关闭服务器2302-1以维护和/或更换。虽然已经给出了特定示例,但是管理器2304可配置为基于错误信息采取其它行动。

图24是根据实施例的数据中心的示意图。在该实施例中,数据中心2400包括多个服务器系统2402-1至2402-N。服务器系统2402可与图22中的上述服务器系统2200相似。服务器系统2402连接至诸如互联网的网络2404。因此,服务器系统2402可通过具有各种节点2406-1至2406-M的网络2404通信。例如,节点2406可为客户端计算机、其它服务器、远程数据中心、存储系统等。

一个实施例包括一种数据系统,包括:存储器,其配置为存储数据,纠正从存储的数据中读取的数据中的错误,并且响应于纠正从存储的数据中读取的数据中的错误产生错误信息;以及处理器,其通过第一通信路径和第二通信路径连接至存储器,并且配置为:通过第一通信路径从存储器接收数据;并且通过第二通信路径从存储器接收错误信息。

在一个实施例中,错误是单比特错误;并且错误信息指示错误已被纠正。

在一个实施例中,错误信息包括已纠正的错误信息;并且处理器配置为通过除第一通信路径以外的路径接收已纠正的错误信息。

在一个实施例中,存储器是动态随机存取存储器模块。

在一个实施例中,所述数据系统还包括:控制器,其连接至处理器和存储器,并且配置为与处理器和存储器通信。控制器是第二通信路径的一部分。

在一个实施例中,控制器是主板管理控制器。

在一个实施例中,控制器通过符合智能平台管理接口(IPMI)的接口连接至处理器。

在一个实施例中,控制器通过符合系统管理总线(SMBus)的接口连接至存储器。

在一个实施例中,控制器配置为:存储错误信息;并且响应于从处理器接收到的请求将错误信息提供至处理器。

在一个实施例中,处理器包括连接至存储器的存储器控制器;并且存储器控制器通过第一通信路径连接至存储器。

在一个实施例中,处理器包括连接至存储器的存储器控制器;并且存储器控制器不配置为纠正从存储器读取的数据中的错误。

在一个实施例中,第一通信路径包括多条数据线和至少一条数据选通线;并且存储器配置为通过在至少一条数据选通线上发送的信号传达不可纠正的错误。

在一个实施例中,所述数据系统还包括连接在存储器与处理器之间的第三通信路径。存储器配置为在第三通信路径上传达不可纠正的错误。

在一个实施例中,处理器配置为请求由存储器产生的错误信息。

在一个实施例中,处理器配置为将错误信息与同存储器相关的其它信息组合起来。

在一个实施例中,所述其它信息基于通过第一通信路径接收的信息。

在一个实施例中,处理器包括连接至第二通信路径的接口;并且处理器还配置为:通过该接口接收错误信息;并且通过该接口接收其它信息。

在一个实施例中,存储器包括串行存在检测系统和记录时钟驱动器系统中的至少一个;并且从串行存在检测系统和记录时钟驱动器系统中的至少一个接收到其它信息。

一个实施例包括一种存储器模块,该存储器模块包括:至少一个存储器装置,其配置为存储数据;第一接口;以及第二接口。第一接口配置为发送存储在至少一个存储器装置中的数据;并且第二接口配置为发送响应于纠正从至少一个存储器装置读取的数据中的错误产生的错误信息。

在一个实施例中,第二接口包括串行存在检测接口和记录时钟驱动器接口中的至少一个。

在一个实施例中,存储器模块还包括连接至第一接口并且配置为响应于检测不可纠正的错误修改通过第一接口发送的数据选通信号的控制器。

在一个实施例中,第二接口还配置为响应于检测不可纠正的错误发送错误信息。

一个实施例包括一种方法,该方法包括:在存储器模块读取包括错误的数据;基于读取包括错误的数据产生错误信息;在存储器模块接收命令以读取错误信息;以及响应于该命令从存储器模块发送错误信息。

在一个实施例中,所述方法还包括:在控制器接收错误信息;以及将错误信息从控制器发送至处理器。

在一个实施例中,所述方法还包括:从控制器发送读取错误信息的命令;以及在控制器接收错误信息。

在一个实施例中,读取错误信息的命令被称作读取错误信息的第一命令,所述方法还包括:在控制器从处理器接收读取错误信息的第二命令;以及响应于第二命令从控制器发送第一命令。

在一个实施例中,所述方法还包括通过修改数据选通信号从存储器模块传达不可纠正的错误。

在一个实施例中,所述方法还包括:在处理器产生与存储器模块关联的额外信息;以及在处理器将所述额外信息与错误信息组合。

在一个实施例中,从存储器模块发送错误信息的步骤包括在通信链路上发送错误信息和其它信息。

在一个实施例中,其它信息与存储器模块无关。

一个实施例包括一种数据系统,包括:存储器;处理器,其通过主存储器通道连接至存储器;以及通信链路,其与主存储器通道分离,并且连接至存储器和处理器;其中存储器和处理器配置为通过主存储器通道和通信链路彼此通信。

在一个实施例中,处理器包括存储器控制器;并且该存储器控制器是主存储器通道的一部分。

在一个实施例中,处理器配置为通过通信链路接收系统管理信息。

在一个实施例中,系统管理信息包括热信息和功率信息中的至少一个。

在一个实施例中,存储器配置为通过通信链路将错误信息传达至处理器。

一个实施例包括系统,该系统包括:不具有错误纠正的存储器;错误纠正电路,其连接至存储器,配置为纠正从存储器读取的数据中的错误,并且配置为响应于该错误产生错误信息;以及处理器,其通过第一通信路径和第二通信路径连接至错误纠正电路。处理器配置为通过第一通信路径从错误纠正电路接收已纠正的数据;并且处理器配置为通过第二通信路径从错误纠正电路接收错误信息。

在一个实施例中,第二通信路径包括控制器,该控制器配置为从错误纠正电路接收错误信息,并且将错误信息发送至处理器。

虽然已经根据示例性实施例描述了结构、方法和系统,但是本领域普通技术人员之一应该容易认识到,许多对公开的实施例的修改都是可以的,并且因此,任何变形形式应该被认为落入本文公开的设备、方法和系统的精神和范围内。因此,本领域普通技术人员之一可在不脱离权利要求的精神和范围的情况下作出许多修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号