(57)【特許請求の範囲】
【請求項１】
プロセッサと、
該プロセッに結合され、プログラムが格納される記憶手段と、
該プロセッに結合された揮発性メモリと、
該プロセッに結合され又は該プロセッに内蔵されたメモリ管理ユニットと、
を有し、該メモリ管理ユニットは、
入力アドレスである変換元ブロックアドレスを出力データである変換先ブロックアドレスに変換するテーブルメモリと、
該変換元ブロックアドレスと該変換先ブロックアドレスとの一方を選択するマルチプレクサと、
を備え、該プログラムは該プロセッサに対し、
該揮発性メモリに対するメモリエラーチェックを行わせ、
メモリエラーが検出された場合には、そのブロックアドレスを、メモリエラーが検出されなかったブロックのアドレスに変換するように該テーブルメモリの内容を定めるとともに、該マルチプレクサが該変換先ブロックアドレスを選択するように該マルチプレクサを制御させ、
メモリエラーが検出されなかった場合には、該マルチプレクサが該変換元ブロックアドレスを選択するように該マルチプレクサを制御させる、
ことを特徴とする画像形成装置。
【請求項２】
該揮発性メモリは複数の半導体チップで構成され、
該マルチプレクサで選択されたアドレスの上位ビットをデコードして複数のチップ選択信号を生成するデコーダをさらに有し、
該複数のチップ選択信号が該複数の半導体チップのチップイネーブル端子にそれぞれ結合されている、
ことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
該テーブルメモリには、該変換先ブロックアドレスとともに該変換先ブロックアドレスが有効であるか無効であるかを示す情報が格納されており、
該情報が無効であることを示している場合には該プロセッサに割込がかかるように、該情報に対応する該テーブルメモリの出力が該プロセッサに結合されている、
ことを特徴とする請求項１又は２に記載の画像形成装置。
【請求項４】
該プログラムは該プロセッサに対し、
該テーブルメモリの内容を、該変換先ブロックアドレスが該変換元ブロックアドレスに等しくなるように初期化させ、
該揮発性メモリに対するメモリエラーチェックをブロック単位で順次行わせ、
メモリエラーが検出される毎に、そのブロックとメモリエラーチェック未処理ブロックとについて該変換先ブロックアドレスが１だけ一方側へシフトするように該テーブルメモリの内容を更新させる、
ことを特徴とする請求項１乃至３のいずれか１つに記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、用紙を搬送して用紙に画像を形成する、プリンタ、複写機、ファクシミリ又は複合機等の画像形成装置に係り、特に、大容量のメモリを搭載した場合に好適な画像形成装置に関する。
【背景技術】
【０００２】
画像形成装置では、形成画像の高解像度化及びカラー化並びにメモリの安価化に伴い、搭載されるメモリの大容量化が進んでいる。
【０００３】
一方、画像形成装置では、搭載メモリの全ビットに対してエラーチェックが行われ、正常であることを確認してシステムが起動される。このため、１ビットでもメモリエラーが検出されると、システムが起動されない。メモリの大容量化に伴い、メモリエラーが検出される確率が高くなる。
【０００４】
下記特許文献１には、メモリエラーが検出されたバンクメモリを使用不可とし、使用可能なバンクメモリのみ使用することにより、印刷処理を可能にすることが開示されている。
【０００５】
しかしながら、どのような構成で、使用可能なバンクメモリのみ使用するのかについて、全く記載がない。
【０００６】
第１のプログラムをデータとみなし、その命令がメモリアクセス命令であるか否かを第２のプログラムで判定し、メモリアクセスである場合に、使用可能なバンクメモリに対するアクセスであるか否かを判定し、使用不可のバンクメモリであった場合には命令語中のアドレスを変更することも可能である。しかし、第１のプログラム実行前に第２のプログラムでこのような処理を行うと共に、この処理で変更された第１のプログラムを別のメモリ領域へ格納してそれを実行させなければならないので、オーバヘッドが大きいと共に、必要なメモリ領域が増大するという問題がある。
【特許文献１】特開平８−２０４９２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、このような問題点に鑑み、簡単な構成で、メモリエラーが検出されなかったブロックのみ使用することができるようにするとともに、オーバヘッドが小さい画像形成装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明による画像形成装置の第１態様では、
プロセッサと、
該プロセッに結合され、プログラムが格納される記憶手段と、
該プロセッに結合された揮発性メモリと、
該プロセッに結合され又は該プロセッに内蔵されたメモリ管理ユニットと、
を有し、該メモリ管理ユニットは、
入力アドレスである変換元ブロックアドレスを出力データである変換先ブロックアドレスに変換するテーブルメモリと、
該変換元ブロックアドレスと該変換先ブロックアドレスとの一方を選択するマルチプレクサと、
を備え、該プログラムは該プロセッサに対し、
該揮発性メモリに対するメモリエラーチェックを行わせ、
メモリエラーが検出された場合には、そのブロックアドレスを、メモリエラーが検出されなかったブロックのアドレスに変換するように該テーブルメモリの内容を定めるとともに、該マルチプレクサが該変換先ブロックアドレスを選択するように該マルチプレクサを制御させ、
メモリエラーが検出されなかった場合には、該マルチプレクサが該変換元ブロックアドレスを選択するように該マルチプレクサを制御させる。
【０００９】
本発明による画像形成装置の第２態様では、第１態様において、
該揮発性メモリは複数の半導体チップで構成され、
該マルチプレクサで選択されたアドレスの上位ビットをデコードして複数のチップ選択信号を生成するデコーダをさらに有し、
該複数のチップ選択信号が該複数の半導体チップのチップイネーブル端子にそれぞれ結合されている。
【００１０】
本発明による画像形成装置の第３態様では、第１又は２態様において、
該テーブルメモリには、該変換先ブロックアドレスとともに該変換先ブロックアドレスが有効であるか無効であるかを示す情報が格納されており、
該情報が無効であることを示している場合には該プロセッサに割込がかかるように、該情報に対応する該テーブルメモリの出力が該プロセッサに結合されている。
【００１１】
本発明による画像形成装置の第４態様では、第１乃至３態様のいずれか１つにおいて、
該プログラムは該プロセッサに対し、
該テーブルメモリの内容を、該変換先ブロックアドレスが該変換元ブロックアドレスに等しくなるように初期化させ、
該揮発性メモリに対するメモリエラーチェックをブロック単位で順次行わせ、
メモリエラーが検出される毎に、そのブロックとメモリエラーチェック未処理ブロックとについて該変換先ブロックアドレスが１だけ一方側へシフトするように該テーブルメモリの内容を更新させる。
【発明の効果】
【００１２】
上記第１態様の構成によれば、揮発性メモリに対するメモリエラーチェックを行い、メモリエラーが検出された場合には、そのブロックを、メモリエラーの無いブロックに変換するように、テーブルメモリの内容を定めるとともに、マルチプレクサに変換先ブロックアドレスを選択させるので、簡単な構成で、メモリエラーが検出されても少ないオーバヘッドで揮発性メモリを使用可能となる。
【００１３】
また、メモリエラーが検出されなかった場合には、マルチプレクサに変換元ブロックアドレスを選択させるので、メモリ管理ユニットを用いない場合と同程度に高速で揮発性メモリをアクセス可能となる。
【００１４】
上記第２態様の構成によれば、マルチプレクサで選択されたアドレスの上位ビットをデコーダでデコードしてチップ選択信号を生成するので、メモリエラーに応じて適切なチップを選択することができる。
【００１５】
上記第３態様の構成によれば、テーブルメモリに、変換先ブロックアドレスとともにこのブロックアドレスが有効であるか無効であるかを示す情報が格納され、該情報が無効を示している場合にプロセッサに割込がかけられるので、メモリエラーブロックの存在により記憶領域が狭くなったことに起因するメモリオーバフローエラーに対処することができる。
【００１６】
上記第４態様の構成によれば、テーブルメモリの内容を初期化した後、揮発性メモリに対するメモリエラーチェックをブロック単位で順次行い、メモリエラーが検出される毎に、そのブロックとメモリエラーチェック未処理ブロックとについて変換先ブロックアドレスが１だけ一方側へシフトするようにテーブルメモリの内容を更新するので、メモリエラーチェックを行いながらテーブルメモリの内容を容易に定めることができる。
【００１７】
本発明の他の目的、構成及び効果は以下の説明から明らかになる。
【実施例１】
【００１８】
図１は、本発明の実施例１に係る画像形成装置のハードウェア構成を示す概略ブロック図である。
【００１９】
この画像形成装置１０は、例えば複合機であり、制御装置１１に操作・表示部１２及び画像形成装置本体１３が結合されて構成されている。制御装置１１は、操作・表示部１２で設定された情報やディフォルトの設定値に基づいて、画像形成装置本体１３で読み取られた原稿画像を処理し、又は、外部のホストコンピュータ２０から供給される設定情報及び画像データに基づいて、画像形成装置本体１３に対し画像を形成させる。
【００２０】
制御装置１１は、ＭＰＵ１１０に不揮発性メモリ１１１、揮発性メモリ１１２及びインタフェース１１３〜１１５がバスで結合され、インタフェース１１３〜１１５はそれぞれ操作・表示部１２、画像形成装置本体１３及びホストコンピュータ２０に結合されている。不揮発性メモリ１１１には、プログラム及びシステムの初期値等のデータが格納されている。
【００２１】
図２は、ＭＰＵ１１０と揮発性メモリ１１２との間の概略構成を示すブロック図である。
【００２２】
この例では、ＭＰＵ１１０の出力アドレスが２８ビットで、その上位８ビットが変換元ブロックアドレスＳＢＡとしてテーブルＲＡＭ３０１のアドレス入力端に供給されるとともに、マルチプレクサ３０２の一方の入力端に供給される。これらテーブル３０１及びマルチプレクサ３０２は、メモリ管理ユニット３０を構成している。
【００２３】
ここで、図５（Ａ）に示す如く、揮発性メモリ１１２は上位８ビットで識別される論理的なブロックに分割されている。頭文字０ｘを付けて１６進数を表記すると（図５では頭文字０ｘを省略）、例えばメモリブロック０ｘ００はアドレス範囲０ｘ０００００００〜０ｘ００ＦＦＦＦＦであり、メモリブロック０ｘ０１はアドレス範囲０ｘ０１０００００〜０ｘ０１ＦＦＦＦＦであり、メモリブロック０ｘＦＥはアドレス範囲０ｘＦＥ０００００〜０ｘＦＥＦＦＦＦＦである。
【００２４】
図示のようにメモリブロック０ｘ０１とメモリブロック０ｘ０４とでメモリエラーが検出された場合、図５（Ｄ）に示すようなテーブルが後述のようにプログラムに従ってＭＰＵ１１０で作成される。このテーブルは、ＲＡＭ３０１に格納され、ＲＡＭ３０１の入力端に８ビットの変換元ブロックアドレスＳＢＡを供給したときに、８ビットの変換先ブロックアドレスＤＢＡと１ビットの有効フラグＦｖをＲＡＭ３０１から出力するためのものである。例えば変換元ブロックアドレスＳＢＡが０ｘ０１のとき、ＤＢＡ＝０ｘ０２及びＦｖ＝‘１’がテーブルＲＡＭ３０１から出力される。
【００２５】
メモリエラーがなければ図５（Ａ） に示す全範囲をアドレス可能であるが、メモリエラーがあるとそのブロックが使用されないので、アドレス可能な範囲が狭くなる。Ｆｖ＝‘１’は、変換元ブロックアドレスＳＢＡに対応する有効な変換先ブロックアドレスＤＢＡが揮発性メモリ１１２に存在することを示す。Ｆｖ＝‘０’は、変換元ブロックアドレスＳＢＡに対応する有効な変換先ブロックアドレスＤＢＡが揮発性メモリ１１２に存在せず、メモリオーバフローエラーであることを示す。有効フラグＦｖは、ＭＰＵ１１０の割込要求入力端ＩＲＱに供給され、有効フラグＦｖが‘０’のときにＭＰＵ１１０に割込みがかけられ、その割込処理により、メモリオーバフローエラーであることが図１の操作・表示部１２に表示される。
【００２６】
メモリエラーチェックでメモリエラーが検出されなかった場合には、マルチプレクサ３０２により変換元ブロックアドレスＳＢＡが選択され、メモリ管理ユニット３０を用いない場合と同程度にメモリアクセスが高速となる。メモリエラーチェックでメモリエラーが検出された場合には、テーブルＲＡＭ３０１からの変換先ブロックアドレスＤＢＡがマルチプレクサ３０２により選択される。
【００２７】
マルチプレクサ３０２で選択された一方の８ビットのうち、上位４ビットはデコーダ３１でデコードされ、それぞれ揮発性メモリ１１２を構成する１６個のＤＲＡＭ１１２０〜１１２Ｆのチップイネーブル入力端ＣＥに供給される。仮想アドレスを物理アドレスに変換する従来のＭＭＵでは、変換元ブロックアドレスＳＢＡの上位ビットをデコーダに供給する構成となっているが、本実施例では、同じ変換元ブロックアドレスＳＢＡであっても、メモリエラーが存在するブロックによってアクセス対象のチップが異なる場合があるので、マルチプレクサ３０２の出力の上位ビットをデコーダ３１に供給して、チップセレクト用としている。
【００２８】
ＤＲＡＭのアドレス信号線数を半減するために、マルチプレクサ３０２の出力の下位４ビットとＭＰＵ１１０の出力アドレスの下位２０ビットとがマルチプレクサ３２に供給され、行アドレスと列アドレスとが順次時分割で、ＤＲＡＭ１１２０〜１１２Ｆのアドレス入力端ＡＤＲに供給される。
【００２９】
図３は、不揮発性メモリ１１１に格納されＭＰＵ１１０により実行されるプログラムのフローチャートであり、この実行は、画像形成装置１０への電源投入により開始される。以下、括弧内は、図中のステップ識別符号である。
【００３０】
（Ｓ０）後述のように、メモリエラーチェックを行うとともにテーブルＲＡＭ３０１に格納するテーブルを作成する。
【００３１】
（Ｓ１）ステップＳ０でエラーが検出された場合にはステップＳ２へ進み、そうでなければステップＳ３へ進む。
【００３２】
（Ｓ２）マルチプレクサ３０２に対し、変換元ブロックアドレスＳＢＡを選択させる。このマルチプレクサ３０２に対する選択制御信号は、ＭＰＵ１１０においてフリップフロップで保持されている。次にステップＳ６へ進む。
【００３３】
（Ｓ３）検出されたメモリエラーのアドレス等の情報を操作・表示部１２に表示させるとともに、処理を続行するか終了するかの選択をユーザの判断に委ねるため、この選択を操作・表示部１２に表示させる。
【００３４】
（Ｓ４）ユーザにより続行が選択された場合にはステップＳ５へ進み、そうでなければ処理を終了する。終了の場合には、システム電源をオフにしてもよい。
【００３５】
（Ｓ５）マルチプレクサ３０２に対し、変換先ブロックアドレスＤＢＡを選択させる。
【００３６】
（Ｓ６）オペレーティングシステム（ＯＳ）及びこのＯＳ上で動作する専用プログラムを起動して画像形成装置１０をレディ状態にする。
【００３７】
図４は、図３中のステップＳ０の処理の詳細フローチャートである。
【００３８】
（Ｓ１０）処理対象のメモリブロックを識別する変数ｉに、初期値０ｘ００を代入し、有効な最後のメモリブロック（エンドブロック）を識別する変数ｅｂに初期値０ｘＦＥを代入する。また、テーブルＲＡＭ３０１内のテーブルを、図５（Ｂ）に示すように初期化する。すなわち、メモリエラーが存在しないと仮定して、変換先ブロックアドレスＤＢＡの値を変換元ブロックアドレスＳＢＡ（テーブルＲＡＭ３０１の入力アドレス）の値に等しくするとともに、有効フラグＦｖを‘１’とする。
【００３９】
（Ｓ１１）メモリブロックｉをメモリエラーチェックする。このチェックでは、不揮発性メモリ１１１に格納された複数のチェックパターン、例えば'０１０１０１０１'及び'１０１０１０１０'の各々について、揮発性メモリ１１２のメモリブロックｉにチェックパターンを書き込み、その内容を読み出してこれが書込値と一致しているか否かを判定し、不一致であればエラーと判定する。
【００４０】
（Ｓ１２）ステップＳ１１でエラーが検出されなかった場合には、ステップＳ１３へ進み、そうでなければステップＳ１５へ進む。
【００４１】
（Ｓ１３）ｉを１だけインクリメントする。
【００４２】
（Ｓ１４）ｉ＞ｅｂであればステップＳ０の処理を終了し、そうでなければステップＳ１１へ戻る。
【００４３】
（Ｓ１５）エンドブロック識別変数ｅｂを１だけデクリメントし、また、変数ｊに初期値ｉを代入する。
【００４４】
（Ｓ１６）変換先ブロックアドレスＤＢＡ（ｊ）に１を加算する。ここにＤＢＡ（ｊ）は、変換元ブロックアドレスＳＢＡがｊであるときの変換先ブロックアドレスＤＢＡである。
【００４５】
（Ｓ１７）ｊを１だけインクリメントする。
【００４６】
（Ｓ１８）ｊ＞ｉであればステップＳ１９へ進み、そうでなければステップＳ１６へ戻る。
【００４７】
（Ｓ１９）Ｆｖ（ｅｂ＋１）を‘０’にし、ステップＳ１３へ進む。ここにＦｖ（ｅｂ＋１）は、変換元ブロックアドレスＳＢＡがｅｂ＋１であるときの有効フラグＦｖである。
【００４８】
例えば図５（Ａ）に示すように、メモリブロック０１にエラーが検出された場合、図４のステップＳ１６〜Ｓ１８のループにより、ＳＢＡ≧０１においてＤＢＡが１だけインクリメントされるので、図５（Ｃ）に示すようになる。同様に、メモリブロック０３にエラーが検出された場合、図４のステップＳ１６〜Ｓ１８のループにより、ＳＢＡ≧０３においてＤＢＡが１だけインクリメントされるので、図５（Ｄ）に示すようになる。
【００４９】
以上説明した如く、本実施例１によれば、揮発性メモリ１１２に対するメモリエラーチェックを行い、メモリエラーが検出された場合には、そのブロックを、メモリエラーの無いブロックに変換するように、テーブルＲＡＭ３０１の内容を定めるとともに、マルチプレクサ３０２に変換先ブロックアドレスＤＢＡを選択させるので、簡単な構成で、メモリエラーが検出されても少ないオーバヘッドで揮発性メモリ１１２を使用可能となる。
【００５０】
また、メモリエラーが検出されなかった場合には、マルチプレクサ３０２に変換元ブロックアドレスＳＢＡを選択させるので、メモリ管理ユニット３０を用いない場合と同程度に高速で揮発性メモリ１１２をアクセス可能となる。
【００５１】
さらに、マルチプレクサ３２で選択されたアドレスの上位ビットをデコーダ３１でデコードしてチップ選択信号を生成するので、メモリエラーに応じて適切なチップを選択することができる。
【００５２】
また、テーブルＲＡＭ３０１に、変換先ブロックアドレスＤＢＡとともに変換元ブロックアドレスＳＢＡが有効であるか無効であるかを示す有効フラグＦｖが格納され、有効フラグＦｖが無効を示している場合にＭＰＵ１１０に割込がかけられるので、メモリエラーブロックの存在により記憶領域が狭くなったことに起因するメモリオーバフローエラーに対処することができる。
【００５３】
また、テーブルＲＡＭ３０１の内容を初期化した後、揮発性メモリ１１２に対するメモリエラーチェックをブロック単位で順次行い、メモリエラーが検出される毎に、そのブロックとメモリエラーチェック未処理ブロックとについて変換先ブロックアドレスＤＢＡが１だけ一方側へシフトするようにテーブルＲＡＭ３０１の内容を更新するので、メモリエラーチェックを行いながらテーブルＲＡＭ３０１の内容を容易に定めることができる。
【００５４】
なお、本発明には外にも種々の変形例が含まれる。
【００５５】
例えば、上記実施例ではアドレス変換対象である揮発性メモリ１１２がＤＲＡＭである場合を説明したが、本発明はマルチプレクサ３２を省略して、ＳＲＡＭに適用可能である。
【００５６】
また、メモリ管理ユニット３０がＭＰＵ１１０に内蔵された構成であってもよい。
【００５７】
さらに、本発明はメモリエラーチェックを電源投入時に行うもの限定されず、例えば、電源オフ前にメモリエラーチェックを行ってその結果を不揮発性記憶手段に格納しておき、次に電源投入時に当該結果を読み出してテーブルＲＡＭ３０１の内容を定める構成であってもよい。このようにすれば、システム起動時間を短縮させることができる。
【００５８】
また、上記実施例ではプログラムが不揮発性メモリ１１１に格納されている場合を説明したが、ログラムは不揮発性記憶装置に格納されていればよく、ハードディスク等の外部記憶装置に格納された場合であってもよい。
【図面の簡単な説明】
【００５９】
【図１】本発明の実施例１に係る画像形成装置のハードウェア構成を示す概略ブロック図である。
【図２】ＭＰＵとメモリとの間の概略構成を示すブロック図である。
【図３】電源投入により実行が開始されるプログラムの概略フローチャートである。
【図４】図３中のステップＳ０の処理の詳細フローチャートである。
【図５】図４の処理の説明図であって、（Ａ）はメモリブロックを示す図、（Ｂ）〜（Ｄ）はテーブルＲＡＭの内容がどのように決定されるかを示す図である。
【符号の説明】
【００６０】
１０  画像形成装置
１１  制御装置
１１０  ＭＰＵ
１１１  不揮発性メモリ
１１２  揮発性メモリ
１１２０〜１１２Ｆ  ＤＲＡＭ
１１３〜１１５  インタフェース
１２  操作・表示部
１３  画像形成装置本体
２０  ホストコンピュータ
３０  メモリ管理ユニット
３０１  テーブルＲＡＭ
３０２、３２  マルチプレクサ
３１  デコーダ
１１２０  ＤＲＡＭ
ＣＥ  チップイネーブル入力端子
ＡＤＲ  アドレス入力端子
ＳＢＡ  変換元ブロックアドレス
ＤＢＡ  変換先ブロックアドレス
Ｆｖ  有効フラグ
【図１】
0004438740.tif 000002
【図２】
0004438740.tif 000003
【図３】
0004438740.tif 000004
【図４】
0004438740.tif 000005
【図５】
0004438740.tif 000006