JP2007514245A - メモリ効率に優れた命令処理方式 - Google Patents

メモリ効率に優れた命令処理方式 Download PDF

Info

Publication number
JP2007514245A
JP2007514245A JP2006544614A JP2006544614A JP2007514245A JP 2007514245 A JP2007514245 A JP 2007514245A JP 2006544614 A JP2006544614 A JP 2006544614A JP 2006544614 A JP2006544614 A JP 2006544614A JP 2007514245 A JP2007514245 A JP 2007514245A
Authority
JP
Japan
Prior art keywords
instruction
word
instruction word
individual
instructions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006544614A
Other languages
English (en)
Inventor
ペーター ディートリヒ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2007514245A publication Critical patent/JP2007514245A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Optical Recording Or Reproduction (AREA)
  • Advance Control (AREA)

Abstract

本発明は、第1の命令語から抽出される第1の個別の命令と、少なくとも後続する第2の命令語から抽出される少なくとも1つの第2の個別の命令とが、新たな単一の命令語として処理される、並列処理装置及び命令処理方式に関する。これにより、2つの元の命令が発行されたかのように、少なくとも2つの連続的な動作が、命令パイプラインによって処理される1つの命令語に定義される。このことは、除去された遅延命令を追加するように、圧縮された命令形式を拡張することにより達成される。

Description

本発明は、VLIW(very long instruction word)プロセッサのような並列処理装置、斯かる並列処理装置の命令語を圧縮及び復元するメモリ効率に優れた方法、及びコンピュータにロードされたときにコンピュータが前記メモリ効率に優れた方法のステップを実行することを可能とするコンピュータプログラムに関する。
例えばVLIWプロセッサのような並列プロセッサは、スーパーコンピュータからワークステーション及びパーソナルコンピュータに亘る、種々の用途において利用され得る。並列プロセッサは、ワークステーション、パーソナルコンピュータ又は消費者向けビデオ若しくはオーディオ製品において、専用の又はプログラム可能なプロセッサとして利用され得る。並列プロセッサは、アプリケーション特有のプロセッサであり得る。即ち、特定のアプリケーションの性能を向上させるため、これらのアプリケーションを処理するために設計され得る。この目的のため、特殊な機能ユニットがVLIWプロセッサに組み込まれる。各機能ユニットは、処理されるべきアプリケーションに依存して特定の動作を処理するように構成される。VLIWによって実行されるべき命令のセットは、スケジューリングされた動作を含む。
機能ユニットがパイプライン方式にされていない場合、機能ユニットが或る動作を実行する間は、前記機能ユニットにおいて他の動作はスケジューリングされることができない。機能ユニットがパイプライン方式にされている場合、新たな動作が、該機能ユニットの起動間隔に対応する一定の数のサイクルの後に、コンパイラによってスケジューリングされ得る。機能ユニットが処理を完了した後、処理結果が更に処理され、VLIWプロセッサから出力される必要がある。命令のセットを生成するコンパイラは、機能ユニットの動作をスケジューリングするため、コンパイル時に、該機能ユニットの起動間隔及び待ち時間を知っている必要がある。機能ユニットの起動間隔とは、その時間間隔の後に、新たな動作が該起動ユニットにおいて起動され得るようになる時間間隔である。機能ユニットの待ち時間とは、該機能ユニットが動作を実行するために要する時間である。VLIWプロセッサにおける機能ユニットの動作をスケジューリングするための最悪のケースを想定した待ち時間に基づいて、前記コンパイラはスケジュールにおいてNOP(ヌル操作、no operation命令)を導入する必要がある。
残念なことに、殆どのアプリケーションに存在するCPU(Central Processing Unit)における命令レベル並列性(ILP、Instruction level parallelism)の度合いは限られており、CPUの機能ユニットの多くについて、単にNOPを記述するために多くの高価なプログラムメモリのリソースが利用されることに導く。
米国特許US6154828及び欧州特許出願公開EP1158401A2といった文献は、命令の圧縮及び復元(decompression)方式を開示しているが、これらは、パイプラインを命令デコーダに向かって発行される命令語を再配列及び/又は伸張するために、特殊なパイプライン、レジスタ又はメモリセクションを必要とする。
本発明の目的は、いずれの追加のメモリ要件又はパイプラインをも導入することなく、必要とされるプログラムメモリの量を削減することを目的とする。
本目的は、請求項1に記載の並列処理装置、請求項11に記載の復元方法、請求項12に記載の圧縮方法、及び請求項13に記載のコンピュータプログラムによって達成される。
従って、後続する命令語から抽出される個々の命令は、同一の一般的な命令形式の新たな単一の命令語へと結合される。このことは、いずれの付加的なパイプライン段又はメモリセクションをも利用することなく、削減された量のプログラムメモリへと導く。遅延命令又は遅延スロットはかくして、プログラムメモリに保存される前に命令語から除去されることができる。命令形式はこのとき、失われた遅延命令を再組み込みすることにより、命令パイプラインによって直接に取り扱われる。削減された量のプログラムメモリに加えて、減少させられた保存される命令の量のため、必要とされるメモリアクセス帯域幅が削減される。提案される圧縮手法は、低いハードウェアの複雑さ及び高いサイクル効率で実現され得る。
命令処理は、前記第1の及び少なくとも前記第2の命令語がそれぞれ少なくとも1つの遅延命令を持つ所定の命令パターンの1つを有する場合、前記第1の及び少なくとも前記第2の個別の命令を抽出し、前記第1の及び少なくとも前記第2の命令語を前記単一の命令語に圧縮するように適応されても良い。とりわけ、前記遅延命令はヌル操作であっても良い。これにより、個々の命令の共通の単純なパターンが、所定の方法でグループ化され、物理的なプログラムメモリ語と正確に整合される。このことは、メモリ使用及び複雑さの点で非常に有益である。
更に、圧縮の間又は圧縮の後、前記命令処理は、所定の制御情報を前記単一の命令語に追加するように適応され、前記制御情報は、前記抽出された第1の及び少なくとも第2の個別の命令の前記それぞれの機能ユニットへの割り当て、及び前記第1の及び少なくとも第2の個別の命令の前記それぞれの機能ユニットにおける連続的な順序の、少なくとも一方を示しても良い。当該制御情報は、少なくとも1つのそれぞれの最上位ビットとして前記単一の命令語に追加された少なくとも1つのビットから成っても良い。かくして、圧縮された個々の命令の元のメモリアドレス又はシーケンスを保存するための付加的なメモリ空間を必要とすることなく、それぞれの新たな単一の命令語が個別に復元又は伸張されることができる。
復元の間又は復元の前に、前記命令処理は、プログラムメモリから読み取られた命令語における前記制御情報チェックし前記制御情報に基づいて前記第1の命令語及び少なくとも第2の命令語を再確立し、前記再確立された第1の命令語及び少なくとも第2の命令語を命令デコーダに供給するように適応されても良い。それ故、各プログラムメモリのフェッチ時に、個々の命令又は制御語が、命令デコーダに正常な態様で発行されることができる。
前記命令処理は、遅延スロット及び分岐目標に関連する全ての命令語をマーキングし、前記マーキングに基づいて前記第1の個別の命令及び少なくとも第2の個別の命令の抽出を決定するように適応されても良い。このとき、少なくとも1つのプログラムメモリアドレスが、決定された抽出に基づいて調節されても良い。かくして、提案される手法は、コード生成アプリケーションのユーザに対して透明であり、全ての段階が自動的に処理されることができる。
他の有利な変更は、従属請求項に定義される。
本発明の実施例が、添付図面を参照しながらここで説明される。
図1は、本発明の実施例によるVLIWプロセッサを示す。前記VLIWプロセッサは、幾つかの機能ユニット30−1乃至30−nに接続されたVLIWコントローラ40を有する。VLIWコントローラ40は、とりわけ機能ユニット30−1乃至30−nの動作又は個々の命令を発行する。相互接続ネットワーク20は、機能ユニット30−1乃至30−nを、これら機能ユニットの間でのデータ伝送を容易化するため、直接に接続する。個々のレジスタファイル10−1乃至10−nを持つグローバルレジスタファイルは、機能ユニット30−1乃至30−nによって生成される値を保存する。前記グローバルレジスタファイルの目的は、機能ユニット30−1乃至30−nの1つによって生成されたデータを、他の機能ユニット30−1乃至30−nへと通信する手段を提供することである。機能ユニット30−1乃至30−nは、少なくとも1つの標準的な算術ユニット及び論理ユニット、定数生成ユニット並びにデータ及び命令メモリのためのメモリユニット等を含んでも良い。これらのユニットは、多くのアプリケーションにおいて利用され得る。
通信ネットワーク20は、コントローラ40に備えられるシーケンサ機能の制御の下、機能ユニット30−1乃至30−nの出力ポートをレジスタファイル10−1乃至10−nの入力ポートに接続し、機能ユニット30−1乃至30−nの入力ポートをレジスタファイル10−1乃至10−nの出力ポートに接続する。とりわけ、コントローラ40の命令デコーダ44は、コントローラ40の命令レジスタ42から命令語を取得する。各サイクルにおいて、命令レジスタ42は、新たな命令語をロードされる。当該命令語は、1サイクルにおいて正当な制御情報を全てのデータ経路成分について生成するために必要な情報を含む。利用される命令エンコードの概念に依存して、前記命令語は、同一のサイクル又は異なるサイクル中のデータ経路成分を同時に制御する。いずれの場合にも、本アーキテクチャにおけるように、1以上の機能ユニットを用いて、1つの命令語が幾つかの並列動作の実行を含むことができる。命令語のシーケンスを含むプログラムは、プログラムメモリ50に保存される。
実施例によれば、追加のパイプライン段を利用することなく、例えばNOPのような遅延命令を記述するために必要とされるプログラムメモリの量を提供するための命令処理方式が提案される。とりわけ、低いハードウェアの複雑性のみが含まれ、高いサイクル効率が達成されるという事実のため、低パワー処理ユニットに特に適した、より効率的な方法に導く圧縮又はコンパクト化方式が提案される。例えば、一般のコンパイルされたCコードを用いて、約25%のプログラムメモリ空間の節約が達成される。
例えばディジタル信号処理のためにスケジューリングされたプログラムコードにおいては、多くのプログラムセグメントが、例えば関数に入る時又は関数から出る時のスタックフレームの操作のような、算術的な演算を伴わずに定義された純粋なメモリロード又は記憶動作を持つ。これらの動作は、例えばロード記憶ユニットのような、単一の機能ユニットに関連する。以下、2つの別個の命令を有する命令パターンのシーケンスの例:
NOP||mem1
NOP||mem2
・・・
・・・
NOP||memN
が示されるが、該例はロード記憶ユニットにのみ当てはまるものではなく、いずれの機能ユニットに当てはまり得る。
第1の好適な実施例によれば、2つの連続的なメモリ動作、例えば
mem1||mem2
を持つ新たな命令形式が定義される。ここで当該新たな命令形式を示す情報は、命令セットのグラフ内の、例えば最上位レベルのような、いずれの部分に挿入されても良い。例えば、単一の形式32ビットISA(Instruction Set Architecture)を持つ機械においては、前記新たな形式は、最上位ビット(MSB)位置に配置された特別なビットにより示されることができる。
かくして、32ビット命令語のMSB位置に追加され、元の及び連続的な形式を区別又はコーディングするために利用される斯かる形式ビットを用いて、ビットシーケンスは以下のように表現される:
“0”<32> 元のISA
“1”<32> 連続的な拡張
当該新たな命令形式は次いで、失われた算術NOPを拡張又は追加することにより、命令パイプラインによって、NOP命令を伴う元の命令シーケンスが発行されたかのように取り扱われる。提案される手法は単に整合されたプログラムメモリアクセスの拡大を含むという事実のため、追加のパイプライン段又はメモリセクションは必要とされず、サイクル効率は維持される。
図2は、好適な実施例による、制御情報CBを持つ命令語のための一般的な方式を示す。各プログラム語又は命令語は、例えば個々の命令FUx1−Iy1乃至FUxn−Iynの割り当て及び連続的な順序を定義する命令形式を示す制御情報CBに対応する、所定の数のビットだけ拡張される。新たに拡張された命令幅もまた、物理プログラムメモリ50に割り当てられる。
従来の命令形式においては、命令語内の個々の命令の位置は、機能ユニット30−1乃至30−n及び一般的な命令サイクルの対応する1つに固定的に割り当てられていた。新たな命令形式は、異なるサイクル及び/又は異なる機能ユニットの個々の命令を、単一の命令語に組み込むことを可能とする。それ故、第1の好適な実施例による、2つの別個の命令を持つ32ビット命令語の場合には、従来のパターンシーケンス:
NOP||FU1 (命令1)
NOP||FU1 (命令2)
は、新たな単一の命令語:
“1”<FU1命令1><FU1命令2>=“1”<FU1−I1><FU1−I2>
に圧縮又はコンパクト化されることができる。ここで「FU」は機能ユニットを示し、「I」は当該機能ユニットにおける命令の連続的な順序を示すために利用される命令インデクスを示す。例えば「FU1」は、メモリロード記憶ユニットであっても良いし、又は一般にVLIWプロセッサに備えられた機能ユニット30−1乃至30−nの1つであっても良い。
より一般的な意味では、当該命令処理手法は、幾つかのNOP又は他の非動作的遅延命令を含む、いずれの命令パターンのセットの圧縮にも適用され得る。コーディング効率は、命令パターンの出現の統計に純粋に起因し、ここで1つの物理プログラムメモリ語にフィットする機能ユニット及び命令のいずれの組み合わせもがコーディングされ得る。有効な例として、NOP命令を除去するために、「NOP||mem」のような単純な一般的なパターンが検出され組み合わせられ得る。
第2の好適な実施例によれば、前記命令語は、3つの個々の命令から成る組(triple)を有する。この場合、制御情報CBは、命令の割り当て及び連続的な順序の4つの異なる組み合わせを区別するために、例えば以下に定義されるような、2ビット情報であっても良い。
“00”<FU3−I1><FU2−I1><FU1−I1> (並列形式)
“01”<FU1−I1><FU1−I2><FU1−I3> (3つの圧縮されたNOP||NOP||FU1の組)
“10”<FU2−I1><FU2−I2><FU2−I3> (3つの圧縮されたNOP||FU2||NOPの組)
“11”<FU3−I1><FU2−I2><FU1−I2> (FU3||NOP||NOP、NOP||FU2||FU1の対を有する)
これにより、NOP命令を有する所定のパターンが検出されるという事実のため、NOP命令はプログラムメモリ50に保存される必要がなく、所定のパターンを有する所定の数の連続的な命令語が、前記所定のパターンから抽出される非NOP命令のパターンを有する単一の命令語に置き換えられる。これらの圧縮された命令語は次いで、プログラムメモリ50に保存される。
図3は、図1のプロセッサ40により実行され得る、第1の好適な実施例による、プログラムメモリのフェッチ動作の模式的なフロー図を示す。新たな命令語がプログラムメモリ50からフェッチされる度に、プロセッサ40は、命令デコーダ44に制御語又は命令語を正しく発行するために、図3に記載された手順に従う。ステップS100において、フェッチ動作の最初のサイクルを示すパラメータC1が、論理値「真」に対応する「1」に設定される。次いでステップS110において、制御情報又は制御ビットCBの内容がチェックされる。制御情報CBの値「0」によって規定される従来の命令形式が決定された場合、ステップS120において、従来の圧縮されていない命令語が決定され、該命令語の32ビット全てが命令デコーダ44に直接発行される。一方、制御情報CBが、圧縮された命令語を示す値「1」に設定されていると決定された場合、ステップS130においてサイクルパラメータC1の値がチェックされる。サイクルパラメータC1が「1」に設定されており最初のサイクルを示している場合には、ステップS140において、下位の個別の命令が選択され、NOP命令が追加される。次いでステップS150において当該最初の復元された命令語が発行され、ステップ160においてサイクルパラメータC1が、論理値「偽」を示す「0」に設定される。
その後、本手順はステップS110に戻る。次いでステップS130においてサイクルパラメータが「0」に設定されており2番目のサイクルを示している場合には、ステップS170において、当該命令語の上位の個別の命令が選択され、NOP命令が追加される。次いでステップS180において、復元された命令語が2番目の連続的な命令語として発行される。
「下位の個別の命令」なる語句は、より下位のビット位置における命令を示し、「上位の個別の命令」なる語句は、より上位のビット位置における命令を示すことに留意されたい。
図4は、図3のフロー図に基づく命令発行操作ロジックの適切な実装の例を示す模式的な図を示す。該操作ロジックは、命令語が2つの個別の命令、即ちビット番号0乃至15をカバーする下位命令と、ビット番号16乃至31をカバーする上位命令とを有する、第1の所定の例に基づく。図4において、命令レジスタ42から命令デコーダ44への情報の論理フローが示されている。制御情報CBの値に基づいて、上位及び下位の個別の命令の少なくとも一方を有する3つの組み合わせのうちの1つが、命令デコーダ44に供給される。とりわけ、新たなMSBとしてビット位置32に追加された制御情報が「0」に設定されている場合は、圧縮されていない命令パターンが決定され、1サイクルに1命令として命令デコーダ44に供給される。
一方、制御情報CBが「1」に設定されている場合には、2つの復元された命令語が、命令デコーダ44に2つのサイクルで連続的に供給される。最初のサイクルにおいて、下位の個別の命令が上位ビット位置でNOP動作と組み合わせられ、該組み合わせられた復元された命令語が命令デコーダ44に供給される。2番目のサイクルにおいて、上位の個別の命令が、下位命令として、より高いビット位置において第2のNOP動作と再び組み合わせられ、連続的な第2の復元された命令語を形成する。該第2の復元された命令語もまた、命令デコーダ44に供給される。
一般に、好適な実施例によれば、n個の個別の命令を1つの物理メモリ語又は命令語に詰めることにより、n個の命令が圧縮される。前記第1の及び第2の好適な実施例においては、それぞれn=2及びn=3である。それ故、追加のパイプライン段が必要とされない。これに対し、最初に説明した従来の圧縮手法は、命令語を当該命令語の配列を失うように処理するため、パイプラインを命令デコーダへと発行される抽出語を再配列及び伸張するために、追加のパイプライン段が利用される。
好適な実施例によれば、所定の抽出パターンを利用することにより、圧縮された個別の命令のグルーピングが、物理プログラムメモリ語と整合される。これにより、より少ないメモリ空間を持つことによって電力が節約され、2以上の命令の発行のために1つのみの命令フェッチが必要とされるという事実のため、プログラムメモリアクセス帯域幅が削減される。
図5は、前記第1の好適な実施例によるコンパクト化又は圧縮方式の模式的なフロー図を示す。本手順は、プロセッサ40のコンパイラ、アセンブラ及び/又はリンカ機能により実行されても良く、幾つかの方法でプログラマのソフトウェアツールフローをサポートする。遅延スロットは対で処理される必要があり、該スロット内に分岐目標を持たない必要がある。分岐目標は常に、適切なコンパクト化又は圧縮候補の対を分解するものとしてみなされる必要があり、これにより圧縮は分岐目標によって提示される、とり得る制御フローのエントリを含む正当な対においてのみ実行されることとなる。
ステップS200において、全体のプログラムが本手順によって処理されたか否かがチェックされる。否であれば、ステップS210において、次の遅延スロットブロック、即ちNOP命令を含むパターンがマークされる。次いでステップS220において、次の分岐目標がマークされ、本手順はステップS200に戻る。本ループは、本手順が遅延命令及び分岐目標に関連する全ての命令をマークするまで繰り返される。ステップS200において全てのプログラムが処理されたと決定された場合、ステップS230において、所定のパターンの命令対が、圧縮されたブロック又は命令語によって代替又は置換される。最後にステップS240において、全てのプログラムメモリのアドレスが、個別の命令語の圧縮された命令語への併合に基づいて調節される。ステップS230において、「NOP||mem」パターンのような、隣接する命令パターンの連続した領域を考慮することにより、正当な対が指示され得る。
プログラム空間の「高さ」が圧縮によって減少させられているという事実のため、ステップ240におけるアドレス調節は、全てのフロー制御目標アドレスを再計算する後処理段によって実行されることができる。更に、例えば「NOP||mem」パターンのような、選択された所定のパターンを優先するように、例えばコンパイラ機能のもののような、スケジューラ内のコード選択のための内部基準にバイアスを掛け、かくして正当な圧縮候補を識別するための範囲を拡大することにより、提案される圧縮方式が拡張され得る。
提案される圧縮方式は、例えばディジタル信号プロセッサのためのCコンパイラのユーザに対して完全に透明であり、全ての段が自動的に処理される。アセンブリ言語のプログラマは、コンパクト化候補を手動で探しても良く、一方で正常なフロー目標アドレス解決のような他の段は自動的に実行される。コード生成のいずれの方法においても、ISS(Instruction Set Simulator)は、当該命令クラスの正確なレベルの振る舞いを正しくシミュレートする。
要約すると、第1の命令語から抽出される第1の個別の命令と、少なくとも後続する第2の命令語から抽出される少なくとも1つの第2の個別の命令とが、新たな単一の命令語として処理される、並列処理装置及び命令処理方式が提案される。これにより、2つの元の命令が発行されたかのように、少なくとも2つの連続的な動作が、命令パイプラインによって処理される1つの命令語に定義される。このことは、除去された遅延命令を追加するように、圧縮された命令形式を拡張することにより達成される。
本発明は上述の好適な実施例に制限されるものではなく、幾つかの個別の命令を持つ命令語により制御されるいずれの並列処理装置にも適用され得ることに留意されたい。特に、本発明は非VLIW機械においても適用され得る。提案される圧縮方式は、コンピュータプログラムに従って動作するいずれの汎用コンピュータによっても実装され得る。該コンピュータプログラムは、フロッピー(登録商標)又はCD−ROMのような記憶媒体のようないずれの適切な担持媒体によって担持されても良いし、又は担持信号によって担持されても良い。斯かる担持信号は、インターネットのような通信ネットワークを介してダウンロードされる信号であっても良い。添付されたコンピュータプログラムの請求項は、上述の形態のいずれかで提供されるコンピュータプログラムをカバーするものとして解釈されるべきものである。本発明において提案される並列処理装置は、マルチメディアアプリケーション、ネットワークルータ、ビデオモバイル電話、インテリジェント車両、ディジタルテレビジョン、音声認識、ゲーム、信号処理アプリケーション等における使用のための高度に集積された環境にプロセッサコアとして含められても良い。実施例はかくして、添付される請求項の範囲内で変化し得る。
本発明が実装され得るVLIWプロセッサの模式的なアーキテクチャを示す。 好適な実施例による圧縮された命令語の模式的な表現を示す。 第1の好適な実施例によるプログラムメモリフェッチ動作の模式的なフロー図を示す。 第1の好適な実施例による命令発行操作ロジックの実装の模式的な図を示す。 第1の好適な実施例による圧縮方式の模式的なフロー図を示す。

