(57)【要約】  命令を処理するマイクロプロセッサが提供される。前記マイクロプロセッサは、キャッシュ・ワード中に配置される、処理されるべき命令および／またはデータをキャッシュするキャッシュと、パディング・バイト（ｐａｄｄ１、ｐａｄｄ２）を導入することにより前記キャッシュのキャッシュ・ワード境界に関して所定の位置に命令を整列させる整列ユニットとを含む。前記パディング・バイト（ｐａｄｄ１、ｐａｄｄ２）の少なくとも１つは、前記命令のうちの１つの処理内で要求される静的データを含む。したがって、命令の整列に要求されるパディング・バイトは、これらのバイトが無駄にされず、利用可能なストレージ容量が効率的に使用されるように、命令の処理の際に必要とされるデータに利用されることが可能である。
2008500626.tif 000002
【特許請求の範囲】
【請求項１】
命令を処理するマイクロプロセッサであって、
キャッシュ・ワード中に配置される、処理されるべき命令および／またはデータをキャッシュする少なくとも１つのキャッシュと、
パディング・バイトを導入することにより前記キャッシュのキャッシュ・ワード境界に関して所定の位置に命令を整列させる整列ユニットと
を含み、
前記パディング・バイトの少なくとも１つが、前記命令のうちの１つの処理内で要求される静的データを含む、マイクロプロセッサ。
【請求項２】
前記整列ユニットが、さらに、パディング・バイトを導入することによって分岐ターゲットを整列させるようにされた、請求項１に記載のマイクロプロセッサ。
【請求項３】
前記静的データが大域変数または定数を含む、請求項２に記載のマイクロプロセッサ。
【請求項４】
命令の処理の際の命令整列の方法であって、
キャッシュ・ワード中に配置される、処理されるべき命令および／またはデータをキャッシュするステップと、
パディング・バイトを導入することによりキャッシュ・ワード境界に関して所定の位置に命令を整列させるステップと
を含み、
前記パディング・バイトの少なくとも１つが、前記命令のうちの１つの処理内で要求される静的データを含む、方法。
【請求項５】
請求項１から３のいずれか一項に記載の少なくとも１つのマイクロプロセッサを含むデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサ、命令整列の方法、ならびにデータ処理システムに関する。
【背景技術】
【０００２】
可変長の圧縮された命令形式に基づくマイクロプロセッサまたはデータ処理システムは、伸張ハードウェアのクリティカル・タイミング・パスおよびシリコン領域に関して、適度なコストで命令（トライメディアの命令など）の効率的な圧縮を可能にする。命令は、不整列であることがあり、可変長を有することがある。特に、命令は、命令キャッシュ・ワード境界、命令キャッシュ・ブロック境界あるいは主記憶装置のワードまたはブロック境界に関して不整列であることがある。しかし、命令は、バイト境界上に整列されていることもある。
【０００３】
米国特許第６，２４０，５０６号は、可変長オペランドを有するｘ８６命令を固定長に拡張することに関する。マイクロプロセッサは、様々なアドレスおよびオペランドのサイズを有する命令を受け取り、これらの命令を事前に解読して単一の固定サイズの形式にする。特に、命令バイトは、主記憶装置システムから受け取られ、所定長よりも短いオペランドおよびアドレスをゼロでパディングすることにより、これらのオペランドおよびアドレスを拡張してアドレスおよびオペランドのフィールドの一様性を高めることによって事前に解読されてもよい。
【０００４】
命令の処理の際、命令は通常、スキャンされ、整列され、解読される。スキャンすることは、一群の命令バイトをマイクロプロセッサ中の命令キャッシュまたは外部記憶装置から読み出すこと、およびこれらの命令の境界を決定することを含む。整列することは、不要な命令バイトをマスクし、これらのバイトの最初のビットが所望の位置になるようにこれらのバイトをシフトすることによって行われる。そして最後に、解読することは、命令内の各フィールドを特定することによって実現され、命令が、命令キャッシュから事前に取り込まれ、スキャンされ、整列された後に行われる。
【０００５】
典型的には、マイクロプロセッサによって処理されるべき命令はまた、命令の実行の際に追加の問題を構成する分岐を含んでもよい。分岐の流れをよく理解することによって、処理の速度を増加させることができる。しかし、正しく整列されていないキャッシュ・アクセスは、余分な待ち時間（latency）を導入することになるため、整列された命令キャッシュ・アクセスを提供することが必要になる。整列処理内では、分岐ターゲット、すなわち処理の流れがジャンプすることのできるプログラム位置は、慎重に位置決めされるべきである。
【０００６】
したがって、分岐ターゲットは、特定の位置に整列されなければならず、あるいはキャッシュ・ライン境界を越えてはならず、すなわち、１つのキャッシュ・ワードのみから分岐ターゲット命令を読み出すことが可能となるように、分岐ターゲットはキャッシュの１ワード内に完全に含まれなければならない。このことは、典型的には、分岐ターゲットを完全に以降のキャッシュ・ワード中に移動させるように、分岐ターゲットの前にバイトをパディングすることによって行われる。しかし、分岐ターゲットが、キャッシュ・ワードの外側に延びることなく前記キャッシュ・ワード内で始まる場合は、パディングは不要である。
【０００７】
例えば、インテルのアーキテクチャにおいて、またトライメディアのアーキテクチャにおいては、分岐ターゲットの整列は、許容可能な位置またはより速いコードとなる位置に分岐ターゲットをシフトするように、ダミー・バイトを挿入することによって行われる。パディング・バイトとしても知られているダミー・バイトは現行の命令の処理に要求されないので、ダミー・バイトを越えて特定の分岐ターゲットにジャンプするために、ジャンプが生成される。
【０００８】
特に、インテルのアーキテクチャについては、分岐ターゲット整列の推奨（http://www.intel.com/design/PentiumII/manuals/242816.htm）には、ループ・エントリのラベルが１６バイトのキャッシュ境界から８バイト未満離れている場合は、ループ・エントリのラベルを１６バイトに整列させること、条件分岐に続くループ・エントリのラベルは整列させないこと、および、ループ・エントリのラベルが１６バイト境界から８バイト未満離れている場合は、無条件分岐または１６バイトによる機能に続くループ・エントリのラベルを整列させることがある。
【０００９】
挿入されたダミー・バイトすなわちパディング・バイトを使用するこうした整列処理は、特定の命令の処理を向上させるが、この利点には、増加したストレージ要求のコストが伴う。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
したがって、本発明の目的は、マイクロプロセッサ、命令整列の方法、ならびに向上されたストレージ利用率を有する命令の適切な処理を可能にするデータ処理システムを提供することである。
【課題を解決するための手段】
【００１１】
この目的は、請求項１に記載のマイクロプロセッサ、請求項４に記載の命令整列の方法、ならびに請求項５に記載のデータ処理システムによって解決される。
【００１２】
したがって、命令を処理するマイクロプロセッサが提供される。前記マイクロプロセッサは、キャッシュ・ワード中に配置される、処理されるべき命令および／またはデータをキャッシュするキャッシュと、パディング・バイトを導入することにより前記キャッシュのキャッシュ・ワード境界に関して所定の位置に命令を整列させる整列ユニットとを含む。前記パディング・バイトの少なくとも１つが、前記命令のうちの１つの処理内で要求される静的データを含む。
【００１３】
したがって、命令の整列に要求されるパディング・バイトは、これらのバイトが無駄にされず、利用可能なストレージ容量が効率的に使用されるように、命令の処理の際に必要とされるデータに利用されることが可能である。
【００１４】
本発明の態様によれば、前記整列ユニットは、パディング・バイトを導入することによって分岐ターゲットを整列させる。したがって、処理の速度は、効率的なストレージ容量の利用率を犠牲にすることなく向上されることが可能である。
【００１５】
本発明の好ましい態様によれば、前記静的データは、大域変数、定数またはテキスト文字列を含む。
【００１６】
本発明はまた、命令の処理の際の命令整列の方法に関する。処理されるべき命令および／またはデータは、キャッシュされるが、ここで前記命令はキャッシュ・ワード中に配置される。命令は、パディング・バイトを導入することにより前記キャッシュ・ワード境界に関して所定の位置に整列される。前記パディング・バイトの少なくとも１つは、前記命令のうちの１つの処理内で要求される静的データを含む。
【００１７】
本発明はさらに、上述したように、マイクロプロセッサを含むデータ処理システムに関する。
【００１８】
本発明のこれらの態様は、以下に説明される実施形態から明らかであり、本発明の他の態様は、以下に説明される実施形態を参照することで解明されるであろう。
【発明を実施するための最良の形態】
【００１９】
図１Ａ〜１Ｃは、キャッシュ内のキャッシュ・ワードの模式図を示す。図１Ａにおいては、３つの不整列な命令ｉ１、ｉ２、およびｉ３が、キャッシュ・ワードｃｗ１、ｃｗ２中に存在している。例えば、ｉ１の分岐ターゲットは完全にキャッシュ・ワードｃｗ１内に含まれており、一方、命令ｉ３はキャッシュ・ワードｃｗ１のキャッシュ・ワード境界を越えてキャッシュ・ワードｃｗ２中に延びている。したがって、ここでは、避けられるべき状態が示されている。
【００２０】
図１Ｂは、命令ｉ１およびｉ２を有する状態を示しており、ここでは、命令ｉ１がキャッシュ・ワードｃｗ１とキャッシュ・ワードｃｗ２との間の境界を越えている。命令ｉ２は、完全にキャッシュ・ワードｃｗ２内に含まれている。命令ｉ１がワード境界を越えることを防ぐためには、パディング・バイトｐａｄｄが、命令を完全に次のキャッシュ・ワード、すなわちキャッシュ・ワードｃｗ２にシフトするように命令ｉ１の前に挿入される。したがって、命令ｉ１および命令ｉ２は、ここでは共にキャッシュ・ワードｃｗ２中に存在する。特に、命令ｉ１の分岐ターゲットがワード境界上に来るといった望ましくない場合が、パディング・バイトｐａｄｄを挿入することによって防がれる。
【００２１】
図１Ｃは、ｉ１の分岐ターゲットがキャッシュ・ワードの端部にあり、したがって、次のキャッシュ・ワードにシフトされる必要がある状態を示している。このシフトも、パディング・バイトｐａｄを挿入することによって行われる。
【００２２】
従来技術によれば、ダミー・バイトがパディング・バイトとして挿入され、処理の流れが、挿入されたダミー・バイトを処理しないように、ジャンプ命令がさらに挿入されるが、本発明によれば、命令の処理の際に要求される静的データがパディング・バイトとして使用される。これらの静的データは、定数などの大域変数などであってもよい。したがって、処理に無関係なバイトを挿入する代わりに、処理の際に実際に使用されるデータがパディング・バイトとして利用され、その結果、パディング・バイトは、無駄にされず、利用可能なストレージ容量の利用率が向上される。
【００２３】
図２は、キャッシュ・ワードの内容の表の基本的な例を示す。位置１において、分岐命令が満たされる場合は、条件分岐命令により条件分岐が記憶場所すなわち位置８を整列し、すなわち、条件が満たされる場合は位置８へジャンプが行われる。そうでない場合は、第２の命令ｉｎｓｔｒ２を含む記憶場所８は存在しており、位置４（ｊｕｍｐ  ｔｏ）からジャンプによって到達されることが可能である。パディング・バイトｐａｄｄ１およびｐａｄｄ２は、第２および第３の命令ｉｎｓｔｒ２およびｉｎｓｔｒ３を記憶場所８および９にシフトするように記憶場所６および７に挿入され、その結果、ジャンプが第２の命令ｉｎｓｔｒ２と整列されることになる。それによって、一連の命令が始まる前に、整列された位置８が与えられる。記憶場所１２においては、取込み命令が存在し、この取込み命令が記憶場所６のデータ、すなわちパディング・データｐａｄｄ１を取り込む。特に、記憶場所６および７、すなわちパディング・データには、ダミー・バイトを使用する代わりに静的データが格納されている。これらの静的データは、大域変数定数などであってもよい。静的データの他の例には、テキスト文字列ならびに（命令をコンパイルするために使用される）コンパイラがＣ＋＋において例外機能および仮想機能を実現するために生成するデータ構造がある。
【００２４】
特に、パディング・データとして格納される静的データの少なくともいくらかは、バッファ中の命令の実行に使用されるデータを構成してもよい。代替的には、パディング・データはまた、同じキャッシュ・ワード内のさらなる命令に関連付けられてもよい。すなわち、パディング・スペースの前または後の命令は、パディング・スペース中に割り当てられたデータを使用してもよい。しかし、代替的には、プログラム中の任意の命令がパディング・スペース中のデータを参照することができる。
【００２５】
上述した実施形態は、本発明を限定するのではなく例示しており、添付の特許請求の範囲から逸脱することなく多くの代替実施形態を設計することが当業者には可能となることに留意すべきである。特許請求の範囲において、括弧の間に置かれた参照符号はいずれも、特許請求の範囲を限定するものと解釈されるべきではない。用語「含む（ｃｏｍｐｒｉｓｉｎｇ）」は、特許請求の範囲中に挙げられたもの以外の要素またはステップの存在を除外しない。要素に先行する用語「１つの（ａ）」または「１つの（ａｎ）」は、複数のこうした要素の存在を除外しない。いくつかの手段を列挙する装置請求項において、これらの手段のいくつかは、ハードウェアの同一の項目によって実現されることが可能である。相互に異なる従属項において、特定の手段が引用されているという単なる事実は、これらの手段の組合せが有利に使用され得ないということを示すわけではない。
【００２６】
また、特許請求の範囲における参照符号はいずれも、特許請求の範囲を限定するものと解釈されるべきではない。
【図面の簡単な説明】
【００２７】
【図１Ａ】キャッシュ中のいくつかのキャッシュ・ワードの模式図である。
【図１Ｂ】キャッシュ中のいくつかのキャッシュ・ワードの模式図である。
【図１Ｃ】キャッシュ中のいくつかのキャッシュ・ワードの模式図である。
【図２】キャッシュ・ワードの内容の表の例を示す図である。
【図１Ａ】
2008500626.tif 000003
【図１Ｂ】
2008500626.tif 000004
【図１Ｃ】
2008500626.tif 000005
【図２】
2008500626.tif 000006
【国際調査報告】
2008500626.tif 000007
2008500626.tif 000008