説明

状態保持回路における状態保全性の検証

【課題】 本発明は、データ処理動作を行うよう構成されたデータ処理回路を備えたデータ処理装置を提供する。
【解決手段】 複数の状態保持回路がデータ処理回路の一部を形成し、これらの回路は、低電力モードに入ったデータ処理回路のそれぞれのノードにてそれぞれの状態値を保持するよう構成される。1以上のスキャンパスは、状態値がそれぞれのノードにスキャンインまたはアウトされてもよいよう、複数の状態保持回路を直列に接続する。複数のパリティ情報生成要素はスキャンパスに結合され、状態保持回路によってそれらそれぞれのノードにて保持されたそれぞれの状態値を示すパリティ情報を生成するよう構成される。複数のパリティ情報生成要素は、それぞれの状態値の一つが変化した場合にパリティパスの出力にて生成された出力パリティ値を反転するよう、1以上のパリティパスを提供し、状態保持回路によって保持された状態値の保全性の外部指示を提供するよう配置される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理システムの分野に関する。より詳しくは、本発明は、データ処理システムが低電力モードに入った場合、それぞれの状態値を保持するよう構成された多くの状態保持回路を持つデータ処理システムに関し、これら状態値がスキャンインおよびスキャンアウトされてもよいように、スキャンパスがこれら状態保持回路を接続する。
【背景技術】
【0002】
既知の通り、データ処理システムが低電力モードに入った場合、データ処理システムのそれぞれのノードでそれぞれの状態値を保持するよう構成された多くの状態保持回路を備えるデータ処理システムが提供されている。これにより、データ処理システムが後に低電力モードを出て、その低電力モードに入った時の構成からデータ処理動作を続けることが可能になる。例えば、これらの状態保持回路はいわゆる「バルーンラッチ(balloon latches)」によって提供されてもよく、それら独自の供給電圧を備えることができ、低電力モード中にデータ処理システムの電力消費を低くするのに望ましい性質(例えば、低い漏れ電流)を持つよう構成されることができる。
【0003】
さらに既知の通り、そのような状態保持回路はスキャンパスが形成されるよう直列に接続されることができる。そのようなスキャンパス(または「スキャンチェーン(scan chain)」)は、テストパターン状態が状態保持回路にロードされたりアンロードされたりすることを可能にするシフトレジスタ動作が、テストパターン自動生成(ATPG)製造テストベクトルを状態保持回路に接続されたデータ処理装置の論理回路のテストをするために使われることを可能にすることができる。
【0004】
集積回路を形成するためのプロセス・ジオメトリ(process geomotries)がますます小さくなるにつれ、これら回路(特に本文では、状態保持回路)はソフトエラーに対してますます脆弱になり、それには、電離放射線、熱的変動、デバイスの経年劣化等の多くの原因があるだろう。もちろん、それらエラーが状態保持回路内で発生した場合、その後、状態保持回路によって保持されたそれぞれの状態値を信頼することはできず、つまり、データ処理回路は低電力モードを出た時に望み通りのデータ処理動作を続けることを保証できなくなる。そのようなソフトエラーへの耐性を与える方法の一つは、そのようなソフトエラーへの耐性を増やすために,最小の動作電圧を超えて状態保持回路に供給される電圧に,安全のための余裕を取ることを確実にすることである。しかしながら、そのようなデータ処理システムの電力消費をより低く抑えたいのであれば、この安全のための余裕内で消費される電力が加わることは望ましくない。状態保持回路の保全性をサポートする別の方法は、各状態保持回路に関して電圧感受性の「カナリア回路」の設置をすることであり、そこでは、意図的に歪ませた影の(shadow)状態保持構造が、実際の状態保持回路の前に故障するよう構成される。しかしながら、そのようなカナリア回路によって回路領域と電力が更に加えられることは望ましくない。
【0005】
従って、そのような状態保持回路の状態保全性をサポートするために改良された技術を提供することが望ましいであろう。
【0006】
背景情報として、以下のドキュメントに先行技術の関連した形態が記載されている。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】“Designing for State Retention”, D. Flynn and A. Gibbons, December 12, 2008, 以下に記載http://www.soccentral.com/results.asp?EntryID=27642;
【非特許文献2】“Dynamic State-Retention Flip-Flop for Fine-Grained Power Gating With Small Design and Power Overhead”, Stephan Henzler et al., IEEE JOURNAL OF SOLID-STATE CIRCUITS, VOL. 41, NO. 7, JULY 2006;
【非特許文献3】“Shaken or Stirred by Low Power Design Challenges?”, ARM DevCon 2007, 以下に記載: http://www.synopsys.com/Solutions/EndSolutions/EclypseSolutions/CapsuleModule/arm-snps_devcon_panel07.pdf;
【非特許文献4】“Case Study of a Low Power MTCMOS based ARM926 SoC”, Sachin Idgunji, Design, Analysis and Test Challenges, Lecture 2.3, International Test Conference 2007;
【非特許文献5】“Low Power Design”, Richard Goering, SCD source, September 2008, Issue 1, 以下に記載: http://www.leepr.com/PDF/SCDsource_STR_LowPower.pdf;
【非特許文献6】“Experimental Measurement of Novel Power Gating Structure with Intermediate Power Saving Mode”, Kim, Kosonocky et al., ISPLED ‘04, August 9-11, 2004, Newport Beach, California, USA;
【非特許文献7】“Low Power Robust Computing Tutorial”, EECS, University of Michigan 2005, 以下に記載http://www.eecs.umich.edu/~taustin/papers/MICRO2005-tutorial.pdf;
【非特許文献8】“On-Demand Solution to Minimize I-Cache Leakage Energy with Maintaining Performance”, S. W. Chung and K. Skadron, IEEE Transactions on Computers, 57(1):7-24, Jan. 2008, 以下に記載: http://www.cs.virginia.edu/~skadron/Papers/icache_leakage_tc08.pdf;
【非特許文献9】“Standby Power Reduction Using Dynamic Voltage Scaling and Canary Flip-Flop Structures”, Benton H. Calhoun and Anantha P. Chandrakasan, IEEE JOURNAL OF SOLID-STATE CIRCUITS, VOL. 39, NO. 9, SEPTEMBER 2004;
【特許文献】
【0008】
【特許文献1】米国特許12/385674号
【発明の概要】
【発明が解決しようとする課題】
【0009】
第1の形態から理解されるように、本発明は、データ処理動作を行うよう構成されたデータ処理回路、データ処理回路の一部を形成し、データ処理回路が低電力モードに入った場合にデータ処理回路のそれぞれのノードにそれぞれの状態値が保持されるよう構成された複数の状態保持回路、複数の状態保持回路を、状態値がそれぞれのノードにスキャンインおよびスキャンアウトされてもよいように直列に接続するスキャンパス、およびスキャンパスに結合され、状態保持回路によってそれぞれのノードに保持されたそれぞれの状態値を示すパリティ情報を生成するよう構成された複数のパリティ情報生成要素を備えるデータ処理装置を提供し、複数のパリティ情報生成要素は、それぞれの状態値の一つが変化した場合にパリティパスの出力で生成された出力パリティ値が反転するようパリティパスを備えるよう配置される。
【0010】
データ処理回路は、動作モードでデータ処理動作を行うよう構成される。複数の状態保持回路がデータ処理回路の一部を形成し、状態保持回路は、データ処理回路が低電力モードに入った場合、特定の点(ノード)でそれぞれの状態値を保持するよう構成される。これにより、データ処理回路は(低電力モードに入った場合)データ処理動作を一時的に停止することができるが、低電力モードを出た場合、それらデータ処理動作を迅速に続けることができる。スキャンパスは、それぞれの状態値が保持されたノードに状態値がスキャンインおよびスキャンアウトされることができるよう、状態保持回路を接続する。
【0011】
本技術は、スキャンパスに結合され、状態保持回路によって保持された状態値を示すパリティ情報を生成するよう配置されたパリティ情報生成要素を提供する。更に、これらパリティ情報生成要素は、出力パリティ値を読み出すことができる出力で、パリティパスを形成するよう配置される。詳細には、パリティ情報生成要素は、状態保持回路によって保持されたそれぞれの状態値の一つが変化した場合、出力パリティ値が反転するよう、パリティパスを形成するよう構成される。状態値の一つにおける「変化」には、その値の完全な反転(すなわち、論理“1”を論理”0”に反転する、またはその逆)を含んでもよく、それぞれのパリティ情報生成要素によって生成されたパリティ情報が反転するのに十分であるにもかかわらず、不定状態に入った状態値の一つを含んでもよい、ということに留意されたい。
【0012】
従って、本技術は、出力パリティ値を更に提供するために、データ処理システムのスキャンパス構成を有利に利用する。出力パリティ値の構成に組み込まれた状態値の一つが変化した場合、出力パリティ値は反転するので、出力パリティ値は、スキャンパス沿いの状態保持回路によって保持された状態値の保全性を監視するために、モニタされ得る。更に、第1障害がこれら状態保持回路の一つ内で発生するとすぐに、本エラーに対応する動作を取ることができる。
【0013】
状態保持回路は様々な形状をとってもよい。例えば、これらはデータ処理システムが低電力モードに入った場合にそれらの値を維持するためにクロックゲートされたレジスタデバイスと同じくらい単純であってもよく、状態保持回路内に状態値が保持された低電力モードに対応する動作モードを持つよう明確に構成された状態保持デバイスの何か他の形状であってもよい。一実施形態において、状態保持回路は複数のスキャンフロップを備える。スキャンフロップはスキャンパスへの連結に適応する状態保持回路を表し、そのため、本技術の用途に対する特に適切な基礎を表す。更に、現在のEDA(電子設計自動化)ツールはスキャン準備シンセシス(scan−ready synthesis)に対する標準サポートを備えることが一般的であり、スキャンフロップはスキャン接続コスト機能を可能にする標準D型レジスタ上にマップされる。
【0014】
複数のパリティ情報生成要素は様々な方法でスキャンパスに結合されてもよい。一実施形態において、複数のパリティ情報生成要素は、状態保持回路のスキャンパス出力のそれぞれにて、スキャンパスに結合される。状態保持回路のスキャンパス出力は、状態保持回路によって提供された唯一の出力(すなわち、結合されたデータ/スキャン出力)であってもよく、データ出力とは別の専用のスキャン出力であってもよい。
【0015】
スキャンパス上を伝わる信号の保持時間がシステム要件を満たすことを確実にするために、保持固定バッファがスキャンパス上に追加されてもよい。そのような一実施形態において、スキャンパスは保持時間固定バッファを状態保持回路のそれぞれのスキャンパス出力にて、スキャンパス上に備え、複数のパリティ情報生成要素は保持時間固定バッファのそれぞれの出力に結合される。このような方法で保持時間固定バッファの後にパリティ情報生成要素を結合することは、パリティ情報生成要素によって課された余分な負荷が、状態保持回路のスキャンパス出力上で直接よりむしろ保持時間固定バッファによってサポートされることを意味し、状態保持回路とスキャンパスの構成により、状態保持回路間のクリティカルパスタイミング(すなわち、スキャンパスよりむしろ、データパス)に影響を与えるだろう。
【0016】
パリティパスを提供するようにパリティ情報生成要素を配置するには、多くの方法がある。一実施形態において、パリティ情報生成要素は、次のパリティ情報生成要素の一入力を形成する第1パリティ情報生成要素の出力によって、パリティパスを提供するよう配置される。このパリティ情報生成要素の連結は、パリティパスを形成するために単純な、モジュール式の方法を提供し、EDAツールがこれらパリティ情報生成要素を共に繋ぐための単純な方法を提供する。
【0017】
パリティ情報生成要素は様々な形状をとる。一実施形態において、パリティ情報生成要素は2入力デバイスである。別の実施形態において、パリティ情報生成要素は2より多くの入力を持つ。保持されたそれぞれの状態値を示す適切なパリティ情報を生成するパリティ情報生成要素には様々な構成があるが、一実施形態において、パリティ情報生成要素はXORゲートである。もちろん、同様の機能を持つ別のバリアント(variants,変種、例えば、XNORゲート)でも可能である。更に、パリティ情報生成要素は単一の出力を持ってもよく、または、ある実施形態において、複数の出力を持ってもよい。
【0018】
上記のように、状態保持回路は別々のスキャン出力とデータ出力を持ってもよく(同じことが入力側についても当てはまる)、一実施形態において、複数の状態保持回路はそれぞれ、スキャンイン入力と専用のスキャンアウト出力を備え、第1状態保持回路の専用のスキャンアウト出力は、スキャンパスを提供するよう次の状態保持回路のスキャンイン入力に接続され、スキャンパスはパリティパスを提供する。従って、状態保持回路を互いに繋ぐ既存のスキャンパスは、パリティパスを提供するよう再利用される。現在の集積回路におけるスペースに制限のある環境では、このようなスキャンパスの二重使用は特に有利である。
【0019】
そのような状態保持回路に対し、パリティ情報生成要素は、別々の要素として提供されてもよく、または、複数の状態保持回路内に提供されてもよい。状態保持回路内にパリティ情報生成要素を提供することは、例えば、EDAシンセシスの点で有利となる。というのも、スキャン準備シンセシスに対してすでに使われているEDAツールは、直接再利用されるので、本技術の状態保持回路を単純に代用してもよいからである。
【0020】
状態保持回路はスキャンイネーブル信号によって制御されてもよく、一実施形態において、複数の状態保持回路は状態値がそれぞれのノードにスキャンインおよびアウトされるスキャンモードに入るスキャンイネーブル信号のアサーションに反応するよう構成され、複数のパリティ情報生成要素はスキャンイネーブル信号に反応するよう構成され、スキャンイネーブル信号がアサーションされない場合、パリティ情報生成要素は専用のスキャンアウト出力の値がスキャンイン入力の値に依存し、それぞれの状態値は状態保持回路によってそれぞれのノードにおいて保持される。従って、そのような構成において、共有パスがスキャンパスとパリティパスを提供する場合、スキャンイネーブル信号がアサーションされた場合、スキャンパスはそれぞれのノードに状態値をスキャンインおよびアウトするよう従来の形式で使われ、一方、スキャンイネーブル信号がアサーションされなかった場合、パリティ情報生成要素はスキャンアウト出力の値をスキャンインの値に依存させることができ、その保持回路によって保持される。これにより、スキャンパスを各状態保持回路に対するパリティパスとして再利用することは、その状態保持回路への入力とその状態保持回路内に保持された値の両方による値を運ぶ。従って、複数の状態保持回路がスキャンパスを形成するように結合された場合、スキャンパスから読み出される出力パリティ値は(スキャンイネーブル信号がアサーションされない場合)、そのスキャンパス沿いのいかなる状態値の変更も指示できる。
【0021】
認識すべきこととしてであるが、本装置の各状態保持回路はパリティパスの一部として接続される必要はなく、従って、一実施形態において、本装置は、データ処理回路に結合された少なくとも一つの別の状態保持回路を備え、複数のパリティ情報生成要素は、少なくとも一つの別の状態保持回路に保持された少なくとも一つの別の状態値を示すパリティ情報を生成しない。認識されるであろうこととしてであるが、パリティ情報生成に関係しない状態保持回路は、それらが保持する状態の有効性を確実にするため、本明細書に記載された技術によってモニタされ得ない。従って、そのような実施形態において、データ処理回路が低電力データ保持モードを出る場合、それら状態保持回路は再イニシャライズされるよう配置されてもよい。
【0022】
データ処理回路は様々な方法で低電力モードに入るよう構成されることができ、例えば、一実施形態において、低電力モードは停止モードである。これは、例えば、データ処理回路に提供されるクロック信号をサスペンドするよう構成してもよいということである。別の実施形態において、低電力モードは減電圧モードである。これは、例えば、電力消費を抑えるためにデータ処理回路に印加された電圧を減らすよう構成してもよいが、状態値はまだ状態保持回路によって保持され得るように電圧を維持するということである。
【0023】
一実施形態において、複数の状態保持回路は保持電圧供給を備え、保持電圧供給はデータ処理回路が低電力モードに入った場合、データ処理回路のそれぞれのノードにてそれぞれの状態値を保持するために、複数の状態保持回路に十分な電圧を供給するよう構成され、複数のパリティ情報生成要素は保持電圧供給によって電力を供給される。従って、それぞれの状態値が低電力モード中に保持されることを可能にする同じ電圧供給からのパリティ情報生成要素への電力供給によって、パリティ情報の生成は、データ処理回路が低電力モードに入った場合にサポートされる。節電の点から留意されたいこととしてであるが、複数のパリティ情報生成要素に供給される電圧供給は、それ自体、「不活発な保持」モードに陥る可能性があり、パリティ情報生成要素の動作もまた閾値近くになる。このことは結果として伝達時間をより長くするかもしれないが、パリティ出力は、それにもかかわらず生成される可能性があるので、保持された状態値の保全性はモニタされうる。
【0024】
一実施形態において、複数のパリティ情報生成要素は、状態値がスキャンパスを介してそれぞれのノードにスキャンインおよびアウトされた場合、抑えられるよう構成されたパリティ要素電圧供給を備える。出力パリティ値をモニタすることは一般的に要求されず、一方、状態値はスキャンインまたはアウトされる。というのも、パリティ値はこの手続き中に安定状態にないからである。従って、スキャンモードにある場合、パリティ要素電圧供給を減らす、またはスイッチを切ることを選んでもよい。
【0025】
一実施形態において、複数のパリティ情報生成要素は、データ処理回路が低電力モードでない場合、パワーゲートがオフされるよう構成される。データ処理回路が低電力モードでない場合、しかし通常のデータ処理動作を行う場合、出力パリティ値も安定状態ではなく、電力を抑えるために、データ処理回路の通常データ処理動作中にパリティ情報生成要素のパワーゲートをオフにすることが選択されてもよい。一実施形態において、複数の状態保持回路の少なくとも一つは状態保持モードに入るために保持信号に反応するよう構成され、複数のパリティ情報生成要素の少なくとも一つは保持信号に反応して動作することが可能なように構成される。従って、状態保持回路を状態保持ノードに入れさせるために使われる保持信号は、パリティ情報生成要素にも可能なように使われることができる。というのも、それらがアクティブになるよう要求される一方で、複数の状態保持回路が保持ノードにあるからである。
【0026】
このように、単一のスキャンパスとパリティパスの点から概念的に記載したが、本技術はそのような例に限定されず、実施形態において、本装置は複数のスキャンパスと複数のパリティパスを備える。
【0027】
そのような一実施形態において、本装置はパリティパスの第1セットとパリティパスの第2セットを備える。第1セットのパリティパスは第1セットの状態値に左右される第1出力パリティ値を提供し、パリティパスの第2セットの2以上のパリティパスの出力は、第1セットの状態値に左右される。これの一つの例示的な実施は、第1セットのパリティパスが実質的に、第2セットのパリティパスに直交する(例えば、第1セットが水平に走り、一方で第2セットが垂直に走る)ことであるが、二つのセットがもう一方に対していかなる特定の幾何学的方向に執着する必要はなく、装置全体でいかなる特定の方向に従う必要もない。それにもかかわらず、第1セットを装置全体のある「方向」に関するパリティ情報を供給するように配置することはシステム診断ポイントの観点から有益である。一方、第2セットは装置全体の第2「方向」に関し、パリティ情報を提供し、そのようにして第1および第2セットの出力パリティ値が結合された場合に互いに相補的な情報を提供することができる。各パリティパスがその長さ沿いのどこかで状態値が変化したとだけ指示できれば、そのパリティパスと交差する第2セットのパリティパスを配置することで、状態値が変化した場所を識別する助けができる。実際、状態保持回路が互いに完全に相補的な2セットのパリティパスに結合されると、2セットの出力パリティ値は、変化した状態値に関係する状態保持回路を識別可能な座標システムを提供する。従って、一実施形態において、第1セットのパリティパスと第2セットのパリティパスは、それぞれの状態値が反転した反転ノードが、第1セットのパリティパスと第2セットのパリティパスの出力値が反転したことを参照することで識別され得るよう、配置される。
【0028】
そのような一実施形態において、第2セットのパリティパスにおけるパリティ情報生成要素の入力は、複数のスキャンパスに結合される。従って、第2セットのパリティパスは複数のスキャンパスによって提供される相補的な情報を提供できる。
【0029】
そのような別の実施形態において、第2セットのパリティパスにおけるパリティ情報生成要素の入力は、第1セットのパリティパスに結合される。これは、パリティパスを提供するように状態保持回路を接続する点から有利であるかもしれない。というのも、第1セットと第2セットのパリティパス両方に対するカスケード接続を配置できるからである。
【0030】
本装置は出力パリティ値の反転のための様々な方法で反応するよう構成されてもよい。一実施形態において、本装置は更に、出力パリティ値をモニタし、出力パリティ値が反転した場合に回復手続きを始めるよう構成されたモニタ回路を備える。
【0031】
回復手続きは様々な形を取れるが、一実施形態において、回復手続きは、状態保持回路によってそれぞれのノードに保持されたそれぞれの状態値をリロード(reload)することを含む。
【0032】
一実施形態において、本装置は更に、出力パリティ値が反転した場合に回復手続きを始めるために出力パリティ値をモニタするよう構成されたモニタ回路を備える。回復手続きは、状態保持回路によってそれぞれのノードに保持されたそれぞれの状態値をリロードすることを含み、回復手続きは、反転ノードに対応するスキャンパスから一組みの状態値をスキャンアウトして、反転したそれぞれの状態値を再反転し、反転ノードに対応するスキャンパスに状態値のセットをスキャンインすることを含む。従って、反転した状態値が2以上のパリティパスに参照されることにより識別された場合、この情報は対応する状態保持回路で保存された状態値を修復するために使われ得る。
【0033】
あるいは、状態値のセットは本装置の他の場所へ格納されてもよく、回復手続きは以前に格納した状態値のセットからそれぞれの状態値をリロードすることを含む。
【0034】
本システムが、例えば単一の状態値を反転するような単純な回復を行えない(例えば、いくつかの状態値が反転したため)と識別し、一実施形態において、回復手続きがリセット手続きを含む場合もありうる。このリセット手続きは、例えば、本装置のデータ処理回路の完全、または部分リセットを含んでもよい。
【0035】
第2の形態から理解されるように、本発明は、データ処理動作を行うためのデータ処理手段と、データ処理手段の一部を形成し、データ処理手段が低電力モードに入った場合、データ処理手段のそれぞれのノードにてそれぞれの状態値を保持する複数の状態保持手段と、複数の状態保持手段を直列に接続し、状態値をそれぞれのノードからスキャンインおよびスキャンアウトするためのスキャンパス手段と、スキャンパスに結合され、状態保持手段によってそれぞれのノードにて保持されたそれぞれの状態値を示すパリティ情報を生成するための複数のパリティ情報生成手段とを備え、パリティパスの出力で生成された出力パリティ値が、それぞれの状態値の一つが変化した場合に反転するよう、複数のパリティ情報生成手段はパリティパスを提供するよう配置される、データ処理装置を提供する。
【0036】
第3の形態から理解されるように、本発明は、データ処理動作を行うよう構成されたデータ処理回路を提供し、データ処理回路の一部を形成し、データ処理回路が低電力モードに入った場合にデータ処理回路のそれぞれのノードにてそれぞれの状態値を保持するよう構成された複数の状態保持回路を提供し、状態値がそれぞれのノードにスキャンインおよびアウトされてもよいように複数の状態保持回路をスキャンパスとして直列に接続し、状態保持回路によってそれぞれのノードにて保持されたそれぞれの状態値を示すパリティ情報を生成するよう構成された複数のパリティ情報生成要素をスキャンパスに結合することを備え、それぞれの状態値の一つが変化した場合にパリティパスの出力で生成された出力パリティ値が反転するよう、複数のパリティ情報生成要素がパリティパスを提供するように配置される、データ処理装置を構成する方法を提供する。
【0037】
本方法は様々な状況で実行されることが可能だが、特に自動化ツールでの実施に適しており、一実施形態において、本方法は電子設計自動化処理の一部を形成する。
【0038】
一実施形態において、本方法は更に、複数の状態保持回路が提供された後および複数の状態保持回路をスキャンパスとして直列に接続する前に、隣接する状態保持回路と関連づけられた複数のパリティ情報生成要素を提供するステップを備える。従って、情報保持回路は最初に提供されてもよいが、それらがスキャンパスにつなげられる前に、隣接する状態保持回路に関連づけられた各パリティ情報生成要素が提供される。従って、複数の状態保持回路を提供する既知のステップは再利用でき、要求されたパリティ情報生成要素を各状態保持回路と関連づける追加ステップを簡単に追加することができる。例えば、これは、各スキャンフロップに隣接するXORゲートを配置することを含んでもよい。
【0039】
一実施形態において、本方法は更に、スキャンパス上でタイミング最適化処理を行うステップを含み、タイミング最適化処理は、第1状態保持回路と第2保持回路間のスキャンパス部分に対する信号伝達時間が所定の基準を満たすかどうか判断し、信号伝達時間が所定の基準を満たさないなら、スキャンパス部分に少なくとも一つの保持時間固定バッファを提供する。例えば、スキャンパス部分はその信号を一つの状態保持回路から次へあまりに速く伝達していることを見つけたら、1以上の保持時間固定バッファがそのスキャンパス部分に導入されてもよく、それは、スキャンパスの保持時間要求を満たすことを確実にするためである。
【0040】
第4の形態から理解されるように、本発明は、非一時的方式(non−transient fashion)でコンピュータプログラムを格納するコンピュータプログラム商品を提供し、コンピューティングデバイスでそのコンピュータプログラムが実行された場合に、コンピューティングデバイスに第1の形態に関する装置の表示を生成させる。
【0041】
第5の形態から理解されるように、本発明は、非一時的方式でコンピュータプログラムを格納するコンピュータプログラム商品を提供し、コンピューティングデバイスでそのコンピュータプログラムが実行された場合に、コンピューティングデバイスに第3の形態に関する方法を実行させる。
【図面の簡単な説明】
【0042】
本発明は、添付図面に例示されるように、その実施形態に関して更に記載され、例としてのみ記載される。
【0043】
【図1】図1は、一実施形態における、別々のスキャンパスとパリティパスを持つ一組みの状態保持回路を模式的に示す。
【図2】図2は、別の実施形態における、別々のスキャンパスとパリティパスを持つ一組みの情報保持回路を模式的に示す。
【図3A】図3Aは、一実施形態における、パリティパスがスキャンパスを共有する一組みの状態保持回路を模式的に示す。
【図3B】図3Bは、図3Aに示す状態保持回路の入力と出力の論理的構造を示す。
【図4】図4は、図3Aの状態保持回路の一つの構成をより詳細に模式的に示す。
【図5】図5は、一実施形態における、2セットのパリティパスを持つデータ処理装置を模式的に示す。
【図6】図6は、別の実施形態における、2セットのパリティパスを持つデータ処理装置を模式的に示す。
【図7】図7は、図6に示すもののような状態保持回路の論理的構成を模式的に示す。
【図8】図8は、一実施形態におけるデータ処理装置の一般構成を模式的に示す。
【図9】図9は、一実施形態における電子設計自動化処理中に実行される可能性のある一連のステップを模式的に示す。
【図10】図10は、一実施形態における様々なモードと、データ処理装置に対するそれらモード間の遷移を模式的に示す。
【図11】図11は、実施形態のいくつかを実行する可能性のある汎用コンピューティングデバイスを模式的に示す。
【発明を実施するための形態】
【0044】
図1は、一実施形態におけるデータ処理装置を模式的に示す。データ処理装置10は、標準スキャンフロップにより本例にて実施される、三つの状態保持回路12、14、16を備える。スキャンフロップは、スキャンモードにおいて(スキャンイネーブル信号SEがアサーションされた場合)、テストパターン自動生成(ATPG)産出テストベクトルがスキャンフロップ間で機能的組合せ論理回路をテストするために使われるようにテストパターン状態がロードおよびアンロードされることが可能となるよう、スキャンチェーンを形成する組合せ論理回路18、20に接続される。このように、スキャンパスは、1つのスキャンフロップの出力Qを次のスキャンフロップのスキャン入力SIに接続するスキャンパス部分によって形成される。留意されたいこととしてであるが、組合せ論理回路18、20は、通常は、多くの入力および出力を備えるが、図示を簡略化するため、および図示した単一のスキャンチェーンに焦点を合わせるために、組合せ論理回路の各インスタンスへの単一の入力と出力のみを示す。
【0045】
スキャンフロップ12、14、16は状態値をスキャンインおよびスキャンアウトすることを可能にするだけでなく、データ処理回路が低電力モードに入った場合、それらが配置されたデータ処理回路のそれぞれのノードに状態値を保持することも可能にする。すなわち、本文においては、「ノード」とは、各スキャンフロップが組合せ論理回路に対して配置されるポイントである。以下により詳細に記載するように、作動中のデータ値がD入力を介して各状態保持回路に入り、Q出力で出力された場合のデータ処理回路の通常のクロック動作中、または状態値がスキャンイン入力SIを介して状態保持回路に読み込まれ、出力Qを介してスキャンアウトされた場合のスキャンモード中に、各状態保持回路は出力Qで供給可能な状態値を内部に保持することができる。従って、データ処理回路が低電力モードを出た場合、これらの値はそれぞれの入力で組合せ論理回路に渡されるよう、状態保持回路は特定の状態値を低電力モードにおいてデータ処理回路の特定のノードに保持することを可能にする。更に、スキャンパス上で結合された状態保持回路は、これら状態値がシフトレジスタ動作を介してスキャンインされることを可能にする。状態保持回路間のスキャンパス部分は更に、本データ処理装置の設計処理中に必要と思われる保持時間固定バッファ22、24を備える。これは、スキャンパスに沿って送られる値が、その値が続く状態保持回路のSI入力に正しくスキャンインされるために十分に長い期間有効であることを確実にするためである。
【0046】
データ処理装置10は更に、本例においてXORゲートによって実現されるパリティ情報生成要素26、28、30を備える。各XORゲートへの入力は、各状態保持回路の出力Qおよび直前のXORゲートの出力に結合される。シーケンス26における第1XORゲートは、直前のXORゲート出力の代わりに第1状態保持回路12のSI入力に結合される。従って、XORゲート26、28、30のシーケンスは、スキャンチェーンにおいてすべてのレジスタ状態のパリティを反映する出力パリティ値SCPを最終的に生成するパリティパスを形成するために結合された「偶数」パリティ生成器を表す。留意されたいこととしてであるが、スキャンチェーンの各状態保持回路はパリティパスに接続される必要はなく、出力パリティ値SCPはスキャンチェーンのサブセットのみのパリティを表すことができる。
【0047】
そのような集積回路に対する自動化設計処理の点から、ひとたびスキャンチェーン順序が確立されてしまえば、これらXORゲートをネットリストに簡単に繋ぐことができるという点で、パリティ情報生成要素の追加は複雑ではない。しかしながら、留意されたいこととしてであるが、設計フローにおいて回路レイアウトを後で壊すことの無いように、互いに隣接するスキャンフロップとXORゲートを最初に配置することは有効だと考えられる。たとえいくつかのXORゲートをパリティパスに接続するつもりが無いとしても、それでも、この考えは設計フロー崩壊を避けるのに有益であるだろう。XORゲートを各スキャンフロップに対して配置した場合、その後、これら部品の据え付けは、物理的な認識テストスキャンチェーン繋ぎに起因するスキャンチェーン順序に容易に従うことができる。
【0048】
従って、パリティパスは、回路の残りに与える配線の影響を最小にする方法で接続された状態保持回路におけるすべてのレジスタ状態のパリティを反映する出力パリティ値SCPを提供する。パリティパスは、電力消費を最小にするために、比較的遅い伝達パスになり得る(クリティカルパスにはならない)。従って、SCP値がモニタされ得るのは、データ処理システムが、状態保持回路がそれぞれの状態値を保持する低電力モードにある場合であり、また、チェーン内の第1状態保持回路がその状態値の保持に失敗してSCP値がリアルタイムに本信号をトグルする(toggle)(反転する)場合である。SCP値がトグルする場合に様々な応答が可能になるが、以下に詳細に記載するように、図1に示したリニアスキャンとパリティチェーンの点から、チェーン内の状態保持回路の一つがそれぞれの状態値の保持に失敗したということだけをトグルSCP値は示すとすれば、(既知ではないが)、本スキャンチェーンに沿って保持された値のセットをそのような場合のために他の場所に格納された所定のセットによって置き換えるために通常の応答はスキャンチェーン機構を使うだろう。
【0049】
図2は、図1に示したデータ処理装置10と同じ部品を備えるデータ処理装置40を模式的に示す。これら部品は図1に示したものと同じ方法で動作し、本明細書では更なる記載はしない。図2におけるデータ処理装置40と図1におけるデータ処理装置10との間の違いは、パリティ情報生成要素(XORゲート)26、28が、保持時間固定バッファ22、24の後で状態保持回路(スキャンフロップ)間のスキャンチェーン部分に結合されることである。これは、図1に示す構成全体にとって有益であると考えられる。というのも、パリティパスを形成するパリティ情報生成要素からの余分な負荷が状態保持回路の機能的出力に直接結合されておらず、それにより、クリティカルパス(組合せ論理を介してQからD)タイミングのネガティブな影響を避けられるからである。
【0050】
図3Aは、一実施形態におけるデータ処理装置50を模式的に示す。ここで、各状態保持回路52、54、56は、データ出力Qと明示のスキャン出力SOの両方を持つ。これらスキャン出力は、通常、唯一の負荷が次の状態保持回路および接続線のキャパシタンスへの単一SI入力である場合、保持時間を改善するために弱いバッファリングを備える。図3Aにおけるデータ処理装置50は、組合せ論理回路58、60も備える。
【0051】
状態保持回路52、54、56は、本例ではスキャンフロップによって実現されるが、それらが保持する状態値(Q)は、スキャンイネーブル信号SEがアサーションされた(すなわち、スキャンシフトモード)の場合にSO出力から出力され、SEがディアサーションされた場合にSIとQの論理XORから出力されるように構成される。図3Aに示すスキャンフロップの論理的構造は図3Bの表に示され、図3Bの右側欄に等価なVerilog動作モデルも示す。留意されたいことは、図3Bに示す論理的構造は偶数パリティを表すが、例えば、これがトランジスタの数を減らす場合に奇数パリティでも実現できるということである。
【0052】
従って、スキャンフロップ52、54、56間のスキャンパスは、データ処理装置に対するパリティパス、および究極的には出力パリティ値を供給するためにスキャンシフトモードでない場合に再利用される。それは、スキャンフロップ52、54、56で保持された値の状態保全性をモニタするために観察される。設計フローの点からの本手法の利点は特に、パリティパスの提供はEDAツールに対して透過的であるという点である。というのも、状態保持回路は、一度設置されると、パリティ値生成動作を提供しないスキャンフロップと完全に同じ方法で取り付けられるからである。
【0053】
図4は、図3Aに示す状態保持回路52、54、56の一つの内部構成をより詳細に模式的に示す。ここで、状態保持回路70は、状態値を保持するよう構成された内部レジスタ72を備える。システムの通常動作中、データ入力ポートDを介して受信されたデータは、出力Qの出力バッファ74を介して出力される前に、レジスタ72にクロックされる。あるいは、スキャンモードにおいて、状態値がスキャン入力SIを介して入力され、スキャン出力SOを介して出力される前にレジスタ72へクロックされる。スキャンイネーブル信号SEは、従って、入力マルチプレクサ76と出力マルチプレクサ78へ向かう。スキャンイネーブル信号SEがアサーションされない場合、組合せ機能回路80は、スキャンアウトポートSOの出力であるパリティ値Pを提供する。組合せ機能回路80は、レジスタ72で保持された状態値とスキャンインポートSIの値によって、パリティ値Pを生成する。上記のように、組合せ機能回路80は、XORゲート、XNORゲート、または、レジスタ72で保存された状態値またはスキャン入力値が反転した場合にPが反転するようパリティ値Pを提供する他のいかなる論理機能でもあり得る。
【0054】
状態保持回路70は更に、電圧制御82を備える。電圧制御82は、状態保持回路の他の部品へ供給され、スキャンイネーブル信号SEの現在値によって、および保持信号RETにもよって、状態保持回路が、低電力モードに入っているデータ処理回路の残りに対応するデータ保持モードに入るべき時を指示するよう提供される電圧供給を決定する。従って、RET信号がアサーションされた場合、電圧制御82により出力バッファ74は電力を抑えるためにスイッチを切られる。というのも、低電力モードでは、データ処理回路はデータパスを使わないからである。対照的に、状態値レジスタ72、入力マルチプレクサ76、出力マルチプレクサ78、および組合せ機能回路80はアクティブなままである。これは、上記パリティ値生成を実行可能にするためである。留意することとしてであるが、それにもかかわらずこれらの部品は、データ処理回路の全体的な低電力モードをサポートするために本モードにおいて比較的低い供給電圧で備えられ、比較的遅い伝達時間ではあるがパリティ値生成と伝達が維持されようにほぼ閾値の供給電圧を提供する。
【0055】
逆に、電圧制御82は、データ処理回路が低電力モードではなく(RET信号のディアサーションによって指示される)、スキャンイネーブル信号SEがアサーションされない(すなわち、通常データ処理モード)の場合、組合せ機能回路80へ供給される電圧を抑えるように構成される。というのも、状態保持回路を通過して変化したデータ値は、通常は限られた価値しか無く単に追加電力を消費するだけの組合せ機能回路の各インスタンスで生成されたパリティ値を連続的に変更することになるからである。従って、電圧制御80は、本状況における組合せ機能回路への電圧供給を抑えることができ、または、完全にスイッチを切ることもできる。電圧制御82は、パリティ値Pが使われない(マルチプレクサ78によって代わりに値Qが選択される)ために状態保持回路がスキャンモードにある(すなわち、SEがアサーションされた)場合、組合せ機能回路80を非活動化するよう構成してもよい。しかしながら、スキャンモードは、通常は、そのような集積回路の製造テスト中に使われるので、電力消費が概してあまり重要ではないと考えられる場合、この機能は不要と考え外してもよい。
【0056】
ここまでは、本パリティパスについて、状態保持回路のリニア構成の点からのみ記載してきた。認識すべきこととしてであるが、一般的に様々な並列スキャンチェーンがデータ処理回路のブロックで実現され、スキャンチェーンの長さは、実装されて通常は共通の単一スキャンイネーブル制御を共有するチェーンに接続されたスキャンインとスキャンアウトの数に対してトレードオフされる。EDAツールは複数チェーンの長さの平衡化(balancing)をサポートし、スキャンチェーンにおける全フロップに対しスキャンクロックが完全に制御可能であるような実施における各セルへのクロックゲーティングも提供する。従って、パリティパスは、データ処理回路において各スキャンチェーンに対し実現でき、複数の出力パリティ値は、いかなるチェーンにおけるいかなる状態値の第1変化でも、データ処理回路のいかなる場所での第1状態保全性エラーにフラグを付けるために使われるよう、モニタされる。
【0057】
図5は、より複雑な実施形態を模式的に示し、複数のパリティパスが提供されるだけでなく、それらパリティパスの第1セットがデータ処理回路全体で水平に走り、一方、それらパリティパスの第2セットがデータ処理回路全体で垂直に走る。図示したパリティパスの、直交する水平および垂直の構成は図示を簡略化するためだけであるということに留意されたく、機能的に様々なパスの間で直交する必要は無いということが理解されるだろう。実際、一般的な集積回路レイアウトにおいて、スキャンパスによって取られる特定のルートは自動化ツールによって決められ、従って、そのような厳密に線形で垂直で並列なパスを伴うことはないだろう。図5に示すデータ処理回路100において、状態保持回路は、各出力パリティ値を供給するため三つのグループに配置される。状態保持回路102、104、106は「水平の」出力パリティ値HSCP[1]に寄与し、状態保持回路108、110、112はHSCP[2]に寄与し、状態保持回路114、116、118はHSCP[3]に寄与する。この間、状態保持回路102、108、114は「垂直の」出力パリティ値VSCP[1]に寄与し、状態保持回路104、110、116はVSCP[2]に寄与し、状態保持回路106、112、118はVSCP[3]に寄与する。
【0058】
従って、図5と図1を比較すると、図1の線形例において提供されたパリティパスは、図5において「水平の」パリティパスの一つを提供し、一方、図5における「垂直の」パリティパスは、更にXORゲート138、140、142、144、146、148の追加によって提供される。従って、XORゲート138、140は出力パリティ値VSCP[1]を生成する第1「垂直」パリティパスを形成し、XORゲート142、144は出力パリティ値VSCP[2]を生成する第2垂直パリティパスを形成し、XORゲート146、148は出力パリティ値VSCP[3]を提供する第3垂直パリティパスを形成する。
【0059】
EDAフローの点からすると、垂直のパリティチェーンは、スキャン接続EDAツールフローにおいて、また、すでに決まっているスキャンチェーン順序の上位にこれら追加XORゲートを繋ぎ入れることにおける追加ステップとして、簡単に追加できる。
【0060】
このような方法でデータ処理回路に水平および垂直のパリティパスの両方を提供することは、従って、第1の故障している状態保持回路(スキャンフロップ)により水平のパリティパス出力値と垂直のパリティパス出力値の両方の状態がトグルされ、正確にどの状態保持回路が故障したかの識別を可能にする、という意味である。特定の故障している状態保持回路を識別する能力は、診断において有用である。なぜなら、第1の故障している状態保持回路がシステマティックな部品(例えば、電圧が積極的に抑えられるような状態を無くしている、最も不適正なスレーブラッチトランジスタ構造)を持つかどうか、または、第1の故障している状態保持回路の位置がよりランダムに配置されている(例えば、基板雑音注入やクロストークのため)かどうかを判断することができるからである。更に、第1の故障が発生した特定の状態保持回路を識別する能力は、その故障値を正せるかもしれない。例えば、図5の状態保持回路110が最初に故障した場合、これはHSCP[2]とVSCP[2]をトグルさせるだろう。パリティ出力値を観測するために構成されたモニタリング回路は、その後、状態保持回路110によって保持された値を正すことができる。一例において、これは、読み出される第2スキャンチェーン(SI[2]からSO[2])からの状態値のセットによって起こすことができ、状態保持回路110に対応する値は、状態値のセットが本スキャンチェーンにスキャンバックされる前に、反転される(または、そうでなければ、もとの値に正される)。モニタリング回路は、第1の故障が発生するとすぐに修復動作を誘引するよう構成されてもよいのだが、モニタリング回路は更に、二つ以上の状態保持回路が故障した(複数のHSCPおよびVSCP値がトグルされたことによる)場合を検出するよう構成されてもよい。その場合、故障した状態保持回路は識別されず、それに応じて、より厳重なシステムリセットが実行されうる。それは例えば、すべての状態保持回路をリセットするか、または、状態値の所定の「リブート(reboot)」セットをロードするかである。
【0061】
図6は、水平および垂直のパリティパスの両方を持つデータ処理システムの別の構成を模式的に示す。図6の回路の構成は、パリティ情報を垂直のパリティパスに提供しているXORゲート(すなわち、XORゲート138、140、142、144、146)が、水平のパリティパス上にあるXORゲートの出力から入力を受けることを除いて、図5に示すものと同じである。本構成は、例えば、専用のスキャンアウトポートが状態保持回路(例えば、スキャンフロップ)に備えられたインスタンスで実現されてもよい。これらのスキャンアウトポートは、水平にチェーン接続されると共に、垂直にカスケード接続されることが可能だからである。本質的に、本構成は、出力パリティ値HSCP[1から3]およびMVSCP[1から3]のモニタリングにより第1の故障している状態保持回路の指示を提供できるという点で、同じ機能を提供する。しかしながら、このような方法による水平および垂直のパリティパス両方の相互接続は、MVSCPパリティ出力値でリップル効果もたらすということに留意されたい。例えば、状態保持回路102によって保持された状態値が変化したら、これによりHSCP[1]とMVSCP[1]がトグルされるだけでなく、これらの各々がHSCP[1]パリティチェーンの更なる下流から入力を受けるので、出力値MVSCP[2]とMVSCP[3]もトグルされる。
【0062】
図7は、水平および垂直のパリティパス両方に接続されるよう構成された、一実施形態の状態保持回路の構成を模式的に示す。ここで、状態保持回路は、図5と図6に関して上記した「垂直のパリティパス」へのそれぞれの状態保持回路の入力および出力接続に対応する、垂直のパリティ入力VPIと垂直のパリティ出力VPOを備える。状態保持回路250は、「垂直の」パリティ出力がVPO=SE?Q:Q^VPIと定義され、スキャンアウトポートがSE?Q:Q^SIとして構成されるそのVerilog動作モデル構成の点から例示される。
【0063】
ここまでに例示された例におけるパリティ情報生成要素の構成は、XORゲートの使用に限定されていた。しかしながら、本技術はXORゲートの使用に限定されず、同等の機能が他の論理ブロック(例えばXNORゲート等)を使って実現できることを理解されるだろう。
【0064】
図8は、本システム300が、上記のような組合せ論理に結合され概してスキャンチェーンに配置された状態保持回路302、304、306を備える一般例を模式的に示す。状態保持回路302、304、306(スキャンフロップ)のスキャンインポートSIは、コードを生成するよう構成されたコード生成ブロック308に繋げられる。そこでは、これらの入力が接続された次のノードの状態を反映している入力が、mビットのメッセージとして扱われる。例えば、これらは、SIピンがコード生成ブロックを提供するよう繋がれたチェーンにおけるmスキャンフロップから来る。生成されたコードは、データ処理回路がデータ保持モードから出た場合に、何らかのエラーが発生したかどうかを判断するために使うことができる。
【0065】
例えば、コード生成ブロックの選択される定格によって、コード生成ブロック308は、データ保持モードに入るとすぐにnビットのコードを生成するよう構成され、それは後で、データ処理回路がデータ保持モードから(機能的データ処理モードに入るための準備中の)スタンバイモードへ遷移した場合にエラーをチェックするために使われる。本方法の動作手順は次の通りである。
1) 電力管理ユニット(PMU)312がデータ処理回路をスタンバイモードに入れる(クロックを止める)。
2) PMU312がコード生成制御ブロック310に(コード生成制御有限状態機械310を介して)コードを生成、および格納するよう指示する。
3) コードを生成するとすぐに、コード生成制御ブロック310がPMU312にコードが生成されたことを指示し、その後、PMUはデータ処理回路に電圧の低減を誘引できる。
4) その後、データ保持モードを出るとすぐに、PMU312は電圧をデータ処理回路にもたらすが、まだスタンバイ(クロックが止められた)モードのままである。
5) コード生成ブロック308は、その後、エラー(ビットフリップ)のチェックのために格納されたnビットコードに対して受信したmビットを検証する。
6) いかなるエラーも、その後、更なる動作のためにPMU312へフラグが立てられる。エラーがなければ、PMU312は、データ処理回路を機能的データ処理モードに戻せるように処理を続ける。
【0066】
上記のようなスキームは、エネルギー消費、およびコードの計算とエラーチェック中の待ち時間を最適化するよう分散された方法で設計することができる。
【0067】
すでに上記したように、本技術の実施は、EDA処理の一部を形成してもよい。図9は、EDA処理等を実施する場合の一実施形態によって取られる可能性のある一連のステップを模式的に示す。本フローはステップ400で始まり、様々な他のEDAステップが本技術の実施の前に実行されるであろうことを示す。その後、ステップ405で、EDAツールは開発途中の回路全体にスキャンフロップを配置し、各スキャンフロップは関連づけられたXORゲートと共に配置される。ステップ410で、通常のスキャンチェーン生成ステップを実行し、EDAツールがスキャンフロップを様々なスキャンチェーンに取り付け、それら複数のチェーンの長さと数は、システム要件に従って平衡化される。その後、ステップ415で、EDAツールはXORゲートを1以上のパリティパスを形成するよう回路全体に取り付け、スキャンフロップに結合される。ステップ420で、タイミング最適化処理が始まり、スキャンチェーン内の保持時間が受け入れ可能かどうか判断し、特に、スキャンアウトポート(SO)をスキャンインポート(SI)に接続するスキャンチェーン部分で供給された値が、所定のタイミング基準を満たすかどうかを判断する(ステップ425)。それら保持時間が受け入れられない場合、その後、固定バッファがそのスキャンチェーン部分に加えられ(ステップ430)、保持時間が受け入れ可能であれば、チェックのためにループバックする。ひとたび保持時間が要求された基準を満たしたら、その後、EDA処理は更なる標準ステップを続けることができる(ステップ435)。
【0068】
図10は、一実施形態において、データ処理回路が存在可能、および推移可能な様々なモードを示す状態図である。本実施形態において、状態保持回路は、スキャンイネーブル信号SEとデータ保持信号RETによって構成されている。SE=0およびRET=0の場合、データ処理回路はデータ処理モード500にある。データ処理モードにおいて、状態保持回路はデータ処理回路の通常のデータ処理動作に関与しており、特に、それらのD入力で受信されたデータ値がそれらのQ出力を介して伝達される。状態保持回路は、SE=1およびRET=0の場合、スキャンモード505で構成されてもよい。本スキャンモードにおいて、状態保持回路は、それら状態保持回路が一部を形成するスキャンチェーンを介して、状態値をシステムへスキャンインおよびアウトするよう構成される。特に、各SI入力で受信された状態値は、それらのSO出力を介して伝達される。
【0069】
特に、本技術は他のモード、つまり、状態保持モード510によって表され、それは各状態保持回路で構成することができる。状態保持モードにおいて、SE=0およびRET=1である。本モードにおいて、各状態保持回路は、状態値をデータ処理回路の特定のノードで一定に保持するよう構成され、一方、各状態保持回路のSO出力は、保持された状態値の値および本スキャンチェーンの直前の状態保持回路からSI入力で受信した値を反映するパリティ値を供給するよう構成される。パリティ変更が検出された場合(すなわち、それぞれのスキャンチェーン内の状態値が変化した場合)、システムは回復モード520に移行するよう構成され、そこでは、変化した状態値を修復するために、または、状態保持回路を備えるデータ処理回路のサブセットか全システムのリセットを行うために、(上記の)回復動作を行うことができる。従って、変化した(すなわち、無効になった)状態値は、可能であればリセットされ、または、前のシステムチェックポイントスナップショットに(全スキャンチェーンと一緒に)格納される(例えば、複数のパリティ変更が修正できない状況にある場合)。
【0070】
図11は、上記の自動化設計処理を実現するよう使われるタイプの汎用コンピューティングデバイス600を模式的に示す。汎用コンピューティングデバイス600は、中央処理装置602、ランダムアクセスメモリ604、リードオンリーメモリ606を備え、それらはバス622を介して共に接続される。それは更に、ネットワークインターフェースカード608、ハードディスクドライブ410、ディスプレイドライバ612とモニタ614、およびキーボード618とマウス620を持つユーザ入力/出力回路616も備え、共通のバス622を介してすべて接続される。動作において、上記技術がEDA処理の一部を形成する場合のように、中央処理装置602は、例えば、ランダムアクセスメモリ604および/またはリードオンリーメモリ606に格納されたコンピュータプログラム命令を実行する。プログラム命令は更に、ハードディスクドライブ410から探索、または、ネットワークインターフェースカード608を介して動的にダウンロードされ得る。その処理が実行された結果は、接続されたディスプレイドライバ612とモニタ614を介してユーザに表示される。汎用コンピューティングデバイス600の動作を制御するためのユーザ入力は、キーボード618またはマウス620から接続されたユーザ入力出力回路616を介して受信される。コンピュータプログラムは、様々な異なるコンピュータ言語で書かれ得ることは理解されよう。コンピュータプログラムは記録メディア上にローカルに格納されてもよく、汎用コンピューティングデバイス600に動的にダウンロードされてもよい。適切なコンピュータプログラムの制御下で動作する場合、汎用コンピューティングデバイス600は上記技術を実行でき、上記EDA技術を行う装置を形成すると考えられる。汎用コンピューティングデバイス600の構造は相当に変えることができ、図11はただ一つの例である。
【0071】
従って、総まとめとして、本技術に関し、データ処理装置はデータ処理動作を行うよう構成されたデータ処理回路を備える。複数の状態保持回路がデータ処理回路の一部を形成し、これらの回路は、低電力モードに入ったデータ処理回路のそれぞれのノードにてそれぞれの状態値を保持するよう構成される。スキャンパスが複数の状態保持回路を直列に接続し、それにより状態値はそれぞれのノードでスキャンインおよびスキャンアウトされてもよい。複数のパリティ情報生成要素がスキャンパスに結合され、状態保持回路によってそれぞれのノードに保持されたそれぞれの状態値を示すパリティ情報を生成するよう構成される。複数のパリティ情報生成要素がパリティパスを提供するよう配置され、それにより、パリティパスの出力で生成された出力パリティ値が、それぞれの状態値の一つが変化した場合に反転し、状態保持回路によって保持された状態値の保全性の外部指示を提供する。
【0072】
本発明の特定の実施形態が本明細書に記載されたが、本発明はそれに限定されず、多くの変形と追加が本発明の範囲内で可能であることは明らかであろう。例えば、従属請求項の特徴と独立請求項の特徴との様々な組み合わせが本発明の範囲内で可能である。


