"データ処理装置であって、処理作業負荷が1回に第1の処理回路および第2の処理回路のうちの1つによって実施されるように、前記処理作業負荷を実施するように構成される、第1の処理回路および第2の処理回路と、前記第1の処理回路および前記第2の処理回路への電力供給を独立的に制御するための電力制御回路と、移転刺激に応答して、前記電力制御回路によって、移転元処理回路が電力節約状態に入れられる前に、前記移転元処理回路から移転先処理回路への前記処理作業負荷の実施の移転を制御する、作業負荷移転コントローラであって、前記移転元処理回路は、前記第1の処理回路および第2の処理回路のうちの一方であり、前記移転先処理回路は、前記第1の処理回路および前記第2の処理回路のうちのもう一方である、作業負荷移転コントローラと、を備え、少なくとも前記移転元処理回路は、キャッシュを有し、前記電力制御回路は、前記移転先処理回路によって前記移転された処理作業負荷の実施の開始に続くスヌープ期間中、前記移転元処理回路の少なくとも前記キャッシュを駆動状態に維持するように構成され、前記データ処理装置は、前記スヌープ期間中、前記移転元処理回路の前記キャッシュのデータ値をスヌープし、前記移転先処理回路のために前記スヌープしたデータ値を呼び出すように構成される、キャッシュスヌープ回路を備え、前記電力制御回路は、前記スヌープ期間の終了に続いて、前記移転元処理回路の前記の少なくとも前記キャッシュを前記電力節約状態に入れるように構成される、データ処理装置。前記処理作業負荷は、少なくとも1つの処理アプリケーションと、前記少なくとも1つの処理アプリケーションを実行するための少なくとも1つのオペレーティングシステムとを含む、請求項1に記載のデータ処理装置。前記作業負荷移転コントローラは、前記移転中、前記作業負荷の前記移転が前記少なくとも1つのオペレーティングシステムに透過的であるように、前記少なくとも1つのオペレーティングシステムから、既定のプロセッサ固有の構成情報をマスクするように構成される、請求項2に記載のデータ処理装置。前記作業負荷移転コントローラは、前記第1の処理回路および前記第2の処理回路から、前記少なくとも1つのオペレーティングシステムを論理的に分離する、少なくとも仮想化ソフトウェアを備える、請求項3に記載のデータ処理装置。前記第1の処理回路は、前記データ処理装置によって処理される処理作業負荷が、前記第1の処理回路または前記第2の処理回路のいずれか上で実施することができるように、前記第2の処理回路とアーキテクチャ上の互換性がある、請求項1~4のいずれかに記載のデータ処理装置。前記第1の処理回路は、前記第1の処理回路の性能が前記第2の処理回路の性能とは異なるように、前記第2の処理回路とはマイクロアーキテクチャ上異なる、請求項5に記載のデータ処理装置。前記移転先処理回路はキャッシュも備える、請求項1~6のいずれかに記載のデータ処理装置。前記キャッシュスヌープ回路によって前記移転先処理回路のために呼び出された前記スヌープしたデータ値は、前記移転先処理回路の前記キャッシュに記憶される、請求項7に記載のデータ処理装置。前記電力制御回路は、前記スヌープ期間中、前記キャッシュ以外の前記移転元処理回路を前記電力節約状態に入れ、前記スヌープ期間の終了に続いて、前記移転元処理回路の前記キャッシュを前記電力節約状態に入れるように構成される、請求項1~8のいずれかに記載のデータ処理装置。前記移転元処理回路の前記キャッシュは、前記移転元処理回路内のキャッシュ階層の一部であり、前記スヌープ期間中、前記キャッシュは、前記駆動状態に維持され、一方、前記キャッシュ階層内の少なくとも1つの他のキャッシュは、前記電力節約状態にある、請求項9に記載のデータ処理装置。前記移転元処理回路の前記キャッシュは、前記キャッシュ階層の少なくとも1つのレベル1キャッシュに記憶されたデータの全てを記憶するように構成される、レベル2包括的キャッシュである、請求項10に記載のデータ処理装置。前記電力制御回路は、前記スヌープ期間中、前記移転元処理回路を前記駆動状態に維持し、前記スヌープ期間の終了に続いて、前記キャッシュを含む、前記移転元処理回路を前記電力節約状態に入れるように構成される、請求項1~8のいずれかに記載のデータ処理装置。前記移転元処理回路の前記キャッシュは、レベル1キャッシュである、請求項12に記載のデータ処理装置。前記移転元処理回路は、前記スヌープ期間の終了に続き、前記電力制御回路が、前記移転元処理回路の前記キャッシュを前記電力節約状態に入れる前に、前記移転元処理回路の前記キャッシュ上で消去動作を実施して、前記キャッシュから共有メモリへ任意のダーティデータを書き戻すように構成される、請求項1~13のいずれかに記載のデータ処理装置。前記移転先処理回路は、前記移転刺激の発生前に、前記電力節約状態にあり、前記電力制御回路は、前記移転刺激に応答して、前記移転先処理回路を前記駆動状態に入れるように構成される、請求項1~14のいずれかに記載のデータ処理装置。前記移転先処理回路は、前記移転先処理回路が前記移転された処理作業負荷の実施を開始する前に、前記移転先処理回路の前記キャッシュを無効化するように構成される、請求項7に従属する、請求項8~15項のいずれかに記載のデータ処理装置。前記移転元処理回路は、前記移転先処理回路の前記キャッシュが無効化されている間に前記処理作業負荷の実施を継続するように構成され、前記作業負荷移転コントローラは、前記移転先処理回路の前記キャッシュが無効化された後に、前記処理作業負荷の前記実施を前記移転先処理回路へ移転するように構成される、請求項16に記載のデータ処理装置。前記スヌープ期間は、前記移転先処理回路が前記処理作業負荷の実施を開始する時に始まる、請求項1~17項のいずれかに記載のデータ処理装置。前記スヌープ期間は、少なくとも1つのスヌープ停止イベントを含む1組のスヌープ停止イベントのうちのいずれか1つの発生時に終了する、請求項1~18項のいずれかに記載のデータ処理装置。前記キャッシュスヌープ回路は、前記1組のスヌープ停止イベントのうちのいずれかが発生したかを監視するように構成される、請求項19に記載のデータ処理装置。前記少なくとも1つのスヌープ停止イベントは、前記移転元処理回路の前記キャッシュ内のキャッシュヒットになる、前記キャッシュスヌープ回路によって実施されたスヌープの割合が、既定の閾値レベル未満に低下した時に発生するイベントを含む、請求項19に記載のデータ処理装置。前記少なくとも1つのスヌープ停止イベントは、前記移転先処理回路が、既定のタイプの既定数の処理トランザクションを完了する時に発生するイベントを含む、請求項19に記載のデータ処理装置。前記少なくとも1つのスヌープ停止イベントは、前記移転先処理回路が前記移転された処理作業負荷の実施を開始した後、既定数の処理サイクルが経過した時に発生するイベントを含む、請求項19に記載のデータ処理装置。前記第1の処理回路と前記第2の処理回路との間で共有される共有メモリを備え、前記少なくとも1つのスヌープ停止イベントは、前記移転された処理作業負荷の実施を開始した後、前記共有メモリの特定のメモリ領域が、前記移転先処理回路によって初めてアクセスされる時に発生するイベントを含む、請求項19に記載のデータ処理装置。前記第1の処理回路と前記第2の処理回路との間で共有される共有メモリを備え、前記少なくとも1つのスヌープ停止イベントは、前記移転された処理作業負荷の実施を開始した後の初期期間に、前記移転先処理回路によってアクセスされる、前記共有メモリの特定メモリ領域が、既定の期間に前記移転先処理回路によってアクセスされない時に発生するイベントを含む、請求項19に記載のデータ処理装置。前記第1の処理回路と前記第2の処理回路との間で共有される共有メモリを備え、前記少なくとも1つのスヌープ停止イベントは、前記移転された処理作業負荷の実施を開始した後、前記移転先処理回路が、前記共有メモリの既定のメモリ場所に初めて書き込む時に発生するイベントを含む、請求項19に記載のデータ処理装置。スヌープオーバーライド状態に応答して、前記キャッシュスヌープ回路による前記移転元処理回路の前記キャッシュのスヌープをオーバーライドし、前記スヌープ期間の終了を待機することなく、前記処理作業負荷の前記実施の前記移転後に、前記キャッシュを含む前記移転元処理回路を前記電力節約状態に入れるように前記電力制御回路を制御するために、スヌープオーバーライドコントローラを備える、請求項1~26のいずれかに記載のデータ処理装置。前記スヌープオーバーライド状態は、前記移転元処理回路の前記キャッシュの前記データが、前記移転先処理回路が前記移転された処理作業負荷を実施するために必要ではない時に発生する、請求項27に記載のデータ処理装置。前記キャッシュスヌープ回路は、前記第1の処理回路および前記第2の処理回路に連結されるコヒーレント相互接続を備える、請求項1~28のいずれかに記載のデータ処理装置。データ処理装置であって、処理を実施するための第1の処理手段および処理を実施するための第2の処理手段であって、処理作業負荷が1回に前記第1の処理手段および前記第2の処理手段のうちの1つによって実施されるように、前記処理作業負荷を実施するように構成される、第1の処理手段および第2の処理手段と、前記第1の処理手段および前記第2の処理手段への電力供給を独立的に制御するための電力制御手段と、移転刺激に応答して、前記電力制御手段によって、移転元処理手段が電力節約状態に入れられる前に、前記移転元処理手段から移転先処理手段への前記処理作業負荷の実施の移転を制御するための、作業負荷移転制御手段であって、前記移転元処理手段は、前記第1の処理手段および第2の処理手段のうちの一方であり、前記移転先処理手段は、前記第1の処理手段および前記第2の処理手段のうちのもう一方である、作業負荷移転制御手段と、を備え、少なくとも前記移転元処理手段は、キャッシュされたデータ値を記憶するためのキャッシュ手段を有し、前記電力制御手段は、前記移転先処理手段によって前記移転された処理作業負荷の実施の開始に続くスヌープ期間中、前記移転元処理手段の少なくとも前記キャッシュ手段を駆動状態に維持するように構成され、前記データ処理装置は、前記スヌープ期間中、前記移転元処理手段の前記キャッシュ手段のデータ値をスヌープし、前記移転先処理手段のために前記スヌープしたデータ値を呼び出すための、キャッシュスヌープ手段を備え、前記電力制御手段は、前記スヌープ期間の終了に続いて、前記移転元処理手段の前記の少なくとも前記キャッシュ手段を前記電力節約状態に入れるように構成される、データ処理装置。第1の処理回路と第2の処理回路とを備える装置であって、処理作業負荷が1回に前記第1の処理回路および前記第2の処理回路のうちの1つによって実施されるように、前記処理作業負荷を実施するように構成される、装置のためのデータ処理方法であって、移転元処理回路を用いて前記処理作業負荷を実施することであって、前記移転元処理回路は、前記第1の処理回路および前記第2の処理回路のうちの一方であり、かつキャッシュを備え、前記第1の処理回路および前記第2の処理回路のうちのもう一方が移転先処理回路である、処理作業負荷を実施することと、移転刺激に応答して、前記移転元処理回路が電力節約状態に入れられる前に、前記処理作業負荷の実施を、前記移転元処理回路から前記移転先処理回路へ移転することと、前記移転先処理回路による前記移転された処理作業負荷の実施の開始に続くスヌープ期間中、前記移転元処理回路の少なくとも前記キャッシュを駆動状態に維持することと、前記スヌープ期間中、前記移転元処理回路の前記キャッシュの中のデータ値をスヌープし、前記移転先処理回路のために前記スヌープしたデータ値を呼び出すことと、前記スヌープ期間の終了に続いて、前記移転元処理回路の前記の少なくとも前記キャッシュを前記電力節約状態に入れることと、を含む、方法。データ処理装置であって、処理作業負荷が1回に第1の処理回路および第2の処理回路のうちの1つによって実施されるように、前記処理作業負荷を実施するように構成される、第1の処理回路および第2の処理回路と、移転刺激に応答して、前記電力制御回路によって、移転元処理回路が電力節約状態に入れられる前に、前記移転元処理回路から移転先処理回路への前記処理作業負荷の実施の移転を制御する、作業負荷移転コントローラであって、前記移転元処理回路は、前記第1の処理回路および第2の処理回路のうちの一方であり、前記移転先処理回路は、前記第1の処理回路および前記第2の処理回路のうちのもう一方である、作業負荷移転コントローラと、を備え、少なくとも前記移転先処理回路は、キャッシュを有し、前記移転先処理回路は、前記移転先処理回路が前記移転された処理作業負荷の実施を開始する前に、前記移転先処理回路の前記キャッシュを無効化するように構成され、前記移転元処理回路は、前記移転先処理回路の前記キャッシュが無効化されている間に、前記処理作業負荷の実施を継続するように構成され、前記作業負荷移転コントローラは、前記移転先処理回路の前記キャッシュが無効化された後、前記処理作業負荷の前記実施を前記移転先処理回路へ移転するように構成される、データ処理装置。図1は、一実施形態によるデータ処理システムを模式的に示すブロック図である。図1に示されるように、システムは、2つのアーキテクチャ上の互換性がある処理回路インスタンス処理回路010および処理回路150を含むが、これらの異なる処理回路インスタンスは、異なるマイクロアーキテクチャを有する。具体的には、処理回路10は、処理回路50よりも高い性能で動作するが、処理回路10は、処理回路50よりもエネルギー効率が低いというトレードオフがあるように配置される。マイクロアーキテクチャ上の違いの例は、図8Aおよび8Bを参照して以下に詳細に説明する。各処理回路は、単一の処理装置本明細書においては、プロセッサコアとも呼ばれるを含む場合があるが、代替として、処理回路インスタンスのうちの少なくとも1つはそれ自体、同じマイクロアーキテクチャを備えた1群の処理装置を備える場合がある。図1に示される例では、処理回路10は、2つのプロセッサコア15、20を含み、両者はアーキテクチャ上でもマイクロアーキテクチャ上でも同じである。対照的に、処理回路50は、単一のプロセッサコア55のみを含む。以下の記載では、プロセッサコア15、20は典型的に、これらのコアは性能を重視して設計されているために、プロセッサコア55よりも複雑度が高く、対照的にプロセッサコア55は典型的に、エネルギー効率を重視して設計されているために実質的に複雑度が低いので、プロセッサコア15、20は、大型コアと呼ばれ、プロセッサコア55は小型コアと呼ばれる。図1では、コア15、20、55の各々は、それぞれ、それ独自に関連したローカルレベル1キャッシュ25、30、60を有すると想定され、これらは、関連コアによって参照されるための命令およびデータの両方を記憶するための統一キャッシュとして配置される場合、または個別のレベル1データおよびレベル1命令キャッシュを提供する、ハーバードアーキテクチャによって配置することができる。コアの各々は独自の関連レベル1キャッシュを有すると示されるが、これは要件ではなく、代替の実施形態では、コアのうちの1つ以上はローカルキャッシュを有さない場合がある。図1に示される実施形態において、処理回路10はまた、コア15とコア20との間で共有されるレベル2キャッシュ35も含み、スヌープ制御装置40は、2つのレベル1キャッシュ25、30とレベル2キャッシュ35との間のキャッシュコヒーレンシを保証するために使用される。一実施形態において、レベル2キャッシュは、包括的キャッシュとして配置され、従って、レベル1キャッシュ25、30のいずれかに記憶される任意のデータは、レベル2キャッシュ35にも存在する。当業者によって十分理解されるように、スヌープ制御装置40の目的は、多様なキャッシュ間のキャッシュコヒーレンシを保証することであり、このため、アクセスリクエストを発行すると、コア15、20のいずれかが必ず最新バージョンの任意のデータにアクセスすることを保証することができる。したがって、例示のみを目的として、コア15が関連レベル1キャッシュ25の中に存在しないデータに対するリクエストを発行した場合、スヌープ制御装置40は、レベル1キャッシュ25から伝播されたリクエストをインターセプトし、レベル1キャッシュ30および/またはレベル2キャッシュ35を参照して、そのアクセスリクエストが、これらの他のキャッシュのうちの1つの内容からサービスすることができるかを判定する。データがキャッシュのうちのいずれにも存在しない場合にのみ、アクセスリクエストは、相互接続70を介して、メインメモリ80に伝播され、メインメモリ80は、処理回路10および処理回路50の両方の間で共有されるメモリである。相互接続70内に提供されたスヌープ制御装置75は、スヌープ制御装置40に類似の様式で動作するが、このインスタンスでは、処理装置10内部に提供されたキャッシュ構造と、処理回路50内部に提供されたキャッシュ構造との間のコヒーレンシを維持することを模索する。レベル2キャッシュ35が包括的キャッシュである例では、スヌープ制御装置は、処理回路10のレベル2キャッシュ35と、処理回路50のレベル1キャッシュ60との間のハードウェアキャッシュコヒーレンシを維持する。しかしながら、レベル2キャッシュ35が、排他的レベル2キャッシュとして配置される場合、スヌープ制御装置75は、処理回路10のキャッシュと処理回路50のキャッシュ60との間のキャッシュコヒーレンシを保証するために、レベル1キャッシュ25、30の中に保持されたデータもスヌープする。一実施形態によると、処理回路10および処理回路50のうちの1つだけが、任意の時点で作業負荷を積極的に処理することになる。本明細書の目的では、作業負荷は、図2の参照番号100によって模式的に示されるように、少なくとも1つのアプリケーションと、その少なくとも1つのアプリケーションを実行するための少なくとも1つのオペレーティングシステムを含む。この例では、2つのアプリケーション105、110は、オペレーティングシステム115の制御下で実行中であり、アプリケーション105、110およびオペレーティングシステム115はまとめて作業負荷100を形成する。アプリケーションは、ユーザレベルに存在すると考えることができ、一方、オペレーティングシステムは、特権レベルに存在し、アプリケーションおよびオペレーティングシステムによって形成される作業負荷はまとめて、ハードウェアプラットフォーム125ハードウェアレベル概念を表す上で実行する。任意の時点で、そのハードウェアプラットフォームは、処理回路10、または処理回路50のいずれかによって提供される。図1に示されるように、電力制御回路65は、処理回路10および処理回路50に電力を選択的かつ独立的に供給するために、提供される。一方の処理回路からもう一方の処理回路へ作業負荷を移転する前は、処理回路のうちの1つだけ、すなわち、現在作業負荷を実施している処理回路移転元処理回路が典型的に完全に駆動し、もう一方の処理回路移転先処理回路は典型的に電力節約状態にある。作業負荷が一方の処理回路からもう一方へ移転されるべきであることが判定されると、移転動作中、両方の処理回路が駆動状態にある期間が存在するが、作業負荷が移転される移転元処理回路は、次いで、電力節約状態に入る。電力節約状態は、実装に応じて、多様な形式をとることができるので、例えば、電源を切断した状態、部分的/完全データ保存状態、休眠状態、またはアイドル状態のうちの1つの場合がある。そのような状態は、当業者によってよく理解され、したがって、本明細書において詳細に記載しない。記載の実施形態の目的は、作業負荷の必要な性能/エネルギーレベルに応じて、処理回路の間で作業負荷の切り替えを実施することである。したがって、作業負荷に、ゲームアプリケーションの実行等、1つ以上の高負荷タスクの実行が関わる場合、作業負荷は、大型コア15、20のうちの1つを使用、または両方を使用のいずれかで、高性能処理回路10上で実行することができる。しかしながら、対照的に、作業負荷が、MP3再生等の低負荷タスクだけを実施する場合、作業負荷全体を処理回路50に移転することができ、したがって、処理回路50を利用することからエネルギー効率からの利点を実現することができる。そのような切り替え能力を最大限に利用するためには、作業負荷を移転する動作が、切り替えの利点を否定する程度までエネルギーを消費しないために、さらに切り替えプロセスがそれ自体、何らかの顕著な程度まで性能を低下させないように十分迅速であることを保証するために、切り替えが単純かつ効率的な様式で発生することを可能にする機構を提供することが必要である。一実施形態において、そのような利点は少なくとも部分的に、処理回路10を処理回路50とアーキテクチャ上で互換性があるように配置することによって達成される。これによって、正しい動作を保証しながら、作業負荷が、一方の処理回路からもう一方へ移行することができることを保証する。そのようなアーキテクチャ上の互換性は最低限、同じ命令セットアーキテクチャを共有するために、処理回路10および50の両方に必要である。しかしながら、一実施形態では、そのようなアーキテクチャ上の互換性は、2つの処理回路のインスタンスが、プログラマの観点から同一と認識されることを保証するように、より高い互換性要件も必要とする。一実施形態において、これには、同じアーキテクチャレジスタ、およびアプリケーションを実行時にオペレーティングシステムによって使用されるデータを記憶する1つ以上の特殊目的レジスタの使用が関わる。そのようなレベルのアーキテクチャ上の互換性によって、処理回路間の作業負荷の移転をオペレーティングシステム115からマスクすることが可能になるので、オペレーティングシステムは、作業負荷が処理回路10上または処理回路50上で実行されているかに関して全く認識しない。一実施形態において、一方の処理回路からもう一方への移転の取扱は、図2に示されるスイッチコントローラ120図中ではバーチャライザ、本明細書の他の場所では作業負荷移転コントローラとも呼ばれるによって管理される。スイッチコントローラは、ハードウェア、ファームウェア、および/またはソフトウェア特徴の組み合わせによって具現化することができるが、一実施形態では、1つのネイティブ命令セットに書き込まれたアプリケーションが、異なるネイティブ命令セットを適合するハードウェアプラットフォーム上で実行されることを可能にするために、仮想マシンに見出されるハイパーバイザソフトウェアに性質的に類似したソフトウェアを含む。2つの処理回路10、50の間のアーキテクチャ上の互換性に起因して、スイッチコントローラ120は、既定のプロセッサ固有の構成情報のうちの1つ以上の項目をオペレーティングシステムからマスクすることだけによって、オペレーティングシステム115から移転をマスクすることができる。例えば、プロセッサ固有の構成情報は、CP15プロセッサIDレジスタおよびCP15キャッシュタイプレジスタの内容を含む場合がある。そのような実施形態において、スイッチコントローラは、移転先回路が作業負荷の実施を成功裏に引き継ぐ用意ができていることを可能にするために、移転の時点で移転元処理回路によって保持され、移転が開始される時点では共有メモリ80から既に利用可能ではない、任意の最新アーキテクチャ状態が、移転先処理回路に利用可能になっていることを保証するために必要であるに過ぎない。前述の例を使用すると、そのようなアーキテクチャ状態は典型的に、移転元処理回路のアーキテクチャレジスタファイルの中に記憶された最新値、さらに移転元処理回路の1つ以上の特殊目的レジスタの最新値を含む。処理回路10、50の間のアーキテクチャ上の互換性に起因して、この最新アーキテクチャ状態を移転元処理回路から移転先処理回路へ移転することができる場合、移転先処理回路は、移転元処理回路から作業負荷の実施を成功裏に引き継ぐ用意ができている。処理回路10、50の間のアーキテクチャ上の互換性は、2つの処理回路の間の作業負荷全体の移転を促進するが、一実施形態においては、処理回路10、50は、2つの処理回路に関連して、異なる性能特徴が存在し、したがってエネルギー消費特徴等、マイクロアーキテクチャ上では相互に異なる。前述のように、一実施形態において、処理回路10は、高性能で、エネルギー消費が高い回路であり、一方、処理回路50は、低性能で、エネルギー消費が低い処理回路である。2つの処理回路は、いくつかの点でマイクロアーキテクチャ上では相互に異なる可能性があるが、典型的には、異なる実行パイプライン長、および/または異なる実行リソースのうちの少なくとも1つを有する。パイプライン長の違いは、典型的に、動作周波数の違いになり、すなわち、性能に影響を与える。同様に、実行リソースの違いは、処理能力、したがって性能に影響を与える。したがって、例として、処理回路10は、処理能力を向上するために、より広範な実行リソースおよび/またはより多くの実行リソースを有する場合がある。さらに、プロセッサコア15、20内のパイプラインは、非順次のスーパースカラー処理を実施するように配置される場合があり、一方、エネルギー効率が高い処理回路50内のより単純なコア55は、順次パイプラインとして配置される場合がある。マイクロアーキテクチャ上の違いの更なる検討は、図8Aおよび8Bを参照して後述する。スイッチコントローラ120に、ある処理回路から別の処理回路へ作業負荷を移転させるためにハンドオーバー動作をさせる移転刺激の生成は、多様な理由でトリガすることができる。例えば、一実施形態では、アプリケーションは、大型、小型、または大型/小型としてプロファイルされ、マークされる場合があり、それによって、オペレーティングシステムは、これに従い作業負荷を移動するようにスイッチコントローラとインターフェースすることができる。したがって、そのような手法によって、移転刺激の生成は、実行されるアプリケーションの特定の組み合わせにマップすることができ、高性能が必要な場合には、作業負荷が高性能処理回路10上で実行され、その性能が必要ではない場合には、その代わりにエネルギー効率の高い処理回路50が使用されることを保証する。他の実施形態においては、1つ以上の入力に基づいて、一方の処理回路からもう一方への作業負荷の移転をいつトリガするかを動的に判定するために、アルゴリズムを実行することができる。例えば、性能に敏感なイベントをカウントするために例えば、実行された命令の数、またはロードして記憶する動作の数、処理回路の性能カウンタを設定することができる。サイクルカウンタまたはシステムタイマと組み合わされると、これによって、より高性能の処理回路に切り替えることによって遂行されるほうが適している場合がある、計算が非常に集中するアプリケーションが実行されることを識別すること、エネルギー効率が高い処理回路上で遂行されるほうが適している場合がある、IOが集中するアプリケーションを示すロードと記憶の操作の回数が多いことを識別すること等を可能にする。移転刺激がいつ刺激される場合があるかの更なる例として、データ処理システムは、動作中にデータ処理システムの温度を監視するための1つ以上の温度センサ90を含む場合がある。最新の高性能処理回路、例えば、GHz周波数で実行する回路は、時として、範囲内で動作することが設計されていた温度限界に到達する、または超える場合があり得る。そのような温度センサ90を使用することによって、そのような温度限界が到達した時を検出することができ、これらの条件下で、データ処理システムの全体冷却をもたらすために、よりエネルギー効率の高い処理回路への作業負荷の移転をトリガするように、移転刺激を生成することができる。したがって、処理回路10が高性能処理回路であり、処理回路50がより低いエネルギーを消費するより低性能処理回路である、図1の例を考えると、デバイスの温度限界に到達した時に処理回路10から処理回路50へ作業負荷を移行することによって、より低い処理能力にも関わらず、依然として継続してプログラム実行を行うことを可能にしながら、デバイスのその後の冷却をもたらす。図1には2つの処理回路10、50が示されるが、上述の実施形態の技法は、3つ以上の異なる処理回路を組み入れるシステムにも適用することができ、データ処理システムが、より広範な性能/エネルギーレベルに及ぶことを可能にすることが理解されるであろう。そのような実施形態において、異なる処理回路の各々は、処理回路間の作業負荷全体の容易な移行を可能にするために、アーキテクチャ上では相互に互換性があるように配置されるが、必要な性能/エネルギーレベルに応じて、それらの処理回路の使用の選択を可能にするように、マイクロアーキテクチャ上では相互に異なる。図3は、移転刺激の受信後に作業負荷が移転元処理回路から移転先処理回路へ移転される時に移転元プロセッサ上および移転先プロセッサ上の両方で実施されるステップの順序を示す流れ図である。そのような移転刺激は、オペレーティングシステム115またはバーチャライザ120によって生成される場合があり、システムファームウェアインターフェースを介して、ステップ200で、移転元プロセッサ作業負荷だけでなく、スイッチコントローラ120の少なくとも一部を形成するバーチャライザソフトウェアも実行するによって切り替え刺激が検出される。ステップ200の移転刺激本明細書では切り替え刺激とも呼ばれるの受信によって、電力コントローラ65は、移転先プロセッサ上で電源オンおよびリセット動作205を開始する。そのような電源オンおよびリセットに続いて、移転先プロセッサは、ステップ210でそのローカルキャッシュを無効にし、次いで、ステップ215でスヌープを有効にする。この時点で、移転先プロセッサは、作業負荷の移転を行う準備ができていることを移転元処理回路に信号送信し、この信号によって、移転元処理回路に、ステップ225での状態保存動作を実行させる。この状態保存動作は、図4Aを参照して以下に詳細を記載するが、一実施形態においては、ハンドオーバー動作が開始される時点で、移転元処理回路が、共有メモリからは利用可能ではなく、移転先処理回路が作業負荷の実施を成功裏に引き継ぐために必要である、その最新アーキテクチャ状態のうちのいずれかをそのローカルキャッシュに記憶することが関わる。状態保存動作225に続いて、状態切り替え信号が移転先プロセッサ230に発行され、移転先プロセッサに対して、必要なアーキテクチャ状態を呼び出すためには、移転元処理回路のスヌープを今開始しなければならないことを示す。このプロセスは、図4Bを参照して以下に詳細を記載する状態復元動作230を介して発生するが、一実施形態では、移転先処理回路が、相互接続70内のスヌープ制御装置75によってインターセプトされ、移転元プロセッサのローカルキャッシュ内にキャッシュされたコピーのアーキテクチャ状態を呼び出し、移転先プロセッサに返すようにさせる、一連のアクセスを開始することが関わる。ステップ230に続いて、移転先プロセッサは、作業負荷の処理を引き継ぐ用意ができ、したがって、ステップ235で正常動作が開始する。一実施形態において、移転先プロセッサ上で正常動作が開始すると、任意のダーティデータを共有メモリ80にフラッシュするために、ステップ250で示されるように、移転元プロセッサのキャッシュを消去することができ、次いで、ステップ255で移転元プロセッサの電源を切断することができる。しかしながら、一実施形態では、移転先プロセッサの効率性をさらに向上させるため、移転元処理回路は、図3でスヌープ期間として示される期間、駆動状態のままでいるように配置される。この期間中、移転元回路のキャッシュのうちの少なくとも1つは駆動状態のままでいるので、移転先プロセッサによって発行されたアクセスリクエストに応答して、スヌープ制御回路75によってその内容をスヌープすることができる。図3に記載されるプロセスを使用して作業負荷全体を移転した後、移転先プロセッサが作業負荷の動作を開始した後、少なくとも最初の期間、作業負荷の実施中に必要なデータのうちのいくつかは、移転元プロセッサのキャッシュに存在する。移転元プロセッサが、その内容をメモリにフラッシュし、電源を切断していた場合、そのローカルキャッシュには大量のキャッシュミスが存在し、共有メモリからデータを多量に取得することになり、移転先プロセッサのキャッシュが準備中、すなわち、作業負荷によって指定された動作を実施するために移転先プロセッサによって必要とされるデータ値で充填される間に顕著な性能影響がもたらされるので、移転先プロセッサは、これらの早期段階中、比較的非効率的に動作することになる。しかしながら、スヌープ期間中に移転元プロセッサのキャッシュを駆動したままにすることによって、スヌープ制御回路75は、移転元回路のキャッシュを参照することによって、大量のこれらのキャッシュミスリクストをサービスすることが可能になり、共有メモリ80からそのデータを呼び出すことに比較して、顕著な性能利点を生み出す。しかしながら、この性能利点は、移転元プロセッサのキャッシュの内容が古くなった後、切り替え後の特定の時間のみ継続することが予想される。したがって、ある時点で、スヌープ停止イベントが生成されて、ステップ245でスヌープを無効にし、その後、ステップ250で移転元プロセッサのキャッシュが消去され、次いで、ステップ255で移転元プロセッサの電源が切断される。スヌープ停止イベントが生成される場合がある多様な事例の検討は、図6Gを参照して以下に詳細を記載する。図4Aは、一実施形態にしたがい、図3のステップ225で実施される保存動作を模式的に示す。具体的には、一実施形態において、移転元処理回路300からローカルキャッシュ330に記憶されることが必要なアーキテクチャ状態は、データ処理動作の処理中に算術論理装置ALU305によって参照されるレジスタファイル310の内容、さらにその作業負荷が移転先処理回路によって引き継がれることを成功裏に可能するために、作業負荷によって必要とされる多種多様な情報を識別する多様な特殊目的レジスタ320の内容からなる。特殊目的レジスタ320の内容は、例えば、現在実行されている命令を識別するプログラムカウンタ値、さらに多様な他の情報を含む。例えば、他の特殊目的レジスタとして、プロセッサモードの制御ビット、中断マスキング、実行状態およびフラグを保持する、プロセッサステータスレジスタ例えば、ARMアーキテクチャのCPSRおよびSPSRが挙げられる。他の特殊目的レジスタとして、データエンディアンを変更する、MMUをオンまたはオフにする、データ/命令キャッシュをオンまたはオフにする等のビットを保持する、アーキテクチャ制御ARMアーキテクチャのCP15システム制御レジスタが挙げられる。CP15の他の特殊目的レジスタは、例外アドレスおよびステータス情報を記憶する。図4Aに模式的に示されるように、移転元処理回路300は、典型的に、いくつかのプロセッサ固有の構成情報315も保持するが、この情報は、移転先処理回路には該当しないので、キャッシュ330に保存する必要はない。プロセッサ固有の構成情報315は、典型的に、ロジック定数を使用して、移転元処理回路300にハードコードされ、例えば、CP15プロセッサIDレジスタの内容各処理回路で異なる、またはCP15キャッシュタイプレジスタの内容キャッシュ25、30、60の構成に依存し、例えば、キャッシュが異なるライン長を有することを示すを含む場合がある。オペレーティングシステム115が、プロセッサ固有の構成情報315を必要とする場合、プロセッサが既にハイパーバイザモードにない限り、ハイパーバイザモードへの実行トラップが発生する。これに応答して、バーチャライザ120は、一実施形態において、リクエストされた情報の値を示す場合があるが、別の実施形態では、仮想値を返す。プロセッサID値の場合、この仮想値は、大型および小型プロセッサ両方で同じであるように選択することができるので、これにより、バーチャライザ120によって、実際のハードウェア構成がオペレーティングシステム115から隠されるようにする。図4Aに模式的に示されるように、保存動作中、レジスタファイル310および特殊目的レジスタ320の内容は、移転元処理回路によって、キャッシュ330の中に記憶されて、キャッシュされたコピー335を形成する。このキャッシュされたコピーは、次いで共有可能とマークされ、移転先プロセッサが、スヌープ制御装置75を介して、この状態をスヌープすることを可能にする。移転先プロセッサでその次に実施される復元動作は、図4Bに模式的に示される。具体的には、移転先処理回路350その独自のローカルキャッシュを有する場合も有さない場合もあるは、アーキテクチャ状態の特定の項目に対するリクエストを発行し、そのリクエストは、スヌープ制御装置75によってインターセプトされる。スヌープ制御装置は、次いで、移転元処理回路のローカルキャッシュ330にスヌープリクエストを発行して、アーキテクチャ状態のその項目が移転元のキャッシュに存在するかを判定する。図4において記載される保存動作中に行われるステップによって、移転元のキャッシュ330でヒットが検出され、そのキャッシュされたアーキテクチャ状態は、スヌープ制御回路75を介して、移転先処理回路350へ返されることになる。このプロセスは、アーキテクチャ状態の項目全てが移転元処理回路のキャッシュのスヌープを介して呼び出されるまで、反復的に繰り返すことができる。移転先処理回路350に関する任意のプロセッサ固有の構成情報は典型的に、前述のように移転先処理回路350にハードコードされる。このため、復元動作が完了すると、移転先処理回路は、作業負荷の取扱を成功裏に引き継ぐことを可能にするために必要な情報を全て有する。さらに、一実施形態において、作業負荷100が大型処理回路10または小型処理回路50によって実施されるかどうかに関わりなく、バーチャライザ120は、同じ値を有する仮想構成情報をオペレーティングシステム115に提供し、このため、大型および小型処理回路10、50の間のハードウェアの違いは、バーチャライザ120によってオペレーティングシステム115からマスクされる。すなわち、オペレーティングシステム115は、作業負荷100の実施が、異なるハードウェアプラットフォームに移転されたことを認識しない。図4Aおよび4Bを参照して記載した保存および復元動作によると、多様なプロセッサインスタンス10、50は、移転元プロセッサから移転先プロセッサへアーキテクチャ状態を移転する際に関わる時間、エネルギー、およびハードウェアの複雑度を軽減するために、相互にハードウェアキャッシュコヒーレントであるように配置される。本技法は、移転元プロセッサから移転先プロセッサへ移転されなければならず、移転動作が行われる時点で共有メモリからは利用可能ではない、状態の全てを記憶するために移転元プロセッサのローカルキャッシュを使用する。状態は、移転元プロセッサのキャッシュ内で共有可能とマークされているため、これによって、ハードウェアキャッシュコヒーレントの移動先プロセッサが、この情報を移転動作中にスヌープすることを可能にする。そのような技法を使用することによって、その情報をメインメモリ、またはローカルメモリのいずれかがマップした記憶要素に保存する必要なく、プロセッサインスタンス間で情報を移転することが可能である。したがって、これは、顕著な性能およびエネルギー消費の利点を生み、エネルギー消費利点を実現することを模索するために、作業負荷を切り替えることが適切である多様な状況が増える。しかしながら、前述のキャッシュコヒーレンスを使用する技法は、共有メモリを介して最新アーキテクチャ状態をルーティングすることなく、移転先プロセッサに最新アーキテクチャ状態を利用可能にするための1つの加速機構を提供するが、そのような加速機構を実施することができる唯一の方式ではない。例えば、図5は、ハンドオーバー動作中にアーキテクチャ状態が移転可能であるために、専用バス380が移転元処理回路300と移転先処理回路350との間に提供される、代替機構を示す。したがって、このような実施形態では、図3の保存および復元動作225、230は、専用バス380を利用する代替の移転機構によって置換される。そのような手法は典型的に、キャッシュコヒーレンシ手法を採用するよりも高いハードウェアコストを有するがキャッシュコヒーレンシ手法は典型的に、データ処理システム内に既に位置するハードウェアを利用する、切り替えを実施するさらに高速の方式を提供することになり、特定の実装においては有利であり得る。図6A~6Iは、移転元処理回路300から移転先処理回路350へ作業負荷の実施を移転するために実施される、一連のステップを模式的に示す。移転元処理回路300は、処理回路10、50のうち、移転前に作業負荷を実施している方であり、移転先処理回路は、処理回路10、50のもう一方である。図6Aは、移転元処理回路300が、電力コントローラ65によって駆動され、処理作業負荷100を実施中であり、一方、移転先処理回路350が電力節約状態にあるという、初期状態のシステムを示す。この実施形態において、電力節約状態は、電源切断状態であるが、前述のように、他の種類の電力節約状態も使用されてもよい。作業負荷100は、アプリケーション105、110と、アプリケーション105、110を実行するためのオペレーティングシステム115とを含み、バーチャライザ120によって、移転元処理回路300のハードウェアプラットフォームから、抽象化される。作業負荷100を実施中、移転元処理回路300は、図4Aに示されるように、例えば、レジスタファイル310および特殊目的レジスタ320の内容を含む場合がある、アーキテクチャ状態400を維持する。図6Bでは、移転刺激430はバーチャライザ120によって検出される。図6Bでは、移転刺激430は外部イベント例えば、温度センサ90による温度上昇の検出として示されるが、移転刺激430はまた、バーチャライザ120自体によって、またはオペレーティングシステム115例えば、オペレーティングシステム115は、特定のタイプのアプリケーションがプロセスされると、バーチャライザ120に伝達するように構成することができるによってトリガされたイベントであることも可能である。バーチャライザ120は、移転刺激430に応答して、電力コントローラ65を制御することによって、移転先処理回路350を駆動状態に入れるために、移転先処理回路350に電力を供給する。図6Cでは、移転先処理回路350が、バーチャライザ120の実行を開始する。バーチャライザ120は、移転先処理回路350を駆動する時に、キャッシュ420の中に存在する場合がある、誤ったデータ値によって生じる処理エラーを防止するために、そのキャッシュ420を無効にするように、移転先処理回路350を制御する。移転先キャッシュ420が無効化されている間、移転元処理回路350は、作業負荷100を引き続き実施する。移転先キャッシュ420の無効化が完了すると、バーチャライザ120は、作業負荷100のハンドオーバーの準備ができたことを、移転元処理回路300に信号送信するように、移転先処理回路350を制御する。移転先処理回路350のハンドオーバー操作の準備できるまで、移転元処理回路300上で作業負荷100の処理を継続することによって、ハンドオーバーの実施の影響を軽減することができる。次の段階で、図6Dに示されるように、移転元処理回路300は、作業負荷100の実施を停止する。この段階中、移転元処理回路300も移転先処理回路350も作業負荷100を実施しない。アーキテクチャ状態400のコピーが、移転元処理回路300から移転先処理回路350へ移転される。例えば、アーキテクチャ状態400は、図4Aおよび4Bに示されるように、移転元キャッシュ410に保存され、移転先処理回路350に復元することができる、または図5に示されるように、専用バス上から移転することができる。アーキテクチャ状態400は、共有メモリ80の中に既に存在する情報以外に、移転先処理回路350が作業負荷100を実施するために必要な状態情報全てを含む。アーキテクチャ状態400を移転先処理回路350に移転させると、移転元処理回路300は、移転元キャッシュ410が駆動状態のままである以外、電力制御回路65図6Eを参照によって電力節約状態になる。一方、移転先処理回路350は、移転されたアーキテクチャ状態400を使用して、作業負荷100の実施を開始する。移転先処理回路350が作業負荷100の処理を開始すると、スヌープ期間が開始する図6Fを参照。スヌープ期間中、スヌープ制御装置75は、移転先処理回路350に代わって、移転元キャッシュ410に記憶されたデータをスヌープし、データを呼び出すことができる。移転先処理回路350が、移転先キャッシュ420の中に存在しないデータをリクエストすると、移転先処理回路350は、スヌープ制御装置75からデータをリクエストする。スヌープ制御装置75は、次いで、移転元キャッシュ410をスヌープし、スヌープの結果キャッシュヒットがある場合、スヌープ制御装置75は、移転元キャッシュ410からスヌープしたデータを呼び出し、移転先処理回路350に返し、そこでスヌープしたデータを移転先キャッシュ420に記憶することができる。一方、移転元キャッシュ410のスヌープの結果がキャッシュミスの場合、リクエストされたデータは、共有メモリ80から取得され、移転先処理回路350に返される。移転元キャッシュ410のデータにアクセスするほうが、共有メモリ80にアクセスするよりも時間が短く、より少ないエネルギーを必要とするため、ある期間移転元キャッシュ410をスヌープすることによって、作業負荷100の移転先処理回路350へのハンドオーバーに続く最初の期間中の処理性能を向上させ、エネルギー消費を削減する。図6Gに示されるステップで、スヌープ制御装置75は、移転元キャッシュ410を駆動状態に維持することがもはや効率的ではないことを示す、スヌープ停止イベントを検出する。スヌープ停止イベントは、スヌープ期間の終了をトリガする。スヌープ停止イベントは、スヌープ制御回路75によって監視される1組のスヌープ停止イベントのうちの任意の1つの場合がある。例えば、1組のスヌープ停止イベントは、以下のイベントのうちの任意の1つ以上を含むことができる。a移転先処理回路350が作業負荷100の実施を開始した後に、移転元キャッシュ410のキャッシュヒットとなるスヌープヒットの割合または比すなわち、スヌープヒットの数/合計スヌープの数に比例する量が、既定の閾値レベル未満になる場合b移転先処理回路350が作業負荷100の実施を開始して以来実施されたトランザクションの数、または既定のタイプのトランザクション例えば、キャッシュ可能なトランザクションの数が、既定の閾値を超える場合c移転先処理回路350が作業負荷100の実施を開始して以来経過した処理サイクルの数が、既定の閾値を超える場合d移転先処理回路350が作業負荷100の実施を開始して以来初めて、共有メモリ80の特定領域がアクセスされた場合e移転先処理回路350が作業負荷100の実施を開始した後、初期期間中にアクセスされた、共有メモリ80の特定領域が、既定のサイクル数または既定の期間中、アクセスされない場合f移転先処理回路350が、移転された作業負荷100の実施を開始して以来初めて、既定のメモリ場所に書き込む場合これらのスヌープ停止イベントは、スヌープ制御装置75を含む、コヒーレント相互接続70の中のプログラム可能なカウンタを使用して検出することができる。他の種類のスヌープ停止イベントも、1組のスヌープ停止イベントに含められる場合がある。スヌープ停止イベントを検出すると、スヌープ制御装置75は、スヌープ停止信号440を移転元プロセッサ300へ送信する。スヌープ停止装置75は、移転元キャッシュ410のスヌープを停止し、今後は共有メモリ80からリクエストされたデータを取得し、取得したデータを、取得したデータをキャッシュすることができる、移転先処理回路350に返すことによって、移転先処理回路350からのデータアクセスリクエストに応答する。図6Hでは、移転元キャッシュの制御回路は、スヌープ停止信号440に応答して、共有メモリ80に任意の有効およびダーティデータ値を保存するためにすなわち、そのキャッシュされた値は、共有メモリ80の中の対応する値よりも最新である、キャッシュ410を消去する。図6Iでは、移転元キャッシュ410は、次いで、電力コントローラ65によって電力が切断されるので、移転元処理回路300は全体が電力節約状態になる。移転先処理回路350は、作業負荷100の実施を継続する。オペレーティングシステム115の観点から、この状況はこうして図6Aと同じである。オペレーティングシステム115は、作業負荷の実行がある処理回路から別の処理回路へ移転したことを認識しない。別の移転刺激が発生すると、作業負荷の実施を切り替えて第1のプロセッサに戻すためにこの場合、処理回路10、50の移転元処理回路と移転先処理回路は逆になる、図6A~6Iの同じステップを使用することができる。図6A~6Iの実施形態において、キャッシュ410および移転元処理回路300に対する独立的な電力制御が有効であるので、移転元処理回路300は、移転元キャッシュ410以外、移転先処理回路350が作業負荷の実施を開始すると電力を切断することができ図6Eを参照、一方、移転元処理回路350のキャッシュ410だけが駆動状態のままである図6F~6Hを参照。移転元キャッシュ410は、次いで、図6Iで電力が切断される。この手法は、エネルギーを節約するために、特に、移転元処理回路300が大型処理回路10である場合に有用とすることができる。しかしながら、スヌープ期間中に移転元処理回路300全体を引き続き駆動し、次いで、スヌープ期間および移転元キャッシュ410の消去の終了に続いて、移転元処理回路300全体を、図6Iの電力節約状態に入れることも可能である。これは、移転元キャッシュ410が、移転元プロセッサコアに深く組み込まれているので、移転元プロセッサコアとは独立的に駆動することができない場合により有用な場合がある。この手法はまた、移転元プロセッサが小型処理回路50であり、その電力消費が、大型処理回路10に比較して有意ではない場合、大型処理回路10が移転された作業負荷100の処理を開始すると、スヌープ期間中に、キャッシュ60以外の小型処理回路50を電力節約状態に切り替えることは、システムの全体的な電力消費にほとんど影響を有さない場合があるので、より実際的であり得る。これは、小型処理回路50および小型コアのキャッシュ60に対して個別の電力制御を提供する余分のハードウェア複雑度が正当化されない場合があることを意味することができる。いくつかの状況では、作業負荷の移転前に、移転元キャッシュの中に記憶されたデータは、作業負荷100の実施を開始する際に、移転先処理回路350によって必要とされないことがわかる場合がある。例えば、移転元処理回路300は、移転が発生する時にアプリケーションをちょうど完了したばかりの場合があり、したがって、移転の時点の移転元キャッシュ410のデータは、完了したアプリケーションに関係し、移転後に移転先処理回路350によって実施されるアプリケーションには関係しない。そのような場合、スヌープオーバーライドコントローラは、バーチャライザ120およびスヌープ制御回路75をトリガして、移転元キャッシュ410のスヌープをオーバーライドし、移転元処理回路300を制御して、スヌープ停止イベントがスヌープ期間の終了の信号を送信することを待機することなく、移転元キャッシュ410を消去して電力を切断する。この場合、図6A~6Iの技法は、データが移転元キャッシュ410からスヌープされる、図6Fのステップを含まず、図6Eのステップから、図6Gのステップへ直接進むことになる。このように、前もって、移転元キャッシュ410の中のデータが移転先処理回路350に有用ではないことがわかっている場合、スヌープ停止イベントを待機することなく、移転元キャッシュ410および移転元処理回路を電力節約状態に入れることによって、電力を節約することができる。スヌープオーバーライドコントローラは、バーチャライザ120の一部にすることができる、または移転元処理回路300上で稼動するファームウェアとして実装することができる。スヌープオーバーライドコントローラは要素の組み合わせとして実装することも可能で、例えば、オペレーティングシステム115は、アプリケーションが終了した時にバーチャライザ120に伝達することができ、バーチャライザ120は、次いで、アプリケーションが終了した時に移転が発生する場合、移転元キャッシュ410のスヌープをオーバーライドすることができる。図7はグラフで、線600は性能に伴いエネルギー消費がどのように変動するかを示す。このグラフの様々な部分で、データ処理システムは、性能とエネルギー消費との間の適切なトレードオフを取得することを模索するために、図1に示されるプロセッサコア15、20、55の様々な組み合わせを利用するように配置することができる。したがって、例として、いくつかの非常に高性能タスクを実行することが必要な場合、所望の性能を達成するために、処理回路10の大型コア15、20の両方を実行することが可能である。任意選択的に供給電圧を変動する技法は、これらの2つのコアを利用する時に性能およびエネルギー消費のいくらかの変動を可能にするために使用することができる。必要な性能が大型コアのうちの1つだけを使用して達成できるレベルにまで性能要件が低下すると、タスクは、大型コア15、20のうちの1つだけに移行することができ、もう一方のコアは電力切断または何らかの他の電力節約状態に入る。ここでも、供給電圧の変動は、そのような単一の大型コアを使用する際に、性能とエネルギー消費との間で何らかの変動を可能にするために使用することができる。2つの大型コアから1つの大型コアへの遷移は、全てのインスタンスで利用されるのが処理回路10であり、処理回路50は電力節約状態にあるので、移転刺激の生成も、作業負荷を移転するための上記の技法の使用も必要としないことに注意されたい。しかしながら、図7の破線610によって示されるように、小型コアが必要な性能を達成することが可能なレベルにまで性能が低下すると、作業負荷全体が、小型コア55上で実行され、処理回路10が電力節約状態に入るように、作業負荷全体を処理回路10から処理回路50へ移転するための前述の機構をトリガするために、移転刺激を生成することができる。ここでも、供給電圧を変動する技法は、小型コア55の性能およびエネルギー消費のいくらかの変動を可能にするために使用することができる。図8Aおよび8Bはそれぞれ、一実施形態による、低性能プロセッサパイプライン800と高性能プロセッサパイプライン850との間のマイクロアーキテクチャ上の違いを示す。図8Aの低性能プロセッサパイプライン800は、図1の小型処理コア55に適し、図8Bの高性能プロセッサパイプライン850は、大型コア15、20に適する。図8Aの低性能プロセッサパイプライン800は、メモリ80から命令を取得するための取得段階810と、取得した命令を解読するための解読段階820と、整数演算を実施するための整数パイプライン840、乗算累積演算を実施するためのMACパイプライン、およびSIMD単一命令、複数データ演算または浮動小数点演算を実施するためのSIMD/FPUパイプライン844を含む、複数の実行パイプラインとを含む。低性能プロセッサパイプライン800では、発行段階830は、一度に単一命令を発行し、命令が取得された順序で命令を発行する。図8Bの高性能プロセッサパイプライン850は、メモリ80から命令を取得するための取得段階860と、取得した命令を解読するための解読段階870と、解読した命令に指定されたレジスタの名前を変更するための名前変更段階875と、実行するための命令をディスパッチするためのディスパッチ段階880と、2つの整数パイプライン890、892、MACパイプライン894、および2つのSIMD/FPUパイプライン896、898を含む、複数の実行パイプラインとを含む。高性能プロセッサパイプライン850では、ディスパッチ段階880は、パイプライン890、892、894、896、898のうちの異なるものに対して一度に複数の命令を発行することができる、並列発行段階である。また、ディスパッチ段階880は、命令を非順次に発行することができる。低性能プロセッサパイプライン800とは異なり、SIMD/FPUパイプライン896、898は、可変長であり、すなわち、SIMD/FPUパイプライン896、898を通じて進む動作は、特定の段階をスキップするように制御することができる。そのような手法の利点は、複数の実行パイプラインそれぞれが異なるリソースを有する場合、最短パイプラインを最長パイプラインと同じ長さにするように、人工的に長さを変える必要がなく、その代わりに、異なるパイプラインによって生じる結果の非順次性質に対応するロジックが必要なことである例えば、処理例外が発生した場合、全てを順次に戻す。名前変更段階875は、プログラム命令の中に含まれ、プログラマのモデル観点からは、ハードウェアプラットフォームの実際のレジスタである、物理的レジスタに対して、特定のアーキテクチャレジスタを識別する、レジスタ指定子をマップするために提供される。名前変更段階875は、プログラマのマイクロプロセッサのモデル観点に存在するよりも大きい集団の物理的レジスタが、マイクロプロセッサによって提供されることを可能にする。このより大きい集団の物理的レジスタは、2つ以上の異なる命令に指定された同じアーキテクチャレジスタを、2つ以上の異なる物理的レジスタにマッピングすることによって、書き込み後書き込みWAWハザード等のハザードが回避されることを可能にして、異なる命令が同時に実行することができるため、非順次実行中に有用である。レジスタの名前変更技法の詳細については、読者は、本発明人による米国特許出願第2008/114966号および米国特許第7,590,826号を参照されたい。低性能パイプライン800および高性能パイプライン850は、いくつかの点でマイクロアーキテクチャ上異なる。マイクロアーキテクチャ上の違いは、a異なる段階を有するパイプライン。例えば、高性能パイプライン850は、低性能パイプライン800には存在しない、名前変更段階875を有する。b異なる能力を有するパイプライン段階。例えば、低性能パイプライン800の発行段階830は、単一の命令発行だけが可能であるが、高性能パイプライン850のディスパッチ段階880は、並列に命令を発行することができる。並列発行は、パイプラインの処理能力を向上させ、したがって性能が向上する。c異なる長さを有するパイプライン段階。例えば、高性能パイプライン850の解読段階870は、3つの副段階を含む場合があるが、低性能パイプライン800の解読段階820は、単一の副段階だけを含む場合がある。パイプライン段階が長くなればなるほど副段階の数が大きくなればなるほど、同時に実行できる命令の数が大きくなり、したがって、パイプラインが動作することができる動作周波数が大きくなり、より高レベルの性能をもたらす。d実行パイプラインの異なる数例えば、高性能パイプライン850は、低性能パイプライン800よりも多い実行パイプラインを有する。より多くの実行パイプラインを提供することによって、より多くの命令を並列に処理することができ、したがって性能が高まる。e順次実行パイプライン800のようにまたは非順次実行パイプライン850のようにを提供する。命令が非順次に実行できる場合、性能を最適化するために命令の実行を動的にスケジュールすることができるので、性能が向上する。例えば、低性能の順次パイプライン800では、一連のMAC命令は、その後の命令が整数パイプライン840およびSIMD/浮動小数点パイプライン844のうちの1つによって実行される可能性がある前に、MACパイプライン842によって1つずつ実行されることが必要である。対照的に、高性能パイプライン850では、MAC命令はMACパイプ894によって実行することができ、一方名前変更によって解決することができない任意のハザードに左右されるが異なる実行パイプライン890、892、896、898を使用するその後の命令は、MAC命令と並列に実行することができる。すなわち、非順次命令は処理性能を向上させることができる。これらの、およびその他の例のマイクロアーキテクチャ上の違いによって、パイプライン850が、パイプライン800よりも高い性能処理を提供することになる。一方、マイクロアーキテクチャ上の違いは、パイプライン850がパイプライン800よりも多くのエネルギーを消費することにもなる。このように、マイクロアーキテクチャ上異なるパイプライン800、850を提供することによって、作業負荷の処理を高性能高性能パイプライン850を有する大型処理回路10を使用することによってまたはエネルギー効率低性能パイプライン800を有する小型処理回路50を使用することによっていずれかのために最適化することが可能になる。図9は、作業負荷100の実施が、大型処理回路10と小型処理回路50との間で切り替えられる際の、データ処理システムの電力消費の変動を例示するグラフを示す。図9の点Aでは、作業負荷100は、小型処理回路50上で実施されているので、電力消費が低い。点Bで、高負荷処理が実施されることを示す移転刺激が発生し、このために、作業負荷の実施は、大型処理回路10にハンドオーバーされる。すると、大型処理回路10が作業負荷を実施する間、電力消費が上昇し、点Cの高さにとどまる。点Dでは、両方の大型コアが、組み合わされて動作して、作業負荷を処理すると想定される。しかしながら、性能要件が、作業負荷が大型コアのうちの1つだけによって取り扱うことができるレベルに低下すると、作業負荷は、大型コアのうちの一方だけに移行し、もう一方はレベルの隣接点Eまでの電力の低下によって示されるように、電力が切断される。しかしながら、点Eで、別の移転刺激が発生して低負荷処理へ戻ることが望まれることを示す、小型処理回路50への作業負荷の実施の移転をトリガする。小型処理回路50が処理作業負荷の処理を開始すると、大型処理回路の大部分は電力節約状態にあるが、大型処理回路10のキャッシュは、スヌープ期間中図9の点F駆動状態のままで、キャッシュの中のデータが小型処理回路50のために呼び出されることを可能にする。したがって、大型処理回路10のキャッシュによって、点Fの電力消費は、小型処理回路50だけが駆動していた時の点Aよりも高くなる。スヌープ期間の最後に、大型処理回路10のキャッシュの電力が切断され、点Gで、電力消費は、小型処理回路50だけが作動していた低レベルに戻る。上述のように、図9で、電力消費は、大型処理回路10のキャッシュがスヌープ期間中駆動しているため、点Fのスヌープ期間中、点Gよりも高い。この電力消費の増加は、大型から小型への遷移の後のみに示されるが、小型から大型への遷移の後にスヌープ期間が存在する場合があり、その間に小型処理回路50のキャッシュの中のデータは、スヌープ制御装置75によって、大型処理回路10のためにスヌープすることができる。小型から大型の遷移のスヌープ期間は、小型処理回路50のキャッシュをスヌープ期間中駆動状態のままにすることによって消費される電力が、処理負荷作業を実施する際に大型処理回路10によって消費される電力に比較して有意ではないので、したがって、小型処理回路50のキャッシュが駆動していることによる電力消費の非常にわずかな増加は、図9のグラフには視認することができないため、図9には示されていない。上述の実施形態は、エネルギー効率または性能のために最適化されたマイクロアーキテクチャを備える2つ以上のアーキテクチャ上の互換性があるプロセッサインスタンスを含むシステムを説明した。オペレーティングシステムおよびアプリケーションによって必要とされるアーキテクチャ状態は、作業負荷全体がプロセッサインスタンス間で切り替えられることを可能にするために、必要な性能/エネルギーレベルに応じて、プロセッサインスタンス間で切り替えることができる。一実施形態において、プロセッサインスタンスのうちの1つだけが任意の指定の時間に作業負荷を実行し、他の処理インスタンスは電力節約状態にあるか、または電力節約状態に入る/終了する過程にある。一実施形態において、プロセッサインスタンスは、移転元プロセッサから移転先プロセッサへアーキテクチャ状態を切り替える際に関わる時間、エネルギー、およびハードウェアの複雑度を削減するために、相互にハードウェアキャッシュコヒーレントであるように配置される場合がある。これによって、切り替え動作を実施するための時間を削減し、実施形態の技法を使用することができる可能性を増やす。そのようなシステムは、よりエネルギー効率の高いプロセッサをより低い処理作業負荷のために使用することができ、より高い性能のプロセッサをより高い処理作業負荷のために使用することができるように、バッテリー寿命および/または温度管理、および性能の範囲のいずれかのためにエネルギー効率が重要である多様な状況において使用される場合がある。2つ以上の処理インスタンスはアーキテクチャ上で互換性があるため、アプリケーションの観点からは、2つのプロセッサ間の唯一の違いは、利用可能な性能である。一実施形態の技法を通じて、オペレーティングシステムおよびアプリケーションがどのプロセッサ上で実行しているかに関して、オペレーティングシステム、およびオペレーティングシステム上で実行しているアプリケーションに対して透過的であるように、オペレーティングシステムを関与する必要なく、プロセッサ間で必要な全てのアーキテクチャ状態を移動することができる。前述の実施形態に記載のようにアーキテクチャ上の互換性があるプロセッサインスタンスを使用する場合、移転される必要があるアーキテクチャ状態の全体量は、データキャッシュ内に容易に収容することができ、最新の処理システムはしばしば、キャッシュコヒーレンスを実装するので、切り替えるアーキテクチャ状態をデータキャッシュ内に記憶することによって、移転先プロセッサは、既存の回路構造を利用するエネルギー効率の高い方式で、この状態を迅速にスヌープすることができる。1つの記載の実施形態において、切り替え機構は、データ処理システムが温度制限を超えないことを保証するために使用される。具体的には、温度制限に到達しそうな場合、作業負荷全体をよりエネルギー効率の高いプロセッサインスタンスに切り替えることができ、より低い処理能力ではあるが、継続してプログラム実行を行いながら、システム全体を冷却することを可能にする。本明細書では特定の実施形態を説明したが、本発明はそれに限定されないこと、本発明の範囲内でそれに対する多数の変更および追加が行われ得ることが理解されるであろう。例えば、本発明の範囲を逸脱することなく、独立請求項の特徴とともに、以下の従属請求項の特徴の多様な組み合わせを作製することができる。"