(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-08
(45)【発行日】2024-10-17
(54)【発明の名称】集積回路における保存・復元
(51)【国際特許分類】
G11C 14/00 20060101AFI20241009BHJP
G06F 12/00 20060101ALI20241009BHJP
【FI】
G11C14/00 200
G06F12/00 560B
(21)【出願番号】P 2021537949
(86)(22)【出願日】2019-12-19
(86)【国際出願番号】 US2019067358
(87)【国際公開番号】W WO2020139676
(87)【国際公開日】2020-07-02
【審査請求日】2022-12-10
(32)【優先日】2018-12-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】507107291
【氏名又は名称】テキサス インスツルメンツ インコーポレイテッド
(74)【代理人】
【識別番号】230129078
【氏名又は名称】佐藤 仁
(73)【特許権者】
【識別番号】390020248
【氏名又は名称】日本テキサス・インスツルメンツ合同会社
(72)【発明者】
【氏名】プニート サバルワル
(72)【発明者】
【氏名】インドゥ プラサパン
【審査官】小林 紀和
(56)【参考文献】
【文献】米国特許出願公開第2015/0346277(US,A1)
【文献】特開2008-117372(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 14/00
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
方法であって、
状態復元プロセスを実行するための指示を受信することと、
ゲートクロック信号を生成することと、
前記指示を受信することの後に、前記ゲートクロック信号が発信を中止するように前記状態復元プロセスが終わるとリセット信号を生成することと、
前記指示に応答してメモリから設計ブロックの状態を復元することであって、
制御ブロックによって前記ゲートクロック信号に基づいて第1のスキャンチェーンに対応する前記メモリの第1の領域からビットを読み出すことと、
前記制御ブロックによって前記ゲートクロック信号に基づいて第2のスキャンチェーンに対応する前記メモリの第2の領域からビットを読み出すことと、
前記制御ブロックによって前記メモリの第1の領域からの前記ビットを前記設計ブロックの第1のスキャンチェーンのセルに格納することと、
マルチプレクサの第1の入力において前記メモリの第2の領域からの前記ビットを受信することであって、前記マルチプレクサが前記第2のスキャンチェーンの最終セルに結合される第2の入力と前記第2のスキャンチェーンに結合される出力とを有する、前記受信することと、
前記第2のスキャンチェーンによって前記指示を受信するマルチプレクサモードセレクタに応答して前記メモリの第2の領域からの前記ビットを受信することと、
前記制御ブロックによって前記メモリの第2の領域からの前記ビットを前記設計ブロックの第2のスキャンチェーンのセルに格納することと、
を含む、前記復元することと、
を含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記第1のスキャンチェーンが第1の数のセルを有し、前記第2のスキャンチェーンが第2の数のセルを有し、前記第2の数のセルが前記第1の数のセルより少ない、方法。
【請求項3】
請求項2に記載の方法であって、
前記制御ブロックによって、第3のスキャンチェーンに対応する前記メモリの第3の領域からビットを読み出すことと、
前記制御ブロックによって、前記メモリの第3の領域からの前記ビットを前記設計ブロックの第3のスキャンチェーンに格納することと、
を更に含み、
前記第3のスキャンチェーンが第3の数のセルを有し、前記第3の数のセルが前記第1の数のセルより少なく、前記第3の数のセルが前記第2の数のセルと異なる、方法。
【請求項4】
請求項3に記載の方法であって、
前記第1の数のセルが直列に接続され、前記第2の数のセルが直列に接続され、前記第3の数のセルが直列に接続される、方法。
【請求項5】
請求項3に記載の方法であって、
前記ゲートクロック信号に基づいて前記第1の数のセルに等しい回数前記読み出すことと前記格納することとを反復して繰り返すことを更に含む、方法。
【請求項6】
請求項3に記載の方法であって、
前記制御ブロックが、前記メモリの第1の領域から前記ビットを反復ごとに1ビット連続して読み出し、
前記制御ブロックが、前記メモリの第2の領域から前記ビットを反復ごとに1ビット連続して読み出し、
前記制御ブロックが、前記メモリの第3の領域から前記ビットを反復ごとに1ビット連続して読み出す、方法。
【請求項7】
請求項1に記載の方法であって、
前記
指示が不活性の設計ブロックをパワーオンする、方法。
【請求項8】
状態復元プロセスを実行する回路であって、
第1のスキャンチェーンにおいて結合される第1のメモリセルのセットであって、第1の数のセルを有する、前記第1のメモリセルのセットと、
第2のスキャンチェーンにおいて結合される第2のメモリセルのセットであって、前記第1の数のセルよりも少ない第2の数のセルを有する、前記第2のメモリセルのセットと、
メモリと、
クロック回路であって、ゲートクロック信号を生成し、前記ゲートクロック信号が発振を中止するように前記状態復元プロセスが終わるとリセット信号を生成する、ように構成される、前記クロック回路と、
メモリコントローラであって、前記状態復元プロセスの間に前記ゲートクロック信号に基づいて前記メモリにデータのセットを出力させ、前記状態復元プロセスの間に前記ゲートクロック信号に基づいて前記第1及び第2のメモリセルのセットに前記メモリから出力された前記データのセットを格納させる、ように構成される、前記メモリコントローラと、
を含む、回路。
【請求項9】
請求項8に記載の回路であって、
前記クロック回路が、
前記リセット信号を受信するように構成される第1の入力と出力とを有するフリップフロップと、
前記フリップフロップの出力に結合される第1の入力と出力とを有する論理ゲートであって、前記論理ゲートの出力に前記ゲートクロック信号を生成するように構成される、前記論理ゲートと、
を含む、回路。
【請求項10】
請求項9に記載の回路であって、
前記クロック回路が、マルチプレクサを更に含み、前記マルチプレクサが、前記論理ゲートの出力に結合される第1の入力と前記第1及び第2のメモリセルのセットに結合される出力とを有する、回路。
【請求項11】
請求項9に記載の回路であって、
前記フリップフロップが、保存・復元クロック信号を受信するように構成される第2の入力を更に有し、
前記論理ゲートが、前記保存・復元クロック信号を受信するように構成される第2の入力を更に有する、回路。
【請求項12】
請求項8に記載の回路であって、
前記クロック回路が、
出力を有するクロック分周器回路と、
前記ゲートクロック信号を受信するように構成される第1の入力と前記クロック分周器回路の出力に結合される第2の入力とを有するマルチプレクサと、
を含む、回路。
【請求項13】
請求項12に記載の回路であって、
前記マルチプレクサが、
前記状態復元プロセスの間に前記ゲートクロック信号を前記第1及び第2のメモリセルのセットに出力し、
前記クロック分周器回路から分周されたクロック信号を受信し、
前記状態復元プロセスが終わる後の機能モードの間に前記分周されたクロック信号を前記第1及び第2のメモリセルのセットに出力する、
ように構成される、回路。
【請求項14】
請求項8に記載の回路であって、
前記メモリコントローラが、モードセレクタ信号を受信し、前記モードセレクタ信号に基づいて前記状態復元プロセスを開始する、ように更に構成され、
前記クロック回路が、マルチプレクサを含み、前記マルチプレクサが、前記ゲートクロック信号を受信するように構成される第1のデータ入力と、前記モードセレクタ信号を受信するように構成される選択入力とを有する、回路。
【請求項15】
回路であって、
第1の入力と第2の入力と第1の出力と第2の出力とを含むコントローラと、
直列に結合される第1の数のメモリセルを含む第1のスキャンチェーンであって、前記コントローラの第1の出力に結合される第1のセルと、前記コントローラの第1の入力に結合される第2のセルとを含む、前記第1のスキャンチェーンと、
前記第1の数のセルよりも少ない直列に結合される第2の数のメモリセルを含む第2のスキャンチェーンであって、前記コントローラの第2の出力に結合される第3のセルと、前記第3のセルに結合される第4のセルと、前記第2のスキャンチェーンにおける中間セルであって前記コントローラの第2の入力に結合される第5のセルとを含む、前記第2のスキャンチェーンと、
クロック回路であって、出力を有するフリップフロップと、前記フリップフロップの出力に結合される入力と出力とを有する論理ゲートと、前記論理ゲートの出力に結合される第1の入力と前記第1、第2、第3、第4及び第5のセルに結合される出力とを有するマルチプレクサとを含む、前記クロック回路と、
を含む、回路。
【請求項16】
請求項15に記載の回路であって、
前記クロック回路が、クロック分周器を含み、前記クロック分周器が、入力と前記クロック分周器の入力に結合される出力とを有し、
前記マルチプレクサが、前記クロック分周器の入力に結合される第2の入力を更に有する、回路。
【請求項17】
請求項15に記載の回路であって、
前記フリップフロップが、保存・復元クロック信号を受信し、リセット信号を受信し、前記保存・復元クロック信号と前記リセット信号とに基づいて遷移クロック信号を生成する、ように構成され、
前記論理ゲートが、前記保存・復元クロック信号を受信し、前記遷移クロック信号を受信し、前記保存・復元クロック信号と前記遷移クロック信号とに基づいてゲートクロック信号を生成する、ように構成され、
前記マルチプレクサが、前記ゲートクロック信号を受信し、複合信号を前記第1、第2、第3、第4及び第5のセルに生成して配信する、ように構成される、回路。
【請求項18】
請求項15に記載の回路であって、
前記フリップフロップが、保存・復元クロック信号を受信するように構成される第1の入力と、リセット信号を受信するように構成される第2の入力とを更に有する、回路。
【請求項19】
請求項15に記載の回路であって、
前記論理ゲートが、ORゲートを含み、前記ORゲートが、前記フリップフロップの出力に結合される第1の入力と、保存・復元クロック信号を受信するように構成される第2の入力と、前記マルチプレクサの第1の入力に結合される出力とを有する、回路。
【請求項20】
請求項15に記載の回路であって、
前記マルチプレクサが、
モード信号を受信するように構成される選択入力を更に有し、
前記コントローラが、
状態復元の指示を受信し、前記
指示を受信することに応答して状態復元プロセスを実行する、ように構成され、
前記クロック回路が、ゲートクロック信号が発信を中止するように前記状態復元プロセスが終わるとリセット信号を生成し、前記リセット信号を前記フリップフロップに配信する、ように構成される、回路。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、全般的に、電子回路要素における省電力に関し、特に、集積回路における保存・復元機能に関する。
【背景技術】
【0002】
集積回路(IC)は、入力/出力、制御、エンコード、及びデコード等の種々の機能ブロックを含み得る。システムがICに電力を送り、ICが構成要素機能ブロックに電力を送って、IC及び機能ブロックを(それぞれ)アクティブに保ち、要求に応じてそれぞれの機能を迅速に実行できるようにさせる(「設計ブロック」はIC又は機能ブロックのいずれかを指す)。設計ブロックによって実施される機能が用いられないとき、設計ブロックはアイドルのままにされ得る。しかしながら、アイドルの間でも、アクティブな設計ブロックは、フリップフロップ及びレジスタ等、設計ブロックのメモリ要素のコンテンツを含むカレントの状態(設計ブロックのコンテキスト又は構成とも称される)を維持するために電力を消費し続ける。アクティブな設計ブロックが、消費電力削減のためにパワーダウンされると、カレントの状態が失われる可能性があり、その結果、エラーが発生したり、或いは、設計ブロックの再初期化が必要とされたりし得る。いずれの場合も、概して、対処するために電力及び時間がかかる。
【0003】
保存・復元(SR)は、特定の動作状態にある設計ブロックをパワーダウンし、後にパワーアップし直して、より少ない電力及び時間コストで同じ動作状態に戻す手法である。SRを実施するため、設計ブロックがパワーダウンされる前に、設計ブロックの動作状態がオンダイ(on-die)メモリにストアされる。設計ブロックが再びパワーアップされると、動作状態情報がオンダイメモリから検索され、設計ブロックにおける動作状態を再現するために用いられる。
【0004】
スキャンチェーンは、テスト用設計(design for testing)において用いられ得る。スキャンチェーンは、一般に、クロックされるシリアル接続されたフリップフロップを含み、それらは、スキャンイネーブル信号がアサートされると、設計ブロック内のメモリ要素によってストアされたデータをロードされるように接続される。スキャンチェーンの長さ(異なるスキャンチェーンにおけるセル(例えば、フリップフロップ)の数)は、例えば、クロックドメインミキシングの制限、メモリチェーン、物理的設計及びフロアプラン要件、及び電力ドメインマージ等のため変化し得る。スキャン要素(セル及び制御要素)は、一般に、同じクロックドメイン内にある(同期してクロックされる)ことが要求される。また、個別の電力ドメインは、概して、個別の専用スキャンチェーンを有し、専用スキャンチェーンは、それぞれの電力ドメインが「オン」(アクティブ)のときに、それぞれの電力ドメインによって提供される電力モードにおいてアクティブである。
【0005】
図1Aは、設計ブロックの状態を保存するためにスキャンチェーン102を用いるための従来技術の回路の例示のブロック
図100を示す(便宜上、スキャンチェーン102は、頂部のスキャンチェーン102のCHAIN1から底部のスキャンチェーン102のCHAIN4まで番号が付されて参照される)。設計ブロックの状態を表すビット104が、まず、設計ブロックのメモリ要素から複数のスキャンチェーン102のセル106にロードされる(設計ブロック、及び設計ブロックからスキャンチェーン102へ状態情報をロードするための構造は図示されていない)。個々のビット104は、設計ブロックにおけるそれぞれのメモリ要素の状態に対応する。スキャンチェーン102は、SR制御ブロック108に出力するように接続される。SR制御ブロック108は、クロック130を含む制御信号をスキャンチェーン102に出力するように接続される。SR制御ブロック108はまた、それぞれのスキャンチェーン102のエンドセル110からメモリ112に出力されたビット104をストアするように接続される。
図1A(及びこれ以降の図)において、エンドセル110は、それぞれの各チェーンにおいて最も右のセルを識別するように意図されている。例えば、CHAIN1は5個のセル106を含み、左から右に5つ目のセルもまた、ストアされたビットをSR制御ブロック108に出力するために接続されているという点において、エンドセル110である。別の例として、CHAIN3(これはCHAIN1より少ないセル106を含む)は3個のセルを含み、左から右に3つ目のセルもまたエンドセル110であり、そのストアされたビット104をSR制御ブロック108に出力するために接続されている。メモリ112は、メモリセル118の複数の行114及び列116を有する。SR制御ブロック108は、一般に、スキャンチェーン102エンドセル110毎に1ビット104をそれぞれの行114にコピーし、その後、書き込まれることによって、ビット104をメモリセル118の行114に一度にストアする。従って、メモリセル118の個々の列116は、個々のそれぞれのスキャンチェーン102に対応する。スキャンチェーン102から読み出されたビット104は、対応する列116において、メモリセル118にストアされる。行114は、1から5(5はスキャンチェーン102の最長のものの長さである)の番号が付され、列116は、1から4(4はスキャンチェーン102の数である)の番号が付される。
図1B~
図1Fにおいて、SR制御ブロック108からメモリ112への矢印は、スキャンチェーン102からのデータがロードされたばかりのメモリ112の行114を示す。
【0006】
図1Bは、
図1Aの後、1クロック130サイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーン102を用いるための従来技術の回路の例示のブロック
図120を示す。スキャンチェーン102は、SR制御ブロック108から受信されたクロック信号130によってクロックされる。クロック130により、スキャンチェーン102は、スキャンチェーン102のセル106によってストアされたビット104を、それぞれのスキャンチェーン102の近隣の後続セル106に対して、及びそれぞれのスキャンチェーン102のエンドセル110の方向に、シリアルに漸進させる。スキャンチェーン102のエンドセル110は、それらのストアされたビット104をSR制御ブロック108に出力し、SR制御ブロック108は、ビット104をメモリセル118の行に順にストアする。従って、
図1Bにおいて、前の
図1Aからのエンドセル110ビット104(即ち、1100)は、メモリ100の行114番号(1)に書き込まれている。また、各スキャンチェーン102におけるビット104は、スキャンチェーン102毎に1セル106、シリアルに漸進している。ビット104のシリアル漸進(本明細書において、ビット104の反復漸進又は漸進的に移動するビット104とも称される)は、ビット104が、スキャンチェーンのシリアル接続されたセル106にストアされる場合、それは、参照のため
図1Cの方向で考えると左から右であり、セルA、B、及びCとして参照される接続の場合、セル106A、B、Cがシリアル接続されたA→B→Cであるため、Cはエンドセル110であるので、単一の反復漸進は、セル106Cにストアされたビット104を出力し、それによって、セル106Bにストアされたビット104がセル106Cにストアされ、セル106Aにストアされたビット104が、セル106Bにストアされることを意味する(従って、クロック130は、スキャンチェーン102を介してビット104のシリアル漸進を起こすための伝搬信号として用いられる。幾つかの実施形態において、クロック130以外の伝搬信号が用いられ得る)。
【0007】
図1Cは、
図1Aの後、2クロック130サイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーン102を用いるための従来技術の回路の例示のブロック
図122を示す。
図1Cに示されるように、SR制御ブロック108によって出力されたクロック130サイクルにより、スキャンチェーン102は、スキャンチェーン102によってストアされたビット104のシリアル漸進を反復し、スキャンチェーン102のコンテンツをSR制御ブロック108に順次出力する。従って、
図1Cにおいて、前の
図1Bからのエンドセルビット(即ち、0001)はメモリ112の行番号(2)に書き込まれている。スキャンチェーン102のエンドセル110から出力されたビット104は、メモリセルの対応する列116の後続の行にストアされるので、スキャンチェーン102のコンテンツは、メモリ112において、漸進的に再構築され、スキャンチェーン102からメモリ列116に転置される。
【0008】
図1Dは、
図1Aの後、3クロック130サイクル経過した後の、設計ブロックの状態を保存するためにスキャンチェーン102を用いるための従来技術の回路の例示のブロック
図124を示す。
図1Eに示されるように、CHAIN3には、3個のセル106しかないので、CHAIN3は、ストアされたビット104の3個全てを出力し、空である。
【0009】
図1Eは、
図1Aの後、4クロック130サイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーン102を用いるための従来技術の回路の例示のブロック
図126を示す。
図1Eに示されるように、CHAIN2には4個のセル106しかないので、CHAIN2は、ストアされたビット104の4個全てを出力している。また、
図1Dの後、CHAIN3が空だったので、SR制御ブロック108がメモリ112の行番号(4)、列(3)(慣例として(4、3)のように(行、列)として参照される)に位置するメモリセル118にストアするためのビット104はない。
【0010】
図1Fは、
図1Aの後、5クロック130サイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーン102を用いるための従来技術の回路の例示のブロック
図128を示す。
図1Fに示されるように、スキャンチェーン102の全ては、それらのストアされたビット104を全て出力している。また、CHAIN2及び3は、
図1Dの後、空であるため、SR制御ブロック108がメモリセル118の(5、2)及び(5、3)にストアするためのビット104はない。そのため、メモリセル118の(4、3)、(5、2)、及び(5、3)は、SR制御ブロック108によって割り振られなかった。
【0011】
図1Gは、設計ブロックの状態を保存するために用いられるメモリ112の従来技術の例示のブロック
図132を示す。メモリ112は、先入先出(FIFO)として取り扱われ得る。これは、状態保存プロセスに対して既に用いられている接続を反映する。また、状態保存プロセスに関して説明されたように、スキャンチェーン102は共にクロックされる。従って、メモリ112の頂部から一行ごとに読み出すことによって状態データをスキャンチェーン102にリロードするために、
図1Fに示されるようなメモリ112の状態が用いられる場合、一層短いスキャンチェーン102からのデータ(即ち、列(2)及び(3)におけるもの)は、それぞれの一層短いスキャンチェーン102を介して、及び、それぞれの一層短いスキャンチェーン102の外側に、反復的に漸進させられ、未知のデータ(
図1Fに示される例において、(4、3)、(5、2)、及び(5、3)のコンテンツ)は、一層短いスキャンチェーン102に書き込まれ、その中に留まり、保存リセットイベントの保存部分にストアされたデータの不正確な複製を引き起こす。従って、メモリ112は、設計ブロック状態の復元の準備のために再配置される。
図1Gは、再配置される前134と再配置された後136のメモリ112を示す。一層短いスキャンチェーン102から書き込まれた最後のビット104が、SR制御ブロック108によって書き込まれたメモリセル118の最後の行114(
図1A~
図1Fにおける最長のスキャンチェーン102は5セル106長であるので、第5の行114)に整合されるように、メモリセル118が再配置される。また、(1、2)、(1、3)及び(2、3)における現在割り振られていないメモリセル118は、ゼロで満たされる。これらのフィラーゼロは、状態復元プロセス(
図2A~
図2Fを参照する)の間に、まず、対応するスキャンチェーン102(CHAIN2及び3、スキャンチェーン102、最長のスキャンチェーン102より短いため)にロードされるべきであり、状態復元プロセスの間に、一層短いチェーン110のエンドセル110を超えてシフトさせることによって破棄される。これによって、復元プロセスの完了時に、スキャンチェーン102のセル106内で状態復元データが適切に整合される結果となる。
図1Gに示されるメモリ112再配置の実施は、ソフトウェアの実行や特別なハードウェアを必要とし得、SRプロセスにかなりの時間が付加される。
【0012】
或いは、幾つかの従来技術の実施形態において、一層短いスキャンチェーン102の長さを増加させて、最長のスキャンチェーン102と同じ長さになるように、付加的なフリップフロップが用いられ得る。そのため、各スキャンチェーン102は同じ数のセル106を有する。これにより、メモリ112の再配置なしで復元プロセスが完了したときに、スキャンチェーン102のセル106内で状態復元データの適切な整合が可能になる。しかしながら、付加的なフリップフロップは、デバイス領域の使用を大幅に増大させ得、また設計ブロックが機能モードにあるときに漏れ電流を増大し得る。
【0013】
図2Aは、設計ブロックの保存された状態を復元するためにスキャンチェーン102を用いるための従来技術の回路の例示のブロック
図200を示す。状態復元は、非アクティブな設計ブロックがスリープ状態からパワーアップされたときに開始し得る。
図2Aに示されるように、状態復元プロセスの開始時に、メモリ112は、保存されたデータが再配置された136後の、
図1Gにおいて示されるような状態保存プロセスの終了時と同じ構成で同じデータを含む。メモリ112は、行114から読み出されたデータをSR制御ブロック108に出力するように接続される。SR制御ブロック108は、メモリ112から受け取られたデータをそれぞれのスキャンチェーン102の第1のセル202に出力し、クロック130をスキャンチェーン102に分配するように構成される(
図2A~
図2Fにおいて、第1のセル202は、それぞれの各スキャンチェーン102において最も左にあるセルを識別することを意図している)。クロック130は、SR制御ブロック108からスキャンチェーン102の各々によって受け取られたデータを、各受け取りスキャンチェーン102の対応するセル106にストアさせ、ビット104(
図2Aには示されない)を、それぞれのスキャンチェーン102のシリアル接続されたセル106を介して反復的に漸進させる。
図2B~
図2Fにおいて、メモリ112からSR制御ブロック108への矢印は、それぞれのセル106をスキャンチェーン102の各々にリロードするために、メモリ112からアンロードされたばかりの行114を示す。
【0014】
図2Bは、
図2Aから1クロック130サイクルが経過した後の、設計ブロックの保存された状態を復元するためにスキャンチェーン102を用いるための従来技術の回路の例示のブロック
図202を示す。クロック130サイクルは、メモリ112の第1の行114(行1)にストアされたデータを、メモリ112から読み出させ、スキャンチェーン102の対応するものにおけるセル106にストアさせる。従って、メモリ112における列116は、それぞれのスキャンチェーン102に対応し、列1においてメモリセル118から読み出されたデータがCHAIN1にストアされ、列2においてメモリセル118から読み出されたデータがCHAIN2にストアされ、以下同様となる。従って、データは、
図1A~
図1Gに関して説明された保存プロセスにおいて前に読み出されたスキャンチェーン102に戻される。なお、第2及び第3のスキャンチェーン102(CHAIN2及び3)に移動されたゼロは、1Gに図示され、それに関して説明されたメモリ112再配置の間に付加されたフィラーであることに留意されたい。これらのゼロは、これ以降に説明するように、復元プロセスの後の方で破棄される(即ち、それぞれのスキャンチェーン102からシフトアウトされる)。
【0015】
図2Cは、
図2Aから2クロック130サイクルが経過した後の、設計ブロックの状態を復元するためにスキャンチェーン102を用いるための従来技術の回路の例示のブロック
図204を示す。クロック130サイクルは、スキャンチェーン102の各々にストアされたビット104を、スキャンチェーン102におけるシリアル接続されたセル106を介して移動させ、メモリセル118の第2の行114の各列にストアされたデータを、メモリ112から読み出させ、対応するスキャンチェーン102にストアさせる。
【0016】
図2Dは、
図2Aから3クロック130サイクルが経過した後の、設計ブロックの保存された状態を復元するためにスキャンチェーン102を用いるための従来技術の回路の例示のブロック
図206を示す。クロック130サイクルは、スキャンチェーン102にストアされたビット104を、スキャンチェーン102においてシリアル接続されたセル106を介して移動させ、メモリセル118の第3の行114にストアされたデータを、メモリ112から読み出させ、対応するスキャンチェーン102にストアさせる。
【0017】
図2Eは、
図2Aから4クロック130サイクルが経過した後の、設計ブロックの保存された状態を復元するためにスキャンチェーン102を用いるための従来技術の回路の例示のブロック
図208を示す。クロック130サイクルは、スキャンチェーン102にストアされたビット104を、スキャンチェーン102においてシリアル接続されたセル106を介して移動させ、メモリセル118の第4の行114にストアされたデータを、メモリ112から読み出させ、対応するスキャンチェーン102にストアさせる。第3のスキャンチェーン102(CHAIN3)は、3セル106長しかないので、フィラーゼロの1つは、CHAIN3からクロックアウトされ、それによって破棄される。
【0018】
図2Fは、
図2Aから第5のクロック130サイクルが経過した後の、設計ブロックの保存された状態を復元するためにスキャンチェーン102を用いるための従来技回路の例示のブロック
図210を示す。クロック130サイクルは、スキャンチェーン102にストアされたビット104を、スキャンチェーン102においてシリアル接続されたセル106を介して移動させ、メモリセル118の第5の行114にストアされたデータを、メモリ112から読み出させ、対応するスキャンチェーン102にストアさせる。第2及び第3のスキャンチェーン102(CHAIN2及び3)は5セル106長(最長のスキャンチェーン102、第1及び第4のスキャンチェーン102の長さ)より短いので、フィラーゼロは、CHAIN2及び3の各々からクロックアウトされ、それによって破棄される。
図2Fに示されるように、スキャンチェーン102は、
図1Aにおける保存プロセスの開始時と同じ構成で同じビット104を含む。スキャンチェーン102に含まれるデータは、その後、設計ブロックの保存された状態を復元するために用いられ得、設計ブロックの状態データをスキャンチェーン102に初期的にロードするために用いられたプロセスを逆に行う。
【発明の概要】
【0019】
説明される例において、設計ブロック状態を保存及び復元するための回路要素は、第1のデータの異なる部分を受け取り、異なる第1のメモリに第1の順序でストアするように構成された第1のメモリと、第1のメモリに結合された第2のメモリとを含む。最も多いメモリセルを備える第1のメモリはN個のメモリセルを有する。一層少ないメモリセルを備える第1のメモリはM個のメモリセルを有する。状態を保存する場合、異なる第1のメモリからの第1のデータが第2のメモリの異なる対応する領域に第2の順序で第2のデータとして書き込まれる。第2の順序は、第1のN mod Mセルに順次ストアされ、一層少ないセルを備える対応する第1のメモリの第1の順序を用いて決定されている第1のデータの部分を繰り返す。状態を復元する場合、第2のデータが第2のメモリから読み出され、対応する第1のメモリに、第1の順序でストアされる。繰り返される部分は、一層少ないセルを備える対応する第1のメモリに繰り返しストアされる。
【図面の簡単な説明】
【0020】
【
図1A】設計ブロックの状態を保存するために、スキャンチェーンを用いるための従来技術の回路の例示のブロック図を示す。
【0021】
【
図1B】
図1Aの後、1クロックサイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーンを用いるための従来技術の回路の例示のブロック図を示す。
【0022】
【
図1C】
図1Aの後、2クロックサイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーンを用いるための従来技術の回路の例示のブロック図を示す。
【0023】
【
図1D】
図1Aの後、3クロックサイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーンを用いるための従来技術の回路の例示のブロック図を示す。
【0024】
【
図1E】
図1Aの後、4クロックサイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーンを用いるための従来技術の回路の例示のブロック図を示す。
【0025】
【
図1F】
図1Aの後、5クロックサイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーンを用いるための従来技術の回路の例示のブロック図を示す。
【0026】
【
図1G】設計ブロックの状態を保存するために用いられるメモリの従来技術の例示のブロック図を示す。
【0027】
【
図2A】設計ブロックの保存された状態を復元するためにスキャンチェーンを用いるための従来技術の回路の例示のブロック図を示す。
【0028】
【
図2B】
図2Aから1クロックサイクルが経過した後の、設計ブロックの保存された状態を復元するためにスキャンチェーンを用いるための従来技術の回路の例示のブロック図を示す。
【0029】
【
図2C】
図2Aから2クロックサイクルが経過した後の、設計ブロックの保存された状態を復元するために、スキャンチェーンを用いるための従来技術の回路の例示のブロック図を示す。
【0030】
【
図2D】
図2Aから3クロックサイクルが経過した後の、設計ブロックの保存された状態を復元するためにスキャンチェーンを用いるための従来技術の回路の例示のブロック図を示す。
【0031】
【
図2E】
図2Aから第4のクロックサイクルが経過した後の、設計ブロックの保存された状態を復元するために、スキャンチェーンを用いるための従来技術の回路の例示のブロック図を示す。
【0032】
【
図2F】
図2Aから第5のクロックサイクルが経過した後の、設計ブロックの保存された状態を復元するために、スキャンチェーンを用いるための従来技術の回路の例示のブロック図を示す。
【0033】
【
図3A】設計ブロックの状態を保存するためにスキャンチェーンを用いるための回路の例示のブロック図を示す。
【0034】
【
図3B】
図3Aから1クロックサイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーンを用いるための回路の例示のブロック図を示す。
【0035】
【
図3C】
図3Aから2クロックサイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーンを用いるための回路の例示のブロック図を示す。
【0036】
【
図3D】
図3Aから3クロックサイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーンを用いるための回路の例示のブロック図を示す。
【0037】
【
図3E】
図3Aから4クロックサイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーンを用いるための回路の例示のブロック図を示す。
【0038】
【
図3F】
図3Aから5クロックサイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーンを用いるための回路の例示のブロック図を示す。
【0039】
【
図4A】設計ブロックの状態を保存するためにスキャンチェーンを用いるための回路の例示のブロック図を示す。
【0040】
【
図4B】
図4Aから1クロックサイクルが経過した後の、設計ブロックの保存された状態を復元するためにスキャンチェーンを用いるための回路の例示のブロック図を示す。
【0041】
【
図4C】
図4Aから2クロックサイクルが経過した後の、設計ブロックの保存された状態を復元するために、スキャンチェーンを用いるための回路の例示のブロック図を示す。
【0042】
【
図4D】
図4Aから3クロックサイクルが経過した後の、設計ブロックの保存された状態を復元するためにスキャンチェーンを用いるための回路の例示のブロック図を示す。
【0043】
【
図4E】
図4Aから4クロックサイクルが経過した後の、設計ブロックの保存された状態を復元するためにスキャンチェーンを用いるための回路の例示のブロック図を示す。
【0044】
【
図4F】
図4Aから第5のクロックサイクルが経過した後の、設計ブロックの保存された状態を復元するためにスキャンチェーンを用いるための回路の例示のブロック図を示す。
【0045】
【
図5A】設計ブロックの状態を保存するためにスキャンチェーンを用いるための例示のプロセスを示す。
【0046】
【
図5B】設計ブロックの状態を保存するためにスキャンチェーンを用いる例示のプロセスを示す。
【0047】
【
図6A】設計ブロックの状態を保存するために用いられるスキャンチェーンに対してクロックを提供するために用いられるクロック回路のための例示のブロック図を示す。
【0048】
【
図6B】クロック回路のための例示のタイミング図を示す。
【0049】
【
図6C】設計ブロックの状態を保存するために用いられるスキャンチェーンに対してクロックを提供するために用いられ、SR Mode遷移において、誤ったクロック遷移を抑制するように構成されるクロック回路の例示のブロック図を示す。
【0050】
【
図6D】クロック回路のための例示のタイミング図を示す。
【発明を実施するための形態】
【0051】
図3Aは、設計ブロックの状態を保存するためにスキャンチェーン102を用いるための回路の例示のブロック
図300を示す。
図3A~
図3Fの回路300、312、314、316、318、320は、それぞれ、
図1A~
図1Fの回路100、120、122、124、126、128と様々な態様を共有している。従って、それらの項目に対し、
図1A~
図1Fの類似の参照番号が
図3A~
図3Fに繰り越される。
図3A~
図3Fの回路300、312、314、316、318、320における一層短いスキャンチェーン102は、エンドセル110とSR制御ブロック108との間の接続を含まないが、
図3A~
図3Fの回路300、312、314、316、318、320における一層長いスキャンチェーン102は、エンドセル110とSR制御ブロック108’との間の接続を含む(
図3A~
図4Fにおいて示され、
図3A~
図4Fに関して説明されるSR制御ブロック108’は、従来技術の
図1A~
図1F及び
図2A~
図2FのSR制御ブロック108と幾つかの類似点を有するが、本明細書に紹介される発明の主題に関して説明されるように、付加的な機能も導入している)。
【0052】
状態保存プロセスは、設計ブロックがスリープコマンドを受け取り、パワーダウンの準備をするときに実行され得る。設計ブロック状態データは、初期的に、設計ブロックメモリ要素(図示されない)からそれぞれのスキャンチェーン102に、状態データ入力302(このプロセスは図示されない)を用いてロードされ、その結果、
図3Aに図示されるように、状態データがロードされたスキャンチェーン102になる。
図3Aに示される最長のスキャンチェーン102は、5セル106長である。最長のスキャンチェーン102において、状態データ入力302は、スキャンチェーン102の第1のセル304(シリアル接続されたスキャンパスセル106の数という点で、SR制御ブロック108’から最も遠い)に直接接続する。一層短いスキャンチェーン102において、状態データ入力302はマルチプレクサ306の第1の入力に接続する。マルチプレクサ306はまた、第2の入力として、それぞれのスキャンチェーン102のエンドセル110の出力を受け取る。SRモードセレクタ308は、マルチプレクサのそれぞれの入力のどれがそれぞれのスキャンチェーン102の第1のセル304に出力されるかを制御するように制御信号を各マルチプレクサ306に提供する。
図3A~
図3Fに示されるように、SRモードセレクタ308は、スキャンチェーン102が保存プロセスを実施しているときに、エンドセル110の出力を選択する。
図4A~
図4Fに示されるように(及び
図4A~
図4Fに関して以下に説明されるように)、SRモードセレクタ308は、スキャンチェーン102が復元プロセスを実施しているときに、状態データ入力302から受け取ったデータを選択する。
【0053】
各スキャンチェーン102はまた、SR出力310を含み、SR出力310は、それぞれのスキャンチェーン102の選択されたセル106から、メモリ112内への保存のために、SR制御ブロック108’にデータを出力する。最長のスキャンチェーン102において、SR出力310を提供する選択されたセル106は、エンドセル110である。一層短いスキャンチェーン102において、SR出力310を提供する選択されたセル106は、それぞれのスキャンチェーン102のエンドセル110以外のセル106である。長さNの最長のスキャンチェーン102及び長さMの一層短いスキャンチェーン102の場合、一層短いスキャンチェーン102の第1のセル106は1の番号が付され、一層短いスキャンチェーン102の後続のセル106は、Mの番号が付されるエンドセル110までシリアルに番号が付される。SR出力310は、(N-M)セルに接続され、そのため、クロック130によって、スキャンチェーン102のシリアル接続されたセル106を介して、ビット104の漸進がトリガされたときに、(N-M)セル106におけるビット104が、メモリ112内への保存のために、SR制御ブロック108’に出力され、また、次のセル106(N-M+1の番号が付される)に漸進させられる。(便宜上、スキャンチェーン102は、頂部のスキャンチェーン102 CHAIN1から、底部のスキャンチェーン102 CHAIN4まで番号が付されて参照される。)
図3Aに示されるように、CHAIN1及び4は両方とも、同じ最大の数のセルである5セル106長を有し、一方、CHAIN2は4セル106長であり、CHAIN3は3セル106長である。従って、CHAIN2のSR出力310は、セル106 1(N-M=5-4=1)の出力に接続され、CHAIN3のSR出力310は、セル106 2(N-M=5-3=2)の出力に接続される。
【0054】
N-M≧Mであるケースを考えることはこの設計の汎用化につながる。従って、本明細書に説明される結果を生み出すためには、SR出力310が、セル106 N mod Mに接続されるべきである。なお、セル106 N mod MはN-M<Mのときに、セル106 N-Mと同じであることに留意されたい。
【0055】
図3A~
図3Eにおいて、明確にするために、次のクロック130サイクルの結果としてそれぞれのスキャンチェーン102から出力されるビット104の値が図示され、それぞれのSR出力310がSR制御ブロック108’に接続されている。CHAIN1はCHAIN1のエンドセル110から1を出力する。CHAIN2は、CHAIN2のセル106 1から1を出力する。CHAIN3はCHAIN3のセル106 2から0を出力する。CHAIN4は、CHAIN4のエンドセル110から0を出力する。
【0056】
図3Bは、
図3Aから1クロック130サイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーン102を用いるための回路の例示のブロック
図312を示す。
図3B~
図3Fにおいて、SR制御ブロック108’からメモリ112への矢印は、メモリ112のどの行114において、SR制御ブロック108’が、スキャンチェーン102から出力されたデータを、最新のクロック130サイクルで保存したかを示す。
図3Bにおいて、最新のクロック130サイクルの結果としてスキャンチェーン102から出力されたデータは、メモリ112の行1にストアされている。同時に(好ましくは、同じクロック130サイクルの間に)、SR制御ブロック108’は、以下のようにそれぞれの各スキャンチェーン102からビット104の値を読み出す。CHAIN1は、CHAIN1のエンドセル110から0を出力する。CHAIN2は、CHAIN2のセル106 1から1を出力する。CHAIN3は、CHAIN3のセル106 2から1を出力する。CHAIN4は、CHAIN4のエンドセル110から1を出力する。
【0057】
図3Bに示されるように、ビット104は、各スキャンチェーン102のセル106を介してシリアルに漸進している。その結果、チェーン1及び4(最長のスキャンチェーン102)のエンドセル110に前にストアされていたビット104は、それぞれのスキャンチェーン102によってストアされない。しかしながら、チェーン2及び3(一層短いスキャンチェーン102)において、それぞれのエンドセル110にストアされたビット104は、それぞれのマルチプレクサ306にループバックし、マルチプレクサ306(SRモードセレクタ308によって選択されたもの)によって、それぞれの第1のセル304に渡され、その中にストアされている。従って、データは一層短いスキャンチェーン102を介して循環し、そのため、一層短いスキャンチェーン102にストアされた幾つかのビットは、SR制御ブロック108’に出力され、最長のチェーン102からデータを完全に出力するために必要とされる複数のクロック130サイクル(即ち、Nクロック130サイクル)の間に複数回メモリ112にストアされる。
【0058】
図3Cは、
図3Aから2クロック130サイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーン102を用いるための回路の例示のブロック
図314を示す。最新のクロック130サイクルの結果としてスキャンチェーン102から出力されたデータは、メモリ112の行2にストアされている。一方、次のクロック130サイクルの結果としてそれぞれのスキャンチェーン102によって出力されるビット104の値は、以下のようになる。CHAIN1は、CHAIN1のエンドセル110から1を出力する。CHAIN2は、CHAIN2のセル106 1から0を出力する。CHAIN3は、CHAIN3のセル106 2から0を出力する。CHAIN4は、CHAIN4のエンドセル110から1を出力する。また、直前のサイクルからCHAIN2のエンドセル110にストアされた0は、CHAIN2の第1のセル304にループバックし、そこにストアされている。直前のサイクルからCHAIN3のエンドセル110にストアされていた0は、(それぞれのマルチプレクサ306を介して)CHAIN3の第1のセル304にループバックし、そこにストアされている。
【0059】
図3Dは、
図3Aから3クロック130サイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーン102を用いるための回路の例示のブロック
図316を示す。最新のクロック130サイクルの結果としてスキャンチェーン102から出力されたデータは、メモリ112の行3にストアされている。次のクロック130サイクルの結果としてそれぞれのスキャンチェーン102によって出力されるビット104の値は、以下のようになる。CHAIN1は、CHAIN1のエンドセル110から1を出力する。CHAIN2は、CHAIN2のセル106 1から1を出力する。CHAIN3は、CHAIN3のセル106 2から0を出力する。CHAIN4は、CHAIN4のエンドセル110から0を出力する。また、直前のサイクルからCHAIN2のエンドセル110にストアされていた1は、CHAIN2の第1のセル304にループバックし、そこにストアされている。直前のサイクルからCHAIN3のエンドセル110にストアされていた1は、(それぞれのマルチプレクサ306を介して)CHAIN3の第1のセル304にループバックし、そこにストアされている。なお、
図3Dの後、3クロック130サイクルで、CHAIN3は、
図3Aに示されるセル106にストアされたビット104値の配置に戻っていることに留意されたい。これは、M(スキャンチェーン102のセル106における長さ)が、CHAIN3の場合、3に等しい(3個のセル106、3クロック130サイクル)からである。このように、CHAIN3によって出力され、メモリ112によってストアされたデータのシーケンスは、状態保存プロセスの残りに対して繰り返しを開始する。
【0060】
図3Eは、
図3Aから4クロック130サイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーン102を用いるための回路の例示のブロック
図318を示す。直近のクロック130サイクルの結果としてスキャンチェーン102から出力されたデータは、メモリ112の行4にストアされている。次のクロック130サイクルの結果としてそれぞれのスキャンチェーン102によって出力されるビット104の値は、以下のようになる。CHAIN1は、CHAIN1のエンドセル110から0を出力する。CHAIN2は、CHAIN2のセル106 1から1を出力する。CHAIN3は、CHAIN3のセル106 2から1を出力する。CHAIN4は、CHAIN4のエンドセル110から0を出力する。また、直前のサイクルからCHAIN2のエンドセル110にストアされていた1は、CHAIN2の第1のセル304にループバックし、そこにストアされ、直前のサイクルからCHAIN3のエンドセル110にストアされていた0は、(それぞれのマルチプレクサ306を介して)CHAIN3の第1のセル304にループバックし、そこにストアされている。なお、
図3Dの後の4クロック130サイクルで、CHAIN2は
図3Aに示されるセル106にストアされるビット104の値の配置に戻っていることに留意されたい。これは、CHAIN2の場合、M(スキャンチェーン102のセル106における長さ)が4(4個のセル106、4クロック130サイクル)に等しいからである。従って、CHAIN2によって出力され、メモリ112によってストアされたデータのシーケンスは、状態保存プロセスの残りに対して繰り返しを開始する。
【0061】
図3Fは、
図3Aから5クロック130サイクルが経過した後の、設計ブロックの状態を保存するためにスキャンチェーン102を用いるための回路の例示のブロック
図320を示す。直近のクロック130サイクルの結果としてスキャンチェーン102から出力されたデータは、メモリ112の行5にストアされている。直前のサイクルからCHAIN2のエンドセル110にストアされていた1は、CHAIN2の第1のセル304にループバックし、そこにストアされ、直前のサイクルからCHAIN3のエンドセル110にストアされていた0は、(それぞれのマルチプレクサ306を介して)CHAIN3の第1のセル304にループバックし、そこにストアされている。
【0062】
図3A~
図3Fの状態保存プロセスの結果として、メモリ112の列P(PはスキャンチェーンPに対応する1~4の数である)におけるメモリセル118が行5から行1まで読み出される場合、列Pのメモリセル118にストアされていたビット104は、
図3Aにおいて、CHAIN P(Pが付されたスキャンチェーン102)にストアされていたビット104と、左から右の順に、同じビットになる。一層短いスキャンチェーン102の場合、これは以下の警告とともに真実である。メモリセル118にストアされたビット104は、M番目のビット104の後、繰り返す(スキャンチェーンにおける所与のMビットに対して、メモリ112において上方に読み出し、(N-M)行114において繰り返しが開始する)。この繰り返しは、スキャンチェーン102に初期的にストアされたビット104の1つ又は複数のコピー、又はスキャンチェーン102に初期的にストアされたビット104の部分的なコピーを含み得る。たとえば、
図3Aに示されるように、CHAIN3の初期的なコンテンツであって、M=3ビットを有し、第1のセル106からCHAIN3の第3のセル106に読み出されたコンテンツは、(1、0、0)である。
図3Fに示されるように、メモリ112の行5から行1に読み出されるメモリ112の行3のコンテンツは、(1、0、0、1、0)である。従って、
図3Fに示されるように、行5から行1に読み出されると、メモリ112の列3は、CHAIN3の初期コンテンツ、プラス(N-M=5-3=2)CHAIN3の付加的なビットを含み、それはCHAIN3の第1のセル304から第3のセル106(エンドセル110)に読み出すようなものである。一層短いスキャンチェーン102は、ビット104が、シリアル接続されたセル106を介して、クロック130サイクル分、漸進させられると、それらのそれぞれのエンドセル110からそれらのそれぞれの第1のセル304にループする。その結果、データがメモリ112からそれぞれのスキャンチェーン102にロードバックされている状態復元プロセスの間、繰り返されたビット104値(一層短いスキャンチェーン102から)は、それらの事前に書き込まれたビット値がスキャンチェーン102のエンドセル110からスキャンチェーン102の第1のセル304に書き込まれるときに、同一の、事前に書き込まれたビット104値の上に書き込まれる(
図4A~
図4Fに関して更に説明される)。
【0063】
図4Aは、スキャンチェーンに対する状態及び設計ブロックに対する状態を復元するためにスキャンチェーン102を用いるための回路の例示のブロック
図400を示す。状態復元プロセスは、非アクティブな設計ブロックのウェイクアップ時(設計ブロックのパワーアップ時)に実施され得る。
図4Aに示されるように、状態復元プロセスの開始時に、メモリ112は、
図3Fに示されるように、状態保存プロセスの終了時と同じ構成で同じデータを含む。メモリ112は、それらの行114からSR制御ブロック108’へデータを出力するように接続される。SR制御ブロック108’は、メモリ112から受け取られたデータを、それぞれのスキャンチェーン102の第1のセル304に出力し、クロック130をスキャンチェーン102に分配するように構成される。クロック130は、SR制御ブロック108’からスキャンチェーン102によって受け取られたデータを、対応するセル106にストアさせ、ビット104(
図4Aに図示されていない)を、それぞれのスキャンチェーン102のシリアル接続されたセル106を介して反復的に漸進させる。一層短いスキャンチェーン102(
図4Aに示されるように、CHAIN2及び3)はまた、それぞれのエンドセル110から漸進させられたビット104を、それぞれのマルチプレクサ306にループバックさせる。SRモードセレクタ308が、ループされたデータ(これは、状態復元プロセスの間、メモリ112から受け取られたデータを意味する)ではなく、新しく受け取られたデータを渡すように設定されているため、ストア動作の間にループされた、或るデータは、復元動作の間に破棄され、SR制御ブロック108’を介してメモリ112から受け取られたデータ及びそれぞれの状態データ入力302は、それぞれのマルチプレクサ306によって渡され、(CHAIN2及び3の)それぞれの第1のセル304にストアされる。しかしながら、メモリ112にストアされたデータは、一層短いスキャンチェーン102に初期的にストアされたデータを繰り返すため、繰り返されたビット104は、ループされ(及び破棄され)たビット104に一致する。実質的に、
図3A~
図3Fの状態保存プロセスは、一層短いスキャンチェーン102にストアされた状態データを用いてメモリ112をパディングする。これは、ゼロパディング、メモリ112の再配置、又は(
図1A~2Fに関連して上述したように)付加的なセル106を用いてスキャンチェーン102の長さをバランスさせるためにデバイス領域を犠牲にすることを防止する。
【0064】
図4B~
図4Fにおいて、メモリ112からSR制御ブロック108’への矢印は、スキャンチェーン102にリロードするために、アンロードされたばかりの行114を示す。
【0065】
図4Bは、
図4Aから1クロック130サイクルが経過した後の、設計ブロックの保存された状態を復元するためにスキャンチェーン102を用いるための回路の例示のブロック
図402を示す。クロック130サイクルは、メモリ112の第1の行114(行1)にストアされたデータを、メモリ112から読み出させ、対応するスキャンチェーン102のセル106にストアさせる。従って、メモリ112の列116は、それぞれのスキャンチェーン102に対応し、列1のメモリセル118から読み出されたデータがCHAIN1にストアされ、列2のメモリセル118から読み出されたデータがCHAIN2にストアされ、以下同様となる。こうして、
図3A~
図3Fに関して説明された保存プロセスにおいて事前に読み出されたデータがスキャンチェーン102に戻る。
【0066】
図4Cは、
図4Aから2クロック130サイクルが経過した後の、設計ブロックの状態を復元するためにスキャンチェーン102を用いるための回路の例示のブロック
図404を示す。クロック130サイクルは、スキャンチェーン102にストアされたビット104を、スキャンチェーン102においてシリアル接続されたセル106を介して反復的に移動(漸進)させ、メモリセル118の第2の行114にストアされたデータを、メモリ112から読み出させ、対応するスキャンチェーン102にストアさせる。
【0067】
図4Dは、
図4Aから3クロック130サイクルが経過した後の、設計ブロックの保存された状態を復元するためにスキャンチェーン102を用いるための回路の例示のブロック
図406を示す。クロック130サイクルは、スキャンチェーン102にストアされたビット104を、スキャンチェーン102においてシリアル接続されたセル106を介して反復的に移動させ、メモリセル118の第3の行114にストアされたデータを、メモリ112から読み出させ、対応するスキャンチェーン102にストアさせる。状態復元プロセスにおけるこの時点において、CHAIN3におけるセル106のすべてがビット104を含むが、メモリ112の列3はまだ空ではない。メモリ112の列3に残っているデータは、保存動作の場合と同様に、CHAIN3のエンドセル110からCHAIN3のマルチプレクサ306にループバックした同一のデータの代わりに、CHAIN3のセル106にストアされる。SRモードセレクタ308が現在、新しいデータを一層短いスキャンチェーン106に入力させることを選択しているので、マルチプレクサ306は、ループされたビット104を渡さない。
【0068】
図4Eは、
図4Aから4クロック130サイクルが経過した後の、設計ブロックの保存された状態を復元するためにスキャンチェーン102を用いるための回路の例示のブロック
図408を示す。クロックサイクル130は、スキャンチェーン102にストアされたビット104を、スキャンチェーン102においてシリアル接続されたセル106を介して反復的に移動させ、メモリセル118の第4の行114にストアされたデータを、メモリ112から読み出させ、対応するスキャンチェーン102にストアさせる。第3のスキャンチェーン102(CHAIN3)は、3セル106長しかないので、
図4DのCHAIN3のエンドセル110にストアされたゼロは、CHAIN3のマルチプレクサ306の入力に戻されて接続されるが、SRモードセレクタ308が、ループバックされたデータではなくSR制御ブロック108’からのデータを出力させるように、マルチプレクサ306を制御するため、それは、実質的に破棄される。従って、CHAIN3 マルチプレクサ306は、メモリ112の列3(CHAIN3に対応する)、行4(状態保存プロセスの第4のクロック130サイクルにおいて、CHAIN3から読み出され、状態復元プロセスの第4のクロック130サイクルにおいて、メモリ112の列3から読み出される)に以前にストアされたゼロを出力し、それは、従ってCHAIN3の第1のセル304にストアされる。
【0069】
図4Eにおいて、CHAIN2の全てのセル106は、状態復元プロセスの間にメモリ112から読み出されストアされたビット104を含む。その結果、
図4FにおけるCHAIN2の挙動(ループされたビット104の破棄、メモリ112から読み出された同一のビット104の保存)は、
図4EにおけるCHAIN3の挙動に類似している。
【0070】
図4Fは、
図4Aから第5のクロック130サイクルが経過した後の、設計ブロックの保存された状態を復元するためにスキャンチェーン102を用いるための回路の例示のブロック
図410を示す。クロック130サイクルは、スキャンチェーン102にストアされたビット104を、スキャンチェーン102においてシリアル接続されたセル106を介して反復的に移動させ、メモリセル118の第5の行114にストアされたデータを、メモリ112から読み出させ、対応するスキャンチェーン102の第1のセル304にストアさせる。CHAIN2及びCHAIN3のエンドセル110に以前にストアされたものは、それぞれのマルチプレクサ306に対する入力としてループバックされ、破棄され(SRモードセレクタ308に起因して)、メモリ112の行5、列2及び3から読み出された同一のものは、CHAIN2及び3のそれぞれの第1のセル304にストアされる。
図4Fに示されるように、スキャンチェーン102は、
図4Aにおける保存プロセスの開始時と同じ構成で同じビット104を含む。スキャンチェーン102に含まれるデータは、その後、設計ブロックの保存された状態を復元するために用いられ得、設計ブロックの状態をスキャンチェーン102に初期的にロードするために用いられたプロセスを逆に行う。
【0071】
図5Aは、設計ブロックの状態を保存するためにスキャンチェーンを用いるための例示のプロセス500を示す。ステップ502において、スリープコマンドが設計ブロックで受け取られ、それによって、設計ブロックがパワーダウンの準備をし、その後、パワーダウンする。設計ブロックの状態を保存することはパワーダウン準備の一部である。ステップ504において、設計ブロックの状態データの異なる部分が、複数のスキャンチェーンの異なる部分にロードされる。スキャンチェーンは、シリアル接続された複数のメモリセルから構成される。最長のスキャンチェーンはN個のセルを有し、一層短いスキャンチェーンはM個のセルを有し、Mは、異なるスキャンチェーンに対して異なり得る。ステップ506において、スキャンチェーンにストアされた状態データは、スキャンチェーンを介して、反復的に漸進させられる。ビットは、最長のスキャンチェーンのエンドセルから出力され、ビットは、一層短いスキャンチェーンの(N-M)番目のセルから出力される。ビットは、一層短いスキャンチェーンのM番目のセルから、それぞれの一層短いスキャンチェーンの第1のセルにストアされるように、ループされる。ステップ508において、スキャンチェーンのうちの異なるものから出力されたビットは、メモリの異なる領域に、スキャンチェーンのうちの異なるものがメモリ領域のうちの異なるものに対応するように、或る順序でストアされる。ステップ510において、ステップ506及び508の反復漸進及びストレージは、ステップ504において一層長いスキャンチェーンにストアされた全ての状態データが、メモリにストアされるまで繰り返される。この結果、一層短いスキャンチェーンにストアされた状態データの複数のコピー(例えば、1部のコピーと部分的なコピー)がメモリにストアされる。
【0072】
図5Bは、設計ブロックの状態を保存するためにスキャンチェーンを用いるための例示のプロセス500を示す。ステップ514において、スキャンチェーンに対応するメモリ領域から、ビットが順次読み出され(ステップ508に関して説明されたように)、好ましくは、ステップ514の反復毎、領域毎に1ビット読み出される。ステップ516において、メモリから読み出されたビットは、スキャンチェーンのそれぞれの第1のセルにストアされる。ステップ518において、最長のスキャンチェーンがまだ状態データで(再)満たされていない場合、状態データはスキャンチェーンを介して反復的に漸進させられ、ステップ514及び516が繰り返される。ステップ520において、状態データはスキャンチェーンを介して、繰り返し反復的に漸進させられ、スキャンチェーンから出力された状態データは、設計ブロックのそれぞれのメモリ要素に対して復元される。
【0073】
図6Aは、設計ブロックの状態を保存するために用いられるスキャンチェーンに対するクロックを提供するために用いられるクロック回路600のための例示のブロック図を示す。クロック回路600は、基準クロック602を入力として受け取り、分周されたクロック信号CLK
DIV604をそれ自体への入力(フィードバック)として、及びマルチプレクサ606への入力として、出力するように接続されるクロック分周器608を含む。マルチプレクサ606はまた、入力として保存・復元クロックCLK
SR610を受け取る。SR Mode612セレクタは、マルチプレクサ606が、マルチプレクサ出力614として、CLK
DIV604を出力するか又はCLK
SR610を出力するかを選択する。設計ブロックの通常機能の間、マルチプレクサ606は、設計ブロックによって用いるためにCLK
DIV604を出力する。状態保存プロセス又は状態復元プロセスの間、マルチプレクサ606は、スキャンチェーン及び関連回路によって用いるためにCLK
SR610を出力する。
【0074】
図6Bは、クロック回路600のための例示のタイミング
図611を示す。
図6Bに示されるように、SR Mode612は、SR(保存・復元)機能がトリガされた設計ブロックアイドル状態(例えば、パワーダウンされた状態)に対応して、初期的に高に設定される。SR Mode612は、後に、低状態に遷移し、設計ブロックのアイドル状態から機能(例えば、パワーアップされている)状態への遷移、及び対応する保存・復元モードから機能モードへの遷移を示す。CLK
DIV604は低で開始し、SR Mode612が低に遷移する前(設計ブロックが保存・復元モードから機能モードに遷移する前)に、高に遷移する。
図6Bに示される時間期間の間、CLK
SR610は、初期的に、発振しており、状態復元プロセスが完了すると、SR Mode612が低になる前に、発振を停止する。マルチプレクサ出力614は初期的にCLK
SR610に従い、SR Mode612が低になるとき(SR Mode612が変化すると、選択されたマルチプレクサ出力614が変化する)に、CLK
DIV604に従い高になる。マルチプレクサ出力614によるこの遷移は、立ち上がりクロックエッジ616を作り出し、SR Mode612の遷移と同時に発生する。これは、マルチプレクサ出力614における立ち上がりクロックエッジ616が、クロック遷移のないところにクロック遷移(立ち上がりクロックエッジ)を示し、その結果、クロック回路が意図しない(誤った)挙動を示すという理由で問題となり得る。
【0075】
図6Cは、設計ブロックの状態を保存するために用いられるスキャンチェーンのためにクロックを提供するために用いられ、SR Mode612の遷移のときに誤ったクロック遷移を抑制するように構成されるクロック回路618の例示のブロック図を示す。クロック回路618は、CLK
SR610及びRESET信号622を入力として受け取り、遷移クロックCLK
XN624をORロジックゲート626に出力するために接続される制御フリップフロップ620を含む。ORロジックゲート626はまた、入力としてCLK
SR610を受け取る。ORロジックゲート626は、ゲートされた保存・復元クロックCLK
SR_G628を、マルチプレクサ606に出力する。SR Mode620は、マルチプレクサ606が、マルチプレクサ出力614として、CLK
DIV604を出力するか又はCLK
SRG628を出力するかを選択する。設計ブロックの通常機能の間、マルチプレクサ606は、設計ブロックによって用いるためにCLK
DIV604を出力する。状態保存プロセス又は状態復元プロセスの間、マルチプレクサ606は、スキャンチェーン及び関連回路によって用いるためにCLK
SRG628を出力する。
【0076】
図6Dは、クロック回路618のための例示のタイミング
図630を示す。
図6Dに示される信号タイミングは、
図6Bにおけるものと同じであるが、RESET信号622の追加と、そのマルチプレクサ出力614に対する影響が異なる。RESET信号622は、低で開始し、状態復元プロセスが完了すると、SR Mode612が高になる前に高になり、アイドル状態から機能状態への遷移が完了するまで高のままである。RESET信号622は、CLK
XN624(図示されない)を高にし、これにより、CLK
SRG628(図示されない)を高にし、これによりマルチプレクサ出力614を高のままにする。これは、マルチプレクサ出力614が誤った立ち上がりエッジ遷移を示すことを防ぐ。
【0077】
図6A、
図6B、
図6C、及び
図6Dは、設計ブロックにおけるアイドル状態から機能状態の遷移に対処する。
図6Cのクロック回路618はまた、SR Mode612が高になる前にRESET信号622をアクティベートすることによって、設計ブロックにおける機能状態からSR状態への遷移の間の誤ったクロック遷移を抑制するためにも用いられ得、アイドル状態への遷移が完了する(例えば、状態保存プロセスを開始する準備ができたとき)まで高のままである。集積回路における保存・復元機能の技術に習熟した者には明らかであるように、クロック回路618はまた、誤った立ち上がりエッジ遷移及び誤った立ち下がりエッジ遷移の両方を防止するように修正され得る。
【0078】
特許請求の範囲内で、説明した実施形態における変更が可能であり、他の実施形態が可能である。
【0079】
幾つかの実施形態において、メモリセルが複数のビットをストアし得る。幾つかの実施形態において、異なるメモリセルが異なる数のビットをストアし得る。
【0080】
幾つかの実施形態において、本明細書に記載されているものとは異なる数のセル及び異なるサイズのメモリが用いられ得る。
【0081】
幾つかの実施形態において、スキャンチェーンを介してビットを漸進させるために、異なる数のクロックサイクルが用いられ得る。
【0082】
幾つかの実施形態において、クロック信号以外の伝搬信号(スキャンチェーンを介してビットのシリアル漸進を起こす信号)が用いられ得る。
【0083】
幾つかの実施形態において、スキャンチェーンから読み出されるビットは、非連続的にメモリにストアされる。幾つかの実施形態において、ビットが異なる順序で(例えば、犁耕体的に(boustrophedonically))メモリにストアされる。幾つかの実施形態において、スキャンチェーンからビットがメモリの同じ行ではなく、同じ列にストアされる。幾つかの実施形態において、スキャンチェーンからビットが、メモリにおいて、底部から上方にストアされる。
【0084】
幾つかの実施形態において、状態保存プロセスの間に、状態データの付加的なコピーがメモリにストアされ得る。
【0085】
幾つかの実施形態において、状態データがメモリにストアされる順序は、状態データがスキャンチェーンにストアされる順序と同じではない。
【0086】
幾つかの実施形態において、スキャンチェーンから状態データがロードされるメモリは、設計ブロックと同じダイ上にある。幾つかの実施形態において、スキャンチェーンから状態データがロードされるメモリは、設計ブロックとは異なるダイ上にある。
【0087】
幾つかの実施形態において、初期化動作において、データは、初期的に(スキャンチェーンの第1のセルを介する等により)スキャンチェーンにシリアルにロードされる。幾つかの実施形態において、初期化動作において、例えば、同じクロックサイクルの間にスキャンチェーンの対応するセルに全てのデータをロードすることによって、又は、個々のクロックサイクルの間に複数のビットを直接スキャンチェーンの対応するセルにロードすることによって、データが初期的にスキャンチェーンにパラレルにロードされる。
【0088】
幾つかの実施形態において、設計ブロックの状態を保存及び復元するための回路要素は、複数の第1のメモリ(スキャンチェーン102等)及び第2のメモリ(メモリ112等)を含む。第1のメモリは、初期化動作の間に、設計ブロックのメモリ要素(レジスタ及びフリップフロップ等)から第1のデータ(状態データ等)を受け取るように構成される。第1のメモリは、第1の順序で、第1のデータの異なる部分を、第1のメモリ(
図3Aに示されるように、状態データを特定のシリアル順にストアするスキャンチェーン102等)のうちの異なるものにストアする。第1のメモリのうちの異なるものは、異なる数のメモリセル(異なる数のセル106を有する異なるスキャンチェーン102等)を有し、多くのメモリセルを備える第1のメモリの幾つかはN個のメモリセルを有し、一層少ないメモリセルを備える第1のメモリの幾つかはM個のメモリセルを有する。第2のメモリは、第1のメモリに結合される。状態保存動作の間、第1のデータ(状態データ)は、第1のメモリ(スキャンチェーン102)から読み出され、第2のメモリ(メモリ112)にストアされ、第1のメモリのうちの異なるものにストアされた第1のデータの部分は、第2の順序で第2のメモリの異なる対応する領域に第2のデータとして書き込まれる(例えば、スキャンチェーン102における状態データは、メモリ112の対応する列116に書き込まれる)。第2の順序は、一層少ないメモリセルを備える第1のメモリの対応するものの、第1の順序を用いて決定されるように、第1のN-Mのメモリセルに順次ストアされた第1のデータの繰り返された部分を含む(例えば、一層短いスキャンチェーン102の第1のNマイナスMセル106にストアされたビット104が、メモリ112において繰り返される。これは、ループされた入力、及び一層短いスキャンチェーン102における出力310の位置に起因し、また、一層短いスキャンチェーン102からM個の別個のビット104を出力するためにNクロックサイクルが用いられることに起因する。ここでN>Mである)。状態復元動作の間、第2のデータの異なる部分は、第2のメモリから読み出され、第1のメモリの異なる対応するものに、第1の順序でストアされる(状態データはメモリ112から出力され、対応するスキャンチェーン102に戻され、それによって、状態データは、スキャンチェーン102によって、状態データが初期的にスキャンチェーン102にストアされたときとと同じ順序でストアされる)。繰り返された部分は、一層少ないメモリセルを備える第1のメモリの対応するものに、第1の順序でストアされ、そこには、第2のデータの同一の部分が、既にストアされている(メモリ112において繰り返されたビット104は、例えば、
図4E及び4Fに示されるように、初期的なシリアル順序でスキャンチェーン102にストアされる)。