CN108268421A - 用于在机架规模环境中提供可重新配置的数据层的机制 - Google Patents

用于在机架规模环境中提供可重新配置的数据层的机制 Download PDF

Info

Publication number
CN108268421A
CN108268421A CN201711237007.5A CN201711237007A CN108268421A CN 108268421 A CN108268421 A CN 108268421A CN 201711237007 A CN201711237007 A CN 201711237007A CN 108268421 A CN108268421 A CN 108268421A
Authority
CN
China
Prior art keywords
configuration
node
memory
performance
resource
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.)
Granted
Application number
CN201711237007.5A
Other languages
English (en)
Other versions
CN108268421B (zh
Inventor
M.K.纳奇姆图
M.J.库马尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN108268421A publication Critical patent/CN108268421A/zh
Application granted granted Critical
Publication of CN108268421B publication Critical patent/CN108268421B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Debugging And Monitoring (AREA)
  • Human Computer Interaction (AREA)

Abstract

本发明涉及用于在机架规模环境中提供可重新配置的数据层的机制。本文中描述了实现用于在机架架构系统中选择和提供可重新配置的硬件资源的机制的系统、方法和机器可读介质。系统的一个实施例包括多个节点和配置管理器。节点中的每个进一步包括:多个存储器资源和节点管理器。节点管理器要跟踪在节点中可用的存储器资源,确定存储器资源的不同的可能配置,并且生成针对可能配置中的每个的性能估计。配置管理器要接收基于性能要求集合来选择一个或多个节点的请求,从每个节点接收存储器资源的不同的可能配置和针对可能配置中的每个的性能估计,并且循环访问所收集的配置和性能估计以确定最佳地匹配性能要求集合的一个或多个节点配置。

Description

用于在机架规模环境中提供可重新配置的数据层的机制
背景技术
在按需机架(rack)架构系统中,当用户利用诸如存储器容量和性能特性之类的存储器要求的特定集合来请求计算系统时,配置管理器通常为了最佳地匹配所指定的要求的计算节点而仅扫描系统中的所有可用计算节点,并将其呈现或分配给用户。这对于通常配置有存储器DIMM的传统计算节点而言工作良好,所述存储器DIMM共享相同类型的存储器技术(例如,DDR3或DDR4)和存储器模式(例如,被设置成使存储器DIMM与可能的最大插入通道交叉的BIOS)。换言之,传统计算系统中的存储器DIMM时常共享类似的性能特性,其使得在它们之间进行比较和选取成为相对直接向前的任务。然而,随着存储器技术中的新进步,在对于计算节点而言现在可能具有可配置成提供宽范围的性能特性的存储器的情况下,需要一种更好的方式来选择最佳地匹配用户存储器要求的计算节点。
附图说明
当结合附图理解时,本发明的前述方面和许多伴随的优点将变得更容易领会,因为其通过参考以下具体实施方式而变得更好理解,其中贯穿各种视图相同的参考数字指代相同的部分,除非另外指定:
图1图示在存储器技术的不同层之间的容量和性能水平比较;
图2图示存储器侧高速缓存的概观;
图3图示根据实施例的计算节点中的示例性存储器配置;
图4图示依照实施例的系统中的物理地址的示例性映射;
图5是图示根据实施例的存储器侧高速缓存0级的物理地址映射和性能特性的表格;
图6是图示根据实施例的存储器侧高速缓存1级的物理地址映射和性能特性的表格;
图7图示可在其上实现本发明的实施例的示例性系统平台;
图8是图示在节点管理器中实现的操作和逻辑的实施例的流程图;
图9是图示依照实施例的用于处理基于性能要求集合来选择一个或多个计算节点的请求的操作和逻辑的流程图;
图10是图示根据本发明的实施例的用于生成性能估计的操作和逻辑的流程图;
图11A是图示根据本发明的实施例的示例性有序流水线和示例性寄存器重命名、无序发出/执行流水线二者的框图;
图11B是图示根据本发明的实施例的要被包括在处理器中的示例性寄存器重命名、无序发出/执行架构核心和有序架构核心的示例性实施例二者的框图;
图12是根据本发明的实施例的具有集成存储器控制器和图形的单核心处理器和多核心处理器的框图;
图13图示依照本发明的一个实施例的系统的框图;
图14图示依照本发明的实施例的第二系统的框图;
图15图示依照本发明的实施例的第三系统的框图;
图16图示依照本发明的实施例的芯片上系统(SoC)的框图;以及
图17图示根据本发明的实施例的对比软件指令转换器的使用的框图,所述软件指令转换器用以将源指令集中的二进制指令转换成目标指令集中的二进制指令。
具体实施方式
在本文中描述了实现用于在机架架构系统中选择和提供可重新配置的硬件资源的机制的系统、方法和机器可读介质的实施例。在以下描述中,阐述许多特定细节以提供对本发明的实施例的透彻理解。然而,相关领域技术人员将认识到,可以在没有特定细节中的一个或多个的情况下或者利用其它方法、组件、材料等实践本发明。在其它实例中,没有详细地示出或描述公知的结构、材料或操作以避免模糊本发明的方面。
贯穿本说明书对“一个实施例”或“实施例”的引用意味着结合实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书在各个地方中的短语“在一个实施例中”或“在实施例中”的出现不一定都指代相同实施例。此外,可在一个或多个实施例中以任何适合的方式组合特定特征、结构或特性。为了清楚,本文中的各图中的单独的组件可由它们在各图中的标签而不是由特定参考编号来指代。
在机架架构系统中,利用可重新配置的存储器技术的计算节点可以根据特定工作负荷或需要而提供极大地不同的水平的性能。例如,一些新的存储器技术,诸如由加利福尼亚州圣克拉拉市的Intel®公司开发的3D XpointTM,存储器DIMM可被细分(即划分)成多个区域。这些区域中的每个可被分离地配置成用作特定类型的存储器,诸如持久性存储器、易失性存储器、块存储存储器、固态驱动器(SSD)类型存储器等。另外,区域中的一些可被配置成通过例如存储器镜像来提供诸如可靠性、可访问性和可服务性(RAS)之类的特殊功能性,在存储器镜像中存储器写被复制在两个区域上以提供数据冗余。区域中的一些甚至可被DRAM用作高速缓存,而其它不被DRAM用作高速缓存。因此,根据各种存储器技术如何被利用和配置,具有相同存储器组件的计算节点可提供广泛地不同的水平的性能。然而,在大多数数据中心管理软件或硬件中采用的当前实践仅要检索计算节点的当前配置和尝试推测这些计算节点的性能以匹配由用户指定的硬件配置要求的集合。这样的节点选择未能考虑由新存储器以及其它硬件、技术提供的不同模式的灵活性和可配置性。本发明的方面提供一种机制,该机制使每个计算节点向配置管理器传送存储器以及其它硬件资源的不同级别的层和配置,这继而使得配置管理器能够选择更准确地匹配用户的要求的特定配置和节点。每个节点可向配置管理器提供配置表格,所述配置表格包括针对每个可能配置的估计的和/或实际的性能数据。例如,配置表格中的条目可以以下格式:{配置编号,资源#1的性能数据#1,资源#1的性能数据#2……资源#2的性能数据#1,资源#2的性能数据#2……资源#N的性能数据#1……资源#N的性能数据#M}。当前本发明的另一实施例预想一种机制,该机制允许用户或用户程序定制差异节点资源的配置以适应特定工作负荷,并从经重新配置的节点接收基于定制的实际性能结果。在机架架构系统的优选实施例中,配置管理器与机架中的一个或多个池化(pooled)节点管理器通信。每个池化节点管理器继而通过每个计算节点的节点管理器与在它们的相应节点池中的一个或多个计算节点通信。根据实施例,池化节点管理器与节点管理器之间的通信通过它们的相应带外接口而做出,以提供附加的安全性级别。
图1图示存储器技术的不同类型和层之间的容量和性能水平比较。例如,易失性存储器倾向于具有最高的性能,但通常具有最低的容量。另一方面,与存储器技术的其它类型相比,固态驱动器(SSD)可能具有最高的容量,但是它通常在带宽和等待时间方面提供最低的性能。
图2图示存储器侧高速缓存的概观。通常,系统中可用的存储器出于高速缓存目的而被分成不同的存储器级别。0级存储器(还被称为末级存储器或远存储器)包括对操作系统(OS)和软件可见的全范围的系统物理地址。下一级存储器中的每个更接近处理器,并且包含比它之上的级别更小的对OS/软件可见的系统物理地址的部分。例如,1级存储器202-1比0级存储器202-0更接近处理器,并且包含比0级存储器202-0更小的对OS/软件可见的系统物理地址的部分。由于大小上的差异,每个级别的存储器通常比它之上的级别提供更好的性能。例如,1级存储器202-1一般能够提供比0级存储器202-0更高的带宽和更低的等待时间。
图3图示计算节点中的示例性存储器配置。存储器配置300包括若干不同的存储器技术,每个存储器技术在带宽和等待时间方面提供不同水平的性能。例如,存储器配置300包括两个插槽S1 302-1和S2 302-2。连接到插槽1 302-1的存储器包括高带宽存储器(HBM)304-1、DDR4 306和3D XpointTM 308。连接到插槽S2 302-2的存储器也包括HBM 304-2、DDR4310和3D XpointTM 312。从提供不同类型的存储器中的每个存储器的容量、等待时间和带宽的表格301中明显的是,计算节点中的存储器的容量和性能可以显著地变化。另外,可在进一步有助于性能差别的不同模式中进一步配置和利用不同类型的存储器。例如,插槽S1302-1中的DDR4 DIMM 306-0—306-2用作镜像存储器,而插槽 302-2中的DDR4 DIMM 310-0—310-2不用作镜像存储器。同时,两个插槽中的3D-XpointTM存储器DIMM 308-0、308-1、312-0和312-1被指定为存储器侧高速缓存的存储器以及应用-直接(app-direct)存储器,同时被划分为半易失性存储器和半持久性存储器。因此,从图3中容易看出,计算节点中的存储器资源可以在复杂性方面非常快地增加。在图4中示出如何将计算系统中的物理存储器地址映射到每个特定存储器的示例。图5和6是示出存储器侧高速缓存0和1级如何映射到存储器配置300的详细映射及其相应的性能特性的表格。注意,尽管存储器侧高速缓存0和1级二者被映射到相同的组件(MM-S1和MM-S2),但是这两个高速缓存级别之间的性能水平显著地不同。
图7图示可在其上实现本发明的实施例的示例性系统平台。在一个实施例中,系统平台是机架规模计算系统。系统平台包括容纳一个或多个节点的机架700。节点可被一起分组成一个或多个池。每个节点池可包含任何数目的节点。机架700被示出具有两组节点704和724。每组节点包括池化节点管理器。节点中每个包括节点管理器和多个存储器资源。例如,节点组704包括池化节点管理器706和单个节点710-1。节点710-1进一步包括节点管理器708-1和资源712-1。类似地,节点组724包括池化节点管理器726和n个节点730-1—730-n。n个节点中的每个包括相应的节点管理器728和多个资源732。根据实施例,所述多个资源是存储器资源。然而,如下面指出的,所述多个资源712/732可以是任何类型的硬件资源。互连740将不同池的节点耦合到机架管理开关(开关)742。在实施例中,互连740是以太网连接。然而,也可使用其它适合类型的连接技术,诸如由圣克拉拉市的Intel®公司开发的OmniPathTM。配置管理器702可被用户或程序用来查询、请求、选择和/或配置用以执行工作负荷的一个或多个节点。在一个实施例中,配置管理器702是在机架平台700上运行的软件。在另一实施例中,配置管理器702被实现为机架平台700中的可定制或硬接线的电路。根据实施例,配置管理器702包括:诸如用户/程序接口之类的接收器电路,用以从用户和/或程序接收配置请求来选择用于处理工作负荷的一个或多个节点;节点接口电路,用以从不同节点接收不同的可能资源配置和性能估计;以及分析器电路,用以循环访问所有不同的可能资源配置和性能估计来确定最佳地匹配由用户或程序设置的性能要求的节点配置。
图8是图示在计算节点中实现的操作和逻辑的实施例的流程图。虽然该流程图中的各种操作被顺序地呈现和描述,但是普通技术人员将领会,操作中的一些或全部可以被以不同的顺序执行、被组合或省略,或者被并行地执行。在一个实施例中,在计算节点的节点管理器(例如,图7的728-1)中实现图8中图示的操作和逻辑。根据实施例,节点管理器是在节点中实现的固件。在其它实施例中,节点管理器可被实现为软件和/或硬件,诸如硬接线的电路。在一个实施例中,节点管理器包括用以跟踪节点中可用的差异资源的跟踪器电路、用以确定可用资源的所有可能配置的处理器电路、用以生成针对可能配置中的每个的性能估计的模拟器电路,以及用以向配置管理器提供所有可能的资源配置和性能估计的通信电路。
在802处,节点管理器节点跟踪对节点可用的所有资源。在一些实施例中,跟踪的资源包括硬件和/或软件资源。资源包括在节点中安装或填充的硬件和/或软件资产,以及连接到节点和/或节点可访问的资源。在一个实施例中,跟踪的资源包括存储器资源,诸如DRAM、NVDIMM、易失性存储器、持久性存储器、块存储器、SSD、记忆装置和现在可用或可能将来可用的任何其它存储器类型/技术。在804处,节点管理器基于跟踪的资源来确定不同的可能配置。例如,关于存储器资源,可能的存储器配置可基于存储器类型(例如,易失性、持久性)、存储器容量(例如,大小)、存储器性能(例如,速度、带宽、等待时间)、特殊模式/功能性(例如,镜像存储器、交叉存储器、DRAM高速缓存)。根据实施例,除了存储器资源之外,节点管理器还可生成其它资源的可能配置。例如,节点管理器可针对或基于存储资源(例如,存储容量、存储性能)、核心资源(例如,核心计数、核心速度)、联网资源(例如,网络类型、网络速度)、I/O资源(例如,总线类型、总线速度)、附加的计算资源(例如,GPU、FPGA)以及可被用户请求的任何其它适合的资源生成差异配置。可能配置中的一些还可包括有效配置、频繁使用的配置、特定配置和先前指定/使用的配置。在一些实施例中,可能配置还包括覆盖范围而不是特定数的滑动规模(sliding scale)配置。例如,特定配置可以包括0-128GB而不是固定数目(例如,16GB、32GB、64GB等)的存储器容量范围。在806处,节点管理器生成针对可能配置中的每个的性能估计。下面将在图10中进一步描述用于生成性能估计的操作和逻辑。
图9是图示根据实施例的用以处理选择用于处理工作负荷的一个或多个计算节点的请求的操作和逻辑的流程图。虽然该流程图中的各种操作被顺序地呈现和描述,但是普通技术人员将领会,操作中的一些或全部可以被以不同的顺序执行、被组合或省略,或者被并行地执行。在一个实施例中,在图7的配置管理器702中实现图9中图示的操作和逻辑。配置管理器可被实现为软件、硬件或固件。在一个实施例中,配置管理器包括用以与用户和/或程序通信的接口,诸如用户接口。配置管理器还可包括用以诸如通过池化节点管理器和/或节点管理器与节点通信的接口。在902处,配置管理器接收基于性能要求集合来选择一个或多个节点的请求。在一个实施例中,请求来自用户或由用户操作的软件程序。根据实施例,性能要求集合可包括存储器类型、存储器容量、存储器性能、存储器模式、存储容量、存储性能、核心计数、核心速度、网络性能、I/O性能、GPU性能、FPGA性能以及在用以执行特定工作负荷的节点或节点系统中期望的任何其它适合的性能特征。在904处,配置管理器从机架系统中的节点中的每个接收可能的资源配置的列表以及与每个配置相关联的性能估计。列表可被呈现为表格或矩阵。根据实施例,表格或矩阵包括诸如存储器类型、存储器容量、存储器性能、存储器模式、物理和/或虚拟地址映射等的信息。在一个实施例中,列表中的条目以以下格式:{配置编号(例如,标识符),存储器类型(例如,易失性、持久性),存储器容量(例如,大小),存储器性能(例如,速度、带宽、等待时间),存储器模式(例如,镜像、交叉、用作高速缓存),存储容量(例如,大小),存储性能(例如,速度、带宽、等待时间),核心计数,核心速度,网络类型,网络速度,总线类型,总线速度,GPU性能,FPGA性能等}。在906处,配置管理器循环访问从机架系统中的节点收集的可能配置、性能估计和/或实际性能数据,并将它们与由用户指定的要求和/或特性集合或者工作负荷的类型进行比较。在908处,配置管理器确定具有最佳地匹配所接收的请求中的性能要求集合的配置的一个或多个节点。在一个实施例中,最佳匹配配置是具有最接近所接收的请求中的性能要求的性能估计的配置。例如,所接收的请求可包括最小带宽和最大等待时间要求。相应地,在一个实施例中,具有超过最小带宽和最大等待时间二者的性能估计、同时利用最少量资源的配置可被认为是最佳匹配。在其它实施例中,例如,超过性能要求最多的配置被认为是最佳匹配。
根据实施例,除了基于性能要求集合来选择一个或多个节点的请求之外,或者在实现这样的请求之后,配置管理器还可从用户/程序接收利用特定配置来配置特定节点的请求。在这样的情况下,配置管理器将向所指定的节点发送包括配置输入的重新配置请求。响应于接收到重新配置请求,所指定的节点的节点管理器然后将基于配置输入来重新配置所指定的节点中的多个资源。在节点被重新配置后,节点管理器将向后向配置管理器提供通过/失败结果和实际性能数据,如果可用的话。通过/失败结果和实际性能数据指示或反映节点在依照配置输入进行重新配置之后的性能。
图10是图示根据本发明的实施例的用于生成性能估计的操作和逻辑的流程图。虽然该流程图中的各种操作被顺序地呈现和描述,但是普通技术人员将领会,操作中的一些或全部可以被以不同的顺序执行、被组合或省略,或者被并行地执行。在一个实施例中,在节点管理器(例如,图7的728-1)中实现图10中图示的操作和逻辑。根据实施例,节点管理器是在节点中实现的固件。在其它实施例中,节点管理器可被实现为软件和/或硬件,诸如硬接线的电路。在1002处,诸如节点中的节点管理器之类的设备将节点中可用的资源分类成各种集合。例如,关于存储器资源,节点管理器将存储器资源分类成易失性存储器集合和持久性存储器集合。在1004处,基于诸如存储器类型、性能、模式和用于集合中的每个存储器的交叉设置之类的信息,节点管理器确定针对每个存储器集合的等待时间和带宽数据。在1006处,向等待时间和带宽数据分配权重。例如,可向针对易失性存储器和针对持久性存储器的等待时间和带宽数据分配较高的权重值。替代地,可基于存储器集合中的每个存储器的交叉设置来分配不同的权重值。在1008处,基于分配的权重值使针对存储器集合中的每个存储器的等待时间和带宽信息标准化(normalize)。虽然图10集中在存储器性能上,但是该方法适用于生成对其它节点资源的性能估计,诸如存储性能、核心性能、网络性能、I/O性能、附加的计算性能(例如,GPU/FPGA)等。
当前发明的一个实施例是一种包括多个节点以及配置管理器的系统。所述多个节点中的每个包括多个资源以及节点管理器。节点管理器要跟踪节点中可用的所述多个资源,要确定所述多个资源的不同的可能配置,并且要生成针对可能配置中的每个的性能估计。配置管理器要接收基于性能要求集合来选择一个或多个节点的请求,要从每个节点接收所述多个资源的不同的可能配置和针对可能配置中的每个的性能估计,并且要循环访问所收集的配置和性能估计以确定最佳地匹配性能要求集合的一个或多个节点配置。在一个实施例中,所述多个节点中的每个与池化节点管理器对应,使得池化节点管理器要从每个相应节点收集并向配置管理器提供所述多个资源的不同的可能配置和针对可能配置中的每个的性能估计。所述多个资源的不同的可能配置可以包括有效配置、最频繁使用的配置、特定配置和/或滑动规模配置,所述滑动规模配置包括所述多个资源的范围。在一个实施例中,生成针对可能配置中的每个的性能估计包括标识多个存储器资源中的易失性存储器集合和持久性存储器集合,基于涉及存储器类型和交叉的信息来确定针对每个存储器集合的等待时间和/或带宽数据,向等待时间和/或带宽数据分配权重,以及使用分配的权重使针对每个存储器集合的等待时间和带宽数据标准化。在一个实施例中,配置管理器要从每个节点接收分配的权重以及等待时间和带宽数据。在一个实施例中,第一节点管理器要:从配置管理器接收基于配置输入来重新配置第一节点的重新配置请求,第一节点可由第一节点管理器配置;基于配置输入,响应地重新配置第一节点中的所述多个资源;以及向配置管理器提供通过/失败结果和实际性能数据,通过/失败结果和实际性能数据指示第一节点在依照配置输入进行重新配置之后的性能。在一些实施例中,所述多个资源可以包括存储器资源、存储资源、核心资源、联网资源、I/O资源和/或计算资源。根据一些实施例,性能要求集合可以包括存储器类型、存储器容量、存储器性能、存储器模式、存储容量、存储性能、核心计数、核心速度、网络性能、I/O性能、GPU性能和/或FPGA性能。
本发明的另一实施例是一种在节点管理器中实现的方法并且包括:跟踪节点中可用的多个资源;确定所述多个资源的不同的可能配置;生成针对可能配置中的每个的性能估计;以及将所述多个资源的不同的可能配置和针对可能配置中的每个的性能估计提供给配置管理器。在一个实施例中,所述多个资源的不同的可能配置可以包括有效配置、最频繁使用的配置、特定配置和/或滑动规模配置,所述滑动规模配置包括资源的范围。在一个实施例中,该方法进一步包括标识多个存储器资源中的易失性存储器集合和持久性存储器集合,基于涉及存储器类型和交叉的信息来确定针对每个存储器集合的等待时间和/或带宽数据;向等待时间和/或带宽数据分配权重,以及使用分配的权重使针对每个存储器集合的等待时间和带宽数据标准化。在一些实施例中,该方法进一步包括从每个节点向配置管理器提供分配的权重以及等待时间和带宽数据。根据一些实施例,该方法进一步包括从配置管理器接收基于配置输入来重新配置节点的重新配置请求,基于重新配置请求而响应地重新配置节点中的所述多个资源,以及向配置管理器提供通过/失败结果和实际性能数据。所述多个资源可以包括存储器资源、存储资源、核心资源、联网资源、I/O资源和/或计算资源。
本发明的另一实施例是一种在配置管理器中实现的方法,并且该方法包括:接收基于性能要求集合来选择一个或多个节点的第一请求;从多个节点中的每个接收不同的可能资源配置的集合和针对集合中的可能配置中的每个的性能估计;以及循环访问不同的可能资源配置的集合和性能估计,以确定最佳地匹配性能要求集合的一个或多个节点配置。在一些实施例中,性能要求集合可以包括:存储器类型、存储器容量、存储器性能、存储器模式、存储容量、存储性能、核心计数、核心速度、网络性能、I/O性能、GPU性能和/或FPGA性能。根据实施例,该方法进一步包括:接收根据配置输入来配置所指定的节点的第二请求;向所指定的节点发送重新配置请求,重新配置请求包括配置输入;以及从所指定的节点接收通过/失败结果和实际性能数据,通过/失败结果和实际性能数据指示所指定的节点在依照配置输入进行重新配置之后的性能。
本发明的另一实施例包括一种其上存储有程序代码的非瞬时机器可读介质,所述程序代码在被机器执行时使得机器执行如下操作:跟踪节点中可用的多个资源;确定所述多个资源的不同的可能配置;生成针对可能配置中的每个的性能估计;以及将所述多个资源的不同的可能配置和针对可能配置中的每个的性能估计提供给配置管理器。在一个实施例中,所述多个资源的不同的可能配置可以包括有效配置、最频繁使用的配置、特定配置和/或滑动规模配置,所述滑动规模配置包括资源的范围。在一个实施例中,该方法进一步包括标识多个存储器资源中的易失性存储器集合和持久性存储器集合,基于涉及存储器类型和交叉的信息来确定针对每个存储器集合的等待时间和/或带宽数据;向等待时间和/或带宽数据分配权重,以及使用分配的权重使针对每个存储器集合的等待时间和带宽数据标准化。在一些实施例中,该方法进一步包括从每个节点向配置管理器提供分配的权重以及等待时间和带宽数据。根据一些实施例,该方法进一步包括从配置管理器接收基于配置输入来重新配置节点的重新配置请求,基于重新配置请求而响应地重新配置节点中的所述多个资源,以及向配置管理器提供通过/失败结果和实际性能数据。所述多个资源可以包括存储器资源、存储资源、核心资源、联网资源、I/O资源和/或计算资源。
本发明的另一实施例包括一种其上存储有程序代码的非瞬时机器可读介质,所述程序代码在被机器执行时使得机器执行如下操作:接收基于性能要求集合来选择一个或多个节点的第一请求;从多个节点中的每个接收不同的可能资源配置的集合和针对集合中的可能配置中的每个的性能估计;以及循环访问不同的可能资源配置的集合和性能估计,以确定最佳地匹配性能要求集合的一个或多个节点配置。在一些实施例中,性能要求集合可以包括:存储器类型、存储器容量、存储器性能、存储器模式、存储容量、存储性能、核心计数、核心速度、网络性能、I/O性能、GPU性能和/或FPGA性能。根据实施例,该方法进一步包括:接收根据配置输入来配置所指定的节点的第二请求;向所指定的节点发送重新配置请求,重新配置请求包括配置输入;以及从所指定的节点接收通过/失败结果和实际性能数据,通过/失败结果和实际性能数据指示所指定的节点在依照配置输入进行重新配置之后的性能。
本发明的另一实施例是一种装置,其包括:用于跟踪节点中可用的多个资源的部件;用于确定所述多个资源的不同的可能配置的部件;用于生成针对可能配置中的每个的性能估计的部件;以及用于将所述多个资源的不同的可能配置和针对可能配置中的每个的性能估计提供给配置管理器的部件。在一个实施例中,所述多个资源的不同的可能配置可以包括有效配置、最频繁使用的配置、特定配置和/或滑动规模配置,所述滑动规模配置包括资源的范围。在一个实施例中,该方法进一步包括标识多个存储器资源中的易失性存储器集合和持久性存储器集合,基于涉及存储器类型和交叉的信息来确定针对每个存储器集合的等待时间和/或带宽数据;向等待时间和/或带宽数据分配权重,以及使用分配的权重使针对每个存储器集合的等待时间和带宽数据标准化。在一些实施例中,该方法进一步包括从每个节点向配置管理器提供分配的权重以及等待时间和带宽数据。根据一些实施例,该方法进一步包括从配置管理器接收基于配置输入来重新配置节点的重新配置请求,基于重新配置请求而响应地重新配置节点中的所述多个资源,以及向配置管理器提供通过/失败结果和实际性能数据。所述多个资源可以包括存储器资源、存储资源、核心资源、联网资源、I/O资源和/或计算资源。
本发明的另一实施例是一种装置,其包括:用于接收基于性能要求集合来选择一个或多个节点的第一请求的部件;用于从多个节点中的每个接收不同的可能资源配置的集合和针对集合中的可能配置中的每个的性能估计的部件;以及用于循环访问不同的可能资源配置的集合和性能估计以确定最佳地匹配性能要求集合的一个或多个节点配置的部件。在一些实施例中,性能要求集合可以包括:存储器类型、存储器容量、存储器性能、存储器模式、存储容量、存储性能、核心计数、核心速度、网络性能、I/O性能、GPU性能和/或FPGA性能。根据实施例,该方法进一步包括:接收根据配置输入来配置所指定的节点的第二请求;向所指定的节点发送重新配置请求,重新配置请求包括配置输入;以及从所指定的节点接收通过/失败结果和实际性能数据,通过/失败结果和实际性能数据指示所指定的节点在依照配置输入进行重新配置之后的性能。
图11A是图示根据本发明的实施例的示例性有序流水线和示例性寄存器重命名、无序发出/执行流水线二者的框图。图11B是图示根据本发明的实施例的要被包括在处理器中的示例性寄存器重命名、无序发出/执行架构核心和有序架构核心的示例性实施例二者的框图。图11A-B中的实线框图示有序流水线和有序核心,而虚线框的可选附加图示寄存器重命名、无序发出/执行流水线和核心。假定有序方面是无序方面的子集,将描述无序方面。
在图11A中,处理器流水线1100包括获取阶段1102、长度解码阶段1104、解码阶段1106、分配阶段1108、重命名阶段1110、调度(还被称为分派或发出)阶段1112、寄存器读/存储器读阶段1114、执行阶段1116、写回/存储器写阶段1118、异常处置阶段1122和提交阶段1124。
图11B示出处理器核心1190,其包括耦合到执行引擎硬件1150的前端硬件1130,并且二者被耦合到存储器硬件1170。核心1190可以是精简指令集计算(RISC)核心、复杂指令集计算(CISC)核心、极长指令字(VLIW)核心,或者混合或替代核心类型。作为又一选项,核心1190可以是专用核心,诸如例如网络或通信核心、压缩引擎、协处理器核心、通用计算图形处理单元(GPGPU)核心、图形核心等。
前端硬件1130包括耦合到指令高速缓存硬件1134的分支预测硬件1132,指令高速缓存硬件1134被耦合到指令翻译旁视缓冲器(TLB)1136,指令翻译旁视缓冲器(TLB)1136被耦合到指令获取硬件1138,指令获取硬件1138被耦合到解码硬件1140。解码硬件1140(或解码器)可对指令进行解码,并生成作为输出的一个或多个微操作、微代码入口点、微指令、其它指令或其它控制信号,它们被解码自或以其它方式反映或源自原始指令。可使用各种不同的机制来实现解码硬件1140。适合的机制的示例包括但不限于查找表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。在一个实施例中,核心1190包括存储用于(例如,在解码硬件1140中或否则在前端硬件1130内的)某些宏指令的微代码的微代码ROM或其它介质。解码硬件1140被耦合到执行引擎硬件1150中的重命名/分配器硬件1152。
执行引擎硬件1150包括耦合到引退硬件1154和一个或多个调度器硬件1156的集合的重命名/分配器硬件1152。调度器硬件1156表示任何数目的不同调度器,包括保留站、中央指令窗口等。调度器硬件1156被耦合到(多个)物理寄存器文件(register file)硬件1158。(多个)物理寄存器文件硬件1158中的每个表示一个或多个物理寄存器文件,其中的不同的物理寄存器文件存储一个或多个不同的数据类型,诸如标量整数、标量浮点、压紧的(packed)整数、压紧的浮点、向量整数、向量浮点、状态(例如,是要被执行的下一指令的地址的指令指针)等。在一个实施例中,(多个)物理寄存器文件硬件1158包括向量寄存器硬件、写掩码寄存器硬件和标量寄存器硬件。这些寄存器硬件可提供架构向量寄存器、向量掩码寄存器和通用寄存器。(多个)物理寄存器文件硬件1158与引退硬件1154重叠以图示可(例如,使用(多个)重排序缓冲器和(多个)引退寄存器文件;使用(多个)将来文件、(多个)历史缓冲器和(多个)引退寄存器文件;使用寄存器映射和寄存器的池;等等)实现寄存器重命名和无序执行的各种方式。引退硬件1154和(多个)物理寄存器文件硬件1158被耦合到(多个)执行集群1160。(多个)执行集群1160包括一个或多个执行硬件1162的集合和一个或多个存储器访问硬件1164的集合。执行硬件1162可执行各种操作(例如,移位、加法、减法、乘法)并且对各种数据类型(例如,标量浮点、压紧的整数、压紧的浮点、向量整数、向量浮点)执行所述各种操作。虽然一些实施例可包括专用于特定功能或功能的集合的多个执行硬件,但是其它实施例仅可包括一个执行硬件或都执行所有功能的多个执行硬件。调度器硬件1156、(多个)物理寄存器文件硬件1158和(多个)执行集群1160被示出为可能是复数的,因为某些实施例针对某些类型的数据/操作创建分离流水线(例如,标量整数流水线、标量浮点/压紧的整数/压紧的浮点/向量整数/向量浮点流水线和/或存储器访问流水线,其每个具有它们自己的调度器硬件、(多个)物理寄存器文件硬件和/或执行集群——并且在分离的存储器访问流水线的情况下,实现其中仅该流水线的执行集群具有存储器访问硬件1164的某些实施例)。还应当理解,在使用分离流水线的情况下,这些流水线中的一个或多个可以是无序的发出/执行,并且其余是有序的。
存储器访问硬件1164的集合被耦合到存储器硬件1170,存储器硬件1170包括耦合到数据高速缓存硬件1174的数据TLB硬件1172,数据高速缓存硬件1174耦合到2级(L2)高速缓存硬件1176。在一个示例性实施例中,存储器访问硬件1164可包括加载硬件、存储地址硬件和存储数据硬件,其中的每个被耦合到存储器硬件1170中的数据TLB硬件1172。指令高速缓存硬件1134被进一步耦合到存储器硬件1170中的2级(L2)高速缓存硬件1176。L2高速缓存硬件1176被耦合到一个或多个其它级别的高速缓存并最终到主存储器。
作为示例,示例性寄存器重命名、无序发出/执行核心架构可如下实现流水线1100:1)指令获取1138执行获取及长度解码阶段1102和1104;2)解码硬件1140执行解码阶段1106;3)重命名/分配器硬件1152执行分配阶段1108和重命名阶段1110;4)调度器硬件1156执行调度阶段1112;5)(多个)物理寄存器文件硬件1158和存储器硬件1170执行寄存器读/存储器读阶段1114;执行集群1160执行执行阶段1116;6)存储器硬件1170和(多个)物理寄存器文件硬件1158执行写回/存储器写阶段1118;7)各种硬件可能在异常处置阶段1122中被涉及;以及8)引退硬件1154和(多个)物理寄存器文件硬件1158执行提交阶段1124。
核心1190可支持一个或多个指令集(例如,(具有已随较新版本添加的一些扩展的)x86指令集);加利福尼亚州森尼维耳市的MIPS Technologies的MIPS指令集;加利福尼亚州森尼维耳市的ARM Holdings的(具有诸如NEON之类的可选附加扩展的)ARM指令集),其包括本文中描述的(多个)指令。在一个实施例中,核心1190包括用以支持压紧的数据指令集扩展(例如,下面描述的AVX1、AVX2和/或某种形式的通用向量友好类型指令格式(U=0和/或U=1))的逻辑,从而允许使用压紧的数据来执行由许多多媒体应用使用的操作。
应当理解,核心可支持多线程(执行操作或线程的两个或更多并行集合),并可以以多种方式来如此做,所述多种方式包括时间切片的多线程、同时多线程(其中单个物理核心为物理核心同时进行多线程的每个线程提供逻辑核心,或其组合(例如,诸如在Intel®超线程技术中的时间切片的获取和解码以及其后的同时多线程)。
虽然在无序执行的上下文中描述寄存器重命名,但是应当理解,寄存器重命名可用于有序架构中。虽然处理器的图示实施例还包括分离的指令和数据高速缓存硬件1134/1174以及共享的L2高速缓存硬件1176,但替代实施例可具有用于指令和数据二者的单个内部高速缓存,诸如例如1级(L1)内部高速缓存或多个级别的内部高速缓存。在一些实施例中,系统可包括内部高速缓存和在核心和/或处理器外部的外部高速缓存的组合。替代地,所有高速缓存可在核心和/或处理器外部。
图12是根据本发明的实施例的处理器1200的框图,所述处理器1200可以具有不止一个核心,可以具有集成存储器控制器,并且可以具有集成图形。图12中的实线框图示具有单个核心1202A、系统代理1210、一个或多个总线控制器硬件1216的集合的处理器1200,而虚线框的可选附加图示具有多个核心1202A-N、系统代理硬件1210中的一个或多个集成存储器控制器硬件1214的集合以及专用逻辑1208的替代处理器1200。
因此,处理器1200的不同实现可包括:1)CPU,其具有是集成图形和/或科学(吞吐量)逻辑(其可包括一个或多个核心)的专用逻辑1208、以及是一个或多个通用核心(例如,通用有序核心、通用无序核心、所述两个核心的组合)的核心1202A-N;2)具有是意图主要用于图形和/或科学(吞吐量)的大量专用核心的核心1202A-N的协处理器;以及3)具有是大量通用有序核心的核心1202A-N的协处理器。因此,处理器1200可以是通用处理器、协处理器或专用处理器,诸如例如网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理单元)、(包括30个或更多核心的)高吞吐量许多集成核心(MIC)协处理器、嵌入式处理器等。处理器可被实现在一个或多个芯片上。处理器1200可以是一个或多个衬底的一部分和/或可以使用多个工艺技术中的任何(诸如例如BiCMOS、CMOS或NMOS)而实现在一个或多个衬底上。
存储器层级包括核心内的一个或多个级别的高速缓存、一个或多个共享的高速缓存硬件1206的集合,以及耦合到集成存储器控制器硬件1214的集合的(未示出的)外部存储器。共享的高速缓存硬件1206的集合可包括一个或多个中级高速缓存,诸如2级(L2)、3级(L3)、4级(L4)或其它级别的高速缓存、末级高速缓存(LLC)和/或其组合。虽然在一个实施例中,基于环的互连硬件1212将集成图形逻辑1208、共享的高速缓存硬件1206的集合,以及系统代理硬件1210/集成存储器控制器硬件1214互连,但替代实施例可使用任何数目的公知技术用于互连这样的硬件。在一个实施例中,在一个或多个高速缓存硬件1206和核心1202-A-N之间维持一致性。
在一些实施例中,核心1202A-N中的一个或多个能够进行多线程。系统代理1210包括协调和操作核心1202A-N的那些组件。系统代理硬件1210可包括例如功率控制单元(PCU)和显示硬件。PCU可以是或包括调节核心1202A-N和集成图形逻辑1208的功率状态所需要的逻辑和组件。显示硬件用于驱动一个或多个外部连接的显示器。
核心1202A-N在架构指令集方面可以是同构或异构的;即,核心1202A-N中的两个或更多可能能够执行相同指令集,而其它核心可能能够仅执行不同指令集或该指令集的子集。在一个实施例中,核心1202A-N是异构的,并且包括下面描述的“小”核心和“大”核心二者。
图13-16是示例性计算机架构的框图。在膝上型计算机、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其它电子设备的领域中已知的其它系统设计和配置也是适合的。一般地,能够合并如本文中所公开的处理器和/或其它执行逻辑的种类繁多的系统或电子设备一般是适合的。
现在参考图13,所示出的是依照本发明的一个实施例的系统1300的框图。系统1300可包括被耦合到控制器集线器1320的一个或多个处理器1310、1315。在一个实施例中,控制器集线器1320包括图形存储器控制器集线器(GMCH)1390和输入/输出集线器(IOH)1350(其可在分离的芯片上);GMCH 1390包括存储器1340和协处理器1345耦合到的存储器和图形控制器;IOH 1350将输入/输出(I/O)设备1360耦合到GMCH 1390。替代地,存储器和图形控制器中的一个或二者被集成在处理器内(如本文中描述的),存储器1340和协处理器1345被直接耦合到处理器1310和具有IOH 1350的单个芯片中的控制器集线器1320。
在图13中用虚线来表示附加处理器1315的可选性质。每个处理器1310、1315可包括本文中描述的处理核心中的一个或多个,并可以是处理器1200的某一版本。
存储器1340可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)或这两个存储器的组合。对于至少一个实施例,控制器集线器1320经由诸如前侧总线(FSB)之类的多点总线、点对点接口或类似连接1395与(多个)处理器1310、1315通信。
在一个实施例中,协处理器1345是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器等。在一个实施例中,控制器集线器1320可包括集成图形加速器。
在包括架构、微架构、热、功率消耗特性等的指标的量度范围方面,在物理资源1310、1315之间可能存在多种差异。
在一个实施例中,处理器1310执行控制一般类型的数据处理操作的指令。指令内嵌入的可以是协处理器指令。处理器1310将这些协处理器指令识别为具有应由附连的协处理器1345执行的类型。相应地,处理器1310在协处理器总线或其它互连上将这些协处理器指令(或表示协处理器指令的控制信号)发出到协处理器1345。(多个)协处理器1345接受并执行所接收的协处理器指令。
现在参考图14,所示出的是依照本发明的实施例的第一更特定的示例性系统1400的框图。如图14中所示,多处理器系统1400是点对点互连系统,并包括经由点对点互连1450耦合的第一处理器1470和第二处理器1480。处理器1470和1480中的每个可以是处理器1200的某一版本。在本发明的一个实施例中,处理器1470和1480分别是处理器1310和1315,而协处理器1438是协处理器1345。在另一实施例中,处理器1470和1480分别是处理器1310、协处理器1345。
处理器1470和1480被示出分别包括集成存储器控制器(IMC)硬件1472和1482。处理器1470还包括点对点(P-P)接口1476和1478,作为它的总线控制器硬件的部分;类似地,第二处理器1480包括P-P接口1486和1488。处理器1470、1480可使用P-P接口电路1478、1488经由点对点(P-P)接口1450交换信息。如图14中所示,IMC 1472和1482将处理器耦合到相应存储器,也就是存储器1432和存储器1434,其可以是本地地附连到相应处理器的主存储器的部分。
处理器1470、1480可每个使用点对点接口电路1476、1494、1486、1498经由单独的P-P接口1452、1454与芯片组1490交换信息。芯片组1490可以可选地经由高性能接口1439与协处理器1438交换信息。在一个实施例中,协处理器1438是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器等。
(未示出的)共享的高速缓存可被包括在任一处理器中或在两个处理器外部,还经由P-P互连与处理器连接,使得如果处理器被置于低功率模式中,则任一或两个处理器的本地高速缓存信息可被存储在共享的高速缓存中。
芯片组1490可经由接口1496耦合到第一总线1416。在一个实施例中,第一总线1416可以是外围组件互连(PCI)总线或诸如PCI快速总线或另一第三代I/O互连总线之类的总线,但是本发明的范围不被如此限制。
如图14中所示,各种I/O设备1414连同总线桥接器1418可被耦合到第一总线1416,总线桥接器1418将第一总线1416耦合到第二总线1420。在一个实施例中,诸如协处理器、高吞吐量MIC处理器、GPGPU、加速器(诸如例如图形加速器或数字信号处理(DSP)硬件)、现场可编程门阵列或任何其它处理器之类的一个或多个附加处理器1415被耦合到第一总线1416。在一个实施例中,第二总线1420可以是低引脚计数(LPC)总线。在一个实施例中,各种设备可被耦合到第二总线1420,包括例如键盘和/或鼠标1422、通信设备1427和诸如盘驱动器或其它大容量存储设备之类的存储硬件1428,其可包括指令/代码和数据1430。进一步地,音频I/O 1424可被耦合到第二总线1420。注意,其它架构是可能的。例如,代替图14的点对点架构,系统可实现多点总线或其它这样的架构。
现在参考图15,所示出的是依照本发明的实施例的第二更特定的示例性系统1500的框图。图14和15中的相同元件具有相同的参考数字,并且已从图15省略图14的某些方面以便避免模糊图15的其它方面。
图15图示处理器1470、1480可分别包括集成存储器和I/O控制逻辑(“CL”)1472和1482。因此,CL 1472、1482包括集成存储器控制器硬件并包括I/O控制逻辑。图15图示不但存储器1432、1434被耦合到CL 1472、1482,而且I/O设备1514也被耦合到控制逻辑1472、1482。遗留I/O设备1515被耦合到芯片组1490。
现在参考图16,所示出的是依照本发明的实施例的SoC 1600的框图。图12中的类似元件具有相同的参考数字。并且,虚线框是更高级的SoC上的可选特征。在图16中,互连硬件1602被耦合到:应用处理器1610,其包括一个或多个核心1202A-N的集合和共享的高速缓存硬件1206;系统代理硬件1210;总线控制器硬件1216;集成存储器控制器硬件1214;一个或多个协处理器1620的集合,其可包括集成图形逻辑、图像处理器、音频处理器以及视频处理器;静态随机存取存储器(SRAM)硬件1630;直接存储器访问(DMA)硬件1632;以及用于耦合到一个或多个外部显示器的显示硬件1640。在一个实施例中,(多个)协处理器1620包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、嵌入式处理器等。
可以以硬件、软件、固件或这样的实现方法的组合来实现本文中所公开的机制的实施例。可以将本发明的实施例实现为在可编程系统上执行的程序代码或计算机程序,所述可编程系统包括至少一个处理器、(包括易失性和非易失性存储器和/或存储元件的)存储系统、至少一个输入设备和至少一个输出设备。
可以将诸如图14中图示的代码1430之类的程序代码应用于输入指令以执行本文中描述的功能并生成输出信息。输出信息可以以已知方式应用于一个或多个输出设备。出于本申请的目的,处理系统包括具有处理器的任何系统,所述处理器诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器。
程序代码可以以高级过程或面向对象的编程语言来实现以与处理系统通信。如果期望,则程序代码还可以以汇编或机器语言来实现。事实上,本文中描述的机制在范围上不限于任何特定编程语言。在任何情况下,语言可以是编译或解释语言。
至少一个实施例的一个或多个方面可通过存储在机器可读介质上的代表性指令来实现,所述代表性指令表示处理器内的各种逻辑,其当由机器读时使得机器制作用以执行本文中描述的技术的逻辑。这样的表示(被称为“IP核心”)可被存储在有形的机器可读介质上并被供应给各种客户或制造设施以加载到实际做出逻辑或处理器的制作机器中。
这样的机器可读存储介质可非限制性地包括由机器或设备所制造或形成的物品的非瞬时有形布置,其包括存储介质,诸如硬盘,包括软盘、光盘、紧致盘只读存储器(CD-ROM)、可重写紧致盘(CD-RW)和磁光盘的任何其它类型的盘;半导体设备,诸如只读存储器(ROM),诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)之类的随机存取存储器(RAM),可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM)、相变存储器(PCM);磁卡或光卡;或适合于存储电子指令的任何其它类型的介质。
相应地,本发明的实施例还包括非瞬时有形机器可读介质,所述介质包含指令或包含设计数据,诸如硬件描述语言(HDL),其定义本文中描述的结构、电路、装置、处理器和/或系统特征。这样的实施例还可被称为程序产品。
在一些情况下,可以使用指令转换器将指令从源指令集转换成目标指令集。例如,指令转换器可对指令进行翻译(例如,使用静态二进制翻译、包括动态编译的动态二进制翻译)、变形、仿真或以其它方式将指令转换成要由核心来处理的一个或多个其它指令。可以以软件、硬件、固件或其组合来实现指令转换器。指令转换器可在处理器上、离开处理器或部分在处理器上且部分离开处理器。
图17是根据本发明的实施例的对比软件指令转换器的使用的框图,所述软件指令转换器用以将源指令集中的二进制指令转换成目标指令集中的二进制指令。在图示的实施例中,指令转换器是软件指令转换器,但是替代地指令转换器可以以软件、硬件、固件或其各种组合来实现。图17示出可以使用x86编译器1704来编译用高级语言1702的程序以生成x86二进制代码1706,其可由具有至少一个x86指令集核心的处理器1716本机执行。具有至少一个x86指令集核心的处理器1716表示可以通过兼容地执行或以其它方式处理如下各项以便实现与具有至少一个x86指令集核心的Intel处理器基本上相同的结果而执行与具有至少一个x86指令集核心的Intel处理器基本上相同的功能的任何处理器:(1)Intel x86指令集核心的指令集的实质部分,或(2)目标是在具有至少一个x86指令集核心的Intel处理器上运行的应用或其它软件的对象代码版本。x86编译器1704表示可操作以生成x86二进制代码1706(例如,对象代码)的编译器,所述x86二进制代码1706可以在利用或不利用附加联接处理的情况下在具有至少一个x86指令集核心的处理器1716上执行。类似地,图17示出了可以使用替代指令集编译器1708来编译用高级语言1702的程序以生成替代指令集二进制代码1710,其可由不具有至少一个x86指令集核心的处理器1714(例如,具有执行加利福尼亚州森尼维耳市的MIPS Technologies的MIPS指令集和/或执行加利福尼亚州森尼维耳市的ARM Holdings的ARM指令集的核心的处理器)本机执行。指令转换器1712被用来将x86二进制代码1706转换成可由不具有x86指令集核心的处理器1714本机执行的代码。该经转换的代码不太可能与替代指令集二进制代码1710相同,因为有此能力的指令转换器难以做出;然而,经转换的代码将完成一般操作并由来自替代指令集的指令组成。因此,指令转换器1712表示软件、固件、硬件或其组合,其通过模拟、仿真或任何其它过程而允许不具有x86指令集处理器或核心的处理器或其它电子设备执行x86二进制代码1706。
尽管已经参考特定实现描述了一些实施例,但是根据一些实施例,其它实现是可能的。另外,在各图中图示的和/或在本文中描述的元件或其它特征的布置和/或顺序不需要以图示和描述的特定方式来布置。根据一些实施例,许多其它布置是可能的。
在图中示出的每个系统中,元件在一些情况下可能每个具有相同的参考编号或不同的参考编号,以暗示所表示的元件可能不同和/或类似。然而,元件可能足够灵活以具有不同的实现并且与在本文中示出或描述的系统中的一些或全部一起工作。在各图中示出的各种元件可能相同或不同。哪一个被称为第一元件和哪一个被称作第二元件是任意的。
在说明书和权利要求书中,可使用术语“耦合”和“连接”连同其派生词。应当理解,这些术语不意图作为彼此的同义词。倒不如说,在特定实施例中,“连接”可用来指示两个或更多个元件彼此直接物理或电接触。“耦合”可意味着两个或更多个元件直接物理或电接触。然而,“耦合”还可意味着两个或更多个元件彼此不直接接触,但是还仍然彼此合作或相互作用。
实施例是本发明的实现或示例。在说明书中对“实施例”、“一个实施例”、“一些实施例”或“其它实施例”的引用意味着结合实施例描述的特定特征、结构或特性被包括在本发明的至少一些实施例中,但是不一定被包括在本发明的所有实施例中。各种出现“实施例”、“一个实施例”或“一些实施例”不一定都指代相同的实施例。
并非在本文中描述和图示的所有组件、特征、结构、特性等都需要被包括在一个或多个特定实施例中。如果说明书陈述例如“可”、“可能”、“可以”或“能”包括组件、特征、结构或特性,则不要求包括该特定组件、特征、结构或特性。如果说明书或权利要求指代“一”或“一个”元件,则其不意味着仅存在一个元件。如果说明书或权利要求指代“附加”元件,则其不排除存在不止一个附加元件。
本发明的图示实施例的上面的描述,其包括在摘要中描述的事物,不意图是详尽的或将本发明限于所公开的精确形式。虽然为了说明性目的而在本文中描述了本发明的特定实施例和用于本发明的示例,但是如相关领域技术人员将认识到的,在本发明的范围内的各种等同的修改是可能的。
可以根据上面的详细描述对本发明做出这些修改。在以下权利要求书中使用的术语不应当被解释成将本发明限于在说明书和附图中公开的特定实施例。相反,本发明的范围要完全由以下权利要求书确定,以下权利要求书要依照建立的权利要求解释教条来解释。

