KR101479590B1 - 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템 - Google Patents

소프트웨어를 실행하기 위한 이종 컴퓨터 시스템 Download PDF

Info

Publication number
KR101479590B1
KR101479590B1 KR1020120000719A KR20120000719A KR101479590B1 KR 101479590 B1 KR101479590 B1 KR 101479590B1 KR 1020120000719 A KR1020120000719 A KR 1020120000719A KR 20120000719 A KR20120000719 A KR 20120000719A KR 101479590 B1 KR101479590 B1 KR 101479590B1
Authority
KR
South Korea
Prior art keywords
processor
hypervisor
heterogeneous
operating system
software
Prior art date
Application number
KR1020120000719A
Other languages
English (en)
Other versions
KR20120136276A (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 KR20120136276A publication Critical patent/KR20120136276A/ko
Application granted granted Critical
Publication of KR101479590B1 publication Critical patent/KR101479590B1/ko

Links

Images

Classifications

    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • 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/22Microcontrol or microprogram arrangements
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)

Abstract

소프트웨어를 실행하기 위한, 적어도 하나의 수행 프로세서; 소프트웨어의 작업을 실행하기 위해 적어도 하나의 수행 프로세서를 지원하는 논리 지원 프로세서; 및 적어도 하나의 수행 프로세서보다 적은 전력을 소모하는 하이퍼바이저(hypervisor) 프로세서를 포함하는 이종 컴퓨터 시스템용 슈퍼 운영 체제(OS)가 개시된다. 슈퍼 운영 체제(OS)는, 적어도 하나의 수행 프로세서를 위한 수행 운영 체제(OS, Operating System); 하이퍼바이저 프로세서를 위한 하이퍼바이저 운영 체제(OS); 및 수행 프로세서와 하이퍼바이저 프로세서를 위한 하드웨어 서브시스템들의 상위에 있고 수행 및 하이퍼바이저 운영 체제(OS)들의 하위에 있는 이종 하이퍼바이저 소프트웨어 레이어를 포함한다. 슈퍼 운영 체제(OS) 하에서, 하이퍼바이저 프로세서는 하이퍼바이저 프로세서가 실행하기에 충분한 처리 능력을 가진 소프트웨어의 작업을 실행하고 적어도 하나의 수행 프로세서를 전력-보존 상태로 만든다. 하이퍼바이저 프로세서는 하이퍼바이저 프로세서가 실행하기에 불충분한 처리 능력을 가진 소프트웨어의 작업을 실행하기 위해 적어도 하나의 수행 프로세서를 전력-보존 상태에서 불러온다. 적어도 하나의 수행 프로세서와 하이퍼바이저 프로세서는 모든 프로세서의 결합된 처리 능력을 필요로 하는 소프트웨어의 작업을 동시에 실행한다.

Description

소프트웨어를 실행하기 위한 이종 컴퓨터 시스템{A HETEROGENEOUS COMPUTER SYSTEM FOR EXECUTING SOFTWARE}
본 발명은, 그린 컴퓨팅(green computing), 즉 컴퓨팅 전력 소모의 최소화에 관한 것으로서, 보다 상세하게는, 이종 시스템이 최소화된 컴퓨팅 전력 소모로 컴퓨팅을 수행하기 위해 표준 x86 아키텍처를 제어하는 저전력 주 프로세서를 갖는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템에 관한 것이다.
다양한 종류의 컴퓨터는 현대 문명 사회에서 필수 장비가 되고 있다. 인텔 x86(캘리포니아 산타 클라라의 인텔(Intel)사에 의해 설계된 최초의 아키텍처, 캘리포니아 서니베일의 AMD(Advanced Micro Devices)사에 의해 최근의 64-비트 CISC 아키텍처로 진화됨)은 주류 컴퓨팅을 오랫동안 지배하고 있다.
한편, 상업적 의미의 비-x86 컴퓨팅의 세계는 현재 스마트 폰과 터치 스크린 장치를 포함하는 모바일 컴퓨팅 장치에서 ARM 프로세서(영국 캠브리지의 ARM Holdings사에 의해 개발된 RISC ARM 아키텍처의)에 의해 지배되고 있다. 그린 컴퓨팅의 관점에서 x86과 비-x86 컴퓨팅 모두의 문제점은 다음과 같다.
그린 컴퓨팅을 위해서는 x86 데스크탑의 아이들링(idling) 전력 소모를 감소시킬 필요가 있다. x86 컴퓨팅은 컴퓨팅 전력을 필요로하는 어플리케이션을 위해서는 좋다. 수천, 수백만의 가정 및 사무실의 데스크탑과 휴대용 컴퓨터, 전문 고성능 워크스테이션 컴퓨터, 다양한 네트워크 기반의 상거래용 서버 컴퓨터의 글로벌 설치 기반으로 컴퓨팅 에너지 소비는 환경 문제가 되고 있다. 주요 문제 중 하나는 컴퓨터가 사용되지 않지만 종료되지 않았을 때 컴퓨팅 아이들링-배수이다.
컴퓨팅 전력 절약의 일정 수준을 달성하기 위해 미국에서 시작되고 많은 나라에서 채택된 국제적 표준인 에너지 스타(Energy Star)와 같은 전력 감소 노력이 있다. 또한, x86 기반의 주류 컴퓨터 산업은 표준 전원 관리도 채택하고 있다. 예를 들면, 개방된 산업 표준인 고급 구성 및 전원 인터페이스(ACPI, Advanced Configuration and Power Interface)는 운영 체제가 컴퓨터 하드웨어의 절전 기능을 직접 제어할 수 있게 한다.
그러나, 불편함과 제한된 내장 전력 관리로 인해서 대부분의 사용자에게 x86 기반의 주류 데스크탑 및 랩탑에서 진정한 그린 작동을 달성하는 것은 어렵다. 많은 컴퓨터 사용자에게 ACPI의 슬립/대기/최대 절전 관리 모드는 컴퓨터에서 사용하기 편리하고 절전이 될 수 있도록 최적의 파라미터 설정을 위한 조정 방법을 찾도록 이해하기가 복잡할 수 있다. 한편, 가상 컴퓨팅의 여러 세션을 포함하는 것과 같은 보다 정교한 컴퓨팅을 위하여, 순조로운 전력 관리 대신 ACPI는 컴퓨터가 충돌하거나 VM 세션 처리에 어려움을 겪는 경향이 있다.
따라서, 그들의 엄청난 수로 인해 데스크탑에서 상당한 에너지 절약을 위한 여지가 많이 있다.
그린 컴퓨팅을 위해서는 x86 기반의 스마트 모바일 장치를 실용화할 필요가 있다. 또한 표준 x86 세계에서 가용 전력 관리 기술의 불완전성때문에 x86 기반의 스마트 개인 장치(예를 들면, x86 기반의 휴대폰)는 실용적이기에는 짧은 배터리 수명을 가진다. 사실상, 엄격한 의미의 상업용 x86 기반의 스마트 폰은 존재하지 않는다. 대부분의 x86 기반 랩탑 컴퓨터(laptop computer)는 실외에서 하루 종일 사용하기에는 배터리가 방전되는 문제가 있다. 결과적으로 사무실이나 가정의 밖에서 x86 응용 소프트웨어를 액세스하기에는 불편하다.
비-x86 장치에서는 x86 소프트웨어 기반의 액세스가 필요하다. ARM 프로세서는 모바일용 전력 보존 어플리케이션, 특히 스마트 폰 어플리케이션을 위해 개발되었다. 그러나, ARM 프로세서는 심각한 계산 어플리케이션을 위한 것이 아니다. 그리고 기본적으로 x86 소프트웨어 기반에는 실질적인 직접 액세스가 되지 않는다. 윈도우(Windows) 소프트웨어는 일상 생활과 비즈니스의 여러 측면에서 지배적인 것으로 남아있기 때문에 x86 어플리케이션을 액세스하는데 어려운 비-x86은 불편함을 초래한다. 사용자는 실외에서 또는 사무실에서 ARM-지배적인 모바일과 x86-지배적인 윈도우 어플리케이션를 액세스할 수 있는 하드웨어 모두를 휴대할 필요가 있다.
크로스-OS 컴퓨터 시스템에서는 혼합 어플리케이션에 대해서 동시적이고 통합적이며 완벽한 액세스가 필요하다. x86 윈도우와 ARM 스마트 폰 어플리케이션을 모두 액세스하는 것은 많은 사람들에게 점점 일상적으로 필요해지고 있기 때문에 이 둘에 동시적인 액세스를 제공하는 컴퓨터 장치의 필요는 현실화되고 있다. 현재의 x86 기반의 아키텍처(그리고 몇몇 다른 비-x86)는 윈도우와 비-윈도우 소프트웨어 어플리케이션을 동일한 컴퓨터 하드웨어에서 가상 컴퓨팅 기술을 통하여 동시적으로 실행시킬 수 있다. 예를 들면, x86 컴퓨터는 리눅스(Linux), 윈도우 또는 각각 다른 운영 체제를 실행하는 수많은 게스트 가상 컴퓨터를 지원하는 다른 호스트 운영 체제를 가질 수 있다. 그러나, 다른 비-x86 게스트 OS의 명령 체계의 호스트 프로세서에 의한 에뮬레이션은 처리 전력을 소모한다. 이것은 데스크탑에서 허용되지만, 배터리 수명의 명백한 이유가 되기 때문에 스마트 모바일 장치를 위한 것이 아니다.
다른 장치들 중에서 휴대폰과 개인 컴퓨터의 기능을 결합하기 위해 Cupps 일행은 x86 기반 아키텍처의 하드웨어와 ARM 프로세서 기반 탑재 시스템을 결합하여 일련의 미국 특허와 어플리케이션에서 전자 장치를 공개한다. 예를 들면, US2002/0173344 "Novel personal electronic device"에서 Cupps 일행은 기본적으로 x86 기반 컴퓨터인 전체 장치의 시스템 콘트롤러로 ARM과 같은 저전력 시스템 프로세서를 사용하는 장치를 기술하였다.
Cupps 일행의 전자 장치는 자체 PC 프로세서를 가지고 있는 x86 컴퓨터에 가 삽입되며 본질적으로 휴대폰 기능이 가능한 내장 ARM 프로세서를 가지고 있다. ARM은 최초 PC 프로세서가 구동되는 방식과 동일한 방식으로 x86 아키텍처의 노스 브리지(North Bridge) 및 사우스 브리지(South Bridge)와 연결된다. Cupps 일행은 전자 장치의 기본 x86 아키텍처의 고성능 PC 프로세서의 상위에서 저전력 ARM 시스템 프로세서는 주 프로세서로 동작할 수 있다고 기술한다.
그러나, x86 아키텍처의 디스플레이 콘트롤러와 메모리 보조시스템과 같은 방식으로 노스 브리지(North Bridge)의 고속 버스(PCI-e)에 ARM 프로세서를 배치함으로써, Cupps 일행의 장치는 전체 장치의 "주 제어(master control)"가 제한된다. 사실, 장치에서 ARM 프로세서의 버스 연결은 전체 전자 장치의 최고 주 프로세서라기보다 표준 x86 아키텍처 하에서 버스 주 장치로 분류된다. 이러한 시스템 아키텍처에서, PC 프로세서의 주 x86 아키텍처는 예를 들어, ACPI에서 완전하고 정상적인 전력 관리 상태를 유지해야 하기 때문에, 이러한 상태의 보전을 위반하는 사소한 혼란은 데이타의 손실과 완전한 재부팅을 필요로 하게 되는 결과를 초래한다. Cupps 일행의 장치에서 ARM 프로세서는 PC 프로세서의 처리 능력을 요구하는 어떠한 힘든 작업들을 위해서 PC 프로세서 기반의 주 x86 시스템을 자주 재부팅할 것이다.
미국 특허공개번호 제2002/0173344호 (2002.11.21)
따라서, 그린 x86 컴퓨터를 만들기 위해서 컴퓨팅 능력을 희생하지 않고도 컴퓨팅 전력 소모의 최적의 최소화를 구현하는 이종 컴퓨터 시스템을 작동시키는 슈퍼 운영 체제(OS)가 필요하다.
또한, 배터리 충전 당 적어도 하루의 작업을 할 수 있도록 배터리가 유지됨으로써 실용적인 x86-기반의 스마트 모바일 장치를 만들기 위하여 컴퓨팅 전력 소모의 최적의 최소화를 구현하는 이종 컴퓨터 시스템을 작동시키는 슈퍼 운영 체제(OS)가 필요하다.
또한, x86 소프트웨어 기반에 액세스할 수 있는 비-x86 스마트 모바일 장치를 만들기 위해서 이종 컴퓨터 시스템을 작동시키는 슈퍼 운영 체제(OS)가 필요하다.
또한, 서로 다른 OS들의 소프트웨어 어플리케이션들에 동시적, 통합적, 원활한 액세스를 제공하기 위하여 크로스-OS 이종 컴퓨터 시스템을 작동시키는 슈퍼 운영 체제(OS)가 필요하다.
본 발명은 x86 프로세서와 x86 컴퓨팅 아키텍처; x86 프로세서보다 낮은 수행 능력을 갖는 하이퍼바이저 프로세서; 및 x86 프로세서의 로컬 버스를 통해서 하이퍼바이저 프로세서를 x86 코어에 연결하는 논리 브리지를 갖는 x86 코어를 포함하며, 하이퍼바이저 프로세서는 처리하기에 충분한 능력을 가진 소프트웨어 작업들을 실행하고 x86 프로세서를 아이들(수면, 최대절전모드, 종료) 상태로 만들며; 하이퍼바이저 프로세서는 처리하기에 불충분한 능력을 가진 소프트웨어 작업들을 실행하기 위해서 x86 프로세서를 불러오는 것을 특징으로 하는 이종 컴퓨터 시스템을 제공함으로써 상기 목적들 및 다른 목적들을 달성한다.
본 발명은 더욱이 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템용 슈퍼 운영 체제(OS)를 제공함으로써 상기 목적들 및 다른 목적들을 달성한다. 이종 컴퓨터 시스템은 적어도 하나의 제1 프로세서; 소프트웨어 작업을 실행하기 위해 적어도 하나의 제1 프로세서를 지원하는 논리 지원 프로세서; 및 적어도 하나의 제1 프로세서보다 적은 전력을 소모하는 제2 프로세서를 포함한다. 슈퍼 운영 체제(OS)는, 적어도 하나의 제1 프로세서를 위한 수행 운영 체제(OS); 제2 프로세서를 위한 하이퍼바이저 운영 체제(OS); 및 제1 및 제2 프로세서를 위한 하드웨어 서브시스템들의 상위에 있고 수행 및 하이퍼바이저 운영 체제(OS)들의 하위에 있는 이종 하이퍼바이저 소프트웨어 레이어를 포함한다. 슈퍼 운영 체제(OS) 하에서, 논리 지원 프로세서에 의해 지원되는 제2 프로세서는 제2 프로세서가 처리하기에 충분한 처리 능력을 가진 소프트웨어의 작업을 실행하고, 적어도 하나의 제1 프로세서를 전력-보존 상태로 만든다.
본 발명은 더욱이 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템용 슈퍼 운영 체제(OS)를 제공함으로써 상기 목적들 및 다른 목적들을 달성한다. 이종 컴퓨터 시스템은 적어도 하나의 수행 프로세서; 소프트웨어의 작업을 실행하기 위해 적어도 하나의 수행 프로세서를 지원하는 논리 지원 프로세서; 및 적어도 하나의 수행 프로세서보다 적은 전력을 소모하는 하이퍼바이저 프로세서를 포함한다. 슈퍼 운영 체제(OS)는, 적어도 하나의 수행 프로세서를 위한 수행 운영 체제(OS); 하이퍼바이저 프로세서를 위한 하이퍼바이저 운영 체제(OS); 및 수행 및 하이퍼바이저 프로세서를 위한 하드웨어 서브시스템들의 상위에 있고 수행 및 하이퍼바이저 운영 체제(OS)들의 하위에 있는 이종 하이퍼바이저 소프트웨어 레이어를 포함한다. 슈퍼 운영 체제(OS) 하에서, 하이퍼바이저 프로세서는 하이퍼바이저 프로세서가 처리하기에 불충분한 능력을 가진 소프트웨어의 작업을 실행하기 위해 적어도 하나의 수행 프로세서를 전력-보존 상태로부터 불러온다. 적어도 하나의 수행 프로세서 및 하이퍼바이저 프로세서는 모든 프로세서의 결합된 처리 능력을 요구하는 소프트웨어의 작업을 동시에 실행한다.
본 발명은 더욱이 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템용 슈퍼 운영 체제(OS)를 제공함으로써 상기 목적들 및 다른 목적들을 달성한다. 이종 컴퓨터 시스템은 로컬 프로세서 버스를 갖는 적어도 하나의 수행 프로세서; 소프트웨어의 작업을 실행하기 위해 적어도 하나의 수행 프로세서를 지원하는 논리 지원 프로세서; 로컬 프로세서 버스를 통하여 하이퍼바이저 프로세서를 논리 지원 프로세서에 연결하는 논리 브리지; 및 적어도 하나의 수행 프로세서보다 적은 전력을 소모하는 하이퍼바이저 프로세서를 포함한다. 슈퍼 운영 체제(OS)는, 적어도 하나의 수행 프로세서를 위한 수행 운영 체제(OS); 하이퍼바이저 프로세서를 위한 하이퍼바이저 운영 체제(OS); 및 수행 및 하이퍼바이저 프로세서를 위한 하드웨어 서브시스템들의 상위에 있고 수행 및 하이퍼바이저 운영 체제(OS)들의 하위에 있는 이종 하이퍼바이저 소프트웨어 레이어를 포함한다. 슈퍼 운영 체제(OS) 하에서, 논리 지원 프로세서에 의해 지원되는 하이퍼바이저 프로세서는, 하이퍼바이저 프로세서가 처리하기에 충분한 처리 능력을 가진 소프트웨어의 작업을 실행하고, 적어도 하나의 수행 프로세서를 전력-보존 상태로 만든다. 하이퍼바이저 프로세서는 하이퍼바이저 프로세서가 처리하기에 불충분한 능력을 가진 소프트웨어의 작업을 실행하기 위해 적어도 하나의 수행 프로세서를 전력-보존 상태로부터 불러온다. 적어도 하나의 수행 프로세서 및 하이퍼바이저 프로세서는 모든 프로세서의 결합된 처리 능력을 요구하는 소프트웨어의 작업을 동시에 실행한다.
본 발명의 실시예들은, 그린 x86 컴퓨터를 만들기 위해서 컴퓨팅 능력을 희생하지 않고도 컴퓨팅 전력 소모의 최적의 최소화를 구현하는 이종 컴퓨터 시스템 작동 방법을 제공할 수 있다.
또한, 배터리 충전 당 적어도 하루의 작업을 할 수 있도록 배터리가 유지됨으로써 실용적인 x86-기반의 스마트 모바일 장치를 만들기 위하여 컴퓨팅 전력 소모의 최적의 최소화를 구현하는 이종 컴퓨터 시스템 작동 방법을 제공할 수 있다.
또한, x86 소프트웨어 기반에 액세스할 수 있는 비-x86 스마트 모바일 장치를 만들기 위해서 이종 컴퓨터 시스템 작동 방법을 제공할 수 있다.
또한, 서로 다른 OS들의 소프트웨어 어플리케이션들에 동시적, 통합적, 원활한 액세스를 제공하기 위하여 크로스-OS 이종 컴퓨터 시스템의 작동 방법을 제공할 수 있다.
도 1은 브리지 회로 칩을 통해 표준 x86 아키텍처에 추가되는 하이퍼바이저 프로세서를 갖는 본 발명의 이종 컴퓨터 시스템의 일 실시예의 개략적인 블록 다이어그램이다.
도 2는 표준 x86 아키텍처에 추가하여 동일한 반도체 칩 상에 탑재되는 하이퍼바이저 프로세서와 그에 필요한 논리 브리지를 갖는 본 발명의 이종 컴퓨터 시스템의 또 다른 실시예의 개략적인 블록 다이어그램이다.
도 3은 표준 x86 컴퓨터 보드의 CPU 소켓에 직접 결합되기 위해 다중-코어 x86 프로세서의 동일한 반도체 상에 탑재되는 하이퍼바이저 프로세서와 그에 필요한 논리 브리지를 갖는 본 발명의 이종 컴퓨터 시스템의 또 다른 실시예의 개략적인 블록 다이어그램이다.
도 4는 표준 x86 컴퓨터 보드의 CPU 소켓에 직접 결합되기 위해 다중-코어 x86 프로세서의 동일한 반도체 상에 탑재되는 하이퍼바이저 프로세서로 제공되는 감소된-전력 x86 코어를 갖는 본 발명의 이종 컴퓨터 시스템의 또 다른 실시예의 개략적인 블록 다이어그램이다.
도 5와 도 6은 x86 기반의 스마트 모바일 장치로서 본 발명의 컴퓨터 시스템의 또 다른 실시예의 개략적인 블록 다이어그램이다.
도 7은 본 발명의 이종 컴퓨터 시스템의 구성을 위해 사용되는 논리 브리지의 개념을 개략적으로 설명하는 도면이다.
도 8은 본 발명의 이종 컴퓨터 시스템에서 논리 브리지에 의해 하이퍼바이저 프로세서와 x86 아키텍처의 주 프로세서가 x86 칩셋의 프론트-사이드 버스로 연결되는 것을 개략적으로 설명하는 도면이다.
도 9는 본 발명의 최선 실시예에 따른 논리 브리지의 기본 기능 요소를 개략적으로 나타낸 도면이다.
도 10은 도 9의 논리 브리지의 논리 회로 요소를 더 자세히 설명하는 도면이다.
도 11은 본 발명의 최선 실시예에 따른 이종 컴퓨터 시스템의 회로 블록 다이어그램을 개략적으로 설명하는 도면이다.
도 12는 본 발명의 최선 실시예에 따른 논리 브리지에서 논리 회로 요소를 개략적으로 설명하는 도면이다.
도 13 내지 도 15는 도 8 내지 도 12에 나타난 이종 컴퓨터 시스템의 작동 모드를 각각 설명하는 도면이다.
도 16 내지 도 19는 이종 컴퓨터 시스템을 실행하기 위한 제어 알고리즘을 각각 설명하는 도면이다.
도 20은 원활한 크로스-OS 소프트웨어 어플리케이션을 위해 이종 컴퓨터 시스템을 작동시키는 슈퍼 OS를 개략적으로 설명하는 도면이다.
도 21 내지 도 24는 원활한 크로스-OS 소프트웨어 어플리케이션을 지원하기 위한 도 8 내지 도 12에 나타난 이종 컴퓨터 시스템의 작동 모드를 각각 설명하는 도면이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
본 발명의 컴퓨터 시스템은 그린 컴퓨팅, 딥 그린 컴퓨팅(deep green computing)을 제공하는 이종-프로세서 시스템에 기반을 두고 있다. 저전력 주 "하이퍼바이저(hypervisor)" 프로세서는 이종 컴퓨터 시스템이 강력하고 그린 컴퓨팅 수행을 위한 에너지 보존을 모두 만족시키도록 브리지 논리 회로를 통하여 주류 표준 x86 아키텍처에 추가된다.
본 발명의 이종 컴퓨터 시스템은, (1) 전체 x86-기반의 주류 컴퓨팅이 중요한 탄소 감소에 기여할 수 있도록; 그리고 (2) 광대한 x86 소프트웨어들은 모바일 요구를 위해 모바일 사용자에게 진정으로 액세스될 수 있도록, x86 컴퓨팅에서 가능한 양만큼 전력 소모를 감소시킨다. 본 발명의 이종 컴퓨터 시스템은 또한 서로 다른 OS들로부터 소프트웨어 어플리케이션(software application)에 대한 동시적이고, 통합적이며 완벽한 액세스를 위하여 크로스-OS(cross-OS) 컴퓨팅을 구현한다.
즉, 본 발명의 이종 컴퓨터 시스템은 이러한 문제들을 해결하고 최소한 두 가지 주요 목표를 달성하고자 한다. 첫째, 본 발명의 컴퓨터 시스템은 휴대용 스마트 장치에 대한 솔루션을 제공한다. 구체적으로 새로운 기종의 스마트 폰이 현존하는 광대한 x86 어플리케이션 소프트웨어들을 액세스하며 또한 적어도 하루 이상 사용할 수 있도록 배터리가 유지되기에 충분히 전력-보존되는 솔루션을 제공한다. 이러한 모바일 장치는 많은 비즈니스 여행객들을 위해 성가신 한 쌍의 스마트 폰과 랩탑(laptop)을 대체할 것이다.
둘째, 더 중요한 것은 본 발명의 컴퓨터 시스템은 데스크탑, 워크스테이션 및 서버 컴퓨터를 포함하는 주류 컴퓨터에서 딥 그린 컴퓨팅을 실현할 수 있다. 각각의 컴퓨터에 의해 기여되는 전력 보존이 모여서 컴퓨터 전력 소모에서 거대한 세계적 감소로 되는 개념이다.
한편, 이러한 목적을 수행하는 동안, 본 발명의 이종 컴퓨터 시스템은 또한 동일한 하드웨어를 사용하는 서로 다른 OS들의 소프트웨어 어플리케이션에 대한 동시적이고, 통합적이며 완벽한 액세스를 허용하도록 구현한다.
본 발명에서 "x86 어플리케이션"이란 용어는 x86 하드웨어 아키텍처에서 사용 가능한 다양한 OS 하에서 실행될 수 있는 모든 x86 소프트웨어 어플리케이션의 광범위한 의미를 나타낸다. 따라서 이 용어는 현재 x86 아키텍처에 의해 지원되는 윈도우, 리눅스, 맥 OS, 솔라리스 등의 OS용으로 작성된 모든 소프트웨어 어플리케이션을 의미한다.
또한 컴퓨팅에서 "하이퍼바이저(hypervisor)"는 일반적으로 하드웨어보다 소프트웨어 기술인 가상 머신 모니터(VMM, Virtual Machine Monitor)를 의미한다. 그러나, 이 용어는 또한 여기에서 x86 프로세서, 즉 수행 프로세서이지만 주 ARM 하에서 본질적으로 슬레이브 프로세서(slave processor)인 시스템의 전력-소모 요소를 감독하는, 본 발명의 비대칭 이종-프로세서 시스템의 주 프로세서, 즉 저전력 ARM을 의미한다.
ARM 주 프로세서는 본 발명의 이종 컴퓨터 시스템의 주 하드웨어인 x86 하드웨어를 감독하는 x86 프로세서보다 개념적으로 상위 레벨이기 때문에, 주 ARM은 주 x86 하드웨어를 감독하는 그의 슬레이브 x86을 "하이퍼바이즈(hypervises)"한다는 의미로 이와 같이 이름 붙여졌다.
또한, "수행 프로세서" 용어는 표준 x86 아키텍처에서 주 x86 프로세서를 의미하는 데 사용된다. 이것은 본 발명의 이종 컴퓨터 시스템에서 x86 프로세서는 초대량 고속처리 작업에 책임이 있다는 사실을 반영하여 이름 지어졌다.
컴퓨팅 능력을 희생하지 않고도 전력 소모를 최소화하기 위한 컴퓨터에 대한 해결책을 찾는 것은 물론 알려진 기술적 문제이다. 모바일 컴퓨팅(랩탑, 터치 스크린 컴퓨터와 스마트 폰 등)에서 전력 관리는 최대한 오랫동안(외부에서 적어도 하루종일 작업할 수 있도록) 작동을 유지하기 위해 훌륭하게 해결되어야 한다. 주류 데스크탑 컴퓨팅에서 전력 관리는 승용차에서 연비 능력에 비유되는 지구 환경 문제로서 거대한 세계적 설치 기반이기 때문에 중요하다.
그러나 기존의 전력 관리는 x86 아키텍처로 실용적인 실외용 어플리케이션을 위해 충분히 전원-보전하려는 목표에 도달하지 못할 것이다. 이것은 현재의 x86의 한계이고, 단순히 그렇게 설계되어 있지 않다.
해결책은 이종-프로세서 개념에 있다. 이러한 이종 컴퓨터 시스템이 상업적으로 성공하려면 컴퓨터 시스템은 가능한 한 높은 정도로 기존 업계 표준에 호환되어야 한다. 엄청난 노력을 들여 윈텔(Wintel)을 변화시키는 것을 생각하는 것은 단순히 비실용적이다. 이종 컴퓨터 시스템 솔루션은 주변의 다른 방법이 아니라 기존 것들에 적합해야 한다. 그리고 이것은 하드웨어 및 소프트웨어 모두에 있어서 가능한 한 약간의 조정이 필요하다는 것을 의미한다.
A : 논리 브리지를 갖는 이종 컴퓨터 시스템
시스템 하드웨어 아키텍처의 관점에서, 본 발명의 이종 컴퓨터 시스템은 표준 x86 아키텍처의 로컬(front side) 버스에 상주하는 "하이퍼바이징(hypervising)" 프로세서를 갖는다(도 1 내지 도 4 참조). 이것은 시스템 버스를 통하여 그 시스템 프로세서를 x86 아키텍처의 노스 브리지(North bridge)에 연결하는, 상술한 Cupps 일행의 전자 장치와 근본적으로 다르다.
도 1은 브리지 회로 칩을 통해 표준 x86 아키텍처에 추가되는 하이퍼바이저 프로세서를 갖는 본 발명의 이종 컴퓨터 시스템의 일 실시예의 블록 다이어그램을 개략적으로 나타낸다. 본 발명의 최선 실시예에서 이종 컴퓨터 시스템(100)은 x86 CPU(120)와 지원 x86 칩셋(162)을 갖는, 자체적으로 완벽한 x86 컴퓨터를 구성하는 표준 x86 아키텍처(160)를 갖는다.
하이퍼바이저 프로세서(110)는 ARM 또는 저전력 x86 프로세서(386 또는 286같은 것들)인 하이퍼바이저 프로세서(110)가 x86 CPU의 프론트-사이드 버스(134, FSB)를 통하여 x86 아키텍처(160)로 삽입되도록 하는 디지털 전자 회로를 포함하는 브리지 칩(140)을 통하여 표준 x86 아키텍처(160)에 추가된다.
도 7은 본 발명의 이종 컴퓨터 시스템의 구성을 위해 사용되는 논리 브리지의 개념을 개략적으로 설명하는 도면이다. "논리 브리지(Bridge Logic)"는 이것이 예를 들면, 도 1의 시스템에서 하이퍼 바이징 ARM 프로세서(110)가 기존 x86-기반의 컴퓨터 시스템(160)에 연결(부착)되는 것을 허용하는 브리징 장치(logic)임을 의미한다. 본 발명의 문맥상 도 7에 도시된 이러한 브리지 장치(407)는 3방향 데이타 스위치(408)로서 기능한다. 즉, 데이타 스위치(408)는 여기서 셋 중 어느 하나로부터 나머지 둘 중 어느 하나로 테이타 통과를 허용하는 3방향 T 또는 Y 스위칭 장치인 다중식 스위치를 지칭한다. 이 논리 브리지가 하이퍼바이저 프로세서를 x86 아키텍처로 삽입시키는 자세한 방법은 아래에서 서술한다.
도 2는 표준 x86 아키텍처에 추가하여 동일한 반도체 칩 상에 탑재되는 하이퍼바이저 프로세서와 그에 필요한 논리 브리지를 갖는 본 발명의 이종 컴퓨터 시스템의 또 다른 실시예의 개략적인 블록 다이어그램이다. 본 실시예에서 이종 컴퓨터 시스템(200)은 x86 CPU(220)와 지원 x86 칩셋(262)을 갖는, 자체적으로 완벽한 x86 컴퓨터를 구성하는 표준 x86 아키텍처(260)를 갖는다.
ARM 또는 x86 코어 형태의 하이퍼바이저 프로세서(210)는 하이퍼바이저 프로세서(210)가 x86 CPU의 프론트-사이드 버스(234, FSB)를 통하여 x86 아키텍처(260)로 삽입되도록 하는 디지털 전자 회로를 포함하는 논리 브리지(240)를 통해서 표준 x86 아키텍처(260)에 추가된다. 본 실시예에서, 하이퍼바이저 프로세서(210)와 필요 논리 브리지(240)는 하이퍼바이저 칩(242)인, 동일한 집적 칩(integrated chip) 상에 마련된다.
도 3은 본 발명의 이종 컴퓨터 시스템의 또 다른 실시예의 블록 다이어그램을 개략적으로 나타낸다. 본 실시예의 이종 컴퓨터 시스템은 표준 x86 컴퓨터 보드의 CPU 소켓에 직접 결합되기 위해 다중-코어 x86 프로세서의 동일한 반도체 상에 탑재되는 하이퍼바이저 프로세서 코어와 그에 필요한 논리 브리지를 갖는다.
본 실시예에서 이종 컴퓨터 시스템(300)은 그 자체가 x86 CPU(344)와 지원 x86 칩셋(362)을 갖는, 자체적으로 완벽한 x86 컴퓨터를 구성하는 표준 x86 아키텍처이다. x86 CPU(344)는 종래 대응품의 변종이다. x86 CPU(344)는 본질적으로 x86 수행 프로세서, 예를 들어 최신 다중-코어 x86(320), 하이퍼바이징 ARM 또는 저가형 x86 코어(310), 그리고 프론트-사이드 버스(334)를 통하여 하이퍼바이저를 수행 코어로 브리지하는 논리 브리지(340)의 동일 반도체 다이 상에 구성된다.
도 4는 표준 x86 컴퓨터 보드의 CPU 소켓에 직접 결합되기 위해 다중-코어 x86 프로세서의 동일한 반도체 상에 탑재되는 하이퍼바이저 프로세서로 제공되는 감소된-전력 x86 코어를 갖는 본 발명의 이종 컴퓨터 시스템의 또 다른 실시예의 블록 다이어그램을 개략적으로 나타낸다.
본 실시예에서 이종 컴퓨터 시스템(400)은 그 자체가 x86 CPU(446)와 지원 x86 칩셋(462)을 갖는 완벽한 x86 컴퓨터를 구성하는 표준 x86 아키텍처이다. x86 CPU(446)는 종래 대응품의 또 다른 변종이다. x86 CPU(446)는 본질적으로 x86 수행 프로세서 코어들(421, 422)과, 하이퍼바이징 감소된-전력 x86 코어(410)의 동일 반도체 다이 상에 구성된다. 하이퍼바이저 코어(410)는 수행 코어들(421, 422)의 축소된 명령 집합(instruction set)을 구현하고 동일한 내부 버스를 공유하므로 논리 브리지는 필요하지 않다. 하이퍼바이저-장착 수행 프로세서(446)는 일반적인 FSB(434)를 통하여 표준 x86 컴퓨터 보드와 같은 방식으로 x86 칩셋(462)에 연결된다.
도 1 내지 도 4에 도시된 바와 같이, 본 발명의 이종 컴퓨터 시스템을 구축하는 개념은 x86 컴퓨터에 전력을 적게 소모하는 주 장치, 현재로서는 ARM을 추가하는 것이다. 즉, 전력을 많이 소모하는 x86을 하이퍼바이즈(hypervise)하기 위해 저전력 하이퍼바이저 프로세서를 항상 작동하게 하는 것이다. 이러한 개념 하에서, x86은 ARM 하이퍼바이저 프로세서 하부의 순수 슬레이브(slave)이며, 에너지를 보존하기 위해서 휴지 상태에 놓일 수 있고 상대적으로 낮은 성능의 프로세서가 시스템에 할당된 작업을 처리할 수 없거나 처리하기에 불충분할 때에만 작동될 수 있다.
본 발명의 이종 컴퓨터 시스템의 사용 상의 주요 목적에 따라, 그 x86 시스템은 예를 들면 CAD/CAM 워크스테이션을 위한 최신 인텔 2세대 코어 TM 기술 프로세서-기반의 수행 시스템일 수 있다. 또는, 선택된 x86은 빈번한 비즈니스 여행객을 위한 한 쌍의 스마트 폰 및 랩탑을 대체할 목적의 모바일 장치를 위한 Atom TM-기반의 저전력 시스템일 수 있다.
기존의 x86 아키텍처를 사용하여, 이러한 이종 컴퓨터 시스템 하드웨어는 쉽게 구축될 수 있다. 상업용 어플리케이션의 경우, 도 1 내지 도 4에 다음과 같은 해결책들이 컴퓨터 산업 공급 체인에 따라 서로 다른 컴퓨터 하드웨어 제조업체에 적합하다.
도 1 및 도 2의 컴퓨터 시스템 아키텍처는 현재의 컴퓨터 마더보드 및 시스템 제조업체의 사업을 구성한다. 그들은 그들의 제품을 생산하기 위해 ARM 프로세서와 브리지 칩을 조달할 수 있기 때문이다. 그러나, 도 3의 아키텍처는 현재의 x86 및 호환 프로세서 제조업체 중 어느 곳이 이 기술을 채택하고 그들 버전의 이종 컴퓨터 시스템 개념 CPU를 생산하기 위해 그들의 프로세서 반도체를 조정하는 지 여부에 따라 달라진다.
이것은 비즈니스 관점에서 가능하다. 현재 CPU 제조업체들의 어느 곳이라도, 이 개념은 그들의 기존 다중-코어 제품들에 상대적으로 적은 반도체 변경 사항을 포함하지만, 이러한 새로운 개념의 CPU들(그린 컴퓨팅)로 만들어진 컴퓨터의 능력에는 거대한 잠재적 영향을 가진다. 도 4는 주류 데스크탑/워크스테이션 컴퓨팅에 가장 적합한 이러한 아키텍처의 비전을 나타낸다.
도 5와 도 6은 x86 기반의 스마트 모바일 장치로서 본 발명의 컴퓨터 시스템의 또 다른 실시예의 블록 다이어그램을 개략적으로 나타낸다. 이러한 x86 스마트 장치는 휴대폰 및 x86-기반의 컴퓨터 모두의 기능들을 가지며 비즈니스 여행객을 위해 필수적인 한 쌍의 모바일 폰과 랩탑을 대체하여 사용될 수 있다.
본 실시예에서, 도 1의 실시예에서와 유사하게 스마트 폰-플러스-랩탑 버전의 이종 컴퓨터 시스템(500)은 x86 CPU(520)와 지원 x86 칩셋(562)을 갖는, 자체적으로 완벽한 x86 컴퓨터를 구성하는 x86 아키텍처(560)를 갖는다. 휴대폰 기능을 제공하기 위해 휴대 통신 유닛(570)은 x86 아키텍처의 부분으로서 구현될 수 있다.
하이퍼바이저 프로세서(510)는 ARM인 하이퍼바이저 프로세서(510)가 x86 CPU의 프론트-사이드 버스(134, FSB)를 통하여 x86 아키텍처(560)로 삽입되도록 하는 디지털 전자 회로를 포함하는 브리지 칩(540)을 통하여 x86 아키텍처(560)에 연결된다.
도 5의 가상 폐쇄 라인에 의해 나타나듯이, x86 스마트 모바일 장치(500)가 휴대폰 기능을 작동시킬 때, x86 CPU(520)를 포함하는 전체 x86 코어(560)와 메인 x86 칩셋(562)은 휴지될 수 있다. 휴대 통신 유닛(570)은 예외로 하이퍼바이징 ARM 프로세서(510) 하에서 작동된다.
한편, 상기 장치(500)가 도 6에 도시된 바와 같이, 예를 들어 윈도우 어플리케이션을 실행하기 위해 휴대용 컴퓨터를 작동시킬 때, 휴대 통신 유닛(570)을 제외한 장치(500)의 모든 구성요소들이 활성화된다. 예를 들면, 넷 뱅킹 어플리케이션은 ARM의 감독 하에서 x86 시스템에 의해 실행될 수 있다. 저전력 ARM은 배터리 에너지의 보전을 위해서 장치의 x86 섹션이 휴지될 시기를 결정하기 위해서 항상 하이퍼비전(hypervision)을 제공한다.
도 1 내지 도 4에 도시된 본 발명의 이종 컴퓨터 시스템의 데스크탑 실시예는 에너지를 보존할 수 있도록, 도 5 및 도 6에 나타난 바와 같은 x86 스마트 모바일 장치는 실외에서 하루종일 작동유지를 위해서 그것의 배터리 에너지를 적게 사용할 수 있도록, 그리고 이 모두는 동시적이고, 통합적이며 완벽한 혼합-OS 소프트웨어 어플리케이션을 가질 수 있도록, 그린 컴퓨팅을 실현하기 위해서 상술된 하드웨어는 기술된 모든 것들을 구현하기 위해 대응되는 시스템 소프트웨어를 가질 필요가 있다. 이러한 소프트웨어 시스템은 아래에 자세히 기술될 것이다.
B: 이종 컴퓨터 시스템을 위한 논리 브리지
도 8은 본 발명의 이종 컴퓨터 시스템에서 논리 브리지(6400)에 의해 하이퍼바이저 프로세서(610)와 주 x86 프로세서(620)가 x86 칩셋(662)의 프론트-사이드 버스로 연결되는 것을 개략적으로 나타낸다. 본 발명의 이종 컴퓨터 시스템의 기본적 개념은 그 자신의 능력있는 마이크로프로세서(x86 프로세서)를 이미 가지고 있는 강력한 컴퓨터에 감독 마이크로프로세서(하이퍼바이저 프로세서)의 도입이다. 이 개념은 이종 컴퓨터 시스템이 작동 시작하고 본 발명 장치의 수행 x86 서브시스템(subsystem)의 전산 작업을 관리할 때에, 항상 작동되도록 하이퍼바이저 프로세서가 가능한 한 적은 전력을 소모하게 하는 것이다. 이러한 이종 컴퓨터 시스템에서, 수행 x86 서브시스템은 오직 하이퍼바이저 프로세서가 할당된 컴퓨팅 작업이 저전력 하이퍼바이저 프로세서의 용량 이상의 것이라고 결정할 때마다 작동하기 위해 휴지 상태로부터 해제된다.
도 1 내지 도 4의 실시예에서 설명하고 도 8에서 좀 더 자세히 도시된 바와 같이, 이렇게 하려면 논리 브리지 회로(6400)는 프론트-사이드 버스 상에서 x86 수행 프로세서(620)와 표준 x86 컴퓨터의 x86 칩셋(662) 사이에 위치한다. 말 그대로 일반 x86 컴퓨터에서 프론트-사이드 버스를 통해 x86 칩셋의 노스 브리지로 x86 프로세서의 직접 연결은 논리 브리지(6400)의 도입으로 가로막혔다. x86 프로세서(620)과 노스 브리지(6624) 사이의 원래 FSB 연결은 여전히 남아있지만 논리 브리지(6400)의 제어 하에서 두 부분으로 나누어진다(x86 프로세서 측면에서 FSB(6452)와 칩셋 측면에서 FSB(634)).
논리 브리지(6400)는 하이퍼바이저 작동 로직(6410), 프로세서 명령 집합/컴퓨터 명령 번역기 로직이나, 조잡한 프로세서 언어 번역기 로직(6430)과 고속 버스 스위치(6407)를 포함한다. 버스 스위치(6407)는 x86 프로세서 FSB와 호환되는 스위칭 속도를 갖는다. 도 7에 도시된 바와 같이 이 버스 스위치(6407)는 바람직하게는 3방향 스위치이며, 하나의 포트(도 7에서 A)는 x86 프로세서(620)의 FSB(6452)로 직접 연결된다. 스위치(6407)의 두 번째 포트(B)는 프로세서 언어 번역기 로직(6430)을 통하여 하이퍼바이저 프로세서(610)의 프로세서 버스(6454)에 연결된다. 스위치(6407)의 세 번째 포트(C)는 칩셋(662)의 노스 브리지의 FSB(634)로 직접 연결된다.
고속 버스 스위치(6407)에 의한 이러한 연결은 x86 수행 프로세서(620)와 저전력 하이퍼바이저 프로세서(610) 모두가 FSB(634)를 통하여 x86 아키텍처의 노스 브리지(6624)에 액세스할 수 있도록 허용한다. 스위치(6407)가 그 A와 C 포트를 연결하도록 설정될 때마다, 수행 x86 프로세서(620)는 일반 x86 컴퓨터와 같이 노스 브리지로 직접 연결될 수 있다.
한편, 스위치(6407)가 그 B와 C 포트를 연결하도록 설정될 때, 저전력 하이퍼바이저 프로세서(610)는 x86 칩셋(662)에 액세스할 수 있다. 하이퍼바이저 프로세서(610)가 수행 x86으로서 동일한 x86 프로세서 명령 집합(또는 그 서브셋)을 운용하는 또 다른 저전력 x86 프로세서인 경우에는, 프로세서 언어 번역기 로직(6430)은 x86 명령 집합의 서로 다른 레벨 사이에 단지 간단한 전환을 제공하는 것만을 필요로 한다.
그러나, 저전력 하이퍼바이저 프로세서(610)가 전체적으로 서로 다른 명령 집합(ARM 또는 MIPS의 경우와 같은)을 운용하는 것이라면, 하이퍼바이저 프로세서(610)는 프로세서 언어 번역기 로직(6430)을 사용하여 수행 x86 프로세서를 흉내내거나 에뮬레이트하는 것이 필요하다. 이러한 경우에, 언어 번역기 로직(6430)은 수행 프로세서(620)의 본래 명령어들을 사용하여 하이퍼바이저 프로세서(610) 본래의 명령어를 수행 x86 프로세서(620)의 동일한 명령으로 번역 또는 변환한다.
본질적으로, 언어 번역기 로직(6430)은 하이퍼바이저(610)가 컴퓨터 시스템에서 x86 활동을 이해하고 완벽히 모니터링할 수 있도록, 그리고 x86 프로세서(620)가 하이퍼바이저(610)로부터 명령을 받을 수 있도록 x86과 하이퍼바이저(예를 들어 ARM) 프로세서 언어(명령어) 사이를 번역한다. 언어 번역기 로직(6430)은 또한 고속 x86 FSB(634)와 저전력 하이퍼바이저 프로세서(610)의 일반적으로 낮은 버스 속도 사이의 데이터 교환을 동기화합니다.(예를 들면, 일반적으로 ARM 장치에 의해 채택되는 AMBA(Advanced Microcontroller Bus Architecture) 버스)
즉, 일반적으로 고성능 x86 아키텍처에 저성능 하이퍼바이저 프로세서의 액세스를 용이하게 하기 위해서, 논리 브리지(6400)는 (1) 프로세서 "언어"와 (2) 버스 통신 전기 신호의 번역을 수행하는 장비를 갖추어야 한다. 도 9 및 도 10의 실시예들에서 나타나는 버스 랩퍼(6414, bus wrapper)는 이러한 버스 프로토콜 변환을 책임지고 데이터 버스 폭(data bus width), 어드레스 버스 길이(address bus lengths)와 버스 신호 전기적 레벨(bus signal electrical levels), 타이밍(timing) 등 사이의 변환을 구현한다.
도 8에 나타난 바와 같은 최선 실시예에서, 이러한 모든 변환은 하이퍼바이저 작동 로직(6410)과 함께 구현될 수 있다. 하이퍼바이저 작동 로직(6410)은 x86 프로세서가 시동 후에 원활하게 작동을 수행할 수 있도록 시스템 상태의 오프-x86 복사본(off-x86 copy)을 유지하기 위해 x86 프로세서 하에서 전체 x86 활동을 모니터링한다. 하이퍼바이저 작동 로직(6410)은 또한 x86 프로세서(620)가 휴지 상태에 놓이고 ARM이 가상 머신(virtual machine) 및 온-더-플라이(on-the-fly) 명령/지시 번역과 같은 기술을 통하여 x86 코드를 실행하려고 하는 경우에 ARM 명령을 x86으로 번역할 수 있다.
논리 브리지(6400)는 저전력 하이퍼바이저 프로세서(ARM)에 의해 실행되는 수동 디지털 로직이거나 그 자체가 마이크로프로세서-기반의 능동 로직일 수 있다. 또한, 수행 x86 프로세서는 인텔(Intel), AMD, 또는 사이릭스(Cyrix) 프로세서일 수 있으며, 저전력 하이퍼바이저 프로세서는 ARM, MIPS, 또는 감소된 x86 코어일 수 있다.
모두에서, 논리 브리지 구성요소 스위치(6407), 로직(6410)과 로직(6430)은, 이종 컴퓨터 시스템에 할당된 수행 작업의 실행을 위해서 하이퍼바이저 프로세서(610)의 제어 하에서 x86 프로세서(620)가 x86 아키텍처(662)에 직접 액세스하도록, 브리징 기능을 제공하기 위해 함께 작동한다. 그리고, 반면에, 하이퍼바이저 프로세서(610)는 x86 프로세서(620)가 필요하지 않은 경우에 x86 아키텍처(662)에 간접적으로 액세스할 수 있다.
또한, 여기서 서술된 본 발명의 이종 컴퓨터 시스템의 하이퍼바이저 또는 수행 프로세서 중 어느 하나의 "마이크로프로세서 명령 집합(microprocessor instruction set)"에서와 같은 "명령 집합(instruction set)"이란 용어는 프로그래밍에 관련되고 내재 데이터 종류, 명령, 레지스터, 어드레싱 모드(addressing modes), 메모리 아키텍처, 인터럽트 및 예외 처리, 외부 I/O를 포함하는 컴퓨터 아키텍처의 부분을 의미한다. 또한, 여기서 서술된 본 발명의 이종 컴퓨터 시스템의 하이퍼바이저 또는 수행 프로세서 중 어느 하나의 "컴퓨터 명령(computer commands)"에서와 같은 "명령(commands)"이란 용어는 컴퓨터 시스템에 의해 수행할 수 있는 계산을 표현하는 인공 언어를 의미한다.
도 9는 본 발명의 최선 실시예에 따른 논리 브리지의 기본 기능 요소를 개략적으로 나타낸다. 논리 브리지(6400)에서 프로세서 명령 집합 번역기 로직(6430)의 기능은 주변장치 상태 관리자(6436), 주변장치의 상태 테이블(6432), 및 주변장치의 IRQ 콘트롤러(6434)에 의해 제공된다. 이것은 이종 컴퓨터 시스템에 연결된 주변장치들의 상태를 지속적으로 기록한다.
한편, 논리 브리지(6400)의 하이퍼바이저 작동 로직(6410)의 기능은 FSB 명령 처리기(6412) 및 버스 랩퍼(6414)에 의해 제공된다. 본질적으로 FSB 명령 처리기(6412)는 이종 컴퓨터 시스템에서 주변장치들(일반적으로 x86 칩셋(662)의 사우스 브리지에 연결되는)의 기록을 유지하기 위해 주변장치의 상태의 집합이 상술한 바와 같이 유지될 수 있도록 수행 프로세서(620)에 의해 수행되는 컴퓨터 명령을 모니터링 한다. 따라서, 수행 x86이 휴지되면 FSB 명령 처리기(6412)는 시동 후 정상 상태를 가져올 수 있다.
반면에, 수행 x86 프로세서(620)가 휴지되면, 하이퍼바이저 프로세서(610)는 x86 칩셋이 액세스될 수 있도록 그것의 명령을 x86으로 번역하기 위해 FSB 명령 처리기(6412)와 버스 랩퍼(6414)에 의존한다. 기본적으로 버스 랩퍼(6414)는 본래 x86 명령어 언어를 "말하기(speak)" 위해서 비-x86 하이퍼바이저 프로세서(610)를 위한 번역 스피커의 역할을 한다. 이것은 하이퍼바이저 프로세서(610)가 수행 프로세서(620)가 휴지 상태인지 여부에 상관없이 x86 아키텍처 리소스에 직접 액세스할 수 있도록 허용한다.
도 11은 본 발명의 최선 실시예에 따른 이종 컴퓨터 시스템의 회로 블록 다이어그램을 개략적으로 나타낸다. 본 실시예에서 논리 브리지(7400)는 약간 다른 논리 회로 배치를 가지고 있다. 버스 스위치(7407)는 여전히 하이퍼바이저(710)와 수행 x86 프로세서 모두가 x86 아키텍처에 직접 액세스하도록 제공하는 4방향 스위치이다. 그러나, 명령 번역기 로직과, 하이퍼바이저 작동 로직을 위한 주변장치 상태 맵퍼(7438, peripheral status mapper)를 위한 명령 처리기(7412)는 버스 스위치(7407)의 네번째 포트에 마련된다. 본 실시예에서, 명령 처리기(7412)는 다음과 같은 작업에 책임이 있다:
1. 명령 대기 및 명령 구문 분석.
2. 해당 ARM 명령으로 x86 명령의 번역.
3. 해당 x86 명령으로 ARM 명령의 번역.
4. x86 상태 유지.
5. 주변장치에 직접 또는 간접 액세스.
주병장치의 상태 맵퍼(7438)은 다음과 같은 작업에 책임이 있다:
1. ARM 프로세서를 위한 주변장치 맵핑.
2. 주변장치의 상태 유지.
버스 스위치(7407)는 다음과 같은 작업을 갖는다:
1. 고속 FSB(인텔, AMD, Via-Cyrix 수행 프로세서의)와 저속 AMBA 버스(ARM의) 사이의 브리지.
2. x86이 x86 아키텍처에 직접 또는 간접 액세스를 위한 브리징.
또한, 수행 x86 프로세서는 자체 작업 RAM(724)을 가질 수 있고, 하이퍼바이저 프로세서(710)는 또한 자체 작업 RAM(714)과 온-보드 부트 로더((716, on-board boot loader)를 가질 수 있는 임베디드 프로세서(712, embedded processor)이다.
도 12는 본 발명의 최선 실시예에 따른 논리 브리지에서 논리 회로 요소들을 개략적으로 나타낸다. 논리 브리지(7400)는 시스템의 x86 칩셋 및 두 개의 프로세서들과 협력하는 것을 설명한다. 논리 브리지(7400)는 도 11에 나타난 바와 같이 x86 코드를 저전력 ARM 하이퍼바이저의 대응 코드로 번역하거나 그 반대로 번역하는 동일한 명령 처리기(7412)를 포함한다. 명령 처리기(7412)는 ARM 제어 하에서 덤 로직(dumb logic)일 수 있거나, 또는 프로세서-기반의 명령 처리기일 수 있다.
도 12의 실시예의 주변장치 상태 관리자(7436)는 도 11의 주변장치 상태 맵퍼(7438)와 약간 다르다. 자체 메모리 및/또는 레지스터와 함께, PSM(7436)은 ARM 하이퍼바이저가 x86 주 시스템의 정확한 상태를 파악하도록 허용하는 동기장치이다. 상태 관리는 (1) ARM이 정확한 시스템 상태에서 언제든지 x86 작업(예를 들면, 가상 컴퓨팅 기술을 통해서)을 수행할 수 있도록, 및 (2) 휴지(대기/수면/최대절전모드)로부터 정상 상태로 되돌아 왔을 때 x86 프로세서가 ARM 작업(예를 들면, ARM이 어떤 작업에 대해서 전력부족일 때)을 수행할 수 있도록 하기 위한 것이다. 다시 말하면, PSM(7436)은 ARM 제어 하에서 작동하는 덤 로직일 수도 있고, 또한 프로세서-기반의 관리자일 수도 있다.
도 10은 도 9의 논리 브리지의 논리 회로 요소의 또 다른 실시예를 더 자세히 나타낸다.
도 8 내지 도 12에 나타난 본 발명의 이종 컴퓨터 시스템의 모든 실시예들은 도 13 내지 도 15에 나타난 세 가지 모드 중 하나로 작동한다. 도 13에 나타난 첫 번째 모드는 종래 데스크탑 컴퓨터가 하고 있는 방법과 같다. 수행 x86 프로세서(620)는 복잡한 처리 전력이 요구되며 x86 프로세서(620)가 최대 부하로 작동하는 CAD, 또는 고품위 게임 작업에 할당된다. 한편, 하이퍼바이저 프로세서(610)는 또한 수행 x86이 언제든지 휴지될수 있도록 준비하기 위해서 활성화되고, 컴퓨터 시스템 상태를 모니터링하고 관리한다.
도면에서, FSB를 따라 프로세서(620)과 x86 칩셋(662)을 향해 가리키는 양쪽 화살표는 프로세서(620)는 x86 시스템에 일반적인 액세스를 할 수 있음을 나타낸다. 한편, FSB를 따라 하이퍼바이저 프로세서(610)와 x86 칩셋(662)을 향해 가리키는 가상 라인의 양쪽 화살표는 하이퍼바이저(610)는 전체 시스템의 모니터링을 유지하는 것을 나타낸다.
도 14에 나타난 이종 컴퓨터 시스템 작동 모드 2는 예를 들면, 온-보드(on-board) 하이퍼바이저 ARM 프로세서에 의해 가능한 휴대폰용 어플리케이션을 구동할 수 있는 x86-기반의 스마트 모바일 장치의 개요를 의미한다. 이러한 스마트 장치는 그 ARM을 사용하여 휴대전화 통화를 하는 경우, 수행 x86 프로세서가 환상(phantom) 프로세서(620)에 의해 의미되는 바와 같이 휴지될 수 있다.
도 15에 나타낸 이종 컴퓨터 시스템 작동 모드 3은 다시 예를 들면, 동시적으로 그 ARM을 사용하여 휴대전화 통화를 하고 실외에서 액티브-X(Active-X)가 필요한 원격 뱅킹 윈도우 어플리케이션을 실행하는 x86-기반의 스마트 모바일 장치의 개요를 의미한다. 이 경우, 하이퍼바이저 프로세서(610)는 활성화되고 시스템 상태가 동시적으로 모니터링되고 유지관리되는 동안 광 통신 작업을 수행한다. 반면에, 수행 x86 프로세서(620)는 또한 할당된 원격 뱅킹 작업을 수행하기 위해 활성화된다. 각각의 안드로이드(예를 들면)와 윈도우 OS에서 ARM과 x86 어플리케이션들은 모두 동시에, 동일한 이종 컴퓨터 시스템 디스플레이 화면에 수행되고, 심지어 서로 데이터를 교환할 수 있다 - 원활하게 수행되며 후술할 동일 하드웨어에 동시적으로 통합되는 혼합-OS 소프트웨어 어플리케이션 개요.
C: 이종 컴퓨터 시스템을 위한 부팅 알고리즘
도 16 내지 도 19는 이종 컴퓨터 시스템을 실행하기 위한 제어 알고리즘을 각각 나타낸다. 전원이 꺼진 상태의 본 발명의 컴퓨터 시스템을 실행하기 위해서는 4가지 경로가 가능하다.
모드 A: 저전력 하이퍼바이저 프로세서 시스템만이 부팅되어 활성화.
모드 B: 하이퍼바이저 프로세서 시스템이 활성화된 후 수행 x86 프로세서 부팅.
모드 C: 수행 x86 프로세서 시스템만이 부팅되어 활성화.
모드 D: 수행 x86 프로세서 시스템이 활성화된 후 하이퍼바이저 프로세서 시스템 부팅.
모드 A:
하이퍼바이저 프로세서만을 부팅하는 과정은 도 16에 나타나 있다.
1단계:
1a: 먼저, 주변장치 상태 관리자(PSM, Peripheral Status Maintainer)는 BIOS를 액세스한다.
1b: 다음으로, 주변장치의 목록과 맵핑 테이블은 시스템 BIOS 정보를 기반으로 업데이트된다.
1c: 그리고나서, 저전력 하이퍼바이저를 부팅하고, 내부 버스에 주변장치를 시작하며, 주변장치의 인터럽트 서비스를 시작한다.
2단계:
2a: 먼저, PSM은 IRQ를 저전력 하이퍼바이저 프로세서로 전송한다.
2b: 다음으로, 저전력 하이퍼바이저 프로세서는 주변장치의 관리 서비스를 시작한다.
3단계:
3a: 저전력 하이퍼바이저 프로세서는 시스템에 연결된 모든 주변장치들을 시작한다.
모드 B:
하이퍼바이저 프로세서 시스템이 활성화된 후에 수행 x86 프로세서가 부팅되는 과정이 도 17에 나타나 있다.
1단계:
1a: 저전력 하이퍼바이저는 FSB 명령 처리기에 시동 신호를 전송한다.
1b: FSB 명령 처리기는 수행 x86에 리셋 명령을 전송한다.
2단계:
2a: FSB 명령 처리기는 PSM(PSM은 x86 프로세서 BIOS로서 자신을 표시한다)으로부터 필요한 시스템 정보를 요청한다.
2b: FSB 명령 처리기는 수행 x86이 부트스트랩(bootstrap)하는 동안 필요한 시스템 정보를 수행 x86 프로세서로 제공한다.
3-1단계:
3-1a: 수행 x86은 간접 액세스를 위하여 FSB 명령을 전송한다.
3-1b: 저전력 하이퍼바이저 프로세서는 프록시 역할을 수행하고 고속 x86 간접 액세스 명령을 실행한다.
3-1단계:
3-2a: 수행 x86은 직접 액세스를 위하여 FSB 명령을 전송한다.
3-2b: PSM은 직접 액세스를 모니터링 한다.
모드 C:
수행 x86 프로세서만을 부팅하는 과정은 도 18에 나타난 있다. 이종 컴퓨터 시스템이 단지 수행 x86만을 시동한다면 이것은 시동의 기본 모드가 될 수 있고, 어떠한 펌웨어(firmware) 제어도 없이 순수 하드웨어에서 구현될 수 있다.
1단계:
1a: 고속 데이터 스위치는 우회 하이브리드 브리지 서브 시스템(bypass hybrid bridge sub-system)으로서 동작하기 위해 모드를 리셋한다(이종 컴퓨터 시스템이 수행 x86만을 시동한다면 이것은 어떠한 펌웨어 제어 없이 순수 하드웨어에서 구현될 수 있는 기본 모드이다).
2단계:
2a: 수행 x86이 정상적으로 부팅된다.
모드 D:
수행 x86 시스템이 활성화된 후 하이퍼바이저 프로세서 시스템이 부팅되는 과정은 도 19에 나타나 있다.
1단계:
1a: PSM은 BIOS와 정보를 동기화한다.
1b: PSM은 주변장치의 목록 및 맵핑 테이블을 업데이트 한다.
2단계:
2a: 저전력 하이퍼바이저는 부팅되고, 내부 버스에 연결된 주변장치들을 시작하며, 인터럽스 서비스를 시작한다.
3단계:
3a: PSM은 IRQ를 저전력 하이퍼바이저로 전송한다.
3b: 저전력 하이퍼바이저는 주변장치 관리 서비스를 시작한다.
4단계:
4a: 저전력 하이퍼바이저는 시스템 서비스를 인계받기 위해서 논리 브리지에 통지하고 요청한다.
D: 이종 컴퓨터 시스템을 위한 슈퍼 운영 체제(OS)(Super Operating System)
소프트웨어 측면에서, 본 발명의 이종 컴퓨터 시스템의 실시예는 그 소프트웨어 시스템에서 이종 하이퍼바이저 레이어의 상위에서 x86(윈도우 또는 리눅스와 같은)과 ARM(안드로이드와 같은) OS들의 최초 버전을 구동한다. 이 이종 하이퍼바이저 레이어는 본 발명의 컴퓨터 시스템의 하드웨어 상에 두 개의 활성 OS들을 공존할 수 있게 하고, 더욱이 두 세계의 동시적인 어플리케이션을 위해서 두 개의 OS들 사이에 원활한 통신을 할 수 있게 한다.
이것을 달성하기 위해서, x86-ARM 이종 상에 작동하는 대중적인 OS들을 위한 이종 하이퍼바이저 레이어 소프트웨어의 실험용 버전이 성공적으로 만들어지고 테스트되어 왔다. x86용 윈도우와 ARM용 안드로이드를 다루는 레이어의 현재 버전들은 테스트되었다. 이러한 테스트 이종 하이퍼바이저 레이어 소프트웨어의 반대 버전, 말 그대로 슈퍼 OS는 전체 이종 컴퓨터 시스템 하드웨어에서 ARM과 x86 프로세서들을 병행하여 작동시킬 수 있고, 두 개의 서로 다른 OS들의 소프트웨어 어플리케이션들을 교차 지원할 수 있다.
따라서, 본 발명의 이종 컴퓨터 시스템에서 두 개의 다른 OS들은 그 자신의 어플리케이션들을 각각 동시에 부팅하고 실행시킬 수 있다. 하나의 OS의 어플리케이션은 심지어 다른 OS 내에서 실행될 수 있고, 서로 다른 OS의 두 개의 어플리케이션들은 직접적이고 원활하게 상호 소통할 수 있다.
도 20은 본 발명의 이종 컴퓨터 시스템을 위한 이러한 슈퍼 OS를 개략적으로 나타낸다. 이러한 본 발명의 슈퍼 OS는 스마트 모바일 장치 등을 위한 윈도우, 리눅스, 솔라리스, 안드로이드와 같은 종래의 OS를 "서브-OS"로서 그 자체의 하부에 놓는다. 이러한 종래의 OS들는 슈퍼 OS 하에서 작동될 때 변경될 필요가 없다. 이러한 OS들에게, 그들이 각각 계속해서 실행하는 이종 컴퓨터 시스템 하드웨어는 그들이 일반적으로 실행하던 종래의 x86 하드웨어보다 다른 것이 전혀 없는 것으로 보인다. 슈퍼 OS가 이종 컴퓨터 시스템에 부팅되면, 두 개의 서로 다른 운영 체제(OS)들은 두 운영 체제(OS)의 원활한 다중 소프트웨어 어플리케이션들을 동시에 지원하면서 동일한 하드웨어 상에 동시적으로 활동할 수 있고 중간에 데이터의 상호 교환을 허용한다.
슈퍼 OS의 구축을 위해서, 이종 하이퍼바이저 레이어는 OS와 하드웨어 레이어 사이에 삽입되고, 둘 사이를 가로지르도록 만들어진다. 본 발명의 이종 컴퓨터 시스템 기술의 이러한 소프트웨어 아키텍처로, 원활한 크로스-OS 소프트웨어 어플리케이션이 가능하다. 예를 들면, 윈도우 워드는 x86 하드웨어에서 윈도우 OS 내에서 직접적으로 실행될 수 있고, 또는, ARM 프로세서는 이종 하이퍼바이저 레이어를 교차하는 가상 컴퓨팅을 통하여 워드를 실행할 수 있다. 이것을 달성하기 위해서, 오픈 소스(open source) 가상 컴퓨팅 기술과 같은 기존 소프트웨어 기술들을 최대한 활용한다.
도 21 내지 도 24는 원활한 크로스-OS 소프트웨어 어플리케이션을 지원하기 위한 도 8 내지 도 12에 나타난 이종 컴퓨터 시스템의 작동 모드를 각각 나타낸다. 도 20의 슈퍼 OS가 부팅되고 스스로 전개되는 4가지 모드는 다음을 포함한다:
모드 A: 저전력 하이퍼바이저 프로세서 시스템만이 부팅되어 활성화.
모드 B: 하이퍼바이저 프로세서 시스템이 활성화된 후 수행 x86 프로세서 부팅
모드 C: 수행 x86 프로세서 시스템만이 부팅되고 활성화
모드 D: 수행 x86 시스템이 활성화되고 하이퍼바이저 프로세서 시스템 부팅
하이퍼바이저 프로세서 OS만이 부팅되는 과정은 도 21에 나타나 있다. 이 모드는 하이퍼바이저 프로세서만을 위해 소프트웨어 어플리케이션들을 작동시킨다. 시동 프로시저(procedure)는 소프트웨어 어플리케이션들(예를 들면, 안드로이드 또는 리눅스)이 실행될 수 있도록 본 발명의 이종 컴퓨터 시스템을 준비시킨다. 부팅 과정은 다음을 포함한다:
1. 하이퍼바이저 프로세서(ARM) 시동.
2. 브리지는 그 자체에 직접 연결된 작동 RAM(x86 칩셋의 사우스 브리지에 연결되는 일반적인 컴퓨터 주변장치들과 구별되도록하기 위해)과 같은 모든 주변장치들을 초기화한다.
3. 하이퍼바이저 프로세서(ARM)는 부트 로더(boot loader)를 로딩한다.
4. 부트 로더는 이종 하이퍼바이저 레이어 파트-A(Heterogeneous Hypervisor Layer Part-A)를 로딩한다.
5. 이종 하이퍼바이저 레이어 파트-A는 OS1를 로딩한다.
하이퍼바이저 프로세서 OS가 활성화된 후 수행 x86 프로세서 운영 체제(OS)를 부팅하는 과정은 도 22에 나타나 있다. 이 모드는 하이퍼바이저와 수행 x86 프로세서 OS용 소프트웨어 어플리케이션들을 작동시킨다. 시동 프로시저는 동시적이고 원활한 크로스-OS 소프트웨어 어플리케이션들이 가능하도록 본 발명의 이종 컴퓨터 시스템을 준비시킨다. 부팅 과정은 다음을 포함한다:
1. 하이퍼바이저 프로세서 시동.
2. 브리지는 그 자체에 직접 연결된 모든 주변장치들을 시작한다.
3. 하이퍼바이저 프로세서는 부트 로더(boot loader)를 로딩한다.
4. 부트 로더는 이종 하이퍼바이저 레이어 파트-A(Heterogeneous Hypervisor Layer Part-A)를 로딩한다.
5. 이종 하이퍼바이저 레이어 파트-A는 OS1를 로딩한다.
6. 이종 하이퍼바이저 레이어 파트-A는 고속 x86을 시작한다.
7. 고속 x86은 이종 하이퍼바이저 레이어 파트-B를 로딩한다.
8. 이종 하이퍼바이저 레이어 파트-B는 OS2를 로딩한다.
수행 x86 프로세서 OS만이 부팅되는 과정은 도 23에 나타나 있다. 부팅 과정은 다음을 포함한다:
1. 수행 x86 시동.
2. 브리지는 우회 하이브리드 브리지 서브-시스템(bypass hybrid bridge sub-system)으로 작동한다.
3. 수행 x86은 BIOS, EFI 또는 UEFI를 로딩한다.
4. 수행 x86은 이종 하이퍼바이저 레이어 파트-B(Heterogeneous Hypervisor Layer Part-B)를 로딩한다.
5. 이종 하이퍼바이저 레이어 파트-B는 OS2를 로딩한다.
수행 x86 프로세서 운영 체제(OS)가 활성화된 후 하이퍼바이저 프로세서 운영 체제(OS)를 부팅하는 과정은 도 24에 나타나 있다. 이 모드는 하이퍼바이저와 수행 x86 프로세서 OS용 소프트웨어 어플리케이션들을 작동시킨다. 시동 프로시저는 동시적이고 원활한 크로스-OS 소프트웨어 어플리케이션들이 가능하도록 본 발명의 이종 컴퓨터 시스템을 준비시킨다. 부팅 과정은 다음을 포함한다:
1. 수행 x86 시동.
2. 브리지는 우회 하이브리드 브리지 서브-시스템(bypass hybrid bridge sub-system)으로 작동한다.
3. 수행 x86는 BIOS, EFI 또는 UEFI를 로딩한다.
4. 수행 x86는 이종 하이퍼바이저 레이어 파트-B(Heterogeneous Hypervisor Layer Part-B)를 로딩한다.
5. 이종 하이퍼바이저 레이어 파트-B는 OS2를 로딩한다.
6. 브리지(PSM)는 BIOS와 동기화하고 x86 칩셋 외에 그 자신에 연결되는 모든 주변장치들을 시작한다.
7. 이종 하이퍼바이저 레이어 파트-B는 하이퍼바이저 프로세서를 시작한다.
8. 하이퍼바이저 프로세서는 부트 로더(boot loader)를 로딩한다.
9. 부트 로더는 이종 하이퍼바이저 레이어 파트-A를 로딩한다.
10. 이종 하이퍼바이저 레이어 파트-A는 이종 하이퍼바이저 레이어 파트-B에게 하이퍼바이저 서비스를 인수하라고 통지한다.
11. 이종 하이퍼바이저 레이어 파트-A는 OS1를 로딩한다.
12. OS1은 시스템 서비스들을 인수한다.
이와 같이 본 발명은 기재된 실시 예에 한정되는 것이 아니고, 본 발명의 사상 및 범위를 벗어나지 않고 다양하게 수정 및 변형할 수 있음은 이 기술의 분야에서 통상의 지식을 가진 자에게 자명하다. 예를 들면, 본 발명은 본 발명의 이종 컴퓨터 시스템의 동일한 물리적 하드웨어 상에 하이퍼바이저와 수행 프로세서를 갖는 실시예들을 기술하였지만, 프로세서는 클라우드(cloud) 컴퓨팅 어플리케이션에서 구현된 것과 같이 물리적으로 둘 또는 그 이상의 위치에 분리될 수 있음은 자명하다. 이러한 시나리오에서, 슈퍼 OS용 이종 하이퍼바이저 소프트웨어 레이어의 수행 프로세서 및 하이퍼바이저 프로세서를 위한 구성들과 A와 B는 각각 통신 수단(클라우드 컴퓨팅에서는 인터넷)들을 통해서 연결될 수 있다.따라서 그러한 수정 예 또는 변형 예들은 본 발명의 특허청구범위에 속한다 하여야 할 것이다.
100 : 이종 컴퓨터 시스템
110 : 하이퍼바이저 프로세서 120 : x86 CPU
134 : 프론트-사이드 버스 140 : 브리지 칩
160 : x86 아키텍처 162 : x86 칩셋
710 : 하이퍼 바이저 프로세서 712 : 임베디드 프로세서
714 : 자체 작업 RAM 716 : 온-보드 부트 로더
720 : 수행 x86 프로세서 724 : 자체 작업 RAM
762 : x86 칩셋 7400 : 논리 브리지
7407 : 버스 스위치 7412 : 명령 처리기
7438 : 주변장치 상태 맵퍼

Claims (18)

  1. 시동되는 경우에 이종 하이퍼바이저(hypervisor) 레이어 파트-B를 로딩하고, 상기 이종 하이퍼바이저 레이어 파트-B는 수행 운영체제(OS2)를 로딩하는 적어도 하나의 수행 프로세서;
    노스 브리지(North bridge)를 가지며, 소프트웨어 작업을 실행하기 위해 상기 적어도 하나의 수행 프로세서를 지원하는 x86 칩셋; 및
    상기 적어도 하나의 수행 프로세서보다 적은 전력을 소모하고, 시동되는 경우에 부트 로더를 로딩하고, 상기 부트 로더는 이종 하이퍼바이저 레이어 파트-A를 로딩하고, 상기 이종 하이퍼바이저 레이어 파트-A는 하이퍼바이저 운영체제(OS1)를 로딩하는 하이퍼바이저 프로세서를 포함하며,
    상기 x86 칩셋에 의해 지원되는 상기 하이퍼바이저 프로세서는, 상기 하이퍼바이저 프로세서가 처리하기에 충분한 처리 능력을 가진 상기 소프트웨어의 작업을 실행하고 상기 적어도 하나의 수행 프로세서를 전력-보존 상태로 만들거나;
    상기 하이퍼바이저 프로세서는 상기 하이퍼바이저 프로세서가 처리하기에 불충분한 처리 능력을 가진 상기 소프트웨어의 작업을 실행하기 위해 상기 적어도 하나의 수행 프로세서를 상기 전력-보존 상태로부터 불러오거나; 또는
    상기 적어도 하나의 수행 프로세서와 상기 하이퍼바이저 프로세서는 모든 프로세서의 결합된 처리 능력을 필요로 하는 상기 소프트웨어의 작업을 동시에 실행하며,
    상기 적어도 하나의 수행 프로세서가 시동되기 전에 상기 하이퍼바이저 프로세서가 시동되는 경우, 상기 적어도 하나의 수행 프로세서는 상기 이종 하이퍼바이저 레이어 파트-A에 의해 시동되고,
    상기 하이퍼바이저 프로세서가 시동되기 전에 상기 적어도 하나의 수행 프로세서가 시동되는 경우, 상기 하이퍼바이저 프로세서는 상기 이종 하이퍼바이저 레이어 파트-B에 의해 시동되는 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  2. 제1항에 있어서,
    상기 수행 운영체제(OS2)는 x86 운영체제인 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  3. 제1항에 있어서
    상기 하이퍼바이저 운영체제(OS1)는 ARM 운영체제인 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  4. 제1항에 있어서,
    상기 수행 운영체제(OS2) 및 하이퍼바이저 운영체제(OS1)는 모두 x86 운영체제인 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  5. 제1항에 있어서,
    상기 적어도 하나의 수행 프로세서와 상기 하이퍼바이저 프로세서는 각각 x86 프로세서이고 동일한 반도체 칩 상에 마련되는 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  6. 제1항에 있어서,
    상기 적어도 하나의 수행 프로세서는 각각 x86 프로세서이고, 상기 하이퍼바이저 프로세서는 ARM 프로세서이며 상기 수행 프로세서와 상기 하이퍼바이저 프로세서는 모두 동일한 반도체 칩 상에 마련되는 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  7. 로컬 프로세서 버스(local processor bus)를 가지며, 시동되는 경우에 이종 하이퍼바이저(hypervisor) 레이어 파트-B를 로딩하고, 상기 이종 하이퍼바이저 레이어 파트-B는 수행 운영체제(OS2)를 로딩하는 적어도 하나의 수행 프로세서;
    노스 브리지(North bridge)와 프론트-사이드 버스(FSB)를 가지며, 소프트웨어 작업을 실행하기 위해 상기 적어도 하나의 수행 프로세서를 지원하는 x86 칩셋;
    상기 적어도 하나의 수행 프로세서보다 적은 전력을 소모하고, 시동되는 경우에 부트 로더를 로딩하고, 상기 부트 로더는 이종 하이퍼바이저 레이어 파트-A를 로딩하고, 상기 이종 하이퍼바이저 레이어 파트-A는 하이퍼바이저 운영체제(OS1)를 로딩하는 하이퍼바이저 프로세서; 및
    상기 로컬 프로세서 버스를 통해서 상기 하이퍼바이저 프로세서를 상기 x86 칩셋에 연결하고, 상기 하이퍼바이저 프로세서와 상기 적어도 하나의 수행 프로세서를 상기 프론트-사이드 버스에 연결하는 논리 브리지(bridge logic)를 포함하며,
    상기 x86 칩셋에 의해 지원되는 상기 하이퍼바이저 프로세서는, 상기 하이퍼바이저 프로세서가 처리하기에 충분한 처리 능력을 가진 상기 소프트웨어의 작업을 실행하고 상기 적어도 하나의 수행 프로세서를 전력-보존 상태로 만들거나;
    상기 하이퍼바이저 프로세서는 상기 하이퍼바이저 프로세서가 처리하기에 불충분한 처리 능력을 가진 상기 소프트웨어의 작업을 실행하기 위해 상기 적어도 하나의 수행 프로세서를 상기 전력-보존 상태로부터 불러오거나; 또는
    상기 적어도 하나의 수행 프로세서와 상기 하이퍼바이저 프로세서는 모든 프로세서의 결합된 처리 능력을 필요로 하는 상기 소프트웨어의 작업을 동시에 실행하며,
    상기 적어도 하나의 수행 프로세서가 시동되기 전에 상기 하이퍼바이저 프로세서가 시동되는 경우, 상기 적어도 하나의 수행 프로세서는 상기 이종 하이퍼바이저 레이어 파트-A에 의해 시동되고,
    상기 하이퍼바이저 프로세서가 시동되기 전에 상기 적어도 하나의 수행 프로세서가 시동되는 경우, 상기 하이퍼바이저 프로세서는 상기 이종 하이퍼바이저 레이어 파트-B에 의해 시동되는 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  8. 제7항에 있어서,
    상기 수행 운영체제(OS2)는 x86 운영체제인 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  9. 제7항에 있어서,
    상기 하이퍼바이저 운영체제(OS1)는 ARM 운영체제인 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  10. 제7항에 있어서,
    상기 수행 운영체제(OS2) 및 하이퍼바이저 운영체제(OS1)들은 모두 x86 운영체제인 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  11. 제7항에 있어서,
    상기 논리 브리지는 독립된 반도체 칩에 마련되는 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  12. 제7항에 있어서,
    상기 논리 브리지는 상기 하이퍼바이저 프로세서와 같이 동일한 반도체 칩 상에 마련되는 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  13. 제7항에 있어서,
    상기 논리 브리지, 상기 하이퍼바이저 프로세서, 및 상기 적어도 하나의 수행 프로세서는 동일한 반도체 칩 상에 마련되는 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 적어도 하나의 수행 프로세서는 각각 x86 프로세서인 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  15. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 하이퍼바이저 프로세서는 ARM 프로세서인 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  16. 시동되는 경우에 이종 하이퍼바이저(hypervisor) 레이어 파트-B를 로딩하고, 상기 이종 하이퍼바이저 레이어 파트-B는 수행 운영체제(OS2)를 로딩하는 적어도 하나의 제1 프로세서;
    노스 브리지(North bridge)를 가지며, 소프트웨어 작업을 실행하기 위해 상기 적어도 하나의 수행 프로세서를 지원하는 x86 칩셋; 및
    상기 적어도 하나의 제1 프로세서보다 적은 전력을 소모하고, 시동되는 경우에 부트 로더를 로딩하고, 상기 부트 로더는 이종 하이퍼바이저 레이어 파트-A를 로딩하고, 상기 이종 하이퍼바이저 레이어 파트-A는 하이퍼바이저 운영체제(OS1)를 로딩하는 제2 프로세서를 포함하며,
    상기 x86 칩셋에 의해 지원되는 상기 제2 프로세서는, 상기 제2 프로세서가 처리하기에 충분한 처리 능력을 가진 상기 소프트웨어의 작업을 실행하고 상기 적어도 하나의 제1 프로세서를 전력-보존 상태로 만들며,
    상기 적어도 하나의 제1 프로세서가 시동되기 전에 상기 제2 프로세서가 시동되는 경우, 상기 적어도 하나의 제1 프로세서는 상기 이종 하이퍼바이저 레이어 파트-A에 의해 시동되고,
    상기 제2 프로세서가 시동되기 전에 상기 적어도 하나의 제1 프로세서가 시동되는 경우, 상기 제2 프로세서는 상기 이종 하이퍼바이저 레이어 파트-B에 의해 시동되는 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  17. 제16항에 있어서,
    상기 제2 프로세서는 상기 적어도 하나의 제1 프로세서와 다른 위치에 마련되는 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
  18. 제16항에 있어서,
    상기 제1 프로세서 중 하나 이상은 나머지 상기 제1 프로세서 및 제2 프로세서와 다른 위치에 마련되는 것을 특징으로 하는 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템.
KR1020120000719A 2011-06-08 2012-01-03 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템 KR101479590B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161494587P 2011-06-08 2011-06-08
US61/494,587 2011-06-08

Publications (2)

Publication Number Publication Date
KR20120136276A KR20120136276A (ko) 2012-12-18
KR101479590B1 true KR101479590B1 (ko) 2015-01-06

Family

ID=45444284

Family Applications (4)

Application Number Title Priority Date Filing Date
KR20110129466A KR20120136271A (ko) 2011-06-08 2011-12-06 그린 컴퓨팅 이종 컴퓨터 시스템
KR1020120000719A KR101479590B1 (ko) 2011-06-08 2012-01-03 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템
KR20120000718A KR20120136275A (ko) 2011-06-08 2012-01-03 이종 컴퓨터 시스템에서 프로세서 브리징
KR20120000717A KR20120136274A (ko) 2011-06-08 2012-01-03 이종 컴퓨터 시스템 작동 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR20110129466A KR20120136271A (ko) 2011-06-08 2011-12-06 그린 컴퓨팅 이종 컴퓨터 시스템

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR20120000718A KR20120136275A (ko) 2011-06-08 2012-01-03 이종 컴퓨터 시스템에서 프로세서 브리징
KR20120000717A KR20120136274A (ko) 2011-06-08 2012-01-03 이종 컴퓨터 시스템 작동 방법

Country Status (6)

Country Link
US (4) US9098287B2 (ko)
JP (4) JP2012256306A (ko)
KR (4) KR20120136271A (ko)
CN (4) CN102819292A (ko)
GB (4) GB2491666A (ko)
TW (4) TWI453580B (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10423216B2 (en) 2013-03-26 2019-09-24 Via Technologies, Inc. Asymmetric multi-core processor with native switching mechanism
US9596077B2 (en) * 2013-04-22 2017-03-14 Unisys Corporation Community of interest-based secured communications over IPsec
US9996400B2 (en) 2013-05-23 2018-06-12 Renesas Electronics Corporation Multi-CPU system and multi-CPU system scaling method
TWI483103B (zh) * 2013-05-28 2015-05-01 Acer Inc 電源管理方法
WO2015061731A1 (en) * 2013-10-27 2015-04-30 Advanced Micro Devices, Inc. Input/output memory map unit and northbridge
WO2015167563A1 (en) * 2014-04-30 2015-11-05 Hewlett-Packard Development Company, L.P. Multi architecture manager
KR20160054850A (ko) * 2014-11-07 2016-05-17 삼성전자주식회사 다수의 프로세서들을 운용하는 장치 및 방법
JP6285853B2 (ja) * 2014-12-05 2018-02-28 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および情報処理方法
US20170052799A1 (en) * 2015-08-21 2017-02-23 Microchip Technology Incorporated Integrated Circuit Device With Selectable Processor Core
JP6891680B2 (ja) * 2017-07-12 2021-06-18 富士通株式会社 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
CN109213717B (zh) * 2018-08-31 2022-04-05 北京计算机技术及应用研究所 国产飞腾处理器的双桥片架构
EP4009160A1 (en) * 2020-12-07 2022-06-08 F5, Inc. Methods for application deployment across multiple computing domains and devices thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222080A (ja) * 1999-01-28 2000-08-11 Canon Inc 情報機器およびpcmciaカード管理方法
US20110055434A1 (en) * 2009-08-31 2011-03-03 Pyers James Methods and systems for operating a computer via a low power adjunct processor

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6513057B1 (en) * 1996-10-28 2003-01-28 Unisys Corporation Heterogeneous symmetric multi-processing system
US6021484A (en) * 1997-11-14 2000-02-01 Samsung Electronics Co., Ltd. Dual instruction set architecture
US6480952B2 (en) * 1998-05-26 2002-11-12 Advanced Micro Devices, Inc. Emulation coprocessor
US7098899B1 (en) * 1999-09-21 2006-08-29 Intel Corporation Dual form low power, instant on and high performance, non-instant on computing device
US6631474B1 (en) * 1999-12-31 2003-10-07 Intel Corporation System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching
JP2001290665A (ja) * 2000-04-11 2001-10-19 Nec Software Hokuriku Ltd プロセッサシステム
CA2335561A1 (en) * 2000-05-31 2001-11-30 Frank J. Degilio Heterogeneous client server method, system and program product for a partitioned processing environment
US20020173344A1 (en) * 2001-03-16 2002-11-21 Cupps Bryan T. Novel personal electronics device
US20030153353A1 (en) * 2001-03-16 2003-08-14 Cupps Bryan T. Novel personal electronics device with simultaneous multi-processor operation
JP2002312335A (ja) 2001-04-10 2002-10-25 Toshiba Corp 非対称型マルチプロセッサ
JP2002312180A (ja) * 2001-04-11 2002-10-25 Hitachi Ltd 動的命令変換機能を有するプロセッサシステム、該プロセッサシステムを備えたコンピュータにて実行されるバイナリートランスレーションプログラム及びそのプロセッサシステムを実装した半導体デバイス
US6920573B2 (en) * 2001-05-23 2005-07-19 Smartpower Corporation Energy-conserving apparatus and operating system having multiple operating functions stored in keep-alive memory
JP2004157865A (ja) 2002-11-07 2004-06-03 Sony Corp マルチプロセッサシステム
JP2004280378A (ja) 2003-03-14 2004-10-07 Handotai Rikougaku Kenkyu Center:Kk 半導体装置
US7093147B2 (en) * 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US20050132239A1 (en) * 2003-12-16 2005-06-16 Athas William C. Almost-symmetric multiprocessor that supports high-performance and energy-efficient execution
US7152171B2 (en) * 2004-04-28 2006-12-19 Microsoft Corporation Task-oriented processing as an auxiliary to primary computing environments
CN1324430C (zh) * 2004-06-09 2007-07-04 宏碁股份有限公司 电脑系统的电源管理系统及方法
WO2006013857A1 (ja) * 2004-08-05 2006-02-09 Matsushita Electric Industrial Co., Ltd. 情報処理装置
US7729900B2 (en) * 2004-09-29 2010-06-01 Microsoft Corporation Method and computer-readable medium for consistent configuration of language support across operating system and application programs
WO2007081218A1 (en) 2006-01-10 2007-07-19 Cupp Computing As Dual mode power-saving computing system
US9015501B2 (en) * 2006-07-13 2015-04-21 International Business Machines Corporation Structure for asymmetrical performance multi-processors
US7987464B2 (en) * 2006-07-25 2011-07-26 International Business Machines Corporation Logical partitioning and virtualization in a heterogeneous architecture
US20080263324A1 (en) 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US7676683B2 (en) * 2006-08-24 2010-03-09 Sony Computer Entertainment Inc. Method and system for rebooting a processor in a multi-processor system
CN101689106B (zh) * 2007-06-12 2013-10-09 松下电器产业株式会社 多处理器控制装置、多处理器控制方法以及多处理器控制电路
US8160247B2 (en) * 2007-09-27 2012-04-17 Adobe Systems Incorporated Providing local storage service to applications that run in an application execution environment
US7826841B2 (en) * 2008-02-11 2010-11-02 Wei Lu Open wireless architecture virtualization system for wireless mobile terminal device
US8615647B2 (en) 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
JP2009230220A (ja) 2008-03-19 2009-10-08 Fuji Xerox Co Ltd 情報処理装置、及び画像処理装置
US9058483B2 (en) * 2008-05-08 2015-06-16 Google Inc. Method for validating an untrusted native code module
US8510577B2 (en) * 2008-07-28 2013-08-13 Microsoft Corporation Reducing power consumption by offloading applications
US8352952B2 (en) * 2008-12-01 2013-01-08 Citrix Systems, Inc. Systems and methods for facilitating virtualization of a heterogeneous processor pool
US20100169884A1 (en) * 2008-12-31 2010-07-01 Zohar Bogin Injecting transactions to support the virtualization of a physical device controller
JP4644747B1 (ja) * 2009-11-02 2011-03-02 パナソニック株式会社 情報処理装置、制御方法および制御プログラム
US20110113426A1 (en) 2009-11-09 2011-05-12 Hsiang-Tsung Kung Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods
JP5310588B2 (ja) * 2010-02-04 2013-10-09 ブラザー工業株式会社 通信装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222080A (ja) * 1999-01-28 2000-08-11 Canon Inc 情報機器およびpcmciaカード管理方法
US20110055434A1 (en) * 2009-08-31 2011-03-03 Pyers James Methods and systems for operating a computer via a low power adjunct processor

Also Published As

Publication number Publication date
US20120317571A1 (en) 2012-12-13
GB2491915A (en) 2012-12-19
JP2012256308A (ja) 2012-12-27
CN102819292A (zh) 2012-12-12
JP5557857B2 (ja) 2014-07-23
US20120317321A1 (en) 2012-12-13
TWI453580B (zh) 2014-09-21
GB2491914A (en) 2012-12-19
JP2012256309A (ja) 2012-12-27
GB201119865D0 (en) 2011-12-28
TW201250595A (en) 2012-12-16
JP2012256306A (ja) 2012-12-27
GB2491665B (en) 2014-02-26
GB2491665A (en) 2012-12-12
KR20120136275A (ko) 2012-12-18
KR20120136274A (ko) 2012-12-18
JP2012256310A (ja) 2012-12-27
US9098287B2 (en) 2015-08-04
KR20120136276A (ko) 2012-12-18
CN102819291A (zh) 2012-12-12
CN102819311A (zh) 2012-12-12
US20120317405A1 (en) 2012-12-13
TWI456500B (zh) 2014-10-11
TW201250460A (en) 2012-12-16
CN102819312A (zh) 2012-12-12
TW201250461A (en) 2012-12-16
GB2491666A (en) 2012-12-12
US9383811B2 (en) 2016-07-05
GB201119861D0 (en) 2011-12-28
GB201119875D0 (en) 2011-12-28
TW201250459A (en) 2012-12-16
KR20120136271A (ko) 2012-12-18
US20120317429A1 (en) 2012-12-13
CN102819312B (zh) 2016-02-24
GB201119879D0 (en) 2011-12-28
JP5734211B2 (ja) 2015-06-17

Similar Documents

Publication Publication Date Title
KR101479590B1 (ko) 소프트웨어를 실행하기 위한 이종 컴퓨터 시스템
EP1996993B1 (en) Dual mode power-saving computing system
US10635470B2 (en) Hibernation via paravirtualization
US20200166986A1 (en) System and method for performing distributed power management without power cycling hosts
US9672055B2 (en) Information processing system having two sub-systems with different hardware configurations which enable switching therebetween
EP3857336A1 (en) System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail
US20110106943A1 (en) Host Independent Secondary Application Processor
US20180341482A1 (en) Method and arrangement for utilization of a processing arrangement
CN102117113B (zh) 计算机系统及其中央处理器的电源管理的方法
US20240028222A1 (en) Sleep mode using shared memory between two processors of an information handling system

Legal Events

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

Payment date: 20171213

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181211

Year of fee payment: 5