情報処理装置、メモリアクセス制御装置及びそのアドレス生成方法
【課題】アクセス単位が複数ワード長の記憶部を利用しながらアクセス時間を短縮する。
【解決手段】情報処理装置1は、アクセス要求を出力する演算部10と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、接続ポートに対するアクセス単位が複数ワード長の記憶部20と、演算部10から処理サイクル毎に受信する前記アクセス要求に対応する複数のアクセスアドレスを複数の接続ポートに振り分けて、1アクセス単位に演算部10の異なる処理サイクルに属する不連続なワードを含むポート内アドレスを接続ポート毎に生成するメモリアクセス制御部40と、を有する。
【解決手段】情報処理装置1は、アクセス要求を出力する演算部10と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、接続ポートに対するアクセス単位が複数ワード長の記憶部20と、演算部10から処理サイクル毎に受信する前記アクセス要求に対応する複数のアクセスアドレスを複数の接続ポートに振り分けて、1アクセス単位に演算部10の異なる処理サイクルに属する不連続なワードを含むポート内アドレスを接続ポート毎に生成するメモリアクセス制御部40と、を有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理装置、メモリアクセス制御装置及びそのアドレス生成方法に関し、特にアクセス単位が複数のワード長の記憶部にアクセスを行う情報処理装置、メモリアクセス制御装置及びそのアドレス生成方法に関する。
【背景技術】
【0002】
近年、データを並列処理することで演算能力の向上を実現する情報処理装置(例えば、プロセッサ)が多く提案されている。このような情報処理装置の1つにベクトル演算装置がある。このベクトル演算装置における従来のメモリアクセス方式の例が特許文献1、2に開示されている。
【0003】
特許文献1では、演算部のワード長と主記憶のワード長が異なる場合には、スループットが低下することが記載されている。そこで、特許文献1では、連続する複数のワードをまとめて主記憶にアクセスすることで性能向上を向上させている。しかしながら、演算部のワード長と主記憶のワード長が異なる場合に主記憶のワードに連続した複数の演算部のワードを割り当てる従来の方式では以下のような性能の低下が引き起こされる。
【0004】
ここで、特許文献2を例に従来技術について説明する。特許文献2は、ベクトル処理装置のルーティングアドレス生成方法についてのものである。また、当該ベクトル演算装置は、ベクトル演算部と、記憶部と、メモリアクセス制御部とを有する。ベクトル演算部は、ベクトル要素、先頭要素アドレス及び要素間距離を出力してアクセス要求を行う。記憶部は、同時並行処理を行うことが可能な複数のメモリバンクから構成され、複数の接続ポートを有する。メモリアクセス制御部は、ベクトル演算部と記憶部との間で、複数のアクセス要求を記憶部に接続する各接続ポート毎に独立にアクセス制御する。
【0005】
また、メモリアクセス制御部は、アダー部と、排他的論理和回路と、ルーティングアドレス生成部と、クロスバ部とを有する。アダー部は、ベクトル要素毎のアクセス要求のアクセスアドレスをベクトル演算部から送られてくる先頭要素アドレスと要素間距離との加算によって生成する。排他的論理和回路は、各ベクトル要素毎に、アクセスアドレスの一部であるルーティングアドレスの下位1ビットとアクセスアドレスのルーティングアドレス以外のビットとの排他的論理和をとる。ルーティングアドレス生成部は、該排他的論理和回路の出力をルーティングアドレスの下位1ビットと置き換えて新たなルーティングアドレスとする。競合調停部は、ルーティングアドレス生成部により生成されたルーティングアドレスに従って記憶部と接続する各接続ポート毎にアクセス要求の競合調停を行う。クロスバ部は、前記競合調停部の競合調停に従ってベクトル要素毎のアクセス要求を各接続ポートに出力する。
【0006】
特許文献2に記載のベクトル演算装置では、上記構成により、一つのアクセス要求に対して生成されるアクセスアドレスに割り当てられる接続ポートの競合を防止してアクセス性能を向上させることができる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特公平06−103491号公報
【特許文献2】特許第3789316号
【発明の概要】
【発明が解決しようとする課題】
【0008】
DDR(Double Data Rate)型のDRAM(Dynamic Random Access Memory)は、情報処理装置の処理速度の向上のために近年主流になってきている。このDRAMでは、連続したアドレスに連続的なアクセスを行うバーストアクセスが行われ、バス幅×バースト数によりアクセス単位が定義される。例えば、DDRではバースト数は2、DDR2ではバースト数は4、DDR3ではバースト数は8である。現在主流となりつつあるDDR3 DIMMでは64ビット(8バイト:以下8Bと表す)のバス幅を有するため、バースト数が8である場合、8Bのデータを8つ連続で転送を行うのでアクセス単位は64Bとなる。つまり、高速なDDR型のDRAMを使用することでアクセス単位が増加する。このように主記憶のアクセス単位が増加し演算部のアクセス長と異なることにより主記憶にアクセスする性能低下が引き起こされている。
【0009】
ここで、一般的な記憶部に対してベクトル演算部が発行するアクセスアドレスの例を図8〜図10に示す。図8は、ブロックのアドレスとブロック内のアドレスとによりアドレスの指定を行う場合のアクセスアドレスのデータ構造を示す。図9は、メモリインタリーブにより記憶部へのアクセスを行う場合のアクセスアドレスのデータ構造を示す。図10は、ダイレクトマッピング法により記憶部にアクセスする場合におけるアクセスアドレスのデータ構造を示す。
【0010】
また、記憶部へのメモリアクセス時間を短縮するためにキャッシュを設ける場合がある。情報処理装置では、記憶部へのアクセス要求をアクセス単位で行う。そのため、キャッシュに1つのアクセス単位でアクセスされるデータを全て登録することで記憶部へのアクセス効率が向上する。このようなことから、キャッシュ上でデータを管理する単位(キャッシュライン幅)は、このアクセス単位の整数倍となっている。なお、アクセス単位の増大に伴いキャッシュライン幅は増大する。
【0011】
従来のメモリアクセス方式では、上記アクセス単位とキャッシュライン幅との少なくとも一方を1ブロックとして扱う。このとき、キャッシュをアクセス単位で分割し、アクセス単位でインタリーブしてデータ転送を行うと、1アクセス単位のデータ幅が増大してメモリアクセス時間が増加する問題があった。また、キャッシュをキャッシュライン幅で分割し、キャッシュライン幅毎にインタリーブしてデータ転送を行うと、1キャッシュライン幅が増大してメモリアクセス時間が増加する問題があった。
【0012】
より具体的に上記課題を説明する。主記憶へのアクセスにおいて用いられるアクセスアドレスのデータ構造の例を図11、12に示す。この例では、図11に示すように、アクセスアドレスが24ビットで構成される。そして、アクセスアドレスの上位15ビットにポート内アクセスラインアドレスが定義される。また、アクセスアドレスのうちポート内アドレスに続く3ビット(ビットa9、a8、及び、a7)にルーティングアドレスが定義される。さらに、図12に示すように、アクセスアドレスのうち、ポート内アクセスラインアドレスとアクセス単位内アドレス(ビットa6〜a1)を用いてポート内アドレスが生成される。
【0013】
また、ベクトル演算部が演算器0〜演算器7を有し、演算器0〜演算器7が1処理サイクルで連続したワードに対するアクセスを行う場合におけるベクトル演算部が出力するアクセス要求のタイミングチャートを図13に示す。図13に示す例では、ベクトル演算部は、サイクルT0において、ベクトル要素v0、v1、v2、v3、v4、v5、v6、v7、先頭要素アドレス0B、要素間距離8Bをアクセス要求として出力する。このようなアクセス要求を行うことで、記憶部へのアクセスを効率的に行うことが可能になる。ベクトル演算装置のメモリアクセス制御部は、このアクセス要求を受けて、ベクトル要素v0、v1、v2、v3、v4、v5、v6、v7に対応してアクセスアドレス0B、8B、16B、24B、32B、40B、48B、56Bを生成する。図13では、メモリアクセス制御部が生成するアクセスアドレスを動作タイミング毎に示した。
【0014】
メモリアクセス制御部のルーティングアドレス生成部が図11に示すようにアクセスアドレス中の3ビットをルーティングアドレスとして選択する。ルーティングアドレスで指定される接続ポートを使用してキャッシュ部3へリクエストが送られる。タイミングT0のアクセス要求に対しては、ベクトル要素v0、v1、v2、v3、v4、v5、v6、v7に対してルーティングアドレス0、0、0、0、0、0、0、0が生成される。つまり、クロスバ部は、タイミングT0のアクセス要求に応じて生成されるアクセスアドレス0B、8B、16B、24B、32B、40B、48B、56Bを全て接続ポート0で処理する。つまり、接続ポート0では、ベクトル要素v0、v1、v2、v3、v4、v5、v6、v7が順に処理される。
【0015】
そして、記憶部が接続ポート0〜接続ポート7を有し、ベクトル演算部10が演算器0〜演算器7を有していた場合において、図13に示したタイミングチャートに沿ってアクセスされる記憶部のアドレス領域の割り当てを図14に示す。図14に示すように、従来の記憶部の接続ポート0の1アクセスライン幅に、連続するワード(0、8、16、・・・、56バイト目のワード)が格納される。また、他の接続ポートの1アクセスライン幅内にも連続したワードが書き込まれる。
【0016】
また、図13に示したタイミングチャートに沿ってアクセス要求がなされた場合、タイミングT1でのアクセス要求に応じて生成されるベクトル要素v0、v1、v2、v3、v4、v5、v6、v7のアクセスアドレスである64B、72B、80B、88B、96B、104B、112B、120Bのルーティングアドレスは1となる。つまり、タイミングT1において生成されるルーティングアドレスは1、1、1、1、1、1、1、1となる。よって、タイミングT1のアクセス要求に応じて生成されるアクセスアドレスは接続ポート1を利用して処理される。
【0017】
ここで、上記手順に沿って、ベクトル演算部10から記憶部へのアクセスが行われ場合の記憶部側のタイミングチャートを図15に示す。図15に示すように、従来のアクセアス方法では、1つのアクセス単位に連続したワードが割り当てられる。また、従来のアクセス方法では、1つのキャッシュライン幅に連続したワードが割り当てられる。そして、従来のアクセス方法では、連続したワードが上記した割り当てとされることに起因して接続ポートを有効に利用することができない期間が発生し、その結果、アクセス時間が増大する問題がある。
【課題を解決するための手段】
【0018】
本発明にかかる情報処理装置の一態様は、アクセス要求を出力する演算部と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と前記演算部から処理サイクル毎に受信する前記アクセス要求に対応する複数のアクセスアドレスを前記複数の接続ポートに振り分けて、1アクセス単位に前記演算部の異なる処理サイクルに属する不連続なワードを含むポート内アドレスを前記接続ポート毎に生成するメモリアクセス制御部と、を有する。
【0019】
本発明にかかるメモリアクセス制御部の一態様は、アクセス要求を出力する演算部と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と、の間において前記アクセス要求に基づき前記記憶部の前記接続ポート毎にポート内アドレスを生成するメモリアクセス制御装置であって、前記アクセス要求に対応した複数のアクセスアドレスのそれぞれを割り当てる接続ポートを指定するルーティングアドレスを生成するルーティングアドレス生成部と、前記ルーティングアドレスに基づき前記アクセスアドレスを割り当てる接続ポートの競合調停を行う競合調停部と、複数の処理サイクルで入力される前記アクセスアドレスに基づき前記ポート内アドレスを生成するポート内アドレス生成部と、前記ポート内アドレスを前記競合調停部の競合調停処理に応じて前記複数の接続ポートのいずれか1つに割り当てるクロスバ部と、を有する。
【0020】
本発明にかかるアドレス生成方法の一態様は、アクセス要求を出力する演算部と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と、を有する情報処理装置におけるアドレス生成方法であって、前記演算部の処理サイクル毎に前記アクセス要求に対応した前記複数のアクセスアドレスを生成し、前記複数のアクセスアドレスを前記複数の接続ポートに振り分けて、1アクセス単位に前記演算部の異なる処理サイクルに属する不連続なワードを含むポート内アドレスを前記接続ポート毎に生成する。
【発明の効果】
【0021】
本発明にかかる情報処理装置、メモリアクセス制御装置及びそのアドレス生成方法によれば、アクセス単位が複数ワード長の記憶部を利用しながらアクセス時間を短縮することができる。
【図面の簡単な説明】
【0022】
【図1】実施の形態1にかかる情報処理装置のブロック図である。
【図2】実施の形態1にかかる情報処理装置で扱われるアクセスアドレスのデータ構造を示す図である。
【図3】実施の形態1にかかる情報処理装置で扱われるアクセスアドレスのデータ構造を示す図である。
【図4】実施の形態1にかかる情報処理装置が出力するアクセス要求のタイミングチャートである。
【図5】実施の形態1にかかる情報処理装置の記憶部側のタイミングチャートである。
【図6】実施の形態1にかかる情報処理装置の記憶部のアドレス領域の割り当てを示す図である。
【図7】実施の形態2にかかる情報処理装置のブロック図である。
【図8】従来の一般的なアクセスアドレスのデータ構造の一例を示す図である。
【図9】従来の一般的なアクセスアドレスのデータ構造の一例を示す図である。
【図10】従来の一般的なアクセスアドレスのデータ構造の一例を示す図である。
【図11】従来のベクトル演算部が記憶部に対してアクセスを行う場合のアクセスアドレスのデータ構造の一例を示す図である。
【図12】従来のベクトル演算部が記憶部に対してアクセスを行う場合のアクセスアドレスのデータ構造の一例を示す図である。
【図13】従来のベクトル演算部が出力するアクセス要求のタイミングチャートである。
【図14】従来のベクトル演算部の記憶部のアドレス領域の割り当てを示す図である。
【図15】従来のベクトル演算部の記憶部側のタイミングチャートである。
【発明を実施するための形態】
【0023】
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。以下の説明では、情報処理装置の一例としてベクトル演算装置について説明する。しかし、本発明は、ベクトル演算装置に限らず、演算器(CPU等)とメモリとの間でデータ転送を行う装置であれば適用可能である。
【0024】
まず、図1に本実施の形態にかかる情報処理装置のブロック図を示す。図1に示すように情報処理装置1は、ベクトル演算部10、記憶部20、メモリアクセス制御部40を有する。なお、図1に示す情報処理装置では、記憶部20は主記憶部21とキャッシュ部31とにより構成される。なお。記憶部20は、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、接続ポートに対して複数ワード長のアクセス単位でアクセスがなされる。
【0025】
なお、本実施の形態では、説明を簡単にするために、同時処理可能なベクトル要素を8要素、記憶部20への接続ポートを8ポート、記憶部20のアクセス単位を8ワード、キャッシュラインライン幅を8ワードとした場合を例として述べる。
【0026】
ベクトル演算部10は、本願発明における演算部に相当するものである。ベクトル演算部10は、処理に応じてアクセス要求を出力する。より具体的には、ベクトル演算部10は、1処理サイクルで8つのベクトル要素v0〜v7と、先頭要素アドレスと、要素間距離を出力して、ベクトル要素毎のリクエストを行う。
【0027】
主記憶部21は、同時並行処理が可能な複数のメモリ(例えば、メモリブロックMEM)を備える。このメモリブロックMEMは、接続ポート毎に設けられる。主記憶部21は、8個の接続ポートを有し、ベクトル演算部10で扱われるデータを格納し、メモリアクセスがなされる。
【0028】
キャッシュ部31は、接続ポート毎に設けられ、1つのキャッシュライン幅に少なくとも前記1アクセス単位以上のデータを格納する。このキャッシュ部31ではキャッシュ部の1キャッシュライン幅(図1に示す例ではキャッシュCHとして示した)内に不連続なワードに割り当てられた複数のデータが格納される。図1に示す例では、接続ポート数を8個としたため、主記憶部21がメモリブロックMEMを8個有し、キャッシュ部31もキャッシュCHを8個有する。そして、1つの接続ポートに対して1個のメモリブロックMEMとキャッシュCHが接続される。
【0029】
なお、主記憶部21内のメモリブロックMEMは、一度のアクセスで8ワード分のデータに対して処理を行い、8ワードの分のデータのうち所望のワードのデータの読み出し及び書き込みを行う。この一度のアクセスを8処理サイクルで行うとする。また、キャッシュ部31内のキャッシュCHもメモリブロックMEMと同様に一度のアクセスで8ワード分のデータに対して処理を行い、8ワードの分のデータのうち所望のワードのデータの読み出し及び書き込みを行う。この一度のアクセスを8処理サイクルで行うとする。つまり、キャッシュ部31の複数の接続ポートは、メモリアクセス制御部40から並列してアクセスされる。
【0030】
メモリアクセス制御部40は、ベクトル演算部10から処理サイクル毎に受信するアクセス要求に対応する複数のアクセスアドレスを複数の接続ポートに振り分けて、1アクセス単位にベクトル演算部10の異なる処理サイクルに属する不連続なワードを含むポート内アドレスを接続ポート毎に生成する。
【0031】
また、メモリアクセス制御部40は、アドレス生成部41、アドレスレジスタ42、ルーティングアドレス生成部43、競合調停部44、ポート内アドレス生成部45、クロスバ部46を有する。アドレス生成部41は、先頭要素アドレスと、要素間距離情報とに基づき8個のアクセスアドレスを生成する。そして、8個のアクセスアドレスは、アドレスレジスタ42の所定の領域に格納される。また、アドレスレジスタ42は、アクセスアドレスに加えて、ベクトル要素v0〜v7を格納する。ルーティングアドレス生成部43は、アクセスアドレスを割り当てる接続ポートを指定するルーティングアドレスを生成する。つまり、ルーティングアドレス生成部43は、アクセスアドレスに従って要素毎のリクエストを送出するポートを指定するルーティングアドレスを生成する。競合調停部44は、ルーティングアドレスに基づき複数のアクセスアドレスのそれぞれを割り当てる接続ポートの競合調停を行う。つまり、競合調停部44は、ルーティングアドレスに基づきポート毎に送出する要素毎のリクエストを決定する競合調停を行う。ポート内アドレス生成部45は、複数の処理サイクルで入力されるアクセスアドレスに基づきポート内アドレスを生成する。つまり、ポート内アドレス生成部45は、要素毎のアクセスアドレスに従って各ポート内のアドレスを指定するポート内アドレスを生成する。クロスバ部46は、ポート内アドレスを競合調停部44の競合調停処理に応じて複数の接続ポートのいずれか1つに割り当てる。つまり、クロスバ部46は、競合調停部44の競合調停に従って要素毎のリクエストを各接続ポートに出力する。
【0032】
続いて、実施の形態1にかかる情報処理装置1の動作について説明する。まず、情報処理装置1におけるアクセスアドレス、ルーティングアドレス、及びポート内アドレスの生成手順について説明する。情報処理装置1では、これらのアドレスはメモリアクセス制御部40において生成される。メモリアクセス制御部40のアドレス生成部41は、先頭要素アドレスと要素間距離とを加算するアダー部においてアクセスアドレスを生成する。つまり。アドレス生成部41では、先頭要素アドレスと要素間距離とを加算してアクセスアドレスを生成する。実施の形態1では、ベクトル要素v0、v1、v2、v3、v4、v5、v6、v7、先頭要素アドレス0B、要素間距離8Bのアクセス要求があった場合、アクセスアドレスとして0B、8B、16B、24B、32B、40B、48B、56Bが生成される。図2、3にアクセスアドレスのデータ構造を示す。なお、図2は、ルーティングアドレスの生成を説明するために用いる図であり、図3は、ポート内アドレスの生成を説明するために用いる図である。なお、図2、3に示すように、アクセスアドレスのうちa9〜a1以外の上位ビットにポート内アクセスラインアドレスが定義されている。
【0033】
続いて、図2を用いてルーティングアドレス生成部43の動作について説明する。ルーティングアドレス生成部43では、アクセスアドレスのa6、a5及びa4の3ビットに基づきルーティングアドレスを生成する。
【0034】
また、図3を用いてポート内アドレス生成部45の動作について説明する。ポート内アドレス生成部45は、ルーティングアドレス生成に用いられるa6〜a4を除く、ポート内アクセスラインアドレスと、a9〜a7およびa3〜a1と、によりポート内アドレスを生成する。なお、アクセスアドレスのa9〜a7及びa3〜a1の6ビットは、アクセス単位内のアドレスを示す。
【0035】
続いて、情報処理装置1の全体の動作について説明する。ベクトル演算部10において8Bデータの配列を先頭要素から順次処理していく場合には、要素間距離は8Bとなる。このケースでの動作を図4及び図5のタイミングチャートを用いて説明する。例として先頭要素アドレスは0Bとする。まず、実施の形態1にかかる情報処理装置1のベクトル演算部10が出力するアクセス要求のタイミングチャートを図4に示す。図4は、ベクトル演算部10の処理サイクル毎(タイミングT0〜T7の各タイミング)にベクトル演算部10がアクセス要求するワードを示している。また、図4は、ベクトル演算部10が演算器0〜演算器7を有する例である。図4に示すように、ベクトル演算部10は、1処理サイクルで連続した8つのワードをアクセス要求する。
【0036】
この図4に示されるアクセス要求に対して、メモリアクセス制御部40は、1つのアクセス単位に不連続なワードを割り当てたポート内アドレスを生成する。具体的には、図4のタイミングT0で、ベクトル演算部10がベクトル要素v0〜v7、先頭要素アドレス0B、要素間距離8Bを出力してアクセス要求を行った場合、アドレス生成部41は、ベクトル要素v0〜V7のそれぞれに対応するアクセスアドレスとして0B、8B、16B、24B、32B、40B、48B、56Bを生成する。当該アクセスアドレスは、アドレスレジスタ42に格納される。そして、ルーティングアドレス生成部43は、アドレスレジスタ42に格納された要素毎のアクセスアドレスに基づきルーティングアドレス0、1、2、3、4、5、6、7を生成する。このルーティングアドレスによると、タイミングT0におけるアクセス要求では接続ポートの競合は発生しないため、競合調停部44は、このルーティングアドレスに応じてクロスバ部46に接続ポートの割り当て指示を行う。
【0037】
そして、ポート内アドレス生成部45は、アドレスレジスタ45に格納された要素毎のアクセスアドレスに基づきポート内アドレスを生成する。クロスバ部46は、競合調停部44の調停結果に応じて、ベクトル要素v0〜v7に対応するポート内アドレスを接続ポート0〜接続ポート7に振り分ける。
【0038】
メモリアクセス制御部40は、処理サイクル毎に出力するアクセス要求に対してそれぞれ上記動作を行う。これにより、メモリアクセス制御部40が1つの接続ポートに対して時間的に連続して生成されるポート内アドレスは、不連続なワードについてのものとなる。つまり、接続ポート毎に定義されるアクセス単位は、不連続なワードを含むポート内アドレスにより構成される。そこで、情報処理装置の記憶部20側のタイミングチャートを図5に示す。図5に示すように、接続ポート0〜接続ポート7には、それぞれ不連続なワードが割り当てられる。また、1つのアクセス単位には、不連続なワードが割り当てられることがわかる。さらに、図5に示すように、実施の形態1にかかる情報処理装置1では、記憶部20へのアクセアスにおいて接続ポートが効率的に利用され、接続ポート毎のアクセス開始とアクセス終了にずれがなく、全データに対するアクセス時間が1アクセス単位で完了していることがわかる。
【0039】
このような、メモリアクセス制御部40によりアクセスされる記憶部20のアドレス領域の割り当てを図6に示す。図6に示すように、実施の形態1にかかる情報処理装置1の記憶部20では、1つの接続ポートに対応するアドレス領域に不連続なワードが格納される。言い換えると、隣り合う接続ポートに連続するワードが格納される。これは、メモリアクセス制御部40が1つの接続ポートの1アクセス単位に不連続なワードを割り当てているためである。また、図6に示すように、1つのキャッシュライン幅(例えば、図6の接続ポートのアドレス領域の1行)には不連続なワードが割り当てられる。
【0040】
上記説明より、実施の形態1にかかる情報処理装置1では、メモリアクセス制御部40が複数のワードのアクセスを1アクセス単位としたときに、当該1アクセス単位に不連続なワードを割り当てたポート内アドレスを生成する。また、メモリアクセス制御部40は、1処理サイクルのアクセス要求に対応して生成される複数のアクセスアドレスをそれぞれ別の接続ポートに振り分ける。
【0041】
これにより、実施の形態1にかかる情報処理装置1では、いずれの動作サイクルにおいても接続ポートの利用状況に空きが生じることを防止して、接続ポートの利用効率を向上させる。また、実施の形態1にかかる情報処理装置1では、接続ポートの利用効率を向上させることでベクトル演算部10と記憶部20とのアクセス時間を短縮する。例えば、図5に示した実施の形態1にかかる情報処理装置1のアクセス時間と、当該図5に示すものと同じアクセス要求に対応する図15の従来例のアクセス時間と、を比べると実施の形態1にかかる情報処理装置1は従来例の半分のアクセス時間でアクセスが完了している。
【0042】
実施の形態2
実施の形態2にかかる情報処理装置2のブロック図を図7に示す。図7に示すように、情報処理装置2では、情報記憶装置1のキャッシュ部31が除かれ、記憶部20が主記憶部21のみで構成される。つまり、情報処理装置2では、メモリアクセス制御部40は、主記憶部21に直接アクセスする。
【0043】
このような場合、1アクセス単位でアクセスがなされる主記憶部21のアクセスデータ幅内に不連続なワードを割り当てる。これにより、情報処理装置2のメモリアクセス制御部40は、情報処理装置1のメモリアクセス制御部40と同じ処理手順で動作できる。つまり、情報処理装置2は、情報処理装置1と同様にアクセアス時間を短縮することが可能である。
【0044】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0045】
1、2 情報処理装置
10 ベクトル演算部
20 記憶部
21 主記憶部
31 キャッシュ部
40 メモリアクセス制御部
41 アドレス生成部
42 アドレスキャッシュ部
43 ルーティングアドレス生成部
44 競合調停部
45 ポート内アドレス生成部
46 クロスバ部
【技術分野】
【0001】
本発明は情報処理装置、メモリアクセス制御装置及びそのアドレス生成方法に関し、特にアクセス単位が複数のワード長の記憶部にアクセスを行う情報処理装置、メモリアクセス制御装置及びそのアドレス生成方法に関する。
【背景技術】
【0002】
近年、データを並列処理することで演算能力の向上を実現する情報処理装置(例えば、プロセッサ)が多く提案されている。このような情報処理装置の1つにベクトル演算装置がある。このベクトル演算装置における従来のメモリアクセス方式の例が特許文献1、2に開示されている。
【0003】
特許文献1では、演算部のワード長と主記憶のワード長が異なる場合には、スループットが低下することが記載されている。そこで、特許文献1では、連続する複数のワードをまとめて主記憶にアクセスすることで性能向上を向上させている。しかしながら、演算部のワード長と主記憶のワード長が異なる場合に主記憶のワードに連続した複数の演算部のワードを割り当てる従来の方式では以下のような性能の低下が引き起こされる。
【0004】
ここで、特許文献2を例に従来技術について説明する。特許文献2は、ベクトル処理装置のルーティングアドレス生成方法についてのものである。また、当該ベクトル演算装置は、ベクトル演算部と、記憶部と、メモリアクセス制御部とを有する。ベクトル演算部は、ベクトル要素、先頭要素アドレス及び要素間距離を出力してアクセス要求を行う。記憶部は、同時並行処理を行うことが可能な複数のメモリバンクから構成され、複数の接続ポートを有する。メモリアクセス制御部は、ベクトル演算部と記憶部との間で、複数のアクセス要求を記憶部に接続する各接続ポート毎に独立にアクセス制御する。
【0005】
また、メモリアクセス制御部は、アダー部と、排他的論理和回路と、ルーティングアドレス生成部と、クロスバ部とを有する。アダー部は、ベクトル要素毎のアクセス要求のアクセスアドレスをベクトル演算部から送られてくる先頭要素アドレスと要素間距離との加算によって生成する。排他的論理和回路は、各ベクトル要素毎に、アクセスアドレスの一部であるルーティングアドレスの下位1ビットとアクセスアドレスのルーティングアドレス以外のビットとの排他的論理和をとる。ルーティングアドレス生成部は、該排他的論理和回路の出力をルーティングアドレスの下位1ビットと置き換えて新たなルーティングアドレスとする。競合調停部は、ルーティングアドレス生成部により生成されたルーティングアドレスに従って記憶部と接続する各接続ポート毎にアクセス要求の競合調停を行う。クロスバ部は、前記競合調停部の競合調停に従ってベクトル要素毎のアクセス要求を各接続ポートに出力する。
【0006】
特許文献2に記載のベクトル演算装置では、上記構成により、一つのアクセス要求に対して生成されるアクセスアドレスに割り当てられる接続ポートの競合を防止してアクセス性能を向上させることができる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特公平06−103491号公報
【特許文献2】特許第3789316号
【発明の概要】
【発明が解決しようとする課題】
【0008】
DDR(Double Data Rate)型のDRAM(Dynamic Random Access Memory)は、情報処理装置の処理速度の向上のために近年主流になってきている。このDRAMでは、連続したアドレスに連続的なアクセスを行うバーストアクセスが行われ、バス幅×バースト数によりアクセス単位が定義される。例えば、DDRではバースト数は2、DDR2ではバースト数は4、DDR3ではバースト数は8である。現在主流となりつつあるDDR3 DIMMでは64ビット(8バイト:以下8Bと表す)のバス幅を有するため、バースト数が8である場合、8Bのデータを8つ連続で転送を行うのでアクセス単位は64Bとなる。つまり、高速なDDR型のDRAMを使用することでアクセス単位が増加する。このように主記憶のアクセス単位が増加し演算部のアクセス長と異なることにより主記憶にアクセスする性能低下が引き起こされている。
【0009】
ここで、一般的な記憶部に対してベクトル演算部が発行するアクセスアドレスの例を図8〜図10に示す。図8は、ブロックのアドレスとブロック内のアドレスとによりアドレスの指定を行う場合のアクセスアドレスのデータ構造を示す。図9は、メモリインタリーブにより記憶部へのアクセスを行う場合のアクセスアドレスのデータ構造を示す。図10は、ダイレクトマッピング法により記憶部にアクセスする場合におけるアクセスアドレスのデータ構造を示す。
【0010】
また、記憶部へのメモリアクセス時間を短縮するためにキャッシュを設ける場合がある。情報処理装置では、記憶部へのアクセス要求をアクセス単位で行う。そのため、キャッシュに1つのアクセス単位でアクセスされるデータを全て登録することで記憶部へのアクセス効率が向上する。このようなことから、キャッシュ上でデータを管理する単位(キャッシュライン幅)は、このアクセス単位の整数倍となっている。なお、アクセス単位の増大に伴いキャッシュライン幅は増大する。
【0011】
従来のメモリアクセス方式では、上記アクセス単位とキャッシュライン幅との少なくとも一方を1ブロックとして扱う。このとき、キャッシュをアクセス単位で分割し、アクセス単位でインタリーブしてデータ転送を行うと、1アクセス単位のデータ幅が増大してメモリアクセス時間が増加する問題があった。また、キャッシュをキャッシュライン幅で分割し、キャッシュライン幅毎にインタリーブしてデータ転送を行うと、1キャッシュライン幅が増大してメモリアクセス時間が増加する問題があった。
【0012】
より具体的に上記課題を説明する。主記憶へのアクセスにおいて用いられるアクセスアドレスのデータ構造の例を図11、12に示す。この例では、図11に示すように、アクセスアドレスが24ビットで構成される。そして、アクセスアドレスの上位15ビットにポート内アクセスラインアドレスが定義される。また、アクセスアドレスのうちポート内アドレスに続く3ビット(ビットa9、a8、及び、a7)にルーティングアドレスが定義される。さらに、図12に示すように、アクセスアドレスのうち、ポート内アクセスラインアドレスとアクセス単位内アドレス(ビットa6〜a1)を用いてポート内アドレスが生成される。
【0013】
また、ベクトル演算部が演算器0〜演算器7を有し、演算器0〜演算器7が1処理サイクルで連続したワードに対するアクセスを行う場合におけるベクトル演算部が出力するアクセス要求のタイミングチャートを図13に示す。図13に示す例では、ベクトル演算部は、サイクルT0において、ベクトル要素v0、v1、v2、v3、v4、v5、v6、v7、先頭要素アドレス0B、要素間距離8Bをアクセス要求として出力する。このようなアクセス要求を行うことで、記憶部へのアクセスを効率的に行うことが可能になる。ベクトル演算装置のメモリアクセス制御部は、このアクセス要求を受けて、ベクトル要素v0、v1、v2、v3、v4、v5、v6、v7に対応してアクセスアドレス0B、8B、16B、24B、32B、40B、48B、56Bを生成する。図13では、メモリアクセス制御部が生成するアクセスアドレスを動作タイミング毎に示した。
【0014】
メモリアクセス制御部のルーティングアドレス生成部が図11に示すようにアクセスアドレス中の3ビットをルーティングアドレスとして選択する。ルーティングアドレスで指定される接続ポートを使用してキャッシュ部3へリクエストが送られる。タイミングT0のアクセス要求に対しては、ベクトル要素v0、v1、v2、v3、v4、v5、v6、v7に対してルーティングアドレス0、0、0、0、0、0、0、0が生成される。つまり、クロスバ部は、タイミングT0のアクセス要求に応じて生成されるアクセスアドレス0B、8B、16B、24B、32B、40B、48B、56Bを全て接続ポート0で処理する。つまり、接続ポート0では、ベクトル要素v0、v1、v2、v3、v4、v5、v6、v7が順に処理される。
【0015】
そして、記憶部が接続ポート0〜接続ポート7を有し、ベクトル演算部10が演算器0〜演算器7を有していた場合において、図13に示したタイミングチャートに沿ってアクセスされる記憶部のアドレス領域の割り当てを図14に示す。図14に示すように、従来の記憶部の接続ポート0の1アクセスライン幅に、連続するワード(0、8、16、・・・、56バイト目のワード)が格納される。また、他の接続ポートの1アクセスライン幅内にも連続したワードが書き込まれる。
【0016】
また、図13に示したタイミングチャートに沿ってアクセス要求がなされた場合、タイミングT1でのアクセス要求に応じて生成されるベクトル要素v0、v1、v2、v3、v4、v5、v6、v7のアクセスアドレスである64B、72B、80B、88B、96B、104B、112B、120Bのルーティングアドレスは1となる。つまり、タイミングT1において生成されるルーティングアドレスは1、1、1、1、1、1、1、1となる。よって、タイミングT1のアクセス要求に応じて生成されるアクセスアドレスは接続ポート1を利用して処理される。
【0017】
ここで、上記手順に沿って、ベクトル演算部10から記憶部へのアクセスが行われ場合の記憶部側のタイミングチャートを図15に示す。図15に示すように、従来のアクセアス方法では、1つのアクセス単位に連続したワードが割り当てられる。また、従来のアクセス方法では、1つのキャッシュライン幅に連続したワードが割り当てられる。そして、従来のアクセス方法では、連続したワードが上記した割り当てとされることに起因して接続ポートを有効に利用することができない期間が発生し、その結果、アクセス時間が増大する問題がある。
【課題を解決するための手段】
【0018】
本発明にかかる情報処理装置の一態様は、アクセス要求を出力する演算部と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と前記演算部から処理サイクル毎に受信する前記アクセス要求に対応する複数のアクセスアドレスを前記複数の接続ポートに振り分けて、1アクセス単位に前記演算部の異なる処理サイクルに属する不連続なワードを含むポート内アドレスを前記接続ポート毎に生成するメモリアクセス制御部と、を有する。
【0019】
本発明にかかるメモリアクセス制御部の一態様は、アクセス要求を出力する演算部と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と、の間において前記アクセス要求に基づき前記記憶部の前記接続ポート毎にポート内アドレスを生成するメモリアクセス制御装置であって、前記アクセス要求に対応した複数のアクセスアドレスのそれぞれを割り当てる接続ポートを指定するルーティングアドレスを生成するルーティングアドレス生成部と、前記ルーティングアドレスに基づき前記アクセスアドレスを割り当てる接続ポートの競合調停を行う競合調停部と、複数の処理サイクルで入力される前記アクセスアドレスに基づき前記ポート内アドレスを生成するポート内アドレス生成部と、前記ポート内アドレスを前記競合調停部の競合調停処理に応じて前記複数の接続ポートのいずれか1つに割り当てるクロスバ部と、を有する。
【0020】
本発明にかかるアドレス生成方法の一態様は、アクセス要求を出力する演算部と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と、を有する情報処理装置におけるアドレス生成方法であって、前記演算部の処理サイクル毎に前記アクセス要求に対応した前記複数のアクセスアドレスを生成し、前記複数のアクセスアドレスを前記複数の接続ポートに振り分けて、1アクセス単位に前記演算部の異なる処理サイクルに属する不連続なワードを含むポート内アドレスを前記接続ポート毎に生成する。
【発明の効果】
【0021】
本発明にかかる情報処理装置、メモリアクセス制御装置及びそのアドレス生成方法によれば、アクセス単位が複数ワード長の記憶部を利用しながらアクセス時間を短縮することができる。
【図面の簡単な説明】
【0022】
【図1】実施の形態1にかかる情報処理装置のブロック図である。
【図2】実施の形態1にかかる情報処理装置で扱われるアクセスアドレスのデータ構造を示す図である。
【図3】実施の形態1にかかる情報処理装置で扱われるアクセスアドレスのデータ構造を示す図である。
【図4】実施の形態1にかかる情報処理装置が出力するアクセス要求のタイミングチャートである。
【図5】実施の形態1にかかる情報処理装置の記憶部側のタイミングチャートである。
【図6】実施の形態1にかかる情報処理装置の記憶部のアドレス領域の割り当てを示す図である。
【図7】実施の形態2にかかる情報処理装置のブロック図である。
【図8】従来の一般的なアクセスアドレスのデータ構造の一例を示す図である。
【図9】従来の一般的なアクセスアドレスのデータ構造の一例を示す図である。
【図10】従来の一般的なアクセスアドレスのデータ構造の一例を示す図である。
【図11】従来のベクトル演算部が記憶部に対してアクセスを行う場合のアクセスアドレスのデータ構造の一例を示す図である。
【図12】従来のベクトル演算部が記憶部に対してアクセスを行う場合のアクセスアドレスのデータ構造の一例を示す図である。
【図13】従来のベクトル演算部が出力するアクセス要求のタイミングチャートである。
【図14】従来のベクトル演算部の記憶部のアドレス領域の割り当てを示す図である。
【図15】従来のベクトル演算部の記憶部側のタイミングチャートである。
【発明を実施するための形態】
【0023】
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。以下の説明では、情報処理装置の一例としてベクトル演算装置について説明する。しかし、本発明は、ベクトル演算装置に限らず、演算器(CPU等)とメモリとの間でデータ転送を行う装置であれば適用可能である。
【0024】
まず、図1に本実施の形態にかかる情報処理装置のブロック図を示す。図1に示すように情報処理装置1は、ベクトル演算部10、記憶部20、メモリアクセス制御部40を有する。なお、図1に示す情報処理装置では、記憶部20は主記憶部21とキャッシュ部31とにより構成される。なお。記憶部20は、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、接続ポートに対して複数ワード長のアクセス単位でアクセスがなされる。
【0025】
なお、本実施の形態では、説明を簡単にするために、同時処理可能なベクトル要素を8要素、記憶部20への接続ポートを8ポート、記憶部20のアクセス単位を8ワード、キャッシュラインライン幅を8ワードとした場合を例として述べる。
【0026】
ベクトル演算部10は、本願発明における演算部に相当するものである。ベクトル演算部10は、処理に応じてアクセス要求を出力する。より具体的には、ベクトル演算部10は、1処理サイクルで8つのベクトル要素v0〜v7と、先頭要素アドレスと、要素間距離を出力して、ベクトル要素毎のリクエストを行う。
【0027】
主記憶部21は、同時並行処理が可能な複数のメモリ(例えば、メモリブロックMEM)を備える。このメモリブロックMEMは、接続ポート毎に設けられる。主記憶部21は、8個の接続ポートを有し、ベクトル演算部10で扱われるデータを格納し、メモリアクセスがなされる。
【0028】
キャッシュ部31は、接続ポート毎に設けられ、1つのキャッシュライン幅に少なくとも前記1アクセス単位以上のデータを格納する。このキャッシュ部31ではキャッシュ部の1キャッシュライン幅(図1に示す例ではキャッシュCHとして示した)内に不連続なワードに割り当てられた複数のデータが格納される。図1に示す例では、接続ポート数を8個としたため、主記憶部21がメモリブロックMEMを8個有し、キャッシュ部31もキャッシュCHを8個有する。そして、1つの接続ポートに対して1個のメモリブロックMEMとキャッシュCHが接続される。
【0029】
なお、主記憶部21内のメモリブロックMEMは、一度のアクセスで8ワード分のデータに対して処理を行い、8ワードの分のデータのうち所望のワードのデータの読み出し及び書き込みを行う。この一度のアクセスを8処理サイクルで行うとする。また、キャッシュ部31内のキャッシュCHもメモリブロックMEMと同様に一度のアクセスで8ワード分のデータに対して処理を行い、8ワードの分のデータのうち所望のワードのデータの読み出し及び書き込みを行う。この一度のアクセスを8処理サイクルで行うとする。つまり、キャッシュ部31の複数の接続ポートは、メモリアクセス制御部40から並列してアクセスされる。
【0030】
メモリアクセス制御部40は、ベクトル演算部10から処理サイクル毎に受信するアクセス要求に対応する複数のアクセスアドレスを複数の接続ポートに振り分けて、1アクセス単位にベクトル演算部10の異なる処理サイクルに属する不連続なワードを含むポート内アドレスを接続ポート毎に生成する。
【0031】
また、メモリアクセス制御部40は、アドレス生成部41、アドレスレジスタ42、ルーティングアドレス生成部43、競合調停部44、ポート内アドレス生成部45、クロスバ部46を有する。アドレス生成部41は、先頭要素アドレスと、要素間距離情報とに基づき8個のアクセスアドレスを生成する。そして、8個のアクセスアドレスは、アドレスレジスタ42の所定の領域に格納される。また、アドレスレジスタ42は、アクセスアドレスに加えて、ベクトル要素v0〜v7を格納する。ルーティングアドレス生成部43は、アクセスアドレスを割り当てる接続ポートを指定するルーティングアドレスを生成する。つまり、ルーティングアドレス生成部43は、アクセスアドレスに従って要素毎のリクエストを送出するポートを指定するルーティングアドレスを生成する。競合調停部44は、ルーティングアドレスに基づき複数のアクセスアドレスのそれぞれを割り当てる接続ポートの競合調停を行う。つまり、競合調停部44は、ルーティングアドレスに基づきポート毎に送出する要素毎のリクエストを決定する競合調停を行う。ポート内アドレス生成部45は、複数の処理サイクルで入力されるアクセスアドレスに基づきポート内アドレスを生成する。つまり、ポート内アドレス生成部45は、要素毎のアクセスアドレスに従って各ポート内のアドレスを指定するポート内アドレスを生成する。クロスバ部46は、ポート内アドレスを競合調停部44の競合調停処理に応じて複数の接続ポートのいずれか1つに割り当てる。つまり、クロスバ部46は、競合調停部44の競合調停に従って要素毎のリクエストを各接続ポートに出力する。
【0032】
続いて、実施の形態1にかかる情報処理装置1の動作について説明する。まず、情報処理装置1におけるアクセスアドレス、ルーティングアドレス、及びポート内アドレスの生成手順について説明する。情報処理装置1では、これらのアドレスはメモリアクセス制御部40において生成される。メモリアクセス制御部40のアドレス生成部41は、先頭要素アドレスと要素間距離とを加算するアダー部においてアクセスアドレスを生成する。つまり。アドレス生成部41では、先頭要素アドレスと要素間距離とを加算してアクセスアドレスを生成する。実施の形態1では、ベクトル要素v0、v1、v2、v3、v4、v5、v6、v7、先頭要素アドレス0B、要素間距離8Bのアクセス要求があった場合、アクセスアドレスとして0B、8B、16B、24B、32B、40B、48B、56Bが生成される。図2、3にアクセスアドレスのデータ構造を示す。なお、図2は、ルーティングアドレスの生成を説明するために用いる図であり、図3は、ポート内アドレスの生成を説明するために用いる図である。なお、図2、3に示すように、アクセスアドレスのうちa9〜a1以外の上位ビットにポート内アクセスラインアドレスが定義されている。
【0033】
続いて、図2を用いてルーティングアドレス生成部43の動作について説明する。ルーティングアドレス生成部43では、アクセスアドレスのa6、a5及びa4の3ビットに基づきルーティングアドレスを生成する。
【0034】
また、図3を用いてポート内アドレス生成部45の動作について説明する。ポート内アドレス生成部45は、ルーティングアドレス生成に用いられるa6〜a4を除く、ポート内アクセスラインアドレスと、a9〜a7およびa3〜a1と、によりポート内アドレスを生成する。なお、アクセスアドレスのa9〜a7及びa3〜a1の6ビットは、アクセス単位内のアドレスを示す。
【0035】
続いて、情報処理装置1の全体の動作について説明する。ベクトル演算部10において8Bデータの配列を先頭要素から順次処理していく場合には、要素間距離は8Bとなる。このケースでの動作を図4及び図5のタイミングチャートを用いて説明する。例として先頭要素アドレスは0Bとする。まず、実施の形態1にかかる情報処理装置1のベクトル演算部10が出力するアクセス要求のタイミングチャートを図4に示す。図4は、ベクトル演算部10の処理サイクル毎(タイミングT0〜T7の各タイミング)にベクトル演算部10がアクセス要求するワードを示している。また、図4は、ベクトル演算部10が演算器0〜演算器7を有する例である。図4に示すように、ベクトル演算部10は、1処理サイクルで連続した8つのワードをアクセス要求する。
【0036】
この図4に示されるアクセス要求に対して、メモリアクセス制御部40は、1つのアクセス単位に不連続なワードを割り当てたポート内アドレスを生成する。具体的には、図4のタイミングT0で、ベクトル演算部10がベクトル要素v0〜v7、先頭要素アドレス0B、要素間距離8Bを出力してアクセス要求を行った場合、アドレス生成部41は、ベクトル要素v0〜V7のそれぞれに対応するアクセスアドレスとして0B、8B、16B、24B、32B、40B、48B、56Bを生成する。当該アクセスアドレスは、アドレスレジスタ42に格納される。そして、ルーティングアドレス生成部43は、アドレスレジスタ42に格納された要素毎のアクセスアドレスに基づきルーティングアドレス0、1、2、3、4、5、6、7を生成する。このルーティングアドレスによると、タイミングT0におけるアクセス要求では接続ポートの競合は発生しないため、競合調停部44は、このルーティングアドレスに応じてクロスバ部46に接続ポートの割り当て指示を行う。
【0037】
そして、ポート内アドレス生成部45は、アドレスレジスタ45に格納された要素毎のアクセスアドレスに基づきポート内アドレスを生成する。クロスバ部46は、競合調停部44の調停結果に応じて、ベクトル要素v0〜v7に対応するポート内アドレスを接続ポート0〜接続ポート7に振り分ける。
【0038】
メモリアクセス制御部40は、処理サイクル毎に出力するアクセス要求に対してそれぞれ上記動作を行う。これにより、メモリアクセス制御部40が1つの接続ポートに対して時間的に連続して生成されるポート内アドレスは、不連続なワードについてのものとなる。つまり、接続ポート毎に定義されるアクセス単位は、不連続なワードを含むポート内アドレスにより構成される。そこで、情報処理装置の記憶部20側のタイミングチャートを図5に示す。図5に示すように、接続ポート0〜接続ポート7には、それぞれ不連続なワードが割り当てられる。また、1つのアクセス単位には、不連続なワードが割り当てられることがわかる。さらに、図5に示すように、実施の形態1にかかる情報処理装置1では、記憶部20へのアクセアスにおいて接続ポートが効率的に利用され、接続ポート毎のアクセス開始とアクセス終了にずれがなく、全データに対するアクセス時間が1アクセス単位で完了していることがわかる。
【0039】
このような、メモリアクセス制御部40によりアクセスされる記憶部20のアドレス領域の割り当てを図6に示す。図6に示すように、実施の形態1にかかる情報処理装置1の記憶部20では、1つの接続ポートに対応するアドレス領域に不連続なワードが格納される。言い換えると、隣り合う接続ポートに連続するワードが格納される。これは、メモリアクセス制御部40が1つの接続ポートの1アクセス単位に不連続なワードを割り当てているためである。また、図6に示すように、1つのキャッシュライン幅(例えば、図6の接続ポートのアドレス領域の1行)には不連続なワードが割り当てられる。
【0040】
上記説明より、実施の形態1にかかる情報処理装置1では、メモリアクセス制御部40が複数のワードのアクセスを1アクセス単位としたときに、当該1アクセス単位に不連続なワードを割り当てたポート内アドレスを生成する。また、メモリアクセス制御部40は、1処理サイクルのアクセス要求に対応して生成される複数のアクセスアドレスをそれぞれ別の接続ポートに振り分ける。
【0041】
これにより、実施の形態1にかかる情報処理装置1では、いずれの動作サイクルにおいても接続ポートの利用状況に空きが生じることを防止して、接続ポートの利用効率を向上させる。また、実施の形態1にかかる情報処理装置1では、接続ポートの利用効率を向上させることでベクトル演算部10と記憶部20とのアクセス時間を短縮する。例えば、図5に示した実施の形態1にかかる情報処理装置1のアクセス時間と、当該図5に示すものと同じアクセス要求に対応する図15の従来例のアクセス時間と、を比べると実施の形態1にかかる情報処理装置1は従来例の半分のアクセス時間でアクセスが完了している。
【0042】
実施の形態2
実施の形態2にかかる情報処理装置2のブロック図を図7に示す。図7に示すように、情報処理装置2では、情報記憶装置1のキャッシュ部31が除かれ、記憶部20が主記憶部21のみで構成される。つまり、情報処理装置2では、メモリアクセス制御部40は、主記憶部21に直接アクセスする。
【0043】
このような場合、1アクセス単位でアクセスがなされる主記憶部21のアクセスデータ幅内に不連続なワードを割り当てる。これにより、情報処理装置2のメモリアクセス制御部40は、情報処理装置1のメモリアクセス制御部40と同じ処理手順で動作できる。つまり、情報処理装置2は、情報処理装置1と同様にアクセアス時間を短縮することが可能である。
【0044】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0045】
1、2 情報処理装置
10 ベクトル演算部
20 記憶部
21 主記憶部
31 キャッシュ部
40 メモリアクセス制御部
41 アドレス生成部
42 アドレスキャッシュ部
43 ルーティングアドレス生成部
44 競合調停部
45 ポート内アドレス生成部
46 クロスバ部
【特許請求の範囲】
【請求項1】
アクセス要求を出力する演算部と、
複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と、
前記演算部から処理サイクル毎に受信する前記アクセス要求に対応する複数のアクセスアドレスを前記複数の接続ポートに振り分けて、1アクセス単位に不連続なワードを含むポート内アドレスを前記接続ポート毎に生成するメモリアクセス制御部と、
を有する情報処理装置。
【請求項2】
前記メモリアクセス制御部は、
前記アクセスアドレスを割り当てる接続ポートを指定するルーティングアドレスを生成するルーティングアドレス生成部と、
前記ルーティングアドレスに基づき前記複数のアクセスアドレスのそれぞれを割り当てる接続ポートの競合調停を行う競合調停部と、
複数の処理サイクルで入力される前記アクセスアドレスに基づき前記ポート内アドレスを生成するポート内アドレス生成部と、
前記ポート内アドレスを前記競合調停部の競合調停処理に応じて前記複数の接続ポートのいずれか1つに割り当てるクロスバ部と、
を有する請求項1に記載の情報処理装置。
【請求項3】
前記メモリアクセス制御部は、前記アクセス要求に基づき前記複数のアクセスアドレスを生成するアドレス生成部を有する請求項1又は2に記載の情報処理装置。
【請求項4】
前記演算部は、前記アクセス要求としてベクトル要素と、先頭要素アドレスと、要素間距離情報と、を出力するベクトル演算部であり、
前記アドレス生成部は、前記先頭要素アドレスと前記要素間距離情報とに基づき前記複数のアクセスアドレスを生成する請求項3に記載の情報処理装置。
【請求項5】
前記記憶部の前記複数の接続ポートは、前記メモリアクセス制御部から並列してアクセスされる請求項1乃至4のいずれか1項に記載の情報処理装置。
【請求項6】
前記記憶部は、前記接続ポート毎に設けられ、1つのキャッシュライン幅に少なくとも前記1アクセス単位以上のデータを格納するキャッシュ部を有し、
前記キャッシュ部の1キャッシュライン幅内に前記不連続なワードに割り当てられた複数のデータが格納される請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
アクセス要求を出力する演算部と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と、の間において前記アクセス要求に基づき前記記憶部の前記接続ポート毎にポート内アドレスを生成するメモリアクセス制御装置であって、
前記アクセス要求に対応した複数のアクセスアドレスのそれぞれを割り当てる接続ポートを指定するルーティングアドレスを生成するルーティングアドレス生成部と、
前記ルーティングアドレスに基づき前記アクセスアドレスを割り当てる接続ポートの競合調停を行う競合調停部と、
複数の処理サイクルで入力される前記アクセスアドレスに基づき前記ポート内アドレスを生成するポート内アドレス生成部と、
前記ポート内アドレスを前記競合調停部の競合調停処理に応じて前記複数の接続ポートのいずれか1つに割り当てるクロスバ部と、
を有するメモリアクセス制御装置。
【請求項8】
前記アクセス要求に基づき前記複数のアクセスアドレスを生成するアドレス生成部をさらに有する請求項7に記載のメモリアクセス制御装置。
【請求項9】
アクセス要求を出力する演算部と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と、を有する情報処理装置におけるアドレス生成方法であって、
前記演算部の処理サイクル毎に前記アクセス要求に対応した前記複数のアクセスアドレスを生成し、
前記複数のアクセスアドレスを前記複数の接続ポートに振り分けて、1アクセス単位に前記演算部の異なる処理サイクルに属する不連続なワードを含むポート内アドレスを前記接続ポート毎に生成するアドレス生成方法。
【請求項10】
前記記憶部は、前記接続ポート毎に設けられ、1つのキャッシュライン幅に少なくとも前記1アクセス単位以上のデータを格納するキャッシュ部を有し、
前記キャッシュ部の1キャッシュライン幅内に前記不連続なワードに割り当てられた前記複数のデータを格納する請求項9に記載のアドレス生成方法。
【請求項1】
アクセス要求を出力する演算部と、
複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と、
前記演算部から処理サイクル毎に受信する前記アクセス要求に対応する複数のアクセスアドレスを前記複数の接続ポートに振り分けて、1アクセス単位に不連続なワードを含むポート内アドレスを前記接続ポート毎に生成するメモリアクセス制御部と、
を有する情報処理装置。
【請求項2】
前記メモリアクセス制御部は、
前記アクセスアドレスを割り当てる接続ポートを指定するルーティングアドレスを生成するルーティングアドレス生成部と、
前記ルーティングアドレスに基づき前記複数のアクセスアドレスのそれぞれを割り当てる接続ポートの競合調停を行う競合調停部と、
複数の処理サイクルで入力される前記アクセスアドレスに基づき前記ポート内アドレスを生成するポート内アドレス生成部と、
前記ポート内アドレスを前記競合調停部の競合調停処理に応じて前記複数の接続ポートのいずれか1つに割り当てるクロスバ部と、
を有する請求項1に記載の情報処理装置。
【請求項3】
前記メモリアクセス制御部は、前記アクセス要求に基づき前記複数のアクセスアドレスを生成するアドレス生成部を有する請求項1又は2に記載の情報処理装置。
【請求項4】
前記演算部は、前記アクセス要求としてベクトル要素と、先頭要素アドレスと、要素間距離情報と、を出力するベクトル演算部であり、
前記アドレス生成部は、前記先頭要素アドレスと前記要素間距離情報とに基づき前記複数のアクセスアドレスを生成する請求項3に記載の情報処理装置。
【請求項5】
前記記憶部の前記複数の接続ポートは、前記メモリアクセス制御部から並列してアクセスされる請求項1乃至4のいずれか1項に記載の情報処理装置。
【請求項6】
前記記憶部は、前記接続ポート毎に設けられ、1つのキャッシュライン幅に少なくとも前記1アクセス単位以上のデータを格納するキャッシュ部を有し、
前記キャッシュ部の1キャッシュライン幅内に前記不連続なワードに割り当てられた複数のデータが格納される請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
アクセス要求を出力する演算部と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と、の間において前記アクセス要求に基づき前記記憶部の前記接続ポート毎にポート内アドレスを生成するメモリアクセス制御装置であって、
前記アクセス要求に対応した複数のアクセスアドレスのそれぞれを割り当てる接続ポートを指定するルーティングアドレスを生成するルーティングアドレス生成部と、
前記ルーティングアドレスに基づき前記アクセスアドレスを割り当てる接続ポートの競合調停を行う競合調停部と、
複数の処理サイクルで入力される前記アクセスアドレスに基づき前記ポート内アドレスを生成するポート内アドレス生成部と、
前記ポート内アドレスを前記競合調停部の競合調停処理に応じて前記複数の接続ポートのいずれか1つに割り当てるクロスバ部と、
を有するメモリアクセス制御装置。
【請求項8】
前記アクセス要求に基づき前記複数のアクセスアドレスを生成するアドレス生成部をさらに有する請求項7に記載のメモリアクセス制御装置。
【請求項9】
アクセス要求を出力する演算部と、複数の接続ポートと、同時並行処理が可能な複数のメモリとを備え、前記接続ポートに対するアクセス単位が複数ワード長の記憶部と、を有する情報処理装置におけるアドレス生成方法であって、
前記演算部の処理サイクル毎に前記アクセス要求に対応した前記複数のアクセスアドレスを生成し、
前記複数のアクセスアドレスを前記複数の接続ポートに振り分けて、1アクセス単位に前記演算部の異なる処理サイクルに属する不連続なワードを含むポート内アドレスを前記接続ポート毎に生成するアドレス生成方法。
【請求項10】
前記記憶部は、前記接続ポート毎に設けられ、1つのキャッシュライン幅に少なくとも前記1アクセス単位以上のデータを格納するキャッシュ部を有し、
前記キャッシュ部の1キャッシュライン幅内に前記不連続なワードに割り当てられた前記複数のデータを格納する請求項9に記載のアドレス生成方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2012−185553(P2012−185553A)
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【出願番号】特願2011−46596(P2011−46596)
【出願日】平成23年3月3日(2011.3.3)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
【公開日】平成24年9月27日(2012.9.27)
【国際特許分類】
【出願日】平成23年3月3日(2011.3.3)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
[ Back to top ]