図1は、本発明に係わるデータ処理システム20をブロック図形式で示す。データ処理システム20は概略的に外部バス21、電気的にプログラム可能なリードオンリメモリ(EPROM)22、スタティックランダムアクセスメモリ(SRAM)23、入力/出力(I/O)チップ24、I/Oチップ25、およびデータプロセッサ30を含む。データプロセッサ30はデータ処理システム20の中央処理ユニット(CPU)として機能する単一の集積回路でありかつ概略的にCPUコア31、チップ選択回路32、および外部バスインタフェース33、そして内部バス34を含む。
CPUコア31は複雑命令セットコンピュータ(CISC)、少数命令セットコンピュータ(RISC)、デジタル信号プロセッサ(DSP)、または任意の他の知られたアーキテクチャのような、任意の知られたCPUアーキテクチャを使用して実施できる。さらに、データプロセッサ30は高度に集積化されたマイクロプロセッサ、またはマイクロコントローラ(組込み型コントローラ、マイクロコンピュータ、その他)と考えることもできる。マイクロコントローラの場合は、オンチップのかつ内部バス34に接続された、メモリおよび周辺装置のような、データ処理システムの他の伝統的なエレメントを含む。しかしながら、データ処理システム20においては、そのような装置はまたオフチップとして含むことができかつデータプロセッサ30はこれらの装置に外部バスインタフェース33を使用して外部バス21により接続される。
外部バスインタフェース33は内部バス34を介してCPU31に接続され、かつ外部バス21に信号を提供する。外部バスインタフェース33は内部バス34を単一の外部バス21に適合させるよう作用する。例えば、もしCPUコア31が別個の命令およびデータパス(paths)を備えたハーバード・アーキテクチャ(Harvard architecture)を実施すれば、外部バスインタフェース33はこれらの別個の命令およびデータパスからのアクセスを外部バス21上に順次導く。
集積回路数を低減するために、データプロセッサ30はEPROM22、SRAM23およびI/Oチップ24および25に対し直接提供されるべきタイミングおよび制御信号を発生するためにチップ選択回路32を含む。例えば、図示された実施例では、チップ選択回路32は外部バス21から命令をフェッチするためにEPROM22にチップイネーブル(*CE)および出力イネーブル(*OE)として知られた2つのアクティブローのチップ選択信号を提供する。ここで記号*は信号の否定または反転を表わし、図面中のオーバーバー(上線)に対応する。読出し−書込み装置をアクセスするため、チップ選択回路32はまたSRAM23およびI/Oチップ24および25に対し提供される書込みイネーブル信号のような、書込みイネーブル(*WE)信号を提供する。チップ選択回路32は外部バス21へのアクセスに関連するアドレス、属性、および制御信号を受けるための外部バスインタフェース33への双方向接続を有する。オンチップのボードレベルのロジックを集積することに加えて、チップ選択回路32は改善された外部インタフェースを提供し、それらの様相については図2〜図9において概略的に説明する。
図2は、図1のデータ処理システム20のメモリマップの1つの部分40をブロック図形式で示す。部分40は概略的に一連のアドレスをより大きなアドレスがより小さなアドレスの上に表される降下順で示している。部分40は「メインブロックのハイアドレス(MAIN BLOCK HIGH ADDRESS)」および「メインブロックのローアドレス(MAIN BLOCK LOW ADDRESS)」によって区画されるメインブロック41を含む。図1のチップ選択回路32はサブブロック42をメインブロック41の完全に境界内に入るようあるいは該境界にオーバラップするようプログラムする能力を有する。このオーバラップする制御は有用であり、それはメモリの密度が増大するに応じて、単一のメモリ集積回路に関連する、各々異なるプログラム可能な属性を備えた、1つより多くの領域をもつことが有用であるからである。このため、サブブロック42は完全にメインブロック41内に配置することができ、かつ図2に示されるように「サブブロックのハイアドレス(SUB−BLOCK HIGH ADDRESS)」および「サブブロックのローアドレス(SUB−BLOCK LOW ADDRESS)」によって区画されている。
チップ選択回路32は図3に示されるようにこのオーバラップするメモリマップを実施し、図3は図1のチップ選択回路32のマルチレベル保護回路50をブロック図形式で示している。マルチレベル保護回路50は、それらの内のいくつかがオーバラップできる、任意の数のブロックに対するデコーダを含んでいる。例えば、図3に示されるように、マルチレベル保護回路50は図2のメインブロック41およびサブブロック42を実施するため、それぞれ、メインブロックデコーダ51およびサブブロックデコーダ54を含む。ここで使用される「ブロック」および「領域」という用語は同義語であり、かつ「サブブロック」はより大きなブロックまたは領域の境界内のブロックまたは領域を表している。
メインブロックデコーダ51は前記「メインブロックのローアドレス」に対応するベースアドレスレジスタ52、およびオプションレジスタ53を含む。オプションレジスタ53はブロックサイズフィールドを含み、該ブロックサイズフィールドは、ベースアドレスレジスタ52に格納されたベースアドレスに加えられたとき、前記「メインブロックのハイアドレス」を決定する。さらに、オプションレジスタ53はメインブロック41に関連する領域の保護のための属性を記憶する。同様に、サブブロックデコーダ54は前記「サブブロックのローアドレス」を決定するベースアドレスレジスタ55、および前記「サブブロックのハイアドレス」を決定するブロックサイズフィールドを含むオプションレジスタ56を含む。さらに、オプションレジスタ56はサブブロック42に関連するプログラム可能な属性のためのフィールドを含む。
メインブロックデコーダ51およびサブブロックデコーダ54の双方は図1のCPUコア31のバスサイクルの間に「アドレス(ADDRESS)」と名付けられた入力アドレスを受入れ、かつさらに、進行中のサイクルの「保護属性(PROTECTION ATTRIBUTES)」と名付けられた保護属性を表す制御信号を受入れる。そのような保護属性の例は書込み信号指示である。もしメインブロック41またはサブブロック42が、例えば、書込み保護されていれば、書込み信号は継続中のサイクルが書込みサイクルでありかつ従って現在のサイクルはプログラムされた保護に整合しないことを示すことになる。メインブロックデコーダ51およびサブブロックデコーダ54の各々は前記「アドレス」を前記ベースアドレスレジスタおよび対応するオプションレジスタの領域サイズフィールドによって規定される領域と比較する。もし前記「アドレス」が前記領域内にあれば、対応するブロックデコーダは「アドレス整合(ADDRESS MATCH)」と名付けられた、アドレス整合信号を作動(アクティベイト)させる。さらに、もし前記入力保護属性が前記対応するオプションレジスタのプログラムされた値と整合すれば、ブロックデコーダは「属性整合(ATTRIBUTE MATCH)」と名付けられた、対応する属性整合信号を作動させる。
優先度実施回路58は次に各々のブロックから前記「アドレス整合」および「属性整合」信号を受信しかつ優先度メカニズムに基づき“*CE”と名付けられた信号のような、外部制御信号を作動させるか否かを決定する。もしメインブロックデコーダ51およびサブブロックデコーダ54の内の1つのみがその「アドレス整合」信号を作動させれば、優先度実施回路58は対応する「属性整合」信号もまたアクティブである場合にのみ信号*CEをアクティベイトする。次に図2および図3を一緒に参照すると、「アドレス」が前記「メインブロックのローアドレス」と前記「サブブロックのローアドレス」の間にあるものと仮定する。この場合、メインブロックデコーダ51はアドレス整合を検出しかつ信号「アドレス整合」をアクティベイトする。さらに、前記「保護属性」がオプションレジスタ53にプログラムされた保護属性と整合するものと仮定する。この場合、メインブロックデコーダ51もまた信号「属性整合」をアクティベイトする。しかしながら、前記「アドレス」はサブブロック42内にないから、サブブロックデコーダ54はそのアドレス整合信号をアクティベイトしない。従って、優先度実施回路58はメインブロック41内のアドレスおよび属性整合に基づき信号*CEをアクティベイトすることになる。
次に、前記「アドレス」がサブブロック42内に入る場合を考える。この場合、メインブロックデコーダ51およびサブブロックデコーダ54の双方はそれらの対応する「アドレス整合」信号をアクティベイトする。また、前記「保護属性」がオプションレジスタ53において規定されたものと整合し、従ってメインブロックデコーダ51がその「属性整合」信号をアクティベイトするものと想定する。しかしながら、同時に、前記「保護属性」はオプションレジスタ56にプログラムされた属性と整合せず、従ってサブブロックデコーダ54はその「属性整合」信号をアクティベイトしないものとする。この場合、優先度実施回路58は信号*CEをインアクティブに保ち、サブブロックデコーダ54のメインブロックデコーダ51に対する優先度を認識する。従って、サブブロック42はより高い保護優先度でメインブロック41内にネストすることができる。このブロックのネスティングおよびブロック間の優先順位付けは任意の数のネスティングに拡張できる。
図4は、図1のチップ選択回路32のプログラム可能なアクセスタイプ回路60をブロック図形式で示す。プログラム可能なアクセスタイプ回路60は概略的にインタフェースタイプフィールド62を有するオプションレジスタ61、インタフェースタイプデコーダ63、およびアクセスコントローラ64を含む。オプションレジスタ61は図3に前に示されたようなプログラム可能な領域に関連するレジスタであり、インタフェースタイプ(ITYPE)フィールド62を含む。ITYPEフィールド62は符号化されたインタフェースタイプ値を含み、これはインタフェースタイプデコーダ63の入力に与えられる。インタフェースタイプデコーダ63は次にITYPEフィールド62をデコードしかつデコードされた信号をアクセスコントローラ64に提供する。アクセスコントローラ64は次に「クロック(CLOCK)」と名付けられた入力クロック信号に基づき*CE,*OEおよび*WEに対するタイミング情報を発生する。
知られたチップ選択回路においては、オプションレジスタはあらかじめデコードされたフィールドにおける個々の信号に対するタイミングおよびインタフェース特性を規定する。従って、1つまたはそれ以上のこれらのビットを汚染するソフトウエアエラーが存在する場合に、不当なタイミングの組合わせが発生されその結果ハードウエアエラーまたはプログラムの汚染を生じる結果となる。しかしながら、プログラム可能なアクセスタイプ回路60はそのようなエラーを引起こす組合わせを防止し、かつ従ってデータプロセッサ30はソフトウエアエラーに対しより免疫性がありかつより迅速かつよりエラーのないソフトウエア開発を可能にする。プログラム可能なアクセスタイプ回路60はこれらのソフトウエアエラーが規定されていないメモリアクセスを生じることを符号化されたITYPEフィールドを使用することにより防止する。ソフトウエア開発の間、ITYPEフィールド62はソフトウエアエラーの結果として不適切に符号化されることがあり、それによってITYPEフィールド62の1つまたはそれ以上のビットが正しくない値をもつことがある。インタフェースタイプデコーダ63は、ITYPEフィールド62からの符号化された信号をデコードすることにより、正当な(legal)状態またはリザーブされた状態をとることができるデコードされた信号を提供する。もしITYPEフィールド62が正当な状態を符号化すれば、インタフェースタイプデコーダ63は選択された正当なインタフェースタイプに基づきタイミング情報を提供するためアクセスコントーラ64に出力を提供する。しかしながら、もしITYPEフィールド62がリザーブされた状態を符号化すれば、インタフェースタイプデコーダ63はアクセスコントローラ64へのその出力をアクティベイトしない。従って、アクセスコントローラ64は外部バスサイクルを行わないことになる。
図5は、図1のチップ選択回路32によって行われる第1のメモリアクセスタイプのタイミング図を示す。図5には「クロック(CLOCK)」、「アドレス(ADDRESS)」、*WE、*CE、*OEおよび「データ(DATA)」を含む、この第1のメモリアクセスタイプの理解に関連するいくつかの信号が示されている。このメモリアクセスタイプは「早期同期出力イネーブルを備えた同期インタェース(synchronous interface with early synchronous output enable)」タイプとして知られている。図5の第1のラインには信号「クロック」が示されており、この信号に対しては図5に示されたすべての他の信号が同期する。信号「クロック」の“t1”,“t2”および“t3”で示された3つの時点および引続くローからハイへの遷移に対応する時点はこのメモリアクセスタイプを理解することに関連している。
図5は時間t1の前にすべての前のアクセスが終了しているものと仮定していることに注意を要する。また、図5に示された信号波形はチップ選択回路32がアクセスサイクルのアドレスおよびデータフェーズをアクノレッジするために外部バスインタフェース33に信号を提供するものと仮定していることに注目すべきである。しかしながら、もし外部アクノレッジ信号が使用されれば、アクセスのアドレスおよびデータフェーズの期間はいつこれらのアクノレッジ信号が受信されるかに依存することになる。例えば、“*AACK”で示される、アドレスアクノレッジとして知られた信号はアクセスサイクルのアドレスフェーズをアクノレッジする。チップ選択回路32はそれが前記「クロック」のローからハイへの遷移の前に信号*AACKのアクティベイションを検知するまで信号*CEをアクティブに保つ。“*TA”で示される、転送アクノレッジとして知られる信号はアクセスサイクルのデータフェーズの終了をアクノレッジする。チップ選択回路32はそれが前記「クロック」のローからハイへの遷移の際に信号*TAのアクティベイションを認識するまで信号*OE(読出しサイクルの間)または*WE(書込みサイクルの間)をアクティブに保つ。
“A1”と名付けられた、第1のメモリアクセスに対応するアドレスは時点t1における信号「クロック」のローからハイへの遷移にセットアップされる。このアクセスが読出しアクセスであることを通知するため、チップ選択回路32は信号*WEをインアクティブにする。さらに、チップ選択回路32は信号*CEをアクティベイトして、t1の前のセットアップ時間に、アクセスされたメモリ装置にアドレスA1をラッチさせかつアクセスサイクルを開始させる。続いて、時間t2における信号「クロック」のローからハイへの遷移の前に、チップ選択回路32は、t2よりあるセットアップ時間前に、信号*OEをアクティベイトする。信号*OEのアクティベイションによりメモリ装置がそのデータを出力し始める。信号「クロック」のローからハイへの遷移にセットアップされることにより、信号*OEは同期しかつこのタイプのアクセスサイクルに応答するメモリ装置は信号「クロック」のローからハイへの遷移時に信号*OEを認識する。メモリ装置が信号*OEのアクティベイションを認識した後、それは読出しアクセスサイクルを完了させるためにその出力データを提供し始める。図5に示されているように、チップ選択回路32にプログラムされたこのアクセスタイプに対応するメモリ装置は1つの待機状態(wait state)を有する。従って、チップ選択回路32は時間t2のあるセットアップ時間前に信号*OEをアクティベイトし、メモリ装置に、“D1”と名付けられた、アクセスされたデータエレメントを時間t3における信号「クロック」のローからハイへの遷移に対しあるセットアップ時間前に提供させる。
このアクセスタイプの利点は比較的低速のメモリコアを備えたメモリ装置が順次(sequentially)および効率的にアクセスできることにある。信号*OEがt2にセットアップされかつ時間t2においてアクセスされたメモリ装置によって認識されるから、チップ選択回路32は第1のアクセスのデータフェーズの完了前に、早期に第2のアクセスのアドレスフェーズを行うことができる。チップ選択回路32は時間t3の少なくともセットアップ時間前に“A2”と名付けられた第2のオーバラップするアドレスを提供し、再び信号*WEをインアクティブに保ちかつ再び信号*CEをt3のセットアップ時間前にアクティベイトする。
他のインタフェースタイプが図6に示されており、図6は図1のチップ選択回路32によって行われる第2のメモリアクセスタイプのタイミング図を示している。図5の場合と同様に、「クロック(CLOCK)」、「アドレス(ADDRESS)」、*CE、*OEおよび「データ(DATA)」を含む、バスサイクルに関連する信号が示されている。さらに、図6は“*BDIP”と名付けられた信号を示しており、この信号はバーストデータサイクルが進行中であることを示す。図6は、「同期*OEを備えた同期バースト読出し」タイプとして知られたメモリアクセスタイプを示す。図6には“t4”,“t5”,“t6”,“t7”,“t8”,“t9”および“t10”で示される信号「クロック」のさらに他のローからハイへの遷移が示されている。
このタイプのアクセスは図5に示されたアクセスと同様のものであるが、図5に示されたアクセスと異なり、アクセスされるメモリ装置が時点t6,t7,t8およびt9において4つの直列的なデータエレメントを提供することによりバスートアクセスを行う。これらの4つのデータエレメントはそれぞれ“D10”,“D11”,“D12”および“D13”と名付けられている。チップ選択回路32にプログラムされたこのアクセスタイプに応答するメモリ装置は1つの待機状態を有する。従って、時間t5において信号*OEのアクティベイションを認識した後、メモリ装置はアクセスされたデータエレメントD10を、時点t6における信号「クロック」のローからハイへの遷移のセットアップ時間前に、提供する。バーストの一部として引続きデータエレメントが信号*BDIPのアクティベイションに応じて信号「クロック」の引続くローからハイへの遷移の際に提供される。このアクセスサイクルタイプの利点は比較的低速のメモリコアを備えたメモリ装置が直列的にかつ効率的にアクセスできるという事実にある。
さらに他のインタフェースタイプが図7に示されており、同図は前記図1のチップ選択回路32によって行われる第2のメモリアクセスタイプのタイミング図を示す。図5の場合と同様に、バスサイクルに関連する信号が示されておりこれらは「クロック(CLOCK)」、「アドレス(ADDRESS)」、*WE、*CE、*OEおよび「データ(DATA)」を含む。図7は「同期*OEおよび早期オーバラップを備えた同期インタフェース」タイプとして知られたメモリアクセスタイプを示す。“t11”,“t12”,“t13”および“t14”で示される信号「クロック」の付加的なローからハイへの遷移が図7に示されている。
t11の近くで、A1と名付けられた、第1のバスサイクルのアドレスがt11で生じる信号「クロック」のローからハイへの遷移に対してセットアップされる。さらに、信号*WEはインアクティブでありかつ*CEはアクティブであり(“CE1”で示されている)アドレスA1が有効である時間における読出しサイクルを示している。引続き、この第1のアクセスに対応するデータフェーズが時間t12へのセットアップ時間前にチップ選択回路32が信号*OE(“OE1”で示されている)をアクティベイトすることによって生じる。引続き、前に図5で示したように、アクセスされたメモリ装置が時間t13のセットアップ時間前にデータエレメントD1を提供する。
しかしながら、このインタフェースタイプによれば、チップ選択回路32は少なくとも前記第1のアクセスのデータフェーズの一部の間にアドレスフェーズを行うことにより第2のアクセスを開始する。チップ選択回路32は時間t12における信号「クロック」のローからハイへの遷移のセットアップ時間前に、A2と名付けられた第2のアドレスを提供することによってこのインタフェースを行う。前と同様に、チップ選択回路32は読出しサイクルを示すために信号*WEをインアクティブに保ち、かつアクセスされたメモリ装置にアドレスA2が有効であることを示すために信号*CE(“CE2”として示されている)をアクティベイトする。アクセスされたメモリ装置がデータエレメントD1を提供することによって第1のアクセスのデータフェーズが完了した後、時間t13のセットアップ時間前に、第2のアクセスのデータフェーズがチップ選択回路32が、時間t13のセットアップ時間前に、信号*OE(“OE2”で示されている)をアクティベイトすることによって行うことができる。引続き、アクセスされたメモリ装置は時間t14のセットアップ時間前に“D2”と名付けられたデータエレメントを提供する。第1のアクセスのデータフェーズの終了前に、第2のアクセスのアドレスフェーズを開始することによって、チップ選択回路32はアクセスをオーバラップさせることができ、これはバス利用を改善しかつ与えられた量の時間内により多くのメモリアクセスを行わせることができる。
チップ選択回路32はまたモジュール方式とされ図8に示されるように異なるアプリケーションに対して再構築が可能とされ、図8は図1のチップ選択回路32のモジュール方式のチップ選択制御回路80をブロック図形式で示している。モジュール方式のチップ選択制御回路80は、「デコードバス(DECODE BUS)」81と名付けられた第1のバス、および「タイミングバス(TIMING BUS)」82と名付けられた第2のバスを含む、信号の相互接続のための2つのバスを含む。モジュール方式のチップ選択制御回路80はまたアドレスデコード段90、タイミング制御段100、およびピン構成段110を含む。モジュール方式のチップ選択制御回路80はモジュール方式となっておりかつ第1の任意の数のアドレスデコーダおよびアドレスデコード段90、タイミング制御段100における第2の任意の数の制御ユニット、および第3の任意の数のピン構成論理回路およびピン構成段110を含めることによって再構築できる。
図8に示されるように、アドレスデコード段は代表的なアドレスデコーダ91,94および97を含む。アドレスデコーダ91はベースアドレスレジスタ92およびオプションレジスタ93を含む。ベースアドレスレジスタ92はアドレスデコーダ91に関連するプログラム可能な領域のためのベースアドレスを規定する。オプションレジスタ93はアドレスデコーダ91に関連する領域のサイズおよびこの領域の属性に関連する他のプログラム可能なフィールドを含む。アドレスデコーダ91は内部バス34によって図1のCPUコア31からアドレスを受取りかつ比較を行ってこのアドレスがオプションレジスタ93のサイズフィールドにあるベースアドレスレジスタ92によって規定される領域内にあるか否かを調べる。アドレス整合に応じて、アドレスデコーダ91は制御信号をデコードバス81に提供する。同様に、アドレスデコーダ94および97もまた前記アドレスがそれらの対応するプログラム可能な領域内にあるか否かを検出しかつそれに応じて制御信号をデコードバス81に提供する。アドレスデコード段90におけるアドレスデコーダの数は異なるシステムの必要性に適応させるため任意のものとすることができ、かつ柔軟性とチップサイズとの間にトレードオフがある。例えば、いくつかの用途においては、より柔軟性あるソフトウエアまたはシステムアーキテクチャに適応させるために利用可能なプログラム可能領域の数を増大することが有用である。他の用途では、アドレスデコーダの数は集積回路のコストを最小にするために低減することができる。
タイミング制御段100は第2の任意の数の制御ユニットを含む。タイミング制御段100においては、2つの制御ユニット、101および102、が示されている。タイミング制御段100は外部バス21に対しチップ選択信号を提供するためのアクセス状態マシンとして機能し、かつ各々の制御ユニット101および102は進行中のバスサイクルが1つまたはそれ以上のプログラム可能な領域の属性と整合するか否かを指示するためにデコードされた信号を受信するためデコードバス81に接続された入力を有する。これに応じて、タイミング制御段100の制御ユニットの内の選択された1つがタイミングバス82に順次的なタイミング情報を提供し与えられたプログラムされたインタフェースタイプのための適切なタイミングを反映する。タイミング制御段100のために選択される制御ユニットの数は進行中の係属しているオーバラップするメモリアクセスの数を決定する。係属しているメモリアクセスのこの数はまたパイプラインの深さ(pipeline depth)として知られている。
例えば、アドレスデコード段90のアドレスデコーダ91はその対応するプログラム可能な領域へのアクセスを認識しかつそれに応じてデコードバス81に制御信号を提供する。タイミング制御段100においては、制御ユニット101のような制御ユニットがこのバスサイクルと関連するようになりかつこのアクセスの係属の間にこのアクセスのためにタイミングバス82に対しタイミング信号を提供する。第2のアクセスが前記第1のアクセスの間に行われかつアドレスデコード段90のアドレスデコーダはその対応するプログラム可能な領域へのアクセスを認識しかつそのオプションレジスタにプログラムされたものと整合する属性を有し、そしてデコードバス81に制御信号を提供する。制御ユニット102のような第2の制御ユニットがインタフェースタイプによって決定されるこのアクセスに対して1つまたはそれ以上のチップ選択制御信号をオーバラップさせるためにタイミングバス82に対しタイミング信号を提供し始めることができる。
ピン構成段110は第3の任意の数のピン構成論理回路を有する。各々のピン構成論理回路は1つの集積回路ピンに対応しかつ1つの集積回路ピンに専用のものとなっている。しかしながら、この集積回路ピンはこのチップ選択信号および他の信号の間で共有することができ、かつその機能はプログラム可能にセットできるようにするようにすることができる。
この第3の任意の数は柔軟性とシステムのコストとの間でより良好なトレードオフを可能にするようアプリケーションの間で変えることができる。例えば、コストが最も重要な要素でないいくつかのアプリケーションにおいては、より大きな数のピン構成論理回路を含めてより大きな数のメモリ装置のためにチップ選択信号を提供する能力およびより大きな柔軟性を提供することができる。コストがより大きな考慮事項である他のアプリケーションでは、より少ない数のピン構成論理回路を使用することができる。
ピン構成段110においては、代表的なピン構成論理回路111,112および113が示されておりそれぞれ“PIN0”,“PIN1”および“PIN2”で示される出力信号を提供している。各々のピン構成論理回路は制御信号を受けるためにデコードバス81に接続された1つの入力およびタイミング情報を受信するためにタイミングバス82に接続された第2の入力を有する。各々のピン構成論理回路はすべての可能なタイミング情報を受信するから、各々のピン構成論理回路は一群のチップ選択機能の内の任意のものとするよう構成できる。例えば、ピン構成論理回路111は該ピン構成論理回路111がどのようにプログラムされるかに応じて、前記*CE、*WEまたは*OE信号の内の任意の1つとなるよう構成できる。従って、アドレスデコード段90における第1の任意の数のアドレスデコーダ、第2の任意の数の制御ユニットおよびタイミング制御段100、およびピン構成段110における第3の任意の数のピン構成論理回路を含めることによって、モジュール方式のチップ選択制御回路80は任意の数のメモリ領域、任意のアクセスパイプライン深さ、および任意の数のチップ選択信号を規定することにより最大の柔軟性を提供する。これらの任意の数は得られるトレードオフを最大にするために実施例によって変えることができる。
図9は、図1のチップ選択回路32のピン構成論理回路120を部分的ブロック図および部分的論理図形式で示す。ピン構成論理回路120は概略的にピン機能レジスタ130、オベイ論理部(obey logic portion)140、およびピン機能出力部150を含む。ピン機能レジスタ130は*CE、*OEおよび*WEの内の1つのような選択的なピン機能を規定するビットを格納し、かつ選択された機能を表すデコードされた出力信号を提供する。オベイ論理部140は図示されたオベイ回路141および145のような任意の数のオベイ回路を含む。オベイ回路141は概略的にオベイ論理回路142、ORゲート143、およびD型フリップフロップ144を含む。オベイ回路141は、“C1”と名付けられた、第1のサイクルに関連している。オベイ回路141は「C1開始(C1 BEGIN)」と名付けられた信号を受けるための第1の入力、「C1領域選択(C1 REGION SELECT)」と名付けられた信号を受けるための第2の入力、ピン機能レジスタ130に接続された第3の入力、および出力を有する。ORゲート143は「C1終了(C1 END)」と名付けられた信号を受けるための第1の入力、「リセット(RESET)」と名付けられた信号を受けるための第2の入力、および出力を有する。D型フリップフロップ144はオベイ論理回路142の出力に接続され“D”と名付けられたデータ入力、ORゲート143の出力に接続された「クリア(CLEAR)」と名付けられたクリア入力、および“OBEY1”と名付けられた出力信号を提供するための“Q”と名付けられた出力端子を有する。
同様に、オベイ回路145は“CN”と名付けられたN番目のサイクルに関連しかつ概略的にオベイ論理回路146およびORゲート147そしてD型フリップフロップ148を含む。オベイ論理回路146は「CN開始(CN BEGIN)」と名付けられた信号を受けるための第1の入力、「CN領域選択(CN REGION SELECT)」と名付けられた信号を受けるための第2の入力、ピン機能レジスタ130の出力に接続された第3の入力および出力を有する。ORゲート147は「CN終了(CN END)」と名付けられた信号を受けるための第1の入力、「リセット(RESET)」と名付けられた信号を受けるための第2の入力、および出力を有する。D型フリップフロップ148はオベイ論理回路146の出力に接続されたD入力、ORゲート147を出力に接続された「クリア(CREAR)」入力、および“OBEYN”と名付けられた信号を提供するためのQ出力を有する。
オベイ回路141および145はピン構成論理回路120に関連するピンがどのサイクルに従うかを決定する。第1のサイクルの間に、図8のタイミング制御段100の制御ユニットは対応するサイクル開始信号をアクティベイトする。例えば、制御ユニット101が信号「C1開始」をアクティベイトするものと仮定する。さらに、アドレスデコーダおよびアドレスデコード段90が「C1領域選択」をアクティベイトするものと仮定する。もしピン機能レジスタ130が「C1領域選択」に整合すれば、オベイ論理回路142は信号「C1開始」のアクティベイションに応じてその出力をアクティベイトする。この信号は次に入力としてD型フリップフロップ144のD入力に与えられ、該D型フリップフロップ144はそのQ出力において信号OBEY1を「クロック」信号(図9には示されていない)の次の発生に応じてアクティベイトする。信号OBEY1は次に前記選択された制御ユニットが信号「C1終了」をアクティベイトしそれによってD型フリップフロップ144をクリアするまで、あるいは信号「リセット」のアクティベイションによってピン構成論理回路120をリセットするまでアクティブに留っている。オベイ論理部140の各々のオベイ回路は同様に対応するサイクル開始および終了信号および対応する領域選択信号のアクティベイションに応答する。
ピン機能出力部150は概略的に各々の可能なピン機能に対応する任意の数の機能論理ブロックを含む。図9には「機能1論理(FUNCTION 1 LOGIC)」と名付けられた第1の機能論理ブロック151、および「機能M論理(FUNCTION M LOGIC)」と名付けられた第2の機能論理ブロック152が示されている。各々の機能論理ブロックは信号OBEY1およびOBEYNのような各々のオベイ信号、「CiFjタイミング(CiFj TIMING)」と名付けられたタイミング信号(これは各々のサイクルおよび各々の機能に対するタイミング信号を表す)およびそれに対応する「CiFj選択(CiFj SELECT)」と名付けられた選択信号を受けるための入力、およびピン機能レジスタ130の対応する出力に接続された他の入力を有する。この場合、下付き文字iは1からNまで変わり、かつjは1からMまで変わり、この場合NおよびMは任意の数である。例えば、「機能1論理」ブロック151は、PIN0がF1の機能を有することを示す、ピン機能レジスタ130の出力を受ける。同様に、「機能M論理」ブロック152は、PIN0の機能が機能FMであることを示す、ピン機能レジスタ130からの入力を受ける。各々の機能論理回路は前記ピン機能レジスタ130の出力が前記ピンが対応する機能に応じることを示している場合にアクティブサイクルに関連するタイミング信号に応答する。例えば、もしピン機能レジスタ130がPIN0が機能F1を持つものとして選択すれば、「機能1論理」ブロック151はアクティブになる。最初のサイクルの間信号OBEY1がアクティブでありかつ「機能1論理」ブロック151は次に適切なタイミング信号に対応してその出力を提供する。この適切なタイミング信号は「CiFjタイミング」である。この場合、すべての他の機能論理ブロックはそれらの出力を論理ロー状態でインアクティブに保ち、それによってORゲート153の出力は適切なタイミング信号を使用してアクティブな機能論理ブロックにのみ応答して信号PIN0を提供する。従って、PIN0に与えられるチップ選択信号はアクティブなタイミングサイクルにのみ従い、任意のパイプライン深さを可能にする。アクティブではないがパイプラインに係属しているサイクルに関連する他のタイミング信号はアクティブなサイクルが終了するまでPIN0によって従われることはない。
図10はブロック図形式で図8のモジュール方式のチップ選択制御回路80のタイミング制御段100の部分160を示す。部分160は概略的に第1の制御ユニット170、第2の制御ユニット180、および早期(early)パイプライン制御回路186を含む。制御ユニット170は概略的にアドレスイネーブルラッチ171、オプションラッチ172、およびタイミング状態マシン173を含む。アドレスイネーブルラッチ171は「アドレスイネーブルバス(ADDRESS ENABLE BUS)」と名付けられた、内部バス34のアドレスイネーブル部分に接続された入力を有する。CPUコア31はあるアクセスのアドレスフェーズが進行中であることを示すために「アドレスイネーブルバス」によって導かれるアドレスイネーブル信号を提供する。これに応じて、部分160は該アドレスイネーブル信号を適切なチップ選択信号に変換して直接メモリ装置をドライブしなければならない。アドレスイネーブルラッチ171はタイミング状態マシン173の入力にかつ早期パイプライン制御回路186の入力に与えられる出力を有する。オプションラッチ172は「オプションバス(OPTION BUS)」と名付けられた、外部バス34のオプションバス部分に接続された入力、およびタイミング状態マシン173の入力にかつ早期パイプライン制御回路186の入力に与えられる出力を有する。タイミング状態マシン173はアドレスイネーブルラッチ171、オプションラッチ172の出力、および早期パイプライン制御回路186の第1の出力に接続された入力、および「\X\TO(CE1タイミング)(\X\TO(CE1 TIMING))」、「*WE1タイミング(*WE1 TIMING)」、および「*OE1タイミング(*OE1 TIMIG)」と名付けられた3つのタイミング信号を提供するための出力を有する。
同様に、制御ユニット180はアドレスイネーブルラッチ181、オプションラッチ182、およびタイミング状態マシン183を含む。制御ユニット180は概略的にアドレスイネーブルラッチ181、オプションラッチ182、およびタイミング状態マシン183を含む。アドレスイネーブルラッチ181は前記アドレスイネーブル信号を受けるための「アドレスイネーブルバス」に接続された入力を有する。アドレスイネーブルラッチ181はタイミング状態マシン183の入力および早期パイプライン制御回路186の入力に提供される出力を有する。オプションラッチ182は内部バス34のオプションバス部分に接続された入力、およびタイミング状態マシン183の入力にかつ早期パイプライン制御回路186の入力に提供される出力を有する。タイミング状態マシン173はアドレスイネーブルラッチ171、オプションラッチ172の出力、および早期パイプライン制御回路186の第1の出力に接続された入力、および「*CE2タイミング(*CE2 TIMING)」、「*WE2タイミング(*WE2 TIMING)」、および「*OE2タイミング(*OE2 TIMING)」と名付けられた3つのタイミング信号を提供するための出力を有する。
早期パイプライン回路186はアドレスイネーブル信号を受けるためにアドレスイネーブルバスに接続された第1の入力、オプションバスに接続された第2の入力、およびアドレスイネーブルラッチ171および181そしてオプションラッチ172および182の出力に接続された入力を有する。早期パイプライン制御回路186は2つのサイクルがオーバラップしたときどのサイクルがアクティブであるかを決定するためにタイミング状態マシン173および183に出力を提供し、それによって不適切なチップ選択信号タイミングを避ける。
タイミング制御段100は制御ユニット170および180のタイミングを調整することによってアクセスの効率的なパイプライン化を可能にする。2つのパイプライン検出および制御メカニズムがある。第1に、早期パイプライン制御回路186は図5または図7に示されたタイプを有するアクセスのような、オーバラップするアクセスを2つのタイミング状態マシン173および183に付加的な制御信号を提供して不当なタイミングシーケンスを防止することにより調整する。特に、早期パイプライン制御回路186はオーバラップするアクセスが同じ領域に対するものかまたは異なる領域に対するものか、およびオーバラップするアクセスサイクルが読出しサイクルであるかを検出し、そしてそれに応じて適切な制御信号を提供する。第2に、制御ユニット170および180は2つのアクセスされた領域の特性を調べることにより適切なチップ選択信号のタイミングを提供する。1つの特性は「オプションバス」からのITYPEフィールドによって決定されるインタフェースタイプである。他の特性はそのサイクルが外部アクノレッジ信号によって終了されるべきかあるいはあらかじめ規定された数の待機状態の後に内部的に終了されるべきかであり、これらは「オプションバス」からの対応するフィールドによって示される。
図2〜図10に示された回路は図11〜図19に示された特定の実施例を参照することによりさらによく理解できる。ここで使用されている「アクティベイト(activate)」または「アクティベイション(activation)」はその論理的に真の状態をとる信号に言及している。「アクティブハイ(active high)」信号は論理ハイの電圧でアクティブまたは真である。「アクティブロー(active low)」信号は論理ローの電圧でアクティブまたは真となり、かつアクティブローの信号はオーバーバー(上線:overbar)あるいは記号*を付けて示される。記号“$”はそれに続く数字が16をベースとした(16進の)表現であることを示す。
いくつかの用語は種々の方法で言及されることに注目すべきである。例えば、用語「領域(region)」および「ブロック(block)」は相互交換可能に使用される。また、特に注記しない限り、用語「メモリ」は揮発性および不揮発性メモリ記憶装置の双方、ならびにメモリマップされる(memory−mapped)周辺装置を含む。*CE、*OE、および*WE信号は集合的に「チップ選択」または“CS”信号に言及している。また、図面の間で同じ用語は同様にまたは同様の参照数字で示されている。
以下の表1は図1の要素を参照して後に説明する特定の実施例を理解する上で有用な付加的な用語を定義している。
[表1]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語:「Eバス(E−BUS)」
定義:外部バス21。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語:“CE”
定義:メモリまたは入力/出力(I/O)装置のチップイネーブル。チップ選択回路32は*CEをアクティベイトしかつそれをアドレスとともにアクセスされる装置に提供する。パイプライン化可能でない(non−pipelineable)装置に対しては、チップ選択回路32は*CEをアクセスが完了するまでアクティベイトする。同期パイプライン化可能装置に対しては、チップ選択回路32は*CEをアクティベイトしてアクセスされる装置に「クロック(CLOCK)」の次のローからハイへの遷移時に前記アドレスをラッチさせる。それ自身の*AACK信号を提供する装置については(ACK_EN=0)、チップ選択回路32は外部*AACK信号が受信されるまで信号*CEをアクティブに保つ。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語:「*WE」
定義:メモリまたはI/O装置の書込みイネーブル。チップ選択回路32は*WEをアクティベイトしかつそれを外部バスインタフェース33によって提供されるデータとともに提供してアクセスされる装置に該データをラッチさせる。同期装置に対しては、チップ選択回路32は*WEをアクティベイトして「クロック(CLOCK)」の次のローからハイへの遷移に際してデータをクロック入力する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語:「*OE」
定義:メモリまたはI/O装置の出力イネーブル。チップ選択回路32は*OEをアクティベイトしてアクセスされる装置にそのデータを読出しサイクルの間に外部バス21によって提供させる。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語:「バースト可能装置(Burstable Device)」
定義:同期装置(すなわち、外部バス「クロック(CLOCK)」を使用してメモリアクセスのタイミングを合わせるものであって1つのアドレスを受入れかつ複数のデータエレメントをドライブアウトできるもの)。高速スタティックコラムアクセスを備えた装置(すなわち、アドレス増分を必要とするもの)はバースト可能と考えられない。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語:「ビート(Beat)」
定義:バーストデータ転送において、バーストは数多くのデータ片(data pieces)を有し、各々のデータ片がデータビートである。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語:「オーバラップ(Overlap)」
定義:2つのメモリアクセスが整列しそれによって第2のアクセスのアドレスフェーズが第1のアクセスのデータフェーズと同時に生じる状態。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語:「パイプライン化可能装置(Pipelineable Device)」
定義:ある装置が、該装置へのアクセスの期間の間にそのアドレスピンにおいてアドレスが有効であることを要求することなく、そこに提供されたアドレスをラッチできる状態。同期パイプライン化可能装置はアドレスをその*CEがアクティベイトされたとき「クロック」の立上りエッジでラッチする。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語:「アドレス空間」
定義:CPUコア30のアドレシングの範囲。アドレス空間は領域(ブロックとも称される)へと分解できる。各々の領域は、チップのデータ幅に応じて、1つまたはそれ以上のメモリチップによって占有され得る。しかしながら、該領域のすべてのチップは1つまたはそれ以上の共通の*CE信号を有する。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語:「*BDIP,*LAST」
定義:バースト可能装置のための早期終了制御信号。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
用語:「ホールドオフ(Hold off)」
定義:ホールドオフ能力を有する装置はそのデータ出力をその装置にとってデータバスが利用可能になるまで遅らせる(hold off)ことができる。データをホールドオフすることができるためには、装置は*OE制御入力を必要とし、かつもし該装置がバースト可能であれば、それはまたデータバスがそれに対して承認されるまでその内部状態マシンが次のデータビートに進むのを見合わせる能力を必要とする。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
図11は、図1のチップ選択回路32の特定の実施例の機能ブロック図をブロック図形式で示す。チップ選択回路32は一般に3つの信号インタフェースを有する。第1に、チップ選択回路32はデータプロセッサ30にとって包括的(global)なものである「リセット(RESET)」と名付けられたリセット信号、内部動作クロック信号および外部バスクロック信号「クロック」の双方を含む「クロック(CLOCKS)」と名付けられた一組のクロック信号、および「初期値(INITIAL VALUES)」と名付けられた一組の信号を受ける。リセット(信号「リセット」がアクティブ)に応じて、データプロセッサ30は前記「初期値」を得るために外部データバスピンをサンプルし、かつチップ選択回路32はそのレジスタのいくつかの値をセットするために該「初期値」を使用する。リセットに応じて、他のレジスタはデフォールト値をとり、これらについては後にさらに説明する。
第2に、チップ選択回路32は外部バスインタフェース33へのインタフェースを有する。CPUコア31は対応するメモリマップされたロケーションへの読出しおよび書込みサイクルを行うことによりチップ選択回路32内部のレジスタをアクセスする。そのようなアクセスを検出すると、外部バスインタフェース33は「サブバス・アドレス(SUB−BUS ADDRESS)」と名付けられたアドレスバス入力および「サブバス・データ(SUB−BUS DATA)」と名付けられた双方向データパス(path)を含む特別の目的のバスを通してチップ選択回路32へのアクセスを制御する。チップ選択回路32のレジスタをアクセスするための他の制御信号は「ハンドシェイク(HANDSHAKES)」と名付けられた一組の信号を通して外部バスインタフェース33へまたは外部バスインタフェース33から送信される。メモリマップされた周辺装置のレジスタをアクセスするための制御信号の発生はよく知られておりかつこれ以上説明しない。しかしながら、外部バス転送に関連する種々の「ハンドシェイク」は外部バスインタフェース33とチップ選択回路32との間で行われる。これらの転送「ハンドシェイク」は以下の表2に説明されている。
[表2]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
転送 意味
ハンドシェイク
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
*TS 転送開始。外部バスインタフェース33はバスアクセスの始めに1クロ ックサイクルの間この信号をアクティベイトする。
*AACK 「アドレス」アクノレッジ。この信号はバスサイクルのアドレスフェー ズを終了させ、外部バスインタフェース33が他のアクセスを開始でき るようにする。
*BI バースト禁止。この入力信号はアドレスされた装置がバースト能力を持 たないことを示す。
*BDIP バーストデータ進行中。この信号は1つまたはそれ以上のデータビート が固定されたバーストアクセスに留っていることを示す。
*TA 転送アクノレッジ。この信号はバスサイクル、またはバーストアクセス の間の各々のビートのデータフェーズの正常な完了を示す。
*TEA 転送エラーアクノレッジ。この入力信号はバスエラー状態の下でバスサ イクルを終了させる。
*ARETRY アドレスリトライ。この信号はバスサイクルのアドレスフェーズに関連 し、かつ*AACKのアクティベイションをオーバライドし、そして外 部バスインタフェース33に「アドレス」を再調停および再ドライブさ せる。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
これらの信号の内関連するものは以下の説明においてより詳細に述べる。
チップ選択回路32はまた外部バスインタフェース33が外部バス21に提供する、「アドレス」と名付けられた、32ビットのアドレスを受けるための入力、および、「属性」と名付けられた、進行中のアクセスの属性を表す信号を受信するための他の入力を有する。図3はチップ選択回路32によって使用される特定の「属性」を示す。
[表3]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
属性信号名 意味
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
RD/*WR 現在のバスサイクルが読出しサイクルであるか書込みサイクルであるかを 示す。
SUPER もしアクティブであれば、現在のサイクルが管理(supervisor )アクセスサイクルであることを示し、もしインアクティブであれば、現 在のサイクルがユーザアクセスサイクルであることを示す。
INSTR/ もしアクティブであれば、現在のサイクルが命令アクセスサイクルである *DATA ことを示し、もしインアクティブであれば、現在のサイクルがデータアク セスサイクルであることを示す。
*BURST 転送がバースト転送であることを示す。
*BE0− 1つのサイクルの間にどのバイト(単数または複数)がイネーブルされる *BE3 かを示す。*BE0はデータレーンD0−D7が有効なデータを含むこと を示す。*BE1はデータレーンD8−D15が有効なデータを含むこと を示す。*BE2はデータレーンD16−D23が有効なデータを含むこ とを示す。*BE3はデータレーンD24−D31が有効なデータを含む ことを示す。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
第3に、チップ選択回路32は“CSBOOT”および“CS(0)−CS(11)”と名付けられた13のチップ選択信号を含む外部装置へのインタフェースを含む。これらの信号は後に図13に関連して非常に詳細に説明する。
図11に示されるように、チップ選択回路32は概略的に2つの部分、すなわちレジスタアクセス回路190およびチップ選択発生ユニット200を含む。レジスタアクセス回路190はレジスタアクセスコントローラ192、およびレジスタアドレスデコーダ194を含む。レジスタアクセスコントローラ192はチップ選択回路32のレジスタへのアクセスのための制御信号を提供する状態マシンである。レジスタアドレスデコーダ194はチップ選択回路32のどのレジスタがアクセスされているかを検出する。レジスタアクセス回路190はチップ選択レジスタ195へのアクセスのためにチップ選択発生ユニット200に接続されている。
チップ選択レジスタ195は図12の(a)および(b)に示されるようにメモリマップされたレジスタであり、図12(a)および(b)はブロック図形式でチップ選択レジスタ195のアドレスマップを示す。メモリにおけるこれらのレジスタのロケーションは任意的なものであるが、それらは好ましくは将来の拡張を可能にする方法で実施される。例えば、チップ選択回路32は6つの領域に加えて専用のサブ領域をサポートし、かつ合計13のチップ選択信号を有する。1つの独自の領域に対応する各々のチップ選択信号はベースアドレスレジスタとオプションレジスタの双方を有し、他の7つのチップ選択信号の各々はオプションレジスタのみを有する。しかしながら、メモリマップにおけるこれら6個のオプションレジスタに隣接するロケーションはリザーブされており、ベースアドレスレジスタを加えることによって付加的な機能性をサポートするために派生的(derivative)集積回路を可能にする。チップ選択回路32のレジスタの機能は後に図13を参照して詳細に説明する。
図13は、図11のチップ選択発生ユニット200をブロック図形式で示す。チップ選択発生ユニット200は概略的に信号の相互接続のために2つのバス、すなわち「デコードバス(DECODE BUS)」201および「タイミングバス(TIMING BUS)」202、を含む。チップ選択発生ユニット200はまたアドレスデコード段210、タイミング制御段230、およびピン構成段240を含む。チップ選択発生ユニット200は図8のモジュール方式のチップ選択制御回路80の1つの可能な実施例にすぎず、そのモジュール性(modularity)および再構成可能性(recontigurability)を使用して構成のマイクロコントローラに適したチップ選択回路を実現する。チップ選択発生ユニット200は6つのアドレスデコーダを使用する6つの領域とこれに加え1つの専用のサブ領域とを規定し、かつ前記6つの領域へのアクセスのために使用されるチップ選択信号を規定するために7つの付加的なオプションレジスタを有する。チップ選択発生ユニット200はまた2つの深さの(two−deep)パイプラインを構成するために2の制御ユニットを含み、かつ13のプログラム可能なチップ選択ピンを有する。前記6つの領域の内の1つは特別のブート領域であり、これはリセットによってアクティブとなりブートルーチンを格納する不揮発性メモリ装置へのアクセスを可能にする。前記ブートルーチンの一部は次に残りの領域をプログラムすることができる。
チップ選択発生ユニット200は2および3レベルの領域ネスティングを提供するために領域をペアリングすることによりマルチレベルの保護機構を実現する。この特徴的機能を実現するため、チップ選択発生ユニット200はブート領域(これはまたCSBOOT領域または領域0として知られる)を領域1と対になった主領域として規定する。領域0と対にすることにより、領域1は領域0内でより高い優先度でサブブロックとなることができる。領域2および4はまた主ブロックであり、それぞれ、領域3および領域5と対にされ、これらの領域3および5はより高い優先度で3つのブロック内のサブブロックとなることができる。
さらに、チップ選択発生ユニット200は領域0と対にされる専用のサブブロック(「ブートサブブロック(BOOT SUB−BLOCK)」)を規定するための付加的なデコーダを有する。この専用のサブブロックデコーダは3つまでのレベルのネスティングを可能にする。3つのレベルのネスティングを実施するための優先度機構は次のとおりである。領域1は「ブートサブブロック」よりも高い優先度を有し、該「ブートサブブロック」は領域0よりも高い優先度を有する。
チップ選択発生ユニット200内の各領域は対応するオプションレジスタ内の符号化されたフィールドに規定された関連するメモリアクセスのインタフェースタイプ(“ITYPE”)を有する。チップ選択発生ユニット200は8つの異なるインタフェースタイプをサポートする。もしアクセスされた領域のオプションレジスタにおけるITYPEフィールドがこれら8つの正当なアクセスタイプの内の1つを符号化すれば、タイミング制御段230はアクセスタイプによって規定される関連する一組のタイミング信号を提供する。しかしながら、前記ITYPEフィールドはまたリザーブ状態で符号化することもできる。もし前記ITYPEフィールドが、例えばソフトウエアエラーの結果として、リザーブされた状態にあれば、関連する領域のデコード論理ブロックはアクセスが行われることを防止する。従って、チップ選択発生ユニット200はこれらのエラーが誤ったメモリアクセスを生じさせることを防止する。
1つのインタフェースタイプは1つの領域への同期読出しアクセスを可能にしかつ早期同期*OE信号を提供する。このアクセスタイプは「早期同期出力イネーブルを備えた同期インタフェース」として知られている。このアクセスタイプは少なくとも1つの待機状態を必要とする同期メモリまたはメモリマップされた周辺装置のために適切なものである。このアクセスタイプを使用したアクセスの間に、タイミング制御段230の制御ユニットは1つのクロック期間の間前記*OE信号をアクティベイトしかつ外部バスインタフェース33は引続くクロック周期の間にデータをラッチする。このアクセスタイプはチップ選択発生ユニット200が少なくとも1つの待機状態を有するメモリ装置へのアクセスのために第1のサイクルのデータフェーズの完了前に第2のサイクルのアドレスフェーズを行うことができるようにする。アクセスがバースト可能な装置へのものである場合は、タイミング制御段230は「同期出力イネーブルを備えた同期バースト読出し」として知られた同様のアクセスタイプをサポートする。
他のインタフェースタイプは領域へのアクセスの早期オーバラップの特徴的機能を提供する。このアクセスタイプは「同期出力イネーブルおよび早期オーバラップを備えた同期インタフェース」タイプとして知られている。このインタフェースタイプに対しては、タイミング制御段230はそれが第2のアクセスのために*OE信号を提供するクロックサイクルの間にこの引続くアクセスのアドレスフェーズを行うことにより、1クロックサイクル早く引続くアクセスを開始する。
タイミング制御段230はまた一組のパイプライン化ルールを実施することによって2つの深さの(two−deep)パイプライン深さをサポートする。これらのルールはデータの完全性および適切なサイクル終了を保証する。該ルールは、アクセスが読出しアクセスであるかあるいは書込みアクセスであるか、アクセスがチップ選択発生ユニット200によって規定される領域へのものであるか否か、アクセスが同期または非同期インタフェースタイプを備えた領域へのものであるか否か、およびアクセスされる装置がバースト可能であるか否かのような要因を調べることにより、第1のアクセスの係属中に第2のアクセスを始めることができるか否かを判定し、かつそれ自身の転送アクノレッジ信号を提供する。
ピン構成段240はタイミング制御段230における2つの制御ユニットをサポートして2のパイプライン深さを可能にする。ピン構成段240における13のピン構成論理回路の各々は第1または第2のサイクルが関連するピンを「支配または所有している(owns)」かをマークする。各々のピン構成論理回路はその選択されたピン機能に関連するタイミングを使用して、ピン機能レジスタにプログラムされた領域へのアクセスのような、そのサイクルの属性が適合しておれば第1のサイクルの間にチップ選択信号を提供する。第2のサイクルの間に、各々のピン構成論理回路はさらにそのサイクルの属性も適合していれば選択されたピン機能に関連するタイミングに従う。
チップ選択発生ユニット200のこれらのおよびさらに他の特徴は以下に順次各回路段を考察することによって説明する。
<アドレスデコード段210の説明>
アドレスデコード段210は7つまでの異なるプログラム可能な領域を規定する。これら7つの領域の内の第1のものはブート領域、あるいは、領域0(Region 0)で表される。ブート領域に関連する2つのレジスタ211および212、ならびに1つのデコード論理ブロック224がある。「CSBOOTベースアドレスレジスタ(CSBOOT BASE ADDRESS REGISTER)」と名付けられた、レジスタ211はブート領域のためのべースアドレスレジスタとして作用する。レジスタ211は32の可能なビットの内20ビットを構成する。ビット0−19はブート領域のためのベースアドレスを示し、レジスタ211のビット0は「アドレス」のビット0に対応し、レジスタ211のビット1は「アドレス」のビット1に対応し、以下同様である。このビットの順序付け機構では、ビット0は再上位ビットを表し、かつ「アドレス」のビット31は最下位ビットを表す。
リセットに応じて、このフィールドはもし割込み前置ビット(interrupt prefix bit:IP)として知られた「初期値(INITIAL VALUE)」ビットが0に等しければ$00000にデフォールトされ、あるいはもし(IP=1)であれば$FC000にデフォールトされ、そしてリセットに続きソフトウエアでプログラム可能である。デフォールトのベースアドレスおよびデフォールトのブロックサイズによって規定される、デフォールトのCSBOOT領域はCPUコア31のリセットベクトルのアドレス(初期プログラムカウンタのメモリロケーション)を含まなければならないことに注目すべきである。この領域のベースアドレスはアドレスマップ内の任意のアドレスにプログラムできるが、それはデータプロセッサ30の他のブロックまたはモジュールとオーバラップしてはならない。パワーオンの際に、ブート装置のアドレスは命令を格納するために使用されるデータプロセッサ30の内部EPROMのような、内部モジュールのアドレスと整合するかも知れない。しかしながら、もしこれが生じれば、データプロセッサ30は内部アクセスに外部アクセスをオーバライドさせるために、図示しない、付加的な回路を含む。内部アクセスはブート命令を提供するために行うことができ、かつチップ選択発生ユニット200は外部アクセスを行わない。「CSBOOTベースアドレスレジスタ」のビット20−31はリザーブされている。
「CSBOOTオプションレジスタ」と名付けられた、レジスタ212はブート領域のためのオプションレジスタである。それは32ビットのレジスタであり、その各ビットは以下の表4に示されるように規定されている。
[表4]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ビット番号 ニーモニック 機能の説明
(単数又は
複数)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
0−3 BSIZE ブロックサイズ。このフィールドはベースアドレス(表5) に関連するブロックのサイズを規定する。
4 SBLOCK サブブロック。もしセットされれば、ベースアドレスレジス タによって特定されるアドレス空間はより大きなメインブロ ック内のサブブロックである。メインブロックは対にされた ベースアドレスレジスタによって特定される(表6)。
5 SUPER 管理のみ。もしセットされれば、該ビットはブロックが管理 アクセスのみのためであることを示す。もしクリアされれば 、ブロックはスーパバイザまたはユーザによってアクセスで きる。
6 DSPACE データスペースのみ。もしセットされれば、アドレスブロッ クはデータのみを含みかつ該領域から命令はアクセスされな い。もしクリアされれば、該ブロックは命令およびデータの 双方を含むことができる。
7 WP ライトプロテクト。もしセットされれば、このアドレスブロ ックは読出しのみである。もしクリアされれば、該ブロック は読出しおよび書込みアクセスの双方のために利用できる。
8 CI キャッシュ禁止。もしセットされれば、このビットは該領域 のデータがキャッシュされるべきでないことを示す。
9−12 未使用 未使用
13 ACK_EN アクノレッジイネーブル。もしセットされれば、チップ選択 回路32はTA_DLYフィールドおよびITYPEフィー ルドによって決定される、それぞれ、転送アクノレッジ*T Aおよび該領域に対するアドレスアクノレッジ*AACKフ ィールドを戻す。
14−16 TA_DLY *TA遅延。このビットはゼロおよび7の間の待機状態の領 域のラテンシー(潜伏:latency)を示す(表7)。
17−18 PS ポートサイズ。これらのビットは領域のポートサイズを示す 。デフォールトのポートサイズは32ビットである(表8) 。
19−20 PCON ピン構成。これらのビットはピンが*CE、*WE、*OE またはノンチップ選択機能となるよう構成する。もしそのピ ンが*CEピンであれば、「領域(REGION)」フィー ルドはそれに影響を与えず、それは各々の*CEピンはそれ 自身のベースアドレスレジスタおよびデコード論理を有する からである(表9)。
21−22 BYTE バイト。このフィールドはそのピンが*WEピンとして構成 されている場合にのみ適用可能である。チップ選択回路32 はこのフィールドを使用して前記Eバスの4つのバイトイネ ーブルの内どのためにそれが*WEをアクティベイトすべき かを決定する。典型的には、書込み可能領域は複数の*WE 、1つの*OE、および1つの*CEを有する(表10)。
23−25 REGION メモリ領域。このフィールドはそのピンが*WEまたは*O Eピンとなるよう構成されている場合にのみ適用できる。こ れらのビットはどのメモリ領域のためにそのピンが使用され るかを示す。もしこれらのビットがゼロの値を有すれば、対 応するチップ選択デコーダはディスエーブルされる(表11 )。
26−27 未使用 未使用
28−31 ITYPE インタフェースタイプ。これらのビットは制御されているメ モリまたは周辺装置のタイプを示す(表12)。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
前記図4に示された、あるビットフィールドはさらに以下の表5〜表12に示されている。BSIZEフィールドはリセットに際し「CSBOOTオプションレジスタ(CSBOOT OPTION REGISTER)」に対し$Fにデフォールトする。しかしながら、別の実施例では、前記BSIZEフィールドはCPUコア31のリセットベクトルが依然としてデフォールトのCSBOOT領域内にある限り、1メガバイト(1M)のような、他の値とすることができる。表5はBSIZEフィールドの符号化を示す。
[表5]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
BSIZE ブロック 比較されるアドレスライン
フィールド サイズ
(2進) (バイト)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
0000 無効 この符号化はベースアドレスレジスタおよびオプションレジス タのビット値が無効であるかあるいは構成されて(confi gured)いないことを示す。これらのレジスタを使用して の外部装置へのアクセスはそれらが構成されるまで可能となら ない。
0001 4K A0−A19
0010 8K A0−A18
0011 16K A0−A17
0100 32K A0−A16
0101 64K A0−A15
0110 128K A0−A14
0111 256K A0−A13
1000 512K A0−A12
1001 1M A0−A11
1010 2M A0−A10
1011 4M A0−A9
1100 8M A0−A8
1101 16M A0−A7
1110 32M A0−A6
1111 64M A0−A5
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ビット4、すなわちSBLOCKビット、は領域がより大きなメインブロック内のサブブロックであるべきか否かを示す。以下の表6に示されるように、異なるブロックは一緒に対にされる(paired)。
[表6]
−−−−−−−−−−−−−−−−−−−
メインブロック サブブロック
−−−−−−−−−−−−−−−−−−−
CSBOOT CS1
CS2 CS3
CS4 CS5
−−−−−−−−−−−−−−−−−−−
上に示した、これらのペアリングに加えて、ブート領域は付加的な専用のサブブロックを有する。もしレジスタ212の前記SBLOCKビットがセットされれば、CS0ブロックがメインブロックでありかつCS1ブロックがサブブロックである。リセットに応じて、このビットは0にデフォールトする。
「CSBOOTオプションレジスタ」に対する前記SUPERビットはリセットに応じて1にデフォールトするが、それはCPUコア31がスーパバイザモードにおけるリセットの後に命令のアクセスを開始することになるからである。DSPACEビットはリセットに応じて0にデフォールトする。「CSBOOTオプションレジスタ」に対するWPビットはリセットに応じて1にデフォールトするが、それはブート命令は一般に不揮発性の、リードオンリメモリ装置からフェッチされるからである。前記CIビットはリセットに応じて0にクリアされ、それはブートルーチンからの命令はキャッシュ可能となる傾向があるからである。
前記ACK_ENビットはリセットに応じて1にセットされ、かつ対応する「初期値(INITIAL VALUE)」ビットは初期的なTA_DLYフィールド値を提供する。表7はTA_DLYフィールドの符号化を示す。
[表7]
−−−−−−−−−−−−−−−−−−−−−
TA_DLY(2進) 待機状態の数
−−−−−−−−−−−−−−−−−−−−−
000 ゼロ
001 1
010 2
011 3
100 4
101 5
110 6
111 7
−−−−−−−−−−−−−−−−−−−−−
初期PSフィールドも「初期値」であり、かつその符号化は以下の表8に示されている。
[表8]
−−−−−−−−−−−−−−−−−−−−
PS(2進) ポートサイズ
−−−−−−−−−−−−−−−−−−−−
00 リザーブ
01 16ビットポート
10 32ビットポート
11 リザーブ
−−−−−−−−−−−−−−−−−−−−
前記PCONフィールドは、その符号化は以下の表9に示されているが、CSBOOT領域に対してリセットに応じて00にクリアされる。
[表9]
−−−−−−−−−−−−−−−−−−−−−−−−−−−
PCON(2進) 以下のものとしてピン機構
−−−−−−−−−−−−−−−−−−−−−−−−−−−
00 チップイネーブル(*CE)
01 書込みイネーブル(*WE)
10 出力イネーブル(*OE)
11 チップ選択機能なし
−−−−−−−−−−−−−−−−−−−−−−−−−−−
前記PCONフィールドはピン機能レジスタ130の目的で作用することに注意を要する。他の実施例では、別個のピン機能レジスタを使用することもできる。
前記BYTEフィールドは、その符号化が以下の表10に示されており、リセットに応じて00にクリアされる。
[表10]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−
BYTE(2進) 以下に対してピンは*WEを発生
−−−−−−−−−−−−−−−−−−−−−−−−−−−−
00 バイトイネーブル0
01 バイトイネーブル1
10 バイトイネーブル2
11 バイトイネーブル3
−−−−−−−−−−−−−−−−−−−−−−−−−−−−
前記REGIONフィールドは、リセットに際してドントケアであるが、始めに000にクリアされる。REGIONフィールドに対する符号化は以下の表11に示されている。
[表11]
−−−−−−−−−−−−−−−−−−−−−−−−−
REGION *WE/*OEピンは
(2進) 以下のメモリ領域に属する
−−−−−−−−−−−−−−−−−−−−−−−−−
000 CSBOOT
001 CS1
010 CS2
011 CS3
100 CS4
101 CS5
110 未使用
111 未使用
−−−−−−−−−−−−−−−−−−−−−−−−−
最後に、初期ITYPEフィールドもまた「初期値」である。ITYPEフィールドの符号化は以下の表12に示されている。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
[表12]
ITYPE 装置インタフェースアクセスタイプ
フィールド
(2進)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
0000 1クロック周期より小さいかまたは等しい出力バッファターンオフ時間を有 する包括的(Generic)非同期領域。このインタフェースタイプを有 する装置はパイプライン化可能ではない。
0001 2クロック周期の出力バッファターンオフ時間を有する包括的非同期領域。 このインタフェースタイプを有する装置はパイプライン化可能ではない。
0010 非同期*OEを有する同期領域。このインタフェースタイプを有する装置は パイプライン化可能であり、非同期装置として機能することができ、かつ* OEがアクティベイトされるまで読出しアクセスに際してその内部データを ホールドオフする能力を有する。
0011 早期同期*OEを有する同期領域。このインタフェースタイプを有する装置 はパイプライン化可能であり、非同期装置として機能することができ、かつ 読出しアクセスに際して*OEがアクティベイトされるまでその内部データ をホールドオフする能力を有する。このインタフェースタイプによってアク セスされる装置は少なくとも1つの待機状態を持たなければならずかつもし TA_DLYがゼロ待機状態を示せば、チップ選択回路32は*OEをあた かも該領域が1つの待機状態を持つかのごとく発生する。
0100 リザーブ。もし誤ってプログラムされれば、対応するピンはインアクティブ に留る。
0101 固定バーストアクセス能力を備えたバースト可能領域。このインタフェース は*OEを有し、パイプライン化可能であり、かつ*OEがアクティベイト されるまでその内部データをホールドオフすることができる。このインタフ ェースは非同期インタフェースとして機能するが、インタフェースによって 要求される数の待機状態および*OEのアクティベイションの後にのみデー タを提供する。このモードでは、インタフェースは*BDIP信号がそれが 次のデータを送出すべきことを示すまで第1のデータビートを有効に保つ。 この領域に対する*OEは非同期*OEである。
0110 リザーブ。もし誤ってプログラムされれば、対応するピンはインアクティブ に留る。
0111 固定バーストアクセス能力のみを有するバースト可能領域であるが、インタ フェースは*OEを有し、パイプライン化可能であり、かつその内部データ を*OEがアクティベイトされるまでホールドオフすることができる。この インタフェースは非同期インタフェースとして機能するが、インタフェース によって要求される数の待機データおよび*OEがアクティベイトされた後 にのみデータを提供する。このモードでは、インタフェースは前記*BDI P信号がそれが次のデータを送出すべきことを示すまで最初のデータビート を有効に保つ。この領域に対する*OEは同期*OEである。
1000 固定バーストアクセスのみを有するバースト可能領域。このインタフェース は待機状態カウンタを含みかつ*OEを持たず、従って装置はそれが要求す る数の待機状態の後にデータをドライブ出力する。このタイプはデータバス が利用可能になるまでその内部データをホールドオフすることができず従っ てそれはさほどパイプライン化可能なものではない。このインタフェースは 非同期インタフェースとして機能するが、待機状態の数が満足された後にの みデータを提供しかつ1クロックのみの間第1のデータビートを有効に保つ 。
1001 ITYPE=0011と同じであるが領域に対するアクセスの早期オーバラ ップの付加的な特徴を有する。このタイプのインタフェースはそれが前のア クセスに対して読出しに際し有効なデータをドライブ出力しあるいは書込み に際しデータを受信する1クロック周期前にそこに対する他のアクセスをパ イプライン化できなければならない。
1010 リザーブ。もし誤ってプログラムされれば、対応するピンはインアクティブ−1111 に留る。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ブート領域はそれに関連する専用のサブブロックを有する。「CSBOOTサブブロックベースアドレスレジスタ」で示される、レジスタ213はこの専用のサブブロックのためのベースアドレスレジスタであり、かつ「CSBOOTサブブロックオプションレジスタ」で示される、レジスタ214はオプションレジスタである。レジスタ213はレジスタ211と同じフィールド符号化を有するが、レジスタ214はマルチレベル保護機能を行うのに必要なフィールドのみを含む。レジスタ214は前記表4および表5に規定されているようにビット0−8にBSIZE,SBLOCK,SUPER,DSPACE,WPおよびCIフィールドを含み、これらのすべてはリセットに際して0にクリアされる。ビット9−31は未使用である。チップ選択発生ユニット200の適切な動作を確実にするために、このおよびサブブロックとなるべきブロックの任意の他のオプションレジスタにおけるBSIZEフィールドはメインブロックのBSIZEより小さくなければならない。しかしながら、他の実施例では付加的な論理回路によって部分的にオーバラップする領域をサポートできることに注意を要する。デコード論理ブロック224は領域0レジスタ211および212、および専用のブートサブブロックレジスタ213および214の双方のビットに応答する。
第2の領域はCS1領域、あるいは、領域1として示されている。領域1に関連して2つのレジスタ216および217、および1つのデコード論理ブロック225がある。レジスタ216は、「CS1ベースアドレスレジスタ」と名付けられ、領域1のためのベースアドレスレジスタとして作用する。レジスタ216は32ビットのレジスタである。レジスタ211と同様に、ビット0−19は領域1のためのベースアドレスを示し、ビット0は「アドレス(ADDRESS)」のビット0に対応し、ビット1は「アドレス」のビット1に対応し、かつ以下同様であり、ビット20−31はリザーブされている。リセットに応じて、このフィールドは$00000にデフォールトする。この領域のベースアドレスはアドレスマップ内の任意のアドレスにプログラムできるが、それはデータプロセッサ30の他のブロックまたはモジュールとオーバラップしてはならない。「CS1オプションレジスタ」と名付けられた、レジスタ217は領域1のためのオプションレジスタである。それは前の表4に規定されているように、レジスタ212に対するものと同じ符号化を有する32ビットのレジスタである。リセットに応じて、PCONフィールドを除き、すべてのビットはゼロにデフォールトし、該PCONフィールドはデータプロセッサ30がチップ選択モードにあれば$0にデフォールトし、さもなければ$3にデフォールトする。
アドレスデコード段210は他の5つの領域に対応する5つの他のオプショレジスタを含む。図13は、「CS1オプションレジスタ」および「CS5オプションレジスタ」と名付けられ、かつ領域1および5にそれぞれ関連する代表的なオプションレジスタ217および219を示す。これらのオプションレジスタの各々はレジスタ212と同じビットフィールド定義を有している。しかしながら、リセットに応じて、すべてのビットおよびビットフィールドは0にクリアされる。
「CS0オプションレジスタ」と名付けられた、レジスタ215はピン構成段240におけるあるピンに対応するオプションレジスタであり、かつ上に定義したPCON,BYTEおよびREGIONフィールドのみを含む。PCONフィールドはもしこのピンがチップ選択モードにあればリセットに応じて2にデフォールトし、さもなければ3にデフォールトし、フィールドBYTEおよびREGIONは0にデフォールトする。「CS6オプションレジスタ」および「CS11オプションレジスタ」と名付けられた代表的なレジスタ220および221を含む、特定の領域に関連しないオプションレジスタはレジスタ215と同じビットフィールド定義を有する。しかしながら、リセットに応じて、フィールドPCONはもし対応するピンがチップ選択モードにあれば0にクリアされ、かつそれ以外は3にセットされる。レジスタ215と同様に、これらの付加的なオプションレジスタのBYTEおよびREGIONフィールドはリセットに応じて0にクリアされる。
ブート領域にはデコード論理ブロック224が関連している。レジスタ211,212,213および214は各々それらのビットをデコード論理ブロック224への出力として提供する。さらに、ブロック1を(専用のブートサブブロックに加えて)ブロック0への対にされたサブブロックとして供するため、ブロック1に関連するデコード論理ブロック225は出力信号をデコード論理ブロック224の入力に提供する。これらの出力信号は図3に示されたマルチレベル保護機構のために必要な「アドレス整合(ADDRESS MATCH)」および「属性整合(ATTRIBUTE MATCH)」信号である。メインブロックは優先度実施回路58の機能を導入していることに注目すべきである。デコード論理ブロック224は外部バスインタフェース33を通してCPUコア31から入力「アドレス」および「属性」を受信する。デコード論理ブロック224は始めに前記「アドレス」がブート領域または専用のブートサブブロック内にあるかをチェックする。デコード論理ブロック224はこれを前記「アドレス」が対応するベースアドレスレジスタのベースアドレスフィールドのBSIZE内にあるか否かを判定することによって行う。次に、デコード論理ブロック224は入力「属性」を対応するオプションレジスタにプログラムされたものと比較する。
図示された実施例では、「アドレス」は32ビットのアドレスである。デコード論理ブロック224は該「アドレス」の(BSIZEフィールドによって決定される)有意ビット(significant bits)をベースアドレスレジスタに格納された値およびオプションレジスタのBSIZEフィールドと比較する。もしすべての有意アドレスビットが整合すれば、デコード論理ブロック224はアドレス整合を検出する。
デコード論理ブロック224は種々の「属性」をデコードしかつそれらを次のようにしてレジスタ212からの対応するビットに対してチェックを行う。デコード論理ブロック224はWPビットに対してRD/*WR属性を比較し、もしRD/*WRが論理ハイであるかあるいはRD/*WRが論理ローであってWPがクリアされていれば、デコード論理ブロック224はこのビットに対して属性整合を検出する。デコード論理ブロック224は前記SUPER属性をSUPERビットと比較しかつもしSUPER属性が論理ハイであるかあるいはSUPER属性が論理ローであってSUPERビットがクリアされていればこのビットに対して属性整合を検出する。デコード論理ブロック224はINSTR/*DATA属性をDSPACEビットに対して比較し、かつもしINSTR/*DATAが論理ローであるか、あるいはもしINSTR/*DATAが論理ハイであってDSPACEがクリアされていればこのビットに対して属性整合を検出する。もしすべてのプログラムされた属性がこのようにして対応する「属性」信号と整合すれば、デコード論理ブロック224は属性整合を検出する。
もしデコード論理ブロック224がある領域において「アドレス整合」および「属性整合」の双方を検出すれば、それは次により高い優先度のサブブロックが該整合をオーバライドするか否かを見るためにチェックを行う。例えば、もしデコード論理ブロック224が領域0および専用のブートサブブロックの双方の中のアドレスへのアクセスを検出すれば、レジスタ214に規定された属性は該アクセスが行われるか否かを制御する。デコード論理ブロック224はもし前記専用のブートサブブロック内に属性整合がなければ、領域0内にアドレスおよび属性双方の整合があってもそのサイクルが行われるのを禁止することになる。
<タイミング制御段230の説明>
タイミング制御段230は2つの制御ユニット231および232、そして制御ユニット231および232の間に接続された早期パイプライン制御ユニット233を含む。タイミング制御段230は外部バス21にチップ選択信号を提供するためのアクセス状態マシンとして機能し、かつ制御ユニット231および232の各々は「デコードバス」201に接続された入力を有し、該入力によってアドレスデコード段210のデコード論理ブロックからデコードされた信号を受信し進行中のバスサイクルが6つの利用可能な領域の1つまたは専用のブートサブブロックのアドレスおよび属性と整合するか否かを指示する。もし前記領域の1つが整合を検出すれば、タイミング制御段230の制御ユニットの1つが「タイミングバス」202に対し順次的なタイミング情報を提供して与えられたプログラムされたインタフェースタイプに対して適切なタイミングを反映する。
制御ユニット231はタイミングバス202に対し3つのタイミング制御信号、すなわち\X\TO(CE1タイミング),\X\TO(OE1タイミング)および*(WE1タイミング)を提供する。同様に、制御ユニット232はタイミングバス202に対し3つの制御信号、すなわち\X\TO(CE2タイミング),*(OE2タイミング)および*(WE2タイミング)を提供する。
例えば、アドレスデコード段210のデコード論理ブロック224は領域0へのアクセスを認識しかつそれに応じて制御信号をデコードバス201に提供する。タイミング制御段230においては、制御ユニット231のような制御ユニットはこのバスサイクルと関連するものとなりかつこのアクセスの係属の間にこのアクセスのためにタイミングバス202に対してタイミング信号を提供する。第2のアクセスは第1のアクセスの間に行うことができかつアドレスデコード段210のアドレスデコーダはその対応するプログラム可能領域であってそのオプションレジスタにプログラムされたものと整合する属性を有するものへのアクセスを認識しかつ制御信号をデコードバス201に提供する。制御ユニット232は次にインタフェースタイプによって決定されるこのアクセスに対する1つまたはそれ以上のチップ選択制御信号をオーバラップさせるためにタイミングバス202に対しタイミング信号の提供を始めることができる。
各々のタイミング制御ユニットはそのサイクルを所有する領域に対するオプションレジスタのITYPEフィールドに応じて各々のチップ選択機能に対するタイミング信号を提供する。チップ選択回路32が実施するインタフェースタイプに対する信号タイミングは図14〜図19を参照してよりよく理解することができる。これらのタイミング図の各々において、引続くローからハイへの「クロック」遷移はt1,t2,t3その他で示されている。「アドレス(ADDRESS)」、「データ(DATA)」および制御信号のアクティブなまたは有効な時間はそのアクセスを適切に識別するために単数または複数の番号によって示されている。これらのタイミング図は典型的な信号タイミングを示すことに注意を要する。実際の信号タイミング波形は集積回路の製造プロセス条件が変われば異なるものである。いくつかの信号は外部バスインタフェース33によって提供されるが、インタフェースのよりよい理解を可能にするために図示されている。図14〜図19において、矢印は信号の依存性または因果関係を表している。
図14は、インタフェースタイプ$0のタイミング図を示し、このインタフェースタイプ$0はゼロ待機状態の、アンロック装置(すなわち、1クロック周期より小さいかまたは等しい出力バッファターンオフ時間を有する装置)をアクセスするための包括的(generic)非同期インタフェースである。該非同期インタフェースは「アドレス(ADDRESS)」およびチップ選択信号(*CEおよび、*OEまたは*WE)がアクセスの終りまで有効であることを必要とする。したがって、同じ装置への引き続くアクセスは前のアクセスの完了前には行なうことができず、オーバラップするアクセスは許容されない。図14は、読出しサイクルとこれに続く書込みサイクルを示す。読出しサイクルおよび書込みサイクルの双方の間に、アクセスされた装置はA1のようなアドレスをCE1の立下りエッジのような信号*CEのアクティベイションのある遅延時間の後に使用する。読出しサイクルの間、アクセスされた装置はOE1の立下りエッジのような信号*OEのアクティベイションの後のある遅延時間内に「データ(DATA)」を出力として(および外部バスインタフェース33への入力として)提供する。書込みサイクルの間、アクセスされた装置はWE2の立上りエッジのような信号*WEのインアクティベイションのある遅延時間後にD2(これは外部バスインタフェース33の出力である)のようなデータエレメントをラッチする。非同期メモリ装置の一例はモトローラ・インコーポレイテッドから入手可能なMCM62995A型メモリチップであり、これはアドレスラッチイネーブル(*ALE)信号入力を持つことに加えて非同期モードで機能することもできる。
インタフェースタイプ$1はタイプ$0と同様であるが、2クロック周期の出力バッファターンオフ時間を備えた装置をアクセスするために包括的(generic)非同期インタフェースに適用される。したがって、このアクセスに関連する信号のタイミングは図14に示されたものと同様であるが、全く同じではない。読出しサイクルに対しては、チップ選択回路32は引き続く装置が外部バス21上に「データ(DATA)」をドライブできるようになる前にそれが信号*OEをデアクティベイトした後1クロック周期待機することになる。引き続く書込みサイクルに対しては、チップ選択回路32は前の*OEをデアクティベイトした後1クロック周期までは外部バスインタフェース33がデータをドライブするのを禁止する。
図15は、インタフェースタイプ$2のタイミング図を示し、このインタフェースタイプ$2は非同期*OEを有する同期インタフェースである。この非同期インタフェースを備えたメモリ装置は「クロック(CLOCK)」を受けるための入力を有し、「アドレス(ADDRESS)」および「データ(DATA)」をローからハイへのクロックの遷移に応じてラッチする。読出しアクセスの間は、メモリ装置は信号*OEに応じて非同期的にデータを提供する。図15は読出しサイクルとこれに続く書込みサイクルとを示す。チップ選択信号に加えて、このインタフェースアクセスタイプを備えた装置は外部バスインタフェース33によって提供される“*WR”と名付けられた書込み信号を観察して、アドレスフェーズの間に、アクセスが読出しアクセスであるかあるいは書込みアクセスであるかを決定する。したがって、t2において、アクセスされた装置はそのアクセスが読出しアクセスであることを認識しかつA1をラッチする。チップ選択回路32は信号*OEをアクティベイトし、かつOE1の立下りエッジはアクセスされた装置に「データ」を提供させ、この「データ」は外部バスインタフェース33への入力となる。
このインタフェースを使用するメモリ装置は入力「アドレス」をラッチする能力を有し、したがって同じ装置への次のアクセスは前のアクセスとオーバラップすることができ、かつそのような装置は信号*OEがアクティベイトされるまで読出しアクセスに際してその内部データをホールドオフすることができる。したがって、引き続く書込みサイクルのアドレスフェーズは読出しサイクルのデータフェーズの終りにオーバラップすることができる。チップ選択回路32はアクセスされた装置にアドレスA2をラッチさせるためt3の前に信号*CEをアクティベイトする。信号*WRはt3においてアクティブであるから、アクセスされた装置は書込みアクセスを認識する。読出しアクセスのデータフェーズの完了後、チップ選択回路32は信号*WEをアクティベイトしてt5において書込みサイクルのデータフェーズを完了させるためにアクセスされた装置にデータをラッチさせる。
図15に示されたタイミングはチップ選択回路32が2つの引き続くインタフェースタイプ$2のアクセスをオーバラップさせる能力を切り離して示す。しかしながら、データプロセッサ30はあり得るバス競合に対し余分の保護を提供するためにこのオーバラップを許容しない。データプロセッサ30においては、外部バスインタフェース33はチップ選択回路32が第2のアクセスのアドレスフェーズをオーバラップさせることができるほど充分に早くチップ選択回路32に対し適切な「ハンドシェイク」を提供しない。したがって、外部バスインタフェース33は実際にA2を提供せず、かつチップ選択回路32はt4のあるセットアップ時間前まで*CEおよび*WR信号をアクティベイトしない。
「早期同期OEを備えた同期インタフェース」として知られた、インタフェースタイプ$3は前に図5に示されている。インタフェースタイプ$3に対しては、チップ選択回路32は、図15に示された、インタフェースタイプ$2に対するものと同様に書込みサイクルを行なうことに注意を要する。
「固定バーストを備えたバースト可能領域」として知られた、インタフェースタイプ$5は「タイプI」バーストインタフェースを有しかつ非同期*OE信号を使用する。チップ選択回路32は4つのサイクルの固定バースト長を実施する。タイプIバーストインタフェースはアクセスされた装置にそれぞれデータをドライブ出力させあるいはデータをラッチ入力させるために*OEおよび*WE信号を使用する。このインタフェースはまたアクセスされた装置がバーストの次のビートをいつ出力すべきかを制御するために*BDIP信号を必要とする。タイプIバーストインタフェース装置はアドレスラッチを有し、したがって装置への次のアクセスのアドレスは前のアクセスとオーバラップすることができる、すなわち、アクセスのアドレスは「アドレス(ADDRESS)」が「クロック(CLOCK)」のローからハイへの遷移に際しラッチされた後に有効であることを必要としない。
図16は、インタフェースタイプ$5を使用する読出しサイクルのタイミング図の例を示す。図16に示された例では、対応するオプションレジスタの領域のACK_ENビットは外部アクノレッジ信号を可能にするよう構成される、すなわち、クリアされる。時間t2において、アクセスされた装置は同期的に「アドレス」をラッチしかつ信号*AACKのアクティベイションによって示されるように時間t2においてアドレスフェーズを完了する。しかしながら、t2において、アクセスされた装置は信号*TAをインアクティブに保ち、かつチップ選択回路32は待機状態を挿入しなければならない。引き続き、時間t3において、アクセスされる装置はそれがデータフェーズを完了する用意ができていることを示すために信号*TAをアクティベイトし、かつ最初の「データ」エレメントD10を提供する。外部バスインタフェース33はそれが引き続くローからハイへの「クロック」の遷移に応じてバーストの次のビートを予期していることを示すために信号*BDIPをアクティベイトする。外部バスインタフェース33は遷移t4,t5およびt6において、それぞれ、引き続くデータエレメントD11,D12およびD13をラッチする。外部バスインタフェース33はt6の前に信号*BDIPをデアクティベイトし、データエレメントD13が該バーストの最後のビートであることを示す。アクセスされた装置は信号*OEのインアクティベイションの後ある遅延時間までデータエレメントD13を有効に保つ。
このインタフェースは、同じ装置が2つの引き続くサイクルにつきアクセスされたとき、引き続くアクセスのアドレスフェーズが前のアクセスのデータフェーズとオーバラップできるようにする。アクセスされた装置は前のバーストの最後のビートに応じて第2のアクセスを認識する。したがって、図16に示されるように、外部バスインタフェース33は引き続くアドレスA2を提供しかつチップ選択回路32はt3のあるセットアップ時間前に信号*CEをアクティベイトし、かつアクセスされた装置は時間t6のあるセットアップ時間前に信号*AACKを提供することによりこの第2のアクセスのアドレスフェーズを完了する。
図17は、(インタフェースタイプ$5のような)タイプIバーストインタフェースを使用した書込みサイクルのタイミング図を示す。図16に示されるように、対応するオプションレジスタの領域のACK_ENビットは外部アクノレッジ信号を許容するよう構成されており、すなわち、クリアされている。時間t2において、アクセスされた装置は同期的に「アドレス」をラッチしかつ信号*AACKのアクティベイションによって示されるようにアドレスフェーズを完了する。時間t2において、アクセスされた装置はそれがデータフェーズを完了する用意ができていることを示すために信号*TAをアクティベイトしかつ第1の「データ」エレメントD10をラッチする。信号*BDIPは外部バスインタフェース33が引き続くローからハイへのクロックの遷移に応じてバーストの次のビートを提供することを示すためにアクティベイトされる。データプロセッサ30は遷移t3,t4およびt5に応じて、それぞれ、引き続くデータエレメントD11,D12およびD13をドライブする。時間t5において、信号*BDIPはインアクティブであり、データエレメントD13はバーストの最後のビートであることを示す。図16と同様に、図17はオーバラップするアクセスのアドレスフェーズを示しており、この第2のアクセスのアドレスフェーズは時間t5においてバーストの最後のビートの間に終了する。
「パスプライン化可能*OEを備えた固定バースト」として知られる、インタフェースタイプ$7は前に図6に示した読出しアクセスをサポートする。このインタフェースタイプはその内部データを信号*OEがアクティベイトされるまでホールドオフすることができる。このインタフェースは非同期インタフェースとして機能することができるが、TA_DLYフィールドによって規定される数の待機状態の後かつ信号*OEがアクティベイトされた後にのみデータを提供する。インタフェースタイプ$7はタイプIインタフェースであり、その書込みサイクルタイミングは図17に示されている。
インタフェースタイプ$8は「タイプII」バーストインタフェースであり*OE信号を必要としないが、代わりに*LAST信号を使用する。信号*LASTがローからハイへのクロック遷移のあるセットアップ時間前にアクティベイトされたとき、タイプII装置は該クロック遷移に続きそのデータ出力バッファをハイインピーダンス状態に設定する。*CE信号は装置のアクセスの潜伏(latency)または待機状態の間アクティブに留まっていなければならない。このタイプの装置はまた*TS信号を必要とする。
図18はアクセスタイプ$8を使用した読出しインタフェースのタイミング図を示す。図示された例では、アクセスされた装置は2つの待機状態を有し、かつそれ自身のアクノレッジ信号を戻す。アドレスフェーズは、アクセスされた装置が信号*AACKをアクティベイトする、t3まで終了しない。タイプIIバーストインタフェースの下では、信号*CEは装置の潜伏(latency)期間の間アクティブに留まっており、かつしたがって*CEは、データフェーズが開始する、t3の後までアクティブに留まっている。このインタフェースのアクセスタイプは*OE信号を有しない。アクセスされた装置はt4で始まる引き続くローからハイへのクロック遷移に応じて信号*TAをアクティベイトする。4ビートバースト転送はt7で完了し、かつその完了は外部バスインタフェース33が信号*LASTをアクティベイトすることによって通知される。
このインタフェースは引き続くアクセスのアドレスフェーズが前のアクセスのデータフェーズとオーバラップすることを許容する。したがって、図18に示されるように、チップ選択回路32は引き続くアドレスA2を提供しかつt4のあるセットアップ時間前に信号*CEをアクティベイトする。アクセスされた装置は引き続くアクセスのアドレスフェーズを認識しかつ時間t7において、信号AACKのアクティベイションによって示されるように、A2をラッチする。信号*CEはCE2の間アクティブに留まらなければならないが、これは(t7に引き続き)第2のアクセスのデータフェーズが生じるまでである。このタイプのアクセスされた装置はアドレスラッチを有し、したがってそれは次のアドレスフェーズを早くもt7にA2をラッチすることによって完了することができる。
図19はアクセスタイプ$8を使用した書込みインタフェースのタイミング図を示す。前と同様に、アクセスされた装置は2つの待機状態を有し、かつt3にAACKを含む、それ自身のアクノレッジ信号を戻し転送のアドレスフェーズを完了する。タイプIIバースト読出しサイクルの場合と同様に、信号*CEは装置の潜伏の期間の間アクティブに留まっており、かつしたがって、データフェーズが開始する、t3の後まで*CEはアクティブに留まっている。外部バスインタフェース33はt4で始まる引き続くクロックサイクルに際しデータエレメントD10,D11,D12およびD13を提供し、かつこれらのデータエレメントはアクセスされた装置によってラッチされる。アクセスされた装置はt4で始まる引き続くクロックサイクルに応じて信号*TAのアクティベイションによりバーストの各ビートのデータフェーズの終了を指示する。タイプIIバースト読出しサイクルの場合と同様に、4ビートバースト転送はt7で完了し、かつその完了は外部バスインタフェース33が信号*LASTをアクティベイトすることによって通知される。引き続くサイクルのアドレスフェーズは図18に示されたものと同様にしてオーバラップすることができる。
「同期*OEおよび早期オーバラップを備えた同期インタフェース」インタフェースタイプとして知られた、インタフェースタイプ$9は前に図7において示したように読出しアクセスを行なう。このタイプはそれが第2のアクセスのアドレスフェーズを前のアクセスの早期同期*OEとオーバラップさせる点を除きインタフェースタイプ$3と同様のものである。インタフェースアクセスタイプ$9の書込みアクセスは前に図15に示した一般的な同期書込みアクセスと同じである。
インタフェースタイプ$4,$6および$A〜$Fはリザーブされている。もしタイミング制御段230のアクティブな制御ユニットがこれらのリザーブされたタイプの1つを備えたインタフェースへのアクセスを検出すれば、それはいずれのチップ選択タイミング制御信号の発生をも禁止し、それによってチップ選択発生ユニット200が何らの対応するメモリアクセスも行なわないようにされる。したがって、このフィールドの正しくない符号化を生じるソフトウェアエラーは不当なアクセスを生じることはない。
チップ選択回路32はそれが種々のインタフェースをサポートするため非常に柔軟性がある。しかしながら、チップ選択回路32がサポートするインタフェースの組は異なるアプリケーションに適応させるため実施例によって変わり得る。さらに、チップ選択回路32は高度のパイプライン化を可能にするインタフェースをサポートし、データプロセッサ30の性能を増強する。特に、インタフェースアクセスタイプ$3,$7および$9は知られたインタフェースに対し大幅に性能を改善する。インタフェースアクセスタイプ$3,$7および$9と共に使用するためのメモリ装置は伝統的な直列(クロックド)回路設計技術を使用してここに図示されたタイミングに従うよう現存するメモリ装置を変更することによって構成できる。
オーバラップするアクセスを取り扱うため、早期パイプライン制御ユニット233は2つの主な場合を検出する。第1の場合は同じ領域またはチップに対する2つのアクセスの場合であり、それらのアクセスはせいぜい(もし最初のアクセスの潜伏が判定できれば、すなわち、ACK_EN=1であれば)次のアドレスを始めのアクセスのデータフェーズとオーバラップさせることができる。例えば、もし始めのアクセスがパイプライン化可能な装置に対するものであれば、同じ装置への第2のアクセスは最初のアクセスがそのデータフェーズを完了する用意ができるまで待機することになる。しかしながら、第2のアクセスのアドレス(または*CE)は最初のアクセスのデータとオーバラップすることができる。
第2の場合は2つの異なる領域またはチップへの2つのアクセスに対するものである。第2の場合については、2つの異なるチップまたは領域へのアクセスをオーバラップさせるため、タイミング制御段230は1組のパイプライン化ルールを実施してデータの完全性および適切なサイクル終了を保証する。表13はこれらのルールをより詳細に示す。
[表13]
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ルール 第1のサイクル 第2のサイクル パイプライン化?
番号
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
1 1つの領域への 異なる領域への イエス
読出しアクセス 読出しアクセス
2 書込みアクセス 読出しアクセス イエス
3 単一ビート 書込みアクセス イエス
書込みアクセス
4 読出しアクセス 書込みアクセス イエス
(オーバラップ)
5 第1および/または データをホールド イエス、
第2サイクルの少な オフできる装置へ ACK_EN=0
くとも1つに アクセス を有する領域の
ACK_EN=0 装置が*AACK
を有する領域への を*TAの前に
任意のCSアクセス 戻す限り
6 CSアクセスなし CSアクセス ノー
7 固定バースト 任意の イエス、
読出し CSアクセス 第2の領域が
パイプライン化
可能でありかつ
そのデータを
ホールドオフでき
れば
8 同期領域 非同期領域 ノー
9 非同期領域 任意のアクセス ノー
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ルール番号1は1つの領域の読出しアクセスとこれに続く他の領域への他の読出しアクセスに関する。この場合、チップ選択回路32は第2の読出しを第1の読出しとパイプライン化することになる。
ルール番号2は書込みアクセスとこれに続く読出しアクセスの場合をカバーする。この場合、チップ選択回路32は第2の読出しを第1の読出しとパイプライン化することになる。
ルール番号3は単一ビートの書込みアクセスとこれに続く他の書込みアクセスの場合をカバーする。この場合、いくつかの装置は書込みサイクルのデータが「アドレス」または*CEが有効になった後1「クロック」サイクルで利用可能になることを期待する。もしそうでなければ、装置は書込みサイクルを中止する。もし両方のアクセスがチップ選択回路32によって終了すれば(すなわち、ACK_ENが両方の領域のオプションレジスタにおいてセットされれば)、チップ選択回路32はそれらのアクセスを第2の書込みサイクルの*CEをアクセスすることによって第1の書込みサイクルの最後のデータフェーズとオーバラップさせることになる。バースト書込みに他の書込みが続く場合については、チップ選択回路32は最後のデータビートの最初の書込みの指示(*BDIPまたは*LAST)がアクティベイトされた後に第2の書込みサイクルに対する*CEをアクティベイトする。
ルール番号4は読出しサイクルに書込みサイクルが続く場合をカバーする。チップ選択回路32は読出しサイクルが完了する前に書込みサイクルの*CEをアクティベイトすることによってアクセスをオーバラップさせることができる。しかしながら、図示された実施例では、外部バスインタフェース33はこのオーバラップを可能にするためにチップ選択回路32に対して適切な「ハンドシェイク」を提供しない。外部バスインタフェース33は書込みサイクルに対する*CEのアクティベイションの前に書込みサイクルの「アドレス」を提供する。
ルール番号5は2つの連続するアクセスに関し、この場合いずれのアクセスの潜伏性(latency)(すなわち、待機状態の数)も未知である(すなわち、ACK_ENがクリアされている)2つの連続するアクセスに関する。この場合、チップ選択回路32は第2のアクセスがバスが利用可能になるまでデータをホールドオフできるインタフェースタイプを備えた領域に対するものである場合にのみ2つのアクセスをパイプライン化する。例えば、第1のアクセスはACK_ENがクリアされている領域に対するものであり、かつ第2のアクセスはACK_ENがセットされているインタフェースアクセスタイプ$8を備えた領域に対するものである。この場合、チップ選択回路32は第1のアクセスが完了するまで第2のアクセスをホールドオフしなければならず、それは第2の領域は*OEなしにそのデータをホールドオフすることができないかもしれないからである。もし第1のアクセスが未知の潜伏性を有する領域に対するものでありかつ第2のアクセスが同じ領域に対するものであれば、チップ選択回路32は、該チップ選択回路32が同じ領域に対する引き続く*CEをアクティベイトできるようにする、外部*AACKを待機する。ルール番号6は第1のアクセスが、専用のダイナミックRAM(DRAM)コントローラのような、チップ選択回路32によって規定されていない領域に対するものであり、かつ第2のアクセスがチップ選択回路32によって規定されている他の領域に対するものである場合をカバーする。この場合、第1の領域はそれ自身のチップ選択信号を提供し、したがってインタフェースアクセスタイプおよびラテンシー(latency)はチップ選択回路32によって知られていない。したがって、チップ選択回路32は第2のアクセスを第1のアクセスとパイプライン化しない。
ルール番号7はバースト可能領域への固定された4ビートバースト読出しアクセスと、これに続く他の領域への読出しの場合をカバーする。この場合、チップ選択回路32はもし第2のアクセスがパイプライン化可能でありかつそのデータをホールドオフできる領域に対するものであれば第2の読出しをパイプライン化する。もし第2の領域が$8のインタフェースアクセスタイプを有していれば、それはそのデータをホールドオフできずかつチップ選択回路32は第2のアクセスをパイプライン化しない。
ルール番号8は同期領域への第1のアクセスと、これに続く非同期領域への第2のアクセスをカバーする。この場合、チップ選択回路32は第2のアクセスをパイプライン化せず、それは第2の領域はパイプライン化可能でないからである。
ルール番号9は非同期領域への第1のアクセスをカバーする。この場合、チップ選択回路32は第2のアクセスを第1のものとパイプライン化せず、それは外部アドレスおよびデータバスの双方がその完了までに第1のアクセスのために利用可能でなければならないからである。
チップ選択回路32および外部バスインタフェース33の双方はこれらのパイプライン化ルールを実施するために組合わされることに注意を要する。いくつかの場合、外部バスインタフェース33が制御を行なう。ルール番号4については、図15の説明に関連して上で述べたように、チップ選択回路32はパイプライン化をサポートするが外部バスインタフェース33はサポートしない。外部バスインタフェース33はまたルール番号9に対するパイプライン化を可能にするのに充分早く*AACKまたは*TAハンドシェイクを提供しない。他の場合には、チップ選択回路32は非両立的(incompatible)アクセスを認識する。
<ピン構成段240の説明>
ピン構成段240は、代表的なピン構成論理回路241,242,243および248を含め、13のピン構成論理回路を含む。各々のピン構成論理回路は「デコードバス(DECODE BUS)」201に接続された第1の入力、「タイミングバス(TIMING BUS)」202に接続された第2の入力、および専用のチップ選択信号を提供するための出力を有する。ピン構成論理回路241は“CSBOOT”と名付けられた出力信号を提供する。ピン構成論理回路242は“CS0”“或いは“CSBOOT *OE”と名付けられた出力信号を提供する。ピン構成論理回路243は“CS1”と名付けられた出力信号を提供する。ピン構成論理回路248は“CS11”と名付けられた出力信号を提供する。
チップ選択回路32は13の集積回路ピンを通してプログラム可能にチップ選択信号を提供する。しかしながら、高度に集積されたデータプロセッサまたはマイクロコントローラにおいて伝統的に行われているように、該ピンはデータプロセッサ30の他のピン機能またはポートと共用することができかつプログラム可能に選択でき、それによって出力信号を異なるエンドユーズのアプリケーションのために構成することができる。
本発明の1つの態様は前記複数のチップ選択信号がチップイネーブル、書込みイネーブル、および出力イネーブルを含むことである。
本発明の他の態様は、第1の複数のアドレスデコーダ(91,94,97)の各々がベースアドレスレジスタ(92,95,98)、オプションレジスタ(93,96,99)、およびデコーダを具備することである。ベースアドレスレジスタ(92,95,98)は対応するプログラム可能領域のベースアドレスを格納する。オプションレジスタ(93,96,99)は領域サイズおよびプログラム可能領域の少なくとも1つの属性を格納するためのビットフィールドを有する。デコードは入力アドレスおよび少なくとも1つの入力属性信号を受けるための入力、およびもし前記入力アドレスが前記ベースアドレスおよび領域サイズによって規定されるプログラム可能領域内にあり、かつ少なくとも1つの入力属性信号が前記プログラム可能領域の少なくとも1つの属性と整合すれば、整合信号を提供する出力を有する。
本発明のさらに他の態様は、前記タイミング制御段(100)が第1の制御ユニット(170)、第2の制御ユニット(180)、および早期パイプライン制御回路(186)を具備することである。前記第1の制御ユニット(170)はアドレスデコード段(90)に結合された第1の入力、複数のパイプライン制御信号を受けるための第2の入力、および前記ピン構成段(110)に結合されて第1の複数のタイミング信号を提供するための出力を有する。第2の制御ユニット(180)はアドレスデコード段(90)に結合された第1の入力、第2の複数のパイプライン制御信号を受けるための第2の入力、および前記ピン構成段(110)に結合されて第2の複数のタイミング信号を提供するための出力を有する。前記早期パイプライン制御回路(186)はアドレスデコード段(90)に結合された入力、前記第1(170)および第2(180)の制御ユニットの第2の入力にそれぞれ結合された第1および第2の出力を有する。前記早期パイプライン制御回路(186)は複数のパイプラインルールに従って第1および第2の複数のパイプライン制御信号を提供し、それによってデータの完全性および適切なサイクル終了を保証する。
本発明のさらに他の態様は、前記オベイ(obey)論理手段(140)が第1のオベイ論理回路(141)および第2のオベイ論理回路(145)を有することである。第1のオベイ論理回路(141)は第1のサイクル開始信号を受けるための第1の入力、第1のサイクル終了信号を受けるための第2の入力、および第1のオベイ信号を提供するための出力を有する。第2のオベイ論理回路(145)は第2のサイクル開始信号を受けるための第1の入力、第2のサイクル終了信号を受けるための第2の入力、および第2のオベイ信号を提供するための出力を有する。
本発明のさらに他の態様は、プログラム可能ピン機能レジスタ(130)がさらにチップ選択信号と関連する複数の領域の内の選択された1つを規定する第2のビットフィールドを有し、かつ前記オベイ論理手段(140)がさらに前記第1のパイプライン化されたサイクルに対応する第1の入力領域が前記複数の領域の内の選択された1つと整合する場合にのみ第1のオベイ信号をアクティベイトすることである。
本発明のさらに他の態様は、前記データプロセッサ(30)がさらに第3のデコーダ(224)を具備することである。該第3のデコーダ(224)はアドレスを受けるための第1の入力、前記少なくとも1つの対応する制御信号を受けるための第2の入力、もし前記アドレスが第3のプログラム可能領域内にあれば第3のアドレス整合信号を提供する第1の出力、およびもし前記少なくとも1つの対応する制御信号が第3のプログラム可能保護属性と整合すれば第3の属性整合信号を提供するための第2の出力を有する。前記優先度実施回路(58)はさらにもし第1および第3のアドレス整合信号の双方がアクティブでありかつ第3の属性整合信号がインアクティブでれば前記イネーブル信号をインアクティブに保つ。前記優先度実施回路(58)はさらにもし前記第2および第3のアドレス整合信号の双方がアクティブでありかつ前記第3の属性整合信号がインアクティブであれば前記イネーブル信号をインアクティブに保つ。それによって、第3のプログラム可能領域は第1のプログラム可能領域(41)または第2のプログラム可能領域(42)とオーバラップすることができる。
本発明のさらに他の態様は、前記データプロセッサがさらに前記イネーブル信号を受けるための入力を有するアクセス状態マシン(230)を具備することである。該アクセス状態マシン(230)は前記少なくとも1つの外部制御信号をその少なくとも1つの対応する出力に提供し、外部装置へのアクセスを制御する。
本発明のさらに他の態様は、前記入力属性が:あるアクセスサイクルが、第1および第2のプログラム可能保護属性が各々読出しおよび書込みサイクルのいずれか選択された1つ、両方、または読出しサイクルのみを可能にする、読出しサイクルまたは書込みサイクルであるか;アクセスサイクルが第1および第2のプログラム可能保護属性の各々がデータサイクルのいずれかの選択された1つまたはデータおよび命令サイクルの双方を可能にする命令サイクルまたはデータサイクルであるか;或いはアクセスサイクルが第1および第2のプログラム可能保護属性の各々がいずれか選択された1つであるか、スーパバイザサイクルであるか或いはスーパバイザおよびユーザサイクルの双方であるスーパバイザサイクルまたはユーザサイクルであるかを示すことである。
本発明が好ましい実施例に関して説明されたが、当業者には本発明が数多くの方法で変更できることおよび上に特に示しかつ説明したもの以外の数多くの実施例を取り得ることを理解するであろう。したがって、添付の特許請求の範囲により本発明の真の精神および範囲内に入る本発明の全ての変更をカバーするものと考える。