使用混合存储器立方体链路的互连系统及方法与流程

文档序号:12287871阅读:152来源:国知局
使用混合存储器立方体链路的互连系统及方法与流程

本申请案主张2014年5月9日针对“使用混合存储器立方体链路的互连系统及方法(INTERCONNECT SYSTEMS AND METHODS USING HYBRID MEMORY CUBE LINKS)”提出申请的序列号为14/273,867的美国专利申请案的申请日期的权益。

技术领域

本发明大体来说涉及例如半导体存储器装置、处理装置、存储器系统及处理系统等装置的互连及相关方法。更特定来说,本发明涉及此些装置及系统使用混合存储器立方体链路的互连。



背景技术:

存储器装置通常提供于许多数据处理系统中作为计算机或其它电子装置中的半导体集成电路及/或外部可移除式装置。存在许多不同类型的存储器,包含随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、快闪存储器及电阻可变存储器,以及其它存储器。

常规存储器系统通常由安装于称作双列直插(Dual In-line)存储器模块(DIMM)的印刷电路板(PCB)上的例如DRAM等一或多个存储器装置组成。存储器系统与存储器控制子系统或中央处理单元(CPU)或微处理器通信。在一些配置中,存储器控制器与处理器物理上包含于同一物理芯片中。在其它配置中,存储器控制器可仅为包括存储器控制器集线器的许多逻辑组件中的一者。存储器控制器集线器通常支持通常使用不同类型的半导体存储器或不同用途的完全单独且相异存储器地址空间。举例来说,存储器控制器可支持将视频DRAM用于图形应用程序、将快闪存储器用于磁盘驱动器加速及使用商品DRAM作为处理器的主要外部存储器。

由存储器协议、传统存储器子系统架构、标准、处理器特定存储器存取模型、最终用户可配置性要求、功率约束强加的限制或那些限制的组合往往以一方式交互使得降低性能且导致非优选存储器子系统。最近,已提出存储器控制集线器(MCH)来增强处理器与存储器子系统之间的存储器性能。然而,MCH主要经定义为用于单个处理器的存储器子系统。许多通用系统架构包含多个处理器,每一处理器可能具有其自身的存储器域。通常这些多个处理器需要在其之间通信。因此,已提出私用处理器通信总线以增强系统互连。

然而,当代通用系统互连规范并不提供在其主要存储器基于高带宽装置的系统中维持适当平衡所必需的充分功能性、灵活性及性能,例如在HMC规范的情况下所提出。通常情形是找到维持对本地存储器带宽的数百个十亿字节/秒的存取,但将较小分数(大约1/10th)的此带宽提供到系统互连的系统架构。此导致高度不平衡系统。

此现象在具有分布于多个处理插座/装置当中的多个执行线程(例如,任务)的应用程序中尤其明显。如果核心处理器支持功能数据高速缓存,那么必须存在于处理器插座之间的高速缓冲存储器一致性机构必须支持可为大于系统互连上的带宽的数量级的本地存储器带宽。结果是高度不平衡系统。

需要互连系统及提供更平衡系统带宽且还可降低设计此类互连系统所需的复杂性的方法。

附图说明

图1是包含混合存储器立方体的数据处理系统的图式,所述混合存储器立方体作为使用抽象化存储器协议在存储器总线上操作的装置的实例。

图2图解说明混合存储器立方体中的DRAM的可能分割。

图3图解说明混合存储器立方体中的DRAM的逻辑分割。

图4图解说明用于链路接口及控制混合存储器立方体中的DRAM的逻辑库。

图5图解说明根据本发明的一些实施例的可存在于数据处置装置中的一些元件。

图6图解说明在各种数据处置装置与存储器装置之间使用原位路由且展示存储器装置之间的稀疏路由的系统的图式。

图7图解说明在各种数据处置装置与存储器装置之间使用原位路由且展示存储器装置之间的密集路由的系统的图式。

图8图解说明在各种数据处置装置与存储器装置之间使用专用路由的系统的图式。

图9图解说明可用于具有图8的专用路由的系统中的各种实例性拓扑。

具体实施方式

在下文详细描述中,参考形成其一部分且其中以图解说明方式展示其中可实践本发明的特定实例性实施例的附图。充分详细地描述这些实施例以使得所属领域的技术人员能够实践本发明。然而,可在不背离本发明的范围的情况下利用其它实施例且可做出结构、材料及过程改变。本文中所呈现的图解说明并不意在作为任何特定方法、系统、装置或结构的实际视图,而仅是用以描述本发明的实施例的理想化表示。本文中所呈现的图式未必按比例绘制。为方便读者,各个图式中的类似结构或组件可保持相同或类似编号;然而,编号的类似性不意味着结构或组件必然在大小、组合物、配置或任何其它性质上相同。

可以框图形式展示元件、电路、模块及功能,以便不会因不必要的细节使本发明模糊。此外,所展示及所描述的特定实施方案仅是示范性,且除非本文中另有规定,否则不应被视为实施本发明的仅有方式。另外,块定义及各种块之间的逻辑分割是特定实施方案的示范。所属领域的技术人员将易于明了,可通过众多其它分割解决方案实践本发明。在大多数情况下,已省略关于定时考虑等的细节,其中此类细节对获得对本发明的完全理解并非必要且在相关领域的技术人员的能力范围内。

所属领域的技术人员将了解,结合本文中所揭示的实施例所描述的各种说明性逻辑块、模块、电路及算法动作可实施为电子硬件、计算机软件或两者的组合。为明确图解说明硬件与软件的此可互换性,通常在各种说明性组件、块、模块、电路及动作的功能性方面对其进行描述。此功能性是实施为硬件还是软件取决于特定应用及对总体系统强加的设计约束。虽然所属领域的技术人员可针对每一特定应用以不同方式实施所描述功能性,但不应将此类实施方案决策解释为导致背离本文中所描述的实施例的范围。

