(57)【要約】【課題】レジスタなどへのデータアクセスに関して、半導体製造工程の微細化、デバイスの高速化に伴ってタイミングを保証するための検証が煩雑になり、更には経年劣化や使用条件の変化などの影響を受けてもアクセスを保証することが困難になってきている。特にデータアクセスのタイミングにおいて、セットアップは自動的に保証される方法が提案されているが、ホールドに対する提案が乏しい。【解決手段】レジスタへのデータアクセスにおいて、送信側と受信側の間にインターフェイスを設置し、校正プログラムによって該インターフェイスに内蔵されるマップメモリに最適なアクセスタイミングを記録し、校正後再びデータアクセスを実行する場合には、マップメモリのタイミングデータを参照しながらデータアクセスを実行する。【選択図】      図１
2004326690.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、複数の周辺回路との間で、１つのバスインターフェイスを介して、データアクセスを行う制御装置において、
全ての周辺回路に内蔵される全てのレジスタに対して、校正プログラムによって、各々のアクセスタイミングを自動的に調整しながらデータアクセスを行う、
前記全てのレジスタに対する確実なデータアクセスを保証するようにする、
ことを特徴とする制御装置。
【請求項２】
請求項１記載の制御装置において、
前記校正プログラムの実行時における、各レジスタにおける最適なアクセスタイミングを、マップメモリに記録し、
前記校正プログラムが終了した後、再び前記ＣＰＵにより、前記マップメモリに記録されている該レジスタにおける最適なアクセスタイミングを参照して、前記周辺回路のレジスタに対し、データアクセスを行い、
前記各レジスタにおけるデータアクセスのホールド時間を保証するようにする、
ことを特徴とする制御装置。
【請求項３】
請求項２記載の制御装置において、
最適なアクセスタイミングを提供するための遅延回路が、フリップフロップで構成され、
該フリップフロップのラッチタイミングが、データの変化タイミングを決定しているクロックと逆相関係にあるクロックでラッチされ、
データが変化する周期の半相分の遅延時間により、前記各レジスタにおけるデータアクセスのホールド時間を保証する、
ことを特徴とする制御装置。
【請求項４】
請求項２記載の制御装置において、
最適なアクセスタイミングを提供するための遅延回路が、バッファで構成され、
該遅延バッファをデータアクセスに最適な遅延時間を得るだけの段数が、直列に接続され、
前記バッファチェインの総遅延時間により、前記各レジスタにおけるデータアクセスのホールド時間を保証する、
ことを特徴とする制御装置。
【請求項５】
請求項１記載の制御装置において、
システムの起動時に、全ての周辺回路に内蔵される全てのレジスタに対して、校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、
前記全てのレジスタに対する確実なデータアクセスを保証するようにする、
ことを特徴とする制御装置。
【請求項６】
請求項１記載の制御装置において、
タイマーなどのカウンタによる割り込みによって、周期的に、全ての周辺回路に内蔵される全てのレジスタに対して、前記校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、
前記全てのレジスタに対する確実なデータアクセスを保証するようにする、
ことを特徴とする制御装置。
【請求項７】
請求項１記載の制御回路において、
周囲の条件変化を検知する検知回路による割り込みによって、例えば温度変化や電圧変化が生じた場合に、全ての周辺回路に内蔵される全てのレジスタに対して、前記校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、
前記全てのレジスタに対する確実なデータアクセスを保証するようにする、
ことを特徴とする制御装置。
【請求項８】
請求項１記載の制御回路において、
周辺回路とのデータアクセス時に書き込みエラーが発生したとき、全ての周辺回路に内蔵される全てのレジスタに対して、校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、
前記全てのレジスタに対する確実なデータアクセスを保証するようにする、
ことを特徴とする制御装置。
【請求項９】
請求項１記載の制御回路において、
前記校正プログラムが実行された後、前記ＣＰＵが、前記周辺回路に対してデータの書き込みアクセスを実行したとき、該ＣＰＵは、データの書き込みアクセスに対してセットアップ時間を保証するよう、ウェイト法またはハンドシェイク法によってアクセスサイクルを延ばし、
データアクセスの１サイクル目で、該データをアクセスさせる周辺回路におけるレジスタのアドレスおよび該データを、バッファメモリに一時的に保存し、
前記マップメモリから確実にアクセスが完了していることを判断した時点で、前記バッファメモリから前記レジスタのアドレスおよび前記データを消去し、
かつ、前記ＣＰＵによる周辺回路に対するデータの書き込みアクセスは、ＣＰＵから見て１サイクルでこれを完了する、
ことを特徴とする制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、制御装置に関し、特にバスを介したデータアクセスの、特に書き込み制御において、自動的に最適なタイミングを検出し、設定することを可能としたバス制御装置に関する。
【０００２】
【従来の技術】
従来、バスにおけるデータアクセス、特にＣＰＵが周辺回路のレジスタにアクセスする場合、図２１に示すようなブランチ構成、または図２２に示すようなチェイン構成（デイジーチェイン）が一般的であった。以下、その構成について図を参照しながら説明する。
【０００３】
図２１は、ＣＰＵ１０１から見て、各周辺回路１０３〜１０５に内蔵されているレジスタが、データアクセスに関わる信号線Ｓ１０１を介して、ＣＰＵ１０１と木の枝のように接続されているブランチ構成のバスシステムを示している。
【０００４】
図２２は、ＣＰＵ１０１から見て、各周辺回路１０３〜１０５に内蔵されているレジスタが、ＣＰＵ１０１を起点として、データアクセスに関わる信号線Ｓ１０１、Ｓ１０３、Ｓ１０４、Ｓ１０５により、数珠状に順次接続され、最終的にＣＰＵ１０１に戻るようなチェイン構造のバスシステムを示している。
【０００５】
これら従来のバスシステムにおいて、データがアクセスされる場合について、以下説明する。
図２１および図２２に示される信号線Ｓ１０１は、図２３および図２４に示されるように、各周辺回路に内蔵されるレジスタを識別するためのアドレスバスＳ１０１ａ、レジスタにデータを書き込むためのデータバスＳ１０１ｄｗ、レジスタへのデータアクセスが、書き込みなのか、読み出しなのかを識別するためのライト／リード信号Ｓ１０１ｗｒ、レジスタのデータを読み出すためのデータバスＳ１０１ｄｒ、およびレジスタにデータがアクセスされたことを示す応答信号Ｓ１０１ａｋのような信号に、代表されるもので構成されている。
【０００６】
まず、図２１に示すようなブランチ構造をもつバスシステムにおいては、ＣＰＵと各周辺回路との関係は、図２３に示すような１対１の関係になり、ＣＰＵのデータアクセスに対して、ＣＰＵよりのアクセスの対象となるレジスタへのデータパスが唯一決定され、このデータパス上でのみ、データのアクセスが実行される。
【０００７】
データの書込みアクセスにおいては、ＣＰＵ１０１から周辺回路１０２に内蔵されるレジスタを識別するアドレスがアドレスバスＳ１０１ａを介して出力され、同時にデータがデータバスＳ１０１ｄｗを介して出力される。この時、データは書き込みアクセスであるため、同ＣＰＵ１０１から出力されるライト／リード信号Ｓ１０１ｗｒはライトイネーブル状態になる。一方、周辺回路１０２側では、アドレスバスＳ１０１ａを介して入力されたアドレスが前記周辺回路１０２に内蔵されるレジスタへのアクセスであることを検知し、かつ該アクセスが書き込みであることから、データバスＳ１０１ｄｗを介して、前記周辺回路１０２に入力されているデータをレジスタに書き込む。この時、周辺回路１０２はデータがアクセスされたことをＣＰＵ１０１に知らせるための応答信号Ｓ１０１ａｋを、ＣＰＵ１０１に対して出力する。
【０００８】
データの読み出しアクセスにおいては、書き込みアクセスと同様、ＣＰＵ１０１から周辺回路１０２に内蔵されるレジスタを識別するアドレスがアドレスバスＳ１０１ａを介して出力され、同時にデータの読み出しアクセスであるため、同ＣＰＵ１０１から出力されるライト／リード信号Ｓ１０１ｗｒはリードイネーブル状態になる。一方、周辺回路１０２側では、アドレスバスＳ１０１ａを介して入力されたアドレスが前記周辺回路１０２に内蔵されるレジスタへのアクセスであることを検知し、かつ該アクセスが読み出しであることから、データバスＳ１０１ｄｒを介して前記周辺回路１０２に内蔵されているレジスタに格納されているデータを出力する。この時、周辺回路１０２は、データがアクセスされたことをＣＰＵ１０１に知らせるための応答信号Ｓ１０１ａｋを、ＣＰＵ１０１に対して出力する。ＣＰＵ１０１は書き込みアクセスにおいても、また読み出しアクセスにおいても、この応答信号Ｓ１０１ａｋが入力され、これを検知した時点で、書き込みアクセスまたは読み出しアクセスに係る信号の出力を打ち切り、次のアクセスサイクルへと移行する。
【０００９】
次に、図２２に示すようなチェイン構造をもつバスシステムにおいては、ＣＰＵと各周辺回路との関係が、図２２に示すように、全ての周辺回路を介してＣＰＵに信号が帰還するため、ある周辺回路に注目した場合、図２４に示すように、ＣＰＵのデータアクセスに対して、ＣＰＵとアクセスの対象となるレジスタへのデータパスは、データがＣＰＵ１０１から出力された後、周辺回路１０２、１０３、１０４とチェイン状に接続された順に、データが各周辺回路を通り抜けて、アクセス対象となる周辺回路１０Ｎに入力され、該周辺回路に内蔵されるレジスタに対してデータアクセスが実行される。
【００１０】
また、図２２のようなチェイン構造のバスシステムにおけるデータの書込みアクセスにおいては、ＣＰＵ１０１から周辺回路１０Ｎに内蔵されるレジスタを識別するアドレスが、アドレスバスＳ１０１ａを介して出力され、同時にデータがデータバスＳ１０１ｄｗを介して出力される。この時、データの書き込みアクセスであるため、前記ＣＰＵ１０１から出力されるライト／リード信号はライトイネーブル状態になる。一方、周辺回路１０Ｎ側では、アドレスバスＳ１０１ａを介して直接入力されたアドレスが、前記周辺回路１０Ｎに内蔵されるレジスタへのアクセスであることを検知し、かつ該アクセスが書き込みであることから、データをレジスタに書き込む。この時、周辺回路１０Ｎに入力されるデータは、チェイン状に接続された各周辺回路を順に通り抜けて伝達される。次に、周辺回路１０Ｎは、データがアクセスされたことをＣＰＵ１０１に知らせるための応答信号Ｓ１０Ｎａｋを、ＣＰＵ１０１に対して出力するが、この応答信号もまたチェイン状に接続された周辺回路を通り抜けて、ＣＰＵ１０１に返される。
【００１１】
データの読み出しアクセスにおいては、書き込みアクセスと同様、ＣＰＵ１０１から周辺回路１０Ｎに内蔵されるレジスタを識別するアドレスがアドレスバスＳ１０１ａを介して出力され、同時にデータの読み出しアクセスであるため、前記ＣＰＵ１０１から出力されるライト／リード信号は、リードイネーブル状態になる。一方、周辺回路１０Ｎ側では、アドレスバスＳ１０１ａを介して直接入力されたアドレスが、前記周辺回路１０Ｎに内蔵されるレジスタへのアクセスであることを検知し、かつ該アクセスが読み出しであることから、データバスＳ１０Ｎｄｗを介して、前記周辺回路１０２に内蔵されているレジスタに格納されているデータを出力する。この時、読み出しデータは、チェイン状に接続された各周辺回路を順に通り抜けてＣＰＵ１０１に伝達される。また、周辺回路１０Ｎは、データがアクセスされたことをＣＰＵ１０１に知らせるための応答信号Ｓ１０Ｎａｋを、ＣＰＵ１０１に対して出力するが、この応答信号もまたチェイン状に接続された周辺回路を順に通り抜けてＣＰＵ１０１に返される。ＣＰＵ１０１は書き込みアクセスにおいても、また読み出しアクセスにおいても、この応答信号Ｓ１０１ａｋが入力され、これを検知した時点で、書き込みアクセスまたは読み出しアクセスに係る信号の出力を打ち切り、次のアクセスサイクルへと移行する。
【００１２】
上記した各バスシステムの特徴として、ブランチ構造の場合、ＣＰＵと各周辺回路との関係が全て１対１であるため、高速なデータアクセスが可能となる。しかしながら、同構造では、ＣＰＵから各ブロックに対してそれぞれアドレスバスやデータバスなどを接続する必要があるため、信号線が増大してチップ面積を増大させる原因となる。これに対してチェイン構造の場合、ＣＰＵと各周辺回路とが順次チェイン状に接続されているため、データバスに関して、あるいはアドレスなどの信号も含めて、１つのアクセスパスしか存在しないため、信号線を削減でき、チップ面積の削減に効果が得られる。しかしながら、チェイン構造では、ＣＰＵからチェイン状に接続される周辺回路に対して、データまたは応答信号が複数の周辺回路を通り抜けてからアクセスされるため、高速なアクセスに不利となる。
【００１３】
これらのバスシステムにおいて、同期式のデータアクセスが行われるシステムでは、特にレジスタへの書き込みアクセスに対して、図７に示すようなアクセスタイミングが一般的である。
【００１４】
図７において、データはライトイネーブル期間中にクロックの立ち上がりタイミングでレジスタに書き込まれる。この時、ＣＰＵから出力されているデータおよびライトイネーブルは、クロックに対して確実にデータを書き込めるよう、図７に示すように、セットアップ時間と、ホールド時間が保証されていなければならない。
【００１５】
セットアップに関して、高速動作、または物理的にＣＰＵと、レジスタとの距離が遠いことが原因で、クロックの１サイクル内にデータが確定しない場合がしばしばある。この様な課題に対して、図８に示すような、クロックの２サイクル目以降にデータが書き込めるよう、ＣＰＵ側の設定によってアクセスサイクルを増やすウェイト法（例えば、特許文献１参照）や、図７および図８に示すような、レジスタ側にデータが到達したことを知らせる応答信号（Ａｃｋ）を、ＣＰＵに返すまでをアクセスサイクルとするハンドシェイク法（例えば、特許文献２参照）などが一般的に知られている。
一方、ホールドに関して、同期設計の場合、タイミング検証にてクロックに対する各レジスタのホールド時間を保証している。
【００１６】
【特許文献１】
特開平９−３１９７０４号公報（第１５−１６頁、第５図）
【特許文献２】
特開２０００−３３９２１３号公報（第１８−１８頁、第７図）
【００１７】
【発明が解決しようとする課題】
上記したようにシステムＬＳＩのレジスタアクセスにおいて、特に同期設計の場合、タイミング検証によって各レジスタにおけるクロックに対するデータのセットアップ時間およびホールド時間を保証しているが、半導体製造工程の微細化、回路規模の増大、さらにシステムの高速化などの理由から、上記したセットアップ時間ならびにホールド時間を保証するための検証工数が増大し、開発ＴＡＴに対して影響を与えている。
【００１８】
また、このような検証を経てデバイスが製造された後も、温度や電圧などの動作条件、ＬＳＩの製造過程で発生するバラツキ、または経年劣化によって、ＬＳＩ内部の遅延量が変化し、正常に動作しない恐れがある。即ち、検証時において、図９または図１０に示すように、クロックの立ち上がりエッヂに対して、常にデータ、およびライトイネーブルの位相が遅れるような関係にあれば、データは必ず正しくレジスタに書き込まれるが、製造バラツキ、使用条件の変化、または経年劣化などによって、データ、ライトイネーブル、およびクロックの位相関係が、図９および図１０に示すように変化した場合には、図９に示すようにデータが常にライトイネーブルより遅れるような位相関係にあれば、誤動作を引き起こすことはないが、図１０に示すようにライトイネーブルがデータより遅れるような位相関係にあれば、誤ったデータをレジスタに書き込むことになる。
【００１９】
更にこのような課題に対して、例えばメモリとのアクセスであれば、そのアクセスタイミングを調整する方法が提案されているものもあるが、レジスタのようなＣＰＵとのアクセスが各々固有のものであれば、メモリのように、ある任意のアドレスに対してアクセスが保証できれば、全体のアクセスを保証できるようなものではなく、各々のレジスタに対して最適なアクセスタイミングを調整する必要がある。従来の仕組みでは、１つのアドレス、即ち数あるレジスタのうち、僅か１レジスタに対してしかアクセスを保証できず、仮に全てのレジスタに対して同様の仕組みを施すことになれば、その回路規模は極端に増大してしまうといった課題がある。またこれまでに提案されているアクセスタイミングの自動調整方法は、データの読み出しに対してのみこれを保証するものであって、データが正しく書き込めているかを保証するものではない。
【００２０】
本発明は、このような従来の問題点を解決するためになされたもので、半導体製造工程の微細化、回路規模の増大、並びにシステムの高速化に伴って増大するタイミング検証の煩雑さを解消し、更には、デバイスが製造された後、その動作条件、製造バラツキ、または経年劣化によってＬＳＩ内部の信号伝達の遅延量が変化し、ＬＳＩが誤動作することを、未然に防ぐことのできる制御装置を提供することを目的としている。
【００２１】
【課題を解決するための手段】
上記課題を解決するために、本発明（請求項１）にかかる制御装置は、ＣＰＵと、複数の周辺回路との間で、１つのバスインターフェイスを介して、データアクセスを行う制御装置において、全ての周辺回路に内蔵される全てのレジスタに対して、校正プログラムによって、各々のアクセスタイミングを自動的に調整しながらデータアクセスを行う、上記全てのレジスタに対する確実なデータアクセスを保証するようにするものである。
【００２２】
また、本発明（請求項２）にかかる制御装置は、請求項１記載の制御装置において、前記校正プログラムの実行時における、各レジスタにおける最適なアクセスタイミングを、マップメモリに記録し、前記校正プログラムが終了した後、再び前記ＣＰＵにより、前記マップメモリに記録されている該レジスタにおける最適なアクセスタイミングを参照して、前記周辺回路のレジスタに対し、データアクセスを行い、前記各レジスタにおけるデータアクセスのホールド時間を保証するようにするものである。
【００２３】
また、本発明（請求項３）にかかる制御装置は、請求項２記載の制御装置において、最適なアクセスタイミングを提供するための遅延回路が、フリップフロップで構成され、該フリップフロップのラッチタイミングが、データの変化タイミングを決定しているクロックと逆相関係にあるクロックでラッチされ、データが変化する周期の半相分の遅延時間により、前記各レジスタにおけるデータアクセスのホールド時間を保証するものである。
【００２４】
また、本発明（請求項４）にかかる制御装置は、請求項２記載の制御装置において、最適なアクセスタイミングを提供するための遅延回路が、バッファで構成され、該遅延バッファをデータアクセスに最適な遅延時間を得るだけの段数が、直列に接続され、前記バッファチェインの総遅延時間により、前記各レジスタにおけるデータアクセスのホールド時間を保証するものである。
【００２５】
また、本発明（請求項５）にかかる制御装置は、請求項１記載の制御装置において、システムの起動時に、全ての周辺回路に内蔵される全てのレジスタに対して、校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、前記全てのレジスタに対する確実なデータアクセスを保証するようにするものである。
【００２６】
また、本発明（請求項６）にかかる制御装置は、請求項１記載の制御装置において、タイマーなどのカウンタによる割り込みによって、周期的に、全ての周辺回路に内蔵される全てのレジスタに対して、前記校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、前記全てのレジスタに対する確実なデータアクセスを保証するようにするものである。
【００２７】
また、本発明（請求項７）にかかる制御装置は、請求項１記載の制御回路において、周囲の条件変化を検知する検知回路による割り込みによって、例えば温度変化や電圧変化が生じた場合に、全ての周辺回路に内蔵される全てのレジスタに対して、前記校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、前記全てのレジスタに対する確実なデータアクセスを保証するようにするものである。
【００２８】
また、本発明（請求項８）にかかる制御装置は、請求項１記載の制御回路において、周辺回路とのデータアクセス時に書き込みエラーが発生したとき、全ての周辺回路に内蔵される全てのレジスタに対して、校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、前記全てのレジスタに対する確実なデータアクセスを保証するようにするものである。
【００２９】
また、本発明（請求項９）にかかる制御装置は、請求項１記載の制御回路において、前記校正プログラムが実行された後、前記ＣＰＵが、前記周辺回路に対してデータの書き込みアクセスを実行したとき、該ＣＰＵは、データの書き込みアクセスに対してセットアップ時間を保証するよう、ウェイト法またはハンドシェイク法によってアクセスサイクルを延ばし、データアクセスの１サイクル目で、該データをアクセスさせる周辺回路におけるレジスタのアドレスおよび該データを、バッファメモリに一時的に保存し、前記マップメモリから確実にアクセスが完了していることを判断した時点で、前記バッファメモリから前記レジスタのアドレスおよび前記データを消去し、かつ、前記ＣＰＵによる周辺回路に対するデータの書き込みアクセスは、ＣＰＵから見て１サイクルでこれを完了するものである。
【００３０】
【発明の実施の形態】
本発明の実施の形態について、以下、図を用いて説明する。
（実施の形態１）
図１および図２は、本発明の実施の形態１に係わる制御装置を説明した図である。
【００３１】
図１において、ＣＰＵ１０１が周辺回路１０３〜１０５に対してデータのアクセスを行う場合、データのアクセスはバスインターフェイス１０２を介して実行される。図１に示すバスシステムでは、ＣＰＵ１０１に対して、バスインターフェイス１０２を介して各周辺回路１０３〜１０５がブランチ状に接続されており、ＣＰＵ１０１と、各周辺回路１０３〜１０５との間に、それぞれ固有のアクセスパスが存在する。
【００３２】
図２において、ＣＰＵ１０１が周辺回路１０３〜１０５に対してデータのアクセスを行う場合、データのアクセスはバスインターフェイス１０２を介して実行される。図２に示すバスシステムでは、ＣＰＵ１０１に対して、バスインターフェイス１０２を介して各ブロック１０３〜１０５がチェイン状に接続されており、ＣＰＵ１０１と、各周辺回路１０３〜１０５とが全て同じアクセスパス上に存在する。
【００３３】
図３は、図１および図２におけるＣＰＵ１０１とバスインターフェイス１０２に係る信号を示した図である。図３において、ＣＰＵ１０１およびバスインターフェイス１０２は、バスシステムの構成が、図１に示すようなブランチ構造、または図２に示すようなチェイン構造、のいずれの場合であっても、同じ構成を持つ。ＣＰＵ１０１は、周辺回路に対してデータのアクセスを実行する時、ＣＰＵ１０１からデータのアクセス対象となる周辺回路に対してアドレスをアドレスバスＳ１０１ａに対して出力する。バスインターフェイス１０２は、このアドレスを、アドレスバスＳ１０１ａより受け取り、アドレスバスＳ１０２ａを介して周辺回路へ出力する。また同時に、ＣＰＵ１０１は、データのアクセス対象となる周辺回路に対してデータを書き込むか、または読み出すかを判断させるためのライト／リード信号Ｓ１０１ｗｒを出力する。バスインターフェイス１０２は、このライト／リード信号Ｓ１０１ｗｒを受け取り、ライト／リード信号Ｓ１０２ｗｒを介して周辺回路へ出力する。またこの時、周辺回路へのデータアクセスが書き込みである場合、ＣＰＵ１０１はデータをデータバスＳ１０１ｄｗに出力する。バスインターフェイス１０２は、ＣＰＵ１０１から出力されたデータを、データバスＳ１０１ｄｗより受け取り、適切なタイミングに調整した後、データバスＳ１０２ｄｗを介して周辺回路へ出力する。またこの時、周辺回路へのデータアクセスが読み出しである場合、バスインターフェイス１０２は周辺回路から出力されたデータを、データバスＳ１０２ｄｒより受け取り、データバスＳ１０１ｄｒを介してＣＰＵ１０１に出力する。またこの時、バスインターフェイス１０２は、データアクセスが実行されたことをＣＰＵ１０１に通知するため、データアクセス応答信号Ｓ１０１ａｋをＣＰＵ１０１に対して出力する。またこの時、周辺回路へのデータアクセスに対し、適切なアクセスタイミングを自動的に設定するための校正プログラムが実行されることを知らせるための信号Ｓ１０１ｃｂが、ＣＰＵ１０１からバスインターフェイス１０２に対して接続されている。即ち、図３に示すバスインターフェイス１０２は、ＣＰＵ１０１から周辺回路に対してデータアクセスを実行する場合に、各周辺回路、または各周辺回路に内蔵される各レジスタに対して、それぞれ固有の最適なタイミングで常にアクセスできるよう制御を行う装置である。
【００３４】
図４は、図３におけるバスインターフェイス１０２の構成を示した図である。次に、該バスインターフェイス１０２の動作について説明する。
【００３５】
バスインターフェイス１０２は、校正プログラムが実行されていることを知らせる校正モード信号Ｓ１０１ｃｂを検知すると、カウンタ１０２３をリセットし、遅延回路１０２１への遅延選択信号Ｓ１０２１をカウンタ出力Ｓ１０２３側に選択する。またこの時、ＣＰＵ１０１は、校正プログラムによって、全レジスタに対するアクセスチェックを行うためのデータを出力し、同時にレジスタへの書き込みを行うためにライト／リード信号Ｓ１０１ｗｒを書き込みモードにする。ＣＰＵ１０１から出力されたデータは、データバスＳ１０１ｄｗから入力され、遅延回路１０２１に入力される。またこの時、ＣＰＵ１０１から出力されたアクセス対象レジスタのアドレスは、アドレスバスＳ１０１ａから入力され、Ｓ１０２ａへと出力されるだけではなく、マップメモリ１０２４のアドレスにも入力される。即ち、周辺回路における全てのレジスタのアドレスがマップメモリ１０２４上にマッピングされ、都度ＣＰＵ１０１が周辺回路をアクセスする度に、マップメモリの対象アドレスもアクセスされることを意味する。データは、書き込みサイクルにおいて、カウンタ１０２３の値に従って、遅延回路１０２１の出力が選択され、カウンタ１０２３が初期値の場合、遅延０のデータが選択される。またこの時、ＣＰＵ１０１から出力されたデータＳ１０１ｄｗは、バスインターフェイス１０２内にあるバッファ１０２７に一時保管される。このようにして、バスインターフェイス１０２を通過したデータＳ１０２ｄｗは、アドレスＳ１０２ａの対象となるレジスタに対して書き込みが実行される。
【００３６】
次にＣＰＵ１０１は校正プログラムに従って、読み出しサイクルへと移行する。ＣＰＵ１０１は前記アクセス対象レジスタに対してアクセスを行うため、書き込みサイクルの時と同じアドレスをＳ１０１ａに出力し、同時にライト／リード信号Ｓ１０１ｗｒを読み出しモードにする。アクセス対象となるレジスタは、この読み出しを検知してＣＰＵ１０１に対してデータを出力し、データバスＳ１０２ｄｒよりバスインターフェイス１０２に入力される。入力された読み出しデータＳ１０２ｄｒは、バスインターフェイス１０２内において、前記書き込みサイクルの時に一時保管されたバッファ１０２７の書き込みデータと一致しているかどうかが一致判定回路１０２６により判定される。この時、前記一致判定回路１０２６によって書き込みデータと読み出しデータの一致が確認された場合、データがアクセス対象レジスタに正しく書き込めたことを前記ＣＰＵ１０１に対して通知し、同時に前記バスインターフェイス１０２に入力されている校正モード信号Ｓ１０１ｃｂがアクティブで、かつライト／リード信号が読み出しモードであれば、前記カウンタ１０２３の値を前記アクセス対象となっているレジスタのアドレスがマッピングされた前記マップメモリ１０２４に書き込み、校正プログラムは次のアクセス対象となるレジスタのアドレスに変更し、再び書き込みサイクルへと移行する。一方、前記一致判定回路１０２６によって書き込みデータと読み出しデータの一致が確認されなかった場合、データがアクセス対象レジスタに正しく書き込めなかったことを前記ＣＰＵ１０１に対して通知し、再度同じアクセス対象レジスタに対して書き込みサイクルへと移行すると同時に、前記カウンタ１０２３の値をインクリメントする。前記カウンタ１０２３の値がインクリメントされることにより、前記遅延回路１０２１において選択される遅延量が増加する。
【００３７】
以上、これら一連の動作を繰り返すことによって、ＣＰＵ１０１から全レジスタに対して、データを正しく書き込めるタイミングが前記マップメモリ１０２４に記録され、校正プログラムの終了後、再びＣＰＵ１０１がレジスタに書き込みを行う場合、バスインターフェイス１０２は、アクセス対象となっているレジスタのアドレスから前記マップメモリ１０２４にマッピングされている遅延量を参照し、遅延回路１０２１によって最適なタイミングに遅延されたデータをバスインターフェイス１０２から出力することにより、常に正しいデータをレジスタに書き込むことが可能となる。
【００３８】
このような本実施の形態１による制御装置においては、全てのレジスタに対して個々に最適なアクセスタイミングをマップメモリに記録することにより、タイミング調整後であれば、ＣＰＵと周辺回路ブロックにおけるレジスタとのデータアクセスにおいて、正常なアクセスを実現する効果が得られ、同時にタイミング検証の煩雑さを解消できる効果が得られる。
【００３９】
（実施の形態２）
図５は、本発明の実施の形態２に係わる制御装置における遅延装置を説明した図である。
図５において、遅延素子（フリップフロップ）１０２１Ｄ０は、遅延回路１０２１に入力されるデータＳ１０１ｄｗを、データの変化点から半相遅れたタイミングでラッチさせる遅延素子であって、前記遅延回路１０２１に入力されるクロックｃｋを、インバータ回路１０１２Ｉ０によって逆相とし、これによって前記入力データＳ１０１ｄｗをラッチする。遅延選択回路１０２１Ｓ０は、前記遅延回路１０２１に入力される遅延設定信号Ｓ１０２２によって、前記遅延回路１０２１に入力されるデータＳ１０１ｄｗか、または前記遅延素子１０２１Ｄ０によって前記入力データＳ１０１ｄｗの変化点から半相分遅延したデータＳ１０２１Ｄ０か、の何れかを選択する。
【００４０】
上記実施の形態１で既に説明したように、データの最適なアクセスタイミングを調整する校正プログラムが実行されている場合、遅延選択信号Ｓ１０２２は、まず遅延のない状態を示し、前記遅延選択回路１０２１Ｓ０は、入力データＳ１０１ｄｗを選択し、データ出力Ｓ１０２ｄｗへ出力する。このデータが正しくアクセスされていなかった場合には、前記遅延選択信号Ｓ１０２２はデータを遅延させる状態を示し、前記遅延選択回路１０２１Ｓ０は、遅延素子１０２１Ｄ０の出力Ｓ１０２１Ｄ０を選択し、データ出力Ｓ１０２ｄｗへ出力する。データの書き込みアクセスにおけるホールド時間は、データ変化における最小サイクルの半相分の遅延差によって保証されるため、レジスタへのデータが確実に実行される。
【００４１】
このようにして最適なアクセスタイミングが設定され、校正プログラムが終了した後、再びデータのアクセスが実行された場合、既に記録されているアクセスタイミングの情報に従って、前記遅延選択信号Ｓ１０２２は、入力データＳ１０１ｄｗか、遅延素子１０２１Ｄ０によって半相遅延したデータＳ１０２１Ｄ０か、の何れかを選択し、常に最適なタイミングでデータ出力Ｓ１０２ｄｗに出力する。
【００４２】
このような本実施の形態２による制御装置における遅延装置においては、ＣＰＵと周辺回路ブロックにおけるレジスタとのデータアクセスにおいて、最適なホールド時間を得るための遅延回路を、フリップフロップで構成するようにしたので、該遅延回路の占める面積を小さく抑えることができる効果が得られる。
【００４３】
（実施の形態３）
図６は、本発明の実施の形態３に係わる制御装置における遅延装置を説明した図である。以下、各機能について説明する。
図６において、遅延素子（バッファ）１０２１Ｄ１〜１０２１Ｄｎは直列に接続され、遅延回路１０２１に入力されるデータＳ１０１ｄｗを、データの変化点から遅延素子一段当りの遅延量によって徐々に遅延させる。遅延選択回路１０２１Ｓ１は、前記遅延回路１０２１に入力される遅延設定信号Ｓ１０２２によって、前記遅延回路１０２１に入力されるデータＳ１０１ｄｗか、または前記遅延素子１０２１Ｄ１〜１０２１Ｄｎによって前記入力データＳ１０１ｄｗの変化点から遅延素子一段当りの遅延量によって徐々に遅延されたデータＳ１０２１Ｄ１〜Ｓ１０２１Ｄｎか、の何れかを選択する。
【００４４】
上記実施の形態１で既に説明したように、データの最適なアクセスタイミングを調整する校正プログラムが実行されている場合、遅延選択信号Ｓ１０２２は、まず遅延のない状態を示し、前記遅延選択回路１０２１Ｓ１は、入力データＳ１０１ｄｗを選択し、データ出力Ｓ１０２ｄｗへ出力する。このデータが正しくアクセスされていなかった場合には、前記遅延選択信号Ｓ１０２２は、データを遅延素子一段分の遅延量だけ遅延させる状態を示し、前記遅延選択回路１０２１Ｓ１は、遅延素子１０２１Ｄ１の出力Ｓ１０２１Ｄ１を選択してデータ出力Ｓ１０２ｄｗへ出力する。再びデータが正しくアクセスされていなかった場合には、前記遅延選択信号Ｓ１０２２は、データを更に遅延素子一段分の遅延量だけ遅延させる状態を示し、前記遅延選択回路１０２１Ｓ１は、遅延素子１０２１Ｄ２の出力Ｓ１０２１Ｄ２を選択してデータ出力Ｓ１０２ｄｗへ出力し、以降データのアクセスが正しく実行されるまでこの動作を繰り返す。データの書き込みアクセスにおけるホールド時間は、遅延素子の総遅延量の範囲内によって保証されるため、レジスタへのデータが確実に実行される。
【００４５】
このようにして最適なアクセスタイミングが設定され、校正プログラムが終了した後、再びデータアクセスが実行された場合、既に記録されているアクセスタイミングの情報によって、前記遅延選択信号Ｓ１０２２は、入力データＳ１０１ｄｗか遅延素子１０２１Ｄ１〜１０２１Ｄｎによって遅延されたデータＳ１０２１Ｄ１〜Ｓ１０２１Ｄｎの何れかを選択し、常に最適なタイミングでデータ出力Ｓ１０２ｄｗに出力する。
【００４６】
このような本実施の形態３による制御装置における遅延装置においては、ＣＰＵと周辺回路ブロックにおけるレジスタとのデータアクセスにおいて、最適なホールド時間を得るための遅延回路を、バッファを直列に接続した構成とするようにしたので、周辺回路ブロックにおける各レジスタのデータ到達時間を最小にすることができる効果が得られる。
【００４７】
（実施の形態４）
図１５は、本発明の実施の形態４に係わる制御方法を説明した図である。各処理フローについて説明する。
図１５において、システムが起動した後、ＣＰＵは全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムＣＰを実行する。
【００４８】
前記校正プログラムＣＰは、全レジスタ空間をアクセスする（ステップＳ１）ために順次アドレスを変更する。最初のレジスタアクセスにおいて、まず校正プログラム実行直前に元々該レジスタが保有していた値をワークメモリに退避させ（ステップＳ２）、同時にデータの遅延量を計るカウンタがリセットする（ステップＳ３）。続いて、アクセス対象となるレジスタに対して校正パターン１、例えば０１０１パターンを書き込む（ステップＳ４）。次に書き込んだデータを前記レジスタから読み出し（ステップＳ５）、既に書き込まれているはずの校正パターン１のデータ、例えば０１０１と比較する（ステップＳ６）。この時、前記比較した結果が一致しなかった場合（ステップＳ６でＮｏ）、前記カウンタの値が１だけインクリメントされ（ステップＳ７）、再度校正パターン１を同じレジスタに対して書き込んだ（ステップＳ４）後、書き込んだデータを前記レジスタから読み出して（ステップＳ５）、校正パターン１と再び比較する（ステップＳ６）。以上、この動作を繰り返して、書き込みデータと読み出しデータが一致すれば（ステップＳ６でＹｅｓ）、次の処理へ進む。
【００４９】
校正パターン１、例えば０１０１パターン、による最適なアクセスタイミングが設定された後、前記レジスタに対して校正パターン２、例えば１０１０パターン、を同じレジスタに書き込む（ステップＳ８）。即ち、校正パターン１と校正パターン２は任意の値でよいが、それぞれ各ビットが排他的な関係になくてはならない。次に書き込んだデータを同じレジスタから読み出し（ステップＳ９）、既に書き込まれているはずの校正パターン２のデータ、例えば１０１０と比較する（ステップＳ１０）。この時、前記比較した結果が一致しなかった場合、前記カウンタの値が更に１だけインクリメントされ（ステップＳ１１）、再度校正パターン２を前記レジスタに対して書き込んだ後（ステップＳ８）、書き込んだデータを前記レジスタから読み出して（ステップＳ９）、校正パターン２と再び比較する（ステップＳ１０）。
【００５０】
以上、この動作を繰り返して、書き込みデータと読み出しデータが一致すれば（ステップＳ１０でＹｅｓ）、前記レジスタに対するアクセスタイミングの校正は完了し、アクセスの対象となるアドレスを変更して、上記校正を繰り返す。またこの時、各レジスタに対する最適なタイミング情報、即ちカウンタの値は、自動的にマップメモリへ記録され（ステップＳ１２）、校正プログラムＣＰが終了した後、再びレジスタに対してアクセスが実行された場合には、前記マップメモリに記録されているカウンタ値を参照して、最適なデータアクセスを得る（ステップＳ１３）。最後にワークメモリへ退避させていた元のレジスタ値を該レジスタに再び書き込む（ステップＳ１４）。
校正プログラムＣＰが終了した後、メインプログラムＭＰが作動し、システムは作動する。
【００５１】
このような本実施の形態４による制御方法においては、システム起動時に校正プログラムを実行することで、ＣＰＵと、周辺回路ブロックにおけるレジスタとのデータアクセスを最適化することにより、デバイスの製造工程におけるバラツキを抑えることができる効果が得られる。
【００５２】
（実施の形態５）
図１３、図１５、および図１６は、本発明の実施の形態５に係わる制御装置、および制御方法を説明した図である。
図１３において、システムが起動した後、ＣＰＵ１０１は全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムＣＰを実行し、バスインターフェイス１０２内のマップメモリに記録された最適なアクセスタイミングを参照しながら、周辺ブロックにおけるレジスタに対してデータアクセスを実行する。
【００５３】
以後、システムが経年変化による影響を吸収する目的で、定期的に校正プログラムＣＰが作動するよう、タイマー１０６を動作させる。タイマー１０６にはカウンタが内蔵され、前記カウンタ値がＣＰＵ１０１によって設定された値と一致するか、またはオーバーフローするか、またはアンダーフローするかによって、前記ＣＰＵ１０１に対して割り込みを発生させる。前記ＣＰＵ１０１は、該割り込み信号を受け取り、校正プログラムＣＰを実行する。
【００５４】
図１５において、システムが起動した後、ＣＰＵは全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムＣＰを実行する。校正プログラムＣＰ終了後、メインプログラムＭＰが実行され、システムが作動する。
【００５５】
図１６において、メインプログラムＭＰが開始された後、前記タイマー１０６より割り込みが前記ＣＰＵ１０１へ入力された場合（ステップＳ１５）、前記ＣＰＵ１０１は再び校正プログラムＣＰを実行し、各周辺ブロックにおけるレジスタに対して最適なアクセスタイミングを得る。校正プログラムＣＰ終了後、ＣＰＵ１０１はメインプログラムＭＰに復帰し、終了条件を検出して（ステップＳ１６）、Ｎｏであれば、タイマー１０６による割り込みが入力される直前の動作に戻る。
メインプログラムはシステムを終了させる条件を満たした時点（ステップＳ１６でＹｅｓ）で終了し、システムを停止する。
【００５６】
このような本実施の形態５による制御装置、および制御方法においては、システム起動時に校正プログラムを実行した上で、更にタイマー１０６によって定期的に校正プログラムを実行することにより、ＣＰＵと周辺回路ブロックにおけるレジスタとのデータアクセスを最適化し、デバイスの製造工程におけるバラツキだけでなく、経年劣化による影響を抑えることができる効果が得られる。
【００５７】
（実施の形態６）
図１４、図１５、および図１７は、本発明の実施の形態６に係わる制御装置、および制御方法を説明した図である。
図１４において、システムが起動した後、ＣＰＵ１０１は全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムＣＰを実行し、バスインターフェイス１０２内のマップメモリに記録された最適なアクセスタイミングを参照しながら、周辺ブロックにおけるレジスタに対してデータアクセスを実行する。
【００５８】
以後、システムが周囲の条件変化による影響を吸収する目的で、突発的に校正プログラムＣＰが作動するよう、検知回路１０７を動作させる。検知回路１０７は、例えば、周囲の湿度や温度、電源電圧、外部通信による動作条件変更などによって、前記ＣＰＵ１０１に対して割り込みを発生させる。前記ＣＰＵ１０１は該割り込み信号を受け取り、校正プログラムＣＰを実行する。
【００５９】
図１５において、システムが起動した後、ＣＰＵは全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムＣＰを実行する。校正プログラムＣＰ終了後、メインプログラムＭＰが実行され、システムが作動する。
【００６０】
図１７において、メインプログラムＭＰが開始された後、前記検知回路１０７より割り込みが前記ＣＰＵ１０１へ入力された場合（ステップＳ１７）、前記ＣＰＵ１０１は再び校正プログラムＣＰを実行し、各周辺ブロックにおけるレジスタに対して最適なアクセスタイミングを得る。校正プログラムＣＰ終了後、ＣＰＵ１０１はメインプログラムに復帰し、終了条件を検出して（ステップＳ１６）、Ｎｏであれば、検知回路１０７による割り込みが入力される直前の動作に戻る。
メインプログラムはシステムを終了させる条件を満たした時点（ステップＳ１６でＹｅｓ）で終了し、システムを停止する。
【００６１】
このような本実施の形態６による制御装置、および制御方法においては、システム起動時に校正プログラムを実行した上で、更にセンサー１０７によって突発的に校正プログラムを実行することにより、ＣＰＵと周辺回路ブロックにおけるレジスタとのデータアクセスを最適化し、デバイスの製造工程におけるバラツキだけでなく、デバイスの使用条件の変化による影響を抑えることができる効果が得られる。
【００６２】
（実施の形態７）
図１５、図１８、図１９、および図２０は、本発明の実施の形態７に係わる制御方法を説明した図である。
図１５において、システムが起動した後、ＣＰＵは全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムＣＰを実行する。校正プログラムＣＰ終了後、メインプログラムＭＰが実行され、システムが作動する。
【００６３】
図１８において、メインプログラムＭＰが開始された後、ＣＰＵが周辺回路におけるレジスタへの書き込みアクセスを実行した場合（ステップＳ１９，Ｓ２０）、レジスタアクセスルーチンを実行する。
【００６４】
レジスタアクセスルーチンにおいて、レジスタへのアクセスが正常に実行されているかを確認する目的で、図１９に示す処理フローでは、まずデータの書き込みアクセス対象レジスタに対して読み出し処理を実行する（ステップＳ２１）。続いて、読み出したデータをそのまま前記レジスタに書き込みを行い（ステップＳ２２）、再び前記レジスタからデータを読み出して（ステップＳ２４）、書き込んだデータと読み出したデータとが一致しているかを確認する（ステップＳ２５）。この時、書き込んだデータと読み出したデータとが一致しない場合、直ちにＣＰＵに対して割り込み処理を要求して校正プログラムＣＰを起動し、最適なアクセスタイミングに調整する。校正プログラムＣＰ実行後、または上記書き込みデータと読み出しデータとが一致していた場合（ステップＳ２４でＹｅｓ）には、本来前記レジスタに書き込むべきデータの書き込み処理を行い（ステップＳ２５）、レジスタアクセスルーチンを終了してメインプログラムＭＰに復帰する。このようにして、常にレジスタのアクセス状況を確認することで、必要に応じてリアルタイムに校正プログラムＣＰを起動することが可能となる。特に、図１９に示す処理フローでは、周辺回路におけるレジスタの中に、ハード的にラッチ回路を有していないビットや、書き込み禁止のビットが存在した場合でも、前記ビットの存在を意識することなく一致判定プログラムを作成できる。
【００６５】
また、レジスタアクセスルーチンにおいて、レジスタへのアクセスが正常に実行されているかを確認する目的で、図２０に示す処理フローでは、まずデータの書き込みアクセス対象レジスタに対して書き込み処理を実行し（ステップＳ２６）、続いて前記レジスタからデータを読み出して（ステップＳ２７）、書き込んだデータと読み出したデータとが一致しているかを確認する（ステップＳ２８）。この時、書き込んだデータと読み出したデータとが一致しない場合（ステップＳ２８でＮｏ）、直ちにＣＰＵに対して割り込み処理を要求して校正プログラムＣＰを起動し、最適なアクセスタイミングに調整する。校正プログラムＣＰ実行後、再び前記レジスタに対して書き込みを行い（ステップＳ２６）、続いてデータを読み出して（ステップＳ２７）再び読み出しデータと一致しているか確認する（ステップＳ２８）。最初の書き込み処理（ステップＳ２６）、または校正プログラムＣＰ実行後の書き込み処理（ステップＳ２６）において、書き込みデータと読み出しデータが一致していれば、レジスタアクセスルーチンを終了してメインプログラムＭＰに復帰する。このようにして、常にレジスタのアクセス状況を確認することで、必要に応じてリアルタイムに校正プログラムＣＰを起動することが可能となる。特に図２０に示す処理フローでは、書き込み処理と読み出し処理が１回だけで済むため、一致判定プログラムを少ないステップ数で作成することができる。
レジスタアクセスルーチンから復帰したメインプログラムは、システムを終了させる条件を満たした時点で終了し、システムを停止する。
【００６６】
このような本実施の形態７による制御方法においては、システム起動時に校正プログラムを実行した上で、更に常にアクセス状況を確認してリアルタイムに校正プログラムを実行することにより、ＣＰＵと周辺回路ブロックにおけるレジスタとのデータアクセスを最適化し、デバイスの製造工程におけるバラツキだけでなく、デバイスの使用条件の変化、更には経年劣化による影響をも抑えることができる効果が得られる。
【００６７】
（実施の形態８）
図１２は、本発明の実施の形態８に係わる制御装置を説明するための図である。
図１２は、図３におけるバスインターフェイス１０２の構成を示した図である。次にバスインターフェイス１０２の動作について説明する。
【００６８】
バスインターフェイス１０２は、校正プログラムが実行されていることを通知する校正モード信号Ｓ１０１ｃｂを検知すると、カウンタ１０２３をリセットし、遅延回路１０２１への遅延選択信号Ｓ１０２１を、カウンタ出力Ｓ１０２３側に選択する。またこの時、ＣＰＵ１０１は、校正プログラムによって、全レジスタに対するアクセスチェックを行うためのデータを出力し、同時にレジスタへの書き込みを行うためにライト／リード信号を書き込みモードにする。ＣＰＵ１０１から出力されたデータは、データバスＳ１０１ｄｗから入力され、遅延回路１０２１に入力される。またこの時、ＣＰＵ１０１から出力されたアクセス対象レジスタのアドレスは、アドレスバスＳ１０１ａから入力され、Ｓ１０２ａへと出力されるだけでなく、マップメモリ１０２４のアドレスにも入力される。即ち、周辺ブロックにおける全レジスタ空間は、マップメモリ１０２４上にマッピングされ、都度ＣＰＵ１０１が周辺ブロックをアクセスする度に、マップメモリの対象アドレスもアクセスされることを意味する。データは、書き込みサイクルにおいて、カウンタ１０２３の値に従って、遅延回路１０２１の出力が選択され、カウンタ１０２３が初期値の場合、遅延０のデータが選択される。またこの時、ＣＰＵ１０１から出力されたデータＳ１０１ｄｗは、バスインターフェイス１０２内にあるバッファ１０２７に一時保管される。このようにしてバスインターフェイス１０２を通過したデータＳ１０２ｄｗは、アドレスＳ１０２ａの対象となるレジスタに対して、書き込みを実行する。
【００６９】
次に、ＣＰＵ１０１は校正プログラムに従って、読み出しサイクルへと移行する。ＣＰＵ１０１は、前記アクセス対象レジスタに対してアクセスを行うため、書き込みサイクルの時と同じアドレスをアドレスバスＳ１０１ａに出力し、同時にライト／リード信号を読み出しモードにする。アクセス対象となるレジスタは、この読み出しを検知して、ＣＰＵ１０１に対してデータを出力し、データバスＳ１０２ｄｒを介して、バスインターフェイス１０２に入力される。入力された読み出しデータＳ１０２ｄｒは、バスインターフェイス１０２内において、前記書き込みサイクルの時にバッファ１０２７に一時保管された書き込みデータと一致しているかを判定される。この時、前記一致判定回路によって書き込みデータと、読み出しデータとの一致が確認された場合、データがアクセス対象レジスタに正しく書き込めたことを、前記ＣＰＵ１０１に対して通知し、同時に前記バスインターフェイス１０２に入力されている校正モード信号Ｓ１０１ｃｂがアクティブで、かつライト／リード信号が読み出しモードであれば、前記カウンタ１０２３の値を前記アクセス対象となっているレジスタのアドレスがマッピングされた前記マップメモリ１０２４に書き込み、校正プログラムは次のアクセス対象レジスタに対してアドレスを変更し、再び書き込みサイクルへと移行する。一方、前記一致判定回路によって書き込みデータと読み出しデータの一致が確認されなかった場合、データがアクセス対象レジスタに正しく書き込めなかったことを前記ＣＰＵ１０１に対して通知し、再度、同じアクセス対象レジスタに対して書き込みサイクルへと移行すると同時に、前記カウンタ１０２３の値をインクリメントする。前記カウンタ１０２３の値がインクリメントされることにより、前記遅延回路１０２１における遅延量が増加する。
【００７０】
以上、これら一連の動作を繰り返すことによって、ＣＰＵ１０１から全レジスタに対して、データが正しく書き込めるタイミングを調整するが、この時、遅延回路１０２１内の総遅延時間がデータの最小アクセスサイクルの時間を超える場合には、最適なアクセスタイミングを得ることはできない。これは、上記説明したようなバスインターフェイス１０２の持つアクセス調整機能が、データの書き込みに対して、そのホールド時間を保証させるためのものであることによる。
【００７１】
そこで、前記ＣＰＵ１０１は、従来のアクセス方法であれば、図８に示すように、ウェイト法またはハンドシェイク法により、データのアクセスサイクルを延ばして、セットアップ時間を保証することによってデータを正しくアクセスさせていた。しかしながら、これらの手法は、レジスタアクセスのために、バスの占有時間とＣＰＵの演算処理に対してアクセス時間を延長した分だけペナルティを与えてしまう。そこで図１２に示すバスインターフェイス１０２では、次の処理を施すことによって、データアクセスによるシステム処理へのペナルティを低減させる。
【００７２】
図１２において、バスインターフェイス１０２は、内部にバッファメモリ１０２ａ２が設置され、前記ＣＰＵ１０１から出力されたデータを一旦該バッファメモリ１０２ａ２に記録し、上記説明したような、前記遅延回路１０２１の総遅延時間がデータの最小アクセスサイクルを超えた場合、即ち、前記カウンタ１０２３がオーバーフローした場合、該バッファメモリ１０２ａ２の書き込み／読み出し制御を行うバッファメモリ制御回路１０２ａ３の読み出しポインタＳ１０２ａ３を維持したまま、書き込みポインタをカウンタ１０２３のオーバーフロー信号Ｓ１０２ａ３によりインクリメントすることによってデータアクセスにおけるセットアップ時間を計測し、上記説明した、ホールド時間を保証するための遅延時間を前記カウンタ１０２３によって計測し該カウンタ１０２３の値を前記マップメモリ１０２４に記録した場合と同様、該セットアップ時間を保証するための遅延時間を前記カウンタ１０２３がオーバーフローした回数、即ち、前記バッファメモリ制御回路における書き込みポインタと読み出しポインタの差、を前記マップメモリ１０２４に記録する。
【００７３】
以上、これら一連の動作を繰り返すことによって、ＣＰＵ１０１から全レジスタに対してデータを正しく書き込めるタイミングが前記マップメモリ１０２４に記録され、校正プログラムの終了後、再びＣＰＵ１０１がレジスタに書き込みを行う場合、バスインターフェイス１０２は、アクセス対象となっているレジスタのアドレスから前記マップメモリ１０２４にマッピングされている遅延量を参照し、ホールド時間に対しては、遅延回路１０２１によって最適なタイミングに遅延されたデータがバスインターフェイス１０２から出力され、一方セットアップ時間に対しては、バッファメモリ１０２ａ２によってデータが確実にアクセスされるまで読み出しポインタを停止させることにより、常に正しいデータをレジスタに書き込むことが可能となる。
【００７４】
またこの時、前記バッファメモリ１０２ａ２には、アドレスＳ１０１ａと、データＳ１０１ｄｗ、およびライト／リード信号Ｓ１０１ｗｒがマルチプレクサ１０２ａ１によって、同時に前記バッファメモリ１０２ａ２に記録され、上記説明したように、データが周辺ブロックにおけるレジスタに対して確実にアクセスされるまで読み出しポインタを停止させることにより、アクセス対象レジスタのアドレスも同時に保持され、前記レジスタに対してライトイネーブルが取り消されることなく、前記ＣＰＵ１０１は次のレジスタアクセスに移行することができる。即ち、前記ＣＰＵ１０１は、データアクセスのセットアップ時間を保証するために、アクセスサイクルを延長していたが、上記バッファメモリにデータを一時格納することによって、前記ＣＰＵ１０１が連続してレジスタアクセスを実行した場合においても、最初にアクセスされたレジスタに対して確実にアクセスが実行されるまでは、前記バッファメモリ１０２ａ２の読み出しポインタを停止させることで正しくレジスタにアクセスでき、続いてアクセスされたレジスタに対しては、前記バッファメモリ１０２ａ２に対して前記バッファメモリ制御回路によって読み出しポインタを停止させたまま書き込みポインタをインクリメントすることで直ちにデータを確保でき、最初にデータアクセスが完了した時点で再び読み出しポインタをインクリメントすることによって、次のデータアクセスに対して最適なアクセスタイミングを適用した状態でレジスタへアクセスさせることができるため、ＣＰＵ１０１は、レジスタへの連続アクセスに対して、セットアップ時間を保証するためのアクセスサイクルの延長を施すことなく、各データアクセスサイクルに対して必ず１サイクルで処理が完了することができ、データの書き込みアクセスに関して、ＣＰＵへのペナルティを最小限に抑えることが可能となる。
【００７５】
このような本実施の形態８による制御装置においては、バスインターフェイス内でデータ、アドレス、およびライト／リード信号を一時バッファメモリに保管することにより、ＣＰＵからのアクセスサイクルを常に１サイクルで実現し、ＣＰＵと周辺回路ブロックにおけるレジスタとのデータアクセスによるＣＰＵへのペナルティを最小限に抑えることができる効果が得られる。
【００７６】
【発明の効果】
以上のように、本発明にかかる制御装置によれば、ＣＰＵと、周辺回路との間にバスインターフェイスを設置し、校正プログラムによって各周辺回路におけるレジスタの最適なアクセスタイミングを個々に調整することによって、デバイスの製造工程を経た後であっても、各々のデバイスが独自にアクセスタイミングを調整することにより、煩雑なタイミング検証を解消し、更にはプロセスのバラツキや経年劣化、および使用条件の変化といった外的要因に対しても、その影響を受けなくするようにすることができるものである。
【図面の簡単な説明】
【図１】本発明の実施の形態１にかかるブランチ構造の制御装置におけるバス構成の概念図
【図２】本発明の実施の形態１におけるバス構成の概念図
【図３】本発明の実施の形態１におけるバス構成に係る信号線を示す図
【図４】本発明の実施の形態１におけるバスインターフェイスの構成を示す図
【図５】本発明の実施の形態２にかかる制御装置における遅延装置の構成図
【図６】本発明の実施の形態３にかかる制御装置における遅延装置の構成図
【図７】データの書き込みアクセス（１サイクル）に係るタイミング図
【図８】データの書き込みアクセス（２サイクル）に係るタイミング図
【図９】データの書き込みアクセス（正常）に係るタイミング図
【図１０】データの書き込みアクセス（異常）に係るタイミング図
【図１１】データの書き込みアクセス（調整）に係るタイミング図
【図１２】本発明の実施の形態３に係る制御装置を示す構成図
【図１３】本発明の実施の形態５に係る制御装置を示す構成図
【図１４】本発明の実施の形態６に係る制御装置を示す構成図
【図１５】本発明の実施の形態４、実施の形態５、および実施の形態７に係る制御方法を示すフローチャート
【図１６】本発明の実施の形態５に係る制御方法を示すフローチャート
【図１７】本発明の実施の形態６に係る制御方法を示すフローチャート
【図１８】本発明の実施の形態７に係るフローチャート
【図１９】本発明の実施の形態７に係るレジスタアクセスのフローチャート
【図２０】本発明の実施の形態７に係るレジスタアクセスのフローチャート
【図２１】従来例におけるブランチ構造のバス構成の概念図
【図２２】従来例におけるチェイン構造のバス構成の概念図
【図２３】従来例におけるブランチ構造のバス構成に係る信号線を示す図
【図２４】従来例におけるチェイン構造のバス構成に係る信号線を示す図
【符号の説明】
１０１    ＣＰＵ
Ｓ１０１    ＣＰＵに接続されるバス
Ｓ１０１ａ    ＣＰＵから出力されるアドレスバス
Ｓ１０１ｄｗ    ＣＰＵから出力されるデータバス（書き込み）
Ｓ１０１ｄｒ    ＣＰＵに入力されるデータバス（読み出し）
Ｓ１０１ｗｒ    ＣＰＵから出力されるライト／リード信号
Ｓ１０１ｃｂ    校正プログラム実行モード信号
Ｓ１０１ａｋ    データアクセスの応答信号
１０２    バスインターフェイス
Ｓ１０２    スインターフェイス−周辺回路ブロック間で接続されるバス
Ｓ１０２ａ    バスインターフェイスから出力されるアドレスバス
Ｓ１０２ｄｗ    バスインターフェイスから出力されるデータバス（書き込み）
Ｓ１０２ｄｒ    バスインターフェイスに入力されるデータバス（読み出し）
Ｓ１０２ｗｒ    バスインターフェイスから出力されるライト／リード信号
１０２１    遅延回路
１０２１Ｄ０    データ遅延用フリップフロップ
１０２１Ｄ１〜Ｄｎ    データ遅延用バッファ
Ｓ１０２１Ｄ０〜Ｄｎ    データバス
１０２１Ｓ０〜１    データ遅延選択回路
１０２１Ｉ０    半相遅延用インバータ
１０２２    選択回路
Ｓ１０２２    遅延値選択信号
１０２３    カウンタ
Ｓ１０２３    カウンタ出力
１０２４    マップメモリ
Ｓ１０２４    マップメモリデータ
１０２５    マップメモリアクセス判定回路
Ｓ１０２５    マップメモリ書き込みイネーブル
１０２６    データ一致検出回路
１０２７    データバッファ
１０２ａ１    アドレス・データマルチプレクサ
Ｓ１０２ａ１    アドレス・データ入力バス
１０２ａ２    Ｆｉ−Ｆｏメモリ
Ｓ１０２ａ２    アドレス・データ出力バス
１０２ａ３    Ｆｉ−Ｆｏメモリ制御回路
Ｓ１０２ａ３    Ｆｉ−Ｆｏメモリ制御信号
１０２ａ４    アドレス選択回路
１０２ａ５    データ選択回路
Ｓ１０２ａ５    データバス
１０３    周辺回路ブロックＡ
Ｓ１０３    チェインバス
１０４    周辺回路ブロックＢ
Ｓ１０４    チェインバス
１０５    周辺回路ブロックＣ
Ｓ１０５    チェインバス
１０６    タイマー
Ｓ１０６    タイマー割り込み
１０７    検知回路
Ｓ１０７    検知割り込み
【図１】
2004326690.tif 000003
【図２】
2004326690.tif 000004
【図３】
2004326690.tif 000005
【図４】
2004326690.tif 000006
【図５】
2004326690.tif 000007
【図６】
2004326690.tif 000008
【図７】
2004326690.tif 000009
【図８】
2004326690.tif 000010
【図９】
2004326690.tif 000011
【図１０】
2004326690.tif 000012
【図１１】
2004326690.tif 000013
【図１２】
2004326690.tif 000014
【図１３】
2004326690.tif 000015
【図１４】
2004326690.tif 000016
【図１５】
2004326690.tif 000017
【図１６】
2004326690.tif 000018
【図１７】
2004326690.tif 000019
【図１８】
2004326690.tif 000020
【図１９】
2004326690.tif 000021
【図２０】
2004326690.tif 000022
【図２１】
2004326690.tif 000023
【図２２】
2004326690.tif 000024
【図２３】
2004326690.tif 000025
【図２４】
2004326690.tif 000026