(57)【要約】消費電力は、電力ゲート制御を用いて低減し得るが、この場合、漏れ電流を低減するために、電力が回路ブロック又は回路ブロックの一部から除去される。一実施形態では、電力が回路から除去又は部分的に除去される場合、状態を保持することが可能な改良型状態保持フリップフロップを用いる。他の実施形態では、電力が回路から除去又は部分的に除去される場合、状態を保持することが可能な改良型状態保持バッファを用いる。状態保持フリップフロップ及びバッファは、漏れ電流を低減しながらも状態保持を可能にするために用い得る。また、例えば、状態保持フリップフロップ及びバッファを用いて、電力を低減し状態を保持する様々な方法を開示する。例えば、ソフトウェア、ハードウェア、又はソフトウェア及びハードウェアの組合せによる方法を用いて、状態を保持しつつディープスリープ又はアイドルモードに入り得る。
2007535031.tif 000002
【特許請求の範囲】
【請求項１】
状態保持フリップフロップが含まれる回路であって、同フリップフロップには、
入力及び出力ノードと、
マスタラッチ及びスレーブラッチの２つのラッチと、が含まれ、
各ラッチは、前記入力及び出力ノードと直列に接続された回路要素を含み、前記ラッチの内の第１番目は、電力が前記ラッチの内の第２番目から切り離される電力管理モードの時に前記フリップフロップの状態を保持するように構成される回路。
【請求項２】
請求項１に記載の回路において、前記フリップフロップには、更に、
クロック信号及び電力ゲート制御表示信号を受信するように接続されたスイッチコントローラであって、前記電力ゲート制御表示信号が第１の値を有する場合、前記クロック信号に依存する第１組のスイッチ制御値を生成し、また、前記電力ゲート制御表示信号が第２の値を有する場合、前記クロック信号とは独立した第２組のスイッチ制御値を生成する、前記スイッチコントローラが含まれる回路。
【請求項３】
請求項２に記載の回路において、前記フリップフロップには、更に、
前記入力ノードと前記マスタラッチとの間に接続された第１スイッチと、
前記マスタラッチと前記スレーブラッチとの間に接続された第２スイッチと、が含まれ、前記スイッチコントローラは、前記第１及び第２スイッチにスイッチ制御信号を提供するように接続される回路。
【請求項４】
請求項３に記載の回路であって、
前記マスタラッチには、相互結合型インバータ及び第３スイッチが含まれ、前記インバータ及び前記第３スイッチの内の１つは前記第１スイッチに接続され、前記第３スイッチは、前記スイッチコントローラからスイッチ制御信号を受信するように接続され、
前記スレーブラッチには、相互結合型インバータ及び第４スイッチが含まれ、前記スレーブラッチの前記インバータの内の１つ及び前記第４スイッチは前記第２スイッチに接続され、前記スレーブラッチの各インバータは前記出力ノードに接続され、前記第４スイッチは、前記スイッチコントローラからスイッチ制御信号を受信するように接続される回路。
【請求項５】
請求項４に記載の回路であって、
前記スイッチコントローラは、第１の値を有する前記クロック信号及び第１の値を有する前記電力ゲート制御表示信号に応答して、前記第１及び第４スイッチを第１スイッチ状態に制御するように、また、前記第２及び第３スイッチを第２スイッチ状態に制御するように構成され、
前記スイッチコントローラは、第２の値を有する前記クロック信号及び前記第１の値を有する前記電力ゲート制御表示信号に応答して、前記第１及び第４スイッチを前記第２状態に制御するように、また、前記第２及び第３スイッチを前記第１状態に制御するように構成され、
前記スイッチコントローラは、第２の値を有する前記電力ゲート制御表示信号に応答して、前記第１及び第３スイッチを第１状態に制御するように、また、前記第３及び第４スイッチを第２状態に制御するように構成される回路。
【請求項６】
請求項１に記載の回路であって、前記フリップフロップは、更に、
クロック信号及び電力ゲート制御表示信号を受信するように接続されたコントローラであって、前記電力ゲート制御表示信号が第１の値を有する場合、前記クロック信号に依存する第１組の制御値を生成し、また、前記電力ゲート制御表示信号が第２の値を有する場合、前記クロック信号とは独立した第２組の制御値を生成する前記コントローラと、
前記各ラッチ内における少なくとも１つのトライステータブル・インバータと、が含まれ、前記少なくとも１つの各トライステータブル・インバータは、前記コントローラから制御信号を受信するように接続される回路。
【請求項７】
請求項１に記載の回路であって、前記フリップフロップは、更に、
クロック信号を受信するためのクロック信号入力ノードと、
電力ゲート制御表示信号を受信するための電力ゲート制御表示入力ノードと、が含まれ、前記フリップフロップは、前記電力ゲート制御表示信号が第１の値を有する場合、前記クロック信号に依存する第１動作状態で動作し、また、前記電力ゲート制御表示信号が第２の値を有する場合、前記クロック信号とは独立した第２動作状態で動作し、前記第２動作状態は、前記第１動作状態より少ない電力を消費しつつ、前記フリップフロップの前記状態を保持する回路。
【請求項８】
請求項１に記載の回路であって、前記フリップフロップには、更に、
連続電源信号を受信するように接続された第１電源ノードと、
ゲート制御された電源信号を受信するように接続された第２電源ノードと、が含まれる回路。
【請求項９】
請求項８に記載の回路であって、
前記状態保持フリップフロップは、ポジティブエッジ・フリップフロップであり、
前記スレーブラッチは、前記第１電源ノードを介して、前記連続電源信号を受信するように接続され、
前記マスタラッチは、前記第２電源ノードを介して、前記ゲート制御された電源信号を受信するように接続される回路。
【請求項１０】
請求項８に記載の回路であって、
前記状態保持フリップフロップは、ネガティブエッジ・フリップフロップであり、
前記マスタラッチは、前記第１電源ノードを介して、前記連続電源信号を受信するように接続され、
前記スレーブラッチは、前記第２電源ノードを介して、前記ゲート制御された電源信号を受信するように接続される回路。
【請求項１１】
請求項１に記載の回路であって、
前記状態保持フリップフロップは、ポジティブエッジ・フリップフロップであり、
前記ラッチの内の前記第１番目は、前記スレーブラッチであり、
前記ラッチの内の前記第２番目は、前記マスタラッチである回路。
【請求項１２】
ネガティブエッジ・フリップフロップが更に含まれる請求項１１に記載の回路であって、前記ネガティブエッジ・フリップフロップには、
入力及び出力ノードと、
マスタラッチ及びスレーブラッチの２つのラッチと、が含まれ、前記ネガティブエッジ・フリップフロップの前記各ラッチは、前記ネガティブエッジ・フリップフロップの前記入力及び出力ノードと直列に接続された回路要素を含み、前記ネガティブエッジ・フリップフロップの前記マスタラッチは、電力が前記ネガティブエッジ・フリップフロップの前記スレーブラッチから切り離される電力管理モード時、前記フリップフロップの状態を保持するように構成される回路。
【請求項１３】
請求項１に記載の回路であって、更に、
基準クロックを受信するように、また、動作クロック及びスリープクロックを提供するように接続されたクロックコントローラと、
非状態保持フリップフロップを含む動作領域回路であって、前記非状態保持フリップフロップは、前記動作クロック信号を受信するように接続される前記動作領域回路と、
前記スリープクロック信号を受信するように接続された前記状態保持フリップフロップを含むスリープ領域回路と、
が含まれる回路。
【請求項１４】
請求項１３に記載の回路であって、更に、
電力ゲート制御表示信号を前記スリープ領域回路に提供するように、また、電力ゲート制御信号を電力ゲート制御スイッチに提供するように接続された状態保持コントローラと、
前記電力ゲート制御信号の制御の下で、連続電源信号を受信するように、また、ゲート制御された電源信号を前記スリープ領域回路に提供するように接続される前記電力ゲート制御スイッチと、
が含まれる回路。
【請求項１５】
請求項１に記載の回路であって、
前記状態保持フリップフロップは、ネガティブエッジ・フリップフロップであり、
前記ラッチの内の前記第１番目は、前記マスタラッチであり、
前記ラッチの内の前記第２番目は、前記スレーブラッチである回路。
【請求項１６】
請求項１に記載の回路であって、前記フリップフロップには、更に、
クロック信号及び電力ゲート制御表示信号を受信するように接続されたスイッチコントローラが含まれ、
前記スイッチコントローラは、第１の値を有する前記クロック信号及び第１の値を有する前記電力ゲート制御表示信号に応答して、前記第１及び第４スイッチを第１スイッチ状態に制御するように、また、前記第２及び第３スイッチを第２スイッチ状態に制御するように構成され、
前記スイッチコントローラは、第２の値を有する前記クロック信号及び前記第１の値を有する前記電力ゲート制御表示信号に応答して、前記第１及び第４スイッチを前記第２状態に制御するように、また、前記第２及び第３スイッチを前記第１状態に制御するように構成され、
前記スイッチコントローラは、第２の値を有する前記電力ゲート制御表示信号に応答して、前記第３及び第４スイッチを前記第１スイッチ状態に制御するように、また、前記第１及び第２スイッチを前記第２状態に制御するように構成される回路。
【請求項１７】
状態保持フリップフロップであって、
入力及び出力ノードと、
マスタラッチ及びスレーブラッチである２つのラッチと、が含まれ、前記各ラッチは、前記入力及び出力ノードと直列に接続された回路要素を含み、前記ラッチの内の第１番目は、第１電源信号を用いて動作するように接続され、前記ラッチの内の第２番目は、第２電源信号を用いて動作するように接続され、前記第２電源信号は、調整制御可能な電源信号であるフリップフロップ。
【請求項１８】
請求項１７に記載の状態保持フリップフロップであって、
前記ラッチの内の前記第１番目は、前記第２電源信号が前記ラッチの内の前記第２番目から切り離される電力管理モード時、前記フリップフロップの状態を保持するように構成されるフリップフロップ。
【請求項１９】
請求項１７に記載の状態保持フリップフロップであって、
前記ラッチの内の前記第１番目は、前記第２電源信号が前記ラッチの内の前記第２番目に対して低減される電力管理モード時、前記フリップフロップの状態を保持するように構成されるフリップフロップ。
【請求項２０】
請求項１７に記載の装置であって、前記フリップフロップは、ポジティブエッジ・フリップフロップであり、第１番目は、前記スレーブであり、前記第２番目は、前記マスタである装置。
【請求項２１】
請求項１７に記載の装置であって、前記フリップフロップは、ネガティブエッジ・フリップフロップであり、前記第１番目は、前記マスタであり、前記第２番目は、前記スレーブである装置。
【請求項２２】
動作領域回路及びスリープ領域回路を有する情報処理システムにおいて電力損失を低減する方法であって、
前記情報処理システムにおいて電力損失を減少させるための電力ゲート制御要求を受信する段階と、
前記スリープ領域回路に接続されたスリープ領域クロックをディスエーブル状態にする段階と、
対応するスリープ領域回路の現在の状態を、前記スリープ領域回路の各フリップフロップにおける２つの直列接続されたラッチの内の少なくとも１つにセーブする段階と、
前記電力ゲート制御要求に対応するスリープ領域回路の少なくとも一部分からの供給電圧を調整する段階と、
が含まれる方法。
【請求項２３】
請求項２２に記載の方法であって、前記電力ゲート制御要求は、部分的ゲート制御要求であり、前記ゲート制御要求を受信する段階には、複数のスリープ領域回路の特定のスリープ領域回路を特定する段階が含まれる方法。
【請求項２４】
請求項２２に記載の方法であって、前記電力ゲート制御要求は、前記情報処理システムにおける全スリープ領域回路に対する電力節約状態の開始を要求する一括ゲート制御要求である方法。
【請求項２５】
請求項２２に記載の方法であって、前記スリープ領域クロックをディスエーブル状態にする段階には、前記スリープクロックが、前記スリープ領域回路の前記供給電圧を調整する前に、ディスエーブル状態になることを確認する段階が含まれる方法。
【請求項２６】
請求項２２に記載の方法であって、前記スリープ領域回路の前記供給電圧を調整する段階には、以下の段階の内の少なくとも１つ、即ち、
前記スリープ領域回路から電力を切り離す段階、又は、
前記スリープ領域回路への電力を低減する段階、
が含まれる方法。
【請求項２７】
請求項２２に記載の方法であって、更に、
追加の電力ゲート制御要求を受信する段階と、
前記追加の電力ゲート制御要求を受信する段階に応答して、ディスエーブル状態にする段階、確認する段階、セーブする段階、を繰り返す段階と、
が含まれる方法。
【請求項２８】
請求項２２に記載の方法であって、更に、前記動作領域回路及び依然として動作している任意のスリープ領域回路への供給電圧を低減する段階が含まれる方法。
【請求項２９】
請求項２２に記載の方法であって、更に、
一括又は部分的電力ゲート制御終了要求を受信する段階と、
前記動作領域及びスリープ領域回路への前記供給電圧を復旧する段階と、
前記スリープ領域回路の前記状態を復旧する段階と、
前記スリープ領域クロックをイネーブル状態にする段階と、
が含まれる方法。
【請求項３０】
請求項２２に記載の方法であって、前記スリープ領域回路の前記状態を復旧する段階には、前記スリープ領域回路に対してより高い電力レベルを復旧する段階と、前記スリープ領域回路をイネーブル状態にして前記スリープクロックに基づき動作させる段階と、が含まれる方法。
【請求項３１】
請求項２２に記載の方法であって、対応するスリープ領域回路の前記現在の状態をセーブする段階には、
受信クロック信号が第１状態に留まる各フリップフロップのマスタラッチに前記現在の状態をセーブする段階と、
受信クロック信号が第２状態に留まる各フリップフロップのスレーブラッチに前記現在の状態をセーブする段階と、
が含まれる方法。
【請求項３２】
請求項３１に記載の方法であって、前記第１状態は、論理ゼロであり、前記第２状態は、論理１である方法。
【請求項３３】
状態保持フリップフロップであって、
入力ノードと、
出力ノードと、
複数の回路要素を含むマスタと、
複数の回路要素を含むスレーブと、が含まれ、
前記入力ノード、前記マスタの少なくとも１つの回路要素、前記スレーブの少なくとも１つの回路要素、及び前記出力ノードは、直列に接続され、
前記マスタ及び前記スレーブの内の少なくとも１つからの少なくとも第１回路要素は、電力が前記マスタ及び前記スレーブの内の少なくとも１つからの少なくとも第２回路要素から切り離される電力管理モード時、電力を受電するように構成されるフリップフロップ。
【請求項３４】
回路であって、
連続電源信号を受信し、また、ゲート制御可能な電源信号を生成するためのゲート回路と、
前記連続電源信号を受信するように接続された動作領域フリップフロップと、
前記連続電源信号及び前記ゲート制御可能な電源信号を受信するように接続されたスリープ領域状態保持フリップフロップと、が含まれ、前記スリープ領域状態保持フリップフロップは、前記スリープ領域状態保持フリップフロップの一部分への電力を切り離しつつ、既存の状態を保持する回路。
【請求項３５】
状態保持フリップフロップを含む回路であって、前記状態保持フリップフロップには、
入力から出力へのデータ経路と、
前記データ経路中に第１回路要素を有し、また、前記入力からデータを受信するように接続されたマスタループ回路と、
前記データ経路中に第２回路要素を有し、また、前記第１回路要素からデータを受信するように、更に、データを前記出力に提供するように接続されたスレーブループ回路と、
状態保持制御手段であって、
前記マスタループ回路をイネーブル状態にして前記フリップフロップの状態を保持するための手段と、
前記スレーブループ回路をイネーブル状態にして前記フリップフロップの状態を保持するための手段と、
前記マスタ及び前記スレーブループ回路双方をイネーブル状態にして前記フリップフロップの状態を保持するための手段と、からなるグループの内の１つが含まれる前記状態保持制御手段と、
が含まれる回路。
【請求項３６】
請求項３５に記載の回路であって、前記状態保持フリップフロップは、ポジティブエッジトリガ式フリップフロップであり、前記状態保持制御手段には、前記スレーブループ回路をイネーブル状態にするための前記手段が含まれる回路。
【請求項３７】
請求項３６に記載の回路であって、前記状態保持フリップフロップには、更に、
前記マスタループ回路のマスタループスイッチと、
前記スレーブループ回路のスレーブループスイッチと、
前記マスタループと前記スレーブループとの間に接続されたループ間スイッチと、が含まれ、
前記状態保持制御手段には、電力節約モード時、前記スレーブループスイッチを閉じ、また、前記マスタループスイッチ及び前記ループ間スイッチを開くための制御信号が含まれる回路。
【請求項３８】
請求項３５に記載の回路であって、前記状態保持フリップフロップは、ネガティブエッジ・トリガ式フリップフロップであり、前記状態保持制御手段には、前記マスタループ回路をイネーブル状態にするための前記手段が含まれる回路。
【請求項３９】
請求項３８に記載の回路であって、前記状態保持フリップフロップには、更に、
前記マスタループ回路のマスタループスイッチと、
前記スレーブループ回路のスレーブループスイッチと、
前記マスタループと前記スレーブループとの間に接続されたループ間スイッチと、が含まれ、
前記状態保持制御手段には、電力節約モード時、前記マスタループスイッチを閉じ、また、前記スレーブループスイッチ及び前記ループ間スイッチを開くための制御回路が含まれる回路。
【請求項４０】
請求項３５に記載の回路であって、前記状態保持フリップフロップは、エッジ・トリガ式フリップフロップであり、前記状態保持制御手段には、前記マスタ及び前記スレーブループ回路双方をイネーブル状態にするための前記手段が含まれる回路。
【請求項４１】
請求項４０に記載の回路であって、前記状態保持フリップフロップには、更に、
前記状態保持フリップフロップの前記入力と前記マスタループとの間に接続された入力スイッチと、
前記マスタループ回路のマスタループスイッチと、
前記マスタループと前記スレーブループとの間に接続されたループ間スイッチと、
前記スレーブループ回路のスレーブループスイッチと、が含まれ、
前記状態保持制御手段には、電力節約モード時、前記入力スイッチ及び前記ループ間スイッチを開き、また、前記マスタ及びスレーブループスイッチを閉じるための制御回路が含まれる回路。
【請求項４２】
請求項４１に記載の回路であって、前記状態保持フリップフロップには、更に、
前記状態保持フリップフロップの前記入力と前記マスタループとの間に接続された入力スイッチと、
前記マスタループ回路のマスタループスイッチと、
前記マスタループと前記スレーブループとの間に接続されたループ間スイッチと、
前記スレーブループ回路のスレーブループスイッチと、
クロック信号を受信するための入力と、
第１の値を有する前記クロック信号に応答して、第１スイッチ状態で前記マスタスイッチ及び前記ループ間スイッチを動作させるための制御手段であって、更に、前記電力節約モード以外の動作モード時、第２の値を有する前記クロック信号に応答して、前記ループ間スイッチ及びスレーブループスイッチを動作させるための前記制御手段と、
が含まれる回路。
【請求項４３】
請求項３５に記載の回路であって、前記状態保持フリップフロップは、第１状態保持タイプであり、前記回路には、更に、
第２タイプの状態保持フリップフロップであって、前記第１タイプの状態保持フリップフロップの前記イネーブル化手段と異なるイネーブル化手段を含む前記第２タイプの状態保持フリップフロップが含まれる回路。
【請求項４４】
請求項４３に記載の回路であって、更に、
第３タイプの状態保持フリップフロップであって、前記第１及び第２タイプの前記各状態保持フリップフロップの前記イネーブル化手段と異なるイネーブル化手段を含む前記第３タイプの状態保持フリップフロップが含まれる回路。
【請求項４５】
請求項４４に記載の回路であって、
前記第１タイプには、前記スレーブループ回路をイネーブル状態にして前記フリップフロップの状態を保持するための前記手段を含むポジティブエッジトリガ式フリップフロップが含まれ、
前記第２タイプには、前記マスタループ回路をイネーブル状態にして前記フリップフロップの状態を保持するための前記手段を含むネガティブエッジ・トリガ式フリップフロップが含まれ、
前記第３タイプには、前記マスタ及び前記スレーブループ回路双方をイネーブル状態にして前記フリップフロップの状態を保持するための前記手段を含むエッジ・トリガ式フリップフロップが含まれる回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、データ処理システムに関し、特に、データ処理システム内における状態保持に関する。
【背景技術】
【０００２】
低消費電力は、例えば、携帯やハンドヘルド用途の広範な普及によりデータ処理システムにおいて益々重要性を帯びてきている。例えば、ハンドヘルド装置の場合、バッテリ寿命は、極めて重要なパラメータである。ハンドヘルド装置は、通常、（例えば、アイドル又はディープスリープモードでは）かなりの時間の間、オフ状態であり、漏れ電力だけを消費する。従って、漏れ電流の低減は、バッテリ寿命を伸ばす上で益々重要な要因になりつつある。
【０００３】
装置の漏れ電流を低減する１つの方法は、しきい値電圧を大きくすることである。しかしながら、装置のしきい値電圧を単に大きくすると、装置の動きが鈍ったり回路性能が制限されたりする等の望ましくない結果が生じることがある。
【０００４】
漏れ電流を低減する他の方法は、電力のゲート制御、即ち、電力を或るブロックに切り離すことである。しかしながら、そのようにする場合、回路ブロックの状態が失われる。しかしながら、多くの回路ブロックにおいては、重要な情報の消失を防止し、また、適切な回路動作及び性能を可能にするために、状態保持が必要である。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従って、例えば、アイドル又はディープスリープモード時、状態保持のための改善された回路及び方法によって、漏れ電力を低減し、バッテリ寿命を伸ばす支援を行い得る回路及び方法が必要である。
【発明を実施するための最良の形態】
【０００６】
本発明は、添付の図によって、一例として例示するものであって、これらによって限定されるものではない。図では、同様な参照符号は、同様な要素を示す。
当業者は、図の要素が、簡単明瞭に示されており、必ずしも縮尺通りに描かれていないことを認識されたい。例えば、図の要素には、本発明の実施形態の理解を改善する一助とするために、他の要素と比較して寸法を誇張したものがある。
【０００７】
本明細書に用いる用語「バス」は、データ、アドレス、制御、又は状態等の、１つ又は複数の様々な種類の情報を伝達するのに用い得る複数の信号又は導体を示す。本明細書において述べる導体は、単一の導体、複数の導体、単方向の導体、又は双方向の導体であり、それらを例示又は記述する。しかしながら、異なる実施形態では、導体の実装も異なり得る。例えば、双方向の導体よりもむしろ別個の単方向導体を用いたり、その逆の場合もあったりする。また、直列に又は時分割多重方式で多数の信号を伝達する単一の導体で複数の導体を置き換えることがある。同様に、多数の信号を搬送する単一の導体は、これらの信号の一部を搬送する様々な異なる導体に分離し得る。従って、信号を伝達するための多くのオプションが存在する。
【０００８】
用語「アサート」又は「セット」及び「ネゲート」（又は「ディアサート」又は「クリア」）は、それぞれ、信号、状態ビット、又は同様な装置をその論理的に真の又は論理的に偽の状態に処理する場合に用いられる。論理的に真の状態が論理レベル１である場合、論理的に偽の状態は論理レベルゼロである。また、論理的に真の状態が論理レベルゼロである場合、論理的に偽の状態は論理レベル１である。従って、本明細書において述べる各信号は、正又は負の論理として構成し得るが、この場合、負の論理は、信号名の上のバーによって、又は信号名に続く星印（＊）によって示し得る。負の論理信号の場合、信号は、アクティブローであり、この場合、論理的に真の状態は、論理レベルゼロに対応する。正の論理信号の場合、信号は、アクティブハイであり、この場合、論理的に真の状態は、論理レベル１に対応する。本明細書において述べる信号は、いずれも負又は正のいずれかの論理信号として構成し得ることに留意されたい。従って、正の論理信号として述べる信号は、負の論理信号として実現可能であり、また、負の論理信号として述べる信号は、正の論理信号として実現し得る。
【０００９】
本明細書において後述するように、消費電力は、電力ゲート制御を用いて低減し得るが、この場合、電力は、漏れ電流を低減するために、回路ブロック又は回路ブロックの一部から除去される。一実施形態では、電力が回路から除去又は部分的に除去される時、状態を保持することが可能な改良型状態保持フリップフロップを用いる。他の実施形態では、電力が回路から除去又は部分的に除去される時、状態を保持することが可能な改良型状態保持バッファを用いる。状態保持フリップフロップ及びバッファは、後述するように、漏れ電流を低減しつつも、最小の追加の回路で状態保持を可能にする。また、例えば、状態保持フリップフロップ及びバッファを用いて、電力を低減し、また、状態を保持する様々な方法について本明細書で述べる。例えば、一実施形態では、ハードウェアによる方法を用いて、ディープスリープモードに入って状態を保持し、他方、他の実施形態では、ハードウェア及びソフトウェアの組合せを用いて、ディープスリープモードに入って状態を保持する。
【００１０】
図１は、本発明の一実施形態に基づくデータ処理システム１００を示す。データ処理システム１００には、電圧レギュレータ１０２、トランジスタ１０４、クロックコントローラ１１６、状態保持コントローラ１１８、スリープ領域機能回路１２４、及び動作領域機能回路１２８が含まれる。電圧レギュレータ１０２は、連続的なＶＤＤ（ＶＤＤＣ）１３０及びＶＤＤ１３２を提供し、この場合、ＶＤＤＣ１３０及びＶＤＤ１３２は、トランジスタ１０４を介して接続される。即ち、トランジスタ１０４の第１電流電極は、ＶＤＤＣ１３０に接続され、トランジスタ１０４の第２電流電極は、ＶＤＤ１３２に接続される。トランジスタ１０４の制御電極は、状態保持コントローラ１１８から電力ゲート制御信号（ＶＤＤ制御１１０）を受信するように接続される。例示した実施形態において、トランジスタ１０４は、ＰＭＯＳトランジスタである。ＶＤＤＣ１３０は、状態保持コントローラ１１８、クロックコントローラ１１６、スリープ領域機能回路１２４、及び動作領域機能回路１２８に提供される。ＶＤＤ１３２は、スリープ領域機能回路１２４に提供される。クロックコントローラ１１６は、基準クロックｒｅｆｃｌｋ１１２を受信し、スリープ領域クロックｓｃｌｋ１２２をスリープ領域機能回路１２４に提供し、動作領域クロックｒｃｌｋ１２６を動作領域機能回路１２８に提供し、双方向ｃｌｋ制御信号１３４を介して状態保持コントローラ１１８と通信を行う。状態保持コントローラ１１８は、電力ゲート制御要求（ＰＧｒｅｑ１１４）を受信し、電力ゲート制御表示信号（ＰＧ１２０）をスリープ領域機能回路１２４に提供する。データ処理システム１００は、全て、同じ集積回路上に配置したり、他の選択肢として、データ処理システム１００は、任意の数の集積回路に配置したり、又は集積回路要素及び個別回路要素の双方で実装したりできることに留意されたい。データ処理システム１００は、例えば、マイクロプロセッサ、デジタル信号プロセッサ等、任意の種類のデータ処理システムであってよく、又は任意の種類の情報処理システムであってよい。また、データ処理システム１００の例示した実施形態において、ＶＤＤ制御１１０、ＰＧ１２０、及びＰＧｒｅｑ１１４等の信号は、正の論理信号として述べることに留意されたい。
【００１１】
動作時、データ処理システム１００には、データ処理システム１００の様々な部分に電力を提供するＶＤＤＣ１３０（これは、連続電源信号とも称し得る）及びＶＤＤ１３２（これは、ゲート制御された電源信号とも称し得る）が含まれる。例示した実施形態では、当分野において知られているように、ＶＤＤＣ１３０は、電圧レギュレータ１０２によって生成され、従って、ＶＤＤＣ１３０は、調整制御可能な電源信号である。ＶＤＤ１３２が、（ＶＤＤ制御１１０が論理レベル０である場合、トランジスタ１０４を介して）ＶＤＤＣ１３０に接続される場合、ＶＤＤ１３２は、ＶＤＤＣ１３０とほぼ同じであり、双方共、データ処理システム１００の複数部位に電力を提供する。ＶＤＤ制御１１０が、論理レベル１である場合、ＶＤＤ１３２は、ＶＤＤＣ１３０から切り離され、ＶＤＤＣ１３０だけが、データ処理システム１００の複数部位に電力を提供し、こうして、ＶＤＤ１３２の電力ゲート制御を行う（即ち、ＶＤＤ１３２に接続された回路のそれらの部位への電力を除去する）。他の実施形態において、ＶＤＤ制御１１０に依存して、ＶＤＤＣ１３０及びＶＤＤ１３２双方がデータ処理システム１００に電力を提供するか、又は、ＶＤＤ１３２ではなくＶＤＤＣ１３０がデータ処理システム１００に電力を提供するように、異なる回路を用いてトランジスタ１０４の機能を実現し得ることに留意されたい。例えば、他のスイッチング要素やゲート回路又は任意の組合せの要素を用い得る。
【００１２】
例示した実施形態において、データ処理システム１００には、スリープ領域機能回路１２４及び動作領域機能回路１２８の双方が含まれる。スリープ領域機能回路１２４には、データ処理システム１００が、ディープスリープモード又はアイドルモードである場合等の低電力モード時、クロックが除去され得る回路が含まれる。クロック（例えば、ＳＣＬＫ１２２）がオフであるそれらの時間の間、電力も、回路の部位から除去して、漏れ電流を低減する支援を行い得る。例えば、例示した実施形態において、スリープ領域機能回路は、ＶＤＤＣ１３０及びＶＤＤ１３２の双方を受信し、この場合、通常又は最高出力動作時、ＶＤＤ制御１１０は、ＶＤＤ１３２をＶＤＤＣ１３０に接続するために、状態保持コントローラ１１８によって論理レベル０にセットされる。従って、通常又は最高出力動作時、ＶＤＤＣ１３０及びＶＤＤ１３２は、双方共、スリープ領域回路１２４に電力を提供する。しかしながら、低電力モード時（例えば、ｓｃｌｋ１２２がオフになった状態で）、ＶＤＤ制御１１０は、ＶＤＤ１３２をＶＤＤＣ１３０から切り離して、ＶＤＤ１３２をゲート制御してオフにするために、論理レベル１にセットし得る。この場合、スリープ領域機能回路１２４の部位（例えば、状態情報を保持する部位）だけが、ＶＤＤＣ１３０によって電力供給され、一方、ＶＤＤ１３２に接続された残りの部位は、電源が遮断される。後述するように、スリープ領域機能回路１２４には、ＶＤＤＣ１３０と組み合わせて、スリープ領域機能回路１２４内に状態を保持するために用い得る改良型フリップフロップ及びバッファを含み得る。
【００１３】
動作領域機能回路１２８には、ディープスリープモードになり得ないためクロック（例えば、ｒｃｌｋ１２６）及び電力（ＶＤＤＣ１３０）を連続的に受信する回路が含まれる。この回路には、例えば、絶えず電力供給し続ける必要があるリアルタイムのクロックを含んだり、あるいは、（データ処理システム１００を定期的に活性化して、例えば、通話又はメッセージ等のアクティビティの有無をチェックし得る）ディープスリープモジュール、（例えば、キー押下等のアクティビティを検出する）割込バッファ、及びデータ処理システム１００をモニタしたりオフにすべきではない重要な機能を提供したりする他のブロック等の他の回路を含んだりしてよい。この回路には、従って、（現在、当分野において知られているように、通常のフリップフロップ及びバッファとして動作し得る）非状態保持フリップフロップ及びバッファ等の非状態保持デバイスを含み得る。一実施形態において、ｒｃｌｋ１２６は、低電力モード時、オフにならない連続的なクロックである。一実施形態において、ｒｃｌｋ１２６は、ｓｃｌｋ１２２より遅いクロックである（この場合、ｒｃｌｋ１２６は、例えば、３２ｋＨｚクロックであってよく、ｓｃｌｋ１２２は、例えば、１３ＭＨｚクロックであってよい）。従って、オン又はオフし得るｓｃｌｋ１２２とは異なり、ｒｃｌｋ１２６は、通常、オフされない。動作領域機能回路１２８は連続的に動作していることから、連続的に電力供給され、従って、ＶＤＤＣ１３０だけを受信するが、これは、その電力が、ＶＤＤ１３２を受信するスリープ領域機能回路１２４の部位とは異なりゲート制御されないためである。
【００１４】
図１は、２つの別個の機能回路ブロックがあるように示したが、データ処理システム１００には、任意の数のスリープ領域回路範囲及び動作領域回路範囲を含み得ることを理解されるべきである。例えば、一実施形態において、スリープ領域回路及び動作領域回路は、物理的に別個のブロックではなく、その代わり、互いに一体化され、必要に応じて、ｓｃｌｋ１２２、ｒｃｌｋ１２６、ＶＤＤ１３０、及びＶＤＤＣ１３２を受信する。また、スリープ領域機能回路１２４及び動作領域機能回路１２８内の回路には、データ処理システム１００によって、必要に応じて、任意の種類の機能を実行する任意の種類の回路を含み得ることに留意されたい。また、他の実施形態において、データ処理システム１００には、（スリープ及び動作領域機能回路に加えて）任意の数及び種類の電力領域回路を含み得る。従って、データ処理システム１００は、様々な異なる用途に対して、様々な異なるやり方で構成し得る。データ処理システム１００の機能回路については、従って、状態保持部位の動作を説明するために必要である範囲を除き、本明細書ではより詳細に述べない。
【００１５】
クロックコントローラ１１６は、必要に応じて、ｒｅｆｃｌｋ１１２に基づき、ｓｃｌｋ１２２及びｒｃｌｋ１２６を生成する。一実施形態において、ｒｅｆｃｌｋ１１２は、データ処理システム１００と同一の又はデータ処理システム１００の外部の集積回路に配置し得る水晶発振器によって生成される。従って、状態保持コントローラ１１８からの（例えば、ｃｌｋ制御信号１３４を介した）制御及び、もしあれば、他の電力管理モジュール（図示せず）からの制御情報に基づき、クロックコントローラ１１６は、ｓｃｌｋ１２２をオフにしたり、もしくは、必要に応じて、ｓｃｌｋ１２２及びｒｃｌｋ１２６を修正したりできる。クロックコントローラ１１６は、ＶＤＤＣ１３０を受信して、低電力モード時でさえ、必要に応じて、ｓｃｌｋ１２２及びｒｃｌｋ１２６を継続的に制御し得ることに留意されたい。
【００１６】
状態保持コントローラ１１８を用いると、ディープスリープモード又はアイドルモード等の低電力モードに入る時、状態が適切に保持されることを保証し得る。例えば、例示した実施形態において、状態保持コントローラ１１８は、ＰＧｒｅｑ１１４を受信する。この要求は、電力管理モジュール（図示せず）又は状態保持コントローラ１１８に対して、いつ電力ゲート制御が必要かを示すデータ処理システム１００内の任意の他の回路から生成される信号であってよい。また、ＰＧｒｅｑ１１４は、データ処理システム１００上で走るソフトウェアによって制御可能なメモリに記憶された値（例えば、ビット等）に対応し得る。他の選択肢として、ＰＧｒｅｑ１１４は、データ処理システム１００の外部にある発信源から受信し得る。ＰＧｒｅｑ１１４の受信に応じて、状態保持コントローラ１１８は、電力がスリープ領域機能回路１２４の部位に対してゲート制御されてオフになる低電力モードに入るために、クロックコントローラ１１６に対して、ｃｌｋ制御信号１３４を介して、ｓｃｌｋ１２２が遮断される予定であることを示す。また、状態保持コントローラ１１８は、スリープ領域機能回路１２４に対して、ＰＧ１２０を介して、電力ゲート制御が行われる予定であることを示す。従って、一実施形態において、状態保持コントローラ１１８は、ｓｃｌｋ１２２がオフになったというクロックコントローラ１１６からの確認応答の受信に応じて、（又は、ｓｃｌｋ１２２がオフに切り替えられる予定であることをクロックコントローラ１１６に対して示した後所定量の時間後）、ＰＧ１２０をアサートし、こうして、スリープ領域機能回路１２４の部位を電源遮断し、また、ＶＤＤ制御１１０を論理レベル１にセットして、ＶＤＤ１３２をＶＤＤＣ１３０から切り離し得る。クロックコントローラ１１６及び状態保持コントローラ１１８の動作については、図１１乃至１２のタイミング図及び図１３のフロー図を参照して、より詳細に後述する。
【００１７】
図２は、状態保持（ｓｔａｔｅ−ｒｅｔｅｎｔｉｏｎ）フリップフロップ２００（状態保持（ｓｔａｔｅ−ｒｅｔｅｎｔｉｖｅ）フリップフロップ２００とも称し得る）の一実施形態を示す。例示した実施形態において、フリップフロップ２００は、マスタ・スレーブフリップフロップであり、これには、スレーブ部２０４に接続されたマスタ部２０２が含まれる。フリップフロップ２００には、入力Ｄを受信するように接続された第１端子と、スイッチ２１０の第１端子及びインバータ２１４への入力に接続された第２端子と、を有するスイッチ２０８が含まれる。スイッチ２０８は、“ｅ”を受信する第１制御端子と、“ｅｂ”（“ｅ”の反転）を受信する第２制御端子と、を有する。スイッチ２１０は、インバータ２１２の出力に接続された第２端子と、“ｆ”を受信する第１制御端子と、“ｆｂ”（“ｆ”の反転）を受信する第２端子と、を有する。インバータ２１４の出力及びインバータ２１２の入力は、スイッチ２１６の第１端子に接続される。スイッチ２１６の第１制御端子は、“ｇ”を受信し、スイッチ２１６の第２制御端子は、“ｇｂ”（“ｇ”の反転）を受信する。スイッチ２１６の第２端子は、スイッチ２１８の第１端子及びインバータ２２２の入力に接続される。スイッチ２１８の第１制御端子は、“ｈ”を受信し、スイッチ２１８の第２制御端子は、“ｈｂ”（“ｈ”の反転）を受信する。スイッチ２１８の第２端子は、インバータ２２０の出力に接続される。インバータ２２０の入力は、出力Ｑを提供するインバータ２２２の出力に接続される。従って、マスタ２０２には、少なくとも１つの回路要素（例えば、インバータ２１４）が含まれ、スレーブ２０４には、少なくとも１つの回路要素（例えば、インバータ２２２）が含まれ、これらは、フリップフロップ２００の入力及び出力ノード（例えば、それぞれＤ及びＱに対応する）と直列に接続されることに留意されたい。即ち、マスタ２０２及びスレーブ２０４の各少なくとも１つの回路要素は、フリップフロップ２００の入力から出力へのデータ経路中にある。
【００１８】
また、フリップフロップ２００には、ｓｃｌｋ（ｓｃｌｋ１２２等）、ＰＧ信号（ＰＧ１２０等）、及びＶＤＤＣ（ＶＤＤＣ１３０等）を受信し、一実施形態において、ｅ、ｅｂ、ｆ、ｆｂ、ｇ、ｇｂ、ｈ、及びｈｂを提供するスイッチコントローラ２０６が含まれる。他の実施形態において、スイッチコントローラ２０６は、ｅ、ｆ、ｇ、及びｈを提供し、ｅｂ、ｆｂ、ｇｂ、及びｈｂは、それぞれ、インバータを介して、ｅ、ｆ、ｇ、及びｇを提供することによって各々得ることができる。インバータ２１２及び２１４は、ＶＤＤ１を受信し、インバータ２２２及び２２０は、ＶＤＤ２を受信する。マスタ部２０２には、スイッチ２１０及びインバータ２１２及び２１４が含まれ、スレーブ部２０４には、スイッチ２１８及びインバータ２２０及び２２２が含まれる。
【００１９】
スイッチは、透過ゲート又は通過ゲートとも称し得ることに留意されたい。スイッチがオンである又は閉じている（即ち、通過ゲートがイネーブル状態になる）と、スイッチの第１及び第２端子は、互いに接続され、こうして、その端子の一方における値がその端子の他方に渡される。スイッチがオフ又は開いている（即ち、通過ゲートがディスエーブル状態になる）と、スイッチの第１及び第２端子は、互いに切り離され、こうして、その端子の一方における値は、他方に渡されない。図２の例示した実施形態において、スイッチは、ｅ、ｆ、ｇ、及びｈをアサートする（従って、それぞれ、ｅｂ、ｆｂ、ｇｂ、及びｈｂをディアサートする）ことによってオンになり、また、ｅ、ｆ、ｇ、及びｈをディアサートする（従って、それぞれ、ｅｂ、ｆｂ、ｇｂ、及びｈｂをアサートする）ことによってオフになると仮定する。従って、一実施形態において、スイッチのスイッチ状態は、スイッチがオン又はオフである（即ち、それぞれ、閉じている又は開いている）を意味し、このため、第１スイッチ状態は、スイッチがオンである又は閉じていることを意味し、また、第２スイッチ状態は、スイッチがオフである又は開いていることを意味し、あるいは、その逆であってもよいことに留意されたい。
【００２０】
動作中、フリップフロップ２００は、入力Ｄを受信し、Ｄの値を出力Ｑとして提供する。例えば、フリップフロップ２００の動作について、まず、図３及び６を参照して述べるが、ここでは、フリップフロップ２００は、（ｓｃｌｋを基準にして）ポジティブエッジ・フリップフロップであると仮定する。図６の表に例示したように、フリップフロップ２００がポジティブエッジ・フリップフロップであると分かっている場合、（マスタ部２０２における）ＶＤＤ１は、ＶＤＤ（ＶＤＤ１３２等）に接続され、（スレーブ部２０４における）ＶＤＤ２は、ＶＤＤＣ（ＶＤＤＣ１３０等）に接続される。次に、図３において、通常動作時、ＰＧがディアサートされる（即ち、０にセットされる）場合、ＶＤＤ１及びＶＤＤ２は、双方共、インバータに電力を提供するが、その理由は、通常動作時、ＶＤＤが（例えば、トランジスタ１０４を介して）ＶＤＤＣに接続され、このため、ＶＤＤがＶＤＤＣにほぼ等しいためである。従って、ＰＧがディアサートされる場合、フリップフロップ２００は、通常のポジティブエッジ・フリップフロップとして動作する。即ち、ｓｃｌｋが０である場合、スイッチ２０８及び２１８は、オンであり、スイッチ２１０及び２１６は、オフであり、このため、Ｄの値は、インバータ２１４を介して、スイッチ２０８を通り、スイッチ２１６の第１端子に送信される。しかしながら、スイッチ２１６は、オフであることから、この値は、インバータ２２２の入力に送信されない。スイッチ２１８がオンの状態で、インバータ２２０及び２２２によって形成されるラッチにより記憶されたスレーブ２０４における値は、出力Ｑのままである。ｓｃｌｋが１である場合、スイッチ２１０及び２１６は、オンであり、スイッチ２０８及び２１８は、オフであり、このため、Ｄの値は、スイッチ２１０がオンの状態で、インバータ２１２及び２１４によって形成されるラッチによりマスタ２０２に記憶される。インバータ２１４の出力における以前の値は、出力Ｑとして、インバータ２２２を介して送信され、こうして、この時点で、以前のＤの値が、出力Ｑとして出現する。
【００２１】
しかしながら、フリップフロップ２００が、（低電力モード又は他の電力管理モード等において）電力ゲート制御される場合、ｓｃｌｋは、オフになり、ＶＤＤがＶＤＤＣから切り離されることから、ＶＤＤ１は、マスタ２０２のインバータ２１２及び２１４にもはや電力を供給しない。状態を保持するために、ＶＤＤＣによって提供されるＶＤＤ２は、依然として、スレーブ２０４のインバータ２２０及び２２２に電力を提供する。従って、図３において、ＰＧがアサートされる（１にセットされる）場合、スイッチ２０８及び２１８は、オンであり、スイッチ２１０及び２１６は、オフであり、こうして、フリップフロップ２００の状態がスレーブ２０４に維持される。このようにして、状態は、（スイッチ２１６によってマスタ２０２から隔離されて）スレーブ２０４に保持され、一方、電力は、マスタ２０２から除去され、こうして、フリップフロップ２００によって消費される漏れ電力を低減し得る。即ち、電力ゲート制御時、フリップフロップ２００は、通常動作時より消費電力が小さい。また、ＰＧがアサートされる場合、ｓｃｌｋは、フリップフロップ２００の動作にもはや影響を及ぼさないことから、“ドントケア”として示されることに留意されたい。即ち、ＰＧがアサートされる場合、フリップフロップ２００は、ｓｃｌｋとは独立して動作する。従って、スイッチコントローラ２０６は、様々な異なるやり方で構成して、図３の表の機能を実現し得るが、この場合、スイッチコントローラ２０６は、低電力モード時、電源断しないように、ＶＤＤＣによって電力供給される。
【００２２】
次に、フリップフロップ２００の動作について、図４及び６を参照して述べるが、ここでは、フリップフロップ２００が、（ｓｃｌｋを基準にして）ネガティブエッジ・トリガ式フリップフロップであると仮定する。再度、フリップフロップ２００は、最終的に出力Ｑとして提供される入力Ｄを受信する。図６の表に例示したように、フリップフロップ２００がネガティブエッジ・フリップフロップであると分かっている場合、（マスタ部２０２における）ＶＤＤ１は、ＶＤＤＣ（ＶＤＤＣ１３０等）に接続され、（スレーブ部２０４における）ＶＤＤ２は、ＶＤＤ（ＶＤＤ１３２等）に接続される。次に、図４において、通常動作時、ＰＧがディアサートされる（即ち、０にセットされる）場合、ＶＤＤ１及びＶＤＤ２は、双方共、インバータに電力を提供するが、その理由は、通常動作時、ＶＤＤは、（例えば、トランジスタ１０４を介して）ＶＤＤＣに接続され、こうして、ＶＤＤがＶＤＤＣにほぼ等しいためである。従って、ＰＧがディアサートされる場合、フリップフロップ２００は、通常のネガティブエッジ・フリップフロップとして動作する。即ち、ｓｃｌｋが０である場合、スイッチ２１０及び２１６は、オンであり、スイッチ２０８及び２１８は、オフであり、Ｄの以前の値は、スイッチ２１０がオンの状態で、インバータ２１２及び２１４によって形成されるラッチによりマスタ２０２に記憶される。マスタ２０２における値も、インバータ２１４の出力において、スイッチ２１６を介して送信され、インバータ２２２を介してＱとして提供される。従って、Ｄの以前の値は、マスタ２０２に記憶され、出力Ｑとして提供される。ｓｃｌｋが１である場合、スイッチ２１０及び２１６は、オフであり、スイッチ２０８及び２１８は、オンであり、こうして、Ｄの値は、スイッチ２０８及びインバータ２１４を介して、スイッチ２１６の第１端子に送信される。しかしながら、スイッチ２１６がオフであることから、この値は、スイッチ２１６を通りスレーブ２０４に送信されない。スレーブ２０４は、スイッチ２１８がオンの状態で、インバータ２２０及び２２２によって形成されたラッチにＱの以前の出力値を継続的に記憶する。
【００２３】
しかしながら、フリップフロップ２００が、（低電力モード又は他の電力管理モード等において）電力ゲート制御される場合、ｓｃｌｋは、オフになり、ＶＤＤがＶＤＤＣから切り離されることから、ＶＤＤ２は、スレーブ２０４のインバータ２２０及び２２２にもはや電力を供給しない。状態を保持するために、ＶＤＤＣによって提供されるＶＤＤ１は、依然として、マスタ２０２のインバータ２１２及び２１４に電力を提供する。従って、図４において、ＰＧがアサートされる（１にセットされる）場合、スイッチ２０８及び２１８は、オフであり、スイッチ２１０及び２１６は、オンであり、こうして、フリップフロップ２００の状態がマスタ２０２に維持される。このようにして、状態は、（スイッチ２１６によってスレーブ２０４から隔離されて）マスタ２０２に保持され、一方、電力は、スレーブ２０４から除去され、こうして、フリップフロップ２００によって消費される漏れ電力を低減し得る。即ち、電力ゲート制御時、フリップフロップ２００は、通常動作時より消費電力が小さい。ＰＧがアサートされる場合、ｓｃｌｋは、フリップフロップ２００の動作にもはや影響を及ぼさないことから、“ドントケア”として示されることに留意されたい。即ち、ＰＧがアサートされる場合、フリップフロップ２００は、ｓｃｌｋとは独立して動作する。従って、ネガティブエッジ・フリップフロップ用のスイッチコントローラ２０６は、様々な異なるやり方で構成して、図４の表の機能を実現し得るが、この場合、スイッチコントローラ２０６は、低電力モード時、電源断されないように、ＶＤＤＣによって電力供給される。
【００２４】
従って、前述したように、フリップフロップがポジティブ又はネガティブエッジ・フリップフロップとして構成されているかどうかに依存して、状態は、それぞれ、フリップフロップのスレーブ部又はマスタ部に保持し得る。即ち、ポジティブエッジ・フリップフロップの場合、フリップフロップに提供されるクロック（例えば、ｓｃｌｋ等）は、低電力モードに入る時は、第１状態に留まる（ここで、例えば、この第１状態は、論理レベルゼロであってよい）。この場合、クロックが留まる時点において、フリップフロップのスレーブ部は、保持されようとする状態を含む。こうして、スレーブ部（例えば、スレーブ２０４）は、ＶＤＤＣを受信する。同様に、ネガティブエッジ・フリップフロップの場合、フリップフロップに提供されるクロック（例えば、ｓｃｌｋ等）は、低電力モードに入る時は、第２状態に留まる（ここで、例えば、この第２状態は、論理レベル１に対応し得る）。この場合、クロックが留まる時点において、フリップフロップのマスタ部は、保持されようとする状態を含む。こうして、マスタ部（例えば、マスタ２０２）は、ＶＤＤＣを受信する。
【００２５】
場合によっては、クロックが停止した時、フリップフロップ２００がどの状態であるか分からない。即ち、フリップフロップに提供されたクロック（例えば、ｓｃｌｋ等）が、停止した時、どの状態であるか分からない。これらの場合、ｓｃｌｋが停止する時、どの部位（マスタ２０２又はスレーブ２０４）が所望の状態情報を保持しているか分からない。従って、フリップフロップ２００の動作については、フリップフロップ２００が未知状態にある場合を示す図５及び６を参照して述べる。例えば、リップルカウンタの場合、ｓｃｌｋが停止する時、フリップフロップの中には、どの状態にあるか不明なものがある。しかしながら、それでも状態情報をセーブすることが望ましい。リップルカウンタは、未知状態のフリップフロップを有する回路の唯一の例である。即ち、他の種類の回路は、ｓｃｌｋが停止する時、フリップフロップの状態が不明である場合、フリップフロップを用い得る。これらの種類の事例では、図６の表に例示したように、電力がフリップフロップ２００のスレーブ又はマスタ部のいずれか一方から除去されないように、ＶＤＤ１及びＶＤＤ２は、双方共、ＶＤＤＣによって提供される。
【００２６】
例えば、図５において、通常動作時（ＰＧがディアサートされる又は０にセットされる場合）、図３を参照して上述したように、フリップフロップ２００が、ポジティブエッジトリガ式フリップフロップとして動作すると仮定する。しかしながら、他の実施形態において、未知状態のフリップフロップは、ネガティブエッジ・フリップフロップであってよく、この場合、図４を参照して上述したように、通常動作時、ネガティブエッジ・フリップフロップとして動作することに留意されたい。ＰＧがアサートされ（即ち、１にセットされ）、また、ｓｃｌｋがオフになる場合、スイッチ２１０及び２１８は、オンになり、スイッチ２０８及び２１６は、オフになり、こうして、状態を保持し得る。即ち、スイッチ２１０がオンの状態で、マスタ２０２には、インバータ２１２及び２１４によって形成されるラッチが含まれる。同様に、スイッチ２１８がオンの状態で、スレーブ２０４には、インバータ２２０及び２２２によって形成されるラッチが含まれ、この場合、スレーブ２０４は、スイッチ２１６をオフにすることによってマスタ２０２から隔離され、また、マスタ２０２は、スイッチ２０８をオフにすることによって他の入力から隔離される。更に、電力は、インバータ２１２、２１４、２２０、及び２２２のいずれからも除去されない。このようにして、フリップフロップ２００がどの状態にあるかにかかわらず、その状態が保持される。即ち、ｓｃｌｋがオフになった時、その時点で、マスタ２０２又はスレーブ２０４のいずれがフリップフロップ２００の状態を保持するかにかかわらず、マスタ２０２及びスレーブ２０４双方の現在の状態がセーブされることから、その状態がセーブされる。従って、これらの事例の場合、スイッチコントローラ２０６は、任意の種類の回路を用いて、図５の表の機能を実現するように構成し得る。
【００２７】
従って、フリップフロップ２００等の改良型状態保持フリップフロップの機能を用いて、状態を保持し、漏れ電力を低減できることを認識し得る。設計におけるフリップフロップの種類（ポジティブエッジ、ネガティブエッジ、又はそれが既知の状態にあるかどうか）に依存して、ＶＤＤ及びＶＤＤＣを適切に用い得る。ある場合は、ＶＤＤＣは、マスタ又はスレーブ部の内の１つだけに提供され、また、他の場合は、ＶＤＤＣは、マスタ及びスレーブ部双方に提供し得る。また、例示した実施形態において、フリップフロップ２００には、追加のラッチを必要とせずに状態を保持することが可能であって、更に、電力損失を低減又は抑制することが可能な２つの直列接続のラッチ（例えば、マスタ２０２及びスレーブ２０４）が含まれることに留意されたい。
【００２８】
他の実施形態は、必要に応じて、スイッチ及び電源を異なるように用い得る。例えば、試験の目的のために、一実施形態では、例えば、試験モード信号（図示せず）を介してスイッチコントローラ２０６に示される試験モードを用い得る。試験モード信号がアサートされると、スイッチコントローラは、スイッチ２０８及び２１６をオンし、また、スイッチ２１０及び２１８をオフし、こうして、入力Ｄは、どのラッチにも記憶されずに、Ｑを直接出力するように経路選択し得る。また、他の実施形態において、フリップフロップ２００は、異なるように構成し得ることに留意されたい。例えば、一実施形態において、スイッチ２１０及びインバータ２１２は、トライステートインバータ（トライステータブル・インバータとも称する）として実現し得るが、ここで、スイッチ２１０をイネーブルにしようとする場合、トライステートインバータは、インバータとして動作し、その入力に基づき１又は０を出力し、また、スイッチ２１０をディスエーブルにしようとする場合、トライステートインバータの出力は、高インピーダンスである（スイッチ２１０がオフであることに対応する）。同じ修正は、インバータ２２０及びスイッチ２１８に対して行い得る。また、他の種類の回路又は要素を用いて、スイッチ２０８、２１０、２１６、及び２１８を実現し得る。即ち、例示した実施形態において、それらは、共に接続されたＮＭＯＳ及びＰＭＯＳトランジスタを有する通過ゲートとして実現される。しかしながら、他の実施形態において、それらは、異なるように実現し得る。
【００２９】
従って、一実施形態において、状態保持フリップフロップには、入力及び出力ノード及び２つのラッチが含まれる。２つのラッチには、マスタラッチ及びスレーブラッチが含まれ、各々入力及び出力ノードと直列に接続された回路要素を含み、ラッチの内の第１番目は、電力がラッチの内の第２番目から切り離される電力管理モード時、そのフリップフロップの状態を保持するように構成される。他の実施形態において、状態保持フリップフロップには、入力及び出力ノード及び２つのラッチが含まれる。２つのラッチには、マスタラッチ及びスレーブラッチが含まれ、各々入力及び出力ノードと直列に接続された回路要素を含み、ラッチの内の第１番目は、第１電源信号を用いて動作するように接続され、ラッチの内の第２番目は、第２電源信号を用いて動作するように接続され、第２電源信号は、調整制御可能な電源信号である。更に他の実施形態において、状態保持フリップフロップには、入力ノード、出力ノード、複数の回路要素を含むマスタ、及び複数の回路要素を含むスレーブが含まれる。この場合、入力ノード、マスタの少なくとも１つの回路要素、スレーブの少なくとも１つの回路要素、及び出力ノードは、直列に接続される。また、この場合、マスタ及びスレーブの内の少なくとも１つからの少なくとも第１回路要素は、電力がマスタ及びスレーブの内の少なくとも１つからの少なくとも第２回路要素から切り離される電力管理モード時、電力を受電するように構成される。更に他の実施形態において、回路には、入力から出力へのデータ経路と、データ経路に第１回路要素を有し入力からデータを受信するように接続されたマスタループ回路と、データ経路に第２回路要素を有し第１回路要素からデータを受信しデータを出力に提供するように接続されたスレーブループ回路と、状態保持制御手段と、を含む状態保持フリップフロップが含まれる。状態保持制御手段には、マスタループ回路をイネーブル状態にしてフリップフロップの状態を保持するための手段、スレーブループ回路をイネーブル状態にしてフリップフロップの状態を保持するための手段、又は、マスタ及びスレーブループ回路双方をイネーブル状態にしてフリップフロップの状態を保持するための手段が含まれる。
【００３０】
図７は、本発明の一実施形態に基づく状態保持バッファ３００の例を示す。状態保持バッファ３００は、ＰＧ１２０に応じて、現在の状態を保持しつつ、漏れ電力を低減するために電力ゲート制御し得る。状態保持バッファ３００は、入力Ａ（これは、バッファデータ入力とも称し得る）を受信し、出力Ｙ（これは、バッファデータ出力とも称し得る）を提供する。状態保持バッファ３００には、Ａを受信するための入力と、インバータ３０４の入力及びインバータ３０６の出力に接続された出力と、を有するインバータ３０２が含まれる。インバータ３０４の出力は、出力Ｙを提供し、インバータ３０６の入力に接続される。インバータ３０２の反転イネーブル入力は、ＰＧ（例えば、ＰＧ１２０等）を受信するように接続され、また、インバータ３０８の入力に接続される。インバータ３０８の出力は、インバータ３０６の反転イネーブル入力に接続される。インバータ３０２は、ＶＤＤを受信し、インバータ３０４、３０６、及び３０８は、ＶＤＤＣを受信する。従って、第１バッファ部（例えば、インバータ３０２）は、第１電源信号（例えば、ＶＤＤ）を受信し、一方、第２バッファ部（例えば、インバータ３０４、３０６、及び３０８）は、第２電源信号（例えば、ＶＤＤＣ）を受信する。
【００３１】
状態保持バッファ３００の動作について、図８の表を参照して、説明する。通常動作時、ＰＧがディアサートされ、１が入力Ａとして受信されると、１が出力Ｙとして提供される。同様に、０が入力Ａとして受信されると、０は、出力Ｙとして提供される。即ち、図７において、ＰＧがディアサートされると（即ち、論理レベル０であると）、インバータ３０２は、イネーブル状態になり、一方、インバータ３０６は、ディスエーブル状態になる。このようにして、入力Ａは、インバータ３０２及び３０４（データ経路インバータとも称する）を介して提供され、出力Ｙを提供する。また、ＰＧがディアサートされると、ＶＤＤが（例えば、図１のトランジスタ１０４を介して）ＶＤＤＣに接続されて、ほぼＶＤＤＣに等しいことから、全てのインバータ３０２、３０４、３０８、及び３０６が電力供給される。しかしながら、低電力モード時等、ＰＧがアサートされ（即ち、論理レベル１にセットされ）電力ゲート制御が行われると、出力Ｙは、その状態を保持し、（また、入力Ａは、状態保持バッファ３００の動作に影響をもはや及ぼさないことから、“ドントケア”として処理し得る）。即ち、ＰＧがアサートされると、Ｙは、Ｙが何であっても、この値のままである。図７において、ＰＧがアサートされる（即ち、論理レベル１である）場合、インバータ３０２は、ディスエーブル状態になり、インバータ３０６は、イネーブル状態になる。また、一旦、ＰＧがアサートされると、ＶＤＤは、インバータ３０４、３０６、及び３０８だけが電力供給されたままになるように、ＶＤＤＣから切り離し得る。従って、インバータ３０２は、もはや電力を受電せず、従って、漏れ電力を低減する。ＰＧがアサートされる間、出力Ｙにおける値は、インバータ３０４及び３０６によって形成されるラッチにより維持される。また、インバータ３０２及び３０６の反転イネーブル入力間に接続されたインバータ３０８は、インバータ３０２及び３０６が同時にイネーブルにならないことを保証し、インバータ３０２の出力におけるデータ競合問題を防止することに留意されたい。しかしながら、他の実施形態では、インバータ３０８が存在しなかったり、あるいは、他の回路を用いてデータ競合を防止したりすることがある。従って、状態保持バッファ３００を用いて、電力ゲート制御時、出力Ｙの状態を維持し得ることに留意されたい。また、出力Ｙの状態は、分かる必要がないことに留意されたい。即ち、電力ゲート制御時、出力Ｙが０又は１であるかどうかにかかわらず、出力Ｙが、インバータ３０６を介して、インバータ３０４の入力に単にフィードバックされることから、この状態が維持される。
【００３２】
図９は、本発明の他の実施形態に基づく状態保持バッファ４００を示す。状態保持バッファ４００は、状態保持バッファ３００と同様であるが、維持される状態が分かっている場合に用い得る。状態保持バッファ４００は、入力Ａ（これは、バッファデータ入力とも称し得る）を受信し、また、出力Ｙ（これは、バッファデータ出力とも称し得る）を提供する。状態保持バッファ４００には、Ａを受信するための入力と、インバータ４０４の入力及びインバータ４０６の出力に接続された出力と、を有するインバータ４０２が含まれる。インバータ４０４の出力は、出力Ｙを提供する。インバータ３０６の入力は、状態保持入力Ｓを受信する。インバータ４０２の反転イネーブル入力は、ＰＧ（例えば、ＰＧ１２０等）を受信するように接続され、また、インバータ４０８の入力に接続される。インバータ４０８の出力は、インバータ４０６の反転イネーブル入力に接続される。インバータ４０２は、ＶＤＤを受信し、インバータ４０４、４０６、及び４０８は、ＶＤＤＣを受信する。従って、第１バッファ部（例えば、インバータ４０２）は、第１電源信号（例えば、ＶＣＣ）を受信し、一方、第２バッファ部（例えば、インバータ４０４、４０６、及び４０８）は、第２電源信号（例えば、ＶＤＤＣ）を受信する。
【００３３】
図１０の表を参照して、状態保持バッファ４００の動作について説明する。通常動作時、ＰＧがディアサートされ、１が入力Ａとして受信されると、１は、出力Ｙとして提供される。同様に、０が入力Ａとして受信されると、０が、出力Ｙとして提供される。即ち、図９において、ＰＧがディアサートされる（即ち、論理レベル０である）と、インバータ４０２は、イネーブル状態になり、一方、インバータ４０６は、ディスエーブル状態になる。このようにして、入力Ａは、インバータ４０２及び４０４（データ経路インバータとも称する）を介して提供され、出力Ｙを提供する。また、ＰＧがディアサートされる場合、ＶＤＤが、（例えば、図１のトランジスタ１０４を介して）ＶＤＤＣに接続されて、ほぼＶＤＤＣに等しいことから、全てのインバータ４０２、４０４、４０８、及び４０６が電力供給される。状態保持入力Ｓは、ＰＧがアサートされない場合、状態保持バッファ４００の動作に影響を及ぼさないため、ＰＧがディアサートされる場合、“ドントケア”として処理されることに留意されたい。
【００３４】
しかしながら、低電力モード時等の電力ゲート制御のために、ＰＧがアサートされる（即ち、論理レベル１にセットされる）と、状態は、状態保持入力Ｓを出力Ｙとして提供することによって保持される（Ａは、状態保持バッファ４００の動作に影響をもはや及ぼさないことから、“ドントケア”として処理し得る）。従って、本実施形態において、Ｓは、電力ゲート制御時、状態保持バッファ４００の出力において望まれるどのような値にでもセットし得る。例えば、ＰＧがアサートされる時、保持バッファ４００の状態が何であるかが分かっていると、Ｓをそのようにセットして、電力ゲート制御時、出力Ｙとして提供し得る。このようにして、状態回路（例えば、インバータ４０６等）は、Ｓ及び反転電力ゲート制御表示信号（例えば、ＰＧ）の受信に応答して、バッファの状態をセットする。一実施形態において、Ｓは、例えば、トランジスタ等を介して、ハードウェア的に組み込まれ、インバータ４０６の入力に論理レベル１又は０を提供する。他の選択肢として、Ｓは、（記憶されたビット等に対応して）ソフトウェアによってセットされる又は（プログラム可能なヒューズ等を介して）ハードウェアによってセットされるプログラム可能な値であってよい。
【００３５】
従って、図９において、ＰＧがアサートされる（即ち、論理レベル１である）場合、インバータ４０２は、ディスエーブル状態になり、インバータ４０６は、イネーブル状態になる。また、一旦、ＰＧがアサートされると、ＶＤＤは、インバータ４０４、４０６、及び４０８だけが電力供給されたままになるように、ＶＤＤＣから切り離し得る。従って、インバータ４０２は、もはや電力を受電せず、こうして漏れ電力を低減する。ＰＧがアサートされる間、出力Ｙにおける値は、インバータ４０６及び４０４を介して、状態保持入力Ｓによって提供される。また、インバータ４０２及び４０６の反転イネーブル入力間に接続されたインバータ４０８は、インバータ４０２及び４０６が、同時にイネーブル状態にならないことを保証して、インバータ４０２の出力におけるデータ競合問題を防止することに留意されたい。しかしながら、他の実施形態において、インバータ４０８が存在しなかったり、あるいは、他の回路を用いてデータ競合を防止したりすることがある。従って、出力Ｙの状態が分かっている場合等は、状態保持入力Ｓを利用して、電力ゲート制御時、出力Ｙの状態を維持するために、状態保持バッファ４００を用い得ることに留意されたい。
【００３６】
図１４は、本発明の他の実施形態に基づく状態保持バッファ５００を示す。状態保持バッファ５００は、維持される状態が論理レベルゼロであると分かっている場合に用いることができ、従って、ハードウェア的に組み込まれたプルアップトランジスタを用いて状態を維持し得る。状態保持バッファ５００は、入力Ａ（これは、バッファデータ入力とも称し得る）を受信し、出力Ｙ（これは、バッファデータ出力とも称し得る）を提供する。状態保持バッファ５００には、Ａを受信するための入力と、インバータ５０４の入力に接続された出力と、を有するインバータ５０２が含まれる。インバータ５０４の出力は、出力Ｙを提供する。インバータ５０２の反転イネーブル入力は、ＰＧ（例えば、ＰＧ１２０等）を受信するように接続され、また、インバータ５０８の入力に接続される。また、状態保持バッファ５００には、インバータ５０４の入力に接続された第１電流電極（第１電流処理端子とも称する）と、ＶＤＤＣに接続された第２電流電極（第２電流処理端子とも称する）と、を有するプルアップトランジスタ５１０が含まれる。インバータ５０８の出力は、プルアップトランジスタ５１０の制御電極（制御端子とも称する）に接続される。インバータ４０２は、ＶＤＤを受信し、インバータ５０４及び４０８は、ＶＤＤＣを受信する。従って、第１バッファ部（例えば、インバータ５０２）は、第１電源信号（例えば、ＶＣＣ）を受信し、一方、第２バッファ部（例えば、インバータ４０４及び４０８）は、第２電源信号（例えば、ＶＤＤＣ）を受信する。また、本実施形態において、トランジスタ５１０の第２電流電極は、本実施形態ではＶＤＤＣに対応する状態保持入力Ｓに接続されることに留意されたい。
【００３７】
図１５の表を参照して、状態保持バッファ５００の動作について説明する。通常動作時、ＰＧがディアサートされ、１が入力Ａとして受信されると、１は、出力Ｙとして提供される。同様に、０が入力Ａとして受信されると、０は、出力Ｙとして提供される。即ち、図１４において、ＰＧがディアサートされる（即ち、論理レベル０である）と、インバータ５０２は、イネーブル状態になり、プルアップトランジスタ５１０は、（その制御電極における値は、論理レベル１であることから、）オフである。このようにして、入力Ａは、インバータ５０２及び５０４（データ経路インバータとも称する）を介して提供され、出力Ｙを提供する。また、ＰＧがディアサートされる場合、ＶＤＤは、（例えば、図１のトランジスタ１０４を介して）ＶＤＤＣに接続されて、ほぼＶＤＤＣに等しいことから、全てのインバータ５０２、５０４、及び５０８が電力供給される。
【００３８】
しかしながら、低電力モード時等の電力ゲート制御のために、ＰＧがアサートされる（即ち、論理レベル１にセットされる）と、状態は、プルアップトランジスタ５１０によって保持される。即ち、ＰＧがアサートされると、プルアップトランジスタ５１０は、オンであり、従って、インバータ５０４への入力がＶＤＤＣに結合され、こうして、それを論理レベル１に引き上げる。従って、インバータ５０４の出力は、論理レベル０に維持される。このようにして、（例えば、プルアップトランジスタ５１０を含む）状態回路は、状態保持入力（例えば、トランジスタ５１０の第２電流電極に接続されるＶＤＤＣ）及び反転電力ゲート制御表示信号（例えば、ＰＧ）の受信に応答して、バッファの状態をセットする。従って、図１４において、ＰＧがアサートされる（即ち、論理レベル１である）場合、インバータ５０２は、ディスエーブル状態になり、インバータ５０６は、イネーブル状態になる。また、一旦ＰＧがアサートされると、ＶＤＤは、インバータ５０４及び５０８だけが電力供給されたままになるように、ＶＤＤＣから切り離し得る。従って、インバータ５０２は、もはや電力を受電せず、従って、漏れ電力を低減する。
【００３９】
図１６は、本発明の他の実施形態に基づく状態保持バッファ６００を示す。状態保持バッファ６００は、維持される状態が論理レベル１であると分かっている場合に用いることができ、従って、ハードウェア的に組み込まれるプルダウントランジスタを用いて、状態を維持し得る。状態保持バッファ６００は、入力Ａ（これは、バッファデータ入力とも称し得る）を受信し、出力Ｙ（これは、バッファデータ出力とも称し得る）を提供する。状態保持バッファ６００には、Ａを受信するための入力と、インバータ６０４の入力に接続された出力と、を有するインバータ６０２が含まれる。インバータ６０４の出力は、出力Ｙを提供する。インバータ６０２の反転イネーブル入力は、ＰＧ（例えば、ＰＧ１２０等）を受信するように接続される。また、状態保持バッファ５００には、インバータ６０４の入力に接続された第１電流電極（第１電流処理端子とも称する）と、接地電位（ＧＮＤ）に接続された第２電流電極（第２電流処理端子とも称する）と、を有するプルダウントランジスタ６１０が含まれる。また、ＰＧ（例えば、ＰＧ１２０等）は、プルダウントランジスタ６１０の制御電極（制御端子とも称する）に提供される。インバータ５０２は、ＶＤＤを受信し、インバータ６０４は、ＶＤＤＣを受信する。従って、第１バッファ部（例えば、インバータ６０２）は、第１電源信号（例えば、ＶＣＣ）を受信し、一方、第２バッファ部（例えば、インバータ６０４）は、第２電源信号（例えば、ＶＤＤＣ）を受信する。また、本実施形態において、トランジスタ６１０の第２電流電極は、本実施形態ではＧＮＤに対応する状態保持入力Ｓに接続されることに留意されたい。
【００４０】
図１７の表を参照して、動作状態保持バッファ６００について説明する。通常動作時、ＰＧがディアサートされ、１が入力Ａとして受信されると、１は、出力Ｙとして提供される。同様に、０が入力Ａとして受信されると、０は、出力Ｙとして提供される。即ち、図１６において、ＰＧがディアサートされる（即ち、論理レベル０である）と、インバータ６０２は、イネーブル状態になり、プルダウントランジスタ６１０は、（その制御電極における値が論理レベル０であることから、）オフである。このようにして、入力Ａは、インバータ６０２及び６０４（データ経路インバータとも称する）を介して提供され、出力Ｙを提供する。また、ＰＧがディアサートされる場合、ＶＤＤは、（例えば、図１のトランジスタ１０４を介して）ＶＤＤＣに接続されて、ほぼＶＤＤＣに等しいことから、全てのインバータ６０２、６０４、及び６０８が電力供給される。
【００４１】
しかしながら、低電力モード時等の電力ゲート制御ために、ＰＧがアサートされる（即ち、論理レベル１にセットされる）と、状態は、プルダウントランジスタ６１０によって保持される。即ち、ＰＧがアサートされる場合、プルダウントランジスタ６１０は、オンであり、従って、インバータ６０４への入力がＧＮＤに結合され、こうして、それを論理レベル０に引き下げる。従って、インバータ６０４の出力は、論理レベル１に維持される。このようにして、（例えば、プルダウントランジスタ６１０を含む）状態回路は、状態保持入力（例えば、トランジスタ６１０の第２電流電極に接続されるＧＮＤ）及び電力ゲート制御表示信号（例えば、ＰＧ）の受信に応答して、バッファの状態をセットする。従って、図１６において、ＰＧがアサートされる（即ち、論理レベル１である）場合、インバータ６０２は、ディスエーブル状態になり、インバータ６０６は、イネーブル状態になる。また、一旦ＰＧがアサートされると、インバータ６０４だけに電力供給されるように、ＶＤＤは、ＶＤＤＣから切り離し得る。従って、インバータ６０２は、もはや電力を受電せず、こうして、漏れ電力を低減する。
【００４２】
図７−１０及び図１４−１７において提供された様々な例によって認識し得るように、任意の種類の状態セット回路は、状態保持データ入力における状態保持信号Ｓ及び電力ゲート制御表示信号の受信に応じて、バッファの状態をセットするために用い得る。即ち、他の実施形態は、異なる種類の回路を用いて、バッファ用の状態保持を提供し得るが、この場合、バッファの異なる部位は、低電力モード時、漏れ電力を低減するように、異なる電源信号（例えば、ＶＤＤ及びＶＤＤＣ等）を受信し得る。
【００４３】
従って、一実施形態において、バッファには、第１電源信号を受信するように接続された第１バッファ部と、第２電源信号を受信するように接続された第２バッファ部と、が含まれる。第１バッファ部には、バッファデータ入力が含まれ、第２バッファ部には、バッファデータ出力が含まれ、この場合、第１及び第２電源信号の内の一方が、第１及び第２電源信号の内の他方とは独立に、選択的にイネーブル状態になるように構成される。本実施形態において、第１及び第２バッファ部には、各々、バッファデータ入力とバッファデータ出力との間に直列に接続されたデータ経路部を含むことができ、また、第１又は第２バッファ部の内の１つには、電力節約モード時、バッファ状態保持を可能にするフィードバック部を含み得る。他の実施形態において、回路には、第１電源信号と、第１電源信号を受信し、ゲート制御して、第２電源信号を制御可能に提供するように接続されたゲート回路と、複数のバッファセルと、が含まれる。各バッファセルには、バッファ入力と、バッファ出力と、バッファ入力に接続され第１電源を受電するように接続されたインバータ入力を有するインバータと、インバータ出力に接続されたラッチ入力及びバッファ出力に接続されたラッチ出力を有するラッチと、が含まれる。ラッチは、第２電源を受電するように接続される。更に他の実施形態において、回路の電力節約モードにおいて回路の状態を保持するための方法には、第１電力信号を受信するように接続された第１バッファ部を提供する段階が含まれ、第１バッファ部は、バッファ入力を含む。本方法には、また、第２電力信号を受信するように接続された第２バッファ部を提供する段階が含まれ、第２バッファ部は、バッファ出力を含む。本方法には、更に、第１電力信号を第１バッファ部に供給する段階と、第２電力信号を第２バッファ部に供給する段階と、第１バッファ部への第１電力信号をディスエーブル状態にする段階と、第１電力信号がディスエーブル状態である間、バッファ状態を第２バッファ部に記憶する段階と、が含まれる。更に他の実施形態において、単一のビットバッファセルを動作するための方法には、バッファの第１部位に電力を供給する段階と、バッファの第２部位に電力を供給する段階と、電力がバッファの第２部位に供給される間、バッファの第１部位への電力をディスエーブル状態にする段階と、が含まれる。
【００４４】
本発明の様々な実施形態に基づく状態保持コントローラの動作及び信号のタイミングについて、図１１−１３を参照して説明する。図１３は、本発明の一実施形態に基づく図１のデータ処理システム１００の動作を説明するフロー５００を示す。図１１は、ハードウェア実装の一実施形態に対応するタイミング図を示し、図１２は、ソフトウェア実装の一実施形態に対応するタイミング図を示す。（図１１及び１２に示す信号は、正の論理信号として実装されるが、他の実施形態では、任意の信号を負の論理信号として実装し得ることに留意されたい）。従って、まず、図１のデータ処理システムを参照して、図１３のフローについて説明する。
【００４５】
図１３において、フロー５００は、開始５０１で始まり、次に、フローは、ブロック５０５に進み、そこで、スリープ領域に対する電力ゲート（ＰＧ）要求が受信される。例えば、図１において、このことは、状態保持コントローラ１１８がＰＧｒｅｑ１１４を受信することに対応し得る。一実施形態では、ＰＧ要求がＰＧｒｅｑ１１４を介して受信された時、全スリープ領域機能回路１２４が電力ゲート制御されるように、ＰＧｒｅｑ１１４は、全スリープ領域機能回路１２４に対応し得る。（本実施形態では、ＰＧ要求は、一括ＰＧ要求と称し得ることに留意されたい）。しかしながら、他の実施形態では、ＰＧ要求は、スリープ領域機能回路１２４の部位に対応する、又は独立に電力ゲート制御し得るデータ処理システム１００内の他の場所におけるスリープ領域機能回路の他の部位に対応する、ＰＧｒｅｑ１１４を介して受信し得る。（これらの実施形態において、ＰＧ要求は、部分的ＰＧ要求とも称し得ることに留意されたい。）例えば、ＰＧｒｅｑ１１４を介して受信される各ＰＧ要求には、更に、どのスリープ領域が電力ゲート制御されるかの表示を含み得る（この場合、電力ゲート制御されるスリープ領域は、例えば、スリープ領域機能回路１２４の一部分であってよい）。また、独立に電力ゲート制御し得る多数の部位を有する本実施形態において、各部位は、クロックコントローラ１１６から対応するｓｃｌｋ１２２を受信し、状態保持コントローラ１１８から対応するＰＧ１２０を受信し、ＶＤＤＣ１３０から導出された対応するＶＤＤ１３２を受信し得る。しかしながら、本明細書の説明を容易にするために、ＰＧｒｅｑ１１４を介して受信される要求は、全スリープ領域機能回路１２４が電力ゲート制御されることを示すと仮定する。従って、ｓｃｌｋ１２２、ＰＧ１２０、及びＶＤＤ１３２は、全てスリープ領域機能回路１２４に提供される。
【００４６】
図１３に戻ると、ＰＧ要求を受信した後、フローは、ブロック５１０に進み、ここで、対応するスリープ領域クロック（ｓｃｌｋ）は、ディスエーブル状態になる。従って、図１において、状態保持コントローラ１１８は、ＰＧｒｅｑ１１４を介してＰＧ要求を受信すると、ｃｌｋ制御信号１３４を介してクロックコントローラ１１６と通信を行い、クロックコントローラ１１６がｓｃｌｋ１２２をディスエーブル状態にし得る。従って、ｓｃｌｋ１２２は、全スリープ領域機能回路１２４に対してディスエーブル状態になる。（しかしながら、他の実施形態において、前述したように、ｓｃｌｋ１２２は、電力ゲート制御されるスリープ領域機能回路１２４の一部分だけ対してディスエーブル状態になり得ることに留意されたい。本実施形態では、データ処理システム１００は、ｓｃｌｋ１２２等のスリープ領域クロックが、独立に電力ゲート制御される部位に対して別個に提供されるように構成し得る。）図１３に戻ると、フローは、次に、ブロック５１５に進み、ここで、ｓｃｌｋがディスエーブル状態であることを確認する。従って、一実施形態において、クロックコントローラ１１６は、ｓｃｌｋ１２２がディスエーブル状態になったという確認を状態保持コントローラ１１８に提供し得る。
【００４７】
図１３のブロック５１５の後、フローは、ブロック５２０に進み、ここで、対応するスリープ領域回路の現在の状態がセーブされる。例えば、スリープ領域機能回路１２４には、図２、７、９、１４、及び１６を参照して説明したものと同様な状態保持フリップフロップ及びバッファを含み得る。従って、状態保持コントローラ１１８は、ＰＧ１２０をアサートし得るが、この場合、ＰＧ１２０に応じて、状態が維持される。例えば、図２、７、９、１４、及び１６におけるフリップフロップ２００並びにバッファ３００及び４００を参照して前述したように、状態保持フリップフロップ及びバッファは、ＰＧ１２０に応答して状態をセーブする。（他の実施形態では、前述したように、ＰＧ１２０は、例えば、ＰＧｒｅｑ１１４によって示すように、電力ゲート制御されるスリープ領域機能回路１２４の部位だけに対してアサートし得ることに留意されたい。本実施形態では、データ処理システム１００は、独立に電力ゲート制御される部位に対してＰＧ１２０等の別個のＰＧ信号を提供するように構成し得る。）
図１３のブロック５２０の後、フローは、ブロック５２５に進み、ここで、供給電圧が、対応するスリープ領域回路の部位から除去又は低減し得る。図１の例では、ＰＧｒｅｑ１１４を介したＰＧ要求は、全スリープ領域機能回路１２４に対応すると仮定しているが、状態保持コントローラ１１８は、ＶＤＤ制御１１０をアサート（即ち、ＶＤＤ制御１１０を論理レベル１にセット）して、ＶＤＤＣ１３０からＶＤＤ１３２を切り離し得るが、このため、ＶＤＤ１３２によって電力供給される回路部位は、もはや電力を受電しない。例えば、フリップフロップ２００並びにバッファ３００及び４００を参照して前述したように、電力は、ＶＤＤによって電力供給される回路要素から除去される（一方、ＶＤＤＣによって電力供給されるものは、状態を保持するために電力供給され続ける）。通常又は最高出力動作時、状態保持コントローラ１１８は、ＶＤＤ１３２がトランジスタ１０４を介してＶＤＤＣ１３０に接続されてＶＤＤ１３２がほぼＶＤＤＣ１３０に等しいように、ＶＤＤ制御１１０のディアサート状態を維持し得ることに留意されたい。他の実施形態において、データ処理システム１００を異なるように構成して、これにより、電力を除去するためにＶＤＤ１３２がＶＤＤＣ１３２から切り離されないが、その代わり、ＶＤＤ１３２を低減し得ることに留意されたい。例えば、一実施形態において、ＶＤＤ１３２は、トランジスタ１０４を介してＶＤＤＣ１３０に接続しなくてもよいが、その代わり、ＶＤＤ１３２に電力を供給するデータ処理システム１００内における他の電圧レギュレータ（図示せず）に接続し得る。本実施形態において、ＶＤＤ１３２に接続された電圧レギュレータは、漏れ電力を低減するために、状態保持コントローラ１１８からの制御信号に基づき、ＶＤＤ１３２によって供給される電圧を低減し得る。
【００４８】
図１３のブロック５２５の後、フローは、ブロック５３０に進み、ここで、動作領域回路及び残りのスリープ領域回路への供給電圧が低減される。例えば、図１のデータ処理システムでは、もっと多くの電力が保存されるように、電圧レギュレータ１０２によってＶＤＤＣ１３０を低減し得る。従って、ＶＤＤＣ１３０によって電力供給されるスリープ領域機能回路１２４の全回路及びＶＤＤＣ１３０によって電力供給される動作領域機能回路１２８の回路は、電力ゲート制御時、低減された電力で動作し得る。しかしながら、他の実施形態において、このことはオプションであることに留意されたい。即ち、一実施形態において、電力ゲート制御時、ＶＤＤＣ１３０は、同じ電力レベルのままである。
【００４９】
図１３に戻ると、フローは、次に、判断ひし形５３５に進み、ここで、更なるＰＧ要求が受信されるかどうか判断する。そうであれば、次に、フローは、ブロック５４０に進み、ここで、追加のＰＧ要求は、前述したように、ブロック５１０−５３０のプロセスを用いて処理される。次に、フローは、判断ひし形５３５に戻る。しかしながら、判断ひし形５３５では、ＰＧ要求が更に受信されない場合、フローは、ブロック５４５に進み、ここで、一括又は部分的ＰＧ終了要求が受信される。例えば、図１の例において、一括ＰＧ終了要求は、ＰＧｒｅｑ１１４を介して（ＰＧｒｅｑ１１４等のディアサートによって）示し得る。独立に電力ゲート制御し得る回路部位を有する他の実施形態において、これら部位の１つ又は複数に対応する部分的ＰＧ終了要求を受信し得る。例えば、それらは、また、どの部位がもはや電力ゲート制御されないかに関する表示と共にＰＧｒｅｑ１１４を介して受信し得る。
【００５０】
ブロック５４５の後、フローは、ブロック５５０に進み、ここで、供給電圧が、動作及びスリープ領域回路に対して所望の通りに復旧される。例えば、状態保持コントローラ１１８は、ＶＤＤ１３２をＶＤＤＣ１３０に再度接続し得るように、ＶＤＤ制御１１０をディアサートし、これによって、ＶＤＤ１３２によって電力供給される要素への電力を復旧し得る。同様に、ＶＤＤ１３２は、低減された場合、全出力に戻し得る。また、ＶＤＤＣ１３０は、低減された場合、全出力に戻し得る。他の選択肢として、データ処理システム１００は、電力ゲート制御が望まれない場合、電力が低減された状態の低電力モードに留まり得る。本実施形態において、供給電圧ＶＤＤＣ１３０及びＶＤＤ１３２は、復旧し得ない（即ち、ブロック５５０は、オプションである）。
【００５１】
次に、フロー５００は、ブロック５５５に進み、ここで、スリープ領域回路の状態が復旧される。即ち、一旦、所望の通りに供給電圧が復旧されると、状態は、復旧し得る。例えば、データ処理システム１００では、一旦、ＶＤＤ制御１１０がディアサートされてＶＤＤ１３２及びＶＤＤＣ１３０を復旧すると、フリップフロップ２００並びにバッファ３００及び４００を参照して前述したように、状態保持コントローラ１１８は、状態を復旧し得るように、ＰＧ１２０をディアサートし得る。次に、フローは、ブロック５６０に進み、ここで、電力ゲート制御を終了しようとしている対応するスリープ領域のｓｃｌｋは、イネーブル状態になる。従って、データ処理システム１００では、一旦ＰＧ１２０がディアサートされると、状態保持コントローラ１１８は、ｓｃｌｋ１２２を再度イネーブル状態にできることをクロックコントローラ１１６に示し得る。次に、フローは、終了５６５に進む。
【００５２】
図１１は、本発明の一実施形態に基づく信号の例示したタイミングのタイミング図を示す。例えば、図１１のタイミング図は、図１３を参照して説明した電力ゲート制御を達成するハードウェア実装に対応し得る。ＰＧｒｅｑ１１４がアサートされるのに応じて（これは、全スリープ領域機能回路１２４用の一括ＰＧ要求であると再度仮定して）、図１１においてＰＧｒｅｑ１１４の立ち上がり端から停止ｃｌｋの立ち上がり端までの矢印によって示すように、（例えば、状態保持コントローラ１１８によって、ｃｌｋ制御信号１３４を介して、）停止クロック信号をアサートし得る。停止ｃｌｋ信号に応じて、クロックコントローラ１１６は、ｓｃｌｋ１２２をディスエーブル状態にし得る。これは、アサートされた停止ｃｌｋ信号を受信すると直ぐに又はその後の或る所定の時間に行われ、クロックが適切にディスエーブル状態であることを保証し得る。状態保持コントローラ１１８は、ｓｃｌｋ１２２がディスエーブル状態になった後の或る時間Ｔ０に、ＰＧ１２０をアサートし得る。一実施形態において、状態保持コントローラ１１８は、ｓｃｌｋ１２２がディスエーブル状態になったことを示す信号をクロックコントローラ１１６からｃｌｋ制御信号１３４を介して受信し、状態保持コントローラは、この信号に応答してＰＧ１２０をアサートし得る。しかしながら、他の実施形態では、停止ｃｌｋの立ち上がり端からＰＧ１２０がアサートされる時間への点線の矢印によって示すように、状態保持コントローラ１１８は、停止ｃｌｋをアサートして所定量の時間後、ＰＧ１２０をアサートし得る。所定量の時間は、必要に応じて、ｓｃｌｋ１２２のディスエーブル化とＰＧ１２０のアサートとの間において、充分な量の時間が確実に経過するように構成し得る。幾つかの実施形態において、Ｔ０は、０であってよく、一方、他の実施形態において、Ｔ０は、長くてよい。
【００５３】
ＰＧ１２０のアサート後、状態保持コントローラ１１８は、ＶＤＤ１３２によって供給される電力を除去するために、ＶＤＤ制御１１０をアサートする。一実施形態において、状態保持コントローラ１１８は、ＶＤＤ制御１１０がアサートされる前、ＰＧ１２０のアサート後所定量の時間、待機する。所定量の時間は、充分な量の時間Ｔ１が経過して、ＰＧ１２０のアサートが、供給電力が除去又は低減される前に、適切に全ての回路要素に確実に伝わるように構成し得る。もしくは、ＰＧ１２０のアサートが受信される前に供給電力が除去又は低減される場合、（上述したフリップフロップ２００並びにバッファ３００、４００、５００、及び６００の例で分かるように）、状態は適切にセーブし得ない。Ｔ１の後、ＶＤＤ制御１１０がアサートされ、しばらくした後、（ＶＤＤ制御１１０の立ち上がり端からＶＤＤ１３２の立ち下がり端への矢印によって示すように）、ＶＤＤ１３２は、０Ｖのレベルに低下する。他の実施形態において、ＶＤＤ１３２は、完全に０Ｖに低下するよりもむしろ低減し得る。また、一実施形態において、図１１に示すように、ＶＤＤ１３０も、ＶＤＤ制御１１０のアサートに応じて、（ＶＤＤ制御１１０の立ち上がり端からＶＤＤ１３０の立ち下がり端への矢印によって示すように）、低減し得る。しかしながら、他の実施形態において、ＶＤＤＣ１３０は、ＶＤＤ１３２の立ち下がり端に応じて減少させるか、あるいは、全く減少させなくてもよい。この時点で、データ処理システム１００は、電力ゲート制御され、低電力モードで動作する。
【００５４】
ＰＧｒｅｑ１１４をディアサートすると、状態保持コントローラ１１８は、ＶＤＤ１３２及びＶＤＤＣ１３０を復旧させるＶＤＤ制御１１０をディアサートする。ＶＤＤ制御１１０のディアサートの所定量の時間後、状態保持コントローラ１１８は、ＰＧ１２０をアサートする。所定量の時間は、状態を復旧する前に供給電圧が確実に復旧されるために、充分な量の時間Ｔ２が、供給電圧の復旧とＰＧ１２０のディアサートとの間で経過したことを保証し得る。ＰＧ１２０のディアサート後、状態保持コントローラ１１８は、クロックコントローラ１１６がｓｃｌｋ１２２を再度イネーブル状態にし得るように、ｃｌｋ制御信号１３４を介して、停止ｃｌｋ信号をディアサートする。従って、停止ｃｌｋ信号を受信してしばらくした後、クロックコントローラは、図１１において停止ｃｌｋの立ち下がり端からｓｃｌｋ１２２の立ち上がり端への点線の矢印によって示すように、ｓｃｌｋ１２２を再度イネーブル状態にする。
【００５５】
図１１の実施形態において、ＰＧｒｅｑ１１４は、様々な異なるやり方で生成し得ることに留意されたい。例えば、これは、電力管理ユニット（図示せず）によって、又はデータ処理システム１００の内部又は外部の他の回路によって提供し得る。一実施形態において、ＰＧｒｅｑ１１４は、データ処理システム１００上で走るソフトウェアを介してプログラム可能なメモリ内に記憶されるビットに基づき受信し得る。他の選択肢として、ＰＧｒｅｑ１１４は、それ自体、データ処理システム１００内の記憶回路のソフトウェア制御可能なビット（１つ又は複数）に対応し得る。図１２のタイミング図は、ソフトウェアビット（１つ又は複数）をＰＧｒｅｑ１１４として用い得る例を示す。ソフトウェアは、図１２のタイミング図を実現するために用い得るが、この場合、ソフトウェアは、データ処理システム１００内のメモリに配置して、プロセッサ部によって実行し得ることに留意されたい。例えば、ソフトウェアは、動作領域機能回路１２８内の回路によって実行でき、データ処理システム１００内の任意の場所に配置されたメモリに記憶し得る。他の選択肢として、ソフトウェアは、状態保持コントローラ１１８内の回路によって実行し得る。
【００５６】
図１２のタイミング図において、ＰＧ要求は、例えば、ＰＧｒｅｑビットをアサートすることによって受信し得る（本例では、ＰＧ要求は、また、全スリープ領域機能回路１２４に対する一括ＰＧ要求であると仮定する）。このビットのアサート後、ソフトウェアを用いて、クロックコントローラ１１６に対して、ｓｃｌｋ１２２が、ＰＧｒｅｑビットのアサートからｓｃｌｋ１２２のディスエーブル化への点線の矢印によって示すように、ディスエーブル状態になる予定であることを示し得る。ｓｃｌｋ１２２のディスエーブル化に応じて、停止クロック確認応答（停止ｃｌｋ＿ａｃｋ）ビット（１つ又は複数）をアサートして、ｓｃｌｋ１２２がディスエーブル状態になったことを示し得る。停止ｃｌｋ＿ａｃｋ信号に応じて、（データ処理システム１００内のどこかの記憶回路に記憶し得る）ＰＧビットをアサートして、電力ゲート制御が行われる予定であることを示し得る。次に、状態保持コントローラ１１８は、図１１を参照して前述したように、電圧制御１１０をアサートして、ＶＤＤ１３２を除去又は低減し、また、望まれる場合、ＶＤＤＣ１３０を低減し得る。他の実施形態において、データ処理システム１００内に記憶されるソフトウェアは、ＰＧビットがいつアサートされるかを検出し、これに応じて、メモリに記憶されたビット（１つ又は複数）でもあるＶＤＤ制御１１０をアサートすることによって、ＶＤＤ制御１１０を制御し得ることに留意されたい。この時点で、データ処理システム１００は、電力ゲート制御され、低電力モードで動作する。
【００５７】
ＰＧｒｅｑビットをディアサートすると、ＶＤＤ制御１１０が（状態保持コントローラ１１８内のソフトウェアによって又はハードウェアによって）ディアサートされ、これによって、ＶＤＤ１３２及びＶＤＤＣ１３０を復旧し得る。ＶＤＤ１３２及びＶＤＤＣ１３０が復旧されると、電圧レギュレータ確認応答（電圧ｒｅｇ＿ａｃｋ）信号を（例えば、電圧レギュレータ１０２によって）生成して、電圧が復旧されたことを示し得る。ソフトウェアは、電圧レギュレータａｃｋの生成を検出し、ＰＧビットをディアサートして、電力ゲート制御の終了を開始し得る。一実施形態において、電圧ｒｅｇ＿ａｃｋも、データ処理システム１００内に記憶されたビット（１つ又は複数）によって表される。ＰＧビットのディアサート後、停止ｃｌｋ＿ａｃｋ信号をディアサートして、クロックコントローラ１１６に対して“クロック要求再開”を示し得る。従って、一実施形態において、停止ｃｌｋ＿ａｃｋは、アサートされた時、ｓｃｌｋ１２２が停止されたことを示し、また、ディアサートされた時、ｓｃｌｋ１２２を再度イネーブル状態にせよという要求として作用するデータ処理システム１００内に記憶されたビット（１つ又は複数）である。クロックコントローラ１１６は、次に、ｓｃｌｋ１２２を再度イネーブル状態にし、データ処理システム１００は、通常又は最高出力動作を再開し得る。
【００５８】
従って、図１３のフローは、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組合せによって実現し得ることに留意されたい。データ処理システム１００には、従って、状態情報をセーブする一方で漏れ電力を低減するために、電力ゲート制御し得る状態保持フリップフロップ２００並びに状態保持バッファ３００及び４００等の状態保持回路を含み得る。更に、データ処理システム１００は、状態保持フリップフロップ及びバッファに提供されるＰＧ信号、ｓｃｌｋ、及び供給電圧（例えば、ＶＤＤ及びＶＤＤＣ）を適切に制御するように、様々な異なるやり方で構成される。即ち、図１３のフロー図及び図１１及び１２のタイミング図は、データ処理システム１００内において適切に信号を制御して、電力ゲート制御を可能にし得るための方法の単なる例である。
【００５９】
従って、一実施形態において、動作領域回路及びスリープ領域回路を有する情報処理システムにおいて電力損失を低減する方法には、情報処理システムにおいて電力損失を減少させるための電力ゲート制御要求を受信する段階と、スリープ領域回路に接続されたスリープ領域クロックをディスエーブル状態にする段階と、２つの直列接続されたラッチの内の少なくとも１つにおける対応するスリープ領域回路の現在の状態を、スリープ領域回路の各フリップフロップにセーブする段階と、電力ゲート制御要求に対応するスリープ領域回路の少なくとも一部からの供給電圧を調整する段階と、が含まれる。
【００６０】
一実施形態において、回路には、連続電源信号を受信し、また、ゲート制御可能な電源信号を生成するためのゲート回路と、連続電源信号を受信するように接続された動作領域フリップフロップと、連続電源信号及びゲート制御可能な電源信号を受信するように接続されたスリープ領域状態保持フリップフロップと、が含まれ、ここで、スリープ領域状態保持フリップフロップは、スリープ領域状態保持フリップフロップの一部への電力を切り離しつつ、既存の状態を保持する。
【００６１】
上記明細書において、具体的な実施形態を参照して、本発明について説明した。しかしながら、当業者が理解されるように、以下の請求項に記載した本発明の範囲から逸脱することなく、様々な修正及び変更を行い得る。例えば、本明細書において教示されたどのソフトウェアも１つ又は複数のコンピュータハードディスク、フロッピー（登録商標）ディスク、３．５”ディスク、コンピュータ記憶テープ、磁気ドラム、ランダムアクセスメモリ（ＲＡＭ）セル、スタティックランダムアクセスメモリ（ＳＲＡＭ）セル、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）セル、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）セル、電気消去可能（ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュ）セル、不揮発性セル、強誘電性又は強磁性メモリ、コンパクトディスク（ＣＤ）、レーザディスク、光ディスク、及び任意の同様なコンピュータ判読可能媒体上に実装し得る。また、ブロック図には、例示したものとは異なるブロックを含んでよく、また、ブロックの数は多くても少なくてもよく、あるいは、構成が異なってもよい。また、フロー図は、異なるように構成して、ステップの数が多くても少なくてもよく、あるいは、多数のステップに分離し得るステップがあったり、もしくは、互いに同時に行ない得るステップがあったりしてよい。したがって、明細書及び図は、限定的でなく例示的であると見なすものとし、また、そのような全ての修正は、本発明の範囲内に含まれるものとする。
【００６２】
恩恵、他の利点、及び問題の解決策について、具体的な実施形態を基に上述した。しかしながら、これらの恩恵、利点、問題の解決策、及び何らかの恩恵、利点、又は解決策を生じさせる又はより顕著にさせる如何なる要素も、全ての請求項の決定的な、必要な、若しくは不可欠な特徴又は要素として解釈してはならない。本明細書に用いた用語「”ｃｏｍｐｒｉｓｅｓ”（含む）」、「”ｃｏｍｐｒｉｓｉｎｇ”（含んでいる）」又はその派生語は、非排他的な包括を網羅するものであり、一連の要素を含むプロセス、方法、物、又は装置が、これらの要素だけでなく、明示的に列記されていない他の要素や、このようなプロセス、方法、物、又は装置に固有の他の要素も含み得る。
【図面の簡単な説明】
【００６３】
【図１】本発明の一実施形態に基づくデータ処理システムをブロック図形式で示す図。
【図２】本発明の一実施形態に基づく状態保持フリップフロップを部分的ブロック図形式及び部分的概略図形式で示す図。
【図３】本発明の様々な実施形態に基づき、図２の状態保持フリップフロップ等の状態保持フリップフロップの様々な実施形態の動作に対応する表を示す図。
【図４】本発明の様々な実施形態に基づき、図２の状態保持フリップフロップ等の状態保持フリップフロップの様々な実施形態の動作に対応する表を示す図。
【図５】本発明の様々な実施形態に基づき、図２の状態保持フリップフロップ等の状態保持フリップフロップの様々な実施形態の動作に対応する表を示す図。
【図６】本発明の様々な実施形態に基づき、図２の状態保持フリップフロップ等の状態保持フリップフロップの様々な実施形態の動作に対応する表を示す図。
【図７】本発明の一実施形態に基づく状態保持バッファを概略図形式で示す図。
【図８】本発明の一実施形態に基づく図７の状態保持バッファの動作に対応する表を示す図。
【図９】本発明の他の実施形態に基づく状態保持バッファを概略図形式で示す図。
【図１０】本発明の一実施形態に基づく図９の状態保持バッファの動作に対応する表を示す図。
【図１１】本発明の様々な実施形態に基づく図１のデータ処理システムの動作を表すタイミング図を示す図。
【図１２】本発明の様々な実施形態に基づく図１のデータ処理システムの動作を表すタイミング図を示す図。
【図１３】本発明の一実施形態に基づく状態保持のための方法をフロー図形式で示す図。
【図１４】本発明の他の実施形態に基づく状態保持バッファを概略図形式で示す図。
【図１５】本発明の一実施形態に基づく図１４の状態保持バッファの動作に対応する表を示す図。
【図１６】本発明の他の実施形態に基づく状態保持バッファを概略図形式で示す図。
【図１７】本発明の一実施形態に基づく図１６の状態保持バッファの動作に対応する表を示す図。
【図１】
2007535031.tif 000003
【図２】
2007535031.tif 000004
【図３】
2007535031.tif 000005
【図４】
2007535031.tif 000006
【図５】
2007535031.tif 000007
【図６】
2007535031.tif 000008
【図７】
2007535031.tif 000009
【図８】
2007535031.tif 000010
【図９】
2007535031.tif 000011
【図１０】
2007535031.tif 000012
【図１１】
2007535031.tif 000013
【図１２】
2007535031.tif 000014
【図１３】
2007535031.tif 000015
【図１４】
2007535031.tif 000016
【図１５】
2007535031.tif 000017
【図１６】
2007535031.tif 000018
【図１７】
2007535031.tif 000019