CN114201222A - 针对提早显示器初始化和可视化改善引导过程 - Google Patents
针对提早显示器初始化和可视化改善引导过程 Download PDFInfo
- Publication number
- CN114201222A CN114201222A CN202110951354.4A CN202110951354A CN114201222A CN 114201222 A CN114201222 A CN 114201222A CN 202110951354 A CN202110951354 A CN 202110951354A CN 114201222 A CN114201222 A CN 114201222A
- Authority
- CN
- China
- Prior art keywords
- cache
- hardware
- initialization
- memory
- 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
- 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
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- 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/4405—Initialisation of multiprocessor systems
-
- 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/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
- G09G2330/026—Arrangements or methods related to booting a display
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/08—Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
实施例涉及针对提早显示器初始化和可视化改善引导过程。系统的实施例包括:多个处理器核;高速缓存,该高速缓存耦合至该多个处理器核;以及控制器电路,该控制器电路用于:在使硬件处理器通电之后开始对硬件初始化代码的执行之前,将高速缓存的部分初始化为静态存储器以供硬件初始化代码使用;以及使得使用高速缓存中的该部分来执行对显示设备的初始化,对显示设备的初始化独立于对硬件处理器的动态存储器的初始化而被执行。
Description
背景技术
处理系统可包括硬件组件和软件组件。软件组件可包括一个或多个应用、操作系统(OS)和固件。应用可包括用于执行对于处理系统的用户而言有价值的工作的控制逻辑。在处理系统中,应用在OS之上运行,OS以相比于应用更低的逻辑级执行(即,更靠近硬件),以提供使得更易于创建和执行应用的底层环境或抽象层。固件以甚至更低的逻辑级运行,以提供使得更易于创建和执行OS的底层环境或抽象层。例如,固件可建立基本输入/输出系统(BIOS),并且OS可使用该BIOS来与处理系统内的不同硬件组件进行通信。
典型地,OS和应用在易失性的随机存取存储器(RAM)之外执行。固件中的一些或全部也可在RAM之外执行。然而,由于RAM是易失性的,因此每当处理系统关闭时,用于执行有用工作的环境基本上都会消失。因此,每当处理系统被打开时,该处理系统应当在有用工作可以被执行之前重新创建该环境。出于本公开的目的,用于使处理系统准备好执行OS的操作可被称为“引导过程”。类似地,在引导操作期间消逝的时间可被称为“引导时间”。
附图说明
本文所描述的各实施例作为示例而非限制在所附附图的各图中示出,在附图中,同样的附图标记指代类似的要素。
图1图示出根据本公开的实现方式的、用于针对提早显示器初始化和可视化来改善引导过程的芯片上系统(SoC)。
图2A图示出根据本公开的实现方式的示例引导流程。
图2B图示出根据本公开的实现方式的利用引导控制器的示例引导流程,该引导控制器将高速缓存配置成用作在执行硬件初始化代码之前存储该硬件初始化代码的存储器。
图3图示出根据本公开的实现方式的、包括用于针对提早显示器初始化和可视化来改善引导过程的共享高速缓存的芯片上系统(SoC)。
图4图示出根据本公开的实现方式的存储器层级结构,描绘了存储器访问的示例响应时间。
图5图示出根据本公开的实现方式的、用于针对提早显示器初始化和可视化来改善引导过程的系统的经修改的固件引导流程。
图6图示出根据本公开的实现方式的硬件初始化的示例流程,其中在运行硬件初始化代码之前,高速缓存被配置成静态存储器。
图7是图示出根据本公开的实现方式的、用于针对提早显示器初始化和可视化来改善引导过程的操作的流程图。
图8是根据本公开的实现方式的、实现针对提早显示器初始化和可视化来改善引导过程的说明性电子计算设备的示意图。
具体实施方式
本文中所描述的实施例涉及针对提早显示器初始化和可视化来改善引导过程。
当处理系统被打开或重置时,处理系统可在该处理系统可以被用于工作之前执行引导过程。如本文中所讨论,用于使处理系统准备好执行OS的操作被称为“引导过程”。类似地,在引导操作期间消逝的时间可被称为“引导时间”。执行或控制引导过程的控制逻辑或固件可被称为“系统固件”、“系统引导代码”、“平台引导代码”,或者简称为“引导代码”。
作为增强的用户体验的部分,使用计算机系统的应用可能需要瞬时的(例如,对于人类而言在感知上瞬时的)系统启动时间。较快的系统响应时间是可由原始装备制造商(OEM)和原始设计制造商(ODM)用于其针对各种计算领域的产品要求的关键性能指标(KPI),这些计算领域例如,个人设备(例如,智能电话/平板/膝上型计算机)、医疗保健(例如,超声、除颤器和患者监护设备)、工业(例如,机器人更换手臂)、军事、航空航天和政府(MAG)(例如发射导弹、故障安全冗余飞机或类似的单一功能设备)和/或办公室/家庭自动化。在某些使用中,预期平均系统(例如,平台)引导时间小于从(例如,高级配置和功率接口(ACPI)标准)(例如,以ACPI“机械关机”(例如,“G3”状态)开始的)系统状态(例如,不施加功率)直到操作系统(OS)切换的阈值(例如,500ms)。
在消费者电子产品上,产品区分因素是用户体验(UX)。产品制造商的一般实践是通过以迅速的系统响应提供更快的启动时间来增强UX。快速系统响应与如通过直到对终端用户的显示器可视化的持续时间而测得的感知启动时间相对应。对用户的显示器可视化在本文中也被称为“显示器调动(display bring up)”。显示器调动的示例持续时间可以被测量为从用户按压电源键所在的时间到显示出现在相关联的显示面板上所在的时间。从UX角度来看,减少与显示器调动相对应的持续时间与更快的系统响应相关。
对于显示器初始化,设置量的系统存储器用于显示器初始化。在一个示例中,对于4K面板,大约68MB的系统存储器用于显示器初始化。在常规系统中,引导过程不具有在处理器重置(例如,中央处理单元(CPU)重置)时可用的预先编程的存储器,并且存在有限的高速缓存存储器。结果是,在引导过程完成存储器(诸如,动态随机存取存储器(DRAM))训练并启动此类DRAM之前,不存在可用于显示器初始化以用来进行显示器调动的足够的存储器。这限制了常规系统的能够提早引导显示器并为UX提供更快的响应时间的能力。
本公开的实现方式通过提供针对提早的显示器初始化和可视化的改善的引导过程来解决上文的技术问题。在一个实现方式中,通过将共享(例如,L4)高速缓存配置成用于在处理器重置(例如,CPU重置)时可用来改善硬件初始化代码(诸如基本输入/输出系统(BIOS)和/或统一可扩展固件接口(UEFI))。在本公开的实现方式中,在重置时可用的此种共享高速缓存可以用于提供更快的预重置的显示器调动。本公开的实现方式修改引导过程的预重置初始化流程以将共享高速缓存的至少部分初始化为可用于平台初始化使用(例如,由BIOS和/或UEFI使用)的静态存储器(例如,SRAM)。本公开的实现方式利用被初始化为静态存储器的共享(例如,L4)高速缓存来在引导过程期间独立于DRAM训练和初始化而提早进行显示器初始化。例如,在本公开的实现方式中,可使用被初始化为静态存储器的共享(例如,L4)高速缓存的部分来存储显示设备初始化代码,该显示设备初始化代码用于独立于DRAM训练和初始化而提早进行显示设备初始化和显示器调动。
由此,本公开的实现方式改善提早引导显示器并且为处理系统的UX提供更快的响应时间。具体而言,本公开的实现方式可以早得多的调动显示器,这提供了更好的响应时间并增强了UX。例如,相较于其中直到DRAM训练完成之后才发生PCI枚举和显示设备初始化的常规系统,PCI枚举和显示设备初始化在引导过程中可以早得多地执行。此外,使得静态存储器在重置时可用可以进一步在其他引导过程任务中辅助引导过程。现在转向图1,描绘了示例芯片上系统(SOC)。
图1图示出根据本公开的实现方式的、用于针对提早显示器初始化和可视化来改善引导过程的芯片上系统(SoC)100。SoC 100包括引导控制器146。引导控制器146可位于处理器102内。所描绘的SoC 100图示出硬件处理器102,该硬件处理器102经由存储器控制器108耦合至存储器106。在一个实施例中,SoC 100的存储器106是系统存储器(例如,动态随机存取存储器(DRAM))。存储器控制器108可被包括以例如管理处理器102与存储器106之间的存储器请求。在一个实施例中,存储器控制器108用于提供(例如,填充)针对(多个)高速缓存中的未命中(例如,处理器102的L3 124、L4 126或其他末级高速缓存(LLC)中的未命中)的数据(例如,高速缓存行)。
处理器102可包括一个或多个处理器核112,例如,处理器核0至N,其中,N是正整数。在一个实施例中,多个处理器核中的每一个均具有本文中所讨论的电路系统的实例。所描绘的核0 112(0)包括第一级(L1)数据高速缓存118(0)、第一级(L1)指令高速缓存120(0)、以及第二级(L2)高速缓存122(0)。所描绘的核1 112(1)包括第一级(L1)数据高速缓存118(1)、第一级(L1)指令高速缓存120(1)、以及第二级(L2)高速缓存122(1)。
在一些实施例中,如图1中所示,处理器102包括耦合至核中的一者或多者(例如,全部)并由该一者或多者共享的一个或多个次级(例如,第三级(L3)高速缓存124和第四级(L4)高速缓存126,例如,L4为末级高速缓存(LLC)(例如,在数据项从存储器106被取出之前搜索的上一个高速缓存)。在某些实施例中,L1数据高速缓存118、L1指令高速缓存120、L2高速缓存122、L3高速缓存124和L4(例如,LLC)高速缓存126中的每一者均由高速缓存一致性控制器142(例如,电路系统)管理,以例如根据指定的高速缓存一致性对数据(例如,和/或指令)进行高速缓存。
在某些实施例中,存储在各种处理器高速缓存内的数据(例如,和/或指令)以可以是固定尺寸(例如,长度为64字节、128字节、512字节等的)高速缓存行的粒度被管理。每个核112可包括其他组件,例如:指令取出电路,用于(例如,经由存储器控制器108从(例如,主)存储器106和/或从高速缓存)取出指令;解码电路(例如,解码器或解码单元),用于对指令解码(例如,将程序指令解码为微操作或“μops”);以及执行单元(例如,执行电路),用于执行经解码的指令。核可包括用于引退指令并写回结果的写回/引退电路。所描绘的核0112(0)进一步包括一组一个或多个寄存器114(0),例如具有一个或多个型号专属寄存器116(0)例如作为(多个)控制寄存器。
SoC 100可包括同样耦合至高速缓存一致性控制器142的一个或多个其他设备144(例如,要在DRAM初始化与高速缓存附接之前被初始化的任何设备,诸如CSME、GSPI、ESPI等)。SoC 100可包括图形电路系统136(例如,图形核)。在某些实施例中,图形电路系统136包括同与处理器共享的一个或多个高速缓存(例如,L3高速缓存124和/或L4高速缓存126)耦合的一个或多个高速缓存138。SoC 100可包括例如与处理器102一起嵌入到SoC 100中的嵌入式动态随机存取存储器140(eDRAM)。在某些实施例中,eDRAM 140被用作L4(例如,LLC)高速缓存126(例如,而不是使用嵌入式静态RAM(eSRAM)用于L4高速缓存)。在某些实施例中,eDRAM 140被定位在L3高速缓存124与存储器106(例如,DRAM(例如,双倍数据速率同步DRAM(DDR))之间,例如在存储器总线上。SoC 100可包括例如用于响应于通电指示(例如,对机械开/关开关的按压)而向SoC 100的组件提供例如功率的功率管理集成电路154(例如,PMIC)。
在一些实现方式中,SoC 100(例如,在处理器102内部或外部)包括硬件初始化代码存储148。硬件初始化代码可以是硬件初始化固件。在某些实施例中,来自存储148的硬件初始化代码在由处理器102执行时将引起对SoC 100的启动(例如,至少对硬件处理器102的启动)。
在一些实现方式中,硬件初始化代码负责将对计算机(例如,SoC 100)的控制转移至耦合至该计算机的存储器中所存储的程序(例如,OS)。
在一些实现方式中,硬件初始化代码存储148包括来自存储150的BIOS和/或UEFI代码以及来自存储152的引导加载程序代码。在那些实施例中的某些实施例中,作为第一阶段,执行BIOS和/或UEFI(例如,引导ROM)代码;并且随后作为第二阶段,执行引导加载程序代码。作为一个示例,BIOS代码根据BIOS标准。作为另一示例,UEFI代码根据UEFI标准。
在一些实现方式中,BIOS和/或UEFI代码将SoC 100(例如,其处理器102)从(例如,冷)重置带出,将处理器置于已知且稳定的状态,并且找到第二阶段引导加载程序代码(例如,来自存储152)并将控制传递至该下一阶段。在一个实施例中,BIOS和/或UEFI(例如,引导ROM)代码知晓第二阶段引导加载程序代码152并且不知晓任何潜在的后续软件阶段。在某些实施例中,在该时间期间,BIOS和/或UEFI(例如,引导ROM)代码处置任何错误状况。
在一些实现方式中,引导加载程序代码(例如,当BIOS和/或UEFI代码阶段完成时,对SoC(例如,处理器)的控制被传递至该引导加载程序代码)随后定位并加载(例如,以供处理器执行)软件(例如,OS)的接下来的(多个)阶段。在一个实施例中,如果启用了安全引导,则控制在被传递至引导加载程序代码之前被解码和/或认证。
在一些实现方式中,BIOS和/或UEFI(例如,引导ROM)代码在被执行时,初始化SoC的某些硬件,检查完整性,并且初始化(例如,第一级)引导加载程序代码。在一些实现方式中,引导加载程序例如在BIOS和/或UEFI(例如,引导ROM)代码执行完成时被调用之后被执行,以引起对SoC(例如,处理器)的控制到执行该SoC的操作系统的切换。在一个实现方式中,例如,引导加载程序代码知道OS内核镜像在存储器中被存储在何处(例如,OS内核镜像的存储器位置)并加载OS内核镜像以供执行。
虽然BIOS和/或UEFI(例如,引导ROM)代码存储150和引导加载程序代码存储152被示出为在一起,但在另一实现方式中,BIOS和/或UEFI(例如,引导ROM)代码存储150在处理器102内并且引导加载程序代码存储152与处理器102分离(例如,在SoC 100的存储148中)。
在一些实现方式中,一旦引导完成,SoC的某些控制就转移至执行OS代码160(和/或应用代码162)。在某些实现方式中,BIOS/UEFI代码150包括经认证的代码模块(ACM)代码。在一个实现方式中,ACM代码支持建立能实现经认证的代码执行模式的能力的测得的环境,例如其中,ACM代码被加载到处理器中并且使用防篡改机制被执行。认证可以通过ACM代码头部中的数字签名来实现,例如,其中处理器计算ACM的散列并使用结果来验证签名,例如以使得处理器初始化处理器状态或在ACM通过认证的情况下执行该ACM。
在本公开的实现方式中,通过将L4高速缓存126配置成在重置时可用并使用在重置时可用的该L4高速缓存126提供更快的预重置显示器调动,来改善如由BIOS/UEFI代码150提供的BIOS和/或UEFI。本公开的实现方式修改引导过程的预重置初始化流程,以将L4高速缓存126的至少部分初始化为可用于平台初始化使用(例如,由BIOS和/或UEFI使用)的静态存储器(例如,SRAM)。本公开的实现方式利用被初始化为静态存储器的L4高速缓存126来在引导过程期间独立于DRAM训练和初始化而提早进行显示器初始化。例如,在本公开的实现方式中,可使用被初始化为静态存储器的L4高速缓存126的部分来存储显示设备初始化代码159,该显示设备初始化代码159用于独立于DRAM训练和初始化而提早进行显示设备初始化和显示器调动。现在转向图2A和图2B,描绘了根据本公开的实现方式的引导过程的示例引导流程。
图2A图示出根据本公开的实现方式的示例引导流程200。所描绘的流程200示出架构(例如,架构(IA))平台引导路径的一种实现方式。例如,从初始“机械关”状态(例如,ACPI G3)到工作状态(例如,ACPI G0睡眠状态S0(例如,工作S0状态而不是S0较低功率空闲(例如,“待机”)或部分SoC睡眠)的引导时间流程。引导流程200可包括预供电(例如,所有的轨和时钟稳定化,例如实时时钟(RTC))、预重置(例如,供电定序、重置/安全性、经认证代码模块(ACM)、微代码(ucode)/功率管理代码(pcode)等)、以及后中央处理单元(CPU)重置(例如,引导记载程序)引导路径组件。
所描绘的引导流程200包括:在202处接收通电(例如,退出G3状态);初始功率次序204(例如,如由PMIC所执行);SoC安全性和重置206(例如,其中SoC(例如,其重置管理器)基于来自硬件处理器系统(例如,处理器102)中的各种源和任何存储(例如,存储148)的重置请求来生成模块重置信号,并且软件向模块重置控制寄存器写入,例如,其中重置管理器在安全熔丝已经被加载并被验证时退出SoC重置);经认证代码模块208被执行以使得安全引导被完成(例如,依据被称为用于认证其他固件块的引导防护的IA指南(例如,BIOS防护、TXT、ACM的组合);并且随后到达硬件初始化代码210(例如,使得来自存储150的BIOS和/或UEFI代码210A和来自存储152的引导加载程序代码210B例如串行地被执行);在OS切换之后,OS随后可执行(即,212);以及(例如,在OS的控制下)一个或多个(例如,用户)应用随后可被执行(即,214)。注意,框202-214仅仅是示例并且在引导流程中可利用更多或更少的框。
在一些实现方式中,整个引导路径中最耗时的阶段是用于在引导过程期间执行硬件初始化的代码(例如,固件)的执行,由此使得其成为提供快速引导体验所要优化的过程。在某些实施例中,硬件初始化代码(例如,BIOS/UEFI代码和/或引导加载程序代码)随着要执行的工作负荷越来越多而增长。
本文中的实现方式利用引导控制器(例如,电路)提供改善的引导流程,该引导控制器将高速缓存配置成用作在执行硬件初始化代码之前(例如,在进入到任何硬件初始化代码(例如,BIOS代码或UEFI代码)之前)用于该硬件初始化代码的存储器(例如,图1中的存储器158;BIOS配置的存储器可以在64MB-256MB之间预先分配)。本公开的实现方式的改善的引导流程使得能够利用预先初始化的存储器来执行显示器初始化,而不依赖于被硬件初始化代码训练和初始化的DRAM资源。
图2B图示出根据本公开的实现方式的利用引导控制器216的示例引导流程220,该引导控制器216将高速缓存配置成用作在执行硬件初始化代码210之前用于该硬件初始化代码的存储器。所描绘的流程220示出架构(例如,架构(IA))平台引导路径的一个实施例。例如,从初始“机械关”状态(例如,ACPI G3)到工作状态(例如,ACPI G0睡眠状态S0(例如,工作S0状态而不是S0低功率空闲(例如,“待机”)或部分SoC睡眠)的引导时间流程。引导流程220可包括预供电(例如,所有的轨和时钟稳定化,例如实时时钟(RTC))、预重置(例如,供电定序、重置/安全性、经认证代码模块、微代码(ucode)/功率管理代码(pcode)等)、以及后中央处理单元(CPU)重置(例如,引导加载程序)引导路径组件。
所描绘的引导流程220包括:在202处接收通电(例如,退出G3状态);初始供电定序204(例如,如由PMIC所执行);SoC安全性和重置206(例如,其中SoC(例如,其重置管理器)基于来自硬件处理器系统(例如,处理器102)中的各种源和任何存储(例如,存储148)的重置请求来生成模块重置信号,并且软件向模块重置控制寄存器写入,例如,其中重置管理器在安全熔丝已经被加载并被验证时退出SoC重置);引导控制器216用于初始化高速缓存(例如,L4高速缓存)的部分以供硬件初始化代码210使用;经认证代码模块208被执行以确保安全引导被完成;并且随后到达硬件初始化代码210,例如,使得来自存储150的BIOS和/或UEFI代码210A和来自存储152的引导加载程序代码210B经由使用高速缓存(例如,L4高速缓存)中被引导控制器216初始化的部分而被例如并行地执行;在OS切换之后,OS随后可执行(即,212);以及(例如,在OS的控制下)一个或多个(例如,用户)应用随后可被执行(即,214)。注意,框202-216仅仅是示例并且在引导流程中可利用更多或更少的框。
同样,在一些实现方式中,(例如,BIOS/UEFI)硬件初始化(例如,引导)可以在单线程环境(例如,多个核中的单个核执行)中发生,并且引起独立的(例如输入/输出(I/O))初始化等待其执行时间或轮次。在一些实现方式中,由于不存在足够的预先初始化的存储器在重置时可用和/或在重置时不存在足够的存储器(例如,有限的)从而不允许多线程环境,因此硬件初始化代码(例如,BIOS固件)在单线程环境上运行。本文中的实现方式在不使用在执行硬件初始化代码期间设置的高速缓存即随机存取存储器(RAM)(CAR)的情况下提供更快的引导过程,其中CAR启动是复杂且受限的。本文中的一些实现方式在不具有为引导(固件)空间使用提供的固定(例如,静态)存储器(例如,静态随机存取存储器(SRAM))的情况下提供更快的引导过程。本文中的一些实现方式在不使用处理器内的末级高速缓存(LLC)(例如,但是可以使用SoC的LLC)的情况下提供更快的引导过程。
如上文所讨论,在常规系统中,平台的引导过程在(例如,CPU)重置时不具有预先编程的存储器,并且被提供有有限的高速缓存存储器尺寸,导致在重置时利用单核处理器的低效引导方法。这在DRAM可用之前限制该系统初始化显示设备并调动显示器的能力。这进而迫使硬件初始化代码(例如,BIOS/固件)执行顺序地运行,导致更慢的引导时间和对处理器功率的低效使用。由此,缺乏有效地使用现有处理器功率和系统资源来提供更快的引导响应(和显示器调动时间)的存储器导致系统资源的浪费和低于标准的用户体验。
本文中的某些实现方式提供以若干高速缓存级别扩充的计算架构存储器系统(例如,如图1中所示)。作为一个示例,存储器系统包括:
·只读存储器路径,用于(例如,开放计算语言(OpenCL)标准)图像,该只读存储器路径包括第一级(L1)和第2级(L2)采样器高速缓存。
·第3级(L3)数据高速缓存,作为切片共享(例如,由多个核共享)的资产。在一个实施例中,在(例如,OpenCL)缓冲器(例如,高速缓存)上的所有读取和写入动作以(例如,64字节宽的)高速缓存行为单位流过L3数据高速缓存。在一个实施例中,L3高速缓存包括在L1和L2采样器高速缓存中未命中的采样器读取事务,并且还支持采样器写入。
·芯片上系统(SoC)存储器层级结构可包括(例如,更大的)末级高速缓存(LLC)(例如,在CPU与图形处理单元(GPU)(例如,图形核136)之间共享的LLC)、系统动态随机存取存储器(DRAM)106、以及(任选地)嵌入式DRAM(eDRAM)140。例如,该LLC可包括具有更大的尺寸且用于改善具有CPU和GPU的混合式生态系统的性能的第4级(L4)高速缓存。
在一些实现方式中,第4级(L4)和/或LLC共享高速缓存具有相比于仅用于处理器(例如,CPU)或GPU的尺寸更大的尺寸,例如以改善具有(多个)CPU和(多个)CPU的混合式生态系统的性能。然而,某种常规系统中的连接断开是缺少此种大型L4和/或LLC高速缓存区块对于引导过程而言的可见性,这可能使得系统资源效率低下。本文中所讨论的实现方式解决了系统的引导阶段期间(例如,在执行硬件初始化代码(例如,BIOS/UEFI代码)之前)存储器层级结构中的此种连接断开。
在一些实现方式中,UX的性能指标涉及系统的更快响应,包括更快的引导时间和更快的显示器调动时间。本文中的某些实现方式提供更快的生态系统引导过程,例如,该生态系统引导过程不会由于在引导时间期间缺少对于高速缓存存储器的可见性而在单个核中运行,并且由此限制了多核处理器系统的能力。本文中的实现方式通过在重置时扩展(例如,LLC/L4)高速缓存存储器以使得多核环境并使得硬件初始化(例如,引导)代码(例如,固件)能够利用该LLC/L4高速缓存、独立于由硬件初始化代码进行的DRAM训练和初始化的显示器初始化而进行显示器初始化和提早显示器调动,来增强引导过程。
在某些实现方式中,修改SoC的硬件,以将L4高速缓存配置成静态存储器,诸如静态RAM(SRAM),和/或在重置时为引导固件提供较大的预先初始化的存储器。本文中的实现方式利用L4高速缓存(例如,持久性存储器,诸如但不限于OptaneTM持久性存储器)作为由硬件初始化代码例如在安全引导之前使用的存储器。在一个实施例中,(例如,L4)高速缓存的访问时间(例如,显著地)少于系统存储器(例如,DRAM)的访问时间。本文中的实施例提供(例如,L4)高速缓存的部分用于是可见的(例如,在引导时),例如以独立于由硬件初始化代码进行的DRAM训练和初始化而实现显示器初始化和提早显示器调动。
本文中的某些实现方式包括封装上(例如,L4)高速缓存(例如,从64MB至256MB)(例如,具有相比于DRAM访问时间少得多的访问时间,例如其中,DRAM尺寸为大约4GB至32GB),该封装上高速缓存用于改善硬件初始化代码(例如,固件)并且由此改善引导时间和显示器调动时间。本文中的某些实现方式在(例如,通电)重置时提供(例如,更多的)预先初始化的存储器,例如作为处理器(例如,CPU)重置过程的部分(例如,但不作为硬件初始化过程(例如,BIOS过程或UEFI过程)的部分)。本文中的某些实施例在重置时提供(例如,更多的)预先初始化的存储器,以使传统(例如,x86)BIOS/UEFI假设无效和/或为现代设备用例作出更快且更高效的BIOS/UEFI解决方案,这些现代设备用例诸如但不限于汽车车载信息娱乐(IVI)(例如,在较快的时间段内打开后视相机)、家用机器人、工业机器人等。
下文讨论两种类别的实现方式:(1)使得(例如,L4)高速缓存可用作SRAM的部分,以及(2)在重置时将共享(例如,L4)高速缓存用作SRAM来实现提早显示器初始化和显示器调动。在类别(1)的某些实现方式中,硬件初始化代码(例如,固件)将知道SRAM基址和限制(最大值)以对其进行使用,例如其中,硬件初始化代码将使用(例如,L4)高速缓存(例如,而不是基于DRAM的资源)来进行如资源分配等之类的所有常规操作。在一些实现方式中,L4/LLC高速缓存中被配置为预先编程的SRAM的部分可用于硬件初始化代码消耗(例如,在该代码执行时由其使用),并且由此,(例如,L4)高速缓存的访问时间相比于DRAM访问时间更快,这改善了引导时间(例如,通过减少执行硬件初始化代码的总时间)。
在类别(2)的某些实现方式中,修改硬件初始化代码以利用被配置为SRAM并在重置时可用的L4/LLC高速缓存。由此,一些实现方式允许将硬件初始化代码(例如,固件)设计/重新设计为利用预先初始化的存储器来执行显示器初始化而不依赖于在重置之后由硬件初始化代码来训练和初始化的DRAM资源。
在某些实现方式中,处理器标识指令(例如,CPUID指令)的执行或对(例如,专用)型号专属寄存器(MSR)的读取指示本文中所讨论的功能是否可用(例如,是否可用于特定的系统/处理器)。
两种类别的实现方式的以下讨论包括某些实施例中允许整个(例如,BIOS或UEFI)硬件初始化(例如,引导)在多线程(例如,多核)环境中发生的方法(例如,以及硬件)。
在一些实现方式中,设备的平台引导时间是指在设备被指令打开之后在该设备的屏幕上显示一些内容所花费的总时间(例如,大部分由BIOS或UEFI引导时间(和用于引导加载程序的时间)加上OS引导时间组成)。
图3图示出根据本公开的实现方式的、包括用于针对提早显示器初始化和可视化来改善引导过程的高速缓存308(诸如,L4高速缓存)的芯片上系统(SoC)300。所描绘的SoC300包括一个或多个核302(例如,并且包括如本文中所公开的引导控制器304)、图形电路系统306(例如,图形核)、以及由该一个或多个核302和图形电路系统306共享的高速缓存308。所描绘的(多个)核302和(多个)高速缓存308耦合至存储器310(例如,DRAM)。例如,其中一个或多个核302和图形电路系统306在SoC 300的(多个)第一管芯中,由(多个)基础管芯中的引导控制器304对高速缓存308进行初始化,并且存储器310(例如,DRAM)在SoC 300的封装中。
由此,在某些实施例中,(例如,L4)高速缓存308由(例如,数据)处理器和图形处理器共享,例如以使得(例如,SoC的基础管芯中的)共享高速缓存在尺寸上比由(例如,数据)处理器使用的高速缓存更大(例如,具有大约400MB-700MB的尺寸)。在某些实施例中,一个或多个一致性存储器接口(CMI)被用作高速缓存与另一组件(例如,CPU和/或GPU)之间的耦合件。在某些实施例中,CPU(例如,核302)与GPU 306之间的耦合件根据计算机快速链路(CXL)标准。
以下是用于将高速缓存308(诸如L4/LLC高速缓存)配置为可用作在硬件初始化(例如,引导)(例如,硬件初始化代码)阶段期间使用的系统存储器的静态存储器(例如,SRAM)。系统存储器的一个用例是为设备(例如,根据外围组件快速(PCI Express)标准耦合在一起的设备)分配资源并在引导至OS之前从引导设备读取内核块。在一个实施例中,所确定量的(例如,大约256MB-384MB的)系统存储器(例如,由引导控制器来初始化)被分配用于硬件初始化代码在预引导环境中执行设备初始化。例如,显示引擎是利用约68MB的存储器在预引导环境中进行初始化的PCI设备。
在某些实现方式中,系统(例如,辅助处理器核或控制器)用于对共享(例如,L4)的部分进行初始化(根据本文中的讨论)以供用于平台硬件初始化代码使用(例如,用作SRAM)。任选地,提供SRAM物理起点的指示(例如,经由型号专属寄存器(MSR))和对硬件初始化代码设计的限制。
在一些实现方式中,硬件初始化代码流程被修改为引用静态存储器资源用于(例如,PCI)设备来避免基于DRAM的存储器训练的长等待时间。硬件初始化代码可为显示设备分配存储器并调用显示驱动器来初始化显示器。因为多核能力由于L4/LLC高速缓存可用作SRAM而在重置时可用,因此显示器初始化可以与其他硬件初始化代码流程并行地运行。
在一些实现方式中,可在SRAM范围之上提供附加安全锁定,例如,在引导至OS之前禁用/锁定“(例如,L4)高速缓存被配置为SRAM的”范围,例如,其中一旦被禁用/被锁定,则在没有平台重置的情况下就无法被覆盖。在一种实现方式中,固件支持包(FSP)用于利用“固件结束”引导事件来处置此种锁定。
在本公开的实现方式中,上文所描述的硬件和/或固件设计改变可以使用封装(例如,L4)高速缓存作为SRAM以供硬件初始化代码访问,例如,从而在(例如,SoC)重置时提供大得多的预先初始化的存储器以供硬件初始化代码利用。固件流程也可以独立于花费较长时间来初始化的DRAM存储器训练,例如,其中对(例如,L4)高速缓存范围的访问比DRAM存储器访问更快。
图4图示出根据本公开的实现方式的存储器层级结构400,描绘了对DRAM 402的访问的示例响应时间和对多个高速缓存404、406、408、410的访问的示例响应时间。高速缓存可包括L1高速缓存410、L2高速缓存408(例如,两者一起处于核412中)、L3高速缓存406、以及L4高速缓存404。
如上文所述,由于相对于高速缓存访问,DRAM访问花费的时间更长,因此本公开的实现方式可以利用封装高速缓存(诸如L4高速缓存)而不是基于DRAM的存储器访问。在一些实现方式中,共享(例如,L4)高速缓存被用作在重置时可用的更大且更快的存储器,并且对硬件初始化代码的修改是利用此种预先初始化的存储器(而不是定义具有对DRAM资源的依赖关系的硬件初始化代码(例如,BIOS或UEFI)流程)来作出的。本公开的实现方式在重置时将共享(例如,L4)高速缓存用作SRAM来实现提早显示器初始化和调动。
图5图示出系统的经修改的固件引导流程500,其中,在预重置时,(例如L4)高速缓存被配置成SRAM,并且在重置时,所有的核(例如,BSP和AP)均被启用(例如,不具有任何存储器约束),从而优化硬件初始化代码执行(例如,引导阶段)以用于进行更快的引导过程。在本公开的实现方式中,经修改的固件引导过程500包括在通电与CPU重置之间发生的预重置阶段510,并且包括利用SRAM 520阶段、存储器初始化阶段530、后存储器阶段540、有效载荷550阶段以及OS运行时阶段560。预重置阶段510可包括供电定序、重置/安全性、ACM、ucode/pcode等等。
预重置阶段510还可包括将共享高速缓存(例如,L4高速缓存)配置成静态存储器(例如,SRAM)子阶段515。可以如上文参考图2A、图2B、图3和/或图4所描述的在子阶段515配置L4高速缓存。随后,可在利用SRAM阶段520中利用作为SRAM的经配置的共享(例如,L4)高速缓存。显示器初始化模块525子阶段可以在重置时将共享(例如,L4)高速缓存用作SRAM来实现提早显示器初始化和显示器调动,这独立于存储器初始化阶段530时的DRAM训练和初始化。相应地,显示器使用590(例如,显示器调动时间)与经修改的固件引导流程500结合示出,并且指示显示器可以被调动以用于通过存储器初始化阶段530进行显示,这相比于常规系统中的显示器调动更早和/或更快。
预重置coreboot阶段570和UEFI阶段580与流程500结合来图示。coreboot阶段570可包括bootblock(引导块)571、verstage(ver阶段)572、romstage(ROM阶段)573、postCAR(后CAR)574、ramstage(RAM阶段)575、以及深度充电阶段577,这些阶段在下文参考图6进一步详细地描述。UEFI阶段580可包括安全(SEC)阶段581、预EFI初始化(PEI)阶段582、驱动程序执行环境(DXE)阶段583、以及引导设备选择(BDS)阶段584。
示例硬件和固件设计细节包括可由处理器(例如,CPU)访问的共享(例如,L4)高速缓存作为SRAM的部分来克服在重置时可用存储器有限的约束(例如,使用上文的类别(1)实施例),并且可以提早将多个(例如,所有的)核(例如,引导自举处理器(BSP)和应用处理器(AP)重置,并且为这些核(例如,AP与BSP一样)分配资源以执行并行任务。本文中的某些实施例在引导至OS之前禁用/锁定(例如,L4)高速缓存范围(例如,被用作引导SRAM的高速缓存)。
下文所讨论的图6图示出系统的经修改的固件引导流程,其中,在预重置时,(例如L4)高速缓存被配置成SRAM,并且在重置时,所有的核(例如,BSP和AP)均被启用(例如,不具有任何存储器约束),例如,不具有任何存储器约束,从而优化硬件初始化代码执行(例如,引导阶段)以用于进行更快的引导过程。
图6图示出根据本公开的实现方式的硬件初始化的示例流程600,其中在运行硬件初始化代码之前,高速缓存(例如,L4/LLC共享高速缓存)被配置成(例如,被引导控制器配置成)静态存储器(例如,SRAM)。在流程600中,BIOS/UEFI代码610包括引导块阶段612、ROM阶段616和RAM阶段618。
例如,引导块阶段612包括诸如重置向量、处理器模式切换、利用L4高速缓存、和/或控制台启用这样的任务。引导块阶段612还包括显示模块子块614,包括图形设备资源分配、调动显示器、使得标识被看到、以及确定帧缓冲器准备好用于应用使用。
ROM阶段616包括(例如,处理器)芯片组初始化、填充存储器初始化阶段(例如,FSP-M)数据结构、调用存储器初始化阶段、和/或创建控制台(例如,CBMEM)。RAM阶段618包括调用硅初始化阶段(例如,FSP-S)、PCI枚举和资源分配,在存储器中创建针对OS的存储器和功率表(例如,e820和ACPI表),以及锁定(例如,L4)高速缓存中被用作用于硬件初始化代码的存储器的部分(例如,SRAM范围)。
在某些实现方式中,一旦BIOS/UEFI代码610已经执行,则使得引导加载程序代码620执行。例如,其中,引导加载程序代码620将引起对块设备的针对内核分区的读取,并且引导至OS。
在某些实现方式中,RAM阶段618从(例如,SPI)映射存储器并且将(例如,L4)高速缓存作为存储器(例如,SRAM)来运行,并且全部上下文在从BIOS/UEFI代码610跳转到引导加载程序代码620之前被移入DRAM映射存储器中。
在所描绘的实现方式中,一旦硬件初始化代码610完成,则OS切换被执行,以将对系统(例如,处理器)的控制转移到OS 630(例如,OS内核)。示例安全策略是在引导至操作系统之前锁定由硬件初始化代码使用的SRAM存储器范围。
如上文所讨论并在前述图示中所描绘,本公开的实现方式在重置时将共享(例如,L4)高速缓存用作SRAM实现了提早显示器初始化和显示器调动。如此,实现方式在重置时利用(例如,相比于L1、L2或L3高速缓存更大的)预先初始化的存储器以供硬件初始化代码利用。硬件初始化代码(例如,固件)流程可以独立于例如花费较长时间来进行初始化的DRAM存储器训练。提早的硬件初始化代码阶段(例如,在DRAM初始化之前)可以被规避,以减小硬件初始化代码印记。SoC内的辅助处理器核和/或控制器(例如,微控制器)可以将(例如,L4)高速缓存初始化为SRAM,例如而不要求使用(例如,IA)处理器(例如,BSP)核。在某些实现方式中,在任何(例如,处理)核从重置被释放之前,存储器(例如,L4高速缓存)是可用的。
某些实现方式在硬件初始化代码流程中不使用高速缓存即RAM(CAR)(“tempRAMinit(暂时RAM初始化)”),例如以减少引导加载程序空间中复杂的汇编编程。实现方式允许CPU、芯片组和PCI枚举提早被执行,而不依赖于DRAM初始化,并且替代地利用SRAM来进行所有的CPU/芯片组编程。本公开的实现方式允许CAR拆除逻辑被规避。
本公开的实现方式从L4高速缓存-SRAM桶切分出较大的存储器部分以用于提早显示器初始化用例。某些实现方式将基于SRAM的存储器资源初始化到集成图形设备以供与存储器有关的设备寄存器访问。一些实现方式基于最大分辨率支持从基于SRAM的存储器映射UMA基址。在本公开的实现方式中,GTT是基于UMA基址建立的。
实现方式根据设备状况来分配图形被盗存储器。在集成图形设备中,所有的基址寄存器(BAR)访问寄存器是利用预请求SRAM映射存储器来实现的。
在一些实现方式中,控制可以被转移至GOP/图形PEIM模块以供进一步的与设备有关的编程。进一步的与设备有关的编程可包括但不限于:根据UEFI规范,帧缓冲器以指向L4高速缓存-SRAM存储器的线性模式被访问;帧缓冲器经由在对SRAM的初始化期间编程的PCI孔被访问;访问图形核设备基址寄存器;执行时钟编程;初始化时钟PLL编程;设置显示器时钟频率;标识用于显示面板初始化的端点端口;根据UMA尺寸设置所支持的模式;和/或执行所推荐的显示面板训练。
在本公开的实现方式中,在与设备有关的编程之后,引导加载程序可以看到显示器帧缓冲器地址和尺寸,该显示器帧缓冲器地址和尺寸连同所支持的分辨率和显示器时钟一起被编程。任何其他应用现在可以出于显示目的而直接访问帧缓冲器地址。
某些实现方式允许CAR拆除逻辑被规避。某些实现方式规避引导(例如,引导加载程序)空间中在暂时的存储器(例如CAR)到持久性存储器(例如,基于DRAM的存储器)之间的切换,并且整个引导加载程序可以在基于SRAM的固定存储器之外被驱动。某些实现方式在硬件初始化代码(例如,引导加载程序)序列结束时执行DRAM初始化,例如以确保有效载荷或OS可以使用基于DRAM的资源来用于更高的存储器用例。
某些实现方式允许所有核在重置时是可用的,并且BSP可提早将AP带入可操作状况而没有任何存储器瓶颈。某些实现方式允许硬件初始化代码(例如,BIOS/UEFI)在多线程(例如,多核)环境上运行。某些实现方式允许在并行线程上对固件支持包(例如,针对DRAM初始化的FSP-M和针对芯片组初始化的FSP-S)的执行,以优化引导时间。某些实现方式允许整个硬件初始化代码(例如,固件)引导序列跨所有核以及在并行线程上发生的执行而分散,例如,(i)针对处置重置向量、处理器模式切换、控制台启用、创建引导加载程序存储器布局、以及芯片组初始化的引导自举处理器(BSP)的引导事件;(ii)针对填充用于初始化DRAM的(多个)配置参数(例如,FSP-M)、运行用于初始化DRAM的存储器参考代码(MRC)、运行独立的安全引导操作(例如,经验证的引导)、初始化独立的I/O编程(例如,嵌入式多媒体控制器(eMMC)、受信任平台模块(TPM)、嵌入式控制器等)的一个AP核(例如,AP0、AP1…APn,其中n=指向最大可用核的索引)的引导事件;以及(iii)针对填充用于初始化硬件块的配置参数(例如,FSP-S)、运行针对详细芯片组初始化的FSP-S、从用于引导OS的块设备读取内核分区、以及出于安全性顺应性而锁定由硬件初始化代码的执行使用的高速缓存的部分(例如,L4 SRAM范围)的另一AP核((例如,AP0、AP1…APn)的引导事件。
图7是图示出根据本公开的实现方式的、用于针对提早显示器初始化和可视化来改善引导过程的操作700的流程图。操作700(或本文中所描述的其他过程或变型和/或其组合)在被配置成用于执行代码并被实现为代码的一个或多个计算机组件(例如,可执行指令、一个或多个计算机程序、或者一个或多个应用)的控制之下执行的。代码例如以包括可由一个或多个处理器执行的指令的计算机程序的形式被存储在计算机可读存储介质上。计算机可读存储介质是非瞬态的。在一些实施例中,操作700中的一项或多项(或全部)由引导服务执行。
操作700包括:在框710处,使系统通电,该系统包括耦合至高速缓存的多个处理器核。操作700进一步包括:在框720处,在开始硬件初始化代码的执行之前,由系统的控制器将高速缓存中的部分初始化为静态存储器以供硬件初始化代码使用。操作700进一步包括:在框730处,在多个处理器核中的一个或多个处理器核上执行硬件初始化代码,以对系统进行初始化。
操作700进一步包括:在框740处,使用来自被初始化为静态存储器的高速缓存中的部分的存储器来执行显示器初始化。在一种实现方式中,显示器初始化独立于对系统的DRAM的初始化而被执行。操作700进一步包括:在框750处,将对系统的执行的控制从硬件初始化代码转移至在系统上执行的操作系统代码。
图8是根据一些实施例的、实现针对提早显示器初始化和可视化来改善引导过程的说明性电子计算设备的示意图。在一些实施例中,计算设备800包括一个或多个处理器810,该一个或多个处理器810包括一个或多个处理器管芯(例如,核)818,每个处理器管芯818包括硬件初始化组件864,诸如用于执行硬件初始化代码的组件,包括参考图1所描述的BIOS/UEFI代码150和/或引导加载程序代码152。在一些实施例中,如图1-图7中所提供,计算设备用于使用与高速缓存862相关联的L4高速缓存865提供针对提早显示器初始化和可视化的改善的引导过程。
计算设备800可附加地包括以下各项中的一项或多项:高速缓存862、图形处理单元(GPU)812(在一些实现方式中,可以是硬件加速器)、无线输入/输出(I/O)接口820、有线I/O接口830、系统存储器840(例如,存储器电路系统)、功率管理电路系统850、非瞬态存储设备860、以及用于连接至网络872的网络接口870。下列讨论提供对形成说明性的计算设备800的组件的简洁的、一般性的描述。例如,非限制性计算设备800可包括台式计算设备、刀片式服务设备、工作站、或类似的设备或系统。
在实施例中,处理器核818能够执行机器可读指令集814,从一个或多个存储设备860读取数据和/或指令集814,并且将数据写入到一个或多个存储设备860。相关领域的技术人员将领会,所图示的实施例以及其他实施例可利用其他基于处理器的设备配置来实施,这些基于处理器的设备配置包括便携式电子设备或手持式电子设备,例如,智能电话、便携式计算机、可穿戴计算机、消费电子产品、个人计算机(“PC”)、网络PC、小型计算机、服务器刀片、大型计算机,等等。
处理器核818可包括任何数量的硬连线或可配置电路,其中的一些或全部可包括部分或完全地设置在能够执行处理器可读指令的PC、服务器或其他计算系统中的电子组件、半导体器件和/或逻辑元件的可编程和/或可配置组合。
计算设备800包括总线或类似的通信链路816,该总线或类似的通信链路816可通信地耦合各种系统组件,并且促进各种系统组件之间的信息和/或数据的交换,这些系统组件包括处理器核818、高速缓存862、图形处理器电路系统812、一个或多个无线I/O接口820、一个或多个有线I/O接口830、一个或多个存储设备860、和/或一个或多个网络接口870。计算设备800在本文中能以单数形式引用,但是这不旨在将实施例限于单个计算设备800,因为在某些实施例中,可存在合并、包括、或包含任何数量的可通信地耦合的、并置的、或远程联网的电路或设备的多于一个的计算设备800。
处理器核818可包括能够执行机器可读指令集的任何数量、类型的当前可用的或未来开发的设备或这些设备的任何组合。
处理器核818可包括(或耦合至)但不限于任何当前的或未来开发的单核或多核处理器或微处理器,诸如:一个或多个芯片上系统(SOC);中央处理单元(CPU);数字信号处理器(DSP);图形处理单元(GPU);专用集成电路(ASIC);可编程逻辑单元;现场可编程门阵列(FPGA)等等。除非另有说明,否则图8中所示的各种框的构造和操作是常规设计。因此,此类框未在本文中进一步详细地描述,因为相关领域的技术人员将会理解这些框。将计算设备800的组件中的至少一些组件互连起来的总线816可采用任何当前可用的或未来开发的串行或并行总线结构或架构。
系统存储器840可包括只读存储器(“ROM”)842和随机存取存储器(“RAM”)846。ROM842的部分可用于存储或以其他方式保留基本输入/输出系统(“BIOS”)844。BIOS 844例如通过使处理器核818加载和/或执行一个或多个机器可读指令集814来向计算设备800提供基本功能。在实施例中,一个或多个机器可读指令集814中的至少一些使得处理器核818的至少部分提供、创建、产生、转变和/或充当专用、指定且特定的机器,例如文字处理机、数字图像采集机、媒体播放机、游戏系统、通信设备、智能电话等等。
计算设备800可包括至少一个无线输入/输出(I/O)接口820。至少一个无线I/O接口820可以可通信地耦合至一个或多个物理输出设备822(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个无线I/O接口820可以可通信地耦合至一个或多个物理输入设备824(指点设备、触摸屏、键盘、触觉设备等)。至少一个无线I/O接口820可包括任何当前可用的或未来开发的无线I/O接口。示例无线I/O接口包括但不限于:近场通信(NFC)、和类似物。
计算设备800可包括一个或多个有线输入/输出(I/O)接口830。至少一个有线I/O接口830可以可通信地耦合至一个或多个物理输出设备822(触觉设备、视频显示器、音频输出设备、硬副本输出设备等)。至少一个有线I/O接口830可以可通信地耦合至一个或多个物理输入设备824(指点设备、触摸屏、键盘、触觉设备等)。有线I/O接口830可包括任何当前可用的或未来开发的I/O接口。示例有线I/O接口包括但不限于:通用串行总线(USB)、IEEE1394(“火线”)、和类似物。
计算设备800可包括一个或多个可通信地耦合的非瞬态数据存储设备860。数据存储设备860可包括一个或多个硬盘驱动器(HDD)和/或一个或多个固态存储设备(SSD)。一个或多个数据存储设备860可包括任何当前或未来开发的存储装置、网络存储设备、和/或系统。此类数据存储设备860的非限制性示例可包括但不限于任何当前或未来开发的非瞬态存储装置或设备,诸如,一个或多个磁存储设备、一个或多个光存储设备、一个或多个电阻存储设备、一个或多个分子存储设备、一个或多个量子存储设备或其各种组合。在一些实现方式中,一个或多个数据存储设备860可包括一个或多个可移除存储设备,诸如,能够可通信地耦合至计算设备800和从计算设备800解耦的一个或多个闪存驱动器、闪存存储器、闪存存储单元、或类似装置或设备。
一个或多个数据存储设备860可包括将相应的存储设备或系统通信地耦合至总线816的接口或控制器(未示出)。一个或多个数据存储设备860可存储、保留或以其他方式包含对于处理器核818和/或图形处理器电路系统812和/或在处理器核818和/或图形处理器电路系统812上执行的或由处理器核818和/或图形处理器电路系统812执行的一个或多个应用有用的机器可读指令集、数据结构、程序模块、数据存储、数据库、逻辑结构和/或其他数据。在一些实例中,一个或多个数据存储设备860可以例如经由总线816、或经由一个或多个有线通信接口830(例如,通用串行总线或USB)、一个或多个无线通信接口820(例如,近场通信或NFC)、和/或一个或多个网络接口870(IEEE 802.3或以太网、IEEE802.11或等等)而可通信地耦合至处理器核818。
处理器可读指令集814和其他程序、应用、逻辑集合/或模块可整体或部分地存储在系统存储器840中。此类指令集814可整体或部分地从一个或多个数据存储设备860转移。指令集814在由处理器核818和/或图形处理器电路系统812执行期间可整体或部分地被加载、被存储、或以其他方式被保留在系统存储器840中。
计算设备800可包括功率管理电路系统850,该功率管理电路系统850控制能量储存设备852的一个或多个操作方面。在实施例中,能量储存设备852可包括一个或多个主(即,非可重新充电的)电池或辅助(即,可重新充电的)电池或类似的能量储存设备。在实施例中,能量储存设备852可包括一个或多个超级电容器或超超级电容器。在实施例中,功率管理电路系统850可改变、调整或控制从外部功率源854到能量储存设备852和/或到计算设备800的能量流。功率源854可包括但不限于太阳能电力系统、商用电网、便携式发电机、外部能量储存设备、或其任何组合。
为方便起见,处理器核818、图形处理器电路系统812、无线I/O接口820、有线I/O接口830、存储设备860和网络接口870被图示为经由总线816通信地彼此耦合,由此提供上文所描述的组件之间的连接性。在替代实施例中,上文所描述的组件可以以与图8中所图示的不同的方式通信地耦合。例如,上文所描述的组件中的一个或多个组件可直接耦合至其他组件,或者可经由一个或多个中间组件(未示出)彼此耦合。在另一示例中,上文所描述的组件中的一个或多个组件可被集成到处理器核818和/或图形处理器电路系统812中。在一些实施例中,可省略总线816的全部或部分,并且使用合适的有线或无线连接直接将组件彼此耦合。
以下示例涉及进一步的实施例。示例1是一种用于促进针对提早显示器初始化和可视化来改善引导过程的装置。示例1所述的装置包括硬件处理器,该硬件处理器包括:多个处理器核;高速缓存,该高速缓存耦合至该多个处理器核;以及控制器电路,该控制器电路用于:在使硬件处理器通电之后开始对硬件初始化代码的执行之前,将高速缓存的部分初始化为静态存储器以供硬件初始化代码使用;以及使得使用高速缓存的该部分来执行对显示设备的初始化,对显示设备的初始化独立于对硬件处理器的动态存储器的初始化而被执行。
在示例2中,如示例1所述的主题可以任选地包括:其中,硬件初始化代码根据基本输入/输出系统标准。在示例3中,如示例1-2中任一项所述的主题可以任选地包括:其中,硬件初始化代码根据统一可扩展固件接口标准。在示例4中,如示例1-3中任一项所述的主题可以任选地包括:其中,硬件初始化代码将高速缓存的该部分用作静态存储器来并行地在多个处理器核上执行。
在示例5中,如示例1-4中任一项所述的主题可以任选地包括:其中,高速缓存由多个处理器核与图形核共享。在示例6中,如示例1-5中任一项所述的主题可以任选地包括:其中,高速缓存是L4高速缓存。在示例7中,如示例1-6中任一项所述的主题可以任选地包括:其中,动态存储器包括动态随机存取存储器(DRAM)。在示例8中,如示例1-7中任一项所述的主题可以任选地包括:其中,在对硬件初始化代码的执行之后,高速缓存中作为所述静态存储器的该部分被锁定,以阻止对该部分的访问。
示例9是一种用于促进针对提早显示器初始化和可视化来改善引导过程的非瞬态计算机可读存储介质。示例9的非瞬态计算机可读存储介质包括在由一个或多个处理器执行时使得该一个或多个处理器执行包括以下各项的操作:使系统通电,该系统包括耦合至高速缓存的多个处理器核;在开始对硬件初始化代码的执行之前,由系统的控制器将所述高速缓存的部分初始化为静态存储器以供硬件初始化代码使用;在多个处理器核中的一个或多个处理器核上执行硬件初始化代码,以对系统进行初始化;使用来自被初始化为静态存储器的高速缓存的部分的存储器来执行显示器初始化,显示器初始化独立于对系统的动态存储器的初始化而被执行;以及将对系统的执行的控制从硬件初始化代码转移至在该系统上执行的操作系统。
在示例10中,如示例9所述的主题可以任选地包括:其中,硬件初始化代码根据基本输入/输出系统标准。在示例11中,如示例9-10中任一项所述的主题可以任选地包括:其中,硬件初始化代码根据统一可扩展固件接口标准。在示例12中,如示例9-11中任一项所述的主题可以任选地包括:其中,执行包括将高速缓存中的部分用作静态存储器来并行地在多个处理器核上执行硬件初始化代码,以对系统进行初始化。
在示例13中,如示例9-12中任一项所述的主题可以任选地包括:其中,高速缓存由多个处理器核与图形核共享。在示例14中,如示例9-13中任一项所述的主题可以任选地包括:其中,动态存储器包括动态随机存取存储器(DRAM)。在示例15中,如示例9-14中任一项所述的主题可以任选地包括:其中,在对硬件初始化代码的执行之后,高速缓存中作为所述静态存储器的部分被锁定,以阻止对该部分的访问。
示例16是一种用于促进针对提早显示器初始化和可视化来改善引导过程的系统。示例16的系统包括:硬件处理器,该硬件处理器包括多个处理器核;高速缓存,该高速缓存耦合至该硬件处理器;以及控制器电路,该控制器电路用于:在使硬件处理器通电之后开始对硬件初始化代码的执行之前,将高速缓存中的部分初始化为静态存储器以供硬件初始化代码使用;以及使得使用高速缓存的该部分来执行对显示设备的初始化,对显示设备的初始化独立于对硬件处理器的动态存储器的初始化而被执行。
在示例17中,如示例16所述的主题可以任选地包括:其中,硬件初始化代码根据基本输入/输出系统标准。在示例18中,如示例16-17中任一项所述的主题可以任选地包括:其中,硬件初始化代码根据统一可扩展固件接口标准。在示例19中,如示例16-18中任一项所述的主题可以任选地包括:其中,硬件初始化代码将高速缓存的该部分用作存储器来并行地在多个处理器核上执行。在示例20中,如示例16-19中任一项所述的主题可以任选地包括:进一步包括图形核,并且高速缓存由多个处理器核与图形核共享。
示例21是一种用于促进针对提早显示器初始化和可视化来改善引导过程的方法。示例21的方法可以任选地包括:使系统通电,该系统包括耦合至高速缓存的多个处理器核;在开始对硬件初始化代码的执行之前,由系统的控制器将所述高速缓存的部分初始化为静态存储器以供硬件初始化代码使用;在多个处理器核中的一个或多个处理器核上执行硬件初始化代码,以对系统进行初始化;使用来自被初始化为静态存储器的高速缓存的部分的存储器来执行显示器初始化,显示器初始化独立于对系统的动态存储器的初始化而被执行;以及将对系统的执行的控制从硬件初始化代码转移至在该系统上执行的操作系统代码。
在示例22中,如示例21所述的主题可以任选地包括:其中,硬件初始化代码根据基本输入/输出系统标准。在示例23中,如示例21-22中任一项所述的主题可以任选地包括:其中,硬件初始化代码根据统一可扩展固件接口标准。在示例24中,如示例21-23中任一项所述的主题可以任选地包括:其中,执行包括将高速缓存的该部分用作静态存储器来并行地在多个处理器核上执行硬件初始化代码,以对系统进行初始化。
在示例25中,如示例21-24中任一项所述的主题可以任选地包括:其中,高速缓存由多个处理器核与图形核共享。在示例26中,如示例21-25中任一项所述的主题可以任选地包括:其中,动态存储器包括动态随机存取存储器(DRAM)。在示例27中,如示例21-26中任一项所述的主题可以任选地包括:其中,在对硬件初始化代码的执行之后,高速缓存的作为所述静态存储器的该部分被锁定,以阻止对该部分的访问。
示例28是根据本公开的实现方式的、一种用于针对早期显示器初始化和可视化来改善引导过程的设备。示例28的设备可以任选地包括:用于使系统通电的装置,该系统包括耦合至高速缓存的多个处理器核;用于在开始对硬件初始化代码的执行之前、由系统的控制器将所述高速缓存中的部分初始化为静态存储器以供硬件初始化代码使用的装置;用于在多个处理器核中的一个或多个处理器核上执行硬件初始化代码以对系统进行初始化的装置;用于使用来自被初始化为静态存储器的高速缓存的部分的存储器来执行显示器初始化的装置,显示器初始化独立于对系统的动态存储器的初始化而被执行;以及用于将对系统的执行的控制从硬件初始化代码转移至在该系统上执行的操作系统代码的装置。
在示例29中,如示例28所述的主题可以任选地包括进一步被配置成用于执行示例22至27中任一项所述的方法的设备。
示例30是至少一个机器可读介质,包括多条指令,该多条指令响应于在计算设备上执行而使得该计算设备执行根据示例21-27中的任一项所述的方法。示例31是一种用于针对提早显示器初始化和可视化来改善引导过程的装置,该装置被配置成用于执行如示例21-27中的任一项所述的方法。示例32是一种用于促进针对提早显示器初始化和可视化来改善引导过程的设备,该设备包括用于执行方法21至27中任一项所述的方法的装置。可在一个或多个实施例中的任何地方使用这些示例中的细节。
在上面的描述中,出于解释的目的,阐述了众多具体细节以便提供对所描述实施例的全面理解。然而,对本领域技术人员将显而易见的是,可以在没有这些具体细节中的一些细节的情况下实施实施例。在其他情况下,以框图形式示出了公知的结构和设备。在所示出的组件之间可以有中间结构。此处所描述的或所示出的组件可以具有未示出或描述的额外的输入或输出。
各实施例可包括各种过程。这些过程可由硬件组件来执行,或者可被具体化为计算机程序或机器可执行指令,该指令可用于使利用该指令编程的通用或专用处理器或逻辑电路执行这些过程。或者,这些过程也可由硬件和软件的组合来执行。
各实施例的各部分可以作为计算机程序产品来提供,该计算机程序产品可以包括其上存储有计算机程序指令的计算机可读介质(例如,非瞬态计算机可读存储介质),这些计算机程序指令可以用于对计算机(或其他电子设备)进行编程以供一个或多个处理器执行以执行根据某些实施例的过程。计算机可读介质可包括但不限于磁盘、光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或适于存储电子指令的其他类型的计算机可读介质。此外,实施例还可以作为计算机程序产品下载,其中,程序可以从远程计算机传递到请求计算机。
方法中的许多方法是以它们的基本形式描述的,但是可将过程添加到方法中的任一方法中或从方法中的任一方法删除过程,并且可以向所描述的消息中的任何一个添加信息或从所描述的消息中的任何一个减去信息,而不背离当前实施例的基本范围。对本领域的技术人员而言将显而易见的是,可以作出许多进一步的修改和改编。特定实施例不是被提供用于限制概念而是用于说明概念。实施例的范围不是由以上所提供的具体示例来确定,而仅由所附权利要求确定。
如果说要素“A”耦合至或耦合于要素“B”,则要素A可直接耦合至要素B或例如通过要素C间接耦合。当说明书或权利要求书陈述组件、特征、结构、过程或特性A“致使”组件、特征、结构、过程或特性B时,这意味着“A”是“B”的至少部分成因,但也可以有辅助致使“B”的至少一个其他组件、特征、结构、过程或特性。如果说明书指示“可”、“可以”或“可能”包括组件、特征、结构、过程或特性,则不是要求包括该特定组件、特征、结构、过程或特性。如果说明书或权利要求书提到“一”或“一个”要素,这不意味着仅存在一个所描述要素。
实施例是实现方式或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”、或“其他实施例”的引用意味着结合实施例所描述的特定特征、结构或特性被包括在至少一些实施例中。“实施例”、“一个实施例”、或“一些实施例”的各种出现并非全都指代相同的实施例。应当理解,在对示例实施例的以上描述中,出于使本公开变得流畅并辅助理解各新颖方面中的一个或多个方面的目的,各个特征有时被一起编组在单个实施例、附图、或其描述中。然而,这种公开方法不应被解释成反映所要求保护的实施例利用比每项权利要求中所明确记载的更多特征的意图。相反,如所附权利要求所反映,新颖性方面存在于比单个前述公开的实施例的所有特征更少的特征中。因此,权利要求由此被明确纳入该说明书中,其中每一项权利要求独自作为单独的实施例。
Claims (22)
1.一种硬件处理器,包括:
多个处理器核;
高速缓存,所述高速缓存耦合至所述多个处理器核;以及
控制器电路,所述控制器电路用于:
在使所述硬件处理器通电之后开始对硬件初始化代码的执行之前,将所述高速缓存的部分初始化为静态存储器以供所述硬件初始化代码使用;以及
使得使用所述高速缓存的所述部分来执行显示设备的初始化,对所述显示设备的初始化独立于对所述硬件处理器的动态存储器的初始化而被执行。
2.如权利要求1所述的硬件处理器,其中,所述硬件初始化代码根据基本输入/输出系统标准。
3.如权利要求1所述的硬件处理器,其中,所述硬件初始化代码根据统一可扩展固件接口标准。
4.如权利要求1所述的硬件处理器,其中,所述硬件初始化代码将所述高速缓存的所述部分用作所述静态存储器来并行地在所述多个处理器核上执行。
5.如权利要求1所述的硬件处理器,其中,所述高速缓存由所述多个处理器核与图形核共享。
6.如权利要求1所述的硬件处理器,其中,所述高速缓存是L4高速缓存。
7.如权利要求1所述的硬件处理器,其中,所述动态存储器包括动态随机存取存储器DRAM。
8.如权利要求1所述的硬件处理器,其中,在对所述硬件初始化代码的执行之后,所述高速缓存中作为所述静态存储器的所述部分被锁定,以阻止对所述部分的访问。
9.一种系统,包括:
硬件处理器,所述硬件处理器包括多个处理器核;
高速缓存,所述高速缓存耦合至所述硬件处理器;
用于硬件初始化代码的存储;以及
控制器电路,所述控制器电路用于:
在使所述硬件处理器通电之后开始对所述硬件初始化代码的执行之前,将所述高速缓存的部分初始化为静态存储器以供所述硬件初始化代码使用;以及
使得使用所述高速缓存的所述部分来执行显示设备的初始化,对所述显示设备的初始化独立于对所述硬件处理器的动态存储器的初始化而被执行。
10.如权利要求9所述的系统,其中,所述硬件初始化代码根据基本输入/输出系统标准。
11.如权利要求9所述的系统,其中,所述硬件初始化代码根据统一可扩展固件接口标准。
12.如权利要求9所述的系统,其中,所述硬件初始化代码将所述高速缓存的所述部分用作所述存储器来并行地在所述多个处理器核上执行。
13.如权利要求9所述的系统,进一步包括图形核,并且所述高速缓存由所述多个处理器与所述图形核共享。
14.一种用于促进针对提早显示器初始化和可视化来改善引导过程的方法,所述方法包括:
使系统通电,所述系统包括耦合至高速缓存的多个处理器核;
在开始对硬件初始化代码的执行之前,由所述系统的控制器将所述高速缓存的部分初始化为静态存储器以供所述硬件初始化代码使用;
在所述多个处理器核中的一个或多个处理器核上执行所述硬件初始化代码,以对所述系统进行初始化;
使用来自被初始化为所述静态存储器的所述高速缓存的所述部分的存储器来执行显示器初始化,所述显示器初始化独立于对所述系统的动态存储器的初始化而被执行;以及
将对所述系统的执行的控制从所述硬件初始化代码转移至在所述系统上执行的操作系统。
15.如权利要求14所述的方法,其中,所述硬件初始化代码根据基本输入/输出系统标准。
16.如权利要求14-15中任一项所述的方法,其中,所述硬件初始化代码根据统一可扩展固件接口标准。
17.如权利要求14-16中任一项所述的方法,其中,所述执行包括将所述高速缓存的所述部分用作所述静态存储器来在所述多个处理器核上并行地执行所述硬件初始化代码,从而初始化所述系统。
18.如权利要求14-17中任一项所述的方法,其中,所述高速缓存由所述多个处理器核与图形核共享。
19.如权利要求14-18中任一项所述的方法,其中,所述动态存储器包括动态随机存取存储器DRAM。
20.如权利要求14-19中任一项所述的方法,其中,在对所述硬件初始化代码的执行之后,所述高速缓存的作为所述静态存储器的所述部分被锁定,以阻止对所述部分的访问。
21.至少一种机器可读介质,包括多条指令,所述多条指令响应于在计算设备上执行而使得所述计算设备执行根据权利要求14-20中的任一项所述的方法。
22.一种用于促进针对提早显示器初始化和可视化来改善引导过程的设备,所述设备包括用于执行权利要求14至20中任一项所述的方法的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/025,350 US11768691B2 (en) | 2020-09-18 | 2020-09-18 | Boot process for early display initialization and visualization |
US17/025,350 | 2020-09-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114201222A true CN114201222A (zh) | 2022-03-18 |
Family
ID=74065751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110951354.4A Pending CN114201222A (zh) | 2020-09-18 | 2021-08-18 | 针对提早显示器初始化和可视化改善引导过程 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11768691B2 (zh) |
EP (1) | EP3971713A1 (zh) |
JP (1) | JP2022051506A (zh) |
CN (1) | CN114201222A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11768691B2 (en) | 2020-09-18 | 2023-09-26 | Intel Corporation | Boot process for early display initialization and visualization |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114756288A (zh) * | 2022-03-30 | 2022-07-15 | 联想(北京)有限公司 | 一种处理方法以及电子设备 |
US11983073B2 (en) * | 2022-07-27 | 2024-05-14 | Micron Technology, Inc. | Hardware reset management for universal flash storage |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7181737B2 (en) * | 2002-03-18 | 2007-02-20 | Sun Microsystems, Inc. | Method and apparatus for deployment of high integrity software using static procedure return addresses |
US7254676B2 (en) * | 2002-11-15 | 2007-08-07 | Intel Corporation | Processor cache memory as RAM for execution of boot code |
US7627718B2 (en) * | 2006-12-13 | 2009-12-01 | Intel Corporation | Frozen ring cache |
US7779244B2 (en) * | 2006-12-28 | 2010-08-17 | Intel Corporation | Multi-socket boot |
US7987348B2 (en) | 2007-03-30 | 2011-07-26 | Intel Corporation | Instant on video |
WO2013081591A1 (en) * | 2011-11-30 | 2013-06-06 | Intel Corporation | Techniques to display multimedia data during operating system initialization |
US8984313B2 (en) * | 2012-08-31 | 2015-03-17 | Intel Corporation | Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator |
CN103150178A (zh) * | 2013-02-05 | 2013-06-12 | 联发科技(新加坡)私人有限公司 | 一种开机显示控制方法及处理器芯片 |
US9665153B2 (en) * | 2014-03-21 | 2017-05-30 | Intel Corporation | Selecting a low power state based on cache flush latency determination |
EP3163441B1 (en) * | 2014-11-10 | 2018-09-19 | Huawei Technologies Co. Ltd. | Computer device and memory starting method for computer device |
US10417030B2 (en) * | 2015-02-27 | 2019-09-17 | Samsung Electronics Co., Ltd. | Apparatus and method for compile time construction of memory structures |
US10152393B2 (en) * | 2016-08-28 | 2018-12-11 | Microsoft Technology Licensing, Llc | Out-of-band data recovery in computing systems |
US10304418B2 (en) * | 2016-09-27 | 2019-05-28 | Intel Corporation | Operating system transparent system memory abandonment |
WO2019066773A1 (en) * | 2017-09-26 | 2019-04-04 | Hewlett-Packard Development Company, L.P. | LOADING IMAGE OF STARTUP |
WO2019088978A1 (en) * | 2017-10-30 | 2019-05-09 | Hewlett-Packard Development Company, L.P. | Secure hardware initialization |
CN109445860B (zh) * | 2018-10-17 | 2022-03-25 | 京东方科技集团股份有限公司 | 引导电子设备系统开机的方法,电子设备,可读存储介质 |
US11176986B2 (en) * | 2019-12-30 | 2021-11-16 | Advanced Micro Devices, Inc. | Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training |
US11782727B2 (en) * | 2020-05-29 | 2023-10-10 | Micron Technology, Inc. | Read prediction during a system boot procedure |
US11768691B2 (en) | 2020-09-18 | 2023-09-26 | Intel Corporation | Boot process for early display initialization and visualization |
-
2020
- 2020-09-18 US US17/025,350 patent/US11768691B2/en active Active
-
2021
- 2021-07-14 JP JP2021116372A patent/JP2022051506A/ja active Pending
- 2021-08-16 EP EP21191559.0A patent/EP3971713A1/en active Pending
- 2021-08-18 CN CN202110951354.4A patent/CN114201222A/zh active Pending
-
2023
- 2023-07-28 US US18/361,128 patent/US20230385070A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11768691B2 (en) | 2020-09-18 | 2023-09-26 | Intel Corporation | Boot process for early display initialization and visualization |
Also Published As
Publication number | Publication date |
---|---|
US20230385070A1 (en) | 2023-11-30 |
US20210004241A1 (en) | 2021-01-07 |
US11768691B2 (en) | 2023-09-26 |
JP2022051506A (ja) | 2022-03-31 |
EP3971713A1 (en) | 2022-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10860332B2 (en) | Multicore framework for use in pre-boot environment of a system-on-chip | |
US8086839B2 (en) | Authentication for resume boot path | |
CN114201222A (zh) | 针对提早显示器初始化和可视化改善引导过程 | |
CN107430424B (zh) | 针对改进的混合睡眠功率管理的技术 | |
US8296528B2 (en) | Methods and systems for microcode patching | |
US11354240B2 (en) | Selective execution of cache line flush operations | |
US7493435B2 (en) | Optimization of SMI handling and initialization | |
US11157303B2 (en) | Detecting bus locking conditions and avoiding bus locks | |
US20200348939A1 (en) | Hardware processors and methods for extended microcode patching | |
US10776283B2 (en) | Techniques to provide a secure system management mode | |
US11392698B2 (en) | Active side-channel attack prevention | |
US11816220B2 (en) | Phased boot process to dynamically initialize devices in a verified environment | |
WO2015048922A1 (en) | Trusted boot and runtime operation | |
CN104583959A (zh) | 允许处理器资源的虚拟化 | |
US11941409B2 (en) | Methods, systems, and apparatuses for a multiprocessor boot flow for a faster boot process | |
US11803643B2 (en) | Boot code load system | |
CN105556461B (zh) | 用于预os镜像重写以提供跨架构支持、安全性自省和性能优化的技术 | |
EP4002175A1 (en) | Seamless smm global driver update base on smm root-of-trust | |
EP3901768A1 (en) | Methods, systems, and apparatuses for a multiprocessor boot flow for a faster boot process | |
US20210365559A1 (en) | Seamless system management mode code injection | |
US20230185349A1 (en) | Power management watchdog | |
US20240028222A1 (en) | Sleep mode using shared memory between two processors of an information handling system | |
US10691466B2 (en) | Booting a computing system using embedded non-volatile memory | |
Denz et al. | Symmetric multiprocessing from boot to virtualization |
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 |