キャッシュラインごとに命令の固定数を記憶することを含む、可変命令長を持つプロセッサにおけるキャッシュ管理の方法。それらの長さを決定する命令を検査し、キャッシュにそれらを置く前に予め定められた境界に沿って命令を整列させることをさらに含む請求項1の方法。各キャッシュラインを用いて次のフェッチアドレスを記憶することをさらに含む請求項1の方法。キャッシュに命令を置く前に次のフェッチアドレスを決定することをさらに含む請求項3の方法。各キャッシュラインを用いてオフセットを記憶し、オフセットはキャッシュラインタグに加えられた時、次のフェッチアドレスを生じることをさらに含む請求項1の方法。可変長の命令を実行するように作動する命令実行パイプラインと、キャッシュラインごとに可変長命令の固定数を記憶するように作動する命令キャッシュと、キャッシュラインに命令を書き込む前に予め定められた境界に沿って可変長命令を整列させるように作動するプレデコーダを含むプロセッサ。各キャッシュラインに関連した次のフェッチアドレスフィールドをさらに含む請求項6のプロセッサ。プレデコーダがキャッシュラインに書き込まれた最後の命令に従う命令のアドレスを計算し、かつキャッシュラインの次のフェッチアドレスフィールドにアドレスを記憶するように作動する、請求項7のプロセッサ。図2は、パイプラインアーキテクチャと階層的記憶構造の両方を使用する、代表的なプロセッサ10の機能ブロック図を示す。プロセッサ10は制御論理14にしたがって命令実行パイプライン12で命令を実行する。パイプラインはパイプ段階に組織化された様々なレジスタあるいはラッチ16、および1つ以上の論理演算装置ALU18を含んでいる。多目的レジスタGPRファイル20は、記憶階層のトップを含むレジスタを提供する。パイプラインは命令側変換索引バッファITLB24によって管理されたメモリアドレッシングとパーミッションで命令キャッシュIキャッシュ22から命令を取り込む。プレデコーダ21は、Iキャッシュ22にそれらを記憶する前にメモリから取り込まれた命令を検査する。下に議論されるように、プレデコーダ21は命令境界を確認し、命令を整列させて、命令をIキャッシュ22に記憶する次のフェッチアドレスを計算する。データは主変換索引バッファTLB28によって管理されたメモリアドレッシングとパーミッションでデータキャッシュ26からアクセスされる。様々な実施例では、ITLB24はTLB28の一部のコピーを含んでもよい。代わりに、ITLB24およびTLB28は統合されてもよい。同様に、プロセッサ10の様々な実施例では、Iキャッシュ22およびDキャッシュ26は統合、即ち一体にされてもよい。Iキャッシュ22およびまたはDキャッシュ26におけるミスは、メモリインタフェース30の制御の下で、主オフチップメモリ32へのアクセスを引き起こす。プロセッサ10は様々な周辺機器36へのアクセスを制御する、入力/出力I/Oインターフェース34を含んでいてもよい。当業者はプロセッサ10の多くの変形が可能であることを認識するだろう。例えば、プロセッサ10はIおよびDキャッシュ22、26のいずれかあるいは両方について第2のレベルL2キャッシュを含んでいてもよい。さらに、プロセッサ10で示された機能ブロックの1つ以上は、特別の実施例から省略されてもよい。ここに示された1つ以上の実施例によれば、プロセッサ10は各キャッシュラインに可変長命令の固定数を記憶する。その命令は、好ましくは、例えば語境界のような予め定められた境界に沿って整列される。これは、命令境界を計算し、高速演算を可能にし、したがってプロセッサの性能を改善する必要から、デコードパイプ段階を緩和する。Iキャッシュ22にこのように命令を記憶することは、また命令長検査および一度整列動作を行なうことにより電力消費を減少させる。Iキャッシュ22のヒット率が一般に高い90であるので、毎回命令がIキャッシュ22から実行される命令境界を確認する必要の除去により、相当な省電力が実現され得る。プレデコーダ21は主メモリ32およびIキャッシュ22間のパス中に挿入された論理を含む。プレデコーダ21の論理は、メモリから検索されたデータを検査し、命令の数および長さを確認する。プレデコーダは、キャッシュラインに記憶されるキャッシュへの整列された命令を渡す前に、予め定められた、例えば語、境界に沿って命令を整列させる。図3は、図1からの可変長命令の固定数をそれぞれ含んでいる、Iキャッシュ22の2つの代表的ライン200および260を示すこの例において、4つの命令が各キャッシュライン200、260に記憶される。キャッシュライン200および260は16バイトである。語境界が破線によって示される;半語境界は点線によって示される。命令は語境界に沿って整列される即ち、各命令は語アドレスから開始する。命令がパイプライン12によってIキャッシュ22から取り込まれる場合、デコードパイプ段階は、キャッシュライン200、260から適切な語を単に多重化し、直ちにオペレーションコードをデコードし始める。半語命令例えばI3とI8の場合には、キャッシュライン200、260中のスペースの半語はそれぞれ未使用であり、図3で陰影により示される。図1で示された先行技術キャッシュと比較して、図3のキャッシュ22は2つのキャッシュラインに、9つではなく、8つの命令しか記憶しないことに注意を要す。I9の長さに対応する語スペースオフセット0×0Aおよび0×1Eにおける半語は利用されない。キャッシュ22に命令を記憶する効率のこの減少は、図3で示されたキャッシュ利用の単純性、改善されたプロセッサパワーおよびより低い電力消費の代償である。さらに、キャッシュライン200、260に可変長命令の固定数を割り当て、予め定められた境界に沿って命令を整列させることによって、命令は図1のI5のように、キャッシュラインを横切って誤整列されて記憶されない。したがって、単一命令を検索するため2つのキャッシュ22のアクセスによって起される性能ペナルティおよび過大電力消費は、完全に除去される。既知の全体長さキャッシュラインの長さを持つ命令の可変数ではなく、可変長命令の固定数が記憶されるので、次の逐次命令のアドレスはキャッシュライン200のメモリサイズによって、1つのキャッシュライン200のタグ220を単にインクリメントすることによって確認することができない。従って、一実施例では、命令が整列されるときIキャッシュ22にそれらを記憶する前に、次のフェッチアドレスがプレデコーダ21によって計算され、次のフェッチアドレスはキャッシュライン200と共にフィールド240に記憶される。次のフェッチアドレスの計算および記憶の代わりとして、一実施例によれば、タグ220からのオフセットが計算され、オフセットフィールド240におけるようにキャッシュライン200と共に記憶される。したがって、次のフェッチアドレスはタグアドレスにオフセットを加えることにより容易に計算され得る。この実施例は、連続のアドレスフェッチがキャッシュラインを横切るたびごとにこの加算を行なうため処理遅延および電力消費を招く。他の実施例では、次のフェッチアドレスの計算を助けるために他の情報が記憶されてもよい。例えば、キャッシュライン240中の命令の固定数と等しい一組のビットが、例えば、全語長命令を示す1と半語長命令を示す0が対応する命令スロットに記憶されることにより、記憶されてもよい。メモリ中の命令のアドレス、従って次の逐次命令のアドレスは、その後この情報から計算されてもよい。当業者は、追加の次のアドレス計算援助が次の命令フェッチアドレスを計算するために工夫され記憶されることを容易に認識するだろう。様々な実施例が、語および半語命令長を含む代表的なISAに関してここに詳説されたが、本発明はこれらの実施例に制限されていない。一般に、どんな可変長命令も予め定められた境界に沿って整列され、命令キャッシュ22に固定数で有利に記憶され得る。さらに、ここに示されたそれとは異なっているサイズのキャッシュライン240、300が様々な実施例の実行において利用されてもよい。本発明の実施例は、ここに特別の特徴、その態様および実施例に関して記述されたが、多数の変形、修正および他の実施例が本発明の広い範囲内で可能であることは明白であり、従って、すべての変形、修正および実施例は発明の範囲内であると見なされるべきである。それ故、本実施例は例証され限定的でないものとしてすべての態様で解釈され得、添付請求項の意味および均等範囲内に入るすべての変更は、そこに包含されるように意図される。