当用硬件实施时,可利用以下各项实施或执行本文中所揭示的实施例:通用处理器、专用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文中所描述的功能的任一组合。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。当执行软件以用于执行本文中所描述的实施例的过程时,通用处理器应被视为经配置以用于执行此类过程的专用处理器。处理器还可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器的组合、结合DSP核心的一或多个微处理器的组合或任一其它此类配置。

另外,应注意,可在经描绘为流程表、流程图、结构图或框图的过程方面来描述实施例。尽管流程表可将操作动作描述为顺序过程,但这些动作中的许多者可以另一顺序(并行或基本上同时)执行。另外,可重新布置动作的次序。过程可对应于方法、功能、程序步骤、子例程、子程序等。此外,本文中所揭示的方法可以硬件、软件或两者实施。如果以软件实施,那么功能可作为一或多个指令或代码存储于计算机可读媒体上或在其上传输。计算机可读媒体包含计算机存储媒体及通信媒体两者,包含促进将计算机程序从一个位置传送到另一位置的任何媒体。

所属领域的技术人员将理解,可使用各种不同科技及技艺中的任何者表示信息及信号。举例来说,贯穿本描述可提及的数据、指令、命令、信息、信号、位、符号及码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合表示。为呈现及描述的清晰性起见,一些图式可将信号图解说明为单个信号。所属领域的技术人员将理解,信号可表示用于运送信号的总线,其中总线可具有各种位宽度。

应理解,除非明确陈述此限制,否则本文中使用例如“第一”、“第二”等名称对元件的任何提及不限制那些元件的数量或次序。而是,这些名称可在本文中用作在两个或两个以上元件或元件的实例之间进行区分的方便方法。因此,对第一及第二元件的提及不意指彼处可仅采用两个元件或第一元件必须以某一方式先于第二元件。另外,除非另外陈述,否则一组元件可包括一或多个元件。

本文中所描述的元件可包含同一元件的多个实例。这些元件可类属地由数字标示符(例如,110)指示,且特定来说由数字标示符后续接着字母标示符(例如,110A)或数字标示符前面有“破折号”(例如,110-1)指示。为便于以下描述,在大多数情况下,元件编号标示符以在其上介绍或最完全论述元件的图式的编号开始。因此,举例来说,图1上的元件识别符将大部分呈数字格式1xx且图4上的元件将大部分呈数字格式4xx。

如本文中所使用,提及给定参数、性质或条件,术语“基本上”意指且包含所属领域的技术人员将理解的以小变化程度(例如在可接受制造公差内)满足给定参数、性质或条件的程度。以实例的方式,取决于基本上满足的特定参数、性质或条件,所述参数、性质或条件可为至少90%满足、至少95%满足或甚至至少99%满足。

如本文中所使用,任何关系术语(例如“在...上方”、“在…下方”、“在...上”、“下伏于...下”、“上部”、“下部”等)用于清晰且方便地理解本发明及附图,且除非上下文另有清晰指示否则其并不意味着或取决于任何特定偏好、定向或次序。

将理解,当一元件被称为“在“另一元件“上”、“连接到另一元件”、“耦合到另一元件”或“与”另一元件“耦合”时,其可直接在另一元件上、连接另一元件或与另一元件耦合或可存在介入元件。相比来说,当一元件被称为“直接在”另一元件“上”、“直接连接到”另一元件或“与”另一元件“直接耦合”时,不存在介入元件或层。如本文中所使用,术语“及/或”包含相关联所列举物项中的若干者中的任何者及所有组合。

本发明描述用于通过提供更平衡系统带宽并实现此类互连系统的设计及使用的降低的复杂性来改善存储器子系统的方法及设备。

图1是包含混合存储器立方体装置200的数据处理系统100的图式,混合存储器立方体装置200作为使用抽象化存储器协议130在存储器总线上操作以与数据处置装置500通信的装置的实例。为便于描述,本发明侧重于HMC协议总线。然而,如获益于本发明的所属领域的技术人员将了解,可利用其它高速数据总线实践本发明的实施例,所述其它高速数据总线包含保持数据的装置与所述数据总线上的协议之间的抽象。

术语“数据处置装置”500在本文中用于区分存储器总线上的大部分经配置为数据的消费者及产生者的装置,而非用于存储数据的装置(例如DRAM存储器)。作为非限制性实例,数据处置装置500可被视为处理器(在本文中还称为处理装置),例如,通用处理器、专用处理器、图形处理器及数字信号处理器。作为另一非限制性实例,数据处置装置500可被视为通信装置。举例来说,通信类型数据处置装置500可经配置以在存储器总线与某一其它类型的通信总线(例如,输入/输出(IO)总线或网络总线)之间传达数据。当然,数据处置装置500还可包含处理器元件与通信元件两者。如此,本文中的描述还可将数据处置装置500描述为系统单芯片(SoC)500。除非另有特定陈述,否则如本文中所提及的SoC 500应被视为等效于数据处置装置500。最终,虽然数据处置装置500可被视为侧重于处理及移动数据,但其还可在SoC 500上容纳大量的存储器(呈寄存器、缓冲器、高速缓冲存储器及其它类型的本地存储器的形式)。下文结合图5论述SoC 500的额外细节。

混合存储器立方体装置200(HMC 200)包含逻辑库400,逻辑库400定义抽象化存储器协议130以在SoC 500与HMC 200之间形成存储器链路120。在HMC 200上,并行总线群组410介接于逻辑库400与DRAM群组250之间。下文结合图2到4论述HMC 200的额外细节。

存储器链路120被分割成走向SoC 500的上行链路及背离SoC 500的下行链路。作为抽象化存储器协议130的一部分,存储器链路120被包化,如下文更完全阐释。因此,存储器链路120在本文中还称为包化存储器链路120以及混合存储器立方体链路120。此外,在存储器链路120上传达的包称为包请求及包化请求。

图2图解说明HMC 200中的DRAM 250的可能分割。HMC 200可被视为耦合到逻辑库400的DRAM裸片250的三维堆叠。逻辑库400可经配置为单独裸片且经配置以与DRAM裸片250介接。当被堆叠时,各种裸片之间的互连可利用穿硅通孔实现。虽然这些装置可经物理配置为三维堆叠,但其并不需要如此配置,但从互连角度来说仍可被视为三维的。

图3图解说明HMC 200中的DRAM 250的逻辑分割。参考图2及3,多个裸片层的互连实现具有存储器存储层及一或多个逻辑层的组合的存储器装置。以此方式,装置在经配置为HMC 200的单裸片封装中提供物理存储器存储及逻辑存储器事务处理。最终结果是具有每装置高达320GB/s的可用带宽容量的极其紧凑、功率高效封装。

就设计来说,HMC 200能够经由阶层式且并行方法具有此带宽。举例来说,可跨越逻辑层垂直发生装置阶层且可跨越给定裸片层发生硬件并行性。逻辑库400包含提供对HMC 200的外部链路存取以及内部路由及事务逻辑两者的多个组件。

HMC 200可分段成通常称为“存储库220”的垂直切片220。每一存储库220可包含并入到逻辑库400中以控制与那一存储库220相关联的DRAM 250的段的存储库逻辑450。存储库逻辑450管理在其存储库220内的对存储器分区的存储器参考操作。每一存储库控制器450可确定其自身的定时要求及刷新操作,此允许针对每一存储库220的不同定时且还消除主机存储器控制器中对这些功能的需要。另外,一队列可与每一存储库控制器450一起被包含以缓冲对那一存储库的存储器的参考。存储库控制器450可基于需要而非到达次序而在其队列内执行参考。因此,从存储库操作返回到外部存储器链路120(图1)的响应可在一些情形中是无序的。

存储器链路120可经配置以提供四个或八个逻辑链路。每一链路可经配置为十六个或八个串行且双向I/O链路的群组。经配置有四个链路的装置具有以10Gbps、12.5Gbps及15Gbps操作的能力。经配置有八个链路的装置具有以10Gbps操作的能力。

考虑到物理存储器存储装置的阶层式本质,HMC规范定义不同于传统分组DRAM装置的物理寻址与交错模型。HMC装置200的物理地址经编码成34位字段(含有存储库位、存储组位及地址位)。所述规范准许实施者及用户定义对目标存储器存取特性优化的地址映射方案,而非依赖于单个寻址结构。所述规范还提供将物理存储库及存储组结构结合到所要最大块请求大小的一系列默认地址映射模式。默认映射方案通过将较低有效地址位映射到存储库地址,随后直接接着存储组地址位而实施低交错模型。此方法强制顺序地址首先跨越存储库然后跨越存储库内的存储组交错以便避免存储组冲突。

经由包化格式执行主机装置(例如,SoC 500)与HMC装置200之间的所有带内通信。此格式包含三个主要包分类:请求包、响应包及流程控制包。包可经配置为单个16字节流单位(还称为FLIT)的倍数。包大小可为与9个FLIT(即,144字节)一样大。最小包可包含仅一个16字节FLIT(包含包标头及包尾标)。

所有存储器有效负载大小的存储器读取请求包仅需要包标头、包尾标及相应物理存储器地址。如此,读取请求可使用单个FLIT配置。存储器读取响应是包含来自对应存储器读取包中请求的地址的数据的单独包。然而,写入请求及原子请求包必须还含有分别用于写入及读取-修改-写入操作的相关联输入数据。如此,这些请求类型可具有2到9个FLIT的包宽度。HMC规范在包之间定义弱排序模型。如此,可存在存在于目标实施方案内的多个包重新排序点。目的地是辅助装置的到达包可传递等待本地存储库存取的那些辅助装置。本地存储库还可重新排序经排队包以便最高效使用去往及来自相应存储库存储组的带宽。然而,存在于给定HMC实施方案中的重新排序点可经定义以维持包流从特定链路到存储库内的特定存储组的次序。此排序确保后续接着存储器读取请求的存储器写入请求递送正确且确定行为。

HMC 200中的链路结构使得多个HMC 200的链接能够实现存储器子系统的构造,所述存储器子系统在维持链路结构及包化事务协议时需要大于单HMC 200装置的容量。下文参考图6到9论述关于链接的额外细节。

图4图解说明逻辑库400,逻辑库400可用于形成链路接口120并控制HMC 200中的DRAM 250(图1到3)。存储器链路120(其包含上行链路及下行链路)可由每一存储器链路120的链路接口控制器420控制。通过链路接口控制器420传递的包可通过纵横开关430传递。如果包的目的地是HMC 200上的存储库,那么纵横开关430可将所述包传递到存储器控制逻辑440。如果包的目的地是另一HMC 200,那么纵横开关430可将所述包传递到适当链路接口控制器420以发送到适当HMC 200上。存储器控制逻辑440及用于各种存储库的存储库逻辑450可组合以选择适当存储库及针对选定存储库的适当定时。

图5图解说明可存在于根据本发明的一些实施例的数据处置装置500中的一些元件。根据本发明的实施例,系统及方法可使用HMC 200装置及针对HMC 200定义的存储器互连协议作为多个SoC 500之间的更全局系统互连的基础。因此,使用HMC 200装置及链路规范的基础系统互连能力合并来自主机系统(例如,SoC 500)的传出链路的数目、密度及异质性。

使用本发明构造的装置及系统可定义是对常规多处理器系统架构的改善的系统特性。这些特性中的一些特性包含高带宽存储器及系统互连链路、本地连接存储器与其它系统级存储器之间的平衡带宽及等待时间特性、通过减少及/或消除本地存储器请求与系统级请求之间的协议翻译的等待时间最小化,以及通过将高效HMC 200包协议用于本地存储器请求及系统级请求两者的等待时间最小化。特性还可包含使用相同协议经由HMC 200系统互连维持本地存储器与系统级存储器之间的原子性,对广泛范围的系统级存储器模型(例如,弱排序对强排序)的支持,及对高速缓冲存储器一致性的支持。

系统配置可通常被视为包含原位路由(如图6及7中所展示)及专用路由(如图8及9中所展示)。两个可能实施方案表示两个不同可扩缩性模型。原位路由模型为多插座工作站、数据中心服务器及其它基本基础结构装置提供高效系统级可扩缩性。专用路由模型提供超过小数目个插座的高效可扩缩性。此可扩缩性类似于构建大型企业服务器或主机平台。两种方法均提供构造以SoC为中心的系统架构且支持本质上为不均匀存储器存取(NUMA)的架构的能力。

在两种模型中,SoC 500呈现到HMC基础结构的HMC“源”链路。源链路还可在本文中称为第二包化存储器链路。利用此第二链路,SoC 500继承发送及接收系统链路业务的能力。此额外链路实现对从SoC到SoC的直接消息传递的支持。此功能性的一个实例是高速缓冲存储器一致性业务。举例来说,系统厂商可将高速缓冲存储器一致性请求(例如,一致性查找或无效宣告)编码到HMC原子请求包中。还可将SoC 500到SoC500消息传递包编码于HMC基础规范中用于读取请求、写入请求、张贴读取请求及张贴写入请求。系统厂商将协议编码于HMC包规范中的此能力允许所述系统厂商保留其相应智能财产且提供高带宽、低等待时间系统互连支持。

返回到图5,经配置用于HMC接口的常规SoC 500可为与一或多个处理器540及通过第一混合存储器立方体接口122耦合到包化存储器链路120(例如,HMC链路120)的数据请求者端点510一样简单。数据请求者端点510还可在本文中称为主机请求者端点510。常规地,主机仅需要在HMC 200接口上做出包请求以执行例如以下各项的功能:存储器读取、存储器写入及配置定义包。

然而,本发明的实施例包含通过第二混合存储器立方体接口622耦合到第二包化存储器链路620的数据处置端点520。物理上且逻辑上,第二包化存储器链路620类似于HMC 200装置上的存储器链路。换句话说,数据处置端点520表现类似于存储器端点。因此,数据处置端点520解释看起来像存储器读取、存储器写入或其它配置类型包的包请求,消费关于存储器写入的数据并产生用于存储器读取的数据的响应包。利用数据处置端点520,可创建系统,其中第二包化存储器链路620可用作到其它SoC 500及与其它SoC 500相关联的存储器域的系统互连。因此,虽然第二包化存储器链路620在物理上及逻辑上与混合存储器立方体链路120相同,但从架构角度来说,其可被视为用于传达包化系统请求的链路,从而创建灵活且高效系统互连。

此外,由于数据请求者端点510及数据处置端点520类似,因此可重复使用两个端点的逻辑设计的大部分,而非如在常规多处理器系统中创建具有单独协议的两个单独总线。

如先前陈述,SoC 500可被视为处理装置,其中处理器540可实施为通用处理器、DSP、专用处理器、图形处理或其组合。然而,SoC 500还可主要实施为通信装置。在此一实施方案中,一或多个通信元件550可经包含以将包从数据处置端点520翻译到另一总线560。举例来说,此另一总线560可为通往I/O集线器、另一通信装置、存储装置、网络或其组合的总线。当然,SoC 500可包含处理器540及通信元件550两者。因此,处理器540及通信元件550可类属地称为数据处置元件(540、550)。

由于数据处置端点520表现类似于存储器端点,因此由数据处置端点520处置的包具有与其相关联的地址且数据可以大突发方式传达。在一些实施例中,处理器540及/或通信元件550可具有与其相关联的存储器(具有其自身的地址),使得数据可在数据处置端点520与适当数据处置元件(540、550)之间直接传达。

其它实施例可包含用于定义到数据处置装置500的链路请求的地址空间的数据缓冲器530。利用数据缓冲器530,可定义单独专用地址空间且数据缓冲器530可在将数据传递于适当数据处置元件(540、550)上之前收集所述数据。数据缓冲器530可经配置为直接存储器存取(DMA)缓冲器或准许SoC 500彼此不同步发送业务的(先进先出)FIFO缓冲器。数据缓冲器530的相应大小可由相关联HMC链路620的数目及频率确定。

另外,SoC 500可经配置使得数据请求者端点510可以类似于数据处置端点520的方式处置到数据请求者端点510的请求。类似地,数据处置端点520可经配置以按类似于数据请求者端点510的方式从数据处置元件(540、550)发起请求。

因此,在数据处置装置中,数据请求者端点经配置以用于在第一包化存储器链路上发起第一包请求。数据处置端点经配置以用于在第二包化存储器链路上解释到数据处置端点的第二包请求,并响应于第二包请求而跨越第二包化存储器链路双向地传达数据。另外,第一包化存储器链路及第二包化存储器链路是单独的但包含相同类型的链路协议及相同类型的物理接口。

在数据处置装置的另一实施例中,第一混合存储器立方体链路以可操作方式耦合到数据处置装置上的主机请求者端点,所述主机请求者端点用于向包含一或多个混合存储器立方体装置的本地存储器域发起包化存储器请求。第二混合存储器立方体链路以可操作方式耦合到数据处置装置上的数据处置端点,所述数据处置端点用于解释来自以可操作方式耦合到一或多个混合存储器立方体装置中的至少一者的额外数据处置装置的包化系统请求。

在另一实施例中,利用数据处置装置传达数据的方法包含:使用数据处置装置来在第一混合存储器立方体链路上向与数据处置装置相关联的第一存储器域中的混合存储器立方体装置发起包化存储器请求。所述方法还包含:使用数据处置装置来在第二混合存储器立方体链路上接收包化系统请求,其中所述包化系统请求是从第二数据处置装置(图5中未展示)发起。所述方法还包含:对包化系统请求做出响应。

图6图解说明使用各种数据处置装置500与存储器装置200之间的原位路由且展示存储器装置130之间的稀疏路由的系统600的图式。如较早陈述,多个HMC装置200可链接在一起以增加可用于SoC 500的总存储器容量。在常规单处理器/HMC系统中,通过请求包标头中的3位芯片ID字段中的值识别每一HMC 200。3位芯片ID字段还可在本文中称为CUB字段或装置ID。因此,针对处理器可支持高达八个HMC装置200的网络。

