(57)【特許請求の範囲】
【請求項１】
キャッシュブロックを有するスカラプロセッサ，ベクトルプロセッサ，および，メモリを備えるコンピュータシステムにおいて、
ＶＳＴ命令の実行に起因するフラッシュ処理を行うフラッシュ処理手段と、
ＶＳＴ命令に後続するＬＤ命令のアクセスアドレスが当該ＶＳＴ命令についてのバウンダリ領域の範囲内に入っているか否かをチェックするバウンダリチェック手段と、
ＶＳＴ命令に後続するＬＤ命令の発行時に、当該ＶＳＴ命令についての前記バウンダリチェック手段によるバウンダリチェックの判定結果と前記キャッシュブロックによるキャッシュＨＩＴ／ＭＩＳＳ判定の判定結果とに基づき、「後続ＬＤ命令がキャッシュＨＩＴとなり、かつそのアクセスアドレスがＶＳＴ命令のバウンダリ領域の範囲内に入っている」と判定した場合に、キャッシュＨＩＴからキャッシュＭＩＳＳに変更するように制御する判定手段と、
「後続ＬＤ命令がキャッシュＨＩＴとなり、かつそのアクセスアドレスがＶＳＴ命令のバウンダリ領域の範囲内に入っていない」と判定された場合に、前記判定手段のキャッシュＨＩＴ判定にしたがって後続ＬＤ命令に対するデータを読み出し返却する前記キャッシュブロックと、
を有することを特徴とするベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式。
【請求項２】
スカラプロセッサ，ベクトルプロセッサ，および，メモリを備えるコンピュータシステムのスカラプロセッサにおいて、
キャッシュおよびその制御回路からなり、キャッシュＨＩＴ／ＭＩＳＳ判定を行うキャッシュブロックと、
プロセッサコア部分からの命令を受け付け、ＬＤ命令を受け付けた際に当該ＬＤ命令とアクセスアドレスを同一にする先行ミスリクエストの有無をチェックし、アクセスアドレスが同一の先行ミスリクエストが存在する場合には当該ＬＤ命令の発行を待機させる発行チェック回路と、
ＶＳＴ命令のＳ，Ｄ，ＶＬに基づき、当該ＶＳＴ命令の書き込み範囲を算出し、その範囲内のデータがキャッシュにすでに登録されているか否かを判定し、当該判定で「登録されている」と判断した場合には前記キャッシュブロック上の当該登録部分に対するＶビットをリセットするように前記キャッシュブロックに対してフラッシュ要求を送出するフラッシュ処理回路と、
ＶＳＴ命令のＳ，Ｄ，ＶＬに基づき算出した当該ＶＳＴ命令のバウンダリ領域の範囲を示す情報を保持し、そのバウンダリ領域の範囲内を後続のＬＤ命令がアクセスしているかどうかを判定するバウンダリチェックを前記フラッシュ処理回路における当該ＶＳＴ命令についてのフラッシュ処理が終わるまで実行するバウンダリチェック回路と、
命令を発行する制御を行い、キャッシュＭＩＳＳとなったＬＤ命令をメモリ側に発行するためのデータ取得要求を出力する発行制御回路と、前記キャッシュブロックおよび前記バウンダリチェック回路からの信号に基づく判定で「ＶＳＴ命令の後続ＬＤ命令がキャッシュＨＩＴとなり、かつそのアクセスアドレスが当該ＶＳＴ命令のバウンダリ領域の範囲内に入っている」と判断した場合に、当該後続ＬＤ命令をキャッシュＨＩＴからキャッシュＭＩＳＳに変更するように制御し、当該制御のための指示を前記発行制御回路に出す判定回路と、
「後続ＬＤ命令がキャッシュＨＩＴとなり、かつそのアクセスアドレスがＶＳＴ命令のバウンダリ領域の範囲内に入っていない」と判定された場合に、前記判定手段のキャッシュＨＩＴ判定にしたがって後続ＬＤ命令に対するデータを読み出し返却する前記キャッシュブロックと、
を有することを特徴とするベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式。
【請求項３】
Ｖビットが付加されたアドレスアレーとデータアレーとを備え、ＬＤ命令のアクセスアドレスとアドレスアレー内の各エントリ中のアドレスとの一致判定によりキャッシュＨＩＴ／ＭＩＳＳ判定を行い、その判定結果を示すＨＩＴ信号を出力するキャッシュブロックと、
前記キャッシュブロック内のアドレスアレーのコピーであるフラッシュアドレスアレーを利用して、ＶＳＴ命令のＳ，Ｄ，ＶＬに基づいて当該ＶＳＴ命令の書き込領域を求めた上で前記キャッシュブロック内のアドレスアレーのＶビットに対するフラッシュ処理を行うフラッシュ処理回路と
を有することを特徴とする請求項２記載のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式。
【請求項４】
ＶＳＴ命令のＳ，Ｄ，ＶＬに基づき「バウンダリ領域の下限＝Ｓ」および「バウンダリ領域の上限＝Ｓ＋Ｄ×ＶＬ」という算出式によってバウンダリ領域の範囲を算出する乗算器および加算器と、
前記乗算器および加算器により算出されたバウンダリ領域の範囲の上限および下限を保持するバウンダリ下限レジスタおよびバウンダリ上限レジスタと、
前記バウンダリ下限レジスタおよびバウンダリ上限レジスタにセットされた値によって表されるバウンダリ領域の範囲とＶＳＴ命令に後続するＬＤ命令のアクセスアドレスとの大小比較を行ってその比較結果を示すバウンダリ内判定信号を出力する大小比較器と
を備えるバウンダリチェック回路を有することを特徴とする請求項３記載のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式。
【請求項５】
キャッシュブロックによって生成されたＨＩＴ信号に基づいて「キャッシュＨＩＴであるかキャッシュＭＩＳＳであるか」を認識し、バウンダリチェック回路によって生成されたバウンダリ内判定信号に基づいて「バウンダリ領域の範囲内であるか範囲外であるか」を認識し、「ＶＳＴ命令に後続するＬＤ命令のアクセスアドレスが当該ＶＳＴ命令のバウンダリ領域の範囲内であれば、当該ＬＤ命令がキャッシュにＨＩＴしても、キャッシュからデータを読み出さずにメモリに対してデータ取得要求を発行するような制御」を実現するために、当該制御の際にキャッシュＭＩＳＳの場合と同様にリクエスト発行指示を発行制御回路に対して出力する判定回路を有することを特徴とする請求項４記載のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式。
【請求項６】
判定回路が、キャッシュブロックによって生成されたＨＩＴ信号を入力してその論理否定信号を出力するＮＯＴゲートと、前記ＮＯＴゲートの出力信号とバウンダリチェック回路によって生成されたバウンダリ内判定信号とを入力してそれらの論理和信号を出力するＯＲゲートとによって構成されることを特徴とする請求項５記載のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式。
【請求項７】
先行ミスリクエストについてのミスリクエスト情報を保持するＲＥＱバッファ群と、比較器群と、リトライ要求信号生成回路と、発行抑止回路とを備え、バウンダリ領域の範囲内において同一アドレスに対するＬＤ命令が連続してアクセスされた場合に、キャッシュＨＩＴ／キャッシュＭＩＳＳに関係なく、最初のリクエストについてのみ、メモリに対してリクエストを送出するように制御する発行チェック回路を有することを特徴とする請求項２，請求項３，請求項４，請求項５，または請求項６記載のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スカラプロセッサとベクトルプロセッサとを備えるコンピュータシステムにおいて、ＶＳＴ命令（ベクトルプロセッサからのベクトル方式のストア命令）の実行後に、このＶＳＴ命令に対するフラッシュ（無効化）処理を行っている間に、後続のＬＤ命令（スカラメモリロード命令）が実行された場合に、キャッシュ（ＣＡＣＨＥ。キャッシュメモリ）とメモリ（主記憶）との同期（一致）を保証するためのベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式に関する。
【０００２】
【従来の技術】
従来より、２つ以上の異なるプロセッサから１つのメモリ（例えば、共有メモリ）に対してアクセスが行われる場合に、自プロセッサ内のキャッシュのコヒーレンシを保つために、スヌーピング等の方法が用いられている。これにより、キャッシュ登録データに対応するメモリ側データが他プロセッサにより変更されてしまった場合に、その部分のキャッシュの無効化が行われていた。
【０００３】
スカラプロセッサとベクトルプロセッサとの関係についても同様で、ベクトルプロセッサからメモリにデータを書き込むことにより、スカラプロセッサ内のキャッシュに登録されているデータに対応するメモリ側のデータの領域を書き換える場合が生じると、スカラプロセッサ内のキャッシュの対応する部分を無効化（フラッシュ）する必要がある。
【０００４】
この時、性能的に問題になるのが無効化する領域の算出と、無効化処理時間（フラッシュ処理時間）とである。領域を正確に算出すると余分な部分をフラッシュすることなく、キャッシュのエントリを無駄に捨てることもなく、性能を落とさずにすむ。しかし、領域を正確に算出しようとすると、その分、フラッシュ処理時間が大きくなってしまう。
【０００５】
さて、本発明は、スカラプロセッサとベクトルプロセッサとを持つコンピュータシステム（図２および図３参照）において、スカラプロセッサ内に存在するキャッシュの制御に関するものである。ここで、まず、本発明で出てくる命令（ＬＤ命令およびＶＳＴ命令）について、以下に説明する。
【０００６】
ａ．ＬＤ命令とは、メモリの内容を読み出すためにスカラプロセッサが発行する命令である。ＬＤ命令が発行されると、キャッシュブロック（図１等参照）において、そのＬＤ命令のアクセス対象となるデータがキャッシュに登録されているかどうかの判定が行われる。もし、登録されている場合には、「キャッシュＨＩＴ」として、キャッシュから当該ＬＤ命令に対するデータが読み出される。一方、登録されていない場合には、「キャッシュＭＩＳＳ」として、当該ＬＤ命令については発行制御回路（図１参照）を介し、メモリに対してデータ取得要求（ミスリクエスト）が発行される。したがって、この場合には、ＬＤ命令はメモリからデータを読み出すことになる。
【０００７】
ｂ．ＶＳＴ命令とは、ベクトルプロセッサ内に存在するベクトルレジスタの内容をメモリにブロック単位で書き込む命令である。このため、ＶＳＴ命令には、メモリ上の書き込み開始アドレス（スタートアドレス：Ｓ），スタートアドレスからの書き込み間隔（ディスタンス：Ｄ），および書き込み回数（ベクトルレングス長：ＶＬ）の情報が入っている。ベクトルレジスタの内容は、メモリに対して、そのメモリ上のアドレス「Ｓ」から書き込みが開始され、アドレス「Ｓ＋Ｄ×（ＶＬ−１）」まで書き込みが行われることになる。
【０００８】
ここで、図３を参照して、スカラプロセッサ，ベクトルプロセッサ，およびメモリを含んで構成されるコンピュータシステムにおけるＬＤ命令およびＶＳＴ命令の動作を説明する。
【０００９】
スカラプロセッサ内に存在するキャッシュは、メモリの内容の一部をコピーしたものである。ここで、キャッシュにメモリ内のデータが登録された後に、ＶＳＴ命令が実行された場合には、そのＳ，Ｄ，ＶＬの内容により、図３中の斜線で示しているキャッシュにすでに登録されている部分をＶＳＴ命令により書き込んでしまう場合も発生する。
【００１０】
この場合に、ＶＳＴ命令は、直接ベクトルプロセッサからメモリにデータの書き込みを行っており、スカラプロセッサ内のキャッシュにはデータの書き込みは行われない。このため、キャッシュでは、すでに登録されている（図３中の斜線部分の）データの無効化（フラッシュ）処理を行う必要がある。
【００１１】
ＶＳＴ命令の後続のＬＤ命令が、このＶＳＴ命令で書き込まれた領域を読み出す場合に、キャッシュに登録されていない部分を読み出すのであれば、ＬＤ命令はキャッシュＭＩＳＳとなりメモリに対してデータを取りに行く。この時、メモリ側では、ＶＳＴ命令によるメモリへの書き込みが終了した後に、ＬＤ命令が実行される。このため、ＬＤ命令は、ＶＳＴ命令により書き換わった後の（正しい）値のデータを読み出すことができる。
【００１２】
これに対して、ＶＳＴ命令の後続のＬＤ命令が、図３中の斜線の部分、すなわちキャッシュにすでに登録された部分をＶＳＴ命令が書き換えた領域を読み出す場合には、このＬＤ命令はキャッシュＨＩＴとなりキャッシュからデータを読み出そうとする。しかし、メモリ側では、その部分はＶＳＴ命令により書き換えられてしまうため、そのままキャッシュから読み出そうとすると不正なデータの読み出しを行ってしまうことになる。このため、ＶＳＴ命令の実行によるフラッシュ処理により、その部分のキャッシュ登録部分が無効化されるまで、ＬＤ命令の発行を待つ必要がある。
【００１３】
ちなみに、無効化後にＬＤ命令が実行されると、キャッシュが無効化されているため、キャッシュＭＩＳＳとなり、メモリに対してデータ取得要求が出され、メモリからＶＳＴ命令によって書き換えられた後のデータを読み出すことができる。
【００１４】
上記のように、従来の技術では、フラッシュ処理を行っている間は、キャッシュからデータを読み出すＬＤ命令（スカラＬＤ命令）を実行することができない。そして、このようにＬＤ命令の実行が止まることにより、プロセッサ自体が止まって（ＨＯＬＤして）しまう。
【００１５】
すなわち、従来においては、ＬＤ命令のアクセスアドレスが「先行のＶＳＴ命令によってベクトルレジスタの内容がブロック単位でメモリに書き込まれる領域」（以降、「バウンダリ領域」と呼ぶ）に当たっている場合には、そのＶＳＴ命令に対するフラッシュ処理が終了するまでそのＬＤ命令の発行が抑止されていた。
【００１６】
ここで、従来の技術では、フラッシュ処理速度をいかに上げるかに重点を置いて改善を行なうことにより、ＬＤ命令が止まる時間、つまりプロセッサが止まっている時間をできるだけ短縮するような技術改良が行われていた。
【００１７】
【発明が解決しようとする課題】
上述したように、従来のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式では、ＶＳＴ命令の実行に起因するフラッシュ処理が行われている間には後続のＬＤ命令を実行することができず、ＬＤ命令が止まることにより、プロセッサ自体が止まって（ＨＯＬＤして）しまうという問題点があった。
【００１８】
また、先に述べたように、従来は、フラッシュ処理速度をいかに上げるかに重点を置いて、上記の問題点に対する改善を行なうことにより、ＬＤ命令が止まる時間、つまりプロセッサが止まっている時間をできるだけ短縮するような技術改良が試みられていた。
【００１９】
本発明では、視点を変え、ＶＳＴ命令発行によるフラッシュ処理中において、当該ＶＳＴ命令のバウンダリ領域内にアクセス対象のアドレスが入っている後続のＬＤ命令は全てキャッシュＭＩＳＳとしてメモリ側にミスリクエストを出すようにすることにより、ＬＤ命令を止めずに、さらにその後続の命令を実行することも可能にし、スカラプロセッサとベクトルプロセッサとを備えるコンピュータシステムにおけるプロセッサの命令処理速度の高速化（プロセッサの性能向上）を可能とする。
【００２０】
すなわち、本発明の目的は、上述の点に鑑み、後続のＬＤ命令のアクセスアドレスがＶＳＴ命令のバウンダリ領域に入っている場合に、そのＬＤ命令がキャッシュに対してＭＩＳＳであれば、そのまま発行を行い、またそのＬＤ命令がキャッシュに対してＨＩＴであれば、キャッシュからデータを取り出さず、キャッシュＭＩＳＳに変更して、ミスリクエストを出し、メモリに対してデータを取りに行くことができるベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式を提供することにある。
【００２１】
なお、本発明のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式に対する従来技術に関する特許公報としては、「特開昭６１−２９６４７２号公報」，「特開平０１−２２２３７５号公報」，および「特公平０３−０５３６６７号公報」が存在する。
【００２２】
しかし、上記の各公報に記載された技術と本発明とは、基本的な構成を異にしている。すなわち、本発明は、上記の各公報に記載された技術よりも簡易な構成（後述するような「判定回路」を利用した構成）によって、プロセッサの性能向上を実現している。
【００２３】
具体的には、以下のａ〜ｃに示すような差異がある。
【００２４】
ａ．特開昭６１−２９６４７２号公報に記載された技術（緩衝記憶装置）は、「タグ記憶手段に記憶されている主記憶ブロックアドレス情報に対応して、領域比較回路から出力される領域内アクセス信号を無効化する領域内アクセス信号無効化情報を記憶するための領域内アクセス信号無効化手段」を使用する必要がある。これに対して、本発明はこのような領域内アクセス信号無効化手段に該当する手段を使用する必要のない構成を有している。
【００２５】
ｂ．特開平０１−２２２３７５号公報に記載された技術（緩衝記憶装置）は、「領域チェック手段において領域一致と判定された主記憶アドレス情報の一部を無効化処理期間中、主記憶アドレス情報の一部の有効を表示するＶビットとともに保持し、スカラロード要求に後続するスカラロード要求の主記憶アドレスの一部と比較し、一致がとれた場合にアドレス一致信号を出力し、領域チェック手段からの領域一致信号を抑止するアドレスチェック手段」を使用する必要がある。これに対して、本発明はこのようなアドレスチェック手段に該当する手段を使用する必要のない構成を有している。
【００２６】
ｃ．特公平０３−０５３６６７号公報に記載された技術（情報処理装置）は、「指令回路からのスカラデータロード指令に応答して領域検出回路から領域内検出信号が出力されると、スカラデータロード指令をバッファメモリ回路およびタグ記憶回路をバイパスして主記憶装置に直接送るよう制御するキャッシュ制御回路」というバイパス回路を設けている。これに対して、本発明は、判定回路というはるかに簡単な回路（低コストな回路）で上記のバイパス回路と同等な性能を実現することが可能になる。
【００２７】
なお、特開昭６１−２９６４７２号公報および特開平０１−２２２３７５号公報には、「ＭＩＳＳとなったリクエストがメモリにデータ要求を出している間に、後続の同一アドレスのＬＤリクエストが入ってくると、そのリクエストもメモリに出していたため動作が遅くなる」という当該公報記載の発明に対する従来技術の欠点（本来なら、同一のアドレスであるため、１回のキャッシュ登録だけで済むのに、後続の（余分な）登録データをすでに登録しているキャッシュのブロック上に上書きを重ねていくこととなり、無意味なキャッシュ登録時間が発生してしまうため、データ読み出しが遅れてしまうという欠点）が指摘されている。
【００２８】
これに対して、本発明では、後述する「発行チェック回路」の制御等によって、あるアクセスアドレスのＬＤ命令がメモリに対してリクエストとして送出されている場合に、後続の同一のアドレスにアクセスするＬＤ命令は出さない（待機させる）ような方式としている。すなわち、先行のＬＤリクエストが帰ってくると、そのデータを含むデータブロックがキャッシュに登録されるので、後続の同一アドレス（正確には、当該データブロック内のアドレス）のＬＤ命令は、登録されるまで発行を待たされる。したがって、データがキャッシュに登録された後に再実行されるので、無意味なＬＤ命令を発行せずにすみ（待たせた方が、余分なキャッシュ登録がない分早い時期に読み出せる）、上記公報で言及されているような性能の低下は起こらない。
【００２９】
【課題を解決するための手段】
本発明のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式は、スカラプロセッサ，ベクトルプロセッサ，および，メモリを備えるコンピュータシステムのスカラプロセッサにおいて、キャッシュおよびその制御回路からなり、キャッシュＨＩＴ／ＭＩＳＳ判定を行うキャッシュブロックと、プロセッサコア部分からの命令を受け付け、ＬＤ命令を受け付けた際に当該ＬＤ命令とアクセスアドレスを同一にする先行ミスリクエストの有無をチェックし、アクセスアドレスが同一の先行ミスリクエストが存在する場合には当該ＬＤ命令の発行を待機させる発行チェック回路と、ＶＳＴ命令のＳ，Ｄ，ＶＬに基づき、当該ＶＳＴ命令の書き込み範囲を算出し、その範囲内のデータがキャッシュにすでに登録されているか否かを判定し、当該判定で「登録されている」と判断した場合には前記キャッシュブロック上の当該登録部分に対するＶビットをリセットするように前記キャッシュブロックに対してフラッシュ要求を送出するフラッシュ処理回路と、ＶＳＴ命令のＳ，Ｄ，ＶＬに基づき算出した当該ＶＳＴ命令のバウンダリ領域の範囲を示す情報を保持し、そのバウンダリ領域の範囲内を後続のＬＤ命令がアクセスしているかどうかを判定するバウンダリチェックを前記フラッシュ処理回路における当該ＶＳＴ命令についてのフラッシュ処理が終わるまで実行するバウンダリチェック回路と、命令を発行する制御を行い、キャッシュＭＩＳＳとなったＬＤ命令をメモリ側に発行するためのデータ取得要求を出力する発行制御回路と、前記キャッシュブロックおよび前記バウンダリチェック回路からの信号に基づく判定で「ＶＳＴ命令の後続ＬＤ命令がキャッシュＨＩＴとなり、かつそのアクセスアドレスが当該ＶＳＴ命令のバウンダリ領域の範囲内に入っている」と判断した場合に、当該後続ＬＤ命令をキャッシュＨＩＴからキャッシュＭＩＳＳに変更するように制御し、当該制御のための指示を前記発行制御回路に出す判定回路とを有する。
【００３０】
ここで、上記のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式は、キャッシュブロックによって生成されたＨＩＴ信号に基づいて「キャッシュＨＩＴであるかキャッシュＭＩＳＳであるか」を認識し、バウンダリチェック回路によって生成されたバウンダリ内判定信号に基づいて「バウンダリ領域の範囲内であるか範囲外であるか」を認識し、「ＶＳＴ命令に後続するＬＤ命令のアクセスアドレスが当該ＶＳＴ命令のバウンダリ領域の範囲内であれば、当該ＬＤ命令がキャッシュにＨＩＴしても、キャッシュからデータを読み出さずにメモリに対してデータ取得要求を発行するような制御」を実現するために、当該制御の際にキャッシュＭＩＳＳの場合と同様にリクエスト発行指示を発行制御回路に対して出力する判定回路を備えるように構成することが、望ましい一態様として考えられる。
【００３１】
なお、本発明のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式は、より一般的には、キャッシュブロックを有するスカラプロセッサ，ベクトルプロセッサ，および，メモリを備えるコンピュータシステムにおいて、ＶＳＴ命令の実行に起因するフラッシュ処理を行うフラッシュ処理手段と、ＶＳＴ命令に後続するＬＤ命令のアクセスアドレスが当該ＶＳＴ命令についてのバウンダリ領域の範囲内に入っているか否かをチェック（バウンダリチェック）するバウンダリチェック手段と、ＶＳＴ命令に後続するＬＤ命令の発行時に、当該ＶＳＴ命令についての前記バウンダリチェック手段によるバウンダリチェックの判定結果と前記キャッシュブロックによるキャッシュＨＩＴ／ＭＩＳＳ判定の判定結果とに基づき、「後続ＬＤ命令がキャッシュＨＩＴとなり、かつそのアクセスアドレスがＶＳＴ命令のバウンダリ領域の範囲内に入っている」と判定した場合に、キャッシュＨＩＴからキャッシュＭＩＳＳに変更するように制御する判定手段とを有する構成であると表現することができる。
【００３２】
【発明の実施の形態】
次に、本発明について図面を参照して詳細に説明する。
【００３３】
図１は、本発明の実施の形態に係るベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式の構成を示すブロック図である。
【００３４】
図１を参照すると、本実施の形態に係るベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式は、プロセッサコア部分からのリクエスト（命令）を受け付ける発行チェック回路１１と、ＶＳＴ命令の実行に起因するフラッシュ処理を行うフラッシュ処理回路１２と、キャッシュおよびその制御回路からなるキャッシュブロック１３と、ＶＳＴ命令に後続するＬＤ命令が当該ＶＳＴ命令についてのバウンダリ領域の範囲内に入っているか否かをチェックするバウンダリチェック回路１４と、キャッシュブロック１３からのＨＩＴ信号およびバウンダリチェック回路１４からのバウンダリ内判定信号に基づき発行制御回路１６に対してリクエスト発行指示を出すべきか否かを判定する判定回路１５と、キャッシュＭＩＳＳとなったＬＤ命令をメモリ３０側に発行するデータ取得要求（ミスリクエスト）を出力する制御等の命令発行の制御を行う発行制御回路１６とを含んで構成されている。
【００３５】
図２は、図１に示すベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式の各構成要素と本発明が適用されるコンピュータシステムのスカラプロセッサ１０，ベクトルプロセッサ２０，およびメモリ３０との関係を示すブロック図である。
【００３６】
図２に示すように、図１中の各構成要素は、スカラプロセッサ１０上に実現される。
【００３７】
図３は、先にも言及したように、スカラプロセッサ１０，ベクトルプロセッサ２０，およびメモリ３０の間の命令およびデータの入出力の態様を示すブロック図である。
【００３８】
図４は、図１中の発行チェック回路１１の詳細な構成を示す図である。
【００３９】
発行チェック回路１１は、ＲＥＱバッファ群１１１と、比較器群１１２と、リトライ要求信号生成回路１１３と、発行抑止回路１１４とを含んで構成されている。
【００４０】
図５は、図１中のフラッシュ処理回路１２およびキャッシュブロック１３の詳細な構成を示す図である。
【００４１】
フラッシュ処理回路１２は、キャッシュブロック１３内のアドレスアレー１３１のコピーであるフラッシュアドレスアレー（ＦＡＡ）１２１と、加算器１２２と、比較器１２３とを含んで構成されている。
【００４２】
キャッシュブロック１３は、Ｖビット（Ｖ０，Ｖ１，…，Ｖｎ（ｎは正整数））が付加された各エントリ（ＥＮＴＲＹ０，ＥＮＴＲＹ１，…，ＥＮＴＲＹｎ）を有するアドレスアレー（ＡＡ）１３１と、各データブロック（ＢＬＯＣＫ０，ＢＬＯＣＫ１，…，ＢＬＯＣＫｎ）からなるデータアレー（ＤＡ）１３２と、比較器１３３と、セレクタ１３４とを含んで構成されている。
【００４３】
図６は、図１中のバウンダリチェック回路１４および判定回路１５の詳細な構成を示す図である。
【００４４】
バウンダリチェック回路１４は、乗算器１４１と、加算器１４２と、バウンダリ下限レジスタ１４３と、バウンダリ上限レジスタ１４４と、大小比較器１４５とを含んで構成されている。
【００４５】
判定回路１５は、ＮＯＴゲート１５１と、ＯＲゲート１５２とを含んで構成されている。
【００４６】
次に、図１〜図６を参照して、上記のように構成された本実施の形態に係るベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式の全体の動作について詳細に説明する。
【００４７】
（１）  まず、ＶＳＴ命令実行時における動作について説明する。
【００４８】
ＶＳＴ命令実行時には、当該ＶＳＴ命令は、発行チェック回路１１および発行制御回路１６を通って、ベクトルプロセッサ２０に対して発行される。
【００４９】
それと同時に、当該ＶＳＴ命令は、発行チェック回路１１を通り、フラッシュ処理回路１２およびバウンダリチェック回路１４に入る。
【００５０】
この場合に、フラッシュ処理回路１２およびバウンダリチェック回路１４では、以下のａおよびｂに示すような動作が行われる。
【００５１】
ａ．フラッシュ処理回路１２での動作
フラッシュ処理回路１２は、ＶＳＴ命令のスタートアドレス（Ｓ），ディスタンス（Ｄ），およびベクトルレングス長（ＶＬ）に基づき、当該ＶＳＴ命令の書き込み範囲（メモリ３０上において書き換える領域の範囲）を算出し、当該ＶＳＴ命令によってその範囲内のデータがキャッシュにすでに登録されているかどうかを判定する。
【００５２】
この判定で「登録されている」と判断した場合には、その登録部分に対するキャッシュ上のＶビット（図５参照）をリセット（フラッシュ）するように、キャッシュブロック１３に対してフラッシュ要求（キャッシュ無効化要求）を送出する。
【００５３】
ｂ．バウンダリチェック回路１４での動作
バウンダリチェック回路１４は、ＶＳＴ命令のＳ，Ｄ，ＶＬに基づき算出した当該ＶＳＴ命令の書き込み範囲（バウンダリ領域の範囲）を設定し、その範囲内を後続のＬＤ命令がアクセスしているかどうかのチェック（バウンダリチェック）を実行する。なお、このバウンダリチェックはフラッシュ処理回路１２におけるフラッシュ処理（上記ａ参照）が終わるまで行われ、当該フラッシュ処理が終了するとバウンダリチェック回路１４でのチェック動作は終了する。
【００５４】
（２）  次に、ＶＳＴ命令に後続するＬＤ命令発行時の動作について説明する。
【００５５】
上記のようにして、ＶＳＴ命令の実行によって、フラッシュ処理が実行されてバウンダリが張られている（バウンダリチェックが行われている）場合に、そのＶＳＴ命令に後続するＬＤ命令が発行される際の動作を考える。
【００５６】
先にも述べたように、従来のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式では、ＶＳＴ命令の後続のＬＤ命令は、当該ＶＳＴ命令のバウンダリ領域をアクセスするのであれば、当該ＶＳＴ命令で書き換わるキャッシュ上の領域をアクセスする可能性（バウンダリ領域内をアクセスする後続ＬＤ命令がキャッシュにＨＩＴするとそうなる）があるので、フラッシュ処理が終了するまで発行が抑止される（発行待ち状態となる）。ただし、全ての後続ＬＤ命令の発行をフラッシュ処理の終了まで待つことにすると性能がかなり低下する。このため、ＶＳＴ命令のバウンダリ領域ではないアドレスを読み出すＬＤ命令であれば、フラッシュ処理中であるにもかかわらず発行可能とさせる。
【００５７】
このような制御を実現するために、従来の技術は、バウンダリチェック回路１４においてＶＳＴ命令のＳ，Ｄ，ＶＬによりバウンダリ領域（ＶＳＴ命令により書き換えられる領域）の範囲を算出した上で、後続のＬＤ命令発行時に、当該ＬＤ命令のアドレスがバウンダリ領域の範囲内に入っていなければ当該ＬＤ命令の発行を許可し、バウンダリ領域の範囲内に入っていれば当該ＬＤ命令の発行を抑止していた。
【００５８】
本実施の形態、ひいては本発明は、従来、アクセスアドレスがバウンダリ領域の範囲内に入っていると発行が抑止されていたＬＤ命令を、判定回路１５を用いて、そのまま発行するように制御する。
【００５９】
すなわち、判定回路１５は、キャッシュブロック１３からのＨＩＴ信号（ＬＤ命令のキャッシュＨＩＴ／ＭＩＳＳ判定の判定結果を示す信号であり、キャッシュＨＩＴの場合に「１（ＯＮ）」論理を示す信号）とバウンダリチェック回路１４からのバウンダリ内判定信号（バウンダリチェックの判定結果を示す信号であり、バウンダリ領域の範囲内である場合に「１（ＯＮ）」論理を示す信号）とを入力し、「キャッシュにＨＩＴして（キャッシュＨＩＴとなり）、かつＶＳＴ命令のバウンダリ領域の範囲内に入っているＬＤ命令」に関しては、キャッシュＨＩＴからキャッシュＭＩＳＳに変更することにより、キャッシュからデータを読み出さず、「メモリ３０に対してデータ取得要求を出してメモリ３０からデータを取り込む」ように発行制御回路１６に対して指示（リクエスト発行指示）を送出する。これにより、ＶＳＴ命令により書き換えられるキャッシュ上の領域を後続ＬＤ命令がアクセスするおそれがなくなり、後続ＬＤ命令の発行の抑止を不要にすることができる。
【００６０】
なお、バウンダリ領域の範囲内においてキャッシュＭＩＳＳとなる同一アドレスに対するＬＤ命令が連続してアクセスされた場合には、発行チェック回路１１の制御等により、最初のリクエストについてのみ、メモリ３０に対してリクエスト（ミスリクエスト）が送出される（ここで述べている「同一アドレス」とは、アドレスが完全に一致している場合の他、同一のデータブロックをアクセスするようなアドレスも含まれる）。ここで、以降の同一アドレスに対するＬＤ命令は、最初のＬＤ命令のデータがキャッシュに登録されるまで、スカラプロセッサ１０内において発行を待たされる。そして、最初のＬＤ命令のデータがキャッシュに登録された時点で、後続の同一アドレスのＬＤ命令が実行される。この場合に、当該データは、すでにキャッシュに登録されているので、全てキャッシュから読み出されることになる（キャッシュＨＩＴとなる）。これにより、「無意味なキャッシュ登録時間の発生によるデータ読み出しの遅れ」を回避することができる。
【００６１】
（３）  ここで、ＶＳＴ命令の実行に起因するフラッシュ処理・バウンダリ処理中におけるＬＤ命令発行時の動作を、場合分けをしてさらに詳細に説明する（発行チェック回路１１の動作については図４を参照する）。
【００６２】
Ａ．先行ミスリクエストがない場合
プロセッサコア部分から発行されたＬＤ命令（ＬＤリクエスト）は、発行チェック回路１１に入る。また、このとき、キャッシュブロック１３において、ＨＩＴ／ＭＩＳＳ判定要求に基づき、キャッシュＨＩＴ／ＭＩＳＳ判定（当該ＬＤ命令がキャッシュＨＩＴとなるかキャッシュＭＩＳＳとなるかの判定）が行われる。
【００６３】
発行チェック回路１１では、先行のミスリクエストが存在するか否かの判定（先行ミスリクエスト有無判定）が行われ、この場合には先行ミスリクエストがないため、当該ＬＤ命令（リクエスト）はそのまま発行抑止回路１１４を通り下位ブロックに発行される。
【００６４】
次に、バウンダリチェック回路１４において、当該ＬＤ命令のアクセスアドレスがＶＳＴ命令のバウンダリ領域の範囲内に入っているかどうかの判定（バウンダリ領域内外判定）が行われる。
【００６５】
ここで、上記のキャッシュＨＩＴ／ＭＩＳＳ判定，先行ミスリクエスト有無判定（ここでは、「先行ミスリクエストなし」という判定結果），およびバウンダリ領域内外判定の判定結果に基づき、以下のａ〜ｃに示す場合分けがなされ、下記のような動作が実行される。
【００６６】
ａ．「キャッシュＨＩＴ，先行ミスリクエストなし，バウンダリ領域範囲外」の場合には、キャッシュブロック１３よりキャッシュデータが読み出され、プロセッサコア部分に対して、当該キャッシュデータが当該ＬＤ命令に対するデータとして返却される。
【００６７】
ｂ．「キャッシュＨＩＴ，先行ミスリクエストなし，バウンダリ領域範囲内」の場合には、判定回路１５において、ＭＩＳＳ変換（キャッシュＨＩＴをキャッシュＭＩＳＳに変更する変換）が行われて、ミスリクエスト（データ取得要求）をメモリ３０側に出すように発行制御回路１６に対して指示（リクエスト発行指示）が出される。
【００６８】
ｃ．「キャッシュＭＩＳＳ，先行ミスリクエストなし，バウンダリ領域範囲内または範囲外」の場合には、当該ＬＤ命令は、発行制御回路１６を通り、メモリ３０に対して発行される（ミスリクエストが発行される）。この時、発行されたミスリクエストに関する情報（当該ＬＤ命令のアクセスアドレス等を示すミスリクエスト情報）が、発行チェック回路１１内のＲＥＱバッファ群１１１（図４では、ＲＥＱバッファ０またはＲＥＱバッファ１）に登録される。なお、当該ＬＤ命令のアクセスアドレスがバウンダリ領域の範囲内に入っていてもいなくても、上記動作が行われる。
【００６９】
Ｂ．先行ミスリクエストがある場合
プロセッサコア部分から発行されたＬＤ命令は、発行チェック回路１１に入る。また、このとき、キャッシュブロック１３において、キャッシュＨＩＴ／ＭＩＳＳ判定が行われる。
【００７０】
発行チェック回路１１では、先行ミスリクエスト有無判定が行われ、この場合には先行のミスリクエストがあるため、ＲＥＱバッファ群１１１に入っているそのミスリクエストに対するミスリクエスト情報に基づき、比較器群１１２を用いて、当該ＬＤ命令のアクセスアドレスと当該ミスリクエスト情報中の先行ＬＤ命令のアクセスアドレスとが一致するか否かの判定（アドレス一致判定）が行われる。
【００７１】
また、バウンダリチェック回路１４において、当該ＬＤ命令のアクセスアドレスがＶＳＴ命令のバウンダリ領域の範囲内に入っているかどうかの判定（バウンダリ領域内外判定）が行われる。
【００７２】
ここで、上記のキャッシュＨＩＴ／ＭＩＳＳ判定，先行ミスリクエスト有無判定（ここでは「先行ミスリクエストあり」という判定結果），アドレス一致判定，およびバウンダリ領域内外判定の判定結果に基づき、以下のａ〜ｅに示す場合分けがなされ、下記のような動作が実行される。
【００７３】
ａ．「キャッシュＨＩＴ，先行ミスリクエストあり，アドレス一致なし，バウンダリ領域範囲外」の場合には、キャッシュブロック１３よりキャッシュデータが読み出され、プロセッサコア部分に対して、当該キャッシュデータが当該ＬＤ命令に対するデータとして返却される。
【００７４】
ｂ．「キャッシュＨＩＴ，先行ミスリクエストあり，アドレス一致なし，バウンダリ領域範囲内」の場合には、判定回路１５において、ＭＩＳＳ変換（キャッシュＨＩＴをキャッシュＭＩＳＳに変更する変換）が行われて、ミスリクエスト（データ取得要求）をメモリ３０側に出すように発行制御回路１６に対して指示（リクエスト発行指示）が出される。
【００７５】
ｃ．「キャッシュＨＩＴ，先行ミスリクエストあり，アドレス一致あり，バウンダリ領域範囲内または範囲外」の場合には、リトライ要求信号生成回路１１３によりリクエスト待ち要求信号が生成される。このリクエスト待ち要求信号により、プロセッサコア部分から発行されたＬＤ命令は、キャッシュで受け付けられず、待ちバッファに登録される（当該ＬＤ命令のアクセスアドレスがバウンダリ領域の範囲内に入っていてもいなくても、上記動作となる）。
【００７６】
ｄ．「キャッシュＭＩＳＳ，先行ミスリクエストあり，アドレス一致なし，バウンダリ領域範囲内または範囲外」の場合には、当該ＬＤ命令は、発行制御回路１６を通り、メモリ３０に対して発行される（ミスリクエストが発行される）。この時、発行されたミスリクエストに関する情報（当該ＬＤ命令のアクセスアドレス等を示すミスリクエスト情報）が、発行チェック回路１１内のＲＥＱバッファ群１１１（ＲＥＱバッファ０またはＲＥＱバッファ１の空いている側）に登録される（ＲＥＱバッファ０およびＲＥＱバッファ１が共に空いていない場合には、リクエスト待ち要求信号が生成され、当該ＬＤ命令は待ちバッファに登録される）。なお、当該ＬＤ命令のアクセスアドレスがバウンダリ領域の範囲内に入っていてもいなくても、上記動作が行われる。
【００７７】
ｅ．「キャッシュＭＩＳＳ，先行ミスリクエストあり，アドレス一致あり，バウンダリ領域範囲内または範囲外」の場合には、リトライ要求信号生成回路１１３によりリクエスト待ち要求信号が生成される。このリクエスト待ち要求信号により、プロセッサコア部分から発行されたＬＤ命令は、キャッシュで受け付けられず、待ちバッファに登録される（当該ＬＤ命令のアクセスアドレスがバウンダリ領域の範囲内に入っていてもいなくても、上記動作となる）。
【００７８】
（４）  次に、図５を参照して、図１中のフラッシュ処理回路１２およびキャッシュブロック１３におけるフラッシュ処理要求時の動作を説明する。
【００７９】
ＶＳＴ命令（リクエスト）の発行により、フラッシュ処理回路１２において、スタートアドレス（Ｓ）とディスタンス（Ｄ）とがセットされる。
【００８０】
その後、フラッシュ処理回路１２では、加算器１２２により、フラッシュアドレスアレー１２１にアクセスするアドレスが生成される。このアドレスとしては、Ｓ，Ｓ＋Ｄ，Ｓ＋２Ｄ，…，Ｓ＋（ＶＬ−１）×Ｄが生成される。
【００８１】
上記のアドレスにより、キャッシュブロック１３内のアドレスアレー１３１のコピーであるフラッシュアドレスアレー１２１がアクセスされ、ＶＳＴ命令で書き換えられる領域がキャッシュに登録されているかどうかの判定が比較器１２３を用いて行われる。
【００８２】
この判定で「ＶＳＴ命令により変更される領域内のデータが登録されているエントリがキャッシュ上にある」と判断した場合には、フラッシュ処理回路１２は、キャッシュブロック１３に対してフラッシュ要求（無効化すべきエントリ番号を有する無効化信号による要求）を出す。
【００８３】
キャッシュブロック１３では、このフラッシュ要求により、対応するアドレスアレー１３１中のエントリに対応するＶビットがリセットされる。
【００８４】
これにより、フラッシュ処理の終了後にＬＤ命令が実行されてそのアクセスアドレスがアドレスアレー１３１中の当該エントリのアドレスに一致したとしても、ＶビットがリセットされているためキャッシュＭＩＳＳとなり、メモリ３０からデータが読み出されることになる。
【００８５】
（５）  最後に、図６を参照して、図１中のバウンダリチェック回路１４および判定回路１５の動作について説明する。なお、判定回路１５は、従来技術にはないものであり、本発明で新たに追加されたものである。
【００８６】
バウンダリチェック回路１４では、ＶＳＴ命令の実行により、当該ＶＳＴ命令のスタートアドレス（Ｓ）とディスタンス（Ｄ）とベクトルレングス長（ＶＬ）とが取り込まれ、乗算器１４１および加算器１４２によって、バウンダリ領域の範囲が計算される。この計算は、「バウンダリ領域の下限＝Ｓ」および「バウンダリ領域の上限＝Ｓ＋Ｄ×ＶＬ」の算出式に基づいて行われ、求められた値はバウンダリ下限レジスタ１４３およびバウンダリ上限レジスタ１４４に設定される。
【００８７】
上記のＶＳＴ命令に後続するＬＤ命令が発行されると、大小比較器１４５により、そのアクセスアドレスが上記のバウンダリ領域の範囲内に入っているかどうかが判定され、その判定結果を示すバウンダリ内判定信号が出力される。
【００８８】
判定回路１５は、キャッシュブロック１３によって生成されたＨＩＴ信号と、バウンダリチェック回路１４によって生成されたバウンダリ内判定信号とに基づいて、以下のａ〜ｄに示すような判定・処理を行う。
【００８９】
ａ．「後続のＬＤ命令のアクセスアドレスがバウンダリ領域の範囲外であり、当該ＬＤ命令がキャッシュＨＩＴとなる」と判定すれば、キャッシュからデータが読み出されるように制御する（リクエスト発行指示を出力しないようにする）。
【００９０】
ｂ．「後続のＬＤ命令のアクセスアドレスがバウンダリ領域の範囲外であり、当該ＬＤ命令がキャッシュＭＩＳＳとなる」と判定すれば、発行制御回路１６からメモリ３０に対してデータ取得要求（ミスリクエスト）を発行させるために、発行制御回路１６に対してリクエスト発行指示を出力する。
【００９１】
ｃ．「後続のＬＤ命令のアクセスアドレスがバウンダリ領域の範囲内であり、当該ＬＤ命令がキャッシュＭＩＳＳとなる」と判定すれば、上記のｂの場合と同様に、発行制御回路１６に対してリクエスト発行指示を出力する。
【００９２】
ｄ．「後続のＬＤ命令のアクセスアドレスがバウンダリ領域の範囲内であり、当該ＬＤ命令がキャッシュＨＩＴとなる」と判定すれば、「キャッシュＨＩＴ」にもかかわらず、キャッシュからデータを読み出さずにメモリ３０に対してデータ取得要求を発行するために、発行制御回路１６に対してリクエスト発行指示を出力する。これにより、後続のＬＤ命令のアクセスアドレスがバウンダリ領域の範囲内であれば、当該ＬＤ命令がキャッシュにＨＩＴしても、キャッシュＨＩＴからキャッシュＭＩＳＳへのＭＩＳＳ変換が実現され、メモリ３０に対するデータ取得要求が発行制御回路１６から発行される。
【００９３】
このようにして、本発明では、バウンダリ領域の範囲内に入っている場合には、キャッシュＨＩＴ／キャッシュＭＩＳＳにかかわらず、メモリ３０に対してデータ取得要求が出されることになる。
【００９４】
なお、本実施の形態では、上記の判定・処理が、キャッシュブロック１３によって生成されたＨＩＴ信号を入力してその論理否定信号を出力するＮＯＴゲート１５１と、ＮＯＴゲート１５１の出力信号とバウンダリチェック回路１４によって生成されたバウンダリ内判定信号とを入力してそれらの論理和信号を出力するＯＲゲート１５２とによって実現される。
【００９５】
【発明の効果】
以上説明したように、本発明では、先行するＶＳＴ命令のバウンダリ領域の範囲内に入っていても後続のＬＤ命令の発行を抑止する必要がなくなることにより、スカラプロセッサとベクトルプロセッサとを有するコンピュータシステムにおけるプロセッサの命令処理（実行）速度の高速化（プロセッサの性能向上）を図ることができるという効果が生じる。特に、ベクトル命令を多用するプログラムを実行する際には、その効果は顕著なものとなる。
【００９６】
ここで、図７は、本発明のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式における効果を具体的に説明するための図である。
【００９７】
図７に示す具体例は、ＶＳＴ命令，ＬＤ命令，およびその他の命令（後続命令１，後続命令２，および後続命令３）が入っている命令列がループなっているものである（図７では、２回ループまで示している）。なお、ＬＤ命令は、ＶＳＴ命令の書き込み領域をアクセスするものとする。
【００９８】
図７中の（ａ）に示す従来技術による方式の場合には、フラッシュ処理が終了するまでＶＳＴ命令に後続するＬＤ命令を発行することができないため、さらに後続する命令（後続命令１，後続命令２，および後続命令３）の実行も全て遅くなってしまう。
【００９９】
一方、図７中の（ｂ）に示す本発明適用の場合には、ＶＳＴ命令を発行した直後にＬＤ命令の発行が可能となる。
【０１００】
上記の両者を比較すると、２回目のループ終了まででかなりの実行時間の差（命令実行速度差）が現れていることが明確に分かる。この性能差は、ループ回数が増えるとさらに広がってくる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式の構成を示すブロック図である。
【図２】図１に示すベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式の各構成要素と本発明が適用されるコンピュータシステムのスカラプロセッサ，ベクトルプロセッサ，およびメモリとの関係を示すブロック図である。
【図３】スカラプロセッサ，ベクトルプロセッサ，およびメモリの間の命令およびデータの入出力の態様を示すブロック図である。
【図４】図１中の発行チェック回路の詳細な構成を示す図である。
【図５】図１中のフラッシュ処理回路およびキャッシュブロックの詳細な構成を示す図である。
【図６】図１中のバウンダリチェック回路および判定回路の詳細な構成を示す図である。
【図７】本発明のベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式における効果を具体的に説明するための図である。
【符号の説明】
１０  スカラプロセッサ
１１  発行チェック回路
１２  フラッシュ処理回路
１３  キャッシュブロック
１４  バウンダリチェック回路
１５  判定回路
１６  発行制御回路
２０  ベクトルプロセッサ
３０  メモリ
１１１  ＲＥＱバッファ群
１１２  比較器群
１１３  リトライ要求信号生成回路
１１４  発行抑止回路
１２１  フラッシュアドレスアレー
１２２  加算器
１２３  比較器
１３１  アドレスアレー
１３２  データアレー
１３３  比較器
１３４  セレクタ
１４１  乗算器
１４２  加算器
１４３  バウンダリ下限レジスタ
１４４  バウンダリ上限レジスタ
１４５  大小比較器
１５１  ＮＯＴゲート
１５２  ＯＲゲート
【図１】
0003757768.tif 000002
【図２】
0003757768.tif 000003
【図３】
0003757768.tif 000004
【図４】
0003757768.tif 000005
【図５】
0003757768.tif 000006
【図６】
0003757768.tif 000007
【図７】
0003757768.tif 000008