(57)【特許請求の範囲】
【請求項１】
外部からの第１のデータと前記第１のデータよりも低い伝送速度で対応可能な第２のデータを中央処理装置を介することなくデータ転送を行う２チャンネルのＤＭＡコントローラを内蔵したマイクロコンピュータにおいて、
一定の時間間隔で存在する一定の時間長を有する特定の区間では中央処理装置が待機状態となるとともに、該特定の区間でのみＤＭＡコントローラによるデータ転送が可能となることを特徴とするマイクロコンピュータであって、
前記中央処理装置と前記ＤＭＡコントローラのいずれか一方が動作状態であるときには他方が待機状態となるものであり、かつ、
前記ＤＭＡコントローラによるデータ転送の際にデータを一時的に格納するためのメモリは、前記第１のデータを一時的に格納するとともに、リードとライトのデータ転送速度と前記ＤＭＡコントローラに入力されるクロック信号のサイクルによって決定される前記ＤＭＡコントローラの動作可能時間に応じた最小の容量とし、前記第２の外部データとはデータのやり取りを行わないことを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
中央処理装置（以下、「ＣＰＵ」と略記する）を介することなくデータ転送を行うＤＭＡコントローラを備えたマイクロコンピュータに関するものである。
【０００２】
【従来の技術】
ＤＭＡコントローラによるデータ転送の方式としては、ＤＭＡコントローラがＣＰＵに対してホールド要求等を出力して、システムバスの使用権をＣＰＵに放棄させ、一連のデータ転送が終了するまでシステムバスをＤＭＡコントローラが使用するバースト方式と、ＣＰＵがシステムバスを使用しない期間にＤＭＡコントローラによるデータ転送を行うサイクルスチール方式とが知られている。
【０００３】
【発明が解決しようとする課題】
しかしながら、いずれの方式においても、ＤＭＡコントローラによるデータ転送を行う際には、ＣＰＵの動作速度が不規則に変化するので、ＣＰＵでは時間制御を正確に行うことが困難であるとともに、実時間処理を行うことはできなかった。また、ＤＭＡコントローラによるデータ転送の観点からすると、ＣＰＵによりバスが支配されている期間が不定であるため、ＣＰＵによりバスが長期間使用された場合に備えて、データを一時的に格納するためのメモリの容量をある程度大きくしなければならなかった。
【０００４】
そこで、本発明は、ＣＰＵでの正確な時間制御を容易に行うことができ、また、ＣＰＵによる実時間処理を常時行うことができ、さらに、ＤＭＡコントローラによるデータ転送の際にデータを一時的に格納するためのメモリの容量を最小にすることができるマイクロコンピュータを提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記の目的を達成するため、本発明では、中央処理装置を介することなくデータ転送を行うＤＭＡコントローラを内蔵したマイクロコンピュータにおいて、一定の時間間隔で存在する一定の時間長を有する特定の区間では中央処理装置が待機状態となるとともに、該特定の区間でのみＤＭＡコントローラによるデータ転送が可能となるようにしている。
【０００６】
この構成により、ＤＭＡコントローラによるデータ転送の有無にかかわらず、ＣＰＵは一定の動作速度となるとともに、見かけ上、この一定の動作速度で常時動作することができるようになる。また、ＤＭＡコントローラは、ＣＰＵの動作の影響を受けることなく、見かけ上、一定の動作速度でデータ転送を常時行うことができるようになる。
【０００７】
【発明の実施の形態】
以下に、本発明の実施形態を図面を参照しながら説明する。図１は本発明の一実施形態であるマイクロコンピュータ１００のブロック図である。１はＣＰＵ、２はＤＭＡコントローラ、３は調停回路、４はマルチプレクサ、５はＲＡＭ、６はＲＯＭ等の他の周辺回路、７はＵＳＢのシリアルインターフェースエンジン（ＳＩＥ）、８はデータを一時待避させるためのキュー、９はキューの制御回路、１０はＦＩＦＯメモリ、１１はフロッピーディスクコントローラ（以下、「ＦＤＣ」と略記する）である。
【０００８】
ＣＰＵ１、ＤＭＡコントローラ２、及び、調停回路３には共通のクロック信号ＣＬＫが同期クロックとして与えられている。尚、本実施形態では、ＣＰＵ１では同期クロックの２サイクルが１つの命令サイクルとなり、また、ＤＭＡコントローラ２によるデータ転送は同期クロックの２サイクルで１回行われるものとする。また、ＤＭＡコントローラ２は、第１チャンネルと第２チャンネルとの２チャンネル構成となっている。
【０００９】
ＵＳＢホスト２００から受信したデータはシリアルインターフェース７を介してキュー８に書き込まれる。また、ＵＳＢホスト２００へのデータはキュー８に書き込まれた後、シリアルインターフェース７を介して送信される。制御回路９はキュー８を制御するとともに、ＵＳＢホスト２００とＲＡＭ５との間でのデータ転送を行う際にはＤＭＡコントローラ２にリクエスト信号Ｔｘ／Ｒｘ−ＲＥＱを送信する。ＤＭＡコントローラ２はリクエスト信号Ｔｘ／Ｒｘ−ＲＥＱを受けると、第１チャンネル側がキュー８とＲＡＭ５との間でのデータ転送を開始する。尚、キュー８とＲＡＭ５との間で転送されるデータはＦＩＦＯメモリ１０に一時的に格納されるようになっている。
【００１０】
ＦＤＣ１１は、フロッピーディスクドライブ（以下、「ＦＤＤ」と略記する）３００を制御するとともに、ＦＤＤ３００とＲＡＭ５との間でのデータ転送を行う際にはＤＭＡコントローラ２にリクエスト信号ＦＤＣ−ＲＥＱを送信する。ＤＭＡコントローラ２はリクエスト信号ＦＤＣ−ＲＥＱを受けると、第２チャンネル側がＦＤＣ１１とＲＡＭ５との間でのデータ転送を開始する。
【００１１】
調停回路３は、ウエイト信号ＷＡＩＴをＣＰＵ１及びＤＭＡコントローラ２に与えるとともに、マルチプレクサ４にバス切り替え信号ＢＣを与える。ＣＰＵ１はウエイト信号ＷＡＩＴがハイレベルであるときに待機状態となり、一方、ＤＭＡコントローラ２はウエイト信号ＷＡＩＴがローレベルであるときに待機状態となる。
【００１２】
マルチプレクサ４は、システムバスの使用権をＣＰＵ１に与えるのか、それとも、ＤＭＡコントローラ２に与えるのかを調停回路３からのバス切り替え信号ＢＣに応じて切り替える。具体的には、バス切り替え信号ＢＣがハイレベルであるときにはＤＭＡコントローラ２が接続されたバスであるＤＭＡバスＢＵＳ−ＤＭＡを、一方、バス切り替え信号ＢＣがローレベルであるときにはＣＰＵ１が接続されたバスであるＣＰＵバスＢＵＳ−ＣＰＵを、システムバスＳＹＳ−ＢＵＳに接続する。
【００１３】
調停回路３から出力される各信号のタイミングチャートを図２に示す。ウエイト信号ＷＡＩＴ及びバス切り替え信号ＢＣは、クロック信号ＣＬＫの各４サイクルＣ１、Ｃ２、…毎に前半の２サイクルＣ１Ａ、Ｃ２Ａ、…ではハイレベルとなり、一方、後半の２サイクルＣ１Ｂ、Ｃ２Ｂ、…ではローレベルとなる。
【００１４】
以上より、ＣＰＵ１及びＤＭＡコントローラ２の状態、並びに、システムバスＳＹＳ−ＢＵＳの使用権は図２に示すように推移する。すなわち、クロック信号ＣＬＫの各４サイクルＣ１、Ｃ２、…内の前半の２サイクルＣ１Ａ、Ｃ２Ａ、…では、ＣＰＵ１が待機状態、ＤＭＡコントローラ２が動作可能状態になるとともに、システムバスＳＹＳ−ＢＵＳの使用権がＤＭＡコントローラ２に与えられ、一方、後半の２サイクルＣ１Ｂ、Ｃ２Ｂ、…では、ＣＰＵ１が動作可能状態、ＤＭＡコントローラ２が待機状態になるとともに、システムバスＳＹＳ−ＢＵＳの使用権がＣＰＵ１に与えられる。
【００１５】
したがって、クロック信号ＣＬＫの各４サイクルＣ１、Ｃ２、…内の前半の２サイクルＣ１Ａ、Ｃ２Ａ、…でのみＤＭＡコントローラ２によるデータ転送が可能となり、また、後半の２サイクルＣ１Ｂ、Ｃ２Ｂ、…でのみＣＰＵ１が動作可能となる。
【００１６】
これにより、ＤＭＡコントローラ２によるデータ転送の有無にかかわらず、ＣＰＵ１はクロック信号ＣＬＫの４サイクルが１つの命令サイクルとなる一定の動作速度となるので、ＣＰＵ１では正確な時間制御を容易に行うことができるようになる。また、ＣＰＵ１は、見かけ上、上記一定の動作速度で常時動作することができるので、実時間制御を常時行うことができるようになる。
【００１７】
また、ＤＭＡコントローラ２によるデータ転送を、ＣＰＵ１の動作の影響を受けることなく、見かけ上、クロック信号ＣＬＫの４サイクルでデータ転送を１回行う一定の転送速度で常時行うことができるようになる。
【００１８】
さて、従来のシステムでは、ＵＳＢホスト２００とＲＡＭ５との間でのＤＭＡコントローラ２によるデータ転送を行う際には、ＣＰＵ１によるＦＤＤ３００の実時間処理など、より順位の高い処理でシステムバスＳＹＳ−ＢＵＳがロックされている期間に、キュー８のオーバーフローやアンダーフローを起こさないようにするために、データを一時的に格納するためのＦＩＦＯメモリ１０を８〜１２８バイトの容量としておき、ＦＩＦＯメモリ１０がフルになると一括で転送するようになっていた。
【００１９】
これに対して、本実施形態のシステムでは、クロック信号ＣＬＫの周波数をｆ[MHz]とすると、ＤＭＡコントローラ２によるデータ転送は、リードとライトが同時に進行する場合には、ｆ／２[bps]のデータ転送速度で常時確保されている。ＵＳＢ１．１の規格では、アップ／ダウンのビットストリームは最大で１２[Mbps]であるので、クロック信号ＣＬＫの周波数ｆを２４[MHz]以上にしておけば、ＦＩＦＯメモリ１０の容量を最小の２バイトとすることができる。
【００２０】
ＦＤＤ３００とＲＡＭ５との間でのデータ転送は、通常、ＤＭＡコントローラ２の制御により行われる。ＦＤＤ３００のデータ転送速度を１[Mbps]、ＦＩＦＯメモリを１６段とすると、ＦＤＤ３００とＲＡＭ５との間でのビットストリームは６２．５[kbps]である。これは、上述したように、ＵＳＢ１．１の規格に対応させてクロック信号ＣＬＫの周波数を設定しておけば、十分処理が可能な速度である。
【００２１】
尚、上記実施形態では、ＣＰＵ１、ＤＭＡコントローラ２、及び、調停回路３に共通のクロック信号ＣＬＫを同期クロックとして与えるようになっているが、このようにする代わりに、ＤＭＡコントローラ２にはクロック信号ＣＬＫの周波数をｎ倍にして同期クロックとして与えることによって、ＤＭＡコントローラ２によるデータ転送速度を向上させるようにしてもよい。例えば、ｎ＝２としておけば、クロック信号ＣＬＫの各４サイクル毎にＤＭＡコントローラ２によるデータ転送を２回行うことができるので、ＤＭＡコントローラ２にクロック信号ＣＬＫをそのまま同期クロックとして与えた場合におけるバースト方式でのデータ転送速度を得ることができる。
【００２２】
また、本発明は上記実施形態に限定されるものではなく、ＣＰＵが１つの命令サイクルに要する同期クロックのサイクル数の整数倍に相当する一定の時間間隔で存在する、ＤＭＡコントローラによる１回のデータ転送に要する同期クロックのサイクル数の整数倍に相当する一定の時間長を有する特定の区間ではＣＰＵが待機状態となるとともに、該特定の区間でのみＤＭＡコントローラによるデータ転送が可能となるようになっていればよい。また、外部バスマスタを使用する場合等、ＣＰＵ及びＤＭＡコントローラが待機状態になるときには、システムバスを用いない処理を実行していても構わない。
【００２３】
【発明の効果】
以上説明したように、本発明によれば、ＤＭＡコントローラによるデータ転送の有無にかかわらず、ＣＰＵの動作速度は一定となるので、ＣＰＵでは正確な時間制御を容易に行うことができるようになる。また、ＣＰＵは、見かけ上、一定の動作速度で常時動作することができるので、実時間制御を常時行うことができるようになる。また、ＤＭＡコントローラによるデータ転送を、ＣＰＵの動作の影響を受けることなく、見かけ上、一定の転送速度で常時行うことができるようになるので、ＤＭＡコントローラによるデータ転送の際にデータを一時的に格納するためのメモリを最小の容量とすることができる。
【図面の簡単な説明】
【図１】  本発明の一実施形態であるマイクロコンピュータを備えたシステムのブロック図である。
【図２】  調停回路から出力されるウエイト信号及びバス切り替え信号、ＣＰＵ及びＤＭＡコントローラの状態、並びに、システムバスの使用権の推移を示すタイミングチャートである。
【符号の説明】
１    ＣＰＵ
２    ＤＭＡコントローラ
３    調停回路
４    マルチプレクサ
５    ＲＡＭ
６    他の周辺回路
７    シリアルインターフェース
８    キュー
９    制御回路
１０    ＦＩＦＯメモリ
１１    フロッピーディスクコントローラ
１００    マイクロコンピュータシステム
２００    ＵＳＢホスト
３００    フロッピーディスクドライブ
【図１】
0004097377.tif 000002
【図２】
0004097377.tif 000003