(57)【要約】【課題】キャリーを使用する加減算器を高速化することを可能にするアドレスパターン発生装置を提供する。【解決手段】アドレスパターン発生装置は、パイプライン切換え器ＰＳＷ１〜ＰＳＷ４と、パイプライン切換え制御器ＰＳＣと、Ｘ演算器ＸＣａｌと、Ｙ演算器ＹＣａｌと、レジスタＸ＿Ｒｅｇ、Ｙ＿Ｒｅｇと、フリップフロップＸ＿Ｃａｒｒｙ、Ｙ＿Ｃａｒｒｙとから構成されている。パイプライン切換えコマンドの入力端子はパイプライン切換え制御器ＰＳＣに接続され、パイプライン切換え制御器ＰＳＣはパイプライン切り換え器ＰＳＷ１〜ＰＳＷ４をそれぞれ制御する。【選択図】図１
2008004233.tif 000002
【特許請求の範囲】
【請求項１】
メモリアドレスの演算処理を行うアドレスパターン発生装置において、
第１方向のメモリアドレスの演算コマンド、演算データが入力され、第１方向のメモリアドレスの演算を行う第１の演算手段と、
第２方向のメモリアドレスの演算コマンド、演算データが入力され、第２方向のメモリアドレスの演算を行う第２の演算手段と、
前記第１及び第２の演算手段間のキャリー信号の参照方向に応じて、キャリー信号を参照する方の前記演算手段の演算タイミングを、キャリー信号を発生する方の前記演算手段のキャリー信号発生タイミングに合わせるように、前記第１及び第２の演算手段への入力の遅延量を調整する第１の遅延量調整手段と、
前記第１及び第２の演算手段間のキャリー信号の参照方向に応じて、前記第１及び第２の演算手段による出力のタイミングを合わせるように、前記第１及び第２の演算手段からの出力の遅延量を調整する第２の遅延量調整手段と、
を具備することを特徴とするアドレスパターン発生装置。
【請求項２】
２次元のメモリアドレスの演算処理の内、キャリー信号の発生を想定した演算処理を行うアドレスパターン発生装置において、
第１方向のメモリアドレスの演算コマンド、演算データが入力され、第１方向のメモリアドレスの演算を行う第１の演算手段と、
第１方向のメモリアドレスの演算コマンド、演算データが入力され、第１方向のメモリアドレスでキャリー発生時の演算を行うキャリー有り演算手段と、
第２方向のメモリアドレスの演算コマンド、演算データが入力され、第２方向のメモリアドレスの演算を行う第２の演算手段と、
前記第２の演算手段でキャリーが発生していない時は、前記第１の演算手段の演算結果を出力し、前記第２の演算手段でキャリーが発生した時は、前記キャリー有り演算手段の演算結果を出力する出力手段と、
を具備する事を特徴とするアドレスパターン発生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリデバイス及びＬＳＩ内蔵のメモリをテストするテスタ装置において、メモリのアドレスを演算によって発生させるアドレスパターン発生装置に関する。
【背景技術】
【０００２】
従来技術については、２次元のメモリアドレスを演算によって発生させるため、Ｘアドレス用の演算器と、Ｙアドレス用の演算器とで主に構成される。演算は、現在のＸアドレス、Ｙアドレスの値と、演算用データとの間で、演算用コマンドに従い、ＡＮＤ、ＯＲ等の論理演算、シフト演算、加減算等が実行される。
【０００３】
演算の一部では、メモリアドレスを２次元的にスキャンするために、各々の加減算で発生するキャリーを参照する演算が要求される。具体的には、Ｘアドレスの加減算でキャリーが発生した時のみ加減算を行うような動作及びその逆、またはＸアドレスの加減算でキャリーが発生した時にはＹアドレスの加減算に更に±１を行うような動作が可能な構成となっている（例えば、特許文献１、２参照）。
【０００４】
図１０に、従来技術におけるアドレスパターン発生装置について示す。図１０のアドレスパターン発生装置は、フリップフロップＦＦ１〜ＦＦ４と、レジスタＸ＿Ｒｅｇ、Ｙ＿Ｒｅｇと、Ｘ演算器ＸＣａｌと、Ｙ演算器ＹＣａｌとから構成されている。また、Ｘ演算器ＸＣａｌは、論理演算器ＸＬＣａｌと、シフト演算器ＸＳＣａｌと、加減算器ＸＡＣａｌと、セレクタＸＳｅｌとを有する。Ｙ演算器ＹＣａｌは、論理演算器ＹＬＣａｌと、シフト演算器ＹＳＣａｌと、加減算器ＹＡＣａｌと、セレクタＹＳｅｌとを有する。
【０００５】
Ｘ演算コマンドの入力端は、フリップフロップＦＦ１の入力端に接続され、フリップフロップＦＦ１の出力端は、論理演算器ＸＬＣａｌと、シフト演算器ＸＳＣａｌと、加減算器ＸＡＣａｌと、セレクタＸＳｅｌとにそれぞれ接続されている。また、Ｘ演算データの入力端は、フリップフロップＦＦ２の入力端に接続され、フリップフロップＦＦ２の出力端は、論理演算器ＸＬＣａｌと、加減算器ＸＡＣａｌとにそれぞれ接続されている。
【０００６】
論理演算器ＸＬＣａｌと、シフト演算器ＸＳＣａｌと、加減算器ＸＡＣａｌとはそれぞれセレクタＸＳｅｌに接続され、セレクタＸＳｅｌの出力端はレジスタＸ＿Ｒｅｇの入力端に接続されている。レジスタＸ＿Ｒｅｇの出力端は、Ｘ演算出力の出力端子に接続されると共に、論理演算器ＸＬＣａｌと、シフト演算器ＸＳＣａｌと、加減算器ＸＡＣａｌとの各入力端にそれぞれ接続されている。
【０００７】
Ｙ演算コマンドの入力端は、フリップフロップＦＦ３の入力端に接続され、フリップフロップＦＦ３の出力端は、論理演算器ＹＬＣａｌと、シフト演算器ＹＳＣａｌと、加減算器ＹＡＣａｌと、セレクタＹＳｅｌとにそれぞれ接続されている。また、Ｙ演算データの入力端は、フリップフロップＦＦ４の入力端に接続され、フリップフロップＦＦ４の出力端は、論理演算器ＹＬＣａｌと、加減算器ＹＡＣａｌとにそれぞれ接続されている。
【０００８】
論理演算器ＹＬＣａｌと、シフト演算器ＹＳＣａｌと、加減算器ＹＡＣａｌとはそれぞれセレクタＹＳｅｌに接続され、セレクタＹＳｅｌの出力端はレジスタＹ＿Ｒｅｇの入力端に接続されている。レジスタＹ＿Ｒｅｇの出力端は、Ｙ演算出力の出力端子に接続されると共に、論理演算器ＹＬＣａｌと、シフト演算器ＹＳＣａｌと、加減算器ＹＡＣａｌとの各入力端にそれぞれ接続されている。
【０００９】
加減算器ＹＡＣａｌのキャリー出力端は、加減算器ＸＡＣａｌのキャリー入力端に接続され、加減算器ＸＡＣａｌのキャリー出力端は、加減算器ＹＡＣａｌのキャリー入力端に接続されている。
【００１０】
図１０のアドレスパターン発生装置の動作については、Ｘ演算コマンドの入力端及びＸ演算データの入力端から入力する演算コマンド、演算データに基づき、Ｘ演算器ＸＣａｌで演算を行い、Ｘ演算器ＸＣａｌの加減算器ＸＡＣａｌでキャリーが発生した場合は、Ｙ演算器ＹＣａｌの加減算器ＹＡＣａｌにキャリーが出力され、Ｙ演算器ＹＣａｌの加減算器ＹＡＣａｌでキャリーを参照した演算が行われる。Ｘ演算器ＸＣａｌでの演算結果はセレクタＸＳｅｌを介しレジスタＸ＿Ｒｅｇに出力されて、Ｘ演算出力の端子に出力される。また、Ｙ演算器ＹＣａｌでの演算結果はセレクタＹＳｅｌを介しレジスタＹ＿Ｒｅｇに出力されて、Ｙ演算出力の端子に出力される。
【特許文献１】特開２００２−１９７８９１号公報
【特許文献２】特開平０５−２８１２９９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記のキャリーを使用する加減算器は、通常はＸアドレス用の加減算器のキャリー入力に、Ｙアドレス用の加減算器のキャリーを接続する、またはＸアドレス用の演算データをＹアドレス用の加減算器のキャリーでマスクする等の構成を取っている。この構成では、演算器での演算中にキャリーが発生した場合、もう片方の演算器でキャリー発生用の待ち時間が発生することから、高速動作が難しく、高速化するためには、より微細なプロセスを用いた高速なデバイス等を用いるなどした高価な実現手段をとらなければならなかった。
【００１２】
本発明はかかる課題を解決するためになされたもので、キャリーを使用する加減算器の高速化を可能にするアドレスパターン発生装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は上記の課題を解決するためになされたもので、請求項１に記載の発明は、メモリアドレスの演算処理を行うアドレスパターン発生装置において、第１方向のメモリアドレスの演算コマンド、演算データが入力され、第１方向のメモリアドレスの演算を行う第１の演算手段と、第２方向のメモリアドレスの演算コマンド、演算データが入力され、第２方向のメモリアドレスの演算を行う第２の演算手段と、前記第１及び第２の演算手段間のキャリー信号の参照方向に応じて、キャリー信号を参照する方の前記演算手段の演算タイミングを、キャリー信号を発生する方の前記演算手段のキャリー信号発生タイミングに合わせるように、前記第１及び第２の演算手段への入力の遅延量を調整する第１の遅延量調整手段と、前記第１及び第２の演算手段間のキャリー信号の参照方向に応じて、前記第１及び第２の演算手段による出力のタイミングを合わせるように、前記第１及び第２の演算手段からの出力の遅延量を調整する第２の遅延量調整手段と、を具備することを特徴とするアドレスパターン発生装置である。
【００１４】
また、請求項２に記載の発明は、２次元のメモリアドレスの演算処理の内、キャリー信号の発生を想定した演算処理を行うアドレスパターン発生装置において、第１方向のメモリアドレスの演算コマンド、演算データが入力され、第１方向のメモリアドレスの演算を行う第１の演算手段と、第１方向のメモリアドレスの演算コマンド、演算データが入力され、第１方向のメモリアドレスでキャリー発生時の演算を行うキャリー有り演算手段と、
第２方向のメモリアドレスの演算コマンド、演算データが入力され、第２方向のメモリアドレスの演算を行う第２の演算手段と、前記第２の演算手段でキャリーが発生していない時は、前記第１の演算手段の演算結果を出力し、前記第２の演算手段でキャリーが発生した時は、前記キャリー有り演算手段の演算結果を出力する出力手段と、を具備する事を特徴とするアドレスパターン発生装置である。
【発明の効果】
【００１５】
本発明によれば、キャリーを使用する加減算器を高価な実現手段によらず実現することを可能にするアドレスパターン発生装置を提供することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して本発明の第１の実施形態について説明する。図１は本発明の第１の実施形態によるアドレスパターン発生装置の全体構成を示す構成図である。図１のアドレスパターン発生装置は、パイプライン切換え器ＰＳＷ１〜ＰＳＷ４と、パイプライン切換え制御器ＰＳＣと、Ｘ演算器ＸＣａｌと、Ｙ演算器ＹＣａｌと、レジスタＸ＿Ｒｅｇ、Ｙ＿Ｒｅｇと、フリップフロップＸ＿Ｃａｒｒｙ、Ｙ＿Ｃａｒｒｙとから構成されている。
【００１７】
Ｘ演算コマンド及び演算データの入力端子はパイプライン切り換え器ＰＳＷ１を介し、Ｘ演算器ＸＣａｌに接続されている。Ｘ演算器ＸＣａｌはレジスタＸ＿Ｒｅｇに接続され、レジスタＸ＿Ｒｅｇはパイプライン切り換え器ＰＳＷ２を介してＸ演算出力の出力端子に接続されている。Ｙ演算コマンド及び演算データの入力端子はパイプライン切り換え器ＰＳＷ３を介し、Ｙ演算器ＹＣａｌに接続されている。Ｙ演算器ＹＣａｌはレジスタＹ＿Ｒｅｇに接続され、レジスタＹ＿Ｒｅｇはパイプライン切り換え器ＰＳＷ４を介してＹ演算出力の出力端子に接続されている。
【００１８】
Ｘ演算器ＸＣａｌのＸ演算キャリーの出力端子はフリップフロップＸ＿Ｃａｒｒｙを介して、Ｙ演算器ＹＣａｌに接続され、Ｙ演算器ＹＣａｌのＹ演算キャリーの出力端子はフリップフロップＹ＿Ｃａｒｒｙを介して、Ｘ演算器ＸＣａｌに接続されている。また、パイプライン切換えコマンドの入力端子はパイプライン切換え制御器ＰＳＣに接続され、パイプライン切換え制御器ＰＳＣはパイプライン切り換え器ＰＳＷ１〜ＰＳＷ４にそれぞれ接続されている。フリップフロップＸ＿Ｃａｒｒｙ、Ｙ＿Ｃａｒｒｙは、キャリー転送手段として機能する。
【００１９】
図２は図１のアドレスパターン発生装置の詳細な構成を示す構成図である。図２において、パイプライン切換え器ＰＳＷ１は、フリップフロップＸ＿ＦＦ１〜Ｘ＿ＦＦ３と、セレクタＸ＿ＳＥＬ１と、ＮＯＴ素子Ｎ１とから構成されている。パイプライン切換え器ＰＳＷ２は、フリップフロップＸ＿ＦＦ４、Ｘ＿ＦＦ５と、セレクタＸ＿ＳＥＬ２とから構成されている。パイプライン切換え器ＰＳＷ３は、フリップフロップＹ＿ＦＦ１〜Ｙ＿ＦＦ３と、セレクタＹ＿ＳＥＬ１とから構成されている。パイプライン切換え器ＰＳＷ４は、フリップフロップＹ＿ＦＦ４、Ｙ＿ＦＦ５と、セレクタＹ＿ＳＥＬ２と、ＮＯＴ素子Ｎ２とから構成されている。セレクタＸ＿ＳＥＬ１、Ｘ＿ＳＥＬ２、Ｙ＿ＳＥＬ１、Ｙ＿ＳＥＬ２は、切り換え端子への入力信号が「Ｈ」の時、入力端子１と出力端子とが接続され、「Ｌ」の時、入力端子０と出力端子とが接続される。
【００２０】
Ｘ演算コマンド及び演算データの入力端子はフリップフロップＸ＿ＦＦ１の入力端に接続され、フリップフロップＸ＿ＦＦ１の出力端はフリップフロップＸ＿ＦＦ２の入力端とセレクタＸ＿ＳＥＬ１の入力端子１とに接続されている。また、フリップフロップＸ＿ＦＦ２の出力端はセレクタＸ＿ＳＥＬ１の入力端子０に接続されている。セレクタＸ＿ＳＥＬ１の出力端子はフリップフロップＸ＿ＦＦ３の入力端に接続され、フリップフロップＸ＿ＦＦ３の出力端はＸ演算器ＸＣａｌの入力端子に接続されている。
【００２１】
レジスタＸ＿Ｒｅｇの出力端子はフリップフロップＸ＿ＦＦ４の入力端に接続され、フリップフロップＸ＿ＦＦ４の出力端はフリップフロップＸ＿ＦＦ５の入力端とセレクタＸ＿ＳＥＬ２の入力端子１とに接続されている。また、フリップフロップＸ＿ＦＦ５の出力端はセレクタＸ＿ＳＥＬ２の入力端子０に接続されている。セレクタＸ＿ＳＥＬ２の出力端子はＸ演算出力の出力端子に接続されている。
【００２２】
Ｙ演算コマンド及び演算データの入力端子はフリップフロップＹ＿ＦＦ１の入力端に接続され、フリップフロップＹ＿ＦＦ１の出力端はフリップフロップＹ＿ＦＦ２の入力端とセレクタＹ＿ＳＥＬ１の入力端子１とに接続されている。また、フリップフロップＹ＿ＦＦ２の出力端はセレクタＹ＿ＳＥＬ１の入力端子０に接続されている。セレクタＹ＿ＳＥＬ１の出力端子はＹ＿ＦＦ３の入力端に接続され、フリップフロップＹ＿ＦＦ３の出力端はＹ演算器ＹＣａｌの入力端子に接続されている。
【００２３】
レジスタＹ＿Ｒｅｇの出力端子はフリップフロップＹ＿ＦＦ４の入力端に接続され、フリップフロップＹ＿ＦＦ４の出力端はフリップフロップＹ＿ＦＦ５の入力端とセレクタＹ＿ＳＥＬ２の入力端子１とに接続されている。また、フリップフロップＹ＿ＦＦ５の出力端はセレクタＹ＿ＳＥＬ２の入力端子０に接続されている。セレクタＹ＿ＳＥＬ２の出力端子はＹ演算出力の出力端子に接続されている。
【００２４】
パイプライン切換え制御器ＰＳＣの出力端子は、セレクタＸ＿ＳＥＬ２、Ｙ＿ＳＥＬ１の切り換え端子にそれぞれ接続されている。また、パイプライン切換え制御器ＰＳＣの出力端子は、ＮＯＴ素子Ｎ１を介しセレクタＸ＿ＳＥＬ１の切り換え端子に接続され、ＮＯＴ素子Ｎ２を介しセレクタＹ＿ＳＥＬ２の切り換え端子に接続されている。
【００２５】
図３は、図２のアドレスパターン発生装置によるＹ演算器のキャリーを参照するＸ演算器の演算を行う場合の処理動作を示すタイムチャートである。また図４は、図２のアドレスパターン発生装置によるＸ演算器のキャリーを参照するＹ演算器の演算を行う場合の処理動作を示すタイムチャートである。図３、図４の最上段の波形はクロックタイミングを示すクロック信号である。演算コマンド、演算データの識別を示す処理０〜７は、縦軸の符号が示す各ブロックにおいてタイムチャートに示されたタイミングで処理されている。
【００２６】
次に、処理０の処理動作を例に取り、図２のアドレスパターン発生装置内での処理及び処理データの流れを示す。ここで、パイプライン切換え制御器ＰＳＣ出力のパイプライン切り換えコマンドの信号は「Ｈ」に設定する。図３の１クロック目では、Ｘ演算コマンド及び演算データの入力端子と、Ｙ演算コマンド及び演算データの入力端子とに同タイミングで入力された処理０のデータは、フリップフロップＸ＿ＦＦ１、Ｙ＿ＦＦ１で保持される。ここで、セレクタＹ＿ＳＥＬ１では入力端子１が選択されているので、処理０のデータは同タイミングでセレクタＹ＿ＳＥＬ１から出力される。
【００２７】
２クロック目では、フリップフロップＸ＿ＦＦ１から出力された処理０のデータがフリップフロップＸ＿ＦＦ２で保持され、セレクタＹ＿ＳＥＬ１から出力された処理０のデータがフリップフロップＹ＿ＦＦ３で保持される。３クロック目では、フリップフロップＸ＿ＦＦ２から出力された処理０のデータがフリップフロップＸ＿ＦＦ３に保持される。また、フリップフロップＹ＿ＦＦ３から出力された処理０のデータがＹ演算器ＹＣａｌに入力され、Ｙ演算器ＹＣａｌで演算処理後に、発生したＹ演算キャリーをフリップフロップＹ＿Ｃａｒｒｙで保持する。また、演算後の処理０のデータをレジスタＹ＿Ｒｅｇで保持する。
【００２８】
４クロック目では、フリップフロップＸ＿ＦＦ３から出力された処理０のデータがＸ演算器ＸＣａｌに入力され、フリップフロップＹ＿ＣａｒｒｙからのＹ演算キャリーがＸ演算器ＸＣａｌに入力され、Ｘ演算器ＸＣａｌでキャリーを参照して演算処理を行い、その演算後の処理０のデータをレジスタＸ＿Ｒｅｇで保持する。また、レジスタＹ＿Ｒｅｇから出力された処理０のデータはフリップフロップＹ＿ＦＦ４に保持される。
【００２９】
５クロック目では、レジスタＸ＿Ｒｅｇから出力された処理０のデータはフリップフロップＸ＿ＦＦ４で保持される。ここで、セレクタＸ＿ＳＥＬ２では入力端子１が選択されているので、処理０のデータは同タイミングでセレクタＸ＿ＳＥＬ２から出力されて、Ｘ演算出力の出力端子に処理０のデータが出力される。フリップフロップＹ＿ＦＦ４から出力された処理０のデータはフリップフロップＹ＿ＦＦ５で保持される。そして、フリップフロップＹ＿ＦＦ５から出力された処理０のデータはセレクタＹ＿ＳＥＬ２を介し、Ｙ演算出力の出力端子に出力される。ここで、後段のフリップフロップＸ＿ＦＦ５、Ｙ＿ＦＦ５は演算タイミングの調整のためのものである。
【００３０】
これにより、Ｘ演算器が演算をするときには、Ｙ演算器からのキャリーが揃った状態になっているので、キャリーを参照した演算が待ち時間無く効率的に行える。これにより、演算動作の高速化が可能になる。
【００３１】
尚、図４に示したＸ演算器のキャリーを参照するＹ演算器の演算の場合についても、ＸとＹを入れ換える以外は図３の場合と同様の動作を行う。
【００３２】
次に、図面を参照して本発明の第２の実施形態について説明する。図５は本発明の第２の実施形態によるアドレスパターン発生装置の全体構成を示す構成図である。図５のアドレスパターン発生装置は、図２の構成に、パイプライン切り換えコマンド信号用のフリップフロップＹｔｏＸ＿ＦＦ１〜ＹｔｏＸ＿ＦＦ５を付加した構成である。
【００３３】
また、図２のアドレスパターン発生装置からの変更部分は、パイプライン切換え制御器ＰＳＣの出力端子は、フリップフロップＹｔｏＸ＿ＦＦ１の入力端子に接続され、フリップフロップＹｔｏＸ＿ＦＦ１の出力端子は、フリップフロップＹｔｏＸ＿ＦＦ２の入力端子に接続されている。フリップフロップＹｔｏＸ＿ＦＦ２の出力端子は、ＮＯＴ素子Ｎ１を介しセレクタＸ＿ＳＥＬ１の切り換え端子に接続されると共に、セレクタＹ＿ＳＥＬ１の切り換え端子と、フリップフロップＹｔｏＸ＿ＦＦ３の入力端子とに接続されている。
【００３４】
フリップフロップＹｔｏＸ＿ＦＦ３の出力端子は、フリップフロップＹｔｏＸ＿ＦＦ４の入力端子に接続され、フリップフロップＹｔｏＸ＿ＦＦ４の出力端子は、フリップフロップＹｔｏＸ＿ＦＦ５の入力端子に接続されている。フリップフロップＹｔｏＸ＿ＦＦ５の出力端子は、ＮＯＴ素子Ｎ２を介しセレクタＹ＿ＳＥＬ２の切り換え端子に接続されると共に、セレクタＸ＿ＳＥＬ２の切り換え端子に接続されている。
【００３５】
図６は、図５のアドレスパターン発生装置による処理動作を示すタイムチャートである。図６は不図示の制御部にて下式（１）〜式（８）に示す演算シーケンスを実行したときのタイムチャートである。
０  ＮＯＯＰ  Ｘ＝Ｘ＋１＊ＣＲ  Ｙ＝Ｙ＋１  ＹｔｏＸ      …（１）
１  ＮＯＯＰ  Ｘ＝Ｘ＋１＊ＣＲ  Ｙ＝Ｙ＋１  ＹｔｏＸ      …（２）
２  ＮＯＯＰ  Ｘ＝Ｘ            Ｙ＝Ｙ      ＸｔｏＹ      …（３）
３  ＮＯＯＰ  Ｘ＝Ｘ＋１  Ｙ＝Ｙ＋１＊ＣＲ  ＸｔｏＹ      …（４）
４  ＮＯＯＰ  Ｘ＝Ｘ＋１  Ｙ＝Ｙ＋１＊ＣＲ  ＸｔｏＹ      …（５）
５  ＮＯＯＰ  Ｘ＝Ｘ            Ｙ＝Ｙ      ＹｔｏＸ      …（６）
６  ＮＯＯＰ  Ｘ＝Ｘ＋１＊ＣＲ  Ｙ＝Ｙ＋１  ＹｔｏＸ      …（７）
７  ＮＯＯＰ  Ｘ＝Ｘ＋１＊ＣＲ  Ｙ＝Ｙ＋１  ＹｔｏＸ      …（８）
【００３６】
ここで、式（１）〜式（８）の左の数字０〜７は処理０〜７を示す。「ＮＯＯＰ」は記述された行（この場合、式に相当する）の各コマンドを実行し、次の行（次の式に相当する）に移るシーケンス制御命令である。各コマンドはＸ演算器ＸＣａｌ、Ｙ演算器ＹＣａｌ及びパイプライン切換え制御器ＰＳＣでの処理内容を示している。「Ｘ＝Ｘ＋１＊ＣＲ」はＹ演算でキャリーが発生した時にＸに１を加算することを示し、「Ｘ＝Ｘ」は演算を行わずＸの値を保持することを示し、「ＹｔｏＸ」はＹ演算のキャリーを参照可能であることを示している。また、「Ｙ＝Ｙ＋１＊ＣＲ」はＸ演算でキャリーが発生した時にＹに１を加算することを示し、「Ｙ＝Ｙ」は演算を行わずＹの値を保持することを示し、「ＸｔｏＹ」はＸ演算のキャリーを参照可能であることを示している。
【００３７】
式（３）、（６）の演算動作の停止状態の時には、パイプライン切換え制御器ＰＳＣがパイプラインの切り換えコマンドを切り換える処理を行う。図６のタイミングチャートの内、ＹｔｏＸ（１）はパイプライン切り換えコマンド信号の状態が「Ｈ」である事を示し、ＸｔｏＹ（０）は「Ｌ」である事を示している。
【００３８】
次に、処理０の処理動作を例に取り、図５のアドレスパターン発生装置内での処理及び処理データの流れを示す。ここで、処理０では、パイプライン切換え制御器ＰＳＣ出力のパイプライン切り換えコマンドの信号は「Ｈ」に設定されている。
【００３９】
図６の１クロック目では、Ｘ演算コマンド及び演算データの入力端子と、Ｙ演算コマンド及び演算データの入力端子とに同タイミングで入力された処理０のデータは、フリップフロップＸ＿ＦＦ１、Ｙ＿ＦＦ１で保持され、処理０のデータは同タイミングでセレクタＹ＿ＳＥＬ１から出力される。また、処理０に対応するパイプライン切り換えコマンドの信号ＹｔｏＸ（１）はフリップフロップＹｔｏＸ＿ＦＦ１で保持される。
【００４０】
２クロック目では、フリップフロップＸ＿ＦＦ１から出力された処理０のデータがフリップフロップＸ＿ＦＦ２で保持され、セレクタＹ＿ＳＥＬ１から出力された処理０のデータがフリップフロップＹ＿ＦＦ３で保持される。フリップフロップＹｔｏＸ＿ＦＦ１から出力された信号ＹｔｏＸ（１）はフリップフロップＹｔｏＸ＿ＦＦ２で保持される。信号ＹｔｏＸ（１）はＮＯＴ素子Ｎ１を介しセレクタＸ＿ＳＥＬ１の切り換え端子に入力される。また、信号ＹｔｏＸ（１）はセレクタＹ＿ＳＥＬ１の切り換え端子にも入力される。
【００４１】
３クロック目では、フリップフロップＸ＿ＦＦ２から出力された処理０のデータがフリップフロップＸ＿ＦＦ３に保持される。また、フリップフロップＹ＿ＦＦ３から出力された処理０のデータがＹ演算器ＹＣａｌに入力され、Ｙ演算器ＹＣａｌで演算処理後に、発生したＹ演算キャリーをフリップフロップＹ＿Ｃａｒｒｙで保持する。また、演算後の処理０のデータをレジスタＹ＿Ｒｅｇで保持する。フリップフロップＹｔｏＸ＿ＦＦ２から出力された信号ＹｔｏＸ（１）はフリップフロップＹｔｏＸ＿ＦＦ３で保持される。
【００４２】
４クロック目では、フリップフロップＸ＿ＦＦ３から出力された処理０のデータがＸ演算器ＸＣａｌに入力され、フリップフロップＹ＿ＣａｒｒｙからのＹ演算キャリーがＸ演算器ＸＣａｌに入力され、Ｘ演算器ＸＣａｌでキャリーを参照して演算処理を行い、その演算後の処理０のデータをレジスタＸ＿Ｒｅｇで保持する。また、レジスタＹ＿Ｒｅｇから出力された処理０のデータはフリップフロップＹ＿ＦＦ４に保持される。フリップフロップＹｔｏＸ＿ＦＦ３から出力された信号ＹｔｏＸ（１）はフリップフロップＹｔｏＸ＿ＦＦ４で保持される。
【００４３】
５クロック目では、レジスタＸ＿Ｒｅｇから出力された処理０のデータはフリップフロップＸ＿ＦＦ４で保持される。フリップフロップＹｔｏＸ＿ＦＦ４から出力された信号ＹｔｏＸ（１）はフリップフロップＹｔｏＸ＿ＦＦ５で保持される。信号ＹｔｏＸ（１）はＮＯＴ素子Ｎ１を介しセレクタＸ＿ＳＥＬ１の切り換え端子に入力される。また、信号ＹｔｏＸ（１）はセレクタＹ＿ＳＥＬ１の切り換え端子にも入力される。ここで、セレクタＸ＿ＳＥＬ２では入力端子１が選択されているので、処理０のデータは同タイミングでセレクタＸ＿ＳＥＬ２から出力されて、Ｘ演算出力の出力端子に処理０のデータが出力される。
【００４４】
フリップフロップＹ＿ＦＦ４から出力された処理０のデータはフリップフロップＹ＿ＦＦ５で保持される。そして、フリップフロップＹ＿ＦＦ５から出力された処理０のデータはセレクタＹ＿ＳＥＬ２を介し、Ｙ演算出力の出力端子に出力される。
【００４５】
以降順次、処理１〜７の処理を行っていき、処理１、６、７では上記と同様の処理を行い、処理３、４ではパイプライン切り換えコマンドの信号を「Ｌ」に置き換え、Ｘ演算用のデータラインと、Ｙ演算用のデータラインとの動作内容を入れ換えた状態で上記と同様の処理を行う。
【００４６】
また、処理２、５では、パイプライン切換え制御器ＰＳＣの出力端子からそれぞれパイプライン切り換えコマンドの信号ＸｔｏＹ（０）、ＹｔｏＸ（１）が入力され、クロック毎に、順にフリップフロップＹｔｏＸ＿ＦＦ１〜ＹｔｏＸ＿ＦＦ５に保持されていく。処理２では、４クロック目で、フリップフロップＹｔｏＸ＿ＦＦ２に保持された時、信号ＸｔｏＹ（０）はＮＯＴ素子Ｎ１を介しセレクタＸ＿ＳＥＬ１の切り換え端子に入力されると共に、セレクタＹ＿ＳＥＬ１の切り換え端子に入力される。これにより、セレクタＸ＿ＳＥＬ１は入力端子１の入力信号を出力するよう切り換ると共に、セレクタＹ＿ＳＥＬ１は入力端子０の入力信号を出力するよう切り換る。これにより６クロック目で、Ｙ演算器は処理３のデータをＸ演算器のキャリーを参照して行うことができる。
【００４７】
また、７クロック目で、フリップフロップＹｔｏＸ＿ＦＦ５に保持された時には、信号ＸｔｏＹ（０）はＮＯＴ素子Ｎ２を介しセレクタＹ＿ＳＥＬ２の切り換え端子に入力されると共に、セレクタＸ＿ＳＥＬ２の切り換え端子に入力される。これにより、セレクタＹ＿ＳＥＬ２は入力端子１の入力信号を出力するよう切り換ると共に、セレクタＸ＿ＳＥＬ２は入力端子０の入力信号を出力するよう切り換る。よって、Ｘ演算出力で出力されるデータとＹ演算出力で出力されるデータの出力タイミングを同一にする事ができる。
【００４８】
処理５では、フリップフロップＹｔｏＸ＿ＦＦ２、ＹｔｏＸ＿ＦＦ５に保持された時、信号ＹｔｏＸ（１）について同様の処理を行う。７クロック目で、フリップフロップＹｔｏＸ＿ＦＦ２に保持された時、セレクタＸ＿ＳＥＬ１は入力端子０の入力信号を出力するよう切り換ると共に、セレクタＹ＿ＳＥＬ１は入力端子１の入力信号を出力するよう切り換る。これにより、９クロック目で、Ｘ演算器は処理６のデータをＹ演算器のキャリーを参照して行うことができる。また、１０クロック目でフリップフロップＹｔｏＸ＿ＦＦ５に保持された時、セレクタＹ＿ＳＥＬ２は入力端子０の入力信号を出力するよう切り換ると共に、セレクタＸ＿ＳＥＬ２は入力端子１の入力信号を出力するよう切り換る。よって、Ｘ演算出力で出力されるデータとＹ演算出力で出力されるデータの出力タイミングを同一にする事ができる。処理２、５では、Ｘ演算器ＸＣａｌ、Ｙ演算器ＹＣａｌでの演算は行われない。
【００４９】
このように、パイプライン切り換えコマンド信号用のフリップフロップを付加することで、連続して処理が入力されるアドレスパターン発生装置で、処理毎にキャリーの参照の方向を、動的に切り換え可能にする事ができる。
【００５０】
次に、図面を参照して本発明の第３の実施形態について説明する。図７は本発明の第３の実施形態によるアドレスパターン発生装置の全体構成を示す構成図である。図７のアドレスパターン発生装置は、図１０のアドレスパターン発生装置の構成に、セレクタＸＳｅｌＡ、ＹＳｅｌＡと、ＡＮＤ素子Ａ１、Ａ２と、キャリー有り加減算デコード手段Ｄｅｃ１、Ｄｅｃ２と、キャリー無し加減算器ＸＡＣａｌ１、ＹＡＣａｌ１と、キャリー有り加減算器ＸＡＣａｌ２、ＹＡＣａｌ２とを付加したものである。
【００５１】
また、図１０のアドレスパターン発生装置からの変更部分は、フリップフロップＦＦ１の出力端子が、キャリー無し加減算器ＸＡＣａｌ１と、キャリー有り加減算器ＸＡＣａｌ２との各入力端子に接続され、キャリー無し加減算器ＸＡＣａｌ１の出力端子はセレクタＸＳｅｌＡの入力端子０に接続され、キャリー有り加減算器ＸＡＣａｌ２の出力端子はセレクタＸＳｅｌＡの入力端子１に接続されている。また、セレクタＸＳｅｌＡの出力端子は、セレクタＸＳｅｌの入力端子に接続されている。また、レジスタＸ＿Ｒｅｇの出力端子は、キャリー無し加減算器ＸＡＣａｌ１と、キャリー有り加減算器ＸＡＣａｌ２との各入力端子に接続されている。
【００５２】
図７のアドレスパターン発生装置の動作については、Ｘ演算コマンドがフリップフロップＦＦ１に入力され、Ｘ演算データがフリップフロップＦＦ２に入力され、入力されたＸ演算コマンドとＸ演算データとに基づきキャリー無し加減算器ＸＡＣａｌ１と、キャリー有り加減算器ＸＡＣａｌ２とで並行して演算を行っている。ここでは、セレクタＸＳｅｌＡの０端子に入力された演算結果が出力され、セレクタＸＳｅｌ、レジスタＸＲｅｇを介してＸ演算出力に出力される。
【００５３】
また、Ｙ演算コマンドがフリップフロップＦＦ３に入力され、Ｙ演算データがフリップフロップＦＦ４に入力され、入力されたＹ演算コマンドとＹ演算データとに基づきキャリー無し加減算器ＹＡＣａｌ１と、キャリー有り加減算器ＹＡＣａｌ２とで並行して演算を行っている。ここでは、セレクタＹＳｅｌＡの０端子に入力された演算結果が出力され、セレクタＹＳｅｌ、レジスタＹＲｅｇを介してＹ演算出力に出力される。
【００５４】
キャリー有り加減算デコード手段Ｄｅｃ１は、Ｙ演算コマンドに基づきＡＮＤ素子Ａ１に信号を出力している。Ｘ演算器ＸＣａｌでのキャリーをＹ演算器ＹＣａｌで参照した演算を行う場合は「Ｈ」を出力し、行わない場合は「Ｌ」を出力する。
キャリー有り加減算デコード手段Ｄｅｃ２は、Ｘ演算コマンドに基づきＡＮＤ素子Ａ２に信号を出力している。Ｙ演算器ＹＣａｌでのキャリーをＸ演算器ＸＣａｌで参照した演算を行う場合は「Ｈ」を出力し、行わない場合は「Ｌ」を出力する。
【００５５】
ここで、Ｘ演算キャリーがなしであり、キャリー有り加減算デコード手段Ｄｅｃ２が「Ｈ」の場合についてＹ演算キャリーが発生した時について示す。Ｙ演算器ＹＣａｌでキャリーが発生した場合、Ｘ演算キャリーがないので、キャリー無し加減算器ＹＡＣａｌ１からＡＮＤ素子Ａ２にキャリーが出力される。ＡＮＤ素子Ａ２からの信号を入力したセレクタＸＳｅｌでは端子１に入力された演算結果が出力され、セレクタＸＳｅｌ、レジスタＸＲｅｇを介してＸ演算出力にキャリーありのＸ演算結果が出力される。
【００５６】
このように、加減算器を複数用意して、並列演算させていて、一方の演算器でキャリーが発生した時に、その発生したキャリーを参照した演算ができるようにすることで、演算器の高速動作が可能となる。
【００５７】
次に、図面を参照して本発明の第３の実施形態の第１の変形例について説明する。図８は本発明の第３の実施形態の第１の変形例によるアドレスパターン発生装置の構成を示す構成図である。図８のアドレスパターン発生装置は、演算器Ｃａｌと、レジスタＲｅｇとから構成され、演算器Ｃａｌは論理演算器ＬＣａｌと、シフト演算器ＳＣａｌと、セレクタＳｅｌＡ、ＳｅｌＢ、ＳｅｌＣと、ＡＮＤ素子Ａと、キャリー有り加減算デコード手段Ｄｅｃと、キャリー無し加減算器ＡＣａｌ１と、キャリー有り加減算器ＡＣａｌ２とから構成されている。
【００５８】
演算コマンドの入力端子は、セレクタＳｅｌＡの切り換え端子に接続されると共に、論理演算器ＬＣａｌと、シフト演算器ＳＣａｌと、キャリー無し加減算器ＡＣａｌ１と、キャリー有り加減算器ＡＣａｌ２との各入力端子に接続されている。演算データの入力端子は、論理演算器ＬＣａｌと、キャリー無し加減算器ＡＣａｌ１と、キャリー有り加減算器ＡＣａｌ２との各入力端子に接続されている
【００５９】
キャリー無し加減算器ＡＣａｌ１はセレクタＳｅｌＢの入力端子０に接続され、キャリー有り加減算器ＡＣａｌ２とはセレクタＳｅｌＢの入力端子１に入力接続されている。また、キャリー無し加減算器ＡＣａｌ１はセレクタＳｅｌＣの入力端子０に接続され、キャリー有り加減算器ＡＣａｌ２とはセレクタＳｅｌＣの入力端子１に接続されている。
【００６０】
セレクタＳｅｌＢの出力端子と、論理演算器ＬＣａｌの出力端子と、シフト演算器ＳＣａｌの出力端子とはセレクタＳｅｌＡの入力端子にそれぞれ接続されている。セレクタＳｅｌＡの出力端子はレジスタＲｅｇの入力端子に接続され、レジスタＲｅｇの出力端子は演算出力の出力端子と、論理演算器ＬＣａｌと、シフト演算器ＳＣａｌと、キャリー無し加減算器ＡＣａｌ１と、キャリー有り加減算器ＡＣａｌ２との各入力端子に接続されている。
【００６１】
キャリー出力側演算コマンドの入力端子は、キャリー有り加減算デコード手段Ｄｅｃの入力端子に接続されている。キャリー有り加減算デコード手段Ｄｅｃの出力端子とセレクタＳｅｌＣの出力端子とがＡＮＤ素子Ａに入力端子にそれぞれ接続され、ＡＮＤ素子Ａの出力端子はキャリー出力の端子に接続されている。またキャリー入力の端子がセレクタＳｅｌＢ、ＳｅｌＣのそれぞれの切り換え端子に接続されている。
【００６２】
図８のアドレスパターン発生装置の動作については、キャリーが発生しない時の動作は図７のアドレスパターン発生装置と同様である。キャリーが発生した場合は、入力されるキャリー信号によってセレクタＳｅｌＣの経路を切り換える。これにより、入力される他の演算器でのキャリー信号によって、演算器のキャリー出力の可否を選択する。この構成によれば、使用方法に応じた演算方法を選択可能な演算器を実現することが可能になる。
【００６３】
尚、図９のように、複数のＸ演算器、Ｙ演算器を持ち、各々のキャリー入力に他の演算器が出力するキャリーの内のどれを入力するかを、演算コマンドに応じて、任意に選べるような構成を取るようにしても良い。これにより、例えばＸＡ演算器でのキャリーを参照してＹＡ演算器の演算をする、更にＹＡ演算器のキャリーを参照してＸＢ演算器の演算をする等の、様々な組み合わせの演算を実現する事が可能となる。
【図面の簡単な説明】
【００６４】
【図１】本発明の第１の実施形態にかかるアドレスパターン発生装置の構成を示す構成図である。
【図２】本発明の第１の実施形態にかかるアドレスパターン発生装置の詳細な構成を示す構成図である。
【図３】Ｙ演算器のキャリーを参照するＸ演算器の演算を行う場合の処理動作を示すタイムチャートである。
【図４】Ｘ演算器のキャリーを参照するＹ演算器の演算を行う場合の処理動作を示すタイムチャートである。
【図５】本発明の第２の実施形態にかかるアドレスパターン発生装置の構成を示す構成図である。
【図６】図５のアドレスパターン発生装置の処理動作を示すタイムチャートである。
【図７】本発明の第３の実施形態にかかるアドレスパターン発生装置の構成を示す構成図である。
【図８】本発明の第３の実施形態の第１の変形例にかかるアドレスパターン発生装置の構成を示す構成図である。
【図９】本発明の第３の実施形態の第２の変形例にかかるアドレスパターン発生装置の構成を示す構成図である。
【図１０】従来技術にかかるアドレスパターン発生装置の構成を示す構成図である。
【符号の説明】
【００６５】
ＰＳＷ１〜ＰＳＷ４…パイプライン切換え器、  ＰＳＣ…パイプライン切換え制御器、  ＸＣａｌ…Ｘ演算器、  ＹＣａｌ…Ｙ演算器、  Ｘ＿Ｒｅｇ、Ｙ＿Ｒｅｇ…レジスタ、  Ｘ＿Ｃａｒｒｙ、Ｙ＿Ｃａｒｒｙ…フリップフロップ
【図１】
2008004233.tif 000003
【図２】
2008004233.tif 000004
【図３】
2008004233.tif 000005
【図４】
2008004233.tif 000006
【図５】
2008004233.tif 000007
【図６】
2008004233.tif 000008
【図７】
2008004233.tif 000009
【図８】
2008004233.tif 000010
【図９】
2008004233.tif 000011
【図１０】
2008004233.tif 000012