(57)【要約】命令、とりわけ、ＶＬＩＷ命令を処理するためのプロセッサ装置および方法が、説明され、命令語は、メモリ手段に格納され、それぞれの命令語は、セグメントからなり、命令語は、メモリ手段からフェッチされ、フェッチ手段によってフェッチされた命令語に基づいて、命令が、実行される。本発明の特徴は、本質的に、関連する情報を含む命令語のセグメントだけがフェッチされることである。
2005535045.tif 000002
【特許請求の範囲】
【請求項１】
命令語を格納するためのメモリ手段であり、それぞれの命令語が、複数のセグメントからなる、前記メモリ手段と、
前記メモリ手段から命令語をフェッチするためのフェッチ手段と、
前記フェッチ手段によってフェッチされた命令語に基づいて命令を実行するための実行手段と、を備えた、
命令、とりわけ、超長命令語（ＶＬＩＷ）命令を処理するためのプロセッサ装置であって、
前記フェッチ手段が、本質的に、関連する情報を含む命令語のセグメント（ラインｉ）だけをフェッチするようにしてなることを特徴とするプロセッサ装置。
【請求項２】
前記メモリ手段が、前記命令語が同じコードサイズ密度を有する種類の命令語を格納するようにしてなる、請求項１に記載の装置。
【請求項３】
前記メモリ手段が、非圧縮命令語を格納するようにしてなる、請求項２に記載の装置。
【請求項４】
前記メモリ手段が、複数のメモリ部分を備え、それぞれのメモリ部分が、命令語の１つのセグメントを格納するように提供され、前記フェッチ手段が、関連する情報を含むメモリ部分にだけアクセスするようにしてなる、請求項１から３のいずれか一項に記載の装置。
【請求項５】
前記メモリ手段が、複数のラインを含み、それぞれのラインが、完全な命令語を格納するように提供された、請求項１に記載の装置。
【請求項６】
前記メモリ手段の幅が、命令語の異なるセグメントに基づいて、すべてのラインにわたってメモリユニットに分割され、それによって、それぞれのメモリユニットが、同じ順序および／または同じ種類の命令語セグメントを格納するためのメモリ部分によって構成された、請求項４に記載の装置。
【請求項７】
命令語のすべてのセグメントと前記メモリ手段とが、同じ幅を有し、それぞれのメモリ部分が、命令セグメントを格納するための個々のラインを形成する、請求項４から５に記載の装置。
【請求項８】
前記メモリ手段のそれぞれのラインが、命令語の様々なセグメントに基づいて、前記メモリ部分に分割され、それによって、それぞれのメモリ部分が、命令語の１つのセグメントを格納するように提供された、請求項４から５に記載の装置。
【請求項９】
命令語をメモリ手段に格納するステップであり、それぞれの命令語が、いくつかのセグメントからなる、前記格納するステップと、
前記メモリ手段から命令語をフェッチするステップと、
前記フェッチ手段によってフェッチされた命令語に基づいて命令を実行するステップと、を備えた、
命令、とりわけ、超長命令語（ＶＬＩＷ）命令をプロセッサ装置において処理する方法であって、
本質的に、関連する情報を含む命令語のセグメントだけが、フェッチされることを特徴とする方法。
【請求項１０】
命令語が、同じコードサイズ密度を有する、請求項９に記載の方法。
【請求項１１】
命令語が、圧縮されていない、請求項１０に記載の方法。
【請求項１２】
前記メモリ手段を複数のメモリ部分に分割するステップをさらに備え、それぞれのメモリが、命令語の１つのセグメントを格納する、請求項９から１１のいずれか一項に記載の方法。
【請求項１３】
前記メモリ手段を複数のラインに分割するステップをさらに備え、それぞれのラインが、完全な命令語を格納する、請求項９から１２のいずれか一項に記載の方法。
【請求項１４】
命令語の様々なセグメントに基づいて前記メモリ手段の幅をすべてのラインにわたってメモリユニットに分割し、同じ順序および／または同じ種類の命令語セグメントを格納するためのメモリ部分によってそれぞれのメモリユニットを形成するステップをさらに備えた、請求項１２から１３に記載の方法。
【請求項１５】
同じ幅を有する命令語のすべてのセグメントと前記メモリ手段とを提供し、命令セグメントを格納するための個々のラインを形成するようにそれぞれのメモリ部分を構成するステップをさらに備えた、請求項１２から１３に記載の方法。
【請求項１６】
命令語の様々なセグメントに基づいて前記メモリ手段のそれぞれのラインを前記メモリ部分に分割し、命令語の１つのセグメントを格納するようにそれぞれのメモリ部分を構成するステップをさらに備えた、請求項１２から１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、命令、とりわけ、超長命令語（ＶＬＩＷ）を処理するためのプロセッサ装置に関し、命令語を格納するためのメモリ手段であり、それぞれの命令語が、セグメントからなる、前記メモリ手段と、前記メモリ手段から命令語をフェッチするためのフェッチ手段と、前記フェッチ手段からフェッチされた命令語に基づいて命令を実行するための実行手段とを備える。さらに、本発明は、プロセッサ装置において、命令、とりわけ、超長命令語（ＶＬＩＷ）を処理するための方法に関し、命令語をメモリ手段に格納するステップであり、それぞれの命令語が、セグメントからなる、前記格納するステップと、前記メモリ手段から命令語をフェッチするステップと、前記フェッチ手段からフェッチされた命令語に基づいて命令を実行するステップとを備える。
【背景技術】
【０００２】
現在のほとんどのプロセッサは、命令レベル並列性を提供する。プロセッサのそれぞれの計算ユニットは、すべてのサイクルにおいて動作しているわけではないので、この並列性は、完全に利用されていないほとんどの時間である。ＶＬＩＷ（超長命令幅）プロセッサの場合、このオペレーションの欠如は、命令語におけるＮＯＰ（ノーオペレーション）セグメントによって提供される。２つの種類のＶＬＩＷプロセッサ、すなわち、基本的ＶＬＩＷプロセッサ、および、可変長ＶＬＩＷプロセッサが、存在する。
【０００３】
基本的ＶＬＩＷプロセッサは、いかなる場合にも、何もしないことを表現するＮＯＰセグメントを含む命令語全体をフェッチする。命令語が、プログラムメモリの複数のラインにわたって格納されると、すべてのラインの命令をフェッチすることは、ほとんどの場合には必要とされない多くのメモリアクセスを必要とし、そのために、メモリボトルネックを助長する。しかしながら、命令語全体をフェッチすることは、それが１つのプログラムラインまたはいくつかのプログラムラインに格納されるかどうかに関係なく、電力を消費し、かつ、時間を浪費することである。
【０００４】
可変長ＶＬＩＷプロセッサは、より洗練されたものである。それらのプロセッサの命令語は、圧縮され、かつ、関連する情報だけを含む。プログラムメモリからこの情報しかフェッチされないことは、効率を増大させること、および、消費電力を減少させることの両方に役立つ。さらにまた、この技術は、コードサイズ密度が改善され、その結果として、より小さいプログラムメモリを提供するという利点を提供する。しかしながら、それぞれの命令語は、様々に圧縮されるので、命令の長さが、変化し、そして、命令は、メモリの複数のプログラムラインに格納される。フィールドが、それぞれの命令語に付加され、命令がどのようにフェッチされなければならないか、および、その命令がどのように復元されなければならないかを指示する。プロセッサによっては、このオーバーヘッドは、現在の命令、または、それに続く命令の１つにも適用される。プロセッサハードウェアは、その付加情報によって、それぞれの命令をフェッチおよび復元することができなければならない。そのために、条件付きジャンプルーチンおよび条件付きブランチルーチンの実行は、命令語をフェッチおよびデコードするのを相当に複雑にし、したがって、命令語の処理オペレーション全体を相当に複雑なものにする。
【０００５】
米国特許第５，７７４，７３７Ａ号は、可変語長ＶＬＩＷ命令プロセッサを開示しており、ＶＬＩＷ命令語長レジスタが、提供される。ＶＬＩＷ命令は、ＶＬＩＷ命令語長リライト命令のようなＶＬＩＷ命令語長に関する指示を含む。この命令に基づいて、ＶＬＩＷ命令語長レジスタのＶＬＩＷ命令語長は、リライトされる。ＶＬＩＷ命令語長に関する何らかの指示を備えていない通常の命令（オブジェクトプログラム）の場合、ＶＬＩＷ命令語長レジスタに格納されるＶＬＩＷ命令語長は、電源投入時に実行される初期プログラムをロードすることによって、予め定められた値に初期化される。この初期化された命令語長は、固定値として使用され、従来のプロセッサのためのオブジェクトプログラムが、実行される。したがって、同時に実行される命令の数が少なく設定されている場合でさえも、「ＮＯＰ（ノーオペレーション）」が、減らされ、命令メモリの効率的な使用が、可能となる。
【０００６】
米国特許第５，８４８，２８８Ａ号から、コンピュータシステムが可変サイズ命令バンドルを実行するのを可能にする方法および装置が、分かる。プロセッサは、１サイクルにおいて発行することのできる命令発行グループのサイズをフェッチする。バンドルの終了が命令発行グループに存在するかどうかを検出し、そして、バンドルの終了に続く命令の発行をできないようにすることによって、任意のバンドルサイズにコンパイルされたコードを実行することをコンピュータができるようにする。
【０００７】
欧州特許第０，８８１，５７５Ａ１号の教示によれば、複数のメモリアクセスを同時に処理するスーパースカラープロセッサまたはＶＬＩＷプロセッサのキャッシュメモリにおいて、マルチポートアクセスオペレーションを行うことのできるメモリを提供するために、ユニットが提供され、そのユニットは、キャッシュメモリをそれの同時オペレーションのための複数のメモリバンクに細分化し、また、メモリポートを独立してそれぞれのメモリバンクに割り当てる。第１のサイクルにおいて、第１および第２のメモリポートが、それぞれ、第１および第２のメモリバンクに割り当てられる。ヒットすれば、複数のアクセスが、１つのサイクルにおいて完了する。失敗すれば、第１および第２のメモリポートは、それぞれ、第２のサイクルにおいて、第２および第１のメモリバンクに割り当てられる。
【０００８】
米国特許第６，２４９，８６１Ｂ１号は、２の非累乗のサイズのＶＬＩＷ命令のための命令フェッチユニットアライナーを開示しており、それは、２の非累乗のサイズの命令を２の累乗のサイズの命令データから選択するための選択ロジックおよび選択ロジックを制御するための制御ロジックを含む。
【０００９】
米国特許第５，８７８，２６７Ａ号は、ＶＬＩＷプロセッサおよびそのような命令を処理するためのプロセッサにおいて使用するための圧縮された命令フォーマットを説明しており、ソフトウェアが、キャッシュおよびメモリをより効率的に使用するのを可能にするＶＬＩＷプロセッサのための圧縮された命令フォーマットを生成する。命令は、バイト単位で整合され、かつ、可変長である。ブランチターゲットは、圧縮されない。フォーマットビットは、次の命令においてどれくらいの発行スロットが使用されるかを指定する。ＮＯＰセグメントは、メモリに格納されない。個々のオペレーションは、それらが、結果のないもの（ｒｅｓｕｌｔｌｅｓｓ）、保護されたもの（ｇｕａｒｄｅｄ）、ショート（ｓｈｏｒｔ）、０項（ｚｅｒｏａｒｙ）、１項（ｕｎａｒｙ）、または、２項（ｂｉｎａｒｙ）であるかどうかのような特徴に基づいて圧縮される。命令は、圧縮された形式でメモリおよびキャッシュに格納される。命令は、キャッシュから読み出された後、実行時に復元される。
【００１０】
米国特許第６，０８５，３０６Ａ号によれば、ＶＬＩＷ命令を高い効率で実行するプロセッサのために、３２ビット命令は、４ビットのフォーマットフィールド、４ビットのオペレーションフィールド、および、２つの１２ビットのオペレーションフィールドからなる。４ビットのオペレーションフィールドは、暗黙的に指示された定数レジスタに格納された値をブランチアドレスとして使用するブランチオペレーションを指示するオペレーションコード「ｃｃ」または定数「ｃｏｎｓｔ」しか含むことができない。４ビットのオペレーションフィールドの定数は、フォーマットフィールド内に提供されたフォーマットコードによって指定される。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、従来技術の上述した欠点を克服し、命令を処理する効率を増大させ、そのような処理に必要な消費電力を減少させることである。
【課題を解決するための手段】
【００１２】
上述した目的およびさらなる目的を達成するために、本発明の第１の側面によれば、命令語を格納するためのメモリ手段であり、それぞれの命令語は、いくつかのセグメントからなる、前記メモリ手段と、前記メモリ手段から命令語をフェッチするためのフェッチ手段と、前記フェッチ手段によってフェッチされた命令語に基づいて命令を実行するための実行手段と、を備えた、命令、とりわけ、ＶＬＩＷ命令を処理するためのプロセッサ装置が、提供され、このプロセッサ装置は、前記フェッチ手段が、本質的に、関連する情報を含む命令語のセグメントだけをフェッチするように構成されたことを特徴とする。
【００１３】
本発明の第２の側面によれば、命令語をメモリ手段に格納するステップであり、それぞれの命令語が、いくつかのセグメントからなる、前記格納するステップと、前記メモリ手段から命令語をフェッチするステップと、前記フェッチ手段によってフェッチされた命令語に基づいて命令を実行するステップと、を備えた、命令、とりわけ、ＶＬＩＷ命令をプロセッサ装置において処理する方法が、提供され、この方法は、本質的に、関連する情報を含む命令語のセグメントだけが、フェッチされることを特徴とする。
【００１４】
本発明によって提案される技術の基本原理は、関連する情報を含む命令語のセグメントだけをフェッチすることであるが、命令語全体は、メモリ手段で有効である。
【００１５】
したがって、本発明の教示によれば、命令語のそのようなセグメントをロードすることは、省略され、そのセグメントは、現在の命令には使用されないものであり、すなわち、ＮＯＰを含むものである。冗長な命令セグメントは、フェッチされないので、効率を増大させ、かつ、消費電力を減少させるという利点が、可変長ＶＬＩＷプロセッサの場合と同様に達成される。本発明の技術は、命令語をフェッチおよびデコードするとき、複雑なオペレーションを必要とせず、その結果、とりわけ、条件付きジャンプ命令および条件付きブランチ命令を容易にハンドリングすることができるので、命令語のフェッチおよびデコードを容易に実行することができる。通常、命令ヘッダが、命令語内に提供され、その命令ヘッダは、命令セグメントをロードすることが必要かどうか、すなわち、そのようなセグメントがＮＯＰを含むかどうかを指示するのに使用される。
【００１６】
したがって、本発明の技術は、命令のフェッチおよび復元のためのオペレーションが複雑になるという欠点を伴うことなく、より高い効率およびより低い消費電力をもたらす圧縮された命令語のいくつかの利点を兼ね備える。
【００１７】
本発明のさらなる有利な実施形態が、従属項に規定される。
【００１８】
好ましくは、命令語は、同じコードサイズ密度を有し、かつ、圧縮されない。そのために、コードサイズ密度は、基本的なＶＬＩＷプロセッサの場合と同じままである。好ましい結果としては、可変長ＶＬＩＷプロセッサに必要とされるような、可変長の圧縮された命令をフェッチおよび復元するための付加的なメカニズムを必要としないことである。
【００１９】
通常、メモリ手段は、複数のメモリ部分を備え、それぞれのメモリ部分は、命令語の１つのセグメントを格納するように提供され、フェッチ手段は、関連する情報を含むメモリ部分だけにアクセスするように構成される。
【００２０】
好ましくは、メモリ手段は、複数のラインを含み、それぞれのラインは、完全な命令語を格納するように提供される。
【００２１】
本発明の好ましい実施形態においては、メモリ手段の幅は、命令語の異なるセグメントに基づいて、すべてのラインにわたってメモリユニットに分割され、それによって、それぞれのメモリユニットは、同じ順序および／または同じ種類の命令語セグメントを格納するためのメモリ部分によって構成される。したがって、メモリ手段は、様々な命令語セグメントに基づいて、分割される。
【００２２】
本発明のさらなる好ましい実施形態においては、命令語のすべてのセグメントとメモリ手段とが、同じ幅を有し、それぞれのメモリ部分は、命令セグメントを格納するための個々のラインを形成する。したがって、それぞれの命令語セグメントは、メモリ手段の１つのラインに格納される。
【００２３】
本発明のまたさらなる好ましい実施形態においては、メモリ手段のそれぞれのラインは、命令語の異なるセグメントに基づいて、前記メモリ部分に分割され、それによって、それぞれのメモリ部分は、命令語の１つのセグメントを格納するように提供される。命令語全体は、メモリ手段の１つのラインに格納されるが、フェッチされるとき、フェッチ手段によって部分的にしか選択されない。
【００２４】
以下の説明および添付の図面によって、本発明の上述した目的およびその他の側面をよりよく理解できる。
【００２５】
図面を参照して、本発明の好ましい実施形態を説明する。
【発明を実施するための最良の形態】
【００２６】
以下において、ＶＬＩＷ（超長命令語）プロセッサのための命令語をフェッチすることを説明する。そのような命令語は、プロセッサに含まれるプログラムメモリに格納される。さらに、プロセッサは、命令語に基づいて所定のオペレーションを実行するための実行ユニットを含む。
【００２７】
提案された技術の基本原理は、関連する情報を含む命令語のセグメントだけをフェッチすることであるが、命令語全体は、プロセッサのプログラムメモリで有効である。命令語は、圧縮されない。したがって、コードサイズ密度は、基本的なＶＬＩＷプロセッサの場合と同じままである。好ましい結果としては、可変長の圧縮された命令をフェッチおよび復元するための付加的なメカニズムを必要としないことである。冗長な命令セグメントはフェッチされないので、効率が増大し、かつ、消費電力が減少するという利点が、可変長ＶＬＩＷプロセッサの場合と同様に達成される。
【００２８】
この技術においては、条件付きジャンプ命令および条件付きブランチ命令を容易にハンドリングすることができる。プログラムメモリおよび命令語の幅は、相関関係が残されたままなので、何らかの再整合、オーバーヘッド、または、複雑さを伴うことなく、ジャンプオペレーションのターゲット命令を容易にフェッチすることができる。
【００２９】
この技術は、様々な形態で実施されてもよい。考えられるそれらの３つの例は、
１．プログラムメモリ語は、様々な命令語セグメントに基づいて、分割される。
２．それぞれの命令語セグメントは、プログラムメモリの１ラインに格納される。
３．命令語全体は、１プログラムメモリラインに格納されるが、フェッチされるときには、部分的にしか選択されない。
【００３０】
以下、これらの３つの実施例をより詳細に説明する。
【００３１】
図１には、上述した技術の第１の実施例が、示され、プログラムメモリ幅は、様々な命令語セグメントＳ０、Ｓ１、Ｓ２、Ｓ３、Ｓ４に基づいて、分割される。したがって、プログラムメモリは、いくつかのより小さなメモリ部分Ｍ０、Ｍ１、Ｍ２、Ｍ３、Ｍ４に切り換えられ、それぞれのメモリ部分は、命令語のそれぞれのセグメントに対応づけられる。これらのメモリ部分のすべてが、同時にアクセスされてもよい。以前にフェッチされたヘッダＨは、命令がどのメモリ部分からフェッチされなければならないかを規定する。したがって、メモリ部分からロードしないようにヘッダによって指示されていれば、命令は、メモリ部分からはロードされず、これは、格納された命令語内のそれぞれのＮＯＰ（ノーオペレーション）セグメントに適用される。示される例においては、ヘッダの第２および第５のビットが、０であり、セグメントＳ１およびセグメントＳ４が、ＮＯＰを含むことを指示する。その他のセグメントは、有効な命令を含み、ヘッダ内の「１」である２進値によって指示される。当然ながら、逆のコード化が、使用されてもよい。この例においては、様々なセグメントを整合させる必要はなく、それぞれのセグメントは、任意の幅を有してもよい。
【００３２】
図２には、実施例が、第２の例として示され、命令語のすべてのセグメントＳ０、Ｓ１、Ｓ２、Ｓ３、Ｓ４およびプログラムメモリＭは、同じ幅を有する。それぞれの命令セグメントは、別々のラインに格納される。関連する命令セグメントを含むラインだけが、プログラムメモリからフェッチされるが、現在の命令には使用されない命令語セグメント、すなわち、ＮＯＰセグメントである命令語セグメントを含むラインは、省略される。そのために、以前にフェッチされたヘッダＨは、命令ｉに対応するセグメントＳ４のような命令語セグメントをロードすることを省略すべきかどうかを指示する。
【００３３】
第３の実施例が、図３に示され、完全な命令語は、メモリＭの１つのプログラムラインに格納されるが、ヘッダがＮＯＰ命令の存在を指示する場合には、部分的にしか読み出されない。この選択的な読み出しは、それがプログラムメモリＭによってサポートされていれば、実行可能である。したがって、この実施形態においては、プログラムメモリＭは、命令語の部分的な読み出しを可能にするような形で、すなわち、以前にフェッチされたヘッダＨによって指示されるセグメントだけを、ここでは、Ｓ０、Ｓ２、Ｓ３だけを読み出すことができるような形で、使用される。
【００３４】
以上、添付の図面に示される例を参照して、本発明を説明したが、本発明がそれらの例に限定されないことは明らかなことであり、添付の特許請求の範囲に規定される範囲内において様々に変更されてもよい。
【図面の簡単な説明】
【００３５】
【図１】第１の実施形態による本発明のフェッチ技術の具体例を示すブロック図である。
【図２】第２の実施形態による本発明のフェッチ技術の具体例を示すブロック図である。
【図３】第３の実施形態による本発明のフェッチ技術の具体例を示すブロック図である。
【符号の説明】
【００３６】
Ｍ０〜Ｍ４  メモリ
Ｓ０〜Ｓ４  命令語セグメント
Ｍ  プログラムメモリ
【図１】
2005535045.tif 000003
【図２】
2005535045.tif 000004
【図３】
2005535045.tif 000005
【国際調査報告】
2005535045.tif 000006
2005535045.tif 000007