(57)【要約】【課題】複数のペリフェラルのレジスタへのアクセスを、全体として高速化できる並列レジスタアクセス装置を提供する。【解決手段】並列レジスタアクセス装置は、予めメモリに格納された命令に従って、前記各ペリフェラルのレジスタにアクセスする複数のレジスタアクセスモジュールと、前記複数のレジスタアクセスモジュールからのアクセスを調停する調停部と、を含み、ＣＰＵとは独立して機能する複数のペリフェラルへの並列アクセス機能を有する。【選択図】図２
2007128336.tif 000002
【特許請求の範囲】
【請求項１】
バスを介して複数のペリフェラルと接続され、ＣＰＵとは独立して動作する並列レジスタアクセス装置であって、
予めメモリに格納された命令に従って、前記各ペリフェラルのレジスタにアクセスする複数のレジスタアクセスモジュールと、
前記複数のレジスタアクセスモジュールからのアクセスを調停する調停部と、を含み、複数のペリフェラルへの並列アクセス機能を提供すること、
を特徴とする並列レジスタアクセス装置。
【請求項２】
所定のメモリから、前記レジスタアクセスモジュールの動作待機時間を含む各ペリフェラルのレジスタの初期化手順を定めた初期化データを読み出して、前記各レジスタアクセスモジュールに、並列的に前記各ペリフェラルの初期化処理を実行させること、
を特徴とする請求項１に記載の並列レジスタアクセス装置。
【請求項３】
前記レジスタアクセスモジュール毎に割り込み可否を設定するレジスタと、
前記各レジスタアクセスモジュールの動作状況を保持するレジスタと、を有し、
前記調停部が前記各レジスタ値を用いて調停を実行すること、
を特徴とする請求項１又は２に記載の並列レジスタアクセス装置。
【請求項４】
前記レジスタアクセスモジュール毎に、システム外部からの入力割込み可否を設定するレジスタを有し、
システム外部からの指令によって、複数のペリフェラルのレジスタへの並列アクセスを実行可能としたこと、
を特徴とする請求項１乃至３いずれか一に記載の並列レジスタアクセス装置。
を備えること、
【請求項５】
請求項１乃至４いずれか一に記載の並列レジスタアクセス装置及び前記複数のペリフェラルを内蔵したこと、を特徴とするシステムＬＳＩ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列レジスタアクセス装置及びシステムＬＳＩに関する。
【背景技術】
【０００２】
特開平１１−３５３１５３号公報にシステム内部のレジスタの初期値の設定変更を、低コストかつ容易に行うことのできるレジスタ設定回路が開示されている。同公報のレジスタ設定回路は、レジスタの初期値を変更するためのプログラムコードを格納するプログラムコード格納領域及び前記レジスタの初期値を変えるための設定値を格納するレジスタ設定領域を有した不揮発性メモリと、前記プログラムコード格納領域のプログラムコードに基づき、前記レジスタ設定領域から読出された設定値に応じて前記レジスタの初期値をダイレクトに変更設定する設定制御回路とを備えてなり、ＣＰＵから指示されたレジスタ設定領域の設定値を読み出すだけでレジスタの初期値を変更させることが可能となっている。
【０００３】
【特許文献１】特開平１１−３５３１５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、携帯電話等において、電源を投入してから液晶画面に絵が出るまでに時間が掛かるものが見受けられる。こうしたシステムの立ち上がりが遅くなる要因の一つは、システムＬＳＩの初期化処理に時間が掛かることにあり、当該機種のみならず当該メーカー製品への好感を持って頂くためにも、一層の高速化が求められている。
【０００５】
図１６、図１９、図２０はＣＰＵによって複数のペリフェラル（Ｐｅｒｉｐｈｅｒａｌ、周辺装置）の初期化を行う際の流れを表した図である。同図に示されるように、従来の方法では、電源を投入し、リセット解除後、ＣＰＵがペリフェラルＡの初期化を行い（図１７参照）、続いてペリフェラルＢの初期化を行う（図１８参照）というように、ＣＰＵがｎ個のペリフェラルを直列に処理していくものである。
【０００６】
第１の問題点は、あるペリフェラルの初期化において、あるレジスタ（Ｒｅｇｉｓｔｅｒ）、例えば（レジスタＢ、Ｃ）の設定後、ある程度の「待ち」（ｗａｉｔ）が必要となるケースがあり、これにより後続処理に遅延が伝播することである。この待ち時間は数十ｍｓに達することもあり、図１９に示したように、初期化処理全体を長期化させる一因となっている。
【０００７】
第２の問題点は、電源投入後一定時間経過した後でないとレジスタＡ、Ｂ、Ｃを設定してはいけないという制約が、あるペリフェラルに課される結果、図２０に示したように、当該ペリフェラルの初期化及び後続処理の処理開始時間が遅延することである。上記制約は、電源やクロックの安定待ちのために課されるものであるが、実際には、当該ペリフェラルが初期化される時点で、上記制約時間以上の時間が経過していることも多く、その分だけ無駄が生じている。
【０００８】
また、上記ＣＰＵにて直列にペリフェラルの初期を行う方式において、上記第１、第２の問題点を解決するには、ＣＰＵに複雑な命令を与えたり、コンパイルの合理化を行ったりする等しかなく、ソフトウェア設計者に多大な負担がかかってしまうという別の問題点もある。
【０００９】
特許文献１に記載のレジスタ設定回路によれば、上記に係るＣＰＵの負荷やソフト設計者の負担を軽減できる可能性があるが、上記レジスタへのアクセスを直列に行う点では、上記従来技術と同様であり、待ち時間分のロスが生じる点で変わりは無い。
【００１０】
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、上記初期化に代表される複数のレジスタへのリード／ライト処理を全体として高速化できる装置を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の視点によれば、バスを介して複数のペリフェラルと接続され、ＣＰＵとは独立して動作する並列レジスタアクセス装置であって、予めメモリに格納された命令に従って、前記各ペリフェラルのレジスタにアクセスする複数のレジスタアクセスモジュールと、前記複数のレジスタアクセスモジュールからのアクセスを調停する調停部と、を含み、複数のペリフェラルへの並列アクセス機能を提供すること、を特徴とする並列レジスタアクセス装置が提供される。
【発明の効果】
【００１２】
本発明によれば、上記した待ち時間を最小化し、複数のレジスタに効率よくアクセスする仕組みが提供される。より具体的には、複数のレジスタへのアクセスを要するシステムの初期化においてその利点が発揮され、初期化に要する時間を大幅に短縮可能となる。
【発明を実施するための最良の形態】
【００１３】
続いて、本発明を実施するための最良の形態について、図面を参照して詳細に説明する。図１は、ＬＳＩ初期化装置（ＤＲＳＣ：Ｄｉｒｅｃｔ  Ｒｅｇｉｓｔｅｒ  Ｓｅｔ  Ｃｏｎｔｒｏｌｌｅｒ。以下、ＤＲＳＣ）として具現された本発明の第１の実施形態に係る並列レジスタアクセス装置を含むシステムＬＳＩの第１の実施形態の構成を表したブロック図である。
【００１４】
図１を参照すると、ＣＰＵ２ａ、ＤＲＳＣ２ｂ、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）２ｃ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）２ｄ、内部バス２ｅ、外部メモリＩ／Ｆ２ｆ、内部メモリ２ｌ、割り込みコントローラ２ｋ、ペリフェラル２ｇ〜２ｊを備えたシステムＬＳＩ１ａと、不揮発メモリ、揮発メモリ、ハードディスク等の外部記憶装置１ｂとを接続した構成が示されている。
【００１５】
図２は、上記ＤＲＳＣ２ｂの詳細構成を表したブロック図である。図２を参照すると、ＤＲＳＣ２ｂは、レジスタ群（Ｒｅｇｉｓｔｅｒｓ）４ａと、レジスタアクセスモジュールとして動作しそれぞれ独立して各ペリフェラルの初期化を行いうるＤＲＳＭ（Ｄｉｒｅｃｔ  Ｒｅｇｉｓｔｅｒ  Ｓｅｔ  Ｍｏｄｕｌｅ）群４ｂと、各ＤＲＳＭからのアクセスを調停する調停部（Ａｒｂｉｔｅｒ）４ｃと、エラー状態情報を保持し、割り込みコントローラ２ｋに対して割り込みを発生させるエラーステータスマネージャー（Ｅｒｒｏｒ  Ｓｔａｔｕｓ  Ｍａｎａｇｅｒ）４ｄと、を備えて構成される。
【００１６】
ＤＲＳＭ群４ｂに含まれる各ＤＲＳＭ（ＤＲＳＭａ〜ＤＲＳＭｎ）は、それぞれ独立して動作し、外部記憶装置１ｂの初期化データが書かれている領域から読み込んだ命令に従って、初期化処理を実行する。
【００１７】
調停部（Ａｒｂｉｔｅｒ）４ｃは、各ＤＲＳＭ（ＤＲＳＭａ〜ＤＲＳＭｎ）からのアクセスを調停する。従って、複数のアクセス要求が同時に発せられた場合は、調停を勝ち抜いたアクセスのみが、その初期化対象のペリフェラルを初期化できる構成となっている。
【００１８】
従って、ＤＲＳＣ２ｂは、例えば、少なくとも２つのＤＲＳＭ（例えば、ＤＲＳＭａ、ＤＲＳＭｂ）に、それぞれペリフェラルＡ２ｇ、ペリフェラルＢ２ｈを初期化する命令を与え、各ＤＲＳＭからのアクセスを調停することにより、図３に模式的に示すとおり、２つのペリフェラルＡ、Ｂのレジスタ３ａ、３ｂに直接かつ並列にアクセスすることが可能となっている。その間、ＣＰＵ２ａは、フリーの状態であり、他の資源にアクセスすることが可能である。
【００１９】
図４〜図９は、レジスタ群（Ｒｅｇｉｓｔｅｒｓ）４ａの詳細構成を説明するための図である。ＤＲＳＣ＿ＳＴＡＲＴ＿ＡＤＤＲｎは、図４に示したとおり、３２ビットのレジスタであり、ｎ（ｎ；ＤＲＳＭの数）番目のＤＲＳＭに対して与える命令（図１０参照）が格納された外部記憶装置上の先頭アドレスが格納される。
【００２０】
ＤＲＳＣ＿ＩＮＴＥＲＲＵＰＴ＿ＳＴＡＴＵＳｎは、図５に示したとおり、ｎ（ｎ；ＤＲＳＭの数）番目のＤＲＳＭの各種ステータスが格納され、割り込み発生状況をモニタするために使用される。
【００２１】
ＤＲＳＣ＿ＩＮＴＥＲＲＵＰＴ＿ＥＮＡＢＬＥｎは、図６に示したとおり、ｎ（ｎ；ＤＲＳＭの数）番目のＤＲＳＭの割り込み可否設定が格納される。
【００２２】
ＤＲＳＣ＿ＰＯＬＬ＿ＴＩＭＥＯＵＴｎは、図７に示したとおり、ＤＲＳＣ＿ＩＮＴＥＲＲＵＰＴ＿ＥＮＡＢＬＥｎの［Ｐｏｌｌｉｎｇ  ＴｉｍｅｏｕｔＥｎ］ＦｉｅｌｄがＥｎａｂｌｅ’１’とされている場合に、Ｔｉｍｅｏｕｔまでのクロック数を設定する際に使用される。
【００２３】
ＤＲＳＣ＿ＣＨＡＮＥＬ＿ＧＯは、図８に示したとおり、各ＤＲＳＭに与えられている動作指示を示すものであり、各ＤＲＳＭの位置（ＧＯｎＦｉｅｌｄ）に、動作指示を表すＳｔａｒｔ／Ｓｔｏｐビットが書き込まれる。図８では、ＤＲＳＣ２ｂが１５のＤＲＳＭを備えている例であり、３２ビットのうち１５ビットを使用してこれらＤＲＳＭを管理可能となっている。
【００２４】
例えば初期化を行う場合、ＣＰＵがＤＲＳＭ群４ｂの所要のＤＲＳＭを起動すべく、ＤＲＳＣ＿ＣＨＡＮＥＬ＿ＧＯの対応箇所にＳｔａｒｔビット’１’を書き込む。Ｓｔａｒｔビットが書き込まれたＤＲＳＭは、上記ＤＲＳＣ＿ＳＴＡＲＴ＿ＡＤＤＲｎに指定されたアドレスから命令を読み出し、動作を開始することになる。
【００２５】
ＤＲＳＣ＿ＣＨＡＮＥＬ＿ＳＴＡＴＵＳは、図９に示したとおり、各ＤＲＳＭの動作状況を示すものであり、各ＤＲＳＭの位置にそのステータス（動作中／停止中）ビットが書き込まれる。
【００２６】
図１０は、外部記憶装置１ｂにおける命令の格納態様を表した図であり、図１１は、図１０の命令Ｆｉｅｌｄの詳細構成を表した図である。図１０に示したとおり、外部記憶装置１ｂの所定領域に、１２８ビット単位の命令Ｆｉｅｌｄデータが実行順序に従って予め用意される。命令Ｆｉｅｌｄデータは、アクセスする（初期化対象の）レジスタのアドレス、データ、Ｖｅｒｉｆｙデータ、命令オペランド、Ｅｎｄビットが格納される。
【００２７】
従って、ＤＲＳＣ＿ＳＴＡＲＴ＿ＡＤＤＲｎに指定されたアドレスに格納された命令Ｆｉｅｌｄから、［Ｅｎｄ］ビット’１’がセットされた命令Ｆｉｅｌｄまでの内容により、ＤＲＳＭに与える一連の命令が構成される。
【００２８】
続いて、ＤＲＳＭにおいて実行可能な命令についていくつか例を挙げて説明する。
【００２９】
［ＲｅＷｒ］Ｆｉｅｌｄが’０’である場合は、Ｗｒｉｔｅ命令と解釈され、［Ａｄｄｒｅｓｓ］Ｆｉｅｌｄに指定されたアドレスを有するレジスタに、［Ｄａｔａ］Ｆｉｅｌｄの内容が書き込まれる。なおかつ、［Ｖｅｒｉｆｙ］Ｆｉｅｌｄが’１’である場合は、Ｖｅｒｉｆｙ要と解釈され、書き込んだアドレスの内容を読み出し、［Ｄａｔａ］Ｆｉｅｌｄとを照合するＶｅｒｉｆｙ動作が行われる。また更に、［ＲｅＶｅｒｉｆｙＷｒ］Ｆｉｅｌｄが’１’である場合は、Ｒｅａｄ  Ｖｅｒｉｆｙ  Ｗｒｉｔｅ命令であると解釈され、まず［Ａｄｄｒｅｓｓ］Ｆｉｅｌｄに指定されたアドレスの内容を読み出し、その結果を［Ｖｅｒｉｆｙ  Ｄａｔａ］Ｆｉｅｌｄに格納し、［Ｄａｔａ］Ｆｉｅｌｄの値とＯＲした結果を［Ａｄｄｒｅｓｓ］Ｆｉｅｌｄのアドレスに書き込む動作が行われる。
【００３０】
一方、［ＲｅＷｒ］Ｆｉｅｌｄが’１’である場合は、Ｒｅａｄ命令と解釈され、［Ａｄｄｒｅｓｓ］Ｆｉｅｌｄに指定されたアドレスを有するレジスタの内容を読み出し、［Ｄａｔａ］Ｆｉｅｌｄに格納する動作が行われる。ここでも、［Ｖｅｒｉｆｙ］Ｆｉｅｌｄが’１’である場合は、Ｖｅｒｉｆｙ要と解釈され、読み出した内容と［Ｖｅｒｉｆｙ  Ｄａｔａ］Ｆｉｅｌｄの内容とを照合するＶｅｒｉｆｙ動作が行われる。また更に、［Ｐｏｌｌｉｎｇ］Ｆｉｅｌｄが’１’である場合は、読み出したデータが［Ｖｅｒｉｆｙ  Ｄａｔａ］Ｆｉｅｌｄと一致するまで、当該［Ａｄｄｒｅｓｓ］Ｆｉｅｌｄをポーリングする。また更に、［Ｐｏｌｌｉｎｇ］Ｆｉｅｌｄが’１’である場合は、［Ｔｉｍｅｏｕｔ］Ｆｉｅｌｄも’１’にすることが可能であり、Ｔｉｍｅｏｕｔ機能を有効化することが可能である。
【００３１】
［Ｒｅｐｅａｔ］Ｆｉｅｌｄに値がセットされている場合は、当該命令Ｆｉｅｌｄに書かれた命令が［Ｒｅｐｅａｔ］Ｆｉｅｌｄに書かれた回数分繰り返される。
【００３２】
また、［Ｗａｉｔ］Ｆｉｅｌｄが’１’である場合は、Ｗａｉｔ命令と解釈され、［Ｄａｔａ］Ｆｉｅｌｄに指定された値×クロック分の待機が行われる。［ＮＯＰ］Ｆｉｅｌｄが’１’である場合は、当該命令Ｆｉｅｌｄに書かれた命令はスキップされる。
【００３３】
また、［Ｃｏｍｐ］Ｆｉｅｌｄが’１’である場合は、読み出した内容に応じた条件分岐を行うＣｏｍｐａｒｅ命令と解釈される。図１２は、読み出した内容に応じて場合分けして３命令を実行するよう定義されたＣｏｍｐａｒｅ命令の動作を説明するための図である。図１２に示されたように、アドレス０ｘ＊＊＊＊００２０のＣｏｍｐａｒｅ命令を読み出すと、ＤＲＳＭは、まず［Ａｄｄｒｅｓｓ］Ｆｉｅｌｄに指定されたアドレスの内容を読み出し、［Ｄａｔａ］Ｆｉｅｌｄ、［Ｖｅｒｉｆｙ］Ｆｉｅｌｄの内容と比較する。
【００３４】
前記比較の結果、読み出したデータが、［Ｄａｔａ］Ｆｉｅｌｄの内容と一致した場合には、ＤＲＳＭは、直後の命令Ｆｉｅｌｄ４〜６（アドレス０ｘ＊＊＊＊００３０〜０ｘ＊＊＊＊００５０）を実行し、命令Ｆｉｅｌｄ６を実行した後は、アドレス０ｘ＊＊＊＊００９０にジャンプし、命令Ｆｉｅｌｄａを実行する。
【００３５】
一方、読み出したデータが、［Ｖｅｒｉｆｙ］Ｆｉｅｌｄの内容と一致した場合は、ＤＲＳＭは、命令Ｆｉｅｌｄ７〜９（アドレス０ｘ＊＊＊＊００６０〜０ｘ＊＊＊＊００８０）を実行し、そのまま命令Ｆｉｅｌｄａを実行する。
【００３６】
以上、Ｃｏｍｐａｒｅ命令の具体例を説明したが、比較結果による命令実行数は、３命令に限らず、用途に応じてフレキシブルに設計可能である。
【００３７】
続いて、システムＬＳＩ１ａの初期化を行う場合の例を挙げて、本実施形態のＤＲＳＣ２ｂの動作について説明する。まず、ＣＰＵ２ａによって、上記ＤＲＳＣ＿ＣＨＡＮＥＬ＿ＧＯのＧＯｎ  ｂｉｔ＝１とされたＤＲＳＭは、ＤＲＳＣ＿ＳＴＡＲＴ＿ＡＤＤＲｎの［ＳｔａｒｔＡｄｄｒｅｓｓ］Ｆｉｅｌｄに格納されているアドレスの命令Ｆｉｅｌｄデータを読み出す。
【００３８】
ＤＲＳＭは、命令Ｆｉｅｌｄの内容を解読し、命令を実行する。該命令の実行が完了したならば、ＤＲＳＭは、その次の命令Ｆｉｅｌｄデータを読み出し、実行する。ＤＲＳＭは、適宜［Ｒｅｐｅａｔ］Ｆｉｅｌｄにセットされた内容や、［Ｗａｉｔ］Ｆｉｅｌｄにセットされた内容に従って動作し、［Ｅｎｄ］Ｆｉｅｌｄに’１’がセットされた命令Ｆｉｅｌｄまで、命令の実行を繰り返す。
【００３９】
［Ｅｎｄ］Ｆｉｅｌｄに’１’がセットされた命令の実行後、ＤＲＳＣは、ＤＲＳＣ＿ＳＴＡＲＴ＿ＡＤＤＲｎの当該ＤＲＳＭの位置（ＧＯｎ）にＳｔｏｐビット’０’を書き込み、ＤＲＳＭは停止する。
【００４０】
以上の過程で、例えば、［Ｅｎｄ］Ｆｉｅｌｄが’１'の命令Ｆｉｅｌｄの実行が終わると、ＤＲＳＭは、自己のＤＲＳＣ＿ＩＮＴＥＲＲＵＰＴ＿ＳＴＡＴＵＳｎの［ＥｎｄＳＴ］Ｆｉｅｌｄを’１’に変更する。
【００４１】
同様に、Ｒｅａｄ  Ｖｅｒｉｆｙを実行した際に、読み出した値と［Ｖｅｒｉｆｙ  Ｄａｔａ］Ｆｉｅｌｄの値とが一致しなかった場合は、ＤＲＳＭは、自己のＤＲＳＣ＿ＩＮＴＥＲＲＵＰＴ＿ＳＴＡＴＵＳｎの［ＲｅａｄＥｒｒ］Ｆｉｅｌｄを’１’に変更する。
【００４２】
同様に、Ｗｒｉｔｅ  Ｖｅｒｉｆｙを実行した際に、命令Ｆｉｅｌｄの［Ｄａｔａ］Ｆｉｅｌｄの値と、実際に書き込んだ値が一致しなかった場合は、ＤＲＳＭは、自己のＤＲＳＣ＿ＩＮＴＥＲＲＵＰＴ＿ＳＴＡＴＵＳｎの［ＷｒｉｔｅＥｒｒ］Ｆｉｅｌｄを’１’に変更する。
【００４３】
同様に、Ｔｉｍｅｏｕｔ機能を有効化したＰｏｌｌｉｎｇを実行した際に、ＤＲＳＣ＿ＰＯＬＬ＿ＴＩＭＥＯＵＴｎの［ＰｏｌｌＴｉｍｅｏｕｔ］Ｆｉｅｌｄ分のクロック経過しても、Ｐｏｌｌｉｎｇ Ｄａｔａ（［Ａｄｒｅｓｓ］Ｆｉｅｌｄで指定のデータ）が命令Ｆｉｅｌｄの［Ｖｅｒｉｆｙ  Ｄａｔａ］Ｆｉｅｌｄと一致しなかった場合は、ＤＲＳＭは、自己のＤＲＳＣ＿ＩＮＴＥＲＲＵＰＴ＿ＳＴＡＴＵＳｎの［ＰｏｌｌｉｎｇＴｉｍｅｏｕｔ］Ｆｉｅｌｄを’１’に変更する。
【００４４】
同様に、Ｃｏｍｐａｒｅ命令を実行した際に、読み出したデータが、［Ｄａｔａ］Ｆｉｅｌｄの内容とも［Ｖｅｒｉｆｙ］Ｆｉｅｌｄの内容とも一致しなかった場合は、ＤＲＳＭは、自己のＤＲＳＣ＿ＩＮＴＥＲＲＵＰＴ＿ＳＴＡＴＵＳｎの［ＣｏｍｐａｒｅＥｒｒ］Ｆｉｅｌｄを’１’に変更する。
【００４５】
このように、各ＤＲＳＭの割り込みは、ＤＲＳＣ＿ＩＮＴＥＲＲＵＰＴ＿ＳＴＡＴＵＳｎの各ｂｉｔに’１’をセットすることによりクリアされる。
【００４６】
図１３は、ＤＲＳＣ２ｂの調停部４ｃの調停を介して、３つのＤＲＳＭにより、４つのＰｅｒｉｐｈｅｒａｌＡ〜Ｄのレジスタ設定が行われる際の状況を表した図である。まず、調停部４ｃにより、ＤＲＳＭａから優先順位の最も高いＰｅｒｉｐｈｅｒａｌＡへのアクセスが許可されるが、ＤＲＳＭａがｗａｉｔ命令を読み出した時点で、ＤＲＳＭｃからＰｅｒｉｐｈｅｒａｌＣへのアクセスに切り替えられる。
【００４７】
続いて、ＤＲＳＭｃがＰｅｒｉｐｈｅｒａｌＣの設定を完了しても、続く命令ＦｉｅｌｄにＰｅｒｉｐｈｅｒａｌＤのレジスタ設定処理が記述されているため、ＰｅｒｉｐｈｅｒａｌＤへのアクセスが行われる。そして、ＤＲＳＭｃがｗａｉｔ命令を読み出した時点で、ＤＲＳＭｂからＰｅｒｉｐｈｅｒａｌＢへのアクセスに切り替えられる。
【００４８】
続いて、ＤＲＳＭｂがＰｅｒｉｐｈｅｒａｌＢの設定を完了し、ＤＲＳＣ＿ＩＮＴＥＲＲＵＰＴ＿ＳＴＡＴＵＳｂの［ＥｎｄＳＴ］Ｆｉｅｌｄに’１’が立つと、今度はＤＲＳＭｃからＰｅｒｉｐｈｅｒａｌＤへのアクセスに切り替えられる。
【００４９】
ＤＲＳＭｃが一の命令を実行した時点で、ＤＲＳＭａの待ち時間が終了したため、今度はＤＲＳＭａからＰｅｒｉｐｈｅｒａｌＡへのアクセスに切り替えられる。そして、ＤＲＳＭａがＰｅｒｉｐｈｅｒａｌＡの設定を完了し、ＤＲＳＣ＿ＩＮＴＥＲＲＵＰＴ＿ＳＴＡＴＵＳａの［ＥｎｄＳＴ］Ｆｉｅｌｄに’１’が立った時点で、再度、ＤＲＳＭｃからＰｅｒｉｐｈｅｒａｌＤへのアクセスに切り替えられ、すべてのＰｅｒｉｐｈｅｒａｌの初期化が完了する。
【００５０】
以上のように、複数のＤＲＳＭが各ペリフェラルの初期化を並列処理することによって、あるペリフェラルの初期化の際の待機時間中に、他のペリフェラルの初期化を行うことができ、初期化時間を短縮することが可能となる。
【００５１】
また、以上のようにＤＲＳＭへの動作指示（Ｓｔａｒｔ／Ｓｔｏｐ）を自由に設定可能としたことにより、フレキシブルに初期化ルーチンを構成すること、各ＤＲＳＭへの負荷を平準化することも可能となる。
【００５２】
また、ソフトウェア設計者の負担も大きく軽減される。例えば、上記各ＤＲＳＭが動作中か否かの判別を行い、命令順序を組み替えることにより、初期化に要する総時間を短縮することが可能である。
【００５３】
続いて、上記第１の実施形態の構成にてリセット時に初期化動作が行われるようにした本発明の第２の実施形態について説明する。図１４は、リセット操作と同時に、所要のＤＲＳＭが動作するよう指示する際にＤＲＳＣ＿ＣＨＡＮＥＬ＿ＧＯに書き込む値（ＲｅｓｅｔＶａｌｕｅ）を表した図である。
【００５４】
図１４を参照すると、Ｒｅｓｅｔ  ｖａｌｕｅでは、ＤＲＳＭａ〜ＤＲＳＭｃの３本のＧＯｎ  ｂｉｔが’１’とされており、リセット解除とともに、ＤＲＳＭａ〜ＤＲＳＭｃが動き出す構成となっている。
【００５５】
また、ＤＲＳＣ＿ＳＴＡＲＴ＿ＡＤＤＲａ〜ＤＲＳＣ＿ＳＴＡＲＴ＿ＡＤＤＲｃの［ＳｔａｒｔＡｄｄｒｅｓｓ］ＦｉｅｌｄのＲｅｓｅｔ  ｖａｌｕｅも同様に用意され、外部記憶装置１ｂの所定アドレスから所定のリセット動作命令が読み出されるようにすることができる。より具体的には、ＣＰＵが起動する際に、必要不可欠なペリフェラルの設定を任せたり、ＰＬＬを初期化する前から設定しても問題無いペリフェラルの設定をさせたりする等の機能を付加することができる。
【００５６】
以上本発明の第１、第２の実施形態を挙げて説明したが、フレキシブルに命令内容を定め得ることからも明らかなとおり、本発明の技術的範囲は、上述した各実施形態に限定されるものではなく、システムＬＳＩの複数のレジスタに、直接かつ並列にアクセスを可能とするという本発明の要旨を逸脱しない範囲で、各種の変形・置換をなしうることが可能であることはいうまでもない。例えば、調停部（Ａｒｂｉｔｅｒ）の調停ロジックについては、並列処理を実現する各種公知のロジックを適用することが可能である。
【００５７】
例えば、予め命令データを外部記憶装置１ｂにセットしておけば、本発明に係る並列レジスタアクセス装置を搭載したシステムＬＳＩは、ランダムアクセス可能なホスト装置として使用可能である。例えば、ＣＰＵがキャッシュに閉じて動いていたり、内蔵メモリに頻繁にアクセスしたりしている状態であっても、ＣＰＵのパフォーマンスを落とすことなく、他のペリフェラルを設定することが可能である。
【００５８】
また、図１５に示すように、ＤＲＳＭ毎に汎用ＩＯ割り込みを受け付けるか否かを定める［ＩＯ＿ＩＮＴ＿Ｅｎａｂｌｅ］Ｆｉｅｌｄと、汎用ＩＯ番号を指定する［ＩＯＮｕｍｂｅｒ］Ｆｉｅｌｄを有するＤＲＳＣ＿ＩＯ＿ＩＮＴ＿ＳＴＡＲＴｎレジスタを追加し、所定の汎用Ｉ／Ｏからの入力割り込みを受け付けると、対応するＤＲＳＭが動作を開始するようにすることも可能となる。この場合、ＣＰＵがオフ状態の場合であっても、ペリフェラルのレジスタ設定変更を行うことができるシステムＬＳＩとなる。
【図面の簡単な説明】
【００５９】
【図１】本発明の第１の実施形態に係るシステムＬＳＩの構成を表したブロック図である。
【図２】本発明の第１の実施形態に係るシステムＬＳＩに含まれるＤＲＳＣの構成を表したブロック図である。
【図３】本発明の第１の実施形態に係るシステムＬＳＩに含まれるＤＲＳＣの概略動作を表した図である。
【図４】本発明の第１の実施形態に係るシステムＬＳＩに含まれるＤＲＳＣのレジスタ群の内容を説明するための図である。
【図５】本発明の第１の実施形態に係るシステムＬＳＩに含まれるＤＲＳＣのレジスタ群の内容を説明するための図である。
【図６】本発明の第１の実施形態に係るシステムＬＳＩに含まれるＤＲＳＣのレジスタ群の内容を説明するための図である。
【図７】本発明の第１の実施形態に係るシステムＬＳＩに含まれるＤＲＳＣのレジスタ群の内容を説明するための図である。
【図８】本発明の第１の実施形態に係るシステムＬＳＩに含まれるＤＲＳＣのレジスタ群の内容を説明するための図である。
【図９】本発明の第１の実施形態に係るシステムＬＳＩに含まれるＤＲＳＣのレジスタ群の内容を説明するための図である。
【図１０】本発明の第１の実施形態において外部記憶装置に用意される命令データを説明するための図である。
【図１１】本発明の第１の実施形態において外部記憶装置に用意される命令データを説明するための図である。
【図１２】本発明の第１の実施形態に係るシステムＬＳＩに含まれるＤＲＳＣのＣｏｍｐａｒｅ命令による動作を説明するための図である。
【図１３】本発明の第１の実施形態に係るシステムＬＳＩに含まれるＤＲＳＣによる複数のペリフェラルの初期化の流れを表した図である。
【図１４】本発明の第２の実施形態に係るシステムＬＳＩに含まれるＤＲＳＣのレジスタ群の内容を説明するための図である。
【図１５】本発明の第３の実施形態において追加されるレジスタの内容を説明するための図である。
【図１６】ＣＰＵによる複数のペリフェラルの初期化の流れを表した図である。
【図１７】ＣＰＵによるペリフェラルの初期化を説明するための図である。
【図１８】ＣＰＵによるペリフェラルの初期化を説明するための図である。
【図１９】ＣＰＵによる複数のペリフェラルの初期化の流れを表した図である。
【図２０】ＣＰＵによる複数のペリフェラルの初期化の流れを表した図である。
【符号の説明】
【００６０】
１ａ  システムＬＳＩ
１ｂ  外部記憶装置
２ａ  ＣＰＵ
２ｂ  ＤＲＳＣ（Ｄｉｒｅｃｔ  Ｒｅｇｉｓｔｅｒ  Ｓｅｔ  Ｃｏｎｔｒｏｌｌｅｒ）
２ｃ  ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）
２ｄ  ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）
２ｅ  内部バス
２ｆ  外部メモリＩ／Ｆ
２ｌ  内部メモリ
２ｋ  割り込みコントローラ
２ｇ〜２ｊ  ペリフェラル（Ｐｅｒｉｐｈｅｒａｌ）
３ａ、３ｂ  レジスタ（Ｒｅｇｉｓｔｅｒ）
４ａ  レジスタ群（Ｒｅｇｉｓｔｅｒｓ）
４ｂ  ＤＲＳＭ（Ｄｉｒｅｃｔ  Ｒｅｇｉｓｔｅｒ  Ｓｅｔ  Ｍｏｄｕｌｅ）群
４ｃ  調停部（Ａｒｂｉｔｅｒ）
４ｄ  エラーステータスマネージャー（Ｅｒｒｏｒ  Ｓｔａｔｕｓ  Ｍａｎａｇｅｒ）
【図１】
2007128336.tif 000003
【図２】
2007128336.tif 000004
【図３】
2007128336.tif 000005
【図４】
2007128336.tif 000006
【図５】
2007128336.tif 000007
【図６】
2007128336.tif 000008
【図７】
2007128336.tif 000009
【図８】
2007128336.tif 000010
【図９】
2007128336.tif 000011
【図１０】
2007128336.tif 000012
【図１１】
2007128336.tif 000013
【図１２】
2007128336.tif 000014
【図１３】
2007128336.tif 000015
【図１４】
2007128336.tif 000016
【図１５】
2007128336.tif 000017
【図１６】
2007128336.tif 000018
【図１７】
2007128336.tif 000019
【図１８】
2007128336.tif 000020
【図１９】
2007128336.tif 000021
【図２０】
2007128336.tif 000022