支持用于HMC 200的互连的各种拓扑且到不同HMC 200的路由可为复杂且包含多个路径。因此,主机处理器通常控制路由拓扑且将路由配置信息加载到每一HMC 200中以确定不用于那一HMC 200的包应如何路由到HMC 200上的其它链路。此路由信息使得每一HMC 200能够使用CUB字段来将请求包路由到恰当目的地。因此,当HMC 200处理目的地并非HMC 200自身的包时,HMC 200通过HMC 200上的另一链路链接并传递包以发送到另一HMC 200。

原位路由配置为小数目个系统装置提供系统互连路由能力。更特地来说,系统装置的总数目是由存在于系统架构中的HMC装置200的总数目门控。此限制依循基础HMC规范的概念:CUB字段限于三个位的地址字段空间,所述地址字段空间映射到八个总HMC端点。在原位路由的情形中,CUB字段用于标示一或多个SoC端点。因此,出于在SoC 500与HMC 200之间、HMC 200与HMC 200之间或SoC 500与SoC 500之间路由请求业务的目的,每一SoC 500及全部HMC装置200接收唯一CUB识别符。

在图6中,用对应装置ID 0到ID 5定义HMC装置(200-0到200-5)中的每一者。另外,用装置ID 6定义插座0中的第一SoC 500-0且用装置ID 7定义插座1中的第二SoC 500-1。

原位路由配置可被视为具有三个不同类型的链路。第一链路类型可识别为SoC源链路620-0及620-1。这些SoC源链路(620-0、620-1)还可称为第二包化存储器链路620及第二混合存储器立方体链路620,如上文参考图5所描述。

这些SoC源链路(620-0、620-1)用于在SoC(500-0、500-1)上在其数据处置端点520处接收请求业务。SoC源链路(620-0、620-1)准许SoC(500-0、500-1)直接通信而无需主要存储器空间中的中间双重缓冲。以此方式,SoC(500-0、500-1)将显现为HMC源(通过数据处置端点520)及HMC请求者(通过数据请求者端点510)两者。

第二链路类型及第三链路类型映射到传统HMC配置。第二链路类型(即,域间存储器链路650-0)提供跨越HMC链路将业务路由到例如第一存储器域630及第二存储器域640的相邻存储器域的能力。换句话说,域间存储器链路650-0用作存储器域之间的桥接器。取决于目标系统成本模型,系统结构设计师可挑选使用这些系统链路来桥接相应NUMA域之间的间隙的若干链路。图6图解说明稀疏路由,因为仅存在一个域间存储器链路650-0。

图7图解说明在各种数据处置装置500与存储器装置200之间使用原位路由且展示存储器装置之间的密集路由的系统700的图式。在图7中,系统被密集路由,因为存在三个域间存储器链路650-0、650-1及650-2。密集连接系统架构提供将存储器配置成存储器域拓扑以形成多个路由路径以便减少链路热点的能力。除了域间存储器链路650-0、650-1及650-2外,图7类似于图6且元件不需要再次描述。

第三链路类型是分别针对本地存储器域中的每一者路由存储器业务的本地请求链路120。这些链路经标示为120-0到120-5。这些链路在存储器域内提供传统HMC 200存储器业务。

图6及7分别图解说明经完全填充的系统600、700。换句话说,使用HMC规范的当前版本的每一装置ID。可使用在装置ID上扩展的其它系统。举例来说,将单个位添加到装置ID可将装置的数目从8扩展至16且可包含SoC 500与HMC 200的任何组合。

另外,可定义经稀疏填充的系统。举例来说,虽然未图解说明,但系统可包含插座0 SoC 500-0、插座1 SoC 500-1及单个HMC 200(例如,HMC 200-0)。在此系统中,SoC 500-1上的SoC源链路620-1可直接连接到HMC 200-0上的链路且SoC 500-1上的本地存储器链路120-1可直接连接到HMC 200-0上的另一链路。因此,包仍可在SoC 500-0与SoC 500-1之间传递且两个SoC 500-0及500-1可共享对HMC 200-0中的存储器的存取。

因此,数据处理系统包含两个或两个以上数据处置装置及一混合存储器立方体装置。每一数据处置装置包含经配置以用于在第一包化存储器链路上发起第一包请求的主机请求者端点。每一数据处置装置还包含数据处置端点,所述数据处置端点经配置以用于在第二包化存储器链路上接收到所述数据处置端点的第二包请求并对其做出响应。混合存储器立方体装置与对应于两个或两个以上数据处置装置中的一者的第一存储器域相关联。混合存储器立方体装置经配置以在两个或两个以上数据处置装置中的两者之间链接并传递第二包请求。

在另一实施例中,在系统中传达数据的方法包含:从第一数据处置装置上的主机请求者端点发起存储器请求。所述方法还包含:在耦合到所述第一数据处置装置的第一包化存储器链路上将所述存储器请求发送到与所述第一数据处置装置相关联的第一存储器域中的第一混合存储器立方体。所述方法还包含:在第一混合存储器立方体处接收系统请求,其中所述系统请求是来自第二数据处置装置。所述方法还包含:经由耦合到第一数据处置装置的第二包化存储器链路将系统请求从第一混合存储器立方体传递到第一数据处置装置上的数据处置端点。在具有第二混合存储器立方体的一些实施例中,所述方法可进一步包含:从第二数据处置装置上的主机请求者端点发起系统请求且在第一混合存储器立方体处接收到系统请求之前,在第二混合存储器立方体处接收系统请求;及将系统请求从第二混合存储器立方体传递到第一混合存储器立方体。

图8图解说明在各种数据处置装置500与存储器装置200之间使用专用路由的系统800的图式。专用路由配置准许构造较大、更可扩缩系统架构。如同原位路由配置,专用路由包含可不仅用作HMC请求者(通过数据请求者端点510)而且表现为目标端点(通过数据处置端点520)的SoC 500。然而,在专用路由配置中,从任何给定SoC 500的角度来说,HMC请求业务被分离成两个域。每一SoC 500含有本地域及系统域两者。每一域具有支持高达八个端点(基于前述CUB字段限制)的能力。以此方式,每一SoC 500具有支持在其本地域中本地连接的高达八个HMC装置的能力。本地域中的端点通常是HMC存储器装置200。图8将本地域链路图解说明为120-0到120-3。因此,在图8中,仅存在与每一SoC(500-0到500-3)相关联的一个HMC(200-0到200-3)。然而,专用路由系统可经配置在每一SoC(500-0到500-3)的本地域中具有高达8个HMC装置200。

系统域提供用于系统级业务路由的功能性。每一SoC(500-0到500-3)提供在系统域内路由系统请求业务的能力。系统域中的端点可为SoC 500、用作集线器的HMC装置200及用作存储器存储装置的HMC装置200。系统的可扩缩性是由HMC路由器装置对SoC端点的比率确定。

作为一个实例,图8图解说明具有两个HMC集线器(810-0及810-1)的专用路由系统。HMC集线器(810-0及810-1)包含耦合到每一SoC(500-0到500-3)的第二包化存储器链路(620-0到620-3)的链路。另外,图8图解说明用于将HMC集线器(810-0及810-1)耦合在一起且耦合到邻近集线器装置的集线器间链路(820-0到820-2)。

图8图解说明系统域中未经完全填充的系统。HMC集线器(810-0及810-1)分别使用装置ID 0及ID 1且SoC(500-0到500-3)分别使用装置ID 2到ID 5。因此,作为一个实例,另一SoC 500可耦合到集线器间链路820-0且被赋予装置ID 6,且另一SoC 500可耦合到集线器间链路820-1且被赋予装置ID 7。作为另一实例,另一HMC集线器810可耦合到集线器间链路820-1且被赋予装置ID 6,且另一SoC 500可耦合到所述另一HMC集线器810且被赋予装置ID 7。

专用路由架构中的系统互连可以其它方式扩展。举例来说,如同原位路由,可将额外位添加到装置ID字段。举例来说,将单个位添加到装置ID可将装置的数目从8扩展到16且可包含SoC 500与HMC集线器810的任何组合。作为另一实例,可添加类似于第一包化链路120及第二包化链路620的额外包化链路总线以开发另一完全新的域。

此外,仅包含HMC 200存储器装置的每一SoC 500的本地存储器域可为更复杂的。本地域可经配置有原位路由架构,如上文参考图5到7所论述。

因此,在专用路由配置中,数据处理系统包含两个或两个以上数据处置装置。每一数据处置装置包含:主机请求者端点,其经配置以用于在第一包化存储器链路上发起本地存储器包请求;及数据处置端点,其经配置以用于在第二包化存储器链路上接收到数据处置端点的第二包请求并对其做出响应。数据处理系统还包含一或多个混合存储器立方体集线器。混合存储器立方体集线器中的每一者包含以可操作方式耦合到两个或两个以上数据处置装置中的一者的数据处置端点的第一包化存储器链路及以可操作方式耦合到两个或两个以上数据处置装置中的另一者的数据处置端点的第二包化存储器链路。

在专用路由配置的另一实施例中,在系统中传达数据的方法包含:从第一数据处置装置上的主机请求者端点发起存储器请求及在耦合到所述第一数据处置装置的第一包化存储器链路上将所述存储器请求发送到与所述第一数据处置装置相关联的第一存储器域中的第一混合存储器立方体。所述方法还包含:从第一数据处置装置上的数据处置端点发起系统请求及在耦合到所述第一数据处置装置的第二包化存储器链路上将所述系统请求发送到混合存储器立方体集线器。所述方法还包含:将系统请求中的一些系统请求从混合存储器立方体集线器810-0传递到第二数据处置装置。

图9图解说明可用于具有图8的专用路由的系统中的各种实例性拓扑。专用路由方法还提供构造具有不同拓扑优点的复杂得多的系统架构的能力。作为非限制性实例,系统域的拓扑可使用环形910、经修改环形920、网状930及纵横状(未展示)构造。可基于所需带宽及对照目标系统成本加权的等待时间特性而做出最终拓扑确定。

本发明的实施例可进一步如下文所陈述表征而无限制性。

实施例1.一种数据处置装置,其包括:

数据请求者端点,其经配置以用于在第一包化存储器链路上发起第一包请求;及

数据处置端点,其经配置以用于:

在第二包化存储器链路上解释到所述数据处置端点的第二包请求;及

响应于所述第二包请求而跨越所述第二包化存储器链路双向地传达数据;

其中所述第一包化存储器链路与所述第二包化存储器链路是分离的,但包含相同类型的链路协议及相同类型的物理接口。

实施例2.根据实施例1所述的数据处置装置,其进一步包括以可操作方式耦合到所述数据请求者端点及所述数据处置端点中的一或多者的一或多个数据处置元件,所述一或多个数据处置元件中的每一者包括一或多个处理器及一或多个通信元件。

实施例3.根据实施例2所述的数据处置装置,其进一步包括以可操作方式耦合于所述数据请求者端点与所述一或多个数据处置元件之间的数据缓冲器,所述数据缓冲器用于定义用于所述数据处置端点的地址空间。

实施例4.根据实施例1到3中任一实施例所述的数据处置装置,其中所述第一包化存储器链路及所述第二包化存储器链路两者均为混合存储器立方体链路。

实施例5.根据实施例1到3中任一实施例所述的数据处置装置,其中所述数据处置端点进一步经配置以用于在所述第二包化存储器链路上发起第三包请求。

实施例6.根据实施例1到3中任一实施例所述的数据处置装置,其中所述数据请求者端点进一步经配置以用于:

在所述第一包化存储器链路上解释到所述数据请求者端点的第三包请求;及

响应于所述第三包请求而跨越所述第一包化存储器链路双向地传达数据。

实施例7.一种数据处置装置,其包括:

第一混合存储器立方体接口,其以可操作方式耦合到所述数据处置装置上的主机请求者端点,所述主机请求者端点用于向包括一或多个混合存储器立方体装置的本地存储器域发起包化存储器请求;及

第二混合存储器立方体接口,其以可操作方式耦合到所述数据处置装置上的数据处置端点,所述数据处置端点用于解释来自以可操作方式耦合到所述一或多个混合存储器立方体装置中的至少一者的额外数据处置装置的包化系统请求。

实施例8.根据实施例7所述的数据处置装置,其中所述数据处置端点进一步用于响应于来自所述额外数据处置装置的所述包化系统请求而传达数据。

实施例9.根据实施例7所述的数据处置装置,其中所述主机请求者端点及所述数据处置端点中的至少一者进一步用于向所述额外数据处置装置发起额外包化系统请求。

实施例10.根据实施例7所述的数据处置装置,其中所述主机请求者端点及所述数据处置端点中的至少一者进一步用于向与所述额外数据处置装置相关的远程存储器域中的一或多个额外混合存储器立方体装置发起额外包化存储器请求。

实施例11.根据实施例7所述的数据处置装置,其中所述主机请求者进一步经配置以用于:

在所述第一混合存储器立方体接口上解释到所述主机请求者端点的第三包请求;及

响应于所述第三包请求而跨越所述第一混合存储器立方体接口双向地传达数据。

实施例12.根据实施例7所述的数据处置装置,其进一步包括以可操作方式耦合到所述主机请求者端点及所述数据处置端点中的一或多者的数据缓冲器,所述数据缓冲器用于定义用于到所述数据处置装置的链路请求的地址空间。

实施例13.一种数据处理系统,其包括:

两个或两个以上数据处置装置,每一数据处置装置包括:

主机请求者端点,其经配置以用于在第一包化存储器链路上发起第一包请求;及

数据处置端点,其经配置以用于在第二包化存储器链路上接收到所述数据处置端点的第二包请求并对其做出响应;及

第一混合存储器立方体装置,其与所述两个或两个以上数据处置装置中的对应一者的第一存储器域相关联,且其中所述混合存储器立方体装置经配置以在所述两个或两个以上数据处置装置中的两者之间链接并传递所述第二包请求。

实施例14.根据实施例13所述的数据处理系统,其进一步包括与所述两个或两个以上数据处置装置中的对应一者的第二存储器域相关联的第二混合存储器立方体装置,其中所述第二混合存储器立方体装置经配置以在和所述第二存储器域相关联的所述数据处置装置与所述第一混合存储器立方体装置之间链接并传递所述第二包请求。

实施例15.根据实施例14所述的数据处理系统,其中来自所述两个或两个以上数据处置装置中的一者的所述主机请求者端点的所述所发起第一包请求被链接并传递到所述两个或两个以上数据处置装置中的另一者的所述数据处置端点。

实施例16.根据实施例14及实施例15中任一实施例所述的数据处理系统,其中所述第一存储器域及所述第二存储器域中的每一者包含至少一个额外混合存储器立方体装置。

实施例17.根据实施例16所述的数据处理系统,其进一步包括介于所述第一存储器域中的额外混合存储器立方体与所述第二存储器域中的额外混合存储器立方体之间的至少一个域间链路。

实施例18.根据实施例14到17中任一实施例所述的数据处理系统,其中所述两个或两个以上数据处置装置中的每一者进一步包括以可操作方式耦合到所述主机请求者端点及所述数据处置端点中的一或多者的数据缓冲器,所述数据缓冲器用于定义用于到所述数据处置装置的链路请求的地址空间。

实施例19.一种数据处理系统,其包括:

两个或两个以上数据处置装置,每一数据处置装置包括:

主机请求者端点,其经配置以用于在第一包化存储器链路上发起本地存储器包请求;及

数据处置端点,其经配置以用于在第二包化存储器链路上接收到所述数据处置端点的第二包请求并对其做出响应;及

一或多个混合存储器立方体集线器,其包括:

第一包化存储器链路,其以可操作方式耦合到所述两个或两个以上数据处置装置中的一者的所述数据处置端点;及

第二包化存储器链路,其以可操作方式耦合到所述两个或两个以上数据处置装置中的另一者的所述数据处置端点。

实施例20.根据实施例19所述的数据处理系统,其中所述两个或两个以上数据处置装置中的每一者的所述数据处置端点进一步经配置以用于在所述第二包化存储器链路上向所述两个或两个以上数据处置装置中的另一者发起第二包请求。

实施例21.根据实施例19所述的数据处理系统,其进一步包括两个或两个以上混合存储器立方体装置,每一混合存储器立方体装置以可操作方式耦合到所述两个或两个以上数据处置装置中的对应一者的所述主机请求者端点。

实施例22.根据实施例19所述的数据处理系统,其中所述一或多个混合存储器立方体集线器中的至少一者包含以可操作方式耦合到所述一或多个混合存储器立方体集线器中的另一者的至少一个额外包化存储器链路。

实施例23.根据实施例19所述的数据处理系统,其中所述两个或两个以上数据处置装置中的每一者进一步包括以可操作方式耦合到所述主机请求者端点及所述数据处置端点中的一或多者的数据缓冲器,所述数据缓冲器用于定义用于到所述数据处置装置的链路请求的地址空间。

实施例24.根据实施例19所述的数据处理系统,其中所述一或多个混合存储器立方体集线器包括布置成环形拓扑的至少两个混合存储器立方体集线器。

实施例25.根据实施例19所述的数据处理系统,其中所述一或多个混合存储器立方体集线器包括布置成混合环形拓扑的至少两个混合存储器立方体集线器。

实施例26.根据实施例19到25中的任一实施例所述的数据处理系统,其中所述一或多个混合存储器立方体集线器包括布置成网状拓扑的至少两个混合存储器立方体集线器。

实施例27.一种利用数据处置装置传达数据的方法,其包括:

