JP7444993B2 - マルチマスターを支援するグラフィック処理装置を共有するシステムオンチップおよびグラフィック処理装置の動作方法 - Google Patents

マルチマスターを支援するグラフィック処理装置を共有するシステムオンチップおよびグラフィック処理装置の動作方法 Download PDF

Info

Publication number
JP7444993B2
JP7444993B2 JP2022537810A JP2022537810A JP7444993B2 JP 7444993 B2 JP7444993 B2 JP 7444993B2 JP 2022537810 A JP2022537810 A JP 2022537810A JP 2022537810 A JP2022537810 A JP 2022537810A JP 7444993 B2 JP7444993 B2 JP 7444993B2
Authority
JP
Japan
Prior art keywords
operating system
central processing
processing unit
gpu
graphics processing
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
JP2022537810A
Other languages
English (en)
Other versions
JP2023510130A (ja
Inventor
チェ,ジョン‐サン
キム,ムン‐ソ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telechips Inc
Original Assignee
Telechips Inc
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 Telechips Inc filed Critical Telechips Inc
Publication of JP2023510130A publication Critical patent/JP2023510130A/ja
Application granted granted Critical
Publication of JP7444993B2 publication Critical patent/JP7444993B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/4408Boot device selection
    • 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/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7864Architectures of general purpose stored program computers comprising a single central processing unit with memory on more than one IC chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • 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/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45566Nested virtual machines
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Hardware Redundancy (AREA)
  • Microcomputers (AREA)

Description

本発明は、グラフィック処理装置(Graphics Processing Unit、以下、「GPU」と通称する)を共有するシステムオンチップ(System on chip、以下、「SoC」と通称する)およびその動作方法に関し、マルチマスター(Multi-master)を支援するGPUが搭載されたSoCに関する。
最近、SoC設計によれば、多様な中央処理装置(Central Processing Unit、以下、「CPU」と通称する)とそのCPUで実行されるオペレーティングシステム(Operating System、以下、「OS」と通称する)を提供している。
一般的に、互いに異なるOSは単一のGPUまたは複数のGPUに高い並列コンピューティング作業またはイメージレンダリングを処理するように要求する。SoCの使用事例により、各OSで要求するGPUコンピューティング性能は変更され得る。
複数個のCPUと複数個のGPUがSoCに搭載される場合、一つのCPUはその専用GPUにのみ作業(Job)を送ることができ、他のCPUもその専用GPUにのみ作業を送ることができる。したがって、GPUは1個のOSで要請する作業(Job)しか遂行することができない。例えば、SoCに3個のOSがあり、2個のGPUがある場合、3個のOSのうち、2個のOSは一つのCPUに搭載され、一つのOSは他のCPUに搭載される。この時、一つのCPUに搭載された2個のOSが同時に一つのGPUを使用することができない。したがって、互いに異なるCPUに搭載された2個のOSのみがそれぞれの専用GPUを使用することができる。したがって、SoCに多数個のOSを搭載してもGPUを使用することができないOSが発生することがあるため、これはSoCの制約事項になる。
これを解決するために従来はハイパーバイザー(Hypervisor)を使用してGPUのマルチマスター(Multi-master)支援を提供する技術が使用されている。GPUは、ハイパーバイザーを使用してマルチマスターの再ブーティング(Rebooting)を支援した。
しかし、ハイパーバイザーは、マルチマスター支援以外にも多様なGPUコンピューティング性能要求事項と、システム動作を保証するために広範囲に使用される。しかし、ハイパーバイザーの使用は開発の複雑性と費用の観点でシステムに負担になり得る。
本発明が解決しようとする一課題は、CPUのOS(Operating System)実行状態情報をGPUに伝達するシステムモニタリングモジュールを利用して複数のOSがGPUを共有することができるシステムオンチップ(system-on-chip、SoC)およびGPU動作方法を提供することにある。
本発明が解決しようとする他の課題は、マルチマスターを支援するGPUが搭載され、システムオンチップ(SoC)に搭載されたシステムモニタリングモジュールをOSまたはCPUと選択的に連結させることによって、全てのOSがシステムモニタリングモジュールを通じてGPUを共有するようにしたり、全てのOSがハイパーバイザーを通じてGPUを共有するようにしたり、一部のOSはシステムモニタリングモジュールを通じてGPUを共有し、一部のOSはハイパーバイザーを通じてGPUを共有するようにすることによって、ハイパーバイザー有無に関係なしに多様な使用事例をカバーすることができるシステムオンチップ(SoC)およびGPU動作方法を提供することにある。
本発明の一実施例によれば、システムオンチップ(System on chip、SoC)であって、少なくとも一つのオペレーティングシステム(Operating System)をそれぞれ独立的に実行する複数の中央処理装置(Central Processing Unit、CPU)、バスインターフェースを通じて前記複数の中央処理装置とそれぞれ連結されて相互通信する一つのグラフィック処理装置(Graphics Processing Unit、GPU)、そして前記複数の中央処理装置のうちの少なくとも一つの中央処理装置と選択的に連結され、連結された中央処理装置を特定する特定情報と、前記連結された中央処理装置で実行された少なくとも一つのオペレーティングシステムの実行状態情報を前記グラフィック処理装置に伝達する少なくとも一つの状態モニタリング装置を含み、前記グラフィック処理装置は、前記複数の中央処理装置のそれぞれが実行する少なくとも一つのオペレーティングシステムにより共有され、前記少なくとも一つの状態モニタリング装置から伝達された前記中央処理装置を特定する特定情報と前記少なくとも一つのオペレーティングシステムの実行状態情報に基づいて前記複数の中央処理装置のそれぞれが実行する少なくとも一つのオペレーティングシステムによる共有動作を制御する。
前記グラフィック処理装置は、前記少なくとも一つのOSの実行状態情報に基づいて、正常でない状態であるOSを判別し、判別したOSの作業を正常終了処理することができる。
前記グラフィック処理装置は、前記正常でない状態であるOSがホストOSに判断されると、前記正常でない状態であるOSが再ブーティングを完了する時まで構成を中止することができる。
前記複数の中央処理装置は、第1スタンドアローン(Stand alone)OSを実行する第1中央処理装置、そして第2スタンドアローンOSを実行する第2中央処理装置を含み、前記少なくとも一つの状態モニタリング装置は、前記第1中央処理装置に連結されて、前記第1スタンドアローンOSの実行状態情報を前記グラフィック処理装置に伝達する第1状態モニタリング装置、そして前記第2中央処理装置に連結されて、前記第2スタンドアローンOSの実行状態情報を前記グラフィック処理装置に伝達する第2状態モニタリング装置を含むことができる。
前記複数の中央処理装置は、スタンドアローンンOSを実行する第1中央処理装置、そしてハイパーバイザープログラム、そしてハイパーバイザープログラム基盤で少なくとも一つのゲストンOSを実行する第2中央処理装置を含み、前記少なくとも一つの状態モニタリング装置は、前記第1中央処理装置に連結されて、前記スタンドアローンンOSの実行状態情報を前記グラフィック処理装置に伝達する第1状態モニタリング装置を含み、前記ハイパーバイザープログラムは、前記少なくとも一つのゲストンOSの実行状態情報を前記グラフィック処理装置に伝達することができる。
前記複数の中央処理装置は、第1スタンドアローンOSを実行する第1中央処理装置、そして第2スタンドアローンOS、ハイパーバイザープログラム、そしてハイパーバイザープログラム基盤で少なくとも一つのゲストOSを実行する第2中央処理装置を含み、前記少なくとも一つの状態モニタリング装置は、前記第1中央処理装置に連結されて、前記第1スタンドアローンOSの実行状態情報を前記グラフィック処理装置に伝達する第1状態モニタリング装置、そして前記第2中央処理装置に連結されて、前記第2スタンドアローンOSの実行状態情報を前記グラフィック処理装置に伝達する第2状態モニタリング装置を含み、前記ハイパーバイザープログラムは、前記少なくとも一つのゲストOSの実行状態情報を前記グラフィック処理装置に伝達することができる。
本発明の他の実施例によれば、システムオンチップ(System on chip、SoC)に搭載されたグラフィック処理装置(Graphics Processing Unit、GPU)の動作方法であって、少なくとも一つのオペレーティングシステム(Operating System)をそれぞれ独立的に実行する複数の中央処理装置(Central Processing Unit、CPU)から、少なくとも一つの中央処理装置を特定する特定情報と、前記少なくとも一つの中央処理装置で実行されたオペレーティングシステムの実行状態情報を収集する段階、そして前記特定情報と前記実行状態情報に基づいて正常でない状態で動作する中央処理装置またはオペレーティングシステムがあるか否か判断する段階を含み、前記グラフィック処理装置は、前記複数の中央処理装置のそれぞれが実行する少なくとも一つのオペレーティングシステムにより共有され、正常状態で動作する中央処理装置またはオペレーティングシステムが要求した作業を処理する共有動作を遂行し、正常でない状態で動作する中央処理装置またはオペレーティングシステムの既作業を正常に終了処理し、前記正常でない状態で動作する中央処理装置またはオペレーティングシステムの再ブーティングが完了する時まで待機し、前記特定情報と前記実行状態情報は、少なくとも一つの中央処理装置に連結された状態モニタリング装置と連結されたバスインターフェースを通じて収集される
前記OSのうちの一つはホストOSとして動作し、前記判断する段階以降、前記正常でない状態で動作するOSがホストOSである場合、前記ホストOSの再ブーティングが完了する時までグラフィック処理装置の構成を中止することができる。
前記実行状態情報は、任意の中央処理装置で実行されたハイパーバイザーから収集され、前記ハイパーバイザーが実行した少なくとも一つのゲストOSの実行状態を含むことができる。
前記実行状態情報は、少なくとも一つの中央処理装置に連結された状態モニタリング装置と連結されたバスインターフェースを通じて収集された少なくとも一つのスタンドアローンOSの実行状態情報と、任意の中央処理装置で実行されたハイパーバイザーから収集された少なくとも一つのゲストOSの実行状態を含むことができる。
本発明の実施例によれば、一つのシステムオンチップ(SoC)でハイパーバイザー有無に関係なしに多様な使用事例をカバーすることができる。また、GPUを共有することによって理論的にコンピューティング性能を最大100%まで高めることができる。
また、システムオンチップ(SoC)に搭載されたOSのうちの一つが再ブーティングしたり正常でない状況が発生しても、GPUがこれを確認して他のOSに影響を与えないため、システムオンチップ(SoC)のシステム安全性を保障することができ、コア別再ブーティングを支援することができる。
また、システムオンチップ(SoC)に搭載されたシステムモニタリング装置が連結されたCPUまたはOSの実行状態情報をGPUに伝達するため、GPUは全てのCPUまたはOSの実行状態情報を知ることができる。したがって、ハイパーバイザーがなくても複数のCPUまたはOSがGPUを共有することができるため、ハイパーバイザーの使用費用を減らし、システム費用を節減することができる。
本発明の一実施例によるシステムオンチップ(SoC)の構成を示すブロック図である。 図1のシステムオンチップ(SoC)の動作を説明する図である。 本発明の他の実施例によるシステムオンチップ(SoC)の構成を示すブロック図である。 図3のシステムオンチップ(SoC)の動作を説明する図である。 本発明のまた他の実施例によるシステムオンチップ(SoC)の構成を示すブロック図である。 図5のシステムオンチップ(SoC)の動作を説明する図である。 本発明の実施例によるGPUの動作を示すフローチャートである。
以下、添付した図面を参照して本発明の実施例について本発明が属する技術分野における通常の知識を有する者が容易に実施することができるように詳しく説明する。しかし、本発明は、多様な異なる形態に実現することができ、ここで説明する実施例に限定されない。そして、図面において、本発明を明確に説明するために説明上不要な部分は省略し、明細書全体にわたって類似の部分については類似の図面符号を付した。
明細書全体において、ある部分がある構成要素を「含む」という時、これは特に反対になる記載がない限り、他の構成要素を除外せず、他の構成要素をさらに含むことができることを意味する。
また、明細書に記載された「・・・部」、「・・・器」、「・・・モジュール」などの用語は、少なくとも一つの機能や動作を処理する単位を意味し、これはハードウェアやソフトウェアまたはハードウェアおよびソフトウェアの結合で実現され得る。
本明細書で「伝送または提供」は、直接的な伝送または提供することだけでなく、他の装置を通じてまたは迂回経路を利用して間接的に伝送または提供することも含むことができる。
本明細書で、単数で記載された表現は「一つ」または「単一」などの明示的な表現を使用しない以上、単数または複数に解釈され得る。
本明細書で、図面に関係なしに同一の図面番号は同一の構成要素を指し、「および/または」は、言及された構成要素のそれぞれおよび一つ以上の全ての組み合わせを含む。
第1、第2などの用語は、多様な構成要素を説明することに使用され得るが、構成要素は用語により限定されてはならない。用語は一つの構成要素を他の構成要素から区別する目的のみで使用される。
本明細書で、中央処理装置(Central Processing Unit、以下、「CPU」と通称する)は、外部から情報を受信し、記憶し、コンピュータプログラムの命令語(Program Instructions)を解釈して演算し、外部に出力する役割を果たす。CPUは、コンピュータ部品と情報を交換しながらコンピュータ全体の動作を制御する。CPUは、ソフトウェア、つまり、アプリケーションプログラム(Application Program)、オペレーティングシステム(Operating System、以下、「OS」と通称する)、装置ドライバーを実行する。CPUは、ワーキングメモリにロードされるOSを実行する。CPUは、OS基盤で駆動される多様なアプリケーションプログラムを実行する。
CPUは、少なくとも2個の独立的に駆動可能なプロセッサーを含むマルチ-コアプロセッサー(Multi-Core Processor)で提供され得る。プロセッサーのそれぞれは、プログラム命令を独立的に読み取って実行することができる。プロセッサーは、互いに異なる電源電圧により駆動されたり、互いに異なる動作クロックにより駆動されることもできる。例えば、プロセッサーは、同種のプロセッサーであってもよく、異種のプロセッサーから構成されてもよい。
CPUは、少なくとも一つのクラスタを含むことができ、各クラスタは、複数個のCPUコアから構成され得る。CPUコアは、ソフトウェアを構成する複数の命令語(instruction)およびデータを処理することができる。一例としてCPUコアは複数の命令語またはデータをチェッチ(fetch)し、フェッチされた命令語またはデータを処理し、これを内部レジスターに保存することができる。この時、ソフトウェアはSoCに内蔵されたソフトウェアまたは使用者の使用者環境で開発されるソフトウェアを含むことができる。
グラフィック処理装置(Graphics Processing Unit、以下、「GPU」と通称する)は、CPUの要請により多様なグラフィック演算を遂行する。つまり、GPUは、処理要請されたデータをディスプレイに適したデータに変換することができる。GPUは、類似の演算を繰り返して処理する並列処理に有利な演算構造を有する。GPUは、OSの指示により画面を生成し、生成された画面をディスプレイ装置に出力することができる。
GPUは、コンピュータグラフィックスのための計算を遂行するだけでなく、アプリケーションプログラムの計算に使用することができる。プログラム可能な層と高精度演算をグラフィックパイプラインに連結してデータにストリームプロセッシングを遂行することができる。GPUは、並列に一度に一つのカーネルを流れの中の多くのレコードに実行させる。
GPUは、複数のコアを含むことができる。複数のコアは、同種のコアであってもよく、異種のコアであってもよい。GPUの場合は、画面にイメージを表示させる役割が最も優先的である。しかし、ハードウェアが発展し、以前と比較して相対的に安価に集積できるコア数が増えることによって、イメージを表示させるレンダリングを遂行するコア以外に残るコアで浮動小数点演算や科学計算など汎用でも使用することができる。
各CPUは、システムメモリを含むチップセットであってもよく、GPUは、ビデオゲームなどのようなグラフィックデータの処理のための特殊目的のプロセッサーであってもよい。
一般的にGPUは、主にCPUを通じて処理しなければならない作業のコードとデータをメモリインターフェースを通じて委任を受け、これをGPUローカルメモリにコピーした後、GPUはこれを処理してCPUのメインメモリに結果を再びコピーする構造である。このためにCPUおよびGPUを含む集積システム(System on chip、以下、「SoC」と通称する)でCPUはバスインターフェースを通じてGPUを制御する。
また、ハイパーバイザー(hypervisor)は、OSがハードウェアを利用できる仮想環境を提供する。例えば、ハイパーバイザーは、OSがGPUを利用して画面を生成する仮想環境を提供する。言い換えると、OSはハイパーバイザーを通じてGPUを共有および使用することができる。
また、本明細書で、スタンドアローン(Standalone)OSはライブラリー、外部モジュールまたは他のOSを使用してブーティングしない独立型OSを意味する。したがって、ハイパーバイザーなしに単独でブーティングするOSをスタンドアローンOSという。そして、ゲストOSは、ホストOSの上に搭載された仮想化ソフトウェアを利用して駆動される仮想化OSを意味する。
本明細書で、システム全体を制御する役割、つまり、GPU構成および初期化はホストOSが遂行し、スタンドアローンOSまたはハイパーバイザーがホストOSになることができる。
一実施例によれば、GPU構成および初期化は、一つのホストOSのみにより制御され得る。
他の実施例によれば、GPU構成および初期化は、全てのOSにより制御され得る。この場合、電源がオンされると、OSのうちの一つがメインOSになる。例えば、スタンドアローンOSがメインOSになる。この時、メインOSは全体システムの再スタートの事例でのみGPU構成および初期化の役割を果たす。しかし、多くのホストOSがGPU構成および初期化をする場合、GPU制御の問題の複雑性が加重され得る。
したがって、GPU構成および初期化の主体を一つのホストOSに制限することによって、システムオンチップ(system-on-chip)100の効率的な運営を図ることができる。
GPU構成および初期化は、多数の基本セッティング(Register setting)をする作業、必要なファームウエア(Firmware、FW)をアップロードする作業、アップロードされたファームウエアを動作させてGPUがCPUなどで要求した作業を遂行することができる状態に作る作業などを含むことができる。ここで、基本セッティングは、クロック(clock)、制御ビットセッティング(control bit setting)などを含む。
本発明の実施例では、一つのシステムオンチップ(SoC)でハイパーバイザー有無に関係なしにマルチマスター(Multi-master)を支援するGPUを多数のOSまたは多数のCPU間に共有する方案について説明する。
図面を参照して本発明の実施例によるマルチマスターを支援するグラフィック処理装置を共有するシステムオンチップ(SoC)およびGPU動作方法について説明する。
この時、本発明の実施例の構成は、本発明と関連のある構成のみを概略的に示したものであって、例えば電源装置などのような一般的な構成は省略したが、これらが本発明の実施例に含まれないのではない。
図1は本発明の一実施例によるシステムオンチップ(SoC)の構成を示すブロック図である。
図1を参照すれば、システムオンチップ(SoC)100は、一つのGPU110および二つのCPU(CPU_1,CPU_2)120,130を含む。GPU110とCPU120,130は、オンチップ(On-chip)バス(bus)ファブリック(fabric)140を通じて相互通信する。
各CPU120,130は、多様な機能を遂行することができ、このうちの一つはシステムオンチップ(SoC)のシステム全体を制御する役割を果たすことができる。
CPU120,130は、それぞれのOSを実行する。CPU_1 120はスタンドアローンOS_1 121を実行し、CPU_2 130はスタンドアローンOS_2 131を実行する。
GPU110はマルチマスターを支援する。したがって、GPU110は同時に多数のOS121、131から作業(Job)を受信して処理することができる。
この時、CPU_1 120とGPU110との間には状態モニタリング装置_1 150が連結され、CPU_2 130とGPU110との間には状態モニタリング装置_2 160が連結される。
システムオンチップ(SoC)100の電源がオンされると、システムオンチップ(SoC)100に搭載されたOSのうちで一つのOSがホストOSとして動作する。これは事前に決められたものであり、例えば、スタンドアローンOS_1 121がホストOSとして動作することができる。
スタンドアローンOS_1 121がGPU110の構成および初期化した後、スタンドアローンOS_1 121およびスタンドアローンOS_2 131はGPU110を自由に共有して使用することができる。
安定したシステムで、リセット(reset)、再スタート(restart)、再ブーティング(reboot)、クラッシュ(crash)のようなCPU120,130とOS121,131の正常でない状態が発生しても、共有されたGPU110はOS121,131が要求した全ての作業要請を処理しなければならない。
OSの実行状態情報は、ハイパーバイザーがGPU110に伝達することが一般的である。しかし、図1の構造のように、ハイパーバイザーがない構造ではOS121,131の実行状態情報をGPU110に伝達できる方法がない。したがって、OS121,131のうちの一つで正常でない状態が発生してもこれをGPU110が知らないため、問題が発生する。
しかし、本発明の実施例では、各CPU120,130に連結された状態モニタリング装置150,160が各OS121,131の実行状態情報をチェックしてGPU110に伝達する。したがって、CPU120、130または各CPU120,130で実行するOS121,131の正常でない状態でも、GPU110がこれを知っているため、他の正常な要請だけでなく、正常でない要請も良好に処理することができる。
もし、ホストOSとして動作するスタンドアローンOS_1 121と、スタンドアローンOS_1 121が搭載されたCPU_1 120が正常でない動作をする場合、スタンドアローンOS_1 121の再ブーティングの間にGPU構成および初期化は中止される。再ブーティングされる間にホストOS121は停止されたGPU構成に接近しない。再ブーティングされる間にホストOS121は他のコアにより要請された他の実行作業の安定した動作を保障するために構成状態を確認およびチェックする。再ブーティング後に、ホストOS121はGPU構成を制御し、GPU110に作業を提出することができる。
もし、ホストOSとして動作するスタンドアローンOS_1 121と、スタンドアローンOS_1 121が搭載されたCPU_1 120が正常でない動作をする場合、スタンドアローンOS_1 121の再ブーティングの間にGPU構成および初期化は中止される。再ブーティングされる間にホストOS121は停止されたGPU構成に接近しない。再ブーティングされる間にホストOS121は他のコアにより要請された他の実行作業の安定した動作を保障するために構成状態を確認およびチェックする。再ブーティング後に、ホストOS121はGPU構成を制御し、GPU110に作業を提出することができる。
反面、ホストOSでないスタンドアローンOS_2 131とスタンドアローンOS_2 131が搭載されたCPU_2 130が正常でない動作をする場合、GPU構成はホストOS121により制御され得る。ホストOS121でない、正常でないOS131の再ブーティング後に、ホストOS121でないスタンドアローンOS_2 131から作業提出は再び始まる。
図2は図1のシステムオンチップ(SoC)100の動作を説明する。
図2を参照すれば、システムオンチップ(SoC)100の電源がオン(S101)されると、CPU_1 120はスタンドアローンOS_1 121を実行(S103)し、CPU_2 130はスタンドアローンOS_2 131を実行する(S105)。
CPU_1 120のスタンドアローンOS_1 121はGPU110と連動してGPU構成および初期化を行う(S107)。
CPU_1 120のスタンドアローンOS_1 121は、状態モニタリング装置_1 150の要請によりOS実行状態情報を状態モニタリング装置_1 150に提供する(S109)。この時、S109段階は、CPU_1 120のスタンドアローンOS_1 121と状態モニタリング装置_1 150間の設定された周期ごとに行われるか、または特定イベント(例:正常でない動作)の発生時に行われ得る。
状態モニタリング装置_1 150は、S109段階を通じて収集したスタンドアローンOS_1 121の実行状態情報をGPU110に伝達する(S111)。
また、CPU_2 130のスタンドアローンOS_2 131は、状態モニタリング装置_2 160の要請によりOS実行状態情報を状態モニタリング装置_2 160に提供する(S113)。この時、S113段階は、CPU_2 130のスタンドアローンOS_2 131と状態モニタリング装置_2 160間の設定された周期ごとに行われるか、または特定イベント(例:正常でない動作)の発生時に行われ得る。
状態モニタリング装置_2 160は、S113段階を通じて収集したスタンドアローンOS_2 131の実行状態情報をGPU110に伝達する(S115)。
図3は本発明の他の実施例によるシステムオンチップ(SoC)の構成を示すブロック図であって、図1とは異なる構造を示す。この時、図1と同一の構成の説明は省略する。
図3を参照すれば、システムオンチップ(SoC)200は、一つのGPU210および二つのCPU220、230を含む。GPU210とCPU220,230は、オンチップ(On-chip)バス(bus)ファブリック(fabric)240を通じて相互通信する。
この時、CPU_1 220は、複数のゲストOS221,222とこれら221,222を実行するハイパーバイザー223を含む。CPU_1 220は、ゲストOS_1 221およびゲストOS_2 222を実行する。
CPU_2 230は、スタンドアローンOS231を含み、CPU_2 230は、状態モニタリング装置250と連結される。つまり、状態モニタリング装置250は、CPU_2 230とGPU210との間にのみ連結される。
この場合、ゲストOS221,222の実行状態情報はハイパーバイザー223を通じてGPU210に伝達され、スタンドアローンOS231の実行状態情報は状態モニタリング装置250を通じてGPU210に伝達される。
電源がオンされると、OS221,222,231のうちの一つがホストOSになる。この時、CPU_2 230のスタンドアローンOS231がホストOSであり得る。したがって、スタンドアローンOS231のみがGPU210を構成して初期化することができる。スタンドアローンOS231がGPU210を構成して初期化した後、全てのOS、つまり、ゲストOS_1 221、ゲストOS_2 222、スタンドアローンOS231はGPU210を自由に共有することができる。
リセット、再スタート、再ブーティング、クラッシュのようなCPU220、230およびOS221,222,231の正常でない状態でも、共有されたGPU210は複数のOS221,222,231による全ての作業要請を処理可能でなければならない。
ハイパーバイザー223があるCPU_1 220では状態モニタリング装置が不要である。ハイパーバイザー223がCPU_1 220で実行されるゲストOS221,222の実行状態情報をGPU210に伝達する。
反面、状態モニタリング装置250がCPU_2 230で実行されるスタンドアローンOS231の実行状態情報を確認してGPU210に伝達する。
したがって、OS221,222,231のうちの一つが正常でない動作をしても、GPU210がこれを知ることができるため、GPU210は一般の要請だけでなく、正常でない要請も処理することができる。
もし、正常でないCPUとそのCPUで実行されるOSがホストOS、つまり、スタンドアローンOS231である場合、GPU構成は再ブーティングされる間に停止する。再ブーティングされる間にホストOS231は停止されたGPU構成に接近しない。再ブーティングされる間にホストOS231は他のコアにより要請された他の実行作業の安定した動作を保障するために構成状態を確認およびチェックする。
再ブーティング後に、ホストOS231はGPU構成を制御し、GPU210に作業を提出することができる。正常でないCPUおよびそのCPUで実行されるOSがホストOSでない場合、GPU構成はホストOS231により制御され得る。ホストOSでない、正常でないOSの再ブーティング後に、ホストOSでないOSから作業提出は再び始まる。
図4は図3のシステムオンチップ(SoC)の動作を説明する。
図4を参照すれば、システムオンチップ(SoC)200の電源がオン(S201)されると、CPU_2 230はスタンドアローンOS231を実行(S203)する。この時、スタンドアローンOS231がホストOSとして動作する。したがって、CPU_2 230のスタンドアローンOS231は、GPU210と連動してGPU構成および初期化を遂行する(S205)。
CPU_2 230のスタンドアローンOS231は、状態モニタリング装置250の要請によりOS実行状態情報を状態モニタリング装置250に提供する(S207)。この時、S207段階は、CPU_2 230のスタンドアローンOS231と状態モニタリング装置250間の設定された周期ごとに行われるか、または特定イベント(例:正常でない動作)の発生時に行われ得る。
状態モニタリング装置250は、S207段階を通じて収集したスタンドアローンOS231の実行状態情報をGPU210に伝達する(S209)。
また、CPU_1 220は、ゲストOS_1 221およびゲストOS_2 222を実行(S211)する。CPU_1 220のハイパーバイザー223は、S209段階で実行されたゲストOS221,222の実行状態情報をチェック(S213)する。この時、S213段階は、設定された周期ごとに行われるか、または特定イベント(例:正常でない動作)の発生時に行われ得る。
CPU_1 220のハイパーバイザー223は、S213段階を通じて収集したゲストOS221、222の実行状態情報をGPU210に伝達する(S215)。
図5は本発明のまた他の実施例によるシステムオンチップ(SoC)構造を示し、図1および図3の実施例が併合された実施例を示す。この時、図1、図3と同一の構成の説明は省略する。
図5を参照すれば、システムオンチップ(SoC)300は、一つのGPU310および二つのCPU320、330を含む。GPU310とCPU320,330は、オンチップ(On-chip)バス(bus)ファブリック(fabric)340を通じて相互通信する。
この時、CPU_1 320は、ゲストOS_1 321、ゲストOS_2 322、ハイパーバイザー323およびスタンドアローンOS_1 324を含む。CPU_2 330は、スタンドアローンOS_2 331を含む。
CPU_1 320は、ハイパーバイザー323基盤で複数のゲストOS321,322を実行する。CPU_1 320は、スタンドアローンOS_1 324を独立的に実行する。この時、状態モニタリング装置_1 350は、CPU_1 320とGPU310との間に連結される。この場合、ゲストOS321,322の実行状態情報はハイパーバイザー323を通じてGPU310に伝達される。スタンドアローンOS_1の実行状態情報は状態モニタリング装置_1 350を通じてGPU310に伝達される。
CPU_2 330はスタンドアローンOS_2 331を実行し、CPU_2 330には状態モニタリング装置_2 360が連結されている。スタンドアローンOS_2 331の実行状態情報は状態モニタリング装置_2 360を通じてGPU310に伝達される。
この時、システムオンチップ(SoC)は、スタンドアローンOSが二つ存在する。一つの実施例によれば、一つのスタンドアローンOS(324または331)のみがGPU構成および初期化をするように制限することができる。他の実施例によるスタンドアローンOS(324または331)が全てGPU構成および初期化をするように設定することができる。この場合、スタンドアローンOS(324または331)のうちの一つはメインOSに設定され、メインOSは全体システムの再スタートの事例でのみGPU構成および初期化の役割を果たすことができる。
GPU構成および初期化以降、システムオンチップ(SoC)内の全てのOSはGPU310を自由に共有して使用する。安定したシステムの場合、再設定、再スタート、再ブーティング、クラッシュのような正常でないCPUおよびOS状態では、共有GPUが多くのOSの全ての作業要請を処理することができる。
OS321、322、324、331のうちの一つが正常でない動作をしても、GPU310は状態モニタリングを通じてこれを知ることができるため、一般の要請だけでなく、正常でない要請も処理することができる。
図6は図5のシステムオンチップ(SoC)の動作を説明する。
図6を参照すれば、システムオンチップ(SoC)300の電源がオン(S301)されると、CPU_2 330はスタンドアローンOS_2 331を実行(S303)する。
この時、スタンドアローンOS_2 331がホストOSとして動作する。したがって、CPU_2 330のスタンドアローンOS_2 331は、GPU310と連動してGPU構成および初期化を遂行する(S305)。
CPU_2 330のスタンドアローンOS_2 331は、状態モニタリング装置_2 360の要請によりOS実行状態情報を状態モニタリング装置_2 360に提供する(S307)。
状態モニタリング装置_2 360は、S307段階を通じて収集したスタンドアローンOS_2 331の実行状態情報をGPU310に伝達する(S309)。
また、CPU_1 320は、スタンドアローンOS_1 324、ゲストOS_1 321、ゲストOS_2 322を実行(S311)する。
状態モニタリング装置_1 350は、CPU_1 320と連動してスタンドアローンOS_1 324の実行状態をチェックする(S313)。そしてS313段階で収集した実行状態情報をGPU310に伝達する(S315)。
CPU_1 320のハイパーバイザー323は、S311段階で実行されたゲストOS321、322の実行状態情報をチェックする(S317)。CPU_1 320のハイパーバイザー323は、S317段階を通じて収集したゲストOS321,322の実行状態情報をGPU310に伝達する(S319)。
この時、S307段階、S313段階、S317段階は、設定された周期ごとに行われるか、または特定イベント(例:正常でない動作)の発生時に行われ得る。
図7は本発明の実施例によるGPUの動作を示すフローチャートであって、図1~図6のような実施例によるGPUの動作を示す。
図7を参照すれば、GPU(図1の110、図3の210、図5の310)が少なくとも一つの状態モニタリング装置(図1の150,160、図3の250、図5の350、360)またはハイパーバイザー(図3の223、図5の323)からOSの実行状態情報をそれぞれ収集する(S401)。
GPU110,210,310は、収集した実行状態情報に基づいて正常でない状態であるOSがあるか否か判断する(S403)。
正常でない状態であるOSがあれば、正常でない状態であるOSの既作業を正常に終了処理する(S405)。正常でない状態は、リセット(reset)、再スタート(restart)、再ブーティング(reboot)、クラッシュ(crash)のうちの一つであり得る。
GPU110,210,310は、正常でない状態であるOSがホストOSであるか否か判断する(S407)。正常でない状態であるOSがホストOSに判断されると、GPU110,210,310はGPU構成を中止する(S409)。
GPU110,210,310は、ホストOSの再ブーティングが完了するか否か判断(S411)した後、完了すると、GPU構成および初期化を再スタートする(S413)。
一方、S407段階で正常でない状態であるOSがホストOSでないと判断されると、GPU110,210,310は正常でない状態であるOSの再ブーティングが完了するか否かを判断する(S415)。
GPU110,210,310は、正常でない状態であるOSが再ブーティングされると、再ブーティングされたOSから作業を再び受信する(S417)。
このように、GPU110,210,310が多くのOSで要請された作業を遂行する。もし、任意のOSが問題になってそれ以上当該作業を遂行しなくてもよいが、そのOSの正常でない状態をGPU110,210,310が知ることができなければ、そのOSの作業を正常終了することができない。したがって、GPUリソースが浪費またはHalt(Hanging)され得る。
しかし、本発明の実施例によれば、GPU110,210,310は、状態モニタリング装置150,160,250,350,360またはハイパーバイザー223,323を通じてOSの状態情報を収集するため、正常でない状態であるOSの動作を制御することができる。
一般的に正常な状態でGPU110,210,310は、多数個のマスター(OS)で実行されるアプリケーションプログラムが要請する作業を遂行する。しかし、一つのOSがリブート(reboot)されると、当該OSで遂行を要請した作業はGPU110、210、310上で現在遂行状態で残っている。しかし、GPU110,210,310がこれを知ることができるため、当該OSで要請して遂行していた作業をそれ以上遂行せずに正常に終了させることによって、他のOSで要請された作業の遂行に問題になるか、またはGPUリソースを不必要に使用しないようにする。
以上で説明した本発明の実施例は、装置および方法のみを通じて実現されるのではなく、本発明の実施例の構成に対応する機能を実現するプログラムまたはそのプログラムが記録された記録媒体を通じて具現されることもできる。
以上で本発明の実施例について詳細に説明したが、本発明の権利範囲はこれに限定されず、特許請求の範囲で定義している本発明の基本概念を利用した当業者の多様な変形および改良形態も本発明の権利範囲に属する。

Claims (10)

  1. システムオンチップ(System on chip、SoC)であって、
    少なくとも一つのオペレーティングシステム(Operating System)をそれぞれ独立的に実行する複数の中央処理装置(Central Processing Unit、CPU)、
    バスインターフェースを通じて前記複数の中央処理装置とそれぞれ連結されて相互通信する一つのグラフィック処理装置(Graphics Processing Unit、GPU)、そして
    前記複数の中央処理装置のうちの少なくとも一つの中央処理装置と選択的に連結され、連結された中央処理装置を特定する特定情報と、前記連結された中央処理装置で実行された少なくとも一つのオペレーティングシステムの実行状態情報を前記グラフィック処理装置に伝達する少なくとも一つの状態モニタリング装置を含み、
    前記グラフィック処理装置は、前記複数の中央処理装置のそれぞれが実行する少なくとも一つのオペレーティングシステムにより共有され、前記少なくとも一つの状態モニタリング装置から伝達された前記中央処理装置を特定する特定情報と前記少なくとも一つのオペレーティングシステムの実行状態情報に基づいて前記複数の中央処理装置のそれぞれが実行する少なくとも一つのオペレーティングシステムによる共有動作を制御する、システムオンチップ(SoC)。
  2. 前記グラフィック処理装置は、前記少なくとも一つのオペレーティングシステムの実行状態情報に基づいて、正常でない状態であるオペレーティングシステムを判別し、判別したオペレーティングシステムの作業を正常終了処理する、請求項1に記載のシステムオンチップ(SoC)。
  3. 前記グラフィック処理装置は、前記正常でない状態であるオペレーティングシステムがホストオペレーティングシステムに判断されると、前記正常でない状態であるオペレーティングシステムが再ブーティングを完了する時まで構成を中止する、請求項2に記載のシステムオンチップ(SoC)。
  4. 前記複数の中央処理装置は、第1スタンドアローン(Stand alone)オペレーティングシステムを実行する第1中央処理装置、そして
    第2スタンドアローンオペレーティングシステムを実行する第2中央処理装置を含み、
    前記少なくとも一つの状態モニタリング装置は、
    前記第1中央処理装置に連結されて、前記第1スタンドアローンオペレーティングシステムの実行状態情報を前記グラフィック処理装置に伝達する第1状態モニタリング装置、そして
    前記第2中央処理装置に連結されて、前記第2スタンドアローンオペレーティングシステムの実行状態情報を前記グラフィック処理装置に伝達する第2状態モニタリング装置を含む、請求項1に記載のシステムオンチップ(SoC)。
  5. 前記複数の中央処理装置は、スタンドアローンオペレーティングシステムを実行する第1中央処理装置、そして
    ハイパーバイザープログラム、そしてハイパーバイザープログラム基盤で少なくとも一つのゲストオペレーティングシステムを実行する第2中央処理装置を含み、
    前記少なくとも一つの状態モニタリング装置は、
    前記第1中央処理装置に連結されて、前記スタンドアローンオペレーティングシステムの実行状態情報を前記グラフィック処理装置に伝達する第1状態モニタリング装置を含み、
    前記ハイパーバイザープログラムは、前記少なくとも一つのゲストオペレーティングシステムの実行状態情報を前記グラフィック処理装置に伝達する、請求項1に記載のシステムオンチップ(SoC)。
  6. 前記複数の中央処理装置は、第1スタンドアローンオペレーティングシステムを実行する第1中央処理装置、そして
    第2スタンドアローンオペレーティングシステム、ハイパーバイザープログラム、そしてハイパーバイザープログラム基盤で少なくとも一つのゲストオペレーティングシステムを実行する第2中央処理装置を含み、
    前記少なくとも一つの状態モニタリング装置は、
    前記第1中央処理装置に連結されて、前記第1スタンドアローンオペレーティングシステムの実行状態情報を前記グラフィック処理装置に伝達する第1状態モニタリング装置、そして
    前記第2中央処理装置に連結されて、前記第2スタンドアローンオペレーティングシステムの実行状態情報を前記グラフィック処理装置に伝達する第2状態モニタリング装置を含み、
    前記ハイパーバイザープログラムは、前記少なくとも一つのゲストオペレーティングシステムの実行状態情報を前記グラフィック処理装置に伝達する、請求項1に記載のシステムオンチップ(SoC)。
  7. システムオンチップ(System on chip、SoC)に搭載されたグラフィック処理装置(Graphics Processing Unit、GPU)の動作方法であって、
    少なくとも一つのオペレーティングシステム(Operating System)をそれぞれ独立的に実行する複数の中央処理装置(Central Processing Unit、CPU)から、少なくとも一つの中央処理装置を特定する特定情報と、前記少なくとも一つの中央処理装置で実行されたオペレーティングシステムの実行状態情報を収集する段階、そして
    前記特定情報と前記実行状態情報に基づいて正常でない状態で動作する中央処理装置またはオペレーティングシステムがあるか否か判断する段階を含み、
    前記グラフィック処理装置は、
    前記複数の中央処理装置のそれぞれが実行する少なくとも一つのオペレーティングシステムにより共有され、
    正常状態で動作する中央処理装置またはオペレーティングシステムが要求した作業を処理する共有動作を遂行し、
    正常でない状態で動作する中央処理装置またはオペレーティングシステムの既作業を正常に終了処理し、前記正常でない状態で動作する中央処理装置またはオペレーティングシステムの再ブーティングが完了する時まで待機し、
    前記特定情報と前記実行状態情報は、少なくとも一つの中央処理装置に連結された状態モニタリング装置と連結されたバスインターフェースを通じて収集される、グラフィック処理装置の動作方法。
  8. 前記オペレーティングシステムのうちの一つはホストオペレーティングシステムとして動作し、
    前記判断する段階以降、前記正常でない状態で動作するオペレーティングシステムがホストオペレーティングシステムである場合、前記ホストオペレーティングシステムの再ブーティングが完了する時までグラフィック処理装置の構成を中止する、請求項7に記載のグラフィック処理装置の動作方法。
  9. 前記実行状態情報は、任意の中央処理装置で実行されたハイパーバイザーから収集され、前記ハイパーバイザーが実行した少なくとも一つのゲストオペレーティングシステムの実行状態を含む、請求項7に記載のグラフィック処理装置の動作方法。
  10. 前記実行状態情報は、少なくとも一つの中央処理装置に連結された状態モニタリング装置と連結されたバスインターフェースを通じて収集された少なくとも一つのスタンドアローンオペレーティングシステムの実行状態情報と、
    任意の中央処理装置で実行されたハイパーバイザーから収集された少なくとも一つのゲストオペレーティングシステムの実行状態を含む、請求項7に記載のグラフィック処理装置の動作方法。
JP2022537810A 2019-12-23 2020-11-25 マルチマスターを支援するグラフィック処理装置を共有するシステムオンチップおよびグラフィック処理装置の動作方法 Active JP7444993B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020190173272A KR102275529B1 (ko) 2019-12-23 2019-12-23 멀티-마스터를 지원하는 그래픽 처리 장치를 공유하는 시스템 온 칩 및 그래픽 처리 장치의 동작 방법
KR10-2019-0173272 2019-12-23
PCT/KR2020/016794 WO2021132905A1 (ko) 2019-12-23 2020-11-25 멀티-마스터를 지원하는 그래픽 처리 장치를 공유하는 시스템 온 칩 및 그래픽 처리 장치의 동작 방법

Publications (2)

Publication Number Publication Date
JP2023510130A JP2023510130A (ja) 2023-03-13
JP7444993B2 true JP7444993B2 (ja) 2024-03-06

Family

ID=76575283

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022537810A Active JP7444993B2 (ja) 2019-12-23 2020-11-25 マルチマスターを支援するグラフィック処理装置を共有するシステムオンチップおよびグラフィック処理装置の動作方法

Country Status (5)

Country Link
US (1) US20230024607A1 (ja)
JP (1) JP7444993B2 (ja)
KR (1) KR102275529B1 (ja)
DE (1) DE112020006298T5 (ja)
WO (1) WO2021132905A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006201919A (ja) 2005-01-19 2006-08-03 Yoichi Furugaki マルチブートコンピュータ
JP2013500520A (ja) 2009-07-24 2013-01-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 計算ユニットの性能を性能感度に従い不均等に変化させる方法及び装置
JP2013500543A (ja) 2009-07-27 2013-01-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド データ並列スレッドを有する処理論理の複数のプロセッサにわたるマッピング
JP2014203230A (ja) 2013-04-04 2014-10-27 三菱電機株式会社 計算機システム、計算機システムの割込み処理プログラム及び計算機システムの割込み処理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090016286A (ko) * 2007-08-10 2009-02-13 엘지전자 주식회사 컴퓨터 시스템 및 그 부팅제어방법
US8239938B2 (en) * 2008-12-08 2012-08-07 Nvidia Corporation Centralized device virtualization layer for heterogeneous processing units
US8370605B2 (en) * 2009-11-11 2013-02-05 Sunman Engineering, Inc. Computer architecture for a mobile communication platform
US8650565B2 (en) * 2009-12-14 2014-02-11 Citrix Systems, Inc. Servicing interrupts generated responsive to actuation of hardware, via dynamic incorporation of ACPI functionality into virtual firmware
KR101694302B1 (ko) * 2013-03-11 2017-01-23 한국전자통신연구원 이기종 멀티코어 프로세서 시스템의 관리 장치 및 방법
EP3224712B1 (en) * 2014-11-24 2020-12-02 Intel Corporation Support for application-transparent, highly-available gpu-computing with virtual machine (vm)-checkpointing
KR102507114B1 (ko) * 2016-06-08 2023-03-07 삼성전자주식회사 복수의 운영체제들의 화면을 통합하여 표시하는 방법 및 그 전자 장치
CN109690482A (zh) * 2016-09-05 2019-04-26 华为技术有限公司 虚拟机图形处理器的分配
CN109324903B (zh) * 2018-09-21 2021-03-02 深圳前海达闼云端智能科技有限公司 用于嵌入式系统的显示资源调度方法及装置
GB2593730B (en) * 2020-03-31 2022-03-30 Imagination Tech Ltd Hypervisor removal

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006201919A (ja) 2005-01-19 2006-08-03 Yoichi Furugaki マルチブートコンピュータ
JP2013500520A (ja) 2009-07-24 2013-01-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 計算ユニットの性能を性能感度に従い不均等に変化させる方法及び装置
JP2013500543A (ja) 2009-07-27 2013-01-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド データ並列スレッドを有する処理論理の複数のプロセッサにわたるマッピング
JP2014203230A (ja) 2013-04-04 2014-10-27 三菱電機株式会社 計算機システム、計算機システムの割込み処理プログラム及び計算機システムの割込み処理方法

Also Published As

Publication number Publication date
JP2023510130A (ja) 2023-03-13
KR20210081079A (ko) 2021-07-01
KR102275529B1 (ko) 2021-07-09
DE112020006298T5 (de) 2022-12-01
KR102275529B9 (ko) 2021-10-27
US20230024607A1 (en) 2023-01-26
WO2021132905A1 (ko) 2021-07-01

Similar Documents

Publication Publication Date Title
CN106445576B (zh) 主机板及其计算机实现方法及非暂态计算机可读储存装置
US9262236B2 (en) Warning track interruption facility
US9454397B2 (en) Data processing systems
US20140068317A1 (en) Peripheral device sharing in multi host computing systems
EP2805236B1 (en) Use of a warning track interruption facility by a program
US9715403B2 (en) Optimized extended context management for virtual machines
US11099884B2 (en) Dynamic control of halt polling based on receiving a monitoring instruction executed by a guest
EP3979072A1 (en) Firmware boot task distribution to enable low latency boot performance
WO2013024510A2 (en) Storage control apparatus
JP6214559B2 (ja) 1つのプログラムにより別のプログラムに警告追跡ファシリティへのアクセスを提供する
JP7444993B2 (ja) マルチマスターを支援するグラフィック処理装置を共有するシステムオンチップおよびグラフィック処理装置の動作方法
US11243800B2 (en) Efficient virtual machine memory monitoring with hyper-threading
JP5710424B2 (ja) 情報機器
US10810032B2 (en) System and method for dynamic guest-controlled halt polling using a CPU governor
JPH0836485A (ja) 情報処理装置及び情報処理装置の制御方法
US20120284711A1 (en) Method and Arrangement for Configuring a Resource for a Virtual Runtime Environment
US20240134669A1 (en) Paravirtual pause loops in guest user space
JP2023510131A (ja) 異種のマルチcpuを運用するシステムオンチップおよびその動作方法
JP2013191153A (ja) 情報処理装置
JPS607566A (ja) マルチプロセツサ・デ−タ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231107

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: 20240206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240222

R150 Certificate of patent or registration of utility model

Ref document number: 7444993

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150