(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-01
(45)【発行日】2024-07-09
(54)【発明の名称】メモリアクセス制御装置、メモリアクセス制御システム、メモリアクセス制御方法、およびメモリアクセス制御プログラム
(51)【国際特許分類】
G06F 12/00 20060101AFI20240702BHJP
G06F 12/06 20060101ALI20240702BHJP
G06F 17/16 20060101ALI20240702BHJP
【FI】
G06F12/00 571B
G06F12/00 592
G06F12/06 540G
G06F17/16 A
(21)【出願番号】P 2020044222
(22)【出願日】2020-03-13
【審査請求日】2023-02-08
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】西垣 泰洋
【審査官】田名網 忠雄
(56)【参考文献】
【文献】特開2012-185553(JP,A)
【文献】特開2012-099004(JP,A)
【文献】特開2000-163316(JP,A)
【文献】国際公開第2011/033862(WO,A1)
【文献】特開2011-090600(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 12/06
G06F 17/16
(57)【特許請求の範囲】
【請求項1】
ベクトル要素の要素間距離に応じて前記ベクトル要素の転送順を決定する転送要素順決定手段と、
所定の要素番号に対応するベクトル要素を
選択する送出データ選択手段と、
前記要素番号、先頭要素アドレス、および要素間距離に基づいてメモリアクセスアドレスを生成するメモリアクセスアドレス生成手段と、
前記メモリアクセスアドレスからルーティングアドレスを生成するルーティングアドレス生成手段と、
前記ルーティングアドレスに基づいて前記ベクトル要素を
、クロスバ部と複数のキャッシュメモリとを接続する複数の接続ポートのいずれかに転送するクロスバ手段と
を備えていることを特徴とするメモリアクセス制御装置。
【請求項2】
前記転送要素順決定手段は、
前記要素間距離に基づき前記ベクトル要素の前記要素番号を記載する複数の転送順テーブルと、
前記要素間距離に応じて複数の転送順テーブルの中から1つの転送順テーブルを選択する転送順テーブル選択手段と
を有していて、
前記
クロスバ手段は、選択された転送順テーブルに記載された転送順で
前記ベクトル要素を送出することを特徴とする請求項1に記載のメモリアクセス制御装置。
【請求項3】
前記転送順テーブルには、転送タイミング毎の要素番号が記載されている
ことを特徴とする請求項2に記載のメモリアクセス制御装置。
【請求項4】
前記転送タイミング毎の要素番号は、接続ポートと同じ数だけ記載されている
ことを特徴とする請求項3に記載のメモリアクセス制御装置。
【請求項5】
入力されるベクトル要素のデータ幅と、転送されるベクトル要素のデータ幅とが異なることを特徴とする請求項1から4のいずれか一項に記載のメモリアクセス制御装置。
【請求項6】
前記ルーティングアドレスに応じて要素転送の競合調停を行う競合調停手段
をさらに備えていることを特徴とする請求項1から5のいずれか一項に記載のメモリアクセス制御装置。
【請求項7】
ベクトル演算を行って、演算されたベクトル要素を出力するベクトル演算手段と、
前記ベクトル要素を記憶する記憶手段と、
前記ベクトル演算手段から記憶手段に前記ベクトル要素を転送するためのメモリアクセスリクエストを発行するリクエスト発行手段と、
前記ベクトル要素の転送順を制御するメモリアクセス制御手段と
を備えていて、前記メモリアクセスリクエストは、先頭要素アドレスおよび要素間距離を含み、前記メモリアクセス制御手段と記憶手段は、複数の接続ポートによって接続されていて、
前記メモリアクセス制御手段は、
前記ベクトル要素の要素間距離に応じて前記ベクトル要素の転送順を決定する転送要素順決定手段と、
所定の要素番号に対応するベクトル要素を
選択する送出データ選択手段と、
前記要素番号、先頭要素アドレス、および要素間距離に基づいてメモリアクセスアドレスを生成するメモリアクセスアドレス生成手段と、
前記メモリアクセスアドレスからルーティングアドレスを生成するルーティングアドレス生成手段と、
前記ルーティングアドレスに基づいて前記ベクトル要素を前記複数の接続ポートのいずれかに転送するクロスバ手段と
を備えている
ことを特徴とするメモリアクセス制御システム。
【請求項8】
前記メモリアクセス制御手段が、前記メモリアクセスアドレスからポート内アドレスを生成するポート内アドレス生成手段をさらに備えていて、
前記
クロスバ手段が、前記ポート内アドレスに従って
前記記憶手段にキャッシュアクセス動作を行うキャッシュ手段をさらに備えている
ことを特徴とする請求項7に記載のメモリアクセス制御システム。
【請求項9】
ベクトル要素の要素間距離に応じて前記ベクトル要素の転送順を決定する転送要素順決定ステップと、
所定の要素番号に対応するベクトル要素を
選択する送出データ選択ステップと、
前記要素番号、先頭要素アドレス、および要素間距離に基づいてメモリアクセスアドレスを生成するメモリアクセスアドレス生成ステップと、
前記メモリアクセスアドレスからルーティングアドレスを生成するルーティングアドレス生成ステップと、
前記ルーティングアドレスに基づいて前記ベクトル要素を
、クロスバ部と複数のキャッシュメモリとを接続する複数の接続ポートのいずれかに転送するクロスバステップと
を有していることを特徴とするメモリアクセス制御方法。
【請求項10】
ベクトル要素の要素間距離に応じて前記ベクトル要素の転送順を決定する転送要素順決定ステップと、
所定の要素番号に対応するベクトル要素を
選択する送出データ選択ステップと、
前記要素番号、先頭要素アドレス、および要素間距離に基づいてメモリアクセスアドレスを生成するメモリアクセスアドレス生成ステップと、
前記メモリアクセスアドレスからルーティングアドレスを生成するルーティングアドレス生成ステップと、
前記ルーティングアドレスに基づいて前記ベクトル要素を
、クロスバ部と複数のキャッシュメモリとを接続する複数の接続ポートのいずれかに転送するクロスバステップと
をコンピュータに実行させるメモリアクセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリアクセス制御装置、メモリアクセス制御システム、メモリアクセス制御方法、およびメモリアクセス制御プログラムに関する。
【背景技術】
【0002】
ベクトル演算器などの演算器と記憶装置を接続するために、メモリアクセス制御装置を用いることがある。演算器で取り扱うデータは、例えばIEEE形式の倍精度浮動小数点データであり、演算に必要なデータ幅は8バイト単位である。これに対して、記憶装置のメモリアクセス幅(バンク幅)は、例えばDDR3 DIMMでは通常64バイトであり、演算器で取り扱うデータ幅と異なる。特許文献1にはメモリアクセス制御においてアクセス単位が複数ワード長の記憶部を利用しながらアクセス時間を短縮する技術が開示されている。また特許文献2にはベクトル処理装置のルーティングアドレス生成方式の技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2012-185553号公報
【文献】特許第3789316号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
複数の演算器から記憶装置内の同じメモリバンクにアクセスが集中すると、書き込み性能の低下が生じるという課題があった。
【0005】
そこでこの発明は、上述の課題を解決するメモリアクセス制御装置、メモリアクセス制御システム、メモリアクセス制御方法、およびメモリアクセス制御プログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
本発明の第1の態様は、ベクトル要素の要素間距離に応じて前記ベクトル要素の転送順を決定する転送要素順決定手段と、所定の要素番号に対応するベクトル要素を選択する送出データ選択手段と、前記要素番号、先頭要素アドレス、および要素間距離に基づいてメモリアクセスアドレスを生成するメモリアクセスアドレス生成手段と、前記メモリアクセスアドレスからルーティングアドレスを生成するルーティングアドレス生成手段と、前記ルーティングアドレスに基づいて前記ベクトル要素を、クロスバ部と複数のキャッシュメモリとを接続する複数の接続ポートのいずれかに転送するクロスバ手段とを備えていることを特徴とするメモリアクセス制御装置である。
【0007】
本発明の第2の態様は、ベクトル演算を行って、演算されたベクトル要素を出力するベクトル演算手段と、前記ベクトル要素を記憶する記憶手段と、前記ベクトル演算手段から記憶手段に前記ベクトル要素を転送するためのメモリアクセスリクエストを発行するリクエスト発行手段と、前記ベクトル要素の転送順を制御するメモリアクセス制御手段とを備えていて、前記メモリアクセスリクエストは、先頭要素アドレスおよび要素間距離を含み、前記メモリアクセス制御手段と記憶手段は、複数の接続ポートによって接続されていて、前記メモリアクセス制御手段は、前記ベクトル要素の要素間距離に応じて前記ベクトル要素の転送順を決定する転送要素順決定手段と、所定の要素番号に対応するベクトル要素を選択する送出データ選択手段と、前記要素番号、先頭要素アドレス、および要素間距離に基づいてメモリアクセスアドレスを生成するメモリアクセスアドレス生成手段と、前記メモリアクセスアドレスからルーティングアドレスを生成するルーティングアドレス生成手段と、前記ルーティングアドレスに基づいて前記ベクトル要素を前記複数の接続ポートのいずれかに転送するクロスバ手段とを備えていることを特徴とするメモリアクセス制御システムである。
【0008】
本発明の第3の態様は、ベクトル要素の要素間距離に応じて前記ベクトル要素の転送順を決定する転送要素順決定ステップと、所定の要素番号に対応するベクトル要素を選択する送出データ選択ステップと、前記要素番号、先頭要素アドレス、および要素間距離に基づいてメモリアクセスアドレスを生成するメモリアクセスアドレス生成ステップと、前記メモリアクセスアドレスからルーティングアドレスを生成するルーティングアドレス生成ステップと、前記ルーティングアドレスに基づいて前記ベクトル要素を、クロスバ部と複数のキャッシュメモリとを接続する複数の接続ポートのいずれかに転送するクロスバステップとを有していることを特徴とするメモリアクセス制御方法である。
【0009】
本発明の第4の態様は、ベクトル要素の要素間距離に応じて前記ベクトル要素の転送順を決定する転送要素順決定ステップと、所定の要素番号に対応するベクトル要素を選択する送出データ選択ステップと、前記要素番号、先頭要素アドレス、および要素間距離に基づいてメモリアクセスアドレスを生成するメモリアクセスアドレス生成ステップと、前記メモリアクセスアドレスからルーティングアドレスを生成するルーティングアドレス生成ステップと、前記ルーティングアドレスに基づいて前記ベクトル要素を、クロスバ部と複数のキャッシュメモリとを接続する複数の接続ポートのいずれかに転送するクロスバステップとをコンピュータに実行させるメモリアクセス制御プログラムである。
【発明の効果】
【0010】
本発明によれば、ベクトル要素の要素間距離に応じてベクトル要素の転送順が決定されるので、ベクトル要素の記憶手段への書き込みの集中が緩和され、書き込み性能が向上するという効果が得られる。
【図面の簡単な説明】
【0011】
【
図1】本発明の第1実施形態によるメモリアクセス制御装置の構成を示すブロック図である。
【
図2】転送要素順決定部の内部構成を示すブロック図である。
【
図3】メモリバンクに格納されるベクトル要素のメモリアクセスアドレスを示す図である。
【
図4】メモリアクセスアドレスからポート内アドレスおよびルーティングアドレスを生成する方法を示す図である。
【
図5】メモリアクセスアドレスからポート内アドレスおよびルーティングアドレスを生成する方法を示す図である。
【
図8】各ベクトル演算器および各タイミングに対応する要素番号およびメモリアクセスアドレスを示す図である。
【
図9】各接続ポートおよび各タイミングに対応する要素番号およびメモリアクセスアドレスを示す図である。
【
図10】本発明の第2実施形態によるメモリアクセス制御装置の構成を示すブロック図である。
【
図11】転送要素順決定部がない構成を示すブロック図である。
【
図12】転送要素順決定部がない場合の各ベクトル演算器および各タイミングに対応する要素番号およびメモリアクセスアドレスを示す図である。
【
図13】転送要素順決定部がない場合の各接続ポートおよび各タイミングに対応する要素番号およびメモリアクセスアドレスを示す図である。
【
図14】本発明の第3実施形態によるメモリアクセス制御装置の最小構成を示すブロック図である。
【発明を実施するための形態】
【0012】
以下、本発明の第1実施形態によるメモリアクセス制御装置を図面を参照して説明する。
図1は、同実施形態によるメモリアクセス制御装置の構成を示すブロック図である。この図において、符号1は、ベクトル演算部である。ベクトル演算部1は、ベクトル演算を行う複数のベクトル演算器11-0,11-1,11-2,…と、複数のベクトル演算器11-0,11-1,11-2,…から出力される複数のベクトル要素v0,v1,v2,…を格納するベクトルレジスタ12とを有している。複数のベクトル演算器11-0,11-1,11-2,…は、1処理サイクルで複数のベクトル要素v0,v1,v2,…を出力する。
【0013】
符号2は、ベクトル演算部1で演算された複数のベクトル要素を記憶するための主記憶部である。主記憶部2は、同時並行処理を行うことが可能な複数のメモリバンク21-0,21-1,21-2,…を有している。
【0014】
符号3は、主記憶部2へのアクセス時間の短縮を図るためのキャッシュ部である。キャッシュ部3も、同時並行処理を行うことが可能な複数のキャッシュメモリ31-0,31-1,31-2,…を有している。キャッシュメモリ31-0,31-1,31-2,…は、接続ポート22-0,22-1,22-2,…を介してメモリバンク21-0,21-1,21-2,…と接続されている。
【0015】
符号4は、ベクトル演算部1から主記憶部2にベクトル要素を転送するためのメモリアクセスリクエストを発行するリクエスト発行部である。メモリアクセスリクエストは、ベクトルストア命令とも呼ばれる。メモリアクセスリクエストは、先頭要素アドレスと、要素間距離とを含む。
【0016】
符号5は、ベクトル演算部1とキャッシュ部3の間に接続されたメモリアクセス制御部である。メモリアクセス制御部5は、データ送出部6と、ルーティングアドレス生成部51と、ポート内アドレス生成部52と、競合調停部53と、クロスバ部54とを有している。データ送出部6は、ベクトル要素、先頭要素アドレス、および要素間距離を入力し、データ(ベクトル要素)およびメモリアクセスアドレスを送出する。ルーティングアドレス生成部51は、メモリアクセスアドレスからルーティングアドレスを生成する。具体的には、メモリアクセスアドレスの一部をルーティングアドレスとして選択する。ルーティングアドレスは、各ベクトル要素を、どの接続ポートを介して主記憶部2に転送するかを示している。ポート内アドレス生成部52は、メモリアクセスアドレスからポート内アドレスを生成する。具体的には、メモリアクセスアドレスの一部をポート内アドレスとして選択する。競合調停部53は、ルーティングアドレスに応じて、接続ポート毎に転送データの競合調停を行う。クロスバ部54は、競合調停された転送データ(ベクトル要素)をキャッシュ部3に転送する。キャッシュ部3内のキャッシュメモリ31-0,31-1,31-2,…は、接続ポート32-0,32-1,32-2,…を介してクロスバ部54に接続されている。
【0017】
データ送出部6は、転送要素順決定部61と、送出データ選択部62と、メモリアクセスアドレス生成部63とを有している。転送要素順決定部61は、要素間距離に応じてベクトル要素の転送順を決定する。送出データ選択部62は、要素番号に対応するベクトル要素(送出データ)を選択する。メモリアクセスアドレス生成部63は、個々の要素番号、先頭要素アドレス、および要素間距離に基づいて、個々の要素番号のベクトル要素(送出データ)に対応付けられるメモリアクセスアドレスを生成する。
【0018】
図2に、転送要素順決定部61の内部構成を示す。転送要素順決定部61は、比較器65と、複数の転送順テーブル66と、セレクタ67とを有している。比較器65は、要素間距離が8Bであるか否かを判定する。複数の転送順テーブル66は、転送順テーブルAおよび転送順テーブルBを含む。セレクタ67は、比較器65による判定の結果に基づいて、複数の転送順テーブル66の中から1つの転送順テーブルを選択する。
【0019】
次に、
図1を参照して本実施形態によるメモリアクセス制御装置の動作を説明する。説明を簡単かつ明確にするために、8つのベクトル演算器11が1処理サイクルで8つのベクトル要素を出力するものとする。また、主記憶部2も8つのメモリバンク21-0,21-1,21-2,…,21-7を有していて、キャッシュ部3も8つのキャッシュメモリ31-0,31-1,31-2,…,31-7を有しているものとする。メモリバンク21-0,21-1,21-2,…,21-7は接続ポート22-0,22-1,22-2,…,22-7を介してキャッシュメモリ31-0,31-1,31-2,…,31-7に接続されていて、キャッシュメモリ31-0,31-1,31-2,…,31-7は接続ポート32-0,32-1,32-2,…,32-7を介してクロスバ部54に接続されているものとする。先頭要素アドレスは0B、要素間距離は8Bであるものとする。メモリアクセスアドレスは24ビットであるものとする。
【0020】
まず、リクエスト発行部4が、メモリアクセスリクエスト(ベクトルストア命令)を発行する。メモリアクセスリクエストは、先頭要素アドレスおよび要素間距離を含んでいる。
【0021】
次に、転送要素順決定部61が、要素間距離に応じてベクトル要素の転送要素順を決定する。送出データ選択部62が、決定された転送要素順で、ベクトルレジスタ12からベクトル要素を読み出す。メモリアクセスアドレス生成部63が、読み出されたベクトル要素に対応するメモリアクセスアドレスを生成する。メモリアクセスアドレスは、
メモリアクセスアドレス=先頭要素アドレス+要素間距離×要素番号 …(式1)
によって計算する。
【0022】
次に、ルーティングアドレス生成部51が、メモリアクセスアドレスからルーティングアドレスを生成する。競合調停部53は、生成されたルーティングアドレスに応じて、接続ポート毎に転送データの競合調停を行う。ポート内アドレス生成部52は、メモリアクセスアドレスからポート内アドレスを生成する。クロスバ部54は、ルーティングアドレスに従って、各ベクトル要素を各接続ポート32-0,32-1,32-2,…,32-7に出力する。キャッシュメモリ31-0,31-1,31-2,…,31-7は、ポート内アドレスに従ってキャッシュアクセス動作を行う。
【0023】
最後に、キャッシュメモリ31-0,31-1,31-2,…,31-7からメモリバンク21-0,21-1,21-2,…,21-7に接続ポート22-0,22-1,22-2,…,22-7を介してベクトル要素が転送され、その結果、ベクトル演算部1で演算されたベクトル要素が主記憶部2に記憶される。
【0024】
図3に、ベクトル要素を要素番号順に連続して主記憶部2に記憶した場合に、メモリバンク21-0,21-1,21-2,…,21-7に格納されるベクトル要素のメモリアクセスアドレスを示す。先頭要素アドレスは0B、要素間距離は8Bなので、例えばメモリバンク21-0には、ベクトル要素が、メモリアクセスアドレス0B,8B,16B,…の順に格納され、メモリバンク21-1には、64B,72B,80B,…の順に格納される。
【0025】
図4および
図5に、メモリアクセスアドレスからポート内アドレスおよびルーティングアドレスを生成する方法を示す。
図4には、24ビットのメモリアクセスアドレスの上位15ビットをポート内アドレスとし、これに続く3ビットをルーティングアドレス(RA)とし、残りの下位6ビットをアクセス単位内アドレスとする例が示されている。
図5には、上位15ビットをポート内アクセスラインアドレスとし、これに続く3ビットをルーティングアドレス(RA)とし、残りの下位6ビットをアクセス単位内アドレスとし、ポート内アクセスラインアドレスとアクセス単位内アドレスを用いてポート内アドレスを生成する例が示されている。
【0026】
次に、
図2を参照して転送要素順決定部61の動作を説明する。比較器65は、リクエスト発行部4から送られてくる要素間距離が8Bであるか否かを判定する。複数の転送順テーブル66は、予め設定されている複数の転送順を保持している。本例では、複数の転送順テーブル66は、転送順テーブルAおよび転送順テーブルBを保持している。
図6に転送順テーブルAを示し、
図7に転送順テーブルBを示す。セレクタ67は、比較器65による判定の結果に基づいて、要素間距離が8Bであるときには転送順テーブルBを選択し、要素間距離が8Bではないときには転送順テーブルAを選択する。
【0027】
リクエスト発行部4からメモリアクセス制御部5に、先頭要素アドレス0Bおよび要素間距離8Bが送られると、転送要素順決定部61は転送順テーブルBを選択する。送出データ選択部62は、転送順テーブルBに従って、タイミングT0において要素番号0,9,18,27,36,45,54,63のデータ(ベクトル要素)を選択する(
図7参照)。メモリアクセスアドレス生成部63は、前述した(式1)を用いて、要素番号0,9,18,27,36,45,54,63からメモリアクセスアドレス0B,72B,144B,216B,288B,360B,432B,504Bをそれぞれ生成し、要素番号0,9,18,27,36,45,54,63のデータとメモリアクセスアドレス0B,72B,144B,216B,288B,360B,432B,504Bとが対応付けられる(
図8参照)。
【0028】
ルーティングアドレス生成部51は、メモリアクセスアドレス0B,72B,144B,216B,288B,360B,432B,504Bからルーティングアドレス0,1,2,3,4,5,6,7を生成する。これらのルーティングアドレスは競合していない(重複していない)ので、調停の必要はなく、8つのデータを同時に転送することが可能である。
【0029】
ルーティングアドレス0,1,2,3,4,5,6,7は接続ポート22-0,22-1,22-2,22-3,22-4,22-5,22-6,22-7および接続ポート32-0,32-1,32-2,32-3,32-4,32-5,32-6,32-7に対応しているので、タイミングT0において、要素番号0,9,18,27,36,45,54,63のデータが、接続ポート22-0,22-1,22-2,22-3,22-4,22-5,22-6,22-7および接続ポート32-0,32-1,32-2,32-3,32-4,32-5,32-6,32-7を介して同時に転送される(
図9参照)。
【0030】
タイミングT1においても、転送順テーブルBに従って、要素番号8,17,26,35,44,53,62,71のデータが選択される(
図7参照)。前述した(式1)を用いて、要素番号8,17,26,35,44,53,62,71からメモリアクセスアドレス64B,136B,208B,280B,352B,424B,496B,568Bが生成され(
図8参照)、メモリアクセスアドレス64B,136B,208B,280B,352B,424B,496B,568Bからルーティングアドレス1,2,3,4,5,6,7,0が生成される。これらのルーティングアドレスも競合していない。従って、タイミングT1において、要素番号8,17,26,35,44,53,62,71のデータが、接続ポート22-1,22-2,22-3,22-4,22-5,22-6,22-7,22-0および接続ポート32-1,32-2,32-3,32-4,32-5,32-6,32-7,32-0を介して同時に転送される(
図9参照)。
【0031】
タイミングT2~T15においても同様に、8つの接続ポートを用いて同時にデータを転送することができる。従って、性能低下が発生しない。
【0032】
本発明の第2実施形態として、キャッシュ部3を設けない構成を
図10に示す。本実施形態において、メモリアクセス制御部5は、直接、主記憶部2に接続される。
【0033】
比較のため、転送要素順決定部61を用いずにデータを転送した場合について説明する。
図11に、転送要素順決定部61がない構成を示す。転送要素順は要素番号順となる。従って、主記憶部2内のメモリバンク21-0,21-1,21-2,…,21-7には、
図3に示したメモリアクセスアドレスのベクトル要素が格納される。
【0034】
転送要素順決定部61がない場合のメモリアクセス制御装置の動作を説明する。リクエスト発行部4からメモリアクセス制御部5に、先頭要素アドレス0Bおよび要素間距離8Bが送られると、タイミングT0において要素番号0,1,2,3,4,5,6,7のデータが選択される。メモリアクセスアドレス生成部63は、要素番号0,1,2,3,4,5,6,7に対応するメモリアクセスアドレス0B,8B,16B,24B,32B,40B,48B,56Bを生成する(
図12参照)。
【0035】
ルーティングアドレス生成部51は、メモリアクセスアドレス0B,8B,16B,24B,32B,40B,48B,56Bからルーティングアドレス0,0,0,0,0,0,0,0を生成する。これらのルーティングアドレスは競合しているので、8つのデータを同時に転送することはできない。従って、要素番号0,1,2,3,4,5,6,7のデータは、全て接続ポート22-0および32-0を介して順に転送される(
図13参照)。すなわち、タイミングT0で要素番号0のデータが転送され、これに続いて同じ接続ポート22-0および32-0を介して要素番号1~7のデータが転送される。
【0036】
同様に、タイミングT1では、要素番号8,9,10,11,12,13,14,15のデータが、全て接続ポート22-1および32-1を介して順に転送される。すなわち、タイミングT1で要素番号8のデータが転送され、これに続いて同じ接続ポート22-1および32-1を介して要素番号9~15のデータが転送される。
【0037】
同様に、タイミングT2では、要素番号16,17,18,19,20,21,22,23のデータが、全て接続ポート22-2および32-2を介して順に転送される。すなわち、タイミングT2で要素番号16のデータが転送され、これに続いて同じ接続ポート22-2および32-2を介して要素番号17~23のデータが転送される。
【0038】
すなわち、この方式だと、前述した第1実施形態より転送に時間がかかる。すなわち、この方式では、メモリアクセス時間の増加を引き起こしていた。
【0039】
上述のメモリアクセス制御装置は内部に、コンピュータシステムを有している。そして、上述したメモリアクセス制御方法の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0040】
上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0041】
図14は、第3実施形態によるメモリアクセス制御装置の最小構成を示すブロック図である。本実施形態によるメモリアクセス制御装置は、少なくとも、転送要素順決定手段(転送要素順決定部61)と、送出データ選択手段(送出データ選択部62)と、メモリアクセスアドレス生成手段(メモリアクセスアドレス生成部63)と、ルーティングアドレス生成手段(ルーティングアドレス生成部51)と、クロスバ手段(クロスバ部54)とを備えている。
転送要素順決定手段(転送要素順決定部61)は、ベクトル要素の要素間距離に応じて前記ベクトル要素の転送順を決定する。
送出データ選択手段(送出データ選択部62)は、所定の要素番号に対応するベクトル要素を選択して送出する。
メモリアクセスアドレス生成手段(メモリアクセスアドレス生成部63)は、前記要素番号、先頭要素アドレス、および要素間距離に基づいてメモリアクセスアドレスを生成する。
ルーティングアドレス生成手段(ルーティングアドレス生成部51)は、前記メモリアクセスアドレスからルーティングアドレスを生成する。
クロスバ手段(クロスバ部54)は、前記ルーティングアドレスに基づいて前記ベクトル要素を複数の接続ポートのいずれかに転送する。
【0042】
上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、以下の記載に限られるわけではない。
【0043】
(付記1)
ベクトル要素の要素間距離に応じて前記ベクトル要素の転送順を決定する転送要素順決定手段と、
所定の要素番号に対応するベクトル要素を選択して送出する送出データ選択手段と、
前記要素番号、先頭要素アドレス、および要素間距離に基づいてメモリアクセスアドレスを生成するメモリアクセスアドレス生成手段と、
前記メモリアクセスアドレスからルーティングアドレスを生成するルーティングアドレス生成手段と、
前記ルーティングアドレスに基づいて前記ベクトル要素を複数の接続ポートのいずれかに転送するクロスバ手段と
を備えていることを特徴とするメモリアクセス制御装置。
【0044】
(付記2)
前記転送要素順決定手段は、
複数の転送順テーブルと、
前記要素間距離に応じて複数の転送順テーブルの中から1つの転送順テーブルを選択する転送順テーブル選択手段と
を有していて、
前記送出データ選択手段は、選択された転送順テーブルに記載された転送順でベクトル要素を送出する
ことを特徴とする付記1に記載のメモリアクセス制御装置。
【0045】
(付記3)
前記転送順テーブルには、転送タイミング毎の要素番号が記載されている
ことを特徴とする付記2に記載のメモリアクセス制御装置。
【0046】
(付記4)
前記転送タイミング毎の要素番号は、接続ポートと同じ数だけ記載されている
ことを特徴とする付記3に記載のメモリアクセス制御装置。
【0047】
(付記5)
入力されるベクトル要素のデータ幅と、転送されるベクトル要素のデータ幅とが異なる
ことを特徴とする付記1から4のいずれかに記載のメモリアクセス制御装置。
【0048】
(付記6)
前記ルーティングアドレスに応じて要素転送の競合調停を行う競合調停手段
をさらに備えていることを特徴とする付記1から5のいずれかに記載のメモリアクセス制御装置。
【0049】
(付記7)
ベクトル演算を行って、演算されたベクトル要素を出力するベクトル演算手段と、
前記ベクトル要素を記憶する記憶手段と、
前記ベクトル演算手段から記憶手段に前記ベクトル要素を転送するためのメモリアクセスリクエストを発行するリクエスト発行手段と、
前記ベクトル要素の転送順を制御するメモリアクセス制御手段と
を備えていて、前記メモリアクセスリクエストは、先頭要素アドレスおよび要素間距離を含み、前記メモリアクセス制御手段と記憶手段は、複数の接続ポートによって接続されていて、
前記メモリアクセス制御手段は、
前記ベクトル要素の要素間距離に応じて前記ベクトル要素の転送順を決定する転送要素順決定手段と、
所定の要素番号に対応するベクトル要素を選択して送出する送出データ選択手段と、
前記要素番号、先頭要素アドレス、および要素間距離に基づいてメモリアクセスアドレスを生成するメモリアクセスアドレス生成手段と、
前記メモリアクセスアドレスからルーティングアドレスを生成するルーティングアドレス生成手段と、
前記ルーティングアドレスに基づいて前記ベクトル要素を前記複数の接続ポートのいずれかに転送するクロスバ手段と
を備えている
ことを特徴とするメモリアクセス制御システム。
【0050】
(付記8)
前記メモリアクセス制御手段が、前記メモリアクセスアドレスからポート内アドレスを生成するポート内アドレス生成手段をさらに備えていて、
前記メモリアクセス制御システムが、前記ポート内アドレスに従ってキャッシュアクセス動作を行うキャッシュ手段をさらに備えている
ことを特徴とする付記7に記載のメモリアクセス制御システム。
【0051】
(付記9)
前記転送要素順決定手段は、
複数の転送順テーブルと、
前記要素間距離に応じて複数の転送順テーブルの中から1つの転送順テーブルを選択する転送順テーブル選択手段と
を有していて、
前記送出データ選択手段は、選択された転送順テーブルに記載された転送順でベクトル要素を送出する
ことを特徴とする付記7または8に記載のメモリアクセス制御システム。
【0052】
(付記10)
前記転送順テーブルには、転送タイミング毎の要素番号が記載されている
ことを特徴とする付記9に記載のメモリアクセス制御システム。
【0053】
(付記11)
前記転送タイミング毎の要素番号は、接続ポートと同じ数だけ記載されている
ことを特徴とする付記10に記載のメモリアクセス制御システム。
【0054】
(付記12)
入力されるベクトル要素のデータ幅と、転送されるベクトル要素のデータ幅とが異なる
ことを特徴とする付記7から11のいずれかに記載のメモリアクセス制御システム。
【0055】
(付記13)
前記ルーティングアドレスに応じて要素転送の競合調停を行う競合調停手段
をさらに備えていることを特徴とする付記7から12のいずれかに記載のメモリアクセス制御システム。
【0056】
(付記14)
ベクトル要素の要素間距離に応じて前記ベクトル要素の転送順を決定する転送要素順決定ステップと、
所定の要素番号に対応するベクトル要素を選択して送出する送出データ選択ステップと、
前記要素番号、先頭要素アドレス、および要素間距離に基づいてメモリアクセスアドレスを生成するメモリアクセスアドレス生成ステップと、
前記メモリアクセスアドレスからルーティングアドレスを生成するルーティングアドレス生成ステップと、
前記ルーティングアドレスに基づいて前記ベクトル要素を複数の接続ポートのいずれかに転送するクロスバステップと
を有していることを特徴とするメモリアクセス制御方法。
【0057】
(付記15)
前記転送要素順決定ステップは、
複数の転送順テーブルを設定するステップと、
前記要素間距離に応じて複数の転送順テーブルの中から1つの転送順テーブルを選択する転送順テーブル選択ステップと
を有していて、
前記送出データ選択ステップでは、選択された転送順テーブルに記載された転送順でベクトル要素を送出する
ことを特徴とする付記14に記載のメモリアクセス制御方法。
【0058】
(付記16)
前記転送順テーブルには、転送タイミング毎の要素番号が記載されている
ことを特徴とする付記15に記載のメモリアクセス制御方法。
【0059】
(付記17)
前記転送タイミング毎の要素番号は、接続ポートと同じ数だけ記載されている
ことを特徴とする付記16に記載のメモリアクセス制御方法。
【0060】
(付記18)
入力されるベクトル要素のデータ幅と、転送されるベクトル要素のデータ幅とが異なる
ことを特徴とする付記14から17のいずれかに記載のメモリアクセス制御方法。
【0061】
(付記19)
前記ルーティングアドレスに応じて要素転送の競合調停を行う競合調停ステップ
をさらに有していることを特徴とする付記14から18のいずれかに記載のメモリアクセス制御方法。
【0062】
(付記20)
ベクトル要素の要素間距離に応じて前記ベクトル要素の転送順を決定する転送要素順決定ステップと、
所定の要素番号に対応するベクトル要素を選択して送出する送出データ選択ステップと、
前記要素番号、先頭要素アドレス、および要素間距離に基づいてメモリアクセスアドレスを生成するメモリアクセスアドレス生成ステップと、
前記メモリアクセスアドレスからルーティングアドレスを生成するルーティングアドレス生成ステップと、
前記ルーティングアドレスに基づいて前記ベクトル要素を複数の接続ポートのいずれかに転送するクロスバステップと
をコンピュータに実行させるメモリアクセス制御プログラム。
【0063】
(付記21)
前記転送要素順決定ステップは、
複数の転送順テーブルを設定するステップと、
前記要素間距離に応じて複数の転送順テーブルの中から1つの転送順テーブルを選択する転送順テーブル選択ステップと
を有していて、
前記送出データ選択ステップでは、選択された転送順テーブルに記載された転送順でベクトル要素を送出する
ことを特徴とする付記20に記載のメモリアクセス制御プログラム。
【0064】
(付記22)
前記転送順テーブルには、転送タイミング毎の要素番号が記載されている
ことを特徴とする付記21に記載のメモリアクセス制御プログラム。
【0065】
(付記23)
前記転送タイミング毎の要素番号は、接続ポートと同じ数だけ記載されている
ことを特徴とする付記22に記載のメモリアクセス制御プログラム。
【0066】
(付記24)
入力されるベクトル要素のデータ幅と、転送されるベクトル要素のデータ幅とが異なる
ことを特徴とする付記20から23のいずれかに記載のメモリアクセス制御プログラム。
【0067】
(付記25)
前記ルーティングアドレスに応じて要素転送の競合調停を行う競合調停ステップ
をさらに有していることを特徴とする付記20から24のいずれかに記載のメモリアクセス制御プログラム。
【符号の説明】
【0068】
1 ベクトル演算部
11-0,11-1,11-2,…,11-7 ベクトル演算器
12 ベクトルレジスタ
2 主記憶部
21-0,21-1,21-2,…,21-7 メモリバンク
22-0,22-1,22-2,…,22-7 接続ポート
3 キャッシュ部
31-0,31-1,31-2,…,31-7 キャッシュメモリ
32-0,32-1,32-2,…,32-7 接続ポート
4 リクエスト発行部
5 メモリアクセス制御部
51 ルーティングアドレス生成部
52 ポート内アドレス生成部
53 競合調停部
54 クロスバ部
6 データ送出部
61 転送要素順決定部
62 送出データ選択部
63 メモリアクセスアドレス生成部
65 比較器
66 転送順テーブル
67 セレクタ