CN105074653B - 使计算刀片设备和扩展刀片设备的存储器可供由操作系统使用 - Google Patents

使计算刀片设备和扩展刀片设备的存储器可供由操作系统使用 Download PDF

Info

Publication number
CN105074653B
CN105074653B CN201380075168.2A CN201380075168A CN105074653B CN 105074653 B CN105074653 B CN 105074653B CN 201380075168 A CN201380075168 A CN 201380075168A CN 105074653 B CN105074653 B CN 105074653B
Authority
CN
China
Prior art keywords
logic processor
extension
memory
calculating
blade apparatus
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
Application number
CN201380075168.2A
Other languages
English (en)
Other versions
CN105074653A (zh
Inventor
D·舒马赫
S·K·迈尔
R·W·赫里尔
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN105074653A publication Critical patent/CN105074653A/zh
Application granted granted Critical
Publication of CN105074653B publication Critical patent/CN105074653B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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
    • G06F9/5016Allocation 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 the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Abstract

本文所公开的示例涉及使计算刀片设备和扩展刀片设备的存储器可供由操作系统(OS)使用。示例包括使计算刀片设备的计算逻辑处理器、计算刀片设备的所识别的存储器以及扩展刀片设备的所识别的存储器可供由OS使用。示例进一步包括使扩展逻辑处理器不可用于所述OS。

Description

使计算刀片设备和扩展刀片设备的存储器可供由操作系统 使用
技术领域
本申请涉及涉及刀片系统,并且尤其涉及刀片系统的存储器使用。
背景技术
刀片系统可以包括安装在刀片机箱中的多个刀片设备。刀片设备中的每个均可以是例如刀片服务器。在一些示例中,用户可以建立刀片系统的分区,以包括安装在刀片机箱中的刀片设备中的一个、若干个或全部。在这样的示例中,该分区可以运行操作系统(OS)以及利用该OS运行(多个)应用。
发明内容
根据本发明的第一方面,提供一种利用系统固件SFW实例编码的非暂时性机器可读存储介质,所述SFW实例包括可由刀片系统执行以进行以下操作的指令:配置计算刀片设备的计算逻辑处理器和扩展刀片设备的扩展逻辑处理器中的每个,以使其作为与所述SFW实例相关联的单个SFW域的一部分进行操作,其中,所述刀片系统包括安装在刀片机箱中的所述计算刀片设备和所述扩展刀片设备;识别与所述计算逻辑处理器相关联的所述计算刀片设备的可用存储器和与所述扩展逻辑处理器相关联的所述扩展刀片设备的可用存储器;对所述扩展逻辑处理器隐藏所述扩展刀片设备的所识别的存储器;使所述计算逻辑处理器和所述计算刀片设备的所识别的存储器以及所述扩展刀片设备的所识别的存储器可供由所述刀片系统的操作系统OS使用;以及使所述扩展逻辑处理器不可用于所述OS,以使得所述扩展逻辑处理器保持可用于执行所述SFW实例的指令。
根据本发明的第二方面,提供一种用于刀片系统的系统,包括:刀片机箱存储器,其存储用于引导分区来执行操作系统OS的系统固件SFW实例;所述分区的计算刀片设备的计算逻辑处理器;以及所述分区的扩展刀片设备的扩展逻辑处理器,其中,所述SFW实例包括可由所述扩展逻辑处理器执行以进行以下操作的指令:向所述计算逻辑处理器传送对与所述扩展逻辑处理器相关联的所述扩展刀片设备的所识别的可用存储器的描述;对所述OS隐藏所述扩展逻辑处理器,以使得所述扩展逻辑处理器不可供由所述OS使用而保持可用于执行所述SFW实例的指令;以及对所述扩展逻辑处理器隐藏所述扩展刀片设备的所识别的存储器,其中,所述SFW实例包括可由所述计算逻辑处理器执行以进行以下操作的指令:识别与所述计算逻辑处理器相关联的所述计算刀片设备的可用存储器;以及使所述计算逻辑处理器以及所述计算刀片设备和所述扩展刀片设备中的每个的所识别的存储器可供由所述OS使用。
根据本发明的第三方面,提供一种可以由刀片机箱的分区执行的方法,所述刀片机箱包括计算刀片设备、扩展刀片设备以及刀片机箱存储器,所述计算刀片设备包括计算逻辑处理器,所述扩展刀片设备包括扩展逻辑处理器,所述刀片机箱存储器存储用于引导所述分区来执行操作系统OS的系统固件SFW实例,所述方法包括:通过执行所述SFW实例的指令,识别与所述计算逻辑处理器相关联的所述计算刀片设备的可用存储器和与所述扩展逻辑处理器相关联的所述扩展刀片设备的可用存储器;使所述计算逻辑处理器以及所述计算刀片设备和所述扩展刀片设备中的每个的所识别的存储器可供由所述OS使用;对所述扩展逻辑处理器隐藏所述扩展刀片设备的所识别的存储器;在开始执行所述OS之前,将所述扩展逻辑处理器置于系统管理模式SMM;至少利用所述计算逻辑处理器开始执行所述OS;以及在所述OS的执行期间保持所述扩展逻辑处理器处于所述SMM,以使得所述扩展逻辑处理器不可供由所述OS使用。
附图说明
下文的具体实施方式参考附图,在附图中:
图1是使逻辑处理器不可用于操作系统(OS)而保持可用于执行系统固件(SFW)实例的指令的示例性刀片系统的框图;
图2是使多个逻辑处理器不可用于OS而保持可用于执行SFW实例的指令的示例性刀片系统的框图;
图3是使得计算刀片设备和扩展刀片设备的存储器可用于系统的分区的OS的示例性系统的框图;
图4是用于在利用计算逻辑处理器执行OS期间保持扩展逻辑处理器在系统管理模式(SMM)的示例性方法的流程图;以及
图5是用于响应于计算逻辑处理器检测到的错误来利用扩展逻辑处理器收集错误信息的示例性方法的流程图。
具体实施方式
如上所述,刀片系统的分区可以运行操作系统(OS),以及利用该OS 运行应用。运行OS的分区可以包括多个刀片设备,每个刀片设备包括(多个)逻辑处理器和存储器。每个逻辑处理器可以被包括在集成电路(IC)(例如,芯片)上。包括至少一个中央处理单元(CPU)的IC在本文可以被称为“CPU IC”。在一些示例中,除了逻辑处理器之外,CPU IC可以包括至少一个集成的存储器控制器以用于管理刀片设备的存储器。在这样的示例中,CPU IC的存储器控制器能够管理相对有限数量的存储器,其可以限制在刀片设备上可用的存储器的量,并因此可以限制在分区中可用的存储器的量。
可以通过将额外的刀片设备添加到分区来将更多的存储器添加到分区。然而,由OS运行的一些应用的许可成本可以基于可供应用利用的可用逻辑处理器的数量来计算。照这样,由于所添加的刀片设备的逻辑处理器的可用性,将刀片设备添加到分区可能实质上地增加针对一些应用的许可成本。
为了处理这些问题,本文所描述的示例可以配置计算刀片设备的计算逻辑处理器和扩展刀片设备的扩展逻辑处理器,以作为单个SFW域的一部分来操作,并且识别计算刀片设备的可用存储器和扩展刀片设备的可用存储器。本文所描述的示例可以进一步地使计算逻辑处理器和所识别的计算刀片设备和扩展刀片设备的存储器可供由OS使用,并且使扩展逻辑处理器不可用于OS,而扩展逻辑处理器保持可用于执行SFW实例的指令。
以这种方式,本文所描述的示例可以使刀片系统的分区能够利用扩展刀片设备的存储器,而不会将扩展刀片设备的逻辑处理器(即,扩展逻辑处理器)暴露给该分区运行的OS或该OS运行的应用。照这样,本文所描述的示例可以使分区能够使用扩展刀片设备的存储器来运行OS和应用,而没有扩展刀片设备的扩展逻辑处理器增加应用许可成本。另外,通过扩展逻辑处理器保持可用于执行SFW实例的指令,不可被用于OS的扩展逻辑处理器可以保持可用于在扩展刀片设备处收集错误信息,或以其它方式在 SFW实例的指令的控制下管理扩展刀片设备的资源,而仍然不可被OS加以利用。
现在参考附图,图1是使逻辑处理器不可用于操作系统(OS)而保持可用于执行系统固件(SFW)实例的指令的示例性刀片系统100的框图。在本文所描述的示例中,刀片系统可以是包括刀片机箱和安装在刀片机箱中的至少一个刀片设备的计算系统。在图1的示例中,刀片系统100包括刀片机箱105以及扩展和计算刀片设备130和140,扩展和计算刀片设备 130和140均被安装在刀片机箱105中。刀片系统100可以利用扩展和计算刀片设备130和140中的每个的资源来运行OS 115。例如,OS 115可以由刀片系统100的分区来运行,刀片系统100的分区包括至少扩展和计算刀片设备130和140。
如本文所使用的,“刀片设备”可以是物理计算设备,其包括存储器和至少一个逻辑处理器,并且其能够安装到刀片机箱。在一些示例中,刀片设备可以是模块化计算设备,其能够物理地安装到刀片机箱以用于操作,其包括特定内核计算资源(例如,逻辑处理器和存储器),而其不包括特定外围计算资源(例如,供电设备、冷却风扇、外部网络端口等或其组合)。
如本文所使用的,“刀片机箱”可以是用于接收多个刀片设备并且为所接收的刀片设备提供至少一个外围资源的机架。例如,刀片机箱可以包括用于冷却所安装的刀片设备的风扇、用于向所安装的刀片设备提供电力的至少一个供电设备、针对所安装的刀片设备的外部网络端口等或其组合。
在图1的示例中,扩展刀片设备130可以包括扩展逻辑处理器132和与扩展逻辑处理器132相关联的存储器134。在一些示例中,刀片设备130 可以包括多个逻辑处理器,逻辑处理器中的一些或全部具有相关联的存储器。计算刀片设备140可以包括计算逻辑处理器142和与计算逻辑处理器 142相关联的存储器144。在一些示例中,刀片设备140可以包括多个逻辑处理器,逻辑处理器中的一些或全部具有相关联的存储器。如本文所使用的,“逻辑处理器”可以是CPU IC、CPU IC的CPU(例如,在多核CPU IC 上的多个内核中的一个内核)、或CPU IC的CPU(或内核)上的线程。
本文所描述的任何扩展刀片设备或计算刀片设备可以是如上文所描述的刀片设备。在本文所描述的示例中,扩展刀片设备可以是被指定为提供存储器而不提供逻辑处理器的刀片设备,该存储器以供包括该刀片设备的分区的OS所使用。在本文所描述的示例中,计算刀片设备可以是被指定为提供存储器和逻辑处理器的刀片设备,存储器和逻辑处理器以供包括该刀片设备的分区的OS所使用。在一些示例中,在描述该分区的配置的方面的分区信息中,分区中的每个刀片设备可以被指定为扩展或计算刀片设备。另外,本文所描述的任何扩展逻辑处理器或计算逻辑处理器可以是如上文所描述的逻辑处理器。在本文所描述的示例中,扩展逻辑处理器可以是扩展刀片设备的逻辑处理器,而计算逻辑处理器可以是计算刀片设备的逻辑处理器。
如本文所使用的,与逻辑处理器“相关联”的存储器(或逻辑处理器的“关联的”存储器)是由存储器控制器管理的存储器,存储器控制器集成在包括或构成逻辑处理器的CPUIC上。例如,包括与逻辑处理器相关联的存储器的刀片设备可以包括至少一个存储器模块和CPU IC,该CPU IC 包括至少一个逻辑处理器(例如,CPU或内核)和至少一个集成的用于管理存储器模块的存储器控制器。在一些示例中,刀片设备可以包括多个CPU IC,每个CPUIC包括至少一个集成的用于管理该刀片设备的存储器模块的存储器控制器。如本文所使用的,存储器模块可以是例如双列直插式存储模块(DIMM)、单列直插式存储器模块(SIMM)或任何其它类型的包括多个存储器设备的存储器模块。
在图1的示例中,刀片系统100包括利用系统固件(SFM)实例121 编码的机器可读存储介质120,系统固件(SFM)实例121包括指令122、 124、126以及128。在一些示例中,SFW实例121可以包括额外的指令。如本文所使用的,“机器可读存储介质”可以是用于容纳或存储诸如可执行指令、数据等信息的任何电子的、磁的、光的或其它的物理存储装置。例如,本文所描述的任何机器可读存储介质可以是以下的任意一个:随机存取存储器(RAM)、只读存储器(ROM)、易失性存储器、非易失性存储器、闪速存储器、存储驱动器(例如,硬盘驱动器)、固态驱动器、任何类型的存储盘(例如,只读光盘存储器(CD-ROM)、任何其它类型的光盘、DVD 等)等或其组合。此外,本文所描述的任何机器可读存储介质可以是非暂时性的。本文所描述的任何“存储器”可以是至少一个机器可读存储介质的至少一部分。
在图1的示例中,存储介质120可以是存储SFW实例121的ROM。在一些示例中,存储介质120可以被包括在扩展刀片设备130或计算刀片设备140上。在其它示例中,存储介质120可以被包括在安装到刀片设备机箱105的另一个刀片设备上。如本文所使用的,“系统固件实例”(或“SFW 实例”)可以是用于引导(boot)和管理刀片设备的资源的机器可执行指令的集合。例如,在重置之后,刀片设备的逻辑处理器可以开始执行SFW实例的指令,以初始化逻辑处理器以供操作,并且初始化刀片设备的其它资源,诸如与逻辑处理器相关联的存储器。在一些示例中,对逻辑处理器和相关联的存储器的初始化可以包括由SFW实例所实施的上电自检(POST)。
SFW实例的指令当由逻辑处理器执行时还可以配置逻辑处理器以使其在与SFW实例相关联的SFW域中操作。如本文所使用的,与SFW实例相关联的“系统固件域”(或“SFW域”)可以是由SFW实例所引导的逻辑处理器在引导之后执行SFW实例的指令时可以在其中操作的环境。在一些示例中,SFW域可以包括多个SFW资源,包括例如,SFW数据结构以及SFW 代码(即,机器可执行指令)。如本文所使用的,作为SFW域的一部分进行操作的逻辑处理器可以是可以访问SFW域的SFW资源的逻辑处理器。在一些示例中,可以将SFW域的SFW资源(例如,SFW数据结构以及SFW 代码)存储在SFW域的系统管理存储器区域(例如,SMRAM)中。在这样的示例中,作为SFW域的一部分进行操作的逻辑处理器可以是可以访问存储在SFW域的系统管理存储器区域中的SFW资源的逻辑处理器。作为 SFW域的一部分进行操作的逻辑处理器可以不是始终可以访问系统管理存储器区域中的SFW资源。相反地,逻辑处理器在特定时间(例如,当引导时)、在特定模式(例如,系统管理模式(SMM))等可以访问。在本文所描述的示例中,具有这样的受限访问的逻辑处理器仍然可以被认为可以访问系统管理存储器区域中的SFW资源。在一些示例中,系统管理存储器区域可以是安装在包括该逻辑处理器的刀片机箱中的至少一个刀片设备的机器可读存储介质的至少一部分。
SFW数据结构可以包括例如高级配置与电源接口(ACPI)表、系统管理BIOS(SMBIOS)表、存储器数据结构、中断向量、信号量(semaphore) 等或其组合。可以通过逻辑处理器执行SFW实例的指令来在系统管理存储器区域中产生和存储SFW数据结构。SFW代码可以包括实施诸如系统管理中断(SMI)处理单元等中断服务例程的可执行指令。SFW代码还可以包括实施错误处理单元的可执行指令。SFW代码可以是被复制到系统管理存储器区域内的SFW实例的指令。
在图1的示例中,SFW实例121的指令可由刀片系统100执行。例如,刀片系统100的扩展逻辑处理器132和计算逻辑处理器142可以取得、解码以及执行SFW实例121的指令,以执行下文所描述的与SFW实例121 有关的功能。在图1的示例中,在刀片系统100的至少一部分(例如,用于运行OS 115的分区)的重置之后当指令122由逻辑处理器132和142执行时,指令122可以配置计算刀片设备140的计算逻辑处理器142和扩展刀片设备130的扩展逻辑处理器132,以作为与SFW实例121相关联的单个SFW域的一部分进行操作。在本文所描述的示例中,被配置为作为单个 SFW域(即,相同的SFW域)的一部分进行操作的逻辑处理器可以是每个均被配置为访问SFW域的SFW资源的逻辑处理器。例如,逻辑处理器可以每个均可以访问(例如,在SMM)存储SFW域的SFW资源的系统管理存储器区域。
在一些示例中,通过利用相同的SFW实例121引导逻辑处理器中的每个,逻辑处理器可以被配置为作为相同的SFW域的一部分进行操作。在图 1的示例中,通过利用SFW实例121引导扩展和计算逻辑处理器132和142 中的每个,扩展和计算逻辑处理器132和142可以配置为作为与SFW实例 121(即,相同的SFW域)相关联的SFW域的一部分进行操作。在这样的示例中,扩展和计算逻辑处理器132和142每个均可以通过执行SFW实例 121的指令来引导,SFW实例121的指令包括用于配置逻辑处理器以使其作为与SFW实例121相关联的SFW域的一部分进行操作的指令122。
例如,当指令122由扩展和计算逻辑处理器132和142执行时,指令 122可以将扩展和计算逻辑处理器132和142的各自的硬件地址映射配置为相同的。例如,指令122可以配置各自的硬件地址映射,以使得扩展和计算逻辑处理器132和142每个均可以访问系统管理存储器区域中相同的 SFW资源。例如,指令122可以配置硬件地址映射,以使得逻辑处理器132和142访问系统管理存储器区域中相同的SFW代码(例如,SMI处理单元等)。指令122还可以配置逻辑处理器132和142以使其访问与SFW实例 121相关联的SFW域的相同的状态信息,包括例如,关于未决中断(pending interrupt)、装载的驱动器、装载的ACPI表等或其组合的信息。
如上所述,OS 115可以由包括至少扩展和计算刀片设备130和140的刀片系统100的分区来运行。在这样的示例中,分区可以利用扩展和计算刀片设备130和140中的每个的资源来运行OS 115。在图1的示例中,当指令124由逻辑处理器132和142执行时,指令124可以识别与计算逻辑处理器142相关联的计算刀片设备140的可用存储器,以及识别与扩展逻辑处理器132相关联的扩展刀片设备130的可用存储器。在一些示例中,由指令124所识别的存储器可以是确定为可供由刀片系统100的OS(诸如, OS 115)使用的存储器。
在一些示例中,计算逻辑处理器142可以执行指令124以识别与计算逻辑处理器142相关联的存储器144之中的可用存储器。例如,计算逻辑处理器142可以执行指令124,作为其引导过程的一部分。在这样的示例中,指令124可以确定与逻辑处理器142相关联的存储器144的数量,并且然后测试存储器144以确定存储器144的哪部分是可用的(即,可使用的)。在一些示例中,指令124可以识别被确定为能够作为可供由OS 115使用的存储器(即,可用存储器)使用的存储器144的至少一部分。例如,计算逻辑处理器142可以预定可用存储器144的一部分以供计算逻辑处理器142 使用(例如,当执行SFW实例121的指令时),并且将可用存储器144的剩余部分识别为可供由OS 115使用的。
执行指令124的计算逻辑处理器142还可以将所识别的可用存储器的描述存储在刀片设备140的服务存储器中。在这样的示例中,刀片设备140 的服务处理器当执行管理固件的实例的指令时可以访问该描述并且将其提供给主逻辑处理器(monarch logicalprocessor)(例如,自引导程序逻辑处理器),主逻辑处理器负责协调对运行OS 115的分区的引导。扩展逻辑处理器132还可以执行指令124以识别与扩展逻辑处理器132相关联的存储器134之中的可供由OS 115使用的存储器(即,可用存储器),如上文关于计算逻辑处理器142所描述的那样。执行指令124的扩展逻辑处理器132 还可以将所识别的可用存储器的描述存储在刀片设备130的服务存储器中,以使得刀片设备130的服务处理器当执行管理固件的实例的指令时可以将该描述提供给主逻辑处理器。所识别的可用存储器的描述可以是采用任何适当的数据结构或格式(例如,表格等)的。
在一些示例中,执行SFW实例121的指令的扩展逻辑处理器132可以访问分区信息,分区信息描述扩展刀片设备130所属于的分区的配置的至少一些方面。例如,分区信息可以指示刀片设备130是否被指定为用于该分区的扩展刀片设备或计算刀片设备。例如,分区信息可以包括指示刀片设备130是否被指定为扩展刀片设备或计算刀片设备的标志。例如,可以将分区信息存储在系统管理存储器区域中或存储在如上文所描述的扩展刀片设备130的服务存储器中。例如,扩展逻辑处理器132可以在识别存储器134的可用存储器之后,并且在对分区的控制被移交给OS 115之前,访问该分区信息。
响应于确定刀片设备130是扩展刀片设备,扩展逻辑处理器132可以执行指令126以使得扩展逻辑处理器132不可用于OS 115,这使得扩展逻辑处理器132保持可用于执行SFW实例121的指令。例如,当指令126由扩展逻辑处理器132执行时,指令126可以使得扩展逻辑处理器132进入系统管理模式(SMM),并且当OS 115由至少计算逻辑处理器142执行时,保持在SMM。在这样的示例中,当指令126由逻辑处理器132执行时,指令126可以将扩展逻辑处理器132置于SMM,并且当OS由该分区的其它逻辑处理器(即,该分区的计算逻辑处理器)执行时,可以使得扩展逻辑处理器132保持在SMM。
在本文所描述的示例中,系统管理模式(SMM)可以是逻辑处理器在其中执行逻辑处理器被配置为在其中操作的SFW域的SFW代码的模式。在SMM,扩展逻辑处理器132可以访问与SFW实例121相关联的SFW域的系统管理存储器区域(例如,SMRAM),并且可以执行存储在该系统管理存储器区域中的SFW代码(例如,SFW实例121的指令)。例如,在SMM,扩展逻辑处理器132不可用于由OS 115所利用以运行OS 115的任何部分或在OS 115中运行的应用的任何部分。
此外,例如,在SMM,扩展逻辑处理器132保持可用于执行SFW实例121的指令,诸如,响应于检测到SMI的SMI处理单元的指令,以及响应于错误指示的错误处理单元的指令。在这样的示例中,SMI处理单元和错误处理单元的指令可以是SFW实例121的指令,并且可以在引导过程期间已经被复制到系统管理存储器区域中。在这样的示例中,在SMM,扩展逻辑处理器132可以执行来自系统管理存储器区域的这些指令。
在其它示例中,指令126可以使扩展逻辑处理器132不可用于OS 115,以使得扩展逻辑处理器132保持可用于以任何其它合适的方式执行SFW实例121的指令。例如,指令126可以使扩展逻辑处理器132执行由SFW实例121的指令实施的循环(loop),以使得扩展逻辑处理器132保持执行SFW 实例121的指令,并且可用于从该循环中被取出以执行其它的SFW代码,诸如如上文所描述的SMI处理单元或错误处理单元。
在图1的示例中,指令128可以使计算逻辑处理器142、计算刀片设备的所识别的存储器以及扩展刀片设备的所识别的存储器可供由OS 115使用。例如,计算逻辑处理器142可以是用于该分区的主逻辑处理器。在这样的示例中,当指令128由计算逻辑处理器142执行时,指令128可以通过向OS 115提供识别计算逻辑处理器142、计算刀片设备的所识别的存储器、以及扩展刀片设备的所识别的存储器这些资源的信息,以使这些资源可供由OS 115使用。
可以采用任何合适的格式或数据结构(例如,表格等)将识别这些资源的信息提供给OS 115。例如,指令128可以采用至少一个ACPI表将该信息提供给OS 115。在一些示例中,指令128可以部分地基于对存储器134 的所识别的可用存储器和存储器144的所识别的可用存储器的相应的描述来构建ACPI表。在这样的示例中,还可以将对与其它刀片设备的逻辑处理器相关联的存储器的描述经由服务存储器和服务处理器提供给主逻辑处理器,如上文所描述的那样。另外,指令128可以将扩展逻辑处理器132的任何标识排除在ACPI表外,以使得扩展逻辑处理器132不被识别为可供 OS 115利用的。
当使计算逻辑处理器142以及计算刀片设备和扩展刀片设备的所识别的存储器可用于OS 115以后,通过指令128利用所识别的用于OS 115的资源,OS 115可以在该分区上运行。例如,OS 115可以使用计算逻辑处理器142和存储器134和144的所识别的可用存储器来执行和运行应用,而扩展逻辑处理器132不可供OS 115或由OS 115运行的任何应用加以利用。在一些示例中,可以结合本文关于图2-5中的任何一个所描述的功能来提供本文关于图1所描述的功能。
图2是使多个逻辑处理器不可用于OS而保持可用于执行SFW实例的指令的示例性刀片系统200的框图。在图2的示例中,刀片系统200包括刀片机箱205和安装在刀片机箱205中的刀片设备230和240。刀片设备 230在本文中可以指的是扩展刀片设备230,而刀片设备240在本文中可以指的是计算刀片设备240。刀片系统200可以利用刀片设备230和240中的每个的资源来运行OS 115,如上文关于图1所描述的那样。例如,OS 115 可以由刀片系统200的分区来运行,刀片系统200的分区包括至少刀片设备230和240。
在图2的示例中,扩展刀片设备230可以包括扩展逻辑处理器132和与扩展逻辑处理器132相关联的存储器134,如上文关于图1所描述的那样。扩展刀片设备230还可以包括与刀片设备230的存储器238相关联的扩展逻辑处理器236。在其它示例中,刀片设备230可以包括两个以上的逻辑处理器,其中的一些或全部具有相关联的存储器。计算刀片设备240可以包括计算逻辑处理器142和与计算逻辑处理器142相关联的存储器144,如上文关于图1所描述的那样。计算刀片设备240还可以包括与刀片设备240 的存储器248相关联的计算逻辑处理器246。在其它示例中,刀片设备240 可以包括两个以上的逻辑处理器,其中的一些或全部具有相关联的存储器。
刀片系统200还包括利用SFW实例121编码的机器可读存储介质120, SFW实例121包括指令122、124、126及128,如上文关于图1所描述的那样。在图2的示例中,SFW实例121还可以包括至少指令225。在一些示例中,SFW实例121可以包括额外的指令。SFW实例121的指令可以由刀片系统200执行。SFW实例121的指令可以由逻辑处理器132、236、142 和246执行以执行下文关于SFW实例121所描述的功能。
在图2的示例中,在刀片系统200的至少一部分(例如,运行OS 115 的分区)重置之后,指令122可以配置计算刀片设备240的计算逻辑处理器142和246以及扩展刀片设备230的扩展逻辑处理器132和236中的每一个,以作为与SFW实例121相关联的单个SFW域的一部分进行操作,如关于图1的刀片系统100所描述的那样。例如,可以通过利用SFW实例 121引导逻辑处理器132、236、142、246中的每个,来将逻辑处理器132、 236、142、246中的每个配置为作为与SFW实例121相关联的SFW域的一部分(即,作为相同的SFW域的一部分)进行操作。
在图2的示例中,指令124可以针对第一多个和第二多个逻辑处理器中的每个逻辑处理器,识别与逻辑处理器相关联的可用存储器,如上文关于图1所描述的那样。例如,当执行指令124时,扩展逻辑处理器132和 236可以识别存储器134和238中的可用存储器,而计算逻辑处理器142和 246可以识别存储器144和248中的可用存储器。另外,当执行指令124时,逻辑处理器132和236可以将所识别的可用存储器的描述256存储在刀片设备230的服务存储器235中。描述256可以是由逻辑处理器132和236 中的每个所识别的存储器的单个描述,或由每个逻辑处理器所识别的存储器的各自的描述。在其中刀片设备240包括刀片系统200(包括刀片设备 230和240)的分区的主逻辑处理器(例如,逻辑处理器142)的示例中,用于执行管理固件指令的刀片设备230的服务处理器可以将描述256提供给刀片设备240。在这样的示例中,刀片设备230的服务处理器可以将描述 256提供给刀片设备240的服务处理器,其可以将所接收到的描述256存储在刀片设备240的服务存储器245中,其中,描述256是主逻辑处理器(例如,逻辑处理器142)可访问的。在这样的示例中,与主逻辑处理器在相同的刀片设备上的逻辑处理器可以将所识别的存储器的描述以任何适当的方式传送到主逻辑处理器。在其它示例中,当执行指令124时,第一多个和第二多个的逻辑处理器可以将所识别的可用存储器的描述存储在该分区的共享存储器区域中。在这样的示例中,共享存储器区域可以由一个刀片设备的存储器来实施或者由该分区的多个刀片设备中的每个的存储器区域来实施。在本文所描述的示例中,服务处理器可以是以下各项中的至少一项:CPU、基于半导体的微处理器、适合用于取回和执行存储在机器可读存储介质上的指令的其它电子电路或其组合。
如上所述,OS 115可以由包括至少刀片设备230和240的刀片系统200 的分区来运行。在这样的示例中,该分区可以利用刀片设备230和240的每个的资源来运行OS 115。在这样的示例中,刀片系统200可以存储描述该分区的配置的方面的分区信息。在图2的示例中,在对该分区的控制被移交给OS 115之前,指令225可以访问将刀片设备230指定为扩展刀片设备的分区信息237。在一些示例中,刀片设备230可以包括刀片系统200的第一多个逻辑处理器,包括例如逻辑处理器132和236。指令225还可以访问将刀片设备240指定为计算刀片设备的分区信息247。在一些示例中,刀片设备240可以包括刀片系统200的第二多个逻辑处理器,包括例如逻辑处理器142和246。
在一些示例中,分区信息237可以是该分区的分区信息的一部分,并且可以包括与刀片设备230相关的配置信息。刀片设备230可以利用刀片设备230的服务处理器访问该分区的分区信息,并且将分区信息237存储在刀片设备230的服务存储器235中。在一些示例中,分区信息247可以是该分区的分区信息的一部分,并且可以包括与刀片设备240相关的配置信息。计算刀片设备240可以利用刀片设备240的服务处理器访问该分区的分区信息,并且将分区信息247存储在刀片设备240的服务存储器245 中。在这样的示例中,执行指令225的扩展逻辑处理器132和236中的每个均可以访问分区信息237,并且基于分区信息237确定刀片设备230被指定为扩展刀片设备(即,被指定为用于提供存储器以供OS使用而不提供逻辑处理器供OS使用的刀片设备)。另外,执行指令225的计算逻辑处理器 142和246中的每个均可以访问分区信息247,并且基于分区信息247确定刀片设备240被指定为计算刀片设备(即,被指定为用于提供存储器和至少一个逻辑处理器以供OS使用的刀片设备)。
在确定包括第一多个逻辑处理器(即,逻辑处理器132和236)的刀片设备230被指定为扩展刀片设备之后,指令126可以使第一多个逻辑处理器中的每个均不可用于OS,以使得它们均保持可用于执行SFW实例的指令,如上文关于图1所描述的那样。例如,当OS由该分区执行时,逻辑处理器132和236中的每个均可以执行指令126以进入并保持在SMM。
在其它示例中,可以使被指定为扩展刀片设备的刀片设备230的逻辑处理器中的一个不可用于OS 115,以使得其保持可用于执行SFW实例121 的指令,而可以使刀片设备230的其它逻辑处理器不可用于该OS,以使得它们不保持可用于执行SFW实例121的指令。例如,可以将刀片设备230 的其余逻辑处理器置于挂起状态(halt state)、初始化状态(例如,正在等待启动处理器间中断(SIPI))等。在这样的示例中,保持可用于执行SFW 实例121的指令的这一逻辑处理器可以被用于对刀片设备的管理。例如,在包括多个扩展刀片设备的示例中,每个扩展刀片设备的一个逻辑处理器可以保持可用于执行SFW实例121的指令。
在图2的示例中,指令128可以使第二多个逻辑处理器中的每个、与第一多个逻辑处理器的每个逻辑处理器相关联的所识别的存储器、以及与第二多个逻辑处理器的每个逻辑处理器相关联的所识别的存储器可供由 OS 115使用。指令128可以使这些资源如上文关于图1所描述的那样供由 OS 115使用。例如,指令128可以产生将要提供给OS 115的至少一个ACPI 表252。
在一些示例中,计算逻辑处理器142可以是用于运行OS 115的分区的主逻辑处理器。在这样的示例中,当指令128由计算逻辑处理器142执行时,指令128可以在ACPI表252的至少一个中指示计算逻辑处理器132 和142是可供由OS 115使用的。指令128还可以指示ACPI表252的至少一个;计算刀片设备240的所识别的存储器及扩展刀片设备230的所识别的存储器是可供由OS 115使用的。计算刀片设备240的所识别的存储器可以包括刀片设备240的存储器144和248的所识别的可用存储器,而扩展刀片设备230的所识别的存储器可以包括刀片设备230的存储器134和238 的所识别的可用存储器。
指令128还可以将ACPI表存储在OS 115可访问的存储器区域250中,以使得OS 115可以利用ACPI表中所标识的资源。在这样的示例中,ACPI 表中的每个均可以不包括关于扩展逻辑处理器132和236(例如,第一多个的逻辑处理器中的每个)的任何信息。以这种方式,没有让OS 115意识到扩展逻辑处理器132和236。在一些示例中,指令128还可以在ACPI表252 中提供扩展刀片设备230的所识别的存储器的邻近域(proximity domain) 信息。在这样的示例中,邻近域信息可以指示从刀片设备240的计算逻辑处理器到扩展刀片设备230的所识别的存储器的功能距离(functional distance)。在一些示例中,可以结合本文关于图1和图3-5中的任何一个所描述的功能来提供本文关于图2所描述的功能。
图3是使得计算刀片设备和扩展刀片设备的存储器可用于系统300的分区的OS的示例性系统300的框图。在图3的示例中,系统300(例如,刀片系统300)包括刀片机箱305,和安装在刀片机箱305中的刀片设备330、 340和370。在其它的示例中,系统300可以包括安装在刀片机箱305中的更多或更少的刀片设备。刀片设备330在本文中可以指的是扩展刀片设备 330,而刀片设备340在本文中可以指的是计算刀片设备340。
在图3的示例中,扩展刀片设备330包括逻辑处理器332、与逻辑处理器332相关联的存储器334、用于管理存储器334的存储器控制器331以及节点控制器333。逻辑处理器332在本文中可以指的是扩展逻辑处理器332。可以将存储器控制器331和扩展逻辑处理器332集成到单个CPU IC内。例如,可以将存储器控制器331集成到包括或组成逻辑处理器332的CPU IC 中。在一些示例中,包括逻辑处理器332和存储器控制器331的CPU IC还可以包括用于管理刀片设备330的其它存储器的额外的存储器控制器。在一些示例中,刀片设备330可以包括多个逻辑处理器,其中的一些或全部具有相关联的存储器。
计算刀片设备340包括逻辑处理器342、与逻辑处理器342相关联的存储器344、用于管理存储器344的存储器控制器341以及节点控制器343。逻辑处理器342在本文中可以指的是计算逻辑处理器342。可以将存储器控制器341和计算逻辑处理器342集成到单个CPUIC中。例如,可以将存储器控制器341集成到包括或组成逻辑处理器342的CPU IC中。在一些示例中,包括逻辑处理器342和存储器控制器341的CPU IC还可以包括用于管理刀片设备340的其它存储器的额外的存储器控制器。在一些示例中,刀片设备340可以包括多个逻辑处理器,其中的一些或全部具有相关联的存储器。可以采用电子电路的形式、采用在机器可读存储介质上编码的可执行指令的形式或其组合来实施存储器控制器331和341以及节点控制器333 和343中的每个的功能。
刀片系统300可以如上文关于图1所描述的那样,利用刀片设备330 和340的每个的资源来运行OS 115。例如,OS 115可以由包括至少刀片设备330和340的刀片系统300的分区308来运行。在图3的示例中,例如,分区308可以省略系统300的至少一个刀片设备,诸如刀片设备370。在其它示例中,分区308可以包括安装在刀片机箱305中的额外的刀片设备。
在图3的示例中,刀片系统300包括利用SFW实例321进行编码的刀片机箱存储器320,SFW实例321包括指令322、324、326、328、329、360、 362、364和366。在一些示例中,SFW实例321可以包括额外的指令。SFW 实例321的指令可以由刀片系统300执行。例如,SFW实例321的指令可以由分区308的逻辑处理器(例如,逻辑处理器332和342)来执行,以执行下文关于SFW实例321所描述的的功能。在图3的示例中,可执行SFW 实例321以引导分区308来执行OS 115。
在一些示例中,可以将SFW实例321的指令存储在单个刀片设备的单个机器可读存储介质(例如,闪速设备)上。在这样的示例中,刀片机箱存储器320可以是单个刀片设备的存储器。在其它示例中,分区308的每个刀片设备可以包括各自的存储SFW实例321的至少一部分的副本的机器可读存储介质。在这样的示例中,刀片机箱存储器320可以包括存储一部分SFW实例321的副本的相应的存储器中的每个。在这样的示例中,每个刀片设备的每个逻辑处理器可以至少从SFW实例321的一部分的本地副本开始引导。在这样的示例中,逻辑处理器可以随后收敛为从存储在共享存储器区域中的SFW实例321的共享部分继续引导。
在图3的示例中,SFW实例321可以由分区308的每个逻辑处理器来执行,以在重置之后引导逻辑处理器。例如,在至少分区308的重置之后,当指令322由扩展和计算逻辑处理器332和342执行时,指令322可以配置扩展和计算逻辑处理器332和342以使其作为与SFW实例321相关联的单个SFW域的一部分进行操作,如上文关于图1所描述的那样。在一些示例中,当指令322由逻辑处理器332和342执行时,指令322可以配置扩展和计算逻辑处理器332和342以使其每个当在SMM时均可以访问分区 308的系统管理存储器区域357。例如,指令322可以配置逻辑处理器332 和342的各自的硬件地址映射,以使得至少当在SMM时,逻辑处理器332 和342可以访问与SFW实例321相关联的SFW域的系统管理存储器区域 357(例如,SMRAM)。在这样的示例中,逻辑处理器332和342可以受限地访问系统管理存储器区域357,如上文关于图1所描述的那样(例如,当在SMM时访问)。在一些示例中,系统管理存储器区域357可以是存储器 344的一部分。在其它示例中,系统管理存储器区域357可以是由分区308的任何刀片设备的任何存储器所实施的区域。
在图3的示例中,与SFW实例321相关联的SFW域可以包括多个SFW 资源,如上文关于图1所描述的那样。在这样的示例中,SFW资源可以包括存储在系统管理存储器区域357中的SFW数据结构351和SFW代码,如上文关于图1所描述的那样。在图3的示例中,SFW代码可以包括存储在系统管理存储器区域357中的SMI处理单元353。当指令322由扩展和计算逻辑处理器332和342执行时,指令322可以配置扩展和计算逻辑处理器332和342,以使其每个在SMM均可以访问SFW数据结构351和存储在系统管理存储器区域357中的SMI处理单元353。
当指令324由扩展逻辑处理器332执行时,指令324可以识别与扩展逻辑处理器332相关联的扩展刀片设备330的可用存储器359,如上文关于图1的指令124所描述的那样。可用存储器359可以是存储器334的一部分。另外,当指令324由计算逻辑处理器342执行时,指令324可以识别与计算逻辑处理器342相关联的计算刀片设备340的可用存储器355,如上文关于图1的指令124所描述的那样。可用存储器355可以是不包括系统管理存储器区域357的存储器344的一部分,系统管理存储器区域357可以已经被计算逻辑处理器342预定。
在图3的示例中,当指令326由扩展逻辑处理器332执行时,指令326 可以将对扩展刀片设备330的所识别的存储器359的描述传送到计算逻辑处理器342。在这样的示例中,计算逻辑处理器342可以是用于协调分区 308的引导的主逻辑处理器,并且指令326可以通过将该描述存储在刀片设备330的服务存储器中或者存储在计算逻辑处理器342可访问的分区308 的共享存储器区域中来传送该描述,如上文所描述的那样。
当指令360由计算逻辑处理器342执行时,指令360可以配置计算刀片设备340以使其通过节点控制器333和343以扩展刀片设备330的所识别的存储器359为目标路由存储器事务(memory transaction)。例如,指令 360可以在计算逻辑处理器342中设置路由表,以通过节点控制器343以所识别的存储器359为目标路由存储器事务,并且可以在节点控制器343中设置路由表,以通过刀片设备330的节点控制器333以所识别的存储器359 为目标路由存储器事务。在一些示例中,当指令360由扩展逻辑处理器332 执行时,指令360可以在节点控制器333中配置路由表,以使得节点控制器333可以向所识别的存储器359路由以该存储器为目标的存储器事务(例如,经由存储器控制器331)。
在扩展逻辑处理器332存储了对所识别的存储器359的描述之后,如上文所描述的,扩展逻辑处理器332可以执行指令362,以向扩展逻辑处理器332隐藏扩展刀片设备330的所识别的存储器359。例如,当指令362由逻辑处理器332执行时,指令362可以设置逻辑处理器332的源地址解码器,以使得逻辑处理器332不能够访问所识别的存储器359中的任何。在这样的示例中,指令362可以设置逻辑处理器332的源地址解码器,以使得它们不包含针对存储器334的所识别的存储器359之中的任何地址的地址转换。以这种方式,指令362可以用作防火墙,以使扩展逻辑处理器332 不能访问可供由OS 115使用的所识别的存储器359。在这样的示例中,可以使扩展逻辑处理器332不可供由OS 115使用(如下文所述),并且可以使得可供由OS 115使用的所识别的存储器359不可供由扩展逻辑处理器 332使用。在一些示例中,指令360可以接收将被使得对OS 115可用的所识别的存储器359的选择部分的指示,并且可以向逻辑处理器332隐藏该选择部分而不是剩余部分。
在图3的示例中,扩展逻辑处理器332可以执行指令328以对OS 115 隐藏扩展逻辑处理器332,以使得扩展逻辑处理器不可供由OS 115使用而保持可用于执行SFW实例321的指令。在这样的示例中,逻辑处理器332 可以访问分区信息以确定刀片设备330(即,包括逻辑处理器332的刀片设备)被指定为扩展刀片设备,并且作为响应,执行指令328以使其自身不可供由OS 115使用而保持可用于执行SFW实例321的指令,如上文关于图1所描述的那样。例如,当指令328由逻辑处理器332执行时,指令328 可以使扩展逻辑处理器332进入SMM,并且当OS 115由包括至少计算逻辑处理器342的分区308执行时,保持在SMM。当执行OS 115时,扩展逻辑处理器332可以进入并保持在SMM,如上文关于图1所描述的那样。在一些示例中,指令328可以在扩展逻辑处理器332执行上文关于指令322、 324、326、360和362所描述的功能之后隐藏扩展逻辑处理器332。
在图3的示例中,当指令329由计算逻辑处理器342执行时,指令329 可以使计算逻辑处理器342和所识别的存储器359和355可供由OS 115使用,如上文关于图1和图2所描述的那样。例如,指令328可以在OS 115 可访问的存储器区域中存储ACPI表,该ACPI表包括关于计算逻辑处理器 342和所识别的存储器359和355的信息,但不包括关于扩展逻辑处理器332的任何信息。
在一些示例中,在相同的SFW域中操作的逻辑处理器可以能够与彼此通信。例如,这样的逻辑处理器可以知道彼此的地址,并且可以使用所述地址向彼此发送通信(例如,中断等)。在这样的示例中,例如,逻辑处理器可以利用这样的通信来协调对包括所述逻辑处理器的分区的错误处理。
在图3的示例中,在使用计算逻辑处理器342和所识别的存储器355 和359(并且未使用扩展逻辑处理器332)而引导OS 115以在分区308上运行的之后,计算逻辑处理器342可以检测错误,诸如存储器错误等。响应于错误的检测,计算逻辑处理器342可以执行指令364以向扩展逻辑处理器332提供指示所检测到的错误的中断。例如,指令364可以将该中断提供给逻辑处理器332的地址。在一些示例中,当引导分区308时,指令 364可以已经被复制到系统管理存储器区域357中。在这样的示例中,当在 SMM操作时,计算逻辑处理器342可以执行来自系统管理存储器区域357 的指令364,在SMM,OS 115的执行被中止(suspend)并且逻辑处理器 342可以访问指令364。
如上所述,扩展逻辑处理器332可以处于SMM或以其他方式不可供由 OS 115使用而保持可用于执行SFW实例321的指令。在这样的示例中,扩展逻辑处理器332可以是不可用于被中断的。在一些示例中,当扩展逻辑处理器332执行SFW实例321的指令时,扩展逻辑处理器332可以针对中断指示而轮询中断源(例如,中断未决的寄存器等),并且可以在执行这样的轮询时检测由计算逻辑处理器342提供的中断。例如,当轮询系统管理存储器区域357的状态信息时,执行SFW实例321的指令的扩展逻辑处理器332可以检测中断,该状态信息可以指示该中断是未决的。响应于从计算逻辑处理器342检测到中断,指令366可以由扩展逻辑处理器332执行以从与扩展逻辑处理器332相关联的寄存器收集错误信息382。例如,指令366可以从包括(或组成)扩展逻辑处理器332的CPU IC的机器状态寄存器(MSR)收集错误信息382(例如,错误日志等)。在一些示例中,除了提供中断之外,计算逻辑处理器342还可以提供规定针对扩展逻辑处理器332的特定错误纠正动作的消息以对该错误进行响应,诸如收集错误信息。例如,计算逻辑处理器342可以将该消息存储在系统管理存储器区域 357中,而扩展逻辑处理器332可以针对该消息轮询系统管理存储器区域 357。在这样的示例中,由扩展逻辑处理器332执行的指令366可以进一步向刀片系统300的故障管理设施(FMI)375提供所收集的错误信息382。可以采用电子电路的形式、采用在机器可读存储介质上编码的可执行指令的形式或其组合来实施FMI 375的功能。在一些示例中,当引导分区308时,指令366可以已经被复制到系统管理存储器区域357中,并且当在SMM 时,扩展逻辑处理器332可以执行来自系统管理存储器区域357的指令366。在一些示例中,执行SFW实例321的指令的扩展逻辑处理器332还可以轮询各个错误源(例如,错误寄存器等)以检测错误。
在上文所描述的示例中,分区308可以利用不可用于OS 115的扩展逻辑处理器来收集分区308的错误信息。例如,当计算逻辑处理器342执行 OS 115或运行在OS 115中的应用时,计算逻辑处理器342可以在利用扩展刀片设备359的可用存储器359时检测存储器错误。包括(或组成)扩展逻辑处理器332的CPU IC的MSR可以包括对错误的管理有用的信息。然而,例如,这些MSR可以由CPU IC上的逻辑处理器(例如,CPU或内核) 排它地访问,而不能由计算逻辑处理器342访问。在本文所描述的示例中,通过保持扩展逻辑处理器可用于执行SFW实例321的指令,扩展逻辑处理器332仍然可以可用于收集来自MSR的错误信息,并且将其提供给用于管理错误的FMI 375,如上文所描述的那样,尽管扩展逻辑处理器332不可用于OS 115。在这样的示例中,当扩展逻辑处理器332执行SFW实例321 的指令时,扩展逻辑处理器332可以收集并提供该错误信息。如上文所描述的,执行SFW实例321的指令的扩展逻辑处理器332可以通过轮询用于检测中断的中断源来检测中断。在这样的示例中,执行SFW实例321的指令的扩展逻辑处理器332可以通过不轮询可能来自OS 115的任何中断来保持不可用于被OS 115中断。以这种方式,扩展逻辑处理器332(以及本文所描述的任何其它的扩展逻辑处理器)可以忽略来自OS 115的中断。在一些示例中,可以结合本文关于图1-2和图4-5的任何一个所描述的功能来提供本文关于图3所描述的功能。
图4是用于在利用计算逻辑处理器执行OS期间保持扩展逻辑处理器在 SMM的示例性方法400的流程图。尽管下文参考图3的刀片系统300描述方法400的执行,但是可以利用用于方法400的执行的其它适当的系统(例如,刀片系统100或200)。另外,方法400的实施不限于这些示例。
在方法400的405,在重置至少分区308之后,由逻辑处理器332和 342执行的指令324可以识别与计算逻辑处理器342相关联的计算刀片设备 340的可用存储器355以及与扩展逻辑处理器332相关联的扩展刀片设备 330的可用存储器359,如上文所描述的那样。在410,由计算逻辑处理器 342所执行的指令329可以使计算逻辑处理器342、计算刀片设备340的所识别的存储器355以及扩展刀片设备330的所识别的存储器359可供由OS 115使用,如上文所描述的那样。
在415,由扩展逻辑处理器332所执行的指令328可以在分区308开始执行OS 115之前,将扩展逻辑处理器332置于SMM。响应于确定刀片设备330被指定为扩展刀片设备,指令328可以使扩展逻辑处理器332进入 SMM,如上文所描述的那样。
在420,分区308可以利用至少计算逻辑处理器342开始执行OS 115。例如,分区308可以利用SFW实例321来引导OS 115,如上文所描述的那样,并且然后由计算逻辑处理器342利用可被用于OS 115的分区308的资源(例如,如上文所描述的,在提供给OS 115的ACPI表中)来开始执行 OS 115。在这样的示例中,分区308可以利用至少计算逻辑处理器342和所识别的存储器355和359来执行OS 115,而扩展逻辑处理器332是不可用于OS 115的。在一些示例中,分区308还可以利用分区308的另外的资源来执行OS 115,诸如分区308的刀片设备的其它存储器和分区308的其它计算逻辑处理器。
在425,由扩展逻辑处理器332所执行的指令328可以在OS 115的执行期间保持扩展逻辑处理器332在SMM,以使得扩展逻辑处理器332不可供由OS 115使用。在这样的示例中,通过保持扩展逻辑处理器332在SMM,扩展逻辑处理器332可以保持可用于执行SFW实例321的指令,而其不可用于OS 115。当在SMM时,扩展逻辑处理器332也不可用于被OS 115中断,如上文所描述的那样。
尽管图4的流程图示出了特定功能的特定执行顺序,但是方法400并不限于该顺序。例如,在流程图中连续示出的功能可以按照不同的顺序来执行,可以并发地或部分并发地或其组合来执行。在一些示例中,可以结合本文关于图1-3和图5的任何一个所描述的功能来提供本文关于图4所描述的功能。
图5是用于响应于计算逻辑处理器检测到的错误来利用扩展逻辑处理器收集错误信息的示例性方法500的流程图。尽管下文参考图3的刀片系统300描述方法500的执行,但是可以利用执行方法500的其它适当的系统(例如,刀片系统100或200)。另外,方法500的实施不限于这些示例。
在方法500的505,在重置至少分区308之后,由逻辑处理器332和 342所执行的指令324可以识别与计算逻辑处理器342相关联的计算刀片设备340的可用存储器355以及与扩展逻辑处理器332相关联的扩展刀片设备330的可用存储器359,如上文所描述的那样。在510,指令360可以配置计算刀片设备340以通过计算刀片设备340的节点控制器343以扩展刀片设备330的所识别的存储器359为目标来路由存储器事务,如上文关于图3所描述的那样。在一些示例中,节点控制器343可以与扩展刀片设备 330的节点控制器333进行通信。
在515,由计算逻辑处理器342所执行的指令329可以使计算逻辑处理器342、计算刀片设备340的所识别的存储器355、以及扩展刀片设备330 的所识别的存储器359可供由OS 115使用,如上文所描述的那样。在520,由扩展逻辑处理器332所执行的指令328可以在分区308开始执行OS 115 之前,将扩展逻辑处理器332置于系统管理模式(SMM),如上文所描述的那样。
在步骤525,分区308可以利用至少计算逻辑处理器342开始执行OS 115。例如,分区308可以利用SFW实例321引导OS 115,如上文所描述的那样,并且然后由计算逻辑处理器342利用可被用于OS 115的至少分区 308的资源来开始执行OS 115(例如,如上文所描述的,在提供给OS 115 的ACPI表中)。在530,由扩展逻辑处理器332所执行的指令328可以在OS 115的执行期间保留扩展逻辑处理器332在SMM,以使得扩展逻辑处理器332不可供由OS115使用,而保持可用于执行SFW实例321的指令。
在535,在至少计算逻辑处理器342上执行的OS 115可以经由节点控制器343在OS115的活动操作期间访问扩展刀片设备330的所识别的存储器359。在这样的示例中,OS 115可以在不进入SMM的情况下访问所识别的存储器359,或以其它方式在执行OS 115的逻辑处理器的任何逻辑处理器上中止OS 115的操作。同样,在这样的示例中,计算刀片设备340可以通过节点控制器343对访问所识别的存储器359的任何事务进行路由。
在540,计算逻辑处理器342可以检测错误。例如,计算逻辑处理器 342可以检测在访问刀片设备330的所识别的存储器359时发生的存储器错误,如上文所描述的那样。响应于检测到该错误,在545,计算逻辑处理器 342可以向扩展逻辑处理器332提供中断,如上文所描述的那样。响应于该中断,在550,扩展逻辑处理器332可以从与扩展逻辑处理器332相关联的寄存器收集错误信息,诸如包括或组成扩展逻辑处理器332的CPU IC的 MSR。在一些示例中,在针对中断指示进行轮询时,在SMM操作的扩展逻辑处理器332可以检测中断,如上文关于图3所描述的那样。在555,扩展逻辑处理器332可以向刀片系统300的故障管理设施(FMI)375提供所收集的错误信息382。
尽管图5的流程图示出了特定功能的特定执行顺序,但是方法500并不限于该顺序。例如,在流程图中连续示出的功能可以按照不同的顺序来执行,可以并发地或部分并发地或其组合来执行。在一些示例中,可以结合本文关于图1-4的任何一个所描述的功能来提供本文关于图5所描述的功能。

Claims (14)

1.一种利用系统固件SFW实例编码的非暂时性机器可读存储介质,所述SFW实例包括可由刀片系统执行以进行以下操作的指令:
配置计算刀片设备的计算逻辑处理器和扩展刀片设备的扩展逻辑处理器中的每个,以使其作为与所述SFW实例相关联的单个SFW域的一部分进行操作,其中,所述刀片系统包括安装在刀片机箱中的所述计算刀片设备和所述扩展刀片设备;
识别与所述计算逻辑处理器相关联的所述计算刀片设备的可用存储器和与所述扩展逻辑处理器相关联的所述扩展刀片设备的可用存储器;
对所述扩展逻辑处理器隐藏所述扩展刀片设备的所识别的存储器;
使所述计算逻辑处理器和所述计算刀片设备的所识别的存储器以及所述扩展刀片设备的所识别的存储器可供由所述刀片系统的操作系统OS使用;以及
使所述扩展逻辑处理器不可用于所述OS,以使得所述扩展逻辑处理器保持可用于执行所述SFW实例的指令。
2.根据权利要求1所述的存储介质,其中,用于使所述扩展逻辑处理器不可用的所述指令包括这样的指令:当其被所述扩展逻辑处理器执行时,使得所述扩展逻辑处理器进入系统管理模式SMM,并且当所述OS被至少所述计算逻辑处理器执行时使得所述扩展逻辑处理器保持在所述SMM。
3.根据权利要求1所述的存储介质,其中,用于使可用的所述指令包括用于进行以下操作的指令:
在至少一个高级配置与电源接口ACPI表中指示所述计算逻辑处理器可供由所述OS使用;
在所述至少一个ACPI表中指示所述计算刀片设备的所识别的存储器和所述扩展刀片设备的所识别的存储器可供由所述OS使用;以及
将所述至少一个ACPI表存储在所述OS可访问的存储器区域中,每个所述至少一个ACPI表均不包括关于所述扩展逻辑处理器的任何信息。
4.根据权利要求3所述的存储介质,其中,用于使可用的所述指令包括用于进行以下操作的指令:
在所述至少一个ACPI表中提供所述扩展刀片设备的所识别的存储器的邻近域信息,所述邻近域信息指示从所述计算逻辑处理器到所述扩展刀片设备的所识别的存储器的功能距离。
5.根据权利要求1所述的存储介质,其中,所述SFW实例进一步包括可由所述刀片系统执行以进行以下操作的指令:
访问第一分区信息,所述第一分区信息将所述扩展刀片指定为用于提供可供由所述OS使用的存储器而不提供可供由所述OS使用的逻辑处理器的刀片设备,并且标识可用于所述OS的所述刀片系统的第二多个逻辑处理器,其中,所述扩展刀片设备包括不可用于所述OS的所述刀片系统的第一多个逻辑处理器;以及
访问第二分区信息,所述第二分区信息将所述计算刀片指定为用于提供可供由所述OS使用的存储器和至少一个逻辑处理器的刀片设备,其中,所述计算刀片设备包括第二多个逻辑处理器;
其中,所述第一多个包括所述扩展逻辑处理器,而所述第二多个包括所述计算逻辑处理器。
6.根据权利要求5所述的存储介质,其中:
用于识别的所述指令包括:用于针对所述第一多个逻辑处理器和所述第二多个逻辑处理器中的每个逻辑处理器来识别与所述逻辑处理器相关联的可用存储器的指令;
用于使可用的所述指令包括:用于使所述第二多个逻辑处理器中的每个逻辑处理器以及与所述第一多个逻辑处理器和所述第二多个逻辑处理器中的每个逻辑处理器相关联的所识别的存储器可供由所述OS使用的指令;以及
用于使所述扩展逻辑处理器不可用于所述OS的所述指令包括:用于使所述第一多个逻辑处理器中的每个逻辑处理器不可用于所述OS而每个均保持可用于执行所述SFW实例的指令的指令。
7.一种用于刀片系统的系统,包括:
刀片机箱存储器,其存储用于引导分区来执行操作系统OS的系统固件SFW实例;
所述分区的计算刀片设备的计算逻辑处理器;以及
所述分区的扩展刀片设备的扩展逻辑处理器,其中,所述SFW实例包括可由所述扩展逻辑处理器执行以进行以下操作的指令:
向所述计算逻辑处理器传送对与所述扩展逻辑处理器相关联的所述扩展刀片设备的所识别的可用存储器的描述;
对所述OS隐藏所述扩展逻辑处理器,以使得所述扩展逻辑处理器不可供由所述OS使用而保持可用于执行所述SFW实例的指令;以及
对所述扩展逻辑处理器隐藏所述扩展刀片设备的所识别的存储器,
其中,所述SFW实例包括可由所述计算逻辑处理器执行以进行以下操作的指令:
识别与所述计算逻辑处理器相关联的所述计算刀片设备的可用存储器;以及
使所述计算逻辑处理器以及所述计算刀片设备和所述扩展刀片设备中的每个的所识别的存储器可供由所述OS使用。
8.根据权利要求7所述的系统,其中,所述SFW实例包括可由所述扩展逻辑处理器和所述计算逻辑处理器执行以进行以下操作的指令:
配置所述扩展逻辑处理器和所述计算逻辑处理器,以使其在系统管理模式SMM能够访问系统管理存储器区域。
9.根据权利要求8所述的系统,进一步包括:
所述扩展刀片设备的第一节点控制器;以及
所述计算刀片设备的第二节点控制器;
其中,所述SFW实例包括可由所述计算逻辑处理器执行以进行以下操作的指令:
配置所述计算刀片设备以通过所述第一节点控制器和所述第二节点控制器以所述扩展刀片设备的所识别的存储器为目标来路由存储器事务。
10.根据权利要求8所述的系统,其中:
所述SFW实例包括可由所述计算逻辑处理器执行以进行以下操作的指令:
向所述扩展逻辑处理器提供指示错误的中断;以及
所述SFW实例包括可由所述扩展逻辑处理器执行以进行以下操作的指令:
响应于所述中断,从与所述扩展逻辑处理器相关联的寄存器收集错误信息;以及
向故障管理设施提供所收集的错误信息。
11.根据权利要求8所述的系统,其中:
与所述SFW实例相关联的SFW域包括:存储在所述分区的系统管理存储器区域中的SFW数据结构和系统管理中断SMI处理单元;以及
用于配置的所述指令包括:可由所述扩展逻辑处理器和所述计算逻辑处理器执行以进行以下操作的指令:配置所述计算逻辑处理器和所述扩展逻辑处理器以使其每个在所述SMM均能够访问存储在所述系统管理存储器区域中的所述SFW数据结构和所述SMI处理单元。
12.一种可以由刀片机箱的分区执行的方法,所述刀片机箱包括计算刀片设备、扩展刀片设备以及刀片机箱存储器,所述计算刀片设备包括计算逻辑处理器,所述扩展刀片设备包括扩展逻辑处理器,所述刀片机箱存储器存储用于引导所述分区来执行操作系统OS的系统固件SFW实例,所述方法包括:
通过执行所述SFW实例的指令,识别与所述计算逻辑处理器相关联的所述计算刀片设备的可用存储器和与所述扩展逻辑处理器相关联的所述扩展刀片设备的可用存储器;
使所述计算逻辑处理器以及所述计算刀片设备和所述扩展刀片设备中的每个的所识别的存储器可供由所述OS使用;
对所述扩展逻辑处理器隐藏所述扩展刀片设备的所识别的存储器;
在开始执行所述OS之前,将所述扩展逻辑处理器置于系统管理模式SMM;
至少利用所述计算逻辑处理器开始执行所述OS;以及
在所述OS的执行期间保持所述扩展逻辑处理器处于所述SMM,以使得所述扩展逻辑处理器不可供由所述OS使用。
13.根据权利要求12所述的方法,进一步包括:
配置所述计算刀片设备以使其通过与所述扩展刀片设备通信的所述计算刀片设备的节点控制器以所述扩展刀片设备的所识别的存储器为目标来路由存储器事务;以及
利用所述OS,经由所述节点控制器,在所述OS的活动操作期间,访问所述扩展刀片设备的所识别的存储器。
14.根据权利要求13所述的方法,进一步包括:
利用所述计算逻辑处理器检测错误;
响应于检测到所述错误,从所述计算逻辑处理器向所述扩展逻辑处理器提供中断;
响应于所述中断,利用所述扩展逻辑处理器,从与所述扩展逻辑处理器相关联的寄存器收集错误信息;以及
向故障管理设施FMI提供所收集的错误信息。
CN201380075168.2A 2013-03-28 2013-03-28 使计算刀片设备和扩展刀片设备的存储器可供由操作系统使用 Active CN105074653B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/034202 WO2014158152A1 (en) 2013-03-28 2013-03-28 Making memory of compute and expansion blade devices available for use by an operating system

Publications (2)

Publication Number Publication Date
CN105074653A CN105074653A (zh) 2015-11-18
CN105074653B true CN105074653B (zh) 2018-11-23

Family

ID=51624937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380075168.2A Active CN105074653B (zh) 2013-03-28 2013-03-28 使计算刀片设备和扩展刀片设备的存储器可供由操作系统使用

Country Status (5)

Country Link
US (1) US9781015B2 (zh)
EP (1) EP2979170B1 (zh)
CN (1) CN105074653B (zh)
TW (1) TWI526845B (zh)
WO (1) WO2014158152A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014158161A1 (en) * 2013-03-28 2014-10-02 Hewlett-Packard Development Company, L.P. Error coordination message for a blade device having a logical processor in another system firmware domain
WO2017049594A1 (en) 2015-09-25 2017-03-30 Intel Corporation Efficient memory activation at runtime
CN110851183B (zh) * 2018-08-20 2024-04-12 联想企业解决方案(新加坡)有限公司 在多处理器体系结构中快速启动处理器的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1976281A (zh) * 2005-11-30 2007-06-06 株式会社日立制作所 信息处理装置和认证方法
TW201232416A (en) * 2010-11-02 2012-08-01 Ibm Unified resource manager providing a single point of control
CN102804151A (zh) * 2009-06-29 2012-11-28 惠普开发有限公司 访问作为缓存一致性域的部分的内存刀片的内存代理

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5435001A (en) 1993-07-06 1995-07-18 Tandem Computers Incorporated Method of state determination in lock-stepped processors
US7064376B2 (en) 1996-05-24 2006-06-20 Jeng-Jye Shau High performance embedded semiconductor memory devices with multiple dimension first-level bit-lines
US6542926B2 (en) * 1998-06-10 2003-04-01 Compaq Information Technologies Group, L.P. Software partitioned multi-processor system with flexible resource sharing levels
US6094699A (en) 1998-02-13 2000-07-25 Mylex Corporation Apparatus and method for coupling devices to a PCI-to-PCI bridge in an intelligent I/O controller
US6631448B2 (en) 1998-03-12 2003-10-07 Fujitsu Limited Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
US6199107B1 (en) 1998-07-22 2001-03-06 Microsoft Corporation Partial file caching and read range resume system and method
US6418525B1 (en) 1999-01-29 2002-07-09 International Business Machines Corporation Method and apparatus for reducing latency in set-associative caches using set prediction
US6279085B1 (en) 1999-02-26 2001-08-21 International Business Machines Corporation Method and system for avoiding livelocks due to colliding writebacks within a non-uniform memory access system
US6453344B1 (en) 1999-03-31 2002-09-17 Amdahl Corporation Multiprocessor servers with controlled numbered of CPUs
US20020099886A1 (en) 1999-05-17 2002-07-25 Emerson Theodore F. System and method for controlling remote console functionality assist logic
US6684343B1 (en) 2000-04-29 2004-01-27 Hewlett-Packard Development Company, Lp. Managing operations of a computer system having a plurality of partitions
US7096469B1 (en) 2000-10-02 2006-08-22 International Business Machines Corporation Method and apparatus for enforcing capacity limitations in a logically partitioned system
US7603516B2 (en) 2000-12-15 2009-10-13 Stmicroelectronics Nv Disk controller providing for the auto-transfer of host-requested-data from a cache memory within a disk memory system
US6988169B2 (en) 2001-04-19 2006-01-17 Snowshore Networks, Inc. Cache for large-object real-time latency elimination
TWI231424B (en) 2002-06-28 2005-04-21 Quanta Comp Inc Management and preparation system of blade server
US7055071B2 (en) 2003-01-09 2006-05-30 International Business Machines Corporation Method and apparatus for reporting error logs in a logical environment
US7155370B2 (en) 2003-03-20 2006-12-26 Intel Corporation Reusable, built-in self-test methodology for computer systems
US7222339B2 (en) * 2003-06-13 2007-05-22 Intel Corporation Method for distributed update of firmware across a clustered platform infrastructure
US20050015430A1 (en) * 2003-06-25 2005-01-20 Rothman Michael A. OS agnostic resource sharing across multiple computing platforms
US7363484B2 (en) 2003-09-15 2008-04-22 Hewlett-Packard Development Company, L.P. Apparatus and method for selectively mapping proper boot image to processors of heterogeneous computer systems
US7251746B2 (en) 2004-01-21 2007-07-31 International Business Machines Corporation Autonomous fail-over to hot-spare processor using SMI
US7383461B2 (en) 2004-02-12 2008-06-03 International Business Machines Corporation Method and system to recover a failed flash of a blade service processor in a server chassis
US7512830B2 (en) 2004-05-14 2009-03-31 International Business Machines Corporation Management module failover across multiple blade center chassis
US7873776B2 (en) 2004-06-30 2011-01-18 Oracle America, Inc. Multiple-core processor with support for multiple virtual processors
US7409594B2 (en) 2004-07-06 2008-08-05 Intel Corporation System and method to detect errors and predict potential failures
US7426657B2 (en) 2004-07-09 2008-09-16 International Business Machines Corporation System and method for predictive processor failure recovery
US7404105B2 (en) 2004-08-16 2008-07-22 International Business Machines Corporation High availability multi-processor system
US7694298B2 (en) 2004-12-10 2010-04-06 Intel Corporation Method and apparatus for providing virtual server blades
KR100699473B1 (ko) * 2005-05-19 2007-03-26 삼성전자주식회사 화상형성장치 및 화상형성장치와 연결된 외부 메모리부의파티션 인식방법
US7480747B2 (en) 2005-06-08 2009-01-20 Intel Corporation Method and apparatus to reduce latency and improve throughput of input/output data in a processor
US8484213B2 (en) 2005-08-31 2013-07-09 International Business Machines Corporation Heterogenous high availability cluster manager
US20070067614A1 (en) * 2005-09-20 2007-03-22 Berry Robert W Jr Booting multiple processors with a single flash ROM
JP4394624B2 (ja) 2005-09-21 2010-01-06 株式会社日立製作所 計算機システム及びi/oブリッジ
US7474623B2 (en) 2005-10-27 2009-01-06 International Business Machines Corporation Method of routing I/O adapter error messages in a multi-host environment
US7814366B2 (en) 2005-11-15 2010-10-12 Intel Corporation On-demand CPU licensing activation
US20070150713A1 (en) * 2005-12-22 2007-06-28 International Business Machines Corporation Methods and arrangements to dynamically modify the number of active processors in a multi-node system
US7552283B2 (en) 2006-01-20 2009-06-23 Qualcomm Incorporated Efficient memory hierarchy management
US7797756B2 (en) * 2006-04-18 2010-09-14 Hewlett-Packard Development Company, L.P. System and methods for managing software licenses in a variable entitlement computer system
US7827387B1 (en) 2006-09-08 2010-11-02 Marvell International Ltd. Communication bus with hidden pre-fetch registers
US20080183626A1 (en) 2007-01-31 2008-07-31 Francisco Romero Software license agreement management based on temporary usage
US20080229049A1 (en) 2007-03-16 2008-09-18 Ashwini Kumar Nanda Processor card for blade server and process.
US7734859B2 (en) * 2007-04-20 2010-06-08 Nuon, Inc Virtualization of a host computer's native I/O system architecture via the internet and LANs
US8788750B2 (en) 2007-04-27 2014-07-22 Hewlett-Packard Development Company, L.P. Managing resources in cluster storage systems
US8813080B2 (en) 2007-06-28 2014-08-19 Intel Corporation System and method to optimize OS scheduling decisions for power savings based on temporal characteristics of the scheduled entity and system workload
US8230145B2 (en) * 2007-07-31 2012-07-24 Hewlett-Packard Development Company, L.P. Memory expansion blade for multiple architectures
US20090119748A1 (en) 2007-08-30 2009-05-07 Jiewen Yao System management mode isolation in firmware
US7865762B2 (en) 2007-12-04 2011-01-04 Intel Corporation Methods and apparatus for handling errors involving virtual machines
US8069359B2 (en) 2007-12-28 2011-11-29 Intel Corporation System and method to establish and dynamically control energy consumption in large-scale datacenters or IT infrastructures
US7802042B2 (en) 2007-12-28 2010-09-21 Intel Corporation Method and system for handling a management interrupt event in a multi-processor computing device
US20090172232A1 (en) 2007-12-28 2009-07-02 Zimmer Vincent J Method and system for handling a management interrupt event
US7441135B1 (en) 2008-01-14 2008-10-21 International Business Machines Corporation Adaptive dynamic buffering system for power management in server clusters
US7921179B1 (en) 2008-01-15 2011-04-05 Net App, Inc. Reducing latency of access requests in distributed storage systems having a shared data set
US8180996B2 (en) 2008-05-15 2012-05-15 Calxeda, Inc. Distributed computing system with universal address system and method
US8244918B2 (en) * 2008-06-11 2012-08-14 International Business Machines Corporation Resource sharing expansion card
WO2009154626A1 (en) 2008-06-19 2009-12-23 Hewlett-Packard Development Company, L.P. Multi-blade interconnector
US8347070B1 (en) * 2008-10-30 2013-01-01 Hewlett-Packard Development Company, L.P. System and methods for sharing platform data with an ACPI module of a computer system
US8144582B2 (en) 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment
US8352710B2 (en) * 2009-01-19 2013-01-08 International Business Machines Corporation Off-loading of processing from a processor blade to storage blades
US8140871B2 (en) 2009-03-27 2012-03-20 International Business Machines Corporation Wake on Lan for blade server
US8151027B2 (en) 2009-04-08 2012-04-03 Intel Corporation System management mode inter-processor interrupt redirection
CN101989212B (zh) * 2009-07-31 2015-01-07 国际商业机器公司 提供用于启动刀片服务器的虚拟机管理程序的方法和装置
US8880682B2 (en) 2009-10-06 2014-11-04 Emc Corporation Integrated forensics platform for analyzing IT resources consumed to derive operational and architectural recommendations
US9767070B2 (en) * 2009-11-06 2017-09-19 Hewlett Packard Enterprise Development Lp Storage system with a memory blade that generates a computational result for a storage device
US8713350B2 (en) 2009-12-08 2014-04-29 Hewlett-Packard Development Company, L.P. Handling errors in a data processing system
US8601128B2 (en) 2009-12-10 2013-12-03 Hewlett-Packard Development Company, L.P. Managing hardware resources for soft partitioning
US8793481B2 (en) * 2009-12-10 2014-07-29 Hewlett-Packard Development Company, L.P. Managing hardware resources for soft partitioning
US8151147B2 (en) 2009-12-17 2012-04-03 Hewlett-Packard Development Company, L.P. Synchronize error handling for a plurality of partitions
JP5299559B2 (ja) 2010-03-19 2013-09-25 富士通株式会社 情報処理装置及び情報処理装置のデバイス情報収集処理方法
US9009384B2 (en) * 2010-08-17 2015-04-14 Microsoft Technology Licensing, Llc Virtual machine memory management in systems with asymmetric memory
US8966020B2 (en) * 2010-11-02 2015-02-24 International Business Machines Corporation Integration of heterogeneous computing systems into a hybrid computing system
US8793427B2 (en) * 2011-02-10 2014-07-29 Hewlett-Packard Development Company, L.P. Remote memory for virtual machines
US8880795B2 (en) * 2011-04-29 2014-11-04 Comcast Cable Communications, LLC. Intelligent partitioning of external memory devices
US20130073811A1 (en) 2011-09-16 2013-03-21 Advanced Micro Devices, Inc. Region privatization in directory-based cache coherence
CN104205043B (zh) 2012-02-22 2017-09-22 慧与发展有限责任合伙企业 对计算机上的操作系统隐藏逻辑处理器
US8954698B2 (en) * 2012-04-13 2015-02-10 International Business Machines Corporation Switching optically connected memory
US20150052293A1 (en) 2012-04-30 2015-02-19 Blaine D. Gaither Hidden core to fetch data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1976281A (zh) * 2005-11-30 2007-06-06 株式会社日立制作所 信息处理装置和认证方法
CN102804151A (zh) * 2009-06-29 2012-11-28 惠普开发有限公司 访问作为缓存一致性域的部分的内存刀片的内存代理
TW201232416A (en) * 2010-11-02 2012-08-01 Ibm Unified resource manager providing a single point of control

Also Published As

Publication number Publication date
CN105074653A (zh) 2015-11-18
TWI526845B (zh) 2016-03-21
WO2014158152A1 (en) 2014-10-02
TW201502802A (zh) 2015-01-16
EP2979170A4 (en) 2017-01-04
EP2979170A1 (en) 2016-02-03
US20160043912A1 (en) 2016-02-11
US9781015B2 (en) 2017-10-03
EP2979170B1 (en) 2020-07-08

Similar Documents

Publication Publication Date Title
KR101967395B1 (ko) 컴퓨팅 자원 검색 및 관리를 위한 기술
US8732683B2 (en) Compiler providing idiom to idiom accelerator
US8386822B2 (en) Wake-and-go mechanism with data monitoring
US8312458B2 (en) Central repository for wake-and-go mechanism
US8452947B2 (en) Hardware wake-and-go mechanism and content addressable memory with instruction pre-fetch look-ahead to detect programming idioms
US8145849B2 (en) Wake-and-go mechanism with system bus response
JP4584315B2 (ja) 仮想マシン環境におけるタイマ・オフセット機構
US8516484B2 (en) Wake-and-go mechanism for a data processing system
US8171476B2 (en) Wake-and-go mechanism with prioritization of threads
US8127080B2 (en) Wake-and-go mechanism with system address bus transaction master
US8640141B2 (en) Wake-and-go mechanism with hardware private array
US20090199028A1 (en) Wake-and-Go Mechanism with Data Exclusivity
US20110173632A1 (en) Hardware Wake-and-Go Mechanism with Look-Ahead Polling
US20090199184A1 (en) Wake-and-Go Mechanism With Software Save of Thread State
US20090199030A1 (en) Hardware Wake-and-Go Mechanism for a Data Processing System
US20090199189A1 (en) Parallel Lock Spinning Using Wake-and-Go Mechanism
CN105074653B (zh) 使计算刀片设备和扩展刀片设备的存储器可供由操作系统使用
CN103620561A (zh) n路运行时互操作调试
CN106406847A (zh) 远端系统配置管理方法、系统及非暂态可读式存储多媒体
JP2007503661A5 (zh)
CN107533602A (zh) 利用资源控制器的用于写时复制的存储器控制器的配置
CN105103121B (zh) 刀片系统以及刀片系统的分区执行方法
US10896046B2 (en) Management processor using code from peripheral device
US10289467B2 (en) Error coordination message for a blade device having a logical processor in another system firmware domain
US8725992B2 (en) Programming language exposing idiom calls to a programming idiom accelerator

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: 20160817

Address after: American Texas

Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: Texas USA

Applicant before: Hewlett-Packard Development Company, Limited Liability Partnership

GR01 Patent grant
GR01 Patent grant