【特許請求の範囲】
【請求項1】
データ処理動作を行うよう構成されたデータ処理回路と、
前記データ処理回路の一部を形成し、前記データ処理回路が低電力モードに入った場合に前記データ処理回路のそれぞれのノードのそれぞれの状態値を保持するよう構成された複数の状態保持回路と、
前記状態値が前記それぞれのノードにスキャンインおよびアウトされてもよいよう、前記複数の状態保持回路を直列に接続するスキャンパスと、
前記スキャンパスに結合され、前記状態保持回路によって前記それぞれのノードにて保持された前記それぞれの状態値を示すパリティ情報を生成するよう構成された複数のパリティ情報生成要素とを備え、
前記それぞれの状態値の一つが変化した場合に前記パリティパスの出力にて生成された出力パリティ値が反転するよう、前記複数のパリティ情報生成要素が前記パリティパスを提供するよう配置された、
データ処理装置。
【請求項2】
前記状態保持回路が複数のスキャンフロップを備える、
請求項1に記載の装置。
【請求項3】
前記複数のパリティ情報生成要素が前記複数の状態保持回路のそれぞれのスキャンパス出力にて前記スキャンパスに結合された、
請求項1または2に記載の装置。
【請求項4】
前記スキャンパスが前記状態保持回路のそれぞれのスキャンパス出力にて前記スキャンパス上に保持時間固定バッファを備え、前記複数のパリティ情報生成要素が前記保持時間固定バッファのそれぞれの出力に結合された、
請求項1から3のいずれか1項に記載の装置。
【請求項5】
前記パリティ情報生成要素が次のパリティ情報生成要素の一入力を形成する第1パリティ情報生成要素の出力によって前記パリティパスを提供するよう配置された、
請求項1から4のいずれか1項に記載の装置。
【請求項6】
前記パリティ情報生成要素が2入力デバイスである、
請求項1から5のいずれか1項に記載の装置。
【請求項7】
前記パリティ情報生成要素が2より多い数の入力を持つ、
請求項1から6のいずれか1項に記載の装置。
【請求項8】
前記パリティ情報生成要素がXORゲートである、
請求項1から7のいずれか1項に記載の装置。
【請求項9】
前記パリティ情報生成要素が複数の出力を持つ、
請求項1から8のいずれか1項に記載の装置。
【請求項10】
前記複数の状態保持回路のそれぞれがスキャンイン入力と専用のスキャンアウト出力を備え、第1状態保持回路の前記専用のスキャンアウト出力は前記スキャンパスを提供するため次の状態保持回路の前記スキャンイン入力に接続され、
前記スキャンパスが前記パリティパスを提供する、
請求項1から9のいずれか1項に記載の装置。
【請求項11】
前記複数のパリティ情報生成要素は前記複数の状態保持回路内に提供される、
請求項10に記載の装置。
【請求項12】
前記複数の状態保持回路は、前記状態値が前記それぞれのノードにスキャンインおよびアウトされてもよいスキャンモードに入るためスキャンイネーブル信号のアサーションに反応するよう構成され、
前記スキャンイネーブル信号がアサーションされない場合に、前記パリティ情報生成要素は、前記専用のスキャンアウト出力での値を前記スキャンイン入力の値と前記状態保持回路によって前記それぞれのノードにて保持された前記それぞれの状態値に依存するよう、前記複数のパリティ情報生成要素は前記スキャンイネーブル信号に反応するよう構成された、
請求項11に記載の装置。
【請求項13】
前記データ処理回路に結合された少なくとも一つの別の状態保持回路を備え、
前記複数のパリティ情報生成要素は前記少なくとも一つの別の状態保持回路によって保持された少なくとも一つの別の状態値を示すパリティ情報を生成しない、
請求項1から12のいずれか1項に記載の装置。
【請求項14】
前記低電力モードが停止モードである、
請求項1から13のいずれか1項に記載の装置。
【請求項15】
前記低電力モードが減電圧モードである、
請求項1から14のいずれか1項に記載の装置。
【請求項16】
前記複数の状態保持回路は保持電圧供給を備え、前記保持電圧供給は前記データ処理回路が前記低電力モードに入った場合に前記データ処理回路の前記それぞれのノードにて前記それぞれの状態値を保持するため前記複数の状態保持回路に十分な電圧を提供するよう構成され、
前記複数のパリティ情報生成要素は前記保持電圧供給によって電力を供給される、
請求項1から15のいずれか1項に記載の装置。
【請求項17】
前記複数のパリティ情報生成要素は、前記状態値が前記スキャンパスを介し前記それぞれのノードにスキャンインおよびアウトされた場合に抑えられるよう構成されたパリティ要素電圧供給を備える、
請求項1から16のいずれか1項に記載の装置。
【請求項18】
前記複数のパリティ情報生成要素は、前記データ処理回路が前記低電力モードに入っていない場合にパワーゲートがオフされるよう構成される、
請求項1から17のいずれか1項に記載の装置。
【請求項19】
前記複数の状態保持回路の少なくとも一つは状態保持モードに入るため保持信号に反応するよう構成され、前記複数のパリティ情報生成要素の少なくとも一つは前記保持信号に反応して動作することが可能なように構成される、
請求項1から18のいずれか1項に記載の装置。
【請求項20】
複数のスキャンパスおよび複数のパリティパスを備える、
請求項1から19のいずれか1項に記載の装置。
【請求項21】
第1セットのパリティパスと第2セットのパリティパスを備え、前記第1セットのパリティパスのパリティパスは第1セットの状態値に左右される第1出力パリティ値を提供し、前記第2セットのパリティパスの2以上のパリティパスの出力値は前記第1セットの状態値に左右される、
請求項20に記載の装置。
【請求項22】
前記第1セットのパリティパスと前記第2セットのパリティパスは、前記それぞれの状態値が反転した反転ノードが前記第1セットのパリティパスと前記第2セットのパリティパスの出力値が反転したことを参照することによって識別され得るよう配置された、
請求項21に記載の装置。
【請求項23】
前記第2セットのパリティパスのパリティ情報生成要素の入力が前記複数のスキャンパスに結合された、
請求項21または22に記載の装置。
【請求項24】
前記第2セットのパリティパスのパリティ情報生成要素の入力が前記第1セットのパリティパスに結合された、
請求項21または22に記載の装置。
【請求項25】
前記出力パリティ値をモニタし、前記出力パリティ値が反転した場合に回復手続きを始めるよう構成されたモニタ回路を更に備える、
請求項1から24のいずれか1項に記載の装置。
【請求項26】
前記回復手続きは、前記状態保持回路によって前記それぞれのノードにて保持された前記それぞれの状態値をリロードすることを備える、
請求項25に記載の装置。
【請求項27】
前記出力パリティ値が反転した場合に回復手続きを始めるため前記出力パリティ値をモニタするよう構成されたモニタ回路を更に備え、前記回復手続きは前記状態保持回路によって前記それぞれのノードにて保持された前記それぞれの状態値をリロードすることを備え、前記回復手続きは前記反転ノードに対応するスキャンパスから一組みの状態値をスキャンアウトし、反転した前記それぞれの状態値を再反転し、前記反転したノードに対応する前記スキャンパスに前記状態値のセットをスキャンインすることを備える、
請求項22から26のいずれかに記載の装置。
【請求項28】
前記回復手続きは前に格納した状態値のセットから前記それぞれの状態値をリロードすることを備える、
請求項26に記載の装置。
【請求項29】
前記回復手続きはリセット手続きを備える、
請求項25に記載の装置。
【請求項30】
データ処理動作を行うデータ処理手段と、
前記データ処理手段の一部を形成し、前記データ処理手段が低電力モードに入った場合に、前記データ処理手段のそれぞれのノードにてそれぞれの状態値を保持する複数の状態保持手段と、
前記複数の状態保持手段を直列に接続し、前記状態値を前記それぞれのノードにスキャンインおよびアウトするスキャンパス手段と、
前記スキャンパスに結合され、前記状態保持手段によって前記それぞれのノードにて保持された前記それぞれの状態値を示すパリティ情報を生成する複数のパリティ情報生成手段とを備え、
前記それぞれの状態値の一つが変化した場合に前記パリティパスの出力にて生成された出力パリティ値が反転するよう、前記複数のパリティ情報生成手段が前記パリティパスを提供するよう配置された、
データ処理装置。
【請求項31】
データ処理動作を行うよう構成されたデータ処理回路を提供するステップと、
前記データ処理回路の一部を形成し、前記データ処理回路が低電力モードに入った場合に前記データ処理回路のそれぞれのノードにてそれぞれの状態値を保持するよう構成された複数の状態保持回路を提供するステップと、
前記状態値が前記それぞれのノードにスキャンインまたはアウトされてもよいよう、前記複数の状態保持回路をスキャンパスとして直列に接続するステップと、
前記状態保持回路によって、前記それぞれのノードにて保持された前記それぞれの状態値を示すパリティ情報を生成するよう構成された複数のパリティ情報生成要素を、前記スキャンパスに結合するステップとを備え、
前記それぞれの状態値が変化した場合に、前記パリティパスの出力で形成された出力パリティ値が反転するよう、前記複数のパリティ情報生成要素はパリティパスを提供するよう配置された、
データ処理装置を構成する方法。
【請求項32】
前記方法は電子設計自動化処理の一部を形成する、
請求項31に記載の方法。
【請求項33】
前記方法は、複数の状態保持回路を提供する前記ステップの後および前記複数の状態保持回路をスキャンパスとして直列に接続する前記ステップの前に、
前記複数のパリティ情報生成要素を提供するステップを更に備え、各パリティ情報生成要素は隣接する状態保持回路と関連づけられる、
請求項31または32に記載の方法。
【請求項34】
前記方法は前記スキャンパス上でタイミング最適化処理を行うステップを更に備え、
前記タイミング最適化処理は、
第1状態保持回路と第2状態保持回路との間のスキャンパス部分に対する信号伝達時間が所定の基準を満たすかどうか判定するステップと、
前記信号伝達時間が前記所定の基準を満たさない場合に、前記スキャンパス部分に少なくとも一つの保持時間固定バッファを提供するステップとを備える、
請求項31から33のいずれかに1項記載の方法。
【請求項35】
非一時的方式でコンピュータプログラムを格納するコンピュータプログラム製品であって、コンピューティングデバイス上で実行された場合に、前記コンピューティングデバイスに請求項1にしたがった装置を実現させる、コンピュータプログラム製品。
【請求項36】
非一時的方式でコンピュータプログラムを格納するコンピュータプログラム製品であって、コンピューティングデバイス上で実行された場合に、前記コンピューティングデバイスに請求項31に記載の方法を実行させる、コンピュータプログラム製品。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2012−248194(P2012−248194A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−119696(P2012−119696)
【出願日】平成24年5月25日(2012.5.25)
【出願人】(594154428)エイアールエム リミテッド (85)
【Fターム(参考)】