JP4602403B2 - データ処理システムにおけるエンディアンネス制御方法および装置 - Google Patents

データ処理システムにおけるエンディアンネス制御方法および装置 Download PDF

Info

Publication number
JP4602403B2
JP4602403B2 JP2007515074A JP2007515074A JP4602403B2 JP 4602403 B2 JP4602403 B2 JP 4602403B2 JP 2007515074 A JP2007515074 A JP 2007515074A JP 2007515074 A JP2007515074 A JP 2007515074A JP 4602403 B2 JP4602403 B2 JP 4602403B2
Authority
JP
Japan
Prior art keywords
peripheral
master
bus
access
bus master
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007515074A
Other languages
English (en)
Other versions
JP2008500635A (ja
Inventor
シー. モイヤー、ウィリアム
ディ. フィッツシモンズ、マイケル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP USA Inc
Original Assignee
NXP USA Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NXP USA Inc filed Critical NXP USA Inc
Publication of JP2008500635A publication Critical patent/JP2008500635A/ja
Application granted granted Critical
Publication of JP4602403B2 publication Critical patent/JP4602403B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4013Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Numerical Control (AREA)

Description

本発明は、データ処理システムに関し、更に特定すれば、データ処理システムにおけるエンディアンネス制御(endianness control)に関する。
プロセッサは、メモリから二進値を読み出し、メモリに二進値を書き込むことができる。データは、例えば、ビッグ・エンディアンまたはリトル・エンディアンのフォーマットのような、種々のエンディアン・フォーマットにしたがってメモリに格納される。図9および図10の記載において用いられているように、エンディアンネスとは、1ワードまたはハーフワード内におけるバイトのバイトの順序(byte ordering)のことを言う。この場合、エンディアンネスをバイト順序と呼ぶこともある。一般に用いられているデータ記憶フォーマットの1つを図9に示す。図9はビッグ・エンディアン・フォーマットと呼ばれる。また、一般に用いられている第2のデータ記憶フォーマットを図10に示す。図10はリトル・エンディアン・フォーマットと呼ばれる。
図9において、4バイトのメモリ位置が示されている。4つのメモリ位置は、バイト0、バイト1、バイト2、およびバイト3と呼ぶ4バイトの情報を格納するために用いることができる。別の形態では、図9における4つの記憶位置は、ハーフワード0およびハーフワード1を格納するために用いることができる。図9に示すように、各ハーフワードは16ビット値であり、2バイトを含む。各ワードは32ビット値であり、4バイトを含む。尚、代わりに、ワードおよびハーフワードに異なる定義を付けることも可能である。例えば、ワードを16ビット値とし、ハーフワードを8ビット値とすることができる。したがって、図9における記憶位置は、バイト、ハーフワード、およびワードのデータ格納が可能である。
ビッグ・エンディアンおよびリトル・エンディアンは、ハーフワードおよびワードをいかに格納するかにおいて相違する。図9を参照すると、ハーフワード0は、バイト0およびバイト1と呼ぶ2つのバイト位置に格納されている。バイト0はハーフワードの最上位部分であり、バイト1はハーフワードの最下位部分である。バイト0は、16進数における値12を格納し、バイト1は16進数における値34を格納する。したがって、ハーフワード0は、16進数値1234として、図9から読み出される。同様に、16進数値5678を格納するように、16進数における値56の最上位バイトと、16進数における値78の最下位バイトとを有するハーフワード1が、メモリから読み出される。
図9において、バイト0のアドレス値はバイト1よりも小さく、バイト1のアドレス値はバイト2よりも小さく、バイト2のアドレス値はバイト3よりも小さい。例えば、バイト0のアドレスが16進数で50となるようにバイト0をメモリ内に配置すると、バイト1のアドレスは16進数で51となり、バイト2のアドレスは16進数で52となり、バイト3のアドレスは16進数で53となる。したがって、例えば、バイト3は、バイト0、1または2よりも上位のアドレス空間に位置すると言える。したがって、ハーフワードまたはワードをメモリから読み出す場合、ビッグ・エンディアン・フォーマットの最上位バイトは下位のアドレス空間に格納されており、一方最下位バイト部分は最上位ビット部分よりも上位のアドレス空間に格納されていることになる。
32ビット・ワードを図9に格納する場合、読み出される値は、バイト0が最上位バイトであり、バイト3が最下位バイトであることから、16進数で12345678となる。
図10は、リトル・エンディアン・フォーマットを示す。図10のハーフワード0は、メモリから、5678の値を有するものとして読み出される。これは、リトル・エンディアン記憶フォーマットを用いる場合、最上位バイトが最下位バイトよりも上位のアドレス空間に格納されるからである。このリトル・エンディアン・フィーマットは、ビッグ・エンディアン・フォーマットの逆である。したがって、ハーフワード0は16進数の値5678として読み出され、ハーフワード1は16進数の値1234として読み出される。ワード0と呼ばれる32ビット・ワード値を図10におけるメモリから読み出すと、このワードは、12345678の16進数値を有することになる。
要約すると、ビッグ・エンディアン・フォーマットを用いて32ビットワードを図9から読み出すと、その32ビット値は16進数の12345678となる。また、リトル・エンディアン・フォーマットを用いて図10から32ビット・ワードを読み出すと、16進数値の12345678が読み出される。しかしながら、図9および図10からわかるように、双方の読み出しの結果同一の値が得られるものの、図9および図10の個々のバイトは、互いに比較すると、逆になっている。
この異なるエンディアン・フォーマット間のビット順序またはバイト順序において固有の相違があるために、異なるエンディアン・フォーマットを用いて動作しようとする多元マスタおよび多元ペリフェラルデータ処理システムのようなデータ処理システムにおいて問題が生ずる。したがって、1つ以上のマスタおよび1つ以上のペリフェラル(周辺装置:peripheral)を有するデータ処理システムのために、柔軟で動的なエンディアンネスの制御を可能にするデータ処理システムが求められている。
添付図面に一例として本発明を示すが、本発明はこれに限定されるのではない。図面においては、同様の参照符号は同様の要素を示す。
尚、図は、簡素さおよび明確さを目的に示されており、必ずしも同一の拡縮率で描かれていないことを、当業者は理解し得る。例えば、図における要素の一部は、本発明の実施形態の理解を高めるのに役立つように、他の要素に対して誇張されている場合もある。
前述のように、例えば、ビッグ・エンディアン・フォーマットまたはリトル・エンディアン・フォーマットのように、種々のエンディアン・フォーマットにしたがってデータをメモリに格納することができる。図1〜図8の説明に用いるように、エンディアンネスとは、ワードまたはハーフワードにおけるバイトのバイト順序のことを言う。したがって、エンディアンネスはバイト順序とも呼ばれる。しかしながら、代わりに、エンディアンネスは、バイト、ワード、またはハーフワード内におけるビットのビット順序のことを言う場合もある。更に、エンディアンネスは、ワードの順序またはハーフワードの順序等のことを言う場合もある。即ち、エンディアンネスは、例えば、バイト、ハーフワード、ワード、ロングワード、ダブルワード等のような、ビット(またはバイト)群内における任意の数「n」のビット(またはバイト)の順序を示し得る。したがって、エンディアンネスは、一般に、広い概念では、任意の数「n」のビットまたはワードの順序を言い、バイトの順序には限定されない。一実施形態では、1ワードは32ビットに対応し、1ハーフワードは16ビットに対応する。しかしながら、他の実施形態では、1ワードは、例えば、16ビットまたは64ビットというような、異なる数のビットを含む場合もあり得る。
本発明の一実施形態は、ペリフェラル毎またはアクセス毎にエンディアンネス制御を可能にする、ペリフェラル・エンディアン制御の使用を通じて、データ処理システム内における柔軟なエンディアンネス制御機構を提供する。例えば、一実施形態では、データ処理システムは、異なるエンディアン・モードで実行するマスタに応答する共有ペリフェラルを含むことができる。また、これまでのシステムとのソフトウェア互換性のために、ペリフェラルは、元来書かれているソフトウェアと同じように、マスタの現在のエンディアンネスのアクセスとは異なるメモリの形で応答する必要がある場合もある。更に、ペリフェラルは、現在のマスタのエンディアン・モードの指示を受けることなく、異なるエンディアンネスに応答する必要がある場合もある。一実施形態では、マスタ・エンディアンネス制御フィールドを用いて、システム内のマスタ毎にデフォルトのエンディアン・モードを規定することができる。更に、ペリフェラル・エンディアンネス制御部は、選択的に、各マスタのエンディアン・モードを無効にして、例えば、従来のシステム構成またはソフトウェア仕様との下位互換性に対処することもできる。尚、ペリフェラル・エンディアンネス制御部およびマスタ・エンディアンネス制御部は、専用ペリフェラル、共有ペリフェラル、またはそのあらゆる組み合わせを有する単一マスタまたは多元マスタ・データ処理システムにも適用可能である。
本発明の別の実施形態は、安全性を高めた動作環境を得るために、データ処理システム内において柔軟なペリフェラル・アクセス保護機構を提供する。例えば、データ処理システムは、共有ペリフェラルにアクセスする必要がある場合において、信頼(trusted)および不信(untrusted)バス・マスタの組み合わせを含むことができる。一実施形態では、信頼バス・マスタによって、バス・マスタ毎の特権および信頼属性、ならびにペリフェラル毎のアクセス制御における動的な更新に対処する。したがって、信頼バス・マスタは、不信バス・マスタ上で実行する誤ったソフトウェアまたは敵対的ソフトウェアによる悪意ある改ざんからデータ処理システムを保護するために、どのバス・マスタがどのペリフェラルにアクセスする許可を有するのか確定することもできる。
バス・マスタ識別子、信頼属性、および特権レベルの使用により、要求されたペリフェラルへのアクセスは、信頼バス・マスタが確定した許可に基づいて、許可または拒否のいずれも可能である。例えば、一実施形態では、データ処理システム内の各マスタは、対応する特権レベル修正部と、対応する信頼属性を(リードおよびライト・アクセスのような)個々のバス・アクセス形式に対して含んでいる。また、一実施形態では、データ処理システム内の各ペリフェラルは、対応する信頼属性、ライト保護インディケータ、および特権保護インディケータを含む。したがって、一実施形態では、バス・マスタによるペリフェラルへのバス・アクセスが許可されるのは、バス・マスタがしかるべき特権レベル、およびペリフェラルによって要求されるしかるべき信頼レベルを有するとき(ならびに、バス・アクセスがライト・アクセスである場合、ペリフェラルがライト保護されていないとき)である。また、特権レベル修正部の使用により、バス・マスタを特定のバス・アクセスに対しては特定の特権レベルに強制することもできる。
図1は、データ処理システム10の一実施形態を示す。データ処理システム10は、バス・スレーブ26、バス・マスタ14、バス・マスタ15、バス調停ロジック28、システム・バス16、バス・インターフェース18、ペリフェラル・バス20、ならびにペリフェラル22および24を含む。バス・スレーブ26、バス・マスタ14、バス・マスタ15、バス調停ロジック28、およびバス・インターフェース18は全て双方向にシステム・バス16に接続されている。バス・インターフェース18、ペリフェラル22、およびペリフェラル24は、全て双方向にペリフェラル・バス20に接続されている。ペリフェラル22は、ペリフェラル回路19およびペリフェラル・レジスタ21を含み、ペリフェラル24は、ペリフェラル回路23およびペリフェラル・レジスタ25を含む。図1には2つのペリフェラル22および24のみを示すが、データ処理システム10は、任意の数のペリフェラルを含み、ペリフェラル・バス20に接続することができる(また、ペリフェラル22および24の各々は、データ処理システム10におけるマスタの全てまたは一部による共有ペリフェラルとしてもよく、または1つのマスタによってのみアクセス可能な専用ペリフェラルとしてもよい)。同様に、任意の数のバス・マスタおよびスレーブをシステム・バス16に接続することもでき、図1に示されるものに限定されるのではない。また、図1はバス調停ロジック28を、システム・バス16に接続されている別個のユニットとして示すが、バス調停ロジック28の一部を、システム・バス16に接続されているバス・マスタの各々(またはバス・マスタの一部分)に配置してもよい(バス調停ロジック28は、既知のバス・アービタと同様に動作すればよい)。
一実施形態では、データ処理システム10の全ては単一の集積回路に含まれる。あるいは、データ処理システム10は任意の数の集積回路上に含まれてもよい。
一実施形態では、バス・マスタ14およびバス・マスタ15は、マイクロプロセッサ、ディジタル信号プロセッサ等のようなプロセッサとすることができ、あるいは、ダイレクト・メモリ・アクセス(DMA)ユニットのような、他の任意の種類のマスタ・デバイスでもよい。これらのバス・マスタの1つ以上が信頼バス・マスタとなることができ、不信バス・マスタよりも改悪を被る虞れが少ない。例えば、信頼バス・マスタは、当該バス・マスタまたはSoCによって完全に制御されている命令を実行することができる(即ち、信頼マスタ上で実行するソフトウェアを信頼ソフトウェアと見なすことができる)。即ち、一実施形態では、サード・パーティのソフトウェアは信頼マスタ上では実行することができず、第三者は信頼マスタへのアクセスを許可されない。あるいは、信頼バス・マスタに対する信頼レベル(即ち、セキュリティ・レベル)を、完全信頼から低信頼まで変化させることができ、データ処理システム10の設計によって異なるが、一般には不信バス・マスタよりも信頼度は高い。
同様に、バス・マスタ14および15の任意の1つ以上を不信バス・マスタとしてもよく、これらは一般にアクセスされ易く、または改悪を被り易い。一実施形態では、不信バス・マスタは、一般用途用プロセッサであり、サード・パーティ・ソフトウェア(例えば、ユーザが開発したソフトウェア)、あるいは他の任意の不信ソフトウェア(ソフトウェアの内容および機能が全体的に未知である)を受け入れ、実行することができる。ソフトウェアが信頼されていないので、このソフトウェアはデータ処理システム10の他の部分(他の信頼バス・マスタまたはペリフェラル22および24のような)を改悪しようとする誤ったソフトウェアまたは敵対的ソフトウェアである可能性があり、ウィルスをデータ処理システム10に混入させる可能性があり、バス・マスタ14または15、ペリフェラル22または24、バス・スレーブ25、あるいはデータ処理システム10内部のいずれかにおいて保護されている情報にアクセスされる可能性がある。
また、ペリフェラル・バス・マスタは、ある種のアクセスに対しては信頼されていると見なすことができ、他の種類のアクセスに対しては信頼されていないと見なすことができる。例えば、同じバス・マスタでも、リードに対しては信頼性があり、ライトに対しては信頼性がないと見なすことができる。したがって、各マスタは、異なる種類のアクセスについては異なる信頼レベルを有することができる。また、各バス・マスタは、異なる特権レベルを有することもできる。例えば、一実施形態では、1つのバス・マスタが高い特権レベル(スーパーバイザ・モードのような)で動作してもよく、他のバス・マスタは低い特権レベル(ユーザ・モードのような)で動作してもよい。特定の特権レベルは、マスタがアクセスできるリソースを決定するのに使用される。
したがって、一実施形態では、以下で説明するように、データ処理システム10内の各マスタは、対応する1組の信頼属性フィールドを有し、このフィールドによって個々の種類のバス・アクセスに対して対応するマスタの信頼レベルが決定される。また、各バス・マスタは対応する特権修正フィールドを有し、このフィールドによって、対応するマスタの特権レベルを、個々のバス・アクセスに対して選択的に調節することが可能となる。同様に、ペリフェラル22および24のような各ペリフェラルは、対応する1組のアクセス制御フィールドを有し、この制御フィールドによって、所与のペリフェラルが対応するアクセスのレベルが決定される。例えば、特定のペリフェラルは、信頼されているとして識別されたマスタ、またはスーパーバイザ・モードで動作しているマスタ(即ち、スーパーバイザ特権レベルを有する)に対してより多くのアクセスを与える。バス・マスタについてのこれらの特権および信頼属性フィールド、ならびにペリフェラルについてのアクセス制御フィールドについては、図2〜図5を参照して以下で更に詳しく説明する。
データ処理システム10内の各バス・マスタは、特定のエンディアン・モードにしたがって動作することができ、異なるバス・マスタのエンディアン・モードは異なっていてもよい。したがって、一実施形態では、以下で説明するように、1組のペリフェラル・エンディアン制御レジスタを用いて、個々のバス・マスタから現在のアクセスを実行するエンディアン・モードを決定する。この場合、一例では、1つ以上のペリフェラルが対応するペリフェラル・エンディアン制御レジスタを有し、この制御レジスタにより、当該ペリフェラルにアクセスすることができるマスタ毎に、エンディアン制御情報が提供される。このように、アクセス毎に、アクセスされるペリフェラルは、しかるべきエンディアンネスを用いて要求元のマスタに応答することができる。また、一実施形態では、1組のマスタ・エンディアン制御フィールドによって、各マスタに対応するエンディアンネス制御情報が提供される。尚、このエンディアン制御情報は、ペリフェラル・エンディアンネス制御レジスタにより提供されるエンディアンネス制御情報によって選択的に無効にされる場合もある。例えば、これらのマスタ・エンディアン制御フィールドは、マスタ毎にデフォルト・エンディアンネス情報を提供する。これらのマスタ・エンディアンネス制御フィールドおよびペリフェラル・エンディアンネス制御レジスタについては、図2〜図8を参照して以下で更に詳しく説明する。
再度図1を参照すると、バス・スレーブ26は、例えば、バス・マスタ14および15によるアクセスが可能なメモリや、ペリフェラル22および24と同種類のペリフェラルを含む、システム・バス上に位置する任意の種類のペリフェラル等のような、任意のスレーブ・デバイスである。ペリフェラル22および24は、万能非同期受信送信機(UART)、リアル・タイム・クロック(RTC)、キーボード・コントローラ等のような、任意の種類のペリフェラルである。ペリフェラル回路19は、ペリフェラル・バス20とペリフェラル・レジスタ21との間の通信を可能にする。同様に、ペリフェラル回路23は、ペリフェラル・バス20とペリフェラル・レジスタ25との間の通信を可能にする。他の実施形態では、ペリフェラル22はメモリ・ユニットとしてもよく、この場合、ペリフェラル・レジスタ21は、メモリ・アドレス位置となる。
動作時、バス・マスタ14および15はシステム・バス16のアクセスを要求し、バス・スレーブ26のような、システム・バス16に接続されている他のスレーブ・デバイスへのアクセスを要求するか、あるいはバス・インターフェース18を介して、ペリフェラル22および24へのアクセスを要求する。以下で説明するが、バス・インターフェース18は、特定のペリフェラルに対する要求や、または特定の種類の要求を許可するか否かを判断する。許可しない場合、バス・インターフェース18はシステム・バス16を通じてバス・エラー応答を与える。しかしながら、要求を許可する場合、バス・インターフェース18は、要求されたバス・アクセスを履行させるために必要なあらゆるバス・プロトコルおよびエンディアンネス制御情報を提供する。前述のように、各バス・マスタ14および15は、その特権レベル、ならびにアクセスされるペリフェラルの信頼レベルおよびアクセス制御フィールドによって決定されるように、ペリフェラル22および24へのアクセスが制限されている場合がある。更に、各バス・マスタ14および15は、異なるエンディアン・モードにしたがって動作する場合もあり、アクセスされる各ペリフェラル22および24は、ペリフェラル・エンディアンネス制御レジスタ内の設定値に基づいて、しかるべく応答する。
図2は、本発明の一実施形態による、図1のバス・インターフェース18の一部を示す。バス・インターフェース18は、制御回路44、マスタ特権レジスタ30、ペリフェラル・アクセス制御レジスタ54、およびペリフェラル・エンディアンネス制御レジスタ154を含む。制御回路44は、バス・マスタ識別子36、アドレス42、データ40、制御38、および特権インディケータ37を、システム・バス16を通じて供給および受信する。任意に、制御回路44は、点線で示すように、システム・バス16を通じてエンディアン・インディケータ137(エンディアン信号137とも呼ぶ)を受信する(他の実施形態では、エンディアン・インディケータがある場合、システム・バス16を通じてではなく、例えば、側波帯信号(side−band signal)として、1つ以上のマスタ14および15から直接供給することもできる)。システム・バス16は、他の実施形態では、現在のアクセスがデータまたは命令のいずれのためのものかを示す種類インディケータ、あるいは現在のアクセスのサイズを示すサイズ・インディケータというような、付加情報も提供することができる。
制御回路44は、レジスタ30、54、および154への信頼バス・マスタ・リード/ライト(R/W)アクセスのための回路46を含む。レジスタ30、54、および154は、マスタ特権レジスタ30、ペリフェラル・アクセス制御レジスタ54、およびペリフェラル・エンディアンネス制御レジスタ154の各々に双方向に接続されている。また、制御回路44は、ペリフェラル22、24にアクセスするための回路48も含む。回路48は、マスタ特権レジスタ30から情報を受信するバス・マスタ属性決定回路50を含み、更に、ペリフェラル・アクセス制御レジスタ54から情報を受信するペリフェラル保護決定回路51も含む。また、制御回路48は、ペリフェラル・エンディアンネス制御レジスタ154からの情報を受信し、ペリフェラル・バス20に双方向に接続され、ペリフェラル22および24に対するしかるべく信号を供給および受信するための信号ブリッジ回路52も含む。また、バス・マスタ属性決定回路50は、調節エンディアン・インディケータ157、調節特権インディケータ57、R/Wインディケータ58、および信頼インディケータ59をペリフェラル保護決定回路51に供給し、アクセス・エラー信号60をペリフェラル保護決定回路51から受信する。尚、システム・バス16を通じて、バス・マスタ14および15にアクセス・エラー信号60を返信してもよい。他の実施形態では、アクセス・エラー信号60は、システム・バス16を通じて伝達され、バス・マスタ属性決定回路50には供給されない。
マスタ特権レジスタ30は、マスタ特権レジスタ32およびマスタ・エンディアンネス制御部132、マスタ特権レジスタ34、ならびにマスタ・エンディアンネス制御部134を含む。一実施形態では、複数のマスタ特権レジスタ30の各々は、システム・バス16上のマスタに対応する。また、一実施形態では、マスタ特権レジスタ30は、単一のレジスタのみを含んでもよく、あるいは任意の数のレジスタを含んでもよい。これについては、以下で図3を参照しながら更に説明する。また、マスタ・エンディアンネス制御部132および134は、それぞれ、マスタ特権レジスタ32および34内に位置する追加フィールドであってもよく、あるいはマスタ・エンディアンネス制御部132および134は、マスタ特権レジスタ30内の1つ以上の別個のレジスタ、あるいはバス・インターフェース18内のどこかに含まれていてもよい。
ペリフェラル・アクセス制御レジスタ54は、ペリフェラル・アクセス制御レジスタ55およびペリフェラル・アクセス制御レジスタ56を含む。一実施形態では、複数のペリフェラル・アクセス制御レジスタの各々は、ペリフェラル・バス20上のペリフェラルに対応する。また、一実施形態では、ペリフェラル・アクセス制御レジスタ54は、1つのレジスタのみを含んでもよく、あるいは任意の数のレジスタを含んでもよい。これについては、以下で図3を参照しながら更に説明する。ペリフェラル・エンディアンネス制御レジスタ154は、ペリフェラル・エンディアンネス制御レジスタ155、およびペリフェラル・エンディアンネス制御レジスタ156を含む。一実施形態では、複数のペリフェラル・エンディアンネス制御レジスタの各々は、ペリフェラル・バス20上のペリフェラルに対応する。また、一実施形態では、ペリフェラル・エンディアンネス制御レジスタ154は、1つのみのレジスタを含んでもよく、あるいは任意の数のレジスタを含んでもよい。これについては、以下で図7を参照しながら更に説明する。また、一実施形態では、ペリフェラル・アクセス制御レジスタ54およびペリフェラル・エンディアンネス制御レジスタ154を組み合わせて、ペリフェラル毎にアクセスおよびエンディアンネス制御情報双方を含む1つ以上のレジスタとしてもよい。
また、マスタ特権レジスタ30、ペリフェラル・アクセス制御レジスタ54、およびペリフェラル・エンディアンネス制御レジスタ154は、データ処理システム10内であればどこに配置してもよく、バス・インターフェース18内に配置する必要もない。本発明の他の実施形態の中には、ペリフェラル・アクセス制御レジスタおよびペリフェラル・エンディアンネス制御レジスタを各ペリフェラル22および24内に分散してもよい場合もあり、あるいはバス・スレーブ26、およびバス特権レジスタを分散するか、あるいは1つ以上のバス・スレーブ26内に位置してもよい場合もある。
動作時、バス・インターフェース18は、マスタ特権レジスタ30、ペリフェラル・アクセス制御レジスタ54、およびペリフェラル・エンディアンネス制御レジスタ154に対するアクセスを、バス・マスタ識別子36に基づいて与える。バス・マスタ識別子36は、制御回路44に対して、どのバス・マスタが現在の要求を与えているかを特定する。例えば、一実施形態では、データ処理システム10における各バス・マスタは、対応する識別(ID)番号を有するとよい。例えば、バス・マスタ14は対応するID番号0を有し、バス・マスタ15は対応するID番号1を有する。特定のバス・マスタがペリフェラルへのアクセスを要求すると、その対応するID番号をバス・マスタ識別子36として制御回路44に供給することができる。この例では、バス・マスタ識別子36が0である場合、バス・マスタ14が示される。他の実施形態では、任意の形式の特定システムを、異なるバス・マスタ間で差別化するために用いることができる。
バス・インターフェース18は、回路46を通じて、信頼バス・マスタのみがマスタ特権レジスタ30、ペリフェラル・アクセス制御レジスタ54、およびペリフェラル・エンディアンネス制御レジスタ154へのR/Wアクセスを取得できることを保証する(あるいは、回路46は、不信マスタに、これらのレジスタの一部または全てにアクセスすることを許可してもよい。例えば、一実施形態では、回路46は、レジスタ30および54へのアクセスを信頼マスタのみに許可し、レジスタ154へのアクセスを信頼または不信マスタに許可する)。図示の実施形態では、回路46は、入来するバス・マスタ識別子36を比較して、信頼バス・マスタがR/Wアクセスをレジスタ30、レジスタ54、またはレジスタ154に要求しているのか否かを判定する。一実施形態では、回路46は、どのバス・マスタがレジスタ30、54、および154を修正することを許可されているのかを識別するリストを含む。例えば、一実施形態では、マスタ14および15の一方のみを信頼マスタと見なしてもよく、その唯一の信頼マスタは、レジスタ30、54、および154を修正することができる。あるいは、回路46は、信頼マスタのみがレジスタ30、54、および154を修正することを保証する他の回路を含んでもよい。また、回路46は、バス・マスタ識別子36に加えて、またはこれの代わりに、他の属性に基づいてこの判定を行ってもよい。例えば、他の実施形態では、回路46は特権インディケータ37(要求元バス・マスタの現在のバス・アクセスに対する特権レベルを示す)を用いて、この判定を行うことができる。このように、信頼バス・マスタはレジスタ30、54、および154のフィールドを設定し、ペリフェラル22および25のアクセスを制御することができる。一実施形態では、信頼バス・マスタは、電源投入時、リセット時、ソフトウェア・アプリケーションの起動に応答して、またはその他のしかるべき時点であればいつでも、値をレジスタ30、54、および154にプログラムすることができる。これによって、レジスタ30、54、および154への動的なアクセスが可能となり、必要に応じてこれらを更新することができるようになる。あるいは、レジスタ30、54、および154内の値を、一度だけ(ライト・ワンス・オンリ・メモリを用いることによる等)プログラムしたり、限られた回数だけプログラムしたり、あるいはハードワイヤ接続にしてもよい。ペリフェラル22、24にアクセスするための回路48内部のバス・マスタ属性決定回路50について説明する前に、レジスタ30の内容について、図3および図6を参照しながら説明する。
図3は、マスタ特権レジスタ30の一実施形態を示す。図示の実施形態では、マスタ特権レジスタ30は、マスタ特権レジスタ32およびマスタ・エンディアンネス制御部132を含み、双方はバス・マスタ14およびマスタ特権レジスタ34ならびにマスタ・エンディアンネス制御部134に対応し、双方はバス・マスタ15に対応する。一実施形態では、マスタ・エンディアンネス制御部132は、マスタ特権レジスタ32内の追加フィールド(フィールド70〜72と同様)として含まれてもよい。あるいは、マスタ・エンディアンネス制御部132を別個のレジスタに格納してもよい(尚、マスタ・エンディアンネス制御部132および134をそれぞれマスタ・エンディアンネス制御フィールド132および134と呼ぶ場合もある)。したがって、本実施形態では、マスタ特権レジスタ30は、1つのマスタ特権レジスタおよびマスタ・エンディアンネス制御フィールドをバス・マスタ毎に含む。しかしながら、他の実施形態では、単一のレジスタを用いて全てのマスタについて必要な情報を格納してもよく、あるいはいずれの数および組み合わせのレジスタを用いてもよい。ここで、マスタ特権レジスタ32およびマスタ・エンディアンネス制御部132について一例として説明する。しかしながら、マスタ特権レジスタ32およびマスタ・エンディアンネス制御部132についての記載は、マスタ特権レジスタ34およびマスタ・エンディアンネス制御部134というような、マスタ特権レジスタ30内にある全てのマスタ特権レジスタおよびマスタ・エンディアンネス制御フィールドにも該当する。マスタ特権レジスタ32は、バス・マスタ14用特権レベル修正フィールド70、バス・マスタ14による書き込みに対する信頼属性フィールド71、およびバス・マスタ14による読み取りに対する信頼属性フィールド72を含む。
特権レベル修正フィールド70は、特定のアクセスに対するバス・マスタ14の現在の特権レベルを、フィールド70に格納されている値によって示されるように、選択的に修正または調節することを可能にする。一実施形態では、バス・マスタ14の現行の特権は、バス・マスタ14によって供給され、システム・バス16を通じて特権インディケータ37によって回路44を制御する。一実施形態では、特権インディケータ37を用いて、現在のバス・アクセスの間に、バス・アクセスを要求している現在のバス・マスタ(バス・マスタ識別子36によって特定される)が、スーパーバイザまたはユーザ特権レベルのどちらを有するか識別する。即ち、この実施形態では、特権インディケータ37はスーパーバイザまたはユーザ・モードの一方に対応する特権レベルを示す。したがって、バス・マスタ14がバス・アクセスを実行しているとき、特権レベル修正フィールド70を用いて、バス・マスタ属性決定回路50に、現在のバス・アクセスに対するバス・マスタ14の特権レベルを調節すべきか否かを示すことができる。例えば、スーパーバイザ・モードで動作している場合、特権レベル修正フィールド70を用いて、バス・マスタ14の特権レベルをユーザ・モードに強制することができる。あるいは、特権レベル修正フィールド70は、いずれの種類の特権レベルでも示すことができ、スーパーバイザまたはユーザ・モードには限定されない。更に、特権レベル修正フィールド70は、バス・マスタ14の特権レベルを供給するために用いられる1つ以上のビットを含むこともできる。例えば、一実施形態では、特権レベル修正フィールド70における1ビットを用いて、現在のバス・アクセスの間、要求元バス・マスタの特権レベルを修正すべきか否かを示すことができ、他の1つ以上のビットを用いて、調節した特権レベルが何であるのかを示すことができる(尚、実施形態では、現在の特権レベルが、フィールド70によって示される特権レベルと同一であり、調節が不要であることを示すようにしてもよい)。
バス・マスタ14によるライトのための信頼属性フィールド71は、バス・マスタ14によるライト・アクセスについて、バス・マスタ14が信頼マスタであるか否かを示すために用いられる。同様に、バス・マスタ14によるリード・アクセスに対する信頼属性フィールド72は、バス・マスタ14が、バス・マスタ14によるリード・アクセスに対して信頼マスタであるか否かを示すために用いられる。したがって、バス・マスタ14のような、各バス・マスタは、リードまたはライト・アクセスに対して異なる信頼属性を有してもよい。例えば、ペリフェラルまたはバス・スレーブに対してリード・アクセスを実行するためには、バス・マスタ14を信頼マスタと見なすとよく、一方ペリフェラルまたはバス・スレーブからのライト・アクセスを実行するためには、バス・マスタ14を不信マスタと見なすとよい。したがって、フィールド71および72の各々は、ライトおよびリード・アクセスに対するバス・マスタ14の信頼レベルを示すために用いられる1つ以上のビットを含むことができる。他の実施形態では、バス・マスタは、単に信頼または不信と分類されるだけでなく、バス・アクセスの個々の種類に対して信頼レベルを増加して有してもよい。例えば、フィールド71および72は、バス・マスタ14についてのN個の信頼レベル(N>2)からの選択により、1つのレベルを示すこともできる。
尚、図示したフィールドよりも多い、または少ない、または異なるフィールドをマスタ特権レジスタ32に含ませてもよい。例えば、単一の信頼属性フィールドを、バス・マスタ14によるライトおよびリード双方に用いてもよく、バス・マスタ14は、リードおよびライト双方に対して信頼または不信のいずれかと見なされる。あるいは、信頼属性を他の種類のバス・アクセスのために供給してもよい。
尚、フィールド70〜72について先に行った説明は、マスタ特権レジスタ34のフィールド74〜76にも該当する。即ち、バス・マスタ15に対する特権レベル修正フィールド74は、バス・マスタ15の特権レベルを現在のバス・アクセスに対して選択的に調節することを可能にする。バス・マスタ15によるライトに対する信頼属性フィールド75は、ライト・アクセスに対するバス・マスタ15の信頼レベルを示し、バス・マスタ15によるリードに対する信頼属性フィールド76は、リード・アクセスに対するバス・マスタ15の信頼レベルを示す。
マスタ・エンディアンネス制御部132は、バス・マスタ14に対するエンディアンネス制御情報を提供する。したがって、バス・マスタ14が現在のアクセスを要求する場合(例えば、バス・マスタ識別子36によって識別する)、マスタ・エンディアンネス制御部132を用いてエンディアンネス情報を提供することができる。例えば、図6はバス・マスタ14またはバス・マスタ15のエンディアンネスをどのように決定するかを決定するマスタ・エンディアンネス制御部132および134に対する設定値の例を示す。一実施形態では、マスタ・エンディアンネス制御部132および134が決定するエンディアンネスを、要求元マスタのデフォルト・エンディアンネスと呼ぶ。図6を参照すると、マスタ・エンディアンネス制御部132が「10」に設定されている場合、バス・マスタ14の実際のエンディアン・モードに関わらず、バス・マスタ14からのアクセスをリトル・エンディアン・モードに強制する。この場合、調節エンディアン・インディケータ157が、要求元のバス・マスタが動作しているエンディアン・モードに関わらず、またはエンディアン・インディケータ137(ある場合)が示すエンディアン・モードに関わらず、リトル・エンディアン・モードを示す。マスタ・エンディアンネス制御部132が「11」に設定されている場合、バス・マスタ14からのアクセスは、バス・マスタ14の実際のエンディアン・モードに関わらず、ビッグ・エンディアン・モードに強制される。この場合、調節エンディアン・インディケータ157は、要求元バス・マスタが動作しているエンディアン・モードに関わらず、またはエンディアン・インディケータ137(ある場合)が示すエンディアン・モードに関わらず、ビッグ・エンディアン・モードを示す。
更に図6を参照すると、マスタ・エンディアンネス制御部132が「00」に設定されている場合、マスタ14からのアクセスは、実際のエンディアンネス・モードに関わらず、特定のエンディアン・モードに強制される。したがって、「00」に設定されている場合、エンディアン・インディケータ137(要求元バス・マスタのエンディアン・モードに対応する)が示すエンディアン・モードが用いられる。この場合、調節エンディアン・インディケータ157は、エンディアン・インディケータ137と同じモードを示す。しかしながら、マスタ・エンディアンネス制御部132が「01」に設定されている場合、バス・マスタ14からのアクセスは、エンディアン・インディケータ137が示すモードと逆転する。例えば、エンディアン・インディケータ137が、バス・マスタ14がビッグ・エンディアン・モードで動作していることを示す場合、マスタ・エンディアンネス制御部132が「01」に設定されていれば、調節エンディアン・インディケータ157を、リトル・エンディアン・モードを示すように設定する。他の実施形態では、「01」の設定値は、単に逆のエンディアンネスではなく、異なるエンディアンネスが用いられることを示す場合もある(したがって、マスタ・エンディアンネス制御部132が「00」または「01」に設定されている場合、エンディアン・インディケータ137または要求元プロセッサのエンディアン・モードの他のいずれかのインディケータを供給する)。
尚、図6およびマスタ・エンディアンネス制御部132に関して先に行った説明は、マスタ・エンディアンネス制御部134にも該当する。また、他の実施形態では、エンディアンネス情報を提供するために用いるビットは、前述よりも多くても少なくてもよく、あるいは他の設定値を用いてもよい。例えば、他の実施形態では、バス・アクセスが命令アクセスまたはデータ・アクセスのときに、代わりの値の組を用いてもよい。この他の実施形態では、種類インディケータがデータ情報または命令情報のどちらが現在のアクセス中にアクセスされていることを示すかに基づいて、マスタ・エンディアンネス制御部に異なる値の組を適用することができる。また、他の実施形態では、データまたは情報アクセスのサイズに基づいて、異なる値の組を用いることもできる。例えば、現在のアクセスが16ビット・サイズに対応する場合、ある値の組を用いることができ、現在のアクセスが32ビット・サイズに対応する場合、異なる値の組を用いることができる。したがって、マスタ・エンディアンネス制御部132および134の各々は、図6に示す単一の2ビット・フィールドではなく、多数のフィールドを含んでいてもよく、これらを用いて、要求元マスタ、アクセス種類、アクセス・サイズ、またはそのあらゆる組み合わせに基づいて、エンディアンネスを制御することができる。
図2に戻り、ペリフェラル22、24にアクセスするための回路48は、バス・マスタ属性決定回路50を含み、この回路50は、アドレス42、制御38、特権インディケータ37、バス・マスタ識別子36、および任意に、エンディアン・インディケータ137を受信し、調節エンディアン・インディケータ157、調節特権インディケータ57、R/Wインディケータ58、および信頼インディケータ59をペリフェラル保護決定回路51に供給する。したがって、回路50は、バス・アクセスの種類(リードまたはライト)、要求されたペリフェラル、どのバス・マスタが要求を出しているかの特定、要求を出しているバス・マスタの特権レベル、そして一部の実施形態では、要求を出しているバス・マスタのエンディアン・モードを特定するのに必要な全ての情報を受信する。前述のように、マスタ特権レジスタ30に格納されている情報を用いて、回路50は、調節エンディアン・インディケータ157、調節特権インディケータ57、R/Wインディケータ58、および信頼インディケータ59を決定する。例えば、バス・マスタによるペリフェラルへのアクセスを必要とするバス・アクセスが示される場合もある(このバス・アクセスは、リードまたはライト・バス・アクセスのいずれかとすることができる)。バス・アクセスの少なくとも一部の間、バス・マスタ識別子36を供給する。バス・マスタ識別子36は、バス・アクセスに対して、マスタ特権レジスタ30からの特権情報およびマスタ・エンディアンネス情報(要求元バス・マスタに対応する)を選択するために用いられる。次いで、調節エンディアンネス・インディケータ157、調節特権インディケータ157、R/Wインディケータ158、および信頼インディケータ59の値を決定することができる。
例えば、バス・マスタ14が現在のバス・アクセスを行っている一実施形態では、特権インディケータ37および特権レベル修正フィールド70によって示される現在の特権レベルに基づいて、調節特権インディケータ57を決定する。特権レベル修正フィールド70が、バス・マスタ14上において特定の特権レベルを強制すべきことを示す場合、調節特権インディケータ57の値を、この強制特権レベルを示すように設定する。特権レベル修正フィールド70が、バス・マスタ14上で特権を強制すべきでないことを示す場合、調節特権インディケータ57の値を、特権インディケータ37と同じ特権レベルを示すように設定することができる。R/Wインディケータ58は、現在のバス・アクセスがリードまたはライト・アクセスのどちらであるかを示す制御38から決定することができる。信頼インディケータ59は、現在のバス・アクセスがリードまたはライト・アクセスのどちらか(制御38から決定することができる)、ならびに信頼属性フィールド71および72に基づいて決定される。例えば、現在のバス・アクセスがバス・マスタ14によるライト・アクセスである場合、信頼属性フィールド71が示す信頼レベルを示すように信頼インディケータ59を設定する。同様に、現在のバス・アクセスがバス・マスタ14によるリード・アクセスである場合、信頼属性フィールド72が示す信頼レベルを示すように信頼インディケータを設定する。調節エンディアンネス・インディケータ157は、エンディアン・インディケータ137(ある場合)およびマスタ・エンディアンネス制御部132に基づいて決定される。例えば、マスタ・エンディアンネス制御部132が、バス・マスタ14のために特定のエンディアン・モードを強制すべきことを示す場合、調節エンディアンネス・インディケータ157をそれに応じて設定する。マスタ・エンディアンネス制御部132が、エンディアン・インディケータ137が示すエンディアン・モードを逆転させるべきことを示す場合、調節エンディアンネス・インディケータ157をそれに応じて設定する。
調節特権インディケータ57、R/Wインディケータ58、および信頼インディケータ59は、ペリフェラル・アクセス制御レジスタ54との組み合わせで、ペリフェラル保護決定回路51によって用いられ、ペリフェラルに対するアクセスを許可するか否か、または、場合によっては、アクセス・エラーを生成し、アクセス・エラー信号60を通じて伝達し、バス・マスタ属性決定回路50および/またはアクセス要求がエラーの原因となったバス・マスタに戻す。アクセスが許可された場合、信号ブリッジ回路52が調節エンディアン・インディケータ157およびペリフェラル・エンディアンネス制御レジスタ154を用いて、許可されたペリフェラルへのアクセスを、しかるべくエンディアンネスを用いて実行する。ペリフェラル22、24にアクセスするための回路48内部におけるペリフェラル保護決定回路51および信号ブリッジ回路52について説明する前に、レジスタ54および154の内容について、図4、図7および図8を参照しながら説明する。
図4は、ペリフェラル・アクセス制御レジスタ54の一実施形態を示し、図示の実施形態では、ペリフェラル・アクセス制御レジスタ54は、ペリフェラル22に対応するペリフェラル・アクセス制御レジスタ55、およびペリフェラル24に対応するペリフェラル・アクセス制御レジスタ56を含む。したがって、図示の実施形態では、ペリフェラル・アクセス制御レジスタ54は、ペリフェラル毎に1つずつのペリフェラル・アクセス制御レジスタを含む。しかしながら、他の実施形態では、全てのペリフェラルに必要な情報を格納するために単一のレジスタを用いてもよく、あるいは、いずれの数および組み合わせのレジスタを用いてもよい。ペリフェラル・アクセス制御レジスタ55について、ここで一例として説明する。しかしながら、ペリフェラル・アクセス制御レジスタ55についての説明は、ペリフェラル・アクセス制御レジスタ56のような、ペリフェラル・アクセス制御レジスタ54内にある全てのペリフェラル・アクセス制御レジスタにも該当する。ペリフェラル・アクセス制御レジスタ55は、ペリフェラル22に対するペリフェラル信頼属性フィールド80、ペリフェラル22に対するライト保護フィールド81、およびペリフェラル22に対する特権保護フィールド82を含む。
ペリフェラル22に対するペリフェラル信頼属性フィールド80は、ペリフェラル22が不信マスタからのアクセス(リードまたはライト)を許可するか否かを示す。例えば、現在のバス・アクセスを実行しているバス・マスタが不信であることが、現在のバス・マスタに対応する信頼属性フィールド(例えば、フィールド71および72)によって示された場合、バス・アクセスが許可されるのは、フィールド80が不信マスタからのアクセスを許可することを示すときだけである。ペリフェラル22に対するライト保護フィールド81は、ペリフェラル22がマスタによるそれ自体へのライト・アクセスを許可するか否かを示す。例えば、現在のバス・マスタが実行している現在のバス・アクセス(バス・マスタの信頼のレベルに関わらず)がペリフェラル22へのライト・アクセスである場合、フィールド81が、ペリフェラル22がライト保護されていることを示すと、ライト・アクセスを実行することができない。ペリフェラル22に対する特権保護フィールド82は、ペリフェラル22が現在のバス・アクセスに対してある特権レベルを要求するか否かを示す。したがって、特権保護フィールド82は、ペリフェラル22へのアクセスに対して必要とされる最低限の特権レベルを示すことができ、任意の数のビットを含むことができる。一実施形態では、スーパーバイザ特権が必要か否かを示すためには、1つのビットを用いればよい。あるいは、それ以上のビットを用いて、Nレベルの特権(N>2)の内最低のものが必要であることを示してもよい。
尚、ペリフェラル・アクセス制御レジスタ55には、図示したフィールドよりも多いまたは少ない、あるいは異なるフィールドが含まれてもよい。例えば、ペリフェラル信頼属性フィールド80のような別個のペリフェラル信頼属性フィールドを用いて、不信マスタからのリード・アクセスを許可するか否か、および不信マスタからのライト・アクセスを許可するか否かを示すことができる。また、リードまたはライト・アクセスを許可するために、ペリフェラル22に必要なN段階の可能な信頼レベル(N>2)のうち最低レベルを示すのに、追加のビットまたはフィールドを用いてもよい。
尚、フィールド80〜82について先に行った説明は、ペリフェラル・アクセス制御レジスタ56のフィールド84〜86にも該当する。即ち、ペリフェラル24に対するペリフェラル信頼属性フィールド84は、ペリフェラル24が不信マスタからのアクセス(リードまたはライトのいずれか)を許可するか否かを示す。ペリフェラル24に対するライト保護フィールド85は、ペリフェラル24がマスタによるそれ自体へのライト・アクセスを許可するか否かを示す。ペリフェラル24に対する特権保護フィールド86は、ペリフェラル24が現在のバス・アクセスに対してある特権レベルを要求するか否かを示す。
図7は、ペリフェラル・エンディアンネス制御レジスタ154の一実施形態を示し、図示の実施形態では、ペリフェラル・エンディアンネス制御レジスタ154は、ペリフェラル22に対応するペリフェラル・エンディアンネス制御レジスタ155と、ペリフェラル24に対応するペリフェラル・エンディアンネス制御レジスタ156とを含む。したがって、図2に示す実施形態では、ペリフェラル・エンディアンネス制御レジスタ154は、ペリフェラル毎に1つずつのペリフェラル・エンディアンネス制御レジスタを含む。しかしながら、他の実施形態では、全てのペリフェラルに必要な情報を格納するために単一のレジスタを用いてもよく、あるいは、任意の数および組み合わせのレジスタを用いてもよい。他の実施形態では、ペリフェラルの部分集合のみにペリフェラル・エンディアンネス制御レジスタを設けてもよい。ここで、一例として、ペリフェラル・エンディアンネス制御レジスタ155について説明する。しかしながら、ペリフェラル・エンディアンネス制御レジスタ155についての説明は、ペリフェラル・エンディアンネス制御レジスタ156のような、ペリフェラル・エンディアンネス制御レジスタ154における全てのペリフェラル・エンディアンネス制御レジスタにも該当する。
ペリフェラル・エンディアンネス制御レジスタ155は、バス・マスタ14ペリフェラル・エンディアンネス制御フィールド300、およびバス・マスタ15ペリフェラル・エンディアンネス制御フィールド302を含む。したがって、図示の実施形態では、ペリフェラル・エンディアンネス制御レジスタ155は、対応するペリフェラルにアクセスするバス・マスタ毎に、1つずつのペリフェラル・エンディアンネス制御フィールドを含む(ここで、この実施形態では、ペリフェラル・エンディアンネス制御レジスタ155はペリフェラル22に対応する)。一実施形態では、ペリフェラル・エンディアンネス制御レジスタ154は、フィールド300および302の値に応じて、マスタ・エンディアンネス制御部132および134によって提供されるエンディアンネス情報を選択的に無効にする(以下で図8を参照しながら説明する)。即ち、一実施形態では、アクセスされている現在のペリフェラルに対応するペリフェラル・エンディアンネス制御レジスタが提供するエンディアンネス情報は、調節エンディアン・インディケータ157が提供するエンディアンネス情報(直接アクセス元マスタによって、例えば、エンディアン・インディケータ137を通じて提供されている場合があり、あるいは要求元マスタに対応するレジスタ30のマスタ・エンディアンネス制御部を用いてバス・マスタ属性決定回路50によって決定されている場合もある)に優先することができる。この実施形態では、マスタ・エンディアンネス制御部132および134は、選択的に無効にすることができるデフォルトのエンディアンネス情報と見なすとよい。
再度図7を参照すると、レジスタ155内の各フィールド300および302は、対応するマスタにエンディアンネス情報を提供する。例えば、図8は、エンディアンネス情報を提供するために、フィールド300および302の各々において用いることができる設定値の例を示す。バス・マスタ114ペリフェラル・エンディアンネス制御フィールド300を一例として用いて、図8について説明する。しかしながら、この説明は、フィールド302のような、レジスタ155および156内にある他のフィールドにも対応する。したがって、図8の設定値の例は、バス・マスタ14のエンディアンネスを決定するためにも用いることができる。図8を参照すると、フィールド300が「00」に設定されている場合、バス・マスタ14からのアクセスは、実際のプロセッサ・モードに関わらず、強制されない。即ち、この場合、バス・マスタ14ペリフェラル・エンディアンネス制御フィールド300は、調節エンディアン・インディケータ157に優先しない。しかしながら、フィールド300が「00」以外の何らかの値に設定されている場合、フィールド300が提供するエンディアンネス情報は、マスタ・エンディアンネス制御部132が提供するエンディアンネス情報(図6を参照して先に説明したように、調節エンディアン・インディケータ157を決定するために用いられる)に優先する。
例えば、フィールド300が「10」に設定されている場合、バス・マスタ14からのアクセスは、バス・マスタ14の実際のエンディアン・モードに関わらず、リトル・エンディアン・モードに強制される。この場合、リトル・エンディアン・モードは、調節エンディアン・インディケータ157が示すエンディアン・モードに関わらず、信号ブリッジ回路52によって用いられ、恐らくはマスタ・エンディアンネス制御部132が供給したエンディアンネス制御部に優先する。フィールド300が「11」に設定されている場合、バス・マスタ14からのアクセスは、バス・マスタ14の実際のエンディアン・モードに関わらず、ビッグ・エンディアン・モードに強制される。この場合、ビッグ・エンディアン・モードは、調節エンディアン・インディケータ157が示すエンディアン・モードに関わらず、信号ブリッジ回路52によって用いられる。フィールド300が「01」に設定されている場合、バス・マスタ14からのアクセスは、調節エンディアン・インディケータ157が示すモードと逆転する。例えば、調節エンディアン・インディケータ157が、バス・マスタ14がビッグ・エンディアン・モードで動作していることを示す場合、フィールド300が「01」に設定されていると、リトル・エンディアン・モードがブリッジ回路52によって用いられる。他の実施形態では、「01」の設定は、単に逆のエンディアンではなく、異なるエンディアンが用いられることを示すことができる。
尚、図8およびフィールド300に関して先に行った説明は、フィールド302にも該当する。また、他の実施形態では、エンディアンネス情報を提供するために用いるビットは、前述より多くても少なくてもよく、あるいは他の設定値を用いてもよい。例えば、他の実施形態では、バス・アクセスが命令アクセスまたはデータ・アクセスのときに、代わりの値の組を用いてもよい。この他の実施形態では、種類インディケータがデータ情報または命令情報のどちらが現在のアクセス中にアクセスされていることを示すかに基づいて、マスタ・エンディアンネス制御部に異なる値の組を適用することができる。また、他の実施形態では、データまたは情報アクセスのサイズに基づいて、異なる値の組を用いることもできる。例えば、現在のアクセスが16ビット・サイズに対応する場合、ある値の組を用いることができ、現在のアクセスが32ビット・サイズに対応する場合、異なる値の組を用いることができる。したがって、フィールド300および302の各々は、図8に示す単一の2ビット・フィールドではなく、多数のフィールドを含んでいてもよく、これらを用いて、要求元マスタ、アクセス種類、アクセス・サイズ、またはそのあらゆる組み合わせに基づいて、エンディアンネスを制御することができる。
尚、マスタ・エンディアンネス制御部132および134の使用により、エンディアン・インディケータ137のような、要求元マスタからのエンディアン・インディケータが不要となる。即ち、調節エンディアン・インディケータ157は、エンディアン・インディケータ137を用いてもまた用いなくても、種々の異なる方法で設定することができる。また、他の実施形態では、マスタ・エンディアンネス制御部132および134が存在しなくてもよい。この他の実施形態では、特定のアクセスに対するエンディアンネスを、ペリフェラル・エンディアンネス制御レジスタ154によって制御する。あるいは、調節エンディアン・インディケータ157もなくてもよい。即ち、マスタ・エンディアンネス制御部132および134、エンディアン・インディケータ137、ならびに調節エンディアン・インディケータ157の各々は、データ処理システム10内にあってもなくてもよい。したがって、ペリフェラル・エンディアンネス制御レジスタは、現在のマスタのエンディアンネスについて何の知識も有していなくてもよい。これらの実施形態では、ペリフェラルへのアクセスのエンディアンネスは、ペリフェラル・エンディアンネス制御レジスタ内にあるエンディアンネス情報に基づいて決定することができる。他の実施形態では、ペリフェラルの部分集合にのみ、ペリフェラル・エンディアンネス制御レジスタを備えればよい。この場合、ペリフェラル・エンディアンネス制御レジスタ154が備えられていないペリフェラルは、代わりに、マスタ・エンディアンネス制御部132および134を拠り所とすればよく、信号ブリッジ回路52は、これらのペリフェラルへのアクセスに、調節エンディアン・インディケータ157の値を直接用いる。
再度図2を参照すると、ペリフェラル22、24にアクセスするための回路48はペリフェラル保護決定回路51を含む。ペリフェラル保護決定回路51は、調節特権インディケータ57、R/Wインディケータ58、および信頼インディケータ59を受信し、アクセス・エラー信号60をバス・マスタ属性決定回路50に供給する(あるいは、または加えて、アクセス・エラー信号60は、要求がエラーの原因となったバス・マスタに、システム・バス16を通じて返信してもよい)。したがって、回路51は、インディケータ57〜59およびペリフェラル・アクセス制御レジスタ54に格納されている情報を用いて、前述したように、要求されたペリフェラルへのバス・アクセスを許可するか否かを判定する。例えば、バス・マスタ14がペリフェラル22へのライトを実行するためのバス・アクセスを開始した場合、回路51はバス・アクセスを許可するか否かを判定する。例えば、回路51は、調節特権インディケータ57および特権保護フィールド82を用いて、ペリフェラル22がアクセスのために特定の特権レベル(フィールド82によって示される)を要求するか否か、そしてバス・マスタ14が要求される特権レベル(調節特権インディケータ57によって示される)を有するか否かを判定する。また、回路51は、R/Wインディケータ58およびライト保護フィールド81を用いて、現在のバス・アクセスがライト・アクセスか否かを判定し、そうである場合、ペリフェラル22へのライト・アクセスが許可されるか否かを判定する。また、回路51は、信頼インディケータ59およびペリフェラル信頼属性フィールド80を用いて、バス・マスタ14が、ペリフェラル22が要求する(フィールド80によって示される)、しかるべき信頼レベル(信頼インディケータ59によって示される)を有するか否かを判定する。したがって、回路51は、前述の情報全てを用いて、バス・マスタ14がペリフェラル22に対して要求したバス・アクセスが許可されるか否か決定することができる。即ち、バス・マスタ14は、しかるべき特権レベルおよびしかるべき信頼レベルを有する必要があり、バス・アクセスがライトである場合、ペリフェラル22は、許可されるバス・アクセスに対して、ライト保護されていてはならない。
アクセスが許可された場合(要求元バス・マスタが、要求している特定のペリフェラルに対してしかるべきアクセス許可を有することを意味する)、動作は継続し(即ち、バス・アクセスが継続する)、動作を完了するために必要なバス・プロトコルが供給される。例えば、信号ブリッジ回路52は、該当するあらゆるデータ、アドレス、および制御信号を、制御38、データ40、およびアドレス42から導出したアクセス先ペリフェラルに供給する。同様に、信号ブリッジ回路52は、必要なあらゆる制御、データ、およびアドレス情報を、制御38、データ40、およびアドレス42を通じて、システム・バス16に戻す。また、制御38を通じて、ステータス情報を戻してもよい。信号ブリッジ回路52は、調節エンディアン・インディケータ157およびペリフェラル・エンディアンネス制御レジスタ154に基づいて、アクセス動作を完了する際に用いる、しかるべきエンディアン・モードを決定する。したがって、前述のように、アクセスされているペリフェラルに対応するペリフェラル・エンディアン制御レジスタ、および要求元マスタに対応する当該レジスタ内のフィールドが、信号ブリッジ回路52によって、エンディアン・モードを決定するために、即ち、現在のアクセスの間に転送する情報のエンディアンネスを決定するために用いられる。例えば、前述のフィールドが「00」を示す場合、調節エンディアン・インディケータ157が示すエンディアン・モードが、信号ブリッジ回路52によって、アクセスを完了するために用いられる。このフィールドが「00」以外の値を示す場合、信号ブリッジ回路52は、そのフィールドが示すエンディアン・モードにしたがって動作する。このように、ペリフェラル・エンディアンネス制御レジスタ154内のエンディアンネス制御情報を用いて、現在のアクセスの間に転送される情報のエンディアンネス順序に作用することができる。
しかしながら、ペリフェラル保護決定回路51によってアクセスが許可されない場合(要求元バス・マスタが、要求されている特定のペリフェラルに対してしかるべきアクセス許可を有していないことを意味する)、そのペリフェラルにアクセスする前に、アクセスが終了する。また、アクセス・エラー信号60を用いて、要求元バス・マスタがペリフェラルへのアクセスを拒否されたことを示してもよい。また、バス・エラーをシステム・バス16を通じて要求元バス・マスタに供給してもよい。バス・エラーは、マスタ許可決定回路50によって、制御信号38の1つとして供給することができる。これに応答して、要求元バス・マスタは、バス・エラーから回復するために、しかるべき例外処理を実行するとよい。あるいは、アクセスが許可されない場合、データ処理システム10の全てまたは一部のリセットを実行してもよい。
先に論じたように、信頼バス・マスタは、必要に応じて、レジスタ30および54において許可を動的に変更することができる。一実施形態では、信頼バス・マスタは、ソフトウェア・アプリケーションの起動に応答して、許可を変更することができる。これに応答して、信頼バス・マスタは、レジスタ30および54を更新して、不信バス・マスタ・アクセスを必要なペリフェラルに供給し、そのアプリケーションを完了させる。アプリケーションが完了すると、アプリケーション毎にのみ許可を付与するように、信頼バス・マスタは以前に付与した許可を取り消すことができる。
また、先に説明したように、ペリフェラル・エンディアンネス制御レジスタおよびマスタ・エンディアン制御フィールドは、アクセス毎に、個々のアクセスのエンディアン・モードの動的且つ柔軟な制御を可能にするために用いることができる。ペリフェラル・エンディアンネス制御レジスタ(各ペリフェラルに付随する)の使用は、必要に応じて、要求元マスタが示すデフォルト・エンディアン・モードを無効にするために用いることができる。これは、マスタが通常動作するモードとは異なるエンディアン・モードを用いてソフトウェアを処理することを可能にし、更に異なるシステムから以前のブリッジ構成をエミュレートすることを可能とし、こうして以前の構成のために書かれたソフトウェアを再利用することが可能となる。
他の実施形態では、ペリフェラル22または24をメモリ・ユニットとするとよく、その場合、ペリフェラル・レジスタ21または25はメモリ位置とすればよい。この実施形態では、レジスタ30および54は、メモリ・ユニットの特定のメモリ位置または一部に対する各バス・マスタに対応するアクセス許可を規定することができる。同様に、この実施形態では、レジスタ154は各バス・マスタに対応するエンディアンネス情報を、メモリ・ユニットの特定のメモリ位置または一部に提供することができる。
尚、他の実施形態では、レジスタ30に格納されている情報を対応する各マスタ内に配置することができ、レジスタ54および154に格納されている情報を、バス・インターフェース18ではなく、各ペリフェラル内に配置することができる。更に、バス・マスタ許可決定回路も、マスタ内またはマスタに隣接して配置してもよく、ペリフェラル保護決定回路および信号ブリッジ回路をペリフェラル内またはペリフェラルに隣接して配置し、許可およびエンディアン・モード(ペリフェラル・エンディアンネス制御レジスタ内の対応するフィールドによってそのように示されるのであれば)をペリフェラルが決定するようにすることができる。したがって、他の実施形態では、データ処理システム10内におけるいずれの場所においても、信頼バス・マスタまたはその他のバス・マスタによってアクセス可能なレジスタ30、54、および154の情報を格納することができる。また、データ処理システム10は、許可およびエンディアン情報を更新可能であれば、任意の数の信頼バス・マスタまたはその他のバス・マスタを含むことができ、単一のセキュア・バス・マスタに限定されるのではない。
図5は、本発明の他の実施形態によるデータ処理システム100を示す。データ処理システム100は、バス・マスタ101、バス・マスタ102、バス・マスタ属性決定回路、マスタ特権レジスタ、およびマスタ・エンディアンネス制御部104、バス・マスタ属性決定回路、マスタ特権レジスタ、およびマスタ・エンディアンネス制御部110、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、およびペリフェラル・エンディアンネス制御レジスタ106、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、およびペリフェラル・エンディアンネス制御レジスタ112、ならびにペリフェラル108および114を含む。
バス・マスタ101は、特権インディケータ116、および任意に、エンディアン・インディケータ216を、バス・マスタ属性決定回路、マスタ特権レジスタ、およびマスタ・エンディアンネス制御部104に供給し、調節特権インディケータ118を、システム・バス103を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ106および112、そしてペリフェラル108および114に供給し、信頼インディケータ120を、システム・バス103を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ106および112に供給し、更に調節エンディアン・インディケータ220を、システム・バス103を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ106および112に供給する。また、バス・マスタ101は、その他の情報122を、システム・バス103を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ106および112、そしてペリフェラル108および114に供給する。
バス・マスタ102は、特権インディケータ130、および任意に、エンディアン・インディケータ230を、マスタ属性決定回路、マスタ特権レジスタ、およびマスタ・エンディアンネス制御部110に供給し、調節特権インディケータ126を、システム・バス103を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ106および112、そしてペリフェラル108および114に供給し、信頼インディケータ128を、システム・バス103を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、おならびにペリフェラル・エンディアンネス制御レジスタ106および112に供給し、調節エンディアン・インディケータ226を、システム・バス103を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ106および112に供給する。また、バス・マスタ102は、その他の情報124を、システム・バス103を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ106および112、そしてペリフェラル108および114に供給する。
動作時、データ処理システム100は、データ処理システム10と同様に動作する。例えば、マスタ101および102は、マスタ14および15と同様でよく、ペリフェラル108および114は、ペリフェラル22および24と同様でよい。また、データ処理システム100は、いずれの数のマスタおよびいずれの数のペリフェラルでも含むことができる。しかしながら、データ処理システム100では、バス・インターフェース18の一部が異なる場所に分散されている。また、データ処理システム100では、信頼インディケータ120および128が、システム・バス103を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ106および112に供給される。また、特権インディケータ116および130が、選択的に、バス・マスタ属性決定回路、マスタ特権レジスタ、ならびにマスタ・エンディアンネス制御部104および110によってそれぞれ修正され、調節特権インディケータ118および126として、システム・バス103を通じて、ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、ならびにペリフェラル・エンディアンネス制御レジスタ106および112そしてペリフェラル108および114に供給される。調節エンディアン・インディケータ220および226が、バス・マスタ属性決定回路、マスタ特権レジスタ、ならびにマスタ・エンディアンネス制御部104および110によって、エンディアン・インディケータ216および230(ある場合)、ならびにマスタ・エンディアンネス制御部に基づいて発生する。尚、バス・マスタ属性決定回路、マスタ特権レジスタ、ならびにマスタ・エンディアンネス制御部104および110の各々は、図2から図4を参照しながら先に説明したバス・マスタ属性決定回路50およびマスタ特権レジスタ30と同様に動作する。例えば、マスタ特権レジスタ(マスタ・エンディアンネス制御フィールドを含む)およびペリフェラル・アクセス制御レジスタに格納されている情報は、バス・アクセスを許可するか否かを判定するため、およびエンディアン・モードを決定するために、同様に用いられる。他の情報122および124は、制御38、データ40、アドレス42、およびバス・マスタ識別子36と同様の情報を含むことができる。したがって、先に図1から図4において説明したのと同じ信号を用いることができる。しかしながら、信号を発生する回路、または信号自体の一部は、異なる場所に配置したり、あるいは異なる構造としてもよい。
尚、図5に示す実施形態では、各バス・マスタ101および102は、対応するバス・マスタ属性決定回路、マスタ特権レジスタ、およびマスタ・エンディアンネス制御部を有する。したがって、決定回路、マスタ特権レジスタ、およびマスタ・エンディアンネス制御部は、各マスタに分散されている。例えば、各決定回路、マスタ特権レジスタ、およびマスタ・エンディアンネス制御部は、その対応するバス・マスタに対応する、特権レベルおよび信頼属性フィールド(フィールド70〜72および74〜76等)、ならびにマスタ・エンディアンネス制御フィールド(フィールド132および134等)を含むことができる。回路およびマスタ特権レジスタ(マスタ・エンディアンネス制御フィールドを含む)に格納されている情報は、各マスタ内に配置することができ、マスタとシステム・バスとの間で通信することができる。また、ペリフェラル保護決定回路51、ペリフェラル・アクセス・レジスタ54、およびペリフェラル・エンディアンネス制御レジスタ154も各ペリフェラルに分散することができる。例えば、図5に示すように、各ペリフェラル108および114は、対応するペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、およびペリフェラル・エンディアンネス制御レジスタを有し、各ペリフェラル保護決定回路、ペリフェラル・アクセス制御レジスタ、およびペリフェラル・エンディアンネス制御レジスタは、その対応するペリフェラルに対応するアクセス制御フィールド(フィールド80〜82および84〜86等)、およびペリフェラル・エンディアンネス制御フィールド(フィールド300および302等)を含むことができる。また、ペリフェラル108および116は、データ処理システム10を参照して先に説明したように、いずれの種類のペリフェラル、メモリ・デバイス、またはバス・スレーブでもよく、したがって、特定の機能にその範囲が限定されるのではない。更に、選択したエンディアンネス・モードを利用する信号ブリッジ回路52の部分も各ペリフェラルに分散されてもよい。したがって、分散した信号ブリッジ回路は、対応するペリフェラルの調整エンディアン・インディケータおよびペリフェラル・エンディアンネス制御レジスタに基づいて、しかるべきエンディアン・モードを用いて、要求されたアクセスを実行することができる。あるいは、信号ブリッジ回路52の一部を各ペリフェラルに分散し、他の部分を各バス・マスタに分散してもよい。尚、エンディアン・インディケータ216および230、調節エンディアン・インディケータ220および226、マスタ・エンディアンネス制御部、ならびにペリフェラル・エンディアンネス制御レジスタは、図1から図8を参照しながら先に説明したように動作する。
図1および図2は、双方向導体の使用を示したが、単一方向導体の組み合わせを代わりに用いてもよいことは言うまでもない。あるいは、双方向および単一方向導体の組み合わせを用いてもよい。また、信号は、単一導体を通じてシリアルに、または複数の導体を通じてパラレルに転送してもよい。あるいは、信号は、単一または複数の導体上に時間多重化してもよい。また、双方向導体として示した信号を、単一導体と置き換えてもよく、単一方向導体を双方向導体と置き換えてもよい。
前述の明細書において、具体的な実施形態を参照しながら本発明について説明した。しかしながら、添付した特許請求の範囲に明記した本発明の主旨および範囲から逸脱することなく、種々の修正や変更が可能であることは、当業者であれば理解し得る。例えば、データ処理システム10および100は、単一チップまたは集積回路(IC)、あるいはチップまたはICの組み合わせの上に配置可能であれば、いずれの種類のデータ処理システムでも可能であることは言うまでもない。また、データ処理システム10および100は、共有ペリフェラルを有するネットワーク(ネットワーク・システム・バスによって接続された)上に位置する種々のマスタおよびスレーブにも適用可能である。したがって、したがって、明細書および図面は、限定的な意味ではなく、例示的な意味で解釈するものとし、かかる修正は全て本発明の範囲内に含まれることを意図する。
本発明の具体的な実施形態に関して、効果、その他の利点、および問題に対する解決手段について記載した。しかしながら、効果、利点、問題に対する解法、およびかかる効果、利点、または解法をも生じさせる、または一層顕著にすることができるあらゆる要素(複数の要素)は、いずれのまたは全ての請求項の重要な、必要な、または本質的な特徴または要素として解釈しないこととする。ここで用いる場合、「備える」、「備えている」、またはそのいずれの変形も、非排他的包含を含むことを意図しており、要素のリストを備えているプロセス、方法、物品、または装置が、これらの要素のみを含むのではなく、明示的にリストされていない、あるいはかかるプロセス、方法、物品、または装置に固有のその他の要素を含み得るものとする。
本発明の一実施形態によるデータ処理システムをブロック図形式で示す。 本発明の一実施形態による、図1のバス・インターフェースの一部を、ブロック図形式で示す。 本発明の一実施形態によるマスタ特権レジスタおよびマスタ・エンディアン制御フィールドを、ブロック図形式で示す。 本発明の一実施形態によるペリフェラル・アクセス制御レジスタを、ブロック図形式で示す。 本発明の他の実施形態によるデータ処理システムを、ブロック図形式で示す。 本発明の一実施形態による、図3のマスタ・エンディアンネス制御フィールドについての説明を示す。 本発明の一実施形態による、図2のペリフェラル・エンディアンネス制御レジスタについての説明を示す。 本発明の一実施形態による図7のペリフェラル・エンディアン制御レジスタについての説明を示す。 ビッグ・エンディアン・フォーマットでデータを格納するための従来技術の慣例を示す。 リトル・エンディアン・フォーマットでデータを格納するための従来技術の慣例を示す。

Claims (14)

  1. バス・マスタとペリフェラルとを備えるシステムにおいてエンディアンネスを制御する方法であって、
    前記ペリフェラルによって、前記バス・マスタから、前記ペリフェラルにアクセスする要求を受信することであって、前記バス・マスタに関連する実際のエンディアン・モードを示す前記要求を受信すること、
    前記ペリフェラルが、ペリフェラル・エンディアンネス制御レジスタにアクセスすること、
    前記ペリフェラル・エンディアンネス制御レジスタが第1の値を有するとき、前記バス・マスタに関連する前記実際のエンディアン・モードに関わらず、前記ペリフェラルが、リトル・エンディアン・モードでのデータへのアクセスを許可すること、
    前記ペリフェラル・エンディアンネス制御レジスタが第2の値を有するとき、前記バス・マスタに関連する前記実際のエンディアン・モードに関わらず、前記ペリフェラルが、ビッグ・エンディアン・モードでのデータへのアクセスを許可すること、
    を備える方法。
  2. 請求項1記載の方法は更に、
    前記ペリフェラル・エンディアンネス制御レジスタが第3の値を有するとき、前記ペリフェラルが、前記バス・マスタに関連する前記実際のエンディアン・モードとは逆のモードでのデータへのアクセスを許可することを備える、方法。
  3. 請求項1記載の方法は更に、
    前記ペリフェラル・エンディアンネス制御レジスタが第4の値を有するとき、前記ペリフェラルが、前記バス・マスタに関連する前記実際のエンディアン・モードでのデータへのアクセスを許可することを備える、方法。
  4. 請求項1記載の方法は更に、
    制御回路が、前記バス・マスタからの前記要求を受け取ること、
    前記制御回路が、バス・マスタ・エンディアンネス制御レジスタにアクセスすること、
    を備える、方法。
  5. 請求項記載の方法は更に、
    前記バス・マスタ・エンディアンネス制御レジスタが前記第1の値を有するとき、前記制御回路が、前記バス・マスタに関連する前記実際のエンディアン・モードを変更することを備える、方法。
  6. 請求項記載の方法において、
    前記バス・マスタに関連する前記実際のエンディアン・モードを変更することは、前記バス・マスタに関連する前記実際のエンディアン・モードを逆転させることを含む、方法。
  7. 請求項1記載の方法において、
    前記ペリフェラルは、万能非同期受信送信機(UART)、リアル・タイム・クロック(RTC)、またはキーボード・コントローラを含む、方法。
  8. 請求項1記載の方法において、
    前記実際のエンディアン・モードは、前記データのビット順序およびバイト順序のうちの少なくとも1つに関係する、方法。
  9. バス・マスタとペリフェラルとを備えるシステムにおいてエンディアンネスを制御する方法であって、
    前記ペリフェラルによって、前記バス・マスタから、前記ペリフェラルにアクセスする要求を受信することであって、前記バス・マスタに関連する実際のエンディアン・モードを示す前記要求を受信すること、
    前記ペリフェラルが、ペリフェラル・エンディアンネス制御レジスタにアクセスすること、
    前記ペリフェラル・エンディアンネス制御レジスタが第1の値を有するとき、前記バス・マスタに関連する前記実際のエンディアン・モードに関わらず、前記ペリフェラルが、リトル・エンディアン・モードでのデータへのアクセスを許可すること、
    前記ペリフェラル・エンディアンネス制御レジスタが第2の値を有するとき、前記バス・マスタに関連する前記実際のエンディアン・モードに関わらず、前記ペリフェラルが、ビッグ・エンディアン・モードでのデータへのアクセスを許可すること、
    前記ペリフェラル・エンディアンネス制御レジスタが第3の値を有するとき、前記ペリフェラルが、前記バス・マスタに関連する前記実際のエンディアン・モードとは逆のモードでのデータへのアクセスを許可すること、
    前記ペリフェラル・エンディアンネス制御レジスタが第4の値を有するとき、前記ペリフェラルが、前記バス・マスタに関連する前記実際のエンディアン・モードでのデータへのアクセスを許可すること、
    を備える方法。
  10. 請求項9記載の方法は更に、
    制御回路が、前記バス・マスタからの前記要求を受け取ること、
    前記制御回路が、バス・マスタ・エンディアンネス制御レジスタにアクセスすること、
    を備える、方法。
  11. 請求項10記載の方法は更に、
    前記バス・マスタ・エンディアンネス制御レジスタが前記第1の値を有するとき、前記制御回路が、前記バス・マスタに関連する前記実際のエンディアン・モードを変更することを備える、方法。
  12. 請求項11記載の方法において、
    前記バス・マスタに関連する前記実際のエンディアン・モードを変更することは、前記バス・マスタに関連する前記実際のエンディアン・モードを逆転させることを含む、方法。
  13. 請求項記載の方法において、
    前記ペリフェラルは、万能非同期受信送信機(UART)、リアル・タイム・クロック(RTC)、またはキーボード・コントローラを含む、方法。
  14. 請求項記載の方法において、
    前記実際のエンディアン・モードは、前記データのビット順序およびバイト順序のうちの少なくとも1つに関係する、方法。
JP2007515074A 2004-05-26 2005-04-13 データ処理システムにおけるエンディアンネス制御方法および装置 Expired - Fee Related JP4602403B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/857,208 US7404019B2 (en) 2003-03-07 2004-05-26 Method and apparatus for endianness control in a data processing system
PCT/US2005/012389 WO2005119961A2 (en) 2004-05-26 2005-04-13 Method and apparatus for endianness control in a data processing system

Publications (2)

Publication Number Publication Date
JP2008500635A JP2008500635A (ja) 2008-01-10
JP4602403B2 true JP4602403B2 (ja) 2010-12-22

Family

ID=35463628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007515074A Expired - Fee Related JP4602403B2 (ja) 2004-05-26 2005-04-13 データ処理システムにおけるエンディアンネス制御方法および装置

Country Status (6)

Country Link
US (1) US7404019B2 (ja)
EP (1) EP1757004A4 (ja)
JP (1) JP4602403B2 (ja)
CN (1) CN100565429C (ja)
TW (1) TWI379570B (ja)
WO (1) WO2005119961A2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1807769A1 (en) * 2004-09-10 2007-07-18 Freescale Semiconductor, Inc. Apparatus and method for multiple endian mode bus matching
JP2007148622A (ja) * 2005-11-25 2007-06-14 Matsushita Electric Ind Co Ltd インターフェース設定方法
US8171545B1 (en) * 2007-02-14 2012-05-01 Symantec Corporation Process profiling for behavioral anomaly detection
US7827326B2 (en) * 2007-11-26 2010-11-02 Alcatel-Lucent Usa Inc. Method and apparatus for delegation of secure operating mode access privilege from processor to peripheral
JP4939382B2 (ja) * 2007-11-28 2012-05-23 ルネサスエレクトロニクス株式会社 情報処理装置及びそのプログラム実行制御方法
JP4335940B2 (ja) 2007-11-29 2009-09-30 Necエレクトロニクス株式会社 データ処理装置及びデータ処理装置における周辺装置保護方法
JP4514066B2 (ja) * 2008-04-28 2010-07-28 ルネサスエレクトロニクス株式会社 データ処理装置及びデータ処理装置におけるアクセス制御方法
WO2010029794A1 (ja) * 2008-09-12 2010-03-18 株式会社ルネサステクノロジ データ処理装置及び半導体集積回路装置
US9348784B2 (en) * 2008-12-01 2016-05-24 Micron Technology, Inc. Systems and methods for managing endian mode of a device
US20110082999A1 (en) * 2009-10-07 2011-04-07 Andes Technology Corporation Data processing engine with integrated data endianness control mechanism
CN102402494B (zh) * 2010-09-15 2014-11-05 中兴通讯股份有限公司 Xgmii接口数据处理方法及装置以及芯片间双向握手的方法
US8972821B2 (en) 2010-12-23 2015-03-03 Texas Instruments Incorporated Encode and multiplex, register, and decode and error correction circuitry
EP2732397B1 (en) * 2011-07-12 2020-02-26 Hewlett-Packard Development Company, L.P. Computing device including a port and a guest domain
KR102068342B1 (ko) * 2013-03-07 2020-01-20 삼성전자주식회사 메모리 제어기 및 그것을 포함하는 메모리 시스템
US9092647B2 (en) 2013-03-07 2015-07-28 Freescale Semiconductor, Inc. Programmable direct memory access channels
US10120682B2 (en) * 2014-02-28 2018-11-06 International Business Machines Corporation Virtualization in a bi-endian-mode processor architecture
US10025555B2 (en) 2016-08-31 2018-07-17 Mettler-Toledo, LLC Byte order detection for control system data exchange
US10160115B2 (en) * 2016-12-19 2018-12-25 Amazon Technologies, Inc. Dynamic byte order determination and conversion for robotic component
GB201806465D0 (en) 2018-04-20 2018-06-06 Nordic Semiconductor Asa Memory-access controll
GB201810653D0 (en) 2018-06-28 2018-08-15 Nordic Semiconductor Asa Secure peripheral interconnect
GB201810662D0 (en) * 2018-06-28 2018-08-15 Nordic Semiconductor Asa Peripheral Access On A Secure-Aware Bus System
WO2023133141A1 (en) * 2022-01-06 2023-07-13 Microchip Technology Incorporated Peripheral access control using bitmasks indicating access settings for peripherals

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0470570B1 (en) * 1990-08-09 1997-01-29 Silicon Graphics, Inc. Method and apparatus for byte order switching in a computer
JP3187539B2 (ja) * 1992-07-28 2001-07-11 株式会社東芝 データ転送装置
US5519842A (en) * 1993-02-26 1996-05-21 Intel Corporation Method and apparatus for performing unaligned little endian and big endian data accesses in a processing system
US5524256A (en) * 1993-05-07 1996-06-04 Apple Computer, Inc. Method and system for reordering bytes in a data stream
US5574923A (en) 1993-05-10 1996-11-12 Intel Corporation Method and apparatus for performing bi-endian byte and short accesses in a single-endian microprocessor
WO1995033239A1 (en) 1994-05-26 1995-12-07 The Commonwealth Of Australia Secure computer architecture
US5828853A (en) * 1995-05-08 1998-10-27 Apple Computer, Inc. Method and apparatus for interfacing two systems operating in potentially differing Endian modes
US5907865A (en) 1995-08-28 1999-05-25 Motorola, Inc. Method and data processing system for dynamically accessing both big-endian and little-endian storage schemes
JPH0997211A (ja) * 1995-09-29 1997-04-08 Matsushita Electric Ind Co Ltd バス制御装置、及びバス制御装置を含む情報処理装置
WO1997044739A1 (en) * 1996-05-23 1997-11-27 Advanced Micro Devices, Inc. Apparatus for converting data between different endian formats and system and method employing same
US6052751A (en) 1997-02-14 2000-04-18 Advanced Micro Devices, I Nc. Method and apparatus for changing the number of access slots into a memory
US5898896A (en) 1997-04-10 1999-04-27 International Business Machines Corporation Method and apparatus for data ordering of I/O transfers in Bi-modal Endian PowerPC systems
US6046676A (en) 1997-11-14 2000-04-04 International Business Machines Corporation Self powered electronic memory identification tag with dual communication ports
US6061753A (en) 1998-01-27 2000-05-09 Emc Corporation Apparatus and method of accessing target devices across a bus utilizing initiator identifiers
JP3488827B2 (ja) * 1998-05-11 2004-01-19 株式会社日立製作所 ネットワークシステム及びその通信方法
US6662251B2 (en) 2001-03-26 2003-12-09 International Business Machines Corporation Selective targeting of transactions to devices on a shared bus
JP4091800B2 (ja) * 2002-06-28 2008-05-28 富士通株式会社 データ処理装置、及び格納データのアライン方法
US20040059848A1 (en) * 2002-09-23 2004-03-25 Institute For Information Industry Device for automatically switching endian order

Also Published As

Publication number Publication date
EP1757004A2 (en) 2007-02-28
CN101124529A (zh) 2008-02-13
CN100565429C (zh) 2009-12-02
US20040221173A1 (en) 2004-11-04
TW200608737A (en) 2006-03-01
US7404019B2 (en) 2008-07-22
JP2008500635A (ja) 2008-01-10
EP1757004A4 (en) 2008-01-16
TWI379570B (en) 2012-12-11
WO2005119961A3 (en) 2007-07-12
WO2005119961A2 (en) 2005-12-15

Similar Documents

Publication Publication Date Title
JP4602403B2 (ja) データ処理システムにおけるエンディアンネス制御方法および装置
US7434264B2 (en) Data processing system with peripheral access protection and method therefor
KR101010801B1 (ko) 액세스 허용을 결정하는 방법 및 장치
EP2062145B1 (en) Memory access security management
US7277972B2 (en) Data processing system with peripheral access protection and method therefor
US6775727B2 (en) System and method for controlling bus arbitration during cache memory burst cycles
JP4945053B2 (ja) 半導体装置、バスインターフェース装置、およびコンピュータシステム
US20090271861A1 (en) Data processing apparatus and access control method therefor
JP4799822B2 (ja) コンピュータシステム内でのデバイス間アクセスの制御システム及び方法
US11783097B2 (en) Hardware-based security authentication
JP2007109053A (ja) バスアクセス制御装置
WO2005121979A1 (ja) アクセス制御装置及びアクセス制御方法
KR20070017537A (ko) 데이터 처리 시스템에서 엔디안니스 제어용 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080411

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100405

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100412

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100428

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100511

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100604

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100831

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100929

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees