JP5630281B2 - ベクトル命令制御回路及びリストベクトルの追い越し制御方法 - Google Patents

ベクトル命令制御回路及びリストベクトルの追い越し制御方法 Download PDF

Info

Publication number
JP5630281B2
JP5630281B2 JP2011008557A JP2011008557A JP5630281B2 JP 5630281 B2 JP5630281 B2 JP 5630281B2 JP 2011008557 A JP2011008557 A JP 2011008557A JP 2011008557 A JP2011008557 A JP 2011008557A JP 5630281 B2 JP5630281 B2 JP 5630281B2
Authority
JP
Japan
Prior art keywords
address
instruction
maximum
list
minimum
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.)
Active
Application number
JP2011008557A
Other languages
English (en)
Other versions
JP2012150634A (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 JP2011008557A priority Critical patent/JP5630281B2/ja
Publication of JP2012150634A publication Critical patent/JP2012150634A/ja
Application granted granted Critical
Publication of JP5630281B2 publication Critical patent/JP5630281B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Complex Calculations (AREA)

Description

本発明は、ベクトル命令制御回路及びリストベクトルの追い越し制御方法に関し、特に、ベクトルスキャタ命令及びベクトルギャザー命令といったリスクベクトル命令の追い越し制御を行うためのベクトル命令制御回路及びリストベクトルの追い越し制御方法に関する。
一般にメモリウォール問題と呼ばれるように、高いプロセッサ性能と低いメモリ性能とのギャップが計算機としての実効性能に大きな影響を及ぼしている。メモリ性能については、メモリロード命令のレイテンシが特に重要な要素である。
また、命令処理の高速化を目的としたベクトル処理方式においては、メモリアクセス命令の追い越し制御が行われている。メモリアクセス命令の追い越し制御は、メモリアクセス系の命令で先行するメモリストア系命令がアクセスする領域に、続いて発行されるメモリロード系命令のアクセス領域が重複していない場合、後続のメモリロード系命令のメモリアクセスを先に実行させることにより実現される。これにより、メモリアクセス性能の向上を図ることができる。
例えば、特許文献1では、ベクトル処理装置に関するメモリアクセス命令の追い越し制御を行う手法が開示されている。これは、ベクトルロード命令及びベクトルストア命令について、その命令で指定されるベースアドレス(先頭番地)、ディスタンス(要素間距離)、及びベクトル長(要素数)から当該命令がメモリアクセスする範囲を計算することにより、ベクトルロード命令、ベクトルストア命令相互間のアドレス依存関係(アドレスの重複)を判定し、アドレス依存関係が無い場合は、後続のベクトルロード命令を優先して実行するものである。
ここで、ベクトル処理方式で扱われるベクトル命令には、ベクトルロード命令及びベクトルストア命令の他に、ベクトルスキャタ命令及びベクトルギャザー命令といったリストベクトル命令がある。リストベクトル命令は、複数のアクセス先のアドレスを配列等により間接参照させるリストアドレスにより、アクセス先のアドレスを指定する。
特許文献1には、先行するベクトルストア命令を追い越す方法は記載されている。しかし、特許文献1には、先行するベクトルスキャタ命令を追い越すことはできないとの記載がある。これは、ベクトルスキャタ命令は、そのメモリアドレスにベクトルストア命令のような規則性がないため、当該命令がアクセスする範囲を計算することができず、後続のメモリアクセス命令とのアドレス依存関係を判定することができないからである。
一方、ベクトルスキャタ命令を追い越す方法については、特許文献2に開示される技術がある。特許文献2では、コンパイラを利用してベクトルスキャタ命令の先頭アドレス及び最終アドレスを特定している。これは、コンパイラは、ある配列をメモリに割り付ける際、割り付ける先頭アドレス及び最終アドレスを容易に知ることができるためである。そこで、コンパイラがベクトルスキャタ命令(およびベクトルギャザー命令)の前に、メモリ上に記憶しておいた当該先頭/最終アドレスをスカラレジスタに格納するロード命令を挿入する。そして、ハードウェアは、ベクトルスキャッタ命令実行時に、当該スカラレジスタに格納された当該先頭/最終アドレスを参照することで、当該ベクトルスキャッタ命令がアクセスするアドレス範囲を入手し、後続命令とのアドレス依存解析を行うという方法である。
また、上記と関連する技術として、特許文献3に開示されている技術がある。特許文献3には、コンパイラで配列を割り付けるアドレス範囲を判断する点は、特許文献2の例と同様である。特許文献3ではさらに、ベクトルスキャタ命令が対象とする配列と後続のベクトルロード命令が対象とする配列のアドレス依存解析をコンパイラで行い、その結果、追い越し可能であれば"追い越しビット"と定義される1ビットのフラグをベクトルスキャッタ命令の命令語中に設定する。ハードウェアは、ベクトルスキャタ命令を受け付けた際、命令中で指定された当該"追い越しビット"が点灯していたら、後続のベクトルロード命令は、無条件で先行ベクトルスキャタ命令を追い越して先にメモリアクセスするよう制御を行う。
特開2005−235135号公報 特開2002−032361号公報 特開2002−366538号公報
上述したように、特許文献1では、リストベクトルの追い越し制御を実現できない。そして、特許文献2及び3では、リストベクトルの追い越し制御を実現するには、メモリアクセス性能やプログラム処理速度が犠牲になってしまうという問題点があった。
具体的には、特許文献2にかかる方法には以下の問題点がある。まず、ベクトルスキャタ命令がアクセスするアドレス範囲を入手するためには、演算性能等が犠牲になる可能性が高くなる。その理由は、ベクトルスキャタ命令の1命令に対してスカラレジスタを2個消費するため、貴重な資源であるスカラレジスタの使用効率が低下するからである。
また、コンパイラは、ベクトルスキャタ命令の先頭/最終アドレスの認識できる精度が低くなる。その理由は、コンパイラが認識する先頭/最終アドレスは、配列をメモリに割り付ける際の先頭/最終アドレスであるため、当該配列を実際にベクトルスキャッタ命令でメモリへストアする際のアドレス範囲より広いアドレス範囲が指定されることになり得るからである。そのため、実際には追い越し可能なケースであっても、追い越し不可と判定されるケースがあり得る。
よって、特許文献2の実施例においては、コンパイラによりベクトルストア命令の先頭/最終アドレスを認識できるにも関わらず、ハードウェアにおいてベクトルストア命令実行時にアクセスする領域を計算する手段を備えている。
また、特許文献3では、特許文献2のようなスカラレジスタを使用することは無いため、特許文献2で発生するスカラレジスタの使用効率低下の問題は回避される。しかし、コンパイラにて常にアドレス依存関係が判別できる訳ではなく、あくまでも判別が可能な場合においてのみ"追い越しフラグ"を設定するものである。そして、特許文献3には、コンパイラで判別できない場合に、当該ビットを設定しない(0を設定)との記載もある。そのため、プログラム中の全てに適用できず、その効果も限定的である。また、特許文献3の実施例においても、ベクトルストア命令については、コンパイラで後続命令とのアドレス依存解析をおこなうのではなく、ハードウェアが命令実行時におこなうとの記載になっている。これは、コンパイラで判断するには限界があること示唆している。
本発明は、このような問題点を解決するためになされたものであり、メモリアクセスの性能及びプログラムの処理速度への影響を抑えた上で、リストベクトルの追い越し制御を実現するためのベクトル命令制御回路及びリストベクトルの追い越し制御方法を提供することを目的とする。
本発明の第1の態様にかかるベクトル命令制御回路は、外部から受け付けた複数の命令に関する情報を、アクセス先のメモリのアドレスを含めて命令単位に受け付け順に保持する命令保持回路と、前記受け付けた複数の命令のうち複数のアドレスの指定を含むリストアドレスを有するリストベクトル命令について、当該リストアドレス内のアドレスを比較して最大アドレス及び最小アドレスを抽出し、当該抽出された最大アドレス及び最小アドレスを当該リストベクトル命令に対応付けて、前記命令保持回路に格納するアドレス抽出回路と、前記命令保持回路に格納された最大アドレス及び最小アドレスに基づき、前記リストベクトル命令と、当該リストベクトル命令の後続命令との追い越し判定を行う追い越し判定回路と、
を備える。
本発明の第2の態様にかかるリストベクトルの追い越し制御方法は、複数の命令に関する情報を、アクセス先のメモリのアドレスを含めて命令単位に受け付け順に保持する命令保持回路を有するベクトル命令制御回路におけるリストベクトルの追い越し制御方法であって、前記ベクトル命令制御回路において、外部から複数のアドレスの指定を含むリストアドレスを有するリストベクトル命令を受け付け、前記リストアドレス内のアドレスを比較して最大アドレス及び最小アドレスを抽出し、前記抽出された最大アドレス及び最小アドレスを当該リストベクトル命令に対応付けて、前記命令保持回路に格納し、前記外部から前記リストベクトル命令の後続命令を受け付け、前記命令保持回路に格納された最大アドレス及び最小アドレスに基づき、前記リストベクトル命令と、前記後続命令との追い越し判定を行う。
本発明により、メモリアクセスの性能及びプログラムの処理速度への影響を抑えた上で、リストベクトルの追い越し制御を実現するためのベクトル命令制御回路及びリストベクトルの追い越し制御方法を提供することができる。
本発明の実施の形態1にかかるベクトル命令制御回路の構成を示すブロック図である。 本発明の実施の形態1にかかるリストベクトルの追い越し制御方法の処理の流れを示すフローチャートである。 本発明の実施の形態2にかかるベクトル処理装置の構成を示すブロック図である。 本発明の実施の形態2にかかる最大/最小アドレス抽出手段の構成を示すブロック図である。 本発明の実施の形態2にかかる命令保持手段の例を示す図である。
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
<発明の実施の形態1>
図1は、本発明の実施の形態1にかかるベクトル命令制御回路100の構成を示すブロック図である。ベクトル命令制御回路100は、外部からメモリへのアクセスを行う命令を受け付けて、具体的なアクセス先のアドレスに対するメモリアクセスリクエストを発行する回路である。特に、ベクトル命令制御回路100は、ベクトルスキャタ命令及びベクトルギャザー命令といったリスクベクトル命令の追い越し制御を行う。ベクトル命令制御回路100は、命令保持回路101と、アドレス抽出回路102と、追い越し判定回路103とを備える。
命令保持回路101は、外部から受け付けた複数の命令に関する情報を、アクセス先のメモリのアドレスを含めて命令単位に受け付け順に保持する。アドレス抽出回路102は、受け付けた複数の命令のうち複数のアドレスの指定を含むリストアドレスを有するリストベクトル命令について、当該リストアドレス内のアドレスを比較して最大アドレス及び最小アドレスを抽出し、当該抽出された最大アドレス及び最小アドレスを当該リストベクトル命令に対応付けて、命令保持回路101に格納する。追い越し判定回路103は、命令保持回路101に格納された最大アドレス及び最小アドレスに基づき、リストベクトル命令と、当該リストベクトル命令以外である当該リストベクトル命令の後続命令との追い越し判定を行う。
図2は、本発明の実施の形態1にかかるリストベクトルの追い越し制御方法の処理の流れを示すフローチャートである。まず、ベクトル命令制御回路100は、外部からリストベクトル命令を受け付ける(S11)。次に、アドレス抽出回路102は、リストアドレス内のアドレスを比較して、最大アドレス及び最小アドレスを抽出する(S12)。そして、アドレス抽出回路102は、最大アドレス及び最小アドレスをリストベクトル命令に対応付けて命令保持回路101に格納する(S13)。
続いて、ベクトル命令制御回路100は、リストベクトル命令以外の後続命令を受け付ける(S14)。そして、追い越し判定回路103は、最大アドレス及び最小アドレスに基づき、リストベクトル命令と後続命令の追い越し判定を行う(S15)。
これにより、追い越し判定回路103は、後続命令におけるメモリのアクセス先のアドレスの範囲が、先行するリストベクトル命令における最大アドレスと最小アドレスの間と重なるか否かを判定することができる。そして、追い越し判定回路103は、先行するリストベクトル命令における最大アドレスと最小アドレスの間と重ならないと判定した場合、当該後続命令を先行するリストベクトル命令を追い越して、先に実行させることができる。
このように、本発明の実施の形態1では、リストアドレスにおけるアクセス先の不規則性に対して、アドレス抽出回路102というハードウェアによりリストアドレス内の各アドレスについての最大値及び最小値を抽出する。そのため、特許文献2のようなコンパイラによる最大アドレス及び最小アドレスの特定と比べて、正確かつ高速にリストベクトル命令のアクセス範囲を特定することができる。よって、本発明の実施の形態1により、メモリアクセスの性能及びプログラムの処理速度への影響を抑えた上で、リストベクトルの追い越し制御を実現することができる。
<発明の実施の形態2>
続いて、上述した実施の形態1の一実施例として本発明の実施の形態2について説明する。本発明の実施の形態2は、ベクトル処理装置及び当該ベクトル処理装置を用いたメモリアクセス命令の追い越し制御方法に関するものである。本発明の実施の形態2では、ハードウェアにてベクトルスキャタ命令及びベクトルギャザー命令のアクセス範囲を判定することにより、当該ベクトルスキャタ命令およびベクトルギャザー命令とその前後のメモリアクセス命令との追い越しを可能にすることを特徴とする。
本発明の実施の形態2に係るデータ処理装置は、その好ましい一実施の形態において、HPC(High Performance Computer)向け中央演算処理装置などがあり、以下に本発明の一構成例を示す。
図3は、本発明の実施の形態2にかかるベクトル処理装置10の構成を示すブロック図である。図3によると、本発明の実施の形態2にかかるベクトル処理装置10は、命令発行部1と、ベクトル処理部2と、メモリアクセス処理部3とを備え、メモリ部4へのメモリアクセス命令を発行する。
命令発行部1は、命令の発行およびスカラ系処理を担うスカラ処理部である。命令発行部1は、スカラレジスタ群11を備える。スカラレジスタ群11は、命令発行部1がスカラ系命令を処理する際に用いるレジスタ群である。
ベクトル処理部2は、命令発行部1よりベクトル系命令を受け付け、ベクトル演算他ベクトル処理全般を担う。ベクトル処理部2は、ベクトルレジスタ群21を備える。ベクトルレジスタ群21は、ベクトル処理部2がベクトル系命令を処理する際に用いるレジスタ群である。例えば、ベクトルレジスタ群21には、ベクトル系命令に含まれるリストアドレスやストアデータが格納される。
メモリアクセス処理部3は、命令発行部1よりメモリアクセス系命令を受け付け、メモリアクセス命令間の追い越し制御を行い、メモリ部4に対して具体的なアドレスを指定したメモリアクセスリクエストを発行する。
次に、メモリアクセス処理部3は、命令保持及び追い越し制御手段30と、VLD/VSTアクセス領域計算手段31と、リストアドレス保持手段32と、ストアデータ保持手段33と、最大/最小アドレス抽出手段34と、メモリロード/ストアリクエスト生成手段35とを備える。
命令保持及び追い越し制御手段30は、命令発行部1より発行されたメモリアクセス命令を受け付けて、保持する。併せて、命令保持及び追い越し制御手段30は、それぞれのメモリアクセス命令のアクセス領域情報からメモリアクセス命令間の依存関係を解析し、命令発行順序を制御する。
VLD/VSTアクセス領域計算手段31は、ベクトルロード命令(図中はVLDと表記)及びベクトルストア命令(図中はVSTと表記)について、命令内で指定される先頭アドレス、ディスタンス及びベクトル長の情報より、当該命令がメモリアクセスする領域を計算する。
リストアドレス保持手段32は、ベクトル処理部2よりベクトルギャザー命令及びベクトルスキャタ命令のリストアドレスを受け付け、保持する記憶装置である。
ストアデータ保持手段33は、ベクトル処理部2よりベクトルストア命令及びベクトルスキャタ命令のストアデータを受け付け、保持する記憶装置である。
最大/最小アドレス抽出手段34は、ベクトル処理部2より転送されるリストアドレスのアクセス領域を判定するため、転送されるリストアドレスの中から最小アドレスと最大アドレスを抽出する。
メモリロード/ストアリクエスト生成手段35は、命令保持及び追い越し制御手段30より発行された命令59を受け付ける。メモリロード/ストアリクエスト生成手段35は、当該命令がベクトルギャザー命令であれば、リストアドレス保持手段32からリストアドレス62の転送を受け付ける。メモリロード/ストアリクエスト生成手段35は、当該命令がベクトルスキャタ命令であれば、リストアドレス保持手段32からリストアドレス62及びストアデータ保持手段33からストアデータ63の転送を受け付ける。メモリロード/ストアリクエスト生成手段35は、当該命令がベクトルストア命令であれば、ストアデータ保持手段33からストアデータ63の転送を受け付ける。そして、メモリロード/ストアリクエスト生成手段35は、転送された情報からメモリロードリクエスト又はメモリストアリクエストを生成して、メモリ部4へのリクエスト発行64を行う。
続いて、図3を参照してベクトル処理装置10の動作について説明する。まず、命令発行部1は、メモリ部4からフェッチした命令を解読し、その命令種に応じて命令をベクトル処理部2又はメモリアクセス処理部3に発行する。具体的には、命令発行部1は、解読した命令種がスカラ系の命令を示す場合、自己でスカラ系処理を行った後に、メモリアクセス処理部3に対してアクセス先のアドレスを指定したメモリアクセス命令を発行(命令発行51及び命令52)する。また、命令発行部1は、解読した命令種がベクトルロード命令又はベクトルストア命令を示す場合、メモリアクセス処理部3に対してアクセス先を示す情報含むベクトルロード命令又はベクトルストア命令をメモリアクセス命令として発行(命令発行51)する。また、命令発行部1は、解読した命令種がベクトルスキャタ命令又はベクトルロード命令を示す場合、ベクトル処理部2に対してベクトルスキャタ命令又はベクトルロード命令を発行(命令発行54)する。また、命令発行部1は、発行するそれぞれの命令に、命令の識別ができるよう命令IDと呼ぶ識別子を付与した上で発行するものとする。
ここで、命令発行部1からベクトル処理部2へ発行される命令は、ベクトル処理部2の内部に有するベクトルレジスタに格納されたデータに対して様々な演算処理を施す各種ベクトル演算命令の他、ベクトルストア命令、ベクトルスキャタ命令及びベクトルギャザー命令と呼ばれるメモリアクセス命令がある。
ベクトルストア命令とは、ベクトルレジスタに格納されたデータをメモリに書き込む命令である。ベクトルスキャタ命令とは、ベクトルレジスタに格納されたデータを別のベクトルレジスタに格納されたリストアドレスで指定されるメモリ番地へ書き込む命令である。ベクトルギャザー命令とは、ベクトルレジスタに格納されたリストアドレスで指定されるメモリ番地からベクトルレジスタにデータを読み出す命令である。
ベクトル処理部2は、ベクトルストア命令を受け付けた場合、命令内で指定されるベクトルレジスタからストアデータを読み出し、メモリアクセス処理部3へ転送する(ストアデータ転送56)。ここで、ベクトル処理部2は、ストアデータの他、その制御情報として転送データが有効であることを示すValidビット、1命令分のストアデータの最初/最後の転送であることを示すStart/Endビット、どの命令に対するストアデータかを示す命令IDを付与する。そして、転送されたストアデータは、メモリアクセス処理部3内のストアデータ保持手段33で保持される。
ベクトル処理部2は、ベクトルギャザー命令を受け付けた場合、命令内で指定されるベクトルレジスタからリストアドレスを読み出し、メモリアクセス処理部3へ転送する(リストアドレス転送55)。ここで、ベクトル処理部2は、リストアドレスの他、その制御情報として転送データが有効であることを示すValidビット、1命令分のストアデータの最初/最後の転送であることを示すStart/Endビット、どの命令に対するストアデータかを示す命令IDを付与する。そして、転送されたリストアドレスは、メモリアクセス処理部3内の、リストアドレス保持手段32で保持される。
ベクトル処理部2は、ベクトルスキャタ命令を受け付けた場合、命令内で指定される2つのベクトルレジスタから、それぞれリストアドレス/ストアデータを読み出し、それぞれメモリアクセス処理部3へ転送する(リストアドレス転送55及びストアデータ転送56)。ただし、ベクトル処理部2の内部処理の状況によって、それぞれの転送可能なタイミングは異なるため、リストアドレス転送55の転送タイミングとストアデータ転送56の転送タイミングは非同期である。リストアドレス/ストアデータの他、その制御情報として転送データが有効であることを示すValidビット、1命令分のストアデータの最初/最後の転送であることを示すStart/Endビット、どの命令に対するリストアドレス/ストアデータかを示す命令IDを付与する。そして、転送されたリストアドレス及びストアデータは、それぞれメモリアクセス処理部3内の、リストアドレス保持手段32およびストアデータ保持手段33で保持される。
また、ベクトル処理部2からメモリアクセス処理部3へリストアドレスが転送された場合、リストアドレス保持手段32の他、最大/最小アドレス抽出手段34へも当該リストアドレスが転送される。
最大/最小アドレス抽出手段34は、受け取った1命令分のリストアドレス群の中から、アドレス値が最大のアドレスと最小のアドレスを抽出し、当該最大/最小アドレスを命令保持及び追い越し制御手段30へ転送する(最大/最小アドレス57)。一般に、ベクトル処理部2は、内部に複数のベクトルパイプを有し、各パイプが並列動作しており、同時に複数のリストアドレスが転送されてくる。その中から最大/最小リストアドレスを抽出する。
図4は、本発明の実施の形態2にかかる最大/最小アドレス抽出手段34の構成を示すブロック図である。最大/最小アドレス抽出手段34は、選択回路341と、フリップフロップF11〜F18と、最小アドレス選択回路群343と、最小アドレス選択回路344と、セレクタ345と、フリップフロップF21〜26と、論理積回路346とを備える。
ここで、フリップフロップF11及びF21には、上述したValidビット、フリップフロップF12及びF22には、上述したStartビット、フリップフロップF13及びF23には、上述したEndビット、フリップフロップF14及びF24には、上述した命令IDが格納される。また、フリップフロップF15〜F18には、リストアドレスに含まれるアドレスのうち4個が保持される。
ここで、フリップフロップF15〜F18は、アドレス保持回路342ということができる。尚、4個は一例であり、これに限定されない。そのため、リストアドレスに、N個(Nは、2以上の自然数)のアドレスの指定が含まれる場合、アドレス保持回路342は、アドレスを保持するためのM個(Mは、2以上かつN未満の自然数)のフリップフロップを備えればよい。
また、フリップフロップF25には、最大アドレスが格納される。フリップフロップF26は、最小アドレスが格納される。そのため、フリップフロップF25及びF26は、最大最小アドレス保持回路ということができる。
選択回路341は、ベクトル処理部2からリストアドレスを受け付け、リストアドレスから4個ごとにアドレスを選択してアドレス保持回路342に格納する。併せて、選択回路341は、フリップフロップF11〜F14に値を格納する。このとき、選択回路341は、リストアドレス内の最初の4個を選択した場合、フリップフロップF12にStartビットを有効にして格納する。また、選択回路341は、リストアドレス内の2番目以降の4個を選択した場合、フリップフロップF12にStartビットを無効にして格納する。また、選択回路341は、リストアドレスからアドレスを選択した際に、未選択のアドレスがなくなった場合、フリップフロップF13にEndビットを有効にして格納する。また、選択回路341は、同一のリストアドレス内からアドレスを選択する間は、フリップフロップF14に同一の命令IDを格納する。
最小アドレス選択回路群343は、アドレス保持回路342に保持された4個のアドレスのうち最小値を選択する。最小アドレス選択回路群343は、最小アドレス選択回路3431〜3433を含む。最小アドレス選択回路3431は、フリップフロップF15に格納されたアドレス0とフリップフロップF16に格納されたアドレス1とを比較し、より小さい値を選択する。最小アドレス選択回路3432は、フリップフロップF17に格納されたアドレス2とフリップフロップF18に格納されたアドレス3とを比較し、より小さい値を選択する。そして、最小アドレス選択回路3433は、最小アドレス選択回路3431により選択された最小値と、最小アドレス選択回路3432により選択された最小値とを比較し、より小さい値を選択する。
セレクタ345は、フリップフロップF12に格納されたStartビットが有効である場合、最小アドレス選択回路群343により選択された最小値を最小アドレスとしてフリップフロップF25に格納する。
最小アドレス選択回路344は、最小アドレス選択回路群343により選択された最小値と、フリップフロップF25に格納された最小アドレスとを比較して最小値によりフリップフロップF25を更新する。
尚、図4では、最小アドレス選択回路群343、最小アドレス選択回路344、セレクタ345に対応する構成である最大アドレス選択回路群、最大アドレス選択回路、セレクタについては、図示を省略する。最大アドレス選択回路群は、アドレス保持回路342に保持された4個のアドレスのうち最大値を選択する。また、最大アドレス選択回路及びセレクタを用いて、最大アドレス選択回路群により選択された最大値と、フリップフロップF26に格納された最大アドレスとを比較して最大値によりフリップフロップF26を更新する。
そのため、最小アドレス選択回路群343及び最大アドレス選択回路群は、アドレス保持回路342に保持された4個のアドレスのうち最大値及び最小値を選択する第1の最大最小アドレス選択回路である。また、最小アドレス選択回路344及び最大アドレス選択回路は、フリップフロップF26に保持された最大アドレスと、最大アドレス選択回路群により選択された最大値とのうち最大値を最大アドレスとして選択し、フリップフロップF25に保持された最小アドレスと、最小アドレス選択回路群343により選択された最小値とのうち最小値を最小アドレスとして選択し、当該選択された最大アドレス及び最小アドレスによりフリップフロップF26及びF25を更新する第2の最大最小アドレス選択回路である。
また、図4のステージ1及びステージ2は、各クロックサイクルで保持される情報を示している。以下では、最大/最小アドレス抽出手段34における処理の流れを説明する。選択回路341は、ベクトル処理部2から転送されたリストアドレス及びその制御情報(Valid、Start、End、命令ID)を、ステージ1のフリップフロップF11〜F18に格納する。その後、ステージ1にて、最小アドレス選択回路群343及び最大アドレス選択回路群は、図4のアドレス0〜3について大小比較を繰り返すことにより、最終的に1つの最小及び最大アドレスを選択する。ここで、ステージ1のStartビットが点灯している場合、1命令のリストアドレス転送の初回を示しており、セレクタ345は、上記で選択された最小アドレス及び最大アドレスをステージ2のフリップフロップF25及びF26に格納する。ステージ1のStartビットが消灯している場合、1命令のリストアドレス転送の初回以外であることを示しており、この場合はステージ2のフリップフロップF25及びF26に格納されている最小アドレス及び最大アドレスと、ステージ1で選択された最小アドレス及び最大アドレスのとの間でさらに大小比較を行った上で、ステージ2のフリップフロップF25及びF26に格納する。最終的に1命令のリストアドレス転送が完了し、ステージ2のフリップフロップF23に格納されるEndビットが点灯した時点で、最小アドレス、最大アドレスフリップフロップフリップフロップF25及びF26に格納されている最小アドレス及び最大アドレスを命令保持及び追い越し制御手段30へと転送する。
また、命令発行部1からメモリアクセス処理部3へ発行される命令はメモリアクセスに関する命令全般であり、上述のベクトルストア命令、ベクトルスキャタ命令、ベクトルギャザー命令の他、ベクトルロード命令、スカラロード命令、スカラストア命令がある。ここで、ベクトルロード命令とは、命令発行部1から指定される先頭アドレス、ディスタンス(要素間距離)、ベクトル長(要素数)から計算されるアドレスで指定されるメモリ番地からベクトルレジスタへ読み出す命令である。スカラロード命令とは、命令処理部1に有するスカラレジスタへのデータ格納を行う命令である。逆に、スカラストア命令は、スカラレジスタに格納されたデータをメモリに書き込む命令である。
VLD/VSTアクセス領域計算手段31は、命令発行部1から発行されたベクトルロード命令及びベクトルストア命令について、命令内で指定される先頭アドレス、ディスタンス(要素間距離)及びベクトル長(要素数)、要素長の情報から当該命令がアクセスする領域を計算し、その結果得られるアクセス領域の最小アドレス及び最大アドレスを、命令保持及び追い越し制御手段30へ出力する(最大/最小アドレス53)。アクセス領域は、例えば、以下の(1)式により計算できる。
{先頭アドレス+(ベクトル長−1)×ディスタンス+要素長} ・・・(1)
また、スカラロード命令及びスカラストア命令の場合は、ベクトル長(要素数)=1として計算することで、同様の計算でアクセス領域が求まる。
また、命令発行部1から発行された命令は、命令保持及び追い越し手段30にて一旦保持され、当該命令のアドレス、さらにメモリへストアする命令であればストアデータの準備が整うまで待機する。
ここで、スカラロード命令及びスカラストア命令については、命令の内部でメモリへのアドレスが指定され、スカラストア命令はさらにストアデータが指示されているため、命令保持及び追い越し手段30に格納された時点で全ての準備が整っていることになる。
また、ベクトルロード命令についても、先頭アドレス、ディスタンス(要素間距離)、ベクトル長(要素数)が命令で指定されているため、命令保持及び追い越し手段30に格納された時点で各ベクトル要素のアドレスを計算する準備が整っていることになる。
一方、ベクトルストア命令、ベクトルギャザー命令及びベクトルスキャタ命令の3命令については、ベクトル処理部2が当該命令を受け付けた後、ベクトルレジスタからリストアドレス及び/又はストアデータがメモリアクセス処理部3へ転送され、それぞれリストアドレス保持手段32及び/又はストアデータ保持手段33に格納されることで準備が整うことになる。よって、当該3命令については、他の命令に比べて命令保持及び追い越し手段30で待機する時間が長く、特にベクトルスキャタ命令については、リストアドレスとストアデータの両方を待たなければならないため特に待ち時間が長くなる傾向にある。
次に、命令保持及び追い越し手段30で保持する情報の例を、図5を用いて説明する。つまり、図5は、本発明の実施の形態2にかかる命令保持手段の例を示す図である。命令保持及び追い越し手段30は、命令間の追い越しを行うため、少なくとも2命令を保持する必要がある。図5では、N個の命令を保持する例としてN個のエントリを持つバッファとして記載している。Nは、各装置において、命令を保持すべき数、必要な追い越し数等、要求性能に応じで決定される数である。このNエントリのバッファは、命令保持及び追い越し制御手段30が命令を受け付けた順に若番エントリから登録する一方、命令の出力は命令間の追い越しをおこなうため入力順とは異なり、任意のエントリ番号から命令を出力できるバッファとして制御を行う。任意のエントリから出力されるので、ある時点では、各エントリの登録が歯抜け状態になる(例えばエントリ2が発行された直後は、エントリ2は登録がなく、エントリ0,1,3,4・・・・は登録があるという状態)。そこで、歯抜けの状態になったら若番エントリへ詰める制御も行う。
1エントリに登録する情報は、図5に示すとおりであるが個々の意味は以下に説明する。命令登録Vは、エントリに、後述の命令種別、命令IDを登録したことを示す。例えば、命令発行部1から命令を受け付けると当該ビットを点灯し、同エントリから命令を発行すると消灯する。命令種別は、ベクトルロード命令、ベクトルスキャタ命令等、命令種類を示す。命令種別には、例えば、オペコードを登録する。命令IDは、命令の識別子を示す。命令IDには、例えば、命令発行部1から発行される命令に付随する命令IDが登録される。命令種別が同じ場合、この命令IDにより区別できる。アクセス領域登録Vは、最小アドレス及び最大アドレスで指定されるアクセス領域が登録されていることを示す。同エントリから命令を発行すると当該Vビットも消灯する。ベクトルギャザー命令、ベクトルスキャタ命令の場合は、当該命令のリストアドレスがリストアドレス保持手段32に転送完了したことも意味する。
最大アドレス及び最小アドレスには、命令のアクセス領域を示す最大アドレス及び最小アドレスが登録される。ストアデータ転送完了Vは、ベクトルストア命令及びベクトルスキャタ命令の場合に、当該命令のストアデータが、ストアデータ保持手段33に転送完了したことを示す。例えば、命令保持及び追い越し制御手段30は、ベクトル処理部2からストアデータ転送完了指示58を受け付けたときに点灯し、当該命令を発行したら消灯する。
以上の情報から、命令保持及び追い越し手段30から発行可能な命令を判定する。そして、あるエントリMに登録された命令が、発行可能か否かは、
(1)自分の発行準備が整っている
かつ、
(2)自分より前にいる全ての命令とアドレス依存関係が無い
ことを満たすことにより判定される。
ここで、「(1)自分の発行準備が整っている」とは、自命令のアドレスとストア命令であれば、さらにストアデータが準備できている状態である。例えば、発行準備が完了すると"エントリMの発行準備完了フラグ"に"1"が点灯することにより、(1)の条件を満たすことを示すものとする。ここで、"エントリMの発行準備完了フラグ"は、以下の(2)式で表すことができる。
エントリMの発行準備完了フラグ=(エントリMの命令登録V)*(エントリMのアクセス領域登録V)*(エントリMのストアデータ転送完了V) ・・・(2)
次に、「(2)自分より前にいる全ての命令とアドレス依存関係が無い」については、自命令の最大/最小アドレスと、先行命令の最大/最小アドレスとの大小比較を行うことで判定する。例えば、自命令(エントリM)と先行命令(エントリM−1)とのアドレス依存関係が無いこと場合に、"エントリMとエントリM−1の依存関係フラグ"に"1"を点灯する。一方、アドレス依存関係がある場合に"エントリMとエントリM−1の依存関係フラグ"に"0"を点灯する。"エントリMとエントリM−1の依存関係フラグ"は、以下の(3)式で表すことができる。
エントリMとエントリM−1の依存関係フラグ=(エントリM−1の命令登録V)*(エントリM−1のアクセス領域登録V)*((エントリMの最大アドレス<エントリM−1の最小アドレス)|(エントリMの最小アドレス>エントリM−1の最大アドレス))|(!エントリM−1の命令登録V) ・・・(3)
ここで、(3)式の最右項は、エントリM−1に命令の登録が無い場合に、アドレス依存関係無しとみなすためのものである。
以上の判定結果を用いて、あるエントリMに登録された命令の発行可能条件は、以下の(4)式にて表される。"エントリMの発行可能条件"は、発行可能場合に"1"が点灯する。
エントリMの発行可能条件= エントリMの発行準備完了フラグ&
エントリMとエントリM−1の依存関係フラグ&
エントリMとエントリM−2の依存関係フラグ&
エントリMとエントリM−3の依存関係フラグ&



エントリMとエントリ2の依存関係フラグ&
エントリMとエントリ1の依存関係フラグ&
エントリMとエントリ0の依存関係フラグ ・・・(4)
以上の判定により、あるエントリに登録されている命令の発行可能条件が整うと"1"が点灯、それ以外は"0"となる。
命令保持及び追い越し手段30は、発行可能条件が点灯した命令を、メモリロード/ストアリクエスト生成手段35に送出する。
複数エントリの命令の発行可能条件が同時に点灯する場合もあり得るが、その場合は複数の発行可能命令の中から1命令を選抜したうえでメモリロード/ストアリクエスト生成手段35に送出する。その選抜方法は、古い命令を優先する先入先出方式やストア系命令よりもロード系命令を優先させるロード優先方式など、様々な方法が考えられる。
また、ベクトルギャザー命令及びベクトルスキャタ命令の場合は、メモリロード/ストアリクエスト生成手段35への命令59を送出すると同時に、リストアドレス保持手段32へリストアドレス転送指示60を送出する。また、ベクトルストア命令及びベクトルスキャタ命令の場合は、ストアデータ保持手段33へストアデータ転送指示61を送出する。リストアドレス転送指示60及びストアデータ転送指示61により命令IDも通知する。リストアドレス保持手段32は、リストアドレス転送指示60を受けると、通知された命令IDから当該命令のリストアドレス62を即座にメモリロード/ストアリクエスト生成手段35に転送する。
また、ストアデータ保持手段33は、ストアデータ転送指示61を受けると、通知された命令IDから当該命令のストアデータ63を即座にメモリロード/ストアリクエスト生成手段35に転送する。
メモリロード/ストアリクエスト生成手段35は、命令保持及び追い越し手段30から命令を受け付けると、メモリ部4向けのリクエストを生成する。ベクトルロード命令、ベクトルストア命令、ベクトルギャザー命令、ベクトルスキャタ命令の各命令は、1命令で複数のメモリ番地へアクセスをおこなう必要があり、メモリロード/ストアリクエスト生成手段35にて、1つの命令から複数のメモリロード/ストアリクエストに分解する。
リクエストは、メモリへのロード/ストアなど種類を識別するためのリクエストコマンド及びアクセスするアドレス又はストア系命令の場合はストアデータを少なくとも含むものである。
その際、ベクトルギャザー命令及びベクトルスキャタ命令の場合は、リストアドレス保持手段32から転送されたリストアドレス62を、また、ベクトルストア命令及びベクトルスキャタ命令の場合は、ストアデータ保持手段33から転送されたストアデータ63を用いて、それぞれのリクエストを生成する。
また、ベクトルロード命令及びベクトルストア命令の場合は、当該命令がアクセスするアドレスは、メモリロード/ストアリクエスト生成手段35から送出される命令内にて、先頭アドレス、ディスタンス(要素間距離)及びベクトル長(要素数)の形で指示されるため、これら情報により各要素のアドレスを以下の(5)式のように算出する。
要素番号0のアドレス=先頭アドレス
要素番号1のアドレス=先頭アドレス+ディスタンス×1
要素番号2のアドレス=先頭アドレス+ディスタンス×2



要素番号Aのアドレス=先頭アドレス+ディスタンス×A ・・・(5)
メモリロード/ストアリクエスト生成手段35は、生成したリクエストをメモリ部4へ発行する(リクエスト発行64)。
本発明の実施の形態2により、以下の効果がある。
(1)メモリアクセス性能を向上させる。
(2)ソフトウェア(コンパイラ)への負担を無くす。
本発明の実施の形態2により、リストアドレスの転送が完了したが、ストアデータの転送を待っている状態でベクトルスキャタ命令の実行を保留している間、後続命令は当該ベクトルスキャタ命令とのアドレス依存判定をおこなった上で、当該ベクトルスキャタ命令を追い越して実行することができる。
また、リストアドレスの転送が完了したベクトルギャザー命令は、ストアデータ待ちで待機中の先行するベクトルストア命令またはベクトルスキャタ命令とのアドレス依存判定をおこなった上で追い越して実行することができる。
さらに、そのアドレス依存判定はハードウェアが実行時に実際のアドレスを用いるため、精度の高いアドレス依存チェックが可能となる。特許文献2では、追い越し可能とソフトウェア(コンパイラ)が確実に認識できる場合にのみ、追い越しを実施するというものであったのに対し、本発明の実施の形態2のハードウェアによる精度の高いアドレス依存チェックにより、追い越し可能なケースが増加し、その結果メモリアクセス性能を高めることが可能である。
また、上述の通り、追い越し可否判定を全てハードウェアで実現しているため、ソフトウェア(コンパイラ)はアドレスを意識する必要が無くなり、特許文献2及び3にて説明したような負担が一切なくなる。
尚、本発明の実施の形態2は、次のように言い換えることもできる。本発明の実施の形態2にかかるベクトル処理装置は、先行するベクトルスキャタ命令と後続のロード命令との追い越し制御をおこなうベクトル処理装置である。そして、ベクトルスキャタ命令実行時に、実際にアクセスするアドレスから当該命令がアクセスする領域を、ハードウェアにて判定する機能を有する。当該機能により判定されたアクセス領域を用いて後続ロード命令とのアドレス依存解析を行い、その結果アドレス依存が無ければ後続ロード命令を優先して実行する手段を有するものである。
さらに、本発明の実施の形態2にかかるベクトル処理装置は、リストベクトル命令におけるストアデータを保持するストアデータ保持回路をさらに備え、命令保持回路は、リストベクトル命令におけるストアデータがストアデータ保持回路に格納されたことを示すストアデータ格納完了情報を当該リストベクトル命令に対応付けてさらに保持し、追い越し判定回路は、前記命令保持回路に、前記リストベクトル命令に対応付けられた最大アドレス及び最小アドレスが保持されており、かつ、前記ストアデータ格納完了情報が格納されていた場合に、当該リストベクトル命令について前記追い越し判定の対象とする。
また、本発明の実施の形態2にかかるリストベクトルの追い越し制御方法は、次のように言い換えることもできる。すなわち、リストアドレスには、N個(Nは、2以上の自然数)のアドレスの指定を含み、前記ベクトル命令制御回路は、前記最大アドレス及び前記最小アドレスを保持する最大最小アドレス保持回路をさらに有し、前記ベクトル命令制御回路において、前記リストアドレスからM個(Mは、2以上かつN未満の自然数)のアドレスを第1のグループとして選択し、前記第1のグループのうち最大値及び最小値を第1の最大アドレス及び第1の最小アドレスとして選択し、前記選択された第1の最大アドレス及び第1の最小アドレスを前記最大最小アドレス保持回路へ格納し、前記リストアドレスから前記第1のグループ以外のM個以内のアドレスを第2のグループとして選択し、前記第2のグループのうち最大値及び最小値を第2の最大アドレス及び第2の最小アドレスとして選択し、前記第1の最大アドレスと前記第2の最大アドレスとのうち最大値を前記リストベクトル命令における最大アドレスとして抽出して、当該最大アドレスにより前記最大最小アドレス保持回路を更新し、前記第1の最小アドレスと前記第2の最小アドレスとのうち最小値を前記リストベクトル命令における最小アドレスとして抽出して、当該最小アドレスにより前記最大最小アドレス保持回路を更新する。
<発明の実施の形態3>
続いて、本発明の実施の形態3では、上述した実施の形態2に改良を加えて、ハードウェア量の削減を行うものである。本発明の実施の形態3では、命令保持回路は、アクセス先のメモリのアドレスとして、当該アドレスの一部のビットを保持し、アドレス抽出回路は、リストアドレス内のアドレスの一部のビットを比較して、当該一部のビットを最大アドレス及び最小アドレスとして抽出する。これにより、比較対象にビット幅を減少し、高速な処理を実現できる。また、最大/最小アドレスの下位ビットを参照しないことにより、ハードウェア量の削減を実現することができる。特に、一部のビットは、上位の所定数のビットであることが望ましい。例えば、アドレスの下位8ビットを参照しないことで、図5に示す命令保持手段における(最大アドレス側の8ビット+最小アドレス側の8ビット)×Nエントリ=16×Nビットのフリップフロップ削減が可能である。さらに、図4に示す最小アドレス選択回路3431〜3433及び最小アドレス選択回路344の比較対象ビットを8ビット削減することができ、ハードウェアを削減可能である。ただし、8ビットを削減することにより、64B境界以下が無視され、アドレス依存関係の分解能が低下するため、ハードウェア量と性能とのトレードオフがある。
<その他の発明の実施の形態>
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
100 ベクトル命令制御回路
101 命令保持回路
102 アドレス抽出回路
103 追い越し判定回路
10 ベクトル処理装置
1 命令発行部
11 スカラレジスタ群
2 ベクトル処理部
21 ベクトルレジスタ群
3 メモリアクセス処理部
30 命令保持及び追い越し制御手段
31 VLD/VSTアクセス領域計算手段
32 リストアドレス保持手段
33 ストアデータ保持手段
34 最大/最小アドレス抽出手段
35 メモリロード/ストアリクエスト生成手段
4 メモリ部
51 命令発行
52 命令
53 最大/最小アドレス
54 命令発行
55 リストアドレス転送
56 ストアデータ転送
57 最大/最小アドレス
58 ストアデータ転送完了指示
59 命令
60 リストアドレス転送指示
61 ストアデータ転送指示
62 リストアドレス
63 ストアデータ
64 リクエスト発行
341 選択回路
342 アドレス保持回路
343 最小アドレス選択回路群
3431 最小アドレス選択回路
3432 最小アドレス選択回路
3433 最小アドレス選択回路
344 最小アドレス選択回路
345 セレクタ
346 論理積回路
F11 フリップフロップ
F12 フリップフロップ
F13 フリップフロップ
F14 フリップフロップ
F15 フリップフロップ
F16 フリップフロップ
F17 フリップフロップ
F18 フリップフロップ
F21 フリップフロップ
F22 フリップフロップ
F23 フリップフロップ
F24 フリップフロップ
F25 フリップフロップ
F26 フリップフロップ

Claims (10)

  1. 外部から受け付けた複数の命令に関する情報を、アクセス先のメモリのアドレスを含めて命令単位に受け付け順に保持する命令保持回路と、
    前記受け付けた複数の命令のうち複数のアドレスの指定を含むリストアドレスを有するリストベクトル命令について、当該リストアドレス内のアドレスを比較して最大アドレス及び最小アドレスを抽出し、当該抽出された最大アドレス及び最小アドレスを当該リストベクトル命令に対応付けて、前記命令保持回路に格納するアドレス抽出回路と、
    前記命令保持回路に格納された最大アドレス及び最小アドレスに基づき、前記リストベクトル命令と、当該リストベクトル命令の後続命令との追い越し判定を行う追い越し判定回路と、
    を備えるベクトル命令制御回路。
  2. 前記リストアドレスには、N個(Nは、2以上の自然数)のアドレスの指定を含み、
    前記アドレス抽出回路は、
    アドレスを保持するためのM個(Mは、2以上かつN未満の自然数)のアドレス保持回路と、
    前記リストアドレスからM個ごとにアドレスを選択して前記M個のアドレス保持回路に格納する選択回路と、
    前記M個のアドレス保持回路に保持されたアドレスのうち最大値及び最小値を選択する第1の最大最小アドレス選択回路と、
    前記最大アドレス及び前記最小アドレスを保持する最大最小アドレス保持回路と、
    前記最大最小アドレス保持回路に保持された最大アドレスと、前記第1の最大最小アドレス選択回路により選択された最大値とのうち最大値を前記最大アドレスとして選択し、前記最大最小アドレス保持回路に保持された最小アドレスと、前記第1の最大最小アドレス選択回路により選択された最小値とのうち最小値を前記最小アドレスとして選択し、当該選択された最大アドレス及び最小アドレスにより前記最大最小アドレス保持回路を更新する第2の最大最小アドレス選択回路と、
    を有することを特徴とする請求項1に記載のベクトル命令制御回路。
  3. 前記リストベクトル命令におけるストアデータを保持するストアデータ保持回路をさらに備え、
    前記命令保持回路は、前記リストベクトル命令におけるストアデータが前記ストアデータ保持回路に格納されたことを示すストアデータ格納完了情報を当該リストベクトル命令に対応付けてさらに保持し、
    前記追い越し判定回路は、前記命令保持回路に、前記リストベクトル命令に対応付けられた最大アドレス及び最小アドレスが保持されており、かつ、前記ストアデータ格納完了情報が格納されていた場合に、当該リストベクトル命令について前記追い越し判定の対象とする
    ことを特徴とする請求項1又は2に記載のベクトル命令制御回路。
  4. 前記命令保持回路は、前記アクセス先のメモリのアドレスとして、当該アドレスの一部のビットを保持し、
    前記アドレス抽出回路は、前記リストアドレス内のアドレスの一部のビットを比較して、当該一部のビットを前記最大アドレス及び前記最小アドレスとして抽出する
    ことを特徴とする請求項1乃至3のいずれか1項に記載のベクトル命令制御回路。
  5. 前記一部のビットは、上位の所定数のビットであることを特徴とする請求項4に記載のベクトル命令制御回路。
  6. 複数の命令に関する情報を、アクセス先のメモリのアドレスを含めて命令単位に受け付け順に保持する命令保持回路を有するベクトル命令制御回路におけるリストベクトルの追い越し制御方法であって、
    前記ベクトル命令制御回路において、
    外部から複数のアドレスの指定を含むリストアドレスを有するリストベクトル命令を受け付け、
    前記リストアドレス内のアドレスを比較して最大アドレス及び最小アドレスを抽出し、
    前記抽出された最大アドレス及び最小アドレスを当該リストベクトル命令に対応付けて、前記命令保持回路に格納し、
    前記外部から前記リストベクトル命令の後続命令を受け付け、
    前記命令保持回路に格納された最大アドレス及び最小アドレスに基づき、前記リストベクトル命令と、前記後続命令との追い越し判定を行う
    リストベクトルの追い越し制御方法。
  7. 前記リストアドレスには、N個(Nは、2以上の自然数)のアドレスの指定を含み、
    前記ベクトル命令制御回路は、前記最大アドレス及び前記最小アドレスを保持する最大最小アドレス保持回路をさらに有し、
    前記ベクトル命令制御回路において、
    前記リストアドレスからM個(Mは、2以上かつN未満の自然数)のアドレスを第1のグループとして選択し、
    前記第1のグループのうち最大値及び最小値を第1の最大アドレス及び第1の最小アドレスとして選択し、
    前記選択された第1の最大アドレス及び第1の最小アドレスを前記最大最小アドレス保持回路へ格納し、
    前記リストアドレスから前記第1のグループ以外のM個以内のアドレスを第2のグループとして選択し、
    前記第2のグループのうち最大値及び最小値を第2の最大アドレス及び第2の最小アドレスとして選択し、
    前記第1の最大アドレスと前記第2の最大アドレスとのうち最大値を前記リストベクトル命令における最大アドレスとして抽出して、当該最大アドレスにより前記最大最小アドレス保持回路を更新し、
    前記第1の最小アドレスと前記第2の最小アドレスとのうち最小値を前記リストベクトル命令における最小アドレスとして抽出して、当該最小アドレスにより前記最大最小アドレス保持回路を更新する
    ことを特徴とする請求項6に記載のリストベクトルの追い越し制御方法。
  8. 前記ベクトル命令制御回路は、前記リストベクトル命令におけるストアデータを保持するストアデータ保持回路をさらに有し、
    前記命令保持回路は、前記リストベクトル命令におけるストアデータが前記ストアデータ保持回路に格納されたことを示すストアデータ格納完了情報を当該リストベクトル命令に対応付けてさらに保持し、
    前記ベクトル命令制御回路において、
    前記命令保持回路に、前記リストベクトル命令に対応付けられた最大アドレス及び最小アドレスが保持されており、かつ、前記ストアデータ格納完了情報が格納されていた場合に、当該リストベクトル命令について前記追い越し判定の対象とする
    ことを特徴とする請求項6又は7に記載のリストベクトルの追い越し制御方法。
  9. 前記命令保持回路は、前記アクセス先のメモリのアドレスとして、当該アドレスの一部のビットを保持し、
    前記ベクトル命令制御回路において、
    前記リストアドレス内のアドレスの一部のビットを比較して、当該一部のビットを前記最大アドレス及び前記最小アドレスとして抽出する
    ことを特徴とする請求項6乃至8のいずれか1項に記載のリストベクトルの追い越し制御方法。
  10. 前記一部のビットは、上位の所定数のビットであることを特徴とする請求項9に記載のリストベクトルの追い越し制御方法。
JP2011008557A 2011-01-19 2011-01-19 ベクトル命令制御回路及びリストベクトルの追い越し制御方法 Active JP5630281B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011008557A JP5630281B2 (ja) 2011-01-19 2011-01-19 ベクトル命令制御回路及びリストベクトルの追い越し制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011008557A JP5630281B2 (ja) 2011-01-19 2011-01-19 ベクトル命令制御回路及びリストベクトルの追い越し制御方法

Publications (2)

Publication Number Publication Date
JP2012150634A JP2012150634A (ja) 2012-08-09
JP5630281B2 true JP5630281B2 (ja) 2014-11-26

Family

ID=46792822

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011008557A Active JP5630281B2 (ja) 2011-01-19 2011-01-19 ベクトル命令制御回路及びリストベクトルの追い越し制御方法

Country Status (1)

Country Link
JP (1) JP5630281B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5522283B1 (ja) * 2013-02-27 2014-06-18 日本電気株式会社 リストベクトル処理装置、リストベクトル処理方法、プログラム、コンパイラ、及び、情報処理装置
JP2015049832A (ja) 2013-09-04 2015-03-16 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 定数ロードのオーバーヘッドを削減する方法、装置及びプログラム
JP6256088B2 (ja) * 2014-02-20 2018-01-10 日本電気株式会社 ベクトルプロセッサ、情報処理装置および追い越し制御方法
JP6340887B2 (ja) * 2014-04-14 2018-06-13 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3733842B2 (ja) * 2000-07-12 2006-01-11 日本電気株式会社 ベクトルスキャタ命令制御回路及びベクトル型情報処理装置
JP3698027B2 (ja) * 2000-07-19 2005-09-21 日本電気株式会社 ベクトル収集・拡散命令実行順序制御装置
JP3789315B2 (ja) * 2001-04-03 2006-06-21 エヌイーシーコンピュータテクノ株式会社 ベクトルギャザー命令追い越し回路
JP3789320B2 (ja) * 2001-06-12 2006-06-21 エヌイーシーコンピュータテクノ株式会社 ベクトル処理装置及び該装置を用いた追い越し制御方法
JP3988144B2 (ja) * 2004-02-23 2007-10-10 日本電気株式会社 ベクトル処理装置、及び、追い越し制御回路
JP5573134B2 (ja) * 2009-12-04 2014-08-20 日本電気株式会社 ベクトル型計算機及びベクトル型計算機の命令制御方法

Also Published As

Publication number Publication date
JP2012150634A (ja) 2012-08-09

Similar Documents

Publication Publication Date Title
JP3542020B2 (ja) 複数予測分岐命令にわたる命令フェッチの位置合わせ命令キャッシュ処理を実行するプロセッサ装置およびプロセッサ制御方法
US6401192B1 (en) Apparatus for software initiated prefetch and method therefor
JP6463633B2 (ja) ベクトルアクセス命令に応答してデータにアクセスするためのベクトルデータアクセスユニット及びデータ処理装置
JP5209933B2 (ja) データ処理装置
US7721066B2 (en) Efficient encoding for detecting load dependency on store with misalignment
US10437594B2 (en) Apparatus and method for transferring a plurality of data structures between memory and one or more vectors of data elements stored in a register bank
JP2008107983A (ja) キャッシュメモリ
US7822948B2 (en) Apparatus, system, and method for discontiguous multiple issue of instructions
JP5451579B2 (ja) 適応的最適化された比較/交換オペレーション
CN109101276A (zh) 在cpu中执行指令的方法
JP5630281B2 (ja) ベクトル命令制御回路及びリストベクトルの追い越し制御方法
JP5625809B2 (ja) 演算処理装置、情報処理装置及び制御方法
US10437603B2 (en) Super-thread processor
CN108027736B (zh) 使用通过对物理寄存器预分配的乱序重命名的运行时代码并行化
US9176738B2 (en) Method and apparatus for fast decoding and enhancing execution speed of an instruction
JP2020095345A (ja) 演算処理装置、メモリ装置、及び演算処理装置の制御方法
CN115004150A (zh) 用于预测和调度软件流水化循环中的复制指令的方法和装置
TW200931443A (en) Apparatus for predicting memory access and method thereof
JP6481549B2 (ja) 情報処理装置および情報処理装置の制御方法
CN111026442B (zh) 一种cpu中用于消除程序无条件跳转开销的方法及装置
JP2004005710A (ja) 情報処置装置
CN103514124B (zh) 缩短存储操作繁忙时间
JP6344022B2 (ja) 演算処理装置および演算処理装置の制御方法
JPH06230963A (ja) メモリアクセス制御装置
JP2005071351A (ja) プロセッサおよびプロセッサの動作方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140825

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: 20140909

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140922

R150 Certificate of patent or registration of utility model

Ref document number: 5630281

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150