Claims (25)

1.一种系统,包括:
多个节点,其中每个节点包括:
多个资源;
节点管理器,用以:
跟踪节点中可用的所述多个资源;
确定所述多个资源的不同的可能配置;以及
生成针对可能配置中的每个的性能估计;
配置管理器,用以:
接收基于性能要求集合来选择一个或多个节点的请求;
从每个节点接收所述多个资源的不同的可能配置和针对可能配置中的每个的性能估计;以及
循环访问所收集的配置和性能估计,以确定最佳地匹配性能要求集合的一个或多个节点配置。
2.根据权利要求1所述的系统,其中所述多个节点中的每个与池化节点管理器对应,其中池化节点管理器要从每个相应节点收集并向配置管理器提供所述多个资源的不同的可能配置和针对可能配置中的每个的性能估计。
3.根据权利要求1-2中任一项所述的系统,其中所述多个资源的不同的可能配置包括有效配置。
4.根据权利要求1-3中任一项所述的系统,其中所述多个资源的不同的可能配置包括最频繁使用的配置。
5.根据权利要求1-4中任一项所述的系统,其中所述多个资源的不同的可能配置包括特定配置。
6.根据权利要求1-5中任一项所述的系统,其中所述多个资源的不同的可能配置包括滑动规模配置,所述滑动规模配置包括所述多个资源的范围。
7.根据权利要求1-6中任一项所述的系统,其中生成针对可能配置中的每个的性能估计包括:
标识多个存储器资源中的易失性存储器集合和持久性存储器集合;
基于涉及存储器类型和交叉的信息,确定针对每个存储器集合的等待时间和/或带宽数据;
向等待时间和/或带宽数据分配权重;以及
使用分配的权重使针对每个存储器集合的等待时间和带宽数据标准化。
8.根据权利要求7所述的系统,其中配置管理器要从每个节点接收分配的权重以及等待时间和带宽数据。
9.根据权利要求1-8中任一项所述的系统,其中第一节点管理器用以:
从配置管理器接收基于配置输入来重新配置第一节点的重新配置请求,第一节点可由第一节点管理器配置;
基于配置输入,响应地重新配置第一节点中的所述多个资源;以及
向配置管理器提供通过/失败结果和实际性能数据,通过/失败结果和实际性能数据指示第一节点在依照配置输入进行重新配置之后的性能。
10.根据权利要求1-9中任一项所述的系统,其中所述多个资源包括:存储器资源、存储资源、核心资源、联网资源、I/O资源和/或计算资源。
11.根据权利要求1-10中任一项所述的系统,其中性能要求集合包括:存储器类型、存储器容量、存储器性能、存储器模式、存储容量、存储性能、核心计数、核心速度、网络性能、I/O性能、GPU性能和/或FPGA性能。
12.一种在节点管理器中实现的方法,方法包括:
跟踪节点中可用的多个资源;
确定所述多个资源的不同的可能配置;
生成针对可能配置中的每个的性能估计;以及
将所述多个资源的不同的可能配置和针对可能配置中的每个的性能估计提供给配置管理器。
13.根据权利要求12所述的方法,其中所述多个资源的不同的可能配置包括有效配置。
14.根据权利要求12-13中任一项所述的方法,其中所述多个资源的不同的可能配置包括最频繁使用的配置。
15.根据权利要求12-14中任一项所述的方法,其中所述多个资源的不同的可能配置包括特定配置。
16.根据权利要求12-15中任一项所述的方法,其中所述多个资源的不同的可能配置包括滑动规模配置,所述滑动规模配置包括资源的范围。
17.根据权利要求12-16中的任一项所述的方法,进一步包括:
标识多个存储器资源中的易失性存储器集合和持久性存储器集合;
基于涉及存储器类型和交叉的信息,确定针对每个存储器集合的等待时间和/或带宽数据;
向等待时间和/或带宽数据分配权重;以及
使用分配的权重使针对每个存储器集合的等待时间和带宽数据标准化。
18.根据权利要求17所述的方法,其中方法进一步包括从每个节点向配置管理器提供分配的权重以及等待时间和带宽数据。
19.根据权利要求12-18中的任一项所述的方法,进一步包括:
从配置管理器接收基于配置输入来重新配置节点的重新配置请求;
基于重新配置请求,响应地重新配置节点中的所述多个资源;以及
向配置管理器提供通过/失败结果和实际性能数据。
20.根据权利要求12-19中任一项所述的方法,其中所述多个资源包括:存储器资源、存储资源、核心资源、联网资源、I/O资源和/或计算资源。
21.一种在配置管理器中实现的方法,方法包括:
接收基于性能要求集合来选择一个或多个节点的第一请求;
从多个节点中的每个接收不同的可能资源配置的集合和针对集合中的可能配置中的每个的性能估计;以及
循环访问不同的可能资源配置的集合和性能估计,以确定最佳地匹配性能要求集合的一个或多个节点配置。
22.根据权利要求21所述的方法,其中性能要求集合包括:存储器类型、存储器容量、存储器性能、存储器模式、存储容量、存储性能、核心计数、核心速度、网络性能、I/O性能、GPU性能和/或FPGA性能。
23.根据权利要求21-22中的任一项所述的方法,进一步包括:
接收根据配置输入来配置所指定的节点的第二请求;
向所指定的节点发送重新配置请求,重新配置请求包括配置输入;以及
从所指定的节点接收通过/失败结果和实际性能数据,通过/失败结果和实际性能数据指示所指定的节点在依照配置输入进行重新配置之后的性能。
24.一种装置,包括:
用于跟踪节点中可用的多个资源的部件;
用于确定所述多个资源的不同的可能配置的部件;
用于生成针对可能配置中的每个的性能估计的部件;以及
用于将所述多个资源的不同的可能配置和针对可能配置中的每个的性能估计提供给配置管理器的部件。
25.一种装置,包括:
用于接收基于性能要求集合来选择一个或多个节点的第一请求的部件;
用于从多个节点中的每个接收不同的可能资源配置的集合和针对集合中的可能配置中的每个的性能估计的部件;以及
用于循环访问不同的可能资源配置的集合和性能估计以确定最佳地匹配性能要求集合的一个或多个节点配置的部件。
CN201711237007.5A 2016-12-31 2017-11-30 用于在机架规模环境中提供可重新配置的数据层的机制 Active CN108268421B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/396,562 US10929290B2 (en) 2016-12-31 2016-12-31 Mechanism for providing reconfigurable data tiers in a rack scale environment
US15/396562 2016-12-31

