(57)【要約】【課題】プロセッサとメモリとのデータ転送を効率化する演算処理装置、情報処理装置、及び、情報処理装置の制御方法を提供する。【解決手段】メモリに送出するデータを伴う命令を発行する演算処理部と、命令が伴うデータの冗長性が所定値以上であるかを判定する判定部と、データの冗長性が所定値以上である場合、命令のメモリへの転送開始までの待ち時間と、データの圧縮にかかる圧縮時間とに基づいて、データを圧縮するかを判定し、圧縮すると判定した場合にデータを圧縮する圧縮部と、圧縮部がデータを圧縮した場合、圧縮後のデータを伴う命令を演算処理部からメモリに転送するとともに、圧縮部がデータを圧縮しない場合、データを伴う命令をメモリに転送する命令調停部と、を有する。【選択図】図８
2015103077.tif 000002
【特許請求の範囲】
【請求項１】
メモリに送出するデータを伴う命令を発行する演算処理部と、
前記命令が伴うデータの冗長性が所定値以上であるかを判定する判定部と、
前記データの冗長性が前記所定値以上である場合、前記命令の前記メモリへの転送開始までの待ち時間と、前記データの圧縮にかかる圧縮時間とに基づいて、前記データを圧縮するかを判定し、圧縮すると判定した場合に前記データを圧縮する圧縮部と、
前記圧縮部が前記データを圧縮した場合、圧縮後のデータを伴う前記命令を前記演算処理部から前記メモリに転送するとともに、前記圧縮部が前記データを圧縮しない場合、前記データを伴う前記命令を前記メモリに転送する命令調停部と、を有する演算処理装置。
【請求項２】
請求項１において、
前記圧縮部は、前記圧縮時間が前記待ち時間以内である場合、前記データを圧縮すると判定する演算処理装置。
【請求項３】
請求項１または２において、
前記圧縮部は、さらに、前記圧縮後データの前記メモリへの送出時間と、前記データの前記メモリへの送出時間とに基づいて、前記データを圧縮するかを判定する演算処理装置。
【請求項４】
請求項３において、
前記圧縮部は、前記待ち時間と前記圧縮時間と前記送出時間とに基づいて、前記圧縮後データの第１の送出終了時と、前記データの第２の送出終了時とを算出し、前記第１の送出終了時が前記第２の送出終了時よりも早い場合、前記データを圧縮すると判定する演算処理装置。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記判定部は、前記データを所定のビット幅に区分した単位データであって、隣接する前記単位データとの一致率が基準値以上の場合、前記冗長性が前記所定値以上であると判定する演算処理装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記圧縮部が行う圧縮は、ランレングス符号化による圧縮である演算処理装置。
【請求項７】
メモリと演算処理装置とを有する情報処理装置において、
前記演算処理装置は、
メモリに送出するデータを伴う命令を発行する演算処理部と、
前記命令が伴うデータの冗長性が所定値以上であるかを判定する判定部と、
前記データの冗長性が前記所定値以上である場合、前記命令の前記メモリへの転送開始までの待ち時間と、前記データの圧縮にかかる圧縮時間とに基づいて、前記データを圧縮するかを判定し、圧縮すると判定した場合に前記データを圧縮する圧縮部と、
前記圧縮部が前記データを圧縮した場合、圧縮後のデータを伴う前記命令を前記演算処理部から前記メモリに転送するとともに、前記圧縮部が前記データを圧縮しない場合、前記データを伴う前記命令を前記メモリに転送する命令調停部と、を有する情報処理装置。
【請求項８】
メモリと演算処理装置とを有する情報処理装置の制御方法において、
前記演算処理装置が有する演算処理部が、メモリに送出するデータを伴う命令を発行し、
前記演算処理装置が有する判定部が、前記命令が伴うデータの冗長性が所定値以上であるかを判定し、
前記データの冗長性が前記所定値以上である場合、前記演算処理装置が有する圧縮部が、前記命令の前記メモリへの転送開始までの待ち時間と、前記データの圧縮にかかる圧縮時間とに基づいて、前記データを圧縮するかを判定し、圧縮すると判定した場合に前記データを圧縮し、
前記圧縮部が前記データを圧縮した場合、前記演算処理装置が有する命令調停部が、圧縮後のデータを伴う前記命令を前記演算処理部から前記メモリに転送するとともに、前記圧縮部が前記データを圧縮しない場合、前記データを伴う前記命令を前記メモリに転送する情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置、情報処理装置、及び、情報処理装置の制御方法に関する。
【背景技術】
【０００２】
メモリに対する演算処理装置の処理のスループットを向上させるために、ストア命令等のデータを圧縮してメモリに転送する技術がある。
【０００３】
例えば、ストア命令の後にフェッチ命令が続く場合を例示する。ストア命令によりストアするデータ量が多い場合、ストア命令の転送に時間がかかる。したがって、後続のフェッチ命令の転送開始までの待ち時間である遅延時間が増加することがある。そこで、演算処理装置は、ストア命令のデータを圧縮することによって、ストア命令の転送時間を短縮し、結果として後続のフェッチ命令の遅延時間を短縮する。
【０００４】
データの圧縮は、例えば、集積回路によって実現される（例えば、特許文献１〜４）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２０６２２８号公報
【特許文献２】特開平５−１８９３６０号公報
【特許文献３】特開平７−２０２９８３号公報
【特許文献４】特開平７−１６８６７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、プロセッサのクロック周波数が高い場合、１クロック内でデータを転送する必要性があることから、圧縮率の高い集積回路を導入しようとすると、ラッチが増加し回路規模が大きくなるとともに消費電力も増加する。規模が大きい回路の処理時間は長くなることから、データを圧縮することにより、データの圧縮処理の完了が、ストア命令の転送開始時に間に合わないことがある。
【０００７】
また、従来の記述によると、例えば、データの圧縮が完了した後、圧縮前後のデータのサイズを比較することによって、データの圧縮の可否が判定される。即ち、ストア命令の一連の処理において、データの圧縮後にデータの圧縮の可否判定が行われる。したがって、データの圧縮の可否判定まで時間がかかるだけでなく、データの圧縮後にデータの圧縮をしない旨の判断をした場合には、データの圧縮にかかる時間が無駄になる。これにより、プロセッサとメモリとの間のメモリバンド幅におけるデータ転送率が向上しなかった。
【０００８】
１つの側面は、本発明は、プロセッサとメモリとのデータ転送を効率化する演算処理装置、情報処理装置、及び、情報処理装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の側面は、メモリに送出するデータを伴う命令を発行する演算処理部と、前記命令が伴うデータの冗長性が所定値以上であるかを判定する判定部と、前記データの冗長性が前記所定値以上である場合、前記命令の前記メモリへの転送開始までの待ち時間と、前記データの圧縮にかかる圧縮時間とに基づいて、前記データを圧縮するかを判定し、圧縮すると判定した場合に前記データを圧縮する圧縮部と、前記圧縮部が前記データを圧縮した場合、圧縮後のデータを伴う前記命令を前記演算処理部から前記メモリに転送するとともに、前記圧縮部が前記データを圧縮しない場合、前記データを伴う前記命令を前記メモリに転送する命令調停部と、を有する。
【発明の効果】
【００１０】
第１の側面によれば、データの冗長性が所定値以上の第２の命令について、待ち時間とデータの圧縮時間とに基づいてデータを圧縮するか否か判定することで、プロセッサとメモリとのデータ転送を効率化する。
【図面の簡単な説明】
【００１１】
【図１】本実施の形態例における情報処理装置の構成の一例を示す図である。
【図２】図１に示したメモリ制御装置の構成の一例を示す図である。
【図３】図２で示したデータをメモリに送出する命令のパケットの一例を示す図である。
【図４】データの圧縮の例を説明する図である。
【図５】データの圧縮の正否判定処理の概要を説明する図である。
【図６】本実施の形態例におけるメモリ制御装置の一時記憶領域のデータの冗長性の判定処理を説明する図である。
【図７】圧縮判定フラグ生成論理回路の構成の一例を説明する図である。
【図８】本実施の形態例におけるメモリ制御装置の圧縮判定部のデータの圧縮の正否判定の処理を説明する図である。
【図９】本実施の形態例におけるデータの圧縮可能判定処理（図８の工程Ｓ３１）の具体例を説明するタイミングチャート図である。
【図１０】本実施の形態例におけるデータの圧縮可能判定処理（図８の工程Ｓ３１）の別の具体例を説明するタイミングチャート図である。
【発明を実施するための形態】
【００１２】
以下、図面にしたがって本発明の実施の形態を説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１３】
［情報処理装置］
図１は、本実施の形態例における情報処理装置１０の構成の一例を示す図である。図１の情報処理装置１０は、例えば、サーバ等のコンピュータである。
【００１４】
図１の情報処理装置１０は、例えば、演算処理装置２０とメモリ３０とを有する。また、演算処理装置２０は、例えば、ＣＰＵ（Central Processing Unit）２１とＳＲＡＭ（Static Random Access Memory）２２とメモリ制御装置２３とを有する。メモリ制御装置２３は、ＣＰＵ２１から送信された命令をメモリ３０に転送すると共に、メモリ３０から読み込んだデータをＣＰＵ２１に送信する。本実施の形態例におけるメモリ制御装置２３は、メモリ３０へのアクセスを行う命令のうち、メモリ３０へ送出するデータを伴う命令を対象として、データの圧縮の正否を判定し、判定結果に基づいてデータを圧縮する。
【００１５】
［メモリ制御装置］
図２は、図１に示したメモリ制御装置２３の構成の一例を示す図である。図２のメモリ制御装置２３は、例えば、一時記憶領域３１と、リクエスト調停部５１と、リクエスト待ち時間カウンタ５２と、パケット生成部５３と、圧縮判定部６１と、データ圧縮装置５４とを有する。
【００１６】
リクエスト調停部５１は、メモリ３０へ転送される命令（ストア命令やフェッチ命令）であって、メモリ３０への転送が完了していない１つまたは複数の命令のリクエストを調停する。リクエスト調停部５１は、メモリ３０への転送が完了していない１つまたは複数の命令をＦＩＦＯ等のキューとして保持する。
【００１７】
例えば、データ量の多いストア命令が発行された場合、データのメモリ３０への送出時間が長くなり、命令の転送に時間がかかる。例えば、データ量の多いストア命令の後続に、別のストア命令やフェッチ命令が発行される場合、リクエスト調停部５１は、後続の命令のをキューに保持し、先行の命令の転送が完了に応じて、後続の命令のリクエストを行う。したがって、命令のリクエストの開始までに、待ち時間が生じることがある。
【００１８】
リクエスト待ち時間カウンタ５２は、リクエスト調停部５１のキューが保持する、転送が未完了の命令の転送時間の合計をリクエスト待ち時間カウンタ５２として保持する。つまり、リクエスト待ち時間カウンタ５２は、新たに発行される後続の命令の転送開始までの待ち時間をカウンタとして保持する。各命令の転送時間は、予め検出可能である。リクエスト調停部５１は、キューに新たな命令が追加されたとき、命令の転送にかかる時間分、リクエスト待ち時間カウンタ５２をカウントアップする。また、リクエスト調停部５１は、キューに保持された命令の転送が完了した場合に、当該命令の転送時間分、リクエスト待ち時間カウンタ５２をカウントダウンする。
【００１９】
一時記憶領域３１は、メモリ３０に送出するデータを伴う命令（例えば、ストア命令）が発行されたときに、データｄｔを一時的に保持し、データｄｔの冗長性を判定して圧縮判定フラグｆｇを生成し、圧縮判定部６１に出力する。一時記憶領域３１は、例えば、命令が有するデータｄｔと圧縮判定フラグｆｇとを保持する領域と、圧縮判定フラグ生成論理回路３４とを有する。圧縮判定フラグ生成論理回路３４は、データｄｔが所定値以上の冗長性を有するか否か判定し、データｄｔが所定値以上の冗長性を有する場合に所定値を有する圧縮判定フラグｆｇを出力する。圧縮判定フラグ生成論理回路３４は、冗長判定部４１と比較部４２とを有する。冗長判定部４１は、データｄｔの冗長性を判定し、比較部４２は、冗長性と閾値とを比較して、圧縮判定フラグｆｇを出力する。
【００２０】
圧縮判定部６１は、例えば、リクエスト待ち時間確認部６２と圧縮判定フラグチェック部６３とを有する。圧縮判定フラグチェック部６３は、圧縮判定フラグｆｇが所定値を有するか否かを判定し、リクエスト待ち時間確認部６２は、圧縮判定フラグｆｇが所定値を有する命令について、リクエスト待ち時間カウンタ５２が有する待ち時間等に基づいて、データを圧縮するか否か判定する。
【００２１】
データを圧縮すると判定した場合、圧縮判定部６１は、データをデータ圧縮装置５４に出力する。データ圧縮装置５４は、入力されたデータを圧縮し、パケット生成部５３に出力する。また、圧縮判定部６１は、データを圧縮すると判定した場合、命令の転送時間がデータ量に応じて変動することから、リクエスト待ち時間カウンタ５２を更新する。また、圧縮判定部６１は、データを圧縮しないと判定した場合、非圧縮のデータをパケット生成部５３に出力する。パケット生成部５３は、入力されたデータに基づいて、パケットを生成する。
【００２２】
［パケット］
図３は、図２で示したデータをメモリ３０に送出する命令（例えば、ストア命令）のパケットｐ０〜ｐｎの一例を示す図である。図３の例において、各パケットｐ０〜ｐｎのサイズは６４ｂｉｔであって、ヘッダ情報を有するパケットｐ０と、命令の処理対象となるデータをペイロードとして含むパケットｐ１〜ｐｎとを有する。ヘッダ情報は、例えば、アドレス情報やデータ長、命令の種別、圧縮形式等を含む。各パケットは、パケットｐ０からパケットｐｎまで順に送信される。
【００２３】
図３に示すように、ヘッダ情報は、例えば、情報ＡＤＲＳ、情報ＢＵＲＳＴ、情報ＯＰＣＤ、情報ＲＳＶを有する。情報ＡＤＲＳはメモリ３０のアドレスを示し、アドレスのビット幅（ｍ＋１バイト）は搭載するメモリ３０によって異なる。情報ＢＵＲＳＴは、データの長さを示す。また、情報ＯＰＣＤはストアやフェッチなどの命令の種別を示す。情報ＲＳＶは、リザーブ領域を示し、例えば、圧縮形式等の情報を有する。また、パケットｐ１〜パケットｐｎは、圧縮の対象となるデータをペイロードとして含む。
【００２４】
［データの圧縮］
図４は、データの圧縮の例を説明する図である。図４の例では、圧縮方式として、ランレングス符号化を使用した場合を示す。図４は、ランレングス符号化のデータ形式を示す図Ｈ１と、データの符号化例を示す図Ｈ２とを有する。
【００２５】
ランレングス符号化では、データを図４のデータ形式Ｈ１のデータに変換することによって圧縮を実現する。ランレングス符合化のデータ形式は、例えば、データ形式ＲＬと、データ形式ＤＰとを有する。データ形式ＤＰはデータパターンを示し、データ形式ＲＬは、当該データパターンが繰り返される回数を示す。
【００２６】
ここで、圧縮対象のデータ「０ｘａａａａａａａａａａａａａａａ」をランレングス符号化する例を示す。圧縮対象のデータ「０ｘａａａａａａａａａａａａａａａ」は、データパターン「０ｘａ」を１５個有するデータである。したがって、データ「０ｘａａａａａａａａａａａａａａａ」をランレングス符合化した場合、圧縮後のデータは、「０ｘｆａ」となる。圧縮後のデータ「０ｘｆａ」における「０ｘｆ」はデータ形式ＲＬを、「０ｘａ」はデータ形式ＤＰを示す。即ち、圧縮後のデータ「０ｘｆａ」は、データパターン「０ｘａ」が、「０ｘｆ」（＝１５）個連続することを示す。データ「０ｘａａａａａａａａａａａａａａａ」のデータ長は６０ｂｉｔであって、データ「０ｘｆａ」のデータ長さは８ｂｉｔであることから、符号化によって、データ長は６０ｂｉｔから８ｂｉｔに減少している。
【００２７】
同様にして、圧縮対象のデータ「０ｘｆｆｆｆｄｄｄｄｅｅｅｅａａａａ」をランレングス符号化する例を示す。データ「０ｘｆｆｆｆｄｄｄｄｅｅｅｅａａａａ」は、データパターン「０ｘｆ」を４個、データパターン「０ｘｄ」を４個、データパターン「０ｘｅ」を４個、データパターン「０ｘａ」を４個有する。したがって、データ「０ｘｆｆｆｆｄｄｄｄｅｅｅｅａａａａ」をランレングス符合化した場合、圧縮後のデータは、「０ｘ４ｆ４ｄ４ｅ４ａ」となる。データ「０ｘｆｆｆｆｄｄｄｄｅｅｅｅａａａａ」のデータ長は６４ｂｉｔであって、データ「０ｘ４ｆ４ｄ４ｅ４ａ」のデータ長は３２ｂｉｔであることから、符号化によって、データ長は６４ｂｉｔから３２ｂｉｔに減少している。即ち、符号化によって、データ長が１／２となっている。
【００２８】
図４に示すように、ランレングス符号化によると、データがデータパターンを冗長して有する場合、データ長が減少可能になる。したがって、例えば、図３に例示した命令のパケット数を減少させることが可能になる。
【００２９】
一方、ランレングス符号化によると、データの内容によってはデータ長が減少しないことがある。例えば、データ「０ｘａｂｃｄｄｄｄｄ」をランレングス符号化する場合を例示する。データ「０ｘａｂｃｄｄｄｄｄ」のデータ長は、３２ｂｉｔである。また、データ「０ｘａｂｃｄｄｄｄｄ」をランレングス符号化したデータは、データ「０ｘ１ａ１ｂ１ｃ５ｄ」であって、データ長は３２ｂｉｔである。したがって、データの内容によっては、符号化の結果、データ長が減少しない。さらに、例えば、３２ｂｉｔのデータ「０ｘａｂｃｄｅｅｅｅ」をランレングス符号化する場合、符号化データ「０ｘ１ａ１ｂ１ｃ１ｄ４ｅ」のデータ長は４０ｂｉｔである。したがって、データの内容によっては、符号化の結果、データ長が増大する。
【００３０】
図４に示したとおり、データの圧縮によって、データ長が減少しないことがある。したがって、演算処理装置は、データを圧縮した後、データ長が減少したか否かに基づいて、データの圧縮の正否判定を行う。次に、データ圧縮の正否判定について説明する。
【００３１】
［データの圧縮の正否判定］
図５は、データの圧縮の正否判定処理の概要を説明する図である。図５のデータの圧縮の正否判定処理は、一般的な例である。また、図５の例では、ストア命令が有するデータの圧縮の正否判定を行う場合を示す。
【００３２】
演算処理装置は、データサイズと待ち時間とに基づいて、ストア命令の対象であるデータの圧縮の可否判定を行い（Ｓ１１）、圧縮を試行するか否かを判定する（Ｓ１２）。例えば、演算処理装置は、待ち時間の間に、データを圧縮可能な場合に、圧縮が可能である旨判定する。圧縮不可と判定された場合、演算処理装置は、データの圧縮を試行せず（Ｓ１２のＮＯ）、一時記憶領域に保持された非圧縮データに基づいて、ストア命令のリクエストを行う（Ｓ１４）。
【００３３】
一方、圧縮可能と判定された場合、演算処理装置は、圧縮を試行し（Ｓ１２のＹＥＳ）、一時記憶領域に保持されたデータを圧縮し、圧縮データを生成する（Ｓ１３）。次に、演算処理装置は、圧縮データと圧縮前の元データとのサイズを比較する（Ｓ１５）。圧縮データのサイズが元データより小さい場合、即ち、圧縮によってデータのサイズが減少する場合（Ｓ１６のＹＥＳ）、演算処理装置は、圧縮データをペイロードとして含むパケットを生成し、ストア命令のリクエストを行う（Ｓ１８）。
【００３４】
そして、圧縮によってデータのサイズが減少しない場合（Ｓ１６のＮＯ）、演算処理装置は、非圧縮データをペイロードとして含むパケットを生成し、ストア命令のリクエストを行う（Ｓ１７）。図４で前述したとおり、データを圧縮しても、データ長が減少しない場合がある。したがって、演算処理装置は、データの圧縮を実行（試行）する。そして、演算処理装置は、圧縮前後のデータのサイズに基づいて、データの圧縮の正否判定を行う。したがって、一旦、データを圧縮した後、圧縮の正否判定を行うことから、データ圧縮の正否判定までに時間がかかる。
【００３５】
そこで、本実施の形態例における演算処理装置２０は、メモリに送出するデータを伴う命令（例えば、ストア命令）のデータの冗長性が所定値以上であるか否かを判定し、データの冗長性が所定値以上である当該命令について、データを圧縮するか否か判定する。具体的に、演算処理装置２０は、メモリへの転送開始までの待ち時間と、データの圧縮にかかる圧縮時間とに基づいてデータを圧縮するか否か判定し、圧縮すると判定した場合にデータを圧縮する。また、演算処理装置２０は、さらに、圧縮する場合の圧縮後データのメモリへの送出時間と、データのメモリへの送出時間とに基づいてデータを圧縮するか否か判定する。
【００３６】
これにより、演算処理装置２０は、データが所定値以上の冗長性を有するか否かに基づくことにより、所定値に対応する圧縮率をデータが有するか否かを、データを圧縮することなく簡易に判定することができる。したがって、演算処理装置２０は、高速に、データを圧縮することなくデータの圧縮の正否を判定可能になると共に、不要な圧縮処理を回避することができる。即ち、演算処理装置２０は、早急に、簡易に、データを圧縮するか否かを判定することができる。したがって、演算処理装置２０は、ＣＰＵ２１とメモリ３０とのデータ転送を効率化することができる。
【００３７】
［データの冗長性判定］
初めに、メモリ３０へ送出するデータを伴う命令について、データの冗長性が所定値以上であるか否かを判定する処理について説明する。なお、メモリに送出するデータを伴う命令は、ストア命令に限定されるものではなく、例えば、アトミック命令等も含まれる。
【００３８】
図６は、本実施の形態例におけるメモリ制御装置２３の一時記憶領域３１のデータの冗長性の判定処理を説明する図である。ＣＰＵ２１からメモリ３０へ送出するデータを伴う命令が発行されると、データが一時記憶領域３１に保持される。
【００３９】
一時記憶領域３１の圧縮判定フラグ生成論理回路３４は、一時記憶領域３１にデータが記憶されると、記憶されたデータの冗長性を判定する（Ｓ２１）。次に、圧縮判定フラグ生成論理回路３４は、判定したデータの冗長性と、設定された閾値とに基づいて、データが所定値以上の冗長性を有するか否かの判定を示す圧縮判定フラグｆｇを出力する（Ｓ２２）。具体的に、圧縮判定フラグ生成論理回路３４は、データの冗長性が設定された閾値以上である場合に、データが所定値以上の冗長性を有すると判定し、値「１」を有する圧縮判定フラグｆｇを生成する。
【００４０】
［圧縮判定フラグ生成論理回路］
図７は、圧縮判定フラグ生成論理回路３４の構成の一例を説明する図である。図７の圧縮判定フラグ生成論理回路３４は、例えば、６４ｂｉｔのデータを対象として冗長性を判定する回路である。
【００４１】
図７の圧縮判定フラグ生成論理回路３４は、例えば、冗長判定部４１と比較部４２とを有する。冗長判定部４１は、１６個のフリップフロップｆ０〜ｆｆと、１５個の比較器Ｈ１〜Ｈ１５とを有する。また、比較部４２は、例えば、指標計算器４３と閾値比較器４４とを有する。
【００４２】
具体的に、各フリップフロップｆ０〜ｆｆは、一時記憶領域３１に保持される６４ｂｉｔのデータを４ｂｉｔに区切った単位データを保持し、出力する。また、比較器Ｈ１〜Ｈ１５は、隣接するフリップフロップｆ０〜ｆｆからの出力値（４ｂｉｔの値）ＤＤ０〜ＤＤｆを比較し、比較結果Ｃ０１〜Ｃｅｆ（Ｃｉ ｉ＋１）を指標計算器４３に出力する。比較器Ｈ１〜Ｈ１５は、フリップフロップからの出力値が一致する場合に値「０」を、異なる場合に値「１」を有する出力値Ｃ０１〜Ｃｅｆを出力する。
【００４３】
また、指標計算器４３は、各比較器からの出力値Ｃ０１〜Ｃｅｆを合計する。そして、閾値比較器４４は、指標計算器４３から出力された合計値と設定された閾値４５とを比較し、合計値が閾値より小さい場合に値「１」を、合計値が閾値以上の場合に値「０」を、圧縮判定フラグｆｇとして出力する。
【００４４】
図７の圧縮判定フラグ生成論理回路３４は、例えば、１クロックで圧縮判定フラグｆｇを生成する。即ち、圧縮判定フラグ生成論理回路３４は、新たなデータが記憶されると、即座に、データが所定値以上の冗長性を有するか否かを示す圧縮判定フラグｆｇを、簡易に生成することができる。データが所定値以上の冗長性を有することは、図４に示すランレングス符号化によると、データが閾値に対応する圧縮率を有することを意味する。したがって、圧縮判定フラグ生成論理回路３４は、冗長性に基づいて、簡易に、データが閾値に対応する圧縮率を有するか否かを判定することができる。
【００４５】
図７の圧縮判定フラグ生成論理回路３４の処理を具体例に対応して説明する。具体例において、例えば、閾値は値「４」である。閾値「４」である場合、圧縮判定フラグ生成論理回路３４は、６４ｂｉｔのデータが有するデータパターンが４つ未満である場合に、データが所定の冗長性を有すると判定し、値「１」を有する圧縮判定フラグｆｇを出力する。ランレングス符号化によると、６４ｂｉｔデータのデータパターンが４つ未満である場合、圧縮後のデータ長は１／２となる。
【００４６】
具体例として、６４ｂｉｔのデータ「０ｘｆｆｆｆｄｄｄｄｅｅｅｅａａａａ」が入力される場合を例示する。データ「０ｘｆｆｆｆｄｄｄｄｅｅｅｅａａａａ」に対応して、１６個のフリップフロップｆ０〜ｆｆは、それぞれ、データが有する４ｂｉｔの単位データ「０ｘｆ」「０ｘｆ」「０ｘｆ」「０ｘｆ」「０ｘｄ」「０ｘｄ」「０ｘｄ」「０ｘｄ」「０ｘｅ」「０ｘｅ」「０ｘｅ」「０ｘｅ」「０ｘａ」「０ｘａ」「０ｘａ」「０ｘａ」を保持する。具体的に、フリップフロップｆ０〜ｆ３は、データ「０ｘｆ」を保持する。また、フリップフロップｆ４〜ｆ７はデータ「０ｘｄ」を、フリップフロップｆ８〜ｆｂはデータ「０ｘｅ」を、フリップフロップｆｃ〜ｆｆはデータ「０ｘａ」を保持する。
【００４７】
比較器Ｈ１は、フリップフロップｆ０の出力値「０ｘｆ」とフリップフロップｆ１の出力値「０ｘｆ」とを比較し、一致するため、値「０」を有するＣ０１を出力する。また、比較器Ｈ２、Ｈ３も値「０」を有するＣ１２、Ｃ２３を出力する。一方、図示していないが、比較器Ｈ４は、フリップフロップｆ３からの出力値「０ｘｆ」と、フリップフロップｆ４からの出力値「０ｘｄ」とを比較し、一致しないため、値「１」を有するＣ３４を出力する。同様にして、図示していないが、比較器Ｈ５〜Ｈ７、Ｈ９〜Ｈ１１は値「０」を、比較器Ｈ８、Ｈ１２は値「１」を出力する。そして、比較器Ｈ１３〜Ｈ１５は、フリップフロップｆｃ〜ｆｆからの出力値が同一であるため、値「０」を有するＣｃｄ、Ｃｄｅ、Ｃｅｆ出力する。
【００４８】
即ち、データ「０ｘｆｆｆｆｄｄｄｄｅｅｅｅａａａａ」が入力された場合、比較器Ｈ１〜Ｈ３、比較器Ｈ５〜Ｈ７、Ｈ９〜Ｈ１１は値「０」を、比較器Ｈ４、Ｈ８、Ｈ１２は値「１」を出力する。したがって、指標計算器４３は、比較器Ｈ１〜Ｈ１５からの出力値Ｃ０１〜Ｃｅｆを合計し、値「３」を出力する。閾値比較器４４は、合計値「３」と閾値「４」とを比較し、閾値より小さいため、値「１」を圧縮判定フラグｆｇとして出力する。
【００４９】
具体例に示すように、指標計算器４３の合計値が「３」であるとき、データが４つのデータパターン（この例では、「０ｘｆｆｆｆ」「０ｘｄｄｄｄ」「０ｘｅｅｅｅ」「０ｘａａａａ」）を有することを示す。データが有するデータパターンが４つのとき、図４に示すランレングス符号化によると、圧縮後のデータ（この例では、「０ｘ４ｆ４ｄ４ｅ４ａ」）のデータ長は、１／２となる。閾値が値「４」に設定される場合、圧縮判定フラグｆｇが値「１」となる条件は、次の式１のように記述可能である。
Σ〜Ｃｉ ｉ＋１＜ ４ …式１
式１は、比較器Ｈ１〜Ｈ１５の出力値Ｃ０１〜Ｃｅｆの合計値が閾値「４」未満である条件を示す。条件を満たす場合、圧縮によってデータ長が１／２以下となることにより、圧縮判定フラグ生成論理回路３４は、値「１」を有する圧縮判定フラグｆｇを出力する。一方、出力値Ｃｉ ｉ＋１の合計値が閾値「４」以上である場合、圧縮によってデータ長が１／２以下とならないことにより、圧縮判定フラグ生成論理回路３４は、値「０」を有する圧縮判定フラグｆｇを出力する。
【００５０】
また、例えば、５つのデータパターンを有するデータ「０ｘａａｂｂｃｃｃｃｄｄｄｄｅｅｅｅ」が入力される場合を例示する。データ「０ｘａａｂｂｃｃｃｃｄｄｄｄｅｅｅｅ」に基づく場合、比較器Ｈ１、Ｈ３、比較器Ｈ５〜Ｈ７、Ｈ９〜Ｈ１１は値「０」を、比較器Ｈ２、Ｈ４、Ｈ８、Ｈ１２は値「１」を出力する。したがって、指標計算器４３は、比較器Ｈ１〜Ｈ１５からの出力値Ｃ０１〜Ｃｅｆを合計し、値「４」を出力する。閾値比較器４４は、合計値「４」と閾値「４」とを比較し、値「０」を有する圧縮判定フラグｆｇを出力する。
【００５１】
データ「０ｘａａｂｂｃｃｃｃｄｄｄｄｅｅｅｅ」は、５つのデータパターンを有し、圧縮後のデータ「０ｘ２ａ２ｂ４ｃ４ｄ４ｅ」のデータ長は１／２を超える。したがって、圧縮判定フラグ生成論理回路３４は、データが所定値以上の冗長性を有しないと判定し、値「０」の圧縮判定フラグｆｇを出力する。
【００５２】
なお、図７では、６４ｂｉｔのデータを対象とする圧縮判定フラグ生成論理回路３４を例示したが、この例に限定されるものではない。対象となるデータの長さが異なる場合、圧縮判定フラグ生成論理回路３４の構成も異なる。また、具体例では閾値が値「４」である場合を例示したが、この例に限定されるものではない。閾値は、データの所定の圧縮率に応じて適宜、設定される。ここで、閾値が値「２」である場合を例示する。
【００５３】
閾値「２」である場合、圧縮判定フラグ生成論理回路３４は、６４ｂｉｔのデータが有するデータパターンが２つ未満である場合に、データが所定の冗長性を有すると判定し、値「１」を有する圧縮判定フラグｆｇを出力する。ランレングス符号化によると、６４ｂｉｔデータのデータパターンが２つ未満である場合、圧縮後のデータ長は１／４となる。したがって、圧縮判定フラグ生成論理回路３４は、比較器からの出力値Ｃｉ ｉ＋１のうち値「０」の数が２つ未満である場合、値「１」を有する圧縮判定フラグｆｇを生成する。圧縮判定フラグｆｇが値「１」となる条件は、次の式２のように記述可能である。
Σ〜Ｃｉ ｉ＋１＜ ２ …式２
式２は、出力値Ｃｉ ｉ＋１の合計値が閾値「２」未満である条件を示す。条件を満たす場合、圧縮によってデータ長が１／４以下となることにより、圧縮判定フラグ生成論理回路３４は、値「１」を有する圧縮判定フラグｆｇを出力する。一方、出力値Ｃｉ ｉ＋１の合計値が閾値「２」以上である場合、圧縮によってデータ長が１／４以下とならないことにより、圧縮判定フラグ生成論理回路３４は、値「０」を有する圧縮判定フラグｆｇを出力する。
【００５４】
図６、図７に示すように、圧縮判定フラグ生成論理回路３４は、データが所定値以上の冗長性を有する場合、即ち、データが閾値に対応する圧縮率を有する場合に、値「１」の圧縮判定フラグｆｇを出力する。
【００５５】
［データの圧縮の正否判定］
続いて、圧縮判定フラグｆｇに基づく、本実施の形態例におけるデータの圧縮の正否判定を説明する。
【００５６】
図８は、本実施の形態例におけるメモリ制御装置２３の圧縮判定部６１のデータの圧縮の正否判定の処理を説明する図である。圧縮判定部６１は、命令のリクエストが行われると、圧縮判定フラグｆｇと命令の転送開始までの待ち時間とに基づいて、データの圧縮可能判定を行う（Ｓ３１）。
【００５７】
圧縮判定部６１の圧縮判定フラグチェック部６３は、圧縮判定フラグ生成論理回路３４が出力した圧縮判定フラグｆｇを確認し、データが所定値以上の冗長性を有するか否か判定する。また、圧縮判定部６１のリクエスト待ち時間確認部６２は、データが所定値以上の冗長性を有する命令について、リクエスト待ち時間カウンタ５２に基づいて待ち時間等を取得し、データの圧縮可能判定を行う。リクエスト待ち時間カウンタ５２は、転送待ちの命令に基づいて待ち時間を取得可能である。
【００５８】
具体的に、圧縮判定部６１は、データの送出の開始時間（メモリへの転送開始までの待ち時間）と、データの圧縮時間とに基づいて、データを圧縮するか否かを判定する。また、圧縮判定部６１は、さらに、圧縮する場合の圧縮後データ及び圧縮しない場合の非圧縮データのメモリへの各送出時間とに基づいて、データを圧縮するか否かを判定する。なお、図３に示すように、命令が複数のデータパケットｐ１〜ｐｎを有する場合、圧縮判定部６１は、パケットのｐ１〜ｐｎに対応する圧縮判定フラグｆｇが全て値「１」である命令について、工程Ｓ３１の判定処理を行う。
【００５９】
より具体的に、圧縮判定フラグｆｇが値「０」を有する場合、即ち、データが所定値以上の冗長性を有しない場合、圧縮判定部６１は、圧縮しても所望の圧縮率が得られないとみなし、データの圧縮を行わないことを判定する。一方、圧縮判定フラグｆｇが値「１」を有する場合、リクエスト待ち時間確認部６２は、条件「待ち時間≧圧縮時間」を満たす場合に、圧縮を行うことを判定する。圧縮判定部６１は、例えば、データの長さに基づいて、データの圧縮時間を取得することができる。
【００６０】
データが所定値以上の冗長性を有する場合であっても、データの圧縮にかかる論理段数（圧縮時間）によっては、データの圧縮に時間がかかり、命令の転送完了時がデータを圧縮しない場合よりも遅くなる場合がある。即ち、命令の転送完了時とは、例えば、データのメモリ３０への送出が完了するタイミングを示す。また、圧縮データのメモリ３０への送出にかかる時間（以下、送出時間と称する）は、非圧縮データのメモリ３０への送出にかかる時間（以下、送出時間と称する）よりも短い。
【００６１】
したがって、条件「待ち時間≧圧縮時間」を満たす場合、圧縮データの送出時間が非圧縮データの送出時間より短いことから、命令の転送完了のタイミングは、データを圧縮する場合の方が、データを圧縮しない場合よりも早くなる。したがって、圧縮判定部６１は、データが所定値以上の冗長性を有し、条件「待ち時間≧圧縮時間」を満たす場合に、圧縮を行うことを判定する。
【００６２】
ただし、条件「待ち時間≧圧縮時間」を満たしていない場合であっても、即ち、「待ち時間＜圧縮時間」であっても、データを圧縮することにより、データを圧縮しない場合よりも、データの転送完了時が早くなる場合がある。
【００６３】
具体的に、条件「（待ち時間＋非圧縮データのメモリ３０への送出時間）＞（圧縮時間＋圧縮データのメモリ３０への送出時間）」を満たす場合、データを圧縮しない場合よりも、命令の転送が早く完了する。データの圧縮によってデータの送出時間が大幅に減少する場合、「待ち時間＜圧縮時間」であっても、条件「（待ち時間＋非圧縮データのメモリ３０への送出時間）＞（圧縮時間＋圧縮データのメモリ３０への送出時間）」を満たす。
【００６４】
圧縮判定部６１は、例えば、圧縮データ、及び、非圧縮データのデータ長に基づいて、メモリ３０への送出にかかる各時間を判定することができる。圧縮判定部６１は、圧縮時間と圧縮後データの送出時間との合計時間に基づいて、データを圧縮する場合のデータの送出終了時を、待ち時間と非圧縮データの送出時間との合計時間に基づいて圧縮しない場合のデータの送出時間を算出する。そして、圧縮判定部６１は、圧縮する場合の命令の転送完了時が、圧縮しない場合の命令の転送完了時よりも早い場合に、データを圧縮することを判定する。
【００６５】
図８に戻り、圧縮可能と判定した場合（Ｓ３２のＹＥＳ）、データ圧縮装置５４は、圧縮判定部６１から出力されたデータを圧縮し、圧縮データを生成する（Ｓ３３）。また、パケット生成部５３は、圧縮されたデータをペイロードとして含むパケットと、データのヘッダ情報を有するパケットとを生成する。そして、リクエスト調停部５１は、先行の命令の転送が完了すると、命令のリクエストを行う。
【００６６】
なお、データを圧縮する場合、データのサイズが減少することから、データのメモリ３０への送出時間も減少する。そこで、リクエスト調停部５１は、データを圧縮する場合におけるデータの転送時間に基づいて、リクエスト待ち時間カウンタ５２を更新する。即ち、リクエスト調停部５１は、データを圧縮する場合、データの圧縮によって減少する命令の転送時間分、リクエスト待ち時間カウンタ５２をデクリメントする。
【００６７】
一方、圧縮可能と判定されなかった場合（Ｓ３２のＮＯ）、パケット生成部５３は、非圧縮のデータをペイロードとして含むパケットを生成し、リクエスト調停部５１は、先行の命令の転送が完了すると、命令のリクエストを行う（Ｓ３４）。
【００６８】
なお、本実施の形態例における演算処理装置２０は、一時記憶領域３１にある程度の時間、保持されるデータを対象として、圧縮判定フラグ生成論理回路３４によって圧縮判定フラグｆｇを生成する。したがって、リクエスト調停部５１のキューが転送待ちの命令を有しない場合、即ち、発行された命令が即座にリクエスト可能な場合、圧縮判定フラグ生成論理回路３４は圧縮判定フラグｆｇを生成しなくてもよい。この場合、例えば、リクエスト調停部５１は、一時記憶領域３１に保持されたデータを圧縮することなく、ストア命令のリクエストを行う。
【００６９】
次に、図８に示したデータの圧縮可能判定処理（工程Ｓ３１）について、具体例に基づいて説明する。
【００７０】
［具体例］
図９は、本実施の形態例におけるデータの圧縮可能判定処理（図８の工程Ｓ３１）の具体例を説明するタイミングチャート図である。図９は、データを圧縮する場合と、データを圧縮しない場合の命令の転送時間を示す図である。また、図９は、ストア命令を対象として判定処理を行う場合を例示する。また、対象となるストア命令の圧縮判定フラグｆｇは、データが所定の冗長性を有することを示す値「１」である。図９の矢印Ｙ１は、ストア命令がリクエストされるタイミングを示す。
【００７１】
図９において、データを圧縮しない場合（圧縮なしの場合）におけるデータ送出時間は、非圧縮データのデータ長に基づいて算出可能である。同様にして、データを圧縮する場合（圧縮ありの場合）における、圧縮時間は非圧縮データのデータ長に基づいて、データ送出時間は圧縮データのデータ長に基づいて、算出可能である。
【００７２】
圧縮判定部６１は、タイミングＹ１において、ストア命令がリクエストされると、リクエスト待ち時間カウンタ５２に基づく待ち時間と、圧縮時間とを比較する。図９の例では、条件「待ち時間≧圧縮時間」を満たす。したがって、圧縮判定部６１は、データを圧縮することを判定する。図９の例において、非圧縮データの送出時間は５クロックであるのに対し、圧縮データの送出時間は３クロックである。したがって、待ち時間終了後データの送出が開始されると、データが圧縮される場合の方が命令の転送がより早く完了する。
【００７３】
図１０は、本実施の形態例におけるデータの圧縮可能判定処理（図８の工程Ｓ３１）の別の具体例を説明するタイミングチャート図である。図１０は、データを圧縮する場合と、データを圧縮しない場合の命令の転送時間を示す図である。また、図９は、ストア命令を対象として判定処理を行う場合を例示する。また、対象となるストア命令の圧縮判定フラグｆｇは、データが所定の冗長性を有することを示す値「１」である。図１０の矢印Ｙ２は、ストア命令がリクエストされるタイミングを示す。図９と同様にして、データを圧縮する場合、及び、データを圧縮しない場合におけるデータ送出時間、データの圧縮時間は算出可能である。
【００７４】
圧縮判定部６１は、タイミングＹ２において、ストア命令がリクエストされると、リクエスト待ち時間カウンタ５２に基づく待ち時間と、圧縮時間とを比較する。図１０の例では、条件「待ち時間≧圧縮時間」を満たさない。即ち、待ち時間の間に、データの圧縮が完了しない。ただし、条件「（待ち時間＋非圧縮データのメモリ３０への送出時間）＞（圧縮時間＋圧縮データのメモリ３０への送出時間）」を満たす。したがって、圧縮判定部６１は、データを圧縮することを判定する。
【００７５】
図１０の例において、「待ち時間＜圧縮時間」であることから、データを圧縮する場合、待ち時間を経過した後、データの圧縮が完了したときに、圧縮データの送出が開始される。ただし、図１０の例において、非圧縮データの送出時間は８クロックであるのに対し、圧縮データの送出時間は４クロックである。即ち、圧縮によってデータの送出時間が大幅に短縮される。したがって、データの圧縮後に命令の転送が行われたとしても、データを圧縮しない場合よりも、命令の転送がより早く完了する。
【００７６】
図９、図１０で説明したように、メモリ制御装置２３は、データの冗長性が所定値以上である命令について、メモリへの転送開始までの待ち時間と、データの圧縮にかかる圧縮時間と、さらに、圧縮する場合の圧縮後データ及び圧縮しない場合の非圧縮データのメモリへの各送出時間とに基づいてデータを圧縮するか否か判定し、圧縮すると判定した場合にデータを圧縮するか否かを判定することができる。また、メモリ制御装置２３は、データが所望の圧縮率を有するか否かを、冗長性に基づいて簡易に判定可能であることから、早い段階で、待ち時間等に基づいて、データを圧縮するか否かを判定することができる。
【００７７】
以上のように、本実施の形態例における演算処理装置２０は、メモリに送出するデータを伴う命令を発行する演算処理部と、命令が伴うデータの冗長性が所定値以上であるかを判定する判定部と、データの冗長性が所定値以上である場合、命令のメモリへの転送開始までの待ち時間と、データの圧縮にかかる圧縮時間とに基づいて、データを圧縮するかを判定し、圧縮すると判定した場合にデータを圧縮する圧縮部と、を有する。また、演算処理装置２０は、圧縮部がデータを圧縮した場合、圧縮後のデータを伴う命令を演算処理部からメモリに転送するとともに、圧縮部がデータを圧縮しない場合、データを伴う命令をメモリに転送する命令調停部と、を有する。
【００７８】
これにより、演算処理装置は、データが所定値以上の冗長性を有するか否かに基づくことにより、所定値に対応する圧縮率をデータが有するか否かを簡易に判定することができる。また、演算処理装置は、データが所定値に対応する圧縮率を有するか否かを、データを圧縮することなく判定可能になることにより、早い段階で、命令のメモリへの転送開始までの待ち時間と圧縮時間とに基づいて、データを圧縮するか否かを判定することができる。
【００７９】
早い段階で圧縮するか否かを判定可能になることにより、演算処理装置は、データの圧縮を行う時間を増加させることができる。したがって、演算処理装置は、より多くのデータを圧縮することができ、ＣＰＵとメモリとのバンド幅の効率を向上することができる。また、演算処理装置は、データを圧縮することなくデータを圧縮するか否かを判定可能になることにより、不要な圧縮処理を回避することができる。
【００８０】
また、本実施の形態例における演算処理装置２０の圧縮部は、圧縮時間が待ち時間以内である場合、データを圧縮すると判定する。演算処理装置２０は、圧縮時間と待ち時間とを比較することにより、データを圧縮することにより命令の転送完了が早くなるか否かを判定することができ、データを圧縮するか否か判定することができる。
【００８１】
また、本実施の形態例における演算処理装置２０の圧縮部は、さらに、圧縮後データのメモリへの送出時間と、データのメモリへの送出時間とに基づいて、データを圧縮するかを判定する。演算処理装置２０は、さらに、圧縮する場合の圧縮後データ、及び、データのメモリへの送出時間とに基づくことにより、データを圧縮することにより命令の転送完了が早くなるか否かを判定することができ、データを圧縮するか否か判定することができる。また、演算処理装置２０は、圧縮時間と待ち時間とに加えて、圧縮する場合の圧縮後データ、及び、データのメモリへの送出時間とに基づくことにより、より多くの所定値以上の冗長性を有するデータを圧縮することができる。
【００８２】
また、本実施の形態例における演算処理装置２０の圧縮部は、待ち時間と圧縮時間と送出時間とに基づいて、圧縮後データの第１の送出終了時と、データの第２の送出終了時とを算出し、第１の送出終了時が第２の送出終了時よりも早い場合、データを圧縮すると判定する。演算処理装置２０は、第１、２の送出終了時を算出すると共に、第１の送出終了時が第２の送出時よりも早い場合にデータを圧縮すると判定することによって、データを圧縮することなく、データを圧縮するか否かを適切に判定することができる。
【００８３】
また、本実施の形態例における演算処理装置２０の圧縮部は、圧縮時間と圧縮後データの送出時間との合計時間に基づいて第１の送出終了時を、待ち時間とデータの送出時間との合計時間に基づいて第２の送出終了時を算出する。演算処理装置２０は、第１の送出終了時と、第２の送出終了時とを算出することができる。
【００８４】
また、本実施の形態例における演算処理装置２０の判定部は、データを所定のビット幅に区分した単位データであって、隣接する単位データとの一致率が基準値以上の場合、冗長性が所定値以上であると判定する。演算処理装置２０は、隣接する単位データとの一致率が基準値以上の場合に、冗長性が所定値以上であると判定することができる。
【００８５】
また、本実施の形態例における演算処理装置２０の判定部は、隣接する単位データが一致する場合に第１の値を出力し、一致しない場合に第１の値と異なる第２の値を出力する複数の第１の演算器と、複数の第１の演算器からの出力値の合計値と基準合計値とを比較する第２の演算器と、を有する。演算処理装置２０は、第１、２の演算器に基づいて、データが所定値以上の冗長性を有するか否かを判定することができ、データが所定の圧縮率を有するか否かを簡易に判定することができる。
【００８６】
以上の実施の形態をまとめると、次の付記のとおりである。
【００８７】
（付記１）
メモリに送出するデータを伴う命令を発行する演算処理部と、
前記命令が伴うデータの冗長性が所定値以上であるかを判定する判定部と、
前記データの冗長性が前記所定値以上である場合、前記命令の前記メモリへの転送開始までの待ち時間と、前記データの圧縮にかかる圧縮時間とに基づいて、前記データを圧縮するかを判定し、圧縮すると判定した場合に前記データを圧縮する圧縮部と、
前記圧縮部が前記データを圧縮した場合、圧縮後のデータを伴う前記命令を前記演算処理部から前記メモリに転送するとともに、前記圧縮部が前記データを圧縮しない場合、前記データを伴う前記命令を前記メモリに転送する命令調停部と、を有する演算処理装置。
【００８８】
（付記２）
付記１において、
前記圧縮部は、前記圧縮時間が前記待ち時間以内である場合、前記データを圧縮すると判定する演算処理装置。
【００８９】
（付記３）
付記１または２において、
前記圧縮部は、さらに、前記圧縮後データの前記メモリへの送出時間と、前記データの前記メモリへの送出時間とに基づいて、前記データを圧縮するかを判定する演算処理装置。
【００９０】
（付記４）
付記３において、
前記圧縮部は、前記待ち時間と前記圧縮時間と前記送出時間とに基づいて、前記圧縮後データの第１の送出終了時と、前記データの第２の送出終了時とを算出し、前記第１の送出終了時が前記第２の送出終了時よりも早い場合、前記データを圧縮すると判定する演算処理装置。
【００９１】
（付記５）
付記４において、
前記圧縮部は、前記圧縮時間と前記圧縮後データの送出時間との合計時間に基づいて前記第１の送出終了時を、前記待ち時間と前記データの送出時間との合計時間に基づいて前記第２の送出終了時を算出する演算処理装置。
【００９２】
（付記６）
付記１乃至５のいずれかにおいて、
前記判定部は、前記データを所定のビット幅に区分した単位データであって、隣接する前記単位データとの一致率が基準値以上の場合、前記冗長性が前記所定値以上であると判定する演算処理装置。
【００９３】
（付記７）
付記６において、
前記判定部は、前記隣接する単位データが一致する場合に第１の値を出力し、一致しない場合に前記第１の値と異なる第２の値を出力する複数の第１の演算器と、前記複数の第１の演算器からの出力値の合計値と基準合計値とを比較する第２の演算器と、を有する演算処理装置。
【００９４】
（付記８）
付記１乃至７のいずれかにおいて、
前記圧縮部が行う圧縮は、ランレングス符号化による圧縮である演算処理装置。
【００９５】
（付記９）
メモリと演算処理装置とを有する情報処理装置において、
前記演算処理装置は、
メモリに送出するデータを伴う命令を発行する演算処理部と、
前記命令が伴うデータの冗長性が所定値以上であるかを判定する判定部と、
前記データの冗長性が前記所定値以上である場合、前記命令の前記メモリへの転送開始までの待ち時間と、前記データの圧縮にかかる圧縮時間とに基づいて、前記データを圧縮するかを判定し、圧縮すると判定した場合に前記データを圧縮する圧縮部と、
前記圧縮部が前記データを圧縮した場合、圧縮後のデータを伴う前記命令を前記演算処理部から前記メモリに転送するとともに、前記圧縮部が前記データを圧縮しない場合、前記データを伴う前記命令を前記メモリに転送する命令調停部と、を有する情報処理装置。
【００９６】
（付記１０）
付記９において、
前記圧縮部は、前記圧縮時間が前記待ち時間以内である場合、前記データを圧縮すると判定する情報処理装置。
【００９７】
（付記１１）
付記９または１０において、
前記圧縮部は、さらに、前記圧縮後データの前記メモリへの送出時間と、前記データの前記メモリへの送出時間とに基づいて、前記データを圧縮するかを判定する情報処理装置。
【００９８】
（付記１２）
付記１１において、
前記圧縮部は、前記待ち時間と前記圧縮時間と前記送出時間とに基づいて、前記圧縮後データの第１の送出終了時と、前記データの第２の送出終了時とを算出し、前記第１の送出終了時が前記第２の送出終了時よりも早い場合、前記データを圧縮すると判定する情報処理装置。
【００９９】
（付記１３）
メモリと演算処理装置とを有する情報処理装置の制御方法において、
前記演算処理装置が有する演算処理部が、メモリに送出するデータを伴う命令を発行し、
前記演算処理装置が有する判定部が、前記命令が伴うデータの冗長性が所定値以上であるかを判定し、
前記データの冗長性が前記所定値以上である場合、前記演算処理装置が有する圧縮部が、前記命令の前記メモリへの転送開始までの待ち時間と、前記データの圧縮にかかる圧縮時間とに基づいて、前記データを圧縮するかを判定し、圧縮すると判定した場合に前記データを圧縮し、
前記圧縮部が前記データを圧縮した場合、前記演算処理装置が有する命令調停部が、圧縮後のデータを伴う前記命令を前記演算処理部から前記メモリに転送するとともに、前記圧縮部が前記データを圧縮しない場合、前記データを伴う前記命令を前記メモリに転送する情報処理装置の制御方法。
【０１００】
（付記１４）
付記１３において、
前記圧縮時間が前記待ち時間以内である場合、前記データを圧縮すると判定する情報処理装置の制御方法。
【０１０１】
（付記１５）
付記１３または１４において、
さらに、前記圧縮後データの前記メモリへの送出時間と、前記データの前記メモリへの送出時間とに基づいて、前記データを圧縮するかを判定する情報処理装置の制御方法。
【０１０２】
（付記１６）
付記１５において、
前記待ち時間と前記圧縮時間と前記送出時間とに基づいて、前記圧縮後データの第１の送出終了時と、前記データの第２の送出終了時とを算出し、前記第１の送出終了時が前記第２の送出終了時よりも早い場合、前記データを圧縮すると判定する情報処理装置の制御方法。
【符号の説明】
【０１０３】
１０：情報処理装置、２０：演算処理装置、３０：メモリ、２１：ＣＰＵ、２２：ＳＲＡＭ、２３：メモリ制御装置、３１：一時記憶領域３１、５１：リクエスト調停部、５２：リクエスト待ち時間カウンタ５２、５３：パケット生成部、６１：圧縮判定部、５４：データ圧縮装置
【図１】
2015103077.tif 000003
【図２】
2015103077.tif 000004
【図３】
2015103077.tif 000005
【図４】
2015103077.tif 000006
【図５】
2015103077.tif 000007
【図６】
2015103077.tif 000008
【図７】
2015103077.tif 000009
【図８】
2015103077.tif 000010
【図９】
2015103077.tif 000011
【図１０】
2015103077.tif 000012