(57)【要約】【課題】  ＵＮＩＸ（登録商標）系ＯＳの保護機能を残しつつ、必要に応じて、任意のアドレスへのアクセス、ステイタスレジスタ等へのアクセス、特権命令の実行等を行えるようにしてユーザプロセスにおける処理の自由度を高める。【解決手段】  実行権限の異なるカーネルモードとユーザモードとを有するＯＳ上のプロセス管理方法であって、ユーザプロセスからのユーザシステムモードへの移行要求を受け付ける工程と、上記移行要求に応じて上記ユーザプロセスに対する実行モードをカーネルモードに変更する工程とを備える。また、実行権限の異なるカーネルモードとユーザモードとを有するＯＳ上のプロセス管理方法であって、ユーザプロセスからの制御レジスタイネーブルモードへの移行要求を受け付ける工程と、上記移行要求に応じて上記ユーザプロセスによる制御レジスタへの直接アクセスを可能とする工程とを備える。【選択図】  図３
2005346457.tif 000002
【特許請求の範囲】
【請求項１】
実行権限の異なるカーネルモードとユーザモードとを有するＯＳ上のプロセス管理方法であって、
ユーザプロセスからのユーザシステムモードへの移行要求を受け付ける工程と、
上記移行要求に応じて上記ユーザプロセスに対する実行モードをカーネルモードに変更する工程とを備えたことを特徴とするプロセス管理方法。
【請求項２】
上記ユーザプロセスからのユーザモードへの復帰要求を受け付ける工程と、
上記復帰要求に応じて上記ユーザプロセスに対する実行モードをユーザモードに変更する工程とを備えたことを特徴とする請求項１に記載のプロセス管理方法。
【請求項３】
実行権限の異なるカーネルモードとユーザモードとを有するＯＳ上のプロセス管理方法であって、
ユーザプロセスからの制御レジスタイネーブルモードへの移行要求を受け付ける工程と、
上記移行要求に応じて上記ユーザプロセスによる制御レジスタへの直接アクセスを可能とする工程とを備えたことを特徴とするプロセス管理方法。
【請求項４】
ユーザプロセスからのユーザモードへの復帰要求を受け付ける工程と、
上記復帰要求に応じて上記ユーザプロセスによる制御レジスタへの直接アクセスを不可とする工程とを備えたことを特徴とする請求項３に記載のプロセス管理方法。
【請求項５】
上記移行要求および復帰要求をシステムモード制御関数のシステムコールにより行うことを特徴とする請求項１または２のいずれか一項に記載のプロセス管理方法。
【請求項６】
上記システムコールから上記ユーザプロセスに処理が戻るとき、ＣＰＵのレジスタに復帰されるレジスタ内容のうち実行モードをカーネルモードにするビットをセットすることで上記ユーザシステムモードへの移行を行うことを特徴とする請求項５に記載のプロセス管理方法。
【請求項７】
上記ユーザプロセスから上記システムコールの処理に入るとき、ＣＰＵのレジスタ内容が保存される前に上記ＣＰＵのレジスタのうち実行モードをカーネルモードにするビットをクリアすることで上記ユーザモードへの復帰を行うことを特徴とする請求項５に記載のプロセス管理方法。
【請求項８】
上記移行要求および復帰要求を制御レジスタモード制御関数のシステムコールにより行うことを特徴とする請求項３または４のいずれか一項に記載のプロセス管理方法。
【請求項９】
上記システムコールに際して保存されたＣＰＵのレジスタ内容のうちレジスタへのアクセスを可能とするビットをセットすることで上記制御レジスタイネーブルモードへの移行を行うことを特徴とする請求項８に記載のプロセス管理方法。
【請求項１０】
上記システムコールに際して保存されたＣＰＵのレジスタ内容のうちレジスタへのアクセスを可能とするビットをクリアすることで上記ユーザモードへの復帰を行うことを特徴とする請求項８に記載のプロセス管理方法。
【請求項１１】
上記ユーザシステムモードもしくは上記制御レジスタイネーブルモードへの移行後に上記ユーザプロセス内で特権命令の実行を行うことを特徴とする請求項１乃至１０のいずれか一項に記載のプロセス管理方法。
【請求項１２】
上記特権命令はキャッシュ操作命令であることを特徴とする請求項１１に記載のプロセス管理方法。
【請求項１３】
上記ユーザシステムモードへの移行後に上記ユーザプロセス内でプロテクトされたメモリ領域へのアクセスを行うことを特徴とする請求項１乃至１０のいずれか一項に記載のプロセス管理方法。
【請求項１４】
上記メモリ領域はフォントＲＯＭが格納されていることを特徴とする請求項１３に記載のプロセス管理方法。
【請求項１５】
上記メモリ領域はＩ／Ｏ装置のデータが格納されていることを特徴とする請求項１３に記載のプロセス管理方法。
【請求項１６】
上記ユーザシステムモードもしくは上記制御レジスタイネーブルモードへの移行後に上記ユーザプロセス内でＣＰＵのレジスタへのアクセスを行うことを特徴とする請求項１乃至１０のいずれか一項に記載のプロセス管理方法。
【請求項１７】
上記レジスタは時間情報をもつカウントレジスタであることを特徴とする請求項１６に記載のプロセス管理方法。
【請求項１８】
上記レジスタは割り込みを禁止する割り込みマスクであることを特徴とする請求項１６に記載のプロセス管理方法。
【請求項１９】
実行権限の異なるカーネルモードとユーザモードとを有するＯＳを備えた画像形成装置であって、
画像形成にかかる処理を行うユーザプロセスからのユーザシステムモードへの移行要求を受け付ける手段と、
上記移行要求に応じて上記ユーザプロセスに対する実行モードをカーネルモードに変更する手段とを備えたことを特徴とする画像形成装置。
【請求項２０】
実行権限の異なるカーネルモードとユーザモードとを有するＯＳを備えた画像形成装置であって、
画像形成にかかる処理を行うユーザプロセスからの制御レジスタイネーブルモードへの移行要求を受け付ける手段と、
上記移行要求に応じて上記ユーザプロセスによる制御レジスタへの直接アクセスを可能とする手段とを備えたことを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は処理の自由度を高めたプロセス管理方法および画像形成装置に関する。
【背景技術】
【０００２】
近年、複写機、ファクシミリ、プリンタ、スキャナ等の機能を有した複合機等の画像形成装置が発達してきている。これまでは複写機、ファクシミリ、プリンタ、スキャナ等の各構成要素を組み合わせただけの複合機も多かったが、これからは各構成要素に対して要求される機能の高度化に加え、高度化した各構成要素の機能を融合して使用するような高度な機能も求められるようになっている。また、近年のネットワークの発達に伴い、ネットワークとの親和性を高めることも要件の一つになってきている。
【０００３】
従来の複合機では単機能のコンポーネントハードウェアを組み合わせただけの構成であったため各機能が相互に融合することに限界があったが、これからの複合機では高機能化した各構成要素を高度に組み合わせることが必要になってきたため、その制御を行うソフトウェアも高度化、複雑化してきた。
【０００４】
このような複合機のソフトウェアの複雑化に伴い、そのソフトウェアを管理するＯＳ（オペレーティングシステム）も、単なるマルチタスクモニタでは機能不足になっており、仮想記憶を使用したメモリ保護機能や、ユーザモードとカーネルモードとの区別による実行権限の制御が、システムの安定性や開発効率の観点からも必要とされている。このような要求を満たすため、最近では複合機のような組み込み機器においても、ＵＮＩＸ（登録商標）やＵＮＩＸ（登録商標）互換ＯＳが制御ソフトウェアのＯＳとして使用されるようになってきている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したように、複合機等の画像形成装置のＯＳとしてＵＮＩＸ（登録商標）系ＯＳが用いられるようになってきているが、この種のＯＳは各種保護機能が充実している。例えば、全てのプロセスには独立した仮想空間が割り当てられており、他のプロセスやカーネル領域へのアクセスはできないようになっている。また、ユーザプロセスはＣＰＵのユーザモードで実行されるように管理され、特権命令の実行や、カーネルモードでしかアクセスできない領域へのアクセスができないように制限されている。そして、ＵＮＩＸ（登録商標）系ＯＳではセキュリティを高める観点からの機能拡張が行われるのが一般的である。
【０００６】
このように、ＵＮＩＸ（登録商標）系ＯＳでは各種保護機能が充実している点で優れているものではあるが、反面、このようなＯＳを画像形成装置等の組み込み機器で使用する場合、これらの充実した保護機能により以下のような問題を起こしている。
【０００７】
第１は「メモリアクセス問題」というものである。これは、ユーザモードではメモリアクセスが制限されており、自由なアドレスにアクセスすることができないことによるものである。通常はこの機能は利点であるが、組み込み機器への応用では欠点になる。例えば、ソフトウェア開発の過程で簡単な動作確認をするためにプリンタのフォントＲＯＭやＩ／Ｏ装置のデータ領域にアクセスしたい場合が生ずるが、特別なデバイスドライバを経由して行わなければならず、デバイスドライバの作成やシステムへの組み込み等が必要になり、簡単には行えないものであった。ただし、完全に自由にメモリアクセスできるようにするのも安全性の観点からやりすぎであり、必要なときにのみ自由なメモリアクセスができるようにしたいというニーズがある。
【０００８】
第２は「連続実行問題」というものである。これは、ＣＰＵのステイタスレジスタ内にある割り込みマスクを自由に操作して割り込み禁止状態にできないことによるものである。すなわち、ユーザプロセスの実行中は常にハードウェア割り込みによりユーザモードの実行が中断される可能性があるが、これは組み込み機器の用途で連続的に実行されることを保証したいときに制約となる。例えば、機器内部のＲＯＭに格納されたファームウェアをネットワーク経由でリモート更新するような場合、処理の途中で他のプロセスに処理が移ると誤動作を生じてしまうため連続して実行する必要があるが、他からのハードウェア割り込みを禁止することができないため、簡単には行えないものであった。この場合、割り込みを禁止するようなシステムコールを別に用意するという解決法もあるが、システムコールのオーバーヘッドは大きいため、頻繁に割り込み禁止と許可を切り替える場合には使いづらいという問題がある。
【０００９】
第３は「キャッシュ操作問題」というものである。これは、メモリ領域の書き込みの速度を速めるためにキャッシュを無効にする命令が、ユーザプロセスから直接に使用できない特権命令であることによるものである。例えば、プリンタの描画処理等で大きなメモリ領域のコピーやクリア等を行う場合、書き込み先のキャッシュの内容をcache命令を使ってinvalidにしておくことによって速度が上げられるのだが、cache命令は特権命令なのでユーザプロセスで実行することができず、通常のキャッシュが効いている場合に行われるwrite allocate処理（メモリの内容をキャッシュライン単位でキャッシュに読み出す処理）が行われてしまい、新たなデータのコピーもしくはデータのクリアによって無駄となるデータの読み出しが行われることで、速度が落ちてしまうものである。
【００１０】
これを解決するために、大きな領域のコピーやクリアを行うためのシステムコールを追加することも考えられるが、システムコール実行中は自発的にtsleep()を呼び出してコンテキストスイッチを行わない限りコンテキストスイッチが起こらないため、時間のかかるコピーやクリアの処理を行っている間はコンテキストスイッチをすることが不可能になってしまう。もしこの間に緊急度の高いプロセスが実行可能になったとしても、このプロセスへのコンテキストスイッチが行われないという問題が出てくる。
【００１１】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、ＵＮＩＸ（登録商標）系ＯＳの保護機能を残しつつ、必要に応じて、任意のアドレスへのアクセス、ステイタスレジスタ等へのアクセス、特権命令の実行等を行えるようにし、ユーザプロセスにおける処理の自由度を高めることのできるプロセス管理方法および画像形成装置を提供することにある。
【課題を解決するための手段】
【００１２】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、実行権限の異なるカーネルモードとユーザモードとを有するＯＳ上のプロセス管理方法であって、ユーザプロセスからのユーザシステムモードへの移行要求を受け付ける工程と、上記移行要求に応じて上記ユーザプロセスに対する実行モードをカーネルモードに変更する工程とを備えるようにしている。
【００１３】
また、請求項２に記載されるように、上記ユーザプロセスからのユーザモードへの復帰要求を受け付ける工程と、上記復帰要求に応じて上記ユーザプロセスに対する実行モードをユーザモードに変更する工程とを備えるようにすることができる。
【００１４】
また、請求項３に記載されるように、実行権限の異なるカーネルモードとユーザモードとを有するＯＳ上のプロセス管理方法であって、ユーザプロセスからの制御レジスタイネーブルモードへの移行要求を受け付ける工程と、上記移行要求に応じて上記ユーザプロセスによる制御レジスタへの直接アクセスを可能とする工程とを備えるようにしている。
【００１５】
また、請求項４に記載されるように、ユーザプロセスからのユーザモードへの復帰要求を受け付ける工程と、上記復帰要求に応じて上記ユーザプロセスによる制御レジスタへの直接アクセスを不可とする工程とを備えるようにすることができる。
【００１６】
また、請求項５に記載されるように、上記移行要求および復帰要求をシステムモード制御関数のシステムコールにより行うようにすることができる。
【００１７】
また、請求項６に記載されるように、上記システムコールから上記ユーザプロセスに処理が戻るとき、ＣＰＵのレジスタに復帰されるレジスタ内容のうち実行モードをカーネルモードにするビットをセットすることで上記ユーザシステムモードへの移行を行うようにすることができる。
【００１８】
また、請求項７に記載されるように、上記ユーザプロセスから上記システムコールの処理に入るとき、ＣＰＵのレジスタ内容が保存される前に上記ＣＰＵのレジスタのうち実行モードをカーネルモードにするビットをクリアすることで上記ユーザモードへの復帰を行うようにすることができる。
【００１９】
また、請求項８に記載されるように、上記移行要求および復帰要求を制御レジスタモード制御関数のシステムコールにより行うようにすることができる。
【００２０】
また、請求項９に記載されるように、上記システムコールに際して保存されたＣＰＵのレジスタ内容のうちレジスタへのアクセスを可能とするビットをセットすることで上記制御レジスタイネーブルモードへの移行を行うようにすることができる。
【００２１】
また、請求項１０に記載されるように、上記システムコールに際して保存されたＣＰＵのレジスタ内容のうちレジスタへのアクセスを可能とするビットをクリアすることで上記ユーザモードへの復帰を行うようにすることができる。
【００２２】
また、請求項１１に記載されるように、上記ユーザシステムモードもしくは上記制御レジスタイネーブルモードへの移行後に上記ユーザプロセス内で特権命令の実行を行うようにすることができる。
【００２３】
また、請求項１２に記載されるように、上記特権命令はキャッシュ操作命令であるものとすることができる。
【００２４】
また、請求項１３に記載されるように、上記ユーザシステムモードへの移行後に上記ユーザプロセス内でプロテクトされたメモリ領域へのアクセスを行うようにすることができる。
【００２５】
また、請求項１４に記載されるように、上記メモリ領域はフォントＲＯＭが格納されているものとすることができる。
【００２６】
また、請求項１５に記載されるように、上記メモリ領域はＩ／Ｏ装置のデータが格納されているものとすることができる。
【００２７】
また、請求項１６に記載されるように、上記ユーザシステムモードもしくは上記制御レジスタイネーブルモードへの移行後に上記ユーザプロセス内でＣＰＵのレジスタへのアクセスを行うようにすることができる。
【００２８】
また、請求項１７に記載されるように、上記レジスタは時間情報をもつカウントレジスタであるものとすることができる。
【００２９】
また、請求項１８に記載されるように、上記レジスタは割り込みを禁止する割り込みマスクであるものとすることができる。
【００３０】
また、請求項１９に記載されるように、実行権限の異なるカーネルモードとユーザモードとを有するＯＳを備えた画像形成装置であって、画像形成にかかる処理を行うユーザプロセスからのユーザシステムモードへの移行要求を受け付ける手段と、上記移行要求に応じて上記ユーザプロセスに対する実行モードをカーネルモードに変更する手段とを備えた画像形成装置として構成することができる。
【００３１】
また、請求項２０に記載されるように、実行権限の異なるカーネルモードとユーザモードとを有するＯＳを備えた画像形成装置であって、画像形成にかかる処理を行うユーザプロセスからの制御レジスタイネーブルモードへの移行要求を受け付ける手段と、上記移行要求に応じて上記ユーザプロセスによる制御レジスタへの直接アクセスを可能とする手段とを備えた画像形成装置として構成することができる。
【発明の効果】
【００３２】
本発明にあっては、新たな動作モードとしてユーザシステムモードと制御レジスタイネーブルモードを導入したので、ＵＮＩＸ（登録商標）系ＯＳの保護機能を残しつつ、必要に応じて、任意のアドレスへのアクセス、ステイタスレジスタ等へのアクセス、特権命令の実行等を行うことができ、ユーザプロセスにおける処理の自由度を高めることができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の好適な実施形態につき図面を参照して説明する。
【００３４】
図１は本発明の一実施形態に係る画像形成装置の機能構成を示すブロック図である。
【００３５】
図１において、画像形成装置１は、アプリケーション層２とプラットフォーム層４とエンジン部８とを含む。インタフェース３はアプリケーション層２に対するプラットフォーム層４の提供するインタフェース（ＡＰＩ）であり、インタフェース７はプラットフォーム層４とエンジン部８との間のインタフェース（エンジンＩ／Ｆ）である。
【００３６】
アプリケーション層２は画像形成装置１における個別の処理を行うソフトウェア群であり、コピー用のアプリケーションであるコピーアプリ２１と、ファックス用のアプリケーションであるファックスアプリ２２と、プリンタ用のアプリケーションであるプリンタアプリ２３と、ネットワークを介してファイルのやりとりを行うネットファイル用のアプリケーションであるネットファイルアプリ２４とを含む。
【００３７】
一方、プラットフォーム層４はアプリケーション層２の各アプリケーションに対してインタフェース３を介して共通的なサービス機能を提供するソフトウェア群であり、サービス層５とＯＳ層６に分かれる。サービス層５には、アプリケーション管理、操作部制御、システム画面表示、ＬＥＤ表示、リソース管理、および割り込み制御等の複数の機能を有するＳＣＳ５１と、ファックス機能のＡＰＩを提供するＦＣＳ５２と、エンジン部の制御を行うＥＣＳ５３と、メモリ制御を行うＭＣＳ５４と、オペレータ（操作者）とのインタフェースとなる操作部（オペレーションパネル）の制御を行うＯＣＳ５５と、ネットワーク入出力を必要とするアプリケーションに対して共通に利用できるサービスを提供するＮＣＳ５６とが含まれる。ＯＳ層６にはＵＮＩＸ（登録商標）系のＯＳ６１が含まれる。
【００３８】
一方、エンジン部８には、プロッタ８１、スキャナ８２、その他ハードウェアリソース８３等のエンジンと、これらのエンジンを制御するエンジン制御ボード８４とが含まれる。
【００３９】
図２は図１に示した画像形成装置１のハードウェア構成を示すブロック図である。
【００４０】
図２において、画像形成装置１は、主たる制御動作を行うコントローラ１０１に、オペレーションパネル１１３とファックスコントロールユニット１１４とプロッタ８１とスキャナ８２とその他ハードウェアリソース８３とが接続されて構成されている。
【００４１】
コントローラ１０１は、画像処理用途向けのＩＣであるＡＳＩＣ１０２にブリッジとしてのＮＢ１０５を介して一般制御用のＩＣであるＣＰＵ１０６が接続され、ＮＢ１０５のバス（ＰＩＣ  ＢＵＳ）に、周辺デバイス等との接続を行うブリッジであるＳＢ１０８と、ネットワーク通信を制御するＮＩＣ１０９と、ＵＳＢインタフェースを提供するＵＳＢ１１０と、ＩＥＥＥ１３９４インタフェースを提供するＩＥＥＥ１３９４１１１と、セントロニクスインタフェースを提供するセントロニクス１１２とが接続され、ＡＳＩＣ１０２に記憶装置としてのＭＥＭ−Ｃ１０３とＨＤＤ１０４が接続され、ＮＢ１０５に記憶装置としてのＭＥＭ−Ｐ１０７が接続されて構成されている。
【００４２】
図３は本発明で新たに導入したユーザシステムモードおよび制御レジスタイネーブルモードの制御を行う機能部の構成図である。ここで、ユーザシステムモードとは、ユーザプロセスにおいて、任意のアドレスへのアクセス、ステイタスレジスタ等へのアクセス、特権命令の実行等が自由に行えるモードである。また、制御レジスタイネーブルモードとは、ユーザプロセスにおいてステイタスレジスタ等へのアクセスが自由に行えるモードである。
【００４３】
図３において、ユーザプロセス１２１からのシステムコールを処理する例外ハンドラ１２２に、標準で設けられているレジスタ内容保存部１２４およびレジスタ内容復帰部１２６の他に、ユーザモード設定部１２３およびユーザシステムモード設定部１２５が新たに設けられている。また、例外ハンドラ１２２を経由して実行されるシステムコールルーチン１２７として、新たにシステムモード制御関数１２８と制御レジスタモード制御関数１２９を設けている。
【００４４】
ここで、例外ハンドラ１２２のレジスタ内容保存部１２４はシステムコール例外が発生した際にＣＰＵのレジスタ内容をユーザ構造体内のプロセス制御ブロックに保存するものであり、レジスタ内容復帰部１２６はシステムコールの終了時にプロセス制御ブロックに保存されていた内容をＣＰＵのレジスタに復帰させるものである。そして、ユーザモード設定部１２３はレジスタ内容保存部１２４の処理の前に実行されるようになっており、ユーザシステムモードから通常のユーザモードに復帰する場合にのみ動作するようになっている。また、ユーザシステムモード設定部１２５はレジスタ内容復帰部１２６の処理の前に実行されるようになっており、通常のユーザモードからユーザシステムモードに移行する場合にのみ動作するようになっている。処理内容の詳細は後述するが、このようにユーザモード設定部１２３、ユーザシステムモード設定部１２５が配置されているのは、システムコールルーチン１２７の実行時に不都合が発生しないようにするためである。なお、制御レジスタイネーブルモードの制御に際しては、例外ハンドラ１２２のユーザモード設定部１２３およびユーザシステムモード設定部１２５は何も処理を行わない。
【００４５】
また、ユーザモード設定部１２３、ユーザシステムモード設定部１２５は例外ハンドラ１２２内の機能部として示してあるが、別のモジュールとして配置してもかまわない。例えば、ユーザモード設定部１２３をユーザプロセス１２１の出口と例外ハンドラ１２２のユーザプロセス１２１側の入口の間に置き、ユーザシステムモード設定部１２５をシステムコールルーチン１２７の出口と例外ハンドラ１２２のシステムコールルーチン１２７側の入口の間に置くようにしてもよい。
【００４６】
図４は処理においてアクセスされるプロセス制御ブロック内のデータ格納部の構成図である。図４において、プロセス空間１３１内のユーザ構造体１３２内に設けられたプロセス制御ブロック１３３に、新たにシステムモードを示すためのメンバとしてシステムモード格納部１３４が設けられている。また、ＣＰＵのレジスタ内容を格納するためのレジスタ格納部１３５は標準で設けられているものであり、その格納データのうち、本実施形態の処理において主に使用されるシステムモード制御ビット１３６とレジスタモード制御ビット１３７とを示している。
【００４７】
図５はＣＰＵ１４１内のステイタスレジスタ１４２の構成図であり、本実施形態の処理において主に使用されるシステムモード制御ビット１４３とレジスタモード制御ビット１４４とを示している。図４のシステムモード制御ビット１３６、レジスタモード制御ビット１３７と、図５のシステムモード制御ビット１４３、レジスタモード制御ビット１４４とは対応している。
【００４８】
図６はＣＰＵ内のステイタスレジスタの構成例を示す図であり、ＭＩＰＳ系のＣＰＵ（商品名：ＴＸ４９）における実際のビット配置を示しており、数字はビット位置を示している。この中で、ビット位置４〜３にあるフィールド「ＫＳＵ」が図５のシステムモード制御ビット１４３に対応するものであり、ビット値が「１０」の場合がユーザモード、「００」の場合がカーネルモードとなる。また、ビット位置３１〜２８にあるフィールド「ＣＵ」のうちのビット位置２８が図５のレジスタモード制御ビット１４４に対応するものであり、ビット値が「０」でＣＰＵ内レジスタの使用が不可能となり、「１」で使用が可能となる。
【００４９】
図７はユーザシステムモードへの移行およびユーザモードへの復帰の処理を示すフローチャートである。
【００５０】
図７において、ユーザプロセスがユーザモードで実行している途中でユーザシステムモードに移行したい場合には、システムモード制御関数１２８（図３）に対応する「sysmode(1)」のシステムコールを行う（ステップＳ１）。
【００５１】
これを受けて例外ハンドラ１２２（図３）が処理を行うが、ユーザモード設定部１２３はこの時点では何も処理を行わず、続くレジスタ内容保存部１２４がＣＰＵ１４１（図５）のレジスタ内容をプロセス制御ブロック１３３（図４）のレジスタ格納部１３５に保存する（ステップＳ２）。
【００５２】
次いで、システムコールルーチン１２７（図３）のシステムモード制御関数１２８が実行され、システムモード格納部１３４（図４）の値を変更する（ステップＳ３）。より具体的には、sysmode(1)の処理として、システムモード格納部１３４（pcb_sysmode）の値を「２」にする。これは続くユーザシステムモード設定部１２５の処理を起動するためのものである。
【００５３】
次いで、処理は例外ハンドラ１２２（図３）に戻り、ユーザシステムモード設定部１２５はプロセス制御ブロック１３３（図４）内のシステムモード制御ビット１３６をカーネルモードを示す値に変更する（ステップＳ４）。なお、この際、システムモード格納部１３４（pcb_sysmode）の値をユーザシステムモードにあることを示す「１」にする。
【００５４】
そして、レジスタ内容復帰部１２６（図３）はプロセス制御ブロック１３３（図４）からＣＰＵ１４１（図５）のレジスタ内容を復帰させ（ステップＳ５）、ユーザプロセスに処理を戻す。
【００５５】
これにより、ユーザシステムモードへの移行が完了し、その後は、ユーザプロセスではあるが、実質的にはカーネルモードで動作することになり、任意のアドレスへのアクセス、ステイタスレジスタ等へのアクセス、特権命令の実行等が自由に行えるものである。
【００５６】
次に、ユーザシステムモードから通常のユーザモードに復帰したい場合には、システムモード制御関数１２８（図３）に対応する「sysmode(0)」のシステムコールを行う（ステップＳ６）。
【００５７】
これを受けて例外ハンドラ１２２（図３）が処理を行い、ユーザモード設定部１２３はＣＰＵ１４１（図５）内のシステムモード制御ビット１４３をユーザモードを示す値に変更する（ステップＳ７）。なお、この際、システムモード格納部１３４（pcb_sysmode）（図４）の値を「２」にする。
【００５８】
次いで、レジスタ内容保存部１２４（図３）はレジスタ内容をプロセス制御ブロック１３３（図４）のレジスタ格納部１３５に保存する（ステップＳ８）。
【００５９】
次いで、システムコールルーチン１２７（図３）のシステムモード制御関数１２８が実行され、システムモード格納部１３４（図４）の値を変更する（ステップＳ９）。より具体的には、sysmode(0)の処理として、システムモード格納部１３４（pcb_sysmode）の値を通常のユーザモードであることを示す「０」にする。
【００６０】
次いで、処理は例外ハンドラ１２２（図３）に戻るが、ユーザシステムモード設定部１２５はこの時点では何もせず、続くレジスタ内容復帰部１２６はプロセス制御ブロック１３３（図４）からＣＰＵ１４１（図５）のレジスタ内容を復帰させ（ステップＳ１０）、ユーザプロセスに処理を戻す。これにより、通常のユーザプロセスに復帰する。
【００６１】
図８は図３に示したユーザモード設定部１２３の処理を示すフローチャートであり、図９はユーザシステムモード設定部１２５の処理を示すフローチャートである。
【００６２】
図８において、ユーザモード設定部１２３は、先ず現行プロセスのプロセス制御ブロック（currpcb）がＮＵＬＬか否かを判断し（ステップＳ１１）、ＮＵＬＬの場合は何もせずに処理を終了する。これはプロセスが何も動いていないアイドル状態における誤動作を防止するためである。
【００６３】
次いで、現行プロセスのプロセス制御ブロック（currpcb）がＮＵＬＬでない場合は、ＣＰＵ１４１（図５）のステイタスレジスタ１４２のシステムモード制御ビット１４３（ＵＳＥＲビット）を調べることで前のモードがユーザモードであるか否かを判断し（ステップＳ１２）、ユーザモードである場合は何もせずに処理を終了する。重ねてユーザモードに設定する必要はないからである。
【００６４】
次いで、現行のプロセス制御ブロック１３３（図４）のシステムモード格納部１３４（pcb_sysmode）の値を調べ（ステップＳ１３）、pcb_sysmodeが「１」以外の場合には何もせずに処理を終了する。ユーザシステムモードでない場合の誤動作を防止するためである。
【００６５】
次いで、システムモード格納部１３４（pcb_sysmode）の値が「１」の場合は、システムモード格納部１３４（pcb_sysmode）の値を「２」に変更し（ステップＳ１４）、ＣＰＵ１４１（図５）のステイタスレジスタ１４２のシステムモード制御ビット１４３（ＵＳＥＲビット）の値をセットし（ステップＳ１５）、処理を終了する。これは、続くシステムコールルーチン１２７に移行する際に通常のユーザモードから移行したように見せるためである。
【００６６】
これらの動作により、ユーザシステムモードで動いていた場合（ＣＰＵ１４１のＵＳＥＲビットがクリアされており、pcb_sysmodeの値が「１」になっている場合）にのみ、ＣＰＵ１４１のシステムモード制御ビット１４３（ＵＳＥＲビット）を立てることにより、その後の処理はユーザモードで起こった例外として処理されるようになり、ユーザプロセス１２１に戻った際にユーザモードに復帰させることができる。
【００６７】
次に、図９において、ユーザシステムモード設定部１２５は、現行のプロセス制御ブロック１３３（図４）のシステムモード格納部１３４（pcb_sysmode）の値を調べ（ステップＳ１６）、pcb_sysmodeが「２」以外の場合は何もせずに処理を終了する。システムコールルーチン１２７においてsysmode(1)が実行されてpcb_sysmodeが「２」になった場合のみに処理を行うことで誤動作を防止するためである。
【００６８】
次いで、pcb_sysmodeが「２」の場合は、保存状態にあるプロセス制御ブロック１３３のシステムモード制御ビット１３６（ＵＳＥＲビット）をクリアし（ステップＳ１７）、プロセス制御ブロック１３３のシステムモード格納部１３４（pcb_sysmode）の値を「１」にする（ステップＳ１８）。
【００６９】
これにより、システムモード格納部１３４（pcb_sysmode）の値が「２」で処理に入った場合（システムコールルーチン１２７においてsysmode(1)が実行された後に処理に入った場合）には、ユーザプロセスに復帰する際にカーネルモードで復帰するようになる。
【００７０】
次に、図１０は制御レジスタイネーブルモードへの移行および通常のユーザモードへの復帰の処理を示すフローチャートである。
【００７１】
図１０において、ユーザプロセスが通常のユーザモードで実行している途中で制御レジスタイネーブルモードに移行したい場合には、制御レジスタモード制御関数１２９（図３）に対応する「crenable(1)」のシステムコールを行う（ステップＳ２１）。
【００７２】
これを受けて例外ハンドラ１２２（図３）が処理を行うが、前述したようにユーザモード設定部１２３（ユーザシステムモード設定部１２５についても同様）は何も処理を行わず、続くレジスタ内容保存部１２４がＣＰＵ１４１（図５）のレジスタ内容をプロセス制御ブロック１３３（図４）のレジスタ格納部１３５に保存する（ステップＳ２２）。
【００７３】
次いで、システムコールルーチン１２７（図３）の制御レジスタモード制御関数１２９が実行され、プロセス制御ブロック１３３（図４）のレジスタ格納部１３５のレジスタモード制御ビット１３７の値をアクセス可能であることを示すものとする（ステップＳ２３）。
【００７４】
次いで、処理は例外ハンドラ１２２（図３）に戻り、レジスタ内容復帰部１２６はプロセス制御ブロック１３３（図４）からＣＰＵ１４１（図５）のレジスタ内容を復帰させ（ステップＳ２４）、ユーザプロセスに処理を戻す。
【００７５】
これにより、制御レジスタイネーブルモードへの移行が完了し、その後は、ユーザプロセスではあるが、ステイタスレジスタ等へのアクセスが自由に行えるものである。
【００７６】
次に、制御レジスタイネーブルモードから通常のユーザモードに復帰したい場合には、制御レジスタモード制御関数１２９（図３）に対応する「crenable(0)」のシステムコールを行う（ステップＳ２５）。
【００７７】
これを受けて例外ハンドラ１２２（図３）が処理を行い、レジスタ内容保存部１２４はレジスタ内容をプロセス制御ブロック１３３（図４）のレジスタ格納部１３５に保存する（ステップＳ２６）。
【００７８】
次いで、システムコールルーチン１２７（図３）の制御レジスタモード制御関数１２９が実行され、プロセス制御ブロック１３３（図４）のレジスタ格納部１３５のレジスタモード制御ビット１３７の値をアクセス不可能であることを示すものとする（ステップＳ２７）。
【００７９】
次いで、処理は例外ハンドラ１２２（図３）に戻り、レジスタ内容復帰部１２６はプロセス制御ブロック１３３（図４）からＣＰＵ１４１（図５）のレジスタ内容を復帰させ（ステップＳ２８）、ユーザプロセスに処理を戻す。これにより、制御レジスタイネーブルモードから通常のユーザモードに復帰する。
【００８０】
図１１〜図１９は上述したユーザシステムモードもしくは制御レジスタイネーブルモードを利用して画像形成装置における具体的処理を行う例を示したものである。
【００８１】
図１１はプリンタのフォントＲＯＭの格納領域の例を示す図である。図１１において、カーネルモードにおいては全てのアドレス空間１５１のアクセスが可能であるが、ユーザモードにおいてはユーザプロセスに仮想記憶空間を介して割り当てられたアドレス空間１５２のみのアクセスしか行えないようになっており、ユーザモードでアクセスできないアドレス空間１５３内にプリンタのフォントＲＯＭ１５４が格納されている。従来においては、ユーザプロセスはユーザモードでしか動作が行えなかったため、ユーザプロセスからフォントＲＯＭ１５４に直接にアクセスすることは不可能であったが（メモリアクセス問題）、必要に応じてユーザシステムモードに移行することで、任意のアドレスにアクセスすることが可能になり、フォントＲＯＭ１５４に直接にアクセスすることが可能になる。
【００８２】
図１２はプリンタのフォントＲＯＭへのアクセスの処理を示すシーケンス図である。図１２において、ユーザプロセスＡからカーネルに対してユーザシステムモードへの移行を要求すると（ステップＳ３１）、カーネルではユーザプロセスＡをユーザシステムモードにセットし（ステップＳ３２）、これが成功すると（ステップＳ３３）、ユーザプロセスＡでは通常のユーザモードではアクセス不可能であったフォントＲＯＭ１５４（図１１）へのアクセスが可能になる（ステップＳ３４）。
【００８３】
また、必要がない状態でユーザシステムモードを続けるとプログラムのバグ等によって不正なメモリアクセスが発生する危険があるため、必要がなくなった時点でユーザプロセスＡからカーネルに対して通常のユーザモードへの復帰を要求する（ステップＳ３５）。カーネルではユーザプロセスＡをユーザモードにセットし（ステップＳ３６）、これが成功すると（ステップＳ３７）、通常のユーザモード下の動作となる（ステップＳ３８）。
【００８４】
なお、ユーザプロセスＡの終了によりユーザシステムモードも同時に消滅するため、その後に通常のユーザモード下で行う処理がない場合には、ユーザシステムモードのままユーザプロセスＡを終了してもよい。
【００８５】
次に、図１３はＩ／Ｏ装置のデータの格納領域の例を示す図である。図１３において、カーネルモードにおいては全てのアドレス空間１５１のアクセスが可能であるが、ユーザモードにおいてはユーザプロセスに仮想記憶空間を介して割り当てられたアドレス空間１５２のみのアクセスしか行えないようになっており、ユーザモードでアクセスできないアドレス空間１５３内のＩ／Ｏ空間１５５にＩ／Ｏ装置のデータが格納されている。従来においては、ユーザプロセスはユーザモードでしか動作が行えなかったため、ユーザプロセスからＩ／Ｏ空間１５５に直接にアクセスすることは不可能であったが（メモリアクセス問題）、必要に応じてユーザシステムモードに移行することで、任意のアドレスにアクセスすることが可能になり、Ｉ／Ｏ空間１５５に直接にアクセスすることが可能になる。
【００８６】
図１４はＩ／Ｏ装置のデータへのアクセスの処理を示すシーケンス図である。図１４において、ユーザプロセスＡからカーネルに対してユーザシステムモードへの移行を要求すると（ステップＳ４１）、カーネルではユーザプロセスＡをユーザシステムモードにセットし（ステップＳ４２）、これが成功すると（ステップＳ４３）、ユーザプロセスＡでは通常のユーザモードではアクセス不可能であったＩ／Ｏ空間１５５（図１３）へのアクセスがカーネルの介在なしに可能になる（ステップＳ４４）。これにより、Ｉ／Ｏ装置（デバイス）のテスト等を、作成やデバッグが容易なユーザプログラムにより簡易に行うことが可能になる。特に、ユーザプログラムに対する充実したデバッグツールが使用可能になるため、デバイスドライバのプロトタイプをユーザプログラムとして作成することで、開発期間を大幅に短縮することができる。
【００８７】
一方、必要がない状態でユーザシステムモードを続けるとプログラムのバグ等によって不正なメモリアクセスが発生する危険があるため、必要がなくなった時点でユーザプロセスＡからカーネルに対して通常のユーザモードへの復帰を要求する（ステップＳ４５）。カーネルではユーザプロセスＡをユーザモードにセットし（ステップＳ４６）、これが成功すると（ステップＳ４７）、通常のユーザモード下の動作となる（ステップＳ４８）。
【００８８】
なお、ユーザプロセスＡの終了によりユーザシステムモードも同時に消滅するため、その後に通常のユーザモード下で行う処理がない場合には、ユーザシステムモードのままユーザプロセスＡを終了してもよい。
【００８９】
次に、図１５および図１６は実行時間の計測に制御レジスタイネーブルモードを利用した例である。なお、実行時間の測定はプログラムのパフォーマンス測定やボトルネックの検出に使用されることが多い。
【００９０】
図１５（ａ）は制御レジスタイネーブルモードを使用せずに（従来はこの方法しかない）、システムコールgettimeofday()を使用して記述したプログラムコード１６１の例を示したものであり、式１６２および式１６３でそれぞれの時点の時刻を求め、式１６４でその差をとることで途中の処理に要した実行時間を測定するようにしている。しかし、システムコールgettimeofday()はシステムコールであることからオーバーヘッドが大きく、実行時間を正確に測定できないとともに、多用すると全体の処理性能に影響を与えることもあった。
【００９１】
この点、本発明の制御レジスタイネーブルモードを使用することで、時刻情報を保持しているＣＰＵのカウントレジスタ（countreg）に直接にアクセスすることが可能になり、オーバーヘッドの大きいシステムコールを使用することなく時刻の測定が可能になる。
【００９２】
図１５（ｂ）は制御レジスタイネーブルモードにした状態で時刻測定を行うためのプログラムコード１６５の例を示したものであり、式１６６および式１６７でカウントレジスタの値を直接に読み出す関数read_countreg()実行し、式１６８でその差をとることで途中の処理に要した実行時間を測定するようにしている。
【００９３】
図１６は上記の実行時間測定の処理を示すシーケンス図である。図１６において、ユーザプロセスＡからカーネルに対して制御レジスタイネーブルモードへの移行を要求すると（ステップＳ５１）、カーネルではユーザプロセスＡを制御レジスタイネーブルモードにセットし（ステップＳ５２）、これが成功すると（ステップＳ５３）、ユーザプロセスＡでは通常のユーザモードではアクセス不可能であったカウントレジスタからの読み出しが可能になる（ステップＳ５４、Ｓ５５）。
【００９４】
その後、ユーザプロセスＡからカーネルに対して通常のユーザモードへの復帰を要求すると（ステップＳ５６）、カーネルではユーザプロセスＡをユーザモードにセットし（ステップＳ５７）、これが成功すると（ステップＳ５８）、通常のユーザモード下の動作となる（ステップＳ５９）。
【００９５】
なお、ユーザプロセスＡの終了により制御レジスタイネーブルモードも同時に消滅するため、その後に通常のユーザモード下で行う処理がない場合には、制御レジスタイネーブルモードのままユーザプロセスＡを終了してもよい。
【００９６】
次に、図１７はリモートＲＯＭ更新の機器構成図であり、パーソナルコンピュータ９からネットワーク経由でファームウェアの転送を受け、画像形成装置１内部のＲＯＭ（フラッシュＲＯＭ等）を更新する場合を示している。このようなＲＯＭの更新を行う場合、処理の途中で他のプロセスに処理が移ると書き換え途中のＲＯＭの内容を実行することとなって誤動作を生じてしまうため連続して実行する必要があるが、従来はユーザプログラムから割り込みの禁止を直接に行うことができなかったため、簡単に行うことができなかった（連続実行問題）。この点、本発明の制御レジスタイネーブルモードを使用し、ＣＰＵのステイタスレジスタの割り込みマスクを割り込み禁止にすることで、連続実行問題を容易に回避することができる。なお、制御レジスタイネーブルモードに代えてユーザシステムモードでも同様に割り込みマスクの操作が行えるものであるが、その目的のためだけであれば制御レジスタイネーブルモードを使用する方がメモリの不正アクセス等が防ぐことができるため安全である。
【００９７】
図１８はリモートＲＯＭ更新の処理を示すシーケンス図である。図１８において、パーソナルコンピュータからカーネルのネットワークプロトコルを経由してＲＯＭ更新モジュールにファームウェアを転送すると（ステップＳ６１、Ｓ６２）、ＲＯＭ更新モジュールは転送されたファームウェアをユーザメモリ上に保持する（ステップＳ６３）。
【００９８】
この状態でパーソナルコンピュータからカーネルのネットワークプロトコルを経由してＲＯＭ更新モジュールにＲＯＭ更新指示を行うと（ステップＳ６４、Ｓ６５）、ＲＯＭ更新モジュールはカーネルに対して制御レジスタイネーブルモードへの移行を要求し（ステップＳ６６）、カーネルではＲＯＭ更新モジュールのプロセスを制御レジスタイネーブルモードにセットする（ステップＳ６７）。
【００９９】
これが成功すると（ステップＳ６８）、ＲＯＭ更新モジュールはＣＰＵのステイタスレジスタの割り込みマスクを変更して割り込み禁止状態とする（ステップＳ６９）。この際、割り込みマスクに直接にアクセスするため、少ないオーバーヘッドで割り込み禁止状態に切り替えることができる。
【０１００】
そして、ＲＯＭ更新モジュールはＲＯＭ更新ランタイムライブラリに対してＲＯＭ更新を行わせ（ステップＳ７０）、ＲＯＭ更新ランタイムライブラリはメモリ上に格納されているファームウェアをＲＯＭに書き込む（ステップＳ７１）。この際、全ての割り込みが禁止されているため、クロック割り込み等のイベントがカーネルに伝わらず、ＲＯＭ更新ランタイムライブラリは実行を中断されることなくＲＯＭへの書き込みを行うことができる。
【０１０１】
ＲＯＭ更新が完了すると、ＲＯＭ更新ランタイムライブラリはその旨の応答をカーネルのネットワークプロトコルを経由してパーソナルコンピュータに行う（ステップＳ７２、Ｓ７３）。その後、ＲＯＭ更新ランタイムライブラリはカーネルに対してシステムの再起動を要求し（ステップＳ７４）、カーネルはシステムの再起動を行う（ステップＳ７５）。これにより、更新されたＲＯＭのファームウェアが有効となる。
【０１０２】
次に、図１９は画像メモリクリア時のキャッシュ処理の説明図である。
【０１０３】
通常の書き込み処理の動作としては、ＣＰＵ１７１からデータの書き込みを行おうとすると（ステップＳ８１）、この時点では実際の書き込みは行われず、書き込み対象のアドレスのデータを含む１キャッシュラインサイズのデータがメモリ１７３からキャッシュ１７２に読み出され（write allocate処理）（ステップＳ８２）、キャッシュ１７２に対してデータの書き込みが行われる（ステップＳ８３）。また、キャッシュ１７２が再利用される前にキャッシュ１７２からメモリ１７３に１キャッシュラインサイズのデータの書き込み（write back処理）が行われる（ステップＳ８４）。
【０１０４】
上記の処理のもと、例えば、３２バイトのメモリをクリアする処理を、キャッシュラインサイズが３２バイトで、１回の命令で４バイトの書き込みが行える環境で行う場合の処理は次のようになる。
【０１０５】
（１）４バイトの「０」をwrite（この時点では書き込まれない）
（２）メモリから１キャッシュライン（３２バイト）をread
（３）キャッシュラインに（１）で要求された４バイトの「０」をwrite
（４）次の４バイトの「０」をwrite（キャッシュラインに即座に書き込まれる）
（５）（４）と同様の処理の繰り返し（６回）
メモリクリア処理としては、単純にメモリに「０」を書き込みたいのであるが、最初の書き込みのタイミングで（２）のwrite allocate処理が行われ、メモリから１キャッシュラインサイズのデータが読み出されてしまう。この読み出されたデータは直後に「０」に上書きされてしまうものであるため、データの読み出しは無駄な処理であり、この読み出しを行わないようにすればメモリをクリアする処理を高速化することができる。また、データのコピーにおいても同様である。
【０１０６】
ＭＩＰＳ系のＣＰＵに用意されているキャッシュ命令中のSET_DIRTY_EXCLUSIVE命令を実行することでキャッシュラインをdirtyな状態にしてwrite allocate処理をスキップすることができるが、この命令は特権命令であってユーザモードでは実行できないものであったため、従来は使用することができなかった（キャッシュ操作問題）。
【０１０７】
この点、本発明のユーザシステムモードもしくは制御レジスタイネーブルモードを使用することで、ユーザプロセスから上記のSET_DIRTY_EXCLUSIVE命令等を実行することができるようになり、メモリのクリア処理等を高速に行うことができる。なお、制御レジスタイネーブルモードは特権命令一般の使用が可能になるものではないが、キャッシュは一種のレジスタと扱われているため、特権命令であるキャッシュ命令が使用可能となる。
【０１０８】
ユーザシステムモードもしくは制御レジスタイネーブルモードに移行させた状態で、例えば３２バイトのメモリをクリアする処理を、キャッシュラインサイズが３２バイトで、１回の命令で４バイトの書き込みが行える環境で行う場合の処理は次のようになる。
【０１０９】
（１）クリアするアドレスにつきキャッシュ命令を実行してdirtyな状態に設定
（２）４バイトの「０」をwrite（キャッシュラインに即座に書き込まれる）
（３）次の４バイトの「０」をwrite（キャッシュラインに即座に書き込まれる）
（４）（３）と同様の処理の繰り返し（６回）
このように、ユーザシステムモードもしくは制御レジスタイネーブルモードを使用することで、write allocate処理をスキップすることができ、メモリのクリア処理を高速化することができる。
【０１１０】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【図面の簡単な説明】
【０１１１】
【図１】本発明の一実施形態に係る画像形成装置の機能構成を示すブロック図である。
【図２】画像形成装置のハードウェア構成を示すブロック図である。
【図３】ユーザシステムモードおよび制御レジスタイネーブルモードの制御を行う機能部の構成図である。
【図４】プロセス制御ブロック内のデータ格納部の構成図である。
【図５】ＣＰＵ内のステイタスレジスタの構成図である。
【図６】ＣＰＵ内のステイタスレジスタの構成例を示す図である。
【図７】ユーザシステムモードへの移行およびユーザモードへの復帰の処理を示すフローチャートである。
【図８】ユーザモード設定部の処理を示すフローチャートである。
【図９】ユーザシステムモード設定部の処理を示すフローチャートである。
【図１０】制御レジスタイネーブルモードへの移行および通常のユーザモードへの復帰の処理を示すフローチャートである。
【図１１】プリンタのフォントＲＯＭの格納領域の例を示す図である。
【図１２】プリンタのフォントＲＯＭへのアクセスの処理を示すシーケンス図である。
【図１３】Ｉ／Ｏ装置のデータの格納領域の例を示す図である。
【図１４】Ｉ／Ｏ装置のデータへのアクセスの処理を示すシーケンス図である。
【図１５】実行時間測定のプログラム例を示す図である。
【図１６】実行時間測定の処理を示すシーケンス図である。
【図１７】リモートＲＯＭ更新の機器構成図である。
【図１８】リモートＲＯＭ更新の処理を示すシーケンス図である。
【図１９】画像メモリクリア時のキャッシュ処理の説明図である。
【符号の説明】
【０１１２】
１                画像形成装置
２                アプリケーション層
２１              コピーアプリ
２２              ファックスアプリ
２３              プリンタアプリ
２４              ネットファイルアプリ
３                インタフェース
４                プラットフォーム層
５                サービス層
５１              ＳＣＳ
５２              ＦＣＳ
５３              ＥＣＳ
５４              ＭＣＳ
５５              ＯＣＳ
５６              ＮＣＳ
６                ＯＳ層
６１              ＯＳ
７                インタフェース
８                エンジン部
８１              プロッタ
８２              スキャナ
８３              その他ハードウェアリソース
８４              エンジン制御ボード
１０１            コントローラ
１０２            ＡＳＩＣ
１０３            ＭＥＭ−Ｃ
１０４            ＨＤＤ
１０５            ＮＢ
１０６            ＣＰＵ
１０７            ＭＥＭ−Ｐ
１０８            ＳＢ
１０９            ＮＩＣ
１１０            ＵＳＢ
１１１            ＩＥＥＥ１３９４
１１２            セントロニクス
１１３            オペレーションパネル
１１４            ファックスコントロールユニット
１２１            ユーザプロセス
１２２            例外ハンドラ
１２３            ユーザモード設定部
１２４            レジスタ内容保存部
１２５            ユーザシステムモード設定部
１２６            レジスタ内容復帰部
１２７            システムコールルーチン
１２８            システムモード制御関数
１２９            制御レジスタモード制御関数
１３１            プロセス空間
１３２            ユーザ構造体
１３３            プロセス制御ブロック
１３４            システムモード格納部
１３５            レジスタ格納部
１３６            システムモード制御ビット
１３７            レジスタモード制御ビット
１４１            ＣＰＵ
１４２            ステイタスレジスタ
１４３            システムモード制御ビット
１４４            レジスタモード制御ビット
１５１〜１５３    アドレス空間
１５４            フォントＲＯＭ
１５５            Ｉ／Ｏ空間
１６５            プログラムコード
１６６〜１６８    式
１７１            ＣＰＵ
１７２            キャッシュ
１７３            メモリ
９                パーソナルコンピュータ
【図１】
2005346457.tif 000003
【図２】
2005346457.tif 000004
【図３】
2005346457.tif 000005
【図４】
2005346457.tif 000006
【図５】
2005346457.tif 000007
【図６】
2005346457.tif 000008
【図７】
2005346457.tif 000009
【図８】
2005346457.tif 000010
【図９】
2005346457.tif 000011
【図１０】
2005346457.tif 000012
【図１１】
2005346457.tif 000013
【図１２】
2005346457.tif 000014
【図１３】
2005346457.tif 000015
【図１４】
2005346457.tif 000016
【図１５】
2005346457.tif 000017
【図１６】
2005346457.tif 000018
【図１７】
2005346457.tif 000019
【図１８】
2005346457.tif 000020
【図１９】
2005346457.tif 000021