CN111752874A - 所有主机处理器电源状态的非易失性存储器带外管理接口 - Google Patents
所有主机处理器电源状态的非易失性存储器带外管理接口 Download PDFInfo
- Publication number
- CN111752874A CN111752874A CN202010137083.4A CN202010137083A CN111752874A CN 111752874 A CN111752874 A CN 111752874A CN 202010137083 A CN202010137083 A CN 202010137083A CN 111752874 A CN111752874 A CN 111752874A
- Authority
- CN
- China
- Prior art keywords
- configuration data
- computing system
- remote access
- access controller
- host processor
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/4416—Network booting; Remote initial program loading [RIPL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本公开涉及所有主机处理器电源状态的非易失性存储器带外管理接口。系统、装置和方法可以提供在计算系统的远程访问控制器处接收与计算系统的非易失性存储器相关联的配置数据的技术,其中,配置数据在计算系统处于睡眠状态时被接收。该技术还可以存储配置数据,并且为计算系统的主机处理器提供对配置数据的访问权。在一个示例中,接收配置数据绕过了计算系统的与存储器配置相关的重新启动,并且配置数据经由带外管理接口被接收。
Description
技术领域
实施例总体上涉及存储器管理接口。更具体地,实施例涉及用于所有主机处理器电源状态的非易失性存储器(NVM)带外管理接口。
背景技术
数据中心可以使用非易失性存储器标准(NVMe)设备的大型阵列来存储数据。当包含NVMe设备的计算系统/平台处于操作电源状态(例如,2017年5月的高级配置和电源接口/ACPI规范修订版6.2的S0电源状态)时,配置NVMe设备以供操作的常规方法可以遵循仅配置NVMe设备的策略。操作电源状态支持有助于执行预编译的二进制代码的运行时环境(例如LINUX和/或WINDOWS)以及UEFI(统一可扩展固件接口)外壳。在这种情况下,系统管理员通常可以启动系统以激活操作系统(OS)、远程登录、设置正确的存储器配置(例如,使用命令行接口/CLI、图形用户界面/GUI和/或人机界面基础结构/HII)并重新启动系统。由于涉及多个启动序列,配置NVMe设备的常规方法可能速度慢且不灵活。
发明内容
根据本公开的一方面,提供了一种计算系统,包括:非易失性存储器;主机处理器,所述主机处理器耦合到所述非易失性存储器;以及远程访问控制器,所述远程访问控制器包括计算机可读存储介质,其中,所述计算机可读存储介质包括一组可执行程序指令,这些可执行程序指令在被所述远程访问控制器执行时使所述远程访问控制器执行以下操作:在所述远程访问控制器处接收与所述非易失性存储器相关联的配置数据,其中,所述配置数据将在所述计算系统处于睡眠状态时被接收,存储所述配置数据,以及为所述主机处理器提供对所述配置数据的访问权。
根据本公开的一方面,提供了一种半导体装置,包括:一个或多个衬底;以及耦合到所述一个或多个衬底的逻辑,其中,所述逻辑至少部分地实现在一个或多个可配置逻辑或固定功能硬件逻辑中,耦合到所述一个或多个衬底的所述逻辑用于:在计算系统的远程访问控制器处接收与所述计算系统的非易失性存储器相关联的配置数据,其中,所述配置数据将在所述计算系统处于睡眠状态时被接收;存储所述配置数据;以及为所述计算系统的主机处理器提供对所述配置数据的访问权。
根据本公开的一方面,提供了至少一种计算机可读存储介质,包括一组可执行程序指令,这些可执行程序指令在被计算系统的远程访问控制器执行时使所述计算系统执行以下操作:在所述远程访问控制器处接收与所述计算系统的非易失性存储器相关联的配置数据,其中,所述配置数据将在所述计算系统处于睡眠状态时被接收;存储所述配置数据;以及为所述计算系统的主机处理器提供对所述配置数据的访问权。
根据本公开的一方面,提供了一种方法,包括:在计算系统的远程访问控制器处接收与所述计算系统的非易失性存储器相关联的配置数据,其中,所述配置数据在所述计算系统处于睡眠状态时被接收;存储所述配置数据,以及为所述计算系统的主机处理器提供对所述配置数据的访问权。
附图说明
通过阅读以下说明书和所附权利要求,并且通过参考以下附图,实施例的各种优点对于本领域技术人员而言将显而易见,在附图中:
图1是根据实施例的在任何电源状态下接受非易失性存储器(NVM)配置数据的计算系统的示例的框图;
图2是根据实施例的操作远程访问控制器的方法的示例的流程图;
图3A是根据实施例的初始启动配置流程的示例的流程图;
图3B是根据实施例的配置变化流的示例的流程图;
图4是根据实施例的半导体装置的示例的图示;
图5是根据实施例的处理器的示例的框图;并且
图6是根据实施例的基于多处理器的计算系统的示例的框图。
具体实施方式
现在转到图1,示出了性能增强计算系统10,其中主机处理器12(例如,中央处理单元/CPU)经由接口16(例如,双数据速率传输(DDRT)接口)通信地耦合到非易失性存储器14(NVM,例如包括一个或多个双列直插存储器模块)。所示的计算系统10还包括远程访问控制器18(例如,基板管理控制器/BMC、集成DELL远程访问控制器/iDRAC等),所述计算系统10通常可以是以下电子设备/平台的一部分:具有计算功能的电子设备/平台(例如,个人数字助理/PDA、笔记本计算机、平板计算机、可转换平板电脑、服务器)、具有通信功能的电子设备/平台(例如,智能电话)、具有成像功能的电子设备/平台(例如,照相机、摄像机)、具有媒体播放功能的电子设备/平台(例如,智能电视/TV)、具有可穿戴功能的电子设备/平台(例如,手表、眼镜、头饰、鞋类、珠宝)、具有车辆功能的电子设备/平台(例如,汽车、卡车、摩托车)、具有游戏功能的电子设备/平台(例如,联网多播放器控制台)等、或它们的任何组合。
在实施例中,远程访问控制器18经由接口20(例如,直接存储器访问(DMA)接口)通信地耦合到主机处理器12。在一个示例中,远程访问控制器18测量计算系统10的内部物理变量,例如,温度、湿度、电源电压、风扇速度、通信参数和操作系统(OS)功能。所示的远程访问控制器18包括存储器26(例如,共享存储器),存储器26用于存储所测量到的数据以及用于操作远程访问控制器18的固件指令。系统管理员通常可以经由计算系统10的带外(OOB)接口22(例如,智能平台管理接口/IPMI、Redfish主机接口等)来访问由远程访问控制器18收集到的数据。在一个实施例中,OOB接口22与计算系统10的主网络连接(例如,有线的、无线的,图中未示出)分开。在另一实施例中,OOB接口22不与主网络连接分开。
所示的远程访问控制器18还经由OOB接口22接收(例如,从系统管理员)与NVM 14相关联的配置数据24。配置数据24通常可以描述如何将数据存储在NVM 14中。例如,配置数据24可以在数据中心设置中识别NVM 14的容量划分(volume partitioning)。所示的远程访问控制器18将配置数据24存储在存储器26中,将配置数据24标记为尚未被应用,并且向主机处理器12提供对配置数据24的访问权(例如,读/写访问权)。在一个示例中,主机处理器12将存储器26映射到由主机处理器12管理的存储器空间,其中,在主机处理器12上执行的诸如BIOS(基本输入/输出系统)、可扩展固件接口(EFI)和/或UEFI固件指令之类的启动代码在每次启动时检查新存储的NVM配置。当BIOS遇到配置数据24时,BIOS可以将配置数据24应用于NVM 14,并将存储器26中的配置数据24标记为已被应用。
要特别注意的是,在计算系统10处于任何电源状态时,所示的配置数据24由远程访问控制器18接收。例如,在计算系统10处于睡眠状态(例如,S1-S4 ACPI电源状态)时,远程访问控制器18可以接收和/或接受配置数据24。在计算系统10和/或主机处理器12处于睡眠状态时接受配置数据24使得能够避免计算系统10的启动或重新启动。例如,在所示的示例中,系统管理员不再需要重新启动系统10来激活主机处理器12中的OS、远程登录和设置正确的存储器配置(例如,使用CLI、GUI和/或HII)。因此,计算系统10可以被认为是性能增强和/或可扩展性增强到了配置NVM 14比常规解决方案更快且更灵活的程度。
图2示出了操作已经讨论的远程访问控制器(例如,远程访问控制器18(图1))的方法30。方法30可以在一个或多个模块中被实现为逻辑指令集,该逻辑指令集存储在以下各项中:机器或计算机可读存储介质,例如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪速存储器等;可配置逻辑,例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD);固定功能逻辑硬件,其使用了诸如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术之类的电路技术;或它们的任何组合。
例如,用于执行方法30中所示的操作的计算机程序代码可以以一种或多种编程语言的任何组合来编写,所述一种或多种编程语言包括面向对象的编程语言(例如JAVA、SMALLTALK、C++等)以及常规的程序化编程语言(例如“C”编程语言或类似的编程语言)。此外,逻辑指令可以包括汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、状态设置数据、集成电路的配置数据、使电子电路和/或硬件固有的其他结构部件(例如,主机处理器、中央处理单元/CPU、微控制器等)个性化的状态信息。
所示的处理块32在计算系统的远程访问控制器处接收与NVM相关联的配置数据,其中,在计算系统处于睡眠状态时接收配置数据。在实施例中,块32绕过计算系统的与存储器配置相关的重新启动。配置数据可以经由OOB管理接口接收。在一个示例中,块32还包括验证配置数据(例如,确认由目标运行时环境支持配置的数据)。配置数据在块34处被存储到存储器(例如,共享存储器)。块34还可以包括将配置数据标记为尚未被应用。所示的块36为计算系统的主机处理器提供对配置数据的访问权。在实施例中,块36包括向存储配置数据的存储器授予读/写访问权。
如前所述,在计算系统处于睡眠状态时接受配置数据使得能够避免重新启动计算系统。因此,在所示的示例中,系统管理员不再需要重新启动系统来激活主机处理器上的OS、远程登录和设置正确的存储器配置。因此,方法30可以将性能和可扩展性增强到配置NVM比常规解决方案更快且更灵活的程度。
图3A示出了进行初始启动配置的方法40。方法40通常可以在诸如BMC之类的远程访问控制器中用启动代码实现,所述启动代码例如为诸如已经讨论的计算系统10(图1)之类的计算系统的BIOS。更具体地说,方法40可以在一个或多个模块中被实现为逻辑指令集,该逻辑指令集存储在以下各项中:机器或计算机可读存储介质,例如RAM、ROM、PROM、固件、闪速存储器等;可配置逻辑,例如PLA、FPGA、CPLD;固定功能逻辑硬件,其使用了诸如ASIC、CMOS或TTL技术之类的电路技术;或它们的任何组合。
所示的BMC块42在机械上的关闭状态(例如,G3 ACPI电源状态)之后将计算系统保持在睡眠状态(例如,S1-S4 ACPI电源状态)。可以在BMC块44处通过OOB管理接口接受NVM配置请求。BMC块46验证、存储配置数据并将配置数据标记为尚未被应用。在块48,系统管理员可以触发计算系统的启动,其中所示的BIOS块50确定新配置是否由BMC存储。如果是,则BIOS块52从BMC取回并应用新配置,并且BIOS块54将来自BMC的新配置标记为已被应用。可以在BIOS块56继续启动。如果在BIOS块50处确定BMC没有存储新配置,则所示的BIOS块58应用默认的NVM配置。因此,所示的方法40通过在计算系统处于睡眠状态时接受NVM配置请求来实现NVM的更快配置。
图3B示出了进行配置变化的方法60。方法60通常可以用诸如已讨论的计算系统10(图1)之类的计算系统的BMC和BIOS来实现。更具体地,方法60可以在一个或多个模块中被实现为逻辑指令集,该逻辑指令集存储在以下各项中:机器或计算机可读存储介质,例如RAM、ROM、PROM、固件、闪速存储器等;可配置逻辑,例如PLA、FPGA、CPLD;固定功能逻辑硬件,其使用了诸如ASIC、CMOS或TTL技术之类的电路技术;或它们的任何组合。
所示的BMC块62以计算系统的电源状态未知和/或被忽略来继续。可以在BMC块64处通过OOB管理接口接受NVM配置请求。BMC块66覆写先前存储的配置,并将新的配置数据标记为尚未被应用。如果在系统处于S0状态时接收到新配置,则重新启动系统可能是适当的。因此,在块68,系统管理员可以触发计算系统的启动,其中所示的BIOS块70确定新配置是否由BMC存储。如果是,则BIOS块72从BMC取回并应用新配置,并且BIOS块74将来自BMC的新配置标记为已被应用。在实施例中,新配置也存储在公共位置(例如,平台配置数据/PCD)中,而不考虑原始配置请求的来源。在BIOS块76处可以继续启动。
如果在BIOS块70处确定BMC没有存储新配置,则所示的BIOS块78确定新配置是否从PCD存储。在实施例中,PCD包含在构建平台BIOS/启动加载程序(Boot-loader)期间建立的设置。在一个示例中,PCD也可以在S0状态期间改变(例如,使用直接在系统上执行的NVM配置CLI应用)。在符合UEFI的代码库的情况下,可能有通用定义的接口来提取某些类型的PCD。如果确定PCD正在存储新配置,则BIOS块80应用来自PCD的新配置,其中BIOS块82可以将来自PCD的新配置标记为已被应用。然后,所示的方法60在BIOS块76处继续启动。如果在BIOS块78处确定新配置没有被PCD存储,则方法60可以绕过BIOS块80和82。因此,来自BMC的新存储的配置比通常存储在PCD中的配置具有更高的优先级。因此,所示的方法60通过接受NVM配置请求而不考虑计算系统是否处于操作电源状态(例如,S0 ACPI电源状态),使得能够更快地配置NVM。
图4示出了半导体封装装置90。所示的装置90包括一个或多个衬底94(例如,硅、蓝宝石、砷化镓)和耦合到(一个或多个)衬底94的逻辑92(例如,晶体管阵列和其他集成电路/IC组件)。逻辑92可以至少部分地在可配置逻辑或固定功能逻辑硬件中实现。在一个示例中,逻辑92实现了已经讨论的方法30(图2)、方法40(图3A)和/或方法60(图3B)的一个或多个方面。因此,逻辑92可以在计算系统的远程访问控制器处接收与计算系统的NVM相关联的配置数据,其中,配置数据在计算系统处于睡眠状态时被接收。在实施例中,配置数据还可以在计算系统处于任何其他电源状态时被接收。逻辑92还可以存储配置数据,并向计算系统的主机处理器提供对配置数据的访问权。在实施例中,接收配置数据绕过计算系统的与存储器配置相关的重新启动。另外,配置数据可以经由OOB管理接口被接收。
如前所述,在计算系统处于睡眠状态时接收配置数据使得能够避免重新启动计算系统。因此,在所示的示例中,系统管理员不再需要重新启动系统来激活主机处理器上的OS、远程登录和设置正确的存储器配置。因此,逻辑92可以将性能和可扩展性增强到配置NVM比常规解决方案更快且更灵活的程度。
在一个示例中,逻辑92包括被定位(例如,嵌入)在(一个或多个)衬底94内的晶体管沟道区域。因此,逻辑92和(一个或多个)衬底94之间的接合可以不是突变结(abruptjunction)。逻辑92还可以被认为包括在(一个或多个)衬底94的初始晶片上生长的外延层。
图5示出了根据一个实施例的处理器核心200。处理器核心200可以是任何类型的处理器的核心,所述处理器例如是微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器或执行代码的其他设备。尽管在图5中仅示出了一个处理器核心200,但是处理元件可以替代地包括多于一个的图5中所示的处理器核心200。处理器核心200可以是单线程核心,或者对于至少一个实施例,处理器核心200可以是多线程的,因为其在每个核心中可以包括多于一个的硬件线程情境(hardware thread context)(或“逻辑处理器”)。
图5还示出了耦合到处理器核心200的存储器270。存储器270可以是本领域技术人员已知的或以其他方式可用的各种各样的存储器(包括存储器层次结构的各个层)中的任何一种。存储器270可以包括由处理器核心200执行的一个或多个代码213的(一个或多个)指令,其中代码213可以实现已讨论的方法30(图2)、方法40(图3A)和/或方法60(图3B)的一个或多个方面。处理器核心200遵循由代码213指示的指令的程序序列。每个指令可以进入前端部分210并由一个或多个解码器220处理。解码器220可以以预定义格式生成诸如固定宽度的微操作之类的微操作作为其输出,或者可以生成反映原始代码指令的其他指令、微指令或控制信号。所示的前端部分210还包括寄存器重命名逻辑225和调度逻辑230,调度逻辑230通常分配资源并将与要执行的转换指令相对应的操作排序。
处理器核心200被示出为包括具有一组执行单元255-1到255-N的执行逻辑250。一些实施例可以包括专用于特定功能或功能组的多个执行单元。其他实施例可以仅包括一个执行单元或可执行特定功能的一个执行单元。所示的执行逻辑250执行由代码指令指定的操作。
在完成对由代码指令指定的操作的执行之后,后端逻辑260将代码213的指令撤回(retire)。在一个实施例中,处理器核心200允许无序执行,但要求指令按顺序撤回。撤回逻辑265可以采用本领域技术人员已知的各种形式(例如,重新排序缓冲器等)。以这种方式,至少根据由解码器生成的输出、由寄存器重命名逻辑225使用的硬件寄存器和表以及由执行逻辑250修改的任何寄存器(未示出),在执行代码213期间转换处理器核心200。
尽管在图5中未示出,处理元件可以包括具有处理器核心200的芯片上的其他元件。例如,处理元件可以包括存储器控制逻辑以及处理器核心200。处理元件可以包括I/O控制逻辑和/或可以包括与存储器控制逻辑集成的I/O控制逻辑。处理元件还可以包括一个或多个缓存。
现在参考图6,示出了根据实施例的计算系统1000实施例的框图。在图6中示出的多处理器系统1000包括第一处理元件1070和第二处理元件1080。虽然示出了两个处理元件1070和1080,但是应当理解,系统1000的实施例也可以仅包括一个这样的处理元件。
系统1000被示出为点到点互连系统,其中第一处理元件1070和第二处理元件1080经由点到点互连1050耦合。应当理解,图6中所示的任何或所有互连可以被实现为多点总线而不是点到点互连。
如图6所示,处理元件1070和1080中的每一个可以是多核心处理器,包括第一和第二处理器核心(即,处理器核心1074a和1074b以及处理器核心1084a和1084b)。这样的核心1074a、1074b、1084a、1084b可以被配置为以类似于上面结合图5讨论的方式执行指令代码。
每个处理元件1070、1080可以包括至少一个共享缓存1896a、1896b。共享缓存1896a、1896b可以存储由处理器的一个或多个组件(例如,核心1074a、1074b和1084a、1084b)分别使用的数据(例如,指令)。例如,共享缓存1896a、1896b可以本地缓存存储在存储器1032、1034中的数据,以便处理器的组件更快地访问。在一个或多个实施例中,共享缓存1896a、1896b可以包括一个或多个中间级缓存,例如2级(L2)、3级(L3)、4级(L4)或其他级缓存、末级缓存(LLC)和/或它们的组合。
虽然仅示出了两个处理元件1070、1080,但是应当理解,实施例的范围不限于此。在其他实施例中,一个或多个附加处理元件可存在于给定处理器中。替代地,处理元件1070、1080中的一个或多个可以是除处理器以外的元件,例如加速器或现场可编程门阵列。例如,(一个或多个)附加处理元件可以包括:与第一处理器1070相同的(一个或多个)附加处理器、与第一处理器1070异质或不对称的(一个或多个)附加处理器、加速器(例如,图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列或任何其他处理元件。根据包括架构特性、微架构特性、热特性、功耗特性等在内的价值度量的谱(spectrum of metrics ofmerit),在处理元件1070、1080之间可以存在各种差异。这些差异可以有效地将其本身表现为处理元件1070、1080之间的不对称性和异质性。对于至少一个实施例,各个处理元件1070、1080可以驻留在同一管芯封装中。
第一处理元件1070还可以包括存储器控制器逻辑(MC)1072和点对点(P-P)接口1076和1078。类似地,第二处理元件1080可以包括MC1082和P-P接口1086和1088。如图6所示,MC的1072和1082将处理器耦合到相应的存储器,即存储器1032和存储器1034,它们可以是本地地连接到相应的处理器的主存储器的部分。虽然MC 1072和1082被示出为集成到处理元件1070、1080中,但是对于替代实施例,MC逻辑可以是处理元件1070、1080外部而不是集成在其中的离散逻辑。
第一处理元件1070和第二处理元件1080可以分别经由P-P互连1076、1086耦合到I/O子系统1090。如图6所示,I/O子系统1090包括P-P接口1094和1098。此外,I/O子系统1090包括接口1092以将I/O子系统1090与高性能图形引擎1038耦合。在一个实施例中,总线1049可以用于将图形引擎1038耦合到I/O子系统1090。替代地,点对点互连可以将这些组件耦合。
进而,I/O子系统1090可以经由接口1096耦合到第一总线1016。在一个实施例中,第一总线1016可以是外围组件互连(PCI)总线,或者诸如PCI Express总线或另一第三代I/O互连总线之类的总线,尽管实施例的范围不限于此。
如图6所示,各种I/O设备1014(例如,生物测定扫描仪、扬声器、照相机、传感器)可以连同总线桥1018一起耦合到第一总线1016,总线桥1018可以将第一总线1016耦合到第二总线1020。在一个实施例中,第二总线1020可以是低引脚数(LPC)总线。在一个实施例中,各种设备可以耦合到第二总线1020,所述各种设备包括例如键盘/鼠标1012、(一个或多个)通信设备1026和数据存储单元1019,数据存储单元1019是例如磁盘驱动器或可以包括代码1030的其他大容量存储设备。所示的代码1030可以实现已讨论的方法30(图2)、方法40(图3A)和/或方法60(图3B)的一个或多个方面。此外,音频I/O 1024可以耦合到第二总线1020,并且电池1010可以向计算系统1000供电。
要注意,考虑到了其他实施例。例如,代替图6的点到点架构,系统可以实现多点总线或另一种这样的通信拓扑结构。此外,图6的元件可以替代地使用比图6所示的更多或更少的集成芯片来分割。
附加说明和示例:
示例1包括一种性能和可扩展性增强的计算系统,该计算系统包括:非易失性存储器;主机处理器,所述主机处理器耦合到所述非易失性存储器;以及远程访问控制器,所述远程访问控制器包括计算机可读存储介质,其中,所述计算机可读存储介质包括一组可执行程序指令,这些可执行程序指令在被所述远程访问控制器执行时使所述远程访问控制器执行以下操作:在所述远程访问控制器处接收与所述非易失性存储器相关联的配置数据,其中,所述配置数据将在所述计算系统处于睡眠状态时被接收;存储所述配置数据;以及为所述主机处理器提供对所述配置数据的访问权。
示例2包括示例1所述的计算系统,其中,在所述远程访问控制器处接收所述配置数据将绕过所述计算系统的与存储器配置相关的重新启动。
示例3包括示例1所述的计算系统,所述计算系统还包括耦合到所述远程访问控制器的带外管理接口,其中,所述配置数据将经由所述带外管理接口被接收。
示例4包括示例1所述的计算系统,其中,所述可执行程序指令在被执行时使所述远程访问控制器验证所述配置数据。
示例5包括示例1所述的计算系统,其中,所述可执行程序指令在被执行时使所述远程访问控制器将所述配置数据标记为尚未被应用。
示例6包括示例1所述的计算系统,其中,所述访问权将被提供给在所述主机处理器上执行的基本输入输出系统(BIOS),并且其中,所述BIOS用于:取回所述配置数据、将所述配置数据应用于所述非易失性存储器并且将所述配置数据标记为已被应用。
示例7包括一种半导体装置,该半导体装置包括:一个或多个衬底;以及耦合到所述一个或多个衬底的逻辑,其中,所述逻辑至少部分地实现在一个或多个可配置逻辑或固定功能硬件逻辑中,耦合到所述一个或多个衬的所述逻辑用于:在计算系统的远程访问控制器处接收与所述计算系统的非易失性存储器相关联的配置数据,其中,所述配置数据将在所述计算系统处于睡眠状态时被接收;存储所述配置数据;以及为所述计算系统的主机处理器提供对所述配置数据的访问权。
示例8包括示例7所述的半导体装置,其中,在所述远程访问控制器处接收所述配置数据将绕过所述计算系统的与存储器配置相关的重新启动。
示例9包括示例7所述的半导体装置,其中,所述配置数据将经由带外管理接口被接收。
示例10包括示例7所述的半导体装置,其中,耦合到所述一个或多个衬底的所述逻辑用于验证所述配置数据。
示例11包括示例7所述的半导体装置,其中,耦合到所述一个或多个衬底的所述逻辑用于将所述配置数据标记为尚未被应用。
示例12包括示例7所述的半导体装置,其中,所述访问权被提供给在所述主机处理器上执行的基本输入输出系统(BIOS)。
示例13包括示例7所述的半导体装置,其中,耦合到所述一个或多个衬底的所述逻辑包括位于所述一个或多个衬底内的晶体管沟道区域。
示例14包括至少一种计算机可读存储介质,其包括一组可执行程序指令,这些可执行程序指令在被计算系统的远程访问控制器执行时使所述计算系统执行以下操作:在所述远程访问控制器处接收与所述计算系统的非易失性存储器相关联的配置数据,其中,所述配置数据将在所述计算系统处于睡眠状态时被接收;存储所述配置数据;以及为所述计算系统的主机处理器提供对所述配置数据的访问权。
示例15包括示例14所述的至少一种计算机可读存储介质,其中,在所述远程访问控制器处接收所述配置数据将绕过所述计算系统的与存储器配置相关的重新启动。
示例16包括示例14所述的至少一种计算机可读存储介质,其中,所述配置数据将经由带外管理接口被接收。
示例17包括示例14所述的至少一种计算机可读存储介质,其中,所述可执行程序指令在被所述远程访问控制执行时使所述计算系统验证所述配置数据。
示例18包括示例14所述的至少一种计算机可读存储介质,其中,所述可执行程序指令在被所述远程访问控制执行时使所述计算系统将所述配置数据标记为尚未被应用。
示例19包括示例14所述的至少一种计算机可读存储介质,其中,所述访问权将被提供给在所述主机处理器上执行的基本输入输出系统(BIOS)。
示例20包括一种方法,该方法包括:在计算系统的远程访问控制器处接收与所述计算系统的非易失性存储器相关联的配置数据,其中,所述配置数据将在所述计算系统处于睡眠状态时被接收;存储所述配置数据;以及为所述计算系统的主机处理器提供对所述配置数据的访问权。
示例21包括示例20所述的方法,其中,在所述远程访问控制器处接收所述配置数据绕过了所述计算系统的与存储器配置相关的重新启动。
示例22包括示例20所述的方法,其中,所述配置数据经由带外管理接口被接收。
示例23包括示例20所述的方法,还包括验证所述配置数据。
示例24包括示例20所述的方法,还包括将所述配置数据标记为尚未被应用。
示例25包括示例20所述的方法,其中,所述访问权被提供给在所述主机处理器上执行的基本输入输出系统(BIOS)。
因此,本文所述的技术可以通过扩展配置能力以包括在所有Sx主机电源状态下可用的新OOB接口来填补当前支持的NVM配置中的空白。这样的解决方案简化并加快了平台配置程序,并为平台管理员提供了远程配置变化/调整的灵活性(例如,在BIOS启动期间发生系统崩溃的情况下)。
实施例适用于所有类型的半导体集成电路(“IC”)芯片。这些IC芯片的示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片、片上系统(SoC)、SSD/NAND控制器ASIC等。此外,在一些附图中,信号导线用线条表示。某些可能不同,以指示更多的组成信号路径,某些具有数字标签,以指示组成信号路径的编号,和/或某些在一个或多个端部具有箭头,以指示主要信息流方向。然而,这不应以限制性的方式来解释。相反,这样添加的细节可以结合一个或多个示例性实施例来使用,以便于更容易地理解电路。任何表示的信号线(无论是否具有附加信息)实际上可以包括一个或多个信号,这些信号可以在多个方向上行进,并且可以用任何合适类型的信号方案(例如,用差分对实现的数字或模拟线、光纤线和/或单端线)来实现。
尽管实施例不限于是相同的,但已经给出了示例尺寸/模型/值/范围。随着制造技术(例如,光刻)的成熟,预计可以制造出更小尺寸的器件。此外,为了便于说明和讨论,并且不使实施例的某些方面难以理解,在图中可以示出或不示出到IC芯片和其他组件的公知电源/接地连接。此外,为了避免使实施例难以理解,并且还考虑到以下事实,可以以框图形式示出布置:关于这种框图布置的实现方式的细节在很大程度上取决于要在其中实现实施例的计算系统(即,这样的细节应是在本领域技术人员的见识内)。在为了描述示例性实施例而阐述具体细节(例如电路)的情况下,本领域技术人员应当清楚,实施例可以在没有这些具体细节的情况下或在这些具体细节变化的情况下被实践。因此,该描述被视为说明性的而不是限制性的。
术语“耦合”在本文中可用于指代所考虑的组件之间的任何类型的直接或间接关系,并且可适用于电气、机械、流体、光学、电磁、机电或其他连接。此外,除非另有说明,否则“第一”、“第二”等术语仅可用于便于讨论,并且不具有任何特定的时间或年代意义。
如本申请和权利要求中所使用的,由术语“……中的一个或多个”连接的项目列表可以表示所列项目的任何组合。例如,短语“A、B或C中的一个或多个”可以表示A;B;C;A和B;A和C;B和C;或A、B和C。
本领域技术人员通过以上描述将意识到,实施例的广泛技术可以以多种形式实现。因此,虽然已经结合实施例的具体示例对实施例进行描述,但实施例的真正范围不应如此受限,因为在研究附图、说明书和所附权利要求后,其他修改对于本领域技术人员将变得显而易见。
Claims (25)
1.一种计算系统,包括:
非易失性存储器;
主机处理器,所述主机处理器耦合到所述非易失性存储器;以及
远程访问控制器,所述远程访问控制器包括计算机可读存储介质,其中,所述计算机可读存储介质包括一组可执行程序指令,这些可执行程序指令在被所述远程访问控制器执行时使所述远程访问控制器执行以下操作:
在所述远程访问控制器处接收与所述非易失性存储器相关联的配置数据,其中,所述配置数据将在所述计算系统处于睡眠状态时被接收,
存储所述配置数据,以及
为所述主机处理器提供对所述配置数据的访问权。
2.根据权利要求1所述的计算系统,其中,在所述远程访问控制器处接收所述配置数据将绕过所述计算系统的与存储器配置相关的重新启动。
3.根据权利要求1所述的计算系统,还包括耦合到所述远程访问控制器的带外管理接口,其中,所述配置数据将经由所述带外管理接口被接收。
4.根据权利要求1所述的计算系统,其中,所述可执行程序指令在被执行时使所述远程访问控制器验证所述配置数据。
5.根据权利要求1所述的计算系统,其中,所述可执行程序指令在被执行时使所述远程访问控制器将所述配置数据标记为尚未被应用。
6.根据权利要求1所述的计算系统,其中,所述访问权将被提供给在所述主机处理器上执行的基本输入输出系统(BIOS),并且其中,所述BIOS用于:取回所述配置数据、将所述配置数据应用于所述非易失性存储器并且将所述配置数据标记为已被应用。
7.一种半导体装置,包括:
一个或多个衬底;以及
耦合到所述一个或多个衬底的逻辑,其中,所述逻辑至少部分地实现在一个或多个可配置逻辑或固定功能硬件逻辑中,耦合到所述一个或多个衬底的所述逻辑用于:
在计算系统的远程访问控制器处接收与所述计算系统的非易失性存储器相关联的配置数据,其中,所述配置数据将在所述计算系统处于睡眠状态时被接收;
存储所述配置数据;以及
为所述计算系统的主机处理器提供对所述配置数据的访问权。
8.根据权利要求7所述的半导体装置,其中,在所述远程访问控制器处接收所述配置数据将绕过所述计算系统的与存储器配置相关的重新启动。
9.根据权利要求7所述的半导体装置,其中,所述配置数据将经由带外管理接口被接收。
10.根据权利要求7所述的半导体装置,其中,耦合到所述一个或多个衬底的所述逻辑用于验证所述配置数据。
11.根据权利要求7所述的半导体装置,其中,耦合到所述一个或多个衬底的所述逻辑用于将所述配置数据标记为尚未被应用。
12.根据权利要求7所述的半导体装置,其中,所述访问权将被提供给在所述主机处理器上执行的基本输入输出系统(BIOS)。
13.根据权利要求7所述的半导体装置,其中,耦合到所述一个或多个衬底的所述逻辑包括位于所述一个或多个衬底内的晶体管沟道区域。
14.至少一种计算机可读存储介质,包括一组可执行程序指令,这些可执行程序指令在被计算系统的远程访问控制器执行时使所述计算系统执行以下操作:
在所述远程访问控制器处接收与所述计算系统的非易失性存储器相关联的配置数据,其中,所述配置数据将在所述计算系统处于睡眠状态时被接收;
存储所述配置数据;以及
为所述计算系统的主机处理器提供对所述配置数据的访问权。
15.根据权利要求14所述的至少一种计算机可读存储介质,其中,在所述远程访问控制器处接收所述配置数据将绕过所述计算系统的与存储器配置相关的重新启动。
16.根据权利要求14所述的至少一种计算机可读存储介质,其中,所述配置数据将经由带外管理接口被接收。
17.根据权利要求14所述的至少一种计算机可读存储介质,其中,所述可执行程序指令在被所述远程访问控制器执行时使所述计算系统验证所述配置数据。
18.根据权利要求14所述的至少一种计算机可读存储介质,其中,所述可执行程序指令在被所述远程访问控制器执行时使所述计算系统将所述配置数据标记为尚未被应用。
19.根据权利要求14所述的至少一种计算机可读存储介质,其中,所述访问权将被提供给在所述主机处理器上执行的基本输入输出系统(BIOS)。
20.一种方法,包括:
在计算系统的远程访问控制器处接收与所述计算系统的非易失性存储器相关联的配置数据,其中,所述配置数据在所述计算系统处于睡眠状态时被接收;
存储所述配置数据,以及
为所述计算系统的主机处理器提供对所述配置数据的访问权。
21.根据权利要求20所述的方法,其中,在所述远程访问控制器处接收所述配置数据绕过了所述计算系统的与存储器配置相关的重新启动。
22.根据权利要求20所述的方法,其中,所述配置数据经由带外管理接口被接收。
23.根据权利要求20所述的方法,还包括验证所述配置数据。
24.根据权利要求20所述的方法,还包括将所述配置数据标记为尚未被应用。
25.根据权利要求20所述的方法,其中,所述访问权被提供给在所述主机处理器上执行的基本输入输出系统(BIOS)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/370,494 US10896142B2 (en) | 2019-03-29 | 2019-03-29 | Non-volatile memory out-of-band management interface for all host processor power states |
US16/370,494 | 2019-03-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111752874A true CN111752874A (zh) | 2020-10-09 |
Family
ID=67299290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010137083.4A Pending CN111752874A (zh) | 2019-03-29 | 2020-03-02 | 所有主机处理器电源状态的非易失性存储器带外管理接口 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10896142B2 (zh) |
CN (1) | CN111752874A (zh) |
DE (1) | DE102020108612A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113810210B (zh) * | 2020-06-15 | 2024-05-03 | 戴尔产品有限公司 | 在redfish上的ipmi |
US20230098742A1 (en) * | 2021-09-30 | 2023-03-30 | Advanced Micro Devices, Inc. | Processor Power Management Utilizing Dedicated DMA Engines |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2397202A (en) * | 2003-01-09 | 2004-07-14 | Satchwell Control Systems | business management system (bms) which updates controller configuration by broadcasting update messages |
US6976145B1 (en) * | 2003-08-06 | 2005-12-13 | Storage Technology Corporation | Method and apparatus for automatically configuring data storage subsystems |
US7660913B2 (en) * | 2005-04-20 | 2010-02-09 | Intel Corporation | Out-of-band platform recovery |
US8145894B1 (en) * | 2008-02-25 | 2012-03-27 | Drc Computer Corporation | Reconfiguration of an accelerator module having a programmable logic device |
US8135664B2 (en) * | 2008-05-30 | 2012-03-13 | International Business Machines Corporation | Change management using collective data |
US8078873B2 (en) | 2008-06-30 | 2011-12-13 | Intel Corporation | Two-way authentication between two communication endpoints using a one-way out-of-band (OOB) channel |
US20100070642A1 (en) * | 2008-09-15 | 2010-03-18 | Microsoft Corporation | Offloading network protocol operations to network interface in sleep state |
US8306517B2 (en) * | 2009-10-08 | 2012-11-06 | At&T Intellectual Property I, L.P. | Capacity management of an asynchronous transfer mode interface in a wireless communication infrastructure |
US8473717B2 (en) * | 2010-02-03 | 2013-06-25 | Arm Limited | Coprocessor reset controller with queue for storing configuration information of subsequent sessions prior to completion of current session |
US9182808B1 (en) * | 2012-01-12 | 2015-11-10 | Marvell International Ltd. | Low-power network stacks and driver subsets |
US8975917B2 (en) * | 2012-03-01 | 2015-03-10 | Semiconductor Energy Laboratory Co., Ltd. | Programmable logic device |
CN107977299B (zh) | 2012-03-28 | 2022-01-25 | 英特尔公司 | 利用可配置和容错的基板管理控制器安排的方法及系统 |
US10126950B2 (en) * | 2014-12-22 | 2018-11-13 | Intel Corporation | Allocating and configuring persistent memory |
-
2019
- 2019-03-29 US US16/370,494 patent/US10896142B2/en active Active
-
2020
- 2020-03-02 CN CN202010137083.4A patent/CN111752874A/zh active Pending
- 2020-03-27 DE DE102020108612.1A patent/DE102020108612A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US10896142B2 (en) | 2021-01-19 |
DE102020108612A1 (de) | 2020-10-01 |
US20190227961A1 (en) | 2019-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11556327B2 (en) | SOC-assisted resilient boot | |
US9229730B2 (en) | Multi-chip initialization using a parallel firmware boot process | |
US11875147B2 (en) | Firmware component with self-descriptive dependency information | |
TWI537748B (zh) | 用於網路基本輸入輸出系統管理之設備、方法與非暫態電腦可讀取媒體 | |
US11422896B2 (en) | Technology to enable secure and resilient recovery of firmware data | |
US20210081538A1 (en) | Early platform hardening technology for slimmer and faster boot | |
US9983889B1 (en) | Booting of integrated circuits | |
EP3979072B1 (en) | Firmware boot task distribution to enable low latency boot performance | |
JP2021099782A (ja) | ファンクション・アズ・ア・サービスコンピューティングのための統一プログラミングモデル | |
CN111752874A (zh) | 所有主机处理器电源状态的非易失性存储器带外管理接口 | |
CN113254086A (zh) | Bios到操作系统的数据交换的部署 | |
US11144326B2 (en) | System and method of initiating multiple adaptors in parallel | |
US20230176735A1 (en) | Accelerating system boot times via host-managed device memory | |
US11544129B2 (en) | Cross-component health monitoring and improved repair for self-healing platforms | |
WO2021226783A1 (en) | Os-managed bios modules | |
US20210089326A1 (en) | Dynamic bios policy for hybrid graphics platforms | |
CN115004155A (zh) | 在运行时实现外部存储器训练 | |
TWI733284B (zh) | 硬體設定裝置及其硬體設定方法 | |
CN114064198A (zh) | 经由os接口表的单numa域内的多虚拟numa域 |
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 |