(57)【特許請求の範囲】
【請求項１】
データ・プロセッサ（１０）において、
複数のアドレス値、複数のデータ値および複数の制御値を交信する中央処理装置（１２）と、
システム集積ユニット（２２）と、を備え、
前記システム集積ユニットは、
前記複数のアドレス値を受信するため前記中央処理装置に結合された比較回路（１０１）であって、前記複数のアドレス値のうちの第１のアドレス値を含むアドレス・レンジを示す比較信号を与える比較回路と、
前記複数の制御値を受信するため前記中央処理装置に結合され、かつ前記比較信号を受信するため前記比較回路に結合された制御回路（１０２）であって、第１の外部デバイスに対応する第１の制御値を与え、かつ複数の内部制御信号を与える制御回路（１０２）と、
前記第１の制御値を受信するため前記制御回路に結合された制御レジスタ（９４）であって、前記第１の制御値に応答して第１のイネーブル・バイト制御値を選択的に与える制御レジスタ（９４）と、
前記第１のイネーブル・バイト制御値を受信するため前記制御レジスタに結合され、かつ前記複数の内部制御信号を受信するため前記制御回路に結合され、かつ前記複数のアドレス値を受信するため前記中央処理装置に結合されたデコード論理回路（１０５）と、を備え、
前記デコード論理回路は、前記第１のイネーブル・バイト制御値と、前記複数の内部制御信号の一部と、前記複数のアドレス値の一部とを論理的に組み合わせて、第２および第３の論理状態のうちの１つの状態において第１のイネーブル・バイト信号を与え、
前記第１のイネーブル・バイト信号は、前記第２の論理状態のときにライト・イネーブル機能を実行し、かつ前記第１イネーブル・バイト信号は、前記第３の論理状態のときにバイト・イネーブル機能を実行する、データ・プロセッサ。
【請求項２】
データ処理システム（１５）において、
データ・バスを介して第１のデータ値を選択的に交信する第１の外部デバイス（５１〜５８）と、
前記データ・バスを介して第２のデータ値を選択的に交信する第２の外部デバイスと、
データ・プロセッサ（１０）と、を備え、
前記データ・プロセッサは、
複数の内部アドレス値、複数の内部データ値および複数の内部制御値を交信する中央処理装置（１２）と、
システム集積ユニット（２２）と、を備え、
前記システム集積ユニットは、
前記複数の内部アドレス値を受信するため前記中央処理装置に結合された比較回路であって、前記複数の内部アドレス値のうちの第１の内部アドレス値を含むアドレス・レンジを示す第１の比較信号を与える比較回路（１０１）と、
前記複数の内部制御値を受信するため前記中央処理装置に結合され、かつ前記第１の比較信号を受信するため前記比較回路に結合された制御回路（１０２）であって、前記第１の外部デバイスに対応する第１の制御値を与え、かつ第１の複数の内部制御信号を与える制御回路（１０２）と、
前記第１の制御値を受信するため前記制御回路に結合された制御レジスタ（９４）であって、前記第１の制御値に応答して第１のイネーブル・バイト制御値を選択的に与える制御レジスタ（９４）と、
前記第１のイネーブル・バイト制御値を受信するため前記制御レジスタに結合され、かつ前記複数の内部制御信号を受信するため前記制御回路に結合され、かつ前記複数の内部アドレス値を受信するため前記中央処理装置に結合されたデコード論理回路（１０５）と、を備え、
前記デコード論理回路は、前記第１のイネーブル・バイト制御値と、前記複数の内部制御信号の一部と、前記複数のアドレス値の一部とを論理的に組み合わせて、第２および第３の論理状態のうちの１つの論理状態において第１のイネーブル・バイト信号を与え、
前記第１のイネーブル・バイト信号は、前記第２の論理状態のときに前記第１の外部デバイスに対してライト・イネーブル機能を実行し、かつ前記第１のイネーブル・バイト信号は、前記第３の論理状態のときに前記第１の外部デバイスに対してバイト・イネーブル機能を実行し、
前記システム集積ユニットは更に、前記第１のイネーブル・バイト信号を前記第１の外部デバイスの第１の入力に与える第１の集積回路端子（２０４〜２１０）を備える、データ処理システム。
【請求項３】
データ・プロセッサ（１０）において、
複数のアドレス値、複数のデータ値および複数の制御値を交信する中央処理装置（１２）と、
前記複数の制御値を受信するため前記中央処理装置に結合された制御回路（１０２）であって、第１の制御値および複数の内部制御信号を与える制御回路（１０２）と、
前記第１の制御値を受信するため前記制御回路に結合された第１の制御レジスタ（９４）と、を備え、
前記第１の制御レジスタは、前記第１の制御値に応答して第１のイネーブル・バイト制御値を選択的に与え、
前記第１のイネーブル・バイト制御値は、第１のイネーブル・バイト信号がライト・イネーブル機能を実行するときおよび前記第１のイネーブル・バイト信号がバイト・イネーブル機能を実行するときを示す、データ・プロセッサ。
【請求項４】
データ・プロセッサ（１０）において外部デバイスにアクセスする方法であって、
中央処理装置（１２）と複数のアドレス値、複数のデータ値および複数の制御値を交信するステップと、
前記複数のアドレス値を受信するため、比較回路（１０１）を前記中央処理装置に結合するステップと、
前記比較回路を使用可能にして、前記複数のアドレス値のうちの第１のアドレス値を含むアドレス・レンジを示す比較信号を与えるステップと、
前記複数の制御値を受信するため、制御回路を前記中央処理装置に結合するステップと、
前記比較信号を受信するため、前記制御回路を前記比較回路に結合するステップと、
前記制御回路を使用可能にして、第１の外部デバイス（５１〜５８）に対応する第１の制御値を与え、かつ前記制御回路が複数の内部制御信号を与えるステップと、
前記第１の制御値を受信するため、制御レジスタ（９４）を前記制御回路に結合するステップと、
前記制御レジスタを使用可能にして、前記第１の制御値に応答して第１のイネーブル・バイト制御値を選択的に与えるステップと、
前記第１のイネーブル・バイト制御値を受信するため、デコード論理回路（１０５）を前記制御レジスタに結合するステップと、
前記複数の内部制御信号を受信するため、前記デコード論理回路を前記制御回路に結合するステップと、
前記複数のアドレス値を受信するため、前記デコード論理回路を前記中央処理装置に結合するステップと、
前記デコード論理回路を使用可能にして、前記第１のイネーブル・バイト制御値と、前記複数の内部制御信号の一部と、前記複数のアドレス値の一部とを論理的に組み合わせて、第２および第３の論理状態のうちの１つの論理状態において第１のイネーブル・バイト信号を与えるステップであって、前記の第１のイネーブル・バイト信号は、前記第２の論理状態のときにライト・イネーブル機能を実行し、かつ前記第１のイネーブル・バイト信号は、前記第３の論理状態のときにバイト・イネーブル機能を実行する、前記第１のイネーブル・バイト信号を与えるステップと
を備える方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、一般に、データ処理システムに関し、さらに詳しくは、データ処理システムにおいて外部デバイスにアクセスする方法および装置に関する。
【０００２】
【従来の技術】
集積回路マイクロプロセッサは、特定の機能を提供するため、多くの場合、他の集積回路デバイスと接続しなければならない。このような外部デバイスの例には、メモリ，シリアル・インタフェース・アダプタ，アナログ／デジタル・コンバータなどが含まれる。ほとんどの場合、各外部デバイスは、このデバイスがマイクロプロセッサによってアクセスされたときに適切に起動するためには、外部制御信号を必要とする。例えば、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）集積回路は、リードおよびライト・アクセスを制御するためチップ・イネーブル（ｃｈｉｐ  ｅｎａｂｌｅ）  ，出力イネーブル（ｏｕｔｐｕｔ  ｅｎａｂｌｅ）  およびライト・イネーブル（ｗｒｉｔｅ  ｅｎａｂｌｅ）制御信号を必要とする。これらの信号のタイミング条件は、市販のデバイスの間で若干異なる。例えば、あるＳＲＡＭは出力イネーブル信号に対して非同期で出力データを与えるが、別のＳＲＡＭは出力イネーブルをサンプリングして、クロック信号に同期して出力データを与える。
【０００３】
一般に、マイクロプロセッサおよび他の集積回路を利用するシステムの設計者は、マイクロプロセッサ自体によって生成されるアドレス制御信号およびバス制御信号から必要なチップ・セレクト信号を生成するため、「グルー論理（ｇｌｕｅ  ｌｏｇｉｃ）」を利用する。この余分な論理は、設計されるシステムのコストを大幅に追加し、性能を劣化することがあり、そのため極めて望ましくない。
【０００４】
Ｓａｎｔａ  Ｃｌａｒａ，  Ｃａｌｉｆｏｒｎｉａ  のインテル・コーポレーション社製の８０１８６（ｉＡＰＸ１８６ともいう）は、チップ・セレクト信号を生成する内部論理を有する集積回路マイクロプロセッサである。チップ・セレクト論理は、各７つの可能なチップ・セレクトがアクティブなアドレス範囲をプログラムする限られた能力を有し、各チップ・セレクトがアクティブなバス・サイクルにウェート・ステートをプログラム可能に挿入できる。さらに、チップ・セレクトの一部は、マイクロプロセッサのメモリまたはＩ／Ｏアドレス・スペースでのみアクティブとなるようにプログラムできる。
【０００５】
オンボード・チップ・セレクト論理を有する集積回路マイクロプロセッサの別の例として、１９９２年９月２９日に発行されたＪｏｈｎ  Ａ．  ＬａｎｇａｎおよびＪａｍｅｓ  Ｍ．  Ｓｉｂｉｇｔｒｏｔｈ  による米国特許第５，１５１，９８６号において開示されたものがある。この開示されたチップ・セレクト論理は制御レジスタを含み、この制御レジスタにより、ウェート・ステートのタイミング，極性および数を各チップ・セレクト出力について個別にプログラムできる。
【０００６】
【発明が解決しようとする課題】
チップ・セレクト論理をマイクロプロセッサ集積回路に集積することに関する主な問題点は、ユーザに対して十分な柔軟性を提供する点である。グルー論理を利用することは極めて柔軟性が高い。これは、システム設計者は、マイクロプロセッサのメモリ・マップと各外部デバイスの配置について、またチップ・セレクト信号自体のタイミングおよび他の特性について広い自由度を有するためである。この柔軟性は、特定の周辺デバイスに対する可能なシステム設計およびチップ・セレクト条件の種類が多様なため、極めて有用である。集積チップ・セレクト・ユニットにおいて十分な柔軟性を提供し、しかもユニットの寸法および複雑さを妥当な制限内に抑えることは困難をきわめる。
【０００７】
同時に、集積回路のコストを最小限に抑えることが重要である。いくつかの要因がチップ・セレクト論理を集積するコストに寄与する。要因の一つに、チップ・セレクト論理が必要とする回路面積があるが、これはチップ寸法が大きければ大きいほど、ウェハ毎の有効ダイの数が少なくなるためである。別の要因として、デバイス・ピン数があるが、これはピン数の多いパッケージは一般に高価なためである。第３の要因は、チップを設計するために要するエンジニアリングの量があり、所要設計時間の少ないチップが好ましい。従って、集積回路マイクロプロセッサ用の柔軟性が高く、しかも低コストのチップ・セレクト論理回路が必要とされる。
【０００８】
【実施例】
本発明は、データ処理システムと、このシステムとインタフェースするさまざまなメモリ・デバイスおよび外部周辺デバイスを選択するうえで高い柔軟性をユーザに提供するデータ処理システムを動作させる方法を提供する。データ処理システムにおいて、任意の外部デバイスに与えられる複数のバイト・イネーブル信号の機能をダイナミックに制御する制御レジスタが設けられる。例えば、第１時間にて、レジスタは複数のバイト・イネーブル信号が複数のライト・イネーブル信号として機能するように指示する。しかし、第２時間にて、レジスタは複数のバイト・イネーブル信号が複数のバイト・イネーブルとして機能するように指示する。複数のバイト・イネーブルは、外部バスのビット幅よりも少ないビット数を有するデータを取り出す場合に特に有用である。従って、本発明は、外部デバイスを選択するために必要な外部集積回路ピン数を増加せずに、高い機能的柔軟性をユーザに提供する。
【０００９】
さらに、本発明は、ソフトウェア実施を必要とせずに、複数のバイト・イネーブル信号の追加機能を提供する。本発明では、複数のバイト・イネーブル信号の機能は、前述の制御レジスタに格納されたイネーブル・バイト値によって、各バス・サイクル中に決定される。所定のチップ・セレクト信号がアサートされると、対応するイネーブル・バイト値が内部メモリから取り出され、制御レジスタに格納される。従って、複数のチップ・セレクト信号をライト・イネーブルまたはバイト・イネーブルとして機能させるために、ソフトウェア・プログラミングを必要としない。ほとんど介入を必要とせずにこのような柔軟性を提供することにより、本発明はあらゆる集積回路マイクロプロセッサで用いられる低コストのチップ・セレクト論理回路を提供する。
【００１０】
以下の説明では、本発明を実施するデータ処理システムの一実施例の接続性および動作について詳細に説明する。
本発明の接続性（Ｃｏｎｎｅｃｔｉｖｉｔｙ）
本発明の接続性についての以下の説明では、「バス」という用語は、データ，アドレス，制御またはステータスなど、一つまたはそれ以上のさまざまな種類の情報を転送するために利用できる複数の信号またはコンダクタを表すために用いられる。「アサート（ａｓｓｅｒｔ）」および「ニゲート（ｎｅｇａｔｅ）」という用語は、信号，ステータス・ビットまたは同様な装置をそれぞれ論理真または論理偽にすることを表すために用いられる。論理真状態が論理レベル１の場合、論理偽状態は論理レベル０である。また、論理真状態が論理レベル０の場合、論理偽状態は論理レベル１である。
【００１１】
さらに、角括弧（［］）は、バスのコンダクタまたは値のビット位置を表すために用いられる。例えば、「バス６０［０−７］」または「バス６０のコンダクタ［０−７］」は、バス６０の８つの下位コンダクタ（ｅｉｇｈｔ  ｌｏｗｅｒ  ｏｒｄｅｒ  ｃｏｎｄｕｃｔｏｒｓ）を表し、また「アドレス・ビット［０−７］」または「ＡＤＤＲＥＳＳ［０−７］」は、アドレス値の下位８ビットを表す。数値の前の記号「＄」は、この数値が１６進数または基底１６（ｂａｓｅ  ｓｉｘｔｅｅｎ）形式で表されることを示す。数値の前の記号「％」は、この数値が２進数または基底２（ｂａｓｅ  ｔｗｏ）形式で表されることを示す。
【００１２】
ここで図１を参照して、図１は、データ・プロセッサ１０，メモリ・バンク５０，メモリ・バンク５５，集積回路７０および集積回路７２を有するデータ処理システム１５を示す。データ・プロセッサ１０は、中央処理装置（ＣＰＵ）１２およびシステム集積回路２２を含む。メモリ・バンク５０は、メモリ５１，メモリ５２，メモリ５３およびメモリ５４を含む。メモリ・バンク５５は、メモリ５６およびメモリ５８を含む。本発明の一実施例例では、データ・プロセッサ１０および各メモリ５１〜５４およびメモリ５６，５８は、個別の集積回路として構築される。本発明の別の実施例では、データ処理システム１５のすべては単一の集積回路上で構築してもよい。
【００１３】
図１において、メモリ・バンク５０のメモリ５１は、データ・ビット［０−７］を受信するためバス６２のコンダクタ［０−７］に結合されたデータ・ポートを有する。また、メモリ５１は、バス６０のコンダクタ［０−３１］に結合されたアドレス・ポートを有する。さらに、メモリ５１は、第１チップ・セレクト信号を受信するためチップ・セレクト１（Ｃｈｉｐ  Ｓｅｌｅｃｔ１）コンダクタ６４に結合されたチップ・セレクト入力（反転ＣＳ）を有する。また、メモリ５１は、出力イネーブ（Ｏｕｔｐｕｔ  Ｅｎａｂｌｅ）  信号に結合された出力イネーブル入力（反転ＯＥ）と、イネーブル・バイト（Ｅｎａｂｌｅ  Ｂｙｔｅ）  信号２１０に結合されたリード／反転ライト（Ｒ／反転Ｗ）入力とを有する。
【００１４】
メモリ５２は、データ・ビット［８−１５］を受信するためバス６２のコンダクタ［８−１５］に結合されたデータ・ポートを有する。また、メモリ５２は、バス６０のコンダクタ［０−３１］に結合されたアドレス・ポートを有する。さらに、メモリ５２は、第１チップ・セレクト信号を受信するためチップ・セレクト１コンダクタ６４に結合されたチップ・セレクト入力（反転ＣＳ）を有する。また、メモリ５２は、出力イネーブル信号に結合された出力イネーブル入力（反転ＯＥ）と、イネーブル・バイト信号２０８に結合されたリード／反転ライト（Ｒ／反転Ｗ）入力とを有する。
【００１５】
同様に、メモリ５３は、データ・ビット［１６−２３］を受信するためバス６２のコンダクタ［１６−２３］に結合されたデータ・ポートを有する。また、メモリ５３は、バス６０のコンダクタ［０−３１］に結合されたアドレス・ポートを有する。さらに、メモリ５３は、第１チップ・セレクト信号を受信するためチップ・セレクト１コンダクタ６４に結合されたチップ・セレクト入力（反転ＣＳ）を有する。また、メモリ５３は、出力イネーブル信号に結合された出力イネーブル入力（反転ＯＥ）と、イネーブル・バイト信号２０６に結合されたリード／反転ライト（Ｒ／反転Ｗ）入力とを有する。
【００１６】
メモリ５４は、データ・ビット［２４−３１］を受信するためバス６２のコンダクタ［２４−３１］に結合されたデータ・ポートを有する。また、メモリ５４は、バス６０のコンダクタ［０−３１］に結合されたアドレス・ポートを有する。さらに、メモリ５４は、第１チップ・セレクト信号を受信するためチップ・セレクト１コンダクタ６４に結合されたチップ・セレクト入力（反転ＣＳ）を有する。また、メモリ５４は、出力イネーブル信号に結合された出力イネーブル入力（反転ＯＥ）と、イネーブル・バイト信号２０４に結合されたリード／反転ライト（Ｒ／反転Ｗ）入力とを有する。
【００１７】
メモリ・バンク５５のメモリ５６は、データ・ビット［０−１５］を受信するためバス６２のコンダクタ［０−１５］に結合されたデータ・ポートを有する。また、メモリ５６は、バス６０のコンダクタ［０−３１］に結合されたアドレス・ポートを有する。さらに、メモリ５６は、第２チップ・セレクト信号を受信するためチップ・セレクト２コンダクタ６５に結合されたチップ・セレクト入力（反転ＣＳ）を有する。また、メモリ５６は、出力イネーブル信号に結合された出力イネーブル入力（反転ＯＥ）と、ライト・イネーブル信号に結合されたリード／反転ライト（Ｒ／反転Ｗ）入力とを有する。また、メモリ５６は、イネーブル・バイト信号２０８に結合された上位バイト（反転ＵＢ）入力と、イネーブル・バイト信号２１０に結合された下位バイト（反転ＬＢ）入力とを有する。
【００１８】
メモリ・バンク５５のメモリ５８は、データ・ビット［１６−３２］を受信するためバス６２のコンダクタ［１６−３２］に結合されたデータ・ポートを有する。また、メモリ５８は、バス６０のコンダクタ［０−３１］に結合されたアドレス・ポートを有する。さらに、メモリ５８は、第２チップ・セレクト信号を受信するためチップ・セレクト２コンダクタ６５に結合されたチップ・セレクト入力（反転ＣＳ）を有する。また、メモリ５８は、出力イネーブル信号に結合された出力イネーブル入力（反転ＯＥ）と、ライト・イネーブル信号に結合されたリード／反転ライト（Ｒ／反転Ｗ）入力とを有する。また、メモリ５８は、イネーブル・バイト信号２０４に結合された上位バイト（反転ＵＢ）入力と、イネーブル・バイト信号２０６に結合された下位バイト（反転ＬＢ）入力とを有する。
【００１９】
データ・プロセッサ１０は、バス６０，６２と、チップ・セレクト・コンダクタ６４とによってメモリ・バンク５０に結合される。データ・プロセッサ１０は、バス６０，６２と、チップ・セレクト・コンダクタ６５とによってメモリ・バンク５５に結合される。データ・プロセッサ１０は、バス６０と、チップ・セレクト３コンダクタ６６とによって集積回路７０に結合される。集積回路７０の多重化アドレス／データ・ポート（ｍｕｘｅｄ  ａｄｄｒｅｓｓ／ｄａｔａ  ｐｏｒｔ）  は、バス６０とアドレス値およびデータ値の両方を交信する。集積回路７０はバス６２に結合されず、またバス６２からアドレスまたはデータ値を受信しない。データ・プロセッサ１０は、バス６２と、チップ・セレクト・コンダクタ６７とによって集積回路７２に結合される。集積回路７２の多重化アドレス／データ・ポートは、バス６２とアドレス値およびデータ値の両方を交信する。集積回路７０はバス６０に結合されず、またバス６０からアドレスまたはデータ値を受信しない。
【００２０】
本発明のある実施例では、データ・プロセッサ１０は単一集積回路上に形成されることに留意されたい。ある実施例では、データ・プロセッサ１０はシングル・チップ・マイクロコントローラである。別の実施例では、データ・プロセッサ１０は、任意の種類の電気回路を利用して構築してもよい。メモリ５１〜５４および５６〜５９は、任意の種類のメモリでもよい。データ処理システム１５の別の実施例は、さらに多くの，あるいは少ない，もしくは異なる周辺デバイス（７０，７２）を含んでもよい。さらに、バス６０，６２は３２ビット・バスとして説明したが、本発明の別の実施例はバス６０，６２について任意のビット数を利用してもよい。
【００２１】
図２は、本発明の一実施例による図１のシステム集積回路２２の一部を示す。システム集積回路２２は、制御レジスタ９４，バス結合回路１００，比較回路１０１，制御回路１０２，チップ・セレクト発生回路１０４，デコード論理１０５，端子１２３，端子１２４，端子１２６および端子１２８を含む。バス２４は、制御レジスタ９４，制御回路１０２およびバス結合回路１００のそれぞれにアドレス，データおよび制御情報を双方向に転送する。アドレス・バス１１０は、アドレス・ビット［０−３１］をバス結合回路１００に与えるバス２４の一部である。データ・バス１１２は、データ・ビット［０−３１］をバス結合回路１００に与えるバス２４の一部である。制御バス１１６は、バス結合回路から制御回路１０２に制御情報を与えるバス２４の一部である。本発明のある実施例では、制御回路１０２は、一つまたはそれ以上の端子（図示せず）を介してデータ・プロセッサの外部に外部バス・サイクル制御信号（例えば、アドレス・ストローブ，データ・ストローブ，ライト・イネーブル，カラム・アドレス・ストローブ（ｃｏｌｕｍｎ  ａｄｄｒｅｓｓ  ｓｔｒｏｂｅ）  ，ロウ・アドレス・ストローブ（ｒｏｗ  ａｄｄｒｅｓｓ  ｓｔｒｏｂｅ），リード／ライトなど）を与えてもよいことに留意されたい。バス２４は、ＣＰＵ１２が制御レジスタ９４に対してリードおよびライト・アクセスを実行できるように、制御レジスタ９４に結合される。バス２４は、制御情報を送受信するため制御回路１０２に結合される。バス２４は、アドレス・ビット［０−３１］およびデータ・ビット［０−３１］を交信するため、アドレス・バス１１０およびデータ・バス１１２を介してバス結合回路１００に結合される。また、バス２４は、アドレス・ビット［０−３１］の少なくとも一部を与えるため、信号１１１を介して比較器回路１０１に結合される。
【００２２】
レジスタ９４は、複数の周辺制御レジスタ９５（図３）およびチップ・セレクト制御レジスタ（図示せず）を含む。チップ・セレクト制御レジスタは、バス・ローディング制御ビット，アドレス・レンジ・ビットおよび他のチップ・セレクト制御ビットを含む。バス・ローディング制御ビットは、コンダクタ１１４によってバス結合回路１００に与えられる。比較回路１０１は、アドレス・レンジ・ビットと、おそらくは一つまたはそれ以上の他のチップ・セレクト制御ビットとを受信するため、チップ・セレクト制御レジスタに結合される。比較回路１０１は、複数のコンダクタ１２１を介して比較結果信号を制御回路１０２に与える。制御回路１０２は、複数のコンダクタ１１６によって制御信号をバス結合回路１００に与え、また制御回路１０２は複数のコンダクタ１１８を介して制御信号をチップ・セレクト発生回路１０４に与える。制御回路１０２は、制御レジスタ９４に双方向に結合される。本発明の一実施例では、制御回路１０２は、制御レジスタ９４に格納されたチップ・セレクト制御ビットから制御ビットを受信し、ステータス情報を他のチップ・セレクト制御ビットに返送する。ただし、本発明の別の実施例では、制御回路１０２およびバス結合回路１００の機能は一つの回路に統合できることを理解されたい。
【００２３】
バス結合回路１００は、バス６０を介して端子１２４に双方向に結合される。バス結合回路１００は、バス６２を介して端子１２６に双方向に結合される。チップ・セレクト発生回路１０４は、複数のチップ・セレクト・コンダクタ６４〜６７を介して端子１２８に双方向に結合される。複数の端子１２４は、データ・プロセッサ１０に対して外部にバス６０を与えるために用いられる。複数の端子１２６は、データ・プロセッサ１０に対して外部にバス６２を与えるために用いられる。また、複数の端子１２８は、データ・プロセッサ１０に対して外部にチップ・セレクト信号６４〜６７を与えるために用いられる。
【００２４】
集積回路端子１２４，１２６，１２８は、データ・プロセッサ１０と電気信号をやり取りできる任意の種類の装置でもよい。例えば、集積回路端子１２４，１２６，１２８は、集積回路ピン，半田バンプまたはワイヤ・コンダクタでもよい。
【００２５】
図３は、デコード論理回路１０５をさらに詳しく示す。デコード論理回路１０５は、ＡＮＤゲート２００，ＯＲゲート２０２，ＡＮＤゲート２０４，ＯＲゲート２０６，ＡＮＤゲート２０８，ＡＮＤゲート２１０，ＡＮＤゲート２１２，ＯＲゲート２１４，ＡＮＤゲート２１６，ＡＮＤゲート２１８，ＯＲゲート２２０およびＡＮＤゲート２２２，ＡＮＤゲート２２４，ＡＮＤゲート２２６，ＯＲゲート２２８およびＡＮＤゲート２３０を含む。
【００２６】
サイズ１（Ｓ１）信号は、サイズ信号（図３には図示せず）によってＡＮＤゲート２００の第１反転入力に与えられる。サイズ０（Ｓ０）信号は、サイズ・コンダクタによってＡＮＤゲート２００の第２反転入力と、ＡＮＤゲート２０４の第１反転入力と、ＡＮＤゲート２１８の第１反転入力とに与えられる。ＡＮＤゲート２００の出力は、各ＯＲゲート２０６，２１４，２２０，２２８の第１入力に与えられる。アドレス１（Ａ１）信号は、アドレス・バス１１０（図２）によってＡＮＤゲート２０４の第２反転入力と、ＡＮＤゲート２１０の第１反転入力と、ＡＮＤゲート２１２の第１反転入力と、ＡＮＤゲート２１８の第２入力と、ＡＮＤゲート２２４の第１入力と、ＡＮＤゲート２２６の第１入力とに与えられる。アドレス０（Ａ０）信号は、アドレス・バス１１０（図２）によってＡＮＤゲート２１０の第２反転入力と、ＡＮＤゲート２１２の第２入力と、ＡＮＤゲート２２４の第２反転入力と、ＡＮＤゲート２２６の第２入力とに与えれる。
【００２７】
ＡＮＤゲート２０４の出力は、ＯＲゲート２０６の第２入力と、ＯＲゲート２１４の第２入力とに結合される。ＡＮＤゲート２１０の出力は、ＯＲゲート２０６の第３入力に結合される。ＯＲゲート２０６の出力は、ＡＮＤゲート２０８の第１入力に結合される。ＡＮＤゲート２１２の出力は、ＯＲゲート２１４の第３入力に結合される。ＯＲゲート２１４の出力は、ＡＮＤゲート２１６の第１入力に結合される。ＡＮＤゲート２１８の出力は、ＯＲゲート２２０の第２入力と、ＯＲゲート２２８の第２入力とに結合される。ＡＮＤゲート２２４の出力は、ＯＲゲート２２０の第３入力に結合される。ＯＲゲート２２０の出力は、ＡＮＤゲート２２２の第１入力に結合される。ＡＮＤゲート２２６の出力は、ＯＲゲート２２８の第３入力に結合される。ＯＲゲート２２８の出力は、ＯＲゲート２３０の第１入力に結合される。
【００２８】
リード／反転ライト（Ｒ／反転Ｗ）信号は、ＯＲゲート２０２の第１反転入力に結合される。ＥＢＣｏｎｔｒｏｌ信号は、ＯＲゲート２０２の第２反転入力に結合される。ＯＲゲート２０２の出力は、各ＡＮＤゲート２０８，２１６，２２２，２３０の第２入力に結合される。ＡＮＤゲート２０８の出力は、イネーブル・バイト０（ＥＢ０）信号２０４を与える。ＡＮＤゲート２１６の出力は、イネーブル・バイト１（ＥＢ１）信号２０６を与える。ＡＮＤゲート２２２の出力は、イネーブル・バイト２（ＥＢ２）信号２０８を与える。ＡＮＤゲート２３０の出力は、イネーブル・バイト３（ＥＢ３）信号２１０を与える。
【００２９】
ここで図４を参照して、図４は、本発明の一実施例による図２の制御レジスタ９４を示す。本発明の一実施例では、制御レジスタ９４は、複数のレジスタ３００〜４００を含み、これら複数のレジスタのうち所定の一つは、複数のチップ・セレクト信号のうち所定の一つに対応する。例えば、第１チップ・セレクト信号は制御レジスタ３００に対応し、最後のチップ・セレクト信号は制御レジスタ４００に対応する。各複数のレジスタは、複数のチップ・セレクト信号６４〜７４のうち対応する一つの動作を制御するＣＳＥＮ（チップ・セレクト・イネーブル）ビットを含む。与えられたチップ・セレクト信号についてＣＳＥＮビットが論理０値の場合、対応する集積回路端子はディセーブルされ、出力は常にニゲートされる。対応するチップ・セレクト信号によってマッピングされたアドレスへデータ・プロセッサ１０がアクセスを試みる結果、転送エラーが生じ、チップ・セレクト信号はアサートされない。ＣＳＥＮビットが論理１値の場合、対応する集積回路端子はイネーブルされ、アクセス・アドレスが外部デバイスおよびチップ・セレクト信号に対応するレンジ内のとき、アサートされたチップ・セレクト信号を与える。ＣＳＥＮビットは、リセット動作中にクリアされる。
【００３０】
さらに、各複数のレジスタは、ＰＡ（ピン・アサート）ビットを含む。ＰＡビットは、チップ・セレクト信号に対応する集積回路端子がプログラマブル出力ピンとして動作している場合に、アクティブ・ロー（ａｃｔｉｖｅ  ｌｏｗ）出力をアサートまたはニゲートするために用いられる。ＰＡビットは、ＰＦビットがクリアされるか、あるいはＣＳＥＮビットがセットされる場合に無視される。
【００３１】
また、各複数のレジスタは、ＰＦ（ピン・ファンクション）ビットも含む。ＰＦビットは、対応する集積回路端子の機能（ファンクション）を選択するために用いられる。例えば、ＰＦビットが論理０値のとき、集積回路端子はチップ・セレクト出力として用いられる。ＰＦビットが論理１値のとき、集積回路端子は、ＣＳＥＮビットがクリアされる場合に、プログラマブル出力制御集積回路端子として用いられる。
【００３２】
各複数のレジスタ３００〜４００は、ＷＰ（ライト・プロテクト）ビットも含む。ＷＰビットは、対応するチップ・セレクト信号によって定義されるアドレス・レンジにライト動作を制限するために用いられる。ＷＰビットが論理０値のとき、対応するチップ・セレクト信号によって定義されるアドレス・レンジにおいてライト動作が許される。ＷＰビットが論理１値のとき、ライト動作は禁止される。データ・プロセッサ１０が対応するチップ・セレクト信号によってマッピングされたアドレスにライトを試みる場合、転送エラーがＣＰＵ１２に送出され、チップ・セレクト信号はニゲートされたままとなる。
【００３３】
図４に示すＤＳＺ（データ・ポート・サイズ）ビットは、デバイス・データ・ポートのデータ・ビット幅を定義する。
【００３４】
ＥＢＣ（イネーブル・バイト・コントロール）ビットは、どのアクセス・タイプが図２においてイネーブル・バイト２０４〜２１０として表される複数のイネーブル・バイト信号をアサートするかを示す。さらに、イネーブル・バイトは、図４においてＥＢ０  ２０４，ＥＢ１  ２０６，ＥＢ２  ２０８，ＥＢ３  ２１０として表される。任意の一つのイネーブル・バイト・コントロール・ビットが論理０値のとき、データ・プロセッサ１０によるリードおよびライト・アクセスは複数のイネーブル・バイト信号のうち対応する一つをアサートすることが許される。従って、ＥＢＣビットが論理０値のとき、対応するイネーブル・バイト信号はバイト・イネーブルとして動作するように構成される。しかし、任意の一つのイネーブル・バイト・コントロール・ビットが論理１値のとき、データ・プロセッサ１０によるライト・アクセスのみが複数のイネーブル・バイト信号のうち対応する一つをアサートすることが許される。従って、ＥＢＣビットが論理１値のとき、対応するイネーブル・バイト信号はライト・イネーブルとして動作するように構成される。ＥＢＣビットは、各複数のレジスタ９５について、またそのため各複数のチップ・セレクト信号について、異なる構成が可能である。
【００３５】
各複数のレジスタ９５は、ＤＡ（デバイス属性（Ｄｅｖｉｃｅ  Ａｔｔｒｉｂｕｔｅｓ）  ）値も含み、これはデバイス固有の属性と、チップ・セレクト信号に接続される外部デバイスに対するアクセスについてウェート・ステートの数をプログラムするＷＳＣ（ウェート・ステート・コントロール）値とを示すために用いられる。本発明のこの実施例では、１１１の符号化は、サイクルを終了するため外部の転送肯定応答（Ｔｒａｎｓｆｅｒ  Ａｃｋｎｏｗｌｅｄｇｅ）（ＴＡ）入力信号がサンプリングされることを示す。ただし、ＴＡ信号は外部アクセスがいつ終了されたかを示すことに留意されたい。ＷＳＣビットの他のすべての符号化は、内部生成終了（ｉｎｔｅｒｎａｌｌｙ  ｇｅｎｅｒａｔｅｄ  ｔｅｒｍｉｎａｔｉｏｎ）をイネーブルする。アクセスが内部終了した場合、ＴＡ信号のステートは無視される。
【００３６】
本発明の別の実施例は、より多い，少ないまたは異なるレジスタ・ビット・フィールドを利用でき、また、各レジスタ・ビット・フィールドは、制御，ステータスまたは制御およびステータスの両方に利用できることを留意されたい。さらに、本発明の別の実施例は、ＥＢＣビットなどのビット・フィールドを一つまたはそれ以上の個別のレジスタに配置してもよい。また、本発明の異なる実施例では、図４に示す各レジスタ・ビット・フィールドについて任意の数のビットを含んでもよい。さらに、本発明のある実施例では、一つまたはそれ以上のレジスタ・ビット・フィールドの制御機能は少ないレジスタ・ビット・フィールドに統合または符号化してもよい。
本発明の動作
ここで、本発明の動作についてさらに詳しく説明する。図１に示すデータ処理システム１５の動作中に、データ・プロセッサ１０は、メモリ・バンク５０，メモリ・バンク５５，集積回路７０および集積回路７２のいずれかに格納されたデータにアクセスできる。これらの外部デバイスのそれぞれは、異なるインタフェースを必要とすることがある。例えば、図１に示す例では、メモリ・バンク５０の各メモリ５１〜５４は、８ビットのデータ・バス・ビット幅を有する。また、メモリ・バンク５５のメモリ５６〜５８は、１６ビットのデータ・バス・ビット幅を有する。さらに、メモリ５１〜５４と異なり、メモリ５６，５８では、対応するメモリから下位バイトのみまたは上位および下位バイトの両方を取り出すべきかどうかをデータ・プロセッサが指定する必要がある。さらに、集積回路７０，７２は、データ・プロセッサ１０との多重化データ・バス・インタフェースを必要とする。メモリ・バンク５０のメモリ，メモリ・バンク５５のメモリおよび集積回路７０，７２のインタフェースにおいて大きな相違があっても、データ・プロセッサ１０において実施される本発明は、余分な論理回路またはソフトウェアの介入なしに、各外部デバイスに適切な制御およびデータ値を与える。
【００３７】
本発明について詳しく説明する前に、データ処理システム１５の動作について概説する。データ処理システム１５において、各外部デバイスにはデータ・プロセッサ１０のメモリ・マップにおけるアドレス・レンジが割り当てられる。データ・プロセッサ１０がメモリ・バンク５０に対応する第１アドレス・レンジ内のアドレスにアクセスするとき、チップ・セレクト１信号６４がアサートされ、各メモリ５１〜５４をイネーブルする。同様に、データ・プロセッサ１０がメモリ・バンク５５に対応する第２アドレス・レンジ内のアドレスにアクセスするとき、チップ・セレクト２信号６５がアサートされ、メモリ５６，５８をイネーブルする。同様に、データ・プロセッサ１０が集積回路７０に対応する第３アドレス・レンジまたは集積回路７２に対応する第４アドレス内のアドレスにアクセスするとき、チップ・セレクト３信号またはチップ・セレクト４信号がそれぞれアサートされる。
【００３８】
複数のチップ・セレクト信号のうち一つがアサートされると、対応する外部デバイスと正しくインタフェースするために、他の制御情報も与えなければならない。例えば、チップ・セレクト１信号がアサートされた場合にも、出力イネーブル信号および複数のイネーブル・バイト信号のうち対応する一つをアサートしなければならない。前述のように、出力イネーブル信号は複数のメモリ５１〜５４のそれぞれの反転ＯＥ入力に与えられる。また、複数のイネーブル・バイト信号のうち対応する一つは、複数のメモリ５１〜５４のうち関連する一つのＲ／反転Ｗ入力に与えられる。ただし、複数のイネーブル・バイト信号がＲ／反転Ｗ入力に与えられる場合、複数のイネーブル・バイト信号はライト・イネーブル信号として機能することに留意されたい。また、本発明のこの実施例では、複数のイネーブル・バイト信号のそれぞれは、論理低値のときアサートされるとみなされることに留意されたい。従って、複数のイネーブル・バイト信号のうち一つがアサートされると、反転ＯＥ入力はニゲートされ、適切なチップ・セレクト信号がアサートされ、メモリ・バンク５０内の関連メモリがイネーブルされ、バス６０を介してデータ・プロセッサ１０によって与えられる８ビット・データ値を格納する。同様に、複数のイネーブル・バイト信号のうち一つがニゲートされ、反転ＯＥ入力がアサートされると、メモリ・バンク５０内の関連メモリはイネーブルされ、バス６２を介してデータ・プロセッサ１０に８ビット・データ値を与える。第２の例では、チップ・セレクト２信号がアサートされ、データ・プロセッサ１０がメモリ・バンク５５に関連するアドレス番地にアクセスしたことを示す場合を想定する。この場合も、チップ・セレクト２信号がアサートされるとき、対応する外部デバイスと正しくインタフェースするため他の制御情報も与えなければならない。例えば、チップ・セレクト２信号がアサートされた場合でも、出力イネーブル信号およびＲ／反転Ｗ信号もアサートしなければならない。さらに、メモリ５６，５８のそれぞれは上位バイト（ＵＢ）イネーブル入力および下位バイト（ＬＢ）イネーブル入力を必要とし、いずれかのメモリに対応するこれら２つのイネーブル・バイト信号のうち少なくとも一つをアサートしなければならない。図１に示すこの例では、メモリ５６，５８は、１６ビットを有するデータを与える。データは１６ビットを有するので、メモリ５６，５８では、データ・プロセッサ１０がこのデータ値の上位または下位バイトのうち一方または両方をデータ・プロセッサ１０と交信するかどうかを指定する必要がある。従って、第２の例では、複数のバイト・イネーブル信号は、メモリ５１〜５４の場合と同様にライト・イネーブル信号として構成してはならず、上位および下位バイトのデータのうち一方または両方を交信するため、メモリ５６またはメモリ５８のいずれかを選択的にイネーブルするためのバイト・イネーブル信号として構成しなければならない。データのリードまたはライトを行うかは、Ｒ／反転Ｗ信号の値によって決定される。
【００３９】
（図２に示すような）制御レジスタは、各イネーブル・バイト信号が各外部デバイスと正しくインタフェースするようにイネーブル・バイト信号の機能を制御する。制御レジスタおよびイネーブル・バイト信号のダイナミックな制御可能性については、以下でさらに詳しく説明する。
【００４０】
データ・プロセッサ１０の動作中に、複数の制御レジスタ９４は、チップ・セレクト機能を必要とするデータ処理動作の実行前に、チップ・セレクト制御情報が書き込まれる。チップ・セレクト制御情報は、複数の制御レジスタ９４についてすでに説明済みである。
【００４１】
さらに、データ・プロセッサ１０の動作中に、ＣＰＵ１２は外部バス・サイクルを開始できる。外部バス・サイクルとは、バス６０，６２を介してデータ・プロセッサ１０の外部で駆動されるバス・サイクルのことでである。ＣＰＵ１２は、バス２４上でアドレス値と、対応するデータ値と、適切な制御信号とを駆動することによって外部バス・サイクルを開始する。比較回路１０１は、バス２４からアドレス値を受信し、また複数の制御レジスタ９４におけるレジスタ番地（図示せず）から複数のアドレス・レンジ・ビットを受信する。次に、比較回路１０１は、受信したアドレス値に関連するアドレス・レンジを判定する。本発明の一実施例では、比較回路１０１はバス２４からのアドレス値の少なくとも一部を、複数の制御レジスタ９４によって与えられるアドレス・レンジ・ビットの各セットと比較する。複数のアドレス・レンジ・ビットは、アドレス・レンジを指定するため任意の方法および任意の数のビット・フィールドを利用してもよい。
【００４２】
次に、比較回路１０１は、制御信号１２１を制御回路１０２に転送する。制御信号１２１は、どのアドレス・レンジ、また、どのチップ・セレクト信号および（図４に示す複数の制御レジスタ９４の）複数のレジスタ３００〜４００のうちどれを制御回路１０２に利用するかを示す。次に、制御回路１０２は、制御信号１１８をチップ・セレクト発生回路１０４に与え、複数のチップ・セレクト信号のうちどれをアサートするかを選択する。また、制御回路１０２はコンダクタ１２２を介して制御信号を複数の制御レジスタ９４に送出し、複数のレジスタ３００〜４００のうちどれを選択するかを選択する。例えば、受信されたアドレス値が第１群のアドレス・レンジ・ビットによって指定された第１アドレス・レンジにある場合、制御回路１０２は複数の制御レジスタ９４のうち第１制御レジスタを選択する。第１制御レジスタが選択されると、第１制御レジスタは、格納されたＥＢＣビットの値に基づいた論理値を有するＥＢＣｏｎｔｒｏｌ信号をデコード論理回路１０５に与える。同様に、第２の受信されたアドレス値が第２群のアドレス・レンジ・ビットによって指定された第２アドレス・レンジにある場合、制御回路１０２は複数の制御レジスタ９４のうち第２制御レジスタを選択する。第２制御レジスタが選択されると、第２制御レジスタは、第２制御レジスタに格納されたＥＢＣビットの値に基づいた論理値を有するＥＢＣｏｎｔｒｏｌ信号をデコード論理回路１０５に与える。所定のチップ・セレクト信号に関連する制御レジスタに格納された値に応答してＥＢＣｏｎｔｒｏｌ信号の値を判定することにより、いかなる種類のソフトウェア介入なしに、データ・プロセッサ１０による各バイト・アクセス毎にＥＢＣｏｎｔｒｏｌ信号をダイナミックに修正できる。
【００４３】
ＥＢＣｏｎｔｒｏｌ信号だけでなく、複数の制御レジスタ９４はコンダクタ１２２を介してチップ・セレクト制御ビットを制御回路１０２に与え、セレクト信号１１４をバス結合回路１００に与える。セレクト信号１１４によって与えられる値に基づいて、バス結合回路１００は、バス６０およびバス６２のうちいずれと情報を交信するかを判定する。制御回路１０２は、複数のコンダクタ１１６を介してタイミングおよび他の制御情報をバス結合回路１００に与えることができる。
【００４４】
図２において、複数の端子１２４は、データ・プロセッサ１０に対して外部にバス６０を提供することに留意されたい。複数の端子１２６は、データ・プロセッサ１０に対して外部にバス６２を提供し、複数の端子１２８は、データ・プロセッサ１０に対して外部にチップ・セレクト信号６４〜６７を与える。
【００４５】
複数の端子１２８によって与えられるイネーブル・バイトの機能を判定するため、デコード論理回路１０５は、アドレス・コンダクタによって交信されたアドレス値の一部と、ＥＢＣｏｎｔｒｏｌ信号と、サイズ信号と、Ｒ／反転Ｗ信号とを論理的に組み合わせる。Ｒ／反転Ｗ信号は、データ・プロセッサ１０がリードまたはライト動作を実行しているかどうかを示す。さらに、本発明のこの実施例では、アドレス値は、アクセスされたアドレスのアドレス・ビット０（Ａ０）および１（Ａ１）に対応する。ＥＢＣｏｎｔｒｏｌ信号は、複数のレジスタ３００〜４００のうち選択された一つにおけるＥＢＣビットの値に応答して選択的にアサートされる。前述のように、ＥＢＣビットがニゲートされると、データ・プロセッサ１０によるリードおよびライト・アクセスは、デコード論理１０５の複数のイネーブル・バイト出力をアサートすることが許される。従って、ＥＢＣビットがニゲートされると、複数のイネーブル・バイト出力はバイト・イネーブルとして構成される。ＥＢＣビットがアサートされると、データ・プロセッサ１０によるライト・アクセスのみがデコード論理１０５の複数のイネーブル・バイト出力をアサートすることが許される。従って、ＥＢＣビットがアサートされると、複数のイネーブル・バイト出力はバイト・イネーブルではなく、ライト・イネーブルとして構成される。
【００４６】
データ・プロセッサ１０によるアクセスのサイズを判定するためには、サイズ情報がデコード論理１０５によって必要とされる。本発明のこの実施例では、２つのサイズ信号、すなわちサイズ０（Ｓ０）およびサイズ１（Ｓ１）がこの情報を表す。Ｓ０およびＳ１の両方が論理０値の場合、外部メモリから４バイトがアクセスされる。Ｓ１が論理０値で、Ｓ０が論理１値の場合、外部メモリから１バイトがアクセスされる。Ｓ１が論理１値で、Ｓ０が論理０値の場合、外部メモリから２バイトがアクセスされる。Ｓ０およびＳ１の両方が論理１値の状態は、将来用にリザーブされる。
【００４７】
前述のように、ＥＢＣｏｎｔｒｏｌ信号がアサートされると、複数のイネーブル・バイト信号はライト・イネーブル信号として機能し、データ・プロセッサ１０によるライト動作中にのみイネーブル・バイト信号をアサートする。前述のように、データ・プロセッサ１０によってアクセスされるアドレスが８ビットのデータを交信するメモリまたは周辺デバイスのレンジ内の場合に、イネーブル・バイト信号はライト・イネーブルとして構成される。本発明では、図１のメモリ・バンク５０のメモリ５１〜５４はこのようなデバイスである。外部デバイスが８ビットのデータのみを交信する場合、データのどの部分にアクセスするかを指定する必要は一般にない。従って、選択されたメモリ回路に格納されるデータ値をデータ・プロセッサが書き込むときを単純に示すため、対応するイネーブル・バイト信号をデバイスのＲ／反転Ｗ入力に与えることができる。
【００４８】
一例として、データ・プロセッサ１０によってアクセスされる第１アドレスがメモリ・バンク５０に格納されるメモリに対応するものと仮定する。このため、チップ・セレクト１信号がアサートされる。さらに、データ処理システム１５のユーザが複数の制御レジスタ９４を適切にプログラムしたと仮定する。このため、制御回路１０２がメモリ・バック５０がアクセスされたことを示すとき、複数の制御レジスタ９４のうち対応する一つもアクセスされる。複数の制御レジスタ９４のうち対応する一つは、ＥＢＣｏｎｔｒｏｌ信号をデコード論理１０５に与える。メモリ・バンク５０は８ビット幅のデータを有するメモリのみを含むので、ＥＢＣｏｎｔｒｏｌ信号はアサートされる。ＥＢＣｏｎｔｒｏｌ信号がアサートされると、デコード論理１０５は、データ・プロセッサ１０がライト動作を実行中の場合に、複数のイネーブル・バイト信号のうち適切なサブセットのみをアサートする。複数のイネーブル・バイト信号がライト・イネーブル信号として機能する場合、データ・プロセッサ１０は、それぞれに格納されたデータ値を損なわずに、メモリ・バンク５０の各メモリ５１〜５４によって与えられるすべてのデータを読み込むことができることに留意されたい。データ・プロセッサ１０がメモリ５１〜５４のうち特定の一つに対してライト動作を行うとき、イネーブル・バイトは、データ値がメモリ５１〜５４のうち選択された一つに書き込まれ、かつ他のメモリにおけるデータが損なわれないように、選択的にアサートおよびニゲートされなければならない。デコード論理１０５は、書き込まれるメモリに対応するイネーブル・バイトのみがアサートされ、従ってそのメモリのみが書き込まれることを保証する。
【００４９】
データ処理システム１５の動作の他の時点で、ＥＢＣｏｎｔｒｏｌ信号はニゲートされ、複数のイネーブル・バイト信号はバイト・イネーブル信号として機能する。バイト・イネーブル信号として機能するとき、イネーブル・バイト信号は、データ・プロセッサによるリードまたはライト動作中のいずれかでアサートされなければならない。前述のように、イネーブル・バイト信号は、データ・プロセッサ１０によってアクセスされるアドレスが８ビット以上のデータを交信するメモリまたは周辺デバイスのレンジ内にあるとき、バイト・イネーブルとして構成される。本発明では、図１のメモリ・バンク５５のメモリ５６〜５８は、このようなデバイスである。外部デバイスが８ビット以上のデータを交信するとき、データのどの部分にアクセスするかを指定する必要が一般にある。従って、データ・プロセッサ１０が選択されたメモリ回路におけるデータ値の上位バイトまたは下位バイトをそれぞれアクセスするときを示すため、対応するイネーブル・バイト信号がデバイスの上位バイト（ＵＢ）入力および下位バイト（ＬＢ）入力に与えられる。
【００５０】
一例として、データ・プロセッサ１０によってアクセスされる第２アドレスがメモリ・バンク５５内に格納されたメモリに対応すると仮定する。このため、チップ・セレクト２信号がアサートされる。さらに、データ処理システム１５のユーザが複数の制御レジスタ９４を適切にプログラムしたと仮定する。このため、メモリ・バンク５５がアクセスされたことを制御回路１０２が示すとき、複数の制御レジスタ９４のうち対応する一つもアクセスされる。複数の制御レジスタ９４のうち対応する一つは、ＥＢＣｏｎｔｒｏｌ信号をデコード論理１０５に与える。メモリ・バンク５５は８ビット幅以上のデータを有するメモリのみを含むので、ＥＢＣｏｎｔｒｏｌ信号はニゲートされる。ＥＢＣｏｎｔｒｏｌ信号がニゲートされると、デコード論理１０５は、アクセスされたメモリ番地に対応するイネーブル・バイト信号のみをアサートする。
【００５１】
この第２の例では、第１イネーブル・バイト信号はアクセスされるメモリのＵＢ入力のために必要であり、第２イネーブル・バイト信号は、ＬＢ入力のために必要である。さらに、この第２の例では、デコード論理１０５は、ＥＢＣｏｎｔｒｏｌ信号，Ｓ１信号，Ｓ０信号，Ａ１信号およびＡ０信号に応答して、イネーブル・バイト信号をアサートする。これらの信号のそれぞれの機能については、すでに詳しく説明済みである。従って、４バイトをアクセスすることを示すためＳ１およびＳ０信号がアサートされると、イネーブル・バイト信号２０４〜２１０のそれぞれはアサートされ、データ・プロセッサ１０がメモリ５６およびメモリ５８に格納されたデータの上位バイトおよび下位バイトをアクセスすることを可能にする。
【００５２】
１バイトのみをアクセスする場合、Ｓ０信号はアサートされ、Ｓ１信号はニゲートされて、デコード論理１０５に与えられる。次に、Ａ１およびＡ０信号は、上位バイトまたは下位バイトをアクセスするかを判定するために用いられる。この例では、データ・プロセッサ１０がメモリ５６に格納されたアドレス値の上位バイトのみに値を書き込む場合には、イネーブル・バイト２０８信号がアサートされる。さらに、チップ・セレクト２信号およびライト・イネーブル信号がアサートされる。
【００５３】
同様に、２バイトをアクセスする場合、Ｓ１信号はアサートされ、Ｓ０信号はニゲートされて、デコード論理１０５に与えられる。次に、Ａ１およびＡ０信号は、上位バイトおよび下位バイトの両方をアクセスするかどうかを判定するために用いられる。この例では、データ・プロセッサ１０がメモリ５６に格納されたアドレス値に１６ビット値を書き込む場合、イネーブル・バイト２０８信号およびイネーブル・バイト２１０信号の両方がアサートされる。さらに、チップ・セレクト２信号およびライト・イネーブル信号がアサートされる。
【００５４】
Ａ１およびＡ０は、１バイトまたはそれ以上の長さでもよいオペランドの最初のバイトを示す。
【００５５】
同様に、複数のイネーブル・バイト信号の柔軟性を利用して、データ・プロセッサ１０が集積回路７０および集積回路７２と交信することを可能にできる。
【００５６】
複数のイネーブル・バイト信号の機能を選択的に決定できることは、さまざまなインタフェース条件を有する多数の周辺デバイスと交信しなければならないデータ・プロセッサについて柔軟な解決方法を提供する。本発明により、制御レジスタ内の制御ビットは、現在のバイト・アクセスに基づいてイネーブル・バイト信号がどの機能を実行するかを決定できる。従って、イネーブル・バイト信号の機能は、ソフトウェアの介入なしに、あるメモリのアクセスから別のメモリのアクセスへとダイナミックに変更できる。ほとんどソフトウェアの介入なしにこのような柔軟性を提供することにより、本発明はあらゆる集積回路マイクロプロセッサで用いられる低コストなチップ・セレクト論理回路を提供する。
【００５７】
本明細書で説明した発明の実施は一例にすぎず、本明細書で説明した機能を実行する多くの他の実施が存在する。例えば、複数の制御レジスタ９４のそれぞれにおけるＥＢＣビットは、更なるビットを含むように拡張でき、従って、更なる高機能化が可能になる。
【００５８】
本発明について特定の実施例を参照して図説してきたが、更なる修正および改善は当業者に想起される。従って、本発明は図示の特定の形式に制限されず、特許請求の範囲は本発明の範囲から逸脱しない一切の修正を網羅するものとする。
【図面の簡単な説明】
【図１】本発明の一実施例によるデータ処理システムを示すブロック図である。
【図２】図１のデータ処理システムのシステム集積回路の一部を示すブロック図である。
【図３】図２のシステム集積回路の一部のデコード論理回路を示すブロック図である。
【図４】図２のシステム集積回路の一部のチップ・セレクト制御レジスタを示すブロック図である。
【符号の説明】
１０  データ・プロセッサ
１２  中央処理装置（ＣＰＵ）
１５  データ処理システム
２２  システム集積回路
２４  バス
５０，５５  メモリ・バンク
５１，５２，５３，５４  メモリ
５６，５８  メモリ
６０，６２  バス
６４  チップ・セレクト１コンダクタ
６５  チップ・セレクト２コンダクタ
６６  チップ・セレクト３コンダクタ
６７  チップ・セレクト４コンダクタ
７０，７２  集積回路
２０４，２０６，２０８，２１０  イネーブル・バイト信号
９４  制御レジスタ
９５  複数の制御レジスタ
１００  バス結合回路
１０１  比較回路
１０２  制御回路
１０４  チップ・セレクト発生回路
１０５  デコード論理
１１０  アドレス・バス
１１２  データ・バス
１１４  コンダクタ
１１６  制御バス
１１８，１２１  コンダクタ
１２３，１２４，１２６，１２８  端子
２００，２０４，２０８，２１０，２１２，２１６，２１８，２２２，２２４，２２６，２３０  ＡＮＤゲート
２０２，２０６，２１４，２２０，２２８  ＯＲゲート
２０４  イネーブル・バイト０（ＥＢ０）信号
２０６  イネーブル・バイト１（ＥＢ１）信号
２０８  イネーブル・バイト２（ＥＢ２）信号
２１０  イネーブル・バイト３（ＥＢ３）信号
３００〜４００  レジスタ
【図１】
0003576325.tif 000002
【図２】
0003576325.tif 000003
【図３】
0003576325.tif 000004
【図４】
0003576325.tif 000005