(57)【要約】【課題】デジタルシステムの処理能力を向上する。【解決手段】デジタルシステム１００は、組み合わせ論理回路の第１ステージ１１０、第２ステージ１１２を備える。フルラッチ回路１０４は、組み合わせ論理回路の第１ステージ１１０にデータを転送し、フルラッチ回路１０６は、組み合わせ論理回路の第２ステージ１１２にデータを転送する。トランスペアレントラッチ回路１１４は、組み合わせ論理回路のステージ１１０からの出力データＡ０を、フルラッチ回路１０６に対して転送する。トランスペアレントラッチ回路１１６は、組み合わせ論理回路の第２ステージ１１２からの出力データＢ０を転送する。フルラッチ回路１０４は、クロックＡに応じて動作し、トランスペアレントラッチ回路１１４は、第１クロックＡの反転信号に応じて動作する。【選択図】図３
2006344224.tif 000002
【特許請求の範囲】
【請求項１】
組み合わせ論理回路の第１、第２ステージと、
前記組み合わせ論理回路の第１、第２ステージそれぞれにデータを転送する第１、第２フルラッチ回路と、
前記組み合わせ論理回路の第１ステージからの出力データを、前記第２フルラッチ回路に対して転送する第１トランスペアレントラッチ回路と、
を備えることを特徴とする演算処理装置。
【請求項２】
請求項１に記載の装置において、さらに、
前記組み合わせ論理回路の第２ステージからの出力データを転送する第２トランスペアレントラッチ回路を備えることを特徴とする演算処理装置。
【請求項３】
請求項２に記載の装置において、
前記第１フルラッチ回路は、第１クロック信号に応じて動作し、
前記第１トランスペアレントラッチ回路は、前記第１クロック信号の反転信号に応じて動作することを特徴とする演算処理装置。
【請求項４】
請求項３に記載の装置において、
前記第２フルラッチ回路は、第２クロック信号に応じて動作し、
前記第２トランスペアレントラッチ回路は、前記第２クロック信号の反転信号に応じて動作することを特徴とする演算処理装置。
【請求項５】
請求項４に記載の装置において、
前記第１クロック信号は、前記第２クロック信号よりも高周波数であることを特徴とする演算処理装置。
【請求項６】
請求項１から５のいずれかに記載の装置において、
さらに複数の組み合わせ論理回路のステージを備え、
各ステージは、
そのステージ内部へのデータを転送するフルラッチ回路と、
そのステージからの出力データを、次ステージに転送するトランスペアレントラッチ回路と、
を含むことを特徴とする演算処理装置。
【請求項７】
請求項６に記載の装置において、
各ステージの前記フルラッチ回路および前記トランスペアレントラッチ回路は、共通のクロック信号を互いに反転した信号に応じて動作することを特徴とする演算処理装置。
【請求項８】
請求項６または７に記載の装置において、
隣接するステージは、異なるクロック周波数で動作することを特徴とする演算処理装置。
【請求項９】
請求項１から８のいずれかに記載の装置において、
組み合わせ論理回路の少なくとも１つのステージは、デジタル論理ゲートの複数の分岐を含み、各分岐は、それぞれの入力データストリームに応じて、出力データストリームを生成し、
組み合わせ論理回路の少なくとも１つのステージの前記フルラッチ回路は、複数のフリップフロップを含み、各フリップフロップは、前記入力データストリームを前記ステージの内部へと転送し、
組み合わせ論理回路の少なくとも１つのステージの前記トランスペアレントラッチ回路は、複数のハーフラッチ回路を含み、各ハーフラッチ回路は、前記出力データストリームを次のステージへと転送することを特徴とする演算処理装置。
【請求項１０】
請求項１から８のいずれかに記載の装置において、
前記第１トランスペアレントラッチ回路は、
（ｉ）前記第１トランスペアレントラッチ回路のクロック信号が２つの論理レベルのうち、第１レベルのとき、前記組み合わせ論理回路の第１ステージからの出力データの状態変化を、遷移がいつ発生したかに関わらず通過させ、
（ｉｉ）前記第１トランスペアレントラッチ回路のクロック信号が第２レベルから第１レベルに遷移するまで、前記出力データの状態遷移を保留することを特徴とする演算処理装置。
【請求項１１】
組み合わせ論理回路の複数のステージを備え、各ステージは、
そのステージ内部へのデータを転送するフルラッチ回路と、
そのステージからの出力データを、次ステージに転送するトランスペアレントラッチ回路と、
を含むことを特徴とする演算処理装置。
【請求項１２】
請求項１１に記載の装置において、
各ステージの前記フルラッチ回路および前記トランスペアレントラッチ回路は、共通のクロック信号を互いに反転した信号に応じて動作し、
隣接するステージは、異なるクロック周波数で動作することを特徴とする演算処理装置。
【請求項１３】
請求項１１または１２に記載の装置において、
前記トランスペアレントラッチ回路は、
（ｉ）前記トランスペアレントラッチ回路のクロック信号が、２つの論理レベルのうち第１レベルのとき、組み合わせ論理回路からの出力データの状態変化を、遷移がいつ発生したかに関わらず透過させ、
（ｉｉ）前記トランスペアレントラッチ回路のクロック信号が第２レベルから第１レベルに遷移するまで、前記出力データの状態遷移を保留することを特徴とする演算処理装置。
【請求項１４】
組み合わせ論理回路の複数のステージを設け、各ステージは、そのステージ内部へのデータを転送するフルラッチ回路を含み、
各ステージにおいて、前記フルラッチ回路のクロック信号が２つの論理レベルのうち、第１レベルのとき、その組み合わせ論理回路からの出力データの状態変化を、遷移がいつ発生したかに関わらず透過させ、
各ステージにおいて、前記フルラッチ回路のクロック信号が第２レベルから第１レベルに遷移するまで、前記出力データの状態遷移を保留することを特徴とする演算処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クリティカルパスにおけるデータ処理を行うために、分離したクロック領域を用いる際の、クロックスキューの管理技術に関する。
【背景技術】
【０００２】
一般的な演算処理システムにおいて、ＬＳＩとして構成されるデジタル回路が、ある論理機能を同期して実行するために、システムクロック信号が使用される。たとえば、ウルトラディープサブミクロン（ＵＤＳＭ）マイクロプロセッサは、論理機能の同期実行のために、システムクロック信号を用いたデジタル回路を採用する。これらのマイクロプロセッサは、１ＧＨｚ、あるいはそれ以上のシステムクロック周波数で動作する。あるＬＳＩ回路のシステムクロック信号は、多くの場合、複数のパスに分岐され、デジタル回路の異なる箇所に提供される。
【０００３】
デジタル回路の複雑化にともない、複数のクロック周波数がひとつの回路の内部で用いられるようになっている。これによって、たとえば回路のある箇所を低い周波数で動作させ、消費電力を低減することができる。しかし、その結果として、クロック領域の境界を跨いだデータ転送、すなわち、第１の周波数で動作する箇所から、第２の周波数で動作する箇所へのデータの転送が発生することになる。
【０００４】
理想的な状態において、デジタル回路の異なる箇所におけるシステムクロック信号は、完全に同一のタイミング特性を示し、その結果、デジタル回路の異なる箇所は、異なるクロック周波数が使用される場合においても、完全に同期して動作する。しかしながら、実際には、デジタル回路の様々な位置のシステムクロック信号は、異なるタイミング特性を示す。これは、たとえば、異なる立ち上がりエッジ、および／または立ち下がりエッジ（すなわち遷移）、あるいは異なるデューティサイクル、異なる周波数である。これらの非理想的な特性は、クロックジッタやクロックスキューの原因となる。
【０００５】
クロックジッタは、システムクロック信号を生成する際の不正確さに関連する。クロックジッタに起因するシステムクロック信号の非理想的な特性は、同様にして、システムクロック信号がどのようにして回路の各箇所に分配されるかに関わらず、ＬＳＩ回路のすべての箇所に影響を及ぼす。クロックスキューは、システムクロック信号を分岐し、デジタル回路の異なる複数の箇所に分配する際に、それぞれのシステムクロック信号に導入される不正確さに関連する。
【０００６】
クロックスキューの原因は、静的に発生するものと動的に発生するものとに分類される。静的な発生要因は、ＬＳＩデザインや製造プロセスなど、ＬＳＩの動作状態とは無関係なものに起因する。動的な発生要因は、ＬＳＩの動作状態に起因し、これらはときとしてＬＳＩデザインや製造プロセスに依存する。
【０００７】
クロックスキューの静的な発生要因は、（１）トランジスタの負荷容量（たとえばゲート容量）のばらつき、（２）回路間の接続のＲＣ遅延（たとえば、配線の長さ、幅の非対称性）、（３）配線間のクロスカップリング容量のばらつきや非対称性（たとえば、配線間容量）、（４）半導体プロセスのばらつき（たとえば、トランジスタのしきい値電圧のばらつき、オン抵抗のばらつき、配線ばらつき、ビアおよびコンタクトの抵抗、容量のばらつき）などである。
【０００８】
動的な発生要因は、（１）配線間容量による配線のクロスカップリング、（２）配線の誘導性カップリングによるクロスカップリング、（３）リターンパス電流によるクロスカップリング、（４）温度変動、（５）直流動作電圧変動、すなわちＶＤＤ、ＶＳＳの変動などである。
【０００９】
クロックスキューに起因したシステムクロック信号のタイミング特性の変動は、ＬＳＩのデジタル回路の動作において、好ましくない誤動作をもたらす。この問題は、クロック領域の境界を跨いだ遷移が生じた際に深刻となる。
【００１０】
クロックスキューに起因した上述の問題を、図１および図２（ａ）、（ｂ）を参照して詳細に説明する。図１は、組み合わせ論理回路の各ステージ間に、クロック領域境界を有するデジタルシステム１０を示す。デジタルシステム１０は、複数のフルラッチ回路１２、１６、２０、複数の組み合わせ論理回路１４、１８を備える。ここでの説明において、まず遅延回路２２、２４は、デジタルシステム１０に存在しないものと仮定する。フルラッチ回路１２は、組み合わせ論理回路の第１ステージ１４へとデータを転送し、フルラッチ回路１６は、組み合わせ論理回路の第２ステージ１８にデータを転送する。フルラッチ回路１２は、たとえば４ＧＨｚの第１周波数のクロックＡにより動作する。フルラッチ回路１６は、たとえば２ＧＨｚの第２周波数のクロックＢにより動作する。すなわち、フルラッチ回路１６は、組み合わせ論理回路の第１ステージ１４と、組み合わせ論理回路の第２ステージ１８間の、すなわち異なる周波数で動作するステージの間のクロック領域の境界を形成する。
【００１１】
デジタルシステム１０は、ここでは説明の簡潔化、明瞭化のために省略されているが、さらに多くの組み合わせ論理回路のステージを含んでいてもよいことは容易に理解される。
【００１２】
図２（ａ）は、クロックＡおよびクロックＢのタイミング特性を示す図であり、それらが、組み合わせ論理回路の第１ステージ１４、第２ステージ１８間の有効データの転送、およびその可否にどのように関連するかを示す図である。まず、クロックＡ、クロックＢ（ｓｙｎｃｈ）を参照する。ここで、クロックＢは、クロックＡとクロックＢの立ち上がりエッジが完全に揃った理想的なものとする。クロックＡの立ち上がりエッジ５０を受け、フルラッチ回路１２は組み合わせ論理回路１４にデータを出力する。クロックＡの立ち上がりエッジ５０から組み合わせ論理回路１４から出力される有効出力データＡ０のオンセットまでは、最短の伝搬遅延Ｔｐが存在する。データＡ０は、クロックＡの次の立ち上がりエッジ５２後の最短伝搬遅延Ｔｐが経過するまでの間、有効となる。
【００１３】
クロックＢ（ｓｙｎｃｈ）の立ち上がりエッジ５４を受け、フルラッチ回路１６は、その入力されたデータ（データＡ０を含む）を組み合わせ論理回路１８に転送する。クロックＢ（ｓｙｎｃｈ）の立ち上がりエッジ５４前のある期間、フルラッチ回路１６のセットアップタイムＴｓが存在し、この期間、適切なデータ転送のために、データＡ０はフルラッチ回路１６の入力において有効でなければならない。また、クロックＢ（ｓｙｎｃｈ）の立ち上がりエッジ５４後のある期間、ホールドタイムＴｈが存在し、この期間、適切なデータ転送のために、データＡ０はフルラッチ回路１６の入力において有効でなければならない。
【００１４】
通常、組み合わせ論理回路の第１ステージ１４のデータが確定する前において、クロックＡの立ち上がりエッジ５０、５２の後には、ある最小の伝搬遅延Ｔｐが存在するため、クロックＢが、クロックＡと同期する場合、ホールドタイム違反は発生しない。
【００１５】
組み合わせ論理回路の第２ステージ１８からフルラッチ回路２０で示される次のステージにデータを転送する場合についても、同様の議論が成り立つ。具体的には、クロックＢ（ｓｙｎｃｈ）の立ち上がりエッジ５６を受け、フルラッチ回路１６の入力データは組み合わせ論理回路１８に出力される。立ち上がりエッジ５６から最短の伝搬遅延Ｔｐの経過後、組み合わせ論理回路１８の出力データＢ０が、フルラッチ回路２０の入力において有効となる。
【００１６】
クロックＡの立ち上がりエッジ５８を受け、フルラッチ回路２０は、その入力データ（データＢ０を含む）を、図示しない次のステージの組み合わせ論理回路に転送する。クロックＡの立ち上がりエッジ５８から前のある期間、フルラッチ回路２０のセットアップタイムＴｓが存在し、この期間、適切なデータ転送のために、データＢ０はフルラッチ回路２０の入力において有効でなければならない。クロックＡの立ち上がりエッジ５８から後のある期間、ホールドタイムＴｈが存在し、この期間、適切なデータ転送のために、データＢ０はフルラッチ回路２０の入力において有効でなければならない。
【００１７】
次に、クロックＢ（ｌａｇ）を参照する。クロックＢは、クロックスキューの問題によって、クロックＡよりも遅れたものである。この場合、クロックＢ（ｌａｇ）の立ち上がりエッジ５４Ａは、クロックＢ（ｓｙｎｃｈ）の立ち上がりエッジ５４よりもある時間遅れて現れる。この遅れがある程度大きくなると、出力データＡ０は、遅れた立ち上がりエッジ５４Ａ後のホールドタイムＴｈの期間に、有効ではなくなってしまう。その結果、有効データＡ０は、組み合わせ論理回路の第２ステージ１８に転送されなくなってしまう。実際には、フルラッチ回路１６の立ち上がりエッジ５４Ａより前のセットアップタイムＴｓが満足される場合であっても、出力データＡ０の有効性は、立ち上がりエッジ５４Ａの後のホールドタイムＴｈの前までしか持続しない。その結果、フルラッチ回路１６は、有効データＡ０を組み合わせ論理回路１４から組み合わせ論理回路１８に転送できなくなる。
【００１８】
組み合わせ論理回路１８から次のステージへの出力データＢ０の転送に着目すると、クロックＢ（ｌａｇ）は、クロックＡの立ち上がりエッジ５８後のホールドタイムＴｈの期間より後に、出力データＢ０が有効となる追加的な期間を発生させる。しかしながら、クロックＢ（ｌａｇ）の遅れ特性は、セットアップタイム、すなわち立ち上がりエッジ５８より前に出力データＢ０が有効である期間を減少させる。この例では、この減少は、フルラッチ回路２０における立ち上がりエッジ５８より前のセットアップタイムＴｓの要求違反を引き起こすものではない。
【００１９】
次に、クロックＢ（ｌｅａｄ）を参照する。クロックＢ（ｌｅａｄ）の立ち上がりエッジは、クロックＡの立ち上がりエッジよりも前に現れる。出力データＡ０については、クロックＢ（ｌｅａｄ）の進み特性は、ホールドタイム、すなわちクロックＢ（ｌｅａｄ）の立ち上がりエッジ５４Ｂより前において、出力データＡ０が有効となる期間を発生させる。すなわち、クロックＢ（ｌｅａｄ）の進み特性は、組み合わせ論理回路の第１ステージ１４から組み合わせ論理回路の第２ステージ１８への出力データＡ０の転送に際して、ホールドタイムの問題を引き起こすものではないように思われる。しかしながら、クロックＢ（ｌｅａｄ）の進み特性は、セットアップタイム、すなわち、クロックＢ（ｌｅａｄ）の立ち上がりエッジ５４Ｂより前に、出力データＡ０が有効となる時間を減少させる。すなわち、クロックＢ（ｌｅａｄ）の進み特性の度合いに応じて、セットアップタイムの問題が発生する可能性がある。
【００２０】
クロックＢ（ｌｅａｄ）の立ち上がりエッジ５６Ｂは、クロックＢ（ｓｙｎｃｈ）の立ち上がりエッジ５６より幾分前に進んで現れる。この進みがある程度大きくなると、出力データＢ０は、クロックＡの立ち上がりエッジ５８以降のホールドタイムＴｈの期間に、有効ではなくなってしまう。その結果、有効データＢ０は、組み合わせ論理回路の次のステージに転送されなくなる。実際には、フルラッチ回路２０において、立ち上がりエッジ５８より前のセットアップタイムＴｓが満足される場合であっても、出力データＢ０の有効性は、クロックＡの立ち上がりエッジ５８の後のホールドタイムＴｈの前までしか持続しない。その結果、フルラッチ回路２０は、有効データＢ０を組み合わせ論理回路１８から次のステージへと転送できなくなる。
【００２１】
クロックＡ、クロックＢ間のクロックスキュー現象に起因したホールドタイム違反を解決するために、従来手法では、組み合わせ論理回路１４および組み合わせ論理回路１８の間のデータパス上のどこかに遅延回路２２、２４を設けていた。ここでは説明のため、遅延回路２２、２４はフルラッチ回路１６、２０それぞれの前に挿入するものとする。図２（ｂ）に示すように、遅延回路２２の導入により、出力データＡ０の伝搬は、クロックＡの立ち上がりエッジ５０の後の伝搬遅延Ｔｐに加えて、ある遅延量Ｔｄだけさらに遅延する。これにより、出力データＡ０は、クロックＢ（ｌａｇ）の立ち上がりエッジ５４Ａの後、追加時間Ｔｄの間、有効となることが保証される。すなわち、フルラッチ回路１６のホールドタイムＴｈが満たされ、出力データＡ０は組み合わせ論理回路の第２ステージ１８へと転送される。
【００２２】
フルラッチ回路２０の前に遅延回路２４を導入することにより、組み合わせ論理回路１８の出力データＢ０が有効となるまでには、クロックＢ（ｌａｇ）の立ち上がりエッジ５６Ａの後の伝搬遅延Ｔｐの後に、ある遅延量Ｔｄが発生する。これにより、クロックＡの立ち上がりエッジ５８前のセットアップタイムＴｓの開始までの有効な出力データＢ０のオンセットの時間マージンは、大きく減少する。
【００２３】
クロックＢがクロックＡより進む場合、出力データＡ０の有効性に及ぼす遅延回路２２の影響は、フルラッチ回路１６に入力されるクロックＢ（ｌｅａｄ）の立ち上がりエッジ５４Ｂに応じたセットアップタイムＴｓ違反を引き起こす傾向にある。クロックＢ（ｌｅａｄ）の進み特性は、フルラッチ回路２０に対する出力データＢ０の有効性およびクロックＡの立ち上がりエッジ５８に関してセットアップタイム特性を改善する傾向にあるが、遅延回路２４により導入された遅延は、こうした改善を打ち消してしまう。遅延回路２４によって、クロックＡの立ち上がりエッジ５８後に出力データＢ０が有効となる時間は増加し、その結果、フルラッチ回路２０のホールドタイムＴｈが満たされる。
【発明の開示】
【発明が解決しようとする課題】
【００２４】
ホールドタイムの問題を解決するために遅延回路を用いるのは、有用である。しかしながら、それに応じたセットアップタイム違反の問題が発生してしまう。さらに、遅延回路によって、組み合わせ回路の各ステージを介したクリティカルパスにおいて、大きな時間を消費することになる。理論的には、遅延回路およびクロックスキューによって各ステージに導入される遅延量の総量は、最大クロックスキューの２倍となる。これは、セットアップタイム違反の発生を著しく増加させ、またシステム全体のタイミングマージンを著しく減少させるものである。
【課題を解決するための手段】
【００２５】
上記課題を解決するために、本発明のある態様の演算処理装置は、組み合わせ論理回路の第１、第２ステージと、組み合わせ論理回路の第１、第２ステージそれぞれにデータを転送する第１、第２フルラッチ回路と、組み合わせ論理回路の第１ステージからの出力データを、第２フルラッチ回路に対して転送する第１トランスペアレントラッチ回路と、を備える。
【００２６】
演算処理装置は、さらに、組み合わせ論理回路の第２ステージからの出力データを転送する第２トランスペアレントラッチ回路を備えてもよい。第１フルラッチ回路は、第１クロック信号に応じて動作し、第１トランスペアレントラッチ回路は、第１クロック信号の反転信号に応じて動作するのが望ましい。同様に、第２フルラッチ回路は、第２クロック信号に応じて動作し、第２トランスペアレントラッチ回路は、第２クロック信号の反転信号に応じて動作するのが望ましい。好ましくは、第１クロック信号は、第２クロック信号よりも高周波数であってもよい。
【００２７】
演算処理装置は、さらに、複数の組み合わせ論理回路のステージを備えてもよい。各ステージは、そのステージ内部へのデータを転送するフルラッチ回路と、そのステージからの出力データを、次ステージに転送するトランスペアレントラッチ回路と、を含んでもよい。好ましくは、各ステージのフルラッチ回路およびトランスペアレントラッチ回路は、共通のクロック信号を互いに反転した信号に応じて動作してもよい。隣接するステージは、異なるクロック周波数で動作してもよい。
【００２８】
組み合わせ論理回路の少なくとも１つのステージは、デジタル論理ゲートの複数の分岐を含み、各分岐は、それぞれの入力データストリームに応じて、出力データストリームを生成してもよい。組み合わせ論理回路の少なくとも１つのステージのフルラッチ回路は、好ましくは複数のフリップフロップを含み、各フリップフロップは、入力データストリームをステージの内部へと転送してもよい。同様に、組み合わせ論理回路の少なくとも１つのステージの前記トランスペアレントラッチ回路は、複数のハーフラッチ回路を含み、各ハーフラッチ回路は、出力データストリームを次のステージへと転送してもよい。
【００２９】
第１トランスペアレントラッチ回路は、（ｉ）前記第１トランスペアレントラッチ回路のクロック信号が２つの論理レベルのうち、第１レベルのとき、前記組み合わせ論理回路の第１ステージからの出力データの状態変化を、遷移がいつ発生したかに関わらず通過させ、（ｉｉ）前記第１トランスペアレントラッチ回路のクロック信号が第２レベルから第１レベルに遷移するまで、前記出力データの状態遷移を保留するように動作してもよい。
【００３０】
本発明の別の態様の演算処理装置は、組み合わせ論理回路の複数のステージを備え、各ステージは、そのステージ内部へのデータを転送するフルラッチ回路と、そのステージからの出力データを、次ステージに転送するトランスペアレントラッチ回路と、を含む。
【００３１】
本発明のさらに別の態様は、演算処理方法に関する。この方法は、組み合わせ論理回路の複数のステージを設け、各ステージは、そのステージ内部へのデータを転送するフルラッチ回路を含んでおり、各ステージにおいて、フルラッチ回路のクロック信号が２つの論理レベルのうち、第１レベルのとき、その組み合わせ論理回路からの出力データの状態変化を、遷移がいつ発生したかに関わらず透過させ、各ステージにおいて、フルラッチ回路のクロック信号が第２レベルから第１レベルに遷移するまで、出力データの状態遷移を保留する。
【００３２】
なお、以上の構成要素の任意の組合せや、本発明の構成要素や表現を、方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００３３】
本発明によれば、処理能力を向上することができる。
【発明を実施するための最良の形態】
【００３４】
同等の構成要素に同一の符号を付したいくつかの図面を参照しながら、実施の形態について説明する。図３は、実施の形態に係るデジタルシステム１００のブロック図である。デジタルシステム１００は、複数のステージ１０２Ａ、１０２Ｂ、１０２Ｃ…を備える。各ステージ１０２は、組み合わせ論理回路１１０、１１２を含み、所望の方法によって、デジタルデータを処理する。デジタルシステム１００は、複数のフルラッチ回路１０４、１０６を備える。フルラッチ回路１０４は、組み合わせ論理回路の第１ステージ１１０へと入力されるデータを転送する。フルラッチ回路１０６は、組み合わせ論理回路の第２ステージ１１２へと入力されるデータを転送する。フルラッチ回路１０４は、第１周波数（たとえば４ＧＨｚ）の第１クロックＡに応じて動作する。フルラッチ回路１０６は、第２周波数（たとえば２ＧＨｚ）の第２クロックＢに応じて動作する。すなわち、フルラッチ回路１０６は、異なる周波数で動作する第１ステージ１０２Ａと第２ステージ１０２Ｂの間のクロック領域の境界を形成する。ここで、クロックＡとクロックＢの間には、クロックＡの周波数が、クロックＢの周波数の整数倍であるか、あるいはクロックＢの周波数がクロックＡの周波数の整数倍となる関係が存在することが望ましい。
【００３５】
デジタルシステム１００は、ここでは説明の簡潔化、明瞭化のために省略されているが、さらに多くの組み合わせ論理回路のステージを含んでいてもよいことは容易に理解される。
【００３６】
各ステージ１０２は、好ましくはトランスペアレントラッチ回路を含む。ステージ１０２Ａは、トランスペアレントラッチ回路１１４を含み、ステージ１０２Ｂは、トランスペアレントラッチ回路１１６を含む。図４は、実施の形態に係るトランスペアレントラッチ回路の真理値表である。トランスペアレントラッチ回路は、トランスペアレントラッチ回路のクロック信号が２つの論理レベルのうち、第１レベルのとき、入力データの状態変化を、遷移がいつ発生したかに関わらず通過させる。図４において、第１レベルは、ハイレベルであり、第２レベルはローレベルである。トランスペアレントラッチ回路は、好ましくは、クロック信号が第２レベルから第１レベルに遷移するまで、入力データの状態遷移を保留する。すなわち、クロックが第１レベル（すなわちハイレベル）のとき、ローレベルから、あるいはハイレベルからの状態変化は、実質的に即時にトランスペアレントラッチ回路を通過する一方、クロックが第２レベル（すなわちローレベル）のとき、クロックが第１レベルに変化するまでの間、状態変化は保留される。当業者においては、このような真理値表が「ハーフラッチ」と呼ばれる配置であることを理解することができる。
【００３７】
組み合わせ論理回路１１０、１１２の各ステージは、デジタル論理ゲートの複数の分岐を含む。各分岐は、それぞれの入力データストリームに応じて、出力データストリームを生成する。ここでは簡潔化のため、組み合わせ論理回路の各ステージ１１０、１１２に入力されるラインは、１本のみが示されており、各ステージ１１０、１１２から出力されるラインも、１本のみが示される。デジタル論理ゲートの複数の分岐が、組み合わせ論理回路の各ステージ内に存在する場合には、フルラッチ回路１０４、１０６、１０８およびトランスペアレントラッチ回路１１４、１１６は、各組み合わせ論理回路に対応して、デジタル論理ゲートの各分岐ごとに設けられてもよい。たとえば、フルラッチ回路１０４は、組み合わせ論理回路１１０を形成するデジタル論理ゲートの各分岐に入力されるデータを転送するフリップフロップ（ＦＩＦＯ）のアレイを用いて構成することができる。同様に、トランスペアレントラッチ回路１１４は、複数のハーフラッチ回路を用いて構成することができる。各ハーフラッチ回路は、組み合わせ論理回路１１０のデジタル論理ゲートの分岐それぞれからの出力データを、フルラッチ回路１０６の入力へと転送する。デジタルシステム１００の他のステージについても同様である。
【００３８】
各ステージ１０２のフルラッチ回路およびトランスペアレントラッチ回路は、反転したクロックに応じて動作する。すなわち、第１ステージ１０２Ａにおいて、フルラッチ回路１０４は、クロックＡに応じて動作し、トランスペアレントラッチ回路１１４は、クロックＡの反転信号に応じて動作する。同様に、第２ステージ１０２Ｂにおいて、フルラッチ回路１０６は、クロックＢに応じて動作し、トランスペアレントラッチ回路１１６は、クロックＢの反転信号に応じて動作する。こうしたクロックの配置は、他のステージにおいても同様であることが望ましい。また、隣接するステージは、異なるクロック周波数で動作することが望ましい。本実施の形態では、第１ステージ１０４Ａは４ＧＨｚで動作し、第２ステージ１０４Ｂは２ＧＨｚで動作する。
【００３９】
デジタルシステム１００の動作を図５を参照して、より詳しく説明する。図５は、クロック信号のタイミング特性を、デジタルシステム１００の各ステージおいて転送される入出力データと比較して示す図である。まず、クロックＡとクロックＢ（ｓｙｎｃｈ）を参照する。ここで、クロックＢ（ｓｙｎｃｈ）は理想的なものであって、クロックＡとクロックＢ（ｓｙｎｃｈ）の立ち上がりエッジは完全に揃っているものとする。クロックＡの立ち上がりエッジ５０を受け、フルラッチ回路１０４は組み合わせ論理回路１１０にデータを出力する。クロックＡの立ち上がりエッジ５０から、組み合わせ論理回路１１０より出力される有効出力データＡ０のオンセットまでは、最短の伝搬遅延Ｔｐが存在する。データＡ０は、クロックＡの次の立ち上がりエッジ５２後の最短伝搬遅延Ｔｐが経過するまでの間、有効となる。
【００４０】
クロックＢ（ｓｙｎｃｈ）の立ち上がりエッジ５４を受け、フルラッチ回路１０６は、その入力されたデータを組み合わせ論理回路１１２に転送する。クロックＢ（ｓｙｎｃｈ）の立ち上がりエッジ５４から前のある期間、フルラッチ回路１６のセットアップタイムＴｓが存在し、この期間、適切なデータ転送のために、データＡ０はフルラッチ回路１６の入力において有効でなければならない。クロックＢ（ｓｙｎｃｈ）の立ち上がりエッジ５４後のある期間、ホールドタイムＴｈが存在し、この期間、適切なデータ転送のために、データＡ０はフルラッチ回路１０６の入力において有効でなければならない。
【００４１】
通常、組み合わせ論理回路の第１ステージ１４のデータが確定する前において、クロックＡの立ち上がりエッジ５０、５２の後には、ある最小の伝搬遅延Ｔｐが存在するため、クロックＢが、クロックＡと同期する場合、ホールドタイム違反は発生しない。
【００４２】
組み合わせ論理回路の第２ステージ１１２からフルラッチ回路１０８で示される次のステージにデータを転送する場合についても、同様の解析が成り立つ。具体的には、クロックＢ（ｓｙｎｃｈ）の立ち上がりエッジ５６を受け、フルラッチ回路１０６の入力データは組み合わせ論理回路１１２に出力される。立ち上がりエッジ５６から最短伝搬遅延Ｔｐの経過後、組み合わせ論理回路１１２の出力データＢ０が、トランスペアレントラッチ回路１１６の入力において有効となる。
【００４３】
クロックＡの立ち上がりエッジ５８を受け、フルラッチ回路１０８は、その入力データ（データＢ０を含む）を、図示しない次のステージの組み合わせ論理回路に転送する。クロックＡの立ち上がりエッジ５８から前のある期間、フルラッチ回路１０８のセットアップタイムＴｓが存在し、この期間、適切なデータ転送のために、データＢ０はフルラッチ回路１０８の入力において有効でなければならない。クロックＡの立ち上がりエッジ５８後のある期間、ホールドタイムＴｈが存在し、この期間、適切なデータ転送のために、データＢ０はフルラッチ回路１０８の入力において有効でなければならない。
【００４４】
次に、クロックＢ（ｌａｇ）を参照する。クロックＢは、クロックスキューの問題によって、クロックＡよりも遅れたものである。この場合、クロックＢ（ｌａｇ）の立ち上がりエッジ５４Ａは、クロックＢ（ｓｙｎｃｈ）の立ち上がりエッジ５４よりもある時間遅れて現れる。この遅れがある程度大きくなると、出力データＡ０は、遅れた立ち上がりエッジ５４Ａ以降のホールドタイムＴｈの期間に、有効ではなくなってしまう。その結果、有効データＡ０は、組み合わせ論理回路の第２ステージ１１２に転送されなくなってしまう。実際には、フルラッチ回路１０６の立ち上がりエッジ５４Ａより前のセットアップタイムＴｓが満足される場合であっても、出力データＡ０の有効性は、立ち上がりエッジ５４Ａの後のホールドタイムＴｈの前までしか持続しない。その結果、フルラッチ回路１０６は、有効データＡ０を組み合わせ論理回路１１０から組み合わせ論理回路１１２に転送できなくなる。
【００４５】
組み合わせ論理回路１１０からの出力データをＡ０とするとき、トランスペアレントラッチ回路１１４の出力データをＡ０’と記す。同様に、組み合わせ論理回路１１２の出力データをＢ０とするとき、トランスペアレントラッチ回路１１６の出力データをＢ０’と記す。上述のトランスペアレントラッチ回路の動作を踏まえると、組み合わせ論理回路１１０からの出力データＡ０の状態が変化し、伝搬時間Ｔｐ経過後に有効となった場合でも、トランスペアレントラッチ回路１１４は、クロックＡがローレベルの期間、出力データＡ０の状態変化を保留する。すなわち、出力データＡ０’は、エッジ５０’において、クロックＡがハイレベルからローレベルとなったときに、有効となる。同様に、クロックＡの立ち上がりエッジ５２の後に、出力データＡ０の状態が変化した場合であっても、トランスペアレントラッチ回路１１４はクロックＡがハイレベル、クロックＡの反転信号がローレベルの期間、出力データＡ０’の状態を保留し、クロックＡの反転信号がローレベルからハイレベルに遷移したとき、すなわちエッジ５２’において、出力信号Ａ０’を遷移させる。
【００４６】
その結果、クロックＢがクロックスキューによってクロックＡよりも遅れる場合であっても、トランスペアレントラッチ回路１１４は、クロックＢ（ｌａｇ）の立ち上がりエッジ５４Ａに続くホールドタイムＴｈにおいて十分な期間、出力データＡ０’の有効状態を維持する。さらに、トランスペアレントラッチ回路１１４は、出力データＡ０’のタイミングを、クロックＢ（ｌｅａｄ）の立ち上がりエッジ５４Ｂ前のセットアップタイムＴｓ違反が発生するほど時間的にシフトするものではない。
【００４７】
組み合わせ論理回路１１２から次のステージへの出力データＢ０の転送に際し、クロックＢ（ｌａｇ）は、実際には、クロックＡの立ち上がりエッジ５８後のホールドタイムＴｈの期間後に、出力データＢ０が有効となる追加的な期間を発生させる。しかしながら、クロックＢ（ｌａｇ）の遅れ特性は、セットアップタイム、すなわち立ち上がりエッジ５８より前に出力データＢ０が有効である期間を減少させる。この例では、この減少は、フルラッチ回路２０において、立ち上がりエッジ５８より前のセットアップタイムＴｓの要求の違反を引き起こすものではない。
【００４８】
フルラッチ回路１０６が、クロックＢの立ち上がりエッジ５６を受けて、組み合わせ論理回路１１２へとデータを転送するとき、トランスペアレントラッチ回路１１６は、クロックＢの反転信号の状態がローレベルからハイレベルに遷移するまで、出力データＢ０’の状態遷移を保留する。同様に、トランスペアレントラッチ回路１１６は、クロックＢの反転信号がローレベルとなるエッジ５９から６０までの間、出力データＢ０’の状態を保持する。
【００４９】
次に、クロックＢ（ｌｅａｄ）を参照する。クロックＢ（ｌｅａｄ）の立ち上がりエッジは、クロックＡの立ち上がりエッジよりも前に現れる。出力データＡ０については、クロックＢ（ｌｅａｄ）の進み特性は、ホールドタイム、すなわちクロックＢ（ｌｅａｄ）の立ち上がりエッジ５４Ｂより前において、出力データＡ０が有効となる期間を発生させる。すなわち、クロックＢ（ｌｅａｄ）の進み特性は、組み合わせ論理回路の第１ステージ１１０から組み合わせ論理回路の第２ステージ１１２への出力データＡ０の転送に際して、ホールドタイムの問題を引き起こすものではないように思われる。しかしながら、クロックＢ（ｌｅａｄ）の進み特性は、セットアップタイム、すなわち、クロックＢ（ｌｅａｄ）の立ち上がりエッジ５４Ｂより前に、出力データＡ０が有効となる時間を減少させる。すなわち、クロックＢ（ｌｅａｄ）の進み特性の度合いに応じて、セットアップタイムの問題が発生する可能性がある。
【００５０】
クロックＢ（ｌｅａｄ）の立ち上がりエッジ５６Ｂは、クロックＢ（ｓｙｎｃｈ）の立ち上がりエッジ５６より幾分前に進んで現れる。この進みがある程度大きくなると、出力データＢ０は、クロックＡの立ち上がりエッジ５８後のホールドタイムＴｈの期間に、有効ではなくなってしまう。その結果、有効データＢ０は、組み合わせ論理回路の次のステージに転送されなくなってしまう。実際には、フルラッチ回路１０８において、立ち上がりエッジ５８前のセットアップタイムＴｓが満足される場合であっても、出力データＢ０の有効性は、クロックＡの立ち上がりエッジ５８後のホールドタイムＴｈの前までしか持続しない。その結果、フルラッチ回路１０８は、有効データＢ０を組み合わせ論理回路１１２から次のステージへと転送できなくなる。
【００５１】
クロックスキューによって、クロックＢ（ｌｅａｄ）が発生する場合、トランスペアレントラッチ回路１１６は、クロックＢ（ｌｅａｄ）の反転信号がローレベルからハイレベルに遷移するエッジ６０Ｂまでの間、出力データＢ０’の状態遷移を保留する。その結果、フルラッチ回路１０８において、クロックＡの立ち上がりエッジ５８後のホールドタイムＴｈの条件を満たすことになる。また、図２（ｂ）に示すような従来の遅延回路を用いた手法のように、セットアップタイムマージンを犠牲にすることなく、ホールドタイムの問題を解決することができる。
【００５２】
図３に示す、あるいはその他の実施の形態に係る回路構成によれば、セットアップマージンに大きな影響を及ぼすことなく、クロックスキューの問題を好適に解決することができる。これは、上述の従来技術に比べて大きな利点となる。
【００５３】
本明細書における、上述、あるいは後述の方法あるいは装置は、標準的なデジタル回路、アナログ回路、マイクロプロセッサ、デジタル信号処理装置、その他の既知のプロセッサであって、ソフトウェアプログラム、ファームウェアプログラムを実行可能なもの、プログラム可能なデジタルデバイス、あるいはシステム、さらにこれらの組み合わせなど、公知の技術を用いて実現することができる。これらの公知技術は、現在利用可能な、あるいは将来において開発されるデバイスを含む。
【００５４】
実施の形態にもとづき、本発明を説明したが、実施の形態は、本発明の原理、応用を示しているにすぎないことはいうまでもなく、実施の形態には、請求の範囲に規定された本発明の思想を離脱しない範囲において、多くの変形例や配置の変更が可能であることはいうまでもない。
【図面の簡単な説明】
【００５５】
【図１】組み合わせ論理回路のステージごとにクロック境界を有する従来のデジタルシステムのブロック図である。
【図２】図２（ａ）、（ｂ）は、クロックスキューが存在する場合としない場合の、図１のシステムのクロック信号とデータの有効性の関係を示すタイムチャートである。
【図３】実施の形態に係る、組み合わせ論理回路のステージ間にクロック境界を有するシステムのブロック図である。
【図４】実施の形態に係るトランスペアレントラッチ回路の真理値表である。
【図５】クロックスキューが存在する場合としない場合の、図３のシステムにおける、クロック信号とデータの有効性の関係を示すタイムチャートである。
【符号の説明】
【００５６】
１０  デジタルシステム、  １２  フルラッチ回路、  １４  組み合わせ論理回路、  １６  フルラッチ回路、  １８  組み合わせ論理回路、  ２０  フルラッチ回路、  ２２  遅延回路、  ２４  遅延回路、  １００  デジタルシステム、  １０２  ステージ、  １０４  フルラッチ回路、  １０６  フルラッチ回路、  １０８  フルラッチ回路、  １１０  組み合わせ論理回路、  １１２  組み合わせ論理回路、  １１４  トランスペアレントラッチ回路、  １１６  トランスペアレントラッチ回路。
【図１】
2006344224.tif 000003
【図２】
2006344224.tif 000004
【図３】
2006344224.tif 000005
【図４】
2006344224.tif 000006
【図５】
2006344224.tif 000007