CN113051097A - 用于利用纠错码存储器进行快速启动的技术 - Google Patents
用于利用纠错码存储器进行快速启动的技术 Download PDFInfo
- Publication number
- CN113051097A CN113051097A CN202011022359.0A CN202011022359A CN113051097A CN 113051097 A CN113051097 A CN 113051097A CN 202011022359 A CN202011022359 A CN 202011022359A CN 113051097 A CN113051097 A CN 113051097A
- Authority
- CN
- China
- Prior art keywords
- memory
- processors
- processor
- computing device
- ecc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- 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/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Cooling Or The Like Of Electrical Apparatus (AREA)
- Power Sources (AREA)
- Multi Processors (AREA)
Abstract
公开了用于利用纠错码(ECC)存储器来快速启动计算设备的技术。计算设备的基本输入/输出系统(BIOS)可以将ECC存储器的存储器地址分配给计算设备上的不同处理器。然后,处理器可以通过写入ECC存储器来并行初始化ECC存储器。处理器可以利用直接存储操作写入到ECC存储器,所述直接存储操作被立即写入到ECC存储器而不是被高速缓存。BIOS可以继续在一个处理器上操作,同时其余的处理器初始化ECC存储器。
Description
技术领域
本发明涉及用于利用纠错码存储器进行快速启动的技术。
附图说明
本文中描述的概念是通过示例的方式而非通过限制的方式来在附图中图示的。为了说明的简单性和清楚性,各图中所图示的元件不一定按比例绘制。在认为适当的情况下,参考标记在各图之中被重复来指示对应或类似的元素。
图1是具有分解资源的用于执行工作负载的数据中心的至少一个实施例的简化图解;
图2是可以包括在图1的数据中心中的吊舱(pod)的至少一个实施例的简化图解;
图3是可以包括在图2的吊舱中的机架的至少一个实施例的透视图;
图4是图3的机架的侧立面视图;
图5是其中安装有滑架(sled)的图3的机架的透视图;
图6是图5的滑架的顶侧的至少一个实施例的简化框图;
图7是图6的滑架的底侧的至少一个实施例的简化框图;
图8是可用于图1的数据中心中的计算滑架的至少一个实施例的简化框图;
图9是图8的计算滑架的至少一个实施例的顶部透视图;
图10是可用于图1的数据中心中的加速器滑架的至少一个实施例的简化框图;
图11是图10的加速器滑架的至少一个实施例的顶部透视图;
图12是可用于图1的数据中心中的存储滑架的至少一个实施例的简化框图;
图13是图12的存储滑架的至少一个实施例的顶部透视图;
图14是可用于图1的数据中心中的存储器滑架的至少一个实施例的简化框图;
图15是可以在图1的数据中心内建立的系统的简化框图,该系统用以利用由分解资源组成的被管理节点来执行工作负载;
图16是用于利用ECC存储器进行快速启动的计算设备的至少一个实施例的简化框图;
图17是可以由图16的计算设备建立的环境的至少一个实施例的框图;和
图18-19是可以由图16的计算设备执行的用于利用ECC存储器执行快速启动的方法的至少一个实施例的简化流程图。
具体实施方式
虽然本公开的概念易于有各种修改和替代形式,但是其特定实施例已经通过示例在附图中示出,并且将在本文中被详细描述。然而,应当理解到,不存在将本公开的概念限制到所公开的特定形式的意图,而是相反,意图是覆盖与本公开和所附权利要求一致的所有修改、等同物和替代物。
说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以包括或可以不一定包括该特定的特征、结构或特性。此外,这样的短语不一定指代相同的实施例。此外,当结合实施例描述特定的特征、结构或特性时,主张的是,无论是否明确描述,结合其他实施例实现这样的特征、结构或特性在本领域技术人员的知识范围内。此外,应当领会到,以“至少一个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)。
在一些情况下,所公开的实施例可以用硬件、固件、软件或其任何组合来实现。所公开的实施例也可以被实现为由暂时性或非暂时性机器可读(例如,计算机可读)存储介质携带或存储在其上的指令,其可以被一个或多个处理器读取和执行。机器可读存储介质可以体现为用于以机器可读的形式存储或传输信息的任何存储设备、机构或其他物理结构(例如,易失性或非易失性存储器、介质盘或其他介质设备)。
在附图中,一些结构或方法特征可以以特定的布置和/或次序示出。然而,应当领会到,这样的特定布置和/或次序可能不是必需的。相反,在一些实施例中,这样的特征可以以不同于说明性附图中所示的方式和/或次序布置。另外,在特定附图中包括结构或方法特征不意味着暗指在所有实施例中都要求这样的特征,并且在一些实施例中,可以不包括这样的特征或者这样的特征可以与其他特征组合。
在开启或重新开启时,计算设备经历启动过程。启动过程可以由诸如基本输入/输出系统(BIOS)的固件来实行。BIOS可以确定存在什么硬件、加载驱动程序、配置硬件、加载软件等。在完成启动过程之后,BIOS典型地初始化操作系统。
在启动时,诸如动态随机存取存储器(DRAM)的存储器中的数据可能是随机的或者相反在启动时是未知的。对于纠错码(ECC)存储器,初始随机数据当被访问时可能由于纠错码中的错误指示而引起错误。可能需要由BIOS或由计算设备的另一部件完成的一个任务是ECC存储器的初始化,诸如通过写入ECC的所有存储器地址。在大量的ECC存储器情况下,启动的这个部分可能花费长时间。
现在参考图1,其中分解资源可以协作地执行一个或多个工作负载(例如,代表客户的应用)的数据中心100包括多个吊舱110、120、130、140,其中的每个吊舱包括一行或多行机架。当然,尽管数据中心100被示为具有多个吊舱,但是在一些实施例中,数据中心100可以被体现为单个吊舱。如本文中更详细描述的,每个机架容纳多个滑架,所述多个滑架中的每个可以主要配备有特定类型的资源(例如,存储器设备、数据存储设备、加速器设备、通用处理器),即,可以逻辑耦合以形成组合节点的资源,其可以充当例如服务器。在说明性实施例中,每个吊舱110、120、130、140中的滑架连接到多个吊舱交换机(例如,将数据通信路由到吊舱内的滑架以及从吊舱内的滑架路由数据通信的交换机)。吊舱交换机进而与脊柱交换机150连接,脊柱交换机150在数据中心100中的吊舱(例如,吊舱110、120、130、140)之中转换通信。在一些实施例中,滑架可以使用英特尔全路径技术与结构连接。在其他实施例中,滑架可以与诸如无限带宽(InfiniBand)或以太网之类的其他结构连接。如本文中更详细描述的,数据中心100中的滑架内的资源可以被分配给包含来自一个或多个滑架的资源的组(本文中称为“被管理节点”),以在工作负载的执行中被共同利用。工作负载可以像属于被管理节点的资源位于相同滑架上一样执行。被管理节点中的资源可以属于归属于不同机架的滑架,并且甚至属于不同的吊舱110、120、130、140。照此,单个滑架的一些资源可以被分配给一个被管理节点,而相同滑架的其他资源被分配给不同的被管理节点(例如,一个处理器被分配给一个被管理节点,并且相同滑架的另一个处理器被分配给不同的被管理节点)。
包括分解资源的数据中心,诸如数据中心100,可以在诸如企业、政府、云服务提供商和通信服务提供商(例如电信公司)之类的多种多样的环境中使用,也可以在从消耗超过100000平方英尺的云服务提供商巨型数据中心到针对在基站中使用的单机架或多机架安装的多种多样的规模中使用。
将资源分解成主要由单个类型的资源组成的滑架(例如,主要包括计算资源的计算滑架,主要包含存储器资源的存储器滑架)并且对分解资源进行选择性分配和解除分配以形成被分配来执行工作负载的被管理节点,其相对于由在单个底盘中包含计算、存储器、存储装置以及可能的附加资源的超融合服务器组成的典型数据中心而改进了数据中心100的操作和资源使用。例如,因为滑架主要包含特定类型的资源,所以给定类型的资源可以独立于其他资源进行升级。此外,因为不同的资源类型(处理器、存储装置、加速器等)典型地具有不同的刷新率,所以可以实现更大的资源利用率和降低的总拥有成本。例如,数据中心运营商仅通过换出计算滑架,就可以升级贯穿其设施的处理器。在这种情况下,加速器和存储资源可能不同时升级,而是可以被允许继续操作,直到那些资源被调度用于其自己的刷新。资源利用率也可能增加。例如,如果被管理节点是基于将在其上运行的工作负载的需求组成的,则节点内的资源更有可能得到充分利用。这样的利用可以允许在具有给定资源集合的数据中心中运行更多的被管理节点,或者允许使用更少的资源构建预期运行给定工作负载集合的数据中心。
现在参考图2,在说明性实施例中,吊舱110包括机架240的行200、210、220、230的集合。每个机架240可以容纳多个滑架(例如,十六个滑架),并且向容纳的滑架提供电力和数据连接,如本文中更详细描述的。在说明性实施例中,每行200、210、220、230中的机架连接到多个吊舱交换机250、260。吊舱交换机250包括端口252的集合和端口254的另一集合,吊舱110的机架的滑架连接到端口252,端口254将吊舱110连接到脊柱交换机150,以提供到数据中心100中的其他吊舱的连接性。类似地,吊舱交换机260包括端口262集合和端口264集合,吊舱110的机架的滑架连接到端口262,端口264将吊舱110连接到脊柱交换机150。照此,该对交换机250、260的使用向吊舱110提供一定量的冗余。例如,如果交换机250、260中的任一个故障,则吊舱110中的滑架仍然可以通过另一个交换机250、260维持与数据中心100的其余部分(例如,其它吊舱的滑架)的数据通信。此外,在说明性实施例中,交换机150、250、260可以被体现为双模式光学交换机,其能够经由光结构的光学信令介质路由携带因特网协议(IP)分组的以太网协议通信和根据第二高性能链路层协议(例如,英特尔的全路径架构、无限带宽、PCI Express、计算快速链路(CXL)、QUIC)的通信二者。
应当领会到,其他吊舱120、130、140中的每一个(以及数据中心100的任何附加的吊舱)可以与图2中所示和关于图2所述的吊舱110类似地构造,并且具有与图2中所示和关于图2所述的吊舱110类似的部件(例如,每个吊舱可以具有容纳多个滑架的多行机架,如上所述)。此外,虽然示出了两个吊舱交换机250、260,但是应当理解到,在其他实施例中,每个吊舱110、120、130、140可以连接到不同数量的吊舱交换机,从而提供甚至更多的故障转移能力。当然,在其他实施例中,吊舱可以不同于图1-2中所示的多行机架配置来布置。例如,吊舱可以被体现为多个机架集合,其中每个机架集合被径向布置,即,机架离中心交换机是等距的。
现在参考图3-5,数据中心100的每个说明性机架240包括垂直布置的两个细长支撑柱302、304。例如,细长支撑柱302、304当被展开时可以从数据中心100的地板向上延伸。机架240还包括细长支撑臂312的一个或多个水平对310(在图3中经由虚线椭圆标识),其被配置为支撑数据中心100的滑架,如下所讨论的。细长支撑臂312的对中的一个细长支撑臂312从细长支撑柱302向外延伸,并且另一个细长支撑臂312从细长支撑柱304向外延伸。
在说明性实施例中,数据中心100的每个滑架被体现为无底盘滑架。也就是说,每个滑架具有无底盘电路板基板,在所述无底盘电路板基板上物理资源(例如,处理器、存储器、加速器、存储装置等)如下面更详细讨论的那样被安装。照此,机架240被配置为容纳无底盘滑架。例如,细长支撑臂312的每对310限定了机架240的滑架槽320,其被配置为容纳对应的无底盘滑架。为了这样做,每个说明性的细长支撑臂312包括电路板导向件330,该电路板导向件330被配置为容纳滑架的无底盘电路板基板。每个电路板导向件330被固定或以其他方式安装到对应的细长支撑臂312的顶侧332。例如,在说明性实施例中,每个电路板导向件330相对于对应的细长支撑柱302、304安装在对应的细长支撑臂312的远端处。为了各图的清楚性,在每幅图中不是每个电路板导向件330都可以被引用。
每个电路板导向件330包括限定电路板槽380的内壁,电路板槽380被配置为当滑架400被容纳在机架240的对应滑架槽320中时容纳滑架400的无底盘电路板基板。为了这样做,如图4中所示,用户(或机器人)将说明性的无底盘滑架400的无底盘电路板基板对准滑架槽320。用户或机器人然后可以将无底盘电路板基板向前滑动到滑架槽320中,使得无底盘电路板基板的每个侧边414被容纳在限定对应滑架槽320的细长支撑臂312的对310的电路板导向件330的对应电路板槽380中,如图4中所示。通过具有机器人可访问和机器人可操纵的包含分解资源的滑架,每种类型的资源可以彼此独立地并且以它们自己的优化刷新率进行升级。此外,滑架被配置为与每个机架240中的电力和数据通信线缆盲配合,从而增强它们被快速移除、升级、重新安装和/或替换的能力。照此,在一些实施例中,数据中心100可以在没有数据中心地板上的人类参与的情况下操作(例如,执行工作负载、进行维护和/或升级等)。在其他实施例中,人类可以促进数据中心100中的一个或多个维护或升级操作。
应当领会到,每个电路板导向件330是双侧的。也就是说,每个电路板导向件330包括内壁,所述内壁在电路板导向件330的每一侧上限定电路板槽380。这样,每个电路板导向件330可以在任一侧上支撑无底盘电路板基板。照此,单个附加的细长支撑柱可以被添加到机架240,以将机架240转变成两个机架的解决方案,其可以保持与图3中所示的那么多滑架槽320的两倍。说明性机架240包括七对310细长支撑臂312,其限定了对应的七个滑架槽320,每个滑架槽320被配置为容纳和支撑对应的滑架400,如上面讨论的那样。当然,在其他实施例中,机架240可以包括附加或更少对310细长支撑臂312(即,附加的或更少的滑架槽320)。应当领会到,因为滑架400是无底盘的,所以滑架400可以具有不同于典型服务器的总体高度。照此,在一些实施例中,每个滑架槽320的高度可以比典型服务器的高度短(例如,比单个机架单元“1U”短)。也就是说,每对310细长支撑臂312之间的垂直距离可以小于标准机架单元“1U”。另外,由于滑架槽320的高度相对减小,因此在一些实施例中,机架240的总体高度可以比传统机架外壳的高度短。例如,在一些实施例中,细长支撑柱302、304中的每个可以具有六英尺或更少的长度。再次,在其他实施例中,机架240可以具有不同的尺寸。例如,在一些实施例中,每对310细长支撑臂312之间的垂直距离可以大于标准机架单元“1U”。在这样的实施例中,滑架之间增加的垂直距离允许更大的散热器附接到物理资源,并且允许使用更大的风扇(例如,在下面描述的风扇阵列370中)来冷却每个滑架,这进而可以允许物理资源在增加的功率级下操作。此外,应当领会到,机架240不包括任何壁、外壳等。相反,机架240是向本地环境开放的无外壳机架。当然,在一些情况下,在其中机架240在数据中心100中形成行端机架的那些情形下,端板可以附接到细长支撑柱302、304中的一个。
在一些实施例中,各种互连可以向上或向下路由穿过细长支撑柱302、304。为了促进这样的路由(routing),每个细长支撑柱302、304包括内壁,所述内壁限定了内部腔室,互连可以位于所述内部腔室中。路由穿过细长支撑柱302、304的互连可以被体现为任何类型的互连,包括但不限于用以向每个滑架槽320提供通信连接的数据或通信互连、用以向每个滑架槽320提供电力的电力互连和/或其他类型的互连。
在说明性实施例中,机架240包括支撑平台,在所述支撑平台上安装对应的光学数据连接器(未示出)。每个光学数据连接器与对应的滑架槽320相关联,并且被配置为当滑架400被容纳在对应的滑架槽320中时与对应的滑架400的光学数据连接器配合。在一些实施例中,数据中心100中的部件(例如,滑架、机架和交换机)之间的光学连接是利用盲配合光学连接来进行的。例如,每根线缆上的门可以防止灰尘污染线缆内部的光纤。在连接到盲配合光学连接器机构的过程中,当线缆的端部接近或进入连接器机构时,门被推开。随后,线缆内部的光纤可以进入连接器机构内的凝胶中,并且一根线缆的光纤与连接器机构内部凝胶内的另一根线缆的光纤接触。
说明性机架240还包括耦合到机架240的交叉支撑臂的风扇阵列370。风扇阵列370包括一排或多排冷却风扇372,它们在细长支撑柱302、304之间排成一条水平线。在说明性实施例中,风扇阵列370包括用于机架240的每个滑架槽320的一排冷却风扇372。如上面讨论的,在说明性实施例中,每个滑架400不包括任何机载冷却系统,并且照此,风扇阵列370为容纳在机架240中的每个滑架400提供冷却。在说明性实施例中,每个机架240还包括与每个滑架槽320相关联的电源。每个电源被固定到细长支撑臂312的对310中限定对应的滑架槽320的细长支撑臂312之一。例如,机架240可以包括耦合或固定到从细长支撑柱302延伸的每个细长支撑臂312的电源。每个电源包括电源连接器,所述电源连接器被配置为当滑架400被容纳在对应的滑架槽320中时与滑架400的电源连接器配合。在说明性实施例中,滑架400不包括任何机载电源,并且照此,机架240中提供的电源当被安装到机架240时向对应的滑架400供应电力。每个电源被配置为满足其相关联的滑架的电力要求,其可能因滑架而异。另外,机架240中提供的电源可以彼此独立地操作。也就是说,在单个机架内,向计算滑架提供电力的第一电源可以提供不同于向加速器滑架提供电力的第二电源所供应的功率级的功率级。电源可以在滑架级别或机架级别处可控制,并且可以由相关联的滑架上的部件本地控制,或者诸如由另一个滑架或协调器远程控制。
现在参考图6,在说明性实施例中,滑架400被配置为安装在数据中心100的对应机架240中,如上面讨论的。在一些实施例中,每个滑架400可以被优化或以其他方式配置用于执行特定任务,诸如计算任务、加速任务、数据存储任务等。例如,滑架400可以被体现为如下面关于图8-9所讨论的计算滑架800、如下面关于图10-11所讨论的加速器滑架1000、如下面关于图12-13所讨论的存储滑架1200,或者被体现为被优化或以其他方式被配置为执行其他专门任务的滑架,诸如下面关于图14所讨论的存储器滑架1400。
如上面讨论的,说明性滑架400包括无底盘电路板基板602,其支撑安装在其上的各种物理资源(例如,电子部件)。应当领会到,电路板基板602是“无底盘的”,因为滑架400不包括壳体或外壳。相反,无底盘电路板基板602对本地环境开放。无底盘电路板基板602可以由能够支撑安装在其上的各种电气部件的任何材料形成。例如,在说明性实施例中,无底盘电路板基板602由FR-4玻璃增强环氧层压材料形成。当然,在其他实施例中,可以使用其他材料来形成无底盘电路板基板602。
如下面更详细讨论的,无底盘电路板基板602包括多个特征,所述多个特征改进了安装在无底盘电路板基板602上的各种电气部件的热冷却特性。如所讨论的,无底盘电路板基板602不包括壳体或外壳,这可以通过减少那些可能抑制空气流动的结构来改进滑架400的电气部件之上的气流。例如,因为无底盘电路板基板602没有定位在单独的壳体或外壳中,所以不存在附接到无底盘电路板基板602的垂直布置的背板(例如,底盘的背面板),这可能抑制跨电气部件的空气流动。此外,无底盘电路板基板602具有几何形状,所述几何形状被配置为减少跨安装到无底盘电路板基板602的电气部件的气流路径的长度。例如,说明性的无底盘电路板基板602具有大于无底盘电路板基板602的深度606的宽度604。例如,在一个特定实施例中,与具有大约17英寸的宽度和大约39英寸的深度的典型服务器相比,无底盘电路板基板602具有大约21英寸的宽度和大约9英寸的深度。照此,从无底盘电路板基板602的前边缘610朝向后边缘612延伸的气流路径608相对于典型的服务器具有更短的距离,这可以改进滑架400的热冷却特性。此外,尽管未在图6中图示,但是安装到无底盘电路板基板602的各种物理资源被安装在对应的位置中,使得没有两个实质上产热的电气部件彼此遮蔽,如下面更详细讨论的。也就是说,没有两个在操作期间产生相当可观的热量(即,大于足以对另一个电气部件的冷却产生不利影响的标称热量)的电气部件沿着气流路径608的方向(即,沿着从无底盘电路板基板602的前边缘610朝向后边缘612延伸的方向)彼此线性成一直线地安装到无底盘电路板基板602。
如上面讨论的,说明性滑架400包括安装到无底盘电路板基板602的顶侧650的一个或多个物理资源620。尽管在图6中示出了两个物理资源620,但是应当领会到,在其他实施例中,滑架400可以包括一个、两个或更多个物理资源620。物理资源620可以体现为任何类型的处理器、控制器或其他计算电路,其能够取决于例如滑架400的类型或预期功能来执行诸如计算功能和/或控制滑架400的功能之类的各种任务。例如,如下面更详细讨论的,物理资源620可以在其中滑架400被体现为计算滑架的实施例中体现为高性能处理器,在其中滑架400被体现为加速器滑架的实施例中体现为加速器协处理器或电路,在其中滑架400被体现为存储滑架的实施例中体现为存储控制器,或者在其中滑架400被体现为存储器滑架的实施例中体现为存储器设备集合。
滑架400还包括安装到无底盘电路板基板602的顶侧650的一个或多个附加物理资源630。在说明性实施例中,附加物理资源包括网络接口控制器(NIC),如下面更详细讨论的。当然,取决于滑架400的类型和功能,在其他实施例中,物理资源630可以包括附加的或其他的电气部件、电路和/或设备。
物理资源620经由输入/输出(I/O)子系统622通信地耦合到物理资源630。I/O子系统622可以体现为用于促进与物理资源620、物理资源630和/或滑架400的其他部件的输入/输出操作的电路和/或部件。例如,I/O子系统622可以体现为或以其他方式包括存储器控制器集线器、输入/输出控制集线器、集成传感器集线器、固件设备、通信链路(例如,点对点链路、总线链路、电线、线缆、波导、光导、印刷电路板迹线等),和/或用于促进输入/输出操作的其他部件和子系统。在说明性实施例中,I/O子系统622体现为或以其他方式包括双数据速率4(DDR4)数据总线或DDR5数据总线。
在一些实施例中,滑架400还可以包括资源到资源互连624。资源到资源互连624可以体现为能够促进资源到资源通信的任何类型的通信互连。在说明性实施例中,资源到资源互连624体现为高速点对点互连(例如,比I/O子系统622更快)。例如,资源到资源互连624可以体现为快速路径互连(QPI)、超路径互连(UPI)或专用于资源到资源通信的其他高速点对点互连。
滑架400还包括电源连接器640,电源连接器640被配置为当滑架400安装在对应的机架240中时与机架240的对应电源连接器配合。滑架400经由电源连接器640从机架240的电源接收电力,以向滑架400的各种电气部件供应电力。也就是说,滑架400不包括用于向滑架400的电气部件提供电力的任何本地电源(即,机载电源)。对本地或机载电源的排除促进无底盘电路板基板602的总体占用面积(footprint)的减少,这可以增加安装在无底盘电路板基板602上的各种电气部件的热冷却特性,如上面讨论的。在一些实施例中,电压调节器被放置在无底盘电路板基板602的底侧750(见图7)上,其与处理器820(见图8)直接相反,并且电力通过延伸穿过电路板基板602的通孔而从电压调节器被路由到处理器820。相对于典型的印刷电路板,这样的配置提供了增加的热预算、附加的电流和/或电压以及更好的电压控制,在典型的印刷电路板中,处理器电力部分地通过印刷电路迹线从电压调节器递送。
在一些实施例中,滑架400还可以包括安装特征642,该安装特征642被配置为与机器人的安装臂或其他结构配合,以促进机器人将滑架600放置在机架240中。安装特征642可以体现为任何类型的物理结构,其允许机器人抓住滑架400而不损坏无底盘电路板基板602或安装到其的电气部件。例如,在一些实施例中,安装特征642可以体现为附接到无底盘电路板基板602的非导电衬垫。在其他实施例中,安装特征可以体现为附接到无底盘电路板基板602的支架、托架或其他类似结构。安装特征642的特定数量、形状、大小和/或组成可以取决于被配置为管理滑架400的机器人的设计。
现在参考图7,除了安装在无底盘电路板基板602的顶侧650上的物理资源630之外,滑架400还包括安装到无底盘电路板基板602的底侧750的一个或多个存储器设备720。也就是说,无底盘电路板基板602体现为双侧电路板。物理资源620经由I/O子系统622通信地耦合到存储器设备720。例如,物理资源620和存储器设备720可以通过延伸穿过无底盘电路板基板602的一个或多个通孔通信地耦合。在一些实施例中,每个物理资源620可以通信地耦合到一个或多个存储器设备720的不同集合。替代地,在其他实施例中,每个物理资源620可以通信地耦合到每个存储器设备720。
存储器设备720可以体现为能够在滑架400的操作期间为物理资源620存储数据的任何类型的存储器设备,诸如任何类型的易失性存储器(例如,动态随机存取存储器(DRAM)等)或非易失性存储器。易失性存储器可以是需要电力来维持由介质存储的数据状态的存储介质。易失性存储器的非限制性示例可以包括各种类型的随机存取存储器(RAM),诸如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。可以在存储器模块中使用的一种特定类型的DRAM是同步动态随机存取存储器(SDRAM)。在特定实施例中,存储器部件的DRAM可以符合由JEDEC颁布的标准,诸如用于DDR SDRAM的JESD79F、用于DDR2 SDRAM的JESD79-2F、用于DDR3 SDRAM的JESD79-3F、用于DDR4 SDRAM的JESD79-4A、用于低功率DDR (LPDDR)的JESD209、用于LPDDR2的JESD209-2、用于LPDDR3的JESD209-3以及用于LPDDR4的JESD209-4。这样的标准(和类似的标准)可以被称为基于DDR的标准,并且实现这样的标准的存储设备的通信接口可以被称为基于DDR的接口。
在一个实施例中,存储器设备是块可寻址存储器设备,诸如基于NAND或NOR技术的那些块可寻址存储器设备。存储器设备还可以包括下一代非易失性设备,诸如英特尔3DXPointTM存储器或其他字节可寻址就地写入非易失性存储器设备。在一个实施例中,存储器设备可以是或可以包括使用硫族化物玻璃的存储器设备、多阈值级NAND闪速存储器、NOR闪速存储器、单级或多级相变存储器(PCM)、电阻存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、反铁电存储器、结合忆阻器技术的磁阻随机存取存储器(MRAM)存储器、包括金属氧化物基、氧空位基和导电桥随机存取存储器(CB-RAM)的电阻存储器或自旋转移矩(STT)-MRAM、基于自旋电子磁结存储器的设备、基于磁隧道结(MTJ)的设备、基于DW(畴壁)和SOT(自旋轨道转移)的设备、基于晶闸管的存储器设备、或以上任一项的组合、或其它存储器。存储器设备可以指代管芯本身和/或封装的存储器产品。在一些实施例中,存储器设备可以包括无晶体管可堆叠交叉点架构,其中存储器单元位于字线和位线的交叉点处,并且是可单独寻址的,并且其中位存储基于体电阻中的改变。
现在参考图8,在一些实施例中,滑架400可以体现为计算滑架800。计算滑架800被优化或以其他方式配置,以执行计算任务。当然,如上面讨论的,计算滑架800可以依赖于诸如加速滑架和/或存储滑架之类的其他滑架来执行这样的计算任务。计算滑架800包括类似于滑架400的物理资源的各种物理资源(例如,电气部件),所述各种物理资源(例如,电气部件)在图8中使用相同的参考标号来标识。以上关于图6和图7提供的对这样的部件的描述适用于计算滑架800的对应部件,并且为了计算滑架800的描述的清楚性起见在此处未重复。
在说明性计算滑架800中,物理资源620体现为处理器820。尽管在图8中仅示出了两个处理器820,但是应当领会到,在其他实施例中,计算滑架800可以包括附加的处理器820。用作说明地,处理器820体现为高性能处理器820,并且可以被配置为在相对高的额定功率下操作。尽管处理器820以在典型处理器(其在大约155-230 W下操作)更大的额定功率下操作时生成附加的热量,但是上面讨论的无底盘电路板基板602的增强的热冷却特性促进更高的功率操作。例如,在说明性实施例中,处理器820被配置为在至少250 W的额定功率下操作。在一些实施例中,处理器820可以被配置为在至少350 W的额定功率下操作。
在一些实施例中,计算滑架800还可以包括处理器到处理器互连842。类似于上面讨论的滑架400的资源到资源互连624,处理器到处理器互连842可以体现为能够促进处理器到处理器互连842通信的任何类型的通信互连。在说明性实施例中,处理器到处理器互连842体现为高速点对点互连(例如,比I/O子系统622更快)。例如,处理器到处理器互连842可以体现为快速路径互连(QPI)、超路径互连(UPI)或专用于处理器到处理器通信的其他高速点对点互连。
计算机滑架800还包括通信电路830。说明性通信电路830包括网络接口控制器(NIC)832,其也可以被称为主机结构接口(HFI)。NIC 832可以体现为或以其他方式包括任何类型的集成电路、分立电路、控制器芯片、芯片组、插件板、子卡、网络接口卡或可以由计算滑架800用来与另一计算设备(例如,与其他滑架400)连接的其他设备。在一些实施例中,NIC 832可以体现为包括一个或多个处理器的片上系统(SoC)的部分,或者包括在也包含一个或多个处理器的多芯片封装上。在一些实施例中,NIC 832可以包括本地处理器(未示出)和/或本地存储器(未示出),它们都对于NIC 832是本地的。在这样的实施例中,NIC 832的本地处理器可以能够执行处理器820的功能中的一个或多个。附加地或替代地,在这样的实施例中,NIC 832的本地存储器可以在板级、插槽级、芯片级和/或其他级被集成到计算滑架的一个或多个部件中。
通信电路830通信地耦合到光学数据连接器834。光学数据连接器834被配置为当计算滑架800安装在机架240中时与机架240的对应光学数据连接器配合。用作说明地,光学数据连接器834包括从光学数据连接器834的配合表面引导到光学收发器836的多根光纤。光学收发器836被配置为将来自机架侧光学数据连接器的传入光信号转换成电信号,并且将电信号转换成去往机架侧光学数据连接器的传出光信号。尽管在说明性实施例中被示为形成光学数据连接器834的部分,但是在其他实施例中,光学收发器836可以形成通信电路830的部分。
在一些实施例中,计算滑架800还可以包括扩展连接器840。在这样的实施例中,扩展连接器840被配置为与扩展无底盘电路板基板的对应连接器配合,以向计算滑架800提供附加的物理资源。例如,在计算滑架800的操作期间,处理器820可以使用附加的物理资源。扩展无底盘电路板基板可以基本上类似于上面讨论的无底盘电路板基板602,并且可以包括安装到其的各种电气部件。安装到扩展无底盘电路板基板的特定电气部件可以取决于扩展无底盘电路板基板的预期功能。例如,扩展无底盘电路板基板可以提供附加的计算资源、存储器资源和/或存储资源。照此,扩展无底盘电路板基板的附加物理资源可以包括但不限于处理器、存储器设备、存储设备和/或加速器电路,包括例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、安全协处理器、图形处理单元(GPU)、机器学习电路或其他专用处理器、控制器、设备和/或电路。
现在参考图9,示出了计算滑架800的说明性实施例。如所示出的,处理器820、通信电路830和光学数据连接器834被安装到无底盘电路板基板602的顶侧650。任何合适的附接或安装技术都可以用于将计算滑架800的物理资源安装到无底盘电路板基板602。例如,各种物理资源可以被安装在对应的插槽(例如,处理器插槽)、支托物或支架中。在一些情况下,电气部件中的一些可以经由焊接或类似技术直接安装到无底盘电路板基板602。
如上面讨论的,单独的处理器820和通信电路830被安装到无底盘电路板基板602的顶侧650,使得没有两个产热的电气部件彼此遮蔽。在说明性实施例中,处理器820和通信电路830安装在无底盘电路板基板602的顶侧650上的对应位置中,使得那些物理资源中没有两个物理资源沿着气流路径608的方向与其他物理资源线性地成一直线。应当领会到,尽管光学数据连接器834与通信电路830成一直线,但是光学数据连接器834在操作期间不产生热量或者产生标称热量。
计算滑架800的存储器设备720被安装到无底盘电路板基板602的底侧750,如上面关于滑架400所讨论的。存储器设备720尽管被安装到底侧750,但是经由I/O子系统622通信地耦合到位于顶侧650上的处理器820。因为无底盘电路板基板602体现为双侧电路板,所以存储器设备720和处理器820可以通过延伸穿过无底盘电路板基板602的一个或多个通孔、连接器或其他机构来通信地耦合。当然,在一些实施例中,每个处理器820可以通信地耦合到一个或多个存储器设备720的不同集合。替代地,在其他实施例中,每个处理器820可以通信地耦合到每个存储器设备720。在一些实施例中,存储器设备720可以被安装到无底盘电路板基板602的底侧上的一个或多个存储器夹层(mezzanine),并且可以通过球栅阵列与对应的处理器820互连。
处理器820中的每个包括固定到其的散热器850。由于将存储器设备720安装到无底盘电路板基板602的底侧750(以及对应机架240中滑架400的垂直间隔),因此无底盘电路板基板602的顶侧650包括附加的“自由”区域或空间,其促进相对于在典型服务器中使用的传统散热器具有更大的大小的散热器850的使用。此外,由于无底盘电路板基板602的改进的热冷却特性,处理器散热器850中没有一个包括附接到其的冷却风扇。也就是说,散热器850中的每个体现为无风扇散热器。在一些实施例中,安装在处理器820顶上的散热器850由于其增加的大小而可以在气流路径608的方向上与附接到通信电路830的散热器重叠,如图9说明性地提出的。
现在参考图10,在一些实施例中,滑架400可以体现为加速器滑架1000。加速器滑架1000被配置为执行专门的计算任务,诸如机器学习、加密、散列或其他计算密集型任务。在一些实施例中,例如,计算滑架800可以在操作期间将任务卸载到加速器滑架1000。加速器滑架1000包括与滑架400和/或计算滑架800的部件类似的各种部件,所述各种部件在图10中使用相同的参考标号来标识。上面关于图6、图7和图8提供的这样的部件的描述适用于加速器滑架1000的对应部件,并且为了加速器滑架1000的描述的清楚性起见在此处未重复。
在说明性加速器滑架1000中,物理资源620体现为加速器电路1020。尽管在图10中仅示出了两个加速器电路1020,但是应当领会到,在其他实施例中,加速器滑架1000可以包括附加的加速器电路1020。例如,如图11中所示,在一些实施例中,加速器滑架1000可以包括四个加速器电路1020。加速器电路1020可以体现为任何类型的处理器、协处理器、计算电路或能够执行计算或处理操作的其他设备。例如,加速器电路1020可以体现为例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、安全协处理器、图形处理单元(GPU)、神经形态处理器单元、量子计算机、机器学习电路或其他专用处理器、控制器、设备和/或电路。
在一些实施例中,加速器滑架1000还可以包括加速器到加速器互连1042。类似于上面讨论的滑架600的资源到资源互连624,加速器到加速器互连1042可以体现为能够促进加速器到加速器通信的任何类型的通信互连。在说明性实施例中,加速器到加速器互连1042体现为高速点对点互连(例如,比I/O子系统622更快)。例如,加速器到加速器互连1042可以体现为快速路径互连(QPI)、超路径互连(UPI)或专用于处理器到处理器通信的其他高速点对点互连。在一些实施例中,加速器电路1020可以与通过I/O子系统622被连接到NIC832和存储器720的主加速器电路1020以及通过主加速器电路1020被连接到NIC 832和存储器720的辅助加速器电路1020菊花式链接。
现在参考图11,示出了加速器滑架1000的说明性实施例。如上面讨论的,加速器电路1020、通信电路830和光学数据连接器834被安装到无底盘电路板基板602的顶侧650。再次,单独的加速器电路1020和通信电路830被安装到无底盘电路板基板602的顶侧650,使得没有两个产热的电气部件彼此遮蔽,如上面讨论的。加速器滑架1000的存储器设备720被安装到无底盘电路板基板602的底侧750,如上面关于滑架600所讨论的。存储器设备720尽管被安装到底侧750,但是经由I/O子系统622(例如,通过通孔)通信地耦合到位于顶侧650上的加速器电路1020。此外,加速器电路1020中的每个可以包括比服务器中使用的传统散热器大的散热器1070。如上面参考散热器870讨论的,散热器1070可以比传统散热器大,因为由存储器资源720提供的“空闲”区域位于无底盘电路板基板602的底侧750上,而不是顶侧650上。
现在参考图12,在一些实施例中,滑架400可以体现为存储滑架1200。存储滑架1200被配置为将数据存储在存储滑架1200本地的数据存储装置1250中。例如,在操作期间,计算滑架800或加速器滑架1000可以从存储滑架1200的数据存储装置1250存储和检索数据。存储滑架1200包括与滑架400和/或计算滑架800的部件类似的各种部件,所述各种部件在图12中使用相同的参考标号来标识。上面关于图6、图7和图8提供的这样的部件的描述适用于存储滑架1200的对应部件,并且为了存储滑架1200的描述的清楚性起见在此处未重复。
在说明性存储滑架1200中,物理资源620体现为存储控制器1220。尽管在图12中仅示出了两个存储控制器1220,但是应当领会到,在其他实施例中,存储滑架1200可以包括附加的存储控制器1220。存储控制器1220可以体现为能够基于经由通信电路830接收的请求来控制数据到数据存储装置1250中的存储和检索的任何类型处理器、控制器或控制电路。在说明性实施例中,存储控制器1220体现为相对低功率的处理器或控制器。例如,在一些实施例中,存储控制器1220可以被配置为在大约75瓦特的额定功率下操作。
在一些实施例中,存储滑架1200还可以包括控制器到控制器互连1242。类似于上面讨论的滑架400的资源到资源互连624,控制器到控制器互连1242可以体现为能够促进控制器到控制器通信的任何类型的通信互连。在说明性实施例中,控制器到控制器互连1242体现为高速点对点互连(例如,比I/O子系统622更快)。例如,控制器到控制器互连1242可以体现为快速路径互连(QPI)、超路径互连(UPI)或专用于处理器到处理器通信的其他高速点对点互连。
现在参考图13,示出了存储滑架1200的说明性实施例。在该说明性实施例中,数据存储装置1250体现为或以其他方式包括被配置为容纳一个或多个固态驱动器(SSD)1254的存储笼1252。为了这样做,存储笼1252包括多个安装槽1256,所述多个安装槽1256中的每个被配置为容纳对应的固态驱动器1254。安装槽1256中的每个包括多个驱动导向件1258,所述多个驱动导向件1258协作以限定对应安装槽1256的访问开口1260。存储笼1252固定到无底盘电路板基板602,使得访问开口背离无底盘电路板基板602(即,朝向无底盘电路板基板602的前方)。照此,当存储滑架1200安装在对应的机架204中时,固态驱动器1254是可访问的。例如,固态驱动器1254可以(例如,经由机器人)换出机架240,同时存储滑架1200保持安装在对应的机架240中。
存储笼1252说明性地包括十六个安装槽1256,并且能够安装和存储十六个固态驱动器1254。当然,在其他实施例中,存储笼1252可以被配置为存储附加的或更少的固态驱动器1254。另外,在说明性实施例中,固态驱动器垂直安装在存储笼1252中,但是在其他实施例中可以在不同的定向上安装在存储笼1252中。每个固态驱动器1254可以体现为能够存储长期数据的任何类型的数据存储设备。为了这样做,固态驱动器1254可以包括上面讨论的易失性和非易失性存储器设备。
如图13中所示,存储控制器1220、通信电路830和光学数据连接器834被说明性地安装到无底盘电路板基板602的顶侧650。再次,如上面讨论的,任何合适的附接或安装技术可以用于将存储滑架1200的电气部件安装到无底盘电路板基板602,其包括例如插槽(例如,处理器插槽)、支托物、支架、焊接连接和/或其他安装或固定技术。
如上面讨论的,单独的存储控制器1220和通信电路830被安装到无底盘电路板基板602的顶侧650,使得没有两个产热的电气部件彼此遮蔽。例如,存储控制器1220和通信电路830安装在无底盘电路板基板602的顶侧650上的对应位置中,使得那些电气部件中没有两个电气部件沿着气流路径608的方向彼此线性成一直线。
存储滑架1200的存储器设备720被安装到无底盘电路板基板602的底侧750,如上面关于滑架400所讨论的。存储器设备720尽管安装到底侧750,但是经由I/O子系统622通信地耦合到位于顶侧650上的存储控制器1220。再次,因为无底盘电路板基板602体现为双侧电路板,所以存储器设备720和存储控制器1220可以通过延伸穿过无底盘电路板基板602的一个或多个通孔、连接器或其他机构来通信地耦合。存储控制器1220中的每个包括固定到其的散热器1270。如上面讨论的,由于存储滑架1200的无底盘电路板基板602的改进的热冷却特性,因此散热器1270中没有一个包括附接到其的冷却风扇。也就是说,散热器1270中的每个体现为无风扇散热器。
现在参考图14,在一些实施例中,滑架400可以体现为存储器滑架1400。存储滑架1400被优化或以其他方式被配置,以提供具有对在存储器滑架1200本地的存储器池(例如,在存储器设备720的两个或更多个集合1430、1432中)的访问的其他滑架400(例如,计算滑架800、加速器滑架1000等)。例如,在操作期间,计算滑架800或加速器滑架1000可以使用映射到存储器集合1430、1432中的物理地址的逻辑地址空间来远程写入到和/或读取自存储器滑架1200的存储器集合1430、1432中的一个或多个。存储器滑架1400包括与滑架400和/或计算滑架800的部件类似的各种部件,所述各种部件在图14中使用相同的参考标号来标识。上面关于图6、图7和图8提供的这样的部件的描述适用于存储器滑架1400的对应部件,并且为了存储器滑架1400的描述的清楚性起见在此处未重复。
在说明性存储器滑架1400中,物理资源620体现为存储器控制器1420。尽管在图14中仅示出了两个存储器控制器1420,但是应当领会到,在其他实施例中,存储器滑架1400可以包括附加的存储器控制器1420。存储器控制器1420可以体现为能够基于经由通信电路830接收的请求来控制将数据写入和读取到存储器集合1430、1432中的任何类型的处理器、控制器或控制电路。在说明性实施例中,每个存储器控制器1420连接到对应的存储器集合1430、1432,以写入到和读取自对应的存储器集合1430、1432内的存储器设备720,并且实施与已经向存储器滑架1400发送请求以执行存储器访问操作(例如,读取或写入)的滑架400相关联的任何许可(例如,读取、写入等)。
在一些实施例中,存储器滑架1400还可以包括控制器到控制器互连1442。类似于上面讨论的滑架400的资源到资源互连624,控制器到控制器互连1442可以体现为能够促进控制器到控制器通信的任何类型的通信互连。在说明性实施例中,控制器到控制器互连1442体现为高速点对点互连(例如,比I/O子系统622更快)。例如,控制器到控制器互连1442可以体现为快速路径互连(QPI)、超路径互连(UPI)或专用于处理器到处理器通信的其他高速点对点互连。照此,在一些实施例中,存储器控制器1420可以通过控制器到控制器互连1442访问与另一个存储器控制器1420相关联的存储器集合1432内的存储器。在一些实施例中,可缩放存储器控制器由存储器滑架(例如,存储器滑架1400)上的多个较小的存储器控制器组成,其在本文中称为“小芯片”。小芯片可以被互连(例如,使用EMIB(嵌入式多管芯互连桥))。组合的小芯片存储器控制器可以扩展直到相对大量的存储器控制器和I/O端口(例如,直到16个存储器通道)。在一些实施例中,存储器控制器1420可以实现存储器交错(例如,一个存储器地址被映射到存储器集合1430,下一个存储器地址被映射到存储器集合1432,并且第三个地址被映射到存储器集合1430等)。交错可在存储器控制器1420内被管理,或跨去往存储器集合1430、1432的网络链路之上从(例如,计算滑架800的)CPU插槽被管理,并且与从相同存储器设备访问连续存储器地址相比,可以改进与执行存储器访问操作相关联的等待时间。
此外,在一些实施例中,存储器滑架1400可以使用波导连接器1480通过波导连接到一个或多个其他滑架400(例如,在相同的机架240或相邻的机架240中)。在说明性实施例中,波导是64毫米波导,其提供16个Rx(即接收)通道和16个Tx(即发射)通道。在说明性实施例中,每个通道是16 GHz或32 GHz。在其他实施例中,频率可以不同。使用波导可以向另一个滑架(例如,与存储器滑架1400在相同机架240或相邻机架240中的滑架400)提供对存储器池(例如,存储器集合1430、1432)的高吞吐量访问,而不添加光学数据连接器834上的负载。
现在参考图15,可以根据数据中心100来实现用于执行一个或多个工作负载(例如,应用)的系统。在说明性实施例中,系统1510包括协调器服务器1520,其可以体现为包括执行管理软件(例如,云操作环境,诸如OpenStack)的计算设备(例如,计算滑架800上的处理器820)的被管理节点,该计算设备通信地耦合到多个滑架400,所述多个滑架400包括大量计算滑架1530(例如,每个类似于计算滑架800)、存储器滑架1540(例如,每个类似于存储器滑架1400)、加速器滑架1550(例如,每个类似于存储器滑架1000)和存储滑架1560(例如,每个类似于存储滑架1200)。滑架1530、1540、1550、1560中的一个或多个可以被分组到被管理节点1570中,诸如通过协调器服务器1520,以共同执行工作负载(例如,在虚拟机或容器中执行的应用1532)。被管理节点1570可以体现为来自相同或不同滑架400的物理资源620的集合,诸如处理器820、存储器资源720、加速器电路1020或数据存储装置1250。此外,被管理节点可以在工作负载被分配给被管理节点的时间处或在任何其他时间处由协调器服务器1520建立、定义或“加快自旋”,并且可以存在,而不管当前是否将任何工作负载分配给被管理节点。在说明性实施例中,协调器服务器1520可以根据服务质量(QoS)目标(例如,与吞吐量、等待时间、每秒指令数等相关联的性能目标)选择性地从滑架400分配和/或解除分配物理资源620,和/或从被管理节点1570添加或移除一个或多个滑架400,所述服务质量(QoS)目标(例如,与吞吐量、等待时间、每秒指令等相关联的性能目标)与工作负载(例如,应用1532)的服务级别协议相关联。在这样做时,协调器服务器1520可以接收在被管理节点1570的每个滑架400中指示性能条件(例如,吞吐量、等待时间、每秒指令数等)的遥测数据,并且将遥测数据与服务质量目标进行比较,以确定服务质量目标是否得到满足。协调器服务器1520可以另外确定是否可以从被管理节点1570解除分配一个或多个物理资源而同时仍然满足QoS目标,从而释放那些物理资源以供在另一个被管理节点中使用(例如,以执行不同的工作负载)。替代地,如果当前不满足QoS目标,则协调器服务器1520可以确定在正执行工作负载时动态分配附加的物理资源来帮助工作负载(例如,应用1532)的执行。类似地,如果协调器服务器1520确定解除分配物理资源将导致仍然满足QoS目标,则协调器服务器1520可以确定从被管理节点动态地解除分配物理资源。
此外,在一些实施例中,协调器服务器1520可以标识工作负载(例如,应用1532)的资源利用的趋势,诸如通过标识工作负载(例如,应用1532)的执行阶段(例如,在其中执行不同操作的时间段,每个具有不同的资源利用特性),并且先发制人地标识数据中心100中的可用资源,并且将它们分配给被管理节点1570(例如,在相关联阶段开始的预定义时间段内)。在一些实施例中,协调器服务器1520可以基于各种等待时间和分配方案来对性能进行建模,以将工作负载放置在数据中心100中的计算滑架和其他资源(例如,加速器滑架、存储器滑架、存储滑架)之中。例如,协调器服务器1520可以利用计及滑架400上的资源性能(例如,FPGA性能、存储器访问等待时间等)和通过网络到资源(例如,FPGA)的路径性能(例如,拥塞、等待时间、带宽)的模型。照此,协调器服务器1520可以基于与数据中心100中可用的每个潜在资源相关联的总等待时间(例如,与资源本身的性能相关联的等待时间、加之以与执行工作负载的计算滑架和资源位于其上的滑架400之间通过网络的路径相关联的等待时间),来确定哪个(哪些)资源应当与哪些工作负载一起使用。
在一些实施例中,协调器服务器1520可以使用从滑架400报告的遥测数据(例如,温度、风扇速度等)生成数据中心100中的热生成图,并且根据与不同工作负载相关联的预测热生成和热生成图来将资源分配给被管理的节点,以维持数据中心100中的目标温度和热分布。附加地或替代地,在一些实施例中,协调器服务器1520可以将接收到的遥测数据组织成分层模型,所述分层模型指示被管理节点之间的关系(例如,空间关系,诸如数据中心100内被管理节点的资源的物理位置;和/或功能关系,诸如被管理节点提供服务的客户对被管理节点的分组、典型地由被管理节点执行的功能的类型、典型地在彼此之中共享或交换工作负载的被管理节点等)。基于被管理节点中的物理位置和资源方面的差异,给定的工作负载跨不同被管理节点的资源之上可以展现不同的资源利用率(例如,引起不同的内部温度,使用不同百分比的处理器或存储器容量)。协调器服务器1520可以基于存储在分层模型中的遥测数据来确定差异,并且如果工作负载从一个被管理节点被重新分配到另一个被管理节点,则将差异考虑到工作负载的未来资源利用的预测中,以准确地平衡数据中心100中的资源利用。
为了减少协调器服务器1520上的计算负载和网络上的数据传输负载,在一些实施例中,协调器服务器1520可以向滑架400发送自测试信息,以使得每个滑架400能够在本地(例如,在滑架400上)确定由滑架400生成的遥测数据是否满足一个或多个条件(例如,满足预定阈值的可用容量、满足预定阈值的温度等)。每个滑架400然后可以向协调器服务器1520报告回一简化的结果(例如,是或否),协调器服务器1520可以在确定对被管理节点的资源分配中利用所述简化的结果(例如,是或否)。
现在参考图16,用于快速启动的计算设备1600可以包括一个或多个处理器1602和ECC存储器1604。在使用中,在说明性实施例中,计算设备1600的BIOS可以将ECC存储器1604的存储器地址分配给各种处理器1602和处理器的内核。然后,一个处理器1602或一个处理器上的一个内核可以执行BIOS操作,而其他处理器1602或其他内核可以初始化ECC存储器1604的存储器地址。在一些实施例中,可以利用直接存储操作来初始化ECC存储器1604,所述直接存储操作可以绕过高速缓存,并且在单个指令中向ECC存储器1604写入诸如64字节的相对大量的数据。利用该方法,计算设备1600可以能够执行快速启动。如本文中使用的,启动指代初始化计算设备1600并且准备将控制传递给操作系统的过程。在一些实施例中,启动可以包括处理器处于真实模式直到处理器被改变到保护模式时的所有时间。快速启动指代一种启动,在所述启动中,一个处理器不是一次一个存储器位置地初始化ECC存储器1604。
计算设备1600可以体现为能够执行本文中描述的功能的任何类型的计算设备。例如,计算设备1600可以体现为或以其他方式被包括在以下各项中但不限于以下各项:服务器计算机、台式计算机、机架的滑架或叶片、诸如机架规模架构系统的分解计算系统、智能电话、蜂窝电话、可穿戴计算机、嵌入式计算系统、片上系统(SoC)、平板计算机、笔记本计算机、膝上型计算机、手机、消息接发设备、相机设备、多处理器系统、基于处理器的系统、消费电子设备和/或任何其他计算设备。
说明性计算设备1600包括处理器1602、ECC存储器1604、输入/输出(I/O)子系统1606、通信电路1608和数据存储装置1610。在一些实施例中,计算设备1600的说明性部件中的一个或多个可以并入另一部件中,或者以其他方式形成另一部件的部分。例如,在一些实施例中,ECC存储器1604或其部分可以并入处理器1602中。
处理器1602可以体现为能够执行本文中描述的功能的任何类型的处理器。例如,处理器1602可以体现为(一个或多个)单核或多核处理器、单插槽或多插槽处理器、数字信号处理器、微控制器或者其他处理器或处理/控制电路。在说明性实施例中,一个或多个处理器1602各自包括两个或更多个处理器内核。附加地或替代地,在一些实施例中,一些或所有处理器1602可以仅具有一个内核。在具有多于一个处理器1602的实施例中,一个处理器1602可以被指定为自举处理器(BSP),并且其他处理器1602可以被指定为应用处理器。自举处理器可以诸如通过执行BIOS来负责启动系统。被指定为自举处理器的处理器1602可以以任何合适的方式被这样指定,所述任何合适的方式诸如通过电路板上的位置、处理器中的设置、计算设备1600中的设置,或者通过在开启计算设备1600时的动态选择。
ECC存储器1604可以体现为能够执行本文中描述的功能的任何类型的易失性或非易失性存储器或数据存储装置。在操作中,ECC存储器1604可以存储在计算设备1600的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动程序。ECC存储器1604经由I/O子系统1606通信地耦合到处理器1602,I/O子系统1606可以体现为用以便于与处理器1602、ECC存储器1604和计算设备1600的其他部件的输入/输出操作的电路和/或部件。例如,I/O子系统1606可以体现为或以其他方式包括存储器控制器集线器、输入/输出控制集线器、固件设备、通信链路(即,点对点链路、总线链路、电线、线缆、光导、印刷电路板迹线等)和/或用于便于输入/输出操作的其他部件和子系统。在一些实施例中,I/O子系统1606可以形成片上系统(SoC)的部分,并且连同处理器1602、ECC存储器1604和计算设备1600的其他部件一起并入在单个集成电路芯片上。
在说明性实施例中,计算设备1600可以使用非均匀存储器访问(NUMA)。在那些实施例中,每个处理器1602具有被布置在该处理器1602附近、通过一条或多条电线直接连接到该处理器1602或者以其他方式与该处理器1602相关联的ECC存储器1604。从每个处理器1602到其本地ECC存储器1604的等待时间可以低于从处理器1602到在另一个处理器1602本地的ECC存储器1604的等待时间。附加地或替代地,从每个处理器1602到其本地ECC存储器1604的吞吐量可以高于从处理器1602到在另一个处理器1602本地的ECC存储器1604的吞吐量。在这样的实施例中,计算设备1600可以采用适合于NUMA系统的I/O子系统1606,诸如Intel®快速路径互连(QPI)或Intel®超路径互连(UPI)。在一些实施例中,I/O系统106可以具有基于目录的监听一致性协议。
ECC存储器1604可以包括一个或多个存储设备214。如本文中使用的,存储器设备214指代组成存储器214的部分的分立物理设备或部件。例如,存储器设备214可以是双列直插式存储器模块(DIMM),并且ECC存储器1604可以包括多个DIMM。存储器设备214也可以指代单个芯片,诸如DIMM上的芯片。应当领会到,在一些实施例中,ECC存储器1604的一些或全部可以从处理器1602被分解,并且可以能够支持多于一个处理器1602。
通信电路1608可以体现为能够将计算设备1600与网络或者与其他计算设备对接的任何类型的接口。通信电路1608也可以被称为或体现为网络接口控制器(NIC)。通信电路1608可以能够与诸如电缆或光缆之类的任何适当的线缆类型对接。通信电路1608可以被配置为使用任何一个或多个通信技术和相关联协议(例如,以太网、蓝牙®、Wi-Fi®、WiMAX、近场通信(NFC)、全向路径等)。此外,在一些实施例中,通信电路1608可以在与处理器1602分离的封装中,与处理器1602一起在多芯片封装中,或者与处理器1602一起在片上系统中。
数据存储装置1610可以体现为被配置用于数据的短期或长期存储的任何类型的一个或多个设备。例如,数据存储装置1610可以包括任何一个或多个存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器或其他数据存储设备。数据存储装置1610可以包括固件和BIOS。在一些实施例中,在对处理器1602进行重置时,处理器1602可以立即可访问数据存储装置1610的一些或全部。
在一些实施例中,计算设备1600可以包括数据流加速器(DSA)1612。DSA 1612可以体现为任何ASIC、FPGA、集成电路、功能块、硬件逻辑、卸载引擎或能够执行本文中描述的功能的其他硬件加速器。DSA 1612可以被配置为加速存储器操作,包括存储器访问操作、存储器复制操作、校验和创建或验证、虚拟地址转换和页面错误处理或其他存储器操作。DSA1612可以能够以预定次序或并行执行多个操作。如下面进一步描述的,处理器1602可以对DSA 1612进行编程,以执行ECC存储器1604的初始化。尽管在图16中被图示为耦合到I/O子系统1606的分离部件,但是应当理解到,在一些实施例中,DSA 1612和/或由DSA 1612提供的功能可以并入计算设备1600的一个或多个其他部件、诸如I/O子系统1606、存储器控制器或其他部件中。
当然,在一些实施例中,计算设备1600可以包括通常在计算设备1600中发现的附加部件,诸如一个或多个外围设备1614。外围设备1614可以包括显示器、键盘、鼠标、相机等。显示器可以体现为在其上可以向计算设备1600的用户显示信息的任何类型的显示器,诸如液晶显示器(LCD)、发光二极管(LED)显示器、阴极射线管(CRT)显示器、等离子体显示器、图像投影仪(例如,2D或3D)、激光投影仪、触摸屏显示器、平视显示器和/或其他显示技术。
现在参考图17,在说明性实施例中,计算设备1600在操作期间建立环境1700。说明性环境1700包括基本输入/输出系统(BIOS)1702和操作系统1704。环境1700的各种部件可以体现为硬件、软件、固件或其组合。例如,环境1700的各种部件可以形成处理器1602、ECC存储器1604或计算设备1600的其他硬件部件的部分,或者以其他方式由它们建立。照此,在一些实施例中,环境1700的部件中的一个或多个可以体现为电路或电气设备的集合(例如,BIOS电路1702、操作系统电路1704等)。应当领会到,在这样的实施例中,电路(例如,BIOS电路1702、操作系统电路1704等)中的一个或多个可以形成处理器1602、ECC存储器1604、I/O子系统1606、数据存储装置1608和/或计算设备1600的其他部件中的一个或多个的部分。例如,BIOS 1702可以体现为处理器1602和存储在数据存储装置1608和/或ECC存储器1604上的可以由处理器1602执行的相关联的指令。另外,在一些实施例中,说明性部件中的一个或多个可以形成另一个部件的部分,和/或说明性部件中的一个或多个可以彼此独立。此外,在一些实施例中,环境1700的部件中的一个或多个可以体现为虚拟化硬件部件或仿真架构,其可以由处理器1602或计算设备1600的其他部件建立和维护。应当领会到,环境1700的部件中的一个或多个的功能中的一些可以要求硬件实现,在这种情况下,实现这样的功能的部件的实施例将至少部分地体现为硬件。
如上面讨论的可以体现为硬件(例如,电路)、固件、软件、虚拟化硬件、仿真架构和/或其组合的BIOS 1702被配置为在上电或重置时初始化计算设备1600。如本文中使用的,BIOS可以指代作为计算设备1600的初始启动过程的部分而被执行的任何指令集合。BIOS可以体现为例如系统BIOS、只读存储器(ROM)BIOS、个人计算机(PC)BIOS、可扩展固件接口(EFI)、统一可扩展固件接口(UEFI)等。在说明性实施例中,将BIOS中的一小部分加载到处理器1602中,并且该小部分配置ECC存储器1604的一部分,然后将剩余的BIOS加载到ECC存储器1604中。
BIOS 1702包括ECC存储器地址分配器1706、ECC存储器初始化器1708和设备初始化器1710。ECC存储器地址分配器1706被配置为将存储器地址分配给将被初始化的一个或多个处理器1602和/或一个或多个处理器1602的内核。在具有NUMA系统的说明性实施例中,向每个处理器1602和/或每个处理器1602的每个内核分配对应的本地ECC存储器1604。应当领会到,在说明性实施例中,可以不向正在执行BIOS操作的处理器1602和/或处理器1602的内核分配任何存储器位置,这将允许BIOS操作在ECC存储器1604的初始化期间进行。在一些实施例中,可以预先确定存储器位置的分配。例如,计算设备102可以被配置为使得每个处理器1602将在没有任何显式分配的情况下初始化与该处理器1602相关联的ECC存储器1604。
在NUMA系统的一些实施例中,不同的处理器1602可以具有不同量的ECC存储器1604。在那些实施例中,具有较大量的ECC存储器1604的处理器1602的ECC存储器1604中的一些可以被分配给具有较小量的ECC存储器1604的处理器1602。
ECC存储器初始化器1708被配置为初始化ECC存储器1604。在说明性实施例中,ECC存储器初始化器1708可以配置计算设备1600以允许ECC存储器1604的快速初始化。例如,ECC存储器初始化器1708可以将计算设备1600配置为禁用否则可以被置于诸如AVX-512指令之类的某些指令上的限制。例如,在处理器进入诸如当前特权级别(CPL)3的用户模式状态之前的启动期间,那些限制可能不允许某些指令。在那些命令的执行期间,那些限制还可能使处理器1602、ECC存储器1604和/或I/O子系统1606节流。ECC存储器初始化器1708还可以将计算设备1600配置为操作一个或多个处理器1602、ECC存储器1604和/或I/O子系统1606从而以最大时钟频率操作。ECC存储器初始化器1708可以进一步禁用任何监听一致性协议以改进性能。
ECC存储器初始化器1708然后可以通过从对应的分配的处理器1602写入分配的存储器地址中的每个来初始化ECC存储器1604。在说明性实施例中,ECC存储器初始化器1708可以使用绕过所有级别的高速缓存并且直接写入ECC存储器1604的直接存储操作。直接存储操作可以在一个指令中存储诸如64字节(512位)的相对大量的数据。例如,ECC存储器初始化器1708可以使用Intel®处理器的“MOVDIR64B”指令。在一些实施例中,ECC存储器初始化器1708可以使用不同的64字节直接存储操作或另一个64字节原子高速缓存行写入而不读取。
应当领会到,在一些实施例中,处理器1602中的一些或所有可能不支持MOVDIR64B或任何类似的操作。为了在这样的实施例中正确操作,ECC存储器初始化器1708可以诸如通过检查处理器1602的CPU ID来检查处理器1602是否支持要使用的指令。如果要使用的指令不存在,则除了本文中描述的技术之外或代替本文中描述的技术,ECC存储器初始化器1708还可以使用其他技术来初始化ECC存储器1604,诸如使用收敛模式生成器校验器(CPGC)。
附加地或替代地,在一些实施例中,ECC存储器初始化器1708可以使用数据流加速器(DSA)1612来初始化ECC存储器1604。DSA可以与处理器1602中的一个或多个并行操作,所述处理器1602中的一个或多个可以正在执行BIOS操作或者还正在初始化ECC存储器1604。应当领会到,在说明性实施例中,DSA可以在不经过任何高速缓存级别的情况下访问存储器位置。
设备初始化器1710被配置为在启动期间初始化计算设备1600的一个或多个设备,诸如数据存储装置1608、PCIe和/或CXL设备、通信电路1608等。应当领会到,当ECC存储器初始化器1708正在初始化存储器1604时,设备初始化器1710和/或BIOS 1702的其他部件可以使用一个处理器1602和/或一个处理器1602的一个内核来继续执行BIOS操作。
在ECC存储器1604被初始化并且BIOS 1702的其他必要功能已经完成之后,BIOS1702可以将操作移交给操作系统1704。在一些实施例中,BIOS 1702的一些或全部可以在操作系统1704的操作期间保留在例如ECC存储器1604中,并且可以在计算设备1600的操作期间被访问。在其他实施例中,BIOS 1702可以从ECC存储器1604被移除,并且可以不被再次使用,直到计算设备1600被重置。应当领会到,BIOS可以执行上面未明确描述的附加功能,诸如安全检查、操作简单的用户接口、执行电源管理功能、加载操作系统1704等。
操作系统1704被配置为在BIOS 1702的操作已经完成之后接收对计算设备1600的控制。操作系统1704可以提供用户接口、运行用户应用、与其他设备通信以及以其他方式执行一般计算任务。
现在参考图18,在使用中,计算设备1600可以执行用于启动计算设备1600的方法1800。方法1800开始于框1802,其中计算设备1600的处理器1602中的一些或所有被重置。处理器1602可以在例如在计算设备1600上通电、按下计算设备1600上的重置按钮、重启计算设备1600、重新配置计算设备1600上的硬件或软件等等时被重置。
在框1804中,计算设备1600发现ECC存储器1604。计算设备1600可以使用例如BIOS的部分来发现ECC存储器1604。
在框1806中,计算设备1600初始化ECC存储器1604的部分。在说明性实施例中,在框1808中,计算设备1600利用绕过高速缓存的直接存储操作来初始化ECC存储器的部分。
在框1810中,计算设备1600将BIOS加载到ECC存储器1604的初始化部分中。在一些实施例中,计算设备1600可以通过将BIOS加载到ECC存储器1604的该部分中来初始化ECC存储器的该部分。
在框1812中,计算设备1600将ECC存储器1604的存储器地址分配给一个或多个处理器1602。在一些实施例中,在框1814中,计算设备1600可以将存储器地址分配给一个或多个处理器1602中的每一个上的若干个内核中的每一个。
在具有NUMA系统的说明性实施例中,在框1816中,向每个处理器1602和/或每个处理器1602的每个内核分配对应的本地ECC存储器1604。应当领会到,在说明性实施例中,可以不向正在执行BIOS操作的处理器1602和/或处理器1602的内核分配任何存储器位置,这将允许BIOS操作在ECC存储器1604的初始化期间继续进行。在一些实施例中,可以预先确定存储器位置的分配。例如,计算设备102可以被配置为使得每个处理器1602将在没有任何显式分配的情况下初始化与该处理器1602相关联的ECC存储器1604。在NUMA系统的一些实施例中,不同的处理器1602可以具有不同量的ECC存储器1604。在那些实施例中,具有较大量的ECC存储器1604的处理器1602的一些ECC存储器1604可以被分配给具有较小量的ECC存储器1604的处理器1602。
现在参考图19,在框1818中,计算设备1600可以将其自身配置用于快速存储器初始化。为了这样做,在框1820中,计算设备1600可以禁用否则可以被置于诸如AVX-512指令之类的某些指令上的限制。例如,那些限制可能不允许在处理器进入诸如当前特权级别(CPL)3之类的用户模式状态之前的启动期间的某些指令。在基于功率使用执行那些命令期间,那些限制也可以使处理器1602、ECC存储器1604和/或I/O子系统1606节流。移除那些限制或改变它们以允许在不同的CPL状态(诸如,CPL状态0、1或2)期间执行某些指令(诸如,MOVDIR64B指令)可以允许在具有较少或没有节流的情况下以较高的速率初始化ECC存储器1604。应当领会到,即使当特定指令的功率限制可以被移除或改变时,计算设备1600、处理器1602和/或存储器1604的总体功率限制仍然可以被实施。
在框1822中,计算设备1600可以将其自身配置用以操作一个或多个处理器1602、ECC存储器1604和/或I/O子系统1606以最大时钟频率操作。在框1824中,ECC存储器初始化器1708可以进一步禁用任何监听一致性协议以改进性能。
附加地或替代地,计算设备1600可以以其他方式配置其自身用于快速存储器初始化。例如,在一些实施例中,计算设备1600可以禁用存储器推测性加载和/或存储器预取,直到ECC存储器1604被初始化。这样的方法可以防止或减轻对ECC存储器1604的未初始化位置的访问,否则这可能引起错误。
在框1826中,计算设备1600通过从对应的分配的处理器1602写入分配的存储器地址中的每个来初始化ECC存储器地址1604。在说明性实施例中,在框1828中,计算设备1600可以使用绕过所有级别的高速缓存并且直接写入到ECC存储器1604的直接存储操作。直接存储操作可以在一个指令中存储诸如64字节(512位)的相对大量的数据。例如,计算设备1600可以使用Intel®处理器的“MOVDIR64B”指令。在框1830中,计算设备1600可以与ECC存储器1604的初始化同时地继续在一个处理器1600上或在一个处理器1600的一个内核上操作BIOS。
在框1832中,BIOS可以完成操作。BIOS可以例如初始化设备、加载设备驱动程序、加载诸如操作系统的软件等。在说明性实施例中,BIOS可以延迟启用巡逻清理,直到完成对ECC存储器1604的初始化。在框1834中,BIOS将控制移交给操作系统,并且计算设备1600开启操作系统。
应当领会到,在一些实施例中,BIOS可以在初始化ECC存储器1604中的一些或全部之前将控制移交给操作系统。在这样的实施例中,BIOS(或者,在其中DSA 1612初始化ECC存储器1604的实施例中,DSA 1612)可以设置标志,以向操作系统指示ECC存储器1604中的一些或全部还没有被初始化,以及提供哪些位置还没有被初始化的指示。例如,如果BIOS已经完成除了完成ECC存储器1604的初始化之外的所有任务,则BIOS可以停止ECC存储器1604的初始化,并且向操作系统提供哪些位置被初始化和没有被初始化的指示。当然,在这样的实施例中,操作系统然后可以以任何合适的方式初始化ECC存储器1604,诸如通过使用本文中描述的方法的各方面(例如,在若干个处理器1602的每一个中执行64字节的直接存储操作,延迟启用巡视清理直到完成ECC存储器1604的初始化,等)。
应当领会到,在一些实施例中,上述某些装置可以执行上述某些功能。例如,在一些实施例中,计算设备1600可以包括装置,所述装置用于由若干个处理器中的每一个对被分配给对应处理器的ECC存储器的不同的多个存储器地址进行初始化。这样的装置可以体现为例如处理器1602和/或DSA 1612中的一个或多个、连同数据存储装置1610、ECC存储器1604和/或诸如只读存储器的其他存储装置中的对应软件。软件可以实现本文中描述的算法,诸如在方法1800中描述的算法,包括在框1826中描述的用于初始化ECC存储器地址的算法。
计算设备1600还可以包括装置,所述装置用于初始化ECC存储器1604的部分、在启动时将BIOS的至少部分加载到ECC存储器1604的部分中以及与ECC存储器1604的其他部分的初始化同时地操作BIOS。这样的装置可以体现为例如DSA 1612和/或处理器1602中的一个或多个、连同数据存储装置1610、ECC存储器1604和/或诸如只读存储器的其他存储装置中的对应软件。软件可以实现本文中描述的算法,诸如在方法1800中描述的算法,包括在框1806中描述的用于初始化ECC存储器1604的部分的算法,在框1810中描述的用于在ECC存储器1604的初始化部分中加载BIOS的算法,以及如在框1830中描述的用于与存储器初始化同时地操作BIOS的算法。
示例
下面提供了本文中公开的技术的说明性示例。所述技术的实施例可以包括下面描述的示例中的任何一个或多个以及它们的任何组合。
示例1包括计算设备,其包括多个处理器;纠错码(ECC)存储器;以及基本输入/输出系统(BIOS),用于通过所述多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址。
示例2包括示例1的主题,并且其中计算设备被配置为在启动时将BIOS的至少部分加载到ECC存储器的第一部分中。
示例3包括示例1和示例2中任一个的主题,并且其中计算设备进一步被配置为通过不同于所述多个处理器的第一处理器来与所述多个处理器对ECC存储器的初始化同时地操作BIOS。
示例4包括示例1-3中任一个的主题,并且其中所述多个处理器中的每一个被配置为在处理器级功率限制以下操作,其中所述多个处理器中的每一个被配置为在没有指令级功率限制的情况下操作,以在BIOS的操作期间使MOVDIR64B操作的操作节流。
示例5包括示例1-4中任一个的主题,并且其中通过所述多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址包括:通过所述多个处理器中的每一个的内核并且利用MOVDIR64B操作的执行在BIOS的操作期间以最大处理器内核频率来初始化被分配给对应处理器的ECC存储器的多个存储器地址,其中,BIOS进一步用于与BIOS的操作和MOVDIR64B操作的执行同时地以最大存储器带宽频率操作ECC存储器。
示例6包括示例1-5中任一个的主题,并且其中通过所述多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址包括:通过所述多个处理器中的每一个对被分配给对应处理器的多个存储器地址执行多个直接存储操作,其中所述多个直接存储操作中的每一个不使得对应处理器将对应直接存储操作的数据写入对应处理器的高速缓存层级中。
示例7包括示例1-6中任一个的主题,并且其中,BIOS进一步用于通过不同于所述多个处理器的第一处理器、使用一个或多个直接存储操作来初始化ECC存储器的部分,其中,所述一个或多个直接存储操作中的每一个不使得第一处理器将对应的直接存储操作的数据写入第一处理器的高速缓存层级中。
示例8包括示例1-7中任一个的主题,并且其中,ECC存储器是非均匀存储器访问(NUMA)存储器,并且所述多个处理器中的每个处理器具有ECC存储器的部分,所述ECC存储器的部分是对应处理器的本地存储器,其中,BIOS进一步用于向所述多个处理器中的每一个分配与对应处理器的本地存储器相对应的多个存储器地址。
示例9包括示例1-8中任一个的主题,并且其中计算设备的一个或多个处理器具有在对应处理器本地的第一量的本地存储器,并且计算设备的一个或多个处理器具有比在对应处理器本地的第一量的本地存储器大的第二量的本地存储器,其中BIOS进一步用于向具有第一量的本地存储器的一个或多个处理器中的每一个分配在具有第二量的本地存储器的一个或多个处理器本地的存储器的多个存储器地址。
示例10包括示例1-9中任一个的主题,并且其中,BIOS进一步用于在通过所述多个处理器中的每一个对ECC的对应的多个存储器地址进行初始化期间,针对ECC存储器的至少部分禁用监听一致性协议。
示例11包括一种用于启动计算设备的方法,所述方法包括通过多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址。
示例12包括示例11的主题,并且进一步包括将基本输入/输出系统(BIOS)加载到ECC存储器的第一部分中。
示例13包括示例11和示例12中任一个的主题,并且进一步包括通过不同于所述多个处理器的第一处理器来与所述多个处理器对ECC存储器的初始化同时地操作BIOS。
示例14包括示例11-13中任一个的主题,并且其中所述多个处理器中的每一个被配置为在处理器级功率限制以下操作,其中所述多个处理器中的每一个被配置为在没有指令级功率限制的情况下操作,以在BIOS的操作期间使MOVDIR64B操作的操作节流。
示例15包括示例11-14中任一个的主题,并且其中通过所述多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址包括:通过所述多个处理器中的每一个的内核并且利用MOVDIR64B操作的执行在BIOS的操作期间以最大处理器内核频率来初始化被分配给对应处理器的ECC存储器的多个存储器地址,进一步包括与BIOS的操作和MOVDIR64B操作的执行同时地以最大存储器带宽频率操作ECC存储器。
示例16包括示例11-15中任一个的主题,并且其中通过所述多个处理器中的每一个初始化ECC存储器的不同的多个存储器地址包括:通过所述多个处理器中的每一个对被分配给对应处理器的多个存储器地址执行多个直接存储操作,其中所述多个直接存储操作中的每一个不使得对应处理器将对应直接存储操作的数据写入对应处理器的高速缓存层级中。
示例17包括示例11-16中任一个的主题,并且进一步包括通过不同于所述多个处理器的第一处理器使用一个或多个直接存储操作来初始化计算设备的ECC存储器的第一部分,其中所述一个或多个直接存储操作中的每一个不使得第一处理器将对应的直接存储操作的数据写入第一处理器的高速缓存层级中。
示例18包括示例11-17中任一个的主题,并且其中,ECC存储器是非均匀存储器访问(NUMA)存储器,并且所述多个处理器中的每个处理器具有ECC存储器的部分,所述ECC存储器的部分是对应处理器的本地存储器,所述方法进一步包括向所述多个处理器中的每一个分配与对应处理器的本地存储器相对应的多个存储器地址。
示例19包括示例11-18中任一个的主题,并且其中计算设备的一个或多个处理器具有在对应处理器本地的第一量的本地存储器,并且计算设备的一个或多个处理器具有比在对应处理器本地的第一量的本地存储器大的第二量的本地存储器,所述方法进一步包括向具有第一量的本地存储器的一个或多个处理器中的每一个分配在具有第二量的本地存储器的一个或多个处理器本地的存储器的多个存储器地址。
示例20包括一个或多个计算机可读介质,其包括存储在其上的多个指令,所述多个指令当被执行时,使得计算设备通过所述多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址。
示例21包括示例20的主题,并且其中所述多个指令进一步使得计算设备将基本输入/输出系统(BIOS)加载到ECC存储器的第一部分中。
示例22包括示例20和示例21中任一个的主题,并且其中所述多个指令进一步使得计算设备通过不同于所述多个处理器的第一处理器来与所述多个处理器对ECC存储器的初始化同时地操作BIOS。
示例23包括示例20-22中任一个的主题,并且其中所述多个处理器中的每一个被配置为在处理器级功率限制以下操作,其中所述多个指令进一步使得计算设备禁用指令级功率限制,以在BIOS的操作期间使MOVDIR64B操作的操作节流。
示例24包括示例20-23中任一个的主题,并且其中通过所述多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址包括:通过所述多个处理器中的每一个的内核并且利用MOVDIR64B操作的执行在BIOS的操作期间以最大处理器内核频率来初始化被分配给对应处理器的ECC存储器的多个存储器地址,其中所述多个指令进一步使得计算设备与BIOS的操作和MOVDIR64B操作的执行同时地以最大存储器带宽频率操作ECC存储器。
示例25包括示例20-24中任一个的主题,并且其中通过所述多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址包括:通过所述多个处理器中的每一个对被分配给对应处理器的多个存储器地址执行多个直接存储操作,其中所述多个直接存储操作中的每一个不使得对应处理器将对应直接存储操作的数据写入对应处理器的高速缓存层级中。
示例26包括示例20-25中任一个的主题,并且其中所述多个指令进一步使得计算设备通过不同于所述多个处理器的第一处理器,使用一个或多个直接存储操作来初始化计算设备的ECC存储器的第一部分,其中所述一个或多个直接存储操作中的每一个不使得第一处理器将对应的直接存储操作的数据写入第一处理器的高速缓存层级中。
示例27包括示例20-26中任一个的主题,并且其中,ECC存储器是非均匀存储器访问(NUMA)存储器,并且所述多个处理器中的每个处理器具有ECC存储器的部分,所述ECC存储器的部分是对应处理器的本地存储器,其中,所述多个指令进一步使得计算设备向所述多个处理器中的每一个分配与对应处理器的本地存储器相对应的多个存储器地址。
示例28包括示例20-27中任一个的主题,并且其中计算设备的一个或多个处理器具有在对应处理器本地的第一量的本地存储器,并且计算设备的一个或多个处理器具有比在对应处理器本地的第一量的本地存储器大的第二量的本地存储器,其中,所述多个指令进一步使得计算设备向具有第一量的本地存储器的一个或多个处理器中的每一个分配在具有第二量的本地存储器的一个或多个处理器本地的存储器的多个存储器地址。
Claims (25)
1.一种计算设备,包括:
多个处理器;
纠错码(ECC)存储器;和
基本输入/输出系统(BIOS),用于:
通过所述多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址。
2.根据权利要求1所述的计算设备,其中,所述计算设备被配置为:
在启动时将BIOS的至少部分加载到ECC存储器的第一部分中。
3.根据权利要求2所述的计算设备,其中,所述计算设备进一步被配置为通过不同于所述多个处理器的第一处理器来与所述多个处理器对ECC存储器的初始化同时地操作BIOS。
4.根据权利要求3所述的计算设备,其中,所述多个处理器中的每一个被配置为在处理器级功率限制以下操作,
其中所述多个处理器中的每一个被配置为在没有指令级功率限制的情况下操作,以在BIOS的操作期间使MOVDIR64B操作的操作节流。
5.根据权利要求4所述的计算设备,其中,通过所述多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址包括:通过所述多个处理器中的每一个的内核并且利用MOVDIR64B操作的执行在BIOS的操作期间以最大处理器内核频率来初始化被分配给对应处理器的ECC存储器的多个存储器地址,
其中,BIOS进一步用于与BIOS的操作和MOVDIR64B操作的执行同时地以最大存储器带宽频率操作ECC存储器。
6.根据权利要求1所述的计算设备,其中,通过所述多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址包括:通过所述多个处理器中的每一个对被分配给对应处理器的多个存储器地址执行多个直接存储操作,
其中所述多个直接存储操作中的每一个不使得对应处理器将对应直接存储操作的数据写入对应处理器的高速缓存层级中。
7.根据权利要求1所述的计算设备,其中,ECC存储器是非均匀存储器访问(NUMA)存储器,并且所述多个处理器中的每个处理器具有ECC存储器的部分,所述ECC存储器的部分是对应处理器的本地存储器,
其中,BIOS进一步用于向所述多个处理器中的每一个分配与对应处理器的本地存储器相对应的多个存储器地址。
8.根据权利要求1所述的计算设备,其中计算设备的一个或多个处理器具有在对应处理器本地的第一量的本地存储器,并且计算设备的一个或多个处理器具有比在对应处理器本地的第一量的本地存储器大的第二量的本地存储器,
其中BIOS进一步用于向具有第一量的本地存储器的一个或多个处理器中的每一个分配在具有第二量的本地存储器的一个或多个处理器本地的存储器的多个存储器地址。
9.根据权利要求1所述的计算设备,其中,BIOS进一步用于在通过所述多个处理器中的每一个对ECC的对应的多个存储器地址进行初始化期间,针对ECC存储器的至少部分禁用监听一致性协议。
10.一种用于引导计算设备的方法,所述方法包括:
通过多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址。
11.根据权利要求10所述的方法,进一步包括:
将基本输入/输出系统(BIOS)加载到ECC存储器的第一部分中。
12.根据权利要求11所述的方法,进一步包括:
通过不同于所述多个处理器的第一处理器来与所述多个处理器对ECC存储器的初始化同时地操作BIOS。
13.根据权利要求12所述的方法,其中所述多个处理器中的每一个被配置为在处理器级功率限制以下操作,
其中所述多个处理器中的每一个被配置为在没有指令级功率限制的情况下操作,以在BIOS的操作期间使MOVDIR64B操作的操作节流。
14.根据权利要求13所述的方法,其中,通过所述多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址包括:通过所述多个处理器中的每一个的内核并且利用MOVDIR64B操作的执行在BIOS的操作期间以最大处理器内核频率来初始化被分配给对应处理器的ECC存储器的多个存储器地址,
进一步包括与BIOS的操作和MOVDIR64B操作的执行同时地以最大存储器带宽频率操作ECC存储器。
15.根据权利要求10所述的方法,其中通过所述多个处理器中的每一个初始化ECC存储器的不同的多个存储器地址包括:通过所述多个处理器中的每一个对被分配给对应处理器的多个存储器地址执行多个直接存储操作,
其中所述多个直接存储操作中的每一个不使得对应处理器将对应直接存储操作的数据写入对应处理器的高速缓存层级中。
16.根据权利要求10所述的方法,其中,ECC存储器是非均匀存储器访问(NUMA)存储器,并且所述多个处理器中的每个处理器具有ECC存储器的部分,所述ECC存储器的部分是对应处理器的本地存储器,
所述方法进一步包括向所述多个处理器中的每一个分配与对应处理器的本地存储器相对应的多个存储器地址。
17.根据权利要求10所述的方法,其中计算设备的一个或多个处理器具有在对应处理器本地的第一量的本地存储器,并且计算设备的一个或多个处理器具有比在对应处理器本地的第一量的本地存储器大的第二量的本地存储器,
所述方法进一步包括向具有第一量的本地存储器的一个或多个处理器中的每一个分配在具有第二量的本地存储器的一个或多个处理器本地的存储器的多个存储器地址。
18.一种计算设备,包括:
装置,其用于通过所述多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址。
19.根据权利要求18所述的计算设备,进一步包括用于将基本输入/输出系统(BIOS)加载到ECC存储器的第一部分中的装置。
20.根据权利要求19所述的计算设备,进一步包括用于通过不同于所述多个处理器的第一处理器来与所述多个处理器对ECC存储器的初始化同时地操作BIOS的装置。
21.根据权利要求20所述的计算设备,其中所述多个处理器中的每一个被配置为在处理器级功率限制以下操作,并且
进一步包括用于在没有指令级功率限制的情况下操作以在BIOS的操作期间使MOVDIR64B操作的操作节流的装置。
22.根据权利要求21所述的计算设备,其中,用于通过所述多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址的装置包括:用于通过所述多个处理器中的每一个的内核并且利用MOVDIR64B操作的执行在BIOS的操作期间以最大处理器内核频率来初始化被分配给对应处理器的ECC存储器的多个存储器地址的装置,并且
进一步包括用于与BIOS的操作和MOVDIR64B操作的执行同时地以最大存储器带宽频率操作ECC存储器的装置。
23.根据权利要求18所述的计算设备,其中,用于通过所述多个处理器中的每一个来初始化被分配给对应处理器的ECC存储器的不同的多个存储器地址的装置包括:用于通过所述多个处理器中的每一个对被分配给对应处理器的多个存储器地址执行多个直接存储操作的装置,
其中所述多个直接存储操作中的每一个不使得对应处理器将对应直接存储操作的数据写入对应处理器的高速缓存层级中。
24.根据权利要求18所述的计算设备,其中,ECC存储器是非均匀存储器访问(NUMA)存储器,并且所述多个处理器中的每个处理器具有ECC存储器的部分,所述ECC存储器的部分是对应处理器的本地存储器,并且
进一步包括用于向所述多个处理器中的每一个分配与对应处理器的本地存储器相对应的多个存储器地址的装置。
25.根据权利要求18所述的计算设备,其中,计算设备的一个或多个处理器具有在对应处理器本地的第一量的本地存储器,并且计算设备的一个或多个处理器具有比在对应处理器本地的第一量的本地存储器大的第二量的本地存储器,并且
进一步包括用于向具有第一量的本地存储器的一个或多个处理器中的每一个分配在具有第二量的本地存储器的一个或多个处理器本地的存储器的多个存储器地址的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/729321 | 2019-12-28 | ||
US16/729,321 US11960900B2 (en) | 2019-12-28 | 2019-12-28 | Technologies for fast booting with error-correcting code memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113051097A true CN113051097A (zh) | 2021-06-29 |
Family
ID=70328673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011022359.0A Pending CN113051097A (zh) | 2019-12-28 | 2020-09-25 | 用于利用纠错码存储器进行快速启动的技术 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11960900B2 (zh) |
CN (1) | CN113051097A (zh) |
DE (1) | DE102020130965A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356455A (zh) * | 2022-01-06 | 2022-04-15 | 深圳忆联信息系统有限公司 | 提升芯片启动可靠性的方法及装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230205306A1 (en) * | 2021-12-24 | 2023-06-29 | Advanced Micro Devices, Inc | Default Boost Mode State for Devices |
TWI831340B (zh) * | 2022-08-24 | 2024-02-01 | 大陸商北京歐錸德微電子技術有限公司 | 快速初始化裝置與方法以及積體電路設計驗證系統 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7065688B1 (en) * | 2003-02-19 | 2006-06-20 | Advanced Micro Devices, Inc. | Simultaneous multiprocessor memory testing and initialization |
US7467326B2 (en) * | 2003-02-28 | 2008-12-16 | Maxwell Technologies, Inc. | Self-correcting computer |
US10725681B2 (en) | 2015-06-16 | 2020-07-28 | Synopsys, Inc. | Method for calibrating the read latency of a DDR DRAM module |
US11468170B2 (en) | 2018-12-07 | 2022-10-11 | Intel Corporation | Techniques for processor boot-up |
-
2019
- 2019-12-28 US US16/729,321 patent/US11960900B2/en active Active
-
2020
- 2020-09-25 CN CN202011022359.0A patent/CN113051097A/zh active Pending
- 2020-11-24 DE DE102020130965.1A patent/DE102020130965A1/de active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356455A (zh) * | 2022-01-06 | 2022-04-15 | 深圳忆联信息系统有限公司 | 提升芯片启动可靠性的方法及装置 |
CN114356455B (zh) * | 2022-01-06 | 2023-12-05 | 深圳忆联信息系统有限公司 | 提升芯片启动可靠性的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US11960900B2 (en) | 2024-04-16 |
US20200133683A1 (en) | 2020-04-30 |
DE102020130965A1 (de) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11030017B2 (en) | Technologies for efficiently booting sleds in a disaggregated architecture | |
US20210073151A1 (en) | Page-based remote memory access using system memory interface network device | |
US20190354406A1 (en) | Technologies for rdma queue pair qos management | |
US20210019069A1 (en) | Memory and storage pool interfaces | |
US20210200667A1 (en) | Memory thin provisioning using memory pools | |
CN113051097A (zh) | 用于利用纠错码存储器进行快速启动的技术 | |
EP3731090A1 (en) | Technologies for providing resource health based node composition and management | |
US20210334138A1 (en) | Technologies for pre-configuring accelerators by predicting bit-streams | |
EP3716085B1 (en) | Technologies for flexible i/o endpoint acceleration | |
US11269395B2 (en) | Technologies for providing adaptive power management in an accelerator sled | |
EP3761177A1 (en) | Technologies for providing latency-aware consensus management in a disaggregated architecture | |
CN111866612A (zh) | 用于提供加速器设备发现服务的技术 | |
CN115136565A (zh) | 用于在分解环境中提供先进资源管理的技术 | |
EP3757785A1 (en) | Technologies for facilitating remote memory requests in accelerator devices | |
EP3716088B1 (en) | Technologies for flexible protocol acceleration | |
US10789189B1 (en) | Technologies for providing inter-kernel flow control for accelerator device kernels | |
US20200341904A1 (en) | Technologies for chained memory search with hardware acceleration | |
US20190324802A1 (en) | Technologies for providing efficient message polling | |
EP3731095A1 (en) | Technologies for providing inter-kernel communication abstraction to support scale-up and scale-out | |
CN117234297A (zh) | 用于提供针对超融合基础结构的高效池化的技术 |
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 |