特許第5997029号(P5997029)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三星電子株式会社の特許一覧

特許5997029機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム
<>
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000002
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000003
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000004
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000005
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000006
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000007
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000008
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000009
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000010
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000011
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000012
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000013
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000014
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000015
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000016
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000017
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000018
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000019
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000020
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000021
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000022
  • 特許5997029-機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム 図000023
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5997029
(24)【登録日】2016年9月2日
(45)【発行日】2016年9月21日
(54)【発明の名称】機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム
(51)【国際特許分類】
   G06F 1/04 20060101AFI20160908BHJP
   G06F 1/32 20060101ALI20160908BHJP
   H03K 5/19 20060101ALI20160908BHJP
【FI】
   G06F1/04 575
   G06F1/32 Z
   H03K5/19 H
【請求項の数】21
【全頁数】26
(21)【出願番号】特願2012-268484(P2012-268484)
(22)【出願日】2012年12月7日
(65)【公開番号】特開2013-122759(P2013-122759A)
(43)【公開日】2013年6月20日
【審査請求日】2015年10月1日
(31)【優先権主張番号】10-2011-0133195
(32)【優先日】2011年12月12日
(33)【優先権主張国】KR
(31)【優先権主張番号】13/687637
(32)【優先日】2012年11月28日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
(74)【代理人】
【識別番号】100086368
【弁理士】
【氏名又は名称】萩原 誠
(72)【発明者】
【氏名】金 東 根
(72)【発明者】
【氏名】權 純 ▲チョル▼
(72)【発明者】
【氏名】金 時 永
(72)【発明者】
【氏名】李 宰 坤
(72)【発明者】
【氏名】許 ▲ジュン▼ 訓
【審査官】 佐賀野 秀一
(56)【参考文献】
【文献】 特開2011−238231(JP,A)
【文献】 特開2002−202833(JP,A)
【文献】 特開2005−339310(JP,A)
【文献】 特開2005−285093(JP,A)
【文献】 特開2007−148681(JP,A)
【文献】 特開2002−182776(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/04
G06F 1/32
H03K 5/19
(57)【特許請求の範囲】
【請求項1】
少なくとも1つの機能ブロックを含むSoCの動作方法において、
前記少なくとも1つの機能ブロックの動作状態が、活性化状態、非活性化状態、または、非活性化状態から活性化状態への遷移状態のいずれであるかを検出する段階と、検出された動作状態が活性化状態から非活性化状態に変化した場合には、前記少なくとも1つの機能ブロックの動作周波数を減少させる段階と、
検出された動作状態が非活性化状態から活性化状態に変化した場合には、前記少なくとも1つの機能ブロックの動作周波数を増加させる段階と、を含み、
前記減少させる動作周波数は、0より大きな周波数であり、
検出された動作状態が遷移状態にあるときには、前記少なくとも1つの機能ブロックの動作周波数を、非活性化モード動作周波数からウェークアップモード動作周波数に増加させる第1段階と、前記少なくとも1つの機能ブロックの動作状態が前記非活性化状態から前記活性化状態に変わった時点から、第1タイム区間が経過すると、前記ウェークアップモード動作周波数から活性化モード動作周波数に増加させる第2段階とからなることを特徴とするSoCの動作方法。
【請求項2】
前記動作周波数を減少させる段階は、
前記少なくとも1つの機能ブロックの前記非活性化状態に関連した分周比で前記SoCの基準クロックの周波数を分周する段階を含み、
前記少なくとも1つの機能ブロックの前記動作周波数を、前記分周した周波数に減少させることを特徴とする請求項1に記載のSoCの動作方法。
【請求項3】
前記SoCの動作方法は、
前記少なくとも1つの機能ブロックの前記動作周波数を前記活性化モード動作周波数にセッティングする段階をさらに含み、
前記活性化モード動作周波数は、前記少なくとも1つの機能ブロックの前記活性化状態に関連した第1クロック周波数であり、
前記少なくとも1つの機能ブロックの前記動作周波数を、前記活性化モード動作周波数から前記非活性化モード動作周波数に減少させ、
前記非活性化モード動作周波数を、前記少なくとも1つの機能ブロックの前記非活性化状態に関連した第2クロック周波数とすることを特徴とする請求項1に記載のSoCの動作方法。
【請求項4】
機能ブロックを含むSoCの動作方法において、
前記機能ブロックの動作状態が、活性化状態非活性化状態、または非活性化状態から活性化状態への遷移状態のいずれであるかを検出する段階と、
検出された動作状態が、活性化状態から非活性化状態に変化した場合には、前記機能ブロックの動作周波数を減少させる段階と、
検出された動作状態が、非活性化状態から活性化状態に変化した場合には、前記機能ブロックの動作周波数を増加させる段階と、
検出された動作状態が遷移状態にあるときには、前記機能ブロックの動作周波数を非活性化モード動作周波数からウェークアップモード動作周波数に増加させる第1段階と、前記機能ブロックの動作状態が前記非活性化状態から前記活性化状態に変わった時点から、第1タイム区間が経過すると、前記ウェークアップモード動作周波数から活性化モード動作周波数に増加させる第2段階と、を含み、
前記減少させる動作周波数は、0より大きな周波数であることを特徴とするSoCの動作方法。
【請求項5】
少なくとも1つの機能ブロックと、前記少なくとも1つの機能ブロックの動作周波数を制御するクロックコントローラとを含むSoCにおいて、
前記クロックコントローラは、
前記少なくとも1つの機能ブロックの動作状態が、活性化状態、非活性化状態、または、非活性化状態から活性化状態への遷移状態のいずれかであるかを検出し、
検出された動作状態が、活性化状態から非活性化状態に変化した場合には、前記少なくとも1つの機能ブロックの動作周波数を減少させ、
検出された動作状態が、非活性化状態から活性化状態に変化した場合には、前記少なくとも1つの機能ブロックの動作周波数を増加させ、
検出された動作状態が遷移状態にあるときには、前記少なくとも1つの機能ブロックの動作周波数を、非活性化モード動作周波数からウェークアップモード動作周波数に増加させ、前記少なくとも1つの機能ブロックの動作状態が前記非活性化状態から前記活性化状態に変わった時点から、第1タイム区間が経過すると、前記少なくとも1つの機能ブロックの動作周波数を前記ウェークアップモード動作周波数から活性化モード動作周波数に増加させるよう制御し、
前記減少させる動作周波数は、0より大きな周波数であることを特徴とするSoC。
【請求項6】
前記クロックコントローラは、
前記少なくとも1つの機能ブロックの前記動作周波数をセッティングするために、前記少なくとも1つの機能ブロックの前記非活性化状態に関連した分周比によって、前記SoCの基準クロックの周波数を分周する分周回路を含むことを特徴とする請求項5に記載のSoC。
【請求項7】
前記クロックコントローラは、
前記少なくとも1つの機能ブロックの前記動作状態を検出するモード検出部と、
前記少なくとも1つの機能ブロックの検出された前記動作状態に基づいて、複数の分周比のうちの何れか1つの分周比を選択する選択回路と、を含み、
前記選択された分周比に基づいて、前記機能ブロックの前記動作周波数をセッティングすることを特徴とする請求項5に記載のSoC。
【請求項8】
前記モード検出部は、
前記少なくとも1つの機能ブロックの検出された前記動作状態に基づく選択信号を生成し、
前記選択回路は、
前記選択信号に基づいて、前記複数の分周比のうちの何れか1つの分周比を選択することを特徴とする請求項7に記載のSoC。
【請求項9】
前記複数の分周比を保存するレジスタブロックをさらに含み、
前記選択回路は、
前記レジスタブロックから前記複数の分周比のうちの何れか1つの分周比を選択することを特徴とする請求項7に記載のSoC。
【請求項10】
前記クロックコントローラは、
前記少なくとも1つの機能ブロックの前記動作周波数をセッティングするために、前記選択された分周比で基準クロックの周波数を分周する分周回路を含むことを特徴とする請求項9に記載のSoC。
【請求項11】
前記モード検出部は、
前記少なくとも1つの機能ブロックの検出された前記動作状態に基づく選択信号を生成し、
前記選択回路は、
前記選択信号に基づいて、前記レジスタブロックの複数の分周比のうちの何れか1つの分周比を選択することを特徴とする請求項9に記載のSoC。
【請求項12】
前記少なくとも1つの機能ブロックの前記動作状態を検出するモード検出部と、
複数の分周比を保存するルックアップテーブルと、をさらに含み、
前記ルックアップテーブルは、
検出された前記動作状態に基づいて、前記複数の分周比のうちの何れか1つを出力し、
前記クロックコントローラは、
出力された前記分周比に基づいて、前記少なくとも1つの機能ブロックの前記動作周波数をセッティングすることを特徴とする請求項5に記載のSoC。
【請求項13】
機能ブロックの動作状態が、活性化状態、非活性化状態、または、非活性化状態から活性化状態への遷移状態のいずれであるかを検出し、検出された動作状態に基づいて、選択信号を生成させるモード検出回路と、
前記モード検出回路の前記選択信号によって、前記機能ブロックの動作周波数をセッティングする動作周波数セッティング回路と、を含み、
前記動作周波数セッティング回路は、
前記選択信号が、活性化状態から非活性化状態への変化を示す場合、前記機能ブロックの動作周波数を減少させ、
前記選択信号が、非活性化状態から活化状態への変化を示す場合、前記機能ブロックの動作周波数を増加させ、
前記選択信号が、遷移状態を示す場合、前記機能ブロックの動作周波数を非活性化モード動作周波数から第1ウェークアップモード動作周波数に増加させ、
前記機能ブロックの動作状態が、前記非活性化状態から前記活性化状態に変わった時点から、第1タイム区間が経過すると、前記第1ウェークアップモード動作周波数から活性化モード動作周波数に増加させ、
前記減少させる動作周波数は、0より大きな周波数であることを特徴とするSoC。
【請求項14】
前記動作周波数セッティング回路は、
前記機能ブロックの前記動作周波数を前記第1ウェークアップモード動作周波数から第2ウェークアップモード動作周波数に増加させ、
前記第1タイム区間が経過した後、
前記第2ウェークアップモード動作周波数から前記活性化モード動作周波数に増加させることを特徴とする請求項13に記載のSoC。
【請求項15】
前記動作周波数セッティング回路は、
前記機能ブロックの前記動作状態を前記非活性化状態から前記活性化状態に変化させた後、第2タイム区間が経過すると、
前記第1タイム区間が経過する前に、前記動作周波数を前記第1ウェークアップモード動作周波数から前記第2ウェークアップモード動作周波数に増加させ、
前記第1タイム区間が経過すると、前記動作周波数を前記第2ウェークアップモード動作周波数から前記活性化モード動作周波数に増加させることを特徴とする請求項14に記載のSoC。
【請求項16】
前記動作周波数セッティング回路は、
前記機能ブロックの前記動作周波数をセッティングするために、前記機能ブロックの動作状態に関連した分周比によって、前記SoCの基準クロックの周波数を分周する分周回路を含むことを特徴とする請求項13に記載のSoC。
【請求項17】
前記動作周波数セッティング回路は、
前記選択信号に基づいて、複数の分周比のうちの何れか1つを選択する選択回路を含み、
前記選択された分周比に基づいて、前記機能ブロックの前記動作周波数をセッティングすることを特徴とする請求項13に記載のSoC。
【請求項18】
前記動作周波数セッティング回路は、
前記機能ブロックの前記動作周波数をセッティングするために、前記選択された分周比で基準クロックの周波数を分周する分周回路を含むことを特徴とする請求項17に記載のSoC。
【請求項19】
前記動作周波数セッティング回路は、
前記複数の分周比を保存するレジスタブロックをさらに含み、
前記選択回路は、前記レジスタブロックの前記複数の分周比から何れか1つを選択することを特徴とする請求項17に記載のSoC。
【請求項20】
複数の分周比を保存し、前記複数の分周比のうち、前記選択信号に応答して選択した何れか1つの分周比を出力するルックアップテーブルをさらに含み、
前記動作周波数セッティング回路は、選択された前記分周比に基づいて、前記機能ブロックの前記動作周波数をセッティングすることを特徴とする請求項13に記載のSoC。
【請求項21】
前記動作周波数セッティング回路は、
前記機能ブロックの前記動作周波数をセッティングするために、前記選択された分周比に基づいて、基準クロックの周波数を分周する分周回路をさらに含むことを特徴とする請求項20に記載のSoC。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、SoC(System on Chip)に係り、より具体的には、SoC内の機能ブロックに供給される動作クロックを制御するクロック制御方法、それを具現したSoC、及びそれを含む半導体システムに関する。
【背景技術】
【0002】
SoCは、既存のさまざまな機能を有した複雑なシステムを1つのシステムとして具現した技術集約的半導体技術である。SoCは、システム全体を制御するプロセッサと、そのプロセッサによって制御される多様なIP(Intellectual Properties:以下、IPと称する)とで構成される。ここで、IPとは、SoCに集積されうる回路(circuit)、ロジック(logic)、またはこれらの組み合わせを意味する。また、前記回路または前記ロジックには、コード(code)が保存されうる。
【0003】
一般的に、多様な多数のIPを含むSoCを備えたシステムは、バッテリによって動作するので、低電力設計が重要視される。PLL(Phase Locked Loop)などによって、基準クロックがSoCに供給されれば、多数のIPのそれぞれは、その機能によって、多様な周波数を有する動作クロックによって動作する。
多数のIPは、その機能によって、それぞれ活性化モード(active)でもあり、非活性化モード(idle)でもある。何れか1つのIPが非活性化モードである時、他の1つのIPが活性化モードでもあり、少なくとも2つ以上のIPが同時に活性化モードまたは非活性化モードでもある。
多数のIPのうちの少なくとも何れか1つが、非活性化モードで動作を行わない時にも、非活性モードのIPに動作する時のような活性化モードの動作クロックを供給し続ければ、SoCは、不要な電力を消費する。このような電力浪費は、数百MHzないし数GHzの周波数を使うIPの場合、バッテリの寿命に大きな影響を与える。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第7,171,577号公報
【特許文献2】特開2008−123402号公報
【特許文献3】特開2004−206480号公報
【特許文献4】米国特許第7,594,126号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明が解決しようとする技術的課題は、 機能ブロックのそれぞれの状態によって不必要な電力を消費しない機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システムを提供することである。
【課題を解決するための手段】
【0006】
前述した技術的課題を解決するために、少なくとも1つ以上の機能ブロックを含むSoCのクロック制御方法は、前記少なくとも1つの機能ブロックが、活性化モード(active mode)から非活性化モード(idle mode)に変わる動作状態(operating state)に基づいて、前記少なくとも1つの機能ブロックの動作周波数を減少させる段階を含む。減少させる動作周波数は、0より大きな周波数である。
前記動作周波数を減少させる段階は、前記少なくとも1つの機能ブロックの非活性化状態に対する分周比で前記SoCの基準クロックの周波数を分周する段階を含みうる。前記少なくとも1つの機能ブロックの動作周波数を、分周した周波数に減少させる。
【0007】
前記SoCの動作方法は、前記少なくとも1つの機能ブロックの前記動作周波数を活性化モード動作周波数にセッティングする段階をさらに含み、前記活性化モード動作周波数は、前記少なくとも1つの機能ブロックの前記活性化状態に対する第1クロック周波数であり、前記少なくとも1つの機能ブロックの動作周波数を、前記活性化モード動作周波数から非活性化モード動作周波数に減少させ、前記非活性化モード動作周波数を、前記少なくとも1つの機能ブロックの前記非活性化状態に対する第2クロック周波数とする。
前記SoCの動作方法は、前記少なくとも1つの機能ブロックが、前記非活性化状態から前記活性化状態に変化する動作状態に応答して、前記少なくとも1つの機能ブロックの前記動作周波数を増加させる段階をさらに含む。
【0008】
前述した技術的課題を解決するために、本発明の他の実施形態による機能ブロックを含むSoCの動作方法は、前記機能ブロックの動作状態が、活性化状態から非活性化状態に、第1変化するかを検出する段階と、検出された前記第1変化に応答して、前記機能ブロックの動作周波数を減少させる段階と、前記機能ブロックの動作状態が、前記非活性化状態から前記活性化状態に、第2変化するかを検出する段階と、検出された前記第2変化に応答して、前記機能ブロックの動作周波数を増加させる段階と、を含み、減少させる前記動作周波数は、0より大きな周波数である。
【0009】
前述した技術的課題を解決するために、本発明のさらに他の実施形態によるSoCは、活性化状態から非活性化状態に、少なくとも1つの機能ブロックの動作状態が変化すると、前記少なくとも1つの機能ブロックの動作周波数を減少させるクロックコントローラを含み、減少させる前記動作周波数は、0より大きな周波数である。
前記クロックコントローラは、前記少なくとも1つの機能ブロックの動作周波数をセッティングするために、前記少なくとも1つの機能ブロックの前記非活性化状態に関連した分周比によって、前記SoCの基準クロックの周波数を分周する分周回路をさらに含む。
前記クロックコントローラは、前記少なくとも1つの機能ブロックが、前記非活性化状態から前記活性化状態に変わる動作状態に応答して、前記少なくとも1つの機能ブロックの前記動作周波数を増加させる。
【0010】
前記動作周波数を、前記活性化状態に関連した動作周波数であるウェークアップモード動作周波数に増加させ、前記クロックコントローラは、前記少なくとも1つの機能ブロックが、前記非活性化状態から前記活性化状態に変化してから、既定の第1タイム区間が経過すると、前記少なくとも1つの機能ブロックの動作周波数を前記ウェークアップモード動作周波数から前記活性化モード動作周波数に増加させる。
前記クロックコントローラは、前記少なくとも1つの機能ブロックの動作状態を検出するモード検出部と、前記少なくとも1つの機能ブロックの検出された動作状態に基づいて、複数の分周比のうちの何れか1つの分周比を選択する選択回路と、を含み、前記選択された分周比に基づいて、前記機能ブロックの前記動作周波数をセッティングする。
【0011】
前記モード検出部は、前記少なくとも1つの機能ブロックの検出された動作状態に基づく選択信号を生成し、前記選択回路は、前記選択信号に基づいて、複数の分周比のうちの何れか1つの分周比を選択することができる。
前記クロックコントローラは、前記複数の分周比を保存するレジスタ回路をさらに含み、前記選択回路は、前記レジスタ回路から前記何れか1つの分周比を選択することができる。
前記クロックコントローラは、前記機能ブロックの動作周波数をセッティングするために、選択された分周比で基準クロックの周波数を分周する分周回路を含む。
前記モード検出部は、前記機能ブロックの検出された動作状態に基づく選択信号を生成し、前記選択回路は、前記選択信号に基づいて、前記レジスタ回路の複数の分周比のうちの何れか1つの分周比を選択することができる。
【0012】
他の一例として、前記クロックコントローラは、前記少なくとも1つの機能ブロックの動作状態を検出するモード検出部と、複数の分周比を保存するルックアップテーブルと、を含みうる。
前記ルックアップテーブルは、検出された動作状態に基づいて、前記複数の分周比のうちの何れか1つを出力し、前記クロックコントローラは、出力された前記分周比に基づいて、前記少なくとも1つの機能ブロックの動作周波数をセッティングする。
前述した技術的課題を解決するために、本発明のさらに他の一実施形態による機能ブロックを含むSoCは、機能ブロックの動作状態の変化を検出し、検出された動作状態に基づいて、選択信号を生成させるモード検出回路と、前記モード検出回路の前記選択信号によって、前記機能ブロックの動作周波数をセッティングする動作周波数セッティング回路と、を含み、前記動作周波数セッティング回路は、前記選択信号が、前記機能ブロックが活性化状態から非活性化状態に変わることを知らせれば、前記機能ブロックの動作周波数を減少させ、前記選択信号が、前記機能ブロックが前記非活性化状態から前記活性化状態に変わることを知らせれば、前記機能ブロックの動作周波数を増加させ、前記減少させる動作周波数は、0より大きな周波数である。
【0013】
前記動作周波数セッティング回路は、前記選択信号が、前記機能ブロックが前記非活性化状態から前記活性化状態に変わることを知らせれば、前記機能ブロックの動作周波数を第1周波数から第2周波数に増加させ、前記機能ブロックが、前記非活性化状態から前記活性化状態に変わった時点から第1タイム区間が経過すると、前記機能ブロックの動作周波数を前記第2周波数から第3周波数に増加させる。
前記動作周波数セッティング回路は、前記機能ブロックが、前記非活性化状態から前記活性化状態に変わった時点から第2タイム区間が経過すると、前記機能ブロックの動作周波数を前記第3周波数から第4周波数に増加させる。
【0014】
前記動作周波数セッティング回路は、前記機能ブロックの動作周波数をセッティングするために、前記機能ブロックの動作状態に関連した分周比によって、前記SoCの基準クロックの周波数を分周する分周回路を含む。
前記動作周波数セッティング回路は、前記選択信号に基づいて、複数の分周比のうちの何れか1つを選択する選択回路をさらに含み、前記選択された分周比に基づいて、前記機能ブロックの動作周波数をセッティングする。
前記動作周波数セッティング回路は、前記機能ブロックの前記動作周波数をセッティングするために、前記選択された分周比で基準クロックの周波数を分周する分周回路をさらに含む。
【0015】
前記動作周波数セッティング回路は、前記複数の分周比を保存するレジスタ回路をさらに含み、前記選択回路は、前記レジスタ回路の前記複数の分周比から何れか1つを選択する。
前記動作周波数セッティング回路は、複数の分周比を保存し、前記複数の分周比のうち、前記選択信号に応答して選択した何れか1つの分周比を出力するルックアップテーブルをさらに含み、出力された前記分周比に基づいて、前記機能ブロックの動作周波数をセッティングする。
前記動作周波数セッティング回路は、前記機能ブロックの動作周波数をセッティングするために、前記選択された分周比に基づいて、基準クロックの周波数を分周する分周回路をさらに含む。
【発明の効果】
【0016】
本発明のSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システムによれば、多数の機能ブロックがある場合、機能ブロックのそれぞれの状態によって、各機能ブロックに供給される動作クロックを別途に制御することが出来るので、浪費電力を減少させることができる。また、機能ブロックが、非活性化状態から活性化状態に変わる時に起こりうる電圧降下による誤動作を防止することができる。
【図面の簡単な説明】
【0017】
図1】本発明の一実施形態によるSoCのブロック図。
図2図1に示されたSoCの一実施形態を具体的に示すブロック図。
図3図2に示されたモード検出部の動作モードを有限状態マシンで示すダイヤグラム。
図4図2に示されたSoCの一実施形態を具体的に示すブロック図。
図5図4に示されたモード検出部の動作モードを有限状態マシンで示すダイヤグラム。
図6】本発明の一実施形態によるSoCの信号タイミング図。
図7】本発明の他の実施形態によるSoCの信号タイミング図。
図8】本発明のさらに他の一実施形態によるSoCの信号タイミング図。
図9図1に示されたSoCの他の一実施形態を具体的に示すブロック図。
図10】本発明の一実施形態によるクロック制御方法を示すフローチャート。
図11図1に示されたSoCの他の一実施形態を具体的に示すブロック図。
図12図1に示されたSoCのさらに他の一実施形態を具体的に示すブロック図。
図13図12に示されたモード検出部の動作モードを有限状態マシンで示すダイヤグラム。
図14図1に示されたSoCのさらに他の一実施形態を具体的に示すブロック図。
図15図1に示されたSoCのさらに他の一実施形態を具体的に示すブロック図。
図16】本発明の実施形態によるSoCを含んだ半導体システムのブロック図。
図17図1に示されたSoCを含む半導体システムの一実施形態を示す図。
図18図1に示されたSoCを含むコンピュータシステムの一実施形態を示す図。
図19図1に示されたSoCを含むコンピュータシステムの他の実施形態を示す図。
図20図1に示されたSoCを含むコンピュータシステムのさらに他の実施形態を示す図。
図21】機能ブロックの状態を考慮せずに動作クロックを印加した場合の電流及び電圧グラフ。
図22】機能ブロックの状態を考慮して動作クロックを印加した場合の電流及び電圧グラフ。
【発明を実施するための形態】
【0018】
以下、添付した図面を参照して、本発明を詳しく説明する。
図1は、本発明の一実施形態によるSoCのブロック図である。図1を参照すると、SoC10は、クロック生成器110、クロックコントローラ100、及び機能ブロック120を含む。SoC10は、単一のチップとして製造されて、1つのパッケージとして具現可能である。図1では、説明の便宜上、クロック生成器110、クロックコントローラ100、及び1つの機能ブロック120を含むSoC10が示されているが、これに限定されるものではない。
クロック生成器110は、SoC10の動作に必要な基準周波数を有した基準クロックCLKinを生成させる。クロック生成器110は、基準クロックCLKinをクロックコントローラ100に出力する。
【0019】
クロックコントローラ100は、活性化モードから非活性化モードに少なくとも1つの機能ブロック120の動作状態(state)が変化すれば、少なくとも1つの機能ブロック120の動作周波数を減少させる。
クロックコントローラ100は、機能ブロック120の動作状態が、活性化状態から非活性化状態(例えば、非活性化(idle)状態)に変わることを検出する。検出された変化によって、機能ブロック120の動作周波数を減少させる。この際、減少する動作周波数は、0以上の周波数である。クロックコントローラ100は、機能ブロック120の動作状態が、非活性化状態から活性化状態に変わることを検出する。検出された変化によって、機能ブロック120の動作周波数を増加させる。
クロックコントローラ100は、機能ブロック120の状態をモニタリングして、該モニタリングされた状態によって、動作クロック信号CLKoutの動作周波数をセッティングする。クロックコントローラ100は、機能ブロック120に動作クロック信号CLKoutを出力する。
クロックコントローラ100は、機能ブロック120の状態が非活性化モード時、基準周波数から既定の第1周波数(非活性化モード周波数)に動作周波数を変更する。
【0020】
機能ブロック120が、非活性化状態から活性化状態に変わる時、クロックコントローラ100は、第2周波数(活性化モード周波数)または第3周波数(ウェークアップモード周波数)を有した動作クロック信号CLKoutを機能ブロック120に出力する。
一例として、クロックコントローラ100は、機能ブロック120の状態が活性化モード時、基準周波数から既定の第2周波数(活性化モード周波数)に動作周波数を変更する。
一例として、クロックコントローラ100は、機能ブロック120の状態がウェークアップモード時、基準周波数から既定の少なくとも1つの第3周波数(ウェークアップモード周波数)に動作周波数を変更する。
クロックコントローラ100は、機能ブロック120の状態が当該モードに相応する動作周波数を有した動作クロックCLKoutを当該機能ブロックに出力する。第1周波数ないし第3周波数は、0より大きく、互いに異なる周波数であって、非活性化モードの第1周波数(または、非活性化モード周波数)、ウェークアップモードの第3周波数(または、ウェークアップモード周波数)、活性化モードの第2周波数(または、活性化モード周波数)に行くほど周波数がさらに大きくなる。すなわち、第1周波数ないし第3周波数は、0より大きく、互いに異なる値を有する。第2周波数は、第1周波数より大きく、前記第3周波数より小さい。
クロックコントローラ100は、分周器20、及び分周器コントローラ30を含む。
【0021】
分周器コントローラ30は、機能ブロック120の状態(State)をモニタリングして、該モニタリングされた状態によって、機能ブロック120に分周比Divを出力する。分周器20は、出力された分周比Divによって、基準周波数を分周した動作周波数をセッティングして、この動作周波数を有した動作クロックCLKoutを出力する。
分周器コントローラ30は、機能ブロック120から出力される状態信号Stateをモニタリングすることができる。
【0022】
機能ブロックの状態のモニタリングは、一例として、機能ブロック120から出力される状態信号が、ロジックハイ(high、または、‘1’)であれば、機能ブロック120の状態を活性化モードと判断し、ロジックロー(Low、または、‘0’)であれば、機能ブロック120の状態を非活性化モードと判断する。
機能ブロック120は、SoC10内のデータ処理動作を行う。図1には、1つの機能ブロックのみが示されているが、これに限定されず、SoC10は、多数の機能ブロックを含みうる。
【0023】
機能ブロック120は、例えば、SoC10全体を制御するプロセッサまたはそのプロセッサによって制御される多様な機能素子のうちの何れか1つであり得る。機能素子は、例えば、CPU(Central Processing Unit)、CPUに含まれた複数のコア(cores)のそれぞれ、GPU(Graphic Processing Unit)、MFC(Multi−Format Codec)、ビデオモジュール(例えば、カメラインターフェース(Camera Interface)、JPEG(Joint Photographic Experts Group)プロセッサ、ビデオプロセッサ(Video Processor)、またはミキサ(Mixer)、など)、オーディオシステム(Audio System)、ドライバ(Driver)、ディスプレイドライバ(Display Driver)、揮発性メモリ(Volatile Memory Device)、不揮発性メモリ(Non−volatile Memory)、メモリコントローラ(Memory Controller)、キャッシュメモリ(Cache Memory)、シリアルポート(Serial Port)、システムタイマ(System Timer)、ウォッチドッグタイマ(Watch Dog Timer)、またはアナログ−デジタルコンバータ(Analog−to−Digital Converter)などを含みうる。各機能ブロック120は、互いに異なるクロック周波数(clock frequency)を有するために、1つのSoC10内には、多様な動作クロックCLKoutが使われる。
【0024】
SoC10は、集積回路(integrated circuit)として具現可能である。また、SoC10は、携帯電話(mobile phone)、スマートフォン(smart phone)、タブレットPC(tablet Personal Computer)、またはPDA(Personal Digital Assistant)、MP3プレーヤ、ラップトップコンピュータのような移動通信装置内に内蔵されうる。実施形態によって、SoC10は、IT装置(Information Technology Device)または携帯用電子装置(Portable Electronic Device)に内蔵されうる。
【0025】
図2は、図1に示されたSoCの一実施形態を具体的に示すブロック図である。
図2を参照すると、分周器コントローラ30は、多数のレジスタを含んだレジスタブロック32、モード検出部35、及び選択器31を含む(nは、3以上の自然数)。
説明の便宜上、第1周波数、第3周波数、第2周波数に行くほど周波数の大きさは次第に大きくなり、これにより、既定の第1分周比、第3分周比、及び第2分周比は、次第に小さくなると仮定する。この際、第1分周比は非活性化モード分周比、第3分周比はウェークアップモード分周比、第2分周比は活性化モード分周比である。
すなわち、ウェークアップモード周波数は、非活性化モード周波数より大きく、活性化モード周波数は、ウェークアップモード周波数より大きい。ウェークアップモード分周比は、非活性化モード分周比より小さく、活性化モード分周比は、ウェークアップモード分周比より小さい。しかし、本発明の実施形態が、これに限定されず、実施形態によって、多様に具現可能である。
【0026】
多数のレジスタ32は、多数の分周比Divをそれぞれ保存する。一例として、n個の分周比Divがある場合、レジスタReg 0〜Reg n−1ごとに1つの分周比を保存することができる。
モード検出部35は、有限状態マシン(Finite State Machine;FSM)の形態で具現可能である。これについての具体的な説明は、後述する。例えば、モード検出部35は、機能ブロック120の状態をモニタリングする。一例として、機能ブロック120から出力される状態信号Stateを通じてモニタリングすることができる。モード検出部35は、モニタリングされた状態によって、複数の状態(例えば、非活性化モード、ウェークアップモード、活性化モード)のうちの何れか1つの状態に入り、選択器31に選択信号Selを出力する。選択器31は、選択信号Selによって、複数の分周比D0ないしDn−1のうちの1つの分周比Divを出力する。
【0027】
一例として、モード検出部35は、機能ブロック120が非活性化モードにあるか(まだ非活性化モードではないが)、非活性化モードに変わっていると検出されれば、第1選択信号Sel 0を出力する。選択器31は、第1選択信号Sel 0に相応する非活性化モード分周比D0をレジスタ0(Reg 0)から出力する。分周器20は、非活性化モード分周比D0で基準周波数を分周した非活性化モード周波数を動作周波数として設定して、動作クロックCLKoutを出力する。
機能ブロックが、活性化モードから非活性化モードになれば、動作クロックが、当該機能ブロックの状態に応答して、活性化モード周波数から非活性化モード周波数になるので、SoC内の浪費電力を減らしうる。
【0028】
一例として、機能ブロック120が活性化モードであれば、モード検出部35は、活性化モードと判断して、第2選択信号Sel n−1を出力する。選択器31は、第2選択信号Sel n−1に相応する活性化モード分周比Dn−1をレジスタn−1(Reg n−1)から出力する。分周器20は、活性化モード分周比Dn−1で基準周波数を分周した活性化モード周波数を動作周波数として設定して、動作クロックCLKoutを機能ブロック120に出力する。
機能ブロック120が非活性化モードにあり、非活性化モードから活性化モードに遷移する時、状態信号Stateも遷移する(例えば、ロジックローからロジックハイに)。機能ブロック120の状態変化によって、モード検出部35は、少なくとも1つの第3選択信号Sel kを出力する。選択器31は、この少なくとも1つの第3選択信号Sel kによって、ウェークアップモード分周比Dkを出力する。この際、kは、1ないしn−2の間の自然数のうちの何れか1つであって、n−2は、Nであると言える。
【0029】
機能ブロック120が、非活性化状態から活性化状態に変わった時点から既定のカウントタイムが経過するまで少なくとも1つのウェークアップモードと判断して、少なくとも1つの第3選択信号Sel kを出力する。分周器20は、基準周波数をウェークアップ分周比Dkで分周したウェークアップモード周波数を動作周波数にセッティングして、動作クロックCLKoutを出力する。
動作クロックCLKoutの動作周波数は、機能ブロック120が非活性化状態から活性化状態に転換された時点から既定のカウントタイムが経過するまでウェークアップモード周波数に保持される。すなわち、例えば、動作クロックCLKoutは、モード検出部35がウェークアップモードから活性化モードに転換されると知らせるまでウェークアップモード周波数に保持される。
【0030】
モード検出部35は、各ウェークアップモードごとにそれぞれあらかじめ設定される少なくとも1つのカウントタイムをカウントする少なくとも1つのカウンタを含みうる。カウントタイムがカウントされる間に少なくとも1つの各ウェークアップモード周波数を動作周波数として設定し、あらゆるカウントタイムが経過されれば、活性化モード周波数を動作周波数として設定することができる。その結果、機能ブロックが非活性化モードから再び活性化モードになる時、動作クロックが非活性化モード周波数から急に活性化モード周波数になると、突然の電圧降下(Voltage Drop)によって、SoC10が誤動作する場合がある。したがって、機能ブロック120は、ウェークアップモード時、一定カウントタイムの間はウェークアップモード周波数で動作し、電流が漸次的に大きくなるように印加されて、突然の電圧降下なしに動作する。
【0031】
図3は、図2に示されたモード検出部の動作モードを有限状態マシンで示すダイヤグラムである。
図3を参照すると、モード検出部35は、機能ブロック120のモードのそれぞれに相応して、当該分周比Divを選択するための選択信号Selを出力する。これを有限状態マシンで表すことができる。
有限状態マシンは、知られているように、有限数の状態のうちの何れか1つのみを取れるマシンである。マシンは、一回当り1つの状態しか取れず、この際、マシンが処した状態は、現在状態と呼ばれる。有限状態マシンは、トリガイベントまたは条件(condition)によって、1つの状態から他の状態に遷移することができる。1つの状態から他の状態への変化は、“トランジション(transition)”、すなわち、遷移とも呼ばれる。特別な有限状態マシンは、各現在状態から可能なトランジション状態及び各トランジションのためのトリガリング条件のリストによって定義されうる。有限状態マシンは、よく知られているように、本発明の属する技術分野の通常の知識を有した当業者が、理解可能な範囲で多様に応用され、理解されうる。
【0032】
有限状態マシンは、機能ブロック120の多数個(例えば、n個)の制限されたモードが存在し、その状態が特定の条件に噛み合って、互いに連結されるものであって、ハードウェア、ソフトウェアまたはハードウェア及びソフトウェアの結合で具現可能である。
機能ブロック120の初期状態が、活性化モードとする。この際、モード検出部35は、活性化モード分周比Dn−1を選択するための第1選択信号Sel nを出力する。選択器41は、第1選択信号Sel nによって、レジスタn−1(Reg n−1)を選択して、活性化モード分周比Dn−1を分周器20に出力する。
モード検出部35は、機能ブロック120の状態が活性化状態から非活性化状態に変われば、非活性化モードと判断し、非活性化モード分周比D0を選択するための非活性化モード選択信号Sel 0を出力する。選択器31は、非活性化モード選択信号Sel0によって、レジスタ0(Reg 0)を選択して、非活性化モード分周比D0を分周器20に出力する。
【0033】
機能ブロック120が、非活性化状態から活性化状態に変われば、モード検出部35は、変化を検出し、既定の時間の間にウェークアップモードに進入する。モード検出部35は、機能ブロック120が非活性化状態から活性化状態に転換される時点から、既定のカウントタイムが経過するまでウェークアップモードと判断する。モード検出部35は、ウェークアップモードでカウントタイムが経過するまでに少なくとも1つのウェークアップモード選択信号Sel kを出力する。選択器31は、ウェークアップモード選択信号Sel kによって、レジスタk(Reg k)を選択して、各ウェークアップモード分周比Dkを分周器20に出力する。
モード検出部35は、少なくとも1つ以上のウェークアップモードwakeup 1ないしwakeup n−2を置くことができる。ウェークアップモードは、既定の順序により、既定の順序とは、ユーザの設定または設計工程上の必要に応じて変わり、例えば、非活性化モード周波数から活性化モード周波数までの周波数移送(transient)順序であり得る。それぞれのウェークアップモードごとに既定のそれぞれのカウントタイムcounter 1ないしconter n−2が存在する。
【0034】
モード検出部35は、少なくとも1つ以上の各ウェークアップモード周波数を既定の各カウントタイムの間にのみ動作周波数に印加する。カウントタイムがいずれも経過すれば、モード検出部35は、機能ブロック120の状態を活性化モードと判断して、活性化モード選択信号Sel n−1を出力する。
図4は、図2に示されたSoCの一実施形態を具体的に示すブロック図であり、図5は、図4に示されたモード検出部の動作モードを有限状態マシンで示すダイヤグラムである。
図4及び図5を参照すると、まず、互いに異なる分周比が合計3個(すなわち、n=3)と仮定する。すなわち、基準クロックCLKinの基準周波数を分周する非活性化モード分周比R0、ウェークアップモード分周比R1、活性化モード分周比R2がある。
【0035】
機能ブロック120の初期状態が活性化モードとする。この際、モード検出部45は、活性化モード分周比R2を選択するための活性化モード選択信号Sel 2を出力する。選択器41は、活性化モード選択信号Sel 2によって、レジスタ1(Reg 1)を選択して、活性化モード分周比R2を分周器20に出力する。
機能ブロック120の状態が非活性化モードと判断されれば、モード検出部45は、非活性化モード分周比R0を選択するための非活性化モード選択信号Sel 0を出力する。選択器41は、前記非活性化モード選択信号Sel 0によって、レジスタ0(Reg 0)を選択して、非活性化モード分周比R0を分周器20に出力する。
機能ブロック120の状態が非活性化モードから活性化モードに遷移して、ウェークアップモード(Wakeup)と判断されれば、モード検出部45は、ウェークアップモード分周比R1を選択するためのウェークアップモード選択信号Sel 1を出力する。選択器41は、ウェークアップモード選択信号Sel 1によって、レジスタ1(Reg 1)を選択して、ウェークアップモード分周比R1を分周器20に出力する。一例として、ウェークアップモード周波数は、活性化モード周波数の1/2倍であり得る。
【0036】
図6は、本発明の一実施形態によるSoCの信号タイミング図である。
図6を参照すると、機能ブロック120が活性化状態での動作クロック信号CLKoutの動作周波数は、機能ブロック120が非活性化状態での動作周波数より大きい。
クロックコントローラ100は、機能ブロック120から出力される状態State信号をモニタリングすることができる。一例として、状態信号がロジックハイであれば、機能ブロック120の状態を活性化モードと判断し、ロジックローであれば、機能ブロック120の状態を非活性化モードと判断することができる。機能ブロック120が活性化モードである時、クロックコントローラ100は、活性化モード周波数を動作周波数にセッティングし、機能ブロック120に活性化モード周波数の動作クロックCLKoutを印加する。
【0037】
機能ブロック120が、非活性化モードIdleに転換されれば、クロックコントローラ100は、非活性化モード周波数を動作周波数にセッティングし、機能ブロック120に非活性化モード周波数の動作クロックCLKoutを印加する。
機能ブロック120が、再び活性化モードActiveに転換されれば、クロックコントローラ100は、非活性化モード周波数を活性化モード周波数として再び設定して、機能ブロック120に非活性化モード周波数の動作クロックで活性化モード周波数の動作クロックCLKoutを印加する。
その結果、機能ブロック120は、活性化モード周波数ではない非活性化モード周波数の動作クロックで動作して、浪費電力を減少させることができる。また、場合によっては、不可避に機能ブロック120の動作クロックCLKoutをゲーティングすることができない場合に、持続的に非活性化モード周波数の動作クロックを供給することによって、持続的に諸機能を行うように保持することができる。
【0038】
図7は、本発明の他の実施形態によるSoCの信号タイミング図である。
図7を参照すると、機能ブロック120の活性化モードActive及び非活性化モードIdleである時、クロックコントローラ100の動作は、図6と同一である。説明の便宜上、図6との差異点を中心に説明する。機能ブロック120が、非活性化モードIdleから活性化モードActiveに転換される時、クロックコントローラ100は、図6と異なって、ウェークアップモードが追加される。
【0039】
ウェークアップモードとは、非活性化状態から活性化状態に転換される時点から、既定のカウントタイムの間のモードを言う。ウェークアップモードでは、ウェークアップモード周波数を非活性化モード周波数ないし活性化モード周波数範囲内の周波数を動作周波数として設定する。この際、ウェークアップモード周波数は、活性化モード周波数の1/2倍であり得るが、これに限定されず、多様な実施形態によって、レジスタから中間周波数に相応する分周比Divを選択して、多様に設定可能である。
非活性化Idleモードの機能ブロック120に急に活性化モード周波数の動作クロックCLKoutが印加されれば、機能ブロック120に印加される電流が急に増加して、電圧降下が起こりうる。したがって、非活性化モード周波数と活性化モード周波数との中間段階である第3周波数を一定カウントタイムの間に印加する。その結果、機能ブロック120は、非活性化モード周波数から活性化モード周波数に突然の遷移によって起こる電圧降下なしで動作して、誤動作が防止される。
【0040】
図8は、本発明のさらに他の一実施形態によるSoCの信号タイミング図である。
図8を参照すると、機能ブロック120の活性化モードActive及び非活性化モードIdleである時、クロックコントローラ100の動作は、図6及び図7と同一である。説明の便宜上、図7との差異点を中心に説明する。
機能ブロック120が、非活性化状態Idleから活性化状態Activeに転換される時、クロックコントローラ100は、図5と異なって、ウェークアップモードが、多数の段階で存在する。即ち、機能ブロック120は、図6と異なって、少なくとも2つ以上のウェークアップモードを有しうる。説明の便宜上、ウェークアップモード周波数は、少なくとも2つ以上のウェークアップモード周波数を含むとする。
【0041】
より具体的に説明すれば、機能ブロック120が、非活性化状態Idleから活性化状態Activeに転換される時点から既定の第1カウントタイムWakeup1の間は、クロックコントローラ100は、第1ウェークアップモード周波数で動作クロックを印加する。
第1カウントタイムWakeup 1が満了(expired)する時点から既定の第2カウントタイムWakeup 2の間は、クロックコントローラ100は、第2ウェークアップ周波数で動作クロックを印加する。この際、第1ウェークアップ周波数と第2ウェークアップ周波数とは、非活性化モード周波数ないし活性化モード周波数の範囲内であって、第1ウェークアップ周波数は、第2ウェークアップ周波数より小さいことがある。すなわち、モード検出部35によって少なくとも2つ以上の互いに異なるウェークアップ周波数が、それぞれのカウントタイムの間に設定される。
前記実施形態では、2つのウェークアップモード周波数のみを例示しているが、これに限定されるものではなく、多様な実施形態によって、2つ以上のウェークアップモード周波数で具現することができる。
【0042】
図9は、図1に示されたSoCのさらに他の一実施形態を具体的に示すブロック図である。説明の便宜上、図2との差異点を中心に説明する。
図9を参照すると、クロックコントローラ100は、分周器コントローラ50、及び分周器20を含む。分周器コントローラ50は、モード検出部55、及びルックアップテーブル(LookUp Table;以下、LUTと称する)53を含む。
モード検出部55は、有限状態マシン(FSM)の形態で具現可能である。一例として、モード検出部55は、機能ブロックの状態Stateをモニタリングする。モード検出部55は、モニタリングされた状態に基づいて、複数の状態(非活性化モード、ウェークアップモード、活性化モード)のうちの何れか1つに該当する選択信号Dを出力する。すなわち、モード検出部55は、図2のモード検出部35と同様に動作する。
【0043】
ルックアップテーブル(LUT)53は、多数の分周比を保存し、選択信号Sel Dによって、分周比のうちの何れか1つを出力する。
一例として、ルックアップテーブル53は、多数の分周比を保存し、選択信号Dによって、非活性化モード時、非活性化モード分周比を出力し、選択信号Dによって、活性化モード時、活性化モード分周比を出力し、ウェークアップモード時、少なくとも1つのウェークアップモード分周比を出力する。非活性化モード分周比ないし活性化モード分周比は、0ではない互いに異なる数であって、非活性化モード分周比は、ウェークアップモード分周比より大きく、ウェークアップモード分周比は、活性化モード分周比より大きい。
【0044】
図10は、本発明の一実施形態によるクロック制御方法を示すフローチャートである。
図10を参照すると、まず、モード検出部35は、機能ブロック120が非活性モードであるか否かをモニタリングする(ステップS10)。
もし、機能ブロック120が、非活性化状態であれば、モード検出部35は、機能ブロックが非活性化状態に留まっているか(ステップS11)、または非活性化状態から活性化状態に遷移される瞬間であるか否かを判断する(ステップS12)。機能ブロック120が、非活性化状態から活性化状態に遷移される瞬間ではなければ、モード検出部35は、非活性化モードと判断して、非活性化モード選択信号Sel 0を出力する(ステップS13)。そして、クロックコントローラ100は、非活性化モードに相応して基準クロックの周波数を非活性化モード分周比で分周する(ステップS14)。この際、クロックコントローラは、S14段階の非活性化モード周波数を動作周波数にセッティングし(ステップS15)、前記動作周波数を有した動作クロックを機能ブロック120に供給する(ステップS24)。
【0045】
モード検出部35は、機能ブロックが、前記各動作クロックCLKoutによって動作しても、引き続き機能ブロックの状態をモニタリングして、その状態による動作クロックを供給できるように制御する。
再びS11段階に戻って、機能ブロック120が非活性化状態であり、非活性化状態から活性化状態に転換された時点であれば(ステップS12)、モード検出部35は、ウェークアップモードと判断し(ステップS16)、ウェークアップモード選択信号を出力する。クロックコントローラ100は、カウンタ(図3に図示)のカウントタイムを初期化し(ステップS17)、モード検出部35は、ウェークアップモードに相応して基準クロックの周波数をウェークアップモード分周比で分周する(ステップS18)。クロックコントローラは、S18段階のウェークアップモード周波数を動作周波数にセッティングし(ステップS19)、既定のカウントタイムが経過するまで(ステップS20)、前記動作周波数を有した動作クロックを機能ブロック120に供給する(ステップS24)。前記カウントタイムが経過すれば、クロックコントローラ100は、基準クロックの周波数を活性化モード分周比で分周し(ステップS22)、活性化モード周波数を動作周波数にセッティングして(ステップS23)、機能ブロック120に供給する(ステップS24)。
【0046】
モード検出部35は、機能ブロックが、前記各動作クロックCLKoutによって動作しても、引き続き前記機能ブロックの状態をモニタリングして、その状態による動作クロックを供給できるように制御する。
再びS11段階に戻って、機能ブロック120が活性化状態であれば、モード検出部35は、活性化モードと判断する(ステップS21)。そして、活性化モードに相応して基準クロックの周波数を前記活性化モード分周比で分周する(ステップS22)。クロックコントローラ100は、S21段階から分周された結果である第2周波数を動作周波数として設定し(ステップS23)、前記動作周波数を有した動作クロックを機能ブロックに供給する(ステップS24)。
モード検出部35は、機能ブロックが、前記各動作クロックCLKoutによって動作しても、引き続き前記機能ブロックの状態をモニタリングして、その状態による動作クロックを供給できるように制御する。
【0047】
図11は、図1に示されたSoCの他の一実施形態を具体的に示すブロック図である。
図11を参照すると、SoC10″は、クロックコントローラ100′を含む。クロックコントローラ100′は、分周器コントローラ30′、及びクロック信号マルチプレクサ1120を含む。分周器コントローラ30′は、モード検出部35を含む。SoC10″は、また少なくとも1つの機能ブロック120、及び複数のクロック生成器110a、110b、110cを含む。モード検出部35は、図2に示されたモード検出部35と同一または類似しているので、説明の便宜上、具体的な説明は省略する。
図2のクロックコントローラ100のように、図11のクロックコントローラ100′は、機能ブロック120の状態をモニタリングし、機能ブロック120のモニタリングされた状態によって、動作クロックCLKoutの動作周波数をセッティングする。クロックコントローラ100′は、機能ブロック120にセッティングされた周波数の動作クロックCLKoutを出力する。
【0048】
前述したように、クロックコントローラ100′は、分周器コントローラ30′、及びクロック信号マルチプレクサ1120を含む。分周器コントローラ30′は、機能ブロックの状態をモニタリングし、該モニタリングされた状態に基づいた選択信号Selを出力する。クロック信号マルチプレクサ1120は、モード検出部35の選択信号Selに基づいて、複数のクロック信号CLOCK A、CLOCK B、CLOCK Cのうちの何れか1つを選択して、動作クロックCLKoutに出力する。
一例として、分周器コントローラ30′は、機能ブロック120から出力される状態信号Stateによって、機能ブロック120の状態をモニタリングすることができる。
【0049】
もし、状態信号Stateがロジックハイ(または、‘1’)であれば、分周器コントローラ30′は、機能ブロック120が活性化モードであると判断する。しかし、もし、状態信号Stateがロジックロー(または、‘0’)であれば、分周器コントローラ30′は、機能ブロック120が非活性化モードであると判断する。
図11のSoC10″は、複数のクロック信号生成器110aないし110cを含む。各クロック信号生成器は、複数のクロック信号CLOCK AないしCLOCK Cのうちの何れか1つのクロック信号のみを生成させる。それぞれのクロック信号生成器は、非活性化モード周波数、活性化モード周波数、及びウェークアップモード周波数のそれぞれに相応する周波数のクロック信号を生成させる。非活性化モード周波数、活性化モード周波数、及びウェークアップモード周波数は、図1ないし図10で説明した通りである。
【0050】
図12は、図1に示されたSoCのさらに他の一実施形態を具体的に示すブロック図である。図12は、図2のSoCと構成が類似しているが、電圧検出部31をさらに含む。
図12を参照すると、分周器コントローラ30″は、レジスタブロック32、モード検出部35′、及び選択器31を含む。レジスタブロック32及び選択器31は、図2に示されたものと同一または類似しているので、以下、説明の便宜上、具体的な説明は省略する。
モード検出部35′は、図2に示されたモード検出部35と同じ原理で動作する。選択器31は、モード検出部35′の選択信号Selによって、複数の分周比D0ないしDn−1のうちの1つの分周比Divを出力する。
例えば、モード検出部35′が、機能ブロック120が非活性化モードであると判断した場合、モード検出部35′は、非活性化選択信号Sel 0を出力する。選択器31は、非活性化選択信号Sel 0によって、レジスタ0(Reg 0)から非活性化モード分周比D0を受信して出力する。分周器20は、非活性化モード分周比D0で基準クロックの周波数を分周して、非活性化モード周波数を機能ブロックの動作周波数CLKoutにセッティングする。
【0051】
一例として、機能ブロック120が、活性化状態から非活性化状態に変われば、機能ブロックの動作周波数CLKoutも状態変化によって、活性化モード周波数から非活性化モード周波数に変わる。その結果、SoC10での浪費電力が減らしうる。
モード検出部35′が、機能ブロック120が活性化状態にあると判断すれば、モード検出部35′は、活性化モード選択信号Sel n−1を出力する。選択器31は、活性化モード選択信号Sel n−1に基づいて、レジスタn−1(Reg n−1)から受信した活性化モード分周比Dn−1を出力する。分周器20は、機能ブロックの動作クロックCLKoutの動作周波数に活性化モード周波数をセッティングする。活性化モード周波数は、基準周波数を活性化モード分周比で分周したものである。
【0052】
機能ブロック120が、非活性化モードから活性化モードに変わる時、モード検出部35′は、ウェークアップモードと判断して、少なくとも1つのウェークアップモード選択信号Sel kを出力することができる。選択器31は、ウェークアップモード選択信号Sel kに基づいて、レジスタk(Reg k)から受信したウェークアップモード分周比Dkを出力することができる。分周器20は、機能ブロックの動作クロックCLKoutの動作周波数にウェークアップモード周波数をセッティングする。ウェークアップモード周波数は、基準周波数をウェークアップモード分周比で分周したものである。
図12の分周器コントローラ30″は、電圧検出器1231をさらに含みうる。電圧検出器1231は、機能ブロック120の電圧レベルをモニタする。動作クロックの動作周波数が、少なくとも1つのウェークアップモード周波数のうちの何れか1つにセッティングされた後、機能ブロックの電圧レベルが安定化すれば、電圧レベル安定性信号を出力する。電圧レベル安定性信号に応答して、モード検出部35′は、活性化モード(または、次のウェークアップモード段階)に遷移し、活性化モード選択信号Sel n−1を出力して、活性化モード周波数を動作クロックの動作周波数にセッティングする。
【0053】
図13は、図12に示されたモード検出部の動作モードを有限状態マシンで示すダイヤグラムである。モード検出部35′は、機能ブロックの現在状態によって分周比Divを選択するために、選択信号Selを出力する。
図13を参照すると、有限状態マシン(FSM)は、機能ブロックの状態に対する複数のモード(合計n−2、有限個)を含む。各モードは、ある条件によって互いに連結されている。有限状態マシンは、ハードウェア、ソフトウェアまたはその結合で具現可能である。
一例として、機能ブロック120の初期状態が活性化状態であれば、モード検出部35′は、活性化モード分周比Dn−1を選択するために、活性化モード選択信号を出力する。活性化モード選択信号によって、選択器31は、レジスタn−1(Reg n−1)を選択し、分周器20に活性化モード分周比Dn−1を出力する。
【0054】
機能ブロック120が、活性化状態から非活性化状態に変化する時、モード検出部35′は、機能ブロック120が非活性化状態であることを検出し、非活性化モード分周比D0を選択するために、非活性化モード選択信号Sel 0を出力する。非活性化モード選択信号によって、選択器31は、レジスタ0(Reg 0)を選択し、分周器20に非活性化モード分周比D0を出力する。
機能ブロック120が、非活性化状態から活性化状態に変化する時、モード検出部35′は、変化を検出してウェークアップモードと判断する。ウェークアップモードである間に、モード検出部35′は、少なくとも1つのウェークアップモード選択信号Selkを出力する。少なくとも1つのウェークアップモード選択信号Sel kによって、選択器31は、レジスタk(Reg k)を選択し、分周器20にウェークアップモード分周比Dkを出力する。この際、少なくとも1つのウェークアップモード選択信号Selkは、ウェークアップモード選択信号Sel 1ないしSel n−2のうちの1つであり得る(nは、分周比の個数を表わす整数であり、n−2は、ウェークアップモード内の段階(stage)の個数を表わす)。
【0055】
ウェークアップモードは、1つまたはそれ以上Wakeup 1ないしWakeupn−2の段階を有する。ウェークアップモード段階の数は、あらかじめ設定されうる。順序(order)は、ユーザの設定またはデザインプロセッシング要求によって変わり、非活性化モード周波数から活性化モード周波数に変化する順序で具現可能である。
一例として、モード検出部35′によるウェークアップモード段階の間の変化(transition)は、図12に示したように、電圧レベル検出部1231によってトリガされうる。モード検出部35′は、機能ブロック120の電圧レベルが安定化されるまでウェークアップモード周波数を動作周波数として印加する。すなわち、モード検出部35′は、SoC10の状態が変化するまで(例えば、安定化)、動作周波数として各ウェークアップモード段階に相応する周波数を印加する。モード検出部35′が、最後(final)のウェークアップモード段階に至って、機能ブロック120の電圧レベルが安定化すれば、モード検出部35′は、活性化モードに進入する。そして、モード検出部35′は、活性化モード選択信号Sel n−1を出力する。
【0056】
図14は、図1に示されたSoCのさらに他の一実施形態を具体的に示すブロック図である。図14のSoCは、図2のSoCと類似しているが、クロックコントローラ100は、動作周波数セッティング回路60を含む。
図14を参照すると、クロックコントローラ100は、モード検出回路35と動作周波数セッティング回路60とを含む。モード検出回路35は、機能ブロック120の動作状態の変化を検出し、該検出された動作状態の変化によって、選択信号を生成させる。動作周波数セッティング回路60は、選択信号によって、機能ブロック120の動作周波数を設定する。
動作周波数セッティング回路60は、選択信号Selが活性化状態から非活性化状態に変われば、機能ブロック120の動作周波数を減少させる。この際、減少する動作周波数は、0より大きい。動作周波数セッティング回路60は、選択信号Selが非活性化状態から活性化状態に変われば、機能ブロック120の動作周波数を増加させる。
【0057】
他の一例として、選択信号Selが、非活性化状態から活性化状態に変われば、動作周波数セッティング回路60は、機能ブロック120の動作周波数を第1周波数から第2周波数に増加させる。選択信号Selが、非活性化状態から活性化状態に変わった時点から第1タイム区間が満了すれば、動作周波数セッティング回路60は、機能ブロック120の動作周波数を第2周波数から第3周波数に増加させる。動作周波数セッティング回路60は、選択信号Selが非活性化状態から活性化状態に変わった時点から第2タイム区間が満了すれば、機能ブロック120の動作周波数を前記第3周波数から第4周波数に増加させる。
動作周波数セッティング回路60は、分周回路63、選択回路61、及びレジスタブロック62を含む。分周回路63、選択回路61、及びレジスタブロック62は、図2に示されたものと同一であるか、同様に動作を行うので、説明の便宜上、具体的な説明は省略する。
【0058】
図15は、図1に示されたSoCのさらに他の一実施形態を具体的に示すブロック図である。図15に示されたSoCは、図14のSoCと類似しているが、動作周波数セッティング回路70が、ルックアップテーブル71を含む。
図15を参照すると、ルックアップテーブル71は、複数の分周比を保存し、モード検出回路55の選択信号Dによって、複数の分周比のうちの何れか1つを出力する。モード検出回路55及び分周回路72は、図2に示されたものと同一であるか、同様に動作を行うので、説明の便宜上、具体的な説明は省略する。
【0059】
図16は、本発明の実施形態によるSoCを含んだ半導体システムのブロック図である。
図16を参照すると、半導体システム1000は、携帯電話、スマートフォン、タブレットコンピュータ(tablet computer)、PDA、EDA(Enterprise Digital Assistant)、デジタルスチルカメラ(DigitalStill Camera)、デジタルビデオカメラ(Digital Video Camera)、PMP(Portable Multimedia Player)、PDN(Personal Navigation DeviceまたはPortable Navigation Device)、携帯用ゲームコンソール(Handheld Game Console)、または電子ブック(e−book)のように携帯用装置(Handheld Device)として具現可能である。
【0060】
半導体システム1000は、SoC200、オシレータ210、外部メモリ装置220、及びディスプレイデバイス230を含む。SoC200は、アプリケーションプロセッサ(Application Processor)であり得る。アプリケーションプロセッサは、半導体システム1000の動作を全般的に制御することができる。
SoC200は、クロックコントローラ100、クロック生成器110、CPU120、GPU125、LCDコントローラ130、ROM(Read Only Memory)140、RAM(Random Access Memory)160、メモリコントローラ150、及びバスを含みうる。SoC200は、示した構成要素以外にも、他の構成要素、例えば、電源管理ユニット(power management unit)、TVプロセッサなどをさらに含みうる。機能ブロックは、CPU120、GPU125、メモリコントローラ150、及び周辺回路制御ユニット(図示せず)などを意味する。
【0061】
CPU120は、メモリ150または220に保存されたプログラム及び/またはデータを処理または実行することができる。例えば、CPU120は、クロックコントローラ100から出力された動作クロックに応答して、前記プログラム及び/または前記データを処理または実行することができる。
CPU120は、マルチコアプロセッサ(multi−core processor)として具現可能である。前記マルチコアプロセッサは、2つまたはそれ以上の独立した実質的なプロセッサ(‘コア’と呼ばれる)を有する1つのコンピューティングコンポーネント(computing component)であり、プロセッサのそれぞれは、プログラム命令(program instructions)を読み取って実行することができる。マルチコアプロセッサは、多数の加速器を同時に駆動することができるので、マルチコアプロセッサを含むデータ処理システムは、マルチ加速(multi−acceleration)を行うことができる。
【0062】
GPU125は、CPU120の負荷を減少させ、グラフィック処理と関連したプログラム命令を読み取って行うことができる。GPU125は、メモリインターフェース(図示せず)を通じてメモリ220から出力されたデータを受信するか、GPU125によって処理されたデータをメモリ220に伝送する。例えば、GPU125は、クロックコントローラ100から出力された動作クロックに応答して、前記プログラム及び/またはデータを処理または実行することができる。
メモリ220に保存されたプログラム及び/またはデータは、必要に応じてCPU120またはGPU125内のメモリにロード(load)されうる。
ROM140は、永久的なプログラム及び/またはデータを保存することができる。ROM140は、EPROM(Erasable Programmable Read−Only Memory)またはEEPROM(Electrically Erasable Programmable Read−Only Memory)として具現可能である。
【0063】
RAM160は、プログラム、データ、または命令(instructions)を一時的に保存することができる。例えば、メモリ220に保存されたプログラム及び/またはデータは、CPU120の制御またはROM140に保存されたブーティングコード(booting code)によって、RAM160に一時的に保存することができる。RAM160は、DRAM(dynamic RAM)またはSRAM(static RAM)として具現可能である。
メモリコントローラ150は、外部メモリ装置220とインターフェースするためのブロックである。メモリコントローラ150は、メモリ装置220の動作を全般的に制御し、またホストとメモリ装置220との間の諸般のデータ交換を制御する。例えば、メモリコントローラ150は、ホストの要請に応じてメモリコントローラ150を制御して、データを書き込み/読み出す。
ここで、ホストは、CPU120、LCDコントローラ130のようなマスタ装置であり得る。
【0064】
メモリ装置220は、データを保存するための保存場所であって、OS(Operating System)、各種のプログラム、及び各種のデータを保存することができる。メモリ装置220は、DRAMであり得るが、これに限定されるものではない。例えば、メモリ装置220は、不揮発性メモリ装置(フラッシュメモリ、PRAM、MRAM、ReRAM、またはFeRAM装置)でもあり得る。本発明の他の実施形態では、メモリ装置220は、SoC200の内部に備えられる内蔵メモリであり得る。
各構成要素は、システムバスを通じて互いに通信することができる。
ディスプレイデバイス230は、機能ブロック120にロードされたマルチメディアをディスプレイすることができる。本実施形態で、ディスプレイデバイス230は、LCDデバイスであるが、本発明の実施形態が、これに限定されるものではない。例えば、ディスプレイデバイスは、LED、OLEDデバイス、あるいは他種のデバイスであり得る。
ディスプレイデバイスコントローラ130は、ディスプレイデバイス230の動作を制御する。
【0065】
図17は、図1に示されたSoCを含む半導体システムの一実施形態を示す。
図17を参照すると、半導体システム400は、図1に示されたSoC10、アンテナ401、無線送受信器403、入力装置405、及びディスプレイ407を含む。
無線送受信器403は、アンテナ401を通じて無線信号を送受信することができる。例えば、無線送受信器403は、アンテナ401を通じて受信された無線信号をSoC10で処理される信号に変更することができる。
したがって、SoC10は、無線送受信器403から出力された信号を処理し、該処理された信号をディスプレイ407に伝送しうる。また、無線送受信器403は、SoC10から出力された信号を無線信号に変更し、該変更された無線信号をアンテナ401を通じて外部装置に出力することができる。
入力装置405は、SoC10の動作を制御するための制御信号またはSoC10によって処理されるデータを入力することができる装置であって、タッチパッド(touchpad)とコンピュータマウス(computer mouse)のようなポインティング装置(pointing device)、キーパッド(keypad)、またはキーボードとして具現可能である。
【0066】
図18は、図1に示されたSoCを含むコンピュータシステムの一実施形態を示す。図18を参照すると、図1に示されたSoC10を含むコンピュータシステム500は、PC(Personal Computer)、ネットワークサーバ(Network Server)、タブレット(tablet)PC、ネットブック(net−book)、eリーダ(e−reader)、PDA、PMP、MP3プレーヤ、またはMP4プレーヤとして具現可能である。
コンピュータシステム500は、SoC10、メモリ装置501とメモリ装置501のデータ処理動作を制御することができるメモリコントローラ502、ディスプレイ503、及び入力装置504を含む。
SoC10は、入力装置504を通じて入力されたデータによって、メモリ装置501に保存されたデータをディスプレイ503を通じてディスプレイすることができる。例えば、入力装置504は、タッチパッドまたはコンピュータマウスのようなポインティング装置、キーパッド、またはキーボードとして具現可能である。SoC10は、コンピュータシステム500の全般的な動作を制御し、メモリコントローラ502の動作を制御することができる。
実施形態によって、メモリ装置501の動作を制御することができるメモリコントローラ502は、SoC10の一部として具現され、またSoC10と別途のチップとして具現可能である。
【0067】
図19は、図1に示されたSoCを含むコンピュータシステムの他の実施形態を示す。図19を参照すると、図1に示されたSoC10を含むコンピュータシステム600は、イメージ処理装置(image process device)、例えば、デジタルカメラまたはデジタルカメラ付き携帯電話またはスマートフォンとして具現可能である。
コンピュータシステム600は、SoC10、メモリ装置601とメモリ装置601のデータ処理動作、例えば、ライト動作またはリード動作を制御することができるメモリコントローラ602を含む。また、コンピュータシステム600は、イメージセンサ603、及びディスプレイ604をさらに含む。
コンピュータシステム600のイメージセンサ603は、光学イメージをデジタル信号に変換し、該変換されたデジタル信号は、SoC10またはメモリコントローラ602に伝送される。SoC10の制御によって、前記変換されたデジタル信号は、ディスプレイ604を通じてディスプレイされるか、またはメモリコントローラ602を通じてメモリ装置601に保存することができる。
また、メモリ装置601に保存されたデータは、SoC10またはメモリコントローラ602の制御によって、ディスプレイ604を通じてディスプレイされる。実施形態によって、メモリ装置601の動作を制御することができるメモリコントローラ602は、SOC10の一部として具現され、またSoC10と別個のチップとして具現可能である。
【0068】
図20は、図1に示されたSoCを含むメモリシステムのさらに他の実施形態を示す。図20を参照すると、メモリシステム700は、SSD(Solid State Drive)のようなデータ処理装置として具現可能である。
メモリシステム700は、多数のメモリ装置701、多数のメモリ装置701のそれぞれのデータ処理動作を制御することができるメモリコントローラ702、DRAMのような揮発性メモリ装置703、メモリコントローラ702とホスト704との間で送受信するデータを揮発性メモリ装置703に保存することを制御するSoC10を含みうる。
本発明は、またコンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現することが可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存されるあらゆる種類の記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ROM、RAM、CD−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ保存装置などがある。
また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータで読み取り可能なコードとして保存されて実行可能である。そして、本発明を具現するための機能的な(functional)プログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマによって容易に推論されうる。
【0069】
図21は、機能ブロックの状態を考慮せずに動作クロックを印加した場合の電流及び電圧グラフであり、図22は、機能ブロックの状態を考慮して動作クロックを印加した場合の電流及び電圧グラフである。
図21を参照すると、機能ブロック120の状態を考慮せずに動作クロックを印加した場合、電圧降下Aが見られる。しかし、図22に示したように、機能ブロック120が、非活性化モードから活性化モードに転換時、第3周波数の動作クロックを印加する場合、機能ブロック120に電流Vが徐々に印加されて、電圧降下Bの幅が減少する。
また、機能ブロックの状態を考慮せずに動作クロックを印加した場合、非活性化モード周波数で急に大きな活性化モード周波数の動作クロックが印加され、図16の電流Iスロープ(slope)が急上昇する。しかし、図22に示したように、機能ブロック120が、非活性化モードから活性化モードに転換時、ウェークアップモード周波数の動作クロックをカウントタイムの間に印加する場合、機能ブロック120に電流Iが徐々に印加されて、電流スロープが比較的緩やかに上昇する。その結果、機能ブロック120は、大きな電圧降下Aまたは電流スロープの急上昇による誤動作なしに動作することができる。
【産業上の利用可能性】
【0070】
本発明は、機能ブロックを含むSoCのクロック制御方法、それを具現したSoC、及びそれを含む半導体システム関連の技術分野に適用可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22