(57)【要約】【課題】  本発明は、データ処理動作を行うよう構成されたデータ処理回路を備えたデータ処理装置を提供する。【解決手段】  複数の状態保持回路がデータ処理回路の一部を形成し、これらの回路は、低電力モードに入ったデータ処理回路のそれぞれのノードにてそれぞれの状態値を保持するよう構成される。１以上のスキャンパスは、状態値がそれぞれのノードにスキャンインまたはアウトされてもよいよう、複数の状態保持回路を直列に接続する。複数のパリティ情報生成要素はスキャンパスに結合され、状態保持回路によってそれらそれぞれのノードにて保持されたそれぞれの状態値を示すパリティ情報を生成するよう構成される。複数のパリティ情報生成要素は、それぞれの状態値の一つが変化した場合にパリティパスの出力にて生成された出力パリティ値を反転するよう、１以上のパリティパスを提供し、状態保持回路によって保持された状態値の保全性の外部指示を提供するよう配置される。【選択図】  図１
2012248194.tif 000002
【特許請求の範囲】
【請求項１】
データ処理動作を行うよう構成されたデータ処理回路と、
前記データ処理回路の一部を形成し、前記データ処理回路が低電力モードに入った場合に前記データ処理回路のそれぞれのノードのそれぞれの状態値を保持するよう構成された複数の状態保持回路と、
前記状態値が前記それぞれのノードにスキャンインおよびアウトされてもよいよう、前記複数の状態保持回路を直列に接続するスキャンパスと、
前記スキャンパスに結合され、前記状態保持回路によって前記それぞれのノードにて保持された前記それぞれの状態値を示すパリティ情報を生成するよう構成された複数のパリティ情報生成要素とを備え、
前記それぞれの状態値の一つが変化した場合に前記パリティパスの出力にて生成された出力パリティ値が反転するよう、前記複数のパリティ情報生成要素が前記パリティパスを提供するよう配置された、
データ処理装置。
【請求項２】
前記状態保持回路が複数のスキャンフロップを備える、
請求項１に記載の装置。
【請求項３】
前記複数のパリティ情報生成要素が前記複数の状態保持回路のそれぞれのスキャンパス出力にて前記スキャンパスに結合された、
請求項１または２に記載の装置。
【請求項４】
前記スキャンパスが前記状態保持回路のそれぞれのスキャンパス出力にて前記スキャンパス上に保持時間固定バッファを備え、前記複数のパリティ情報生成要素が前記保持時間固定バッファのそれぞれの出力に結合された、
請求項１から３のいずれか１項に記載の装置。
【請求項５】
前記パリティ情報生成要素が次のパリティ情報生成要素の一入力を形成する第１パリティ情報生成要素の出力によって前記パリティパスを提供するよう配置された、
請求項１から４のいずれか１項に記載の装置。
【請求項６】
前記パリティ情報生成要素が２入力デバイスである、
請求項１から５のいずれか１項に記載の装置。
【請求項７】
前記パリティ情報生成要素が２より多い数の入力を持つ、
請求項１から６のいずれか１項に記載の装置。
【請求項８】
前記パリティ情報生成要素がＸＯＲゲートである、
請求項１から７のいずれか１項に記載の装置。
【請求項９】
前記パリティ情報生成要素が複数の出力を持つ、
請求項１から８のいずれか１項に記載の装置。
【請求項１０】
前記複数の状態保持回路のそれぞれがスキャンイン入力と専用のスキャンアウト出力を備え、第１状態保持回路の前記専用のスキャンアウト出力は前記スキャンパスを提供するため次の状態保持回路の前記スキャンイン入力に接続され、
前記スキャンパスが前記パリティパスを提供する、
請求項１から９のいずれか１項に記載の装置。
【請求項１１】
前記複数のパリティ情報生成要素は前記複数の状態保持回路内に提供される、
請求項１０に記載の装置。
【請求項１２】
前記複数の状態保持回路は、前記状態値が前記それぞれのノードにスキャンインおよびアウトされてもよいスキャンモードに入るためスキャンイネーブル信号のアサーションに反応するよう構成され、
前記スキャンイネーブル信号がアサーションされない場合に、前記パリティ情報生成要素は、前記専用のスキャンアウト出力での値を前記スキャンイン入力の値と前記状態保持回路によって前記それぞれのノードにて保持された前記それぞれの状態値に依存するよう、前記複数のパリティ情報生成要素は前記スキャンイネーブル信号に反応するよう構成された、
請求項１１に記載の装置。
【請求項１３】
前記データ処理回路に結合された少なくとも一つの別の状態保持回路を備え、
前記複数のパリティ情報生成要素は前記少なくとも一つの別の状態保持回路によって保持された少なくとも一つの別の状態値を示すパリティ情報を生成しない、
請求項１から１２のいずれか１項に記載の装置。
【請求項１４】
前記低電力モードが停止モードである、
請求項１から１３のいずれか１項に記載の装置。
【請求項１５】
前記低電力モードが減電圧モードである、
請求項１から１４のいずれか１項に記載の装置。
【請求項１６】
前記複数の状態保持回路は保持電圧供給を備え、前記保持電圧供給は前記データ処理回路が前記低電力モードに入った場合に前記データ処理回路の前記それぞれのノードにて前記それぞれの状態値を保持するため前記複数の状態保持回路に十分な電圧を提供するよう構成され、
前記複数のパリティ情報生成要素は前記保持電圧供給によって電力を供給される、
請求項１から１５のいずれか１項に記載の装置。
【請求項１７】
前記複数のパリティ情報生成要素は、前記状態値が前記スキャンパスを介し前記それぞれのノードにスキャンインおよびアウトされた場合に抑えられるよう構成されたパリティ要素電圧供給を備える、
請求項１から１６のいずれか１項に記載の装置。
【請求項１８】
前記複数のパリティ情報生成要素は、前記データ処理回路が前記低電力モードに入っていない場合にパワーゲートがオフされるよう構成される、
請求項１から１７のいずれか１項に記載の装置。
【請求項１９】
前記複数の状態保持回路の少なくとも一つは状態保持モードに入るため保持信号に反応するよう構成され、前記複数のパリティ情報生成要素の少なくとも一つは前記保持信号に反応して動作することが可能なように構成される、
請求項１から１８のいずれか１項に記載の装置。
【請求項２０】
複数のスキャンパスおよび複数のパリティパスを備える、
請求項１から１９のいずれか１項に記載の装置。
【請求項２１】
第１セットのパリティパスと第２セットのパリティパスを備え、前記第１セットのパリティパスのパリティパスは第１セットの状態値に左右される第１出力パリティ値を提供し、前記第２セットのパリティパスの２以上のパリティパスの出力値は前記第１セットの状態値に左右される、
請求項２０に記載の装置。
【請求項２２】
前記第１セットのパリティパスと前記第２セットのパリティパスは、前記それぞれの状態値が反転した反転ノードが前記第１セットのパリティパスと前記第２セットのパリティパスの出力値が反転したことを参照することによって識別され得るよう配置された、
請求項２１に記載の装置。
【請求項２３】
前記第２セットのパリティパスのパリティ情報生成要素の入力が前記複数のスキャンパスに結合された、
請求項２１または２２に記載の装置。
【請求項２４】
前記第２セットのパリティパスのパリティ情報生成要素の入力が前記第１セットのパリティパスに結合された、
請求項２１または２２に記載の装置。
【請求項２５】
前記出力パリティ値をモニタし、前記出力パリティ値が反転した場合に回復手続きを始めるよう構成されたモニタ回路を更に備える、
請求項１から２４のいずれか１項に記載の装置。
【請求項２６】
前記回復手続きは、前記状態保持回路によって前記それぞれのノードにて保持された前記それぞれの状態値をリロードすることを備える、
請求項２５に記載の装置。
【請求項２７】
前記出力パリティ値が反転した場合に回復手続きを始めるため前記出力パリティ値をモニタするよう構成されたモニタ回路を更に備え、前記回復手続きは前記状態保持回路によって前記それぞれのノードにて保持された前記それぞれの状態値をリロードすることを備え、前記回復手続きは前記反転ノードに対応するスキャンパスから一組みの状態値をスキャンアウトし、反転した前記それぞれの状態値を再反転し、前記反転したノードに対応する前記スキャンパスに前記状態値のセットをスキャンインすることを備える、
請求項２２から２６のいずれかに記載の装置。
【請求項２８】
前記回復手続きは前に格納した状態値のセットから前記それぞれの状態値をリロードすることを備える、
請求項２６に記載の装置。
【請求項２９】
前記回復手続きはリセット手続きを備える、
請求項２５に記載の装置。
【請求項３０】
データ処理動作を行うデータ処理手段と、
前記データ処理手段の一部を形成し、前記データ処理手段が低電力モードに入った場合に、前記データ処理手段のそれぞれのノードにてそれぞれの状態値を保持する複数の状態保持手段と、
前記複数の状態保持手段を直列に接続し、前記状態値を前記それぞれのノードにスキャンインおよびアウトするスキャンパス手段と、
前記スキャンパスに結合され、前記状態保持手段によって前記それぞれのノードにて保持された前記それぞれの状態値を示すパリティ情報を生成する複数のパリティ情報生成手段とを備え、
前記それぞれの状態値の一つが変化した場合に前記パリティパスの出力にて生成された出力パリティ値が反転するよう、前記複数のパリティ情報生成手段が前記パリティパスを提供するよう配置された、
データ処理装置。
【請求項３１】
データ処理動作を行うよう構成されたデータ処理回路を提供するステップと、
前記データ処理回路の一部を形成し、前記データ処理回路が低電力モードに入った場合に前記データ処理回路のそれぞれのノードにてそれぞれの状態値を保持するよう構成された複数の状態保持回路を提供するステップと、
前記状態値が前記それぞれのノードにスキャンインまたはアウトされてもよいよう、前記複数の状態保持回路をスキャンパスとして直列に接続するステップと、
前記状態保持回路によって、前記それぞれのノードにて保持された前記それぞれの状態値を示すパリティ情報を生成するよう構成された複数のパリティ情報生成要素を、前記スキャンパスに結合するステップとを備え、
前記それぞれの状態値が変化した場合に、前記パリティパスの出力で形成された出力パリティ値が反転するよう、前記複数のパリティ情報生成要素はパリティパスを提供するよう配置された、
データ処理装置を構成する方法。
【請求項３２】
前記方法は電子設計自動化処理の一部を形成する、
請求項３１に記載の方法。
【請求項３３】
前記方法は、複数の状態保持回路を提供する前記ステップの後および前記複数の状態保持回路をスキャンパスとして直列に接続する前記ステップの前に、
前記複数のパリティ情報生成要素を提供するステップを更に備え、各パリティ情報生成要素は隣接する状態保持回路と関連づけられる、
請求項３１または３２に記載の方法。
【請求項３４】
前記方法は前記スキャンパス上でタイミング最適化処理を行うステップを更に備え、
前記タイミング最適化処理は、
第１状態保持回路と第２状態保持回路との間のスキャンパス部分に対する信号伝達時間が所定の基準を満たすかどうか判定するステップと、
前記信号伝達時間が前記所定の基準を満たさない場合に、前記スキャンパス部分に少なくとも一つの保持時間固定バッファを提供するステップとを備える、
請求項３１から３３のいずれかに１項記載の方法。
【請求項３５】
非一時的方式でコンピュータプログラムを格納するコンピュータプログラム製品であって、コンピューティングデバイス上で実行された場合に、前記コンピューティングデバイスに請求項１にしたがった装置を実現させる、コンピュータプログラム製品。
【請求項３６】
非一時的方式でコンピュータプログラムを格納するコンピュータプログラム製品であって、コンピューティングデバイス上で実行された場合に、前記コンピューティングデバイスに請求項３１に記載の方法を実行させる、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムの分野に関する。より詳しくは、本発明は、データ処理システムが低電力モードに入った場合、それぞれの状態値を保持するよう構成された多くの状態保持回路を持つデータ処理システムに関し、これら状態値がスキャンインおよびスキャンアウトされてもよいように、スキャンパスがこれら状態保持回路を接続する。
【背景技術】
【０００２】
既知の通り、データ処理システムが低電力モードに入った場合、データ処理システムのそれぞれのノードでそれぞれの状態値を保持するよう構成された多くの状態保持回路を備えるデータ処理システムが提供されている。これにより、データ処理システムが後に低電力モードを出て、その低電力モードに入った時の構成からデータ処理動作を続けることが可能になる。例えば、これらの状態保持回路はいわゆる「バルーンラッチ（ｂａｌｌｏｏｎ  ｌａｔｃｈｅｓ）」によって提供されてもよく、それら独自の供給電圧を備えることができ、低電力モード中にデータ処理システムの電力消費を低くするのに望ましい性質（例えば、低い漏れ電流）を持つよう構成されることができる。
【０００３】
さらに既知の通り、そのような状態保持回路はスキャンパスが形成されるよう直列に接続されることができる。そのようなスキャンパス（または「スキャンチェーン（ｓｃａｎ  ｃｈａｉｎ）」）は、テストパターン状態が状態保持回路にロードされたりアンロードされたりすることを可能にするシフトレジスタ動作が、テストパターン自動生成（ＡＴＰＧ）製造テストベクトルを状態保持回路に接続されたデータ処理装置の論理回路のテストをするために使われることを可能にすることができる。
【０００４】
集積回路を形成するためのプロセス・ジオメトリ（ｐｒｏｃｅｓｓ  ｇｅｏｍｏｔｒｉｅｓ）がますます小さくなるにつれ、これら回路（特に本文では、状態保持回路）はソフトエラーに対してますます脆弱になり、それには、電離放射線、熱的変動、デバイスの経年劣化等の多くの原因があるだろう。もちろん、それらエラーが状態保持回路内で発生した場合、その後、状態保持回路によって保持されたそれぞれの状態値を信頼することはできず、つまり、データ処理回路は低電力モードを出た時に望み通りのデータ処理動作を続けることを保証できなくなる。そのようなソフトエラーへの耐性を与える方法の一つは、そのようなソフトエラーへの耐性を増やすために，最小の動作電圧を超えて状態保持回路に供給される電圧に，安全のための余裕を取ることを確実にすることである。しかしながら、そのようなデータ処理システムの電力消費をより低く抑えたいのであれば、この安全のための余裕内で消費される電力が加わることは望ましくない。状態保持回路の保全性をサポートする別の方法は、各状態保持回路に関して電圧感受性の「カナリア回路」の設置をすることであり、そこでは、意図的に歪ませた影の（ｓｈａｄｏｗ）状態保持構造が、実際の状態保持回路の前に故障するよう構成される。しかしながら、そのようなカナリア回路によって回路領域と電力が更に加えられることは望ましくない。
【０００５】
従って、そのような状態保持回路の状態保全性をサポートするために改良された技術を提供することが望ましいであろう。
【０００６】
背景情報として、以下のドキュメントに先行技術の関連した形態が記載されている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】“Designing for State Retention”, D. Flynn and A. Gibbons, December 12, 2008, 以下に記載http://www.soccentral.com/results.asp?EntryID=27642;
【非特許文献２】“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;
【非特許文献３】“Shaken or Stirred by Low Power Design Challenges?”, ARM DevCon 2007, 以下に記載: http://www.synopsys.com/Solutions/EndSolutions/EclypseSolutions/CapsuleModule/arm-snps_devcon_panel07.pdf;
【非特許文献４】“Case Study of a Low Power MTCMOS based ARM926 SoC”, Sachin Idgunji, Design, Analysis and Test Challenges, Lecture 2.3, International Test Conference 2007;
【非特許文献５】“Low Power Design”, Richard Goering, SCD source, September 2008, Issue 1, 以下に記載:  http://www.leepr.com/PDF/SCDsource_STR_LowPower.pdf;
【非特許文献６】“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;
【非特許文献７】“Low Power Robust Computing Tutorial”, EECS, University of Michigan 2005, 以下に記載http://www.eecs.umich.edu/~taustin/papers/MICRO2005-tutorial.pdf;
【非特許文献８】“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;
【非特許文献９】“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;
【特許文献】
【０００８】
【特許文献１】米国特許１２／３８５６７４号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
第１の形態から理解されるように、本発明は、データ処理動作を行うよう構成されたデータ処理回路、データ処理回路の一部を形成し、データ処理回路が低電力モードに入った場合にデータ処理回路のそれぞれのノードにそれぞれの状態値が保持されるよう構成された複数の状態保持回路、複数の状態保持回路を、状態値がそれぞれのノードにスキャンインおよびスキャンアウトされてもよいように直列に接続するスキャンパス、およびスキャンパスに結合され、状態保持回路によってそれぞれのノードに保持されたそれぞれの状態値を示すパリティ情報を生成するよう構成された複数のパリティ情報生成要素を備えるデータ処理装置を提供し、複数のパリティ情報生成要素は、それぞれの状態値の一つが変化した場合にパリティパスの出力で生成された出力パリティ値が反転するようパリティパスを備えるよう配置される。
【００１０】
データ処理回路は、動作モードでデータ処理動作を行うよう構成される。複数の状態保持回路がデータ処理回路の一部を形成し、状態保持回路は、データ処理回路が低電力モードに入った場合、特定の点（ノード）でそれぞれの状態値を保持するよう構成される。これにより、データ処理回路は（低電力モードに入った場合）データ処理動作を一時的に停止することができるが、低電力モードを出た場合、それらデータ処理動作を迅速に続けることができる。スキャンパスは、それぞれの状態値が保持されたノードに状態値がスキャンインおよびスキャンアウトされることができるよう、状態保持回路を接続する。
【００１１】
本技術は、スキャンパスに結合され、状態保持回路によって保持された状態値を示すパリティ情報を生成するよう配置されたパリティ情報生成要素を提供する。更に、これらパリティ情報生成要素は、出力パリティ値を読み出すことができる出力で、パリティパスを形成するよう配置される。詳細には、パリティ情報生成要素は、状態保持回路によって保持されたそれぞれの状態値の一つが変化した場合、出力パリティ値が反転するよう、パリティパスを形成するよう構成される。状態値の一つにおける「変化」には、その値の完全な反転（すなわち、論理“１”を論理”０”に反転する、またはその逆）を含んでもよく、それぞれのパリティ情報生成要素によって生成されたパリティ情報が反転するのに十分であるにもかかわらず、不定状態に入った状態値の一つを含んでもよい、ということに留意されたい。
【００１２】
従って、本技術は、出力パリティ値を更に提供するために、データ処理システムのスキャンパス構成を有利に利用する。出力パリティ値の構成に組み込まれた状態値の一つが変化した場合、出力パリティ値は反転するので、出力パリティ値は、スキャンパス沿いの状態保持回路によって保持された状態値の保全性を監視するために、モニタされ得る。更に、第１障害がこれら状態保持回路の一つ内で発生するとすぐに、本エラーに対応する動作を取ることができる。
【００１３】
状態保持回路は様々な形状をとってもよい。例えば、これらはデータ処理システムが低電力モードに入った場合にそれらの値を維持するためにクロックゲートされたレジスタデバイスと同じくらい単純であってもよく、状態保持回路内に状態値が保持された低電力モードに対応する動作モードを持つよう明確に構成された状態保持デバイスの何か他の形状であってもよい。一実施形態において、状態保持回路は複数のスキャンフロップを備える。スキャンフロップはスキャンパスへの連結に適応する状態保持回路を表し、そのため、本技術の用途に対する特に適切な基礎を表す。更に、現在のＥＤＡ（電子設計自動化）ツールはスキャン準備シンセシス（ｓｃａｎ−ｒｅａｄｙ  ｓｙｎｔｈｅｓｉｓ）に対する標準サポートを備えることが一般的であり、スキャンフロップはスキャン接続コスト機能を可能にする標準Ｄ型レジスタ上にマップされる。
【００１４】
複数のパリティ情報生成要素は様々な方法でスキャンパスに結合されてもよい。一実施形態において、複数のパリティ情報生成要素は、状態保持回路のスキャンパス出力のそれぞれにて、スキャンパスに結合される。状態保持回路のスキャンパス出力は、状態保持回路によって提供された唯一の出力（すなわち、結合されたデータ／スキャン出力）であってもよく、データ出力とは別の専用のスキャン出力であってもよい。
【００１５】
スキャンパス上を伝わる信号の保持時間がシステム要件を満たすことを確実にするために、保持固定バッファがスキャンパス上に追加されてもよい。そのような一実施形態において、スキャンパスは保持時間固定バッファを状態保持回路のそれぞれのスキャンパス出力にて、スキャンパス上に備え、複数のパリティ情報生成要素は保持時間固定バッファのそれぞれの出力に結合される。このような方法で保持時間固定バッファの後にパリティ情報生成要素を結合することは、パリティ情報生成要素によって課された余分な負荷が、状態保持回路のスキャンパス出力上で直接よりむしろ保持時間固定バッファによってサポートされることを意味し、状態保持回路とスキャンパスの構成により、状態保持回路間のクリティカルパスタイミング（すなわち、スキャンパスよりむしろ、データパス）に影響を与えるだろう。
【００１６】
パリティパスを提供するようにパリティ情報生成要素を配置するには、多くの方法がある。一実施形態において、パリティ情報生成要素は、次のパリティ情報生成要素の一入力を形成する第１パリティ情報生成要素の出力によって、パリティパスを提供するよう配置される。このパリティ情報生成要素の連結は、パリティパスを形成するために単純な、モジュール式の方法を提供し、ＥＤＡツールがこれらパリティ情報生成要素を共に繋ぐための単純な方法を提供する。
【００１７】
パリティ情報生成要素は様々な形状をとる。一実施形態において、パリティ情報生成要素は２入力デバイスである。別の実施形態において、パリティ情報生成要素は２より多くの入力を持つ。保持されたそれぞれの状態値を示す適切なパリティ情報を生成するパリティ情報生成要素には様々な構成があるが、一実施形態において、パリティ情報生成要素はＸＯＲゲートである。もちろん、同様の機能を持つ別のバリアント（ｖａｒｉａｎｔｓ，変種、例えば、ＸＮＯＲゲート）でも可能である。更に、パリティ情報生成要素は単一の出力を持ってもよく、または、ある実施形態において、複数の出力を持ってもよい。
【００１８】
上記のように、状態保持回路は別々のスキャン出力とデータ出力を持ってもよく（同じことが入力側についても当てはまる）、一実施形態において、複数の状態保持回路はそれぞれ、スキャンイン入力と専用のスキャンアウト出力を備え、第１状態保持回路の専用のスキャンアウト出力は、スキャンパスを提供するよう次の状態保持回路のスキャンイン入力に接続され、スキャンパスはパリティパスを提供する。従って、状態保持回路を互いに繋ぐ既存のスキャンパスは、パリティパスを提供するよう再利用される。現在の集積回路におけるスペースに制限のある環境では、このようなスキャンパスの二重使用は特に有利である。
【００１９】
そのような状態保持回路に対し、パリティ情報生成要素は、別々の要素として提供されてもよく、または、複数の状態保持回路内に提供されてもよい。状態保持回路内にパリティ情報生成要素を提供することは、例えば、ＥＤＡシンセシスの点で有利となる。というのも、スキャン準備シンセシスに対してすでに使われているＥＤＡツールは、直接再利用されるので、本技術の状態保持回路を単純に代用してもよいからである。
【００２０】
状態保持回路はスキャンイネーブル信号によって制御されてもよく、一実施形態において、複数の状態保持回路は状態値がそれぞれのノードにスキャンインおよびアウトされるスキャンモードに入るスキャンイネーブル信号のアサーションに反応するよう構成され、複数のパリティ情報生成要素はスキャンイネーブル信号に反応するよう構成され、スキャンイネーブル信号がアサーションされない場合、パリティ情報生成要素は専用のスキャンアウト出力の値がスキャンイン入力の値に依存し、それぞれの状態値は状態保持回路によってそれぞれのノードにおいて保持される。従って、そのような構成において、共有パスがスキャンパスとパリティパスを提供する場合、スキャンイネーブル信号がアサーションされた場合、スキャンパスはそれぞれのノードに状態値をスキャンインおよびアウトするよう従来の形式で使われ、一方、スキャンイネーブル信号がアサーションされなかった場合、パリティ情報生成要素はスキャンアウト出力の値をスキャンインの値に依存させることができ、その保持回路によって保持される。これにより、スキャンパスを各状態保持回路に対するパリティパスとして再利用することは、その状態保持回路への入力とその状態保持回路内に保持された値の両方による値を運ぶ。従って、複数の状態保持回路がスキャンパスを形成するように結合された場合、スキャンパスから読み出される出力パリティ値は（スキャンイネーブル信号がアサーションされない場合）、そのスキャンパス沿いのいかなる状態値の変更も指示できる。
【００２１】
認識すべきこととしてであるが、本装置の各状態保持回路はパリティパスの一部として接続される必要はなく、従って、一実施形態において、本装置は、データ処理回路に結合された少なくとも一つの別の状態保持回路を備え、複数のパリティ情報生成要素は、少なくとも一つの別の状態保持回路に保持された少なくとも一つの別の状態値を示すパリティ情報を生成しない。認識されるであろうこととしてであるが、パリティ情報生成に関係しない状態保持回路は、それらが保持する状態の有効性を確実にするため、本明細書に記載された技術によってモニタされ得ない。従って、そのような実施形態において、データ処理回路が低電力データ保持モードを出る場合、それら状態保持回路は再イニシャライズされるよう配置されてもよい。
【００２２】
データ処理回路は様々な方法で低電力モードに入るよう構成されることができ、例えば、一実施形態において、低電力モードは停止モードである。これは、例えば、データ処理回路に提供されるクロック信号をサスペンドするよう構成してもよいということである。別の実施形態において、低電力モードは減電圧モードである。これは、例えば、電力消費を抑えるためにデータ処理回路に印加された電圧を減らすよう構成してもよいが、状態値はまだ状態保持回路によって保持され得るように電圧を維持するということである。
【００２３】
一実施形態において、複数の状態保持回路は保持電圧供給を備え、保持電圧供給はデータ処理回路が低電力モードに入った場合、データ処理回路のそれぞれのノードにてそれぞれの状態値を保持するために、複数の状態保持回路に十分な電圧を供給するよう構成され、複数のパリティ情報生成要素は保持電圧供給によって電力を供給される。従って、それぞれの状態値が低電力モード中に保持されることを可能にする同じ電圧供給からのパリティ情報生成要素への電力供給によって、パリティ情報の生成は、データ処理回路が低電力モードに入った場合にサポートされる。節電の点から留意されたいこととしてであるが、複数のパリティ情報生成要素に供給される電圧供給は、それ自体、「不活発な保持」モードに陥る可能性があり、パリティ情報生成要素の動作もまた閾値近くになる。このことは結果として伝達時間をより長くするかもしれないが、パリティ出力は、それにもかかわらず生成される可能性があるので、保持された状態値の保全性はモニタされうる。
【００２４】
一実施形態において、複数のパリティ情報生成要素は、状態値がスキャンパスを介してそれぞれのノードにスキャンインおよびアウトされた場合、抑えられるよう構成されたパリティ要素電圧供給を備える。出力パリティ値をモニタすることは一般的に要求されず、一方、状態値はスキャンインまたはアウトされる。というのも、パリティ値はこの手続き中に安定状態にないからである。従って、スキャンモードにある場合、パリティ要素電圧供給を減らす、またはスイッチを切ることを選んでもよい。
【００２５】
一実施形態において、複数のパリティ情報生成要素は、データ処理回路が低電力モードでない場合、パワーゲートがオフされるよう構成される。データ処理回路が低電力モードでない場合、しかし通常のデータ処理動作を行う場合、出力パリティ値も安定状態ではなく、電力を抑えるために、データ処理回路の通常データ処理動作中にパリティ情報生成要素のパワーゲートをオフにすることが選択されてもよい。一実施形態において、複数の状態保持回路の少なくとも一つは状態保持モードに入るために保持信号に反応するよう構成され、複数のパリティ情報生成要素の少なくとも一つは保持信号に反応して動作することが可能なように構成される。従って、状態保持回路を状態保持ノードに入れさせるために使われる保持信号は、パリティ情報生成要素にも可能なように使われることができる。というのも、それらがアクティブになるよう要求される一方で、複数の状態保持回路が保持ノードにあるからである。
【００２６】
このように、単一のスキャンパスとパリティパスの点から概念的に記載したが、本技術はそのような例に限定されず、実施形態において、本装置は複数のスキャンパスと複数のパリティパスを備える。
【００２７】
そのような一実施形態において、本装置はパリティパスの第１セットとパリティパスの第２セットを備える。第１セットのパリティパスは第１セットの状態値に左右される第１出力パリティ値を提供し、パリティパスの第２セットの２以上のパリティパスの出力は、第１セットの状態値に左右される。これの一つの例示的な実施は、第１セットのパリティパスが実質的に、第２セットのパリティパスに直交する（例えば、第１セットが水平に走り、一方で第２セットが垂直に走る）ことであるが、二つのセットがもう一方に対していかなる特定の幾何学的方向に執着する必要はなく、装置全体でいかなる特定の方向に従う必要もない。それにもかかわらず、第１セットを装置全体のある「方向」に関するパリティ情報を供給するように配置することはシステム診断ポイントの観点から有益である。一方、第２セットは装置全体の第２「方向」に関し、パリティ情報を提供し、そのようにして第１および第２セットの出力パリティ値が結合された場合に互いに相補的な情報を提供することができる。各パリティパスがその長さ沿いのどこかで状態値が変化したとだけ指示できれば、そのパリティパスと交差する第２セットのパリティパスを配置することで、状態値が変化した場所を識別する助けができる。実際、状態保持回路が互いに完全に相補的な２セットのパリティパスに結合されると、２セットの出力パリティ値は、変化した状態値に関係する状態保持回路を識別可能な座標システムを提供する。従って、一実施形態において、第１セットのパリティパスと第２セットのパリティパスは、それぞれの状態値が反転した反転ノードが、第１セットのパリティパスと第２セットのパリティパスの出力値が反転したことを参照することで識別され得るよう、配置される。
【００２８】
そのような一実施形態において、第２セットのパリティパスにおけるパリティ情報生成要素の入力は、複数のスキャンパスに結合される。従って、第２セットのパリティパスは複数のスキャンパスによって提供される相補的な情報を提供できる。
【００２９】
そのような別の実施形態において、第２セットのパリティパスにおけるパリティ情報生成要素の入力は、第１セットのパリティパスに結合される。これは、パリティパスを提供するように状態保持回路を接続する点から有利であるかもしれない。というのも、第１セットと第２セットのパリティパス両方に対するカスケード接続を配置できるからである。
【００３０】
本装置は出力パリティ値の反転のための様々な方法で反応するよう構成されてもよい。一実施形態において、本装置は更に、出力パリティ値をモニタし、出力パリティ値が反転した場合に回復手続きを始めるよう構成されたモニタ回路を備える。
【００３１】
回復手続きは様々な形を取れるが、一実施形態において、回復手続きは、状態保持回路によってそれぞれのノードに保持されたそれぞれの状態値をリロード（ｒｅｌｏａｄ）することを含む。
【００３２】
一実施形態において、本装置は更に、出力パリティ値が反転した場合に回復手続きを始めるために出力パリティ値をモニタするよう構成されたモニタ回路を備える。回復手続きは、状態保持回路によってそれぞれのノードに保持されたそれぞれの状態値をリロードすることを含み、回復手続きは、反転ノードに対応するスキャンパスから一組みの状態値をスキャンアウトして、反転したそれぞれの状態値を再反転し、反転ノードに対応するスキャンパスに状態値のセットをスキャンインすることを含む。従って、反転した状態値が２以上のパリティパスに参照されることにより識別された場合、この情報は対応する状態保持回路で保存された状態値を修復するために使われ得る。
【００３３】
あるいは、状態値のセットは本装置の他の場所へ格納されてもよく、回復手続きは以前に格納した状態値のセットからそれぞれの状態値をリロードすることを含む。
【００３４】
本システムが、例えば単一の状態値を反転するような単純な回復を行えない（例えば、いくつかの状態値が反転したため）と識別し、一実施形態において、回復手続きがリセット手続きを含む場合もありうる。このリセット手続きは、例えば、本装置のデータ処理回路の完全、または部分リセットを含んでもよい。
【００３５】
第２の形態から理解されるように、本発明は、データ処理動作を行うためのデータ処理手段と、データ処理手段の一部を形成し、データ処理手段が低電力モードに入った場合、データ処理手段のそれぞれのノードにてそれぞれの状態値を保持する複数の状態保持手段と、複数の状態保持手段を直列に接続し、状態値をそれぞれのノードからスキャンインおよびスキャンアウトするためのスキャンパス手段と、スキャンパスに結合され、状態保持手段によってそれぞれのノードにて保持されたそれぞれの状態値を示すパリティ情報を生成するための複数のパリティ情報生成手段とを備え、パリティパスの出力で生成された出力パリティ値が、それぞれの状態値の一つが変化した場合に反転するよう、複数のパリティ情報生成手段はパリティパスを提供するよう配置される、データ処理装置を提供する。
【００３６】
第３の形態から理解されるように、本発明は、データ処理動作を行うよう構成されたデータ処理回路を提供し、データ処理回路の一部を形成し、データ処理回路が低電力モードに入った場合にデータ処理回路のそれぞれのノードにてそれぞれの状態値を保持するよう構成された複数の状態保持回路を提供し、状態値がそれぞれのノードにスキャンインおよびアウトされてもよいように複数の状態保持回路をスキャンパスとして直列に接続し、状態保持回路によってそれぞれのノードにて保持されたそれぞれの状態値を示すパリティ情報を生成するよう構成された複数のパリティ情報生成要素をスキャンパスに結合することを備え、それぞれの状態値の一つが変化した場合にパリティパスの出力で生成された出力パリティ値が反転するよう、複数のパリティ情報生成要素がパリティパスを提供するように配置される、データ処理装置を構成する方法を提供する。
【００３７】
本方法は様々な状況で実行されることが可能だが、特に自動化ツールでの実施に適しており、一実施形態において、本方法は電子設計自動化処理の一部を形成する。
【００３８】
一実施形態において、本方法は更に、複数の状態保持回路が提供された後および複数の状態保持回路をスキャンパスとして直列に接続する前に、隣接する状態保持回路と関連づけられた複数のパリティ情報生成要素を提供するステップを備える。従って、情報保持回路は最初に提供されてもよいが、それらがスキャンパスにつなげられる前に、隣接する状態保持回路に関連づけられた各パリティ情報生成要素が提供される。従って、複数の状態保持回路を提供する既知のステップは再利用でき、要求されたパリティ情報生成要素を各状態保持回路と関連づける追加ステップを簡単に追加することができる。例えば、これは、各スキャンフロップに隣接するＸＯＲゲートを配置することを含んでもよい。
【００３９】
一実施形態において、本方法は更に、スキャンパス上でタイミング最適化処理を行うステップを含み、タイミング最適化処理は、第１状態保持回路と第２保持回路間のスキャンパス部分に対する信号伝達時間が所定の基準を満たすかどうか判断し、信号伝達時間が所定の基準を満たさないなら、スキャンパス部分に少なくとも一つの保持時間固定バッファを提供する。例えば、スキャンパス部分はその信号を一つの状態保持回路から次へあまりに速く伝達していることを見つけたら、１以上の保持時間固定バッファがそのスキャンパス部分に導入されてもよく、それは、スキャンパスの保持時間要求を満たすことを確実にするためである。
【００４０】
第４の形態から理解されるように、本発明は、非一時的方式（ｎｏｎ−ｔｒａｎｓｉｅｎｔ  ｆａｓｈｉｏｎ）でコンピュータプログラムを格納するコンピュータプログラム商品を提供し、コンピューティングデバイスでそのコンピュータプログラムが実行された場合に、コンピューティングデバイスに第１の形態に関する装置の表示を生成させる。
【００４１】
第５の形態から理解されるように、本発明は、非一時的方式でコンピュータプログラムを格納するコンピュータプログラム商品を提供し、コンピューティングデバイスでそのコンピュータプログラムが実行された場合に、コンピューティングデバイスに第３の形態に関する方法を実行させる。
【図面の簡単な説明】
【００４２】
本発明は、添付図面に例示されるように、その実施形態に関して更に記載され、例としてのみ記載される。
【００４３】
【図１】図１は、一実施形態における、別々のスキャンパスとパリティパスを持つ一組みの状態保持回路を模式的に示す。
【図２】図２は、別の実施形態における、別々のスキャンパスとパリティパスを持つ一組みの情報保持回路を模式的に示す。
【図３Ａ】図３Ａは、一実施形態における、パリティパスがスキャンパスを共有する一組みの状態保持回路を模式的に示す。
【図３Ｂ】図３Ｂは、図３Ａに示す状態保持回路の入力と出力の論理的構造を示す。
【図４】図４は、図３Ａの状態保持回路の一つの構成をより詳細に模式的に示す。
【図５】図５は、一実施形態における、２セットのパリティパスを持つデータ処理装置を模式的に示す。
【図６】図６は、別の実施形態における、２セットのパリティパスを持つデータ処理装置を模式的に示す。
【図７】図７は、図６に示すもののような状態保持回路の論理的構成を模式的に示す。
【図８】図８は、一実施形態におけるデータ処理装置の一般構成を模式的に示す。
【図９】図９は、一実施形態における電子設計自動化処理中に実行される可能性のある一連のステップを模式的に示す。
【図１０】図１０は、一実施形態における様々なモードと、データ処理装置に対するそれらモード間の遷移を模式的に示す。
【図１１】図１１は、実施形態のいくつかを実行する可能性のある汎用コンピューティングデバイスを模式的に示す。
【発明を実施するための形態】
【００４４】
図１は、一実施形態におけるデータ処理装置を模式的に示す。データ処理装置１０は、標準スキャンフロップにより本例にて実施される、三つの状態保持回路１２、１４、１６を備える。スキャンフロップは、スキャンモードにおいて（スキャンイネーブル信号ＳＥがアサーションされた場合）、テストパターン自動生成（ＡＴＰＧ）産出テストベクトルがスキャンフロップ間で機能的組合せ論理回路をテストするために使われるようにテストパターン状態がロードおよびアンロードされることが可能となるよう、スキャンチェーンを形成する組合せ論理回路１８、２０に接続される。このように、スキャンパスは、１つのスキャンフロップの出力Ｑを次のスキャンフロップのスキャン入力ＳＩに接続するスキャンパス部分によって形成される。留意されたいこととしてであるが、組合せ論理回路１８、２０は、通常は、多くの入力および出力を備えるが、図示を簡略化するため、および図示した単一のスキャンチェーンに焦点を合わせるために、組合せ論理回路の各インスタンスへの単一の入力と出力のみを示す。
【００４５】
スキャンフロップ１２、１４、１６は状態値をスキャンインおよびスキャンアウトすることを可能にするだけでなく、データ処理回路が低電力モードに入った場合、それらが配置されたデータ処理回路のそれぞれのノードに状態値を保持することも可能にする。すなわち、本文においては、「ノード」とは、各スキャンフロップが組合せ論理回路に対して配置されるポイントである。以下により詳細に記載するように、作動中のデータ値がＤ入力を介して各状態保持回路に入り、Ｑ出力で出力された場合のデータ処理回路の通常のクロック動作中、または状態値がスキャンイン入力ＳＩを介して状態保持回路に読み込まれ、出力Ｑを介してスキャンアウトされた場合のスキャンモード中に、各状態保持回路は出力Ｑで供給可能な状態値を内部に保持することができる。従って、データ処理回路が低電力モードを出た場合、これらの値はそれぞれの入力で組合せ論理回路に渡されるよう、状態保持回路は特定の状態値を低電力モードにおいてデータ処理回路の特定のノードに保持することを可能にする。更に、スキャンパス上で結合された状態保持回路は、これら状態値がシフトレジスタ動作を介してスキャンインされることを可能にする。状態保持回路間のスキャンパス部分は更に、本データ処理装置の設計処理中に必要と思われる保持時間固定バッファ２２、２４を備える。これは、スキャンパスに沿って送られる値が、その値が続く状態保持回路のＳＩ入力に正しくスキャンインされるために十分に長い期間有効であることを確実にするためである。
【００４６】
データ処理装置１０は更に、本例においてＸＯＲゲートによって実現されるパリティ情報生成要素２６、２８、３０を備える。各ＸＯＲゲートへの入力は、各状態保持回路の出力Ｑおよび直前のＸＯＲゲートの出力に結合される。シーケンス２６における第１ＸＯＲゲートは、直前のＸＯＲゲート出力の代わりに第１状態保持回路１２のＳＩ入力に結合される。従って、ＸＯＲゲート２６、２８、３０のシーケンスは、スキャンチェーンにおいてすべてのレジスタ状態のパリティを反映する出力パリティ値ＳＣＰを最終的に生成するパリティパスを形成するために結合された「偶数」パリティ生成器を表す。留意されたいこととしてであるが、スキャンチェーンの各状態保持回路はパリティパスに接続される必要はなく、出力パリティ値ＳＣＰはスキャンチェーンのサブセットのみのパリティを表すことができる。
【００４７】
そのような集積回路に対する自動化設計処理の点から、ひとたびスキャンチェーン順序が確立されてしまえば、これらＸＯＲゲートをネットリストに簡単に繋ぐことができるという点で、パリティ情報生成要素の追加は複雑ではない。しかしながら、留意されたいこととしてであるが、設計フローにおいて回路レイアウトを後で壊すことの無いように、互いに隣接するスキャンフロップとＸＯＲゲートを最初に配置することは有効だと考えられる。たとえいくつかのＸＯＲゲートをパリティパスに接続するつもりが無いとしても、それでも、この考えは設計フロー崩壊を避けるのに有益であるだろう。ＸＯＲゲートを各スキャンフロップに対して配置した場合、その後、これら部品の据え付けは、物理的な認識テストスキャンチェーン繋ぎに起因するスキャンチェーン順序に容易に従うことができる。
【００４８】
従って、パリティパスは、回路の残りに与える配線の影響を最小にする方法で接続された状態保持回路におけるすべてのレジスタ状態のパリティを反映する出力パリティ値ＳＣＰを提供する。パリティパスは、電力消費を最小にするために、比較的遅い伝達パスになり得る（クリティカルパスにはならない）。従って、ＳＣＰ値がモニタされ得るのは、データ処理システムが、状態保持回路がそれぞれの状態値を保持する低電力モードにある場合であり、また、チェーン内の第１状態保持回路がその状態値の保持に失敗してＳＣＰ値がリアルタイムに本信号をトグルする（ｔｏｇｇｌｅ）（反転する）場合である。ＳＣＰ値がトグルする場合に様々な応答が可能になるが、以下に詳細に記載するように、図１に示したリニアスキャンとパリティチェーンの点から、チェーン内の状態保持回路の一つがそれぞれの状態値の保持に失敗したということだけをトグルＳＣＰ値は示すとすれば、（既知ではないが）、本スキャンチェーンに沿って保持された値のセットをそのような場合のために他の場所に格納された所定のセットによって置き換えるために通常の応答はスキャンチェーン機構を使うだろう。
【００４９】
図２は、図１に示したデータ処理装置１０と同じ部品を備えるデータ処理装置４０を模式的に示す。これら部品は図１に示したものと同じ方法で動作し、本明細書では更なる記載はしない。図２におけるデータ処理装置４０と図１におけるデータ処理装置１０との間の違いは、パリティ情報生成要素（ＸＯＲゲート）２６、２８が、保持時間固定バッファ２２、２４の後で状態保持回路（スキャンフロップ）間のスキャンチェーン部分に結合されることである。これは、図１に示す構成全体にとって有益であると考えられる。というのも、パリティパスを形成するパリティ情報生成要素からの余分な負荷が状態保持回路の機能的出力に直接結合されておらず、それにより、クリティカルパス（組合せ論理を介してＱからＤ）タイミングのネガティブな影響を避けられるからである。
【００５０】
図３Ａは、一実施形態におけるデータ処理装置５０を模式的に示す。ここで、各状態保持回路５２、５４、５６は、データ出力Ｑと明示のスキャン出力ＳＯの両方を持つ。これらスキャン出力は、通常、唯一の負荷が次の状態保持回路および接続線のキャパシタンスへの単一ＳＩ入力である場合、保持時間を改善するために弱いバッファリングを備える。図３Ａにおけるデータ処理装置５０は、組合せ論理回路５８、６０も備える。
【００５１】
状態保持回路５２、５４、５６は、本例ではスキャンフロップによって実現されるが、それらが保持する状態値（Ｑ）は、スキャンイネーブル信号ＳＥがアサーションされた（すなわち、スキャンシフトモード）の場合にＳＯ出力から出力され、ＳＥがディアサーションされた場合にＳＩとＱの論理ＸＯＲから出力されるように構成される。図３Ａに示すスキャンフロップの論理的構造は図３Ｂの表に示され、図３Ｂの右側欄に等価なＶｅｒｉｌｏｇ動作モデルも示す。留意されたいことは、図３Ｂに示す論理的構造は偶数パリティを表すが、例えば、これがトランジスタの数を減らす場合に奇数パリティでも実現できるということである。
【００５２】
従って、スキャンフロップ５２、５４、５６間のスキャンパスは、データ処理装置に対するパリティパス、および究極的には出力パリティ値を供給するためにスキャンシフトモードでない場合に再利用される。それは、スキャンフロップ５２、５４、５６で保持された値の状態保全性をモニタするために観察される。設計フローの点からの本手法の利点は特に、パリティパスの提供はＥＤＡツールに対して透過的であるという点である。というのも、状態保持回路は、一度設置されると、パリティ値生成動作を提供しないスキャンフロップと完全に同じ方法で取り付けられるからである。
【００５３】
図４は、図３Ａに示す状態保持回路５２、５４、５６の一つの内部構成をより詳細に模式的に示す。ここで、状態保持回路７０は、状態値を保持するよう構成された内部レジスタ７２を備える。システムの通常動作中、データ入力ポートＤを介して受信されたデータは、出力Ｑの出力バッファ７４を介して出力される前に、レジスタ７２にクロックされる。あるいは、スキャンモードにおいて、状態値がスキャン入力ＳＩを介して入力され、スキャン出力ＳＯを介して出力される前にレジスタ７２へクロックされる。スキャンイネーブル信号ＳＥは、従って、入力マルチプレクサ７６と出力マルチプレクサ７８へ向かう。スキャンイネーブル信号ＳＥがアサーションされない場合、組合せ機能回路８０は、スキャンアウトポートＳＯの出力であるパリティ値Ｐを提供する。組合せ機能回路８０は、レジスタ７２で保持された状態値とスキャンインポートＳＩの値によって、パリティ値Ｐを生成する。上記のように、組合せ機能回路８０は、ＸＯＲゲート、ＸＮＯＲゲート、または、レジスタ７２で保存された状態値またはスキャン入力値が反転した場合にＰが反転するようパリティ値Ｐを提供する他のいかなる論理機能でもあり得る。
【００５４】
状態保持回路７０は更に、電圧制御８２を備える。電圧制御８２は、状態保持回路の他の部品へ供給され、スキャンイネーブル信号ＳＥの現在値によって、および保持信号ＲＥＴにもよって、状態保持回路が、低電力モードに入っているデータ処理回路の残りに対応するデータ保持モードに入るべき時を指示するよう提供される電圧供給を決定する。従って、ＲＥＴ信号がアサーションされた場合、電圧制御８２により出力バッファ７４は電力を抑えるためにスイッチを切られる。というのも、低電力モードでは、データ処理回路はデータパスを使わないからである。対照的に、状態値レジスタ７２、入力マルチプレクサ７６、出力マルチプレクサ７８、および組合せ機能回路８０はアクティブなままである。これは、上記パリティ値生成を実行可能にするためである。留意することとしてであるが、それにもかかわらずこれらの部品は、データ処理回路の全体的な低電力モードをサポートするために本モードにおいて比較的低い供給電圧で備えられ、比較的遅い伝達時間ではあるがパリティ値生成と伝達が維持されようにほぼ閾値の供給電圧を提供する。
【００５５】
逆に、電圧制御８２は、データ処理回路が低電力モードではなく（ＲＥＴ信号のディアサーションによって指示される）、スキャンイネーブル信号ＳＥがアサーションされない（すなわち、通常データ処理モード）の場合、組合せ機能回路８０へ供給される電圧を抑えるように構成される。というのも、状態保持回路を通過して変化したデータ値は、通常は限られた価値しか無く単に追加電力を消費するだけの組合せ機能回路の各インスタンスで生成されたパリティ値を連続的に変更することになるからである。従って、電圧制御８０は、本状況における組合せ機能回路への電圧供給を抑えることができ、または、完全にスイッチを切ることもできる。電圧制御８２は、パリティ値Ｐが使われない（マルチプレクサ７８によって代わりに値Ｑが選択される）ために状態保持回路がスキャンモードにある（すなわち、ＳＥがアサーションされた）場合、組合せ機能回路８０を非活動化するよう構成してもよい。しかしながら、スキャンモードは、通常は、そのような集積回路の製造テスト中に使われるので、電力消費が概してあまり重要ではないと考えられる場合、この機能は不要と考え外してもよい。
【００５６】
ここまでは、本パリティパスについて、状態保持回路のリニア構成の点からのみ記載してきた。認識すべきこととしてであるが、一般的に様々な並列スキャンチェーンがデータ処理回路のブロックで実現され、スキャンチェーンの長さは、実装されて通常は共通の単一スキャンイネーブル制御を共有するチェーンに接続されたスキャンインとスキャンアウトの数に対してトレードオフされる。ＥＤＡツールは複数チェーンの長さの平衡化（ｂａｌａｎｃｉｎｇ）をサポートし、スキャンチェーンにおける全フロップに対しスキャンクロックが完全に制御可能であるような実施における各セルへのクロックゲーティングも提供する。従って、パリティパスは、データ処理回路において各スキャンチェーンに対し実現でき、複数の出力パリティ値は、いかなるチェーンにおけるいかなる状態値の第１変化でも、データ処理回路のいかなる場所での第１状態保全性エラーにフラグを付けるために使われるよう、モニタされる。
【００５７】
図５は、より複雑な実施形態を模式的に示し、複数のパリティパスが提供されるだけでなく、それらパリティパスの第１セットがデータ処理回路全体で水平に走り、一方、それらパリティパスの第２セットがデータ処理回路全体で垂直に走る。図示したパリティパスの、直交する水平および垂直の構成は図示を簡略化するためだけであるということに留意されたく、機能的に様々なパスの間で直交する必要は無いということが理解されるだろう。実際、一般的な集積回路レイアウトにおいて、スキャンパスによって取られる特定のルートは自動化ツールによって決められ、従って、そのような厳密に線形で垂直で並列なパスを伴うことはないだろう。図５に示すデータ処理回路１００において、状態保持回路は、各出力パリティ値を供給するため三つのグループに配置される。状態保持回路１０２、１０４、１０６は「水平の」出力パリティ値ＨＳＣＰ［１］に寄与し、状態保持回路１０８、１１０、１１２はＨＳＣＰ［２］に寄与し、状態保持回路１１４、１１６、１１８はＨＳＣＰ［３］に寄与する。この間、状態保持回路１０２、１０８、１１４は「垂直の」出力パリティ値ＶＳＣＰ［１］に寄与し、状態保持回路１０４、１１０、１１６はＶＳＣＰ［２］に寄与し、状態保持回路１０６、１１２、１１８はＶＳＣＰ［３］に寄与する。
【００５８】
従って、図５と図１を比較すると、図１の線形例において提供されたパリティパスは、図５において「水平の」パリティパスの一つを提供し、一方、図５における「垂直の」パリティパスは、更にＸＯＲゲート１３８、１４０、１４２、１４４、１４６、１４８の追加によって提供される。従って、ＸＯＲゲート１３８、１４０は出力パリティ値ＶＳＣＰ［１］を生成する第１「垂直」パリティパスを形成し、ＸＯＲゲート１４２、１４４は出力パリティ値ＶＳＣＰ［２］を生成する第２垂直パリティパスを形成し、ＸＯＲゲート１４６、１４８は出力パリティ値ＶＳＣＰ［３］を提供する第３垂直パリティパスを形成する。
【００５９】
ＥＤＡフローの点からすると、垂直のパリティチェーンは、スキャン接続ＥＤＡツールフローにおいて、また、すでに決まっているスキャンチェーン順序の上位にこれら追加ＸＯＲゲートを繋ぎ入れることにおける追加ステップとして、簡単に追加できる。
【００６０】
このような方法でデータ処理回路に水平および垂直のパリティパスの両方を提供することは、従って、第１の故障している状態保持回路（スキャンフロップ）により水平のパリティパス出力値と垂直のパリティパス出力値の両方の状態がトグルされ、正確にどの状態保持回路が故障したかの識別を可能にする、という意味である。特定の故障している状態保持回路を識別する能力は、診断において有用である。なぜなら、第１の故障している状態保持回路がシステマティックな部品（例えば、電圧が積極的に抑えられるような状態を無くしている、最も不適正なスレーブラッチトランジスタ構造）を持つかどうか、または、第１の故障している状態保持回路の位置がよりランダムに配置されている（例えば、基板雑音注入やクロストークのため）かどうかを判断することができるからである。更に、第１の故障が発生した特定の状態保持回路を識別する能力は、その故障値を正せるかもしれない。例えば、図５の状態保持回路１１０が最初に故障した場合、これはＨＳＣＰ［２］とＶＳＣＰ［２］をトグルさせるだろう。パリティ出力値を観測するために構成されたモニタリング回路は、その後、状態保持回路１１０によって保持された値を正すことができる。一例において、これは、読み出される第２スキャンチェーン（ＳＩ［２］からＳＯ［２］）からの状態値のセットによって起こすことができ、状態保持回路１１０に対応する値は、状態値のセットが本スキャンチェーンにスキャンバックされる前に、反転される（または、そうでなければ、もとの値に正される）。モニタリング回路は、第１の故障が発生するとすぐに修復動作を誘引するよう構成されてもよいのだが、モニタリング回路は更に、二つ以上の状態保持回路が故障した（複数のＨＳＣＰおよびＶＳＣＰ値がトグルされたことによる）場合を検出するよう構成されてもよい。その場合、故障した状態保持回路は識別されず、それに応じて、より厳重なシステムリセットが実行されうる。それは例えば、すべての状態保持回路をリセットするか、または、状態値の所定の「リブート（ｒｅｂｏｏｔ）」セットをロードするかである。
【００６１】
図６は、水平および垂直のパリティパスの両方を持つデータ処理システムの別の構成を模式的に示す。図６の回路の構成は、パリティ情報を垂直のパリティパスに提供しているＸＯＲゲート（すなわち、ＸＯＲゲート１３８、１４０、１４２、１４４、１４６）が、水平のパリティパス上にあるＸＯＲゲートの出力から入力を受けることを除いて、図５に示すものと同じである。本構成は、例えば、専用のスキャンアウトポートが状態保持回路（例えば、スキャンフロップ）に備えられたインスタンスで実現されてもよい。これらのスキャンアウトポートは、水平にチェーン接続されると共に、垂直にカスケード接続されることが可能だからである。本質的に、本構成は、出力パリティ値ＨＳＣＰ［１から３］およびＭＶＳＣＰ［１から３］のモニタリングにより第１の故障している状態保持回路の指示を提供できるという点で、同じ機能を提供する。しかしながら、このような方法による水平および垂直のパリティパス両方の相互接続は、ＭＶＳＣＰパリティ出力値でリップル効果もたらすということに留意されたい。例えば、状態保持回路１０２によって保持された状態値が変化したら、これによりＨＳＣＰ［１］とＭＶＳＣＰ［１］がトグルされるだけでなく、これらの各々がＨＳＣＰ［１］パリティチェーンの更なる下流から入力を受けるので、出力値ＭＶＳＣＰ［２］とＭＶＳＣＰ［３］もトグルされる。
【００６２】
図７は、水平および垂直のパリティパス両方に接続されるよう構成された、一実施形態の状態保持回路の構成を模式的に示す。ここで、状態保持回路は、図５と図６に関して上記した「垂直のパリティパス」へのそれぞれの状態保持回路の入力および出力接続に対応する、垂直のパリティ入力ＶＰＩと垂直のパリティ出力ＶＰＯを備える。状態保持回路２５０は、「垂直の」パリティ出力がＶＰＯ＝ＳＥ？Ｑ：Ｑ＾ＶＰＩと定義され、スキャンアウトポートがＳＥ？Ｑ：Ｑ＾ＳＩとして構成されるそのＶｅｒｉｌｏｇ動作モデル構成の点から例示される。
【００６３】
ここまでに例示された例におけるパリティ情報生成要素の構成は、ＸＯＲゲートの使用に限定されていた。しかしながら、本技術はＸＯＲゲートの使用に限定されず、同等の機能が他の論理ブロック（例えばＸＮＯＲゲート等）を使って実現できることを理解されるだろう。
【００６４】
図８は、本システム３００が、上記のような組合せ論理に結合され概してスキャンチェーンに配置された状態保持回路３０２、３０４、３０６を備える一般例を模式的に示す。状態保持回路３０２、３０４、３０６（スキャンフロップ）のスキャンインポートＳＩは、コードを生成するよう構成されたコード生成ブロック３０８に繋げられる。そこでは、これらの入力が接続された次のノードの状態を反映している入力が、ｍビットのメッセージとして扱われる。例えば、これらは、ＳＩピンがコード生成ブロックを提供するよう繋がれたチェーンにおけるｍスキャンフロップから来る。生成されたコードは、データ処理回路がデータ保持モードから出た場合に、何らかのエラーが発生したかどうかを判断するために使うことができる。
【００６５】
例えば、コード生成ブロックの選択される定格によって、コード生成ブロック３０８は、データ保持モードに入るとすぐにｎビットのコードを生成するよう構成され、それは後で、データ処理回路がデータ保持モードから（機能的データ処理モードに入るための準備中の）スタンバイモードへ遷移した場合にエラーをチェックするために使われる。本方法の動作手順は次の通りである。
１）  電力管理ユニット（ＰＭＵ）３１２がデータ処理回路をスタンバイモードに入れる（クロックを止める）。
２）  ＰＭＵ３１２がコード生成制御ブロック３１０に（コード生成制御有限状態機械３１０を介して）コードを生成、および格納するよう指示する。
３）  コードを生成するとすぐに、コード生成制御ブロック３１０がＰＭＵ３１２にコードが生成されたことを指示し、その後、ＰＭＵはデータ処理回路に電圧の低減を誘引できる。
４）  その後、データ保持モードを出るとすぐに、ＰＭＵ３１２は電圧をデータ処理回路にもたらすが、まだスタンバイ（クロックが止められた）モードのままである。
５）  コード生成ブロック３０８は、その後、エラー（ビットフリップ）のチェックのために格納されたｎビットコードに対して受信したｍビットを検証する。
６）  いかなるエラーも、その後、更なる動作のためにＰＭＵ３１２へフラグが立てられる。エラーがなければ、ＰＭＵ３１２は、データ処理回路を機能的データ処理モードに戻せるように処理を続ける。
【００６６】
上記のようなスキームは、エネルギー消費、およびコードの計算とエラーチェック中の待ち時間を最適化するよう分散された方法で設計することができる。
【００６７】
すでに上記したように、本技術の実施は、ＥＤＡ処理の一部を形成してもよい。図９は、ＥＤＡ処理等を実施する場合の一実施形態によって取られる可能性のある一連のステップを模式的に示す。本フローはステップ４００で始まり、様々な他のＥＤＡステップが本技術の実施の前に実行されるであろうことを示す。その後、ステップ４０５で、ＥＤＡツールは開発途中の回路全体にスキャンフロップを配置し、各スキャンフロップは関連づけられたＸＯＲゲートと共に配置される。ステップ４１０で、通常のスキャンチェーン生成ステップを実行し、ＥＤＡツールがスキャンフロップを様々なスキャンチェーンに取り付け、それら複数のチェーンの長さと数は、システム要件に従って平衡化される。その後、ステップ４１５で、ＥＤＡツールはＸＯＲゲートを１以上のパリティパスを形成するよう回路全体に取り付け、スキャンフロップに結合される。ステップ４２０で、タイミング最適化処理が始まり、スキャンチェーン内の保持時間が受け入れ可能かどうか判断し、特に、スキャンアウトポート（ＳＯ）をスキャンインポート（ＳＩ）に接続するスキャンチェーン部分で供給された値が、所定のタイミング基準を満たすかどうかを判断する（ステップ４２５）。それら保持時間が受け入れられない場合、その後、固定バッファがそのスキャンチェーン部分に加えられ（ステップ４３０）、保持時間が受け入れ可能であれば、チェックのためにループバックする。ひとたび保持時間が要求された基準を満たしたら、その後、ＥＤＡ処理は更なる標準ステップを続けることができる（ステップ４３５）。
【００６８】
図１０は、一実施形態において、データ処理回路が存在可能、および推移可能な様々なモードを示す状態図である。本実施形態において、状態保持回路は、スキャンイネーブル信号ＳＥとデータ保持信号ＲＥＴによって構成されている。ＳＥ＝０およびＲＥＴ＝０の場合、データ処理回路はデータ処理モード５００にある。データ処理モードにおいて、状態保持回路はデータ処理回路の通常のデータ処理動作に関与しており、特に、それらのＤ入力で受信されたデータ値がそれらのＱ出力を介して伝達される。状態保持回路は、ＳＥ＝１およびＲＥＴ＝０の場合、スキャンモード５０５で構成されてもよい。本スキャンモードにおいて、状態保持回路は、それら状態保持回路が一部を形成するスキャンチェーンを介して、状態値をシステムへスキャンインおよびアウトするよう構成される。特に、各ＳＩ入力で受信された状態値は、それらのＳＯ出力を介して伝達される。
【００６９】
特に、本技術は他のモード、つまり、状態保持モード５１０によって表され、それは各状態保持回路で構成することができる。状態保持モードにおいて、ＳＥ＝０およびＲＥＴ＝１である。本モードにおいて、各状態保持回路は、状態値をデータ処理回路の特定のノードで一定に保持するよう構成され、一方、各状態保持回路のＳＯ出力は、保持された状態値の値および本スキャンチェーンの直前の状態保持回路からＳＩ入力で受信した値を反映するパリティ値を供給するよう構成される。パリティ変更が検出された場合（すなわち、それぞれのスキャンチェーン内の状態値が変化した場合）、システムは回復モード５２０に移行するよう構成され、そこでは、変化した状態値を修復するために、または、状態保持回路を備えるデータ処理回路のサブセットか全システムのリセットを行うために、（上記の）回復動作を行うことができる。従って、変化した（すなわち、無効になった）状態値は、可能であればリセットされ、または、前のシステムチェックポイントスナップショットに（全スキャンチェーンと一緒に）格納される（例えば、複数のパリティ変更が修正できない状況にある場合）。
【００７０】
図１１は、上記の自動化設計処理を実現するよう使われるタイプの汎用コンピューティングデバイス６００を模式的に示す。汎用コンピューティングデバイス６００は、中央処理装置６０２、ランダムアクセスメモリ６０４、リードオンリーメモリ６０６を備え、それらはバス６２２を介して共に接続される。それは更に、ネットワークインターフェースカード６０８、ハードディスクドライブ4１０、ディスプレイドライバ６１２とモニタ６１４、およびキーボード６１８とマウス６２０を持つユーザ入力／出力回路６１６も備え、共通のバス６２２を介してすべて接続される。動作において、上記技術がＥＤＡ処理の一部を形成する場合のように、中央処理装置６０２は、例えば、ランダムアクセスメモリ６０４および／またはリードオンリーメモリ６０６に格納されたコンピュータプログラム命令を実行する。プログラム命令は更に、ハードディスクドライブ4１０から探索、または、ネットワークインターフェースカード６０８を介して動的にダウンロードされ得る。その処理が実行された結果は、接続されたディスプレイドライバ６１２とモニタ６１４を介してユーザに表示される。汎用コンピューティングデバイス６００の動作を制御するためのユーザ入力は、キーボード６１８またはマウス６２０から接続されたユーザ入力出力回路６１６を介して受信される。コンピュータプログラムは、様々な異なるコンピュータ言語で書かれ得ることは理解されよう。コンピュータプログラムは記録メディア上にローカルに格納されてもよく、汎用コンピューティングデバイス６００に動的にダウンロードされてもよい。適切なコンピュータプログラムの制御下で動作する場合、汎用コンピューティングデバイス６００は上記技術を実行でき、上記ＥＤＡ技術を行う装置を形成すると考えられる。汎用コンピューティングデバイス６００の構造は相当に変えることができ、図１１はただ一つの例である。
【００７１】
従って、総まとめとして、本技術に関し、データ処理装置はデータ処理動作を行うよう構成されたデータ処理回路を備える。複数の状態保持回路がデータ処理回路の一部を形成し、これらの回路は、低電力モードに入ったデータ処理回路のそれぞれのノードにてそれぞれの状態値を保持するよう構成される。スキャンパスが複数の状態保持回路を直列に接続し、それにより状態値はそれぞれのノードでスキャンインおよびスキャンアウトされてもよい。複数のパリティ情報生成要素がスキャンパスに結合され、状態保持回路によってそれぞれのノードに保持されたそれぞれの状態値を示すパリティ情報を生成するよう構成される。複数のパリティ情報生成要素がパリティパスを提供するよう配置され、それにより、パリティパスの出力で生成された出力パリティ値が、それぞれの状態値の一つが変化した場合に反転し、状態保持回路によって保持された状態値の保全性の外部指示を提供する。
【００７２】
本発明の特定の実施形態が本明細書に記載されたが、本発明はそれに限定されず、多くの変形と追加が本発明の範囲内で可能であることは明らかであろう。例えば、従属請求項の特徴と独立請求項の特徴との様々な組み合わせが本発明の範囲内で可能である。
【図１】
2012248194.tif 000003
【図２】
2012248194.tif 000004
【図３Ａ】
2012248194.tif 000005
【図３Ｂ】
2012248194.tif 000006
【図４】
2012248194.tif 000007
【図５】
2012248194.tif 000008
【図６】
2012248194.tif 000009
【図７】
2012248194.tif 000010
【図８】
2012248194.tif 000011
【図９】
2012248194.tif 000012
【図１０】
2012248194.tif 000013
【図１１】
2012248194.tif 000014
【外国語明細書】
2012248194000001.pdf