(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-11
(45)【発行日】2022-10-19
(54)【発明の名称】電子機器及びその動作方法
(51)【国際特許分類】
G06F 15/78 20060101AFI20221012BHJP
【FI】
G06F15/78 517
G06F15/78 530
(21)【出願番号】P 2017159266
(22)【出願日】2017-08-22
【審査請求日】2020-07-06
(31)【優先権主張番号】10-2016-0179164
(32)【優先日】2016-12-26
(33)【優先権主張国・地域又は機関】KR
【前置審査】
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】文 東 郁
【審査官】三坂 敏夫
(56)【参考文献】
【文献】特開平07-302133(JP,A)
【文献】特開2007-128518(JP,A)
【文献】米国特許出願公開第2012/0102344(US,A1)
【文献】特開2011-150653(JP,A)
【文献】特開2002-268877(JP,A)
【文献】特表2014-517401(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/78
(57)【特許請求の範囲】
【請求項1】
クロック信号を制御するクロック管理回路と、
前記クロック管理回路と直接接続されたプロセッサ回路であり、当該プロセッサ回路の動作状態に従って、前記クロック管理回路に、前記クロック信号をイネーブルにするためのクロックイネーブル要請、又は前記クロック信号をディセーブルにするためのクロックディセーブル要請を伝送するプロセッサ回路と、
を含
み、
前記プロセッサ回路は、前記プロセッサ回路の前記動作状態を決定するために、
前記プロセッサ回路のパイプライン及びキャッシュが遊休状態であるということを判断し、
キャッシュ一貫性トラフィックが、前記プロセッサ回路を介して、伝送されているか否かということを判断し、
別個のデバイスが、前記プロセッサ回路に接続しているか否かということを判断する、
電子機器。
【請求項2】
前記プロセッサ回路は、前記クロック管理回路と直接接続されたクロック管理要請インターフェースを含み、
前記プロセッサ回路は、前記プロセッサ回路の動作状態を保存し、前記プロセッサ回路の前記保存された動作状態を決定する、
ことを特徴とする請求項1に記載の電子機器。
【請求項3】
前記プロセッサ回路は、前記プロセッサ回路が遊休状態であるか、または活性状態であるということを判断する、
ことを特徴とする請求項2に記載の電子機器。
【請求項4】
前記プロセッサ回路は、
前記プロセッサ回路が遊休状態であるという判断に基づいて、前記クロック管理回路に前記クロックディセーブル要請を伝送し、
前記プロセッサ回路が活性状態であるという判断に基づいて、前記クロック管理回路に前記クロックイネーブル要請を伝送する、
ことを特徴とする請求項3に記載の電子機器。
【請求項5】
前記クロック管理回路は、
前記クロック管理回路が、前記プロセッサ回路から前記クロックイネーブル要請を受信したことに基づいて、前記プロセッサ回路に入力されるクロックをイネーブルにし、
前記クロック管理回路が、前記プロセッサ回路から前記クロックディセーブル要請を受信したことに基づいて、前記プロセッサ回路に入力されるクロックをディセーブルにする、
ことを特徴とする請求項4に記載の電子機器。
【請求項6】
前記クロック管理回路は、
前記クロック管理回路が前記クロックディセーブル要請を受信したとき、前記クロック管理回路において、前記クロックディセーブル要請を受信した時点と、直前クロックイネーブル時点との時間間隔が、特定臨界時間以下であるという判断に基づいて、前記プロセッサ回路に入力されるクロックをディセーブルにせず、イネーブルに維持する、
ことを特徴とする請求項5に記載の電子機器。
【請求項7】
前記プロセッサ回路は、
前記プロセッサ回路のパイプライン状態を保存し、前記プロセッサ回路が作業キューにある最後の作業を完了したという判断に基づいて、前記パイプライン状態を遊休状態にアップデートするプロセッサ状態レジスタと、
前記プロセッサ回路に含まれた
前記キャッシュの状態を保存し、前記キャッシュが、要請された作業を完了し、FIFO(first-in-first-out)エンプティ状態という判断に基づいて、前記キャッシュの前記状態を遊休状態にアップデートするキャッシュ状態レジスタと、を含む、
ことを特徴とする請求項2に記載の電子機器。
【請求項8】
前記キャッシュは、キャッシュ一貫性を支援するためのキャッシュ一貫性インターフェースを含む、
ことを特徴とする請求項7に記載の電子機器。
【請求項9】
前記プロセッサ回路の
前記パイプラインと、前記キャッシュとが遊休状態であり、前記キャッシュ一貫性トラフィックが、前記プロセッサ回路と、前記別個のデバイスとの間で伝送されず、前記別個のデバイスが、前記プロセッサ回路に接続していないという判断に基づいて、前記プロセッサ回路が遊休状態にあると判断し、
前記プロセッサ回路の
前記パイプラインまたは前記キャッシュが活性状態であるか、前記キャッシュ一貫性トラフィックが、前記プロセッサ回路と、前記別個のデバイスとの間で伝送されるか、あるいは前記別個のデバイスが、前記プロセッサ回路に接続しているという判断に基づいて、前記プロセッサ回路が活性状態にあると判断する、
ことを特徴とする請求項8に記載の電子機器。
【請求項10】
前記プロセッサ回路とのキャッシュ一貫性を支援するデバイスをさらに含み、
前記デバイスに含まれたキャッシュは、前記キャッシュ一貫性を支援するためのキャッシュ一貫性インターフェースを含み、
前記プロセッサ回路の
前記キャッシュと、前記デバイスの
前記キャッシュは、前記プロセッサ回路の
前記キャッシュ一貫性インターフェース、及び前記デバイスの
前記キャッシュ一貫性
インターフェースそれぞれを介して直接に接続され、前記プロセッサ回路は、ハードウェアキャッシュ一貫性を支援する、
ことを特徴とする請求項8に記載の電子機器。
【請求項11】
電子機器の動作方法において、
前記電子機器のプロセッサ回路の動作状態を決定する段階と、
前記プロセッサ回路の前記動作状態に従って、前記プロセッサ回路が、直接、クロック管理回路に、クロック信号をイネーブルにするためのクロックイネーブル要請、又は前記クロック信号をディセーブルにするためのクロックディセーブル要請を伝送する段階と、
を含
み、
前記プロセッサ回路の動作状態を決定する段階は、
前記プロセッサ回路のパイプライン及びキャッシュが遊休状態であるということを判断する段階と、
キャッシュ一貫性トラフィックが、前記プロセッサ回路を介して、伝送されているか否かということを判断する段階と、
別個のデバイスが、前記プロセッサ回路に接続しているか否かということを判断する段階と、
を含む、
電子機器の動作方法。
【請求項12】
前記プロセッサ回路の動作状態を判断する段階は、前記プロセッサ回路が遊休状態であるか、または活性状態であるということを判断する段階を含む、ことを特徴とする請求項11に記載の電子機器の動作方法。
【請求項13】
前記プロセッサ回路の前記動作状態に従って、前記クロックイネーブル要請又は前記クロックディセーブル要請を伝送する段階は、前記プロセッサ回路が、前記遊休状態または前記活性状態にあるかということに基づいて、前記クロック管理回路に、前記クロックイネーブル要請または前記クロックディセーブル要請を選択的に伝送することを含み、
前記選択的に伝送する段階は、
前記プロセッサ回路が遊休状態にあるという判断に基づいて、前記クロック管理回路に、前記クロックディセーブル要請を伝送するか、
前記プロセッサ回路が活性状態にあるという判断に基づいて、前記クロック管理回路に、前記クロックイネーブル要請を伝送する、
ことを特徴とする請求項12に記載の電子機器の動作方法。
【請求項14】
前記プロセッサ回路から、前記クロックイネーブル要請または前記クロックディセーブル要請が受信されることに基づいて、前記プロセッサ回路に入力されるクロック信号を選択的にイネーブルにする段階をさらに含み、
前記選択的にイネーブルにする段階は、
前記クロック管理回路を利用して、前記プロセッサ回路から、前記クロックイネーブル要請を受信することに基づいて、前記プロセッサ回路に入力される前記クロック信号をイネーブルにする段階と、
前記クロック管理回路を利用して、前記プロセッサ回路から、前記クロックディセーブル要請を受信することに基づいて、前記プロセッサ回路に入力される前記クロック信号をディセーブルにする段階と、を含む、
ことを特徴とする請求項11に記載の電子機器の動作方法。
【請求項15】
前記クロック管理回路を利用して、前記プロセッサ回路から、前記クロックディセーブル要請を受信するとき、前記クロックディセーブル要請が受信された時点と、直前クロックイネーブル時点との時間間隔が特定臨界時間以下であるという判断に基づいて、前記プロセッサ回路に入力されるクロックをディセーブルにせず、イネーブルに維持する、ことを特徴とする請求項14に記載の電子機器の動作方法。
【請求項16】
前記プロセッサ回路の動作状態を判断する段階は、
前記プロセッサ回路の前記パイプライン及び前記キャッシュが遊休状態であり、前記キャッシュ一貫性トラフィックが、前記プロセッサ回路と、前記別個のデバイスとの間で伝送されておらず、前記別個のデバイスが、前記プロセッサ回路に接続していないという判断に基づいて、前記クロックディセーブル要請を伝送し、
前記プロセッサ回路の前記パイプラインまたは前記キャッシュが活性状態であるか、前記キャッシュ一貫性トラフィックが、前記プロセッサ回路と、前記別個のデバイスとの間で伝送されているか、あるいは前記別個のデバイスが、前記プロセッサ回路に接続しているという判断に基づいて、前記クロックイネーブル要請を伝送する
段階をさらに含む、ことを特徴とする請求項
11に記載の電子機器の動作方法。
【請求項17】
前記プロセッサ回路が作業キューの最後作業を完了したという判断に基づいて、前記プロセッサ回路のパイプライン状態を遊休状態にアップデートする段階と、
前記プロセッサ回路の
前記キャッシュが要請された作業を終え、FIFO(first-in-first-out)エンプティ状態という判断に基づいて、前記キャッシュの動作状態を遊休状態にアップデートする段階と、
をさらに含むことを特徴とする請求項11に記載の電子機器の動作方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子機器及びその動作方法に関する。
【背景技術】
【0002】
システム・オン・チップ(SoC:system on chip)では、1つのチップ(chip)に、電子機器のさまざまなデバイスが一つに集積され、電力管理が容易であるという長所がある。ある場合、SoCに集積されるデバイスに対して、クロック(clock)をディセーブル(disable)にするクロックゲーティング(clock gating)が行われれば、当該デバイスの動的電力(dynamic power)は低減される。従来技術によれば、特定デバイスに対するクロックゲーティングが行われるとき、中央処理装置(CPU:central processing unit)が当該デバイスのドライバに接続(access)し、作業キュー(job queue)を確認することができ、該作業キューがエンプティである場合、当該デバイスが遊休状態(idle status)にあると判断する。その後、該CPUは、SoCに集積されるデバイスのうち一つであるクロック管理部(CMU:clock management unit)をCMUドライバを介して制御し、当該デバイスのクロックをゲーティングすることができる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明の一実施形態は、動的電力を減らすことができる電子機器、及びその電子機器の動作方法を提供するものである。
【課題を解決するための手段】
【0004】
一実施形態による電子機器は、クロック管理回路、及び前記クロック管理回路と直接に接続されたプロセッサ回路を含み得る。前記クロック管理回路は、クロック信号を制御することができる。前記プロセッサ回路は、前記プロセッサ回路の動作状態により、前記クロック管理回路に、前記クロック信号と関連したクロック制御要請を伝送することができる。
【0005】
一実施形態によれば、電子機器の動作方法は、前記電子機器のプロセッサ回路の動作状態を決定する段階と、前記プロセッサ回路を利用して、前記プロセッサ回路の前記動作状態により、クロック管理回路に、クロック信号と関連したクロック制御要請を直接に伝送する段階と、を含み得る。
【0006】
一実施形態によれば、電子機器は、ハードウェアキャッシュ一貫性を支援する第1プロセッサ回路及び第2プロセッサ回路、並びに前記第1プロセッサ回路のクロック信号、及び前記第2プロセッサ回路のクロック信号いずれも制御するクロック管理回路を含み得る。前記第2プロセッサ回路は、前記第2プロセッサ回路が、前記第1プロセッサ回路からキャッシュ一貫性信号を受信したという判断に基づいて、前記クロック管理回路にクロックイネーブル要請を伝送することができる。前記クロック管理回路は、前記クロックイネーブル要請に応答し、前記第2プロセッサ回路をイネーブルにすることができる。
【0007】
一実施形態によれば、電子機器は、プログラム命令語を保存するメモリ及びプロセッサを含み得る。該プロセッサは、前記プロセッサと関連した動作状態を決定し、前記プロセッサの動作状態により、クロック管理回路に、クロック信号と関連したクロック制御要請を伝送するためのプログラム命令語を実行することができる。
【図面の簡単な説明】
【0008】
【
図2】一実施形態による電子機器の内部構成を示す図である。
【
図3】一実施形態による電子機器のクロック制御動作を示す図である。
【
図4】一実施形態による、クロック管理要請インターフェースとCMUとの動作を示す図である。
【
図5】一実施形態による、クロック管理要請判断部の判断結果によって、CMUにクロックイネーブル要請またはクロックディセーブル要請を伝送するプロセスを示す図である。
【
図6】一実施形態による、クロック管理要請インターフェースとキャッシュ一貫性インターフェースとを示す図である。
【
図7】一実施形態による電子機器の動作方法を示すフローチャートである。
【
図8】一実施形態による、プロセッサの動作状態を判断する方法を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、図面を参照し、多様な例示的な実施形態について詳細に説明する。以下で説明する例示的な実施形態は、さまざまに異なる形態に変形されて実施される。例示的な実施形態の特徴についてさらに明確に説明するために、以下の実施形態が属する技術分野で当業者に周知の事項については、詳細な説明は省略する。本明細書で使用されているように、「及び/または」という用語は、関連して列挙された項目のうち1以上の任意、または全ての組み合わせを含んでもよい。
【0010】
なお、本明細書において、ある構成が他の構成と「接続」されているとするとき、それは、「直接に接続」されている場合だけではなく、「その中間に他の構成を挟んで接続」されている場合も含む。また、ある構成が他の構成を「含む」とするとき、それは、特別に反対となる記載がない限り、それ以外の構成を除くものではなく、他の構成をさらに含んでもよいということを意味する。
【0011】
【0012】
図1を参照すれば、一実施形態による電子機器100は、中央処理装置(CPU:central processing unit)110、デジタル信号処理装置(DSP:digital signal processor)120、メモリ130、グラフィック処理装置(GPU:graphic processing unit)140及びクロック管理部(CMU:clock management unit)150を含み得る。ただし、かような構造は、1つの例示に過ぎず、電子機器100は、追加して多様なデバイスをさらに含んでもよい。例えば、電子機器100は、入出力インターフェース(input/output interface)などをさらに含んでもよい。
【0013】
CPU 110、DSP 120、GPU 140及びCMU 150それぞれは、CPU 110、DSP 120、GPU 140及びCMU 150それぞれを実施(implement)するための一種の電気回路を含み得る。CPU 110、DSP 120、GPU 140及びCMU 150のうち1以上は、プロセッサを含んでもよい。本明細書において該プロセッサは、「プロセッサ回路」及び/または「プロセッシングデバイス」と相互交換的に(interchangeably)指称される。
【0014】
CPU 110、DSP 120、GPU 140及びCMU 150のような処理装置それぞれは、それぞれの機能によってデータを入力されて記憶し、演算し、演算されたデータを出力することによってデータを処理する1以上の電気回路を含み得る。CPU 110、DSP 120、GPU 140及びCMU 150のような処理装置は、他種のプロセッシングデバイス(例えば、他のプロセッサ回路の種類)と関連したプロセッシングデバイス(「プロセッサ回路」)でもある。かような処理装置は、データ処理のために、それぞれキャッシュ111,121,141を含んでもよい。電子機器100は、かようなキャッシュ111,121,141間において、保存されたデータを共有するためのキャッシュ一貫性(cache coherence)を支援することができる。また、キャッシュ一貫性は、ソフトウェア的処理ではなく、ハードウェア間の直接接続を介して支援される。それについては、追って詳細に説明する。
【0015】
メモリ130(また、本明細書において、「メモリデバイス」と相互交換的に指称されもする)は、電子機器100の駆動に係わるOS(operating system)、各種プログラム及びデータを保存する一種の電気回路を含み得る。また、メモリ130に保存されたデータは、各処理装置に提供される。一実施形態において、CPU 110、DSP 120、GPU 140及びCMU 150それぞれは、メモリ130に保存されたプログラム命令語の実行に基づいて、本明細書で説明するように、1以上の機能(functionality)及び/またはユニット、エレメントなどを実施することができる。
【0016】
CMU 150は、電子機器100のクロック(clock)信号を管理する電気回路を含み得る。CMU 150は、CPU 110、DSP 120、メモリ130、GPU 140など各デバイスに入力されるクロック信号を制御することができる。さらに具体的には、CMU 150は、選択的に、各デバイスに入力されるクロック信号をイネーブル(enable)またはディセーブル(disable)にする。本明細書において、CMU 150は、「クロック管理回路」と相互交換的に指称されることがある。
【0017】
かような個別デバイスは、バス(bus)160で接続される。バス160は、システムバスを含み、所定の標準バス規格を有するプロトコルが適用されたバスによっても具現される。例えば、該標準バス規格として、ARM(Advanced RISC Machine)社のAMBA(Advanced Microcontroller Bus Architecture)プロトコルが適用される。それ以外にも、ソニック社(SONICs Inc.)のuNetworkや、IBMのCoreConnect、OCP-IPのオープンコアプロトコル(Open Core Protocol)など他タイプのプロトコルがシステムバスに適用される。
【0018】
電子機器100は、システム・オン・チップ(SoC)にも具現される。言い換えれば、CPU 110、DSP 120、メモリ130、GPU 140及びCMU 150などは、集積されて1つのチップにも具現される。
【0019】
図2は、一実施形態による電子機器の内部構成を示す図である。
図2を参照すれば、電子機器200は、CMU 210及びプロセッサ220を含む。
図2に図示されているように、プロセッサ220は、キャッシュ221、状態レジスタ(status register)222、クロック管理要請判断部(clock management request determination unit)223及びクロック管理要請インターフェース(clock management request interface)224を含んでもよい。キャッシュ221、状態レジスタ222、クロック管理要請判断部223及びクロック管理要請インターフェース224それぞれは、プロセッサ220から独立した個別的な電気回路によっても実施される。プロセッサ220は、CMU 210に直接に接続される(例えば、1以上のハードウェアダイレクト構造的インターフェース、ハードウェア直接通信インターフェース、それらの組み合わせ、またはそのようなインターフェースを介する)。
【0020】
CMU 210は、クロック信号を制御する。CMU 210は、多数の回路のクロック信号を制御することができる(例えば、第1プロセッサ回路のクロック信号、及び第2プロセッサ回路のクロック信号をいずれも制御することができる)。CMU 210は、直接接続されたプロセッサ220から、クロック信号制御要請を受信することができる。言い換えれば、CMU 210は、他のデバイスを経ず、プロセッサ220から直接クロック信号の制御要請を受信することができる。プロセッサ220は、本明細書において、プロセッサ回路と相互交換的に指称する。
【0021】
CMU 210は、プロセッサ220の要請により、プロセッサ220に入力されるクロック信号を選択的にイネーブル(あるいは、選択的にディセーブル)にする(例えば、プロセッサ220から、クロックイネーブル要請またはクロックディセーブル要請を受信するかということに基づいて、選択的に、クロック信号入力をイネーブルにしたりディセーブルにしたりする)。このとき、CMU 210は、プロセッサ220からクロックディセーブル要請を受信しても、クロックディセーブル要請を受信した時点と、直前(immediately precedingまたはimmediately previous)クロックイネーブル時点との時間間隔が、特定臨界時間以下であるという判断に基づいて、プロセッサ220に入力されるクロック信号をディセーブルにせず、イネーブル(例えば、選択的にクロック信号入力をイネーブルにする)に維持することができる。かように、CMU 210は、クロック状態変更間隔を一定時間以上に維持することにより、プロセッサ220の処理効率を高めることができる。
【0022】
図3及び
図4を参照し、該CMUのクロック制御動作について説明する。
【0023】
図3は、一実施形態による電子機器のクロック制御動作を示す図である。
図3において、プロセッサ340、例えば、GPU、DSPのような処理装置は、CMU 310の制御によってクロックを入力される。
【0024】
CMU 310は、プロセッサ340からクロック信号(CKL)の制御要請を受信し、ANDゲート330に0または1を出力する。
【0025】
クロック生成部320(また、本明細書において、「クロック生成回路」ともされる)は、クロック信号を生成し、ANDゲート330に、生成したクロック信号を出力(「伝送(communicates)」)する。
【0026】
CMU 310が0を出力する場合、ANDゲート330によってプロセッサ340に入力される信号が0になりであり、プロセッサ340のクロック信号は、ディセーブルになる。CMU 310が1を出力する場合、ANDゲート330によってクロック生成部320で生成されたクロック信号がプロセッサ340に入力され(「伝送され」)、プロセッサ340のクロック信号は、イネーブルになる。
【0027】
一実施形態によれば、プロセッサ340が異なるデバイスを経ず、CMU 310と直接接続され(例えば、ハードウェア直接通信インターフェースを介して、CMU 310と直接に通信接続)、プロセッサ340は、プロセッサ340が遊休状態(idle status)または活性状態(active status)であるかということに基づいて、選択的にプロセッサ340に入力されるクロック信号のイネーブル要請またはディセーブル要請を、CMU 310に直接に伝達(「伝送」)する。従って、信号処理プロセスに遅延が発生せず、クロックが即座にイネーブルまたはディセーブルになる。
【0028】
図4は、一実施形態による、クロック管理要請インターフェースとCMUとの動作を示す図である。
図4を参照すれば、プロセッサ220は、選択的に、CMU 210にクロック管理要請信号CLK REQを伝送することができる。このとき、クロック管理要請信号CLK REQは、プロセッサ220が遊休状態または活性状態であるかということに基づいて、クロックイネーブル要請でもあり、クロックディセーブル要請でもある。
【0029】
クロック管理要請信号CLK REQを受信したCMU 210は、信号を受信したというACCEPT信号をプロセッサ220に伝送し、プロセッサ220とCMU 210との間でハンドシェイク(handshake)が具現される。
【0030】
プロセッサ220は、ACCEPT信号を受信する場合、CMU 210にACCEPT信号受信を確認するためのACK信号を伝送することもできる。
【0031】
再び
図2の説明に戻れば、プロセッサ220は、キャッシュ221、プロセッサ220の動作状態を保存することができる状態レジスタ222、状態レジスタ222(例えば、動作状態の保存)に保存されたプロセッサ220の動作状態を判断することができるクロック管理要請判断部223、及びCMU 210と直接(directly)接続されるクロック管理要請インターフェース224を含み得る。プロセッサ220は、プログラム命令語の実行に基づいて、キャッシュ221、状態レジスタ222、クロック管理要請判断部223及びクロック管理要請インターフェース224のうち、一部またはいずれも実施することができる。該プログラム命令語は、
図1に図示されたメモリ130に保存され得る。
【0032】
キャッシュ221は、ラストレベルキャッシュ(LLC:last level cache)でもある。さらに、キャッシュ221は、キャッシュ一貫性(cache coherence)を支援するためのキャッシュ一貫性インターフェース(cache coherence interface)(図示せず)を含み、それを利用して、他のデバイスに含まれたキャッシュとの関係において、ハードウェアキャッシュ一貫性を支援することができる。
【0033】
プロセッサ220は、クロック管理要請判断部223の判断結果により、クロック管理要請インターフェース224を介して、直接そして選択的に、CMU 210にクロックイネーブル要請またはクロックディセーブル要請を伝送することができる(例えば、プロセッサ220が遊休状態または活性状態であるかということに基づく)。
【0034】
状態レジスタ222は、プロセッサ220のパイプライン状態を保存するプロセッサ状態レジスタ222-1と、キャッシュ221の状態を保存するキャッシュ状態レジスタ222-2とを含んでもよい。プロセッサ状態レジスタ222-1は、プロセッサ220のパイプラインが活性状態であるか、または遊休状態であるかということを保存することができる。さらに具体的な動作について述べれば、プロセッサ状態レジスタ222-1は、プロセッサ220が作業キュー(job queue)の最後作業を終わる場合(例えば、プロセッサ回路が作業キューの最後作業を完了したという判断に基づく)、遊休状態にアップデートされる。キャッシュ状態レジスタ222-2は、キャッシュ221が活性状態であるか、または遊休状態であるかということを保存することができる。さらに具体的な動作について述べれば、キャッシュ状態レジスタ222-2は、キャッシュ221が、要請された作業を終え、FIFO(first-in-first-out)エンプティ状態(FIFO empty condition)である場合(例えば、キャッシュ221が、要請された作業を完了したという判断に基づく)、遊休状態にアップデートされる。言い換えれば、キャッシュ状態レジスタ222-2は、プロセッサ220のメモリシステムが遊休状態であるか否かということを示すことができる。
【0035】
クロック管理要請判断部223は、状態レジスタ222を利用して、プロセッサ220が遊休状態であるか、または活性状態であるということを判断することができる。さらに具体的には、クロック管理要請判断部223は、状態レジスタ222に保存されたプロセッサ220のパイプラインと、キャッシュ221の状態とを基に、プロセッサ220が遊休状態であるか、または活性状態であるということを判断することができる。
【0036】
また、クロック管理要請判断部223は、キャッシュ一貫性インターフェースを介して、キャッシュ一貫性と係わるキャッシュ一貫性信号が伝送または受信されるということを判断することができる。さらに具体的には、クロック管理要請判断部223は、プロセッサ220において、キャッシュ一貫性トラフィック(cache coherent traffic)が伝送または受信されているかということを判断することができる。さらに具体的には、クロック管理要請判断部210は、キャッシュ一貫性のためのスヌープトラフィック(snoop traffic)が、他のプロセッサに伝送されたり、他のプロセッサから受信されたりするかということを判断することができる。さらに、クロック管理要請判断部223は、他のデバイス(例えば、別個のデバイス)が、プロセッサ220(例えば、プロセッサ回路)に接続しているか否かということを判断することもできる。さらに具体的には、他のデバイスが、プロセッサデバイスドライバを介して、プロセッサ220の制御レジスタまたは状態レジスタに、読み取り動作または書き込み動作を行うかということ判断することができる。
【0037】
クロック管理要請判断部223が、プロセッサ220のパイプラインとキャッシュ221とが遊休状態であり、キャッシュ一貫性トラフィックが伝送または受信されておらず、他のデバイス(例えば、別個のデバイス)が、プロセッサ220(例えば、プロセッサ回路)に接続していないと判断する場合、プロセッサ220が遊休状態であると判断することができる。プロセッサ220のパイプラインまたはキャッシュ221が活性状態であるか、キャッシュ一貫性トラフィックが伝送または受信されているか、あるいは他のデバイスがプロセッサ220に接続していると判断する場合、クロック管理要請判断部223は、プロセッサ220が活性状態であると判断することができる。
【0038】
図5を参照し、さらに詳細に説明する。
図5は、一実施形態による、クロック管理要請判断部の判断結果によって、該CMUにイネーブル要請またはディセーブル要請を伝送するプロセスを示す図である。
図5において説明される動作は、本明細書でのプロセッサ、プロセッシングデバイスのうち、一部またはいずれによっても実施される。
【0039】
図5を参照すれば、クロック管理要請判断部223は、次の四種条件によって、CMU 210へのイネーブル要請またはディセーブル要請を判断する。
【0040】
1.プロセッサ220のパイプライン状態
2.キャッシュ221の状態
3.キャッシュ一貫性トラフィックが、他のプロセッサに伝送されるか、あるいは他のプロセッサから受信されるということ
4.他のデバイスがプロセッサ220に接続するか否かということ。
【0041】
一実施形態において、クロック管理要請インターフェース224から出力されるクロック管理要請信号CLK REQが0であるならば(例えば、0の値を有する)、CMU 210にクロックディセーブル要請がなされる。さらに具体的に述べれば、プロセッサ220のパイプラインが遊休状態であり、ORゲート510の第1入力521が0になり、キャッシュ221が遊休状態あり、ORゲート510の第2入力522が0になり、キャッシュ一貫性トラフィックが伝送または受信されず、ORゲート510の第3入力523が0になり、他のデバイスがプロセッサ220に接続せず、ORゲート510の第4入力524が0になる場合、言い換えれば、ORゲート510の入力がいずれも0になる場合、ORゲート510の出力は、0になる。このとき、クロック管理要請判断部223は、プロセッサ220が遊休状態であると判断し、クロック管理要請インターフェース224を介して、クロック管理要請信号CLK REQが0であるクロックディセーブル要請をCMU 210に伝送することができる。
【0042】
一方、クロック管理要請インターフェース224から出力されるクロック管理要請信号CLK REQが1であるならば、CMU 210にクロックイネーブル要請がなされる。さらに具体的に述べれば、プロセッサ220のパイプラインが活性状態であり、ORゲート510の第1入力521が1になるか、キャッシュ221が活性状態であり、ORゲート510の第2入力522が1になるか、キャッシュ一貫性トラフィックが伝送または受信され、ORゲート510の第3入力523が1になるか、または他のデバイスがプロセッサ220に接続し、ORゲート510の第4入力524が1になる場合、言い換えれば、4個のORゲート510の入力521~524のうちいずれか一つでも1を満足する場合、ORゲート510の出力は、1になる。クロックイネーブル要請は、プロセッサ220のクロックがディセーブルの状態で発生するので、概してキャッシュ一貫性トラフィックが伝送または受信(例えば、プロセッサ220と、他の「別個の」デバイスとの通信)されるか、あるいは他のデバイスがプロセッサ220に接続する場合、イネーブル要請が伝送される。従って、プロセッサ220は、クロック管理要請インターフェース224を介して、クロック管理要請信号CLK REQが1であるイネーブル要請をCMU 210に伝送することができる。
【0043】
一実施形態によれば、他の「別個の」デバイスがプロセッサ220に接続し、プロセッサ220の動作状態を判断するのではなく、プロセッサ220に含まれたクロック管理要請判断部223が、プロセッサ220の遊休時点を判断する。また、プロセッサ220がCMU 210に直接接続され(例えば、1以上のハードウェアダイレクト構造的インターフェース、ハードウェア直接通信インターフェース、それらの組み合わせ、またはそのようなインターフェースを介する)、クロック信号の制御要請を直接(例えば、ハードウェア直接通信インターフェースを介する)伝送することにより、他のデバイスは、CMU 210の制御レジスタに、プロセッサ220のクロックを制御するための命令(command)を保存しない。従って、信号処理プロセスにおいて遅延が発生せず、クロックを即座にイネーブルまたはディセーブルにする。
【0044】
再び
図2の説明に戻れば、電子機器200は、バスを含み、クロック管理要請インターフェース224は、バスを介して、CMU 210と直接接続される。また、電子機器200は、バスを介して、プロセッサ220のキャッシュ221と、他デバイスに含まれたキャッシュとの間で、キャッシュ一貫性を支援することができる。
図6を参照し、さらに具体的に説明する。
【0045】
図6は、一実施形態によるクロック管理要請インターフェースと、キャッシュ一貫性インターフェースとを示す図である。
図6を参照すれば、該電子機器は、CMU 210、プロセッサ220及びデバイス230を含む。本明細書において「他のデバイス」は、「別個のデバイス」と相互交換的に指称される。また、前述のように、「プロセッサ」は「プロセッサ回路」と相互交換的に指称される。
【0046】
プロセッサ220は、キャッシュ221とクロック管理要請インターフェース224とを含み、キャッシュ221は、キャッシュ一貫性インターフェース610を含んでもよい。デバイス230も、キャッシュ232を含み、デバイス230に含まれたキャッシュ232も、キャッシュ一貫性インターフェース620を含んでもよい。他のデバイス230は、例えば、CPUでもあり、プロセッサ220は、GPUまたはDSPのような処理装置でもある。プロセッサ220は、メモリ(図示せず)に保存されたプログラム命令語の実行に基づいて、キャッシュ221のキャッシュ一貫性インターフェース610及びキャッシュ一貫性インターフェース620を実施することができる。該メモリは、
図1に図示されたメモリ130でもある。
【0047】
プロセッサ220のキャッシュ一貫性インターフェース610と、デバイス230のキャッシュ一貫性インターフェース620は、バス240を介して直接接続される。従って、電子機器200は、メモリを使用せず、キャッシュ間の直接接続を介して、ハードウェア的にキャッシュ一貫性を支援することができる。
【0048】
ハードウェア的にキャッシュ一貫性を支援する場合、従来には、プロセッサ220がスヌープトラフィックをサービスするために、常にクロックをイネーブルしていなければならなかった。しかし、一実施形態において、プロセッサ220がクロック管理要請インターフェース224を介して、CMU 210と直接接続され(例えば、任意の中間(intervening)デバイスを介して接続されない)CMU 210にクロック信号の制御要請を伝送することにより、ハードウェアキャッシュ一貫性を支援する環境においても、クロックゲーティングを行うことができ、動的電力消費を減らすことができる。
【0049】
再び
図2の説明に戻れば、CMU 210は、別個のデバイスによって制御されてもよい。CMU 210を制御する別個のデバイス(図示せず)は、CMU 210デバイスドライバを介して、CMU 210を制御することができる。さらに具体的には、CMU 210を制御する別個のデバイスは、CMU 210の制御レジスタ(control register)に接続(access)し、電子機器200に含まれた各デバイスのクロックを制御せよという命令(command)を保存することができる。CMU 210を制御する別個のデバイスは、
図1に図示されたCPUでもある。
【0050】
以上、電子機器200の構成について説明した。以下では、電子機器200の動作方法について説明する。
【0051】
図7は、一実施形態による、電子機器の動作方法を示すフローチャートである。
図7に図示された動作は、本明細書のプロセッサ、プロセッシングデバイスのうち、一部またはいずれによっても実施される。
図7を参照すれば、まず、710段階において、電子機器200は、プロセッサ220が遊休状態であるか、または活性状態であるかという動作状態を判断することができる。
【0052】
その後、720段階において、プロセッサ220の動作状態により、プロセッサ220が、直接CMU 210にクロック信号の制御信号要請を伝送する。710段階において、プロセッサ220の動作状態が遊休状態であると判断する場合、プロセッサ220は、CMU 210にクロックディセーブル要請を伝送することができる。一方、プロセッサ220の動作状態が活性状態であると判断する場合、プロセッサ220は、CMU 210にクロックイネーブル要請を伝送することができる。
【0053】
CMU 210は、プロセッサ220からクロックイネーブル要請を受信する場合、プロセッサ220に入力されるクロックをイネーブルにし、クロックディセーブル要請を受信する場合、プロセッサ220に入力されるクロックをディセーブルにする。しかし、クロックディセーブル要請を受信した時点と、直前クロックイネーブル時点との時間間隔が特定臨界時間以下である場合、CMU 210は、プロセッサ220に入力されるクロックをディセーブルにせず、イネーブルに維持することができる。
【0054】
図8は、一実施形態によるプロセッサの動作状態を判断する方法を示すフローチャートである。
図8に図示された方法は、本明細書のプロセッサ、プロセッシングデバイスのうち、一部またはいずれによっても実施される。
図8を参照すれば、まず、810段階において、プロセッサ220は、自身のパイプライン状態を判断する。810段階において、自身のパイプラインが活性状態であると判断する場合、プロセッサ220は、860段階に進み、CMU 210にクロックイネーブル要請を伝送する。810段階において、自身のパイプラインが遊休状態であると判断する場合、プロセッサ220は、820段階に進む。
【0055】
820段階において、プロセッサ220は、自身のキャッシュ221状態を判断する。820段階において、自身のキャッシュ221が活性化状態であると判断する場合、プロセッサ220は、860段階に進み、CMU 210にイネーブル要請を伝送する。810段階において、自身のキャッシュ221が遊休状態であると判断する場合、プロセッサ220は、830段階に進む。
【0056】
830段階において、プロセッサ220は、キャッシュ一貫性トラフィックが伝送または受信されるかということを判断する。830段階において、キャッシュ一貫性トラフィックが伝送または受信されると判断する場合、プロセッサ220は、860段階に進み、CMU 210にクロックイネーブル要請を伝送する。830段階において、キャッシュ一貫性トラフィックが伝送または受信されないと判断する場合、プロセッサ220は、840段階に進む。
【0057】
840段階において、プロセッサ220は、他のデバイスが自身に接続しているか否かということを判断する。840段階において、他のデバイスが自身に接続していると判断する場合、プロセッサ220は、860段階に進み、CMU 210にクロックイネーブル要請を伝送する。840段階において、他のデバイスが自身に接続していないと判断する場合、プロセッサ220は、850段階に進み、CMU 210にディセーブル要請を伝送する。
【0058】
図8で図示するプロセッサの動作状態を判断する方法は、1つの実施形態であり、他の方法で具現することも可能である。例えば、830段階、言い換えれば、キャッシュ一貫性トラフィックが伝送または受信されるかということを判断する段階が最も先に行われてもよい。または、840段階、言い換えれば、他のデバイスがプロセッサ220に接続しているか否かということを判断する段階が、キャッシュ221の動作状態を判断する820段階より先に行われてもよい。
【0059】
本実施形態による装置は、プロセッサ、プログラムデータを保存して実行するメモリ、ディスクドライブのような永久保存部(permanent storage)、外部装置と通信する通信ポート、タッチパネル・キー(key)・ボタンのようなユーザインターフェース装置などを含んでもよい。ソフトウェアモジュールまたはアルゴリズムによって具現される方法は、前記プロセッサ上で実行可能なコンピュータ読み取り可能コードまたはプログラム命令として、コンピュータ読み取り可能記録媒体上に保存される。ここで、コンピュータ読み取り可能記録媒体として、マグネチック記録媒体(例えば、ROM(read-only memory)、RAM(random access memory)、フロッピーディスク、ハードディスクなど)及び光学的判読媒体(例えば、CD-ROM(compact disc read only memory)、DVD(digital versatile disc))などがある。コンピュータ読み取り可能記録媒体は、ネットワークに接続されたコンピューターシステムに分散され、該分散方式で、コンピュータ可読なコードが保存されて実行される。該媒体は、コンピュータによって可読なものであり、メモリに保存され、プロセッサで実行される。
【0060】
一部例示的な実施形態は、機能的なブロック構成及び多様な処理段階で示される。かような機能ブロックは、特定機能を実行する多様な個数のハードウェア構成または/及びソフトウェア構成によっても具現される。例えば、一部例示的な実施形態は、1以上のマイクロプロセッサの制御、または他の制御装置によって多様な機能を実行することができる、メモリ、プロセッシング、ロジック(logic)、ルックアップテーブル(look-up table)のような直接回路構成を採用することができる。該構成要素が、ソフトウェアプログラミングまたはソフトウェア要素で実行されることと類似して、一部例示的な実施形態は、データ構造、プロセス、ルーチン、または他のプログラミング構成の組み合わせによって具現される多様なアルゴリズムを含み、C、C++、ジャバ(登録商標(Java))、アセンブラ(assembler)のようなプログラミング言語またはスクリプティング言語によっても具現される。機能的な側面は、1以上のプロセッサで実行されるアルゴリズムによっても具現される。また、一部例示的な実施形態は、電子的な環境設定、信号処理及び/またはデータ処理などのために、従来技術を採用することができる。「メカニズム」、「要素」、「手段」、「構成」のような用語は、汎用され、機械的であって物理的な構成として限定されるものではない。前述の用語は、プロセッサなどと連繋し、ソフトウェアの一連処理(routines)の意味を含む。
【0061】
一部例示的な実施形態において説明する特定実行は例示であり、いかなる方法によっても技術的範囲を限定するものではない。明細書の簡潔さのために、従来の電子的な構成、制御システム、ソフトウェア、前記システムの他の機能的な側面の記載は省略される。また、図面に図示された構成要素間の線の接続または接続部材は、機能的な接続、及び/または物理的または回路的な接続を例示的に示したものであり、実際の装置では、代替可能であったり追加されたりする多様な機能的な接続、物理的な接続または回路的な接続としても示される。
【0062】
本明細書(特に、特許請求の範囲)において、「前記」の用語、及びそれと類似した指示用語の使用は、単数及び複数のいずれにも該当する。また、範囲(range)を記載した場合、前記範囲に属する個別的な値を含み(それに反する記載がなければ)、詳細な説明において、前記範囲を構成する各個別的な値を記載した通りである。最後に、方法を構成する段階について、明白に順序を記載したり、それに反対したりする記載がなければ、前記段階は、適切な順序で行われる。必ずしも前述の段階の記載順序に限定されるものではない。全ての例、または例示的な用語(例えば、など)の使用は、単に技術的思想を詳細に説明するためのものであり、特許請求の範囲によって限定されない以上、前記例、または例示的な用語によって、範囲が限定されるものではない。また、当業者は、多様な修正、組み合わせ及び変更が付加された特許請求の範囲、またはその均等物の範疇内で、設計条件及びファクタによっても構成されるということが分かるであろう。
【産業上の利用可能性】
【0063】
本発明の、電子機器及びその動作方法は、例えば、デバイス関連の技術分野に効果的に適用可能である。
【符号の説明】
【0064】
100,200 電子機器
110 中央処理装置(CPU)
111,121,141,221,232 キャッシュ
120 デジタル信号処理装置(DSP)
130 メモリ
140 グラフィック処理装置(GPU)
150,210,310 クロック管理部(CMU)
160,240 バス
220,340 プロセッサ
222 状態レジスタ
222-1 プロセッサ状態レジスタ
222-2 キャッシュ状態レジスタ
223 クロック管理要請判断部
224 クロック管理要請インターフェース
230 デバイス
320 クロック生成部
330 ANDゲート
510 ORゲート
610,620 キャッシュ一貫性インターフェース