KR101609385B1 - Method for reducing platform boot times by providing lazy input/output abstractions - Google Patents

Method for reducing platform boot times by providing lazy input/output abstractions Download PDF

Info

Publication number
KR101609385B1
KR101609385B1 KR1020147021299A KR20147021299A KR101609385B1 KR 101609385 B1 KR101609385 B1 KR 101609385B1 KR 1020147021299 A KR1020147021299 A KR 1020147021299A KR 20147021299 A KR20147021299 A KR 20147021299A KR 101609385 B1 KR101609385 B1 KR 101609385B1
Authority
KR
South Korea
Prior art keywords
user input
input hardware
hardware device
computer system
boot
Prior art date
Application number
KR1020147021299A
Other languages
Korean (ko)
Other versions
KR20140110021A (en
Inventor
마이클 에이. 로스만
빈센트 제이. 짐머
마크 에스. 도란
마이클 디. 키니
Original Assignee
인텔 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코포레이션 filed Critical 인텔 코포레이션
Publication of KR20140110021A publication Critical patent/KR20140110021A/en
Application granted granted Critical
Publication of KR101609385B1 publication Critical patent/KR101609385B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

부팅 프로세스에 대한 사용자 인터럽트가 있을 것 같다고 판정되지 않을 경우, 사용자 입력 하드웨어 디바이스와 같은 특정 디바이스들이 초기화되지 않을 수 있으므로 운영 체제를 보다 빠르게 론칭하는 향상된 시스템 부팅 프로세싱을 위한 방법, 시스템 및 컴퓨터 프로그램 제품이 개시된다. 즉, 디바이스에 대한 인터페이스가 노출되더라도, 인터페이스에 대한 호출이 발생하지 않으면 어떠한 초기화도 발생하지 않는다. 다른 실시예들이 설명되고 청구된다.A method, system, and computer program product for enhanced system boot processing for launching an operating system faster than certain devices, such as user input hardware devices, may not be initialized if it is determined that there is no user interruption to the boot process . That is, even if the interface to the device is exposed, no initialization occurs unless a call to the interface occurs. Other embodiments are described and claimed.

Description

지연 입력/출력 추상화를 제공함으로써 플랫폼 부팅 시간을 감소시키는 방법{METHOD FOR REDUCING PLATFORM BOOT TIMES BY PROVIDING LAZY INPUT/OUTPUT ABSTRACTIONS}METHOD FOR REDUCING PLATFORM BOOT TIMES BY PROVIDING LAZY INPUT / OUTPUT ABSTRACTIONS < RTI ID = 0.0 >

많은 컴퓨팅 시스템은 전통적으로, 시스템 클럭을 설정하고, 메모리 설정을 관리하고, 새로운 하드 드라이브를 구성하고, 부팅 순서를 변경하고, 패스워드 리셋 등의 여러가지 설정 기능을 수행하기 위해 사용자가 부팅 프로세스를 인터럽트(interrupt)시키는 것을 허용하였다. 이러한 인터럽트는 기본 입력/출력 시스템(BIOS) 부팅 프로세스 동안에 삭제, F1, F2, F10 또는 ctrl-alt-delete와 같은 특정 키보드 버튼(들)에 대한 사용자의 활성화에 의해 개시될 수 있다. 그러한 시스템에 대하여, 범용 직렬 버스(USB) 키보드와 같은 입력/출력(I/O) 디바이스들이 열거되고(enumerated) 사용자가 실제 그러한 인터럽트를 개시하였는지를 판정하기 위해 폴링됨(polled)에 따라 부팅 시간이 현저하게 길어질 수 있다.Many computing systems have traditionally been designed to interrupt the boot process in order to set the system clock, manage memory settings, configure a new hard drive, change the boot order, and perform various setup functions such as password reset interrupt. Such an interrupt may be initiated by the user's activation of a particular keyboard button (s), such as delete, F1, F2, F10 or ctrl-alt-delete during the basic input / output system (BIOS) boot process. For such a system, the boot time may be increased as the input / output (I / O) devices such as a universal serial bus (USB) keyboard are enumerated and polled to determine if the user actually initiated such an interrupt Can be remarkably long.

도 1은 운영 체제의 론칭(launching) 이전에 수행되는 동작의 예시이다.
도 2는 본 발명의 일 실시예에 따른, 운영 체제의 론칭 이전에 수행되는 동작의 예시이다.
도 3은 본 발명의 일 실시예에 따른, 향상된 부팅을 수행하기 위한 방법의 흐름도이다.
도 4는 본 발명의 실시예에 따른, 펌웨어 및 향상된 부팅의 인터럽트 제어를 인에이블하는 것과 관련하여 수행되는 동작의 흐름도이다.
도 5는 본 발명의 적어도 일 실시예에 따른, 제1 및 제2 시스템을 예시하는 블록도이다.
도 6은 본 발명의 적어도 하나의 다른 실시예에 따른 시스템의 블록도이다.
도 7은 본 발명의 적어도 하나의 다른 실시예에 따른 시스템의 블록도이다.
Figure 1 is an illustration of operations performed prior to launching an operating system.
Figure 2 is an illustration of operations performed prior to launching an operating system, in accordance with one embodiment of the present invention.
3 is a flow diagram of a method for performing an enhanced boot, in accordance with an embodiment of the present invention.
4 is a flow diagram of operations performed in conjunction with enabling firmware and enhanced boot interrupt control, in accordance with an embodiment of the present invention.
5 is a block diagram illustrating first and second systems, in accordance with at least one embodiment of the present invention.
6 is a block diagram of a system according to at least one alternative embodiment of the present invention.
7 is a block diagram of a system according to at least one alternative embodiment of the present invention.

실시예들은 특정 입력/출력(I/O) 디바이스의 폴링의 부담(예를 들면, 범용 직렬 버스(USB) 키보드는 0.5 내지 1.5초 정도 걸릴 수 있음)을 반드시 가질 필요 없이 플랫폼 인터럽트 가능성(interruptability)의 제어를 가능하게 하는데 사용될 수 있다. 모바일 디바이스, 예를 들어, 스마트 폰, 태블릿 컴퓨터, Ultrabooks™, 전자 리더기 등과 같은 컴퓨팅 시스템들이 점점 일반적으로 되면서, 인스턴트 온(instant-on) 또는 거의 인스턴트 온(near instant-on) 거동에 대한 사용자의 바램이 존재하여, 부팅 속도가 점점 더 중요하게 된다. 그럼에도 불구하고, 몇 종류의 단축키를 사용자가 선택함으로써 트리거될 수 있는, 설정 또는 진단 등을 위한 것과 같은 특정 사전 부팅 모드로 진입하기 위해 부팅 프로세스를 인터럽트하는 능력을 제공하는 등의 상충되는 요구 사항이 존재한다. 이러한 동작을 수용하기 위해, 인터럽트를 받아들이는 키보드가 연결된 버스를 열거하는데만 0.5초 걸릴 수 있다. 또한, 사용자가 키를 누르도록 일정량의 대기 시간이 제공되고, 이는 플랫폼으로 하여금, 거의 사용된 적이 없는, 부팅 프로세스를 현저하게 느리게 하는 무언가를 거듭 하게 하는 시나리오를 도입함으로써 부팅 시간을 더 악화시킨다.Embodiments may provide platform interruptability without having to necessarily incur the burden of polling a particular input / output (I / O) device (e.g., a universal serial bus (USB) keyboard may take from 0.5 to 1.5 seconds) Lt; / RTI > As computing systems such as mobile devices, such as smartphones, tablet computers, Ultrabooks ™, electronic readers, etc., become increasingly common, there is a growing need for users of instant-on or near instant- There is a desire, and the boot speed becomes increasingly important. Nevertheless, there are conflicting requirements, such as providing the ability to interrupt the boot process to enter a particular pre-boot mode, such as for configuration or diagnostics, which can be triggered by a user selecting several shortcuts exist. To accommodate this behavior, the keyboard that accepts the interrupt can take only 0.5 seconds to enumerate the connected bus. In addition, a certain amount of waiting time is provided for the user to press a key, which further aggravates the boot time by introducing a scenario in which the platform repeatedly uses something that has been rarely used, significantly slowing down the boot process.

실시예는, 어떠한 사용자 입력도 제공되지 않은 다수의 부팅에 대해 이러한 상황을 제어가능하게 회피할 수 있고, 따라서 시스템 부팅의 대다수에 대해 거의 인스턴트 온을 가능하게 한다. 다양한 실시예에 따르면, 플랫폼 BIOS와 같은 사전 부팅 코드는 I/O 디바이스와 같은 하나 이상의 하드웨어 디바이스에 대한 지연 초기화(lazy initialization)(즉, 주문형 초기화: on-demand initialization)를 지원할 수 있다.Embodiments can controllably circumvent this situation for multiple bots that are not provided with any user input, thus enabling almost instant on for the majority of system bots. According to various embodiments, pre-boot code, such as the platform BIOS, may support lazy initialization (i.e., on-demand initialization) for one or more hardware devices, such as I / O devices.

실시예는, 하드웨어가 실제로 초기화되면, 정상적으로 노출될 표준 인터페이스를 나타내고 있으나, 초기화 프로세스는 회피된다. 하드웨어는 인터페이스가 소비자에 의해 호출된 경우에만 터치되고, 그 후(그리고 오직 그 후에만) 하드웨어를 초기화하는 것과 관련된 시간이 실제로 발생할 것이다.The embodiment shows a standard interface to be normally exposed when the hardware is actually initialized, but the initialization process is avoided. The hardware will only be touched when the interface is called by the consumer, and then (and only after that) will actually occur the time associated with initializing the hardware.

이제 도 1을 참조하면, 사용자 입력에 대해 폴링하기 위해 하드웨어를 초기화하는 것에 대한 오버헤드를 발생시키는, 운영 체제의 론칭 이전에 수행된 종래의 동작의 예가 도시된다. 도 1에 도시된 바와 같이, 운영 체제(OS)를 론칭하는 단계는, 중앙 처리 유닛(CPU)/칩셋을 초기화하는 BIOS 초기화에서 시작된다. 다음으로, I/O 버스와 같은 버스가 디바이스를 찾기 위해 열거된다. 이러한 버스 상에, 예를 들면, 키보드와 같은 사용자 입력 하드웨어 디바이스와 같은 디바이스에 대해 차례로 인터페이싱하는 USB 제어기와 같은 하나 이상의 하드웨어 구성요소가 있을 수 있다. 그러한 사용자 입력 디바이스, 보다 일반적으로는 I/O 디바이스의 예들은 키보드, 마우스, 숫자 키패드, 터치스크린, 디스플레이 스크린에 디스플레이된 가상 키보드 등을 포함할 수 있다.Referring now to FIG. 1, there is shown an example of a conventional operation performed prior to launching an operating system, causing overhead for initializing the hardware to poll for user input. As shown in Figure 1, launching an operating system (OS) begins with BIOS initialization to initialize the central processing unit (CPU) / chipset. Next, a bus such as an I / O bus is enumerated to locate the device. There may be one or more hardware components on this bus, such as a USB controller, which in turn interfaces to a device, such as a user input hardware device, such as a keyboard. Examples of such user input devices, more generally I / O devices, may include a keyboard, a mouse, a numeric keypad, a touch screen, a virtual keyboard displayed on a display screen,

도시하는 바와 같이, 프로빙(probing) 동작이 디바이스의 존재를 프로빙하기 위해 하드웨어 구성요소와 디바이스 사이에서 발생한다. 다음으로, 주기적인 시스템 관리 인터럽트(SMI)가 레거시(legacy) USB를 에뮬레이트하도록 주기적인 인터럽트를 위해 프로그램된다. 도시된 바와 같이, 인터럽트는 CPU/칩셋에서 생성될 수 있다. 따라서, 폴링 동작이 발생하고, 폴링 동작은, 핸들러가 디바이스, 예를 들어, 키보드의 존재에 대해 폴링하기 위해 그리고 또한 사용자 입력들에 대해 폴링하기 위해 실행할 수 있는 시스템 관리 모드(SMM)로 CPU가 진입하게 한다. 예를 들어, I/O 디바이스들은, 부팅 프로세스가 인터럽트되어야 한다는 것을 나타내기 위해 사용자가 입력을 제공했는지를 판정하기 위해 질의 받을 수 있다. 따라서, 그들은 사용자 개시 입력에 대해 모니터링된다. 일례로서, 이러한 질의(interrogation)는 디바이스와의 핸드셰이크를 구축하고 디바이스를 폴링하는 단계를 포함한다. 핸드셰이크를 구축하는 단계는, 예를 들어, 특정 포트에 특정 형식의 데이터를 전송하는 것을 포함할 수 있다.As shown, a probing operation occurs between the hardware component and the device to probe for the presence of the device. Next, a periodic system management interrupt (SMI) is programmed for periodic interrupts to emulate legacy USB. As shown, an interrupt may be generated in the CPU / chipset. Thus, a polling operation occurs, and the polling operation is performed in a system management mode (SMM) in which the handler can execute to poll for the presence of a device, e.g., a keyboard, Let it enter. For example, I / O devices can be queried to determine if the user has provided input to indicate that the boot process should be interrupted. Thus, they are monitored for user initiation input. As an example, this interrogation includes building a handshake with the device and polling the device. The step of establishing the handshake can include, for example, transferring a specific type of data to a particular port.

계속 도 1을 참조하면, 다음으로 OS 로더가 예를 들어, 플래시 메모리와 같은 시스템의 비휘발성 저장소 또는 존재한다면, 하드 드라이브와 같은 대용량 저장소 디바이스와 같은 타겟 매체로부터 판독된다. 그리고 나서, BIOS는 OS가 론칭되게 한다. OS의 론칭 후에, 네이티브(native) OS 드라이버가 론칭된다. 디바이스에 대한 프로빙 및 폴링 동작과 연관된 시간 지연으로 인해 이러한 부팅 프로세스는 원하는 것보다 긴 시간이 걸릴 수 있다는 것에 유의한다.Continuing to refer to FIG. 1, the OS loader is then read from a target medium such as a non-volatile storage of a system such as, for example, flash memory or, if present, a mass storage device such as a hard drive. The BIOS then allows the OS to launch. After launching the OS, the native OS driver is launched. Note that this boot process may take longer than desired due to the time delay associated with probing and polling operations on the device.

대신 특정 실시예에 따라, 다양한 오버헤드가 OS 론칭 이전의 부팅 프로세스로부터 제거될 수 있다. 이제 도 2를 참조하면, 본 발명의 일 실시예에 따른, 운영 체제의 론칭 이전에 수행되는 동작의 예시가 도시된다. 도 2에 도시된 바와 같이, 오버헤드가 제거되면, 초기화와 OS의 론칭 사이의 시간이 훨씬 짧아질 수 있다. 도시된 바와 같이, CPU/칩셋의 초기화 후에, OS 로더가 바로 직후에 판독되어, OS가 바로 론칭될 수 있고, 전술한 오버헤드를 제거한다.Instead, according to certain embodiments, various overheads may be removed from the boot process prior to OS launch. Referring now to Figure 2, an example of an operation performed prior to launching an operating system, in accordance with an embodiment of the present invention, is illustrated. As shown in FIG. 2, if the overhead is removed, the time between initialization and launching of the OS can be much shorter. As shown, after initialization of the CPU / chipset, the OS loader is read immediately after, the OS can be launched immediately, and the above-mentioned overhead is eliminated.

이런 방식으로, 파워 오프된 플랫폼으로부터 부팅하는 경우에도, 인지된 "인스턴트 온" 또는 거의 "인스턴트 온" 동작이 발생한다. 그러한 인지된 인스턴트 온 동작을 달성하기 위해, (일반적으로 발생하지도 않는) 사용자 입력에 대한 폴링 및 디바이스의 프로빙에 대한 이러한 오버헤드가 회피될 수 있다. 그럼에도 불구하고, 진단 모드로 진입하거나 BIOS 설정 루틴에의 사용자 입력을 허용하는 등의 부팅 프로세스를 때때로 인터럽트하는 유효한 제품 요구 사항이 존재한다.In this way, even when booting from a powered off platform, a recognized "instant on" or almost "instant on" To achieve such perceived instant-on operation, this overhead for polling of the user input (and not normally occurring) and probing of the device can be avoided. Nevertheless, there are valid product requirements that interrupt the boot process from time to time, such as entering the diagnostic mode or allowing user input to the BIOS setup routine.

이제 도 3을 참조하면, 본 발명의 일 실시예에 따른 향상된 부팅을 수행하는 방법의 흐름도가 도시된다. 도 3에 도시된 바와 같이, 방법(100)은 BIOS의 로직과 같은 펌웨어 로직으로 구현될 수 있다. 도시된 바와 같이, 방법(100)은 시스템 파워 온(블록 105)에서 시작한다. 이러한 시스템의 파워 온에 응답하여, 초기화가 수행될 수 있다(블록 110). 이러한 초기화는 CPU/칩셋의 초기화, 메모리의 발견, 하나 이상의 버스, 및 어쩌면 다른 특정 로우 레벨 하드웨어의 초기화를 트리거할 수 있다. 또한, 사전 부팅 환경의 실행, 예를 들어, 통합 확장 펌웨어 인터페이스(Unified Extensible Firmware Interface)(UEFI) 사전 부팅 환경이 발생할 수 있다. 이러한 사전 부팅 환경의 일부로서 시스템이 지연 인터페이스 초기화를 인에이블할지가 다이아몬드 모양(115)에서 판정될 수 있다. 본 발명의 범주는 이와 관련하여 한정되는 것은 아니지만, 일 실시예에서 이러한 판정은, 향상된 부팅이 인에이블 또는 디스에이블될지를 지시하는 BIOS 설정에 기초할 수 있다. 이러한 구성 설정은 사용자, OS, 또는 다른 엔티티에 의해 제어될 수 있다는 것에 유의한다. 시스템이 그러한 지연 인터페이스 초기화를 위해 구성되지 않은 경우, 제어는 광범위한 정상적 초기화가 계속될 수 있는 블록(120)으로 전달된다. 도 1과 관련하여 전술한 바와 같이, 이러한 초기화는 I/O 버스의 열거(enumeration) 및 초기화, 하드웨어 초기화, 폴링 등에 관련된 활동들을 포함할 수 있다.Referring now to FIG. 3, a flow diagram of a method for performing an enhanced boot in accordance with an embodiment of the present invention is shown. As shown in FIG. 3, the method 100 may be implemented with firmware logic, such as the logic of the BIOS. As shown, the method 100 begins at system power on (block 105). In response to the power-on of such a system, initialization may be performed (block 110). This initialization can trigger initialization of the CPU / chipset, discovery of memory, one or more buses, and possibly other initial low level hardware initialization. In addition, execution of the preboot environment, for example, a Unified Extensible Firmware Interface (UEFI) preboot environment, can occur. As part of this pre-boot environment, it can be determined in the diamond shape 115 whether the system will enable delayed interface initialization. The scope of the invention is not limited in this regard, but in one embodiment such a determination may be based on a BIOS setting that indicates whether enhanced booting is enabled or disabled. Note that such configuration settings may be controlled by a user, OS, or other entity. If the system is not configured for such delayed interface initialization, control is passed to block 120 where a wide range of normal initialization may be continued. As described above in connection with FIG. 1, such initialization may include activities related to enumeration and initialization of the I / O bus, hardware initialization, polling, and the like.

여전히 도 3을 참조하면, 다이아몬드 모양(115)으로부터, 향상된 부팅이 발생하는 것으로 판정되면, 제어는 입력 하드웨어(예를 들어, 키보드 또는 다른 디바이스)에 대한 인터페이스가 노출될 수 있는 블록(125)으로 전달된다. 이러한 동작은 메모리만의 동작이어서 제로 시간이 발생하며, 디바이스의 실제 초기화가 회피되고, 인터페이스의 광고(advertisement)만이 발생한다. 일 실시예에서, 이러한 인터페이스 광고는 UEFI 단순 텍스트 입력 프로토콜에 따른 것일 수 있다. 다음으로, 블록(125) 및 다이아몬드 모양(115) 모두로부터, 입력이 사용자로부터 요청되는지가 판정될 수 있는 다이아몬드 모양(130)으로 제어가 전달된다. 이러한 판정은 부팅이 인터럽트되어야 한다는 것을 나타내는 BIOS 설정에 기초할 수 있다. 일 실시예에서, 이러한 설정은, 사용자가 시스템의 다음 부팅을 인터럽트하고자 하는지를 나타내도록 플랫폼의 이전 파워 사이클(power cycle) 동안에 사용자에 의해 선택될 수 있다. 그러한 어떤 입력 요청도 발생하지 않으면, 제어는 OS 부트스트랩 코드가 론칭될 수 있는 블록(140)으로 직접 전달되고, 이는 일 실시예에서, 부팅 관리자를 통해 구현될 수 있다. 따라서, 제어는 OS 부팅이 종결될 수 있는 블록(150)으로 전달된다.Still referring to FIG. 3, if it is determined from the diamond shape 115 that an enhanced boot occurs, then control is transferred to block 125 where the interface to the input hardware (e.g., a keyboard or other device) . This operation is a memory only operation, zero time occurs, the actual initialization of the device is avoided, and only the advertisement of the interface occurs. In one embodiment, such an interface advertisement may be in accordance with the UEFI simple text input protocol. Next, control is transferred from the block 125 and the diamond shape 115 to the diamond shape 130 where it can be determined whether an input is requested from the user. This determination may be based on a BIOS setting indicating that booting should be interrupted. In one embodiment, this setting may be selected by the user during a previous power cycle of the platform to indicate whether the user intends to interrupt the next boot of the system. If no such input request occurs, control is passed directly to block 140 where OS bootstrap code can be launched, which, in one embodiment, can be implemented via the boot manager. Thus, control is passed to block 150 where the OS boot can be terminated.

여전히 도 3을 참조하면, 대신 입력이 사용자로부터 요청되면, 제어는 입력 디바이스를 위한 인터페이스가 호출될 수 있는 블록(160)으로 전달된다. 일 실시예에서, 이러한 인터페이스는 UEFI 단순 텍스트 입력 프로토콜에 따른 것일 수 있다. 이전에 노출된 인터페이스의 호출로 인해, 제어는, 예를 들면, PS/2, USB 또는 다른 프로토콜에 따라 입력 하드웨어가 초기화될 수 있는 블록(165)으로 전달된다. 이러한 초기화는 (예를 들면, 종래의 완전한 부팅 프로세스가 대신 선택되는 블록(120)에서 행해진 바와 같이) 하드웨어가 이전에 초기화되지 않은 상황에서 발생할 수 있다는 것을 유의한다.Still referring to FIG. 3, if an input is instead requested from the user, control is passed to block 160 where the interface for the input device can be invoked. In one embodiment, such an interface may be in accordance with the UEFI simple text input protocol. With the invocation of a previously exposed interface, control is passed to block 165 where the input hardware can be initialized according to, for example, PS / 2, USB or other protocols. Note that this initialization may occur in situations where the hardware has not been previously initialized (e.g., as was done in block 120 where a conventional full boot process is selected instead).

여전히 도 3을 참조하면, 다음으로, 제어는 요청이 서비스될 수 있고, 데이터가 반환될 수 있는 블록(170)으로 전달된다. 예를 들어, 사용자 키보드 입력의 맥락에서, 키보드 핸들러가 호출되어, 키보드 버퍼로부터 인입하는 키 스트로크를 획득하고, 입력으로서 이러한 데이터를 사용하는 BIOS 루틴과 같은 지정된 위치로 데이터를 반환할 수 있다. 다음으로 제어는 전술한 바와 같이, OS 부트스트랩 코드의 론칭을 위해 블록(150)으로 전달된다. 도 3의 실시예에서 이러한 하이 레벨에서 도시되어 있지만, 본 발명의 범주는 이와 관련하여 한정되지 않는다는 것을 이해한다.Still referring to FIG. 3, next, control is passed to block 170 where the request can be serviced and data can be returned. For example, in the context of a user keyboard input, a keyboard handler may be called to obtain the keystroke that is coming in from the keyboard buffer, and return the data to a specified location, such as a BIOS routine that uses this data as input. Control is then passed to block 150 for launching the OS bootstrap code, as described above. Although shown in this high level in the embodiment of FIG. 3, it is understood that the scope of the present invention is not limited in this regard.

이제 도 4를 참조하면, 본 발명의 실시예에 따른 펌웨어 및 향상된 부팅의 인터럽트 제어를 인에이블하는 것과 관련하여 수행되는 동작의 흐름도가 도시된다. 도 4에 도시된 바와 같이, 동작은 부분적으로는 OS가 존재하는(OS-present) 로직에 의해 그리고 부분적으로는 BIOS 로직에 의해 수행될 수 있다. 일반적으로, OS 로직은, 예를 들어, 진단 모드, BIOS 설정의 사용자 업데이트 등을 인에이블하기 위해 다음 부팅 업(boot up)이 인터럽트되도록 사용자가 플랫폼을 구성할 수 있게 하는데 이용될 수 있다. 차례로 BIOS 로직은 설정에 따라 향상된 부팅(또한 고성능 부팅 모드라고도 지칭함)이나 사용자 인터럽트 부팅 모드를 수행하는데 사용될 수 있다.Referring now to FIG. 4, there is shown a flow diagram of operations performed in conjunction with enabling firmware and enhanced interrupt control of an interrupt according to an embodiment of the present invention. As shown in Figure 4, operation may be performed in part by OS-present logic, and in part by BIOS logic. In general, the OS logic may be used to allow the user to configure the platform so that the next boot up is interrupted, e.g., to enable diagnostic mode, user update of BIOS settings, and the like. In turn, the BIOS logic can be used to perform enhanced boot (also referred to as high performance boot mode) or user interrupt boot mode, depending on the configuration.

도 4에 도시된 바와 같이, 방법(300)은, 일 실시예에서, OS의 제어판 사용자 인터페이스에 존재할 수 있는 BIOS 설정 제어판 애플릿을 사용자가 선택할지를 판정함으로써(다이아몬드 모양(305)에서) 시작할 수 있다. 그렇다면, 제어는 다음 부팅이 인터럽트되어야 한다는 것을 나타내기 위해 특정 애플리케이션 프로그래밍 인터페이스(API), 예를 들면, 세트 펌웨어 환경 변수(Set Firmware Environment Variable) API가 호출될 수 있는 블록(310)으로 전달된다. 이러한 설정 정보는, 일 실시예에서, OS를 사용하여 선택된 설정이 BIOS에 의해 추후 액세스될 수 있도록 메일박스(mailbox) 인터페이스로서 역할할 수 있는, OS 및 BIOS 모두에게 액세스가능한 공통 저장소인 공유 정적 변수 위치에 저장될 수 있다. 그리고 나서 제어는 재시작이 발생되어야 한다는 것을 애플릿 정책이 지시할 지가 판정될 수 있는 다이아몬드 모양(315)으로 전달된다. 그렇지 않다면, 정상 시스템 동작이 블록(320)에서 계속될 수 있다. 그렇지 않은 경우, 블록(330)에서 플랫폼 재시작이 발생할 수 있다. 도 4의 실시예는 사용자가 하나 이상의 펌웨어 환경 변수(예를 들어, UEFI 변수 등)를 설정하게 하는 제어판 프로그램의 애플릿의 사용을 보이고 있으나, 다른 실시예들에서 사용자 입력은 드라이버, 애플릿 또는 운영 체제와는 별도의 다른 소프트웨어 프로그램에 의해 입력될 수 있다는 것을 유의한다.As shown in Figure 4, the method 300 may begin (in diamond shape 305), in one embodiment, by determining whether the user will select a BIOS setup control panel applet that may reside in the control panel user interface of the OS . If so, control is passed to block 310 where a particular application programming interface (API) may be called, e.g., a Set Firmware Environment Variable API, to indicate that the next boot should be interrupted. This configuration information may be stored in a shared static variable, which in one embodiment is a common repository accessible to both the OS and the BIOS, which may serve as a mailbox interface so that the settings selected using the OS may later be accessed by the BIOS. Location. ≪ / RTI > Control is then passed to the diamond shape 315 where it can be determined whether the applet policy indicates that a restart should occur. Otherwise, normal system operation may continue at block 320. If not, a platform restart may occur at block 330. Although the embodiment of FIG. 4 illustrates the use of an applet of a control panel program that allows a user to set one or more firmware environment variables (e.g., UEFI variables, etc.), in other embodiments the user input may be a driver, an applet, But may be input by another software program separate from the software program.

여전히 도 4를 참조하면, 그러한 OS 제공 설정에 기초한 부팅 동안의 BIOS 동작은 이러한 플랫폼이 재시작하는 것에 응답하여 발생하거나 또는 시스템의 다음 부팅 업 시에 발생할 수 있다. 어느 경우에서든, 제어는 시스템이 파워 온될 수 있는 블록(340)으로 전달된다. 그리고 나서 제어는, 예를 들어, 전술한 바와 같이 플랫폼이 초기화될 수 있는 블록(345)으로 전달된다. 그리고 나서, 다이아몬드 모양(350)에서, 플랫폼이 조건부 고성능 부팅을 지원하도록 인에이블될지가 판정될 수 있다. 전술한 바와 같이, 이러한 조건부 고성능 부팅은 사용자 인터페이스 하드웨어와 같은 특정 하드웨어를 초기화하는 것의 오버헤드를 회피할 수 있다.Still referring to FIG. 4, the BIOS operation during boot based on such OS-provided settings may occur in response to such a platform restart or may occur at the next boot-up of the system. In either case, control is passed to block 340 where the system can be powered on. Control is then passed to block 345 where the platform may be initialized, for example, as described above. Then, in diamond shape 350, it can be determined whether the platform is enabled to support conditional high performance booting. As described above, such conditional high performance booting can avoid the overhead of initializing specific hardware, such as user interface hardware.

여전히 도 4를 참조하면, 플랫폼이 그렇게 인에이블된 경우, 제어는 고성능 부팅 모드가 선택되는지를 판정하기 위해 정적 변수 저장소로부터 액세스될 수 있는 정책 변수가 판독될 수 있는 블록(360)으로 전달된다. 즉, 어떠한 사용자 인터럽트도 발생하지 않는(또는 발생할 가능성 없는) 경우에, 본 발명의 실시예에 따른 향상된 부팅이 수행될 수 있다. 이러한 정책 변수는 일 실시예에서 사용자 인터럽트가 예상되거나, 또는 가능성이 있는지(사용자가 어떤 이유로 다음 부팅을 인터럽트할 것을 계획하고 있는 것을 의미함)를 나타내기 위한(플래그와 같은) 표시자일 수 있다. 이러한 변수는 OS가 존재하는 환경에서 공통적으로 액세스가능한 저장소 위치에 저장될 수 있다. 일 실시예에서, 이러한 저장소 위치는 플래시 NVM에 의해 백업되는 UEFI 변수와 같은, 휘발성 또는 비휘발성 메모리(NVM) 내의 임의의 그러한 공유 메모리 위치일 수 있다.Still referring to FIG. 4, if the platform is so enabled, control is passed to block 360 where a policy variable that can be accessed from the static variable store can be read to determine if a high performance boot mode is selected. That is, if no user interruption occurs (or is unlikely to occur), an enhanced boot according to an embodiment of the present invention can be performed. This policy variable may be an indicator (such as a flag) to indicate, in one embodiment, whether a user interrupt is expected or likely (meaning that the user is planning to interrupt the next boot for some reason). These variables can be stored in a commonly accessible storage location in an environment where the OS is present. In one embodiment, this repository location may be any such shared memory location in a volatile or nonvolatile memory (NVM), such as a UEFI variable backed up by a flash NVM.

부팅이 사용자 개시 부팅 인터럽트가 없는 고성능 모드에 있으면(다이아몬드 모양(365)에서 판정됨), 제어는 OS가 론칭될 수 있는 블록(390)으로 직접 전달된다. 그렇지 않으면, 제어는 블록(370)으로 전달된다(제어는 또한, 플랫폼이 고성능 또는 향상된 부팅을 위해 인에이블되지 않으면 전달된다). 블록(370)에서, 초기화가 계속될 수 있고, 이는 입력 디바이스를 프로빙(따라서 초기화)하기 위해 다양한 I/O 버스를 열거하는 것을 포함할 수 있다. 다음으로, 임의의 부팅 인터럽트가 수신되었는지가 다이아몬드 모양(375)에서 판정될 수 있다. 그렇다면, BIOS 메뉴의 디스플레이를 인에이블하는 주어진 BIOS 루틴, 예를 들어, 디스플레이 루틴과 같은 적절한 동작이 실행될 수 있다(블록(380)). 일 실시예에서, 이러한 디스플레이는 진단 스크린, BIOS 설정 사용자 인터페이스 메뉴 또는 다른 디스플레이일 수 있다. BIOS 메뉴는, 예를 들어, 다음의 옵션: 하드웨어를 구성하고; 시스템 클록을 설정하고, 및/또는 BIOS 사용자 인터페이스 기능 자체에 대한 액세스를 보호하고 악성 사용자가 인증되지 않은 주변 디바이스로부터 시스템을 부팅하는 것을 방지하기 위한 패스워드와 같은 다양한 패스워드 프롬프트를 설정하는 것 중 하나 이상을 포함할 수 있다. 물론, 이러한 메뉴에 응답하여, 사용자는 구성 업데이트, 클록 업데이트 등과 같은 특정 정보를 제공할 수 있다.If the boot is in a high performance mode with no user-initiated boot interrupt (determined in diamond shape 365), control is passed directly to block 390 where the OS may be launched. Otherwise, control is passed to block 370 (control is also delivered if the platform is not enabled for high performance or enhanced boot). At block 370, initialization may continue, which may include enumerating the various I / O buses to probe (and thus initialize) the input device. Next, it can be determined in diamond shape 375 whether any boot interrupt has been received. If so, then appropriate operations such as a given BIOS routine, e.g., a display routine, that enables display of the BIOS menu may be executed (block 380). In one embodiment, such a display may be a diagnostic screen, BIOS setup user interface menu, or other display. The BIOS menu, for example, includes the following options: configure the hardware; Establishing various password prompts such as passwords to set the system clock, and / or to protect access to the BIOS user interface function itself and to prevent malicious users from booting the system from unauthorized peripheral devices . ≪ / RTI > Of course, in response to these menus, the user can provide specific information such as configuration updates, clock updates, and the like.

그리고 나서 BIOS는 이러한 정보를 사용하여 구성의 저장 및 업데이트를 수행할 수 있다. 이러한 동작은, 예를 들어, BIOS 설정 메뉴에 대한 업데이트에 의한 단말기 상태이므로, 머신의 재시작이 발생하고, 따라서 제어는 블록(340)으로 전달될 수 있다(예시의 편의를 위해 도 4에 도시되지 않음).The BIOS can then use this information to perform storage and update of the configuration. This operation is a terminal state due to, for example, an update to the BIOS setup menu, so that a restart of the machine occurs and thus control can be passed to block 340 (for illustrative convenience, Not).

여전히 도 4를 참조하면, 어떠한 부팅 인터럽트도 다이아몬드 모양(375)에서 수신되지 않으면, 제어는 OS 론칭 이전에 플랫폼 특정 시간량이 경과했는지가 판정될 수 있는 다이아몬드 모양(385)으로 전달된다. 이러한 미리결정된 시간량은 플랫폼마다 다를 수 있고, 적어도 부분적으로는, OS가 론칭되기 전에 부팅 프로세싱에 대해 경과하도록 허용된 플랫폼 특정 최대 시간량에 기초할 수 있다. 그렇지 않으면, 제어는 블록(370)으로 되돌아 간다. 시간량이 경과했다면, 제어는 OS가 론칭될 수 있는 블록(390)으로 전달된다.Still referring to FIG. 4, if no boot interrupt is received in the diamond shape 375, control is passed to the diamond shape 385 where it is possible to determine if a platform specific amount of time has elapsed prior to launching the OS. This predetermined amount of time may vary from platform to platform and may be based, at least in part, on a platform-specific maximum amount of time allowed to elapse for boot processing before the OS is launched. Otherwise, control returns to block 370. If the amount of time has elapsed, control is passed to block 390 where the OS may be launched.

전술한 도면들은, 디폴트 동작이, 사용자가 향상된 프로세싱을 오버라이드하고 그 대신에 부팅이 인터럽트가능하게 되도록 선택하지 않았다면 I/O 디바이스에 질의하지 않는, 향상된, 보다 빠른 부팅 프로세스인 실시예를 예시한다. 그러나, 본 기술분야의 당업자는 디폴트 프로세싱은 정책의 문제이고 반대로 쉽게 구현될 수 있다고 인식할 것이다. 따라서, I/O 장치의 폴링이 디폴트 부팅 프로세싱의 일부이어야만 하는지의 선택은 플랫폼 정책의 문제이며, 상이한 실시예에 따라 다를 수 있다. 대안의 실시예들에 대하여, 디폴트 부팅 동작은 부팅 프로세싱 인터럽트를 제공하기 위해 I/O 디바이스에 대한 질의가 항상 발생하는 것이지만, 사용자는 그 대신에 사용자 오버라이드 프로세싱을 통해 보다 빠르고, 향상된 부팅 프로세싱(예를 들어, I/O 디바이스들에 대한 어떠한 폴링 또는 질의도 없는)을 수행하기로 선택할 수 있다.The foregoing figures illustrate an embodiment in which the default operation is an enhanced, faster boot process wherein the user does not query the I / O device unless it overrides the enhanced processing and instead selects the boot to be interruptible. However, those skilled in the art will recognize that default processing is a matter of policy and, conversely, can be easily implemented. Thus, the choice of whether the polling of the I / O device should be part of the default boot processing is a matter of platform policy, and may be different according to different embodiments. For alternative embodiments, the default boot operation is that a query to the I / O device always occurs to provide a boot processing interrupt, but the user may instead use user override processing to perform faster, enhanced boot processing For example, without any polling or querying of I / O devices).

