WO2015043181A1 - 内存扩展系统及方法 - Google Patents

内存扩展系统及方法 Download PDF

Info

Publication number
WO2015043181A1
WO2015043181A1 PCT/CN2014/076582 CN2014076582W WO2015043181A1 WO 2015043181 A1 WO2015043181 A1 WO 2015043181A1 CN 2014076582 W CN2014076582 W CN 2014076582W WO 2015043181 A1 WO2015043181 A1 WO 2015043181A1
Authority
WO
WIPO (PCT)
Prior art keywords
processor
memory
expansion
identification number
qpi
Prior art date
Application number
PCT/CN2014/076582
Other languages
English (en)
French (fr)
Inventor
李延松
郑玉林
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP14814662.4A priority Critical patent/EP2988204A4/en
Priority to US14/584,698 priority patent/US9811497B2/en
Publication of WO2015043181A1 publication Critical patent/WO2015043181A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Abstract

本申请实施例公开了一种内存扩展系统及方法,该系统包括:处理器、扩展内存、扩展芯片和多个处理器安装位,每个处理器安装位上都设置有内存安装位;多个处理器安装位之间通过快速通道互联QPI接口相连接,至少一个处理器安装位上安装有处理器,其它至少一个处理器安装位作为扩展安装位;至少一个扩展安装位上安装有扩展芯片;扩展内存安装在与扩展芯片相连接的内存安装位上。该内存扩展系统,在其它处理器位安装扩展芯片替代处理器,使得已有的处理器可以通过扩展芯片访问扩展芯片所带的扩展内存,从而在没有增加处理能力的情况下增加了已有处理器的内存容量,解决了现有技术通过增加处理器来扩展内存导致处理能力冗余的问题。

Description

