(57)【特許請求の範囲】
【請求項１】
データを記憶するための装置であって、
入力および出力を有する第１の順次記憶素子と、前記第１の順次記憶素子はパルスクロック信号に反応するパルストリガー式記憶素子を備える、
入力および出力を有する第２の順次記憶素子と、前記第２の順次記憶素子はフェーズクロック信号に反応するマスタースレーブ記憶素子を備える、
前記第１および前記第２の順次記憶素子の前記入力に結合され、データを受け入れるように構成されたデータ入力と、
前記第１および前記第２の順次記憶素子の前記出力に結合され、前記データを出力するように構成されたデータ出力と、
前記データ入力からの前記データを前記データ出力に渡すために、前記第１および前記第２の順次記憶素子のうちの１つを選択するように構成された選択機構と、前記選択機構は、前記第１の順次記憶素子に関連した第１の伝達ゲートと前記第２の順次記憶素子に関連した第２の伝達ゲートとを備え、
前記パルストリガー式記憶素子および前記マスタースレーブ記憶素子のスレーブステージが前記データを記憶するように構成されたキーパー回路を共用する、装置。
【請求項２】
前記選択機構が、前記パルストリガー式記憶素子のバッファ回路と前記共用キーパー回路との間に挿入された第１の伝達ゲートと、前記マスタースレーブ記憶素子のマスターステージと前記共用キーパー回路との間に挿入された第２の伝達ゲートとを備え、前記第１および前記第２の伝達ゲートの各々は入力および出力を有する、請求項１に記載の装置。
【請求項３】
前記データ出力が、前記第１および前記第２の伝達ゲートの出力を前記共用キーパー回路に接続するワイヤードＯＲ構成で配置された請求項２に記載の装置。
【請求項４】
前記第１の伝達ゲートが前記パルスクロック信号に反応して前記パルストリガー式記憶素子を選択するように構成され、前記第２の伝達ゲートが、前記フェーズクロック信号に反応して前記マスタースレーブ記憶素子を選択するように構成された請求項２に記載の装置。
【請求項５】
前記共用キーパー回路が、それぞれの非アクティブクロックサイクル期間を有する前記パルスクロック信号および前記フェーズクロック信号の両方に反応して動作可能になり、アクティブクロックサイクル期間を有する前記パルスクロック信号および前記フェーズクロック信号のうちの１つに反応して動作不能になる請求項４に記載の装置。
【請求項６】
前記共用キーパー回路が、並列に結合されたバッファおよびトライステートバッファを備えた請求項２に記載の装置。
【請求項７】
前記共用キーパー回路が、並列に結合された２つのトライステートバッファを備えた請求項１に記載の装置。
【請求項８】
データを記憶するための装置であって、
入力および出力を有する第１の順次記憶素子と、前記第１の順次記憶素子はパルスクロック信号に反応するパルストリガー式記憶素子を備える、
入力および出力を有する第２の順次記憶素子と、前記第２の順次記憶素子はフェーズクロック信号に反応するマスタースレーブ記憶素子を備える、
前記第１および前記第２の順次記憶素子の前記入力に結合され、データを受け入れるように構成されたデータ入力と、
前記第１および前記第２の順次記憶素子の前記出力に結合され、前記データを出力するように構成されたデータ出力と、
前記データ入力からの前記データを前記データ出力に渡すために、前記第１および前記第２の順次記憶素子のうちの１つを選択するように構成された選択機構と、前記選択機構は、前記第１の順次記憶素子に関連した第１の伝達ゲートと前記第２の順次記憶素子に関連した第２の伝達ゲートと、
テストモードで動作可能になっているとき、テストデータを前記マスタースレーブ記憶素子に渡し、非テストモードで動作可能になっているとき、機能的なデータを前記マスタースレーブ記憶素子に渡すように構成された回路と、を備えた装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概して順次記憶素子に関し、詳細には、デュアルパスマルチモード順次記憶素子にデータを記憶することに関する。
【背景技術】
【０００２】
ハイパフォーマンス集積回路、特にマイクロプロセッサは、一般的に様々な動作モード、例えば、ハイパフォーマンスモード、低電力モード、スタンバイモード、またはテストモードなどを提供する。マイクロプロセッサは、タイミング重視のアプリケーションを処理するときはハイパフォーマンスモードで動作できる。いくつかのマイクロプロセッサは、タイミング重視のアプリケーションに関連した命令を実行するとき、パフォーマンスを向上させるためのパルストリガー式記憶素子、例えば、パルストリガー式のラッチ、レジスタ、またはフリップフロップを組み込んでいる。例えば、パイプラインステージ間でデータ転送速度を向上させるために、命令実行パイプライン全体にわたってパルストリガー式記憶素子が散在していることがある。パルストリガー式記憶素子は、パルスクロック信号、すなわち、クロック期間の半分より小さいパルス幅を有するクロック信号に反応してデータをキャプチャおよび／またはローンチする。
【０００３】
従来のパルストリガー式記憶素子は安定性を犠牲にしてパフォーマンスを得ていた。すなわち、パルストリガー式記憶素子は、記憶素子の入力と出力の間にただ１つのラッチステージが存在するという点で向上したパフォーマンスを提供している。逆に、従来のマスタースレーブ記憶素子は、入力データが出力に到達する前に通過する２つのラッチステージを備えている。しかし、パルストリガー式記憶素子は一般的に多様なプロセスの変化および／または動作条件でマスタースレーブ記憶素子ほど安定していない。
【０００４】
パルストリガー式記憶素子に関連したショートサンプリングウィンドウ（short sampling window）は、パルストリガー式記憶素子がプロセスパラメータおよび／または動作条件における変化に影響を受けやすくする。例えば、パルストリガー式記憶素子は、マスタースレーブ記憶素子に比べて、トランジスタしきい値電圧、チャネルの長さ、ゲート酸化物の厚さなどのプロセスパラメータの変化の影響を受けやすい。さらに、パルストリガー式記憶素子は、動的に変化した電源電圧、電源ドリフト、温度変化、高い放射線フラックス（ソフトエラーを引き起こす）などの動作条件の変化の影響を受けやすい。
【０００５】
さらに、パルストリガー式記憶素子を組み込んだ集積回路、例えば、マイクロプロセッサは、低電力モード、スタンバイモード、またはテストモードなどのタイミングに鈍感なモードで動作できる。タイミングに鈍感な動作モードで構成された場合、マイクロプロセッサに組み込まれたパルストリガー式記憶素子は正しく機能しないことがある。例えば、低電力モードでは、動作電圧が、信頼できる回路動作のためにはパルスが狭すぎるまたは広すぎるほどの値まで下がることがある。
【０００６】
そのようなものとして、パルストリガー式記憶素子は、従来、パフォーマンスが重要で、プロセスパラメータおよび／または動作条件の変化が最小であるか、または許容できる制限内に維持できるアプリケーションで使用されている。別の状況では、マスタースレーブ記憶素子が、従来、多様なプロセスの変化および／または動作条件で信頼できる動作が所望されるアプリケーションで使用されている。
【発明の概要】
【０００７】
本明細書で教示される方法および装置によると、デュアルパスマルチモード順次記憶素子（ＳＳＥ）が提示されている。１つ以上の実施形態において、デュアルパスマルチモードＳＳＥは、第１および第２の順次記憶素子、データ入力、データ出力ならびに選択機構を備えている。第１および第２の順次記憶素子は、それぞれ、入力および出力を有する。データ入力は両方の順次記憶素子の入力に結合され、データを受け入れるように構成される。データ出力は両方の順次記憶素子の出力に結合され、データを出力するように構成される。選択機構は、データ入力からのデータをデータ出力に渡すために、順次記憶素子のうちの１つを選択するように構成される。一実施例では、第１の順次記憶素子はパルストリガー式記憶素子を備えており、第２の順次記憶素子はマスタースレーブ記憶素子を備えている。このように、少なくとも１つの実施形態では、モード入力に反応して、並列で結合されているマスタースレーブ記憶素子およびパルストリガー式記憶素子のうちの１つを選択し、データ入力からのデータを、選択された記憶素子を介してデータ出力に渡すことにより、データはデュアルパスマルチモードＳＳＥに記憶される。
【０００８】
上記のデュアルパスマルチモードＳＳＥの装置および方法に対応して、相補型マイクロプロセッサはクロック制御回路、複数のパイプラインおよびステージ間デュアルパスマルチモードＳＳＥを備えている。クロック制御回路は、パルスクロック信号およびフェーズクロック信号のうちの１つをアクティブにするように構成される。各パイプラインは、ステージ間デュアルパスマルチモードＳＳＥによって分離された複数のステージを有する。各デュアルパスマルチモードＳＳＥは、マスタースレーブ記憶素子、パルストリガー式記憶素子、データ入力、データ出力および選択機構を備えている。マスタースレーブおよびパルストリガー式記憶素子は、それぞれ、入力および出力を有する。データ入力は両方の記憶素子の入力に結合され、データを受け入れるように構成される。データ出力は両方の記憶素子の出力に結合され、データを出力するように構成される。選択機構は、クロック制御回路によってアクティブにされたクロック信号に反応してデータ入力からのデータをデータ出力に渡すために、順次記憶素子のうちの１つを選択するように構成される。
【０００９】
当然のことながら、本開示は上記の特徴に限定されない。当業者は、以下の詳細な説明を読み、添付の図面を見れば、上記以外の特徴も理解できるであろう。
【図面の簡単な説明】
【００１０】
【図１】図１は、デュアルパスマルチモード順次記憶素子（ＳＳＥ）の実施形態のブロック図である。
【図２】図２は、デュアルパスマルチモードＳＳＥの別の実施形態のブロック図である。
【図３】図３は、デュアルパスマルチモードＳＳＥにデータを記憶するためのプログラムロジックを示したロジック流れ図であり。
【図４】図４は、デュアルパスマルチモードＳＳＥのさらに別の実施形態のブロック図である。
【図５】図５は、デュアルパスマルチモードＳＳＥの実施形態の回路図である。
【図６】図６は、デュアルパスマルチモードＳＳＥの別の実施形態の回路図である。
【図７】図７は、デュアルパスマルチモードＳＳＥを組み込んだマイクロプロセッサの実施形態のブロック図である。
【図８】図８は、デュアルパスマルチモードＳＳＥと共に使用するためのクロック制御回路の実施形態のブロック図である。
【図９】図９は、デュアルパスマルチモードＳＳＥによって生成される各種信号を示したタイミング図である。
【発明を実施するための形態】
【００１１】
［詳細な説明］
図１は、デュアルパスマルチモード順次記憶素子（ＳＳＥ）１０の実施形態を例示している。デュアルパスマルチモードＳＳＥ１０は、それぞれがデータを記憶することができる２つの並列パスを有する。動作中、デュアルパスマルチモードＳＳＥ１０のデータ入力からのデータをデータ出力に渡すために並列パスの１つが選択され、つまり動作可能にされる。デュアルパスマルチモードＳＳＥ１０のデータ入力は、ＳＳＥ１０に結合されたロジックまたは回路（図示せず）からデータを受け入れ、つまり受信する。デュアルパスマルチモードＳＳＥ１０のデータ出力は、ＳＳＥ１０によって記憶されていたデータを同じまたは別のロジックまたは回路に対して使用可能にし、つまり出力する。
【００１２】
非限定的実施例において、デュアルパスマルチモードＳＳＥ１０の一方のパスは、マスタースレーブ記憶素子１２、例えば、マスタースレーブのラッチ、フリップフロップまたはレジスタを備えたローパフォーマンスパスである。他方のパスは、パルストリガー式記憶素子１４、例えば、パルストリガー式のラッチ、フリップフロップ、またはレジスタを備えたハイパフォーマンスパスである。デュアルパスマルチモードＳＳＥ１０は、選択機構１６、例えば、モード制御信号（ｍｏｄｅ＿ｃｔｒｌ）に反応して、データがＳＳＥ１０のデータ入力からデータ出力に行くときに通過するパスの１つを動作可能にする、または選択するためのマルチプレクサ回路をさらに組み込んでいる。
【００１３】
デュアルパスマルチモードＳＳＥ１０に関連した潜時は、パルストリガー式記憶素子１４を選択することにより短くなり、したがってＳＳＥ１０のパフォーマンスが最適化される。そのようなものとして、パルストリガー式記憶素子１４は、パフォーマンスが重要な場合、またはプロセスパラメータ（例えば、トランジスタしきい値電圧、チャネルの長さおよびゲート酸化物の厚さ）および／または動作条件（例えば、動的に変化した電源電圧、電源ドリフト、温度変化、放射線フラックスの変化）が、パルストリガー式記憶素子１４が信頼できるように機能すると期待できるような、許容できる制限内にある場合に選択できる。逆に、マスタースレーブ記憶素子１２が選択されると、デュアルパスマルチモードＳＳＥ１０の信頼性が最適化される。すなわち、マスタースレーブ記憶素子１２は多様なプロセスの変化および／または動作条件で信頼できる動作を行うので、マスタースレーブ記憶素子１２は、パルストリガー式記憶素子１４と比較してパフォーマンスは落ちるが、最適化された信頼性を提供する。そのようなものとして、マスタースレーブ記憶素子１２は、パフォーマンスが重要でない場合、またはプロセスパラメータおよび／または動作条件が、パルストリガー式記憶素子１４が信頼できるように機能すると期待できないような、許容できる制限外にある場合に選択できる。このように、デュアルパスマルチモードＳＳＥ１０は、特定のアプリケーション、またはＳＳＥ１０が使用されている環境に反応して、ハイパフォーマンスと最適化された信頼性の間でデータ記憶パスを選択的に切り替えることができる。
【００１４】
パルストリガー式記憶素子１４は、パルスクロック信号（ｐｕｌｓｅ＿ｃｌｋ）、すなわち、クロック期間の半分より小さいパルス幅を有するクロック信号に反応して、デュアルパスマルチモードＳＳＥ１０のデータ入力からのデータを記憶し、データ出力に渡す。パルスクロックが非アクティブのとき、パルストリガー式記憶素子１４は、事実上、動作不能である。同様に、マスタースレーブ記憶素子１２は、フェーズクロック信号（ｐｈａｓｅ＿ｃｌｋ）、すなわち、クロック期間の約半分のパルス幅を有するクロック信号に反応して、ＳＳＥ１０のデータ入力からのデータを記憶し、データ出力に渡す。同じく、フェーズクロックが非アクティブのとき、マスタースレーブ記憶素子１２は、事実上、動作不能である。パルスクロックおよびフェーズクロックは、後で詳しく説明するように、モード制御信号に反応してアクティブにされる。
【００１５】
図２は、選択機構１６が送信または受け渡しゲートを備えたデュアルパスマルチモードＳＳＥ１０の実施形態を例示している。特に、選択機構１６は、デュアルパスマルチモードＳＳＥ１０のパルストリガー式記憶素子１４とデータ出力との間に挿入された第１の伝達ゲート１８およびＳＳＥ１０のマスタースレーブ記憶素子１２とデータ出力との間に挿入された第２の伝達ゲート２０を備えている。
【００１６】
第１の伝達ゲート１８は、パルストリガー式記憶素子１４をトリガーまたはクロックするパルスクロック信号（ｐｕｌｓｅ＿ｃｌｋ）に反応して動作可能になることができる。そのようなものとして、第１の伝達ゲート１８は、パルスクロック信号に反応してパルストリガー式記憶素子１４がデュアルパスマルチモードＳＳＥ１０のデータ入力からデータ出力にデータを渡せるようにする。逆に、パルスクロック信号が非アクティブのとき、第１の伝達ゲート１８は動作不能であり、そのため、データはＳＳＥ１０のデータ入力およびデータ出力の間をパルストリガー式記憶素子１４を介して通過できない。別法として、伝達ゲート１８はモード制御信号によって直接制御されてもよい。
【００１７】
第２の伝達ゲート２０は、マスタースレーブ記憶素子１２をトリガーまたはクロックするフェーズクロック信号（ｐｈａｓｅ＿ｃｌｋ）に反応して動作可能になる。そのようなものとして、第２の伝達ゲート２０は、フェーズクロック信号に反応してマスタースレーブ記憶素子１２がデュアルパスマルチモードＳＳＥ１０のデータ入力からデータ出力にデータを渡せるようにする。フェーズクロック信号が非アクティブのとき、第２の伝達ゲート２０は動作不能であり、そのため、データはＳＳＥ１０のデータ入力およびデータ出力の間をマスタースレーブ記憶素子１２を介して通過できない。別法として、第２の伝達ゲート２０はモード制御信号によって直接制御されてもよい。
【００１８】
さらに、伝達ゲート１８、２０の出力は、デュアルパスマルチモードＳＳＥ１０のデータ出力にワイヤードＯＲ構成で結合される。そのようなものとして、伝達ゲート１８、２０の出力は論理的にドット接続されて、または組み合わされて１つの出力信号を形成し、そのため、ワイヤードＯＲ構成に関連した潜時によって、ＳＳＥ１０に関連した全体の遅延がごくわずか増大する。
【００１９】
上記を念頭に置いて、図３はデュアルパスマルチモードＳＳＥ１０内にデータを記憶するための、対応するプログラムロジックを例示している。処理は、マスタースレーブ記憶素子１２またはパルストリガー式記憶素子１４を選択することから「始まる」（ステップ１００）。一実施例では、デュアルパスマルチモードＳＳＥ１０は、記憶素子１２、１４のうちの１つを選択するためのマルチプレクサ回路を組み込んでいる。別の実施例では、デュアルパスマルチモードＳＳＥ１０は、記憶素子１２、１４のうちの１つを選択するための伝達ゲート１８、２０を組み込んでいる。特定の選択機構に関係なく、入力データはデュアルパスマルチモードＳＳＥ１０のデータ入力から、選択された記憶素子を介してデータ出力に渡される（ステップ１０２）。
【００２０】
図４は、デュアルパスマルチモードＳＳＥ１０が１つ以上のテスト方法と互換性を持たせるための回路をさらに組み込んだＳＳＥ１０の別の実施形態を例示している。一実施例では、デュアルパスマルチモードＳＳＥ１０は、テストマルチプレクサ回路２２をさらに組み込んでいる。テストマルチプレクサ回路２２はＳＳＥ１０のマスタースレーブ記憶素子１２を、テストイネーブル信号（ｔｅｓｔ＿ｅｎ）に反応してテストデータ入力または通常の機能的なデータ入力のどちらかに結合する。テストの間、テストイネーブル信号は、テストマルチプレクサ回路２２にテストデータ入力を選択させる。そのようなものとして、テストデータは、テスト動作中、マスタースレーブ記憶素子１２によってキャプチャおよび／またはローンチされる。非テスト動作中、テストイネーブル信号はデアサート（de-assert）される。それに応じて、テストマルチプレクサ回路２２はマスタースレーブ記憶素子１２を通常の機能的なデータ入力に結合させる。このように、デュアルパスマルチモードＳＳＥ１０は、スキャンベースのテスト方法と完全な互換性を有する。さらに、テストマルチプレクサ回路２２は、マスタースレーブ記憶素子１２を組み込んだＳＳＥ１０のローパフォーマンスパスのみに関連した潜時を長くする。ＳＳＥ１０のローパフォーマンスパスはタイミングに鈍感な動作中、または最適化された信頼性のほうがパフォーマンスの向上よりも重要な場合にアクティブである可能性があるので、テストマルチプレクサ回路２２の潜時が増加されたことによるパフォーマンスの影響は許容できる。そのようなものとして、パルストリガー式記憶素子１４を組み込んだＳＳＥ１０のハイパフォーマンスパスのパフォーマンスは、テストマルチプレクサ回路２２をＳＳＥ１０のローパフォーマンスパスに挿入することによって悪い影響を受けない。
【００２１】
図５は、デュアルパスマルチモードＳＳＥ１０の例示的な回路実施形態を示している。この特定の実施形態において、マスタースレーブ記憶素子１２およびパルストリガー式記憶素子１４はキーパー回路２４を共用している。特に、共用キーパー回路２４は、両方の記憶素子１２、１４のためのデータ記憶素子として機能する。パルストリガー式記憶素子１４は、バッファ回路２６、伝達ゲート２８および共用キーパー回路２４を備えている。マスタースレーブ記憶素子１２は、伝達ゲート３２およびキーパー回路３４を組み込んだマスターステージ３０ならびに伝達ゲート３６および共用キーパー回路２４を組み込んだスレーブステージを備えている。
【００２２】
バッファ３８およびトライステートバッファ４０を備えた共用キーパー回路２４は、順次記憶素子１２、１４のどちらかによってキャプチャされたデータを記憶する。共用キーパー回路２４は、データが記憶素子１２、１４のうちの１つによってキャプチャされた後、動作可能になる。逆に、記憶素子１２、１４のうちの１つがデータをキャプチャするプロセス中の場合、共用キーパー回路２４は動作不能であり、信号の競合は起こらない。特に、記憶素子１２、１４のうちの１つがデータをキャプチャ中の場合、パルスクロック信号（ｐｕｌｓｅ＿ｃｌｋ）またはフェーズクロック信号（ｐｈａｓｅ＿ｃｌｋ）のうちの１つは、アクティブクロックサイクル期間を有している。アクティブクロックサイクル期間中、共用キーパー回路２４は、ｏｒ＿ｃｌｋ信号に反応して動作不能になり、そのため、データキャプチャ中に信号の競合は起こらない。データキャプチャが完了して、対応するクロック信号が非アクティブクロックサイクル期間に入った後、共用キーパー回路２４は、ｏｒ＿ｃｌｋ信号に反応して動作可能になり、そのため、共用キーパー回路２４は新しくキャプチャされたデータを記憶するようになる。
【００２３】
パルストリガー式記憶素子１４はパルスクロック信号（ｐｕｌｓｅ＿ｃｌｋ）に反応してデータをキャプチャする。パルスクロック信号がアクティブのとき、パルストリガー式記憶素子１４のバッファ回路２６はデュアルパスマルチモードＳＳＥ１０の出力ノードを入力データの反転バージョンで駆動する。バッファ回路４２は、ＳＳＥ１０によって出力されたデータ信号が正しい極性を持つように、ＳＳＥ１０の出力ノードにある信号を反転させる。データキャプチャの間、共用キーパー回路２４は、パルスクロック信号のアクティブクロックサイクル期間に反応して動作不能のままであり、そのため、データ入力と共用キーパー回路２４との間の競合は起こらない。入力データがパルストリガー式記憶素子１４によってキャプチャされた後、すなわち、ＳＳＥ１０のデータ出力が適切な信号レベルまでチャージされた後、パルスクロック信号は、現在のクロックサイクル中に非アクティブ期間に移行する。パルスクロックが非アクティブクロックサイクル期間に移行すると、共用キーパー回路２４は、ｏｒ＿ｃｌｋ信号に反応して動作可能になる。このように、共用キーパー回路２４は、パルストリガー式記憶素子１４によって前にキャプチャされたデータを記憶することにより、デュアルパスマルチモードＳＳＥ１０のデータ出力を安定させる。
【００２４】
マスタースレーブ記憶素子１２は、フェーズクロック信号（ｐｈａｓｅ＿ｃｌｋ）に反応してデータをキャプチャする。特定のフェーズクロックサイクルの非アクティブ期間中、マスターステージ３０は入力データの値までチャージされる。すなわち、マスターステージ３０の伝達ゲート３２は、入力データがマスターステージ３２をチャージできるようにし、スレーブステージの伝達ゲート３６は、入力データを共用キーパー回路２４に流れないようにする。さらに、スレーブステージは、共用キーパー回路２４を介して、直前のフェーズクロックサイクル中にマスタースレーブ記憶素子１２によって前にキャプチャされたデータを記憶し続ける。現在のフェーズクロックサイクルがアクティブ期間になると、マスターステージ３０の伝達ゲート３２は動作不能になり、そのため、第１および第２のバッファ４４、４６を備えたマスターステージ３０のキーパー回路３４は、キャプチャされたデータを記憶できる。マスターステージ３０のキーパー回路３４はまた、フェーズクロックサイクルのアクティブ期間中、デュアルパスマルチモードＳＳＥ１０のデータ出力を入力データの反転バージョンで駆動する。フェーズクロック信号がアクティブのとき、共用キーパー回路２４は動作不能である。そのようなものとして、直前のフェーズクロックサイクル中にスレーブステージによって記憶されたデータは、最小の競合で新しくキャプチャされたデータで上書きされる。次のサイクル中にフェーズクロックが非アクティブ期間に移行すると、共用キーパー回路２４は再度動作可能になり、スレーブステージで新しくキャプチャされたデータを記憶する。
【００２５】
したがって、パルストリガー式記憶素子１４に組み込まれた伝達ゲート２８およびマスタースレーブ記憶素子１２のスレーブステージに組み込まれた伝達ゲート３６は、デュアルパスマルチモードＳＳＥ１０選択機構１６として機能する。パルストリガー式記憶素子１４に組み込まれた伝達ゲート２８は、パルスクロック信号が非アクティブのとき、データがＳＳＥ１０のデータ入力とデータ出力の間をパルストリガー式記憶素子１４を介して通過しないようにする。同様に、マスタースレーブ記憶素子１２のスレーブステージに組み込まれた伝達ゲート３６は、フェーズクロック信号が非アクティブのとき、データがＳＳＥ１０のデータ入力とデータ出力の間をマスタースレーブ記憶素子１２を介して通過しないようにする。
【００２６】
デュアルパスマルチモードＳＳＥ１０は、前に説明したようにＳＳＥ１０がスキャンテストに対応できるようにする、３つのバッファ４８〜５２を備えたテストマルチプレクサ回路２２をさらに組み込んでいる。特に、第１および第２のバッファ４８、５０は、テストイネーブル信号（ｔｅｓｔ＿ｅｎ）がアクティブのとき、マスタースレーブ記憶素子１２をテストデータ入力に結合させる。逆に、第２および第３のバッファ５０、５２は、テストイネーブル信号が非アクティブのとき、マスタースレーブ記憶素子１２を機能的なデータ入力に結合させる。
【００２７】
図６は、デュアルパスマルチモードＳＳＥ１０の別の例示的な回路実施形態を示している。この特定の実施形態において、共用キーパー回路２４は、第１および第２のトライステートバッファ５４、５６を備えている。第１のトライステートバッファ５４は、パルスクロック信号（ｐｕｌｓｅ＿ｃｌｋ）がアクティブのとき、ハイインピーダンス状態にされる。同じく、第２のトライステートバッファ５６は、フェーズクロック信号（ｐｈａｓｅ＿ｃｌｋ）がアクティブのとき、ハイインピーダンス状態にされる。トライステートバッファ５４、５６は共に、パルスクロック信号およびフェーズクロック信号の両方が非アクティブのとき、例えば、順次記憶素子１２、１４のうちの１つが入力データをキャプチャした後、記憶素子１２、１４のどちらかによってキャプチャされたデータを記憶する。
【００２８】
ＳＳＥ１０のスレーブステージは、マスターステージ３０から受信された信号を反転させるインバータ５８をさらに組み込んでいる。追加インバータ５８は、マスタースレーブ記憶素子１２に関連した潜時を増大させるが、インバータ５８は、共用キーパー回路２４がデュアルトライステートバッファ５４、５６を備えているとき、ＳＳＥ１０のデータ出力が確実に正しい極性を持つようにする。共用キーパー回路２４がデュアルトライステートバッファ５４、５６を備えているとき、共用キーパー回路２４の動作を制御するためにｏｒ＿ｃｌｋ信号が生成される必要はない。その代わりに、共用キーパー回路２４は、フェーズクロック信号およびパルスクロック信号に反応して直接制御される。さらに、共用キーパー回路２４がデュアルトライステートバッファ５４、５６を備えているとき、パルストリガー式記憶素子１４の出力ノードの総合キャパシタンスは小さくなるので、パルストリガー式記憶素子１４に関連したパフォーマンスは向上する。
【００２９】
図７は、複数のデュアルパスマルチモードＳＳＥ１０Ａ〜１０Ｄを組み込んだマイクロプロセッサ２００の実施形態を例示している。デュアルパスマルチモードＳＳＥ１０Ａ〜１０Ｄは、どちらもクロック生成、制御および分配回路２０２によって生成されるアクティブなフェーズクロック信号（ｐｈａｓｅ＿ｃｌｋ）またはアクティブなパルスクロック信号（ｐｕｌｓｅ＿ｃｌｋ）のどちらかに反応してトリガーまたはクロックされる。クロック生成、制御および分配回路２０２は、外部システムクロック信号（ＳＹＳＣＬＫ）に反応して、例えば、フェーズクロック信号およびパルスクロック信号を生成することにより、マイクロプロセッサ２００の内部タイミングを管理する。クロック生成、制御および分配回路２０２に組み込まれた、またはそれに関連したクロック制御回路２０４は、モード制御信号（ｍｏｄｅ＿ｃｔｒｌ）に反応してクロック生成、制御および分配回路２０２によって生成されたパルスクロック信号またはフェーズクロック信号をアクティブにする。アクティブにされたクロック信号は、前に説明したように、デュアルパスマルチモードＳＳＥ１０Ａ〜１０Ｄをクロックまたはトリガーする。
【００３０】
マイクロプロセッサ２００の外部で、またはマイクロプロセッサ２００によって内部で生成できるモード制御信号は、マイクロプロセッサ２００に関連したプロセスパラメータおよび／または動作条件が、ＳＳＥ１０Ａ〜１０Ｄのパルストリガー式記憶素子が信頼できるように機能すると期待できるような、許容できる制限内にある場合にマイクロプロセッサ２００の潜時を最小化し、パフォーマンスを最適化するための第１の状態に設定される。例えば、モード制御信号は、マイクロプロセッサ２００の通常の機能的な動作中またはスキャンテストのローンチ／キャプチャステージ中、ＳＳＥ１０Ａ〜１０Ｄをクロックするための第１の状態に設定されてよい。逆に、モード制御信号は、低電力／スタンバイモードなどのタイミングに鈍感な動作中、またはマイクロプロセッサ２００のスキャンテスト中、またはプロセスの変化および／または動作条件が、ＳＳＥ１０Ａ〜１０Ｄのパルストリガー式記憶素子が信頼できるように機能すると期待できないような、許容できる制限外にある場合にマイクロプロセッサ２００の信頼性を最適化するための第２の状態に設定される。モード制御信号がどのように生成されるかに関係なく、クロック制御回路２０４は、クロック生成、制御および分配回路２０２によって生成されたクロック信号の１つをアクティブにし、アクティブにされたクロック信号をデュアルパスマルチモードＳＳＥ１０Ａ〜１０Ｄに提供する。一実施形態では、クロック制御回路２０４は、前に説明したように競合を最小にするために、フェーズクロック信号およびパルスクロック信号の非アクティブなクロックサイクル期間中にデュアルパスマルチモードＳＳＥ１０Ａ〜１０Ｄのそれぞれの共用キーパー回路を動作可能にするために信号（ｏｒ＿ｃｌｋ）をアクティブにする。
【００３１】
動作時、マイクロプロセッサ２００は、外部メモリ（図示せず）から命令および対応するデータを検索する。マイクロプロセッサ２００はその命令を実行し、結果を外部メモリに記憶する。非限定的実施例において、マイクロプロセッサ２００は、命令を実行するための複数のパイプライン２０６Ａ〜２０６Ｄを組み込んでいる。各パイプライン２０６Ａ〜２０６Ｄは、１つの命令を、または１つの命令の一部を実行するためのコンビネーションロジック２０８Ａ〜２０８Ｄを組み込んだ複数のステージを組み込んでいる。これらのステージは、デュアルパスマルチモードＳＳＥ１０Ａ〜１０Ｄなどのステージ間デュアルパス順次記憶素子によって分離されている。デュアルパスマルチモードＳＳＥ１０Ａ〜１０Ｄは、クロック制御回路２０４によって提供される、アクティブになったクロック信号に反応して、以前のパイプラインステージからデータをキャプチャし、および／または後続のステージにデータをローンチする。
【００３２】
一実施形態において、メモリキャッシュ２１０、例えば、レベル２キャッシュは、マイクロプロセッサ２００のバスインターフェースロジック（図示せず）を介して外部メモリから検索されたアドレス情報およびデータ情報を記憶する。メモリキャッシュ２１０は、命令情報を命令キャッシュ２１２に転送し、データをデータキャッシュ２１４に転送し、データキャッシュ２１４から受信する。命令ユニット２１６は、マイクロプロセッサ２００のパイプライン２０６Ａ〜２０６Ｄに命令フローの集中制御を提供する。完了ユニット２１８は、命令ユニット２１６によるディスパッチからパイプライン２０６Ａ〜２０６Ｄによる実行の間中、命令の処理を追跡する。各パイプライン２０６Ａ〜２０６Ｄは、命令ユニット２１６から受信した命令をステージ内で実行する。非限定的実施例において、ブランチパイプライン２０６Ａは、命令を実行するための２ステージのコンビネーションロジック２０８Ａを組み込んでおり、浮動小数点パイプライン２０６Ｂは４ステージのコンビネーションロジック２０８Ｂを組み込んでおり、整数パイプライン２０６Ｃは３ステージのコンビネーションロジック２０８Ｃを組み込んでおり、ロード／記憶パイプライン２０６Ｄは２ステージのコンビネーションロジック２０８Ｄを組み込んでいる。当業者は、マイクロプロセッサ２００はスーパーパイプラインであってもよいし、および／またはスーパースカラーであってもよいことが理解できるであろう。そのようなものとして、マイクロプロセッサ２００は命令を実行するための多数のパイプラインを組み込むことができ、各パイプラインは、デュアルパスマルチモードＳＳＥ１０の様々なインスタンスによって分離された、いくつかのステージを組み込むことができる。
【００３３】
図８は、マイクロプロセッサ２００のクロック生成、制御および分配回路２０２に組み込まれた、またはそれに関連したクロック制御回路２０４の実施形態を例示している。次に、モード制御信号（ｍｏｄｅ＿ｃｔｒｌ）に反応してクロック制御回路２０４によってアクティブにされた、または生成された種々の信号のタイミング関係を示す図９を参照してクロック制御回路２０４を説明する。クロック制御回路２０４は、パルスクロック信号（ｐｕｌｓｅ＿ｃｌｋ）をアクティブにする第１の回路２２０、フェーズクロック信号（ｐｈａｓｅ＿ｃｌｋ）をアクティブにする第２の回路２２２、およびデュアルパスマルチモードＳＳＥ１０の共用キーパー回路２４が、図５に示されているように１つのトライステートバッファを備えているとき、共用キーパー回路２４を動作不能にする信号（ｏｒ＿ｃｌｋ）を生成する第３の回路２２４を組み込んでいる。
【００３４】
第１の回路２２０は、ＮＡＮＤロジックゲート２２６およびバッファ２２８を備えている。モード制御信号が第１の状態にあるとき、第１の回路２２０は、マイクロプロセッサ２００のクロック生成、制御および分配回路２０２によって生成されたパルスクロック入力を、パルスクロック信号（ｐｕｌｓｅ＿ｃｌｋ）およびパルスクロック信号の反転バージョンを出力することによりアクティブにする。アクティブにされたパルスクロック信号は、前に説明したように、デュアルパスマルチモードＳＳＥ１０の伝達ゲートを制御する。第２の回路２２２は、ＮＡＮＤロジックゲート２３０および２つのバッファ２３２、２３４を備えている。モード制御信号が第２の状態にあるとき、第２の回路２２２は、マイクロプロセッサ２００のクロック生成、制御および分配回路２０２によって生成されたフェーズクロック入力を、フェーズクロック信号（ｐｈａｓｅ＿ｃｌｋ）およびフェーズクロック信号の反転バージョンを出力することによりアクティブにする。アクティブにされたフェーズクロック信号は、前に説明したように、デュアルパスマルチモードＳＳＥ１０の伝達ゲートを制御する。第１および第２の回路２２０、２２２は、フェーズクロック信号およびパルスクロック信号の両方が同時にアクティブにならないようにしている。そのようなものとして、デュアルパスマルチモードＳＳＥ  １０の１つのパスだけがデータを記憶できるようになる。
【００３５】
第３の回路２２４は、ＮＯＲロジックゲート２３６およびバッファ２３８を備えている。デュアルパスマルチモードＳＳＥ１０の共用キーパー回路２４が、図５に示されているように１つのトライステートバッファを備えているとき、第３の回路２２４は、フェーズクロック入力およびパルスクロック入力に反応して、共用キーパー回路２４を動作可能にする、または動作不能にするための信号（ｏｒ＿ｃｌｋ）およびその信号の反転バージョンを生成する。そのようなものとして、マイクロプロセッサ２００のクロック生成、制御および分配回路２０２によって生成されたフェーズクロック入力またはパルスクロック入力のどちらかがアクティブなクロックサイクル期間を有しているとき、第３の回路２２４によって生成された信号に反応して共用キーパー回路２４は動作不能になり、したがって、前に説明したように競合は最小になる。逆に、フェーズクロック入力およびパルスクロック入力の両方が非アクティブなクロックサイクル期間を有している、または非アクティブになっているとき、共用キーパー回路２４は動作可能になり、したがって、デュアルパスマルチモードＳＳＥ１０のマスタースレーブ記憶素子１２またはパルストリガー式記憶素子１４のどちらかによってキャプチャされたデータを記憶する。
【００３６】
上記の範囲の変形および応用方法を念頭に置いて、本開示は上記の説明によって限定されることはなく、添付の図面によっても限定されることはないことを理解すべきである。その代わりに、本開示は冒頭の「特許請求の範囲」およびそれらの法的均等物によってのみ限定される。  
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。  
［Ｃ１］
データを記憶するための装置であって、
入力および出力を有する第１の順次記憶素子と、
入力および出力を有する第２の順次記憶素子と、
両方の順次記憶素子の前記入力に結合され、データを受け入れるように構成されたデータ入力と、
両方の順次記憶素子の前記出力に結合され、前記データを出力するように構成されたデータ出力と、
前記データ入力からの前記データを前記データ出力に渡すために、前記順次記憶素子のうちの１つを選択するように構成された選択機構と、
を備えた装置。
［Ｃ２］
前記選択機構が、前記順次記憶素子の出力と前記データ出力との間に挿入されたマルチプレクサ回路を備えたＣ１に記載の装置。
［Ｃ３］
前記選択機構が、前記第１の順次記憶素子の出力と前記データ出力との間に挿入された第１の伝達ゲートと、前記第２の順次記憶素子の出力と前記データ出力との間に挿入された第２の伝達ゲートとを備えたＣ１に記載の装置。
［Ｃ４］
前記第１の順次記憶素子がパルストリガー式記憶素子を備え、前記第２の順次記憶素子がマスタースレーブ記憶素子を備えたＣ１に記載の装置。
［Ｃ５］
前記パルストリガー式記憶素子および前記マスタースレーブ記憶素子のスレーブステージが前記データを記憶するためのキーパー回路を共用するＣ４に記載の装置。
［Ｃ６］
前記選択機構が、前記パルストリガー式記憶素子のバッファ回路と前記共用キーパー回路との間に挿入された第１の伝達ゲートと、前記マスタースレーブ記憶素子のマスターステージと前記共用キーパー回路との間に挿入された第２の伝達ゲートとを備えたＣ５に記載の装置。
［Ｃ７］
前記データ出力が、前記伝達ゲートの出力を前記共用キーパー回路に接続するワイヤードＯＲ構成で配置されたＣ６に記載の装置。
［Ｃ８］
前記第１の伝達ゲートがパルスクロック信号に反応して前記パルストリガー式記憶素子を選択するように構成され、前記第２の伝達ゲートが、フェーズクロック信号に反応して前記マスタースレーブ記憶素子を選択するように構成されたＣ６に記載の装置。
［Ｃ９］
前記共用キーパー回路が、非アクティブクロックサイクル期間を有する両方のクロック信号に反応して動作可能になり、アクティブクロックサイクル期間を有する前記クロック信号の１つに反応して動作不能になるＣ８に記載の装置。
［Ｃ１０］
前記共用キーパー回路が、並列に結合されたバッファおよびトライステートバッファを備えたＣ５に記載の装置。
［Ｃ１１］
前記共用キーパー回路が、並列に結合された２つのトライステートバッファを備えたＣ５に記載の装置。
［Ｃ１２］
テストモードで動作可能になっているとき、テストデータを前記マスタースレーブ記憶素子に渡し、非テストモードで動作可能になっているとき、機能的なデータを前記マスタースレーブ記憶素子に渡すように構成された回路をさらに備えたＣ４に記載の装置。
［Ｃ１３］
パルスクロック信号およびフェーズクロック信号のうちの１つをアクティブにするように構成されたクロック制御回路と、  各パイプラインがステージ間デュアルパスマルチモード順次記憶素子によって分離された複数のステージを有し、各デュアルパスマルチモード順次記憶素子が、
入力および出力を有するマスタースレーブ記憶素子と、
入力および出力を有するパルストリガー式記憶素子と、
両方の記憶素子の前記入力に結合され、データを受け入れるように構成されたデータ入力と、
両方の記憶素子の前記出力に結合され、前記データを出力するように構成されたデータ出力と、
前記データ入力からの前記データを前記データ出力に渡すために、前記クロック制御回路によってアクティブにされた前記クロック信号に反応して前記記憶素子のうちの１つを選択するように構成された選択機構と、
を備えた複数のパイプラインと、
を備えたマイクロプロセッサ。
［Ｃ１４］
前記パルストリガー式記憶素子および前記マスタースレーブ記憶素子のスレーブステージが前記データを記憶するためのキーパー回路を共用するＣ１３に記載のマイクロプロセッサ。
［Ｃ１５］
前記選択機構が、前記パルストリガー式記憶素子のバッファ回路と前記共用キーパー回路との間に挿入された第１の伝達ゲートと、前記マスタースレーブ記憶素子のマスターステージと前記共用キーパー回路との間に挿入された第２の伝達ゲートとを備えたＣ１４に記載のマイクロプロセッサ。
［Ｃ１６］
前記データ出力が、前記伝達ゲートの出力を前記共用キーパー回路に接続するワイヤードＯＲ構成で配置されたＣ１５に記載のマイクロプロセッサ。
［Ｃ１７］
前記第１の伝達ゲートが、前記パルスクロック信号に反応して前記パルストリガー式記憶素子を選択するように構成され、前記第２の伝達ゲートが、前記フェーズクロック信号に反応して前記マスタースレーブ記憶素子を選択するように構成されたＣ１５に記載のマイクロプロセッサ。
［Ｃ１８］
前記共用キーパー回路が、非アクティブクロックサイクル期間を有する両方のクロック信号に反応して動作可能になり、アクティブクロックサイクル期間を有する前記クロック信号の１つに反応して動作不能になるＣ１４に記載のマイクロプロセッサ。
［Ｃ１９］
各デュアルパスマルチモード順次記憶素子が、前記マイクロプロセッサがテストモードで動作可能になっているとき、テストデータを前記マスタースレーブ記憶素子に渡し、前記マイクロプロセッサが非テストモードで動作可能になっているとき、機能的なデータを前記マスタースレーブ記憶素子に渡すように構成された回路をさらに備えたＣ１３に記載のマイクロプロセッサ。
［Ｃ２０］
データを記憶する方法であって、
モード入力に反応して、並列に結合されたマスタースレーブ記憶素子およびパルストリガー式記憶素子のうちの１つを選択することと、
データ入力からのデータを、前記選択された記憶素子を介してデータ出力に渡すことと、
を備えた方法。
［Ｃ２１］
前記記憶素子のうちの１つを選択することは、第１の状態にある前記モード入力に反応して前記マスタースレーブ記憶素子を選択することと、第２の状態にある前記モード入力に反応して前記パルストリガー式記憶素子を選択することとを備えたＣ２０に記載の方法。
［Ｃ２２］
前記第２の状態にある前記モード入力に反応して前記マスタースレーブ記憶素子を動作不能にすることと、
前記第１の状態にある前記モード入力に反応して前記パルストリガー式記憶素子を動作不能にすることと、
をさらに備えたＣ２１に記載の方法。
［Ｃ２３］
前記データ入力からの前記データを、前記選択された記憶素子を介して前記データ出力に渡すことは、どちらも前記第１の状態にある前記モード入力に反応して、テスト中にテストデータを前記マスタースレーブ記憶素子に渡すことと、通常の機能的な動作中に機能的なデータを前記マスタースレーブ記憶素子に渡すことと、を備えたＣ２１に記載の方法。
［Ｃ２４］
前記記憶素子のうちの１つを選択することは、第１の状態にある前記モード入力に反応して前記パルストリガー式記憶素子の伝達ゲートを動作可能にすることと、第２の状態にある前記モード入力に反応して前記マスタースレーブ記憶素子の伝達ゲートを動作可能にすることとを備えたＣ２０に記載の方法。
［Ｃ２５］
前記第１の状態にある前記モード入力に反応してパルスクロック信号をアクティブにすることと、
前記第２の状態にある前記モード入力に反応してフェーズクロック信号をアクティブにすることと、
をさらに備えたＣ２４に記載の方法。
［Ｃ２６］
前記パルストリガー式記憶素子の前記伝達ゲートを動作可能にすることは、前記パルストリガー式記憶素子の前記伝達ゲートに前記パルスクロック信号を供給することを備え、前記マスタースレーブ記憶素子の前記伝達ゲートを動作可能にすることは、前記マスタースレーブ記憶素子の前記伝達ゲートに前記フェーズクロック信号を供給することを備えたＣ２５に記載の方法。
［Ｃ２７］
前記クロック信号に反応して前記データ出力を安定させることをさらに含むＣ２５に記載の方法。
［Ｃ２８］
前記データ出力を安定させることは、
非アクティブクロックサイクル期間を有する両方のクロック信号に反応して、前記記憶素子によって共用されるキーパー回路を動作可能にすることと、
アクティブクロックサイクル期間を有する前記クロック信号の１つに反応して前記共用キーパー回路を動作不能にすることと、
を備えたＣ２７に記載の方法。
【図１】
0005631934.tif 000002
【図２】
0005631934.tif 000003
【図３】
0005631934.tif 000004
【図４】
0005631934.tif 000005
【図５】
0005631934.tif 000006
【図６】
0005631934.tif 000007
【図７】
0005631934.tif 000008
【図８】
0005631934.tif 000009
【図９】
0005631934.tif 000010