KR101764657B1 - 자동화된 선택적 전력 사이클링을 통한 컴퓨팅 서브시스템 하드웨어 복구 - Google Patents

자동화된 선택적 전력 사이클링을 통한 컴퓨팅 서브시스템 하드웨어 복구 Download PDF

Info

Publication number
KR101764657B1
KR101764657B1 KR1020157007496A KR20157007496A KR101764657B1 KR 101764657 B1 KR101764657 B1 KR 101764657B1 KR 1020157007496 A KR1020157007496 A KR 1020157007496A KR 20157007496 A KR20157007496 A KR 20157007496A KR 101764657 B1 KR101764657 B1 KR 101764657B1
Authority
KR
South Korea
Prior art keywords
component
power
controller
processor circuit
indication
Prior art date
Application number
KR1020157007496A
Other languages
English (en)
Other versions
KR20150048811A (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 KR20150048811A publication Critical patent/KR20150048811A/ko
Application granted granted Critical
Publication of KR101764657B1 publication Critical patent/KR101764657B1/ko

Links

Images

Classifications

    • 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
    • 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/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • 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/266Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)

Abstract

다양한 실시예들은 일반적으로, 그 서브시스템이 비동작(inoperative)으로 되는 것을 검출한 것에 응답하여, 컴퓨팅 디바이스의 다른 컴포넌트들을 전력 사이클링(power cycling)하지 않으면서, 컴퓨팅 디바이스의 비동작 하드웨어 기반 서브시스템의 자동화된 선택적 전력 사이클링(automated selective power cycling)에 관한 것이다. 장치는 제어기 프로세서 회로(controller processor circuit); 디지털 로직을 포함하고 제어기 프로세서 회로에 의해 제어되는 전력을 제공받는 제1 컴포넌트; 디지털 로직을 포함하고 제어기 프로세서 회로에 의해 제어되는 전력을 제공받는 제2 컴포넌트; 및 제어기 프로세서 회로에 통신가능하게 결합되고 명령어들을 저장하도록 구성된 제어기 저장소(controller storage)를 포함하며, 명령어들은 제어기 프로세서 회로 상에서 제1 컴포넌트가 비동작인 것을 나타내는 신호를 수신하고, 그 신호에 기초하여 제2 컴포넌트에 전력을 계속 제공하면서 제1 컴포넌트에의 전력을 사이클링하는 동작을 한다. 다른 실시예들이 본 명세서에 기술되고 청구되어 있다.

Description

