JP5557857B2 - 異種計算機システムにおけるプロセッサブリッジ - Google Patents

異種計算機システムにおけるプロセッサブリッジ Download PDF

Info

Publication number
JP5557857B2
JP5557857B2 JP2012000697A JP2012000697A JP5557857B2 JP 5557857 B2 JP5557857 B2 JP 5557857B2 JP 2012000697 A JP2012000697 A JP 2012000697A JP 2012000697 A JP2012000697 A JP 2012000697A JP 5557857 B2 JP5557857 B2 JP 5557857B2
Authority
JP
Japan
Prior art keywords
processor
hypervisor
processors
bridge
computer system
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2012000697A
Other languages
English (en)
Other versions
JP2012256309A (ja
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 JP2012256309A publication Critical patent/JP2012256309A/ja
Application granted granted Critical
Publication of JP5557857B2 publication Critical patent/JP5557857B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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
    • 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)

Description

本発明は、環境に配慮した演算処理、即ち演算消費電力の最小化に概ね関する。特に、本発明は、最小の演算消費電力で高性能演算処理する異種計算機システムを実現するようブリッジ論理回路を介して標準のx86アーキテクチャに加えられた低電力マスタープロセッサを有する異種計算機のためのブリッジ論理デバイスに関する。
様々な種類の計算機が現代文明の不可欠な装置となっている。インテルx86(元のアーキテクチャは米国インテル社により設計され米国AMD社により最新の64ビットCISCアーキテクチャに進化している)は長く計算機の主流を支配してきた。一方、商業上重要性のある非x86計算機の世界は、スマートフォン及びタッチスクリーン装置を含む携帯演算装置においてARMプロセッサ(英国ARM社により開発されたRISC・ARMアーキテクチャ)が現在優勢である。環境に配慮した(グリーンな)演算処理の観点から、x86と非x86演算処理の両者の問題は下記の通りである。
x86デスクトップの休止消費電力を削減するグリーンな演算処理が必要とされている。x86演算処理は演算能力を必要とするアプリケーションに適している。数億の家庭及びオフィスのデスクトップ及び携帯計算機、専門家用の高性能ワークステーション、及び様々なネット商取引用のサーバーが全世界で設置されており、演算エネルギー消費が環境問題となっている。主要な問題の1つは、演算処理アイドリング(計算機は使用されていないが遮断されていない状態)に関する。
消費電力削減の努力、例えば米国で始まり多くの国で採用されあるレベルの省電力を達成する国際規格であるエネルギースターが存在する。x86系主流計算機業界も標準電力管理を有する。例えば、オープン業界標準であるACPI(Advanced Configuration and Power Interface)はオペレーティングシステムが計算機ハードウェアの省電力機能を直接制御するのを可能にする。
しかし、x86系主流デスクトップ及びラップトップは、内蔵された不便で限定された電力管理機能のため、大多数のユーザにとって真にグリーンな動作を実現するのがしばしば困難である。多くの計算機ユーザにとって、ACPIのスリープ/スタンバイ/ハイバネーション電力管理モードは複雑で、計算機が使用に便利で省電力であるよう最良パラメータ設定に調整する仕方を理解しづらい。一方、より高性能な演算処理、例えば複数のセッションの仮想演算処理を含む演算処理の場合、円滑な電力管理をできず、ACPIは計算機をクラッシュさせるかVMセッションを扱うのが困難であり易い。
従って、その巨大な数のためにデスクトップによる大幅なエネルギー節約の大きな余地が存在する。
x86系スマート携帯装置を実用的にするグリーンな演算処理が必要とされている。また、標準x86業界において入手可能な電力管理技術の不完全さのために、x86系スマートパーソナル装置(例えば、x86系携帯電話)はバッテリー持続時間が短く実用的でない。実際、商業上のx86系スマートフォンは存在しない。大多数のx86系ラップトップ計算機は移動中バッテリーで一生懸命に丸一日働き続けるのに問題が生じる。その結果、移動中、x86アプリケーションソフトウェアにアクセスするのが不便である。
x86ソフトウェアベースにアクセスできる非x86装置が必要とされている。ARMプロセッサは携帯のために必要な省電力アプリケーション、特にスマートフォンアプリケーションのために開発されたが、重要な計算アプリケーションのためではない。本質的に、x86ソフトウェアベースへの実際的な直接アクセスはできない。ウィンドウズ(登録商標)・ソフトウェアは日常生活及びビジネスの多くの面において依然優勢であるので、x86アプリケーションへの非x86のアクセスの困難さは不便を引き起こす。移動中か事務所にいるユーザは、ARM優勢携帯及びx86優勢ウィンドウズ・アプリケーションの両方にアクセスできるよう両方のハードウェアを手元に持つ必要がある。
混在アプリケーションへの同時の、統合された、継ぎ目のないアクセスのためのクロスOS計算機システムが必要とされている。x86ウィンドウズとARMスマートフォンとのアプリケーションの両方へのアクセスが、多くの人にとって日常より必要になるとともに、両方への同時アクセスを提供する計算機装置の必要性が現実になっている。現在のx86系アーキテクチャ(及び幾つかの非x86)は、仮想演算処理技術によりウィンドウズと非ウィンドウズとのソフトウェアアプリケーションを同じ計算機ハードウェア上で同時に実行可能である。例えば、x86計算機は、複数のオペレーティングシステムの1つをそれぞれ実行する複数のゲスト仮想計算機を支援するLinux(登録商標)、Windows(登録商標)、又は他のホストオペレーティングシステムを有してよい。しかし、非x86ゲストOSの命令セットのホストプロセッサによるエミュレーションは、処理能力を消費する。これはデスクトップにとって許容できるが、スマート携帯装置にとってバッテリー持続時間のため許容できない。
特に、携帯電話とパソコンとの機能を結合するために、Cuppsらは一連の米国特許及び特許出願においてx86系アーキテクチャとARMプロセッサ系組込みシステムとのハードウェアを結合した電子装置を開示している。例えば、特許文献1において、CuppsらはARM等の低電力システムプロセッサを本質的にx86系計算機である装置全体のコントローラとして働くよう使用する装置を開示している。
特許文献1の電子装置は、本質的にPCプロセッサを備えるx86計算機に携帯電話組込みARMプロセッサを組み込んだ電子装置である。ARMプロセッサは元のPCプロセッサと同様にx86アーキテクチャのノースブリッジとサウスブリッジに接続されている。特許文献1は、低電力ARMシステムプロセッサが電子装置のx86アーキテクチャの高性能PCプロセッサの上位のマスタープロセッサとして働くことが出来ることを開示している。
しかし、ノースブリッジの高速バス(PCI‐e)にx86アーキテクチャの表示コントローラ及びメモリサブシステムと同様にARMプロセッサを配置することで、特許文献1の電子装置は装置全体に対して限定されたマスター制御を有する。実際、装置内でのARMプロセッサのバス接続は、ARMプロセッサを電子装置全体の最高マスタープロセッサではなく、標準x86アーキテクチャにおけるバスマスターに分類する。このシステムアーキテクチャでは、PCプロセッサの下のメインx86アーキテクチャは、例えばACPIの下で完全で適切な電力管理ステータスを維持しなければならないので、ステータスの完全性を破る僅かな中断もデータ喪失を引き起こし且つ再起動が必要になる。頻繁に、特許文献1の装置内のARMプロセッサは、PCプロセッサの処理能力を必要とする重いタスクの場合、PCプロセッサメインx86システムを再起動する。
米国特許出願公開第2002/0173344号明細書
従って、演算能力を犠牲にすることなく演算消費電力を最小化しグリーンなx86コンピュータを実現する異種計算機システムのためのブリッジ論理デバイスが必要とされている。
また、演算消費電力を最小化し、1回の充電でバッテリーで1日以上動作する実用的なx86系スマート携帯装置を実現する異種計算機システムのためのブリッジ論理デバイスが必要とされている。
また、x86ソフトウェアベースにアクセスできる非x86スマート携帯装置を実現する異種計算機システムのためのブリッジ論理デバイスが必要とされている。
また、様々なOSのソフトウェアアプリケーションへの同時の、統合された、継ぎ目のないアクセスを提供するクロスOS異種計算機システムのためのブリッジ論理デバイスが必要とされている。
本発明は上記及び他の目的を達成するために、x86プロセッサとx86演算処理アーキテクチャとを有するx86コアと、x86プロセッサより低い性能を有するハイパーバイザプロセッサと、該ハイパーバイザプロセッサをx86コアにx86プロセッサのローカルバスを介して接続するブリッジ論理回路とを備え、該ハイパーバイザプロセッサは、自身が処理するのに十分な処理能力を有するソフトウェアタスクを実行し、該x86プロセッサを休止(スリープ/ハイバネーション/遮断)にし、該ハイパーバイザプロセッサはx86プロセッサを起こして自身が処理するのに不十分な処理能力を有するソフトウェアタスクを実行させる異種計算機システムを提供する。
更に本発明は上記及び他の目的を達成するために、1つ以上の高性能プロセッサと、該1つ以上の高性能プロセッサがソフトウェアのタスクを実行するのを支援するプロセッサ支援論理回路と、該1つ以上の高性能プロセッサより少ない電力を消費するハイパーバイザプロセッサとを有する異種計算機システムのためのブリッジ論理デバイスを提供する。このブリッジ論理デバイスは該1つ以上の高性能プロセッサの下の該システムのステータスを保守するハイパーバイザ動作論理回路と、該1つ以上の高性能プロセッサと該ハイパーバイザプロセッサとのプロセッサ言語間の翻訳をするプロセッサ言語翻訳論理回路と、第1、第2、及び第3ポートを有し該3つのポートのうち任意2つの間でデータを双方向に中継する高速バススイッチとを備える。該バススイッチは該1つ以上の高性能プロセッサに該第1ポートが接続され、該ハイパーバイザプロセッサに該プロセッサ言語翻訳論理回路を介して該第2ポートが接続され、該プロセッサ支援論理回路に該第3ポートが接続される。
上記及び他の目的を達成する本発明のブリッジ論理デバイスによって、前記プロセッサ支援論理回路に支援された前記ハイパーバイザプロセッサは、前記高速バススイッチが前記第2と第3ポート間を接続した状態で、自身が処理するのに十分な処理能力を有する前記ソフトウェアのタスクを前記プロセッサ言語翻訳論理回路により翻訳された固有言語を使用して実行し、前記1つ以上の高性能プロセッサを電力節約状態にする。
上記及び他の目的を達成する本発明のブリッジ論理デバイスによって、前記保守されるシステムステータスを使用して前記ハイパーバイザプロセッサは、前記高速バススイッチが前記第1と第3ポート間を接続した状態で、前記1つ以上の高性能プロセッサを前記電力節約状態から抜け出させて、自身が処理するのに不十分な処理能力を有する前記ソフトウェアのタスクを実行させる。
上記及び他の目的を達成する本発明の別のブリッジ論理デバイスによって、前記1つ以上の高性能プロセッサと前記ハイパーバイザプロセッサとが、前記高速バススイッチが前記第1、第2、及び第3ポート間を対応して接続しながら、全てのプロセッサの結合された処理能力を必要とする前記ソフトウェアのタスクを同時に実行する。
標準x86アーキテクチャにブリッジ回路チップを介して付加されたハイパーバイザプロセッサを有する本発明の異種計算機システムの実施形態のブロック図を概略的に示す。 本発明の異種計算機システムの別の実施形態、標準x86アーキテクチャに付加されるハイパーバイザプロセッサコア及びその必要なブリッジ論理回路が同じ半導体チップ上に作られた実施形態のブロック図を概略的に示す。 本発明の異種計算機システムの更に別の実施形態、標準x86コンピュータボードのCPUソケットに直接差し込まれる多コアx86プロセッサの同じ半導体上に作られたハイパーバイザプロセッサコア及び必要なブリッジ論理回路を有する実施形態のブロック図を概略的に示す。 本発明の異種計算機システムの別の実施形態、標準x86コンピュータボードのCPUソケットに直接差し込まれる多コアx86プロセッサの同じ半導体上でハイパーバイザプロセッサとして働く低電力x86コアを有する実施形態のブロック図を概略的に示す。 本発明の計算機システムの別の実施形態、x86系スマート携帯装置のブロック図を概略的に示す。 本発明の計算機システムの別の実施形態、x86系スマート携帯装置のブロック図を概略的に示す。 本発明の異種計算機システムの構成のために使用されるブリッジの概念を概略的に示す。 本異種計算機システムにおけるハイパーバイザプロセッサとx86アーキテクチャの主プロセッサとのブリッジ論理回路によるx86チップセットの前側バスへの接続を概略的に示す。 本発明の好適な実施形態に係るブリッジ論理回路の基本機能要素を概略的に示す。 図9のブリッジ論理回路の論理回路要素をより詳細に概略的に示す。 本発明の好適な実施形態に係る異種計算機システムの回路ブロック図を概略的に示す。 本発明の好適な実施形態に係るブリッジ論理回路内の論理回路要素を概略的に示す。 図8〜図12の異種計算機システムの動作モードを示す。 図8〜図12の異種計算機システムの動作モードを示す。 図8〜図12の異種計算機システムの動作モードを示す。 本異種計算機システムを起動するための制御アルゴリズムを示す。 本異種計算機システムを起動するための制御アルゴリズムを示す。 本異種計算機システムを起動するための制御アルゴリズムを示す。 本異種計算機システムを起動するための制御アルゴリズムを示す。 継ぎ目のないクロスOSソフトウェアアプリケーションのために本異種計算機システムを動作させるスーパーOSを概略的に示す。 図8〜図12に示した異種計算機システムの継ぎ目のないクロスOSソフトウェアアプリケーションを支援する動作モードを示す。 図8〜図12に示した異種計算機システムの継ぎ目のないクロスOSソフトウェアアプリケーションを支援する動作モードを示す。 図8〜図12に示した異種計算機システムの継ぎ目のないクロスOSソフトウェアアプリケーションを支援する動作モードを示す。 図8〜図12に示した異種計算機システムの継ぎ目のないクロスOSソフトウェアアプリケーションを支援する動作モードを示す。
本発明の独創的な計算機システムは深くグリーンな演算処理を提供する異種プロセッサシステムに基づいている。低電力マスター「ハイパーバイザ」プロセッサを主流標準x86アーキテクチャにブリッジ論理回路を介して加えて、グリーンで高性能な演算処理のための高性能で省エネルギーの異種計算機システムを構成する。
この独創的な計算機システムはx86演算処理における消費電力を可能な限り削減して、(1)x86優勢主流演算処理全体が大幅な炭素排出削減に貢献でき、(2)膨大なx86ソフトウェアベースが真に実際上、携帯での使用のために携帯ユーザからアクセス可能となるようにする。この独創的な異種計算機システムはクロスOS演算処理も実現して、異なるOSからソフトウェアアプリケーションへの同時の、統合された、継ぎ目のないアクセスを可能にする。
言い換えると、本発明の異種計算機システムは、これらの課題に対処し2つ以上の主な目的を達成する。第1に、この計算機システムは携帯スマート装置への解決策、具体的には新タイプのスマートフォンを提供する。このスマートフォンは膨大な既存のx86アプリケーションソフトウェアベースへのアクセスが可能であり、同時に十分に省電力で丸一日以上バッテリーで動作できる。多くの商用旅行者にとって、このような携帯装置は重いスマートフォンとラップトップとのペアを置き換えるであろう。
第2に、より重要であるが、本計算機システムはデスクトップ、ワークステーション、及びサーバーを含む主流計算機において深くグリーンな演算処理を実現できる。世界中の各計算機が寄与する省電力は集まると消費電力の巨大な削減になる。
一方、これらの目的を達成すると同時に、本発明の異種計算機システムは、同じハードウェアを使用する異なるOSからソフトウェアアプリケーションへの同時の、統合された、継ぎ目のないアクセスを可能にする。
なお、本明細書において用語「x86アプリケーション」は、x86ハードウェアアーキテクチャで使用可能な様々なOSの下で実行可能な広義の意味のx86ソフトウェアアプリケーション全てを指す。従って、この用語は現在x86アーキテクチャでサポートされているWindows、Linux、Mac OS、Solaris等のOS用に書かれた全てのソフトウェアアプリケーションを意味する。
また、演算処理における「ハイパーバイザ」は通常、仮想マシンモニター(VMM)(ハードウェアよりもソフトウェア技術である)を意味する。しかし、本明細書においてこの用語は、本発明の非対称異種プロセッサシステムにおけるマスタープロセッサ、即ち低電力ARMを指すのにも使用される。マスタープロセッサは、システムの高性能であるが高電力消費の構成要素であるx86プロセッサ(基本的にマスターARMの下のスレーブプロセッサ)を監督する。この用語は、マスタープロセッサは実際本発明のソフトウェアシステムに必然的に組み込まれた仮想マシンを監視し制御するので選択されている。
ARMマスタープロセッサは、概念的に本発明の異種計算機システムの主ハードウェアであるx86ハードウェアを監督するx86プロセッサより1レベル高いので、そう呼ばれる。これは、マスターARMはそのスレーブx86(主x86ハードウェアを監督する)を「ハイパーバイズ」する事を意味する。
また、用語「高性能プロセッサ」は標準x86アーキテクチャ内の主x86プロセッサを指すために使用される。こう呼ばれるのは本異種計算機システムにおけるx86プロセッサは大量の数字を処理するジョブを担当する事実を反映する。
計算機が処理能力を犠牲にすることなく電力消費を最小化できるための解決策を見つけ出すことは、勿論既知の技術課題であり、既知の方策がある。携帯演算処理(ラップトップ、タッチスクリーンコンピュータ、スマートフォン等)では、出来るだけ長く動作を続ける(移動中、一日以上働き続ける)ために電力管理にうまく対処しなければならない。主流デスクトップコンピュータは、多量に世界中に設置されているので電力管理は重要であり、乗用車のMPG(燃費)性能に匹敵する世界的な環境問題である。
しかし、従来の電力管理はx86アーキテクチャを実際の移動時アプリケーションのために十分に省電力で動かせるという目標を達成できない。これは今日のx86の限界であり、x86はそのようには設計されていない。
解決策は異種プロセッサという概念に存在する。このような異種計算機システムが商業上成功するためには、計算機システムは出来る限り既存の業界標準と互換性がなければならない。非常に大きな勢力を有するWintelを変える事を考えるのは実際的でない。異種計算機システムという解決策は既存物と適合し、その逆であってはならない。これはハードウェアとソフトウェアの両方において調整は出来る限り僅かでなければならない事を意味する。
A:ブリッジ論理回路を含む異種計算機システム
システムハードウェア・アーキテクチャの観点から、本発明の異種計算機システムは、標準x86アーキテクチャのローカル(前側)バスに存在するハイパーバイザプロセッサを有する。図1〜図4を参照。これは上記した特許文献1の電子装置(システムプロセッサをシステムバスを介してx86アーキテクチャのノースブリッジに接続する)とは基本的に異なる。
図1は標準x86アーキテクチャにブリッジ回路チップを介して付加されたハイパーバイザプロセッサを有する本発明の異種計算機システムの実施形態のブロック図を概略的に示す。本発明の好適な実施形態において、異種計算機システム100は、x86CPU120と支援x86チップセット162とを含む完全なx86コンピュータを自身だけで構成する標準x86アーキテクチャ160を有する。
ハイパーバイザプロセッサ110が標準x86アーキテクチャ160にブリッジチップ140を介して付加されている。ブリッジチップ140はx86アーキテクチャ160にx86CPUの前側バス(FSB)134を介して挿入されるハイパーバイザプロセッサ110、即ちARM、又は低電力x86プロセッサ(例えば、386又は286でも)のためのデジタル電子回路を含む。
図7は本発明の異種計算機システムの構成のために使用されるこの概念のブリッジを概略的に示す。ブリッジ論理回路は、例えば図1のシステムにおいてハイパーバイザARMプロセッサ110を既存のx86系計算機システム160に接続するブリッジ素子(論理回路)を意味する。本発明の記載中、図7に概略的に示したブリッジ素子407は3方向データスイッチ408として機能する。言い換えると、データスイッチ408は多方向スイッチ、即ち3つのうちいずれかから残りの2つのどれかにデータを通過させる3方向T又はYスイッチ素子である。ブリッジ論理回路がハイパーバイザプロセッサをx86アーキテクチャに挿入する方法の詳細を下記に説明する。
図2は本発明の異種計算機システムの別の実施形態、標準x86アーキテクチャに付加されるハイパーバイザプロセッサコア及びその必要なブリッジ論理回路が同じ半導体チップ上に作られた実施形態のブロック図を概略的に示す。本実施形態において、異種計算機システム200は、x86CPU220と支援x86チップセット262とを含む完全なx86コンピュータを自身だけで構成する標準x86アーキテクチャ260を有する。
ARM又はx86コアの形態のハイパーバイザプロセッサ210を標準x86アーキテクチャ260にブリッジ論理回路240を介して付加されている。ブリッジ論理回路240はx86アーキテクチャ260にx86CPUの前側バス(FSB)234を介して挿入されるハイパーバイザプロセッサ210のためのデジタル電子回路を含む。本実施形態ではハイパーバイザプロセッサ210及び必要なブリッジ論理回路240は同じ半導体集積チップ、ハイパーバイザチップ242上に作られている。
図3は本発明の異種計算機システムの更に別の実施形態のブロック図を概略的に示す。このシステムは標準x86コンピュータボードのCPUソケットに直接差し込まれる多コアx86プロセッサの同じ半導体上に作られたハイパーバイザプロセッサコア及び必要なブリッジ論理回路を有する。
本実施形態では、異種計算機システム300はそれ自身、標準x86アーキテクチャであり、x86CPU344と支援x86チップセット362とを含む完全なx86コンピュータを自身だけで構成する。x86CPU344は従来のものの改良型であり、同じ半導体ダイ上のx86高性能プロセッサ、例えば最新多コアx86プロセッサ320と、ハイパーバイザARM又は低性能x86コア310と、ハイパーバイザと高性能コアとを前側バス334を介して橋渡しするブリッジ論理回路340とから基本的に構成されている。
図4は本発明の異種計算機システムの別の実施形態、標準x86コンピュータボードのCPUソケットに直接差し込まれる多コアx86プロセッサの同じ半導体上でハイパーバイザプロセッサとして働く低電力x86コアを有する実施形態のブロック図を概略的に示す。
本実施形態では、異種計算機システム400はそれ自身、標準x86アーキテクチャであり、x86CPU446と支援x86チップセット462とを含む完全なx86コンピュータを構成する。x86CPU446は従来のものの別の改良型であり、同じ半導体ダイ上のx86高性能プロセッサコア421、422と、ハイパーバイザ低電力x86コア410とから基本的に構成されている。ハイパーバイザコア410が高性能コア421、422の縮小された命令セットを実行し同じ内部バスを共有するので、ブリッジ論理回路は必要ない。ハイパーバイザを備える高性能プロセッサ446は標準x86コンピュータボードと同様、標準FSB434を介してx86チップセット462に接続されている。
図1〜図4に示すように、本発明の異種計算機システムを構成する概念は、低電力マスター、現在最も適切そうな、ARMをx86コンピュータに付加することである。この概念は、低電力ハイパーバイザプロセッサを高電力消費で主力のx86をハイパーバイズするよう常時起こしておくことである。この概念では、x86はARMハイパーバイザプロセッサの下の純粋なスレーブであり、エネルギーを節約するために深い休止状態にされ、相対的に低性能プロセッサがシステムに割り当てられたタスクを処理できないか、不十分な時だけ活動させられる。
異種計算機システムの使用の主目的に依り、x86システムは、例えば、CAD/CAMワークステーション用の最新のインテル第2世代Core(登録商標)技術プロセッサ系高性能システムであってもよい。または、選択されたx86は、頻繁に出張する人用のスマートフォン・ラップトップのペアを置き換える目的の携帯装置用のAtom(登録商標)系低電力システムであってもよい。
既存のx86アーキテクチャを使用して、このような異種計算機システムハードウェアは容易に構成できる。商業用途の場合、図1〜図4に示す下記の解決策は、計算機業界サプライチェーンに沿って様々な計算機ハードウェア製造業者に適切である。
図1及び図2の計算機システムアーキテクチャは、現在の計算機マザーボード及びシステムメーカにビジネスとなる。彼らはARMプロセッサとブリッジチップを調達して製品を製造することが出来る。しかし、図3のアーキテクチャは、現在のx86及び互換プロセッサメーカのどれもがこの技術を採用し彼らのプロセッサ半導体チップに調整を加えて彼らのバージョンの異種計算機システムCPUを作るか否かに依存する。
これはビジネスの観点から可能である。現在のどのCPUメーカにとっても、この概念は既存の多コア製品への半導体変更をほとんど含まないが、この新しい概念のCPUによりコンピュータの性能に大きなインパクト(グリーン演算処理)がある可能性がある。図4は主流デスクトップ/ワークステーション演算処理に最も適切なこのようなアーキテクチャのイメージを示す。
図5及び図6は本発明の計算機システムの別の実施形態、x86系スマート携帯装置のブロック図を概略的に示す。このようなx86スマート装置は携帯電話とx86系コンピュータの両方の機能を有し、携帯電話とラップトップ計算機との商用旅行者にとって必須のペアを置き換えることが出来る。
本実施形態では、図1の例と同様に、異種計算機システムのスマートフォン+ラップトップバージョン500は、x86CPU520と支援x86チップセット562とを含む完全なx86コンピュータを自身だけで構成するx86アーキテクチャ560を有する。携帯電話機能を提供するために、携帯電話通信ユニット570がx86アーキテクチャの一部として含まれてよい。
ハイパーバイザプロセッサ510は、x86アーキテクチャ560にx86CPUの前側バス(FSB)534を介して挿入されるハイパーバイザプロセッサ510、即ちARMのためのデジタル電子回路を含むブリッジチップ540を介してx86アーキテクチャ560に接続されている。
図5に閉じた破線で示したように、x86スマート携帯装置500が携帯電話機能を働かせる時、x86CPU520と主x86チップセット562とを含むx86コア560全体を、ハイパーバイザARMプロセッサ510の下で動作する携帯電話通信ユニット570を除いて休止させることが出来る。
一方、装置500がその携帯コンピュータを動作させ、例えば図6に示したようにウィンドウズ・アプリケーションを実行させる時、装置500の携帯電話通信ユニット570を除く全構成要素は活性化される。例えば、ネット決済アプリケーションはARMの監督の下のx86システムにより実行されうる。低電力ARMは常時監視を行い、バッテリーエネルギーの節約のために装置のx86部分を休止させうる時を決定する。
グリーン演算処理を実現して図1〜図4に示した異種計算機システムのデスクトップ実施形態がエネルギーを節約でき、図5及び図6に示したx86スマート携帯装置がバッテリーエネルギーを少しずつ消費して移動中、丸一日働き続け、両方が同時の、統合された、継ぎ目のない混合OSソフトウェアアプリケーション群を有するために、上記ハードウェアは対応するシステムソフトウェアを有し上記の全てを実現する必要がある。このようなソフトウェアシステムを下記に詳細に説明する。
B:異種計算機システムのためのブリッジ論理回路
図8は本異種計算機システムにおけるハイパーバイザプロセッサ610と主x86プロセッサ620とのブリッジ論理回路6400によるx86チップセット662の前側バス(FSB)への接続を概略的に示す。本発明の異種計算機システムの基本概念は監督マイクロプロセッサ、即ちハイパーバイザプロセッサを高能力のマイクロプロセッサ、即ちx86プロセッサを既に有する高性能コンピュータに導入することである。この概念はハイパーバイザプロセッサは出来るだけ少ない電力を消費して、本異種計算機システムの電源がONの間、常時活性であり高性能x86サブシステムの計算処理を管理する。この異種計算機システムでは、ハイパーバイザプロセッサが割り当てられた演算タスクが低電力ハイパーバイザプロセッサの能力を超えていると判断した時だけ、高性能x86サブシステムを休止から抜け出させて働かせる。
そうするために、図1〜図4の実施形態で説明し、図8でより詳細に示すように、ブリッジ論理回路6400は、x86高性能プロセッサ620と標準x86コンピュータの前側バス上のx86チップセット662との間に存在する。標準x86コンピュータ内の前側バスを介するx86プロセッサのx86チップセットのノースブリッジへの直接接続は、ブリッジ論理回路6400により遮られる。x86プロセッサ620とノースブリッジ6624との間の元のFSB接続は、なお存在するが、ブリッジ論理回路6400の制御の下で2つの部分、x86プロセッサ側のFSB6452とチップセット側のFSB634に分割されている。一方、同様にブリッジ論理回路6400は付加されたハイパーバイザプロセッサ610とx86チップセット662のノースブリッジ6624に接続されたFSB634との間に存在する。
ブリッジ論理回路6400はハイパーバイザ動作論理回路6410、プロセッサ命令セット/計算機コマンド翻訳論理回路又はプロセッサ言語翻訳論理回路6430、及び高速バススイッチ6407を含む。バススイッチ6407はx86プロセッサFSBに適合した切替え速度を有する。図7に示すように、バススイッチ6407は3方向スイッチであるのが好ましく、うち1つのポート(図ではA)はx86プロセッサ620のFSB6452に直接接続されている。バススイッチ6407の第2ポート(B)はプロセッサ言語翻訳論理回路6430を介してハイパーバイザプロセッサ610のプロセッサバス6454に接続されている。バススイッチ6407の第3ポート(C)はチップセット662のノースブリッジのFSB634に直接接続されている。
高速バススイッチ6407によるこのような接続はx86高性能プロセッサ620と低電力ハイパーバイザプロセッサ610の両方がx86アーキテクチャのノースブリッジ6624にFSB634を介してアクセスするのを可能にする。バススイッチ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はハイパーバイザプロセッサ610個有コマンドを高性能x86プロセッサ620の等価なコマンド(高性能プロセッサ620個有命令)に翻訳又は変換する。
本質的に、プロセッサ言語翻訳論理回路6430はx86プロセッサ言語(命令)とハイパーバイザ(例えばARM)プロセッサ言語(命令)との間の翻訳を行うことで、ハイパーバイザ610が計算機システムにおけるx86の活動を理解し完全に監視し、x86プロセッサ620はハイパーバイザ610から命令を受け取れる。また、翻訳論理回路6430は高速x86FSB634と低電力ハイパーバイザプロセッサ610の比較的低速のバス、例えばARM装置が通常採用するAMBA(Advanced Microcontroller Bus Architecture)バスとの間のデータ交換を同期させる。
言い換えると、通常、より低い性能のハイパーバイザプロセッサの高性能x86アーキテクチャへのアクセスを可能にするために、ブリッジ論理回路6400は(1)プロセッサ言語と(2)バス通信電気信号との翻訳をするよう構成されなければならない。図9及び図10の例におけるようにバスラッパー6414はバスプロトコル変換を担当し、データバス幅、アドレスバス長、及びバス信号電気レベル、タイミング等の変換を実行する。
図8に示した好適な実施形態では、全てのこのような変換をハイパーバイザ動作論理回路6410と一緒に実行できる。ハイパーバイザ動作論理回路6410はx86プロセッサの全活動を監視し、x86プロセッサが目覚めた後、動作を継ぎ目なく引き継げるようシステムステータスのコピーを維持する。ハイパーバイザ動作論理回路6410も、x86プロセッサ620が休止にされARMが仮想マシン、実行時コマンド/命令翻訳等の技術によりx86コードを実行する時、ARMコマンドをx86コマンドに翻訳できてもよい。
なお、ブリッジ論理回路6400は低電力ハイパーバイザプロセッサ(ARM)により動作させられる受動デジタル論理回路か又はマイクロプロセッサベース能動論理回路であってよい。また、高性能x86プロセッサはインテル、AMD、又はCyrixプロセッサであってよく、低電力ハイパーバイザプロセッサはARM、MIPS、又は縮小x86コアであってよい。
まとめると、ブリッジ論理回路スイッチ6407、及び論理回路6410、6430は一緒に働いてブリッジ機能を提供し、x86プロセッサ620はハイパーバイザプロセッサ610の制御の下でx86アーキテクチャ662に直接アクセスして本異種計算機システムに割り当てられた高性能タスクを実行する。一方、x86プロセッサ620が必要とされていない時、ハイパーバイザプロセッサ610はx86アーキテクチャ662に間接アクセスしてもよい。
なお、本明細書中、本異種計算機システムのハイパーバイザ又は高性能プロセッサの、例えば「マイクロプロセッサ命令セット」における用語「命令セット」は、コンピュータアーキテクチャのプログラミングに関する部分であって、固有データタイプ、命令、レジスタ、アドレッシングモード、メモリアーキテクチャ、割込み・例外処理、及び外部I/Oを含む部分を意味する。また、本明細書中、本異種計算機システムのハイパーバイザ又は高性能プロセッサの、例えば「計算機コマンド」における用語「コマンド」は、計算機システムが実行できる演算処理を表す人工言語を意味する。
図9は本発明の好適な実施形態に係るブリッジ論理回路の基本機能要素を概略的に示す。ブリッジ論理回路6400のプロセッサ命令セット翻訳論理回路6430の機能は周辺装置ステータス保守部6436、周辺装置ステータステーブル6432、及び周辺装置IRQ制御部6434により提供される。これは本異種計算機システムに取り付けられた周辺装置のステータスの記録を常に保持する。
一方、ブリッジ論理回路6400のハイパーバイザ動作論理回路6410の機能はFSBコマンドハンドラー6412とバスラッパー6414とにより提供される。基本的にFSBコマンドハンドラー6412は高性能プロセッサ620により実行される計算機コマンドを監視して、上述のように周辺装置ステータスセットを維持して本異種計算機システムの周辺装置(通常、x86チップセット662のサウスブリッジに取り付けられる)の記録を保持することで、高性能x86プロセッサが休止している時、目覚めた後、正しいステータスを引き継ぐことが出来る。
一方、高性能x86プロセッサ620が休止している時、ハイパーバイザプロセッサ610はFSBコマンドハンドラー6412とバスラッパー6414とによりそのコマンドをx86コマンドに翻訳してx86チップセットにアクセスする。基本的に、バスラッパー6414は非x86ハイパーバイザプロセッサ610が固有x86コマンドを「話す」よう通訳の役割をする。これはハイパーバイザプロセッサ610がx86アーキテクチャ資源に直接アクセスするのを、高性能プロセッサ620が休止しているか否かにかかわらず可能にする。
図11は本発明の好適な実施形態に係る異種計算機システムの回路ブロック図を概略的に示す。この実施形態では、ブリッジ論理回路7400は僅かに異なる論理回路構成を有する。バススイッチ7407は4方向スイッチであり、ハイパーバイザプロセッサ710と高性能x86プロセッサの両方のx86アーキテクチャへの直接アクセスをなお提供する。しかし、コマンド翻訳論理回路としてのコマンドハンドラー7412とハイパーバイザ動作論理回路としての周辺装置ステータスマップ部7438はバススイッチ7407の第4ポートに接続されている。この例ではコマンドハンドラー7412は下記のタスクを担当する。
1.コマンド待ち行列管理とコマンド解析
2.x86コマンドの対応するARMコマンドへの翻訳
3.ARMコマンドの対応するx86コマンドへの翻訳
4.x86ステータス保守
5.周辺装置への直接又は間接アクセス
周辺装置ステータスマップ部7438は下記のタスクを担当する。
1.ARMプロセッサのための周辺装置マッピング
2.周辺装置ステータスの保守
バススイッチ7407は下記のタスクを担当する。
1.高速FSB(インテル、AMD、又はVia−Cyrix高性能プロセッサの)と比較的低速AMBAバス(ARMの)間のブリッジ
2.x86アーキテクチャへのx86直接又は間接アクセスのためのブリッジ
高性能x86プロセッサは自身の作業RAM724を有してもよく、ハイパーバイザプロセッサ710は組込みプロセッサ712であり、自身の作業RAM714と内蔵ブートローダー716とを有してもよい。
図12は本発明の好適な実施形態に係るブリッジ論理回路内の論理回路要素を概略的に示す。ブリッジ論理回路7400がx86チップセット及びシステムの2つのプロセッサと協働していることが示されている。ブリッジ論理回路7400は、x86コードを低電力ARMハイパーバイザのコードに翻訳及びその逆の翻訳をする図11と同じコマンドハンドラー7412を含む。コマンドハンドラー7412はARM制御下のダム論理回路かプロセッサベースコマンドハンドラーであってよい。
図12の実施形態の周辺装置ステータス保守部7436は図11の周辺装置ステータスマップ部7438と僅かに異なる。自身のメモリ及び/又はレジスタを有し、周辺装置ステータス保守部7436はARMハイパーバイザがx86メインシステムの正確なステータスを完全に把握するのを可能にする同期部である。ステータス保守により(1)ARMがいつでも正しいシステムステータスを持ってx86のタスクを引き継ぐ(例えば、仮想演算処理技術により)ことが出来る(2)休止(スタンバイ/スリープ/ハイバネーション)から戻った時、x86プロセッサは正しいステータスを持ってARMのタスクを引き継ぐことが出来る(例えば、ARMがタスクに対して能力不足である場合)。周辺装置ステータス保守部7436はARM制御下で動作するダム論理回路かプロセッサベース保守部であってよい。
図10は図9のブリッジ論理回路の論理回路要素の別の例をより詳細に概略的に示す。
図8〜図12を用いて上記で説明した異種計算機システムの全実施形態は、図13〜図15に示す3つのモードの1つで動作する。図13に示す第1モードは従来のデスクトップコンピュータの動作とかなり類似する。高性能x86プロセッサ620に複雑で処理能力が必要なCAD又は迫真のゲームジョブ(x86プロセッサ620はフル動作する)が割り当てられる場合がある。一方、ハイパーバイザプロセッサ610も活性で、計算機システムステータスを監視し保守して高性能x86プロセッサをいつでも休止させられるようにする。
図において、FSBに沿いプロセッサ620とx86チップセット662とを指す2つ矢先の矢印は、プロセッサ620はx86システムへの通常のアクセスをすることを示す。一方、FSBに沿いハイパーバイザプロセッサ610とx86チップセット662とを指す2つ矢先の点線矢印は、ハイパーバイザ610は全システムの監視を継続していることを示す。
図14に示す異種計算機システム動作モード2は、例えば内蔵ハイパーバイザARMプロセッサにより携帯アプリケーションを実行可能なx86ベーススマート携帯装置の場合を示す。スマート携帯装置がARMを使用して携帯コールする時、高性能x86プロセッサを休止にできる(幻のプロセッサ620で表わす)。
図15に示す異種計算機システム動作モード3は、例えば移動時、ARMを使用して携帯コールすると同時にActive−Xを必要とする遠隔決済ウィンドウズ・アプリケーションを実行するx86ベーススマート携帯装置の場合を示す。この場合、ハイパーバイザプロセッサ610は活性で、軽い通信タスクを実行しながら、同時にシステムステータスを監視し保守する。一方、高性能x86プロセッサ620も活性で、割り当てられた遠隔決済タスクを実行する。ARMアプリケーションとx86アプリケーションがそれぞれ、例えばAndroidとWindows OSの下で同じ異種計算機システム表示画面上で同時に実行され、互いにデータを交換することも出来る(同じハードウェア上に統合され継ぎ目なく同時に実行される混合OSソフトウェアアプリケーションのシナリオ、下記で説明する)。
C:本異種計算機システムのための起動アルゴリズム
図16〜図19は本異種計算機システムを起動するための制御アルゴリズムを示す。電源切断状態から本計算機システムを起動する4つのルートが可能である。
モードA:低電力ハイパーバイザプロセッサシステムだけが起動される。
モードB:ハイパーバイザプロセッサシステムが活性化された後、高性能x86プロセッサが起動する。
モードC:高性能x86プロセッサシステムだけが起動される。
モードD:高性能x86システムが活性化された後、ハイパーバイザプロセッサシステムが起動する。
モードA:
ハイパーバイザプロセッサだけを起動するシーケンスを図16に示す。
ステップ1:
1a:第1に周辺装置ステータス保守部(PSM)がBIOSをアクセスする。
1b:次に周辺装置リスト及びマップテーブルがシステムBIOS情報に基づいて更新される。
1c:次に低電力ハイパーバイザが起動し、内部バス上の周辺装置を起動し、周辺装置割込みサービスを開始する。
ステップ2:
2a:第1にPSMがIRQを低電力ハイパーバイザプロセッサへ送信する。
2b:次に低電力ハイパーバイザプロセッサは周辺装置保守サービスを開始する。
ステップ3:
3a:低電力ハイパーバイザプロセッサは本システムに接続された全周辺装置を起動する。
モードB:
ハイパーバイザプロセッサシステムが活性化された後、高性能x86プロセッサが起動するシーケンスを図17に示す。
ステップ1:
1a:低電力ハイパーバイザが起動信号をFSBコマンドハンドラーに送信する。
1b:FSBコマンドハンドラーはリセット命令を高性能x86に送信する。
ステップ2:
2a:FSBコマンドハンドラーはPSMに必要なシステム情報を要求する(PSMはx86プロセッサにとってBIOS)。
2b:FSBコマンドハンドラーは必要な情報を高性能x86プロセッサの起動中に高性能x86プロセッサに提供する。
ステップ3‐1:間接アクセス
3‐1a:高性能x86は間接アクセスのためのFSBコマンドを送信する。
3‐1b:低電力ハイパーバイザプロセッサはプロクシとして働き、高速x86間接アクセスコマンドを実行する。
ステップ3‐2:直接アクセス
3‐2a:高性能x86は直接アクセスのためのFSBコマンドを送信する。
3‐2b:PSMは直接アクセスを監視する。
モードC:
高性能x86プロセッサだけを起動するシーケンスを図18に示す。これは本異種計算機システムが高性能x86だけを起動させる場合、起動のデフォルトモードであり、ファームウェア制御なしで純粋なハードウェアで実現できる。
ステップ1:
1a:高速データスイッチはモードをリセットしバイパス混成ブリッジサブシステムとして働く(これは本異種システムが高性能x86だけを起動させる場合のデフォルトモードであり、ファームウェア制御なしで純粋なハードウェアで実現できる)。
ステップ2:
2a:高性能x86は通常どおり起動する。
モードD:
高性能x86システムが活性化された後、ハイパーバイザプロセッサシステムが起動するシーケンスを図19に示す。
ステップ1:
1a:PSMはBIOSと情報を同期する。
1b:PSMは周辺装置リスト及びマップテーブルを更新する。
ステップ2:
2a:低電力ハイパーバイザが起動し、内部バスに接続された周辺装置を起動し、割込みサービスを開始する。
ステップ3:
3a:PSMがIRQを低電力ハイパーバイザへ送信する。
3b:低電力ハイパーバイザは周辺装置保守サービスを開始する。
ステップ4:
4a:低電力ハイパーバイザはブリッジ論理回路に通知し、システムサービスを引き継ぐよう要求する。
D:本異種計算機システムのためのスーパーオペレーティングシステム
ソフトウェアの観点から、本発明の異種計算機システムの実施形態は、x86‐OS(例えばWindows又はLinux)とARM‐OS(例えばAndroid)の両方の元のバージョンをソフトウェアシステム内の異種ハイパーバイザ層上で実行する。この異種ハイパーバイザ層の機能は、本計算機システムのハードウェア上の2つの活性なOSの共存を可能にし、両方のアプリケーションの同時実行のために2つのOS間の継ぎ目のない通信を可能にする事である。
これを実現するために、x86‐ARM上で動く一般的なOSのための異種ハイパーバイザ層ソフトウェアの試験的なバージョンが作成されて試験に成功した。x86用Windows及びARM用Androidのためのハイパーバイザ層のバージョンが試験された。これらの試験的な異種ハイパーバイザ層ソフトウェアの改訂バージョン、即ちスーパーOSは異種計算機システムハードウェアのARMとx86プロセッサを並列に動作させることができ、2つの異なるOSのソフトウェアアプリケーションを支援する。
従って、本発明の異種計算機システム上で、2つの異なるOSが起動され、同時に動作し、それぞれ自身のアプリケーションを支援できる。1つのOSのアプリケーションを他のOS上で実行でき、異なるOSの2つのアプリケーションが互いに継ぎ目なく直接対話できる。
図20は本発明の異種計算機システムのためのスーパーOSを概略的に示す。このようなスーパーOSは従来のOS、例えばWindows、Linux、Solaris、スマート携帯装置用のAndroidなどを自身の下にサブOSとして配置する。これらの従来のOSはスーパーOSの下で動作する場合、変更される必要がない。これらのOSにとって、これらが実行される異種計算機システムハードウェアは、これらが通常実行される従来のx86ハードウェアと全く変わらない。スーパーOSが本異種計算機システム上で起動した後、2つの異なるOSが同じハードウェア上で同時に活性であり、両方のOSのソフトウェアアプリケーションを継ぎ目なく同時に支援することが出来、両者間のデータ交換を可能にする。
スーパーOSの構成のために、異種ハイパーバイザ層が作成され、OSとハードウェア層の間に挿入され、その2つを繋ぐ。本異種計算機システム技術のこのソフトウェアアーキテクチャにより、継ぎ目のないクロスOSソフトウェアアプリケーションが可能である。例えば、ウィンドウズ・ワードはx86ハードウェア上のWindowsOS上で直接動作できる。また、ARMプロセッサは異種ハイパーバイザ層を介する仮想演算処理によりワードを実行できる。これを実現するために、既存のソフトウェア技術、例えばオープンソース仮想演算処理技術を完全に利用する。
図21〜図24は図8〜図12に示した異種計算機システムの継ぎ目のないクロスOSソフトウェアアプリケーションを支援する動作モードを示す。図20のスーパーOSが立ち上げる自身の4つのモードは下記を含む。
モードA:低電力ハイパーバイザプロセッサシステムだけが起動される。
モードB:ハイパーバイザプロセッサシステムが活性化された後、高性能x86プロセッサが起動する。
モードC:高性能x86プロセッサシステムだけが起動される。
モードD:高性能x86システムが活性化された後、ハイパーバイザプロセッサシステムが起動する。
ハイパーバイザプロセッサOSだけを起動するシーケンスを図21に示す。このモードはハイパーバイザプロセッサだけ用のソフトウェアアプリケーションを動作させる。起動手順は本異種計算機システムを準備してソフトウェアアプリケーション、例えばAndroid又はLinuxを実行できるようにする。起動シーケンスは下記を含む。
1.ハイパーバイザプロセッサ(ARM)を電源投入する。
2.ブリッジは自身に直接接続された全周辺装置、例えば作業RAM(x86チップセットのサウスブリッジに通常接続されるコンピュータ周辺装置と区別される)を初期化する。
3.ハイパーバイザプロセッサ(ARM)がブートローダーをロードする。
4.ブートローダーが異種ハイパーバイザ層パートAをロードする。
5.異種ハイパーバイザ層パートAがOS1をロードする。
ハイパーバイザプロセッサOSが活性化された後、高性能x86プロセッサOSを起動するシーケンスを図22に示す。このモードはハイパーバイザプロセッサOS及び高性能x86プロセッサOS用のソフトウェアアプリケーションを動作させる。起動手順は本異種計算機システムを準備して同時で継ぎ目のないクロスOSソフトウェアアプリケーションを可能にする。起動シーケンスは下記を含む。
1.ハイパーバイザプロセッサを電源投入する。
2.ブリッジは自身に直接接続された全周辺装置を起動する。
3.ハイパーバイザプロセッサがブートローダーをロードする。
4.ブートローダーが異種ハイパーバイザ層パートAをロードする。
5.異種ハイパーバイザ層パートAがOS1をロードする。
6.異種ハイパーバイザ層パートAが高速x86を電源投入する。
7.高速x86が異種ハイパーバイザ層パートBをロードする。
8.異種ハイパーバイザ層パートBがOS2をロードする。
高性能x86プロセッサOSだけを起動するシーケンスを図23に示す。起動シーケンスは下記を含む。
1.高性能x86を電源投入する。
2.ブリッジがバイパス混成ブリッジサブシステムとして働く。
3.高性能x86がBIOS、EFI、又はUEFIをロードする。
4.高性能x86が異種ハイパーバイザ層パートBをロードする。
5.異種ハイパーバイザ層パートBがOS2をロードする。
高性能x86プロセッサOSが活性化された後、ハイパーバイザプロセッサOSを起動するシーケンスを図24に示す。このモードはハイパーバイザプロセッサOS及び高性能x86プロセッサOS用のソフトウェアアプリケーションを動作させる。起動手順は本異種計算機システムを準備して同時で継ぎ目のないクロスOSソフトウェアアプリケーションを可能にする。起動シーケンスは下記を含む。
1.高性能x86を電源投入する。
2.ブリッジがバイパス混成ブリッジサブシステムとして働く。
3.高性能x86がBIOS又はEFI又はUEFIをロードする。
4.高性能x86が異種ハイパーバイザ層パートBをロードする。
5.異種ハイパーバイザ層パートBがOS2をロードする。
6.ブリッジ(PSM)はBIOSと同期し自身に接続されたx86チップセットを除く全周辺装置を起動する。
7.異種ハイパーバイザ層パートBがハイパーバイザプロセッサを電源投入する。
8.ハイパーバイザプロセッサがブートローダーをロードする。
9.ブートローダーが異種ハイパーバイザ層パートAをロードする。
10.異種ハイパーバイザ層パートAが異種ハイパーバイザ層パートBにハイパーバイザサービスを引き継ぐよう知らせる。
11.異種ハイパーバイザ層パートAがOS1をロードする。
12.OS1がシステムサービスを引き継ぐ。
上記は特定の実施形態の完全な説明であるが、様々な変形、代替え構成、及び等価物を使用してもよい。従って、上記説明及び図は本発明の範囲を限定すると解釈されるべきでない。
100、200、300 異種計算機システム
110、210、310 ハイパーバイザプロセッサ
120、220、320 高性能プロセッサ
134、234、334 ローカルプロセッサバス(FSB)
140、240、340 ブリッジ論理回路
162、262、362 プロセッサ支援論理回路
6407 高速バススイッチ
6410 ハイパーバイザ動作論理回路
6430 プロセッサ言語翻訳論理回路

Claims (11)

  1. 1つ以上の第1プロセッサと、該1つ以上の第1プロセッサがソフトウェアのタスクを実行するのを支援するx86チップセットと、該1つ以上の第1プロセッサより少ない電力を消費する第2プロセッサとを有し、該x86チップセットはノースブリッジを備える、該ソフトウェアを実行するための異種計算機システムにおいて、
    該1つ以上の第1プロセッサの下の該システムのステータスを保守するハイパーバイザ動作論理回路と、
    該1つ以上の第1プロセッサと該第2プロセッサとのプロセッサ言語間の翻訳をするプロセッサ言語翻訳論理回路と、
    第1、第2、及び第3ポートを有し該3つのポートのうち任意2つの間でデータを双方向に中継する高速バススイッチであって、該1つ以上の第1プロセッサに該第1ポートが接続され、該第2プロセッサに該プロセッサ言語翻訳論理回路を介して該第2ポートが接続され、該x86チップセットの該ノースブリッジに該第3ポートが接続された高速バススイッチと
    を備えるブリッジ論理デバイス。
  2. 前記x86チップセットに支援された前記第2プロセッサは、前記高速バススイッチが前記第2と第3ポート間を接続した状態で、自身が処理するのに十分な処理能力を有する前記ソフトウェアのタスクを前記プロセッサ言語翻訳論理回路により翻訳された固有言語を使用して実行し、前記1つ以上の第1プロセッサを電力節約状態にする請求項1に記載のブリッジ論理デバイス。
  3. 前記保守されたシステムステータスを使用して前記第2プロセッサは、前記高速バススイッチが前記第1と第3ポート間を接続した状態で、前記1つ以上の第1プロセッサを電力節約状態から抜け出させて、自身が処理するのに不十分な処理能力を有する前記ソフトウェアのタスクを実行させる請求項1に記載のブリッジ論理デバイス。
  4. 前記1つ以上の第1プロセッサと前記第2プロセッサとが、前記高速バススイッチが前記第1、第2、及び第3ポート間を対応して接続しながら、全てのプロセッサの結合された処理能力を必要とする前記ソフトウェアのタスクを同時に実行する請求項1に記載のブリッジ論理デバイス。
  5. 前記プロセッサ言語翻訳論理回路は
    前記異種計算機システムに取り付けられた周辺装置による割込み要求を制御する周辺装置割込み要求制御部と、
    該周辺装置のステータスを保持する周辺装置ステータステーブルと、
    該周辺装置ステータステーブルに保持された該ステータスを該周辺装置割込み要求制御部による制御に基づいて更新する周辺装置ステータス保守部と
    を更に備える請求項1に記載のブリッジ論理デバイス。
  6. 前記ハイパーバイザ動作論理回路は
    前記1つ以上の第1プロセッサにより実行される計算機コマンドを監視し前記システムステータスを保守する前側バスコマンドハンドラーと、
    前記1つ以上の第1プロセッサと前記第2プロセッサとの言語間の翻訳をして前記ソフトウェアのタスクを実行するために該第2プロセッサによる前記x86チップセットへの直接アクセスを可能にするバスラッパーと
    を更に備える請求項1に記載のブリッジ論理デバイス。
  7. 前記1つ以上の第1プロセッサのそれぞれと、前記第2プロセッサはx86プロセッサであり、同じ半導体チップ上に存在する請求項1に記載のブリッジ論理デバイス。
  8. 前記1つ以上の第1プロセッサのそれぞれはx86プロセッサであり、前記第2プロセッサはARMプロセッサであり、全て同じ半導体チップ上に存在する請求項1に記載のブリッジ論理デバイス。
  9. 該ブリッジ論理デバイスは独立した半導体チップ上に存在する請求項1に記載のブリッジ論理デバイス。
  10. 該ブリッジ論理デバイスは前記第2プロセッサと同じ半導体チップ上に存在する請求項1に記載のブリッジ論理デバイス。
  11. 該ブリッジ論理デバイス、前記第2プロセッサ、及び前記1つ以上の第1プロセッサは同じ半導体チップ上に存在する請求項1に記載のブリッジ論理デバイス。
