(57)【要約】【課題】圧縮命令データからプログラム命令を形成する伸張機構を含むデータ処理システムを得る。【解決手段】データ処理システムは命令キャッシュ（８）および命令キャッシュ（８）と圧縮命令データメモリ（１２）間の命令伸張回路（１０）を含む。命令伸張回路は圧縮命令データメモリから回復された圧縮命令データＣＩＤを伸張して命令キャッシュに供給されるプログラム命令を形成する。プログラム命令は関連するマスク値を有するプログラム命令のブロック内で圧縮され、マスク内のビット値はプログラム命令のブロック内の対応するビットスライスがデフォルトビット値により表現されるかあるいはビットスライス指定子により別々に指定されるかを示す。この技術はＶＬＩＷプロセッサに特に適している。【選択図】図１
2006004401.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置であって、
プログラム命令に応答してデータ処理操作を実施するように動作するデータ処理回路と、
前記データ処理回路に接続され前記プログラム命令を格納するように動作するキャッシュメモリと、
前記キャッシュメモリに接続された圧縮命令データメモリと、
前記圧縮命令データメモリおよび前記キャッシュメモリ間に配置され前記圧縮命令データメモリから圧縮命令データを受信し、前記圧縮命令データを伸張してプログラム命令を形成し、前記プログラム命令を前記キャッシュメモリへ供給するように動作する命令伸張回路と、を含み、
前記命令伸張回路は前記圧縮命令データ内のマスクおよび複数のビットスライス指定子から複数の前記プログラム命令を形成するように動作し、前記マスクは前記複数のプログラム命令の各々の各対応するビット位置が予め定められたデフォルト値を有するかまたは対応するビットスライス指定子により指定されるビット値を有するかを指定するビット値を有するデータ処理装置。
【請求項２】
請求項１に記載の装置であって、プログラマブルデフォルトビット値語が前記プログラム命令内の各ビット位置に対するデフォルトビット値を指定する装置。
【請求項３】
請求項１に記載の装置であって、前記キャッシュメモリ内のプログラム命令に対するキャッシュミスがキャッシュプログラム命令フィル操作をトリガし、前記命令伸張回路は前記圧縮命令データメモリからの圧縮命令データを伸張して前記キャッシュミスに対応する前記プログラム命令を含むデータの一つ以上のキャッシュラインを形成する装置。
【請求項４】
請求項１に記載の装置であって、前記データ処理回路による前記キャッシュメモリへのプログラム命令アクセスは前記圧縮命令データがどのようにプログラム命令を表現するかに無関係である装置。
【請求項５】
請求項１に記載の装置であって、圧縮命令データは前記データ処理回路によりアクセスされるプログラム命令のメモリアドレスを前記圧縮命令データメモリ内の圧縮命令データの対応するブロックへマッピングするポインタデータ値を含む装置。
【請求項６】
請求項５に記載の装置であって、圧縮命令データの前記ブロックは可変長を有しブロック長指定値が各ポインタデータ値に関連して格納される装置。
【請求項７】
請求項１に記載の装置であって、８＊Ｎプログラム命令が各マスクと関連付けられＮビットスライス指定バイトが前記８＊Ｎプログラム命令の各々の対応するビットに対するビット値を指定し、Ｎは正の非ゼロ整数である装置。
【請求項８】
請求項１に記載の装置であって、前記データ処理回路は前記プログラム命令内の各フィールドにより制御される複数の独立して制御可能なデータパスを有する非常に長い命令語プロセッサを含む装置。
【請求項９】
請求項５に記載の装置であって、前記命令伸張回路は前記ポインタデータ値をキャッシュするように動作する装置。
【請求項１０】
請求項６に記載の装置であって、前記命令伸張回路は前記ブロック長指定値をキャッシュするように動作する装置。
【請求項１１】
データ処理方法であって、
プログラム命令に応答してデータ処理回路によりデータ処理操作を実施するステップと、
前記データ処理回路に接続されたキャッシュメモリによりプログラム命令を格納するステップと、
前記キャッシュメモリに接続された圧縮命令データメモリ内に圧縮命令データを格納するステップと、
前記圧縮命令データメモリおよび前記キャッシュメモリ間に配置された命令伸張回路内で前記圧縮命令データメモリから圧縮命令データを受信するステップと、
前記圧縮命令データを伸張してプログラム命令を形成するステップと、
前記プログラム命令を前記キャッシュメモリへ供給するステップと、を含み、
前記命令伸張回路は前記圧縮命令データ内のマスクおよび複数のビットスライス指定子から複数の前記プログラム命令を形成するように動作し、前記マスクは前記複数のプログラム命令の各々の各対応するビット位置が予め定められたデフォルト値を有するかまたは対応するビットスライス指定子により指定されるビット値を有するかを指定するビット値を有するデータ処理方法。
【請求項１２】
請求項１１に記載の方法であって、プログラマブルデフォルトビット値語が前記プログラム命令内の各ビット位置に対するデフォルトビット値を指定する方法。
【請求項１３】
請求項１１に記載の方法であって、前記キャッシュメモリ内のプログラム命令に対するキャッシュミスがキャッシュプログラム命令フィル操作をトリガし、前記命令伸張回路は前記圧縮命令データメモリからの圧縮命令データを伸張して前記キャッシュミスに対応する前記プログラム命令を含むデータの一つ以上のキャッシュラインを形成する方法。
【請求項１４】
請求項１１に記載の方法であって、前記データ処理回路による前記キャッシュメモリへのプログラム命令アクセスは前記圧縮命令データがどのようにプログラム命令を表現するかに無関係である方法。
【請求項１５】
請求項１１に記載の方法であって、圧縮命令データは前記データ処理回路によりアクセスされるプログラム命令のメモリアドレスを前記圧縮命令データメモリ内の圧縮命令データの対応するブロックへマッピングするポインタデータ値を含む方法。
【請求項１６】
請求項１５に記載の方法であって、圧縮命令データの前記ブロックは可変長を有しブロック長指定値が各ポインタデータ値に関連して格納される方法。
【請求項１７】
請求項１１に記載の方法であって、８＊Ｎプログラム命令が各マスクと関連付けられＮビットスライス指定バイトが前記８＊Ｎプログラム命令の各々の対応するビットに対するビット値を指定し、Ｎは正の非ゼロ整数である方法。
【請求項１８】
請求項１１に記載の方法であって、前記データ処理回路は前記プログラム命令内の各フィールドにより制御される複数の独立して制御可能なデータパスを有する非常に長い命令語プロセッサを含む方法。
【請求項１９】
請求項１５に記載の方法であって、前記命令伸張回路は前記ポインタデータ値をキャッシュするように動作する方法。
【請求項２０】
請求項１６に記載の方法であって、前記命令伸張回路は前記ブロック長指定値をキャッシュするように動作する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理システムに関する。特に、本発明は圧縮された命令データからプログラム命令を形成する伸張機構を含むデータ処理システムに関する。
【背景技術】
【０００２】
実行される前にプログラム命令へ圧縮される圧縮命令データを使用するいくつかの既知のデータ処理システムがある。このようなシステムの一例はプログラム命令の圧縮されたメモリページ内のプログラム命令が最初にアクセスされる時に特殊目的ハードウェアを使用してオペレーティングシステム制御下で伸張されるプログラム命令語の圧縮されたメモリページを使用するＭＩＰＳ社のものである。このようなシステムはプログラム命令格納スペース要求条件を低減する点で有利である。
【０００３】
前記したようなプログラム命令圧縮技術の欠点は、オペレーティングシステムに必要な圧縮を制御するよう要求し、また、プログラム命令を使用するデータ処理回路が圧縮要求条件に対処する修正を要求できることである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
また、主記憶内に格納された命令が異なる形式に変換され次にキャッシュメモリ内に格納される命令変換キャッシュを提供することも知られている。これらのキャッシュされ変換された命令を次にプロセッサコアにより実行することができる。このようなシステムの例はトランスメタ社製プロセッサである。
【課題を解決するための手段】
【０００５】
一側面から見て、本発明はデータ処理装置を提供し、前記装置は、
プログラム命令に応答してデータ処理操作を実施するように動作するデータ処理回路と、
前記データ処理回路に接続されて前記プログラム命令を格納するように動作するキャッシュメモリと、
前記キャッシュメモリに接続された圧縮命令データメモリと、
前記圧縮命令データメモリおよび前記キャッシュメモリ間に配置されて前記圧縮命令データメモリから圧縮命令データを受信し、前記圧縮命令データを伸張してプログラム命令を形成し前記キャッシュメモリへ供給するように動作する命令伸張回路と、を含み、
前記命令伸張回路は前記圧縮命令データ内のマスクおよび複数のビットスライス指定子から複数の前記プログラム命令を形成するように動作し、前記マスクは前記複数のプログラム命令の各々の対応する各ビット位置が予め定められたデフォルトビット値を有するかあるいは対応するビットスライス指定子により指定されるビット値を有するかを指定するビット値を有する。
【０００６】
本技術はプログラム命令を格納するキャッシュメモリと圧縮命令データを格納する圧縮命令データメモリ間に命令伸張ハードウェアを提供する利点を認めるものである。このような命令伸張ハードウェアは、データ処理回路自体が実質的に命令伸張を管理したりそれに対処するよう修正される必要がないような方法で、必要に応じて圧縮命令データを伸張してプログラム命令用キャッシュメモリ内のキャッシュミスに対処することができる。さらに、圧縮命令データは、低回路面積および迅速なハードウェアインプリメンテーションに適切な十分な単純さで良好なデータ圧縮レートを達成するように、連続プログラム命令群内の冗長性を利用するのに良く適したマスク値および複数のビットスライス指定子を使用する形式で提供される。
【０００７】
マスク内のビットの制御下で使用されるデフォルトビット値は固定できることが判るが、好ましい実施例では、デフォルトビット値を被圧縮プログラムと一致するように調節することができ、恐らくは、プログラムの一部が圧縮されるプログラマブルビット値語が利用される。
【０００８】
最も広い意味で、伸張は他のアクションから独立した背景プロセスとして行われることであるが、好ましい実施例では、キャッシュメモリミスによりフィル操作がトリガされ伸張回路が所要圧縮命令データ伸張を実施してそのキャッシュミスに対処するプログラム命令を形成する。この状況におけるキャッシュミスはハードウェア全体像に関連しており、キャッシュミスはコミッテッドアクセスの一部またはプリフェッチユニットその他の機構により実施された推論的アクセスの結果であったりする。
【０００９】
本発明の好ましい実施例では、キャッシュメモリに対してデータ処理回路により行われるプログラムアクセスは圧縮命令データが表現される方法とは無関係に行うことができる。この独立性により設計再利用および技術の移植性という利点が得られる。
【００１０】
圧縮命令データメモリ内への圧縮命令データの格納を容易にするために、好ましい実施例では、データ処理回路によりアクセスされるプログラム命令のメモリアドレスを圧縮命令データメモリ内の圧縮命令データの対応するブロックへマッピングするポインタデータ値が利用される。
【００１１】
ブロックは固定長とすることができるが、任意の定められたプログラム命令セットに対して達成することができる程度の異なる圧縮に適応するために可変長ブロックが使用されると圧縮の有効性が著しく改善され、この状況ではポインタ値は関連するブロックに対する値を指定するブロック長に関連している。
【００１２】
マスクに関連するプログラム命令数は変動することがあるが、メモリ記憶装置のバイト量子化特性が整合されている好ましい実施例は８＊Ｎプログラム命令が各マスクと関連付けられＮビットスライス指定バイトが前記８＊Ｎプログラム命令の各々の対応するビットに対するビット値を指定するものであり、Ｎは正の非ゼロ整数である。
【００１３】
データ処理回路は標準プロセッサコア、ＤＳＰ回路等の異なる多様な形式をとることができるが、好ましい実施例では、データ処理回路はプログラム命令内の各フィールドにより制御される複数の独立に制御可能なデータパスを有するＶＬＩＷ(very long instruction word)プロセッサを含んでいる。この種のデータ処理回路はそのプログラム命令内に著しい冗長性を示し、また本技術に従ってデフォルト値により容易に表現することができる一定値を有するプログラム命令群内にビットスライスを示す傾向がある。
【００１４】
伸張回路の効率はポインタデータ値およびブロック長指定値を格納するマイクロキャッシュを含む場合に改善される。
【００１５】
本発明のもう一つの側面から見て、本発明はデータ処理方法を提供し、前記方法は、
プログラム命令に応答してデータ処理回路によりデータ処理操作を実施するステップと、
前記データ処理回路に接続されたキャッシュメモリによりプログラム命令を格納するステップと、
前記キャッシュメモリに接続された圧縮命令データメモリ内に圧縮命令データを格納するステップと、
前記圧縮命令データメモリおよび前記キャッシュメモリ間に配置された命令伸張回路内で前記圧縮命令データメモリから圧縮命令データを受信するステップと、
前記圧縮命令データを伸張してプログラム命令を形成するステップと、
前記プログラム命令を前記キャッシュメモリへ供給するステップと、を含み、
前記命令伸張回路は前記圧縮命令データ内のマスクおよび複数のビットスライス指定子から複数の前記プログラム命令を形成するように動作し、前記マスクは前記複数のプログラム命令の各々の各対応するビット位置が予め定められたデフォルトビット値を有するかあるいは対応するビットスライス指定子により指定されたビット値を有するかを指定するビット値を有する。
【００１６】
本発明の前記した、およびその他の、特徴および利点は実施例の下記の詳細な説明を添付図と共に読めば明らかになる。
【実施例】
【００１７】
図１はデータキャッシュ６および命令キャッシュ８を有するＶＬＩＷ(very long instruction word)プロセッサコア４を含むデータ処理装置２を略示している。本技術を使用する他の実施例では、所望により、データおよび命令の両方に対する共通キャッシュを利用することができる。
【００１８】
命令伸張回路１０が命令キャッシュ８および圧縮命令データメモリ１２間に配置されている。命令伸張回路１０は圧縮命令データメモリ１２から読み出された圧縮命令データを伸張して命令キャッシュ８へ供給されるプログラム命令Ｉとする。ＶＬＩＷコア４により発せられる命令データリード要求に応答する命令キャッシュ８内のキャッシュミスは命令伸張回路１０をトリガしてその要求されたキャッシュラインフィルに対処させる。
【００１９】
キャッシュに対応するメモリアドレスが命令キャッシュ８により命令伸張回路１０へ供給され、圧縮命令データメモリ１２内のポインタ値テーブル１４を参照してミスの命令アドレスとＶＬＩＷプロセッサコア４によりシークされるプログラム命令を含む圧縮命令データ１６の対応するブロックのアドレスとの間のマッピングを決定する。例示する実施例では、命令伸張回路内のマイクロキャッシュ１８は最近アクセスされたポインタ値Ｐおよび圧縮命令データメモリテーブル１２、特に、ポインタテーブル１４から読み出されたブロック長値Ｌをキャッシュする。各ポインタ値Ｐに関連する長さデータＬはそのポインタ値Ｐに対応するブロック１６の可変長を指定する。長さ値Ｌは命令伸張回路１０によりポインタ値Ｐと組み合わせて使用されて、エネルギおよび処理リソースを浪費する方法で過剰データが回復されることを要求せずに圧縮する必要がある圧縮データ１６のブロックを形成するデータのバイトをフェッチする。
【００２０】
図１には、それぞれ、デフォルトビット値語およびポインタテーブル１４の開始へのポインタを格納するデフォルト値レジスタ２０およびポインタテーブルレジスタ２２も示されている。
【００２１】
図２は使用される圧縮および伸張技術を略示している。この例では、８つの１６ビットプログラム命令ＰＩ０からＰＩ７が、圧縮データのこのような複数のブロック間で共有される１６ビットデフォルトビット値語ＤＶと共に、１６ビットマスク値および８ビットスライス指定子ＢＳｎにより表現される。マスク値は８つのプログラム命令の各々の対応するビットスライスが全プログラム命令語内のデフォルトビット値をとるかどうかを指定する個別ビットを含み、このデフォルトビット値はデフォルトビット値語内の対応するビットにより指定されるか、あるいはプログラム命令内の異なるビット値を含み、したがって、ビットスライス指定子ＢＳｎにより指定される。
【００２２】
図示する例では、“＊”のマークが付いたビットスライスは全体を通してデフォルトビット値を使用し、残りのビットスライスは対応するビットスライス指定子ＢＳｎにより表現される。
【００２３】
図３は図２に示す関係に対応する圧縮命令データのバイトストリームを略示している。特に、２つのマスクバイトＭ１およびＭ２が１６ビットマスクを形成する。これらには８つの必要なビットスライス指定子ＢＳ０からＢＳ７が続く。この例では、８つのビットスライスはデフォルトビット値をとっており、したがって、圧縮命令データストリームから省くことができる。データの８バイトのこの節減はマスクデータの２バイトを供給する必要性により相殺される。それでも、８つの１６ビット命令は本来必要な生の非圧縮プログラム命令の１６バイトではなく圧縮命令データの１０バイトにより表現される。圧縮命令データが受信されると、マスク値が読み出されて再構成される時にプログラム命令内へ対応するデフォルトビット値を挿入するのに使用される。
【００２４】
本発明の技術はプログラム命令のシーケンス間でこれらのプログラム命令のビットスライス内に相当程度の相関があるという認識を利用する。この相関は全体圧縮度を達成するためにマスク値内の対応するビットにより示されるビットスライスに対して使用されるデフォルトビット値を提供することにより利用することができる。この圧縮技術は有効であるかぎり、圧縮および伸張に関連する複雑さおよびコストオーバヘッドを有利に低く維持するような圧縮および伸張の両ハードウェア内の単純な実施例が可能である。
【００２５】
添付図を参照して本発明の実施例について詳細に説明してきたが、本発明はこれらの精密な実施例に限定されるものではなく、当業者ならば添付特許請求の範囲に明記された本発明の範囲および精神から逸脱することなくさまざまな変更および修正を行うことができる。
【図面の簡単な説明】
【００２６】
【図１】命令圧縮および伸張技術を利用するデータ処理システムを示す略図である。
【図２】プログラム命令群を表現するのにマスク、デフォルトビット値語およびビットスライス指定子を使用する例を示す略図である。
【図３】図２に示す関係に従ってプログラム命令群に対応する圧縮命令データのバイトストリームを示す図である。
【符号の説明】
【００２７】
２  データ処理装置
４  ＶＬＩＷ(very long instruction word)プロセッサコア
６  データキャッシュ
８  命令キャッシュ
１０  命令伸張回路
１２  圧縮命令データメモリ
１４  ポインタ値テーブル
１６  圧縮命令データ
１８  マイクロキャッシュ
２０  デフォルト値レジスタ
２２  ポインタテーブルレジスタ
【図１】
2006004401.tif 000003
【図２】
2006004401.tif 000004
【図３】
2006004401.tif 000005