(57)【要約】      （修正有）【課題】モジュール方式のチップ選択制御回路を第１の数のアドレスデコーダを備えたアドレスデコード段、第２の数の制御ユニットを備えた制御段、および第３の数のピン構成論理回路を備えたピン構成段を持たせることによってスケーリング可能にする。【解決手段】メモリ領域数、アクセスパイプライン深さ、およびチップ選択信号数は独立でありチップ設計に応じて変え得る。前記制御段は制御ユニットがアクセスされた領域の特性に基づき継続中のメモリサイクルをパイプライン化可能にする早期パイプライン制御回路を含む。早期パイプライン制御回路は制御ユニットとともにデータの完全性および適切なサイクル終了を保証するため１組のパイプライン化ルールを実施し、効率的な一連のパイプライン化されたメモリアクセスサイクルを提供する。【選択図】図８
2007018522.tif 000002
【特許請求の範囲】
【請求項１】
マルチレベル保護機構を備えたデータプロセッサ（３０）であって、
プログラムに応じてアドレスおよび少なくとも１つの対応する制御信号を複数のメモリアクセスの各々に対して順次発生するための中央処理ユニット（ＣＰＵ）（３１）、そして
前記ＣＰＵ（３１）に結合されたマルチレベル保護回路（５０）であって、
前記アドレスを受けるための第１の入力、前記少なくとも１つの対応する制御信号を受けるための第２の入力、もし前記アドレスが第１のプログラム可能な領域（４１）内にあれば第１のアドレス整合信号を提供する第１の出力、およびもし前記少なくとも１つの対応する制御信号が第１のプログラム可能な保護属性と整合すれば第１の属性整合信号を提供する第２の出力を有する第１のデコーダ（５１）、
前記アドレスを受けるための第１の入力、前記少なくとも１つの対応する制御信号を受けるための第２の入力、もし前記アドレスが第２のプログラム可能な領域（４２）内にあれば第２のアドレス整合信号を提供する第１の出力、およびもし前記少なくとも１つの対応する制御信号が第２のプログラム可能な保護属性と整合すれば第２の属性整合信号を提供する第２の出力を有する第２のデコーダ（５４）、そして
前記第１（５１）および第２（５４）のデコーダの各々の前記第１および第２の出力を受けるための入力、および外部装置（２２，２３，２４，２５）をアクセスするために少なくとも１つの外部制御信号の発生をイネーブルするためのイネーブル信号を提供する出力を有する優先度実施回路（５８）、
を具備し、
前記優先度実施回路（５８）は前記第１および第２のアドレス整合信号の内の１つのみがアクティブでありかつ前記第１および第２の属性整合信号の内の対応する１つがアクティブである場合に前記イネーブル信号をアクティベイトし、
前記優先度実施回路（５８）は前記第１および第２のアドレス整合信号の双方がアクティブでありかつ前記第２の属性整合信号がインアクティブである場合に前記イネーブル信号をインアクティブに保ち、
それによって前記プログラム可能な領域（４２）が前記第１のプログラム可能な領域（４１）とオーバラップできるようにしたもの、
を具備することを特徴とするマルチレベル保護機構を備えたデータプロセッサ（３０）。
【請求項２】
マルチレベル保護回路（５０）であって、
入力アドレスを受けるための第１の入力、入力属性を受けるための第２の入力、もし前記入力アドレスが第１のプログラム可能な領域（４１）内にあれば第１のアドレス整合信号を提供する第１の出力、およびもし前記入力属性が第１のプログラム可能な保護属性と整合すれば第１の属性整合信号を提供する第２の出力を有する第１のデコーダ（５１）、
前記入力アドレスを受けるための第１の入力、前記入力属性を受けるための第２の入力、もし前記入力アドレスが第２のプログラム可能な領域（４２）内にあれば第２のアドレス整合信号を提供する第１の出力、そしてもし前記入力属性が第２のプログラム可能な保護属性と整合すれば第２の属性整合信号を提供する第２の出力を有する第２のデコーダ（５４）、そして
前記第１（５１）および第２（５４）のデコーダの各々の前記第１および第２の出力を受けるための入力、および外部装置へアクセスするために少なくとも１つの外部制御信号の発生を可能にするイネーブル信号を提供するための出力を有する優先度実施回路（５８）、
を具備し、前記優先度実施回路（５８）は前記第１および第２のアドレス整合信号の内の１つのみがアクティブでありかつ前記第１および第２の属性整合信号の内の対応する１つがアクティブであれば前記イネーブル信号をアクティベイトし、
前記優先度実施回路（５８）は前記第１および第２のアドレス整合信号の双方がアクティブでありかつ前記第２の属性整合信号がインアクティブであれば前記イネーブル信号をインアクティブに保ち、
それによって前記第２のプログラム可能領域（４１）が前記第１のプログラム可能領域（４１）にオーバラップできるようにしたことを特徴とするマルチレベル保護回路（５０）。
【請求項３】
データプロセッサのためのマルチレベル保護を提供する方法であって、
第１の領域のアドレス（４１）および該第１の領域のアドレスに関連する第１のプログラム可能保護属性を規定する段階、
第２の領域のアドレス（４２）および該第２の領域のアドレスに関連する第２のプログラム可能な保護属性を規定する段階であって、それによって前記第２の領域のアドレス（４２）が少なくとも部分的に前記第１の領域のアドレス（４１）とオーバラップするもの、
対応する入力属性を有する入力アドレスを受ける段階、
該入力アドレスが前記第１の領域のアドレス（４１）内にあれば第１のアドレス整合を検出する段階、
前記入力アドレスが前記第２の領域のアドレス（４２）内にあれば第２のアドレス整合を検出する段階、
入力属性が前記第１のプログラム可能な保護属性と整合すれば第１の属性整合を検出する段階、
前記入力属性が前記第２のプログラム可能な保護属性と整合すれば第２の属性整合を検出する段階、
前記第１および第２のアドレス整合の内の１つのみの検出および前記第１および第２の属性整合の対応する１つの検出に応じてイネーブル信号をアクティベイトする段階、そして
前記第１および第２のアドレス整合の双方の検出および前記第２の属性整合の不検出に応じて前記イネーブル信号をインアクティブに保つ段階、
を具備することを特徴とするデータプロセッサのためのマルチレベル保護を提供する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は一般的にはデータプロセッサに関し、かつより特定的には、集積回路マイクロプロセッサおよびマイクロコンピュータのためのチップ選択論理回路に関する。
【背景技術】
【０００２】
集積回路マイクロプロセッサは、多くの場合、ある機能を提供するためには他の集積回路装置と接続されなければならない。そのような外部装置の例は、メモリ、シリアルインタフェースアダプタ、アナログ−デジタル変換器および数多くの他のものを含む。たいていの場合、各々のそのような外部装置は該装置がマイクロプロセッサによってアクセスされたとき適切に作動されるためには外部制御信号を必要とする。例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）集積回路は読出しおよび書込みアクセスを制御するためにチップイネーブル、出力イネーブル、および書込みイネーブル制御信号を必要とする。これらの信号のタイミング要件は商業的に入手可能な装置の間でいくらか異なっている。例えば、いくつかのＳＲＡＭは前記出力イネーブル信号に対して非同期で出力データを提供し、一方他のＳＲＡＭは出力イネーブルをサンプルしかつクロック信号と同期して出力データを提供する。
【０００３】
典型的にはマイクロプロセッサおよび他の集積回路を使用するシステムの設計者はマイクロプロセッサそれ自体によって生成されるアドレスおよびバス制御信号から必要なチップ選択信号を発生するために「グルーロジック（ｇｌｕｅ  ｌｏｇｉｃ）」を使用する。この余分のロジックは設計されているシステムのコストを大幅に加算しかつ性能を劣化させることがあり、従って非常に望ましくないものである。
【０００４】
アメリカ合衆国、カリフォルニア州サンタ・クララのインテル・コーポレイション（Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ）から入手可能な８０１８６型（ｉＡＰＸ  １８６とも称される）のものはチップ選択信号を発生するための内部論理を有する集積回路マイクロプロセッサである。このチップ選択論理は７つの可能なチップ選択の各々がアクティブであるアドレス範囲をプログラムする限られた能力を有しかつ各々のチップ選択がアクティブであるバスサイクルにプログラム可能に待機状態を挿入できる。さらに、チップ選択のいくつかはマイクロプロセッサのメモリまたはＩ／Ｏアドレス空間においてのみアクティブとなるようプログラムすることができる。
【０００５】
オンボードチップ選択論理を備えた集積回路マイクロプロセッサの他の例はジョン・エイ・ランガン（Ｊｏｈｎ  Ａ．Ｌａｎｇａｎ）およびジェイムズ・エム・シビグトロス（Ｊａｍｅｓ  Ｍ．Ｓｉｂｉｇｔｒｏｔｈ）による米国特許第５，１５１，９８６号、１９９２年９月２９日発行、に開示されたものである。この開示されたチップ選択論理は制御レジスタを含み、該制御レジスタによって待機状態のタイミング、極性および数がいくつかのチップ選択出力の各々に対して個別にプログラムできる。
【特許文献１】特開平０５−１５８８６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
チップ選択論理をマイクロプロセッサの集積回路上に集積することに関連する主な問題は十分な柔軟性をユーザに提供することに関連する。グルーロジックの使用は極めて柔軟性があり、それはシステム設計者はマイクロプロセッサのメモリマップとともに各々の外部装置を配置する上でおよびチップ選択信号それ自体のタイミングおよび他の特性において広い許容範囲を有するからである。この柔軟性は非常に有用であり、それは可能なシステム設計および特定の周辺装置に対するチップ選択要求の多様性が大きいからである。ユニットの寸法および複雑さを合理的な限界内に制限しながら集積回路化されたチップ選択ユニットに十分な柔軟性を提供することは非常に困難である。
【０００７】
同時に、集積回路のコストを最小にすることが重要である。チップ選択論理を集積するコストに対しいくつかの要因が関係する。１つの要因はチップ選択論理によって必要とされる回路領域の量であり、それはより大きなチップサイズはウエハーあたりで得られるダイの数、その他を低下させるからである。他の要因は装置のピンの数であり、それはより大きなピン数のパッケージは一般により高価であるためである。第３の要因はチップを設計するのに必要とされる工学技術的努力の量であり、かつ設計時間がより短いチップが好ましい。
【０００８】
従って、集積回路マイクロプロセッサのために柔軟性がありさらに低価格のチップ選択論理回路を提供する必要がある。
【課題を解決するための手段】
【０００９】
従って、１つの形態で、アドレスデコード段、タイミング制御段、およびピン構成段を含む、モジュール方式のチップ選択制御回路が提供される。アドレスデコード段は第１の複数のアドレスデコーダを有する。各々のアドレスデコーダはプログラム可能な領域に関連しかつ入力アドレスがそのプログラム可能な領域内にあれば少なくとも１つの対応する制御信号を作動させる（アクティベイト：ａｃｔｉｖａｔｅｓ）。前記タイミング制御段は前記アドレスデコード段に結合され、かつ第２の複数の制御ユニットを有する。各々の制御ユニットは少なくとも１つの対応する制御信号を前記第１の所定の数のアドレスデコーダの各々から受信しかつそれに応じてメモリアクセスを制御するために対応する複数のタイミング信号を提供する。前記ピン構成段は前記アドレスデコード段にかつ前記タイミング制御段に結合され、かつ第３の複数のピン構成論理回路を有する。各々のピン構成論理回路は複数のチップ選択信号の内の選択された１つを提供しかつ該複数のチップ選択信号の内の選択された１つに対応する前記複数のタイミング信号の内の選択されたものに応答するようプログラムされる。
【００１０】
これらおよび他の特徴および利点は図面とともに以下の詳細な説明を参照することによりさらに明瞭に理解されるであろう。
【発明の効果】
【００１１】
本発明によれば、集積回路マイクロプロセッサおよびマイクロコンピュータのための柔軟性がありかつ低価格のチップ選択論理回路が実現できる。
【発明を実施するための最良の形態】
【００１２】
図１は、本発明に係わるデータ処理システム２０をブロック図形式で示す。データ処理システム２０は概略的に外部バス２１、電気的にプログラム可能なリードオンリメモリ（ＥＰＲＯＭ）２２、スタティックランダムアクセスメモリ（ＳＲＡＭ）２３、入力／出力（Ｉ／Ｏ）チップ２４、Ｉ／Ｏチップ２５、およびデータプロセッサ３０を含む。データプロセッサ３０はデータ処理システム２０の中央処理ユニット（ＣＰＵ）として機能する単一の集積回路でありかつ概略的にＣＰＵコア３１、チップ選択回路３２、および外部バスインタフェース３３、そして内部バス３４を含む。
【００１３】
ＣＰＵコア３１は複雑命令セットコンピュータ（ＣＩＳＣ）、少数命令セットコンピュータ（ＲＩＳＣ）、デジタル信号プロセッサ（ＤＳＰ）、または任意の他の知られたアーキテクチャのような、任意の知られたＣＰＵアーキテクチャを使用して実施できる。さらに、データプロセッサ３０は高度に集積化されたマイクロプロセッサ、またはマイクロコントローラ（組込み型コントローラ、マイクロコンピュータ、その他）と考えることもできる。マイクロコントローラの場合は、オンチップのかつ内部バス３４に接続された、メモリおよび周辺装置のような、データ処理システムの他の伝統的なエレメントを含む。しかしながら、データ処理システム２０においては、そのような装置はまたオフチップとして含むことができかつデータプロセッサ３０はこれらの装置に外部バスインタフェース３３を使用して外部バス２１により接続される。
【００１４】
外部バスインタフェース３３は内部バス３４を介してＣＰＵ３１に接続され、かつ外部バス２１に信号を提供する。外部バスインタフェース３３は内部バス３４を単一の外部バス２１に適合させるよう作用する。例えば、もしＣＰＵコア３１が別個の命令およびデータパス（ｐａｔｈｓ）を備えたハーバード・アーキテクチャ（Ｈａｒｖａｒｄ  ａｒｃｈｉｔｅｃｔｕｒｅ）を実施すれば、外部バスインタフェース３３はこれらの別個の命令およびデータパスからのアクセスを外部バス２１上に順次導く。
【００１５】
集積回路数を低減するために、データプロセッサ３０はＥＰＲＯＭ２２、ＳＲＡＭ２３およびＩ／Ｏチップ２４および２５に対し直接提供されるべきタイミングおよび制御信号を発生するためにチップ選択回路３２を含む。例えば、図示された実施例では、チップ選択回路３２は外部バス２１から命令をフェッチするためにＥＰＲＯＭ２２にチップイネーブル（＊ＣＥ）および出力イネーブル（＊ＯＥ）として知られた２つのアクティブローのチップ選択信号を提供する。ここで記号＊は信号の否定または反転を表わし、図面中のオーバーバー（上線）に対応する。読出し−書込み装置をアクセスするため、チップ選択回路３２はまたＳＲＡＭ２３およびＩ／Ｏチップ２４および２５に対し提供される書込みイネーブル信号のような、書込みイネーブル（＊ＷＥ）信号を提供する。チップ選択回路３２は外部バス２１へのアクセスに関連するアドレス、属性、および制御信号を受けるための外部バスインタフェース３３への双方向接続を有する。オンチップのボードレベルのロジックを集積することに加えて、チップ選択回路３２は改善された外部インタフェースを提供し、それらの様相については図２〜図９において概略的に説明する。
【００１６】
図２は、図１のデータ処理システム２０のメモリマップの１つの部分４０をブロック図形式で示す。部分４０は概略的に一連のアドレスをより大きなアドレスがより小さなアドレスの上に表される降下順で示している。部分４０は「メインブロックのハイアドレス（ＭＡＩＮ  ＢＬＯＣＫ  ＨＩＧＨ  ＡＤＤＲＥＳＳ）」および「メインブロックのローアドレス（ＭＡＩＮ  ＢＬＯＣＫ  ＬＯＷ  ＡＤＤＲＥＳＳ）」によって区画されるメインブロック４１を含む。図１のチップ選択回路３２はサブブロック４２をメインブロック４１の完全に境界内に入るようあるいは該境界にオーバラップするようプログラムする能力を有する。このオーバラップする制御は有用であり、それはメモリの密度が増大するに応じて、単一のメモリ集積回路に関連する、各々異なるプログラム可能な属性を備えた、１つより多くの領域をもつことが有用であるからである。このため、サブブロック４２は完全にメインブロック４１内に配置することができ、かつ図２に示されるように「サブブロックのハイアドレス（ＳＵＢ−ＢＬＯＣＫ  ＨＩＧＨ  ＡＤＤＲＥＳＳ）」および「サブブロックのローアドレス（ＳＵＢ−ＢＬＯＣＫ  ＬＯＷ  ＡＤＤＲＥＳＳ）」によって区画されている。
【００１７】
チップ選択回路３２は図３に示されるようにこのオーバラップするメモリマップを実施し、図３は図１のチップ選択回路３２のマルチレベル保護回路５０をブロック図形式で示している。マルチレベル保護回路５０は、それらの内のいくつかがオーバラップできる、任意の数のブロックに対するデコーダを含んでいる。例えば、図３に示されるように、マルチレベル保護回路５０は図２のメインブロック４１およびサブブロック４２を実施するため、それぞれ、メインブロックデコーダ５１およびサブブロックデコーダ５４を含む。ここで使用される「ブロック」および「領域」という用語は同義語であり、かつ「サブブロック」はより大きなブロックまたは領域の境界内のブロックまたは領域を表している。
【００１８】
メインブロックデコーダ５１は前記「メインブロックのローアドレス」に対応するベースアドレスレジスタ５２、およびオプションレジスタ５３を含む。オプションレジスタ５３はブロックサイズフィールドを含み、該ブロックサイズフィールドは、ベースアドレスレジスタ５２に格納されたベースアドレスに加えられたとき、前記「メインブロックのハイアドレス」を決定する。さらに、オプションレジスタ５３はメインブロック４１に関連する領域の保護のための属性を記憶する。同様に、サブブロックデコーダ５４は前記「サブブロックのローアドレス」を決定するベースアドレスレジスタ５５、および前記「サブブロックのハイアドレス」を決定するブロックサイズフィールドを含むオプションレジスタ５６を含む。さらに、オプションレジスタ５６はサブブロック４２に関連するプログラム可能な属性のためのフィールドを含む。
【００１９】
メインブロックデコーダ５１およびサブブロックデコーダ５４の双方は図１のＣＰＵコア３１のバスサイクルの間に「アドレス（ＡＤＤＲＥＳＳ）」と名付けられた入力アドレスを受入れ、かつさらに、進行中のサイクルの「保護属性（ＰＲＯＴＥＣＴＩＯＮ  ＡＴＴＲＩＢＵＴＥＳ）」と名付けられた保護属性を表す制御信号を受入れる。そのような保護属性の例は書込み信号指示である。もしメインブロック４１またはサブブロック４２が、例えば、書込み保護されていれば、書込み信号は継続中のサイクルが書込みサイクルでありかつ従って現在のサイクルはプログラムされた保護に整合しないことを示すことになる。メインブロックデコーダ５１およびサブブロックデコーダ５４の各々は前記「アドレス」を前記ベースアドレスレジスタおよび対応するオプションレジスタの領域サイズフィールドによって規定される領域と比較する。もし前記「アドレス」が前記領域内にあれば、対応するブロックデコーダは「アドレス整合（ＡＤＤＲＥＳＳ  ＭＡＴＣＨ）」と名付けられた、アドレス整合信号を作動（アクティベイト）させる。さらに、もし前記入力保護属性が前記対応するオプションレジスタのプログラムされた値と整合すれば、ブロックデコーダは「属性整合（ＡＴＴＲＩＢＵＴＥ  ＭＡＴＣＨ）」と名付けられた、対応する属性整合信号を作動させる。
【００２０】
優先度実施回路５８は次に各々のブロックから前記「アドレス整合」および「属性整合」信号を受信しかつ優先度メカニズムに基づき“＊ＣＥ”と名付けられた信号のような、外部制御信号を作動させるか否かを決定する。もしメインブロックデコーダ５１およびサブブロックデコーダ５４の内の１つのみがその「アドレス整合」信号を作動させれば、優先度実施回路５８は対応する「属性整合」信号もまたアクティブである場合にのみ信号＊ＣＥをアクティベイトする。次に図２および図３を一緒に参照すると、「アドレス」が前記「メインブロックのローアドレス」と前記「サブブロックのローアドレス」の間にあるものと仮定する。この場合、メインブロックデコーダ５１はアドレス整合を検出しかつ信号「アドレス整合」をアクティベイトする。さらに、前記「保護属性」がオプションレジスタ５３にプログラムされた保護属性と整合するものと仮定する。この場合、メインブロックデコーダ５１もまた信号「属性整合」をアクティベイトする。しかしながら、前記「アドレス」はサブブロック４２内にないから、サブブロックデコーダ５４はそのアドレス整合信号をアクティベイトしない。従って、優先度実施回路５８はメインブロック４１内のアドレスおよび属性整合に基づき信号＊ＣＥをアクティベイトすることになる。
【００２１】
次に、前記「アドレス」がサブブロック４２内に入る場合を考える。この場合、メインブロックデコーダ５１およびサブブロックデコーダ５４の双方はそれらの対応する「アドレス整合」信号をアクティベイトする。また、前記「保護属性」がオプションレジスタ５３において規定されたものと整合し、従ってメインブロックデコーダ５１がその「属性整合」信号をアクティベイトするものと想定する。しかしながら、同時に、前記「保護属性」はオプションレジスタ５６にプログラムされた属性と整合せず、従ってサブブロックデコーダ５４はその「属性整合」信号をアクティベイトしないものとする。この場合、優先度実施回路５８は信号＊ＣＥをインアクティブに保ち、サブブロックデコーダ５４のメインブロックデコーダ５１に対する優先度を認識する。従って、サブブロック４２はより高い保護優先度でメインブロック４１内にネストすることができる。このブロックのネスティングおよびブロック間の優先順位付けは任意の数のネスティングに拡張できる。
【００２２】
図４は、図１のチップ選択回路３２のプログラム可能なアクセスタイプ回路６０をブロック図形式で示す。プログラム可能なアクセスタイプ回路６０は概略的にインタフェースタイプフィールド６２を有するオプションレジスタ６１、インタフェースタイプデコーダ６３、およびアクセスコントローラ６４を含む。オプションレジスタ６１は図３に前に示されたようなプログラム可能な領域に関連するレジスタであり、インタフェースタイプ（ＩＴＹＰＥ）フィールド６２を含む。ＩＴＹＰＥフィールド６２は符号化されたインタフェースタイプ値を含み、これはインタフェースタイプデコーダ６３の入力に与えられる。インタフェースタイプデコーダ６３は次にＩＴＹＰＥフィールド６２をデコードしかつデコードされた信号をアクセスコントローラ６４に提供する。アクセスコントローラ６４は次に「クロック（ＣＬＯＣＫ）」と名付けられた入力クロック信号に基づき＊ＣＥ，＊ＯＥおよび＊ＷＥに対するタイミング情報を発生する。
【００２３】
知られたチップ選択回路においては、オプションレジスタはあらかじめデコードされたフィールドにおける個々の信号に対するタイミングおよびインタフェース特性を規定する。従って、１つまたはそれ以上のこれらのビットを汚染するソフトウエアエラーが存在する場合に、不当なタイミングの組合わせが発生されその結果ハードウエアエラーまたはプログラムの汚染を生じる結果となる。しかしながら、プログラム可能なアクセスタイプ回路６０はそのようなエラーを引起こす組合わせを防止し、かつ従ってデータプロセッサ３０はソフトウエアエラーに対しより免疫性がありかつより迅速かつよりエラーのないソフトウエア開発を可能にする。プログラム可能なアクセスタイプ回路６０はこれらのソフトウエアエラーが規定されていないメモリアクセスを生じることを符号化されたＩＴＹＰＥフィールドを使用することにより防止する。ソフトウエア開発の間、ＩＴＹＰＥフィールド６２はソフトウエアエラーの結果として不適切に符号化されることがあり、それによってＩＴＹＰＥフィールド６２の１つまたはそれ以上のビットが正しくない値をもつことがある。インタフェースタイプデコーダ６３は、ＩＴＹＰＥフィールド６２からの符号化された信号をデコードすることにより、正当な（ｌｅｇａｌ）状態またはリザーブされた状態をとることができるデコードされた信号を提供する。もしＩＴＹＰＥフィールド６２が正当な状態を符号化すれば、インタフェースタイプデコーダ６３は選択された正当なインタフェースタイプに基づきタイミング情報を提供するためアクセスコントーラ６４に出力を提供する。しかしながら、もしＩＴＹＰＥフィールド６２がリザーブされた状態を符号化すれば、インタフェースタイプデコーダ６３はアクセスコントローラ６４へのその出力をアクティベイトしない。従って、アクセスコントローラ６４は外部バスサイクルを行わないことになる。
【００２４】
図５は、図１のチップ選択回路３２によって行われる第１のメモリアクセスタイプのタイミング図を示す。図５には「クロック（ＣＬＯＣＫ）」、「アドレス（ＡＤＤＲＥＳＳ）」、＊ＷＥ、＊ＣＥ、＊ＯＥおよび「データ（ＤＡＴＡ）」を含む、この第１のメモリアクセスタイプの理解に関連するいくつかの信号が示されている。このメモリアクセスタイプは「早期同期出力イネーブルを備えた同期インタェース（ｓｙｎｃｈｒｏｎｏｕｓ  ｉｎｔｅｒｆａｃｅ  ｗｉｔｈ  ｅａｒｌｙ  ｓｙｎｃｈｒｏｎｏｕｓ  ｏｕｔｐｕｔ  ｅｎａｂｌｅ）」タイプとして知られている。図５の第１のラインには信号「クロック」が示されており、この信号に対しては図５に示されたすべての他の信号が同期する。信号「クロック」の“ｔ１”，“ｔ２”および“ｔ３”で示された３つの時点および引続くローからハイへの遷移に対応する時点はこのメモリアクセスタイプを理解することに関連している。
【００２５】
図５は時間ｔ１の前にすべての前のアクセスが終了しているものと仮定していることに注意を要する。また、図５に示された信号波形はチップ選択回路３２がアクセスサイクルのアドレスおよびデータフェーズをアクノレッジするために外部バスインタフェース３３に信号を提供するものと仮定していることに注目すべきである。しかしながら、もし外部アクノレッジ信号が使用されれば、アクセスのアドレスおよびデータフェーズの期間はいつこれらのアクノレッジ信号が受信されるかに依存することになる。例えば、“＊ＡＡＣＫ”で示される、アドレスアクノレッジとして知られた信号はアクセスサイクルのアドレスフェーズをアクノレッジする。チップ選択回路３２はそれが前記「クロック」のローからハイへの遷移の前に信号＊ＡＡＣＫのアクティベイションを検知するまで信号＊ＣＥをアクティブに保つ。“＊ＴＡ”で示される、転送アクノレッジとして知られる信号はアクセスサイクルのデータフェーズの終了をアクノレッジする。チップ選択回路３２はそれが前記「クロック」のローからハイへの遷移の際に信号＊ＴＡのアクティベイションを認識するまで信号＊ＯＥ（読出しサイクルの間）または＊ＷＥ（書込みサイクルの間）をアクティブに保つ。
【００２６】
“Ａ１”と名付けられた、第１のメモリアクセスに対応するアドレスは時点ｔ１における信号「クロック」のローからハイへの遷移にセットアップされる。このアクセスが読出しアクセスであることを通知するため、チップ選択回路３２は信号＊ＷＥをインアクティブにする。さらに、チップ選択回路３２は信号＊ＣＥをアクティベイトして、ｔ１の前のセットアップ時間に、アクセスされたメモリ装置にアドレスＡ１をラッチさせかつアクセスサイクルを開始させる。続いて、時間ｔ２における信号「クロック」のローからハイへの遷移の前に、チップ選択回路３２は、ｔ２よりあるセットアップ時間前に、信号＊ＯＥをアクティベイトする。信号＊ＯＥのアクティベイションによりメモリ装置がそのデータを出力し始める。信号「クロック」のローからハイへの遷移にセットアップされることにより、信号＊ＯＥは同期しかつこのタイプのアクセスサイクルに応答するメモリ装置は信号「クロック」のローからハイへの遷移時に信号＊ＯＥを認識する。メモリ装置が信号＊ＯＥのアクティベイションを認識した後、それは読出しアクセスサイクルを完了させるためにその出力データを提供し始める。図５に示されているように、チップ選択回路３２にプログラムされたこのアクセスタイプに対応するメモリ装置は１つの待機状態（ｗａｉｔ  ｓｔａｔｅ）を有する。従って、チップ選択回路３２は時間ｔ２のあるセットアップ時間前に信号＊ＯＥをアクティベイトし、メモリ装置に、“Ｄ１”と名付けられた、アクセスされたデータエレメントを時間ｔ３における信号「クロック」のローからハイへの遷移に対しあるセットアップ時間前に提供させる。
【００２７】
このアクセスタイプの利点は比較的低速のメモリコアを備えたメモリ装置が順次（ｓｅｑｕｅｎｔｉａｌｌｙ）および効率的にアクセスできることにある。信号＊ＯＥがｔ２にセットアップされかつ時間ｔ２においてアクセスされたメモリ装置によって認識されるから、チップ選択回路３２は第１のアクセスのデータフェーズの完了前に、早期に第２のアクセスのアドレスフェーズを行うことができる。チップ選択回路３２は時間ｔ３の少なくともセットアップ時間前に“Ａ２”と名付けられた第２のオーバラップするアドレスを提供し、再び信号＊ＷＥをインアクティブに保ちかつ再び信号＊ＣＥをｔ３のセットアップ時間前にアクティベイトする。
【００２８】
他のインタフェースタイプが図６に示されており、図６は図１のチップ選択回路３２によって行われる第２のメモリアクセスタイプのタイミング図を示している。図５の場合と同様に、「クロック（ＣＬＯＣＫ）」、「アドレス（ＡＤＤＲＥＳＳ）」、＊ＣＥ、＊ＯＥおよび「データ（ＤＡＴＡ）」を含む、バスサイクルに関連する信号が示されている。さらに、図６は“＊ＢＤＩＰ”と名付けられた信号を示しており、この信号はバーストデータサイクルが進行中であることを示す。図６は、「同期＊ＯＥを備えた同期バースト読出し」タイプとして知られたメモリアクセスタイプを示す。図６には“ｔ４”，“ｔ５”，“ｔ６”，“ｔ７”，“ｔ８”，“ｔ９”および“ｔ１０”で示される信号「クロック」のさらに他のローからハイへの遷移が示されている。
【００２９】
このタイプのアクセスは図５に示されたアクセスと同様のものであるが、図５に示されたアクセスと異なり、アクセスされるメモリ装置が時点ｔ６，ｔ７，ｔ８およびｔ９において４つの直列的なデータエレメントを提供することによりバスートアクセスを行う。これらの４つのデータエレメントはそれぞれ“Ｄ１０”，“Ｄ１１”，“Ｄ１２”および“Ｄ１３”と名付けられている。チップ選択回路３２にプログラムされたこのアクセスタイプに応答するメモリ装置は１つの待機状態を有する。従って、時間ｔ５において信号＊ＯＥのアクティベイションを認識した後、メモリ装置はアクセスされたデータエレメントＤ１０を、時点ｔ６における信号「クロック」のローからハイへの遷移のセットアップ時間前に、提供する。バーストの一部として引続きデータエレメントが信号＊ＢＤＩＰのアクティベイションに応じて信号「クロック」の引続くローからハイへの遷移の際に提供される。このアクセスサイクルタイプの利点は比較的低速のメモリコアを備えたメモリ装置が直列的にかつ効率的にアクセスできるという事実にある。
【００３０】
さらに他のインタフェースタイプが図７に示されており、同図は前記図１のチップ選択回路３２によって行われる第２のメモリアクセスタイプのタイミング図を示す。図５の場合と同様に、バスサイクルに関連する信号が示されておりこれらは「クロック（ＣＬＯＣＫ）」、「アドレス（ＡＤＤＲＥＳＳ）」、＊ＷＥ、＊ＣＥ、＊ＯＥおよび「データ（ＤＡＴＡ）」を含む。図７は「同期＊ＯＥおよび早期オーバラップを備えた同期インタフェース」タイプとして知られたメモリアクセスタイプを示す。“ｔ１１”，“ｔ１２”，“ｔ１３”および“ｔ１４”で示される信号「クロック」の付加的なローからハイへの遷移が図７に示されている。
【００３１】
ｔ１１の近くで、Ａ１と名付けられた、第１のバスサイクルのアドレスがｔ１１で生じる信号「クロック」のローからハイへの遷移に対してセットアップされる。さらに、信号＊ＷＥはインアクティブでありかつ＊ＣＥはアクティブであり（“ＣＥ１”で示されている）アドレスＡ１が有効である時間における読出しサイクルを示している。引続き、この第１のアクセスに対応するデータフェーズが時間ｔ１２へのセットアップ時間前にチップ選択回路３２が信号＊ＯＥ（“ＯＥ１”で示されている）をアクティベイトすることによって生じる。引続き、前に図５で示したように、アクセスされたメモリ装置が時間ｔ１３のセットアップ時間前にデータエレメントＤ１を提供する。
【００３２】
しかしながら、このインタフェースタイプによれば、チップ選択回路３２は少なくとも前記第１のアクセスのデータフェーズの一部の間にアドレスフェーズを行うことにより第２のアクセスを開始する。チップ選択回路３２は時間ｔ１２における信号「クロック」のローからハイへの遷移のセットアップ時間前に、Ａ２と名付けられた第２のアドレスを提供することによってこのインタフェースを行う。前と同様に、チップ選択回路３２は読出しサイクルを示すために信号＊ＷＥをインアクティブに保ち、かつアクセスされたメモリ装置にアドレスＡ２が有効であることを示すために信号＊ＣＥ（“ＣＥ２”として示されている）をアクティベイトする。アクセスされたメモリ装置がデータエレメントＤ１を提供することによって第１のアクセスのデータフェーズが完了した後、時間ｔ１３のセットアップ時間前に、第２のアクセスのデータフェーズがチップ選択回路３２が、時間ｔ１３のセットアップ時間前に、信号＊ＯＥ（“ＯＥ２”で示されている）をアクティベイトすることによって行うことができる。引続き、アクセスされたメモリ装置は時間ｔ１４のセットアップ時間前に“Ｄ２”と名付けられたデータエレメントを提供する。第１のアクセスのデータフェーズの終了前に、第２のアクセスのアドレスフェーズを開始することによって、チップ選択回路３２はアクセスをオーバラップさせることができ、これはバス利用を改善しかつ与えられた量の時間内により多くのメモリアクセスを行わせることができる。
【００３３】
チップ選択回路３２はまたモジュール方式とされ図８に示されるように異なるアプリケーションに対して再構築が可能とされ、図８は図１のチップ選択回路３２のモジュール方式のチップ選択制御回路８０をブロック図形式で示している。モジュール方式のチップ選択制御回路８０は、「デコードバス（ＤＥＣＯＤＥ  ＢＵＳ）」８１と名付けられた第１のバス、および「タイミングバス（ＴＩＭＩＮＧ  ＢＵＳ）」８２と名付けられた第２のバスを含む、信号の相互接続のための２つのバスを含む。モジュール方式のチップ選択制御回路８０はまたアドレスデコード段９０、タイミング制御段１００、およびピン構成段１１０を含む。モジュール方式のチップ選択制御回路８０はモジュール方式となっておりかつ第１の任意の数のアドレスデコーダおよびアドレスデコード段９０、タイミング制御段１００における第２の任意の数の制御ユニット、および第３の任意の数のピン構成論理回路およびピン構成段１１０を含めることによって再構築できる。
【００３４】
図８に示されるように、アドレスデコード段は代表的なアドレスデコーダ９１，９４および９７を含む。アドレスデコーダ９１はベースアドレスレジスタ９２およびオプションレジスタ９３を含む。ベースアドレスレジスタ９２はアドレスデコーダ９１に関連するプログラム可能な領域のためのベースアドレスを規定する。オプションレジスタ９３はアドレスデコーダ９１に関連する領域のサイズおよびこの領域の属性に関連する他のプログラム可能なフィールドを含む。アドレスデコーダ９１は内部バス３４によって図１のＣＰＵコア３１からアドレスを受取りかつ比較を行ってこのアドレスがオプションレジスタ９３のサイズフィールドにあるベースアドレスレジスタ９２によって規定される領域内にあるか否かを調べる。アドレス整合に応じて、アドレスデコーダ９１は制御信号をデコードバス８１に提供する。同様に、アドレスデコーダ９４および９７もまた前記アドレスがそれらの対応するプログラム可能な領域内にあるか否かを検出しかつそれに応じて制御信号をデコードバス８１に提供する。アドレスデコード段９０におけるアドレスデコーダの数は異なるシステムの必要性に適応させるため任意のものとすることができ、かつ柔軟性とチップサイズとの間にトレードオフがある。例えば、いくつかの用途においては、より柔軟性あるソフトウエアまたはシステムアーキテクチャに適応させるために利用可能なプログラム可能領域の数を増大することが有用である。他の用途では、アドレスデコーダの数は集積回路のコストを最小にするために低減することができる。
【００３５】
タイミング制御段１００は第２の任意の数の制御ユニットを含む。タイミング制御段１００においては、２つの制御ユニット、１０１および１０２、が示されている。タイミング制御段１００は外部バス２１に対しチップ選択信号を提供するためのアクセス状態マシンとして機能し、かつ各々の制御ユニット１０１および１０２は進行中のバスサイクルが１つまたはそれ以上のプログラム可能な領域の属性と整合するか否かを指示するためにデコードされた信号を受信するためデコードバス８１に接続された入力を有する。これに応じて、タイミング制御段１００の制御ユニットの内の選択された１つがタイミングバス８２に順次的なタイミング情報を提供し与えられたプログラムされたインタフェースタイプのための適切なタイミングを反映する。タイミング制御段１００のために選択される制御ユニットの数は進行中の係属しているオーバラップするメモリアクセスの数を決定する。係属しているメモリアクセスのこの数はまたパイプラインの深さ（ｐｉｐｅｌｉｎｅ  ｄｅｐｔｈ）として知られている。
【００３６】
例えば、アドレスデコード段９０のアドレスデコーダ９１はその対応するプログラム可能な領域へのアクセスを認識しかつそれに応じてデコードバス８１に制御信号を提供する。タイミング制御段１００においては、制御ユニット１０１のような制御ユニットがこのバスサイクルと関連するようになりかつこのアクセスの係属の間にこのアクセスのためにタイミングバス８２に対しタイミング信号を提供する。第２のアクセスが前記第１のアクセスの間に行われかつアドレスデコード段９０のアドレスデコーダはその対応するプログラム可能な領域へのアクセスを認識しかつそのオプションレジスタにプログラムされたものと整合する属性を有し、そしてデコードバス８１に制御信号を提供する。制御ユニット１０２のような第２の制御ユニットがインタフェースタイプによって決定されるこのアクセスに対して１つまたはそれ以上のチップ選択制御信号をオーバラップさせるためにタイミングバス８２に対しタイミング信号を提供し始めることができる。
【００３７】
ピン構成段１１０は第３の任意の数のピン構成論理回路を有する。各々のピン構成論理回路は１つの集積回路ピンに対応しかつ１つの集積回路ピンに専用のものとなっている。しかしながら、この集積回路ピンはこのチップ選択信号および他の信号の間で共有することができ、かつその機能はプログラム可能にセットできるようにするようにすることができる。
【００３８】
この第３の任意の数は柔軟性とシステムのコストとの間でより良好なトレードオフを可能にするようアプリケーションの間で変えることができる。例えば、コストが最も重要な要素でないいくつかのアプリケーションにおいては、より大きな数のピン構成論理回路を含めてより大きな数のメモリ装置のためにチップ選択信号を提供する能力およびより大きな柔軟性を提供することができる。コストがより大きな考慮事項である他のアプリケーションでは、より少ない数のピン構成論理回路を使用することができる。
【００３９】
ピン構成段１１０においては、代表的なピン構成論理回路１１１，１１２および１１３が示されておりそれぞれ“ＰＩＮ０”，“ＰＩＮ１”および“ＰＩＮ２”で示される出力信号を提供している。各々のピン構成論理回路は制御信号を受けるためにデコードバス８１に接続された１つの入力およびタイミング情報を受信するためにタイミングバス８２に接続された第２の入力を有する。各々のピン構成論理回路はすべての可能なタイミング情報を受信するから、各々のピン構成論理回路は一群のチップ選択機能の内の任意のものとするよう構成できる。例えば、ピン構成論理回路１１１は該ピン構成論理回路１１１がどのようにプログラムされるかに応じて、前記＊ＣＥ、＊ＷＥまたは＊ＯＥ信号の内の任意の１つとなるよう構成できる。従って、アドレスデコード段９０における第１の任意の数のアドレスデコーダ、第２の任意の数の制御ユニットおよびタイミング制御段１００、およびピン構成段１１０における第３の任意の数のピン構成論理回路を含めることによって、モジュール方式のチップ選択制御回路８０は任意の数のメモリ領域、任意のアクセスパイプライン深さ、および任意の数のチップ選択信号を規定することにより最大の柔軟性を提供する。これらの任意の数は得られるトレードオフを最大にするために実施例によって変えることができる。
【００４０】
図９は、図１のチップ選択回路３２のピン構成論理回路１２０を部分的ブロック図および部分的論理図形式で示す。ピン構成論理回路１２０は概略的にピン機能レジスタ１３０、オベイ論理部（ｏｂｅｙ  ｌｏｇｉｃ  ｐｏｒｔｉｏｎ）１４０、およびピン機能出力部１５０を含む。ピン機能レジスタ１３０は＊ＣＥ、＊ＯＥおよび＊ＷＥの内の１つのような選択的なピン機能を規定するビットを格納し、かつ選択された機能を表すデコードされた出力信号を提供する。オベイ論理部１４０は図示されたオベイ回路１４１および１４５のような任意の数のオベイ回路を含む。オベイ回路１４１は概略的にオベイ論理回路１４２、ＯＲゲート１４３、およびＤ型フリップフロップ１４４を含む。オベイ回路１４１は、“Ｃ１”と名付けられた、第１のサイクルに関連している。オベイ回路１４１は「Ｃ１開始（Ｃ１  ＢＥＧＩＮ）」と名付けられた信号を受けるための第１の入力、「Ｃ１領域選択（Ｃ１  ＲＥＧＩＯＮ  ＳＥＬＥＣＴ）」と名付けられた信号を受けるための第２の入力、ピン機能レジスタ１３０に接続された第３の入力、および出力を有する。ＯＲゲート１４３は「Ｃ１終了（Ｃ１  ＥＮＤ）」と名付けられた信号を受けるための第１の入力、「リセット（ＲＥＳＥＴ）」と名付けられた信号を受けるための第２の入力、および出力を有する。Ｄ型フリップフロップ１４４はオベイ論理回路１４２の出力に接続され“Ｄ”と名付けられたデータ入力、ＯＲゲート１４３の出力に接続された「クリア（ＣＬＥＡＲ）」と名付けられたクリア入力、および“ＯＢＥＹ１”と名付けられた出力信号を提供するための“Ｑ”と名付けられた出力端子を有する。
【００４１】
同様に、オベイ回路１４５は“ＣＮ”と名付けられたＮ番目のサイクルに関連しかつ概略的にオベイ論理回路１４６およびＯＲゲート１４７そしてＤ型フリップフロップ１４８を含む。オベイ論理回路１４６は「ＣＮ開始（ＣＮ  ＢＥＧＩＮ）」と名付けられた信号を受けるための第１の入力、「ＣＮ領域選択（ＣＮ  ＲＥＧＩＯＮ  ＳＥＬＥＣＴ）」と名付けられた信号を受けるための第２の入力、ピン機能レジスタ１３０の出力に接続された第３の入力および出力を有する。ＯＲゲート１４７は「ＣＮ終了（ＣＮ  ＥＮＤ）」と名付けられた信号を受けるための第１の入力、「リセット（ＲＥＳＥＴ）」と名付けられた信号を受けるための第２の入力、および出力を有する。Ｄ型フリップフロップ１４８はオベイ論理回路１４６の出力に接続されたＤ入力、ＯＲゲート１４７を出力に接続された「クリア（ＣＲＥＡＲ）」入力、および“ＯＢＥＹＮ”と名付けられた信号を提供するためのＱ出力を有する。
【００４２】
オベイ回路１４１および１４５はピン構成論理回路１２０に関連するピンがどのサイクルに従うかを決定する。第１のサイクルの間に、図８のタイミング制御段１００の制御ユニットは対応するサイクル開始信号をアクティベイトする。例えば、制御ユニット１０１が信号「Ｃ１開始」をアクティベイトするものと仮定する。さらに、アドレスデコーダおよびアドレスデコード段９０が「Ｃ１領域選択」をアクティベイトするものと仮定する。もしピン機能レジスタ１３０が「Ｃ１領域選択」に整合すれば、オベイ論理回路１４２は信号「Ｃ１開始」のアクティベイションに応じてその出力をアクティベイトする。この信号は次に入力としてＤ型フリップフロップ１４４のＤ入力に与えられ、該Ｄ型フリップフロップ１４４はそのＱ出力において信号ＯＢＥＹ１を「クロック」信号（図９には示されていない）の次の発生に応じてアクティベイトする。信号ＯＢＥＹ１は次に前記選択された制御ユニットが信号「Ｃ１終了」をアクティベイトしそれによってＤ型フリップフロップ１４４をクリアするまで、あるいは信号「リセット」のアクティベイションによってピン構成論理回路１２０をリセットするまでアクティブに留っている。オベイ論理部１４０の各々のオベイ回路は同様に対応するサイクル開始および終了信号および対応する領域選択信号のアクティベイションに応答する。
【００４３】
ピン機能出力部１５０は概略的に各々の可能なピン機能に対応する任意の数の機能論理ブロックを含む。図９には「機能１論理（ＦＵＮＣＴＩＯＮ  １  ＬＯＧＩＣ）」と名付けられた第１の機能論理ブロック１５１、および「機能Ｍ論理（ＦＵＮＣＴＩＯＮ  Ｍ  ＬＯＧＩＣ）」と名付けられた第２の機能論理ブロック１５２が示されている。各々の機能論理ブロックは信号ＯＢＥＹ１およびＯＢＥＹＮのような各々のオベイ信号、「ＣｉＦｊタイミング（ＣｉＦｊ  ＴＩＭＩＮＧ）」と名付けられたタイミング信号（これは各々のサイクルおよび各々の機能に対するタイミング信号を表す）およびそれに対応する「ＣｉＦｊ選択（ＣｉＦｊ  ＳＥＬＥＣＴ）」と名付けられた選択信号を受けるための入力、およびピン機能レジスタ１３０の対応する出力に接続された他の入力を有する。この場合、下付き文字ｉは１からＮまで変わり、かつｊは１からＭまで変わり、この場合ＮおよびＭは任意の数である。例えば、「機能１論理」ブロック１５１は、ＰＩＮ０がＦ１の機能を有することを示す、ピン機能レジスタ１３０の出力を受ける。同様に、「機能Ｍ論理」ブロック１５２は、ＰＩＮ０の機能が機能ＦＭであることを示す、ピン機能レジスタ１３０からの入力を受ける。各々の機能論理回路は前記ピン機能レジスタ１３０の出力が前記ピンが対応する機能に応じることを示している場合にアクティブサイクルに関連するタイミング信号に応答する。例えば、もしピン機能レジスタ１３０がＰＩＮ０が機能Ｆ１を持つものとして選択すれば、「機能１論理」ブロック１５１はアクティブになる。最初のサイクルの間信号ＯＢＥＹ１がアクティブでありかつ「機能１論理」ブロック１５１は次に適切なタイミング信号に対応してその出力を提供する。この適切なタイミング信号は「ＣｉＦｊタイミング」である。この場合、すべての他の機能論理ブロックはそれらの出力を論理ロー状態でインアクティブに保ち、それによってＯＲゲート１５３の出力は適切なタイミング信号を使用してアクティブな機能論理ブロックにのみ応答して信号ＰＩＮ０を提供する。従って、ＰＩＮ０に与えられるチップ選択信号はアクティブなタイミングサイクルにのみ従い、任意のパイプライン深さを可能にする。アクティブではないがパイプラインに係属しているサイクルに関連する他のタイミング信号はアクティブなサイクルが終了するまでＰＩＮ０によって従われることはない。
【００４４】
図１０はブロック図形式で図８のモジュール方式のチップ選択制御回路８０のタイミング制御段１００の部分１６０を示す。部分１６０は概略的に第１の制御ユニット１７０、第２の制御ユニット１８０、および早期（ｅａｒｌｙ）パイプライン制御回路１８６を含む。制御ユニット１７０は概略的にアドレスイネーブルラッチ１７１、オプションラッチ１７２、およびタイミング状態マシン１７３を含む。アドレスイネーブルラッチ１７１は「アドレスイネーブルバス（ＡＤＤＲＥＳＳ  ＥＮＡＢＬＥ  ＢＵＳ）」と名付けられた、内部バス３４のアドレスイネーブル部分に接続された入力を有する。ＣＰＵコア３１はあるアクセスのアドレスフェーズが進行中であることを示すために「アドレスイネーブルバス」によって導かれるアドレスイネーブル信号を提供する。これに応じて、部分１６０は該アドレスイネーブル信号を適切なチップ選択信号に変換して直接メモリ装置をドライブしなければならない。アドレスイネーブルラッチ１７１はタイミング状態マシン１７３の入力にかつ早期パイプライン制御回路１８６の入力に与えられる出力を有する。オプションラッチ１７２は「オプションバス（ＯＰＴＩＯＮ  ＢＵＳ）」と名付けられた、外部バス３４のオプションバス部分に接続された入力、およびタイミング状態マシン１７３の入力にかつ早期パイプライン制御回路１８６の入力に与えられる出力を有する。タイミング状態マシン１７３はアドレスイネーブルラッチ１７１、オプションラッチ１７２の出力、および早期パイプライン制御回路１８６の第１の出力に接続された入力、および「＼Ｘ＼ＴＯ（ＣＥ１タイミング）（＼Ｘ＼ＴＯ（ＣＥ１  ＴＩＭＩＮＧ））」、「＊ＷＥ１タイミング（＊ＷＥ１  ＴＩＭＩＮＧ）」、および「＊ＯＥ１タイミング（＊ＯＥ１  ＴＩＭＩＧ）」と名付けられた３つのタイミング信号を提供するための出力を有する。
【００４５】
同様に、制御ユニット１８０はアドレスイネーブルラッチ１８１、オプションラッチ１８２、およびタイミング状態マシン１８３を含む。制御ユニット１８０は概略的にアドレスイネーブルラッチ１８１、オプションラッチ１８２、およびタイミング状態マシン１８３を含む。アドレスイネーブルラッチ１８１は前記アドレスイネーブル信号を受けるための「アドレスイネーブルバス」に接続された入力を有する。アドレスイネーブルラッチ１８１はタイミング状態マシン１８３の入力および早期パイプライン制御回路１８６の入力に提供される出力を有する。オプションラッチ１８２は内部バス３４のオプションバス部分に接続された入力、およびタイミング状態マシン１８３の入力にかつ早期パイプライン制御回路１８６の入力に提供される出力を有する。タイミング状態マシン１７３はアドレスイネーブルラッチ１７１、オプションラッチ１７２の出力、および早期パイプライン制御回路１８６の第１の出力に接続された入力、および「＊ＣＥ２タイミング（＊ＣＥ２  ＴＩＭＩＮＧ）」、「＊ＷＥ２タイミング（＊ＷＥ２  ＴＩＭＩＮＧ）」、および「＊ＯＥ２タイミング（＊ＯＥ２  ＴＩＭＩＮＧ）」と名付けられた３つのタイミング信号を提供するための出力を有する。
【００４６】
早期パイプライン回路１８６はアドレスイネーブル信号を受けるためにアドレスイネーブルバスに接続された第１の入力、オプションバスに接続された第２の入力、およびアドレスイネーブルラッチ１７１および１８１そしてオプションラッチ１７２および１８２の出力に接続された入力を有する。早期パイプライン制御回路１８６は２つのサイクルがオーバラップしたときどのサイクルがアクティブであるかを決定するためにタイミング状態マシン１７３および１８３に出力を提供し、それによって不適切なチップ選択信号タイミングを避ける。
【００４７】
タイミング制御段１００は制御ユニット１７０および１８０のタイミングを調整することによってアクセスの効率的なパイプライン化を可能にする。２つのパイプライン検出および制御メカニズムがある。第１に、早期パイプライン制御回路１８６は図５または図７に示されたタイプを有するアクセスのような、オーバラップするアクセスを２つのタイミング状態マシン１７３および１８３に付加的な制御信号を提供して不当なタイミングシーケンスを防止することにより調整する。特に、早期パイプライン制御回路１８６はオーバラップするアクセスが同じ領域に対するものかまたは異なる領域に対するものか、およびオーバラップするアクセスサイクルが読出しサイクルであるかを検出し、そしてそれに応じて適切な制御信号を提供する。第２に、制御ユニット１７０および１８０は２つのアクセスされた領域の特性を調べることにより適切なチップ選択信号のタイミングを提供する。１つの特性は「オプションバス」からのＩＴＹＰＥフィールドによって決定されるインタフェースタイプである。他の特性はそのサイクルが外部アクノレッジ信号によって終了されるべきかあるいはあらかじめ規定された数の待機状態の後に内部的に終了されるべきかであり、これらは「オプションバス」からの対応するフィールドによって示される。
【実施例】
【００４８】
図２〜図１０に示された回路は図１１〜図１９に示された特定の実施例を参照することによりさらによく理解できる。ここで使用されている「アクティベイト（ａｃｔｉｖａｔｅ）」または「アクティベイション（ａｃｔｉｖａｔｉｏｎ）」はその論理的に真の状態をとる信号に言及している。「アクティブハイ（ａｃｔｉｖｅ  ｈｉｇｈ）」信号は論理ハイの電圧でアクティブまたは真である。「アクティブロー（ａｃｔｉｖｅ  ｌｏｗ）」信号は論理ローの電圧でアクティブまたは真となり、かつアクティブローの信号はオーバーバー（上線：ｏｖｅｒｂａｒ）あるいは記号＊を付けて示される。記号“＄”はそれに続く数字が１６をベースとした（１６進の）表現であることを示す。
【００４９】
いくつかの用語は種々の方法で言及されることに注目すべきである。例えば、用語「領域（ｒｅｇｉｏｎ）」および「ブロック（ｂｌｏｃｋ）」は相互交換可能に使用される。また、特に注記しない限り、用語「メモリ」は揮発性および不揮発性メモリ記憶装置の双方、ならびにメモリマップされる（ｍｅｍｏｒｙ−ｍａｐｐｅｄ）周辺装置を含む。＊ＣＥ、＊ＯＥ、および＊ＷＥ信号は集合的に「チップ選択」または“ＣＳ”信号に言及している。また、図面の間で同じ用語は同様にまたは同様の参照数字で示されている。
【００５０】
以下の表１は図１の要素を参照して後に説明する特定の実施例を理解する上で有用な付加的な用語を定義している。
【００５１】
［表１］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語：「Ｅバス（Ｅ−ＢＵＳ）」
定義：外部バス２１。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語：“ＣＥ”
定義：メモリまたは入力／出力（Ｉ／Ｏ）装置のチップイネーブル。チップ選択回路３２は＊ＣＥをアクティベイトしかつそれをアドレスとともにアクセスされる装置に提供する。パイプライン化可能でない（ｎｏｎ−ｐｉｐｅｌｉｎｅａｂｌｅ）装置に対しては、チップ選択回路３２は＊ＣＥをアクセスが完了するまでアクティベイトする。同期パイプライン化可能装置に対しては、チップ選択回路３２は＊ＣＥをアクティベイトしてアクセスされる装置に「クロック（ＣＬＯＣＫ）」の次のローからハイへの遷移時に前記アドレスをラッチさせる。それ自身の＊ＡＡＣＫ信号を提供する装置については（ＡＣＫ＿ＥＮ＝０）、チップ選択回路３２は外部＊ＡＡＣＫ信号が受信されるまで信号＊ＣＥをアクティブに保つ。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語：「＊ＷＥ」
定義：メモリまたはＩ／Ｏ装置の書込みイネーブル。チップ選択回路３２は＊ＷＥをアクティベイトしかつそれを外部バスインタフェース３３によって提供されるデータとともに提供してアクセスされる装置に該データをラッチさせる。同期装置に対しては、チップ選択回路３２は＊ＷＥをアクティベイトして「クロック（ＣＬＯＣＫ）」の次のローからハイへの遷移に際してデータをクロック入力する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語：「＊ＯＥ」
定義：メモリまたはＩ／Ｏ装置の出力イネーブル。チップ選択回路３２は＊ＯＥをアクティベイトしてアクセスされる装置にそのデータを読出しサイクルの間に外部バス２１によって提供させる。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語：「バースト可能装置（Ｂｕｒｓｔａｂｌｅ  Ｄｅｖｉｃｅ）」
定義：同期装置（すなわち、外部バス「クロック（ＣＬＯＣＫ）」を使用してメモリアクセスのタイミングを合わせるものであって１つのアドレスを受入れかつ複数のデータエレメントをドライブアウトできるもの）。高速スタティックコラムアクセスを備えた装置（すなわち、アドレス増分を必要とするもの）はバースト可能と考えられない。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語：「ビート（Ｂｅａｔ）」
定義：バーストデータ転送において、バーストは数多くのデータ片（ｄａｔａ  ｐｉｅｃｅｓ）を有し、各々のデータ片がデータビートである。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語：「オーバラップ（Ｏｖｅｒｌａｐ）」
定義：２つのメモリアクセスが整列しそれによって第２のアクセスのアドレスフェーズが第１のアクセスのデータフェーズと同時に生じる状態。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語：「パイプライン化可能装置（Ｐｉｐｅｌｉｎｅａｂｌｅ  Ｄｅｖｉｃｅ）」
定義：ある装置が、該装置へのアクセスの期間の間にそのアドレスピンにおいてアドレスが有効であることを要求することなく、そこに提供されたアドレスをラッチできる状態。同期パイプライン化可能装置はアドレスをその＊ＣＥがアクティベイトされたとき「クロック」の立上りエッジでラッチする。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語：「アドレス空間」
定義：ＣＰＵコア３０のアドレシングの範囲。アドレス空間は領域（ブロックとも称される）へと分解できる。各々の領域は、チップのデータ幅に応じて、１つまたはそれ以上のメモリチップによって占有され得る。しかしながら、該領域のすべてのチップは１つまたはそれ以上の共通の＊ＣＥ信号を有する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語：「＊ＢＤＩＰ，＊ＬＡＳＴ」
定義：バースト可能装置のための早期終了制御信号。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語：「ホールドオフ（Ｈｏｌｄ  ｏｆｆ）」
定義：ホールドオフ能力を有する装置はそのデータ出力をその装置にとってデータバスが利用可能になるまで遅らせる（ｈｏｌｄ  ｏｆｆ）ことができる。データをホールドオフすることができるためには、装置は＊ＯＥ制御入力を必要とし、かつもし該装置がバースト可能であれば、それはまたデータバスがそれに対して承認されるまでその内部状態マシンが次のデータビートに進むのを見合わせる能力を必要とする。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【００５２】
図１１は、図１のチップ選択回路３２の特定の実施例の機能ブロック図をブロック図形式で示す。チップ選択回路３２は一般に３つの信号インタフェースを有する。第１に、チップ選択回路３２はデータプロセッサ３０にとって包括的（ｇｌｏｂａｌ）なものである「リセット（ＲＥＳＥＴ）」と名付けられたリセット信号、内部動作クロック信号および外部バスクロック信号「クロック」の双方を含む「クロック（ＣＬＯＣＫＳ）」と名付けられた一組のクロック信号、および「初期値（ＩＮＩＴＩＡＬ  ＶＡＬＵＥＳ）」と名付けられた一組の信号を受ける。リセット（信号「リセット」がアクティブ）に応じて、データプロセッサ３０は前記「初期値」を得るために外部データバスピンをサンプルし、かつチップ選択回路３２はそのレジスタのいくつかの値をセットするために該「初期値」を使用する。リセットに応じて、他のレジスタはデフォールト値をとり、これらについては後にさらに説明する。
【００５３】
第２に、チップ選択回路３２は外部バスインタフェース３３へのインタフェースを有する。ＣＰＵコア３１は対応するメモリマップされたロケーションへの読出しおよび書込みサイクルを行うことによりチップ選択回路３２内部のレジスタをアクセスする。そのようなアクセスを検出すると、外部バスインタフェース３３は「サブバス・アドレス（ＳＵＢ−ＢＵＳ  ＡＤＤＲＥＳＳ）」と名付けられたアドレスバス入力および「サブバス・データ（ＳＵＢ−ＢＵＳ  ＤＡＴＡ）」と名付けられた双方向データパス（ｐａｔｈ）を含む特別の目的のバスを通してチップ選択回路３２へのアクセスを制御する。チップ選択回路３２のレジスタをアクセスするための他の制御信号は「ハンドシェイク（ＨＡＮＤＳＨＡＫＥＳ）」と名付けられた一組の信号を通して外部バスインタフェース３３へまたは外部バスインタフェース３３から送信される。メモリマップされた周辺装置のレジスタをアクセスするための制御信号の発生はよく知られておりかつこれ以上説明しない。しかしながら、外部バス転送に関連する種々の「ハンドシェイク」は外部バスインタフェース３３とチップ選択回路３２との間で行われる。これらの転送「ハンドシェイク」は以下の表２に説明されている。
【００５４】
［表２］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
転送                                  意味
ハンドシェイク
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
＊ＴＳ          転送開始。外部バスインタフェース３３はバスアクセスの始めに１クロ                ックサイクルの間この信号をアクティベイトする。
＊ＡＡＣＫ      「アドレス」アクノレッジ。この信号はバスサイクルのアドレスフェー                ズを終了させ、外部バスインタフェース３３が他のアクセスを開始でき                るようにする。
＊ＢＩ          バースト禁止。この入力信号はアドレスされた装置がバースト能力を持                たないことを示す。
＊ＢＤＩＰ      バーストデータ進行中。この信号は１つまたはそれ以上のデータビート                が固定されたバーストアクセスに留っていることを示す。
＊ＴＡ          転送アクノレッジ。この信号はバスサイクル、またはバーストアクセス                の間の各々のビートのデータフェーズの正常な完了を示す。
＊ＴＥＡ        転送エラーアクノレッジ。この入力信号はバスエラー状態の下でバスサ                イクルを終了させる。
＊ＡＲＥＴＲＹ  アドレスリトライ。この信号はバスサイクルのアドレスフェーズに関連                し、かつ＊ＡＡＣＫのアクティベイションをオーバライドし、そして外                部バスインタフェース３３に「アドレス」を再調停および再ドライブさ                せる。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【００５５】
これらの信号の内関連するものは以下の説明においてより詳細に述べる。
チップ選択回路３２はまた外部バスインタフェース３３が外部バス２１に提供する、「アドレス」と名付けられた、３２ビットのアドレスを受けるための入力、および、「属性」と名付けられた、進行中のアクセスの属性を表す信号を受信するための他の入力を有する。図３はチップ選択回路３２によって使用される特定の「属性」を示す。
【００５６】
［表３］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
属性信号名                            意味
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ＲＤ／＊ＷＲ  現在のバスサイクルが読出しサイクルであるか書込みサイクルであるかを              示す。
ＳＵＰＥＲ    もしアクティブであれば、現在のサイクルが管理（ｓｕｐｅｒｖｉｓｏｒ              ）アクセスサイクルであることを示し、もしインアクティブであれば、現              在のサイクルがユーザアクセスサイクルであることを示す。
ＩＮＳＴＲ／  もしアクティブであれば、現在のサイクルが命令アクセスサイクルである  ＊ＤＡＴＡ  ことを示し、もしインアクティブであれば、現在のサイクルがデータアク              セスサイクルであることを示す。
＊ＢＵＲＳＴ  転送がバースト転送であることを示す。
＊ＢＥ０−    １つのサイクルの間にどのバイト（単数または複数）がイネーブルされる  ＊ＢＥ３    かを示す。＊ＢＥ０はデータレーンＤ０−Ｄ７が有効なデータを含むこと              を示す。＊ＢＥ１はデータレーンＤ８−Ｄ１５が有効なデータを含むこと              を示す。＊ＢＥ２はデータレーンＤ１６−Ｄ２３が有効なデータを含むこ              とを示す。＊ＢＥ３はデータレーンＤ２４−Ｄ３１が有効なデータを含む              ことを示す。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【００５７】
第３に、チップ選択回路３２は“ＣＳＢＯＯＴ”および“ＣＳ（０）−ＣＳ（１１）”と名付けられた１３のチップ選択信号を含む外部装置へのインタフェースを含む。これらの信号は後に図１３に関連して非常に詳細に説明する。
【００５８】
図１１に示されるように、チップ選択回路３２は概略的に２つの部分、すなわちレジスタアクセス回路１９０およびチップ選択発生ユニット２００を含む。レジスタアクセス回路１９０はレジスタアクセスコントローラ１９２、およびレジスタアドレスデコーダ１９４を含む。レジスタアクセスコントローラ１９２はチップ選択回路３２のレジスタへのアクセスのための制御信号を提供する状態マシンである。レジスタアドレスデコーダ１９４はチップ選択回路３２のどのレジスタがアクセスされているかを検出する。レジスタアクセス回路１９０はチップ選択レジスタ１９５へのアクセスのためにチップ選択発生ユニット２００に接続されている。
【００５９】
チップ選択レジスタ１９５は図１２の（ａ）および（ｂ）に示されるようにメモリマップされたレジスタであり、図１２（ａ）および（ｂ）はブロック図形式でチップ選択レジスタ１９５のアドレスマップを示す。メモリにおけるこれらのレジスタのロケーションは任意的なものであるが、それらは好ましくは将来の拡張を可能にする方法で実施される。例えば、チップ選択回路３２は６つの領域に加えて専用のサブ領域をサポートし、かつ合計１３のチップ選択信号を有する。１つの独自の領域に対応する各々のチップ選択信号はベースアドレスレジスタとオプションレジスタの双方を有し、他の７つのチップ選択信号の各々はオプションレジスタのみを有する。しかしながら、メモリマップにおけるこれら６個のオプションレジスタに隣接するロケーションはリザーブされており、ベースアドレスレジスタを加えることによって付加的な機能性をサポートするために派生的（ｄｅｒｉｖａｔｉｖｅ）集積回路を可能にする。チップ選択回路３２のレジスタの機能は後に図１３を参照して詳細に説明する。
【００６０】
図１３は、図１１のチップ選択発生ユニット２００をブロック図形式で示す。チップ選択発生ユニット２００は概略的に信号の相互接続のために２つのバス、すなわち「デコードバス（ＤＥＣＯＤＥ  ＢＵＳ）」２０１および「タイミングバス（ＴＩＭＩＮＧ  ＢＵＳ）」２０２、を含む。チップ選択発生ユニット２００はまたアドレスデコード段２１０、タイミング制御段２３０、およびピン構成段２４０を含む。チップ選択発生ユニット２００は図８のモジュール方式のチップ選択制御回路８０の１つの可能な実施例にすぎず、そのモジュール性（ｍｏｄｕｌａｒｉｔｙ）および再構成可能性（ｒｅｃｏｎｔｉｇｕｒａｂｉｌｉｔｙ）を使用して構成のマイクロコントローラに適したチップ選択回路を実現する。チップ選択発生ユニット２００は６つのアドレスデコーダを使用する６つの領域とこれに加え１つの専用のサブ領域とを規定し、かつ前記６つの領域へのアクセスのために使用されるチップ選択信号を規定するために７つの付加的なオプションレジスタを有する。チップ選択発生ユニット２００はまた２つの深さの（ｔｗｏ−ｄｅｅｐ）パイプラインを構成するために２の制御ユニットを含み、かつ１３のプログラム可能なチップ選択ピンを有する。前記６つの領域の内の１つは特別のブート領域であり、これはリセットによってアクティブとなりブートルーチンを格納する不揮発性メモリ装置へのアクセスを可能にする。前記ブートルーチンの一部は次に残りの領域をプログラムすることができる。
【００６１】
チップ選択発生ユニット２００は２および３レベルの領域ネスティングを提供するために領域をペアリングすることによりマルチレベルの保護機構を実現する。この特徴的機能を実現するため、チップ選択発生ユニット２００はブート領域（これはまたＣＳＢＯＯＴ領域または領域０として知られる）を領域１と対になった主領域として規定する。領域０と対にすることにより、領域１は領域０内でより高い優先度でサブブロックとなることができる。領域２および４はまた主ブロックであり、それぞれ、領域３および領域５と対にされ、これらの領域３および５はより高い優先度で３つのブロック内のサブブロックとなることができる。
【００６２】
さらに、チップ選択発生ユニット２００は領域０と対にされる専用のサブブロック（「ブートサブブロック（ＢＯＯＴ  ＳＵＢ−ＢＬＯＣＫ）」）を規定するための付加的なデコーダを有する。この専用のサブブロックデコーダは３つまでのレベルのネスティングを可能にする。３つのレベルのネスティングを実施するための優先度機構は次のとおりである。領域１は「ブートサブブロック」よりも高い優先度を有し、該「ブートサブブロック」は領域０よりも高い優先度を有する。
【００６３】
チップ選択発生ユニット２００内の各領域は対応するオプションレジスタ内の符号化されたフィールドに規定された関連するメモリアクセスのインタフェースタイプ（“ＩＴＹＰＥ”）を有する。チップ選択発生ユニット２００は８つの異なるインタフェースタイプをサポートする。もしアクセスされた領域のオプションレジスタにおけるＩＴＹＰＥフィールドがこれら８つの正当なアクセスタイプの内の１つを符号化すれば、タイミング制御段２３０はアクセスタイプによって規定される関連する一組のタイミング信号を提供する。しかしながら、前記ＩＴＹＰＥフィールドはまたリザーブ状態で符号化することもできる。もし前記ＩＴＹＰＥフィールドが、例えばソフトウエアエラーの結果として、リザーブされた状態にあれば、関連する領域のデコード論理ブロックはアクセスが行われることを防止する。従って、チップ選択発生ユニット２００はこれらのエラーが誤ったメモリアクセスを生じさせることを防止する。
【００６４】
１つのインタフェースタイプは１つの領域への同期読出しアクセスを可能にしかつ早期同期＊ＯＥ信号を提供する。このアクセスタイプは「早期同期出力イネーブルを備えた同期インタフェース」として知られている。このアクセスタイプは少なくとも１つの待機状態を必要とする同期メモリまたはメモリマップされた周辺装置のために適切なものである。このアクセスタイプを使用したアクセスの間に、タイミング制御段２３０の制御ユニットは１つのクロック期間の間前記＊ＯＥ信号をアクティベイトしかつ外部バスインタフェース３３は引続くクロック周期の間にデータをラッチする。このアクセスタイプはチップ選択発生ユニット２００が少なくとも１つの待機状態を有するメモリ装置へのアクセスのために第１のサイクルのデータフェーズの完了前に第２のサイクルのアドレスフェーズを行うことができるようにする。アクセスがバースト可能な装置へのものである場合は、タイミング制御段２３０は「同期出力イネーブルを備えた同期バースト読出し」として知られた同様のアクセスタイプをサポートする。
【００６５】
他のインタフェースタイプは領域へのアクセスの早期オーバラップの特徴的機能を提供する。このアクセスタイプは「同期出力イネーブルおよび早期オーバラップを備えた同期インタフェース」タイプとして知られている。このインタフェースタイプに対しては、タイミング制御段２３０はそれが第２のアクセスのために＊ＯＥ信号を提供するクロックサイクルの間にこの引続くアクセスのアドレスフェーズを行うことにより、１クロックサイクル早く引続くアクセスを開始する。
【００６６】
タイミング制御段２３０はまた一組のパイプライン化ルールを実施することによって２つの深さの（ｔｗｏ−ｄｅｅｐ）パイプライン深さをサポートする。これらのルールはデータの完全性および適切なサイクル終了を保証する。該ルールは、アクセスが読出しアクセスであるかあるいは書込みアクセスであるか、アクセスがチップ選択発生ユニット２００によって規定される領域へのものであるか否か、アクセスが同期または非同期インタフェースタイプを備えた領域へのものであるか否か、およびアクセスされる装置がバースト可能であるか否かのような要因を調べることにより、第１のアクセスの係属中に第２のアクセスを始めることができるか否かを判定し、かつそれ自身の転送アクノレッジ信号を提供する。
【００６７】
ピン構成段２４０はタイミング制御段２３０における２つの制御ユニットをサポートして２のパイプライン深さを可能にする。ピン構成段２４０における１３のピン構成論理回路の各々は第１または第２のサイクルが関連するピンを「支配または所有している（ｏｗｎｓ）」かをマークする。各々のピン構成論理回路はその選択されたピン機能に関連するタイミングを使用して、ピン機能レジスタにプログラムされた領域へのアクセスのような、そのサイクルの属性が適合しておれば第１のサイクルの間にチップ選択信号を提供する。第２のサイクルの間に、各々のピン構成論理回路はさらにそのサイクルの属性も適合していれば選択されたピン機能に関連するタイミングに従う。
【００６８】
チップ選択発生ユニット２００のこれらのおよびさらに他の特徴は以下に順次各回路段を考察することによって説明する。
【００６９】
＜アドレスデコード段２１０の説明＞
アドレスデコード段２１０は７つまでの異なるプログラム可能な領域を規定する。これら７つの領域の内の第１のものはブート領域、あるいは、領域０（Ｒｅｇｉｏｎ  ０）で表される。ブート領域に関連する２つのレジスタ２１１および２１２、ならびに１つのデコード論理ブロック２２４がある。「ＣＳＢＯＯＴベースアドレスレジスタ（ＣＳＢＯＯＴ  ＢＡＳＥ  ＡＤＤＲＥＳＳ  ＲＥＧＩＳＴＥＲ）」と名付けられた、レジスタ２１１はブート領域のためのべースアドレスレジスタとして作用する。レジスタ２１１は３２の可能なビットの内２０ビットを構成する。ビット０−１９はブート領域のためのベースアドレスを示し、レジスタ２１１のビット０は「アドレス」のビット０に対応し、レジスタ２１１のビット１は「アドレス」のビット１に対応し、以下同様である。このビットの順序付け機構では、ビット０は再上位ビットを表し、かつ「アドレス」のビット３１は最下位ビットを表す。
【００７０】
リセットに応じて、このフィールドはもし割込み前置ビット（ｉｎｔｅｒｒｕｐｔ  ｐｒｅｆｉｘ  ｂｉｔ：ＩＰ）として知られた「初期値（ＩＮＩＴＩＡＬ  ＶＡＬＵＥ）」ビットが０に等しければ＄０００００にデフォールトされ、あるいはもし（ＩＰ＝１）であれば＄ＦＣ０００にデフォールトされ、そしてリセットに続きソフトウエアでプログラム可能である。デフォールトのベースアドレスおよびデフォールトのブロックサイズによって規定される、デフォールトのＣＳＢＯＯＴ領域はＣＰＵコア３１のリセットベクトルのアドレス（初期プログラムカウンタのメモリロケーション）を含まなければならないことに注目すべきである。この領域のベースアドレスはアドレスマップ内の任意のアドレスにプログラムできるが、それはデータプロセッサ３０の他のブロックまたはモジュールとオーバラップしてはならない。パワーオンの際に、ブート装置のアドレスは命令を格納するために使用されるデータプロセッサ３０の内部ＥＰＲＯＭのような、内部モジュールのアドレスと整合するかも知れない。しかしながら、もしこれが生じれば、データプロセッサ３０は内部アクセスに外部アクセスをオーバライドさせるために、図示しない、付加的な回路を含む。内部アクセスはブート命令を提供するために行うことができ、かつチップ選択発生ユニット２００は外部アクセスを行わない。「ＣＳＢＯＯＴベースアドレスレジスタ」のビット２０−３１はリザーブされている。
【００７１】
「ＣＳＢＯＯＴオプションレジスタ」と名付けられた、レジスタ２１２はブート領域のためのオプションレジスタである。それは３２ビットのレジスタであり、その各ビットは以下の表４に示されるように規定されている。
【００７２】
［表４］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ビット番号  ニーモニック                  機能の説明
（単数又は
複数）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
０−３    ＢＳＩＺＥ    ブロックサイズ。このフィールドはベースアドレス（表５）                          に関連するブロックのサイズを規定する。
４      ＳＢＬＯＣＫ  サブブロック。もしセットされれば、ベースアドレスレジス                          タによって特定されるアドレス空間はより大きなメインブロ                          ック内のサブブロックである。メインブロックは対にされた                          ベースアドレスレジスタによって特定される（表６）。
５      ＳＵＰＥＲ    管理のみ。もしセットされれば、該ビットはブロックが管理                          アクセスのみのためであることを示す。もしクリアされれば                          、ブロックはスーパバイザまたはユーザによってアクセスで                          きる。
６      ＤＳＰＡＣＥ  データスペースのみ。もしセットされれば、アドレスブロッ                          クはデータのみを含みかつ該領域から命令はアクセスされな                          い。もしクリアされれば、該ブロックは命令およびデータの                          双方を含むことができる。
７      ＷＰ          ライトプロテクト。もしセットされれば、このアドレスブロ                          ックは読出しのみである。もしクリアされれば、該ブロック                          は読出しおよび書込みアクセスの双方のために利用できる。
８      ＣＩ          キャッシュ禁止。もしセットされれば、このビットは該領域                          のデータがキャッシュされるべきでないことを示す。
９−１２    未使用        未使用
１３      ＡＣＫ＿ＥＮ  アクノレッジイネーブル。もしセットされれば、チップ選択                          回路３２はＴＡ＿ＤＬＹフィールドおよびＩＴＹＰＥフィー                          ルドによって決定される、それぞれ、転送アクノレッジ＊Ｔ                          Ａおよび該領域に対するアドレスアクノレッジ＊ＡＡＣＫフ                          ィールドを戻す。
１４−１６  ＴＡ＿ＤＬＹ  ＊ＴＡ遅延。このビットはゼロおよび７の間の待機状態の領                          域のラテンシー（潜伏：ｌａｔｅｎｃｙ）を示す（表７）。
１７−１８  ＰＳ          ポートサイズ。これらのビットは領域のポートサイズを示す                          。デフォールトのポートサイズは３２ビットである（表８）                          。
１９−２０  ＰＣＯＮ      ピン構成。これらのビットはピンが＊ＣＥ、＊ＷＥ、＊ＯＥ                          またはノンチップ選択機能となるよう構成する。もしそのピ                          ンが＊ＣＥピンであれば、「領域（ＲＥＧＩＯＮ）」フィー                          ルドはそれに影響を与えず、それは各々の＊ＣＥピンはそれ                          自身のベースアドレスレジスタおよびデコード論理を有する                          からである（表９）。
２１−２２  ＢＹＴＥ      バイト。このフィールドはそのピンが＊ＷＥピンとして構成                          されている場合にのみ適用可能である。チップ選択回路３２                          はこのフィールドを使用して前記Ｅバスの４つのバイトイネ                          ーブルの内どのためにそれが＊ＷＥをアクティベイトすべき                          かを決定する。典型的には、書込み可能領域は複数の＊ＷＥ                          、１つの＊ＯＥ、および１つの＊ＣＥを有する（表１０）。
２３−２５  ＲＥＧＩＯＮ  メモリ領域。このフィールドはそのピンが＊ＷＥまたは＊Ｏ                          Ｅピンとなるよう構成されている場合にのみ適用できる。こ                          れらのビットはどのメモリ領域のためにそのピンが使用され                          るかを示す。もしこれらのビットがゼロの値を有すれば、対                          応するチップ選択デコーダはディスエーブルされる（表１１                          ）。
２６−２７  未使用        未使用
２８−３１  ＩＴＹＰＥ    インタフェースタイプ。これらのビットは制御されているメ                          モリまたは周辺装置のタイプを示す（表１２）。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【００７３】
前記図４に示された、あるビットフィールドはさらに以下の表５〜表１２に示されている。ＢＳＩＺＥフィールドはリセットに際し「ＣＳＢＯＯＴオプションレジスタ（ＣＳＢＯＯＴ  ＯＰＴＩＯＮ  ＲＥＧＩＳＴＥＲ）」に対し＄Ｆにデフォールトする。しかしながら、別の実施例では、前記ＢＳＩＺＥフィールドはＣＰＵコア３１のリセットベクトルが依然としてデフォールトのＣＳＢＯＯＴ領域内にある限り、１メガバイト（１Ｍ）のような、他の値とすることができる。表５はＢＳＩＺＥフィールドの符号化を示す。
【００７４】
［表５］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ＢＳＩＺＥ  ブロック            比較されるアドレスライン
フィールド  サイズ
（２進）    （バイト）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
００００    無効        この符号化はベースアドレスレジスタおよびオプションレジス                        タのビット値が無効であるかあるいは構成されて（ｃｏｎｆｉ                        ｇｕｒｅｄ）いないことを示す。これらのレジスタを使用して                        の外部装置へのアクセスはそれらが構成されるまで可能となら                        ない。
０００１    ４Ｋ        Ａ０−Ａ１９
００１０    ８Ｋ        Ａ０−Ａ１８
００１１    １６Ｋ      Ａ０−Ａ１７
０１００    ３２Ｋ      Ａ０−Ａ１６
０１０１    ６４Ｋ      Ａ０−Ａ１５
０１１０    １２８Ｋ    Ａ０−Ａ１４
０１１１    ２５６Ｋ    Ａ０−Ａ１３
１０００    ５１２Ｋ    Ａ０−Ａ１２
１００１    １Ｍ        Ａ０−Ａ１１
１０１０    ２Ｍ        Ａ０−Ａ１０
１０１１    ４Ｍ        Ａ０−Ａ９
１１００    ８Ｍ        Ａ０−Ａ８
１１０１    １６Ｍ      Ａ０−Ａ７
１１１０    ３２Ｍ      Ａ０−Ａ６
１１１１    ６４Ｍ      Ａ０−Ａ５
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【００７５】
ビット４、すなわちＳＢＬＯＣＫビット、は領域がより大きなメインブロック内のサブブロックであるべきか否かを示す。以下の表６に示されるように、異なるブロックは一緒に対にされる（ｐａｉｒｅｄ）。
【００７６】
［表６］
−−−−−−−−−−−−−−−−−−−
メインブロック        サブブロック
−−−−−−−−−−−−−−−−−−−
ＣＳＢＯＯＴ            ＣＳ１
ＣＳ２                ＣＳ３
ＣＳ４                ＣＳ５
−−−−−−−−−−−−−−−−−−−
【００７７】
上に示した、これらのペアリングに加えて、ブート領域は付加的な専用のサブブロックを有する。もしレジスタ２１２の前記ＳＢＬＯＣＫビットがセットされれば、ＣＳ０ブロックがメインブロックでありかつＣＳ１ブロックがサブブロックである。リセットに応じて、このビットは０にデフォールトする。
【００７８】
「ＣＳＢＯＯＴオプションレジスタ」に対する前記ＳＵＰＥＲビットはリセットに応じて１にデフォールトするが、それはＣＰＵコア３１がスーパバイザモードにおけるリセットの後に命令のアクセスを開始することになるからである。ＤＳＰＡＣＥビットはリセットに応じて０にデフォールトする。「ＣＳＢＯＯＴオプションレジスタ」に対するＷＰビットはリセットに応じて１にデフォールトするが、それはブート命令は一般に不揮発性の、リードオンリメモリ装置からフェッチされるからである。前記ＣＩビットはリセットに応じて０にクリアされ、それはブートルーチンからの命令はキャッシュ可能となる傾向があるからである。
【００７９】
前記ＡＣＫ＿ＥＮビットはリセットに応じて１にセットされ、かつ対応する「初期値（ＩＮＩＴＩＡＬ  ＶＡＬＵＥ）」ビットは初期的なＴＡ＿ＤＬＹフィールド値を提供する。表７はＴＡ＿ＤＬＹフィールドの符号化を示す。
【００８０】
［表７］
−−−−−−−−−−−−−−−−−−−−−
ＴＡ＿ＤＬＹ（２進）      待機状態の数
−−−−−−−−−−−−−−−−−−−−−
０００                  ゼロ
００１                  １
０１０                  ２
０１１                  ３
１００                  ４
１０１                  ５
１１０                  ６
１１１                  ７
−−−−−−−−−−−−−−−−−−−−−
【００８１】
初期ＰＳフィールドも「初期値」であり、かつその符号化は以下の表８に示されている。
【００８２】
［表８］
−−−−−−−−−−−−−−−−−−−−
ＰＳ（２進）          ポートサイズ
−−−−−−−−−−−−−−−−−−−−
００              リザーブ
０１              １６ビットポート
１０              ３２ビットポート
１１              リザーブ
−−−−−−−−−−−−−−−−−−−−
【００８３】
前記ＰＣＯＮフィールドは、その符号化は以下の表９に示されているが、ＣＳＢＯＯＴ領域に対してリセットに応じて００にクリアされる。
【００８４】
［表９］
−−−−−−−−−−−−−−−−−−−−−−−−−−−
ＰＣＯＮ（２進）        以下のものとしてピン機構
−−−−−−−−−−−−−−−−−−−−−−−−−−−
００                チップイネーブル（＊ＣＥ）
０１                書込みイネーブル（＊ＷＥ）
１０                出力イネーブル（＊ＯＥ）
１１                チップ選択機能なし
−−−−−−−−−−−−−−−−−−−−−−−−−−−
【００８５】
前記ＰＣＯＮフィールドはピン機能レジスタ１３０の目的で作用することに注意を要する。他の実施例では、別個のピン機能レジスタを使用することもできる。
【００８６】
前記ＢＹＴＥフィールドは、その符号化が以下の表１０に示されており、リセットに応じて００にクリアされる。
【００８７】
［表１０］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ＢＹＴＥ（２進）      以下に対してピンは＊ＷＥを発生
−−−−−−−−−−−−−−−−−−−−−−−−−−−−
００                    バイトイネーブル０
０１                    バイトイネーブル１
１０                    バイトイネーブル２
１１                    バイトイネーブル３
−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【００８８】
前記ＲＥＧＩＯＮフィールドは、リセットに際してドントケアであるが、始めに０００にクリアされる。ＲＥＧＩＯＮフィールドに対する符号化は以下の表１１に示されている。
【００８９】
［表１１］
−−−−−−−−−−−−−−−−−−−−−−−−−
ＲＥＧＩＯＮ          ＊ＷＥ／＊ＯＥピンは
（２進）              以下のメモリ領域に属する
−−−−−−−−−−−−−−−−−−−−−−−−−
０００                  ＣＳＢＯＯＴ
００１                  ＣＳ１
０１０                  ＣＳ２
０１１                  ＣＳ３
１００                  ＣＳ４
１０１                  ＣＳ５
１１０                  未使用
１１１                  未使用
−−−−−−−−−−−−−−−−−−−−−−−−−
【００９０】
最後に、初期ＩＴＹＰＥフィールドもまた「初期値」である。ＩＴＹＰＥフィールドの符号化は以下の表１２に示されている。
【００９１】
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
［表１２］
ＩＴＹＰＥ            装置インタフェースアクセスタイプ
フィールド
（２進）
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
００００    １クロック周期より小さいかまたは等しい出力バッファターンオフ時間を有            する包括的（Ｇｅｎｅｒｉｃ）非同期領域。このインタフェースタイプを有            する装置はパイプライン化可能ではない。
０００１    ２クロック周期の出力バッファターンオフ時間を有する包括的非同期領域。            このインタフェースタイプを有する装置はパイプライン化可能ではない。
００１０    非同期＊ＯＥを有する同期領域。このインタフェースタイプを有する装置は            パイプライン化可能であり、非同期装置として機能することができ、かつ＊            ＯＥがアクティベイトされるまで読出しアクセスに際してその内部データを            ホールドオフする能力を有する。
００１１    早期同期＊ＯＥを有する同期領域。このインタフェースタイプを有する装置            はパイプライン化可能であり、非同期装置として機能することができ、かつ            読出しアクセスに際して＊ＯＥがアクティベイトされるまでその内部データ            をホールドオフする能力を有する。このインタフェースタイプによってアク            セスされる装置は少なくとも１つの待機状態を持たなければならずかつもし            ＴＡ＿ＤＬＹがゼロ待機状態を示せば、チップ選択回路３２は＊ＯＥをあた            かも該領域が１つの待機状態を持つかのごとく発生する。
０１００    リザーブ。もし誤ってプログラムされれば、対応するピンはインアクティブ            に留る。
０１０１    固定バーストアクセス能力を備えたバースト可能領域。このインタフェース            は＊ＯＥを有し、パイプライン化可能であり、かつ＊ＯＥがアクティベイト            されるまでその内部データをホールドオフすることができる。このインタフ            ェースは非同期インタフェースとして機能するが、インタフェースによって            要求される数の待機状態および＊ＯＥのアクティベイションの後にのみデー            タを提供する。このモードでは、インタフェースは＊ＢＤＩＰ信号がそれが            次のデータを送出すべきことを示すまで第１のデータビートを有効に保つ。            この領域に対する＊ＯＥは非同期＊ＯＥである。
０１１０    リザーブ。もし誤ってプログラムされれば、対応するピンはインアクティブ            に留る。
０１１１    固定バーストアクセス能力のみを有するバースト可能領域であるが、インタ            フェースは＊ＯＥを有し、パイプライン化可能であり、かつその内部データ            を＊ＯＥがアクティベイトされるまでホールドオフすることができる。この            インタフェースは非同期インタフェースとして機能するが、インタフェース            によって要求される数の待機データおよび＊ＯＥがアクティベイトされた後            にのみデータを提供する。このモードでは、インタフェースは前記＊ＢＤＩ            Ｐ信号がそれが次のデータを送出すべきことを示すまで最初のデータビート            を有効に保つ。この領域に対する＊ＯＥは同期＊ＯＥである。
１０００    固定バーストアクセスのみを有するバースト可能領域。このインタフェース            は待機状態カウンタを含みかつ＊ＯＥを持たず、従って装置はそれが要求す            る数の待機状態の後にデータをドライブ出力する。このタイプはデータバス            が利用可能になるまでその内部データをホールドオフすることができず従っ            てそれはさほどパイプライン化可能なものではない。このインタフェースは            非同期インタフェースとして機能するが、待機状態の数が満足された後にの            みデータを提供しかつ１クロックのみの間第１のデータビートを有効に保つ            。
１００１    ＩＴＹＰＥ＝００１１と同じであるが領域に対するアクセスの早期オーバラ            ップの付加的な特徴を有する。このタイプのインタフェースはそれが前のア            クセスに対して読出しに際し有効なデータをドライブ出力しあるいは書込み            に際しデータを受信する１クロック周期前にそこに対する他のアクセスをパ            イプライン化できなければならない。
１０１０    リザーブ。もし誤ってプログラムされれば、対応するピンはインアクティブ−１１１１  に留る。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【００９２】
ブート領域はそれに関連する専用のサブブロックを有する。「ＣＳＢＯＯＴサブブロックベースアドレスレジスタ」で示される、レジスタ２１３はこの専用のサブブロックのためのベースアドレスレジスタであり、かつ「ＣＳＢＯＯＴサブブロックオプションレジスタ」で示される、レジスタ２１４はオプションレジスタである。レジスタ２１３はレジスタ２１１と同じフィールド符号化を有するが、レジスタ２１４はマルチレベル保護機能を行うのに必要なフィールドのみを含む。レジスタ２１４は前記表４および表５に規定されているようにビット０−８にＢＳＩＺＥ，ＳＢＬＯＣＫ，ＳＵＰＥＲ，ＤＳＰＡＣＥ，ＷＰおよびＣＩフィールドを含み、これらのすべてはリセットに際して０にクリアされる。ビット９−３１は未使用である。チップ選択発生ユニット２００の適切な動作を確実にするために、このおよびサブブロックとなるべきブロックの任意の他のオプションレジスタにおけるＢＳＩＺＥフィールドはメインブロックのＢＳＩＺＥより小さくなければならない。しかしながら、他の実施例では付加的な論理回路によって部分的にオーバラップする領域をサポートできることに注意を要する。デコード論理ブロック２２４は領域０レジスタ２１１および２１２、および専用のブートサブブロックレジスタ２１３および２１４の双方のビットに応答する。
【００９３】
第２の領域はＣＳ１領域、あるいは、領域１として示されている。領域１に関連して２つのレジスタ２１６および２１７、および１つのデコード論理ブロック２２５がある。レジスタ２１６は、「ＣＳ１ベースアドレスレジスタ」と名付けられ、領域１のためのベースアドレスレジスタとして作用する。レジスタ２１６は３２ビットのレジスタである。レジスタ２１１と同様に、ビット０−１９は領域１のためのベースアドレスを示し、ビット０は「アドレス（ＡＤＤＲＥＳＳ）」のビット０に対応し、ビット１は「アドレス」のビット１に対応し、かつ以下同様であり、ビット２０−３１はリザーブされている。リセットに応じて、このフィールドは＄０００００にデフォールトする。この領域のベースアドレスはアドレスマップ内の任意のアドレスにプログラムできるが、それはデータプロセッサ３０の他のブロックまたはモジュールとオーバラップしてはならない。「ＣＳ１オプションレジスタ」と名付けられた、レジスタ２１７は領域１のためのオプションレジスタである。それは前の表４に規定されているように、レジスタ２１２に対するものと同じ符号化を有する３２ビットのレジスタである。リセットに応じて、ＰＣＯＮフィールドを除き、すべてのビットはゼロにデフォールトし、該ＰＣＯＮフィールドはデータプロセッサ３０がチップ選択モードにあれば＄０にデフォールトし、さもなければ＄３にデフォールトする。
【００９４】
アドレスデコード段２１０は他の５つの領域に対応する５つの他のオプショレジスタを含む。図１３は、「ＣＳ１オプションレジスタ」および「ＣＳ５オプションレジスタ」と名付けられ、かつ領域１および５にそれぞれ関連する代表的なオプションレジスタ２１７および２１９を示す。これらのオプションレジスタの各々はレジスタ２１２と同じビットフィールド定義を有している。しかしながら、リセットに応じて、すべてのビットおよびビットフィールドは０にクリアされる。
【００９５】
「ＣＳ０オプションレジスタ」と名付けられた、レジスタ２１５はピン構成段２４０におけるあるピンに対応するオプションレジスタであり、かつ上に定義したＰＣＯＮ，ＢＹＴＥおよびＲＥＧＩＯＮフィールドのみを含む。ＰＣＯＮフィールドはもしこのピンがチップ選択モードにあればリセットに応じて２にデフォールトし、さもなければ３にデフォールトし、フィールドＢＹＴＥおよびＲＥＧＩＯＮは０にデフォールトする。「ＣＳ６オプションレジスタ」および「ＣＳ１１オプションレジスタ」と名付けられた代表的なレジスタ２２０および２２１を含む、特定の領域に関連しないオプションレジスタはレジスタ２１５と同じビットフィールド定義を有する。しかしながら、リセットに応じて、フィールドＰＣＯＮはもし対応するピンがチップ選択モードにあれば０にクリアされ、かつそれ以外は３にセットされる。レジスタ２１５と同様に、これらの付加的なオプションレジスタのＢＹＴＥおよびＲＥＧＩＯＮフィールドはリセットに応じて０にクリアされる。
【００９６】
ブート領域にはデコード論理ブロック２２４が関連している。レジスタ２１１，２１２，２１３および２１４は各々それらのビットをデコード論理ブロック２２４への出力として提供する。さらに、ブロック１を（専用のブートサブブロックに加えて）ブロック０への対にされたサブブロックとして供するため、ブロック１に関連するデコード論理ブロック２２５は出力信号をデコード論理ブロック２２４の入力に提供する。これらの出力信号は図３に示されたマルチレベル保護機構のために必要な「アドレス整合（ＡＤＤＲＥＳＳ  ＭＡＴＣＨ）」および「属性整合（ＡＴＴＲＩＢＵＴＥ  ＭＡＴＣＨ）」信号である。メインブロックは優先度実施回路５８の機能を導入していることに注目すべきである。デコード論理ブロック２２４は外部バスインタフェース３３を通してＣＰＵコア３１から入力「アドレス」および「属性」を受信する。デコード論理ブロック２２４は始めに前記「アドレス」がブート領域または専用のブートサブブロック内にあるかをチェックする。デコード論理ブロック２２４はこれを前記「アドレス」が対応するベースアドレスレジスタのベースアドレスフィールドのＢＳＩＺＥ内にあるか否かを判定することによって行う。次に、デコード論理ブロック２２４は入力「属性」を対応するオプションレジスタにプログラムされたものと比較する。
【００９７】
図示された実施例では、「アドレス」は３２ビットのアドレスである。デコード論理ブロック２２４は該「アドレス」の（ＢＳＩＺＥフィールドによって決定される）有意ビット（ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔｓ）をベースアドレスレジスタに格納された値およびオプションレジスタのＢＳＩＺＥフィールドと比較する。もしすべての有意アドレスビットが整合すれば、デコード論理ブロック２２４はアドレス整合を検出する。
【００９８】
デコード論理ブロック２２４は種々の「属性」をデコードしかつそれらを次のようにしてレジスタ２１２からの対応するビットに対してチェックを行う。デコード論理ブロック２２４はＷＰビットに対してＲＤ／＊ＷＲ属性を比較し、もしＲＤ／＊ＷＲが論理ハイであるかあるいはＲＤ／＊ＷＲが論理ローであってＷＰがクリアされていれば、デコード論理ブロック２２４はこのビットに対して属性整合を検出する。デコード論理ブロック２２４は前記ＳＵＰＥＲ属性をＳＵＰＥＲビットと比較しかつもしＳＵＰＥＲ属性が論理ハイであるかあるいはＳＵＰＥＲ属性が論理ローであってＳＵＰＥＲビットがクリアされていればこのビットに対して属性整合を検出する。デコード論理ブロック２２４はＩＮＳＴＲ／＊ＤＡＴＡ属性をＤＳＰＡＣＥビットに対して比較し、かつもしＩＮＳＴＲ／＊ＤＡＴＡが論理ローであるか、あるいはもしＩＮＳＴＲ／＊ＤＡＴＡが論理ハイであってＤＳＰＡＣＥがクリアされていればこのビットに対して属性整合を検出する。もしすべてのプログラムされた属性がこのようにして対応する「属性」信号と整合すれば、デコード論理ブロック２２４は属性整合を検出する。
【００９９】
もしデコード論理ブロック２２４がある領域において「アドレス整合」および「属性整合」の双方を検出すれば、それは次により高い優先度のサブブロックが該整合をオーバライドするか否かを見るためにチェックを行う。例えば、もしデコード論理ブロック２２４が領域０および専用のブートサブブロックの双方の中のアドレスへのアクセスを検出すれば、レジスタ２１４に規定された属性は該アクセスが行われるか否かを制御する。デコード論理ブロック２２４はもし前記専用のブートサブブロック内に属性整合がなければ、領域０内にアドレスおよび属性双方の整合があってもそのサイクルが行われるのを禁止することになる。
【０１００】
＜タイミング制御段２３０の説明＞
タイミング制御段２３０は２つの制御ユニット２３１および２３２、そして制御ユニット２３１および２３２の間に接続された早期パイプライン制御ユニット２３３を含む。タイミング制御段２３０は外部バス２１にチップ選択信号を提供するためのアクセス状態マシンとして機能し、かつ制御ユニット２３１および２３２の各々は「デコードバス」２０１に接続された入力を有し、該入力によってアドレスデコード段２１０のデコード論理ブロックからデコードされた信号を受信し進行中のバスサイクルが６つの利用可能な領域の１つまたは専用のブートサブブロックのアドレスおよび属性と整合するか否かを指示する。もし前記領域の１つが整合を検出すれば、タイミング制御段２３０の制御ユニットの１つが「タイミングバス」２０２に対し順次的なタイミング情報を提供して与えられたプログラムされたインタフェースタイプに対して適切なタイミングを反映する。
【０１０１】
制御ユニット２３１はタイミングバス２０２に対し３つのタイミング制御信号、すなわち＼Ｘ＼ＴＯ（ＣＥ１タイミング），＼Ｘ＼ＴＯ（ＯＥ１タイミング）および＊（ＷＥ１タイミング）を提供する。同様に、制御ユニット２３２はタイミングバス２０２に対し３つの制御信号、すなわち＼Ｘ＼ＴＯ（ＣＥ２タイミング），＊（ＯＥ２タイミング）および＊（ＷＥ２タイミング）を提供する。
【０１０２】
例えば、アドレスデコード段２１０のデコード論理ブロック２２４は領域０へのアクセスを認識しかつそれに応じて制御信号をデコードバス２０１に提供する。タイミング制御段２３０においては、制御ユニット２３１のような制御ユニットはこのバスサイクルと関連するものとなりかつこのアクセスの係属の間にこのアクセスのためにタイミングバス２０２に対してタイミング信号を提供する。第２のアクセスは第１のアクセスの間に行うことができかつアドレスデコード段２１０のアドレスデコーダはその対応するプログラム可能領域であってそのオプションレジスタにプログラムされたものと整合する属性を有するものへのアクセスを認識しかつ制御信号をデコードバス２０１に提供する。制御ユニット２３２は次にインタフェースタイプによって決定されるこのアクセスに対する１つまたはそれ以上のチップ選択制御信号をオーバラップさせるためにタイミングバス２０２に対しタイミング信号の提供を始めることができる。
【０１０３】
各々のタイミング制御ユニットはそのサイクルを所有する領域に対するオプションレジスタのＩＴＹＰＥフィールドに応じて各々のチップ選択機能に対するタイミング信号を提供する。チップ選択回路３２が実施するインタフェースタイプに対する信号タイミングは図１４〜図１９を参照してよりよく理解することができる。これらのタイミング図の各々において、引続くローからハイへの「クロック」遷移はｔ１，ｔ２，ｔ３その他で示されている。「アドレス（ＡＤＤＲＥＳＳ）」、「データ（ＤＡＴＡ）」および制御信号のアクティブなまたは有効な時間はそのアクセスを適切に識別するために単数または複数の番号によって示されている。これらのタイミング図は典型的な信号タイミングを示すことに注意を要する。実際の信号タイミング波形は集積回路の製造プロセス条件が変われば異なるものである。いくつかの信号は外部バスインタフェース３３によって提供されるが、インタフェースのよりよい理解を可能にするために図示されている。図１４〜図１９において、矢印は信号の依存性または因果関係を表している。
【０１０４】
図１４は、インタフェースタイプ＄０のタイミング図を示し、このインタフェースタイプ＄０はゼロ待機状態の、アンロック装置（すなわち、１クロック周期より小さいかまたは等しい出力バッファターンオフ時間を有する装置）をアクセスするための包括的（ｇｅｎｅｒｉｃ）非同期インタフェースである。該非同期インタフェースは「アドレス（ＡＤＤＲＥＳＳ）」およびチップ選択信号（＊ＣＥおよび、＊ＯＥまたは＊ＷＥ）がアクセスの終りまで有効であることを必要とする。したがって、同じ装置への引き続くアクセスは前のアクセスの完了前には行なうことができず、オーバラップするアクセスは許容されない。図１４は、読出しサイクルとこれに続く書込みサイクルを示す。読出しサイクルおよび書込みサイクルの双方の間に、アクセスされた装置はＡ１のようなアドレスをＣＥ１の立下りエッジのような信号＊ＣＥのアクティベイションのある遅延時間の後に使用する。読出しサイクルの間、アクセスされた装置はＯＥ１の立下りエッジのような信号＊ＯＥのアクティベイションの後のある遅延時間内に「データ（ＤＡＴＡ）」を出力として（および外部バスインタフェース３３への入力として）提供する。書込みサイクルの間、アクセスされた装置はＷＥ２の立上りエッジのような信号＊ＷＥのインアクティベイションのある遅延時間後にＤ２（これは外部バスインタフェース３３の出力である）のようなデータエレメントをラッチする。非同期メモリ装置の一例はモトローラ・インコーポレイテッドから入手可能なＭＣＭ６２９９５Ａ型メモリチップであり、これはアドレスラッチイネーブル（＊ＡＬＥ）信号入力を持つことに加えて非同期モードで機能することもできる。
【０１０５】
インタフェースタイプ＄１はタイプ＄０と同様であるが、２クロック周期の出力バッファターンオフ時間を備えた装置をアクセスするために包括的（ｇｅｎｅｒｉｃ）非同期インタフェースに適用される。したがって、このアクセスに関連する信号のタイミングは図１４に示されたものと同様であるが、全く同じではない。読出しサイクルに対しては、チップ選択回路３２は引き続く装置が外部バス２１上に「データ（ＤＡＴＡ）」をドライブできるようになる前にそれが信号＊ＯＥをデアクティベイトした後１クロック周期待機することになる。引き続く書込みサイクルに対しては、チップ選択回路３２は前の＊ＯＥをデアクティベイトした後１クロック周期までは外部バスインタフェース３３がデータをドライブするのを禁止する。
【０１０６】
図１５は、インタフェースタイプ＄２のタイミング図を示し、このインタフェースタイプ＄２は非同期＊ＯＥを有する同期インタフェースである。この非同期インタフェースを備えたメモリ装置は「クロック（ＣＬＯＣＫ）」を受けるための入力を有し、「アドレス（ＡＤＤＲＥＳＳ）」および「データ（ＤＡＴＡ）」をローからハイへのクロックの遷移に応じてラッチする。読出しアクセスの間は、メモリ装置は信号＊ＯＥに応じて非同期的にデータを提供する。図１５は読出しサイクルとこれに続く書込みサイクルとを示す。チップ選択信号に加えて、このインタフェースアクセスタイプを備えた装置は外部バスインタフェース３３によって提供される“＊ＷＲ”と名付けられた書込み信号を観察して、アドレスフェーズの間に、アクセスが読出しアクセスであるかあるいは書込みアクセスであるかを決定する。したがって、ｔ２において、アクセスされた装置はそのアクセスが読出しアクセスであることを認識しかつＡ１をラッチする。チップ選択回路３２は信号＊ＯＥをアクティベイトし、かつＯＥ１の立下りエッジはアクセスされた装置に「データ」を提供させ、この「データ」は外部バスインタフェース３３への入力となる。
【０１０７】
このインタフェースを使用するメモリ装置は入力「アドレス」をラッチする能力を有し、したがって同じ装置への次のアクセスは前のアクセスとオーバラップすることができ、かつそのような装置は信号＊ＯＥがアクティベイトされるまで読出しアクセスに際してその内部データをホールドオフすることができる。したがって、引き続く書込みサイクルのアドレスフェーズは読出しサイクルのデータフェーズの終りにオーバラップすることができる。チップ選択回路３２はアクセスされた装置にアドレスＡ２をラッチさせるためｔ３の前に信号＊ＣＥをアクティベイトする。信号＊ＷＲはｔ３においてアクティブであるから、アクセスされた装置は書込みアクセスを認識する。読出しアクセスのデータフェーズの完了後、チップ選択回路３２は信号＊ＷＥをアクティベイトしてｔ５において書込みサイクルのデータフェーズを完了させるためにアクセスされた装置にデータをラッチさせる。
【０１０８】
図１５に示されたタイミングはチップ選択回路３２が２つの引き続くインタフェースタイプ＄２のアクセスをオーバラップさせる能力を切り離して示す。しかしながら、データプロセッサ３０はあり得るバス競合に対し余分の保護を提供するためにこのオーバラップを許容しない。データプロセッサ３０においては、外部バスインタフェース３３はチップ選択回路３２が第２のアクセスのアドレスフェーズをオーバラップさせることができるほど充分に早くチップ選択回路３２に対し適切な「ハンドシェイク」を提供しない。したがって、外部バスインタフェース３３は実際にＡ２を提供せず、かつチップ選択回路３２はｔ４のあるセットアップ時間前まで＊ＣＥおよび＊ＷＲ信号をアクティベイトしない。
【０１０９】
「早期同期ＯＥを備えた同期インタフェース」として知られた、インタフェースタイプ＄３は前に図５に示されている。インタフェースタイプ＄３に対しては、チップ選択回路３２は、図１５に示された、インタフェースタイプ＄２に対するものと同様に書込みサイクルを行なうことに注意を要する。
【０１１０】
「固定バーストを備えたバースト可能領域」として知られた、インタフェースタイプ＄５は「タイプＩ」バーストインタフェースを有しかつ非同期＊ＯＥ信号を使用する。チップ選択回路３２は４つのサイクルの固定バースト長を実施する。タイプＩバーストインタフェースはアクセスされた装置にそれぞれデータをドライブ出力させあるいはデータをラッチ入力させるために＊ＯＥおよび＊ＷＥ信号を使用する。このインタフェースはまたアクセスされた装置がバーストの次のビートをいつ出力すべきかを制御するために＊ＢＤＩＰ信号を必要とする。タイプＩバーストインタフェース装置はアドレスラッチを有し、したがって装置への次のアクセスのアドレスは前のアクセスとオーバラップすることができる、すなわち、アクセスのアドレスは「アドレス（ＡＤＤＲＥＳＳ）」が「クロック（ＣＬＯＣＫ）」のローからハイへの遷移に際しラッチされた後に有効であることを必要としない。
【０１１１】
図１６は、インタフェースタイプ＄５を使用する読出しサイクルのタイミング図の例を示す。図１６に示された例では、対応するオプションレジスタの領域のＡＣＫ＿ＥＮビットは外部アクノレッジ信号を可能にするよう構成される、すなわち、クリアされる。時間ｔ２において、アクセスされた装置は同期的に「アドレス」をラッチしかつ信号＊ＡＡＣＫのアクティベイションによって示されるように時間ｔ２においてアドレスフェーズを完了する。しかしながら、ｔ２において、アクセスされた装置は信号＊ＴＡをインアクティブに保ち、かつチップ選択回路３２は待機状態を挿入しなければならない。引き続き、時間ｔ３において、アクセスされる装置はそれがデータフェーズを完了する用意ができていることを示すために信号＊ＴＡをアクティベイトし、かつ最初の「データ」エレメントＤ１０を提供する。外部バスインタフェース３３はそれが引き続くローからハイへの「クロック」の遷移に応じてバーストの次のビートを予期していることを示すために信号＊ＢＤＩＰをアクティベイトする。外部バスインタフェース３３は遷移ｔ４，ｔ５およびｔ６において、それぞれ、引き続くデータエレメントＤ１１，Ｄ１２およびＤ１３をラッチする。外部バスインタフェース３３はｔ６の前に信号＊ＢＤＩＰをデアクティベイトし、データエレメントＤ１３が該バーストの最後のビートであることを示す。アクセスされた装置は信号＊ＯＥのインアクティベイションの後ある遅延時間までデータエレメントＤ１３を有効に保つ。
【０１１２】
このインタフェースは、同じ装置が２つの引き続くサイクルにつきアクセスされたとき、引き続くアクセスのアドレスフェーズが前のアクセスのデータフェーズとオーバラップできるようにする。アクセスされた装置は前のバーストの最後のビートに応じて第２のアクセスを認識する。したがって、図１６に示されるように、外部バスインタフェース３３は引き続くアドレスＡ２を提供しかつチップ選択回路３２はｔ３のあるセットアップ時間前に信号＊ＣＥをアクティベイトし、かつアクセスされた装置は時間ｔ６のあるセットアップ時間前に信号＊ＡＡＣＫを提供することによりこの第２のアクセスのアドレスフェーズを完了する。
【０１１３】
図１７は、（インタフェースタイプ＄５のような）タイプＩバーストインタフェースを使用した書込みサイクルのタイミング図を示す。図１６に示されるように、対応するオプションレジスタの領域のＡＣＫ＿ＥＮビットは外部アクノレッジ信号を許容するよう構成されており、すなわち、クリアされている。時間ｔ２において、アクセスされた装置は同期的に「アドレス」をラッチしかつ信号＊ＡＡＣＫのアクティベイションによって示されるようにアドレスフェーズを完了する。時間ｔ２において、アクセスされた装置はそれがデータフェーズを完了する用意ができていることを示すために信号＊ＴＡをアクティベイトしかつ第１の「データ」エレメントＤ１０をラッチする。信号＊ＢＤＩＰは外部バスインタフェース３３が引き続くローからハイへのクロックの遷移に応じてバーストの次のビートを提供することを示すためにアクティベイトされる。データプロセッサ３０は遷移ｔ３，ｔ４およびｔ５に応じて、それぞれ、引き続くデータエレメントＤ１１，Ｄ１２およびＤ１３をドライブする。時間ｔ５において、信号＊ＢＤＩＰはインアクティブであり、データエレメントＤ１３はバーストの最後のビートであることを示す。図１６と同様に、図１７はオーバラップするアクセスのアドレスフェーズを示しており、この第２のアクセスのアドレスフェーズは時間ｔ５においてバーストの最後のビートの間に終了する。
【０１１４】
「パスプライン化可能＊ＯＥを備えた固定バースト」として知られる、インタフェースタイプ＄７は前に図６に示した読出しアクセスをサポートする。このインタフェースタイプはその内部データを信号＊ＯＥがアクティベイトされるまでホールドオフすることができる。このインタフェースは非同期インタフェースとして機能することができるが、ＴＡ＿ＤＬＹフィールドによって規定される数の待機状態の後かつ信号＊ＯＥがアクティベイトされた後にのみデータを提供する。インタフェースタイプ＄７はタイプＩインタフェースであり、その書込みサイクルタイミングは図１７に示されている。
【０１１５】
インタフェースタイプ＄８は「タイプＩＩ」バーストインタフェースであり＊ＯＥ信号を必要としないが、代わりに＊ＬＡＳＴ信号を使用する。信号＊ＬＡＳＴがローからハイへのクロック遷移のあるセットアップ時間前にアクティベイトされたとき、タイプＩＩ装置は該クロック遷移に続きそのデータ出力バッファをハイインピーダンス状態に設定する。＊ＣＥ信号は装置のアクセスの潜伏（ｌａｔｅｎｃｙ）または待機状態の間アクティブに留まっていなければならない。このタイプの装置はまた＊ＴＳ信号を必要とする。
【０１１６】
図１８はアクセスタイプ＄８を使用した読出しインタフェースのタイミング図を示す。図示された例では、アクセスされた装置は２つの待機状態を有し、かつそれ自身のアクノレッジ信号を戻す。アドレスフェーズは、アクセスされた装置が信号＊ＡＡＣＫをアクティベイトする、ｔ３まで終了しない。タイプＩＩバーストインタフェースの下では、信号＊ＣＥは装置の潜伏（ｌａｔｅｎｃｙ）期間の間アクティブに留まっており、かつしたがって＊ＣＥは、データフェーズが開始する、ｔ３の後までアクティブに留まっている。このインタフェースのアクセスタイプは＊ＯＥ信号を有しない。アクセスされた装置はｔ４で始まる引き続くローからハイへのクロック遷移に応じて信号＊ＴＡをアクティベイトする。４ビートバースト転送はｔ７で完了し、かつその完了は外部バスインタフェース３３が信号＊ＬＡＳＴをアクティベイトすることによって通知される。
【０１１７】
このインタフェースは引き続くアクセスのアドレスフェーズが前のアクセスのデータフェーズとオーバラップすることを許容する。したがって、図１８に示されるように、チップ選択回路３２は引き続くアドレスＡ２を提供しかつｔ４のあるセットアップ時間前に信号＊ＣＥをアクティベイトする。アクセスされた装置は引き続くアクセスのアドレスフェーズを認識しかつ時間ｔ７において、信号ＡＡＣＫのアクティベイションによって示されるように、Ａ２をラッチする。信号＊ＣＥはＣＥ２の間アクティブに留まらなければならないが、これは（ｔ７に引き続き）第２のアクセスのデータフェーズが生じるまでである。このタイプのアクセスされた装置はアドレスラッチを有し、したがってそれは次のアドレスフェーズを早くもｔ７にＡ２をラッチすることによって完了することができる。
【０１１８】
図１９はアクセスタイプ＄８を使用した書込みインタフェースのタイミング図を示す。前と同様に、アクセスされた装置は２つの待機状態を有し、かつｔ３にＡＡＣＫを含む、それ自身のアクノレッジ信号を戻し転送のアドレスフェーズを完了する。タイプＩＩバースト読出しサイクルの場合と同様に、信号＊ＣＥは装置の潜伏の期間の間アクティブに留まっており、かつしたがって、データフェーズが開始する、ｔ３の後まで＊ＣＥはアクティブに留まっている。外部バスインタフェース３３はｔ４で始まる引き続くクロックサイクルに際しデータエレメントＤ１０，Ｄ１１，Ｄ１２およびＤ１３を提供し、かつこれらのデータエレメントはアクセスされた装置によってラッチされる。アクセスされた装置はｔ４で始まる引き続くクロックサイクルに応じて信号＊ＴＡのアクティベイションによりバーストの各ビートのデータフェーズの終了を指示する。タイプＩＩバースト読出しサイクルの場合と同様に、４ビートバースト転送はｔ７で完了し、かつその完了は外部バスインタフェース３３が信号＊ＬＡＳＴをアクティベイトすることによって通知される。引き続くサイクルのアドレスフェーズは図１８に示されたものと同様にしてオーバラップすることができる。
【０１１９】
「同期＊ＯＥおよび早期オーバラップを備えた同期インタフェース」インタフェースタイプとして知られた、インタフェースタイプ＄９は前に図７において示したように読出しアクセスを行なう。このタイプはそれが第２のアクセスのアドレスフェーズを前のアクセスの早期同期＊ＯＥとオーバラップさせる点を除きインタフェースタイプ＄３と同様のものである。インタフェースアクセスタイプ＄９の書込みアクセスは前に図１５に示した一般的な同期書込みアクセスと同じである。
【０１２０】
インタフェースタイプ＄４，＄６および＄Ａ〜＄Ｆはリザーブされている。もしタイミング制御段２３０のアクティブな制御ユニットがこれらのリザーブされたタイプの１つを備えたインタフェースへのアクセスを検出すれば、それはいずれのチップ選択タイミング制御信号の発生をも禁止し、それによってチップ選択発生ユニット２００が何らの対応するメモリアクセスも行なわないようにされる。したがって、このフィールドの正しくない符号化を生じるソフトウェアエラーは不当なアクセスを生じることはない。
【０１２１】
チップ選択回路３２はそれが種々のインタフェースをサポートするため非常に柔軟性がある。しかしながら、チップ選択回路３２がサポートするインタフェースの組は異なるアプリケーションに適応させるため実施例によって変わり得る。さらに、チップ選択回路３２は高度のパイプライン化を可能にするインタフェースをサポートし、データプロセッサ３０の性能を増強する。特に、インタフェースアクセスタイプ＄３，＄７および＄９は知られたインタフェースに対し大幅に性能を改善する。インタフェースアクセスタイプ＄３，＄７および＄９と共に使用するためのメモリ装置は伝統的な直列（クロックド）回路設計技術を使用してここに図示されたタイミングに従うよう現存するメモリ装置を変更することによって構成できる。
【０１２２】
オーバラップするアクセスを取り扱うため、早期パイプライン制御ユニット２３３は２つの主な場合を検出する。第１の場合は同じ領域またはチップに対する２つのアクセスの場合であり、それらのアクセスはせいぜい（もし最初のアクセスの潜伏が判定できれば、すなわち、ＡＣＫ＿ＥＮ＝１であれば）次のアドレスを始めのアクセスのデータフェーズとオーバラップさせることができる。例えば、もし始めのアクセスがパイプライン化可能な装置に対するものであれば、同じ装置への第２のアクセスは最初のアクセスがそのデータフェーズを完了する用意ができるまで待機することになる。しかしながら、第２のアクセスのアドレス（または＊ＣＥ）は最初のアクセスのデータとオーバラップすることができる。
【０１２３】
第２の場合は２つの異なる領域またはチップへの２つのアクセスに対するものである。第２の場合については、２つの異なるチップまたは領域へのアクセスをオーバラップさせるため、タイミング制御段２３０は１組のパイプライン化ルールを実施してデータの完全性および適切なサイクル終了を保証する。表１３はこれらのルールをより詳細に示す。
【０１２４】
［表１３］
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ルール    第１のサイクル        第２のサイクル      パイプライン化？
番号      
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
１      １つの領域への        異なる領域への          イエス
読出しアクセス        読出しアクセス
２      書込みアクセス        読出しアクセス          イエス
３      単一ビート            書込みアクセス          イエス
書込みアクセス
４      読出しアクセス        書込みアクセス          イエス
（オーバラップ）
５      第１および／または    データをホールド        イエス、
第２サイクルの少な    オフできる装置へ    ＡＣＫ＿ＥＮ＝０
くとも１つに          アクセス            を有する領域の
ＡＣＫ＿ＥＮ＝０                          装置が＊ＡＡＣＫ
を有する領域への                          を＊ＴＡの前に
任意のＣＳアクセス                        戻す限り
６      ＣＳアクセスなし      ＣＳアクセス              ノー
７      固定バースト          任意の                  イエス、
読出し                ＣＳアクセス        第２の領域が
パイプライン化
可能でありかつ
そのデータを
ホールドオフでき
れば
８      同期領域              非同期領域                ノー
９      非同期領域            任意のアクセス            ノー
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【０１２５】
ルール番号１は１つの領域の読出しアクセスとこれに続く他の領域への他の読出しアクセスに関する。この場合、チップ選択回路３２は第２の読出しを第１の読出しとパイプライン化することになる。
【０１２６】
ルール番号２は書込みアクセスとこれに続く読出しアクセスの場合をカバーする。この場合、チップ選択回路３２は第２の読出しを第１の読出しとパイプライン化することになる。
【０１２７】
ルール番号３は単一ビートの書込みアクセスとこれに続く他の書込みアクセスの場合をカバーする。この場合、いくつかの装置は書込みサイクルのデータが「アドレス」または＊ＣＥが有効になった後１「クロック」サイクルで利用可能になることを期待する。もしそうでなければ、装置は書込みサイクルを中止する。もし両方のアクセスがチップ選択回路３２によって終了すれば（すなわち、ＡＣＫ＿ＥＮが両方の領域のオプションレジスタにおいてセットされれば）、チップ選択回路３２はそれらのアクセスを第２の書込みサイクルの＊ＣＥをアクセスすることによって第１の書込みサイクルの最後のデータフェーズとオーバラップさせることになる。バースト書込みに他の書込みが続く場合については、チップ選択回路３２は最後のデータビートの最初の書込みの指示（＊ＢＤＩＰまたは＊ＬＡＳＴ）がアクティベイトされた後に第２の書込みサイクルに対する＊ＣＥをアクティベイトする。
【０１２８】
ルール番号４は読出しサイクルに書込みサイクルが続く場合をカバーする。チップ選択回路３２は読出しサイクルが完了する前に書込みサイクルの＊ＣＥをアクティベイトすることによってアクセスをオーバラップさせることができる。しかしながら、図示された実施例では、外部バスインタフェース３３はこのオーバラップを可能にするためにチップ選択回路３２に対して適切な「ハンドシェイク」を提供しない。外部バスインタフェース３３は書込みサイクルに対する＊ＣＥのアクティベイションの前に書込みサイクルの「アドレス」を提供する。
【０１２９】
ルール番号５は２つの連続するアクセスに関し、この場合いずれのアクセスの潜伏性（ｌａｔｅｎｃｙ）（すなわち、待機状態の数）も未知である（すなわち、ＡＣＫ＿ＥＮがクリアされている）２つの連続するアクセスに関する。この場合、チップ選択回路３２は第２のアクセスがバスが利用可能になるまでデータをホールドオフできるインタフェースタイプを備えた領域に対するものである場合にのみ２つのアクセスをパイプライン化する。例えば、第１のアクセスはＡＣＫ＿ＥＮがクリアされている領域に対するものであり、かつ第２のアクセスはＡＣＫ＿ＥＮがセットされているインタフェースアクセスタイプ＄８を備えた領域に対するものである。この場合、チップ選択回路３２は第１のアクセスが完了するまで第２のアクセスをホールドオフしなければならず、それは第２の領域は＊ＯＥなしにそのデータをホールドオフすることができないかもしれないからである。もし第１のアクセスが未知の潜伏性を有する領域に対するものでありかつ第２のアクセスが同じ領域に対するものであれば、チップ選択回路３２は、該チップ選択回路３２が同じ領域に対する引き続く＊ＣＥをアクティベイトできるようにする、外部＊ＡＡＣＫを待機する。ルール番号６は第１のアクセスが、専用のダイナミックＲＡＭ（ＤＲＡＭ）コントローラのような、チップ選択回路３２によって規定されていない領域に対するものであり、かつ第２のアクセスがチップ選択回路３２によって規定されている他の領域に対するものである場合をカバーする。この場合、第１の領域はそれ自身のチップ選択信号を提供し、したがってインタフェースアクセスタイプおよびラテンシー（ｌａｔｅｎｃｙ）はチップ選択回路３２によって知られていない。したがって、チップ選択回路３２は第２のアクセスを第１のアクセスとパイプライン化しない。
【０１３０】
ルール番号７はバースト可能領域への固定された４ビートバースト読出しアクセスと、これに続く他の領域への読出しの場合をカバーする。この場合、チップ選択回路３２はもし第２のアクセスがパイプライン化可能でありかつそのデータをホールドオフできる領域に対するものであれば第２の読出しをパイプライン化する。もし第２の領域が＄８のインタフェースアクセスタイプを有していれば、それはそのデータをホールドオフできずかつチップ選択回路３２は第２のアクセスをパイプライン化しない。
【０１３１】
ルール番号８は同期領域への第１のアクセスと、これに続く非同期領域への第２のアクセスをカバーする。この場合、チップ選択回路３２は第２のアクセスをパイプライン化せず、それは第２の領域はパイプライン化可能でないからである。
【０１３２】
ルール番号９は非同期領域への第１のアクセスをカバーする。この場合、チップ選択回路３２は第２のアクセスを第１のものとパイプライン化せず、それは外部アドレスおよびデータバスの双方がその完了までに第１のアクセスのために利用可能でなければならないからである。
【０１３３】
チップ選択回路３２および外部バスインタフェース３３の双方はこれらのパイプライン化ルールを実施するために組合わされることに注意を要する。いくつかの場合、外部バスインタフェース３３が制御を行なう。ルール番号４については、図１５の説明に関連して上で述べたように、チップ選択回路３２はパイプライン化をサポートするが外部バスインタフェース３３はサポートしない。外部バスインタフェース３３はまたルール番号９に対するパイプライン化を可能にするのに充分早く＊ＡＡＣＫまたは＊ＴＡハンドシェイクを提供しない。他の場合には、チップ選択回路３２は非両立的（ｉｎｃｏｍｐａｔｉｂｌｅ）アクセスを認識する。
【０１３４】
＜ピン構成段２４０の説明＞
ピン構成段２４０は、代表的なピン構成論理回路２４１，２４２，２４３および２４８を含め、１３のピン構成論理回路を含む。各々のピン構成論理回路は「デコードバス（ＤＥＣＯＤＥ  ＢＵＳ）」２０１に接続された第１の入力、「タイミングバス（ＴＩＭＩＮＧ  ＢＵＳ）」２０２に接続された第２の入力、および専用のチップ選択信号を提供するための出力を有する。ピン構成論理回路２４１は“ＣＳＢＯＯＴ”と名付けられた出力信号を提供する。ピン構成論理回路２４２は“ＣＳ０”“或いは“ＣＳＢＯＯＴ  ＊ＯＥ”と名付けられた出力信号を提供する。ピン構成論理回路２４３は“ＣＳ１”と名付けられた出力信号を提供する。ピン構成論理回路２４８は“ＣＳ１１”と名付けられた出力信号を提供する。
【０１３５】
チップ選択回路３２は１３の集積回路ピンを通してプログラム可能にチップ選択信号を提供する。しかしながら、高度に集積されたデータプロセッサまたはマイクロコントローラにおいて伝統的に行われているように、該ピンはデータプロセッサ３０の他のピン機能またはポートと共用することができかつプログラム可能に選択でき、それによって出力信号を異なるエンドユーズのアプリケーションのために構成することができる。
【０１３６】
本発明の１つの態様は前記複数のチップ選択信号がチップイネーブル、書込みイネーブル、および出力イネーブルを含むことである。
【０１３７】
本発明の他の態様は、第１の複数のアドレスデコーダ（９１，９４，９７）の各々がベースアドレスレジスタ（９２，９５，９８）、オプションレジスタ（９３，９６，９９）、およびデコーダを具備することである。ベースアドレスレジスタ（９２，９５，９８）は対応するプログラム可能領域のベースアドレスを格納する。オプションレジスタ（９３，９６，９９）は領域サイズおよびプログラム可能領域の少なくとも１つの属性を格納するためのビットフィールドを有する。デコードは入力アドレスおよび少なくとも１つの入力属性信号を受けるための入力、およびもし前記入力アドレスが前記ベースアドレスおよび領域サイズによって規定されるプログラム可能領域内にあり、かつ少なくとも１つの入力属性信号が前記プログラム可能領域の少なくとも１つの属性と整合すれば、整合信号を提供する出力を有する。
【０１３８】
本発明のさらに他の態様は、前記タイミング制御段（１００）が第１の制御ユニット（１７０）、第２の制御ユニット（１８０）、および早期パイプライン制御回路（１８６）を具備することである。前記第１の制御ユニット（１７０）はアドレスデコード段（９０）に結合された第１の入力、複数のパイプライン制御信号を受けるための第２の入力、および前記ピン構成段（１１０）に結合されて第１の複数のタイミング信号を提供するための出力を有する。第２の制御ユニット（１８０）はアドレスデコード段（９０）に結合された第１の入力、第２の複数のパイプライン制御信号を受けるための第２の入力、および前記ピン構成段（１１０）に結合されて第２の複数のタイミング信号を提供するための出力を有する。前記早期パイプライン制御回路（１８６）はアドレスデコード段（９０）に結合された入力、前記第１（１７０）および第２（１８０）の制御ユニットの第２の入力にそれぞれ結合された第１および第２の出力を有する。前記早期パイプライン制御回路（１８６）は複数のパイプラインルールに従って第１および第２の複数のパイプライン制御信号を提供し、それによってデータの完全性および適切なサイクル終了を保証する。
【０１３９】
本発明のさらに他の態様は、前記オベイ（ｏｂｅｙ）論理手段（１４０）が第１のオベイ論理回路（１４１）および第２のオベイ論理回路（１４５）を有することである。第１のオベイ論理回路（１４１）は第１のサイクル開始信号を受けるための第１の入力、第１のサイクル終了信号を受けるための第２の入力、および第１のオベイ信号を提供するための出力を有する。第２のオベイ論理回路（１４５）は第２のサイクル開始信号を受けるための第１の入力、第２のサイクル終了信号を受けるための第２の入力、および第２のオベイ信号を提供するための出力を有する。
【０１４０】
本発明のさらに他の態様は、プログラム可能ピン機能レジスタ（１３０）がさらにチップ選択信号と関連する複数の領域の内の選択された１つを規定する第２のビットフィールドを有し、かつ前記オベイ論理手段（１４０）がさらに前記第１のパイプライン化されたサイクルに対応する第１の入力領域が前記複数の領域の内の選択された１つと整合する場合にのみ第１のオベイ信号をアクティベイトすることである。
【０１４１】
本発明のさらに他の態様は、前記データプロセッサ（３０）がさらに第３のデコーダ（２２４）を具備することである。該第３のデコーダ（２２４）はアドレスを受けるための第１の入力、前記少なくとも１つの対応する制御信号を受けるための第２の入力、もし前記アドレスが第３のプログラム可能領域内にあれば第３のアドレス整合信号を提供する第１の出力、およびもし前記少なくとも１つの対応する制御信号が第３のプログラム可能保護属性と整合すれば第３の属性整合信号を提供するための第２の出力を有する。前記優先度実施回路（５８）はさらにもし第１および第３のアドレス整合信号の双方がアクティブでありかつ第３の属性整合信号がインアクティブでれば前記イネーブル信号をインアクティブに保つ。前記優先度実施回路（５８）はさらにもし前記第２および第３のアドレス整合信号の双方がアクティブでありかつ前記第３の属性整合信号がインアクティブであれば前記イネーブル信号をインアクティブに保つ。それによって、第３のプログラム可能領域は第１のプログラム可能領域（４１）または第２のプログラム可能領域（４２）とオーバラップすることができる。
【０１４２】
本発明のさらに他の態様は、前記データプロセッサがさらに前記イネーブル信号を受けるための入力を有するアクセス状態マシン（２３０）を具備することである。該アクセス状態マシン（２３０）は前記少なくとも１つの外部制御信号をその少なくとも１つの対応する出力に提供し、外部装置へのアクセスを制御する。
【０１４３】
本発明のさらに他の態様は、前記入力属性が：あるアクセスサイクルが、第１および第２のプログラム可能保護属性が各々読出しおよび書込みサイクルのいずれか選択された１つ、両方、または読出しサイクルのみを可能にする、読出しサイクルまたは書込みサイクルであるか；アクセスサイクルが第１および第２のプログラム可能保護属性の各々がデータサイクルのいずれかの選択された１つまたはデータおよび命令サイクルの双方を可能にする命令サイクルまたはデータサイクルであるか；或いはアクセスサイクルが第１および第２のプログラム可能保護属性の各々がいずれか選択された１つであるか、スーパバイザサイクルであるか或いはスーパバイザおよびユーザサイクルの双方であるスーパバイザサイクルまたはユーザサイクルであるかを示すことである。
【０１４４】
本発明が好ましい実施例に関して説明されたが、当業者には本発明が数多くの方法で変更できることおよび上に特に示しかつ説明したもの以外の数多くの実施例を取り得ることを理解するであろう。したがって、添付の特許請求の範囲により本発明の真の精神および範囲内に入る本発明の全ての変更をカバーするものと考える。
【産業上の利用可能性】
【０１４５】
本発明は集積回路マイクロプロセッサおよびマイクロコンピュータのために使用できるチップ選択論理回路技術を提供する。
【図面の簡単な説明】
【０１４６】
【図１】本発明に係わるデータ処理システムを示すブロック図である。
【図２】本発明を理解する上で有用な図１のチップ選択回路の態様を示すもので、図１のデータ処理システムのメモリマップの一部を示すブロック図である。
【図３】図１のチップ選択回路のマルチレベル保護回路を示すブロック図である。
【図４】図１のチップ選択回路のプログラム可能アクセスタイプ回路を示すブロック図である。
【図５】図１のチップ選択回路によって行われる第１のメモリアクセスタイプを示すタイミング図である。
【図６】図１のチップ選択回路によって行われる第２のメモリアクセスタイプを示すタイミング図である。
【図７】図１のチップ選択回路によって行われる第３のメモリアクセスタイプを示すタイミング図である。
【図８】図１のチップ選択回路のモジュール方式のチップ選択制御回路を示すブロック図である。
【図９】図１のチップ選択回路のピン構成論理回路を示す部分的ブロックおよび部分的論理図である。
【図１０】図８のモジュール方式のチップ選択制御回路のタイミング制御段を示すブロック図である。
【図１１】図１のチップ選択回路の特定の実施例の機能ブロックを示すブロック図である。
【図１２】図１のチップ選択回路のレジスタのアドレスマップを示すブロック図である。
【図１３】図１１のチップ選択発生ユニットを示すブロック図である。
【図１４】図１３における制御ユニットによって提供される１つのインタフェースタイプを示すタイミング図である。
【図１５】図１３における制御ユニットによって提供される１つのインタフェースタイプを示すタイミング図である。
【図１６】図１３における制御ユニットによって提供される１つのインタフェースタイプを示すタイミング図である。
【図１７】図１３における制御ユニットによって提供される１つのインタフェースタイプを示すタイミング図である。
【図１８】図１３における制御ユニットによって提供される１つのインタフェースタイプを示すタイミング図である。
【図１９】図１３における制御ユニットによって提供される１つのインタフェースタイプを示すタイミング図である。
【符号の説明】
【０１４７】
２０  データ処理システム
２１  外部バス
２２  電気的プログラム可能リードオンリメモリ（ＥＰＲＯＭ）
２３  スタティックランダムアクセスメモリ（ＳＲＡＭ）
２４，２５  入力／出力（Ｉ／Ｏ）チップ
３０  データプロセッサ
３１  ＣＰＵコア
３２  チップ選択回路
３３  外部バスインタフェース
３４  内部バス
５０  マルチレベル保護回路
６０  プログラム可能アクセスタイプ回路
８０  モジュール方式チップ選択制御回路
９０  アドレスデコード段
１００  タイミング制御段
１１０  ピン構成段
１２０  ピン構成論理回路
１３０  ピン機能レジスタ
１４０  オベイ論理部
１５０  ピン機能出力部
１６０  タイミング制御段の一部
１７０  第１の制御ユニット
１８０  第２の制御ユニット
１９０  レジスタアクセス回路
２００  チップ選択発生ユニット
２１０  アドレスデコード段
２３０  タイミング制御段
２４０  ピン構成段
【図１】
2007018522.tif 000003
【図２】
2007018522.tif 000004
【図３】
2007018522.tif 000005
【図４】
2007018522.tif 000006
【図５】
2007018522.tif 000007
【図６】
2007018522.tif 000008
【図７】
2007018522.tif 000009
【図８】
2007018522.tif 000010
【図９】
2007018522.tif 000011
【図１０】
2007018522.tif 000012
【図１１】
2007018522.tif 000013
【図１２】
2007018522.tif 000014
【図１３】
2007018522.tif 000015
【図１４】
2007018522.tif 000016
【図１５】
2007018522.tif 000017
【図１６】
2007018522.tif 000018
【図１７】
2007018522.tif 000019
【図１８】
2007018522.tif 000020
【図１９】
2007018522.tif 000021