(57)【要約】１つ以上のマスタおよび１つ以上のペリフェラルを有し、柔軟で動的なエンディアン制御を可能にするデータ処理システムを提供する。データ処理システムにおいてエンディアンネス制御を行う方法は、ペリフェラルに対するアクセスを開始すること、ペリフェラルに対応する第１エンディアンネス制御部を規定すること、エンディアンネス制御部を用いてアクセスの間に転送される情報のエンディアンネス順序を制御しアクセスを完了することを含む。一実施形態では、第１エンディアンネス制御部は、アクセスに対応するデフォルト・エンディアンネスに優先する。デフォルト・エンディアンネスは、現在のアクセスを要求しているマスタに対応するマスタ・エンディアンネス制御部によって規定することができる。データ処理システムは、第１バス・マスタと、第１および第２ペリフェラルと、第１ペリフェラルに対応する第１エンディアンネス制御部と、第２ペリフェラルに対応する第２エンディアンネス制御部と、第１エンディアンネス制御部を用いて、第１バス・マスタと第１ペリフェラルとの間のアクセスに対するエンディアンネスを制御する制御回路とを含む。一実施形態では、データ処理システムは多数のマスタを含む。
2008500635.tif 000002
【特許請求の範囲】
【請求項１】
データ処理システム（１０）においてエンディアンネス制御部を規定する方法であって、
第１ペリフェラル（２２または２４）にアクセスする第１アクセスを開始すること、
前記第１ペリフェラル（２２または２４）に対応する第１エンディアンネス制御部を規定すること、
前記第１ペリフェラルに対応する第１エンディアンネス制御部を用いて、前記第１アクセスの間に転送される情報のエンディアンネスを制御すること、
を備えている、方法。
【請求項２】
請求項１記載の方法において、
前記第１アクセスの間に転送される情報のエンディアンネスはバイトの順序である、方法。
【請求項３】
請求項１記載の方法において、
前記第１アクセスの間に転送される情報のエンディアンネスはビットの順序である、方法。
【請求項４】
請求項１記載の方法において、
前記第１ペリフェラルはメモリを含む、方法。
【請求項５】
請求項１記載の方法において、
前記データ処理システムは単一の集積回路上に形成されている、方法。
【請求項６】
請求項１記載の方法において、
前記第１アクセスの間に転送される情報はデータ情報であり、
前記第１エンディアンネス制御部は、前記転送される情報が命令情報である場合には、前記転送される情報のエンディアンネスを制御するために用いられない、方法。
【請求項７】
請求項１記載の方法において、
前記第１アクセスの間に転送される情報は命令情報であり、
前記第１エンディアンネス制御部は、前記転送される情報がデータ情報である場合には、前記転送される情報のエンディアンネスを制御するために用いられない、方法。
【請求項８】
請求項１記載の方法において、
前記第１アクセスの間に転送される情報は第１サイズを有し、
前記第１エンディアンネス制御部は、前記転送される情報が前記第１サイズとは異なる第２サイズである場合には、前記転送される情報のエンディアンネスを制御するために用いられない、方法。
【請求項９】
請求項１記載の方法において、
前記第１エンディアンネス制御部は、エンディアンネスをリトル・エンディアンとして選択する第１の値を有する、方法。
【請求項１０】
請求項９記載の方法において、
前記第１エンディアンネス制御部は、エンディアンネスをビッグ・エンディアンとして選択する第２の値を有する、方法。
【請求項１１】
請求項１０記載の方法において、
前記第１アクセスは第１マスタによって開始され、当該方法は更に、
前記第１マスタに対してマスタ・エンディアンネスを示すエンディアンネス信号を供給すること、
前記第１エンディアンネス制御部が第３の値を有する場合、前記エンディアンネス信号が示す前記マスタ・エンディアンネスとは反対となるように、前記第１アクセスの間に転送される情報のエンディアンネスを逆転させること、
を備えている、方法。
【請求項１２】
請求項１１記載の方法において、
前記第１エンディアンネス制御部は、前記第１アクセスの間に転送される情報のエンディアンネスに影響を与えないように前記第１エンディアンネス制御部を強制する第４の値を有する、方法。
【請求項１３】
請求項１記載の方法において、
前記第１アクセスは第１マスタ（１４）によって開始され、当該方法は更に、
前記第１マスタに対してマスタ・エンディアンネスを示すエンディアンネス信号を供給すること、
前記第１エンディアンネス制御部が所定の値を有する場合、前記エンディアンネス信号が示す前記マスタ・エンディアンネスとは反対となるように、前記第１アクセスの間に転送される情報のエンディアンネスを逆転させること、
を備えている、方法。
【請求項１４】
請求項１記載の方法は更に、
第２ペリフェラルにアクセスする第２アクセスを開始すること、
前記第２ペリフェラルに対応する第２エンディアンネス制御部を規定すること、
前記第２ペリフェラルに対応する第２エンディアンネス制御部を用いて、前記第２アクセスの間に転送される情報のエンディアンネスを制御すること、
を備えている、方法。
【請求項１５】
請求項１４記載の方法において、
前記第１エンディアンネス制御部および前記第２エンディアンネス制御部は、異なるエンディアンネスを示す、方法。
【請求項１６】
請求項１記載の方法において、
前記第１アクセスは第１マスタ（１４）によって開始され、当該方法は更に、
前記第１マスタに対応する第３エンディアンネス制御部を規定すること、
前記第１ペリフェラルに対応する前記第１エンディアンネス制御部を用いる代わりに、前記第１マスタに対応する第３エンディアンネス制御部を用いて、前記第１アクセスの間に転送される情報のエンディアンネスを制御すること、
を備えている、方法。
【請求項１７】
請求項１６記載の方法は更に、
前記第１マスタに対してマスタ・エンディアンネスを示すエンディアンネス信号を供給すること、
前記第３エンディアンネス制御部を用いる代わりに、前記第１マスタに対応するエンディアンネス信号を用いて、前記第１アクセスの間に転送される情報のエンディアンネスを制御すること、
を備えている、方法。
【請求項１８】
請求項１７記載の方法は更に、
第２マスタ（１６）に対してマスタ・エンディアンネスを示すエンディアンネス信号を供給すること、
前記第２マスタに対応する第４エンディアンネス制御部を規定すること、
前記第２マスタに対応する第４エンディアンネス制御部を用いて、第２アクセスの間に転送される情報のエンディアンネスを制御すること、
を備えている、方法。
【請求項１９】
請求項１記載の方法において、
前記第１アクセスは第１マスタによって開始され、当該方法は更に、
前記第１ペリフェラルにアクセスする第２アクセスを第２マスタによって開始すること、
前記第２マスタに対してマスタ・エンディアンネスを示すエンディアンネス信号を供給すること、
前記第２マスタに対応するエンディアンネス信号を用いて、前記第２アクセスの間に転送される情報のエンディアンネスを制御すること、
を備えている、方法。
【請求項２０】
請求項１記載の方法において、
前記第１アクセスは第１マスタによって開始され、当該方法は更に、
前記第１ペリフェラルにアクセスする第２アクセスを第２マスタによって開始すること、
前記第２マスタに対応する第４エンディアンネス制御部を規定すること、
前記第２マスタに対応する第４エンディアンネス制御部を用いて、前記第２アクセスの間に転送される情報のエンディアンネスを制御すること、
を備えている、方法。
【請求項２１】
データ処理システム（１０）であって、
第１マスタ（１４）と、
第１ペリフェラル（２２）と、
第２ペリフェラル（２４）と、
第１ペリフェラルに対応する第１エンディアンネス制御部と、
第２ペリフェラルに対応する第２エンディアンネス制御部と、
前記第１マスタ、前記第１ペリフェラル、前記第２ペリフェラル、前記第１エンディアンネス制御部、および前記第２エンディアンネス制御部に接続されている制御回路（４４）であって、前記第１マスタと前記第１ペリフェラルとの間の第１アクセスに対するエンディアンネスを前記第１エンディアンネス制御部を用いて制御し、前記第１マスタと前記第２ペリフェラルとの間の第２アクセスに対するエンディアンネスを前記第２エンディアンネス制御部を用いて制御する、制御回路（４４）と、
を備えている、データ処理システム。
【請求項２２】
請求項２１記載のデータ処理システムは更に、
前記第１マスタに対応する第３エンディアンネス制御部を備えており、
前記第１ペリフェラルに対応する前記第１エンディアンネス制御部を用いる代わりに、前記第１マスタに対応する第３エンディアンネス制御部を用いて、前記第１アクセスの間に転送される情報のエンディアンネスを制御する、データ処理システム。
【請求項２３】
請求項２２記載のデータ処理システムは更に、
前記第３エンディアンネス制御部を用いる代わりに、前記第１マスタに対応するエンディアンネス信号であって、当該第１マスタのマスタ・エンディアンネスを示すエンディアンネス信号を用いて、前記第１アクセスの間に転送される情報のエンディアンネスを制御する、データ処理システム。
【請求項２４】
請求項２１記載のデータ処理システムは更に、
前記第１ペリフェラルへの第３アクセスを開始する第２マスタと、
前記第２マスタに対応する第４エンディアンネス制御部と、
を備えており、
前記第１エンディアンネス制御部の値に基づいて、前記第２マスタに対応する前記第４エンディアンネス制御部を選択的に用いて、前記第３アクセスの間に転送される情報のエンディアンネスを制御する、データ処理システム。
【請求項２５】
データ処理システム（１０）であって、
マスタ（１４）と、
ペリフェラル（２２または２４）と、
エンディアンネス制御部と、
前記マスタ、前記ペリフェラル、及び前記エンディアンネス制御部に接続され、前記マスタのマスタ・エンディアンネスを示すエンディアンネス信号が供給される制御回路（４４）であって、前記エンディアンネス制御部が第１の値を有する場合、前記マスタと前記ペリフェラルとの間のアクセスに対するエンディアンネスを前記エンディアンネス制御部を用いて制御し、前記エンディアンネス制御部が第２の値を有する場合、前記アクセスに対するエンディアンネスを前記エンディアンネス信号を用いて制御する、制御回路（４４）と、
を備えている、データ処理システム。
【請求項２６】
請求項２５記載のデータ処理システムにおいて、
前記エンディアンネス制御部は前記ペリフェラルに対応する、データ処理システム。
【請求項２７】
請求項２５記載のデータ処理システムにおいて、
前記エンディアンネス制御部は前記マスタに対応し、当該データ処理システムは更に、
前記ペリフェラルに対応する第２エンディアンネス制御部を備えている、データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムに関し、更に特定すれば、データ処理システムにおけるエンディアンネス制御（ｅｎｄｉａｎｎｅｓｓ  ｃｏｎｔｒｏｌ）に関する。
【背景技術】
【０００２】
プロセッサは、メモリから二進値を読み出し、メモリに二進値を書き込むことができる。データは、例えば、ビッグ・エンディアンまたはリトル・エンディアンのフォーマットのような、種々のエンディアン・フォーマットにしたがってメモリに格納される。図９および図１０の記載において用いられているように、エンディアンネスとは、１ワードまたはハーフワード内におけるバイトのバイトの順序(byte ordering)のことを言う。この場合、エンディアンネスをバイト順序と呼ぶこともある。一般に用いられているデータ記憶フォーマットの１つを図９に示す。図９はビッグ・エンディアン・フォーマットと呼ばれる。また、一般に用いられている第２のデータ記憶フォーマットを図１０に示す。図１０はリトル・エンディアン・フォーマットと呼ばれる。
【０００３】
図９において、４バイトのメモリ位置が示されている。４つのメモリ位置は、バイト０、バイト１、バイト２、およびバイト３と呼ぶ４バイトの情報を格納するために用いることができる。別の形態では、図９における４つの記憶位置は、ハーフワード０およびハーフワード１を格納するために用いることができる。図９に示すように、各ハーフワードは１６ビット値であり、２バイトを含む。各ワードは３２ビット値であり、４バイトを含む。尚、代わりに、ワードおよびハーフワードに異なる定義を付けることも可能である。例えば、ワードを１６ビット値とし、ハーフワードを８ビット値とすることができる。したがって、図９における記憶位置は、バイト、ハーフワード、およびワードのデータ格納が可能である。
【０００４】
ビッグ・エンディアンおよびリトル・エンディアンは、ハーフワードおよびワードをいかに格納するかにおいて相違する。図９を参照すると、ハーフワード０は、バイト０およびバイト１と呼ぶ２つのバイト位置に格納されている。バイト０はハーフワードの最上位部分であり、バイト１はハーフワードの最下位部分である。バイト０は、１６進数における値１２を格納し、バイト１は１６進数における値３４を格納する。したがって、ハーフワード０は、１６進数値１２３４として、図９から読み出される。同様に、１６進数値５６７８を格納するように、１６進数における値５６の最上位バイトと、１６進数における値７８の最下位バイトとを有するハーフワード１が、メモリから読み出される。
【０００５】
図９において、バイト０のアドレス値はバイト１よりも小さく、バイト１のアドレス値はバイト２よりも小さく、バイト２のアドレス値はバイト３よりも小さい。例えば、バイト０のアドレスが１６進数で５０となるようにバイト０をメモリ内に配置すると、バイト１のアドレスは１６進数で５１となり、バイト２のアドレスは１６進数で５２となり、バイト３のアドレスは１６進数で５３となる。したがって、例えば、バイト３は、バイト０、１または２よりも上位のアドレス空間に位置すると言える。したがって、ハーフワードまたはワードをメモリから読み出す場合、ビッグ・エンディアン・フォーマットの最上位バイトは下位のアドレス空間に格納されており、一方最下位バイト部分は最上位ビット部分よりも上位のアドレス空間に格納されていることになる。
【０００６】
３２ビット・ワードを図９に格納する場合、読み出される値は、バイト０が最上位バイトであり、バイト３が最下位バイトであることから、１６進数で１２３４５６７８となる。
【０００７】
図１０は、リトル・エンディアン・フォーマットを示す。図１０のハーフワード０は、メモリから、５６７８の値を有するものとして読み出される。これは、リトル・エンディアン記憶フォーマットを用いる場合、最上位バイトが最下位バイトよりも上位のアドレス空間に格納されるからである。このリトル・エンディアン・フィーマットは、ビッグ・エンディアン・フォーマットの逆である。したがって、ハーフワード０は１６進数の値５６７８として読み出され、ハーフワード１は１６進数の値１２３４として読み出される。ワード０と呼ばれる３２ビット・ワード値を図１０におけるメモリから読み出すと、このワードは、１２３４５６７８の１６進数値を有することになる。
【０００８】
要約すると、ビッグ・エンディアン・フォーマットを用いて３２ビットワードを図９から読み出すと、その３２ビット値は１６進数の１２３４５６７８となる。また、リトル・エンディアン・フォーマットを用いて図１０から３２ビット・ワードを読み出すと、１６進数値の１２３４５６７８が読み出される。しかしながら、図９および図１０からわかるように、双方の読み出しの結果同一の値が得られるものの、図９および図１０の個々のバイトは、互いに比較すると、逆になっている。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
この異なるエンディアン・フォーマット間のビット順序またはバイト順序において固有の相違があるために、異なるエンディアン・フォーマットを用いて動作しようとする多元マスタおよび多元ペリフェラルデータ処理システムのようなデータ処理システムにおいて問題が生ずる。したがって、１つ以上のマスタおよび１つ以上のペリフェラル（周辺装置：ｐｅｒｉｐｈｅｒａｌ）を有するデータ処理システムのために、柔軟で動的なエンディアンネスの制御を可能にするデータ処理システムが求められている。
【課題を解決するための手段】
【００１０】
添付図面に一例として本発明を示すが、本発明はこれに限定されるのではない。図面においては、同様の参照符号は同様の要素を示す。
尚、図は、簡素さおよび明確さを目的に示されており、必ずしも同一の拡縮率で描かれていないことを、当業者は理解し得る。例えば、図における要素の一部は、本発明の実施形態の理解を高めるのに役立つように、他の要素に対して誇張されている場合もある。
【００１１】
前述のように、例えば、ビッグ・エンディアン・フォーマットまたはリトル・エンディアン・フォーマットのように、種々のエンディアン・フォーマットにしたがってデータをメモリに格納することができる。図１〜図８の説明に用いるように、エンディアンネスとは、ワードまたはハーフワードにおけるバイトのバイト順序のことを言う。したがって、エンディアンネスはバイト順序とも呼ばれる。しかしながら、代わりに、エンディアンネスは、バイト、ワード、またはハーフワード内におけるビットのビット順序のことを言う場合もある。更に、エンディアンネスは、ワードの順序またはハーフワードの順序等のことを言う場合もある。即ち、エンディアンネスは、例えば、バイト、ハーフワード、ワード、ロングワード、ダブルワード等のような、ビット（またはバイト）群内における任意の数「ｎ」のビット（またはバイト）の順序を示し得る。したがって、エンディアンネスは、一般に、広い概念では、任意の数「ｎ」のビットまたはワードの順序を言い、バイトの順序には限定されない。一実施形態では、１ワードは３２ビットに対応し、１ハーフワードは１６ビットに対応する。しかしながら、他の実施形態では、１ワードは、例えば、１６ビットまたは６４ビットというような、異なる数のビットを含む場合もあり得る。
【００１２】
本発明の一実施形態は、ペリフェラル毎またはアクセス毎にエンディアンネス制御を可能にする、ペリフェラル・エンディアン制御の使用を通じて、データ処理システム内における柔軟なエンディアンネス制御機構を提供する。例えば、一実施形態では、データ処理システムは、異なるエンディアン・モードで実行するマスタに応答する共有ペリフェラルを含むことができる。また、これまでのシステムとのソフトウェア互換性のために、ペリフェラルは、元来書かれているソフトウェアと同じように、マスタの現在のエンディアンネスのアクセスとは異なるメモリの形で応答する必要がある場合もある。更に、ペリフェラルは、現在のマスタのエンディアン・モードの指示を受けることなく、異なるエンディアンネスに応答する必要がある場合もある。一実施形態では、マスタ・エンディアンネス制御フィールドを用いて、システム内のマスタ毎にデフォルトのエンディアン・モードを規定することができる。更に、ペリフェラル・エンディアンネス制御部は、選択的に、各マスタのエンディアン・モードを無効にして、例えば、従来のシステム構成またはソフトウェア仕様との下位互換性に対処することもできる。尚、ペリフェラル・エンディアンネス制御部およびマスタ・エンディアンネス制御部は、専用ペリフェラル、共有ペリフェラル、またはそのあらゆる組み合わせを有する単一マスタまたは多元マスタ・データ処理システムにも適用可能である。
【００１３】
本発明の別の実施形態は、安全性を高めた動作環境を得るために、データ処理システム内において柔軟なペリフェラル・アクセス保護機構を提供する。例えば、データ処理システムは、共有ペリフェラルにアクセスする必要がある場合において、信頼（ｔｒｕｓｔｅｄ）および不信（ｕｎｔｒｕｓｔｅｄ）バス・マスタの組み合わせを含むことができる。一実施形態では、信頼バス・マスタによって、バス・マスタ毎の特権および信頼属性、ならびにペリフェラル毎のアクセス制御における動的な更新に対処する。したがって、信頼バス・マスタは、不信バス・マスタ上で実行する誤ったソフトウェアまたは敵対的ソフトウェアによる悪意ある改ざんからデータ処理システムを保護するために、どのバス・マスタがどのペリフェラルにアクセスする許可を有するのか確定することもできる。
【００１４】
バス・マスタ識別子、信頼属性、および特権レベルの使用により、要求されたペリフェラルへのアクセスは、信頼バス・マスタが確定した許可に基づいて、許可または拒否のいずれも可能である。例えば、一実施形態では、データ処理システム内の各マスタは、対応する特権レベル修正部と、対応する信頼属性を（リードおよびライト・アクセスのような）個々のバス・アクセス形式に対して含んでいる。また、一実施形態では、データ処理システム内の各ペリフェラルは、対応する信頼属性、ライト保護インディケータ、および特権保護インディケータを含む。したがって、一実施形態では、バス・マスタによるペリフェラルへのバス・アクセスが許可されるのは、バス・マスタがしかるべき特権レベル、およびペリフェラルによって要求されるしかるべき信頼レベルを有するとき（ならびに、バス・アクセスがライト・アクセスである場合、ペリフェラルがライト保護されていないとき）である。また、特権レベル修正部の使用により、バス・マスタを特定のバス・アクセスに対しては特定の特権レベルに強制することもできる。
【発明を実施するための最良の形態】
【００１５】
図１は、データ処理システム１０の一実施形態を示す。データ処理システム１０は、バス・スレーブ２６、バス・マスタ１４、バス・マスタ１５、バス調停ロジック２８、システム・バス１６、バス・インターフェース１８、ペリフェラル・バス２０、ならびにペリフェラル２２および２４を含む。バス・スレーブ２６、バス・マスタ１４、バス・マスタ１５、バス調停ロジック２８、およびバス・インターフェース１８は全て双方向にシステム・バス１６に接続されている。バス・インターフェース１８、ペリフェラル２２、およびペリフェラル２４は、全て双方向にペリフェラル・バス２０に接続されている。ペリフェラル２２は、ペリフェラル回路１９およびペリフェラル・レジスタ２１を含み、ペリフェラル２４は、ペリフェラル回路２３およびペリフェラル・レジスタ２５を含む。図１には２つのペリフェラル２２および２４のみを示すが、データ処理システム１０は、任意の数のペリフェラルを含み、ペリフェラル・バス２０に接続することができる（また、ペリフェラル２２および２４の各々は、データ処理システム１０におけるマスタの全てまたは一部による共有ペリフェラルとしてもよく、または１つのマスタによってのみアクセス可能な専用ペリフェラルとしてもよい）。同様に、任意の数のバス・マスタおよびスレーブをシステム・バス１６に接続することもでき、図１に示されるものに限定されるのではない。また、図１はバス調停ロジック２８を、システム・バス１６に接続されている別個のユニットとして示すが、バス調停ロジック２８の一部を、システム・バス１６に接続されているバス・マスタの各々（またはバス・マスタの一部分）に配置してもよい（バス調停ロジック２８は、既知のバス・アービタと同様に動作すればよい）。
【００１６】
一実施形態では、データ処理システム１０の全ては単一の集積回路に含まれる。あるいは、データ処理システム１０は任意の数の集積回路上に含まれてもよい。
一実施形態では、バス・マスタ１４およびバス・マスタ１５は、マイクロプロセッサ、ディジタル信号プロセッサ等のようなプロセッサとすることができ、あるいは、ダイレクト・メモリ・アクセス（ＤＭＡ）ユニットのような、他の任意の種類のマスタ・デバイスでもよい。これらのバス・マスタの１つ以上が信頼バス・マスタとなることができ、不信バス・マスタよりも改悪を被る虞れが少ない。例えば、信頼バス・マスタは、当該バス・マスタまたはＳｏＣによって完全に制御されている命令を実行することができる（即ち、信頼マスタ上で実行するソフトウェアを信頼ソフトウェアと見なすことができる）。即ち、一実施形態では、サード・パーティのソフトウェアは信頼マスタ上では実行することができず、第三者は信頼マスタへのアクセスを許可されない。あるいは、信頼バス・マスタに対する信頼レベル（即ち、セキュリティ・レベル）を、完全信頼から低信頼まで変化させることができ、データ処理システム１０の設計によって異なるが、一般には不信バス・マスタよりも信頼度は高い。
【００１７】
同様に、バス・マスタ１４および１５の任意の１つ以上を不信バス・マスタとしてもよく、これらは一般にアクセスされ易く、または改悪を被り易い。一実施形態では、不信バス・マスタは、一般用途用プロセッサであり、サード・パーティ・ソフトウェア（例えば、ユーザが開発したソフトウェア）、あるいは他の任意の不信ソフトウェア（ソフトウェアの内容および機能が全体的に未知である）を受け入れ、実行することができる。ソフトウェアが信頼されていないので、このソフトウェアはデータ処理システム１０の他の部分（他の信頼バス・マスタまたはペリフェラル２２および２４のような）を改悪しようとする誤ったソフトウェアまたは敵対的ソフトウェアである可能性があり、ウィルスをデータ処理システム１０に混入させる可能性があり、バス・マスタ１４または１５、ペリフェラル２２または２４、バス・スレーブ２５、あるいはデータ処理システム１０内部のいずれかにおいて保護されている情報にアクセスされる可能性がある。
【００１８】
また、ペリフェラル・バス・マスタは、ある種のアクセスに対しては信頼されていると見なすことができ、他の種類のアクセスに対しては信頼されていないと見なすことができる。例えば、同じバス・マスタでも、リードに対しては信頼性があり、ライトに対しては信頼性がないと見なすことができる。したがって、各マスタは、異なる種類のアクセスについては異なる信頼レベルを有することができる。また、各バス・マスタは、異なる特権レベルを有することもできる。例えば、一実施形態では、１つのバス・マスタが高い特権レベル（スーパーバイザ・モードのような）で動作してもよく、他のバス・マスタは低い特権レベル（ユーザ・モードのような）で動作してもよい。特定の特権レベルは、マスタがアクセスできるリソースを決定するのに使用される。
【００１９】
したがって、一実施形態では、以下で説明するように、データ処理システム１０内の各マスタは、対応する１組の信頼属性フィールドを有し、このフィールドによって個々の種類のバス・アクセスに対して対応するマスタの信頼レベルが決定される。また、各バス・マスタは対応する特権修正フィールドを有し、このフィールドによって、対応するマスタの特権レベルを、個々のバス・アクセスに対して選択的に調節することが可能となる。同様に、ペリフェラル２２および２４のような各ペリフェラルは、対応する１組のアクセス制御フィールドを有し、この制御フィールドによって、所与のペリフェラルが対応するアクセスのレベルが決定される。例えば、特定のペリフェラルは、信頼されているとして識別されたマスタ、またはスーパーバイザ・モードで動作しているマスタ（即ち、スーパーバイザ特権レベルを有する）に対してより多くのアクセスを与える。バス・マスタについてのこれらの特権および信頼属性フィールド、ならびにペリフェラルについてのアクセス制御フィールドについては、図２〜図５を参照して以下で更に詳しく説明する。
【００２０】
データ処理システム１０内の各バス・マスタは、特定のエンディアン・モードにしたがって動作することができ、異なるバス・マスタのエンディアン・モードは異なっていてもよい。したがって、一実施形態では、以下で説明するように、１組のペリフェラル・エンディアン制御レジスタを用いて、個々のバス・マスタから現在のアクセスを実行するエンディアン・モードを決定する。この場合、一例では、１つ以上のペリフェラルが対応するペリフェラル・エンディアン制御レジスタを有し、この制御レジスタにより、当該ペリフェラルにアクセスすることができるマスタ毎に、エンディアン制御情報が提供される。このように、アクセス毎に、アクセスされるペリフェラルは、しかるべきエンディアンネスを用いて要求元のマスタに応答することができる。また、一実施形態では、１組のマスタ・エンディアン制御フィールドによって、各マスタに対応するエンディアンネス制御情報が提供される。尚、このエンディアン制御情報は、ペリフェラル・エンディアンネス制御レジスタにより提供されるエンディアンネス制御情報によって選択的に無効にされる場合もある。例えば、これらのマスタ・エンディアン制御フィールドは、マスタ毎にデフォルト・エンディアンネス情報を提供する。これらのマスタ・エンディアンネス制御フィールドおよびペリフェラル・エンディアンネス制御レジスタについては、図２〜図８を参照して以下で更に詳しく説明する。
【００２１】
再度図１を参照すると、バス・スレーブ２６は、例えば、バス・マスタ１４および１５によるアクセスが可能なメモリや、ペリフェラル２２および２４と同種類のペリフェラルを含む、システム・バス上に位置する任意の種類のペリフェラル等のような、任意のスレーブ・デバイスである。ペリフェラル２２および２４は、万能非同期受信送信機（ＵＡＲＴ）、リアル・タイム・クロック（ＲＴＣ）、キーボード・コントローラ等のような、任意の種類のペリフェラルである。ペリフェラル回路１９は、ペリフェラル・バス２０とペリフェラル・レジスタ２１との間の通信を可能にする。同様に、ペリフェラル回路２３は、ペリフェラル・バス２０とペリフェラル・レジスタ２５との間の通信を可能にする。他の実施形態では、ペリフェラル２２はメモリ・ユニットとしてもよく、この場合、ペリフェラル・レジスタ２１は、メモリ・アドレス位置となる。
【００２２】
動作時、バス・マスタ１４および１５はシステム・バス１６のアクセスを要求し、バス・スレーブ２６のような、システム・バス１６に接続されている他のスレーブ・デバイスへのアクセスを要求するか、あるいはバス・インターフェース１８を介して、ペリフェラル２２および２４へのアクセスを要求する。以下で説明するが、バス・インターフェース１８は、特定のペリフェラルに対する要求や、または特定の種類の要求を許可するか否かを判断する。許可しない場合、バス・インターフェース１８はシステム・バス１６を通じてバス・エラー応答を与える。しかしながら、要求を許可する場合、バス・インターフェース１８は、要求されたバス・アクセスを履行させるために必要なあらゆるバス・プロトコルおよびエンディアンネス制御情報を提供する。前述のように、各バス・マスタ１４および１５は、その特権レベル、ならびにアクセスされるペリフェラルの信頼レベルおよびアクセス制御フィールドによって決定されるように、ペリフェラル２２および２４へのアクセスが制限されている場合がある。更に、各バス・マスタ１４および１５は、異なるエンディアン・モードにしたがって動作する場合もあり、アクセスされる各ペリフェラル２２および２４は、ペリフェラル・エンディアンネス制御レジスタ内の設定値に基づいて、しかるべく応答する。
【００２３】
図２は、本発明の一実施形態による、図１のバス・インターフェース１８の一部を示す。バス・インターフェース１８は、制御回路４４、マスタ特権レジスタ３０、ペリフェラル・アクセス制御レジスタ５４、およびペリフェラル・エンディアンネス制御レジスタ１５４を含む。制御回路４４は、バス・マスタ識別子３６、アドレス４２、データ４０、制御３８、および特権インディケータ３７を、システム・バス１６を通じて供給および受信する。任意に、制御回路４４は、点線で示すように、システム・バス１６を通じてエンディアン・インディケータ１３７（エンディアン信号１３７とも呼ぶ）を受信する（他の実施形態では、エンディアン・インディケータがある場合、システム・バス１６を通じてではなく、例えば、側波帯信号（ｓｉｄｅ−ｂａｎｄ  ｓｉｇｎａｌ）として、１つ以上のマスタ１４および１５から直接供給することもできる）。システム・バス１６は、他の実施形態では、現在のアクセスがデータまたは命令のいずれのためのものかを示す種類インディケータ、あるいは現在のアクセスのサイズを示すサイズ・インディケータというような、付加情報も提供することができる。
【００２４】
制御回路４４は、レジスタ３０、５４、および１５４への信頼バス・マスタ・リード／ライト（Ｒ／Ｗ）アクセスのための回路４６を含む。レジスタ３０、５４、および１５４は、マスタ特権レジスタ３０、ペリフェラル・アクセス制御レジスタ５４、およびペリフェラル・エンディアンネス制御レジスタ１５４の各々に双方向に接続されている。また、制御回路４４は、ペリフェラル２２、２４にアクセスするための回路４８も含む。回路４８は、マスタ特権レジスタ３０から情報を受信するバス・マスタ属性決定回路５０を含み、更に、ペリフェラル・アクセス制御レジスタ５４から情報を受信するペリフェラル保護決定回路５１も含む。また、制御回路４８は、ペリフェラル・エンディアンネス制御レジスタ１５４からの情報を受信し、ペリフェラル・バス２０に双方向に接続され、ペリフェラル２２および２４に対するしかるべく信号を供給および受信するための信号ブリッジ回路５２も含む。また、バス・マスタ属性決定回路５０は、調節エンディアン・インディケータ１５７、調節特権インディケータ５７、Ｒ／Ｗインディケータ５８、および信頼インディケータ５９をペリフェラル保護決定回路５１に供給し、アクセス・エラー信号６０をペリフェラル保護決定回路５１から受信する。尚、システム・バス１６を通じて、バス・マスタ１４および１５にアクセス・エラー信号６０を返信してもよい。他の実施形態では、アクセス・エラー信号６０は、システム・バス１６を通じて伝達され、バス・マスタ属性決定回路５０には供給されない。
【００２５】
マスタ特権レジスタ３０は、マスタ特権レジスタ３２およびマスタ・エンディアンネス制御部１３２、マスタ特権レジスタ３４、ならびにマスタ・エンディアンネス制御部１３４を含む。一実施形態では、複数のマスタ特権レジスタ３０の各々は、システム・バス１６上のマスタに対応する。また、一実施形態では、マスタ特権レジスタ３０は、単一のレジスタのみを含んでもよく、あるいは任意の数のレジスタを含んでもよい。これについては、以下で図３を参照しながら更に説明する。また、マスタ・エンディアンネス制御部１３２および１３４は、それぞれ、マスタ特権レジスタ３２および３４内に位置する追加フィールドであってもよく、あるいはマスタ・エンディアンネス制御部１３２および１３４は、マスタ特権レジスタ３０内の１つ以上の別個のレジスタ、あるいはバス・インターフェース１８内のどこかに含まれていてもよい。
【００２６】
ペリフェラル・アクセス制御レジスタ５４は、ペリフェラル・アクセス制御レジスタ５５およびペリフェラル・アクセス制御レジスタ５６を含む。一実施形態では、複数のペリフェラル・アクセス制御レジスタの各々は、ペリフェラル・バス２０上のペリフェラルに対応する。また、一実施形態では、ペリフェラル・アクセス制御レジスタ５４は、１つのレジスタのみを含んでもよく、あるいは任意の数のレジスタを含んでもよい。これについては、以下で図３を参照しながら更に説明する。ペリフェラル・エンディアンネス制御レジスタ１５４は、ペリフェラル・エンディアンネス制御レジスタ１５５、およびペリフェラル・エンディアンネス制御レジスタ１５６を含む。一実施形態では、複数のペリフェラル・エンディアンネス制御レジスタの各々は、ペリフェラル・バス２０上のペリフェラルに対応する。また、一実施形態では、ペリフェラル・エンディアンネス制御レジスタ１５４は、１つのみのレジスタを含んでもよく、あるいは任意の数のレジスタを含んでもよい。これについては、以下で図７を参照しながら更に説明する。また、一実施形態では、ペリフェラル・アクセス制御レジスタ５４およびペリフェラル・エンディアンネス制御レジスタ１５４を組み合わせて、ペリフェラル毎にアクセスおよびエンディアンネス制御情報双方を含む１つ以上のレジスタとしてもよい。
【００２７】
また、マスタ特権レジスタ３０、ペリフェラル・アクセス制御レジスタ５４、およびペリフェラル・エンディアンネス制御レジスタ１５４は、データ処理システム１０内であればどこに配置してもよく、バス・インターフェース１８内に配置する必要もない。本発明の他の実施形態の中には、ペリフェラル・アクセス制御レジスタおよびペリフェラル・エンディアンネス制御レジスタを各ペリフェラル２２および２４内に分散してもよい場合もあり、あるいはバス・スレーブ２６、およびバス特権レジスタを分散するか、あるいは１つ以上のバス・スレーブ２６内に位置してもよい場合もある。
【００２８】
動作時、バス・インターフェース１８は、マスタ特権レジスタ３０、ペリフェラル・アクセス制御レジスタ５４、およびペリフェラル・エンディアンネス制御レジスタ１５４に対するアクセスを、バス・マスタ識別子３６に基づいて与える。バス・マスタ識別子３６は、制御回路４４に対して、どのバス・マスタが現在の要求を与えているかを特定する。例えば、一実施形態では、データ処理システム１０における各バス・マスタは、対応する識別（ＩＤ）番号を有するとよい。例えば、バス・マスタ１４は対応するＩＤ番号０を有し、バス・マスタ１５は対応するＩＤ番号１を有する。特定のバス・マスタがペリフェラルへのアクセスを要求すると、その対応するＩＤ番号をバス・マスタ識別子３６として制御回路４４に供給することができる。この例では、バス・マスタ識別子３６が０である場合、バス・マスタ１４が示される。他の実施形態では、任意の形式の特定システムを、異なるバス・マスタ間で差別化するために用いることができる。
【００２９】
バス・インターフェース１８は、回路４６を通じて、信頼バス・マスタのみがマスタ特権レジスタ３０、ペリフェラル・アクセス制御レジスタ５４、およびペリフェラル・エンディアンネス制御レジスタ１５４へのＲ／Ｗアクセスを取得できることを保証する（あるいは、回路４６は、不信マスタに、これらのレジスタの一部または全てにアクセスすることを許可してもよい。例えば、一実施形態では、回路４６は、レジスタ３０および５４へのアクセスを信頼マスタのみに許可し、レジスタ１５４へのアクセスを信頼または不信マスタに許可する）。図示の実施形態では、回路４６は、入来するバス・マスタ識別子３６を比較して、信頼バス・マスタがＲ／Ｗアクセスをレジスタ３０、レジスタ５４、またはレジスタ１５４に要求しているのか否かを判定する。一実施形態では、回路４６は、どのバス・マスタがレジスタ３０、５４、および１５４を修正することを許可されているのかを識別するリストを含む。例えば、一実施形態では、マスタ１４および１５の一方のみを信頼マスタと見なしてもよく、その唯一の信頼マスタは、レジスタ３０、５４、および１５４を修正することができる。あるいは、回路４６は、信頼マスタのみがレジスタ３０、５４、および１５４を修正することを保証する他の回路を含んでもよい。また、回路４６は、バス・マスタ識別子３６に加えて、またはこれの代わりに、他の属性に基づいてこの判定を行ってもよい。例えば、他の実施形態では、回路４６は特権インディケータ３７（要求元バス・マスタの現在のバス・アクセスに対する特権レベルを示す）を用いて、この判定を行うことができる。このように、信頼バス・マスタはレジスタ３０、５４、および１５４のフィールドを設定し、ペリフェラル２２および２５のアクセスを制御することができる。一実施形態では、信頼バス・マスタは、電源投入時、リセット時、ソフトウェア・アプリケーションの起動に応答して、またはその他のしかるべき時点であればいつでも、値をレジスタ３０、５４、および１５４にプログラムすることができる。これによって、レジスタ３０、５４、および１５４への動的なアクセスが可能となり、必要に応じてこれらを更新することができるようになる。あるいは、レジスタ３０、５４、および１５４内の値を、一度だけ（ライト・ワンス・オンリ・メモリを用いることによる等）プログラムしたり、限られた回数だけプログラムしたり、あるいはハードワイヤ接続にしてもよい。ペリフェラル２２、２４にアクセスするための回路４８内部のバス・マスタ属性決定回路５０について説明する前に、レジスタ３０の内容について、図３および図６を参照しながら説明する。
【００３０】
図３は、マスタ特権レジスタ３０の一実施形態を示す。図示の実施形態では、マスタ特権レジスタ３０は、マスタ特権レジスタ３２およびマスタ・エンディアンネス制御部１３２を含み、双方はバス・マスタ１４およびマスタ特権レジスタ３４ならびにマスタ・エンディアンネス制御部１３４に対応し、双方はバス・マスタ１５に対応する。一実施形態では、マスタ・エンディアンネス制御部１３２は、マスタ特権レジスタ３２内の追加フィールド（フィールド７０〜７２と同様）として含まれてもよい。あるいは、マスタ・エンディアンネス制御部１３２を別個のレジスタに格納してもよい（尚、マスタ・エンディアンネス制御部１３２および１３４をそれぞれマスタ・エンディアンネス制御フィールド１３２および１３４と呼ぶ場合もある）。したがって、本実施形態では、マスタ特権レジスタ３０は、１つのマスタ特権レジスタおよびマスタ・エンディアンネス制御フィールドをバス・マスタ毎に含む。しかしながら、他の実施形態では、単一のレジスタを用いて全てのマスタについて必要な情報を格納してもよく、あるいはいずれの数および組み合わせのレジスタを用いてもよい。ここで、マスタ特権レジスタ３２およびマスタ・エンディアンネス制御部１３２について一例として説明する。しかしながら、マスタ特権レジスタ３２およびマスタ・エンディアンネス制御部１３２についての記載は、マスタ特権レジスタ３４およびマスタ・エンディアンネス制御部１３４というような、マスタ特権レジスタ３０内にある全てのマスタ特権レジスタおよびマスタ・エンディアンネス制御フィールドにも該当する。マスタ特権レジスタ３２は、バス・マスタ１４用特権レベル修正フィールド７０、バス・マスタ１４による書き込みに対する信頼属性フィールド７１、およびバス・マスタ１４による読み取りに対する信頼属性フィールド７２を含む。
【００３１】
特権レベル修正フィールド７０は、特定のアクセスに対するバス・マスタ１４の現在の特権レベルを、フィールド７０に格納されている値によって示されるように、選択的に修正または調節することを可能にする。一実施形態では、バス・マスタ１４の現行の特権は、バス・マスタ１４によって供給され、システム・バス１６を通じて特権インディケータ３７によって回路４４を制御する。一実施形態では、特権インディケータ３７を用いて、現在のバス・アクセスの間に、バス・アクセスを要求している現在のバス・マスタ（バス・マスタ識別子３６によって特定される）が、スーパーバイザまたはユーザ特権レベルのどちらを有するか識別する。即ち、この実施形態では、特権インディケータ３７はスーパーバイザまたはユーザ・モードの一方に対応する特権レベルを示す。したがって、バス・マスタ１４がバス・アクセスを実行しているとき、特権レベル修正フィールド７０を用いて、バス・マスタ属性決定回路５０に、現在のバス・アクセスに対するバス・マスタ１４の特権レベルを調節すべきか否かを示すことができる。例えば、スーパーバイザ・モードで動作している場合、特権レベル修正フィールド７０を用いて、バス・マスタ１４の特権レベルをユーザ・モードに強制することができる。あるいは、特権レベル修正フィールド７０は、いずれの種類の特権レベルでも示すことができ、スーパーバイザまたはユーザ・モードには限定されない。更に、特権レベル修正フィールド７０は、バス・マスタ１４の特権レベルを供給するために用いられる１つ以上のビットを含むこともできる。例えば、一実施形態では、特権レベル修正フィールド７０における１ビットを用いて、現在のバス・アクセスの間、要求元バス・マスタの特権レベルを修正すべきか否かを示すことができ、他の１つ以上のビットを用いて、調節した特権レベルが何であるのかを示すことができる（尚、実施形態では、現在の特権レベルが、フィールド７０によって示される特権レベルと同一であり、調節が不要であることを示すようにしてもよい）。
【００３２】
バス・マスタ１４によるライトのための信頼属性フィールド７１は、バス・マスタ１４によるライト・アクセスについて、バス・マスタ１４が信頼マスタであるか否かを示すために用いられる。同様に、バス・マスタ１４によるリード・アクセスに対する信頼属性フィールド７２は、バス・マスタ１４が、バス・マスタ１４によるリード・アクセスに対して信頼マスタであるか否かを示すために用いられる。したがって、バス・マスタ１４のような、各バス・マスタは、リードまたはライト・アクセスに対して異なる信頼属性を有してもよい。例えば、ペリフェラルまたはバス・スレーブに対してリード・アクセスを実行するためには、バス・マスタ１４を信頼マスタと見なすとよく、一方ペリフェラルまたはバス・スレーブからのライト・アクセスを実行するためには、バス・マスタ１４を不信マスタと見なすとよい。したがって、フィールド７１および７２の各々は、ライトおよびリード・アクセスに対するバス・マスタ１４の信頼レベルを示すために用いられる１つ以上のビットを含むことができる。他の実施形態では、バス・マスタは、単に信頼または不信と分類されるだけでなく、バス・アクセスの個々の種類に対して信頼レベルを増加して有してもよい。例えば、フィールド７１および７２は、バス・マスタ１４についてのＮ個の信頼レベル（Ｎ＞２）からの選択により、１つのレベルを示すこともできる。
【００３３】
尚、図示したフィールドよりも多い、または少ない、または異なるフィールドをマスタ特権レジスタ３２に含ませてもよい。例えば、単一の信頼属性フィールドを、バス・マスタ１４によるライトおよびリード双方に用いてもよく、バス・マスタ１４は、リードおよびライト双方に対して信頼または不信のいずれかと見なされる。あるいは、信頼属性を他の種類のバス・アクセスのために供給してもよい。
【００３４】
尚、フィールド７０〜７２について先に行った説明は、マスタ特権レジスタ３４のフィールド７４〜７６にも該当する。即ち、バス・マスタ１５に対する特権レベル修正フィールド７４は、バス・マスタ１５の特権レベルを現在のバス・アクセスに対して選択的に調節することを可能にする。バス・マスタ１５によるライトに対する信頼属性フィールド７５は、ライト・アクセスに対するバス・マスタ１５の信頼レベルを示し、バス・マスタ１５によるリードに対する信頼属性フィールド７６は、リード・アクセスに対するバス・マスタ１５の信頼レベルを示す。
【００３５】
マスタ・エンディアンネス制御部１３２は、バス・マスタ１４に対するエンディアンネス制御情報を提供する。したがって、バス・マスタ１４が現在のアクセスを要求する場合（例えば、バス・マスタ識別子３６によって識別する）、マスタ・エンディアンネス制御部１３２を用いてエンディアンネス情報を提供することができる。例えば、図６はバス・マスタ１４またはバス・マスタ１５のエンディアンネスをどのように決定するかを決定するマスタ・エンディアンネス制御部１３２および１３４に対する設定値の例を示す。一実施形態では、マスタ・エンディアンネス制御部１３２および１３４が決定するエンディアンネスを、要求元マスタのデフォルト・エンディアンネスと呼ぶ。図６を参照すると、マスタ・エンディアンネス制御部１３２が「１０」に設定されている場合、バス・マスタ１４の実際のエンディアン・モードに関わらず、バス・マスタ１４からのアクセスをリトル・エンディアン・モードに強制する。この場合、調節エンディアン・インディケータ１５７が、要求元のバス・マスタが動作しているエンディアン・モードに関わらず、またはエンディアン・インディケータ１３７（ある場合）が示すエンディアン・モードに関わらず、リトル・エンディアン・モードを示す。マスタ・エンディアンネス制御部１３２が「１１」に設定されている場合、バス・マスタ１４からのアクセスは、バス・マスタ１４の実際のエンディアン・モードに関わらず、ビッグ・エンディアン・モードに強制される。この場合、調節エンディアン・インディケータ１５７は、要求元バス・マスタが動作しているエンディアン・モードに関わらず、またはエンディアン・インディケータ１３７（ある場合）が示すエンディアン・モードに関わらず、ビッグ・エンディアン・モードを示す。
【００３６】
更に図６を参照すると、マスタ・エンディアンネス制御部１３２が「００」に設定されている場合、マスタ１４からのアクセスは、実際のエンディアンネス・モードに関わらず、特定のエンディアン・モードに強制される。したがって、「００」に設定されている場合、エンディアン・インディケータ１３７（要求元バス・マスタのエンディアン・モードに対応する）が示すエンディアン・モードが用いられる。この場合、調節エンディアン・インディケータ１５７は、エンディアン・インディケータ１３７と同じモードを示す。しかしながら、マスタ・エンディアンネス制御部１３２が「０１」に設定されている場合、バス・マスタ１４からのアクセスは、エンディアン・インディケータ１３７が示すモードと逆転する。例えば、エンディアン・インディケータ１３７が、バス・マスタ１４がビッグ・エンディアン・モードで動作していることを示す場合、マスタ・エンディアンネス制御部１３２が「０１」に設定されていれば、調節エンディアン・インディケータ１５７を、リトル・エンディアン・モードを示すように設定する。他の実施形態では、「０１」の設定値は、単に逆のエンディアンネスではなく、異なるエンディアンネスが用いられることを示す場合もある（したがって、マスタ・エンディアンネス制御部１３２が「００」または「０１」に設定されている場合、エンディアン・インディケータ１３７または要求元プロセッサのエンディアン・モードの他のいずれかのインディケータを供給する）。
【００３７】
尚、図６およびマスタ・エンディアンネス制御部１３２に関して先に行った説明は、マスタ・エンディアンネス制御部１３４にも該当する。また、他の実施形態では、エンディアンネス情報を提供するために用いるビットは、前述よりも多くても少なくてもよく、あるいは他の設定値を用いてもよい。例えば、他の実施形態では、バス・アクセスが命令アクセスまたはデータ・アクセスのときに、代わりの値の組を用いてもよい。この他の実施形態では、種類インディケータがデータ情報または命令情報のどちらが現在のアクセス中にアクセスされていることを示すかに基づいて、マスタ・エンディアンネス制御部に異なる値の組を適用することができる。また、他の実施形態では、データまたは情報アクセスのサイズに基づいて、異なる値の組を用いることもできる。例えば、現在のアクセスが１６ビット・サイズに対応する場合、ある値の組を用いることができ、現在のアクセスが３２ビット・サイズに対応する場合、異なる値の組を用いることができる。したがって、マスタ・エンディアンネス制御部１３２および１３４の各々は、図６に示す単一の２ビット・フィールドではなく、多数のフィールドを含んでいてもよく、これらを用いて、要求元マスタ、アクセス種類、アクセス・サイズ、またはそのあらゆる組み合わせに基づいて、エンディアンネスを制御することができる。
【００３８】
図２に戻り、ペリフェラル２２、２４にアクセスするための回路４８は、バス・マスタ属性決定回路５０を含み、この回路５０は、アドレス４２、制御３８、特権インディケータ３７、バス・マスタ識別子３６、および任意に、エンディアン・インディケータ１３７を受信し、調節エンディアン・インディケータ１５７、調節特権インディケータ５７、Ｒ／Ｗインディケータ５８、および信頼インディケータ５９をペリフェラル保護決定回路５１に供給する。したがって、回路５０は、バス・アクセスの種類（リードまたはライト）、要求されたペリフェラル、どのバス・マスタが要求を出しているかの特定、要求を出しているバス・マスタの特権レベル、そして一部の実施形態では、要求を出しているバス・マスタのエンディアン・モードを特定するのに必要な全ての情報を受信する。前述のように、マスタ特権レジスタ３０に格納されている情報を用いて、回路５０は、調節エンディアン・インディケータ１５７、調節特権インディケータ５７、Ｒ／Ｗインディケータ５８、および信頼インディケータ５９を決定する。例えば、バス・マスタによるペリフェラルへのアクセスを必要とするバス・アクセスが示される場合もある（このバス・アクセスは、リードまたはライト・バス・アクセスのいずれかとすることができる）。バス・アクセスの少なくとも一部の間、バス・マスタ識別子３６を供給する。バス・マスタ識別子３６は、バス・アクセスに対して、マスタ特権レジスタ３０からの特権情報およびマスタ・エンディアンネス情報（要求元バス・マスタに対応する）を選択するために用いられる。次いで、調節エンディアンネス・インディケータ１５７、調節特権インディケータ１５７、Ｒ／Ｗインディケータ１５８、および信頼インディケータ５９の値を決定することができる。
【００３９】
例えば、バス・マスタ１４が現在のバス・アクセスを行っている一実施形態では、特権インディケータ３７および特権レベル修正フィールド７０によって示される現在の特権レベルに基づいて、調節特権インディケータ５７を決定する。特権レベル修正フィールド７０が、バス・マスタ１４上において特定の特権レベルを強制すべきことを示す場合、調節特権インディケータ５７の値を、この強制特権レベルを示すように設定する。特権レベル修正フィールド７０が、バス・マスタ１４上で特権を強制すべきでないことを示す場合、調節特権インディケータ５７の値を、特権インディケータ３７と同じ特権レベルを示すように設定することができる。Ｒ／Ｗインディケータ５８は、現在のバス・アクセスがリードまたはライト・アクセスのどちらであるかを示す制御３８から決定することができる。信頼インディケータ５９は、現在のバス・アクセスがリードまたはライト・アクセスのどちらか（制御３８から決定することができる）、ならびに信頼属性フィールド７１および７２に基づいて決定される。例えば、現在のバス・アクセスがバス・マスタ１４によるライト・アクセスである場合、信頼属性フィールド７１が示す信頼レベルを示すように信頼インディケータ５９を設定する。同様に、現在のバス・アクセスがバス・マスタ１４によるリード・アクセスである場合、信頼属性フィールド７２が示す信頼レベルを示すように信頼インディケータを設定する。調節エンディアンネス・インディケータ１５７は、エンディアン・インディケータ１３７（ある場合）およびマスタ・エンディアンネス制御部１３２に基づいて決定される。例えば、マスタ・エンディアンネス制御部１３２が、バス・マスタ１４のために特定のエンディアン・モードを強制すべきことを示す場合、調節エンディアンネス・インディケータ１５７をそれに応じて設定する。マスタ・エンディアンネス制御部１３２が、エンディアン・インディケータ１３７が示すエンディアン・モードを逆転させるべきことを示す場合、調節エンディアンネス・インディケータ１５７をそれに応じて設定する。
【００４０】
調節特権インディケータ５７、Ｒ／Ｗインディケータ５８、および信頼インディケータ５９は、ペリフェラル・アクセス制御レジスタ５４との組み合わせで、ペリフェラル保護決定回路５１によって用いられ、ペリフェラルに対するアクセスを許可するか否か、または、場合によっては、アクセス・エラーを生成し、アクセス・エラー信号６０を通じて伝達し、バス・マスタ属性決定回路５０および／またはアクセス要求がエラーの原因となったバス・マスタに戻す。アクセスが許可された場合、信号ブリッジ回路５２が調節エンディアン・インディケータ１５７およびペリフェラル・エンディアンネス制御レジスタ１５４を用いて、許可されたペリフェラルへのアクセスを、しかるべくエンディアンネスを用いて実行する。ペリフェラル２２、２４にアクセスするための回路４８内部におけるペリフェラル保護決定回路５１および信号ブリッジ回路５２について説明する前に、レジスタ５４および１５４の内容について、図４、図７および図８を参照しながら説明する。
【００４１】
図４は、ペリフェラル・アクセス制御レジスタ５４の一実施形態を示し、図示の実施形態では、ペリフェラル・アクセス制御レジスタ５４は、ペリフェラル２２に対応するペリフェラル・アクセス制御レジスタ５５、およびペリフェラル２４に対応するペリフェラル・アクセス制御レジスタ５６を含む。したがって、図示の実施形態では、ペリフェラル・アクセス制御レジスタ５４は、ペリフェラル毎に１つずつのペリフェラル・アクセス制御レジスタを含む。しかしながら、他の実施形態では、全てのペリフェラルに必要な情報を格納するために単一のレジスタを用いてもよく、あるいは、いずれの数および組み合わせのレジスタを用いてもよい。ペリフェラル・アクセス制御レジスタ５５について、ここで一例として説明する。しかしながら、ペリフェラル・アクセス制御レジスタ５５についての説明は、ペリフェラル・アクセス制御レジスタ５６のような、ペリフェラル・アクセス制御レジスタ５４内にある全てのペリフェラル・アクセス制御レジスタにも該当する。ペリフェラル・アクセス制御レジスタ５５は、ペリフェラル２２に対するペリフェラル信頼属性フィールド８０、ペリフェラル２２に対するライト保護フィールド８１、およびペリフェラル２２に対する特権保護フィールド８２を含む。
【００４２】
ペリフェラル２２に対するペリフェラル信頼属性フィールド８０は、ペリフェラル２２が不信マスタからのアクセス（リードまたはライト）を許可するか否かを示す。例えば、現在のバス・アクセスを実行しているバス・マスタが不信であることが、現在のバス・マスタに対応する信頼属性フィールド（例えば、フィールド７１および７２）によって示された場合、バス・アクセスが許可されるのは、フィールド８０が不信マスタからのアクセスを許可することを示すときだけである。ペリフェラル２２に対するライト保護フィールド８１は、ペリフェラル２２がマスタによるそれ自体へのライト・アクセスを許可するか否かを示す。例えば、現在のバス・マスタが実行している現在のバス・アクセス（バス・マスタの信頼のレベルに関わらず）がペリフェラル２２へのライト・アクセスである場合、フィールド８１が、ペリフェラル２２がライト保護されていることを示すと、ライト・アクセスを実行することができない。ペリフェラル２２に対する特権保護フィールド８２は、ペリフェラル２２が現在のバス・アクセスに対してある特権レベルを要求するか否かを示す。したがって、特権保護フィールド８２は、ペリフェラル２２へのアクセスに対して必要とされる最低限の特権レベルを示すことができ、任意の数のビットを含むことができる。一実施形態では、スーパーバイザ特権が必要か否かを示すためには、１つのビットを用いればよい。あるいは、それ以上のビットを用いて、Ｎレベルの特権（Ｎ＞２）の内最低のものが必要であることを示してもよい。
【００４３】
尚、ペリフェラル・アクセス制御レジスタ５５には、図示したフィールドよりも多いまたは少ない、あるいは異なるフィールドが含まれてもよい。例えば、ペリフェラル信頼属性フィールド８０のような別個のペリフェラル信頼属性フィールドを用いて、不信マスタからのリード・アクセスを許可するか否か、および不信マスタからのライト・アクセスを許可するか否かを示すことができる。また、リードまたはライト・アクセスを許可するために、ペリフェラル２２に必要なＮ段階の可能な信頼レベル（Ｎ＞２）のうち最低レベルを示すのに、追加のビットまたはフィールドを用いてもよい。
【００４４】
尚、フィールド８０〜８２について先に行った説明は、ペリフェラル・アクセス制御レジスタ５６のフィールド８４〜８６にも該当する。即ち、ペリフェラル２４に対するペリフェラル信頼属性フィールド８４は、ペリフェラル２４が不信マスタからのアクセス（リードまたはライトのいずれか）を許可するか否かを示す。ペリフェラル２４に対するライト保護フィールド８５は、ペリフェラル２４がマスタによるそれ自体へのライト・アクセスを許可するか否かを示す。ペリフェラル２４に対する特権保護フィールド８６は、ペリフェラル２４が現在のバス・アクセスに対してある特権レベルを要求するか否かを示す。
【００４５】
図７は、ペリフェラル・エンディアンネス制御レジスタ１５４の一実施形態を示し、図示の実施形態では、ペリフェラル・エンディアンネス制御レジスタ１５４は、ペリフェラル２２に対応するペリフェラル・エンディアンネス制御レジスタ１５５と、ペリフェラル２４に対応するペリフェラル・エンディアンネス制御レジスタ１５６とを含む。したがって、図２に示す実施形態では、ペリフェラル・エンディアンネス制御レジスタ１５４は、ペリフェラル毎に１つずつのペリフェラル・エンディアンネス制御レジスタを含む。しかしながら、他の実施形態では、全てのペリフェラルに必要な情報を格納するために単一のレジスタを用いてもよく、あるいは、任意の数および組み合わせのレジスタを用いてもよい。他の実施形態では、ペリフェラルの部分集合のみにペリフェラル・エンディアンネス制御レジスタを設けてもよい。ここで、一例として、ペリフェラル・エンディアンネス制御レジスタ１５５について説明する。しかしながら、ペリフェラル・エンディアンネス制御レジスタ１５５についての説明は、ペリフェラル・エンディアンネス制御レジスタ１５６のような、ペリフェラル・エンディアンネス制御レジスタ１５４における全てのペリフェラル・エンディアンネス制御レジスタにも該当する。
【００４６】
ペリフェラル・エンディアンネス制御レジスタ１５５は、バス・マスタ１４ペリフェラル・エンディアンネス制御フィールド３００、およびバス・マスタ１５ペリフェラル・エンディアンネス制御フィールド３０２を含む。したがって、図示の実施形態では、ペリフェラル・エンディアンネス制御レジスタ１５５は、対応するペリフェラルにアクセスするバス・マスタ毎に、１つずつのペリフェラル・エンディアンネス制御フィールドを含む（ここで、この実施形態では、ペリフェラル・エンディアンネス制御レジスタ１５５はペリフェラル２２に対応する）。一実施形態では、ペリフェラル・エンディアンネス制御レジスタ１５４は、フィールド３００および３０２の値に応じて、マスタ・エンディアンネス制御部１３２および１３４によって提供されるエンディアンネス情報を選択的に無効にする（以下で図８を参照しながら説明する）。即ち、一実施形態では、アクセスされている現在のペリフェラルに対応するペリフェラル・エンディアンネス制御レジスタが提供するエンディアンネス情報は、調節エンディアン・インディケータ１５７が提供するエンディアンネス情報（直接アクセス元マスタによって、例えば、エンディアン・インディケータ１３７を通じて提供されている場合があり、あるいは要求元マスタに対応するレジスタ３０のマスタ・エンディアンネス制御部を用いてバス・マスタ属性決定回路５０によって決定されている場合もある）に優先することができる。この実施形態では、マスタ・エンディアンネス制御部１３２および１３４は、選択的に無効にすることができるデフォルトのエンディアンネス情報と見なすとよい。
【００４７】
再度図７を参照すると、レジスタ１５５内の各フィールド３００および３０２は、対応するマスタにエンディアンネス情報を提供する。例えば、図８は、エンディアンネス情報を提供するために、フィールド３００および３０２の各々において用いることができる設定値の例を示す。バス・マスタ１１４ペリフェラル・エンディアンネス制御フィールド３００を一例として用いて、図８について説明する。しかしながら、この説明は、フィールド３０２のような、レジスタ１５５および１５６内にある他のフィールドにも対応する。したがって、図８の設定値の例は、バス・マスタ１４のエンディアンネスを決定するためにも用いることができる。図８を参照すると、フィールド３００が「００」に設定されている場合、バス・マスタ１４からのアクセスは、実際のプロセッサ・モードに関わらず、強制されない。即ち、この場合、バス・マスタ１４ペリフェラル・エンディアンネス制御フィールド３００は、調節エンディアン・インディケータ１５７に優先しない。しかしながら、フィールド３００が「００」以外の何らかの値に設定されている場合、フィールド３００が提供するエンディアンネス情報は、マスタ・エンディアンネス制御部１３２が提供するエンディアンネス情報（図６を参照して先に説明したように、調節エンディアン・インディケータ１５７を決定するために用いられる）に優先する。
【００４８】
例えば、フィールド３００が「１０」に設定されている場合、バス・マスタ１４からのアクセスは、バス・マスタ１４の実際のエンディアン・モードに関わらず、リトル・エンディアン・モードに強制される。この場合、リトル・エンディアン・モードは、調節エンディアン・インディケータ１５７が示すエンディアン・モードに関わらず、信号ブリッジ回路５２によって用いられ、恐らくはマスタ・エンディアンネス制御部１３２が供給したエンディアンネス制御部に優先する。フィールド３００が「１１」に設定されている場合、バス・マスタ１４からのアクセスは、バス・マスタ１４の実際のエンディアン・モードに関わらず、ビッグ・エンディアン・モードに強制される。この場合、ビッグ・エンディアン・モードは、調節エンディアン・インディケータ１５７が示すエンディアン・モードに関わらず、信号ブリッジ回路５２によって用いられる。フィールド３００が「０１」に設定されている場合、バス・マスタ１４からのアクセスは、調節エンディアン・インディケータ１５７が示すモードと逆転する。例えば、調節エンディアン・インディケータ１５７が、バス・マスタ１４がビッグ・エンディアン・モードで動作していることを示す場合、フィールド３００が「０１」に設定されていると、リトル・エンディアン・モードがブリッジ回路５２によって用いられる。他の実施形態では、「０１」の設定は、単に逆のエンディアンではなく、異なるエンディアンが用いられることを示すことができる。
【００４９】
尚、図８およびフィールド３００に関して先に行った説明は、フィールド３０２にも該当する。また、他の実施形態では、エンディアンネス情報を提供するために用いるビットは、前述より多くても少なくてもよく、あるいは他の設定値を用いてもよい。例えば、他の実施形態では、バス・アクセスが命令アクセスまたはデータ・アクセスのときに、代わりの値の組を用いてもよい。この他の実施形態では、種類インディケータがデータ情報または命令情報のどちらが現在のアクセス中にアクセスされていることを示すかに基づいて、マスタ・エンディアンネス制御部に異なる値の組を適用することができる。また、他の実施形態では、データまたは情報アクセスのサイズに基づいて、異なる値の組を用いることもできる。例えば、現在のアクセスが１６ビット・サイズに対応する場合、ある値の組を用いることができ、現在のアクセスが３２ビット・サイズに対応する場合、異なる値の組を用いることができる。したがって、フィールド３００および３０２の各々は、図８に示す単一の２ビット・フィールドではなく、多数のフィールドを含んでいてもよく、これらを用いて、要求元マスタ、アクセス種類、アクセス・サイズ、またはそのあらゆる組み合わせに基づいて、エンディアンネスを制御することができる。
【００５０】
尚、マスタ・エンディアンネス制御部１３２および１３４の使用により、エンディアン・インディケータ１３７のような、要求元マスタからのエンディアン・インディケータが不要となる。即ち、調節エンディアン・インディケータ１５７は、エンディアン・インディケータ１３７を用いてもまた用いなくても、種々の異なる方法で設定することができる。また、他の実施形態では、マスタ・エンディアンネス制御部１３２および１３４が存在しなくてもよい。この他の実施形態では、特定のアクセスに対するエンディアンネスを、ペリフェラル・エンディアンネス制御レジスタ１５４によって制御する。あるいは、調節エンディアン・インディケータ１５７もなくてもよい。即ち、マスタ・エンディアンネス制御部１３２および１３４、エンディアン・インディケータ１３７、ならびに調節エンディアン・インディケータ１５７の各々は、データ処理システム１０内にあってもなくてもよい。したがって、ペリフェラル・エンディアンネス制御レジスタは、現在のマスタのエンディアンネスについて何の知識も有していなくてもよい。これらの実施形態では、ペリフェラルへのアクセスのエンディアンネスは、ペリフェラル・エンディアンネス制御レジスタ内にあるエンディアンネス情報に基づいて決定することができる。他の実施形態では、ペリフェラルの部分集合にのみ、ペリフェラル・エンディアンネス制御レジスタを備えればよい。この場合、ペリフェラル・エンディアンネス制御レジスタ１５４が備えられていないペリフェラルは、代わりに、マスタ・エンディアンネス制御部１３２および１３４を拠り所とすればよく、信号ブリッジ回路５２は、これらのペリフェラルへのアクセスに、調節エンディアン・インディケータ１５７の値を直接用いる。
【００５１】
再度図２を参照すると、ペリフェラル２２、２４にアクセスするための回路４８はペリフェラル保護決定回路５１を含む。ペリフェラル保護決定回路５１は、調節特権インディケータ５７、Ｒ／Ｗインディケータ５８、および信頼インディケータ５９を受信し、アクセス・エラー信号６０をバス・マスタ属性決定回路５０に供給する（あるいは、または加えて、アクセス・エラー信号６０は、要求がエラーの原因となったバス・マスタに、システム・バス１６を通じて返信してもよい）。したがって、回路５１は、インディケータ５７〜５９およびペリフェラル・アクセス制御レジスタ５４に格納されている情報を用いて、前述したように、要求されたペリフェラルへのバス・アクセスを許可するか否かを判定する。例えば、バス・マスタ１４がペリフェラル２２へのライトを実行するためのバス・アクセスを開始した場合、回路５１はバス・アクセスを許可するか否かを判定する。例えば、回路５１は、調節特権インディケータ５７および特権保護フィールド８２を用いて、ペリフェラル２２がアクセスのために特定の特権レベル（フィールド８２によって示される）を要求するか否か、そしてバス・マスタ１４が要求される特権レベル（調節特権インディケータ５７によって示される）を有するか否かを判定する。また、回路５１は、Ｒ／Ｗインディケータ５８およびライト保護フィールド８１を用いて、現在のバス・アクセスがライト・アクセスか否かを判定し、そうである場合、ペリフェラル２２へのライト・アクセスが許可されるか否かを判定する。また、回路５１は、信頼インディケータ５９およびペリフェラル信頼属性フィールド８０を用いて、バス・マスタ１４が、ペリフェラル２２が要求する（フィールド８０によって示される）、しかるべき信頼レベル（信頼インディケータ５９によって示される）を有するか否かを判定する。したがって、回路５１は、前述の情報全てを用いて、バス・マスタ１４がペリフェラル２２に対して要求したバス・アクセスが許可されるか否か決定することができる。即ち、バス・マスタ１４は、しかるべき特権レベルおよびしかるべき信頼レベルを有する必要があり、バス・アクセスがライトである場合、ペリフェラル２２は、許可されるバス・アクセスに対して、ライト保護されていてはならない。
【００５２】
アクセスが許可された場合（要求元バス・マスタが、要求している特定のペリフェラルに対してしかるべきアクセス許可を有することを意味する）、動作は継続し（即ち、バス・アクセスが継続する）、動作を完了するために必要なバス・プロトコルが供給される。例えば、信号ブリッジ回路５２は、該当するあらゆるデータ、アドレス、および制御信号を、制御３８、データ４０、およびアドレス４２から導出したアクセス先ペリフェラルに供給する。同様に、信号ブリッジ回路５２は、必要なあらゆる制御、データ、およびアドレス情報を、制御３８、データ４０、およびアドレス４２を通じて、システム・バス１６に戻す。また、制御３８を通じて、ステータス情報を戻してもよい。信号ブリッジ回路５２は、調節エンディアン・インディケータ１５７およびペリフェラル・エンディアンネス制御レジスタ１５４に基づいて、アクセス動作を完了する際に用いる、しかるべきエンディアン・モードを決定する。したがって、前述のように、アクセスされているペリフェラルに対応するペリフェラル・エンディアン制御レジスタ、および要求元マスタに対応する当該レジスタ内のフィールドが、信号ブリッジ回路５２によって、エンディアン・モードを決定するために、即ち、現在のアクセスの間に転送する情報のエンディアンネスを決定するために用いられる。例えば、前述のフィールドが「００」を示す場合、調節エンディアン・インディケータ１５７が示すエンディアン・モードが、信号ブリッジ回路５２によって、アクセスを完了するために用いられる。このフィールドが「００」以外の値を示す場合、信号ブリッジ回路５２は、そのフィールドが示すエンディアン・モードにしたがって動作する。このように、ペリフェラル・エンディアンネス制御レジスタ１５４内のエンディアンネス制御情報を用いて、現在のアクセスの間に転送される情報のエンディアンネス順序に作用することができる。
【００５３】
しかしながら、ペリフェラル保護決定回路５１によってアクセスが許可されない場合（要求元バス・マスタが、要求されている特定のペリフェラルに対してしかるべきアクセス許可を有していないことを意味する）、そのペリフェラルにアクセスする前に、アクセスが終了する。また、アクセス・エラー信号６０を用いて、要求元バス・マスタがペリフェラルへのアクセスを拒否されたことを示してもよい。また、バス・エラーをシステム・バス１６を通じて要求元バス・マスタに供給してもよい。バス・エラーは、マスタ許可決定回路５０によって、制御信号３８の１つとして供給することができる。これに応答して、要求元バス・マスタは、バス・エラーから回復するために、しかるべき例外処理を実行するとよい。あるいは、アクセスが許可されない場合、データ処理システム１０の全てまたは一部のリセットを実行してもよい。
【００５４】
先に論じたように、信頼バス・マスタは、必要に応じて、レジスタ３０および５４において許可を動的に変更することができる。一実施形態では、信頼バス・マスタは、ソフトウェア・アプリケーションの起動に応答して、許可を変更することができる。これに応答して、信頼バス・マスタは、レジスタ３０および５４を更新して、不信バス・マスタ・アクセスを必要なペリフェラルに供給し、そのアプリケーションを完了させる。アプリケーションが完了すると、アプリケーション毎にのみ許可を付与するように、信頼バス・マスタは以前に付与した許可を取り消すことができる。
【００５５】
また、先に説明したように、ペリフェラル・エンディアンネス制御レジスタおよびマスタ・エンディアン制御フィールドは、アクセス毎に、個々のアクセスのエンディアン・モードの動的且つ柔軟な制御を可能にするために用いることができる。ペリフェラル・エンディアンネス制御レジスタ（各ペリフェラルに付随する）の使用は、必要に応じて、要求元マスタが示すデフォルト・エンディアン・モードを無効にするために用いることができる。これは、マスタが通常動作するモードとは異なるエンディアン・モードを用いてソフトウェアを処理することを可能にし、更に異なるシステムから以前のブリッジ構成をエミュレートすることを可能とし、こうして以前の構成のために書かれたソフトウェアを再利用することが可能となる。
【００５６】
他の実施形態では、ペリフェラル２２または２４をメモリ・ユニットとするとよく、その場合、ペリフェラル・レジスタ２１または２５はメモリ位置とすればよい。この実施形態では、レジスタ３０および５４は、メモリ・ユニットの特定のメモリ位置または一部に対する各バス・マスタに対応するアクセス許可を規定することができる。同様に、この実施形態では、レジスタ１５４は各バス・マスタに対応するエンディアンネス情報を、メモリ・ユニットの特定のメモリ位置または一部に提供することができる。
【００５７】
尚、他の実施形態では、レジスタ３０に格納されている情報を対応する各マスタ内に配置することができ、レジスタ５４および１５４に格納されている情報を、バス・インターフェース１８ではなく、各ペリフェラル内に配置することができる。更に、バス・マスタ許可決定回路も、マスタ内またはマスタに隣接して配置してもよく、ペリフェラル保護決定回路および信号ブリッジ回路をペリフェラル内またはペリフェラルに隣接して配置し、許可およびエンディアン・モード（ペリフェラル・エンディアンネス制御レジスタ内の対応するフィールドによってそのように示されるのであれば）をペリフェラルが決定するようにすることができる。したがって、他の実施形態では、データ処理システム１０内におけるいずれの場所においても、信頼バス・マスタまたはその他のバス・マスタによってアクセス可能なレジスタ３０、５４、および１５４の情報を格納することができる。また、データ処理システム１０は、許可およびエンディアン情報を更新可能であれば、任意の数の信頼バス・マスタまたはその他のバス・マスタを含むことができ、単一のセキュア・バス・マスタに限定されるのではない。
【００５８】
図５は、本発明の他の実施形態によるデータ処理システム１００を示す。データ処理システム１００は、バス・マスタ１０１、バス・マスタ１０２、バス・マスタ属性決定回路、マスタ特権レジスタ、およびマスタ・エンディアンネス制御部１０４、バス・マスタ属性決定回路、マスタ特権レジスタ、およびマスタ・エンディアンネス制御部１１０、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、およびペリフェラル・エンディアンネス制御レジスタ１０６、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、およびペリフェラル・エンディアンネス制御レジスタ１１２、ならびにペリフェラル１０８および１１４を含む。
【００５９】
バス・マスタ１０１は、特権インディケータ１１６、および任意に、エンディアン・インディケータ２１６を、バス・マスタ属性決定回路、マスタ特権レジスタ、およびマスタ・エンディアンネス制御部１０４に供給し、調節特権インディケータ１１８を、システム・バス１０３を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ１０６および１１２、そしてペリフェラル１０８および１１４に供給し、信頼インディケータ１２０を、システム・バス１０３を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ１０６および１１２に供給し、更に調節エンディアン・インディケータ２２０を、システム・バス１０３を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ１０６および１１２に供給する。また、バス・マスタ１０１は、その他の情報１２２を、システム・バス１０３を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ１０６および１１２、そしてペリフェラル１０８および１１４に供給する。
【００６０】
バス・マスタ１０２は、特権インディケータ１３０、および任意に、エンディアン・インディケータ２３０を、マスタ属性決定回路、マスタ特権レジスタ、およびマスタ・エンディアンネス制御部１１０に供給し、調節特権インディケータ１２６を、システム・バス１０３を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ１０６および１１２、そしてペリフェラル１０８および１１４に供給し、信頼インディケータ１２８を、システム・バス１０３を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、おならびにペリフェラル・エンディアンネス制御レジスタ１０６および１１２に供給し、調節エンディアン・インディケータ２２６を、システム・バス１０３を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ１０６および１１２に供給する。また、バス・マスタ１０２は、その他の情報１２４を、システム・バス１０３を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ１０６および１１２、そしてペリフェラル１０８および１１４に供給する。
【００６１】
動作時、データ処理システム１００は、データ処理システム１０と同様に動作する。例えば、マスタ１０１および１０２は、マスタ１４および１５と同様でよく、ペリフェラル１０８および１１４は、ペリフェラル２２および２４と同様でよい。また、データ処理システム１００は、いずれの数のマスタおよびいずれの数のペリフェラルでも含むことができる。しかしながら、データ処理システム１００では、バス・インターフェース１８の一部が異なる場所に分散されている。また、データ処理システム１００では、信頼インディケータ１２０および１２８が、システム・バス１０３を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ１０６および１１２に供給される。また、特権インディケータ１１６および１３０が、選択的に、バス・マスタ属性決定回路、マスタ特権レジスタ、ならびにマスタ・エンディアンネス制御部１０４および１１０によってそれぞれ修正され、調節特権インディケータ１１８および１２６として、システム・バス１０３を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ１０６および１１２そしてペリフェラル１０８および１１４に供給される。調節エンディアン・インディケータ２２０および２２６が、バス・マスタ属性決定回路、マスタ特権レジスタ、ならびにマスタ・エンディアンネス制御部１０４および１１０によって、エンディアン・インディケータ２１６および２３０（ある場合）、ならびにマスタ・エンディアンネス制御部に基づいて発生する。尚、バス・マスタ属性決定回路、マスタ特権レジスタ、ならびにマスタ・エンディアンネス制御部１０４および１１０の各々は、図２から図４を参照しながら先に説明したバス・マスタ属性決定回路５０およびマスタ特権レジスタ３０と同様に動作する。例えば、マスタ特権レジスタ（マスタ・エンディアンネス制御フィールドを含む）およびペリフェラル・アクセス制御レジスタに格納されている情報は、バス・アクセスを許可するか否かを判定するため、およびエンディアン・モードを決定するために、同様に用いられる。他の情報１２２および１２４は、制御３８、データ４０、アドレス４２、およびバス・マスタ識別子３６と同様の情報を含むことができる。したがって、先に図１から図４において説明したのと同じ信号を用いることができる。しかしながら、信号を発生する回路、または信号自体の一部は、異なる場所に配置したり、あるいは異なる構造としてもよい。
【００６２】
尚、図５に示す実施形態では、各バス・マスタ１０１および１０２は、対応するバス・マスタ属性決定回路、マスタ特権レジスタ、およびマスタ・エンディアンネス制御部を有する。したがって、決定回路、マスタ特権レジスタ、およびマスタ・エンディアンネス制御部は、各マスタに分散されている。例えば、各決定回路、マスタ特権レジスタ、およびマスタ・エンディアンネス制御部は、その対応するバス・マスタに対応する、特権レベルおよび信頼属性フィールド（フィールド７０〜７２および７４〜７６等）、ならびにマスタ・エンディアンネス制御フィールド（フィールド１３２および１３４等）を含むことができる。回路およびマスタ特権レジスタ（マスタ・エンディアンネス制御フィールドを含む）に格納されている情報は、各マスタ内に配置することができ、マスタとシステム・バスとの間で通信することができる。また、ペリフェラル保護決定回路５１、ペリフェラル・アクセス・レジスタ５４、およびペリフェラル・エンディアンネス制御レジスタ１５４も各ペリフェラルに分散することができる。例えば、図５に示すように、各ペリフェラル１０８および１１４は、対応するペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、およびペリフェラル・エンディアンネス制御レジスタを有し、各ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、およびペリフェラル・エンディアンネス制御レジスタは、その対応するペリフェラルに対応するアクセス制御フィールド（フィールド８０〜８２および８４〜８６等）、およびペリフェラル・エンディアンネス制御フィールド（フィールド３００および３０２等）を含むことができる。また、ペリフェラル１０８および１１６は、データ処理システム１０を参照して先に説明したように、いずれの種類のペリフェラル、メモリ・デバイス、またはバス・スレーブでもよく、したがって、特定の機能にその範囲が限定されるのではない。更に、選択したエンディアンネス・モードを利用する信号ブリッジ回路５２の部分も各ペリフェラルに分散されてもよい。したがって、分散した信号ブリッジ回路は、対応するペリフェラルの調整エンディアン・インディケータおよびペリフェラル・エンディアンネス制御レジスタに基づいて、しかるべきエンディアン・モードを用いて、要求されたアクセスを実行することができる。あるいは、信号ブリッジ回路５２の一部を各ペリフェラルに分散し、他の部分を各バス・マスタに分散してもよい。尚、エンディアン・インディケータ２１６および２３０、調節エンディアン・インディケータ２２０および２２６、マスタ・エンディアンネス制御部、ならびにペリフェラル・エンディアンネス制御レジスタは、図１から図８を参照しながら先に説明したように動作する。
【００６３】
図１および図２は、双方向導体の使用を示したが、単一方向導体の組み合わせを代わりに用いてもよいことは言うまでもない。あるいは、双方向および単一方向導体の組み合わせを用いてもよい。また、信号は、単一導体を通じてシリアルに、または複数の導体を通じてパラレルに転送してもよい。あるいは、信号は、単一または複数の導体上に時間多重化してもよい。また、双方向導体として示した信号を、単一導体と置き換えてもよく、単一方向導体を双方向導体と置き換えてもよい。
【００６４】
前述の明細書において、具体的な実施形態を参照しながら本発明について説明した。しかしながら、添付した特許請求の範囲に明記した本発明の主旨および範囲から逸脱することなく、種々の修正や変更が可能であることは、当業者であれば理解し得る。例えば、データ処理システム１０および１００は、単一チップまたは集積回路（ＩＣ）、あるいはチップまたはＩＣの組み合わせの上に配置可能であれば、いずれの種類のデータ処理システムでも可能であることは言うまでもない。また、データ処理システム１０および１００は、共有ペリフェラルを有するネットワーク（ネットワーク・システム・バスによって接続された）上に位置する種々のマスタおよびスレーブにも適用可能である。したがって、したがって、明細書および図面は、限定的な意味ではなく、例示的な意味で解釈するものとし、かかる修正は全て本発明の範囲内に含まれることを意図する。
【００６５】
本発明の具体的な実施形態に関して、効果、その他の利点、および問題に対する解決手段について記載した。しかしながら、効果、利点、問題に対する解法、およびかかる効果、利点、または解法をも生じさせる、または一層顕著にすることができるあらゆる要素（複数の要素）は、いずれのまたは全ての請求項の重要な、必要な、または本質的な特徴または要素として解釈しないこととする。ここで用いる場合、「備える」、「備えている」、またはそのいずれの変形も、非排他的包含を含むことを意図しており、要素のリストを備えているプロセス、方法、物品、または装置が、これらの要素のみを含むのではなく、明示的にリストされていない、あるいはかかるプロセス、方法、物品、または装置に固有のその他の要素を含み得るものとする。
【図面の簡単な説明】
【００６６】
【図１】本発明の一実施形態によるデータ処理システムをブロック図形式で示す。
【図２】本発明の一実施形態による、図１のバス・インターフェースの一部を、ブロック図形式で示す。
【図３】本発明の一実施形態によるマスタ特権レジスタおよびマスタ・エンディアン制御フィールドを、ブロック図形式で示す。
【図４】本発明の一実施形態によるペリフェラル・アクセス制御レジスタを、ブロック図形式で示す。
【図５】本発明の他の実施形態によるデータ処理システムを、ブロック図形式で示す。
【図６】本発明の一実施形態による、図３のマスタ・エンディアンネス制御フィールドについての説明を示す。
【図７】本発明の一実施形態による、図２のペリフェラル・エンディアンネス制御レジスタについての説明を示す。
【図８】本発明の一実施形態による図７のペリフェラル・エンディアン制御レジスタについての説明を示す。
【図９】ビッグ・エンディアン・フォーマットでデータを格納するための従来技術の慣例を示す。
【図１０】リトル・エンディアン・フォーマットでデータを格納するための従来技術の慣例を示す。
【図１】
2008500635.tif 000003
【図２】
2008500635.tif 000004
【図３】
2008500635.tif 000005
【図４】
2008500635.tif 000006
【図５】
2008500635.tif 000007
【図６】
2008500635.tif 000008
【図７】
2008500635.tif 000009
【図８】
2008500635.tif 000010
【図９】
2008500635.tif 000011
【図１０】
2008500635.tif 000012