(57)【特許請求の範囲】
【請求項１】
アクセス要求を出力する演算部と、
複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と、
前記演算部から処理サイクル毎に受信する前記アクセス要求に対応する複数のアクセスアドレスを前記複数の接続ポートに振り分けて、１アクセス単位に空間的に不連続なワードを含むポート内アドレスを前記接続ポート毎に生成するメモリアクセス制御部と、を有し、
前記メモリアクセス制御部は、
前記アクセスアドレスを割り当てる接続ポートを指定するルーティングアドレスを生成するルーティングアドレス生成部と、
前記ルーティングアドレスに基づき前記複数のアクセスアドレスのそれぞれを割り当てる接続ポートの競合調停を行う競合調停部と、
複数の処理サイクルで入力される前記アクセスアドレスに基づき前記ポート内アドレスを生成するポート内アドレス生成部と、
前記ポート内アドレスを前記競合調停部の競合調停処理に応じて前記複数の接続ポートのいずれか１つに割り当てるクロスバ部と、を有する情報処理装置。
【請求項２】
前記演算部は、前記アクセス要求としてベクトル要素と、先頭要素アドレスと、要素間距離情報と、を出力するベクトル演算部であり、
前記メモリアクセス制御部は、前記先頭要素アドレスと前記要素間距離情報とに基づき前記複数のアクセスアドレスを生成するアドレス生成部をさらに有する請求項１に記載の情報処理装置。
【請求項３】
前記記憶部の前記複数の接続ポートは、前記メモリアクセス制御部から並列してアクセスされる請求項１又は２に記載の情報処理装置。
【請求項４】
前記記憶部は、前記接続ポート毎に設けられ、１つのキャッシュライン幅に少なくとも前記１アクセス単位以上のデータを格納するキャッシュ部を有し、
前記キャッシュ部の１キャッシュライン幅内に前記不連続なワードに割り当てられた複数のデータが格納される請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
アクセス要求を出力する演算部と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と、の間において前記アクセス要求に基づき前記記憶部の前記接続ポート毎にポート内アドレスを生成するメモリアクセス制御装置であって、
前記アクセス要求に対応した複数のアクセスアドレスのそれぞれを割り当てる接続ポートを指定するルーティングアドレスを生成するルーティングアドレス生成部と、
前記ルーティングアドレスに基づき前記アクセスアドレスを割り当てる接続ポートの競合調停を行う競合調停部と、
複数の処理サイクルで入力される前記アクセスアドレスに基づき前記ポート内アドレスを生成するポート内アドレス生成部と、
前記ポート内アドレスを前記競合調停部の競合調停処理に応じて前記複数の接続ポートのいずれか１つに割り当てるクロスバ部と、
を有するメモリアクセス制御装置。
【請求項６】
アクセス要求を出力する演算部と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と、を有する情報処理装置におけるアドレス生成方法であって、
前記演算部の処理サイクル毎に前記アクセス要求に対応した前記複数のアクセスアドレスを生成し、
前記アクセスアドレスを割り当てる接続ポートを指定するルーティングアドレスを生成し、
前記ルーティングアドレスに基づき前記複数のアクセスアドレスのそれぞれを割り当てる接続ポートの競合を調停し、
複数の処理サイクルで入力される前記アクセスアドレスに基づきポート内アドレスを生成し、
前記ポート内アドレスを前記競合の調停に応じて前記複数の接続ポートのいずれか１つに割り当てて、１アクセス単位に空間的に不連続なワードを含む前記ポート内アドレスを前記接続ポート毎に生成するアドレス生成方法。
【請求項７】
前記記憶部は、前記接続ポート毎に設けられ、１つのキャッシュライン幅に少なくとも前記１アクセス単位以上のデータを格納するキャッシュ部を有し、
前記キャッシュ部の１キャッシュライン幅内に前記不連続なワードに割り当てられた複数のデータを格納する請求項６に記載のアドレス生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、メモリアクセス制御装置及びそのアドレス生成方法に関し、特にアクセス単位が複数のワード長の記憶部にアクセスを行う情報処理装置、メモリアクセス制御装置及びそのアドレス生成方法に関する。
【背景技術】
【０００２】
近年、データを並列処理することで演算能力の向上を実現する情報処理装置（例えば、プロセッサ）が多く提案されている。このような情報処理装置の１つにベクトル演算装置がある。このベクトル演算装置における従来のメモリアクセス方式の例が特許文献１、２に開示されている。
【０００３】
特許文献１では、演算部のワード長と主記憶のワード長が異なる場合には、スループットが低下することが記載されている。そこで、特許文献１では、連続する複数のワードをまとめて主記憶にアクセスすることで性能向上を向上させている。しかしながら、演算部のワード長と主記憶のワード長が異なる場合に主記憶のワードに連続した複数の演算部のワードを割り当てる従来の方式では以下のような性能の低下が引き起こされる。
【０００４】
ここで、特許文献２を例に従来技術について説明する。特許文献２は、ベクトル処理装置のルーティングアドレス生成方法についてのものである。また、当該ベクトル演算装置は、ベクトル演算部と、記憶部と、メモリアクセス制御部とを有する。ベクトル演算部は、ベクトル要素、先頭要素アドレス及び要素間距離を出力してアクセス要求を行う。記憶部は、同時並行処理を行うことが可能な複数のメモリバンクから構成され、複数の接続ポートを有する。メモリアクセス制御部は、ベクトル演算部と記憶部との間で、複数のアクセス要求を記憶部に接続する各接続ポート毎に独立にアクセス制御する。
【０００５】
また、メモリアクセス制御部は、アダー部と、排他的論理和回路と、ルーティングアドレス生成部と、クロスバ部とを有する。アダー部は、ベクトル要素毎のアクセス要求のアクセスアドレスをベクトル演算部から送られてくる先頭要素アドレスと要素間距離との加算によって生成する。排他的論理和回路は、各ベクトル要素毎に、アクセスアドレスの一部であるルーティングアドレスの下位１ビットとアクセスアドレスのルーティングアドレス以外のビットとの排他的論理和をとる。ルーティングアドレス生成部は、該排他的論理和回路の出力をルーティングアドレスの下位１ビットと置き換えて新たなルーティングアドレスとする。競合調停部は、ルーティングアドレス生成部により生成されたルーティングアドレスに従って記憶部と接続する各接続ポート毎にアクセス要求の競合調停を行う。クロスバ部は、前記競合調停部の競合調停に従ってベクトル要素毎のアクセス要求を各接続ポートに出力する。
【０００６】
特許文献２に記載のベクトル演算装置では、上記構成により、一つのアクセス要求に対して生成されるアクセスアドレスに割り当てられる接続ポートの競合を防止してアクセス性能を向上させることができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特公平０６−１０３４９１号公報
【特許文献２】特許第３７８９３１６号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＤＤＲ（Double Data Rate）型のＤＲＡＭ（Dynamic Random Access Memory）は、情報処理装置の処理速度の向上のために近年主流になってきている。このＤＲＡＭでは、連続したアドレスに連続的なアクセスを行うバーストアクセスが行われ、バス幅×バースト数によりアクセス単位が定義される。例えば、ＤＤＲではバースト数は２、ＤＤＲ２ではバースト数は４、ＤＤＲ３ではバースト数は８である。現在主流となりつつあるＤＤＲ３  ＤＩＭＭでは６４ビット（８バイト：以下８Ｂと表す）のバス幅を有するため、バースト数が８である場合、８Ｂのデータを８つ連続で転送を行うのでアクセス単位は６４Ｂとなる。つまり、高速なＤＤＲ型のＤＲＡＭを使用することでアクセス単位が増加する。このように主記憶のアクセス単位が増加し演算部のアクセス長と異なることにより主記憶にアクセスする性能低下が引き起こされている。
【０００９】
ここで、一般的な記憶部に対してベクトル演算部が発行するアクセスアドレスの例を図８〜図１０に示す。図８は、ブロックのアドレスとブロック内のアドレスとによりアドレスの指定を行う場合のアクセスアドレスのデータ構造を示す。図９は、メモリインタリーブにより記憶部へのアクセスを行う場合のアクセスアドレスのデータ構造を示す。図１０は、ダイレクトマッピング法により記憶部にアクセスする場合におけるアクセスアドレスのデータ構造を示す。
【００１０】
また、記憶部へのメモリアクセス時間を短縮するためにキャッシュを設ける場合がある。情報処理装置では、記憶部へのアクセス要求をアクセス単位で行う。そのため、キャッシュに１つのアクセス単位でアクセスされるデータを全て登録することで記憶部へのアクセス効率が向上する。このようなことから、キャッシュ上でデータを管理する単位（キャッシュライン幅）は、このアクセス単位の整数倍となっている。なお、アクセス単位の増大に伴いキャッシュライン幅は増大する。
【００１１】
従来のメモリアクセス方式では、上記アクセス単位とキャッシュライン幅との少なくとも一方を１ブロックとして扱う。このとき、キャッシュをアクセス単位で分割し、アクセス単位でインタリーブしてデータ転送を行うと、１アクセス単位のデータ幅が増大してメモリアクセス時間が増加する問題があった。また、キャッシュをキャッシュライン幅で分割し、キャッシュライン幅毎にインタリーブしてデータ転送を行うと、１キャッシュライン幅が増大してメモリアクセス時間が増加する問題があった。
【００１２】
より具体的に上記課題を説明する。主記憶へのアクセスにおいて用いられるアクセスアドレスのデータ構造の例を図１１、１２に示す。この例では、図１１に示すように、アクセスアドレスが２４ビットで構成される。そして、アクセスアドレスの上位１５ビットにポート内アクセスラインアドレスが定義される。また、アクセスアドレスのうちポート内アドレスに続く３ビット（ビットａ９、ａ８、及び、ａ７）にルーティングアドレスが定義される。さらに、図１２に示すように、アクセスアドレスのうち、ポート内アクセスラインアドレスとアクセス単位内アドレス（ビットａ６〜ａ１）を用いてポート内アドレスが生成される。
【００１３】
また、ベクトル演算部が演算器０〜演算器７を有し、演算器０〜演算器７が１処理サイクルで連続したワードに対するアクセスを行う場合におけるベクトル演算部が出力するアクセス要求のタイミングチャートを図１３に示す。図１３に示す例では、ベクトル演算部は、サイクルＴ０において、ベクトル要素ｖ０、ｖ１、ｖ２、ｖ３、ｖ４、ｖ５、ｖ６、ｖ７、先頭要素アドレス０Ｂ、要素間距離８Ｂをアクセス要求として出力する。このようなアクセス要求を行うことで、記憶部へのアクセスを効率的に行うことが可能になる。ベクトル演算装置のメモリアクセス制御部は、このアクセス要求を受けて、ベクトル要素ｖ０、ｖ１、ｖ２、ｖ３、ｖ４、ｖ５、ｖ６、ｖ７に対応してアクセスアドレス０Ｂ、８Ｂ、１６Ｂ、２４Ｂ、３２Ｂ、４０Ｂ、４８Ｂ、５６Ｂを生成する。図１３では、メモリアクセス制御部が生成するアクセスアドレスを動作タイミング毎に示した。
【００１４】
メモリアクセス制御部のルーティングアドレス生成部が図１１に示すようにアクセスアドレス中の３ビットをルーティングアドレスとして選択する。ルーティングアドレスで指定される接続ポートを使用してキャッシュ部３へリクエストが送られる。タイミングＴ０のアクセス要求に対しては、ベクトル要素ｖ０、ｖ１、ｖ２、ｖ３、ｖ４、ｖ５、ｖ６、ｖ７に対してルーティングアドレス０、０、０、０、０、０、０、０が生成される。つまり、クロスバ部は、タイミングＴ０のアクセス要求に応じて生成されるアクセスアドレス０Ｂ、８Ｂ、１６Ｂ、２４Ｂ、３２Ｂ、４０Ｂ、４８Ｂ、５６Ｂを全て接続ポート０で処理する。つまり、接続ポート０では、ベクトル要素ｖ０、ｖ１、ｖ２、ｖ３、ｖ４、ｖ５、ｖ６、ｖ７が順に処理される。
【００１５】
そして、記憶部が接続ポート０〜接続ポート７を有し、ベクトル演算部１０が演算器０〜演算器７を有していた場合において、図１３に示したタイミングチャートに沿ってアクセスされる記憶部のアドレス領域の割り当てを図１４に示す。図１４に示すように、従来の記憶部の接続ポート０の１アクセスライン幅に、連続するワード（０、８、１６、・・・、５６バイト目のワード）が格納される。また、他の接続ポートの１アクセスライン幅内にも連続したワードが書き込まれる。
【００１６】
また、図１３に示したタイミングチャートに沿ってアクセス要求がなされた場合、タイミングＴ１でのアクセス要求に応じて生成されるベクトル要素ｖ０、ｖ１、ｖ２、ｖ３、ｖ４、ｖ５、ｖ６、ｖ７のアクセスアドレスである６４Ｂ、７２Ｂ、８０Ｂ、８８Ｂ、９６Ｂ、１０４Ｂ、１１２Ｂ、１２０Ｂのルーティングアドレスは１となる。つまり、タイミングＴ１において生成されるルーティングアドレスは１、１、１、１、１、１、１、１となる。よって、タイミングＴ１のアクセス要求に応じて生成されるアクセスアドレスは接続ポート１を利用して処理される。
【００１７】
ここで、上記手順に沿って、ベクトル演算部１０から記憶部へのアクセスが行われ場合の記憶部側のタイミングチャートを図１５に示す。図１５に示すように、従来のアクセアス方法では、１つのアクセス単位に連続したワードが割り当てられる。また、従来のアクセス方法では、１つのキャッシュライン幅に連続したワードが割り当てられる。そして、従来のアクセス方法では、連続したワードが上記した割り当てとされることに起因して接続ポートを有効に利用することができない期間が発生し、その結果、アクセス時間が増大する問題がある。
【課題を解決するための手段】
【００１８】
本発明にかかる情報処理装置の一態様は、アクセス要求を出力する演算部と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と前記演算部から処理サイクル毎に受信する前記アクセス要求に対応する複数のアクセスアドレスを前記複数の接続ポートに振り分けて、１アクセス単位に前記演算部の異なる処理サイクルに属する不連続なワードを含むポート内アドレスを前記接続ポート毎に生成するメモリアクセス制御部と、を有する。
【００１９】
本発明にかかるメモリアクセス制御部の一態様は、アクセス要求を出力する演算部と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と、の間において前記アクセス要求に基づき前記記憶部の前記接続ポート毎にポート内アドレスを生成するメモリアクセス制御装置であって、前記アクセス要求に対応した複数のアクセスアドレスのそれぞれを割り当てる接続ポートを指定するルーティングアドレスを生成するルーティングアドレス生成部と、前記ルーティングアドレスに基づき前記アクセスアドレスを割り当てる接続ポートの競合調停を行う競合調停部と、複数の処理サイクルで入力される前記アクセスアドレスに基づき前記ポート内アドレスを生成するポート内アドレス生成部と、前記ポート内アドレスを前記競合調停部の競合調停処理に応じて前記複数の接続ポートのいずれか１つに割り当てるクロスバ部と、を有する。
【００２０】
本発明にかかるアドレス生成方法の一態様は、アクセス要求を出力する演算部と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と、を有する情報処理装置におけるアドレス生成方法であって、前記演算部の処理サイクル毎に前記アクセス要求に対応した前記複数のアクセスアドレスを生成し、前記複数のアクセスアドレスを前記複数の接続ポートに振り分けて、１アクセス単位に前記演算部の異なる処理サイクルに属する不連続なワードを含むポート内アドレスを前記接続ポート毎に生成する。
【発明の効果】
【００２１】
本発明にかかる情報処理装置、メモリアクセス制御装置及びそのアドレス生成方法によれば、アクセス単位が複数ワード長の記憶部を利用しながらアクセス時間を短縮することができる。
【図面の簡単な説明】
【００２２】
【図１】実施の形態１にかかる情報処理装置のブロック図である。
【図２】実施の形態１にかかる情報処理装置で扱われるアクセスアドレスのデータ構造を示す図である。
【図３】実施の形態１にかかる情報処理装置で扱われるアクセスアドレスのデータ構造を示す図である。
【図４】実施の形態１にかかる情報処理装置が出力するアクセス要求のタイミングチャートである。
【図５】実施の形態１にかかる情報処理装置の記憶部側のタイミングチャートである。
【図６】実施の形態１にかかる情報処理装置の記憶部のアドレス領域の割り当てを示す図である。
【図７】実施の形態２にかかる情報処理装置のブロック図である。
【図８】従来の一般的なアクセスアドレスのデータ構造の一例を示す図である。
【図９】従来の一般的なアクセスアドレスのデータ構造の一例を示す図である。
【図１０】従来の一般的なアクセスアドレスのデータ構造の一例を示す図である。
【図１１】従来のベクトル演算部が記憶部に対してアクセスを行う場合のアクセスアドレスのデータ構造の一例を示す図である。
【図１２】従来のベクトル演算部が記憶部に対してアクセスを行う場合のアクセスアドレスのデータ構造の一例を示す図である。
【図１３】従来のベクトル演算部が出力するアクセス要求のタイミングチャートである。
【図１４】従来のベクトル演算部の記憶部のアドレス領域の割り当てを示す図である。
【図１５】従来のベクトル演算部の記憶部側のタイミングチャートである。
【発明を実施するための形態】
【００２３】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。以下の説明では、情報処理装置の一例としてベクトル演算装置について説明する。しかし、本発明は、ベクトル演算装置に限らず、演算器（ＣＰＵ等）とメモリとの間でデータ転送を行う装置であれば適用可能である。
【００２４】
まず、図１に本実施の形態にかかる情報処理装置のブロック図を示す。図１に示すように情報処理装置１は、ベクトル演算部１０、記憶部２０、メモリアクセス制御部４０を有する。なお、図１に示す情報処理装置では、記憶部２０は主記憶部２１とキャッシュ部３１とにより構成される。なお。記憶部２０は、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、接続ポートに対して複数ワード長のアクセス単位でアクセスがなされる。
【００２５】
なお、本実施の形態では、説明を簡単にするために、同時処理可能なベクトル要素を８要素、記憶部２０への接続ポートを８ポート、記憶部２０のアクセス単位を８ワード、キャッシュラインライン幅を８ワードとした場合を例として述べる。
【００２６】
ベクトル演算部１０は、本願発明における演算部に相当するものである。ベクトル演算部１０は、処理に応じてアクセス要求を出力する。より具体的には、ベクトル演算部１０は、１処理サイクルで８つのベクトル要素ｖ０〜ｖ７と、先頭要素アドレスと、要素間距離を出力して、ベクトル要素毎のリクエストを行う。
【００２７】
主記憶部２１は、同時並行処理が可能な複数のメモリ（例えば、メモリブロックＭＥＭ）を備える。このメモリブロックＭＥＭは、接続ポート毎に設けられる。主記憶部２１は、８個の接続ポートを有し、ベクトル演算部１０で扱われるデータを格納し、メモリアクセスがなされる。
【００２８】
キャッシュ部３１は、接続ポート毎に設けられ、１つのキャッシュライン幅に少なくとも前記１アクセス単位以上のデータを格納する。このキャッシュ部３１ではキャッシュ部の１キャッシュライン幅（図１に示す例ではキャッシュＣＨとして示した）内に不連続なワードに割り当てられた複数のデータが格納される。図１に示す例では、接続ポート数を８個としたため、主記憶部２１がメモリブロックＭＥＭを８個有し、キャッシュ部３１もキャッシュＣＨを８個有する。そして、１つの接続ポートに対して１個のメモリブロックＭＥＭとキャッシュＣＨが接続される。
【００２９】
なお、主記憶部２１内のメモリブロックＭＥＭは、一度のアクセスで８ワード分のデータに対して処理を行い、８ワードの分のデータのうち所望のワードのデータの読み出し及び書き込みを行う。この一度のアクセスを８処理サイクルで行うとする。また、キャッシュ部３１内のキャッシュＣＨもメモリブロックＭＥＭと同様に一度のアクセスで８ワード分のデータに対して処理を行い、８ワードの分のデータのうち所望のワードのデータの読み出し及び書き込みを行う。この一度のアクセスを８処理サイクルで行うとする。つまり、キャッシュ部３１の複数の接続ポートは、メモリアクセス制御部４０から並列してアクセスされる。
【００３０】
メモリアクセス制御部４０は、ベクトル演算部１０から処理サイクル毎に受信するアクセス要求に対応する複数のアクセスアドレスを複数の接続ポートに振り分けて、１アクセス単位にベクトル演算部１０の異なる処理サイクルに属する不連続なワードを含むポート内アドレスを接続ポート毎に生成する。
【００３１】
また、メモリアクセス制御部４０は、アドレス生成部４１、アドレスレジスタ４２、ルーティングアドレス生成部４３、競合調停部４４、ポート内アドレス生成部４５、クロスバ部４６を有する。アドレス生成部４１は、先頭要素アドレスと、要素間距離情報とに基づき８個のアクセスアドレスを生成する。そして、８個のアクセスアドレスは、アドレスレジスタ４２の所定の領域に格納される。また、アドレスレジスタ４２は、アクセスアドレスに加えて、ベクトル要素ｖ０〜ｖ７を格納する。ルーティングアドレス生成部４３は、アクセスアドレスを割り当てる接続ポートを指定するルーティングアドレスを生成する。つまり、ルーティングアドレス生成部４３は、アクセスアドレスに従って要素毎のリクエストを送出するポートを指定するルーティングアドレスを生成する。競合調停部４４は、ルーティングアドレスに基づき複数のアクセスアドレスのそれぞれを割り当てる接続ポートの競合調停を行う。つまり、競合調停部４４は、ルーティングアドレスに基づきポート毎に送出する要素毎のリクエストを決定する競合調停を行う。ポート内アドレス生成部４５は、複数の処理サイクルで入力されるアクセスアドレスに基づきポート内アドレスを生成する。つまり、ポート内アドレス生成部４５は、要素毎のアクセスアドレスに従って各ポート内のアドレスを指定するポート内アドレスを生成する。クロスバ部４６は、ポート内アドレスを競合調停部４４の競合調停処理に応じて複数の接続ポートのいずれか１つに割り当てる。つまり、クロスバ部４６は、競合調停部４４の競合調停に従って要素毎のリクエストを各接続ポートに出力する。
【００３２】
続いて、実施の形態１にかかる情報処理装置１の動作について説明する。まず、情報処理装置１におけるアクセスアドレス、ルーティングアドレス、及びポート内アドレスの生成手順について説明する。情報処理装置１では、これらのアドレスはメモリアクセス制御部４０において生成される。メモリアクセス制御部４０のアドレス生成部４１は、先頭要素アドレスと要素間距離とを加算するアダー部においてアクセスアドレスを生成する。つまり。アドレス生成部４１では、先頭要素アドレスと要素間距離とを加算してアクセスアドレスを生成する。実施の形態１では、ベクトル要素ｖ０、ｖ１、ｖ２、ｖ３、ｖ４、ｖ５、ｖ６、ｖ７、先頭要素アドレス０Ｂ、要素間距離８Ｂのアクセス要求があった場合、アクセスアドレスとして０Ｂ、８Ｂ、１６Ｂ、２４Ｂ、３２Ｂ、４０Ｂ、４８Ｂ、５６Ｂが生成される。図２、３にアクセスアドレスのデータ構造を示す。なお、図２は、ルーティングアドレスの生成を説明するために用いる図であり、図３は、ポート内アドレスの生成を説明するために用いる図である。なお、図２、３に示すように、アクセスアドレスのうちａ９〜ａ１以外の上位ビットにポート内アクセスラインアドレスが定義されている。
【００３３】
続いて、図２を用いてルーティングアドレス生成部４３の動作について説明する。ルーティングアドレス生成部４３では、アクセスアドレスのａ６、ａ５及びａ４の３ビットに基づきルーティングアドレスを生成する。
【００３４】
また、図３を用いてポート内アドレス生成部４５の動作について説明する。ポート内アドレス生成部４５は、ルーティングアドレス生成に用いられるａ６〜ａ４を除く、ポート内アクセスラインアドレスと、ａ９〜ａ７およびａ３〜ａ１と、によりポート内アドレスを生成する。なお、アクセスアドレスのａ９〜ａ７及びａ３〜ａ１の６ビットは、アクセス単位内のアドレスを示す。
【００３５】
続いて、情報処理装置１の全体の動作について説明する。ベクトル演算部１０において８Ｂデータの配列を先頭要素から順次処理していく場合には、要素間距離は８Ｂとなる。このケースでの動作を図４及び図５のタイミングチャートを用いて説明する。例として先頭要素アドレスは０Ｂとする。まず、実施の形態１にかかる情報処理装置１のベクトル演算部１０が出力するアクセス要求のタイミングチャートを図４に示す。図４は、ベクトル演算部１０の処理サイクル毎（タイミングＴ０〜Ｔ７の各タイミング）にベクトル演算部１０がアクセス要求するワードを示している。また、図４は、ベクトル演算部１０が演算器０〜演算器７を有する例である。図４に示すように、ベクトル演算部１０は、１処理サイクルで連続した８つのワードをアクセス要求する。
【００３６】
この図４に示されるアクセス要求に対して、メモリアクセス制御部４０は、１つのアクセス単位に不連続なワードを割り当てたポート内アドレスを生成する。具体的には、図４のタイミングＴ０で、ベクトル演算部１０がベクトル要素ｖ０〜ｖ７、先頭要素アドレス０Ｂ、要素間距離８Ｂを出力してアクセス要求を行った場合、アドレス生成部４１は、ベクトル要素ｖ０〜Ｖ７のそれぞれに対応するアクセスアドレスとして０Ｂ、８Ｂ、１６Ｂ、２４Ｂ、３２Ｂ、４０Ｂ、４８Ｂ、５６Ｂを生成する。当該アクセスアドレスは、アドレスレジスタ４２に格納される。そして、ルーティングアドレス生成部４３は、アドレスレジスタ４２に格納された要素毎のアクセスアドレスに基づきルーティングアドレス０、１、２、３、４、５、６、７を生成する。このルーティングアドレスによると、タイミングＴ０におけるアクセス要求では接続ポートの競合は発生しないため、競合調停部４４は、このルーティングアドレスに応じてクロスバ部４６に接続ポートの割り当て指示を行う。
【００３７】
そして、ポート内アドレス生成部４５は、アドレスレジスタ４５に格納された要素毎のアクセスアドレスに基づきポート内アドレスを生成する。クロスバ部４６は、競合調停部４４の調停結果に応じて、ベクトル要素ｖ０〜ｖ７に対応するポート内アドレスを接続ポート０〜接続ポート７に振り分ける。
【００３８】
メモリアクセス制御部４０は、処理サイクル毎に出力するアクセス要求に対してそれぞれ上記動作を行う。これにより、メモリアクセス制御部４０が１つの接続ポートに対して時間的に連続して生成されるポート内アドレスは、不連続なワードについてのものとなる。つまり、接続ポート毎に定義されるアクセス単位は、不連続なワードを含むポート内アドレスにより構成される。そこで、情報処理装置の記憶部２０側のタイミングチャートを図５に示す。図５に示すように、接続ポート０〜接続ポート７には、それぞれ不連続なワードが割り当てられる。また、１つのアクセス単位には、不連続なワードが割り当てられることがわかる。さらに、図５に示すように、実施の形態１にかかる情報処理装置１では、記憶部２０へのアクセアスにおいて接続ポートが効率的に利用され、接続ポート毎のアクセス開始とアクセス終了にずれがなく、全データに対するアクセス時間が１アクセス単位で完了していることがわかる。
【００３９】
このような、メモリアクセス制御部４０によりアクセスされる記憶部２０のアドレス領域の割り当てを図６に示す。図６に示すように、実施の形態１にかかる情報処理装置１の記憶部２０では、１つの接続ポートに対応するアドレス領域に不連続なワードが格納される。言い換えると、隣り合う接続ポートに連続するワードが格納される。これは、メモリアクセス制御部４０が１つの接続ポートの１アクセス単位に不連続なワードを割り当てているためである。また、図６に示すように、１つのキャッシュライン幅（例えば、図６の接続ポートのアドレス領域の１行）には不連続なワードが割り当てられる。
【００４０】
上記説明より、実施の形態１にかかる情報処理装置１では、メモリアクセス制御部４０が複数のワードのアクセスを１アクセス単位としたときに、当該１アクセス単位に不連続なワードを割り当てたポート内アドレスを生成する。また、メモリアクセス制御部４０は、１処理サイクルのアクセス要求に対応して生成される複数のアクセスアドレスをそれぞれ別の接続ポートに振り分ける。
【００４１】
これにより、実施の形態１にかかる情報処理装置１では、いずれの動作サイクルにおいても接続ポートの利用状況に空きが生じることを防止して、接続ポートの利用効率を向上させる。また、実施の形態１にかかる情報処理装置１では、接続ポートの利用効率を向上させることでベクトル演算部１０と記憶部２０とのアクセス時間を短縮する。例えば、図５に示した実施の形態１にかかる情報処理装置１のアクセス時間と、当該図５に示すものと同じアクセス要求に対応する図１５の従来例のアクセス時間と、を比べると実施の形態１にかかる情報処理装置１は従来例の半分のアクセス時間でアクセスが完了している。
【００４２】
実施の形態２
実施の形態２にかかる情報処理装置２のブロック図を図７に示す。図７に示すように、情報処理装置２では、情報記憶装置１のキャッシュ部３１が除かれ、記憶部２０が主記憶部２１のみで構成される。つまり、情報処理装置２では、メモリアクセス制御部４０は、主記憶部２１に直接アクセスする。
【００４３】
このような場合、１アクセス単位でアクセスがなされる主記憶部２１のアクセスデータ幅内に不連続なワードを割り当てる。これにより、情報処理装置２のメモリアクセス制御部４０は、情報処理装置１のメモリアクセス制御部４０と同じ処理手順で動作できる。つまり、情報処理装置２は、情報処理装置１と同様にアクセアス時間を短縮することが可能である。
【００４４】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００４５】
１、２    情報処理装置
１０    ベクトル演算部
２０    記憶部
２１    主記憶部
３１    キャッシュ部
４０    メモリアクセス制御部
４１    アドレス生成部
４２    アドレスキャッシュ部
４３    ルーティングアドレス生成部
４４    競合調停部
４５    ポート内アドレス生成部
４６    クロスバ部
【図１】
0005348157.tif 000002
【図２】
0005348157.tif 000003
【図３】
0005348157.tif 000004
【図４】
0005348157.tif 000005
【図５】
0005348157.tif 000006
【図６】
0005348157.tif 000007
【図７】
0005348157.tif 000008
【図８】
0005348157.tif 000009
【図９】
0005348157.tif 000010
【図１０】
0005348157.tif 000011
【図１１】
0005348157.tif 000012
【図１２】
0005348157.tif 000013
【図１３】
0005348157.tif 000014
【図１４】
0005348157.tif 000015
【図１５】
0005348157.tif 000016