(57)【要約】本発明によるプロセッサクラスタは、設定可能なキャッシュメモリ（１）及び複数のプロセッサ（２ａ，．．．，２ｅ）を有する単一の集積回路で実現される。少なくとも２つの前記プロセッサ（２ａ、２ｂ）は相互に異なる命令セットを有する。このプロセッサクラスタは更に、前記複数のプロセッサの１つを選択的に稼動させると共に前記選択されたプロセッサに前記キャッシュメモリへのアクセスを与える選択ユニット（６）を有する。
2005504366.tif 000002
【特許請求の範囲】
【請求項１】
単一の集積回路で実現され、設定可能なキャッシュメモリ及び複数のプロセッサを有するプロセッサクラスタであって、少なくとも２つの前記プロセッサは相互に異なる命令セットを有し、前記プロセッサクラスタは更に、前記複数のプロセッサの１つを選択的に稼動させると共に前記選択されたプロセッサに前記キャッシュメモリへのアクセスを与える選択ユニットを有するプロセッサクラスタ。
【請求項２】
前記複数のプロセッサが少なくともマイクロコントローラ及びデジタル信号プロセッサを含むことを特徴とする請求項１に記載のプロセッサクラスタ。
【請求項３】
前記デジタル信号プロセッサがプログラマブルＤＳＰコアであることを特徴とする請求項１に記載のプロセッサクラスタ。
【請求項４】
前記キャッシュメモリは、前記プロセッサクラスタの前記ＤＳＰによって、ＤＳＰ命令メモリバンクとして、また、ＤＳＰデータメモリバンクとして、設定可能であることを特徴とする請求項１に記載のプロセッサクラスタ。
【請求項５】
前記キャッシュメモリがシステムレベルのキャッシュコヒーレンスをサポートするためのキャッシュコヒーレンスプロトコルをサポートするように設定可能であることを特徴とする請求項１に記載のプロセッサクラスタ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プロセッサクラスタに関する。
【０００２】
【従来の技術】
埋め込み型コンピュータチップは、新世代ごとに、増加し続ける割合のチップ面積がメモリに割当てられ、低下し続ける割合のチップ面積が計算構造に割当てられる、という傾向を呈している。これは、以下の所見に基づく。第一に、バランスコンピュータシステムがＣＰＵ（中央演算処理装置）の計算能力と比例した量のメモリを備えていることは、長く公知であった。各世代ごとにチップの最大利用可能クロック周波数が３０％増加すると共に、メモリ構造に割当てられる相対的なチップ面積は同じ量だけ増加する傾向がある。結果として、プロセッサ又はＤＳＰコアの計算ロジックは比較的安価になる一方で、最終的にはメモリが集積回路の製造コストを決定する支配的な資源になる。
【０００３】
【発明が解決しようとする課題】
本発明の目的は、比較的広い適用性を有する一方で、他方では比較的限られた量のメモリを有することができるプロセッサクラスタを提供することである。
【０００４】
【課題を解決するための手段】
この目的のため、本発明によるプロセッサクラスタは、単一の集積回路で実現され、設定可能なキャッシュメモリ及び複数のプロセッサを有し、少なくとも２つの前記プロセッサは相互に異なる命令セットを有し、前記プロセッサクラスタは更に、前記複数のプロセッサの１つを選択的に稼動させると共に前記選択されたプロセッサにキャッシュメモリへのアクセスを与える選択ユニットを有する。キャッシュメモリは、最も最近アクセスされたコード又はデータを保持するための比較的速いメモリである。参照の局所性の原理によれば、最も最近使用されたデータ又はコードは、近い将来に再びアクセスされる可能性が高い。従って、プロセッサクラスタに近いキャッシュメモリの存在は、プロセッサの性能を大きく改善する。
【０００５】
プロセッサクラスタは、厳密に１つのプロセッサが稼動していてキャッシュメモリとの接続を有するように設定されてもよい。前記接続の実際の起動は、集積回路が製造された後に起こる。一方では、異なる命令セットを有する複数のプロセッサから１つを選択する可能性は、プロセッサクラスタが広い適用性を有することを可能にする。他方では、ただ１つのキャッシュメモリが集積回路に存在するので、集積回路は比較的限られた量のメモリを有することできる。
【０００６】
フィールドプログラマブル集積回路は、このようなものとして知られる。しかし、複数のプロセッサにアイデンティティを与える既存の実行法は、各々が自身専用のキャッシュメモリを有する複数のプロセッサを集積回路上で組み合わせることから成る。前述したように、技術のトレンドはメモリ資源をより高価にしている一方で、同時に計算ロジック資源はより安価になっている。この状況で、本発明は、複数の種類の相互に異なるプロセッサの集積回路の費用効果のよい実現を提供する。
【０００７】
欧州特許第０ ９２７ ９３６号は、マイクロプロセッサ、ユーザ設定可能なオンチッププログラムメモリ及び前記メモリを再設定するためのコントローラを有するプロセッサ構造を説明していることに言及しておく。その中で説明されるマイクロプロセッサは、演算＋ロード／記憶ユニット、乗算器、演算ユニット＋シフタ及び他の演算装置等の複数の実行ユニットを含むＶＬＩＷプロセッサである。コントローラは、１つのモードでメモリが内部アドレス空間にマッピングされ、他のモードでメモリがオンチップキャッシュとして設定されることを可能にする。しかしこの文書は、プロセッサが個々のユニットから組み立てられる設定可能なプロセッサ構造は説明していない。その代わり、本発明によるプロセッサクラスタにおいては、複数の固定した不変のプロセッサコアがフィールドプログラマブルスイッチを通じて単一のキャッシュメモリに接続される。
【０００８】
更に、米国特許第５，９３７，２０３号は、可調型ユニット（１２２Ａ、１２２Ｎ、…）を有するプロセッサ構造を説明していることに言及しておく。各可調型ユニット（１２２Ａ、１２２Ｎ、…）は、それぞれのメモリ（１１３Ａ、１１３Ｎ、…）に接続される。例は、可調型パイプライン、可調型ＡＬＵ、可調型分岐予測ユニット、可調型マルチメディア実行ユニット及び可調型浮動小数点ユニットである。同調は、ある機能が相当する種類の機能と取替えられる結果となる。例えば、１６ビット加算器は３２ビット加算器と取り替えられ、又は、第１の種類の分岐予測は第２の種類の分岐予測と取り替えられる。
【０００９】
本発明によるプロセッサクラスタにおいて、異なる選択は、異なる命令セットを有する異なるプロセッサが利用可能にされることを結果として有する。
【００１０】
米国特許第６，０９１，２６３号は設定可能ロジックブロック（ＣＬＢ）の第１のアレイ及びＣＬＢの第２のアレイを有するＦＰＧＡを説明することが述べられる。ＣＬＢの第１のアレイは、対応する第１設定キャッシュメモリアレイに結合される。第１設定キャッシュメモリアレイは、ＣＬＢの第１のアレイを再設定するための値を記憶する。ＣＬＢの第２のアレイは、対応する第２設定キャッシュメモリアレイに結合される。第２設定キャッシュメモリアレイは、ＣＬＢの第２のアレイを再設定するための値を記憶する。前記ＦＰＧＡは、当該ＦＰＧＡを再設定するために、低減された量のルーティング資源を必要とする。
【００１１】
完全を期すために、欧州特許第ＥＰ ６６８ ６５９ Ａ２が再構成可能な半導体集積回路を説明していることに言及しておく。この回路は、２つ以上の設定を有する複数のセルを有し、各設定は、セル機能及び／又は自身の他のセルとの相互接続によって規定される。
【００１２】
本発明によるプロセッサクラスタの１つの実施例において、前記複数のプロセッサは、少なくともマイクロコントローラ及びデジタル信号プロセッサ（ＤＳＰ）を含む。ＭＩＰＳ及びＡＲＭ等のマイクロコントローラは典型的に、制御処理のために最適化された命令セットアーキテクチャ（ＩＳＡ）を提供する。これは、これらのＩＳＡは、コンピュータメモリの種々の場所からデータを収集し、これらのデータ項目を互いに、また、定数データと比較し、次に、これらの比較の結果に基づいて決定を行うプログラムを実行するように最適化されるということを意味する。換言すれば、このようなＩＳＡを有するプロセッサは、好適には、制御集中プログラムの典型的な「ロード、比較、分岐」構造を実行するように選択される。ＯＡＫ、ＰＡＬＭ、ＲＥＡＬ及びＴｒｉｍｅｄｉａ等のＤＳＰは、信号処理のために最適化されるＩＳＡを典型的に与える。これは、これらのＩＳＡは、コンピュータメモリのデータブロックの連続的な部分に繰り返し数値演算の同じセットを実行するプログラムを実行するように最適化されるということを意味する。通常これらのプログラムは、非常に計算集中的であり、多くの乗算を含むと共に多くの場合飽和加算と組み合わせられる、多くの演算操作を実行する。
【００１３】
１つの実施例において、プロセッサクラスタは異なる種類のマイクロコントローラを含んでもよい。ＭＩＰＳ及びＡＲＭの両方が制御処理のために最適化される場合であっても、これらの命令は幾つかの側面で異なるように設定される。例えば、ＡＲＭはプログラマに１６個の汎用レジスタを与え、ＭＩＰＳは、３１個のこのようなレジスタを与える。両方のＩＳＡは同じ機能性を提供する命令（例えば、「加算せよ」又は「ゼロなら分岐せよ」等）を与えるが、これらの命令がＩＳＡによってエンコードされる手段は異なっているため、ＭＩＰＳがＡＲＭ命令を実行することを不可能にし、その反対も不可能にする。更に、ＭＩＰＳ及びＡＲＭは、条件つきの実行に対して異なるアプローチをとる。即ち、ＭＩＰＳが分岐を提供するだけのとき、ＡＲＭは分岐命令及びガード命令を与える。
【００１４】
プロセッサクラスタの１つの実施例は異なる種類のデジタル信号プロセッサを含んでもよい。また、ＤＳＰの中で、信号処理へのアプローチについてかなりの差が見られる。例えば、ＲＥＡＬ ＤＳＰは、中程度の性能レベルを必要とするオーディオ処理等のアプリケーションを対象とし、Ｔｒｉｍｅｄｉａはずっと高い性能レベルを必要とするビデオ及びグラフィックス処理等のアプリケーションを対象とする。この差は、これらのＤＳＰのそれぞれのＩＳＡにおいて反映される。このために、両方ともＤＳＰ系統のプロセッサに属するにもかかわらず、ＲＥＡＬがＴｒｉｍｅｄｉａ命令を実行することは不可能であり、逆もまた不可能である。
【００１５】
キャッシュは、ソフトウェア制御によって又はハードウェア制御によって管理可能である。ハードウェア制御されたキャッシュを有するプロセッサはプログラムするのが比較的容易であるが、プログラマはキャッシュ管理に対してほとんど又は全く制御を有しない。ソフトウェア制御は、どのデータがキャッシュに残っているか、及び、どれが新しいデータと取り替えられるかということをプログラマが正確に制御することができるという利点がある。しかし、ソフトウェア制御されたキャッシュを有するプロセッサはプログラムするのがより困難であるという欠点がある。
【００１６】
本発明によるプロセッサクラスタの好ましい実施例において、キャッシュメモリは、プロセッサクラスタのＤＳＰによって、ＤＳＰ命令メモリバンクとして、更に、ＤＳＰデータメモリバンクとして設定可能である。
【００１７】
それゆえに、また、プロセッサクラスタの同一型の異なるプロセッサの存在は、使用における増加された柔軟性を提供する。
【００１８】
幾つかのプロセッサクラスタが演算処理システムにおいて統合されてもよい。このようなシステムでは、キャッシュメモリは好適にはシステムレベルのキャッシュコヒーレンスをサポートするためにキャッシュコヒーレンスプロトコルをサポートするように設定可能である。これは、システムの異なるプロセッサクラスタの間でキャッシュコヒーレンスを達成することを可能にする。
【００１９】
【発明の実施の形態】
これらの及び他の本発明の態様は図面を参照して更に詳細に説明される。
【００２０】
図１は、単一の集積回路で実行され、複数のメモリバンク１ａ，．．．，１ｎ及びキャッシュ制御ユニットを含むキャッシュメモリ１を有するプロセッサクラスタを図式的に示す。プロセッサクラスタは更に、複数のプロセッサ２ａ，．．．，２ｅを有する。図１に表される例において、前記複数のプロセッサは、第１のマイクロコントローラ２ａ及び第２のマイクロコントローラ２ｂ並びに第１の信号プロセッサ２ｃ、第２の信号プロセッサ及び２ｄ第３の信号プロセッサ２ｅを含む。２つのマイクロコントローラ２ａ、２ｂは、相互に異なる命令セットを有するという点で互いと異なる。図示した実施例において、第１のマイクロコントローラ２ａはＡＲＭであり、第２のマイクロコントローラはＭＩＰＳである。３つのデジタル信号プロセッサ２ｃ、２ｄ及び２ｅも異なる命令セットを有する。この場合、３つのＤＳＰはＲＥＡＬ ２ｃ、ＯＡＫ ２ｄ及びＰＡＬＭ ２ｅを含む。プロセッサクラスタは、複数のプロセッサ２ａ，．．．，２ｃの１つ以上を選択的に稼動させると共に当該選択されたプロセッサにキャッシュメモリ１へのアクセスを与える選択ユニット６を更に有する。
【００２１】
これらプロセッサ２ａ，．．．，２ｅのうちの１つだけが稼動させられる（即ちキャッシュメモリに接続される）ことができる。デジタル信号プロセッサ２ｃが稼動させられる場合、選択ユニット６は前記プロセッサにイネーブル信号ｅｎ１，．．．，ｅｎ５を提供する、例えば、信号ｅｎ３をイネーブルすることによって、前記プロセッサを選択する。他のプロセッサは停止させられ、それゆえに、大量のエネルギーを消費することを必要としない。図示した実施例において、選択されたプロセッサ（例えばＤＳＰ ２ｃ）はマルチプレクサ３を介してキャッシュメモリ１へのアクセスを与えられ、前記マルチプレクサは、選択ユニット６から制御信号Ｓｅｌによって制御されている。他の実施例において、プロセッサは、選択ユニット６によって選択的にイネーブルされるトライステートゲートを介してキャッシュメモリ１に接続されることができる。更に、メモリバンク１ａ，．．．，１ｎの厳密な設定は、信号ＭＣによって制御される。後者は、異なったプロセッサ２ａ，．．．，２ｅがそれぞれのＩＳＡに従って作動するように異なったキャッシュ設定を有することを可能にする。
【００２２】
図２は、他の実施例を示す。図２において、図１の部分に対応する部分は、１０だけ高い参照番号を有する。本実施例において、図１のマルチプレクサ３はバス１４で置換されている。このバス１４を介して選択されたプロセッサ、ここではＡＲＭプロセッサ１２ａは、キャッシュメモリ１１と通信する。プロセッサ１２ｂ、１２ｃ、１２ｄ及び１２ｅ（斜線入りで示される）は、停止させられる。それゆえに、これらのプロセッサはキャッシュメモリ１１にアクセスしない。
【００２３】
この選択はユーザによって、例えば本発明を含むシステムの開始の際に実行されてもよい。さもなければ、この選択は、プロセッサクラスタが用いられるべきアプリケーションに依存して製造業者によって実行されてもよい。
【００２４】
現在作動中のコアからキャッシュメモリを分離し、その後にキャッシュメモリをセットの内の他のコアの１つにに再接続することは可能ではあるが、これは通常かなり複雑な動作であり、現在のコア上でシャットダウンプログラムが適切に実行され、引き続き、選択ユニット６の制御下での実際の切替が行われ、次に、新しいコアへブートプログラムが適切に実行されることを伴う。従って、１つのコアから他のコアへのキャッシュメモリの再割当は、コアが命令を実行する周波数よりも通常少なくとも数桁低い周波数によって可能である。
【００２５】
本発明の保護の範囲は、本願明細書において説明される実施例に制限されないことに言及しておく。本発明の保護の範囲は請求項における参照番号によっても制限されない。「有する（ｃｏｍｐｒｉｓｉｎｇ）」という用語は、請求項中で言及された以外の要素を排除するものではない。要素の前の語「１つの（ａ又はａｎ）」は、これらの要素が複数あることをを排除するものではない。本発明の部分を形成している手段は、専用のハードウェアの形で又はプログラムされたメインプロセッサの形で実行されてよい。本発明は、各新機能又は機能の組合せである。
【図面の簡単な説明】
【図１】本発明のプロセッサクラスタの第１の実施例を図式的に示す。
【図２】第２の実施例を示す。
【国際公開パンフレット】
2005504366.tif 000003
2005504366.tif 000004
2005504366.tif 000005
2005504366.tif 000006
2005504366.tif 000007
2005504366.tif 000008
2005504366.tif 000009
2005504366.tif 000010
2005504366.tif 000011
2005504366.tif 000012
【国際公開パンフレット（コレクトバージョン）】
2005504366.tif 000013
【国際調査報告】
2005504366.tif 000014
2005504366.tif 000015
2005504366.tif 000016