(57)【要約】【課題】ストア対象データのデータパターンが特定のデータパターンの際に、ストア対象データを圧縮して転送対象のパケット数を減らすことにより、ストア性能（スループット等）を向上させる。【解決手段】プロセッサ１００は、メモリ２００に対してストア（狭義のストア以外のストア系の動作を含む）を行う際に、ストア対象データのデータパターンを判断し、ストア対象データが特殊データである場合に、そのデータパターンを圧縮し、その特殊データのストア命令に関するパケット構成を特殊データ以外のデータのストア命令に関するパケット構成とは変化（パケット数の減少等）させる。メモリ２００は、プロセッサ１００から送信されてくるストア命令中のストア対象データを示すパターンが圧縮されたものである場合に、そのパターンを復号した上で当該ストア命令を受信する。【選択図】        図１
2004206228.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと複数のメモリとからなる並列コンピュータシステムにおいて、
前記メモリに対してストアを行う際に、ストア対象データのデータパターンを判断し、ストア対象データが特殊データである場合に、そのデータパターンを圧縮し、その特殊データのストア命令に関するパケット構成を特殊データ以外のデータのストア命令に関するパケット構成とは変化させる前記プロセッサと、
前記プロセッサから送信されてくるストア命令中のストア対象データを示すパターンが圧縮されたものである場合に、そのパターンを復号した上で当該ストア命令を受信する前記メモリと
を有することを特徴とするストア命令実行制御方式。
【請求項２】
浮動小数点フォーマットにおける特殊数を特殊データとし、浮動小数点演算を行うプロセッサを備えるコンピュータシステムに適用されることを特徴とする請求項１記載のストア命令実行制御方式。
【請求項３】
複数のプロセッサと複数のメモリとからなる並列コンピュータシステムにおいて、
ストア命令である転送データリクエストの送信時に、ストア対象データのデータパターンが特殊データのデータパターンに該当するか否かを判定し、特殊データのデータパターンである場合に、どの特殊データのデータパターンに該当するかを判断し、その判断結果に基づき当該ストア対象データに対応する圧縮パターンを送出するプロセッサ内のデータパターン認識回路と、
前記データパターン認識回路から送られてきた圧縮パターンに基づいてストア対象データが特殊データであるか否かを判定し、その判定結果が「ストア対象データが特殊データである」の場合に、特殊データストア命令識別ビットに特殊データストア命令であることを示す情報を有し、前記データパターン認識回路から送付されてきた圧縮パターンを保持し、特殊データストア命令以外のストア命令よりもパケット数が少ないパケット構成の転送データリクエストをメモリ側に出力するプロセッサ内のリクエスト出力部と、
プロセッサ側からストア命令である転送データリクエストを受信すると、その転送データリクエスト中の特殊データストア命令識別ビットの内容に基づいてその転送データリクエストが特殊データストア命令であるか否かを判定し、その判定結果が「転送データリクエストが特殊データストア命令である」の場合にはその転送データリクエスト中の圧縮パターンの内容を判別し、その判別結果に基づいて当該圧縮パターンを復号したストア対象データのデータパターンを生成し出力するメモリ内のデータパターン認識＆データ生成回路と、
プロセッサ側からストア命令である転送データリクエストを受信すると、その転送データリクエスト中の特殊データストア命令識別ビットの内容に基づいてその転送データリクエストが特殊データストア命令であるか否かを判定し、その判定結果が「転送データリクエストが特殊データストア命令である」の場合には前記データパターン認識＆データ生成回路により出力された圧縮パターンの復号結果をストア対象データとして当該転送データリクエストを受け取るメモリ内のリクエスト受信部と
を有することを特徴とするストア命令実行制御方式。
【請求項４】
データパターン認識回路が、ストア命令である転送データリクエスト中のストア対象データと各特殊データとのデータパターンの同一性を判定するための比較回路群と、データパターンが同一であることを示す信号を出力する比較回路に対応する圧縮パターンを選択出力する選択回路とを含む構成によって実現されることを特徴とする請求項３記載のストア命令実行制御方式。
【請求項５】
データパターン認識＆データ生成回路が、特殊データストア命令である転送データリクエスト中の圧縮パターンを復号するために当該圧縮パターンのビットパターンの判別を行うデコーダと、前記デコーダの判別結果に基づいて復号結果のデータパターンを選択出力する選択回路とを含む構成によって実現されることを特徴とする請求項３または請求項４記載のストア命令実行制御方式。
【請求項６】
特殊データストア命令識別ビットを有するパケットとストア対象データのデータパターンを圧縮した圧縮パターンを示すＰＴＮフィールドを有するパケットとを持つ３パケット構成の特殊データストア命令と、８バイトのストア対象データを有する２つのパケットを持つ４パケット構成の特殊データストア命令以外のストア命令とが採用されることを特徴とする請求項１，請求項２，請求項３，請求項４，または請求項５記載のストア命令実行制御方式。
【請求項７】
特殊データのデータパターンとして１６進数のＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦ，００００００００００００００００，７ＦＦ０００００００００００００，７ＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦ，ＦＦＦＦＦＦＦＦ００００００００，７Ｆ８０００００００００００００，および７ＦＢＦＦＦＦＦ００００００００が採用され、それらの各々に対する圧縮パターンとして２進数の０００１，００１０，００１１，０１００，０１０１，０１１０，および０１１１がそれぞれ割り当てられることを特徴とする請求項６記載のストア命令実行制御方式。
【請求項８】
特殊データのデータパターンとして１６進数のＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦ，００００００００００００００００，７ＦＦ０００００００００００００，７ＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦ，ＦＦＦＦＦＦＦＦ００００００００，７Ｆ８０００００００００００００，７ＦＢＦＦＦＦＦ００００００００，００００００００ＦＦＦＦＦＦＦＦ，００００ＦＦＦＦＦＦＦＦ００００，およびＦＦＦＦ００００００００ＦＦＦＦが採用され、それらの各々に対する圧縮パターンとして２進数の０００１，００１０，００１１，０１００，０１０１，０１１０，０１１１，１００１，１０１０，および１０１１がそれぞれ割り当てられることを特徴とする請求項６記載のストア命令実行制御方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプロセッサと複数のメモリとからなる並列コンピュータシステムであり、プロセッサからメモリへの情報の転送を行う際にパケット分割してその転送を行うコンピュータシステムにおいて、ストア命令（狭義のストア命令以外のストア系命令を含む）の実行を制御するストア命令実行制御方式に関する。
【０００２】
【従来の技術】
最初に、従来の技術における転送データリクエスト（ロード命令（狭義のロード命令以外のロード系命令を含む）やストア命令）の一般的なパケット構成について説明する。
【０００３】
図１２および図１３は、従来の技術における転送データリクエストのパケット構成を示す図である。図１２がストア命令のパケット構成を示す図であり、図１３がロード命令のパケット構成を示す図である。
【０００４】
以下に、図１２および図１３における各フィールドの意味を示す。
【０００５】
Ｖ（第１パケット（１‘ｓｔＰａｃｋｅｔ）のビット０）は、転送データリクエストのＶビットであり、本ビットが“１”の場合にはリクエストが有効であることを示す。
【０００６】
第１パケットのビット１は、転送データリクエストがストア命令であるかロード命令であるかを示すビットである。
【０００７】
ストア命令の場合（第１パケットのビット１が“０”の場合）には、ストア対象データが必要なため、パケット数が多くなっている。ストア対象データは、本フォーマットの場合に、第３パケット（３’ｒｄＰａｃｋｅｔ）と第４パケット（４‘ｔｈＰａｃｋｅｔ）とに割り当てられている（それぞれ４バイト（Ｂ）のデータがストア対象データとして転送される）。
【０００８】
第１パケット中の上位アドレス（ＡｄｄｒｅｓｓＵｐｐｅｒ）および第２パケット中の下位アドレス（ＡｄｄｒｅｓｓＬｏｗｅｒ）のフィールドは、ストアするアドレスを示すフィールドである（後述するロード命令の場合には、これらのフィールドはロードするアドレスを示すこととなる）。
【０００９】
Ｚｏｎｅフィールド（第２パケット（２‘ｎｄＰａｃｋｅｔ）のビット０〜７）は、ＲＭＷ（Ｒｅａｄ  Ｍｏｄｉｆｙ  Ｗｒｉｔｅ）時の対応バイト位置を示すビット群である。ＲＭＷ時には、対応するＺｏｎｅビットが“１”の点灯しているバイトのみについて操作（ＯＲやＡＮＤ）が行われる。
【００１０】
Ｉ（第２パケットのビット８）は、例外ビットである。本ビットによって「リクエストにおいて例外が発生していること」が示されている場合には、メモリ側では動作が行われない（リードおよびライトの両方の動作が行われない）。
【００１１】
Ｅ（第２パケットのビット９）は、例外検出を行うか否かを示すビットである。本ビットが“１”の場合には当該リクエストに対して例外検出を行わないことを示し、本ビットが“０”の場合には当該リクエストに対して例外検出を行うことを示す。
【００１２】
ＥＬＥ（ＥＬＥｅｍｅｎｔ）フィールド（第２パケットのビット１０〜１８）は、転送データリクエストに対して付加されるリクエストの認識番号を示すフィールドである。この認識番号は、プロセッサ側で１つのリクエストに対して１つの番号をとり、メモリに転送される。メモリ側では、本認識番号（ＥＬＥ番号）が処理終了時にプロセッサに対して返送される。プロセッサは、ＥＬＥ番号を受け取ることにより、リクエストが正しく処理されたことを認識し、ＥＬＥ番号を開放する。当該ＥＬＥ番号は、開放されることにより、再利用が可能となる。
【００１３】
ロード命令の場合には、第１パケットのビット１が“１”であることと、パケット構成が２パケットからなる構成（ストア対象データのための第３パケットおよび第４パケットが存在しない構成）となっていることと以外は、上記のストア命令の場合と同じである。
【００１４】
従来のストア命令実行制御方式においては、転送データリクエストのパケット構成として上記のようなパケット構成が採用されており、プロセッサとメモリとの間の通信では規定のパケット数で転送が行われ、特殊データ（浮動小数点フォーマットにおける特殊数等）のストア命令に対して、パケット数の変更（ストア対象データの圧縮）のような考慮は行われていなかった。
【００１５】
なお、従来においても、転送対象のデータの圧縮を考慮する技術は存在していた（例えば、特許文献１および特許文献２参照）。
【００１６】
しかしながら、このような従来の技術は、図１中のデータパターン認識回路１０１やデータパターン認識＆データ生成回路２０１等の本願発明に特有の構成要素を有しておらず、本願発明とは明確に異なるものである。
【００１７】
具体的には、先に引用した特許文献１および特許文献２に記載された発明と本願発明のストア命令実行制御方式との差異は、以下のような点にある。
【００１８】
特許文献１記載の発明は、キャッシュへのデータ登録の際に、固定データパターンＡＬＬ０やＡＬＬ１の場合に、キャッシュへの登録を行わず、アドレスキャッシュ部にフラグを立てることにより、キャッシュメモリの使用効率を高めることが目的であり、本願発明とは目的（その目的に起因する構成）が異なる。また、当該公報記載のものは、データの圧縮パターンもＡＬＬ０とＡＬＬ１とだけであり、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）浮動小数点フォーマットにおける特殊数等には対応していない（対応させるとビット数が増える）。
【００１９】
特許文献２記載の発明は、マルチプロセッサ構成でのバスでのデータ転送において通常のプロセッサと同等な能力を持つプロセッサをＤＭＡコントローラとして持ち、当該ＤＭＡコントローラを使用して転送データの圧縮伸張を行う技術であり、本願発明とは構成が異なる。本願発明では、少ないハードウェア量でデータバスへの負荷を減らすことができる。
【００２０】
【特許文献１】
特開２０００−２８５０１９号公報（第３−４頁）
【００２１】
【特許文献２】
特開２００１−１１７８９３号公報（第４頁）
【００２２】
【発明が解決しようとする課題】
上述した従来の技術では、ストア命令の実行に際して、ストア対象データが特殊データである場合にパケット構成を変更するといった考慮が行われておらず、プロセッサとメモリとの間の通信において規定のパケット数で転送が行われているので、ストア動作の時間はデータの長さが決まってしまえば、一定となっていた。したがって、従来の技術においては、スループット等のストア性能を向上させる上で、パケット構成に基づく限界が存在するという問題点があった。
【００２３】
本発明の目的は、上述の点に鑑み、ストア対象データのデータパターンが特定のデータパターンの際には、ストア対象データを圧縮して転送対象のパケット数を減らすことにより、ストア性能（スループット等）を向上させることができるストア命令実行制御方式を提供することにある。
【００２４】
【課題を解決するための手段】
本発明のストア命令実行制御方式は、複数のプロセッサと複数のメモリとからなる並列コンピュータシステムにおいて、ストア命令である転送データリクエストの送信時に、ストア対象データのデータパターンが特殊データのデータパターンに該当するか否かを判定し、特殊データのデータパターンである場合に、どの特殊データのデータパターンに該当するかを判断し、その判断結果に基づき当該ストア対象データに対応する圧縮パターンを送出するプロセッサ内のデータパターン認識回路と、前記データパターン認識回路から送られてきた圧縮パターンに基づいてストア対象データが特殊データであるか否かを判定し、その判定結果が「ストア対象データが特殊データである」の場合に、特殊データストア命令識別ビットに特殊データストア命令であることを示す情報（例えば、図５中の第１パケットのビット３２における“１”）を有し、前記データパターン認識回路から送付されてきた圧縮パターンを保持し、特殊データストア命令以外のストア命令よりもパケット数が少ないパケット構成の転送データリクエストをメモリ側に出力（送信）するプロセッサ内のリクエスト出力部と、プロセッサ側からストア命令である転送データリクエストを受信すると、その転送データリクエスト中の特殊データストア命令識別ビットの内容に基づいてその転送データリクエストが特殊データストア命令であるか否かを判定し、その判定結果が「転送データリクエストが特殊データストア命令である」の場合にはその転送データリクエスト中の圧縮パターンの内容を判別し、その判別結果に基づいて当該圧縮パターンを復号したストア対象データのデータパターンを生成し出力するメモリ内のデータパターン認識＆データ生成回路と、プロセッサ側からストア命令である転送データリクエストを受信すると、その転送データリクエスト中の特殊データストア命令識別ビットの内容に基づいてその転送データリクエストが特殊データストア命令であるか否かを判定し、その判定結果が「転送データリクエストが特殊データストア命令である」の場合には前記データパターン認識＆データ生成回路により出力された圧縮パターンの復号結果をストア対象データとして当該転送データリクエストを受け取るメモリ内のリクエスト受信部とを有する。
【００２５】
ここで、上記のデータパターン認識回路は、ストア命令である転送データリクエスト中のストア対象データと各特殊データとのデータパターンの同一性を判定するための比較回路群と、データパターンが同一であることを示す信号を出力する比較回路（前記比較回路群を構成する比較回路）に対応する圧縮パターン（各特殊データに対応する各圧縮パターンおよび「特殊データに該当しないこと」を示す圧縮パターン）を選択出力する選択回路とを含む構成によって実現することが可能である。
【００２６】
また、上記のデータパターン認識＆データ生成回路は、特殊データストア命令である転送データリクエスト中の圧縮パターンを復号（伸張）するために当該圧縮パターンのビットパターンの判別を行うデコーダと、前記デコーダの判別結果に基づいて復号結果のデータパターンを選択出力する選択回路とを含む構成によって実現することが可能である。
【００２７】
なお、本発明のストア命令実行制御方式は、より一般的には、複数のプロセッサと複数のメモリとからなる並列コンピュータシステムにおいて（通常、浮動小数点フォーマットにおける特殊数を特殊データとし、浮動小数点演算を行う前記プロセッサを備えるコンピュータシステムに適用されることが、想定される）、前記メモリに対してストア（狭義のストア以外のストア系の動作を含む）を行う際に、ストア対象データのデータパターンを判断し、ストア対象データが特殊データである場合に、そのデータパターンを圧縮し、その特殊データのストア命令に関するパケット構成を特殊データ以外のデータのストア命令に関するパケット構成とは変化させる（パケット数の減少等を行う）前記プロセッサと、前記プロセッサから送信されてくるストア命令中のストア対象データを示すパターンが圧縮されたものである場合に、そのパターンを復号（伸張）した上で当該ストア命令を受信する前記メモリとを有すると表現することができる。
【００２８】
【発明の実施の形態】
次に、本発明について図面を参照して詳細に説明する。
【００２９】
（１）  第１の実施の形態
【００３０】
図１は、本発明の第１の実施の形態に係るストア命令実行制御方式の構成を示すブロック図である。
【００３１】
図１に示すように、本実施の形態に係るストア命令実行制御方式は、複数のプロセッサ１００（ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）０，ＣＰＵ１，…，ＣＰＵｎ（ｎは正整数））と複数のメモリ２００（ＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）０，ＭＭＵ１，…，ＭＭＵｍ（ｍは正整数）といったメモリ管理部を含む）とからなる並列コンピュータシステムであり、プロセッサ１００からメモリ２００へのデータ（命令を含む）の転送が行われる際にデータがパケット分割されて転送されるコンピュータシステムにおいて実現される。
【００３２】
図１を参照すると、本実施の形態に係るストア命令実行制御方式は、プロセッサ１００内のデータパターン認識回路１０１と、リクエスト出力部１０２と、メモリ２００内のデータパターン認識＆データ生成回路２０１と、リクエスト受信部２０２とを含んで構成されている。
【００３３】
本実施の形態、ひいては本発明では、プロセッサ１００側において、リクエスト出力部１０２が、データパターン認識回路１０１の出力に基づき、転送データリクエスト（ストア命令）のパケット構成をストア対象データの内容によって変化させることを特徴としている。また、メモリ２００側において、リクエスト受信部２０２による転送データリクエストの受信の前段で、特殊データストア命令のストア対象データの生成（圧縮パターンの伸張（復号））を行うデータパターン認識＆データ生成回路２０１を設けることを特徴としている。
【００３４】
図２は、本実施の形態に係るストア命令実行制御方式のプロセッサ１００側における処理を示す流れ図である。この処理は、ストア対象データ受け取りステップＡ１と、データパターン判断ステップＡ２と、圧縮パターン送付ステップＡ３と、ストア対象データ判定ステップＡ４と、３パケット構成転送データリクエスト出力ステップＡ５と、４パケット構成転送データリクエスト出力ステップＡ６とからなる。
【００３５】
図３は、本実施の形態に係るストア命令実行制御方式のメモリ２００側における処理（データパターン認識＆データ生成回路２０１の処理）を示す流れ図である。この処理は、転送データリクエスト受信ステップＢ１１と、特殊データストア命令該当判定ステップＢ１２と、圧縮パターン内容判別ステップＢ１３と、８バイトデータパターン生成・出力ステップＢ１４とからなる。
【００３６】
図４は、本実施の形態に係るストア命令実行制御方式のメモリ２００側における処理（リクエスト受信部２０２の処理）を示す流れ図である。この処理は、転送データリクエスト受信ステップＢ２１と、特殊データストア命令該当判定ステップＢ２２と、圧縮パターン復号結果包含転送データリクエスト受け取りステップＢ２３と、受信転送データリクエスト受け取りステップＢ２４とからなる。
【００３７】
図５は、本実施の形態に係るストア命令実行制御方式で採用される特殊データストア命令のパケット構成（プロセッサ１００とメモリ２００との間の通信フォーマット）を示す図である。
【００３８】
なお、従来の技術に関して言及した図１２および図１３は、本実施の形態に係るストア命令実行制御方式における特殊データ以外のデータのストア命令のパケット構成およびロード命令のパケット構成を説明するための図でもある。ただし、本実施の形態においては、従来の技術とは異なり、図４のパケット構成と同様のビット３２が存在する（第１パケットのビット３２に「特殊データのストア命令ではないことを示す“０”が設定される）。
【００３９】
図６は、データパターン認識回路１０１の詳細な回路構成の具体例を示す図である。
【００４０】
データパターン認識回路１０１は、ストア命令である転送データリクエスト中のストア対象データと各特殊データとのデータパターンの同一性を判定するための比較回路群１０１１と、データパターンが同一であることを示す信号を出力する比較回路（比較回路群１０１１を構成する比較回路）に対応する４ビット（ｂ）の圧縮パターン（各特殊データに対応する各圧縮パターンおよび「特殊データに該当しないこと」を示す圧縮パターン（本実施の形態では００００（２進）））を選択出力する選択回路１０１２とを含んで構成されている。
【００４１】
図７は、データパターン認識＆データ生成回路２０１の詳細な回路構成（リクエスト受信部２０２内の選択回路２０２１を含む）の具体例を示す図である。
【００４２】
データパターン認識＆データ生成回路２０１は、特殊データストア命令である転送データリクエスト中のＰＴＮフィールドの４ビットの圧縮パターンを８バイト（Ｂ）のデータパターンに復号（伸張）するためにＰＴＮフィールド中のビットパターンの判別を行うデコーダ２０１１と、デコーダ２０１１の判別結果に基づいて復号結果の８バイトのデータパターンを選択出力する選択回路２０１２とを含んで構成されている。
【００４３】
また、リクエスト受信部２０２は、転送データリクエストの第１パケットの３２ビットが“１”である場合（パケット構成が３パケット構成である場合）にデータパターン認識＆データ生成回路２０１から出力されるデータをリクエスト対象のデータ（ストア対象データ）として選択する選択回路２０２１を含んで構成されている。
【００４４】
図８は、プロセッサ１００内のデータパターン認識回路１０１およびリクエスト出力部１０２にストア対象データを供給する部分（ストア対象データ供給部）の回路構成の一例を示す図である。
【００４５】
図９および図１０は、本実施の形態に係るストア命令実行制御方式の具体的な動作および効果を説明するための図である。
【００４６】
次に、上記のように構成された本実施の形態に係るストア命令実行制御方式の全体の動作について詳細に説明する。
【００４７】
第１に、図５を参照して、本発明の特徴の１つである特殊データストア命令のパケット構成について説明する。
【００４８】
本実施の形態では、特殊データのストア動作時におけるストア命令（特殊データストア命令）のパケット構成が、従来の技術における４パケット構成（図１２参照）から３パケット構成に変更されている。３パケット構成にするために、Ｉ／Ｆ（インタフェース）用のビットとして１パケット中のビット数を１ビットだけ増加させている。そのビットが、図５におけるビット３２である。図５において、第１パケット（１‘ｓｔＰａｃｋｅｔ）のビット３２（特殊データストア命令識別ビット）の“１”が、ストア対象データ（ストアするデータ）が特殊フォーマットのデータ（特殊データ）であることを示している。そして、その特殊データのデータパターンがどのようなパターンであるかは、第３パケット（３‘ｒｄＰａｃｋｅｔ）中のＰＴＮ（ＰａＴｔｅｒＮ）フィールドの内容（４ビットのビットパターン）によって示されている。なお、上記以外の第１パケットおよび第２パケット（２‘ｎｄＰａｃｋｅｔ）中の各フィールドの内容は、図１２中の各フィールドの内容と同様である。
【００４９】
ここで、特殊データのデータパターンとしてどのようなデータパターンを採用するかということや、各特殊データのデータパターンをどのような圧縮パターン（ＰＴＮフィールド中の４ビットパターン）に割り当てるかということは、例えば、以下のように規定することができる。以下では、データの幅を６４ビットとしたときを考えている。
【００５０】
ａ．ＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦ（１６進（ｈｅｘ））というデータパターンを、ＰＴＮフィールドにおけるビットパターン（圧縮パターン）の０００１（２進（ｂｉｎ））に割り当てる。
【００５１】
ｂ．００００００００００００００００（１６進）というデータパターンを、ＰＴＮフィールドにおけるビットパターンの００１０（２進）に割り当てる。
【００５２】
ｃ．７ＦＦ０００００００００００００（１６進）というデータパターンを、ＰＴＮフィールドにおけるビットパターンの００１１（２進）に割り当てる。
【００５３】
ｄ．７ＦＦＦＦＦＦＦＦＦＦＦＦＦＦＦ（１６進）というデータパターンを、ＰＴＮフィールドにおけるビットパターンの０１００（２進）に割り当てる。
【００５４】
ここで、ｃおよびｄの特殊データはＩＥＥＥフォーマットにおける浮動小数点数表示における無限大およびＮＡＮ（非数）を表しており、浮動小数点演算においては出てくる可能性が高いため、特殊データとして定められている。
【００５５】
また、上記のａ〜ｄの４つのデータパターンは６４ビットデータ（浮動小数点データでいうところの倍精度）の数字を示しているが、単精度の数字の特殊数についても、以下のｅ〜ｇのようなデータパターンが特殊データのデータパターンとして定められる。
【００５６】
ｅ．ＦＦＦＦＦＦＦＦ００００００００（１６進）というデータパターンを、ＰＴＮフィールドにおけるビットパターンの０１０１（２進）に割り当てる。
【００５７】
ｆ．７Ｆ８０００００００００００００（１６進）というデータパターンを、ＰＴＮフィールドにおけるビットパターンの０１１０（２進）に割り当てる。
【００５８】
ｇ．７ＦＢＦＦＦＦＦ００００００００（１６進）というデータパターンを、ＰＴＮフィールドにおけるビットパターンの０１１１（２進）に割り当てる。
【００５９】
ここで、ｆおよびｇの特殊データは、浮動小数点表示の単精度における無限大およびＮＡＮを表している。
【００６０】
また、ストア対象データが４バイト単位であること（４バイト単位のインタフェースとなっていること）に鑑み、「時系列でみて連続する２つのクロックタイミングにおいて、３２ビット（４バイト）のインタフェースが全て同時に反転し、電流がＭａｘとなる動作」を少なくするという観点から、以下のｈ〜ｊに示すようなデータパターンも特殊データのデータパターンとして定義することが考えられる。このような特殊データのデータパターンを定義し、当該データパターンを流さないようにすることにより、電流の変化量を抑えることができ、ノイズの低減を期待することができる。
【００６１】
ｈ．００００００００ＦＦＦＦＦＦＦＦ（１６進）というデータパターンを、ＰＴＮフィールドにおけるビットパターンの１００１（２進）に割り当てる。
【００６２】
ｉ．００００ＦＦＦＦＦＦＦＦ００００（１６進）というデータパターンを、ＰＴＮフィールドにおけるビットパターンの１０１０（２進）に割り当てる。
【００６３】
ｊ．ＦＦＦＦ００００００００ＦＦＦＦ（１６進）というデータパターンを、ＰＴＮフィールドにおけるビットパターンの１０１１（２進）に割り当てる。
【００６４】
第２に、ストア動作実施時（ストア命令の実行時）におけるプロセッサ１００側の動作について説明する（図２参照）。
【００６５】
本実施の形態では、図８に示すような回路構成におけるソフトウェアビジブルレジスタ（ＳｏｆｔｗａｒｅＶｉｓｉｂｌｅＲｅｇ）からの出力として、プロセッサ１００内のデータパターン認識回路１０１およびリクエスト出力部１０２に対してストア命令である転送データリクエストのストア対象データ（８バイトのデータパターン）が供給される。
【００６６】
データパターン認識回路１０１は、ストア対象データを受け取ると（ステップＡ１）、そのストア対象データのデータパターンを判断する（ステップＡ２）。すなわち、そのデータパターンが特殊データのデータパターンに該当するか否かを判定した上で、特殊データのデータパターンである場合には、どの特殊データのデータパターンに該当するかを判断する。
【００６７】
本実施の形態では、図６中の比較回路群１０１１の各比較回路によって、その転送データリクエスト中のストア対象データのデータパターンと、上記のａ〜ｊに示す各特殊データのデータパターンとの同一性の判定が行われる。
【００６８】
さらに、データパターン認識回路１０１は、ステップＡ２の判断結果に基づき、当該ストア対象データに対応する圧縮パターンをリクエスト出力部１０２に送付する（ステップＡ３）。
【００６９】
本実施の形態では、図６中の選択回路１０１２によって、比較回路群１０１１の比較結果に基づく所定の圧縮パターンが、リクエスト出力部１０２に対して送付される。ここで、「所定の圧縮パターン」とは、先に述べたａ〜ｊの特殊データのデータパターンに割り当てられている圧縮パターンか、特殊データのデータパターン以外のデータパターンに対する圧縮パターン（ここでは、００００（２進））を意味する。
【００７０】
リクエスト出力部１０２は、データパターン認識回路１０１から送られてきた圧縮パターンに基づいて、ストア対象データが特殊データであるか否か（その圧縮パターンが００００（２進）以外であるかどうか）を判定する（ステップＡ４）。
【００７１】
リクエスト出力部１０２は、ステップＡ４で「ストア対象データが特殊データである」と判定した場合には、第１パケットのビット３２が“１”でありデータパターン認識回路１０１から送付されてきた圧縮パターンを第３パケット中のＰＴＮフィールドに有する３パケット構成の転送データリクエストをメモリ２００側に出力（送信）する（ステップＡ５）。
【００７２】
一方、リクエスト出力部１０２は、ステップＡ４で「ストア対象データが特殊データではない」と判定した場合には、第１パケットのビット３２が“０”であり８バイトのストア対象データのデータパターンを第３パケットおよび第４パケットに有する４パケット構成の転送データリクエストをメモリ２００側に出力（送信）する（ステップＡ６）。
【００７３】
第３に、ストア動作実施時（ストア命令の実行時）におけるメモリ２００側の動作について説明する（図３および図４参照）。
【００７４】
メモリ２００内のデータパターン認識＆データ生成回路２０１は、プロセッサ１００側からストア命令である転送データリクエストを受信すると（ステップＢ１１）、その転送データリクエスト中の第１パケットのビット３２の内容（“１”であるか“０”であるか）に基づいて、その転送データリクエストが特殊データストア命令であるか否かを判定する（ステップＢ１２）。
【００７５】
本実施の形態では、図７中のデコーダ２０１１によって、転送データリクエスト中の第１パケットのビット３２の内容の判定が行われる。
【００７６】
データパターン認識＆データ生成回路２０１は、ステップＢ１２で「転送データリクエストが特殊データストア命令である」と判定した場合には、その転送データリクエスト中のＰＴＮフィールドの４ビットの圧縮パターンの内容を判別する（ステップＢ１３）。この判別は、ＰＴＮフィールドの４ビットの圧縮パターンを８バイトのデータパターンに復号するために行われる。
【００７７】
本実施の形態では、図７中のデコーダ２０１１によって、転送データリクエスト中のＰＴＮフィールドのビットパターンの判別が行われる。
【００７８】
さらに、データパターン認識＆データ生成回路２０１は、ステップＢ１３の判別結果に基づいて、８バイトのデータパターン（当該４ビットの圧縮パターンに対応する８バイトのデータパターン）を生成し出力する（ステップＢ１４）。
【００７９】
本実施の形態では、図７中の選択回路２０１２によって、デコーダ２０１１の判別結果に基づき、復号結果の８バイトのデータパターン（当該ＰＴＮフィールド中の４ビットの圧縮パターンに対応する特殊データのデータパターン）が選択出力される。
【００８０】
メモリ２００内のリクエスト受信部２０２は、プロセッサ１００側からストア命令である転送データリクエストを受信すると（ステップＢ２１）、その転送データリクエスト中の第１パケットのビット３２の内容に基づいて、その転送データリクエストが特殊データストア命令であるか否かを判定する（ステップＢ２２）。
【００８１】
本実施の形態では、図７中の選択回路２０２１によって、転送データリクエスト中の第１パケットのビット３２の内容の判定が行われる。
【００８２】
リクエスト受信部２０２は、ステップＢ２２で「転送データリクエストが特殊データストア命令である」と判定した場合には、データパターン認識＆データ生成回路２０１の出力（圧縮パターンの復号結果）をストア対象データとして、当該転送データリクエストを受け取る（ステップＢ２３）。
【００８３】
一方、リクエスト受信部２０２は、ステップＢ２２で「転送データリクエストが特殊データストア命令ではない」と判定した場合には、ステップＢ２１で受信した転送データリクエストをそのまま受け取る（ステップＢ２４）。
【００８４】
本実施の形態では、上述のように、第１パケット（１‘ｓｔパケット）のビット３２が“１”である場合には、通信ストア時の転送データリクエスト（通信パケット）が３パケット構成となっている。したがって、本実施の形態によると、転送データリクエストが特殊データストア命令の場合における転送タイミングが、図１０に示したようなタイミングとなる（図１０中の１−Ｐ１〜１−Ｐ３および３−Ｐ１〜３−Ｐ３参照）。これによって、従来の技術による転送タイミング（図９参照。特に、１−Ｐ１〜１−Ｐ４および３−Ｐ１〜３−Ｐ４参照）よりも、転送にかかるクロック数が減ることととなる。すなわち、スループットの向上を実現することができる。
【００８５】
（２）  第２の実施の形態
【００８６】
上記の第１の実施の形態では、特殊データ（特殊データストア命令のストア対象データ）のデータパターンとして、ａ〜ｊに示すようなデータパターンが採用される例を示した。
【００８７】
しかし、特殊データのデータパターンの種類は、ａ〜ｊの１０種には限られず、増減させることも可能である。
【００８８】
第１に、第１の実施の形態に対して特殊データのデータパターンの種類を減少させる場合としては、最も必要と考えられるａ〜ｇのデータパターンだけを、特殊データのデータパターンとして採用することが考えられる。
【００８９】
なお、この場合には、第３パケット中のＰＴＮフィールド（図５参照）におけるビット数を３に減少させることが可能になる。
【００９０】
第２に、第１の実施の形態に対して特殊データのデータパターンの種類を増加させる場合としては、ａ〜ｊのデータパターンに、さらに、他の特殊データのデータパターンを加えることが可能である。
【００９１】
このとき、第３パケット中のＰＴＮフィールドにおけるビット数は増加することが可能である（図５に示した４ビットというビット数に限定されない）ので、第１の実施の形態で示したＰＴＮフィールドにおけるビット数の４によってデータパターン数が制限されるということもない。
【００９２】
ここで、「他の特殊データのデータパターン」としては、例えば、電送線路上で時系列でみたときに連続する２つのタイミングで反転するデータパターンを回避するという観点から、以下のｋおよびｌに示すようなデータパターンを考えることができる。
【００９３】
ｋ．００ＦＦ００ＦＦＦＦ００ＦＦ００（１６進）という８バイトのデータパターン
【００９４】
ｌ．ＡＡＡＡＡＡＡＡ５５５５５５５５（１６進）という８バイトのデータパターン
【００９５】
上記のｋの例では、各４バイトのデータは、次のようなタイミング（ｔｉｍｉｎｇ１およびｔｉｍｉｎｇ２）になり、連続する２つのクロックタイミングで電送線路上のパターンが反転することとなる。
【００９６】
ｔｉｍｉｎｇ１  ００ＦＦ００ＦＦ
ｔｉｍｉｎｇ２  ＦＦ００ＦＦ００
【００９７】
また、上記のｌの例では、各４バイトのデータは、次のようなタイミング（ｔｉｍｉｎｇ１およびｔｉｍｉｎｇ２）になり、連続する２つのクロックタイミングで電送線路上のパターンが反転することとなる。
【００９８】
ｔｉｍｉｎｇ１  ＡＡＡＡＡＡＡＡ
ｔｉｍｉｎｇ２  ５５５５５５５５
【００９９】
このような考え方で、特殊データのデータパターンは、さらに増やすことが可能である。
【０１００】
（３）  第３の実施の形態
【０１０１】
上記の第１の実施の形態では、プロセッサ１００内のデータパターン認識回路１０１およびリクエスト出力部１０２に対して、図８に示すような回路構成のストア対象データ供給部によって、ストア命令である転送データリクエストのストア対象データ（８バイトのデータパターン）が供給されていた。
【０１０２】
しかし、ストア対象データ供給部は、このような回路構成のものに限定されることはない。例えば、ストア対象データ供給部を、図１１に示すような回路構成とすることも可能である。
【０１０３】
すなわち、図１１は、プロセッサ１００内のデータパターン認識回路１０１およびリクエスト出力部１０２にストア対象データを供給する部分（ストア対象データ供給部）の回路構成の他の例を示す図である。この場合には、データパターン認識回路１０１がソフトウェアビジブルレジスタ（ＳｏｆｔｗａｒｅＶｉｓｉｂｌｅＲｅｇ）の前段に設置されることになる。
【０１０４】
以下に、第１の実施の形態（図８に示すストア対象データ供給部が採用される実施の形態）と第３の実施の形態（図１１に示すストア対象データ供給部が採用される実施の形態）との差異について、説明を加える。
【０１０５】
図８および図１１には、浮動小数点演算器と演算結果を書き込むソフトウェアビジブルレジスタと本発明に関するリクエスト出力装置（データパターン認識回路１０１およびリクエスト出力部１０２）とを組み合わせた回路構成が示されている。
【０１０６】
転送データリクエストに載せるデータ（ストア対象データ）は、ソフトウェアビジブルレジスタから読み出される。
【０１０７】
ここで、もともと、浮動小数点フォーマットの特殊数フォーマットは、演算器間の差し替え（ある演算器の演算結果をソフトウェアビジブルレジスタに書き込まずに直接演算器の入力にすること）で使用されている。図８において、最初にＦｌｏａｔ０にて演算が行われる。Ｆｌｏａｔ０の演算結果がＦｌｏａｔ０Ｒに入力され、その後、ソフトウェアビジブルレジスタに書き込まれる。その次のクロックタイミングで、Ｆｌｏａｔ１にてＦｌｏａｔ０の先ほどの演算結果がオペランドとして入力される場合、ソフトウェアビジブルレジスタからの読み出しは行われず、Ｆｌｏａｔ０Ｒから直接Ｆｌｏａｔ１の入力データとして差し替えられる。この際、特殊数に関しては特定のフォーマットを認識することにより、演算器の入力データが再生されている。
【０１０８】
図１１に示す回路構成は、このような「浮動小数点フォーマットの特殊数フォーマットが演算器間の差し替えで使用されていること」に注目して、演算器における特殊フォーマットをメモリ２００側に送信される転送データリクエストにも応用した例を示すものである。
【０１０９】
図１１に示す回路構成では、データパターン認識回路１０１がソフトウェアビジブルレジスタの前段に設置され、特殊数を示す４ビットパターンがソフトウェアビジブルレジスタ内のデータに付加されている（この４ビットパターンは図４中のＰＴＮフィールドにおける圧縮パターンと同様である）。これにより、浮動小数点演算結果の特殊数のフィールドがソフトウェアビジブルレジスタに同時に書き込まれる。
【０１１０】
リクエスト出力部１０２は、転送データリクエストをメモリ２００に転送する際に、このようなソフトウェアビジブルレジスタ内のデータを入力して、そのデータをストア対象データとして、メモリ２００側に転送データリクエストを送信・出力する（ソフトウェアビジブルレジスタの中にある特殊数フォーマットも同時に転送することとなる）。
【０１１１】
（４）  その他の実施の形態
【０１１２】
さらに、上記の第１の実施の形態に対しては、以下のａ〜ｃに示すようなことが言える。すなわち、下記の限定がない変形形態（拡張形態）を考えることができる。
【０１１３】
ａ．ストア対象データの内容が、浮動小数点フォーマットのデータに限定されない。
【０１１４】
ｂ．パケット構成が、図５や図１２に示すものに限定されない。
【０１１５】
ｃ．先にも言及したように、ＰＴＮフィールドにおけるビット数が、４に限定されない。
【０１１６】
【発明の効果】
以上説明したように、本発明によると、ストア対象データのデータパターンを判断し、特定のデータパターンの際にはデータを圧縮してパケット数を減らすことにより、ストア性能（スループットの向上等）を実現することができるという効果が生じる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るストア命令実行制御方式の構成を示すブロック図である。
【図２】図１に示すストア命令実行制御方式のプロセッサ側の処理を示す流れ図である。
【図３】図１に示すストア命令実行制御方式のメモリ側の処理を示す流れ図である。
【図４】図１に示すストア命令実行制御方式のメモリ側の処理を示す流れ図である。
【図５】図１に示すストア命令実行制御方式で採用される特殊データストア命令のパケット構成を示す図である。
【図６】図１中のデータパターン認識回路の詳細な回路構成の具体例を示す図である。
【図７】図１中のデータパターン認識＆データ生成回路の詳細な回路構成（リクエスト受信部内の選択回路を含む）の具体例を示す図である。
【図８】図１中のプロセッサ内のデータパターン認識回路およびリクエスト出力部にストア対象データを供給する部分（ストア対象データ供給部）の構成の一例を示す図である。
【図９】図１に示すストア命令実行制御方式の具体的な動作および効果を説明するための図である。
【図１０】図１に示すストア命令実行制御方式の具体的な動作および効果を説明するための図である。
【図１１】図１中のプロセッサ内のデータパターン認識回路およびリクエスト出力部にストア対象データを供給する部分（ストア対象データ供給部）の構成の他の例を示す図である。
【図１２】従来の技術におけるストア命令のパケット構成を示す図である。
【図１３】従来の技術におけるロード命令のパケット構成を示す図である。
【符号の説明】
１００  プロセッサ
１０１  データパターン認識回路
１０２  リクエスト出力部
２００  メモリ
２０１  データパターン認識＆データ生成回路
２０２  リクエスト受信部
１０１１  比較回路群
１０１２，２０１２，２０２１  選択回路
２０１１  デコーダ
【図１】
2004206228.tif 000003
【図２】
2004206228.tif 000004
【図３】
2004206228.tif 000005
【図４】
2004206228.tif 000006
【図５】
2004206228.tif 000007
【図６】
2004206228.tif 000008
【図７】
2004206228.tif 000009
【図８】
2004206228.tif 000010
【図９】
2004206228.tif 000011
【図１０】
2004206228.tif 000012
【図１１】
2004206228.tif 000013
【図１２】
2004206228.tif 000014
【図１３】
2004206228.tif 000015