KR101626433B1 - 시스템 변경 후 컴퓨팅 장치의 적절한 동작을 확인하는 방법 및 시스템 - Google Patents

시스템 변경 후 컴퓨팅 장치의 적절한 동작을 확인하는 방법 및 시스템 Download PDF

Info

Publication number
KR101626433B1
KR101626433B1 KR1020147026221A KR20147026221A KR101626433B1 KR 101626433 B1 KR101626433 B1 KR 101626433B1 KR 1020147026221 A KR1020147026221 A KR 1020147026221A KR 20147026221 A KR20147026221 A KR 20147026221A KR 101626433 B1 KR101626433 B1 KR 101626433B1
Authority
KR
South Korea
Prior art keywords
computing device
bios
operating system
system change
change
Prior art date
Application number
KR1020147026221A
Other languages
English (en)
Other versions
KR20140125878A (ko
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 KR20140125878A publication Critical patent/KR20140125878A/ko
Application granted granted Critical
Publication of KR101626433B1 publication Critical patent/KR101626433B1/ko

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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • 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
    • 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/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures

Landscapes

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

Abstract

시스템 변경을 자동화된 방식으로 적용하고 시스템 변경 후에 컴퓨팅 장치의 정확한 동작을 확인하는 방법 및 시스템은, 오퍼레이팅 시스템 및 BIOS 컴포넌트를 이용하여, 컴퓨팅 장치가 시스템 변경을 적어도 일시적으로 적용하고 시스템 변경이 성공적인지를 결정하고 성공적이지 않으면 시스템 변경을 폐기할 기회를 허용하는 것을 포함한다.

Description

시스템 변경 후 컴퓨팅 장치의 적절한 동작을 확인하는 방법 및 시스템{METHOD AND SYSTEM FOR VERIFYING PROPER OPERATION OF A COMPUTING DEVICE AFTER A SYSTEM CHANGE}
가끔, 컴퓨팅 장치는 적절 및/또는 효율적인 동작을 유지하기 위하여 시스템 레벨 변경을 요구할 수 있다. 이러한 변경의 예는 BIOS에 대한 변경, 프로세서 마이크로코드에 대한 패치, 펌웨어 업데이트, 보안 패치, 구성 변경 및/또는 기타를 포함할 수 있다. 그러나, 시스템 변경을 구현함으로써, 컴퓨팅 장치가 동작 불가능 상태에 진입할 수 있다. 결과적으로, 시스템 레벨 변경을 자동화된(예를 들어, 무인) 방식으로 수행하면 위험할 수 있다. 실제로, 컴퓨팅 장치가 자동화된 시스템 변경에 대한 요청을 수신하면, 시스템 변경을 설치하는 잠재적인 이득에도 불구하고, 시스템 불량의 위험을 일으키지 않기 위해 요청은 무시되거나 거부될 수 있다.
여기에 기재된 발명은 첨부된 도면에서 단지 예로서 도시되며 제한을 위해 도시되지 않는다. 도시의 간략화 및 명료화를 위하여, 도면에 도시된 엘리먼트는 반드시 일정한 비율로 그려지지 않는다. 예를 들어, 일부의 엘리먼트의 치수는 명료화를 위하여 다른 엘리먼트에 비하여 과장될 수 있다. 또한, 적절하다면, 도면 중에서 해당 또는 유사한 엘리먼트를 지시하는데 참조 번호가 반복된다.
도 1은 컴퓨팅 장치의 적어도 하나의 실시예의 간략화된 블록도.
도 2는 도 1의 컴퓨팅 장치의 동작 페이즈 및 동작 모드의 적어도 하나의 실시예의 간략화된 모듈 다이어그램.
도 3은 프리부팅(pre-boot) 프로세스 동안 적어도 2개의 가능한 시스템 구성 중의 어느 것이 적용될지를 결정하는 방법의 적어도 하나의 실시예의 간략화된 흐름도.
도 4는 시스템 변경을 개시하는 방법의 적어도 하나의 실시예의 간략화된 흐름도.
도 5는 펜딩(pending) 시스템 변경에 관련된 통신을 핸들링하는 방법의 적어도 하나의 실시예의 간략화된 흐름도.
도 6은 펜딩 시스템 변경을 확인(verify)하는 방법의 적어도 하나의 실시예의 간략화된 흐름도.
본 개시물의 개념은 다양한 변경 및 대안 형태로 변경될 수 있지만, 그 특정한 예시적인 실시예는 도면에서 예로서 도시되고 여기에 상세히 설명한다. 그러나, 본 개시물의 개념은 개시된 특정한 형태로 제한되는 것으로 의도되지 않고, 반대로, 의도는 첨부된 청구범위에 의해 정의된 본 발명의 사상 및 범위 내의 모든 변형, 동등물 및 대안을 커버한다.
다음의 설명에서, 본 개시물의 더 철저한 이해를 제공하기 위하여, 로직 구현, 오피코드(opcodes), 오퍼랜드를 특정하는 수단, 자원 분할/공유/복제 구현, 시스템 컴포넌트의 타입 및 상관성(interrelationship) 및 로직 분할/통합 선택 등의 수많은 세부사항이 제시된다. 그러나, 당업자는 본 개시물의 실시예가 이러한 특정 세부사항 없이도 실행될 수 있음을 인정할 것이다. 다른 예에서, 본 발명을 모호하게 하지 않도록, 제어 구조, 게이트 레벨 회로 및 전체 소프트웨어 명령 시퀀스는 상세히 도시되지 않는다. 당업자는 포함되는 설명으로 과도한 실험없이 적절한 기능을 구현할 수 있다.
명세서 내의 "일 실시예", "실시예", "예시적인 실시예" 등에 대한 참조는 기재된 실시예가 특정 특징, 구조 또는 특성을 포함하지만 모든 실시예가 특정 특징, 구조 또는 특성을 반드시 포함하는 것은 아닐 수 있다는 것을 나타낸다. 또한, 이러한 구는 반드시 동일한 실시예를 참조하는 것은 아니다. 또한, 특정 특징, 구조 또는 특성이 실시예와 관련하여 기재할 때, 명료하게 기재되든 그렇지 않든 이러한 특징, 구조 또는 특성은 당업자의 지식 내에서 다른 실시예와 결합하여 효과를 발휘할 수 있다.
본 발명의 실시예는 하드웨어, 펌웨어, 소프트웨어 또는 그 임의의 조합으로 구현될 수 있다. 컴퓨터 시스템에서 구현되는 본 발명의 실시예는 컴포넌트 간의 하나 이상의 버스 기반 상호접속 및/또는 컴포넌트 간의 하나 이상의 포인트간 상호 접속을 포함할 수 있다. 본 발명의 실시예는 하나 이상의 프로세서에 의해 판독되고 실행될 수 있는 일시적 또는 비일시적 머신 판독가능 매체에 의해 전달되거나 그 상에 저장되는 명령으로서 구현될 수 있다. 머신 판독가능 매체는 머신(예를 들어, 컴퓨팅 장치)에 의해 판독가능한 형태로 정보를 저장 또는 송신하는 임의의 장치, 메카니즘 또는 물리적 구조물로서 구현될 수 있다. 예를 들어, 머신 판독가능 매체는 ROM(read only memory), RAM(random access memory), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 장치, 미니 또는 마이크로 SD 카드, 메모리 스틱, 전기 신호 및 기타로서 구현될 수 있다.
도면에서, 장치, 모듈, 명령 블록 및 데이터 엘리먼트를 나타내는 것 등의 개략 엘리먼트의 특정 배열(arrangement) 또는 순서(ordering)는 설명의 편의를 위하여 도시될 수 있다. 그러나, 당업자는 도면의 개략적 엘리먼트의 특정 순서 또는 배열은 프로세싱의 특정 순서 또는 시퀀스 또는 프로세스의 분리가 요구되는 것을 암시하는 것을 의미하지 않음을 이해해야 한다. 또한, 도면 내의 개략적 엘리먼트의 포함은 이러한 엘리먼트가 모든 실시예에서 요구되는 것을 암시하는 것을 의미하지 않고 이러한 엘리먼트에 의해 표현되는 특징이 임의의 실시예에서 포함되지 않거나 다른 엘리먼트와 결합될 수 있다.
일반적으로, 명령 블록을 나타내는 데 사용되는 개략적 엘리먼트는 소프트웨어 또는 펌웨어 애플리케이션, 프로그램, 기능, 모듈, 루틴, 프로세스, 절차, 플러그인, 애플릿(applet), 위젯, 코드 프레그먼트(code fragments) 및/또는 기타 등의 머신 판독가능 명령의 임의의 적절한 형태를 이용하여 구현될 수 있고 각각의 이러한 명령은 임의의 적절한 프로그래밍 언어, 라이브러리, 애플리케이션 프로그래밍 인터페이스(API) 및/또는 다른 소프트웨어 개발 툴을 이용하여 구현될 수 있다. 예를 들어, 임의의 실시예는 머신 레벨 명령, C, C++ 및/또는 다른 프로그래밍 언어를 이용하여 구현될 수 있다.
마찬가지로, 데이터 또는 정보를 표현하는데 사용되는 개략적 엘리먼트는 레지스터, 데이터 스토어, 테이블, 레코드, 어레이, 인덱스, 해쉬(hash), 맵, 트리, 리스트, 그래프, (임의의 파일 타입의) 파일, 폴더, 디렉토리, 데이터베이스 및/또는 기타 등의 임의의 적합한 전자 배열 또는 구조를 이용하여 구현될 수 있다.
또한, 도면에서, 실선, 파선 또는 화살표 등의 엘리먼트 접속부는 2 이상의 다른 개략적 엘리먼트 간의 접속, 관계 또는 연관성을 나타내는데 사용되고, 임의의 이러한 접속 엘리먼트의 부재는 접속, 관계 또는 연관성이 존재하지 않는 것을 암시하는 것을 의미하지 않는다. 즉, 엘리먼트 간의 접속, 관계 또는 연관성은 본 개시물을 모호하게 하지 않기 위하여 도면에 도시되지 않을 수 있다. 또한, 도시의 편의를 위하여, 단일 접속 엘리먼트가 엘리먼트 간의 다수 접속, 관계 또는 연관성을 나타내는데 사용될 수 있다. 예를 들어, 접속 엘리먼트가 신호, 데이터 또는 명령의 전달을 나타내는 경우, 당업자는 이러한 엘리먼트가 필요에 따라 전달을 수행하는 하나 또는 다수의 신호 경로(예를 들어, 버스)를 나타낼 수 있음을 이해해야 한다.
도 1을 참조하면, 시스템 변경의 구현 후에 컴퓨팅 장치(100)의 적절한 동작을 확인하는 예시적인 시스템이 O/S 에이전트(130) 및 BIOS/SMI 로직(134)으로서 구현된다. 이하에서 상세히 설명하는 바와 같이, O/S 에이전트(130)는 BIOS/SMI 로직(134)과 통신하여 시스템 변경이 적어도 일시적으로 컴퓨팅 장치(100) 상에서 자동화된 방식으로(예를 들어, 인간 개입 없이) 설치되도록 허용한다. 시스템 변경의 설치가 성공적이지 않으면, O/S 에이전트(130) 및 BIOS/SMI 로직(134)은 오퍼레이팅 시스템(128)이 이전(프리-시스템 변경(pre-system change)) 구성으로 안전하게 복귀하도록 허용한다. 이 방식으로, 시스템 레벨 변경은 시스템 불량의 위험성이 감소된 상태에서 자동화된 방식으로 구현될 수 있다.
컴퓨팅 장치(100)는, 제한없이, 모바일 장치, 개인 휴대 단말기, 모바일 컴퓨팅 장치, 스마트 폰, 셀룰러 전화, 핸드셋, 일방향 페이저, 양방향 페이저, 메시징 장치, 컴퓨터, 퍼스널 컴퓨터(PC), 데스크탑 컴퓨터, 랩탑 컴퓨터, 노트북 컴퓨터, 핸드헬드 컴퓨터, 태블릿 컴퓨터, 서버, 서버 어레이 또는 서버 팜(server farm), 웹 서버, 네트워크 서버, 인터넷 서버, 워크 스테이션, 미니 컴퓨터, 메인 프레임 컴퓨터, 수퍼컴퓨터, 네트워크 어플라이언스, 웹 어플라이언스, 분산 컴퓨팅 시스템, 멀티프로세서 시스템, 프로세서 기반 시스템, 소비자 전자장치, 프로그래머블 소비자 전자장치, 텔레비전, 디지털 텔레비전, 셋탑 박스, 무선 액세스 포인트, 기지국, 가입자 스테이션, 모바일 가입자 센터, 무선 네트워크 제어기, 라우터, 허브, 게이트웨어, 브리지, 스위치, 머신 또는 이들의 임의의 조합을 포함할 수 있는 임의의 타입의 전자 장치로서 구현될 수 있다. 도시된 컴퓨팅 장치(100)는 적어도 하나의 메모리(112) 및 입출력(I/O) 서브시스템(114)에 통신가능하게 결합된 적어도 하나의 프로세서(110)를 포함한다. 컴퓨팅 장치(100)는 특정한 애플리케이션에 따라 예를 들어 데스크탑 컴퓨터, 랩탑 또는 태블릿 컴퓨터, 서버, 기업 컴퓨터 시스템, 컴퓨터의 네트워크, 모바일 또는 핸드헬드 컴퓨팅 장치 또는 컴퓨팅 능력을 갖는 (임의의 사이즈 형태 인자의) 다른 전자 장치 등의 임의의 타입의 컴퓨팅 장치로 구현될 수 있다.
예시적인 프로세서(110)는 적어도 하나의 프로세서 코어(126)를 포함한다. 캐쉬 메모리의 양에 더하여, 메모리(112)는 동적 랜덤 액세스 메모리 장치(DRAM), 동기 동적 랜덤 액세스 메모리 장치(SDRAM), 더블 데이터 레이트 동적 랜덤 액세스 메모리 장치(DDR SDRAM) 및/또는 다른 휘발성 메모리 장치 등의 임의의 타입의 적절한 메모리 장치로서 구현될 수 있다.
임의의 실시예에서, I/O 서브시스템(114)은 메모리 제어기(예를 들어, 메모리 제어기 서브시스템 또는 노스브리지(northbridge)) 및/또는 입출력 제어기(예를 들어, 입출력 제어기 또는 서브시스템 또는 사우스브리지(southbridge))(미도시)를 포함할 수 있다. 다른 실시예에서, 다른 구성을 갖는 I/O 서브시스템이 사용될 수 있다. 예를 들어, 임의의 실시예에서, I/O 서브시스템(114)은 SoC(system on a chip)의 일부를 형성할 수 있고, 단일 집적 회로 칩 상에 프로세서(110) 및 컴퓨팅 장치(100)의 다른 컴포넌트와 함께 포함될 수 있다. 이처럼, 임의의 실시예에서, I/O 서브시스템(114)의 각 컴포넌트가 공통 집적 회로 칩 상에 위치할 수 있을 것으로 인식된다.
예시적인 I/O 서브시스템(114)은 메모리(112), 적어도 하나의 데이터 저장 장치(116), 적어도 하나의 펌웨어 장치(118), 인터럽트 제어기(120), 타이머(122) 및, 선택적으로, 하나 이상의 주변 장치(들)(124)에 통신가능하게 결합된다. 데이터 저장 장치(116)의 일부는 디스크 저장장치(예를 들어, 하드 디스크), 물리 및/또는 논리 저장 장치의 네트워크 및/또는 기타 등의 데이터 및/또는 컴퓨터 명령을 저장하는 임의의 적절한 장치로 구현될 수 있다. 예시적인 실시예에서, 오퍼레이팅 시스템(O/S)(128), O/S 에이전트(130) 및 하나 이상의 소프트웨어 애플리케이션(들)(136)이 데이터 저장장치(116)에 상주한다. 오퍼레이팅 시스템(128)은 예를 들어, 마이크로소프트 윈도우, 리눅스, 애플 IOS 또는 다른 오퍼레이팅 시스템 또는 임의의 실시예에서 개별, 핸드헬드 또는 포터블 전자 장치 등의 소정 타입의 컴퓨팅 장치를 위해 특별히 설계될 수 있는 명령의 다른 유사한 세트일 수 있다. 상술한 예시적인 오퍼레이팅 시스템은 각각의 소유자의 등록 또는 미등록 상표일 수 있다. 소프트웨어 애플리케이션(들)(136)은 임의적일 수 있는데, 임의의 실시예에서, 예를 들어, 개별, 핸드헬드 또는 포터블 전자 장치 등의 소정의 타입의 컴퓨팅 장치를 위해 특수 설계되거나 컴퓨팅 장치(100) 상에서 실행가능한 임의의 소프트웨어 애플리케이션일 수 있다. 오퍼레이팅 시스템(128), O/S 에이전트(130) 및/또는 소프트웨어 애플리케이션(들)(136)의 일부가 더 빠른 프로세싱을 위해 또는 다른 이유로 동작 동안 메모리(112)에 카피될 수 있다.
예시적인 펌웨어 장치(118)는 플래시 메모리 등의 리드 온리 메모리(ROM) 장치 또는 비휘발성 메모리로서 구현된다. 예시적인 실시예에서, 펌웨어 장치(118)는 BIOS/SMI 로직(134), 데이터, 명령 및/또는 다른 정보를 포함하는 기본 입출력 시스템(BIOS)(132)으로서 일반적으로 알려진 루틴의 세트를 저장한다. BIOS/SMI 로직(134)은 도 2에 도시되고 이하에서 설명하는 BIOS 조기 부팅(early-boot) 로직(222) 및 BIOS/SMI 런타임 로직(232)을 포함한다.
예시적인 BIOS(132)는 컴퓨팅 장치(100)가 오퍼레이팅 시스템(128)을 시작하고 I/O 서브시스템(114)에 결합된 다양한 다른 장치(들)와 통신할 수 있게 한다. 특정 프로세서 아키텍쳐에 따라, UEFI(unified extensible firmware interface) 또는 다른 명령이 BIOS 대신 사용될 수 있지만, 설명의 편의를 위하여, BIOS라는 용어는 여기에서 더 일반적으로 BIOS, UEFI 또는 임의의 이러한 유사한 메카니즘을 나타내는데 사용될 수 있다. 동작 동안, BIOS(132) 및/또는 BIOS/SMI 로직(134)의 일부는 더 빠른 실행 또는 다른 이유로 메모리(112)에 카피될 수 있다.
설명의 편의를 위하여 별도로 도시되지만, 다양한 실시예에서, 인터럽트 제어기(120) 및/또는 타이머(122)의 각각 또는 어느 하나는 I/O 서브시스템(114), 펌웨어(118) 및/또는 프로세서(110)에서 구현될 수 있다. 인터럽트 제어기(120) 및 타이머(122)는 O/S 에이전트(130) 및 BIOS/SMI 로직(134) 간의 통신을 용이하게 하고 임의의 기능 또는 프로세싱이 특수 목적 동작 모드에서 수행되도록 구성된다. 임의의 컴퓨팅 환경에서, 특수 목적 동작 모드는 시스템 관리 모드(SMM)으로서 알려져 있고, 그 용어는 여기에서 더 일반적으로 이러한 특수 목적 동작 모드를 나타내는데 사용될 수 있다. SMM은 예를 들어 파워 관리, 하드웨어 제어 및/또는 에러 핸들링 등의 시스템 전체 기능을 핸들링하는데 사용될 수 있다.
일반적으로 말하면, SMM은 오퍼레이팅 시스템(128)으로부터 일반적으로 숨겨진 플랫폼 서비스이다. 시스템 관리 모드의 사용은 특정 프로세서 아키텍쳐에 따라 SMI(system management interrupt) 또는 PMI(platform management interrupt) 등의 관리 인터럽트 이벤트의 생성에 의해 개시될 수 있다. 이들 인터럽트 이벤트는 통상 마스크 불가능하고, 따라서, 마스크 가능 인터럽트 및 다른 이벤트보다 우선한다. 일반적으로, 관리 인터럽트는 실행될 수 있는 임의의 오퍼레이팅 시스템 프로세스와 동시에 실행되는 비동기 프로세스를 개시한다. 후술하는 바와 같이, 예시적인 인터럽트 제어기(120)는 소정의 이벤트 생성에 응답하여 (SMI 또는 PMI 등의) 관리 인터럽트를 생성한다. 도시된 타이머(122)는 (예를 들어, 약 5분의 범위 내에서) 결정 또는 프로그래밍가능한 기간을 카운트 다운하여 기간의 만료가 관리 인터럽트를 개시할 수 있도록 인에이블될 수 있다.
I/O 서브시스템(114)은 예를 들어 컴퓨팅 장치(100)의 의도된 사용에 따라 네트워크 인터페이스, 그래픽 드라이버, 오디오 드라이버 및/또는 기타(미도시) 등의 하나 이상의 다른 주변 장치(들)(124)에 통신가능하게 결합될 수 있다. 또한, 컴퓨팅 장치(100)는 다른 컴포넌트, 서브컴포넌트 및 설명의 명료화를 위하여 도 1에 도시되지 않은 장치를 포함할 수 있음을 이해해야 한다.
일반적으로, 컴퓨팅 장치(100)의 컴포넌트는 쌍촉 화살표(double-headed arrow)로서 개략적으로 표시된 하나 이상의 신호 경로에 의해 도 1에 도시된 바와 같이 통신가능하게 결합된다. 이러한 신호 경로는 각각의 장치 간의 통신을 용이하게 할 수 있는 임의의 타입의 유선 또는 무선 신호 경로로서 구현될 수 있다. 예를 들어, 신호 경로는 임의의 수의 와이어, 인쇄 회로 기판 트레이스, 비아(via), 버스, 포인트간 상호접속부, 중개 장치 및/또는 기타 등으로서 구현될 수 있다.
동작에 있어서, 오퍼레이팅 시스템(128)은 컴퓨팅 장치(100) 상에서 실행되기 시작한 후 임의의 시간에(예를 들어, 런타임에) 시스템 레벨 변경을 구현하라는 요청을 수신할 수 있다. 이러한 요청은 예를 들어 소프트웨어 또는 펌웨어 업데이트, 중앙 처리 장치(CPU) 또는 프로세서 마이크로코드에 대한 패치, BIOS에 대한 변경, 보안 패치 및/또는 구성 변경과 관련될 수 있다. 설명의 편의를 위하여 각각, 이러한 변경 및/또는 업데이트 중의 일부 또는 전부 또는 그 조합을 "시스템 변경"이라 할 수 있고 하나 이상의 시스템 변경을 포함하는 시스템 구성을 "펜딩(pending) 구성"이라 할 수 있다.
일 예로서, 임의의 경우, 프로세서(110), 오퍼레이팅 시스템(128) 또는 소프트웨어 애플리케이션(136)이 동작하기 시작하면, (예를 들어, 인터넷 웹 사이트 또는 원격 서버로 가서) 컴퓨팅 장치(100)에 아직 설치되지 않은 시스템 변경이 있는지를 알아보기 위해 자동으로 체크할 수 있다. 컴퓨팅 장치(100) 상에 설치될 이용가능한 시스템 변경이 있으면, O/S 에이전트(130)는 BIOS/SMI 로직(134)과 통신하여 펜딩 시스템 변경과 함께 오퍼레이팅 시스템(128)의 1회 "시험(trial)" 부팅을 시도한다. O/S 에이전트(130)가 시험 부팅이 실패한 것으로 결정하면, 오퍼레이팅 시스템(128)은 (예를 들어 시스템 변경없이) 이전의 구성으로 재부팅한다.
도 2를 참조하면, 모듈 다이어그램은 컴퓨팅 장치(100)가 파워 온 된 후에 발생되는 컴퓨팅 장치(100)의 동작의 페이즈를 나타낸다. 컴퓨팅 장치(100)의 적어도 하나의 실시예는 정상(예를 들어, CPU) 동작 모드(210) 및 특수 목적(예를 들어, SMM) 동작 모드(200)에서 동작할 수 있기 때문에, 도 2는 또한 이들 모드의 각각에서 발생하는 명령, 루틴, 프로세스 등을 나타낸다.
컴퓨팅 장치(100)의 동작의 페이즈는 펌웨어 초기화 또는 "BIOS" 페이즈(212), 오퍼레이팅 시스템 부팅 페이즈(214) 및 오퍼레이팅 시스템 실행 페이즈(216)를 포함한다. BIOS 페이즈(212) 및 O/S 부팅 페이즈(214)는 더 일반적으로 "프리부팅(pre-boot) 페이즈라 할 수 있고, O/S 실행 페이즈(216)는 또한 "런타임" 페이즈라 할 수 있다. 페이즈(212, 214, 216)는 일반적으로 교대로 발생하고, 예를 들어, O/S 부팅 페이즈(214)는 일반적으로 BIOS 페이즈(212)가 완료될 때까지 시작하지 않는다. 마찬가지로, O/S 실행 페이즈(216)는 일반적으로 O/S 부팅 페이즈(214)가 완료할 때까지 시작하지 않는다. 동작 모드(200, 210)는 페이즈(212, 214, 216) 중의 임의의 페이즈 동안 동시에 실행될 수 있다.
BIOS 페이즈(212) 동안, 컴퓨팅 장치(100)는 컴퓨터화된 로직을 실행하여 블록(220 및 222)에 의해 식별된 태스크를 완수한다. 이들 태스크는 정상 동작 모드(210)에서 완수된다. 블록(220)에서, BIOS(132) 및 SMM(200)가 초기화된다. 블록(222)에서, BIOS(132)는 오퍼레이팅 시스템(128)을 부팅할 때 어떤 시스템 구성이 사용될지(예를 들어, 기지의 "양호한" 구성으로 부팅을 할지 또는 시스템 변경을 포함하는 새로운 또는 "펜딩" 구성으로 부팅할지)를 결정하도록 구성된 조기 부팅 로직을 실행한다. 블록(222)의 태스크를 완수하는 도시된 방법(300)은 도 3에 도시되고 후술한다. 블록(224)에서, BIOS(132)는 블록(222)에서 BIOS(132)에 의해 결정된 구성으로 오퍼레이팅 시스템(128)을 로딩하고 부팅한다. 컴퓨팅 장치(100)는 블록(224)에서 컴퓨터화된 로직의 실행 동안 O/S 부팅 페이즈(214) 및 정상 동작 모드(210)에 있다.
오퍼레이팅 시스템(128)이 부팅되거나 재부팅되면(예를 들어, 도 2의 단계(1) 또는 단계(3)), 컴퓨팅 장치(100)는 O/S 실행 페이즈(216) 및 정상 동작 모드(210)에서 동작한다. 블록(226)에 도시된 바와 같이, 컴퓨팅 장치(100)는, O/S 실행 페이즈(216) 동안, 소프트웨어 애플리케이션(들)(136)을 실행하고, 하나 이상의 주변 장치(들)(124)를 통해 사용자와 상호작용하고 및/또는 다른 활동 또는 동작을 수행할 수 있다. O/S 실행 페이즈(216) 동안 임의의 시간에, O/S 에이전트(230)는 상술한 바와 같이 시스템 변경에 대한 요청(228)을 수신할 수 있다. 요청(228)은 예를 들어 컴퓨팅 장치(100) 상에서 실행되는 다른 프로세스 또는 컴퓨팅 장치(100)의 사용자에 의해 발신될 수 있다. 요청(228)에 응답하여, O/S 에이전트(130)는 도 2의 단계(2)에서 요청된 시스템 변경의 구현을 개시한다. 도 2의 단계(2)의 태스크(들)를 완수하는 예시적인 방법(400)은 도 4에 도시되고 후술한다. SMI 메시지를 이용하여, 예를 들어, O/S 에이전트(130)는 BIOS/SMI 로직(134)을 인보크하여 적어도 일시적으로 요청된 시스템 변경을 적용한다. BIOS/SMI 로직(134)은 블록(232)에 의해 도시된 바와 같이 특수 목적 동작 모드(예를 들어, SMM(200))에서 실행된다. 블록(232)의 태스크(들)를 완수하는 예시적인 방법(500)은 도 5에 도시되고 후술한다. 그 후, O/S 에이전트(130)는, 시스템 변경과 함께 오퍼레이팅 시스템(128)을 재부팅하고(도 2의 단계(3)) 도 2의 단계(4)에서 예를 들어 하나 이상의 시스템 레벨 테스트를 수행함으로써 시스템 변경을 확인한다. 도 2의 단계(4)의 태스크(들)를 완수하는 예시적인 방법(600)은 도 6에 도시되고 후술한다.
도 3을 참조하면, (예를 들어, 오퍼레이팅 시스템(128)을 부팅하는데 어떤 구성이 사용되는지를 결정하기 위하여) 도 2의 블록(222)의 태스크들을 완수하는 예시적인 방법(300)이 도시된다. 방법(300)은 (예를 들어, BIOS 조기 부팅 로직(222)으로서) BIOS(132)에 의해 실행되도록 구성되는 컴퓨터화된 로직으로서 구현될 수 있다. 블록(310)에서, 컴퓨팅 장치(100)는 파워 온되거나 시작(또는 재시작)된다. 블록(310)은 파선으로 도시되어, 예시적인 실시예에서, 블록(310)은 단지 방법(300)의 후속 블록(예를 들어, 312, 314, 316, 318, 320, 322) 전에 발생하는 이벤트이며 방법(300)의 임의의 컴퓨터화된 로직 내에 포함될 필요는 없다는 것을 나타낸다.
블록(312)에서, BIOS 조기 부팅 로직(222)은 "부팅 펜딩" 플래그가 설정되었는지를 결정한다. 예시적인 실시예에서, 부팅 펜딩 플래그는 단순히 시스템 변경이 펜딩이면(예를 들어, O/S 에이전트(130)가 시스템 변경을 포함하는 새로운 구성을 설치하라는 요청을 받았다면) 턴온(예를 들어 "1"의 값이 할당)되거나, 설치되기를 기다리는 시스템 변경이 없으면 "0"의 값이 할당되는 비트이다. 예시적인 실시예에서, 부팅 펜딩 플래그는 BIOS 저장장치(예를 들어, 플래시 메모리)에 저장된다. 펜딩인 시스템 변경이 없으면, 블록(314)에서, BIOS 조기 부팅 로직(222)은 기지의 "양호한" 구성(예를 들어, 시스템 변경 전에 존재하는 시스템 구성)을 적용한다.
시스템 변경이 펜딩이면, 블록(316)에서, BIOS 조기 부팅 로직(222)은 부팅 펜딩 플래그를 클리어한다(예를 들어, 부팅 펜딩 플래그를 "1"의 값으로부터 "0"의 값으로 변경하거나 그 반대이다). 예시적인 실시예에서, 부팅 펜딩 플래그는, 펜딩 구성의 부팅이 성공적으로 완료되지 않는 한, 펜딩 시스템 변경을 포함하는 구성으로 오퍼레이팅 시스템(128)을 부팅하려는 오직 한번의 시도만이 이루어지도록 보장하는데 사용된다.
블록(318)에서, 타이머(122)는, 기간을 카운트 다운하여, 기간이 만료될 때, 오퍼레이팅 시스템(128)이 자동으로 셧다운되고 재부팅되도록 구성된다. 예시적인 실시예에서, 기간은, 컴퓨팅 장치(100)가 기간이 만료되기 전에 펜딩 구성으로 성공적인 부팅을 시도하기에 충분한 시간을 허용하도록 설정된다. 블록(320)에서 BIOS 조기 부팅 로직(222)은 펜딩 구성을 적용한다. 블록(322)에서, BIOS 조기 부팅 로직(222)은 경우에 따라 블록(314)에서 확립된 기지의 구성 또는 블록(320)에서 적용된 펜딩 구성을 이용하여 오퍼레이팅 시스템(128)의 부팅을 개시한다. 펜딩 구성이 성공적이면, 블록(320 및 322)의 태스크들은 타이머(122)가 만료되기 전에 성공적으로 완료되었을 것이다. 블록(320 및 322)의 태스크가 완료되기 전에 타이머(122)가 만료되면, 펜딩 구성은 실패한 것으로 간주된다.
도 4를 참조하면, (예를 들어, 펜딩 구성의 부팅을 개시하는) 도 2의 단계(2)의 태스크(들)를 완수하는 예시적인 방법(400)이 도시된다. 방법(400)은 O/S 에이전트(230)에 의해 실행되도록 구성된 컴퓨터화된 로직으로서 구현될 수 있다. 블록(410)에서, O/S 에이전트(230)는 시스템 변경을 포함하는 펜딩 시스템 구성을 적용(예를 들어, 설치)하라는 요청(예를 들어, 도 2에 도시된 요청(228))을 수신한다. 요청은 예를 들어 상술한 바와 같이 다른 프로세서 또는 사용자에 의해 발신될 수 있다. 예시적인 실시예에서, 블록(410)이 단지 방법(400)의 후속 블록(예를 들어, 412, 414, 416) 이전에 발생하는 이벤트이고 방법(400)의 임의의 컴퓨터화된 로직에 포함될 필요는 없다는 것을 나타내기 위하여, 블록(410)은 파선으로 표시된다.
블록(412)에서, O/S 에이전트는 BIOS/SMI 런타임 로직(232)이 메시지 내에 포함된 펜딩 구성을 업로드하도록 지시하는 메시지(예를 들어, SMI)를 BIOS/SMI 런타임 로직(232)으로 전송한다. 펜딩 구성의 추가의 처리는 후술하는 도 5의 블록(528)에서 시작하는 특수 목적 동작 모드(200)에서 BIOS/SMI 런타임 로직(232)에 의해 수행된다. 그동안, 블록(414)에서, O/S 에이전트(230)는 도 5의 블록(528, 530, 532, 538)에서 처리가 완료되었다는 것을 나타내는 BIOS/SMI 런타임 로직(232)으로부터의 메시지를 기다린다. 블록(416)에서, O/S 에이전트(230)는 (도 2의 단계(3)로서 도시된) 시스템 변경을 포함하는 펜딩 구성으로 오퍼레이팅 시스템(128)의 재부팅을 개시한다.
도 5를 참조하면, 블록(232)의 태스크(들)를 완수하는 예시적인 방법(500)이 도시된다. 방법(500)은 BIOS(132)에 의해 실행되도록 구성된 컴퓨터화된 로직(예를 들어, BIOS 런타임 로직(232))으로서 구현될 수 있다. 예시적인 방법(500)은 펜딩 구성의 처리 동안 O/S 에이전트(230)로부터 다수의 상이한 메시지(예를 들어, SMI)를 수신하도록 구성된다. 예시적인 실시예에서, 방법(500)은 BIOS/SMI 런타임 로직(232)이 O/S 에이전트(230)로부터 메시지를 수신할 때마다 실행된다.
블록(510)에서, BIOS/SMI 런타임 로직(232)은 O/S 에이전트(230)로부터 메시지(예를 들어, SMI)를 수신한다. 예시적인 실시예에서, 블록(510)에서 BIOS/SMI 런타임 로직(232)에 의해 수신된 메시지는 도 4의 블록(412), 도 6의 블록(612), 도 6의 블록(618) 또는 도 6의 블록(624)에서 O/S 에이전트(230)에 의해 생성된다. 예시적인 실시예에서 블록(510)이 단지 방법(500)의 후속 블록(예를 들어, 블록(512, 518, 528, 534) 및 후속 블록) 이전에 발생하는 이벤트이고 방법(500)의 임의의 컴퓨터화된 로직 내에 포함될 필요는 없다는 것을 나타내기 위하여 블록(510)은 파선으로 표시된다. 도 2에 도시된 바와 같이, BIOS/SMI 런타임 로직(232)은 특수 목적 동작 모드(200)를 이용하여 실행된다.
블록(512)에서, 방법(500)은 O/S 에이전트(230)로부터의 메시지가 펜딩 구성이 성공적으로 적용되었고 모든 적용가능한 테스트를 통과하였음을 나타내는지(예를 들어, "펜딩 커미트(commit pending)" 메시지)를 결정한다. 예시적인 실시예에서, "펜딩 커미트" 메시지는 후술하는 도 6의 블록(624)에서 O/S 에이전트(230)에 의해 BIOS/SMI 런타임 로직(232)으로 전송된다. 블록(512)에서 BIOS/SMI 런타임 로직(232)에 의해 수신된 메시지가 "펜딩 커미트" 메시지이면, 블록(514)에서, 방법(500)은 기지의 "양호한" 구성을 시스템 변경을 포함하는 펜딩 구성으로 대체하고 블록(516)에서 그 태스크의 성공적인 완료를 나타내는 상태 메시지를 O/S 에이전트(230)로 반환된다. 예시적인 실시예에서, 블록(516)의 "성공" 메시지는 O/S 에이전트(230)에 의해 수신되고, 제어는 후술하는 도 6의 블록(626)에서 정상 동작 모드(210)로 복귀된다.
O/S 에이전트(230)로부터의 메시지가 "펜딩 커미트" 메시지가 아니면, 방법(500)은 블록(518)으로 진행한다. 블록(518)에서, 방법(500)은 O/S 에이전트(230)로부터의 메시지가 O/S 에이전트(230)가 현재 구성의 상태에 대한 정보를 요청하고 있다는 것을 지시하는지, 즉, 기지의 "양호한" 구성 또는 시스템 변경을 포함하는 펜딩 구성이 현재 사용되는지(예를 들어, "어떤 구성" 메시지)를 결정한다. 예시적인 실시예에서, "어떤 구성" 메시지는 후술하는 도 6의 블록(612)에서 O/S 에이전트(230)에 의해 BIOS/SMI 런타임 로직(232)으로 전송된다.
블록(518)에서 BIOS/SMI 런타임 로직(232)에 의해 수신된 메시지가 "어떤 구성" 메시지이면, 블록(520)에서, 방법(500)은 오퍼레이팅 시스템(128)이 부팅된 마지막 시간에 펜딩 구성이 이용되었는지를 결정한다. 예시적인 실시예에서, 이것은 상술한 부팅 펜딩 플래그의 참조에 의해 결정된다. 마지막 부팅이 펜딩 구성을 사용했으면, 블록(522)에서 타이머(122)가 디스에이블되고 블록(524)에서 펜딩 구성이 사용되어야 한다는 것을 나타내는 상태 메시지가 BIOS/SMI 런타임 로직(232)에 의해 O/S 에이전트(230)로 전송된다. 부팅 펜딩 플래그에 기초하여 BIOS/SMI 런타임 로직(232)이 펜딩 구성이 성공적으로 적용된 것으로 결론지었기 때문에, 타이머(122)가 블록(522)에서 디스에이블된다. 마지막 부팅이 펜딩 구성을 이용하지 않으면, 블록(526)에서, 기지의 "양호한" 구성이 사용되어야 한다는 것을 나타내는 상태 메시지가 BIOS/SMI 런타임 로직(232)에 의해 O/S 에이전트(230)로 전송된다. 예시적인 실시예에서, 블록(524)의 "펜딩 구성 사용" 메시지 또는 블록(526)의 "기지의 구성 사용" 메시지는 경우에 따라서 O/S 에이전트(230)에 의해 수신되고 제어는 후술하는 도 6의 블록(614)에서 정상 동작 모드(210)로 복귀된다.
O/S 에이전트(230)로부터의 메시지가 "어떤 구성" 메시지가 아니면, 방법(500)은 블록(528)으로 진행한다. 블록(528)에서, 방법(500)은 O/S 에이전트(230)로부터의 메시지가 시스템 변경을 포함하는 펜딩 구성을 포함하는지(예를 들어, 그것이 "새로운 구성" 메시지인지)를 결정한다. 예시적인 실시예에서, "새로운 구성" 메시지는 후술하는 도 4의 블록(412)에서 O/S 에이전트(230)에 의해 BIOS/SMI 런타임 로직(232)으로 전송된다.
블록(528)에서 BIOS/SMI 런타임 로직(232)에 의해 수신된 메시지가 "새로운 구성" 메시지이면, 블록(530)에서 방법(500)은 "새로운 구성" 메시지에 포함되는 데이터를 포함하는 펜딩 구성을 생성하고, 블록(532)에서 상술한 바와 같이 부팅 펜딩 플래그를 설정하고 블록(538)에서 펜딩 구성이 성공적으로 생성되었다는 것을 나타내는 메시지를 O/S 에이전트(230)로 전송한다. 상술한 바와 같이, 블록(528)은 O/S 에이전트(230)가 시스템 변경에 대한 요청(228)을 수신할 때마다 인보크된다. 예시적인 실시예에서, 블록(538)의 "성공" 메시지는 O/S 에이전트(230)에 의해 수신되고, 제어는 상술한 도 4의 블록(414)에서 정상 동작 모드(210)로 복귀한다.
O/S 에이전트(230)로부터의 메시지가 "새로운 구성" 메시지가 아니면, 적어도 일부의 실시예에서 방법(500)은 블록(534)으로 진행한다. 블록(534)에서, 방법(500)은 O/S 에이전트(230)로부터의 메시지가 펜딩 구성이 적용가능한 모든 테스트를 통과하지 않았다는 것을 나타내고 따라서 폐기되어야 하는지(예를 들어, 이것이 "펜딩 폐기" 메시지인지)를 결정한다. 예시적인 실시예에서, "펜딩 폐기" 메시지는 후술하는 도 6의 블록(618)에서 O/S 에이전트(230)에 의해 BIOS/SMI 런타임 로직(232)으로 전송된다.
블록(534)에서 BIOS/SMI 런타임 로직(232)에 의해 수신된 메시지가 "펜딩 폐기" 메시지이면, 블록(536)에서 방법(500)은 펜딩 구성을 삭제하고 펜딩 구성이 성공적으로 삭제되었다는 것을 나타내는 상태 메시지를 O/S 에이전트(230)로 전송한다. 상술한 바와 같이, 방법(500)은 특수 목적 동작 모드(200)에서 실행되고 제어는 도 5의 블록(516, 524, 526, 528 및 536)에서 정상 CPU 동작 모드(210)로 복귀한다.
도 6을 참조하면, (예를 들어, 펜딩 구성의 성공적인 설치를 확인하기 위하여) 도 2의 단계(4)의 태스크(들)를 완수하는 예시적인 방법(600)이 도시된다. 방법(600)은 O/S 에이전트(230)에 의해 실행되도록 구성되는 컴퓨터화된 로직으로서 구현될 수 있다. 방법(600)은 오퍼레이팅 시스템(128)이 도 4의 블록(416)에서 펜딩 구성으로 재부팅되면 인보크된다. 따라서, 예시적인 실시예에서 블록(610)이 단지 방법(600)의 후속 블록(예를 들어, 블록(612) 및 후속 블록) 이전에 발생하는 이벤트이고 방법(600)의 임의의 컴퓨터화된 로직에 포함될 필요가 없다는 것을 나타내기 위하여 블록(610)은 파선으로 표시된다.
블록(612)에서, O/S 에이전트(230)는 상술한 "어떤 구성" 메시지를 BIOS/SMI 런타임 로직(232)으로 전송하여 기지의 "양호한" 구성 또는 펜딩 구성이 이용되는지를 결정한다. 블록(614)에서, O/S 에이전트(230)는 상술한 도 5의 블록(524) 또는 블록(526)에서 BIOS/SMI 런타임 로직(232)에 의해 생성된 메시지를 수신한다. 블록(614)에서 BIOS/SMI 런타임 로직(232)으로부터 O/S 에이전트(230)에 의해 수신된 메시지가 기지의 "양호한" 구성이 사용되는 것을 나타내면, O/S 에이전트(230)는 펜딩 구성을 갖는 1회 시험 부팅이 성공적이지 않았다(예를 들어, 타이머(122)가 부팅이 완료되기 전에 만료되었고 따라서 기지의 "양호한" 구성으로의 재부팅을 개시하거나 사용자가 파워 또는 리셋 버튼을 눌렀다)고 결론지을 수 있다. 이러한 이벤트에서, O/S 에이전트(230)는 블록(616)에서 실패한 시도에 응답하여 컴퓨터화된 에러 핸들링 로직을 개시하고, 적어도 일부의 실시예에서, 블록(618)에서 상술한 "펜딩 폐기" 메시지를 BIOS/SMI 런타임 로직(232)으로 전송한다. 에러 핸들링 로직의 일부 예는 펜딩 구성으로 부팅하려는 실패한 시도의 로그 및/또는 그에 관련된 다른 데이터를 유지하고, 하나 이상의 이러한 실패한 시도에 관련된 보고를 생성하고, 컴퓨팅 장치(100), 출력 장치(디스플레이 또는 스피커), 네트워크, 또는 원격 컴퓨팅 장치 및/또는 다른 치료책의 사용자(들)에게 하나 이상의 경고를 전송하는 것을 포함할 수 있다. 블록(616)에서 O/S 에이전트(230)에 의해 수행되는 치료책 또는 치료책들은 컴퓨팅 장치(100)의 특정 시스템 설계 또는 구성의 요구사항에 따라 변할 수 있다.
블록(614)에서 BIOS/SMI 런타임 로직(232)으로부터 O/S 에이전트(230)에 의해 수신된 메시지가 펜딩 구성이 이용된다는 것을 나타내면, O/S 에이전트(230)는 펜딩 구성을 갖는 부팅이 성공적이었다고 결론지을 수 있고, 블록(620)으로 진행할 수 있다. 그러나, 펜딩 구성을 갖는 부팅이 성공적으로 완료되었더라도, 시스템이 불안정성 또는 다른 동작 문제를 가질 위험성은 여전히 존재할 수 있다. 그러므로, 블록(620)에서, O/S 에이전트(230)는 하나 이상의 진단, 시스템 테스트, 오퍼레이팅 시스템 테스트, BIST(built-in self-test) 및/또는 다른 기능적 테스트 또는 일련의 테스트를 수행하여 컴퓨팅 장치(100)가 펜딩 구성으로의 부팅 후에 적절하게 동작하는지를 결정한다. 블록(620)에서 O/S 에이전트(230)에 의해 수행되는 테스트 또는 테스트들이 컴퓨팅 장치(100)의 특정 시스템 설계 또는 구성의 요구사항에 따라 변할 수 있다.
펜딩 구성이 블록(620)에서 O/S 에이전트(230)에 의해 수행된 하나 이상의 테스트 및/또는 진단을 성공적으로 완료하면, 블록(624)에서, O/S 에이전트(230)는 상술한 "펜딩 커미트" 메시지를 BIOS/SMI 런타임 로직(232)으로 전송하여 BIOS/SMI 런타임 로직(232)이 기지의 "양호한" 구성을 펜딩 구성으로 대체하도록 지시한다. 블록(626)에서, O/S 에이전트(230)는 도 5의 블록(516)에서 BIOS/SMI 런타임 로직(232)에 의해 생성된 "성공" 상태 메시지를 수신하고 펜딩 구성의 성공적인 구현에 관련된 이벤트 로직을 개시한다. 이러한 이벤트 로직의 일부의 실시예는 펜딩 구성의 부팅에 대한 성공적인 시도 및/또는 그 관련된 다른 데이터의 로그, 하나 이상의 이러한 성공적인 시도에 관련된 보고의 생성, 컴퓨팅 장치(100), 출력 장치(디스플레이 또는 스피커 등), 네트워크 또는 원격 컴퓨팅 장치 및/또는 다른 이벤트 보고 조치의 하나 이상의 사용자(들)로의 하나 이상의 경고 전송을 포함할 수 있다. 블록(626)에서 O/S 에이전트(230)에 의해 수행되는 이벤트 보고 조치 또는 조치들은 컴퓨팅 장치(100)의 특정 시스템 설계 또는 구성의 요구사항에 따라 변할 수 있다.
펜딩 구성이 블록(620)에서 O/S 에이전트(230)에 의해 수행되는 하나 이상의 테스트 및/또는 진단을 완료하지 못하면, 블록(618)에서, O/S 에이전트(230)는 상술한 "펜딩 폐기" 메시지를 BIOS/SMI 런타임 로직(232)으로 전송하여 BIOS/SMI 런타임 로직(232)이 펜딩 구성을 삭제하고 기지의 "양호한" 구성을 유지하도록 지시한다. 다양한 실시예에서, O/S 에이전트(230)는 컴퓨팅 장치(100)의 특정 시스템 설계 또는 구성의 요구사항에 기초하여 펜딩 구성을 수락할지를 결정하는 임의의 기준 또는 다수의 기준을 사용할 수 있다. 예를 들어, 임의의 실시예에서, 수행되는 테스트 및/또는 진단 전체의 100% 미만의 통과가 "통과"로 간주될 수 있지만, 다른 실시예에서, 수행되는 테스트 및/또는 진단의 모든 통과가 요구될 수 있다.
여기에 개시된 장치, 시스템 및 방법의 예시적인 예를 이하에서 제공한다. 장치, 시스템 및 방법의 실시예는 후술하는 예의 임의의 하나 이상 및 그 조합을 포함할 수 있다.
일 예에서, 시스템 레벨 변경을 구현하도록 구성되는 컴퓨팅 장치는, 적어도 하나의 프로세서 코어 및 상기 적어도 하나의 프로세서 코어에 결합되는 메모리 장치를 포함하고, 상기 메모리 장치는, 상기 적어도 하나의 프로세서 코어에 의해 실행될 때, 상기 적어도 하나의 프로세스 코어가, 오퍼레이팅 시스템 및 BIOS가 상기 컴퓨팅 장치 상에서 실행되는 동안 상기 BIOS에 메시지를 전송하는 상기 오퍼레이팅 시스템에 의해 시스템 변경을 개시하도록 하는 복수의 명령을 저장한다. 일 예에서, 상기 적어도 하나의 프로세서는, 상기 BIOS에 의해, 기간 만료 후에 상기 오퍼레이팅 시스템을 재부팅하도록 구성되는 타이머를 시작할 수 있다. 일 예에서, 상기 적어도 하나의 프로세서는 상기 시스템 변경과 함께 상기 오퍼레이팅 시스템을 부팅할 수 있다. 일 예에서, 상기 적어도 하나의 프로세서는, 상기 BIOS와 통신하는 상기 오퍼레이팅 시스템에 의해, 상기 시스템 변경과 함께 부팅이 성공적인지를 결정할 수 있다. 일 예에서, 상기 적어도 하나의 프로세서는, 상기 BIOS에 의해, 상기 시스템 변경이 성공적인지에 대한 결정에 응답하여 상기 시스템 변경을 처리할 수 있다. 일 예에서, 상기 오퍼레이팅 시스템은 시스템 변경에 대한 요청을 수신하도록 구성될 수 있다. 일 예에서, 상기 BIOS는 상기 시스템 변경이 펜딩(pending)중이라는 것을 나타내는 플래그를 설정하도록 구성될 수 있다. 일 예에서, 상기 BIOS는, 상기 플래그가 설정되었는지를 결정하고 상기 플래그의 설정에 응답하여 상기 시스템 변경과 함께 상기 오퍼레이팅 시스템을 부팅하도록 구성될 수 있다. 일 예에서, 상기 BIOS는, 상기 플래그가 설정되었는지를 결정하고 상기 플래그의 비설정에 응답하여 상기 시스템 변경 없이 상기 오퍼레이팅 시스템을 부팅하도록 구성될 수 있다. 일 예에서, 상기 BIOS는 상기 시스템 변경과 함께 부팅이 성공적이라는 결정에 응답하여 상기 타이머를 디스에이블하도록 구성될 수 있다. 일 예에서, 상기 컴퓨팅 장치는 상기 기간의 만료에 응답하여 상기 오퍼레이팅 시스템을 재부팅하도록 구성될 수 있다. 일 예에서, 상기 오퍼레이팅 시스템은 상기 시스템 변경과 함께 상기 오퍼레이팅 시스템의 부팅에 응답하여 상기 컴퓨팅 장치의 적절한 동작을 확인하도록 구성되는 적어도 하나의 테스트를 실행하도록 구성될 수 있다. 일 예에서, 상기 오퍼레이팅 시스템은 상기 시스템 변경이 성공적인지를 나타내는 메시지를 상기 BIOS에 전송하도록 구성될 수 있다. 일 예에서, 상기 오퍼레이팅 시스템 및 BIOS는 상기 컴퓨팅 장치 상에서 제1 구성에서 실행되고, 상기 BIOS는 상기 시스템 변경이 성공적이라고 오퍼레이팅 시스템이 결정한 것에 응답하여 상기 제1 구성을 상기 시스템 변경을 포함하는 제2 구성으로 대체하도록 구성될 수 있다. 일 예에서, 상기 오퍼레이팅 시스템 및 상기 BIOS는 상기 컴퓨팅 장치 상에서 제1 구성에서 실행될 수 있고, 상기 BIOS는 상기 시스템 변경이 성공적이지 않은 것으로 오퍼레이팅 시스템이 결정한 것에 응답하여 상기 시스템 변경을 삭제하고 상기 제1 구성을 유지하도록 구성될 수 있다. 일 예에서, 상기 오퍼레이팅 시스템은 상기 시스템 변경이 성공적인지에 대한 결정에 응답하여 상기 시스템 변경의 상태를 사용자, 출력 장치, 네트워크 및 원격 컴퓨팅 장치 중의 적어도 하나에 보고하도록 구성될 수 있다.
다른 예에서, 방법은, 오퍼레이팅 시스템 및 상기 오퍼레이팅 시스템과 통신하는 BIOS를 실행하는 컴퓨팅 장치에서, 상기 오퍼레이팅 시스템이 상기 컴퓨팅 장치에서 실행되는 동안, 상기 오퍼레이팅 시스템에 의해, 상기 컴퓨팅 장치에 대한 시스템 변경을 개시하는 단계를 포함할 수 있다. 일 예에서, 상기 방법은 상기 BIOS가 상기 시스템 변경을 적어도 일시적으로 적용하는 단계를 포함할 수 있다. 일 예에서, 상기 방법은 상기 시스템 변경이 성공적인지를 상기 오퍼레이팅 시스템이 결정하는 단계를 포함할 수 있다. 일 예에서, 상기 방법은 상기 시스템 변경이 성공적인지의 결정에 응답하여 상기 BIOS가 상기 시스템 변경을 처리하는 단계를 포함할 수 있다. 일 예에서, 상기 방법은, 상기 오퍼레이팅 시스템이 상기 시스템 변경과 함께 부팅을 시도하도록 하고 상기 시스템 변경이 성공적이지 않다는 결정에 응답하여 상기 시스템 변경 없이 재부팅하도록 상기 BIOS가 타이머를 설정하는 단계를 포함할 수 있다. 일 예에서, 상기 방법은, 상기 시스템 변경을 적어도 일시적으로 적용하는 것에 응답하여 상기 오퍼레이팅 시스템이 적어도 하나의 진단을 수행하는 단계를 포함할 수 있다.
다른 예에서, 컴퓨팅 장치는 적어도 하나의 프로세서 및 상기 적어도 하나의 프로세서에 결합되고 상기 적어도 하나의 프로세서가 상술한 방법들 중 임의의 것을 수행하도록 배치된 컴퓨터 회로를 포함할 수 있다. 다른 예에서, 적어도 하나의 컴퓨터 액세스가능 매체는 실행된 결과에 응답하여 상술한 방법들 주 임의의 것을 컴퓨팅 장치가 수행하도록 하는 복수의 명령을 포함할 수 있다.
다른 예에서, 시스템 변경을 구현하는 방법은, 오퍼레이팅 시스템 및 BIOS가 컴퓨팅 장치 상에서 실행되는 동안, 상기 BIOS가, 상기 오퍼레이팅 시스템으로부터 상기 컴퓨팅 장치에 대한 시스템 변경에 대한 요청을 수신하는 단계를 포함할 수 있다. 상기 방법은 상기 BIOS가 상기 요청된 시스템 변경과 함께 상기 오퍼레이팅 시스템의 부팅을 개시하는 단계를 포함할 수 있다. 상기 방법은 상기 BIOS가 상기 오퍼레이팅 시스템으로부터 상기 시스템 변경이 성공적인지에 대한 지시를 수신하는 단계를 포함할 수 있다. 상기 방법은 상기 시스템 변경이 성공적인지에 대한 지시에 응답하여 상기 시스템 변경을 처리하는 단계를 포함할 수 있다.
일 예에서, 시스템 변경을 구현하도록 구성되는 컴퓨팅 장치는 적어도 하나의 프로세서 및 상기 적어도 하나의 프로세서에 결합되고 상기 적어도 하나의프로세서가 상술한 방법을 수행하도록 배치되는 컴퓨터 회로를 포함할 수 있다. 일 예에서, 적어도 하나의 컴퓨터 액세스가능 매체는 실행된 결과에 응답하여 상술한 방법을 컴퓨팅 장치가 수행하도록 하는 복수의 명령을 포함할 수 있다.
다른 예에서, 시스템 변경을 구현하는 방법은, 오퍼레이팅 시스템 및 BIOS가 컴퓨팅 장치 상에서 실행되는 동안, 상기 오퍼레이팅 시스템이, 상기 BIOS로부터 상기 오퍼레이팅 시스템의 제1 구성 및 시스템 변경을 포함하는 상기 오퍼레이팅 시스템의 제2 구성 중의 어느 것이 실행되는지를 나타내는 메시지를 수신하는 단계를 포함할 수 있다. 상기 방법은 상기 제2 구성이 실행되는 것을 나타내는 상기 BIOS로부터의 메시지에 응답하여 상기 컴퓨팅 장치가 적절하게 동작하는지를 결정하도록 적어도 하나의 테스트를 수행하는 단계를 포함할 수 있다. 상기 방법은 상기 컴퓨팅 장치가 상기 제2 구성으로 적절하게 동작하는지를 나타내는 메시지를 상기 BIOS로 전송하는 단계를 포함할 수 있다.
다른 예에서, 시스템 변경을 구현하도록 구성되는 컴퓨팅 장치는 적어도 하나의 프로세서 및 상기 적어도 하나의 프로세서에 결합되고 상기 적어도 하나의 프로세서가 상술한 방법을 수행하도록 배치되는 컴퓨터 회로를 포함할 수 있다. 다른 예에서, 시스템 변경을 구현하도록 구성되는 적어도 하나의 컴퓨터 액세스가능 매체는 실행된 결과에 응답하여 상술한 방법을 컴퓨팅 장치가 수행하도록 하는 복수의 명령을 포함할 수 있다.
개시물은 도면 및 상기 설명에서 상세히 도시되고 기재되지만, 이러한 설명 및 도시는 단지 예시적인 것이며 특징에 있어서 제한적이지 않고, 예시적인 실시예만이 도시되고 기재되며 본 개시물의 사상 내에 있는 모든 변경 및 변형은 보호되는 것으로 이해된다. 또한, 본 개시물의 형태는 컴퓨팅 장치의 컨텍스트에서 설명하였지만, 다양한 형태가 다른 애플리케이션, 예를 들어, 시스템 레벨 변경 또는 업데이트를 자동으로 개시하기를 원하는 임의의 애플리케이션을 갖는 것으로 이해될 것이다. 이러한 애플리케이션은 예를 들어 개인 전자 장치, "스마트" 어플라이언스 및/또는 다른 제품 등의 하나 이상의 컴퓨터 제어 특징을 갖는 임의의 장치를 포함할 수 있다.

Claims (23)

  1. 시스템 변경을 구현하도록 구성되는 컴퓨팅 장치로서,
    적어도 하나의 프로세서 코어; 및
    상기 적어도 하나의 프로세서 코어에 결합되는 메모리 장치
    를 포함하고,
    상기 메모리 장치는, 상기 적어도 하나의 프로세서 코어에 의해 실행될 때, 상기 적어도 하나의 프로세스 코어가,
    오퍼레이팅 시스템 및 BIOS가 상기 컴퓨팅 장치 상에서 실행되는 동안, 상기 BIOS에 메시지를 전송하는 상기 오퍼레이팅 시스템에 의해, 시스템 변경을 개시하고,
    상기 BIOS에 의해, 기간의 만료 후에 상기 오퍼레이팅 시스템을 재부팅하도록 구성되는 타이머를 시작하고,
    상기 시스템 변경과 함께 상기 오퍼레이팅 시스템을 부팅하고,
    상기 BIOS와 통신하는 상기 오퍼레이팅 시스템에 의해, 상기 시스템 변경과 함께 부팅이 성공적인지를 결정하고,
    상기 BIOS에 의해, 상기 시스템 변경이 성공적인지에 대한 결정에 응답하여 상기 시스템 변경을 처리하도록 하는
    복수의 명령을 저장하는 컴퓨팅 장치.
  2. 제1항에 있어서, 상기 컴퓨팅 장치는, 상기 오퍼레이팅 시스템에 의해서 시스템 변경에 대한 요청을 수신하도록 구성되는, 컴퓨팅 장치.
  3. 제1항에 있어서, 상기 BIOS에 의해, 상기 시스템 변경이 펜딩(pending)중이라는 것을 나타내는 플래그를 설정하도록 구성되는 컴퓨팅 장치.
  4. 제3항에 있어서, 상기 BIOS에 의해, 상기 플래그가 설정되었는지를 결정하고, 상기 플래그의 설정에 응답하여 상기 시스템 변경과 함께 상기 오퍼레이팅 시스템을 부팅하도록 구성되는 컴퓨팅 장치.
  5. 제3항에 있어서, 상기 BIOS에 의해, 상기 플래그가 설정되었는지를 결정하고, 상기 플래그의 비설정에 응답하여 상기 시스템 변경 없이 상기 오퍼레이팅 시스템을 부팅하도록 구성되는 컴퓨팅 장치.
  6. 제1항에 있어서, 상기 BIOS에 의해, 상기 시스템 변경과 함께 부팅이 성공적이라는 결정에 응답하여 상기 타이머를 디스에이블하도록 구성되는 컴퓨팅 장치.
  7. 제1항에 있어서, 상기 기간의 만료에 응답하여 상기 오퍼레이팅 시스템을 재부팅하도록 구성되는 컴퓨팅 장치.
  8. 제1항에 있어서, 상기 오퍼레이팅 시스템에 의해, 상기 시스템 변경과 함께 상기 오퍼레이팅 시스템의 부팅에 응답하여 상기 컴퓨팅 장치가 적절하게 동작하는지를 결정하도록 구성되는 적어도 하나의 테스트를 실행하도록 구성되는 컴퓨팅 장치.
  9. 제1항에 있어서, 상기 오퍼레이팅 시스템에 의해, 상기 시스템 변경이 성공적인지를 나타내는 메시지를 상기 BIOS에 전송하도록 구성되는 컴퓨팅 장치.
  10. 제1항에 있어서, 상기 오퍼레이팅 시스템 및 상기 BIOS는 상기 컴퓨팅 장치 상에서 제1 구성에서 실행되고, 상기 컴퓨팅 장치는, 상기 BIOS에 의해, 상기 시스템 변경이 성공적이라고 상기 오퍼레이팅 시스템이 결정한 것에 응답하여 상기 제1 구성을 상기 시스템 변경을 포함하는 제2 구성으로 대체하도록 구성되는 컴퓨팅 장치.
  11. 제1항에 있어서, 상기 오퍼레이팅 시스템 및 상기 BIOS는 상기 컴퓨팅 장치 상에서 제1 구성에서 실행되고, 상기 컴퓨팅 장치는, 상기 BIOS에 의해, 상기 시스템 변경이 성공적이지 않은 것으로 상기 오퍼레이팅 시스템이 결정한 것에 응답하여 상기 시스템 변경을 삭제하고 상기 제1 구성을 유지하도록 구성되는 컴퓨팅 장치.
  12. 제1항에 있어서, 상기 오퍼레이팅 시스템에 의해, 상기 시스템 변경이 성공적인지에 대한 결정에 응답하여 상기 시스템 변경의 상태를 사용자, 출력 장치, 네트워크 또는 원격 컴퓨팅 장치에 보고하도록 구성되는 컴퓨팅 장치.
  13. 시스템 변경을 구현하는 방법으로서,
    오퍼레이팅 시스템 및 상기 오퍼레이팅 시스템과 통신하는 BIOS를 실행하는 컴퓨팅 장치 상에서,
    상기 오퍼레이팅 시스템이 상기 컴퓨팅 장치에서 실행되는 동안, 상기 오퍼레이팅 시스템에 의해, 상기 컴퓨팅 장치에 대한 시스템 변경을 개시하는 단계;
    상기 BIOS에 의해, 상기 시스템 변경을 적어도 일시적으로 적용하는 단계;
    상기 오퍼레이팅 시스템에 의해, 상기 시스템 변경이 성공적인지를 결정하는 단계; 및
    상기 BIOS에 의해, 상기 시스템 변경이 성공적인지의 결정에 응답하여 상기 시스템 변경을 처리하는 단계
    를 포함하는 방법.
  14. 제13항에 있어서, 상기 BIOS에 의해, 상기 오퍼레이팅 시스템이 상기 시스템 변경과 함께 부팅을 시도하고, 상기 시스템 변경이 성공적이지 않다는 결정에 응답하여 상기 시스템 변경 없이 재부팅하도록, 타이머를 구성하는 단계를 포함하는 방법.
  15. 제13항에 있어서, 상기 오퍼레이팅 시스템에 의해, 상기 시스템 변경을 적어도 일시적으로 적용하는 것에 응답하여 적어도 하나의 진단을 수행하는 단계를 포함하는 방법.
  16. 시스템 변경을 구현하도록 구성되는 컴퓨팅 장치로서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 결합되고, 상기 적어도 하나의 프로세서가 제13항의 방법을 수행하도록 배치되는 컴퓨터 회로
    를 포함하는 컴퓨팅 장치.
  17. 복수의 명령을 포함하는 적어도 하나의 컴퓨터 액세스가능 매체로서, 상기 명령들은, 실행에 응답하여 컴퓨팅 장치가,
    오퍼레이팅 시스템 및 BIOS가 상기 컴퓨팅 장치 상에서 실행되는 동안, 상기 BIOS를 이용하여,
    상기 오퍼레이팅 시스템으로부터, 상기 컴퓨팅 장치에 대한 시스템 변경에 대한 요청을 수신하고;
    상기 요청된 시스템 변경과 함께 상기 오퍼레이팅 시스템의 부팅을 개시하고;
    상기 오퍼레이팅 시스템으로부터, 상기 시스템 변경이 성공적인지에 대한 지시(indication)를 수신하고;
    상기 시스템 변경이 성공적인지에 대한 지시에 응답하여 상기 시스템 변경을 처리하게 하는 컴퓨터 액세스가능 매체.
  18. 시스템 변경을 구현하도록 구성되는 컴퓨팅 장치로서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 결합되고, 상기 적어도 하나의 프로세서로 하여금 복수의 명령들을 실행하게 하도록 구성되는 컴퓨터 회로
    를 포함하고,
    상기 명령들은, 실행됨에 응답하여 상기 컴퓨팅 장치로 하여금,
    오퍼레이팅 시스템 및 BIOS가 상기 컴퓨팅 장치 상에서 실행되는 동안, 상기 BIOS를 이용하여,
    상기 오퍼레이팅 시스템으로부터, 상기 컴퓨팅 장치에 대한 시스템 변경에 대한 요청을 수신하고;
    상기 요청된 시스템 변경과 함께 상기 오퍼레이팅 시스템의 부팅을 개시하고;
    상기 오퍼레이팅 시스템으로부터, 상기 시스템 변경이 성공적인지에 대한 지시를 수신하고;
    상기 시스템 변경이 성공적인지에 대한 지시에 응답하여 상기 시스템 변경을 처리하게 하는 컴퓨팅 장치.
  19. 복수의 명령을 포함하는 적어도 하나의 컴퓨터 액세스가능 매체로서, 상기 명령들은, 실행에 응답하여 컴퓨팅 장치가,
    오퍼레이팅 시스템 및 BIOS가 상기 컴퓨팅 장치 상에서 실행되는 동안, 상기 오퍼레이팅 시스템을 이용하여,
    상기 BIOS로부터, 상기 오퍼레이팅 시스템의 제1 구성 및 시스템 변경을 포함하는 상기 오퍼레이팅 시스템의 제2 구성 중 어느 것이 실행되는지를 나타내는 메시지를 수신하고;
    상기 제2 구성이 실행되는 것을 나타내는 상기 BIOS로부터의 메시지에 응답하여 상기 컴퓨팅 장치가 적절하게 동작하는지를 결정하기 위해 적어도 하나의 테스트를 수행하고;
    상기 컴퓨팅 장치가 상기 제2 구성으로 적절하게 동작하는지를 나타내는 메시지를 상기 BIOS로 전송하게 하는 컴퓨터 액세스가능 매체.
  20. 시스템 변경을 구현하도록 구성되는 컴퓨팅 장치로서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 결합되고, 상기 적어도 하나의 프로세서로 하여금 복수의 명령들을 실행하게 하도록 구성되는 컴퓨터 회로
    를 포함하고,
    상기 명령들은, 실행됨에 응답하여 상기 컴퓨팅 장치로 하여금,
    오퍼레이팅 시스템 및 BIOS가 상기 컴퓨팅 장치 상에서 실행되는 동안, 상기 오퍼레이팅 시스템을 이용하여,
    상기 BIOS로부터, 상기 오퍼레이팅 시스템의 제1 구성 및 시스템 변경을 포함하는 상기 오퍼레이팅 시스템의 제2 구성 중 어느 것이 실행되는지를 나타내는 메시지를 수신하고;
    상기 제2 구성이 실행되는 것을 나타내는 상기 BIOS로부터의 메시지에 응답하여 상기 컴퓨팅 장치가 적절하게 동작하는지를 결정하기 위해 적어도 하나의 테스트를 수행하고;
    상기 컴퓨팅 장치가 상기 제2 구성으로 적절하게 동작하는지를 나타내는 메시지를 상기 BIOS로 전송하게 하는 컴퓨팅 장치.
  21. 삭제
  22. 삭제
  23. 삭제
KR1020147026221A 2012-03-31 2012-03-31 시스템 변경 후 컴퓨팅 장치의 적절한 동작을 확인하는 방법 및 시스템 KR101626433B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/031761 WO2013147915A1 (en) 2012-03-31 2012-03-31 Method and system for verifying proper operation of a computing device after a system change

Publications (2)

Publication Number Publication Date
KR20140125878A KR20140125878A (ko) 2014-10-29
KR101626433B1 true KR101626433B1 (ko) 2016-06-01

Family

ID=49260968

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147026221A KR101626433B1 (ko) 2012-03-31 2012-03-31 시스템 변경 후 컴퓨팅 장치의 적절한 동작을 확인하는 방법 및 시스템

Country Status (7)

Country Link
US (1) US9880862B2 (ko)
EP (1) EP2831722B1 (ko)
JP (1) JP6132009B2 (ko)
KR (1) KR101626433B1 (ko)
CN (1) CN104185836B (ko)
AU (1) AU2012375273B2 (ko)
WO (1) WO2013147915A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104185836B (zh) 2012-03-31 2019-01-18 英特尔公司 用于在系统改变之后验证计算设备的适当操作的方法和系统
CN105917306B (zh) * 2014-01-22 2020-04-10 惠普发展公司,有限责任合伙企业 用于配置系统固件配置数据的系统和方法
JP6404708B2 (ja) * 2014-12-24 2018-10-10 Necプラットフォームズ株式会社 情報処理装置、bios設定情報変更方法、並びにコンピュータ・プログラム
US9921819B2 (en) 2014-12-29 2018-03-20 Airwatch Llc Persistent mobile device enrollment
CN104503810B (zh) * 2015-01-08 2018-03-23 合肥联宝信息技术有限公司 更新计算机系统中的bios固件的方法及装置
US9734015B2 (en) * 2015-06-23 2017-08-15 Dell Products, L.P. Pre-boot self-healing and adaptive fault isolation
US20170090909A1 (en) * 2015-09-25 2017-03-30 Qualcomm Incorporated Secure patch updates for programmable memories
KR102628229B1 (ko) 2015-11-20 2024-01-22 1934612 온타리오 인코포레이티드 실리콘 탄화물 멤브레인으로 유체를 정화하기 위한 장치, 시스템 및 방법
US10891172B2 (en) * 2015-12-24 2021-01-12 Intel Corporation Modifying an operating system
US10001981B2 (en) 2016-05-26 2018-06-19 At&T Intellectual Property I, L.P. Autonomous server installation
US11243782B2 (en) * 2016-12-14 2022-02-08 Microsoft Technology Licensing, Llc Kernel soft reset using non-volatile RAM
US10970058B2 (en) * 2017-01-18 2021-04-06 Hewlett-Packard Development Company, L.P. Software package installations with proximity tags
US10620965B2 (en) 2017-03-22 2020-04-14 Vmware, Inc. Internet recovery of a windows configuration
US10740109B2 (en) 2017-03-22 2020-08-11 Vmware, Inc. Configuring a computing device using managed operating system images
US10409619B2 (en) 2017-03-22 2019-09-10 Vmware, Inc. Persistent enrollment of a computing device using vendor autodsicovery
US10445106B2 (en) 2017-03-22 2019-10-15 Vmware, Inc. Persistent enrollment of a computing device using a BIOS
US10635819B2 (en) * 2017-03-22 2020-04-28 Vmware, Inc. Persistent enrollment of a computing device based on a temporary user
TWI633487B (zh) * 2017-05-05 2018-08-21 神雲科技股份有限公司 自動回復基本輸入輸出系統映像檔的方法及電腦系統
US10866623B2 (en) * 2018-11-16 2020-12-15 Dell Products L.P. Information handling system and method to detect and recover from no power/no post failures
US11481248B2 (en) * 2020-08-05 2022-10-25 Dell Products L.P. Completing an SMI task across multiple SMI events

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265720A (ja) * 1992-03-19 1993-10-15 Fujitsu Ltd システム情報管理方式
KR20000019147A (ko) * 1998-09-09 2000-04-06 구자홍 컴퓨터의 롬 바이오스(rom bios)구동 시스템 및 그 방법
US7318089B1 (en) * 1999-09-30 2008-01-08 Intel Corporation Method and apparatus for performing network-based control functions on an alert-enabled managed client
US6418498B1 (en) * 1999-12-30 2002-07-09 Intel Corporation Integrated system management memory for system management interrupt handler independent of BIOS and operating system
US7149978B1 (en) 2000-12-27 2006-12-12 Adaptec, Inc. Methods for managing host adapter settings
JP2003316582A (ja) 2002-04-24 2003-11-07 Nec System Technologies Ltd 2重化biosの制御方法と装置
US7003659B2 (en) * 2002-04-29 2006-02-21 Intel Corporation Method and/or apparatus for reliably booting a computer system
US20040030877A1 (en) * 2002-08-06 2004-02-12 Aleksandr Frid Using system BIOS to update embedded controller firmware
US20040076043A1 (en) * 2002-10-21 2004-04-22 Phoenix Technologies Ltd. Reliable and secure updating and recovery of firmware from a mass storage device
JP4597551B2 (ja) * 2003-03-28 2010-12-15 株式会社リコー ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェア更新方法及びプログラム
JP2004326287A (ja) * 2003-04-23 2004-11-18 Mitsubishi Electric Corp プログラム遠隔更新システム
US20050132351A1 (en) * 2003-12-12 2005-06-16 Randall Roderick K. Updating electronic device software employing rollback
US7457945B2 (en) * 2004-03-23 2008-11-25 Dell Products L.P. System and method for providing a secure firmware update to a device in a computer system
TWI250407B (en) 2004-06-10 2006-03-01 Acer Inc Electronic system capable of using universal plug and play (UPNP) protocol to update software program and method thereof
JP2006039660A (ja) 2004-07-22 2006-02-09 Yokogawa Electric Corp クライアントサーバシステムおよびクライアント装置のプログラムバージョン変更方法
US7373551B2 (en) 2004-12-21 2008-05-13 Intel Corporation Method to provide autonomic boot recovery
JP4810172B2 (ja) * 2005-09-29 2011-11-09 日本電気株式会社 制御装置及びバージョンアップ方法並びにプログラム
US20080046710A1 (en) * 2006-08-17 2008-02-21 Steven Maddocks Switching firmware images in storage systems
US8082431B2 (en) * 2006-09-29 2011-12-20 Intel Corporation System and method for increasing platform boot efficiency
US7886190B2 (en) * 2006-09-29 2011-02-08 Intel Corporation System and method for enabling seamless boot recovery
CN100435106C (zh) * 2006-11-21 2008-11-19 西安交通大学 应用服务器的分级再生方法
US8566961B2 (en) * 2008-08-08 2013-10-22 Absolute Software Corporation Approaches for a location aware client
JP5126686B2 (ja) 2009-01-06 2013-01-23 日本電気株式会社 情報処理装置、情報処理装置の動作方法及びそのプログラム
TWI386847B (zh) * 2009-02-04 2013-02-21 Novatek Microelectronics Corp 可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置
CN101587456B (zh) 2009-07-08 2011-06-15 腾讯科技(深圳)有限公司 一种对软件运行的保护处理方法及装置
CN102473090B (zh) * 2009-08-25 2016-02-10 惠普开发有限公司 可用于访问bios的多个接口文件
US20130086571A1 (en) * 2011-09-30 2013-04-04 International Business Machines Corporation Dynamically Updating Firmware In A Computing System
US20130262849A1 (en) * 2012-03-29 2013-10-03 Bheeshmar Redheendran Automatic reconfiguration of initialization firmware in a computer system
CN104185836B (zh) 2012-03-31 2019-01-18 英特尔公司 用于在系统改变之后验证计算设备的适当操作的方法和系统

Also Published As

Publication number Publication date
US9880862B2 (en) 2018-01-30
US20150067311A1 (en) 2015-03-05
CN104185836B (zh) 2019-01-18
EP2831722A4 (en) 2015-09-30
EP2831722B1 (en) 2019-08-28
KR20140125878A (ko) 2014-10-29
AU2012375273B2 (en) 2016-05-26
EP2831722A1 (en) 2015-02-04
CN104185836A (zh) 2014-12-03
JP6132009B2 (ja) 2017-05-24
JP2015512535A (ja) 2015-04-27
AU2012375273A1 (en) 2014-09-25
WO2013147915A1 (en) 2013-10-03

Similar Documents

Publication Publication Date Title
KR101626433B1 (ko) 시스템 변경 후 컴퓨팅 장치의 적절한 동작을 확인하는 방법 및 시스템
US11010172B2 (en) Software upgrade and disaster recovery on a computing device
KR101931007B1 (ko) 컴퓨팅 디바이스의 초기화 트레이스
KR101861724B1 (ko) 사전 부팅 펌웨어 갱신을 위한 선택적인 전력 관리
US11169819B2 (en) Information handling system (IHS) and method to proactively restore firmware components to a computer readable storage device of an IHS
US9632806B1 (en) Remote platform configuration
US20150074386A1 (en) Boot method and boot system
EP3163441B1 (en) Computer device and memory starting method for computer device
US11281768B1 (en) Firmware security vulnerability verification service
US11307907B2 (en) Information handling system and method to automatically synchronize operating system and boot firmware languages
US11886886B2 (en) System and method for runtime synchronization and authentication of pre-boot device drivers for a rescue operating system
US11030047B2 (en) Information handling system and method to restore system firmware to a selected restore point
US11861011B2 (en) Secure boot process
CN116521209B (zh) 操作系统的升级方法及装置、存储介质及电子设备
US9778936B1 (en) Booting a computing system into a manufacturing mode
US11204704B1 (en) Updating multi-mode DIMM inventory data maintained by a baseboard management controller
CN115113941A (zh) 具有可加载bios预设配置的系统及加载bios预设配置的方法
WO2016145774A1 (zh) 电子设备的启动方法和装置
US20240211350A1 (en) Supporting automatic and failsafe booting of bmc and bios firmware in a critical secured server system
CN110119638A (zh) 一种可信度量方法

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
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee