(57)【要約】      （修正有）【課題】動的電力を減らすことができる電子機器、及びその電子機器の動作方法を提供する。【解決手段】電子機器２００は、ハードウェアキャッシュ一貫性を支援する第１プロセッサ回路及び第２プロセッサ回路、並びに第１プロセッサ回路のクロック信号、及び第２プロセッサ回路のクロック信号いずれも制御するクロック管理回路を含む。第２プロセッサ回路は、第２プロセッサ回路が、第１プロセッサ回路からキャッシュ一貫性信号を受信したという判断に基づいて、クロック管理回路にクロックイネーブル要請を伝送することができる。クロック管理回路は、クロックイネーブル要請に応答し、第２プロセッサ回路をイネーブルにする。【選択図】図２
2018106672.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号を制御するクロック管理回路と、
前記クロック管理回路と直接接続され、動作状態により、前記クロック管理回路に、前記クロック信号と関連したクロック制御要請を伝送するプロセッサ回路と、
を含む電子機器。
【請求項２】
前記プロセッサ回路は、前記クロック管理回路と直接接続されたクロック管理要請インターフェースを含み、
前記プロセッサ回路は、前記プロセッサ回路の動作状態を保存し、前記プロセッサ回路の前記保存された動作状態を判断する、
ことを特徴とする請求項１に記載の電子機器。
【請求項３】
前記プロセッサ回路は、前記プロセッサ回路が遊休状態であるか、または活性状態であるということを判断する、
ことを特徴とする請求項２に記載の電子機器。
【請求項４】
前記プロセッサ回路は、
前記プロセッサ回路が遊休状態であるという判断に基づいて、前記クロック管理回路にクロックディセーブル要請を伝送し、
前記プロセッサ回路が活性状態であるという判断に基づいて、前記クロック管理回路にクロックイネーブル要請を伝送する、
ことを特徴とする請求項３に記載の電子機器。
【請求項５】
前記クロック管理回路は、
前記クロック管理回路が、前記プロセッサ回路から前記クロックイネーブル要請を受信したことに基づいて、前記プロセッサ回路に入力されるクロックをイネーブルにし、
前記クロック管理回路が、前記プロセッサ回路から前記クロックディセーブル要請を受信したことに基づいて、前記プロセッサ回路に入力されるクロックをディセーブルにする、
ことを特徴とする請求項４に記載の電子機器。
【請求項６】
前記クロック管理回路は、
前記クロック管理回路がクロックディセーブル要請を受信したとき、前記クロック管理回路において、前記クロックディセーブル要請を受信した時点と、直前クロックイネーブル時点との時間間隔が、特定臨界時間以下であるという判断に基づいて、前記プロセッサ回路に入力されるクロックをディセーブルにせず、イネーブルに維持する、
ことを特徴とする請求項５に記載の電子機器。
【請求項７】
前記プロセッサ回路は、
前記プロセッサ回路のパイプライン状態を保存し、前記プロセッサ回路が作業キューにある最後の作業を完了したという判断に基づいて、前記パイプライン状態を遊休状態にアップデートするプロセッサ状態レジスタと、
前記プロセッサ回路に含まれたキャッシュの状態を保存し、前記キャッシュが、要請された作業を完了し、ＦＩＦＯ（first-in-first-out）エンプティ状態という判断に基づいて、前記キャッシュの前記状態を遊休状態にアップデートするキャッシュ状態レジスタと、を含む、
ことを特徴とする請求項２に記載の電子機器。
【請求項８】
前記キャッシュは、キャッシュ一貫性を支援するためのキャッシュ一貫性インターフェースを含む、
ことを特徴とする請求項７に記載の電子機器。
【請求項９】
前記プロセッサ回路は、
別個のデバイスが、前記プロセッサ回路に接続しているか否かということ、及びキャッシュ一貫性トラフィックが、前記プロセッサ回路と、前記別個のデバイスとの間で、前記キャッシュ一貫性インターフェースを介して伝送されるか否かということを判断し、
前記プロセッサ回路のパイプラインと、前記キャッシュとが遊休状態であり、前記キャッシュ一貫性トラフィックが、前記プロセッサ回路と、前記別個のデバイスとの間で伝送されず、前記別個のデバイスが、前記プロセッサ回路に接続していないという判断に基づいて、前記プロセッサ回路が遊休状態にあると判断し、
前記プロセッサ回路のパイプラインまたは前記キャッシュが活性状態であるか、前記キャッシュ一貫性トラフィックが、前記プロセッサ回路と、前記別個のデバイスとの間で伝送されるか、あるいは前記別個のデバイスが、前記プロセッサ回路に接続しているという判断に基づいて、前記プロセッサ回路が活性状態にあると判断する、
ことを特徴とする請求項８に記載の電子機器。
【請求項１０】
前記プロセッサ回路とのキャッシュ一貫性を支援するデバイスをさらに含み、
前記デバイスに含まれたキャッシュは、前記キャッシュ一貫性を支援するためのキャッシュ一貫性インターフェースを含み、
前記プロセッサ回路のキャッシュと、前記デバイスのキャッシュは、前記プロセッサ回路のキャッシュ一貫性インターフェース、及び前記デバイスのキャッシュ一貫性回路それぞれを介して直接に接続され、前記プロセッサ回路は、ハードウェアキャッシュ一貫性を支援する、
ことを特徴とする請求項８に記載の電子機器。
【請求項１１】
電子機器の動作方法において、
前記電子機器のプロセッサ回路の動作状態を判断する段階と、
前記プロセッサ回路の前記動作状態により、前記プロセッサ回路が、直接、クロック管理回路にクロック信号と関連したクロック制御要請を伝送する段階と、
を含む電子機器の動作方法。
【請求項１２】
前記プロセッサ回路の動作状態を判断する段階は、前記プロセッサ回路が遊休状態であるか、または活性状態であるということを判断する段階を含む、ことを特徴とする請求項１１に記載の電子機器の動作方法。
【請求項１３】
前記プロセッサ回路の前記動作状態により、前記クロック制御要請を伝送する段階は、前記プロセッサ回路が、前記遊休状態または前記活性状態にあるかということに基づいて、前記クロック管理回路に、クロックイネーブル信号またはクロックディセーブル信号を選択的に伝送することを含み、
前記選択的に伝送する段階は、
前記プロセッサ回路が遊休状態にあるという判断に基づいて、前記クロック管理回路に、前記クロックディセーブル信号を伝送するか、
前記プロセッサ回路が活性状態にあるという判断に基づいて、前記クロック管理回路に、前記クロックイネーブル信号を伝送する、
ことを特徴とする請求項１２に記載の電子機器の動作方法。
【請求項１４】
前記プロセッサ回路から、クロックイネーブル要請またはクロックディセーブル要請が受信されることに基づいて、前記プロセッサ回路に入力されるクロック信号を選択的にイネーブルにする段階をさらに含み、
前記選択的にイネーブルにする段階は、
前記クロック管理回路を利用して、前記プロセッサ回路から、前記クロックイネーブル要請を受信することに基づいて、前記プロセッサ回路に入力される前記クロック信号をイネーブルにする段階と、
前記クロック管理回路を利用して、前記プロセッサ回路から、前記クロックディセーブル要請を受信することに基づいて、前記プロセッサ回路に入力される前記クロック信号をディセーブルにする段階と、を含む、
ことを特徴とする請求項１１に記載の電子機器の動作方法。
【請求項１５】
前記クロック管理回路を利用して、前記プロセッサ回路から、前記クロックディセーブル要請を受信するとき、前記クロックディセーブル要請が受信された時点と、直前クロックイネーブル時点との時間間隔が特定臨界時間以下であるという判断に基づいて、前記プロセッサ回路に入力されるクロックをディセーブルにせず、イネーブルに維持する、ことを特徴とする請求項１４に記載の電子機器の動作方法。
【請求項１６】
前記プロセッサ回路の動作状態を判断する段階は、
前記プロセッサ回路のパイプライン及びキャッシュが遊休状態であるということを判断する段階と、
キャッシュ一貫性トラフィックが、前記プロセッサ回路を介して、伝送されているか否かということを判断する段階と、
別個のデバイスが、前記プロセッサ回路に接続しているか否かということを判断する段階と、を含む、
ことを特徴とする請求項１１に記載の電子機器の動作方法。
【請求項１７】
前記プロセッサ回路の動作状態を判断する段階は、
前記プロセッサ回路の前記パイプライン及び前記キャッシュが遊休状態であり、前記キャッシュ一貫性トラフィックが、前記プロセッサ回路と、前記別個のデバイスとの間で伝送されておらず、前記別個のデバイスが、前記プロセッサ回路に接続していないという判断に基づいて、クロックディセーブル要請を伝送し、
前記プロセッサ回路の前記パイプラインまたは前記キャッシュが活性状態であるか、前記キャッシュ一貫性トラフィックが、前記プロセッサ回路と、前記別個のデバイスとの間で伝送されているか、あるいは前記別個のデバイスが、前記プロセッサ回路に接続しているという判断に基づいて、クロックイネーブル要請を伝送する
段階をさらに含む、ことを特徴とする請求項１６に記載の電子機器の動作方法。
【請求項１８】
前記プロセッサ回路が作業キューの最後作業を完了したという判断に基づいて、前記プロセッサ回路のパイプライン状態を遊休状態にアップデートする段階と、
前記プロセッサ回路のキャッシュが要請された作業を終え、ＦＩＦＯ（first-in-first-out）エンプティ状態という判断に基づいて、前記キャッシュの動作状態を遊休状態にアップデートする段階と、
をさらに含むことを特徴とする請求項１１に記載の電子機器の動作方法。
【請求項１９】
ハードウェアキャッシュ一貫性を支援する第１プロセッサ回路及び第２プロセッサ回路と、
前記第１プロセッサ回路のクロック信号、及び前記第２プロセッサ回路のクロック信号をいずれも制御するクロック管理回路と、を含み、
前記第２プロセッサ回路は、前記第２プロセッサ回路が、前記第１プロセッサ回路からキャッシュ一貫性信号を受信したという判断に基づいて、前記クロック管理回路にクロックイネーブル要請を伝送し、
前記クロック管理回路は、前記クロックイネーブル要請に応答し、前記第２プロセッサ回路をイネーブルにすることを特徴とする電子機器。
【請求項２０】
前記第１プロセッサ回路は、
前記第１プロセッサ回路が、前記第２プロセッサ回路から、前記キャッシュ一貫性信号を受信したという判断に基づいて、前記クロック管理回路に、前記クロックイネーブル要請を伝送する、
ことを特徴とする請求項１９に記載の電子機器。
【請求項２１】
前記第２プロセッサ回路は、
前記第２プロセッサ回路が、前記第１プロセッサ回路に、前記キャッシュ一貫性信号を伝送したという判断に基づいて、前記クロック管理回路に、前記クロックイネーブル要請を伝送する、
ことを特徴とする請求項１９に記載の電子機器。
【請求項２２】
前記第１プロセッサ回路は、
前記第１プロセッサ回路が、前記第２プロセッサ回路に、前記キャッシュ一貫性信号を伝送したという判断に基づいて、前記クロック管理回路に、前記クロックイネーブル要請を伝送する、
ことを特徴とする請求項２１に記載の電子機器。
【請求項２３】
前記第１プロセッサ回路と前記第２プロセッサ回路は、互いに異なるプロセッサ回路種であることを特徴とする請求項１９乃至２２の何れか一項に記載の電子機器。
【請求項２４】
前記第１プロセッサ回路または前記第２プロセッサ回路は、グラフィック処理装置であることを特徴とする請求項２３に記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器及びその動作方法に関する。
【背景技術】
【０００２】
システム・オン・チップ（ＳｏＣ：system  on  chip）では、１つのチップ（chip）に、電子機器のさまざまなデバイスが一つに集積され、電力管理が容易であるという長所がある。ある場合、ＳｏＣに集積されるデバイスに対して、クロック（clock）をディセーブル（disable）にするクロックゲーティング（clock  gating）が行われれば、当該デバイスの動的電力（dynamic  power）は低減される。従来技術によれば、特定デバイスに対するクロックゲーティングが行われるとき、中央処理装置（ＣＰＵ：central  processing  unit）が当該デバイスのドライバに接続（access）し、作業キュー（job  queue）を確認することができ、該作業キューがエンプティである場合、当該デバイスが遊休状態（idle  status）にあると判断する。その後、該ＣＰＵは、ＳｏＣに集積されるデバイスのうち一つであるクロック管理部（ＣＭＵ：clock  management  unit）をＣＭＵドライバを介して制御し、当該デバイスのクロックをゲーティングすることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の一実施形態は、動的電力を減らすことができる電子機器、及びその電子機器の動作方法を提供するものである。
【課題を解決するための手段】
【０００４】
一実施形態による電子機器は、クロック管理回路、及び前記クロック管理回路と直接に接続されたプロセッサ回路を含み得る。前記クロック管理回路は、クロック信号を制御することができる。前記プロセッサ回路は、前記プロセッサ回路の動作状態により、前記クロック管理回路に、前記クロック信号と関連したクロック制御要請を伝送することができる。
【０００５】
一実施形態によれば、電子機器の動作方法は、前記電子機器のプロセッサ回路の動作状態を決定する段階と、前記プロセッサ回路を利用して、前記プロセッサ回路の前記動作状態により、クロック管理回路に、クロック信号と関連したクロック制御要請を直接に伝送する段階と、を含み得る。
【０００６】
一実施形態によれば、電子機器は、ハードウェアキャッシュ一貫性を支援する第１プロセッサ回路及び第２プロセッサ回路、並びに前記第１プロセッサ回路のクロック信号、及び前記第２プロセッサ回路のクロック信号いずれも制御するクロック管理回路を含み得る。前記第２プロセッサ回路は、前記第２プロセッサ回路が、前記第１プロセッサ回路からキャッシュ一貫性信号を受信したという判断に基づいて、前記クロック管理回路にクロックイネーブル要請を伝送することができる。前記クロック管理回路は、前記クロックイネーブル要請に応答し、前記第２プロセッサ回路をイネーブルにすることができる。
【０００７】
一実施形態によれば、電子機器は、プログラム命令語を保存するメモリ及びプロセッサを含み得る。該プロセッサは、前記プロセッサと関連した動作状態を決定し、前記プロセッサの動作状態により、クロック管理回路に、クロック信号と関連したクロック制御要請を伝送するためのプログラム命令語を実行することができる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態による電子機器を示す図である。
【図２】一実施形態による電子機器の内部構成を示す図である。
【図３】一実施形態による電子機器のクロック制御動作を示す図である。
【図４】一実施形態による、クロック管理要請インターフェースとＣＭＵとの動作を示す図である。
【図５】一実施形態による、クロック管理要請判断部の判断結果によって、ＣＭＵにクロックイネーブル要請またはクロックディセーブル要請を伝送するプロセスを示す図である。
【図６】一実施形態による、クロック管理要請インターフェースとキャッシュ一貫性インターフェースとを示す図である。
【図７】一実施形態による電子機器の動作方法を示すフローチャートである。
【図８】一実施形態による、プロセッサの動作状態を判断する方法を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、図面を参照し、多様な例示的な実施形態について詳細に説明する。以下で説明する例示的な実施形態は、さまざまに異なる形態に変形されて実施される。例示的な実施形態の特徴についてさらに明確に説明するために、以下の実施形態が属する技術分野で当業者に周知の事項については、詳細な説明は省略する。本明細書で使用されているように、「及び／または」という用語は、関連して列挙された項目のうち１以上の任意、または全ての組み合わせを含んでもよい。
【００１０】
なお、本明細書において、ある構成が他の構成と「接続」されているとするとき、それは、「直接に接続」されている場合だけではなく、「その中間に他の構成を挟んで接続」されている場合も含む。また、ある構成が他の構成を「含む」とするとき、それは、特別に反対となる記載がない限り、それ以外の構成を除くものではなく、他の構成をさらに含んでもよいということを意味する。
【００１１】
図１は、一実施形態による電子機器を示す図である。
【００１２】
図１を参照すれば、一実施形態による電子機器１００は、中央処理装置（ＣＰＵ：central  processing  unit）１１０、デジタル信号処理装置（ＤＳＰ：digital  signal  processor）１２０、メモリ１３０、グラフィック処理装置（ＧＰＵ：graphic  processing  unit）１４０及びクロック管理部（ＣＭＵ：clock  management  unit）１５０を含み得る。ただし、かような構造は、１つの例示に過ぎず、電子機器１００は、追加して多様なデバイスをさらに含んでもよい。例えば、電子機器１００は、入出力インターフェース（input/output  interface）などをさらに含んでもよい。
【００１３】
ＣＰＵ  １１０、ＤＳＰ  １２０、ＧＰＵ  １４０及びＣＭＵ  １５０それぞれは、ＣＰＵ  １１０、ＤＳＰ  １２０、ＧＰＵ  １４０及びＣＭＵ  １５０それぞれを実施（implement）するための一種の電気回路を含み得る。ＣＰＵ  １１０、ＤＳＰ  １２０、ＧＰＵ  １４０及びＣＭＵ  １５０のうち１以上は、プロセッサを含んでもよい。本明細書において該プロセッサは、「プロセッサ回路」及び／または「プロセッシングデバイス」と相互交換的に（interchangeably）指称される。
【００１４】
ＣＰＵ  １１０、ＤＳＰ  １２０、ＧＰＵ  １４０及びＣＭＵ  １５０のような処理装置それぞれは、それぞれの機能によってデータを入力されて記憶し、演算し、演算されたデータを出力することによってデータを処理する１以上の電気回路を含み得る。ＣＰＵ  １１０、ＤＳＰ  １２０、ＧＰＵ  １４０及びＣＭＵ  １５０のような処理装置は、他種のプロセッシングデバイス（例えば、他のプロセッサ回路の種類）と関連したプロセッシングデバイス（「プロセッサ回路」）でもある。かような処理装置は、データ処理のために、それぞれキャッシュ１１１，１２１，１４１を含んでもよい。電子機器１００は、かようなキャッシュ１１１，１２１，１４１間において、保存されたデータを共有するためのキャッシュ一貫性（cache  coherence）を支援することができる。また、キャッシュ一貫性は、ソフトウェア的処理ではなく、ハードウェア間の直接接続を介して支援される。それについては、追って詳細に説明する。
【００１５】
メモリ１３０（また、本明細書において、「メモリデバイス」と相互交換的に指称されもする）は、電子機器１００の駆動に係わるＯＳ（operating  system）、各種プログラム及びデータを保存する一種の電気回路を含み得る。また、メモリ１３０に保存されたデータは、各処理装置に提供される。一実施形態において、ＣＰＵ  １１０、ＤＳＰ  １２０、ＧＰＵ  １４０及びＣＭＵ  １５０それぞれは、メモリ１３０に保存されたプログラム命令語の実行に基づいて、本明細書で説明するように、１以上の機能（functionality）及び／またはユニット、エレメントなどを実施することができる。
【００１６】
ＣＭＵ  １５０は、電子機器１００のクロック（clock）信号を管理する電気回路を含み得る。ＣＭＵ  １５０は、ＣＰＵ  １１０、ＤＳＰ  １２０、メモリ１３０、ＧＰＵ  １４０など各デバイスに入力されるクロック信号を制御することができる。さらに具体的には、ＣＭＵ  １５０は、選択的に、各デバイスに入力されるクロック信号をイネーブル（enable）またはディセーブル（disable）にする。本明細書において、ＣＭＵ  １５０は、「クロック管理回路」と相互交換的に指称されることがある。
【００１７】
かような個別デバイスは、バス（bus）１６０で接続される。バス１６０は、システムバスを含み、所定の標準バス規格を有するプロトコルが適用されたバスによっても具現される。例えば、該標準バス規格として、ＡＲＭ（Advanced  ＲＩＳC  Machine）社のＡＭＢＡ（Advanced  Microcontroller  Bus  Architecture）プロトコルが適用される。それ以外にも、ソニック社（ＳＯＮＩＣｓ  Ｉｎｃ．）のｕＮｅｔｗｏｒｋや、ＩＢＭのＣｏｒｅＣｏｎｎｅｃｔ、ＯＣＰ−ＩＰのオープンコアプロトコル（Open  Core  Protocol）など他タイプのプロトコルがシステムバスに適用される。
【００１８】
電子機器１００は、システム・オン・チップ（ＳｏＣ）にも具現される。言い換えれば、ＣＰＵ  １１０、ＤＳＰ  １２０、メモリ１３０、ＧＰＵ  １４０及びＣＭＵ  １５０などは、集積されて１つのチップにも具現される。
【００１９】
図２は、一実施形態による電子機器の内部構成を示す図である。図２を参照すれば、電子機器２００は、ＣＭＵ  ２１０及びプロセッサ２２０を含む。図２に図示されているように、プロセッサ２２０は、キャッシュ２２１、状態レジスタ（status  register）２２２、クロック管理要請判断部（clock  management  request  determination  unit）２２３及びクロック管理要請インターフェース（clock  management  request  interface）２２４を含んでもよい。キャッシュ２２１、状態レジスタ２２２、クロック管理要請判断部２２３及びクロック管理要請インターフェース２２４それぞれは、プロセッサ２２０から独立した個別的な電気回路によっても実施される。プロセッサ２２０は、ＣＭＵ  ２１０に直接に接続される（例えば、１以上のハードウェアダイレクト構造的インターフェース、ハードウェア直接通信インターフェース、それらの組み合わせ、またはそのようなインターフェースを介する）。
【００２０】
ＣＭＵ  ２１０は、クロック信号を制御する。ＣＭＵ  ２１０は、多数の回路のクロック信号を制御することができる（例えば、第１プロセッサ回路のクロック信号、及び第２プロセッサ回路のクロック信号をいずれも制御することができる）。ＣＭＵ  ２１０は、直接接続されたプロセッサ２２０から、クロック信号制御要請を受信することができる。言い換えれば、ＣＭＵ  ２１０は、他のデバイスを経ず、プロセッサ２２０から直接クロック信号の制御要請を受信することができる。プロセッサ２２０は、本明細書において、プロセッサ回路と相互交換的に指称する。
【００２１】
ＣＭＵ  ２１０は、プロセッサ２２０の要請により、プロセッサ２２０に入力されるクロック信号を選択的にイネーブル（あるいは、選択的にディセーブル）にする（例えば、プロセッサ２２０から、クロックイネーブル要請またはクロックディセーブル要請を受信するかということに基づいて、選択的に、クロック信号入力をイネーブルにしたりディセーブルにしたりする）。このとき、ＣＭＵ  ２１０は、プロセッサ２２０からクロックディセーブル要請を受信しても、クロックディセーブル要請を受信した時点と、直前（immediately  precedingまたはimmediately  previous）クロックイネーブル時点との時間間隔が、特定臨界時間以下であるという判断に基づいて、プロセッサ２２０に入力されるクロック信号をディセーブルにせず、イネーブル（例えば、選択的にクロック信号入力をイネーブルにする）に維持することができる。かように、ＣＭＵ  ２１０は、クロック状態変更間隔を一定時間以上に維持することにより、プロセッサ２２０の処理効率を高めることができる。
【００２２】
図３及び図４を参照し、該ＣＭＵのクロック制御動作について説明する。
【００２３】
図３は、一実施形態による電子機器のクロック制御動作を示す図である。図３において、プロセッサ３４０、例えば、ＧＰＵ、ＤＳＰのような処理装置は、ＣＭＵ  ３１０の制御によってクロックを入力される。
【００２４】
ＣＭＵ  ３１０は、プロセッサ３４０からクロック信号（ＣＫＬ）の制御要請を受信し、ＡＮＤゲート３３０に０または１を出力する。
【００２５】
クロック生成部３２０（また、本明細書において、「クロック生成回路」ともされる）は、クロック信号を生成し、ＡＮＤゲート３３０に、生成したクロック信号を出力（「伝送（communicates）」）する。
【００２６】
ＣＭＵ  ３１０が０を出力する場合、ＡＮＤゲート３３０によってプロセッサ３４０に入力される信号が０になりであり、プロセッサ３４０のクロック信号は、ディセーブルになる。ＣＭＵ  ３１０が１を出力する場合、ＡＮＤゲート３３０によってクロック生成部３２０で生成されたクロック信号がプロセッサ３４０に入力され（「伝送され」）、プロセッサ３４０のクロック信号は、イネーブルになる。
【００２７】
一実施形態によれば、プロセッサ３４０が異なるデバイスを経ず、ＣＭＵ  ３１０と直接接続され（例えば、ハードウェア直接通信インターフェースを介して、ＣＭＵ  ３１０と直接に通信接続）、プロセッサ３４０は、プロセッサ３４０が遊休状態（idle  status）または活性状態（active  status）であるかということに基づいて、選択的にプロセッサ３４０に入力されるクロック信号のイネーブル要請またはディセーブル要請を、ＣＭＵ  ３１０に直接に伝達（「伝送」）する。従って、信号処理プロセスに遅延が発生せず、クロックが即座にイネーブルまたはディセーブルになる。
【００２８】
図４は、一実施形態による、クロック管理要請インターフェースとＣＭＵとの動作を示す図である。図４を参照すれば、プロセッサ２２０は、選択的に、ＣＭＵ  ２１０にクロック管理要請信号ＣＬＫ  ＲＥＱを伝送することができる。このとき、クロック管理要請信号ＣＬＫ  ＲＥＱは、プロセッサ２２０が遊休状態または活性状態であるかということに基づいて、クロックイネーブル要請でもあり、クロックディセーブル要請でもある。
【００２９】
クロック管理要請信号ＣＬＫ  ＲＥＱを受信したＣＭＵ  ２１０は、信号を受信したというＡＣＣＥＰＴ信号をプロセッサ２２０に伝送し、プロセッサ２２０とＣＭＵ  ２１０との間でハンドシェイク（handshake）が具現される。
【００３０】
プロセッサ２２０は、ＡＣＣＥＰＴ信号を受信する場合、ＣＭＵ  ２１０にＡＣＣＥＰＴ信号受信を確認するためのＡＣＫ信号を伝送することもできる。
【００３１】
再び図２の説明に戻れば、プロセッサ２２０は、キャッシュ２２１、プロセッサ２２０の動作状態を保存することができる状態レジスタ２２２、状態レジスタ２２２（例えば、動作状態の保存）に保存されたプロセッサ２２０の動作状態を判断することができるクロック管理要請判断部２２３、及びＣＭＵ  ２１０と直接（directly）接続されるクロック管理要請インターフェース２２４を含み得る。プロセッサ２２０は、プログラム命令語の実行に基づいて、キャッシュ２２１、状態レジスタ２２２、クロック管理要請判断部２２３及びクロック管理要請インターフェース２２４のうち、一部またはいずれも実施することができる。該プログラム命令語は、図１に図示されたメモリ１３０に保存され得る。
【００３２】
キャッシュ２２１は、ラストレベルキャッシュ（ＬＬＣ：last  level  cache）でもある。さらに、キャッシュ２２１は、キャッシュ一貫性（cache  coherence）を支援するためのキャッシュ一貫性インターフェース（cache  coherence  interface）（図示せず）を含み、それを利用して、他のデバイスに含まれたキャッシュとの関係において、ハードウェアキャッシュ一貫性を支援することができる。
【００３３】
プロセッサ２２０は、クロック管理要請判断部２２３の判断結果により、クロック管理要請インターフェース２２４を介して、直接そして選択的に、ＣＭＵ  ２１０にクロックイネーブル要請またはクロックディセーブル要請を伝送することができる（例えば、プロセッサ２２０が遊休状態または活性状態であるかということに基づく）。
【００３４】
状態レジスタ２２２は、プロセッサ２２０のパイプライン状態を保存するプロセッサ状態レジスタ２２２−１と、キャッシュ２２１の状態を保存するキャッシュ状態レジスタ２２２−２とを含んでもよい。プロセッサ状態レジスタ２２２−１は、プロセッサ２２０のパイプラインが活性状態であるか、または遊休状態であるかということを保存することができる。さらに具体的な動作について述べれば、プロセッサ状態レジスタ２２２−１は、プロセッサ２２０が作業キュー（job  queue）の最後作業を終わる場合（例えば、プロセッサ回路が作業キューの最後作業を完了したという判断に基づく）、遊休状態にアップデートされる。キャッシュ状態レジスタ２２２−２は、キャッシュ２２１が活性状態であるか、または遊休状態であるかということを保存することができる。さらに具体的な動作について述べれば、キャッシュ状態レジスタ２２２−２は、キャッシュ２２１が、要請された作業を終え、ＦＩＦＯ（first-in-first-out）エンプティ状態（ＦＩＦＯ  empty  condition）である場合（例えば、キャッシュ２２１が、要請された作業を完了したという判断に基づく）、遊休状態にアップデートされる。言い換えれば、キャッシュ状態レジスタ２２２−２は、プロセッサ２２０のメモリシステムが遊休状態であるか否かということを示すことができる。
【００３５】
クロック管理要請判断部２２３は、状態レジスタ２２２を利用して、プロセッサ２２０が遊休状態であるか、または活性状態であるということを判断することができる。さらに具体的には、クロック管理要請判断部２２３は、状態レジスタ２２２に保存されたプロセッサ２２０のパイプラインと、キャッシュ２２１の状態とを基に、プロセッサ２２０が遊休状態であるか、または活性状態であるということを判断することができる。
【００３６】
また、クロック管理要請判断部２２３は、キャッシュ一貫性インターフェースを介して、キャッシュ一貫性と係わるキャッシュ一貫性信号が伝送または受信されるということを判断することができる。さらに具体的には、クロック管理要請判断部２２３は、プロセッサ２２０において、キャッシュ一貫性トラフィック（cache  coherent  traffic）が伝送または受信されているかということを判断することができる。さらに具体的には、クロック管理要請判断部２１０は、キャッシュ一貫性のためのスヌープトラフィック（snoop  traffic）が、他のプロセッサに伝送されたり、他のプロセッサから受信されたりするかということを判断することができる。さらに、クロック管理要請判断部２２３は、他のデバイス（例えば、別個のデバイス）が、プロセッサ２２０（例えば、プロセッサ回路）に接続しているか否かということを判断することもできる。さらに具体的には、他のデバイスが、プロセッサデバイスドライバを介して、プロセッサ２２０の制御レジスタまたは状態レジスタに、読み取り動作または書き込み動作を行うかということ判断することができる。
【００３７】
クロック管理要請判断部２２３が、プロセッサ２２０のパイプラインとキャッシュ２２１とが遊休状態であり、キャッシュ一貫性トラフィックが伝送または受信されておらず、他のデバイス（例えば、別個のデバイス）が、プロセッサ２２０（例えば、プロセッサ回路）に接続していないと判断する場合、プロセッサ２２０が遊休状態であると判断することができる。プロセッサ２２０のパイプラインまたはキャッシュ２２１が活性状態であるか、キャッシュ一貫性トラフィックが伝送または受信されているか、あるいは他のデバイスがプロセッサ２２０に接続していると判断する場合、クロック管理要請判断部２２３は、プロセッサ２２０が活性状態であると判断することができる。
【００３８】
図５を参照し、さらに詳細に説明する。図５は、一実施形態による、クロック管理要請判断部の判断結果によって、該ＣＭＵにイネーブル要請またはディセーブル要請を伝送するプロセスを示す図である。図５において説明される動作は、本明細書でのプロセッサ、プロセッシングデバイスのうち、一部またはいずれによっても実施される。
【００３９】
図５を参照すれば、クロック管理要請判断部２２３は、次の四種条件によって、ＣＭＵ  ２１０へのイネーブル要請またはディセーブル要請を判断する。
【００４０】
１．プロセッサ２２０のパイプライン状態
２．キャッシュ２２１の状態
３．キャッシュ一貫性トラフィックが、他のプロセッサに伝送されるか、あるいは他のプロセッサから受信されるということ
４．他のデバイスがプロセッサ２２０に接続するか否かということ。
【００４１】
一実施形態において、クロック管理要請インターフェース２２４から出力されるクロック管理要請信号ＣＬＫ  ＲＥＱが０であるならば（例えば、０の値を有する）、ＣＭＵ  ２１０にクロックディセーブル要請がなされる。さらに具体的に述べれば、プロセッサ２２０のパイプラインが遊休状態であり、ＯＲゲート５１０の第１入力５２１が０になり、キャッシュ２２１が遊休状態あり、ＯＲゲート５１０の第２入力５２２が０になり、キャッシュ一貫性トラフィックが伝送または受信されず、ＯＲゲート５１０の第３入力５２３が０になり、他のデバイスがプロセッサ２２０に接続せず、ＯＲゲート５１０の第４入力５２４が０になる場合、言い換えれば、ＯＲゲート５１０の入力がいずれも０になる場合、ＯＲゲート５１０の出力は、０になる。このとき、クロック管理要請判断部２２３は、プロセッサ２２０が遊休状態であると判断し、クロック管理要請インターフェース２２４を介して、クロック管理要請信号ＣＬＫ  ＲＥＱが０であるクロックディセーブル要請をＣＭＵ  ２１０に伝送することができる。
【００４２】
一方、クロック管理要請インターフェース２２４から出力されるクロック管理要請信号ＣＬＫ  ＲＥＱが１であるならば、ＣＭＵ  ２１０にクロックイネーブル要請がなされる。さらに具体的に述べれば、プロセッサ２２０のパイプラインが活性状態であり、ＯＲゲート５１０の第１入力５２１が１になるか、キャッシュ２２１が活性状態であり、ＯＲゲート５１０の第２入力５２２が１になるか、キャッシュ一貫性トラフィックが伝送または受信され、ＯＲゲート５１０の第３入力５２３が１になるか、または他のデバイスがプロセッサ２２０に接続し、ＯＲゲート５１０の第４入力５２４が１になる場合、言い換えれば、４個のＯＲゲート５１０の入力５２１〜５２４のうちいずれか一つでも１を満足する場合、ＯＲゲート５１０の出力は、１になる。クロックイネーブル要請は、プロセッサ２２０のクロックがディセーブルの状態で発生するので、概してキャッシュ一貫性トラフィックが伝送または受信（例えば、プロセッサ２２０と、他の「別個の」デバイスとの通信）されるか、あるいは他のデバイスがプロセッサ２２０に接続する場合、イネーブル要請が伝送される。従って、プロセッサ２２０は、クロック管理要請インターフェース２２４を介して、クロック管理要請信号ＣＬＫ  ＲＥＱが１であるイネーブル要請をＣＭＵ  ２１０に伝送することができる。
【００４３】
一実施形態によれば、他の「別個の」デバイスがプロセッサ２２０に接続し、プロセッサ２２０の動作状態を判断するのではなく、プロセッサ２２０に含まれたクロック管理要請判断部２２３が、プロセッサ２２０の遊休時点を判断する。また、プロセッサ２２０がＣＭＵ  ２１０に直接接続され（例えば、１以上のハードウェアダイレクト構造的インターフェース、ハードウェア直接通信インターフェース、それらの組み合わせ、またはそのようなインターフェースを介する）、クロック信号の制御要請を直接（例えば、ハードウェア直接通信インターフェースを介する）伝送することにより、他のデバイスは、ＣＭＵ  ２１０の制御レジスタに、プロセッサ２２０のクロックを制御するための命令（command）を保存しない。従って、信号処理プロセスにおいて遅延が発生せず、クロックを即座にイネーブルまたはディセーブルにする。
【００４４】
再び図２の説明に戻れば、電子機器２００は、バスを含み、クロック管理要請インターフェース２２４は、バスを介して、ＣＭＵ  ２１０と直接接続される。また、電子機器２００は、バスを介して、プロセッサ２２０のキャッシュ２２１と、他デバイスに含まれたキャッシュとの間で、キャッシュ一貫性を支援することができる。図６を参照し、さらに具体的に説明する。
【００４５】
図６は、一実施形態によるクロック管理要請インターフェースと、キャッシュ一貫性インターフェースとを示す図である。図６を参照すれば、該電子機器は、ＣＭＵ  ２１０、プロセッサ２２０及びデバイス２３０を含む。本明細書において「他のデバイス」は、「別個のデバイス」と相互交換的に指称される。また、前述のように、「プロセッサ」は「プロセッサ回路」と相互交換的に指称される。
【００４６】
プロセッサ２２０は、キャッシュ２２１とクロック管理要請インターフェース２２４とを含み、キャッシュ２２１は、キャッシュ一貫性インターフェース６１０を含んでもよい。デバイス２３０も、キャッシュ２３２を含み、デバイス２３０に含まれたキャッシュ２３２も、キャッシュ一貫性インターフェース６２０を含んでもよい。他のデバイス２３０は、例えば、ＣＰＵでもあり、プロセッサ２２０は、ＧＰＵまたはＤＳＰのような処理装置でもある。プロセッサ２２０は、メモリ（図示せず）に保存されたプログラム命令語の実行に基づいて、キャッシュ２２１のキャッシュ一貫性インターフェース６１０及びキャッシュ一貫性インターフェース６２０を実施することができる。該メモリは、図１に図示されたメモリ１３０でもある。
【００４７】
プロセッサ２２０のキャッシュ一貫性インターフェース６１０と、デバイス２３０のキャッシュ一貫性インターフェース６２０は、バス２４０を介して直接接続される。従って、電子機器２００は、メモリを使用せず、キャッシュ間の直接接続を介して、ハードウェア的にキャッシュ一貫性を支援することができる。
【００４８】
ハードウェア的にキャッシュ一貫性を支援する場合、従来には、プロセッサ２２０がスヌープトラフィックをサービスするために、常にクロックをイネーブルしていなければならなかった。しかし、一実施形態において、プロセッサ２２０がクロック管理要請インターフェース２２４を介して、ＣＭＵ  ２１０と直接接続され（例えば、任意の中間（intervening）デバイスを介して接続されない）ＣＭＵ  ２１０にクロック信号の制御要請を伝送することにより、ハードウェアキャッシュ一貫性を支援する環境においても、クロックゲーティングを行うことができ、動的電力消費を減らすことができる。
【００４９】
再び図２の説明に戻れば、ＣＭＵ  ２１０は、別個のデバイスによって制御されてもよい。ＣＭＵ  ２１０を制御する別個のデバイス（図示せず）は、ＣＭＵ  ２１０デバイスドライバを介して、ＣＭＵ  ２１０を制御することができる。さらに具体的には、ＣＭＵ  ２１０を制御する別個のデバイスは、ＣＭＵ  ２１０の制御レジスタ（control  register）に接続（access）し、電子機器２００に含まれた各デバイスのクロックを制御せよという命令（command）を保存することができる。ＣＭＵ  ２１０を制御する別個のデバイスは、図１に図示されたＣＰＵでもある。
【００５０】
以上、電子機器２００の構成について説明した。以下では、電子機器２００の動作方法について説明する。
【００５１】
図７は、一実施形態による、電子機器の動作方法を示すフローチャートである。図７に図示された動作は、本明細書のプロセッサ、プロセッシングデバイスのうち、一部またはいずれによっても実施される。図７を参照すれば、まず、７１０段階において、電子機器２００は、プロセッサ２２０が遊休状態であるか、または活性状態であるかという動作状態を判断することができる。
【００５２】
その後、７２０段階において、プロセッサ２２０の動作状態により、プロセッサ２２０が、直接ＣＭＵ  ２１０にクロック信号の制御信号要請を伝送する。７１０段階において、プロセッサ２２０の動作状態が遊休状態であると判断する場合、プロセッサ２２０は、ＣＭＵ  ２１０にクロックディセーブル要請を伝送することができる。一方、プロセッサ２２０の動作状態が活性状態であると判断する場合、プロセッサ２２０は、ＣＭＵ  ２１０にクロックイネーブル要請を伝送することができる。
【００５３】
ＣＭＵ  ２１０は、プロセッサ２２０からクロックイネーブル要請を受信する場合、プロセッサ２２０に入力されるクロックをイネーブルにし、クロックディセーブル要請を受信する場合、プロセッサ２２０に入力されるクロックをディセーブルにする。しかし、クロックディセーブル要請を受信した時点と、直前クロックイネーブル時点との時間間隔が特定臨界時間以下である場合、ＣＭＵ  ２１０は、プロセッサ２２０に入力されるクロックをディセーブルにせず、イネーブルに維持することができる。
【００５４】
図８は、一実施形態によるプロセッサの動作状態を判断する方法を示すフローチャートである。図８に図示された方法は、本明細書のプロセッサ、プロセッシングデバイスのうち、一部またはいずれによっても実施される。図８を参照すれば、まず、８１０段階において、プロセッサ２２０は、自身のパイプライン状態を判断する。８１０段階において、自身のパイプラインが活性状態であると判断する場合、プロセッサ２２０は、８６０段階に進み、ＣＭＵ  ２１０にクロックイネーブル要請を伝送する。８１０段階において、自身のパイプラインが遊休状態であると判断する場合、プロセッサ２２０は、８２０段階に進む。
【００５５】
８２０段階において、プロセッサ２２０は、自身のキャッシュ２２１状態を判断する。８２０段階において、自身のキャッシュ２２１が活性化状態であると判断する場合、プロセッサ２２０は、８６０段階に進み、ＣＭＵ  ２１０にイネーブル要請を伝送する。８１０段階において、自身のキャッシュ２２１が遊休状態であると判断する場合、プロセッサ２２０は、８３０段階に進む。
【００５６】
８３０段階において、プロセッサ２２０は、キャッシュ一貫性トラフィックが伝送または受信されるかということを判断する。８３０段階において、キャッシュ一貫性トラフィックが伝送または受信されると判断する場合、プロセッサ２２０は、８６０段階に進み、ＣＭＵ  ２１０にクロックイネーブル要請を伝送する。８３０段階において、キャッシュ一貫性トラフィックが伝送または受信されないと判断する場合、プロセッサ２２０は、８４０段階に進む。
【００５７】
８４０段階において、プロセッサ２２０は、他のデバイスが自身に接続しているか否かということを判断する。８４０段階において、他のデバイスが自身に接続していると判断する場合、プロセッサ２２０は、８６０段階に進み、ＣＭＵ  ２１０にクロックイネーブル要請を伝送する。８４０段階において、他のデバイスが自身に接続していないと判断する場合、プロセッサ２２０は、８５０段階に進み、ＣＭＵ  ２１０にディセーブル要請を伝送する。
【００５８】
図８で図示するプロセッサの動作状態を判断する方法は、１つの実施形態であり、他の方法で具現することも可能である。例えば、８３０段階、言い換えれば、キャッシュ一貫性トラフィックが伝送または受信されるかということを判断する段階が最も先に行われてもよい。または、８４０段階、言い換えれば、他のデバイスがプロセッサ２２０に接続しているか否かということを判断する段階が、キャッシュ２２１の動作状態を判断する８２０段階より先に行われてもよい。
【００５９】
本実施形態による装置は、プロセッサ、プログラムデータを保存して実行するメモリ、ディスクドライブのような永久保存部（permanent  storage）、外部装置と通信する通信ポート、タッチパネル・キー（key）・ボタンのようなユーザインターフェース装置などを含んでもよい。ソフトウェアモジュールまたはアルゴリズムによって具現される方法は、前記プロセッサ上で実行可能なコンピュータ読み取り可能コードまたはプログラム命令として、コンピュータ読み取り可能記録媒体上に保存される。ここで、コンピュータ読み取り可能記録媒体として、マグネチック記録媒体（例えば、ＲＯＭ（read-only  memory）、ＲＡＭ（random  access  memory）、フロッピーディスク、ハードディスクなど）及び光学的判読媒体（例えば、ＣＤ−ＲＯＭ（compact  disc  read  only  memory）、ＤＶＤ（digital  versatile  disc））などがある。コンピュータ読み取り可能記録媒体は、ネットワークに接続されたコンピューターシステムに分散され、該分散方式で、コンピュータ可読なコードが保存されて実行される。該媒体は、コンピュータによって可読なものであり、メモリに保存され、プロセッサで実行される。
【００６０】
一部例示的な実施形態は、機能的なブロック構成及び多様な処理段階で示される。かような機能ブロックは、特定機能を実行する多様な個数のハードウェア構成または／及びソフトウェア構成によっても具現される。例えば、一部例示的な実施形態は、１以上のマイクロプロセッサの制御、または他の制御装置によって多様な機能を実行することができる、メモリ、プロセッシング、ロジック（logic）、ルックアップテーブル（look-up  table)のような直接回路構成を採用することができる。該構成要素が、ソフトウェアプログラミングまたはソフトウェア要素で実行されることと類似して、一部例示的な実施形態は、データ構造、プロセス、ルーチン、または他のプログラミング構成の組み合わせによって具現される多様なアルゴリズムを含み、Ｃ、Ｃ＋＋、ジャバ（登録商標（Java））、アセンブラ（assembler）のようなプログラミング言語またはスクリプティング言語によっても具現される。機能的な側面は、１以上のプロセッサで実行されるアルゴリズムによっても具現される。また、一部例示的な実施形態は、電子的な環境設定、信号処理及び／またはデータ処理などのために、従来技術を採用することができる。「メカニズム」、「要素」、「手段」、「構成」のような用語は、汎用され、機械的であって物理的な構成として限定されるものではない。前述の用語は、プロセッサなどと連繋し、ソフトウェアの一連処理（routines）の意味を含む。
【００６１】
一部例示的な実施形態において説明する特定実行は例示であり、いかなる方法によっても技術的範囲を限定するものではない。明細書の簡潔さのために、従来の電子的な構成、制御システム、ソフトウェア、前記システムの他の機能的な側面の記載は省略される。また、図面に図示された構成要素間の線の接続または接続部材は、機能的な接続、及び／または物理的または回路的な接続を例示的に示したものであり、実際の装置では、代替可能であったり追加されたりする多様な機能的な接続、物理的な接続または回路的な接続としても示される。
【００６２】
本明細書（特に、特許請求の範囲）において、「前記」の用語、及びそれと類似した指示用語の使用は、単数及び複数のいずれにも該当する。また、範囲（range）を記載した場合、前記範囲に属する個別的な値を含み（それに反する記載がなければ）、詳細な説明において、前記範囲を構成する各個別的な値を記載した通りである。最後に、方法を構成する段階について、明白に順序を記載したり、それに反対したりする記載がなければ、前記段階は、適切な順序で行われる。必ずしも前述の段階の記載順序に限定されるものではない。全ての例、または例示的な用語（例えば、など）の使用は、単に技術的思想を詳細に説明するためのものであり、特許請求の範囲によって限定されない以上、前記例、または例示的な用語によって、範囲が限定されるものではない。また、当業者は、多様な修正、組み合わせ及び変更が付加された特許請求の範囲、またはその均等物の範疇内で、設計条件及びファクタによっても構成されるということが分かるであろう。
【産業上の利用可能性】
【００６３】
本発明の、電子機器及びその動作方法は、例えば、デバイス関連の技術分野に効果的に適用可能である。
【符号の説明】
【００６４】
１００，２００    電子機器
１１０      中央処理装置（ＣＰＵ）
１１１，１２１，１４１，２２１，２３２    キャッシュ
１２０      デジタル信号処理装置（ＤＳＰ）
１３０      メモリ
１４０      グラフィック処理装置（ＧＰＵ）
１５０，２１０，３１０    クロック管理部（ＣＭＵ）
１６０，２４０    バス
２２０，３４０    プロセッサ
２２２      状態レジスタ
２２２−１  プロセッサ状態レジスタ
２２２−２  キャッシュ状態レジスタ
２２３      クロック管理要請判断部
２２４      クロック管理要請インターフェース
２３０      デバイス
３２０      クロック生成部
３３０      ＡＮＤゲート
５１０      ＯＲゲート
６１０，６２０    キャッシュ一貫性インターフェース
【図１】
2018106672.tif 000003
【図２】
2018106672.tif 000004
【図３】
2018106672.tif 000005
【図４】
2018106672.tif 000006
【図５】
2018106672.tif 000007
【図６】
2018106672.tif 000008
【図７】
2018106672.tif 000009
【図８】
2018106672.tif 000010