자동화된 선택적 전력 사이클링을 통한 컴퓨팅 서브시스템 하드웨어 복구{COMPUTING SUBSYSTEM HARDWARE RECOVERY VIA AUTOMATED SELECTIVE POWER CYCLING}
대부분의 컴퓨팅 디바이스들은 각각이 복잡한 지원 소프트웨어와 협력하는 복잡한 디지털 로직을 포함하는 다양한 하드웨어 기반 서브시스템들로 이루어져 있다. 컴퓨팅 디바이스들의 능력의 범위가 계속하여 증가함에 따라, 이 서브시스템들 중 다수의 서브시스템들의 디지털 로직의 복잡도도 증가하였다. 독립적인 명령어들의 시퀀스들을 실행하는 상태 머신들 및/또는 처리 컴포넌트들을 이 서브시스템들 중 다수의 서브시스템들에 포함시키는 일이 흔하게 되었고, 그 결과 그 서브시스템들이 그의 기능들을 계속하여 수행할 수 없게 되는 비동작 상태(inoperative state)에 들어가는 경우들이 증가하였다.
이러한 비동작 상태는 예상치 않은, 부합하지 않는 및/또는 잘못된 타이밍의(ill-timed) 입력들이 이러한 복잡한 디지털 로직에 제공되는 경우에 일어날 수 있다. 디지털 로직 자체 또는 디지털 로직이 실행하는 어떤 명령어들의 시퀀스도 반환할 수 없는 미정의 상태(undefined state)에 들어갈 수 있다. 이러한 상황들은 종종 "로크업(lock up)" 또는 "행(hang)"이라고 한다. 이러한 상태에서, 이러한 디지털 로직은 그 디지털 로직의 기지의 초기 상태 - 이 초기 상태로부터 디지털 로직으로 하여금 이어서 정상 기능으로 되돌아가게 할 수 있음 - 로의 "리셋"을 야기하도록 되어 있는 새로운 입력들에 대해 응답하지 않게(unresponsive) 될 수 있다.
컴퓨팅 디바이스의 서브시스템들 중 하나(예컨대, 그래픽 디스플레이, 오디오 출력, 네트워크 통신, 데이터 저장, 사용자 입력 등을 위한 서브시스템)를 수반하는 이러한 이벤트가 일어나는 컴퓨팅 디바이스의 사용자에 대해, 이러한 이벤트 및 (사용자들이 무슨 일이 발생했는지를 인식할 수 있는 경우에도) 그에 부수하여 정상 기능을 회복하기 위해 그 부분에만 작용하는 소프트웨어 또는 다른 메커니즘을 사용할 수 없게 되는 것은 좌절감을 주는 사용자 경험을 제공한다. 이러한 경우들에서, 사용자들은 종종 그 서브시스템의 정상적인 기능의 이점 없이 그 컴퓨팅 디바이스를 추가로 사용하려고 시도하는 것 또는 그 컴퓨팅 디바이스 전체를 리셋하는 동작을 하는 것의 냉혹한 선택에 직면하게 되고, 후자의 선택은 종종 시간이 걸릴 것으로 판명되고 그리고/또는 데이터의 손실을 일으킨다.
도 1은 컴퓨팅 디바이스를 부팅하는 제1 실시예를 도시한다.
도 2 내지 도 4는, 각각, 다양한 가능한 구현 상세들을 도시하는, 도 1의 실시예의 일부분을 도시한다.
도 5는 제1 논리 흐름의 일 실시예를 도시한다.
도 6은 제2 논리 흐름의 일 실시예를 도시한다.
도 7은 제3 논리 흐름의 일 실시예를 도시한다.
도 8은 제4 논리 흐름의 일 실시예를 도시한다.
도 9는 제5 논리 흐름의 일 실시예를 도시한다.
도 10은 프로세싱 아키텍처의 일 실시예를 도시한다.
다양한 실시예들은 일반적으로, 그 서브시스템이 비동작(inoperative)으로 되는 것을 검출하는 것에 응답하여, 컴퓨팅 디바이스의 다른 컴포넌트들을 전력 사이클링(power cycling)하지 않으면서, 컴퓨팅 디바이스의 비동작 하드웨어 기반 서브시스템의 자동화된 선택적 전력 사이클링(automated selective power cycling)에 관한 것이다. 보다 구체적으로는, 컴퓨팅 디바이스의 제어기는 컴퓨팅 디바이스의 서브시스템이 비동작 상태에 들어갔다는 것을 검출하고, 그 비동작 상태의 검출에 응답하여 전력을 그 서브시스템에 전달하는 하나 이상의 전력 도전체들에의 전력을 선택적으로 제거하고 이어서 재인가한다.
제어기는 그 컴퓨팅 디바이스의 프로세서 회로로부터의 다양한 가능한 독립성 정도로 이러한 검출 및/또는 이러한 전력 사이클링을 수행할 수 있다. 제어기는, 그 비동작 상태를 검출하기 위해 그리고/또는 그 서브시스템으로 하여금 그를 기지의 초기 상태에 두기 위해 전력 사이클링 후에 정상적인 기능으로 복귀하게 하기 위해, 그 서브시스템과 연관되고 그 프로세서 회로에 의해 실행되는 디바이스 드라이버와 다양한 방식들로 협력할 수 있다.
이러한 협력은 그 서브시스템과 연관된 디바이스 드라이버를 실행하는 제어기 및 프로세서 회로 중 하나 또는 둘 다에 의해 액세스가능한 그 서브시스템의 하나 이상의 레지스터들을 통해 행해질 수 있다. 다른 대안으로서 또는 그에 부가하여, 이러한 협력은 그 서브시스템과 연관된 디바이스 드라이버와, 제어기와 연관되고 또한 프로세서 회로에 의해 실행되는 디바이스 드라이버 간의 통신을 통해 행해질 수 있다.
그 서브시스템의 전력 사이클링 후에, 제어기는 또한 그 서브시스템을 기지의 초기 상태에 두기 위해 전력 사이클링 후에 그 서브시스템을 정상적인 기능으로 복귀시키는 데 조력하도록 프로세서 회로에 의해 실행되는 운영 체제에 신호하기 위해 그 서브시스템과 연관된 디바이스 드라이버와 협력할 수 있다.
일 실시예에서, 예를 들어, 장치는 제어기 프로세서 회로, 디지털 로직을 포함하고 제어기 프로세서 회로에 의해 제어되는 전력을 제공받는 제1 컴포넌트, 디지털 로직을 포함하고 제어기 프로세서 회로에 의해 제어되는 전력을 제공받는 제2 컴포넌트, 및 제어기 프로세서 회로에 통신가능하게 결합되고 명령어들을 저장하도록 구성된 제어기 저장소(controller storage)를 포함한다. 명령어들은 제어기 프로세서 회로 상에서 제1 컴포넌트가 비동작인 것을 나타내는 신호를 수신하고, 그 신호에 기초하여 제2 컴포넌트에 전력을 계속 제공하면서 제1 컴포넌트에의 전력을 사이클링하는 동작을 한다.
본 명세서에 사용된 표기법 및 명명법을 일반적으로 참조하면, 이하의 상세한 설명의 부분들은 컴퓨터 또는 컴퓨터들의 네트워크 상에서 실행되는 프로그램 절차들의 관점에서 제시될 수 있다. 이들 절차적 설명 및 표현은 통상의 기술자들이 자신의 작업의 내용을 다른 통상의 기술자들에게 가장 효과적으로 전달하기 위해 사용된다. 절차는 여기에서 일반적으로 원하는 결과를 가져오는 자체 일관성있는(self-consistent) 동작들의 시퀀스인 것으로 생각된다. 이 동작들은 물리적 양의 물리적 조작을 필요로 하는 것이다. 보통, 비록 꼭 그럴 필요는 없지만, 이들 양은 저장, 전송, 결합, 비교 또는 다른 방식으로 조작될 수 있는 전기, 자기 또는 광학 신호의 형태를 취한다. 원칙적으로 흔히 사용되기 때문에, 이들 신호를 비트, 값, 요소, 심볼, 문자, 용어, 숫자 등으로 지칭하는 것이 때로는 편리한 것으로 밝혀졌다. 그렇지만, 이들 및 유사한 용어들 모두가 적절한 물리적 양과 연관되고 이들 양에 적용되는 편리한 명칭들에 불과하다는 것을 염두에 두어야 한다.
게다가, 이들 조작은 종종, 가산 또는 비교와 같은, 사람 조작자에 의해 수행되는 정신적 동작들과 흔히 연관되어 있는 용어들로 지칭된다. 그렇지만, 하나 이상의 실시예들의 일부를 형성하는 본 명세서에 기술된 동작들 중 임의의 것에서, 사람 조작자의 이러한 능력이 대부분의 경우들에서 필요하지 않거나 바람직하지 않다. 오히려, 이 동작들은 머신 동작들이다. 다양한 실시예들의 동작들을 수행하는 유용한 머신들은 본 명세서에의 개시 내용에 따라 작성되는 그 안에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 구성되는 범용 디지털 컴퓨터를 포함하고, 그리고/또는 요구된 목적을 위해 특별히 구성된 장치를 포함한다. 다양한 실시예들은 또한 이 동작들을 수행하는 장치들 또는 시스템들에 관한 것이다. 이 장치들은 요구된 목적을 위해 특별히 구성될 수 있거나, 범용 컴퓨터를 포함할 수 있다. 각종의 이 머신들에 대한 요구된 구조는 주어진 설명으로부터 나타날 것이다.
이제부터 도면들에 대한 참조가 이루어지며, 도면들 전체에 걸쳐 유사한 참조 번호들은 유사한 요소들을 가리키는 데 사용된다. 이하의 설명에서, 설명의 목적상, 실시예들의 완전한 이해를 제공하기 위해 다수의 구체적인 상세들이 기술되어 있다. 그렇지만, 새로운 실시예들이 이들 구체적인 상세 없이 실시될 수 있다는 것이 명백할 수 있다. 다른 경우들에서, 실시예들의 설명을 용이하게 하기 위해, 공지된 구조들 및 디바이스들이 블록도 형태로 도시되어 있다. 의도는 청구항들의 범주 내의 모든 수정들, 등가물들, 및 대안들을 포함하는 것이다.
도 1은 서버(400)에 선택적으로 결합되는 컴퓨팅 디바이스(1000)의 블록도를 나타낸 것이다. 컴퓨터 디바이스들(400 및 1000) 각각은, 이것으로 한정되는 것은 아니지만, 데스크톱 컴퓨터 시스템, 데이터 입력 단말, 랩톱 컴퓨터, 넷북 컴퓨터, 울트라북 컴퓨터, 태블릿 컴퓨터, 핸드헬드 PDA(personal data assistant), 스마트폰, 의류 내에 포함된 신체 착용 컴퓨팅 디바이스, 차량(예컨대, 자동차, 자전거, 휠체어 등), 서버, 서버들의 클러스터, 서버 팜(server farm) 등 내에 통합된 컴퓨팅 디바이스를 포함하는 각종의 유형의 컴퓨팅 디바이스 중 임의의 것일 수 있다. 도시된 바와 같이, 컴퓨팅 디바이스들(400 및 1000)은 각종의 유형의 데이터 중 임의의 것을 전달하는 신호들을 교환한다. 다양한 실시예들에서, 네트워크(999)는 가능하게는 단일의 건물 또는 다른 비교적 제한된 영역 내에서 연장하는 것으로 제한되는 단일의 네트워크, 가능하게는 상당한 거리를 연장하는 접속 네트워크들의 조합일 수 있고, 그리고/또는 인터넷을 포함할 수 있다. 따라서, 네트워크(999)는, 이것으로 한정되는 것은 아니지만, 전기적 및/또는 광학적 전도성 케이블링을 이용하는 유선 기술들, 및 적외선, 무선 주파수 또는 다른 형태의 무선 전송을 이용하는 무선 기술들을 포함하는 신호들이 교환될 수 있는 각종의 통신 기술들(또는 그 조합) 중 임의의 것에 기초할 수 있다.
다양한 실시예들에서, 컴퓨팅 디바이스(1000)는 (컴퓨팅 디바이스(1000)의 주 프로세서 회로의 역할을 하는) 프로세서 회로(150), 제어 루틴(140)을 저장하는 저장소(160), 전원(110), 저장소 제어기(165c), 디스플레이 인터페이스(185), 및 인터페이스 제어기들(195a, 195b) 중 하나 이상을 포함한다. 도시된 바와 같이, 저장소 제어기(165c), 디스플레이 인터페이스(185) 및 인터페이스 제어기(195a)는, 각각, 저장 매체(169)의 콘텐츠에 대한 액세스를 제공하는 저장소 디바이스(163), 디스플레이(180) 및 제어들(120)에 결합된 것으로 도시되어 있다. 컴퓨팅 디바이스(1000)는 저장소 디바이스(163), 디스플레이(180), 및 제어들(120) 중 하나 이상을 더 포함할 수 있다. 인터페이스 제어기(195b)는 컴퓨팅 디바이스(1000)를 네트워크(999)에 그리고 그를 통해 서버(400)와 같은 다른 컴퓨팅 디바이스들에 결합시킨다.
도시된 바와 같이, 컴퓨팅 디바이스(1000)는 또한 제어기(200)를 포함할 수 있다. 제어기(200)는 (제어기 프로세서 회로의 역할을 하는) 프로세서 회로(250) 및 제어 루틴(240)을 저장하는 저장소(260) 중 하나 이상을 포함한다. 제어기(200)는, 적어도 제어 루틴(240)을 실행하는 프로세서 회로(250)와 함께, 제어 루틴(140)을 실행하는 적어도 프로세서 회로(150)에 의해 컴퓨팅 디바이스(1000)의 나머지의 많은 부분 내에 정의되는 주 동작 환경으로부터 의도적으로 격리되어 있는 제어기(200)의 동작 환경을 정의한다. 보다 구체적으로는, 프로세서 회로(150)는 제어기(200)의 저장소(260) 및/또는 다른 컴포넌트들에 대한 제한된 액세스 권한을 제공받을 수 있거나 그에 대한 액세스 권한을 전혀 제공받지 않을 수 있고, 그로써 프로세서(150)에 의한 적어도 제어 루틴(240)(저장소(260)에 저장되거나 프로세서 회로(250)에 의해 실행됨)에 대한 미인가 액세스(unauthorized access)를 방지한다. 그에 반하여, 프로세서 회로(250)가 제어기(200) 이외의 컴퓨팅 디바이스(1000)의 나머지의 하드웨어 및/또는 소프트웨어 컴포넌트들에 대해 훨씬 더 많은 액세스 권한을 가질 수 있다. 더 상세히 설명되는 바와 같이, 이것은 제어기(200)의 동작 환경이 비동작 상태에 있는 컴포넌트들을 검출하기 위해 컴퓨팅 디바이스(1000)의 다양한 다른 컴포넌트들의 상태를 반복하여 검사하는 데 이용될 수 있게 한다.
비록 제어기(200)가 제어기(200)로 하여금 본 명세서에 기술된 다양한 기능들을 수행하게 하기 위해 제어 루틴을 실행하는 프로세서 회로를 포함하는 것으로 본 명세서에 도시되고 논의되어 있지만, 이것은 제어기(200)가 구현될 수 있는 방식의 하나의 예에 불과하다는 것을 유의해야 한다. 제어기(200)가 실질적으로 또는 전적으로 어떤 형태의 루틴의 명령어들도 실행되지 않는 하드웨어 기반 디지털 로직에 구현되는 다른 실시예들이 가능하다. 이러한 구현예들에서, 하나 이상의 개별 로직 컴포넌트들 및/또는 프로그램가능 로직 디바이스들이 사용될 수 있다. 달리 말하면, 제어기(200)는, 제어기로 하여금 본 명세서에 기술된 다양한 기능들을 수행하게 하는 각종의 방식들 중 임의의 방식으로 구현된 로직을 포함한다.
또한 도시되어 있는 바와 같이, 컴퓨팅 디바이스(1000)는 프로세서 회로(150) 및 제어기(200) 중 하나 또는 둘 다를 저장소(160), 저장소 제어기(165c), 디스플레이 인터페이스(185), 및 인터페이스 제어기들(195a, 195b) 중 하나 이상에 결합하는 결합부(coupling)(155)를 더 포함한다. 결합부(155)는 하나 이상의 버스들, 점대점 상호접속부들, 송수신기들, 버퍼들, 크로스포인트 스위치(crosspoint switch)들, 및/또는 다른 전기/광학 도전체들 및/또는 로직으로 이루어져 있다. 프로세서 회로(150) 및 제어기(200)가 결합부(155)에 의해 그렇게 결합되어 있는 것에 의해, 각각은 상세히 기술될 작업들 중 다양한 작업들을 수행할 수 있다.
추가로 도시된 바와 같이, 전원(110)은 제어기(200)에 결합되고, 차례로 제어기(200)는 하나 이상의 전력 도전체들(116, 117, 118 및 119)을 통해, 각각, 저장소 제어기(165c), 디스플레이 인터페이스(185), 인터페이스 제어기(195a) 및 인터페이스 제어기(195b) 중 하나 이상에 더 결합되어 있다. 설명되는 바와 같이, 전력 도전체들(116 내지 119)을 통해, 제어기(200)는 저장소 제어기(165c), 디스플레이 인터페이스(185), 및 인터페이스 제어기들(195a, 195b) 각각에 전력을 선택적으로 제공하거나 제공하는 것을 중단한다. 그렇게 할 때, 제어기(200)는 전력 도전체들(116 내지 119) 각각에 전력을 선택적으로 제공하기 위해 각종의 유형의 전력 트랜지스터들 또는 실리콘 스위치(silicon switch)들 중 임의의 것을 포함할 수 있다(예컨대, 임의의 수량의 복수의 전력 스위칭 컴포넌트들, 구체적으로는 도 1에 도시된 전력 스위칭 컴포넌트들(215a 내지 215x)).
일부 실시예들에서, 컴퓨팅 디바이스(1000)는 적어도 부분적으로 SOC(system on-a-chip)로서 구현될 수 있고, 이 경우 프로세서(150), 저장소(160), 저장소 제어기(165c), 디스플레이 인터페이스(185), 인터페이스 제어기들(195a, 195b) 및 제어기(200)의 적어도 일부가 단일의 IC(integrated circuit) 내에 결합될 수 있다. 이러한 실시예들에서, 전력 도전체들(116 내지 119) 중 하나 이상은 컴포넌트들(165c, 185, 195a 및 195b) 중 적어도 일부가 배치되어 있는 단일의 공통 실리콘 다이의 일부분들을 가로지르는 도전성 배선(conductive trace)들로서 형성될 수 있다. 다른 대안으로서, 이들 컴포넌트들은 MCM(multi-chip module) 내에 포함된 2개 이상의 실리콘 다이에 걸쳐 확산되어 있을 수 있고, 이 경우에 전력 도전체들(116 내지 119)의 서브셋은 적어도 부분적으로 금 와이어(gold wire)들 또는 다른 형태의 전기/광학 도전체들로서 MCM 패키지 내의 개별적인 실리콘 다이 사이에서 연장할 수 있다. 또 다른 대안으로서, 이들 컴포넌트들은 개별적인 칩 패키지들(핀 그리드 어레이(pin grid array), 볼 그리드 어레이(ball grid array), 랜드 그리드 어레이(land grid array), 듀얼 인 라인 패키지(dual in-line package) 등) 내에 배치된 2개 이상의 실리콘 다이에 걸쳐 확산되어 있을 수 있고, 이 경우에 전력 도전체들(116 내지 119)의 서브셋은 적어도 부분적으로 그 칩 패키지들 각각이 배치되어 있는 하나 이상의 회로 보드들 상에 형성된 배선들로서 다이 사이에서 연장할 수 있다.
일부 실시예들에서, 전력 도전체들(116 내지 119) 중 하나 이상은 각각이들 컴포넌트들(165c, 185, 195a 및 195b) 중 단일의 컴포넌트의 상이한 부분에 전력을 전달하는 다수의 도전체들을 포함할 수 있다. 예로서 그리고 도 1에 도시된 바와 같이, 디스플레이 인터페이스(185)는 단일의 도전체(118)를 통하지 않고 다수의 도전체들(118a, 118b 및 118c)을 통해 전력을 제공받을 수 있다. 통상의 기술자라면 잘 아는 바와 같이, 단일의 IC 내의 디지털 회로의 상이한 부분들은 상이한 전압들로 제공되는 전력을 필요로 할 수 있다. 예로서, IC의 입력/출력 드라이버들은 그 IC의 코어에 있는 처리 회로보다 더 높은 전압의 전력을 필요로 할 수 있다. 다른 예로서, 단일의 IC가, 각각이 매우 상이한 전압 레벨들에서 동작하는 2개의 상이한 버스들에 결합될 수 있다. 또 다른 예로서, IC의 디지털 로직의 일부분은 함수들을 처리함에 있어서 데이터를 보유하는 데 이용되는 디지털 로직에 포함된 래치들과는 상이한 전압을 필요로 하는 DRAM 셀들을 포함할 수 있다. 이러한 IC들에 대한 오동작들 및/또는 손상을 피하기 위해, 단일의 IC에 전력을 전달하는 다수의 도전체들 각각에서의 전력의 제공이 특정의 순서로 중단되고 이어서 특정의 순서로 재개되는 방식으로 전력의 사이클링이 수행되도록 요구될 수 있다. 예로서, IC의 입력/출력 드라이버들에의 전력의 제공이, 그 IC의 코어 디지털 로직에의 전력의 제공이 중단될 수 있기 전에, 중단되어야만 하고, 이어서 입력/출력 드라이버들에 전력이 제공될 수 있기 전에 그 코어 디지털 로직에 전력을 제공함으로써 전력을 복원하는 것이 시작되어야만 하는 것일 수 있다. 제어기(200)가 전력 스위칭 디바이스들(215a 내지 215x)을 포함하는 경우, 이 전력 스위칭 디바이스들(215a 내지 215x) 각각은 도전체들(118a 내지 118c) 중 대응하는 도전체를 통한 전력의 제공을 제어할 수 있다.
적어도 제어 루틴(140)을 실행할 시에, 프로세서 회로(150)로 하여금, 각종의 가능한 기능들 중 임의의 것을 수행하기 위해 컴퓨팅 디바이스(1000)를 사용하는 컴퓨팅 디바이스(1000)의 사용자로부터 수신되는 입력에 의해 지시된 대로 다양한 기능들을 수행하기 위해, 저장소 제어기(165c), 디스플레이 인터페이스(185) 및 인터페이스 제어기들(195a, 195b) 중 하나 이상에 액세스하여 그들을 동작하게 한다. 그렇지만, 때로는, 이들 컴포넌트들(165c, 185 또는 195a, 195b) 중 하나 이상은 충돌하는 입력들을 수신하는 것, 예상치 않은 논리적 교착 상태(logical impasse)가 발생한 것 등으로 인해 비동작으로 될 수 있고, 따라서 그의 기능을 더 이상 수행할 수 없다.
적어도 제어 루틴(240)을 실행할 시에, 프로세서 회로(250)로 하여금, 이들 컴포넌트들 중 하나의 컴포넌트의 인스턴스들이 비동작으로 되는 것을 검출하기 위해, 저장소 제어기(165c), 디스플레이 인터페이스(185) 및 인터페이스 제어기들(195a, 195b) 각각을 반복하여 모니터링하게 한다. 그에 응답하여, 프로세서 회로(250)로 하여금 이들 컴포넌트들 중 다른 컴포넌트들에의 전력의 제공을 유지하면서 전력 도전체들(116 내지 119) 중 연관된 도전체를 통해 이들 컴포넌트들 중 그 컴포넌트에 제어기(200)에 의해 전원(110)으로부터 제공되는 전력을 사이클링하게 한다(예컨대, 전력의 제공을 일시 중단하고 이어서 전력의 제공을 재개함). 컴포넌트들(165c, 185, 195a 및 195b) 각각은 "턴 온" 또는 "파워 업" 시에(예컨대, 전력을 제공받을 때) 그 자신을 기지의 초기 상태로 초기화하는 로직을 포함한다. 이와 같이, 전력 도전체들(116 내지 119) 중 연관된 전력 도전체를 통해 전력의 제공을 사이클링하는 것은 비동작으로 된 것으로 검출된 이들 컴포넌트들 중 하나로 하여금 기지의 초기 상태에 놓여지게 한다. 이어서, 이들 컴포넌트들 중 그 컴포넌트와 연관된 디바이스 드라이버는 컴퓨팅 디바이스(1000)의 사용자에 의해 지시된 기능들이 어느 것이든 그 기능들을 수행하는 데 사용하기 위해 프로세서 회로(150)로 하여금 이들 컴포넌트들 중 그 컴포넌트를 완전히 복귀시키도록 신호받는다.
일부 실시예들에서, 전원(110)은, 컴퓨팅 디바이스(1000)가 일부 형태의 휴대용 컴퓨팅 장치인 실시예들에서와 같이, 제한된 양의 전력을 저장하는 유형(예컨대, 배터리, 연료 전지, 수퍼커패시터 등)일 수 있다. 이러한 실시예들에서, 제어기(200)는 컴퓨팅 디바이스(1000)를, 전력이 전력 도전체들(116 내지 119) 중 하나 이상을 통해 컴포넌트들(165c, 185, 195a 및 195b) 중 하나 이상에 제공되는 것이 중단될 수 있는 하나 이상의 전력 절감 모드들에 선택적으로 두는 전력 제어기로서 기능할 수 있다. 이러한 전력 절감 기법들의 통상의 기술자라면 잘 아는 바와 같이, 제어 루틴(140)은 프로세서 회로(250)로 하여금 (가능하게는 프로세서 회로(150)가 제어기(200)에 신호한 대로) 임의의 주어진 시간에 그의 사용자에 의해 이용되고 있는 컴퓨팅 디바이스(1000)의 기능을 고려할 수 있는 각종의 알고리즘들 중 임의의 것에 기초하여 이들 컴포넌트들 중 어느 컴포넌트들이 전력을 제공받을 것인지 또는 제공받지 않을 것인지를 선택하게 할 수 있다. 이와 같이, 제어기(200)는 전력 절감 및 비동작으로 된 하드웨어 컴포넌트들의 복구 둘 다의 이중 역할을 할 수 있다.
다양한 실시예들에서, 프로세서 회로들(150 및 250) 각각은, 이것으로 한정되는 것은 아니지만, AMD® Athlon®, Duron® 또는 Opteron® 프로세서; ARM® 애플리케이션, 임베디드 또는 보안 프로세서; IBM® 및/또는 Motorola® DragonBall® 또는 PowerPC® 프로세서; IBM 및/또는 Sony® Cell 프로세서; 또는 Intel® Celeron®, Core (2) Duo®, Core (2) Quad®, Core i3®, Core i5®, Core i7®, Atom®, Itanium®, Pentium®, Xeon® 또는 XScale® 프로세서를 포함하는 아주 다양한 상업적으로 이용가능한 프로세서들 중 임의의 것을 포함할 수 있다. 게다가, 이 프로세서 회로들 중 하나 이상은 멀티 코어 프로세서(다수의 코어들이 동일한 다이 상에 공존하든 개별적인 다이들 상에 공존하든 상관 없음), 및/또는 다수의 물리적으로 분리된 프로세서들이 일부 방식으로 링크되어 있는 일부 다른 종류의 멀티 프로세서 아키텍처를 포함할 수 있다.
다양한 실시예들에서, 저장소들(160 및 260) 각각은 물론 저장소 디바이스(163) 및 저장 매체(169)의 조합은, 가능하게는 전력의 중단없는 제공을 필요로 하는 휘발성 기술들을 포함하는, 그리고 가능하게는 이동식일 수 있거나 그렇지 않을 수 있는 머신 판독가능 저장 매체의 사용을 수반하는 기술들을 포함하는, 광범위한 정보 저장 기술들 중 임의의 것에 기초할 수 있다. 이와 같이, 이 저장소들 각각은, 이것으로 한정되는 것은 아니지만, ROM(readonly memory), RAM(random-access memory), DRAM(dynamic RAM), DDR-DRAM(Double-Data-Rate DRAM), SDRAM(synchronous DRAM), SRAM(static RAM), PROM(programmable ROM), EPROM(erasable programmable ROM), EEPROM(electrically erasable programmable ROM), 플래시 메모리, 폴리머 메모리(polymer memory)(예컨대, 강유전체 폴리머 메모리(ferroelectric polymer memory)), 오보닉 메모리(ovonic memory), 상변화 또는 강유전체 메모리, SONOS(silicon-oxide-nitride-oxide-silicon) 메모리, 자기 또는 광학 카드, 하나 이상의 개별 강자성 디스크 드라이브, 또는 하나 이상의 어레이들로 구성된 복수의 저장소 디바이스들(예컨대, 독립 디스크 어레이들의 중복 어레이(Redundant Array of Independent Disks array), 또는 RAID 어레이로 구성된 다수의 강자성 디스크 드라이브들)을 포함하는 광범위한 유형의 저장소 디바이스(또는 그 유형들의 조합) 중 임의의 것을 포함할 수 있다. 이 저장소들 각각이 단일의 블록으로 도시되어 있지만, 이들 중 하나 이상이 상이한 저장 기술들에 기초할 수 있는 다수의 저장소 디바이스들을 포함할 수 있다는 것에 유의해야 한다. 따라서, 예를 들어, 이러한 도시된 저장소들 각각 중 하나 이상은 프로그램들 및/또는 데이터가 일부 형태의 머신 판독가능 저장 매체 상에 저장되고 전달될 수 있는 광 드라이브 또는 플래시 메모리 카드 판독기, 프로그램들 및/또는 데이터를 비교적 연장된 기간 동안 국부적으로 저장하는 강자성 디스크 드라이브, 및 프로그램들 및/또는 데이터에의 비교적 신속한 액세스를 가능하게 하는 하나 이상의 휘발성 고상 메모리 디바이스들(예컨대, SRAM 또는 DRAM)의 조합을 나타낼 수 있다. 또한, 이러한 저장소들 각각이 동일한 저장 기술에 기초하지만 사용에서의 특화(specialization)(예컨대, 일부 DRAM 디바이스들은 주 저장소(main storage)로서 이용되는 반면, 다른 DRAM 디바이스들은 그래픽 제어기의 별도의 프레임 버퍼로서 이용됨)의 결과로서 개별적으로 유지될 수 있는 다수의 저장소 컴포넌트들로 이루어질 수 있다는 것을 유의해야 한다.
다양한 실시예들에서, 인터페이스 제어기들(195a, 195b)은 물론, 저장소 제어기(165c)는 컴퓨팅 디바이스(1000)가 기술된 바와 같이 네트워크(999) 및/또는 다양한 하드웨어 디바이스들을 통해 결합될 수 있게 하는 광범위한 시그널링 기술들 중 임의의 것을 이용할 수 있다. 이러한 인터페이스들 각각은 이러한 결합을 가능하게 하는 데 필요한 기능 중 적어도 일부를 제공하는 회로를 포함한다. 그렇지만, 이러한 인터페이스들은 또한 적어도 부분적으로 (예컨대, 프로토콜 스택 또는 다른 특징들을 구현하기 위해) 프로세서 회로들(150 및/또는 250)에 의해 실행되는 명령어들의 시퀀스들로 구현될 수 있다. 전기적 및/또는 광학적 도전성 케이블링이 이용되는 경우, 이러한 인터페이스들은 RS-232C, RS-422, USB, 이더넷(IEEE-802.3) 또는 IEEE-1394를 제한 없이 포함하는 각종의 산업 표준들 중 임의의 것에 부합하는 시그널링 및/또는 프로토콜들을 이용할 수 있다. 무선 신호 전송의 사용이 수반되는 경우, 이러한 인터페이스들은, 이것으로 제한되는 것은 아니지만, IEEE 802.11a, 802.11b, 802.11g, 802.16, 802.20(흔히 "모바일 광대역 무선 액세스(Mobile Broadband Wireless Access)"라고 함); 블루투스; ZigBee; 또는 GSM/GPRS(GSM with General Packet Radio Service), CDMA/1xRTT, EDGE(Enhanced Data Rates for Global Evolution), EV-DO(Evolution Data Only/Optimized), EV-DV(Evolution For Data and Voice), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), 4G LTE 등과 같은 셀룰러 무선 전화 서비스 등을 포함하는 각종의 산업 표준들 중 임의의 것에 부합하는 시그널링 및/또는 프로토콜들을 이용할 수 있다.
다양한 실시예들에서, 제어들(120)(인터페이스 제어기(195a)를 통해 액세스가능함)은, 이것으로 한정되는 것은 아니지만, 레버(lever), 로커(rocker), 푸시버튼 또는 다른 유형의 스위치들; 로터리(rotary), 슬라이딩(sliding) 또는 다른 유형의 가변 제어들; 터치 센서들, 근접 센서들, 열 센서들 또는 생체 센서들 등을 포함하는 각종의 유형의 수동으로 조작가능한 제어들 중 임의의 것을 포함할 수 있다. 이 제어들은 컴퓨팅 디바이스(1000)의 케이스 상에 배치된 수동으로 조작가능한 제어들을 포함할 수 있고, 그리고/또는 컴퓨팅 디바이스(1000)의 물리적으로 분리된 컴포넌트의 별도의 케이스 상에 배치된 수동으로 조작가능한 제어들(예컨대, 적외선 시그널링을 통해 다른 컴포넌트들에 결합된 원격 제어)을 포함할 수 있다. 다른 대안으로서 또는 그에 부가하여, 이러한 제어들은, 이것으로 한정되는 것은 아니지만, 구두 명령의 인식을 가능하게 하기 위해 사운드를 검출할 수 있는 마이크로폰; 얼굴 또는 얼굴 표정을 인식할 수 있는 카메라; 제스처의 인식을 가능하게 하기 위해 움직임의 방향, 속도, 힘, 가속도 및/또는 다른 특성들을 검출할 수 있는 가속도계 등을 포함하는 각종의 비촉각(non-tactile) 사용자 입력 컴포넌트들 중 임의의 것을 포함할 수 있다.
다양한 실시예들에서, 디스플레이(180)(디스플레이 인터페이스(185)를 통해 액세스가능함)는, 이것으로 한정되는 것은 아니지만, 터치 감응, 컬러, 및 TFT(thin-film transistor) LCD를 포함하는 LCD(liquid crystal display); 플라즈마 디스플레이; LED(light emitting diode) 디스플레이; OLED(organic light emitting diode) 디스플레이; CRT(cathode ray tube) 디스플레이등을 포함하는 각종의 디스플레이 기술들 중 임의의 것에 기초할 수 있다. 이러한 디스플레이들 각각은 컴퓨팅 디바이스(1000)의 대응하는 디스플레이들의 케이스 상에 배치될 수 있거나, 컴퓨팅 디바이스(1000)의 물리적으로 분리된 컴포넌트(예컨대, 케이블링을 통해 다른 컴포넌트들에 결합된 평판 모니터)의 별도의 케이스 상에 배치될 수 있다.
도 2, 도 3 및 도 4 각각은 컴퓨팅 디바이스(1000)의 동일한 부분을 더 상세히 나타낸 것이지만, 컴포넌트들과 연관된 디바이스 드라이버들과 제어기(200) 간의 조정 및 비동작 상태의 검출이 어느정도 상이하게 일어나는 실시예들의 상이한 변형예들로서 나타낸 것이다. 설명의 명확함을 위해, 전원(110) 및 전력 도전체들(116 내지 119)이, 제어들(120), 저장소 디바이스(163), 저장 매체(169), 디스플레이(180) 및 서버(400)와 함께, 도 2 내지 도 5에 도시되어 있지 않다.
다양한 실시예들에서, 제어 루틴(140)은 운영 체제(141), 제어기 드라이버(145), 저장소 제어기 드라이버(146), 인터페이스 제어기 드라이버(147), 디스플레이 인터페이스 드라이버(148), 및 인터페이스 제어기 드라이버(149) 중 하나 이상을 포함한다. 운영 체제(141)는, 이것으로 한정되는 것은 아니지만, Windows™, OS X™, Linux®, iOS, 또는 Android OS™를 포함하는, 프로세서 회로(150)에 의한 실행에 적절한 각종의 이용가능한 운영 체제들 중 임의의 것일 수 있다.
저장소 제어기 드라이버(146), 인터페이스 제어기 드라이버(147), 디스플레이 인터페이스 드라이버(148), 및 인터페이스 제어기 드라이버(149)는, 각각, 저장소 제어기(165c), 인터페이스 제어기(195a), 디스플레이 인터페이스(185), 및 인터페이스 제어기(195b)와 연관되어 있다. 이러한 디바이스 드라이버들(146 내지 149) 각각은 이러한 디바이스들 중 연관된 디바이스들의 다양한 측면들과 상호작용하고 조작하기 위해 (운영 체제(141)를 실행함에 있어서) 프로세서 회로(150)에 대한 지원을 제공한다.
제어기 드라이버(145)(존재하는 경우)는 제어기(200)와 연관되고, 제어기(200)와 상호작용하여 컴퓨팅 디바이스(1000)를 하나 이상의 전력 절감 모드들 중 하나에 두기 위해 (운영 체제(141)를 실행함에 있어서) 프로세서 회로(150)에 대한 지원을 제공할 수 있다. 또한, 제어기 드라이버(145)가 존재하는 경우, 더 상세히 설명되는 바와 같이, 제어기 드라이버(145)는 제어기(200)와 디바이스 드라이버들(146 내지 149) 중 하나 이상의 디바이스 드라이버들 사이의 협력에 대한 지원을 제공할 수 있다.
다양한 실시예들에서, 저장소 제어기(165c), 인터페이스 제어기(195a), 디스플레이 인터페이스(185), 및 인터페이스 제어기(195b) 각각은, 각각, 레지스터(136 내지 139)를 포함한다. 더 상세히 설명되는 바와 같이, 레지스터들(136 내지 139) 각각은 레지스터들이 포함되어 있는 디바이스들 중 그들과 연관된 디바이스들이 비동작으로 되었는지 그리고/또는 제어기(200)에 의한 전력 사이클링의 결과로서 기지의 초기 상태로 복귀했는지를 판정하기 위해 반복적으로 액세스가능한 하나 이상의 비트들을 포함한다.
비동작 상태를 검출하기 위해 액세스되는 것을 지원하기 위해, 레지스터들(136 내지 139) 중 하나 이상은 디바이스들(165c, 195a, 185 또는 195b) 중 그의 연관된 디바이스에 의해 규칙적으로 0 값과 1 값 사이에서 변경되는 비트를 포함할 수 있다. 따라서, 이러한 디바이스들 중 그의 연관된 디바이스가 정상적으로 동작하는 동안, 이 비트가 규칙적이고 예측가능한 간격으로 그렇게 변경될 수 있고, 예상될 때 변경되지 않은 그 비트의 인스턴스는 이러한 디바이스들 중 그 연관된 디바이스가 비동작으로 되었다는 표시일 수 있다. 다른 대안으로서, 레지스터들(136 내지 139) 중 하나 이상은 판독될 때까지 이러한 디바이스들 중 그의 연관된 디바이스에 의해 초기에 0 또는 1로 설정되는 비트를 포함할 수 있고, 이 시점에서, 판독 동작은 그의 설정을 0 또는 1 중 다른 것으로 변경하고, 그 변경은 그 비트가 판독되기 전에 그 비트가 보유했던 원래의 값으로 되돌아갈 때까지 그대로 있다. 따라서, 이러한 디바이스들 중 연관된 디바이스가 정상적으로 동작하는 동안, 이 비트는 그 비트가 판독된 후 선택된 양의 시간 내에 그 초기값으로 다시 변경되어야 한다. 또 다른 대안에서, 레지스터들(136 내지 139) 중 하나 이상은, 이러한 디바이스들 중 연관된 디바이스가 동작가능한 상태를 유지하고 있는 한, 이러한 디바이스들 중 그 연관된 디바이스에 의해 규칙적인 간격으로 증분되는 카운터 값을 나타내는 다수의 비트들을 포함할 수 있다. 이와 같이, 예상된 것이 아닌 카운터 값을 보여주는 그 레지스터의 판독에 의해 비동작 상태가 검출될 수 있다.
구체적으로는 도 2를 참조하면, 일부 실시예들에서, 디바이스 드라이버들(146 내지 149) 각각의 실행은 프로세서 회로(150)로 하여금 결합부(155)를 통해 레지스터들(136 내지 139) 각각 중 대응하는 레지스터들을 반복하여 판독하게 하여, 비동작 상태에 들어갔다는 표시에 대해 디바이스들(165c, 185, 195a 및 195b) 중 대응하는 디바이스들을 모니터링하게 한다. 레지스터들(136 내지 139) 중 하나를 통해 이 디바이스들 중 대응하는 디바이스가 비동작으로 되었다는 것을 검출할 시에, 프로세서 회로(150)로 하여금 먼저, 가능하게는 비동작 디바이스를 리셋하기 위해 비동작 디바이스의 레지스터 또는 다른 부분에 액세스하는 것을 통해, 비동작 상태를 교정하도록 시도하게 할 수 있다. 다른 대안으로서 또는 그에 부가하여(가능하게는 리셋 시도가 성공하지 못한 것에 응답하여), 프로세서 회로(150)로 하여금 비동작 디바이스에 제공되는 전력을 사이클링할 것을 제어기 드라이버(145)를 통해 제어기(200)에 신호하게 할 수 있다(또한 전력 사이클링을 받을 비동작 디바이스의 아이덴티티의 표시를 제어기(200)에 제공함). 그에 응답하여, 제어기(200)는, 먼저 전력 도전체들(116 내지 119)(도 1에서 볼 수 있음) 중 대응하는 전력 도전체를 통해 전력을 제공하는 것을 중단하고 이어서 전력을 제공하는 것을 재개하는 것에 의해, 그 전력 도전체를 통해 비동작 디바이스에 제공하는 전력을 사이클링한다. 그렇게 하는 동안, 제어기(200)는 중단 없이 이러한 디바이스들 중 다른 디바이스들에 전력을 제공하는 것을 유지한다. 이 전력 사이클링 후에, 제어기(200)는 그 디바이스에 대한 전력이 사이클링되었다는 것을 나타내기 위해 제어기 드라이버(145)를 통해 디바이스 드라이버들(146 내지 149) 중 연관된 디바이스 드라이버에 신호할 수 있다. 다른 대안으로서, 이 전력 사이클링 후에, 프로세서 회로(150)로 하여금, 레지스터들(136 내지 139) 중 대응하는 레지스터를 계속 반복하여 판독하는 것을 통해, 디바이스가 더 이상 비동작 상태에 있지 않고 그리고/또는 그 디바이스가 기지의 초기 상태로 복귀되도록 그의 전력이 사이클링되었다는 것을 검출하게 할 수 있다. 그에 응답하여, 프로세서 회로(150)로 하여금 또한 그 디바이스를 또다시 사용되도록 구성하게 한다.
도 2를 계속하여, 다른 대안으로서, 일부 실시예들에서, 제어 루틴(240)의 실행은 제어기(200)의 프로세서 회로(250)로 하여금 결합부(155)를 통해 레지스터들(136 내지 139) 각각을 반복하여 판독하게 하여, 비동작 상태에 들어갔다는 표시에 대해 디바이스들(165c, 185, 195a 및 195b) 중 대응하는 디바이스들을 모니터링하게 한다. 그렇게 함에 있어서, 프로세서 회로(250)로 하여금 결합부(155)의 적어도 일부분에 대한 버스 마스터의 역할을 반복하여 맡게 하고, 그로써 적어도 그 부분에 대한 버스 마스터인 프로세서 회로(150)를 대체한다. 레지스터들(136 내지 139) 중 하나를 통해 이 디바이스들 중 대응하는 디바이스가 비동작으로 되었다는 것을 검출할 시에, 프로세서 회로(250)로 하여금, 먼저, 가능하게는 프로세서 회로(150)로 하여금 비동작 디바이스의 리셋을 개시하는 것과 연관된 그 비동작 디바이스의 일부분에 액세스하게 하는 것을 통해, 프로세서 회로(150)로 하여금 비동작 상태를 교정할 것을 시도하게 하는 것을 디바이스 드라이버들(146 내지 149) 중 대응하는 디바이스 드라이버가 가능하게 하도록 디바이스 드라이버들(146 내지 149) 중 그 대응하는 디바이스 드라이버에 신호하게 할 수 있다. 다른 대안으로서 또는 그에 부가하여, 프로세서 회로(250)는 전력 도전체들(116 내지 119) 중 대응하는 전력 도전체를 통해 제어기(200)에 의해 그 디바이스에 제공된 전력을 사이클링할 수 있다. 이 전력 사이클링 후에, 프로세서 회로(250)는 그 디바이스에 대한 전력이 사이클링되었다는 것을 나타내기 위해 제어기 드라이버(145)를 통해 디바이스 드라이버들(146 내지 149) 중 대응하는 디바이스 드라이버에 신호할 수 있다. 다른 대안으로서, 이 전력 사이클링 후에, 프로세서 회로(250)는 단지 프로세서 회로(150)로 하여금 디바이스가 더 이상 비동작 상태에 있지 않다는 것을 검출하게 할 수 있다. 그에 응답하여, 그 디바이스가 이제 전력의 복원 후에 기지의 초기 상태에 있는 경우, 프로세서 회로(150)로 하여금 또한 그 디바이스를 또다시 사용되도록 구성하게 한다.
따라서, 도 2에 도시된 바와 같이, 그리고 도 2를 참조하여 지금 논의된 바와 같이, 다양한 가능한 실시예들에서, 프로세서 회로들(150 및 250)의 동작들이 제어기 드라이버(145)(존재하는 경우)를 통해 조정될 수 있고, 프로세서 회로들(150 및 250) 중 하나 또는 둘 다로 하여금 이러한 디바이스들 중 대응하는 디바이스들 중 임의의 것의 비동작 상태를 검출하기 위해 레지스터들(136 내지 139)을 반복하여 판독하게 할 수 있다.
도 3은 도 2에 제시된 것과 같은 컴퓨팅 디바이스(1000)의 변형예의 블록도를 나타낸 것이다. 도 3에 도시된 이 변형예는 다수의 방식에 있어서 도 2에 도시된 것과 유사하고, 따라서 유사한 참조 번호들이 전체에 걸쳐 유사한 요소들을 지칭하는 데 사용된다. 그렇지만, 도 2의 컴퓨팅 디바이스(1000)의 변형예와 달리, 도 3의 컴퓨팅 디바이스(1000)의 변형예에서는, 제어기(200)는, 그에 부가하여, 디바이스들(165c, 195a, 185 및 195b) 각각에 신호 도전체들(236, 237, 238 및 239)을 통해 각각 결합되어 있다. 따라서, 제어기(200)는 결합부(155)의 사용을 수반하지 않는 방식으로 이러한 디바이스들 각각과 신호들을 교환할 수 있다. 도전체들(236 내지 239) 각각이, 이러한 디바이스들 각각이 동작 상태에 있는 동안, 이러한 디바이스들 각각에 의해 제어기(200)에 제공되는 비교적 간단한 반복 신호(예컨대, 클록 펄스)를 전도할 수 있다. 따라서, 이러한 디바이스들 중 하나의 디바이스로부터의 이러한 규칙적인 타이밍의 신호들의 중단은 비동작 상태로의 그 디바이스의 진입을 나타낼 수 있다. 다른 대안으로서, 도전체들(236 내지 239)이 하나 이상의 버스들, 예컨대, 이러한 디바이스들 모두에 대해 연장하는 도전체들을 포함하는 단일의 공통 버스 또는 도시된 바와 같이 제어기(200)로부터 이러한 디바이스들 각각에 대해 개별적으로 연장하는 하나 이상의 도전체들을 각각 포함하는 개별적인 점대점 버스들을 포함할 수 있다. 도전체들(236 내지 239)이 하나 이상의 버스들을 포함하는 경우, 제어기는 비동작 상태로의 진입에 대해 이러한 디바이스들을 모니터링하기 위해 버스 동작들(예컨대, 레지스터들(136 내지 139)을 판독하는 것)을 수행할 수 있다.
따라서, 일부 실시예들에서, 제어 루틴(240)의 실행은 프로세서 회로(250)로 하여금 도전체들(236 내지 239)을 반복하여 이용하게 하여, 비동작 상태에 들어갔다는 표시에 대해 디바이스들(165c, 185, 195a 및 195b) 중 대응하는 디바이스들을 모니터링하게 할 수 있다. 다시 말하지만, 이것은 프로세서 회로(250)가 이러한 디바이스들 중 대응하는 디바이스들로부터 예상된 신호들(가능하게는 규칙적인 간격의 클록 펄스들과 같은 반복하는 신호들일 수 있는)이 존재하는지 도전체들(236 내지 239) 각각을 모니터링하는 것에 의해 행해질 수 있거나, 이것은 프로세서 회로(250)가 도전체들(236 내지 239) 각각을 이러한 디바이스들 각각으로 하여금 매번 계속하여 동작 상태에 있다는 것을 나타내는 방식으로 응답하게 하는 버스 동작들에 참여하도록 반복하여 동작시키는 것에 의해 행해질 수 있다. 도전체들(236 내지 239) 중 하나를 통해 이 디바이스들 중 대응하는 디바이스가 비동작으로 되었다는 것을 검출할 시에, 프로세서 회로(250)로 하여금, 먼저, 가능하게는 프로세서 회로(150)로 하여금 비동작 디바이스의 리셋을 개시하는 것과 연관된 그 비동작 디바이스의 일부분에 액세스하게 하는 것을 통해, 비동작 상태를 교정할 것을 시도하라고 (제어기 드라이버(145)를 통해) 디바이스 드라이버들(146 내지 149) 중 대응하는 디바이스 드라이버에 신호하게 할 수 있다. 다른 대안으로서 또는 그에 부가하여, 프로세서 회로(250)로 하여금 전력 도전체들(116 내지 119) 중 대응하는 전력 도전체를 통해 제어기(200)에 의해 그 디바이스에 제공된 전력을 사이클링하게 할 수 있다. 프로세서 회로(250)가 그렇게 할 때, 프로세서 회로(250)는 중단 없이 도전체들(116 내지 119) 중 다른 도전체들을 통해 디바이스들(165c, 185, 195a 및 195b) 중 다른 디바이스들에의 전력의 제공을 유지한다. 이 전력 사이클링 후에, 프로세서 회로(250)는 그 디바이스에 대한 전력이 사이클링되었다는 것을 나타내기 위해 제어기 드라이버(145)를 통해 디바이스 드라이버들(146 내지 149) 중 대응하는 디바이스 드라이버에 신호할 수 있다. 다른 대안으로서, 이 전력 사이클링 후에, 프로세서 회로(250)는 단지 프로세서 회로(150)로 하여금 디바이스가 더 이상 비동작 상태에 있지 않다는 것을 독립적으로 검출하게 할 수 있다. 그에 응답하여, 그 디바이스가 이제 전력의 복원 후에 기지의 초기 상태에 있는 경우, 그 대응하는 디바이스 드라이버의 추가적인 실행은 프로세서 회로(150)로 하여금 그 디바이스를 또다시 사용되도록 구성하게 한다.
앞서 논의한 바와 같이, 컴포넌트들(165c, 185, 195a 및 195b) 중 하나 이상은 전력의 제공 및/또는 제공의 중단에서 단계적 방식으로 수행될 그의 전력의 사이클링이 순차적으로 또는 단계적 방식으로 수행되어야만 할 것을 필요로 할 수 있다. 이 논의가 컴포넌트의 상이한 부분들에의 전력이 특정의 순서로 제거 및/또는 복원될 수 있게 하기 위해 다수의 전력 도전체들(구체적으로는, 도 1에서의 디스플레이 인터페이스(185)에 전력을 전달하는 도전체들(118a 내지 118c)의 예)의 사용에 중점을 두고 있었지만, 다른 대안으로서 또는 그에 부가하여, 전력의 제공 또는 제거의 이러한 스테이징(staging)이 적어도 부분적으로 그 컴포넌트 내의 하나 이상의 레지스터들의 사용을 통해 수행될 수 있다. 구체적으로는, 그리고 예로서, 도 3은 디스플레이 인터페이스(185)를 전력의 제공 및/또는 제거의 스테이징의 적어도 일부를 제어하기 위해 액세스될 수 있는 부가의 레지스터(135)를 포함하는 것으로 나타내고 있다. 보다 구체적으로는, 그리고 컴퓨팅 디바이스(1000)가 디스플레이(180)를 포함하고 따라서 컴퓨팅 디바이스(1000)가 디스플레이(180)에 전력을 제공하는 경우, 디스플레이(180) 상의 픽셀들의 백라이팅 및/또는 시각적 표현을 위해 전력이 디스플레이 인터페이스(185)를 통해 제공될 수 있고, 디스플레이 인터페이스(185)로부터의 전력의 제거가 디스플레이(180)에 대한 전력이 먼저 제거될 것을 반드시 필요로 할 수 있다. 따라서, 이 예에서, 제어기(200)가 전력을 디스플레이 인터페이스(185)에 제공하는 것을 중단하도록 동작하는 경우, 제어기(200)는 디스플레이 인터페이스(185)로 하여금 영상의 픽셀들을 시각적으로 표현하기 위해 디스플레이(180) 내의 백라이팅 및 로직에 전력을 제공하는 것을 먼저 중단하게 하기 위해 (결합부(155))를 통해 그리고/또는 신호 도전체(들)(238)를 통해) 레지스터(135)에 먼저 액세스할 수 있다. 이어서, 제어기(200)는, 디스플레이 인터페이스(185) 내의 코어 디지털 로직으로부터의 전력을 제거하기 전에, 가능하게는 디스플레이 인터페이스(185)의 입력/출력 드라이버들로부터의 전력을 제거하기 위해, 가능하게는 다수의 도전체들(118a 내지 118c)(도 1을 참조)을 통해 디스플레이 인터페이스(185) 자체에의 전력의 제공을 제거하도록 동작한다. 제어기(200)는 이어서 전력의 제공을 복원함에 있어서 이 스테이징을 반전시켜, 먼저 전력을 디스플레이 인터페이스(185)의 코어 내의 디지털 로직에 제공하고, 이어서 전력을 디스플레이 인터페이스(185)의 입력/출력 드라이버들에 제공하며, 이어서 전력을 계속하여 디스플레이 인터페이스(185)를 통해 디스플레이(180)에 제공하기 위해 레지스터(135)에 액세스할 수 있다.
도 4는 도 3에 제시된 것과 같은 컴퓨팅 디바이스(1000)의 변형예의 블록도를 나타낸 것이다. 도 4에 도시된 이 변형예는 많은 방식들에서 도 3에 도시된 것과 유사하고, 따라서 유사한 참조 번호들이 전체에 걸쳐 유사한 요소들을 지칭하는 데 사용된다. 그렇지만, 도 3의 컴퓨팅 디바이스(1000)의 변형예와 달리, 도 4의 컴퓨팅 디바이스(1000)의 변형예에서는, 디바이스들(165c, 185, 195a 및 195b)에 레지스터들(136 내지 139)이 존재하지 않는다. 따라서, 비동작 상태의 표시에 대한 모니터링은 제어기(200)가 도전체들(236 내지 239)을 통해 이 디바이스들 각각과 신호들을 교환함으로써 수행된다.
따라서, 일부 실시예들에서, 제어 루틴(240)의 실행은 프로세서 회로(250)로 하여금 도전체들(236 내지 239)을 반복하여 이용하게 하여, 비동작 상태에 들어갔다는 표시에 대해 디바이스들(165c, 185, 195a 및 195b) 중 대응하는 디바이스들을 모니터링하게 할 수 있다. 도전체들(236 내지 239) 중 하나를 통해 이 디바이스들 중 대응하는 디바이스가 비동작으로 되었다는 것을 검출할 시에, 프로세서 회로(250)로 하여금, 먼저, 가능하게는 프로세서 회로(150)로 하여금 비동작 디바이스의 리셋을 개시하는 것과 연관된 그 비동작 디바이스의 일부분에 액세스하게 하는 것을 통해, 비동작 상태를 교정할 것을 시도할 것을 (제어기 드라이버(145)를 통해) 디바이스 드라이버들(146 내지 149) 중 대응하는 디바이스 드라이버에 신호하게 할 수 있다. 다른 대안으로서 또는 그에 부가하여, 프로세서 회로(250)로 하여금 전력 도전체들(116 내지 119) 중 대응하는 전력 도전체를 통해 제어기(200)에 의해 그 디바이스에 제공된 전력을 사이클링하게 할 수 있다. 이 전력 사이클링 후에, 프로세서 회로(250)는 그 디바이스에 대한 전력이 사이클링되었다는 것을 나타내기 위해 제어기 드라이버(145)를 통해 디바이스 드라이버들(146 내지 149) 중 대응하는 디바이스 드라이버에 신호할 수 있다. 그에 응답하여, 그 디바이스가 이제 전력의 복원 후에 기지의 초기 상태에 있는 경우, 그 대응하는 디바이스 드라이버의 추가적인 실행은 프로세서 회로(150)로 하여금 그 디바이스를 또다시 사용되도록 구성하게 한다.
도 5는 논리 흐름(2100)의 일 실시예를 나타낸 것이다. 논리 흐름(2100)은 본 명세서에 기술된 하나 이상의 실시예들에 의해 실행되는 동작들 중 일부 또는 전부를 나타낼 수 있다. 보다 구체적으로는, 논리 흐름(2100)은 적어도 부팅 루틴(240)을 실행함에 있어서 컴퓨팅 디바이스(1000)의 적어도 프로세서 회로(250)에 의해 수행되는 동작들을 나타낼 수 있다.
2110에서, 컴퓨팅 디바이스의 제어기(예컨대, 컴퓨팅 디바이스(1000)의 제어기(200))는 컴포넌트가 비동작으로 된다는 표시에 대해 컴포넌트를 모니터링한다. 앞서 논의한 바와 같이, 제어기는 클록킹된 신호(clocked signal), 컴포넌트의 레지스터로부터 판독된 하나 이상의 비트들의 값들을 전달하는 신호 등과 같은 컴포넌트로부터의 신호들을 수신할 수 있다.
2120에서, 제어기는 컴포넌트가 비동작 상태에 들어갔다는 것을 검출한다. 앞서 논의한 바와 같이, 제어기는 예상된 간격으로 신호를 수신하는 것을 중단할 수 있거나, 제어기는 예상된 것이 아닌 비트의 값을 전달하는 신호를 수신할 수 있다.
2130에서, 제어기는 컴포넌트에의 전력의 공급을 사이클링한다. 앞서 논의한 바와 같이, 비동작으로 된 것으로 검출되는 컴포넌트에의 전력의 제공이 사이클링되는 반면, 다른 컴포넌트들에 제공되는 전력이 중단 없이 계속될 수 있다.
2140에서, 제어기는 컴포넌트에의 전력이 사이클링되었다는 것을 컴퓨팅 디바이스의 주 프로세서 회로(예컨대, 컴퓨팅 디바이스(1000)의 프로세서 회로(150))에 신호하고, 그로써 주 프로세서 회로가 컴포넌트를 사용하도록 구성할 수 있게 한다. 논의된 바와 같이, 컴퓨팅 디바이스의 프로세서 회로는 컴포넌트와 연관된 디바이스 드라이버를 실행할 수 있고, 컴포넌트에의 전력이 사이클링되었다(그리고 따라서 기지의 초기 상태에 놓였다)는 표시의 수신 시에, 프로세서 회로로 하여금 컴포넌트를 사용하도록 구성하게 할 수 있다.
도 6은 논리 흐름(2200)의 일 실시예를 나타낸 것이다. 논리 흐름(2200)은 본 명세서에 기술된 하나 이상의 실시예들에 의해 실행되는 동작들 중 일부 또는 전부를 나타낼 수 있다. 보다 구체적으로는, 논리 흐름(2200)은 적어도 부팅 루틴(240)을 실행함에 있어서 컴퓨팅 디바이스(1000)의 적어도 프로세서 회로(250)에 의해 수행되는 동작들을 나타낼 수 있다.
2210에서, 컴퓨팅 디바이스의 제어기(예컨대, 컴퓨팅 디바이스(1000)의 제어기(200))는 컴포넌트가 비동작으로 된다는 표시에 대해 컴포넌트로부터 수신되는 신호들을 모니터링한다.
2220에서, 제어기는 컴포넌트가 비동작 상태에 들어갔다는 것을 검출한다. 다시 말하지만, 컴포넌트가 비동작으로 된다는 표시는 예상된 신호의 수신이 없다는 것일 수 있다.
2230에서, 제어기는 컴포넌트가 비동작이라는 것을 컴퓨팅 디바이스의 주 프로세서 회로(예컨대, 컴퓨팅 디바이스(1000)의 프로세서 회로(150))에 신호하고, 그로써 주 프로세서 회로가 (컴포넌트와 연관된 디바이스 드라이버를 실행함에 있어서) 컴포넌트를 리셋하는 것을 시도할 수 있게 한다.
2240에서, 컴포넌트를 리셋하는 시도가 성공하지 못한 경우, 제어기는 2242에서 (다른 컴포넌트들에의 전력의 제공을 중단 없이 유지하면서) 컴포넌트에 제공되는 전력을 사이클링한다. 또한, 제어기는 2244에서 컴포넌트에 대한 전력이 사이클링되었다는 것을 주 프로세서 회로에 신호하여, 주 프로세서 회로가 (컴포넌트와 연관된 디바이스 드라이버를 실행함에 있어서) 컴포넌트를 사용하도록 구성할 수 있게 한다.
도 7은 논리 흐름(2300)의 일 실시예를 나타낸 것이다. 논리 흐름(2300)은 본 명세서에 기술된 하나 이상의 실시예들에 의해 실행되는 동작들 중 일부 또는 전부를 나타낼 수 있다. 보다 구체적으로는, 논리 흐름(2300)은 적어도 부팅 루틴(240)을 실행함에 있어서 컴퓨팅 디바이스(1000)의 적어도 프로세서 회로(250)에 의해 수행되는 동작들을 나타낼 수 있다.
2310에서, 컴퓨팅 디바이스의 제어기(예컨대, 컴퓨팅 디바이스(1000)의 제어기(200))는 버스 마스터로서 버스 및/또는 컴퓨팅 디바이스의 다른 형태의 결합부의 일부분(예컨대, 결합부(155)의 일부분)에 액세스한다.
2320에서, 제어기는 컴포넌트의 레지스터를 판독한다. 앞서 논의한 바와 같이, 레지스터는, 판독될 때 그리고/또는 판독된 후 특정 양의 시간 내에서 특정의 이진 값(들)을 가질 것으로 예상되는 하나 이상의 비트들을 포함한다.
2330에서, 제어기는 그 버스 또는 다른 형태의 결합부의 일부분을 포기한다(relinquish).
2340에서, 제어기가 그 레지스터로부터 판독한 것에 기초하여 제어기가 컴포넌트가 비동작으로 된다는 표시를 검출하는 경우, 2350에서, 제어기는 컴포넌트에의 전력의 공급을 사이클링한다. 그렇지 않은 경우, 제어기는 2320에서 또다시 레지스터를 판독하는 것의 준비로 2310에서 또다시 버스 또는 다른 형태의 결합부의 일부분에 액세스한다.
도 8은 논리 흐름(2400)의 일 실시예를 나타낸 것이다. 논리 흐름(2400)은 본 명세서에 기술된 하나 이상의 실시예들에 의해 실행되는 동작들 중 일부 또는 전부를 나타낼 수 있다. 보다 구체적으로는, 논리 흐름(2400)은 적어도 부팅 루틴들(140)을 실행함에 있어서 컴퓨팅 디바이스(1000)의 적어도 프로세서 회로(150)에 의해 수행되는 동작들을 나타낼 수 있다.
2410에서, 컴퓨팅 디바이스의 주 프로세서 회로(예컨대, 컴퓨팅 디바이스(1000)의 프로세서 회로(150))는 컴퓨팅 디바이스의 컴포넌트가 비동작이라는 신호를 컴퓨팅 디바이스의 제어기로부터 수신한다.
2420에서, 주 프로세서 회로는 컴포넌트를 리셋하려고 시도한다. 앞서 논의한 바와 같이, 주 프로세서 회로는 리셋을 실시하는 것과 연관되어 있는 컴포넌트의 레지스터에 액세스하려고 시도할 수 있다.
2430에서, 컴포넌트를 리셋하는 시도가 성공한 경우, 2432에서 주 프로세서 회로는 리셋이 성공했다는 것을 제어기에 신호한다.
그렇지 않고, 리셋하는 시도가 성공하지 못한 경우, 2440에서 주 프로세서 회로는 컴포넌트에 제공되는 전력을 사이클링할 것을 제어기에 신호한다. 또한, 2450에서 주 프로세서 회로는 컴포넌트에 대한 전력이 사이클링되었다는 신호를 제어기로부터 수신하고, 2460에서 주 프로세서 회로는 컴포넌트를 사용하도록 구성한다.
도 9는 논리 흐름(2500)의 일 실시예를 나타낸 것이다. 논리 흐름(2500)은 본 명세서에 기술된 하나 이상의 실시예들에 의해 실행되는 동작들 중 일부 또는 전부를 나타낼 수 있다. 보다 구체적으로는, 논리 흐름(2500)은 적어도 부팅 루틴들(140)을 실행함에 있어서 컴퓨팅 디바이스(1000)의 적어도 프로세서 회로(150)에 의해 수행되는 동작들을 나타낼 수 있다.
2510에서, 컴퓨팅 디바이스의 주 프로세서 회로(예컨대, 컴퓨팅 디바이스(1000)의 프로세서 회로(150))는 컴포넌트가 비동작 상태에 들어간다는 표시를 기다리면서 컴포넌트의 레지스터를 반복하여 판독한다.
2520에서, 주 프로세서 회로는 레지스터를 판독한 결과로서 컴포넌트가 비동작인 것을 판독한다.
2530에서, 주 프로세서 회로는 컴포넌트를 리셋하려고 시도한다.
2540에서, 컴포넌트를 리셋하는 시도가 성공한 경우, 2546에서 주 프로세서 회로는 컴포넌트를 사용하도록 구성한다.
그렇지 않고, 리셋하는 시도가 성공하지 못한 경우, 2542에서 주 프로세서 회로는 컴포넌트에 제공되는 전력을 사이클링할 것을 컴퓨팅 디바이스의 제어기(예컨대, 컴퓨팅 디바이스(1000)의 제어기(200))에 신호한다. 또한, 2544에서 주 프로세서 회로는 컴포넌트에 대한 전력이 사이클링되었다는 신호를 제어기로부터 수신하고, 2546에서 주 프로세서 회로는 컴포넌트를 사용하도록 구성한다.
도 10은 이전에 기술된 것과 같은 다양한 실시예들을 구현하는 데 적당한 예시적인 프로세싱 아키텍처(3100)의 일 실시예를 나타낸 것이다. 보다 구체적으로는, 프로세싱 아키텍처(3100)(또는 그의 변형예들)는 컴퓨팅 디바이스들(1000 및 400) 중 하나 이상의 일부로서 그리고/또는 제어기(200) 내에 구현될 수 있다. 프로세싱 아키텍처(3100)의 컴포넌트들은 참조 번호들을 부여받으며, 여기서 마지막 2자리 숫자는 컴퓨팅 디바이스(1000) 및 제어기(200) 각각의 일부로서 앞서 도시되고 기술된 컴포넌트들의 참조 번호들의 마지막 2자리 숫자에 대응한다는 것에 유의한다. 이것은 다양한 실시예들에서 컴퓨팅 디바이스(1000) 및 제어기(200) 중 어느 것이 이 예시적인 프로세싱 아키텍처를 이용할 수 있든 간에 그들의 이러한 컴포넌트들을 상관시키는 보조 수단으로서 행해진다.
프로세싱 아키텍처(3100)는, 이것으로 한정되는 것은 아니지만, 하나 이상의 프로세서들, 멀티 코어 프로세서들, 코프로세서들, 메모리 유닛들, 칩셋들, 제어기들, 주변 장치들, 인터페이스들, 발진기들, 타이밍 디바이스들, 비디오 카드들, 오디오 카드들, 멀티미디어 입력/출력(I/O) 컴포넌트들, 전원 공급 장치들 등을 포함하는 디지털 처리에서 흔히 이용되는 다양한 요소들을 포함한다. 본 출원에서 사용되는 바와 같이, "시스템" 및 "컴포넌트"라는 용어들은 디지털 처리가 수행되는 컴퓨팅 디바이스의 엔터티를 지칭하기 위한 것이고, 그 엔터티는 하드웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어이고, 그의 예들은 이 도시된 예시적인 프로세싱 아키텍처에 의해 제공된다. 예를 들어, 컴포넌트는, 이것으로 한정되는 것은 아니지만, 프로세서 회로 상에서 실행 중인 프로세스, 프로세서 회로 자체, 광학 및/또는 자기 저장 매체를 이용할 수 있는 저장소 디바이스(예컨대, 하드 디스크 드라이브, 어레이 내의 다수의 저장 드라이브들 등), 소프트웨어 객체, 실행가능 명령어 시퀀스(executable sequence of instructions), 실행 스레드(thread of execution), 프로그램, 및/또는 컴퓨팅 디바이스 전체(예컨대, 컴퓨터 전체)일 수 있다. 예시로서, 서버 상에서 실행 중인 애플리케이션 및 서버 둘 다는 컴포넌트일 수 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행 스레드 내에 존재할 수 있고, 컴포넌트는 컴퓨팅 디바이스 상에 로컬화될 수 있고 그리고/또는 2개 이상의 컴퓨팅 디바이스들 간에 분산되어 있을 수 있다. 게다가, 동작들을 조정하기 위해 컴포넌트들이 다양한 유형의 통신 매체에 의해 서로 통신가능하게 결합되어 있을 수 있다. 이 조정은 단방향 또는 양방향 정보 교환을 포함할 수 있다. 예를 들면, 컴포넌트들은 통신 매체를 통해 통신되는 신호들의 형태로 정보를 통신할 수 있다. 정보는 하나 이상의 신호 라인들에 할당된 신호들로서 구현될 수 있다. 메시지(명령, 상태, 주소 또는 데이터 메시지를 포함함)는 이러한 신호들 중 하나일 수 있거나, 복수의 이러한 신호들일 수 있고, 각종의 접속들 및/또는 인터페이스들 중 임의의 것을 통해 직렬로 또는 실질적으로 병렬로 전송될 수 있다.
도시된 바와 같이, 프로세싱 아키텍처(3100)를 구현함에 있어서, 컴퓨팅 디바이스는 적어도 프로세서 회로(950), 저장소(960), 제어기(900), 다른 디바이스들에 대한 인터페이스(990), 및 결합부(955)를 포함한다. 설명되는 바와 같이, 프로세싱 아키텍처(3100)를 구현하는 컴퓨팅 디바이스의, 그의 의도된 용도 및/또는 사용 조건들을 포함하는 다양한 측면들에 따라, 이러한 컴퓨팅 디바이스는, 이것으로 한정되는 것은 아니지만, 디스플레이 인터페이스(985)와 같은 부가의 컴포넌트들을 더 포함할 수 있다.
제어기(900)는 제어기(200)에 대응한다. 앞서 논의한 바와 같이, 제어기(200)는 프로세싱 아키텍처(3100)를 구현할 수 있다. 이와 같이, 본질적으로, 제어기(200)가, 적어도 어느 정도는, 컴퓨팅 디바이스(1000) 내에 임베딩된 컴퓨팅 디바이스로서 간주될 수 있다. 그에 따라, 제어기(200)는, 컴퓨팅 디바이스(1000)가 다양한 기능들을 수행하는 것을 지원하기 위해, 본 명세서에 상세히 기술된 기능들을 비롯한 다양한 기능들을 수행할 수 있다.
결합부(955)는 적어도 프로세서 회로(950)를 저장소(960)에 통신가능하게 결합하는 하나 이상의 버스들, 점대점 상호접속부들, 송수신기들, 버퍼들, 크로스포인트 스위치들, 그리고/또는 다른 도전체들 및/또는 로직으로 이루어져 있다. 결합부(955)는 (이들 및/또는 다른 컴포넌트들 중 어느 것이 또한 존재하는지에 따라) 프로세서 회로(950)를 인터페이스(990) 및 디스플레이 인터페이스(985) 중 하나 이상에 추가로 결합시킬 수 있다. 프로세서 회로(950)가 결합부들(955)에 의해 그렇게 결합되어 있는 것에 의해, 프로세서 회로(950)는 컴퓨팅 디바이스(1000) 및 제어기(200) 중 어느 것이 프로세싱 아키텍처(3100)를 구현하든 그에 대해 앞서 상세히 기술된 작업들 중 다양한 작업들을 수행할 수 있다. 결합부(955)는 신호들이 광학적으로 및/또는 전기적으로 전달되는 각종의 기술들 또는 기술들의 조합들 중 임의의 것으로 구현될 수 있다. 게다가, 결합부들(955)의 적어도 일부분들은, 이것으로 한정되는 것은 아니지만, AGP(Accelerated Graphics Port), CardBus, E-ISA(Extended Industry Standard Architecture), MCA(Micro Channel Architecture), NuBus, PCI-X(Peripheral Component Interconnect (Extended)), PCI-E(PCI Express), PCMCIA(Personal Computer Memory Card International Association) 버스, HyperTransport™, QuickPath 등(이들로 제한되지 않음)을 비롯한 광범위한 산업 표준들 중 임의의 것에 부합하는 타이밍들 및/또는 프로토콜들을 이용할 수 있다.
앞서 논의한 바와 같이, (프로세서 회로들(150 및 250) 중 하나 이상에 대응하는) 프로세서 회로(950)는, 광범위한 기술들 중 임의의 기술을 이용하고 다수의 방식들 중 임의의 방식으로 물리적으로 결합된 하나 이상의 코어들로 구현되는, 광범위한 상업적으로 이용가능한 프로세서들 중 임의의 것을 포함할 수 있다.
앞서 논의한 바와 같이, (저장소들(160 및 260) 중 하나 이상에 대응하는) 저장소(960)는 광범위한 기술들 또는 기술들의 조합들 중 임의의 것에 기초하여 하나 이상의 개별적인 저장소 디바이스들을 포함할 수 있다. 보다 구체적으로는, 도시된 바와 같이, 저장소(960)는 휘발성 저장소(961)(예컨대, 하나 이상의 형태의 RAM 기술에 기초한 고상 저장소), 비휘발성 저장소(962)(예컨대, 그의 내용을 보존하기 위해 전력의 상시 제공을 필요로 하지 않는 고상, 강자성 또는 다른 저장소), 및 이동식 매체 저장소(963)(예컨대, 그에 의해 컴퓨팅 디바이스들 사이에서 정보가 전달될 수 있는 이동식 디스크 또는 고상 메모리 카드 저장소) 중 하나 이상을 포함할 수 있다. 이와 같이 저장소(960)를 가능하게는 다수의 개별적인 유형의 저장소를 포함하는 것으로 기술하는 것은 컴퓨팅 디바이스에서 2개 이상의 유형의 저장소 디바이스를 흔히 사용하고 있다는 것을 인식하고 있으며, 여기서 하나의 유형은 프로세서 회로(950)에 의한 데이터의 보다 신속한 조작을 가능하게 하는(그렇지만 가능하게는 전력을 상시 필요로 하는 "휘발성" 기술을 사용함) 비교적 신속한 판독 및 기입 능력을 제공하는 반면, 다른 유형은 비교적 높은 밀도의 비휘발성 저장을 제공한다(그렇지만 비교적 느린 판독 및 기입 능력을 제공함).
종종 상이한 저장소 디바이스들의 상이한 특성들이 상이한 기술들을 이용하는 경우, 이러한 상이한 저장소 디바이스들이 상이한 인터페이스들을 통해 그의 상이한 저장소 디바이스들에 결합된 상이한 저장소 제어기들을 통해 컴퓨팅 디바이스의 다른 부분들에 결합되는 일이 또한 흔하다. 예로서, 휘발성 저장소(961)가 존재하고 RAM 기술에 기초하는 경우, 휘발성 저장소(961)가 행(row) 및 열(column) 어드레싱을 이용할 수도 있는 휘발성 저장소(961)에 적절한 인터페이스를 제공하는 저장소 제어기(965a)를 통해 결합부(955)에 통신가능하게 결합될 수 있고, 저장소 제어기(965a)는 휘발성 저장소(961) 내에 저장된 정보를 보조하는 데 도움을 주기 위해 행 리프레시(row refreshing) 및/또는 다른 유지 작업들을 수행할 수 있다. 다른 예로서, 비휘발성 저장소(962)가 존재하고 하나 이상의 강자성 및/또는 고상 디스크 드라이브들을 포함하는 경우, 비휘발성 저장소(962)는 정보의 블록들 및/또는 실린더들 및 섹터들의 어드레싱을 이용할 수도 있는 비휘발성 저장소(962)에 적절한 인터페이스를 제공하는 저장소 제어기(965b)를 통해 결합부(955)에 통신가능하게 결합될 수 있다. 또 다른 예로서, 이동식 매체 저장소(963)가 존재하고 (가능하게는 저장 매체(169)에 대응하는) 하나 이상의 머신 판독가능 저장 매체(969)를 이용하는 하나 이상의 광학 및/또는 고상 디스크 드라이브들을 포함하는 경우, 이동식 매체 저장소(963)가 정보의 블록들의 어드레싱을 이용할 수도 있는 이동식 매체 저장소(963)에 적절한 인터페이스를 제공하는 저장소 제어기(965c)를 통해 결합부(955)에 통신가능하게 결합될 수 있고, 저장소 제어기(965c)는 머신 판독가능 저장 매체(969)의 수명을 연장시키는 것에 관련된 방식으로 판독, 소거 및 기입 동작들을 조정할 수 있다.
휘발성 저장소(961) 또는 비휘발성 저장소(962) 중 하나 또는 다른 하나는, 각각이 기초하는 기술들에 따라, 프로세서 회로(950)에 의해 실행가능한 명령어들의 시퀀스를 포함하는 루틴이 저장될 수 있는 머신 판독가능 저장 매체의 형태의 제조 물품을 포함할 수 있다. 예로서, 비휘발성 저장소(962)가 강자성 기반 디스크 드라이브(예컨대, 소위 "하드 드라이브")를 포함하는 경우, 각각의 이러한 디스크 드라이브는 전형적으로 자기 반응 입자(magnetically responsive particle)들의 코팅이 증착되고 플로피 디스켓과 같은 저장 매체와 유사한 방식으로 명령어들의 시퀀스와 같은 정보를 저장하기 위해 다양한 패턴들로 자기 배향(magnetically oriented)되어 있는 하나 이상의 회전 플래터(rotating platter)들을 이용한다. 다른 예로서, 비휘발성 저장소(962)는 컴팩트 플래시 카드(compact flash card)와 유사한 방식으로 명령어들의 시퀀스와 같은 정보를 저장하기 위해 고상 저장소 디바이스들의 뱅크들을 포함할 수 있다. 다시 말하지만, 컴퓨팅 디바이스에서 실행가능 루틴들 및/또는 데이터를 저장하기 위해 상이한 때에 상이한 유형의 저장소 디바이스들을 이용하는 일이 흔하다. 이와 같이, 프로세서 회로(950)에 의해 실행될 명령어들의 시퀀스를 포함하는 루틴은 처음에 머신 판독가능 저장 매체(969) 상에 저장될 수 있고, 이동식 매체 저장소(963)가 이어서 그 루틴을 보다 장기간 저장을 위해 비휘발성 저장소(962)로 복사하는 데 이용될 수 있고, 따라서 그 루틴이 실행될 때 프로세서 회로(950)에 의한 보다 빠른 액세스를 가능하게 하기 위해 머신 판독가능 저장 매체(969) 및/또는 휘발성 저장소(961)가 계속 존재할 필요가 없다.
앞서 논의한 바와 같이, (가능하게는 인터페이스(190)에 대응하는) 인터페이스(990)는 컴퓨팅 디바이스를 하나 이상의 다른 디바이스들에 통신가능하게 결합하는 데 이용될 수 있는 각종의 통신 기술들 중 임의의 것에 대응하는 각종의 시그널링 기술들 중 임의의 것을 이용할 수 있다. 다시 말하지만, 프로세서 회로(950)가 입력/출력 디바이스들(예컨대, 도시된 예시적인 키보드(920) 또는 프린터(970)) 및/또는 다른 컴퓨팅 디바이스들과, 가능하게는 네트워크(예컨대, 네트워크(999)) 또는 상호접속된 네트워크들의 세트를 통해, 상호작용할 수 있게 하기 위해 다양한 형태의 유선 또는 무선 시그널링 중 하나 또는 둘 다가 이용될 수 있다. 종종 임의의 하나의 컴퓨팅 디바이스에 의해 지원되어야만 하는 다수의 유형의 시그널링 및/또는 프로토콜들의 종종 크게 상이한 특성을 인식하여, 인터페이스(990)는 다수의 상이한 인터페이스 제어기들(995a, 995b 및 995c)을 포함하는 것으로 도시되어 있다. 인터페이스 제어기(995a)는 (가능하게는 제어들(120)에 대응하는) 도시된 키보드(920)와 같은 사용자 입력 디바이스들로부터 직렬 전송된 메시지들을 수신하기 위해 각종의 유형의 유선 디지털 직렬 인터페이스 또는 무선 주파수 무선 인터페이스 중 임의의 것을 이용할 수 있다. 인터페이스 제어기(995b)는 도시된 네트워크(999)(하나 이상의 링크들, 소규모 네트워크, 또는 인터넷을 포함하는 네트워크일 수도 있음)를 통해 다른 컴퓨팅 디바이스들에 액세스하기 위해 각종의 케이블링 기반 또는 무선 시그널링, 타이밍들 및/또는 프로토콜들 중 임의의 것을 이용할 수 있다. 인터페이스(995c)는 데이터를 도시된 프린터(970)로 전송하기 위해 직렬 또는 병렬 신호 전송 중 어느 하나의 사용을 가능하게 하는 각종의 전기 전도성 케이블링 중 임의의 것을 이용할 수 있다. 인터페이스(990)의 하나 이상의 인터페이스 제어기들을 통해 통신가능하게 결합될 수 있는 디바이스들 중 다른 예들은, 이것으로 한정되는 것은 아니지만, 마이크로폰, 리모콘, 스타일러스 펜, 카드 판독기, 지문 판독기, 가상 현실 상호작용 글러브, 그래픽 입력 태블릿, 조이스틱, 다른 키보드, 망막 스캐너, 터치 스크린의 터치 입력 컴포넌트, 트랙볼, 다양한 센서들, 레이저 프린터, 잉크젯 프린터, 기계 로봇(mechanical robot), 밀링 머신 등을 포함한다.
컴퓨팅 디바이스가 디스플레이(예컨대, 디스플레이(180)에 대응하는 도시된 예시적인 디스플레이(980))에 통신가능하게 결합되어 있는(또는 그를 실제로 포함할 수도 있는) 경우, 프로세싱 아키텍처(3100)를 구현하는 이러한 컴퓨팅 디바이스는 또한 디스플레이 인터페이스(985)를 포함할 수 있다. 디스플레이에 통신가능하게 결합함에 있어서 보다 일반화된 유형의 인터페이스가 이용될 수 있지만, 다양한 형태의 콘텐츠를 디스플레이 상에 시각적으로 디스플레이하는 데 종종 필요한 어느 정도 특수한 부가 처리는 물론, 사용되는 케이블링 기반 인터페이스들의 어느 정도 특수한 특성으로 인해, 종종 별도의 디스플레이 인터페이스를 제공하는 것이 바람직하게 된다. 디스플레이(980)에 대해 통신가능하게 결합함에 있어서 디스플레이 인터페이스(985)에 의해 이용될 수 있는 유선 및/또는 무선 시그널링 기술들은 각종의 아날로그 비디오 인터페이스들, DVI(Digital Video Interface), DisplayPort 등 중 임의의 것(이들로 제한되지 않음)을 비롯한 각종의 산업 표준들 중 임의의 것에 부합하는 시그널링 및/또는 프로토콜들을 사용할 수 있다.
보다 일반적으로, 컴퓨팅 디바이스(1000)의 다양한 요소들은 다양한 하드웨어 요소들, 소프트웨어 요소들, 또는 이 둘의 조합을 포함할 수 있다. 하드웨어 요소들의 예들은 디바이스, 로직 디바이스, 컴포넌트, 프로세서, 마이크로프로세서, 회로, 프로세서 회로, 회로 요소(예컨대, 트랜지스터, 저항기, 커패시터, 인덕터 등), 집적 회로, ASIC(application specific integrated circuit), PLD(programmable logic device), DSP(digital signal processor), FPGA(field programmable gate array), 메모리 유닛, 로직 게이트, 레지스터, 반도전체 디바이스, 칩, 마이크로칩, 칩셋 등을 포함할 수 있다. 소프트웨어 요소들의 예들은 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 소프트웨어 개발 프로그램, 머신 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 메소드, 프로시저, 소프트웨어 인터페이스, API(application program interface), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심볼, 또는 이들의 임의의 조합을 포함할 수 있다. 그렇지만, 일 실시예가 하드웨어 요소들 및/또는 소프트웨어 요소들을 사용하여 구현되는지를 결정하는 것은, 주어진 구현예에 대해 원하는 바에 따라, 원하는 계산 속도, 전력 레벨, 열 허용 오차, 처리 사이클 버짓(processing cycle budget), 입력 데이터 레이트, 출력 데이터 레이트, 메모리 자원, 데이터 버스 속도 및 다른 설계 또는 성능 제약조건들과 같은 임의의 수의 인자들에 따라 달라질 수 있다.
일부 실시예들은 "일 실시예" 또는 "일 실시예"라는 표현을 그의 파생어들과 함께 사용하여 기술될 수 있다. 이 용어들은 그 실시예와 관련하여 기술된 특정의 특징, 구조 또는 특성이 적어도 일 실시예에 포함되어 있다는 것을 의미한다. 본 명세서의 여러 곳에서 나오는 "일 실시예에서"라는 문구가 모두 꼭 동일한 실시예를 말하는 것은 아니다. 게다가, 일부 실시예들은 "결합된" 및 "접속된"이라는 표현을 그의 파생어들과 함께 사용하여 기술될 수 있다. 이들 용어가 서로에 대해 꼭 동의어로서 의도된 것은 아니다. 예를 들어, 일부 실시예들이, 2개 이상의 요소들이 서로 물리적 또는 전기적으로 직접 접촉하고 있음을 나타내기 위해, 용어 "접속된" 및/또는 "결합된"을 사용하여 기술될 수 있다. 그렇지만, 용어 "결합된"은 또한 2개 이상의 요소들이 서로 직접 접촉하고 있지 않지만 여전히 서로 협력하거나 상호작용한다는 것을 의미할 수 있다.
읽는 사람이 기술적 개시 내용의 본질을 신속하게 확인할 수 있게 하기 위해 본 개시 내용의 요약이 제공되어 있다는 것을 강조한다. 이 요약서는 청구항들의 범주 또는 의미를 해석하거나 제한하는 데 사용되지 않는다는 이해 하에 제공된 것이다. 그에 부가하여, 이상의 상세한 설명에서, 본 개시 내용을 간소화하기 위해 다양한 특징들이 단일의 실시예에 함께 그룹화되어 있다는 것을 잘 알 것이다. 이러한 개시 방법이 청구된 실시예들이 각각의 청구항에 명확하게 인용되어 있는 것보다 더 많은 특징들을 필요로 한다는 의도를 반영하는 것으로 해석되어서는 안된다. 오히려, 이하의 청구항들이 반영하고 있는 바와 같이, 본 발명의 발명 요지가 단일의 개시된 실시예의 특징들 전부가 아닌 일부에 있다. 따라서, 이하의 청구항들은 이에 따라 상세한 설명에 포함되며, 각각의 청구항은 그 자체로서 개별적인 실시예로서의 지위를 갖는다. 첨부된 청구항들에서, 용어 "포함하는" 및 "~하도록 되어 있는"는 각자의 용어 "구비하는" 및 "~하게 되어 있는"의 평이한 동등어로서 사용된다. 더욱이, 용어 "제1", "제2" 및 "제3" 등은 단순히 수식어로서 사용되고, 그의 대상물들에 대한 수치적 요구사항을 부과하기 위한 것이 아니다.
앞서 기술된 것은 개시된 아키텍처의 예들을 포함한다. 물론, 컴포넌트들 및/또는 방법들의 모든 생각할 수 있는 조합을 기술하는 것이 가능하지 않지만, 통상의 기술자는 많은 추가의 조합들 및 치환들이 가능하다는 것을 인식할 수 있다. 그에 따라, 신규의 아키텍처는 첨부된 청구항들의 사상 및 범주 내에 속하는 모든 이러한 변경들, 수정들 및 변형들을 포함하기 위한 것이다. 상세한 개시 내용은 이제부터 추가적인 실시예들에 관한 예들을 제공하는 것으로 넘어간다. 이하에 제공된 예들은 제한하기 위한 것이 아니다.
장치의 예는, 제어기 프로세서 회로(controller processor circuit); 디지털 로직을 포함하고 제어기 프로세서 회로에 의해 제어되는 전력을 제공받는 제1 컴포넌트, 디지털 로직을 포함하고 제어기 프로세서 회로에 의해 제어되는 전력을 제공받는 제2 컴포넌트, 및 제어기 프로세서 회로에 통신가능하게 결합되고 명령어들을 저장하도록 구성된 제어기 저장소를 포함한다. 명령어들은 제어기 프로세서 회로 상에서, 제1 컴포넌트가 비동작인 것을 나타내는 신호를 수신하고, 그 신호에 기초하여 제2 컴포넌트에 전력을 계속 제공하면서 제1 컴포넌트로의 전력을 사이클링하도록 동작한다.
장치의 상기 예에 있어서, 제어기 프로세서 회로는 제1 및 제2 컴포넌트들에 결합되고, 명령어들은 제어기 프로세서 회로 상에서, 제1 컴포넌트 또는 제2 컴포넌트가 비동작이라는 표시에 대해 제1 및 제2 컴포넌트들로부터 수신되는 신호들을 반복하여 모니터링하도록 동작한다.
장치의 상기 예들 중 어느 하나에 있어서, 제1 컴포넌트가 비동작이라는 것을 나타내는 신호는 제1 컴포넌트로부터 수신되고, 제1 컴포넌트의 레지스터의 비트의 값의 표시를 포함한다.
장치의 상기 예들 중 어느 하나에 있어서, 제어기 프로세서 회로는 버스를 통해 제1 컴포넌트에 결합되고; 명령어들은 버스에 대한 버스 마스터의 역할을 맡고, 제1 컴포넌트의 레지스터를 판독하도록 동작하는 제어기 프로세서 상에서 동작하고, 제1 컴포넌트가 비동작이라는 것을 나타내는 신호는 레지스터를 판독하는 것을 통해 수신되고, 레지스터의 비트의 값의 표시를 포함한다.
장치의 상기 예들 중 어느 하나에 있어서, 장치는 주 프로세서 회로(main processor circuit)를 포함하고, 명령어들은 제어기 프로세서 회로 상에서, 제1 컴포넌트가 비동작인 것을 나타내는 신호를 주 프로세서 회로로부터 수신하도록 동작한다.
장치의 상기 예들 중 어느 하나에 있어서, 장치는 제1 컴포넌트에 전력을 제공하는 제1 및 제2 전력 도전체들을 포함하고; 명령어들은 제어기 프로세서 회로 상에서, 제1 전력 도전체를 통한 제1 컴포넌트로의 전력의 제공을 중단하게 하고, 제1 전력 도전체를 통한 전력의 제공의 중단 후에 제2 전력 도전체를 통한 제1 컴포넌트로의 전력의 제공을 중단하게 하고, 제1 및 제2 전력 도전체들 둘 다를 통한 전력의 제공의 중단 후에 제2 전력 도전체를 통해 제1 컴포넌트로의 전력의 제공을 재개하게 하고, 제2 전력 도전체를 통한 전력의 제공의 재개 후에 제1 전력 도전체를 통해 제1 컴포넌트에 전력을 제공하게 하도록 동작한다.
장치의 상기 예들 중 어느 하나에 있어서, 명령어들은 제어기 프로세서 회로 상에서, 제1 컴포넌트로 하여금 제1 컴포넌트에 제공되는 전력의 사이클링 전에 제1 컴포넌트에 제공되는 전력을 디바이스에 제공하는 것을 중단하게 하기 위해 제1 컴포넌트의 레지스터에 액세스하고, 제1 컴포넌트로 하여금 제1 컴포넌트에 제공되는 전력의 사이클링 후에 제1 컴포넌트에 제공되는 전력의 디바이스로의 제공을 재개하게 하기 위해 제1 컴포넌트의 레지스터에 액세스하도록 동작한다.
장치의 상기 예들 중 어느 하나에 있어서, 장치는 주 프로세서 회로를 포함하고; 명령어들은 제어기 프로세서 회로 상에서, 제1 컴포넌트가 비동작이라는 표시를 주 프로세서 회로에 제공하고, 제1 컴포넌트를 리셋하는 주 프로세서 회로에 의한 시도가 성공하지 못했다는 표시를 주 프로세서 회로로부터 수신하도록 동작한다.
장치의 상기 예들 중 어느 하나에 있어서, 장치는 주 프로세서 회로를 포함하고; 명령어들은 제어기 프로세서 회로 상에서, 제1 컴포넌트에 제공되는 전력이 사이클링되었다는 표시를 주 프로세서 회로에 제공하도록 동작한다.
다른 장치의 예는, 주 프로세서 회로; 제어기; 디지털 로직을 포함하고 제어기에 의해 제어되는 전력을 제공받는 제1 컴포넌트; 디지털 로직을 포함하고 제어기에 의해 제어되는 전력을 제공받는 제2 컴포넌트; 및 주 프로세서 회로에 통신가능하게 결합되고 명령어들을 저장하도록 구성된 주 저장소(main storage)를 포함한다. 명령어들은 주 프로세서 회로 상에서, 제1 컴포넌트가 비동작이라는 표시를 수신하고; 그 표시에 기초하여 제2 컴포넌트에 전력을 계속 제공하면서 제1 컴포넌트에 제공되는 전력을 사이클링하라는 신호를 제어기로 전송하도록 동작한다.
다른 장치의 상기 예에 있어서, 주 프로세서 회로는 제1 및 제2 컴포넌트들에 결합되고, 명령어들은 주 프로세서 회로 상에서, 제1 컴포넌트 또는 제2 컴포넌트가 비동작이라는 표시에 대해 제1 및 제2 컴포넌트들로부터 수신되는 신호들을 반복하여 모니터링하도록 동작한다.
다른 장치의 상기 예들 중 어느 하나에 있어서, 제1 컴포넌트가 비동작이라는 표시는 제1 컴포넌트의 레지스터의 비트의 값의 표시를 포함한다.
다른 장치의 상기 예들 중 어느 하나에 있어서, 제1 컴포넌트가 비동작이라는 표시는 제어기로부터 수신된다.
다른 장치의 상기 예들 중 어느 하나에 있어서, 명령어들은 주 프로세서 회로 상에서, 제1 컴포넌트의 레지스터에 액세스함으로써 제1 컴포넌트를 리셋하는 것을 시도하도록 동작한다.
다른 장치의 상기 예들 중 어느 하나에 있어서, 명령어들은 주 프로세서 회로 상에서, 제1 컴포넌트를 리셋하는 시도의 실패에 응답하여 제1 컴포넌트에 제공되는 전력을 사이클링하라는 신호를 전송하는 동작을 한다.
다른 장치의 상기 예들 중 어느 하나에 있어서, 명령어들은 주 프로세서 회로 상에서, 제1 컴포넌트에 제공되는 전력이 사이클링되었다는 표시를 제어기로부터 수신하고, 제1 컴포넌트에 제공되는 전력이 사이클링되었다는 표시의 수신에 응답하여 제1 컴포넌트를 사용하기 위해 구성하도록 동작한다.
컴퓨터 구현 방법의 예는 컴퓨팅 디바이스의 제1 컴포넌트가 비동작이라는 것을 나타내는 신호를 수신하는 단계, 및 컴퓨팅 디바이스의 제2 컴포넌트에 전력을 계속 제공하면서 제1 컴포넌트에 제공되는 전력을 사이클링하는 단계를 포함한다.
컴퓨터 구현 방법의 상기 예에 있어서, 방법은 제1 컴포넌트 또는 제2 컴포넌트가 비동작이라는 표시에 대해 제1 및 제2 컴포넌트들로부터 수신되는 신호들을 반복하여 모니터링하는 단계를 포함한다.
컴퓨터 구현 방법의 상기 예들 중 어느 하나에 있어서, 제1 컴포넌트가 비동작이라는 것을 나타내는 신호는 제1 컴포넌트로부터 수신되고, 제1 컴포넌트의 레지스터의 비트의 값의 표시를 포함한다.
컴퓨터 구현 방법의 상기 예들 중 어느 하나에 있어서, 방법은 제1 컴포넌트가 비동작인 것을 나타내는 신호를 컴퓨팅 디바이스의 주 프로세서 회로로부터 수신하는 단계를 포함한다.
컴퓨터 구현 방법의 상기 예들 중 어느 하나에 있어서, 방법은 제1 전력 도전체를 통한 제1 컴포넌트로의 전력의 제공을 중단함으로써 제1 컴포넌트에 제공되는 전력을 사이클링하는 단계; 제1 전력 도전체를 통한 전력의 제공을 중단한 후에 제2 전력 도전체를 통한 제1 컴포넌트로의 전력의 제공을 중단하는 단계; 제1 및 제2 전력 도전체들 둘 다를 통한 전력의 제공을 중단한 후에 제2 전력 도전체를 통한 제1 컴포넌트로의 전력의 제공을 재개하는 단계; 및 제2 전력 도전체를 통한 전력의 제공을 재개한 후에 제1 전력 도전체를 통한 제1 컴포넌트로의 전력의 제공을 재개하는 단계를 포함한다.
컴퓨터 구현 방법의 상기 예들 중 어느 하나에 있어서, 방법은 제1 컴포넌트로 하여금 제1 컴포넌트에 제공되는 전력의 사이클링 전에 제1 컴포넌트에 제공되는 전력을 디바이스에 제공하는 것을 중단하게 하기 위해 제1 컴포넌트의 레지스터에 액세스하는 단계; 및 제1 컴포넌트로 하여금 제1 컴포넌트에 제공되는 전력의 사이클링 후에 제1 컴포넌트에 제공되는 전력의 디바이스로의 제공을 재개하게 하기 위해 제1 컴포넌트의 레지스터에 액세스하는 단계를 포함한다.
컴퓨터 구현 방법의 상기 예들 중 어느 하나에 있어서, 방법은 제1 컴포넌트가 비동작이라는 표시를 컴퓨팅 디바이스의 주 프로세서 회로에 제공하는 단계; 및 제1 컴포넌트를 리셋하는 주 프로세서 회로에 의한 시도가 성공하지 못했다는 표시를 주 프로세서 회로로부터 수신하는 단계를 포함한다.
컴퓨터 구현 방법의 상기 예들 중 어느 하나에 있어서, 방법은 제1 컴포넌트에 제공되는 전력이 사이클링되었다는 표시를 컴퓨팅 디바이스의 주 프로세서 회로에 제공하는 단계를 포함한다.
적어도 하나의 머신 판독가능 저장 매체의 예는, 컴퓨팅 디바이스에 의해 실행될 때, 컴퓨팅 디바이스로 하여금, 컴퓨팅 디바이스의 제1 컴포넌트가 비동작이라는 것을 나타내는 신호를 수신하게 하고, 컴퓨팅 디바이스의 제2 컴포넌트에 전력을 계속 제공하면서 제1 컴포넌트에 제공되는 전력을 사이클링하게 하는 명령어들을 포함한다.
적어도 하나의 머신 판독가능 저장 매체의 상기 예에 있어서, 컴퓨팅 디바이스로 하여금 제1 컴포넌트 또는 제2 컴포넌트가 비동작이라는 표시에 대해 제1 및 제2 컴포넌트들로부터 수신되는 신호들을 반복하여 모니터링하게 한다.
적어도 하나의 머신 판독가능 저장 매체의 상기 예들 중 어느 하나에 있어서, 제1 컴포넌트가 비동작이라는 것을 나타내는 신호는 제1 컴포넌트로부터 수신되고, 제1 컴포넌트의 레지스터의 비트의 값의 표시를 포함한다.
적어도 하나의 머신 판독가능 저장 매체의 상기 예들 중 어느 하나에 있어서, 컴퓨팅 디바이스로 하여금 제1 컴포넌트가 비동작인 것을 나타내는 신호를 컴퓨팅 디바이스의 주 프로세서 회로로부터 수신하게 한다.
적어도 하나의 머신 판독가능 저장 매체의 상기 예들 중 어느 하나에 있어서, 컴퓨팅 디바이스로 하여금 제1 컴포넌트가 비동작이라는 표시를 컴퓨팅 디바이스의 주 프로세서 회로에 제공하게 하고, 제1 컴포넌트를 리셋하는 주 프로세서 회로에 의한 시도가 성공하지 못했다는 표시를 주 프로세서 회로로부터 수신하게 한다.
적어도 하나의 머신 판독가능 저장 매체의 상기 예들 중 어느 하나에 있어서, 컴퓨팅 디바이스로 하여금 제1 컴포넌트에 제공되는 전력이 사이클링되었다는 표시를 컴퓨팅 디바이스의 주 프로세서 회로에 제공하게 한다.
또 다른 장치의 예는 제어기로 하여금 제1 컴포넌트가 비동작인 것을 나타내는 신호를 수신하고 - 제1 컴포넌트는 디지털 로직을 포함하고 적어도 제1 전력 스위칭 디바이스를 통해 제어기에 의해 제어되는 전력을 제공받음 -; 그 신호에 기초하여 제2 컴포넌트에 전력을 계속 제공하면서 제1 컴포넌트로의 전력을 사이클링하도록 - 제2 컴포넌트는 디지털 로직을 포함하고 적어도 제2 전력 스위칭 디바이스를 통해 제어기에 의해 제어되는 전력을 제공받음 - 동작하게 하는 로직을 포함하는 제어기를 포함한다.
또 다른 장치의 상기 예에 있어서, 제어기는 제1 및 제2 컴포넌트들에 결합되고, 제어기는 제1 컴포넌트 또는 제2 컴포넌트가 비동작이라는 표시에 대해 제1 및 제2 컴포넌트들로부터 수신되는 신호들을 반복하여 모니터링하도록 동작한다.
또 다른 장치의 상기 예들 중 어느 하나에 있어서, 제어기는 버스를 통해 제1 컴포넌트에 결합되고; 버스에 대한 버스 마스터의 역할을 맡고 제1 컴포넌트의 레지스터를 판독하도록 동작하고, 제1 컴포넌트가 비동작이라는 것을 나타내는 신호는 레지스터를 판독하는 것을 통해 수신되고, 레지스터의 비트의 값의 표시를 포함한다.
또 다른 장치의 상기 예들 중 어느 하나에 있어서, 장치는 주 프로세서 회로를 포함하고, 제어기는 제1 컴포넌트가 비동작인 것을 나타내는 신호를 주 프로세서 회로로부터 수신하도록 동작한다.
또 다른 장치의 상기 예들 중 어느 하나에 있어서, 적어도 제1 전력 스위칭 디바이스는 제1 전력 도전체를 통해 제1 컴포넌트에 전력을 제공하도록 동작하는 제1 스위칭 디바이스 및 제2 전력 도전체를 통해 제1 컴포넌트에 전력을 제공하도록 동작하는 제2 스위칭 디바이스를 포함하고; 제어기는 제1 전력 도전체를 통한 제1 컴포넌트로의 전력의 제공을 중단하기 위해 제1 전력 스위칭 디바이스를 동작시키고, 제1 전력 도전체를 통한 전력의 제공을 중단한 후에 제2 전력 도전체를 통한 제1 컴포넌트로의 전력의 제공을 중단하기 위해 제2 전력 스위칭 디바이스를 동작시키고, 제1 및 제2 전력 도전체들 둘 다를 통한 전력의 제공을 중단한 후에 제2 전력 도전체를 통한 제1 컴포넌트로의 전력의 제공을 재개하기 위해 제2 전력 스위칭 디바이스를 동작시키고, 제2 전력 도전체를 통한 전력의 제공을 재개한 후에 제1 전력 도전체를 통한 제1 컴포넌트로의 전력의 제공을 재개하기 위해 제1 전력 스위칭 디바이스를 동작시키도록 동작한다.
또 다른 장치의 상기 예들 중 어느 하나에 있어서, 제어기는 적어도 제1 전력 스위칭 디바이스 및 적어도 제2 전력 스위칭 디바이스를 포함한다.

Claims (30)

  1. 장치로서,
    제어기 프로세서 회로(controller processor circuit);
    디지털 로직을 포함하고 상기 제어기 프로세서 회로에 의해 제어되는 전력을 제공받는 제1 컴포넌트;
    디지털 로직을 포함하고 상기 제어기 프로세서 회로에 의해 제어되는 전력을 제공받는 제2 컴포넌트; 및
    상기 제어기 프로세서 회로에 통신가능하게 결합되고 명령어들을 저장하도록 구성된 제어기 저장소(controller storage)
    를 포함하고,
    상기 명령어들은 상기 제어기 프로세서 회로 상에서,
    상기 제1 컴포넌트가 비동작인 것을 나타내는 신호를 수신하고;
    상기 신호에 기초하여 상기 제2 컴포넌트에 전력을 계속 제공하면서 상기 제1 컴포넌트로의 전력을 사이클링하도록 동작하고,
    상기 전력을 사이클링하는 것은 상기 제1 컴포넌트의 복수의 컴포넌트로의 전력 제공이 사전결정된 순서로 중단되고, 그 후 재개되도록 수행되는, 장치.
  2. 제1항에 있어서,
    상기 제어기 프로세서 회로는 상기 제1 및 제2 컴포넌트들에 결합되고, 상기 명령어들은 상기 제어기 프로세서 회로 상에서, 상기 제1 컴포넌트 또는 상기 제2 컴포넌트가 비동작이라는 표시에 대해 상기 제1 및 제2 컴포넌트들로부터 수신되는 신호들을 반복하여 모니터링하도록 동작하는 장치.
  3. 제1항에 있어서,
    상기 제어기 프로세서 회로는 버스를 통해 상기 제1 컴포넌트에 결합되고, 상기 명령어들은 상기 제어기 프로세서 회로 상에서,
    상기 버스에 대한 버스 마스터의 역할을 맡고;
    상기 제1 컴포넌트의 레지스터를 판독하도록 동작하고, 상기 제1 컴포넌트가 비동작이라는 것을 나타내는 상기 신호는 상기 레지스터를 판독하는 것을 통해 수신되고, 상기 레지스터의 비트의 값의 표시를 포함하는 장치.
  4. 제1항에 있어서,
    주 프로세서 회로(main processor circuit)를 포함하고, 상기 명령어들은 상기 제어기 프로세서 회로 상에서, 상기 제1 컴포넌트가 비동작인 것을 나타내는 상기 신호를 상기 주 프로세서 회로로부터 수신하도록 동작하는 장치.
  5. 제1항에 있어서,
    상기 제1 컴포넌트에 전력을 제공하는 제1 및 제2 전력 도전체들을 포함하고, 상기 명령어들은 상기 제어기 프로세서 회로 상에서,
    상기 제1 전력 도전체를 통한 상기 제1 컴포넌트로의 전력의 제공을 중단하게 하고;
    상기 제1 전력 도전체를 통한 전력의 제공의 중단 후에 상기 제2 전력 도전체를 통한 상기 제1 컴포넌트로의 전력의 제공을 중단하게 하고;
    상기 제1 및 제2 전력 도전체들 둘 다를 통한 전력의 제공의 중단 후에 상기 제2 전력 도전체를 통한 상기 제1 컴포넌트로의 전력의 제공을 재개하게 하고;
    상기 제2 전력 도전체를 통한 전력의 제공의 재개 후에 상기 제1 전력 도전체를 통한 상기 제1 컴포넌트로의 전력의 제공을 재개하게 하도록 동작하는 장치.
  6. 제1항에 있어서,
    상기 명령어들은 상기 제어기 프로세서 회로 상에서,
    상기 제1 컴포넌트로 하여금, 상기 제1 컴포넌트에 제공되는 전력의 사이클링 전에 상기 제1 컴포넌트에 제공되는 전력을 디바이스에 제공하는 것을 중단하게 하기 위해 상기 제1 컴포넌트의 레지스터에 액세스하고;
    상기 제1 컴포넌트로 하여금, 상기 제1 컴포넌트에 제공되는 전력의 사이클링 후에 상기 제1 컴포넌트에 제공되는 전력의 상기 디바이스로의 제공을 재개하게 하기 위해 상기 제1 컴포넌트의 상기 레지스터에 액세스하도록 동작하는 장치.
  7. 제1항에 있어서,
    주 프로세서 회로를 포함하고, 상기 명령어들은 상기 제어기 프로세서 회로 상에서, 상기 제1 컴포넌트에 제공되는 전력이 사이클링되었다는 표시를 상기 주 프로세서 회로에 제공하도록 동작하는 장치.
  8. 장치로서,
    주 프로세서 회로;
    제어기; 및
    상기 주 프로세서 회로에 통신가능하게 결합되고 명령어들을 저장하도록 구성된 주 저장소(main storage)
    를 포함하고, 상기 명령어들은 상기 주 프로세서 회로 상에서,
    제1 컴포넌트가 비동작이라는 표시를 수신하고 - 상기 제1 컴포넌트는 디지털 로직을 포함하고 상기 제어기에 의해 제어되는 전력을 제공받음 -;
    상기 표시에 기초하여 제2 컴포넌트에 전력을 계속 제공하면서 상기 제1 컴포넌트에 제공되는 전력을 사이클링하라는 신호를 상기 제어기에 전송하도록 - 상기 제2 컴포넌트는 디지털 로직을 포함하고 상기 제어기에 의해 제어되는 전력을 제공받음 - 동작하고,
    상기 전력을 사이클링하는 것은 상기 제1 컴포넌트의 복수의 컴포넌트로의 전력 제공이 사전결정된 순서로 중단되고, 그 후 재개되도록 수행되는 장치.
  9. 제8항에 있어서,
    상기 주 프로세서 회로는 상기 제1 및 제2 컴포넌트들에 결합되고, 상기 명령어들은 상기 주 프로세서 회로 상에서, 상기 제1 컴포넌트 또는 상기 제2 컴포넌트가 비동작이라는 표시들에 대해 상기 제1 및 제2 컴포넌트들로부터 수신되는 신호들을 반복하여 모니터링하도록 동작하는 장치.
  10. 제9항에 있어서,
    상기 제1 컴포넌트가 비동작이라는 상기 표시는 상기 제1 컴포넌트의 레지스터의 비트의 값의 표시를 포함하는 장치.
  11. 제8항에 있어서,
    상기 제1 컴포넌트가 비동작이라는 상기 표시는 상기 제어기로부터 수신되는 장치.
  12. 제8항에 있어서,
    상기 명령어들은 상기 주 프로세서 회로 상에서 상기 제1 컴포넌트의 레지스터에 액세스함으로써 상기 제1 컴포넌트를 리셋하는 것을 시도하도록 동작하는 장치.
  13. 제12항에 있어서,
    상기 명령어들은 상기 주 프로세서 회로 상에서, 상기 제1 컴포넌트를 리셋하는 시도의 실패에 응답하여 상기 제1 컴포넌트에 제공되는 전력을 사이클링하라는 상기 신호를 전송하도록 동작하는 장치.
  14. 제8항에 있어서,
    상기 명령어들은 상기 주 프로세서 회로 상에서,
    상기 제1 컴포넌트에 제공되는 전력이 사이클링되었다는 표시를 상기 제어기로부터 수신하고;
    상기 제1 컴포넌트에 제공되는 전력이 사이클링되었다는 상기 표시의 수신에 응답하여 상기 제1 컴포넌트를 사용하기 위해 구성하도록 동작하는 장치.
  15. 컴퓨터 구현 방법으로서,
    컴퓨팅 디바이스의 제1 컴포넌트가 비동작이라는 것을 나타내는 신호를 수신하는 단계; 및
    상기 컴퓨팅 디바이스의 제2 컴포넌트에 전력을 계속 제공하면서 상기 제1 컴포넌트에 제공되는 전력을 사이클링하는 단계
    를 포함하고,
    상기 전력을 사이클링하는 것은 상기 제1 컴포넌트의 복수의 컴포넌트로의 전력 제공이 사전결정된 순서로 중단되고, 그 후 재개되도록 수행되는, 컴퓨터 구현 방법.
  16. 제15항에 있어서,
    상기 제1 컴포넌트 또는 상기 제2 컴포넌트가 비동작이라는 표시에 대해 상기 제1 및 제2 컴포넌트들로부터 수신되는 신호들을 반복하여 모니터링하는 단계를 포함하는 컴퓨터 구현 방법.
  17. 제16항에 있어서,
    상기 제1 컴포넌트가 비동작이라는 것을 나타내는 상기 신호는 상기 제1 컴포넌트로부터 수신되고, 상기 제1 컴포넌트의 레지스터의 비트의 값의 표시를 포함하는 컴퓨터 구현 방법.
  18. 제15항에 있어서,
    제1 전력 도전체를 통한 상기 제1 컴포넌트로의 전력의 제공을 중단하는 것;
    상기 제1 전력 도전체를 통한 전력의 제공의 중단 후에 제2 전력 도전체를 통한 상기 제1 컴포넌트로의 전력의 제공을 중단하는 것;
    상기 제1 및 제2 전력 도전체들 둘 다를 통한 전력의 제공의 중단 후에 상기 제2 전력 도전체를 통한 상기 제1 컴포넌트로의 전력의 제공을 재개하는 것; 및
    상기 제2 전력 도전체를 통한 전력의 제공의 재개 후에 상기 제1 전력 도전체를 통한 상기 제1 컴포넌트로의 전력의 제공을 재개하는 것
    에 의해 상기 제1 컴포넌트에 제공되는 전력을 사이클링하는 단계를 포함하는 컴퓨터 구현 방법.
  19. 제15항에 있어서,
    상기 제1 컴포넌트로 하여금, 상기 제1 컴포넌트에 제공되는 전력의 사이클링 전에 상기 제1 컴포넌트에 제공되는 전력을 디바이스에 제공하는 것을 중단하게 하기 위해 상기 제1 컴포넌트의 레지스터에 액세스하는 단계; 및
    상기 제1 컴포넌트로 하여금, 상기 제1 컴포넌트에 제공되는 전력의 사이클링 후에 상기 제1 컴포넌트에 제공되는 전력의 상기 디바이스로의 제공을 재개하게 하기 위해 상기 제1 컴포넌트의 상기 레지스터에 액세스하는 단계를 포함하는 컴퓨터 구현 방법.
  20. 제15항에 있어서,
    상기 제1 컴포넌트가 비동작이라는 표시를 상기 컴퓨팅 디바이스의 주 프로세서 회로에 제공하는 단계; 및
    상기 제1 컴포넌트를 리셋하는 상기 주 프로세서 회로에 의한 시도가 성공하지 못했다는 표시를 상기 주 프로세서 회로로부터 수신하는 단계를 포함하는 컴퓨터 구현 방법.
  21. 로직을 포함하는 제어기를 포함하는 장치로서,
    상기 로직은 상기 제어기로 하여금,
    제1 컴포넌트가 비동작인 것을 나타내는 신호를 수신하고 - 상기 제1 컴포넌트는 디지털 로직을 포함하고 적어도 제1 전력 스위칭 디바이스를 통해 상기 제어기에 의해 제어되는 전력을 제공받음 -;
    상기 신호에 기초하여 제2 컴포넌트에 전력을 계속 제공하면서 상기 제1 컴포넌트로의 전력을 사이클링하도록 - 상기 제2 컴포넌트는 디지털 로직을 포함하고 적어도 제2 전력 스위칭 디바이스를 통해 상기 제어기에 의해 제어되는 전력을 제공받음 - 동작하게 하고,
    상기 전력의 사이클링은 상기 제1 컴포넌트의 복수의 컴포넌트로의 전력 제공이 사전결정된 순서로 중단되고, 그 후 재개되도록 실행되는, 장치.
  22. 제21항에 있어서, 상기 제어기는 상기 제1 및 제2 컴포넌트들에 결합되고, 상기 제어기는 상기 제1 컴포넌트 또는 상기 제2 컴포넌트가 비동작이라는 표시에 대해 상기 제1 및 제2 컴포넌트들로부터 수신되는 신호들을 반복하여 모니터링하도록 동작하는 장치.
  23. 제21항에 있어서, 상기 제어기는 버스를 통해 상기 제1 컴포넌트에 결합되고,
    상기 제어기는,
    상기 버스에 대한 버스 마스터의 역할을 맡고;
    상기 제1 컴포넌트의 레지스터를 판독하도록 동작하고, 상기 제1 컴포넌트가 비동작이라는 것을 나타내는 상기 신호는 상기 레지스터를 판독하는 것을 통해 수신되고, 상기 레지스터의 비트의 값의 표시를 포함하는 장치.
  24. 제21항에 있어서, 주 프로세서 회로를 포함하고, 상기 제어기는 상기 제1 컴포넌트가 비동작인 것을 나타내는 상기 신호를 상기 주 프로세서 회로로부터 수신하도록 동작하는 장치.
  25. 제21항에 있어서, 상기 적어도 제1 전력 스위칭 디바이스는 제1 전력 도전체를 통해 상기 제1 컴포넌트에 전력을 제공하도록 동작하는 제1 스위칭 디바이스 및 제2 전력 도전체를 통해 상기 제1 컴포넌트에 전력을 제공하도록 동작하는 제2 스위칭 디바이스를 포함하고,
    상기 제어기는,
    상기 제1 전력 도전체를 통한 상기 제1 컴포넌트로의 전력의 제공을 중단하도록 상기 제1 전력 스위칭 디바이스를 동작시키고;
    상기 제1 전력 도전체를 통한 전력의 제공의 중단 후에 상기 제2 전력 도전체를 통한 상기 제1 컴포넌트로의 전력의 제공을 중단하도록 상기 제2 전력 스위칭 디바이스를 동작시키고;
    상기 제1 및 제2 전력 도전체들 둘 다를 통한 전력의 제공의 중단 후에 상기 제2 전력 도전체를 통한 상기 제1 컴포넌트로의 전력의 제공을 재개하도록 상기 제2 전력 스위칭 디바이스를 동작시키고;
    상기 제2 전력 도전체를 통한 전력의 제공의 재개 후에 상기 제1 전력 도전체를 통한 상기 제1 컴포넌트로의 전력의 제공을 재개하도록 상기 제1 전력 스위칭 디바이스를 동작시키도록 동작하는 장치.
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020157007496A 2012-10-26 2012-12-28 자동화된 선택적 전력 사이클링을 통한 컴퓨팅 서브시스템 하드웨어 복구 KR101764657B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN4471CH2012 2012-10-26
IN4471/CHE/2012 2012-10-26
PCT/US2012/072085 WO2014065841A1 (en) 2012-10-26 2012-12-28 Computing subsystem hardware recoveryvia automated selective power cycling

Publications (2)

Publication Number Publication Date
KR20150048811A KR20150048811A (ko) 2015-05-07
KR101764657B1 true KR101764657B1 (ko) 2017-08-03

Family

ID=50545047

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157007496A KR101764657B1 (ko) 2012-10-26 2012-12-28 자동화된 선택적 전력 사이클링을 통한 컴퓨팅 서브시스템 하드웨어 복구

Country Status (5)

Country Link
US (1) US9766676B2 (ko)
JP (1) JP6151362B2 (ko)
KR (1) KR101764657B1 (ko)
CN (1) CN104641312B (ko)
WO (1) WO2014065841A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9939865B2 (en) 2014-06-13 2018-04-10 Seagate Technology Llc Selective storage resource powering for data transfer management
US9396070B2 (en) 2014-09-11 2016-07-19 Qualcomm Incorporated System and method for system-on-a-chip subsystem external access detection and recovery
US10467172B2 (en) 2016-06-01 2019-11-05 Seagate Technology Llc Interconnect for shared control electronics
US10725851B2 (en) 2018-04-27 2020-07-28 Seagate Technology Llc Storage device self-recovery exception engine

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3696471B2 (ja) * 2000-03-09 2005-09-21 株式会社オートネットワーク技術研究所 情報電源管理装置
JP4068277B2 (ja) * 1999-12-24 2008-03-26 株式会社東芝 ハードウェアシステム
US20100194196A1 (en) * 2009-02-04 2010-08-05 Jouper Jeffrey A Modulation monitor and control
US20110185215A1 (en) * 2010-01-28 2011-07-28 Futurewei Technologies, Inc. Single-Wire Serial Interface

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5398265A (en) * 1988-11-10 1995-03-14 Hughes Aircraft Company Computer subsystem reset by address dependent RC discharge
JPH04153810A (ja) 1990-10-18 1992-05-27 Fujitsu Ltd 異常処理方式
US6625740B1 (en) * 2000-01-13 2003-09-23 Cirrus Logic, Inc. Dynamically activating and deactivating selected circuit blocks of a data processing integrated circuit during execution of instructions according to power code bits appended to selected instructions
JP2001202162A (ja) 2000-01-19 2001-07-27 Pfu Ltd 端末装置のリモート電源制御の2重化方法およびリモート電源制御が2重化された端末装置ならびに記録媒体
US7111201B2 (en) 2000-05-19 2006-09-19 Self Repairing Computers, Inc. Self repairing computer detecting need for repair and having switched protected storage
US7502817B2 (en) * 2001-10-26 2009-03-10 Qualcomm Incorporated Method and apparatus for partitioning memory in a telecommunication device
JP4028811B2 (ja) * 2003-03-03 2007-12-26 株式会社リコー 画像形成装置
US7350087B2 (en) 2003-03-31 2008-03-25 Intel Corporation System and method of message-based power management
JP2006309317A (ja) 2005-04-26 2006-11-09 Hitachi Ltd ストレージシステム及びその制御方法
US20070006294A1 (en) * 2005-06-30 2007-01-04 Hunter G K Secure flow control for a data flow in a computer and data flow in a computer network
US7774633B1 (en) * 2006-12-21 2010-08-10 Google Inc. Controlled power cycling in computing devices
TW200947204A (en) 2008-05-02 2009-11-16 Inventec Corp A power recovery server device and method thereof
US8954977B2 (en) * 2008-12-09 2015-02-10 Intel Corporation Software-based thread remapping for power savings
US8726047B2 (en) 2010-05-07 2014-05-13 Samsung Electronics Co., Ltd. System on chip, devices having the same, and method for power control of the SOC

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4068277B2 (ja) * 1999-12-24 2008-03-26 株式会社東芝 ハードウェアシステム
JP3696471B2 (ja) * 2000-03-09 2005-09-21 株式会社オートネットワーク技術研究所 情報電源管理装置
US20100194196A1 (en) * 2009-02-04 2010-08-05 Jouper Jeffrey A Modulation monitor and control
US20110185215A1 (en) * 2010-01-28 2011-07-28 Futurewei Technologies, Inc. Single-Wire Serial Interface