JP2012000697A 2011-06-08 2012-01-05 異種計算機システムにおけるプロセッサブリッジ Active JP5557857B2 (ja)

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
JP2012256309A JP2012256309A (ja) 2012-12-27
JP5557857B2 true JP5557857B2 (ja) 2014-07-23

Family

ID=45444284

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2011264749A Pending JP2012256306A (ja) 2011-06-08 2011-12-02 環境に配慮した演算処理異種計算機システム
JP2012000732A Expired - Fee Related JP5734211B2 (ja) 2011-06-08 2012-01-05 異種計算機システム
JP2012000697A Active JP5557857B2 (ja) 2011-06-08 2012-01-05 異種計算機システムにおけるプロセッサブリッジ
JP2012000670A Pending JP2012256308A (ja) 2011-06-08 2012-01-05 異種計算機システム動作方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2011264749A Pending JP2012256306A (ja) 2011-06-08 2011-12-02 環境に配慮した演算処理異種計算機システム
JP2012000732A Expired - Fee Related JP5734211B2 (ja) 2011-06-08 2012-01-05 異種計算機システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2012000670A Pending JP2012256308A (ja) 2011-06-08 2012-01-05 異種計算機システム動作方法

Country Status (6)

Country Link
US (4) US9383811B2 (ja)
JP (4) JP2012256306A (ja)
KR (4) KR20120136271A (ja)
CN (4) CN102819311A (ja)
GB (4) GB2491915A (ja)
TW (4) TWI456500B (ja)

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
CN105247486B (zh) * 2013-05-23 2019-05-21 瑞萨电子株式会社 多cpu系统及多cpu系统的调整方法
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

Family Cites Families (39)

* 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
JP2000222080A (ja) 1999-01-28 2000-08-11 Canon Inc 情報機器およびpcmciaカード管理方法
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
US20030153353A1 (en) * 2001-03-16 2003-08-14 Cupps Bryan T. Novel personal electronics device with simultaneous multi-processor operation
US20020173344A1 (en) * 2001-03-16 2002-11-21 Cupps Bryan T. Novel personal electronics device
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 宏碁股份有限公司 电脑系统的电源管理系统及方法
CN100474214C (zh) * 2004-08-05 2009-04-01 松下电器产业株式会社 信息处理装置
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
US8364857B2 (en) 2009-08-31 2013-01-29 Qualcomm Incorporated Wireless modem with CPU and auxiliary processor that shifts control between processors when in low power state while maintaining communication link to wireless network
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 ブラザー工業株式会社 通信装置

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5557857B2 (ja) 異種計算機システムにおけるプロセッサブリッジ
US10481942B2 (en) Virtual machine suspension
US10635470B2 (en) Hibernation via paravirtualization
US20200166986A1 (en) System and method for performing distributed power management without power cycling hosts
EP2169514B1 (en) Methods and systems to perform a computer task in a reduced power consumption state
US20140181811A1 (en) Hypervisor modification of advanced configuration and power interface (acpi) tables
TW201337534A (zh) 在多核心平台中之受限制的啟動技術
US11175938B2 (en) Central processing unit support for efficient timers at low power states
US20180341482A1 (en) Method and arrangement for utilization of a processing arrangement

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130709

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131009

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140507

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140527

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140603

R150 Certificate of patent or registration of utility model

Ref document number: 5557857

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250