(57)【特許請求の範囲】
【請求項１】
接続されたＤＲＡＭに対して第１のストローブ信号を出力する第１端子と第２のストローブ信号を出力する第２端子とアドレスを転送するアドレス端子とを有し、プログラムに基づき前記第１及び第２のストローブ信号を所定のタイミングで活性化すると共に前記ＤＲＡＭに対するアドレスを転送して前記ＤＲＡＭにアクセスを実行させる機能と、前記プログラムに基づき前記ＤＲＡＭに対して前記アクセスを実行させる場合とは異なったタイミングで前記第１及び第２のストローブ信号を活性化し前記ＤＲＡＭにセルフリフレッシュを行わせる機能とを有するマイクロコントローラにおいて、
前記マイクロコントローラの内部回路に対してクロックを供給して通常動作モードを設定し、前記クロックの供給を停止して前記内部回路における消費電力削減モードを設定すると共に前記クロックの供給を停止するときにはクロック停止要求信号を出力し、前記クロック停止要求信号に対応するクロック停止許諾信号が与えられたときには前記クロック停止要求信号の出力を停止するクロック制御回路と、
前記プログラムによって設定された第１の状態または第２の状態を前記クロックに同調して受け取って保持するレジスタと、
前記クロック停止要求信号を入力し且つ前記クロック停止許諾信号が未入力のときには、前記レジスタの保持する状態を強制的に第１の状態に設定し、その後、前記クロック停止要求信号及び前記クロック停止許諾信号を入力したときには、前記レジスタの保持する状態を第２の状態に設定するモード設定回路と、
アドレスバスに接続され、前記アドレスバス上で前記ＤＲＡＭに対するアドレスを検出した場合にはアクセス要求信号を発生するデコーダと、
前記レジスタと前記デコーダとに接続され、前記クロック制御回路から前記クロック停止要求信号を入力し、且つ前記レジスタから前記第１の状態を入力しているときには、前記ＤＲＡＭがセルフリフレッシュを行うためのセルフリフレッシュ状態を設定する前記第１及び第２のストローブ信号を送出した後に、前記クロック停止要求信号に応答した前記クロック停止許諾信号を出力し、前記レジスタの保持状態が前記第１の状態から前記第２の状態に変化したときには、前記クロック停止許諾信号の出力を停止すると共に、前記第１及び第２のストローブ信号を変化させて前記ＤＲＡＭにおけるセルフリフレッシュを解除し、前記レジスタから前記第２の状態を入力している状態で前記デコーダから前記アクセス要求信号を入力した場合には、前記ＤＲＡＭがアクセスを行うように前記第１及び第２のストローブ信号を活性化するストローブ信号制御回路と、
前記ストローブ信号制御回路が前記第１及び第２のストローブ信号を活性化して前記ＤＲＡＭにアクセスを行わせるときに、前記アドレスバス上のアドレスを前記アドレス端子を介して前記ＤＲＡＭへ転送するアドレス転送手段とを、備えたことを特徴とするマイクロコントローラ。
【請求項２】
前記モード設定回路は、論理回路により構成されていることを特徴とする請求項１記載のマイクロコントローラ。
【請求項３】
前記デコーダに接続され、前記デコーダが前記アクセス要求信号を発生したときには、前記レジスタの保持する状態を強制的に前記第２の状態に設定する状態設定回路を設けたことを特徴とする請求項１または２記載のマイクロコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＤＲＡＭ（Dynamic Random Access Memory）を制御するＤＲＡＭコントローラを備えたマイクロコントローラに関するものである。
【０００２】
【従来の技術】
従来、この分野の技術としては、例えば、次のような文献に記載されるものがあった。
文献；株式会社日立マイコンシステム編集“ＳＨ７６０４ハードウエアマニュアル”第１版（平６−９），株式会社日立製作所発行、P/160-161
上記文献には、ＤＲＡＭの行うセルフリフレッシュを制御する方法等が示されている。
図２は、従来のＤＲＡＭコントローラを内蔵したマイクロコントローラの一例を示す構成ブロック図である。
【０００３】
このマイクロコントローラは、ＣＰＵ（Central Processor Unit）１と、クロックコントローラ２と、Ｒ０Ｍ（Read Only Memory）３と、ＤＲＡＭコントローラ４と、バスコントローラ５とを備え、これらがアドレスバスＢ１及びデータバスＢ２によって互いに接続されている。ＣＰＵ１は、ＲＯＭ３上のプログラムを読み出して実行するものである。クロックコントローラ２は、ＣＰＵ１、ＲＯＭ３、ＤＲＡＭコントローラ４、及びバスコントローラ５に対してクロックＣＫを与えるものであるが、該ＣＰＵ１からの命令により、消費電力削減のために該クロックＣＫの供給を停止する機能を有している。ＤＲＡＭコントローラ４は、このマイクロコントローラに直接接続されたＤＲＡＭに対し、外部バスＢ３を経由してアクセスを行なう機能を持つと共に、ＤＲＡＭに対して定期的にリフレッシュを行う機能を有している。さらに、ＤＲＡＭコントローラ４は、ＣＰＵ１からの信号write を受けてＤＲＡＭをセルフリフレッシュ状態にする機能を有している。バスコントローラ５は、それらを結ぶデータバスＢ２及び外部バスＢ３の制御を行うものである。
【０００４】
図３は、図２中のＤＲＡＭコントローラ４の要部を示す構成ブロック図である。
ＤＲＡＭコントローラ４は、アドレスバスＢ１に接続されたアドレスデコーダ（デコーダ）４ａと、２入力のセレクタ４ｂとを備えている。アドレスデコーダ４ａの出力側には、ストローブ信号制御回路４ｃが接続され、セレクタ４ｂの出力側には、遅延型フリップフロップ（ＤＦＦ）で構成されたセルフリフレッシュストローブ信号制御レジスタ４ｄが接続されている。レジスタ４ｄの出力端子はストローブ信号制御回路４ｃに接続されると共に、セレクタ４ｂの一方の入力端子に帰還接続されている。セレクタ４ｂは、ＣＰＵ１からの信号write を選択信号とし、レジスタ４ｄから帰還されたデータＤＴ4dまたはＣＰＵ１から与えられたデータＤＴ1 を選択し、選択したデータをレジスタ４ｄに出力する構成になっている。ストローブ信号制御回路４ｃは、データＤＴ4dとアドレスデコーダ４ａの出力信号とに応じたストローブ信号ＲＡＳ，ＣＡＳを出力するものである。
次に、従来のマイクロコントローラの動作を説明する。
【０００５】
ＤＲＡＭに対してアクセスを行う場合、ＣＰＵｌがＤＲＡＭに対応するアドレスをアドレスバスＢ１に出力する。ＤＲＡＭコントローラ４中のアドレスデコーダ４ａは、アドレスをデコードして監視している。アドレスのデコードの結果、ＤＲＡＭにアクセスする必要があると判断した場合、アドレスデコーダ４ａはアクセス要求acsREQをストローブ信号制御回路４ｃに送出する。アクセス要求acsREQを受けてストローブ信号制御回路４ｃは、ＤＲＡＭがアクセスを行えるようにストローブ信号ＲＡＳを先に活性化し（アサート状態に設定する）、続いてストローブ信号ＣＡＳをアサート状態にする。これにより、ＤＲＡＭにアクセスが指示される。また、この時、バスコントローラ５は、アドレスバスＢ１上のＤＲＡＭに対するアドレスを２回に別けて外部バスＢ３を介して出力する。このようにしてＤＲＡＭのアクセスを実行する。
【０００６】
ＤＲＡＭをセルフリフレッシュを行うセルフリフレッシュ状態にする場合にも、ＤＲＡＭコントローラ４は、ストローブ信号ＲＡＳ，ＣＡＳを用いてＤＲＡＭに指示する。この場合、ＣＰＵｌが信号write に“１”を示すと共に、データＤＴ1として例えば“Ｈ”を示す。信号write が“１”のとき、セレクタ４ｂはデータＤＴ1を選択してレジスタ４ｄに与える。レジスタ４ｄはクロックＣＫに同調して“Ｈ”のデータを取り込む。即ち、レジスタ４ｄには“Ｈ”のデータが書き込まれる。レジスタ４ｄは書き込まれたデータを保持して、ストローブ信号制御回路４ｃに与える。ストローブ信号制御回路４ｃは、ＤＲＡＭがセルフリフレッシュを行うように、ストローブ信号ＲＡＳ，ＣＡＳをアサートにしてＤＲＡＭに出力する。つまり、ストローブ信号ＣＡＳを先にアサートにしてストローブ信号ＲＡＳをアサートにする。
これとは逆に、ＤＲＡＭをセルフリフレッシュ状態から通常動作状態に復帰させる場合には、ＣＰＵ１からのデータＤＴ1を“Ｌ”とし、レジスタ４ｄにセルフリフレッシュ状態解除のための“Ｌ”のデータを書き込むことによって行なわれる。
【０００７】
一方、マイクロコントローラが、クロックを停止して消費電力削減モードに移行する手順は、まず最初にＣＰＵ１の命令（信号write を“１”に設定すると共に、データＤＴ1を“Ｈ”にすること) により、ＤＲＡＭコントローラ４に対してＤＲＡＭがセルフリフレッシュ状態になるように、レジスタ４ｄに“Ｈ”のデータを書き込み、該ＤＲＡＭがセルフリフレッシュを行うように、ストローブ信号ＲＡＳ，ＣＡＳをアサートにする。その後、ＣＰＵ１の命令により、クロックコントローラ２に対してクロックＣＫの供給を停止させ、消費電力削減モードヘの移行を完了する。
マイクロコントローラが、クロックＣＫの供給を再開して消費電力削減モードから通常動作モードに移行する手順は、割り込み等の発生によりクロックコントローラ２がクロックＣＫの供給を再開した後、ＣＰＵｌから命令（信号write を“１”に設定すると共に、データＤＴ1を“Ｌ”にする）を出し、ＤＲＡＭコントローラ４に対してＤＲＡＭが通常動作状態になるように、レジスタ４ｄにセルフリフレッシュ動作モード解除のための“Ｌ”のデータを書き込み、ストローブ信号を解除させる。
【０００８】
【発明が解決しようとする課題】
しかしながら、従来のマイクロコントローラでは、次の（１）〜（３）ような課題があった。
（１）  マイクロコントローラの動作モードが消費電力削減モードでなく通常動作モードで動作している状態で、ＤＲＡＭがセルフリフレッシュを行っている最中に、そのＤＲＡＭにアクセスさせようとすると、該ＤＲＡＭへのデータの書き込みやＤＲＡＭからのデータの読み出しが正しく行なわれず、その後のマイクロコントローラの動作が保証されなくなる。これを防ぐためには、ＤＲＡＭにアクセスさせる前に、必ずセルフリフレッシュ状態からＤＲＡＭを通常状態に戻す命令を実行し、その後にＤＲＡＭにアクセスする必要があった。
（２）  マイクロコントローラが消費電力削減モードに移行する際にＤＲＡＭをセルフリフレッシュ状態にする場合において、ＤＲＡＭコントローラ４に対してＤＲＡＭがセルフリフレッシュを行うようなストローブ信号ＲＡＳ，ＣＡＳを発生させるためのＣＰＵ１の命令を行なわずに、消費電力削減モードへの移行命令だけを行なうと、ＤＲＡＭがセルフリフレッシュを行わず、ＤＲＡＭの保持するデータが破壊されてしまう。これを防ぐためには、プログラムによって、必ず、クロックＣＫが停止される前にＤＲＡＭがセルフリフレッシュ状態になるようなストローブ信号ＲＡＳ，ＣＡＳを発生させる必要があった。
【０００９】
（３）  マイクロコントローラを消費電力削減モードから通常動作モードに復帰させてＤＲＡＭを通常状態にする場合、即ち、外部割り込み等によってクロックコントローラ２がクロックＣＫの供給を再開し、消費電力削減モードから通常動作モードに移行する場合には、ＤＲＡＭのセルフリフレッシュ状態を通常動作状態に戻す必要がある。このとき、ＣＰＵ１の命令によってＤＲＡＭコントローラ４に対してＤＲＡＭが通常動作状態になるように、レジスタ４ｄに、セルフリフレッシュを解除するためのデータ“Ｌ”の書き込みを行なわないと、ＤＲＡＭは、セルフリフレッシュ状態のままになる。よって、その後のＤＲＡＭアクセスが正しく行なわれない。これを防ぐために、プログラムによって、必ずクロックＣＫの供給を再開するとその直後に、ＤＲＡＭを通常動作状態に戻す必要があった。
以上の（１）〜（３）のように、従来のマイクロコントローラではプログラムの負担が大きく、プログラムが複雑になるという課題があった。
【００１０】
【課題を解決するための手段】
前記課題を解決するために、本発明は、接続されたＤＲＡＭに対して第１のストローブ信号を出力する第１端子と第２のストローブ信号を出力する第２端子とアドレスを転送するアドレス端子とを有し、プログラムに基づき前記第１及び第２のストローブ信号を所定のタイミングで活性化すると共に前記ＤＲＡＭに対するアドレスを転送して前記ＤＲＡＭにアクセスを実行させる機能と、前記プログラムに基づき前記ＤＲＡＭに対して前記アクセスを実行させる場合とは異なったタイミングで前記第１及び第２のストローブ信号を活性化し前記ＤＲＡＭにセルフリフレッシュを行わせる機能とを有するマイクロコントローラにおいて、クロック制御回路と、レジスタと、モード設定回路と、デコーダと、ストローブ信号制御回路と、アドレス転送手段とを備えている。
【００１１】
前記クロック制御回路は、前記マイクロコントローラの内部回路に対してクロックを供給して通常動作モードを設定し、前記クロックの供給を停止して前記内部回路における消費電力削減モードを設定すると共に前記クロックの供給を停止するときにはクロック停止要求信号を出力し、前記クロック停止要求信号に対応するクロック停止許諾信号が与えられたときには前記クロック停止要求信号の出力を停止する回路である。前記レジスタは、前記プログラムによって設定された第１の状態または第２の状態を前記クロックに同調して受け取って保持するものである。
【００１２】
前記モード設定回路は、前記クロック停止要求信号を入力し且つ前記クロック停止許諾信号が未入力のときには、前記レジスタの保持する状態を強制的に第１の状態に設定し、その後、前記クロック停止要求信号及び前記クロック停止許諾信号を入力したときには、前記レジスタの保持する状態を第２の状態に設定する回路である。前記デコーダは、アドレスバスに接続され、前記アドレスバス上で前記ＤＲＡＭに対するアドレスを検出した場合にはアクセス要求信号を発生するものである。
【００１３】
前記ストローブ信号制御回路は、前記レジスタと前記デコーダとに接続され、前記クロック制御回路から前記クロック停止要求信号を入力し、且つ前記レジスタから前記第１の状態を入力しているときには、前記ＤＲＡＭがセルフリフレッシュを行うためのセルフリフレッシュ状態を設定する前記第１及び第２のストローブ信号を送出した後に、前記クロック停止要求信号に応答した前記クロック停止許諾信号を出力し、前記レジスタの保持状態が前記第１の状態から前記第２の状態に変化したときには、前記クロック停止許諾信号の出力を停止すると共に、前記第１及び第２のストローブ信号を変化させて前記ＤＲＡＭにおけるセルフリフレッシュを解除し、前記レジスタから前記第２の状態を入力している状態で前記デコーダから前記アクセス要求信号を入力した場合には、前記ＤＲＡＭがアクセスを行うように前記第１及び第２のストローブ信号を活性化する回路である。
【００１４】
前記アドレス転送手段は、前記ストローブ信号制御回路が前記第１及び第２のストローブ信号を活性化して前記ＤＲＡＭにアクセスを行わせるときに、前記アドレスバス上のアドレスを前記アドレス端子を介して前記ＤＲＡＭへ転送するものである。
【００１５】
【発明の実施の形態】
［第１の実施形態］
図４は、本発明の第１の実施形態を示すマイクロコントローラの構成ブロック図である。
このマイクロコントローラは、プログラムを実行するＣＰＵ１０と、クロック制御回路であるクロックコントローラ２０と、該プログラムを格納したＲ０Ｍ３０と、ＤＲＡＭコントローラ４０と、アドレス転送手段であるバスコントローラ５０とを備え、これらがアドレスバスＢ１によって互いに接続されると共に、データバスＢ２によっても互いに接続されている。
マイクロコントローラの内部回路であるＣＰＵ１０、ＲＯＭ３０、ＤＲＡＭコントローラ４０、及びバスコントローラ５０には、クロックコントローラ２０からクロックＣＫが与えられる接続になっている。クロックコントローラ２０は、ＣＰＵ１０からの命令により、例えば消費電力削減のためにそのクロックＣＫの供給を停止する機能を有している。ＤＲＡＭコントローラ４０は、このマイクロコントローラに直接接続されたＤＲＡＭ６０に対して外部バスＢ３を経由してアクセスを行なうために、第１のストローブ信号ＲＡＳと第２のストローブ信号ＣＡＳとを第１の端子Ｔ１及び第２の端子Ｔ２からそれぞれ出力すると共に、該ストローブ信号ＲＡＳ，ＣＡＳとを用いて、ＤＲＡＭ６０をセルフリフレッシュさせる機能を有している。バスコントローラ５０は、それらを結ぶデータバスＢ２及び外部バスＢ３の制御を行うものである。外部バスＢ３はアドレス端子Ｔ３を介してＤＲＡＭ６０に接続されている。
【００１６】
図１は、本発明の第１の実施形態を示すマイクロコントローラ中のＤＲＡＭコントローラの要部を示す図であり、図４中のＤＲＡＭコントローラ４０が示されている。
ＤＲＡＭコントローラ４０は、アドレスバスＢ１に接続されたアドレスデコーダ（デコーダ）４１と、２入力のセレクタ４２とを備えている。アドレスデコーダ４１の出力側には、ストローブ信号制御回路４３が接続され、セレクタ４２の出力側には、遅延型フリップフロップ（ＤＦＦ）で構成されたセルフリフレッシュストローブ信号制御レジスタ４４が、接続されている。レジスタ４４の出力端子は、ストローブ信号制御回路４３に接続されると共に、状態設定回路である２入力のＡＮＤゲート４５の一方の入力端子に接続されている。
ＡＮＤゲート４５は、従来のマイクロコントローラにはなく新たに設けられたものであり、該ＡＮＤゲート４５の他方の入力端子には、アドレスデコーダ４１の出力信号を反転した信号が入力されるようになっている。ＡＮＤゲート４５の出力端子が、セレクタ４２の一方の入力端子に帰還接続されている。セレクタ４２の他方の入力端子には、ＣＰＵ１０から与えられたデータＤＴ10が入力されるようになっている。また、セレクタ４２は、ＣＰＵ１０から信号write が選択信号として与えられる構成になっている。
【００１７】
ストローブ信号制御回路４３の出力側に、端子Ｔ１，Ｔ２が設けられ、ＤＲＡＭ６０に対してアクセスを行うための２つストローブ信号ＲＡＳ，ＣＡＳが該端子Ｔ１，Ｔ２から出力される構成になっている。このストローブ信号ＲＡＳ，ＣＡＳの状態により、ＤＲＡＭ６０はアクセス可能な通常動作状態或いはセルフリフレッシュを行うセルフリフレッシュ状態に設定される。
次に、マイクロコントローラの動作を説明する。
ＤＲＡＭ６０に対してアクセスを行う場合、ＣＰＵ１０は、ＤＲＡＭ６０に対応するアドレスＡＤをアドレスバスＢ１に出力する。ＤＲＡＭコントローラ４０中のアドレスデコーダ４１は、アドレスＡＤをデコードして監視している。アドレスＡＤのデコードの結果、ＤＲＡＭ６０に対してアクセスする必要があると判断した場合、アドレスデコーダ４１はアクセス要求acsSREQ をストローブ信号制御回路４３に出力する。アクセス要求acsREQを受けてストローブ信号制御回路４３は、ストローブ信号ＲＡＳを先にアサートの“Ｌ”レベルに設定し，続いてストローブ信号ＣＡＳを“Ｌ”に設定する。これにより、ＤＲＡＭ６０にアクセスが指示される。また、この時、バスコントローラ５０は、ＤＲＡＭ６０に対するアドレスを分割して２度に分け、外部バスＢ３を介してＤＲＡＭ６０に与える。ＤＲＡＭ６０では、ストローブ信号ＲＡＳ，ＣＡＳとアドレスとに基づいてアクセスを行う。
【００１８】
このマイクロコントローラは、ストローブ信号ＲＡＳ，ＣＡＳの与えかたによってＤＲＡＭ６０をアクセス可能な通常動作状態にするか、セルフリフレッシュ状態にする。
図５は、図４のマイクロコントローラの動作例を示すタイムチャートであり、この図５を参照しつつ、ＤＲＡＭ６０を通常動作状態からセルフリフレッシュ状態に設定し、さらに、セルフリフレッシュ状態を解除してＤＲＡＭ６０にアクセスを実行させる場合の動作を説明する。
マイクロコントローラが、消費電力削減モードでなく通常動作モードで動作しているとき、ＤＲＡＭコントローラ４０中のレジスタ４４が、第２の状態である“Ｌ”を保持しているものとする。ＤＲＡＭ６０をセルフリフレッシュ状態にする場合、図５のように、ＣＰＵ１０はレジスタ４４宛のアドレスＡＤ44をアドレスバスＢ１に出力する。これと同時に、“１”の信号write と“Ｈ”のデータＤＴ10とがセレクタ４２に与えられ、セレクタ４２はデータＤＴ10を選択してレジスタ４４に与える。従って、レジスタ４４は第１の状態である“Ｈ”を保持して出力する。ストローブ信号制御回路４３は、レジスタ４４から与えられた“Ｈ”に基づき、ストローブ信号ＣＡＳを先にアサートの“Ｌ”に設定し、続いてストローブ信号ＲＡＳをアサートの“Ｌ”に設定する。これにより、ＤＲＡＭ６０はセルフリフレッシュ状態に設定される。
【００１９】
ＤＲＡＭ６０がセルフリフレッシュ状態のとき、ＣＰＵ１０がＤＲＡＭ６０に対応するアドレスＡＤ60をアドレスバスＢ１に出力すると、ＤＲＡＭコントローラ４０中のアドレスデコーダ４１は、アドレスＡＤ60が到来したことを検出してＤＲＡＭ６０に対してアクセスする必要があると判断する。そして、アドレスデコーダ４１は、“Ｈ”レベルのアクセス要求acsREQを発生する。アクセス要求acsREQが発生すると、ＡＮＤゲート４５の出力信号は“Ｌ”となり、レジスタ４４の保持状態は強制的に“Ｈ”から“Ｌ”に変化する。レジスタ４４の保持情報が“Ｌ”になることで、ストローブ信号制御回路４３は、ストローブ信号ＲＡＳ，ＣＡＳのレベルを“Ｈ”に戻し、ＤＲＡＭ６０のセルフリフレッシュ状態を解除して一旦通常動作状態に戻す。続いて、ストローブ信号制御回路４３は、ストローブ信号ＲＡＳを先にアサートの“Ｌ”レベルに設定すると共に、ストローブ信号ＣＡＳを“Ｌ”に設定する。これにより、ＤＲＡＭ６０にアクセスが指示され、ＤＲＡＭ６０のアクセスが行われる。
【００２０】
以上のように、この第１の実施形態では、アクセス要求acsREQが発生したときにレジスタ４４の保持情報を“Ｌ”に設定するＡＮＤゲート４５を設けたので、ＤＲＡＭ６０をセルフリフレッシュ状態から通常動作状態にするときに、ＣＰＵ１０からの命令でレジスタ４４に“Ｌ”を書き込んで保持させなくても通常動作状態に移行させることができる。そのため、ＣＰＵ１０の命令によってセルフリフレッシュ状態の解除をしなくても、正しいアクセスが可能になる。よって、例えばセルフリフレッシュ状態のＤＲＡＭ６０をアクセスするというプログラムにおいて、バグによって生じるマイクロコントローラの暴走や停止が防止できるという効果も得られる。
【００２１】
［第２の実施形態］
図６は、本発明の第２の実施形態を示すマイクロコントローラの構成ブロック図である。
このマイクロコントローラは、プログラムを実行するＣＰＵ７０と、クロック制御回路であるクロックコントローラ８０と、該プログラムを格納したＲ０Ｍ９０と、ＤＲＡＭコントローラ１００と、バスコントローラ１２０とを備え、これらが互いに、アドレスバスＢ１及びデータバスＢ２によって第１の実施形態と同様に接続されている。
マイクロコントローラの内部回路であるＣＰＵ７０、ＲＯＭ９０、ＤＲＡＭコントローラ１００、及びバスコントローラ１２０には、クロックコントローラ８０からクロックＣＫが与えられるようになっている。クロックコントローラ８０は、ＣＰＵ１０からの命令により、消費電力削減のためにそのクロックＣＫの供給を停止する機能を有している。このクロックコントローラ８０は、第１の実施形態とは異なり、クロックＣＫの供給を停止するときに、ＤＲＡＭコントローラ１００に対してアサートにしたクロック停止要求信号であるクロック供給停止信号stopREQ を与え、該クロック供給停止信号stopREQ を与えた結果の応答信号であるアサートされたクロック停止許諾信号であるクロック停止承諾信号stopACK が、該ＤＲＡＭコントローラ１００から入力される接続になっている。クロック停止承諾信号stopACK が入力されたときには、アサートにしたクロック供給停止信stopREQ の出力を停止するようになっている。
【００２２】
ＤＲＡＭコントローラ１００は、このマイクロコントローラの外部に直接接続されたＤＲＡＭ１３０に対し、外部バスＢ３を経由してアクセスを行なうために、第１及び第２のストローブ信号ＲＡＳ，ＣＡＳを出力する機能を持つと共に、該第１及び第２のストローブ信号ＲＡＳ，ＣＡＳでＤＲＡＭ１３０をセルフリフレッシュ状態に設定する機能を有している。バスコントローラ１２０は、それらを結ぶデータバスＢ１及び外部バスＢ３の制御を行うものである。ストローブ信号ＲＡＳ，ＣＡＳは、第１及び第２の端子Ｔ１，Ｔ２からＤＲＡＭ１３０に与えられる接続になっている。外部バスＢ３は、アドレスをＤＲＡＭ１３０に転送するものであり、該外部バスＢ３はアドレス端子Ｔ３を介してＤＲＡＭ１３０に接続されている。
図７は、図６中のＤＲＡＭコントローラ１００の要部を示す図である。
ＤＲＡＭコントローラ１００は、アドレスバスＢ１に接続されたアドレスデコーダ（デコーダ）１０１と、２入力のセレクタ１０２と、アドレスデコーダ１０１の出力側に接続されたストローブ信号制御回路１０３と、遅延型フリップフロップ（ＤＦＦ）で構成されたセルフリフレッシュストローブ信号制御レジスタ１０４とを備えている。さらに、このＤＲＡＭコントローラ１００には、第１の実施形態と同様に機能するＡＮＤゲート１０５と、第１の実施形態に対して新たに設けられたモード設定回路１１０とが設けられている。
【００２３】
ストローブ信号制御回路１０３は、第１の実施形態とは異なり、クロック供給停止信号stopREQ を入力し、該クロック供給停止信号stopREQ に対する応答信号であるクロック停止承諾信号stopACK を出力する構成になっている。モード設定回路１１０は、クロック供給停止信号stopREQ の反転信号とクロック停止承諾信号stopACK とを入力とするＮＡＮＤゲート１１１と、クロック供給停止信号stopREQとクロック停止承諾信号stopACK の反転信号とを入力とするＡＮＤゲート１１２とを、有している。
ＮＡＮＤゲート１１１の出力端子は、セレクタ１０２の出力端子に一方の入力端子が接続された２入力ＡＮＤゲート１１３の他方の入力端子に接続されている。ＡＮＤゲート１１２の出力端子は、レジスタ１０４の出力信号を一方の入力端子に入力する２入力ＯＲゲート１１４の他方の入力端子に接続されてる。ＡＮＤゲート１１３の出力端子が、レジスタ１０４の入力端子に接続されている。また、ＯＲゲート１１４の出力端子は、２入力ＡＮＤゲート１０５の一方の入力端子に接続されている。
【００２４】
ＡＮＤゲート１０５の他方の入力端子には、デコーダ１０１の出力するアクセス要求acsREQが入力される接続であり、該ＡＮＤゲート１０５の出力端子がセレクタ１０２の一方の入力端子に接続されている。セレクタ１０２の他方の入力端子には、ＣＰＵ７０からのデータＤＴ70が入力されるようになっている。また、このセレクタ１０２には、ＣＰＵ７０からの命令信号write が選択信号として入力されるようになっている。ストローブ信号制御回路１０３は、ＤＲＡＭ１３０に対してアクセスを行うための２つストローブ信号ＲＡＳ，ＣＡＳを出力する機能を有すると共に、アサートにしたクロック停止承諾信号stopACK を出力する機能を有している。ストローブ信号ＲＡＳ，ＣＡＳの状態により、ＤＲＡＭ１３０は通常動作状態或いはセルフリフレッシュ状態に設定される。
次に、このマイクロコントローラの動作を説明する。
図６のマイクロコントローラでは、クロックコントローラ８０にクロックＣＫを発生させて通常動作モードで動作する場合と、ＣＰＵ７０からの命令でクロックコントローラ８０からのクロック供給を停止させ消費電力削減モードに設定される場合とがある。
【００２５】
通常動作モードにおいては、ＣＰＵ７０、クロックコントローラ８０及びバスコントローラ１２０と、ＤＲＡＭコントローラ１００中のデコーダ１０１、セレクタ１０２、ストローブ信号制御回路１０３、レジスタ１０４及びＡＮＤゲート１０５とが、第１の実施形態のＣＰＵ１０、クロックコントローラ２０、バスコントローラ５０、デコーダ４１、セレクタ４２、ストローブ信号制御回路４３、レジスタ４４及びＡＮＤゲート４５と同様に動作する。そのため、ＤＲＡＭ１３０をセルフリフレッシュ状態に設定する動作、及び、そのセルフリフレッシュ状態を解除して通常動作状態に戻し、ＤＲＡＭ１３０に対してアクセスを行う動作は、図５と同様にして行われる。
図８は、図６のマイクロコントローラにおける消費電力削減モードへの移行とその解除を示すタイムチャートである。
【００２６】
マイクロコントローラが消費電力削減モードに移行する場合、ＤＲＡＭ１３０をセルフリフレッシュ状態に設定する。このセルフリフレッシュ状態を設定する前のマイクロコントローラが通常動作モードのときには、ＤＲＡＭコントローラ１００内のレジスタ１０４は、図８のように“Ｌ”を保持している。マイクロコントローラが消費電力削減モードに移行する直前に、クロックコントローラ８０は、クロック供給停止信号stopREQ を“Ｈ”レベルにする。これにより、ＡＮＤゲート１１２の出力も“Ｈ”になり、ＯＲゲート１１４の出力が“Ｈ”、ＡＮＤゲート１０５の出力が“Ｈ”になる。このとき、ＮＡＮＤゲート１１１の出力も“Ｈ”であり、レジスタ１０４には強制的に“Ｈ”が書き込まれる。レジスタ１０４はストローブ信号制御回路１０３に“Ｈ”の信号を出力する。ストローブ信号制御回路１０３は、ＤＲＡＭ１２０がセルフリフレッシュを行うにように、ストローブ信号ＣＡＳのレベルをアサートの“Ｌ”に設定し、ストローブ信号ＲＡＳを“Ｌ”に設定する。この後、ストローブ信号制御回路１０３は、クロック停止承諾信号stopACK をアサートにして“Ｈ”にする。“Ｈ”のクロック停止承諾信号stopACK はクロックコントローラ８０に与えられ、クロックコントローラ８０がクロック供給停止信号stopREQ のレベルを“Ｌ”にすると共にクロックＣＫの供給を停止する。このようにしてマイクロコントローラは、消費電力削減モードへの移行を完了する。消費電力削減モードへの移行が行われたときにＮＡＮＤ１１１の出力信号が“Ｌ”になる。
【００２７】
マイクロコントローラが、消費電力削減モードを解除して通常動作モードに移行する際には、ＤＲＡＭ１３０を通常動作状態に設定する。例えば、外部割り込みによつてクロックコントローラ８０がクロックＣＫの供給を再開すると、クロック停止要求信号stopREQ が“Ｌ”なので、ＮＡＮＤゲート１１１の出力信号は“Ｌ”であり、レジスタ１０４の保持状態は“Ｌ”に変化する。これを受けてストローブ信号制御回路１０３は、クロック停止承諾信号stopACK を“Ｈ”から“Ｌ”に変化させ、セルフリフレッシュ用のストローブ信号ＲＡＳ，ＣＡＳをネゲートの“Ｈ”にしてＤＲＡＭ１３０のセルフリフレッシュ状態を解除する。この動作によって、消費電力削減モードから通常動作モードに移行する。
【００２８】
以上のように、この第２の実施形態では、消費電力削減モードにするときに、クロックコントローラ８０がアサートにしたクロック供給停止信号stopREQ を出力する構成にすると共に、該クロック供給停止信号stopREQ を入力してレジスタ１０４の保持状態を“Ｈ”にするモード設定回路１１０を設けたので、マイクロコントローラが消費電力削減モードに移行する際にＤＲＡＭ１３０をセルフリフレッシュ状態にするときに、ＣＰＵ７０の命令によってレジスタ１０４に“Ｈ”を書き込まなくてもよくなり、ＤＲＡＭコントローラ１００が自動的にＤＲＡＭ１３０をセルフリフレッシュ状態にするように、ストローブ信号ＲＡＳ，ＣＡＳを発生することができる。即ち、プログラムに基づくＣＰＵ７０の命令がなくても、ＤＲＡＭ１３０をセルフリフレッシュ状態に移行させることが可能になっている。また、クロックコントローラ８０がアサートにしたクロック供給停止信号stopREQ を出力する期間を、アサートされたクロック停止承諾信号stopACK が入力されるまでとしたので、マイクロコントローラが消費電力削減モードから通常動作モードに復帰する際に、ＤＲＡＭ１３０を通常動作状態にするＣＰＵ７０の命令を実行してレジスタ１０４に“Ｌ”を書き込まなくても、クロックＣＫの供給を再開すれば、直ちにＤＲＡＭ１３０を通常動作状態に移行させることが可能である。即ち、マイクロコントローラが消費電力削減モードに移行する際に、同時にＤＲＡＭ１３０をセルフリフレッシュ状態にし、通常動作に移行する際に同時にＤＲＡＭ１３０を通常動作状態にすることが可能となる。
従って、モード設定回路１１０は、クロックコントローラ８０から与えられるクロック供給停止信号stopREQと、ストローブ信号制御回路１０３から与えられるクロック停止承諾信号stopACKとを利用して、効率的で確実にセルフリフレッシュモードと通常動作モードの切換えを、比較的簡単な構成で実現することができる。
【００２９】
なお、本発明は、上記実施形態に限定されず種々の変形が可能である。その変形例としては、例えば次のようなものが考えられる。
（ｉ）  第１の実施形態では、クロックコントローラ２０を設け、消費電力削減モードを設定することが可能なマイクロコントローラについて説明しているが、消費電力削減モードを設定しない場合でも、ＡＮＤゲート４５のような状態設定回路を設けることで、第１の実施形態と同様の効果が得られる。
（ii）  第２の実施形態では、第１の実施形態のＡＮＤゲート４５と同様の機能を有するＡＮＤゲート１０５を設けているが、このＡＮＤゲート１０５を用いない場合でも、消費電力削減モードに対する移行とその解除を行う際には、第２の実施形態と同様の効果が得られる。
【００３０】
【発明の効果】
本発明によれば、消費電力削減モードを設定するクロック制御回路と、レジスタと、強制的にレジスタの保持状態を第１の状態等に設定するモード設定回路と、デコーダと、ストローブ信号制御回路と、アドレス転送手段とを、マイクロコントローラに設けたので、例えば、消費電力削減モードに移行する前にＤＲＡＭにセルフリフレッシュを行わせるような第１及び第２のストローブ信号を発生させるためにレジスタに書き込む命令が、不要になる。
【００３１】
特に、モード設定回路は、クロック制御回路から与えられるクロック停止要求信号がクロックの停止を指示し、ストローブ信号制御回路から与えられるクロック停止許諾信号がクロックの停止を未だ許諾していないタイミングで、レジスタを強制的にセルフリフレッシュモードの状態に設定し、その後にクロック停止許諾信号がクロックの停止を許諾することにより、レジスタを通常動作モードの状態に設定する回路構成になっている。そのため、クロックが停止する前にレジスタに対してセルフリフレッシュモードを設定することができるとともに、クロックが停止した際には、クロックが入力されないことでレジスタはセルフリフレッシュモードが設定された状態を維持することができる。さらに、通常動作モードに再開する際には、モード設定回路によってレジスタが通常動作モードに設定されるので、クロックが供給されるのに合わせてレジスタを通常動作モードにすることができる。従って、本発明では、クロック制御回路から与えられるクロック停止要求信号と、ストローブ信号制御回路から与えられるクロック停止許諾信号とを利用して、効率的で確実にセルフリフレッシュモードと通常動作モードの切換えを、比較的簡単な構成で実現することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態を示すマイクロコントローラ中のＤＲＡＭコントローラの要部を示す図である。
【図２】従来のＤＲＡＭコントローラ４を内蔵したマイクロコントローラの一例を示す構成ブロック図である。
【図３】図２中のＤＲＡＭコントローラの要部を示す構成ブロック図である。
【図４】本発明の第１の実施形態を示すマイクロコントローラの構成ブロック図である。
【図５】図４のマイクロコントローラの動作例を示すタイムチャートである。
【図６】本発明の第２の実施形態を示すマイクロコントローラの構成ブロック図である。
【図７】図６中のＤＲＡＭコントローラ１００の要部を示す図である。
【図８】図６のマイクロコントローラにおける消費電力削減モードへの移行とその解除を示すタイムチャートである。
【符号の説明】
１０，７０                ＣＰＵ
２０，８０                クロックコントローラ
３０，９０                ＲＡＭ
４０，１００              ＤＲＡＭコントローラ
４１，１０１              デコーダ
４２，１０２              セレクタ
４３，１０３              ストローブ信号制御回路
４４，１０４              レジスタ
４５，１０５              ＡＮＤゲート（状態設定回路）
５０，１２０              バスコントローラ
６０，１３０              ＤＲＡＭ
１１０                    モード設定回路
acsREQ                    アクセス要求
ＡＤ                      アドレス
stopREQ                   クロック供給停止信号
stopACK                   クロック停止承諾信号
ＣＫ                      クロック
ＲＡＳ，ＣＡＳ            第１及び第２のストローブ信号
【図１】
0004174835.tif 000002
【図２】
0004174835.tif 000003
【図３】
0004174835.tif 000004
【図４】
0004174835.tif 000005
【図５】
0004174835.tif 000006
【図６】
0004174835.tif 000007
【図７】
0004174835.tif 000008
【図８】
0004174835.tif 000009