(57)【特許請求の範囲】
【請求項１】
マスターＣＰＵ及び複数のスレーブＣＰＵがシステムバスにて接続された情報処理システムにおいて、
マスターＣＰＵから複数のスレーブＣＰＵに対し、ファームウェアの書き込み可否を決定するための全スレーブＣＰＵに共通する書き込みモード信号が接続され、
マスターＣＰＵは、その内部にファームウェア書換えプログラムを格納し、
各スレーブＣＰＵは、ＭＰＵ、ＭＰＵ用プログラムが格納され電気的に消去・書込み可能なファームウェア格納用不揮発性メモリ、ＭＰＵに対しマスターＣＰＵからのバス権取得要求を発行するレジスタ、バス権取得要求に応じてＭＰＵが発行したバス開放アクノリッジ信号のステータスをマスターＣＰＵがリードするための入力ポート、上記システムバス中のアドレス・制御信号とローカルバス中のアドレス・制御信号を接続するバッファ、上記システムバス中のデータバスとローカルバス中のデータバスを接続する双方向バッファを備え、
マスターＣＰＵは、書き込みモード信号をアクティブにした後に、書込み対象であるスレーブＣＰＵ内のバス権取得要求を発行するレジスタにアクセスし、システムバス及び開放されたローカルバスを介して書込み対象であるスレーブＣＰＵのファームウェア格納用不揮発性メモリに対してアクセスして、当該書込み対象であるスレーブＣＰＵのファームウェアを書換えることを特徴とする情報処理システム。
【請求項２】
マスターＣＰＵはＣＰＵユニットであり、かつスレーブＣＰＵはインテリジェントユニットであることを特徴とする請求項1記載の情報処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置におけるスレーブＣＰＵのファームウェア格納用不揮発性メモリの書き換えに関するものである。
【０００２】
【従来の技術】
従来のファームウェア格納用不揮発性メモリの書き換え可能な情報処理装置として、例えば、実開平２−６３４０号公報に開示された情報処理装置がある。
図１０は、実開平２−６３４０号公報に開示された情報処理装置のブロック構成図である。
図において、内部ＣＰＵ４１からファームウェアを読み出すためのアドレスバス信号４２及びデータバス信号４３及びメモリ制御信号４４が各々バッファ回路４５、４６、４７に接続され、その出力であるメモリ用アドレス信号４１０、メモリ用データ信号４１１、メモリ用制御信号４１２はファームウェアを格納した電気的書換可能ＲＯＭ４８、４９へ供給される。
【０００３】
また、バッファ回路４５、４６、４７へはバッファ回路制御信号４１３が送られる。
外部接続機構４１４はメモリ用アドレス信号４１０、メモリ用データ信号４１１、メモリ用制御信号４１２及びバッファ回路制御信号４１３を外部接続するためのものである。
【０００４】
次に、図１０に示される情報処理装置における動作を説明する。
通常の動作状態では、バッファ回路４５、４６、４７を制御するバッファ回路制御信号４１３が入力されないため、内部ＣＰＵ４１からのアドレスバス信号４２、データバス信号４３、メモリ制御信号４４が、バッファ回路４５、４６、４７を介してファームウェアを格納した電気的書換可能ＲＯＭ４８、４９に印加され、その内容を読み出す。
【０００５】
次に、電気的書換可能ＲＯＭに格納したファームウェアを書き換える必要がある場合、外部接続機構４１４に、ＲＯＭプログラマ等、電気的書込可能ＲＯＭ４８、４９へのＲＯＭ書込み装置を接続する。
この時、バッファ回路４５、４６、４７にバッファ回路制御信号４１３が印加され、バッファ回路４５、４６、４７の出力はフローティング状態となる。
この動作により、電気的書換可能ＲＯＭ４８、４９へ供給されたメモリ用アドレス信号４１０、メモリ用データ信号４１１、およびメモリ用制御信号４１２は外部から制御可能となり、ＲＯＭ書込み装置よりＲＯＭが書き換えられる。
【０００６】
さらに、従来のファームウェア格納用不揮発性メモリの書き換え可能な情報処理装置として、例えば、特開平９−１２８２３０号公報に開示される情報処理装置がある。
図１１は、特開平９−１２８２３０号公報に開示される情報処理装置のブロック構成図である。
図において、５１は端末装置、５２は外部装置、５３はＥＥＰＲＯＭ（電気的に書換え可能で、かつ、電源を切っても記憶内容が失われないメモリ）、５４はマイクロプロセッサユニット（ＭＰＵ）、５４Ａは内部メモリ、５５は切換スイッチ、５６はインタフェース（送受信部）、５７はデータバスである。
【０００７】
次に動作を説明する。
ＥＥＰＲＯＭ５３に格納されている制御プログラムを新たな制御プログラムに書き換える際、最初に切換スイッチ５５をオンからオフに切り換えると、ＭＰＵ５４は内部メモリ５４Ａに記憶されている書換えプログラムを読み出すとともに、インターフェイス５６から外部装置５２に対して伝送プログラム実行要求を送出する。
そして、この伝送プログラム実行要求に対して、外部装置５２側から新たな制御プログラムが送信伝送されると、新たな制御プログラムをインタフェース５６において受信する。
【０００８】
次に、ＭＰＵ５４は、インターフェイス５６で受信した新たな制御プログラムをデータバス５７を介して取り入れ、内部メモリ５４Ａに格納されている書換えプログラムにより、ＥＥＰＲＯＭ５３内の制御プログラムを書きかえる。
【０００９】
【発明が解決しようとする課題】
しかしながら、従来の実開平２−６３４０号公報に開示される情報処理装置では、ＲＯＭプログラマ等のＲＯＭ書込み装置を接続するための専用外部接続機構が必要であると共に、該専用外部接続機構に接続する専用のＲＯＭ書込み装置が必要であった。
また、複数の情報処理装置のＲＯＭに対する書込みを１台のＲＯＭ書込み装置で行う場合、ＲＯＭ書込み装置をそれぞれのターゲット装置に対し何回も接続しなおさなければならないという煩わしさがあった。
【００１０】
また、従来の特開平９−１２８２３０号公報に開示される情報処理装置では、メモリ内にあらかじめ書換えプログラムを格納しておく必要があり、該書換えプログラム用のメモリ領域が必要となるため、容量の大きなメモリを情報処理装置内部に設けなければならなかった。また、そのため、コストが高くなってしまうといった問題点があった。
【００１１】
本発明では、上記に鑑みてなされたものであって、専用のＲＯＭ書込み装置や該ＲＯＭ書込み装置を接続するための専用外部接続機構を必要とせずに、ネットワークを介して複数のスレーブＣＰＵ内のファームウェア書換えを可能とする情報処理システム及びファームウェア書換え方法を得ることを目的としている。
また、書換えのためのプログラムをスレーブＣＰＵ内に必要とせず、スレーブＣＰＵのメモリ容量に制限を与えないものである。
【００１２】
【発明を解決するための手段】
本発明に係るマスターＣＰＵ及び複数のスレーブＣＰＵがシステムバスにて接続された情報処理システムにおいては、マスターＣＰＵから複数のスレーブＣＰＵに対し、ファームウェアの書き込み可否を決定するための全スレーブＣＰＵに共通する書き込みモード信号が接続され、マスターＣＰＵは、その内部にファームウェア書換えプログラムを格納し、各スレーブＣＰＵは、ＭＰＵ、ＭＰＵ用プログラムが格納され電気的に消去・書込み可能なファームウェア格納用不揮発性メモリ、ＭＰＵに対しマスターＣＰＵからのバス権取得要求を発行するレジスタ、バス権取得要求に応じてＭＰＵが発行したバス開放アクノリッジ信号のステータスをマスターＣＰＵがリードするための入力ポート、上記システムバス中のアドレス・制御信号とローカルバス中のアドレス・制御信号を接続するバッファ、上記システムバス中のデータバスとローカルバス中のデータバスを接続する双方向バッファを備え、マスターＣＰＵは、書き込みモード信号をアクティブにした後に、書込み対象であるスレーブＣＰＵ内のバス権取得要求を発行するレジスタにアクセスし、システムバス及び開放されたローカルバスを介して書込み対象であるスレーブＣＰＵのファームウェア格納用不揮発性メモリに対してアクセスして、当該書込み対象であるスレーブＣＰＵのファームウェアを書換えるものである。
【００１３】
また、マスターＣＰＵがＣＰＵユニットであり、かつスレーブＣＰＵがインテリジェントユニットであるものである。
【００１８】
【発明の実施の形態】
以下に、本発明に係る情報処理装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１９】
実施の形態１．
図１は、本発明に係る実施の形態１における情報処理装置のシステム構成を示したシステム構成図である。
図において、１はマスターＣＰＵ、２はマスターＣＰＵ１とスレーブＣＰＵを接続するシステムバス、３はスレーブＣＰＵであり、複数台（ｎ台：ｎは２以上の自然数）のスレーブＣＰＵがマスターＣＰＵ１に接続されている。
なお、一例として、マスターＣＰＵ１とスレーブＣＰＵ３との関係は、ベースユニットに接続されたプログラマブルコントローラにおけるＣＰＵユニットとネットワークユニット等のインテリジェントユニットの関係でもよければ、ネットワークを介して接続される複数台のプログラマブルコントローラ同士の関係でもよい。
【００２０】
図２は、スレーブＣＰＵ３の内部構成を示した内部構成図である。
図において、２１はシステムバス２とスレーブＣＰＵ３を接続するためのシステムバス接続コネクタであり、スレーブＣＰＵ３内部でアドレス信号Ｓ＿ＡＤＲ［ｍ：０］（ｍは自然数）２１００、データ信号Ｓ＿ＤＡＴＡ［ｎ：０］（ｎは自然数）２１０４、ファームウェア書き込みモード信号ＩＮＳＴＡＬＬ２１０１、ライト信号ＳＷＲ２１０２、リード信号ＳＲＤ２１０５、システムリセット信号ＲＥＳＥＴＬ２１２７に展開される。
【００２１】
２２はアドレスデコーダであり、ＡＤＲ端子に入力されるアドレスＳ＿ＡＤＲ［ｍ：０］２１００をデコードし、ＨＯＬＤＲＥＱレジスタ・ＨＯＬＤＡ入力ポート用チップセレクトＣＳ１、２ポートメモリ用チップセレクトＣＳ２を生成する。
２３はバス権取得要求信号ＨＬＤＲ２１１５を生成するＨＯＬＤＲＥＱレジスタフリップフロップ、２４はファームウェア格納用不揮発性メモリ２８に格納されたファームウェアに基づきスレーブＣＰＵの制御を行うＭＰＵであり、ローカルバス開放手段としての機能を有している。
２５はデータ伸長回路であり、ＨＬＤＡ端子に入力される信号をＬＳＢとし、さらに（ｎ−１）ビットを付加してｎビットデータにしＤＡＴＡ端子から出力する回路である。
【００２２】
２６はデータセレクタであり、ＩＮＳＴＡＬＬ、ＣＳ１、ＣＳ２端子入力の組み合わせにより、ＤＡＴＡ１、ＤＡＴＡ２、ＤＡＴＡ３端子に入力されるデータをセレクトし、ＤＡＴＡ端子に出力するセレクタ回路である。
２７はＭＰＵ２４とマスターＣＰＵ１の間でデータを共有するための２ポートメモリであり、アドレス入力（ＡＤＲ１，２端子）、データ入出力（ＤＡＴＡ１，２端子）、チップセレクト入力（ＣＳ１，２端子）、リード入力（ＲＤ１，２端子）、ライト入力（ＷＲ１，２端子）を、それぞれ２つずつ持っている。
２８はファームウェアを格納するファームウェア格納用不揮発性メモリ、２９は制御回路であり、ＣＳ、ＷＲ、ＩＮＳＴＡＬＬ、ＣＬＫ端子入力より２ＰＧＡＴＥ、２ＰＷＲ、ＦＧＡＴＥ、ＦＷＲ出力端子のタイミングを生成する回路である。
【００２３】
２１１、２１２、２１４は２入力ＡＮＤゲート、２１３はインバータゲート、２１５は３入力ＡＮＤゲート、２１７、２１８、２１９は出力イネーブル付き双方向バッファ、２２０、２２１、２２２、２２３は出力イネーブル付きバッファ、２１６は発振器である。
【００２４】
ＭＰＵ２４、２ポートメモリ２７、ファームウェア格納用不揮発性メモリ２８、出力イネーブル付きバッファ２２０、２２１、２２２、２２３、出力イネーブル付き双方向バッファ２１９は、ＭＰＵ２４のローカルバスであるアドレス信号Ｍ＿ＡＤＲ［Ｍ：０］２１１９（Ｍは自然数）、データ信号Ｍ＿ＤＡＴＡ［Ｎ：０］２１２０（Ｎは自然数）、リード信号ＭＲＤ２１２１、ライト信号ＭＷＲ２１２２、２ポートメモリエリアセレクト信号Ｍ＿２ＰＲＡＭＣＳ２１２３、ファームウェア格納用不揮発性メモリエリアセレクト信号Ｍ＿ＦＲＯＭＣＳ２１２４で接続されている。
【００２５】
アドレスデコーダ２２の出力端子ＣＳ１から出力されるＨＯＬＤＲＥＱレジスタ・ＨＯＬＤＡ入力ポート用チップセレクト信号ＣＳ１ ２１１０は、３入力ＮＡＮＤゲート２１０の入力と、データセレクタ２６のＣＳ１入力端子に接続される。
アドレスデコーダ２２の出力端子ＣＳ２から出力される２ポートメモリ用チップセレクト信号ＣＳ２ ２１０９は、データセレクタ２６のＣＳ２入力端子、制御回路２９のＣＳ入力端子、２入力ＡＮＤゲート２１１、２１２の入力端子に接続される。
ＭＰＵ２４の出力端子ＨＬＤＡから出力されるバス開放アクノリッジ信号ＨＬＤＡ２１２５は、データ伸長回路２５のＨＬＤＡ入力端子、３入力ＡＮＤゲート２１５の入力端子に接続される。
【００２６】
ファームウェア書き込みモード信号ＩＮＳＴＡＬＬ２１０１は、３入力ＮＡＮＤゲート２１０の入力端子、データセレクタ２６のＩＮＳＴＡＬＬ入力端子、３入力ＡＮＤゲート２１５の入力端子、制御回路２９のＩＮＳＴＡＬＬ入力端子、インバータゲート２１３の入力端子、２入力ＡＮＤゲート２１２の入力端子に接続される。インバータゲート２１３の出力端子は２入力ＡＮＤゲート２１１の入力端子に接続される。
２入力ＡＮＤゲート２１１の出力端子は、2ポートメモリ２７の入力端子ＣＳ１に接続される。２入力ＡＮＤゲート２１２の出力端子は、出力イネーブル付きバッファ２２１の入力に接続される。
【００２７】
ライト信号ＳＷＲ２１０２は、３入力ＮＡＮＤゲート２１０の入力端子、制御回路２９のＷＲ入力端子に接続される。
リード信号ＳＲＤ２１０３は、出力イネーブル付き双方向バッファ２１７のイネーブル入力、２ポートメモリ２７のＲＤ１入力端子、出力イネーブル付きバッファ２２２の入力端子に接続される。
Ｓ＿ＡＤＲ［ｍ：０］信号２１００の下位ｍ１、ｍ２ビット（ｍ１、ｍ２はｍ以下の整数）である信号Ｓ＿ＡＤＲ［ｍ１：０］２１１６、Ｓ＿ＡＤＲ［ｍ２：０］２１２６は、それぞれ２ポートメモリ２７のＡＤＲ１端子と出力イネーブル付きバッファ２２０の入力に接続される。
【００２８】
制御回路２９の出力端子２ＰＧＡＴＥから出力される２ポートメモリデータバッファイネーブル信号２ＰＧＡＴＥ２１１３は、出力イネーブル付き双方向バッファ２１８のイネーブル入力に接続される。
制御回路２９の出力端子２ＰＷＲから出力される２ポートメモリライト信号２ＰＷＲ２１１４は、２ポートメモリ２７のＷＲ１入力端子に接続される。
制御回路２９の出力端子ＦＧＡＴＥから出力されるファームウェア格納用不揮発性メモリデータバッファイネーブル信号は、２入力ＡＮＤゲート２１４の入力に接続される。
制御回路２９の出力端子ＦＷＲから出力されるファームウェア格納用不揮発性メモリライト信号は、出力イネーブル付きバッファ２２３の入力に接続される。
【００２９】
ＨＯＬＤＲＥＱレジスタ用フリップフロップ２３の出力端子Ｑから出力されるバス権取得要求信号ＨＬＤＲ２１１５は、ＭＰＵ２４のＨＬＤＲ入力端子と、３入力ＡＮＤゲート２１５の入力に接続される。
ＨＯＬＤＲＥＱレジスタ用フリップフロップ２３の入力端子Ｒには、システムリセット信号ＲＥＳＥＴＬ２１２７が接続される。
３入力ＮＡＮＤゲート２１０の出力端子は、ＨＯＬＤＲＥＱレジスタ用フリップフロップ２３のクロック入力端子に接続される。
【００３０】
３入力ＡＮＤゲート２１５の出力は、２入力ＡＮＤゲート２１４の入力と、出力イネーブル付きバッファ２２０、２２１、２２２、２２３のイネーブル端子に接続される。
出力イネーブル付き双方向バッファ２１８の出力端子Ｄから出力される２ポートメモリのリードデータ２Ｐ＿ＤＡＴＡ［ｎ：０］信号２１０８は、データセレクタ２６の入力端子ＤＡＴＡ３に接続される。
出力イネーブル付き双方向バッファ２１７の出力端子Ｄから出力されるシステムバスからのライトデータＳ＿ＤＡＴＡ＿Ｏ［ｎ：０］信号は、出力イネーブル付き双方向バッファ２１８・２１９の入力端子Ｂに接続される。
【００３１】
また、ＨＯＬＤＲＥＱレジスタ用フリップフロップ２３の入力端子Ｄにはビット０のみ接続される。
出力イネーブル付き双方向バッファ２１９の出力端子Ｄから出力されるファームウェア格納用不揮発性メモリのリードデータＦ＿ＤＡＴＡ［ｎ：０］信号２１０７は、データセレクタ２６の入力端子ＤＡＴＡ２に接続される。
データセレクタ２６の出力端子ＤＡＴＡから出力されるシステムバスのリードデータＳ＿ＤＡＴＡ＿Ｉ［ｎ：０］信号２１１２は、出力イネーブル付き双方向バッファ２１７の入力端子Ｂに接続される。
【００３２】
次に、動作について図３を用いて説明する。
図３は、マスターＣＰＵ１からシステムバス２につながるスレーブＣＰＵ３のファームウェア格納用不揮発性メモリ２８に対し、書込み動作を行う際の動作フローを示したフローチャートである。
なお、本説明に用いる信号は、システムリセット信号ＲＥＳＥＴＬ２１２７以外はすべてＨＩＧＨアクティブである。
【００３３】
本実施の形態で説明する動作フローを行なうファームウェア書換えプログラムは、マスターＣＰＵ１のプログラム領域に格納された状態で、電源が立ちあげられると、該ファームウェア書換えプログラムに基づきファームウェア書換えが行なわれるものであり、このファームウェア書換えプログラムのかわりに、通常動作を行なうべき所定のプログラムがマスターＣＰＵ１のプログラム領域に格納された状態で、電源が立ちあげられると通常動作が行なわれる。
つまり、ファームウェアの書換えの必要性に応じて、マスターＣＰＵ１のプログラム領域にファームウェア書換えプログラム及び書換えるべきファームウェアを格納することにより、ファームウェアの書換えが実行される。
なお、予めファームウェア書換えプログラム及び書換えるべきファームウェアを通常動作のプログラムと共存して格納しておき、必要に応じたスイッチング動作で起動すべきプログラムを選択してもよいことは言うまでもない。
【００３４】
マスターＣＰＵ１が接続されたスレーブＣＰＵ３のファームウェアを書き替える場合、まず、ステップＳ１において、マスターＣＰＵ１は、システムバス２内のファームウェア書き込みモード信号ＩＮＳＴＡＬＬ２１０１をアクティブにし、全スレーブＣＰＵに対し「ファームウェア書込みモードへの移行」を通報する。
【００３５】
すると、スレーブＣＰＵ３内において、ＩＮＳＴＡＬＬ信号２１０１がＨＩＧＨレベルとなる。これにより、ＳＷＲ信号２１０２、ＣＳ１信号２１１０の論理により、３入力ＡＮＤゲート２１０の出力に立ち上がりエッジを生成できるようになるため、ＨＯＬＤＲＥＱレジスタ用フリップフロップ２３にＳ＿ＤＡＴＡ［０］信号の論理をラッチすることができる。
つまり、マスターＣＰＵ１によるＨＯＬＤＲＥＱレジスタ用フリップフロップ２３への書き込みが可能になる。
なお、ＩＮＳＴＡＬＬ信号２１０１が非アクティブになっている時（つまり「ファームウェア書込みモード」でない時）は、３入力ＡＮＤゲート２１０の出力に立ち上がりエッジを生成できないため、マスターＣＰＵ１は、ＨＯＬＤＲＥＱレジスタ用フリップフロップ２３への書き込みができない。
【００３６】
次に、ステップＳ２において、マスターＣＰＵ１は、書込み対象であるスレーブＣＰＵ内のＨＯＬＤＲＥＱレジスタ用フリップフロップ２３に対してアクセスを行い、バス権取得要求信号ＨＬＤＲ２１１５をアクティブにする。
【００３７】
この時の動作を、図４に示されるタイミングチャートを用いて説明する。
マスターＣＰＵ１が、書込み対象であるスレーブＣＰＵ内のＨＯＬＤＲＥＱレジスタ用フリップフロップ２３に対してアクセスを行うと、システムバス上に図４のタイミングチャートに示されるタイミングが生成される。
【００３８】
Ｓ＿ＡＤＲ［ｍ：０］信号２１００には、ＨＯＬＤＲＥＱレジスタ用フリップフロップ２３のアドレスがストローブされている。スレーブＣＰＵ３内のアドレスデコーダ２２により、このアドレスがデコードされて、ＣＳ１信号がＨＩＧＨレベルとなる。
そして、ライト信号であるＳＷＲ信号２１０２がＨＩＧＨからＬＯＷに変化する際に、Ｓ＿ＤＡＴＡ［０］信号２１１のＨＩＧＨレベルがＨＯＬＤＲＥＱレジスタ用フリップフロップ２３にラッチされる。
これにより、バス権取得要求信号ＨＬＤＲ２１１５がＨＩＧＨレベルとなる。
【００３９】
ＨＬＤＲ信号２１１５がＨＩＧＨレベルになったことを受けたＭＰＵ２４は、ローカルバスを開放するための内部処理が完了次第、ローカルバスであるＡＤＲ、ＤＡＴＡ、ＲＤ、ＷＲ、ＣＳ１、ＣＳ２端子をＨＩＧＨインピーダンスにすると共に、バス開放アクノリッジ信号ＨＬＤＡ２１２５をアクティブにする。
なお、ＭＰＵは、ＨＬＤＲ信号２１１５がＬＯＷレベルにならない限り、バス開放アクノリッジ信号ＨＬＤＡ２１２５を非アクティブにすることはないし、ローカルバスであるＡＤＲ，ＤＡＴＡ，ＲＤ、ＷＲ、ＣＳ１，ＣＳ２端子をＨＩＧＨインピーダンス状態から通常の出力状態に戻すことはない。
【００４０】
マスターＣＰＵ１は、ステップＳ３において、ＭＰＵ２４のローカルバスが開放されたか否かを判断するために、ＨＬＤＡ信号２１２５の入力ポートをリード（バス開放アクノリッジ信号ＨＬＤＡ２１２５をポーリング）し、ＭＰＵ２４のローカルバスが開放されるのを待つ。
マスターＣＰＵ１は、バス開放アクノリッジ信号ＨＬＤＡ２１２５がＨＩＧＨレベルになったことによりローカルバスが開放されたことを確認する。
【００４１】
この時の動作を、図５に示されるタイミングチャートを用いて説明する。
マスターＣＰＵ１がＨＬＤＡ信号２１２５の入力ポートをリードすると、システムバス上に図５のタイミングチャートに示されるタイミングが生成される。
Ｓ＿ＡＤＲ［ｍ：０］信号２１００には、ＨＬＤＡ信号２１２５の入力ポートのアドレスがストローブされている。
スレーブＣＰＵ３内のアドレスデコーダ２２により、このアドレスがデコードされて、ＣＳ１信号がＨＩＧＨレベルとなる。
【００４２】
ＨＬＤＡ信号２１２５はデータ伸長回路２５により、図６に示されるようなｎビットのデータに伸長される。
【００４３】
データセレクタ２６は、図７に示される真理値表のように、ＩＮＳＴＡＬＬ、ＣＳ１、ＣＳ２端子の論理に基づき、ＤＡＴＡ１，２，３端子から入力されたデータをセレクトし、ＤＡＴＡ端子に出力する。
今、ＩＮＳＴＡＬＬ端子、ＣＳ１端子、ＣＳ２端子の論理は、１１０ｂであるため、ＤＡＴＡ１端子の論理がＤＡＴＡ端子に出力される。
つまり、Ｓ＿ＤＡＴＡ＿Ｉ［ｎ：０］信号２１１２にはＨＬＤＡ信号のステータスを含んだｎビットのデータがストローブされている。
【００４４】
出力イネーブル付き双方向バッファ２１７のイネーブル端子には、ＳＲＤ信号が接続されているが、今、ＳＲＤ信号はＨＩＧＨレベルであるため、システムバス２のデータ信号であるＳ＿ＤＡＴＡ［ｎ：０］信号にもＨＬＤＡ信号のステータスを含んだｎビットのデータがストローブされる。
このデータをマスターＣＰＵ１がリードする。
マスターＣＰＵ１は、このリード動作を繰り返し、ＨＬＤＡ信号のステータスがＨＩＧＨになったことを確認すると、ステップＳ４へ進む。
【００４５】
次に、ステップＳ４において、マスターＣＰＵ１は、システムバス２及びＭＰＵローカルバスを介し、ファームウェア格納用不揮発性メモリ２８への書込み動作を行う。
【００４６】
ここで、マスターＣＰＵ１から、システムバス２及びＭＰＵローカルバスを介し、ファームウェア格納用不揮発性メモリ２８へ書き込み動作を行なう際に使用するリードライトサイクルについて説明する。
【００４７】
第一にライトサイクルについて図８のタイミングチャートを用いて説明する。Ｓ＿ＡＤＲ［ｍ：０］信号２１００には、２ポートメモリのアドレスがストローブされている。
スレーブＣＰＵ３内のアドレスデコーダ２２により、このアドレスがデコードされて、ＣＳ２信号がＨＩＧＨレベルとなる。
今、ＩＮＳＴＡＬＬ信号２１０１はＨＩＧＨレベルであるため、２入力ＡＮＤゲート２１１の出力はＬＯＷレベル（非アクティブ）である。
つまり、２ポートメモリに対しチップセレクト信号がストローブされない。
それに対し、２入力ＡＮＤゲート２１２の入力ＣＳ２信号２１０９、ＩＮＳＴＡＬＬ信号２１１０がともにＨＩＧＨレベルであるので、その出力はＨＩＧＨとなり、ファームウェア格納用不揮発性メモリに対するチップセレクトがアクティブになる。
【００４８】
制御回路２９は、ＣＳ、ＷＲ、ＩＮＳＴＡＬＬ端子に１１１ｂという論理が入力されている時、図８に示すようなタイミングをＦＧＡＴＥ、ＦＷＲ端子に対し生成する。
【００４９】
また、この時点で、ＩＮＳＴＡＬＬ信号２１０１、ＨＬＤＲ信号２１１５、ＨＬＤＡ信号２１２５がすべてアクティブになっている。
ゆえに、３入力ＡＮＤゲート２１５の出力がＨＩＧＨレベルになる。
これにより、出力イネーブル付きバッファ２２０、２２１、２２２、２２３が出力イネーブル状態になる。
２入力ＡＮＤゲート２１４も、制御回路２９のＦＧＡＴＥ端子がＨＩＧＨであるので、その出力はＨＩＧＨレベルとなり、出力イネーブル付き双方向バッファ２１９の出力もイネーブル状態になる。
これにより、システムバス２の論理が、バッファ２１９，２２０，２２１，２２２，２２３を介して、ファームウェア格納用不揮発性メモリに接続されるので、図８に示すタイミングで、ファームウェア格納用不揮発性メモリ２８へのライトサイクルが完了される。
【００５０】
第二にリードサイクルについて図９のタイミングチャートを用いて説明する。Ｓ＿ＡＤＲ［ｍ：０］信号２１００には、２ポートメモリのアドレスがストローブされている。スレーブＣＰＵ３内のアドレスデコーダ２２により、このアドレスがデコードされて、ＣＳ２信号がＨＩＧＨレベルとなる。
今、ＩＮＳＴＡＬＬ信号２１０１はＨＩＧＨレベルであるため、２入力ＡＮＤゲート２１１の出力はＬＯＷレベル（非アクティブ）である。
つまり、２ポートメモリに対しチップセレクト信号がストローブされない。
それに対し、２入力ＡＮＤゲート２１２の入力ＣＳ２信号２１０９、ＩＮＳＴＡＬＬ信号２１１０がともにＨＩＧＨレベルであるので、出力がＨＩＧＨとなり、ファームウェア格納用不揮発性メモリに対するチップセレクトがアクティブになる。
【００５１】
また、制御回路２９は、ＣＳ、ＷＲ、ＩＮＳＴＡＬＬ端子に１０１ｂという論理が入力されている時、ＦＧＡＴＥ、ＦＷＲ端子は非アクティブのままである。また、この時点で、ＩＮＳＴＡＬＬ信号２１０１、ＨＬＤＲ信号２１１５、ＨＬＤＡ信号２１２５がすべてアクティブになっている。
ゆえに、３入力ＡＮＤゲート２１５の出力がＨＩＧＨレベルになる。これにより、出力イネーブル付きバッファ２２０、２２１、２２２、２２３が出力イネーブル状態になる。
これにより、システムバス２の論理が、バッファ２１９，２２０，２２１，２２２，２２３を介して、ファームウェア格納用不揮発性メモリに接続される。
さらに、ファームウェア格納用不揮発性メモリ２８より出力されたデータは双方向バッファ２１９を介してＦ＿ＤＡＴＡ［ｎ：０］信号２１０７上にストローブされる。
【００５２】
さらに、データセレクタ２６は、ＩＮＳＴＡＬＬ端子、ＣＳ１端子、ＣＳ２端子の論理が、１０１ｂである時、図７に示されるように、ＤＡＴＡ２端子の論理をＤＡＴＡ端子に出力する。
つまり、Ｆ＿ＤＡＴＡ［ｎ：０］の論理がＳ＿ＤＡＴＡ＿Ｉ［ｎ：０］上にストローブされる。
出力イネーブル付き双方向バッファ２１７のイネーブル端子には、ＳＲＤ信号が接続されているが、今、ＳＲＤはＨＩＧＨレベルであるためシステムバス２のデータ信号であるＳ＿ＤＡＴＡ［ｎ：０］信号にもＦ＿ＤＡＴＡ［ｎ：０］信号２１０７がストローブされる。このデータをマスターＣＰＵ１がリードする。
【００５３】
これらの動作において、２ポートメモリ２７とファームウェア格納用不揮発性メモリ２８はチップセレクトＣＳ２信号を共有しているため、マスターＣＰＵ１から見れば、２ポートメモリエリアとファームウェア格納用不揮発性メモリエリアは透過であるように見える。
このように、２ポートメモリエリアとファームウェア格納用不揮発性メモリエリアを透過に見せることにより、システムバス２上のリソースを節約できる。
【００５４】
ここまでに示したリードライトサイクルを用いて、マスターＣＰＵ１は、ファームウェアの書き込み照合動作を行なう。
具体的書込み方法としては、まずマスターＣＰＵ１は、マスターＣＰＵ１内部に保有しているファームウェア書換えプログラムに基づいて、ファームウェア格納用不揮発性メモリをイレースする処理を行う。
【００５５】
イレース処理として、イレース処理実行として予め定義されたアドレス信号及び制御信号を、ライトサイクルを発行することにより、システムバス２を介してファームウェア格納用不揮発性メモリ２８に送信すると共に、イレース動作実行として予め定義されたデータ信号（消去コマンド）をファームウェア格納用不揮発性メモリ２８に送信する。
【００５６】
イレース処理として定義されたアドレス信号及び制御信号並びにデータ信号を所定のシーケンスで受けたファームウェア格納用不揮発性メモリ２８は、内部に格納されているファームウェアをイレースする。
一方、マスターＣＰＵ１は、リードサイクルを発行することにより、ファームウェア格納用不揮発性メモリ２８のデータポーリングを行い、イレース処理の終了を確認する。
【００５７】
ファームウェア格納用不揮発性メモリ２８のイレース処理が終了する（マスターＣＰＵ１が行うデータポーリングによりイレース処理完了を検出する）と、マスターＣＰＵ１は、マスターＣＰＵ１の資源であり、新しいファームウェアを予め格納しておいたリームバブルメディア（着脱可能な記憶素子）から、あるいは、新しいファームウェアを外部ＩＯより転送しておいたマスターＣＰＵ１の内部メモリから、スレーブＣＰＵ３内のファームウェア格納用不揮発性メモリ２８に対して転送（書き込む）すべく、転送すべきアドレスを指定したアドレス信号及び制御信号を、ライトサイクルを発行することにより、ファームウェア格納用不揮発性メモリ２７に送信する。
【００５８】
マスターＣＰＵ１からのファームウェア書込みが終了すると、次に書込んだファームウェアの照合動作を行う。
マスターＣＰＵ１は、書き込んだはずであるアドレスに対し、スレーブＣＰＵ内のファームウェア格納用不揮発性メモリ２８からデータをリードする。
そして、読み出したデータと、マスターＣＰＵ１内のメモリに格納されている書き込んだデータを比較し、同一であるかを確認する。
この動作を、書き込んだすべてのアドレスに対し実施し、すべてが同一であれば照合動作は完了する。
【００５９】
ファームウェア照合の結果、正常に書込まれていたと判断すると、書込みモード指示信号２１０１を非アクティブ（Ｌｏｗレベル）に戻し、システムリセット信号ＲＥＳＥＴＬ２１２７をアクティブにした後、非アクティブに戻し、通常動作時に復帰させる。
【００６０】
また、上述の実施の形態において、ファームウェア書き替え作業を各スレーブＣＰＵに対し順次実行することにより、すべてのスレーブＣＰＵに対するファームウェアの書込みを行うことも可能である。
【００６１】
その際、種類の異なる複数のスレーブＣＰＵに対し、それぞれのスレーブＣＰＵに対応したファームウェアを書き込むことも可能である。
【００６２】
その手法として、第一に、異なる種類のスレーブＣＰＵに対応した複数のファームウェアを、マスターＣＰＵ１の資源であるリームバブルメディア、もしくは、外部ＩＯを通じて、マスターＣＰＵ１に転送しておく。ただし、それぞれのファームウェアは「対応スレーブＣＰＵコード」を含んでおり、その「対応スレーブＣＰＵコード」とスレーブＣＰＵが持っている「スレーブＣＰＵコード」を比較することにより、該ファームウェアが、どの種類のスレーブＣＰＵに対応しているか、判別できるようになっている。
第二に、マスターＣＰＵ１は、書き込み対象であるスレーブＣＰＵの「スレーブＣＰＵコード」を読み出す。
第三に、マスターＣＰＵ１はスレーブＣＰＵより読み出した「スレーブＣＰＵコード」と、ファームウェア内の「対応スレーブＣＰＵコード」を比較することにより、複数のファームウェアから書き込むべきファームウェアを特定する。
第四に、前述の書き込み方法により、ファームウェアを該スレーブＣＰＵに書き込む。
この動作を繰り返すことにより、種類の異なる複数のスレーブＣＰＵに対し、それぞれのスレーブＣＰＵに対応したファームウェアを書き込むことができる。
【００６３】
なお、その際には、ファームウェア書換え対象のすべてのスレーブＣＰＵに対する書き替えが終了した後、マスターＣＰＵ1はシステムリセットを発行し、システムをリブートし通常動作を開始すればよい。
【００６４】
本実施の形態では、通常動作時の構成と、書込みモード時の構成が全く同じであるため、ＲＯＭプログラマ等のＲＯＭ書込み装置を接続するための専用外部接続機構及び専用書込み装置を必要としない。
また、１台のマスターＣＰＵ１が、複数のスレーブＣＰＵに共通なシステムバスを介して、そのぞれのスレーブＣＰＵのファームウェア格納用不揮発性メモリに対する書込みを行うことができるため、容易にファームウェア書き替えを行うことができる。
さらに、複数のスレーブＣＰＵ内のファームウェア書換えプログラムを１台のマスターＣＰＵ１内部に格納することにより、スレーブ内に自分自身の書換えプログラム用リソースを必要としない。
【００６５】
【発明の効果】
この発明は、以上説明したように構成されているので、以下に記載されるような効果を奏する。
【００６６】
ファームウェア書換え対象のスレーブユニットにおいて開放されたローカルバス介してファームウェア書込みを行うので、ファームウェアの書込みを行わない通常動作時の構成と、書込みモード時の構成が全く同じでよく、ＲＯＭプログラマ等のＲＯＭ書込み装置を接続するための専用外部接続機構及びＲＯＭプログラマ等の専用書込み装置を必要とせずに、ファームウェアを書換えることができる。
【００６７】
また、１台のマスターＣＰＵ１が、専用外部接続機構ではなく複数のスレーブＣＰＵに共通なシステムバスを介して、そのぞれのスレーブＣＰＵのファームウェア格納用不揮発性メモリに対する書込みをで行うことができる。
【００６８】
さらに、スレーブＣＰＵ内のファームウェア書換えプログラムを１台のマスターＣＰＵ１内部に格納することにより、スレーブ内に自分自身の書換えプログラム用リソースを必要としない。
【図面の簡単な説明】
【図１】  本発明に係る実施の形態１における情報処理装置のシステム構成を示した図である。
【図２】  スレーブＣＰＵの内部構成を示した図である。
【図３】  マスターＣＰＵからスレーブＣＰＵのファームウェア格納用不揮発性メモリに対し書込み動作を行う際の動作フローを示した図である。
【図４】  マスターＣＰＵからスレーブＣＰＵのＨＯＬＤＲＥＱレジスタに対し書込み動作を行う際のタイミングを示した図である。
【図５】  マスターＣＰＵからスレーブＣＰＵのＨＬＤＡ信号入力ポートに対する読み出し動作を行う際のタイミングを示した図である。
【図６】  データ伸長回路により伸長された後のデータを示した図である。
【図７】  データセレクタの動作を示す真理値表を示した図である。
【図８】  マスターＣＰＵからスレーブＣＰＵのファームウェア格納用不揮発性メモリに対するライトサイクルのタイミングを示した図である。
【図９】  マスターＣＰＵからスレーブＣＰＵのファームウェア格納用不揮発性メモリに対するリードサイクルのタイミングを示した図である。
【図１０】  従来における情報処理装置の内部構成を示した図である。
【図１１】  従来における情報処理装置の内部構成を示した図である。
【符号の説明】
１  マスターＣＰＵ、２  システムバス、３  スレーブＣＰＵ、２１  システムバス接続コネクタ、２２  アドレスデコーダ、２３  ＨＯＬＤＲＥＱレジスタ用フリップフロップ、２４  ＭＰＵ、２５  データ伸長回路、２６  データセレクタ、２７  ２ポートメモリ、２８  ファームウェア格納用不揮発性メモリ、２９  制御回路、２２０、２２１、２２２、２２３  出力イネーブル付きバッファ、２１７、２１８、２１９  出力イネーブル付き双方向バッファ、２１０  ３入力ＮＡＮＤゲート、２１１、２１２、２１４  ２入力ＡＮＤゲート、２１３  インバータゲート、２１５  ３入力ＡＮＤゲート。
【図１】
0003635996.tif 000002
【図２】
0003635996.tif 000003
【図３】
0003635996.tif 000004
【図４】
0003635996.tif 000005
【図５】
0003635996.tif 000006
【図６】
0003635996.tif 000007
【図７】
0003635996.tif 000008
【図８】
0003635996.tif 000009
【図９】
0003635996.tif 000010
【図１０】
0003635996.tif 000011
【図１１】
0003635996.tif 000012