KR20160046903A - 시스템의 초기화 전의 디바이스 구성 - Google Patents

시스템의 초기화 전의 디바이스 구성 Download PDF

Info

Publication number
KR20160046903A
KR20160046903A KR1020167007995A KR20167007995A KR20160046903A KR 20160046903 A KR20160046903 A KR 20160046903A KR 1020167007995 A KR1020167007995 A KR 1020167007995A KR 20167007995 A KR20167007995 A KR 20167007995A KR 20160046903 A KR20160046903 A KR 20160046903A
Authority
KR
South Korea
Prior art keywords
computing system
configuration data
register
power
value
Prior art date
Application number
KR1020167007995A
Other languages
English (en)
Other versions
KR101846753B1 (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 KR20160046903A publication Critical patent/KR20160046903A/ko
Application granted granted Critical
Publication of KR101846753B1 publication Critical patent/KR101846753B1/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/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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/4418Suspend and resume; Hibernate and awake

Landscapes

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

Abstract

예는 컴퓨팅 시스템 내의 디바이스를 구성하는 방법, 시스템 및 컴퓨터 판독 가능 매체를 개시한다. 이 예는 대기 전력이 디바이스에 인가될 때 구성 데이터를 프로세싱한다. 게다가, 이 예는 구성 데이터에 기초하여 디바이스를 구성하고, 여기서 디바이스는 컴퓨팅 시스템의 초기화 전에 구성된다.

Description

시스템의 초기화 전의 디바이스 구성{DEVICE CONFIGURATION PRIOR TO INITIALIZATION OF A SYSTEM}
컴퓨팅 시스템(computing system)은 자체가 초기화될 때 다양한 전기 디바이스를 구성할 수 있다. 이 전기 디바이스의 구성은 컴퓨팅 시스템의 동작에 영향을 미치는 회로, 코딩(coding) 및 하드웨어 기능에 관한 것일 수 있다.
첨부 도면에서, 동일한 번호는 동일한 구성요소 또는 블록을 언급한다. 다음의 상세한 설명은 도면을 참조한다:
도 1은 메모리로부터의 구성 데이터를 프로세싱하고 이 구성 데이터에 기초하여 자신을 구성하는 디바이스에 대기 전력을 전달하는 전력 회로를 포함하는 예의 컴퓨팅 시스템의 블록도;
도 2(a)는 디바이스에 주 전력을 전달하기 전에 이 디바이스를 구성하기 위하여 대기 전력을 전달하는 전력 회로에 의해 교류(alternating current; AC) 전력을 수신하는 예의 컴퓨팅 시스템에 대한 도;
도 2(b)는 디바이스 내부의 레지스터(register)에 대한 구성 데이터를 포함하고, 레지스터의 함수, 연관된 하드웨어 및 대응하는 레지스터를 프로그래밍할 값을 포함하는 예의 데이터 구조에 대한 도;
도 3은 구성 데이터를 프로세싱하고 컴퓨팅 시스템의 초기화 전에 구성 데이터에 기초하여 디바이스를 구성하는 예의 방법의 흐름도;
도 4는 이에 따라 디바이스를 구성하기 위해 대기 전력을 수신하도록 컴퓨팅 시스템을 AC 전원에 플러깅하는 예의 방법의 흐름도; 및
도 5는 주 전력을 디바이스에 인가하기 전에 대기 전력을 디바이스에 인가하고, 구성 데이터를 프로세싱하고, 구성 데이터에 기초하여 이 디바이스를 구성하기 위하여 머신 판독 가능 저장 매체 내의 명령어를 실행하는 프로세서를 구비하는 예의 컴퓨팅 디바이스의 흐름도.
컴퓨팅 시스템은 기본 입력 출력 시스템(basic input output system; BIOS)의 초기화 시에 자체의 내부 구성요소들을 구성할 수 있다. BIOS는 컴퓨팅 시스템 내의 전기 디바이스들이 구성될 수 있는 인터페이스를 규정하는 표준이다. 구성(configuration)은 컴퓨팅 시스템 기능 및 성능에 영향을 미치는 코딩, 하드웨어 구성요소 및 다른 문서화에 관한 것이다. 컴퓨팅 시스템 내부의 전자 디바이스는 컴퓨팅 시스템의 초기화(예를 들어, 컴퓨터의 부팅) 시에 적절한 구성을 가지는 그러한 방식으로 설계될 수 있다. 이 디바이스는 정확한 구성으로 디폴트되어야 하거나 또는 컴퓨팅 시스템은 부팅되지 않을 수 있다. 게다가, 디바이스가 부정확하게 구성되면, 이로 인해 부정확하게 구성되는 전기 디바이스들 사이에 경합(contention)이 발생할 수 있고 컴퓨팅 시스템을 부팅할 때 레이턴시(latency)를 야기할 수 있으며 또한 손상을 초래할 수 있다. 예를 들어, 전기 디바이스에서 나오는 전기 접속을 포함하는 핀(pin)이 출력에 배타적으로 사용될 수 있으므로, 핀을 입력으로 구성하면 핀은 기능을 행하지 못하게 되거나 컴퓨팅 시스템에 손상을 일으킬 수 있다. 게다가, 디바이스의 공간은 제한될 수 있으므로, 상이한 구성을 로딩하기 위하여 추가 전용 핀을 사용하는 것이 실행 가능하지 않을 수 있다.
이 문제를 처리하기 위하여, 본원에서 개시되는 구현은 컴퓨팅 시스템의 초기화 전에 컴퓨팅 시스템 내의 디바이스를 구성한다. 디바이스에 대기 전력(standby power)을 인가하여 메모리 내의 구성 데이터를 획득하라고 디바이스에 신호한다. 디바이스는 그 후에 이 구성 데이터를 프로세싱하고 이 구성 정보에 기초하여 자신을 구성할 수 있다. 디바이스는 컴퓨팅 시스템의 초기화 전에 구성된다. 컴퓨팅 시스템의 초기화 전에 디바이스를 구성함으로써 초기화 시에 디바이스가 이미 구성되어 있을 수 있으므로 컴퓨팅 시스템을 부팅하는 것과 연관되는 레이턴시가 감소된다. 게다가, 컴퓨팅 시스템의 초기화 전에 디바이스를 구성하면 디바이스가 컴퓨팅 시스템을 부팅하기 위해 정확하게 구성되는 것이 보장된다.
다른 구현에서, 디바이스 내부의 레지스터는 구성 데이터에 대응하는 값으로 프로그래밍된다. 이 구현에서, 레지스터는 하드웨어 구성요소의 상태와 관련되는 값을 저장할 수 있다. 하드웨어 구성요소가 레지스터를 이 값으로 프로그래밍하는 것을 통해 디바이스에 의해 관리될 수 있으므로 이것은 제어 및 유연성을 제공한다. 예를 들어, 디바이스에서 오는 각각의 핀은 각각의 레지스터를 통해 구성될 수 있다. 각각의 레지스터를 상이한 값으로 프로그래밍함으로써 각각의 핀이 상이한 기능을 수행하는 것이 가능하다. 더욱이, 이것은 또한 디바이스가 각각의 핀의 기능을 변경하는 것을 가능하게 한다. 예를 들어, 하나의 핀은 입력을 포함할 수 있고, 다른 핀은 출력을 포함할 수 있으며, 반면에 또 다른 핀은 입력 및 출력으로서 동작할 수 있다. 디바이스는 이 핀의 기능을 다른 구성으로 변경할 수 있다.
추가 구현에서, 디바이스는 구성 데이터에 기초하여 값을 식별하는 데이터 테이블(data table)을 포함할 수 있다. 데이터 테이블에 디바이스 내부의 레지스터를 프로그래밍할 값을 제공하면 사용자 입력 없이 자동 구성이 제공된다. 구성 데이터에 기초하여 컴퓨팅 시스템의 초기화 전에 디바이스를 구성함으로써 다양한 디바이스에 걸쳐 여러 구성의 변형이 가능하다. 게다가, 특정한 레지스터를 데이터 테이블로부터의 값으로 프로그래밍함으로써 디바이스는 자신을 플랫폼 특정 인터페이스가 아닌 데이터 테이블로부터 구성할 수 있으므로, 디바이스는 상이한 컴퓨팅 시스템 플랫폼에서 사용되는 것이 가능하다. 더욱이, 이것은 각각의 플랫폼이 각 플랫폼에 특정한 디바이스를 사용하는 것과는 반대로, 디바이스가 다수의 플랫폼에서 사용되는 것을 가능하게 한다. 게다가, 디바이스를 구성하기 위하여 값을 식별하는 테이블을 사용함으로써 구성 데이터를 수신하는 데 사용될 수 있는 전용 스트래핑 핀(strapping pin)을 제거한다. 이것은 또한 디바이스로부터 오는 핀의 수를 줄임으로써 컴퓨팅 시스템 내의 공간을 절약한다.
요약하면, 본원에서 개시되는 구현은 컴퓨팅 시스템을 초기화하는 것과 연관되는 레이턴시를 감소시킨다. 게다가, 본원에서 개시되는 구현에 의해 디바이스는 다양한 컴퓨팅 시스템 사이의 다수의 구성에 대해 가능하다.
이제 도면을 참조하면, 도 1은 대기 전력(106)을 디바이스(108)에 전달하는 전력 회로(104)를 포함하는 예의 컴퓨팅 시스템(102)의 블록도이다. 대기 전력(106)을 인가함으로써, 디바이스(108)는 연관되는 메모리(110)로부터 구성 데이터(112)를 획득하고 모듈(116)에서 디바이스(108)를 구성하기 위해 모듈(114)에서 구성 데이터를 프로세싱할 수 있다. 디바이스(108)는 부팅을 위한 컴퓨팅 시스템(102)의 초기화 전에 구성된다. 컴퓨팅 시스템(102)의 초기화 전에 디바이스(108)를 구성함으로써 디바이스는 초기화 시에 이미 구성되어 있을 수 있으므로 컴퓨팅 시스템을 초기화하는 것과 연관되는 레이턴시가 제거된다. 컴퓨팅 시스템(102)은 유한의 동작 세트를 수행하도록 프로그래밍될 수 있는 전자 디바이스이고 이에 따라 디바이스(108) 및 전력 회로(104) 외에 중앙 처리 장치(central processing unit; CPU)를 포함할 수 있다. 컴퓨팅 시스템(102)의 구현은 모바일 디바이스, 클라이언트 디바이스, 개인용 컴퓨터, 데스크탑 컴퓨터, 랩탑(laptop), 태블릿, 노트북, 비디오 게임 콘솔 또는 다양한 애플리케이션을 실행하고 동작을 수행할 수 있는 다른 유형의 전자 디바이스를 포함한다. 게다가, 도 1이 컴퓨팅 시스템(102)을 전력 회로(104) 및 디바이스(108)를 포함하는 것으로 도시할지라도, 이것은 설명을 위해 행해진 것이므로 구현되는 것들이 이 표현으로 제한되지 않을 것이다. 예를 들어, 컴퓨팅 시스템(102)은 또한 마더보드(motherboard) 및 중앙 처리 장치(CPU)를 포함할 수 있다.
전력 회로(104)는 컴퓨팅 시스템(102) 내부에서 대기 전력(106)을 디바이스(108)에 인가하는 하나의 유형의 전력 프로세싱 회로이다. 이에 따라, 전력 회로(104)는 대기 전력(106)을 디바이스(108)에 인가하기 위해 교류(AC) 전원(power source)과 같은 외부 전원(도시되지 않음)에 접속될 수 있다. 전력 회로(104)는 외부 소스로부터 전력을 수신하고 대기 전력(106)을 획득하기 위해 수신된 전력을 필터링, 변환 및/또는 조정할 수 있다. 하나의 구현에서, 전력 회로(104)는 또한 디바이스(108)에 대기 전력(106) 외에 주 전력을 전달할 수 있다. 다른 구현에서, 전력 회로(104)는 AC 전원에 접속되고 디바이스(108)에 대기 전력(106)을 전송하는 저 전압 레일(rail) 및 주 전력을 전송하는 고 전압 레일을 포함할 수 있다. 이 구현에서, 컴퓨팅 시스템(102)은 턴온(turn-on)(즉, 부팅)되고, 따라서 고 전압 레일 상에서 더 큰 규모의 전력(예를 들어, 주 전력)을 수신할 수 있다. 주 전력은 부팅을 위해 컴퓨팅 시스템(102)을 초기화한다. 컴퓨팅 시스템(102)의 초기화는 컴퓨팅 시스템(102)의 부팅 또는 파워-온(power on)을 포함할 수 있고, 그리고 이에 따라 전체의 컴퓨팅 시스템(102)을 구성하기 위해 CPU 및 운영 시스템의 파워-온을 포함할 수 있다. 전력 회로(104)의 구현은 전력 관리 회로, 변환기, 정류기, 전력 저장소, 역률(power factor) 정정 회로, 회로 로직(circuit logic), 증폭기 또는 디바이스(108)에 전달하기 위한 대기 전력(106)을 획득하기 위하여 입력 전력을 수신할 수 있는 다른 유형의 전력 회로(104)를 포함한다.
대기 전력(106)은 컴퓨팅 시스템(102)이 외부 전원에 접속될 때 전력 회로(104)에 의해 디바이스(108)에 인가되는 보조 전력이다. 대기 전력(106)은 컴퓨팅 디바이스가 접속될 때 구성 데이터(112)를 판독하기 위한 디바이스(108)로의 신호로서 동작한다. 하나의 구현에서, 일단 컴퓨팅 시스템(102)이 턴온(즉, 부팅)되면, 전력 회로(104)는 대기 전력(106) 외에 주 전력을 디바이스(108)에 전달한다; 그러나, 컴퓨팅 시스템(102)에 전원이 차단되면, 대기 전력(106)은 디바이스(108)에 인가되기 위해 남는다. 이 구현에서, 컴퓨팅 시스템(102)이 외부 전원으로부터 분리되면, 대기 전력(106)은 제거된다. 대기 전력(106)의 구현은 전류, 전압 및/또는 디바이스(108)에 인가될 수 있는 다른 충전을 포함한다.
디바이스(108)는 컴퓨팅 시스템(102) 내의 적어도 하나의 하드웨어 구성요소 및/또는 적어도 하나의 특정한 사용을 관리할 수 있고, 이에 따라 컴퓨팅 시스템(102)에서 사용되기 위한 입력/출력(input/output; I/O) 제어기와 같은 제어기를 포함할 수 있는 집적 회로이다. 디바이스(108)는 CPU와 더불어 컴퓨팅 시스템(102)의 마더보드(도시되지 않음) 상에서 사용된다. 이 구현에서, CPU는 컴퓨팅 시스템(102)의 전반적인 동작을 관리하고 반면에 디바이스(108)는 적어도 하나의 하드웨어 구성요소를 관리하고/하거나 컴퓨팅 시스템(102)의 하나의 특정한 사용을 관리할 수 있다. 이 점에 있어서, 디바이스(108)는 보조 프로세서로서 동작할 수 있고 반면에 CPU는 주 처리 장치로서 동작한다. 다른 구현에서, 디바이스(108)는 디바이스(108)에 의해 실행 가능한 머신 판독 가능 명령어를 구비하는 펌웨어 기반 디바이스를 포함할 수 있다. 이 구현에서, 디바이스(108)는 슈퍼 I/O, 컴퓨팅 시스템(102)의 일반적인 기능 이외의 구체적 목적 또는 특정한 사용에 사용되도록 맞춤화될 수 있는 주문형 반도체(application-specific integrated circuit; ASIC)와 같은 펌웨어 기반 디바이스를 포함한다. 디바이스(108)는 구성 데이터(112) 외에 메모리(110) 내에 저장되는 펌웨어(즉, 머신 판독 가능 명령어)에 의해 동작할 수 있다. 컴퓨팅 시스템(102)이 외부 전원에 접속되면(그러나, 아직 턴온되지 않았다), 대기 전력(106)이 인가되고 따라서 디바이스(108)는 메모리(110)로부터 구성 데이터(112)를 판독할 수 있다. 디바이스(108)는 자체의 핀을 구성하기 위해 구성 데이터(112)를 사용하고 초기화를 위해 희망하는 레지스터를 프로그래밍한다. 일단 컴퓨팅 시스템(102)이 턴온되고 주 전력을 수신하면, 디바이스(108)는 이미 구성되어 있어서 컴퓨팅 시스템(102)을 초기화할 때 기본 입력/출력 인터페이스 또는 다른 유형의 인터페이스를 구성하지 않고 동작할 수 있다. 도 1이 디바이스(108)를 메모리(110) 및 모듈들(114 내지 116)을 포함하는 것으로 도시할지라도, 이것은 구현을 제한하기보다는 설명 목적으로 행해진 것이다. 예를 들어, 디바이스(108)는 또한 프로그램 가능 레지스터 및/또는 포트(port) 등을 포함할 수 있다. 프로그램 가능 레지스터는 디바이스(108)에 의해 구성 데이터(112)에 대응하는 값들로 기록된다. 프로그램 가능 레지스터에 기록되는 값들은 상기 프로그램 가능 레지스터에 대응하는 하드웨어 구성요소의 기능을 표시한다. 디바이스(108)의 구현은 슈퍼 I/O, 집적 회로, ASIC, 보조 프로세서, 보조 제어기, 임베디드 시스템(embedded system), 칩셋, 마이크로칩, 반도체 또는 구성을 위한 대기 전력(106)을 수신할 수 있는 다른 유형의 전자 구성요소를 포함한다.
메모리(110)는 구성 데이터(112)를 유지하는, 디바이스(108) 내부의 저장 에어리어(area)이다. 하나의 구현에서, 대기 전력(106)은 디바이스(108)가 구성 데이터(112)를 검색하도록 메모리(110)에 동력을 공급할 수 있다. 다른 구현에서, 메모리(110)는 구성 데이터(112)를 유지하기 위하여 비휘발성 메모리를 포함한다. 추가 구현에서, 메모리(110)는 디바이스(108)에 대한 구성 데이터에 대응하여 레지스터를 프로그래밍하는 값을 가지는 데이터 테이블을 포함할 수 있다. 메모리(110)의 구현은 비휘발성 메모리, 휘발성 메모리, 플래시 메모리, 로컬 저장소, 저장 에어리어, 메모리 버퍼, 캐시, 랜덤 액세스 메모리(random access memory; RAM), 동적 RAM, 전기적 소거 가능 프로그램 가능 판독 전용 메모리(Electrically Erasable Programmable Read-Only memory; EEPROM), 판독 전용 메모리(ROM), 저장 드라이브 또는 구성 데이터(112)를 유지할 수 있는 다른 저장 에어리어를 포함한다.
구성 데이터(112)는 디바이스(108)를 구성하기 위하여 메모리(110)에 의해 저장되는 일련의 변수이다. 이 방식에서, 구성 데이터(112)는 디바이스(108)에게 디바이스 자신을 어떻게 구성해야 하는지를 명령한다. 하나의 구현에서, 구성 데이터(112)는 컴퓨팅 시스템(102) 내의 마더보드 상에서 디바이스(108)의 위치를 규정하는 스트랩핑 데이터(strapping data)를 포함할 수 있다. 이 구현에서, 컴퓨팅 시스템(102)은 다수의 마더보드 상에 다수의 디바이스를 포함하고, 따라서 스트래핑 데이터가 어떤 마더보드 상에 있는 어떤 디바이스의 위치 등을 식별할 수 있다. 게다가, 스트래핑 데이터는 다수의 구성 중의 특정한 구성을 특정한 마더보드 등과 함께하는 특정한 디바이스에 대해 식별하는 데 사용될 수 있다. 스트래핑 데이터를 구성 데이터(112)로서 포함함으로써 디바이스(108)에 대한 각각의 유형의 구성을 구동하는 전용 스트래핑 핀이 제거되므로 디바이스(108) 상의 핀의 수가 감소되고 디바이스(108)의 전체 공간이 줄어든다. 다른 구현에서, 구성 데이터(112)는 디바이스(108) 내의 특정한 레지스터의 아이덴티피케이션(identification)을 포함할 수 있다. 이에 따라, 상기 레지스터를 프로그래밍할 값을 결정하기 위하여 특정한 레지스터의 아이덴티피케이션이 사용될 수 있다. 이 구현은 이후의 도면에서 더 상세하게 설명된다.
모듈(114)에서, 디바이스(108)는 메모리(110)로부터 검색되는 구성 데이터(112)를 프로세싱한다. 대기 전력(106)을 디바이스(108)에 인가함으로써 디바이스(108)에게 모듈(114)에서 프로세싱될 구성 데이터(112)를 획득하라고 신호한다. 모듈(114)의 하나의 구현에서, 디바이스(108)는 구성 데이터에 대응하는 값을 식별하기 위해 데이터 테이블 또는 데이터 구조(data structure)를 활용할 수 있다. 데이터 테이블로부터의 값을 사용함으로써, 디바이스(108)는 레지스터에, 레지스터에 대응하는 하드웨어 구성요소를 구성하도록 프로그래밍할 수 있다. 이 구현은 이후의 도면에서 더 상세하게 논의된다. 모듈(114)의 구현은 명령어 세트, 프로세스, 연산, 로직, 알고리즘, 기술, 논리 함수, 펌웨어 및/또는 구성 데이터(112)를 프로세싱하기 위해 디바이스(108)에 의해 실행 가능한 소프트웨어를 포함한다.
모듈(116)에서, 디바이스(108)는 메모리(110) 내의 구성 데이터(112)에 기초하여 구성된다. 모듈(116)의 하나의 구현에서, 디바이스(108)는 컴퓨팅 시스템(102) 내의 디바이스(108)를 구성하기 위해 값을 희망하는 레지스터(도시되지 않음)에 기록할 수 있다. 값을 디바이스(108) 내의 희망하는 레지스터에 기록함으로써, 희망하는 레지스터에 대응하여 하드웨어 구성요소를 구성하는 것이 가능하다. 디바이스(108)는 모듈(116)에서 컴퓨팅 시스템(102)의 초기화 전에 구성된다. 컴퓨팅 시스템(102)의 초기화는 CPU 및/또는 컴퓨팅 시스템(102)을 부팅하는 것을 포함할 수 있다. 모듈(116)의 구현은 명령어 세트, 프로세스, 연산, 로직, 알고리즘, 기술, 논리 함수, 펌웨어 및/또는 구성 데이터(112)에 기초하여 디바이스(108)를 구성하기 위해 디바이스(108)에 의해 실행될 수 있는 소프트웨어를 포함한다.
도 2(a)는 컴퓨팅 시스템(102)의 초기화를 위한 주 전력(220)의 전달 전에 디바이스(108)를 구성하도록 입력 전력을 수신하고 대기 전력(106)을 전달하는 예의 컴퓨팅 시스템(102)의 도면이다. 디바이스(108)는 컴퓨팅 시스템(102)이 외부 전원에 접속될 수 있을 때 구성 데이터를 로딩할 수 있다. 컴퓨팅 시스템(102)이 외부 전원에 접속되어 있는 동안, 전력 회로(104)는 교류(AC) 전력(218)을 수신하고 대기 전력(106)을 디바이스에 공급할 수 있다. 이는 컴퓨팅 시스템(102)이 턴온되거나 부팅되기 전에 디바이스(108)가 맞춤 구성을 로딩하는 것을 가능하게 한다. 본 출원 전체에 걸쳐, 핀 및 레지스터와 같은 하드웨어 구성요소를 구성하는 예가 도시 및/또는 설명될지라도, 구현은 제한되지 않아야 한다. 예를 들어, 구성 데이터는 핀 구성; 팬 제어(fan control); 열 보호; 기능 가능/불능; 내부/외부 디바이스 어드레스; 통신 프로토콜; 버스 속도; 통신 버스 폭; 디버깅 정보; 컴퓨팅 시스템 역량 데이터(capability data); 프로그램 가능 레지스터 값; 및 신호 어서팅 타이밍(asserting timing)과 같은, 디바이스(108) 동작을 위한 프로그램 코드를 포함할 수 있다.
AC 전력(218)은 통신 시스템(102)이 외부 전원(도시되지 않음)에 접속될 때 전력 회로(104)에 제공되는 충전이다. 전력 회로(104)는 디바이스(108)에 전달되는 전력의 양을 제어할 수 있다. 하나의 구현에서, AC 전력(218)은 컴퓨팅 시스템(102)이 외부 전원에 플러그인(즉, 접속)되어 있는 동안, 계속해서 전력 회로(104)에 전달된다. 이 구현에서, 전력 회로(106)는 심지어 컴퓨팅 시스템(102)이 아직 초기화되거나 턴온되지 않았을지라도 대기 전력(106)을 제공한다.
주 전력(220)은 컴퓨팅 시스템(102)의 전체의 기능을 초기화하기 위해 컴퓨팅 시스템(102) 및 디바이스(108)에 인가된다. 하나의 구현에서, 운영 시스템을 컴퓨팅 시스템(102)의 전체의 기능에 대하여 초기화하기 위해서 중앙 처리 장치(CPU)에 전력(220)이 제공된다. 이 구현에서, 사용자는 주 전력(220)을 전달하는 전력 회로(104)의 전력 상태를 초기화함으로써 컴퓨팅 시스템(102)을 부팅할 수 있다. 주 전력(220)의 구현은 전류, 전압 및/또는 컴퓨팅 시스템(102)을 초기화할 수 있는 다른 충전을 포함한다.
레지스터(222)는 디바이스(108)가 정보의 비트를 판독하거나 기록하는 그와 같은 방식으로 정보의 비트(즉, 값)를 저장한다. 정보의 비트는 컴퓨팅 시스템(102) 내부의 하드웨어 구성요소의 상태를 표현한다. 이 구현에서, 디바이스(108)는 컴퓨팅 시스템(102) 내부의 하드웨어 구성요소(도시되지 않음) 중 적어도 하나를 관리한다. 이 점에서, 레지스터(222)는 하드웨어 기능에 대한 정보에 대한 플레이스홀더(placeholder)이다. 값(224)은 레지스터(222)와 연관되는 하드웨어 구성요소의 기능을 표시한다. 다른 구현에서, 레지스터(222)는 구성 데이터를 통해 열 회로(thermal circuit)를 구성한다. 이 구현에서, 열 회로는 컴퓨팅 시스템(102)의 초기화 전에 구성된다. 컴퓨팅 시스템(102)을 초기화하기 전에 열 센서 및/또는 냉각 팬을 포함할 수 있는 열 회로를 구성함으로써 컴퓨팅 시스템(102)의 부팅 전에 손상 또는 다른 유형의 열적인 문제가 방지될 수 있다.
값(224)은 디바이스(108)에 의해 레지스터(222)로 프로그래밍되는 정보의 비트이다. 구성 데이터를 사용함으로써, 값(224)은 도 2(b)에서와 같이 데이터 테이블 또는 데이터 구조를 사용하여 식별될 수 있다. 데이터 테이블로부터의 값(224)을 식별함으로써, 디바이스(108)는 값(224)을 레지스터(222)에 프로그래밍하고/프로그래밍하거나 기록할 수 있게 된다. 도 2(b)에서의 각각의 값은 하드웨어 구성요소 중의 다양한 기능을 표현할 수 있다.
도 2(b)는 대응하는 값을 식별하기 위해 구성 데이터를 포함하는 예의 데이터 구조(212)의 도면이다. 대기 전력을 디바이스에 적용함으로써, 디바이스는 메모리로부터 구성 데이터를 획득할 수 있다. 디바이스는 대응하는 값, 기능 및/또는 하드웨어를 식별하기 위해 이 구성 데이터를 프로세싱할 수 있다. 디바이스는 레지스터를 하드웨어 기능용으로 프로그래밍하기 위해서 대응하는 값, 기능 및/또는 하드웨어를 사용한다. 디바이스는 컴퓨팅 시스템의 초기화 전에 레지스터를 구성용으로 프로그래밍한다. 하나의 구현에서, 데이터 구조는 특정한 레지스터에 제공되는 대응하는 값, 기능 및/또는 하드웨어를 결정하기 위해 데이터를 갖는 테이블을 포함할 수 있다. 이 구현에서, 구성 데이터는 특정한 레지스터의 아이덴티피케이션을 포함하고, 그러므로, 디바이스는 구성을 위해 대응하는 기능, 하드웨어 및/또는 값을 식별할 수 있다. 예를 들어, 디바이스의 메모리 내에 저장되는 구성 데이터는 레지스터(REG 1, REG 2, REG 3) 중 하나를 식별할 수 있고, 그러므로 디바이스는 대응하는 값(0X02, 0X00, 0X01)을 결정하기 위해 이 구성 데이터를 프로세싱할 수 있다.
대응하는 값(0X02, 0X00, 0X01)의 각각은 하드웨어 구성요소(PIN, THERMAL, BUS WIDTH)와 상관되고 이 방식으로 하드웨어 구성요소는 기능(OUTPUT, MONITOR, COMM)을 행할 수 있다. 예를 들어, 디바이스에 의해 프로세싱되는 구성 데이터는 디바이스와 연관되는 핀을 구성하는 레지스터 1(REG 1)을 식별할 수 있다. 이 예에서, 디바이스는 핀이 출력으로서 동작해야 함을 표현하는 대응하는 값(0X02)을 결정할 수 있다. 다른 예에서, 구성 데이터는 컴퓨팅 시스템 내부의 열 회로를 구성하는 레지스터 2(REG 2)를 식별할 수 있다. 디바이스는 그 후에 열 회로가 컴퓨팅 시스템의 열적 양태를 모니터링해야 함을 표현하는 대응하는 값(0X00)을 결정할 수 있다. 추가 예에서, 구성은 버스 폭을 구성하는 레지스터 3(REG 3)을 식별할 수 있다. 디바이스는 그 후에 버스 폭이 통신을 위한 것임을 표현하는 대응하는 값(0X01)을 결정할 수 있다. 값(0X02, 0X00, 0X01)은 구성을 위하여 디바이스에 대한 다양한 내부 레지스터로 프로그래밍된다. 도 2(b)가 데이터 구조를 다양한 레지스터들(REG 1, REG 2 및 REG 3), 하드웨어 기능(OUTPUT, MONITOR, COMM), 하드웨어 구성요소(PIN, THERMAL, BUS WIDTH) 및 대응하는 값(0X02, 0X00, 0X01)으로 도시할지라도, 이는 구현을 제한하기보다는 오히려 설명을 목적으로 행해진 것이다. 예를 들어, 레지스터는 다수의 레지스터를 포함할 수 있고, 대응하는 값은 이진값을 포함할 수 있고, 하드웨어 기능은 가능/불능(enable/disable), 입력/출력과 같은 추가 기능을 포함할 수 있고, 하드웨어 구성요소는 팬 제어 등과 같은 추가 구성요소를 포함할 수 있다. 다른 구현에서, 구성 데이터는 디바이스의 다양한 구성 중의 구성을 식별하는 스트래핑 데이터를 포함할 수 있다. 스트래핑 데이터는 다수의 구성 중 디바이스에 대한 특정한 구성을 식별하는 데 사용될 수 있다. 이 구현에서, 컴퓨팅 시스템 내에 다수의 디바이스가 있을 수 있으므로, 각각의 디바이스는 상이한 구성을 포함할 수 있다. 게다가, 이 구현에 의해 디바이스는 다양한 컴퓨팅 시스템 중의 다양한 플랫폼 사이에서 사용되는 것이 가능하다.
도 3은 컴퓨팅 시스템의 초기화 전에 구성 데이터를 프로세싱하고 구성 데이터에 기초하여 디바이스를 구성하는 예의 방법의 흐름도이다. 디바이스는 임베디드 시스템(embedded system)과 같이, 메모리 및 메모리 내에 저장되는 프로그램 코드를 포함할 수 있는 펌웨어 기반 디바이스이다. 디바이스 내에 포함되는 펌웨어는 디바이스에 제어 프로그램을 제공하고 이에 따라 디바이스와 연관되는 비휘발성 메모리 내에 저장되고/저장되거나 유지관리될 수 있는 머신 판독 가능 명령어이다. 구성 데이터는 디바이스의 구성을 명령하는 정보를 포함한다. 구성 데이터는 디바이스와 연관되는 메모리 내에 상주할 수 있고, 따라서 대기 전력이 디바이스에 인가될 때, 구성 데이터가 획득될 수 있다. 하나의 구현에서, 구성 데이터는 데이터 구조 내의 값에 대응할 수 있는 데이터를 식별하는 것을 포함할 수 있다. 이 구현에서, 디바이스는 구성 데이터를 사용하여 데이터 구조로부터 값을 획득하고 이 값을 디바이스와 연관되는 레지스터에 프로그래밍할 수 있다. 레지스터는 디바이스에게 레지스터와 연관되는 하드웨어 구성요소를 어떻게 사용해야 하는지를 명령하는 그러한 방식으로 프로그래밍될 수 있는 정보를 포함할 수 있다. 예를 들어, 레지스터는 디바이스 상의 핀과 연관될 수 있고, 이에 따라 레지스터로 프로그래밍되는 값은 입력, 출력 등을 포함할 수 있다. 레지스터의 구현은 전자 레지스터, 하드웨어 레지스터 및/또는 프로세서 레지스터를 포함할 수 있다. 다른 구현에서, 구성 데이터는 디바이스와 함께 사용되는 구성의 유형을 식별하는 스트래핑 데이터를 포함할 수 있다. 추가 구현에서, 구성 데이터는 디바이스가 어떻게 동작해야 하는지에 대한 기능을 포함할 수 있다. 컴퓨팅 시스템의 초기화 전에 디바이스를 구성함으로써 디바이스는 컴퓨팅 시스템을 부팅하기 위한 구성 데이터를 로딩하는 것이 가능해진다. 이것은 디바이스가 컴퓨팅 시스템의 파워-온 전에 맞춤 구성(custom configuration)을 로딩하는 것을 가능하게 한다. 게다가, 이것은 컴퓨팅 시스템을 부팅할 때의 레이턴시를 감소시킬 수 있다. 도 3의 논의 시에, 상황적인 예를 제공하기 위해 도 1 내지 도 2(b)에 있는 구성요소가 언급될 수 있다. 더욱이, 도 3이 도 1에서와 같은 디바이스(108)에 의해 구현되는 것으로 기술될지라도, 이는 다른 적절한 구성요소에서 실행될 수 있다. 예를 들어, 도 3은 도 5에서와 같은 머신 판독 가능 저장 매체(504)와 같은, 머신 판독 가능 저장 매체에서 실행 가능한 명령어의 형태로 구현될 수 있다. 다른 예에서, 도 3은 디바이스(108)의 기능 및 구성을 관리하기 위해 컴퓨팅 시스템과 연관되는 프로세서에 의해 구현될 수 있다.
동작 302에서, 디바이스는 대기 전력이 인가될 때 디바이스와 연관되는 메모리로부터 획득되는 구성 데이터를 프로세싱할 수 있다. 이 동작에서, 디바이스는 교류(AC) 소스로 플러그인될 수 있지만, 주 전력은 아직 인가되지 않을 수 있다. 이 구현에서, 컴퓨팅 시스템은 벽에 있는 전기 콘센트에 플러그인되어 AC 전류를 수신할 수 있고 이 AC 전류는 결과적으로 컴퓨팅 시스템 내의 디바이스에 인가된다. 주 전력은 턴온될 때 컴퓨팅 시스템에 의해 수신될 수 있다. 이 구현에서, 대기 전력은 컴퓨팅 디바이스에 인가되는 주 전력보다 전류의 크기가 더 작다. 이 방식으로, 디바이스는 컴퓨팅 시스템을 주 전력으로 초기화하기 전에 대기 전력으로부터 구성될 수 있다. 대기 전력은 디바이스가 디바이스의 플래시 메모리로부터 구성 데이터를 판독할 수 있는 하나의 유형의 보조 전력이다. 이 구성 데이터는 초기화를 위해 원하는 레지스터를 프로그래밍함으로써 컴퓨팅 시스템 내부의 하드웨어를 구성하는 데 사용된다. 그러므로 주 전력이 인가되고 컴퓨팅 시스템이 초기화되면, 디바이스는 이미 구성되어 있어서 기본 입력 출력 시스템(BIOS) 또는 다른 유형의 구성 인터페이스 없이 적절하게 동작할 수 있다.
동작 302의 다른 구현에서, 디바이스는 디바이스 내부의 레지스터를 프로그래밍하기 위해 구성 데이터를 사용한다. 레지스터는 디바이스와 연관되는 컴퓨팅 시스템 내의 하드웨어 구성요소를 구성한다. 예를 들어, 레지스터는 팬, 열 모니터링, 핀 구성, 열 보호 등의 기능을 포함할 수 있다. 이 구현에서, 레지스터에 프로그래밍되는 값은 하드웨어 구성요소의 기능에 대응한다. 예를 들어, 하드웨어 구성요소는 디바이스에 대한 핀 구성을 포함할 수 있고, 그러므로 레지스터에 프로그래밍되는 값은 특정한 핀이 입력, 출력, 직렬 포트, 병렬 포트 등과 같은 기능을 행할 수 있는지를 표시할 수 있다. 동작 302의 추가 구현에서, 디바이스는 데이터 테이블에 따라 구성 데이터를 프로세싱할 수 있다. 구성 데이터는 프로그래밍할 특정한 레지스터를 식별할 수 있으므로, 디바이스는 테이블을 사용하여 이 특정한 레지스터를 프로그래밍할 상기 레지스터에 대응하는 값을 결정한다. 레지스터에 프로그래밍되는 값은 디바이스와 연관되는 하드웨어 구성요소의 기능을 규정한다.
동작 304에서, 디바이스는 동작 302에서 프로세싱되는 구성 데이터에 기초하여 구성된다. 디바이스는 초기화를 위해 컴퓨팅 시스템에 주 전력을 인가하기 전에 구성된다. 이 구현에서, 디바이스는 컴퓨팅 시스템의 부팅 전에 구성된다. 다른 구현에서, 컴퓨팅 시스템의 열 시스템은 초기화를 위해 주 전력을 컴퓨팅 시스템에 인가하기 전에 디바이스 내부의 레지스터를 통해 구성될 수 있다. 이는 초기화로부터의 이슈를 겪을 때 열 시스템을 구성하는 반응 시간을 줄인다. 추가 구현에서, 동작 304를 처리할 때, 방법은 초기화를 위해 컴퓨팅 시스템에 주 전력을 인가하는 것을 진행할 수 있다.
도 4는 컴퓨팅 시스템을 교류(AC) 소스로 플러그 인하여 이에 따라 대기 전력을 수신하고 디바이스를 구성하는 예의 방법의 흐름도이다. 디바이스는 디바이스의 비휘발성 메모리 내의 데이터 테이블로부터 구성 데이터에 대응하는 값을 획득하기 위해 구성 데이터를 프로세싱한다. 디바이스는 내부 레지스터를 이 값으로 프로그래밍함으로써 데이터 테이블로부터 획득되는 값으로 구성될 수 있다. 구성 데이터는 특정한 내부 레지스터의 아이덴티피케이션을 포함할 수 있고, 따라서 테이블은 특정한 내부 레지스터를 식별하는 구성 데이터 및 특정한 내부 레지스터에 기록되는 대응하는 값을 포함할 수 있다. 게다가, 디바이스의 구성은 컴퓨팅 시스템의 초기화를 위한 주 전력을 인가하기 전에 발생한다. 각각의 내부 레지스터를 구성 데이터에 대응하는 값으로 프로그래밍함으로써 각각의 핀(즉, 전기 접속) 및/또는 다른 하드웨어 구성요소의 기능이 제어되고, 따라서 디바이스의 다수의 상이한 구성에 유연성이 제공될 수 있다. 도 4를 논의할 시에, 상황적인 예를 제공하기 위해 도 1 내지 도 2(b)에서의 구성요소들이 참조될 수 있다. 더욱이, 도 4가 도 1에 도시되는 바와 같이 디바이스(108)에 의해 구현되는 것으로 기술될지라도, 이는 다른 적절한 구성요소 상에서 실행될 수 있다. 예를 들어, 도 4는 디바이스(108)의 기능 및 구성을 관리하기 위해 컴퓨팅 시스템과 연관되는 프로세서에 의해 구현될 수 있다. 다른 예에서, 도 4는 도 5에서와 같은 머신 판독 가능 저장 매체(504)와 같은, 머신 판독 가능 저장 매체 상에서 실행 가능한 명령어의 형태로 구현될 수 있다.
동작 402에서, 컴퓨팅 시스템은 AC 전원에 플러그인된다. AC 전원은 컴퓨팅 시스템에 충전의 플로우를 제공한다. AC 전원은 컴퓨팅 시스템에, 그리고 순차적으로 디바이스에 전류를 제공한다. 하나의 구현에서, 동작 402는 AC 전원으로부터의 AC 전류를 직류(direct current; DC)로 조정(condition)하는 것을 포함할 수 있다. AC 전원은 컴퓨팅 시스템에 2개의 상이한 전력 레일을 제공한다. 이 전력 레일은 대기 전력 및 주 전력을 포함한다. AC 전원은 AC 소스에 플러그인될 때 대기 전력을 하위 전력의 레일 상에서 컴퓨팅 시스템 및 디바이스에 제공한다. 대기 전력은 주 전력보다 더 작은 크기의 전력이다. 즉, 주 전력은 대기 전력보다 더 큰 크기의 전력이다. 주 전력은 컴퓨팅 시스템이 턴온되고/턴온되거나 부팅될 때 상위 전력의 레일 상에서 컴퓨팅 시스템에 전달된다. 이 구현에서, 대기 전력은 구성을 위해 디바이스에 인가되는 최소량의 전력이다. 컴퓨팅 시스템은 디바이스를 시스템의 일부로서 포함하고, 그러므로 디바이스는 컴퓨팅 시스템이 AC 소스에 플러그인될 때 동작 404에서와 같이 대기 전력을 수신할 수 있다. 결과적으로, 컴퓨팅 시스템이 AC 소스로부터 언플러깅(unplugging)되면, 대기 전력은 디바이스로부터 제거된다.
동작 404에서, 디바이스는 컴퓨팅 시스템이 동작 402에서와 같이 AC 소스에 플러그인될 때 대기 전력을 수신한다. 대기 전력은 주 전력과는 반대로, 컴퓨팅 시스템이 전력을 공급받을 수 있지만(예를 들어, AC 전원에 플러그인되는) 아직 가동하지 않았을 때 디바이스에 대기 전류를 제공한다. 이 구현에서, 대기 전력은 동작 414에서 인가되는 주 전력보다 더 작은 크기의 전류이다.
동작 406에서, 디바이스는 동작 404에서 수신되는 대기 전력이 디바이스에 인가될 때 메모리로부터 구성 데이터를 획득하고 구성 데이터를 프로세싱한다. 하나의 구현에서, 디바이스는 구성 데이터를 프로세싱하자마자 동작 408로 진행된다. 동작 406은 기능 면에서 도 3에서와 같은 동작 302와 유사할 수 있다.
동작 408에서, 디바이스는 동작 406에서 프로세싱되는 구성 데이터에 대응하는 테이블로부터 값을 획득할 수 있다. 이 동작에서, 디바이스는 데이터 테이블 또는 다른 유형의 데이터 구조를 포함할 수 있고 동작 406에서 메모리로부터 획득되는 구성 데이터를 사용하여, 디바이스는 구성 데이터에 대응하는 값을 식별할 수 있다. 구성 데이터는 동작 412에서와 같이 레지스터를 하드웨어 구성에 대해 프로그래밍할 테이블 내의 특정한 값을 식별하기 위한 수단이다. 예를 들어, 구성 데이터는 데이터 테이블 내의 값의 위치 또는 동작 410에서 디바이스의 구성에 대하여 프로그래밍할 특정한 레지스터를 식별하는 것을 포함할 수 있다. 테이블로부터 값을 획득할 때, 테이블이 디바이스에 특정될 수 있으므로 이 테이블이 다양한 디바이스에 대하여 다양한 구성을 포함하는 것이 가능하다. 구성 데이터가 특정한 레지스터를 식별할 수 있으므로, 이 식별을 사용하므로, 테이블은 상기 특정한 레지스터를 프로그래밍할 값을 포함한다. 레지스터로 프로그래밍되는 값은 대응하는 하드웨어 구성요소의 기능을 규정한다.
동작 410에서, 디바이스는 동작 406에서 메모리로부터 획득되는 구성 데이터에 기초하여 자신을 구성할 수 있다. 디바이스는 동작 414 내지 416에서와 같이 컴퓨팅 시스템을 초기화하는 주 전력을 인가하기 전에 구성된다. 하나의 구현에서, 디바이스는 동작 408에서와 같이 테이블로부터 구성 데이터에 대응하는 값을 획득할 수 있다. 다른 구현에서, 테이블을 활용하여 하드웨어 구성요소를 구성하는 값을 식별하기보다는, 구성 데이터는 디바이스에게 컴퓨팅 시스템 내의 하드웨어 구성요소를 어떻게 구성해야 하는지를 명령할 수 있다. 동작 410은 기능 면에서 도 3에서와 같은 동작 304와 유사할 수 있다.
동작 412에서, 디바이스는 내부 레지스터를 동작 408에서 획득되는 값으로 프로그래밍할 수 있다. 내부 레지스터를 이 값으로 프로그래밍함으로써 상기 내부 레지스터를 통해 구성될 수 있는 하드웨어 구성요소는 이 하드웨어 구성요소의 기능으로 작동된다. 예를 들어, 디바이스는 디바이스에서부터 다른 다양한 구성요소로의 전기 전도체로 구성되는 전기 접속(즉, 핀)의 기능을 구성하기 위하여 적어도 하나의 내부 레지스터를 포함할 수 있다. 이 예에서, 내부 레지스터로 프로그래밍되는 값은 핀이 입력, 출력, 입력/출력 등으로 기능을 행해야 하는지를 표시한다. 이 방식에서, 동작 408에서 획득되는 값은 하드웨어 구성요소의 기능을 표시할 수 있다. 다른 구현에서, 컴퓨팅 시스템의 열 시스템은 값을 열 시스템에 대응하는 레지스터에 기록함으로써 구성될 수 있다. 이 구현에서, 열 시스템은 동작 414 내지 416에서와 같이 컴퓨팅 시스템을 초기화하는 주 전력을 인가하기 전에 구성될 수 있다. 컴퓨팅 시스템의 초기화 전에 열 시스템을 구성하는 것은 컴퓨팅 시스템의 초기화 시에 검출 이슈로부터 기인하는 반응 시간을 줄인다.
동작 414에서, 컴퓨팅 시스템은 턴온되고 동작 416에서와 같이 컴퓨팅 시스템을 초기화하기 위해 주 처리 장치(예를 들어, 중앙 처리 장치)에 주 전력을 인가할 수 있다. 주 전력은 컴퓨팅 시스템의 주 처리 장치와 통신하는 운영 시스템이 컴퓨팅 시스템의 전체의 기능을 관리하는 것을 가능하게 한다. 또한 중앙 처리 장치(CPU)로 칭해지는 주 처리 장치는 시스템의 기본 산술, 논리 및 입력/출력 동작을 수행하는 컴퓨팅 시스템 내의 하드웨어 구성요소이다. 이 구현에서, 디바이스는 컴퓨팅 시스템 내의 다양한 하드웨어 구성요소를 관리하는 보조 처리 장치를 포함할 수 있고, 반면에 CPU는 컴퓨팅 시스템의 전체의 기능을 관리한다. 다른 구현에서, 주 전력이 셧다운(shut down)되지만 컴퓨팅 시스템 및/또는 디바이스가 AC 소스에 여전히 플러그인되어 있으면, 동작 404에서와 같은 대기 전력이 존속된다.
동작 416에서, 일단 동작 404에서와 같이 주 전력을 인가하면, 방법은 컴퓨팅 시스템을 초기화하는 것으로 진행된다. 이 구현에서, 컴퓨팅 시스템의 중앙 처리 장치는 파워-온을 시작하기 위해 초기화될 수 있다. 게다가, 이 구현에서 동작 410에서 구성되는 디바이스는 중앙 처리 장치와는 달리, 컴퓨팅 시스템 내의 하드웨어 구성요소 중 하나의 기능을 관리할 수 있는 펌웨어 기반 디바이스이다. 펌웨어는 머신 판독 가능 명령어이고 이에 따라 디바이스에 제어 프로그램을 제공하기 위해 비휘발성 메모리에 있는 디바이스 내에 저장된다.
도 5는 머신 판독 가능 저장 매체(504) 내에서 명령(506 내지 522)을 실행하는 프로세서(502)를 구비하는 예의 컴퓨팅 디바이스(500)의 블록도이다. 구체적으로, 프로세서(502)를 구비하는 컴퓨팅 디바이스(500)는 대기 전력을 디바이스에 인가하고, 구성 데이터를 프로세싱하고 구성 데이터에 기초하여 디바이스를 구성한다. 디바이스는 주 전력을 디바이스에 인가하고/인가하거나 디바이스와 연관되는 컴퓨팅 시스템을 초기화하기 전에 구성된다. 컴퓨팅 디바이스(500)가 프로세서(502) 및 머신 판독 가능 저장 매체(504)를 포함할지라도, 이는 또한 당업자에게 적절할 다른 구성요소를 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스(500)는 도 1에서와 같이 전력 회로(104) 및/또는 메모리(110)를 포함할 수 있다. 컴퓨팅 디바이스(500)는 명령(506 내지 522)을 실행할 수 있는 프로세서(502)를 구비하는 전자 디바이스이고, 이에 따라 컴퓨팅 디바이스(500)의 실시예는 모바일 디바이스, 클라이언트 디바이스, 개인용 컴퓨터, 데스크탑 컴퓨터, 랩탑, 태블릿, 비디오 게임 콘솔 또는 명령(506 내지 522)을 실행할 수 있는 다른 유형의 전자 디바이스를 포함한다. 명령(506 내지 522)은 방법, 기능, 연산, 그리고 하드웨어 저장 디바이스(예를 들어, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거 가능 프로그램 가능 ROM, 전기적 소거 가능 ROM, 하드 드라이브 및 플래시 메모리)와 같이, 비일시적일 수 있는 저장 매체(504) 상에 저장되는 머신 판독 가능 명령으로서 구현되는 다른 프로세스로서 구현될 수 있다.
프로세서(502)는 컴퓨팅 시스템의 초기화 전에 대기 전력을 인가하고, 구성 데이터를 프로세싱하고, 구성 데이터에 기초하여 디바이스를 구성하기 위해 명령(506 내지 522)을 페치, 디코딩 및 실행할 수 있다. 하나의 구현에서, 명령(506 내지 512)을 실행할 때, 프로세서(502)는 명령(520 및/또는 522)을 실행할 수 있다. 다른 구현에서, 명령(506 내지 510)을 실행할 때, 프로세서(502)는 명령(514 내지 518)을 실행하고 명령(520 및/또는 522)을 실행하는 것으로 진행될 수 있다. 프로세서(502)는 대기 전력을 컴퓨팅 시스템 내의 디바이스에 인가하고; 디바이스의 메모리로부터 획득되는 구성 데이터를 프로세싱하고; 그리고 구성 데이터에 기초하여 디바이스를 구성하는 명령(506 내지 510)을 실행한다. 디바이스의 구성은 컴퓨팅 시스템의 초기화를 위해 컴퓨팅 시스템에 주 전력을 인가하기 전에 발생한다. 프로세서(502)는 디바이스 내부의 레지스터를 테이블로부터 획득되는 값으로 프로그래밍하도록 명령(512)을 실행할 수 있다. 명령(512)에 대한 대안으로, 프로세서(502)는 디바이스와 연관되는 핀을 구성하도록 명령(514 내지 518)을 실행할 수 있고, 명령(514 내지 518)은 데이터 구조로부터 값을 획득하고; 디바이스 내부의 레지스터를 데이터 구조로부터 획득되는 값으로 프로그래밍하고; 그리고 레지스터로 프로그래밍된 값에 기초하여 디바이스와 연관되는 핀을 구성하는 것을 포함한다. 프로세서(502)는 컴퓨팅 디바이스에 주 전력을 인가하라는 명령(520 내지 522)을 실행하도록 진행될 수 있고, 주 전력은 또한 디바이스에 인가될 수 있고; 그리고 주 전력의 인가로부터 컴퓨팅 시스템이 초기화된다. 프로세서(502)의 구현은 집적 회로, 마이크로칩, 프로세서, 칩셋, 전자 회로, 마이크로프로세서, 반도체, 마이크로제어기, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 반도체 또는 명령(506 내지 522)을 실행할 수 있는 다른 유형의 프로그램 가능 디바이스를 포함할 수 있다.
머신 판독 가능 저장 매체(504)는 프로세서(502)가 페치, 디코딩 및 실행할 명령(506 내지 522)을 포함한다. 다른 실시예에서, 머신 판독 가능 저장 매체(504)는 전자, 자기, 광학, 메모리, 저장소, 플래시 드라이브 또는 실행 가능 명령을 포함하거나 저장하는 다른 물리적 디바이스일 수 있다. 그러므로, 머신 판독 가능 저장 매체(504)는 예를 들어, 랜덤 액세스 메모리(RAM), 전기적 소거 가능 프로그램 가능 판독 전용 메모리(EEPROM), 저장 드라이브, 메모리 캐시, 네트워크 저장소, 컴팩트 디스크 판독 전용 메모리(Compact Disc Read Only Memory; CDROM) 등을 포함할 수 있다. 이에 따라, 머신 판독 가능 저장 매체(504)는 머신 판독 가능 저장 매체(504)의 명령을 페치, 디코딩 및/또는 실행하기 위해 독자적으로 그리고/또는 프로세서(502)와 함께 활용될 수 있는 애플리케이션 및/또는 펌웨어를 포함할 수 있다. 애플리케이션 및/또는 펌웨어는 머신 판독 가능 저장 매체(504) 상에 저장되고/저장되거나 컴퓨팅 디바이스(500)의 다른 장소에 저장될 수 있다.
요약하면, 본원에서 개시되는 구현은 컴퓨팅 시스템을 초기화하는 것과 연관되는 레이턴시를 감소시킨다. 게다가, 본원에서 개시되는 구현에 의해 디바이스는 다양한 컴퓨팅 시스템 사이의 다수의 구성에 대해 가능하다.

Claims (15)

  1. 컴퓨팅 시스템으로서,
    디바이스와,
    상기 디바이스에 대기 전력(standby power)을 전송하는 전력 회로와,
    구성 데이터(configuration data)를 유지하기 위하여 상기 디바이스와 연관되는 메모리
    를 포함하되,
    상기 디바이스는
    상기 대기 전력을 수신하면 상기 메모리로부터 상기 구성 데이터를 프로세싱하고,
    상기 구성 데이터에 기초하여 상기 디바이스 자신을 구성하며,
    상기 디바이스는 상기 컴퓨팅 시스템의 초기화 전에 구성되는
    컴퓨팅 시스템.
  2. 제 1 항에 있어서,
    상기 구성 데이터에 대응하는 값을 프로그래밍하기 위해 상기 디바이스 내부에 레지스터(register)를 더 포함하고, 상기 값은 상기 레지스터와 연관되는 하드웨어 구성요소의 기능을 표시하는
    컴퓨팅 시스템.
  3. 제 1 항에 있어서,
    상기 컴퓨팅 시스템을 초기화하기 위해, 상기 전력 회로는 또한 주 전력을 상기 디바이스에 전송하는
    컴퓨팅 시스템.
  4. 제 1 항에 있어서,
    상기 구성 데이터를 통해 열 회로(thermal circuit)를 구성하는 레지스터를 더 포함하고, 상기 열 회로는 상기 컴퓨팅 시스템의 초기화 전에 구성되는
    컴퓨팅 시스템.
  5. 제 1 항에 있어서,
    상기 구성 데이터에 대응하는 값으로 프로그래밍되는 상기 디바이스 내부의 레지스터에 기초하여 동작하는 하드웨어 구성요소를 더 포함하는
    컴퓨팅 시스템.
  6. 컴퓨팅 시스템의 프로세서에 의해 실행 가능한 명령어로 인코딩(encoding)되는 비일시적 머신 판독 가능 저장 매체로서,
    상기 컴퓨팅 시스템 내의 디바이스에 대기 전력을 인가하라는 명령어와,
    상기 디바이스의 구성 데이터를 프로세싱하라는 명령어와,
    상기 구성 데이터에 기초하여 상기 디바이스를 구성하라는 명령어를 포함하고,
    상기 디바이스는 상기 컴퓨팅 시스템의 초기화 전에 구성되는
    머신 판독 가능 저장 매체.
  7. 제 6 항에 있어서,
    상기 디바이스를 상기 구성 데이터에 기초하여 구성하기 위해 상기 저장 매체는,
    상기 디바이스 내부의 레지스터를 상기 구성 데이터에 대응하는 값으로 프로그래밍하라는 추가 명령어를 포함하고, 상기 값은 상기 레지스터에 대응하는 하드웨어의 기능을 표시하는
    머신 판독 가능 저장 매체.
  8. 제 7 항에 있어서,
    상기 레지스터는 핀(pin), 열 관리 및 냉각 팬(cooling fan) 중 적어도 하나를 구성하도록 프로그래밍되는
    머신 판독 가능 저장 매체.
  9. 제 6 항에 있어서,
    주 전력을 상기 컴퓨팅 시스템에 인가하라는 명령어와,
    상기 컴퓨팅 시스템을 초기화하라는 명령어를 더 포함하는
    머신 판독 가능 저장 매체.
  10. 제 6 항에 있어서,
    상기 디바이스를 상기 구성 데이터에 기초하여 구성하기 위해 상기 저장 매체는,
    데이터 구조로부터 값을 획득하라는 추가 명령어와,
    상기 디바이스 내부의 레지스터를 상기 값으로 프로그래밍하라는 추가 명령어와,
    상기 디바이스 상의 핀을 상기 레지스터에서 프로그래밍되는 상기 값에 기초하여 구성하라는 추가 명령어를 포함하는
    머신 판독 가능 저장 매체.
  11. 컴퓨팅 시스템 내의 디바이스를 구성하는 방법으로서,
    대기 전력이 상기 디바이스에 인가될 때 상기 디바이스의 구성 데이터를 프로세싱하는 단계와,
    상기 구성 데이터에 기초하여 상기 디바이스를 구성하는 단계를 포함하되,
    상기 디바이스는 상기 컴퓨팅 시스템의 초기화 전에 구성되는
    방법.
  12. 제 11 항에 있어서,
    상기 컴퓨팅 시스템의 초기화를 위해 주 처리 장치에 주 전력을 인가하는 단계를 더 포함하는
    방법.
  13. 제 11 항에 있어서,
    상기 구성 데이터를 프로세싱하는 단계는,
    테이블로부터 상기 구성 데이터에 대응하는 값을 획득하는 단계와,
    상기 디바이스 내부의 레지스터를 상기 값으로 프로그래밍하는 단계를 더 포함하고, 상기 값은 상기 레지스터와 연관되는 하드웨어의 기능을 표시하는
    방법.
  14. 제 11 항에 있어서,
    상기 대기 전력을 상기 디바이스에 인가하기 위해 상기 컴퓨팅 시스템을 교류(alternating current; AC) 전원에 플러깅하는 단계를 더 포함하는
    방법.
  15. 제 11 항에 있어서,
    상기 디바이스를 구성하는 단계는,
    상기 디바이스 내부의 레지스터를 상기 구성 데이터에 대응하는 값으로 프로그래밍하는 단계를 더 포함하고, 상기 레지스터는 상기 디바이스와 연관되는 하드웨어 구성요소를 구성하는
    방법.
KR1020167007995A 2013-09-26 2013-09-26 시스템의 초기화 전의 디바이스 구성 KR101846753B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/061960 WO2015047277A1 (en) 2013-09-26 2013-09-26 Device configuration prior to initialization of a system

Publications (2)

Publication Number Publication Date
KR20160046903A true KR20160046903A (ko) 2016-04-29
KR101846753B1 KR101846753B1 (ko) 2018-04-06

Family

ID=52744183

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167007995A KR101846753B1 (ko) 2013-09-26 2013-09-26 시스템의 초기화 전의 디바이스 구성

Country Status (6)

Country Link
US (1) US10175993B2 (ko)
EP (1) EP3049957A4 (ko)
JP (1) JP2016535328A (ko)
KR (1) KR101846753B1 (ko)
CN (1) CN105745638B (ko)
WO (1) WO2015047277A1 (ko)

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3049663B2 (ja) 1991-02-20 2000-06-05 キヤノン株式会社 記録装置及び記録方法
US5581284A (en) 1994-11-25 1996-12-03 Xerox Corporation Method of extending the life of a printbar of a color ink jet printer
US6219742B1 (en) 1998-04-29 2001-04-17 Compaq Computer Corporation Method and apparatus for artificially generating general purpose events in an ACPI environment
KR100350676B1 (ko) 2000-10-20 2002-08-28 삼성전자 주식회사 소형 컴퓨터 시스템 인터페이스 백플레인 보드
KR100471056B1 (ko) 2000-11-18 2005-03-07 삼성전자주식회사 컴퓨터시스템 및 컴퓨터시스템의 대기모드제어방법
US20030233534A1 (en) * 2002-06-12 2003-12-18 Adrian Bernhard Enhanced computer start-up methods
US7213142B2 (en) 2003-04-22 2007-05-01 Intel Corporation System and method to initialize registers with an EEPROM stored boot sequence
US20050025164A1 (en) * 2003-07-16 2005-02-03 Telefonaktiebolaget L M Ericsson (Publ) Seamless hand-off of mobile node to a wireless local area network (WLAN)
JP2005149225A (ja) 2003-11-17 2005-06-09 Sony Corp コンピュータシステム及びその起動方法
US7519802B2 (en) * 2004-05-05 2009-04-14 Hewlett-Packard Development Company, L.P. System and method for configuring a computer system
US20050289332A1 (en) 2004-06-23 2005-12-29 Rothman Michael A Platform boot speed
JP4311287B2 (ja) 2004-06-25 2009-08-12 ソニー株式会社 ブートシステム及びブート方法及びこのブート方法を用いたデータ処理装置
US8120816B2 (en) 2005-06-30 2012-02-21 Xerox Corporation Automated image quality diagnostics system
US9146600B2 (en) * 2006-10-11 2015-09-29 Texas Instruments Incorporated Array and peripheral power control decoded from circuitry and registers
US20100066779A1 (en) 2006-11-28 2010-03-18 Hanan Gothait Method and system for nozzle compensation in non-contact material deposition
US8886955B2 (en) 2007-03-28 2014-11-11 Nuvoton Technology Corporation Systems and methods for BIOS processing
US8251477B2 (en) 2007-04-30 2012-08-28 Hewlett-Packard Development Company, L.P. Multipass printing method
WO2010071644A1 (en) 2008-12-17 2010-06-24 Hewlett-Packard Development Company, L.P. Print head array
KR20100083383A (ko) 2009-01-13 2010-07-22 삼성전자주식회사 잉크젯 화상형성장치 및 그 인쇄방법
JP5493951B2 (ja) * 2009-04-17 2014-05-14 株式会社リコー 情報処理装置、正当性検証方法及びプログラム
KR101582919B1 (ko) 2009-05-27 2016-01-07 삼성전자 주식회사 전자장치 및 그 부팅방법
US8065562B2 (en) 2009-06-26 2011-11-22 Seagate Technology Llc Systems, methods and devices for backup power control in data storage devices
US8340120B2 (en) 2009-09-04 2012-12-25 Brocade Communications Systems, Inc. User selectable multiple protocol network interface device
JP5649395B2 (ja) 2009-10-08 2015-01-07 富士フイルム株式会社 インクジェット記録装置及び方法並びに異常ノズル検知方法
ES2763324T3 (es) 2010-10-27 2020-05-28 The Aes Corp Métodos, adaptadores y aparatos para su uso con dispositivos eléctricos para gestionar servicios de energía
CN102681864A (zh) * 2011-03-16 2012-09-19 鸿富锦精密工业(深圳)有限公司 计算机
KR20130021862A (ko) * 2011-08-24 2013-03-06 삼성전자주식회사 사용 컨텍스트를 반영한 전자기기의 부팅 방법 및 장치
CN102388366B (zh) * 2011-09-22 2013-03-20 华为技术有限公司 实现不同处理器兼容的方法及装置
KR101646425B1 (ko) 2011-10-28 2016-08-05 인텔 코포레이션 동작 콘텍스트들 사이의 스위칭
US9471121B2 (en) * 2011-11-14 2016-10-18 Texas Instruments Incorporated Microprocessor based power management system architecture
US9417672B2 (en) * 2012-03-30 2016-08-16 Lenovo (Singapore) Pte. Ltd. Separate customizable thermal control table
US9004636B2 (en) 2012-04-20 2015-04-14 Hewlett-Packard Development Company, L.P. Fluid drops provided in print mode and maintenance mode in normal consumption state and low consumption state
US9213397B2 (en) * 2012-09-21 2015-12-15 Atmel Corporation Changing power modes of a microcontroller system

Also Published As

Publication number Publication date
JP2016535328A (ja) 2016-11-10
CN105745638A (zh) 2016-07-06
EP3049957A1 (en) 2016-08-03
US20160216976A1 (en) 2016-07-28
WO2015047277A1 (en) 2015-04-02
US10175993B2 (en) 2019-01-08
KR101846753B1 (ko) 2018-04-06
EP3049957A4 (en) 2017-05-31
CN105745638B (zh) 2019-06-14

Similar Documents

Publication Publication Date Title
US9122501B1 (en) System and method for managing multiple bios default configurations
US9128729B1 (en) System and method for automatically configuring bios performance profiles
EP3309998B1 (en) Power sourcing equipment, and method and apparatus for power over ethernet
US10747287B2 (en) Backup power supply based configuration data application
US8943302B2 (en) Method of flashing bios using service processor and computer system using the same
TWI537748B (zh) 用於網路基本輸入輸出系統管理之設備、方法與非暫態電腦可讀取媒體
TWI516903B (zh) 定相反及閘的電源開啟重設
US20120210038A1 (en) External bridge system
TWI591479B (zh) 用於初始化電子裝置的埠之設備和方法
US8959253B2 (en) Virtualizing a powered down input/output device
US20130179672A1 (en) Computer and quick booting method thereof
US10198270B2 (en) Dynamic hardware configuration via firmware interface at computing device boot
KR101846753B1 (ko) 시스템의 초기화 전의 디바이스 구성
US8566575B2 (en) Computer apparatus and method for charging portable electronic device using the computer apparatus
TWI482090B (zh) 可經由通用序列匯流排裝置開機的系統及其方法
TWI600006B (zh) 快閃操作的儲存裝置
JP6403764B2 (ja) プロセッサのバッファの自律的制御
US20160070665A1 (en) Portable electronic device and user data access method therefor
CN110297595B (zh) 主机存储器缓冲区配置方法、储存装置与控制电路单元
US10114656B2 (en) Electronic device supporting different firmware functions and operation method thereof
TWI587150B (zh) 具有多個連接介面的可攜式電子裝置
TWI597611B (zh) 用於選擇作業系統的系統及方法
US20180004274A1 (en) Determining power state support
US11226918B2 (en) Blocking systems from responding to bus mastering capable devices
US10585673B2 (en) Chipset reconfiguration based on device detection

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant