(57)【特許請求の範囲】
【請求項１】
２ｋ乗飛びベクトルメモリアクセス命令を含むメモリアクセス命令を行う複数個のプロセッサと、
前記プロセッサからの命令によりメモリアクセスを行うａｍ−１個（ａ＞１、ｍ＞０）のクロスバと、
前記クロスバのそれぞれにａ個対応する合計ａｍ個のメモリと、
を備え、
各前記プロセッサは、前記クロスバのそれぞれとａ本づつ第１のパスで接続され、
各前記クロスバは、対応するａ個の前記メモリとそれぞれａ本づつ第２のパスで接続され、
各前記メモリは、ｂ個（ｂ＞１）の段数に分けられ、
第１番目の前記メモリから第ａｍ番目の前記メモリまで等価の段数で連続した異なる数字で表されたアドレスが付与され、
各前記メモリにおける所定の段数のアドレスに係る数字は、１段上の段数のアドレスに係る数字にａｍを加算した数字であることを特徴とするメモリアクセス装置。
【請求項２】
前記ａは、２であり、
各前記プロセッサは、少なくとも連続ベクトルアクセス又は２飛びベクトルアクセスの際、同時に最大ａｍ要素のメモリアクセス命令を行い、
１個の前記クロスバと２個の前記メモリとを１つのメモリユニットごとにまとめたことを特徴とする請求項１記載のメモリアクセス装置。
【請求項３】
前記クロスバの配下にある前記メモリにおけるアドレスに係る数字は、等価の段数で連続した異なる数字であることを特徴とする請求項１又は２記載のメモリアクセス装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプロセッサと複数のメモリとを備えるメモリアクセス装置に関し、特に、ベクトルデータのメモリアクセスを高速に行うために用いられるメモリアクセス装置に関する。
【０００２】
【従来の技術】
ベクトルデータのメモリアクセスを高速に行うために用いられるメモリアクセス装置は、一般的にメモリをインタリーブして使用する方式を採用して、連続ベクトルメモリアクセスや奇数飛びベクトルメモリアクセスを高速に行えるようにしている。
【０００３】
【発明が解決しようとする課題】
しかし、この方式の欠点は、２ｋ乗飛びアクセスを行う場合に、特定のメモリパスにアクセスが集中してメモリパス同士がぶつかってしまうために、最高速でアクセスできない点である。
【０００４】
特に、複素数データを扱う場合には、一般的に、実部と虚部を連続して扱うことから、実部だけや虚部だけを扱う２飛びのアクセスが頻繁に行われるが、このときのメモリアクセス性能に影響している。
【０００５】
本発明の第１の目的は、使用される可能性の高い２飛びのベクトルアクセスを連続ベクトルメモリアクセスや奇数飛びベクトルメモリアクセスと同様な最高速アクセスを可能にするメモリアクセス装置を提供することである。
【０００６】
本発明の第２の目的は、２ｋ乗飛びアクセス全般について２倍の性能でのアクセスを可能にするメモリアクセス装置を提供することである。
【０００７】
【課題を解決するための手段】
本発明の第１の視点においては、メモリアクセス装置において、２ｋ乗飛びベクトルメモリアクセス命令を含むメモリアクセス命令を行う複数個のプロセッサと、前記プロセッサからの命令によりメモリアクセスを行うａｍ−１個（ａ＞１、ｍ＞０）のクロスバと、前記クロスバのそれぞれにａ個対応する合計ａｍ個のメモリと、を備え、各前記プロセッサは、前記クロスバのそれぞれとａ本づつ第１のパスで接続され、各前記クロスバは、対応するａ個の前記メモリとそれぞれａ本づつ第２のパスで接続され、各前記メモリは、ｂ個（ｂ＞１）の段数に分けられ、第１番目の前記メモリから第ａｍ番目の前記メモリまで等価の段数で連続した異なる数字で表されたアドレスが付与され、各前記メモリにおける所定の段数のアドレスに係る数字は、１段上の段数のアドレスに係る数字にａｍを加算した数字であることを特徴とする。
【０００８】
本発明の第２の視点においては、前記メモリアクセス装置において、前記ａは、２であり、各前記プロセッサは、少なくとも連続ベクトルアクセス又は２飛びベクトルアクセスの際、同時に最大ａｍ要素のメモリアクセス命令を行い、１個の前記クロスバと２個の前記メモリとを１つのメモリユニットごとにまとめたことを特徴とする。
【０００９】
本発明の第３の視点においては、前記メモリアクセス装置において、前記クロスバの配下にある前記メモリにおけるアドレスに係る数字は、等価の段数で連続した異なる数字であることを特徴とする。
【００１０】
【００１１】
【発明の実施の形態】
メモリアクセス装置において、２ｋ乗飛びベクトルメモリアクセス命令を含むメモリアクセス命令を行う複数個のプロセッサと、前記プロセッサからの命令によりメモリアクセスを行うａｍ−１個（ａ＞１、ｍ＞０）のクロスバと、前記クロスバのそれぞれにａ個対応する合計ａｍ個のメモリと、を備え、各前記プロセッサは、前記クロスバのそれぞれとａ本づつ第１のパスで接続され、各前記クロスバは、対応するａ個の前記メモリとそれぞれａ本づつ第２のパスで接続され、各前記メモリは、ｂ個（ｂ＞１）の段数に分けられ、第１番目の前記メモリから第ａｍ番目の前記メモリまで等価の段数で連続した異なる数字で表されたアドレスが付与され、各前記メモリにおける所定の段数のアドレスに係る数字は、１段上の段数のアドレスに係る数字にａｍを加算した数字であることによって、２飛びアクセス時にも複数のパスを同時に使用して、一のメモリに対して同時にメモリアクセスすることが可能になる。つまり、２飛びアクセス時にも、パス内で信号のぶつかりが発生しないので、連続アクセスと同様な最高速アクセスを実行できる。
【００１２】
また、２ｋ乗飛びアクセスを行う場合、従来は特定のメモリパスにアクセスが集中するため性能がダウンしていたが、本発明の実施の形態では、複数のパスが同一のプロセッサとクロスバとの間を接続しているため、複数のパスを使って、従来に比べて２倍以上のメモリアクセス性能を出せる。
【００１３】
【実施例】
本発明の実施例を図面を用いて説明する。図１は、本発明の一実施例に係るメモリアクセス装置の構成を模式的に示したブロック図である。
【００１４】
このメモリアクセス装置は、ベクトルアクセスを行うために、ｎ個（ｎ＞１）のプロセッサ１００、１１０、……、１２０と、２ｍ−１個のメモリユニット２００、２１０、……、２２０と、から構成されている。
【００１５】
各プロセッサと各メモリユニットとの間はそれぞれ２本づつのパスで接続されている。つまり、１個のプロセッサ当たり、２ｍ−１個のメモリユニットとそれぞれ２本づつのパスで接続されることから、計２＊２ｍ−１本（すなわち２ｍ本）のパスを有することになる。よって、装置全体としてはｎ＊２ｍ本のパスを有することになる。
【００１６】
各メモリユニットは、それぞれ２個のメモリと、１個のクロスバと、を備えており、プロセッサとメモリユニットとの間のパスはクロスバと接続する。クロスバ３００はメモリ４００及びメモリ５００とそれぞれ２本づつのパスで接続されており、以下同様に、クロスバ３１０はメモリ４１０及びメモリ５１０とそれぞれ２本づつのパスで接続されており、クロスバ３２０はメモリ４２０及びメモリ５２０とそれぞれ２本づつのパスで接続されている。
【００１７】
また、各メモリユニット２００、２１０、……、２２０における各メモリ４００、５００、４１０、５１０、……、４２０、５２０には、それぞれ０、１、２、３、……、２m−２、２m−１とアドレス付けされており、２mでインターリーブして使用しているので、ｋ＊２m＋ｊへアクセスする場合は、メモリアドレスｊのメモリへアクセスすることになる。なお、ｋは任意の自然数である。
【００１８】
各プロセッサから発信されたメモリアクセス信号（データ）は、パスを介して対応するメモリユニットに供給される。各メモリユニットは各プロセッサからのメモリアクセス信号を受け取り、当該メモリアクセス信号はクロスバを経由して、ここでルーティングされた後に、パスを介して対応するメモリに到達する。
【００１９】
次に、本発明の実施例の動作について図面を用いて説明する。
【００２０】
まず、連続ベクトルアクセスの動作について説明する。図２は、本発明の一実施例に係るメモリアクセス装置におけるプロセッサの連続ベクトルアクセス動作の出力タイミングを説明するための模式図である。
【００２１】
プロセッサ１００で、０から１６＊２ｍ−１までの１６＊２ｍ要素の連続ベクトルアクセス動作する場合は、まず、プロセッサ１００は、０、１、２、……、２ｍ−１の２ｍ要素のアクセスを行う。この場合、各要素は、プロセッサ１００の出力パス１０１、１０２、１０３、１０４、……、１０５、１０６にそれぞれメモリアドレス０、１、２、３、……、２ｍ−２、２ｍ−１が割り当てられているため、パス内で信号のぶつかりはなく、図１のように、すべてのパスにメモリアクセス信号が出力される。
【００２２】
メモリユニット２００で受け取られた０、１に対するメモリアクセス信号は、クロスバ３００を経由して、０に対するメモリアクセス信号はメモリ４００に到達し、一方、１に対するメモリアクセス信号はメモリ５００に到達する。
【００２３】
他のメモリユニットにおいても同様に、メモリユニット２１０で受け取られた２、３に対するメモリアクセス信号は、クロスバ３１０を経由して、２、３に対応するメモリ４１０、５１０に到達し、また、メモリユニット２２０で受け取られた２ｍ−２、２ｍ−１に対するメモリアクセス信号は、クロスバ３２０を経由して、２ｍ−２、２ｍ−１に対応するメモリ４２０、５２０に到達する。このようにして各メモリへのアクセスが行なわれる。
【００２４】
インターリーブしたときは、メモリユニット２００で受け取られた２ｍ＋０、２ｍ＋１に対するメモリアクセス信号は、クロスバ３００を経由して、２ｍ＋０、２ｍ＋１に対応するメモリ４００、５００に到達し、以下同様に、メモリユニット２１０で受け取られた２ｍ＋２、２ｍ＋３に対するメモリアクセス信号は、クロスバ３１０を経由して、２ｍ＋２、２ｍ＋３に対応するメモリ４１０、５１０に到達し、また、メモリユニット２２０で受け取られた２ｍ＋２ｍ−２、２ｍ＋２ｍ−１に対するメモリアクセス信号は、クロスバ３２０を経由して、２ｍ＋２ｍ−２、２ｍ＋２ｍ−１に対応するメモリ４２０、５２０に到達する。このようにして、インターリーブした後の１のタイミングで２ｍ要素のアクセスを行う。このようにインターリーブするごとに、毎回すべてのパスを使用して、最高速である２ｍ要素のアクセスを行うことができる。
【００２５】
次に、２飛びベクトルアクセス動作について説明する。図３は、本発明の一実施例に係るメモリアクセス装置におけるプロセッサの２飛びベクトルアクセス動作の出力タイミングを説明するための模式図である。
【００２６】
０から３１＊２ｍ＋２ｍ−２までの１６＊２ｍ要素の２飛びベクトルアクセス動作する場合は、プロセッサは、まず、メモリアドレス０、２、……、２ｍ−２、２ｍ＋０、２ｍ＋２、……、２ｍ＋２ｍ−２の２ｍ要素のアクセスを行う。この場合、各要素は、プロセッサ１００のパス１０１、１０２、１０３、１０４、……、１０５、１０６にそれぞれメモリアドレス０、２ｍ＋０、２、２ｍ＋２、……、２ｍ−２、２ｍ＋２ｍ−２が割り当てられるため、パス内でメモリアクセス信号のぶつかりはなく、図１のように、すべてのパスから信号が出力される。
【００２７】
メモリユニット２００で受け取った０、２ｍ対するメモリアクセス信号は、クロスバ３００を経由して、０、２ｍに対応するメモリ４００に到達する。このとき、各クロスバとこれに対応する各メモリとの間にも２本づつのパスが張られているので、１つのメモリに対して同時に２つアクセスできる。
【００２８】
他のメモリユニットにおいても同様に、メモリユニット２１０で受け取った２、２ｍ＋２に対するメモリアクセス信号は、クロスバ３１０を経由して、２、２ｍ＋２に対応するメモリ４１０に到達し、また、メモリユニット２２０で受け取った２ｍ−２、２ｍ＋２ｍ−２に対するメモリアクセス信号は、クロスバ３２０を経由して、２ｍ−２、２ｍ＋２ｍ−２に対応するメモリ４２０に到達する。
【００２９】
インターリーブしたときも同様に、メモリアドレス２＊２ｍ＋０、２＊２ｍ＋２、……、２＊２ｍ＋２ｍ−２、３＊２ｍ＋０、３＊２ｍ＋２、……、３＊２ｍ＋２ｍ−２の２ｍ要素のメモリアクセス信号は対応するメモリユニットで受け取られ、クロスバを経由して、各メモリアドレスに対応するメモリに到達する。このように、インターリーブするごとに毎回すべてのパスを使用して、最高速である２ｍ要素のアクセスを行うことができる。
【００３０】
さらには、本実施例では、２ｋ飛びベクトルアクセス動作の場合も、従来の２倍のメモリアクセス性能を出すことができる。
【００３１】
【発明の効果】
本発明によれば、各プロセッサと各メモリユニットとの間を複数のパスで接続し、複数のメモリを１つのメモリユニットとして、このメモリに２ｍ−２、２ｍ−１というような連続したアドレスを与えているので、２飛びベクトルアクセス動作の場合も、各プロセッサとメモリユニット間のパスで競合を起こすことなく、最高速でメモリにアクセスすることができ、メモリに蓄えられた情報を素早く引き出すことが可能となる。
【００３２】
また、２飛びベクトルアクセス動作の場合も、連続ベクトルアクセスと同様に最高性能でメモリアクセスすることができる。
【００３３】
さらに、２飛びアクセス動作の場合も、パス内での信号のぶつかりが発生しないので、連続アクセスと同様に最高速アクセスを実行できる。
【００３４】
加えて、２ｋ乗飛びアクセスを行う場合、従来は特定のメモリパスにアクセスが集中するため性能がダウンしていたが、本発明では、複数本のパスが同一のメモリユニットと接続しているため、複数本のパスを使って、従来に比べて２倍以上のメモリアクセス性能を出せるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の一実施例に係るメモリアクセス装置の構成を模式的に示したブロック図である。
【図２】本発明の一実施例に係るメモリアクセス装置におけるプロセッサの連続ベクトルアクセス動作の出力タイミングを説明するための模式図である。
【図３】本発明の一実施例に係るメモリアクセス装置におけるプロセッサの２飛びベクトルアクセス動作の出力タイミングを説明するための模式図である。
【符号の説明】
１００、１１０、１２０  プロセッサ
２００、２１０、２２０  メモリユニット
３００、３１０、３２０  クロスバ
４００、４１０、４２０、５００、５１０、５２０  メモリ
【図１】
0003603751.tif 000002
【図２】
0003603751.tif 000003
【図３】
0003603751.tif 000004