(57)【要約】【課題】メモリに高速にアクセスすることのできるベクトルプロセッサ装置を提供する。【解決手段】ベクトルプロセッサ装置は、ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレスおよびサイズを生成する生成部、を備える。【選択図】図９
2020173609.tif 000002
【特許請求の範囲】
【請求項１】
ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレスおよびサイズを生成する生成部、
を備えるベクトルプロセッサ装置。
【請求項２】
前記生成部は、
チャネル番号Ｎが（開始アドレスｍｏｄチャネル数）以上の場合、前記アドレスを、
（開始アドレス−（開始アドレスｍｏｄチャネル数）＋Ｎ）／チャネル数
と生成し、
前記チャネル番号Ｎが（開始アドレスｍｏｄチャネル数）よりも小さい場合、前記アドレスを、
（開始アドレス−（開始アドレスｍｏｄチャネル数）＋Ｎ＋チャネル数）／チャネル数  の小数点以下を切り捨てたものと生成する、
請求項１に記載のベクトルプロセッサ装置。
【請求項３】
前記生成部は、
前記チャネル番号Ｎに対する前記サイズを、
（ベクトル長−アドレス＋開始アドレス＋１）／チャネル数
の小数点以下を切り捨てたものと生成する、
請求項２に記載のベクトルプロセッサ装置。
【請求項４】
前記生成部は、
前記チャネル番号Ｎに対する前記サイズを、
（ベクトル長−アドレス＋開始アドレス＋１）／チャネル数×ストライド数
の小数点以下を切り捨てたものと生成する、
請求項２に記載のベクトルプロセッサ装置。
【請求項５】
前記ベクトルロードストア命令がストライド付きのベクトルロードストア命令である場合、
前記生成部は、
前記開始アドレス、前記ベクトル長、前記チャネル数に加えてさらにストライド数に基づいて、前記サイズを生成する、
請求項１から請求項４の何れか一項に記載のベクトルプロセッサ装置。
【請求項６】
前記アドレスおよび前記サイズに対応するデータをプリフェッチするためのキャッシュ、
を備える請求項１から請求項５の何れか一項に記載のベクトルプロセッサ装置。
【請求項７】
ラインを分割させて前記アドレスおよび前記サイズに対応するデータを通信するベクトルレジスタ、
を備える請求項１から請求項６の何れか一項に記載のベクトルプロセッサ装置。
【請求項８】
ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレスおよびサイズを生成すること、
を含む生成方法。
【請求項９】
コンピュータに、
ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレスおよびサイズを生成すること、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトルプロセッサ装置、生成方法及びプログラムに関する。
【背景技術】
【０００２】
スカラー演算を行うＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）よりも高速にベクトル演算を行う目的で、ベクトルプロセッサ装置が、例えば、ＡＩ（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ）の分野で使用されている。
特許文献１には、関連する技術として、ロードバッファを備え、ベクトル演算装置におけるベクトルロード命令の実行時間を短縮する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−０８１２５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ベクトルプロセッサ装置が高速に演算を行うには、メモリ帯域が重要となる。
そのため、ベクトルプロセッサ装置において、メモリに高速にアクセスすることのできる技術が求められている。
【０００５】
本発明の各態様は、上記の課題を解決することのできるベクトルプロセッサ装置、生成方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の一態様によれば、ベクトルプロセッサ装置は、ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレスおよびサイズを生成する生成部、を備える。
【０００７】
上記目的を達成するために、本発明の別の態様によれば、生成方法は、ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレスおよびサイズを生成すること、を含む。
【０００８】
上記目的を達成するために、本発明の別の態様によれば、プログラムは、コンピュータに、ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレスおよびサイズを生成すること、を実行させる。
【発明の効果】
【０００９】
本発明の各態様によれば、ベクトルプロセッサ装置において、メモリに高速にアクセスすることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１実施形態によるベクトルプロセッサ装置の構成の一例を示す図である。
【図２】本発明の第１実施形態によるベクトルロードストア制御手段の一例を示す図である。
【図３】本発明の第１実施形態によるベクトルプロセッサ装置の処理フローを示す第１の図である。
【図４】本発明の第１実施形態によるベクトルプロセッサ装置の処理フローを示す第２の図である。
【図５】本発明の第２実施形態によるベクトルロードストア制御手段の一例を示す図である。
【図６】本発明の第２実施形態によるベクトルプロセッサ装置の処理フローを示す図である。
【図７】本発明の別の実施形態によるメモリ制御手段の一例を示す図である。
【図８】本発明の別の実施形態によるベクトルプロセッサ装置の構成の一例を示す図である。
【図９】本発明の実施形態による最小構成のベクトルプロセッサ装置を示す図である。
【図１０】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら実施形態について詳しく説明する。
＜第１実施形態＞
図１は、本発明の第１実施形態によるベクトルプロセッサ装置１の構成を示す図である。ベクトルプロセッサ装置１は、ベクトルロードストア制御手段１００（生成部の一例）、ベクトルレジスタ２００、メモリネットワーク３００、メモリ制御手段４００、複数のメモリ５００を備える。
ベクトルプロセッサ装置１は、プリフェッチ機能を備えた複数のメモリ５００に接続された装置であり、ベクトルロードストア制御手段１００を用いて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとしたアドレス単位のインタリーブにすることにより、メモリ帯域を向上させる装置である。
【００１２】
ベクトルレジスタ２００は、ベクトルロードストア制御手段１００に接続される。ベクトルロードストア制御手段１００は、メモリネットワーク３００を経由して、複数のメモリ制御手段４００に接続される。メモリ制御手段４００は、複数のメモリ５００にチャネル６００で接続される。
【００１３】
ベクトルレジスタ２００は、複数のベクトル要素２１０を備える。
メモリ５００は、プリフェッチ機能を備え、プリフェッチ単位にアクセスが可能である。図１に示す例では、メモリ５００は、００アドレスおよび０４アドレスに一度にアクセスが可能である。
ベクトルレジスタ２００、メモリネットワーク３００、メモリ制御手段４００、および、メモリ５００は、非特許文献：ジョン・Ｌ・ヘネシー、デイビッド・Ａ・パターソン［著］、中條拓伯、天野英晴、鈴木貢［監訳］、吉瀬謙二、佐藤寿倫［翻訳］、「ヘネシー＆パターソン  コンピュータアーキテクチャ  定量的アプローチ  第５版」、（日本）、株式会社翔泳社、２０１４年０３月１７日、２５３ページ、第４章  ベクタ、ＳＩＭＤ、ＧＰＵにおけるデータレベル並列性、などに記載されているように、当業者にとって既知技術である。ベクトルレジスタ２００、メモリネットワーク３００、メモリ制御手段４００、および、メモリ５００は、例えば、ＤＤＲ  ＳＤＲＡＭ（Double Data Rate Synchronous Dynamic Random Access Memory）である。
【００１４】
図２は、ベクトルロードストア制御手段１００の構成を示す図である。ベクトルロードストア制御手段１００は、ベクトルロードまたはベクトルストア命令に応じて、メモリアクセスを行う手段である。ベクトルロードストア制御手段１００は、アドレスサイズ生成手段１１０を備える。
アドレスサイズ生成手段１１０は、ベクトルロードストア命令の開始アドレス１２０、ベクトル長１３０、およびチャネル数１４０を入力する。
アドレスサイズ生成手段１１０は、入力した開始アドレス１２０、ベクトル長１３０、およびチャネル数１４０から、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレス１５０およびサイズ１６０を生成する。
アドレスサイズ生成手段１１０は、生成したアドレス１５０およびサイズ１６０を出力する。
アドレスサイズ生成手段１１０は、アドレスサイズ生成手段１１０を除いて、当業者にとって既知技術を用いて所望の処理を行う。
【００１５】
次に、ベクトルプロセッサ装置１の動作について、図３、図４に示すベクトルプロセッサ装置１の処理フローについて説明する。
まず、図３に示すベクトルロード命令に対してベクトルプロセッサ装置１が行う処理について説明する。
【００１６】
ベクトルロードは、例えば「ＶＬＤ  ベクトルレジスタ番号、開始アドレス、ベクトル長」といった形式で記載されたコードによって指定される。
【００１７】
ベクトルレジスタ番号で指定されるベクトルレジスタ２００は、メモリ５００の開始アドレスからベクトル長のデータを読み出す（ステップＳ１）。そのベクトルレジスタ２００は、メモリ５００の開始アドレスから読み出したベクトル長のデータを格納する（ステップＳ２）。
【００１８】
アドレスサイズ生成手段１１０は、ベクトルロード命令により、開始アドレス１２０、ベクトル長１３０、およびチャネル数１４０を入力する（ステップＳ３）。アドレスサイズ生成手段１１０は、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレス１５０およびサイズ１６０を生成する（ステップＳ４）。
【００１９】
チャネル番号Ｎに対するアドレス１５０は、Ｎ≧（開始アドレスｍｏｄチャネル数）の場合、
アドレス＝（開始アドレス−（開始アドレスｍｏｄチャネル数）＋Ｎ）／チャネル数
である。
また、チャネル番号Ｎに対するアドレス１５０は、Ｎ＜（開始アドレスｍｏｄチャネル数）の場合、
アドレス＝（開始アドレス−（開始アドレスｍｏｄチャネル数）＋Ｎ＋チャネル数）／チャネル数
の小数点以下を切り捨てたものである。
【００２０】
また、チャネル番号Ｎに対するサイズ１６０は、
サイズ＝（ベクトル長−アドレス＋開始アドレス＋１）／チャネル数
の小数点以下を切り捨てたものである。
【００２１】
ベクトルロードストア制御手段１００は、チャネル毎にメモリロードアクセスを生成する（ステップＳ５）。ベクトルロードストア制御手段１００は、チャネル毎に生成したメモリロードアクセスを、メモリネットワーク３００を経由して、メモリ制御手段４００に送信する（ステップＳ６）。
メモリ制御手段４００は、アドレスおよびサイズにより、メモリ５００からプリフェッチ単位でデータを読み出す（ステップＳ７）。メモリ制御手段４００は、読み出したデータを、メモリネットワーク３００を経由して、ベクトルロードストア制御手段１００へ送信する（ステップＳ８）。
ベクトルロードストア制御手段１００は、ベクトルロード命令のベクトルレジスタ番号で指定されるベクトル要素２１０に対して、データを書き込む（ステップＳ９）。
【００２２】
次に、図４に示すベクトルストア命令に対してベクトルプロセッサ装置１が行う処理について説明する。
【００２３】
ベクトルストアは、例えば「ＶＳＴ  ベクトルレジスタ番号、開始アドレス、ベクトル長」といった形式で記載されたコードによって指定される。
【００２４】
メモリ５００は、ベクトルレジスタ番号で指定されるベクトルレジスタ２００から読み出したベクトル長のデータを、開始アドレスへ格納する（ステップＳ１１）。
【００２５】
ベクトルロードストア制御手段１００は、ベクトルストア命令のベクトルレジスタ番号で指定されるベクトル要素２１０から、ベクトル長分のデータを読み出す（ステップＳ１２）。アドレスサイズ生成手段１１０は、開始アドレス１２０、ベクトル長１３０、およびチャネル数１４０を入力する（ステップＳ１３）。アドレスサイズ生成手段１１０は、入力した開始アドレス１２０、ベクトル長１３０、およびチャネル数１４０から、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレス１５０およびサイズ１６０を生成する（ステップＳ１４）。
【００２６】
チャネル番号Ｎに対するアドレス１５０は、Ｎ≧（開始アドレスｍｏｄチャネル数）の場合、
アドレス＝（開始アドレス−（開始アドレスｍｏｄチャネル数）＋Ｎ）／チャネル数
である。
また、チャネル番号Ｎに対するアドレス１５０は、Ｎ＜（開始アドレスｍｏｄチャネル数）の場合、
アドレス＝（開始アドレス−（開始アドレスｍｏｄチャネル数）＋Ｎ＋チャネル数）／チャネル数
の小数点以下を切り捨てたものである。
【００２７】
また、チャネル番号Ｎに対するサイズ１６０は、
サイズ＝（ベクトル長−アドレス＋開始アドレス＋１）／チャネル数
の小数点以下を切り捨てたものである。
【００２８】
ベクトルロードストア制御手段１００は、チャネル毎にメモリストアアクセスを生成する（ステップＳ１５）。ベクトルロードストア制御手段１００は、チャネル毎に生成したメモリストアアクセスを、メモリネットワーク３００を経由して、メモリ制御手段４００に送信する（ステップＳ１６）。メモリ制御手段４００は、アドレスおよびサイズにより、メモリ５００に対してプリフェッチ単位でデータを書き込む（ステップＳ１７）。
【００２９】
以上、本発明の第１実施形態によるベクトルプロセッサ装置１について説明した。
ベクトルプロセッサ装置１において、アドレスサイズ生成手段１１０は、ベクトルロードストア命令の開始アドレス１２０、ベクトル長１３０、およびチャネル数１４０を入力する。アドレスサイズ生成手段１１０は、入力した開始アドレス１２０、ベクトル長１３０、およびチャネル数１４０から、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレス１５０およびサイズ１６０を生成する。アドレスサイズ生成手段１１０は、生成したアドレス１５０およびサイズ１６０を出力する。
こうすることで、ベクトルプロセッサ装置１は、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレス単位のインタリーブにすることにより、ベクトルロードストアでメモリ帯域向上し、チャネル間の競合を避けることができる。チャネル間の競合を避けることができた結果、ソフトウェアによるチューニングが不要となる。なお、チューニングとは、あるチャネル（アドレス）に対してアクセスが集中しないように、ソフトウェアでアクセスするアドレスを制御することである。
【００３０】
＜第２実施形態＞
本発明の第２実施形態によるベクトルプロセッサ装置１は、本発明の第１実施形態によるベクトルプロセッサ装置１と同様に、ベクトルロードストア制御手段１００、ベクトルレジスタ２００、メモリネットワーク３００、メモリ制御手段４００、複数のメモリ５００を備える。
本発明の第２実施形態によるベクトルプロセッサ装置１は、ベクトルロードストア制御手段１００が本発明の第１実施形態によるベクトルプロセッサ装置１と異なる。
【００３１】
図５は、ベクトルロードストア制御手段１００の構成を示す図である。ベクトルロードストア制御手段１００は、ベクトルロードまたはベクトルストア命令に応じて、メモリアクセスを行う手段である。ベクトルロードストア制御手段１００は、アドレスサイズ生成手段１１０を備える。
アドレスサイズ生成手段１１０は、ベクトルロードストア命令の開始アドレス１２０、ベクトル長１３０、チャネル数１４０、およびストライド数１７０を入力する。
アドレスサイズ生成手段１１０は、入力した開始アドレス１２０、ベクトル長１３０、チャネル数１４０、およびストライド数１７０から、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレス１５０およびサイズ１６０を生成する。
アドレスサイズ生成手段１１０は、生成したアドレス１５０およびサイズ１６０を出力する。
アドレスサイズ生成手段１１０は、アドレスサイズ生成手段１１０を除いて、当業者にとって既知技術を用いて所望の処理を行う。
【００３２】
次に、ベクトルプロセッサ装置１の動作について、図６に示すベクトルプロセッサ装置１の処理フローについて説明する。
ここでは、図６に示すベクトルロード命令に対してベクトルプロセッサ装置１が行う処理について説明する。
【００３３】
ストライドありベクトルロードは、例えば「ＶＬＤ  ベクトルレジスタ番号、開始アドレス、ベクトル長、ストライド数」といった形式で記載されたコードによって指定される。
【００３４】
ベクトルレジスタ番号で指定されるベクトルレジスタ２００は、メモリ５００の開始アドレスからストライド数とびでベクトル長のデータを読み出す（ステップＳ２１）。そのベクトルレジスタ２００は、メモリ５００の開始アドレスからストライド数とびで読み出したベクトル長のデータを格納する（ステップＳ２２）。
【００３５】
アドレスサイズ生成手段１１０は、ベクトルロード命令により、開始アドレス１２０、ベクトル長１３０、チャネル数１４０、およびストライド数１７０を入力する（ステップＳ２３）。アドレスサイズ生成手段１１０は、チャネル番号Ｎがストライド数の整数倍である場合のみ、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレス１５０およびサイズ１６０を生成する（ステップＳ２４）。
【００３６】
チャネル番号Ｎに対するアドレス１５０は、Ｎ≧（開始アドレスｍｏｄチャネル数）の場合、
アドレス＝（開始アドレス−（開始アドレスｍｏｄチャネル数）＋Ｎ）／チャネル数
である。
また、チャネル番号Ｎに対するアドレス１５０は、Ｎ＜（開始アドレスｍｏｄチャネル数）の場合、
アドレス＝（開始アドレス−（開始アドレスｍｏｄチャネル数）＋Ｎ＋チャネル数）／チャネル数
の小数点以下を切り捨てたものである。
【００３７】
また、チャネル番号Ｎに対するサイズ１６０は、
サイズ＝（ベクトル長−アドレス＋開始アドレス＋１）／チャネル数×ストライド数
の小数点以下を切り捨てたものである。
【００３８】
そして、ベクトルプロセッサ装置１は、ステップＳ５〜ステップＳ９の処理を行う。
【００３９】
以上、本発明の第２実施形態によるベクトルプロセッサ装置１について説明した。
ベクトルプロセッサ装置１において、アドレスサイズ生成手段１１０は、ベクトルロードストア命令の開始アドレス１２０、ベクトル長１３０、チャネル数１４０、およびストライド数１７０を入力する。アドレスサイズ生成手段１１０は、入力した開始アドレス１２０、ベクトル長１３０、チャネル数１４０、およびストライド数１７０から、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレス１５０およびサイズ１６０を生成する。アドレスサイズ生成手段１１０は、生成したアドレス１５０およびサイズ１６０を出力する。
こうすることで、ベクトルプロセッサ装置１は、ストライド付ベクトルロードストア命令に対して、不要なチャネルに対してメモリアクセスが行われない。そのため、ベクトルロードストアでメモリ帯域向上し、チャネル間の競合を避けることができる。チャネル間の競合を避けることができた結果、ソフトウェアによるチューニングが不要となる。
【００４０】
なお、本発明の別の実施形態によるベクトルプロセッサ装置１は、メモリ制御手段４００の代わりに、図７に示すメモリ制御手段４５０を備えるものであってもよい。
メモリ制御手段４５０は、キャッシュ手段４５１を備える。
キャッシュ手段４５１は、キャッシュのエントリを、プリフェッチ単位で、チャネル数番地おきの連続番地とする。
なお、この場合のベクトルプロセッサ装置１の処理は、次のようになる。
ベクトルロードストア制御手段１００は、ベクトルロードまたはベクトルストア命令に応じて、メモリ５００にアクセスする。ベクトルロードストア制御手段１００は、チャネル毎にメモリストアアクセスを生成する。ベクトルロードストア制御手段１００は、生成したメモリストアアクセスを、メモリネットワーク３００を経由して、メモリ制御手段４５０に送信する。メモリ制御手段４５０は、キャッシュ手段４５１にヒットした場合は、キャッシュをアクセスし、ミスした場合は、番地およびサイズにより、メモリ５００に対してプリフェッチ単位でアクセスを行う。
このようにベクトルプロセッサ装置１は、キャッシュにデータをプリフェッチすることで、不要なメモリアクセスを発生させない。このため、ベクトルプロセッサ装置１は、連続アドレスでのベクトルロードストアでメモリ帯域を向上させることができる。
【００４１】
なお、本発明の別の実施形態によるベクトルプロセッサ装置１は、ベクトルレジスタ２００の代わりに、図８に示すベクトルレジスタ２５０を備え、さらに、ベクトルコアネットワーク７００を備えるものであってもよい。
ベクトルレジスタ２５０は、複数のラインに分割され、並列の動作することで性能向上が図られる。個々のラインの要素は、ラインにインタリーブされ、例えば４つのラインに分割された場合は、ライン番号０では、要素００、要素０４、を含む。
なお、この場合のベクトルプロセッサ装置１の処理は、次のようになる。
ベクトルロードストア制御手段１００は、ベクトルロードまたはベクトルストア命令に応じて、ベクトルレジスタ２５０へアクセスする。このとき、ベクトルレジスタ２５０は、ラインをインタリーブ（すなわち、ラインを分割）する。
このようにベクトルプロセッサ装置１は、ベクトルレジスタ２５０がラインを分割することで（特に、ライン数とチャネル数を一致させることで）、メモリネットワーク３００およびベクトルコアネットワーク７００でのアクセス競合を削減し、ベクトルロードストアでメモリ帯域を向上させることができる。
【００４２】
本発明の実施形態による最小構成のベクトルプロセッサ装置１について説明する。
ベクトルプロセッサ装置１は、図９に示すように、生成部１０を備える。
生成部１０は、ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレスおよびサイズを生成する。
【００４３】
以上、本発明の実施形態による最小構成のベクトルプロセッサ装置１について説明した。
このように、ベクトルプロセッサ装置１を構成することで、生成部１０は、ベクトルロードストア命令の開始アドレス、ベクトル長、およびチャネル数に基づいて、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレスおよびサイズを生成する。その結果、ベクトルプロセッサ装置１は、プリフェッチ単位をチャネル数アドレスおきの連続アドレスとした、アドレス単位のインタリーブにすることにより、ベクトルロードストアでメモリ帯域向上し、チャネル間の競合を避けることができる。チャネル間の競合を避けることができた結果、ソフトウェアによるチューニングが不要となる。
【００４４】
なお、本発明の実施形態における処理は、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
【００４５】
本発明の実施形態におけるベクトルレジスタ２００、メモリ５００、その他の記憶装置（レジスタ、ラッチを含む）のそれぞれは、適切な情報の送受信が行われる範囲においてどこに備えられていてもよい。また、本発明の実施形態におけるベクトルレジスタ２００、メモリ５００、その他の記憶装置のそれぞれは、適切な情報の送受信が行われる範囲において複数存在しデータを分散して記憶していてもよい。
【００４６】
本発明の実施形態について説明したが、上述のベクトルプロセッサ装置１、ベクトルロードストア制御手段１００、メモリ制御手段４００、４５０、その他の制御装置は内部に、コンピュータシステムを有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。コンピュータの具体例を以下に示す。
【００４７】
図１０は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ５は、図１０に示すように、ＣＰＵ６、メインメモリ７、ストレージ８、インターフェース９を備える。
例えば、上述のベクトルプロセッサ装置１、ベクトルロードストア制御手段１００、メモリ制御手段４００、４５０、その他の制御装置のそれぞれは、コンピュータ５に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ８に記憶されている。ＣＰＵ６は、プログラムをストレージ８から読み出してメインメモリ７に展開し、当該プログラムに従って上記処理を実行する。また、ＣＰＵ６は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ７に確保する。
【００４８】
ストレージ８の例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、半導体メモリ等が挙げられる。ストレージ８は、コンピュータ５のバスに直接接続された内部メディアであってもよいし、インターフェース９または通信回線を介してコンピュータ５に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ５に配信される場合、配信を受けたコンピュータ５が当該プログラムをメインメモリ７に展開し、上記処理を実行してもよい。少なくとも１つの実施形態において、ストレージ８は、一時的でない有形の記憶媒体である。
【００４９】
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル（差分プログラム）であってもよい。
【００５０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例であり、発明の範囲を限定しない。これらの実施形態は、発明の要旨を逸脱しない範囲で、種々の追加、省略、置き換え、変更を行ってよい。
【符号の説明】
【００５１】
１・・・ベクトルプロセッサ装置
５・・・コンピュータ
６・・・ＣＰＵ
７・・・メインメモリ
８・・・ストレージ
９・・・インターフェース
１００・・・ベクトルロードストア制御手段
１１０・・・アドレスサイズ生成手段
１２０・・・開始アドレス
１３０・・・ベクトル長
１４０・・・チャネル数
１５０・・・アドレス
１６０・・・サイズ
１７０・・・ストライド数
２００、２５０・・・ベクトルレジスタ
２１０・・・ベクトル要素
３００・・・メモリネットワーク
４００、４５０・・・メモリ制御手段
５００・・・メモリ
【図１】
2020173609.tif 000003
【図２】
2020173609.tif 000004
【図３】
2020173609.tif 000005
【図４】
2020173609.tif 000006
【図５】
2020173609.tif 000007
【図６】
2020173609.tif 000008
【図７】
2020173609.tif 000009
【図８】
2020173609.tif 000010
【図９】
2020173609.tif 000011
【図１０】
2020173609.tif 000012