따라서, 실시예들은 25%보다 크게 BIOS 내에서의 부팅 시간을 감소시키고, "인스턴트 온" 및 부팅 인터럽트 가능성의 상충되는 요건에 대처하는데 사용될 수 있다. 정상적인 부팅 거동으로서의 부팅 성능에 대한 그러한 증가는 미션 크리티컬(mission critical) 환경으로 진입하도록 의도되는 더 큰 플랫폼들에도 도움이 되고, 5개의 9(99.999% 가동시간(up-time))을 충족하는 요건을 갖는다. 부팅 속도는 99.999% 가동 시간 요건에 기인하는 인자이고, 플랫폼은 일년에 5분 30초 정도만 "다운"될 수 있다. 플랫폼이 재부팅될 필요가 있다면, 보다 빠른 재부팅이 보다 좋다.Thus, embodiments can be used to reduce the boot time within the BIOS to greater than 25% and to meet conflicting requirements of "instant on" and boot interruptability. Such an increase in boot performance as a normal booting behavior is also beneficial to larger platforms that are intended to enter mission critical environments and to meet the requirements of five to nine (99.999% up-time) Respectively. Boot speed is a factor due to 99.999% uptime requirements, and the platform can only be "down" for 5 minutes and 30 seconds a year. If the platform needs to be rebooted, a faster reboot is better.

이제 도 5를 참조하면, 제1 시스템(500a) 및 제2 시스템(500b)의 블록도 가 도시되며, 각각은 전술한 향상된 부팅 프로세싱의 실시예를 수행할 수 있다. 도 5에 도시된 바와 같이, 제1 시스템(500a)은 그래픽 메모리 제어기 허브(GMCH)(520)에 결합된 하나 이상의 프로세싱 구성요소(510, 515)를 포함할 수 있다. 추가적인 프로세싱 구성요소(515)의 선택적 본질이 도 5에 파선으로 명기된다.Referring now to FIG. 5, a block diagram of a first system 500a and a second system 500b is shown, each capable of performing an embodiment of the enhanced boot processing described above. As shown in FIG. 5, the first system 500a may include one or more processing components 510, 515 coupled to a graphics memory controller hub (GMCH) The optional nature of the additional processing component 515 is specified by the dashed line in FIG.

각각의 프로세싱 구성요소(510, 515)는 싱글 코어일 수 있거나, 대안적으로, 다수의 코어를 포함할 수 있다. 프로세싱 구성요소(510, 515)는, 통합된 메모리 제어기 및/또는 통합된 I/O 제어 로직과 같은 프로세싱 코어 이외에 다른 온 다이(on-die) 구성요소를 선택적으로 포함할 수 있다. 또한, 제1 시스템(500a)의 적어도 일 실시예에 대하여, 프로세싱 구성요소(510, 515)의 코어(들)은 코어당 하나보다 많은 하드웨어 스레드 콘텍스트(hardware thread context)를 포함할 수 있다는 점에서 멀티스레딩형일 수 있다.Each processing element 510, 515 may be a single core or, alternatively, may comprise multiple cores. The processing components 510 and 515 may optionally include other on-die components other than a processing core such as an integrated memory controller and / or integrated I / O control logic. It should also be appreciated that for at least one embodiment of the first system 500a, the core (s) of the processing components 510, 515 may comprise more than one hardware thread context per core May be multithreaded.

도 5는 GMCH(520)가, 예를 들어, 동적 랜덤 액세스 메모리(DRAM)일 수 있는 메모리(530)에 결합될 수 있다는 것을 예시한다. 적어도 일 실시예에 대하여, 메모리(530)는 운영 체제을 포함하는 코드 또는 명령어를 포함할 수 있다.FIG. 5 illustrates that the GMCH 520 may be coupled to memory 530, which may be, for example, a dynamic random access memory (DRAM). For at least one embodiment, memory 530 may include code or instructions that include an operating system.

GMCH(520)는 칩셋, 또는 칩셋의 일부일 수 있다. GMCH(520)은 프로세서(들)(510, 515)와 통신할 수 있고, 프로세서(들)(510, 515)과 메모리(530) 사이에서의 상호작용을 제어할 수 있다. GMCH(520)는 또한 프로세서(들)(510, 515)과 시스템(500a)의 다른 구성요소들 사이에서 가속 버스 인터페이스(accelerated bus interface)로서 역할할 수 있다. 적어도 일 실시예에 대하여, GMCH(520)는 프론트 사이드 버스(FSB)(595)와 같은 멀티 드롭 버스를 통해 프로세서(들)(510, 515)과 통신한다. 다른 실시예들에 대하여(예를 들면, 도 6 및 7 참조), GMCH(520)는 포인트-대-포인트 상호 접속을 통해 프로세서(들)(510, 515)과 통신한다.The GMCH 520 may be part of a chipset, or chipset. The GMCH 520 may communicate with the processor (s) 510, 515 and may control the interaction between the processor (s) 510, 515 and the memory 530. The GMCH 520 may also serve as an accelerated bus interface between the processor (s) 510, 515 and other components of the system 500a. For at least one embodiment, the GMCH 520 communicates with the processor (s) 510, 515 via a multidrop bus, such as a frontside bus (FSB) For other embodiments (e.g., see FIGS. 6 and 7), the GMCH 520 communicates with the processor (s) 510, 515 via a point-to-point interconnect.

또한, GMCH(520)는 (예를 들어, 평판 디스플레이 또는 터치 감지형 디스플레이 디바이스와 같은) 디스플레이(540)에 결합된다. GMCH(520)는 통합 그래픽 가속기를 포함할 수 있다. GMCH(520)는 다양한 주변 디바이스들을 시스템(500a)에 결합하는데 이용될 수 있는 입력/출력(I/O) 제어기 허브(ICH)(550)에 더 결합된다. 하나 이상의 키보드, 마우스 또는 숫자 키패드와 같은 다른 주변 디바이스(들)(570)와 함께 ICH(550)에 결합된 개별 그래픽 디바이스일 수 있는 외부 그래픽 디바이스(560)가 도 5의 실시예에서 예로써 예시된다.The GMCH 520 is also coupled to a display 540 (e.g., such as a flat panel display or a touch sensitive display device). The GMCH 520 may include an integrated graphics accelerator. The GMCH 520 is further coupled to an input / output (I / O) controller hub (ICH) 550 that may be used to couple various peripheral devices to the system 500a. An external graphics device 560, which may be a discrete graphics device coupled to the ICH 550 with other peripheral device (s) 570, such as one or more keyboard, mouse or numeric keypad, do.

대안적으로, 추가적인 또는 상이한 프로세싱 구성요소가 또한 제1 시스템(500a)에 존재할 수 있다. 예를 들어, 제2 시스템의 실시예(500b)와 관련하여 바로 아래에서 논의하는 특징들 중 임의의 것이 제1 시스템(500a)에 포함될 수 있다. 또한, 추가적인 프로세싱 구성요소(들)(515)은 프로세서(510)와 동일한 추가적인 프로세서(들), 프로세서(510)에 대해 이종(heterogeneous)이거나 비대칭(asymmetric)인 추가적인 프로세서(들), (예를 들어, 그래픽 가속기들 또는 디지털 신호 프로세싱(DSP) 유닛들과 같은) 가속기들, 필드 프로그램가능한 게이트 어레이 또는 임의의 다른 프로세싱 구성요소를 포함할 수 있다. 아키텍처, 마이크로아키텍처, 온도, 전력 소모 특성 등을 포함하는 다양한 가치 있는 측정 기준들(metrics)의 관점에서 물리적 자원들(510, 515) 간의 다양한 차이가 있을 수 있다. 이러한 차이는 프로세싱 구성요소들(510, 515) 간에서 비대칭성 및 이질성으로서 그들을 효과적으로 분명하게 나타낼 수 있다. 적어도 일 실시예에 대해, 다양한 프로세싱 구성요소(510, 515)는 동일한 다이 패키지에 존재할 수 있다.Alternatively, additional or different processing components may also be present in the first system 500a. For example, any of the features discussed immediately below in connection with the embodiment 500b of the second system may be included in the first system 500a. The additional processing component (s) 515 may also include additional processor (s) the same as processor 510, additional processor (s) that are heterogeneous or asymmetric to processor 510, A field programmable gate array or any other processing component, such as, for example, graphics accelerators or digital signal processing (DSP) units). There may be various differences between the physical resources 510, 515 in terms of various valuable metrics including architecture, microarchitecture, temperature, power consumption characteristics, and the like. This difference can effectively manifest them as asymmetry and heterogeneity among the processing components 510, 515. For at least one embodiment, the various processing components 510, 515 may reside in the same die package.

도 5는 제2 시스템(500b)이 하나 이상의 프로세싱 구성요소들(511)을 포함할 수 있다는 것을 또한 예시한다. 도 5에 도시된 제1 시스템(500a)과 같이, 시스템(500b)은 전자 디바이스(500b)를 원하는 대로 구성하도록 임의의 적절한 하드웨어 및/또는 소프트웨어를 사용하여 구현될 수 있는 전자 디바이스이다. 일 실시예에 대하여, 도 5는, 터치 감지형 디스플레이 디바이스(502), 하나 이상의 프로세서(511), 적어도 하나의 프로세서(511)에 결합된 시스템 제어 로직(504), 시스템 제어 로직(504)에 결합된 시스템 메모리(530), 시스템 제어 로직(504)에 결합된 비휘발성 메모리 및/또는 저장소 디바이스(들)(535), 및 시스템 제어 로직(504)에 결합된 하나 이상의 통신 인터페이스(506)를 포함하는 예시적인 시스템(500b)를 예시한다.Figure 5 also illustrates that the second system 500b may include one or more processing components 511. [ As with the first system 500a shown in FIG. 5, the system 500b is an electronic device that can be implemented using any suitable hardware and / or software to configure the electronic device 500b as desired. 5 illustrates a system 500 that includes a touch sensitive display device 502, one or more processors 511, system control logic 504 coupled to at least one processor 511, system control logic 504, Nonvolatile memory and / or storage device (s) 535 coupled to the system control logic 504 and one or more communication interfaces 506 coupled to the system control logic 504 Gt; 500b < / RTI >

터치 감지형 디스플레이 디바이스(502)(또한 본 명세서에서 "터치 스크린"이라고도 지칭함)는, 예를 들어 그리고 제한없이, 용량성, 저항성, 표면 음향파(SAW), 적외선 및 광학 이미징과 같은 임의의 적절한 터치 감지 기술을 이용하여 구현될 수 있다. 일 실시예를 위한 터치 감지형 디스플레이 디바이스(502)에 사용되는 터치 감지 기술은 그 표면 위에 실제 터치를 요구하지 않을 수 있으나, 그보다는 표면 근처의 물체의 존재를 감지할 수 있다. 그럼에도 불구하고 그러한 기술은 터치 감지 기술로 고려될 수 있는데, 그러한 기술은 마찬가지로 디스플레이 디바이스(502)의 표면 위에 실제로 터치하는 물체를 감지하기 때문이며, 전자 디바이스(500b)가 사용될 때 그러한 표면이 실제로 터치될 가능성이 있기 때문이다. 일 실시예에 대한 터치 감지형 디스플레이 디바이스(502)는 임의의 적절한 멀티 터치 기술을 사용하여 구현될 수 있다. 터치 감지형 디스플레이 디바이스(502)는, 예를 들어 액정 디스플레이(LCD)에 대한 것과 같은 임의의 적절한 디스플레이 기술을 사용하여 구현될 수 있는 디스플레이를 포함한다. 적어도 일 실시예에 대한 시스템 제어 로직(430)은 터치 감지형 디스플레이 디바이스(502)에 대해 하나 이상의 디스플레이 인터페이스를 제공하는 하나 이상의 그래픽 제어기를 포함할 수 있다.The touch sensitive display device 502 (also referred to herein as a "touch screen") may include any suitable suitable device, such as, for example and without limitation, capacitive, resistive, surface acoustic wave (SAW) Can be implemented using touch sensing technology. The touch sensing technology used in the touch sensitive display device 502 for one embodiment may not require an actual touch on its surface, but rather may sense the presence of an object near the surface. Nevertheless, such a technique can be considered as a touch sensing technique, since such a technique likewise senses an object that is actually touching the surface of the display device 502, and that surface is actually touched when the electronic device 500b is used There is a possibility. The touch sensitive display device 502 for one embodiment may be implemented using any suitable multitouch technology. The touch sensitive display device 502 includes a display that can be implemented using any suitable display technology, such as for example a liquid crystal display (LCD). The system control logic 430 for at least one embodiment may include one or more graphics controllers that provide one or more display interfaces for the touch sensitive display device 502. [

적어도 일 실시예에 대한 시스템 제어 로직(504)은 시스템 제어 로직(504)과 통신하는 적어도 하나의 프로세서(511) 및/또는 임의의 적절한 디바이스 또는 컴포넌트에 대해 임의의 적절한 인터페이스를 제공하는 임의의 적절한 인터페이스 제어기를 포함할 수 있다.The system control logic 504 for at least one embodiment includes at least one processor 511 that communicates with the system control logic 504 and / or any suitable suitable device that provides any suitable interface for any suitable device or component And an interface controller.

적어도 일 실시예에 대한 시스템 제어 로직(504)은 시스템 메모리(530)에 대해 인터페이스를 제공하는 하나 이상의 메모리 제어기를 포함할 수 있다. 시스템 메모리(530)는, 예를 들어, 시스템(500b)을 위한 데이터 및/또는 명령어들을 로딩 및 저장하는데 사용될 수 있다. 적어도 일 실시예에 대하여, 시스템 메모리(530)는 임의의 적절한 드라이버 소프트웨어, 응용 소프트웨어 및/또는 운영 체제 소프트웨어와 같은 임의의 적절한 소프트웨어(532)를 저장하는데 사용될 수 있다. 일 실시예에 대한 시스템 메모리(530)는, 예를 들어 적절한 동적 랜덤 액세스 메모리(DRAM)와 같은 임의의 적절한 휘발성 메모리를 포함할 수 있다.The system control logic 504 for at least one embodiment may include one or more memory controllers that provide an interface to the system memory 530. [ The system memory 530 may be used, for example, to load and store data and / or instructions for the system 500b. For at least one embodiment, system memory 530 may be used to store any suitable software 532, such as any suitable driver software, application software, and / or operating system software. The system memory 530 for one embodiment may include any suitable volatile memory, such as, for example, a suitable dynamic random access memory (DRAM).

적어도 일 실시예에 대한 시스템 제어 로직(504)은 터치 감지형 디스플레이 디바이스(502), 비휘발성 메모리 및/또는 저장소 디바이스(들)(535) 및 통신 인터페이스(들)(506)에 대해 인터페이스를 제공하기 위한 하나 이상의 입력/출력(I/O) 제어기을 포함할 수 있다.System control logic 504 for at least one embodiment provides an interface to touch sensitive display device 502, non-volatile memory and / or storage device (s) 535 and communication interface (s) One or more input / output (I / O) controllers may be included.

비휘발성 메모리 및/또는 저장소 디바이스(들)(535)은, 예를 들어, 데이터 및/또는 명령어를 저장하기 위해 사용될 수 있다. 비휘발성 메모리 및/또는 저장소 디바이스(들)(535)은, 예를 들어, 플래시 메모리와 같은 임의의 적절한 비휘발성 메모리를 포함할 수 있고/있거나 하나 이상의 하드 디스크 드라이브(HDD), 하나 이상의 컴팩트 디스크(CD) 드라이브 및/또는 하나 이상의 디지털 다용도 디스크(DVD) 드라이브와 같은 임의의 적절한 비휘발성 저장소 디바이스(들)을 포함할 수 있다. 적어도 일 실시예에 대하여, 비휘발성 메모리 및/또는 저장소 디바이스(들)(535)은 BIOS 프로세싱을 위한 명령어(537)를 저장하는 비휘발성 판독 전용 메모리(ROM)를 포함할 수 있다.Non-volatile memory and / or storage device (s) 535 may be used, for example, to store data and / or instructions. Non-volatile memory and / or storage device (s) 535 may comprise any suitable non-volatile memory, such as, for example, flash memory and / or may comprise one or more hard disk drives (HDD) (CD) drive and / or one or more digital versatile disk (DVD) drives. For at least one embodiment, non-volatile memory and / or storage device (s) 535 may include non-volatile read-only memory (ROM) that stores instructions 537 for BIOS processing.

통신 인터페이스(들)(506)은 하나 이상의 네트워크를 통해 통신하고/통신하거나 임의의 다른 적절한 디바이스와 통신하도록 시스템(500b)에 인터페이스를 제공할 수 있다. 통신 인터페이스(들)(506)은 임의의 적절한 하드웨어 및/또는 펌웨어를 포함할 수 있다. 일 실시예에 대한 통신 인터페이스(들)(506)은, 예를 들어, 네트워크 어댑터, 무선 네트워크 어댑터, 전화 모뎀, 및/또는 무선 모뎀을 포함할 수 있다. 무선 통신에 대하여, 일 실시예에 대한 통신 인터페이스(들)(506)은 하나 이상의 안테나(508)를 사용할 수 있다.The communication interface (s) 506 may provide an interface to the system 500b to communicate and / or communicate with one or more networks or with any other suitable device. The communication interface (s) 506 may comprise any suitable hardware and / or firmware. The communication interface (s) 506 for one embodiment may include, for example, a network adapter, a wireless network adapter, a telephone modem, and / or a wireless modem. For wireless communication, the communication interface (s) 506 for an embodiment may use one or more antennas 508. [

적어도 일 실시예에 대한 시스템 제어 로직(504)은, 예를 들어, 소리를 대응하는 디지털 신호로 변환하는 것을 돕고/돕거나 디지털 신호를 대응하는 소리로 변환하는 것을 돕는 오디오 디바이스, 카메라, 캠코더, 프린터, 및/또는 스캐너와 같은 임의의 적절한 입력/출력 디바이스(들)에 대한 인터페이스를 제공하기 위해 하나 이상의 입력/출력(I/O) 제어기를 포함할 수 있다.The system control logic 504 for at least one embodiment includes, for example, an audio device, a camera, a camcorder, a microphone, a microphone, a microphone, a microphone, a microphone, Output (I / O) controller to provide an interface to any suitable input / output device (s), such as a printer, printer, and / or scanner.

적어도 일 실시예에 대하여, 적어도 하나의 프로세서(511)는 시스템 제어 로직(504)의 하나 이상의 제어기를 위한 로직과 함께 패키징될 수 있다. 일 실시예에 대하여, 적어도 하나의 프로세서(511)는 시스템 인 패키지(System in Package)(SiP)를 형성하기 위하여 시스템 제어 로직(504)의 하나 이상의 제어기를 위한 로직과 함께 패키징될 수 있다. 일 실시예에 대하여, 적어도 하나의 프로세서(511)가 시스템 제어 로직(504)의 하나 이상의 제어기를 위한 로직과 동일한 다이 상에 집적될 수 있다. 일 실시예에 대하여, 적어도 하나의 프로세서(511)는 시스템 온 칩(SoC)을 형성하기 위하여 시스템 제어기 로직(504)의 하나 이상의 제어기 로직과 동일한 다이 상에 집적될 수 있다.For at least one embodiment, at least one processor 511 may be packaged with logic for one or more controllers of the system control logic 504. For one embodiment, at least one processor 511 may be packaged with logic for one or more controllers of the system control logic 504 to form a System in Package (SiP). For one embodiment, at least one processor 511 may be integrated on the same die as the logic for one or more controllers of the system control logic 504. For one embodiment, at least one processor 511 may be integrated on the same die as one or more controller logic of system controller logic 504 to form a system on chip (SoC).

시스템(500b)에서 사용되는 것으로 일 실시예에 대하여 설명하였으나, 다른 실시예에 대한 터치 감지형 디스플레이 디바이스(502)가 다른 시스템 구성에서 사용될 수 있다.Although one embodiment has been described as being used in system 500b, a touch sensitive display device 502 for other embodiments may be used in other system configurations.

이제 도 6을 참조하면, 본 발명의 실시예에 따른 제3 시스템 실시예(600)의 블록도가 도시된다. 도 6에 도시된 바와 같이, 멀티프로세서 시스템(600)은 포인트-대-포인트 상호 접속 시스템이며, 포인트-대-포인트 상호 접속(650)을 통해 결합된 제1 프로세싱 구성요소(670)와 제2 프로세싱 구성요소(680)를 포함한다. 도 6에 도시된 바와 같이, 프로세싱 구성요소(670 및 680)의 각각은 제1 및 제2 프로세서 코어(즉, 프로세서 코어(674a 및 674b)와 프로세서 코어(684a 및 684b))를 포함하는 멀티코어 프로세서일 수 있다.Referring now to FIG. 6, a block diagram of a third system embodiment 600 in accordance with an embodiment of the present invention is shown. 6, the multiprocessor system 600 is a point-to-point interconnect system and includes a first processing component 670 coupled via a point-to-point interconnect 650, And a processing component 680. [ 6, each of the processing components 670 and 680 may include a plurality of processor cores (e.g., processor cores 674a and 674b and processor cores 684a and 684b) Processor.

대안적으로, 프로세싱 구성요소(670, 680) 중 하나 이상은 가속기 또는 필드 프로그램가능한 게이트 어레이와 같은 프로세서 이외의 구성요소일 수 있다.Alternatively, one or more of the processing components 670, 680 may be components other than a processor, such as an accelerator or field programmable gate array.

오직 두개의 프로세싱 구성요소(670, 680)만이 도시되었으나, 첨부하는 특허청구범위의 범주는 그것으로 제한되지 않는다는 것이 이해되어야 한다. 다른 실시예에서, 주어진 프로세서 내에 하나 이상의 추가적인 프로세싱 구성요소가 존재할 수 있다.Although only two processing components 670 and 680 are shown, it should be understood that the scope of the appended claims is not limited thereto. In other embodiments, there may be one or more additional processing components in a given processor.

제1 프로세싱 구성요소(670)는 메모리 제어기 허브(MCH)(672)와 포인트-대-포인트(P-P) 인터페이스(676 및 678)를 포함할 수 있다. 마찬가지로, 제2 프로세싱 구성요소(680)는 MCH(682)와 P-P 인터페이스(686 및 688)를 포함할 수 있다. 도 6에 도시된 바와 같이, MCH(672 및 682)는 해당 프로세서들에 국부적으로 부착된 주 메모리의 부분들일 수 있는, 각각의 메모리, 즉 메모리(632) 및 메모리(634)에 프로세서들을 결합한다.The first processing component 670 may include a memory controller hub (MCH) 672 and a point-to-point (P-P) interface 676 and 678. Similarly, the second processing component 680 may include an MCH 682 and a P-P interface 686 and 688. 6, the MCHs 672 and 682 couple processors to respective memories, that is, memory 632 and memory 634, which may be portions of the main memory locally attached to the processors .

제1 프로세싱 구성요소(670) 및 제2 프로세싱 구성요소(680)는 각각, P-P 상호접속(652 및 654)을 통해 칩셋(690)에 결합될 수 있다. 도 6에 도시된 바와 같이, 칩셋(690)은 P-P 인터페이스(694 및 698)를 포함한다. 또한, 칩셋(690)은 고성능의 그래픽 엔진(638)과 칩셋(690)을 결합하는 인터페이스(692)를 포함한다. 일 실시예에서, 버스(639)는 칩셋(690)에 그래픽 엔진(638)을 결합하는데 사용될 수 있다. 대안적으로, 포인트-대-포인트 상호접속(639)은 이들 컴포넌트를 결합할 수 있다.The first processing component 670 and the second processing component 680 may be coupled to the chipset 690 via the P-P interconnects 652 and 654, respectively. As shown in FIG. 6, the chipset 690 includes P-P interfaces 694 and 698. The chipset 690 also includes an interface 692 that couples the chipset 690 with the high-performance graphics engine 638. In one embodiment, the bus 639 may be used to couple the graphics engine 638 to the chipset 690. Alternatively, the point-to-point interconnect 639 may combine these components.

차례로, 칩셋(690)은 인터페이스(696)를 통해 제1 버스(616)에 결합될 수 있다. 일 실시예에서, 첨부된 청구의 범위는 이것으로 한정되는 것은 아니지만, 제1 버스(616)는, PCI(Peripheral Component Interconnect) 버스, 또는 PCI 익스프레스 버스와 같은 버스 또는 다른 제3 세대 I/O 상호접속 버스일 수 있다.In turn, the chipset 690 may be coupled to the first bus 616 via interface 696. [ In one embodiment, the first bus 616 may be a Peripheral Component Interconnect (PCI) bus, or a bus such as a PCI Express bus or other third generation I / O interconnect Connection bus.

도 6에 도시된 바와 같이, 다양한 I/O 디바이스(614)가 제1 버스(616)를 제2 버스(620)에 결합하는 버스 브릿지(618)과 함께 제1 버스(616)에 결합될 수 있다. 일 실시예에서, 제2 버스(620)는 핀 수가 적은(low pin count)(LPC) 버스일 수 있다. 예를 들어, 일 실시예에서, 키보드 및/또는 마우스(622), 통신 디바이스(626) 및 코드(630)를 포함할 수 있는 디스크 드라이브 또는 다른 대용량 저장소 디바이스와 같은 데이터 저장소 유닛(628)을 포함하는 다양한 디바이스들이 제2 버스(620)에 결합될 수 있다. 코드(630)는 전술한 방법들 중 하나 이상의 실시예들을 수행하기 위한 명령어들을 포함할 수 있다. 또한, 오디오 I/O(624)는 제2 버스(620)에 결합될 수 있다. 다른 아키텍처가 가능하다는 것을 유의한다. 예를 들어, 도 6의 포인트-대-포인트 아키텍처 대신에 시스템은 멀티 드랍 버스 또는 또 다른 그러한 아키텍처를 구현할 수 있다.6, various I / O devices 614 may be coupled to the first bus 616 with a bus bridge 618 coupling the first bus 616 to the second bus 620 have. In one embodiment, the second bus 620 may be a low pin count (LPC) bus. For example, in one embodiment, a data storage unit 628, such as a disk drive or other mass storage device, which may include a keyboard and / or mouse 622, communication device 626 and code 630 May be coupled to the second bus 620. The code 630 may include instructions for performing one or more of the methods described above. The audio I / O 624 may also be coupled to the second bus 620. Note that other architectures are possible. For example, instead of the point-to-point architecture of FIG. 6, the system may implement a multi-drop bus or another such architecture.

이제 도 7을 참조하면, 본 발명의 실시예에 따른 제4 시스템 실시예(700)의 블록도가 도시된다. 도 6 및 7에서 유사한 구성요소들은 유사한 참조번호들을 갖고 있으며, 도 6의 특정 양태는 도 7의 다른 양태를 모호하게 하지 않도록 도 7로부터 생략되었다.Referring now to FIG. 7, a block diagram of a fourth system embodiment 700 in accordance with an embodiment of the present invention is shown. Similar components in Figs. 6 and 7 have similar reference numerals, and certain aspects of Fig. 6 have been omitted from Fig. 7 to avoid obscuring the other aspects of Fig.

도 7은 프로세싱 구성요소(670, 680)가 집적된 메모리 및 I/O 제어 로직("CL")(672 및 682)를 각각 포함할 수 있는 것을 예시한다. 적어도 일 실시예에 대하여, CL(672, 682)은 도 5 및 6과 관련하여 전술한 것과 같은 메모리 제어기 허브 로직(MCH)을 포함할 수 있다. 또한, CL(672, 682)은 I/O 제어 로직도 포함할 수 있다. 도 7은 CL(672, 682)에 결합된 메모리(632, 634)뿐만 아니라, I/O 디바이스(714)가 또한 제어 로직(672, 682)에 결합될 수 있다는 것을 예시한다. 레거시 I/O 디바이스(715)는 칩셋(690)에 결합될 수 있다.7 illustrates that the processing components 670 and 680 may include integrated memory and I / O control logic ("CL") 672 and 682, respectively. For at least one embodiment, CLs 672 and 682 may include a memory controller hub logic (MCH) as described above with respect to FIGS. 5 and 6. The CLs 672 and 682 may also include I / O control logic. 7 illustrates that I / O device 714 may also be coupled to control logic 672, 682 as well as memory 632, 634 coupled to CL 672, 682. Legacy I / O device 715 may be coupled to chipset 690.

본 명세서에서 개시된 메커니즘의 실시예들은 하드웨어, 소프트웨어, 펌웨어, 또는 그러한 구현 접근법들의 조합으로 구현될 수 있다. 실시예들은 적어도 하나의 프로세서, (휘발성 및/또는 비휘발성 메모리 및/또는 저장소 구성요소를 포함하는) 데이터 저장소 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스를 포함하는 프로그램 가능한 시스템상에서 실행되는 컴퓨터 프로그램으로서 구현될 수 있다.Embodiments of the mechanisms disclosed herein may be implemented in hardware, software, firmware, or a combination of such implementation approaches. Embodiments may be implemented on a programmable system including at least one processor, a data storage system (including volatile and / or nonvolatile memory and / or storage components), at least one input device, and at least one output device Lt; / RTI >

도 6에 예시된 코드(630)와 같은 프로그램 코드는, 본 명세서에서 설명된 기능들을 수행하고 출력 정보를 생성하도록 입력 데이터에 적용될 수 있다. 예를 들어, 프로그램 코드(630)는 도 3 및 4에서 예시된 실시예들을 수행하도록 코딩된 운영 체제 및/또는 BIOS를 포함할 수 있다. 따라서, 본 발명의 실시예들은 본 발명의 동작을 수행하는 명령어들을 포함하거나, 본원에 설명된 구조, 회로, 장치, 프로세서 및/또는 시스템 특징을 정의하는 HDL과 같은 설계 데이터를 포함하는 머신 액세스 가능한 매체를 또한 포함한다. 그러한 실시예들은 또한 프로그램 제품으로서 지칭될 수 있다.Program code, such as code 630 illustrated in FIG. 6, may be applied to the input data to perform the functions described herein and to generate output information. For example, program code 630 may include an operating system and / or a BIOS coded to perform the embodiments illustrated in Figures 3 and 4. Accordingly, embodiments of the present invention may be embodied in many different forms and forms without departing from the spirit or scope of the invention as defined by the following claims, including instructions for performing the operations of the present invention, or machine-accessible instructions including design data such as HDL, Media. Such embodiments may also be referred to as program products.

그러한 머신 액세스 가능한 저장 매체는, 하드 디스크와 같은 비일시적 저장 매체, 플로피 디스크, 광학 디스크, 컴팩트 디스크 판독 전용 메모리(CD-ROM), 컴팩트 디스크 재기입 가능(CD-RW), 및 광자기 디스크를 포함하는 임의의 다른 유형의 디스크, 판독 전용 메모리(ROM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM)와 같은 랜덤 액세스 메모리(RAM), 소거가능 프로그램가능 판독 전용 메모리(EPROM), 플래시 메모리, 전기적 소거가능 프로그램가능 판독 전용 메모리(EEPROM)와 같은 반도체 디바이스, 자성 또는 광학 카드, 또는 전자 명령어들을 저장하는데 적절한 임의의 유형의 매체를 포함하는, 머신 또는 디바이스에 의해 제조 또는 형성되는 물품의 실체적 구성을 제한 없이 포함할 수 있다.Such a machine-accessible storage medium may be a non-volatile storage medium such as a hard disk, a floppy disk, an optical disk, a compact disk read only memory (CD-ROM), a compact disk rewritable (CD- (ROM), dynamic random access memory (DRAM), random access memory (RAM) such as static random access memory (SRAM), erasable programmable read only memory (EPROM) , A semiconductor device such as a flash memory, an electrically erasable programmable read only memory (EEPROM), a magnetic or optical card, or any type of medium suitable for storing electronic instructions. The actual construction of the article can be included without limitation.

이하의 예들은 추가 실시예에 관한 것이다. 일 실시예에서, 시스템은 프로세서, 프로세서에 결합된 적어도 하나의 사용자 입력 하드웨어 디바이스, 및 프로세서의 초기화를 수행하고, 시스템의 구성에 기초하여 적어도 하나의 사용자 입력 하드웨어 디바이스에 대한 인터페이스를 노출하지만 적어도 하나의 사용자 입력 하드웨어 디바이스를 초기화하지 않고, 적어도 하나의 사용자 입력 하드웨어 디바이스의 초기화 없이 OS를 론칭하기 위해 OS 부트스트랩 코드를 론칭하는 제1 루틴을 포함하는 사전 부팅 코드를 저장하는 비휘발성 저장소를 포함한다.The following examples relate to further embodiments. In one embodiment, a system includes a processor, at least one user input hardware device coupled to the processor, and a processor for performing initialization of the processor and exposing an interface to at least one user input hardware device based on the configuration of the system, And a non-volatile store that stores a pre-boot code that includes a first routine that launches the OS bootstrap code to initialize the OS without initializing at least one user input hardware device without initializing the user input hardware device of the at least one user input hardware device .

일 실시예에서, 시스템은 시스템의 다음 부팅이 사용자 입력에 의해 인터럽트되어야 하는지를 나타내기 위한 표시자를 저장하는 제2 저장소를 더 포함한다. 프로세서는 제2 저장소에 저장된 표시자에 액세스하고, 표시자가 시스템의 다음 부팅이 인터럽트되어야 한다는 것을 나타내는 경우, 적어도 하나의 사용자 입력 하드웨어 디바이스를 초기화할 수 있다. 또한, 프로세서는, 초기화 후에 그리고 적어도 하나의 사용자 입력 하드웨어 디바이스를 통한 사용자 입력의 수신 없이 미리결정된 시간 후에 OS 부트스트랩 코드를 론칭한다. 사전 부팅 코드는 적어도 하나의 사용자 입력 하드웨어 디바이스를 통해 구성 업데이트를 수신하고, 저장소에 구성 업데이트를 저장하고, 그 후 시스템이 재시작되게 하는 제2 루틴을 포함할 수 있다. 표시자가 시스템의 다음 부팅이 인터럽트되지 않을 것임을 나타내는 경우, 프로세서는 적어도 하나의 사용자 입력 디바이스의 초기화없이 OS 부트스트랩 코드를 바로 론칭할 수 있다.In one embodiment, the system further comprises a second storage for storing an indicator for indicating whether the next boot of the system should be interrupted by user input. The processor accesses the indicator stored in the second depot and can initialize the at least one user input hardware device if the indicator indicates that the next boot of the system should be interrupted. The processor also launches the OS bootstrap code after a predetermined time without initialization and no user input via at least one user input hardware device. The preboot code may include a second routine to receive a configuration update via at least one user input hardware device, store the configuration update in the repository, and then cause the system to be restarted. If the indicator indicates that the next boot of the system is not to be interrupted, the processor can immediately launch the OS bootstrap code without initializing at least one user input device.

다른 실시예에서, 방법은, 컴퓨터 시스템의 프로세서를 초기화하는 컴퓨터 시스템의 초기화를 수행하는 단계; 사전 부팅 코드의 구성에 기초하여 컴퓨터 시스템의 사용자 입력 하드웨어 디바이스에 대한 인터페이스를 노출하지만, 사용자 입력 하드웨어 디바이스를 초기화하지 않는 것을 포함하는, 프로세서의 사전 부팅 코드를 실행하는 단계; 및 사용자 입력 하드웨어 디바이스를 초기화하지 않고 OS를 론칭하기 위해 OS 부트스트랩 코드를 론칭하는 단계를 포함한다.In another embodiment, a method includes performing an initialization of a computer system that initializes a processor of the computer system; Executing pre-boot code of the processor, including exposing an interface to a user input hardware device of the computer system based on the configuration of the pre-boot code, but not initializing the user input hardware device; And launching the OS bootstrap code to launch the OS without initializing the user input hardware device.

방법은, 사용자로부터의 입력이 OS 부트스트랩 코드를 론칭하기 이전에 요청되는지를 판정하는 단계와, 요청된 경우, 사용자 입력 하드웨어 디바이스에 대한 인터페이스를 호출하는 단계를 더 포함할 수 있다. 사용자 입력 하드웨어 디바이스는 인터페이스를 호출하는 것에 응답하여 초기화될 수 있다. 사용자 입력 하드웨어 디바이스를 초기화한 후에, 사용자 인터페이스 핸들러를 통해 사용자 입력 하드웨어 디바이스로부터 데이터가 획득될 수 있고, 이는 사전 부팅 코드에 제공될 수 있다. 사용자로부터의 입력이 요청되는지를 판정하는 것은, 사전 부팅 코드의 실행 동안에 사용자 인터럽트가 예상되는지를 나타내는 정적 변수에 액세스하는 것을 포함할 수 있다. 일 실시예에서, 사전 부팅 코드의 구성은 사용자에 의해 제어된다. 사용자는, 컴퓨터 시스템의 이전 파워 사이클 동안에 사전 부팅 코드 내의 설정을 업데이트하여, 사용자 입력 하드웨어 디바이스로 하여금 컴퓨터 시스템의 다음 파워 사이클에서 OS 부트스트랩 코드를 론칭하기 이전에 초기화되게 할 수 있다. 컴퓨터 시스템의 다음 부팅이 사용자 입력에 의해 인터럽트되어야 하는지를 나타내는 표시자가 컴퓨터 시스템에 저장될 수 있고, 따라서, 방법은 다음 부팅 동안에 표시자에 액세스하는 단계, 및 표시자가 컴퓨터 시스템의 다음 부팅이 인터럽트되어야 한다는 것을 나타낼 경우, 다음 부팅 동안에 사용자 입력 하드웨어 디바이스를 초기화하는 단계를 포함한다.The method may further include determining whether input from the user is requested prior to launching the OS bootstrap code, and, if so, invoking an interface to the user input hardware device. The user input hardware device may be initialized in response to invoking the interface. After initializing the user input hardware device, data can be obtained from the user input hardware device via the user interface handler, which can be provided to the pre-boot code. Determining whether input from a user is requested may include accessing a static variable that indicates whether a user interrupt is expected during execution of the preboot code. In one embodiment, the configuration of the pre-boot code is controlled by the user. The user may update the settings in the pre-boot code during the previous power cycle of the computer system to cause the user input hardware device to be initialized before launching the OS bootstrap code in the next power cycle of the computer system. An indicator indicating whether the next boot of the computer system should be interrupted by user input may be stored in the computer system and thus the method may include accessing the indicator during the next boot and indicating that the next boot of the computer system should be interrupted , It initializes the user input hardware device during the next boot.

또 다른 실시예에서, 적어도 하나의 컴퓨터 판독가능한 매체는 명령어들을 포함하고, 명령어들은 실행될 때 컴퓨터 시스템이, 컴퓨터 시스템의 구성에 기초하여, 사전 부팅 환경 동안에 컴퓨터 시스템의 사용자 입력 하드웨어 디바이스에 대한 인터페이스를 노출하지만, 사용자 입력 하드웨어 디바이스를 초기화하지 않고; 사용자 입력 하드웨어 디바이스의 초기화 이전에 컴퓨터 시스템의 부팅 환경에서 OS를 론칭하기 위해 OS 부트스트랩 코드를 론칭하게 한다.In yet another embodiment, at least one computer readable medium includes instructions that, when executed, cause the computer system to perform the steps of: providing an interface to a user input hardware device of the computer system during a preboot environment, Exposing but without initializing user input hardware devices; Allows the OS bootstrap code to be launched to launch the OS in the boot environment of the computer system prior to initialization of the user input hardware device.

매체는, 컴퓨터 시스템의 저장소에 저장된 표시자가 컴퓨터 시스템의 다음 부팅이 인터럽트되지 않을 것임을 나타내는 경우, 사용자 입력 하드웨어 디바이스의 초기화 이전에 컴퓨터 시스템이 OS 부트스트랩 코드를 바로 론칭하게 하는 명령어들을 더 포함할 수 있다. 명령어들은 또한, 컴퓨터 시스템이, 저장소에 저장된 표시자에 액세스하고, 표시자가 시스템의 다음 부팅이 인터럽트되어야 한다는 것을 나타내는 경우 사용자 입력 하드웨어 디바이스를 초기화하고, 초기화 후에 그리고 사용자 입력 하드웨어 디바이스를 통한 사용자 입력의 수신 없이 미리결정된 시간 후에, OS 부트스트랩 코드를 론칭하게 한다. 명령어들은 또한 컴퓨터 시스템이 사용자 입력 하드웨어 디바이스를 통해 구성 업데이트를 수신하고, 구성 업데이트를 저장소에 저장하게 하고, 그 후에 컴퓨터 시스템이 재시작되게 한다. 그리고 명령어들은 또한, 컴퓨터 시스템이, 인터페이스를 호출하여 사용자 입력 하드웨어 디바이스를 초기화하고, 사용자 입력 하드웨어 디바이스의 초기화 후에, 사용자 인터페이스 핸들러를 통해 사용자 입력 하드웨어 디바이스로부터 구성 업데이트에 대응하는 데이터를 획득하게 할 수 있다.The medium may further comprise instructions to cause the computer system to immediately launch the OS bootstrap code prior to initialization of the user input hardware device if the indicator stored in the repository of the computer system indicates that the next boot of the computer system is not to be interrupted have. The instructions may also be used to initialize a user input hardware device if the computer system accesses an indicator stored in the depot and the indicator indicates that the next boot of the system should be interrupted, After a predetermined time without reception, the OS bootstrap code is launched. The instructions also cause the computer system to receive the configuration update via the user input hardware device and store the configuration update in the repository, after which the computer system is restarted. The instructions may also cause the computer system to initialize the user input hardware device by invoking the interface and, after initialization of the user input hardware device, obtain data corresponding to the configuration update from the user input hardware device via the user interface handler have.

출력 정보는 공지된 방식으로, 하나 이상의 출력 디바이스에 인가될 수 있다. 이러한 응용을 위해, 프로세싱 시스템은, 예를 들어, 디지털 신호 프로세서(DSP), 마이크로제어기, 주문형 집적 회로(application specific integrated circuit)(ASIC), 또는 마이크로프로세서와 같은 프로세서를 갖는 임의의 시스템을 포함한다.The output information may be applied to one or more output devices in a known manner. For such applications, the processing system includes any system having a processor, such as, for example, a digital signal processor (DSP), a microcontroller, an application specific integrated circuit (ASIC) .

프로그램은 고수준 절차적 또는 객체 지향적 프로그래밍 언어로 구현되어 프로세싱 시스템과 통신할 수 있다. 프로그램은 또한, 원한다면, 어셈블리 또는 머신 언어로 구현될 수 있다. 사실, 본 명세서에서 설명된 메커니즘은 그 범주에 있어서 임의의 특정 프로그래밍 언어로 한정되는 것은 아니다. 어떤 경우든, 언어는 컴파일되거나 해석되는 언어일 수 있다.The program may be implemented in a high-level procedural or object-oriented programming language to communicate with the processing system. The program may also be implemented in assembly or machine language, if desired. In fact, the mechanisms described herein are not limited to any particular programming language in that category. In any case, a language can be a language that is compiled or interpreted.

본 발명이 제한된 수의 실시예와 관련하여 설명되었으나, 본 기술분야의 당업자는 그로부터의 다양한 변경 및 변형들을 이해할 것이다. 첨부하는 특허청구범위는, 본 발명의 진정한 사상 및 범주에 들어오는 모든 그러한 변경들 및 변형들을 포함하는 것으로 의도된다.Although the present invention has been described in connection with a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. The appended claims are intended to cover all such changes and modifications that come within the true spirit and scope of the invention.

Claims (20)

시스템으로서,
프로세서 수단;
상기 프로세서 수단에 결합된 적어도 하나의 사용자 입력 하드웨어 수단; 및
상기 프로세서 수단의 초기화를 수행하고, 상기 시스템의 구성에 기초하여 상기 적어도 하나의 사용자 입력 하드웨어 수단에 대한 인터페이스를 노출하지만 상기 적어도 하나의 사용자 입력 하드웨어 수단을 초기화하지 않고, 상기 적어도 하나의 사용자 입력 하드웨어 수단의 초기화 없이 운영 체제(OS)를 론칭하기 위해 OS 부트스트랩 코드를 론칭하는 제1 루틴을 포함하는 사전 부팅 코드를 저장하는 비휘발성 저장소 수단
을 포함하는 시스템.
As a system,
Processor means;
At least one user input hardware means coupled to the processor means; And
Means for performing initialization of the processor means and exposing an interface to the at least one user input hardware means based on the configuration of the system but without initializing the at least one user input hardware means, Non-volatile storage means for storing pre-boot code comprising a first routine for launching OS bootstrap code for launching an operating system (OS)
≪ / RTI >
제1항에 있어서,
상기 시스템의 다음 부팅이 사용자 입력에 의해 인터럽트되어야 하는지를 나타내는 표시자를 저장하는 제2 저장소 수단을 더 포함하는 시스템.
The method according to claim 1,
And second storage means for storing an indicator indicating whether the next boot of the system should be interrupted by user input.
제2항에 있어서,
상기 프로세서 수단은, 상기 제2 저장소 수단에 저장된 표시자에 액세스하고, 상기 표시자가 상기 시스템의 다음 부팅이 인터럽트되어야 한다는 것을 나타내는 경우, 상기 적어도 하나의 사용자 입력 하드웨어 수단을 초기화하는 시스템.
3. The method of claim 2,
Wherein the processor means accesses an indicator stored in the second storage means and initializes the at least one user input hardware means if the indicator indicates that the next boot of the system should be interrupted.
제3항에 있어서,
상기 프로세서 수단은, 상기 초기화 후에 그리고 상기 적어도 하나의 사용자 입력 하드웨어 수단을 통한 사용자 입력의 수신 없이 미리결정된 시간 후에, 상기 OS 부트스트랩 코드를 론칭하는 시스템.
The method of claim 3,
Wherein the processor means launches the OS bootstrap code after a predetermined time without receiving the user input after the initialization and through the at least one user input hardware means.
제3항에 있어서,
상기 사전 부팅 코드는, 상기 적어도 하나의 사용자 입력 하드웨어 수단을 통해 구성 업데이트를 수신하여 상기 구성 업데이트를 저장소 수단에 저장하고, 그 후 상기 시스템이 재시작되게 하는 제2 루틴을 포함하는 시스템.
The method of claim 3,
Wherein the preboot code comprises a second routine for receiving a configuration update via the at least one user input hardware means and storing the configuration update in storage means and thereafter causing the system to be restarted.
제2항에 있어서,
상기 프로세서 수단은, 상기 표시자가 상기 시스템의 다음 부팅이 인터럽트되지 않을 것임을 나타내는 경우, 상기 적어도 하나의 사용자 입력 하드웨어 수단의 초기화 없이 상기 OS 부트스트랩 코드를 바로 론칭하는 시스템.
3. The method of claim 2,
Wherein the processor means immediately launches the OS bootstrap code without initialization of the at least one user input hardware means if the indicator indicates that the next boot of the system is not to be interrupted.
방법으로서,
컴퓨터 시스템의 초기화를 수행하여 상기 컴퓨터 시스템의 프로세서를 초기화하는 단계;
상기 프로세서의 사전 부팅 코드를 실행하는 단계 - 이 단계는, 상기 사전 부팅 코드의 구성에 기초하여, 상기 컴퓨터 시스템의 사용자 입력 하드웨어 디바이스에 대한 인터페이스를 노출하지만, 상기 사용자 입력 하드웨어 디바이스를 초기화하지 않는 것을 포함함 - ; 및
상기 사용자 입력 하드웨어 디바이스를 초기화하지 않고 운영 체제(OS)를 론칭하기 위해 OS 부트스트랩 코드를 론칭하는 단계
를 포함하는 방법.
As a method,
Initializing a processor of the computer system by performing an initialization of the computer system;
Executing a preboot code of the processor, the step of exposing an interface to a user input hardware device of the computer system based on the configuration of the preboot code but not initializing the user input hardware device Included -; And
Launching an OS bootstrap code to launch an operating system (OS) without initializing the user input hardware device
≪ / RTI >
제7항에 있어서,
상기 OS 부트스트랩 코드를 론칭하기 이전에 사용자로부터의 입력이 요청되는지를 판정하는 단계와, 요청된 경우, 상기 사용자 입력 하드웨어 디바이스에 대한 인터페이스를 호출하는 단계를 더 포함하는 방법.
8. The method of claim 7,
Determining whether input from a user is requested prior to launching the OS bootstrap code; and if so, invoking an interface to the user input hardware device.
제8항에 있어서,
상기 인터페이스를 호출하는 단계에 응답하여 상기 사용자 입력 하드웨어 디바이스를 초기화하는 단계를 더 포함하는 방법.
9. The method of claim 8,
Further comprising: initializing the user input hardware device in response to invoking the interface.
제9항에 있어서,
상기 사용자 입력 하드웨어 디바이스를 초기화한 후에, 사용자 인터페이스 핸들러를 통해 상기 사용자 입력 하드웨어 디바이스로부터 데이터를 획득하는 단계를 더 포함하는 방법.
10. The method of claim 9,
Further comprising: after initializing the user input hardware device, obtaining data from the user input hardware device via a user interface handler.
제10항에 있어서,
상기 사전 부팅 코드에 상기 데이터를 제공하는 단계를 더 포함하는 방법.
11. The method of claim 10,
And providing the data to the pre-boot code.
제8항에 있어서,
상기 사용자로부터의 입력이 요청되는지를 판정하는 단계는 상기 사전 부팅 코드의 실행 동안에 사용자 인터럽트가 예상되는지를 나타내는 정적 변수에 액세스하는 것을 포함하는 방법.
9. The method of claim 8,
Wherein determining whether input from the user is requested comprises accessing a static variable indicating whether a user interrupt is expected during execution of the preboot code.
제7항에 있어서,
상기 사전 부팅 코드의 구성은 사용자에 의해 제어되는 방법.
8. The method of claim 7,
Wherein the configuration of the preboot code is controlled by a user.
제13항에 있어서,
상기 컴퓨터 시스템의 다음 파워 사이클에서 상기 OS 부트스트랩 코드를 론칭하기 이전에 상기 사용자 입력 하드웨어 디바이스가 초기화되게 하도록 상기 컴퓨터 시스템의 이전 파워 사이클 동안에 상기 사전 부팅 코드 내의 설정을 사용자가 업데이트하게 하는 단계를 더 포함하는 방법.
14. The method of claim 13,
Further comprising the step of allowing the user to update the settings in the preboot code during a previous power cycle of the computer system to cause the user input hardware device to be initialized prior to launching the OS bootstrap code in the next power cycle of the computer system Methods of inclusion.
제7항에 있어서,
상기 컴퓨터 시스템의 다음 부팅이 사용자 입력에 의해 인터럽트되어야 하는지를 나타내는 표시자를 상기 컴퓨터 시스템에 저장하는 단계, 상기 다음 부팅 동안에 상기 표시자에 액세스하는 단계, 및 상기 표시자가 상기 컴퓨터 시스템의 상기 다음 부팅이 인터럽트되어야 한다는 것을 나타내는 경우, 상기 다음 부팅 동안에 상기 사용자 입력 하드웨어 디바이스를 초기화하는 단계를 더 포함하는 방법.
8. The method of claim 7,
Storing an indicator in the computer system indicating whether a next boot of the computer system should be interrupted by user input, accessing the indicator during the next boot, and if the indicator indicates that the next boot of the computer system is interrupted And if so, initializing the user input hardware device during the next boot.
컴퓨터 시스템으로서,
상기 컴퓨터 시스템의 구성에 기초하여, 사전 부팅 환경 동안에 상기 컴퓨터 시스템의 사용자 입력 하드웨어 디바이스에 대한 인터페이스를 노출하지만, 상기 사용자 입력 하드웨어 디바이스를 초기화하지 않는 수단; 및
상기 사용자 입력 하드웨어 디바이스의 초기화 이전에 상기 컴퓨터 시스템의 부팅 환경에서 운영 체제(OS)를 론칭하기 위해 OS 부트스트랩 코드를 론칭하는 수단
을 포함하는 컴퓨터 시스템.
As a computer system,
Means for exposing an interface to a user input hardware device of the computer system during a preboot environment based on the configuration of the computer system but not initializing the user input hardware device; And
Means for launching an OS bootstrap code to launch an operating system (OS) in a boot environment of the computer system prior to initialization of the user input hardware device
≪ / RTI >
제16항에 있어서,
상기 컴퓨터 시스템의 저장소에 저장된 표시자가, 상기 컴퓨터 시스템의 다음 부팅이 인터럽트되지 않을 것임을 나타내는 경우, 상기 사용자 입력 하드웨어 디바이스의 초기화 이전에 상기 OS 부트스트랩 코드를 바로 론칭하는 수단을 더 포함하는 컴퓨터 시스템.
17. The method of claim 16,
Further comprising means for launching the OS bootstrap code immediately prior to initialization of the user input hardware device if the indicator stored in the repository of the computer system indicates that the next boot of the computer system is not to be interrupted.
제17항에 있어서,
상기 저장소에 저장된 상기 표시자에 액세스하고, 상기 표시자가 상기 시스템의 다음 부팅이 인터럽트되어야 한다는 것을 나타내는 경우, 상기 사용자 입력 하드웨어 디바이스를 초기화하고, 상기 초기화 후에 그리고 상기 사용자 입력 하드웨어 디바이스를 통한 사용자 입력의 수신 없이 미리결정된 시간 후에, 상기 OS 부트스트랩 코드를 론칭하는 수단을 더 포함하는 컴퓨터 시스템.
18. The method of claim 17,
Accessing the indicator stored in the repository and initializing the user input hardware device if the indicator indicates that the next boot of the system should be interrupted; And means for launching the OS bootstrap code after a predetermined time without reception.
제16항에 있어서,
상기 사용자 입력 하드웨어 디바이스를 통해 구성 업데이트를 수신하여 상기 구성 업데이트를 저장소에 저장하고, 그 후 상기 컴퓨터 시스템이 재시작되게 하는 수단을 더 포함하는 컴퓨터 시스템.
17. The method of claim 16,
Further comprising means for receiving a configuration update via the user input hardware device and storing the configuration update in a repository, after which the computer system is restarted.
제19항에 있어서,
상기 인터페이스를 호출하여 상기 사용자 입력 하드웨어 디바이스를 초기화하고, 상기 사용자 입력 하드웨어 디바이스의 초기화 후에, 사용자 인터페이스 핸들러를 통해 상기 사용자 입력 하드웨어 디바이스로부터 상기 구성 업데이트에 대응하는 데이터를 획득하는 수단을 더 포함하는 컴퓨터 시스템.
20. The method of claim 19,
Further comprising means for invoking the interface to initialize the user input hardware device and to obtain data corresponding to the configuration update from the user input hardware device via a user interface handler after initialization of the user input hardware device. system.
KR1020147021299A 2012-01-30 2013-01-24 Method for reducing platform boot times by providing lazy input/output abstractions KR101609385B1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261592269P 2012-01-30 2012-01-30
US61/592,269 2012-01-30
US13/718,060 2012-12-18
US13/718,060 US9262178B2 (en) 2012-01-30 2012-12-18 Method for reducing platform boot times by providing lazy input/output abstractions
PCT/US2013/022856 WO2013116073A1 (en) 2012-01-30 2013-01-24 Method for reducing platform boot times by providing lazy input/output abstractions

Publications (2)

Publication Number Publication Date
KR20140110021A KR20140110021A (en) 2014-09-16
KR101609385B1 true KR101609385B1 (en) 2016-04-06

Family

ID=48871361

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147021299A KR101609385B1 (en) 2012-01-30 2013-01-24 Method for reducing platform boot times by providing lazy input/output abstractions

Country Status (8)

Country Link
US (1) US9262178B2 (en)
EP (1) EP2810158A4 (en)
JP (1) JP5893173B2 (en)
KR (1) KR101609385B1 (en)
CN (1) CN104067223B (en)
AU (1) AU2013215466B2 (en)
BR (1) BR112014018761A8 (en)
WO (1) WO2013116073A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677372A (en) * 2012-09-25 2014-03-26 神讯电脑(昆山)有限公司 Touch control display method and electronic device thereof
CN103677373B (en) 2012-09-25 2018-08-10 神讯电脑(昆山)有限公司 Touch control display method and its electronic device
CN103729133A (en) 2012-10-16 2014-04-16 神讯电脑(昆山)有限公司 Touch display method and electronic device using same
US10776130B2 (en) * 2014-07-10 2020-09-15 Harman International Industries, Incorporated Operating system startup acceleration
KR102388836B1 (en) * 2014-07-10 2022-04-20 하만인터내셔날인더스트리스인코포레이티드 Operating system startup acceleration
US9563439B2 (en) * 2015-04-27 2017-02-07 Dell Products, L.P. Caching unified extensible firmware interface (UEFI) and/or other firmware instructions in a non-volatile memory of an information handling system (IHS)
KR102103593B1 (en) * 2019-07-29 2020-04-23 김창석 Method and Apparatus for Driving External Operating System
US11507383B2 (en) * 2020-03-10 2022-11-22 Dell Products L.P. Configurable boot paths
CN111897597A (en) * 2020-07-23 2020-11-06 湖北达峰汽车智能控制系统有限公司 Electronic gear shifter with active initialization function, active initialization method thereof and vehicle

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040093489A1 (en) * 2002-11-12 2004-05-13 Mitac Technology Corp. System and method for quick boot and application switching for a computer system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5950002A (en) * 1996-08-13 1999-09-07 General Electric Company Learn mode script generation in a medical imaging system
US5815731A (en) 1996-10-31 1998-09-29 International Business Machines Corporation Method and system for providing device driver configurations on demand
KR100283243B1 (en) 1998-05-11 2001-03-02 구자홍 How to boot the operating system
US6507906B1 (en) * 1999-09-09 2003-01-14 International Business Machines Corporation Method and system for selection of a boot mode using unattended boot sequencing
US6718461B1 (en) 2000-04-28 2004-04-06 Intel Corporation Booting processor-based systems
US6721885B1 (en) 2000-09-08 2004-04-13 International Business Machines Corporation Reducing start-up time and avoiding customer-induced system failures for personal computers
JP2003084981A (en) * 2001-09-11 2003-03-20 Seiko Epson Corp Booting method for information processor
US20040049560A1 (en) 2002-09-09 2004-03-11 Shudong Zhou Method and apparatus for configuring a computer system to operate with perhiperal devices
JP2004199128A (en) * 2002-12-16 2004-07-15 Matsushita Electric Ind Co Ltd Information processor and method for speeding up starting time of the information processor
ITTO20030079A1 (en) * 2003-02-06 2004-08-07 Infm Istituto Naz Per La Fisi Ca Della Mater PROCEDURE AND SYSTEM FOR THE IDENTIFICATION OF A SUBJECT
US7506152B2 (en) * 2003-08-11 2009-03-17 Lg Electronics Inc. Convertible computer with selective loading of an operating system based on a tablet or notebook mode
US7533274B2 (en) 2003-11-13 2009-05-12 International Business Machines Corporation Reducing the boot time of a TCPA based computing system when the core root of trust measurement is embedded in the boot block code
US7568090B2 (en) * 2005-06-23 2009-07-28 Hewlett-Packard Development Company, L.P. Speedy boot for computer systems
US8103908B2 (en) * 2007-12-28 2012-01-24 Intel Corporation Method and system for recovery of a computing environment during pre-boot and runtime phases
EP2289181B1 (en) * 2008-05-30 2020-03-18 Arris Group, Inc. Fast initialization of multi-mode devices
US8296553B2 (en) * 2008-11-19 2012-10-23 Intel Corporation Method and system to enable fast platform restart
CN102073513B (en) * 2009-11-25 2013-09-11 中兴通讯股份有限公司 Method, device and system for installing operating system
CN102200916B (en) * 2010-03-26 2014-12-31 联想(北京)有限公司 Electronic equipment, configurable member and method for storing configuration information of configurable member
JP5593856B2 (en) * 2010-06-02 2014-09-24 富士通株式会社 Information processing apparatus and driver execution control method
US20120159136A1 (en) * 2010-12-16 2012-06-21 Rothman Michael A Computer system boot enhancements with user override

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040093489A1 (en) * 2002-11-12 2004-05-13 Mitac Technology Corp. System and method for quick boot and application switching for a computer system

Also Published As

Publication number Publication date
CN104067223B (en) 2018-03-13
WO2013116073A1 (en) 2013-08-08
WO2013116073A9 (en) 2013-09-26
CN104067223A (en) 2014-09-24
AU2013215466B2 (en) 2015-12-03
EP2810158A4 (en) 2015-09-16
EP2810158A1 (en) 2014-12-10
BR112014018761A2 (en) 2017-06-20
JP2015505118A (en) 2015-02-16
US20130198502A1 (en) 2013-08-01
KR20140110021A (en) 2014-09-16
JP5893173B2 (en) 2016-03-23
US9262178B2 (en) 2016-02-16
AU2013215466A1 (en) 2014-07-31
BR112014018761A8 (en) 2017-07-11

Similar Documents

Publication Publication Date Title
KR101609385B1 (en) Method for reducing platform boot times by providing lazy input/output abstractions
EP2601588B1 (en) Providing fast non-volatile storage in a secure environment
US7689817B2 (en) Methods and apparatus for defeating malware
US20120159136A1 (en) Computer system boot enhancements with user override
US20120036308A1 (en) Supporting a secure readable memory region for pre-boot and secure mode operations
EP2080093B1 (en) Trusted platform module management system and method
JP2014527674A (en) Virtual high privilege mode for system administration requests
US9417886B2 (en) System and method for dynamically changing system behavior by modifying boot configuration data and registry entries
US20160275290A1 (en) Dynamic Firmware Module Loader in a Trusted Execution Environment Container
US7080244B2 (en) System and method for configuring hardware devices using a menu for platforms with EFI and legacy option-ROMs
CN114035842A (en) Firmware configuration method, computing system configuration method, computing device and equipment
EP2433238B1 (en) Systems and methods of determining a trust level from system management mode
US10684904B2 (en) Information handling systems and methods to selectively control ownership of a hardware based watchdog timer (WDT)
KR101759411B1 (en) Security co-processor boot performance
US9778936B1 (en) Booting a computing system into a manufacturing mode
US20110225408A1 (en) Cache boot mechanism
US11803454B2 (en) Chained loading with static and dynamic root of trust measurements
TWI709081B (en) Electronic device and fast booting method thereof
US11847226B1 (en) Baseboard Management Controller (BMC)-based security processor
US20240037237A1 (en) System and method for flexible startup of data processing systems
US20190079596A1 (en) System and method of supporting a pointing device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
LAPS Lapse due to unpaid annual fee