在第一数据处置装置上:

在第一混合存储器立方体链路上向与所述第一数据处置装置相关联的第一存储器域中的混合存储器立方体装置发起包化存储器请求;

在第二混合存储器立方体链路上接收包化系统请求,其中所述包化系统请求是从第二数据处置装置发起;及

对所述包化系统请求做出响应。

实施例28.根据实施例27所述的方法,其进一步包括:在所述第一数据处置装置上缓冲与所述包化系统请求一起被接收的数据以定义用于到所述第一数据处置装置的所述包化系统请求的地址空间。

实施例29.根据实施例27及实施例28中任一实施例所述的方法,其进一步包括:缓冲待在对所述包化系统请求做出响应时发送的读取数据以在所述第一数据处置装置上定义地址空间。

实施例30.根据实施例27到29中任一实施例所述的方法,其进一步包括:在所述第一数据处置装置的所述第一混合存储器立方体链路上向所述第二数据处置装置发起包化系统请求。

实施例31.根据实施例27到29中任一实施例所述的方法,其进一步包括:在所述第一数据处置装置的所述第二混合存储器立方体链路上向所述第二数据处置装置发起包化系统请求。

实施例32.根据实施例27到29中任一实施例所述的方法,其进一步包括:在所述第一数据处置装置的所述第一混合存储器立方体链路上向与所述第二数据处置装置相关联的第二存储器域中的混合存储器立方体装置发起包化存储器请求。

实施例33.根据实施例27到29中任一实施例所述的方法,其进一步包括:在所述第一数据处置装置的所述第一混合存储器立方体链路上向与所述第二数据处置装置相关联的第二存储器域中的混合存储器立方体装置发起包化存储器请求。

实施例34.一种在系统中传达数据的方法,其包括:

从第一数据处置装置上的主机请求者端点发起存储器请求;

在耦合到所述第一数据处置装置的第一包化存储器链路上将所述存储器请求发送到与所述第一数据处置装置相关联的第一存储器域中的第一混合存储器立方体;

在所述第一混合存储器立方体处接收系统请求,所述系统请求来自第二数据处置装置;

经由耦合到第一数据处置装置的第二包化存储器链路将所述系统请求从所述第一混合存储器立方体传递到所述第一数据处置装置上的数据处置端点。

实施例35.根据实施例34所述的方法,其进一步包括:

从所述第二数据处置装置上的主机请求者端点发起所述系统请求;及

在所述第一混合存储器立方体处接收所述系统请求之前:

在第二混合存储器立方体处接收所述系统请求;及

将所述系统请求从所述第二混合存储器立方体传递到所述第一混合存储器立方体。

实施例36.根据实施例34及实施例35中任一实施例所述的方法,其进一步包括:将所述存储器请求中的一些存储器请求从所述第一存储器域中的所述第一混合存储器立方体传递到所述第二数据处置装置。

实施例37.根据实施例34到36中任一实施例所述的方法,其进一步包括:将所述存储器请求中的一些存储器请求从所述第一存储器域中的所述第一混合存储器立方体传递到所述第一存储器域中的另一混合存储器立方体。

实施例38.根据实施例34到37中任一实施例所述的方法,其进一步包括:将所述存储器请求中的一些存储器请求从所述第一存储器域中的所述第一混合存储器立方体传递到与所述第二数据处置装置相关联的第二存储器域中的第二混合存储器立方体。

实施例39.根据实施例38所述的方法,其进一步包括:将所述存储器请求中的一些存储器请求从所述第二混合存储器立方体传递到所述第二数据处置装置。

实施例40.根据实施例38所述的方法,其进一步包括:将所述存储器请求中的一些存储器请求从所述第二混合存储器立方体传递到所述第二存储器域中的第三混合存储器立方体。

实施例41.一种在系统中传达数据的方法,其包括:

从第一数据处置装置上的主机请求者端点发起存储器请求;

在耦合到所述第一数据处置装置的第一包化存储器链路上将所述存储器请求发送到与所述第一数据处置装置相关联的第一存储器域中的第一混合存储器立方体;

从所述第一数据处置装置上的数据处置端点发起系统请求;

在耦合到所述第一数据处置装置的第二包化存储器链路上将所述系统请求发送到混合存储器立方体集线器;及

将所述系统请求中的一些系统请求从所述混合存储器立方体集线器传递到第二数据处置装置。

实施例42.根据实施例41所述的方法,其进一步包括:

将第二系统请求从所述第二数据处置装置传递到所述混合存储器立方体集线器;及

在所述第一数据处置装置上的所述数据处置端点处接收所述第二系统请求。

实施例43.根据实施例41及实施例42中任一实施例所述的方法,其进一步包括:将所述系统请求中的一些系统请求从所述混合存储器立方体集线器传递到一或多个额外存储器立方体集线器。

实施例44.根据实施例43所述的方法,其进一步包括:将所述系统请求中的一些系统请求从所述一或多个额外存储器立方体集线器传递到一或多个额外数据处置装置。

实施例45.根据实施例43所述的方法,其中在所述混合存储器立方体集线器与所述一或多个额外存储器立方体集线器之间传递所述系统请求中的一些系统请求包括:以选自由以下各项组成的群组的互连拓扑传递所述系统请求:环形拓扑、经修改环形拓扑及网状拓扑。

实施例46.根据实施例43所述的方法,其进一步包括:将所述存储器请求中的一些存储器请求从所述第一存储器域中的所述第一混合存储器立方体传递到所述第一存储器域中的另一混合存储器立方体。

上文所描述且附图中所图解说明的本发明的实施例不限制本发明的范围,因为这些实施例仅是本发明的实施例的实例。本发明由所附权利要求书及其合法等效内容界定。任何等效实施例均在本发明的范围内。实际上,除本文中所展示及描述的那些内容外,所属领域的技术人员将从本描述明了本发明的各种修改(例如所描述的要素的替代性有用组合)。此类修改及实施例也归属于所附权利要求书及其合法等效内容的范围内。

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