CN105051707A - 外部存储器控制器 - Google Patents
外部存储器控制器 Download PDFInfo
- Publication number
- CN105051707A CN105051707A CN201380075350.8A CN201380075350A CN105051707A CN 105051707 A CN105051707 A CN 105051707A CN 201380075350 A CN201380075350 A CN 201380075350A CN 105051707 A CN105051707 A CN 105051707A
- Authority
- CN
- China
- Prior art keywords
- memory controller
- processor
- main memory
- request
- node
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
本文公开了一种计算系统。计算系统包括计算节点和经由系统构造耦合到计算节点的远程存储器节点。计算节点包括多个处理器和主存储器控制器。主存储器控制器在多个处理器外部。主存储器控制器将对应于来自多个处理器的请求的请求跨系统构造路由至远程存储器节点并且返回响应。
Description
背景技术
CPU或微处理器芯片是包括单个衬底上的一个处理器或多个处理器的集成电路。衬底是诸如硅之类的半导体材料。当前趋势已经导致计算设备的更多系统功能(诸如存储器控制器)包括在CPU衬底上或具有(多个)处理器的CPU封装内。
附图说明
在以下详细描述中并且参照附图来描述某些示例,其中:
图1是计算系统的示例的框图;
图2是计算系统中的通信通路的示例的图示;以及
图3是图示了访问存储器的方法的示例的过程流程图。
图4是图示了访问存储器的方法的示例的过程流程图。
具体实施方式
本文所描述的技术一般涉及存储器控制器。更具体地,本文所描述的技术涉及外部存储器控制器。“外部”是指与相关联的处理器分离(诸如物理分离或者作为唯一的功能块)、但是可通信耦合到处理器的存储器控制器。外部存储器控制器可以与处理器物理分离,或者外部存储器控制器可以是唯一的功能块。例如,外部存储器控制器可以包括在处理器管芯上(诸如在片上系统(SOC)设计中)。在示例中,外部存储器控制器是唯一的功能块,其可以与(多个)处理器共享硅管芯。随着CPU厂商将更多的系统功能放置到CPU封装中,他们创建了关于CPU封装的限制。特别地,当存储器控制器被添加到CPU封装时,在存储器容量与核的比上设置了限制。当I/O桥被添加到CPU封装时,在每个核的I/O量上设置了限制。许多应用将不以CPU封装直接支持的核、存储器和I/O比最优地执行。另外,当CPU封装上执行的工作负载改变时,最优比可能随时间改变。
在通过包括存储器控制器和I/O桥而强加这些限制的同时,应用使地址空间、存储器和I/O要求扩张。响应于这些扩张的要求,在核和互连构造中实现大物理地址范围以缓解编程者的负担并且使得具有扩张的要求的应用能够缩放到大吞吐量并且能够处置大数据集。
对大尺度数据问题的现代解决方案通常使用比单个、高度集成的CPU封装所能够支持的更多的存储器、更多的存储装置和可能地更多的总吞吐量。例如,虽然具有十五到二十个核的单个封装目前可能用于对存储装置或存储器的拍字节寻址,但是CPU封装自身不能容纳这样的容量。以每个核的较大量的存储器或I/O最佳地执行的应用面对从其选择的非最优配置,并且通常被缩放至多个封装以便具有足够的存储器和/或I/O来最优地操作,这留下利用不足的附加核。不幸的是,随着封装数的增长,核、存储器和I/O比之间的失配也增长。计算设备中的封装数将被设置成满足针对三种资源(存储器、存储装置或核)中的一个的最大请求的数目,并且其余两种资源的过剩容量代表浪费和低效。因此,大规模资源同样具有潜在地大量的浪费资源。
现代大规模处理问题通过使用超大共享存储器处理(SMP)系统或通过使用小处理系统的大集群来解决。SMP系统具有大逻辑处理器数,例如,高达数百个核或执行线程,其可以共享相应大的地址空间和共用存储器映射。SMP系统通过将多个CPU封装(诸如16、32或64个)一起连结在共用存储器相干连接构造上来实现。如本文所使用的,构造是可以包括计算机总线、链路、交换机等的互连通信系统。此外,管理涵盖共享资源的所有封装的大型相干和错误域产生另外的限制。
小处理系统的大集群具有主控几个到(在一些情况下)接近一百个核或执行线程的计算节点。计算节点一起与某种形式的I/O构造网络连结。处理系统的集群可以具有大文件系统并且传递作为文件的消息和数据。然而,本地存储器和存储装置容量的独立缩放的缺失以及节点到节点连接的有限带宽可以限制处理资源的集群的使用。
图1是诸如服务器集群之类的计算系统的示例的框图。计算系统100包括数个节点,诸如计算节点102和远程存储器节点104。远程存储器节点104可以经由高速缓存线访问来访问。计算系统100可以包括若干计算节点,诸如数十个或甚至上千个计算节点。
节点102和104通过总线106(诸如通过系统构造)可通信耦合到彼此。系统构造可以是任何类型的通信构造,诸如集群构造、PCIe、InfiniBand(无限带宽)或定制构造。系统构造可以是低等待时间、高带宽、高度可靠的构造。在示例中,系统构造可以是集群构造,诸如工业标准构造或适当构造。例如,系统构造可以是以太网构造、Infiniband构造、PCIexpress构造或任何其他合适的构造。系统构造可以包括多个交换机108,其充当彼此的冗余。
计算节点102包括中央处理单元(CPU)108以执行所存储的指令。CPU108可以是单核处理器、多核处理器或任何其他合适的处理器。在示例中,计算节点102包括单个CPU。在另一示例中,计算节点102包括多个CPU,诸如两个CPU、三个CPU或更多。在另一示例中,计算节点102包括至少一个CPU108。CPU封装可以包括附加的系统功能,诸如存储器控制器、存储器和I/O桥。在示例中,CPU108包括本地存储器和本地存储器控制器。
计算节点102还可以包括主存储器控制器110。在一个实施例中,主存储器控制器110在CPU108外部,而不是CPU108的内置组件。主存储器控制器110(诸如通过附接到商品处理器的相干交易(transaction)构造)附接到CPU108。商品处理器是在没有来自厂商的特别许可的情况下可用于购买的处理器。当计算节点102包括CPU封装时,主存储器控制器108在CPU封装外部并且不包括在CPU封装中。在另一示例中,主存储器控制器110可以集成到与CPU102相同的设备上。在另外的示例中,计算节点102可以具有多个主存储器控制器110,每一个存储器控制器110与一部分远程存储器对接。
计算设备100还包括远程存储器节点104。在示例中,计算设备100包括单个远程存储器节点104。在另一示例中,计算设备100包括多个远程存储器节点104。远程存储器节点104是存储装置的集合,诸如存储器设备的集合,以用于存储大量数据。远程存储器节点104可以包括存储器112。在示例中,存储器112包括远程存储器,或者不包括在计算节点102中的存储器。在另一示例中,远程存储器节点104被用作存储装置。在示例中,存储器112包括易失性动态随机存取存储器(DRAM)、非易失性相变随机存取存储器(PCRAM)、自旋转移矩磁阻随机存取存储器(STT-MRAM)、电阻式随机存取存储器(reRAM)、忆阻器、闪速存储器或其他类型的存储器设备。例如,主存储器110是固态、持久、密集、快速的存储器。快速存储器可以是具有类似于DRAM存储器的访问时间的存储器。
远程存储器节点104可以由单个计算节点102或多个计算节点102访问。在示例中,单个远程存储器节点104与每一个计算节点102相关联。在另一示例中,单个远程存储器节点104由多个计算节点102访问。在另外的示例中,远程存储器节点104包括诸如非易失性存储器之类的存储器池,其被划分成存储器地址空间的区或范围。向计算节点102分配存储器的每一个区,并且当所分配的计算节点102故障时,存储器的区可以分配给新的计算节点102或者由不同的计算节点102访问。
从存储器控制器114可以耦合到每一个存储器112。从存储器控制器114控制对存储器112的访问。从存储器控制器110可以跨系统构造106向从存储器控制器114或向多个从控制器114路由请求。在示例中,远程存储器节点104包括从从存储器控制器110接收请求并且向从存储器控制器114递送请求的缓冲器(未示出)。在另外的示例中,主存储器控制器110直接与存储器112通信。
图1的框图不意图指示计算系统100要包括图1中所示的所有组件。另外,计算系统100可以取决于具体实现的细节而包括图1中未示出的任何数目的附加组件。
图2是诸如关于图1描述的计算系统100之类的计算系统中的通信通路的示例的图示。处理器202耦合到主存储器控制器204。在示例中,处理器202包括在CPU封装或多个CPU封装中,(多个)CPU封装包括在诸如计算节点102之类的计算节点中。诸如本地存储器或本地存储器控制器之类的附加组件可以耦合到处理器202并且包括在(多个)CPU封装中。主存储器控制器204在处理器202和(多个)CPU封装外部。在示例中,主存储器控制器204耦合到处理器202的(多个)相干交易构造。
处理器202生成访问存储器的请求并且向主存储器控制器204发送请求。请求可以是读取/写入请求。在另一示例中,请求通过计算节点的(多个)CPU封装的IO接口生成。例如,请求可以是读取请求、写入请求、读取/写入请求或任何其他合适类型的请求。在另外的示例中,请求是在处理器202证实所请求的数据不在处理器的高速缓存中之后生成并且发送到主存储器控制器204的高速缓存未中请求。
主存储器控制器204在处理器202外部并且耦合到处理器202。主存储器控制器204从处理器202接收访问存储器的请求。主存储器控制器204与处理器202通信,就像主存储器控制器在处理器202本地那样。在示例中,处理器202利用诸如Intel快速路径互连(QPI)协议之类的通信协议与主存储器控制器204通信。IntelQPI协议是点对点处理器通信路径。当从处理器202接收到请求时,主存储器控制器204处置处理器202之间的相干交换。包括处理器202的(多个)相干域延伸到主存储器控制器204。相干域是其中维持数据的相干性或同步性的计算系统的区域。例如,每一个处理器202可以包括包含处理器和处理器本地的存储器的相干域。然而,(多个)相干域不延伸超出主存储器控制器204。
当从处理器202接收到请求时,主存储器控制器204可以转换请求,诸如将请求转换成读取和/或写入。例如,主存储器控制器204可以以本地存储器控制器转换请求的相同方式转换请求。主存储器控制器204确定请求所指的存储器地址的位置。主存储器控制器204确定存储器地址的位置是本地的还是远程的。
在一个示例中,如果主存储器控制器204确定存储器地址是本地的,主存储器控制器204访问本地存储器(未示出)。主存储器控制器204然后向处理器202返回响应。响应可以是任何合适的响应。例如,响应可以是交易完成的通知。在另一示例中,响应可以是交易失败的通知。交易可能由于各种原因而失败,所述原因诸如是不可访问的存储器、存储器故障、不正确的存储器地址等。在另外的示例中,响应可以是所请求的数据(诸如从存储器检索的数据)的返回。在可替换示例中,主存储器控制器可以不与本地存储器对接。
如果主存储器控制器204确定存储器地址是远程的,主存储器控制器204将对应的唯一请求路由至远程存储器206。例如,主存储器控制器204跨例如如关于图1描述的系统构造路由请求。在示例中,远程存储器206可以是非易失性存储器。远程存储器206从处理器202和相关联的计算节点物理分离。
主存储器控制器204可以将新的定制请求路由至从存储器控制器208。在将请求路由至从存储器控制器208过程中,主存储器控制器204向从存储器控制器208发送非相干请求交易。这样,包括主存储器控制器204的计算节点与诸如远程存储器节点之类的包括从存储器控制器208的节点之间的通信经由支持硬件和软件策略和完整错误协议集的专有协议而发生。专有协议可以跨专有构造路由或者隧穿诸如PCIe构造或Infiniband构造之类的工业标准构造。
本地计算节点内的相干交易不延伸到本地节点外部。而是,主存储器控制器204充当用于远程存储器206的相干代理。这样,节点的相干域不受束缚并且系统构造不需要支持跨多个节点的高速缓存相干性。此外,在本地节点内维持对本地存储器和远程存储器二者的请求的相干性而不修改标准处理器组件。
主存储器控制器204(诸如利用通信构造)可通信耦合到从存储器控制器208。从存储器控制器208耦合到远程存储器206并且控制对远程存储器206的访问。响应于来自从主存储器控制器204的请求,从存储器控制器208试图访问远程存储器206。从存储器控制器208向主存储器控制器204返回响应。响应可以是对请求的任何合适的响应。例如,响应可以是交易完成的通知。在另外的示例中,响应可以是诸如从存储器检索的数据之类的所请求的数据的返回。
在另一示例中,响应可以是交易失败的通知。交易可能由于各种原因而失败,所述原因诸如是不可访问的存储器、存储器故障、不正确的存储器地址等。通过隔离本地计算节点内的相干交易,诸如包括远程存储器206的节点之类的远程节点的错误域从计算节点隔离。
主存储器控制器204从从存储器控制器208接收响应并且生成对处理器202的响应。响应可以是任何合适的响应。例如,响应可以是交易完成的通知。在另一示例中,响应可以是交易失败的通知。在另外的示例中,响应可以是诸如从存储器检索的数据之类的所请求的数据的返回。在示例中,响应不等同于被从存储器控制器208返回到主存储器控制器204的响应。例如,主存储器控制器204可以对来自从存储器控制器208的错误消息进行过滤以便将远程存储器中的错误从处理器202隔离。
远程节点上的存储器错误不直接递送至处理器202。当从从存储器控制器208接收到“具有错误的响应”消息时,主存储器控制器204创建对本地节点的适当响应,使得远程存储器错误不被误解释为本地相干域中的存储器故障。而是,主存储器控制器204可以以使其清楚了解错误在远程存储器中并且本地节点可以按需处置错误的这样的方式向本地计算节点发信号通知错误。远程存储器的部分的故障不影响系统构造或附接到系统构造的其他节点,而是作为包括远程存储器的节点本地的问题被处置。主存储器控制器204包括一个或多个记录寄存器以使得操作系统OS能够从远程错误恢复。远程存储器中的错误可以传统地利用操作系统潜在地停止使用故障存储器的应用或者利用操作系统停止(如果操作系统正在使用故障存储器的话)来处置。对远程节点的访问还可以是认识到远程存储器的系统拓扑的软件算法的结果并且软件可以被写入有所记忆的可能的远程错误,使得软件能够从这样的错误恢复。在另一实施例中,一些错误可以通过例如访问另一所连接的存储器从设备上的数据的镜像副本或者通过经由用于构造引起错误的可替换构造路径重试交易而在存储器主设备中可恢复。
通信通路200使得能够经由本地节点上的加载/存储语义来访问远程存储器、I/O和存储装置,并且还允许这样的请求返回到计算系统的硬件中的“远程消息”中。这样,通信通路200通过使得外部主存储器控制器204能够直接附接到本地节点的处理器或CPU封装来打破应用对存储器与核和I/O与核的比的CPU厂商选择的依赖性。这样,本地存储器、包括在本地节点中的存储器(例如包括在CPU封装中或者直接连接到处理器的存储器)、以及本地I/O可以扩充有对附加数据中心资源(诸如远程存储器和I/O存储装置)的访问,这缓解了CPU封装的资源限制。对远程存储器和I/O存储装置的访问可以映射到本地节点的地址空间中。诸如远程存储装置和I/O存储装置之类的共享存储装置可以用于在多个节点(诸如计算节点和远程存储器节点)之间传递消息或数据。
图3是图示了访问存储器的方法300的示例的过程流程图。在块302处,在外部存储器控制器中从处理器接收访问存储器的请求。请求可以是读取请求、写入请求、读取/写入请求或任何其他类型的请求。在示例中,处理器是单个处理器。在另一示例中,处理器是多个处理器中的一个。存储器控制器在处理器外部。在示例中,处理器包括在CPU封装中并且主存储器控制器在CPU封装外部而不是包括在CPU封装中。
在块304处,外部存储器控制器将对应于来自处理器的请求的唯一请求跨系统构造路由至远程存储器。在示例中,远程存储器包括非易失性存储器。在另外的示例中,远程存储器包括在远程存储器节点中。在另外的示例中,远程存储器节点包括多个远程存储器设备,每一个远程存储设备耦合到从存储器控制器。系统构造可以是任何类型的通信构造。系统构造可以是低等待时间、高带宽、高度可靠的构造。在示例中,系统构造可以是通信构造,诸如工业标准构造或适当构造,如关于图1讨论的那样。
在块306处,外部存储器控制器向处理器返回响应。响应可以是对请求的任何合适的响应。例如,响应可以是完成的通知、错误通知、所请求的数据、组合或响应、或任何其他合适的响应。
要理解的是,图3的过程流程图不意图指示方法300的步骤要以任何特定的顺序执行,或者方法300的所有步骤要包括在每一个情况中。另外,图3中未示出的任何数目的附加步骤可以取决于具体实现的细节而包括在方法300内。
图4是图示了访问存储器的方法400的示例的过程流程图。在块402处,在主存储器控制器中从处理器接收访问存储器地址的请求。请求可以是读取请求、写入请求、读取/写入请求或任何其他类型的请求。在示例中,处理器是单个处理器。在另一示例中,处理器是多个处理器中的一个。主存储器控制器在处理器外部。在示例中,处理器包括在CPU封装中并且主存储器控制器在CPU封装外部而不包括在CPU封装中。
在块404处,主存储器控制器确定存储器地址是否驻留在本地存储器中。本地存储器是耦合到处理器的存储器。如果处理器包括在CPU封装中,本地存储器还可以包括在CPU封装中。如果存储器地址确实驻留在本地存储器中,在块406处主存储器控制器访问本地存储器中的存储器地址。在块408处,主存储器控制器向处理器返回响应。响应可以是对请求的任何合适的响应。例如,响应可以是完成通知、错误通知、所请求的数据、组合或响应、或任何其他合适的响应。
如果存储器地址不驻留在本地存储器中,在块410处,主存储器控制器将对应于来自处理器的请求的唯一请求跨系统构造路由至耦合到远程存储器的从存储器控制器。在示例中,远程存储器包括非易失性存储器。在另外的示例中,远程存储器和从存储器控制器包括在远程存储器节点中。在另外的示例中,远程存储器节点包括多个远程存储器设备,每一个远程存储器设备耦合到从存储器控制器。系统构造可以是任何类型的通信构造。系统构造可以是低等待时间、高带宽、高度可靠的构造。在示例中,系统构造可以是通信构造,诸如工业标准构造或适当构造,如关于图1所讨论的那样。
在块412处,主存储器控制器从从存储器控制器接收响应。响应可以是对请求的任何合适的响应。例如,响应可以是完成的通知、错误通知、所请求的数据、组合或响应、或任何其他合适的响应。
在块414处,主存储器控制器向处理器返回响应。响应可以是对请求的任何合适的响应。例如,响应可以是完成的通知、错误通知、所请求的数据、组合或响应、或任何其他合适的响应。
主存储器控制器包括在包含处理器的相干域中。相干域不延伸到从控制器或远程存储器。请求是相干请求并且由包括主存储器控制器的相干域解析。主存储器控制器使用非相干交易与本地存储器和远程存储器通信。通过将相干域限制到主存储器控制器,处理器从远程存储器和与其相关联的任何故障隔离。主存储器控制器因此充当用于分配给处理器的远程存储器的相干代理,维持对本地和远程存储器单元的存储器索引的相干性而不修改标准处理器组件。例如,在主设备向处理器发送完成响应之前,远程存储器内容可以使用采用主和从控制器之间的附加读取和/或写入的镜像或RAID协议来存储。
要理解的是,图4的过程流程图不意图指示方法400的步骤要以任何特定的顺序执行,或者方法400的所有步骤要包括在每一个情况中。另外,图4中未示出的任何数目的附加步骤可以取决于具体实现的细节而包括在方法400内。
示例1
本文公开了一种计算系统。计算系统包括计算节点。计算节点包括多个处理器和主存储器控制器,主存储器控制器在多个处理器外部。计算设备还包括经由系统构造耦合到计算节点的远程存储器节点。主存储器控制器将对应于来自多个处理器的请求的请求跨系统构造路由至远程存储器节点并且返回响应。
响应可以包括完成通知、错误通知、所请求的数据或其组合中的一个。多个处理器可以经由主存储器控制器像本地存储器一样与远程存储器节点交互。当主存储器控制器从处理器接收到访问处理器本地的存储器的请求时,主存储器控制器在计算节点内满足请求。计算节点的相干域仅延伸主存储器控制器。主存储器控制器可以通过过滤从远程存储器节点接收的错误消息来将远程存储器节点错误与多个处理器隔离。远程存储器节点可以包括耦合到从存储器控制器的存储器,并且主存储器控制器可以将请求路由至从存储器控制器。
示例2
本文公开了一种方法。该方法包括,在外部存储器控制器中,从处理器接收访问存储器的请求。方法还包括将对应于来自处理器的请求的请求跨系统构造路由至远程存储器。方法还包括向处理器返回响应。
返回响应可以包括返回完成通知、错误通知、从远程存储器访问的数据或其组合中的一个。处理器可以驻留在CPU封装中,并且外部存储器控制器可以驻留在CPU封装外部。处理器可以通过经由外部存储器控制器进行通信来将远程存储器感知为本地存储器。方法还可以包括在跨系统构造路由请求之前访问本地存储的数据。方法还可以包括过滤错误消息以将远程存储器错误与处理器隔离。路由请求可以包括跨系统构造将请求路由至耦合到远程存储器的存储器控制器。方法可以包括将处理器的相干域仅延伸到外部存储器控制器。
示例3
本文公开了一种用于访问存储器的系统。系统包括从多个处理器接收请求的主存储器控制器,主存储器控制器在处理器外部。系统还包括经由系统构造可通信耦合到主存储器控制器的从存储器控制器。系统还包括耦合到从存储器控制器的远离处理器的存储器。主存储器控制器将对应于来自多个处理器的请求的请求路由至从存储器控制器以访问远程存储器。
多个处理器可以包括CPU封装,其中主存储器控制器在CPU封装外部。多个处理器可以通过经由主存储器控制器进行通信来将远离处理器的存储器感知为本地存储器。主存储器控制器可以过滤错误消息以将处理器从远程存储器错误隔离。来自处理器的请求可以包括相干交易,并且主存储器控制器与从存储器控制器经由非相干交易通信,使得处理器的相干域仅延伸到主存储器控制器。
目前所描述的技术示例可以经受各种修改和可替换形式,并且仅仅为了说明的目的而被示出。例如,本技术支持对数据结构高速缓存的读取和写入操作二者。另外,要理解的是,本技术不意图限于本文所公开的特定技术示例。事实上,随附权利要求的范围被认为包括对所公开的主题所关于的领域的技术人员显而易见的所有替换、修改和等同物。
Claims (15)
1.一种计算系统,包括:
计算节点,包括:
多个处理器;以及
主存储器控制器,主存储器控制器在多个处理器外部;以及
经由系统构造耦合到计算节点的远程存储器节点,
其中主存储器控制器将对应于来自多个处理器的请求的请求跨系统构造路由至远程存储器节点并且返回响应。
2.权利要求1所述的计算系统,其中多个处理器经由主存储器控制器像本地存储器一样与远程存储器节点交互。
3.权利要求1所述的计算系统,其中当主存储器控制器从处理器接收到访问处理器本地的存储器的请求时,主存储器控制器在计算节点内满足请求。
4.权利要求1所述的计算系统,其中主存储器控制器通过过滤从远程存储器节点接收的错误消息来将远程存储器节点错误与多个处理器隔离。
5.权利要求1所述的计算系统,其中远程存储器节点包括耦合到从存储器控制器的存储器,并且其中主存储器控制器将请求路由至从存储器控制器。
6.一种方法,包括:
在外部存储器控制器中,从处理器接收访问存储器的请求;
将对应于来自处理器的请求的请求跨系统构造路由至远程存储器;以及
向处理器返回响应。
7.权利要求6所述的方法,返回响应包括返回完成通知、错误通知、从远程存储器访问的数据或其组合中的一个。
8.权利要求6所述的方法,处理器驻留在CPU封装中,并且外部存储器控制器驻留在CPU封装外部。
9.权利要求6所述的方法,包括在跨系统构造路由请求之前访问本地存储的数据。
10.权利要求6所述的方法,还包括过滤错误消息以将远程存储器错误与处理器隔离。
11.权利要求6所述的方法,路由请求包括跨系统构造将请求路由至耦合到远程存储器的存储器控制器。
12.一种用于访问存储器的系统,包括:
从多个处理器接收请求的主存储器控制器,主存储器控制器在处理器外部;
经由系统构造可通信耦合到主存储器控制器的从存储器控制器;以及
耦合到从存储器控制器的远离处理器的存储器,
其中主存储器控制器将对应于来自多个处理器的请求的请求路由至从存储器控制器以访问远程存储器。
13.权利要求12所述的系统,其中多个处理器包括CPU封装,并且其中主存储器控制器在CPU封装外部。
14.权利要求12所述的系统,其中多个处理器通过经由主存储器控制器进行通信来将远离处理器的存储器感知为本地存储器。
15.权利要求12所述的系统,其中来自处理器的请求包括相干交易,并且其中主存储器控制器经由非相干交易与从存储器控制器通信,使得处理器的相干域仅延伸到主存储器控制器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/034796 WO2014163612A1 (en) | 2013-04-01 | 2013-04-01 | External memory controller |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105051707A true CN105051707A (zh) | 2015-11-11 |
Family
ID=51658743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380075350.8A Pending CN105051707A (zh) | 2013-04-01 | 2013-04-01 | 外部存储器控制器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10474380B2 (zh) |
EP (1) | EP2981900B1 (zh) |
CN (1) | CN105051707A (zh) |
TW (1) | TW201447602A (zh) |
WO (1) | WO2014163612A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105706068B (zh) * | 2013-04-30 | 2019-08-23 | 慧与发展有限责任合伙企业 | 路由存储器流量和i/o流量的存储器网络 |
WO2017023244A1 (en) * | 2015-07-31 | 2017-02-09 | Hewlett Packard Enterprise Development Lp | Fault tolerant computing |
WO2020092129A1 (en) | 2018-10-31 | 2020-05-07 | SnapRoute, Inc. | Disaggregated cloud-native network architecture |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080082622A1 (en) * | 2006-09-29 | 2008-04-03 | Broadcom Corporation | Communication in a cluster system |
CN101356515A (zh) * | 2006-01-12 | 2009-01-28 | 安泰科技有限公司 | 连接到多端口存储器的微处理器 |
US20090210636A1 (en) * | 2008-02-12 | 2009-08-20 | Vijay Karamcheti | Methods and systems for two-dimensional main memory |
CN101883446A (zh) * | 2010-06-28 | 2010-11-10 | 华为终端有限公司 | 一种无线上网设备、sd控制芯片及数据通信方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5687393A (en) | 1995-06-07 | 1997-11-11 | International Business Machines Corporation | System for controlling responses to requests over a data bus between a plurality of master controllers and a slave storage controller by inserting control characters |
ATE254778T1 (de) | 1997-09-05 | 2003-12-15 | Sun Microsystems Inc | Nachschlagtabelle und verfahren zur datenspeicherung darin |
US6493343B1 (en) * | 1998-01-07 | 2002-12-10 | Compaq Information Technologies Group | System and method for implementing multi-pathing data transfers in a system area network |
US6185620B1 (en) | 1998-04-03 | 2001-02-06 | Lsi Logic Corporation | Single chip protocol engine and data formatter apparatus for off chip host memory to local memory transfer and conversion |
CN100336035C (zh) | 1998-12-07 | 2007-09-05 | 联发科技股份有限公司 | 存储器存取控制装置 |
US7194517B2 (en) | 2001-06-28 | 2007-03-20 | Fujitsu Limited | System and method for low overhead message passing between domains in a partitioned server |
US6944719B2 (en) | 2002-05-15 | 2005-09-13 | Broadcom Corp. | Scalable cache coherent distributed shared memory processing system |
US6795850B2 (en) | 2002-12-13 | 2004-09-21 | Sun Microsystems, Inc. | System and method for sharing memory among multiple storage device controllers |
EP1805627B1 (en) | 2004-10-15 | 2011-02-16 | Sony Computer Entertainment Inc. | Methods and apparatus for supporting multiple configurations in a multi-processor system |
US7353345B1 (en) * | 2005-03-07 | 2008-04-01 | Integated Device Technology, Inc. | External observation and control of data in a computing processor |
US20070101158A1 (en) | 2005-10-28 | 2007-05-03 | Elliott Robert C | Security region in a non-volatile memory |
US7814279B2 (en) * | 2006-03-23 | 2010-10-12 | International Business Machines Corporation | Low-cost cache coherency for accelerators |
US20100005317A1 (en) | 2007-07-11 | 2010-01-07 | Memory Experts International Inc. | Securing temporary data stored in non-volatile memory using volatile memory |
US7882327B2 (en) | 2007-07-31 | 2011-02-01 | Advanced Micro Devices, Inc. | Communicating between partitions in a statically partitioned multiprocessing system |
US8375184B2 (en) * | 2009-11-30 | 2013-02-12 | Intel Corporation | Mirroring data between redundant storage controllers of a storage system |
US8352656B2 (en) | 2010-04-08 | 2013-01-08 | Intel Corporation | Handling atomic operations for a non-coherent device |
WO2012015431A1 (en) | 2010-07-30 | 2012-02-02 | Hewlett-Packard Development Company, L.P. | Computer system and method for sharing computer memory |
WO2012015430A1 (en) | 2010-07-30 | 2012-02-02 | Hewlett-Packard Development Company, L.P. | Computer system and method for sharing computer memory |
US8612676B2 (en) | 2010-12-22 | 2013-12-17 | Intel Corporation | Two-level system main memory |
JP5002719B1 (ja) | 2011-03-10 | 2012-08-15 | 株式会社東芝 | 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法 |
-
2013
- 2013-04-01 US US14/780,389 patent/US10474380B2/en active Active
- 2013-04-01 CN CN201380075350.8A patent/CN105051707A/zh active Pending
- 2013-04-01 EP EP13881361.3A patent/EP2981900B1/en active Active
- 2013-04-01 WO PCT/US2013/034796 patent/WO2014163612A1/en active Application Filing
-
2014
- 2014-02-21 TW TW103105883A patent/TW201447602A/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101356515A (zh) * | 2006-01-12 | 2009-01-28 | 安泰科技有限公司 | 连接到多端口存储器的微处理器 |
US20080082622A1 (en) * | 2006-09-29 | 2008-04-03 | Broadcom Corporation | Communication in a cluster system |
US20090210636A1 (en) * | 2008-02-12 | 2009-08-20 | Vijay Karamcheti | Methods and systems for two-dimensional main memory |
CN101883446A (zh) * | 2010-06-28 | 2010-11-10 | 华为终端有限公司 | 一种无线上网设备、sd控制芯片及数据通信方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201447602A (zh) | 2014-12-16 |
US20160054944A1 (en) | 2016-02-25 |
EP2981900A4 (en) | 2016-12-07 |
EP2981900A1 (en) | 2016-02-10 |
WO2014163612A1 (en) | 2014-10-09 |
EP2981900B1 (en) | 2022-02-09 |
US10474380B2 (en) | 2019-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6953488B2 (ja) | ハイブリッドメモリキューブシステム相互接続ディレクトリベースキャッシュコヒーレンス方法 | |
EP3140749B1 (en) | In-memory lightweight coherency | |
US9952975B2 (en) | Memory network to route memory traffic and I/O traffic | |
TWI237171B (en) | Tree based memory structure | |
CN104346317B (zh) | 共享资源访问方法和装置 | |
US20150193158A1 (en) | Smart memory buffers | |
KR102655094B1 (ko) | 메모리를 공유하는 이종의 프로세서들을 포함하는 스토리지 장치 및 그것의 동작 방법 | |
JP7368942B2 (ja) | メモリシステムを含むコンピュータシステム | |
CN105051707A (zh) | 外部存储器控制器 | |
TWI505183B (zh) | 共享記憶體系統 | |
US11461024B2 (en) | Computing system and operating method thereof | |
US11126372B2 (en) | External memory controller | |
JP7299724B2 (ja) | メモリシステム及びその動作方法 | |
US20190129483A1 (en) | Computing device and operation method thereof | |
WO2007097036A1 (ja) | 中央処理装置、中央処理装置の制御方法、情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170122 Address after: American Texas Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Applicant before: Hewlett-Packard Development Company, L.P. |
|
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151111 |
|
WD01 | Invention patent application deemed withdrawn after publication |