説明

データ処理装置

【課題】CPUの負荷を増大させることなくレジスタの設定を再設定することが可能なデータ処理装置を提供する。
【解決手段】データ処理装置は、プロセッサと、プロセッサと協働して動作するための少なくとも1つの周辺装置と、周辺装置と協働して動作するために必要な周辺装置の動作の状態を規定する設定データを格納しているメモリとを含む。周辺装置は、プロセッサにより設定される設定データを格納するための少なくとも1つのレジスタを含む。データ処理装置は、プロセッサにより設定された後、プロセッサとは独立して、レジスタに設定された設定データの値を再設定するためのレジスタ再設定装置とをさらに含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、周辺装置が有するレジスタの設定を再設定するためのデータ処理装置に関する。
【背景技術】
【0002】
従来より、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、周辺I/O(input/output)などを1つのチップ上に集積して内蔵しているマイクロコンピュータが知られている。このようなマイクロコンピュータにおいて、たとえば、周辺I/Oなどの機器は、自身が有するレジスタの設定内容に基づいてCPUと協働して動作しているが、当該レジスタの設定内容は、静電気や外部の接続装置などの要因により変化(データ化け)する場合がある。レジスタにデータ化けが生じたまま動作が継続されると、機器に悪影響を与えてしまうおそれがある。このようなレジスタのデータ化けに対応し、機器を正常に動作させるための様々な技術が提案されている。
【0003】
たとえば、特開2001−350547号公報(特許文献1)には、初期の状態からCPUとは独立してレジスタのデータを管理し、データ転送等をするデータ転送装置が開示されている。
【0004】
また、特開2004−13196号公報(特許文献2)および特開2006−195863号公報(特許文献3)には、レジスタでのデータエラーの検出頻度を高める技術が開示されている。
【0005】
また、特開平5−61724号公報(特許文献4)には、CPUによって周辺回路が有するレジスタの設定内容が定期的に監視され、CPUはレジスタの設定値が正しい設定値(初期値)と異なっている場合、初期値をレジスタに再設定する技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2001−350547号公報
【特許文献2】特開2004−13196号公報
【特許文献3】特開2006−195863号公報
【特許文献4】特開平5−61724号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献4では、CPUが定期的にレジスタの設定内容を監視し、また設定内容に異常があった場合にはその内容を再設定処理をする必要があり、CPUの負荷が増大してしまう。また、このような、CPUによるソフトウェア処理が追加されることにより、ソフトウェア処理のオーバーヘッドが増大したり、ソフトウェア設計が複雑になるという問題がある。
【0008】
本発明は、上記の問題点を解決するためになされたものであって、CPUの負荷を増大させることなくレジスタの設定を再設定することが可能なデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の一実施例に従うデータ処理装置は、プロセッサと、プロセッサと協働して動作するための少なくとも1つの周辺装置と、周辺装置と協働して動作するために必要な周辺装置の動作の状態を規定する設定データを格納しているメモリとを含む。周辺装置は、プロセッサにより設定される設定データを格納するための少なくとも1つのレジスタを含む。データ処理装置は、プロセッサにより設定された後、プロセッサとは独立して、レジスタに設定された設定データの値を再設定するためのレジスタ再設定装置とをさらに含む。
【発明の効果】
【0010】
以上のように、本発明の一実施例によれば、CPUの負荷を増大させることなくレジスタの設定を再設定することが可能となる。
【図面の簡単な説明】
【0011】
【図1】本発明の実施の形態1に従うデータ処理装置の構成例を示すブロック図である。
【図2】本発明の実施の形態1に従う格納情報テーブルを示す図である。
【図3】本発明の実施の形態1に従うCPUの処理手順を示すフローチャートである。
【図4】本発明の実施の形態1に従うレジスタ再設定装置のレジスタ再設定処理手順を示すフローチャートである。
【図5】本発明の実施の形態2に従うデータ処理装置の構成例を示すブロック図である。
【図6】本発明の実施の形態2に従う格納情報テーブルを示す図である。
【図7】本発明の実施の形態2に従うレジスタ再設定装置のレジスタ再設定処理手順を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての同一部分については、その詳細な説明は繰り返さない。
【0013】
[1.実施の形態1]
<A.全体構成>
まず、本発明の実施の形態1に従うデータ処理装置1の全体構成について説明する。
【0014】
図1は、本発明の実施の形態1に従うデータ処理装置1の構成例を示すブロック図である。
【0015】
図1を参照して、データ処理装置1は、CPU100と、ROM110と、RAM120と、周辺装置130Aおよび130Bと、データバス140と、レジスタ再設定装置200とを含む。以下の説明においては周辺装置130A〜130Bを代表させて周辺装置130とも称する。なお、本例においては一例として、データ処理装置1は、1チップマイクロコンピュータで構成されており、CPU100と、ROM110と、RAM120と、周辺装置130と、データバス140と、レジスタ再設定装置200とは1つのIC(Integrated Circuit)チップ上に実装されている場合について説明する。ただし、ROM110と、RAM120とは同じICチップ上に実装されていてもよいし、外部で接続されていても良く適宜設計変更が可能である。
【0016】
CPU100と、ROM110と、RAM120と、周辺装置130と、レジスタ再設定装置200とはデータバス140を介して、電気的に接続されており各種データの授受を行なう。
【0017】
CPU100は、ROM110、RAM120などの記憶領域に記憶されているプログラムを読み出し、プログラムを順次実行することによって、データ処理装置1の各部を制御する。
【0018】
ROM110は、CPU100で実行されるプログラムを予め格納し、RAM120は、CPU100のプログラム部分の実行に必要なデータを一時的に格納する。また、ROM110は、周辺装置130の動作状態を規定する設定データを格納している。なお、当該設定データは、ROM110以外の不揮発性の記憶装置に格納されていてもよい。以下の説明では、当該設定データはROM110に格納されている場合について説明する。
【0019】
周辺装置130は、CPU100と協働して動作する。周辺装置130は、CPU100と協働して動作するために必要であり、周辺装置130の動作の状態を規定する設定データを格納するための少なくとも1つのレジスタを有する。本例においては、周辺装置130Aはレジスタ132A(レジスタRA1〜RAm)を有し、周辺装置130Bはレジスタ132B(レジスタRB1〜RBn)を有する場合が示されている。周辺装置130は、たとえば、USB(Universal Serial Bus)コントローラ、シリアルIOポートなどを含む。なお、以下の説明においては周辺装置130が有するレジスタをレジスタ132とも称する。
【0020】
レジスタ再設定装置200は、CPU100によりデータ処理装置1の起動時に、レジスタ132に設定データが設定された後、CPU100とは独立して、レジスタ132に設定された設定データの値をレジスタ132ごとに予め定められた所定の再設定周期に基づいて、再設定する。
【0021】
<B.レジスタ再設定装置200の構成>
次に、本発明の実施の形態1に従うレジスタ再設定装置200の構成について説明する。
【0022】
レジスタ再設定装置200は、制御部210と、アドレス格納部220と、周期情報格納部230とを含む。
【0023】
制御部210は、レジスタ再設定装置200の全体を制御する。制御部210には、レジスタ再設定装置200を動作状態にするか否かを判別する制御レジスタが格納されており、例えば、CPU100が当該制御レジスタの設定値に”1”を入力すると、制御部210は動作状態となり、レジスタ再設定装置200が起動する。一方、CPU100が当該制御レジスタの設定値に”0”を入力すると、制御部210は非動作状態となり、レジスタ再設定装置200が停止する。
【0024】
制御部210は、周辺装置130が有するレジスタ132を再設定する再設定部212と、再設定部212が読み出した設定データを格納するバッファ部214と、CPU100によるデータバス140へのデータ転送の有無を監視するデータバス監視部216とを含む。これらの各部についての詳細な説明は後述する。
【0025】
アドレス格納部220は、ROM110に格納されている設定データにアクセスするために必要な設定データの位置を示すソースアドレス(SA)情報と、レジスタ132にアクセスするために必要なレジスタ132の位置を示すディスティネーションアドレス(DA)情報とを格納している。これらのアドレス情報は、互いに関連付けられて格納されており、データ処理装置1の起動時にCPU100によってROM110等から読み出された後アドレス格納部220に格納されてもよいし、予めアドレス格納部220に格納されていてもよい。また、アドレス格納部220には、再設定部212によってレジスタ132を再設定するタイミングが一致している場合にどのレジスタ132を優先して再設定するかを示す優先度情報がこれらのアドレス情報と関連付けられて格納されている。また、アドレス格納部220は、基本的に初期設定した設定値が変化しないものとして設定されている(静的な)レジスタ132に対応するアドレス情報(SA情報、DA情報)を格納しているものとする。
【0026】
周期情報格納部230には、再設定部212が再設定するレジスタ132ごとに予め定められている再設定タイミングを規定する周期情報が、アドレス格納部220に格納されたSA情報と、DA情報と、優先度情報とに関連付けられて格納されている。
【0027】
ここで、レジスタ再設定装置200は、互いに関連付けられた、SA情報と、DA情報と、優先度情報と、周期情報とに基づいて作成される格納情報テーブルを有していてもよい。ただし、レジスタ再設定装置200は、アドレス格納部220と周期情報格納部230とから、SA情報と、DA情報と、優先度情報と、周期情報とが互いに関連付けられていることが把握できる場合は、当該格納情報テーブルを有していなくてもよい。以下では、レジスタ再設定装置200が、当該格納情報テーブルを有しているものとして説明する。
【0028】
図2は、本発明の実施の形態1に従う格納情報テーブルを示す図である。
図2を参照して、格納情報テーブルは、アドレス格納部220に格納されたSA情報と、DA情報と、優先度情報(P)と、周期情報格納部230に格納された周期情報(T)とが互いに関連付けられていることを示している。すなわち、周辺装置130が有するレジスタ132に設定される設定データにそれぞれ対応するSA情報(SA1〜SAn)と、当該レジスタ132にそれぞれ対応する複数のDA情報(DA1〜DAn)と、当該各アドレス情報(SA情報、DA情報)にそれぞれ関連付けられた複数の優先度情報(P1〜Pn)と、当該各アドレス情報にそれぞれ関連付けられた複数の周期情報(T1〜Tn)とを格納している。
【0029】
次に、制御部210に含まれる各部の主な機能について説明する。
上述したように、制御部210は、再設定部212と、バッファ部214と、データバス監視部216とを含む。
【0030】
再設定部212は、基準クロックに基づいて時間計測を行ない、一例として格納情報テーブルに従うと、周期T1ごとにSA1情報に基づいてROM110から設定データを読み出して、当該設定データをバッファ部214に格納し、DA1情報に基づく所定のレジスタ132に当該設定データを書き込むことでレジスタ132を再設定する。
【0031】
データバス監視部216は、データバス140を監視する。具体的には、データバス監視部216は、CPU100によりデータバス140を介してデータの授受が実行されているか否か判断する。データバス監視部216が、CPU100によりデータの授受が実行されていないと判断したときに、再設定部212はデータバス140を介して設定データの読出しをしたり、書き込みをしたりしてもよい。また、データバス監視部216は、再設定部212がレジスタ132の設定データの値を再設定などする際に、CPU100にその旨を通知してもよい。
【0032】
<C.CPU100の動作フロー>
次に、本発明の実施の形態1に従うCPU100の動作フローについて説明する。
【0033】
図3は、本発明の実施の形態1に従うCPU100の処理手順を示すフローチャートである。ここでは、CPU100が所定のアプリケーションプログラムを実行している場合について説明する。
【0034】
図3を参照して、CPU100は、周辺装置130が有するレジスタ132を初期設定する(ステップS10)。具体的には、CPU100は、レジスタ132に設定するための設定データをROM110から読み出して、当該設定データをレジスタ132に初期設定する。
【0035】
次に、CPU100は、レジスタ再設定装置200のアドレス格納部220および周期情報格納部230に所定のデータを格納する(ステップS20)。具体的には、CPU100は、ROM110に格納されているSA情報と、DA情報と、優先度情報とを読み出してアドレス格納部220に格納し、同様にROM110に格納されている周期情報を周期情報格納部230に格納する。また、このときCPU100は、SA情報と、DA情報と、優先度情報Pと、周期情報Tとを互いに関連付けて格納する。このとき、レジスタ再設定装置200では、格納されたそれぞれの情報に基づいて格納情報テーブルが作成される。
【0036】
次に、CPU100は、レジスタ再設定装置200の動作を許可する(ステップS30)。具体的には、CPU100は、レジスタ再設定装置200の制御部210に含まれる制御レジスタにアクセスして、当該制御レジスタの設定値に”1”を入力する。当該許可がなされると、レジスタ再設定装置200が起動され、レジスタ再設定装置200は、CPU100とは独立して動作し、レジスタ132に設定データの再設定を行なうことができる。
【0037】
次に、CPU100は、所定のアプリケーションプログラムを実行する(ステップS40)。
【0038】
次に、CPU100は、所定のアプリケーションプログラムを終了するか否かを判断する(ステップS50)。CPU100は、終了しないと判断すると(ステップS50においてNO)、ステップS40からの処理を繰り返す。一方、CPU100は、終了すると判断すると(ステップS50においてYES)、アプリケーションプログラムを終了して、処理を終了する。
【0039】
以上より、本発明の実施の形態1に従うCPU100は、レジスタ132に設定データを初期設定し、レジスタ再設定装置200を起動した後は、所定のプログラムを実行している場合においても、レジスタ132に設定データを再設定するという再設定処理は行なわない。これは、レジスタ再設定装置200が、CPU100と独立して動作し、レジスタ132に設定データを再設定するという再設定処理を行なうためである。
【0040】
<D.レジスタ再設定装置200の動作フロー>
次に、本発明の実施の形態1に従うレジスタ再設定装置200がレジスタ132を再設定する際の動作フローについて説明する。なお、レジスタ再設定装置200は、静的なレジスタ132に対応するアドレス情報に基づいて当該静的なレジスタ132を再設定するものとする。
【0041】
図4は、本発明の実施の形態1に従うレジスタ再設定装置200のレジスタ再設定処理手順を示すフローチャートである。
【0042】
図4を参照して、レジスタ再設定装置200の制御部210は、所定のレジスタ132についての再設定周期が経過したか否かを判断する(ステップS102)。具体的には、制御部210は、基準クロックに基づいて時間計測を行ない、周期情報に基づいて所定の時間が経過したか否かを判断する。
【0043】
制御部210は、所定のレジスタ132についての再設定周期が経過していないと判断すると(ステップS102においてNO)、ステップS102の状態を維持する。一方、制御部210は、再設定周期が経過したと判断すると(ステップS102においてYES)、当該所定のレジスタ132以外の残余のレジスタ132の再設定タイミングが重なるか否かを判断する(ステップS104)。具体的には、制御部210は、当該所定のレジスタ132に対応するアドレス情報に関連付けられた周期情報が経過した際に、同一のタイミングで当該残余のレジスタ132に対応するアドレス情報に関連付けられた周期情報が経過したか否かを判断する。
【0044】
制御部210は、再設定タイミングが重ならないと判断した場合(ステップS104においてNO)、ステップS120からの処理を実行する。
【0045】
一方、制御部210は、再設定タイミングが重なると判断した場合(ステップS104においてYES)、競合した各レジスタ132を再設定する優先度を比較する(ステップS106)。具体的には、当該所定のレジスタ132に対応するアドレス情報に関連付けられた優先度情報と、当該残余のレジスタ132に対応するアドレス情報に関連付けられた優先度情報とを比較する。
【0046】
次に、制御部210は、優先度の最も高い優先度情報に関連付けられたアドレス情報を選択する(ステップS108)。
【0047】
次に、制御部210は、選択したアドレス情報におけるSA情報に基づいて、ROM110から設定データを読み出す(ステップS110)。
【0048】
次に、制御部210は、読み出した設定データをバッファ部214に格納する(ステップS112)。なお、制御部210は、当該設定データをバッファ部214以外の場所に格納してもよい。たとえば、ROM110に設定データの一時格納領域を専用に設けておき、当該領域に格納してもよい。
【0049】
次に、制御部210は、当該格納された設定データを選択されたアドレス情報におけるDA情報に基づいて、当該選択されたアドレス情報に対応するレジスタ132に設定データを書き込む(ステップS114)。
【0050】
次に、制御部210は、他に再設定が必要なレジスタ132があるか否かを判断する(ステップS116)。具体的には、制御部210は、優先度が低いため再設定されなかったレジスタ132がある場合には、他に再設定が必要なレジスタ132があると判断する。
【0051】
制御部210は、再設定が必要なレジスタ132があると判断すると(ステップS116においてYES)、次に優先度の高いレジスタ132の位置を示すアドレス情報を選択して(ステップS118)、ステップS110からの処理を繰り返す。一方、制御部210は、再設定が必要なレジスタ132はないと判断すると(ステップS116においてNO)、処理を終了する。
【0052】
次に、制御部210が再設定タイミングが重ならないと判断した場合(ステップS104においてNO)における、ステップS120からの処理について説明する。
【0053】
制御部210は、再設定周期が経過した所定のレジスタ132に対応するアドレス情報におけるSA情報に基づいて、ROM110から設定データを読み出す(ステップS120)。
【0054】
次に、制御部210は、読み出した設定データをバッファ部214に格納する(ステップS122)。
【0055】
次に、制御部210は、当該格納された設定データを所定のレジスタ132に対応するアドレス情報におけるDA情報に基づいて、当該所定のレジスタ132に設定データを書き込んで(ステップS124)、処理を終了する。
【0056】
なお、上述したフローにおいて、制御部210は、CPU100によりデータバス140を介してデータの授受が実行されているか否かを判断して、CPU100によりデータの授受が実行されていないと判断したときに、データバス140を介して設定データの読出しをしたり、書き込みをしたりしてもよい。また、制御部210は、当該読み出しや書き込みをする際に、CPU100にデータバスを140を使用することを通知したりしてもよい。
【0057】
すなわち、制御部210が、設定データをROM110から読み出すステップの前(ステップS108とステップS110との間、またはステップS120とステップS122との間)や、設定データをレジスタ132に書き込むステップの前(ステップS112とステップS114との間、またはステップS122とステップS124との間)に、上記判断のステップや上記通知のステップを追加してもよい。
【0058】
制御部210が、上記判断および上記通知をすることで、データバス140の使用に対するCPU100との競合を回避することができる。
【0059】
ここで、比較として、従来例におけるデータ処理装置のレジスタの再設定方式について説明する。
【0060】
従来例のデータ処理装置は、図1で示した本発明の実施の形態1に従うデータ処理装置1にレジスタ再設定装置200を含まないものに相当する。
【0061】
したがって、従来例のデータ処理装置では、CPU100は、レジスタ132に設定するための設定データをROM110から読み出し、当該設定データをレジスタ132に初期設定した後に、所定のプログラムを実行している場合には、当該プログラムを実行するとともにレジスタ132に設定データを再設定するという処理が必要となる。すなわち、従来例のデータ処理装置では、CPU100のソフトウェア処理が増大し、CPU100への負荷が大きくなってしまう。
【0062】
一方、上述したように実施の形態1に従うデータ処理装置1においては、CPU100はレジスタ132の設定は初期設定のみでよく、その後の定期的なレジスタ132の再設定は、レジスタ再設定装置200が行なうため、従来例と比較してCPU100の負荷を低減することができる。
【0063】
また、実施の形態1に従うデータ処理装置1は、レジスタ132ごとに再設定周期および優先度を定めておくことができるため、再設定の必要性の高いレジスタ132については再設定周期を早く、また優先度を高くするなどしておくことで、効果的な再設定処理を実現することもできる。
【0064】
[2.実施の形態2]
上述の実施の形態1においては、レジスタ再設定装置200は、各レジスタ132に対応するアドレス情報ごとに関連付けられた再設定周期に従って、レジスタ132を再設定する場合について説明したが、実施の形態2では、レジスタ再設定装置200が、一定の再設定周期ごとに、予め定められた順序に従って、再設定が必要なレジスタ132を再設定する場合について説明する。
【0065】
<A.全体構成>
本発明の実施の形態2に従うデータ処理装置1の全体構成について説明する。
【0066】
図5は、本発明の実施の形態2に従うデータ処理装置1の構成例を示すブロック図である。
【0067】
図5を参照して、本発明の実施の形態2に従うデータ処理装置1は、レジスタ再設定装置200の構成の一部が異なる点以外、図1に示すデータ処理装置1と同じ構成であるので、同一部分についてはその詳細な説明は繰り返さない。
【0068】
本発明の実施の形態2に従うレジスタ再設定装置200は、予め定められた所定の周期ごとに、再設定が必要なレジスタの設定データの値を順次再設定していく。
【0069】
<B.レジスタ再設定装置の構成>
次に、本発明の実施の形態2に従うレジスタ再設定装置200の構成について説明する。
【0070】
レジスタ再設定装置200は、制御部210と、アドレス格納部220と、周期情報格納部230とを含む。
【0071】
制御部210は、レジスタ再設定装置200の全体を制御する。制御部210に、制御レジスタが格納されている点は実施の形態1と同様であるため、その詳細な説明は繰り返さない。制御部210は、再設定部212と、バッファ部214と、データバス監視部216と、データ比較部218とを含む。これらの各部についての詳細は後述する。
【0072】
アドレス格納部220は、静的なレジスタ132に対応するSA情報とDA情報とを互いに関連付けて格納している。
【0073】
ここで、実施の形態2に従う格納情報テーブルについて説明する。ただし、実施の形態1と同様に、レジスタ再設定装置200は、アドレス格納部220から、SA情報と、DA情報とが互いに関連付けられていることが確認できる場合は、当該格納情報テーブルを有していなくてもよい。以下では、レジスタ再設定装置200が、当該格納情報テーブルを有しているものとして説明する。
【0074】
図6は、本発明の実施の形態2に従う格納情報テーブルを示す図である。
図6を参照して、格納情報テーブルは、アドレス格納部220に格納されたSA情報と、DA情報とが互いに関連付けられていることを示している。実施の形態2における格納情報テーブルは、周期情報と優先度情報を含まない点で、実施の形態1における格納情報テーブルと異なる。
【0075】
周期情報格納部230は、一定の再設定周期ごとに再設定部212がレジスタ132を順次再設定するために、当該再設定周期を規定する周期情報を格納する。
【0076】
次に、制御部210に含まれる各部の主な機能について説明する。
上述したように、制御部210は、再設定部212と、バッファ部214と、データバス監視部216と、データ比較部218とを含む。
【0077】
再設定部212は、基準クロックに基づいて応答して時間計測を行ない、一定の周期が経過すると、SA情報に基づいてROM110から設定データを読み出して、当該設定データをバッファ部214に格納し、DA情報に対応するレジスタ132に当該設定データを書き込むことでレジスタ132を再設定する。例えば、格納情報テーブルに従うと、DA1〜DAnに対応する各レジスタ132をラウンドロビン方式で再設定していく。
【0078】
データバス監視部216は、実施の形態1と同様な機能であるためその詳細な説明は繰りかえさない。
【0079】
データ比較部218は、SA情報に基づいて読み出される初期設定データとDA情報に基づいて読み出される既存設定データとが一致しているか否かを判断する。
【0080】
<C.CPU100の動作フロー>
次に、本発明の実施の形態2に従うCPU100が、レジスタ132を再設定する際に行なう動作フローは、実施の形態1と同様であるため、その詳細な説明は繰り返さない。
【0081】
<D.レジスタ再設定装置200の動作フロー>
次に、本発明の実施の形態2に従うレジスタ再設定装置200がレジスタ132を再設定する際の動作フローについて説明する。
【0082】
図7は、本発明の実施の形態2に従うレジスタ再設定装置200のレジスタ再設定処理手順を示すフローチャートである。
【0083】
図7を参照して、レジスタ再設定装置200の制御部210は、所定の再設定周期が経過したか否かを判断する(ステップS202)。
【0084】
制御部210は、所定の再設定周期が経過していないと判断すると(ステップS202においてNO)、ステップS102の状態を維持する。一方、制御部210は、所定の再設定周期が経過したと判断すると(ステップS202においてYES)、最初に再設定されるレジスタ132に対応するSA情報に基づいて、ROM110から設定データ(初期設定データ)を読み出し(ステップS204)、読み出した初期設定データをバッファ部214に格納する(ステップS206)。
【0085】
次に、制御部210は、対応するDA情報に基づいて、レジスタ132から設定データ(既存設定データ)を読み出し(ステップS208)、読み出した既存設定データをバッファ部214に格納する(ステップS210)。
【0086】
次に、制御部210は、当該初期設定データと、当該既存設定データが一致しているか否かを判断する(ステップS212)。制御部210は、両者が一致していると判断した場合(ステップS212においてYES)、レジスタ132を再設定することなく処理を終了する。一方、制御部210は、両者が一致していないと判断した場合(ステップS212においてNO)、制御部210は、DA情報に基づいて、所定のレジスタ132に当該初期設定データを書き込む(ステップS216)。
【0087】
次に、制御部210は、他に再設定が必要なレジスタ132があるか否かを判断する(ステップS218)。具体的には、制御部210は、まだ再設定の順序がきていないレジスタ132がある場合には、他に再設定が必要なレジスタ132があると判断する。
【0088】
制御部210は、再設定が必要なレジスタ132があると判断すると(ステップS218においてYES)、ステップS204からの処理を繰り返す。一方、制御部210は、再設定が必要なレジスタ132はないと判断すると(ステップS218においてNO)、処理を終了する。
【0089】
なお、上述したフローにおいて、実施の形態1と同様に、CPU100によりデータバス140を介してデータの授受が実行されているか否かを判断したり、CPU100にデータバスを140を使用することを通知したりしてもよい。
【0090】
すなわち、制御部210が、設定データをROM110から読み出すステップの前(ステップS202とステップS204との間)や、設定データをレジスタ132に書き込む前(ステップS212とステップS214との間)に、上記判断のステップや、上記通知のステップを追加してもよい。
【0091】
以上から、実施の形態2に従うデータ処理装置1は、レジスタ132に格納された既存設定データと、初期設定データとを比較し、再設定する必要がない場合は再設定しないため、効率のよい再設定処理を実現することができる。
【0092】
[3.利点]
本実施の形態によれば、CPUの命令によりレジスタ再設定装置を起動した後は、当該レジスタ再設定装置により周辺装置が有するレジスタを再設定することができる。したがって、CPUによる定期的な再設定処理が不要となるため、ソフトウェア処理のオーバーヘッドが低減でき、またソフトウェア設計の簡易化を実現することができる。
【0093】
[4.その他の実施の形態]
上記では、レジスタ再設定装置200が、静的なレジスタ132に対応するアドレス情報を格納している場合について説明したが、動的なレジスタ132を含めた全てのレジスタ132に対応するアドレス情報を格納していてもよい。このとき、レジスタ再設定装置200は、静的なレジスタ132のみを再設定する場合、アドレス情報に対応するレジスタ132が静的なレジスタ132か否かを示すフラグ情報を当該アドレス情報に関連付けて格納していてもよい。例えば、フラグ情報が、”1”のときは静的なレジスタ132に対応するアドレス情報であり、”0”のときは動的なレジスタ132に対応するアドレス情報を示しているとして、再設定部212は、値が”1”であるフラグ情報に対応するレジスタ132のみ再設定し、値が”0”であるフラグ情報に対応するレジスタ132は無視して、再設定しないとしてもよい。
【0094】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0095】
1 データ処理装置、100 CPU、110 ROM、120 RAM、130 周辺装置、132 レジスタ、140 データバス、200 レジスタ再設定装置、210 制御部、212 再設定部、214 バッファ部、216 データバス監視部、218 データ比較部、220 アドレス格納部、230 周期情報格納部。

【特許請求の範囲】
【請求項1】
プロセッサと、
前記プロセッサと協働して動作するための少なくとも1つの周辺装置と、
前記周辺装置と協働して動作するために必要な前記周辺装置の動作の状態を規定する設定データを格納しているメモリとを備え、
前記周辺装置は、前記プロセッサにより設定される前記設定データを格納するための少なくとも1つのレジスタを含み、
前記プロセッサにより設定された後、前記プロセッサとは独立して、前記レジスタに設定された前記設定データの値を再設定するためのレジスタ再設定装置とをさらに備える、データ処理装置。
【請求項2】
前記レジスタ再設定装置は、
前記レジスタにアクセスするために必要な前記レジスタの位置および前記メモリに格納されている設定データにアクセスするために必要な前記設定データの位置を示すアドレス情報を保持するアドレス格納部と、
前記レジスタを再設定するタイミングを規定する周期情報を格納する周期情報格納部と、
前記周期情報格納部に格納された前記周期情報に従って、前記アドレス情報に基づいて前記設定データの値を再設定する制御部とを含む、請求項1に記載のデータ処理装置。
【請求項3】
複数の周辺装置が設けられ、
前記アドレス格納部は、複数の周辺装置がそれぞれ有する各前記レジスタにそれぞれ対応する複数のアドレス情報を保持するとともに、前記複数のアドレス情報にそれぞれ関連付けられている優先度情報を格納し、
前記周期情報格納部は、前記複数のアドレス情報にそれぞれ関連付けられた複数の周期情報を格納し、
前記制御部は、
前記周期情報格納部に格納された前記複数の周期情報に従って、再設定するタイミングが重なるかどうかを判断し、
重なると判断した場合には、前記複数のアドレス情報にそれぞれ割り当てられた優先度に従って、対応するアドレス情報に基づいて前記設定データの値を再設定する、請求項2に記載のデータ処理装置。
【請求項4】
前記制御部は、前記アドレス情報に基づいて、前記レジスタに設定された前記設定データの値と、前記メモリに格納している設定データの値とが一致しているかどうかを判断し、判断結果に基づいて前記設定データの値を再設定する、請求項2に記載のデータ処理装置。
【請求項5】
前記プロセッサと、前記周辺装置と、前記メモリと、前記レジスタ再設定装置とが互いに電気的に接続されたデータの授受を実行するためのデータバスをさらに備え、
前記制御部は、前記プロセッサにより前記データバスを介してデータの授受が実行されているか否かを判断し、前記データの授受が実行されていないと判断した場合に、前記レジスタに設定された前記設定データの値を再設定する、請求項2〜4のいずれか1項に記載のデータ処理装置。
【請求項6】
前記制御部は、前記レジスタに設定された前記設定データの値を再設定する際に、前記プロセッサにその旨を通知する、請求項2〜5のいずれか1項に記載のデータ処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−109394(P2013−109394A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2011−251617(P2011−251617)
【出願日】平成23年11月17日(2011.11.17)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】