CN105988877B - 基于硬件的设备间资源共享 - Google Patents
基于硬件的设备间资源共享 Download PDFInfo
- Publication number
- CN105988877B CN105988877B CN201610087356.2A CN201610087356A CN105988877B CN 105988877 B CN105988877 B CN 105988877B CN 201610087356 A CN201610087356 A CN 201610087356A CN 105988877 B CN105988877 B CN 105988877B
- Authority
- CN
- China
- Prior art keywords
- equipment
- configuration
- module
- hardware resource
- processing module
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Sources (AREA)
Abstract
本公开涉及基于硬件的设备间资源共享。例如,远程编排器(RO)可提供致使设备使至少一个硬件资源对其他设备可用的指令。该设备中的RO模块可与该RO交互并且可基于从该RO接收的指令配置该设备中的配置模块。当该设备从关闭状态转变到开启状态时,该配置模块可设置设备配置。该设备还可包括处理模块,该处理模块用于基于该设备配置、接口技术(IT)和至少一个硬件资源处理数据。该接口技术可允许该处理模块与该至少一个硬件资源交互。该RO模块可将该IT配置为基于这些指令允许该至少一个硬件资源本地操作或远程操作。
Description
技术领域
本公开涉及资源分配,并且更具体地涉及能够利用基于硬件的分区与其他设备共享硬件资源的设备。
背景
扩展“基于云的”数据处理解决方案(软件即服务(SaaS)等等)已经将用于在线交互的大量数据处理从用户设备转移开并转移入位于远处的数据中心。示例数据中心可包括联网数据处理设备或“节点”(例如,服务器)阵列以便单独地或以联合的方式(例如,如在高性能计算(HPC)架构中那样)处理数据。数据中心可利用“软件定义”方法增加数据处理、存储、联网及其他硬件资源的灵活性。例如,可通过软件虚拟化技术借助于硬件资源使能软件定义操作。虚拟机(VM)可仿真物理硬件但是实际上是在VM管理器(VMM)或管理程序的控制下在硬件平台上执行的编程构造。现有的软件定义实现方式可使用例如硬件分区、虚拟化(例如,英特尔公司的VT-x或VT-d技术)、机架规模架构(RSA)等等。
然而,即使VM允许对硬件资源的共享访问的外观,处理和输入/输出(I/O)硬件仍专用于实现所请求的功能的特定节点。现有的分区和虚拟化解决方案可仅仅提供访问和/或控制平台级资源的非常粗糙的粒度。软件虚拟化可允许子套接口级别分区。子套接口级别分区可包括分配来自相同的物理封装的处理资源(例如,核)以便执行单独的任务。例如,VMM可为VM或操作系统(OS)的实例可在其中执行的每个核创建逻辑分区。尽管这种操作的益处是明显的,软件虚拟化还可抽象并且因此使得有价值的硬件功能不可用。RSA可允许某些平台级别资源共享(例如,存储器可被池化并且跨多个节点共享)但是在套接口内部不存在可用的细级别分区。没有现有技术允许在节点之间共享处理或I/O硬件资源或者允许将I/O硬件资源分配给其中多个节点可共享访问的可用资源池。SW虚拟化目前是计算和IO资源的子套接口级别分区的唯一选项。没有现有架构能够允许经由子套接口级别硬件接口技术(IT)进行硬件资源的池化共享等等,包括例如串行高级技术附件(SATA)、千兆字节以太网(GbE)、串行附件小型计算机系统接口(SAS)、通用串行总线(USB)或现有的或者在未来开发的任何其他IT。
附图简要描述
所要求保护的主题的各实施例的特征和优点将随着以下详细描述的进行并且当参照附图时变得明显,其中相似的参考号指示相似的部件,并且在附图中:
图1示出根据本公开的至少一个实施例的基于硬件的设备间资源共享的示例系统;
图2示出根据本公开的至少一个实施例的可用设备的示例配置。
图3示出根据本公开的至少一个实施例的基于硬件的设备间资源共享的示例实现方式;以及
图4示出根据本公开的至少一个实施例的基于硬件的设备间资源共享的示例操作。
尽管将参考说明性实施例进行以下详细描述,其许多替代、修改和变化将对本领域普通技术人员明显。
详细描述
本公开涉及基于硬件的设备间资源共享。在至少一个实施例中,远程编排器(RO)可提供致使设备使至少一个硬件资源对其他设备可用的指令。例如,该设备中的RO模块可与该RO交互。该RO模块可基于从该RO接收的指令配置该设备中的配置模块。当该设备从关闭状态转变到开启状态时,该配置模块可然后设置设备配置(例如,“分区”配置或“合并”配置)。该设备还可包括处理模块,该处理模块用于基于该设备配置、接口技术(IT)和至少一个硬件资源处理数据。该接口技术可允许该处理模块与该至少一个硬件资源交互。该RO模块可然后基于这些指令将该IT配置为允许该至少一个硬件资源本地操作或远程操作。
在至少一个实施例中,能够进行基于硬件的设备间资源共享的示例设备可包括例如配置模块、处理模块、至少一个硬件资源、接口技术以及RO模块。该配置模块可以用于设置设备配置。该处理模块可以用于至少基于该设备配置处理数据。该接口技术可以用于允许处理模块与该至少一个硬件资源交互。该RO模块还可用于至少从远程编排器接收至少一个指令、基于该至少一个指令配置该配置模块以及基于该至少一个指令配置该接口技术以便允许该至少一个硬件资源本地操作或远程操作。
在至少一个实施例中,该配置模块可至少包括用于当该设备从关闭状态转变到开启状态时设置该设备配置的固件。在设置该设备配置时,该配置模块可以用于将该设备设置为在分区配置或合并配置中操作。在配置该接口技术时,该RO模块可以用于将该接口技术的配置空间中的至少一个位设置为指示该至少一个硬件资源本地操作或远程操作。例如,当该至少一个硬件资源远程操作时,该接口技术可以用于将该至少一个硬件资源至少从该处理模块隐藏。
在至少一个实施例中,当该至少一个硬件资源远程地操作时,该至少一个硬件资源可由至少一个其他设备中的至少一个其他处理模块访问。当该至少一个硬件资源远程地操作时,该RO模块可以用于将该接口技术配置为在该至少一个硬件资源和该至少一个其他处理模块之间路由消息。该RO模块可以进一步用于基于该设备配置将该处理模块配置为直接与该至少一个其他处理模块交互。该配置模块可以用于基于该设备配置禁用该处理模块的处理器高速缓存或存储器中的至少一个与该至少一个其他处理模块之间的一致性协议。
在至少一个实施例中,该设备可以进一步包括交互监视器,用于关于该设备和该至少一个其他设备之间的交互与该远程编排器通信。该接口技术可以是例如外围组件互连Express(PCIe)接口技术。在至少一个示例实现方式中,该设备可以在进一步包括该远程编排器的机架中。而且,该机架可以进一步包括该至少一个其他设备。根据本公开,用于基于硬件的设备间资源共享的示例方法可包括从远程编排器在设备中接收至少一个指令、基于该至少一个指令在该设备中的配置模块中配置设备配置以及基于该至少一个指令将该设备中的接口技术配置为允许该设备中的至少一个硬件资源本地操作或远程操作。
图1示出根据本公开的至少一个实施例的基于硬件的设备间资源共享的示例系统。系统100可包括例如RO 102、设备104A、设备104B...设备104n(统称为“设备104A...n”)。尽管为了清晰的目的已经在图1中示出了仅三个设备104A...n,然而系统100的实际实现方式可基于例如包括RO102和设备104A...n的数据中心的大小/类型、系统100的设计用途(例如,HPC、云计算装置、SaaS等等)或其他因素包括更多或更少的设备104A...n。
RO 102可包括被配置成用于“编排”设备104A...n的操作的至少一个计算设备(例如,计算机、服务器、操作站等等)。编排可包括但不限于确定设备104A...n中的硬件资源、确定如何共享每个设备104A...n中的硬件资源、就配置(例如,有待共享的硬件资源)指示每个设备104A...n以及管理设备104A...n之间的交互。在此所引用的硬件资源可包括个体组件(例如,处理器、存储器、接口等等)、芯片组、多芯片模块(MCM)、处于模块、卡、插件等等形式的附加设备。在操作示例中,RO 102可被赋予至少一个目标的任务,诸如最大化系统100中的数据处理效率、消除系统100中的数据处理瓶颈、容纳系统100中的全新数据处理任务等等,并且在此方面,可向设备104A...n发布重新配置对硬件资源的访问的指令。根据本公开,每个设备104A...n中的硬件资源可被灵活地重新分配给子套接口级别而无需对软件分区的物理重新配置或依赖。
现在将描述设备104A的还可应用于设备104B...n的示例配置。设备104A可至少包括RO模块106、配置模块108、处理模块110、可对应于每个硬件资源(HR)116A、HR 116B、HR116C、HR 116D...HR 116n(统称为“HR 116A...n”)的IT 112A、IT 112B、IT 112C、IT112D...112n(统称为“IT 112A...n”)。设备104A中的HR 116A...n的实际数量可取决于诸如设备类型、大小、配置等等因素而不同。例如,作为独立式计算设备(例如,具有全塔情况)的设备104A可包括更好的功率、容量、冷却等等来处理比当设备104A是更紧凑的机架或刀片服务器时更大种类和/或更大数量的HR 116A...n(例如,处理器、驱动器、卡等等)。在至少一个示例实现方式中,RO 102和/或设备104A可全部是相同装置中(例如,在相同的房间中、在相邻的机架中、在相同的机架中等等)的机架/刀片服务器。
在至少一个实施例中,RO模块106可被配置成用于与RO 102交互。例如,RO模块106可接收包括用于配置设备104A的指令的“带外”数据。如在此所引用的,带外可指示与设备104A通常与设备104B...n通信的方式分离的通信方式。例如,专用通信通道可存在于每个设备104A...n的RO 102与RO模块106之间。当设备104A处于关闭状态(例如,关机、休眠等等)或处于开启状态(例如,活跃)时,RO模块106可接收指令。在接收到指令之后,RO模块106可基于这些指令对配置模块108进行配置。配置模块108可包括可重写非易失性(NV)存储器,例如在可重写非易失性(NV)存储器上是用于当设备104A从引导、重新引导变活跃、从休眠唤醒等等时在设备104A中设置模式的编码固件。在至少一个实施例中,配置模块108可将设备104A配置成在或者“分区”配置或者“合并”配置。分区配置可以是“典型的”配置,其中,设备104A被配置成用于维护所有HR 106A...n的所有权,并且其中,在给定现有的共享技术(诸如虚拟化、RSA等等)的情况下,共享可以是可能的。根据本公开,合并配置可涉及设备104A被重新配置成使用如下所述的基于硬件的设备间资源共享在子套接口级别共享硬件资源。
处理模块110可包括至少一个数据处理器以及支持该至少一个数据处理器所需的任何电路。在图2中更详细地讨论了处理模块110的示例内容。在合并配置中,处理模块110可被配置成用于直接与设备104B...n中的其他处理模块110交互。为了在此解释的目的,设备104A中的“IT”可包括允许HR 116A...n与设备104A中的其他资源交互的设备(例如,套接口、总线、支持电路等等)和软件(例如,驱动器、配置寄存器等等)两者。例如,给定采用PCIe接口技术,IT 112A...n可以是与HR 116A...n安装在其中的物理套接口相对应的PCIe根端口。尽管PCIe在此被用作示例,根据本公开的实施例不限于仅利用PCIe实现。根据本公开,还可采用具有相似操作特点的其他IT。在合并配置中,RO模块106可将IT 112A...n配置为允许HR 116A...n本地操作或远程操作。设备104A可维护被配置成本地操作的任何HR116A...n的访问和所有权,而其他设备(例如,设备104B...n)中的处理模块110可以能够访问并控制被配置成远程操作的任何HR116A...n。在至少一个实施例中,RO模块106可在IT112A...n的配置空间中设置用于指示本地或远程操作的位。例如,IT 112A、IT 112C和IT112D在图1中用“L”标志114示出以便指示RO模块106已经将配置空间中的位设置为允许HR116A、HR 116C和HR 116D本地操作,而IT 112B和IT112n用“R”标志114示出以便指示配置空间中的位已经被设置为允许HR116B和HR 116n远程操作。以此方式,可单独地确定并配置对HR 116A...n中的每一个的共享。
在操作示例中,RO 102可至少向RO模块106提供配置设备104以便进行合并操作的指令。RO模块106可设置配置模块108中的合并配置,配置模块108可在上电时、从休眠恢复时等等继续配置设备104A以便进行合并操作。RO模块106还可基于从RO 102接收的指令配置IT 112A...n以便进行本地或远程操作。例如,如标志114所示出的,IT 112A、IT 112C和IT 112D可被配置成用于允许HR 116A、HR 116C和HR 116D本地地操作,并且结果是,HR116A、HR 116C和HR 116D可由处理模块110访问。相比之下,IT 112B和IT 112n可被配置成用于允许HR 116B和HR 116n远程地操作。在至少一个实施例中,HR 116B和HR 116n可在设备104A的引导期间至少从处理模块110隐藏并且因此将被认为是本地不可访问的。如图1所示,至少设备104B可能访问HR 116B,并且至少设备104n可能访问HR 116n。同样,设备104A可能访问被配置成用于在设备104n中远程地操作的HR,设备104B可能访问被配置成用于在设备104B中远程地操作的HR等等。在至少一个实施例中,可通过在每个设备中操作的处理模块110之间的直接链路促进访问其他设备中的HR。将参照图3中示出的实现方式讨论不同处理模块110之间的交互示例。
图2示出根据本公开的至少一个实施例的可用设备的示例配置。在项目编号之后包括单引号(例如,104A’)指示正在示出该项目的示例实施例。例如,设备104A’可能执行在图1中公开的活动中的任何活动。然而,设备104A’仅被呈现为可在根据本公开的实施例中使用的装置的示例,并且不旨在将各个实施例中的任何实施例限制为任何具体的实现方式。而且,在图2中示出的设备104A’的示例配置还可应用于设备104B...n中的一个或多个。
设备104A’可包括例如用于管理该设备的操作的系统模块200。系统模块200可包括例如处理模块110’、存储器模块202、功率模块204、用户接口模块206以及通信接口模块208。设备104A’可进一步包括通信模块210和RO模块106’。尽管通信模块210和RO模块106’被示出为与系统模块200分离,然而仅仅处于解释的目的提供在图2中示出的示例配置。与通信模块106和/或RO模块106’相关联的某些或全部功能还可结合在系统模块200中。
在设备104A’中,处理模块110’可包括位于分离的组件中的一个或多个处理器,或者,可包括在单个组件中(例如,在片上系统(SoC)配置中)实施的一个或多个处理核以及任何处理器相关的支持电路(例如,桥接接口等等)。示例处理器可包括但不限于可从英特尔公司获得的各种基于x86的微处理器,包括奔腾、至强、安腾、赛扬、凌动、夸克、i系列核、M系列核产品族、高级RISC(例如,精简指令集计算)机器或“ARM”处理器等等中的那些。支持电路的示例可包括芯片组(例如,可从英特尔公司获得的北桥、南桥等等),该芯片组被配置成用于提供处理模块110可通过其与可在设备104A’内在不同速度下、在不同总线上等等操作的其他系统组件交互的接口。与支持电路相关联的某些或全部功能还可被包括在与处理器相同的物理封装中(例如,诸如包括可从英特尔公司获得的Sandy Bridge处理器族中)。
处理模块110’可被配置成用于在设备104A’中执行各种指令。指令可包括程序代码,该程序代码被配置成用于致使处理模块110’执行与读取数据、写入数据、处理数据、格式化数据、转换数据、变换数据等等相关的活动。信息(例如,指令、数据等等)可被存储在存储器模块202中。存储器模块202可包括固定或可移除格式的随机存取存储器(RAM)和/或只读存储器(ROM)。RAM可包括被配置成用于在设备104A’的操作期间保持信息的易失性存储器,诸如例如静态RAM(SRAM)或动态RAM(DRAM)。ROM可包括被配置成用于当设备104A’激活时提供指令的基于BIOS、UEFL等等的非易失性(NV)存储器模块、诸如电可编程ROM(EPROM)、闪存等等的可编程存储器。其他固定和/或可移除存储器可包括但不限于:磁存储器,诸如例如软盘、硬盘驱动器等等;电子存储器,诸如固态闪存(例如,嵌入式多媒体卡(eMMC)等等)、可移除存储器卡或棒(例如,微型存储设备(uSD)、USB等等);光学存储器,诸如基于致密盘的ROM(CD-ROM)、数字视频盘(DVD)、蓝光盘等等。
功率模块204可包括内部电源(例如,电池、燃料电池等等)和/或外部电源(例如,电磁或太能发电机、电网、外部燃料电池等等)以及被配置成用于为设备104A’提供操作所需的功率的模块。用户接口模块206可包括用于允许用户与设备104A’交互的硬件和/或软件,诸如各种输入机制(例如,麦克风、开关、按钮、旋钮、键盘、扬声器、触敏表面、一个或多个被配置成用于捕获图像和/或感测接近、距离、运动、姿势、朝向、生物计量数据等等的传感器)和各种输出机制(例如扬声器、显示器、发光/闪烁指示器、用于振动、运动等等的机电组件)。用户接口模块206中的硬件可结合在设备104A’中和/或可经由有线或无线通信介质耦合到设备104A’。用户接口模块206’可以在某些情况下(诸如其中设备104A’是不包括用户接口模块206而是依赖于用于用户接口功能的另一个设备(例如,管理终端)的服务器(例如,机架式服务器、刀片式服务器等等))的情况下是可选的。
通信接口模块208可被配置成用于管理通信模块210的分组路由和其他控制功能,通信模块210可包括被配置成用于支持有线和/或无线通信的资源。在某些情形下,设备104A’可包括由中央通信接口模块208管理的多于一个通信模块210(例如,包括用于有线协议和/或无线协议的分离的物理接口模块)。有线通信可包括串行和并行有线介质,诸如例如,以太网、USB、火线、Thunderbolt、数字视频接口(DVI)、高清晰多媒体接口(HDMI)等等。无线通信可包括例如近距离无线介质(例如,射频(RF),诸如基于RF识别(RFID)或近场通信(NFC)标准、红外(IR)等等)、短距离无线介质(例如,蓝牙、WLAN、Wi-Fi等等)、长距离无线介质(例如,蜂窝广域无线电通信技术、基于卫星的通信等等)、经由声波的电子通信等等。在一个实施例中,通信接口模块208可被配置成用于防止通信模块210中活跃的无线通信彼此干扰。当执行该功能时,通信接口模块208可基于等待传输的消息的相对优先级调度通信模块210的活动。尽管在图2中公开的实施例示出通信接口模块208与通信模块210分离,然而还有可能的是将通信接口模块208和通信模块201的功能结合到同一模块中。
根据本公开,RO模块106’可至少与系统模块200、存储器模块202和通信模块201交互。在操作示例中,RO模块106’可经由通过通信模块201进行的有线和/或无线通信与RO102交互。在经由通信模块201从RO102接收到指令之后,RO模块106’可配置存储器模块202中的配置模块108’。而且,RO模块106’可通常与系统模块200中的IT 112A...n交互(未在图2中示出)以便将IT 112A…n配置为允许HR 116A…n本地或远程操作和/或还允许设备104A’访问可从其他设备获得的远程HR。
图3示出根据本公开的至少一个实施例的基于硬件的设备间资源共享的示例实现方式。示例设备104A’和示例设备104B’在图3中被示出为交互,其描述可参考英特尔公司开发的各个产品、技术等等。尽管这些应用可用作从其理解在图3中示出的交互的容易理解的示例,它们不旨在将根据本公开的实施例限制为任何具体实现方式、实现技术等等。
现有的计算设备(例如,服务器)可支持“分区”配置,其中,包含两个节点的平台可以被硬分区到两个分离的平台中。这种分区是“硬的”,因为这两个单节点平台之间不存在任何HR 116A…n共享。软件虚拟化(例如,经由VM)可提供某种共享能力但是可以消除访问有价值的硬件功能的能力。PCIe交换机可以能够在细粒度水平共享硬件资源,但是这种解决方案可能增加在系统级别需要的离散组件总数。根据本公开,可以用通过使得任何节点或分区能够物理地将所选的IT 112A…n(例如,PCIe根端口层级或PCIe设备)重新分配给任何其他节点或分区所支持的HR 116A…n的池化和共享增强传统的硬分区。在至少一个实施例中,分区可被限制为仅仅一致域,并且可以与一个节点或分区共享物理地在另一个节点或分区中实现的硬件资源(诸如PCIe根端口和/或PCIe设备)。
在现有的分区方法中,可禁用点到点处理器连接技术,诸如英特尔公司开发的快速路径互连(QPI)、凯撒技术互连(KTI)、同样由英特尔公司开发的开放核连接技术。更具体地,可不利用允许处理器在分区节点之间直接传输并接收消息的QPI/KTI链路。然而,根据本公开,在池化资源架构中,可在节点或分区之间采用QPI/KTI链路以便使得能够共享HR116A…n。在至少一个实施例中,可在没有用于跨分区维护一致性的特征的情况下采用QPI/KTI。
在图3中示出设备104A’和104B’的示例实现方式。设备104A’可包括例如北管芯300A和南管芯302A。在至少一个实施例中,北管芯300A可经由例如英特尔公司开发的直接媒体接口(DMI)与南管芯302A通信。北管芯300A(例如,北桥)可包括通常在微处理器组件、芯片组、MCM等等中发现的组件。例如,北管芯300A可包括一个或多个处理核304A、存储器控制器306A和PCIe配置空间308A。存储器控制器306A可控制设备104A’中的存储器的数据访问操作。PCIe配置空间308A可控制如何至少根据数据路由配置PCIe根端口(例如,与设备104A’中的物理PCIe插槽相对应)以及集成和/或离散PCIe I/O设备。南管芯302A(例如,南桥)可包括通常与设备104A’的通用I/O功能相关联的组件。南管芯302A还可被称为平台控制器中枢(PCH)。例如,南管芯302A可包括管理引擎(ME)310A、功率管理控制器(PMC)312A和交互监视器314A。ME 310A可包括与图1中的RO模块106相对应的独立式处理器。例如,ME310A可以能够甚至在设备104A’的剩余部分不活跃时接收OOB网络通信(例如,从远程编排器102)。PMC 312A可管理包括HR 116A…n的设备104A’的功率操作。在至少一个实施例中,交互监视器314A可监视节点(例如,设备104A’和104B’)之间的交互并且可向RO 102提供有关这些交互的信息。尽管未在图3中示出,根据本公开,作为PCH操作的南管芯302A可进一步包括SATA控制器、USB控制器、以太网控制器、增强SPI低引脚数总线串行外围接口(eSPI/LPC)、通用异步接收器/发射器(UART)以及其他通信主/从接口。相应的元件300B至314B可对设备104B’执行与以上结合设备104A’描述的相同的或类似的操作。
现在将讨论其中设备104A’可被配置成用于至少与设备104B’的合并操作的操作示例。尽管将结合设备104A’呈现这些操作,它们等效地可应用于设备104B’。如在图3中“1”处所示,可在设备104A’处接收包括“分区”或“合并”的指令的OOB数据。例如,RO 102可向ME310A传达设备104A’将在传统/非传统对称多处理(SMP)配置中或者在共享硬件配置中(例如,合并)独立地操作(例如,分区)。这种交互可在设备104A’在S5状态(例如,关机)中时发生。当设备104A’转变到S0(例如,开机状态)时,ME 310A可通过状态寄存器向BIOS(例如,配置模块108)指示操作模式。如在图3中“2”处所示,RO 102还可向ME 310A指示哪些PCIe根端口和/或本地集成/离散PCIe I/O设备被分配给远程节点(例如,设备104B’)。RO 102还可列举本地PCIe IO设备已经被重新分配给哪个远程节点(例如,并且可同样通知远程节点远程操作的PCIe IO设备已经被分配给它们)。在至少一个实施例中,ME 310A可针对所有PCIe根端口并针对所有PCIe集成/离散设备设置PCIe配置空间308A中的本地/远程(L/R)位。
在设备104A’从关闭状态(例如,S4或S5)转变到开启状态(例如,S0)之后,ME 310A可针对已经被重新分配给远程节点(例如,设备104B’)的每一个PCIe根端口和/或集成/离散PCIe设备将集成I/O(IIO)路由位设置为将所有I/O操作重定向或重新映射到特定的KTI/QPI链路编号。例如,在每一个节点中,IIO功率控制单元(PCU)可基于远程节点ID(例如,标识共享HR 116A…n的设备(诸如设备104B’))确定到远程PCIe I/O设备的路径。IIO可被修改为基于路径从/向远程节点路由例如PCIe配置周期、PCIe供应商定义消息、直接存储器访问(DMA)和存储器映射I/O(MMIO)周期。在至少一个实施例中,传统INTR引脚可能不受支持以便避免中断路由,除非可仍支持消息信令中断(例如,MSI-X扩展)。IIO可旁路远程设备事务的转换后备缓冲器(TLB)。
如在图3中“3”处所示,PMC 312A可在PCIe配置空间308A中隐藏具有“R”配置的设备。隐藏可包括将IT 112A…n的配置改变为致使HR116A…n对于设备104A’不可见。结果是,如果其被分配为给远程节点,本地BIOS将不发现或列举PCIe根端口或PCIe组件/设备。如图3中“4”处所示,在每个节点中,BIOS应当配置QPI/KTI连接但是可禁用节点之间的QPI/KTI上的高速缓存/存储器一致性协议。IIO中的可编程的精确寄存器可以是非架构的但是可致使BIOS禁用跨节点的所有监听并且因此每个节点可以是其自身的一致性域。北管芯300A可然后开始通过如在图3中“5”处所示的OPI/KTI链路至少与北管芯300B交互。如图3中“6”处所示,交互监视器314A可用于作为通用OOB数据消息传送引擎处理节点内交互。在至少一个实施例中,IIO可扩展以便重新路由经由OPI/KTI连接到设备104A’的设备的远程访问服务(RAS)/错误处理、安全性和功率管理消息。重置序列化也可被扩展以便支持池化/共享资源。尽管使用QPI/KTI可利用现有技术,可通过其他现有连接技术、定制连接技术、通用工业标准实现方式等等实现未来连接。
图4示出根据本公开的至少一个实施例的基于硬件的设备间资源共享的示例操作。在操作400中,可从RO接收指令(例如,到设备中的RO模块中)。在操作402中,该设备可从关闭状态(例如,S4或S5)转变到开启状态(例如,S0)。在操作404中,从RO接收的指令可用于配置该设备中的配置模块(BIOS)。然后可在操作406中确定该设备是否已经被指示在合并配置中操作。如果在操作406中确定该设备不应当在合并配置中操作,则在操作408中,该设备的开机可继续以便进行分区操作。
在操作406中确定该设备应当在合并配置中操作之后,可在操作410中进一步确定该设备中的至少一个HR是否将与至少一个其他设备共享(例如,基于从RO接收的指令)。如果在操作410中确定该设备中的至少一个RO将被共享,则在操作412中可在IT配置空间中配置本地(L)或远程(R)位。设置L/R位可包括为每一个HR设置一个位(例如,“1”指示本地而“0”指示远程)或者为每一个HR设置不同的位。在操作414中,可为已经被标志进行远程操作的每一个HR配置路由(例如,PCIe、IIO、MMIO、DMA、错误处理等等),并且另外,远程地操作的每一个HR可被隐藏以便防止它们被该设备在引导期间识别为可用的HR。
在操作410或操作414中的“否”确定之后可进一步在操作416中确定该设备是否应当被配置成用于访问另一个设备中的远程HR(例如,基于从RO接收的指令)。如果在操作416中确定将访问至少一个远程HR,则在操作418中可在该设备中设置路由以便至少允许该设备中的处理模块访问远程HR。在操作410或操作414中的“否”确定之后可以是操作420,其中,可配置处理模块间通信,包括例如,配置QPI/KTI链路、禁用高速缓存/存储器一致性协议、配置中断路由等等。在操作422中,交互监视器可被使能以便管理并报告节点之间的交互。在操作424中,开机可在该设备中继续以便进行合并操作。
尽管图4示出了根据实施例的各操作,将要理解的是在图4中描绘的所有操作对于其他实施例而言不是全部必需的。实际上,在此充分考虑了在本公开的其他实施例中,在图4中描绘的操作和/或在此描述的其他操作可以用未在任何附图中明确示出的方式结合,但是仍充分地与本公开保持一致。因此,涉及未在一个附图中准确示出的特征和/或操作的权利要求被认为在本公开的范围和内容内。
如在本申请中和在权利要求书中所使用的,用术语“和/或”连结的项目列表可意指所列出的项目的任何组合。例如,短语“A、B和/或C”可指A;B;C;A和B;A和C;B和C;或A、B和C。如在本申请中和在权利要求书中所使用的,用术语“...中的至少一个”连结的项目列表可意指所列出的项目的任何组合。例如,短语“A、B或C中的至少一个”可指A;B;C;A和B;A和C;B和C;或A、B和C。
如在此在任何实施例中所使用的,术语“模块”可指代被配置成用于执行任何前述操作的软件、固件和/或电路。软件可被实现为记录在非瞬态计算机可读存储介质上的软件包、代码、指令、指令集和/或数据。固件可被实现为硬编码(例如,非易失性的)在存储器设备中的代码、指令或指令集和/或数据。如在此在任何实施例中所使用的“电路”可单独地或在任何组合中包括例如存储由可编程电路执行的指令的硬连线电路、可编程电路(诸如包括一个或多个单独的指令处理核的计算机处理器)、状态机电路、和/或固件。这些模块可一起或单独地被实现为形成更大的系统的一部分的电路,例如,集成电路(IC)、片上系统(SoC)、台式计算机、膝上型计算机、平板计算机、服务器、智能电话等等。
可在包括一个或多个存储介质(例如,非瞬态存储介质)的系统中实现在此所描述的任何操作,该一个或多个存储介质在其上单独地或结合地存储当被一个或多个处理器执行时执行该方法的指令。在此,处理器可包括例如服务器CPU、移动设备CPU、和/或其他可编程电路。因此,旨在根据在此所描述的操作可跨多个物理设备分布,诸如在多于一个不同物理位置的处理结构。存储介质可包括任何类型的有形介质,例如任何类型的盘,包括硬盘、软盘、光盘、致密盘只读存储(CD-ROM)、致密盘可重写(CD-RW)、以及磁光盘、半导体器件,诸如只读存储器(ROM)、随机存取存储器(RAM),诸如动态和静态RAM、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存、固态盘(SSD)、嵌入式多媒体卡(eMMC)、安全数字输入/输出(SDIO)卡、磁卡或光卡、或任何其他类型的适合用于存储电子指令的介质。其他实施例可被实现为由可编程控制设备执行的软件模块。
因此,本公开涉及基于硬件的设备间资源共享。例如,远程编排器(RO)可提供致使设备使得至少一个硬件资源对其他设备可用的指令。该设备中的RO模块可与该RO交互并且可基于从该RO接收的指令配置该设备中的配置模块。当该设备从关闭状态转变到开启状态时,该配置模块可设置设备配置。该设备还可包括处理模块,该处理模块用于基于该设备配置、接口技术(IT)和至少一个硬件资源处理数据。该接口技术可允许该处理模块与该至少一个硬件资源交互。该RO模块可将该IT配置为基于这些指令允许该至少一个硬件资源本地操作或远程操作。
以下示例涉及进一步的实施例。本公开的以下示例可包括主题材料,诸如设备、方法、用于存储指令的至少一种机器可读介质、用于基于该方法执行动作的装置和/或用于设备不可知功率监测和分析的系统,当被执行时,这些指令致使机器基于该方法执行动作。
根据示例1,提供了一种能够进行基于硬件的设备间资源共享的设备。该设备可包括:配置模块,该配置模块用于设置设备配置;处理模块,该处理模块用于至少基于该设备配置处理数据;至少一个硬件资源;接口技术,该接口技术用于允许该处理模块与该至少一个硬件资源交互;以及远程编排器模块,该远程编排器模块用于:从远程编排器接收至少一个指令;基于该至少一个指令配置该配置模块;以及配置该接口技术以便允许该至少一个硬件资源基于该至少一个指令本地操作或远程操作。
示例2可包括示例1所述的元素,其中,该配置模块至少包括用于当该设备从关闭状态转变到开启状态时设置该设备配置的固件。
示例3可包括示例2所述的元素,其中,在设置该设备配置时,该配置模块将该设备设置为在分区配置或合并配置中操作。
示例4可包括示例1至3中任一项所述的元素,其中,在配置该接口技术时,该远程编排器模块将该接口技术的配置空间中的至少一个位设置为指示该至少一个硬件资源本地操作或远程操作。
示例5可包括示例1至4中任一项所述的元素,其中,当该至少一个硬件资源远程操作时,该接口技术将该至少一个硬件资源至少从该处理模块隐藏。
示例6可包括示例1至5中任一项所述的元素,其中,当该至少一个硬件资源远程操作时,该至少一个硬件资源可由至少一个其他设备中的至少一个其他处理模块访问。
示例7可包括示例6所述的元素,其中,当该至少一个硬件资源远程操作时,该远程编排器模块将该接口技术配置为在该至少一个硬件资源和该至少一个其他处理模块之间路由消息。
示例8可包括示例6至7中任一项所述的元素,其中,该远程编排器模块将该处理模块配置为基于该设备配置直接与该至少一个其他处理模块交互。
示例9可包括示例8所述的元素,其中,该处理模块和该至少一个其他处理模块直接利用快速路径互连(QPI)连接或凯撒技术互连(KTI)连接交互。
示例10可包括示例8至9中任一项所述的元素,其中,该配置模块基于该设备配置禁用该处理模块的处理器高速缓存或存储器中的至少一个与该至少一个其他处理模块之间的一致性协议。
示例11可包括示例6至10中任一项所述的元素,其中,当该至少一个硬件资源远程操作时,该远程编排器模块将该接口技术配置为在该至少一个硬件资源和该至少一个其他处理模块之间路由消息并且基于该设备配置将该处理模块配置成用于直接与该至少一个其他处理模块交互。
示例12可包括示例6至11中任一项所述的元素,并且可进一步包括交互监视器,该交互监视器用于关于该设备与该至少一个其他设备之间的交互与该远程编排器通信。
示例13可包括示例6至12中任一项所述的元素,其中,机架中的该设备进一步包括该远程编排器。
示例14可包括示例13所述的元素,其中,该机架进一步包括该至少一个其他设备。
示例15可包括示例1至14中任一项所述的元素,其中,该接口技术是外围组件互连Express(PCIe)接口技术。
示例16可包括示例1至15中任一项所述的元素,其中,该远程编排器模块用于经由带外通信与该远程编排器通信。
示例17可包括示例1至16中任一项所述的元素,其中,该远程编排器模块是管理引擎(ME)。
示例18可包括示例1至17中任一项所述的元素,其中,该配置模块至少包括用于当该设备从关闭状态转变到开启状态时设置该设备配置的固件。
根据示例19,提供了一种能够进行基于硬件的设备间资源共享的方法。该方法可包括:从远程编排器在设备中接收至少一个指令;基于该至少一个指令在该设备中的配置模块中配置设备配置;以及基于该至少一个指令将该设备中的接口技术配置为允许该设备中的至少一个硬件资源本地操作或远程操作。
示例20可包括示例19所述的元素,并且可进一步包括致使该设备从关闭状态转变为开启状态并且基于该设备配置将该设备设置为在分区配置或合并配置中操作。
示例21可包括示例19至20中任一项所述的元素,其中,配置该接口技术包括将该接口技术的配置空间中的至少一个位设置为指示该至少一个硬件资源本地操作或远程操作。
示例22可包括示例19至21中任一项所述的元素,并且可进一步包括当该至少一个硬件资源远程操作时将该至少一个硬件资源至少从该设备中的处理模块隐藏。
示例23可包括示例22所述的元素,并且可进一步包括当该至少一个硬件资源远程操作时将该接口技术配置为在该至少一个硬件资源与至少一个其他设备中的至少一个其他处理模块之间路由消息。
示例24可包括示例23所述的元素,并且可进一步包括基于该设备配置将该处理模块配置为直接与该至少一个其他处理模块交互并且基于该设备配置禁用该处理模块的处理器高速缓存或存储器中的至少一个与该至少一个其他处理模块之间的一致性协议。
示例25可包括示例23至24中任一项所述的元素,并且可进一步包括关于该设备与该至少一个其他设备之间的交互与该远程编排器通信。
示例26可包括示例22至25中任一项所述的元素,并且可进一步包括:当该至少一个硬件资源远程操作时,将该接口技术配置为在该至少一个硬件资源与至少一个其他设备中的至少一个其他处理模块之间路由消息;基于该设备配置将该处理模块配置为直接与该至少一个其他处理模块交互;并且基于该设备配置禁用该处理模块的处理器高速缓存或存储器中的至少一个与该至少一个其他处理模块之间的一致性协议。
根据示例27,提供了一种包括至少一个设备的系统,该系统被安排成用于执行上述示例19至26中任一项所述的方法。
根据示例28,提供了一种被安排成用于执行上述示例19至26中任一项所述的方法的芯片组。
根据示例29,提供了至少一种机器可读介质,包括多个指令,响应于在计算设备上被执行,这些指令致使该计算设备执行上述示例19至26中任一项所述的方法。
根据示例30,提供了被配置成用于进行基于硬件的设备间资源共享的至少一个设备,该至少一个设备被安排成用于执行上述示例19至26中任一项所述的方法。
根据示例31,提供了一种能够进行基于硬件的设备间资源共享的系统。该系统可包括:用于从远程编排器在设备中接收至少一个指令的装置;用于基于该至少一个指令在该设备中的配置模块中配置设备配置的装置;以及用于基于该至少一个指令将该设备中的接口技术配置为允许该设备中的至少一个硬件资源本地操作或远程操作的装置。
示例32可包括示例31所述的元素,并且可进一步包括用于致使该设备从关闭状态转变为开启状态的装置以及用于基于该设备配置将该设备设置为在分区配置或合并配置中操作的装置。
示例33可包括示例31至32中任一项所述的元素,其中,用于配置该接口技术的该装置包括用于将该接口技术的配置空间中的至少一个位设置为指示该至少一个硬件资源本地操作或远程操作的装置。
示例34可包括示例31至33中任一项所述的元素,并且可进一步包括用于当该至少一个硬件资源远程操作时将该至少一个硬件资源至少从该设备中的处理模块隐藏的装置。
示例35可包括示例34所述的元素,并且可进一步包括用于当该至少一个硬件资源远程操作时将该接口技术配置为在该至少一个硬件资源与至少一个其他设备中的至少一个其他处理模块之间路由消息的装置。
示例36可包括示例35所述的元素,并且可进一步包括用于基于该设备配置将该处理模块配置为直接与该至少一个其他处理模块交互的装置以及用于基于该设备配置禁用该处理模块的处理器高速缓存或存储器中的至少一个与该至少一个其他处理模块之间的一致性协议的装置。
示例37可包括示例35至36中任一项所述的元素,并且可进一步包括用于关于该设备与该至少一个其他设备之间的交互与该远程编排器通信的装置。
示例38可包括示例34至37中任一项所述的元素,并且可进一步包括:用于当该至少一个硬件资源远程操作时将该接口技术配置为在该至少一个硬件资源与至少一个其他设备中的至少一个其他处理模块之间路由消息的装置;用于基于该设备配置将该处理模块配置为直接与该至少一个其他处理模块交互的装置;以及用于基于该设备配置禁用该处理模块的处理器高速缓存或存储器中的至少一个与该至少一个其他处理模块之间的一致性协议的装置。
已经在此使用的术语和表达被用作描述而非限制术语,并且不旨在使用这种术语和表达时排除所展示和描述的特征的任何等效方案(或其部分),并且认识到在权利要求书的范围内各种修改是可能的。因此,权利要求书旨在覆盖所有这种等效方案。
Claims (20)
1.一种能够进行基于硬件的设备间资源共享的设备,包括:
配置模块,所述配置模块用于设置设备配置;
处理模块,所述处理模块用于至少基于所述设备配置处理数据;
至少一个硬件资源;
接口技术,所述接口技术用于允许所述处理模块与所述至少一个硬件资源交互;以及
远程编排器模块,所述远程编排器模块用于至少:
从远程编排器接收至少一个指令;
基于所述至少一个指令配置所述配置模块;以及
配置所述接口技术以便允许所述至少一个硬件资源基于所述至少一个指令本地操作或远程操作,
其中:
所述远程编排器模块用于,当所述至少一个硬件资源远程操作时,将所述接口技术配置为在所述至少一个硬件资源和所述至少一个其他处理模块之间路由消息;并且
所述远程编排器模块用于将所述处理模块配置为基于所述设备配置直接与所述至少一个其他处理模块交互。
2.如权利要求1所述的设备,其中,所述配置模块至少包括用于当所述设备从关闭状态转变到开启状态时设置所述设备配置的固件。
3.如权利要求2所述的设备,其中,在设置所述设备配置时,所述配置模块将所述设备设置为在分区配置或合并配置中操作。
4.如权利要求1所述的设备,其中,在配置所述接口技术时,所述远程编排器模块将所述接口技术的配置空间中的至少一个位设置为指示所述至少一个硬件资源本地操作或远程操作。
5.如权利要求1所述的设备,其中,当所述至少一个硬件资源远程操作时,所述接口技术将所述至少一个硬件资源至少从所述处理模块隐藏。
6.如权利要求1所述的设备,其中,当所述至少一个硬件资源远程操作时,所述远程编排器模块将所述接口技术配置为在所述至少一个硬件资源和所述至少一个其他处理模块之间路由消息。
7.如权利要求1所述的设备,其中,所述配置模块基于所述设备配置禁用所述处理模块的处理器高速缓存或存储器中的至少一个与所述至少一个其他处理模块之间的一致性协议。
8.如权利要求1所述的设备,进一步包括改革引擎,所述改革引擎用于关于所述设备与所述至少一个其他设备之间的交互与所述远程编排器通信。
9.如权利要求1所述的设备,其中,所述接口技术是外围组件互连Express PCIe接口技术。
10.一种用于基于硬件的设备间资源共享的方法,包括:
在设备中从远程编排器接收至少一个指令;
基于所述至少一个指令在所述设备的配置模块中配置设备配置;
在所述设备中配置接口技术以便允许所述设备中的所述至少一个硬件资源基于所述至少一个指令本地操作或远程操作,
当所述至少一个硬件资源远程操作时,将所述接口技术配置为在所述至少一个硬件资源与至少一个其他设备中的至少一个其他处理模块之间路由消息,
基于所述设备配置将所述处理模块配置为直接与所述至少一个其他处理模块交互;以及
基于所述设备配置禁用所述处理模块的处理器高速缓存或存储器中的至少一个与所述至少一个其他处理模块之间的一致性协议。
11.如权利要求10所述的方法,进一步包括:
致使所述设备从关闭状态转变到开启状态;以及
基于所述设备配置将所述设备设置为在分区配置或合并配置中操作。
12.如权利要求10所述的方法,其中,配置所述接口技术包括将所述接口技术的配置空间中的至少一个位设置为指示所述至少一个硬件资源本地操作或远程操作。
13.如权利要求10所述的方法,进一步包括:
当所述至少一个硬件资源远程操作时,将所述至少一个硬件资源至少从所述设备中的处理模块隐藏。
14.如权利要求10所述的方法,进一步包括:
关于所述设备与所述至少一个其他设备之间的交互与所述远程编排器通信。
15.一种用于基于硬件的设备间资源共享的系统,包括:
用于在设备中从远程编排器接收至少一个指令的装置;
用于基于所述至少一个指令在所述设备的配置模块中配置设备配置的装置;
用于在所述设备中配置接口技术以便允许所述设备中的所述至少一个硬件资源基于所述至少一个指令本地操作或远程操作的装置;
用于当所述至少一个硬件资源远程操作时将所述接口技术配置为在所述至少一个硬件资源与至少一个其他设备中的至少一个其他处理模块之间路由消息的装置;
用于基于所述设备配置将所述处理模块配置为直接与所述至少一个其他处理模块交互的装置;以及
用于基于所述设备配置禁用所述处理模块的处理器高速缓存或存储器中的至少一个与所述至少一个其他处理模块之间的一致性协议的装置。
16.如权利要求15所述的系统,进一步包括:
用于致使所述设备从关闭状态转变到开启状态的装置;以及
用于基于所述设备配置将所述设备设置为在分区配置或合并配置中操作的装置。
17.如权利要求15所述的系统,其中,用于配置所述接口技术的所述装置包括用于将所述接口技术的配置空间中的至少一个位设置为指示所述至少一个硬件资源本地操作或远程操作的装置。
18.如权利要求15所述的系统,进一步包括:
用于当所述至少一个硬件资源远程操作时将所述至少一个硬件资源至少从所述设备中的处理模块隐藏的装置。
19.如权利要求15所述的系统,进一步包括:
用于关于所述设备与所述至少一个其他设备之间的交互与所述远程编排器通信的装置。
20.一种机器可读存储介质,其上存储有指令,所述指令响应于被执行而导致计算设备执行如权利要求10-14中的任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/659,523 | 2015-03-16 | ||
US14/659,523 US9569267B2 (en) | 2015-03-16 | 2015-03-16 | Hardware-based inter-device resource sharing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105988877A CN105988877A (zh) | 2016-10-05 |
CN105988877B true CN105988877B (zh) | 2019-05-14 |
Family
ID=55273167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610087356.2A Active CN105988877B (zh) | 2015-03-16 | 2016-02-16 | 基于硬件的设备间资源共享 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9569267B2 (zh) |
EP (1) | EP3073377B1 (zh) |
JP (1) | JP6321053B2 (zh) |
KR (1) | KR101813480B1 (zh) |
CN (1) | CN105988877B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224045B (zh) * | 2015-11-18 | 2019-01-04 | 英业达科技有限公司 | 刀片式服务器 |
US10346321B2 (en) * | 2017-05-04 | 2019-07-09 | Dell Products L.P. | Method to trigger NVDIMM save from remote management interface |
US10582636B2 (en) * | 2017-08-07 | 2020-03-03 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Server having a dual-mode serial bus port enabling selective access to a baseboard management controller |
US20190044809A1 (en) * | 2017-08-30 | 2019-02-07 | Intel Corporation | Technologies for managing a flexible host interface of a network interface controller |
CN108762463A (zh) * | 2018-04-28 | 2018-11-06 | 上海爱优威软件开发有限公司 | 一种基于电量的应用管理方法及终端 |
US10970213B2 (en) * | 2019-04-30 | 2021-04-06 | Hewlett Packard Enterprise Development Lp | Selective disabling of hardware-based cache coherency and enforcement of software-based cache coherency |
US11106595B2 (en) * | 2019-08-22 | 2021-08-31 | Micron Technology, Inc. | Hierarchical memory systems |
CN112579286B (zh) * | 2020-12-16 | 2021-08-06 | 全芯智造技术有限公司 | 用于光源掩模优化的方法、设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615137A (zh) * | 2008-06-27 | 2009-12-30 | 国际商业机器公司 | 包括动态合并的物理分区的信息处理系统及其方法 |
US8346935B2 (en) * | 2010-01-15 | 2013-01-01 | Joyent, Inc. | Managing hardware resources by sending messages amongst servers in a data center |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5931938A (en) * | 1996-12-12 | 1999-08-03 | Sun Microsystems, Inc. | Multiprocessor computer having configurable hardware system domains |
JP2001209627A (ja) * | 2000-01-27 | 2001-08-03 | Hitachi Ltd | 情報処理システム |
JP4337747B2 (ja) | 2005-03-14 | 2009-09-30 | 日本電気株式会社 | ハードウェア資源提供システム |
EP2362310B1 (en) * | 2005-03-16 | 2017-10-04 | III Holdings 12, LLC | Automatic workload transfer to an on-demand center |
US20070239965A1 (en) * | 2006-03-31 | 2007-10-11 | Saul Lewites | Inter-partition communication |
JP5070879B2 (ja) * | 2007-02-22 | 2012-11-14 | 日本電気株式会社 | 仮想サーバシステム、サーバ装置 |
US7934033B2 (en) * | 2008-03-25 | 2011-04-26 | Aprius, Inc. | PCI-express function proxy |
US8949565B2 (en) * | 2009-12-27 | 2015-02-03 | Intel Corporation | Virtual and hidden service partition and dynamic enhanced third party data store |
US20110161592A1 (en) * | 2009-12-31 | 2011-06-30 | Nachimuthu Murugasamy K | Dynamic system reconfiguration |
WO2012023151A2 (en) * | 2010-08-19 | 2012-02-23 | Ineda Systems Pvt. Ltd | I/o virtualization and switching system |
US9274834B2 (en) * | 2012-08-25 | 2016-03-01 | Vmware, Inc. | Remote service for executing resource allocation analyses for computer network facilities |
US9582287B2 (en) * | 2012-09-27 | 2017-02-28 | Intel Corporation | Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions |
US9734096B2 (en) * | 2013-05-06 | 2017-08-15 | Industrial Technology Research Institute | Method and system for single root input/output virtualization virtual functions sharing on multi-hosts |
US9331911B2 (en) * | 2013-11-01 | 2016-05-03 | International Business Machines Corporation | Resizing resource allocation in a computing environment |
-
2015
- 2015-03-16 US US14/659,523 patent/US9569267B2/en active Active
-
2016
- 2016-01-04 JP JP2016000297A patent/JP6321053B2/ja active Active
- 2016-02-01 EP EP16153648.7A patent/EP3073377B1/en active Active
- 2016-02-15 KR KR1020160017014A patent/KR101813480B1/ko active IP Right Grant
- 2016-02-16 CN CN201610087356.2A patent/CN105988877B/zh active Active
-
2017
- 2017-02-14 US US15/432,826 patent/US10223161B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615137A (zh) * | 2008-06-27 | 2009-12-30 | 国际商业机器公司 | 包括动态合并的物理分区的信息处理系统及其方法 |
US8346935B2 (en) * | 2010-01-15 | 2013-01-01 | Joyent, Inc. | Managing hardware resources by sending messages amongst servers in a data center |
Also Published As
Publication number | Publication date |
---|---|
US20160274941A1 (en) | 2016-09-22 |
KR20160111325A (ko) | 2016-09-26 |
EP3073377A1 (en) | 2016-09-28 |
US10223161B2 (en) | 2019-03-05 |
EP3073377B1 (en) | 2023-03-22 |
JP6321053B2 (ja) | 2018-05-09 |
CN105988877A (zh) | 2016-10-05 |
US20170161111A1 (en) | 2017-06-08 |
JP2016173811A (ja) | 2016-09-29 |
US9569267B2 (en) | 2017-02-14 |
KR101813480B1 (ko) | 2017-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105988877B (zh) | 基于硬件的设备间资源共享 | |
US11768698B2 (en) | Mechanism to dynamically allocate physical storage device resources in virtualized environments | |
US11099894B2 (en) | Intermediate host integrated circuit between virtual machine instance and customer programmable logic | |
CN104683430B (zh) | 用于从远程可访问存储设备进行初始化的技术 | |
CN108696461A (zh) | 用于智能网络接口卡的共享存储器 | |
CN104885070B (zh) | 控制片上系统(SoC)中的带宽分配 | |
CN104335180B (zh) | 虚拟化i/o处理延迟的实时测量 | |
US20190042329A1 (en) | System with programmable multi-context accelerator circuitry | |
CN110063051A (zh) | 可重新配置的服务器 | |
CN107078959A (zh) | 减轻分布式非核结构中的业务量引导低效 | |
CN108388528A (zh) | 基于硬件的虚拟机通信 | |
CN107273199A (zh) | 用于管理虚拟化环境中的中断的体系结构和方法 | |
CN104813695A (zh) | 虚拟化的订户标识模块(sim) | |
CN107003956A (zh) | 片上系统非核结构中的保证服务质量 | |
US11579908B2 (en) | Containerized workload scheduling | |
CN107077190A (zh) | 非核结构中的功率管理 | |
CN107430570A (zh) | 具有SR‑IOV和xHCI‑IOV的附加安全执行环境 | |
US20210149587A1 (en) | Technologies to provide access to kernel and user space memory regions | |
CN109656488A (zh) | 用于可信计算的多节点中枢 | |
CN107003962A (zh) | 高速缓存一致代理到一致结构的低开销分层连接 | |
CN110275774A (zh) | 在虚拟化环境中动态分配物理存储设备资源的机制 | |
CN109691028A (zh) | 用于容器的设备虚拟化 | |
CN109218383A (zh) | 虚拟网络功能负载平衡器 | |
CN107077440A (zh) | 紧密耦合的分布式非核一致结构 | |
CN107957965A (zh) | 服务质量序数修改 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |