(57)【要約】【課題】  リクエストが圧縮された演算器の数や圧縮のパターン数が多い場合でも圧縮情報のビット数を小さくすることが可能なデータ転送方法を提供する。【解決手段】  番号が連続する複数の演算器からのメモリリクエストが一のメモリポートに競合する場合には、これら複数のメモリリクエストを１つに圧縮する。この際、演算器番号情報とメモリアドレス特定用情報とを含む圧縮情報を生成する。演算器番号情報は、圧縮される複数のメモリリクエストの発行元である複数の演算器のうち特定の演算器の番号を示す情報である。メモリアドレス特定用情報は、前記一のメモリポートに含まれるメモリアドレスのうち何れのメモリアドレスに対するリクエストを圧縮したのかを示す情報である。リプライが前記一のメモリポートから戻ってくると、該リプライを圧縮情報に基づいてリクエスト発行元の演算器に分配する。【選択図】    図１
2007249651.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算器を有するプロセッサと、複数のメモリポートを有するメモリシステムと、を備え、
前記プロセッサは、
番号が連続する複数の演算器から発行されたメモリリクエストが一のメモリポートに競合する場合に、これら複数のメモリリクエストを１つに圧縮した圧縮リクエストとして発行する圧縮リクエスト発行手段と、
前記圧縮リクエストへと圧縮される複数のメモリリクエストの発行元である複数の演算器のうち特定の演算器の番号を示す演算器番号情報と、前記圧縮リクエストが前記一のメモリポートに含まれるメモリアドレスのうち何れのメモリアドレスに対するリクエストであるのかを示すメモリアドレス特定用情報と、を含む圧縮情報を生成する圧縮情報生成手段と、
前記圧縮リクエストに対するリプライが前記一のメモリポートから戻ってきた場合に、該リプライを前記圧縮情報に基づいてリクエスト発行元の演算器に分配する分配手段と、
を備えることを特徴とするコンピュータ装置。
【請求項２】
前記演算器番号情報は、前記圧縮リクエストへと圧縮される複数のメモリリクエストの発行元である複数の演算器のうち、番号が先頭の演算器の番号を示す情報であることを特徴とする請求項１に記載のコンピュータ装置。
【請求項３】
メモリアドレス特定用情報は、前記一のメモリポートに含まれるメモリアドレスのうち、メモリリクエストが圧縮されるメモリアドレスの全ての組み合わせパターンのうち、何れか１つのパターンを特定するための情報であることを特徴とする請求項１又は２に記載のコンピュータ装置。
【請求項４】
前記圧縮情報生成手段は、番号が連続する複数の演算器からのメモリリクエストが、前記一のメモリポートに含まれるメモリアドレスのうち番号が連続するメモリアドレスに対するメモリリクエストである場合に、前記演算器番号情報と前記メモリアドレス特定用情報とを含む前記圧縮情報を生成することを特徴とする請求項１乃至３の何れか一項に記載のコンピュータ装置。
【請求項５】
前記圧縮情報生成手段は、メモリリクエストが前記圧縮リクエストであるか否かを示す圧縮有無情報を更に含む圧縮情報を生成することを特徴とする請求項１乃至４の何れか一項に記載のコンピュータ装置。
【請求項６】
複数の演算器を有するプロセッサと、複数のメモリポートを有するメモリシステムと、を備えるコンピュータ装置のデータ転送方法において、
複数の演算器から発行されたメモリリクエストが一のメモリポートに競合する場合に、これら複数のメモリリクエストを１つに圧縮した圧縮リクエストとして発行する第１の過程と、
前記圧縮リクエストへと圧縮される複数のメモリリクエストの発行元である複数の演算器のうち特定の演算器の番号を示す演算器番号情報と、前記圧縮リクエストが前記一のメモリポートに含まれるメモリアドレスのうち何れのメモリアドレスに対するリクエストであるのかを示すメモリアドレス特定用情報と、を含む圧縮情報を生成する第２の過程と、
前記圧縮リクエストに対するリプライが前記一のメモリポートから前記プロセッサに戻ってきた場合に、該リプライを前記圧縮情報に基づいてリクエスト発行元の演算器に分配する第３の過程と、
を備えることを特徴とするコンピュータ装置のデータ転送方法。
【請求項７】
前記演算器番号情報は、前記圧縮リクエストへと圧縮される複数のメモリリクエストの発行元である複数の演算器のうち、番号が先頭の演算器の番号を示す情報であることを特徴とする請求項６に記載のコンピュータ装置のデータ転送方法。
【請求項８】
メモリアドレス特定用情報は、前記一のメモリポートに含まれるメモリアドレスのうち、メモリリクエストが圧縮されるメモリアドレスの全ての組み合わせパターンのうち、何れか１つのパターンを特定するための情報であることを特徴とする請求項６又は７に記載のコンピュータ装置のデータ転送方法。
【請求項９】
連続する複数の演算器からのメモリリクエストが、前記一のメモリポートに含まれるメモリアドレスのうち番号が連続するメモリアドレスに対するメモリリクエストである場合に、前記第２の過程では、前記演算器番号情報と前記メモリアドレス特定用情報とを含む前記圧縮情報を生成することを特徴とする請求項６乃至８の何れか一項に記載のコンピュータ装置のデータ転送方法。
【請求項１０】
前記第２の過程では、メモリリクエストが前記圧縮リクエストであるか否かを示す圧縮有無情報を更に含む圧縮情報を生成することを特徴とする請求項６乃至９の何れか一項に記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ装置及びそのデータ転送方法に関する。
【背景技術】
【０００２】
図８は従来の一般的なコンピュータ装置の構成及びその動作を示す図である。
【０００３】
図８に示すように、コンピュータ装置１００は、複数のプロセッサＰと、メモリシステムＭＳと、を備えている。
【０００４】
各プロセッサＰは、複数の演算器Ｅと、ルーティング部Ｒと、を備えている。
【０００５】
メモリシステムＭＳは、複数のメモリＭを備えている。
【０００６】
なお図８ではコンピュータ装置１００がプロセッサ００〜Ｎの計（Ｎ＋１）個のプロセッサＰを備え、各プロセッサＰは演算器００〜３１の計３２個の演算器Ｅを備え、メモリシステムＭＳはメモリ００〜３１の計３２個のメモリＭを備えているが、これは一例であり、プロセッサＰ、各プロセッサＰが備える演算器Ｅ、メモリシステムＭＳが備えるメモリＭの数は、それぞれ任意の数である。
【０００７】
また、図８においては、コンピュータ装置１００の構成だけでなく動作の流れも示しているため、便宜的に、番号が００番のプロセッサＰ（プロセッサ００）については２つを図示している。
【０００８】
プロセッサＰは、内部に備えられる複数の演算器Ｅの各々からメモリアクセスリクエストを発行する機能を備えている。メモリアクセスとはメモリＭからデータを読み出したりメモリ５にデータを書き込んだりする機能のことである。
【０００９】
更に、プロセッサＰのルーティング部Ｒは、各演算器Ｅを行き先メモリ（メモリＭのうちデータを読み出したり書き込んだりする対象となるメモリ）へ案内するためのルーティング機能を有する。
【００１０】
一般に３２個の演算器３が３２個のメモリＭと接続されているならばルーティング機能としては３２×３２のクロスバ機能を有することとなる。演算器Ｅから発行されたメモリアクセスリクエストはルーティング部Ｒにより目的のメモリＭ（行き先メモリ）へ到着する。
【００１１】
メモリＭからのリプライは、例えばロード命令であればロードデータと共にプロセッサＰへ返却され、再びプロセッサＰ内のルーティング部Ｒにてリクエスト発行元の演算器Ｅへと案内されてメモリリプライの受信が完了となる。
【００１２】
一般に、複数の演算器Ｅから発行されたリクエストが一つのメモリポートに対して競合した場合は、メモリＭ側のバンク競合を回避するためにこれら複数のリクエストを１つにまとめて（圧縮して）発行することがある。
【００１３】
このようにリクエストが圧縮された演算器Ｅの番号は保持しておく必要があり、この１つにまとめられたリクエストがメモリＭからプロセッサＰに返ってきた時に、この保持していた圧縮情報を展開してリクエスト発行元の演算器Ｅへリプライを返却する制御を行っている。
【００１４】
例えば演算器Ｅが３２個であれば、このうち一つの演算器Ｅを特定するための番号を表すのに５ビットが必要であり、４つの演算器Ｅの番号を圧縮した場合は５ビット×４＝２０ビットが必要となる。
【００１５】
図９は従来の圧縮情報（圧縮されたリクエスト情報）のフォーマット例を示す図である。
【００１６】
図９に示すように、従来は圧縮されたリクエストのリプライを指示するために、圧縮されたすべての演算器番号を保持していたため、図９に示す例では２０ビットが必要であった。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
従来のリプライ情報フォーマットにおいてはリクエストを圧縮した際に生成する圧縮情報ビット数は、リクエストが圧縮された演算器の数に比例して増大してしまうという課題がある。同一メモリポートに競合するリクエストを制限なく圧縮していては圧縮情報に関するハード量の削減は難しくなる。
【００１８】
すなわち、従来は複数個のメモリリクエストを１つに圧縮して発行した場合、圧縮されたリクエスト情報（＝発行元の演算器の番号）を各々の演算器番号で保持していたために、圧縮する要素の数が多いときには圧縮情報として保持しておくビット数も増大してしまうという問題があり、その削減が課題であった。
【００１９】
本発明は、上記のような問題点を解決するためになされたもので、リクエストが圧縮された演算器の数や圧縮のパターン数が多い場合でも圧縮情報のビット数を小さくすることが可能なコンピュータ装置及びそのデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記課題を解決するため、本発明のコンピュータ装置は、複数の演算器を有するプロセッサと、複数のメモリポートを有するメモリシステムと、を備え、前記プロセッサは、番号が連続する複数の演算器から発行されたメモリリクエストが一のメモリポートに競合する場合に、これら複数のメモリリクエストを１つに圧縮した圧縮リクエストとして発行する圧縮リクエスト発行手段と、前記圧縮リクエストへと圧縮される複数のメモリリクエストの発行元である複数の演算器のうち特定の演算器の番号を示す演算器番号情報と、前記圧縮リクエストが前記一のメモリポートに含まれるメモリアドレスのうち何れのメモリアドレスに対するリクエストであるのかを示すメモリアドレス特定用情報と、を含む圧縮情報を生成する圧縮情報生成手段と、前記圧縮リクエストに対するリプライが前記一のメモリポートから戻ってきた場合に、該リプライを前記圧縮情報に基づいてリクエスト発行元の演算器に分配する分配手段と、を備えることを特徴としている。
【００２１】
本発明のコンピュータ装置においては、前記演算器番号情報は、前記圧縮リクエストへと圧縮される複数のメモリリクエストの発行元である複数の演算器のうち、番号が先頭の演算器の番号を示す情報であることが好ましい。
【００２２】
本発明のコンピュータ装置においては、メモリアドレス特定用情報は、前記一のメモリポートに含まれるメモリアドレスのうち、メモリリクエストが圧縮されるメモリアドレスの全ての組み合わせパターンのうち、何れか１つのパターンを特定するための情報であることが好ましい。
【００２３】
本発明のコンピュータ装置においては、前記圧縮情報生成手段は、番号が連続する複数の演算器からのメモリリクエストが、前記一のメモリポートに含まれるメモリアドレスのうち番号が連続するメモリアドレスに対するメモリリクエストである場合に、前記演算器番号情報と前記メモリアドレス特定用情報とを含む前記圧縮情報を生成することが好ましい。
【００２４】
本発明のコンピュータ装置においては、前記圧縮情報生成手段は、メモリリクエストが前記圧縮リクエストであるか否かを示す圧縮有無情報を更に含む圧縮情報を生成することが好ましい。
【００２５】
また、本発明のコンピュータ装置のデータ転送方法は、複数の演算器を有するプロセッサと、複数のメモリポートを有するメモリシステムと、を備えるコンピュータ装置のデータ転送方法において、複数の演算器から発行されたメモリリクエストが一のメモリポートに競合する場合に、これら複数のメモリリクエストを１つに圧縮した圧縮リクエストとして発行する第１の過程と、前記圧縮リクエストへと圧縮される複数のメモリリクエストの発行元である複数の演算器のうち特定の演算器の番号を示す演算器番号情報と、前記圧縮リクエストが前記一のメモリポートに含まれるメモリアドレスのうち何れのメモリアドレスに対するリクエストであるのかを示すメモリアドレス特定用情報と、を含む圧縮情報を生成する第２の過程と、前記圧縮リクエストに対するリプライが前記一のメモリポートから前記プロセッサに戻ってきた場合に、該リプライを前記圧縮情報に基づいてリクエスト発行元の演算器に分配する第３の過程と、を備えることを特徴としている。
【００２６】
本発明のコンピュータ装置のデータ転送方法においては、前記演算器番号情報は、前記圧縮リクエストへと圧縮される複数のメモリリクエストの発行元である複数の演算器のうち、番号が先頭の演算器の番号を示す情報であることが好ましい。
【００２７】
本発明のコンピュータ装置のデータ転送方法においては、メモリアドレス特定用情報は、前記一のメモリポートに含まれるメモリアドレスのうち、メモリリクエストが圧縮されるメモリアドレスの全ての組み合わせパターンのうち、何れか１つのパターンを特定するための情報であることが好ましい。
【００２８】
本発明のコンピュータ装置のデータ転送方法においては、番号が連続する複数の演算器からのメモリリクエストが、前記一のメモリポートに含まれるメモリアドレスのうち番号が連続するメモリアドレスに対するメモリリクエストである場合に、前記第２の過程では、前記演算器番号情報と前記メモリアドレス特定用情報とを含む前記圧縮情報を生成することが好ましい。
【００２９】
本発明のコンピュータ装置のデータ転送方法においては、前記第２の過程では、メモリリクエストが前記圧縮リクエストであるか否かを示す圧縮有無情報を更に含む圧縮情報を生成することが好ましい。
【発明の効果】
【００３０】
本発明によれば、番号が連続する複数の演算器からのメモリリクエストが一のメモリポートに競合する場合、圧縮情報生成手段は、演算器番号情報とメモリアドレス特定用情報とを含む圧縮情報を生成するので、リクエストが圧縮された演算器の数や圧縮のパターン数が多い場合でも、従来と比べて、圧縮情報の情報量を低減することができる。
【発明を実施するための最良の形態】
【００３１】
以下、図面を参照して、本発明に係る実施形態について説明する。
【００３２】
〔第１の実施形態〕
図１は本実施形態に係るコンピュータ装置１０の構成と、リクエスト／リプライの動作の流れを示す図である。
【００３３】
図１に示すコンピュータ装置１０は、その基本構成は図８に示す従来の一般的なコンピュータ装置１００と同様であるため、図１に示すコンピュータ装置１０の構成要素のうち図８に示すコンピュータ装置１００におけるのと同様の構成要素には同一の符号を付し、その説明を省略する。
【００３４】
コンピュータ装置１０は、演算器Ｅからのリクエスト発行時にプロセッサＰ内のルーティング部（圧縮情報生成手段）Ｒにて圧縮情報の生成がなされ、リプライ受信時にこの圧縮情報を参照してリプライを発行元の演算器Ｅへ返却する構成となっている。
【００３５】
本実施形態の場合、図１に示すように、メモリＭ側のインターリーブが、例えば１６Ｂｙｔｅ飛びであり、００番のメモリＭのメモリポート（図１中のメモリポート００）の中にメモリアドレス０，１，２，３が、メモリポート０１の中にメモリアドレス４，５，６，７が位置している。
【００３６】
図１に示す動作の場合では、番号が連続する５つの演算器００，０１，０２，０３，０４の各々から４Ｂｙｔｅ幅のロード命令（ロードリクエスト）が発行されており、ロード先のメモリアドレスは３，４，５，６，７と連続している。
【００３７】
このとき、図１に示すように、メモリアドレス４，５，６，７（メモリポート０１）に対する４つの４Ｂｙｔｅ幅ロード命令は、一般的な方法としてメモリポート０１に対する１つの１６Ｂｙｔｅ幅ロード命令に置き換えることができる。つまり、演算器０１，０２，０３，０４から発行されたリクエストは、例えば、ルーティング部（圧縮リクエスト発行手段）Ｒにより、１つの１６Ｂｙｔｅメモリアクセス命令（圧縮リクエスト）に圧縮（変換）される。
【００３８】
このようにロード命令が圧縮された演算器番号０１，０２，０３，０４は、メモリＭ（メモリポート０１）からのアクセスリプライを発行元の演算器Ｅ（０１，０２，０３，０４）へ返却するときのために保持しておく必要があり、実施形態ではこの圧縮された情報をその圧縮パターン（メモリアドレス特定用情報）と圧縮した先頭の演算器番号（演算器番号情報）により識別する。
【００３９】
図２には本実施形態における圧縮情報のフォーマットが示されている。
【００４０】
図２に示すように、本実施形態の場合、圧縮情報は、例えば、先頭の演算器番号を示す５ビットの情報（図２の先頭演算器番号５ビット）＋圧縮パターンを示す３ビットの情報（図２の圧縮パターン３ビット）＋圧縮の有無を示す１ビットの情報（圧縮の有無１ビット）の計９ビットから構成される。
【００４１】
このうちは、先頭の演算器番号を示す５ビットの情報は、メモリリクエストが圧縮される複数の演算器のうち、先頭の演算器（特定の演算器）の番号を示す情報（演算器番号情報）である。
【００４２】
圧縮パターンを示す３ビットの情報は、圧縮されたメモリリクエストが、該リクエストの競合先となっている同一のメモリポートに含まれる複数のメモリアドレスのうち、何れのメモリアドレスに対するリクエストであるのかを示す情報（メモリアドレス特定用情報）である。
【００４３】
圧縮の有無を示す１ビットの情報は、メモリリクエストが圧縮されたものであるか否かを示す情報（圧縮有無情報）である。
【００４４】
図３は本実施形態における圧縮パターン情報（図２におけるビット［５：７］に相当する情報）を示す図である。
【００４５】
１６Ｂｙｔｅ幅のメモリポートに対してメモリアドレスが連続する４個の４Ｂｙｔｅ幅のリクエストが競合した場合は、この４個のリクエストが圧縮される。
【００４６】
このケースを、図３に示すように例えばパターン０としパターン情報は「０００」とする。同様に、メモリアドレス１６Ｂｙｔｅのうち前半３つに対して３個の４Ｂｙｔｅ幅のリクエストが競合した場合は、３個のリクエストを圧縮し、パターン１としパターン情報は「００１」とする。同様に、メモリアドレス１６Ｂｙｔｅのうち後半３つに対して３個の４Ｂｙｔｅ幅のリクエストが競合した場合は、３個のリクエストを圧縮し、パターン２としパターン情報は「０１０」とする。同様に、メモリアドレス１６Ｂｙｔｅのうち前半２つに対して２個の４Ｂｙｔｅ幅のリクエストが競合した場合は、２個のリクエストを圧縮し、パターン３としパターン情報は「０１１」とする。同様に、メモリアドレス１６Ｂｙｔｅのうち順序が真ん中の２つに対して２個の４Ｂｙｔｅ幅のリクエストが競合した場合は、２個のリクエストを圧縮し、パターン４としパターン情報は「１００」とする。同様に、メモリアドレス１６Ｂｙｔｅのうち順序が最後の２つに対して２個の４Ｂｙｔｅ幅のリクエストが競合した場合は、２個のリクエストを圧縮し、パターン５としパターン情報は「１０１」とする。
【００４７】
このように、圧縮パターン情報（メモリアドレス特定用情報）は、一のメモリポートに含まれるメモリアドレスのうち、メモリリクエストが圧縮されるメモリアドレスの全ての組み合わせパターンのうち、何れか１つのパターンを特定するための情報である。
【００４８】
例えば図１のケースでは４つをまとめて圧縮しているので図３のパターン０の圧縮形態となり、圧縮情報ビット［５：７］には「０００」を保持することとなる。また圧縮された演算器の先頭（番号が最も若い演算器）は演算器０１であるので圧縮情報ビット［０：４］は「００００１」となる。さらに圧縮していることを示す情報ビット［８］は「１」（圧縮あり）となる。一方演算器００から発行されたリクエストはメモリポート００に対するものであり、他のリクエストと競合していないので圧縮する必要はない。圧縮情報ビット［８］を［０］（圧縮なし）、圧縮情報ビット［０：４］は発行元の演算器番号「０００００」、圧縮情報ビット［５：７］は「Ｄｏｎ‘ｔ  ｃａｒｅ＝どんな値でもかまわない（制御に使用しない）」でよい。
【００４９】
プロセッサＰでは、メモリＭからのリプライを受信した際、この圧縮情報（図２）を参照することにより、リプライ返却先の演算器番号を識別することができる。
【００５０】
例えば先頭演算器番号＝５、圧縮パターン＝２、圧縮有無＝１（圧縮あり）であるならば、返却先の演算器番号は５と６と７であることが判る。ルーティング部ＲではメモリＭからロードした１６Ｂｙｔｅデータのうち図１の右側よりの１２Ｂｙｔｅを演算器５と６と７へ返却すればよい。この識別が可能な理由は、「発行元の演算器番号が連続しており、アクセスするメモリアドレスが連続する場合に複数のリクエストを圧縮している」という前提があるためである。圧縮されていないリクエストは圧縮情報ビット［８］＝０であり、このリクエストは先頭演算器番号［０：４］がそのままリプライ先の演算器番号となる。圧縮なしの場合は圧縮パターン［５：７］は「Ｄｏｎ‘ｔ  ｃａｒｅ」である。
【００５１】
上記のように生成した圧縮情報ビット［０：８］は、例えば、プロセッサＰ内のＲＡＭ（図示略）に記憶させておきメモリＭからのリプライがあったときにＲＡＭから読み出して使用することが挙げられる。或いは、ＲＡＭに記憶させなくともインターフェースとしてプロセッサ→メモリ→プロセッサへと持ちまわり、リプライ時に使用しても良い。メモリＭから読み出した１６ＢｙｔｅのロードデータはプロセッサＰ内のルーティング部（分配手段）Ｒで圧縮情報を参照して展開され、発行元の演算器Ｅへ４Ｂｙｔｅずつ返却されて一連のメモリアクセスが完了する。
【００５２】
なお、図１のルーティング部Ｒで複数のリクエストを１つに圧縮して発行する制御は、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
【００５３】
次に、動作を説明する。
【００５４】
図４は図１のコンピュータ装置１０の一連の動作の流れを示すフローチャートである。
【００５５】
先ず、演算器Ｅからメモリアクセスリクエストが発行される（ステップＳ１）。
【００５６】
次に、ルーティング部Ｒでは、演算器Ｅから発行されたメモリアクセスリクエストには、同一メモリポートへのリクエスト競合が生じているか否かを判定する（ステップＳ２）。
【００５７】
リクエスト競合が発生していない場合（ステップＳ２のＮｏ）、演算器Ｅから発行されたメモリアクセスリクエストはルーティング部Ｒにより行き先メモリへ案内される（ステップＳ６）。
【００５８】
他方、リクエスト競合が発生している場合（ステップＳ２のＹｅｓ）、これら競合するリクエストが互いに圧縮可能であるかどうかをチェックする（ステップＳ３）。
【００５９】
圧縮可能でない場合（ステップＳ３のＮｏ）、演算器Ｅから発行されたメモリアクセスリクエストはルーティング部Ｒにより行き先メモリへ案内される（ステップＳ６）。
【００６０】
圧縮可能である場合（ステップＳ３のＹｅｓ）、演算器Ｅから発行されたメモリアクセスリクエストを圧縮する処理を行う（ステップＳ４）。
【００６１】
ここで、圧縮可能となる（ステップＳ３のＹｅｓとなる）のは、アクセス先のメモリアドレスが連続していてかつリクエスト発行元の演算器番号が連続しているケースである。この競合チェックや圧縮動作（ステップＳ４）は一般的な制御であり、仕様に合わせてプロセッサＰ内のどこの論理部で行っても良い。圧縮可能な場合はリプライ情報（圧縮情報ビットを含む）を生成し（ステップＳ５）、メモリＭへリクエストを発行する（ステップＳ６）。
【００６２】
その後、メモリＭからのリプライをプロセッサＰが受信すると（ステップＳ７）、そのリプライが圧縮されたものかどうかを圧縮情報ビット［８］を参照することによりチェックし（ステップＳ８）、圧縮されている場合（ステップＳ８のＹｅｓ）は圧縮情報ビット［０：７］を参照することによりリプライを発行元の演算器Ｅへと展開する（ステップＳ９〜Ｓ１０）。圧縮されていない場合（ステップＳ８のＮｏ）は圧縮情報ビット［０：４］に示される演算器Ｅへリプライを返却する（ステップＳ１０）。
【００６３】
図５は具体的な圧縮の一例を示す図である。
【００６４】
図５に示す例では、８個の演算器からそれぞれ４Ｂｙｔｅのメモリロード命令が発行されている。このケースでは演算器番号が０〜７、メモリアドレスが３〜１０となっているので本実施形態における圧縮可能な条件を満足している。
【００６５】
図５ではメモリポート番号１に対しては４個のリクエストが競合し、メモリポート番号２に対しては３つのリクエストが競合している。よって演算器番号１，２，３，４から発行された４個の４Ｂｙｔｅロード命令は、１個の１６Ｂｙｔｅロード命令へ圧縮され、このときに生成される圧縮情報ビットは先頭演算器番号［０：４］＝「００００１」、圧縮パターン［５：７］＝「０００」、圧縮ビット［８］＝「１（圧縮あり）」となる。同様に演算器番号５，６，７から発行された３個の４Ｂｙｔｅロード命令は１個の１６Ｂｙｔｅロード命令へ圧縮され、このときの圧縮情報ビットは図５に示す通りとなる。この圧縮パターン１の場合はメモリリプライとしてロードしてきた１６Ｂｙｔｅのうち前半の１２Ｂｙｔｅが有効、後半の４Ｂｙｔｅは無効（必要なし）として扱えばよい。またシステムの仕様によっては１２Ｂｙｔｅのみのメモリアクセスとして発行してもよい。本動作はメモリロード命令の場合であるが、メモリストア命令の場合も同様である。メモリアドレスが連続する場合はストアデータを圧縮（＝例えば隣接する４個の４Ｂｙｔｅのるデータを１個の１６Ｂｙｔｅデータに結合）すると共に、本実施形態で説明した圧縮情報の生成方法に従い発行元の演算器番号を圧縮情報ビットに格納する。ストアが終了したことを報告するリプライは、圧縮情報ビットを参照して発行元の演算器へ展開すればよい。なお本実施形態における圧縮情報の生成を採用せず圧縮された演算器番号を各々保持する場合、図５に「従来形式」として示すように、演算器４個なら２０ビット、３個なら１６ビットを必要とするためハード量を抑えることができない。
【００６６】
図６は具体的な圧縮の他の一例を示す図である。
【００６７】
図６に示す例では、２個の演算器からそれぞれ４Ｂｙｔｅのメモリロード命令が発行されている。このケースでは演算器番号が１６，１７、メモリアドレスが５，６となっているので本実施形態における圧縮可能な条件を満足している。よってこの２個の４Ｂｙｔｅロード命令は、１個の１６Ｂｙｔｅロード命令へ圧縮され、このときに生成される圧縮情報ビットは先頭演算器番号［０：４］＝「１００００（１０進数の１６）」、圧縮パターン［５：７］＝「１００」、圧縮ビット［８］＝「１（圧縮あり）」となる。メモリリプライとしてロードしてきた１６Ｂｙｔｅのうち中央の８Ｂｙｔｅを演算器１６と１７に返却することとなる。
【００６８】
このように、本実施形態では、プロセッサＰ内のメモリアクセスルーティング制御において、複数の演算器Ｅからのメモリアクセスリクエストを１つに圧縮した場合、何個のリクエストをどのようなパターンで圧縮したかを保持しておき（＝圧縮形態とそのパターンによる圧縮情報の生成）、その保持しておいた圧縮情報をメモリアクセスリプライ時にリプライ先の演算器Ｅへルーティングして返却する制御を行うことができる。また演算器Ｅから発行されたリクエストが、圧縮可能かどうかを判断する（すなわち発行元の演算器番号が連続しており、アクセス先のメモリアドレスが連続しているかの判断）。よって、プロセッサＰからメモリＭに発行する複数のリクエストを１つのリクエストへ圧縮する際に、保持しておく必要のある「圧縮情報」を「少ないビット数で実現する」ことができる。よって、ＬＳＩのハード量（トランジスタ数）を少なく抑えることができる。
【００６９】
このように、本実施形態では、圧縮される演算器番号が連続している場合を選択的に圧縮制御を行うので、この場合に、従来よりも少ないビット数で圧縮情報を表現することができる。すなわち、発生頻度が高く、効率的に圧縮、展開できる命令のケースを選択的に圧縮することにより圧縮情報ビット数の削減を図っている。
【００７０】
また、このように、圧縮情報ビット数を削減することにより、ハード量の削減が可能となる。例えばベクトル型の演算器では、連続した演算器が連続したメモリアドレスをアクセスするケースが頻繁にある。このようなシステムでは本発明を採用するとハード量の削減効果がより顕著となってあらわれる。
【００７１】
このようにして、本実施形態では、リクエスト発行元の複数の演算器番号が連続する場合にリクエストの圧縮を行い、圧縮した情報をその圧縮パターンと先頭の演算器番号で保持しているので、少ないビット数で圧縮情報を表現することが可能となり、ＬＳＩのハード量を削減できる。
【００７２】
また、圧縮の有無を示す情報（圧縮有無情報）を圧縮情報ビット［８］で表しているので、メモリからのリプライがあった場合に、先ず、この圧縮有無情報の内容を判別することにより、圧縮がない場合には、パターン情報（圧縮情報ビットの［５：７］）の確認を省略し、先頭演算器番号（圧縮情報ビットの［０：４］）のみを確認し、この先頭演算器番号により特定される演算器に対してリプライを案内すれば良いため、リプライを所望の演算器に案内するのに必要な処理の量を低減することができる。
【００７３】
以上のような第１の実施形態によれば、以下に記載するような効果を奏する。
【００７４】
第１の効果は、論理的な制御信号数を削減できることである。このためＬＳＩのハード量を抑えることができる。その理由は圧縮された制御情報は、その圧縮パターンと目印となる一部の情報によって識別されるためである。
【００７５】
第２の効果は、ベクトル型の演算器では、本実施形態による制御信号数の削減効果がより顕著となることである。その理由は、ベクトル型の演算器では、連続した演算器が連続したメモリアドレスをアクセスするケースが頻繁に発生するためである。
【００７６】
なお、上記の第１の実施形態では、４個の連続する４Ｂｙｔｅリクエストを１つの１６Ｂｙｔｅリクエストに圧縮しているが、８個の連続する２Ｂｙｔｅリクエストを１個の１６Ｂｙｔｅリクエストに圧縮しても良い。この場合は、圧縮するパターンが図３の場合よりも増えることとなるが、圧縮される演算器数が多くなるほど本発明による圧縮情報の削減効果はより大きくなる。またメモリインターリーブも１６Ｂｙｔｅに限らず、８Ｂｙｔｅでも３２Ｂｙｔｅでもかまわない。図２の圧縮情報ビット［０：４］［５：７］［８］の配列もこの限りではなく、任意でよい。
【００７７】
また、上記の第１の実施形態では、先頭演算器番号を圧縮情報ビット［０：４］で表す例を説明したが、例えば、一番後の演算器番号を圧縮情報ビット［０：４］で表すこととしても良いし、或いは、その他の特定の順番（２番目或いは３番目など）の演算器番号を圧縮情報ビット［０：４］で表すこととしても良い。
【００７８】
また、上記の第１の実施形態では、圧縮の有無を示す情報を圧縮情報ビット［８］で表す例を説明したが、この情報は用いない代わりに、例えば、圧縮がない場合には、圧縮情報ビット［５：７］を空き番号の「１１１」としても良い。この場合、圧縮情報ビットの情報量を更に低減することができる。
【００７９】
〔第２の実施形態〕
第２の実施形態では、圧縮のパターンについて第１の実施形態よりも工夫している。
【００８０】
なお、第２の実施形態は、圧縮のパターンが異なる他は、第１の実施形態と同様である。
【００８１】
図７は第２の実施形態における圧縮のパターンの例を示す図である。
【００８２】
図７に示す例では、メモリインターリーブは８Ｂｙｔｅであり（１つのメモリポートの幅が８Ｂｙｔｅ）、一つのメモリポート内で複数の２Ｂｙｔｅ幅のメモリアクセスが競合する場合は、メモリアドレスが連続してなくてもそれらをすべて圧縮することとしている。この場合、圧縮するパターンが増えるが、結局はリクエスト発行元の演算器番号が連続しているのであれば、リプライ時の演算器番号は識別が可能である。つまりメモリポートへの競合が発生した場合の圧縮可否の判断は、発行元の演算器番号が連続していることという条件のみとなる（メモリアドレスは連続していなくても良い）。さらに工夫している点は、２個の４Ｂｙｔｅ幅のメモリアクセスも圧縮している点である。
【００８３】
なお、第２の実施形態で説明した例に限らず、例えばメモリインターリーブ（メモリポートの幅）が３２Ｂｙｔｅであったならば、競合する２Ｂｙｔｅ幅の連続するリクエストを１６個圧縮してもよく、同様に１６Ｂｙｔｅ幅の連続するリクエストを２個圧縮してもよい。
【図面の簡単な説明】
【００８４】
【図１】第１の実施形態に係るコンピュータ装置の構成及び動作を一覧にした図である。
【図２】第１の実施形態における圧縮情報のフォーマットを示す図である。
【図３】第１の実施形態における圧縮パターンを示す図である。
【図４】第１の実施形態の場合の動作の流れを示すフローチャートである。
【図５】第１の実施形態における具体的な圧縮の一例を示す図である。
【図６】第１の実施形態における具体的な圧縮の他の一例を示す図である。
【図７】第２の実施形態における圧縮パターンの例を示す図である。
【図８】従来のコンピュータ装置の構成及び動作を一覧にした図である。
【図９】従来の圧縮情報のフォーマットを示す図
【符号の説明】
【００８５】
Ｐ      プロセッサ
Ｅ      演算器
Ｒ      ルーティング部（圧縮リクエスト発行手段、圧縮情報生成手段、分配手段）
Ｍ      メモリ
１００  コンピュータ装置
【図１】
2007249651.tif 000003
【図２】
2007249651.tif 000004
【図３】
2007249651.tif 000005
【図４】
2007249651.tif 000006
【図５】
2007249651.tif 000007
【図６】
2007249651.tif 000008
【図７】
2007249651.tif 000009
【図８】
2007249651.tif 000010
【図９】
2007249651.tif 000011