Also Published As

Publication number Publication date
CN104641312B (zh) 2018-10-19
JP2016500166A (ja) 2016-01-07
KR20150048811A (ko) 2015-05-07
CN104641312A (zh) 2015-05-20
US20150220126A1 (en) 2015-08-06
JP6151362B2 (ja) 2017-06-21
WO2014065841A1 (en) 2014-05-01
US9766676B2 (en) 2017-09-19

Similar Documents

Publication Publication Date Title
US9542267B2 (en) Enhanced recovery mechanisms
US10133331B2 (en) Mixed cell type battery module and uses thereof
EP3084614B1 (en) Secure enclaves for use by kernel mode applications
KR101534480B1 (ko) 그래픽 관련 워크로드들에 대한 전력 절감 기술
TW201636770A (zh) 容錯式自動雙行記憶體模組更新技術
TWI505282B (zh) 用於非揮發性儲存器件之電源關閉預測
KR20170131738A (ko) 적응 인터럽트 제어를 수행하는 컴퓨터 시스템 및 그것의 인터럽트 제어 방법
KR101764657B1 (ko) 자동화된 선택적 전력 사이클링을 통한 컴퓨팅 서브시스템 하드웨어 복구
US20140195830A1 (en) System and method for power management
WO2014039824A1 (en) Providing support for device states
US20160034020A1 (en) Staged power distribution control
WO2016094056A1 (en) Multiple user biometric for authentication to secured resources
US11366732B2 (en) Application processor, automotive electronic processor, and computing device including application processor
EP3905005A1 (en) Verified high-power transition and fast charging with pre-boot scaling
EP3836145A1 (en) System approach to reduce stable threshold voltage (vt) read disturb degradation
WO2021194534A1 (en) Power management for data storage devices implementing non-volatile memory (nvm) sets
US10235526B2 (en) Secure resume from a low power state
US10402343B2 (en) Event specific page faults for interrupt handling
US10628367B2 (en) Techniques for dynamically modifying platform form factors of a mobile device
CN107169378B (zh) 一种计算机开机加密的方法和设备
US20190385567A1 (en) Display processing blinking operation
US8605565B2 (en) Information processing apparatus and operation control method of an information processing apparatus

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right