(57)【要約】【課題】複数のプロセッサにアクセスされるレジスタを含むシステムを提供すること。【解決手段】本発明は、一つのレジスタが同時に２以上のプロセッサにアクセスされる場合、マルチプロセッサシステムにおいて競合管理プロトコルを有する複数の共用レジスタを提供する。それぞれのレジスタは、アクセスプロトコルおよびデータを有する。アクセスプロトコルは、それぞれのプロセッサについてのアクセスタイプと、アービトレーション優先順位を含む。設定可能なアクセスタイプは、ＲＥＡＤ、ＲＥＡＤ／ＣＬＥＡＲ、ＲＥＡＤ／ＳＥＴ、およびＲＥＡＤ／ＷＲＩＴＥのグループから選択される。【選択図】図３
2005259133.tif 000002
【特許請求の範囲】
【請求項１】
各々がアクセスプロトコルとデータを含む複数の共用システム・レジスタと、
各々が前記複数の共用システム・レジスタをアクセスするＮ個のプロセッサ（Ｎは２以上の整数）と、
を備えるシステム。
【請求項２】
前記アクセスプロトコルが、Ｎ個のプロセッサの各々について設定可能なアクセスタイプを含む請求項１に記載のシステム。
【請求項３】
前記アクセスタイプがＲＥＡＤ、ＲＥＡＤ／ＣＬＥＡＲ、ＲＥＡＤ／ＳＥＴ、およびＲＥＡＤ／ＷＲＩＴＥを含むグループから選択される請求項２に記載のシステム。
【請求項４】
前記アクセスプロトコルを符号化して記憶するように作動するプログラム可能な複数のコンフィギュレーション・レジスタを備え、該コンフィギュレーション・レジスタの各々が前記共用システム・レジスタの１つに対応する、請求項３に記載のシステム。
【請求項５】
プログラム可能な前記コンフィギュレーション・レジスタの各々がＮ×２ビットから成り、前記設定可能なアクセスタイプが２ビットへと符号化される、請求項４に記載のシステム。
【請求項６】
前記アクセスプロトコルが、符号化され、ハードウエアデザインへと入力信号として供給される、請求項３に記載のシステム。
【請求項７】
前記アクセスプロトコルが、ハードウエアデザイン・ソースコード中のビルドタイム・オプションとして符号化され、選択される請求項３に記載のシステム。
【請求項８】
前記アクセスプロトコルが、アービトレーション優先順位をさらに含む請求項３に記載のシステム。
【請求項９】
前記アクセスプロトコルを符号化して記憶するように作動するプログラム可能な複数のコンフィギュレーション・レジスタを備え、該コンフィギュレーション・レジスタの各々が前記共用システム・レジスタの１つに対応する、請求項８に記載のシステム。
【請求項１０】
Ｎが２であり、プログラム可能な前記コンフィギュレーション・レジスタの各々が５ビットを含み、該５ビットのうちの２ビットが２つのプロセッサの一方のアクセスタイプを示すものであり、２ビットが前記２つのプロセッサのもう一方のアクセスタイプを示すものであり、１ビットがアービトレーション優先順位を示すものである、請求項９に記載のシステム。
【請求項１１】
プログラム可能な前記コンフィギュレーション・レジスタの各々がＮ×（２＋ｃｅｉｌｉｎｇ（ｌｏｇ２Ｎ））ビットから成り、４つの前記アクセスタイプを含む前記アクセスプロトコルが各プロセッサにつき２ビットに符号化され、前記アービトレーション優先順位がｃｅｉｌｉｎｇ（ｌｏｇ２Ｎ）ビットへと符号化される、請求項９に記載のシステム。
【請求項１２】
前記アクセスプロトコルが、前記ハードウエアデザイン・ソースコード中のビルドタイム・オプションとして符号化され選択される、請求項８に記載のシステム。
【請求項１３】
前記アクセスプロトコルが、符号化され、前記ハードウエアデザインへと入力信号として供給される、請求項８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサにアクセスされるレジスタを含むシステムに関する。
【背景技術】
【０００２】
例えばＭＯＤＥＭＳのようなマルチプロセッサシステムやネットワーク周辺機器は、システムにプロセッサまたはディジタル信号処理（ＤＳＰ）ベースのＩ／Ｏが付加されるに従って一般化しつつある。プロセッサは、１つのチップ内にあっても、または相互接続された別個の集積回路（ＩＣ）中にあってもよい。マルチプロセッサシステムは、図１および図２に示したように、レジスタを通じて通信することができる。例えば同じレジスタ内において同時に読み出し・変更・書き込み処理等を行おうとする場合、プロセッサが意図しないレジスタのデータ破損を生じないようにする対策が必要である。明確な競合管理技術を採用していない限り、レジスタのデータ破損の可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来の競合管理の仕組みは、ソフトウエア、セマフォ、またはレジスタ内における固定の優先ハードウエア・アービトレーション(arbitration)によるものであった。これらの仕組みでは、エラーを生じやすく、柔軟性を持たず、検証の困難なものであることが多い。
【課題を解決するための手段】
【０００４】
本発明は、マルチプロセッサシステムにおいて、２つ以上のプロセッサによって同時に１つのレジスタがアクセスされた場合に競合管理プロトコルによって共用される複数のレジスタを提供するものである。
【発明を実施するための最良の形態】
【０００５】
各レジスタはアクセスプロトコルとデータを含んでいる。アクセスプロトコルは各プロセッサのアクセスタイプとアービトレーション優先順位(arbitration priority)を含んでいる。アクセスタイプはＲＥＡＤ、ＲＥＡＤ／ＣＬＥＡＲ、ＲＥＡＤ／ＳＥＴ、およびＲＥＡＤ／ＷＲＩＴＥを含むグループから選択されたものである。
【０００６】
本発明は、柔軟性と堅牢性を提供する、ランタイム時にハードウエア設定可能な競合管理プロトコルである。プログラム可能な競合管理は、例えばビット、レジスタ、レジスタ列といった各要素について、各プロセッサが指定要素に対して実行する書き込みアクセスがどのレベルにあるかを指定するものである。
【０００７】
アクセスタイプはＲＥＡＤ、ＲＥＡＤ／ＣＬＥＡＲ、ＲＥＡＤ／ＳＥＴ、およびＲＥＡＤ／ＷＲＩＴＥと定義される。ＲＥＡＤの場合、プロセッサはその要素を単に読み出すことが許される。書き込みが試みられた場合、これは無視されるか、またはエラーを生成する。ＲＥＡＤ／ＣＬＥＡＲの場合、プロセッサはその要素内のビットの読み出し、またはクリアをすることができる。ＲＥＡＤ／ＳＥＴの場合、プロセッサはその要素内のビットの読み出し、または設定することができる。ＲＥＡＤ／ＷＲＩＴＥの場合、プロセッサはその要素内のビットの読み出し、設定、またはクリアをすることができる。
【０００８】
アクセスタイプは、プロセッサ間に単純なハンドシェイキング・プロトコルの実現を可能とする。例えば、特定の要素に対し、１つのプロセッサが設定することだけでき、第二のプロセッサがこれをクリアすることだけできる場合、単純なインターロック方式のハンドシェイクが実現される。
【０００９】
アクセスタイプに加えて、オプションとしてアービトレーション優先順位もまた指定される。これは、プロセッサのアクセスタイプに競合があった場合に何が起きるかを定義したものである。説明すると、１つのプロセッサが特定要素のＲＥＡＤ／ＣＬＥＡＲを試みている間に他のプロセッサが同じ要素のＲＥＡＤ／ＳＥＴを試みた場合、アービトレーション優先順位がその結果を定義するのである。アービトレーション優先順位なく実現されたシステムの場合、アクセスタイプは相互に排他的となるように構成されるものである。
【００１０】
２プロセッサ・システムとした一実施例においては、表１に示すように、各要素について５つのコンフィギュレーション・ビットを使用することができる。
【表１】
2005259133.tif 000003
【００１１】
よって「１０１１０」という値は、プロセッサ１がＲＥＡＤ／ＣＬＥＡＲアクセスを持ち、プロセッサ２がＲＥＡＤ／ＳＥＴアクセスを持っていることを示すものである。競合が生じた場合、プロセッサ２はプロセッサ１より優先される。これは、プロセッサ２からプロセッサ１への割り込みに使用することができる。プロセッサ２は割り込みビットを設定し、プロセッサ１がそのクリアに応答するまでこれは設定されたまま維持される。
【００１２】
図３は共用システム、またはコンフィギュレーション・レジスタ中のデータ例を示している。この実施例においては、最上位５ビットがアクセス制御に用いられる。レジスタ中の残りのビットはデータを格納するものである。
【００１３】
本発明は、幅広いインターフェースプロトコルの設定を可能とすることでプロトコルを知る前にハードウエア開発を可能とし、ハードウエアが異なるプロトコルをサポートすることができるようにその再設定を可能とするものである。最も一般的な実施では、レジスタ中の各ビットに対してコンフィギュレーション・ビットが提供される。しかしながら、ビットまたはレジスタの集合を保護することにより、より低コストでの実施も可能である。コンフィギュレーション・ビットは１つのプロセッサにより、または共同で制御することができる。かわりに、アクセスプロトコルを符号化し、ハードウエアデザイン・ソースコード中のビルドタイム・オプションとして選択されるようにしても、または符号化してハードウエアデザインへと入力信号として供給してもよい。
【００１４】
当該分野における当業者は、本発明の概念を拡張することができる。Ｎ個のプロセッサ（Ｎは２以上の整数）を含むマルチプロセッサシステムの場合、プログラム可能な各コンフィギュレーション・レジスタは２Ｎビットを持ち、ここに設定可能なアクセスタイプの各々が２ビットで符号化される。オプションのアービトレーション優先順位が含まれる場合、更なるＮ×ｃｅｉｌｉｎｇ（ｌｏｇ２Ｎ）ビットを使用することができるもので、ここでｃｅｉｌｉｎｇ（ｌｏｇ２Ｎ）ビットの各セットが各プロセッサの相対的アービトレーション優先順位を提供する。ｃｅｉｌｉｎｇ関数は以下の通り定義される。いずれの所定の実数ｘについても、ｃｅｉｌｉｎｇ（ｘ）はｘよりも小さいことがない最小の整数である。例えば、８プロセッサ・システムにおいては、相対的な各プロセッサの優先順位は、３ビットで符号化することができる。各プロセッサが固有のアービトレーション優先順位番号で符号化されていた場合、ロジックはどのプロセッサが書き込み優先順位を持っているかを判定することができる。この例の場合、各プロセッサにつき５ビット、即ち、各共用レジスタ要素につき合計４０ビットが必要となるのである。
【図面の簡単な説明】
【００１５】
【図１】従来のマルチプロセッサシステムを描いた図。
【図２】従来のマルチプロセッサシステムを描いた図。
【図３】本発明のコンフィギュレーション・レジスタの一例を描いた図。
【図１】
2005259133.tif 000004
【図２】
2005259133.tif 000005
【図３】
2005259133.tif 000006