(57)【特許請求の範囲】
【請求項１】
マルチプロセッサ（ＭＰ）処理システムであって、
複数のプロセッサであって、
第１の事前決定された周波数を有する第１のクロック信号及び第１の事前決定された動作電圧を有する第１の供給電圧に従って、受信及び動作を実行する第１のプロセッサと、
前記第１のクロック信号又は前記第１の事前決定された周波数と異なる第２の事前決定された周波数を有する第２のクロック信号のいずれかに従って、受信及び動作を実行し、前記第１の供給電圧又は前記第１の事前決定された動作電圧と異なる第２の事前決定された動作電圧を有する第２の供給電圧のいずれかに従って、受信及び動作を実行する第２のプロセッサと、
を含む、複数のプロセッサと、
少なくとも前記第２のプロセッサに連結され、モード選択信号に応じて、第１の動作モードと第２の動作モードとの間で前記ＭＰ処理システムの動作を動的にスイッチするコントローラであって、
前記モード選択信号はキャッシュミス率に応じて生成され、
前記第１の動作モードにある場合、前記第２のプロセッサは、前記第１のクロック信号及び前記第１の供給電圧に従って、受信及び動作を実行し、
前記第２の動作モードにある場合、前記第２のプロセッサは、前記第２のクロック信号及び前記第２の供給電圧に従って、受信及び動作を実行する、
コントローラと、
を備え、
前記第１のプロセッサは、さらに、前記第１の動作モード及び前記第２の動作モードの両方の間、前記第１のクロック信号及び前記第１の供給電圧に従って、受信及び動作を実行する、
ＭＰ処理システム。
【請求項２】
前記複数のプロセッサは、前記第１の動作モード及び前記第２の動作モードの両方の間、前記第１のクロック信号及び前記第１の供給電圧に従って、受信及び動作を実行する第３のプロセッサをさらに含む、請求項１に記載のＭＰ処理システム。
【請求項３】
前記複数のプロセッサは、前記第１の動作モード及び前記第２の動作モードの両方の間、前記第１のクロック信号及び前記第１の供給電圧に従って、受信及び動作を実行する第４のプロセッサをさらに含む、請求項２に記載のＭＰ処理システム。
【請求項４】
前記複数のプロセッサは、前記第１の動作モード及び前記第２の動作モードの両方の間、前記第１のクロック信号及び前記第１の供給電圧に従って、受信及び動作を各々が実行する第５のプロセッサ、第６のプロセッサ、第７のプロセッサ及び第８のプロセッサをさらに含む、請求項３に記載のＭＰ処理システム。
【請求項５】
前記コントローラに連結され、前記第１のクロック信号及び前記第２のクロック信号を生成及び出力するクロック生成回路であって、前記第１のクロック信号は、前記第１のプロセッサに入力される、クロック生成回路と、
前記コントローラに連結され、前記第１の供給電圧を生成して前記第１のプロセッサに出力し、前記第１の供給電圧又は前記第２の供給電圧を前記第２のプロセッサに出力する動作電圧生成回路と、
前記クロック生成回路と前記第２のプロセッサとの間に配置され、前記第１のクロック信号及び前記第２のクロック信号を受信し、前記第１のクロック信号又は前記第２のクロック信号を前記第２のプロセッサに出力するスイッチ回路であって、前記第１の動作モードの間、前記第１のクロック信号が前記第２のプロセッサに出力され、前記第２の動作モードの間、前記第２のクロック信号が前記第２のプロセッサに出力される、スイッチ回路と、
をさらに備え、
前記第１の動作モード及び前記第２の動作モードの間、前記第１のクロック信号が、前記第１のプロセッサに出力される、
請求項１から４のいずれか１項に記載のＭＰ処理システム。
【請求項６】
前記コントローラに連結され、
前記第２の動作モードにある場合、前記第２の供給電圧を生成して前記第２のプロセッサに出力し、
前記第１の動作モードにある場合、前記第１の供給電圧を前記第２のプロセッサに出力する
電圧レギュレータ回路をさらに備える、請求項１から５のいずれか１項に記載のＭＰ処理システム。
【請求項７】
前記キャッシュミス率は、Ｌ１キャッシュミス率であり、
前記Ｌ１キャッシュミス率が、事前決定された閾値より高い場合、前記コントローラは、前記第２のプロセッサの動作を前記第２の動作モードから前記第１の動作モードにスイッチする、請求項１から６のいずれか１項に記載のＭＰ処理システム。
【請求項８】
複数の第１のプロセッサ及び第２のプロセッサと、
第１の動作モード及び第２の動作モードにおいて、前記第２のプロセッサの動作を制御し、
モード選択信号に応じて、前記第１の動作モードと前記第２の動作モードとの間で前記第２のプロセッサの動作を動的にスイッチする
コントローラであって、前記モード選択信号は、キャッシュミス率に応じて生成される、コントローラと、
前記コントローラに連結され、第１のクロック信号及び第２のクロック信号を生成及び出力するクロック生成回路と、
前記クロック生成回路と前記第２のプロセッサとの間に配置され、前記第１のクロック信号及び前記第２のクロック信号を受信し、１つを前記第２のプロセッサへの出力のために選択するスイッチ回路であって、前記第１の動作モードの間、前記第１のクロック信号が前記第２のプロセッサに出力され、前記第２の動作モードの間、前記第２のクロック信号が前記第２のプロセッサに出力される、スイッチ回路と、
前記複数の第１のプロセッサ及び前記第２のプロセッサに連結され、これらと共に用いられるキャッシュメモリと、
前記コントローラに応答し、前記第２のプロセッサ及び前記キャッシュメモリに連結され、さらに、前記第２の動作モードの間、前記第２のプロセッサと前記キャッシュメモリとの間でクロックドメインクロッシング機能を提供し、前記第１の動作モードの間、バイパス機能を提供するクロックドメインクロッシングＣＤＣ及びバイパス回路と、
を備え、
前記第１の動作モード及び前記第２の動作モードの間、前記複数の第１のプロセッサのいずれにも前記第２のクロック信号が入力されることなく、前記第１のクロック信号が、前記複数の第１のプロセッサの各々に入力される、装置。
【請求項９】
前記コントローラに連結され、
前記第１の動作モードの間、前記複数の第１のプロセッサ及び前記第２のプロセッサに、第１の動作供給電圧信号を出力し、
前記第２の動作モードの間、前記複数の第１のプロセッサに第１の動作電圧信号を出力し、前記第２のプロセッサに第２の動作供給電圧信号を出力する
動作電圧生成回路をさらに備える、請求項８に記載の装置。
【請求項１０】
前記装置は、単一の半導体基板上に配置される、請求項８又は９に記載の装置。
【請求項１１】
第１の動作電圧信号を受信し、
前記第１の動作電圧信号から第２の動作電圧信号を生成し、
前記第１の動作モードの間、前記第２のプロセッサに入力されるために、前記第１の動作電圧信号を出力し、
前記第２の動作モードの間、前記第２のプロセッサに入力されるために、前記第２の動作電圧信号を出力する
電圧レギュレータ及びバイパス回路をさらに備える、請求項９に記載の装置。
【請求項１２】
前記コントローラは、さらに、モード選択信号に応じて、前記第１の動作モードと前記第２の動作モードとの間で、前記第２のプロセッサの動作を動的にスイッチする、請求項８から１１のいずれか１項に記載の装置。
【請求項１３】
前記第２のプロセッサの動作は、負荷情報及び前記キャッシュミス率に応じて動的にスイッチされる、請求項１２に記載の装置。
【請求項１４】
対称マルチプロセッシングＳＭＰモードと非対称マルチプロセッシングＡＳＭＰモードとの間で複数のプロセッサをスイッチする方法であって、
第１のプロセッサが動作する全ての時間において、第１の事前決定された周波数を有する第１のクロック信号及び第１の事前決定された動作電圧を有する第１の供給電圧に従って、前記第１のプロセッサを動作させる段階と、
キャッシュミス率に応じて生成されたモード選択信号を受信する段階と、
前記モード選択信号に応じて、第１の動作モード又は第２の動作モードで第２のプロセッサを動作させる段階であって、
前記第１の動作モードにおいて、前記第１のクロック信号及び前記第１の供給電圧に従って、前記第２のプロセッサを動作させる段階、及び
前記第２の動作モードにおいて、前記第１の事前決定された周波数と異なる第２の事前決定された周波数を有する第２のクロック信号に従って、かつ、前記第１の事前決定された動作電圧と異なる第２の事前決定された動作電圧を有する第２の供給電圧に従って、前記第２のプロセッサを動作させる段階
を含む、段階と、
を備える方法。
【請求項１５】
少なくとも２つのプロセッサが対称マルチプロセッシングＳＭＰモード又は非対称マルチプロセッシングＡＳＭＰモードで動作するマルチプロセッシングモードの複数のプロセッサを有する処理システムを動作させる方法であって、
前記少なくとも２つのプロセッサを前記ＳＭＰモードで動作させる段階であって、前記少なくとも２つのプロセッサは、第１の事前決定された周波数を有するＳＭＰクロック信号を受信し、第１の電圧を有するＳＭＰ動作供給電圧を受信し、前記少なくとも２つのプロセッサは、第１のプロセッサ及び第２のプロセッサを含む、段階と、
ＳＭＰモードからＡＳＭＰモードにスイッチする命令を受信する段階であって、前記命令は、キャッシュミス率に基づいて生成される、段階と、
ＳＭＰモードからＡＳＭＰモードに、前記少なくとも２つのプロセッサの動作をスイッチする段階と、
を備え、
前記動作をスイッチする段階は、
前記第１の事前決定された周波数と異なる第２の事前決定された周波数を有するＡＳＭＰクロック信号を生成する段階と、
前記第１の電圧と異なる第２の電圧において、ＡＳＭＰ動作供給電圧を生成する段階と、
前記ＡＳＭＰクロック信号及び前記ＡＳＭＰ動作供給電圧を前記第２のプロセッサに入力する段階と、
その後、前記第２の事前決定された周波数及び前記第２の電圧において、前記第２のプロセッサを動作させ、前記第１の事前決定された周波数及び前記第１の電圧において、前記第１のプロセッサを動作させる段階と、
を含む、方法。
【請求項１６】
コントローラに、請求項１４又は１５に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］
本願は、発明の名称を「マルチプロセッサの動的な非対称及び対称モードスイッチのためのハードウェア装置及び方法」とする２０１４年１０月１６日に出願された先の米国特許出願第１４／５１６，３１４号の一部継続出願である発明の名称を「新規な低コスト、低電力高性能ＳＭＰ／ＡＳＭＰマルチプロセッサシステム」とする２０１４年１２月２２日に出願された米国仮特許出願第１４／５８０，０４４号に対する優先権を主張し、これらの両方の特許出願は、その全体において再現されているが如く、参照により本明細書に組み込まれる。本発明は、概して、マルチプロセッサアーキテクチャ及びシステムに関し、より詳細には、マルチプロセッサ／コアシステムにおける少なくとも１つのプロセッサ／コアを、非対称及び対称マルチプロセッシングモードの間でスイッチする装置及び方法に関する。
【背景技術】
【０００２】
マルチプロセッシングシステムは、データを処理し、所望の機能を実行するマルチプロセッサ（例えば、中央処理装置（ＣＰＵ））を用いる。理解されるように、「プロセッサ」という用語は、「ＣＰＵ」又は「コア」という用語の同義語として用いられ、当業者によって容易に理解される。従来技術において、対称マルチプロセッシング（ＳＭＰ）及び非対称マルチプロセッシング（ＡＳＭＰ）という、２つの主なタイプの異なるマルチプロセッシングシステムが存在する。
【０００３】
ＳＭＰシステムは、典型的には、全てのシステムリソース、単一の同期Ｌ２キャッシュインタフェース（及び、おそらくは非同期Ｌ２）を共有することによって特徴付けられ、プロセッサは、同じクロック周波数及びクロック電圧において制御される。これは、概して、プロセッサ／コアが（Ｌ２キャッシュ及びメモリのような）共有メモリシステムに等しくアクセス可能であることをも意味する。ＳＭＰにおいて、クロック周波数及び電圧は、個々に調整可能ではなく、従って、コア／プロセッサ単位で変更することはできない。さらに、Ｌ２キャッシュは、全てのコアの中で共有され、Ｌ２キャッシュ周波数は、コア単位でスケーラブルではない。全てではないにせよ、大半のアプリケーションにおいて、ＳＭＰにおけるプロセッサの動作負荷はアンバランスであり、このことが、より高い電力消費を招く。ＳＭＰは、全てのプロセッサ／コアに等しく対応するものとして（平等性）、さらに特徴付けられる。
【０００４】
対照的に、ＡＳＭＰシステムは、典型的には、プロセッサに対して個々に、異なるクロック周波数及び／又はクロック電圧を有することによって特徴付けられ、Ｌ２キャッシュクロック周波数は、別個にスケール変更することができる。従って、プロセッサクロック周波数及びＬ２キャッシュ周波数は、動作負荷に基づいて（例えば、メモリ集中動作負荷に対して、コアに関するより高速なＬ２キャッシュ）、スケール変更することができる。一般論では、ＡＳＭＰシステムは、ＳＭＰシステムより電力効率が高いが、追加の及びより複雑なハードウェアによって、より高い電力消費が引き起こされる可能性がある。Ｌ１キャッシュミス率が高い場合、プロセッサは、Ｌ２キャッシュからのデータをフェッチする。要求された関連データがＬ２キャッシュのより低いクロック周波数部分に格納されている場合、プロセッサは、データを待たなければならない。このことは、より高いレイテンシ及びより高い電力消費を招く。ＡＳＭＰは、全てのプロセッサ／コアに異なる様に又は不均等に対応するものとして（不平等性）、さらに特徴付けられる。
【０００５】
図１を参照すると、ＡＳＭＰを用いるマルチプロセッサを有する処理システム１００の基本的なアーキテクチャが示される。理解されるように、同様の従来技術のシステムがＳＭＰに用いられている。しかしながら、当業者によって容易に理解されるように、このプロセッサは、単一のクロック周波数において、かつ、単一の供給電圧レベルを用いて動作する。
【０００６】
処理システム１００は、図示されるように、対応するＬ２キャッシュメモリ部分１２０（１２０ａ、１２０ｂ、１２０ｃ、１２０ｄ）及びクロックドメインクロッシング（ＣＤＣ）回路１３０（１３０ａ、１３０ｂ、１３０ｃ、１３０ｄ）を有するマルチプロセッサ１１０（１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ）を有するマルチプロセッサコア及びキャッシュサブシステム１０５を含む。４つのプロセッサ１１０（及び対応するメモリ及び回路）が示されるが、プロセッサの数は、小さくても大きくてもよく、ただし、少なくとも２つを含む。理解されるように、各プロセッサ１１０は、１つ又は複数の中央処理装置（ＣＰＵ）を含んでよい。
【０００７】
処理システム１００は、それぞれのプロセッサ、キャッシュ及びＣＤＣへの電力供給において用いられる複数の供給電圧信号を生成する電力管理制御（ＰＭＩＣ）回路１４０をさらに含む。同様に、クロック生成回路１５０は、それぞれのプロセッサ、キャッシュ及びＣＤＣのクロック動作において用いられる様々な事前決定されたクロック周波数を有する複数のクロック信号を生成する。理解されるように、ＰＭＩＣ回路は、サブシステム１０５と同じ基板上にあってよく、又は、他の基板上に（例えば、他のＩＣに）与えられてよい。
【０００８】
上述され、当業者によって容易に理解されるように、別個のＳＭＰ及びＡＳＭＰアーキテクチャ／システムの各々は、様々な短所又は欠点と同様に、様々な長所又は利益を有する。（ハードウェア及びソフトウェアの機能性の両方において）各システムのタイプの複雑さ及びコストによって、設計者は、典型的には、特定のアプリケーションに基づいて、ＳＭＰシステム又はＡＳＭＰシステムのいずれかを選択しなければならない。従来技術のマルチプロセッサシステムは、ＡＳＭＰ又はＳＭＰのいずれかを用いていた。
【０００９】
従って、二重のマルチプロセッサコア、キャッシュ及びＣＤＣサブシステムを有することなく、動作可能であり、かつ、ＳＭＰシステム及びＡＳＭＰシステムの機能性の両方を同時に提供可能なマルチプロセッシングシステム又はアーキテクチャが必要とされる。
【発明の概要】
【００１０】
一実施形態によれば、マルチプロセッサ（ＭＰ）処理システムを含むマルチプロセッシングシステムが提供される。ＭＰ処理システムは、第１の事前決定された周波数を有する第１のクロック信号及び第１の事前決定された動作電圧を有する第１の供給電圧に従って、受信及び動作を実行するように構成される第１のプロセッサと、第１のクロック信号又は第１の事前決定された周波数と異なる第２の事前決定された周波数を有する第２のクロック信号のいずれかに従って、受信及び動作を実行し、かつ、第１の事前決定された動作電圧と異なる第２の事前決定された動作電圧を有する第２の供給電圧に従って、受信及び動作を実行するように構成される第２のプロセッサとを含む複数のプロセッサを含む。コントローラは、少なくとも第２のプロセッサに連結され、第１の動作モードと第２の動作モードとの間で、第２のプロセッサの動作をスイッチするように構成される。第１の動作モードにある場合、第２のプロセッサは、第１のクロック信号及び第１の供給電圧に従って、受信及び動作を実行し、第２の動作モードにある場合、第２のプロセッサは、第２のクロック信号及び第２の供給電圧に従って、受信及び動作を実行する。第１のプロセッサは、第１の動作モード及び第２の動作モードの両方の間、第１のクロック信号及び第１の供給電圧に従って、受信及び動作のみを実行するようにさらに構成される。
【００１１】
他の実施形態によれば、装置が提供される。装置は、マルチプロセッシング機能を実行するように構成される複数のプロセッサを含む。複数のプロセッサは、複数の第１のプロセッサ及び第２のプロセッサを含む。コントローラは、第１のモード及び第２のモードにおいて、第２のプロセッサの動作を制御するように構成される。装置は、コントローラに連結され、第１のクロック信号及び第２のクロック信号を生成及び出力するように構成されるクロック生成回路と、クロック生成回路と第２のプロセッサとの間に配置され、第１のクロック信号及び第２のクロック信号を受信し、第２のプロセッサに出力される１つを選択するように構成されるスイッチ回路をさらに含む。第１の動作モードの間、第１のクロック信号は、第２のプロセッサに出力され、第２の動作モードの間、第２のクロック信号は、第２のプロセッサに出力される。第１の動作モード及び第２の動作モードの間、第１のクロック信号は、複数の第１のプロセッサに入力される。キャッシュメモリは、複数のプロセッサに連結され、これらと共に用いられるように構成される。クロックドメインクロッシング（ＣＤＣ）及びバイパス回路は、コントローラに応答し、第２のプロセッサ及びキャッシュメモリに連結され、第２の動作モードの間、第２のプロセッサとキャッシュメモリとの間でクロックドメインクロッシング機能を提供し、第１の動作モードの間、バイパス機能を提供するようにさらに構成される。
【００１２】
他の実施形態において、対称マルチプロセッシング（ＳＭＰ）モードと非対称マルチプロセッシング（ＡＳＭＰ）モードとの間で複数のプロセッサをスイッチする方法が提供される。方法は、第１のプロセッサが動作する全ての時間において、第１の事前決定された周波数を有する第１のクロック信号及び第１の事前決定された動作電圧を有する第１の供給電圧に従って、第１のプロセッサを動作させる段階と、モード選択信号を受信する段階と、モード選択信号に応じて、第１の動作モード又は第２の動作モードで第２のプロセッサを動作させる段階と、を含む。第１の動作モードにおいて、第２のプロセッサは、第１のクロック信号及び第１の供給電圧に従って動作させられ、第２の動作モードにおいて、第２のプロセッサは、第１の事前決定された周波数と異なる第２の事前決定された周波数を有する第２のクロック信号に従って、かつ、第１の事前決定された動作電圧と異なる第２の事前決定された動作電圧を有する第２の供給電圧に従って、動作させられる。
【００１３】
さらに他の実施形態において、マルチプロセッシングモードの複数のプロセッサを有する処理システムを動作させる方法が提供される。ここで、少なくとも２つのプロセッサは、対称マルチプロセッシング（ＳＭＰ）モード又は非対称マルチプロセッシング（ＡＳＭＰ）モードで動作する。方法は、少なくとも２つのプロセッサをＳＭＰモードで動作させる段階であって、少なくとも２つのプロセッサは、第１の事前決定された周波数を有するＳＭＰクロック信号を受信し、第１の電圧を有するＳＭＰ動作供給電圧を受信し、少なくとも２つのプロセッサは、第１のプロセッサ及び第２のプロセッサを含む、段階と、ＳＭＰモードからＡＳＭＰモードにスイッチする命令を受信する段階と、ＳＭＰモードからＡＳＭＰモードに少なくとも２つのプロセッサの動作をスイッチする段階と、を含む。動作をスイッチする段階は、第１の事前決定された周波数と異なる第２の事前決定された周波数を有するＡＳＭＰクロック信号を生成する段階と、第１の電圧と異なる第２の電圧において、ＡＳＭＰ動作供給電圧を生成する段階と、ＡＳＭＰクロック信号及びＡＳＭＰ動作供給電圧を第２のプロセッサに入力する段階と、その後、第２の事前決定された周波数及び第２の電圧において、第２のプロセッサを動作させ、第１の事前決定された周波数及び第１の電圧において、第１のプロセッサを動作させる段階と、を含む。
【００１４】
他の実施形態によれば、マルチプロセッサ（ＭＰ）処理システムが提供される。ＭＰ処理システムは、第１の事前決定された周波数を有する第１のクロック信号及び第１の事前決定された動作電圧を有する第１の供給電圧に従って、受信及び動作を実行するように各々が構成される第１のプロセッサ及び第２のプロセッサと、第１のクロック信号又は第１の事前決定された周波数と異なる第２の事前決定された周波数を有する第２のクロック信号のいずれかに従って、受信及び動作を実行し、かつ、第１の事前決定された動作電圧と異なる第２の事前決定された動作電圧を有する第２の供給電圧に従って、受信及び動作を実行するように構成される第３のプロセッサと、第１のクロック信号又は第１の事前決定された周波数と異なる第３の事前決定された周波数を有する第３のクロック信号のいずれかに従って、受信及び動作を実行し、かつ、第１の事前決定された動作電圧と異なる第３の事前決定された動作電圧を有する第３の供給電圧に従って、受信及び動作を実行するように構成される第４のプロセッサと、を含む複数のプロセッサを有する。コントローラは、少なくとも第３のプロセッサ及び第４のプロセッサに連結され、第１の動作モードと第２の動作モードとの間で、第３のプロセッサ及び第４のプロセッサの動作をスイッチするように構成される。第１の動作モードにある場合、第３のプロセッサ及び第４のプロセッサの各々は、第１のクロック信号及び第１の供給電圧に従って、受信及び動作を実行し、第２の動作モードにある場合、第３のプロセッサは、第２のクロック信号及び第２の供給電圧に従って、受信及び動作を実行し、第４のプロセッサは、第３のクロック信号及び第３の供給電圧に従って、受信及び動作を実行する。第１のプロセッサ及び第２のプロセッサは、第１の動作モード及び第２の動作モードの両方の間、第１のクロック信号及び第１の供給電圧に従って、受信及び動作のみを実行するようにさらに構成される。
【００１５】
さらに他の実施形態において、対称マルチプロセッシング（ＳＭＰ）モードと非対称マルチプロセッシング（ＡＳＭＰ）モードとの間で複数のプロセッサをスイッチする方法が提供される。方法は、第１のプロセッサ及び第２のプロセッサの動作中の全ての時間において、第１の事前決定された周波数を有する第１のクロック信号及び第１の事前決定された動作電圧を有する第１の供給電圧に従って、第１のプロセッサ及び第２のプロセッサを動作させる段階と、モード選択信号を受信する段階と、モード選択信号に応じて、第１の動作モード又は第２の動作モードで、第３のプロセッサ及び第４のプロセッサの両方を動作させる段階と、を含む。第１の動作モードにおいて、第１のクロック信号及び第１の供給電圧に従って、第３のプロセッサ及び第４のプロセッサを動作させ、第２の動作モードにおいて、第１の事前決定された周波数と異なる第２の事前決定された周波数を有する第２のクロック信号に従って、かつ、第１の事前決定された動作電圧と異なる第２の事前決定された動作電圧を有する第２の供給電圧に従って、第３のプロセッサを動作させ、第１の事前決定された周波数と異なる第３の事前決定された周波数を有する第３のクロック信号に従って、かつ、第１の事前決定された動作電圧と異なる第３の事前決定された動作電圧を有する第３の供給電圧に従って、第４のプロセッサを動作させる。
【００１６】
さらに他の実施形態において、複数のプロセッサを有するマルチプロセッサシステムにおける処理の方法が提供される。方法は、複数のプロセッサ内の第１のアクティブプロセッサのみを用いて、マルチプロセッサシステム内における処理を実行する段階と、マルチプロセッサシステム内における処理のために、第２のプロセッサがアクティブ化されるべきであると判断する段階と、判断に応じて、第２のプロセッサをアクティブ化する段階と、対称マルチプロセッシング（ＳＭＰ）モード又は非対称マルチプロセッシング（ＡＳＭＰ）モードのいずれかに従って、第１のアクティブプロセッサ及び第２のアクティブプロセッサを用いて、マルチプロセッサシステム内における処理を実行する段階と、を含む。ＳＭＰモードにある場合、第１のアクティブプロセッサ及び第２のアクティブプロセッサの各々は、第１の事前決定された周波数を有する第１のクロック信号及び第１の事前決定された電圧を有する第１の供給電圧に従って動作し、ＡＳＭＰモードにある場合、第１のアクティブプロセッサは、第１のクロック信号及び第１の供給電圧に従って動作し、第２のプロセッサは、第１の事前決定された周波数と異なる第２の事前決定された周波数を有する第２のクロック信号に従って、かつ、第１の事前決定された動作電圧と異なる第２の事前決定された動作電圧を有する第２の供給電圧に従って動作する。方法は、モード選択信号を受信する段階と、モード選択信号に応じて、ＳＭＰモードからＡＳＭＰモードに、又はＡＳＭＰモードからＳＭＰモードに、第１のアクティブプロセッサ及び第２のアクティブプロセッサの動作をスイッチする段階と、をさらに含む。
【００１７】
他の実施形態において、第１のプロセッサ及び第２のプロセッサを含む複数のプロセッサを有するマルチプロセッサ（ＭＰ）処理システムが提供される。コントローラは、少なくとも第２のプロセッサに連結され、アクティブ化／非アクティブ化信号に応じて、第２のプロセッサをアクティブ化又は非アクティブ化し、第２のプロセッサのアクティブ化の際に、対称マルチプロセッシング（ＳＭＰ）モード又は非対称マルチプロセッシング（ＡＳＭＰ）モードのいずれかに従って、第１のプロセッサ及び第２のプロセッサを用いたマルチプロセッサシステム内における処理を制御するように構成される。ＳＭＰモードは、第１のプロセッサ及び第２のプロセッサの各々が、第１の事前決定された周波数を有する第１のクロック信号及び第１の事前決定された電圧を有する第１の供給電圧に従って動作するものと定義され、ＡＳＭＰモードは、第１のプロセッサが第１のクロック信号及び第１の供給電圧に従って動作し、第２のプロセッサが第１の事前決定された周波数と異なる第２の事前決定された周波数を有する第２のクロック信号に従って、かつ、第１の事前決定された動作電圧と異なる第２の事前決定された動作電圧を有する第２の供給電圧に従って動作するものと定義される。コントローラは、モード選択信号を受信し、モード選択信号に応じて、第１のプロセッサ及び第２のプロセッサの動作をＳＭＰモードからＡＳＭＰモードに、又はＡＳＭＰモードからＳＭＰモードにスイッチするようにさらに構成される。
【図面の簡単な説明】
【００１８】
本発明及びこれらの長所に対するより完全な理解のために、ここで、同様の番号が同様の対象を示す添付図面と共に、以下の説明を参照する。
【図１】従来技術の例示的な非対称マルチプロセッシングシステム（ＡＳＭＰ）を示す。
【図２】本開示の特定の実施形態に係る例示的なマルチプロセッシングシステムを示す図である。
【図３Ａ】本開示に係る図２に示されるシステムと共に用いられる例示的な有限ステートマシン（ＦＳＭ）及び処理を示す。
【図３Ｂ】本開示に係る例示的な有限ステートマシン（ＦＳＭ）及び図２に示されるシステムと共に用いられる処理を示す。
【図３Ｃ】本開示に係る例示的な有限ステートマシン（ＦＳＭ）及び図２に示されるシステムと共に用いられる処理を示す。
【図４】本開示に係るグリッチレスクロックの一実装を示す図である。
【図５】本開示に係るクロックドメインクロッシング（ＣＤＣ）及びバイパス回路のブロック図である。
【図６】図２に示される例示的なマルチプロセッシングシステムの他の実施形態である。
【図６Ａ】本開示に係る図６に示されるシステムと共に用いられる有限ステートマシン（ＦＳＭ）の他の実施形態を示す。
【図７】本開示に係るマルチプロセッシングシステムの他の実施形態を示す図である。
【図８】ＳＭＰ／ＡＳＭＰモードスイッチを開始及び制御するためのアーキテクチャ（方法、処理、システム）の図である。
【図９】本開示に係る例示的な動的モードスイッチ方法又は処理を示す。
【図１０】本開示に係る代替的なモードスイッチ方法又は処理を示す。
【図１１】本開示に係る例示的な静的モードスイッチ方法又は処理を示す。
【図１２】本開示の特定の実施形態に係る第２のマルチプロセッシングシステムを示す図である。
【図１３】ＳＭＰ／ＡＳＭＰモードスイッチを開始及び制御するためのアーキテクチャ（方法、処理、システム）の図である。
【図１４Ａ】図１２に示される処理システムの２つの実施形態を示す簡略化されたブロック図である。
【図１４Ｂ】図１２に示される処理システムの２つの実施形態を示す簡略化されたブロック図である。
【図１５】ＳＭＰ及びＡＳＭＰモードの４つのプロセッサ／コアを有するシステムにおける異なる例示的なマルチプロセッシング構成を示す。
【図１６】ＳＭＰ／ＡＳＭＰモードスイッチを開始及び制御するための代替的なアーキテクチャ（方法、処理、システム）の図である。
【図１７】ＭＰシステムの代替的な実施形態又はアーキテクチャを示す。
【図１８】追加のプロセッサがいつアクティブ化されるべきか（又は、タスク負荷に基づいて、複数のアクティブプロセッサの１つがいつ非アクティブ化されるべきか）を示すグラフである。
【図１９】ＳＭＰ／ＡＳＭＰモード選択／スイッチ処理と統合された付加／除去プロセッサの処理の一般的なフロー図である。
【発明を実施するための形態】
【００１９】
本明細書において説明される図１から１１、ならびに本明細書中で示される様々な実施形態、及び本特許文献における本開示の後述される原則は、例示としてのみ用いられ、本発明の範囲を決して限定するものと解釈されるべきではない。当業者であれば、本明細書において説明される原則が、任意のタイプの適切に構成されたデバイス又はシステムにおいて実装可能であることを理解しよう。
【００２０】
完全にＳＭＰのシステムから完全にＡＳＭＰのシステムに、プロセッサ／コアのグループの動作をスイッチする場合、このＳＭＰ／ＡＳＭＰ動的スイッチの機能性の提供に関連するコスト及び複雑さ（ハードウェア／ソフトウェア）が重要となり得ることが見出されている。より小さいデバイス（例えば、スーパーコンピューティングデバイス及びアプリケーションと対照的に、モバイルアプリケーションのモバイルデバイス、ハンドヘルドデバイス、スマートフォン等）では、調査及び試験により、最もよく用いられるアプリケーションにおいて、マルチプロセッシングタスク／機能は、２つ（又はそれより少ない）プロセッサ／コアを用いて適切に対応可能であると判断されている。これらのアプリケーションの大半において、２つのプロセッサ／コアは、アンバランスな負荷で実行され、より高い電力消費を招く。
【００２１】
従って、ＡＳＭＰ態様で動作可能でありながら、プロセッサ／コアの中で、シングルプロセッサ／コア（又はサブセット）のみが異なるクロック周波数及び／又は異なる動作供給電圧の間における動的スイッチのために構成及び有効化され、残りのプロセッサ／コアは同じクロック周波数及び同じ供給電圧で構成される、低コスト、低電力及び高性能マルチプロセッシングシステムを有することが有益である。例えば、マルチプロセッサシステムが２つのプロセッサ／コアを含む場合、第１のプロセッサ／コアは第１のクロック周波数（動的変化不可能）及び第１の供給電圧（動的変化不可能）において動作し、第２のプロセッサ／コアは、第１の周波数及び第１の供給電圧（第１のプロセッサ／コアと同じ）又は異なる周波数及び異なる供給電圧のいずれかにおける動作の間でスイッチ可能である。これは、３つ又はそれより多くのプロセッサ／コアを有し、これらのプロセッサ／コアの少なくとも１つ（又はサブセット）がこの動的スイッチ機能を有するシステムに適用されてもよい。
【００２２】
プロセッサ／コアのグループにおいて、そのグループの全ての他のプロセッサ／コアと同じクロック周波数及び供給電圧で動作する（これにより、ＳＭＰモードにおいて集合的に動作する）、又は、他のプロセッサ／コアと異なるクロック周波数及び供給電圧で動作する（これにより、ＡＳＭＰモードで集合的に動作する）少なくとも１つのプロセッサ／コアを制御及び選択する方法を有することも、有益なことがある。このようなシステム及び方法は、実装コスト及び電力消費を減少させ、効率を向上させる。
【００２３】
一般論では、本願の図１−１１に関して示される実施形態は、対称マルチプロセッシング（ＳＭＰ）及び非対称マルチプロセッシング（ＡＳＭＰ）という２つの動作モードの間でスイッチ可能なマルチプロセッサ／コアを有する処理システムを説明する。システムは、２つのモード間において制御及びスイッチを有効化するハードウェア装置を含む。ハードウェア内において、オペレーティングシステム（ＯＳ）又は他のソフトウェア／ハードウェアからの、ＳＭＰとＡＳＭＰとの間でスイッチするスイッチコマンド受信の際に、連続する又は一連のアクションが実行され、マルチプロセッサ及びメモリに対するクロック及び電圧を制御する。スイッチコマンドの生成は、負荷、キャッシュミス率、電力消費理由等のような１つ又は複数の要因に基づいて、要望に応じて実行可能である。装置は、システムが１つのモードから他のモードへの移行中に障害を発生させず、プロセッサ／メモリに対するクロックがグリッチレスにスイッチされることを確実にする。装置／方法は、ソフトウェア／ＯＳ介入を最小化し、より高速なモードスイッチ速度を有する。
【００２４】
本明細書において用いられるように、ＳＭＰという用語は、概して、（同じクロック及び電圧供給で動作するＬ２キャッシュメモリを有する）共有メモリシステムを用いて、同じクロック（周波数）及び同じ電圧供給で動作するマルチプロセッサ／ＣＰＵ／コアを用いた処理を指す。ＡＳＭＰという用語は、概して、異なるクロック（周波数）及び／又は電圧供給で動作する少なくとも２つを有するマルチプロセッサ／ＣＰＵ／コアを用いた処理を指す。ＡＳＭＰにおいて、典型的には、各プロセッサは、異なるＬ２キャッシュメモリを用いる。しかしながら、ＡＳＭＰは、同じＬ２キャッシュメモリ（ヘテロジニアスＡＳＭＰと称される）の共有をさらに含んでよい。他の態様において、ＡＳＭＰという用語は、各プロセッサ／ＣＰＵ／コアが第１のクロック周波数及び第１の供給電圧、又は第２のクロック周波数及び第２の供給電圧の少なくともいずれかを用いて動作するように構成されるマルチプロセッサ／ＣＰＵ／コアを用いたマルチプロセッシングを指す。２つより多くのこのようなクロック／電圧の組み合わせも考慮される。本態様において、プロセッサ／ＣＰＵ／コア（２つ又はそれより多く）の全ては、ＳＭＰモード（全てが同じクロック周波数及び電圧を用いる）又はＡＳＭＰモード（全てが異なるクロック周波数及び電圧を用いる）のいずれかにおいて動作するように構成されてよい。
【００２５】
理解されるように、本開示は、図１２−１９において説明されるＳＭＰ／ＡＳＭＰシステムの様々な他の実施形態をさらに提供する。これらは、これらの実施形態における、プロセッサ／コアのサブセット（少なくとも１つ、かつ一部）のみに入力されるクロック周波数及び供給電圧が、異なるクロック周波数及び／又は異なる電圧供給レベルを受信するように動的にスイッチ可能又はプログラム可能であることを除き、図１−１１に関して説明されたものと同様である。
【００２６】
本願は、動作のＳＭＰモードとＡＳＭＰモードとの間におけるモードスイッチ（動的／静的又は手動／インテリジェント）の様々な方法をさらに説明する（例えば、スイッチコマンドの生成）。１つの方法において、ＳＭＰモードは、軽負荷条件下で、又はＬ１キャッシュミス率が高い場合に選択される。ＡＳＭＰは、重くアンバランスな負荷条件下で選択される。また、リアルタイムな高速モード選択を容易にするために利用可能な学習モードが導入される。全体的な利益は、負荷がアンバランスな場合により低電力であること、より高性能かつキャッシュミスがより少ないこと、及び手動で又はインテリジェントにモードをスイッチする性能を含んでよい。
【００２７】
ここで、図２を参照すると、本開示に係る処理システム２００を示す詳細図が示される。処理システム２００は、図示されるように、マルチプロセッサ２１０（２１０ａ、２１０ｂ、２１０ｃ、２１０ｄ）と、対応するＬ２キャッシュメモリ部分２２０（２２０ａ、２２０ｂ、２２０ｃ、２２０ｄ）及びクロスドメインクロック（ＣＤＣ）バイパス回路２３０（２３０ａ、２３０ｂ、２３０ｃ、２３０ｄ）とを有するマルチプロセッサコア及びキャッシュサブシステム２０５を含む。４つのプロセッサ２１０（及び対応するメモリ及び回路）が示されるが、プロセッサの数は、小さくても大きくてもよく、ただし、少なくとも２つを含む。理解されるように、各プロセッサ２１０は、１つ又は複数の中央処理装置（ＣＰＵ）又はコアを含んでよい。
【００２８】
処理システム２００は、それぞれのプロセッサ、キャッシュ及びＣＤＣへの電力供給において用いられる複数の供給電圧信号を生成する電力管理制御（ＰＭＩＣ）回路２４０をさらに含む。同様に、クロック生成回路２５０は、それぞれのプロセッサ、キャッシュ及びＣＤＣのクロック動作において用いられる様々な事前決定されたクロック周波数を有する複数のクロック信号を生成する。
【００２９】
一実施形態において、ＰＭＩＣ回路２４０を除いて、処理システム２００は、単一の集積半導体基板／ダイ上に（又はマルチ基板ＩＣパッケージ内に配置される複数の半導体基板内に）配置され、又は他の方法で位置する。他の実施形態において、ＰＭＩＣ回路２４０は、単一の集積半導体基板／ダイ上に含まれてもよい。
【００３０】
図示されるように、処理システム２００は、コントローラ２６０（モードコントローラとも称されることがある）及びクロックスイッチ回路（又はモジュール）２７０をさらに含む。理解されるように、コントローラ２６０は、クロック生成回路２５０、ＰＭＩＣ回路２４０、「バイパス回路を有するＣＤＣ」２３０及びクロックスイッチ回路２７０の機能性及び動作を制御する様々な制御信号を出力する。
【００３１】
クロック生成回路２５０は、全てのプロセッサ２１０の動作速度を集合的に制御する１つのＳＭＰプロセッサクロック信号（ＣＬＫ）、全てのキャッシュ部分２２０の動作速度を集合的に制御する１つのＳＭＰメモリクロック信号（ＣＬＫｃｈ）、４つのプロセッサ（２１０ａ、２１０ｂ、２１０ｃ、２１０ｄ）の各々の動作速度の個別制御を有効化する４つのＡＳＭＰプロセッサクロック信号（ＣＬＫ０、ＣＬＫ１、ＣＬＫ２、ＣＬＫ３）、及びキャッシュメモリ部分（２２０ａ、２２０ｂ、２２０ｃ、２２０ｄ）の各々の動作速度の個別制御を有効化する４つのＡＳＭＰメモリクロック信号（ＣＬＫｃｈ０、ＣＬＫｃｈ１、ＣＬＫｃｈ２、ＣＬＫｃｈ３）を含む複数のクロック信号を生成するために必要な回路及び要素を含む。これらのクロックのいずれも、回路２５０によってグリッチレスに有効化又は無効化される。クロック生成回路２５０は、コントローラ２６０によって用いられるコントローラクロック信号（ＣＬＫ＿ＦＳＭ）をさらに生成する。
【００３２】
ＰＭＩＣ回路２４０は、サブシステム２０５のそれぞれの部分によって用いられる複数の動作供給電圧又は信号の生成に必要な回路及び要素を含む。図示されるように、ＰＭＩＣ回路２４０は、処理ユニットのそれぞれのグループの各々に電力を供給する４つの動作供給電圧（Ｖ０、Ｖ１、Ｖ２、Ｖ３）を生成及び出力する。言い換えると、動作供給電圧Ｖ０は、プロセッサ２１０ａ、キャッシュメモリ部分２２０ａ及びバイパス回路を有するＣＤＣ２３０ａに電力を供給し、電圧供給Ｖ１は、プロセッサ２１０ｂ、キャッシュメモリ部分２２０ｂ及びバイパス回路を有するＣＤＣ２３０ｂに電力を供給する、等である。当業者によって理解されるように、プロセッサ／メモリがより高いクロック速度で動作する場合、プロセッサ／メモリをより高い供給電圧でさらに動作させることが望ましく、これが必要なことがある。さらに、コアが用いられない場合、電力急減又はクロック無効化がされ得る。
【００３３】
クロック生成回路２５０は、生成されたクロック信号の各々にプログラム可能性を有効化する機能性及び回路をさらに含んでよいことが理解されよう。一実施形態において、クロック信号の各々は、多くの可能な周波数の１つにプログラム可能であってよい（例えば、ＣＬＫは、３００ＭＨｚから３ＧＨｚのような範囲の間でプログラム可能であってよい）。他の実施形態において、特定のクロック信号のみがプログラム可能であってよく、さらに他の実施形態において、各クロック信号の周波数は、事前決定され、固定である。さらに他の実施形態において、周波数は、互いに対して固定されてよいが、グループとしてプログラム可能であってよい。
【００３４】
同様に、ＰＭＩＣ回路２４０は、生成された動作電圧供給Ｖ０、Ｖ１、Ｖ２、Ｖ３の各々にプログラム可能性を提供する機能性及び回路をさらに含んでよい。一実施形態において、各供給は、多くの可能な電圧レベルの１つに対してプログラム可能であってよい（例えば、電圧は、０．５ボルト及び３．３ボルトのような範囲の間でプログラム可能であってよい）。他の実施形態において、特定の電圧の電力供給のみがプログラム可能であってよく、さらに他の実施形態において、各供給の電圧レベルは、事前決定され、固定である。さらに他の実施形態において、電圧レベルは、互いに対して固定されてよいが、グループとしてプログラム可能であってよい。図示されていないが、他の実施形態において、基本動作電圧供給は、図示される４つに加えて、生成されてよい。この場合、基本電圧供給及び他の４つは、（クロックスイッチ回路２７０において示されるマルチプレクサ２７２と同様の）多重化回路への入力として用いられてよい。
【００３５】
他の実施形態において（不図示）、それぞれのプロセッサ／Ｌ２キャッシュメモリのペアの１つ又は複数は、異なる電力供給電圧信号を有してよい、すなわち「分割レール」システムである。このようなシステムにおいて、Ｌ２キャッシュメモリ及びその関連プロセッサは、異なる電圧供給レールを有する。理解されるように、ペアの１つ又は複数（又は全て）は、分割レール電圧供給を有してよい。従って、本実施形態において、生成された動作電圧供給Ｖ０、Ｖ１、Ｖ２、Ｖ３は分割され、例えば、別個の供給Ｖ０（プロセッサ）及びＶ０（キャッシュ）等を含んでよい。これらは、別個に又は１つ又は複数のグループとしてプログラム可能であってよい。本実施形態において、システム２００は、ＣＤＣ回路２３０と別個の、又はその内部に含まれる電圧ドメインクロッシング回路（不図示）をさらに含んでよい。
【００３６】
モード又はスイッチコントローラ２６０は、有限ステートマシン（ＦＳＭ）２６２、１つ又は複数のタイマ２６４、及び（構成又はステータスレジスタのような）１つ又は複数のストレージレジスタ２６６を含む。コントローラ２６０は、スイッチコマンド（ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＭＯＤＥ）のアサートに応じて、一連のアクション又は処理を制御及び実行するように機能する。従って、図示される実施形態において、スイッチコマンドがアサート／非アサートされる場合、動作モードは、ＡＳＭＰモードとＳＭＰモードとの間でスイッチされる。様々な方法及びメカニズムが、スイッチコマンドの生成のために用いられてよく、いくつかの例が、図８−１１に関して後述される。
【００３７】
有効化信号（ＥＮＡＢＬＥ＿ＡＳＭＰ＿ＣＬＫＳ、ＥＮＡＢＬＥ＿ＳＭＰ＿ＣＬＫ）を用いて、コントローラ２６０は、ＳＭＰ／ＡＳＭＰスイッチの前にクロックを有効化するクロック生成モジュール２５０を制御する。コントローラ２６０は、ＰＭＩＣ回路２４０のモジュールをさらに制御し、スイッチの前に（又はスイッチの後で）動作供給電圧Ｖ０、Ｖ１、Ｖ２、Ｖ３をプログラム又は変化させる。一実施形態において、ＰＭＩＣ回路２４０がプロセッサの外部にある場合（例えば、オフチップ）、コントローラ２６０は、ＳＰＭＩ／ＳＢＩ／ＭＩＰＩのような通信バス又はインタフェースを介してＰＭＩＣ回路２４０と通信を行ってよい。ＰＭＩＣ回路が外部にない場合、他の通信経路が用いられてよい。
【００３８】
スイッチコマンド（ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＭＯＤＥ）は、様々な事象に応じて、かつ、処理システム２００内又は外部の様々な要素によって生成されてよいことが理解されよう。図示される実施形態において、スイッチコマンドは、マルチプロセッサコア及びキャッシュサブシステム２０５から生成されるが、他の実施形態においては、他のソースによって生成されてよい。
【００３９】
ＳＭＰクロックからＡＳＭＰクロックへの実際のスイッチオーバ（逆もまた同様）が行われる場合、コントローラ２６０は、クロックスイッチ回路２７０内のマルチプレクサ２７２を用いて、プロセッサへのＡＳＭＰクロック信号を選択的に多重化するＡＳＭＰ選択信号（ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＣＬＫ）を生成する。理解されるように、ＡＳＭＰモードにおけるプロセッサ／ＣＰＵコア２１０のクロックは、ＣＬＫ０、ＣＬＫ１、ＣＬＫ２、ＣＬＫ３として示されるが、ＳＭＰモードにおけるプロセッサ／ＣＰＵコア２１０のクロックは、ＣＬＫと示される。従って、ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＣＬＫ信号は、どのクロックがグリッチレスに用いられるかを選択する。一実施形態において、ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＣＬＫがアサートされる場合（ロジックハイ又は「１」）、クロック信号ＣＬＫ０、ＣＬＫ１、ＣＬＫ２、ＣＬＫ３が選択され、プロセッサ／コア２１０ａ、２１０ｂ、２１０ｃおよび２１０ｄにそれぞれ入力される。ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＣＬＫがアサートされない場合（ロジックロー又は「０」）、クロックＣＬＫが選択され、プロセッサ／コア２１０ａ、２１０ｂ、２１０ｃおよび２１０ｄの全てに入力される。スイッチ中の様々な事象及びアクションのタイミングは、１つ又は複数のタイマ２６４を用いることにより、ＦＳＭ２６２に従って制御される。より詳細に後述されるように、クロックウォームアップ期間及び電圧ランプアップ／ランプダウン期間が用いられる。これらの値は、ソフトウェア又は他の方法によって、事前にプログラムされ又は事前設定され、コントローラのＣ／Ｓレジスタ又は他のメモリ位置（不図示）に格納されてよい。
【００４０】
理解されるように、参照番号によって具体的には特定されていないが、例えば、レベルシフタのような様々な他の論理回路が含まれてよい。レベルシフタは、典型的には、信号が電力ドメインをクロスする場合に用いられる。
【００４１】
ここで、図３Ａ、図３Ｂおよび図３Ｃを参照すると、ＦＳＭ２６２によって実行又は実装される処理又は方法３００が示される。理解されるように、ＦＳＭ２６２のこの処理／機能性は、異なる構成、方法もしくは構造（又はこれらの組み合わせ）又は方法を用いて実装されてよい。例えば、図示される実施形態においては有限ステートマシン（例えば、ハードウェア実装）として実装されるが、コントローラ２０６の機能性は、ソフトウェア、ファームウェアを有するマイクロコントローラ等、及びこれらの任意の組み合わせを用いて、又は当業者に公知の任意の他の態様／方式で代替的に実装されてよい。ＦＳＭ２６２は、有利には、より高速で動作し、ソフトウェア／ＯＳ介入を最小化する。例えば、タイムアウト等の例外の場合、これは、システムプロセッサに対して中断を生成する。
【００４２】
図３Ａ、３Ｂおよび３Ｃに示されるように、ＦＳＭ２６２の状態図によって表される処理３００は、様々な状態及び移行を含む。状態３１０において、処理システム２００は、ＳＭＰモードで動作する。スイッチコマンド（ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＭＯＤＥ）が受信された場合、状態３２０（ＡＳＭＰ＿ＣＬＫ＿ＷＵ）に入る。ここでは、ＡＳＭＰクロックが（ＡＳＭＰクロック有効化信号を用いて）有効化かつアクティブ化され、「ウォームアップ」される。事前決定されたウォームアップ期間（タイマ）の完了後、状態３３０（Ｖ＿ＳＭＰ＿ＡＳＭＰ＿ＲＡＭＰ＿ＵＰ）に入る。ここでは、動作電圧供給Ｖ、Ｖ０、Ｖ１、Ｖ２、Ｖ３の全てが、（必要な場合には）事前決定された最大電圧レベル（ＭＡＸ）にまで上昇する。事前決定された最大電圧レベルは、Ｖ１、Ｖ２、Ｖ３、Ｖ４がＡＳＭＰモードにおける処理システム２００の動作中に有する最も高い電圧レベルに等しい（又はそれより大きい）。例えば、４つのプロセッサが現在（ＳＭＰモードにおいて）１．５ボルトで動作しており、ＡＳＭＰモードにおいて、４つのプロセッサが１．２、１．９、１．７及び１．７ボルトでそれぞれ動作する場合、動作供給電圧Ｖ１、Ｖ２、Ｖ３及びＶ４の全ては、１．９ボルト（又はそれより高く）にまで上昇する。
【００４３】
これらの４つの動作電圧供給電圧が事前決定された最大電圧（ＭＡＸ）に到達した後で、状態３４０（ＳＭＰ＿ＡＳＭＰ＿ＣＬＫ＿ＳＷＩＴＣＨ）に入る。この状態３４０において、クロックスイッチ信号はアサートされ、プロセッサ２１０及びメモリ２２０のクロック（全てＣＬＫ  ＳＭＰの周波数に等しい）は、ＳＭＰクロック信号からＡＳＭＰクロック信号にスイッチされる。図示されるように、マルチプレクサ２７２は、ＳＭＰクロック信号ＣＬＫの代わりに、それぞれのＡＳＭＰクロック信号ＣＬＫ１、ＣＬＫ２、ＣＬＫ３、ＣＬＫ４を出力するようにスイッチされる。これと同時に、バイパス回路を有するＣＤＣ２３０も、ＡＳＭＰクロック信号を有効化するバイパスモードに設定され、バイパス回路を有するＣＤＣ２３０のクロックドメイン回路をバイパスする。また、このとき、クロック生成回路２５０によって生成されたＳＭＰクロック信号は、非アクティブ化されてよい。
【００４４】
これらのイベントが完了した後で、状態３５０（Ｖ＿ＳＭＰ＿ＡＳＭＰ＿ＲＡＭＰ＿ＤＮ）に入る。これは、動作供給電圧Ｖ１、Ｖ２、Ｖ３、Ｖ４に対するランプダウン手続きを実行させる。全てのプロセッサ２１０（及びメモリ２２０）はＭＡＸ動作供給電圧（上述の例においては１．９ボルト）で動作しており、ＡＳＭＰモードにおいてＶ１、Ｖ２、Ｖ３及びＶ４に望ましい動作供給電圧は異なるので（上述の例においては、それぞれ１．２、１．９、１．７及び１．７ボルト）、Ｖ１、Ｖ３及びＶ４の電圧レベルはＡＳＭＰモードにおいて所望の電圧レベルにまで減少する。
【００４５】
動作供給電圧がランプダウンした後で（例えば、ＡＳＭＰモードにおいて各プロセッサに対して所望の電圧レベルに設定される）、状態３６０に入る。この状態において、処理システム２００は、ここで、ＡＳＭＰモードにおいて、それぞれのプロセッサ／メモリの組み合わせ、例えば、２１０ａ／２２０ａ、２１０ｂ／２２０ｂ、２１０ｃ／２２０ｃ、及び２１０ｄ／２２０ｄの各々で動作しており、クロック及び電圧信号の組み合わせＣＬＫ０／Ｖ０、ＣＬＫ１／Ｖ１、ＣＬＫ２／Ｖ２、ＣＬＫ３／Ｖ３にそれぞれ従って、動作している。
【００４６】
異なる実施形態において、ＦＳＭ２６２によって実行される１つ又は複数の段階は、省略又はバイパスされてよいことが理解されよう。例えば、全ての電圧が同じである場合、Ｖ＿ＳＭＰ＿ＡＳＭＰ＿ＲＡＭＰ＿ＵＰ及びＶ＿ＳＭＰ＿ＡＳＭＰ＿ＲＡＭＰ＿ＤＮ状態は必要でないことがあり、省略されてよい。この例において、これにより、あらゆるモードスイッチレイテンシが減少し得る。いくつかの他の実施形態において、クロック電圧は、クロックがスイッチされる前に、ランプアップされなければならない。
【００４７】
前述されたように、クロック電圧及び周波数値は、本明細書において説明される方法を用いて、ソフトウェア／ＯＳによって事前決定されてよく、スイッチを開始する前に、コントローラのＣ／Ｓレジスタ（又は他のメモリ位置）において、事前に格納又はプログラム可能である。他の実施形態において、システムは、リアルタイムの動作特性又はパラメータに基づいて、動作中のクロック電圧及び／又は周波数値を（いくつかの可能な値の１つから）判断してよい。これらの値（又はこれらの値の識別子）は、その後、Ｃ／Ｓレジスタ（又はいくつかの他のメモリ位置）に格納されてよい。
【００４８】
同様の処理が、ＡＳＭＰモードからＳＭＰモードにスイッチする場合に続く。状態３６０において、処理システム２００は、ＡＳＭＰモードで動作する。スイッチコマンド（ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＭＯＤＥ、非アサート）が受信された場合、状態３７０（ＳＭＰ＿ＣＬＫ＿ＷＵ）に入る。ここでは、ＳＭＰクロックが（ＳＭＰクロック有効化信号を用いて）有効化かつアクティブ化され、「ウォームアップ」される。事前決定されたウォームアップ期間（タイマ）の完了後、状態３８０（Ｖ＿ＡＳＭＰ＿ＳＭＰ＿ＲＡＭＰ＿ＵＰ）に入る。ここでは、動作電圧供給Ｖ０、Ｖ１、Ｖ２、Ｖ３の全てが、（必要な場合には）事前決定された最大電圧レベル（ＭＡＸ）に増加する。事前決定された最大電圧レベルは、ＡＳＭＰモードにおいてＶ１、Ｖ２、Ｖ３、Ｖ４が現在供給している最も高い電圧レベルに（又は、そのレベルがＶ１、Ｖ２、Ｖ３及びＶ４の全てのレベルより高い場合、所望のＳＭＰ電圧レベルＶ＿ＳＭＰに）等しい（又はそれより大きい）。例えば、４つのプロセッサが現在（ＡＳＭＰモードにおいて）１．２、１．９、１．７及び１．７ボルトで動作しており、ＳＭＰモードにおいて、４つのプロセッサが１．５ボルト（Ｖ＿ＳＭＰ）でそれぞれ動作する場合、動作供給電圧Ｖ１、Ｖ２、Ｖ３及びＶ４の全ては、１．９ボルト（又はそれより高く）にまで上昇する。
【００４９】
これらの４つの動作電圧供給電圧が事前決定された最大電圧（ＭＡＸ）に到達した後で、状態３９０（ＡＳＭＰ＿ＳＭＰ＿ＣＬＫ＿ＳＷＩＴＣＨ）に入る。この状態３９０において、クロックスイッチ信号はアサートされ、プロセッサ２１０及びメモリ２２０のクロック（おそらくは全てＳＭＰクロック信号ＣＬＫの周波数と異なる）は、ＡＳＭＰクロック信号ＣＬＫ０、ＣＬＫ１、ＣＬＫ２、ＣＬＫ３からＳＭＰクロック信号ＣＬＫにスイッチされる。図示されるように、マルチプレクサ２７２は、ＡＳＭＰクロック信号の代わりに、ＳＭＰクロック信号（ＣＬＫ）を出力するようにスイッチされる。これと同時に、バイパス回路を有するＣＤＣ２３０は、ＳＭＰクロック信号を有効化するクロックドメイン回路を用いて、動作（及びバイパスモードを無効化）するようにさらに設定され、バイパス回路を有するＣＤＣ２３０におけるクロックドメイン回路を通して進む。また、このとき、クロック生成回路２５０によって生成されたＡＳＭＰクロック信号は、非アクティブ化されてよい。
【００５０】
これらのイベントが完了した後で、状態３９５（Ｖ＿ＡＳＭＰ＿ＳＭＰ＿ＲＡＭＰ＿ＤＮ）に入る。これは、動作供給電圧Ｖ１、Ｖ２、Ｖ３、Ｖ４に対するランプダウン手続きを実行させる。全てのプロセッサ２１０（及びメモリ２２０）はＭＡＸ動作供給電圧（上述の例においては１．９ボルト）で動作しており、所望の動作供給電圧は、ＳＭＰモードにおいて、現在の電圧レベル（当該例では１．９ボルト）より低いＶ＿ＳＭＰ（上述の例では１．５ボルト）であるので、動作供給電圧Ｖ１、Ｖ２、Ｖ３及びＶ４の全ては、所望のＳＭＰモードにおいて、Ｖ＿ＳＭＰレベル（１．５ボルト）にまで減少する。
【００５１】
動作供給電圧がランプダウンした後で（例えば、ＳＭＰモードにおいて各プロセッサに対して所望のＳＭＰ電圧レベルに設定される）、状態３１０に入る。この状態において、処理システム２００は、ここで、ＳＭＰモードにおいて、それぞれのプロセッサ／メモリの組み合わせ、例えば、２１０ａ／２２０ａ、２１０ｂ／２２０ｂ、２１０ｃ／２２０ｃ、及び２１０ｄ／２２０ｄの各々で動作しており、単一のクロック及び電圧信号の組み合わせＣＬＫ／Ｖ＿ＳＭＰに従って、動作している。
【００５２】
異なる実施形態において、ＦＳＭ２６２によって実行される１つ又は複数の段階は、省略又はバイパスされてよいことが理解されよう。例えば、全ての電圧が同じである場合、Ｖ＿ＡＳＭＰ＿ＳＭＰ＿ＲＡＭＰ＿ＵＰ及びＶ＿ＡＳＭＰ＿ＳＭＰ＿ＲＡＭＰ＿ＤＮ状態は必要でないことがあり、省略されてよい。この例において、これにより、あらゆるモードスイッチレイテンシが減少し得る。いくつかの他の実施形態において、クロック電圧は、クロックがスイッチされる前に、ランプアップされなければならない。
【００５３】
ここで、図４を参照すると、（図２に示される）クロックマルチプレクサ２７２の１つの回路実装が示される。本実施形態において、クロックマルチプレクサ２７２は、スイッチ中のグリッチ（不具合）がないことを意味する「グリッチレス」である。他の適切な回路実装がクロックマルチプレクサ２７２に用いられてよく、当業者であれば、グリッチレスなマルチプレクサスイッチを実行する他の回路が利用可能であることを容易に理解しよう。
【００５４】
図５を参照すると、（図２に示される）バイパス回路を有するＣＤＣ２３０の一実装が示される。従来技術のＡＳＭＰシステムにおいて（図１参照）、各々が２つの非同期クロックドメインクロッシング（ＣＤＣ）回路１３１ａ、１３１ｂを含むＣＤＣ回路１３０は、それぞれのプロセッサ２１０及びＬ２キャッシュ部分２２０の間に配置されることが理解されよう。理解されるように、非同期ＣＤＣ回路１３１は、当分野で公知であり、従って、当業者であれば、このような機能性をどのように実装するかを理解しよう。これらのＣＤＣ回路及び／又はその機能性も、クロックスイッチ回路として、又はプロセッサとＬ２キャッシュとの間の非同期ＦＩＦＯブリッジとして、当分野で公知である。
【００５５】
バイパス回路を有するＣＤＣ２３０は、図５に示されるように、非同期ＣＤＣ回路１３１ａと関連付けられた第１のマルチプレクサ２７２ａ、第１のデマルチプレクサ２７３ａ、及び第１のバイパス線２３１ａをさらに含む。第２のマルチプレクサ２７２ｂ、第２のデマルチプレクサ２７３ｂ、及び第２のバイパス線２３１ｂは、図５に示されるように、非同期ＣＤＣ回路１３１ｂと関連付けられる。ＣＤＣ回路２３０において、モード間で（例えば、ＣＤＣの非同期モードと同期バイパスモードとの間で）スイッチする場合、ＣＤＣ回路２３０は、「グリッチレス」スイッチを実行し、確実に、潜在的な不具合によって障害を生じることがないようにする。
【００５６】
当業者であれば、ＳＭＰモード（ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＣＬＫ信号がアサートされない）において、プロセッサ（例えば、２１０ａ）からのデータが、Ｌ２キャッシュ（例えば、２２０ａ）に向かう途中で非同期ＣＤＣ回路１３１ａをバイパスし、Ｌ２キャッシュ（例えば、２２０ａ）からのデータがプロセッサ（例えば、２１０ａ）に向かう途中で非同期ＣＤＣ回路１３１ｂをバイパスすることを理解しよう。対照的に、ＡＳＭＰモードにある場合（ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＣＬＫ信号がアサートされ、Ｃａｃｈｅ＿ＣＬＫ及びＣＰＵ＿ＣＬＫ信号が異なる場合がある）、プロセッサ（２１０ａ）からのデータは、Ｌ２キャッシュ（２２０ａ）に向かう途中で非同期ＣＤＣ回路１３１ａによって処理され、Ｌ２キャッシュ（２２０ａ）からのデータは、プロセッサ（２１０ａ）に向かう途中で非同期ＣＤＣ回路１３１ｂによって処理される。非同期ＣＤＣ回路１３１ａ、１３１ｂは、事前決定された順番に従って、１つのクロックドメインから他のクロックドメインへのデータ転送を確実にするように機能し、例えば、最初に受信されたデータが最初に出力される。１つのクロックドメインにおいてクロックと同期する入力されたデータは、他のクロックドメインにおいてクロックと再同期される。非同期ＦＩＦＯは、概して、インタフェースにおいて、いくらかのレイテンシにより、データバッファを提供する。
【００５７】
同期モードにある場合、Ｃａｃｈｅ＿ＣＬＫは、概して、ＣＰＵ＿ＣＬＫから導出される（例えば、ＣＰＵ＿ＣＬＫを１で除算、又は３で除算）。言い換えると、これらは等しくてよく、ＣＰＵ＿ＣＬＫは、通常、Ｃａｃｈｅ＿ＣＬＫの整数倍である（例えば、ＣＰＵ＿ＣＬＫ＝３＊Ｃａｃｈｅ＿ＣＬＫ）。２つのクロックは、本質的に同期する。データは、概して、さらにより小さいレイテンシにより、同期的にインタフェースをクロスする。
【００５８】
マルチプレクサ２７２ａ、２７２ｂは、図４に示されるグリッチレスクロックマルチプレクサ２７２と同じであってよい。デマルチプレクサ２７３ａ、２７３ｂは、本質的にマルチプレクサと同様の、又はこれに対する回路であってよいが、逆多重化機能を実行する。１つの好ましい実施形態において、これらも、グリッチレスである（グリッチレススイッチを実行する）。
【００５９】
ここで図６を参照すると、本開示に係る処理システム２００ａの他の実施形態を示す詳細図が示される。処理システム２００ａは、（１）ＣＬＫ＿０信号が、ＡＳＭＰモードにある場合のＣＬＫ＿０信号、及びＳＭＰモードにある場合のＣＬＫ（ＳＭＰ）信号の両方として機能する点、及び（２）ＣＬＫ＿ｃｈ０信号が、ＡＳＭＰモードにある場合のＣＬＫｃｈ＿０信号及びＳＭＰモードにある場合のＣＬＫｃｈ（ＳＭＰ）信号の両方として機能する点を除き、図２に示される処理システム２００と同じである。これにより、プロセッサ／Ｌ２キャッシュペア（２１０ａ、２２０ａ）と関連付けられた第１の２つのマルチプレクサ２７２が必要なくなる。さらに、変形されたクロック生成モジュール２５０ａは、これらのクロック信号の違いを実装するように提供され、変形されたＦＳＭ２６２ａも含まれる。
【００６０】
理解されるように、図６に示される処理システム２００ａは、ＦＳＭ２６２ａによって実行又は実装される処理又は方法３００ａをさらに含む。理解されるように、ＦＳＭ２６２ａの処理／機能性は、ステートマシンの状態３６０が除外される点を除き、ＦＳＭ２６２の処理／機能性と同じである。図６Ａは、ＦＳＭ２６２ａを示し、図３Ａに示されるＦＳＭ２６２と比較すると、残りの状態及び移行の全てが本質的に同じであることが容易に理解される。理解されるように、ＦＳＭ２６２ａの処理又は方法フローは、説明された変形を除き、図３Ｂおよび３Ｃに示されるＦＳＭ２６２の処理又は方法フローと同様である。これらの同様の処理又はフロー図は、簡潔性のため、本明細書では省略されている。
【００６１】
ここで、図７を参照すると、本開示に係る他の処理システム２００ｂのより具体的な実施形態を示す詳細図が示される。処理システム２００ｂは、マルチプロセッサコア及びキャッシュサブシステム２０５ｂが特定のアーキテクチャを含む点を除き、図２に示される処理システム２００と同様である。図７は、本開示の教示による例示的なアプリケーションを示す。これは、８つのプロセッサコア７１０（ａからｈ）及びＬ２キャッシュ７２０の２つのクラスタ（ａからｂ）を含むＡＲＭのＢｉｇ−Ｌｉｔｔｌｅマルチプロセッササブシステムという特定のアーキテクチャに組み込まれている。Ｌ２キャッシュの２つのクラスタに基づいて、システム２００ｂは、プロセッサ／Ｌ２キャッシュペアの２つのステージのみを必要とする。さらに、その中に示される２３０、２４０、２５０、２６０および２７０を含む様々なコンポーネントは、図２に示されるものと同じであってよく、これらは、プロセッサ及びキャッシュサブシステム２０５ｂの特定のアーキテクチャを考慮する場合、いくらかのわずかな変形を必要としてよい。これらの変形は、当業者によって容易に理解されよう。さらに、図６に示されるもののような、他の実施形態において説明される概念も、図７のシステムにおいて実装されてよい。
【００６２】
（図１−８に関して）上述された、ＳＭＰとＡＳＭＰとの間におけるスイッチを実装する例示的なコンポーネント、ハードウェア及び方法に加えて、本開示は、モードスイッチを開始及び制御する例示的な方法及び処理を、さらに説明する。
【００６３】
ＳＭＰとＡＳＭＰとの間における動的なモードスイッチが導入され、これは、トラフィックのタイプ、プロセッサの待ち時間、負荷アンバランス情報及び／又は電力消費に基づいてなされてよい。理解されるように、情報の他の要因及びタイプが分析され、モードの変更（又は維持）を決定する基礎を形成してよい。例えば、ＳＭＰモードは、負荷が軽い場合、又は全てのＣＰＵコアが用いられて負荷が重い場合及び／又はＬ１キャッシュミス率が高い場合に選択されてよく、ＡＳＭＰモードは、重い及び／又はアンバランスな負荷に対して選択されてよい。
【００６４】
静的な（すなわち、手動の）モードスイッチも、処理タイプ（例えば、演算集中的、タイムクリティカル等）又は特定のアプリケーションもしくはアプリケーションプログラム（例えば、アプリケーションプログラムがどのモードを用いるかを選択する）等に基づいて、実装されてよい。
【００６５】
リアルタイムのインテリジェントなモード選択を容易にするために利用可能な学習メカニズム又は処理が、本明細書においてさらに説明される。例えば、学習システムは、特定のトラフィック又は処理シナリオに対して、ＳＭＰ又はＡＳＭＰモードのいずれが、より電力消費を低くし得るかを判断することができる。
【００６６】
ここで、図８を参照すると、ＳＭＰ／ＡＳＭＰモードスイッチを開始及び制御するアーキテクチャ（例えば、方法、処理、システム）８００が、概念的に示される。モード選択は、所望の処理又はアプリケーションのタイプ、及び他の情報又は要因に基づいて、実行可能である。図示されるように、処理又はアプリケーション８０２は、ブラウザアプリケーション８０２ａ、ストリーミングアプリケーション８０２ｂ、ゲームアプリケーション８０２ｃ又はナビゲーション８０２ｄであってよい。他の要因／情報８０４も、考慮されてよい。
【００６７】
例として、ストリーミングアプリケーション８０２ｂがマルチプロセッシングを必要とすると仮定すると、モード選択デバイス８１０は、そのアプリケーションに関連付けられた処理タスクがＳＭＰ又はＡＳＭＰモードのいずれで実行されるべきかを判断する。システムソフトウェア／ＯＳは、この判断を実行し、決定をなす。システムは、コントローラにコマンドを発行するようにシングルプロセッサを割り当ててよいが、概して、決定は、システムレベル／ＯＳレベルで実装される。この決定は、静的情報、動的情報又はこれらの組み合わせに基づいてなされてよい。一例において、全てのビデオエンコーディングアプリケーションがＳＭＰモードを用いることが事前決定されてよい。他の例において、全てのビデオストリーミングアプリケーションは、全てのＣＰＵコアが使用されるほどＣＰＵの現在の負荷が重くない限り、ＡＳＭＰモードを用いる。他の変更形態は、１つのモードから他のモードにスイッチするか否かについての決定をなすために、プログラム及び利用可能である。
【００６８】
一実施形態において、シングルプロセッシングタスクが必要とされる場合に、ルックアップテーブルが参照されてよい。他の実施形態において、電力の比較は、マルチプロセッシングタスクが存在する場合にいずれかのモードを選択するために用いられる要因であってよい。例えば、ユーザが、同時に音楽を聴きつつ電子メールを利用している場合、ＡＳＭＰが選択可能である。
【００６９】
どのモードが選択されるべきかを判断した後で、デバイス８１０は、ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＭＯＤＥ制御信号（図２参照）において適切な信号を発する（例えば、高／低）。理解されるように、現在の動作モードは、既に、選択されたモードであってよい（このような場合には、ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＭＯＤＥ信号は移行しない）。
【００７０】
ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＭＯＤＥ信号に応じて、システム２００は、ＡＳＭＰモード（８２０）又はＳＭＰモード（８３０）で動作する。ＡＳＭＰモードにある場合、コア１（要素２１０ａ、２２０ａ、２３０ａ）、コア２（要素２１０ｂ、２２０ｂ、２３０ｂ）、コア３（要素２１０ｃ、２２０ｃ、２３０ｃ）及びコア４（要素２１０ｄ、２２０ｄ、２３０ｄ）の各々は、個別のクロック信号／周波数及び供給電圧で動作する。ＳＭＰモードにある場合、コア１からコア４は、同じクロック信号／周波数及び供給電圧で動作する。ＳＭＰ及びＡＳＭＰモード（ならびにモードスイッチ）の詳細は、より十分に上述されている。
【００７１】
ここで、図９を参照すると、本開示に係る例示的なモードスイッチ方法又は処理９００が示される。システム２００の動作中、（プロセッサコア固有の）Ｌ１キャッシュのミス率は、継続的にモニタリングされる（段階９０２）。ミス率は、事前決定された閾値と比較される（段階９０４）。このミス率が高い（閾値を超える）場合、処理は、システム２００の現在の処理モードがＡＳＭＰか否か、及び他のＣＰＵの負荷が重い／軽いかを（他の閾値を用いて）判断する（段階９０６）。是の場合、システム２００は、ＡＳＭＰモードからＳＭＰモードにスイッチする（段階９０８）。否の場合、システム２００は、ＡＳＭＰモードを継続する。
【００７２】
Ｌ１キャッシュミス率が高くない場合、処理は、システム２００の現在の処理モードがＳＭＰか否か、及び処理負荷が重くアンバランスであるか否かを判断する（段階９１０）。是の場合、システム２００は、ＳＭＰモードからＡＳＭＰモードにスイッチする（段階９１２）。否の場合、システム２００は、ＳＭＰモードを継続する。
【００７３】
図９に示される処理９００は、任意のインテリジェント学習処理をさらに含む。システム２００がＡＳＭＰモードからＳＭＰモードに（段階９０８）、又はＳＭＰモードからＡＳＭＰモードに（段階９１２）スイッチする場合、スイッチの判断に関連するシナリオ情報は、学習システムデータベースに記録される（段階９２０）。シナリオ情報は、モードのスイッチを決定するためにシステムによって用いられる情報の任意の部分又は全部であってよい。図示の例において、シナリオ情報は、Ｌ１キャッシュミス率及び負荷情報（軽い／重い、バランスがよい／アンバランスな）を含んでよい。
【００７４】
ここで、図１０を参照すると、履歴データ及び過去の経験からのインテリジェンスに基づく例示的な代替的なモードスイッチ方法又は処理１００が示される。動作中、システム２００は、動的システム情報（例えば、現在のシナリオ情報）を周期的に取得し、学習システムデータベースをサーチする（段階１００２）。現在のシナリオ情報は、学習システムデータベースに格納されたシナリオ情報と比較され、一致が見られるか否かを判断する（段階１００４）。是の場合、システム２００は、一致したシナリオ情報に関連付けられた情報に従って、ＡＳＭＰモードとＳＭＰモードとの間でスイッチする（段階１００６）。理解されるように、これにより、モードがスイッチされてよいが、現在のモードの動作を維持してもよい。否の場合、システムは、図９において説明される処理／方法のような、動的なＳＭＰ／ＡＳＭＰ選択及び学習システムトレーニングを実行する。
【００７５】
図１１は、本開示に係る例示的な静的モードスイッチ方法又は処理１１００を示す。一般論では、この処理は、静的な又は「手動による」情報又は要因１１０２に基づいて、システム２００がＳＭＰ又はＡＳＭＰモードのいずれで動作すべきかを判断する。例えば、いずれのモードかという判断は、多数の情報又は要因、例えば、ユーザプロファイル１１０２ａ、アプリケーション管理１１０２ｂ、省電力モード１１０２ｃ及び他の情報又は要件１１０２ｎに基づいて、「静的に」割り当てられてよい。
【００７６】
システム２００は、適用可能な情報又は入力に基づいて、ＳＭＰモード又はＡＳＭＰモードのいずれで動作すべきかを判断する（１１０４）。例えば、所与のユーザプロファイルが特定のモードに関連付けられる、すなわち、所与のユーザに関連付けられた処理が特定のモードで常に実行されるべきであることを意味する場合、システム２００は、必要に応じて、処理のための特定のモードにスイッチする。他の例において、特定のアプリケーションが常に１つのモードで実行されるべきである場合、システム２００は、その特定のモードにおいて当該アプリケーションのの処理を実行し、必要に応じてスイッチする。さらに他の例において、システム２００が省電力モードに配された場合、当該モードは、システム２００に、ＡＳＭＰ又はＳＭＰモードのうち、電力を節約するモードとなるようにプログラムされたいずれかのモードで動作することを要求してよい。
【００７７】
図示されるように、システム２００は、処理タスクがＳＭＰモード（又はＡＳＭＰモード）で実行されるべきか否かを判断する。ＳＭＰモードが用いられるべきであり、かつ、システムが現在ＳＭＰモードにはない場合、システムは、ＡＳＭＰモードからＳＭＰモードにスイッチする（段階１１０６）。同様に、（ＳＭＰモードではなく）ＡＳＭＰモードが用いられるべきであり、かつ、システムが現在ＳＭＰモードにある場合、システムは、ＳＭＰモードからＡＳＭＰモードにスイッチする（段階１１０８）。
【００７８】
理解されるように、一実施形態において、本明細書において説明されるシステム、処理、方法及びデバイスは、モバイルデバイス／小型コンピューティングデバイス又は基地局等内に組み込まれる場合を含め、モバイル環境において用いられてよい。このようなデバイスは、例えば、無線信号を送信及び／又は受信するように構成されてよい。デバイスは、任意の適したエンドユーザデバイスであってよく、ユーザ機器／デバイス（ＵＥ）、無線送受信ユニット（ＷＴＲＵ）、移動局、固定又はモバイル加入者ユニット、ページャ、携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）、スマートフォン、ラップトップ、コンピュータ、タッチパッド、無線センサ、ウェアラブル電子デバイス又は消費者向け電気デバイスのようなデバイスを含んで（又はこのように称されて）よい。
【００７９】
デバイスは、デバイスの様々な処理動作を実装する（本明細書において説明されるような）少なくとも１つの処理システム２００を含む。これは、例えば、信号符号化、データ処理、ビデオ／オーディオ処理、電力制御、入出力処理、又はデバイスのために考慮される任意の他の機能性を含んでよい。
【００８０】
処理システム２００は、本明細書において説明される方法及び教示をさらにサポートし、追加のコンポーネント及びプロセッサ（例えば、マイクロコントローラ、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ、又は特定用途向け集積回路）を含んでよい。
【００８１】
処理システム２００を組み込んだデバイスは、少なくとも１つのアンテナによる送信のためのデータ又は他のコンテンツを変調させるように構成される少なくとも１つの送受信機をさらに含んでよい。送受信機は、少なくとも１つのアンテナによって受信されるデータ又は他のコンテンツを復調されるようにさらに構成される。各送受信機は、無線送信のための信号を生成及び／又は無線により受信された信号を処理するために、任意の適した構造を含む。各アンテナは、無線信号を送信及び／又は受信するために、任意の適した構造を含む。１つ又は複数の送受信機がデバイスにおいて用いられてよく、１つ又は複数のアンテナが用いられてよい。
【００８２】
これらのデバイスは、ユーザとのインタラクションを容易にする１つ又は複数の入出力デバイスをさらに含んでよい。各入出力デバイスは、ユーザに情報を提供し、ユーザから情報を受信するために、スピーカ、マイクロフォン、キーパッド、キーボード、ディスプレイ、又はタッチスクリーンのような、任意の適した構造を含む。
【００８３】
さらに、これらのデバイスは、デバイスによって利用、生成、又は収集された命令及びデータを格納するために、上述のメモリを用いてよく、又は、他のメモリを含んでよい。例えば、メモリは、処理システム２００によって実行されるソフトウェア又はファームウェア命令を格納してよい。他のメモリは、任意の適した揮発性及び／又は不揮発性ストレージ及び検索デバイスを含んでよい。ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、ハードディスク、光ディスク、加入者識別モジュール（ＳＩＭ）カード、メモリスティック、セキュアデジタル（ＳＤ）メモリカード等のような、任意の適したタイプのメモリが用いられてよい。
【００８４】
モバイル／小型コンピューティングデバイスに関するさらなる詳細は、当業者に公知である。このため、これらの詳細は、明確性のため、ここでは省略される。
【００８５】
本明細書において説明される図１２から１９、ならびに本明細書中で示される様々な実施形態、及び本特許文献における本開示の後述される原則は、例示としてのみ用いられ、本発明の範囲を決して限定するものと解釈されるべきではない。当業者であれば、本明細書において説明される原則が、任意のタイプの適切に構成されたデバイス又はシステムにおいて実装可能であることを理解しよう。
【００８６】
一般論では、本願の図１２−１９に関して示される実施形態は、ＳＭＰ及びＡＳＭＰという２つの動作モードの間でスイッチ可能なマルチプロセッサ／コアを有する処理システムを説明する。システムは、２つのモード間において制御及びスイッチを有効化するハードウェア装置を含む。ハードウェア内において、オペレーティングシステム（ＯＳ）又は他のソフトウェア／ハードウェアからの、ＳＭＰとＡＳＭＰとの間でスイッチするスイッチコマンド受信の際に、連続する又は一連のアクションが実行され、マルチプロセッサ及びメモリに対するクロック及び電圧を制御する。スイッチコマンドの生成は、負荷、キャッシュミス率、電力消費理由等のような１つ又は複数の要因に基づいて、要望に応じて実行可能である。装置は、システムが１つのモードから他のモードへの移行中に障害を発生させず、プロセッサ／メモリに対するクロックがグリッチレスにスイッチされることを確実にする。装置／方法は、ソフトウェア／ＯＳ介入を最小化し、より高速なモードスイッチ速度を有する。
【００８７】
図１２−１９において説明される実施形態は、図１−１１において説明されるものと同様である。しかしながら、ＡＳＭＰモードは、概して、コアのグループ（複数のコア）を用いるマルチプロセッシングを指す。ここで、グループ内の他のコアと同じクロック周波数及び同じ供給電圧を用いて動作可能な少なくとも１つのコア（又はこれより多いが、全てのコアの一部）は、動的にスイッチされ、又は異なるクロック周波数及び供給電圧を用いるように構成される。このように、コアのグループは、ＳＭＰモード又はＡＳＭＰモードのいずれかで動作するが、グループにおいて少なくとも１つ（全てではない）は、異なるクロック周波数及び供給電圧を有する。
【００８８】
理解されるように、本明細書において用いられる「コア」という用語は、シングルプロセッサ、ＣＰＵ又は処理コアを指してよい。定義は、マルチプロセッサ、ＣＰＵ又は処理コアを有する「コア」を説明又は指すように拡張されてもよい。従って、本明細書において「コア」という用語を用いることは、単一の処理要素を限定するものではないが、同じ処理要素のグループを含むことができる。さらに、「コア」、「プロセッサ」及び「ＣＰＵ」という用語は、本明細書において互換的であってよく、そのように用いられる。
【００８９】
ＳＭＰモードとＡＳＭＰモードとの間における動的スイッチに加えて、説明されるこれらの様々な実施形態は、コアのグループ内において１つ又は複数のコアがスイッチオン／オフされる異なる方法及びシステムにおいて、利用可能である。
【００９０】
ここで、図１２を参照すると、本開示に係る処理システム１２００を示す詳細図が示される。
【００９１】
一般論では、処理システム１２００は、ＳＭＰ及びＡＳＭＰという２つの動作モード間でスイッチ可能なプロセッサのグループ（マルチプロセッサ）を含む。ＳＭＰモードにおいて、全てのプロセッサは、同じクロック周波数及び供給電圧を用いて動作し、（後述される異なる実施形態における）ＡＳＭＰモードにおいて、少なくとも１つの第１のプロセッサは、（１）残りのプロセッサのものと異なるクロック周波数及び供給電圧、又は（２）他のプロセッサと同じクロック周波数及び供給電圧のいずれかを用いて動作するように構成される。
【００９２】
システムは、２つの異なるクロック周波数及び供給電圧の間で、第１のプロセッサの制御及びスイッチを有効化するハードウェア装置を含む。ハードウェア内において、オペレーティングシステム（ＯＳ）又は他のソフトウェア／ハードウェアからの、ＳＭＰとＡＳＭＰとの間でスイッチするスイッチコマンド受信の際に、連続する又は一連のアクションが実行され、第１のプロセッサ及びメモリに対するクロック及び電圧を制御する。スイッチコマンドの生成は、負荷、キャッシュミス率、電力消費理由等のような１つ又は複数の要因に基づいて、要望に応じて実行可能である。装置は、第１のプロセッサが１つのモードから他のモードへの移行中に障害を発生させず、プロセッサ／メモリに対するクロックがグリッチレスにスイッチされることを確実にする。装置／方法は、ソフトウェア／ＯＳ介入を最小化し、より高速なモードスイッチ速度を有する。
【００９３】
処理システム１２００は、図示されるように、１２１０ａ（ＣＰＵ  Ａ），１２１０ｃ（ＣＰＵ  Ｃ）、１２１０ｄ（ＣＰＵ  Ｄ）及び１２１０ｂ（ＣＰＵ  Ｂ）を含むマルチプロセッサ１２１０と、対応するＬ２キャッシュメモリ部分１２２０（１２２０ａ及び１２２０ｂ）、クロスドメインクロック（ＣＤＣ）回路１２３０ａ、及びバイパス回路を有するＣＤＣ１２３０ｂとを有するマルチプロセッサコア及びキャッシュサブシステム１２０５を含む。４つのプロセッサ１２１０（及び対応するメモリ及び回路）が示されるが、プロセッサの数は、小さくても大きくてもよく、ただし、少なくとも２つを含む。理解されるように、各プロセッサ１２１０は、１つ又は複数のプロセッサを含んでよい。
【００９４】
処理システム１２００は、プロセッサ、キャッシュ及びＣＤＣへの電力供給において用いられる少なくとも２つの供給電圧信号（例えば、Ｖ０、Ｖ１）を生成する電力管理制御（ＰＭＩＣ）回路１２４０をさらに含む。同様に、クロック生成回路１２５０は、プロセッサ、キャッシュ及びＣＤＣのクロック動作において用いられる様々な事前決定されたクロック周波数を有する複数のクロック信号を生成する。
【００９５】
一実施形態において、ＰＭＩＣ回路１２４０を除いて、処理システム１２００は、単一の集積半導体基板／ダイ上に（又はマルチ基板ＩＣパッケージ内に配置される複数の半導体基板内に）配置され、又は他の方法で位置する。他の実施形態において、ＰＭＩＣ回路１２４０は、単一の集積半導体基板／ダイ上に含まれてもよい。
【００９６】
図示されるように、処理システム１２００は、コントローラ１２６０（モードコントローラとも称されることがある）及びクロックスイッチ回路（又はモジュール）１２７０をさらに含む。理解されるように、コントローラ１２６０は、クロック生成回路１２５０、ＰＭＩＣ回路１２４０、「バイパス回路を有するＣＤＣ」１２３０ｂ及びクロックスイッチ回路１２７０の機能性及び動作を制御する様々な制御信号を出力する。
【００９７】
クロック生成回路１２５０は、全てのプロセッサ２１０の動作速度を集合的に制御する１つのＳＭＰプロセッサクロック信号（ＣＬＫ）、キャッシュ部分１２２０ａの動作速度を制御する１つのＳＭＰメモリクロック信号（ＣＬＫｃｈ）、プロセッサ１２１０ｂの動作速度の個別制御を有効化する少なくとも１つのＡＳＭＰプロセッサクロック信号（ＣＬＫ０）、及びキャッシュメモリ部分１２２０ｂの動作速度の個別制御を有効化する少なくとも１つのＡＳＭＰメモリクロック信号（ＣＬＫｃｈ０）を含む複数のクロック信号を生成するために必要な回路及び要素を含む。これらのクロックのいずれも、回路１２５０によってグリッチレスに有効化又は無効化される。クロック生成回路１２５０は、コントローラ１２６０によって用いられるコントローラクロック信号（ＣＬＫ＿ＦＳＭ）をさらに生成する。
【００９８】
ＰＭＩＣ回路１２４０は、サブシステム１２０５のそれぞれの部分によって用いられる複数の動作供給電圧又は信号の生成に必要な回路及び要素を含む。図示されるように、ＰＭＩＣ回路１２４０は、プロセッサに電力を供給する少なくとも２つの動作供給電圧（Ｖ０、Ｖ１）を生成及び出力する。図示されるように、動作供給電圧Ｖ０は、プロセッサ１２１０ａ、１２１０ｃ、１２１０ｄ及びこれらのプロセッサに関連付けられたキャッシュメモリ部分１２２０ａに電力を供給する。動作供給電圧Ｖ１は、プロセッサ１２１０ｂ、その関連するキャッシュメモリ部分１２２０ｂ、及びバイパス回路を有するＣＤＣ１２３０ｂ等に電力を供給する。当業者によって理解されるように、プロセッサ／メモリがより高いクロック速度で動作する場合、プロセッサ／メモリをより高い供給電圧でさらに動作させることが望ましく、これが必要なことがある。さらに、コアが用いられない場合、電力急減及び／又はクロック無効化がされ得る。例えば、プロセッサ１２１０ｂへの動作供給電圧Ｖ１は、無効化されてよく、及び／又は、プロセッサ１２１０ｂに入力されるクロックは、無効化されてよい（例えば、クロックの入力なし）。
【００９９】
クロック生成回路１２５０は、生成されたクロック信号の各々にプログラム可能性を有効化する機能性及び回路をさらに含んでよいことが理解されよう。一実施形態において、クロック信号の各々は、多くの可能な周波数の１つにプログラム可能であってよい（例えば、ＣＬＫは、３００ＭＨｚから３ＧＨｚのような範囲の間でプログラム可能であってよい）。他の実施形態において、特定のクロック信号のみがプログラム可能であってよく、さらに他の実施形態において、各クロック信号の周波数は、事前決定され、固定である。さらに他の実施形態において、周波数は、互いに対して固定されてよいが、グループとしてプログラム可能であってよい。
【０１００】
同様に、ＰＭＩＣ回路１２４０は、生成された動作電圧供給Ｖ０、Ｖ１の各々にプログラム可能性を提供する機能性及び回路をさらに含んでよい。一実施形態において、各供給は、多くの可能な電圧レベルの１つに対してプログラム可能であってよい（例えば、電圧は、０．５ボルト及び３．３ボルトのような範囲の間でプログラム可能であってよい）。他の実施形態において、特定の電圧の電力供給のみがプログラム可能であってよく、さらに他の実施形態において、各供給の電圧レベルは、事前決定され、固定である。さらに他の実施形態において、電圧レベルは、互いに対して固定されてよいが、グループとしてプログラム可能であってよい。図示されていないが、他の実施形態において、基本動作電圧供給は、図示される２つに加えて、生成されてよい。この場合、基本電圧供給及び他の１つは、（クロックスイッチ回路１２７０において示されるマルチプレクサ１２７２と同様の）多重化回路への入力として用いられてよい。
【０１０１】
モード又はスイッチコントローラ１２６０は、有限ステートマシン（ＦＳＭ）１２６２、１つ又は複数のタイマ１２６４、及び（構成又はステータスレジスタのような）１つ又は複数のストレージレジスタ１２６６を含む。コントローラ１２６０は、スイッチコマンド（ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＭＯＤＥ）のアサートに応じて、一連のアクション又は処理を制御及び実行するように機能する。従って、図示される実施形態において、スイッチコマンドがアサート／非アサートされる場合、動作モードは、ＡＳＭＰモードとＳＭＰモードとの間でスイッチされる。様々な方法及びメカニズムが、スイッチコマンドの生成のために用いられてよく、いくつかの例が、図１３および１６に関して後述される。
【０１０２】
有効化信号（ＥＮＡＢＬＥ＿ＡＳＭＰ＿ＣＬＫＳ、ＥＮＡＢＬＥ＿ＳＭＰ＿ＣＬＫ）を用いて、コントローラ１２６０は、ＳＭＰ／ＡＳＭＰスイッチの前にクロックを有効化するクロック生成モジュール１２５０を制御する。コントローラ１２６０は、ＰＭＩＣ回路１２４０のモジュールをさらに制御し、スイッチの前に（又はスイッチの後で）動作供給電圧Ｖ０、Ｖ１をプログラム又は変化させる。一実施形態において、ＰＭＩＣ回路１２４０がプロセッサの外部にある場合（例えば、オフチップ）、コントローラ１２６０は、ＳＰＭＩ／ＳＢＩ／ＭＩＰＩのような通信バス又はインタフェースを介してＰＭＩＣ回路１２４０と通信を行ってよい。ＰＭＩＣ回路が外部にない場合、他の通信経路が用いられてよい。
【０１０３】
スイッチコマンド（ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＭＯＤＥ）は、様々な事象に応じて、かつ、処理システム１２００内又は外部の様々な要素によって生成されてよい。図示される実施形態において、スイッチコマンドは、マルチプロセッサコア及びキャッシュサブシステム１２０５から生成されるが、他の実施形態においては、他のソースによって生成されてよい。
【０１０４】
プロセッサ１２１０ｂに対して、ＳＭＰクロックからＡＳＭＰクロックへの実際のスイッチオーバ（逆もまた同様）が行われる場合、コントローラ１２６０は、クロックスイッチ回路１２７０内のマルチプレクサ１２７２を用いて、プロセッサ１２１０ｂへのＡＳＭＰクロック信号（ＣＬＬ０）を選択的に多重化するＡＳＭＰ選択信号（ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＣＬＫ）を生成する。理解されるように、ＡＳＭＰモードにおけるプロセッサ／ＣＰＵコア１２１０ｂのクロックは、ＣＬＫ０として示されるが、ＳＭＰモードにおける残りのプロセッサ／ＣＰＵコア１２１０ａ、１２２０ｃ、１２１０ｄのクロックは、ＣＬＫと示される。従って、ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＣＬＫ信号は、どのクロック（ＣＬＫ０又はＣＬＫ）がプロセッサ１２１０ｂによって用いられるかをグリッチレスに選択する。一実施形態において、ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＣＬＫがアサートされる場合（ロジックハイ又は「１」）、クロック信号ＣＬＫ０が選択され、プロセッサ／コア１２１０ｂに入力される。ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＣＬＫがアサートされない場合（ロジックロー又は「０」）、クロックＣＬＫが選択され、プロセッサ／コア１２１０ｂに入力される。スイッチ中の様々な事象及びアクションのタイミングは、１つ又は複数のタイマ１２６４を用いることにより、ＦＳＭ１２６２に従って制御される。より詳細に後述されるように、クロックウォームアップ期間及び電圧ランプアップ／ランプダウン期間が用いられてよい。これらの値は、ソフトウェア又は他の方法によって、事前にプログラムされ又は事前設定され、コントローラのＣ／Ｓレジスタ又は他のメモリ位置（不図示）に格納されてよい。
【０１０５】
処理システム１２００に示された要素の大半は、図２の処理システム２００において示される対応する要素と同じ又は同様である（例えば、１２１０ｂは２１０ｂと同じ又は同様である等）。理解されるように、参照番号によって具体的には特定されていないが、例えば、レベルシフタのような様々な他の論理回路が含まれてよい。レベルシフタは、典型的には、信号が電力ドメインをクロスする場合に用いられる。
【０１０６】
ＣＤＣ回路１２３０ｂに関して、ＳＭＰモード（ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＣＬＫ信号がアサートされない）において、プロセッサ１２１０ｂからのデータが、Ｌ２キャッシュ１２２０ｂに向かう途中で非同期ＣＤＣ回路１３１ａをバイパスし、Ｌ２キャッシュ１２２０ｂからのデータがプロセッサ１２１０ｂに向かう途中で非同期ＣＤＣ回路１３１ｂをバイパスすることが理解されよう。（図５及び付随するＣＤＣ回路の説明を参照）対照的に、ＡＳＭＰモードにある場合（ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＣＬＫ信号がアサートされ、Ｃａｃｈｅ＿ＣＬＫ及びＣＰＵ＿ＣＬＫ信号が異なる場合がある）、プロセッサ１２１０ｂからのデータは、Ｌ２キャッシュ１２２０ｂに向かう途中で非同期ＣＤＣ回路１３１ａによって処理され、Ｌ２キャッシュ１２２０ｂからのデータは、プロセッサ１２１０ｂに向かう途中で非同期ＣＤＣ回路１３１ｂによって処理される。非同期ＣＤＣ回路１３１ａ、１３１ｂは、事前決定された順番に従って、１つのクロックドメインから他のクロックドメインへのデータ転送を確実にするように機能し、例えば、最初に受信されたデータが最初に出力される。１つのクロックドメインにおいてクロックと同期する入力されたデータは、他のクロックドメインにおいてクロックと再同期される。非同期ＦＩＦＯは、概して、インタフェースにおいて、いくらかのレイテンシにより、データバッファを提供する。
【０１０７】
ここで図１３を参照すると、システム１２００内でＳＭＰ／ＡＳＭＰモードスイッチを開始及び制御するアーキテクチャ（例えば、方法、処理、システム）１３００が、概念的に示される。モード選択は、所望の処理又はアプリケーションのタイプ、及び他の情報又は要因に基づいて、実行可能である。図示されるように、処理又はアプリケーション１３０２は、ブラウザアプリケーション１３０２ａ、ストリーミングアプリケーション１３０２ｂ、ゲームアプリケーション１３０２ｃ又はナビゲーション１３０２ｄであってよい。他の要因／情報１３０４も、考慮されてよい。
【０１０８】
例として、ストリーミングアプリケーション１３０２ｂがマルチプロセッシングを必要とすると仮定すると、モード選択デバイス１３１０は、そのアプリケーションに関連付けられた処理タスクがＳＭＰ又はＡＳＭＰモードのいずれで実行されるべきかを判断する。システムソフトウェア／ＯＳは、この判断を実行し、決定をなす。システムは、コントローラにコマンドを発行するようにシングルプロセッサを割り当ててよいが、概して、決定は、システムレベル／ＯＳレベルで実装される。この決定は、静的情報、動的情報又はこれらの組み合わせに基づいてなされてよい。一例において、全てのビデオエンコーディングアプリケーションがＳＭＰモードを用いることが事前決定されてよい。他の例において、全てのビデオストリーミングアプリケーションは、全てのプロセッサ／ＣＰＵ／コアが使用されるほどシステムの現在の負荷が重くない限り、ＡＳＭＰモードを用いる。他の変更形態は、１つのモードから他のモードにスイッチするか否かについての決定をなすために、プログラム及び利用可能である。
【０１０９】
一実施形態において、シングルプロセッシングタスクが必要とされる場合に、ルックアップテーブルが参照されてよい。他の実施形態において、電力の比較は、マルチプロセッシングタスクが存在する場合にいずれかのモードを選択するために用いられる要因であってよい。例えば、ユーザが、同時に音楽を聴きつつ電子メールを使っている場合、ＡＳＭＰが選択可能である。
【０１１０】
どのモードが選択されるべきかを判断した後で、デバイス１３１０は、ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＭＯＤＥ制御信号（図１２参照）において適切な信号を発する（例えば、高／低）。理解されるように、現在の動作モードは、既に、選択されたモードであってよい（このような場合には、ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＭＯＤＥ信号は移行しない）。
【０１１１】
ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＭＯＤＥ信号に応じて、システム１３００は、ＡＳＭＰモード（１３２０）又はＳＭＰモード（１３３０）で動作する。ＳＭＰモード１３３０にある場合、コアＡ（要素１２１０ａ、１２２０ａ、１２３０ａ）、コアＣ（要素１２１０ｃ、１２２０ａ、１２３０ａ）、コアＤ（要素１２１０ｄ、１２２０ａ、１２３０ａ）、及びコアＢ（要素１２１０ｂ、１２２０ｂ、１２３０ｂ）は、同じクロック信号／周波数及び供給電圧（ＣＬＫ／ＶＤＤ）で動作する。ＡＳＭＰモード１３２０にある場合、コアＡ、Ｃ及びＤは、同じクロック信号／周波数及び供給電圧（ＣＬＫ１／ＶＤＤ１）で動作し、コアＢは、コアＡ、Ｃ及びＤと異なるクロック信号／周波数及び供給電圧（ＣＬＫ２／ＶＤＤ２）で動作する。ＳＭＰ／ＡＳＭＰモード（及びモードスイッチ）の詳細は、本明細書において説明されている。
【０１１２】
図１３のアーキテクチャ（方法又は処理）１３００の説明及び要素は、図８のアーキテクチャ（方法又は処理）１３００に示される対応する要素と同じ／同様であるが、異なるクロック及び電圧の構成を有することが理解されよう。
【０１１３】
ここで、図１４Ａおよび１４Ｂを参照すると、図１２に示される処理システム１２００の代替的な簡略化されたブロック図が示される。
【０１１４】
図１４Ａにおいて、コアＡ、Ｃ及びＤ（１２１０ａ、１２１０ｃ、１２１０ｄ）は、単一の動作電圧供給１４０５（ＶＤＤ）及び単一のクロック信号１４１０（ｃｌｋ）に連結され、コアＢ（１２１０ｂ）は、動作電圧供給１４１５（ＶＤＤｂ）及びクロック信号１４２０（ｃｌｋｂ）に連結される。この構成において、ＶＤＤｂ供給１４１０は、別個の入力／出力端末によって供給される別個の電圧レールによって提供されてよい。
【０１１５】
図１４Ｂにおいて、コアＡ、Ｃ及びＤ（１２１０ａ、１２１０ｃ、１２１０ｄ）は、同様に、単一の動作電圧供給１４０５（ＶＤＤ）及び単一のクロック信号１４１０（ｃｌｋ）に連結される。コアＢは、同様に、動作電圧供給１４１５（ＶＤＤｂ）及びクロック信号１４２０（ｃｌｋｂ）に連結される。しかしながら、コアＢは、電圧供給１４０５から導出された動作電圧供給１４３０（ＶＤＤｂ）に連結される。電圧レギュレータ１４４０は、ＶＤＤを受け、電圧供給ＶＤＤｂを生成し、（選択されたモードに応じて）ＶＤＤｂ又はＶＤＤのいずれかをコアＢに出力する。電圧レギュレータ１４４０は、オンチップであってよく、低ドロップアウト（ＬＤＯ）電圧レギュレータ又はスイッチモード電力供給（ＳＭＰ）のようなバイパスモード又は機能（不図示）を含む。従って、ＶＤＤｂ１３１２は、ＶＤＤから導出される。バイパスモードにおいて、ＶＤＤｂ＝ＶＤＤである。さらに、ＶＤＤｂは、電圧レギュレータ１４４０を無効化することによって電力急減されてよく、これにより、コアＢをシャットダウンする。理解されるように、電圧レギュレータのバイパス機能は、マルチプレクサを用いて実装可能であり、ステートマシン又は他のソフトウェア処理によって制御可能である。
【０１１６】
理解されるように、一実施形態において、２つの電圧供給ＶＤＤ、ＶＤＤｂ及び２つのクロック信号ｃｌｋ、ｃｌｋｂは、それぞれ、図１２に示される２つの動作電圧供給Ｖ０、Ｖ１及び２つのクロック信号ＣＬＫ、ＣＬＫ０である。
【０１１７】
図１２−１４のシステムに関して上述された、ＳＭＰモードとＡＳＭＰモードとの間におけるスイッチを実装する例示的なコンポーネント、ハードウェア及び方法に加えて、図８−１１に関して上述された、ＳＭＰとＡＳＭＰとの間におけるモードスイッチを開始及び制御する例示的な方法及び処理が、これらのシステムにも適用可能である。当業者であれば、これらの例示的な方法及び処理を容易に変形し、必要に応じて、図１２−１４（及び以下説明されるもの）において説明されるシステムに対してこれらを適切及び／又は適用可能にすることができよう。
【０１１８】
４つのプロセッサ／コア（Ａ、Ｂ、Ｃ、Ｄ）を有するシステムにおけるマルチプロセッシングの様々な例が、図１５において後述される。これらは、例示目的に過ぎず、４つより多くの又はこれより少ないプロセッサ／コア（異なる数のプロセッサ／コア）及び／又はアイドル（パワーダウン、スリープモード等）であるもう１つのプロセッサ／コアを有するシステムを含む、異なる実装、方法及び基準が用いられてよい。例えば、処理要件が低い場合、１つ又は複数の選択されたプロセッサ／コアがシャットダウンされてよい。一般論では、図１５は、異なる数のプロセッサ／コア（コアＡ、Ｂ、Ｃ及びＤ）がＡＳＭＰモード１３２０又はＳＭＰモード１３２０のいずれかにおいて用いられる例を示す。これらのコアは、図１２のシステムに示されるコアに対応する。
【０１１９】
ブロック１５１０ａ、１５１０ｂおよび１５１０ｃは、ＳＭＰモード（１３３０ａ、１３３０ｂ、１３３０ｃ）で動作するプロセッサ／コアの３つの異なる構成を示す。同様に、１５００ａ、１５００ｂ及び１５００ｃは、ＡＳＭＰモード（１３２０ａ、１３２０ｂ、１３２０ｃ）で動作するプロセッサ／コアの３つの異なる構成を示す。
【０１２０】
ブロック１５１０ａは、コアＣ及びＤがシャットダウンされ、コアＡ及びＢが実行されている第１のプロセッサ／コア構成で、ＳＭＰモードにおいて動作するシステムを示す。ＳＭＰモードにおいて、コアＡ及びＢは、同じクロック周波数及び電圧供給（ＣＬＫ／ＶＤＤ）において動作し、コアＢは、ＣＬＫ／ＶＤＤ（例えば、ＣＬＫ、ＣＬＫｃｈ、及びＶ１はＶ０に等しい。図１２参照）をさらに受けるように構成される。ブロック１５００ａは、ＡＳＭＰモードであるが、これと同じプロセッサ／コア構成を示す。ＡＳＭＰモードにおいて、コアＡ及びＢは、異なるクロック周波数及び電圧供給において動作する。ここで、コアＡは、ＣＬＫ１／ＶＤＤ１で動作し、コアＢは、ＣＬＫ２／ＶＤＤ２で動作する（例えば、ＣＬＫ０、ＣＬＫｃｈ０、及びＶ０と異なるＶ１。図１２参照）。
【０１２１】
ブロック１５１０ｂは、コアＤがシャットダウンされ、コアＡ、Ｃ及びＢが実行されている第２のプロセッサ／コア構成で、ＳＭＰモードにおいて動作するシステムを示す。ＳＭＰモードにおいて、コアＡ、Ｃ及びＢは、同じクロック周波数及び電圧供給（ＣＬＫ／ＶＤＤ）において動作し、コアＢは、ＣＬＫ／ＶＤＤ（例えば、ＣＬＫ、ＣＬＫｃｈ、及びＶ１はＶ０に等しい。図１２参照）を受けるようにさらに構成される。ブロック１５００ｂは、ＡＳＭＰモードであるが、これと同じプロセッサ／コア構成を示す。ＡＳＭＰモードにおいて、コアＡ及びＣは、同じクロック周波数及び電圧供給ＣＬＫ１／ＶＤＤ１において動作し、コアＢは、異なるクロック周波数及び電圧供給ＣＬＫ２／ＶＤＤ２において動作する（例えば、ＣＬＫ０、ＣＬＫｃｈ０、及びＶ１はＶ０と異なる。図１２参照）。
【０１２２】
ブロック１５１０ｃは、全てのコアＡ、Ｂ、Ｃ及びＤが実行されている第３のプロセッサ／コア構成で、ＳＭＰモードにおいて動作するシステムを示す。ＳＭＰモードにおいて、コアＡ、Ｃ及びＤは、同じクロック周波数及び電圧供給（ＣＬＫ／ＶＤＤ）において動作し、コアＢは、ＣＬＫ／ＶＤＤ（例えば、ＣＬＫ、ＣＬＫｃｈ、及びＶ１はＶ０に等しい。図１２参照）を受けるようにさらに構成される。ブロック１５００ｃは、ＡＳＭＰモードであるが、これと同じプロセッサ／コア構成を示す。ＡＳＭＰモードにおいて、コアＡ、Ｃ及びＤは、同じクロック周波数及び電圧供給ＣＬＫ１／ＶＤＤ１において動作し、コアＢは、異なるクロック周波数及び電圧供給ＣＬＫ２／ＶＤＤ２において動作する（例えば、ＣＬＫ０、ＣＬＫｃｈ０、及びＶ１はＶ０と異なる。図１２参照）。
【０１２３】
一実施形態において、２つのプロセッサ／コアのみが必要とされる場合、システムは、コアＡ（又はコアＣ又はコアＤ）及びコアＢを用いて、ＳＭＰモードとＡＳＭＰモードとの間でスイッチする柔軟性をグループに提供する。追加の処理電力が必要とされる場合、残りのコアの１つ又は両方が用いられ、ＳＭＰモードとＡＳＭＰモードとの間でスイッチする柔軟性をグループに再度さらに提供することができる。理解されるように、ＳＭＰモードとＡＳＭＰモードとの間におけるスイッチは、上述された基準又は情報のいずれかに応じて行われてよい。また、ＳＭＰモードとＡＳＭＰモードとの間におけるスイッチ（ならびにＣＬＫ及びＶＤＤの変更）するために実装される方法／処理は、本明細書において説明される実施形態のいずれかにおいて、図３Ａ、３Ｂおよび３Ｃに関して説明されるものと同じ又は同様であってよい。このことはいくつかの変形又は再構成を必要とするが、当業者であれば、図３Ａ、３Ｂおよび３Ｃをガイドとして用いて、モード間のスイッチを実装することができよう。
【０１２４】
システム１２００のアーキテクチャは、システム２００と比較して、ＳＭＰ／ＡＳＭＰ動的スイッチに関連するコスト及びハードウェア／ソフトウェアの複雑さの両方を大幅に減少させる。例えば、４つのプロセッサ／コアを有するＭＰシステムにおいて、（１つのプロセッサのみが動的に構成可能な）システム１２００に従って構成されるシステムへの追加コストは、（４つのプロセッサの全てが動的に構成可能な）システム２００に従って構成されるシステムと比較して３分の１のオーダの追加コストである。
【０１２５】
試験及び調査により、ほとんどの場合、処理要件は２つのプロセッサによって満たされることができ、ほとんどの場合、２つのプロセッサは、アンバランスな負荷で実行されることが明らかにされた。２つのプロセッサコアＡ及びＢで動作するシステム１２００（図１２及び図１５に示される構成１３２０ａおよび１３３０ａを参照）において、ＳＭＰモードとＡＳＭＰモードとの間で適切にスイッチすることにより、電力効率の最適化が可能となる。同様に、最大の性能のために、４つのプロセッサコアＡ、Ｂ、Ｃ及びＤの全てが、ＳＭＰモードにおいて、最大クロック周波数及び供給電圧で動作可能である。その結果、必要に応じて同じハイエンド性能を同時に維持しつつ、柔軟性及び電力減少を実現する。システム１２００は、Ａｎｄｒｏｉｄ（登録商標）／ｉＯＳ／Ｗｉｎｄｏｗｓ（登録商標）のようなモバイルハイレベルオペレーティングシステム（ＨＬＯＳ）に対して、低コスト、低電力及び高性能の間で、有益なトレードオフを提供し、低階層から中階層のマーケットにも適している。
【０１２６】
当業者であれば、図１２−１５に示される「コア」（例えば、Ａ、Ｂ、Ｃ、Ｄ）の１つ又は複数が、各コア内に２つ又はそれより多くのプロセッサを各々さらに含んでよいことを容易に理解しよう。このような実施形態において、プロセッサの各「グループ」は、別個のエンティティ（又は「コア」）として機能するように分類される。例えば、コアＡは、３つのプロセッサを含んでよく、コアは、２つのプロセッサを含んでよい。ＳＭＰモードにおいて、５つのプロセッサは全て、同じクロック周波数及び供給電圧で動作する。ＡＳＭＰモードにおいて、コアＢのプロセッサは、異なるクロック周波数及び供給電圧に、集合的にスイッチされる。理解されるように、ＳＭＰモードとＡＳＭＰモードとの間でスイッチするという決定は、システムのプロセッサをアクティブ化／非アクティブ化するという決定に基づいて、又は少なくとも部分的に基づいて、なされてよい。このことは、図１８−１９に関してさらに後述される。
【０１２７】
ここで、図１６を参照すると、図１３に示されるアーキテクチャ（例えば、方法、処理、システム）１３００と同様の代替的な実施形態１６００が示される。同様に、モード選択は、所望の処理又はアプリケーションのタイプ、及び他の情報又は要因に基づいて、実行可能である。
【０１２８】
システム１６００および１３００の間の主な違いは、システム１６００において、他の全てと同じクロック周波数及び電圧供給で（ＳＭＰモード）又は他のいくつかと異なるクロック周波数及び電圧供給で（ＡＳＭＰモード）動作するように動的に構成可能な、２つ又はそれより多くのプロセッサ／コア（コアＢ、コアＥ等）が存在する点にある。言い換えると、図１３のシステム１３００におけるコアＢと同様のマルチプロセッサ／コアが存在する。
【０１２９】
ＡＳＭＰモードにある場合、グループ全体が、２つのサブグループ１６１０および１６２０を含むものとして分類可能である。サブグループ１６１０において、サブグループのみの内のプロセッサ／コア（例えば、コアＡ、コアＣ等）の全ては、単一のクロック周波数及び電圧供給で動作する。これは、各々が１つのクロック周波数及び電圧供給（ＣＬＫ１／ＶＤＤ１）で動作することを意味する。サブグループ１６２０において、当該サブグループ内のプロセッサ／コア（例えば、コアＢ、コアＥ等）の各々は、ＣＬＫ１／ＶＤＤ１と異なるクロック周波数及び電圧供給（例えば、ＣＬＫ２／ＶＤＤ２）で動作する。従って、サブグループ１６２０内のプロセッサ／コアは、複数のクロック周波数及び電圧供給（例えば、ＣＬＫ１／ＶＤＤ１、ＣＬＫ２／ＶＤＤ２等）の１つで動作するように動的に選択可能であり、サブグループ１６１０内のプロセッサ／コアは、所与のクロック周波数及び電圧供給（ＣＬＫ１／ＶＤＤ２）において静的に動作する。
【０１３０】
ＳＭＰモードにある場合、全てのプロセッサ／コアは、同じクロック周波数及び電圧供給（ＣＬＫ／ＶＤＤ）で動作する。実際には、ＣＬＫ／ＶＤＤはＣＬＫ１／ＶＤＤ１と同じであることが理解されよう。
【０１３１】
システム１３００と同様に、ＳＥＬＥＣＴ＿ＡＳＭＰ＿ＭＯＤＥ信号に応じて、システム１６００は、ＡＳＭＰモード（１３２０）又はＳＭＰモード（１３３０）で動作する。ＳＭＰモード１３３０にある場合、コア（例えば、Ａ、Ｂ、Ｃ、Ｅ等）の全ては、同じクロック信号／周波数及び供給電圧（ＣＬＫ／ＶＤＤ）で動作する。ＡＳＭＰモード１３２０にある場合、サブグループ１６１０内のコア（例えば、コアＡ、Ｃ等）は、同じクロック信号／周波数及び供給電圧（ＣＬＫ１／ＶＤＤ１）で動作し、サブグループ１６２０内のコア（例えば、コアＢ、Ｅ等）は、サブグループ１６１０のコアと異なるクロック信号／周波数及び供給電圧（ＶＣＬＫ２／ＶＤＤ２）で動作する。ＳＭＰ／ＡＳＭＰモード（及びモードスイッチ）の詳細は、本明細書において説明されている。同様に、ＳＭＰモードとＡＳＭＰモードとの間でスイッチするという決定は、システムのプロセッサをアクティブ化／非アクティブ化するという決定に基づいて、又は少なくとも部分的に基づいて、なされてよい。このことは、図１８−１９に関してさらに後述される。
【０１３２】
サブグループ１６２０内の全てのコアは同じＣＬＫ２／ＶＤＤ２で集合的に動作するが、他の実施形態において、これらのコアは、グループ内において複数の異なるクロック周波数及び電圧供給で動作するように個々に構成可能であってよい（例えば、サブグループ１６２０自身が、ローカルなＳＭＰ及びＡＳＭＰモードをさらに有してよい）ことが理解されよう。
【０１３３】
ここで、図１７を参照すると、他の実施形態又はアーキテクチャを示す２つのＭＰシステム１７１０および１７２０が示される。システムは、複数の異なる周波数で動作するように個々に構成可能（動的ににスイッチ可能）なｎ個のコアを含む。ｎは、２つ又はそれより多い。
【０１３４】
システム１７１０は、第１の固定クロック周波数／電圧供給ＣＬＫ１／ＶＤＤ１で動作するコアＡ及びＣを含む。コアＤは、第２のクロック周波数／電圧供給ＣＬＫ２／ＶＤＤ２で動作し、コアＢは、第３のクロック周波数／電圧供給ＣＬＫ３／ＶＤＤ３で動作する。本明細書における教示に従って、システムがＳＭＰモードにある場合、全てのクロック周波数及び電圧供給は等しく、システムがＳＭＰモードにある場合、全てのクロック周波数及び電圧供給は、ＣＬＫ１／ＶＤＤ１と等しい。ＡＳＭＰモードにある場合、クロック周波数／電圧のペアＣＬＫ１／ＶＤＤ１、ＣＬＫ２／ＶＤＤ２及びＣＬＫ３／ＶＤＤ３は、等しくない。システム１７２０は、システム１７１０と同様であるが、第１の固定ＣＬＫ１／ＶＤＤ１で動作するようにさらに構成されるコアＥを示す。従って、システム１７１０、１７２０は、プロセッサの第１のグループ（固定ＣＬＫ１／ＶＤＤ１で動作）と、個々のプロセッサが（ＳＭＰモードにおいて）固定ＣＬＫ１／ＶＤＤ１、又は異なるクロック周波数／電圧供給（例えば、ＣＬＫ２／ＶＤＤ２、ＣＬＫ３／ＶＤＤ３）のいずれかで動作するように動的にスイッチ可能である、プロセッサの第２のグループとを含む。
【０１３５】
理解されるように、任意の数ｎ個の個々に動的にスイッチ可能（ＣＬＫ／ＶＤＤ）なコアが、システム１７１０、１７２０に含まれてよく、及び／又は、任意の数の固定（ＣＬＫ１／ＶＤＤ１）コアが含まれてよい。具体的には示されていないが、システム１７１０、１７２０の動的スイッチの機能性は、図１２において説明されたものと同様の態様で実装されてよく（当業者に公知の必要な変形を伴って）、本文書で説明された他の態様で実装されてもよい。
【０１３６】
図中で示され、説明されるシステム１２００に関して、様々な動作例又は方法が、ここで後述される。
【０１３７】
第１に一般的な動作スキームにおいて、１つ又は３つ又はそれより多くのコアがアクティブな場合、ＳＭＰモードが選択され、全てのアクティブプロセッサは、同じクロック周波数及び電圧供給で動作する。２つのコアがアクティブな場合、アクティブプロセッサの１つはコアＢであり、他のアクティブプロセッサは、コアＡ、コアＣ又はコアＤのいずれかであり、２つのアクティブプロセッサは、望ましい場合には、（図９−１１に従って、及び／又は本明細書における他の図又は説明に従って、説明される処理及び方法に基づいて）ＳＭＰモードとＡＳＭＰモードとの間でスイッチ可能である。
【０１３８】
第２の一般的な動作スキームにおいて、２つのコアがアクティブな場合（１つのアクティブコアはコアＢである）、２つのアクティブコアは、ＡＳＭＰモードで動作するように構成される。３つ又はそれより多くのコアがアクティブな場合、アクティブコアは、ＳＭＰモードで動作するように構成される。
【０１３９】
第３の動作スキームにおいて、２つのコアがアクティブな場合（１つのアクティブコアはコアＢである）、２つのアクティブコアは、ＡＳＭＰモードで動作するように初期的に構成される。２つのアクティブコアがＡＳＭＰモードにあることにより、コアは、（図９−１１に従って、及び／又は本明細書における他の図又は説明に従って説明される処理及び方法に基づいて）ＳＭＰモードとＡＳＭＰモードとの間でスイッチ可能である。
【０１４０】
本明細書において導入及び説明される他の概念は、プロセッサ／コアの負荷及び利用を対象とする。マルチプロセッサ／コアシステムにおいて、全ての時間において、全てのプロセッサ／コアが必要とされるわけではない。処理要件が低い場合、１つ又は少数のプロセッサのみが必要とされる場合があり、高い場合、より多くのプロセッサが必要とされる場合がある。この概念は、モード選択処理に導入又は統合されてよく、又は、モード選択処理は、いくつのプロセッサがコンピューティング要件に対応するために必要とされるかに基づいて、又は少なくとも部分的に基づいて、実行されてよい。
【０１４１】
本明細書において説明されるシステムにおいて、クロック無効化及び／又は電力急減されるように各コアを有効化し、プロセッサ／コアをスリープモードに配し、これらを無効化又はシャットダウンする追加の機能性（具体的には示されていない）が提供されてよい。このことにより、（より少数のプロセッサで処理要件に対応可能な場合）必要ではないプロセッサをオフにすることによって電力消費を減少させる。
【０１４２】
様々な処理又は方法が、いくつのプロセッサが現在のコンピューティング要件を満たすために必要とされるかを判断するために実装可能である。一度この判断がなされると、コアは、以下の段落で説明されるもののような任意の適切な順序及び／又は優先度で、スイッチオン／オフされてよい。
【０１４３】
様々なコンピューティング要因及び要件（例えば、負荷、キューの長さ、タスク、スレッド、依存性、ＣＰＵ要求など等）に基づいて、プロセッサは、望ましい場合にオン／オフされてよい。図１８に示される一実施形態において、追加のプロセッサがいつアクティブ化されるべきか（又は、複数のアクティブプロセッサの１つがいつ非アクティブ化されるべきか）という判断は、タスク負荷に基づいてなされる。タスク負荷１８１０が増加すると、追加のプロセッサをアクティブ化し、増加した負荷に対応することが望ましいポイント（上方移行閾値１８２０）に到達する。上方移行閾値１８２０に到達した場合、他のプロセッサがオンラインにされる。２つのアクティブプロセッサにより、タスク負荷１８１０は減少を開始する。現在の負荷が１つのプロセッサによって対応可能であると、アクティブプロセッサの１つを非アクティブ化することが望ましいポイント（下方移行閾値１８３０）に到達する。図示されるように、２つの閾値１８２０、１８３０は、ヒステリシス関数を提供するように設定される。
【０１４４】
以下の説明は、この概念を、システム１２００（図１２に示される特定のコアＡ、Ｂ、Ｃ及びＤを有する）に適用されるものとして示す。処理要件がシングルコアによって満たされることができる場合、コアＡ、Ｃ又はＤのいずれか１つが用いられ、他のコアはシャットダウンされる。処理要件が２つのコアを必要とする場合、コアＢが用いられ、かつ、コアＡ、Ｃ又はＤのいずれか１つが用いられ、他の２つのコアはシャットダウンされる。しかしながら、２つのコアが必要であると判断される場合にいずれのシングルコアがアクティブだとしても、アクティブコアの１つとして残る可能性が高いことが理解されよう。２つのコアがアクティブな場合（１つはコアＢ）、キャッシュミス又は学習システムのような、本明細書において説明される様々な基準が、（例えば、電力を低下させるために）ＳＭＰモードとＡＳＭＰモードとの間でスイッチするか否かを判断するために用いられる。
【０１４５】
処理要件が３つのコアを必要とする場合、コアＢが用いられ、かつ、コアＡ、Ｃ及びＤのうち２つが用いられる。３つのコアがアクティブな場合（１つはコアＢ）、キャッシュミス又は学習システムのような、本明細書において説明される様々な基準が、（例えば、電力を低下させるために）ＳＭＰモードとＡＳＭＰモードとの間でスイッチするか否かを判断するために利用可能である。同様に、コンピューティング要件が４つのコア全てを必要とする場合、ＳＭＰモードとＡＳＭＰモードとの間におけるスイッチが、望ましい場合には実装されてよい。
【０１４６】
ここで、図１９を参照すると、ＳＭＰ／ＡＳＭＰモード選択処理と統合される付加／除去プロセッサの処理１９００の一般的なフロー図が示される。様々な再構成又は変形が、用いられる特定のアーキテクチャ（例えば、コアの数）及び所望の機能性又は用途に応じて、図示された処理に対してなされてよい。理解されるように、このような処理において利用可能な全ての段階又は要素が、示されているわけではない。
【０１４７】
処理１９００は、シングルプロセッサが動作するポイントにおいて示される。シングルプロセッサのみが必要とされる場合、ＭＰシステムは、ＳＭＰモードにおいて、単一の固定ＣＬＫ１／ＶＤＤ１で動作する（段階１９１０）。処理動作中のいくつかのポイントにおいて、処理要件の増加に対応するために（又は何らかの他の理由により）、第２のプロセッサが必要とされるか否かが判断される（段階１９１５）。この判断は、動作情報に周期的に基づいて、又はこれに応じてなされてよい。
【０１４８】
他のプロセッサが必要とされているという判断に応じて、処理１９００は、設計者による要望に応じて、３つの可能な経路１９２０ａ、１９２０ｂ、１９２０ｃの１つに沿って進む。これらの３つの代替案は、第２のプロセッサのアクティブ化の際に、２つのアクティブプロセッサが、（１）ＳＭＰモード（１９２０ａ）、（２）ＡＳＭＰモード（１９２０ｂ）、又は（３）オペレーティングシステムの要件に従って機能し、もしくはモード選択情報を処理し、ＳＭＰモード又はＡＳＭＰモードのいずれかが選択されるべきであると判断すること（１９２０ｃ）のいずれをデフォルトとするかに関する。
【０１４９】
デフォルトＳＭＰモード（１９２０ａ）が選択された場合、第２のプロセッサは、ＣＬＫ１／ＶＤＤ１に従って受信及び動作を実行する（第１のプロセッサも、ＣＬＫ１／ＶＤＤ１で動作する）ように自動的に構成される。対照的に、デフォルトＡＳＭＰモード（１９２０ｂ）が選択された場合、第２のプロセッサは、ＣＬＫ１／ＶＤＤ１と異なるＣＬＫ２／ＶＤＤ２に従って受信及び動作を実行する（第１のプロセッサは、ＣＬＫ１／ＶＤＤ１で動作する）ように自動的に構成される。第３のデフォルト処理（１９２０ｃ）が選択された場合、システムは、「初期」ＳＭＰ／ＡＳＭＰモード選択／スイッチ処理（不図示）を実行し、２つのプロセッサがＳＭＰモード又はＡＳＭＰモードで動作を開始するように、第２のプロセッサをアクティブ化するか否かを判断する。
【０１５０】
一度両方のプロセッサがアクティブとなり、（１）デフォルトＳＭＰモードにおける動作、（２）デフォルトＡＳＭＰモードにおける動作、又は（３）ＳＭＰ又はＡＳＭＰのいずれかの選択されたモードにおける動作のいずれかである場合、処理は、ＳＭＰ／ＡＳＭＰモード選択／スイッチ処理に続く（段階１９３０）。この処理において、ＭＰシステムは、（本明細書において長く上述されたような）様々な動作パラメータから、ＳＭＰ／ＡＳＭＰモードの間で動的にスイッチするか否かを判断する。
【０１５１】
一方で、システムは、より多くの又はこれより少ないコンピューティング処理電力の必要性等を評価し続け、処理要件が、２つのアクティブプロセッサの１つが非アクティブされてよいようなレベルにあるか否かを判断してよい（段階１９４０）。否の場合、処理は、選択／スイッチ処理１９３０を実装し続ける。是の場合、処理は、（ＳＭＰモードで）シングルプロセッサを用いる段階に再び進む（段階１９１０）。処理は、処理要件が、第３のプロセッサが必要とされるようなレベルにあるか否かを判断してもよい（段階１９５０）。否の場合、処理は、選択／スイッチ処理１９３０を実装し続ける。是の場合、処理は進み、第３のプロセッサをアクティブ化する（段階１９６０）。現在アクティブな２つのプロセッサがＡＳＭＰモードにある場合、これらはＳＭＰモードにスイッチされ、３つ全てがＳＭＰモードで動作する。
【０１５２】
他の実施形態において（追加的に図１５および１６を参照して）、プロセッサの１つをさらにオン／オフしつつ、ＳＭＰ／ＡＳＭＰモードの間でスイッチすることは、１ステップ又は２ステップ処理のいずれかにおいて実行可能である。例えば、システムは、図１５の１５００ａによって示される構成に従って（すなわち、２つのコアがＡＳＭＰモードで）動作すると仮定する。負荷が増加し、第３のプロセッサが必要であるとオペレーティングシステムが判断すると、システムは、１５００ａの構成から１５１０ｂの構成（すなわち、３つのコアがＳＭＰモードにある）に、直接スイッチすることができる。これは、１ステップスイッチであり、２ステップスイッチより高速である。２ステップスイッチにおいて、２つのアクティブプロセッサは、まず、ＳＭＰモードにスイッチされ（第１ステップ）、次に、第３のプロセッサがアクティブ化される。これは、１５００ａから１５１０ａへ、次に、１５１０ａから１５１０ｂへの移行によって示される。理解されるように、１ステップ又は２ステップスイッチのいずれかは、モードスイッチがプロセッサのアクティブ化／非アクティブ化に少なくとも応じて行われる場合に、実装されてよい。
【０１５３】
図２−１１（及び付随するテキスト）において説明されるシステム、処理、方法及びデバイスと同様に、図１２−１７において説明されるシステム、処理、方法及びデバイスは、モバイルデバイス／小型コンピューティングデバイス又は基地局等内に組み込まれる場合を含め、モバイル環境において用いられてよい。このようなデバイスは、例えば、無線信号を送信及び／又は受信するように構成されてよい。デバイスは、任意の適したエンドユーザデバイスであってよく、ユーザ機器／デバイス（ＵＥ）、無線送受信ユニット（ＷＴＲＵ）、移動局、固定又はモバイル加入者ユニット、ページャ、携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）、スマートフォン、ラップトップ、コンピュータ、タッチパッド、無線センサ、ウェアラブル電子デバイス又は消費者向け電気デバイスのようなデバイスを含んで（又はこのように称されて）よい。
【０１５４】
デバイスは、デバイスの様々な処理動作を実装する（本明細書において説明されるような）少なくとも１つの処理システム１２００を含む。これは、例えば、信号符号化、データ処理、ビデオ／オーディオ処理、電力制御、入出力処理、又はデバイスのために考慮される任意の他の機能性を含んでよい。
【０１５５】
処理システム１２００は、本明細書において説明される方法及び教示をさらにサポートし、追加のコンポーネント及びプロセッサ（例えば、マイクロコントローラ、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ、又は特定用途向け集積回路）を含んでよい。
【０１５６】
処理システム１２００を組み込んだデバイスは、少なくとも１つのアンテナによる送信のためのデータ又は他のコンテンツを変調させるように構成される少なくとも１つの送受信機をさらに含んでよい。送受信機は、少なくとも１つのアンテナによって受信されるデータ又は他のコンテンツを復調されるようにさらに構成される。各送受信機は、無線送信のための信号を生成及び／又は無線により受信された信号を処理するために、任意の適した構造を含む。各アンテナは、無線信号を送信及び／又は受信するために、任意の適した構造を含む。１つ又は複数の送受信機がデバイスにおいて用いられてよく、１つ又は複数のアンテナが用いられてよい。
【０１５７】
これらのデバイスは、ユーザとのインタラクションを容易にする１つ又は複数の入出力デバイスをさらに含んでよい。各入出力デバイスは、ユーザに情報を提供し、ユーザから情報を受信するために、スピーカ、マイクロフォン、キーパッド、キーボード、ディスプレイ、又はタッチスクリーンのような、任意の適した構造を含む。
【０１５８】
さらに、これらのデバイスは、デバイスによって利用、生成、又は収集された命令及びデータを格納するために、上述のメモリを用いてよく、又は、他のメモリを含んでよい。例えば、メモリは、処理システム１２００によって実行されるソフトウェア又はファームウェア命令を格納してよい。他のメモリは、任意の適した揮発性及び／又は不揮発性ストレージ及び検索デバイスを含んでよい。ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、ハードディスク、光ディスク、加入者識別モジュール（ＳＩＭ）カード、メモリスティック、セキュアデジタル（ＳＤ）メモリカード等のような、任意の適したタイプのメモリが用いられてよい。
【０１５９】
モバイル／小型コンピューティングデバイスに関するさらなる詳細は、当業者に公知である。このため、これらの詳細は、明確性のため、ここでは省略される。
【０１６０】
いくつかの実施形態において、デバイスの１つ又は複数の機能又は処理のうちいくつか又は全ては、コンピュータ可読プログラムコードから形成され、コンピュータ可読媒体において具現化されるコンピュータプログラムによって実装又はサポートされる。「コンピュータ可読プログラムコード」という語句は、ソースコード、オブジェクトコード、及び実行可能コードを含む、任意のタイプのコンピュータコードを含む。「コンピュータ可読媒体」という語句は、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ハードディスクドライブ、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、又は任意の他のタイプのメモリのような、コンピュータによってアクセス可能な任意のタイプの不揮発性媒体を含む。
【０１６１】
本特許文献を通して用いられる特定の単語及び語句の定義を説明することは、有利であろう。「含む」及び「備える」という用語は、これらの派生語と共に、限定なく含むことを意味する。「又は」という用語は、包括的であり、「及び／又は」を意味する。「と関連付けられ」及び「これらと関連付けられ」という語句は、これらの派生語と共に、「を含む」、「内に含まれる」、「と相互接続する」、「を包含する」、「内に包含される」、「と接続する」、「と連結する」、「と通信可能である」、「と連携する」、「と交互配置される」、「と並置される」、「と近接する」、「に拘束される」、「を有する」、「の特性を有する」等を意味する。「コントローラ」という用語は、任意のデバイス、システム又は少なくとも１つの動作を制御するその一部を意味してよい。コントローラは、ハードウェア、ファームウェア、ソフトウェア、又はこれらの少なくとも２つの何らかの組み合わせで実装されてよい。任意の特定のコントローラに関連付けられた機能性は、ローカルに又は遠隔のいずれに関わらず、集中又は分散されてよい。
【０１６２】
本開示は、特定の実施形態及び概して関連する方法、を説明したが、これらの実施形態及び方法の変更及び再配置は、当業者にとって明らかであろう。従って、例示的な実施形態の上述の説明は、本開示を定義又は制約するものではない。以下の特許請求の範囲によって定義される本開示の範囲から逸脱することなく、他の変化、置換、及び変更も可能である。
［項目１］
複数のプロセッサであって、
第１の事前決定された周波数を有する第１のクロック信号及び第１の事前決定された動作電圧を有する第１の供給電圧に従って、受信及び動作を実行するように構成される第１のプロセッサと、
上記第１のクロック信号又は上記第１の事前決定された周波数と異なる第２の事前決定された周波数を有する第２のクロック信号のいずれかに従って、受信及び動作を実行し、上記第１の事前決定された動作電圧と異なる第２の事前決定された動作電圧を有する第２の供給電圧に従って、受信及び動作を実行するように構成される第２のプロセッサと、
を含む、複数のプロセッサと、
少なくとも上記第２のプロセッサに連結され、第１の動作モードと第２の動作モードとの間で上記第２のプロセッサの動作をスイッチするように構成されるコントローラであって、
上記第１の動作モードにある場合、上記第２のプロセッサは、上記第１のクロック信号及び上記第１の供給電圧に従って、受信及び動作を実行し、
上記第２の動作モードにある場合、上記第２のプロセッサは、上記第２のクロック信号及び上記第２の供給電圧に従って、受信及び動作を実行する、
コントローラと、
を備え、
上記第１のプロセッサは、上記第１の動作モード及び上記第２の動作モードの両方の間、上記第１のクロック信号及び上記第１の供給電圧に従って、受信及び動作のみを実行するようにさらに構成される、
マルチプロセッサ（ＭＰ）処理システム。
［項目２］
上記複数のプロセッサは、上記第１の動作モード及び上記第２の動作モードの両方の間、上記第１のクロック信号及び上記第１の供給電圧に従って、受信及び動作のみを実行するように構成される第３のプロセッサをさらに含む、項目１に記載のＭＰ処理システム。
［項目３］
上記複数のプロセッサは、上記第１の動作モード及び上記第２の動作モードの両方の間、上記第１のクロック信号及び上記第１の供給電圧に従って、受信及び動作のみを実行するように構成される第４のプロセッサをさらに含む、項目２に記載のＭＰ処理システム。
［項目４］
上記複数のプロセッサは、上記第１の動作モード及び上記第２の動作モードの両方の間、上記第１のクロック信号及び上記第１の供給電圧に従って、受信及び動作のみを実行するように各々が構成される第５のプロセッサ、第６のプロセッサ、第７のプロセッサ及び第８のプロセッサをさらに含む、項目３に記載のＭＰ処理システム。
［項目５］
上記コントローラに連結され、上記第１のクロック信号及び上記第２のクロック信号を生成及び出力するように構成されるクロック生成回路であって、上記第１のクロック信号は、上記第１のプロセッサに入力される、クロック生成回路と、
上記コントローラに連結され、上記第１の供給電圧を生成して上記第１のプロセッサに出力し、上記第２の供給電圧を上記第２のプロセッサに出力するように構成される動作電圧生成回路と、
上記クロック生成回路と上記第２のプロセッサとの間に配置され、上記第１のクロック信号及び上記第２のクロック信号を受信し、上記第１のクロック信号又は上記第２のクロック信号を上記第２のプロセッサに出力するように構成されるスイッチ回路であって、上記第１の動作モードの間、上記第１のクロック信号が上記第２のプロセッサに出力され、上記第２の動作モードの間、上記第２のクロック信号が上記第２のプロセッサに出力される、スイッチ回路と、
をさらに備え、
上記第１の動作モード及び上記第２の動作モードの間、上記第１のクロック信号が、上記第１のプロセッサに出力される、
項目１に記載のＭＰシステム。
［項目６］
上記コントローラに連結され、
上記第２の動作モードにある場合、上記第２の供給電圧を生成して上記第２のプロセッサに出力し、
上記第２の動作モードにある場合、上記第１の供給電圧を上記第２のプロセッサに出力する
ように構成される電圧レギュレータ回路をさらに備える、項目１に記載のＭＰ処理システム。
［項目７］
上記コントローラに連結され、上記第１のクロック信号及び上記第２のクロック信号を生成し、上記第２のプロセッサへの出力のために、上記第１のクロック信号又は上記第２のクロック信号の間でグリッチレスにスイッチするように構成されるクロック生成及びスイッチ回路をさらに備える、項目１に記載のＭＰ処理システム。
［項目８］
上記第１のプロセッサ及び上記第２のプロセッサに連結されるキャッシュメモリと、
上記コントローラに応答し、上記第２のプロセッサ及び上記キャッシュメモリに連結され、上記第２の動作モードの間、上記第２のプロセッサと上記キャッシュメモリとの間でクロックドメインクロッシング機能を提供し、上記第１の動作モードの間、バイパス機能を提供するようにさらに構成されるクロックドメインクロッシング（ＣＤＣ）及びバイパス回路と、
をさらに備える、項目１に記載のＭＰ処理システム。
［項目９］
上記コントローラは、モード選択信号に応じて、上記第１の動作モードと上記第２の動作モードとの間で、上記第２のプロセッサの動作を動的にスイッチするようにさらに構成される、項目１に記載のＭＰ処理システム。
［項目１０］
上記モード選択信号は、上記複数のプロセッサ内のプロセッサのアクティブ化又は非アクティブ化に少なくとも部分的に基づいて生成される、項目９に記載のＭＰ処理システム。
［項目１１］
上記モード選択信号は、負荷情報、利用情報、キャッシュミス率、メモリ帯域幅情報又は電力消費情報の少なくとも１つに応じて生成される、項目９に記載のＭＰ処理システム。
［項目１２］
上記コントローラは、有限ステートマシン（ＦＳＭ）、プロセッサ、マイクロコントローラ又は論理回路の少なくとも１つを含む、項目１に記載のＭＰ処理システム。
［項目１３］
上記ＭＰ処理システムは、単一の半導体基板上に配置される、項目１に記載のＭＰ処理システム。
［項目１４］
マルチプロセッシング機能を実行するように構成される複数のプロセッサであって、複数の第１のプロセッサ及び第２のプロセッサを含む、複数のプロセッサと、
第１のモード及び第２のモードにおいて、上記第２のプロセッサの動作を制御するように構成されるコントローラと、
上記コントローラに連結され、第１のクロック信号及び第２のクロック信号を生成及び出力するように構成されるクロック生成回路と、
上記クロック生成回路と上記第２のプロセッサとの間に配置され、上記第１のクロック信号及び上記第２のクロック信号を受信し、１つを上記第２のプロセッサへの出力のために選択するように構成されるスイッチ回路であって、上記第１の動作モードの間、上記第１のクロック信号が上記第２のプロセッサに出力され、上記第２の動作モードの間、上記第２のクロック信号が上記第２のプロセッサに出力され、上記第１の動作モード及び上記第２の動作モードの間、上記第１のクロック信号が、上記複数の第１のプロセッサの各々に入力される、スイッチ回路と、
上記複数のプロセッサに連結され、これらと共に用いられるために構成されるキャッシュメモリと、
上記コントローラに応答し、上記第２のプロセッサ及び上記キャッシュメモリに連結され、上記第２の動作モードの間、上記第２のプロセッサと上記キャッシュメモリとの間でクロックドメインクロッシング機能を提供し、上記第１の動作モードの間、バイパス機能を提供するようにさらに構成されるクロックドメインクロッシング（ＣＤＣ）及びバイパス回路と、
を備える装置。
［項目１５］
上記複数の第１のプロセッサは、第４のプロセッサをさらに含む、項目１４に記載の装置。
［項目１６］
上記複数の第１のプロセッサは、第５のプロセッサ、第６のプロセッサ、第７のプロセッサ及び第８のプロセッサをさらに含む、項目１５に記載の装置。
［項目１７］
上記コントローラに連結され、
上記第１の動作モードの間、上記複数の第１のプロセッサ及び上記第２のプロセッサに、第１の動作供給電圧信号を出力し、
上記第２の動作モードの間、上記複数の第１のプロセッサに第１の動作電圧信号を出力し、上記第２のプロセッサに第２の動作供給電圧信号を出力する
ように構成される動作電圧生成回路をさらに備える、項目１４に記載の装置。
［項目１８］
上記装置は、単一の半導体基板上に配置される、項目１４に記載の装置。
［項目１９］
第１の動作電圧信号を受信し、
上記第１の動作電圧信号から第２の動作電圧信号を生成し、
上記第１の動作モードの間、上記第２のプロセッサに入力されるために、上記第１の動作電圧信号を出力し、
上記第２の動作モードの間、上記第２のプロセッサに入力されるために、上記第２の動作電圧信号を出力する
ように構成される電圧レギュレータ及びバイパス回路をさらに備える、項目１７に記載の装置。
［項目２０］
上記コントローラは、モード選択信号に応じて、上記第１の動作モードと上記第２の動作モードとの間で、上記第２のプロセッサの動作を動的にスイッチするようにさらに構成される、項目１４に記載の装置。
［項目２１］
上記モード選択信号は、上記複数のプロセッサ内のプロセッサのアクティブ化又は非アクティブ化に少なくとも部分的に基づいて生成される、項目２０に記載の装置。
［項目２２］
上記コントローラは、有限ステートマシン（ＦＳＭ）、プロセッサ、マイクロコントローラ又は論理回路の少なくとも１つを含む、項目２０に記載の装置。
［項目２３］
上記第２のプロセッサの動作は、負荷情報、利用情報、キャッシュミス率、メモリ帯域幅情報又は電力消費情報の少なくとも１つに応じて動的にスイッチされる、項目２０に記載の装置。
［項目２４］
対称マルチプロセッシング（ＳＭＰ）モードと非対称マルチプロセッシング（ＡＳＭＰ）モードとの間で複数のプロセッサをスイッチする方法であって、
第１のプロセッサが動作する全ての時間において、第１の事前決定された周波数を有する第１のクロック信号及び第１の事前決定された動作電圧を有する第１の供給電圧に従って、上記第１のプロセッサを動作させる段階と、
モード選択信号を受信する段階と、
上記モード選択信号に応じて、第１の動作モード又は第２の動作モードで第２のプロセッサを動作させる段階であって、
上記第１の動作モードにおいて、上記第１のクロック信号及び上記第１の供給電圧に従って、上記第２のプロセッサを動作させる段階、及び
上記第２の動作モードにおいて、上記第１の事前決定された周波数と異なる第２の事前決定された周波数を有する第２のクロック信号に従って、かつ、上記第１の事前決定された動作電圧と異なる第２の事前決定された動作電圧を有する第２の供給電圧に従って、上記第２のプロセッサを動作させる段階
を含む、段階と、
を備える方法。
［項目２５］
第３のプロセッサが動作する全ての時間において、上記第１のクロック信号及び上記第１の供給電圧に従って、上記第３のプロセッサを動作させる段階をさらに備える、項目２４に記載の方法。
［項目２６］
第４のプロセッサが動作する全ての時間において、上記第１のクロック信号及び上記第１の供給電圧に従って、上記第４のプロセッサを動作させる段階をさらに備える、項目２５に記載の方法。
［項目２７］
第５のプロセッサ、第６のプロセッサ、第７のプロセッサ及び第８のプロセッサの各々がそれぞれ動作する全ての時間において、上記第１のクロック信号及び上記第１の供給電圧に従って、上記第５のプロセッサ、上記第６のプロセッサ、上記第７のプロセッサ及び上記第８のプロセッサの各々を動作させる段階をさらに備える、項目２６に記載の方法。
［項目２８］
上記第１のクロック信号及び上記第１の供給電圧を上記第１のプロセッサに入力する段階と、
上記第１の動作モードの間、上記第１のクロック信号及び上記第２のクロック信号をスイッチ回路に入力し、かつ、上記第１のクロック信号を上記第２のプロセッサに出力し、上記第２の動作モードの間、上記第２のクロック信号を上記第２のプロセッサに出力する段階と、
上記第１の動作モードの間、上記第１の供給電圧を上記第２のプロセッサに入力し、上記第２の動作モードの間、上記第２の供給電圧を上記第２のプロセッサに入力する段階と、
をさらに備える、項目２４に記載の方法。
［項目２９］
上記第１の供給電圧を受信する段階と、
受信された上記第１の供給電圧から上記第２の供給電圧を生成する段階と、
をさらに備える、項目２４に記載の方法。
［項目３０］
上記第２のプロセッサに入力されるために、上記第１のクロック信号と上記第２のクロック信号との間でグリッチレスにスイッチする段階をさらに備える、項目２４に記載の方法。
［項目３１］
負荷情報、利用情報、キャッシュミス率、メモリ帯域幅情報又は電力消費情報の少なくとも１つに応じて、上記モード選択信号を生成する段階をさらに備える、項目２４に記載の方法。
［項目３２］
上記複数のプロセッサ内の少なくとも１つのプロセッサのアクティブ化又は非アクティブ化に少なくとも部分的に基づいて、上記モード選択信号を生成する段階をさらに備える、項目２４に記載の方法。
［項目３３］
上記方法は、単一の半導体基板内の回路によって実行される、項目２４に記載の方法。
［項目３４］
少なくとも２つのプロセッサが対称マルチプロセッシング（ＳＭＰ）モード又は非対称マルチプロセッシング（ＡＳＭＰ）モードで動作するマルチプロセッシングモードの複数のプロセッサを有する処理システムを動作させる方法であって、
上記少なくとも２つのプロセッサを上記ＳＭＰモードで動作させる段階であって、上記少なくとも２つのプロセッサは、第１の事前決定された周波数を有するＳＭＰクロック信号を受信し、第１の電圧を有するＳＭＰ動作供給電圧を受信し、上記少なくとも２つのプロセッサは、第１のプロセッサ及び第２のプロセッサを含む、段階と、
ＳＭＰモードからＡＳＭＰモードにスイッチする命令を受信する段階と、
ＳＭＰモードからＡＳＭＰモードに、上記少なくとも２つのプロセッサの動作をスイッチする段階と、
を備え、
上記動作をスイッチする段階は、
上記第１の事前決定された周波数と異なる第２の事前決定された周波数を有するＡＳＭＰクロック信号を生成する段階と、
上記第１の電圧と異なる第２の電圧において、ＡＳＭＰ動作供給電圧を生成する段階と、
上記ＡＳＭＰクロック信号及び上記ＡＳＭＰ動作供給電圧を上記第２のプロセッサに入力する段階と、
その後、上記第２の事前決定された周波数及び上記第２の電圧において、上記第２のプロセッサを動作させ、上記第１の事前決定された周波数及び上記第１の電圧において、上記第１のプロセッサを動作させる段階と、
を含む、方法。
［項目３５］
上記少なくとも２つのプロセッサは、第３のプロセッサを含み、
その後、上記第２の事前決定された周波数及び上記第２の電圧において、上記第２のプロセッサを動作させ、上記第１の事前決定された周波数及び上記第１の電圧において、上記第１のプロセッサを動作させる段階は、上記第１の事前決定された周波数及び上記第１の電圧において、上記第３のプロセッサを動作させる段階をさらに含む、
項目３４に記載の方法。
［項目３６］
上記少なくとも２つのプロセッサは、第３のプロセッサ及び第４のプロセッサを含み、
その後、上記第２の事前決定された周波数及び上記第２の電圧において、上記第２のプロセッサを動作させ、上記第１の事前決定された周波数及び上記第１の電圧において、上記第１のプロセッサを動作させる段階は、上記第１の事前決定された周波数及び上記第１の電圧において、上記第３のプロセッサ及び上記第４のプロセッサを動作させる段階をさらに含む、
項目３４に記載の方法。
［項目３７］
動作をスイッチする段階は、負荷情報、利用情報、キャッシュミス率、メモリ帯域幅情報又は電力消費情報の少なくとも１つに応じて、上記ＳＭＰモードから上記ＡＳＭＰモードに動的にスイッチする段階をさらに含む、項目３４に記載の方法。
［項目３８］
動作をスイッチする段階は、上記複数のプロセッサ内の少なくとも１つのプロセッサのアクティブ化又は非アクティブ化に少なくとも部分的に基づいて、上記ＳＭＰモードから上記ＡＳＭＰモードに動的にスイッチする段階をさらに含む、項目３４に記載の方法。
［項目３９］
ＡＳＭＰモードからＳＭＰモードにスイッチする命令を受信する段階と、
ＡＳＭＰモードからＳＭＰモードに上記少なくとも２つのプロセッサの動作をスイッチする段階と、
をさらに備え、
上記動作をスイッチする段階は、
上記ＳＭＰクロック信号及び上記ＳＭＰ動作供給電圧を上記第２のプロセッサに入力する段階と、
その後、上記第１の事前決定された周波数及び上記第１の電圧において、上記第２のプロセッサを動作させ、上記第１の事前決定された周波数及び上記第１の電圧において、上記第１のプロセッサを動作させる段階と、
を含む、項目３４に記載の方法。
［項目４０］
ＡＳＭＰモードからＳＭＰモードに動作をスイッチする段階は、負荷情報、利用情報、キャッシュミス率、メモリ帯域幅情報又は電力消費情報の少なくとも１つに応じて、上記ＡＳＭＰモードから上記ＳＭＰモードに動的にスイッチする段階をさらに含む、項目３９に記載の方法。
［項目４１］
ＡＳＭＰモードからＳＭＰモードに動作をスイッチする段階は、上記複数のプロセッサ内の少なくとも１つのプロセッサのアクティブ化又は非アクティブ化に少なくとも部分的に基づいて、上記ＡＳＭＰモードから上記ＳＭＰモードに動的にスイッチする段階をさらに含む、項目３９に記載の方法。
［項目４２］
複数のプロセッサであって、
第１の事前決定された周波数を有する第１のクロック信号及び第１の事前決定された動作電圧を有する第１の供給電圧に従って、受信及び動作を実行するように各々が構成される第１のプロセッサ及び第２のプロセッサと、
上記第１のクロック信号又は上記第１の事前決定された周波数と異なる第２の事前決定された周波数を有する第２のクロック信号のいずれかに従って、受信及び動作を実行し、上記第１の事前決定された動作電圧と異なる第２の事前決定された動作電圧を有する第２の供給電圧に従って、受信及び動作を実行するように構成される第３のプロセッサと、
上記第１のクロック信号又は上記第１の事前決定された周波数と異なる第３の事前決定された周波数を有する第３のクロック信号のいずれかに従って、受信及び動作を実行し、上記第１の事前決定された動作電圧と異なる第３の事前決定された動作電圧を有する第３の供給電圧に従って、受信及び動作を実行するように構成される第４のプロセッサと、
を含む複数のプロセッサと、
少なくとも上記第３のプロセッサ及び上記第４のプロセッサに連結され、第１の動作モードと第２の動作モードとの間で上記第３のプロセッサ及び上記第４のプロセッサの動作をスイッチするように構成されるコントローラであって、
上記第１の動作モードにある場合、上記第３のプロセッサ及び上記第４のプロセッサの各々は、上記第１のクロック信号及び上記第１の供給電圧に従って、受信及び動作を実行し、
上記第２の動作モードにある場合、上記第３のプロセッサは、上記第２のクロック信号及び上記第２の供給電圧に従って、受信及び動作を実行し、上記第４のプロセッサは、上記第３のクロック信号及び上記第３の供給電圧に従って、受信及び動作を実行する、
コントローラと、
を備え、
上記第１のプロセッサ及び上記第２のプロセッサは、上記第１の動作モード及び上記第２の動作モードの両方の間、上記第１のクロック信号及び上記第１の供給電圧に従って、受信及び動作のみを実行するようにさらに構成される、マルチプロセッサ（ＭＰ）処理システム。
［項目４３］
対称マルチプロセッシングモード（ＳＭＰモード）と非対称マルチプロセッシングモード（ＡＳＭＰモード）との間で複数のプロセッサをスイッチする方法であって、
第１のプロセッサ及び第２のプロセッサの動作中の全ての時間において、第１の事前決定された周波数を有する第１のクロック信号及び第１の事前決定された動作電圧を有する第１の供給電圧に従って、上記第１のプロセッサ及び上記第２のプロセッサを動作させる段階と、
モード選択信号を受信する段階と、
上記モード選択信号に応じて、第１の動作モード又は第２の動作モードにおいて、第３のプロセッサ及び第４のプロセッサの両方を動作させる段階であって、
上記第１の動作モードにおいて、上記第１のクロック信号及び上記第１の供給電圧に従って、上記第３のプロセッサ及び上記第４のプロセッサを動作させる段階と、
上記第２の動作モードにおいて、上記第１の事前決定された周波数と異なる第２の事前決定された周波数を有する第２のクロック信号に従って、かつ、上記第１の事前決定された動作電圧と異なる第２の事前決定された動作電圧を有する第２の供給電圧に従って、上記第３のプロセッサを動作させ、上記第１の事前決定された周波数と異なる第３の事前決定された周波数を有する第３のクロック信号に従って、かつ、上記第１の事前決定された動作電圧と異なる第３の事前決定された動作電圧を有する第３の供給電圧に従って、上記第４のプロセッサを動作させる段階と、
を含む段階と、
を備える方法。
［項目４４］
複数のプロセッサを有するマルチプロセッサシステムにおける処理方法であって、
上記複数のプロセッサ内の第１のアクティブプロセッサのみを用いて、上記マルチプロセッサシステム内における処理を実行する段階と、
上記マルチプロセッサシステム内における処理のために第２のプロセッサがアクティブ化されるべきであると判断する段階と、
上記判断に応じて、上記第２のプロセッサをアクティブ化する段階と、
対称マルチプロセッシングモード（ＳＭＰモード）又は非対称マルチプロセッシングモード（ＡＳＭＰモード）のいずれかに従って、上記第１のアクティブプロセッサ及び上記第２のアクティブプロセッサを用いて、上記マルチプロセッサシステム内における処理を実行する段階であって、
上記ＳＭＰモードにある場合、上記第１のアクティブプロセッサ及び上記第２のアクティブプロセッサの各々は、第１の事前決定された周波数を有する第１のクロック信号及び第１の事前決定された電圧を有する第１の供給電圧に従って動作し、
上記ＡＳＭＰモードにある場合、上記第１のアクティブプロセッサは、上記第１のクロック信号及び上記第１の供給電圧に従って動作し、上記第２のプロセッサは、上記第１の事前決定された周波数と異なる第２の事前決定された周波数を有する第２のクロック信号に従って、かつ、上記第１の事前決定された動作電圧と異なる第２の事前決定された動作電圧を有する第２の供給電圧に従って動作する、
段階と、
モード選択信号を受信する段階と、
上記モード選択信号に応じて、上記ＳＭＰモードから上記ＡＳＭＰモードに、又は上記ＡＳＭＰモードから上記ＳＭＰモードに、上記第１のアクティブプロセッサ及び上記第２のアクティブプロセッサの動作をスイッチする段階と、
を備える方法。
［項目４５］
動作をスイッチする段階は、負荷情報、利用情報、キャッシュミス率、メモリ帯域幅情報又は電力消費情報の少なくとも１つに応じて、１つのモードから他のモードに動的にスイッチする段階をさらに含む、項目４４に記載の方法。
［項目４６］
上記第２のプロセッサがアクティブ化されるべきであると判断する段階は、負荷、キューの長さ、タスクの数、タスクのタイプ、スレッドの数、スレッドのタイプ、１つ又は複数の依存性、ＣＰＵ要求の数、又はアクティブなアプリケーションの数の少なくとも１つに基づいて、上記第２のプロセッサがアクティブ化されるべきであると判断する段階をさらに含む、項目４４に記載の方法。
［項目４７］
上記マルチプロセッサシステム内における処理のために、第３のプロセッサがアクティブ化されるべきであると判断する段階と、
上記判断に応じて、上記第３のプロセッサをアクティブ化する段階と、
その後、上記ＳＭＰモードに従って、上記第１のアクティブプロセッサ、上記第２のアクティブプロセッサ及び上記第３のアクティブプロセッサを用いて、上記マルチプロセッサシステム内における処理を実行する段階であって、上記第１のアクティブプロセッサ、上記第２のアクティブプロセッサ及び上記第３のアクティブプロセッサの各々は、上記第１のクロック信号及び上記第１の供給電圧に従って動作する、段階と、
をさらに備える、項目４４に記載の方法。
［項目４８］
マルチプロセッサ処理システム（ＭＰ処理システム）であって、
第１のプロセッサ及び第２のプロセッサを含む複数のプロセッサと、
少なくとも上記第２のプロセッサに連結され、
アクティブ化／非アクティブ化信号に応じて、上記第２のプロセッサをアクティブ化又は非アクティブ化し、
上記第２のプロセッサのアクティブ化の際に、対称マルチプロセッシングモード（ＳＭＰモード）又は非対称マルチプロセッシングモード（ＡＳＭＰモード）のいずれかに従って、上記第１のプロセッサ及び上記第２のプロセッサを用いる上記マルチプロセッサシステム内における処理を制御し、
モード選択信号を受信し、
上記モード選択信号に応じて、上記ＳＭＰモードから上記ＡＳＭＰモードに、又は上記ＡＳＭＰモードから上記ＳＭＰモードに、上記第１のプロセッサ及び上記第２のプロセッサの動作をスイッチする
ように構成されるコントローラであって、
上記ＳＭＰモードは、上記第１のプロセッサ及び上記第２のプロセッサの各々が、第１の事前決定された周波数を有する第１のクロック信号及び第１の事前決定された電圧を有する第１の供給電圧に従って動作するものと定義され、
上記ＡＳＭＰモードは、上記第１のプロセッサが、上記第１のクロック信号及び上記第１の供給電圧に従って動作し、上記第２のプロセッサが、上記第１の事前決定された周波数と異なる第２の事前決定された周波数を有する第２のクロック信号に従って、かつ、上記第１の事前決定された動作電圧と異なる第２の事前決定された動作電圧を有する第２の供給電圧に従って動作するものと定義される、
コントローラと、
を備えるＭＰ処理システム。
［項目４９］
上記コントローラは、負荷情報、利用情報、キャッシュミス率、メモリ帯域幅情報又は電力消費情報の少なくとも１つに応じて、１つのモードから他のモードに動的にスイッチするようにさらに構成される、項目４８に記載のＭＰ処理システム。
［項目５０］
上記アクティブ化／非アクティブ化信号は、負荷、キューの長さ、タスクの数、タスクのタイプ、スレッドの数、スレッドのタイプ、１つ又は複数の依存性、ＣＰＵ要求の数、又はアクティブなアプリケーションの数の少なくとも１つに応じて生成される、項目４８に記載のＭＰ処理システム。
［項目５１］
上記複数のプロセッサは、第３のプロセッサをさらに含み、
上記コントローラは、
第２のアクティブ化／非アクティブ化信号に応じて、上記第３のプロセッサをアクティブ化又は非アクティブ化し、
上記第３のプロセッサのアクティブ化の際に、上記第１のプロセッサ、上記第２のプロセッサ及び上記第３のプロセッサを上記ＳＭＰモードに配する
ようにさらに構成され、
上記第１のアクティブプロセッサ、上記第２のアクティブプロセッサ及び上記第３のアクティブプロセッサの各々は、上記第１のクロック信号及び上記第１の供給電圧に従って動作する、
項目４８に記載のＭＰ処理システム。
【図１】
0006611375.tif 000002
【図２】
0006611375.tif 000003
【図３Ａ】
0006611375.tif 000004
【図３Ｂ】
0006611375.tif 000005
【図３Ｃ】
0006611375.tif 000006
【図４】
0006611375.tif 000007
【図５】
0006611375.tif 000008
【図６】
0006611375.tif 000009
【図６Ａ】
0006611375.tif 000010
【図７】
0006611375.tif 000011
【図８】
0006611375.tif 000012
【図９】
0006611375.tif 000013
【図１０】
0006611375.tif 000014
【図１１】
0006611375.tif 000015
【図１２】
0006611375.tif 000016
【図１３】
0006611375.tif 000017
【図１４Ａ】
0006611375.tif 000018
【図１４Ｂ】
0006611375.tif 000019
【図１５】
0006611375.tif 000020
【図１６】
0006611375.tif 000021
【図１７】
0006611375.tif 000022
【図１８】
0006611375.tif 000023
【図１９】
0006611375.tif 000024