(57)【特許請求の範囲】
【請求項１】
バックグランド・モードでトランスペアレント動作を有し、通常動作モードも有するデータ・プロセッサ（１０）であって：
命令を実行し、メモリにアクセスする中央処理装置（１２）；
前記中央処理装置（１２）に結合され、複数の状態を有する周辺回路（１６）であって、前記データ・プロセッサが前記通常動作モードにある間に前記周辺回路に所定のアクセスを実行する前記中央処理装置に応答して第１状態と第２状態との間で遷移を行う周辺回路（１６）；および
前記周辺回路（１６）に結合され、かつバックグランド・モードで動作して、前記周辺回路（１６）を制御し、前記中央処理装置が前記所定のアクセスを実行するときに前記第１状態と前記第２状態との間の遷移を防ぐシステム集積モジュール（１４）；
によって構成され、
前記データ・プロセッサ（１０）は、バックグランド・モード中に前記周辺回路（１６）の状態を維持し、
前記システム集積モジュールは、制御信号をアクティブにすることにより前記第１状態と前記第２状態との間の遷移を防ぐように前記周辺回路を制御するユーザ制御されたビットを有し、前記周辺回路はさらに、前記制御信号を受ける制御入力を有する、
ことを特徴とするデータ・プロセッサ。
【請求項２】
通常動作モードと、バックグランド・モードとを有する集積回路マイクロコントローラ（１０）であって：
命令を実行し、メモリにアクセスする中央処理装置（１２）であって、情報バス（３２）に結合される中央処理装置（１２）；
前記情報バス（３２）に結合され、それぞれが複数の状態を有する少なくとも１つの周辺回路（１６，２４，２８，３０）であって、前記少なくとも１つの周辺回路（１６，２４，２８，３０）のそれぞれは、前記通常動作モードにおいて前記周辺回路にアクセスする前記中央処理装置に応答して前記複数の状態間で遷移を行う少なくとも１つの周辺回路（１６，２４，２８，３０）；および
バックグランド・モードで動作して、前記少なくとも１つの周辺回路（１６，２４，２８，３０）のそれぞれを制御して、前記複数の状態の間の遷移を防ぐ論理回路を含むシステム集積モジュール（１４）；
によって構成され、
前記集積回路マイクロコントローラ（１０）は、バックグランド・モード中に前記少なくとも１つの周辺回路（１６，２４，２８，３０）の状態を維持し、
前記システム集積モジュールは、制御信号をアクティブにすることにより前記第１状態と前記第２状態との間の遷移を防ぐように前記少なくとも１つの周辺回路のそれぞれを制御するユーザ制御されたビットを備えたレジスタ（５２）を有し、さらに、前記少なくとも１つの周辺回路のそれぞれが、前記制御信号を受ける制御入力を有する、
ことを特徴とする集積回路マイクロコントローラ。
【請求項３】
バックグランド・モードでデータ・プロセッサ（１０）をトランスペアレントに動作する方法であって：
バス（３２）に接続されたシステム集積モジュール（１４）のレジスタ（５２）に、ユーザ制御されたブレーク・クリア・フラグ・イネーブル・ビット（５３）を格納する段階であって、前記ブレーク・クリア・フラグ・イネーブル・ビット（５３）は、バス（３２）に接続された周辺回路（１６）の状態がバックグランド・モードで影響を受けるかどうかを表し、前記周辺回路の前記状態は、前記周辺回路が通常動作モードのときに常に影響を受ける、段階；
バス（３２）に接続された中央処理装置（１２）でブレークポイント条件を検出する段階であって、前記ブレークポイント条件により、データ・プロセッサ（１０）は前記通常動作モードを去ってバックグランド・モードに入る、段階；
前記ブレーク・クリア・フラグ・イネーブル・ビット（５３）が第１論理状態の場合に、前記ブレークポイント条件を検出する前記段階に応答して、システム集積モジュール（１４）が制御信号をアクティブにし、また前記ブレーク・クリア・フラグ・イネーブル・ビット（５３）が第２論理状態の場合に、前記ブレークポイント条件を検出する前記段階に応答して、前記制御信号を非アクティブに維持する段階；および
前記制御信号をシステム集積モジュール（１４）から周辺回路（１６）の入力に接続することにより、バックグランド・モード中に複数の状態の間の遷移を選択的に妨げるために、前記周辺回路（１６）を選択的に制御する段階であって、前記制御信号がアクティブのときに前記周辺回路の前記状態がバックグランド・モードに影響されることがあり得ず、前記制御信号が非アクティブのときに前記周辺回路の前記状態が前記バックグランド・モードに影響され得る、段階；
によって構成されることを特徴とする方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、一般に、データ・プロセッサに関し、さらに詳しくは、バックグランド・モードを有するデータ・プロセッサに関する。
【０００２】
【従来の技術】
従来、コンピュータ・システムは、中央処理装置（ＣＰＵ），メモリおよび入力／出力周辺装置を有すると定義される。近年の集積回路技術の進歩により、従来のコンピュータ機能の多くを単一集積回路チップ上に集積可能になっている。チップが中央処理装置と、いくつかの周辺回路とを含む場合、「集積データ・プロセッサ」と呼ぶことができる。集積データ・プロセッサの一例として、モトローラ社から入手可能なＭＣ６８３０２集積マルチプロトコル・プロセッサ(Integrated Multiprotocol Processor)がある。チップがメモリを含む場合には、さらに高度なシステム集積を達成し、かかるチップは「マイクロコントローラ」と呼ばれることがあるが、マイクロコンピュータ，組み込み型(embedded)コントローラなどさまざまな名称で一般に知られている。マイクロコントローラの例として、モトローラ社から入手可能なＭＣ６８ＨＣ１１マイクロプロセッサがある。いずれの集積データ・プロセッサおよびマイクロコントローラも、オンチップ・メモリおよび／または周辺装置をＣＰＵと集積するためシステム集積モジュールとして知られる「グルー論理(glue logic)」回路を含む。
【０００３】
高度な集積のため、集積データ・プロセッサおよびマイクロコントローラは、自動車エンジン・コントローラ，冷蔵庫，セルラ電話，リモート・コントローラなどの用途で理想的である。これらの用途で動作するソフトウェアを開発するため、ソフトウェアのフローを監視することは役立つ。この監視は、ソフトウェア・バグの検出を可能にし、一般にバックグランド・モード(background mode) として知られる診断モードにより達成できる。バックグランド・モードでは、データ・プロセッサは一連のソフトウェア命令によりシングル・ステップ処理される。各命令の後、ＣＰＵのレジスタの内容を調べて、ソフトウェアがこの内容にどのように影響したかを判断できる。また、レジスタを変更して、ソフトウェアに対する修正が動作に及ぼす影響を調べる機能を備えることも役立つ。
【０００４】
一般に、データ・プロセッサは、バックグランド・モードに入らせる特定の状態を検出する回路も含む。これらの状態は、一般に、ブレークポイント(breakpoints) という。ブレークポイントは、例えば、ある特定のメモリ番地にアクセスするＣＰＵまたはある特定のデータ・パターンを行うデータ・バスを監視することによって検出できる。ブレークポイントを検出した後、システム集積モジュールは、（例えば、割り込みを送出することによって）例外を強制実行する。例外に応答して、ＣＰＵはその動作に関する重要な情報をスタックに入れる。スタックされた情報により、ＣＰＵは、バックグランド・モードの終了後に、何もなかったかのように通常動作モードに戻ることができる。従って、バックグランド・モードに出入りすることは、一般にアプリケーションの動作に対してトランスペアレント(transparent) である。
【０００５】
しかし、データ・プロセッサは他の周辺装置を内蔵しているので、ＣＰＵがバックグランド・モードからトランスペアレントに自動復帰することを保証することは十分ではない。チップ全体がトランスペアレントに動作することが望ましい。例えば、多くのデータ・プロセッサは、シリアル通信モジュールを内蔵する。これらのモジュールは、データを送受信し、送受信されたキャラクタなどの特定の条件の発生に基づいて、ＣＰＵに割り込む。ＣＰＵが割り込みを受信した後、ステータス・レジスタを読み、どのイベントが割り込みを起こしたのか調べる。
【発明が解決しようとする課題】
通常、ブレークポイント回路は、バックグランド・モードへのエントリを示す信号を与える。この信号により、周辺装置のクロックは停止され、一般にこれでトランスペアレント動作を維持するのに十分である。ときどきデバッグ・プロセス中に、周辺装置の状態を調べることが望ましい場合もある。しかし、周辺装置のステータス・レジスタを読むことにより、周辺装置の状態が変化する。通常動作モードに復帰すると、周辺装置の状態は、バックグランド・モードに入ったときの状態とは異なる。従って、周辺装置の状態を変更せずに調べることを可能にすることにより、バックグランド・モードでのトランスペアレントな動作を保証するデータ・プロセッサが必要とされる。この問題は、本発明によって解決され、その特徴および利点は、添付の図面とともに以下の説明からより明確に理解されよう。
【０００６】
【実施例】
図１は、本発明によるマイクロコントローラ１０の形式のデータ・プロセッサを示す。マイクロコントローラ１０は、集積回路マイクロコントローラであり、一般に、中央処理装置（ＣＰＵ）１２，システム集積モジュール１４，ブレーク・モジュール１５，回路のシリアル部１６，ランダム・アクセス・メモリ（ＲＡＭ）回路１８，リード・オンリ・メモリ（ＲＯＭ）回路２０，別のメモリ回路２２（例えば、ＥＥＰＲＯＭ (electrically erasable programmable read only memory)），ポート論理回路２４，外部バス・インタフェース回路２６，回路のタイマ部２８および直接メモリ・アクセス（ＤＭＡ：direct memory access）回路３０を含む。ＣＰＵ１２，システム集積モジュール１４，ブレーク・モジュール１５，シリアル部１６，ＲＡＭ１８，ＲＯＭ２０，別のメモリ２２，ポート論理回路２４，外部バス・インタフェース２６，タイマ回路２８およびＤＭＡ３０のそれぞれは、情報バス３２に双方向に結合される。ＣＰＵ１２およびシステム集積モジュール１４は、バス３４を介して双方向に結合される。同様に、ＣＰＵ１２は，バス３６を介してＤＭＡ３０に結合される。
【０００７】
システム集積モジュール１４は、複数の集積回路ピン３８を介して、マイクロコントローラ１０の外部で信号を送受信できる。複数の集積回路ピンは、ここでは詳細に図示しない。シリアル部１６は、複数の集積回路ピン４０を介して、マイクロコントローラ１０の外部で信号を送受信できる。この場合も、複数の集積回路ピンは詳細に図示しない。メモリの種類に応じて、別のメモリ２２は、複数の集積回路ピン４２（詳細に図示せず）を介して、マイクロコントローラ１０の外部で信号を送受信してもよい。ポート論理回路２４も、複数の集積回路ピン４４を介して、マイクロコントローラ１０の外部で信号を送受信できる。さらに、外部バス・インタフェース２６は、複数の集積回路ピン４６を介して、マイクロコントローラ１０の外部で信号を送受信できる。タイマ部２８も、複数の集積回路ピン４８を介して、マイクロコントローラ１０の外部で信号を送受信できる。図１は、マイクロコントローラ・ファミリ内の１つの可能なマイクロコントローラを示す。データ・プロセッサの同じファミリ内のマイクロコントローラは一般に複数の異なるオンボード周辺装置を有するので、マイクロコントローラ１０は、本明細書で説明する発明の１つの実施例のみを提供する。例えば、マイクロコントローラ１０の他の実施例は、ＲＯＭ２０，外部バス・インタフェース２６またはＤＭＡ３０を有していなくてもよい。さらに、他のコプロセッサもマイクロコントローラ１０内で構成してもよい。実際、マイクロコントローラ１０の他の実施例は、図１に示す実施例よりも少ない，多いまたは異なる周辺装置を有してもよい。さらに、図１に示す本発明の実施例では、マイクロコントローラ１０は、１６ビット・アドレスと、８ビット格納レジスタと、１６ビット格納レジスタとを含む８ビット・マイクロコントローラである。
【０００８】
図１に示す発明の実施例の動作中に、システム集積モジュール１４は、マイクロコントローラ１０の汎用コントローラとして用いられる。一般に、システム集積モジュール１４は、動作をイネーブルおよびディセーブルし、タイミング制御を行い、マイクロコントローラ１０の例外処理条件を実行するため、複数の制御情報を提供する。システム集積モジュール１４は、バス３４を介して中央処理装置１２と、複数の集積回路ピン３８を介して外部ユーザと、そして情報バス３２を介してマイクロコントローラ１０の残りの複数の構成要素のそれぞれと直接インタフェースする。
【０００９】
ブレーク・モジュール１５は、情報バス３２に接続され、ブレークポイントの発生を検出する。ブレークポイントの検出に応答して、ブレーク・モジュール１５は、システム集積モジュール１４に対する「ＢＫＰＴ」と記されたブレーク信号をアクティブにする。信号ＢＫＰＴに応答して、システム集積モジュール１４は、ソフトウェア割り込み（ＳＷＩ：software interrupt）命令をＣＰＵ１２の命令レジスタ内に強制的に入れる。ＳＷＩ命令を強制的に入れることにより、マイクロコントローラ１０は、カレント命令の終了後にバックグランド・モードに入る。
【００１０】
システム集積モジュール１４は、好ましくは外部ブレーク入力信号にも応答して、外部エミュレータがマイクロコントローラ１０をバックグランド・モードにさせることを可能にする。この場合、マイクロコントローラ１０がバックグランド・モードに入るための条件は、２つのブレーク条件のＯＲであり、これはアクティブ・ロー(active-low)ＢＫＰＴと外部ブレーク信号との間の論理ＮＡＮＤとして実施される。この追加ブレーク信号源により、外部エミュレータは、データ・バス上で導通されるデータ，命令のシーケンスなどより広い範囲の条件についてマイクロコントローラ１０をバックグランド・モードにすることができる。この追加ブレーク信号源についてはこれ以上説明しない。１つのブレーク信号源だけが必要なことが明白である。しかし、ブレーク・モジュール１５は、マイクロコントローラ１０がシングル・チップ・モードで動作しても、マイクロコントローラ１０がバックグランド・モードに入ることを可能にし、従ってマイクロコントローラ１０にブレーク・モジュール１５を内蔵することが好ましい。
【００１１】
マイクロコントローラ１０において、ＤＭＡ３０は、マイクロコントローラ１０の内部のメモリと複数の周辺装置（図示せず）との間のデータの直接通信を可能にする。ＤＭＡ３０は、ユーザが高速メモリ・アクセス方法を必要とする場合、マイクロコントローラ１０上で任意に構成してもよい。直接メモリ・アクセスの利用および構成は、データ処理技術分野で周知であり、これ以上詳しく説明しない。
【００１２】
タイマ部２８は、自走(self-running)１６ビット・カウンタに基づく複数のタイミング機能を実行する。複数の集積回路ピン４８によってイネーブルされると、タイマ部２８は入力捕捉(input-capture) 機能，出力比較(output-compare)機能，リアルタイム割り込みまたはコンピュータ適正動作ワッチドッグ(computer operating properly watchdog)機能を実行すべく機能できる。これらの各機能の実施および利用はデータ処理技術分野で周知であり、これ以上詳しく説明しない。
【００１３】
外部バス・インタフェース２６は、外部ユーザまたは外部周辺装置とマイクロコントローラ１０との間のアドレスおよびデータ値の送受信を制御する。外部バス・インタフェース２６は、情報バス３２を介して複数のアドレスおよびデータ値をマイクロコントローラ１０の残りの部分に通信する。外部バス・インタフェース回路の利用および構成はデータ処理技術分野で周知であり、これ以上詳しく説明しない。
【００１４】
ポート論理回路２４は、複数の集積回路ピン４４のそれぞれの動作および機能を制御する。ポート論理回路２４は、第１動作モードで汎用入力／出力ピンとして機能するように、複数の集積回路ピン４４を構成する。第２動作モードでは、ポート論理回路２４は、複数の集積回路ピン４４のそれぞれを利用して、多重化アドレスおよびデータ情報を通信する。ポート論理回路の利用および構成はデータ処理技術分野で周知であり、これ以上詳しく説明しない。
【００１５】
ＲＡＭ１８，ＲＯＭ２０および別のメモリ２２は、マイクロコントローラ１０の適正動作のために必要な情報を格納すべく機能する。さらに、ユーザ・プログラムで指定されれば、他のデータおよびアドレス値もそこに格納してもよい。マイクロコントローラにおけるメモリの利用および構成は当技術分野で周知であり、これ以上詳しく説明しない。
【００１６】
シリアル部１６は、マイクロコントローラ１０と外部ユーザまたは外部周辺装置との間でシリアル・デジタル・データを通信する。シリアル・デジタル・データおよび適切な制御信号は、複数の集積回路ピン４０を介して通信される。シリアル部１６は、本発明によりその状態がバックグランド・モードに維持される周辺装置の例を示し、シリアル部１６については以下の図５で詳しく説明する。
【００１７】
ＣＰＵ１２は、マイクロコントローラ１０の動作中に、ＣＰＵ１２の命令セットからの特定の命令からなるプログラムを実行する。さまざまなマイクロプロセッサおよびマイクロコントローラ命令セットは当技術分野で周知であり、本発明によるマイクロコントローラはさまざまな命令セットで動作できることが明白である。従って、ＣＰＵ１２の特定の命令セットについてはこれ以上詳しく説明しない。
【００１８】
図２は、本発明を理解するのに役立つ、図１のマイクロコントローラ１０のシステム集積モジュールの一部のブロック図を示す。図２から、システム集積モジュール１４は、条件決定回路(conditioning circuit)４９，「ＳＩＭ  ＢＲＥＡＫＰＯＩＮＴ  ＳＴＡＴＵＳ  ＲＥＧＩＳＴＥＲ」と記されたレジスタ５０，「ＳＩＭ  ＢＲＥＡＫ  ＦＬＡＧ  ＣＯＮＴＲＯＬ  ＲＥＧＩＳＴＥＲ」と記されたレジスタ５２，論理回路５４を含むことがわかる。
【００１９】
条件決定回路４９は、ブレーク・モジュール１５から信号ＢＫＰＴを受ける第１入力端子と、「ＣＴＭＢＫＰＴ」と記された信号を受ける第２入力端子と、「ＬＡＳＴ」と記された信号を受ける第３入力端子と、「ＩＢＲＥＡＫ」と記された信号を情報バス３２に与える出力端子とを有する。条件決定回路４９は、内部ブレーク条件（ブレーク・モジュール１５が信号ＢＫＰＴをアクティブにすることによる）、または入力信号ＣＴＭＢＫＰＴをアクティブにすることによる外部ブレーク条件のいずれかを認識する論理回路である。条件決定回路４９は、信号ＢＫＰＴまたはＣＴＭＢＫＰＴのいずれかのアクティブ化に応答して信号ＩＢＲＥＡＫをアクティブにし、信号ＩＢＲＥＡＫは、信号ＬＡＳＴのアクティブ化によって示されるように命令境界(instruction boundary)に同期される。アクティブのとき、信号ＬＡＳＴは、カレント・クロック・サイクルが命令の最後のクロック・サイクルであることを示す。バックグランド・モードを出る場合、ブレーク・モジュール１５および外部ブレーク・モジュールの両方は、割り込み復帰（ＲＴＩ：return from interrupt ）命令の最後のサイクルまで、それぞれのブレークポイント信号を非アクティブにすることを遅らせる。ＲＴＩ命令を検出する別の論理は図２に図示しない。
【００２０】
レジスタ５０，５２は、ＣＰＵ１２のアドレス・スペースに現れる、さらに詳しくは、システム集積モジュール１４の動作に関連するレジスタを含むアドレス・スペースの一部に現れるメモリ・マップド・レジスタ(memory-mapped register)である。レジスタ５０は、ＳＩＭブレーク／ストップ／ウェート（ＳＢＳＷ）ビット５１として知られるビットを有する。ＳＢＳＷビット５１は、ブレーク割り込みから出た後にリターン・ツー・ウェート(return to wait)またはストップ・モードを必要とするアプリケーションで有用である。バイナリ１に設定されると、ＳＢＳＷビット５１は、ストップまたはウェート・モードがブレーク割り込みによって抜け出たことを示す。バイナリ０にクリアされると、ＳＢＳＷビット５１は、ストップまたはウェート・モードがブレーク割り込みによって抜け出なかったことを示す。このビットは、バイナリ０をレジスタ５０のビット位置１に書き込むことによってクリアされる。ストップ・モードおよびウェート・モードは、Smith et al.による１９８８年５月３１日に発光された米国特許第４，７４８，５５９号 "Apparatus for Reducing Power Consumed by a Static Microprocessor" で教示されるように、マイクロコントローラ１０を低電力で動作させることを可能にするモードである。
【００２１】
レジスタ５２は、ブレーク・ポイント・クリア・フラグ・イネーブル（ＢＣＦＥ）ビット５３として知られるビットを有する。ＢＣＦＥビット５３は、デフォルトでリセット時にバイナリ０でクリアされるが、それ以降は変更可能である。レジスタ５２は、ＢＣＦＥビット５３の状態を表す信号を論理回路５４の入力に伝える出力を有する。ＢＣＦＥビット５３は、ソフトウェアがバックグランド・モード中に周辺装置の状態に影響を与えることができるかどうかを決定する読み出し可能，書き込み可能なビットである。バイナリ１に設定されると、ＢＣＦＥビット５３は、ソフトウェアがバックグランド・モード中に周辺装置の状態を変更することを可能にする。例えば、ＢＣＦＥビット５３が設定されると、周辺装置のステータス・レジスタに対するアクセスは、一部のビットまたはすべてのビットをクリアすることが許される。バックグランド・モード中にステータス・ビットをクリアする場合、ＣＦＥビット５３をバイナリ１に設定しなければならない。バイナリ０にクリアされると、ＢＣＦＥビット５３は、バックグランド・モード中にステータス・ビットはクリア可能でないことを表す。
【００２２】
論理回路５４は、ＮＡＮＤゲート５６，５７およびインバータ５８，５９を含む。ＮＡＮＤゲート５６は、レジスタ５２に接続されＢＣＦＥビット５２を表す論理信号を受ける第１入力端子と、ブレーク・モジュール１５から信号ＢＫＰＴを受ける第２入力端子と、出力端子とを有する。ＮＡＮＤゲート５７は、ＮＡＮＤゲート５６の出力端子に接続された第１入力端子と、信号ＢＫＰＴを受ける第２入力端子と、出力端子とを有する。インバータ５８は、ＮＡＮＤゲート５７の出力端子に接続された入力端子と、出力端子とを有する。インバータ５９は、インバータ５８の出力端子に接続された入力端子と、「ＩＣＬＲＦＬＧＥＮ」と記された信号を情報バス３２に与える出力端子とを有する。論理回路５４は、ＢＣＦＥビット５３が設定される場合に、バックグランド・モード中に信号ＩＣＬＲＦＬＧＥＮをアクティブにすべく動作する。従って、ＢＣＦＥビット５３により、ユーザは信号ＩＣＬＲＦＬＧＥＮを受ける周辺装置に対するアクセスがその状態を変更することが許されるかどうかを判断できる。
【００２３】
図３は、図１のマイクロコントローラ１０のブレーク・モジュール１５のブロック図を示す。ブレーク・モジュール１５は、「ＢＲＥＡＫ  ＳＴＡＴＵＳ／ＣＯＮＴＲＯＬ  ＲＥＧＩＳＴＥＲ」と記されたレジスタ６０を含む。レジスタ６０は、ブレーク・イネーブル（ＢＲＫＥ）ビット６１と、ブレーク・アクティブ（ＢＲＫＡ）ビット６２とを含む読み出し可能，書き込み可能なメモリ・マップド・レジスタである。ＢＲＫＥビット６１は、ブレーク・アドレス・レジスタ一致で、ブレークをイネーブルする読み出し可能，書き込み可能なビットである。バイナリ１に設定されると、ＢＲＫＥビット６１は、１６ビットのアドレス一致で信号ＢＫＰＴの生成をイネーブルする。バイナリ０にクリアされると、ＢＲＫＥビット６１は、１６ビットのアドレス一致で信号ＢＫＰＴの生成をディセーブルする。ＢＲＫＥビット６１は、ブレーク・ルーチンを出る前に論理０を書き込むことによってクリアでき、リセット時に自動的にクリアされる。ＢＲＫＡビット６２は、ブレーク・アドレス一致を検出した後にブレーク・モジュール１５によってバイナリ１に設定される読み出し可能，書き込み可能なステータス・ビットである。このビットは、ブレーク・ルーチンを出る前に論理０に書き込むことによってバイナリ０にクリアできる。また、このビットはリセット時にもクリアされる。
【００２４】
また、ブレーク・モジュール１５は、ＢＲＥＡＫ  ＡＤＤＲＥＳＳ  ＲＥＧＩＳＴＥＲ  ＨＩＧＨと記されたレジスタ６３，８ビット比較器６４，８ビット比較器６５，ＢＲＥＡＫ  ＡＤＤＲＥＳＳ  ＲＥＧＩＳＴＥＲ  ＬＯＷと記されたレジスタ６６および制御ブロック６７を含む、１６ビット・アドレス一致で信号ＢＫＰＴをアクティブにする回路も含む。レジスタ６３、６６は、それぞれ一致アドレスの８ビット・ロー部分およびハイ部分を収容する読み出し可能，書き込み可能なレジスタである。比較器６４は、「Ａ１５：８」と記されたバス・アドレスのハイ部分を受ける第１入力と、レジスタ６３に接続された第２入力と、Ａ１５：８とレジスタ６３の内容との間の一致に応答してアクティブになる出力とを有する。比較器６５は、「Ａ７：０」と記されたバス・アドレスのロー部分を受ける第１入力と、レジスタ６６に接続された第２入力と、Ａ７：０とレジスタ６６の内容との間の一致に応答してアクティブになる出力とを有する。制御ブロック６７は、比較器６４の出力に接続された第１入力と、比較器６５の出力に接続された第２入力と、信号ＬＡＳＴを受ける第３入力と、信号ＢＫＰＴを与える出力とを有する。制御ブロック６７は、ＲＴＩ命令の最後で、ＢＲＫＥビット６１が設定され、かつ両方の入力がアクティブの場合に、信号ＢＫＰＴをアクティブにし、また信号ＬＡＳＴに応答して信号ＢＫＰＴを非アクティブにする。信号ＢＫＰＴをアクティブにするのと同時に、制御ブロック６７はＢＲＫＡビット６２を設定する。
【００２５】
バックグランド・モード中の動作について、図１のマイクロコントローラ１０の理解に役立つタイミング図を示す図４においてより明確に説明する。図４において、横軸は時間を表す。２つの時点をそれぞれ「ｔ１」，「ｔ２」と表す。時間ｔ１前では、マイクロコントローラ１０は通常動作モードである。このモードは、信号ＢＫＰＴが論理ハイで非アクティブであることによって表される。信号ＩＢＲＥＡＫは、論理ローで非アクティブである。カレントＣＰＵ命令サイクルの終了で生じる時間ｔ１で、システム集積モジュール１４は信号ＩＢＲＥＡＫをアクティブにする。従って、時間ｔ１と時間ｔ２との間で、マイクロコントローラ１０はバックグランド・モードとなる。信号ＩＣＬＲＦＬＧＥＮは、マイクロコントローラ１０が通常動作モードのとき、論理ハイでアクティブである。バックグランド・モード中に、信号ＩＣＬＲＦＬＧＥＮは、ＢＣＦＥビットの状態に依存する論理状態を有する。ＢＣＦＥビットがクリアされる（バイナリ０）場合、論理回路５４は信号ＩＣＬＲＦＬＧＥＮを論理ローで非アクティブにする。従って、信号ＩＣＬＲＦＬＧＥＮを受ける任意の周辺装置におけるレジスタを調べても、この周辺装置はその状態を変更しない。しかし、バイナリ１にリセットした後に、ユーザがＢＣＦＥビット５２を設定すると、信号ＩＣＬＲＦＬＧＥＮはバックグランド・モード中に論理ハイでアクティブになり、周辺装置のレジスタを読み出す試みにより、論理状態が変化する。
バックグランド・モード中のトランスペアレント周辺装置動作の例
バックグランド・モードで周辺装置の状態を維持できるマイクロコントローラ１０の能力については、特定の例により最もよく理解される。図５は、図１のマイクロコントローラ１０のシリアル部１６のブロック図を示す。シリアル部１６は、信号ＩＣＬＲＦＬＧＥＮを利用して、バックグランド・モード中に周辺装置の状態を維持できる３つの方法を示す。まず第１に、シリアル部１６のステータス・レジスタ内のいくつかの制御ビットは、これらを読み出すことに応答してクリアされる。信号ＩＣＬＲＦＬＧＥＮは、これらのビットが読み出された後でバックグランド・モード中にクリアされるかどうか、あるいはこれらのビットが以前の状態を維持するかどうかを決定する。第２に、ステータス・レジスタを読み出すことは、他の制御ビットを即刻クリアしない。むしろ、これらのステータス・ビットを読み出す行為は、クリア機構を装備する(arm) ；クリアは、ある別の条件が発生したときに完了する。この機構の例として、別のレジスタへの書き込みがある。信号ＩＣＬＲＦＬＧＥＮにより、ステータス・レジスタを読み出す行為でクリア機構を装備しないことができる。第３に、別のレジスタに書き込むことにより、ステータス・レジスタ内のビットがクリアされることがある。しかし、信号ＩＣＬＲＦＬＧＥＮにより、この他のレジスタへの書き込みがステータス・レジスタを変更しないことができる。
【００２６】
図５を参照して、シリアル部１６は、送信データ・レジスタ８１，シフト・レジスタ８２，受信データ・レジスタ８３，ピン制御論理ブロック８４，「ＳＰＩＣＯＮＴＲＯＬ  ＲＥＧＩＳＴＥＲ」と記されたレジスタ８５，「ＳＰＩ  ＳＴＡＴＵＳ  ＡＮＤ  ＣＯＮＴＲＯＬ  ＲＥＧＩＳＴＥＲ」と記されたレジスタ８６およびシリアル周辺インタフェース（ＳＰＩ）制御ブロック８８を含むことがわかる。送信データ・レジスタ８１は、「Ｄ７：０」と記された情報バス３２のデータ部分から８ビットデータ要素を受ける入力と、シフト・レジスタ８２の入力に接続された８ビット出力とを有する８ビット・レジスタである。シフト・レジスタ８２も、受信データ・レジスタ８３の入力に接続された８ビット出力を有する。シフト・レジスタ８２は、ピン制御論理ブロック８４の出力端子に接続されたシリアル入力端子と、ピン制御論理ブロック８４の入力端子に接続されたシリアル出力端子とを有する。従って、シフト・レジスタ８２は、シリアル部１６の送信部および受信部の両方と機能する。送信動作の場合、シフト・レジスタ８２は送信すべき１バイトのデータを受け、一度に１ビットだけデータをピン制御論理ブロック８４にシフト・アウトする。受信動作の場合、シフト・レジスタ８２は、ピン制御論理ブロック８４からシリアル・データ・ストリームを受けて、数バイトのデータを形成し、これは受信データ・レジスタ８３に格納される。受信データ・レジスタ８３も、信号Ｄ７：０を情報バス３２に与える出力を有する。
【００２７】
ピン制御論理ブロック８４は、集積回路ピン４０に接続される。集積回路ピン４０は、シリアル部１６のレジスタおよび論理ブロックとともに、シリアル周辺インタフェース（ＳＰＩ）を形成する。集積回路ピン４０の機能を以下の表１に示す。
【００２８】
【表１】
0003943616.tif 000002
0003943616.tif 000003
ＳＰＩ  ＣＯＮＴＲＯＬ  ＲＥＧＩＳＴＥＲ８５は、８制御ビットを格納するメモリ・マップド・レジスタである。レジスタ８５は、ＳＰＩ制御ブロック８８に接続され、シリアル部１６の動作を制御する出力を有する。これらの各ビットの機能について、以下の表２で説明する。
【００２９】
【表２】
0003943616.tif 000004
0003943616.tif 000005
さらに、ＳＰＩ  ＳＴＡＴＵＳ  ＡＮＤ  ＣＯＮＴＲＯＬ  ＲＥＧＩＳＴＥＲ８６は、シリアル部１６のステータスに関連する６ビットを含み、これらを以下の表３に示す。
【００３０】
【表３】
0003943616.tif 000006
0003943616.tif 000007
一般に、ＳＰＩ制御ブロック８８は、シリアル部１６の動作を制御する順序論理ブロックである。動作の一部は、データの送信または受信の信号に関する。この目的のため、ＳＰＩ制御ブロック８８は、４ビットの出力端子を含み、この４ビット出力端子は、２つの割り込み要求信号をＣＰＵ１２に与え（一方は送信レジスタ８１がフルであることを示し、他方は受信レジスタ８３がエンプティであることを示す）、２つのＤＭＡサービス要求信号をＤＭＡ３０に与える（一方は送信レジスタ８１がフルであることを示し、他方は受信レジスタ８３がエンプティであることを示す）。
【００３１】
さらに、ＳＰＩ制御ブロック８８は、信号ＩＣＬＲＦＬＧＥＮに応答して、マイクロコントローラ１０がバックグランド・モードに入ったときにシリアル部１６の状態を維持する機構を提供する。異なるビットに対するＩＣＬＲＦＬＧＥＮの影響を以下の表４に示す。
【００３２】
【表４】
0003943616.tif 000008
ＤＭＡ３０がレジスタ８６を読み出す場合（およびＤＭＡＳ＝１）、ビットＳＰＲＦおよびＳＰＴＥは、装備機構なしにクリアされる。しかし、ステータス・レジスタ・クリアおよび装備機構は、信号ＩＣＬＲＦＬＧＥＮに基づいて条件的に保持できる可能な状態の一例にすぎない。
【００３３】
さらに、周辺装置は、信号ＩＣＬＲＦＬＧＥＮによって決定されるように、バックグランド・モード中にその状態に影響を及ぼすかどうかを局所的に決定できる。例えば、シリアル部１６は、特定の状態変化について信号ＩＣＬＲＦＬＧＥＮに応答するかどうかを決定するため、追加制御ビットを含んでもよい。このステータス・ビットが設定されると、シリアル部１６は信号ＩＣＬＲＦＬＧＥＮに応答して、バックグランド・モード中に状態を選択的に変更する。すなわち、シリアル部１６は、信号ＩＣＬＲＦＬＧＥＮがバックグランド中にアクティブの場合にのみ、特定の状態変化を許す。このステータス・ビットがクリアされると、シリアル部１６は、信号ＩＣＬＲＦＬＧＥＮがアクティブかどうかにかかわらず、バックグランド・モード中に状態変化を許す。シリアル部１６では、この制御ビットはレジスタ８６の未使用ビット位置に入れることができる。別の例では、タイマ部２８が信号ＩＣＬＲＦＬＧＥＮに応答すべきかどうかのこの「局所」判定を行うことが望ましいことがある。この機構は、追加レベルの柔軟性を提供し、一部の用途で望ましい場合がある。この局所制御ビットは、周辺装置内の一部の状態変化のみを制御することに留意されたい。
【００３４】
本発明の１つの態様では、システム集積モジュール（１４）は、制御信号をアクティブにすることにより、周辺回路（１６）を制御して、複数の状態間の遷移を防ぎ、周辺回路（１６）は、制御信号を受ける制御入力をさらに有する。
【００３５】
本発明の別の態様では、システム集積モジュール（１４）は、レジスタ（５２）からなり、このレジスタ（５２）は、ブレーク・クリア・フラグ・イネーブル・ビット（５３）を格納し、システム集積モジュール（１４）を選択的にイネーブルして、バックグランド・モードで周辺回路（１６）の複数の状態間の遷移を制御する。
【００３６】
本発明のさらに別の態様では、データ・プロセッサは、情報バス（３２）およびブレーク・モジュール（１５）をさらに含んで構成される。情報バス（３２）は、中央処理装置（１２）と、周辺回路（１６）と、システム集積モジュール（１４）とに結合され、中央処理装置（１２），周辺回路（１６）およびシステム集積モジュール（１４）のそれぞれの間で信号を伝達する。ブレーク・モジュール（１５）は、情報バス（３２）に結合された入力と、ブレーク信号を与える出力とを有する。ブレーク信号は、データ・プロセッサ（１０）がバックグランド・モードに入ることを表す。
【００３７】
本発明のさらに別の態様では、周辺回路（１６）は、周辺回路（１６）が制御信号に応答して、バックグランド・モード中に複数の状態の少なくとも２つの間で遷移を行うかどうかを決定する少なくとも１つの制御ビットを有する制御レジスタ（８６）を含む。
【００３８】
本発明のさらに別の態様では、データ・プロセッサ（１０）は、中央処理装置（１２）に結合された第２周辺回路（２８）をさらに含んで構成され、この第２周辺回路（２８）は、第２周辺回路（２８）が制御信号に応答して、バックグランド・モード中に複数の状態の間で遷移するかどうかを決定する少なくと１つの制御ビットを有する制御レジスタを含む。
【００３９】
本発明のさらに別の態様では、周辺回路（１６）は、シリアル周辺インタフェースからなり、システム集積モジュール（１４）は、ステータス・レジスタの少なくとも１ビットの変更を禁止することにより、シリアル周辺インタフェースを制御すべくバックグランド・モードで動作する。
【００４０】
本発明のさらに別の態様では、制御する段階は、周辺回路（１６）の制御レジスタ（８６）における制御ビットにさらに応答して、周辺回路（１６）を制御して、バックグランド・モード中に複数の状態間の遷移をディセーブルする段階からなる。
【００４１】
本発明について好適な実施例の観点から説明してきたが、本発明は多くの点で修正でき、本発明には上記で具体的に図説した実施例以外の実施例もあることが当業者に明らかである。バックグランド・モードで選択的に変更または維持できる特定の周辺状態は、実施例ごとに異なる。トランスペアレント・バックグランド・モードを実施するために用いられる信号のアクティブ論理状態は反転してもよい。さらに、本発明によるデータ・プロセッサは、（オンチップ・メモリを有する）マイクロコントローラでもよく、少なくとも１つのオンチップ周辺回路を有する集積データ・プロセッサでもよい。さらに、使用される周辺回路の種類は、実施例ごとに異なる。情報バス３２は１６ビット・アドレス・バスおよび８ビット・データ・バスを含むが、アドレス・バスおよびデータ・バスの大きさは実施例ごとに異なる。従って、特許請求の範囲は、発明の真の精神および範囲に入る発明のすべての修正を網羅するものとする。
【図面の簡単な説明】
【図１】本発明によるマイクロコントローラの形式のデータ・プロセッサを示すブロック図である。
【図２】図１のマイクロコントローラのシステム集積モジュールを示すブロック図である。
【図３】図１のマイクロコントローラのブレーク・モジュールを示すブロック図である。
【図４】図１のマイクロコントローラの理解荷役立つタイミング図である。
【図５】本発明の理解に役立つ、図１のシリアル部の一部を示すブロック図である。
【符号の説明】
１０  マイクロコントローラ（データ・プロセッサ）
１２  中央処理装置（ＣＰＵ）
１４  システム集積モジュール
１５  ブレーク・モジュール
１６  シリアル部
１８  ＲＡＭ回路
２０  ＲＯＭ回路
２２  別のメモリ
２４  ポート論理回路
２６  外部バス・インタフェース
２８  タイマ部
３０  直接メモリ・アクセス（ＤＭＡ）
３２  情報バス
３４，３６  バス
３８，４０，４２，４４，４６，４８  集積回路ピン
４９  条件決定回路
５０  レジスタ
５１  ＳＢＳＷビット
５２  レジスタ
５３  ＢＣＦＥビット
５４  論理回路
５６，５７  ＮＡＮＤゲート
５８，５９  インバータ
６０  レジスタ
６１  ブレーク・イネーブル（ＢＲＫＥ）ビット
６２  ブレーク・アクティブ（ＢＲＫＡ）ビット
６３，６６  レジスタ，
６４，６５  ８ビット比較器
６７  制御ブロック
８１  送信データ・レジスタ
８２  シフト・レジスタ
８３  受信データ・レジスタ
８４  ピン制御論理ブロック
８５，８６  レジスタ
８８  シリアル周辺インタフェース（ＳＰＩ）制御ブロック
【図１】
0003943616.tif 000009
【図２】
0003943616.tif 000010
【図３】
0003943616.tif 000011
【図４】
0003943616.tif 000012
【図５】
0003943616.tif 000013