Publications (2)

Publication Number Publication Date
CN108268421A true CN108268421A (zh) 2018-07-10
CN108268421B CN108268421B (zh) 2024-03-29

Family

ID=62712441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711237007.5A Active CN108268421B (zh) 2016-12-31 2017-11-30 用于在机架规模环境中提供可重新配置的数据层的机制

Country Status (2)

Country Link
US (1) US10929290B2 (zh)
CN (1) CN108268421B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866750B2 (en) 2018-01-10 2020-12-15 EMC IP Holding Company LLC System and method for predicting data storage characteristics
US10671311B1 (en) 2018-01-10 2020-06-02 EMC IP Holding Company LLC System and method for dynamic data migration
US11082492B2 (en) 2018-01-10 2021-08-03 EMC IP Holding Company LLC System and method for dynamic backup sessions
US10757188B1 (en) * 2018-01-10 2020-08-25 EMC IP Holding Company LLC System and method for efficient data access for restores
US10698719B2 (en) 2018-04-27 2020-06-30 EMC IP Holding Company LLC System and method for virtual machine restoration
US11307796B2 (en) * 2018-09-27 2022-04-19 International Business Machines Corporation Mapping memory allocation requests using various memory attributes
US11875167B2 (en) 2020-03-23 2024-01-16 Nubix, Inc. Method for deploying containerized protocols on very small devices
US11874692B2 (en) * 2019-08-16 2024-01-16 Nubix, Inc. Method for deploying containerized security technologies on embedded devices
CN111885159B (zh) * 2020-07-22 2022-06-14 曙光信息产业(北京)有限公司 数据采集方法、装置、电子设备及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120310870A1 (en) * 2011-05-31 2012-12-06 Oracle International Corporation Application configuration generation
CN102945139A (zh) * 2011-09-12 2013-02-27 微软公司 存储设备驱动器和集群参与
CN103167021A (zh) * 2013-02-01 2013-06-19 浪潮(北京)电子信息产业有限公司 资源配置方法和装置
US20130219068A1 (en) * 2012-02-21 2013-08-22 Microsoft Corporation Predicting datacenter performance to improve provisioning
CN104106051A (zh) * 2012-02-09 2014-10-15 西里克斯系统公司 标记云计算环境中的物理资源
CN104981783A (zh) * 2013-03-07 2015-10-14 思杰系统有限公司 在云计算环境中的动态配置
US9239784B1 (en) * 2013-06-05 2016-01-19 Amazon Technologies, Inc. Systems and methods for memory management
CN105446813A (zh) * 2014-05-30 2016-03-30 华为技术有限公司 一种资源分配的方法及装置
CN105516242A (zh) * 2015-11-23 2016-04-20 华为技术有限公司 一种存储资源分配方法及存储资源分配系统
CN105723338A (zh) * 2013-11-12 2016-06-29 微软技术许可有限责任公司 构建虚拟主板和虚拟存储设备
US20170316079A1 (en) * 2016-04-27 2017-11-02 Oracle International Corporation Scalable tri-point arbitration and clustering

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7324403B2 (en) * 2004-09-24 2008-01-29 Intel Corporation Latency normalization by balancing early and late clocks
US8316124B1 (en) * 2008-09-29 2012-11-20 Amazon Technologies, Inc. Managing network data display
US20110022907A1 (en) * 2009-06-23 2011-01-27 StarDFX Technologies, Inc. FPGA Test Configuration Minimization
US9037722B2 (en) * 2010-05-07 2015-05-19 Salesforce.Com, Inc. Resolving information in a multitenant database environment
US9600311B2 (en) * 2012-03-08 2017-03-21 Nec Corporation Virtual-machine managing device and virtual-machine managing method
CN106575248A (zh) * 2014-05-18 2017-04-19 周凯 性能测试系统和方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120310870A1 (en) * 2011-05-31 2012-12-06 Oracle International Corporation Application configuration generation
CN102945139A (zh) * 2011-09-12 2013-02-27 微软公司 存储设备驱动器和集群参与
CN104106051A (zh) * 2012-02-09 2014-10-15 西里克斯系统公司 标记云计算环境中的物理资源
US20130219068A1 (en) * 2012-02-21 2013-08-22 Microsoft Corporation Predicting datacenter performance to improve provisioning
CN103167021A (zh) * 2013-02-01 2013-06-19 浪潮(北京)电子信息产业有限公司 资源配置方法和装置
CN104981783A (zh) * 2013-03-07 2015-10-14 思杰系统有限公司 在云计算环境中的动态配置
US9239784B1 (en) * 2013-06-05 2016-01-19 Amazon Technologies, Inc. Systems and methods for memory management
CN105723338A (zh) * 2013-11-12 2016-06-29 微软技术许可有限责任公司 构建虚拟主板和虚拟存储设备
CN105446813A (zh) * 2014-05-30 2016-03-30 华为技术有限公司 一种资源分配的方法及装置
CN105516242A (zh) * 2015-11-23 2016-04-20 华为技术有限公司 一种存储资源分配方法及存储资源分配系统
US20170316079A1 (en) * 2016-04-27 2017-11-02 Oracle International Corporation Scalable tri-point arbitration and clustering

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LLORCA, J ET AL.: "Energy Efficient Dynamic Content Distribution", IEEE *
王剑冰: "一种高并发分布式缓存服务架构", 黑龙江科技信息, vol. 31 *
王观武;杜孔飞;李思昆;: "应用定制可重构流水线的动态存储管理", 计算机研究与发展, no. 2 *

Also Published As

Publication number Publication date
US20180188989A1 (en) 2018-07-05
US10929290B2 (en) 2021-02-23
CN108268421B (zh) 2024-03-29

Similar Documents

Publication Publication Date Title
CN108268421A (zh) 用于在机架规模环境中提供可重新配置的数据层的机制
CN108268282A (zh) 用以检查和存储对存储器地址是否在持久存储器中的指示的处理器、方法、系统和指令
CN103946826B (zh) 用于在公共存储器通道上实现多级存储器层级的设备和方法
CN104115129B (zh) 用于从处理器到存储器子系统智能刷新数据的系统和方法
US10078593B2 (en) Multiple-core computer processor for reverse time migration
US7797503B2 (en) Configurable memory system and method for providing atomic counting operations in a memory device
CN103562892B (zh) 配置存储级内存命令的系统和方法
CN104025060B (zh) 支持近存储器和远存储器访问的存储器通道
CN106716361B (zh) 用于运行时例程冗余跟踪的编译器高速缓存
CN104756090B (zh) 提供扩展的缓存替换状态信息
CN108701027A (zh) 用于将比原生支持的数据宽度更宽的数据原子地存储到存储器的处理器、方法、系统和指令
CN104025067B (zh) 具有由向量冲突指令和置换指令共享的全连接互连的处理器
CN105453030B (zh) 向较宽的寄存器进行依赖于模式的部分宽度加载的处理器、方法和系统
CN105745630B (zh) 用于在集群宽执行机器中的存储器访问的指令和逻辑
CN106104488A (zh) 用于支持任务间通信的基于硬件的原子操作
CN108351830A (zh) 用于存储器损坏检测的硬件装置和方法
TWI712952B (zh) 持續確定處理器、方法、系統及指令
CN110321299A (zh) 用于检测重复数据访问并自动地将数据加载到本地高速缓存中的系统、方法和装置
CN108710582A (zh) 用于基于局部性的指令处理的选择性启用的系统、设备和方法
CN105474183B (zh) 存储器管理
CN109416640A (zh) 孔径访问处理器、方法、系统和指令
CN108885586A (zh) 用于以有保证的完成将数据取出到所指示的高速缓存层级的处理器、方法、系统和指令
US20140115294A1 (en) Memory page management
CN106575279B (zh) 可编程平台上的加速器架构
CN106716949A (zh) 减少具有扩展mesi协议的多处理器系统的互连流量

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant