JP5774707B2 - 異種マルチプロセッサコンピューティングプラットフォームにおけるアプリケーションのスケジューリング - Google Patents

異種マルチプロセッサコンピューティングプラットフォームにおけるアプリケーションのスケジューリング Download PDF

Info

Publication number
JP5774707B2
JP5774707B2 JP2013529449A JP2013529449A JP5774707B2 JP 5774707 B2 JP5774707 B2 JP 5774707B2 JP 2013529449 A JP2013529449 A JP 2013529449A JP 2013529449 A JP2013529449 A JP 2013529449A JP 5774707 B2 JP5774707 B2 JP 5774707B2
Authority
JP
Japan
Prior art keywords
processor
performance
application
core
processor core
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.)
Expired - Fee Related
Application number
JP2013529449A
Other languages
English (en)
Other versions
JP2013537346A (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 JP2013537346A publication Critical patent/JP2013537346A/ja
Application granted granted Critical
Publication of JP5774707B2 publication Critical patent/JP5774707B2/ja
Expired - Fee Related 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
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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
    • 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/461Saving or restoring of program or task context
    • 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/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • 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)
  • Quality & Reliability (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明に係る開示は、一般的に電子機器の分野に関する。より特定的には、本発明の実施例は、異種マルチプロセッサコンピューティングプラットフォームにおいてアプリケーションをスケジューリングするための技術に関する。
パフォーマンス(performance)を改善するために、いくつかのコンピューティングシステムはマルチ(multiple)なプロセッサを含んでいる。しかしながら、マルチプロセッサコンピューティングシステムの規模は、電力の制約によって制限されてしまう。すなわち、より多くのプロセッサがシステムに追加されるにつれて、電力消費が増加するのである。同様に、追加的な電力消費は、より多くの熱を発生する。それゆえ、熱と電力消費は、マルチプロセッサコンピューティングシステムの規模を制限し得るものである。
マルチプロセッサコンピューティングシステムの規模は、電力の制約によって制限されてしまう。すなわち、より多くのプロセッサがシステムに追加されるにつれて、電力消費が増加する。
プロセッサに係る複数のプロセッサコアのパフォーマンス(例えば、実行パフォーマンス及び/又は電力消費パフォーマンス)に関する情報が、カウンター及び/又はテーブルに保管(そして記録)される。プロセッサにおけるロジックは、保管された情報に基づいてアプリケーションを実行すべきプロセッサを決定する
添付の図面を参照して詳細な説明が提供される。図における、参照番号の一番左の数字は、その参照番号が最初に登場する図を示している。異なる図における同一の参照番号の使用は、類似または同一のアイテムであることを示している。
図1は、ここにおいて述べられる種々の実施例を実行するために使用される、コンピューティングシステムに係る実施例のブロックダイヤグラムを示している。 図2は、実施例に従って、プロセッサコア部分またはコンピューティングシステムの他のコンポーネント部分のブロックダイヤグラムを示している。 図3は、いくつかの実施例に従ったフローチャートを示している。 図4は、いくつかの実施例に従ったフローチャートを示している。 図5は、ここにおいて述べられる種々の実施例を実行するために使用される、コンピューティングシステムに係る実施例のブロックダイヤグラムを示している。 図6は、ここにおいて述べられる種々の実施例を実行するために使用される、コンピューティングシステムに係る実施例のブロックダイヤグラムを示している。
以降の記載においては、種々の実施例に係る完全な理解を提供するために、数多くの具体的な詳細部分が明らかにされる。しかしながら、本発明の種々の実施例は、具体的な詳細部分が無くても実施し得るものである。他の例においては、よく知られた方法、工程、コンポーネント、そして回路は、詳細には記載されない。本発明の特定の実施例を不明瞭にしないためである。さらに、本発明の実施例に係る種々の態様が、種々の手段を使用して実行され得る。半導体集積回路(「ハードウェア」)、一つまたはそれ以上のプログラムに編成されたコンピューターで読み取り可能な命令(「ソフトウェア」)、または、ハードウェアとソフトウェアとのいくつかの組み合わせ、といったものである。この発明開示の目的のために、「ロジック(logic)」に対する参照は、ハードウェア、ソフトウェア、または、それらのいくつかの組み合わせ、のいずれかを意味するものである。同様に、「命令」と「マクロオペレーション(uop)」は、ここにおいて述べるように交換可能である。
チップ−マルチプロセッサ(CMP)システムが、例えば、サーバーやクライアントプラットフォームにとって、広まるにつれて、異種CMPが勢いを付け始めている。例えば、より小さなプロセッサコアは、より良いパフォーマンス/ワットについてのアドバンテージを提供し得る。そこで、より大きなプロセッサと一緒により小さなプロセッサを加えることは、魅力的であり得る。ここにおいて述べるように、異種CMPは、性能、エリア(area)、及び/又は、電力消費が異なる一式のコアを含んでいる。そうしたプラットフォームは、いくつかの実施例においてパフォーマンスと電力効率の両方が達成できるように、種々のアプリケーションに対するより良いコンピューターリソースのマッピングを可能にする。
しかしながら、異種CMPプラットフォームデザインにおける主なチャレンジの一つは、アプリケーションのスケジューリングである。例えば、複数のプロセッサコアに対する、パフォーマンス、及び/又は、電力効率を最適化するマッピングのアプリケーションである。この目的のために、一つの実施例は、異種のコア(例えば、単一の集積回路(IC)のチップ/ダイ上)における動的なスケジューリングのアプリケーションに関するものである。一つの実施例においては、2つのコンポーネントが、アプリケーションをスケジュールするために使用され得る。第1には、プロセッサコアモデル化予想方法が提供される。第2には、コアモデル化予想方法に基づいて異種プロセッサコアのためにアプリケーションをスケジュールするようにスケジューリングロジックが使用される。
ここにおいて述べられる技術は、図1と図5,6を参照して述べられるプロセッサといった、パフォーマンス状態設定を伴うあらゆるタイプのプロセッサにおいて使用され得る。より特定的には、図1は、本発明の実施例に従って、コンピューティングシステム100のブロックダイヤグラムを示している。システム100は、一つまたはそれ以上のプロセッサである102−1から102−N(ここにおいては、一般的に「プロセッサ102」として参照される)を含み得る。プロセッサ102は、相互接続ネットワークまたはバス104を介して通信できる。それぞれのプロセッサは、種々のコンポーネントを含んでおり、明確化のために、そのうちのいくつかがプロセッサ102−1に関して述べられているだけである。従って、残されたプロセッサ102−2から102−Nのそれぞれは、プロセッサ102−1に関して述べられたものと同一または類似のコンポーネントを含み得る。
一つの実施例においては、プロセッサ102−1は、一つまたはそれ以上のプロセッサコア106−1から106−M(ここにおいては、一般的に「コア106」として参照される)、共有キャッシュ108、及び/又は、ルーター110を含み得る。プロセッサコア106は、単一の集積回路(IC)チップ上で実施され得る。さらに、チップは、一つまたはそれ以上の共有の、及び/又は、プライベートキャッシュ(キャッシュ108といったもの)、バスまたは相互接続(バスまたは相互接続ネットワーク112といったもの)、メモリーコントローラー(図5と図6に関して述べたようなものといったもの)、または、他のコンポーネントを含み得る。同様に、コア106は、異種のものであり得る(例えば、異なるサイズ、パフォーマンス特性、電力消費特性、等のここにおいて述べられたもの)。
一つの実施例においては、プロセッサ102−1、及び/又は、システム100の種々のコンポーネントとの間で通信するために、ルーター110が使用される。さらに、プロセッサ102−1は、一つ以上のルーター110を含み得る。さらには、プロセッサ102−1の内部または外部にある種々のコンポーネント間でデータルーティン(routing)を可能にするように、数多くのルーター110が通信状態であり得る。
共有キャッシュ108は、コア106といった、プロセッサ102−1の一つまたはそれ以上のコンポーネントによって利用されるデータ(例えば、命令を含む)を保管する。例えば、共有キャッシュは、プロセッサ102のコンポーネントによるアクセスをより速くするために、メモリー114の保管されたデータをローカルにキャッシュすることができる。一つの実施例においては、キャッシュ108は、中間レベルキャッシュ(レベル2(L2)、レベル3(L3)、レベル4(L4)、またはキャッシュの他のレベル、といったもの)、最終レベルキャッシュ(LLC)、及び/又は、これらの組み合わせを含み得る。さらに、プロセッサ102−1の種々のコンポーネントは、バス(例えば、バス112)、及び/又は、メモリーコントローラーまたはハブを通じて、直接的に共有キャッシュ108と通信し得る。図1に示すように、いくつかの実施例において、一つまたはそれ以上のコア106は、レベル1(L1)、及び/又はレベル2(L2)のキャッシュ(116−1)(ここにおいては、一般的に「L1/L2キャッシュ116」として参照される)を含み得る。
一つの実施例においては、さらに図2から4に関して以下に述べるように、それぞれのコアは、アプリケーションをシステムにおける種々のプロセッサコアに割り当てることを手助けするためのロジック120を含み得る。例えば、アプリケーションは、カウンター122(システムにおける一つまたはそれ以上の他のコアのパフォーマンスを示すパフォーマンスカウンターといったもの)に保管された情報に基づいて、割り当てられる(例えば、オペレーティングシステム(OS)によって)。アプリケーションは、また、テーブル(パフォーマンス履歴テーブル(PHT)124−1といったもの)の中にインデックスするために使用されるプロセス識別子(ID)に基づいて割り当てされ得る(例えば、OSによって)。テーブルは、共有メモリー(メモリー114、及び/又は、共有キャッシュ108といったもの)もしくは、プライベートキャッシュ(例えば、L1/L2キャッシュ116)といった、プロセッサ102またはコア106(例えば、PHT124−1)の専用ストレージデバイスの中に保管される。テーブルは、例えば、さらに図2から4に関して以下に述べるように、アプリケーションをスケジューリングするときに、オペレーティングシステム(OS)に対して情報/ヒント(hint)を提供する。いくつかの実施例においては、OSとアプリケーションは、メモリー114(または図5のメモリー512および図6のメモリー610/612)に保管され得る。
図2は、本発明の実施例に従って、プロセッサコア106とコンピューティングシステムの他のコンポーネントの部分を示すブロックダイヤグラムである。一つの実施例においては、図2に示された矢印は、コア106を通した命令の流れ方向を示している。一つまたはそれ以上のプロセッサコア(プロセッサコア106といったもの)は、図1に関して述べたような、単一の集積回路チップ(またはダイ)上で実施され得る。さらに、チップは、一つまたはそれ以上の共有キャッシュ及び/又はプライベートキャッシュ(例えば、図1のキャッシュ106と108)、相互接続(例えば、図1の相互接続104及び/又は112)、ロジック120、カウンター122、メモリーコントローラー、もしくは他のコンポーネント、を含み得る。
図2に示すように、プロセッサコア106は、コア106による実行のために、命令(条件分岐を伴う命令を含む)をフェッチするためのフェッチユニット202を含み得る。命令は、メモリー114及び/又は図4と図5に関して述べられたメモリーデバイスといった、あらゆるストレージデバイスからフェッチされ得る。コア106は、また、フェッチされた命令をデコードするためのデコードユニット204を含み得る。例えば、デコードユニット204は、フェッチされた命令を複数のuop(マクロオペレーション:macro−operation)へとデコードする。加えて、コア106は、スケジュールユニット206を含み得る。スケジュールユニット206は、命令がディスパッチ(dispatch)の用意ができるまで、デコードされた命令(例えば、デコードユニット204から受け取ったもの)の保管に関して種々のオペレーションを実行する。例えば、デコードされた命令の全てのソース値が使用可能となるまで、である。一つの実施例においては、スケジュールユニット206は、実行のために、実行ユニット208に対して、デコードされた命令をスケジュールし、及び/又は、発行(またはディスパッチ)することができる。実行ユニット208は、命令がデコード(例えば、デコードユニット204によって)され、そしてディスパッチ(例えば、スケジュールユニット206によって)された後で、ディスパッチされた命令を実行する。一つの実施例においては、実行ユニット208は、一つまたはそれ以上の実行ユニットを含み得る。実行ユニットは、また、足し算、引き算、掛け算、及び/又は割り算といった、種々の計算オペレーションを実行することができ、一つまたはそれ以上の計算ロジックユニット(ALU)を含み得る。一つの実施例において、コプロセッサ(co−processor)(図示なし)は、実行ユニット208と協同して、種々の計算オペレーションを実行し得る。
さらに、実行ユニット208は、順番を変えてアウトオブオーダー(out−of−order)の命令を実行することができる。従って、プロセッサコア106は、一つの実施例においては、アウトオブオーダープロセッサであり得る。リタイアメント(retirement)ユニット210は、命令がコミット(commit)された後で、実行された命令をリタイアさせる。一つの実施例においては、実行された命令がリタイアされると、命令の実行からコミットされているプロセッサの状態を結果として生じ、命令によって使用される物理的なレジスターは割り当てが解除、等される。
コア106は、また、一つまたはそれ以上のバス(例えば、バス104及び/又は112)を介して、プロセッサコア106と他のコンポーネント(図1に関して述べられたコンポーネントといったもの)との間での通信を可能にするバスユニット214を含み得る。コア106は、また、ロジック120を含む、コア106の種々のコンポーネントによってアクセスされたデータを保管するための一つまたはそれ以上のカウンター122を含み得る。図1および図3と図4に関して述べたようにである。
さらに、いくつかの実施例においては、ロジック120は、アプリケーションのパフォーマンスに絶えず注意するだけではなく、仮にシステムにおける別のコア上で実行されるとした場合の、アプリケーション実行、及び/又は、電力消費パフォーマンスを予測する(例えば、カウンター122に保管された値に基づいて)。この情報は、電力、パフォーマンス、エネルギー、これらの組み合わせ、等といった、種々の閾値に基づいてスケジューリングを実行するOSに対して、提供される。例えば、OS及び/又はロジック120は、考慮されているプロセッサの、種々の実行または電力消費のパフォーマンスを比較して、どのコアがより良い実行または電力消費のパフォーマンスを提供するかについて決断を下す(ここにおいて述べられた種々の閾値に基づいて)。
一つの実施例に従って、シグネチャー(signature)ベースのアプローチが使用される。例えば、それぞれのアプリケーションは、システムにおける一つまたはそれ以上のコア上で実行され、アプリケーションのパフォーマンス統計は、パフォーマンス履歴テーブル(PHT)の中に保管され得る。パフォーマンス統計は、CPI(Cycles Per Instruction)、MPI(Misses Per Instruction)、等を含み得る。例えば、サンプルの表1に示すように、それぞれの表は、3つまたはそれ以上のフィールドを有している。第1のフィールドは、プロセスIDを示し、第2のフィールドは、大コア上で実行される間のアプリケーションのCPIを保管するためのものであり、最後のフィールドは、小コア上で実行される間のアプリケーションのCPIを保管する。アプリケーションが他のコアに対してコンテキストスイッチ(context switch)されるときはいつでも、ロジック120は新しい情報を得て、PHT124を更新する。
Figure 0005774707
PHT124のサイズは非常に小さい。例えば、CPIだけが使用される場合は、エントリー毎に12バイトのメモリーが、履歴情報を保管するために必要である。PHT124は、また、アプリケーションのプロセスコントロールブロック(Peocess Control Block:PCB)に保管され、及び/又は、アプリケーションが実行されるようにスケジュールされたときはいつでも、他のメモリー(例えば、PHT124、キャッシュ106、メモリー114、キャッシュ108、等)にロードされ得る。この方法論は、プロセスを越えて拡張され、プロセスの中の種々のホットスポット(hotspot)のために使用され得る。
一旦PHTが設定されると、アプリケーションが実行するようにスケジュールされるときはいつも、ロジック120はPHTから情報を読み出し、図3に示すような既定のマトリクス(電力/パフォーマンス、等といったもの)に基づいた最適なスケジューリング方針のために、OSに対してヒントを提供する。
図3を参照すると、実施例に従って、シグネチャーベースのコアモデル化予想方法アプローチのフローチャートが示されている。いくつかの実施例においては、図1と2および図5と6に関して述べた種々のコンポーネントが、図3に関して述べた一つまたはそれ以上のオペレーションを実行するために利用され得る。
図1から図3を参照すると、オペレーション302で、コンテキストスイッチにおいて、アプリケーションがロードされる(例えば、プロセス制御ブロック、または、ここにおいて述べられる別のロケーションからである)。オペレーション304では、ロジック120がPHTから情報を読み出す。オペレーション306では、PHT情報に基づいて、大または小プロセッサコアにとって、プロセスが最適(例えば、パフォーマンスまたは電力消費目的のために)であるかどうかを決定する。次に、この情報は、オペレーション308で、OSに対して送付される(実施例においては、例えば、ロジック120によって決定された電力消費、及び/又は、パフォーマンスの考慮に基づくものである)。オペレーション310では、ロジック120は、さらなる履歴情報を収集し(例えば、オペレーション306における最新の決定に基づいて)、PHT情報を更新する。
図4を参照すると、実施例に従って、パフォーマンスベースのコアモデル化予想方法アプローチのフローチャートが示されている。いくつかの実施例においては、図1と2および図5と6に関して述べた種々のコンポーネントが、図4に関して述べた一つまたはそれ以上のオペレーションを実行するために利用され得る。
図1と図2および図4を参照すると、オペレーション402で、コンテキストスイッチにおいて、アプリケーションがロードされる(例えば、プロセス制御ブロック、または、ここにおいて述べられる別のロケーションからである)。オペレーション404では、ロジック120がパフォーマンスカウンター(例えば、カウンター122)に保管された値を読み出す。オペレーション406では、パフォーマンスカウンター情報に基づいて、大または小プロセッサコアにとって、プロセスが最適(例えば、パフォーマンスまたは電力消費目的のために)であるかどうかを決定する。次に、この情報は、オペレーション408で、OSに対して送付される(実施例においては、例えば、ロジック120によって決定された電力消費、及び/又は、パフォーマンスの考慮に基づくものである)。オペレーション410では、ロジック120は、さらなる履歴情報を収集し(例えば、オペレーション406における最新の決定に基づいて)、パフォーマンスカウンター(例えば、カウンター122)を更新する。
パフォーマンスカウンターベースのアプローチにおいては、いくつかの実施例に従って、大コア上でアプリケーションが実行されている間の小コア上でのアプリケーションのパフォーマンスを効果的に予想する動的モデルが使用される。その逆もまた同様である。このアプローチは、パフォーマンスカウンター(例えば、カウンター122)を使用し、以下の式に基づいてパフォーマンスを予想する。
小コアにおけるサイクル=((大コアにおけるサイクル − 大コアにおけるストールサイクル) * 小コアのイシュー幅 / 大コアのイシュー幅 * 増倍係数) + (大コアにおけるL1ミス * 小コアにおけるL1ミスペナルティ) + (大コアにおけるL2ミス * 小コアにおけるL2ミスペナルティ)
一つの実施例においては、増倍係数は、L2ミスと読込/保管命令の数に基づいて経験的に引き出され得る。いくつかの実施例においては、大コアは、小コアに比べて2倍の読込/保管ユニット数を有している。さらに、いくつかの実施例において、かなりのL2ミスアプリケーションは、いくつかのワークロードにおいて観察されるようにメモリーレベルの並行処理を欠くために、大コアのアウトオブオーダー性による利益を受けられない。
大コアにおけるサイクル=((小コアにおけるサイクル − 小コアにおけるストールサイクル) * 大コアのイシュー幅 / 小コアのイシュー幅)/(1−ストール係数)
ストール係数は、一度アプリケーションを大コア上で実行し、ストールサイクルと全体サイクルのパフォーマンスデータを収集することによって引き出され得る。また、いくつかのプラットフォームは、キャッシュミス、浮動点ストール、等といった、長いレイテンシー(latency)オペレーションによるストールを特定するために、種々のパフォーマンスカウンターを含んでいる。これらのストールは、ロジック120で使用されるときに、リタイアされた読込/保管命令、L2ミス、等といった、他のカウンターと組合わされて、アプリケーションが別のコア上で実行されるとした場合に、そのアプリケーションのパフォーマンスの予測を手助けする。たとえ、プラットフォームに特定のメモリーストールカウンターが無い場合でも、プラットフォームにおける他のストールカウンターを使用して、ストールが見積もられる。
スケジュールに関して、以下のロジック120によって提供されたパフォーマンス情報に基づいて、いくつかの実施例は、種々のアプリケーションを大コアと小コアに対してマップする。(1)単一のアプリケーションに対して、大コアの小コアに対するパフォーマンス比率がプログラム可能な値よりも大きい場合は、大コア上でアプリケーションをスケジュールし、そうでない場合は、小コア上でスケジュールする。このプログラム可能な値は、コアの中に存在しており、種々の電力/性能マトリクスに基づいて、MSR(Machine State Register)を使用して書き込まれる。(2)マルチアプリケーションに対して、例えば、N個のアプリケーションがスケジュールされる必要があるときは、大コアの小コアに対するパフォーマンス比率に基づいて、アプリケーションを配列する。トップのN/2アプリケーション(例えば、最大のゲインを有するアプリケーション)は、大コア上でスケジュールされ、ボトムのN/2アプリケーションは、小コア上でスケジュールされる。
いくつかの実施例においては、一つまたはそれ以上の以下に示すカウンターが使用され得る(例えば、カウンター122):
(1)コアクロックサイクル:このカウンターは、コアが命令を実行してアクティブ(active)なときのサイクル数をカウントする
(2)リタイアされた命令:このカウンターは、与えられたサンプル時間の間にコアがリタイアした命令の数をカウントする
(3)L2ミス:このカウンターは、L2をミスしたメモリーリファレンスの数をカウントする
(4)スケジューラーストール:このカウンターは、小コアが命令をスケジュールすることができなかったサイクルの数をカウントする(このカウントは、また、小コアにおけるL2ミスとL2ミスレイテンシーとの積に基づいても引き出され得る)
(5)リソースストール:このカウンターは、予約ステーション、長いレイテンシーミス、等といった、リソースが使用できないために大コアがストールしたサイクルの数をカウントする
(6)ブランチストール:このカウンターは、ブランチの予測ミスのために失われたサイクルの全体数をカウントする
図5は、 本発明の一つの実施例に従って、コンピューティングシステム500のブロックダイヤグラムを示している。コンピューティングシステム500は、相互接続ネットワーク(またはバス)504を介して通信する一つまたはそれ以上の中央処理装置(CPU)またはプロセッサを含んでいる。プロセッサ502は、一般用途プロセッサ、ネットワークプロセッサ(コンピューターネットワーク503上で通信されたデータを処理するもの)、または他のタイプのプロセッサ(縮小命令セットコンピューター(RISC)プロセッサ、または複合命令セットコンピューター(CISC)プロセッサを含む)を含み得る。さらに、プロセッサ502は、単一またはマルチコアデザインであり得る。マルチコアデザインのプロセッサ502は、同一の集積回路(IC)ダイ上で異なるタイプのプロセッサコアを統合し得る。マルチコアデザインのプロセッサ502は、また、対称もしくは非対称のマルチプロセッサとして実施され得る。一つの実施例において、一つまたはそれ以上のプロセッサ502は、図1のプロセッサと同一か類似のものであり得る。例えば、一つまたはそれ以上のプロセッサ502は、図1から図4に関して述べられたコア106を含み得る。また、図1から図4に関して述べられたオペレーションは、システム500の一つまたはそれ以上のコンポーネントによって実行され得る。
チップセット506も、また、相互接続ネットワーク504と通信し得る。チップセット506は、メモリコントロールハブ(MCH)508を含む。MCH508は、メモリー512(図1におけるメモリー114と同一または類似のもの)と通信するメモリーコントローラー510を含み得る。メモリー512は、CPU502、またはコンピューティングシステム500に含まれる他のあらゆるデバイスによって実行され得る命令シーケンスを含むデータを保管し得る。本発明の一つの実施例においては、メモリー512は、ランダムアクセスメモリー(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、または、他のタイプのストレージデバイスといった、一つまたはそれ以上の揮発性ストレージ(もしくはメモリー)デバイスを含み得る。ハードディスク装置といった不揮発性のメモリーも、また、使用することができる。マルチCPU、及び/又は、マルチシステムメモリーといった追加的なデバイスは、相互接続ネットワーク504を介して通信し得る。
MCH508は、また、ディスプレイデバイス516と通信するグラフィックインターフェイス514を含み得る。本発明の一つの実施例においては、グラフィックインターフェイス514は、アクセラレーテッドグラフィックスポート(AGP)を介してディスプレイデバイス516と通信し得る。本発明の実施例において、ディスプレイ516(平面パネルディスプレイといったもの)は、例えば、ビデオメモリーまたはシステムメモリーといったストレージデバイスに保管された画像のデジタル表現を、ディスプレイ16によって解釈されて表示されるディスプレイ信号に翻訳する信号変換器を通して、グラフィックインターフェイス514と通信し得る。ディスプレイデバイスによって生成されたディスプレイ信号は、解釈される以前に種々のコントロールデバイスを通過し、後にディスプレイ516上に表示される。
ハブインターフェイス518によって、MCH508と入力/出力コントロールハブ(ICH)520とは通信できる。ICH520は、コンピューティングシステム500と通信する入力/出力デバイスに対するインターフェイスを提供する。ICH520は、ペリフェラルコンポーネントインターコネクト(PCI)ブリッジ、ユニバーサルシリアルバス(USB)コントローラー、または他のタイプのペリフェラルブリッジもしくはコントローラーといった、ペリフェラルブリッジ(またはコントローラー)524を通じてバス522と通信し得る。ブリッジ524は、CPU502とペリフェラルデバイスとの間のデータパス(data path)を提供し得る。他のタイプのトポロジー(topology)も使用され得る。マルチバスは、また、例えば、マルチブリッジまたはコントローラーを通じて、ICH520と通信し得る。さらに、ICH520と通信する他の周辺機器が含まれ得る。本発明の種々の実施例における、インテグレーテッドドライブエレクトロニクス(IDE)もしくはスモールコンピューターシステムインターフェイス(SCSI)のハードディスクドライブ、USBポート、キーボード、マウス、パラレルポーオ、シリアルポート、フロッピー(登録商標)ディスクドライブ、デジタル出力サポート(例えば、デジタルビデオインターフェイス(DVI))、または他のデバイスといったものである。
バス522は、オーディオデバイス526、一つまたはそれ以上のディスクドライブ、そしてネットワークインターフェイスデバイス530(コンピューターネットワーク503と通信するもの)と通信し得る。他のデバイスも、バス522を介して通信し得る。本発明のいくつかの実施例においては、種々のコンポーネント(ネットワークインターフェイスデバイス530といったもの)も、また、MCH508と通信することができる。加えて、プロセッサ502とMCH508とは、単一のチップを形成するように結合され得る。さらに、本発明の他の実施例においては、グラフィックアクセラレーター516が、MCH508の中に含まれ得る。
さらには、コンピューティングシステム500は、揮発性、及び/又は不揮発性のメモリー(またはストレージ)を含み得る。例えば、不揮発性のメモリーは、以下のうち一つまたはそれ以上を含む。リードオンリーメモリー(ROM)、プログラム可能なROM(PROM)、消去可能なPROM(EPROM)、電気的なEPROM(EEPROM)、ハードディスクドライブ(例えば、528)、フロッピー(登録商標)ディスク、コンパクトディスクROM(CD−ROM)、デジタルバーサタイルディスク(DVD)、フラッシュメモリー、光磁気ディスク、または、電子的データ(例えば、命令を含む)を保管することができる他のタイプの不揮発性で機械読取可能なメディア、である。
図6は、本発明の実施例に従って、ポイント−ツー−ポイント(PtP)構成において配置されたコンピューティングシステム600を示している。特には、図6は、プロセッサ、メモリー、そして、入力/出力デバイスが、数多くのポイント−ツー−ポイントインターフェイスによって相互接続されているシステムを示している。図1から図5に関して述べられたオペレーションが、システム600の一つまたはそれ以上のコンポーネントによって実行され得る。
図6に示すように、システム600は、数個のプロセッサを含み得るが、明確化のために、そのうち2つのプロセッサ602と604だけが表されている。それぞれのプロセッサ602と604は、メモリー610および612と通信できるように、ローカルなメモリコントロールハブ(MCH)606および608を含み得る。メモリー610及び/又は612は、図5のメモリー512について述べたような種々のデータを保管し得る。
一つの実施例においては、プロセッサ602および604は、図5に関して述べたプロセッサ502のうちの一つであり得る。プロセッサ602と604は、PtPインターフェイス回路616と618をそれぞれに使用して、ポイント−ツー−ポイント(PtP)インターフェイス614を介してデータを交換し得る。プロセッサ602と604は、また、PtPインターフェイス回路626,628,630、そして632を使用して、個別のPtPインターフェイス622と624を介してチップセット620とデータ交換することもできる。チップセット620は、さらに、例えば、PtPインターフェイス回路637を使用して、グラフィックインターフェイス636を介して、グラフィック回路634とデータ交換し得る。
本発明の少なくとも一つの実施例が、プロセッサ602および604の中に備えられ得る。例えば、図1から図5に係るコア106が、プロセッサ602および604の中に配置される。しかしながら、本発明の他の実施例は、図6に係るシステム600中の他の回路、ロジックユニット、またはデバイスの中に存在し得る。さらに、本発明の他の実施例は、図6に示されたいくつかの回路、ロジックユニット、またはデバイスを通じて配布され得る。
チップセット620は、PtPインターフェイス回路641を使用してバス640と通信することができる。バス640は、バスブリッジ642と入力/出力デバイス643といった、一つまたはそれ以上のデバイスと通信し得る。バス644を介して、バスブリッジ642は、キーボード/マウス645、通信デバイス646(モデム、ネットワークインターフェイスデバイス、コンピューターネットワーク503と通信し得る他の通信デバイス、といったもの)、オーディオ入力/出力デバイス、及び/又は、データ保管デバイス648といった、他のデバイスと通信できる。データ保管デバイス648は、プロセッサ602及び/又は604によって実行され得るコード649を保管する。
本発明の種々の実施例において、例えば、図1から図6に関して、ここにおいて述べたオペレーションは、ハードウェア(例えば、ロジック回路)、ソフトウェア、ファームウェア、またはそれらの組合せとして実行され得る。それらは、例えば、ここにおいて述べたプロセスを実行するようコンピューターをプログラムするために使用される命令が保管された(例えば、一時的でない)機械で読取り可能、または、コンピューターで読取り可能なメディアを含む、コンピュータープログラム製品として提供され得る。機械で読取り可能なメディアは、図1から図6に関して述べたようなストレージデバイスを含み得る。
加えて、こうしたコンピューターで読取り可能なメディアは、コンピュータープログラム製品としてダウンロードし得る。プログラムは、通信リンク(例えば、バス、モデム、またはネットワーク接続)を介してキャリアーウェーブ(carrier wave)または他のプロパゲーション(propagation)メディアにエンベットされたデータ信号として、離れたコンピューター(例えば、サーバー)から、要求元のコンピューター(例えば、クライアント)に対して転送され得る。
明細書における「一つの実施例(one embodiment、an embodiment)」または「いくつかの実施例(some embodiments)」に対する参照は、実施例に関して述べられた所定の特徴、構成、または特性が、少なくとも実施において含まれ得ることを意味する。いろいろな場所で登場する「一つの実施例において(in one embodiment)」というフレーズは、全て同一の実施例を参照しているか、または必ずしもそうではない。
同様に、明細書と特許請求の範囲において、用語「結合された(coupled)」および「接続された(connected)」が、その派生語と一緒に使用されている。いくつかの実施例において、「接続された(connected)」は、2つまたはそれ以上のエレメントが、物理的または電気的に直接お互いに接触していることを示すために使用され得る。「結合された(coupled)」は、2つまたはそれ以上のエレメントが、物理的または電気的に直接接触していることを意味している。しかしながら、「結合された(coupled)」は、また、2つまたはそれ以上のエレメントが、物理的または電気的に直接お互いに接触しているのではないが、それでもお互いに協働または相互作用し得ることをも意味している。
従って、本発明の実施例は、構成上の特徴、及び/又は、方法論的な行為に特有な言葉で述べられてきたが、請求される重要事項は、述べられた特定の特徴または行為に限定されるものではないことが理解されるべきである。むしろ、特定の特徴と行為は、請求された重要事項の実施に係る形態の例として開示されたものである。

Claims (30)

  1. プロセッサであって:
    前記プロセッサに係る複数のプロセッサコアのパフォーマンスに対応する情報を保管するためのストレージユニットと;
    アプリケーションが第1のプロセッサコア上で実行される場合と前記複数のプロセッサコアの別のプロセッサコア上で実行される場合とを比較した前記アプリケーションの予測されるパフォーマンス比率に基づいて、前記複数のプロセッサコアの前記第1のプロセッサコアが前記アプリケーションを実行することを決定するロジックであり、前記パフォーマンスは前記別のプロセッサコアに対する前記保管された情報から前記第1のプロセッサコアに対して予測されるものであり、かつ、前記第1のプロセッサコア上で前記アプリケーションを実行するスケジュールをさせるロジックと、を含み
    前記ロジックは、前記第1のプロセッサコア上で前記アプリケーションのスケジュールをさせるために、オペレーティングシステムに対してデータを伝送する、
    ことを特徴とするプロセッサ。
  2. 前記ロジックは、コンテキストスイッチの検知に応じて、前記第1のプロセッサコア上で前記アプリケーションのスケジュールをさせるために、オペレーティングシステムに対してデータを伝送する、
    請求項1に記載のプロセッサ。
  3. 前記プロセッサに係る前記複数のプロセッサのパフォーマンスに応じて前記保管された情報は、実行パフォーマンスデータまたは電力消費パフォーマンスデータを含む、
    請求項1または2に記載のプロセッサ。
  4. 前記ロジックは、収集された情報に基づいて、前記保管された情報を更新する、
    請求項1乃至3のいずれか一項に記載のプロセッサ。
  5. 前記ロジックは、少なくともいくつかの前記複数のプロセッサコア上における前記アプリケーションの実行パフォーマンスまたは電力消費パフォーマンスを予測する、
    請求項1乃至4のいずれか一項に記載のプロセッサ。
  6. 前記複数のプロセッサコアは、異種のものである、
    請求項1乃至5のいずれか一項に記載のプロセッサ。
  7. 前記ストレージユニットは:
    共有メモリー、プライベートキャッシュ、共有キャッシュ、または、専用メモリー、を含む、
    請求項1乃至6のいずれか一項に記載のプロセッサ。
  8. 前記保管された情報は、前記アプリケーションのプロセスコントロールブロックに保管されている、
    請求項1乃至7のいずれか一項に記載のプロセッサ。
  9. 前記ストレージユニットは、パフォーマンス履歴テーブル(PHT)を保管する、
    請求項1乃至8のいずれか一項に記載のプロセッサ。
  10. 前記PHTにおけるそれぞれのエントリーは、前記複数のプロセッサコアに応じて、少なくとも、プロセス識別子および命令毎の複数のサイクルを保管する、
    請求項9に記載のプロセッサ。
  11. 前記ストレージユニットは、一つまたはそれ以上のパフォーマンスカウンターを保管する、
    請求項1乃至10のいずれか一項に記載のプロセッサ。
  12. 前記一つまたはそれ以上のパフォーマンスカウンターは:
    コアクロックサイクル、リタイアされた命令、レベル2キャッシュミス、スケジューラーストール、リソースストール、またはブランチストール、を含む、
    請求項11に記載のプロセッサ。
  13. 方法であって:
    プロセッサに係る複数の異種プロセッサコアのパフォーマンスに対応する情報を保管するステップと;
    アプリケーションが第1のプロセッサコア上で実行される場合と前記複数のプロセッサコアの別のプロセッサコア上で実行される場合とを比較した前記アプリケーションの予測されるパフォーマンス比率に基づいて、前記複数のプロセッサコアの前記第1のプロセッサコアが前記アプリケーションを実行することを決定するステップであり、前記パフォーマンスは前記別のプロセッサコアに対する前記保管された情報から前記第1のプロセッサコアに対して予測されるステップと;
    前記第1のプロセッサコアに対応するデータのオペレーティングシステムに対する伝送に応じて、前記第1のプロセッサコア上で前記アプリケーションを実行するスケジュールをするステップと、を含む
    ことを特徴とする方法。
  14. 前記データの伝送は、コンテキストスイッチの検知に応じたものである、
    請求項13に記載の方法。
  15. 前記プロセッサに係る前記複数のプロセッサのパフォーマンスに応じて前記保管された情報は、実行パフォーマンスデータまたは電力消費パフォーマンスデータを含む、
    請求項13または14に記載の方法。
  16. 前記方法は、さらに、
    収集された情報に基づいて、前記保管された情報を更新するステップ、を含む
    請求項13乃至15のいずれか一項に記載の方法。
  17. 前記方法は、さらに、
    少なくともいくつかの前記複数のプロセッサコア上における前記アプリケーションの実行パフォーマンスまたは電力消費パフォーマンスを予測するステップ、を含む
    請求項13乃至16のいずれか一項に記載の方法。
  18. 前記情報を保管するステップは、前記情報を前記アプリケーションのプロセスコントロールブロックに保管する、
    請求項13乃至17のいずれか一項に記載の方法。
  19. 前記保管された情報は:
    保管されたパフォーマンス履歴テーブル(PHT)であって、
    前記PHTにおけるそれぞれのエントリーは、前記複数のプロセッサコアに応じて、少なくとも、プロセス識別子および命令毎の複数のサイクルであり;もしくは
    保管された一つまたはそれ以上のパフォーマンスカウンターであって、
    前記一つまたはそれ以上のパフォーマンスカウンターは:
    コアクロックサイクル、リタイアされた命令、レベル2キャッシュミス、スケジューラーストール、リソースストール、またはブランチストール、を含んでいる、
    請求項13乃至18のいずれか一項に記載の方法。
  20. コンピューティングシステムであって:
    複数のプロセッサコアを含むプロセッサと;
    前記プロセッサに係る複数のプロセッサコアのパフォーマンスに対応する情報を保管するためのストレージユニットと;を含み、
    少なくとも一つの前記複数のプロセッサコアは、アプリケーションが第1のプロセッサコア上で実行される場合と前記複数のプロセッサコアの別のプロセッサコア上で実行される場合とを比較した前記アプリケーションの予測されるパフォーマンス比率に基づいて、前記複数のプロセッサコアの前記第1のプロセッサコアがアプリケーションを実行することを決定するロジックであり、前記パフォーマンスは前記別のプロセッサコアに対する前記保管された情報から前記第1のプロセッサコアに対して予測されるものであり、かつ、前記第1のプロセッサコア上で前記アプリケーションを実行するスケジュールをさせるためのロジックを含んでおり、
    前記ロジックは、前記第1のプロセッサコア上で前記アプリケーションのスケジュールをさせるために、コンテキストスイッチの検知に応じて、オペレーティングシステムに対してデータを伝送する、
    ことを特徴とするコンピューティングシステム。
  21. 前記プロセッサに係る前記複数のプロセッサのパフォーマンスに応じて前記保管された情報は、実行パフォーマンスデータまたは電力消費パフォーマンスデータを含む、
    請求項20に記載のコンピューティングシステム。
  22. 前記ロジックは、少なくともいくつかの前記複数のプロセッサコア上における前記アプリケーションの実行パフォーマンスまたは電力消費パフォーマンスを予測する、
    請求項20または21に記載のコンピューティングシステム。
  23. 前記複数のプロセッサコアは、異種のものである、
    請求項20乃至22のいずれか一項に記載のコンピューティングシステム。
  24. 前記ストレージユニットは、パフォーマンス履歴テーブル(PHT)を保管し、
    前記PHTにおけるそれぞれのエントリーは、前記複数のプロセッサコアに応じて、少なくとも、プロセス識別子および命令毎の複数のサイクルを保管する、
    請求項20乃至23のいずれか一項に記載のコンピューティングシステム。
  25. 前記ストレージユニットは、一つまたはそれ以上のパフォーマンスカウンターを保管し、
    前記一つまたはそれ以上のパフォーマンスカウンターは:
    コアクロックサイクル、リタイアされた命令、レベル2キャッシュミス、スケジューラーストール、リソースストール、またはブランチストール、を含む、
    請求項20乃至24のいずれか一項に記載のコンピューティングシステム。
  26. 前記コンピューティングシステムは、さらに、
    前記プロセッサコアに接続されたオーディオデバイスを含む、
    請求項20乃至25のいずれか一項に記載のコンピューティングシステム。
  27. 命令を保管するためのコンピューターで読取り可能なメディアであって、前記命令がプロセッサで実行されると:
    プロセッサに係る複数の異種プロセッサコアのパフォーマンスに対応する情報を保管し;
    アプリケーションが第1のプロセッサコア上で実行される場合と前記複数のプロセッサコアの別のプロセッサコア上で実行される場合とを比較した前記アプリケーションの予測されるパフォーマンス比率に基づいて、前記複数のプロセッサコアの前記第1のプロセッサコアがアプリケーションを実行することを決定し、前記パフォーマンスは前記別のプロセッサコアに対する前記保管された情報から前記第1のプロセッサコアに対して予測されるものであり、;かつ
    前記第1のプロセッサコアに対応するデータのオペレーティングシステムに対する伝送に応じて、前記第1のプロセッサコア上で前記アプリケーションを実行するスケジュールをする、
    ことを特徴とするコンピューターで読取り可能なメディア。
  28. 前記命令は、コンテキストスイッチの検知に応じて、前記プロセッサに前記データの伝送をさせる、
    請求項27に記載のコンピューターで読取り可能なメディア。
  29. 前記プロセッサに係る前記複数のプロセッサのパフォーマンスに応じて前記保管された情報は、実行パフォーマンスデータまたは電力消費パフォーマンスデータを含む、
    請求項27または28に記載のコンピューターで読取り可能なメディア。
  30. 前記命令は、前記プロセッサに、少なくともいくつかの前記複数のプロセッサコア上における前記アプリケーションの実行パフォーマンスまたは電力消費パフォーマンスを予測させる、
    請求項27乃至29のいずれか一項に記載のコンピューターで読取り可能なメディア。
JP2013529449A 2010-09-25 2011-09-24 異種マルチプロセッサコンピューティングプラットフォームにおけるアプリケーションのスケジューリング Expired - Fee Related JP5774707B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/890,653 US9268611B2 (en) 2010-09-25 2010-09-25 Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
US12/890,653 2010-09-25
PCT/US2011/053177 WO2012040684A2 (en) 2010-09-25 2011-09-24 Application scheduling in heterogeneous multiprocessor computing platforms

Publications (2)

Publication Number Publication Date
JP2013537346A JP2013537346A (ja) 2013-09-30
JP5774707B2 true JP5774707B2 (ja) 2015-09-09

Family

ID=45871864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013529449A Expired - Fee Related JP5774707B2 (ja) 2010-09-25 2011-09-24 異種マルチプロセッサコンピューティングプラットフォームにおけるアプリケーションのスケジューリング

Country Status (9)

Country Link
US (2) US9268611B2 (ja)
JP (1) JP5774707B2 (ja)
KR (2) KR20140114074A (ja)
CN (1) CN103119580B (ja)
BR (1) BR112013006483A2 (ja)
DE (1) DE112011103216T5 (ja)
GB (1) GB2497449B (ja)
TW (3) TWI450104B (ja)
WO (1) WO2012040684A2 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631411B1 (en) 2009-07-21 2014-01-14 The Research Foundation For The State University Of New York Energy aware processing load distribution system and method
WO2013162589A1 (en) * 2012-04-27 2013-10-31 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor
WO2013178864A1 (en) * 2012-05-29 2013-12-05 Nokia Corporation A method and apparatus for deferring processor selection
EP2856315A4 (en) 2012-05-30 2016-02-17 Intel Corp TERMINATION REQUEST BETWEEN A HETEROGEN GROUP OF PROCESSORS
KR102001414B1 (ko) 2012-09-27 2019-07-18 삼성전자주식회사 데이터 트랜잭션에 따라 전력공급을 제어하는 시스템-온-칩 및 그 동작방법
US9037889B2 (en) 2012-09-28 2015-05-19 Intel Corporation Apparatus and method for determining the number of execution cores to keep active in a processor
US9619284B2 (en) 2012-10-04 2017-04-11 Intel Corporation Dynamically switching a workload between heterogeneous cores of a processor
US8949659B2 (en) 2012-10-18 2015-02-03 International Business Machines Corporation Scheduling workloads based on detected hardware errors
CN105144082B (zh) * 2012-12-28 2020-02-14 英特尔公司 基于平台热以及功率预算约束,对于给定工作负荷的最佳逻辑处理器计数和类型选择
US9442559B2 (en) 2013-03-14 2016-09-13 Intel Corporation Exploiting process variation in a multicore processor
US9727345B2 (en) 2013-03-15 2017-08-08 Intel Corporation Method for booting a heterogeneous system and presenting a symmetric core view
KR101553649B1 (ko) 2013-05-13 2015-09-16 삼성전자 주식회사 멀티 코어 장치 및 멀티 코어 장치의 작업 스케줄링 방법
KR102110812B1 (ko) * 2013-05-30 2020-05-14 삼성전자 주식회사 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법
US9842040B2 (en) 2013-06-18 2017-12-12 Empire Technology Development Llc Tracking core-level instruction set capabilities in a chip multiprocessor
US20150220340A1 (en) * 2013-10-04 2015-08-06 Rajkishore Barik Techniques for heterogeneous core assignment
CN103645954B (zh) * 2013-11-21 2018-12-14 华为技术有限公司 一种基于异构多核体系的cpu调度方法、装置和系统
CN103646006B (zh) * 2013-11-26 2016-08-31 乐视致新电子科技(天津)有限公司 一种处理器的调度方法、装置和系统
JP6260303B2 (ja) 2014-01-29 2018-01-17 富士通株式会社 演算処理装置及び演算処理装置の制御方法
CN103942103A (zh) * 2014-04-16 2014-07-23 乐视致新电子科技(天津)有限公司 多核体系中处理器调度策略的生成方法及装置、调度系统
CN105378670B (zh) * 2014-04-29 2019-02-26 华为技术有限公司 一种功率控制方法及装置
KR102197874B1 (ko) 2014-09-01 2021-01-05 삼성전자주식회사 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 쓰레드 스케줄링 방법
KR102354848B1 (ko) 2014-11-28 2022-01-21 삼성전자주식회사 캐시 메모리 장치 및 이를 포함하는 전자 시스템
US10101786B2 (en) * 2014-12-22 2018-10-16 Intel Corporation Holistic global performance and power management
US10133602B2 (en) * 2015-02-19 2018-11-20 Oracle International Corporation Adaptive contention-aware thread placement for parallel runtime systems
CN104809078B (zh) * 2015-04-14 2019-05-14 苏州中晟宏芯信息科技有限公司 基于退出退让机制的共享高速缓存硬件资源访问方法
WO2016171671A1 (en) 2015-04-21 2016-10-27 Hewlett-Packard Development Company, L.P. Performance change predictions
US10073718B2 (en) 2016-01-15 2018-09-11 Intel Corporation Systems, methods and devices for determining work placement on processor cores
US10303488B2 (en) * 2016-03-30 2019-05-28 Sony Interactive Entertainment Inc. Real-time adjustment of application-specific operating parameters for backwards compatibility
US10296074B2 (en) 2016-08-12 2019-05-21 Qualcomm Incorporated Fine-grained power optimization for heterogeneous parallel constructs
US11513805B2 (en) * 2016-08-19 2022-11-29 Wisconsin Alumni Research Foundation Computer architecture with synergistic heterogeneous processors
FR3056786B1 (fr) * 2016-09-29 2019-11-22 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede de gestion des taches de calcul sur un processeur multi-cœurs fonctionnellement asymetrique
US9747139B1 (en) * 2016-10-19 2017-08-29 International Business Machines Corporation Performance-based multi-mode task dispatching in a multi-processor core system for high temperature avoidance
FI3812900T3 (fi) * 2016-12-31 2024-02-09 Intel Corp Järjestelmät, menetelmät ja laitteet heterogeenistä laskentaa varten
US11281586B2 (en) * 2017-05-09 2022-03-22 Andes Technology Corporation Processor and way prediction method thereof
US10628223B2 (en) * 2017-08-22 2020-04-21 Amrita Vishwa Vidyapeetham Optimized allocation of tasks in heterogeneous computing systems
CN109937410B (zh) * 2017-10-25 2021-02-23 华为技术有限公司 核心调度方法和终端
US11138037B2 (en) 2017-11-02 2021-10-05 Mediatek Inc. Switch policy for hybrid scheduling in multi-processor systems
US10812416B2 (en) * 2017-12-27 2020-10-20 International Business Machines Corporation Reduced number of counters for reliable messaging
WO2019153187A1 (en) 2018-02-08 2019-08-15 Alibaba Group Holding Limited Hybrid system-on-chip for power and performance prediction and control
CN108664285A (zh) * 2018-05-10 2018-10-16 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
TWI698798B (zh) * 2018-10-22 2020-07-11 致茂電子股份有限公司 一種多核心運算裝置及其運作方法
US10649688B1 (en) * 2018-11-01 2020-05-12 Intel Corporation Precise longitudinal monitoring of memory operations
KR102552954B1 (ko) * 2018-11-07 2023-07-06 삼성전자주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법
GB2583103B (en) 2019-04-16 2022-11-16 Siemens Ind Software Inc Tracing instruction execution
US11544105B2 (en) * 2019-09-11 2023-01-03 Google Llc Recommendations for scheduling jobs on distributed computing devices
TWI791929B (zh) * 2019-11-28 2023-02-11 瑞昱半導體股份有限公司 通用分析裝置與方法
US20210182194A1 (en) * 2020-12-26 2021-06-17 Intel Corporation Processor unit resource exhaustion detection and remediation
CN113609126B (zh) * 2021-07-06 2022-03-11 无锡四维时空信息科技有限公司 一种众源时空数据的一体化存储管理方法及系统
CN118170503A (zh) * 2022-12-02 2024-06-11 华为技术有限公司 一种异构处理器及相关调度方法

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2683344B1 (fr) * 1991-10-30 1996-09-20 Bull Sa Systeme multiprocesseur avec moyens microprogrammes pour la repartition des processus aux processeurs.
GB2272085A (en) 1992-10-30 1994-05-04 Tao Systems Ltd Data processing system and operating system.
JPH09167141A (ja) 1995-12-18 1997-06-24 Hitachi Ltd 負荷分散制御方法
US6298370B1 (en) 1997-04-04 2001-10-02 Texas Instruments Incorporated Computer operating process allocating tasks between first and second processors at run time based upon current processor load
US6134675A (en) 1998-01-14 2000-10-17 Motorola Inc. Method of testing multi-core processors and multi-core processor testing device
US6021076A (en) 1998-07-16 2000-02-01 Rambus Inc Apparatus and method for thermal regulation in memory subsystems
US6161188A (en) 1998-11-17 2000-12-12 Ip-First, L.L.C. Microprocessor having fuse control and selection of clock multiplier
US6728892B1 (en) 1999-09-15 2004-04-27 Koninklijke Philips Electronics N.V. Method for conserving power in a can microcontroller and a can microcontroller that implements this method
JP2001175627A (ja) * 1999-12-21 2001-06-29 Toshiba Corp 分散処理計算機システム
US7165257B2 (en) 2000-02-08 2007-01-16 Mips Technologies, Inc. Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrupts
US7032119B2 (en) 2000-09-27 2006-04-18 Amphus, Inc. Dynamic power and workload management for multi-server system
US20030070013A1 (en) 2000-10-27 2003-04-10 Daniel Hansson Method and apparatus for reducing power consumption in a digital processor
US7140016B2 (en) 2000-11-29 2006-11-21 Texas Instruments Incorporated Media accelerator quality of service
JP3817449B2 (ja) 2001-07-30 2006-09-06 株式会社ルネサステクノロジ データ処理装置
EP1306632A1 (en) * 2001-10-25 2003-05-02 Shell Internationale Researchmaatschappij B.V. Process for liquefying natural gas and producing liquid hydrocarbons
US6804632B2 (en) 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US6907548B2 (en) 2002-01-02 2005-06-14 Intel Corporation Automatic testing for multi-core architecture
US7254812B1 (en) * 2002-05-31 2007-08-07 Advanced Micro Devices, Inc. Multi-processor task scheduling
US20040006729A1 (en) 2002-07-03 2004-01-08 Pendurkar Rajesh Y. Hierarchical test methodology for multi-core chips
KR100498487B1 (ko) 2003-02-08 2005-07-01 삼성전자주식회사 고속제어회로 및 저속·저전력 제어회로를 구비하는프로세서
JP4090908B2 (ja) 2003-02-21 2008-05-28 シャープ株式会社 画像処理装置および画像形成装置
DE10313605B4 (de) 2003-03-26 2009-03-19 Qimonda Ag Vorrichtung und Verfahren zum Steuern mehrerer Speicherbausteine
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US7673784B2 (en) * 2003-12-09 2010-03-09 Swagelok Company High production welding fixture
US7197652B2 (en) 2003-12-22 2007-03-27 International Business Machines Corporation Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring
EP1555595A3 (en) 2004-01-13 2011-11-23 LG Electronics, Inc. Apparatus for controlling power of processor having a plurality of cores and control method of the same
US7984442B2 (en) 2004-01-29 2011-07-19 Klingman Edwin E Intelligent memory device multilevel ASCII interpreter
US20050204346A1 (en) * 2004-03-09 2005-09-15 Intel Corporation Using sampling data for program phase detection
JP3862715B2 (ja) 2004-06-01 2006-12-27 株式会社ソニー・コンピュータエンタテインメント タスク管理方法、タスク管理装置、半導体集積回路、電子装置、およびタスク管理システム
JP4197672B2 (ja) 2004-09-30 2008-12-17 株式会社東芝 マルチプロセッサ計算機及びプログラム
US7788670B2 (en) * 2004-10-26 2010-08-31 Intel Corporation Performance-based workload scheduling in multi-core architectures
US20060168571A1 (en) * 2005-01-27 2006-07-27 International Business Machines Corporation System and method for optimized task scheduling in a heterogeneous data processing system
US20060212677A1 (en) 2005-03-15 2006-09-21 Intel Corporation Multicore processor having active and inactive execution cores
TW200638267A (en) 2005-04-22 2006-11-01 Chi Mei Comm Systems Inc Method for adjusting CPU speed of an electronic appliance
US8156348B2 (en) 2005-04-27 2012-04-10 Panasonic Corporation Power controller in information processor
TWI300903B (en) 2005-07-01 2008-09-11 Hon Hai Prec Ind Co Ltd Method for estimating cpu power
JP4367856B2 (ja) 2005-07-07 2009-11-18 レノボ シンガポール プライヴェート リミテッド プロセス制御システム及びその制御方法
US7694107B2 (en) * 2005-08-18 2010-04-06 Hewlett-Packard Development Company, L.P. Dynamic performance ratio proportionate distribution of threads with evenly divided workload by homogeneous algorithm to heterogeneous computing units
US7412353B2 (en) 2005-09-28 2008-08-12 Intel Corporation Reliable computing with a many-core processor
GB0519981D0 (en) * 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
TW200805047A (en) 2005-12-23 2008-01-16 Koninkl Philips Electronics Nv Performance analysis based system level power management
CN101385000A (zh) 2006-02-17 2009-03-11 高通股份有限公司 用于多处理器应用程序支持的系统及方法
US7596430B2 (en) 2006-05-03 2009-09-29 International Business Machines Corporation Selection of processor cores for optimal thermal performance
US7406407B2 (en) 2006-06-01 2008-07-29 Microsoft Corporation Virtual machine for operating N-core application on M-core processor
US20070294693A1 (en) 2006-06-16 2007-12-20 Microsoft Corporation Scheduling thread execution among a plurality of processors based on evaluation of memory access data
US7493477B2 (en) 2006-06-30 2009-02-17 Intel Corporation Method and apparatus for disabling a processor core based on a number of executions of an application exceeding a threshold
US7463992B2 (en) 2006-09-29 2008-12-09 Intel Corporation Method and system to self-test single and multi-core CPU systems
JP2008090546A (ja) 2006-09-29 2008-04-17 Toshiba Corp マルチプロセッサシステム
US7596714B2 (en) 2006-11-20 2009-09-29 Intel Corporation Methods and apparatus to manage throttling in computing environments
US8819699B2 (en) * 2006-12-29 2014-08-26 Intel Corporation Controlling virtual machines based on performance counters
US8615767B2 (en) 2007-02-06 2013-12-24 International Business Machines Corporation Using IR drop data for instruction thread direction
US7560945B2 (en) 2007-02-06 2009-07-14 International Business Machines Corporation Integrated circuit failure prediction
US7779235B2 (en) * 2007-02-06 2010-08-17 International Business Machines Corporation Using performance data for instruction thread direction
US7936153B2 (en) 2007-02-06 2011-05-03 International Business Machines Corporation On-chip adaptive voltage compensation
US7714635B2 (en) 2007-02-06 2010-05-11 International Business Machines Corporation Digital adaptive voltage supply
US7971035B2 (en) 2007-02-06 2011-06-28 International Business Machines Corporation Using temperature data for instruction thread direction
US8022685B2 (en) 2007-02-06 2011-09-20 International Business Machines Corporation Temperature dependent voltage source compensation
US7865750B2 (en) 2007-02-06 2011-01-04 International Business Machines Corporation Fan speed control from adaptive voltage supply
US7895454B2 (en) 2007-02-06 2011-02-22 International Business Machines Corporation Instruction dependent dynamic voltage compensation
US8161482B1 (en) * 2007-04-13 2012-04-17 Marvell International Ltd. Power optimization for multi-core devices
US20090005582A1 (en) * 2007-06-22 2009-01-01 Greg Anderson Vessels and methods for synthesis of biofuel
US7561770B2 (en) * 2007-07-30 2009-07-14 Hewlett-Packard Development Company, L.P. Microresonator systems and methods of fabricating the same
US8001338B2 (en) 2007-08-21 2011-08-16 Microsoft Corporation Multi-level DRAM controller to manage access to DRAM
US8055822B2 (en) * 2007-08-21 2011-11-08 International Business Machines Corporation Multicore processor having storage for core-specific operational data
US8005880B2 (en) 2007-08-24 2011-08-23 International Business Machines Corporation Half width counting leading zero circuit
US7797131B2 (en) * 2007-08-24 2010-09-14 International Business Machines Corporation On-chip frequency response measurement
US8185572B2 (en) 2007-08-24 2012-05-22 International Business Machines Corporation Data correction circuit
US20090210740A1 (en) * 2008-02-14 2009-08-20 Song Huang Off-chip access workload characterization methodology for optimizing computing efficiency
US8332865B2 (en) 2008-02-21 2012-12-11 International Business Machines Corporation Adjunct processor load balancing
US20090288092A1 (en) * 2008-05-15 2009-11-19 Hiroaki Yamaoka Systems and Methods for Improving the Reliability of a Multi-Core Processor
US8276145B2 (en) * 2008-06-27 2012-09-25 Microsoft Corporation Protected mode scheduling of operations
JP2010039923A (ja) * 2008-08-07 2010-02-18 Hitachi Ltd 情報処理装置
US8661129B2 (en) * 2008-11-05 2014-02-25 Xerox Corporation System and method for decentralized job scheduling and distributed execution in a network of multifunction devices
US8161304B2 (en) 2009-01-20 2012-04-17 Microsoft Corporation Power management for large memory subsystems
US8572581B2 (en) * 2009-03-26 2013-10-29 Microsoft Corporation Measurement and reporting of performance event rates
US8055805B2 (en) 2009-03-31 2011-11-08 Intel Corporation Opportunistic improvement of MMIO request handling based on target reporting of space requirements
JP5091912B2 (ja) * 2009-05-21 2012-12-05 株式会社東芝 マルチコアプロセッサシステム
US8924975B2 (en) * 2009-07-23 2014-12-30 Empire Technology Development Llc Core selection for applications running on multiprocessor systems based on core and application characteristics

Also Published As

Publication number Publication date
GB2497449A (en) 2013-06-12
DE112011103216T5 (de) 2013-07-04
JP2013537346A (ja) 2013-09-30
KR101561496B1 (ko) 2015-10-20
US20120079235A1 (en) 2012-03-29
TWI550413B (zh) 2016-09-21
TWI450104B (zh) 2014-08-21
US20160132354A1 (en) 2016-05-12
US9268611B2 (en) 2016-02-23
KR20130062999A (ko) 2013-06-13
KR20140114074A (ko) 2014-09-25
TW201437828A (zh) 2014-10-01
WO2012040684A2 (en) 2012-03-29
TW201229781A (en) 2012-07-16
GB2497449B (en) 2019-02-20
CN103119580B (zh) 2016-08-17
WO2012040684A3 (en) 2012-06-07
TW201714103A (en) 2017-04-16
CN103119580A (zh) 2013-05-22
BR112013006483A2 (pt) 2016-07-26
GB201303285D0 (en) 2013-04-10
TWI603207B (zh) 2017-10-21

Similar Documents

Publication Publication Date Title
JP5774707B2 (ja) 異種マルチプロセッサコンピューティングプラットフォームにおけるアプリケーションのスケジューリング
US20220237123A1 (en) Apparatuses and methods for a processor architecture
TWI494850B (zh) 通透地提供給作業系統之非對稱多核心處理器系統
JP5583837B2 (ja) コンピュータ・システム内でタスクを開始するためのコンピュータ実装方法、システム及びコンピュータ・プログラム
JP5932044B2 (ja) 消費電力を低減する優先度に基づくアプリケーションイベント制御(paec)
TW201734758A (zh) 使用硬體佇列裝置的多核心通訊加速
US8756605B2 (en) Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline
US20130311725A1 (en) Data processing apparatus and method for transferring workload between source and destination processing circuitry
US9519324B2 (en) Local power gate (LPG) interfaces for power-aware operations
CN103842933B (zh) 多核平台中的受约束引导技术
TW201337771A (zh) 用於包括執行緒合併之能源效率及能源節約的方法、裝置及系統
Sahba et al. Improving IPC in simultaneous multi-threading (SMT) processors by capping IQ utilization according to dispatched memory instructions
CN111752616A (zh) 用于符号存储地址生成的系统、装置和方法
US9684541B2 (en) Method and apparatus for determining thread execution parallelism
US10771554B2 (en) Cloud scaling with non-blocking non-spinning cross-domain event synchronization and data communication
KR101682985B1 (ko) 우선순위 기반 지능형 플랫폼 패시브 열 관리
Iliakis et al. LOOG: Improving GPU Efficiency With Light-Weight Out-Of-Order Execution
US8966230B2 (en) Dynamic selection of execution stage
Debnath et al. Adaptive instruction dispatching techniques for Simultaneous Multi-Threading (SMT) processors

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130318

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141209

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150319

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150701

R150 Certificate of patent or registration of utility model

Ref document number: 5774707

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

LAPS Cancellation because of no payment of annual fees