JP3988144B2 - ベクトル処理装置、及び、追い越し制御回路 - Google Patents

ベクトル処理装置、及び、追い越し制御回路 Download PDF

Info

Publication number
JP3988144B2
JP3988144B2 JP2004047066A JP2004047066A JP3988144B2 JP 3988144 B2 JP3988144 B2 JP 3988144B2 JP 2004047066 A JP2004047066 A JP 2004047066A JP 2004047066 A JP2004047066 A JP 2004047066A JP 3988144 B2 JP3988144 B2 JP 3988144B2
Authority
JP
Japan
Prior art keywords
instruction
vector
store
load
collection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004047066A
Other languages
English (en)
Other versions
JP2005235135A (ja
Inventor
泰昌 斉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2004047066A priority Critical patent/JP3988144B2/ja
Priority to CA002497807A priority patent/CA2497807A1/en
Priority to BR0501160-4A priority patent/BRPI0501160A/pt
Priority to EP05003907A priority patent/EP1569091A3/en
Priority to AU2005200812A priority patent/AU2005200812A1/en
Priority to US11/062,561 priority patent/US7526629B2/en
Priority to KR1020050014924A priority patent/KR100636759B1/ko
Publication of JP2005235135A publication Critical patent/JP2005235135A/ja
Application granted granted Critical
Publication of JP3988144B2 publication Critical patent/JP3988144B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B28WORKING CEMENT, CLAY, OR STONE
    • B28DWORKING STONE OR STONE-LIKE MATERIALS
    • B28D1/00Working stone or stone-like materials, e.g. brick, concrete or glass, not provided for elsewhere; Machines, devices, tools therefor
    • B28D1/14Working stone or stone-like materials, e.g. brick, concrete or glass, not provided for elsewhere; Machines, devices, tools therefor by boring or drilling
    • B28D1/146Tools therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23BTURNING; BORING
    • B23B47/00Constructional features of components specially designed for boring or drilling machines; Accessories therefor
    • B23B47/34Arrangements for removing chips out of the holes made; Chip- breaking arrangements attached to the tool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution

Description

本発明は、ベクトル命令によりロード/ストアを行うベクトル処理装置及び追い越し制御回路に関する。
ベクトル処理装置は、ベクトル命令により主記憶装置をアクセスしてロード/ストアするメモリアクセスを実行する。このメモリアクセスを高速化する技術が特許文献1〜特許文献5に記載されている。
特許文献1に記載されたベクトル処理装置は、メモリアクセスを高速化するために、先行するストア系命令を後続のロード系命令が追い越す制御を行う。このベクトル処理装置では、第1の追い越し判定手段と、第2の追い越し判定手段とを有することを特徴としている。第1の追い越し判定手段は、ソフトウェアが命令語生成時に、先行するストア系命令及び後続のロード系命令のプログラム上でのアドレス領域の重なりを判断して追い越しビットを設定し、追い越しビットを参照して後続のロード系命令の追い越し制御を行う。第2の追い越し判定手段は、ストア系命令及びロード系命令のアドレス領域を計算し、計算したアドレス領域の重なりを参照して追い越し制御を行う。
特許文献2に記載されたベクトルストア命令追い越し制御装置は、メモリアクセスを高速化するために、先行するベクトルストア命令の領域に後続のロード系の命令のアクセス領域が重なっていない場合、後続のロード系命令に先にメモリアクセスを行なわせる。このベクトルストア命令追い越し制御装置は、リクエスト受付手段と、少なくとも一つのベクトルストア命令保持手段と、後続命令保持手段と、アクセス領域計算パイプライン手段と、領域保持手段と、追い越しチェック判定手段と、命令パイプライン保持手段と、選択手段を有することを特徴としている。リクエスト受付手段は、命令発行部から発行されたメモリリクエストを受け付ける。ベクトルストア命令保持手段は、リクエスト受付手段が受け付けたリクエストのうちベクトルストア命令だけを保持する。後続命令保持手段は、ベクトルストア命令を除いた後続の命令を保持する。アクセス領域計算パイプライン手段は、ベクトルストア命令保持手段に保持されているベクトルストア命令と後続命令保持手段に保持されているロード系命令のそれぞれのアドレスの領域計算をパイプラインで行う。領域保持手段は、アクセス領域計算パイプライン手段によりアドレスの領域計算を行ったベクトルストア命令と後続のロード系命令との領域をそれぞれ保持する。追い越しチェック判定手段は、領域保持手段で保持したアドレスにより、ベクトルストア命令が後続のロード系命令を追い越すことができることをパイプラインで検出する。命令パイプライン保持手段は、領域計算及び追い越しチェック中のリクエストをパイプラインで保持する。選択手段は、追い越しチェックの結果によって、ベクトルストア命令保持手段、命令パイプライン保持手段及びリクエスト受付手段のうちのいずれかから、メモリへアクセスするリクエストを選択する。
特許文献3に記載された命令処理順序制御システムは、メモリアクセスを高速化するために、先行するベクトルストア命令を後続のベクトルロード命令が追い越す制御を行う。この命令処理順序制御システムは、ベクトル演算器と、主記憶処理装置を備えている。ベクトル演算器は、1個以上のパイプライン化された演算器と複数のベクトルレジスタと演算器とベクトルレジスタを結合するネットワークから構成されている。主記憶処理装置は、ベクトルを単位とするロード/ストアを主記憶装置のベクトルレジスタとの間で行う。この命令処理順序制御システムは、第1の手段と、第2の手段と、第3の手段とを備えている。第1の手段は、ベクトル演算器及び主記憶処理装置へ投入する命令群を保持する。第2の手段は、実行中の命令により使用されているベクトルレジスタ、演算器、主記憶装置の状態を保持する。第3の手段は、第1の手段により保持されている命令群から第2の手段により保持されている各種資源の状態に基づきプログラムで指定された命令投入順序によらずベクトル演算器及び主記憶処理装置に投入する命令を決定する。この第3の手段は、第1の手段により保持されている命令群中のベクトルストア命令と、ベクトルストア命令よりも後から命令投入することをプログラムで指定された第1の手段により保持されている命令群中のベクトルロード命令に関し、ベクトルストア命令で指定されたベクトル要素間距離の大きさとベクトルロード命令で指定されたベクトル要素間距離の大きさが等しく、かつ、ベクトルストア命令で指定されたストア開始起点アドレスとベクトルロード命令で指定されたロード開始起点アドレスが等しくなく、かつ、ベクトルストア命令で指定されたストア開始起点アドレスとベクトルロード命令で指定されたロード開始起点アドレスの差の大きさがベクトルロード命令で指定されたベクトル要素間距離の大きさよりも小さい場合に、ベクトルロード命令をベクトルストア命令に先行してベクトル演算器及び主記憶処理装置へ投入する手段を持つことを特徴としている。
特許文献4に記載されたベクトル収集(ギャザー)命令追い越し回路は、メモリアクセスを高速化するために、先行するベクトルギャザー命令を後続のベクトルロード命令が追い越す制御を行う。ベクトルギャザー命令追い越し回路は、スカラユニット、ベクトルユニットおよびメモリアクセスリクエスト生成回路を備えている。このベクトルギャザー命令追い越し回路は、命令バッファと、第1のフリップフロップ群と、第1のデコーダと、第2のフリップフロップ群と、第2のデコードと、第3のフリップフロップ群と、ベクトルギャザー命令発行判断回路と、セレクト信号生成回路と、セレクタとを有することを特徴としている。命令バッファは、ベクトルユニットでベクトルギャザー命令のアドレスが揃うまでベクトルギャザー命令および後続の命令が待ち合わせる。第1のフリップフロップ群は、命令バッファの各段に格納された命令の有効/無効を示す命令有効フラグを保持する。第1のデコーダは、スカラユニットから入力された命令がベクトルギャザー命令であるかどうかを判断する。第2のフリップフロップ群は、第1のデコーダの出力信号に基づいて命令バッファの書く断に格納された命令がベクトルギャザー命令であるかどうかを示すベクトルギャザー命令フラグを保持する。第2のデコードは、スカラユニットから入力された命令がロード命令であるかどうかを判断する。第3のフリップフロップ群は、第2のデコーダの出力信号に基づいて命令バッファの各段に格納された命令がロード命令であるかどうかを示すロード命令フラグを保持する。ベクトルギャザー命令発行判断回路は、ベクトルユニットからのベクトルギャザー命令発行許可をカウントし命令バッファに格納されているベクトルギャザー命令の発行可否状態を判断する。セレクト信号生成回路は、ベクトルギャザー命令発行判断回路の出力信号、命令有効フラグ、ベクトルギャザー命令フラグおよびロード命令フラグに基づいて後続するロード命令フラグによる先行するベクトルギャザー命令の追い越しの可否を判定し、入力された命令および命令バッファに蓄積された命令からメモリアクセスリクエスト生成回路に送出する命令を選択するためのセレクト信号を生成する。セレクタは、セレクト信号生成回路からのセレクト信号に基づいて入力された命令および命令バッファに蓄積された命令からメモリアクセスリクエスト生成回路へ送出する命令を選択する。
特許文献5に記載されたベクトル収集(ギャザー)・拡散命令実行順序制御装置は、メモリアクセスを高速化するために、処理装置と、追い越し制御回路とを備えている。処理装置において、ベクトル収集命令とベクトル拡散命令の命令部分に、アクセスするメモリの先頭アドレスと終端アドレスを格納したレジスタを指定するフィールドを設けている。追い越し制御回路では、ベクトルロード命令及びベクトルストア命令と同様に、ベクトル収集命令及びベクトル拡散命令においても、命令で指定されているレジスタに基づき、命令がアクセスするメモリの領域を得ることで、ベクトル収集命令とベクトル拡散命令を、追い越し制御の対象としている。
メモリアクセスを更に高速化できることが望まれる。
特開2002−366538号公報 特開平9−231203号公報 特公平8−12661号公報 特開2002−297566号公報 特開2002−32361号公報
本発明の課題は、メモリアクセスを更に高速化することができるベクトル処理装置、及び、追い越し制御回路を提供することにある。
以下に、[発明を実施するための最良の形態]で使用する番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]の記載との対応関係を明らかにするために付加されたものであるが、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明のベクトル処理装置は、命令発行部(2)と、本発明の追い越し制御回路(1)と、命令実行部(3)とを具備する。追い越し制御回路(1)は、命令発行部(2)と命令実行部(3)とに接続されている。命令実行部(3)は主記憶メモリ(200)に接続されている。命令発行部(2)は、入力命令を出力する。追い越し制御回路(1)は、入力命令に応じて出力命令を出力する。命令実行部(3)は、出力命令に従って主記憶メモリ(200)をアクセスする。
この追い越し制御回路(1)は、第1格納部(61)と、第2格納部(61)と、ベクトルロード命令格納部(22)と、アドレス領域格納部(55、56)と、アドレス領域判定部(57、58、10)と、出力命令判定部(14)と、出力選択部(15)とを具備する。
第1格納部(61)は、入力命令として第1命令を格納する。
第2格納部(61)は、入力命令として第1命令の後の第2命令を格納する。第1命令と第2命令はベクトルロード命令以外の命令である。
ベクトルロード命令格納部(22)は、入力命令として第2命令の後の第3命令であるベクトルロード命令(VLD1)を格納する。ベクトルロード命令格納部(22)はベクトルロード命令(VLD1)を格納したときにベクトルロード命令有効フラグを設定する。
アドレス領域格納部(55、56)は、第1命令と第2命令との少なくとも1つがベクトルストア命令である場合、ベクトルストア命令に関連するアドレス領域を格納する。
アドレス領域判定部(57、58、10)は、ベクトルロード命令格納部(22)に格納されたベクトルロード命令(VLD1)に関連するアドレス領域とアドレス領域格納部(55、56)に格納されたベクトルストア命令に関連するアドレス領域との少なくとも一部が一致するか否かを示す判定結果を出力する。
出力命令判定部(14)は、アドレス領域判定部(57、58、10)からの判定結果がベクトルロード命令(VLD1)に関連するアドレス領域とベクトルストア命令に関連するアドレス領域とが一致しないことを示し、ベクトルロード命令格納部(22)にベクトルロード命令有効フラグが設定されている場合、追い越し許可信号を出力する。
出力選択部(15)は、追い越し許可信号に応じて、ベクトルロード命令(VLD1)と第1命令と第2命令との順に、ベクトルロード命令(VLD1)と第1命令と第2命令とを出力命令として命令実行部(3)に出力する。
これにより、本発明のベクトル処理装置における命令実行処理(追い越し制御)では、後続の第3命令(ベクトルロード命令)が、先行するベクトル命令を2つ追い越すことができる。このため、本発明のベクトル処理装置では、先行する2つのベクトル命令を実行するための準備時間の間にベクトルロード命令を実行することにより、ベクトルロード命令(VLD1)が命令実行部(3)に転送されるまでの待ち時間を短縮でき、メモリアクセスに必要な処理時間を大きく改善することができることである。即ち、本発明のベクトル処理装置によれば、従来のベクトル処理装置よりもメモリアクセスを更に高速化することができる。
第1命令はベクトル収集命令(VGT1)であり、第2命令はベクトルストア命令(VST1)である(図4参照)。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトル収集命令(VGT1)、ベクトルストア命令(VST1)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトル収集命令(VGT1)とベクトルストア命令(VST1)とが命令実行部3に転送されるのを待つ必要がない。
第1命令はベクトルストア命令(VST1)であり、第2命令はベクトル収集命令(VGT1)である(図7参照)。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトル収集命令(VGT1)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトル収集命令(VGT1)とが命令実行部3に転送されるのを待つ必要がない。
第1命令はベクトルストア命令(VST1)であり、第2命令はベクトルストア命令(VST2)である(図10参照)。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトルストア命令(VST2)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトルストア命令(VST2)とが命令実行部3に転送されるのを待つ必要がない。
第1命令はベクトル収集命令(VGT1)であり、第2命令はベクトル収集命令(VGT2)である(図10参照)。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトル収集命令(VGT1)、ベクトル収集命令(VGT2)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトル収集命令(VGT1)とベクトル収集命令(VGT2)とが命令実行部3に転送されるのを待つ必要がない。
追い越し制御回路(1)は、更に、第4格納部(61)を具備する。
第4格納部(61)は、入力命令として第1命令と第2命令との間の第4命令を格納する。
出力選択部(15)は、追い越し許可信号に応じて、ベクトルロード命令(VLD1)と第1命令と第4命令と第2命令との順に、ベクトルロード命令(VLD1)と第1命令と第4命令と第2命令とを出力命令として命令実行部(3)に出力する。
これにより、本発明のベクトル処理装置における命令実行処理(追い越し制御)では、後続の第3命令(ベクトルロード命令)が、先行するベクトル命令を3つ追い越すことができる。このため、本発明のベクトル処理装置では、先行する3つのベクトル命令を実行するための準備時間の間にベクトルロード命令を実行することにより、ベクトルロード命令(VLD1)が命令実行部(3)に転送されるまでの待ち時間を短縮でき、メモリアクセスに必要な処理時間を大きく改善することができることである。即ち、本発明のベクトル処理装置によれば、従来のベクトル処理装置よりもメモリアクセスを更に高速化することができる。
第1命令と第2命令はベクトルストア命令(VST1、VST2)であり、第4命令はベクトル収集命令(VGT1)である(図10参照)。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトル収集命令(VGT1)、ベクトルストア命令(VST2)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトル収集命令(VGT1)とベクトルストア命令(VST2)とが命令実行部3に転送されるのを待つ必要がない。
第1命令はベクトルストア命令(VST1)であり、第2命令と第4命令はベクトル収集命令(VGT1、VGT2)である(図10参照)。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトル収集命令(VGT1)、ベクトル収集命令(VGT2)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトル収集命令(VGT1)とベクトル収集命令(VGT2)とが命令実行部3に転送されるのを待つ必要がない。
第2命令はベクトルストア命令(VST2)であり、第1命令と第4命令はベクトル収集命令(VGT1、VGT2)である(図10参照)。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトル収集命令(VGT1)、ベクトルストア命令(VST2)、ベクトル収集命令(VGT2)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトル収集命令(VGT1)とベクトルストア命令(VST2)とベクトル収集命令(VGT2)とが命令実行部3に転送されるのを待つ必要がない。
追い越し制御回路(1)は、更に、第4格納部(61)と、第5格納部(61)とを具備する。
第4格納部(61)は、入力命令として第1命令と第2命令との間の第4命令を格納する。
第5格納部(61)は、入力命令として第2命令とベクトルロード命令(VLD1)との間の第5命令を格納する。
出力選択部(15)は、追い越し許可信号に応じて、ベクトルロード命令(VLD1)と第1命令と第4命令と第2命令と第5命令との順に、ベクトルロード命令(VLD1)と第1命令と第4命令と第2命令と第5命令とを出力命令として命令実行部(3)に出力する。
これにより、本発明のベクトル処理装置における命令実行処理(追い越し制御)では、後続の第3命令(ベクトルロード命令)が、先行するベクトル命令を4つ追い越すことができる。このため、本発明のベクトル処理装置では、先行する4つのベクトル命令を実行するための準備時間の間にベクトルロード命令を実行することにより、ベクトルロード命令(VLD1)が命令実行部(3)に転送されるまでの待ち時間を短縮でき、メモリアクセスに必要な処理時間を大きく改善することができることである。即ち、本発明のベクトル処理装置によれば、従来のベクトル処理装置よりもメモリアクセスを更に高速化することができる。
第1命令と第2命令はベクトルストア命令(VST1、VST2)であり、第4命令と第5命令はベクトル収集命令(VGT1、VGT2)である(図10参照)。
この場合、本発明のベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトル収集命令(VGT1)、ベクトルストア命令(VST2)、ベクトル収集命令(VGT2)を追い越すことが可能である。このため、本発明のベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトル収集命令(VGT1)とベクトルストア命令(VST2)とベクトル収集命令(VGT2)とが命令実行部3に転送されるのを待つ必要がない。
ベクトルロード命令(VLD1)として、スカラ系ロード命令でを含む。
ベクトルロード命令(VLD1)として、スカラ系ストア命令を含む。
本発明のベクトル処理装置、及び、追い越し制御回路によれば、後続のベクトルロード命令が、ベクトルストア命令とベクトル収集命令とを追い越すことができるため、従来のベクトル処理装置よりもメモリアクセスを更に高速化することができる。
添付図面を参照して、本発明によるベクトル処理装置を実施するための最良の形態を以下に説明する。
本発明のベクトル処理装置は、ベクトル命令により主記憶装置をアクセスしてロード/ストアするメモリアクセスを実行する。本発明のベクトル処理装置では、従来のベクトル処理装置よりもメモリアクセスを更に高速化する。まず、本発明のベクトル処理装置におけるメモリアクセスに用いられるベクトル命令について説明する。
ベクトル命令としては、ベクトルロード命令、ベクトル収集命令、ベクトルストア命令およびベクトル拡散命令が挙げられる。図1は、本発明のベクトル処理装置におけるメモリアクセスに用いられるベクトル命令(ベクトルロード命令、ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)を実行するために必要なデータと、その命令を実行するための準備に必要な準備時間(その命令が発行されてから実行されるまでに必要な時間)との比較結果を示す。
ベクトル命令(ベクトルロード命令、ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)を実行するために必要なデータはアドレス、リストアドレスおよびストアデータであるが、このうちアドレスを準備するまでの時間は、リストアドレスおよびストアデータに比べて短い。
ベクトルロード命令に必要なデータは、アドレスであり、ベクトルロード命令における準備時間は、他の命令における準備時間に比べて短い。
ベクトルストア命令に必要なデータは、アドレスおよびストアデータであり、ベクトルストア命令における準備時間は、他の命令における準備時間に比べて長い。
ベクトル収集命令に必要なデータは、リストアドレスであり、ベクトル収集命令における準備時間は、他の命令における準備時間に比べて長い。
ベクトル拡散命令に必要なデータは、リストアドレスおよびストアデータであり、ベクトル拡散命令における準備時間は、他の命令における準備時間に比べて長い。
ベクトル収集命令とは、間接アドレス(リストベクトル)を用いたベクトルロード命令である。言い換えると、ベクトル収集命令とはメモリアドレスにベクトルレジスタの内容を使用してロードを行うベクトル命令である。
ベクトル拡散命令とは、間接アドレス(リストベクトル)を用いたベクトルストア命令である。言い換えると、ベクトル拡散命令とはメモリアドレスにベクトルレジスタの内容を使用してストアを行うベクトル命令である。
このことから先行命令として準備時間の長いベクトル命令(例示;ベクトル収集命令)が発行された後、後続命令として準備時間の短いベクトルロード命令が発行された場合、ベクトルロード命令がベクトル収集命令を追い越すことが出来れば、実行準備のための待ち時間を短縮することができ、メモリアクセスに必要な処理時間を大きく改善することができる。
図2は、本発明のベクトル処理装置におけるメモリアクセスに用いられるベクトル命令(ベクトルロード命令、ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)が先行命令または後続命令となったときに追い越し可能な組み合わせとその効果を示す。追い越し可能な組み合わせとしては、ケース1、ケース2、ケース3、ケース4の4つの組み合わせが挙げられる。
ケ−ス1とは、後続のベクトルロード命令が先行のベクトル収集命令を追い越す場合をいう。
ケ−ス2とは、後続のベクトルロード命令が先行のベクトルストア命令を追い越す場合をいう。
ケ−ス3とは、後続のベクトル収集命令が先行のベクトルロード命令を追い越す場合をいう。
ケ−ス4とは、後続のベクトルストア命令が先行のベクトルロード命令を追い越す場合をいう。
このうちケ−ス1およびケ−ス2の組み合わせについては、上述したように、準備時間の観点から追い越しにより、メモリアクセスに必要な処理時間を短縮できると考えられる。
一方、ケ−ス3およびケ−ス4の組み合わせについては、上述したように、準備時間の観点から追い越しの効果が少ないと考えられる。
これより、メモリアクセスに必要な処理時間を短縮できる命令の組み合わせは、ケ−ス1およびケ−ス2の組み合わせであり、ベクトルロード命令がベクトル収集命令およびベクトルストア命令を追い越す制御を実現することにより性能向上を図ることができる。
このため、本発明のベクトル処理装置におけるメモリアクセスでは、ベクトルロード命令がベクトル収集命令およびベクトルストア命令を追い越す制御を行う。
次に本発明のベクトル処理装置におけるメモリアクセスについて説明する。そのメモリアクセスでは、追い越し不可能な条件を検出し、追い越し不可能な場合は追い越しを行わない。追い越し不可能な条件としては条件1、条件2の2つが挙げられ、2つの条件がともに成立しない場合のみ追い越しを行う。
条件1とは、先行命令としてベクトルストア命令が存在し、かつベクトルロード命令がアクセスするアドレス領域とベクトルストア命令がアクセスするアドレス領域との少なくとも一部が重なる(一致する)場合をいう。
条件2とは、先行命令としてベクトル拡散命令が存在する場合をいう。
条件1については、ベクトルストア命令がストア命令であるため、ベクトルストア命令がアクセスしたアドレス領域のデータをベクトルロード命令がロードする場合、ベクトルロード命令とベクトルストア命令の順番を入れ替えて実行すると、順番を入れ替えない場合と比べると結果が異なる場合がある。
ベクトルロード命令がベクトルストア命令を追い越すためには、ベクトルロード命令がアクセスするアドレス領域とベクトルストア命令がアクセスするアドレス領域が重なるかどうかを確認し、重ならない場合のみ、ベクトルロード命令がベクトルストア命令を追い越すことが好ましい。
条件2については、ベクトル拡散命令がストア命令であるため、ベクトル拡散命令がアクセスした領域のデータをベクトルロード命令がロードする場合については、ベクトルロード命令とベクトル拡散命令の順番を入れ替えて実行すると、順番入れ替えない場合と比べると結果が異なる場合がある。
ベクトル拡散命令はリストアドレスを用いたアクセスであるため、ベクトル拡散命令がアクセスするアドレス領域を特定することは困難である。このため、本発明のベクトル処理装置におけるメモリアクセスでは、先行命令としてベクトル拡散命令が存在する場合は追い越しを行わない。
なお、先行命令としてベクトル収集命令が存在する場合については、ベクトルロード命令およびベクトル収集命令ともにロード命令であるため、メモリ上のデータを書き換えることがない。このため、ベクトルロード命令とベクトル収集命令の順番を入れ替えて実行してもロードされるデータは変わらないので、適時ベクトルロード命令がベクトル収集命令を追い越すことが可能である。
図3は、本発明のベクトル処理装置の構成を示す。本発明のベクトル処理装置は、コンピュータであり、追い越し制御回路1、命令発行部2、命令実行部3、ストアデータ・アドレスデータ準備部4を具備する。追い越し制御回路1は、命令発行部2、命令実行部3およびストアデータ・アドレスデータ準備部4に接続されている。ストアデータ・アドレスデータ準備部4は命令発行部2に接続されている。命令実行部3は主記憶メモリ200に接続されている。
追い越し制御回路1、命令発行部2、命令実行部3、ストアデータ・アドレスデータ準備部4は外部からのクロック(システムクロック)に同期して動作する。命令発行部2は、システムクロックに同期して、入力命令としてベクトル命令(ベクトルロード命令、ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)を追い越し制御回路1に出力(転送)する。追い越し制御回路1は、入力命令に応じて出力命令を出力する。命令実行部3は、出力命令に従って主記憶メモリ200をアクセスする。出力命令については後述する。
命令発行部2は、ベクトル収集命令を追い越し制御回路1に転送したとき、ベクトル収集命令を転送した旨を表すベクトル収集命令転送情報をストアデータ・アドレスデータ準備部4に出力する。ストアデータ・アドレスデータ準備部4は、命令発行部2からのベクトル収集命令転送情報を受けて、所定時間が経過した後にシステムクロックに同期して、ベクトル収集命令に対応するリストアドレスを追い越し制御回路1に出力(転送)する。
命令発行部2は、ベクトルストア命令を追い越し制御回路1に転送したとき、ベクトルストア命令を転送した旨を表すベクトルストア命令転送情報をストアデータ・アドレスデータ準備部4に出力する。ストアデータ・アドレスデータ準備部4は、命令発行部2からのベクトルストア命令転送情報を受けて、所定時間が経過した後にシステムクロックに同期して、ベクトルストア命令に対応するストアデータを追い越し制御回路1に出力(転送)する。
命令発行部2は、ベクトル拡散命令を追い越し制御回路1に転送したとき、ベクトル拡散命令を転送した旨を表すベクトル拡散命令転送情報をストアデータ・アドレスデータ準備部4に出力する。ストアデータ・アドレスデータ準備部4は、命令発行部2からのベクトル拡散命令転送情報を受けて、所定時間が経過した後にシステムクロックに同期して、ベクトル拡散命令に対応するリストアドレスとストアデータとを追い越し制御回路1に出力(転送)する。
命令発行部2がベクトル命令を追い越し制御回路1に転送するタイミングは、本発明のベクトル処理装置の設計により決まる。ストアデータ・アドレスデータ準備部4がリストアドレス、ストアデータを追い越し制御回路1に転送するタイミングは、本発明のベクトル処理装置の設計とベクトル命令転送情報とにより決まる。
追い越し制御回路1は、更に、ベクトルロード命令デコ−ダ20、ベクトルロード命令有効フラグ格納部21、ベクトルロード命令レジスタ22を具備する。ベクトルロード命令デコ−ダ20は命令発行部2に接続されている。ベクトルロード命令有効フラグ格納部21とベクトルロード命令レジスタ22はベクトルロード命令デコ−ダ20に接続されている。
ベクトルロード命令デコ−ダ20は、命令発行部2から送られるベクトル命令を解析し、そのベクトル命令がベクトルロード命令である場合は、ベクトルロード命令有効フラグ格納部21にベクトルロード命令有効フラグをセットし、同時にベクトルロード命令レジスタ22にベクトルロード命令をデータとして格納する。
追い越し制御回路1は、更に、ベクトル収集/ベクトルストア/ベクトル拡散命令デコ−ダ60、ベクトル収集/ベクトルストア/ベクトル拡散命令格納部61を具備する。ベクトル収集/ベクトルストア/ベクトル拡散命令デコ−ダ60は命令発行部2に接続されている。ベクトル収集/ベクトルストア/ベクトル拡散命令格納部61はベクトル収集/ベクトルストア/ベクトル拡散命令デコ−ダ60に接続されている。
ベクトル収集/ベクトルストア/ベクトル拡散命令デコ−ダ60は、命令発行部2から転送されたベクトル命令を解析し、そのベクトル命令がベクトル収集命令、ベクトルストア命令、ベクトル拡散命令である場合はその命令をデータとしてベクトル収集/ベクトルストア/ベクトル拡散命令格納部61に格納する。ベクトル収集/ベクトルストア/ベクトル拡散命令格納部61はFIFO制御を行うことにより、格納された命令を格納された順番で出力する。
追い越し制御回路1は、更に、ベクトル収集命令デコ−ダ30、上段ベクトル収集命令有効フラグ格納部、下段ベクトル収集命令有効フラグ格納部を具備する。上段ベクトル収集命令有効フラグ格納部、下段ベクトル収集命令有効フラグ格納部は1個以上あればよく、上段ベクトル収集命令有効フラグ格納部は上段ベクトル収集命令有効フラグ格納部31、33を含み、下段ベクトル収集命令有効フラグ格納部は下段ベクトル収集命令有効フラグ格納部32、34を含む。ベクトル収集命令デコ−ダ30は命令発行部2に接続されている。上段ベクトル収集命令有効フラグ格納部31、33はベクトル収集命令デコ−ダ30に接続されている。下段ベクトル収集命令有効フラグ格納部32、34はそれぞれ上段ベクトル収集命令有効フラグ格納部31、33に接続されている。
ベクトル収集命令デコ−ダ30は、命令発行部2から転送されたベクトル命令を解析し、そのベクトル命令がベクトル収集命令である場合は、上段ベクトル収集命令有効フラグ格納部31にベクトル収集命令有効フラグ(ステ−ジ1−#1)をセットする。ベクトル収集命令有効フラグ(ステ−ジ1−#1)は、システムクロックに同期して、ベクトル収集命令有効フラグ(ステ−ジ2−#1)として下段ベクトル収集命令有効フラグ格納部32に伝播される。
ベクトル収集命令デコ−ダ30は、次に命令発行部2から転送されたベクトル命令がベクトル収集命令である場合は、上段ベクトル収集命令有効フラグ格納部33にベクトル収集命令有効フラグ(ステ−ジ1−#2)をセットする。ベクトル収集命令有効フラグ(ステ−ジ1−#2)は、システムクロックに同期して、ベクトル収集命令有効フラグ(ステ−ジ2−#2)として下段ベクトル収集命令有効フラグ格納部34に伝播される。
ベクトル収集命令有効フラグは、ベクトル収集命令と他の命令の順序を決定するために使用する情報であり、ベクトル収集命令の存在を示す情報でもある。ベクトル収集命令については、上記のベクトル収集/ベクトルストア/ベクトル拡散命令格納部61に格納されている。
追い越し制御回路1は、更に、ベクトル拡散命令デコ−ダ40、上段ベクトル拡散命令有効フラグ格納部、下段ベクトル拡散命令有効フラグ格納部を具備する。上段ベクトル拡散命令有効フラグ格納部、下段ベクトル拡散命令有効フラグ格納部は1個以上あればよく、上段ベクトル拡散命令有効フラグ格納部は上段ベクトル拡散命令有効フラグ格納部41、43を含み、下段ベクトル拡散命令有効フラグ格納部は下段ベクトル拡散命令有効フラグ格納部42、44を含む。ベクトル拡散命令デコ−ダ40は命令発行部2に接続されている。上段ベクトル拡散命令有効フラグ格納部41、43はベクトル拡散命令デコ−ダ40に接続されている。下段ベクトル拡散命令有効フラグ格納部42、44はそれぞれ上段ベクトル拡散命令有効フラグ格納部41、43に接続されている。
ベクトル拡散命令デコ−ダ40は、命令発行部2から転送されたベクトル命令を解析し、そのベクトル命令がベクトル拡散命令である場合は、上段ベクトル拡散命令有効フラグ格納部41にベクトル拡散命令有効フラグ(ステ−ジ1−#1)をセットする。ベクトル拡散命令有効フラグ(ステ−ジ1−#1)は、システムクロックに同期して、ベクトル拡散命令有効フラグ(ステ−ジ2−#1)として下段ベクトル拡散命令有効フラグ格納部42に伝播される。
ベクトル拡散命令デコ−ダ40は、次に命令発行部2から転送されたベクトル命令がベクトル拡散命令である場合は、上段ベクトル拡散命令有効フラグ格納部43にベクトル拡散命令有効フラグ(ステ−ジ1−#2)をセットする。ベクトル拡散命令有効フラグ(ステ−ジ1−#2)は、システムクロックに同期して、ベクトル拡散命令有効フラグ(ステ−ジ2−#2)として下段ベクトル拡散命令有効フラグ格納部44に伝播される。
ベクトル拡散命令有効フラグは、ベクトル拡散命令と他の命令の順序を決定するために使用する情報であり、ベクトル拡散命令の存在を示す情報でもある。ベクトル拡散命令については、上記のベクトル収集/ベクトルストア/ベクトル拡散命令格納部61に格納されている。
追い越し制御回路1は、更に、ベクトルストア命令デコ−ダ50、上段ベクトルストア命令有効フラグ格納部、下段ベクトルストア命令有効フラグ格納部、ベクトルストア命令アドレス格納レジスタを具備する。上段ベクトルストア命令有効フラグ格納部、下段ベクトルストア命令有効フラグ格納部、ベクトルストア命令アドレス格納レジスタは1個以上あればよく、上段ベクトルストア命令有効フラグ格納部は上段ベクトルストア命令有効フラグ格納部51、53を含み、下段ベクトルストア命令有効フラグ格納部は下段ベクトルストア命令有効フラグ格納部52、54を含み、ベクトルストア命令アドレス格納レジスタはベクトルストア命令アドレス格納レジスタ55、56を含む。ベクトルストア命令デコ−ダ50は命令発行部2に接続されている。上段ベクトルストア命令有効フラグ格納部51、53、ベクトルストア命令アドレス格納レジスタ55、56はベクトルストア命令デコ−ダ50に接続されている。下段ベクトルストア命令有効フラグ格納部52、54はそれぞれ上段ベクトルストア命令有効フラグ格納部51、53に接続されている。
ベクトルストア命令デコ−ダ50は、命令発行部2から転送されたベクトル命令を解析し、そのベクトル命令がベクトルストア命令である場合は、上段ベクトルストア命令有効フラグ格納部51にベクトルストア命令有効フラグ(ステ−ジ1−#1)をセットし、同時にベクトルストア命令アドレス格納レジスタ55にベクトルストア命令に関連するアドレス領域(#1)を格納する。ベクトルストア命令有効フラグ(ステ−ジ1−#1)は、システムクロックに同期して、ベクトルストア命令有効フラグ(ステ−ジ2−#1)として下段ベクトルストア命令有効フラグ格納部52に伝播される。
ベクトルストア命令デコ−ダ50は、次に命令発行部2から転送されたベクトル命令がベクトルストア命令である場合は、上段ベクトルストア命令有効フラグ格納部52にベクトルストア命令有効フラグ(ステ−ジ1−#2)をセットし、同時にベクトルストア命令アドレス格納レジスタ56にベクトルストア命令に関連するアドレス領域(#2)を格納する。ベクトルストア命令有効フラグ(ステ−ジ1−#2)は、システムクロックに同期して、ベクトルストア命令有効フラグ(ステ−ジ2−#2)として下段ベクトルストア命令有効フラグ格納部54に伝播される。
ベクトル拡散命令有効フラグは、ベクトル拡散命令と他の命令の順序を決定するために使用する情報であり、ベクトルストア命令についてはベクトル収集/ベクトルストア/ベクトル拡散命令格納部61に格納されている。
追い越し制御回路1は、更に、アドレス領域判定部を具備する。アドレス領域判定部は、1個以上あればよく、アドレス領域判定部57、58を含む。アドレス領域判定部57、58はそれぞれベクトルストア命令アドレス格納レジスタ55、56に接続されている。アドレス領域判定部57、58はベクトルロード命令レジスタ22接続されている。
アドレス領域判定部57は、ベクトルロード命令レジスタ22に格納されているベクトルロード命令に関連するアドレス領域と、ベクトルストア命令アドレス格納レジスタ55に格納されているアドレス領域(#1)との少なくとも一部が重なる(一致する)か否かを照合し、ベクトルロード命令がベクトルストア命令を追い越し可能か否かを判定する。
アドレス領域判定部57は、ベクトルロード命令レジスタ22に格納されているベクトルロード命令に関連するアドレス領域と、ベクトルストア命令アドレス格納レジスタ55に格納されているアドレス領域(#1)とが重なる場合、ベクトルストア命令追い越し禁止情報を照合結果として出力する。ベクトルストア命令追い越し禁止情報は、ベクトルロード命令がベクトルストア命令を追い越すことを禁止することを表す。
アドレス領域判定部57は、ベクトルロード命令レジスタ22に格納されているベクトルロード命令に関連するアドレス領域と、ベクトルストア命令アドレス格納レジスタ55に格納されているアドレス領域(#1)とが重ならない場合、ベクトルストア命令追い越し許可情報を照合結果として出力する。ベクトルストア命令追い越し許可情報は、ベクトルロード命令がベクトルストア命令を追い越すことを許可することを表す。
アドレス領域判定部58は、ベクトルロード命令レジスタ22に格納されているベクトルロード命令に関連するアドレス領域と、ベクトルストア命令アドレス格納レジスタ56に格納されているアドレス領域(#2)との少なくとも一部が重なる(一致する)か否かを照合し、ベクトルロード命令がベクトルストア命令を追い越し可能か否かを判定する。
アドレス領域判定部58は、ベクトルロード命令レジスタ22に格納されているベクトルロード命令に関連するアドレス領域と、ベクトルストア命令アドレス格納レジスタ56に格納されているアドレス領域(#2)とが重なる場合、ベクトルストア命令追い越し禁止情報を照合結果として出力する。
アドレス領域判定部58は、ベクトルロード命令レジスタ22に格納されているベクトルロード命令に関連するアドレス領域と、ベクトルストア命令アドレス格納レジスタ56に格納されているアドレス領域(#2)とが重ならない場合、ベクトルストア命令追い越し許可情報を照合結果として出力する。
追い越し制御回路1は、更に、ストアデータ・リストアドレス格納部70を具備する。ストアデータ・リストアドレス格納部70はストアデータ・アドレスデータ準備部4に接続されている。
ストアデータ・リストアドレス格納部70は、ストアデータ・アドレスデータ準備部4から転送されたストアデータ、リストアドレスをデータとして格納し、同時に、格納したストアデータ、リストアドレスが有効であることを示す有効ビットを設定する。ストアデータ・リストアドレス格納部70はFIFO制御を行うことにより、格納された命令を格納された順番で出力する。
追い越し制御回路1は、更に、追い越し判定部10を具備する。追い越し判定部10は、ベクトルロード命令有効フラグ格納部21と下段ベクトル拡散命令有効フラグ格納部42、44と下段ベクトルストア命令有効フラグ格納部52、54とアドレス領域判定部57、58とに接続されている。
追い越し判定部10は、ベクトルロード命令有効フラグ格納部21、下段ベクトル拡散命令有効フラグ格納部42、44、下段ベクトルストア命令有効フラグ格納部52、54にセットされる上記のフラグと、アドレス領域判定部57、58からの照合結果(ベクトルストア命令追い越し許可情報/ベクトルストア命令追い越し禁止情報)とに基づいて、後続のベクトルロード命令がベクトルストア命令、ベクトル拡散命令を追い越し可能か否かを判定する。
例えば、ベクトルロード命令有効フラグ格納部21にベクトルロード命令有効フラグがセットされ、下段ベクトル拡散命令有効フラグ格納部42、44にベクトル拡散命令有効フラグ(ステ−ジ2−#1、ステ−ジ2−#2)がセットされ、下段ベクトルストア命令有効フラグ格納部52、54にベクトルストア命令有効フラグ(ステ−ジ2−#1、ステ−ジ2−#2)がセットされていない。この場合、追い越し判定部10は、ベクトル拡散命令追い越し禁止情報を判定結果として出力する。ベクトル拡散命令追い越し禁止情報は、ベクトルロード命令がベクトル拡散命令を追い越すことを禁止することを表す。
例えば、ベクトルロード命令有効フラグ格納部21にベクトルロード命令有効フラグがセットされ、下段ベクトル拡散命令有効フラグ格納部42、44にベクトル拡散命令有効フラグ(ステ−ジ2−#1、ステ−ジ2−#2)がセットされず、下段ベクトルストア命令有効フラグ格納部52、54にベクトルストア命令有効フラグ(ステ−ジ2−#1、ステ−ジ2−#2)がセットされていてもアドレス領域判定部57、58からの照合結果がベクトルストア命令追い越し禁止情報を表す。この場合、追い越し判定部10は、ベクトルストア命令追い越し禁止情報を判定結果として出力する。
例えば、ベクトルロード命令有効フラグ格納部21にベクトルロード命令有効フラグがセットされ、下段ベクトル拡散命令有効フラグ格納部42、44にベクトル拡散命令有効フラグ(ステ−ジ2−#1、ステ−ジ2−#2)がセットされ、下段ベクトルストア命令有効フラグ格納部52、54にベクトルストア命令有効フラグ(ステ−ジ2−#1、ステ−ジ2−#2)がセットされ、アドレス領域判定部57、58からの照合結果がベクトルストア命令追い越し禁止情報を表す。この場合、追い越し判定部10は、ベクトル拡散命令追い越し禁止情報とベクトルストア命令追い越し禁止情報とを判定結果として出力する。
例えば、ベクトルロード命令有効フラグ格納部21にベクトルロード命令有効フラグがセットされ、下段ベクトル拡散命令有効フラグ格納部42、44にベクトル拡散命令有効フラグ(ステ−ジ2−#1、ステ−ジ2−#2)がセットされ、下段ベクトルストア命令有効フラグ格納部52、54にベクトルストア命令有効フラグ(ステ−ジ2−#1、ステ−ジ2−#2)がセットされていてもアドレス領域判定部57、58からの照合結果がベクトルストア命令追い越し許可情報を表す。この場合、追い越し判定部10は、ベクトル拡散命令追い越し禁止情報とベクトルストア命令追い越し許可情報とを判定結果として出力する。
例えば、ベクトルロード命令有効フラグ格納部21にベクトルロード命令有効フラグがセットされ、下段ベクトル拡散命令有効フラグ格納部42、44にベクトル拡散命令有効フラグ(ステ−ジ2−#1、ステ−ジ2−#2)がセットされず、下段ベクトルストア命令有効フラグ格納部52、54にベクトルストア命令有効フラグ(ステ−ジ2−#1、ステ−ジ2−#2)がセットされていてもアドレス領域判定部57、58からの照合結果がベクトルストア命令追い越し許可情報を表す。この場合、追い越し判定部10は、ベクトルストア命令追い越し許可情報を判定結果として出力する。
追い越し制御回路1は、更に、ベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11を具備する。ベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11は、下段ベクトル収集命令有効フラグ格納部32、34と下段ベクトル拡散命令有効フラグ格納部42、44と下段ベクトルストア命令有効フラグ格納部52、54とに接続されている。
ベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11は、下段ベクトル収集命令有効フラグ格納部32、34、下段ベクトル拡散命令有効フラグ格納部42、44、下段ベクトルストア命令有効フラグ格納部52、54にセットされる上記のフラグを監視する。ベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11は、下段ベクトル収集命令有効フラグ格納部32、34、下段ベクトル拡散命令有効フラグ格納部42、44、下段ベクトルストア命令有効フラグ格納部52、54に上記のフラグがセットされた順序を記憶し、その順序を表す順序情報を出力する。
追い越し制御回路1は、更に、許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部12を具備する。許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部12は、下段ベクトル収集命令有効フラグ格納部32、34と下段ベクトル拡散命令有効フラグ格納部42、44と下段ベクトルストア命令有効フラグ格納部52、54とに接続されている。
許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部12は、下段ベクトル収集命令有効フラグ格納部32、34、下段ベクトル拡散命令有効フラグ格納部42、44、下段ベクトルストア命令有効フラグ格納部52、54にセットされる上記のフラグを監視し、セットされるフラグによりベクトル収集命令、ベクトル拡散命令、ベクトルストア命令が存在するか(有効であるか)否かを判定する。許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部12は、下段ベクトル収集命令有効フラグ格納部32、34、下段ベクトル拡散命令有効フラグ格納部42、44、下段ベクトルストア命令有効フラグ格納部52、54に上記のフラグがセットされたとき、ベクトル命令有効情報を判定結果として出力する。ベクトル命令有効情報は、セットされたフラグによりベクトル命令(ベクトル収集命令、ベクトル拡散命令、ベクトルストア命令)が存在することを表す。
追い越し制御回路1は、更に、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13を具備する。ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13は、ストアデータ・リストアドレス格納部70と許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部12とに接続されている。
ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13は、許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部12から出力された判定結果(ベクトル命令有効情報)とストアデータ・リストアドレス格納部70から出力されたストアデータ・リストアドレス情報とに基づいて、ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令を命令実行部3に転送できるか否かを判定する。
例えば、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13に、ベクトル収集命令の存在を表す判定結果が許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部12から出力され、リストアドレスがストアデータ・リストアドレス格納部70から出力される。この場合、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13は、ベクトル収集命令確認情報を判定結果として出力する。ベクトル収集命令確認情報は、ベクトル収集命令を命令実行部3に転送可能であることを表す。
例えば、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13に、ベクトルストア命令の存在を表す判定結果が許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部12から出力され、ストアデータがストアデータ・リストアドレス格納部70から出力される。この場合、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13は、ベクトルストア命令確認情報を判定結果として出力する。ベクトルストア命令確認情報は、ベクトルストア命令を命令実行部3に転送可能であることを表す。
例えば、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13に、ベクトル拡散命令の存在を表す判定結果が許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部12から出力され、リストアドレスとストアデータとがストアデータ・リストアドレス格納部70から出力される。この場合、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13は、ベクトル拡散命令確認情報を判定結果として出力する。ベクトル拡散命令確認情報は、ベクトル拡散命令を命令実行部3に転送可能であることを表す。
追い越し制御回路1は、更に、出力命令判定部14、出力命令選択部15を具備する。出力命令判定部14は、追い越し判定部10とベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11と許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部13とベクトルロード命令有効フラグ格納部21とに接続されている。出力命令選択部15は、命令発行部2と命令実行部3と出力命令判定部14とベクトルロード命令レジスタ22とベクトル収集/ベクトルストア/ベクトル拡散命令格納部61とに接続されている。
出力命令判定部14は、追い越し判定部10からの判定結果(ベクトル拡散命令追い越し禁止情報、ベクトルストア命令追い越し禁止情報、ベクトルストア命令追い越し許可情報)とベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11からの順序情報とベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果(ベクトル収集命令確認情報、ベクトルストア命令確認情報、ベクトル拡散命令確認情報)とベクトルロード命令有効フラグ21に格納されたベクトルロード命令有効フラグとに基づいて、命令実行部3に転送すべきベクトル命令(ベクトルロード命令、ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)を表す判定結果を出力命令選択部15に出力する。
出力命令選択部15は、出力命令判定部14からの判定結果に応じて、ベクトルロード命令レジスタ22に格納されたベクトルロード命令、ベクトル収集/ベクトルストア/ベクトル拡散命令情報格納手段61からのベクトル命令(ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)又は、命令発行部2からのベクトルロード命令を選択し、出力命令として命令実行部3に出力(転送)する。
出力命令判定部14、出力命令選択部15の出力動作について詳細に説明する。本発明のベクトル処理装置のメモリアクセスにおいて、ベクトルロード命令がベクトル収集命令、ベクトルストア命令を追い越す制御としては、(1)後続の第3命令(ベクトルロード命令)が、先行するベクトル命令を1つ追い越すこと、(2)後続の第3命令(ベクトルロード命令)が、先行するベクトル命令を2つ追い越すこと、(3)後続の第3命令(ベクトルロード命令)が、先行するベクトル命令を3つ追い越すこと、(4)後続の第3命令(ベクトルロード命令)が、先行するベクトル命令を4つ追い越すこと、ができる。
例として(2)について説明する。(2)の場合として、第1命令がベクトルストア命令であり、第2命令がベクトル収集命令であり、後続の第3命令(ベクトルロード命令)が、先行する第1命令(ベクトルストア命令)、第2命令(ベクトル収集命令)を追い越すことについて説明する。命令発行部2は、後述の第1命令、第2命令、第3命令の順に、第1命令、第2命令、第3命令を追い越し制御回路1に転送したものとする。第3命令は、ベクトルロード命令であるものとする。
この場合、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13は、第1命令(ベクトルストア命令)におけるベクトル収集命令確認情報と第2命令(ベクトル収集命令)におけるベクトル収集命令確認情報とを表す判定結果を出力命令判定部14に転送する。
出力命令判定部14は、追い越し判定部10からの判定結果とベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11からの順序情報とベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果とベクトルロード命令有効フラグ21に格納されたベクトルロード命令有効フラグとに基づいて、追い越し許可信号と、第1命令出力許可信号と、第2命令出力許可信号との順に、追い越し許可信号と第1命令出力許可信号と第2命令出力許可信号とを判定結果として出力命令選択部15に出力する。
出力命令選択部15は、出力命令判定部14からの判定結果である追い越し許可信号に応じて、ベクトルロード命令レジスタ22に格納された第3命令(ベクトルロード命令)を出力命令として命令実行部3に出力(転送)する。出力命令選択部15は、出力命令判定部14からの判定結果である第1命令出力許可信号に応じて、ベクトル収集/ベクトルストア/ベクトル拡散命令情報格納手段61からの第1命令(ベクトルストア命令)を出力命令として命令実行部3に出力(転送)する。出力命令選択部15は、出力命令判定部14からの判定結果である第2命令出力許可信号に応じて、ベクトル収集/ベクトルストア/ベクトル拡散命令情報格納手段61からの第2命令(ベクトル収集命令)を出力命令として命令実行部3に出力(転送)する。
このように、本発明のベクトル処理装置によれば、後続のベクトルロード命令が、ベクトルストア命令とベクトル収集命令とを追い越すことができるため、従来のベクトル処理装置よりもメモリアクセスを更に高速化することができる。このため、本発明のベクトル処理装置では、ベクトルストア命令とベクトル収集命令とを実行するための準備時間の間にベクトルロード命令を実行することにより、ベクトルロード命令が命令実行部3に転送されるまでの待ち時間を短縮でき、メモリアクセスに必要な処理時間を大きく改善することができる。
次に、本発明のベクトル処理装置の動作として命令実行処理(追い越し制御)について説明する。
まず、本発明のベクトル処理装置の動作として、上記の(2)の場合について図4を参照して説明する。上記の(2)の場合として、第1命令がベクトル収集命令であり、第2命令がベクトルストア命令であり、第3命令がベクトルロード命令であるものとする。ここで、命令発行部2は、第1命令としてベクトル収集命令(VGT1)、第2命令としてベクトルストア命令(VST1)、第3命令としてベクトルロード命令(VLD1)の順に、ベクトル収集命令(VGT1)、ベクトルストア命令(VST1)、ベクトルロード命令(VLD1)を追い越し制御回路1に転送したものとする。また、ベクトルストア命令(VST1)に関連するアドレス領域とベクトルロード命令(VLD1)に関連するアドレス領域は重なっていないものとする。この場合、図4に示されるように、後続の第3命令(ベクトルロード命令)が、先行する第1命令(ベクトルストア命令)、第2命令(ベクトルストア命令)を追い越すことができる。
上記のシステムクロックであるクロックサイクルT1にて、命令発行部2からベクトル収集命令(VGT1)が追い越し制御回路1に与えられる。命令発行部2は、ベクトル収集命令(VGT1)を追い越し制御回路1に転送したとき、ベクトル収集命令(VGT1)を転送した旨を表すベクトル収集命令転送情報をストアデータ・アドレスデータ準備部4に出力する。
ベクトル収集命令デコ−ダ30は、命令発行部2からのベクトル収集命令(VGT1)をデコ−ドし、クロックサイクルT1の次のクロックサイクルT2にて、上段VGT(ベクトル収集)命令有効フラグ格納部31にベクトル収集命令有効フラグ(ステ−ジ1−#1)をセットする。
ベクトル収集/ベクトルストア/ベクトル拡散命令デコ−ダ60は、命令発行部2からのベクトル収集命令(VGT1)をデコードし、クロックサイクルT2にて、デコ−ドされたベクトル収集命令(VGT1)をデータとしてベクトル収集/ベクトルストア/ベクトル拡散命令格納部61に格納する。
ベクトル収集命令有効フラグ(ステ−ジ1−#1)は、クロックサイクルT2の次のクロックサイクルT3にて、ベクトル収集命令有効フラグ(ステ−ジ2−#1)として下段VGT(ベクトル収集)命令有効フラグ格納部32に伝播される。
クロックサイクルT3の次のクロックサイクルT4にて、命令発行部2からベクトルストア命令(VST1)が追い越し制御回路1に与えられる。命令発行部2は、ベクトルストア命令(VST1)を追い越し制御回路1に転送したとき、ベクトルストア命令(VST1)を転送した旨を表すベクトルストア命令転送情報をストアデータ・アドレスデータ準備部4に出力する。
ベクトルストア命令デコ−ダ50は、命令発行部2からのベクトルストア命令(VST1)をデコ−ドし、クロックサイクルT4の次のクロックサイクルT5にて、上段VST(ベクトルストア)命令有効フラグ格納部51にベクトルストア命令有効フラグ(ステ−ジ1−#1)をセットする。同時に、ベクトルストア命令デコ−ダ50は、デコ−ドされたベクトルストア命令(VST1)に関連するアドレス領域(#1)をVST(ベクトルストア)命令アドレス格納レジスタ55に格納する。
ベクトル収集/ベクトルストア/ベクトル拡散命令デコ−ダ60は、命令発行部2からのベクトルストア命令(VST1)をデコードし、クロックサイクルT5にて、デコ−ドされたベクトルストア命令(VST1)をデータとしてVGT/VST/VSC(ベクトル収集/ベクトルストア/ベクトル拡散)命令格納部61に格納する。
ベクトルストア命令有効フラグ(ステ−ジ1−#1)は、クロックサイクルT5の次のクロックサイクルT6にて、ベクトルストア命令有効フラグ(ステ−ジ2−#1)として下段VST(ベクトルストア)命令有効フラグ格納部52に伝播される。
クロックサイクルT6の次のクロックサイクルT7にて、命令発行部2からベクトルロード命令(VLD1)が追い越し制御回路1に与えられる。
ベクトルロード命令デコ−ダ20は、命令発行部2からのベクトルロード命令(VLD1)をデコ−ドし、クロックサイクルT7の次のクロックサイクルT8にて、VLD(ベクトルロード)命令有効フラグ格納部21にベクトルロード命令有効フラグをセットする。同時に、ベクトルロード命令デコ−ダ20は、デコ−ドされたベクトルロード命令(VLD1)をVLD(ベクトルロード)命令レジスタ22に格納する。
クロックサイクルT8において、追い越し制御回路1は追い越し制御の判定を行う。
アドレス領域判定部57は、ベクトルロード命令レジスタ22に格納されているベクトルロード命令(VLD1)に関連するアドレス領域と、ベクトルストア命令アドレス格納レジスタ55に格納されているアドレス領域(#1)を照合し、アドレス領域が重なっていないか否かを判定する。ここで、ベクトルロード命令(VLD1)に関連するアドレス領域と、ベクトルストア命令(VST1)に関連するアドレス領域(#1)とが重ならないため、アドレス領域判定部57は、ベクトルストア命令追い越し許可情報を照合結果として出力する。
ベクトルロード命令有効フラグ格納部21にベクトルロード命令有効フラグがセットされ、下段ベクトルストア命令有効フラグ格納部52にベクトルストア命令有効フラグ(ステ−ジ2−#1)がセットされていてもアドレス領域判定部57からの照合結果がベクトルストア命令追い越し許可情報を表すため、追い越し判定部10は、ベクトルストア命令追い越し許可情報を判定結果として出力する。
出力命令判定部14は、追い越し判定部10からの判定結果とベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11からの順序情報とベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果とベクトルロード命令有効フラグ21に格納されたベクトルロード命令有効フラグとに基づいて、ベクトルロード命令(VLD1)における追い越し許可信号を判定結果として出力命令選択部15に出力する。ここで、ベクトルロード命令有効フラグ21に格納されたベクトルロード命令有効フラグを出力命令判定部14が読み出したとき、ベクトルロード命令有効フラグ21に格納されたベクトルロード命令有効フラグがリセットされる。
クロックサイクルT8の次のクロックサイクルT9にて、出力命令選択部15は、出力命令判定部14からの判定結果である追い越し許可信号に応じて、ベクトルロード命令レジスタ22に格納されたベクトルロード命令(VLD1)を出力命令として命令実行部3に出力する。
ストアデータ・アドレスデータ準備部4は、クロックサイクルT1にて命令発行部2から出力されたベクトル収集命令転送情報を受けて、所定時間(図4において8サイクル)が経過した後にシステムクロックに同期して、ベクトル収集命令(VGT1)に対応するリストアドレスを出力する。このとき、クロックサイクルT9の次のクロックサイクルT10にて、ストアデータ・リストアドレス準備部4からベクトル収集命令(VGT1)のリストアドレスが追い越し制御回路1に与えられる。
クロックサイクルT10の次のクロックサイクルT11にて、ストアデータ・リストアドレス格納部70は、ストアデータ・アドレスデータ準備部4から転送されたベクトル収集命令(VGT1)のリストアドレスをデータとして格納し、同時に、格納したベクトル収集命令(VGT1)のリストアドレスが有効であることを示す有効ビットを設定する。
このとき、出力命令判定部14は、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果およびストアデータ・リストアドレス格納部70に設定された有効ビットにより、ベクトル収集命令(VGT1)が出力可能であると判定する。
クロックサイクルT11において、出力命令判定部14は、ベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11からの順序情報とベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果とに基づいて、ベクトル収集命令(VGT1)における第1命令出力許可信号を判定結果として出力命令選択部15に出力する。
クロックサイクルT11の次のクロックサイクルT12にて、出力命令選択部15は、出力命令判定部14からの判定結果である第1命令出力許可信号に応じて、ベクトル収集/ベクトルストア/ベクトル拡散命令情報格納手段61からのベクトル収集命令(VGT1)を出力命令として命令実行部3に出力する。
ストアデータ・アドレスデータ準備部4は、クロックサイクルT4にて命令発行部2から出力されたベクトルストア命令転送情報を受けて、所定時間(図4において8サイクル)が経過した後にシステムクロックに同期して、ベクトルストア命令(VST1)に対応するリストアドレスを出力する。このとき、クロックサイクルT12の次のクロックサイクルT13にて、ストアデータ・リストアドレス準備部4からベクトルストア命令(VST1)のストアデータが追い越し制御回路1に与えられる。
クロックサイクルT13の次のクロックサイクルT14にて、ストアデータ・リストアドレス格納部70は、ストアデータ・アドレスデータ準備部4から転送されたベクトルストア命令(VST1)のストアデータをデータとして格納し、同時に、格納したベクトルストア命令(VST1)のストアデータが有効であることを示す有効ビットを設定する。
このとき、出力命令判定部14は、ベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果およびストアデータ・リストアドレス格納部70に設定された有効ビットにより、ベクトルストア命令(VST1)が出力可能であると判定する。
クロックサイクルT14において、出力命令判定部14は、ベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11からの順序情報とベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果とに基づいて、ベクトルストア命令(VST1)における第2命令出力許可信号を判定結果として出力命令選択部15に出力する。
クロックサイクルT14の次のクロックサイクルT15にて、出力命令選択部15は、出力命令判定部14からの判定結果である第2命令出力許可信号に応じて、ベクトル収集/ベクトルストア/ベクトル拡散命令情報格納手段61からのベクトルストア命令(VST1)を出力命令として命令実行部3に出力する。
上記の(2)の場合として、第1命令がベクトル収集命令(VGT1)であり、第2命令がベクトルストア命令(VST1)であり、第3命令がベクトルロード命令(VLD1)であり、ベクトルストア命令(VST1)に関連するアドレス領域とベクトルロード命令(VLD1)に関連するアドレス領域は重なっていない場合、本発明における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトル収集命令(VGT1)、ベクトルストア命令(VST1)を追い越すことが可能である。このため、本発明における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトル収集命令(VGT1)とベクトルストア命令(VST1)とが命令実行部3に転送されるのを待つ必要がない。
命令実行処理(追い越し制御)をベクトル処理装置に採用しない場合について説明する。即ち、ベクトル処理装置には、本発明における命令実行処理(追い越し制御)に必要な、追い越し判定部10、出力命令判定部14、出力命令選択部15が設けられていない。
図5に示されるように、第1命令がベクトル収集命令(VGT1)であり、第2命令がベクトルストア命令(VST1)であり、第3命令がベクトルロード命令(VLD1)であり、ベクトルストア命令(VST1)に関連するアドレス領域とベクトルロード命令(VLD1)に関連するアドレス領域は重なっていない場合、命令実行処理(追い越し制御)を採用しないベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトル収集命令(VGT1)、ベクトルストア命令(VST1)を追い越すことが不可能である。即ち、追い越し制御を行わないと各命令は発行された順序で命令実行部3に転送される。このため、命令実行処理(追い越し制御)を採用しないベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトル収集命令(VGT1)とベクトルストア命令(VST1)とが命令実行部3に転送されるのを待つ必要がある。
特許文献1〜5に記載された命令実行処理(追い越し制御)をベクトル処理装置に適用した場合について説明する。即ち、特許文献1〜5に記載されたベクトル処理装置には、本発明における命令実行処理(追い越し制御)に必要な、追い越し判定部10、出力命令判定部14が設けられておらず、特許文献1〜5に記載された判定部(判定回路、判断回路)が設けられている。
図6に示されるように、第1命令がベクトル収集命令(VGT1)であり、第2命令がベクトルストア命令(VST1)であり、第3命令がベクトルロード命令(VLD1)であり、ベクトルストア命令(VST1)に関連するアドレス領域とベクトルロード命令(VLD1)に関連するアドレス領域は重なっていない場合、特許文献1〜5における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)を追い越すことが可能である。しかし、後続のベクトルロード命令(VLD1)が、先行するベクトル収集命令(VGT1)を追い越すことは不可能である。このため、特許文献1〜5における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトル収集命令(VGT1)が命令実行部3に転送されるのを待つ必要がある。
次に、本発明のベクトル処理装置の動作として、上記の(2)の場合について図7を参照して説明する。上記の(2)の場合として、第1命令がベクトルストア命令であり、第2命令がベクトル収集命令であり、第3命令がベクトルロード命令であるものとする。ここで、命令発行部2は、第1命令としてベクトルストア命令(VST1)、第2命令としてベクトル収集命令(VGT1)、第3命令としてベクトルロード命令(VLD1)の順に、ベクトルストア命令(VST1)、ベクトル収集命令(VGT1)、ベクトルロード命令(VLD1)を追い越し制御回路1に転送したものとする。また、ベクトルストア命令(VST1)に関連するアドレス領域とベクトルロード命令(VLD1)に関連するアドレス領域は重なっていないものとする。
この場合、図7に示されるように、本発明における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトル収集命令(VGT1)を追い越すことが可能である。このため、本発明における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトル収集命令(VGT1)とが命令実行部3に転送されるのを待つ必要がない。
命令実行処理(追い越し制御)をベクトル処理装置に採用しない場合について説明する。
図8に示されるように、命令実行処理(追い越し制御)を採用しないベクトル処理装置では、第1命令がベクトルストア命令(VST1)であり、第2命令がベクトル収集命令(VGT1)であり、第3命令がベクトルロード命令(VLD1)であり、ベクトルストア命令(VST1)に関連するアドレス領域とベクトルロード命令(VLD1)に関連するアドレス領域は重なっていない場合、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトル収集命令(VGT1)を追い越すことが不可能である。即ち、追い越し制御を行わないと各命令は発行された順序で命令実行部3に転送される。このため、命令実行処理(追い越し制御)を採用しないベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトル収集命令(VGT1)とが命令実行部3に転送されるのを待つ必要がある。
特許文献1〜5に記載された命令実行処理(追い越し制御)をベクトル処理装置に適用した場合について説明する。
図9に示されるように、第1命令がベクトルストア命令(VST1)であり、第2命令がベクトル収集命令(VGT1)であり、第3命令がベクトルロード命令(VLD1)であり、ベクトルストア命令(VST1)に関連するアドレス領域とベクトルロード命令(VLD1)に関連するアドレス領域は重なっていない場合、特許文献1〜5における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトル収集命令(VGT1)を追い越すことが可能である。しかし、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)を追い越すことは不可能である。このため、特許文献1〜5における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)が命令実行部3に転送されるのを待つ必要がある。
次に、本発明のベクトル処理装置の動作として、上記の(4)の場合について図10を参照して説明する。上記の(4)の場合として、第1命令がベクトルストア命令であり、第2命令がベクトル収集命令であり、第3命令がベクトルストア命令であり、第4命令がベクトル収集命令であり、第5命令がベクトルロード命令であるものとする。ここで、命令発行部2は、第1命令としてベクトルストア命令(VST1)、第2命令としてベクトル収集命令(VGT1)、第3命令としてベクトルストア命令(VST2)、第4命令としてベクトル収集命令(VGT2)、第5命令としてベクトルロード命令(VLD1)の順に、ベクトルストア命令(VST1)、ベクトル収集命令(VGT1)、ベクトルストア命令(VST2)、ベクトル収集命令(VGT2)、ベクトルロード命令(VLD1)を追い越し制御回路1に転送したものとする。また、ベクトルストア命令(VST1)に関連するアドレス領域と、ベクトルストア命令(VST2)に関連するアドレス領域と、ベクトルロード命令(VLD1)に関連するアドレス領域とは、重なっていないものとする。
この場合、図10に示されるように、本発明における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、後続のベクトルロード命令(VLD1)が、先行するベクトルストア命令(VST1)、ベクトル収集命令(VGT1)、ベクトルストア命令(VST2)、ベクトル収集命令(VGT2)を追い越すことが可能である。このため、本発明における命令実行処理(追い越し制御)が適用されたベクトル処理装置では、ベクトルロード命令(VLD1)は、ベクトルストア命令(VST1)とベクトル収集命令(VGT1)とベクトルストア命令(VST2)とベクトル収集命令(VGT2)とが命令実行部3に転送されるのを待つ必要がない。
本発明のベクトル処理装置の構成では、上記(4)の場合を可能にするために、ベクトル収集命令有効フラグを2ペア、ベクトルストア命令有効フラグを2ペアとしているが、ベクトル収集命令有効フラグおよびベクトルストア命令有効フラグを増やすことが可能であり、追い越しの対象となるベクトルストア命令およびベクトル収集命令の命令数を増やすことが可能である。
以上の説明により、本発明のベクトル処理装置における命令実行処理(追い越し制御)では、ベクトルロード命令が、ベクトル収集命令とベクトルストア命令の任意の組み合わせを追い越すことができる。このため、本発明のベクトル処理装置では、ベクトル収集命令、ベクトルストア命令を実行するための準備時間の間にベクトルロード命令を実行することにより、ベクトルロード命令が命令実行部3に転送されるまでの待ち時間を短縮でき、メモリアクセスに必要な処理時間を大きく改善することができることである。即ち、本発明のベクトル処理装置によれば、従来のベクトル処理装置よりもメモリアクセスを更に高速化することができる。
本発明のベクトル処理装置において、ベクトルロード命令がベクトルストア命令およびベクトル収集命令を追い越す制御を実施例として取り上げているが、本発明の他の実施例として、追い越しを行う命令であるベクトルロード命令に以下の2種類の命令を追加することが考えられる。2種類の命令の追加を追加1、追加2とする。
追加1とは、ベクトルロード命令が、ロード系であり、アクセスするアドレス領域が特定できる命令を表す(以下スカラ系ロード命令)。
追加2とは、ストア系であり、ストアデータが格納されていて、アクセスするアドレス領域が特定できる命令を表す(以下スカラ系ストア命令)。
追加1について説明する。
本発明の他の実施例に係るベクトル処理装置の構成として、追加1を考慮した構成を図11に示す。図11に示される本発明のベクトル処理装置では、図1に示される本発明のベクトル処理装置に対して、ベクトルロード命令デコ−ダ20をベクトルロード/スカラロード命令デコ−ダ80に置き換え、ベクトルロード命令有効フラグ格納部21をベクトルロード/スカラロード命令有効フラグ格納部81に置き換え、ベクトルロード命令レジスタ22をベクトルロード/スカラロード命令レジスタ82に置き換えている。
図11に示される本発明のベクトル処理装置では、図1に示される本発明のベクトル処理装置と同じ構成要件については同一符号を付しており、重複する説明を割愛する。スカラ系ロード命令は、同じ領域にアクセスしているベクトルロード命令と同じであると考えられるので、ベクトルロード命令に関係する構成要素についてのみスカラ系ロード命令を考慮する。
ベクトルロード/スカラロード命令デコ−ダ80は、命令発行部2から送られるベクトル命令を解析し、そのベクトル命令がベクトルロード/スカラロード命令である場合は、ベクトルロード/スカラロード命令有効フラグ格納部81にベクトルロード/スカラロード命令有効フラグをセットし、同時にベクトルロード/スカラロード命令レジスタ82にベクトルロード/スカラロード命令をデータとして格納する。
追い越し判定部10は、ベクトルロード/スカラロード命令有効フラグ格納部81、下段ベクトル拡散命令有効フラグ格納部42、44、下段ベクトルストア命令有効フラグ格納部52、54にセットされるフラグと、アドレス領域判定部57、58からの照合結果(ベクトルストア命令追い越し許可情報/ベクトルストア命令追い越し禁止情報)とに基づいて、後続のベクトルロード/スカラロード命令がベクトルストア命令、ベクトル拡散命令を追い越し可能か否かを判定し、判定結果(ベクトル拡散命令追い越し禁止情報、ベクトルストア命令追い越し禁止情報、ベクトルストア命令追い越し許可情報)を出力する。
出力命令判定部14は、追い越し判定部10からの判定結果(ベクトル拡散命令追い越し禁止情報、ベクトルストア命令追い越し禁止情報、ベクトルストア命令追い越し許可情報)とベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11からの順序情報とベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果(ベクトル収集命令確認情報、ベクトルストア命令確認情報、ベクトル拡散命令確認情報)とベクトルロード/スカラロード命令有効フラグ格納部81に格納されたベクトルロード/スカラロード命令有効フラグとに基づいて、命令実行部3に転送すべきベクトル命令(ベクトルロード/スカラロード命令、ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)を表す判定結果を出力命令選択部15に出力する。
出力命令選択部15は、出力命令判定部14からの判定結果に応じて、ベクトルロード/スカラロード命令レジスタ82に格納されたベクトルロード/スカラロード命令、又は、ベクトル収集/ベクトルストア/ベクトル拡散命令情報格納手段61からのベクトル命令(ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)を選択し、出力命令として命令実行部3に出力(転送)する。
追加2について説明する。
本発明の他の実施例に係るベクトル処理装置の構成として、追加2を考慮した構成を図12に示す。図12に示される本発明のベクトル処理装置では、図1に示される本発明のベクトル処理装置に対して、ベクトルロード命令デコ−ダ20をベクトルロード/スカラロード/スカラストア命令デコ−ダ90に置き換え、ベクトルロード命令有効フラグ格納部21をベクトルロード/スカラロード/スカラストア命令有効フラグ格納部91に置き換え、ベクトルロード命令レジスタ22をベクトルロード/スカラロード/スカラストア命令レジスタ92に置き換えている。
図12に示される本発明のベクトル処理装置では、図1に示される本発明のベクトル処理装置と同じ構成要件については同一符号を付しており、重複する説明を割愛する。
また、スカラ系ストア命令はベクトル収集命令を追い越すことは不可能である。このため、下段ベクトル収集命令有効フラグ格納部32、34から追い越し判定部10にベクトル収集命令の存在を伝えるための信号線100、101を追加している。即ち、追い越し判定部10は、更に、下段ベクトル収集命令有効フラグ格納部32、34に接続されている。
先行命令としてベクトル収集命令が存在しないときは、スカラ系ストア命令はベクトルロード命令と同様に追い越しを行うことが可能である。先行命令としてベクトル収集命令が存在するときは、ベクトル収集命令が命令実行部3に転送されるまでスカラ系ストア命令は追い越しを行うことが不可能である。
ベクトルロード/スカラロード/スカラストア命令デコ−ダ90は、命令発行部2から送られるベクトル命令を解析し、そのベクトル命令がベクトルロード/スカラロード/スカラストア命令である場合は、ベクトルロード/スカラロード/スカラストア命令有効フラグ格納部91にベクトルロード/スカラロード/スカラストア命令有効フラグをセットし、同時にベクトルロード/スカラロード/スカラストア命令レジスタ92にベクトルロード/スカラロード/スカラストア命令をデータとして格納する。
追い越し判定部10は、ベクトルロード/スカラロード/スカラストア命令有効フラグ格納部91、下段ベクトル拡散命令有効フラグ格納部42、44、下段ベクトル収集命令有効フラグ格納部32、34、下段ベクトルストア命令有効フラグ格納部52、54にセットされるフラグと、アドレス領域判定部57、58からの照合結果(ベクトルストア命令追い越し許可情報/ベクトルストア命令追い越し禁止情報)とに基づいて、後続のベクトルロード/スカラロード/スカラストア命令がベクトルストア命令、ベクトル拡散命令を追い越し可能か否かを判定し、判定結果(ベクトル拡散命令追い越し禁止情報、ベクトルストア命令追い越し禁止情報、ベクトルストア命令追い越し許可情報)を出力する。
出力命令判定部14は、追い越し判定部10からの判定結果(ベクトル拡散命令追い越し禁止情報、ベクトルストア命令追い越し禁止情報、ベクトルストア命令追い越し許可情報)とベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部11からの順序情報とベクトル収集/ベクトルストア/ベクトル拡散命令出力判定部13からの判定結果(ベクトル収集命令確認情報、ベクトルストア命令確認情報、ベクトル拡散命令確認情報)とベクトルロード/スカラロード/スカラストア命令有効フラグ格納部81に格納されたベクトルロード/スカラロード/スカラストア命令有効フラグとに基づいて、命令実行部3に転送すべきベクトル命令(ベクトルロード/スカラロード/スカラストア命令、ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)を表す判定結果を出力命令選択部15に出力する。
出力命令選択部15は、出力命令判定部14からの判定結果に応じて、ベクトルロード/スカラロード/スカラストア命令レジスタ92に格納されたベクトルロード/スカラロード/スカラストア命令、又は、ベクトル収集/ベクトルストア/ベクトル拡散命令情報格納手段61からのベクトル命令(ベクトル収集命令、ベクトルストア命令、ベクトル拡散命令)を選択し、出力命令として命令実行部3に出力(転送)する。
このように、本発明のベクトル処理装置_では、追い越し制御を行うことができる命令の組み合わせを幅広く取ることが出来るので、これまで以上に多くの命令の組み合わせにおいてメモリアクセスに必要な処理時間を大きく改善することができる。
図1は、本発明のベクトル処理装置における命令実行処理に用いられるベクトル命令を実行するために必要なデータと、その命令を実行するための準備に必要な準備時間との比較結果を示す。 図2は、本発明のベクトル処理装置における命令実行処理に用いられるベクトル命令が先行命令または後続命令となったときに追い越し可能な組み合わせとその効果を示す。 図3は、本発明のベクトル処理装置の構成を示す。 図4は、本発明のベクトル処理装置における命令実行処理(追い越し制御)の動作を示すフローチャートである。 図5は、従来のベクトル処理装置の動作を示すフローチャートである。 図6は、従来のベクトル処理装置における命令実行処理(追い越し制御)の動作を示すフローチャートである。 図7は、本発明のベクトル処理装置における命令実行処理(追い越し制御)の動作を示すフローチャートである。 図8は、従来のベクトル処理装置の動作を示すフローチャートである。 図9は、従来のベクトル処理装置における命令実行処理(追い越し制御)の動作を示すフローチャートである。 図10は、本発明のベクトル処理装置における命令実行処理(追い越し制御)の動作を示すフローチャートである。 図11は、本発明のベクトル処理装置の他の構成を示す。 図12は、本発明のベクトル処理装置の更に他の構成を示す。
符号の説明
1 追い越し制御回路
2 命令発行部
3 命令実行部
4 ストアデータ・アドレスデータ準備部
10 追い越し判定部
11 ベクトル収集/ベクトルストア/ベクトル拡散命令順序保持部
12 許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部
13 許可待ちベクトル収集/ベクトルストア/ベクトル拡散命令判定部
14 出力命令判定部
15 出力命令選択部
20 ベクトルロード命令デコ−ダ
21 ベクトルロード命令有効フラグ格納部
22 ベクトルロード命令レジスタ
30 ベクトル収集命令デコ−ダ
31 上段ベクトル収集命令有効フラグ格納部
32 下段ベクトル収集命令有効フラグ格納部
33 上段ベクトル収集命令有効フラグ格納部
34 下段ベクトル収集命令有効フラグ格納部
40 ベクトル拡散命令デコ−ダ
41 上段ベクトル拡散命令有効フラグ格納部
42 下段ベクトル拡散命令有効フラグ格納部
43 上段ベクトル拡散命令有効フラグ格納部
44 下段ベクトル拡散命令有効フラグ格納部
50 ベクトルストア命令デコ−ダ
51 上段ベクトルストア命令有効フラグ格納部
52 下段ベクトルストア命令有効フラグ格納部
53 上段ベクトルストア命令有効フラグ格納部
54 下段ベクトルストア命令有効フラグ格納部
55 ベクトルストア命令アドレス格納レジスタ
56 ベクトルストア命令アドレス格納レジスタ
57 アドレス領域判定部
58 アドレス領域判定部
60 ベクトル収集/ベクトルストア/ベクトル拡散命令デコ−ダ
61 ベクトル収集/ベクトルストア/ベクトル拡散命令格納部
70 ストアデータ・リストアドレス格納部
80 ベクトルロード/スカラロード命令デコ−ダ
81 ベクトルロード/スカラロード命令有効フラグ格納部
82 ベクトルロード/スカラロード命令レジスタ
90 ベクトルロード/スカラロード/スカラストア命令デコ−ダ
91 ベクトルロード/スカラロード/スカラストア命令有効フラグ格納部
92 ベクトルロード/スカラロード/スカラストア命令レジスタ
100、101 信号線
200 主記憶メモリ

Claims (22)

  1. 入力命令を出力する命令発行部と、
    前記入力命令に応じて出力命令を出力する追い越し制御回路と、
    主記憶メモリに接続され、前記出力命令に従って前記主記憶メモリをアクセスする命令実行部と
    を具備し、
    前記追い越し制御回路は、
    前記入力命令として第1命令を格納する第1格納部と、
    前記入力命令として前記第1命令の後の第2命令を格納する第2格納部と、前記第1命令と前記第2命令はベクトルロード命令以外の命令であり、
    前記入力命令として前記第2命令の後の第3命令であるベクトルロード命令を格納するベクトルロード命令格納部と、前記ベクトルロード命令格納部はベクトルロード命令を格納したときにベクトルロード命令有効フラグを設定し、
    前記第1命令と前記第2命令との少なくとも1つがベクトルストア命令である場合、前記ベクトルストア命令に関連するアドレス領域を格納するアドレス領域格納部と、
    前記ベクトルロード命令格納部に格納された前記ベクトルロード命令に関連するアドレス領域と前記アドレス領域格納部に格納された前記ベクトルストア命令に関連するアドレス領域との少なくとも一部が一致するか否かを示す判定結果を出力するアドレス領域判定部と、
    前記アドレス領域判定部からの判定結果が前記ベクトルロード命令に関連するアドレス領域と前記ベクトルストア命令に関連するアドレス領域とが一致しないことを示し、前記ベクトルロード命令格納部にベクトルロード命令有効フラグが設定されている場合、追い越し許可信号を出力する出力命令判定部と、
    前記追い越し許可信号に応じて、前記ベクトルロード命令と前記第1命令と前記第2命令との順に、前記ベクトルロード命令と前記第1命令と前記第2命令とを前記出力命令として前記命令実行部に出力する出力選択部と
    を具備するベクトル処理装置。
  2. 請求項1に記載のベクトル処理装置において、
    前記第1命令はベクトル収集命令であり、
    前記第2命令は前記ベクトルストア命令である
    ベクトル処理装置。
  3. 請求項1に記載のベクトル処理装置において、
    前記第1命令は前記ベクトルストア命令であり、
    前記第2命令はベクトル収集命令である
    ベクトル処理装置。
  4. 請求項1に記載のベクトル処理装置において、
    前記第1命令は前記ベクトルストア命令であり、
    前記第2命令は前記ベクトルストア命令である
    ベクトル処理装置。
  5. 請求項1に記載のベクトル処理装置において、
    前記第1命令はベクトル収集命令であり、
    前記第2命令はベクトル収集命令である
    ベクトル処理装置。
  6. 請求項1に記載のベクトル処理装置において、
    前記追い越し制御回路は、更に、
    前記入力命令として前記第1命令と前記第2命令との間の第4命令を格納する第4格納部を具備し、
    前記出力選択部は、前記追い越し許可信号に応じて、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令との順に、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令とを前記出力命令として前記命令実行部に出力する
    ベクトル処理装置。
  7. 請求項6に記載のベクトル処理装置において、
    前記第1命令と前記第2命令は前記ベクトルストア命令であり、
    前記第4命令はベクトル収集命令である
    ベクトル処理装置。
  8. 請求項6に記載のベクトル処理装置において、
    前記第1命令は前記ベクトルストア命令であり、
    前記第2命令と前記第4命令はベクトル収集命令である
    ベクトル処理装置。
  9. 請求項6に記載のベクトル処理装置において、
    前記第2命令は前記ベクトルストア命令であり、
    前記第1命令と前記第4命令はベクトル収集命令である
    ベクトル処理装置。
  10. 請求項1に記載のベクトル処理装置において、
    前記追い越し制御回路は、更に、
    前記入力命令として前記第1命令と前記第2命令との間の第4命令を格納する第4格納部と、
    前記入力命令として前記第2命令と前記ベクトルロード命令との間の第5命令を格納する第5格納部とを具備し、
    前記出力選択部は、前記追い越し許可信号に応じて、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令と前記第5命令との順に、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令と前記第5命令とを前記出力命令として前記命令実行部に出力する
    ベクトル処理装置。
  11. 請求項10に記載のベクトル処理装置において、
    前記第1命令と前記第2命令は前記ベクトルストア命令であり、
    前記第4命令と前記第5命令はベクトル収集命令である
    ベクトル処理装置。
  12. 入力命令を出力する命令発行部と、出力命令に従って主記憶メモリをアクセスする命令実行部とに接続され、前記入力命令に応じて前記出力命令を出力する追い越し制御回路であって、
    前記入力命令として第1命令を格納する第1格納部と、
    前記入力命令として前記第1命令の後の第2命令を格納する第2格納部と、前記第1命令と前記第2命令はベクトルロード命令以外の命令であり、
    前記入力命令として前記第2命令の後の第3命令であるベクトルロード命令を格納するベクトルロード命令格納部と、前記ベクトルロード命令格納部はベクトルロード命令を格納したときにベクトルロード命令有効フラグを設定し、
    前記第1命令と前記第2命令との少なくとも1つがベクトルストア命令である場合、前記ベクトルストア命令に関連するアドレス領域を格納するアドレス領域格納部と、
    前記ベクトルロード命令格納部に格納された前記ベクトルロード命令に関連するアドレス領域と前記アドレス領域格納部に格納された前記ベクトルストア命令に関連するアドレス領域との少なくとも一部が一致するか否かを示す判定結果を出力するアドレス領域判定部と、
    前記アドレス領域判定部からの判定結果が前記ベクトルロード命令に関連するアドレス領域と前記ベクトルストア命令に関連するアドレス領域とが一致しないことを示し、前記ベクトルロード命令格納部にベクトルロード命令有効フラグが設定されている場合、追い越し許可信号を出力する出力命令判定部と、
    前記追い越し許可信号に応じて、前記ベクトルロード命令と前記第1命令と前記第2命令との順に、前記ベクトルロード命令と前記第1命令と前記第2命令とを前記出力命令として前記命令実行部に出力する出力選択部と
    を具備する追い越し制御回路。
  13. 請求項12に記載の追い越し制御回路において、
    前記第1命令はベクトル収集命令であり、
    前記第2命令は前記ベクトルストア命令である
    追い越し制御回路。
  14. 請求項12に記載の追い越し制御回路において、
    前記第1命令は前記ベクトルストア命令であり、
    前記第2命令はベクトル収集命令である
    追い越し制御回路。
  15. 請求項12に記載の追い越し制御回路において、
    前記第1命令は前記ベクトルストア命令であり、
    前記第2命令は前記ベクトルストア命令である
    追い越し制御回路。
  16. 請求項12に記載の追い越し制御回路において、
    前記第1命令はベクトル収集命令であり、
    前記第2命令はベクトル収集命令である
    追い越し制御回路。
  17. 請求項12に記載の追い越し制御回路において、
    更に、
    前記入力命令として前記第1命令と前記第2命令との間の第4命令を格納する第4格納部を具備し、
    前記出力選択部は、前記追い越し許可信号に応じて、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令との順に、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令とを前記出力命令として前記命令実行部に出力する
    追い越し制御回路。
  18. 請求項17に記載の追い越し制御回路において、
    前記第1命令と前記第2命令は前記ベクトルストア命令であり、
    前記第4命令はベクトル収集命令である
    追い越し制御回路。
  19. 請求項17に記載の追い越し制御回路において、
    前記第1命令は前記ベクトルストア命令であり、
    前記第2命令と前記第4命令はベクトル収集命令である
    追い越し制御回路。
  20. 請求項17に記載の追い越し制御回路において、
    前記第2命令は前記ベクトルストア命令であり、
    前記第1命令と前記第4命令はベクトル収集命令である
    追い越し制御回路。
  21. 請求項12に記載の追い越し制御回路において、
    更に、
    前記入力命令として前記第1命令と前記第2命令との間の第4命令を格納する第4格納部と、
    前記入力命令として前記第2命令と前記ベクトルロード命令との間の第5命令を格納する第5格納部とを具備し、
    前記出力選択部は、前記追い越し許可信号に応じて、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令と前記第5命令との順に、前記ベクトルロード命令と前記第1命令と前記第4命令と前記第2命令と前記第5命令とを前記出力命令として前記命令実行部に出力する
    追い越し制御回路。
  22. 請求項21に記載の追い越し制御回路において、
    前記第1命令と前記第2命令は前記ベクトルストア命令であり、
    前記第4命令と前記第5命令はベクトル収集命令である
    追い越し制御回路。
JP2004047066A 2004-02-23 2004-02-23 ベクトル処理装置、及び、追い越し制御回路 Expired - Fee Related JP3988144B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2004047066A JP3988144B2 (ja) 2004-02-23 2004-02-23 ベクトル処理装置、及び、追い越し制御回路
CA002497807A CA2497807A1 (en) 2004-02-23 2005-02-22 Vector processing apparatus with overtaking function
EP05003907A EP1569091A3 (en) 2004-02-23 2005-02-23 Vector processing apparatus with instruction re-ordering
AU2005200812A AU2005200812A1 (en) 2004-02-23 2005-02-23 Vector processing apparatus with overtaking function
BR0501160-4A BRPI0501160A (pt) 2004-02-23 2005-02-23 Aparelho processador de vetores
US11/062,561 US7526629B2 (en) 2004-02-23 2005-02-23 Vector processing apparatus with overtaking function to change instruction execution order
KR1020050014924A KR100636759B1 (ko) 2004-02-23 2005-02-23 추월 기능을 갖춘 벡터 처리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004047066A JP3988144B2 (ja) 2004-02-23 2004-02-23 ベクトル処理装置、及び、追い越し制御回路

Publications (2)

Publication Number Publication Date
JP2005235135A JP2005235135A (ja) 2005-09-02
JP3988144B2 true JP3988144B2 (ja) 2007-10-10

Family

ID=34747424

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004047066A Expired - Fee Related JP3988144B2 (ja) 2004-02-23 2004-02-23 ベクトル処理装置、及び、追い越し制御回路

Country Status (7)

Country Link
US (1) US7526629B2 (ja)
EP (1) EP1569091A3 (ja)
JP (1) JP3988144B2 (ja)
KR (1) KR100636759B1 (ja)
AU (1) AU2005200812A1 (ja)
BR (1) BRPI0501160A (ja)
CA (1) CA2497807A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495602B2 (en) * 2007-09-28 2013-07-23 Qualcomm Incorporated Shader compile system and method
JP5573134B2 (ja) * 2009-12-04 2014-08-20 日本電気株式会社 ベクトル型計算機及びベクトル型計算機の命令制御方法
JP5585304B2 (ja) * 2010-08-25 2014-09-10 日本電気株式会社 データ処理装置、メモリアクセス制御方法及びメモリアクセス制御プログラム
JP5630281B2 (ja) * 2011-01-19 2014-11-26 日本電気株式会社 ベクトル命令制御回路及びリストベクトルの追い越し制御方法
JP5732953B2 (ja) * 2011-03-24 2015-06-10 日本電気株式会社 ベクトル処理装置、ベクトル処理方法、及び、プログラム
US8521705B2 (en) * 2011-07-11 2013-08-27 Dell Products L.P. Accelerated deduplication
US9021233B2 (en) * 2011-09-28 2015-04-28 Arm Limited Interleaving data accesses issued in response to vector access instructions
CN108241504A (zh) 2011-12-23 2018-07-03 英特尔公司 经改进的提取指令的装置和方法
CN107220029B (zh) 2011-12-23 2020-10-27 英特尔公司 掩码置换指令的装置和方法
WO2013095620A1 (en) 2011-12-23 2013-06-27 Intel Corporation Apparatus and method of improved insert instructions
CN107391086B (zh) 2011-12-23 2020-12-08 英特尔公司 改进置换指令的装置和方法
US9946540B2 (en) 2011-12-23 2018-04-17 Intel Corporation Apparatus and method of improved permute instructions with multiple granularities
US20130173886A1 (en) * 2012-01-04 2013-07-04 Qualcomm Incorporated Processor with Hazard Tracking Employing Register Range Compares
WO2013180738A1 (en) 2012-06-02 2013-12-05 Intel Corporation Scatter using index array and finite state machine
US8972697B2 (en) * 2012-06-02 2015-03-03 Intel Corporation Gather using index array and finite state machine
US9098265B2 (en) * 2012-07-11 2015-08-04 Arm Limited Controlling an order for processing data elements during vector processing
JP6256088B2 (ja) * 2014-02-20 2018-01-10 日本電気株式会社 ベクトルプロセッサ、情報処理装置および追い越し制御方法
US9891914B2 (en) * 2015-04-10 2018-02-13 Intel Corporation Method and apparatus for performing an efficient scatter
CN108595371B (zh) * 2016-01-20 2019-11-19 北京中科寒武纪科技有限公司 用于向量运算的数据读取、写入及读写调度器及保留站
GB2554096B (en) * 2016-09-20 2019-03-20 Advanced Risc Mach Ltd Handling of inter-element address hazards for vector instructions
US10474461B2 (en) * 2016-09-22 2019-11-12 Qualcomm Incorporated Instruction-based synchronization of operations including at least one SIMD scatter operation
US11093438B2 (en) * 2019-01-07 2021-08-17 International Business Machines Corporation Pipelining multi-directional reduction

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4722049A (en) * 1985-10-11 1988-01-26 Unisys Corporation Apparatus for out-of-order program execution
JPH0810451B2 (ja) 1989-03-28 1996-01-31 日本電気株式会社 情報処理装置
JPH04369773A (ja) 1991-06-19 1992-12-22 Nec Corp 情報処理装置
JPH0812661A (ja) 1994-07-01 1996-01-16 Tokuyama Corp 2−オキセタノンの精製方法
JPH09231203A (ja) 1996-02-27 1997-09-05 Kofu Nippon Denki Kk ベクトルストア追い越し制御回路
US5941980A (en) * 1996-08-05 1999-08-24 Industrial Technology Research Institute Apparatus and method for parallel decoding of variable-length instructions in a superscalar pipelined data processing system
JPH10269199A (ja) 1997-03-24 1998-10-09 Kofu Nippon Denki Kk 命令追い越し処理回路
US6212622B1 (en) 1998-08-24 2001-04-03 Advanced Micro Devices, Inc. Mechanism for load block on store address generation
JP2000259609A (ja) 1999-03-12 2000-09-22 Hitachi Ltd データ処理プロセッサおよびシステム
JP3826648B2 (ja) 2000-01-13 2006-09-27 日本電気株式会社 バウンダリ実行制御装置及びバウンダリ制御方法
JP3698027B2 (ja) 2000-07-19 2005-09-21 日本電気株式会社 ベクトル収集・拡散命令実行順序制御装置
US6880073B2 (en) * 2000-12-28 2005-04-12 International Business Machines Corporation Speculative execution of instructions and processes before completion of preceding barrier operations
JP3789315B2 (ja) 2001-04-03 2006-06-21 エヌイーシーコンピュータテクノ株式会社 ベクトルギャザー命令追い越し回路
JP3789320B2 (ja) 2001-06-12 2006-06-21 エヌイーシーコンピュータテクノ株式会社 ベクトル処理装置及び該装置を用いた追い越し制御方法
JP4050226B2 (ja) 2001-06-26 2008-02-20 サン・マイクロシステムズ・インコーポレイテッド マルチプロセッサシステムにおける推測的な格納を容易にするl2ディレクトリの利用

Also Published As

Publication number Publication date
CA2497807A1 (en) 2005-08-23
BRPI0501160A (pt) 2005-10-18
AU2005200812A1 (en) 2005-09-08
JP2005235135A (ja) 2005-09-02
KR100636759B1 (ko) 2006-10-20
US7526629B2 (en) 2009-04-28
EP1569091A3 (en) 2008-01-16
EP1569091A2 (en) 2005-08-31
US20050188178A1 (en) 2005-08-25
KR20060043130A (ko) 2006-05-15

Similar Documents

Publication Publication Date Title
JP3988144B2 (ja) ベクトル処理装置、及び、追い越し制御回路
US8082420B2 (en) Method and apparatus for executing instructions
JP2004234642A (ja) 命令実行ユニットのための統合化構造のレイアウト
JP6005392B2 (ja) ルーティングのための方法及び装置
US20050223204A1 (en) Data processing apparatus adopting pipeline processing system and data processing method used in the same
US20060218124A1 (en) Performance of a data processing apparatus
US6701425B1 (en) Memory access address comparison of load and store queques
US6496924B2 (en) Data processing apparatus including a plurality of pipeline processing mechanisms in which memory access instructions are carried out in a memory access pipeline
US7685351B2 (en) External device access apparatus
WO1996027833A1 (fr) Unite de traitement informatique
US8117425B2 (en) Multithread processor and method of synchronization operations among threads to be used in same
JP4985452B2 (ja) ベクトル処理装置
US20140331025A1 (en) Reconfigurable processor and operation method thereof
WO2009098737A1 (ja) 外部デバイスアクセス装置、その制御方法及びシステムlsi
US6769049B1 (en) Memory access in a computer system having parallel execution pipelines
US20090031118A1 (en) Apparatus and method for controlling order of instruction
US7143247B1 (en) Method and apparatus for parallel execution pipeline data storage in a computer memory
JP2000181707A (ja) 命令制御装置及びその方法
KR20150081148A (ko) 프로세서 및 프로세서 제어 방법
US20080195805A1 (en) Micro Controller Unit System Including Flash Memory and Method of Accessing the Flash Memory By the Micro Controller Unit
US6775735B2 (en) Instruction pair detection and pseudo ports for cache array
US20070288675A1 (en) Bus system, bus slave and bus control method
US20030074532A1 (en) Instruction pair detection and pseudo ports for cache array
JPH03218524A (ja) 命令処理装置
JP2005135123A (ja) マイクロプロセッサでのパイプライン制御機能検証の方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070327

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070622

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070705

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 3988144

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110727

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110727

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120727

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120727

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130727

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees