JP2004326690A - 制御装置 - Google Patents
制御装置 Download PDFInfo
- Publication number
- JP2004326690A JP2004326690A JP2003124179A JP2003124179A JP2004326690A JP 2004326690 A JP2004326690 A JP 2004326690A JP 2003124179 A JP2003124179 A JP 2003124179A JP 2003124179 A JP2003124179 A JP 2003124179A JP 2004326690 A JP2004326690 A JP 2004326690A
- Authority
- JP
- Japan
- Prior art keywords
- data
- access
- cpu
- register
- control device
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
【課題】レジスタなどへのデータアクセスに関して、半導体製造工程の微細化、デバイスの高速化に伴ってタイミングを保証するための検証が煩雑になり、更には経年劣化や使用条件の変化などの影響を受けてもアクセスを保証することが困難になってきている。特にデータアクセスのタイミングにおいて、セットアップは自動的に保証される方法が提案されているが、ホールドに対する提案が乏しい。
【解決手段】レジスタへのデータアクセスにおいて、送信側と受信側の間にインターフェイスを設置し、校正プログラムによって該インターフェイスに内蔵されるマップメモリに最適なアクセスタイミングを記録し、校正後再びデータアクセスを実行する場合には、マップメモリのタイミングデータを参照しながらデータアクセスを実行する。
【選択図】 図1
【解決手段】レジスタへのデータアクセスにおいて、送信側と受信側の間にインターフェイスを設置し、校正プログラムによって該インターフェイスに内蔵されるマップメモリに最適なアクセスタイミングを記録し、校正後再びデータアクセスを実行する場合には、マップメモリのタイミングデータを参照しながらデータアクセスを実行する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、制御装置に関し、特にバスを介したデータアクセスの、特に書き込み制御において、自動的に最適なタイミングを検出し、設定することを可能としたバス制御装置に関する。
【0002】
【従来の技術】
従来、バスにおけるデータアクセス、特にCPUが周辺回路のレジスタにアクセスする場合、図21に示すようなブランチ構成、または図22に示すようなチェイン構成(デイジーチェイン)が一般的であった。以下、その構成について図を参照しながら説明する。
【0003】
図21は、CPU101から見て、各周辺回路103〜105に内蔵されているレジスタが、データアクセスに関わる信号線S101を介して、CPU101と木の枝のように接続されているブランチ構成のバスシステムを示している。
【0004】
図22は、CPU101から見て、各周辺回路103〜105に内蔵されているレジスタが、CPU101を起点として、データアクセスに関わる信号線S101、S103、S104、S105により、数珠状に順次接続され、最終的にCPU101に戻るようなチェイン構造のバスシステムを示している。
【0005】
これら従来のバスシステムにおいて、データがアクセスされる場合について、以下説明する。
図21および図22に示される信号線S101は、図23および図24に示されるように、各周辺回路に内蔵されるレジスタを識別するためのアドレスバスS101a、レジスタにデータを書き込むためのデータバスS101dw、レジスタへのデータアクセスが、書き込みなのか、読み出しなのかを識別するためのライト/リード信号S101wr、レジスタのデータを読み出すためのデータバスS101dr、およびレジスタにデータがアクセスされたことを示す応答信号S101akのような信号に、代表されるもので構成されている。
【0006】
まず、図21に示すようなブランチ構造をもつバスシステムにおいては、CPUと各周辺回路との関係は、図23に示すような1対1の関係になり、CPUのデータアクセスに対して、CPUよりのアクセスの対象となるレジスタへのデータパスが唯一決定され、このデータパス上でのみ、データのアクセスが実行される。
【0007】
データの書込みアクセスにおいては、CPU101から周辺回路102に内蔵されるレジスタを識別するアドレスがアドレスバスS101aを介して出力され、同時にデータがデータバスS101dwを介して出力される。この時、データは書き込みアクセスであるため、同CPU101から出力されるライト/リード信号S101wrはライトイネーブル状態になる。一方、周辺回路102側では、アドレスバスS101aを介して入力されたアドレスが前記周辺回路102に内蔵されるレジスタへのアクセスであることを検知し、かつ該アクセスが書き込みであることから、データバスS101dwを介して、前記周辺回路102に入力されているデータをレジスタに書き込む。この時、周辺回路102はデータがアクセスされたことをCPU101に知らせるための応答信号S101akを、CPU101に対して出力する。
【0008】
データの読み出しアクセスにおいては、書き込みアクセスと同様、CPU101から周辺回路102に内蔵されるレジスタを識別するアドレスがアドレスバスS101aを介して出力され、同時にデータの読み出しアクセスであるため、同CPU101から出力されるライト/リード信号S101wrはリードイネーブル状態になる。一方、周辺回路102側では、アドレスバスS101aを介して入力されたアドレスが前記周辺回路102に内蔵されるレジスタへのアクセスであることを検知し、かつ該アクセスが読み出しであることから、データバスS101drを介して前記周辺回路102に内蔵されているレジスタに格納されているデータを出力する。この時、周辺回路102は、データがアクセスされたことをCPU101に知らせるための応答信号S101akを、CPU101に対して出力する。CPU101は書き込みアクセスにおいても、また読み出しアクセスにおいても、この応答信号S101akが入力され、これを検知した時点で、書き込みアクセスまたは読み出しアクセスに係る信号の出力を打ち切り、次のアクセスサイクルへと移行する。
【0009】
次に、図22に示すようなチェイン構造をもつバスシステムにおいては、CPUと各周辺回路との関係が、図22に示すように、全ての周辺回路を介してCPUに信号が帰還するため、ある周辺回路に注目した場合、図24に示すように、CPUのデータアクセスに対して、CPUとアクセスの対象となるレジスタへのデータパスは、データがCPU101から出力された後、周辺回路102、103、104とチェイン状に接続された順に、データが各周辺回路を通り抜けて、アクセス対象となる周辺回路10Nに入力され、該周辺回路に内蔵されるレジスタに対してデータアクセスが実行される。
【0010】
また、図22のようなチェイン構造のバスシステムにおけるデータの書込みアクセスにおいては、CPU101から周辺回路10Nに内蔵されるレジスタを識別するアドレスが、アドレスバスS101aを介して出力され、同時にデータがデータバスS101dwを介して出力される。この時、データの書き込みアクセスであるため、前記CPU101から出力されるライト/リード信号はライトイネーブル状態になる。一方、周辺回路10N側では、アドレスバスS101aを介して直接入力されたアドレスが、前記周辺回路10Nに内蔵されるレジスタへのアクセスであることを検知し、かつ該アクセスが書き込みであることから、データをレジスタに書き込む。この時、周辺回路10Nに入力されるデータは、チェイン状に接続された各周辺回路を順に通り抜けて伝達される。次に、周辺回路10Nは、データがアクセスされたことをCPU101に知らせるための応答信号S10Nakを、CPU101に対して出力するが、この応答信号もまたチェイン状に接続された周辺回路を通り抜けて、CPU101に返される。
【0011】
データの読み出しアクセスにおいては、書き込みアクセスと同様、CPU101から周辺回路10Nに内蔵されるレジスタを識別するアドレスがアドレスバスS101aを介して出力され、同時にデータの読み出しアクセスであるため、前記CPU101から出力されるライト/リード信号は、リードイネーブル状態になる。一方、周辺回路10N側では、アドレスバスS101aを介して直接入力されたアドレスが、前記周辺回路10Nに内蔵されるレジスタへのアクセスであることを検知し、かつ該アクセスが読み出しであることから、データバスS10Ndwを介して、前記周辺回路102に内蔵されているレジスタに格納されているデータを出力する。この時、読み出しデータは、チェイン状に接続された各周辺回路を順に通り抜けてCPU101に伝達される。また、周辺回路10Nは、データがアクセスされたことをCPU101に知らせるための応答信号S10Nakを、CPU101に対して出力するが、この応答信号もまたチェイン状に接続された周辺回路を順に通り抜けてCPU101に返される。CPU101は書き込みアクセスにおいても、また読み出しアクセスにおいても、この応答信号S101akが入力され、これを検知した時点で、書き込みアクセスまたは読み出しアクセスに係る信号の出力を打ち切り、次のアクセスサイクルへと移行する。
【0012】
上記した各バスシステムの特徴として、ブランチ構造の場合、CPUと各周辺回路との関係が全て1対1であるため、高速なデータアクセスが可能となる。しかしながら、同構造では、CPUから各ブロックに対してそれぞれアドレスバスやデータバスなどを接続する必要があるため、信号線が増大してチップ面積を増大させる原因となる。これに対してチェイン構造の場合、CPUと各周辺回路とが順次チェイン状に接続されているため、データバスに関して、あるいはアドレスなどの信号も含めて、1つのアクセスパスしか存在しないため、信号線を削減でき、チップ面積の削減に効果が得られる。しかしながら、チェイン構造では、CPUからチェイン状に接続される周辺回路に対して、データまたは応答信号が複数の周辺回路を通り抜けてからアクセスされるため、高速なアクセスに不利となる。
【0013】
これらのバスシステムにおいて、同期式のデータアクセスが行われるシステムでは、特にレジスタへの書き込みアクセスに対して、図7に示すようなアクセスタイミングが一般的である。
【0014】
図7において、データはライトイネーブル期間中にクロックの立ち上がりタイミングでレジスタに書き込まれる。この時、CPUから出力されているデータおよびライトイネーブルは、クロックに対して確実にデータを書き込めるよう、図7に示すように、セットアップ時間と、ホールド時間が保証されていなければならない。
【0015】
セットアップに関して、高速動作、または物理的にCPUと、レジスタとの距離が遠いことが原因で、クロックの1サイクル内にデータが確定しない場合がしばしばある。この様な課題に対して、図8に示すような、クロックの2サイクル目以降にデータが書き込めるよう、CPU側の設定によってアクセスサイクルを増やすウェイト法(例えば、特許文献1参照)や、図7および図8に示すような、レジスタ側にデータが到達したことを知らせる応答信号(Ack)を、CPUに返すまでをアクセスサイクルとするハンドシェイク法(例えば、特許文献2参照)などが一般的に知られている。
一方、ホールドに関して、同期設計の場合、タイミング検証にてクロックに対する各レジスタのホールド時間を保証している。
【0016】
【特許文献1】
特開平9−319704号公報(第15−16頁、第5図)
【特許文献2】
特開2000−339213号公報(第18−18頁、第7図)
【0017】
【発明が解決しようとする課題】
上記したようにシステムLSIのレジスタアクセスにおいて、特に同期設計の場合、タイミング検証によって各レジスタにおけるクロックに対するデータのセットアップ時間およびホールド時間を保証しているが、半導体製造工程の微細化、回路規模の増大、さらにシステムの高速化などの理由から、上記したセットアップ時間ならびにホールド時間を保証するための検証工数が増大し、開発TATに対して影響を与えている。
【0018】
また、このような検証を経てデバイスが製造された後も、温度や電圧などの動作条件、LSIの製造過程で発生するバラツキ、または経年劣化によって、LSI内部の遅延量が変化し、正常に動作しない恐れがある。即ち、検証時において、図9または図10に示すように、クロックの立ち上がりエッヂに対して、常にデータ、およびライトイネーブルの位相が遅れるような関係にあれば、データは必ず正しくレジスタに書き込まれるが、製造バラツキ、使用条件の変化、または経年劣化などによって、データ、ライトイネーブル、およびクロックの位相関係が、図9および図10に示すように変化した場合には、図9に示すようにデータが常にライトイネーブルより遅れるような位相関係にあれば、誤動作を引き起こすことはないが、図10に示すようにライトイネーブルがデータより遅れるような位相関係にあれば、誤ったデータをレジスタに書き込むことになる。
【0019】
更にこのような課題に対して、例えばメモリとのアクセスであれば、そのアクセスタイミングを調整する方法が提案されているものもあるが、レジスタのようなCPUとのアクセスが各々固有のものであれば、メモリのように、ある任意のアドレスに対してアクセスが保証できれば、全体のアクセスを保証できるようなものではなく、各々のレジスタに対して最適なアクセスタイミングを調整する必要がある。従来の仕組みでは、1つのアドレス、即ち数あるレジスタのうち、僅か1レジスタに対してしかアクセスを保証できず、仮に全てのレジスタに対して同様の仕組みを施すことになれば、その回路規模は極端に増大してしまうといった課題がある。またこれまでに提案されているアクセスタイミングの自動調整方法は、データの読み出しに対してのみこれを保証するものであって、データが正しく書き込めているかを保証するものではない。
【0020】
本発明は、このような従来の問題点を解決するためになされたもので、半導体製造工程の微細化、回路規模の増大、並びにシステムの高速化に伴って増大するタイミング検証の煩雑さを解消し、更には、デバイスが製造された後、その動作条件、製造バラツキ、または経年劣化によってLSI内部の信号伝達の遅延量が変化し、LSIが誤動作することを、未然に防ぐことのできる制御装置を提供することを目的としている。
【0021】
【課題を解決するための手段】
上記課題を解決するために、本発明(請求項1)にかかる制御装置は、CPUと、複数の周辺回路との間で、1つのバスインターフェイスを介して、データアクセスを行う制御装置において、全ての周辺回路に内蔵される全てのレジスタに対して、校正プログラムによって、各々のアクセスタイミングを自動的に調整しながらデータアクセスを行う、上記全てのレジスタに対する確実なデータアクセスを保証するようにするものである。
【0022】
また、本発明(請求項2)にかかる制御装置は、請求項1記載の制御装置において、前記校正プログラムの実行時における、各レジスタにおける最適なアクセスタイミングを、マップメモリに記録し、前記校正プログラムが終了した後、再び前記CPUにより、前記マップメモリに記録されている該レジスタにおける最適なアクセスタイミングを参照して、前記周辺回路のレジスタに対し、データアクセスを行い、前記各レジスタにおけるデータアクセスのホールド時間を保証するようにするものである。
【0023】
また、本発明(請求項3)にかかる制御装置は、請求項2記載の制御装置において、最適なアクセスタイミングを提供するための遅延回路が、フリップフロップで構成され、該フリップフロップのラッチタイミングが、データの変化タイミングを決定しているクロックと逆相関係にあるクロックでラッチされ、データが変化する周期の半相分の遅延時間により、前記各レジスタにおけるデータアクセスのホールド時間を保証するものである。
【0024】
また、本発明(請求項4)にかかる制御装置は、請求項2記載の制御装置において、最適なアクセスタイミングを提供するための遅延回路が、バッファで構成され、該遅延バッファをデータアクセスに最適な遅延時間を得るだけの段数が、直列に接続され、前記バッファチェインの総遅延時間により、前記各レジスタにおけるデータアクセスのホールド時間を保証するものである。
【0025】
また、本発明(請求項5)にかかる制御装置は、請求項1記載の制御装置において、システムの起動時に、全ての周辺回路に内蔵される全てのレジスタに対して、校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、前記全てのレジスタに対する確実なデータアクセスを保証するようにするものである。
【0026】
また、本発明(請求項6)にかかる制御装置は、請求項1記載の制御装置において、タイマーなどのカウンタによる割り込みによって、周期的に、全ての周辺回路に内蔵される全てのレジスタに対して、前記校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、前記全てのレジスタに対する確実なデータアクセスを保証するようにするものである。
【0027】
また、本発明(請求項7)にかかる制御装置は、請求項1記載の制御回路において、周囲の条件変化を検知する検知回路による割り込みによって、例えば温度変化や電圧変化が生じた場合に、全ての周辺回路に内蔵される全てのレジスタに対して、前記校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、前記全てのレジスタに対する確実なデータアクセスを保証するようにするものである。
【0028】
また、本発明(請求項8)にかかる制御装置は、請求項1記載の制御回路において、周辺回路とのデータアクセス時に書き込みエラーが発生したとき、全ての周辺回路に内蔵される全てのレジスタに対して、校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、前記全てのレジスタに対する確実なデータアクセスを保証するようにするものである。
【0029】
また、本発明(請求項9)にかかる制御装置は、請求項1記載の制御回路において、前記校正プログラムが実行された後、前記CPUが、前記周辺回路に対してデータの書き込みアクセスを実行したとき、該CPUは、データの書き込みアクセスに対してセットアップ時間を保証するよう、ウェイト法またはハンドシェイク法によってアクセスサイクルを延ばし、データアクセスの1サイクル目で、該データをアクセスさせる周辺回路におけるレジスタのアドレスおよび該データを、バッファメモリに一時的に保存し、前記マップメモリから確実にアクセスが完了していることを判断した時点で、前記バッファメモリから前記レジスタのアドレスおよび前記データを消去し、かつ、前記CPUによる周辺回路に対するデータの書き込みアクセスは、CPUから見て1サイクルでこれを完了するものである。
【0030】
【発明の実施の形態】
本発明の実施の形態について、以下、図を用いて説明する。
(実施の形態1)
図1および図2は、本発明の実施の形態1に係わる制御装置を説明した図である。
【0031】
図1において、CPU101が周辺回路103〜105に対してデータのアクセスを行う場合、データのアクセスはバスインターフェイス102を介して実行される。図1に示すバスシステムでは、CPU101に対して、バスインターフェイス102を介して各周辺回路103〜105がブランチ状に接続されており、CPU101と、各周辺回路103〜105との間に、それぞれ固有のアクセスパスが存在する。
【0032】
図2において、CPU101が周辺回路103〜105に対してデータのアクセスを行う場合、データのアクセスはバスインターフェイス102を介して実行される。図2に示すバスシステムでは、CPU101に対して、バスインターフェイス102を介して各ブロック103〜105がチェイン状に接続されており、CPU101と、各周辺回路103〜105とが全て同じアクセスパス上に存在する。
【0033】
図3は、図1および図2におけるCPU101とバスインターフェイス102に係る信号を示した図である。図3において、CPU101およびバスインターフェイス102は、バスシステムの構成が、図1に示すようなブランチ構造、または図2に示すようなチェイン構造、のいずれの場合であっても、同じ構成を持つ。CPU101は、周辺回路に対してデータのアクセスを実行する時、CPU101からデータのアクセス対象となる周辺回路に対してアドレスをアドレスバスS101aに対して出力する。バスインターフェイス102は、このアドレスを、アドレスバスS101aより受け取り、アドレスバスS102aを介して周辺回路へ出力する。また同時に、CPU101は、データのアクセス対象となる周辺回路に対してデータを書き込むか、または読み出すかを判断させるためのライト/リード信号S101wrを出力する。バスインターフェイス102は、このライト/リード信号S101wrを受け取り、ライト/リード信号S102wrを介して周辺回路へ出力する。またこの時、周辺回路へのデータアクセスが書き込みである場合、CPU101はデータをデータバスS101dwに出力する。バスインターフェイス102は、CPU101から出力されたデータを、データバスS101dwより受け取り、適切なタイミングに調整した後、データバスS102dwを介して周辺回路へ出力する。またこの時、周辺回路へのデータアクセスが読み出しである場合、バスインターフェイス102は周辺回路から出力されたデータを、データバスS102drより受け取り、データバスS101drを介してCPU101に出力する。またこの時、バスインターフェイス102は、データアクセスが実行されたことをCPU101に通知するため、データアクセス応答信号S101akをCPU101に対して出力する。またこの時、周辺回路へのデータアクセスに対し、適切なアクセスタイミングを自動的に設定するための校正プログラムが実行されることを知らせるための信号S101cbが、CPU101からバスインターフェイス102に対して接続されている。即ち、図3に示すバスインターフェイス102は、CPU101から周辺回路に対してデータアクセスを実行する場合に、各周辺回路、または各周辺回路に内蔵される各レジスタに対して、それぞれ固有の最適なタイミングで常にアクセスできるよう制御を行う装置である。
【0034】
図4は、図3におけるバスインターフェイス102の構成を示した図である。次に、該バスインターフェイス102の動作について説明する。
【0035】
バスインターフェイス102は、校正プログラムが実行されていることを知らせる校正モード信号S101cbを検知すると、カウンタ1023をリセットし、遅延回路1021への遅延選択信号S1021をカウンタ出力S1023側に選択する。またこの時、CPU101は、校正プログラムによって、全レジスタに対するアクセスチェックを行うためのデータを出力し、同時にレジスタへの書き込みを行うためにライト/リード信号S101wrを書き込みモードにする。CPU101から出力されたデータは、データバスS101dwから入力され、遅延回路1021に入力される。またこの時、CPU101から出力されたアクセス対象レジスタのアドレスは、アドレスバスS101aから入力され、S102aへと出力されるだけではなく、マップメモリ1024のアドレスにも入力される。即ち、周辺回路における全てのレジスタのアドレスがマップメモリ1024上にマッピングされ、都度CPU101が周辺回路をアクセスする度に、マップメモリの対象アドレスもアクセスされることを意味する。データは、書き込みサイクルにおいて、カウンタ1023の値に従って、遅延回路1021の出力が選択され、カウンタ1023が初期値の場合、遅延0のデータが選択される。またこの時、CPU101から出力されたデータS101dwは、バスインターフェイス102内にあるバッファ1027に一時保管される。このようにして、バスインターフェイス102を通過したデータS102dwは、アドレスS102aの対象となるレジスタに対して書き込みが実行される。
【0036】
次にCPU101は校正プログラムに従って、読み出しサイクルへと移行する。CPU101は前記アクセス対象レジスタに対してアクセスを行うため、書き込みサイクルの時と同じアドレスをS101aに出力し、同時にライト/リード信号S101wrを読み出しモードにする。アクセス対象となるレジスタは、この読み出しを検知してCPU101に対してデータを出力し、データバスS102drよりバスインターフェイス102に入力される。入力された読み出しデータS102drは、バスインターフェイス102内において、前記書き込みサイクルの時に一時保管されたバッファ1027の書き込みデータと一致しているかどうかが一致判定回路1026により判定される。この時、前記一致判定回路1026によって書き込みデータと読み出しデータの一致が確認された場合、データがアクセス対象レジスタに正しく書き込めたことを前記CPU101に対して通知し、同時に前記バスインターフェイス102に入力されている校正モード信号S101cbがアクティブで、かつライト/リード信号が読み出しモードであれば、前記カウンタ1023の値を前記アクセス対象となっているレジスタのアドレスがマッピングされた前記マップメモリ1024に書き込み、校正プログラムは次のアクセス対象となるレジスタのアドレスに変更し、再び書き込みサイクルへと移行する。一方、前記一致判定回路1026によって書き込みデータと読み出しデータの一致が確認されなかった場合、データがアクセス対象レジスタに正しく書き込めなかったことを前記CPU101に対して通知し、再度同じアクセス対象レジスタに対して書き込みサイクルへと移行すると同時に、前記カウンタ1023の値をインクリメントする。前記カウンタ1023の値がインクリメントされることにより、前記遅延回路1021において選択される遅延量が増加する。
【0037】
以上、これら一連の動作を繰り返すことによって、CPU101から全レジスタに対して、データを正しく書き込めるタイミングが前記マップメモリ1024に記録され、校正プログラムの終了後、再びCPU101がレジスタに書き込みを行う場合、バスインターフェイス102は、アクセス対象となっているレジスタのアドレスから前記マップメモリ1024にマッピングされている遅延量を参照し、遅延回路1021によって最適なタイミングに遅延されたデータをバスインターフェイス102から出力することにより、常に正しいデータをレジスタに書き込むことが可能となる。
【0038】
このような本実施の形態1による制御装置においては、全てのレジスタに対して個々に最適なアクセスタイミングをマップメモリに記録することにより、タイミング調整後であれば、CPUと周辺回路ブロックにおけるレジスタとのデータアクセスにおいて、正常なアクセスを実現する効果が得られ、同時にタイミング検証の煩雑さを解消できる効果が得られる。
【0039】
(実施の形態2)
図5は、本発明の実施の形態2に係わる制御装置における遅延装置を説明した図である。
図5において、遅延素子(フリップフロップ)1021D0は、遅延回路1021に入力されるデータS101dwを、データの変化点から半相遅れたタイミングでラッチさせる遅延素子であって、前記遅延回路1021に入力されるクロックckを、インバータ回路1012I0によって逆相とし、これによって前記入力データS101dwをラッチする。遅延選択回路1021S0は、前記遅延回路1021に入力される遅延設定信号S1022によって、前記遅延回路1021に入力されるデータS101dwか、または前記遅延素子1021D0によって前記入力データS101dwの変化点から半相分遅延したデータS1021D0か、の何れかを選択する。
【0040】
上記実施の形態1で既に説明したように、データの最適なアクセスタイミングを調整する校正プログラムが実行されている場合、遅延選択信号S1022は、まず遅延のない状態を示し、前記遅延選択回路1021S0は、入力データS101dwを選択し、データ出力S102dwへ出力する。このデータが正しくアクセスされていなかった場合には、前記遅延選択信号S1022はデータを遅延させる状態を示し、前記遅延選択回路1021S0は、遅延素子1021D0の出力S1021D0を選択し、データ出力S102dwへ出力する。データの書き込みアクセスにおけるホールド時間は、データ変化における最小サイクルの半相分の遅延差によって保証されるため、レジスタへのデータが確実に実行される。
【0041】
このようにして最適なアクセスタイミングが設定され、校正プログラムが終了した後、再びデータのアクセスが実行された場合、既に記録されているアクセスタイミングの情報に従って、前記遅延選択信号S1022は、入力データS101dwか、遅延素子1021D0によって半相遅延したデータS1021D0か、の何れかを選択し、常に最適なタイミングでデータ出力S102dwに出力する。
【0042】
このような本実施の形態2による制御装置における遅延装置においては、CPUと周辺回路ブロックにおけるレジスタとのデータアクセスにおいて、最適なホールド時間を得るための遅延回路を、フリップフロップで構成するようにしたので、該遅延回路の占める面積を小さく抑えることができる効果が得られる。
【0043】
(実施の形態3)
図6は、本発明の実施の形態3に係わる制御装置における遅延装置を説明した図である。以下、各機能について説明する。
図6において、遅延素子(バッファ)1021D1〜1021Dnは直列に接続され、遅延回路1021に入力されるデータS101dwを、データの変化点から遅延素子一段当りの遅延量によって徐々に遅延させる。遅延選択回路1021S1は、前記遅延回路1021に入力される遅延設定信号S1022によって、前記遅延回路1021に入力されるデータS101dwか、または前記遅延素子1021D1〜1021Dnによって前記入力データS101dwの変化点から遅延素子一段当りの遅延量によって徐々に遅延されたデータS1021D1〜S1021Dnか、の何れかを選択する。
【0044】
上記実施の形態1で既に説明したように、データの最適なアクセスタイミングを調整する校正プログラムが実行されている場合、遅延選択信号S1022は、まず遅延のない状態を示し、前記遅延選択回路1021S1は、入力データS101dwを選択し、データ出力S102dwへ出力する。このデータが正しくアクセスされていなかった場合には、前記遅延選択信号S1022は、データを遅延素子一段分の遅延量だけ遅延させる状態を示し、前記遅延選択回路1021S1は、遅延素子1021D1の出力S1021D1を選択してデータ出力S102dwへ出力する。再びデータが正しくアクセスされていなかった場合には、前記遅延選択信号S1022は、データを更に遅延素子一段分の遅延量だけ遅延させる状態を示し、前記遅延選択回路1021S1は、遅延素子1021D2の出力S1021D2を選択してデータ出力S102dwへ出力し、以降データのアクセスが正しく実行されるまでこの動作を繰り返す。データの書き込みアクセスにおけるホールド時間は、遅延素子の総遅延量の範囲内によって保証されるため、レジスタへのデータが確実に実行される。
【0045】
このようにして最適なアクセスタイミングが設定され、校正プログラムが終了した後、再びデータアクセスが実行された場合、既に記録されているアクセスタイミングの情報によって、前記遅延選択信号S1022は、入力データS101dwか遅延素子1021D1〜1021Dnによって遅延されたデータS1021D1〜S1021Dnの何れかを選択し、常に最適なタイミングでデータ出力S102dwに出力する。
【0046】
このような本実施の形態3による制御装置における遅延装置においては、CPUと周辺回路ブロックにおけるレジスタとのデータアクセスにおいて、最適なホールド時間を得るための遅延回路を、バッファを直列に接続した構成とするようにしたので、周辺回路ブロックにおける各レジスタのデータ到達時間を最小にすることができる効果が得られる。
【0047】
(実施の形態4)
図15は、本発明の実施の形態4に係わる制御方法を説明した図である。各処理フローについて説明する。
図15において、システムが起動した後、CPUは全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムCPを実行する。
【0048】
前記校正プログラムCPは、全レジスタ空間をアクセスする(ステップS1)ために順次アドレスを変更する。最初のレジスタアクセスにおいて、まず校正プログラム実行直前に元々該レジスタが保有していた値をワークメモリに退避させ(ステップS2)、同時にデータの遅延量を計るカウンタがリセットする(ステップS3)。続いて、アクセス対象となるレジスタに対して校正パターン1、例えば0101パターンを書き込む(ステップS4)。次に書き込んだデータを前記レジスタから読み出し(ステップS5)、既に書き込まれているはずの校正パターン1のデータ、例えば0101と比較する(ステップS6)。この時、前記比較した結果が一致しなかった場合(ステップS6でNo)、前記カウンタの値が1だけインクリメントされ(ステップS7)、再度校正パターン1を同じレジスタに対して書き込んだ(ステップS4)後、書き込んだデータを前記レジスタから読み出して(ステップS5)、校正パターン1と再び比較する(ステップS6)。以上、この動作を繰り返して、書き込みデータと読み出しデータが一致すれば(ステップS6でYes)、次の処理へ進む。
【0049】
校正パターン1、例えば0101パターン、による最適なアクセスタイミングが設定された後、前記レジスタに対して校正パターン2、例えば1010パターン、を同じレジスタに書き込む(ステップS8)。即ち、校正パターン1と校正パターン2は任意の値でよいが、それぞれ各ビットが排他的な関係になくてはならない。次に書き込んだデータを同じレジスタから読み出し(ステップS9)、既に書き込まれているはずの校正パターン2のデータ、例えば1010と比較する(ステップS10)。この時、前記比較した結果が一致しなかった場合、前記カウンタの値が更に1だけインクリメントされ(ステップS11)、再度校正パターン2を前記レジスタに対して書き込んだ後(ステップS8)、書き込んだデータを前記レジスタから読み出して(ステップS9)、校正パターン2と再び比較する(ステップS10)。
【0050】
以上、この動作を繰り返して、書き込みデータと読み出しデータが一致すれば(ステップS10でYes)、前記レジスタに対するアクセスタイミングの校正は完了し、アクセスの対象となるアドレスを変更して、上記校正を繰り返す。またこの時、各レジスタに対する最適なタイミング情報、即ちカウンタの値は、自動的にマップメモリへ記録され(ステップS12)、校正プログラムCPが終了した後、再びレジスタに対してアクセスが実行された場合には、前記マップメモリに記録されているカウンタ値を参照して、最適なデータアクセスを得る(ステップS13)。最後にワークメモリへ退避させていた元のレジスタ値を該レジスタに再び書き込む(ステップS14)。
校正プログラムCPが終了した後、メインプログラムMPが作動し、システムは作動する。
【0051】
このような本実施の形態4による制御方法においては、システム起動時に校正プログラムを実行することで、CPUと、周辺回路ブロックにおけるレジスタとのデータアクセスを最適化することにより、デバイスの製造工程におけるバラツキを抑えることができる効果が得られる。
【0052】
(実施の形態5)
図13、図15、および図16は、本発明の実施の形態5に係わる制御装置、および制御方法を説明した図である。
図13において、システムが起動した後、CPU101は全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムCPを実行し、バスインターフェイス102内のマップメモリに記録された最適なアクセスタイミングを参照しながら、周辺ブロックにおけるレジスタに対してデータアクセスを実行する。
【0053】
以後、システムが経年変化による影響を吸収する目的で、定期的に校正プログラムCPが作動するよう、タイマー106を動作させる。タイマー106にはカウンタが内蔵され、前記カウンタ値がCPU101によって設定された値と一致するか、またはオーバーフローするか、またはアンダーフローするかによって、前記CPU101に対して割り込みを発生させる。前記CPU101は、該割り込み信号を受け取り、校正プログラムCPを実行する。
【0054】
図15において、システムが起動した後、CPUは全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムCPを実行する。校正プログラムCP終了後、メインプログラムMPが実行され、システムが作動する。
【0055】
図16において、メインプログラムMPが開始された後、前記タイマー106より割り込みが前記CPU101へ入力された場合(ステップS15)、前記CPU101は再び校正プログラムCPを実行し、各周辺ブロックにおけるレジスタに対して最適なアクセスタイミングを得る。校正プログラムCP終了後、CPU101はメインプログラムMPに復帰し、終了条件を検出して(ステップS16)、Noであれば、タイマー106による割り込みが入力される直前の動作に戻る。
メインプログラムはシステムを終了させる条件を満たした時点(ステップS16でYes)で終了し、システムを停止する。
【0056】
このような本実施の形態5による制御装置、および制御方法においては、システム起動時に校正プログラムを実行した上で、更にタイマー106によって定期的に校正プログラムを実行することにより、CPUと周辺回路ブロックにおけるレジスタとのデータアクセスを最適化し、デバイスの製造工程におけるバラツキだけでなく、経年劣化による影響を抑えることができる効果が得られる。
【0057】
(実施の形態6)
図14、図15、および図17は、本発明の実施の形態6に係わる制御装置、および制御方法を説明した図である。
図14において、システムが起動した後、CPU101は全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムCPを実行し、バスインターフェイス102内のマップメモリに記録された最適なアクセスタイミングを参照しながら、周辺ブロックにおけるレジスタに対してデータアクセスを実行する。
【0058】
以後、システムが周囲の条件変化による影響を吸収する目的で、突発的に校正プログラムCPが作動するよう、検知回路107を動作させる。検知回路107は、例えば、周囲の湿度や温度、電源電圧、外部通信による動作条件変更などによって、前記CPU101に対して割り込みを発生させる。前記CPU101は該割り込み信号を受け取り、校正プログラムCPを実行する。
【0059】
図15において、システムが起動した後、CPUは全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムCPを実行する。校正プログラムCP終了後、メインプログラムMPが実行され、システムが作動する。
【0060】
図17において、メインプログラムMPが開始された後、前記検知回路107より割り込みが前記CPU101へ入力された場合(ステップS17)、前記CPU101は再び校正プログラムCPを実行し、各周辺ブロックにおけるレジスタに対して最適なアクセスタイミングを得る。校正プログラムCP終了後、CPU101はメインプログラムに復帰し、終了条件を検出して(ステップS16)、Noであれば、検知回路107による割り込みが入力される直前の動作に戻る。
メインプログラムはシステムを終了させる条件を満たした時点(ステップS16でYes)で終了し、システムを停止する。
【0061】
このような本実施の形態6による制御装置、および制御方法においては、システム起動時に校正プログラムを実行した上で、更にセンサー107によって突発的に校正プログラムを実行することにより、CPUと周辺回路ブロックにおけるレジスタとのデータアクセスを最適化し、デバイスの製造工程におけるバラツキだけでなく、デバイスの使用条件の変化による影響を抑えることができる効果が得られる。
【0062】
(実施の形態7)
図15、図18、図19、および図20は、本発明の実施の形態7に係わる制御方法を説明した図である。
図15において、システムが起動した後、CPUは全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムCPを実行する。校正プログラムCP終了後、メインプログラムMPが実行され、システムが作動する。
【0063】
図18において、メインプログラムMPが開始された後、CPUが周辺回路におけるレジスタへの書き込みアクセスを実行した場合(ステップS19,S20)、レジスタアクセスルーチンを実行する。
【0064】
レジスタアクセスルーチンにおいて、レジスタへのアクセスが正常に実行されているかを確認する目的で、図19に示す処理フローでは、まずデータの書き込みアクセス対象レジスタに対して読み出し処理を実行する(ステップS21)。続いて、読み出したデータをそのまま前記レジスタに書き込みを行い(ステップS22)、再び前記レジスタからデータを読み出して(ステップS24)、書き込んだデータと読み出したデータとが一致しているかを確認する(ステップS25)。この時、書き込んだデータと読み出したデータとが一致しない場合、直ちにCPUに対して割り込み処理を要求して校正プログラムCPを起動し、最適なアクセスタイミングに調整する。校正プログラムCP実行後、または上記書き込みデータと読み出しデータとが一致していた場合(ステップS24でYes)には、本来前記レジスタに書き込むべきデータの書き込み処理を行い(ステップS25)、レジスタアクセスルーチンを終了してメインプログラムMPに復帰する。このようにして、常にレジスタのアクセス状況を確認することで、必要に応じてリアルタイムに校正プログラムCPを起動することが可能となる。特に、図19に示す処理フローでは、周辺回路におけるレジスタの中に、ハード的にラッチ回路を有していないビットや、書き込み禁止のビットが存在した場合でも、前記ビットの存在を意識することなく一致判定プログラムを作成できる。
【0065】
また、レジスタアクセスルーチンにおいて、レジスタへのアクセスが正常に実行されているかを確認する目的で、図20に示す処理フローでは、まずデータの書き込みアクセス対象レジスタに対して書き込み処理を実行し(ステップS26)、続いて前記レジスタからデータを読み出して(ステップS27)、書き込んだデータと読み出したデータとが一致しているかを確認する(ステップS28)。この時、書き込んだデータと読み出したデータとが一致しない場合(ステップS28でNo)、直ちにCPUに対して割り込み処理を要求して校正プログラムCPを起動し、最適なアクセスタイミングに調整する。校正プログラムCP実行後、再び前記レジスタに対して書き込みを行い(ステップS26)、続いてデータを読み出して(ステップS27)再び読み出しデータと一致しているか確認する(ステップS28)。最初の書き込み処理(ステップS26)、または校正プログラムCP実行後の書き込み処理(ステップS26)において、書き込みデータと読み出しデータが一致していれば、レジスタアクセスルーチンを終了してメインプログラムMPに復帰する。このようにして、常にレジスタのアクセス状況を確認することで、必要に応じてリアルタイムに校正プログラムCPを起動することが可能となる。特に図20に示す処理フローでは、書き込み処理と読み出し処理が1回だけで済むため、一致判定プログラムを少ないステップ数で作成することができる。
レジスタアクセスルーチンから復帰したメインプログラムは、システムを終了させる条件を満たした時点で終了し、システムを停止する。
【0066】
このような本実施の形態7による制御方法においては、システム起動時に校正プログラムを実行した上で、更に常にアクセス状況を確認してリアルタイムに校正プログラムを実行することにより、CPUと周辺回路ブロックにおけるレジスタとのデータアクセスを最適化し、デバイスの製造工程におけるバラツキだけでなく、デバイスの使用条件の変化、更には経年劣化による影響をも抑えることができる効果が得られる。
【0067】
(実施の形態8)
図12は、本発明の実施の形態8に係わる制御装置を説明するための図である。
図12は、図3におけるバスインターフェイス102の構成を示した図である。次にバスインターフェイス102の動作について説明する。
【0068】
バスインターフェイス102は、校正プログラムが実行されていることを通知する校正モード信号S101cbを検知すると、カウンタ1023をリセットし、遅延回路1021への遅延選択信号S1021を、カウンタ出力S1023側に選択する。またこの時、CPU101は、校正プログラムによって、全レジスタに対するアクセスチェックを行うためのデータを出力し、同時にレジスタへの書き込みを行うためにライト/リード信号を書き込みモードにする。CPU101から出力されたデータは、データバスS101dwから入力され、遅延回路1021に入力される。またこの時、CPU101から出力されたアクセス対象レジスタのアドレスは、アドレスバスS101aから入力され、S102aへと出力されるだけでなく、マップメモリ1024のアドレスにも入力される。即ち、周辺ブロックにおける全レジスタ空間は、マップメモリ1024上にマッピングされ、都度CPU101が周辺ブロックをアクセスする度に、マップメモリの対象アドレスもアクセスされることを意味する。データは、書き込みサイクルにおいて、カウンタ1023の値に従って、遅延回路1021の出力が選択され、カウンタ1023が初期値の場合、遅延0のデータが選択される。またこの時、CPU101から出力されたデータS101dwは、バスインターフェイス102内にあるバッファ1027に一時保管される。このようにしてバスインターフェイス102を通過したデータS102dwは、アドレスS102aの対象となるレジスタに対して、書き込みを実行する。
【0069】
次に、CPU101は校正プログラムに従って、読み出しサイクルへと移行する。CPU101は、前記アクセス対象レジスタに対してアクセスを行うため、書き込みサイクルの時と同じアドレスをアドレスバスS101aに出力し、同時にライト/リード信号を読み出しモードにする。アクセス対象となるレジスタは、この読み出しを検知して、CPU101に対してデータを出力し、データバスS102drを介して、バスインターフェイス102に入力される。入力された読み出しデータS102drは、バスインターフェイス102内において、前記書き込みサイクルの時にバッファ1027に一時保管された書き込みデータと一致しているかを判定される。この時、前記一致判定回路によって書き込みデータと、読み出しデータとの一致が確認された場合、データがアクセス対象レジスタに正しく書き込めたことを、前記CPU101に対して通知し、同時に前記バスインターフェイス102に入力されている校正モード信号S101cbがアクティブで、かつライト/リード信号が読み出しモードであれば、前記カウンタ1023の値を前記アクセス対象となっているレジスタのアドレスがマッピングされた前記マップメモリ1024に書き込み、校正プログラムは次のアクセス対象レジスタに対してアドレスを変更し、再び書き込みサイクルへと移行する。一方、前記一致判定回路によって書き込みデータと読み出しデータの一致が確認されなかった場合、データがアクセス対象レジスタに正しく書き込めなかったことを前記CPU101に対して通知し、再度、同じアクセス対象レジスタに対して書き込みサイクルへと移行すると同時に、前記カウンタ1023の値をインクリメントする。前記カウンタ1023の値がインクリメントされることにより、前記遅延回路1021における遅延量が増加する。
【0070】
以上、これら一連の動作を繰り返すことによって、CPU101から全レジスタに対して、データが正しく書き込めるタイミングを調整するが、この時、遅延回路1021内の総遅延時間がデータの最小アクセスサイクルの時間を超える場合には、最適なアクセスタイミングを得ることはできない。これは、上記説明したようなバスインターフェイス102の持つアクセス調整機能が、データの書き込みに対して、そのホールド時間を保証させるためのものであることによる。
【0071】
そこで、前記CPU101は、従来のアクセス方法であれば、図8に示すように、ウェイト法またはハンドシェイク法により、データのアクセスサイクルを延ばして、セットアップ時間を保証することによってデータを正しくアクセスさせていた。しかしながら、これらの手法は、レジスタアクセスのために、バスの占有時間とCPUの演算処理に対してアクセス時間を延長した分だけペナルティを与えてしまう。そこで図12に示すバスインターフェイス102では、次の処理を施すことによって、データアクセスによるシステム処理へのペナルティを低減させる。
【0072】
図12において、バスインターフェイス102は、内部にバッファメモリ102a2が設置され、前記CPU101から出力されたデータを一旦該バッファメモリ102a2に記録し、上記説明したような、前記遅延回路1021の総遅延時間がデータの最小アクセスサイクルを超えた場合、即ち、前記カウンタ1023がオーバーフローした場合、該バッファメモリ102a2の書き込み/読み出し制御を行うバッファメモリ制御回路102a3の読み出しポインタS102a3を維持したまま、書き込みポインタをカウンタ1023のオーバーフロー信号S102a3によりインクリメントすることによってデータアクセスにおけるセットアップ時間を計測し、上記説明した、ホールド時間を保証するための遅延時間を前記カウンタ1023によって計測し該カウンタ1023の値を前記マップメモリ1024に記録した場合と同様、該セットアップ時間を保証するための遅延時間を前記カウンタ1023がオーバーフローした回数、即ち、前記バッファメモリ制御回路における書き込みポインタと読み出しポインタの差、を前記マップメモリ1024に記録する。
【0073】
以上、これら一連の動作を繰り返すことによって、CPU101から全レジスタに対してデータを正しく書き込めるタイミングが前記マップメモリ1024に記録され、校正プログラムの終了後、再びCPU101がレジスタに書き込みを行う場合、バスインターフェイス102は、アクセス対象となっているレジスタのアドレスから前記マップメモリ1024にマッピングされている遅延量を参照し、ホールド時間に対しては、遅延回路1021によって最適なタイミングに遅延されたデータがバスインターフェイス102から出力され、一方セットアップ時間に対しては、バッファメモリ102a2によってデータが確実にアクセスされるまで読み出しポインタを停止させることにより、常に正しいデータをレジスタに書き込むことが可能となる。
【0074】
またこの時、前記バッファメモリ102a2には、アドレスS101aと、データS101dw、およびライト/リード信号S101wrがマルチプレクサ102a1によって、同時に前記バッファメモリ102a2に記録され、上記説明したように、データが周辺ブロックにおけるレジスタに対して確実にアクセスされるまで読み出しポインタを停止させることにより、アクセス対象レジスタのアドレスも同時に保持され、前記レジスタに対してライトイネーブルが取り消されることなく、前記CPU101は次のレジスタアクセスに移行することができる。即ち、前記CPU101は、データアクセスのセットアップ時間を保証するために、アクセスサイクルを延長していたが、上記バッファメモリにデータを一時格納することによって、前記CPU101が連続してレジスタアクセスを実行した場合においても、最初にアクセスされたレジスタに対して確実にアクセスが実行されるまでは、前記バッファメモリ102a2の読み出しポインタを停止させることで正しくレジスタにアクセスでき、続いてアクセスされたレジスタに対しては、前記バッファメモリ102a2に対して前記バッファメモリ制御回路によって読み出しポインタを停止させたまま書き込みポインタをインクリメントすることで直ちにデータを確保でき、最初にデータアクセスが完了した時点で再び読み出しポインタをインクリメントすることによって、次のデータアクセスに対して最適なアクセスタイミングを適用した状態でレジスタへアクセスさせることができるため、CPU101は、レジスタへの連続アクセスに対して、セットアップ時間を保証するためのアクセスサイクルの延長を施すことなく、各データアクセスサイクルに対して必ず1サイクルで処理が完了することができ、データの書き込みアクセスに関して、CPUへのペナルティを最小限に抑えることが可能となる。
【0075】
このような本実施の形態8による制御装置においては、バスインターフェイス内でデータ、アドレス、およびライト/リード信号を一時バッファメモリに保管することにより、CPUからのアクセスサイクルを常に1サイクルで実現し、CPUと周辺回路ブロックにおけるレジスタとのデータアクセスによるCPUへのペナルティを最小限に抑えることができる効果が得られる。
【0076】
【発明の効果】
以上のように、本発明にかかる制御装置によれば、CPUと、周辺回路との間にバスインターフェイスを設置し、校正プログラムによって各周辺回路におけるレジスタの最適なアクセスタイミングを個々に調整することによって、デバイスの製造工程を経た後であっても、各々のデバイスが独自にアクセスタイミングを調整することにより、煩雑なタイミング検証を解消し、更にはプロセスのバラツキや経年劣化、および使用条件の変化といった外的要因に対しても、その影響を受けなくするようにすることができるものである。
【図面の簡単な説明】
【図1】本発明の実施の形態1にかかるブランチ構造の制御装置におけるバス構成の概念図
【図2】本発明の実施の形態1におけるバス構成の概念図
【図3】本発明の実施の形態1におけるバス構成に係る信号線を示す図
【図4】本発明の実施の形態1におけるバスインターフェイスの構成を示す図
【図5】本発明の実施の形態2にかかる制御装置における遅延装置の構成図
【図6】本発明の実施の形態3にかかる制御装置における遅延装置の構成図
【図7】データの書き込みアクセス(1サイクル)に係るタイミング図
【図8】データの書き込みアクセス(2サイクル)に係るタイミング図
【図9】データの書き込みアクセス(正常)に係るタイミング図
【図10】データの書き込みアクセス(異常)に係るタイミング図
【図11】データの書き込みアクセス(調整)に係るタイミング図
【図12】本発明の実施の形態3に係る制御装置を示す構成図
【図13】本発明の実施の形態5に係る制御装置を示す構成図
【図14】本発明の実施の形態6に係る制御装置を示す構成図
【図15】本発明の実施の形態4、実施の形態5、および実施の形態7に係る制御方法を示すフローチャート
【図16】本発明の実施の形態5に係る制御方法を示すフローチャート
【図17】本発明の実施の形態6に係る制御方法を示すフローチャート
【図18】本発明の実施の形態7に係るフローチャート
【図19】本発明の実施の形態7に係るレジスタアクセスのフローチャート
【図20】本発明の実施の形態7に係るレジスタアクセスのフローチャート
【図21】従来例におけるブランチ構造のバス構成の概念図
【図22】従来例におけるチェイン構造のバス構成の概念図
【図23】従来例におけるブランチ構造のバス構成に係る信号線を示す図
【図24】従来例におけるチェイン構造のバス構成に係る信号線を示す図
【符号の説明】
101 CPU
S101 CPUに接続されるバス
S101a CPUから出力されるアドレスバス
S101dw CPUから出力されるデータバス(書き込み)
S101dr CPUに入力されるデータバス(読み出し)
S101wr CPUから出力されるライト/リード信号
S101cb 校正プログラム実行モード信号
S101ak データアクセスの応答信号
102 バスインターフェイス
S102 スインターフェイス−周辺回路ブロック間で接続されるバス
S102a バスインターフェイスから出力されるアドレスバス
S102dw バスインターフェイスから出力されるデータバス(書き込み)
S102dr バスインターフェイスに入力されるデータバス(読み出し)
S102wr バスインターフェイスから出力されるライト/リード信号
1021 遅延回路
1021D0 データ遅延用フリップフロップ
1021D1〜Dn データ遅延用バッファ
S1021D0〜Dn データバス
1021S0〜1 データ遅延選択回路
1021I0 半相遅延用インバータ
1022 選択回路
S1022 遅延値選択信号
1023 カウンタ
S1023 カウンタ出力
1024 マップメモリ
S1024 マップメモリデータ
1025 マップメモリアクセス判定回路
S1025 マップメモリ書き込みイネーブル
1026 データ一致検出回路
1027 データバッファ
102a1 アドレス・データマルチプレクサ
S102a1 アドレス・データ入力バス
102a2 Fi−Foメモリ
S102a2 アドレス・データ出力バス
102a3 Fi−Foメモリ制御回路
S102a3 Fi−Foメモリ制御信号
102a4 アドレス選択回路
102a5 データ選択回路
S102a5 データバス
103 周辺回路ブロックA
S103 チェインバス
104 周辺回路ブロックB
S104 チェインバス
105 周辺回路ブロックC
S105 チェインバス
106 タイマー
S106 タイマー割り込み
107 検知回路
S107 検知割り込み
【発明の属する技術分野】
本発明は、制御装置に関し、特にバスを介したデータアクセスの、特に書き込み制御において、自動的に最適なタイミングを検出し、設定することを可能としたバス制御装置に関する。
【0002】
【従来の技術】
従来、バスにおけるデータアクセス、特にCPUが周辺回路のレジスタにアクセスする場合、図21に示すようなブランチ構成、または図22に示すようなチェイン構成(デイジーチェイン)が一般的であった。以下、その構成について図を参照しながら説明する。
【0003】
図21は、CPU101から見て、各周辺回路103〜105に内蔵されているレジスタが、データアクセスに関わる信号線S101を介して、CPU101と木の枝のように接続されているブランチ構成のバスシステムを示している。
【0004】
図22は、CPU101から見て、各周辺回路103〜105に内蔵されているレジスタが、CPU101を起点として、データアクセスに関わる信号線S101、S103、S104、S105により、数珠状に順次接続され、最終的にCPU101に戻るようなチェイン構造のバスシステムを示している。
【0005】
これら従来のバスシステムにおいて、データがアクセスされる場合について、以下説明する。
図21および図22に示される信号線S101は、図23および図24に示されるように、各周辺回路に内蔵されるレジスタを識別するためのアドレスバスS101a、レジスタにデータを書き込むためのデータバスS101dw、レジスタへのデータアクセスが、書き込みなのか、読み出しなのかを識別するためのライト/リード信号S101wr、レジスタのデータを読み出すためのデータバスS101dr、およびレジスタにデータがアクセスされたことを示す応答信号S101akのような信号に、代表されるもので構成されている。
【0006】
まず、図21に示すようなブランチ構造をもつバスシステムにおいては、CPUと各周辺回路との関係は、図23に示すような1対1の関係になり、CPUのデータアクセスに対して、CPUよりのアクセスの対象となるレジスタへのデータパスが唯一決定され、このデータパス上でのみ、データのアクセスが実行される。
【0007】
データの書込みアクセスにおいては、CPU101から周辺回路102に内蔵されるレジスタを識別するアドレスがアドレスバスS101aを介して出力され、同時にデータがデータバスS101dwを介して出力される。この時、データは書き込みアクセスであるため、同CPU101から出力されるライト/リード信号S101wrはライトイネーブル状態になる。一方、周辺回路102側では、アドレスバスS101aを介して入力されたアドレスが前記周辺回路102に内蔵されるレジスタへのアクセスであることを検知し、かつ該アクセスが書き込みであることから、データバスS101dwを介して、前記周辺回路102に入力されているデータをレジスタに書き込む。この時、周辺回路102はデータがアクセスされたことをCPU101に知らせるための応答信号S101akを、CPU101に対して出力する。
【0008】
データの読み出しアクセスにおいては、書き込みアクセスと同様、CPU101から周辺回路102に内蔵されるレジスタを識別するアドレスがアドレスバスS101aを介して出力され、同時にデータの読み出しアクセスであるため、同CPU101から出力されるライト/リード信号S101wrはリードイネーブル状態になる。一方、周辺回路102側では、アドレスバスS101aを介して入力されたアドレスが前記周辺回路102に内蔵されるレジスタへのアクセスであることを検知し、かつ該アクセスが読み出しであることから、データバスS101drを介して前記周辺回路102に内蔵されているレジスタに格納されているデータを出力する。この時、周辺回路102は、データがアクセスされたことをCPU101に知らせるための応答信号S101akを、CPU101に対して出力する。CPU101は書き込みアクセスにおいても、また読み出しアクセスにおいても、この応答信号S101akが入力され、これを検知した時点で、書き込みアクセスまたは読み出しアクセスに係る信号の出力を打ち切り、次のアクセスサイクルへと移行する。
【0009】
次に、図22に示すようなチェイン構造をもつバスシステムにおいては、CPUと各周辺回路との関係が、図22に示すように、全ての周辺回路を介してCPUに信号が帰還するため、ある周辺回路に注目した場合、図24に示すように、CPUのデータアクセスに対して、CPUとアクセスの対象となるレジスタへのデータパスは、データがCPU101から出力された後、周辺回路102、103、104とチェイン状に接続された順に、データが各周辺回路を通り抜けて、アクセス対象となる周辺回路10Nに入力され、該周辺回路に内蔵されるレジスタに対してデータアクセスが実行される。
【0010】
また、図22のようなチェイン構造のバスシステムにおけるデータの書込みアクセスにおいては、CPU101から周辺回路10Nに内蔵されるレジスタを識別するアドレスが、アドレスバスS101aを介して出力され、同時にデータがデータバスS101dwを介して出力される。この時、データの書き込みアクセスであるため、前記CPU101から出力されるライト/リード信号はライトイネーブル状態になる。一方、周辺回路10N側では、アドレスバスS101aを介して直接入力されたアドレスが、前記周辺回路10Nに内蔵されるレジスタへのアクセスであることを検知し、かつ該アクセスが書き込みであることから、データをレジスタに書き込む。この時、周辺回路10Nに入力されるデータは、チェイン状に接続された各周辺回路を順に通り抜けて伝達される。次に、周辺回路10Nは、データがアクセスされたことをCPU101に知らせるための応答信号S10Nakを、CPU101に対して出力するが、この応答信号もまたチェイン状に接続された周辺回路を通り抜けて、CPU101に返される。
【0011】
データの読み出しアクセスにおいては、書き込みアクセスと同様、CPU101から周辺回路10Nに内蔵されるレジスタを識別するアドレスがアドレスバスS101aを介して出力され、同時にデータの読み出しアクセスであるため、前記CPU101から出力されるライト/リード信号は、リードイネーブル状態になる。一方、周辺回路10N側では、アドレスバスS101aを介して直接入力されたアドレスが、前記周辺回路10Nに内蔵されるレジスタへのアクセスであることを検知し、かつ該アクセスが読み出しであることから、データバスS10Ndwを介して、前記周辺回路102に内蔵されているレジスタに格納されているデータを出力する。この時、読み出しデータは、チェイン状に接続された各周辺回路を順に通り抜けてCPU101に伝達される。また、周辺回路10Nは、データがアクセスされたことをCPU101に知らせるための応答信号S10Nakを、CPU101に対して出力するが、この応答信号もまたチェイン状に接続された周辺回路を順に通り抜けてCPU101に返される。CPU101は書き込みアクセスにおいても、また読み出しアクセスにおいても、この応答信号S101akが入力され、これを検知した時点で、書き込みアクセスまたは読み出しアクセスに係る信号の出力を打ち切り、次のアクセスサイクルへと移行する。
【0012】
上記した各バスシステムの特徴として、ブランチ構造の場合、CPUと各周辺回路との関係が全て1対1であるため、高速なデータアクセスが可能となる。しかしながら、同構造では、CPUから各ブロックに対してそれぞれアドレスバスやデータバスなどを接続する必要があるため、信号線が増大してチップ面積を増大させる原因となる。これに対してチェイン構造の場合、CPUと各周辺回路とが順次チェイン状に接続されているため、データバスに関して、あるいはアドレスなどの信号も含めて、1つのアクセスパスしか存在しないため、信号線を削減でき、チップ面積の削減に効果が得られる。しかしながら、チェイン構造では、CPUからチェイン状に接続される周辺回路に対して、データまたは応答信号が複数の周辺回路を通り抜けてからアクセスされるため、高速なアクセスに不利となる。
【0013】
これらのバスシステムにおいて、同期式のデータアクセスが行われるシステムでは、特にレジスタへの書き込みアクセスに対して、図7に示すようなアクセスタイミングが一般的である。
【0014】
図7において、データはライトイネーブル期間中にクロックの立ち上がりタイミングでレジスタに書き込まれる。この時、CPUから出力されているデータおよびライトイネーブルは、クロックに対して確実にデータを書き込めるよう、図7に示すように、セットアップ時間と、ホールド時間が保証されていなければならない。
【0015】
セットアップに関して、高速動作、または物理的にCPUと、レジスタとの距離が遠いことが原因で、クロックの1サイクル内にデータが確定しない場合がしばしばある。この様な課題に対して、図8に示すような、クロックの2サイクル目以降にデータが書き込めるよう、CPU側の設定によってアクセスサイクルを増やすウェイト法(例えば、特許文献1参照)や、図7および図8に示すような、レジスタ側にデータが到達したことを知らせる応答信号(Ack)を、CPUに返すまでをアクセスサイクルとするハンドシェイク法(例えば、特許文献2参照)などが一般的に知られている。
一方、ホールドに関して、同期設計の場合、タイミング検証にてクロックに対する各レジスタのホールド時間を保証している。
【0016】
【特許文献1】
特開平9−319704号公報(第15−16頁、第5図)
【特許文献2】
特開2000−339213号公報(第18−18頁、第7図)
【0017】
【発明が解決しようとする課題】
上記したようにシステムLSIのレジスタアクセスにおいて、特に同期設計の場合、タイミング検証によって各レジスタにおけるクロックに対するデータのセットアップ時間およびホールド時間を保証しているが、半導体製造工程の微細化、回路規模の増大、さらにシステムの高速化などの理由から、上記したセットアップ時間ならびにホールド時間を保証するための検証工数が増大し、開発TATに対して影響を与えている。
【0018】
また、このような検証を経てデバイスが製造された後も、温度や電圧などの動作条件、LSIの製造過程で発生するバラツキ、または経年劣化によって、LSI内部の遅延量が変化し、正常に動作しない恐れがある。即ち、検証時において、図9または図10に示すように、クロックの立ち上がりエッヂに対して、常にデータ、およびライトイネーブルの位相が遅れるような関係にあれば、データは必ず正しくレジスタに書き込まれるが、製造バラツキ、使用条件の変化、または経年劣化などによって、データ、ライトイネーブル、およびクロックの位相関係が、図9および図10に示すように変化した場合には、図9に示すようにデータが常にライトイネーブルより遅れるような位相関係にあれば、誤動作を引き起こすことはないが、図10に示すようにライトイネーブルがデータより遅れるような位相関係にあれば、誤ったデータをレジスタに書き込むことになる。
【0019】
更にこのような課題に対して、例えばメモリとのアクセスであれば、そのアクセスタイミングを調整する方法が提案されているものもあるが、レジスタのようなCPUとのアクセスが各々固有のものであれば、メモリのように、ある任意のアドレスに対してアクセスが保証できれば、全体のアクセスを保証できるようなものではなく、各々のレジスタに対して最適なアクセスタイミングを調整する必要がある。従来の仕組みでは、1つのアドレス、即ち数あるレジスタのうち、僅か1レジスタに対してしかアクセスを保証できず、仮に全てのレジスタに対して同様の仕組みを施すことになれば、その回路規模は極端に増大してしまうといった課題がある。またこれまでに提案されているアクセスタイミングの自動調整方法は、データの読み出しに対してのみこれを保証するものであって、データが正しく書き込めているかを保証するものではない。
【0020】
本発明は、このような従来の問題点を解決するためになされたもので、半導体製造工程の微細化、回路規模の増大、並びにシステムの高速化に伴って増大するタイミング検証の煩雑さを解消し、更には、デバイスが製造された後、その動作条件、製造バラツキ、または経年劣化によってLSI内部の信号伝達の遅延量が変化し、LSIが誤動作することを、未然に防ぐことのできる制御装置を提供することを目的としている。
【0021】
【課題を解決するための手段】
上記課題を解決するために、本発明(請求項1)にかかる制御装置は、CPUと、複数の周辺回路との間で、1つのバスインターフェイスを介して、データアクセスを行う制御装置において、全ての周辺回路に内蔵される全てのレジスタに対して、校正プログラムによって、各々のアクセスタイミングを自動的に調整しながらデータアクセスを行う、上記全てのレジスタに対する確実なデータアクセスを保証するようにするものである。
【0022】
また、本発明(請求項2)にかかる制御装置は、請求項1記載の制御装置において、前記校正プログラムの実行時における、各レジスタにおける最適なアクセスタイミングを、マップメモリに記録し、前記校正プログラムが終了した後、再び前記CPUにより、前記マップメモリに記録されている該レジスタにおける最適なアクセスタイミングを参照して、前記周辺回路のレジスタに対し、データアクセスを行い、前記各レジスタにおけるデータアクセスのホールド時間を保証するようにするものである。
【0023】
また、本発明(請求項3)にかかる制御装置は、請求項2記載の制御装置において、最適なアクセスタイミングを提供するための遅延回路が、フリップフロップで構成され、該フリップフロップのラッチタイミングが、データの変化タイミングを決定しているクロックと逆相関係にあるクロックでラッチされ、データが変化する周期の半相分の遅延時間により、前記各レジスタにおけるデータアクセスのホールド時間を保証するものである。
【0024】
また、本発明(請求項4)にかかる制御装置は、請求項2記載の制御装置において、最適なアクセスタイミングを提供するための遅延回路が、バッファで構成され、該遅延バッファをデータアクセスに最適な遅延時間を得るだけの段数が、直列に接続され、前記バッファチェインの総遅延時間により、前記各レジスタにおけるデータアクセスのホールド時間を保証するものである。
【0025】
また、本発明(請求項5)にかかる制御装置は、請求項1記載の制御装置において、システムの起動時に、全ての周辺回路に内蔵される全てのレジスタに対して、校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、前記全てのレジスタに対する確実なデータアクセスを保証するようにするものである。
【0026】
また、本発明(請求項6)にかかる制御装置は、請求項1記載の制御装置において、タイマーなどのカウンタによる割り込みによって、周期的に、全ての周辺回路に内蔵される全てのレジスタに対して、前記校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、前記全てのレジスタに対する確実なデータアクセスを保証するようにするものである。
【0027】
また、本発明(請求項7)にかかる制御装置は、請求項1記載の制御回路において、周囲の条件変化を検知する検知回路による割り込みによって、例えば温度変化や電圧変化が生じた場合に、全ての周辺回路に内蔵される全てのレジスタに対して、前記校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、前記全てのレジスタに対する確実なデータアクセスを保証するようにするものである。
【0028】
また、本発明(請求項8)にかかる制御装置は、請求項1記載の制御回路において、周辺回路とのデータアクセス時に書き込みエラーが発生したとき、全ての周辺回路に内蔵される全てのレジスタに対して、校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、前記全てのレジスタに対する確実なデータアクセスを保証するようにするものである。
【0029】
また、本発明(請求項9)にかかる制御装置は、請求項1記載の制御回路において、前記校正プログラムが実行された後、前記CPUが、前記周辺回路に対してデータの書き込みアクセスを実行したとき、該CPUは、データの書き込みアクセスに対してセットアップ時間を保証するよう、ウェイト法またはハンドシェイク法によってアクセスサイクルを延ばし、データアクセスの1サイクル目で、該データをアクセスさせる周辺回路におけるレジスタのアドレスおよび該データを、バッファメモリに一時的に保存し、前記マップメモリから確実にアクセスが完了していることを判断した時点で、前記バッファメモリから前記レジスタのアドレスおよび前記データを消去し、かつ、前記CPUによる周辺回路に対するデータの書き込みアクセスは、CPUから見て1サイクルでこれを完了するものである。
【0030】
【発明の実施の形態】
本発明の実施の形態について、以下、図を用いて説明する。
(実施の形態1)
図1および図2は、本発明の実施の形態1に係わる制御装置を説明した図である。
【0031】
図1において、CPU101が周辺回路103〜105に対してデータのアクセスを行う場合、データのアクセスはバスインターフェイス102を介して実行される。図1に示すバスシステムでは、CPU101に対して、バスインターフェイス102を介して各周辺回路103〜105がブランチ状に接続されており、CPU101と、各周辺回路103〜105との間に、それぞれ固有のアクセスパスが存在する。
【0032】
図2において、CPU101が周辺回路103〜105に対してデータのアクセスを行う場合、データのアクセスはバスインターフェイス102を介して実行される。図2に示すバスシステムでは、CPU101に対して、バスインターフェイス102を介して各ブロック103〜105がチェイン状に接続されており、CPU101と、各周辺回路103〜105とが全て同じアクセスパス上に存在する。
【0033】
図3は、図1および図2におけるCPU101とバスインターフェイス102に係る信号を示した図である。図3において、CPU101およびバスインターフェイス102は、バスシステムの構成が、図1に示すようなブランチ構造、または図2に示すようなチェイン構造、のいずれの場合であっても、同じ構成を持つ。CPU101は、周辺回路に対してデータのアクセスを実行する時、CPU101からデータのアクセス対象となる周辺回路に対してアドレスをアドレスバスS101aに対して出力する。バスインターフェイス102は、このアドレスを、アドレスバスS101aより受け取り、アドレスバスS102aを介して周辺回路へ出力する。また同時に、CPU101は、データのアクセス対象となる周辺回路に対してデータを書き込むか、または読み出すかを判断させるためのライト/リード信号S101wrを出力する。バスインターフェイス102は、このライト/リード信号S101wrを受け取り、ライト/リード信号S102wrを介して周辺回路へ出力する。またこの時、周辺回路へのデータアクセスが書き込みである場合、CPU101はデータをデータバスS101dwに出力する。バスインターフェイス102は、CPU101から出力されたデータを、データバスS101dwより受け取り、適切なタイミングに調整した後、データバスS102dwを介して周辺回路へ出力する。またこの時、周辺回路へのデータアクセスが読み出しである場合、バスインターフェイス102は周辺回路から出力されたデータを、データバスS102drより受け取り、データバスS101drを介してCPU101に出力する。またこの時、バスインターフェイス102は、データアクセスが実行されたことをCPU101に通知するため、データアクセス応答信号S101akをCPU101に対して出力する。またこの時、周辺回路へのデータアクセスに対し、適切なアクセスタイミングを自動的に設定するための校正プログラムが実行されることを知らせるための信号S101cbが、CPU101からバスインターフェイス102に対して接続されている。即ち、図3に示すバスインターフェイス102は、CPU101から周辺回路に対してデータアクセスを実行する場合に、各周辺回路、または各周辺回路に内蔵される各レジスタに対して、それぞれ固有の最適なタイミングで常にアクセスできるよう制御を行う装置である。
【0034】
図4は、図3におけるバスインターフェイス102の構成を示した図である。次に、該バスインターフェイス102の動作について説明する。
【0035】
バスインターフェイス102は、校正プログラムが実行されていることを知らせる校正モード信号S101cbを検知すると、カウンタ1023をリセットし、遅延回路1021への遅延選択信号S1021をカウンタ出力S1023側に選択する。またこの時、CPU101は、校正プログラムによって、全レジスタに対するアクセスチェックを行うためのデータを出力し、同時にレジスタへの書き込みを行うためにライト/リード信号S101wrを書き込みモードにする。CPU101から出力されたデータは、データバスS101dwから入力され、遅延回路1021に入力される。またこの時、CPU101から出力されたアクセス対象レジスタのアドレスは、アドレスバスS101aから入力され、S102aへと出力されるだけではなく、マップメモリ1024のアドレスにも入力される。即ち、周辺回路における全てのレジスタのアドレスがマップメモリ1024上にマッピングされ、都度CPU101が周辺回路をアクセスする度に、マップメモリの対象アドレスもアクセスされることを意味する。データは、書き込みサイクルにおいて、カウンタ1023の値に従って、遅延回路1021の出力が選択され、カウンタ1023が初期値の場合、遅延0のデータが選択される。またこの時、CPU101から出力されたデータS101dwは、バスインターフェイス102内にあるバッファ1027に一時保管される。このようにして、バスインターフェイス102を通過したデータS102dwは、アドレスS102aの対象となるレジスタに対して書き込みが実行される。
【0036】
次にCPU101は校正プログラムに従って、読み出しサイクルへと移行する。CPU101は前記アクセス対象レジスタに対してアクセスを行うため、書き込みサイクルの時と同じアドレスをS101aに出力し、同時にライト/リード信号S101wrを読み出しモードにする。アクセス対象となるレジスタは、この読み出しを検知してCPU101に対してデータを出力し、データバスS102drよりバスインターフェイス102に入力される。入力された読み出しデータS102drは、バスインターフェイス102内において、前記書き込みサイクルの時に一時保管されたバッファ1027の書き込みデータと一致しているかどうかが一致判定回路1026により判定される。この時、前記一致判定回路1026によって書き込みデータと読み出しデータの一致が確認された場合、データがアクセス対象レジスタに正しく書き込めたことを前記CPU101に対して通知し、同時に前記バスインターフェイス102に入力されている校正モード信号S101cbがアクティブで、かつライト/リード信号が読み出しモードであれば、前記カウンタ1023の値を前記アクセス対象となっているレジスタのアドレスがマッピングされた前記マップメモリ1024に書き込み、校正プログラムは次のアクセス対象となるレジスタのアドレスに変更し、再び書き込みサイクルへと移行する。一方、前記一致判定回路1026によって書き込みデータと読み出しデータの一致が確認されなかった場合、データがアクセス対象レジスタに正しく書き込めなかったことを前記CPU101に対して通知し、再度同じアクセス対象レジスタに対して書き込みサイクルへと移行すると同時に、前記カウンタ1023の値をインクリメントする。前記カウンタ1023の値がインクリメントされることにより、前記遅延回路1021において選択される遅延量が増加する。
【0037】
以上、これら一連の動作を繰り返すことによって、CPU101から全レジスタに対して、データを正しく書き込めるタイミングが前記マップメモリ1024に記録され、校正プログラムの終了後、再びCPU101がレジスタに書き込みを行う場合、バスインターフェイス102は、アクセス対象となっているレジスタのアドレスから前記マップメモリ1024にマッピングされている遅延量を参照し、遅延回路1021によって最適なタイミングに遅延されたデータをバスインターフェイス102から出力することにより、常に正しいデータをレジスタに書き込むことが可能となる。
【0038】
このような本実施の形態1による制御装置においては、全てのレジスタに対して個々に最適なアクセスタイミングをマップメモリに記録することにより、タイミング調整後であれば、CPUと周辺回路ブロックにおけるレジスタとのデータアクセスにおいて、正常なアクセスを実現する効果が得られ、同時にタイミング検証の煩雑さを解消できる効果が得られる。
【0039】
(実施の形態2)
図5は、本発明の実施の形態2に係わる制御装置における遅延装置を説明した図である。
図5において、遅延素子(フリップフロップ)1021D0は、遅延回路1021に入力されるデータS101dwを、データの変化点から半相遅れたタイミングでラッチさせる遅延素子であって、前記遅延回路1021に入力されるクロックckを、インバータ回路1012I0によって逆相とし、これによって前記入力データS101dwをラッチする。遅延選択回路1021S0は、前記遅延回路1021に入力される遅延設定信号S1022によって、前記遅延回路1021に入力されるデータS101dwか、または前記遅延素子1021D0によって前記入力データS101dwの変化点から半相分遅延したデータS1021D0か、の何れかを選択する。
【0040】
上記実施の形態1で既に説明したように、データの最適なアクセスタイミングを調整する校正プログラムが実行されている場合、遅延選択信号S1022は、まず遅延のない状態を示し、前記遅延選択回路1021S0は、入力データS101dwを選択し、データ出力S102dwへ出力する。このデータが正しくアクセスされていなかった場合には、前記遅延選択信号S1022はデータを遅延させる状態を示し、前記遅延選択回路1021S0は、遅延素子1021D0の出力S1021D0を選択し、データ出力S102dwへ出力する。データの書き込みアクセスにおけるホールド時間は、データ変化における最小サイクルの半相分の遅延差によって保証されるため、レジスタへのデータが確実に実行される。
【0041】
このようにして最適なアクセスタイミングが設定され、校正プログラムが終了した後、再びデータのアクセスが実行された場合、既に記録されているアクセスタイミングの情報に従って、前記遅延選択信号S1022は、入力データS101dwか、遅延素子1021D0によって半相遅延したデータS1021D0か、の何れかを選択し、常に最適なタイミングでデータ出力S102dwに出力する。
【0042】
このような本実施の形態2による制御装置における遅延装置においては、CPUと周辺回路ブロックにおけるレジスタとのデータアクセスにおいて、最適なホールド時間を得るための遅延回路を、フリップフロップで構成するようにしたので、該遅延回路の占める面積を小さく抑えることができる効果が得られる。
【0043】
(実施の形態3)
図6は、本発明の実施の形態3に係わる制御装置における遅延装置を説明した図である。以下、各機能について説明する。
図6において、遅延素子(バッファ)1021D1〜1021Dnは直列に接続され、遅延回路1021に入力されるデータS101dwを、データの変化点から遅延素子一段当りの遅延量によって徐々に遅延させる。遅延選択回路1021S1は、前記遅延回路1021に入力される遅延設定信号S1022によって、前記遅延回路1021に入力されるデータS101dwか、または前記遅延素子1021D1〜1021Dnによって前記入力データS101dwの変化点から遅延素子一段当りの遅延量によって徐々に遅延されたデータS1021D1〜S1021Dnか、の何れかを選択する。
【0044】
上記実施の形態1で既に説明したように、データの最適なアクセスタイミングを調整する校正プログラムが実行されている場合、遅延選択信号S1022は、まず遅延のない状態を示し、前記遅延選択回路1021S1は、入力データS101dwを選択し、データ出力S102dwへ出力する。このデータが正しくアクセスされていなかった場合には、前記遅延選択信号S1022は、データを遅延素子一段分の遅延量だけ遅延させる状態を示し、前記遅延選択回路1021S1は、遅延素子1021D1の出力S1021D1を選択してデータ出力S102dwへ出力する。再びデータが正しくアクセスされていなかった場合には、前記遅延選択信号S1022は、データを更に遅延素子一段分の遅延量だけ遅延させる状態を示し、前記遅延選択回路1021S1は、遅延素子1021D2の出力S1021D2を選択してデータ出力S102dwへ出力し、以降データのアクセスが正しく実行されるまでこの動作を繰り返す。データの書き込みアクセスにおけるホールド時間は、遅延素子の総遅延量の範囲内によって保証されるため、レジスタへのデータが確実に実行される。
【0045】
このようにして最適なアクセスタイミングが設定され、校正プログラムが終了した後、再びデータアクセスが実行された場合、既に記録されているアクセスタイミングの情報によって、前記遅延選択信号S1022は、入力データS101dwか遅延素子1021D1〜1021Dnによって遅延されたデータS1021D1〜S1021Dnの何れかを選択し、常に最適なタイミングでデータ出力S102dwに出力する。
【0046】
このような本実施の形態3による制御装置における遅延装置においては、CPUと周辺回路ブロックにおけるレジスタとのデータアクセスにおいて、最適なホールド時間を得るための遅延回路を、バッファを直列に接続した構成とするようにしたので、周辺回路ブロックにおける各レジスタのデータ到達時間を最小にすることができる効果が得られる。
【0047】
(実施の形態4)
図15は、本発明の実施の形態4に係わる制御方法を説明した図である。各処理フローについて説明する。
図15において、システムが起動した後、CPUは全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムCPを実行する。
【0048】
前記校正プログラムCPは、全レジスタ空間をアクセスする(ステップS1)ために順次アドレスを変更する。最初のレジスタアクセスにおいて、まず校正プログラム実行直前に元々該レジスタが保有していた値をワークメモリに退避させ(ステップS2)、同時にデータの遅延量を計るカウンタがリセットする(ステップS3)。続いて、アクセス対象となるレジスタに対して校正パターン1、例えば0101パターンを書き込む(ステップS4)。次に書き込んだデータを前記レジスタから読み出し(ステップS5)、既に書き込まれているはずの校正パターン1のデータ、例えば0101と比較する(ステップS6)。この時、前記比較した結果が一致しなかった場合(ステップS6でNo)、前記カウンタの値が1だけインクリメントされ(ステップS7)、再度校正パターン1を同じレジスタに対して書き込んだ(ステップS4)後、書き込んだデータを前記レジスタから読み出して(ステップS5)、校正パターン1と再び比較する(ステップS6)。以上、この動作を繰り返して、書き込みデータと読み出しデータが一致すれば(ステップS6でYes)、次の処理へ進む。
【0049】
校正パターン1、例えば0101パターン、による最適なアクセスタイミングが設定された後、前記レジスタに対して校正パターン2、例えば1010パターン、を同じレジスタに書き込む(ステップS8)。即ち、校正パターン1と校正パターン2は任意の値でよいが、それぞれ各ビットが排他的な関係になくてはならない。次に書き込んだデータを同じレジスタから読み出し(ステップS9)、既に書き込まれているはずの校正パターン2のデータ、例えば1010と比較する(ステップS10)。この時、前記比較した結果が一致しなかった場合、前記カウンタの値が更に1だけインクリメントされ(ステップS11)、再度校正パターン2を前記レジスタに対して書き込んだ後(ステップS8)、書き込んだデータを前記レジスタから読み出して(ステップS9)、校正パターン2と再び比較する(ステップS10)。
【0050】
以上、この動作を繰り返して、書き込みデータと読み出しデータが一致すれば(ステップS10でYes)、前記レジスタに対するアクセスタイミングの校正は完了し、アクセスの対象となるアドレスを変更して、上記校正を繰り返す。またこの時、各レジスタに対する最適なタイミング情報、即ちカウンタの値は、自動的にマップメモリへ記録され(ステップS12)、校正プログラムCPが終了した後、再びレジスタに対してアクセスが実行された場合には、前記マップメモリに記録されているカウンタ値を参照して、最適なデータアクセスを得る(ステップS13)。最後にワークメモリへ退避させていた元のレジスタ値を該レジスタに再び書き込む(ステップS14)。
校正プログラムCPが終了した後、メインプログラムMPが作動し、システムは作動する。
【0051】
このような本実施の形態4による制御方法においては、システム起動時に校正プログラムを実行することで、CPUと、周辺回路ブロックにおけるレジスタとのデータアクセスを最適化することにより、デバイスの製造工程におけるバラツキを抑えることができる効果が得られる。
【0052】
(実施の形態5)
図13、図15、および図16は、本発明の実施の形態5に係わる制御装置、および制御方法を説明した図である。
図13において、システムが起動した後、CPU101は全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムCPを実行し、バスインターフェイス102内のマップメモリに記録された最適なアクセスタイミングを参照しながら、周辺ブロックにおけるレジスタに対してデータアクセスを実行する。
【0053】
以後、システムが経年変化による影響を吸収する目的で、定期的に校正プログラムCPが作動するよう、タイマー106を動作させる。タイマー106にはカウンタが内蔵され、前記カウンタ値がCPU101によって設定された値と一致するか、またはオーバーフローするか、またはアンダーフローするかによって、前記CPU101に対して割り込みを発生させる。前記CPU101は、該割り込み信号を受け取り、校正プログラムCPを実行する。
【0054】
図15において、システムが起動した後、CPUは全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムCPを実行する。校正プログラムCP終了後、メインプログラムMPが実行され、システムが作動する。
【0055】
図16において、メインプログラムMPが開始された後、前記タイマー106より割り込みが前記CPU101へ入力された場合(ステップS15)、前記CPU101は再び校正プログラムCPを実行し、各周辺ブロックにおけるレジスタに対して最適なアクセスタイミングを得る。校正プログラムCP終了後、CPU101はメインプログラムMPに復帰し、終了条件を検出して(ステップS16)、Noであれば、タイマー106による割り込みが入力される直前の動作に戻る。
メインプログラムはシステムを終了させる条件を満たした時点(ステップS16でYes)で終了し、システムを停止する。
【0056】
このような本実施の形態5による制御装置、および制御方法においては、システム起動時に校正プログラムを実行した上で、更にタイマー106によって定期的に校正プログラムを実行することにより、CPUと周辺回路ブロックにおけるレジスタとのデータアクセスを最適化し、デバイスの製造工程におけるバラツキだけでなく、経年劣化による影響を抑えることができる効果が得られる。
【0057】
(実施の形態6)
図14、図15、および図17は、本発明の実施の形態6に係わる制御装置、および制御方法を説明した図である。
図14において、システムが起動した後、CPU101は全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムCPを実行し、バスインターフェイス102内のマップメモリに記録された最適なアクセスタイミングを参照しながら、周辺ブロックにおけるレジスタに対してデータアクセスを実行する。
【0058】
以後、システムが周囲の条件変化による影響を吸収する目的で、突発的に校正プログラムCPが作動するよう、検知回路107を動作させる。検知回路107は、例えば、周囲の湿度や温度、電源電圧、外部通信による動作条件変更などによって、前記CPU101に対して割り込みを発生させる。前記CPU101は該割り込み信号を受け取り、校正プログラムCPを実行する。
【0059】
図15において、システムが起動した後、CPUは全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムCPを実行する。校正プログラムCP終了後、メインプログラムMPが実行され、システムが作動する。
【0060】
図17において、メインプログラムMPが開始された後、前記検知回路107より割り込みが前記CPU101へ入力された場合(ステップS17)、前記CPU101は再び校正プログラムCPを実行し、各周辺ブロックにおけるレジスタに対して最適なアクセスタイミングを得る。校正プログラムCP終了後、CPU101はメインプログラムに復帰し、終了条件を検出して(ステップS16)、Noであれば、検知回路107による割り込みが入力される直前の動作に戻る。
メインプログラムはシステムを終了させる条件を満たした時点(ステップS16でYes)で終了し、システムを停止する。
【0061】
このような本実施の形態6による制御装置、および制御方法においては、システム起動時に校正プログラムを実行した上で、更にセンサー107によって突発的に校正プログラムを実行することにより、CPUと周辺回路ブロックにおけるレジスタとのデータアクセスを最適化し、デバイスの製造工程におけるバラツキだけでなく、デバイスの使用条件の変化による影響を抑えることができる効果が得られる。
【0062】
(実施の形態7)
図15、図18、図19、および図20は、本発明の実施の形態7に係わる制御方法を説明した図である。
図15において、システムが起動した後、CPUは全ての周辺ブロックにおける全てのレジスタに対して正しく書き込みアクセスが実行されるための校正プログラムCPを実行する。校正プログラムCP終了後、メインプログラムMPが実行され、システムが作動する。
【0063】
図18において、メインプログラムMPが開始された後、CPUが周辺回路におけるレジスタへの書き込みアクセスを実行した場合(ステップS19,S20)、レジスタアクセスルーチンを実行する。
【0064】
レジスタアクセスルーチンにおいて、レジスタへのアクセスが正常に実行されているかを確認する目的で、図19に示す処理フローでは、まずデータの書き込みアクセス対象レジスタに対して読み出し処理を実行する(ステップS21)。続いて、読み出したデータをそのまま前記レジスタに書き込みを行い(ステップS22)、再び前記レジスタからデータを読み出して(ステップS24)、書き込んだデータと読み出したデータとが一致しているかを確認する(ステップS25)。この時、書き込んだデータと読み出したデータとが一致しない場合、直ちにCPUに対して割り込み処理を要求して校正プログラムCPを起動し、最適なアクセスタイミングに調整する。校正プログラムCP実行後、または上記書き込みデータと読み出しデータとが一致していた場合(ステップS24でYes)には、本来前記レジスタに書き込むべきデータの書き込み処理を行い(ステップS25)、レジスタアクセスルーチンを終了してメインプログラムMPに復帰する。このようにして、常にレジスタのアクセス状況を確認することで、必要に応じてリアルタイムに校正プログラムCPを起動することが可能となる。特に、図19に示す処理フローでは、周辺回路におけるレジスタの中に、ハード的にラッチ回路を有していないビットや、書き込み禁止のビットが存在した場合でも、前記ビットの存在を意識することなく一致判定プログラムを作成できる。
【0065】
また、レジスタアクセスルーチンにおいて、レジスタへのアクセスが正常に実行されているかを確認する目的で、図20に示す処理フローでは、まずデータの書き込みアクセス対象レジスタに対して書き込み処理を実行し(ステップS26)、続いて前記レジスタからデータを読み出して(ステップS27)、書き込んだデータと読み出したデータとが一致しているかを確認する(ステップS28)。この時、書き込んだデータと読み出したデータとが一致しない場合(ステップS28でNo)、直ちにCPUに対して割り込み処理を要求して校正プログラムCPを起動し、最適なアクセスタイミングに調整する。校正プログラムCP実行後、再び前記レジスタに対して書き込みを行い(ステップS26)、続いてデータを読み出して(ステップS27)再び読み出しデータと一致しているか確認する(ステップS28)。最初の書き込み処理(ステップS26)、または校正プログラムCP実行後の書き込み処理(ステップS26)において、書き込みデータと読み出しデータが一致していれば、レジスタアクセスルーチンを終了してメインプログラムMPに復帰する。このようにして、常にレジスタのアクセス状況を確認することで、必要に応じてリアルタイムに校正プログラムCPを起動することが可能となる。特に図20に示す処理フローでは、書き込み処理と読み出し処理が1回だけで済むため、一致判定プログラムを少ないステップ数で作成することができる。
レジスタアクセスルーチンから復帰したメインプログラムは、システムを終了させる条件を満たした時点で終了し、システムを停止する。
【0066】
このような本実施の形態7による制御方法においては、システム起動時に校正プログラムを実行した上で、更に常にアクセス状況を確認してリアルタイムに校正プログラムを実行することにより、CPUと周辺回路ブロックにおけるレジスタとのデータアクセスを最適化し、デバイスの製造工程におけるバラツキだけでなく、デバイスの使用条件の変化、更には経年劣化による影響をも抑えることができる効果が得られる。
【0067】
(実施の形態8)
図12は、本発明の実施の形態8に係わる制御装置を説明するための図である。
図12は、図3におけるバスインターフェイス102の構成を示した図である。次にバスインターフェイス102の動作について説明する。
【0068】
バスインターフェイス102は、校正プログラムが実行されていることを通知する校正モード信号S101cbを検知すると、カウンタ1023をリセットし、遅延回路1021への遅延選択信号S1021を、カウンタ出力S1023側に選択する。またこの時、CPU101は、校正プログラムによって、全レジスタに対するアクセスチェックを行うためのデータを出力し、同時にレジスタへの書き込みを行うためにライト/リード信号を書き込みモードにする。CPU101から出力されたデータは、データバスS101dwから入力され、遅延回路1021に入力される。またこの時、CPU101から出力されたアクセス対象レジスタのアドレスは、アドレスバスS101aから入力され、S102aへと出力されるだけでなく、マップメモリ1024のアドレスにも入力される。即ち、周辺ブロックにおける全レジスタ空間は、マップメモリ1024上にマッピングされ、都度CPU101が周辺ブロックをアクセスする度に、マップメモリの対象アドレスもアクセスされることを意味する。データは、書き込みサイクルにおいて、カウンタ1023の値に従って、遅延回路1021の出力が選択され、カウンタ1023が初期値の場合、遅延0のデータが選択される。またこの時、CPU101から出力されたデータS101dwは、バスインターフェイス102内にあるバッファ1027に一時保管される。このようにしてバスインターフェイス102を通過したデータS102dwは、アドレスS102aの対象となるレジスタに対して、書き込みを実行する。
【0069】
次に、CPU101は校正プログラムに従って、読み出しサイクルへと移行する。CPU101は、前記アクセス対象レジスタに対してアクセスを行うため、書き込みサイクルの時と同じアドレスをアドレスバスS101aに出力し、同時にライト/リード信号を読み出しモードにする。アクセス対象となるレジスタは、この読み出しを検知して、CPU101に対してデータを出力し、データバスS102drを介して、バスインターフェイス102に入力される。入力された読み出しデータS102drは、バスインターフェイス102内において、前記書き込みサイクルの時にバッファ1027に一時保管された書き込みデータと一致しているかを判定される。この時、前記一致判定回路によって書き込みデータと、読み出しデータとの一致が確認された場合、データがアクセス対象レジスタに正しく書き込めたことを、前記CPU101に対して通知し、同時に前記バスインターフェイス102に入力されている校正モード信号S101cbがアクティブで、かつライト/リード信号が読み出しモードであれば、前記カウンタ1023の値を前記アクセス対象となっているレジスタのアドレスがマッピングされた前記マップメモリ1024に書き込み、校正プログラムは次のアクセス対象レジスタに対してアドレスを変更し、再び書き込みサイクルへと移行する。一方、前記一致判定回路によって書き込みデータと読み出しデータの一致が確認されなかった場合、データがアクセス対象レジスタに正しく書き込めなかったことを前記CPU101に対して通知し、再度、同じアクセス対象レジスタに対して書き込みサイクルへと移行すると同時に、前記カウンタ1023の値をインクリメントする。前記カウンタ1023の値がインクリメントされることにより、前記遅延回路1021における遅延量が増加する。
【0070】
以上、これら一連の動作を繰り返すことによって、CPU101から全レジスタに対して、データが正しく書き込めるタイミングを調整するが、この時、遅延回路1021内の総遅延時間がデータの最小アクセスサイクルの時間を超える場合には、最適なアクセスタイミングを得ることはできない。これは、上記説明したようなバスインターフェイス102の持つアクセス調整機能が、データの書き込みに対して、そのホールド時間を保証させるためのものであることによる。
【0071】
そこで、前記CPU101は、従来のアクセス方法であれば、図8に示すように、ウェイト法またはハンドシェイク法により、データのアクセスサイクルを延ばして、セットアップ時間を保証することによってデータを正しくアクセスさせていた。しかしながら、これらの手法は、レジスタアクセスのために、バスの占有時間とCPUの演算処理に対してアクセス時間を延長した分だけペナルティを与えてしまう。そこで図12に示すバスインターフェイス102では、次の処理を施すことによって、データアクセスによるシステム処理へのペナルティを低減させる。
【0072】
図12において、バスインターフェイス102は、内部にバッファメモリ102a2が設置され、前記CPU101から出力されたデータを一旦該バッファメモリ102a2に記録し、上記説明したような、前記遅延回路1021の総遅延時間がデータの最小アクセスサイクルを超えた場合、即ち、前記カウンタ1023がオーバーフローした場合、該バッファメモリ102a2の書き込み/読み出し制御を行うバッファメモリ制御回路102a3の読み出しポインタS102a3を維持したまま、書き込みポインタをカウンタ1023のオーバーフロー信号S102a3によりインクリメントすることによってデータアクセスにおけるセットアップ時間を計測し、上記説明した、ホールド時間を保証するための遅延時間を前記カウンタ1023によって計測し該カウンタ1023の値を前記マップメモリ1024に記録した場合と同様、該セットアップ時間を保証するための遅延時間を前記カウンタ1023がオーバーフローした回数、即ち、前記バッファメモリ制御回路における書き込みポインタと読み出しポインタの差、を前記マップメモリ1024に記録する。
【0073】
以上、これら一連の動作を繰り返すことによって、CPU101から全レジスタに対してデータを正しく書き込めるタイミングが前記マップメモリ1024に記録され、校正プログラムの終了後、再びCPU101がレジスタに書き込みを行う場合、バスインターフェイス102は、アクセス対象となっているレジスタのアドレスから前記マップメモリ1024にマッピングされている遅延量を参照し、ホールド時間に対しては、遅延回路1021によって最適なタイミングに遅延されたデータがバスインターフェイス102から出力され、一方セットアップ時間に対しては、バッファメモリ102a2によってデータが確実にアクセスされるまで読み出しポインタを停止させることにより、常に正しいデータをレジスタに書き込むことが可能となる。
【0074】
またこの時、前記バッファメモリ102a2には、アドレスS101aと、データS101dw、およびライト/リード信号S101wrがマルチプレクサ102a1によって、同時に前記バッファメモリ102a2に記録され、上記説明したように、データが周辺ブロックにおけるレジスタに対して確実にアクセスされるまで読み出しポインタを停止させることにより、アクセス対象レジスタのアドレスも同時に保持され、前記レジスタに対してライトイネーブルが取り消されることなく、前記CPU101は次のレジスタアクセスに移行することができる。即ち、前記CPU101は、データアクセスのセットアップ時間を保証するために、アクセスサイクルを延長していたが、上記バッファメモリにデータを一時格納することによって、前記CPU101が連続してレジスタアクセスを実行した場合においても、最初にアクセスされたレジスタに対して確実にアクセスが実行されるまでは、前記バッファメモリ102a2の読み出しポインタを停止させることで正しくレジスタにアクセスでき、続いてアクセスされたレジスタに対しては、前記バッファメモリ102a2に対して前記バッファメモリ制御回路によって読み出しポインタを停止させたまま書き込みポインタをインクリメントすることで直ちにデータを確保でき、最初にデータアクセスが完了した時点で再び読み出しポインタをインクリメントすることによって、次のデータアクセスに対して最適なアクセスタイミングを適用した状態でレジスタへアクセスさせることができるため、CPU101は、レジスタへの連続アクセスに対して、セットアップ時間を保証するためのアクセスサイクルの延長を施すことなく、各データアクセスサイクルに対して必ず1サイクルで処理が完了することができ、データの書き込みアクセスに関して、CPUへのペナルティを最小限に抑えることが可能となる。
【0075】
このような本実施の形態8による制御装置においては、バスインターフェイス内でデータ、アドレス、およびライト/リード信号を一時バッファメモリに保管することにより、CPUからのアクセスサイクルを常に1サイクルで実現し、CPUと周辺回路ブロックにおけるレジスタとのデータアクセスによるCPUへのペナルティを最小限に抑えることができる効果が得られる。
【0076】
【発明の効果】
以上のように、本発明にかかる制御装置によれば、CPUと、周辺回路との間にバスインターフェイスを設置し、校正プログラムによって各周辺回路におけるレジスタの最適なアクセスタイミングを個々に調整することによって、デバイスの製造工程を経た後であっても、各々のデバイスが独自にアクセスタイミングを調整することにより、煩雑なタイミング検証を解消し、更にはプロセスのバラツキや経年劣化、および使用条件の変化といった外的要因に対しても、その影響を受けなくするようにすることができるものである。
【図面の簡単な説明】
【図1】本発明の実施の形態1にかかるブランチ構造の制御装置におけるバス構成の概念図
【図2】本発明の実施の形態1におけるバス構成の概念図
【図3】本発明の実施の形態1におけるバス構成に係る信号線を示す図
【図4】本発明の実施の形態1におけるバスインターフェイスの構成を示す図
【図5】本発明の実施の形態2にかかる制御装置における遅延装置の構成図
【図6】本発明の実施の形態3にかかる制御装置における遅延装置の構成図
【図7】データの書き込みアクセス(1サイクル)に係るタイミング図
【図8】データの書き込みアクセス(2サイクル)に係るタイミング図
【図9】データの書き込みアクセス(正常)に係るタイミング図
【図10】データの書き込みアクセス(異常)に係るタイミング図
【図11】データの書き込みアクセス(調整)に係るタイミング図
【図12】本発明の実施の形態3に係る制御装置を示す構成図
【図13】本発明の実施の形態5に係る制御装置を示す構成図
【図14】本発明の実施の形態6に係る制御装置を示す構成図
【図15】本発明の実施の形態4、実施の形態5、および実施の形態7に係る制御方法を示すフローチャート
【図16】本発明の実施の形態5に係る制御方法を示すフローチャート
【図17】本発明の実施の形態6に係る制御方法を示すフローチャート
【図18】本発明の実施の形態7に係るフローチャート
【図19】本発明の実施の形態7に係るレジスタアクセスのフローチャート
【図20】本発明の実施の形態7に係るレジスタアクセスのフローチャート
【図21】従来例におけるブランチ構造のバス構成の概念図
【図22】従来例におけるチェイン構造のバス構成の概念図
【図23】従来例におけるブランチ構造のバス構成に係る信号線を示す図
【図24】従来例におけるチェイン構造のバス構成に係る信号線を示す図
【符号の説明】
101 CPU
S101 CPUに接続されるバス
S101a CPUから出力されるアドレスバス
S101dw CPUから出力されるデータバス(書き込み)
S101dr CPUに入力されるデータバス(読み出し)
S101wr CPUから出力されるライト/リード信号
S101cb 校正プログラム実行モード信号
S101ak データアクセスの応答信号
102 バスインターフェイス
S102 スインターフェイス−周辺回路ブロック間で接続されるバス
S102a バスインターフェイスから出力されるアドレスバス
S102dw バスインターフェイスから出力されるデータバス(書き込み)
S102dr バスインターフェイスに入力されるデータバス(読み出し)
S102wr バスインターフェイスから出力されるライト/リード信号
1021 遅延回路
1021D0 データ遅延用フリップフロップ
1021D1〜Dn データ遅延用バッファ
S1021D0〜Dn データバス
1021S0〜1 データ遅延選択回路
1021I0 半相遅延用インバータ
1022 選択回路
S1022 遅延値選択信号
1023 カウンタ
S1023 カウンタ出力
1024 マップメモリ
S1024 マップメモリデータ
1025 マップメモリアクセス判定回路
S1025 マップメモリ書き込みイネーブル
1026 データ一致検出回路
1027 データバッファ
102a1 アドレス・データマルチプレクサ
S102a1 アドレス・データ入力バス
102a2 Fi−Foメモリ
S102a2 アドレス・データ出力バス
102a3 Fi−Foメモリ制御回路
S102a3 Fi−Foメモリ制御信号
102a4 アドレス選択回路
102a5 データ選択回路
S102a5 データバス
103 周辺回路ブロックA
S103 チェインバス
104 周辺回路ブロックB
S104 チェインバス
105 周辺回路ブロックC
S105 チェインバス
106 タイマー
S106 タイマー割り込み
107 検知回路
S107 検知割り込み
Claims (9)
- CPUと、複数の周辺回路との間で、1つのバスインターフェイスを介して、データアクセスを行う制御装置において、
全ての周辺回路に内蔵される全てのレジスタに対して、校正プログラムによって、各々のアクセスタイミングを自動的に調整しながらデータアクセスを行う、
前記全てのレジスタに対する確実なデータアクセスを保証するようにする、
ことを特徴とする制御装置。 - 請求項1記載の制御装置において、
前記校正プログラムの実行時における、各レジスタにおける最適なアクセスタイミングを、マップメモリに記録し、
前記校正プログラムが終了した後、再び前記CPUにより、前記マップメモリに記録されている該レジスタにおける最適なアクセスタイミングを参照して、前記周辺回路のレジスタに対し、データアクセスを行い、
前記各レジスタにおけるデータアクセスのホールド時間を保証するようにする、
ことを特徴とする制御装置。 - 請求項2記載の制御装置において、
最適なアクセスタイミングを提供するための遅延回路が、フリップフロップで構成され、
該フリップフロップのラッチタイミングが、データの変化タイミングを決定しているクロックと逆相関係にあるクロックでラッチされ、
データが変化する周期の半相分の遅延時間により、前記各レジスタにおけるデータアクセスのホールド時間を保証する、
ことを特徴とする制御装置。 - 請求項2記載の制御装置において、
最適なアクセスタイミングを提供するための遅延回路が、バッファで構成され、
該遅延バッファをデータアクセスに最適な遅延時間を得るだけの段数が、直列に接続され、
前記バッファチェインの総遅延時間により、前記各レジスタにおけるデータアクセスのホールド時間を保証する、
ことを特徴とする制御装置。 - 請求項1記載の制御装置において、
システムの起動時に、全ての周辺回路に内蔵される全てのレジスタに対して、校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、
前記全てのレジスタに対する確実なデータアクセスを保証するようにする、
ことを特徴とする制御装置。 - 請求項1記載の制御装置において、
タイマーなどのカウンタによる割り込みによって、周期的に、全ての周辺回路に内蔵される全てのレジスタに対して、前記校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、
前記全てのレジスタに対する確実なデータアクセスを保証するようにする、
ことを特徴とする制御装置。 - 請求項1記載の制御回路において、
周囲の条件変化を検知する検知回路による割り込みによって、例えば温度変化や電圧変化が生じた場合に、全ての周辺回路に内蔵される全てのレジスタに対して、前記校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、
前記全てのレジスタに対する確実なデータアクセスを保証するようにする、
ことを特徴とする制御装置。 - 請求項1記載の制御回路において、
周辺回路とのデータアクセス時に書き込みエラーが発生したとき、全ての周辺回路に内蔵される全てのレジスタに対して、校正プログラムによって各々のアクセスタイミングを自動的に調整しながらデータアクセスを行い、
前記全てのレジスタに対する確実なデータアクセスを保証するようにする、
ことを特徴とする制御装置。 - 請求項1記載の制御回路において、
前記校正プログラムが実行された後、前記CPUが、前記周辺回路に対してデータの書き込みアクセスを実行したとき、該CPUは、データの書き込みアクセスに対してセットアップ時間を保証するよう、ウェイト法またはハンドシェイク法によってアクセスサイクルを延ばし、
データアクセスの1サイクル目で、該データをアクセスさせる周辺回路におけるレジスタのアドレスおよび該データを、バッファメモリに一時的に保存し、
前記マップメモリから確実にアクセスが完了していることを判断した時点で、前記バッファメモリから前記レジスタのアドレスおよび前記データを消去し、
かつ、前記CPUによる周辺回路に対するデータの書き込みアクセスは、CPUから見て1サイクルでこれを完了する、
ことを特徴とする制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003124179A JP2004326690A (ja) | 2003-04-28 | 2003-04-28 | 制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003124179A JP2004326690A (ja) | 2003-04-28 | 2003-04-28 | 制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004326690A true JP2004326690A (ja) | 2004-11-18 |
Family
ID=33501858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003124179A Pending JP2004326690A (ja) | 2003-04-28 | 2003-04-28 | 制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004326690A (ja) |
-
2003
- 2003-04-28 JP JP2003124179A patent/JP2004326690A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3270290B1 (en) | Ddr memory error recovery | |
US8103920B2 (en) | Memory system configured by using a nonvolatile semiconductor memory | |
KR102170644B1 (ko) | 낮은 레벨 프로그래밍 가능한 시퀀서와 조합한 범용 프로그래밍 가능한 프로세서를 사용한 비휘발성 메모리 채널 제어 | |
CN107544923B (zh) | 用于控制对存储器设备的访问的装置以及相关方法 | |
US8356203B2 (en) | Asynchronous interface circuit and data transfer method | |
WO2010137330A1 (ja) | 遅延調整装置、遅延調整方法 | |
KR100474622B1 (ko) | 마이크로컴퓨터 | |
US7269754B2 (en) | Method and apparatus for flexible and programmable clock crossing control with dynamic compensation | |
US20110040902A1 (en) | Compensation engine for training double data rate delays | |
US11561862B2 (en) | Refresh management for DRAM | |
JP2008545190A (ja) | 集積回路およびオンチップメモリへのアクセスの確保方法 | |
JP4888562B2 (ja) | メモリ回路およびメモリ回路のデータ書き込み・読み出し方法 | |
KR20110116990A (ko) | 마이크로 컴퓨터 | |
US20120210108A1 (en) | Semiconductor device | |
KR20030020379A (ko) | 전달 지연에 독립적인 sdram 데이터 캡쳐 장치 및 방법 | |
JP2004326690A (ja) | 制御装置 | |
JP2014016925A (ja) | 情報処理システム、データ切替方法およびプログラム | |
US20070070729A1 (en) | High access speed flash controller | |
US6076170A (en) | Method and apparatus for selectively programming access time in a data processor | |
JP5350049B2 (ja) | インターフェース回路 | |
JP4008196B2 (ja) | レジスタ制御装置及びマルチcpuシステム | |
JP5381919B2 (ja) | Fifoデータ読出装置 | |
JP2009145960A (ja) | マスタ・スレーブシステム | |
JP2007206909A (ja) | データ処理装置およびデータ処理方法 | |
JP2008176553A (ja) | マイクロコンピュータ |