JP4720915B2 - ベクトル命令間追い越し判定装置と方法 - Google Patents

ベクトル命令間追い越し判定装置と方法 Download PDF

Info

Publication number
JP4720915B2
JP4720915B2 JP2009043867A JP2009043867A JP4720915B2 JP 4720915 B2 JP4720915 B2 JP 4720915B2 JP 2009043867 A JP2009043867 A JP 2009043867A JP 2009043867 A JP2009043867 A JP 2009043867A JP 4720915 B2 JP4720915 B2 JP 4720915B2
Authority
JP
Japan
Prior art keywords
address
instruction
vector
comparison
address comparison
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
JP2009043867A
Other languages
English (en)
Other versions
JP2010198439A (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 JP2009043867A priority Critical patent/JP4720915B2/ja
Publication of JP2010198439A publication Critical patent/JP2010198439A/ja
Application granted granted Critical
Publication of JP4720915B2 publication Critical patent/JP4720915B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、ベクトル演算装置に関し、特に、ベクトル命令間での追い越し判定を行う装置と方法に関する。
ベクトル演算装置において、先行するベクトルストア命令のメモリアクセス領域に後続のベクトルロード命令のメモリアクセス領域が重なっていない場合、後続のベクトルロード命令に先にメモリアクセスを実行させ、メモリアクセスの高速化を図るベクトルストア命令の追い越し制御が行われている。ベクトル命令の追い越し制御については例えば特許文献1の記載が参照される。
図6は、ベクトル演算装置において最大16命令のベクトルストア命令をベクトルロード命令が追い越すことができる構成の典型例を示す図である(なお、図6は関連技術の説明のため、本発明者が新たに作成した図面である)。
図6に示すように、命令パイプ部1、アドレス比較部2’、追い越し判定部3、要素展開部4を備えている。命令パイプ部1は、供給されたベクトルロード命令、ベクトルストア命令が通過する(図6の丸印1)。
命令は追い越し判定部3を経て要素展開部4でベクトル命令の要素が展開されメモリネットワークへ出力される(図6の丸印3)。
ベクトルストア命令は、要素展開部4でストアデータがベクトルストアデータバッファ5に揃うまで追い越し判定部3に保持される。
アドレス比較部2’は、先行するベクトルストア命令と命令パイプ部1を通過しているベクトルロード命令のアドレスを比較しアドレス依存関係をチェックする。チェック結果は、追い越し判定部3へ出力される。
アドレス比較部2’は後続のリクエストとの比較に使用するため、命令パイプ部1を通過したベクトルストア命令のアドレス情報を保持する機構を持つ。
アドレス比較部2’は、先行する1つのベクトルストア命令のアドレスと後続のベクトルロード命令のアドレスを比較するアドレス比較論理を16個備えており、1サイクルで最大16個のベクトルストア命令と後続のベクトルロード命令のアドレス比較(並列比較)が可能である。アドレス比較部2’はベクトルストア命令のアドレス情報を格納するレジスタ(命令アドレスレジスタ)と、アドレス比較論理と、アドレス比較論理の比較結果を格納するレジスタ(比較結果レジスタ)を備えている。
追い越し判定部3は、ストアデータがベクトルストアデータバッファ5に揃っていないベクトルストア命令を保持し、後続の命令との順序保証をする機能をもつ。
追い越し判定部3は、アドレス比較部2’でのアドレス比較結果を用い、先行するベクトルストア命令とアドレスの依存がない(例えばメモリアクセス領域が重ならない)ベクトルロード命令を要素展開部4に出力する(図6の丸印2)。
要素展開部4は、ベクトル命令のアドレス(ベースアドレス)、ディスタンス(ベースアドレスからの距離)、要素数情報(ストアデータの数)から、メモリアクセス要素に展開する。ベクトルストア命令の場合、ストアデータを展開アドレス(要素展開部4で展開された、ストアデータの格納先アドレス)とマージし、メモリネットワークに出力する(図6の丸印3)。図6では、メモリアクセス要素(マージしたストアデータと展開アドレス)を、8個のメモリポート(メモリポート0〜7)から出力する。1つのベクトルストア命令の要素数がメモリネットワークのポート数より多い場合、複数サイクルをかけ、メモリネットワークへ出力される。例えば図6において、1つのベクトルストア命令の要素数(ストアデータの数)が16の場合、1サイクルあたり8つのメモリポート(メモリポート0〜7)から8個の要素がパラレルに出力され、合計2サイクルかけ、16個の要素がメモリネットワークへ出力される。
特開平9−231203号公報
以下に本発明による分析を与える。
メモリネットワークの効率化を図るため、ベクトル命令(ストア−ロード)間の追い越し命令数を増加させるには、図6に示したように、アドレス比較論理(アドレス比較回路)の数をストアの命令数に合わせて増加させる必要があった。
アドレス比較論理には、加算器、比較器が含まれており、多くのハードウェア量を必要とする。
したがって、本発明の目的は、ハードウェア量の増大を抑止しながら、命令間の追い越し数を増やし、メモリネットワークの効率化を実現するベクトル命令間追い越し判定装置と方法を提供することにある。
本発明によれば、先行するベクトルストア命令と後続のベクトルロード命令間のアドレスの依存関係をチェックするアドレス比較部が、チェック対象の複数のベクトルストア命令に対して共通に1つのアドレス比較論理を備え、前記1つのアドレス比較論理は、複数のベクトルストア命令と後続のベクトルロード命令のアドレスの依存関係のチェックを、時分割で行い、ベクトル命令のベースアドレス、ディスタンス、要素数からメモリアクセス要素に展開する要素展開部での展開処理と、前記アドレス比較部におけるアドレス比較処理とが並行して実行可能とされている。
本発明によれば、先行するベクトルストア命令と後続するベクトルロード命令のアドレスを比較し、追い越し判定を行う方法であって、
複数のベクトルストア命令と後続のベクトルロード命令のアドレスの依存関係のチェックを1つのアドレス比較論理で時分割で行い、
ベクトル命令のアドレス、ディスタンス、要素数情報からメモリアクセス要素に展開する展開処理と、前記アドレス比較論理でのアドレス比較処理とが並行して実行可能とされる、ベクトル命令間追い越し判定方法が提供される。
本発明によれば、ハードウェア量の増大を抑止しながら、ベクトルメモリアクセス命令間の追い越し数を増やし、メモリネットワークの効率化を実現することができる。
本発明の一実施例の構成を示す図である。 本発明の一実施例の動作の一例を説明するタイミング図である。 本発明の一実施例の動作の別の例を説明するタイミング図である。 本発明の他の実施例の構成を示す図である。 本発明の一実施例の動作の一例を説明するタイミング図である。 関連技術の構成例を示す図である。
本発明は、先行するベクトルストア命令と後続のベクトルロード命令のアドレスの依存関係をチェックする論理を増やさずに、アドレス比較対象命令(ベクトルストア命令)の数を増やし、複数サイクル(複数T)でチェックを行う。アドレス比較のTAT(Turn Around Time)は増加するが、ベクトル命令の特徴であるアドレス展開時のTATによって複数のアドレスア比較で増加したTATを隠蔽する。
アドレス比較部(2)では、1つのアドレス比較論理(アドレス比較回路)を、複数のベクトルストア命令で共有し、1つのアドレス比較論理で複数サイクル(図1では4サイクル)かけて複数のベクトルストア命令と後続のベクトルロード命令のアドレスの依存関係のチェックを行っている。
ベクトル命令は、メモリの出力ポート以上の要素を持っている場合、複数のサイクル数をかけ、要素展開部(図1の14)において要素展開され、メモリポートから不図示のメモリへ出力される。
アドレス比較部(2)において、アドレス比較論理は、比較対象の複数のベクトルストア命令で共有され、複数サイクルかけて、アドレス比較するが、これを、要素展開部(4)におけるベクトル命令の展開処理のTATで隠蔽することで、少ないハードウェア量で追い越し対象数(ベクトルロード命令で追い越されるベクトルストア命令の数)を増やすことを実現する。
従来、要素展開部(4)でベクトル命令の要素展開を実行中、要素展開部4よりも上流のユニットはHOLD(ホールド)状態に設定され、アドレス比較論理は使用されていない。
これに対して、本発明においては、ベクトル命令の要素展開部(4)においてベクトル命令の要素展開を行うタイミングに、アドレス比較論理でアドレス比較を行うことが可能とされており、これにより、1つのアドレス比較論理により順次時分割で行われる複数のベクトルストア命令の比較動作のTATを隠蔽し、性能低下の回避、及び回路規模の縮減を実現しながら、追い越し命令数(ベクトルロード命令で追い越されるベクトルストア命令の数)を増やしている。
すなわち、本発明によれば、要素展開部(4)におけるベクトル命令のアドレス展開に要するTAT内に隠れる範囲で、アドレス比較を複数サイクル(T)に渡って行うことで、アドレス比較論理を有効に活用することにより、ハードウェア量の増加を防ぐことができる。
本発明においては、アドレス比較論理の個数と比較対象のリクエスト(ベクトルストア命令)の個数と、を、1:1(従来)から、1:n(n≧2)となるようにし、時間nT(Tは1サイクル期間をかけてアドレスの比較を行う。(n−1)TのTAT増となるが、これを、ベクトル命令の展開処理のTATで隠蔽する。以下実施例に即して説明する。
図1は、本発明の一実施例の構成を示す図である。本実施例において、ベクトル命令間追い越し判定装置は、ベクトル演算装置内のCPU内の命令発行部と、メモリ間に構成される。図1を参照すると、本実施例のベクトル命令間追い越し判定装置は、命令パイプ部1と、アドレス比較部2と、追い越し判定部3と、要素展開部4を備えている。
命令パイプ部1は、供給されたベクトルロード命令、ベクトルストア命令が通過する(図1の丸印1)。
命令は、追い越し判定部3を経て要素展開部4でベクトル命令の要素が展開され、メモリネットワークへ出力される(図1の丸印3)。
ベクトルストア命令は、要素展開部4でストアデータがベクトルストアデータバッファ5に揃うまで、追い越し判定部3で保持される。
アドレス比較部2は、後続のリクエストとの比較に使用するため、命令パイプ部1を通過した複数のベクトルストア命令のアドレス情報を保持する機構を持つ。アドレス比較部2は、先行するベクトルストア命令のアドレス情報と、命令パイプ部1を通過しているベクトルロード命令のアドレス情報を比較し、アドレス依存関係をチェックする。具体的には、アドレス比較部2はメモリアクセス対象領域が一致するか否かを比較判定し、一致/不一致情報を比較結果として出力する。アドレス比較部2でのチェック結果は、追い越し判定部3へ出力される。
本実施例において、アドレス比較部2は、先行するベクトルストア命令に対して1:1でアドレス比較論理(アドレス比較回路)を持つのではなく、比較対象の複数のベクトルストア命令に対して1つのアドレス比較論理(アドレス比較回路)を備えている。アドレス比較論理は、複数のベクトルストア命令と後続のベクトルロード命令のアドレス比較を時分割で行う。アドレス比較論理は、1サイクルに1つのベクトルストア命令と後続のベクトルロード命令のアドレス比較を行う場合、複数のベクトルストア命令と後続のベクトルロード命令のアドレス比較を、複数サイクルかけて行う。図1に示す例では、アドレス比較部2は、グループ0〜3の4つのグループを有し、各グループは、4つのベクトルストア命令で1つのアドレス比較論理を共有する。
アドレス比較部2において、各グループは、4つのベクトルストア命令のアドレス情報を保持する4つのレジスタ(A、B、C、Dレジスタ)の1つを4つのグループ間で共通に選択する第1のセレクタを備え、アドレス比較論理では、第1のセレクタ(セレクタ1)で選択された命令アドレスとベクトルロード命令のアドレスとを比較する。アドレス比較論理による比較結果は、第1のセレクタ(セレクタ1)での選択に対応した選択動作を行う第2のセレクタ(セレクタ2)を介して、比較結果を保持する4つのレジスタ(G、H、I、Jレジスタ)のうちの1つに格納される。例えばA、B、C、Dレジスタにベクトルストア命令のアドレス情報が格納されている場合、アドレス比較論理によるベクトルロード命令のアドレス情報との比較は、時分割で4サイクルかけて行われ、比較結果は、対応するG、H、I、Jレジスタにそれぞれ格納される。
追い越し判定部3は、ストアデータがベクトルストアデータバッファ5に揃っていないベクトルストア命令を保持し、後続の命令との順序保証をする機能を備えている。
追い越し判定部3は、アドレス比較部2のチェック結果を用い、先行するベクトルストア命令とアドレスの依存がないベクトルロード命令を出力する(図1の丸印2)。
要素展開部4は、ベクトル命令のアドレス(ベースアドレス)、ディスタンス、要素数情報からメモリアクセス要素に展開する。ベクトルストア命令の場合、ストアデータを展開アドレスとマージし、メモリネットワークに出力する(図1の丸印3)。1つのベクトル命令の要素数がメモリネットワークのポート数よりも多い場合、複数サイクルをかけ、メモリネットワークへ展開される。
次に、本実施例の動作を説明する。図1に示す構成において、命令パイプ部1内の丸印1の位置にベクトルストア命令が供給されると、命令パイプ部1のFレジスタに格納されると同時に、アドレス比較部2のAレジスタに、ベクトルストア命令のアドレス情報が格納される。
命令は、命令パイプ部1のKレジスタを通り、追い越し判定部3に到達する。追い越し判定部3は、ベクトルストアデータ(ベクトルストア命令でメモリに格納される複数のストアデータ)がベクトルストアデータバッファ5に全てに格納されるまで待機する。
ベクトルストアデータバッファ5に全てのストアデータが格納されると、ベクトルストアデータバッファ5からの通知が、追い越し判定部3へ送信される(図1の丸印5)。
ベクトルストア命令は、要素展開部4に送られ(図1の丸印2)、メモリアクセス要素に展開される(図1の丸印3)。
図2は、先行する仕掛り中のベクトルストア命令が追い越し判定部3にあり、要素数32のベクトルロード命令が3命令(命令0、命令1、命令2)供給され、すべてのベクトルストア命令を追い越す動作例のタイムチャートを示す図である。
先行するベクトルストア命令が仕掛り中であった場合に、図1の丸印1にベクトルロード命令が供給されると、命令パイプ部1のFレジスタに格納され、次のサイクルで先行するベクトルストア命令のアドレスと比較される。
図2の期間a、b、cで示すように、命令パイプ部1のFレジスタに格納されたベクトルロード命令と、アドレス比較部2の各グループのA、B、C、Dレジスタに格納されたベクトルストア命令間でのアドレス比較が、4サイクル(4T)間で行われる。命令パイプ部1のレジスタFのベクトルロード命令はアドレス比較の4サイクルの間保持される。
次のサイクルで、ベクトルロード命令は命令パイプ部1のKレジスタに格納され、最大16のベクトルストア命令とのアドレス比較結果も、各グループのG、H、I、Jレジスタにそれぞれ格納される。
次のサイクルで、ベクトルロード命令は、先行するベクトルストア命令とのアドレス比較結果と共に追い越し判定部3に格納され、追い越し判定される。
追い越し判定部3において、ベクトルロード命令(命令0、1、2)が先行する全てのベクトルストア命令との間にアドレスの重なりがない場合、要素展開部4へ送信され(図1の丸印2)、図2の期間x、y、zのように、メモリアクセス要素に展開される(図1の丸印3)。
より詳細には、図2において、例えば期間aの最初のサイクルでは、グループ0、1、2、3のアドレス比較論理においてAレジスタと命令0のアドレス(命令パイプ部1のFレジスタの出力)の比較が行われ、比較結果は、グループ0、1、2、3のGレジスタに格納される。期間aの2番目のサイクルでは、グループ0、1、2、3のアドレス比較論理においてBレジスタと命令0のアドレスの比較が行われ、比較結果は、グループ0、1、2、3のHレジスタに格納される。期間aの3番目のサイクルでは、グループ0、1、2、3のアドレス比較論理においてCレジスタと命令0のアドレスの比較が行われ、比較結果は、グループ0、1、2、3のIレジスタに格納される。期間aの4番目のサイクルでは、グループ0、1、2、3のアドレス比較論理においてDレジスタと命令0のアドレスの比較が行われ、比較結果は、グループ0、1、2、3のJレジスタに格納される。期間aの4番目のサイクルでは、命令0は命令パイプ部1のKレジスタに保持出力され、期間bの最初のサイクルで追い越し判定部3から命令0が出力され(命令0は先行する仕掛り中のベクトルストア命令を追い越す)、要素展開部4は、命令0(ベクトルロード命令)のベースアドレス、ディスタンス、要素数から、要素0〜要素31に展開し、8つのメモリポート(メモリポート0〜7)から4サイクル(期間x参照)出力する。ベクトルロード命令を展開した各要素0〜31はリクエスト(リードアクセスとアドレス)を有する。
期間bの最初のサイクルでは、グループ0、1、2、3のアドレス比較論理においてAレジスタと命令1のアドレス(命令パイプ部1のFレジスタの出力)の比較が行われ、比較結果は、グループ0、1、2、3のGレジスタに格納される。期間bの2番目のサイクルでは、グループ0、1、2、3のアドレス比較論理においてBレジスタと命令1のアドレスの比較が行われ、比較結果は、グループ0、1、2、3のHレジスタに格納される。期間bの3番目のサイクルでは、グループ0、1、2、3のアドレス比較論理においてCレジスタと命令1のアドレスの比較が行われ、比較結果は、グループ0、1、2、3のIレジスタに格納される。期間bの4番目のサイクルでは、グループ0、1、2、3のアドレス比較論理においてDレジスタと命令1のアドレスの比較が行われ、比較結果は、グループ0、1、2、3のJレジスタに格納される。期間bの4番目のサイクルでは、命令1は命令パイプ部1のKレジスタに保持出力され、期間cの最初のサイクルで追い越し判定部3から命令1が出力され(命令1は先行する仕掛り中のベクトルストア命令を追い越す)、要素展開部4は、命令1(ベクトルロード命令)のベースアドレス、ディスタンス、要素数から、要素0〜要素31に展開し、8つのメモリポート(メモリポート0〜7)から4サイクル(期間y参照)出力する。
期間cの最初のサイクルでは、グループ0、1、2、3のアドレス比較論理においてAレジスタと命令2のアドレス(命令パイプ部1のFレジスタの出力)の比較が行われ、比較結果は、グループ0、1、2、3のGレジスタに格納される。期間cの2番目のサイクルでは、グループ0、1、2、3のアドレス比較論理においてBレジスタと命令2のアドレスの比較が行われ、比較結果は、グループ0、1、2、3のHレジスタに格納される。期間cの3番目のサイクルでは、グループ0、1、2、3のアドレス比較論理においてCレジスタと命令2のアドレスの比較が行われ、比較結果は、グループ0、1、2、3のIレジスタに格納される。期間cの4番目のサイクルでは、グループ0、1、2、3のアドレス比較論理においてDレジスタと命令2のアドレスの比較が行われ、比較結果は、グループ0、1、2、3のJレジスタに格納される。期間cの4番目のサイクルでは、命令2は命令パイプ部1のKレジスタに保持出力され、次のサイクルで追い越し判定部3から命令2が出力され(命令2は先行する仕掛り中のベクトルストア命令を追い越す)、要素展開部4は、命令2(ベクトルロード命令)のベースアドレス、ディスタンス、要素数から、要素0〜要素31に展開し、8つのメモリポート(メモリポート0〜7)から4サイクル(期間y参照)出力する。上記の通り、図2の動作例は、追い越し判定部3で最大16個まで待機しているベクトルストア命令を、後に連続して命令パイプ部1に供給される3つのベクトルロード命令0、1、2が追い越していく例を示しており、メモリポートに出力される展開要素も期間x、y、zと連続している。
なお、図2の動作例は、本実施例のベクトル命令間の追い越し動作の一例を示したものであり、本発明はかかる動作に制限されるものでないことは勿論である。例えば命令0(ベクトルロード命令)で追い越されたベクトルストア命令に関して、ストアデータがベクトルストアデータバッファ5に全てに格納されると、追い越し判定部3で待機していた当該ベクトルストア命令は要素展開部4に出力され、ベクトルストア命令を展開した32個の展開要素がメモリに出力される(この場合、命令1(ベクトルロード命令)による追い越しは行われない)。
以上説明したように、本実施例においては、以下に記載するような効果を奏する。
アドレス比較論理を複数の比較対象で共有することにより、少ないハードウェア量で多くの命令間の追い越し制御を実現できることである。
ベクトル命令がアドレス展開でTATを要する構成を利用してアドレス比較論理を複数の比較対象で共有することにより、アドレス比較のTATの増加を隠蔽することができることである。
次に、本発明の第2の実施例を説明する。本発明の第2の実施例の基本的構成は、上記の通りであるが、アドレス比較のサイクル数(T数)の制御についてさらに工夫している。図4は、本発明の第2の実施例の構成を示す図である。本実施例は、図1の構成において、命令供給部分に、比較制御部6を備えている。
本実施例は、仕掛り中の被比較対象のベクトルストア命令数をカウントし、サイクル数(T数)をさらに削減することを実現する。アドレス比較のサイクル数を、前記実施例のように、固定とするのではなく、仕掛り命令数(アドレス比較部で仕掛り中のベクトルストア命令の数)によって変化させる。
図3に示すように、ベクトルロード命令0の要素数(要素展開部4で展開した要素数)が16以下であった場合には、期間dのように、アドレス比較で増加したTATがメモリネットワーク出力へのTATの増加としてみえてしまう。
要素展開部4で展開後の要素数が少ないベクトル命令に対しても、効率よく処理するためには、アドレス比較のサイクル数は短くすべきである。
図2、図3を参照して説明した前記実施例では、アドレス比較のサイクル数を固定的に4サイクル(4=比較対象命令共有数、図2の期間a、b、c参照)としている。これに対して、本実施例では、仕掛り中のベクトルストア命令の個数を管理することで、アドレス比較のサイクル数(T数)を削減することができる。
アドレス比較部2は、1つのアドレス比較論理を、4つの命令で共有しており、そのグループが4つある。1サイクルの間に処理できる命令数は、各グループあたり1命令であり、合計4命令まで可能である。
本実施例においては、前述したように、仕掛り中の命令数を管理することで、アドレス比較のサイクル数を短くすることを可能としている。
仕掛り中のベクトルストア命令数が4命令以下の場合、アドレス比較のサイクル数は1、
仕掛り中のベクトルストア命令数が5命令以上、8命令以下の場合、アドレス比較のサイクル数は2、
仕掛り中のベクトルストア命令数が9命令以上、12命令以下の場合、アドレス比較のサイクル数は3、
仕掛り中のベクトルストア命令数が13命令以上の場合、アドレス比較のサイクル数は4、
となる。
比較制御部6は、仕掛り中のベクトルストアの命令の個数をカウントするカウンタ(不図示)を備えている。比較制御部6内のこのカウンタは、ベクトルストア命令の発行に応答してカウンタ値を+1(1つ加算)し、追い越し判定部3からベクトルストア命令が出力されると、追い越し判定部3から通知を受け(図4の丸印6)、カウンタ値を−1(1つ減算)する。
また、比較制御部6は、先頭のベクトルストア命令を指示するポインタを持つ。このポインタは値0から開始し、追い越し判定部3からベクトルストア命令が出力されると、追い越し判定部3から通知を受け(図4の丸印6)、カウントアップすることで、常に仕掛り中の先頭のベクトルストア命令をポイントすることができる。
比較制御部6は、アドレス比較部2の各グループのA、B、C、Dレジスタに格納するベクトルストア命令の格納順を制御する信号を生成する。
格納する順番は、各グループのAレジスタから順に、Bレジスタ、Cレジスタ、Dレジスタと格納する。
すなわち、[グループ0のAレジスタ]→[グループ1のAレジスタ]→[グループ2のAレジスタ]→[グループ3のAレジスタ]→[グループ0のBレジスタ]→[グループ1のBレジスタ]→[グループ2のBレジスタ]→[グループ3のBレジスタ]→[グループ0のCレジスタ]→[グループ1のCレジスタ]→[グループ2のCレジスタ]→[グループ3のCレジスタ]→[グループ0のDレジスタ]→[グループ1のDレジスタ]→[グループ2のDレジスタ]→[グループ3のDレジスタ]→[グループ0のAレジスタ]に戻る。
比較制御部6のベクトルストア命令の個数(仕掛り命令数)をカウントするカウンタ(不図示)のカウント値から、制御サイクル数を求め、先頭ポインタ位置から、比較開始(A,B,C,D)位置を求め、比較制御部6のパイプラインレジスタL、Mへ投入する。
図5に、比較制御部6の仕掛りベクトルストア命令の数が8(仕掛り命令数カウンタの値は8)で、先頭ポインタがグループ1のDレジスタを示している時点からの動作例を示す。アドレス比較のサイクル数が2であるため、比較制御部6のLレジスタはDレジスタ、Aレジスタを交互に選択する。グループ0〜3のアドレス比較部2では、Dレジスタと命令0のアドレスを比較し比較結果をJレジスタに格納し、次のサイクルでAレジスタと命令0のアドレスを比較し比較結果をGレジスタに格納し、次のサイクルでDレジスタと命令1のアドレスを比較し比較結果をJレジスタに格納し、さらに次のサイクルでAレジスタと命令1のアドレスを比較し比較結果をGレジスタに格納する。追い越し判定部3は、命令0(ベクトルロード命令)を出力した後1サイクル間をあけて命令1(ベクトルロード命令)を要素展開部4に出力する。要素展開部4は、ベクトルロード命令を16個の要素に展開し8つのメモリポート(メモリポート0〜メモリポート7)から2サイクルかけて出力する。
本実施例によれば、アドレス比較のサイクルを、期間eのように、2サイクルとすることにより、メモリネットワークへの出力期間f(16の要素を8個のメモリポートに出力)に隙間をあけることなくリクエスト(メモリアクセス要求)を出力することができる。このように、本実施例では、アドレス比較のサイクル数を、仕掛りベクトル命令数に応じて制御する(減らす)ことにより、展開後の要素数の少ないベクトル命令を処理する際にも、アドレス比較のTATの増分を、メモリネットワークへのスループットに悪影響を与えないようにすることができるという効果を奏する。
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
1 命令パイプ部
2、2’ アドレス比較部
3 追い越し判定部
4 要素展開部
5 ベクトルストアデータバッファ
6 比較制御部

Claims (10)

  1. 先行するベクトルストア命令と後続のベクトルロード命令間のアドレスの依存関係をチェックするアドレス比較部が、
    チェック対象の複数のベクトルストア命令に対して共通に1つのアドレス比較論理を備え、
    前記1つのアドレス比較論理は、複数のベクトルストア命令と後続のベクトルロード命令のアドレスの依存関係のチェックを時分割で行い、
    ベクトル命令のベースアドレス、ディスタンス、要素数からメモリアクセス要素に展開する要素展開部での展開処理と、前記アドレス比較論理によるアドレス比較処理とが並行して実行可能とされている、ことを特徴とするベクトル命令間追い越し判定装置。
  2. 前記1つのアドレス比較論理により複数のベクトルストア命令とベクトルロード命令のアドレス比較を時分割で行う期間が、前記要素展開部での展開処理の期間内に収まり、前記1つのアドレス比較論理によりアドレス比較を時分割で行うことで増加した時間は、前記要素展開部での展開処理の期間で隠蔽される、ことを特徴とする請求項1に記載のベクトル命令間追い越し判定装置。
  3. 前記アドレス比較部が複数のグループを備え、
    複数のグループの各々が、
    複数のベクトルストア命令のアドレス情報を保持する複数の命令アドレスレジスタと、
    前記アドレス比較論理での比較結果を格納する複数の比較結果レジスタと、
    前記複数の命令アドレスレジスタのうち1つを選択して前記アドレス比較論理に供給する第1のセレクタと、
    前記第1のセレクタで選択された命令アドレスレジスタのアドレス情報と後続のベクトルロード命令のアドレス情報を比較する前記アドレス比較論理と、
    前記アドレス比較論理での比較結果を受け、前記比較結果を前記複数の比較結果レジスタのうち対応する比較結果レジスタに出力する第2のセレクタと、
    を備えたことを特徴とする請求項1又は2に記載のベクトル命令間追い越し判定装置。
  4. 前記第1及び第2のセレクタは複数グループ間で共通に選択される、ことを特徴とする請求項3に記載のベクトル命令間追い越し判定装置。
  5. 前記アドレス比較部で仕掛り中のベクトルストア命令の個数を管理し、アドレス比較のサイクル数を可変させる比較制御部を備えたことを特徴とする請求項1に記載のベクトル命令間追い越し判定装置。
  6. 前記比較制御部は、仕掛り中のベクトルストアの命令の個数をカウントするカウンタと、
    仕掛り中の先頭のベクトルストア命令を指示するポインタと、
    を備えている、請求項5に記載のベクトル命令間追い越し判定装置。
  7. 前記アドレス比較部が複数のグループを備え、
    複数のグループの各々が、
    複数のベクトルストア命令のアドレス情報を保持する複数の命令アドレスレジスタと、
    前記アドレス比較論理での比較結果を格納する複数の比較結果レジスタと、
    前記複数の命令アドレスレジスタのうち1つを選択して前記アドレス比較論理に供給する第1のセレクタと、
    前記第1のセレクタで選択された命令アドレスレジスタのアドレス情報と後続のベクトルロード命令のアドレス情報を比較する前記アドレス比較論理と、
    前記アドレス比較論理での比較結果を受け、前記比較結果を前記複数の比較結果レジスタのうち対応する比較結果レジスタに出力する第2のセレクタと、
    を備え、
    前記比較制御部は、前記アドレス比較部の各グループの命令アドレスレジスタにアドレス情報を格納するベクトルストア命令の格納順を制御する信号を生成する請求項5又は6に記載のベクトル命令間追い越し判定装置。
  8. 請求項1乃至7のいずれか1項に記載のベクトル命令間追い越し判定装置を、CPUの命令発行部とメモリ間に備えたベクトル演算装置。
  9. 先行するベクトルストア命令と後続するベクトルロード命令のアドレスを比較し、追い越し判定を行う方法であって、
    複数のベクトルストア命令と後続のベクトルロード命令のアドレスの依存関係のチェックを1つのアドレス比較論理で時分割で行い、
    ベクトル命令のアドレス、ディスタンス、要素数情報からメモリアクセス要素に展開する展開処理と、前記アドレス比較論理でのアドレス比較処理とが並行して実行可能とされる、ベクトル命令間追い越し判定方法。
  10. 仕掛り中のベクトルストア命令の個数を管理し、アドレス比較のサイクル数を可変させる請求項9に記載のベクトル命令間追い越し判定方法。
JP2009043867A 2009-02-26 2009-02-26 ベクトル命令間追い越し判定装置と方法 Expired - Fee Related JP4720915B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009043867A JP4720915B2 (ja) 2009-02-26 2009-02-26 ベクトル命令間追い越し判定装置と方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009043867A JP4720915B2 (ja) 2009-02-26 2009-02-26 ベクトル命令間追い越し判定装置と方法

Publications (2)

Publication Number Publication Date
JP2010198439A JP2010198439A (ja) 2010-09-09
JP4720915B2 true JP4720915B2 (ja) 2011-07-13

Family

ID=42823082

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009043867A Expired - Fee Related JP4720915B2 (ja) 2009-02-26 2009-02-26 ベクトル命令間追い越し判定装置と方法

Country Status (1)

Country Link
JP (1) JP4720915B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5469106B2 (ja) * 2011-02-01 2014-04-09 エヌイーシーコンピュータテクノ株式会社 コンピュータシステム、試験装置、試験方法、及び試験プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09231203A (ja) * 1996-02-27 1997-09-05 Kofu Nippon Denki Kk ベクトルストア追い越し制御回路
JPH10269199A (ja) * 1997-03-24 1998-10-09 Kofu Nippon Denki Kk 命令追い越し処理回路
JP3789320B2 (ja) * 2001-06-12 2006-06-21 エヌイーシーコンピュータテクノ株式会社 ベクトル処理装置及び該装置を用いた追い越し制御方法
JP5057054B2 (ja) * 2007-07-24 2012-10-24 日本電気株式会社 演算処理装置、演算処理方法

Also Published As

Publication number Publication date
JP2010198439A (ja) 2010-09-09

Similar Documents

Publication Publication Date Title
US9424045B2 (en) Data processing apparatus and method for controlling use of an issue queue to represent an instruction suitable for execution by a wide operand execution unit
US7401208B2 (en) Method and apparatus for randomizing instruction thread interleaving in a multi-thread processor
US7418576B1 (en) Prioritized issuing of operation dedicated execution unit tagged instructions from multiple different type threads performing different set of operations
US7694111B2 (en) Processor employing loadable configuration parameters to reduce or eliminate setup and pipeline delays in a pipeline system
JPS59128670A (ja) ベクトル処理装置
JP6493088B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP2008181551A (ja) ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング
CN111183418A (zh) 可配置硬件加速器
KR20220062068A (ko) 멀티-레벨 멀티-스트라이딩을 통한 직접 메모리 액세스 아키텍처
JP2007034392A (ja) 情報処理装置及びデータ処理方法
US11023242B2 (en) Method and apparatus for asynchronous scheduling
JP4720915B2 (ja) ベクトル命令間追い越し判定装置と方法
KR102295677B1 (ko) 연속적인 데이터 병렬처리가 가능한 병렬 처리장치
JP2013206095A (ja) データ処理装置及びデータ処理装置の制御方法
US8055883B2 (en) Pipe scheduling for pipelines based on destination register number
US7093254B2 (en) Scheduling tasks quickly in a sequential order
JP3789937B2 (ja) ベクトルプロセッサのためのチャンク連鎖
KR102358612B1 (ko) 연속적인 데이터 병렬처리가 가능한 병렬 처리장치
US8001358B2 (en) Microprocessor and method of processing data including peak value candidate selecting part and peak value calculating part
JP5255885B2 (ja) ベクトルプロセッサ制御装置
JP5871298B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP6381019B2 (ja) 情報処理装置及び制御方法
JP5786719B2 (ja) ベクトルプロセッサ
US8046569B2 (en) Processing element having dual control stores to minimize branch latency
JP5708634B2 (ja) Simdプロセッサ

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110207

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110321

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

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4720915

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees