JP4176920B2 - Data processing device - Google Patents

Data processing device Download PDF

Info

Publication number
JP4176920B2
JP4176920B2 JP18164099A JP18164099A JP4176920B2 JP 4176920 B2 JP4176920 B2 JP 4176920B2 JP 18164099 A JP18164099 A JP 18164099A JP 18164099 A JP18164099 A JP 18164099A JP 4176920 B2 JP4176920 B2 JP 4176920B2
Authority
JP
Japan
Prior art keywords
bus
cpu
peripheral
peripheral module
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP18164099A
Other languages
Japanese (ja)
Other versions
JP2001014259A (en
Inventor
健 片岡
美紀 ▲吉▼田
哲裕 山田
文男 土屋
清 松原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP18164099A priority Critical patent/JP4176920B2/en
Publication of JP2001014259A publication Critical patent/JP2001014259A/en
Application granted granted Critical
Publication of JP4176920B2 publication Critical patent/JP4176920B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Transfer Systems (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、マイクロコンピュータにおける周辺モジュールのアクセス方式に適用して有効な技術に関し、例えば周辺モジュールの動作クロックの周波数が中央処理ユニットの動作クロックの周波数よりも低いマイクロコンピュータにおける周辺モジュールのアクセス方式に利用して有効な技術に関する。
【0002】
【従来の技術】
中央処理ユニット(以下、CPUと称する)と、タイマ回路やシリアルコミュニケーションインタフェース回路、A−D変換回路等の周辺モジュールとを含むワンチップのマイクロコンピュータにおいて、低消費電力化および低ノイズ化のため、周辺モジュールの動作クロックの周波数をCPUの動作クロックの周波数よりも低く設定して、周辺モジュールをCPUに比べ低速で動作させるようにしたものがある。また、かかる動作周波数の異なるCPUと周辺モジュールとの間の信号の授受を可能にするため、CPUに接続されるCPUバスと周辺モジュールに接続される周辺バスとの間に、信号の橋渡しをするバス制御手段(バスステートコントローラ)が設けられているものがある。
【0003】
【発明が解決しようとする課題】
上記のように、周辺モジュールをCPUに比べ低い周波数で動作させるように構成された従来のマイクロコンピュータにおいては、CPUによる内蔵周辺モジュールのアクセスサイクルは当該モジュールの動作周波数により決定された。例えば、CPUの動作周波数の1/4の動作周波数で動く周辺モジュールをCPUがリードアクセスした場合を考えると、周辺モジュールはCPUからのアクセス要求を受けてからデータを出力できるまでに、周辺モジュールの動作周波数で1サイクル必要であり、CPUはその次の1サイクルの間にデータを読み込むことになる。また、周辺モジュールをCPUがライトアクセスした場合にも、周辺モジュールはCPUからのアクセス要求を受けてからデータを取り込むことができるようにまでに周辺モジュールの動作周波数で1サイクル必要で、周辺モジュールはその次のサイクルでデータを取り込むことになる。
【0004】
そのため、周辺モジュールのリードやライトには、最短でも周辺モジュールの動作周波数で2サイクルすなわちCPUの動作周波数では8サイクルもかかってしまう。従来のマイクロコンピュータでは、この間CPUは他の処理を行なうことができないため、CPUの性能低下につながっていた。なお、ここで周辺モジュールのリード、ライトとは、周辺モジュール内部に設けられているレジスタ類のデータのリードやライトを意味する。
【0005】
本発明の目的は、上記のように低消費電力化および低ノイズ化のため、周辺モジュールをCPUに比べ低い周波数で動作させた際に、周辺モジュールのアクセスサイクルが増大し、CPUの性能が低下するのを防止することにある。
【0006】
この発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添附図面から明らかになるであろう。
【0007】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を説明すれば、下記のとおりである。
【0008】
すなわち、少なくともCPU(中央処理ユニット)と、CPUに比べて低い周波数の動作クロックで動作する周辺モジュールとを備えたマイクロコンピュータもしくはマイクロコントローラのようなデータ処理装置において、CPUに接続されるCPUバスと周辺モジュールに接続される周辺バスとの間に設けられ、2つのバス間の信号の橋渡しをするバスステートコントローラに、CPUが周辺モジュールに対してライトアクセスする際に、CPUからCPUバスに出力されるアドレス信号およびデータ信号を取り込んで保持する少なくとも1段以上のライト用のバッファを設けるようにしたものである。
【0009】
上記した手段によれば、CPUが周辺モジュールのライトコマンドとアドレスやデータを出力すれば、後はバスステートコントローラがそのコマンドとアドレスをデコードして周辺モジュールに対する信号を形成して出力するとともに、CPUに対してバスサイクル終了信号を返送するので、CPUは周辺モジュールのライトコマンドとアドレスやデータを出力した後、他の処理を行なうことができる。そのため、CPUのスループットが向上するようになる。
【0010】
また、好ましくは、上記ライト用のバッファはファーストイン・ファーストアウト方式の多段バッファで構成する。これによって、周辺モジュールに対して連続したライト動作を行なう場合にも、ライト用のバッファに複数のライトデータを格納することができるため、CPUは短時間に他の処理へ移行することができ、CPUのスループットがさらに向上する。
【0011】
さらに、バスステートコントローラには、周辺モジュール内の所定のレジスタの内容と同一の内容を保持するリードバッファと、周辺モジュールから変化のあったレジスタの値を読み出すためのレジスタコピー制御回路とを設ける。これによって、CPUが周辺モジュールのレジスタの内容を読み出すときにも、CPUは1サイクルで所望のデータを得ることができ、CPUのスループットが向上するようになる。
【0012】
【発明の実施の形態】
以下、本発明の好適な実施例を図面に基づいて説明する。
【0013】
図1には、本発明が適用されるCPUと周辺モジュールとを備えたマイクロコンピュータの一実施例の概略構成が示されている。特に制限されないが、図1に示されている各回路ブロックは、公知の半導体集積回路の製造技術により、単結晶シリコンのような1個の半導体チップ上に形成されている。
【0014】
図1に示されているように、この実施例のマイクロコンピュータは、プログラム制御方式の中央処理ユニットCPUと、CPUが実行するプログラムや制御に必要な固定データを記憶するリード・オンリ・メモリROMと、CPUの作業領域を提供するとともにプログラムの実行に伴って得られたデータを一時的に格納したりするためのランダム・アクセス・メモリRAMと、CPUに代わって乗算などの演算処理を行なう演算ユニットMULTと、CPUに代わって外部のハードディスク装置のような記憶装置と内部のRAMとの間でDMA(ダイレクト・メモリ・アクセス)方式のデータ転送を行なうDMAコントローラDMACとを備えている。これらの回路は、CPUアドレスバスIABおよびCPUデータバスIDBを介して接続されている。
【0015】
この実施例のマイクロコンピュータには、上記CPUバスIAB,IDBとは別個に周辺アドレスバスPABおよび周辺データバスPDBが設けられている。この周辺アドレスバスPABおよび周辺データバスPDBには、所定の割込み要因の発生に基づいてCPUに対して割込み要求を行なう割込みコントローラINTC、エミュレーションの際にユーザーが指定したブレークポイントでCPUに対しプログラムの実行停止を要求したりするユーザーブレークコントローラUBC、アナログ・デジタル変換回路ADC,外部装置との間でシリアル通信を行なうシリアルコミュニケーションインタフェースSCI,時間管理用のタイマー回路TIMなどの周辺モジュールPRM、外部装置との間の信号の入出力を行なう入出力ポートPORTが結合されている。なお、入出力ポートPORTにはCPUが接続されたCPUバスIAB,IDBも接続され、CPUもしくはDMACが直接外部装置とデータの授受を行なえるように構成されている。
【0016】
また、上記CPUバスIAB,IDBと周辺バスPAB,PDBとの間には2つのバス上の信号のタイミングを調整してCPUと周辺モジュールとの間の信号の橋渡しをするバスステートコントローラBSCが設けられている。特に制限されるものでないが、この実施例では、上記ROMが所定のブロック単位でデータの一括消去が可能なフラッシュメモリにより構成されている。このフラッシュメモリに対するデータの書込みを制御するためROMの近傍にはフラッシュコントローラFLASHCが設けられている。
【0017】
さらに、内部の動作に必要とされるクロックを発生するクロック発生回路CPGが設けられており、このクロック発生回路CPGには、外部端子EXTALを介して所定の固有震動数を有する水晶発振子XTALが結合される。クロック発生回路CPGは、外部の水晶発振子XTALとともに、その固有振動数に見合った所定の周波数・位相を有するクロック信号を形成し、PLL回路で逓倍して80MHzのクロックφcとそれを4分周した20MHzのようなクロックφpを形成しマイクロコンピュータの各部に供給する。
【0018】
本実施例では、CPUには80MHzの基準クロックφcが供給され、周辺モジュールPRMには基準クロックφcよりも周波数の低い20MHzの周辺クロックφpが供給されており、周辺モジュールPRMはCPUに比べて低速で動作するように構成されている。
【0019】
図2には上記周辺モジュールPRMの基本的な構成が示されている。
【0020】
周辺回路モジュールPRMは、制御用のコントロールレジスタやモジュール内部状態を反映するフラグを有するステータスレジスタ、データ保持用のデータレジスタ等のレジスタ11a〜11cと、これらのレジスタ11a〜11cが接続されたモジュール内部バス12と、該モジュール内部バス12と前記周辺データバスPDBとの信号の入出力を行なう内部インタフェース回路13と、モジュールの本来の機能を実行するためのモジュール本体回路14と、周辺アドレスバスPAB上のアドレス信号およびバスステートコントローラBSCから供給されるリードストローブ信号RSやライトストローブ信号WSをデコードして上記レジスタ11a〜11cのいずれかを選択するデコーダ回路15等から構成されている。
【0021】
上記モジュール本体回路14は、モジュールが実行すべき機能に応じて種々の構成を採るもので、例えば演算器とそれを制御する制御回路(コントロールレジスタの値をデコードするデコーダ)などで構成される。また、周辺モジュールが例えばシリアルコミュニケーションインタフェースの場合、モジュール本体回路14にはシリアル/パラレル変換回路等が設けられる。周辺モジュールが例えばタイマの場合、モジュール本体回路14にはクロックを計数するタイマカウンタ等が設けられる。このモジュール本体回路14や内部インタフェース回路13が上記周辺クロックφpを受けて動作する。
【0022】
特に限定されるものでないが、上記モジュール内部バス12や周辺データバスPDBは、例えば8ビットや16ビット、32ビットのようなデータ幅とされる。各周辺モジュールPRMは、CPUによって上記コントローラレジスタが所定の値に設定されると、動作を開始するように構成される。周辺モジュールがシリアルコミュニケーションインタフェースやA/D変換回路のように、外部装置との間の信号の送受信を行なう周辺モジュールでは、モジュール本体回路14は入出力ポートPORTを介して所定の外部端子に接続される。
【0023】
図3には上記CPUバスIAB,IDBと周辺バスPAB,PDBとの間に設けられた上記バスステートコントローラBSCの一実施例が示されている。
【0024】
この実施例のバスステートコントローラBSCは、CPUから供給されるバスコマンドコードCMDおよびアドレス信号IABをデコードして周辺モジュールの選択信号MSLやリードストローブ信号RSやライトストローブ信号WSを形成し周辺モジュールPRMへ出力するデコード回路21と、CPUデータバスIDBと周辺データバスPDB間のデータ信号のタイミングを調整するI/Oインタフェース回路22と、上記デコード回路21からの信号に基づいてバスステートコントローラBSC内部を制御したりCPUに対してバスサイクル終了信号BUSRDYを返したりする制御回路(ステートマシンと呼ばれることもある)23とを備えている。
【0025】
このバスステートコントローラBSCには、CPUに供給されるクロックと同じ基準クロックφcが供給され、基準クロックφcによって動作するようにされている。CPUから周辺モジュールPRMに対するアクセスがあってからバスサイクルが終了するまでの時間(サイクル数)は周辺モジュールによって異なるが、バスステートコントローラBSCにおける制御回路23は、デコード回路21からの信号によっていずれの周辺モジュールに対するアクセスか知ることができるため、従来のマイクロコンピュータでは、アクセスのあったモジュールに対応したタイミングでバスサイクル終了信号BUSRDYをCPUに返していた。
【0026】
一方、この実施例のバスステートコントローラBSCには、CPUアドレスバスIABおよびCPUデータバスIDB上のアドレス信号およびデータ信号を取り込んで保持するアドレスバッファ24とライトバッファ25およびライトバッファ25にデータが取り込まれているか否かを示す有効ビット26とが設けられている。そして、制御回路23は、アドレスバッファ24とライトバッファ25にCPUバスIAB,IDB上のアドレス信号およびデータ信号が取り込まれると、直ちに有効ビットに“1”をセットするとともにバスサイクル終了信号BUSRDYをCPUに返すように構成されている。なお、この実施例では、CPUからのリード要求に対して周辺モジュールPRMから周辺データバスPDBを介して返送されるデータ信号はI/Oインタフェース回路22を介してCPUデータバスIDBへ出力されるように構成されている。
【0027】
次に、図3の実施例のバスステートコントローラBSCの動作を説明する。ライト動作時は、CPUがバスステートコントローラBSCに、バスコマンドCMDで周辺モジュールに対するライト動作を指示し、当該周辺モジュールのアドレスをCPUアドレスバスIABに、またライトデータをCPUデータバスIDBに出力する。この時、バスステートコントローラBSC内のライトバッファ25の有効ビット26が“0”でデータが保持されていなければ、基準クロックφcの1サイクルでライトバッファ25にデータが、またアドレスバッファ24にアドレスが、それぞれライトされる。そして、バスステートコントローラBSC内の有効ビット26が“1”にセットされる。有効ビット26は“1”ならデータが格納、“0”なら格納されていないことを示す。
【0028】
次に、バスステートコントローラBSCはバスサイクル終了指示信号BUSRDYをハイレベルにアサートし、CPUはこれを検知して周辺モジュールへのライトサイクルをφc基準の1サイクルで終了する。一方、バスステートコントローラBSCは有効ビット26が“1”なら直ちに当該アドレスに対応した周辺モジュールPRMに対し、モジュールセレクト信号MSL、ライトストローブWRをアサートし、アドレスバッファ24に保持されているアドレスを周辺アドレスバスPABに、またライトバッファ25に保持されているライトデータを周辺データバスPDBへ出力する。バスステートコントローラBSCから周辺モジュールPRMへのライトサイクルは周辺クロックφpの2サイクル(基準クロックφcの8サイクル)で行われ、サイクル終了時に有効ビット26が“0”にクリアされ、アドレスバッファ24およびライトバッファ25は新たなデータを受け付けることができるようになる。
【0029】
なお、CPUによるライト動作時に有効ビット26が“1”になっている時は、バスステートコントローラBSCは周辺モジュールPRMへのライト動作が終了し有効ビット26が“0”にクリアされるまで、CPUに対するバスサイクル終了指示信号BUSRDYをネゲートして、CPUのバスサイクルにウェイトをかける。そして有効ビット26が“0”にクリアされると直ちにライトバッファ25にデータをライトしバスサイクル終了指示信号BUSRDYをアサートし、CPUのライトサイクルが終了する。
【0030】
また、リード動作時は有効ビット26が“0”なら、バスステートコントローラBSCは周辺モジュールPRMへライト動作を行っていないので、直ちに当該アドレスに対応した周辺モジュールPRMに対し、モジュールセレクト信号MSL、リードストローブRSをアサートし、周辺アドレスバスPABにアドレスを出力し、周辺モジュールPRMへのリード動作を開始する。リードサイクルは周辺クロックφpの2サイクル(基準クロックφcの8サイクル)で行われる。周辺モジュールPRMが周辺データバスPDBへ出力したデータをバスステートコントローラBSCがI/Oインタフェース回路22を介しCPUデータバスIDB上に出力し、リードサイクルの終わりにバスサイクル終了信号BUSRDYをアサートする。CPUはバスサイクル終了信号BUSRDYのアサートを認識しCPUデータバスIDBの値を取り込みリードサイクルが終了する。従って、この実施例ではCPUによる周辺モジュールPRMのリードサイクルは基準クロックφcで8サイクル以上要する。
【0031】
一方、周辺モジュールに対するリード動作開始時に有効ビット26が“1”なら、バスステートコントローラBSCは周辺モジュールPRMへのライト動作中であるので、ライト動作が終了し有効ビット26が“0”にクリアされるまでバスサイクル終了信号BUSRDYをネゲートしCPUのバスサイクルにウェイトをかける。そして、有効ビット26が“0”にクリアされてライトサイクルが終了すると、直ちに当該アドレスに対応した周辺モジュールPRMに対し、モジュールセレクト信号MSL、リードストローブRSをアサートし、アドレスを周辺アドレスバスIABに出力し、周辺モジュールPRMへのリード動作を開始する。
【0032】
図4には本実施例において有効ビットが“0”のときのライトサイクルでの各アドレスバスおよびデータバスとバスサイクル終了信号BUSRDYのタイミングが示されている。
【0033】
従来方式ではバスサイクル終了信号BUSRDYがCPUによるライトサイクル開始後例えば基準クロックで3サイクル後に返されていたものが、本実施例に従うと、図4に示すように、ライトサイクル開始後1サイクル(Td)でバスサイクル終了信号BUSRDYが返されるようになる。そのため、CPUは、周辺モジュールに対するライト動作のためにCPUバスIAB,IDB上へアドレス信号およびデータ信号を出力した後、バスステートコントローラBSCからのバスサイクル終了信号BUSRDYを受けて速やかに他の処理に移行することができるようになり、CPUのスループットが向上するようになる。
【0034】
図5は、本発明の第2の実施例を示すバスステートコントローラの構成図である。本実施例のバスステートコントローラは、第1の実施例における1段のアドレスバッファ24およびライトバッファ25をFIFO(ファーストイン・ファーストアウト)方式の多段バッファ27に代えたものである。また、この実施例では、FIFOバッファ27が空っぽになっているか否か示すエンプティビット32と、FIFOバッファ27が満杯になっているか否か示すフィルビット31と、FIFOバッファ27内の次にデータが書込まれる位置(アドレス)を示すライトポインタ33と、FIFOバッファ27内の次にデータが読み出される位置を示すリードポインタ34とが設けられている。
【0035】
ライト動作時は、CPUはバスステートコントローラBSCに、バスコマンドCMDで周辺モジュールPRMに対するライト動作を指示し、当該周辺モジュールのアドレスをCPUアドレスバスIABに出力し、ライトデータをCPUデータバスIDBに出力する。この時、バスステートコントローラBSC内のFIFO型ライトバッファ27が有効なデータで完全に満たされているのでなければ(フィルビット31が“0”ならば)、基準クロックφcの1サイクルでFIFOバッファ27にデータおよびアドレスがそれぞれライトされ、ライトポインタ33がインクリメントされる。そして、バスステートコントローラBSCはバスサイクル終了指示信号BUSRDYをアサートし、CPUは周辺モジュールPRMへのライトサイクルを終了する。
【0036】
エンプティビット32はFIFOバッファ27内に有効なデータが1つも入っていない時に“1”とされ、それ以外は“0”とされる。フィルビット31はFIFOバッファ27が有効なデータで一杯になっている時に“1”とされ、それ以外は“0”とされる。FIFOバッファ27の容量をm、ライトポインタ33の値をWP、リードポインタ34の値をRPとすると、
1)WP>RPの時
エンプティビット=0,
WP=m,RP=0の時にフィルビット=1
それ以外の時にフィルビット=0
2)WP<RPの時
エンプティビット=0,
RP=WP+1の時にフィルビット=1
それ以外の時にフィルビット=0
3)WP=RPの時
エンプティビット=1,フィルビット=0
となる。
【0037】
バスステートコントローラBSCはエンプティビット32が“0”ならば、直ちにFIFOバッファ27の先頭にあるアドレスおよびデータを周辺アドレスバスPABおよび周辺データバスPDBに出力する。このときバスステートコントローラBSCは、周辺モジュールの選択信号MSLおよびライトストローブ信号RSもアサートする。バスステートコントローラBSCから周辺モジュールPRMへのライトサイクルはφpの2サイクルで行われ、サイクル終了時にリードポインタ34がインクリメント(+1)される。
【0038】
ライト動作時にフィルビット31が“1”すなわちFIFOバッファ27がデータで満たされた時は、バスステートコントローラBSCは周辺モジュールPRMへのライト動作を行ないライトポインタ33がインクリメントされフィルビット31が“0”になるまで、CPUに対するバスサイクル終了指示信号BUSRDYをアサートして、CPUのバスサイクルにウェイトをかける。そしてフィルビット31が“0”になると直ちにバスサイクル終了指示信号BUSRDYをネゲートしてFIFOバッファ27にCPUからのデータをライトさせて、ライト後にバスサイクル終了指示信号BUSRDYをアサートしCPUのバスサイクルを終了させる。
【0039】
また、リード動作時はエンプティビット32が“1”で、バスステートコントローラBSCが周辺モジュールPRMへライト動作を行っていないなら、直ちに当該アドレスに対応した周辺モジュールに対するモジュールセレクト信号MSLおよびリードストローブRSをアサートし、アドレスを周辺アドレスバスPABに出力し、周辺モジュールへのリード動作を開始する。リードサイクルは周辺クロックφpの2サイクルで行われる。そのため、バスステートコントローラBSCはCPUに対しバスサイクル終了指示信号BUSRDYをネゲートし、周辺モジュールPRMが周辺データバスPDBへ出力したデータをBSC内のI/Oインタフェース回路22を介してCPUデータバスIDBに出力し、リードサイクルの終わりにバスサイクル終了信号BUSRDYをアサートする。CPUはバスサイクル終了信号BUSRDYのアサートを認識するとCPUデータバスIDBの値の取り込みリードサイクルが終了する。
【0040】
リード動作時にエンプティビット32が“0”で、バスステートコントローラBSCが周辺モジュールへライト動作中であるなら、FIFOバッファ27内にある全てのデータのライト動作が終了しエンプティビット32が“1”になるまでバスサイクル終了信号BUSRDYをネゲートしてCPUのバスサイクルにウェイトをかける。そして、ライト動作が終了すると、直ちに当該アドレスに対応した周辺モジュールに対し、モジュールセレクト信号MSLおよびリードストローブRSをアサートし、アドレスを周辺アドレスバスPABに出力し、周辺モジュールへのリード動作を開始させる。
【0041】
このようにFIFOバッファ27を設けたことにより、連続ライト時でもCPUから周辺モジュールへのライトアクセスを実効的に1データ当たり1サイクルで行うことが出来る。
【0042】
図6は、本発明の第3の実施例を示すバスステートコントローラの構成図である。図6に示すように、本実施例では、周辺モジュールPRM内に内部のレジスタ11の値が変化したことを検出するレジスタ変化検出回路16が設けられている。一方、バスステートコントローラBSC内には、周辺モジュールPRM内のレジスタ11の値のコピーを持つリードバッファ28と、周辺モジュールPRMに設けられている上記レジスタ変化検出回路16から出力される検出信号Drcを受けて周辺モジュール内の変化のあったレジスタの値を読み出すためのレジスタコピー制御回路29とが設けられている。
【0043】
レジスタ変化検出回路16は、レジスタのリセット信号、ライト信号、フラグセット信号、フラグクリア信号およびデータキャプチャ信号等の論理和をとる論理ゲートとこの論理ゲートの出力が変化したときにセットされるフラグ(フリップフロップ)などにより構成することができる。リードバッファ28は、レジスタもしくはRAMのようなメモリ回路で構成され、常に周辺モジュール内の対応するレジスタのコピーを持つように制御される。リードバッファ28の記憶容量を抑えるため、コピーするレジスタをユーザが頻繁にリードアクセスするフラグ系およびデータ系のレジスタに限定してもよい。レジスタコピー制御回路29は、常にレジスタのコピーをリードバッファ28に保持するため、リセット解除直後やレジスタ変化検出信号Drcが入力されたときに、周辺モジュールに対するモジュール選択信号MSLやリードストローブ信号RSをアサートし、コピーしようとするレジスタのアドレスを生成して周辺アドレスバスPABより周辺モジュールPSMへ出力してレジスタをリードし、読み出した値をリードバッファ28に保持させるように構成される。
【0044】
レジスタコピー制御回路29が対応するレジスタのリード動作を開始する時、バスステートコントローラBSCが周辺モジュールへのライト動作中であれば、レジスタコピー制御回路29はリード動作をライト動作の終了まで保留する。また、レジスタ変化検出信号Drcが複数のモジュールから同時にアサートされている場合は内部で設定された優先順位に従い、リード動作を行う。リードサイクルは周辺クロックφpの2サイクルで行われる。リード動作が終了すると対応する周辺モジュール内のレジスタ変化検出回路16はクリアされ、バスステートコントローラBSCに対する検出信号Drcがネゲートされる。このようにしてリードバッファ28にはレジスタコピー制御回路29により自動的にレジスタの値がリードされる。
【0045】
CPUから周辺モジュールPRMのライト動作は、CPUがバスステートコントローラBSCにバスコマンドでライト動作を指示し、当該周辺モジュールのアドレスをCPUアドレスバスIABに出力し、ライトデータをCPUデータバスIDBに出力することで行われる。バスステートコントローラBSCはリードバッファ28へのロード動作中でなければ直ちに、動作中ならば動作終了を待って、当該周辺モジュールに対するモジュールセレクト信号MSL、ライトストローブWSをアサートし、アドレスを周辺アドレスバスPABに出力することで行う。ライトサイクルは周辺クロックφpの2サイクルで行われる。バスステートコントローラBSCはライト動作終了までCPUに対してバスサイクル終了指示信号BUSRDYをネゲートしてCPUをウェイト状態にする。そしてライト動作終了時にバスサイクル終了指示信号BUSRDYがアサートされ、CPUはライト動作を終了する。
【0046】
CPUによる周辺モジュールPRMのリード動作もライト動作と同様にして行なわれる。リード動作は、CPUがバスステートコントローラBSCにバスコマンドCMDでリード動作を指示し、当該周辺モジュールのアドレスを内部アドレスバスIABに出力することで行われる。バスステートコントローラBSCは、このときのCPUのリードがバスステートコントローラBSC内のリードバッファ28がコピーを持っているレジスタに対するリードであり、対応するレジスタのリードバッファ28に対するレジスタ変化検出信号Drcがネゲートしていれば、直ちにリードバッファ28内の対応するレジスタのデータをCPUデータバスIDBに出力し、バスサイクル終了指示信号BUSRDYをアサートする。CPUはCPUデータバスIDBに出力されたデータを内部に取り込みリード動作を終了する。かかるリード動作は基準クロックφcの1サイクルで終了する。
【0047】
一方、CPUによる周辺モジュールPRMのリードがあったときに、対応するリード要求のあったレジスタのレジスタ変化検出信号Drcがアサートしていれば、バスステートコントローラBSCは、バスサイクル終了指示信号BUSRDYをネゲートしてCPUをウェイト状態にする。そして、バスステートコントローラBSCはリードバッファ28に対応する周辺モジュール内のレジスタの値をロードし、レジスタ変化検出信号Drcがネゲートされるのを受けてバスステートコントローラBSCはリードバッファ28内の対応するレジスタの値をCPUデータバスIDBに出力し、バスサイクル終了指示信号BUSRDYをアサートする。すると、CPUはCPUデータバスIDBに出力されたデータを内部に取り込み、リード動作を終了する。かかるリード動作は周辺クロックφpの2サイクル(基準クロックφcの8サイクル)で終了する。
【0048】
以上のようにバスステートコントローラBSC内にリードバッファを設けることで、CPUから周辺モジュールのリード動作を実効的に基準クロックφcの1サイクルで行うことができるようになる。
【0049】
なお、上記第3の実施例を、前述した第1の実施例のアドレスバッファ24およびライトバッファ25または第2の実施例のFIFOバッファ27と組み合わせて適用することが可能である。すなわち、バスステートコントローラBSC内に周辺モジュールのレジスタに対応したリードバッファ28とアドレスバッファ24およびライトバッファ25またはFIFOバッファ27を設ける。ライトバッファ25やFIFO型ライトバッファ27およびリードバッファ28の動作は上記実施例で説明した示したとおりである。かかる構成により、CPUによる周辺モジュールに対するリード動作やライト動作にCPUに対して返送されるバスサイクル終了信号のタイミングを早くすることができ、CPUのスループットが大幅に向上するようになる。
【0050】
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0051】
また、以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるCPUと周辺モジュールとを備えたマイクロコンピュータに適用した場合について説明した、本発明はそれに限定されるものでなく、CPUと周辺モジュールとが別個の半導体チップにより構成されているマルチチップのマイクロコンピュータにも適用することができる。
【0052】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0053】
すなわち、CPUと、該CPUに比べて低い周波数の動作クロックで動作する周辺モジュールとを備えたマイクロコンピュータもしくはマイクロコントローラのようなデータ処理装置において、CPUが周辺モジュールのアクセスコマンドとアドレスやデータを出力した後直ちに他の処理を行なうことができ、それによってCPUのスループットが向上するようになる。
【図面の簡単な説明】
【図1】本発明が適用されるCPUと周辺モジュールとを備えたマイクロコンピュータの一実施例の概略構成を示すブロック図である。
【図2】周辺モジュールの基本的な構成を示すブロック図である。
【図3】バスステートコントローラの一実施例を示すブロック図である。
【図4】実施例のマイクロコンピュータにおけるライトサイクルでの各アドレスバスおよびデータバスとバスサイクル終了信号のタイミングが示すタイミングチャートである。
【図5】バスステートコントローラの第2の実施例を示すブロック図である。
【図6】バスステートコントローラの第3の実施例を示すブロック図である。
【符号の説明】
CPU 中央処理ユニット
BSC バスステートコントローラ
PRM 周辺モジュール
CMD バスコマンド
IAB CPUアドレスバス
IDB CPUデータバス
PAB 周辺アドレスバス
PDB 周辺データバス
MSL 周辺モジュールセレクト信号
RS リードストローブ信号
WS ライトストローブ信号
BUSRDY バスサイクル終了信号
φc 基準クロック(CPUクロック)
φp 周辺クロック
11a,11b,11c レジスタ
12 モジュール内部バス
13 I/Oインタフェース
14 モジュール本体回路
15,21 デコーダ
16 レジスタ変化検出回路
22 I/Oインタフェース
23 制御回路(ステートマシン)
24 ライト用のバッファ(データバッファ)
25 ライト用のバッファ(アドレスバッファ)
26 有効ビット
27 FIFOバッファ
28 リードバッファ
29 レジスタコピー制御回路
31 フィルビット
32 エンプティビット
33 ライトポインタ
34 リードポインタ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a technique effective when applied to a peripheral module access method in a microcomputer. For example, the peripheral module access method in a microcomputer in which the frequency of an operation clock of a peripheral module is lower than the frequency of an operation clock of a central processing unit. It is related to effective technology.
[0002]
[Prior art]
In a one-chip microcomputer including a central processing unit (hereinafter referred to as a CPU) and peripheral modules such as a timer circuit, a serial communication interface circuit, and an A-D conversion circuit, in order to reduce power consumption and noise, Some peripheral modules are operated at a lower speed than the CPU by setting the frequency of the operation clock of the peripheral module lower than the frequency of the operation clock of the CPU. In addition, in order to enable transmission and reception of signals between the CPU and the peripheral module having different operating frequencies, a signal is bridged between the CPU bus connected to the CPU and the peripheral bus connected to the peripheral module. Some have a bus control means (bus state controller).
[0003]
[Problems to be solved by the invention]
As described above, in the conventional microcomputer configured to operate the peripheral module at a frequency lower than that of the CPU, the access cycle of the built-in peripheral module by the CPU is determined by the operating frequency of the module. For example, when the CPU performs read access to a peripheral module that operates at an operating frequency that is ¼ of the operating frequency of the CPU, the peripheral module receives the access request from the CPU and can output data before the peripheral module can output data. One cycle is required at the operating frequency, and the CPU reads data during the next one cycle. In addition, even when the CPU performs write access to the peripheral module, the peripheral module requires one cycle at the operating frequency of the peripheral module until it can take in data after receiving an access request from the CPU. Data will be captured in the next cycle.
[0004]
For this reason, the reading and writing of the peripheral module takes at least 2 cycles at the operating frequency of the peripheral module, that is, 8 cycles at the operating frequency of the CPU. In the conventional microcomputer, the CPU cannot perform other processes during this period, leading to a decrease in CPU performance. Here, the reading and writing of the peripheral module means reading and writing of data in registers provided in the peripheral module.
[0005]
The object of the present invention is to reduce the power consumption and noise as described above, and when the peripheral module is operated at a lower frequency than the CPU, the access cycle of the peripheral module increases and the performance of the CPU decreases. Is to prevent it.
[0006]
The above and other objects and novel features of the present invention will become apparent from the description of the present specification and the accompanying drawings.
[0007]
[Means for Solving the Problems]
Outlines of representative ones of the inventions disclosed in the present application will be described as follows.
[0008]
That is, in a data processing device such as a microcomputer or a microcontroller including at least a CPU (central processing unit) and a peripheral module that operates with an operation clock having a frequency lower than that of the CPU, a CPU bus connected to the CPU; Output from the CPU to the CPU bus when the CPU performs a write access to the peripheral module to the bus state controller that is provided between the peripheral buses connected to the peripheral module and bridges signals between the two buses. And at least one write buffer for receiving and holding the address signal and the data signal.
[0009]
According to the above means, if the CPU outputs the write command and address and data of the peripheral module, then the bus state controller decodes the command and address to form and output a signal for the peripheral module. Since the bus cycle end signal is returned to the CPU, the CPU can perform other processing after outputting the write command, address, and data of the peripheral module. As a result, the throughput of the CPU is improved.
[0010]
Preferably, the write buffer is a first-in first-out multi-stage buffer. As a result, even when continuous write operations are performed on the peripheral modules, a plurality of write data can be stored in the write buffer, so that the CPU can shift to another process in a short time. The CPU throughput is further improved.
[0011]
Further, the bus state controller is provided with a read buffer that holds the same contents as the contents of a predetermined register in the peripheral module, and a register copy control circuit for reading the changed register value from the peripheral module. As a result, even when the CPU reads the contents of the peripheral module registers, the CPU can obtain desired data in one cycle, and the throughput of the CPU is improved.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
Preferred embodiments of the present invention will be described below with reference to the drawings.
[0013]
FIG. 1 shows a schematic configuration of an embodiment of a microcomputer provided with a CPU and peripheral modules to which the present invention is applied. Although not particularly limited, each circuit block shown in FIG. 1 is formed on one semiconductor chip such as single crystal silicon by a known semiconductor integrated circuit manufacturing technique.
[0014]
As shown in FIG. 1, the microcomputer of this embodiment includes a central processing unit CPU of a program control system, a read-only memory ROM for storing programs executed by the CPU and fixed data necessary for control. A random access memory RAM for providing a work area for the CPU and temporarily storing data obtained as a result of execution of the program, and an arithmetic unit for performing arithmetic processing such as multiplication on behalf of the CPU In place of the CPU, a MULT and a DMA controller DMAC that performs DMA (direct memory access) type data transfer between a storage device such as an external hard disk device and an internal RAM are provided. These circuits are connected via a CPU address bus IAB and a CPU data bus IDB.
[0015]
The microcomputer of this embodiment is provided with a peripheral address bus PAB and a peripheral data bus PDB separately from the CPU buses IAB and IDB. The peripheral address bus PAB and the peripheral data bus PDB include an interrupt controller INTC for making an interrupt request to the CPU based on the occurrence of a predetermined interrupt factor, and a program for the CPU at a breakpoint specified by the user during emulation. Peripheral module PRM such as user break controller UBC that requests execution stop, analog-digital conversion circuit ADC, serial communication interface SCI for serial communication with external device, timer circuit TIM for time management, and external device An input / output port PORT for inputting / outputting signals between the two is coupled. Note that CPU buses IAB and IDB to which a CPU is connected are also connected to the input / output port PORT so that the CPU or DMAC can directly exchange data with an external device.
[0016]
A bus state controller BSC is provided between the CPU buses IAB and IDB and the peripheral buses PAB and PDB to adjust the timing of signals on the two buses and to bridge signals between the CPU and peripheral modules. It has been. Although not particularly limited, in this embodiment, the ROM is constituted by a flash memory capable of erasing data in a predetermined block unit. In order to control the writing of data to the flash memory, a flash controller FLASHHC is provided near the ROM.
[0017]
Furthermore, a clock generation circuit CPG for generating a clock required for internal operation is provided. In this clock generation circuit CPG, a crystal oscillator XTAL having a predetermined natural vibration number is connected via an external terminal EXTAL. Combined. The clock generation circuit CPG, together with the external crystal oscillator XTAL, forms a clock signal having a predetermined frequency and phase corresponding to its natural frequency, and is multiplied by a PLL circuit to divide the clock by 80 MHz and φc. Then, a clock φp such as 20 MHz is formed and supplied to each part of the microcomputer.
[0018]
In this embodiment, the CPU is supplied with an 80 MHz reference clock φc, and the peripheral module PRM is supplied with a 20 MHz peripheral clock φp having a frequency lower than that of the reference clock φc. The peripheral module PRM is slower than the CPU. It is configured to work with.
[0019]
FIG. 2 shows a basic configuration of the peripheral module PRM.
[0020]
The peripheral circuit module PRM includes a control register for control, a status register having a flag reflecting the internal state of the module, registers 11a to 11c such as a data register for holding data, and the inside of the module to which these registers 11a to 11c are connected. On the bus 12, an internal interface circuit 13 for inputting / outputting signals between the module internal bus 12 and the peripheral data bus PDB, a module body circuit 14 for executing the original function of the module, and the peripheral address bus PAB And a decoder circuit 15 that decodes the read strobe signal RS and the write strobe signal WS supplied from the bus state controller BSC to select one of the registers 11a to 11c.
[0021]
The module body circuit 14 has various configurations depending on the function to be executed by the module, and includes, for example, an arithmetic unit and a control circuit (decoder that decodes the value of the control register) that controls the arithmetic unit. When the peripheral module is a serial communication interface, for example, the module body circuit 14 is provided with a serial / parallel conversion circuit or the like. When the peripheral module is a timer, for example, the module body circuit 14 is provided with a timer counter for counting clocks. The module body circuit 14 and the internal interface circuit 13 operate upon receiving the peripheral clock φp.
[0022]
Although not particularly limited, the module internal bus 12 and the peripheral data bus PDB have a data width of 8 bits, 16 bits, 32 bits, for example. Each peripheral module PRM is configured to start operation when the controller register is set to a predetermined value by the CPU. In a peripheral module that transmits and receives signals to and from an external device such as a serial communication interface or an A / D converter circuit, the module body circuit 14 is connected to a predetermined external terminal via the input / output port PORT. The
[0023]
FIG. 3 shows an embodiment of the bus state controller BSC provided between the CPU buses IAB and IDB and the peripheral buses PAB and PDB.
[0024]
The bus state controller BSC of this embodiment decodes the bus command code CMD and the address signal IAB supplied from the CPU to form the peripheral module selection signal MSL, the read strobe signal RS, and the write strobe signal WS to the peripheral module PRM. Based on a signal from the decode circuit 21, an I / O interface circuit 22 for adjusting the timing of a data signal between the CPU data bus IDB and the peripheral data bus PDB, and the signal from the decode circuit 21, the inside of the bus state controller BSC is controlled. And a control circuit (sometimes called a state machine) 23 for returning a bus cycle end signal BUSRDY to the CPU.
[0025]
The bus state controller BSC is supplied with the same reference clock φc as the clock supplied to the CPU, and is operated by the reference clock φc. Although the time (number of cycles) from the access to the peripheral module PRM from the CPU to the end of the bus cycle differs depending on the peripheral module, the control circuit 23 in the bus state controller BSC can select any of the peripherals depending on the signal from the decode circuit 21. Since it is possible to know whether the module is accessed, the conventional microcomputer returns the bus cycle end signal BUSRDY to the CPU at the timing corresponding to the accessed module.
[0026]
On the other hand, in the bus state controller BSC of this embodiment, data is taken into the address buffer 24, the write buffer 25, and the write buffer 25 that take in and hold the address signals and data signals on the CPU address bus IAB and the CPU data bus IDB. And a valid bit 26 indicating whether or not the When the address signal and data signal on the CPU buses IAB and IDB are taken into the address buffer 24 and the write buffer 25, the control circuit 23 immediately sets the valid bit to “1” and sets the bus cycle end signal BUSRDY to the CPU. Is configured to return to In this embodiment, a data signal returned from the peripheral module PRM via the peripheral data bus PDB in response to a read request from the CPU is output to the CPU data bus IDB via the I / O interface circuit 22. It is configured.
[0027]
Next, the operation of the bus state controller BSC of the embodiment of FIG. 3 will be described. During the write operation, the CPU instructs the bus state controller BSC to perform a write operation on the peripheral module with the bus command CMD, and outputs the address of the peripheral module to the CPU address bus IAB and the write data to the CPU data bus IDB. At this time, if the valid bit 26 of the write buffer 25 in the bus state controller BSC is “0” and the data is not held, the data is stored in the write buffer 25 and the address is stored in the address buffer 24 in one cycle of the reference clock φc. , Each written. Then, the valid bit 26 in the bus state controller BSC is set to “1”. The effective bit 26 indicates that data is stored when “1” and is not stored when “0”.
[0028]
Next, the bus state controller BSC asserts the bus cycle end instruction signal BUSRDY to a high level, and the CPU detects this and ends the write cycle to the peripheral module in one cycle based on φc. On the other hand, if the valid bit 26 is “1”, the bus state controller BSC immediately asserts the module select signal MSL and the write strobe WR to the peripheral module PRM corresponding to the address, and sets the address held in the address buffer 24 to the peripheral. Write data held in the address bus PAB and in the write buffer 25 is output to the peripheral data bus PDB. The write cycle from the bus state controller BSC to the peripheral module PRM is performed in two cycles of the peripheral clock φp (eight cycles of the reference clock φc). At the end of the cycle, the valid bit 26 is cleared to “0”, and the address buffer 24 and the write The buffer 25 can accept new data.
[0029]
When the valid bit 26 is “1” during the write operation by the CPU, the bus state controller BSC completes the write operation to the peripheral module PRM until the valid bit 26 is cleared to “0”. The bus cycle end instruction signal BUSRDY for is negated, and the CPU bus cycle is waited. As soon as the valid bit 26 is cleared to “0”, data is written to the write buffer 25, the bus cycle end instruction signal BUSRDY is asserted, and the CPU write cycle ends.
[0030]
If the valid bit 26 is “0” during the read operation, the bus state controller BSC has not performed a write operation to the peripheral module PRM, and immediately receives the module select signal MSL, read from the peripheral module PRM corresponding to the address. The strobe RS is asserted, an address is output to the peripheral address bus PAB, and a read operation to the peripheral module PRM is started. The read cycle is performed in two cycles of the peripheral clock φp (eight cycles of the reference clock φc). The bus state controller BSC outputs the data output from the peripheral module PRM to the peripheral data bus PDB onto the CPU data bus IDB via the I / O interface circuit 22, and asserts the bus cycle end signal BUSRDY at the end of the read cycle. The CPU recognizes the assertion of the bus cycle end signal BUSRDY, captures the value of the CPU data bus IDB, and ends the read cycle. Therefore, in this embodiment, the read cycle of the peripheral module PRM by the CPU requires 8 cycles or more with the reference clock φc.
[0031]
On the other hand, if the valid bit 26 is “1” at the start of the read operation for the peripheral module, the bus state controller BSC is in the write operation to the peripheral module PRM, so the write operation is completed and the valid bit 26 is cleared to “0”. Until the bus cycle end signal BUSRDY is negated, the CPU bus cycle is waited. When the valid bit 26 is cleared to “0” and the write cycle is completed, the module select signal MSL and the read strobe RS are immediately asserted to the peripheral module PRM corresponding to the address, and the address is transferred to the peripheral address bus IAB. Output and start a read operation to the peripheral module PRM.
[0032]
FIG. 4 shows the timing of each address bus and data bus and the bus cycle end signal BUSRDY in the write cycle when the valid bit is “0” in this embodiment.
[0033]
In the conventional method, the bus cycle end signal BUSRDY is returned after the start of the write cycle by the CPU, for example, after 3 cycles of the reference clock. According to this embodiment, as shown in FIG. ), The bus cycle end signal BUSRDY is returned. Therefore, the CPU outputs an address signal and a data signal onto the CPU buses IAB and IDB for a write operation to the peripheral module, and then receives the bus cycle end signal BUSRDY from the bus state controller BSC and promptly performs other processing. The CPU throughput can be improved.
[0034]
FIG. 5 is a block diagram of a bus state controller showing a second embodiment of the present invention. In the bus state controller of this embodiment, the one-stage address buffer 24 and write buffer 25 in the first embodiment are replaced with a FIFO (first-in first-out) type multi-stage buffer 27. In this embodiment, an empty bit 32 indicating whether or not the FIFO buffer 27 is empty, a fill bit 31 indicating whether or not the FIFO buffer 27 is full, and the next data in the FIFO buffer 27 are stored. A write pointer 33 indicating a position (address) to be written and a read pointer 34 indicating a position where data is read next in the FIFO buffer 27 are provided.
[0035]
During the write operation, the CPU instructs the bus state controller BSC to perform a write operation on the peripheral module PRM with the bus command CMD, outputs the address of the peripheral module to the CPU address bus IAB, and outputs the write data to the CPU data bus IDB. To do. At this time, if the FIFO type write buffer 27 in the bus state controller BSC is not completely filled with valid data (if the fill bit 31 is “0”), the FIFO buffer 27 in one cycle of the reference clock φc. Data and address are respectively written to the write pointer 33 and the write pointer 33 is incremented. Then, the bus state controller BSC asserts the bus cycle end instruction signal BUSRDY, and the CPU ends the write cycle to the peripheral module PRM.
[0036]
The empty bit 32 is set to “1” when there is no valid data in the FIFO buffer 27, and is set to “0” otherwise. The fill bit 31 is set to “1” when the FIFO buffer 27 is full of valid data, and is set to “0” otherwise. If the capacity of the FIFO buffer 27 is m, the value of the write pointer 33 is WP, and the value of the read pointer 34 is RP,
1) When WP> RP
Empty bit = 0,
Fill bit = 1 when WP = m, RP = 0
Otherwise, fill bit = 0
2) When WP <RP
Empty bit = 0,
Fill bit = 1 when RP = WP + 1
Otherwise, fill bit = 0
3) When WP = RP
Empty bit = 1, Fill bit = 0
It becomes.
[0037]
If the empty bit 32 is “0”, the bus state controller BSC immediately outputs the address and data at the head of the FIFO buffer 27 to the peripheral address bus PAB and the peripheral data bus PDB. At this time, the bus state controller BSC also asserts the peripheral module selection signal MSL and the write strobe signal RS. The write cycle from the bus state controller BSC to the peripheral module PRM is performed in two cycles of φp, and the read pointer 34 is incremented (+1) at the end of the cycle.
[0038]
When the fill bit 31 is “1” during the write operation, that is, when the FIFO buffer 27 is filled with data, the bus state controller BSC performs a write operation to the peripheral module PRM, the write pointer 33 is incremented, and the fill bit 31 is “0”. Until the bus cycle end instruction signal BUSRDY is asserted to the CPU, the CPU bus cycle is waited. As soon as the fill bit 31 becomes “0”, the bus cycle end instruction signal BUSRDY is negated to write the data from the CPU to the FIFO buffer 27, and after the write, the bus cycle end instruction signal BUSRDY is asserted to execute the CPU bus cycle. Terminate.
[0039]
If the empty bit 32 is “1” during the read operation and the bus state controller BSC is not performing a write operation to the peripheral module PRM, the module select signal MSL and the read strobe RS for the peripheral module corresponding to the address are immediately displayed. Assert, output the address to the peripheral address bus PAB, and start a read operation to the peripheral module. The read cycle is performed in two cycles of the peripheral clock φp. Therefore, the bus state controller BSC negates the bus cycle end instruction signal BUSRDY to the CPU, and the data output from the peripheral module PRM to the peripheral data bus PDB is transferred to the CPU data bus IDB via the I / O interface circuit 22 in the BSC. The bus cycle end signal BUSRDY is asserted at the end of the read cycle. When the CPU recognizes the assertion of the bus cycle end signal BUSRDY, the CPU reads the value of the CPU data bus IDB and the read cycle ends.
[0040]
If the empty bit 32 is “0” during the read operation and the bus state controller BSC is writing to the peripheral module, the write operation of all the data in the FIFO buffer 27 is completed and the empty bit 32 is set to “1”. Until the bus cycle end signal BUSRDY is negated, the CPU bus cycle is waited. When the write operation is completed, the module select signal MSL and the read strobe RS are immediately asserted to the peripheral module corresponding to the address, the address is output to the peripheral address bus PAB, and the read operation to the peripheral module is started. .
[0041]
By providing the FIFO buffer 27 in this way, the write access from the CPU to the peripheral module can be effectively performed in one cycle per data even during continuous writing.
[0042]
FIG. 6 is a block diagram of a bus state controller showing a third embodiment of the present invention. As shown in FIG. 6, in this embodiment, a register change detection circuit 16 for detecting a change in the value of the internal register 11 is provided in the peripheral module PRM. On the other hand, in the bus state controller BSC, a read buffer 28 having a copy of the value of the register 11 in the peripheral module PRM and a detection signal Drc output from the register change detection circuit 16 provided in the peripheral module PRM are provided. In response, a register copy control circuit 29 is provided for reading the value of the changed register in the peripheral module.
[0043]
The register change detection circuit 16 includes a logic gate that takes a logical sum of a register reset signal, a write signal, a flag set signal, a flag clear signal, a data capture signal, and the like, and a flag ( Flip-flop) or the like. The read buffer 28 is composed of a memory circuit such as a register or a RAM, and is controlled so as to always have a copy of the corresponding register in the peripheral module. In order to reduce the storage capacity of the read buffer 28, the registers to be copied may be limited to flag-type and data-type registers that are frequently read-accessed by the user. Since the register copy control circuit 29 always keeps a copy of the register in the read buffer 28, the module selection signal MSL and the read strobe signal RS for the peripheral modules are asserted immediately after the reset is released or when the register change detection signal Drc is input. Then, the address of the register to be copied is generated and output from the peripheral address bus PAB to the peripheral module PSM to read the register, and the read value is held in the read buffer 28.
[0044]
When the register copy control circuit 29 starts the read operation of the corresponding register, if the bus state controller BSC is performing a write operation to the peripheral module, the register copy control circuit 29 suspends the read operation until the end of the write operation. When the register change detection signal Drc is asserted simultaneously from a plurality of modules, a read operation is performed according to the priority set internally. The read cycle is performed in two cycles of the peripheral clock φp. When the read operation is completed, the register change detection circuit 16 in the corresponding peripheral module is cleared, and the detection signal Drc for the bus state controller BSC is negated. In this way, the register value is automatically read from the read buffer 28 by the register copy control circuit 29.
[0045]
In the write operation of the peripheral module PRM from the CPU, the CPU instructs the bus state controller BSC to perform a write operation, outputs the address of the peripheral module to the CPU address bus IAB, and outputs the write data to the CPU data bus IDB. Is done. The bus state controller BSC immediately waits for the end of the operation if it is not in operation to load the read buffer 28, if it is in operation, asserts the module select signal MSL and write strobe WS for the peripheral module, and sends the address to the peripheral address bus PAB This is done by outputting to The write cycle is performed in two cycles of the peripheral clock φp. The bus state controller BSC negates the bus cycle end instruction signal BUSRDY to the CPU until the write operation ends, and puts the CPU into a wait state. When the write operation ends, the bus cycle end instruction signal BUSRDY is asserted, and the CPU ends the write operation.
[0046]
The read operation of the peripheral module PRM by the CPU is performed in the same manner as the write operation. The read operation is performed by the CPU instructing the bus state controller BSC to perform a read operation with the bus command CMD and outputting the address of the peripheral module to the internal address bus IAB. In the bus state controller BSC, the CPU read at this time is a read to the register in which the read buffer 28 in the bus state controller BSC has a copy, and the register change detection signal Drc for the read buffer 28 of the corresponding register is negated. If so, the data of the corresponding register in the read buffer 28 is immediately output to the CPU data bus IDB, and the bus cycle end instruction signal BUSRDY is asserted. The CPU takes in the data output to the CPU data bus IDB and ends the read operation. Such a read operation is completed in one cycle of the reference clock φc.
[0047]
On the other hand, when the peripheral module PRM is read by the CPU, if the register change detection signal Drc of the corresponding read request is asserted, the bus state controller BSC negates the bus cycle end instruction signal BUSRDY. The CPU is put into a wait state. Then, the bus state controller BSC loads the value of the register in the peripheral module corresponding to the read buffer 28, and the bus state controller BSC receives the negation of the register change detection signal Drc, and the bus state controller BSC receives the corresponding register in the read buffer 28. Is output to the CPU data bus IDB, and the bus cycle end instruction signal BUSRDY is asserted. Then, the CPU takes in the data output to the CPU data bus IDB and ends the read operation. Such a read operation is completed in two cycles of the peripheral clock φp (eight cycles of the reference clock φc).
[0048]
As described above, by providing the read buffer in the bus state controller BSC, it is possible to effectively perform the read operation of the peripheral module from the CPU in one cycle of the reference clock φc.
[0049]
The third embodiment can be applied in combination with the address buffer 24 and write buffer 25 of the first embodiment or the FIFO buffer 27 of the second embodiment. That is, the read buffer 28, the address buffer 24, the write buffer 25, or the FIFO buffer 27 corresponding to the peripheral module registers are provided in the bus state controller BSC. The operations of the write buffer 25, the FIFO type write buffer 27, and the read buffer 28 are as described in the above embodiment. With this configuration, the timing of the bus cycle end signal returned to the CPU for the read operation and write operation on the peripheral module by the CPU can be advanced, and the throughput of the CPU is greatly improved.
[0050]
The invention made by the present inventor has been specifically described based on the embodiments. However, the present invention is not limited to the above embodiments, and various modifications can be made without departing from the scope of the invention. Nor.
[0051]
Further, in the above description, the case where the invention made mainly by the present inventor is applied to a microcomputer having a CPU and peripheral modules, which are the fields of use behind the invention, has been described. In addition, the present invention can also be applied to a multi-chip microcomputer in which the CPU and the peripheral module are constituted by separate semiconductor chips.
[0052]
【The invention's effect】
The effects obtained by the representative ones of the inventions disclosed in the present application will be briefly described as follows.
[0053]
That is, in a data processing device such as a microcomputer or a microcontroller including a CPU and a peripheral module that operates at an operation clock having a frequency lower than that of the CPU, the CPU outputs an access command, an address, and data of the peripheral module. Then, other processing can be performed immediately, thereby improving the CPU throughput.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a schematic configuration of an embodiment of a microcomputer including a CPU and peripheral modules to which the present invention is applied.
FIG. 2 is a block diagram showing a basic configuration of a peripheral module.
FIG. 3 is a block diagram showing an embodiment of a bus state controller.
FIG. 4 is a timing chart showing timings of address buses, data buses, and bus cycle end signals in a write cycle in the microcomputer of the embodiment.
FIG. 5 is a block diagram showing a second embodiment of the bus state controller.
FIG. 6 is a block diagram showing a third embodiment of the bus state controller.
[Explanation of symbols]
CPU Central processing unit
BSC bus state controller
PRM peripheral module
CMD bus command
IAB CPU address bus
IDB CPU data bus
PAB peripheral address bus
PDB peripheral data bus
MSL peripheral module select signal
RS Read strobe signal
WS Light strobe signal
BUSRDY Bus cycle end signal
φc Reference clock (CPU clock)
φp peripheral clock
11a, 11b, 11c registers
12 module internal bus
13 I / O interface
14 Module body circuit
15, 21 Decoder
16 Register change detection circuit
22 I / O interface
23 Control circuit (state machine)
24 Write buffer (data buffer)
25 Write buffer (address buffer)
26 Effective bits
27 FIFO buffer
28 Read buffer
29 Register copy control circuit
31 Philbit
32 empty bits
33 Light pointer
34 Read pointer

Claims (6)

少なくとも中央処理ユニットと、
上記中央処理ユニットに接続される第1のバスと、
上記周辺モジュールに接続される第2のバスと、
上記第1のバスと上記第2のバスとの間に設けられ、この2つのバスの信号の橋渡しをする制御回路と、
上記第2のバスに接続され、上記制御回路を介して上記中央処理ユニットによってアクセスされ、複数のレジスタを有する周辺モジュールと、
上記第2のバスに接続されるメモリ回路とを有するデータ処理装置であって、
上記周辺モジュールは、上記中央処理ユニットの動作クロックに比べて低い周波数の動作クロックで動作するものであり、
上記制御回路は上記周辺モジュールのレジスタの値を読み出し、上記メモリ回路に保持させる制御を行うことが可能であって、
上記周辺モジュールは、上記複数のレジスタの少なくとも一つのレジスタの値が変更されたことを示す検出信号を上記制御回路に出力するものであり、
上記制御回路は、上記検出信号に応答して上記少なくとも一つのレジスタで変更された値の読み出し動作を実行するものであり、
上記制御回路は、上記中央処理ユニットによる上記周辺モジュールに対するライトアクセス時には、当該ライトアクセス動作の終了まで上記検出信号に応答して上記少なくとも一つのレジスタで変更された値の読み出し動作を保留するものであるデータ処理装置。
At least with the central processing unit,
A first bus connected to the central processing unit;
A second bus connected to the peripheral module;
A control circuit that is provided between the first bus and the second bus and bridges signals of the two buses;
A peripheral module connected to the second bus, accessed by the central processing unit via the control circuit, and having a plurality of registers;
A data processing device having a memory circuit connected to the second bus,
The peripheral module operates with an operation clock having a lower frequency than the operation clock of the central processing unit.
The control circuit can perform control to read the value of the register of the peripheral module and hold it in the memory circuit,
The peripheral module outputs a detection signal indicating that the value of at least one of the plurality of registers has been changed to the control circuit,
The control circuit executes a read operation of a value changed in the at least one register in response to the detection signal,
When the central processing unit performs a write access to the peripheral module, the control circuit suspends the read operation of the value changed in the at least one register in response to the detection signal until the end of the write access operation. A data processing device.
上記制御回路は、上記周辺モジュールからの上記検出信号に応答して、上記値が変更された上記少なくとも一つのレジスタのアドレスを生成して上記読み出し動作を実行して、上記読み出し動作により読み出された値を上記メモリ回路に保持させるものである請求項1に記載のデータ処理装置。  In response to the detection signal from the peripheral module, the control circuit generates an address of the at least one register whose value has been changed, executes the read operation, and is read by the read operation. The data processing apparatus according to claim 1, wherein the memory circuit holds the stored value. 上記周辺モジュールは、第1と第2の周辺モジュールを含み、
上記制御回路は、上記第1と第2の周辺モジュールから同時に上記検出信号が生成された時には、所定の優先順位に従って値が変更されたレジスタの読み出し動作を行うものである請求項2に記載のデータ処理装置。
The peripheral modules include first and second peripheral modules,
The control circuit according to claim 2, wherein when the detection signal is simultaneously generated from the first and second peripheral modules, the control circuit performs a read operation of a register whose value is changed according to a predetermined priority. Data processing device.
上記複数のレジスタは、データを保持するデータレジスタである請求項3に記載のデータ処理装置。  The data processing apparatus according to claim 3, wherein the plurality of registers are data registers that hold data. 少なくとも上記中央処理ユニットと、上記周辺モジュールと、上記メモリ回路と、上記制御回路とが1個の半導体チップ上に形成されてなることを特徴とする請求項1に記載のデータ処理装置。  2. The data processing apparatus according to claim 1, wherein at least the central processing unit, the peripheral module, the memory circuit, and the control circuit are formed on one semiconductor chip. 上記周辺モジュールは、シリアルインタフェースと、アナログ/ディジタル変換回路とを含むものである請求項5に記載のデータ処理装置。  6. The data processing apparatus according to claim 5, wherein the peripheral module includes a serial interface and an analog / digital conversion circuit.
JP18164099A 1999-06-28 1999-06-28 Data processing device Expired - Fee Related JP4176920B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18164099A JP4176920B2 (en) 1999-06-28 1999-06-28 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18164099A JP4176920B2 (en) 1999-06-28 1999-06-28 Data processing device

Publications (2)

Publication Number Publication Date
JP2001014259A JP2001014259A (en) 2001-01-19
JP4176920B2 true JP4176920B2 (en) 2008-11-05

Family

ID=16104302

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18164099A Expired - Fee Related JP4176920B2 (en) 1999-06-28 1999-06-28 Data processing device

Country Status (1)

Country Link
JP (1) JP4176920B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678758B2 (en) * 2001-02-05 2004-01-13 Fujitsu Limited Dynamic queuing for read/write requests
KR100464257B1 (en) * 2002-02-26 2005-01-03 엘지산전 주식회사 Three step communication buffer of communication unit
JP2009289232A (en) * 2008-06-02 2009-12-10 Renesas Technology Corp Semiconductor integrated circuit

Also Published As

Publication number Publication date
JP2001014259A (en) 2001-01-19

Similar Documents

Publication Publication Date Title
US7093153B1 (en) Method and apparatus for lowering bus clock frequency in a complex integrated data processing system
KR100279780B1 (en) Microcomputer and microcomputer system
US5822779A (en) Microprocessor-based data processing apparatus that commences a next overlapping cycle when a ready signal is detected not to be active
US6944686B2 (en) Data transfer control circuit with terminal sharing
JP5102789B2 (en) Semiconductor device and data processor
JPH05307485A (en) Data processor
US5734927A (en) System having registers for receiving data, registers for transmitting data, both at a different clock rate, and control circuitry for shifting the different clock rates
JP2006171952A (en) Semiconductor integrated circuit device
US20040068590A1 (en) Data processor
JP4176920B2 (en) Data processing device
JP2002304310A (en) Semiconductor integrated circuit
US6006288A (en) Method and apparatus for adaptable burst chip select in a data processing system
EP0667576A1 (en) A data processor and a trace circuit using the data processor
JP3701100B2 (en) Clock generation circuit and clock generation method
Feng et al. A SoC architecture compatible with Cortex-M4
JP2002342266A (en) Data processor
US5875482A (en) Method and apparatus for programmable chip select negation in a data processing system
US6016551A (en) Method and apparatus for masking and unmasking a clock signal in an integrated circuit
JP2002278753A (en) Data processing system
JP2001109643A (en) Microprocessor incorporated with debugging function
Set et al. Independant CPU Frequency from USB Frequency–Watchdog Timer, Real-Time Clock Timer• Universal Serial Bus (USB)–Device 2.0 Full Speed and On-The-Go (OTG) Low Speed and Full Speed–Flexible End-Point Configuration and Management with Dedicated DMA Channels
JPH08137784A (en) Information processor
JP2004213142A (en) Semiconductor integrated circuit device
JP2002073533A (en) Data processor
JP2003316751A (en) Plotting processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050714

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080702

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080729

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080821

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

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120829

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120829

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130829

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees