(57)【要約】【課題】  ＲＯＭからＲＡＭにプログラムを書き込みＲＡＭプログラムをＣＰＵが実行するデータ転送装置の高速起動，高速実行。【解決手段】  ＣＰＵ１がＲＯＭ４からプログラムの読み出しを行っている最中にＲＯＭ４のプログラムをＲＡＭ３に転送するプログラム転送１０２を設け、ＣＰＵ１からのＲＡＭ３への読み書きとプログラム転送１０２からのＲＡＭ３への書き込みを調停する第１調停１０３を設けた。第１調停１０３で、ＣＰＵ１からのＲＡＭ３への読み書きを保留する。更に、ＣＰＵ１がＲＯＭ４からプログラムの読み出しを行っている最中に、プログラム転送１０２によるＲＯＭ４のプログラムをＲＡＭ３に転送するためのＲＯＭ４の読み出しを調停する第２調停１０４を設けた。【選択図】  図１
2008217524.tif 000002
【特許請求の範囲】
【請求項１】
第１記憶手段に、第２記憶手段に格納されているプログラムを転送して、第１記憶手段に格納されているプログラムを制御手段が実行するデータ転送方法であって、
前記制御手段が第２記憶手段からプログラムの読み出しを行っている最中に第２記憶手段のプログラムを第１記憶手段に転送するプログラム転送ステップを設け、
前記制御手段からの第１記憶手段への読み書きステップと前記プログラム転送ステップを調停するための第１調停ステップを設けた、ことを特徴とするデータ転送方法。
【請求項２】
第１記憶手段に、第２記憶手段に格納されているプログラムを転送して、第１記憶手段に格納されているプログラムを制御手段が実行するデータ転送方法であって、
前記制御手段が第２記憶手段からプログラムの読み出しを行っている最中に第２記憶手段のプログラムを第１記憶手段に転送するプログラム転送ステップを設け、
前記制御手段からの第１記憶手段への読み書きステップを保留するための第１調停ステップを設けた、ことを特徴とするデータ転送方法。
【請求項３】
第１記憶手段に、第２記憶手段に格納されているプログラムを転送して、第１記憶手段に格納されているプログラムを制御手段が実行するデータ転送方法であって、
前記制御手段が第２記憶手段からプログラムの読み出しを行っている最中に第２記憶手段のプログラムを第１記憶手段に転送するプログラム転送ステップによる第２記憶手段の読み取りを調停するための第２調停ステップと、
前記制御手段からの第１記憶手段への読み書きと前記プログラム転送ステップからの第１記憶手段への書き込みを調停するための第１調停ステップを設けた、ことを特徴とするデータ転送方法。
【請求項４】
第１記憶手段に、第２記憶手段に格納されているプログラムを転送して、第１記憶手段に格納されているプログラムを制御手段が実行するデータ転送方法であって、
前記制御手段が第２記憶手段からプログラムの読み出しを行っている最中に第２記憶手段のプログラムを第１記憶手段に転送するプログラム転送ステップによる第２記憶手段の読み取りを調停するための第２調停ステップと、
前記制御手段からの第１記憶手段への読み書きを保留するための第１調停ステップを設けた、ことを特徴とするデータ転送方法。
【請求項５】
第２記憶手段に格納され第１記憶手段に転送するプログラムは複数区分であり、前記プログラム転送ステップは、各区分を、前記制御手段がプログラムを実行する順番と同じ順番で第１記憶手段に転送する複数のプログラム転送ステップを含む、請求項１乃至４のいずれか１つに記載のデータ転送方法。
【請求項６】
第１記憶手段に、第２記憶手段に格納されているプログラムを転送して、第１記憶手段に格納されているプログラムを制御手段が実行するデータ転送装置であって、
前記制御手段が第２記憶手段からプログラムの読み出しを行っている最中に第２記憶手段のプログラムを第１記憶手段に転送するプログラム転送手段と、
前記制御手段からの第１記憶手段への読み書きと前記プログラム転送手段からの第１記憶手段への書き込みを調停するための第１調停手段、を設けたことを特徴とするデータ転送装置。
【請求項７】
第１記憶手段に、第２記憶手段に格納されているプログラムを転送して、第１記憶手段に格納されているプログラムを制御手段が実行するデータ転送装置であって、
前記制御手段が第２記憶手段からプログラムの読み出しを行っている最中に第２記憶手段のプログラムを第１記憶手段に転送するプログラム転送手段と、
前記制御手段からの第１記憶手段への読み書きを保留するための第１調停手段、を設けたことを特徴とするデータ転送装置。
【請求項８】
第１記憶手段に、第２記憶手段に格納されているプログラムを転送して、第１記憶手段に格納されているプログラムを制御手段が実行するデータ転送装置であって、
前記制御手段が第２記憶手段からプログラムの読み出しを行っている最中に第２記憶手段のプログラムを第１記憶手段に転送するプログラム転送手段と、
該プログラム転送手段による第２記憶手段の読み出しを調停するための第２調停手段と、
前記制御手段からの第１記憶手段への読み書きと前記プログラム転送手段からの第１記憶手段への書き込みを調停するための第１調停手段、を設けたことを特徴とするデータ転送装置。
【請求項９】
第１記憶手段に、第２記憶手段に格納されているプログラムを転送して、第１記憶手段に格納されているプログラムを制御手段が実行するデータ転送装置であって、
前記制御手段が第２記憶手段からプログラムの読み出しを行っている最中に第２記憶手段のプログラムを第１記憶手段に転送するプログラム転送手段と、
該プログラム転送手段による第２記憶手段の読み出しを調停するための第２調停手段と、
前記制御手段からの第１記憶手段への読み書きを保留するための第１調停手段、を設けたことを特徴とするデータ転送装置。
【請求項１０】
前記プログラム転送手段は、第２記憶手段の転送元開始アドレス及び第１記憶手段への転送先開始アドレスを入力情報とし、前記転送元開始アドレスのプログラムを前記転送先開始アドレスに転送し、第１調停手段からの転送完了信号によって転送を終了する、ことを特徴とする請求項６乃至９のいずれか１つに記載のデータ転送装置。
【請求項１１】
第２調停手段は、前記制御手段からの読み書きと前記プログラム転送手段からの読み出しを調停する、ことを特徴とする請求項８又は９に記載のデータ転送装置。
【請求項１２】
第１調停手段は、前記制御手段が前記プログラム転送手段から供給された転送完了アドレスから前記転送先開始アドレスと転送するプログラム量に基づく転送最終アドレスの範囲内に読み書きしようとしたときには、前記制御手段の読み書きを保留する、ことを特徴とする請求項６乃至９のいずれか１つに記載のデータ転送装置。
【請求項１３】
第１調停手段は、前記転送最終アドレスと前記転送完了アドレスを比較することにより、前記転送完了アドレスが前記転送最終アドレスと同じまたは前記転送最終アドレスを超えた時点で、プログラム転送完了信号を発生する、ことを特徴とする請求項６乃至９のいずれか１つに記載のデータ転送装置。
【請求項１４】
第２記憶手段に格納され第１記憶手段に転送するプログラムは複数区分であり、前記プログラム転送手段は、各区分を、前記制御手段がプログラムを実行する順番と同じ順番で第１記憶手段に転送する、請求項６乃至１３のいずれか１つに記載のデータ転送装置。
【請求項１５】
請求項６乃至１４のいずれか１つに記載のデータ転送装置を備える電子機器。
【請求項１６】
外部記憶媒体のプログラムを読み込む外部データ読み込み手段を設け、前記プログラム転送手段は前記外部記憶媒体のプログラムを第１記憶媒体に転送する、請求項１５に記載の電子機器。
【請求項１７】
作像手段；外部と通信する通信手段；および、請求項６乃至１４のいずれか１つに記載のデータ転送装置を備えて該データ転送装置が第２記憶手段から第１記憶手段に転送した、第１記憶手段のプログラムに基づいて、前記通信手段を制御して印刷情報を受信し前記作像手段を制御して印刷するシステムコントローラ；を備える画像形成装置。
【請求項１８】
画像読み取り手段；作像手段；および、請求項６乃至１４のいずれか１つに記載のデータ転送装置を備えて該データ転送装置が第２記憶手段から第１記憶手段に転送した、第１記憶手段のプログラムに基づいて、前記画像読み取り手段を制御して読み取った画像を前記作像手段を制御して印刷するシステムコントローラ；を備える画像形成装置。
【請求項１９】
画像読み取り手段；作像手段；外部と通信する通信手段；および、請求項６乃至１４のいずれか１つに記載のデータ転送装置を備えて該データ転送装置が第２記憶手段から第１記憶手段に転送した、第１記憶手段のプログラムに基づいて、前記画像読み取り手段を制御して読み取った画像を前記作像手段を制御して印刷し、前記通信手段を制御して印刷情報を受信し前記作像手段を制御して印刷するシステムコントローラ；を備える画像形成装置。
【請求項２０】
外部記憶媒体のプログラムを読み込む外部データ読み込み手段を設け、前記プログラム転送手段は前記外部記憶媒体のプログラムを第１記憶媒体に転送する、請求項１７乃至１９のいずれか１つに記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１記憶手段に、第２記憶手段に格納されているプログラムを転送して、第１記憶手段に格納されているプログラムを制御手段が実行するデータ転送方法および装置に関する。本発明は、たとえばパソコン，ワークステーション，サーバ，プリンタ，複写機，ファクシミリ、ならびにその他の、ＣＰＵ及び各種メモリを搭載した全ての電子機器及びデータ処理装置に適用できる。
【背景技術】
【０００２】
【特許文献１】特開２００６−７２９８９号公報。
【０００３】
近年の電子機器では、組み込み機器であってもLinuxを搭載したり、高度なアプリケーションを実行するために外販されているＩＰ(Intelligent Peripheral：高機能周辺回路)や既開発済みのソースコードを移植する等の開発スタイルに変わってきており、プログラム量が増加する要因は着実に増加しているが、プログラム量を削減するような要因は全くなく、短期間での製品開発を迫られる現状では、プログラム量を削減するような開発工数が確保できない状況にあるため、各種電子機器が装備あるいはロードするプログラム量は増加する一方である。しかしながら、電子機器の原価は低く抑えなければいけないために使用できるＣＰＵパワー（ＣＰＵの機能，処理速度を含む処理能力）は限られており、少ないＣＰＵパワーで高性能を発揮したり、リアルタイム処理を行うためには、アクセス速度が相対的に速いＲＡＭにプログラムをロードして、ＲＡＭのプログラムに基づいてハードウエアの制御あるいはデータ処理する必要がある。しかしながら、このようなＲＡＭプログラムの実行を行うためには、大容量ＲＯＭに格納されているファームウェア（各種ハードウエア機能を実現する、入力制御，信号処理，演算（データ処理），出力制御，表示等のプログラムおよび参照データ）をＲＡＭに一旦転送する必要がある。引用文献１には、ＣＰＵをリセットしておき、ＣＰＵがリセットされている間にファームウェアをＲＡＭ上に転送するデータ転送装置が記載されている。
【０００４】
上述の電子機器の代表的なものの１つに、ＭＦＰ(Multi Function Printer)機能があるディジタル複写機がある。その一例を図１０に示す。図１０に示す複写機ＭＦ１は、原稿上の画像を読み込むスキャナ１７，画像を用紙に書き込むプリンタ１８およびこれらの制御を行うプロセスコントローラ１９を含むエンジン２０を有し、プロセスコントローラ１９は、複写機のシステム制御および画像処理制御を行うシステムコントローラ１０と、ＰＣＩバス等の汎用バスによって繋がっている。上述のデータ転送装置は例えば、システムコントローラ１０に装備することができる。
【０００５】
システムコントローラ１０には、ＡＳＩＣ(Application Specific IC)  ２，プログラムおよび画像データを蓄積し、また複写機各部の状態情報を保持するＲＡＭ３，ブート用プログラムおよびアプリケーションプログラムを格納したＲＯＭ４がある。ＡＳＩＣ２には、設定データ，登録データを保持するＮＶＲＡＭ５および主に書画情報を蓄積するＨＤＤ１１が接続されている。コントローラＡＳＩＣ  ２は、コントローラ１０，エンジン２０およびＩ／Ｏインターフェイス１４の間の画像データ，制御データ，同期信号などのやり取りを制御する伝送制御，メモリ３〜５およびＨＤＤ１１に対するデータの読み書き制御，テキストデータをイメージデータに変換するデータ変換、および、スキャナ１７が出力する読み取り画像データの、プリンタ１８の記録色画像データへの変換、等を行うものである。
【０００６】
複写機ＭＦ１のＩ／Ｏインターフェイス１４には、操作ボード９が接続した操作ボードＩ／Ｆ（インターフェイス）１５，ＵＳＢ Host I/F ６，ＳＤカードＩ／Ｆ８，パソコンあるいはネットワークが接続されるＭＡＣ１６およびファクシミリ通信回線に接続された回線Ｉ／Ｆ２１等がある。
【０００７】
システムコントローラ１０とＩ／Ｏインターフェイス１４を含むメインコントローラ部が、複合処理システム全般の制御すなわちシステム制御を行う。システムコントローラ１０のＣＰＵ１は、ＲＡＭ４は勿論、Ｉ／Ｏインターフェイス１４内の内部レジスタ等へのアクセスを容易に行える構成となっている。
【０００８】
ＵＳＢ Host I/F ６の、ＵＳＢケーブルコネクタがあるケーブル端子受け入れスロットには、外部記憶媒体の１つであるＵＳＢメモリ１２を挿入してＵＳＢ Host I/F ６に電気的に接続することができる。同様に、ＳＤカードＩ／Ｆ８の外部接続コネクタにＳＤカードを案内するカード挿入スロットには、外部記憶媒体のもう１つであるＳＤカード１３を挿入してＳＤカードＩ／Ｆ８に電気的に接続することができる。
【０００９】
システム制御手段であるＣＰＵ１は、ＲＯＭ４から読み出してＲＡＭ３に書き込んだプログラムならびにＵＳＢメモリ１２やＳＤカード１３から読み込みＲＡＭ３に書き込んだプログラムに基づいて、画像読み取り，印刷，複写，ファクシミリ送，受信，書画情報の蓄積，および外部に対する書画情報の送受信、を制御する。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、データ転送装置において、全てのファームウェアをＲＡＭ（例えばＲＡＭ３）上に転送するまでＣＰＵ（例えばＣＰＵ１）をリセット状態にしておくと、転送するファームウェア容量が大きければ大きいほど、ＣＰＵが稼動開始するまでの時間が長くなるため、システムの起動が遅くなるというデメリットがある。また、引用文献１には、ファームウェアのある１部分をＲＡＭに転送した後にＣＰＵのリセットを解除して、ＣＰＵが転送済部分のプログラムを実行しながら、残りの部分をＣＰＵでハードウエアを制御しながら転送するという方式も記載されている。しかし、最初にＲＡＭに転送したプログラムの中でＲＡＭの参照を行うようなことが行われた場合の動作保証ができていないこと、近年、電子機器に搭載するＲＡＭの容量も日々増加しており、一刻も早くＲＡＭの初期化処理の実行やＡＳＩＣ（例えばＡＳＩＣ２）等の初期化を行いたいが、全てのプログラムのＲＡＭへの転送完了後でないとＡＳＩＣの初期化やＲＡＭへのアクセスは行えない構造となっており、ファームウェアのＲＡＭへの転送とＣＰＵによる各種ブート時の初期化処理の並列化が行われていないため、高速化しきれていない。また、近年の、ＣＰＵと周辺回路を内蔵したＳｏＣ（System On Chip：チップ化又はモジュール化したシステム）や専用Chip Set（専用チップ又はモジュール）を使用したシステムでは適用できない。
【００１１】
上記のように先行技術では高速起動という観点でみるとまだまだ改善の余地が残されており、近年のように巨大なＯＳ(Operating System)を搭載している電子機器にとっては、その影響が顕著に現れてくる。
【００１２】
また、近年の半導体テクノロジーの進歩により、従来のＣＰＵ単体品での半導体の販売よりも、ＣＰＵ周辺回路やＵＳＢ(Universal Serial Bus)，ＬＡＮ(Local Area Network)，ＰＣＩ(Peripheral Component Interconnect)，ＰＣＩ Express等の各種標準規格に準拠したＩ／Ｏ（入，出力ポート），バスを搭載したＳｏＣとしての販売が多く、低コストで比較的性能の高く、開発期間も短縮した製品を開発するためには、このようなＳｏＣ品を採用したり、特別に高速なＣＰＵと、そのＣＰＵ専用の周辺Chip Setを核としたシステム構成とせざるを得ない。その場合には、ＣＰＵと専用Chip Setのリセットシーケンスは指定されている場合が多かったり、ＳｏＣとしてＣＰＵとメモリコントローラが内蔵されていることが多いので、特許文献１に記載されているような技術を適用するような自由度はなく、外部調達したＳｏＣ，Chip Setを活かしながら高速起動を実現する手段を検討する必要がある。
【００１３】
本発明は、上記のような課題を鑑みてなされたものであり、限られたリソース(resource)での高速起動，高速実行を達成することを第１の目的とする。また、近年の、周辺回路とＣＰＵを集積したＳｏＣや、特定Chip Setを使用せざるを得ないシステムであっても、高速起動，高速実行が可能なシステムを提供することを第２の目的とする。
【課題を解決するための手段】
【００１４】
本発明の実施態様の１つは、低コスト・高速動作を実現するためのデータ転送装置であり、高速動作のために、本データ転送装置を装備する電子機器のファームウェア（プログラム本体）の全部又は一部をＲＡＭ上にて実行する制御手段（ＣＰＵ）に加えて、ファームウェアが格納されている不揮発性メモリ（ＲＯＭ等）の一部又は全部のプログラムをシステム上に接続されている揮発性メモリ（ＲＡＭ）領域の一部に転送することが可能なプログラム転送手段を持ち、該プログラム転送手段に転送元のＲＯＭアドレス，転送元のプログラム容量，転送先のＲＡＭの先頭アドレスを設定することによって、ＲＯＭからＲＡＭへのプログラム転送動作中にＣＰＵからのＲＯＭのアクセスやＲＡＭへのアクセスを許容しあるいは調停する。ＣＰＵからの転送先のＲＡＭのアクセス領域への転送が完了していない場合にはＣＰＵをウェイト（Wait）させることにより、すなわち転送の完了を待たせることにより、限られたリソースでの高速起動，高速実行を達成する。そのために採用する手段は、次の通りである。
【００１５】
（１）第１記憶手段(3)に、第２記憶手段(4)に格納されているプログラムを転送して、第１記憶手段(3)に格納されているプログラムを制御手段(1)が実行するデータ転送方法であって、
前記制御手段(1)が第２記憶手段(4)からプログラムの読み出しを行っている最中に第２記憶手段(4)のプログラムを第１記憶手段(3)に転送するプログラム転送ステップ(102)を設け、
前記制御手段(1)からの第１記憶手段(3)への読み書きステップと前記プログラム転送ステップ(102)を調停するための第１調停ステップ(103)を設けた、ことを特徴とするデータ転送方法。
【００１６】
なお、理解を容易にするために括弧内には、図面に示し後述する実施例の対応又は相当要素もしくは対応，相当事項の記号を、例示として参考までに付記した。以下も同様である。
【発明の効果】
【００１７】
上記（１）によれば、第２記憶手段(4)への同時アクセスが可能となる。たとえば、ＲＡＭ(3)へのプログラム転送動作中にもＣＰＵ(1)からのＲＡＭアクセスを実行可能である。
【発明を実施するための最良の形態】
【００１８】
（２）第１記憶手段(3)に、第２記憶手段(4)に格納されているプログラムを転送して、第１記憶手段(3)に格納されているプログラムを制御手段(1)が実行するデータ転送方法であって、
前記制御手段(1)が第２記憶手段(4)からプログラムの読み出しを行っている最中に第２記憶手段(4)のプログラムを第１記憶手段(3)に転送するプログラム転送ステップ(102)を設け、
前記制御手段(1)からの第１記憶手段(3)への読み書きステップを保留するための第１調停ステップ(103)を設けた、ことを特徴とするデータ転送方法。
【００１９】
プログラムの転送先を開始アドレスからプログラム転送量分転送するという方式にすることにより、プログラム転送を完了したアドレスの管理が容易となり、全てのプログラムの転送が完了していなくても、必要なアドレスの転送が完了していれば、その部分のＲＡＭ(3)上のプログラムは実行可能とでき、ＣＰＵ(1)がアクセスしたアドレスが転送完了していない場合には転送が完了するまで保留すること、すなわちＣＰＵ(1)を待たせること、が可能となる。たとえば、ＲＡＭ(3)へのプログラム転送動作中にもＣＰＵ(1)からのＲＡＭ(3)アクセスを実行可能とした時に、あらかじめプログラムを転送する領域にプログラムの転送が完了する前にＣＰＵ(1)がアクセスした場合には、プログラムの転送が完了する瞬間まで、ＣＰＵ(1)からのＲＡＭ(3)アクセスを保留できる。
【００２０】
（３）第１記憶手段(3)に、第２記憶手段(4)に格納されているプログラムを転送して、第１記憶手段(3)に格納されているプログラムを制御手段(1)が実行するデータ転送方法であって、
前記制御手段(1)が第２記憶手段(4)からプログラムの読み出しを行っている最中に第２記憶手段(4)のプログラムを第１記憶手段(3)に転送するプログラム転送ステップ(102)による第２記憶手段(4)の読み取りを調停するための第２調停ステップ(104)と、
前記制御手段(1)からの第１記憶手段(3)への読み書きと前記プログラム転送ステップ(102)からの第１記憶手段(3)への書き込みを調停するための第１調停ステップ(103)を設けた、ことを特徴とするデータ転送方法。
【００２１】
ＲＯＭ(4)からＲＡＭ(3)へのプログラム転送中にＣＰＵ(1)からのＲＯＭ(4)アクセスが不可能であると、転送完了までＣＰＵ(1)がコードフェッチ（命令コードの読み出し）ができず、ＡＳＩＣ(2)の初期化等の初期化処理が行えない。しかし本実施態様によれば、ＲＯＭ(4)の前段に第２調停手段(104)を設けることでプログラム転送動作中にもＣＰＵ(1)によるＲＯＭ(4)アクセスが可能となり、高速起動が行える。ブート処理のプログラムの実行が可能となる。
【００２２】
（４）第１記憶手段(3)に、第２記憶手段(4)に格納されているプログラムを転送して、第１記憶手段(3)に格納されているプログラムを制御手段(1)が実行するデータ転送方法であって、
前記制御手段(1)が第２記憶手段(4)からプログラムの読み出しを行っている最中に第２記憶手段(4)のプログラムを第１記憶手段(3)に転送するプログラム転送ステップ(102)による第２記憶手段(4)の読み取りを調停するための第２調停ステップ(104)と、
前記制御手段(1)からの第１記憶手段(3)への読み書きを保留するための第１調停ステップ(103)を設けた、ことを特徴とするデータ転送方法。
【００２３】
プログラムの転送先を、開始アドレスからプログラム転送量分とする方式にすることにより、プログラム転送を完了したアドレスの管理が容易となり、全てのプログラム転送が完了していなくても、第２記憶手段(4)上の必要なアドレスの転送が完了していれば、その部分のＲＡＭ(3)上のプログラムは実行可能とでき、ＣＰＵ(1)がＲＡＭ(3)にアクセスしたアドレスに転送完了していない場合には転送が完了するまで保留することが可能となる。たとえば、ＲＯＭ(4)からのプログラム転送動作中にもＣＰＵ(1)からのＲＡＭ(3)アクセスやＲＯＭ(4)アクセスを実行可能とした時に、あらかじめプログラムを転送する領域にプログラムの転送が完了する前にＣＰＵ(1)がアクセスした場合には、プログラムの転送が完了する瞬間まで、ＣＰＵ(1)からのＲＡＭ(3)アクセスを保留できる。
【００２４】
（５）第２記憶手段に格納され第１記憶手段に転送するプログラムは複数区分であり、前記プログラム転送ステップは、各区分を、前記制御手段がプログラムを実行する順番と同じ順番で第１記憶手段に転送する複数のプログラム転送ステップを含む、上記（１）乃至（４）のいずれか１つに記載のデータ転送方法。
【００２５】
複数の領域づつの第２記憶手段(4)−＞第１記憶手段(3)への転送動作中に各分割された領域内での転送動作の完了，未完了による制御手段(1)  Waitまたはアクセス許可の判断が可能となる。この構成の場合、今、プログラム転送動作をしていない領域に関しては転送が完了しているのか、否か判断が行えないが、第２記憶手段(4)から第１記憶手段(3)へ転送する順番自体が、第１記憶手段(3)のプログラムを実行（ＲＡＭ実行）する順番なので、そもそもプログラム転送をしていない領域へのアクセスが生じることはないはずであり、問題とはならない。
【００２６】
（６）第１記憶手段(3)に、第２記憶手段(4)に格納されているプログラムを転送して、第１記憶手段(3)に格納されているプログラムを制御手段(1)が実行するデータ転送装置であって、
前記制御手段(1)が第２記憶手段(4)からプログラムの読み出しを行っている最中に第２記憶手段(4)のプログラムを第１記憶手段(3)に転送するプログラム転送手段(102)と、
前記制御手段(1)からの第１記憶手段(3)への読み書きと前記プログラム転送手段(102)からの第１記憶手段(3)への書き込みを調停するための第１調停手段(103)、
を設けたことを特徴とするデータ転送装置。
【００２７】
これによれば、プログラム転送手段(102)とＣＰＵ(1)からのアクセスを調停する第１調停手段(103)を設けることで、第２記憶手段(4)への同時アクセスが可能となる。たとえば、ＲＡＭ(3)へのプログラム転送動作中にもＣＰＵ(1)からのＲＡＭ(3)アクセスが実行可能である。
【００２８】
（７）第１記憶手段(3)に、第２記憶手段(4)に格納されているプログラムを転送して、第１記憶手段(3)に格納されているプログラムを制御手段(1)が実行するデータ転送装置であって、
前記制御手段(1)が第２記憶手段(4)からプログラムの読み出しを行っている最中に第２記憶手段(4)のプログラムを第１記憶手段(3)に転送するプログラム転送手段(102)と、
前記制御手段(1)からの第１記憶手段(3)への読み書きを保留するための第１調停手段(103)、を設けたことを特徴とするデータ転送装置。
【００２９】
プログラムの転送先に、開始アドレスからプログラム転送量分転送するという方式にすることにより、プログラム転送を完了したアドレスの管理が容易となり、全てのプログラム転送が完了していなくても、必要なアドレスの転送が完了していれば、その部分のＲＡＭ(3)上のプログラムは実行可能とでき、ＣＰＵ(1)がアクセスしたアドレスが転送完了していない場合には転送が完了するまで保留することが可能となる。これにより、例えばＲＡＭ(3)へのプログラム転送動作中にもＣＰＵ(1)からのＲＡＭ(3)アクセスを実行可能とした時に、あらかじめプログラムを転送する領域にプログラムの転送が完了する前に、ＣＰＵ(1)がＲＡＭ(3)にアクセスした場合には、プログラムの転送が完了する瞬間まで、ＣＰＵ(1)のＲＡＭ(3)へのアクセスを保留できる。
【００３０】
（８）第１記憶手段(3)に、第２記憶手段(4)に格納されているプログラムを転送して、第１記憶手段(3)に格納されているプログラムを制御手段(1)が実行するデータ転送装置であって、
前記制御手段(1)が第２記憶手段(4)からプログラムの読み出しを行っている最中に第２記憶手段(4)のプログラムを第１記憶手段(3)に転送するプログラム転送手段(103)と、
該プログラム転送手段(102)による第２記憶手段(4)の読み出しを調停するための第２調停手段(104)と、
前記制御手段(1)からの第１記憶手段(3)への読み書きと前記プログラム転送手段(102)からの第１記憶手段(3)への書き込みを調停するための第１調停手段(103)を設けたことを特徴とするデータ転送装置。
【００３１】
仮に、ＲＯＭ(4)からのプログラム転送中にＣＰＵ(1)からのＲＯＭ(4)アクセスが不可能であると、転送完了までＣＰＵ(1)がコードフェッチできず、ＡＳＩＣ(2)の初期化等の初期化処理が行えないが、本実施態様によれば、ＲＯＭ(4)の前段に第２調停手段(104)を設けることでプログラム転送動作中にもＣＰＵ(1)によるＲＯＭ(4)アクセスが可能となり、高速起動が行える。ブート処理のプログラムの実行が可能となる。
【００３２】
（９）第１記憶手段(3)に、第２記憶手段(4)に格納されているプログラムを転送して、第１記憶手段(3)に格納されているプログラムを制御手段(1)が実行するデータ転送装置であって、
前記制御手段(1)が第２記憶手段(4)からプログラムの読み出しを行っている最中に第２記憶手段(4)のプログラムを第１記憶手段(3)に転送するプログラム転送手段(102)と、
該プログラム転送手段(102)による第２記憶手段(4)の読み出しを調停するための第２調停手段(104)と、
前記制御手段(1)からの第１記憶手段(3)への読み書きを保留するための第１調停手段(103)を設けたことを特徴とするデータ転送装置。
【００３３】
プログラムの転送先に開始アドレスからプログラム転送量分転送するという方式にすることにより、プログラム転送を完了したアドレスの管理が容易となり、全てのプログラム転送が完了していなくても、必要なアドレスの転送が完了していれば、その部分のＲＡＭ(3)上のプログラムは実行可能とでき、ＣＰＵ(1)がアクセスしたアドレスが転送完了していない場合には転送が完了するまで保留することが可能となる。たとえば、ＲＯＭ(4)からＲＡＭ(3)へのプログラム転送動作中にもＣＰＵ(1)からのＲＡＭ(3)アクセスやＲＯＭ(4)アクセスを実行可能とした時に、あらかじめプログラムを転送する領域にプログラムの転送が完了する前にＣＰＵ(1)がＲＡＭ(3)にアクセスした場合には、プログラムの転送が完了する瞬間まで、ＣＰＵ(1)のＲＡＭ(3)アクセスを保留できる。
【００３４】
（１０）前記プログラム転送手段(102)は、第２記憶手段(4)の転送元開始アドレス及び第１記憶手段(3)への転送先開始アドレスを入力情報とし、前記転送元開始アドレスのプログラムを前記転送先開始アドレスに転送し、第１調停手段(103)からの転送完了信号によって転送を終了する、ことを特徴とする上記（６）乃至（９）のいずれか１つに記載のデータ転送装置。
【００３５】
転送先開始アドレス，転送元開始アドレス，転送するプログラム量は管理しなければいけない項目ではあるが、プログラム転送手段(102)，第１調停手段(103)の双方で同じものを管理していると不具合の混入の原因になったり、配線の混雑度が上がったり、回路規模が大きくなったりして消費電力が増大し、コストが上昇する方向となってしまう。本実施態様によれば、転送先開始アドレス，転送元開始アドレス，転送するプログラム量を管理する箇所を最低限とすることが可能となり、低消費電力，低コストの製品を開発するこが可能となる。
【００３６】
（１１）第２調停手段(104)は、前記制御手段(1)からの読み書きと前記プログラム転送手段(102)からの読み出しを調停する、ことを特徴とする上記（８）又は（９）に記載のデータ転送装置。
【００３７】
第２記憶手段(4)の前段に第２調停手段(104)を設けることにより、ＣＰＵ(1)からの記憶手段(4)へのアクセスとプログラム転送手段(102)からの記憶手段(4)への同時アクセスが可能となる。たとえば、ＲＡＭ(3)にアクセスして実行するプログラムと、ＣＰＵ(1)が実行するブートプログラムが同一の記憶手段(4)に格納されている場合に、ＣＰＵ(1)から該記憶手段(4)へのアクセスとプログラム転送手段(102)からの該記憶手段(4)への同時アクセスが可能となる。
【００３８】
（１２）第１調停手段(103)は、前記制御手段(1)が、前記プログラム転送手段(102)から供給された転送完了アドレスから前記転送先開始アドレスと転送するプログラム量に基づく転送最終アドレスの範囲内に読み書きしようとしたときには、前記制御手段(1)の読み書きを保留する、ことを特徴とする上記（６）乃至（９）のいずれか１つに記載のデータ転送装置。
【００３９】
第１調停手段(103)内にアドレス比較回路を設け、ＣＰＵ(1)がアクセスしているアドレスと現時点でプログラムの転送が完了しているＲＡＭ(3)上のアドレスを比較することにより、ＣＰＵ(1)が要求しているアドレスがプログラムの転送が完了しているアドレスでなかった場合に、ＣＰＵ(1)のアクセスを待たせることが可能となる。すなわち、ＣＰＵ(1)が、実行したいプログラムの転送が完了していないＲＡＭ(3)上アドレスにアクセスを行った場合には、ＣＰＵのアクセスのみを待たせることができる。
【００４０】
（１３）第１調停手段(103)は、前記転送最終アドレスと前記転送完了アドレスを比較することにより、前記転送完了アドレスが前記転送最終アドレスと同じまたは前記転送最終アドレスを超えた時点で、プログラム転送完了信号を発生する、ことを特徴とする上記（６）乃至（９）のいずれか１つに記載のデータ転送装置。
【００４１】
ＤＲＡＭへのデータ転送では決まったバースト長のデータ転送を行う必要があるが、プログラム転送手段(102)はＤＲＡＭのバースト長を管理していないため、どこまでデータ転送すれば、その先のデータ転送を止めて良いのか判断できない。本実施態様によれば、第１調停手段(103)にて、今まさに転送を完了した転送完了アドレスと、転送したいプログラムの転送量から得られる転送終了アドレスとを比較し、等しいまたは上回った段階で、ＤＲＡＭのバースト長が丁度良いタイミングでデータ転送を停止することが可能となる。
【００４２】
（１４）第２記憶手段(4)に格納され第１記憶手段(3)に転送するプログラムは複数区分であり、前記プログラム転送手段(102)は、各区分を、前記制御手段(1)がプログラムを実行する順番と同じ順番で第１記憶手段(3)に転送する、上記（６）乃至（１３）のいずれか１つに記載のデータ転送装置。
【００４３】
複数の領域づつの第２記憶手段(4)−＞第１記憶手段(3)への転送動作中に各分割された領域内での転送動作の完了，未完了による制御手段(1)  Waitまたはアクセス許可の判断が可能となる。この構成の場合、今、プログラム転送動作をしていない領域に関しては転送が完了しているのか、否か判断が行えないが、第２記憶手段(4)から第１記憶手段(3)へ転送する順番自体が、第１記憶手段(3)のプログラムを実行（ＲＡＭ実行）する順番なので、そもそもプログラム転送をしていない領域へのアクセスが生じることはないはずであり、問題とはならない。
【００４４】
（１５）上記（６）乃至（１４）のいずれか１つに記載のデータ転送装置を備える電子機器。ＣＰＵ(1)，ＲＡＭ(3)，ＲＯＭ(4)を搭載した全ての電子機器において、上記（６）乃至（１４）に記述の効果を期待できる。
【００４５】
（１６）外部記憶媒体のプログラムを読み込む外部データ読み込み手段(6,8)を設け、前記プログラム転送手段(102)は前記外部記憶媒体のプログラムを第１記憶媒体(3)に転送する、上記（１５）に記載の電子機器。
【００４６】
（１７）作像手段(18)；外部と通信する通信手段(14)；および、上記（６）乃至（１４）のいずれか１つに記載のデータ転送装置を備えて該データ転送装置が第２記憶手段(4)から第１記憶手段(3)に転送した、第１記憶手段(3)のプログラムに基づいて、前記通信手段(14)を制御して印刷情報を受信し前記作像手段(18)を制御して印刷するシステムコントローラ(10)；を備える画像形成装置。
【００４７】
（１８）画像読み取り手段(17)；作像手段(18)；および、上記（６）乃至（１４）のいずれか１つに記載のデータ転送装置を備えて該データ転送装置が第２記憶手段(4)から第１記憶手段(3)に転送した、第１記憶手段(3)のプログラムに基づいて、前記画像読み取り手段(17)を制御して読み取った画像を前記作像手段(18)を制御して印刷するシステムコントローラ(10)；を備える画像形成装置。
【００４８】
（１９）画像読み取り手段(17)；作像手段(18)；外部と通信する通信手段(14)；および、上記（６）乃至（１４）のいずれか１つに記載のデータ転送装置を備えて該データ転送装置が第２記憶手段(4)から第１記憶手段(3)に転送した、第１記憶手段(3)のプログラムに基づいて、前記画像読み取り手段(17)を制御して読み取った画像を前記作像手段(18)を制御して印刷し、前記通信手段(14)を制御して印刷情報を受信し前記作像手段(18)を制御して印刷するシステムコントローラ(10)；を備える画像形成装置。
【００４９】
（２０）外部記憶媒体のプログラムを読み込む外部データ読み込み手段(6,8)を設け、前記プログラム転送手段(102)は前記外部記憶媒体のプログラムを第１記憶媒体(3)に転送する、上記（１７）乃至（１９）のいずれか１つに記載の画像形成装置。
【００５０】
本発明の他の目的および特徴は、図面を参照した以下の実施例の説明より明らかになろう。
【実施例１】
【００５１】
図１に、本発明の第１実施例のデータ転送装置を示す。このデータ転送装置は、図１１に示すシステムコントローラ１０の一部をなすものである。システムコントローラ１０の他部すなわちデータ転送装置以外の部分（例えばASIC  ２内の、書画情報処理，転送部）の図示は、図１においては省略している。
【００５２】
このデータ転送装置は、汎用のChip Setを使用せず、ＣＰＵ１を内蔵したＡＳＩＣ  １０１、又は、ＣＰＵ１は外付けとなっているＡＳＩＣ  ２を用いるものである。本実施例では、図１中のＲＡＭ３が第１記憶手段に、ＲＯＭ４が第２記憶手段に、ＲＡＭ調停１０３が第１調停手段に、ＲＯＭ調停１０４が第２調停手段に、ＣＰＵ１が制御手段に相当している。メモリコントローラ１０５，ＲＯＭコントローラ１０６が図示されているが、メモリコントローラ１０５，ＲＯＭコントローラ１０６が必ずしも必要な訳ではない。
【００５３】
ブートプログラムやＯＳ，デバイスドライバ，各種アプリケーション等の当該システムに必要なプログラムは通常ＲＯＭ４等の不揮発性記憶装置に格納されている。但し、全てのプログラムがこのＲＯＭ４に格納されている必要はなく、ブートプログラム部分及び、ＲＯＭ４からＲＡＭ３へのプログラムの転送が完了する前にＣＰＵ１にて実行しておきたい部分のプログラムだけＲＭ４に格納され、ＯＳ，デバイスドライバ，各種アプリケーション等はＵＳＢメモリ１２，ＳＤカード１３（図１０），ＣＤ−ＲＯＭなどの外部記憶媒体に格納している形式でもよい。
【００５４】
説明の容易化のため、以下すべてのプログラムはＲＯＭ４に格納されており、その内のブートプログラム部分（各種ＡＳＩＣ等の初期化）以外はＲＡＭ３に転送してからＲＡＭ３上にて実行するシステムを想定して説明する。ＲＯＭコントローラ１０６の前段には、ＣＰＵ１からのブートプログラムリード要求とプログラムコピー１０２からのブートプログラム以外のプログラムリード要求を調停するＲＯＭ調停１０４が用意されている。説明の容易化のため、ＲＯＭアクセスについてはＣＰＵ１，プログラム転送手段であるプログラムコピー１０２ともにリードアクセスに限定しているが、ＲＯＭ調停１０４としてはライトアクセスの調停も当然可能である。通常ＣＰＵ１はリセット解除後にブートベクタにジャンプし、そのブートベクタはブートプログラムが格納されているＲＯＭ４のアドレスを指している。
【００５５】
よって、ＲＯＭ調停１０４はＣＰＵ１からのブートプログラムリード要求を受けてＲＯＭ４からブートプログラムをリードしてＣＰＵ１に転送しながら、プログラムコピー１０２にてＲＡＭ上に転送したいＲＡＭ実行部分のプログラムのリード要求がきたら、プログラムコピー１０２が要求しているプログラムも同時にプログラムコピー１０２に転送する機能をもつ。
【００５６】
ここでいう同時とは、時間０という同時ではなく、時間０でＣＰＵ１とプログラムコピー１０２の両方からのリードアクセスが発生した場合に調停しながら、要求しているＲＯＭ４上のデータを転送するという意味である。
【００５７】
ここでいう調停とは、ＣＰＵ１からのアクセス要求とプログラムコピー１０２が同時に発生した場合には、どちらか一方のアクセスを行い、もう一方はそのアクセスが完了するまで待ち状態とし、そのアクセスが完了したら、待ち状態とされていた方のアクセスを実施するというものである。
【００５８】
通常、ＣＰＵ１にはＣＰＵバスがあり、該ＣＰＵバスを介して周辺装置と接続されている。図１ではＣＰＵ１が外付けの場合を考慮し、ＣＰＵバスはアドレスとデータが時分割多重で転送されるMultiplexタイプを意識しているが、ＣＰＵ１を内蔵したＳｏＣ等では、アドレスバスとデータバスが分割されていることが一般的である。説明の容易化のため、ＣＰＵバスやその他のバスはMultiplexタイプを想定するが、Multiplexタイプである必然性はない。
【００５９】
ＲＯＭ調停１０４とＲＡＭ調停１０３の間にプログラムコピー１０２が用意されている。このプログラムコピー１０２は、リセット解除後（ＣＰＵ１のブートプログラム実行と同時のタイミング）から、外部より供給されているＲＡＭ３に転送したいプログラムが格納されているＲＯＭ４上のアドレスを示す転送元アドレスと、転送したいプログラムを格納したいＲＡＭ３上のアドレスを示す転送先アドレス情報を元に、ＲＯＭ調停１０４へ転送元アドレスを開始アドレスとしたリード要求を発生させる。ＲＯＭ調停１０４から要求した転送元アドレスのデータが転送されてきたら、ＲＡＭ調停１０３に対し、転送先アドレスを開始アドレスとして転送したいプログラムのデータ転送を行う。
【００６０】
説明の容易化のために、ＲＯＭ調停１０４からデータを受けたら、即、ＲＡＭ調停１０３へのライト要求を行っているが、通常、パフォーマンス向上のためにメモリコントローラ１０５は、メモリ３に対しバーストアクセスを行うので、バースト転送サイズ分のデータが確保できてから、ＲＡＭ調停１０３へのライト要求を行うことになる。また、プログラムコピー１０２は、ＲＡＭ調停１０３へのその時のライトデータ転送が完了した時点で、ＲＡＭ調停１０３内の、転送完了判定手段であるコピー完了判定１０３ｃに対し、今転送を完了したＲＡＭ３上のアドレスを示す転送完了アドレスを渡す。
【００６１】
転送完了アドレスはＲＡＭ３上のアドレスを示しており、転送先アドレスを転送したデータ量分増加させることで計算している。この計算処理はプログラムコピー１０２内にて行う。プログラムコピー１０２は、実際に転送するプログラムの容量（サイズ）については意識していない。転送元アドレスから転送するプログラムを読んで、転送先アドレスに転送するという動作を、ＲＡＭ調停１０３の、転送完了判定手段であるコピー完了判定１０３ｃからの転送完了信号がActive（有意レベル；転送完了を示すレベル）になるまで繰り返す。
【００６２】
ＲＡＭ調停１０３の転送完了判定手段からの転送完了信号がActiveになったら、プログラムコピー１０２は、ＲＯＭ調停１０４へのリード要求を速やかに停止し、プログラムコピー１０２内に残っていて、まだＲＡＭ調停１０３へ転送していない部分のデータ（プログラム）の転送は行わない。但し、転送完了信号がActiveになっている瞬間にＲＡＭ調停１０３に対してデータ転送をしていた場合には、そのデータ転送が完了するまでのデータ転送は行う。
【００６３】
通常、ＲＡＭ調停１０３へのデータ転送はバースト転送となるため、例えば６４byteのバースト転送の１６byte転送完了時に、転送完了信号がActiveになったからといって、その瞬間にデータ転送を中止してしまうと、調停回路１０３ｂ，メモリコントローラ１０５共に続きのデータ転送を待った状態でHang Up（停止）してしまうので、６４byteのバースト転送要求を出している場合には、例え転送完了信号がActiveになっていても、６４byteのバースト転送が完了する時点までデータ転送を行い、そのデータ転送が終わった時点で、次のデータ転送は行わなくなる。また、このことはＲＯＭ調停１０４へのアクセスにも適用される。つまり、６４byteのデータ転送を完了させるために、更なるＲＯＭからのデータ転送が必要である場合には、転送完了信号がActiveになっていたとしても新たなＲＯＭリード要求をＲＯＭ調停１０４に対して発行することがある。
【００６４】
メモリコントローラ１０５の前段にＲＡＭ調停１０３を用意している。ＲＡＭ調停１０３の主な機能は、ＣＰＵ１からのＲＡＭアクセス，ＲＡＭ３の特定アドレス等をZero Fill（データゼロの書込み；クリア）したり任意のデータを埋めるようなＲＡＭ初期化回路からのＤＭＡ（Direct Memory Access）要求や、ＵＳＢ，Ethernet（登録商標）やＰＣＩからのＤＭＡアクセス要求等を調停することにある。ＤＭＡ要求の種類としては前記記載したものは一例であって、これが全てではないし、これらを含んでいないといけないわけではない。ＣＰＵ１からのアクセスと他の回路からのアクセスを調停するという意味である。
【００６５】
本発明では、上記機能に追加で、プログラムコピー１０２からのメモリライト要求の調停がＲＡＭ調停１０３に追加され、ＲＡＭ調停１０３の前段には、アドレス比較手段であるアドレス比較１０３ａがある。アドレス比較１０３ａには、ＲＡＭアクセスを要求するリソース毎にアドレス比較が用意されている。但し、プログラムコピー１０２からの要求にはアドレス比較は必要ない。
【００６６】
アドレス比較１０３ａは、ＣＰＵ１及び他の各種ＤＭＡＣからのＲＡＭアクセス時のアドレスが現時点での転送完了アドレスから転送最終アドレス（プログラムの転送完了と判断できる、プログラムの最終格納アドレス）の間に入っていないか調査し、その範囲外のアドレスへのアクセスであればＲＡＭ調停１０３へアクセス要求を与える。しかしながら、ＣＰＵ１や各種ＤＭＡＣがアクセスしようとしているアドレスが、現時点での転送完了アドレスから転送最終アドレスの間であれば、そのリソースからのアクセスをＲＡＭ調停１０３には出さずに、そのリソースからのアクセスはWaitとする。
【００６７】
ただし、転送完了アドレスは刻々と変化して増加してくるので、そのリソースが要求しているアドレスを転送完了アドレスが超えた時点で、ＲＡＭ調停１０３にリクエストを発行する。このアドレス比較回路を、ＣＰＵ１  ＋  各ＤＭＡＣの数、の分用意することによって、いずれか一つのリソースからのＲＡＭアクセス要求がWait状態となったとしても、他のリソースからのアクセスが、転送完了アドレスから転送最終アドレスの間でなければＲＡＭアクセスは許可し、全てのリソースのＲＡＭアクセスがWaitにされる状態を防ぐことが可能である。
【００６８】
アドレス比較１０３ａは、転送完了判定手段であるコピー完了判定１０３ｃの転送完了信号がActiveになったら、現時点でWaitにしているＲＡＭアクセス要求のWaitを解除し、それ以降発生する各リソースからのＲＡＭアクセス要求発生時には、要求しているアドレスの比較は行わない。
【００６９】
次に、コピー完了判定１０３ｃは、転送先アドレスと転送するプログラム量から転送終了アドレスを計算し、転送終了アドレスをアドレス比較１０３ａに通知する。ここで計算された転送終了アドレスと現時点での転送完了アドレスを常に比較し、転送完了アドレス＞＝転送終了アドレスとなった時点で、転送完了信号をアサートし、プログラムコピー１０２，アドレス比較１０３ａに通知する。転送完了信号がActiveになった時のプログラムコピー１０２の動作については前述の通りである。
【実施例２】
【００７０】
図２に、図１のＳｏＣ  １０１を、１chip  ＳｏＣとした場合の構成について記載する。ＲＡＭ調停１０３，プログラムコピー１０２，ＲＯＭ調停１０４の機能や接続の詳細については、図１及びその際の説明と同じなので割愛する。ＣＰＵ１を内蔵したＳｏＣ  １０１の内部に、プログラムコピー１０２，第１調停１０３，メモリコントローラ１０５、第２調停１０４，ＲＯＭコントローラ１０６を内蔵し、外部に第１記憶手段として、ＳＤＲＡＭ，ＤＤＲ  ＳＤＲＡＭ，  ＤＤＲ２  ＳＤＲＡＭ等のＤＲＡＭであるＲＡＭ４、および、第２記憶手段として、Ｆｌａｓｈ  ＲＯＭ等のＲＯＭ４が接続される。ＲＯＭ４とＲＯＭコントローラ１０６を接続するバスは、そのChip固有のLocalバスであったり、ＰＣＩであったり、ＵＳＢであったり、ＲＯＭ４の前段にそのバス用のChipが接続されることもある。
【実施例３】
【００７１】
図３に、ＣＰＵ１＋周辺回路内蔵ＳｏＣ（ＡＳＩＣ）１０７に対して本発明を適用する際の構成について示す。構成の詳細の細かな部分の各手段の機能については、図１に示すものと基本的に同じなので、異なる部分の構成について説明する。この場合、市販のＣＰＵ１＋メモリコントローラ１０５＋ＲＯＭコントローラ１０６を搭載したＳｏＣ  １０７を採用したシステムを想定している。プログラムコピー１０２，ＲＯＭ調停１０４，ＲＡＭ調停１０３、メモリコントローラ１０５、ＲＯＭコントローラ１０６が内蔵されたＡＳＩＣまたはＦＰＧＡ(Field Programmable Gate Array)であるＳｏＣ  ２を外部に配置し、通常のシステムと比較して、外付けのＲＡＭ３（ＤＲＡＭ），外付けのＲＯＭ４の間に入るように配置する。
【００７２】
市販ＳｏＣ１０７にあるＣＰＵ１がＲＡＭ３にアクセスしてくる際には、メモリコントローラ１０５がＲＡＭ３にアクセスするプロトコル，タイミングでアクセスしてくるので、ＲＡＭ調停１０３は、あたかもＲＡＭ３のように振舞う必要があることが、図２の第２実施例と異なる。システムとしてみた時に無駄と見えるかもしれないが、外付けのＡＳＩＣ  ｏｒ  ＦＰＧＡ  ２からのＲＡＭ３（ＤＲＡＭ）へのアクセスを可能とするために外付けＡＳＩＣ  ２のＲＡＭ調停１０３の後段には、メモリコントローラ１０５が用意されている。
【００７３】
ＲＡＭ３をＳＤＲＡＭとした場合、ＳＤＲＡＭのアクセスはCAS latency(Column Address Strobe Latency)が決まっており、決まったタイミングまでにデータを準備する必要がある。そこで、市販ＳｏＣ１０７側のメモリコントローラ１０８のCAS Latencyは、外付けＡＳＩＣ又はＦＰＧＡ  ２のメモリコントローラ１０５に設定しているCAS latencyより大きくし、外付けＡＳＩＣ又はＦＰＧＡ  ２経由でのＳＤＲＡＭからのRead Dataが間に合うようなCAS Latencyとする。例えば、ＳｏＣ１０７  ＜−＞  ＡＳＩＣ２間がCAS Latency＝２．５，ＡＳＩＣ２＜−＞  ＳＤＲＡＭ３間はCAS Latency＝２、等とする。
【００７４】
外付けＡＳＩＣ又はＦＰＧＡ  ２の場合には、各種ＤＭＡＣのアクセスもＳｏＣ１０７内のメモリコントローラ１０８経由となるので、ＲＡＭ調停１０３は、ＳｏＣ１０７からのアクセスとプログラムコピー１０２の調停を行う構成となる。市販ＳｏＣ１０７上のＣＰＵ１がＲＯＭ４にアクセスする際には、ＲＯＭ４に対するプロトコル，タイミングでアクセスしてくるので、ＲＯＭ調停１０４は、あたかもＲＯＭ４のように振舞う必要があることが、図２の第２実施例とは異なる。
【００７５】
システムとしてみた時に無駄と見えるかもしれないが、外付けのＡＳＩＣ又はＦＰＧＡ  ２からのＲＯＭ４へのアクセスを可能とするために、外付けＡＳＩＣ  ２のＲＯＭ調停１０４の後段には、ＲＯＭコントローラ１０６が用意されている。ＲＯＭアクセスについてもタイミングが決まっており、ＣＰＵ１からのアクセスの際に間にＡＳＩＣ又はＦＰＧＡ  ２が入ることから、ＳｏＣ１０７＜−＞ＡＳＩＣ又はＦＰＧＡ  ２のタイミングは、ＡＳＩＣ又はＦＰＧＡ  ２＜−＞ＲＯＭ４のタイミングよりも遅いアクセスタイミングとする必要がある。
【００７６】
上記のようなＲＡＭアクセス，ＲＯＭアクセスのタイミング関係を設定することにより、ＳｏＣ１０７＜−＞ＲＡＭ３間、ＳｏＣ１０７＜−＞ＲＯＭ４間にＡＳＩＣ又はＦＰＧＡ  ２を仲介させても、正しくＲＯＭ４，ＲＡＭ３にアクセスでき、しかも高速起動，高速実行が行えるようなシステムとすることが可能となる。そして、ＲＡＭ３がＳＤＲＡＭ（ＤＤＲ，ＤＤＲ２も含む）の場合、ＲＡＭ３へのメモリライト，リード実行前には必ず動作モードを設定する必要がある。
【００７７】
外付けのＡＳＩＣ  ２は、ＣＰＵ１がブート完了する前にはＲＯＭ４からのＲＡＭ３へのプログラム転送動作を実施しているので、ＳＤＲＡＭ（ＲＡＭ３）への動作モード設定（モードレジスタ設定）は、外付けのＡＳＩＣ又はＦＰＧＡ  ２にてリセット解除後に行う。ＣＰＵ１がブートした後にＣＰＵ１はＳｏＣ１０７内のメモリコントローラ１０８用からモードレジスタ設定を実行するが、そのモードレジスタ設定はＲＡＭ調停１０３にて無視される。ＣＰＵ１がＳｏＣ１０７内のメモリコントローラ１０８であえてモードレジスタ設定を実行する理由は、モードレジスタ設定をＤＲＡＭ（ＲＡＭ３）の最初のアクセス前に行うことは必須であり、メモリコントローラ１０８はモードレジスタ設定を実行してからでないとリード，ライト動作が行えないようになっている構造になっていることが一般的だからである。ＳｏＣ１０７のメモリコントローラ１０８が発行したモードレジスタ設定コマンドを、外付けのＡＳＩＣ又はＦＰＧＡ  ２にて無視しなければいけない理由は、モードレジスタ設定コマンドを発行することによって、ＳＤＲＡＭ（ＲＡＭ３）がメモリ素子自体をクリアするＳＤＲＡＭであった場合に、その前にプログラムコピー１０２にてＲＯＭ４上からＲＡＭ３上へ転送したプログラムが消去されてしまうことを避けるためである。
【実施例４】
【００７８】
図４に、外付けＣＰＵ１と専用Chip Set  ２個１１０，１１１（メモリコントローラ１０８とＲＯＭコントローラ１０９を別々に搭載）で、ＢＩＯＳ(Basic Input/Output System：基本入出力システム)が搭載されているようなシステムへの本発明の一実施例を示す。この構成の違いとしてはＢＩＯＳがシステムに搭載されていることで、ＢＩＯＳが搭載されていることによる違いについて説明する。
【００７９】
通常の電子機器であればＢＩＯＳとブートコードは分離している必然性はないため、ＢＩＯＳ部分はブートコードに含まれ、同じＲＯＭ４に搭載するが、ある特定のＣＰＵを使用するシステムの場合に、そのＣＰＵの詳細仕様や周辺Chip Setの詳細仕様が開示されていないために自社でChip SetやＣＰＵの初期設定等を行うＢＩＯＳ部分の開発が行えないことがある。このような場合には、ＢＩＯＳ開発を専業としている会社に委託してＢＩＯＳを供給してもらうことで高性能なシステムを構築する方法が一般的である。
【００８０】
しかしながらＢＩＯＳが格納されているデバイスは、ＬＰＣ(Low Pin Count)  Ｉ／Ｆ(Inter Face)等のアクセス速度の遅いデバイスであることが多く、ＢＩＯＳ実行の後にブートコードの実行もあるので、起動時間がより遅くなる傾向になる。ＳＢ(South Bridge)と記載しているChip Set１１１には、ＲＯＭコントローラ１０９が搭載されているが、説明の容易化のためにＲＯＭコントローラとしているだけであり、ＲＯＭコントローラである必然性はない。例えばＰＣＩバス等の汎用バスであってもよい。ＰＣＩ  バスであればバスプロトコル的にWaitを入れることが可能なので、ＲＯＭ調停１０４は、ＲＯＭのような振る舞いではなく、ＰＣＩデバイスとしての振る舞いを行えばよい。その他の構成については、図３に示す第３実施例と同等であるので説明は割愛する。
【００８１】
次に、実施例の動作の詳細について説明する。説明の簡易化のために基本的には、図１の第１実施例の構成を前提とした説明をする。構成によって異なる部分がある場合には、追加して説明する。
【００８２】
図５に、プログラムコピー１０２の動作の概要を示し、図６にはＲＡＭ調停１０３の動作の概要を示す。以下の説明中の、ステップＳ１〜Ｓ７は図５上のもの、ステップＳ１１〜Ｓ２０は図６上のものである。まず、リセットが解除されると（Ｓ１）、プログラムコピー１０２は、転送先アドレス，転送元アドレス情報を元に、ＲＯＭ調停１０４に対し、ＲＡＭ３に転送したいプログラムのリード要求を発生させる（Ｓ２）。この転送先アドレス，転送元アドレス情報については、外部Ｐｉｎにより、リセット期間中に取得することを前提として説明するが、ＲＯＭ４上の特定アドレスにそれらの情報を格納しておいて、最初にまず、その情報を取得するという動作であっても良い。
【００８３】
リセット解除と同時にコピー完了判定１０３ｃは、転送完了信号をInactive状態（無意状態；転送完了を示さないレベル）に設定し、転送先アドレス，転送するプログラム量から転送最終アドレス情報を計算して、転送最終アドレス，転送完了信号をアドレス比較１０３ａに、転送完了信号をプログラムコピー１０２に、伝達する。並行して、ＣＰＵ１は、リセットベクターにジャンプし、ＲＯＭ調停１０４に対し、ブートコードのリード要求を発行する（Ｓ１１）。
【００８４】
図１ではＣＰＵ１のリセットベクターはＲＯＭ４上になるように設計されていることを前提としているが、図４のようにＢＩＯＳ部分がＲＯＭでなく、別のDevice（別のＲＯＭ）である場合には、ＢＩＯＳが搭載されているＲＯＭ等のDeviceへのアクセスが一番最初となる。この場合、ＢＩＯＳ部分のコード実行が終わってから、ＣＰＵ１はＲＯＭ４上のプログラム実行のためにＲＯＭ調停１０４へのリード要求を発行する。この時のＣＰＵ１からのリード要求とプログラムコピー１０２からのリード要求が同時に発生するが、どっちのアクセスを優先するかは実装に依存すればよい話であり、調停規定(Arbitration Policy)については言及しない。ただ、ＣＰＵ１からのＲＯＭアクセスとプログラムコピー１０２からのＲＯＭアクセスを同じように許可するように、ＲＯＭ調停１０４は調停規定(Arbitration Policy)を設定することにより、ブートコード実行をプログラムのＲＯＭ−＞ＲＡＭ転送の並列実行の効率化が最大限になる。
【００８５】
メモリコントローラ１０５は、ＳＤＲＡＭ  ４に対してモードレジスタ設定コマンドを発行する（Ｓ１２）。実際には、プリチャージコマンドやリフレッシュコマンドも必要であるが、本発明の主旨ではないので、説明は割愛する。モードレジスタ設定の前に各ＤＲＡＭが要求しているプリチャージコマンドやリフレッシュコマンドも当然発行しているものとする。本説明ではモードレジスタ設定は、メモリコントローラ１０５で実施するとしているが、ＲＡＭ調停１０３がきっかけとなるコマンドをメモリコントローラ１０５に発行し、そのコマンドを受けてメモリコントローラ１０５がモードレジスタ設定を行うという方式でも良い。
【００８６】
次にプログラムコピー１０２は、メモリコントローラ１０５に転送できるサイズ分のデータが揃うまで、ＲＯＭ調停１０４へのリード要求を繰り返す（Ｓ２，Ｓ３）。この間にもＣＰＵ１は、ＢＩＯＳまたはＲＯＭ上のブートプログラムを実行中である。そして、プログラムコピー１０２は、メモリコントローラ１０５に転送できるサイズ分のデータが準備できた時点でＲＡＭ制御手段に対してメモリライト要求を発行する（Ｓ４）。通常、ＤＲＡＭの性能を活かす為にはバースト転送を使用するので、以上のように複数回ＲＯＭ４からのデータをリードしてから、ＲＡＭ調停１０３へのデータ転送を行っているが、ＲＯＭ４からのデータが一度に大量に読めたり、ＲＡＭ調停１０３へバーストアクセスしない場合には、ＲＯＭ４からデータが読めた時点でＲＡＭ調停１０３へのデータ転送を行っても良いし、ＲＯＭ４から全てのデータを読み終わるタイミングが決まっているのであれば、全てのデータを読みきる前に、ＲＡＭ調停１０３へのデータ転送を開始しても良い。プログラムコピー１０２は、ＲＡＭ調停１０３へのデータ転送が完了すると転送完了アドレスを更新する。転送完了信号がActiveになるまでプログラムコピー１０２は上記動作を繰り返す（Ｓ２〜Ｓ５）。
【００８７】
次にＲＡＭ調停１０３はＲＡＭアクセス要求が発生していないか常にモニターしており、ＣＰＵ１，各ＤＭＡＣまたはプログラムコピー１０２からのメモリアクセス要求が発生した場合には、どのリソースからのアクセス要求なのか判断し、その判断結果により、その後の処理が異なる。メモリアクセス要求元がＣＰＵ１または各ＤＭＡＣのどれかの場合、ＲＡＭ調停１０３内のアドレス比較１０３ａにてアクセス要求がでているアドレスについて許可可能か否かの判断を行う（Ｓ１３〜Ｓ１６）。
【００８８】
要求しているアドレスがプログラムの転送結果を格納する範囲内で、プログラムがまだ転送できていない場合には、そのリソースからのアクセスを待たせることになる（Ｓ１６）。各リソースからのアクセス要求があった時に許可応答しないことで、要求元リソースからのデータ転送を待たせることができるフロー制御方式を採用していることが前提となる。このアドレス比較をＣＰＵ１と各ＤＭＡＣの数分用意することによって、いずれかのリソースがWait状態となっても他のリソースからのメモリアクセスは行えるような構造としている。
【００８９】
Wait状態となった時には、アドレス比較１０３ａは、適宜更新される転送完了アドレスとアクセス要求のでているアドレスを常に比較し（Ｓ１５）、アクセス要求のでているアドレス＜＝転送完了アドレスとなった時点で、アクセス許可状態として後段の調停回路１０３ｂにメモリアクセス要求を発行する。アクセス要求がプログラムコピー１０２であった場合には、アドレス比較１０３ａは経由せずに直ぐに調停回路１０３ｂへのメモリアクセス要求を発行する（Ｓ１７）。メモリアクセスが完了したら、転送完了アドレスと転送終了アドレスを比較し、転送完了アドレス＞＝転送終了アドレスとなったら、転送完了信号をActiveにする（Ｓ１９，Ｓ２０）。そうでない時は次のアクセス要求を待つ（Ｓ１３）。ＲＡＭ調停１０３中の調停回路１０３ｂには、ＣＰＵ１，各ＤＭＡＣ，プログラムコピー１０２からのアクセス要求が同時に発生することもあるが、調停回路１０３ｂにより、適宜調停され、滞りなく、全てのリソースからのアクセスが可能な調停規定を設定している。
【００９０】
このようにプログラム転送動作中であっても、ＣＰＵ１または各種ＤＭＡＣによるメモリアクセスが可能であるので、プログラムがＲＡＭ実行に移る前に、ＲＡＭ３の初期化やＲＡＭ３の検査等の時間のかかる処理を早いタイミングで実行することが可能なる。
【００９１】
上記動作を繰り返し、転送信号がActiveになると、プログラムコピー１０２は、ＲＯＭリード要求を出していたとしても、メモリライト要求を出していたとしても、そのデータ転送が完了した時点で、一切の動作を停止する（Ｓ７）。この様子を図７の（ａ）および（ｂ）に示す。転送完了信号がActiveになると、それ以降に発生するＣＰＵ１や各種ＤＭＡＣからのメモリアクセスの際にアドレス比較１０３ａはアドレスの比較を一切行わない。
【００９２】
上記のような動作をしている間もＣＰＵ１はＢＩＯＳ又はブートコードを実行しており、ブートコードの実行が終わってから、ＲＡＭ実行に移ることが可能である。従来技術の場合、ＲＡＭ実行に移るためには、全てのプログラムがＲＡＭ上に展開された後でないと不可能であったが、本発明では、ＲＯＭ実行部分のブートコードの実行が終了さえしていれば、ＲＡＭ実行部分のプログラムの１部でも転送完了していればＲＡＭ実行可能である。これにより、最大限の動作特性(Performance)を発揮させるためのＲＯＭ実行とＲＡＭ実行の境界部分のわずらわしい調整設定(Tuning)をしなくても、高速起動可能なシステムを実現できている。図３，図４のような、市販ＳｏＣ１０７や、専用Chip Set １１０，１１１にメモリコントローラ８，ＲＯＭコントローラ１０９が搭載されている場合には、ＲＡＭ実行に入る前にそのメモリコントローラ１０５がＤＲＡＭ４に対してモードレジスタ設定コマンドを実行してくる。ＲＡＭ調停１０３は、そのモードレジスタ設定コマンドをＤＲＡＭ４には発行せずに、そのコマンドを捨てる動きをすることで、起動時のＤＲＡＭ４に対する、モードレジスタ設定コマンドの重複発行を防いでいる。
【００９３】
次にリセット解除後のＣＰＵ動作とプログラム転送動作及びＲＡＭ実行への切替えタイミングを、図７の（ｃ），（ｄ）および（ｅ）に示す。
【００９４】
（ｃ）はブートコード（ＢＩＯＳという場合もある）の実行が、ＲＯＭ４からのＲＡＭ３への転送より早く終わってしまって、アドレス比較１０３ａによりＣＰＵ１が待たされた場合のＲＡＭ実行への切替えタイミングを示す。この場合には、ＣＰＵ１がＲＡＭ実行に移ろうとするタイミングが早いので、ＲＯＭ４のブートコードに基づくＣＰＵ処理を追加した方が良い。
【００９５】
（ｄ）はブートコードの実行よりも早くＲＯＭ４からＲＡＭ３へのプログラム転送が完了したときのＲＡＭ実行への切替えタイミングを示す。この場合、ＲＯＭ実行部分を少なくして、もう少し早くＲＡＭ実行に移った方が高速起動が可能となる。
【００９６】
（ｅ）は、ブートコード実行後のＲＡＭ実行とＲＯＭ４からＲＡＭ３へのプログラム転送が重なるケースである。肥大化したプログラムのＲＡＭ３への転送時間が長くなったとしても、早いタイミングでのＲＡＭ実行への切り替えが可能となり、ＲＡＭ３へ転送できた部分から逐次ＲＡＭ実行となるので、高速起動及び高速実行が可能となる。
【００９７】
次に図３，図４のように市販ＳｏＣ１０７や専用Chip Set １１０，１１１にメモリコントローラ１０８やＲＯＭコントローラ１０９が搭載されている時のアクセスタイミングについて説明する。メモリコントローラ１０８やＲＯＭコントローラ１０９が汎用バス（例えば、PCI，PCI Express，USB等）で、Waitの挿入が可能（転送制御＝Flow control可能）であれば、アクセスタイミングは気にする必要はないが、一般的なSDRAM，DDR SDRAM，DDR2 SDRAMやNOR Flash ROM等を使用する場合、アクセスタイミングは決まっており、メモリコントローラ１０８，ＲＯＭコントローラ１０９とＳＤＲＡＭ  ３，ＲＯＭ  ４の間に、外部ＡＳＩＣ又はＦＰＧＡ  ２が入ることによるタイミングのズレによって、正しいＲＡＭ，ＲＯＭアクセスが行えなくなってしまう。
【００９８】
そこで、本発明では、ＳＤＲＡＭ等のＤＲＡＭ  ４の場合には、市販ＳｏＣ  １０７又は専用Chip Set  １１０，１１１と外部ＡＳＩＣ又はＦＰＧＡ  ２間のCAS Latencyが外部ＡＳＩＣ又はＦＰＧＡ  ２からＳＤＲＡＭ  ４間のCAS latencyより常に大きくする。こうすることによって、市販ＳｏＣ  １０７又は専用Chip  １１０，１１１から見た場合には、外部ＡＳＩＣ又はＦＰＧＡ  ２から先は、CAS Latencyが大きめのＳＤＲＡＭ  ４として扱うことが可能となる。
【００９９】
ＲＯＭコントローラ  １０９についても考え方は同様である。通常Nor Flash ROM等のROM Deviceの場合、Access Speedが決まっている。よって、市販ＳｏＣ  １０７又は専用Chip Set  １１０，１１１から、外部ＡＳＩＣ又はＦＰＧＡ  ２間は、そのDeviceのAccess Speedよりも１cycle程度遅いAccess Speedとし、外部ＡＳＩＣ又はＦＰＧＡ  ２からＲＯＭ４間は、そのDeviceのAccess Speedに設定することで、市販ＳｏＣ  １０７又は専用Chip Set  １１０，１１１からは、外部ＡＳＩＣ又はＦＰＧＡ  ２は、少し遅めのＲＯＭ４として扱うことが可能となる。
【０１００】
次にＲＯＭ４上のプログラムを複数の領域に分けて、ＲＡＭ３上に順番をつけて転送する場合について説明する。プログラムの分割の一例について図８に示す。図８の場合一番若いアドレスにブートコードが格納されており、この部分はＲＯＭ実行を前提とした例となっている。一般的なプログラムの場合、実行途中でいろいろなサブルーチンを処理しながら起動してくるので、必ずしもＲＯＭ４のアドレスの昇順に実行されるべきプログラムが格納されているとは限らない。そこで、ＲＯＭ４上のプログラムを複数の領域に分割し、プログラムを実行する順番と同じ順番でＲＡＭ３上にプログラムを転送する。転送順序１−＞２−＞３−＞４−＞５の順で転送する。図８は一例であって、ＲＯＭ空間のどこの空間が何番目であるかは自由に設定してよい。
【実施例５】
【０１０１】
図９に、この仕組みを実現するための機能構成を示す。図１との大きな違いは転送するプログラム量データがＲＡＭ調停１０３に接続されずに、プログラムコピー１０２に接続されている点と、転送先アドレス０からｎ，転送元アドレス０からｎ，転送するプログラム量０からｎが、プログラムコピー１０２に供給される点である。プログラム転送量０．．ｎ（０からｎ）がプログラムコピー１０２に供給されている理由は、複数の転送領域を効率よく切り替えていくためである。転送先アドレス０と転送元アドレス０と転送するプログラム量０で１セットとなる。転送するプログラムを分割した時に、それぞれのプログラムの領域を同じ大きさとなるように分割した場合には、転送するプログラム量は１つだけ供給すればよく、ｎ個は必要としない。またその場合には、外部より直接転送するプログラム量を指定しても良い。プログラムコピー１０２の中の順番選択手段が０からｎの転送先アドレス、転送元アドレス、転送するプログラム量の中から、添え字の小さい順に、ＲＡＭ調停１０３に供給する。
【０１０２】
こうすることで、複数の領域づつのＲＯＭ４−＞ＲＡＭ３への転送動作中に各分割された領域内での転送動作の完了，未完了によるＣＰＵ  Waitまたはアクセス許可の判断が可能となる。この構成の場合、今、プログラム転送動作をしていない領域に関しては転送が完了しているのか、否か判断が行えないが、ＲＯＭからＲＡＭへ転送する順番自体がＲＡＭ実行する順番なので、そもそもプログラム転送をしていない領域へのアクセスが生じることはないはずであり、問題とはならない。
【０１０３】
以上、本発明の実施例の説明は、ＣＰＵ１がＲＡＭ３に格納されているプログラムを実行するためのＲＡＭ３に転送するプログラムと、ＣＰＵ１のブートプログラムが、同一の記憶手段（ＲＯＭ４）に格納されていることを前提とした説明をしているが、両者は別の、第３の記憶手段に格納されていても良い。その場合には、ＲＯＭ調停１０４は不要となり、プログラムコピー１０２は、ＲＡＭ３上で実行したいプログラムが格納されている第３の記憶手段に格納されているプログラムを、ＲＡＭ３に転送することになる。
【図面の簡単な説明】
【０１０４】
【図１】本発明の第１実施例の機能構成を示すブロック図である。
【図２】本発明の第２実施例の構成を示すブロック図である。
【図３】本発明の第３実施例の構成を示すブロック図である。
【図４】本発明の第４実施例の構成を示すブロック図である。
【図５】本発明の第１〜５実施例のプログラムコピー１０２のデータ転送動作の概要を示すフローチャートである。
【図６】本発明の第１〜５実施例のＲＡＭ調停１０３の調停動作の概要を示すフローチャートである。
【図７】本発明の第１〜５実施例の、リセット解除後のＣＰＵ動作とプログラム転送動作及びＲＡＭ実行への切替えタイミングを示すタイムチャートである。
【図８】図１等に示すＲＯＭ４に格納したプログラムの区分の一例を示すブロック図である。
【図９】本発明の第５実施例の機能構成を示すブロック図である。
【図１０】本発明の第１〜５実施例が装備される複合機能複写機ＭＦ１の情報処理システムの構成を示すブロック図である。
【符号の説明】
【０１０５】
ＭＦ１：複合機能複写機
【図１】
2008217524.tif 000003
【図２】
2008217524.tif 000004
【図３】
2008217524.tif 000005
【図４】
2008217524.tif 000006
【図５】
2008217524.tif 000007
【図６】
2008217524.tif 000008
【図７】
2008217524.tif 000009
【図８】
2008217524.tif 000010
【図９】
2008217524.tif 000011
【図１０】
2008217524.tif 000012