Claims (13)

  1. 少なくとも2つのそれぞれの機能ユニットを制御するために利用される、少なくとも2つの個別の命令を有する命令語に基づきデータを処理する並列処理装置であって、第1の命令語から抽出された第1の個別の命令と、少なくとも1つの後続する第2の命令語から抽出された少なくとも第2の個別の命令とを、新たな単一の命令語として処理するための命令処理手段を有する装置。
  2. 前記命令処理手段は、前記第1の及び少なくとも前記第2の命令語がそれぞれ少なくとも1つの遅延命令を持つ所定の命令パターンの1つを有する場合、前記第1の及び少なくとも前記第2の個別の命令を抽出し、前記第1の及び少なくとも前記第2の命令語を前記単一の命令語に圧縮するように構成された、請求項1に記載の装置。
  3. 前記遅延命令はヌル操作である、請求項2に記載の装置。
  4. 前記単一の命令語は、プログラムメモリに保存される、請求項2に記載の装置。
  5. 前記命令処理手段は、所定の制御情報を前記単一の命令語に追加するように構成され、前記制御情報は、前記抽出された第1の及び少なくとも第2の個別の命令の前記それぞれの機能ユニットへの割り当て、及び前記第1の及び少なくとも第2の個別の命令の前記それぞれの機能ユニットにおける連続的な順序の、少なくとも一方を示す、請求項1乃至4のいずれか一項に記載の装置。
  6. 前記制御情報は、少なくとも1つのそれぞれの最上位ビットとして前記単一の命令語に追加された少なくとも1つのビットから成る、請求項5に記載の装置。
  7. 前記命令処理手段は、プログラムメモリから読み取られた命令語における前記制御情報チェックし前記制御情報に基づいて前記第1の命令語及び少なくとも第2の命令語を再確立し、前記再確立された第1の命令語及び少なくとも第2の命令語を命令デコーダに供給するように構成された、請求項5に記載の装置。
  8. 前記命令処理手段は、遅延スロット及び分岐目標に関連する全ての命令語をマーキングし、前記マーキングに基づいて前記第1の個別の命令及び少なくとも第2の個別の命令の抽出を決定するように構成された、請求項1に記載の装置。
  9. 前記命令処理手段は、前記決定された抽出に基づいて、少なくとも1つのプログラムメモリアドレスを調節するように構成された、請求項8に記載の装置。
  10. 前記並列処理装置はVLIWプロセッサである、請求項1に記載の装置。
  11. 少なくとも2つのそれぞれの機能ユニットを制御するために利用される、少なくとも2つの個別の命令を有する命令語を復元する方法であって、前記方法は、
    (a)前記命令語に追加された制御情報をチェックするステップと、
    (b)前記少なくとも2つの個別の命令を抽出し、それぞれが前記抽出された個別の命令の一方を含む少なくとも2つの新たな命令語を生成するステップと、
    (c)少なくとも1つの遅延命令を、前記少なくとも2つの新たな命令語のそれぞれに追加するステップと、
    を有し、前記ステップ(b)及び(c)は、ステップ(a)の結果に応じて実行される方法。
  12. 少なくとも2つのそれぞれの機能ユニットを制御するために利用される、少なくとも2つの個別の命令をそれぞれが有する命令語を圧縮する方法であって、前記方法は、
    第1の命令語から第1の個別の命令を抽出するステップと、
    少なくとも1つの後続する第2の命令語から少なくとも第2の個別の命令語を抽出するステップと、
    前記第1の及び第2の個別の命令語から新たな単一の命令語を生成するステップと、
    を有する方法。
  13. コンピュータシステムにロードされたときに、前記コンピュータシステムを、請求項12又は13に記載の圧縮方法のステップを実行するように制御するコード手段を有するコンピュータプログラム。
JP2006544614A 2003-12-16 2004-11-30 メモリ効率に優れた命令処理方式 Pending JP2007514245A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03104704 2003-12-16
PCT/IB2004/052595 WO2005059738A2 (en) 2003-12-16 2004-11-30 Memory-efficient instruction compressing scheme

Publications (1)

Publication Number Publication Date
JP2007514245A true JP2007514245A (ja) 2007-05-31

Family

ID=34684589

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006544614A Pending JP2007514245A (ja) 2003-12-16 2004-11-30 メモリ効率に優れた命令処理方式

Country Status (7)

Country Link
US (1) US7716456B2 (ja)
EP (1) EP1697830B1 (ja)
JP (1) JP2007514245A (ja)
CN (1) CN100485606C (ja)
AT (1) ATE422258T1 (ja)
DE (1) DE602004019346D1 (ja)
WO (1) WO2005059738A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009026106A (ja) * 2007-07-20 2009-02-05 Oki Electric Ind Co Ltd 命令コード圧縮方法と命令フェッチ回路
JP2014524097A (ja) * 2011-07-28 2014-09-18 クアルコム,インコーポレイテッド エントロピ符号化命令シーケンスの記憶および実行可能な形式への変換のための方法および装置
US9201652B2 (en) 2011-05-03 2015-12-01 Qualcomm Incorporated Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102741817B (zh) * 2009-09-04 2015-12-16 英特尔公司 方法和装置和记录载体
JP5590849B2 (ja) * 2009-10-08 2014-09-17 キヤノン株式会社 複数の処理モジュールを有する並列処理回路を備えるデータ処理装置、その制御装置、およびその制御方法、プログラム
CN111104164A (zh) * 2016-04-26 2020-05-05 中科寒武纪科技股份有限公司 一种用于执行矩阵乘运算的装置和方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07121352A (ja) * 1993-10-21 1995-05-12 Canon Inc 演算処理装置
JP2000081982A (ja) * 1998-09-04 2000-03-21 Matsushita Electric Ind Co Ltd コンパイラ、プロセッサおよび記録媒体
JP2000305781A (ja) * 1999-04-21 2000-11-02 Mitsubishi Electric Corp Vliw方式プロセッサ、コード圧縮装置、コード圧縮方法およびコード圧縮プログラムを記録した媒体

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154828A (en) 1993-06-03 2000-11-28 Compaq Computer Corporation Method and apparatus for employing a cycle bit parallel executing instructions
US5870576A (en) * 1996-12-16 1999-02-09 Hewlett-Packard Company Method and apparatus for storing and expanding variable-length program instructions upon detection of a miss condition within an instruction cache containing pointers to compressed instructions for wide instruction word processor architectures
JPH1185512A (ja) * 1997-09-03 1999-03-30 Fujitsu Ltd 命令圧縮格納および命令復元機能を有するデータ処理装置
GB2366643B (en) * 2000-05-25 2002-05-01 Siroyan Ltd Methods of compressing instructions for processors

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07121352A (ja) * 1993-10-21 1995-05-12 Canon Inc 演算処理装置
US5652852A (en) * 1993-10-21 1997-07-29 Canon Kabushiki Kaisha Processor for discriminating between compressed and non-compressed program code, with prefetching, decoding and execution of compressed code in parallel with the decoding, with modified target branch addresses accommodated at run time
JP2000081982A (ja) * 1998-09-04 2000-03-21 Matsushita Electric Ind Co Ltd コンパイラ、プロセッサおよび記録媒体
JP2000305781A (ja) * 1999-04-21 2000-11-02 Mitsubishi Electric Corp Vliw方式プロセッサ、コード圧縮装置、コード圧縮方法およびコード圧縮プログラムを記録した媒体
EP1046983B1 (en) * 1999-04-21 2003-10-22 Mitsubishi Denki Kabushiki Kaisha VLIW processor and program code compression device and method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009026106A (ja) * 2007-07-20 2009-02-05 Oki Electric Ind Co Ltd 命令コード圧縮方法と命令フェッチ回路
US9201652B2 (en) 2011-05-03 2015-12-01 Qualcomm Incorporated Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy
US10754653B2 (en) 2011-05-03 2020-08-25 Qualcomm Incorporated Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy
JP2014524097A (ja) * 2011-07-28 2014-09-18 クアルコム,インコーポレイテッド エントロピ符号化命令シーケンスの記憶および実行可能な形式への変換のための方法および装置
US10120692B2 (en) 2011-07-28 2018-11-06 Qualcomm Incorporated Methods and apparatus for storage and translation of an entropy encoded instruction sequence to executable form

Also Published As

Publication number Publication date
EP1697830B1 (en) 2009-02-04
WO2005059738A2 (en) 2005-06-30
WO2005059738A3 (en) 2006-12-28
CN100485606C (zh) 2009-05-06
US20070162724A1 (en) 2007-07-12
CN101010666A (zh) 2007-08-01
EP1697830A2 (en) 2006-09-06
US7716456B2 (en) 2010-05-11
DE602004019346D1 (de) 2009-03-19
ATE422258T1 (de) 2009-02-15

Similar Documents

Publication Publication Date Title
Peleg et al. Intel MMX for multimedia PCs
TWI270007B (en) Method and apparatus for shuffling data
KR100218255B1 (ko) Mpeg 오디오 디코딩용 고속 재양자화 장치 및 방법
JP3180075B2 (ja) 異なる命令コード相互間の動的変換装置及び方法
US10678540B2 (en) Arithmetic operation with shift
US20110106871A1 (en) Apparatus and method for performing multiply-accumulate operations
JP4487479B2 (ja) Simd命令シーケンス生成方法および装置ならびにsimd命令シーケンス生成用プログラム
US8379032B2 (en) System and method of mapping shader variables into physical registers
JP2002522821A (ja) データプロセッサとデータ処理方法
JP5869125B2 (ja) エントロピ符号化命令シーケンスの記憶および実行可能な形式への変換のための方法および装置
US7574583B2 (en) Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor
JP2005332361A (ja) プログラム命令圧縮装置および方法
CN114428639A (zh) 一种字节码指令集的指令精简方法和系统
Glossner et al. Trends in compilable DSP architecture
JP2007514245A (ja) メモリ効率に優れた命令処理方式
TWI773783B (zh) 用於基於暫存器的複數處理的設備、方法、積體電路、電腦程式及電腦可讀取儲存媒體
US7523294B2 (en) Maintaining original per-block number of instructions by inserting NOPs among compressed instructions in compressed block of length compressed by predetermined ratio
JP2001125792A (ja) 最適化促進装置
US20040025151A1 (en) Method for improving instruction selection efficiency in a DSP/RISC compiler
US20050076172A1 (en) Architecture for static frames in a stack machine for an embedded device
JP3698125B2 (ja) データ処理システム、データ処理装置及びデータ処理方法
Biswas et al. Code size reduction in heterogeneous-connectivity-based DSPs using instruction set extensions
US20130290677A1 (en) Efficient extraction of execution sets from fetch sets
JP2000056981A (ja) プログラム変換装置
Foster et al. 16-kbps modem design using vector quantization

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070326

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071127

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111108

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20111118

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120403