内存扩展系统及方法 本申请要求于 2013年 09月 25日提交中国专利局、 申请号为 201310442041.1、 发明名称为 "内存扩展系统及方法"的中国专利申请的优先权, 其全部内容通过引用 结合在本申请中。 技术领域 本申请涉及信息存储技术领域, 特别是涉及一种内存扩展系统及方法。 背景技术 对于计算机系统来说, 处理器的计算能力、 内存容量、 输入 /输出接口的带宽是 三个重要的性能评价指标。 为了提高计算能力, 系统需要配置高性能的处理器, 例如 多核多线程的处理器, 而且常常将多个处理器互连起来形成 SMP ( Symmetrical Multi Processing, 对称多处理器) 或 NUMA (Non Uniform Memory Access , 非均匀性 内存访问)结构, 实现业务的并发处理。 为了扩大内存容量, 处理器通常集成了多个 内存控制器, 每个控制器可以支持多个内存条, 结合上述多处理器技术, 可以将内存 容量扩大到数百 GB 的规模。 为了提高输入 /输出接口的带宽, 近十年来业界推出了 PCI Express (Peripheral Component Interconnect Express, 夕卜设互联标准总线)、 RapidIO, Interlaken, 10G 以太网等高速接口, 速率也随着协议版本的升级在不断 提高。
一般来说, 计算能力、 内存容量和输入 /输出接口带宽应该均衡配置, 否则容易 出现性能瓶颈, 影响计算机系统的整体性能。但在某些特殊应用场景下, 例如服务器 用于不同的业务类型 (Web服务器、 数据库服务器、 流媒体服务器等), 对这三个指标 的要求有不同的侧重点。对于以控制功能为主的应用场景,处理器的计算能力最重要, 相对来说内存容量不是太迫切; 而对于虚拟化应用场景来说, 由于需要将多种业务部 署在同一个处理器的多个内核上, 每种业务都要分配一定的内存空间, 因此对内存容 量的需求相对更为迫切。
而目前的服务器一般都是采用通用多路处理器设计, 虽然可以支持多种业务,但 具体执行何种业务是由客户自行决定的,例如安装不同的应用程序完成不同的业务功 能, 因此服务器可能在处理能力或内存容量方面存在一定的冗余,增加硬件成本和运 行功耗。 举例来说, 假设有一个四路服务器, 里面最多可以安装四个处理器, 每个处 理器都集成了内存控制器, 可以外接内存条。在上述虚拟化场景下, 可能不需要安装 所有四个处理器, 只安装两个处理器即可满足计算能力的需求,但内存容量需求却可 能超过了两个处理器自带内存的容量, 如果把另两个处理器也装上去,会增加成本和 功耗, 而如果不把另两个处理器装上去, 很显然内存容量又不够用。 发明内容 本申请中提供了一种内存扩展系统及方法,以解决现有技术中通过增加处理器来 扩展内存容量导致处理能力冗余的问题。
为了解决上述技术问题, 一方面, 本申请提供了一种内存扩展系统, 包括: 处理 器、 扩展内存、 扩展芯片和多个处理器安装位, 其中, 每个所述处理器安装位上都设 置有与所述处理器安装位相连接的内存安装位;多个所述处理器安装位之间通过快速 通道互联 QPI接口相连接, 至少一个处理器安装位上安装有所述处理器,其它至少一 个处理器安装位作为扩展安装位; 至少一个扩展安装位上安装有所述扩展芯片,所述 扩展芯片具有唯一的标识号码;所述扩展内存安装在与所述扩展芯片相连接的内存安 装位上, 所有所述扩展内存的地址都在所述处理器的地址空间范围内。
在第一方面第一种可能的实现方式中,所述扩展芯片的管脚与所述处理器的管脚 兼容。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面第二种可能的实 现方式中, 所述处理器包括: 查询指令生成模块, 用于生成标识号码查询指令; 查询 指令发送模块,用于将所述标识号码查询指令通过所述处理器所在处理器安装位上的 QPI接口发送; 标识号码接收模块, 用于通过所述处理器所在处理器安装位上的 QPI 接口接收标识号码; 标识号码判断模块,用于判断接收到的所述标识号码是否为扩展 芯片的标识号码; 配置模块, 用于当所述标识号码为扩展芯片的标识号码时, 为所述 扩展芯片配置内存控制器,在所述处理器的地址空间中分配与所述扩展芯片相连接的 扩展内存相对应的内存地址。
结合第一方面的第二种可能的实现方式, 在第一方面第三种可能的实现方式中, 该处理器还包括: 报文生成模块, 用于生成用于读取数据或写入数据的、 协议为 QPI 协议的报文; 报文发送模块,用于将所述报文通过所述处理器所在处理器安装位上的 QPI接口发送; 数据接收模块, 用于通过所述处理器所在处理器安装位上的 QPI接口 接收所述扩展芯片根据所述报文读取得到的数据。 结合第一方面的第三种可能的实现方式, 在第一方面第四种可能的实现方式中, 所述扩展芯片包括: 查询指令接收模块,用于通过所述扩展芯片所在扩展安装位上的 QPI接口接收标识号码查询指令; 标识号码获取模块, 用于根据所述标识号码查询指 令获取所述扩展芯片的标识号码; 标识号码发送模块,用于将获取得到的标识号码通 过所述扩展芯片所在扩展安装位上的 QPI接口发送。
结合第一方面的第四种可能的实现方式, 在第一方面第五种可能的实现方式中, 所述扩展芯片还包括: QPI接口模块、协议转换模块和内存接口模块,其中,所述 QPI 接口模块与所述扩展芯片所在扩展安装位上的 QPI接口相连接,用于接收所述处理器 发送的、协议为 QPI协议的报文; 所述协议转换模块, 用于将 QPI协议的报文转成内 存接口协议后向所述内存接口模块发送;所述内存接口模块与位于所述扩展芯片所在 扩展安装位上内存安装位上的扩展内存相连接,用于根据协议转换后的报文在所述扩 展内存中读取数据或写入数据,将读取到的数据向所述协议转换模块发送; 所述协议 转换模块还用于将读取到的数据由内存接口协议转换成 QPI协议后向所述 QPI接口模 块发送,所述 QPI接口模块还用于将协议转换后的数据通过所述扩展芯片所在扩展安 装位上的 QPI接口发送。
第二方面, 本申请提供了一种内存扩展方法, 所述方法包括: 处理器生成标识号 码查询指令,将所述标识号码查询指令通过所述处理器所在处理器安装位上的快速通 道互联 QPI接口发送;扩展芯片通过所述扩展芯片所在处理器安装位上的 QPI接口接 收查询指令,根据所述标识号码查询指令获取所述扩展芯片的标识号码,将获取得到 的标识号码通过所述扩展芯片所在处理器安装位上的 QPI接口发送;所述处理器通过 所述处理器所在处理器安装位上的 QPI接口接收标识号码,判断所述标识号码是否为 扩展芯片的标识号码, 当所述标识号码为扩展芯片的标识号码时, 为所述扩展芯片配 置内存控制器,在所述处理器的地址空间中分配与所述扩展芯片相连接的扩展内存相 对应的内存地址。
在第二方面的第一种可能的实现方式中, 该方法还包括: 所述处理器判断是否向 所述处理器所在处理器安装位上的所有 QPI接口发送标识号码查询指令; 如果否,所 述处理器向未发送标标识号码查询指令的 QPI接口发送标识号码查询指令。
结合第一方面或第二方面第一种可能的实现方式,在第二方面第二种可能的实现 方式中, 该方法还包括: 所述处理器生成用于读取数据或写入数据的、 协议为 QPI 协议的报文,将所述报文通过所述处理器所在处理器安装位上的 QPI接口发送; 所述 扩展芯片通过所述扩展芯片所在处理器安装位上的 QPI接口接收所述报文,将所述报 文转换成内存接口协议后,根据协议转换后的报文在与所述扩展芯片相连接的扩展内 存中读取数据或写入数据,将读取到的数据由内存接口协议转换成 QPI协议后通过所 述扩展芯片所在处理器安装位上的 QPI接口发送;所述处理器通过所述处理器所在处 理器安装位上的 QPI接口接收协议转换后的数据。
由以上技术方案可见,本申请提供的该内存扩展系统,在一些处理器安装位上设 置有处理器,在其它处理器安装位上设置扩展芯片, 处理器与扩展芯片之间可以通过 处理器安装位之间的 QPI接口进行数据交互,每个扩展芯片都可以单独连接有自己的 扩展内存, 处理器通过扩展芯片可以对与每个扩展芯片连接的扩展内存进行访问。
与现有技术相比,当处理能力满足要求但内存容量需求超过处理器自带内存的容 量的情况, 该内存扩展系统, 采用在其它处理器安装位扩展芯片替代处理器, 已有的 处理器可以通过扩展芯片访问扩展芯片所带的扩展内存,从而可以在没有增加处理能 力的情况下增加了已有处理器的内存容量,避免现有技术通过增加处理器来扩展内存 容量导致处理能力冗余的问题。 附图说明 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附 图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例, 对于 本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获 得其他的附图。
图 1为本申请实施例提供的一种内存扩展系统的结构示意图;
图 2为本申请实施例提供的一种第一处理器的结构示意图;
图 3为本申请实施例提供的一种扩展芯片的结构示意图;
图 4为本申请实施例提供的另一种内存扩展系统的结构示意图;
图 5为本申请实施例提供的另一种第一处理器的结构示意图;
图 6为本申请实施例提供的另一种扩展芯片的结构示意图;
图 7为本申请实施例提供的一种内存扩展方法的流程示意图;
图 8为本申请实施例提供的另一种内存扩展方法的流程示意图;
图 9为本申请实施例提供的又一种内存扩展方法的流程示意图。 具体实施方式 本申请如下实施例提供了一种内存扩展系统及方法,该内存扩展系统在多路处理 器设计的系统中,当处理能力满足要求但内存容量需求超过处理器自带内存的容量的 情况,可以在其它处理器安装位上安装扩展芯片以替代处理器, 并且在扩展芯片所在 的处理器安装位的内存安装位上安装需要的扩展内存,这样已有的处理器就可以通过
QPI接口与扩展芯片进行通信, 实现对扩展芯片连接的扩展内存进行访问, 因此可以 解决现有多处理器设计的服务器通过增加处理器来扩展内存容量导致处理能力冗余 的问题。
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实 施例的上述目的、特征和优点能够更加明显易懂, 下面结合附图对本申请实施例中技 术方案作进一步详细的说明。
一个实施例:
参见图 1, 为本申请实施例提供的内存扩展系统的一种结构示意图, 图中以三个 处理器安装座的多处理器设计的系统为例,该内存扩展系统可以包括:第一处理器 1、 第一内存 2、、第一扩展芯片 3、第一扩展内存 4、第二扩展内存 5和第二扩展芯片 6, 其中, 第一处理器 1、 第一扩展芯片 3和第二扩展芯片 6分别安装在三个处理器安装 位上 (图中未示出), 三个处理器安装位之间通过 QPI (Quick Path Interconnect, 快速通道互联)接口相连接, 第一内存 2为第一处理器 1的自带内存, 第一扩展内存 4与第一扩展芯片 3相连接, 第二扩展内存 5与第二扩展芯片 6相连接。
为了叙述方便,在本申请实施例中,可以将第一处理器 1所在的处理器安装位称 为第一处理器安装位, 将第一扩展芯片 3所在的处理器安装位称为第一扩展安装位, 将第二扩展芯片 6所在的处理器安装位称为第二扩展安装位。第一处理器 1可以直接 焊接在第一处理器安装位, 另外, 为了方便拆卸或方便对多处理器系统进行组合, 第 一处理器 1还可以通过插拔接口安装在第一处理器安装位上,插拔接口可以为相互匹 配的管脚和插孔, 或者, 相互匹配的插卡和插槽。 第一扩展芯片 3和 /或第二扩展芯 片 6可以通过焊接的方式固定在相应的扩展安装位上,当然为了方便拆卸或方便对多 处理器系统进行组合, 也可以通过插拔接口的方式与相应的扩展安装位相连接。三个 处理器安装位之间通过 QPI接口进行数据交互, QPI接口由 20对差分发送信号、 20 对差分接收信号和两对差分时钟信号组成, 信号速率可到 6. 4GT/s, 双向带宽为 25. 6GB/s,此外还支持高速缓冲存储器一致性,可以执行对外围设备的配置访问和对 内存的读写操作。
在每个处理器安装位上都设置有一个或多个内存安装位,用于增加内存空间。第 一内存 2设置在第一处理器安装位上的内存安装位上,第一扩展内存 4设置在第一扩 展安装位上的内存安装位上,第二扩展内存 5设置在第二扩展安装位上的内存安装位 上。处理器安装位与相连接的内存安装位之间通过内存接口相连接, 并且处理器安装 位与相连接的内存安装位之间交互数据的协议格式为内存接口协议。
每个扩展芯片都有唯一的标识号码,通过该标识号码可以识别出处理器安装位上 的是否为扩展芯片。每个扩展芯片都可以连接一个或多个扩展内存, 并且所有扩展芯 片相连接的扩展内存的地址都在第一处理器 1的地址空间范围内。另外, 为了保证每 个扩展芯片都可以安装在处理器安装位上,在本申请实施例中, 每个扩展芯片的管脚 与处理器的管脚都相兼容。在本申请实施例中,可以将扩展芯片的以下管脚定义与处 理器的管脚兼容:
1、 电源。 处理器的电源种类较多, 例如核心电压、 I/O 电压等, 都由单板上的 电源模块提供。扩展芯片的核心电压可以与处理器相同, 也可以通过扩展芯片内部电 路将单板提供的电压转换为自己所需的电压。扩展芯片的 I/O电压用于给 I/O接口电 路供电, 由于扩展芯片也要提供 QPI接口, 因此这部分电路可以直接利用单板提供的 电压, 管脚位置与处理器保持一致。
2、 地。 地可以为各种电源和信号提供回路, 同时为高速信号提供屏蔽功能, 扩 展芯片可以直接利用处理器已有的地信号。
3、 时钟。 时钟为处理器内部模块、 I/O接口提供参考时钟, 处理器内部有锁相 环可以将单板提供的外部时钟倍频到更高的频率,还会产生内存接口时钟来同步对内 存条的读写访问。扩展芯片可以直接利用处理器的输入参考时钟, 并倍频得到自己所 需的工作时钟, 同时必须接收和产生 QPI接口时钟与对端处理器通信,还要产生内存 接口时钟来同步对内存条的访问, 管脚位置、 功能和电气特性与处理器保持一致。
4、 复位。 复位可以将处理器和单板上的其它器件置为确定的初始状态, 然后处 理器从第一条指令开始执行。 扩展芯片可以直接利用处理器的复位信号, 管脚位置、 功能和电气特性与处理器保持一致。
5、 QPI接口。 扩展芯片也要提供 QPI接口, 管脚位置、 功能和电气特性与处理 器保持一致。
6、 内存接口。 扩展芯片也要提供内存接口, 包括用于读取内存条信息的 I2C接 口, 管脚位置、 功能和电气特性与处理器保持一致。
图 1中的 9为桥片, 10为 BIOS (Basic Input Output System, 基本输入输出系 统), 第一处理器 1通过 DMI接口 (Direct Media Interface, 直接媒体接口) 与桥 片 9 (一般称为南桥)相连接, 通过桥片 9, 第一处理器 1可以访问 BI0S10。 通常将可 以访问桥片 9的第一处理器 1称为主处理器, 将其它处理器称为从处理器(图 1所示 实施例中没有设置从处理器), 每次上电复位结束后都是主处理器先启动, 执行外围 设备的初始化, 然后控制从处理器启动。
参见图 2, 为本申请实施例提供的第一处理器的一种结构示意图。 第一处理器 1 可以包括:
查询指令生成模块 21, 用于生成标识号码查询指令;
查询指令发送模块 22,用于将标识号码查询指令通过第一处理器安装位上的 QPI 接口发送;
标识号码接收模块 23, 用于通过第一处理器安装位上的 QPI接口接收标识号码; 标识号码判断模块 24, 用于判断接收到的标识号码是否为扩展芯片的标识号码; 配置模块 25, 用于当标识号码为扩展芯片的标识号码时, 为扩展芯片配置内存 控制器, 在处理器的地址空间中分配与扩展芯片相连接的扩展内存相对应的内存地 址。
相对应图 2所示的第一处理器, 参见图 3, 为本申请实施例提供的扩展芯片的一 种结构示意图。 扩展芯片可以包括:
查询指令接收模块 31, 用于通过扩展芯片所在扩展安装位上的 QPI接口接收标 识号码查询指令;
标识号码获取模块 32, 用于根据标识号码查询指令获取扩展芯片的标识号码; 标识号码发送模块 33, 用于将获取得到的标识号码通过扩展芯片所在扩展安装 位上的 QPI接口发送。
由此, 可以看到, 在第一处理器 1通过对扩展芯片的标识号码进行查询, 就可以 对扩展芯片进行初始化。
在本申请实施例中, 处理器的数量以 1个为例。 在实际应用中, 处理器的数量 根据系统对计算能力的需要可以自由设定, 可以为两个或多个, 当处理器为多个时, 需要处理器能够提供的 QPI接口更多。
参见图 4, 为本申请实施例提供的内存扩展系统的另一种结构示意图。 图中, 内 存扩展系统还可以包括: 第二处理器 7和第二内存 8, 第二处理器 7所在的处理器安 装位为第二处理器安装位, 并且第二内存 8是第二处理器 7的自带内存。
第一处理器 1和第二处理器 7通过 QPI接口直连,两个处理器都集成有内存控制 器, 并且每个处理器都可以外挂一个或多个属于自己的内存, 同时两个处理器还支持 彼此内存之间的相互访问。 图 4所示实施例中, 第一处理器 1可以称为主处理器, 第 二处理器 2为从处理器。 当系统上电或复位结束后主处理器最先启动, 执行 BIOS中 的代码,在完成外围设备的初始化并为从处理器准备好启动代码后才控制其它从处理 器启动, 然后加载操作系统, 开始在所有处理器上运行。
在系统上电后, 第一处理器 1 在外围设备初始化完成后以及加载操作系统成功 后, 就可以对扩展芯片上的扩展内存进行访问。 在本申请实施例中, 如图 5所示, 第 一处理器 1还可以包括:
报文生成模块 51, 用于生成用于读取数据或写入数据的、 协议为 QPI协议的报 文;
报文发送模块 52, 用于将报文通过第一处理器安装位上的 QPI接口发送; 数据接收模块 53, 用于通过第一处理器安装位上的 QPI接口接收扩展芯片根据 所述报文读取得到的数据。
相对应图 5所示的第一处理器, 如图 6所示, 扩展芯片还可以包括: QPI接口模 块 61、 协议转换模块 62和内存接口模块 63。
QPI接口模块 61与扩展芯片所在扩展安装位上的 QPI接口相连接, 用于接收第 一处理器发送的、协议为 QPI协议的报文。 由于处理器安装位之间通过 QPI接口进行 数据交互, 所以第一处理器发送的报文为 QPI协议格式。
协议转换模块 62, 用于将 QPI协议的报文转成内存接口协议后向内存接口模块 63 发送。 对于扩展芯片和扩展内存, 两者之间通过内存接口相连接, 即两者之间的 交互的数据为内存接口协议格式。 所以, 协议转换模块 62在接收到 QPI接口发送的 QPI协议格式的报文后, 首先根据 QPI协议对报文进行解析, 识别出报文内包含的: 要访问的内存地址、访问类型 (读或写)、数据长度和待写入的数据 (对于写操作), 然 将识别得到的信息转换成内存接口协议格式后, 发送给内存接口模块 63, 由内存接 口模块 63发送给扩展内存。另外,当内存接口模块 63接收到扩展内存发送的数据后, 协议转换模块 62还用于将接收到的数据转换成 QPI协议格式, 然后由 QPI接口模块 61发送给第一处理器 1。
内存接口模块 63与位于扩展芯片所在扩展安装位上的内存安装位上的扩展内存 相连接,用于根据协议转换后的报文在扩展内存中读取数据或写入数据,将读取到的 数据向协议转换模块 62发送。
由以上技术方案可见,本申请实施例提供的该内存扩展系统,在一些处理器安装 位上设置有处理器,在其它处理器安装位上设置扩展芯片, 处理器与扩展芯片之间可 以通过处理器安装位之间的 QPI接口进行数据交互,每个扩展芯片都可以单独连接有 扩展内存, 并且处理器可以对与每个扩展芯片连接的扩展内存进行访问。
与现有技术相比, 该内存扩展系统, 当处理能力满足要求但内存容量需求超过处 理器自带内存的容量的情况,通过在其它处理器位安装扩展芯片替代处理器,通过扩 展芯片访问扩展芯片所带的扩展内存,从而可以避免出现现有技术通过增加处理器来 扩展内存导致处理能力冗余的问题。
另外, 相对于处理器, 扩展芯片的作用主要是进行协议转换, 扩展芯片的成本和 功耗都很小,所以本申请实施例提供的该内存扩展系统用较小的成本和功耗就可以实 现增加内存容量。
此外, 在本申请实施例中, 都是以第一处理器为例进行说明, 第一扩展芯片和第 二扩展芯片都附属于第一处理器。在本申请其他实施例中, 每个扩展芯片都可以与不 同处理器之间建立联系, 例如: 第二扩展芯片既可以附属于第一处理器, 也可以附属 于第二处理器, 同样, 第一扩展芯片也是如此, 当第二处理器有附属的扩展芯片时, 第二处理器的结构可以参见上述实施例中描述的第一处理器的结构, 在此不再赘述。 这里, 扩展芯片与处理器之间的对应关系, 可以根据实际使用情况自由设定, 例如: 在本申请实施例中,第一扩展芯片和第二扩展芯片都属于第一处理器,那么第一处理 器的软件设计和控制就需要专门设计,例如第一处理器通过控制是否允许第二处理器 检测扩展芯片, 进而实现对第二处理器进行控制。
另一实施例:
对应图 1所示的内存扩展系统, 参见图 7, 为本申请实施例提供的一种内存扩展 方法的流程示意图。 所述内存扩展方法可以包括:
S101 : 处理器生成标识号码查询指令, 将标识号码查询指令发送。
处理器将生成标识号码查询指令通过处理器所在处理器安装位上的 QPI 接口发 送, 用于对与处理器所在处理器安装位相连接的扩展芯片进行确定。
S102: 扩展芯片接收标识号码查询指令,根据标识号码查询指令获取扩展芯片的 标识号码, 将获取得到的标识号码发送。
每个扩展芯片所在的处理器安装位都通过 QPI 接口与处理器所在处理器安装位 相连接,所以每个扩展芯片都可以通过所在处理器安装位上的 QPI接口接收处理器发 送的标识号码查询指令。根据标识号码查询指令,扩展芯片可以在查询自身存储的标 识号码, 并且将查询到的标识号码通过所在处理器安装位上的 QPI 接口返回给处理 器。
S103 :处理器接收标识号码, 判断标识号码是否为扩展芯片的标识号码, 当标识 号码为扩展芯片的标识号码时, 为扩展芯片配置内存控制器,在处理器的地址空间中 分配与扩展芯片相连接的扩展内存相对应的内存地址。
在本申请实施例中,处理器通过向所在处理器安装位上的各个 QPI接口发送标识 号码查询指令, 并接收返回的标识号码,通过对标识号码进行识别可以确认与所在处 理器安装位相连接的扩展芯片, 当识别出扩展芯片后,可以对扩展芯片以及与扩展芯 片连接的扩展内存进行初始化操作, 包括: 为扩展芯片配置的内存控制器, 为扩展内 存分配地址空间,其中, 配置内存控制器可以对与扩展芯片相连接的扩展内存进行数 据读取或写入等操作, 为扩展内存分配地址空间,可以将扩展内存映射成处理器自己 地址空间的一部分。初始化操作完成后, 处理器就可以对与扩展芯片相连接的扩展内 存进行访问。 当然, 处理器还可以对自带的内存也进行初始化操作, 例如: 图 1中第 一处理器 1的自带内存为第一内存 2, 第一处理器 1可以为第一内存 2配置内存控制 器以及为第一内存 2分配地址空间。
参见图 8, 为本申请实施例提供的内存扩展方法的另一种流程示意图。 该内存扩 展方法还可以包括:
S201 : 第一处理器生成用于读取数据或写入数据的报文, 将报文发送。
第一处理器根据数据读取或写入的需要,在第一处理器内生成读取数据或写入数 据的报文, 并将报文通过第一处理器安装位上与扩展芯片相连接的 QPI 接口发送出 去。 由于处理器安装位之间都是通过 QPI接口进行数据交互,所以生成的读取数据或 写入数据的报文的格式为 QPI协议。
S202: 扩展芯片接收报文, 将报文转换成内存接口协议后, 根据协议转换后的报 文在扩展内存中读取数据或写入数据, 将读取到的数据由内存接口协议转换成 QPI 协议后发送。
扩展芯片通过扩展芯片所在的扩展安装位上的 QPI接口接收第一处理器 1发送报 文。 由于第一处理器发送的报文为 QPI协议格式, 而对于扩展芯片和扩展内存, 两者 之间通过内存接口相连接, 即两者之间的交互的数据为内存接口协议格式, 所以, 在 扩展芯片接收到 QPI协议格式的报文后, 首先根据 QPI协议对报文进行解析, 识别出 报文内包含的:要访问的内存地址、访问类型 (读或写)、数据长度和待写入的数据 (对 于写操作), 然将识别得到的信息转换成内存接口协议格式后, 发送给扩展内存, 在 扩展内存中进行数据读取或数据写入。当从扩展内存读取到数据后,扩展芯片接收扩 展内存发送的数据, 并且将数据转换成 QPI协议格式,然后由扩展芯片所在的扩展安 装位上的 QPI接口发送给第一处理器 1。 通过上述描述, 可见, 扩展芯片在数据读取或数据写入过程中, 其主要作用是进 行协议转换, 与现有技术需要增加内存容量采用安装新的处理器而言, 安装扩展芯片 来增加内存容量的方式, 不仅成本大大降低, 而且扩展芯片的功耗相对处理器也非常 小。
S203: 第一处理器接收扩展芯片发送的数据。
第一处理器 1通过第一处理器安装位上的 QPI接口接收扩展芯片发送的 QPI协议 格式的数据。
由以上技术方案可见,本申请实施例提供的该内存扩展方法,通过查找与处理器 相连接的扩展芯片的标识号码, 对扩展芯片进行初始化操作, 包括: 为扩展芯片配置 内存控制器、在所述处理器的地址空间中为扩展内存分配相对应的内存地址, 向扩展 内存加载启动程序。 因此, 当处理器需要数据读取或写入时, 可以通过扩展芯片直接 访问与扩展芯片相连接的扩展内存, 即以较小的成本和功耗, 就可以解决处理能力冗 余的问题。
另外, 对于图 4所示的多处理器内存扩展系统, 第一处理器 1作为主处理器, 第 二处理器 7作为从处理器,在具体的执行过程中, 作为主处理器的第一处理器 1还可 以执行图 9所示的步骤:
S301 : 系统复位结束后第一处理器启动;
S302: 通过 QPI接口查询标识号码;
S303: 判断标识号码是否为扩展芯片的标识号码, 如果是, 执行步骤 S304, 如 果否, 转入步骤 S305;
S304: 为扩展芯片配置内存控制器, 为扩展内存分配相应的内存空间; S305: 判断第一处理器安装位上所有 QPI接口是否遍历完毕; 当第一处理器安装 位上所有 QPI接口遍历完毕时, 执行步骤 S306; 当第一处理器安装位上所有 QPI接 口未遍历完毕时, 转入步骤 S302;
S306: 为第二处理器加载启动程序;
S307: 控制第二处理器启动;
S308: 加载操作系统运行。
通过上述步骤的配置, 可以对与第一处理器相连接的外围设备(指扩展芯片)进 行初始化, 并且为其它从处理器准备好启动代码, 控制其它从处理器开始启动, 最后 第一处理器加载操作系统, 并进行运行。对扩展芯片初始化后, 第一处理器就可以对 与扩展芯片相连接的扩展内存进行访问。 通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本申请可 借助软件加必需的通用硬件平台的方式来实现, 当然也可以通过硬件,但很多情况下 前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技 术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存 储介质中, 包括若干指令用以使得一台计算机设备(可以是个人计算机, 服务器, 或 者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介 质包括: 只读存储器(R0M)、 随机存取存储器(RAM)、 磁碟或者光盘等各种可以存储 程序代码的介质。
可以理解的是,本申请可用于众多通用或专用的计算系统环境或配置中。例如: 个人计算机、 服务器计算机、 手持设备或便携式设备、 平板型设备、 多处理器系统、 基于微处理器的系统、 置顶盒、 可编程的消费电子设备、 网络 PC、 小型计算机、 大 型计算机、 包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序 模块。 一般地, 程序模块包括执行特定任务或实现特定抽象数据类型的例程、 程序、 对象、 组件、 数据结构等等。 也可以在分布式计算环境中实践本申请, 在这些分布式 计算环境中, 由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环 境中, 程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实 体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之 间存在任何这种实际的关系或者顺序。 而且, 术语 "包括" 、 "包含"或者其任何其 它变体意在涵盖非排他性的包含, 从而使得包括一系列要素的过程、 方法、物品或者 设备不仅包括那些要素, 而且还包括没有明确列出的其它要素, 或者是还包括为这种 过程、 方法、 物品或者设备所固有的要素。 在没有更多限制的情况下, 由语句 "包括 一个…… " 限定的要素, 并不排除在包括所述要素的过程、 方法、物品或者设备中还 存在另外的相同要素。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人 员来说, 在不脱离本申请原理的前提下, 还可以做出若干改进和润饰, 这些改进和润 饰也应视为本申请的保护范围。

Claims

权 利 要 求
1、 一种内存扩展系统, 其特征在于, 包括: 处理器、 扩展内存、 扩展芯片 和多个处理器安装位, 其中, 每个所述处理器安装位上都设置有与所述处理器安装位相连接的内存安装 位; 多个所述处理器安装位之间通过快速通道互联 QPI接口相连接,至少一个处 理器安装位上安装有所述处理器, 其它至少一个处理器安装位作为扩展安装位; 至少一个扩展安装位上安装有所述扩展芯片,所述扩展芯片具有唯一的标识 号码; 所述扩展内存安装在与所述扩展芯片相连接的内存安装位上,所有所述扩展 内存的地址都在所述处理器的地址空间范围内。
2、 根据权利要求 1所述的系统, 其特征在于, 所述扩展芯片的管脚与所述 处理器的管脚兼容。
3、 根据权利要求 1或 2所述的系统, 其特征在于, 所述处理器包括: 查询指令生成模块, 用于生成标识号码查询指令; 查询指令发送模块,用于将所述标识号码查询指令通过所述处理器所在处理 器安装位上的 QPI接口发送; 标识号码接收模块,用于通过所述处理器所在处理器安装位上的 QPI接口接 收标识号码; 标识号码判断模块,用于判断接收到的所述标识号码是否为扩展芯片的标识 号码; 配置模块, 用于当所述标识号码为扩展芯片的标识号码时, 为所述扩展芯片 配置内存控制器,在所述处理器的地址空间中分配与所述扩展芯片相连接的扩展 内存相对应的内存地址。
4、 根据权利要求 3所述的系统, 其特征在于, 该处理器还包括: 报文生成模块, 用于生成用于读取数据或写入数据的、协议为 QPI协议的报 文; 报文发送模块, 用于将所述报文通过所述处理器所在处理器安装位上的 QPI 接口发送; 数据接收模块,用于通过所述处理器所在处理器安装位上的 QPI接口接收所 述扩展芯片根据所述报文读取得到的数据。
5、 根据权利要求 1-4任一项所述的系统, 其特征在于, 所述扩展芯片包括: 查询指令接收模块,用于通过所述扩展芯片所在扩展安装位上的 QPI接口接 收标识号码查询指令; 标识号码获取模块,用于根据所述标识号码查询指令获取所述扩展芯片的标 识号码; 标识号码发送模块,用于将获取得到的标识号码通过所述扩展芯片所在扩展 安装位上的 QPI接口发送。
6、 根据权利要求 5所述的系统, 其特征在于, 所述扩展芯片还包括: QPI 接口模块、 协议转换模块和内存接口模块, 其中, 所述 QPI接口模块与所述扩展芯片所在扩展安装位上的 QPI接口相连接,用 于接收所述处理器发送的、 协议为 QPI协议的报文; 所述协议转换模块,用于将 QPI协议的报文转成内存接口协议后向所述内存 接口模块发送; 所述内存接口模块与位于所述扩展芯片所在扩展安装位上内存安装位上的 扩展内存相连接,用于根据协议转换后的报文在所述扩展内存中读取数据或写入 数据, 将读取到的数据向所述协议转换模块发送; 所述协议转换模块还用于将读取到的数据由内存接口协议转换成 QPI协议 后向所述 QPI接口模块发送,所述 QPI接口模块还用于将协议转换后的数据通过 所述扩展芯片所在扩展安装位上的 QPI接口发送。
7、 一种内存扩展方法, 其特征在于, 所述方法包括: 处理器生成标识号码查询指令,将所述标识号码查询指令通过所述处理器所 在处理器安装位上的快速通道互联 QPI接口发送; 扩展芯片通过所述扩展芯片所在处理器安装位上的 QPI接口接收查询指令, 根据所述标识号码查询指令获取所述扩展芯片的标识号码,将获取得到的标识号 码通过所述扩展芯片所在处理器安装位上的 QPI接口发送; 所述处理器通过所述处理器所在处理器安装位上的 QPI接口接收标识号码, 判断所述标识号码是否为扩展芯片的标识号码,当所述标识号码为扩展芯片的标 识号码时, 为所述扩展芯片配置内存控制器, 在所述处理器的地址空间中分配与 所述扩展芯片相连接的扩展内存相对应的内存地址。
8、 根据权利要求 7所述的方法, 其特征在于, 所述方法还包括: 所述处理器判断是否向所述处理器所在处理器安装位上的所有 QPI接口发 送标识号码查询指令; 如果否, 所述处理器向未发送标标识号码查询指令的 QPI 接口发送标识号码查询指令。
9、 根据权利要求 7或 8所述的方法, 其特征在于, 所述方法还包括: 所述处理器生成用于读取数据或写入数据的、协议为 QPI协议的报文, 将所 述报文通过所述处理器所在处理器安装位上的 QPI接口发送; 所述扩展芯片通过所述扩展芯片所在处理器安装位上的 QPI接口接收所述 报文, 将所述报文转换成内存接口协议后, 根据协议转换后的报文在与所述扩展 芯片相连接的扩展内存中读取数据或写入数据,将读取到的数据由内存接口协议 转换成 QPI协议后通过所述扩展芯片所在处理器安装位上的 QPI接口发送; 所述处理器通过所述处理器所在处理器安装位上的 QPI接口接收协议转换 后的数据。
PCT/CN2014/076582 2013-09-25 2014-04-30 内存扩展系统及方法 WO2015043181A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP14814662.4A EP2988204A4 (en) 2013-09-25 2014-04-30 SYSTEM AND METHOD FOR MEMORY EXTENSION
US14/584,698 US9811497B2 (en) 2013-09-25 2014-12-29 Memory extension system and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310442041.1 2013-09-25
CN201310442041.1A CN103488436B (zh) 2013-09-25 2013-09-25 内存扩展系统及方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/584,698 Continuation US9811497B2 (en) 2013-09-25 2014-12-29 Memory extension system and method

Publications (1)

Publication Number Publication Date
WO2015043181A1 true WO2015043181A1 (zh) 2015-04-02

Family

ID=49828705

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/076582 WO2015043181A1 (zh) 2013-09-25 2014-04-30 内存扩展系统及方法

Country Status (4)

Country Link
US (1) US9811497B2 (zh)
EP (1) EP2988204A4 (zh)
CN (1) CN103488436B (zh)
WO (1) WO2015043181A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488436B (zh) 2013-09-25 2017-04-26 华为技术有限公司 内存扩展系统及方法
CN105786398B (zh) * 2014-11-18 2019-04-05 财团法人工业技术研究院 存储器映射方法和存储器映射系统
CN104484250B (zh) * 2014-11-28 2018-04-27 英业达科技有限公司 快速通道互联总线的压力测试方法和压力测试装置
CN104484021A (zh) * 2014-12-23 2015-04-01 浪潮电子信息产业股份有限公司 一种可扩展内存的服务器系统
CN104408014A (zh) * 2014-12-23 2015-03-11 浪潮电子信息产业股份有限公司 一种计算系统之间处理单元互连的系统及方法
CN104615564A (zh) * 2015-02-05 2015-05-13 浪潮电子信息产业股份有限公司 一种基于qpi总线的数据传输方法及计算机系统
CN106155577B (zh) * 2015-04-23 2019-03-26 华为技术有限公司 扩展内存的访问方法、设备以及系统
CN104935530B (zh) * 2015-04-29 2017-12-19 浪潮电子信息产业股份有限公司 一种计算机间数据交换的方法、交换机和系统
CN105095138B (zh) * 2015-06-29 2018-05-04 中国科学院计算技术研究所 一种扩展同步内存总线功能的方法和装置
CN105534545A (zh) * 2015-12-11 2016-05-04 青岛海信医疗设备股份有限公司 一种超声装置
US9928884B1 (en) 2017-05-01 2018-03-27 International Business Machines Corporation Elastic memory expansion chip architecture
CN109783395B (zh) * 2017-11-15 2023-03-31 阿里巴巴集团控股有限公司 内存访问方法、交换芯片、内存模组及电子设备
CN107844433A (zh) * 2017-11-24 2018-03-27 郑州云海信息技术有限公司 一种异构混合内存服务器架构
TWI692689B (zh) 2017-12-28 2020-05-01 慧榮科技股份有限公司 記憶卡控制器、記憶卡、使用於記憶卡控制器的方法以及連接至記憶卡的電子裝置
US10866746B2 (en) * 2017-12-28 2020-12-15 Silicon Motion Inc. Memory addressing methods and associated controller, memory device and host
CN108182157B (zh) * 2018-01-30 2021-11-19 郑州云海信息技术有限公司 一种实现异构混合内存的方法、bmc、装置及存储介质
US11079958B2 (en) * 2019-04-12 2021-08-03 Intel Corporation Apparatus, system and method for offloading data transfer operations between source and destination storage devices to a hardware accelerator
US11392470B2 (en) * 2019-05-15 2022-07-19 Dell Products L.P. Information handling system to allow system boot when an amount of installed memory exceeds processor limit
CN112231256A (zh) * 2020-09-28 2021-01-15 中科可控信息产业有限公司 转接装置、接口扩展组件及扩展系统
CN112860605A (zh) * 2021-03-11 2021-05-28 浙江大华技术股份有限公司 一种接口扩展方法及接口扩展模块
CN115729849B (zh) * 2022-11-04 2024-02-20 超聚变数字技术有限公司 内存管理方法及计算设备
CN115686153B (zh) * 2022-12-29 2023-03-31 浪潮电子信息产业股份有限公司 一种内存模组及一种电子设备
CN115952126B (zh) * 2023-03-14 2023-05-12 沐曦集成电路(上海)有限公司 一种gpu处理器系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101872213A (zh) * 2010-04-19 2010-10-27 浪潮电子信息产业股份有限公司 一种基于qpi链接架构的组合式服务器主板设计方法
CN101872308A (zh) * 2009-04-25 2010-10-27 鸿富锦精密工业(深圳)有限公司 内存条控制系统及其控制方法
CN102473169A (zh) * 2009-12-31 2012-05-23 英特尔公司 动态系统重新配置
WO2013081579A1 (en) * 2011-11-29 2013-06-06 Intel Corporation Ring protocol for low latency interconnect switch
CN103488436A (zh) * 2013-09-25 2014-01-01 华为技术有限公司 内存扩展系统及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5621900A (en) * 1995-05-17 1997-04-15 Intel Corporation Method and apparatus for claiming bus access from a first bus to a second bus prior to the subtractive decode agent claiming the transaction without decoding the transaction
TW200727139A (en) * 2006-01-06 2007-07-16 Tyan Computer Corp Computer system and memory bridge thereof
US7962676B2 (en) * 2006-12-22 2011-06-14 Lsi Corporation Debugging multi-port bridge system conforming to serial advanced technology attachment (SATA) or serial attached small computer system interface (SCSI) (SAS) standards using idle/scrambled dwords
US8082418B2 (en) * 2007-12-17 2011-12-20 Intel Corporation Method and apparatus for coherent device initialization and access
CN101266538B (zh) * 2008-05-06 2010-09-08 普天信息技术研究院有限公司 一种智能存储卡的接口访问控制方法
US8560735B2 (en) * 2008-08-15 2013-10-15 Micron Technology, Inc. Chained bus method and device
CN101763221B (zh) * 2008-12-24 2013-01-30 成都市华为赛门铁克科技有限公司 一种存储方法、存储系统及控制器
JP2011022937A (ja) * 2009-07-17 2011-02-03 Nec Corp アダプタ
US8775686B2 (en) * 2012-08-29 2014-07-08 Netronome Systems, Incorporated Transactional memory that performs an atomic metering command

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101872308A (zh) * 2009-04-25 2010-10-27 鸿富锦精密工业(深圳)有限公司 内存条控制系统及其控制方法
CN102473169A (zh) * 2009-12-31 2012-05-23 英特尔公司 动态系统重新配置
CN101872213A (zh) * 2010-04-19 2010-10-27 浪潮电子信息产业股份有限公司 一种基于qpi链接架构的组合式服务器主板设计方法
WO2013081579A1 (en) * 2011-11-29 2013-06-06 Intel Corporation Ring protocol for low latency interconnect switch
CN103488436A (zh) * 2013-09-25 2014-01-01 华为技术有限公司 内存扩展系统及方法

Also Published As

Publication number Publication date
US20150113198A1 (en) 2015-04-23
CN103488436A (zh) 2014-01-01
EP2988204A4 (en) 2016-06-01
EP2988204A1 (en) 2016-02-24
US9811497B2 (en) 2017-11-07
CN103488436B (zh) 2017-04-26

Similar Documents

Publication Publication Date Title
WO2015043181A1 (zh) 内存扩展系统及方法
US11416397B2 (en) Global persistent flush
CN109154924B (zh) 多个上行链路端口设备
US10282192B1 (en) Updating device code through a bus
CN107278299B (zh) 经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和系统
US11321264B2 (en) Flattening portal bridge
US11106474B2 (en) System, method, and apparatus for DVSEC for efficient peripheral management
JP6147840B2 (ja) ルートポート及びRPIE(RootPortIntegratedEndpoint)のレジューム時間を向上させるための方法、装置及びシステム
CN113704153A (zh) 链路层-phy接口适配器
CN107005231B (zh) 用于在高性能互连中定中心的方法、设备、系统
CN110121703B (zh) 用于向量通信的系统和方法
RU2611018C2 (ru) Общий способ построения виртуального pci-устройства и виртуального mmio-устройства
US10719333B2 (en) BIOS startup method and apparatus
CN107209725A (zh) 处理写请求的方法、处理器和计算机
US10437762B2 (en) Partitioned interconnect slot for inter-processor operation
US8347070B1 (en) System and methods for sharing platform data with an ACPI module of a computer system
US10649943B2 (en) System and method for I/O aware processor configuration
US20120324077A1 (en) Providing Resource Accessbility During a Sleep State
WO2012143949A2 (en) Secure digital host controller virtualization
CN113849442A (zh) 通过隧道传输的封闭式底盘调试
CN101676894B (zh) 面向集中地址译码的非pci片上总线的pci虚拟化装置及方法
US11803493B2 (en) Systems and methods for management controller co-processor host to variable subsystem proxy
US20230089863A1 (en) Executable passing using mailbox registers
US20240036848A1 (en) Configuring compute express link (cxl) attributes for best known configuration
Lv et al. Design of Key Components of Remote Sensing Satellite Scene Simulation Simulator Based on NVMe Technology

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2014814662

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14814662

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE