(57)【要約】【課題】アドレスデコーダにおいて、プログラムが暴走した際の不揮発性メモリへの書き込みを防止し、当該メモリの内容を適切に保護することができるメモリ制御方法、メモリ制御装置およびプリンタのメモリ制御方法を提供する。【解決手段】データの書き換え可能な不揮発性メモリを含む複数の記憶装置に割り当てる複数のアドレス領域を配置し、制御情報により記憶装置の動作を制御するＣＰＵと、ＣＰＵからの前記制御情報に基づいて、アクセスする記憶装置を特定し、当該記憶装置の動作を有効にするアクセス制御手段とを有する装置において実行されるメモリ制御方法である。ＣＰＵのアドレス空間は、不揮発性メモリに記憶されるプログラムを保護するための保護領域を配置する。このメモリ制御方法は、ＣＰＵが制御情報に基づいて保護領域を特定した場合、アクセス制御手段は不揮発性メモリに記憶されるプログラムの制御を禁止する。【選択図】図２
2010134555.tif 000002
【特許請求の範囲】
【請求項１】
データの書き換え可能な不揮発性メモリを含む複数の記憶装置に割り当てる複数のアドレス領域を配置し、制御情報により前記記憶装置の動作を制御するＣＰＵと、前記ＣＰＵからの前記制御情報に基づいて、アクセスする記憶装置を特定し、当該記憶装置の動作を有効にするアクセス制御手段とを有する装置において実行されるメモリ制御方法であって、
前記ＣＰＵのアドレス空間は、前記不揮発性メモリに記憶されるプログラムを保護するための保護領域を配置し、
前記ＣＰＵが前記制御情報に基づいて前記保護領域を特定した場合、前記アクセス制御手段は不揮発性メモリに記憶される前記プログラムの制御を禁止するステップ（ａ）を有すること特徴するメモリ制御方法。
【請求項２】
前記制御情報は、アドレス空間内の所定の領域を特定するためのアドレス情報、および記憶装置を有効にするための動作選択情報を含み、
前記ステップ（ａ）において、前記アクセス制御手段は、前記アドレス情報に基づいて前記保護領域を特定した場合、前記動作選択信号を無効にする請求項１に記載のメモリ制御方法。
【請求項３】
前記制御情報は、アドレス空間内の所定の領域を特定するためのアドレス情報、および記憶装置に書込動作を指示する書込情報を含み、
前記ステップ（ａ）において、前記アクセス制御手段は、前記アドレス情報に基づいて前記保護領域を特定した場合、書込情報を遮断する請求項１に記載のメモリ制御方法。
【請求項４】
前記ＣＰＵのアドレス空間は、前記不揮発性メモリに記憶されるプログラム領域を前記保護領域に近接して配置する請求項１〜３のいずれか一項に記載のメモリ制御方法。
【請求項５】
前記ＣＰＵのアドレス空間は、前記不揮発性メモリに記憶されるプログラム領域を前記保護領域の前後に配置する請求項４に記載のメモリ制御方法。
【請求項６】
前記不揮発性メモリは、プログラムを記憶するプログラム領域およびデータの書き換え可能な不揮発性メモリ領域を配置し、
前記ＣＰＵのアドレス空間は、プログラム領域と不揮発性メモリ領域との間に、前記保護領域を配置する請求項１〜５のいずれか一項に記載のメモリ制御方法。
【請求項７】
請求項１〜６に記載のメモリ制御方法であって、
前記不揮発性メモリに記憶されるプログラムは、プリンタのプログラムであり、
前記ステップ（ａ）において、前記アクセス制御手段は不揮発性メモリに記憶される前記プリンタのプログラムの制御を禁止するプリンタのメモリ制御方法。
【請求項８】
データの書き換え可能な不揮発性メモリを含む複数の記憶装置を制御するメモリ制御装置であって、
複数の記憶装置に割り当てる複数のアドレス領域を配置し、制御情報により前記記憶装置の動作を制御するＣＰＵと、
前記ＣＰＵからの前記制御情報に基づいて、アクセスする記憶装置を特定し、当該記憶装置の動作を有効にするアクセス制御手段とを有し、
前記ＣＰＵのアドレス空間は、前記不揮発性メモリに記憶されるプログラムを保護するための保護領域を配置し、
前記ＣＰＵが前記制御情報に基づいて前記保護領域を特定した場合、前記アクセス制御手段は不揮発性メモリに記憶される前記プログラムの制御を禁止すること特徴するメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの書き換え可能な不揮発性メモリを含むメモリへアクセスするためのメモリ制御方法、メモリ制御装置およびプリンタのメモリ制御方法に関する。
【背景技術】
【０００２】
コンピュータが著しく普及するにつれて、コンピュータシステムにおいて、メモリ、Ｉ／Ｏなどアクセス制御回路の高信頼性設計が要望されている。
【０００３】
従来、アクセス制御回路は、一致検出回路、セット・リセット回路（ＲＳ回路）、アドレスデコーダ回路、ＡＮＤゲート、メモリブロック、アドレスバス、データバスなどで構成される。このようなアクセス回路では、信号がアクティブなアドレスに対して読み出し、書き込みを行うことにより、メモリブロックへのアクセスを制限していた。そのため、メモリブロックの内容をプログラムの暴走やバグなどによる破壊から十分に保護することができないという問題点があった。
【０００４】
そこで、タイマー回路を設けて、一定時間に限りメモリブロックへのアクセスを許可し、メモリブロックの内容をプログラムの暴走による破壊から防ぐ技術が提案されている（例えば、特許文献１参照。）。
【０００５】
この特許文献１に記載の技術では、メモリブロックへのアクセスが許可された後に、プログラムが暴走した場合であっても、一定時間経過後に自動的にアクセスが不許可となり、メモリブロックの内容をプログラムの暴走による破壊から防いでいる。
【特許文献１】特開平０５−１５１０９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載の技術は、タイマー回路を設けて、メモリブロックへのアクセスを制御するため、回路構成やその制御が複雑となる。
【０００７】
本発明は上記従来技術の課題に鑑みてなされたものであり、本発明の目的は、アドレスデコーダにおいて、プログラムが暴走した際の不揮発性メモリへの書き込みを防止し、当該メモリの内容を適切に保護することができるメモリ制御方法、メモリ制御装置およびプリンタのメモリ制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の上記目的は、下記の手段によって達成される。
【０００９】
（１）データの書き換え可能な不揮発性メモリを含む複数の記憶装置に割り当てる複数のアドレス領域を配置し、制御情報により前記記憶装置の動作を制御するＣＰＵと、前記ＣＰＵからの前記制御情報に基づいて、アクセスする記憶装置を特定し、当該記憶装置の動作を有効にするアクセス制御手段とを有する装置において実行されるメモリ制御方法であって、前記ＣＰＵのアドレス空間は、前記不揮発性メモリに記憶されるプログラムを保護するための保護領域を配置し、前記ＣＰＵが前記制御情報に基づいて前記保護領域を特定した場合、前記アクセス制御手段は不揮発性メモリに記憶される前記プログラムの制御を禁止するステップ（ａ）を有すること特徴するメモリ制御方法。
【００１０】
（２）前記制御情報は、アドレス空間内の所定の領域を特定するためのアドレス情報、および記憶装置を有効にするための動作選択情報を含み、前記ステップ（ａ）において、前記アクセス制御手段は、前記アドレス情報に基づいて前記保護領域を特定した場合、前記動作選択信号を無効にする上記（１）に記載のメモリ制御方法。
【００１１】
（３）前記制御情報は、アドレス空間内の所定の領域を特定するためのアドレス情報、および記憶装置に書込動作を指示する書込情報を含み、前記ステップ（ａ）において、前記アクセス制御手段は、前記アドレス情報に基づいて前記保護領域を特定した場合、書込情報を遮断する上記（１）に記載のメモリ制御方法。
【００１２】
（４）前記ＣＰＵのアドレス空間は、前記不揮発性メモリに記憶されるプログラム領域を前記保護領域に近接して配置する上記（１）〜（３）のいずれか一つに記載のメモリ制御方法。
【００１３】
（５）前記ＣＰＵのアドレス空間は、前記不揮発性メモリに記憶されるプログラム領域を前記保護領域の前後に配置する上記（４）に記載のメモリ制御方法。
【００１４】
（６）前記不揮発性メモリは、プログラムを記憶するプログラム領域およびデータの書き換え可能な不揮発性メモリ領域を配置し、前記ＣＰＵのアドレス空間は、プログラム領域と不揮発性メモリ領域との間に、前記保護領域を配置する上記（１〜５のいずれか一項）に記載のメモリ制御方法。
【００１５】
（７）上記（１）〜（６）に記載のメモリ制御方法であって、前記不揮発性メモリに記憶されるプログラムは、プリンタのプログラムであり、前記ステップ（ａ）において、前記アクセス制御手段は不揮発性メモリに記憶される前記プリンタのプログラムの制御を禁止するプリンタのメモリ制御方法。
【００１６】
（８）データの書き換え可能な不揮発性メモリを含む複数の記憶装置を制御するメモリ制御装置であって、複数の記憶装置に割り当てる複数のアドレス領域を配置し、制御情報により前記記憶装置の動作を制御するＣＰＵと、前記ＣＰＵからの前記制御情報に基づいて、アクセスする記憶装置を特定し、当該記憶装置の動作を有効にするアクセス制御手段とを有し、前記ＣＰＵのアドレス空間は、前記不揮発性メモリに記憶されるプログラムを保護するための保護領域を配置し、前記ＣＰＵが前記制御情報に基づいて前記保護領域を特定した場合、前記アクセス制御手段は不揮発性メモリに記憶される前記プログラムの制御を禁止すること特徴するメモリ制御装置。
【発明の効果】
【００１７】
本発明では、アドレスデコーダにおいて、プログラムが暴走した際の不揮発性メモリへの書き込みを防止することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【００１９】
図１は、本実施形態に係るプリンタの構成を概略的に示す構成図である。
【００２０】
プリンタ１は、各機械部分を駆動する回路としてのメカ制御用基板１０と、画像データの処理を実行する回路としての画像処理用基板２０とを有し、プリンタ１の各機械部分の制御と画像データの処理を別途実行し、プリンタ処理の高速化を図る。
【００２１】
メカ制御用基板１０は、ＣＰＵ１１と、ＦｌａｓｈＲＯＭ１２と、ＲＡＭ１３とを備えており、これらは信号をやり取りするためのバスを介して相互に接続される。ＣＰＵ１１は、プログラムにしたがってプリンタ１の各機械部分の制御や各種の演算処理等を行う。ＦｌａｓｈＲＯＭ１２は、プリンタ１の制御プログラムを格納する。ＲＡＭ１３は、作業領域として一時的にプログラムやデータを記憶する。
【００２２】
画像処理用基板２０は、ＣＰＵ２１と、ＦｌａｓｈＲＯＭ２２と、ＲＡＭ２３と、ＨＤＤ（ハードディスクドライブ）２４とを備えており、これらは信号をやり取りするためのバスを介して相互に接続される。ＣＰＵ２１は、画像処理プログラムにしたがって各種の演算を実行し画像データの処理を行う。ＦｌａｓｈＲＯＭ２２は、画像処理プログラムを格納する。ＲＡＭ２３は、作業領域として一時的にプログラムやデータを記憶する。ＨＤＤ２４は、プリンタ１が受信した画像データを一時的に記憶する。
【００２３】
これら基板は、その内部にＦｌａｓｈＲＯＭを搭載しプログラムを格納することで、プリンタに回路基板を実装したままで書き込みや消去をすることができ、プログラムのアップデートや利便性の向上等を図ることができる。
【００２４】
このように、プログラムや各種データ等が複数の記憶装置に格納される場合、ＣＰＵは、アドレスマップを用いて、各記憶装置におけるアクセスする領域を一元的に管理する。つまり、アドレスマップは、ＣＰＵのアドレス空間とアクセス領域（各記憶装置への割り当て）との対応関係を示す。
【００２５】
図２を参照して、プリンタのアドレスマップを説明する。図２は、プリンタのアドレスマップの一例を示す図であり、図１に示す画像処理用基板についてのアドレスマップである。
【００２６】
アドレスマップには、画像処理中に生成されるデータを一時的に記憶するためのＲＡＭ領域と、プリンタが受信した画像データを一時的に記憶するためのハードディスク領域と、画像処理プログラムを格納するためのプログラム領域と、ＣＰＵの演算結果やアドレス等を格納するためのＣＰＵレジスタ領域と、プログラム領域を保護するためのプロテクト領域とが配置される。図２に示すでは、ＣＰＵは３２ビットであり、合計で４Ｇバイトのアドレスマップ領域を有する。
【００２７】
ＲＡＭ領域はＲＡＭ２３で構成され、２Ｇバイトである。ＲＡＭ領域には、０ｘ００００―００００番地（先頭の０ｘは１６進表記であることを示す）〜０ｘ７ＦＦＦ―ＦＦＦＦ番地が割り振られる。
【００２８】
ハードディスク領域はＨＤＤ２４で構成され、２５６Ｍバイトである。ハードディスク領域には、０ｘ８０００―００００番地〜０ｘ８ＦＦＦ―ＦＦＦＦ番地が割り振られる。
【００２９】
ＣＰＵレジスタ領域はＣＰＵ２１内部のレジスタで構成され、１Ｇバイトである。ＣＰＵレジスタ領域には、０ｘＣ０００―００００番地〜０ｘＣＦＦＦ―ＦＦＦＦ番地が割り振られる。
【００３０】
プログラム領域およびプロテクト領域はＦｌａｓｈＲＯＭ２２で構成される。プログラム領域には、０ｘＡ０００―００００番地〜０ｘＡＦＦＦ―ＦＦＦＦ番地が割り振られ、２５６Ｍバイトである。プロテクト領域には、０ｘ９０００―００００番地〜０ｘ９ＦＦＦ―ＦＦＦＦ番地および０ｘＢ０００―００００番地〜０ｘＢＦＦＦ―ＦＦＦＦ番地が割り振られ、それぞれ２５６Ｍバイトである。
【００３１】
ＣＰＵ２１が画像処理を実行する場合のアドレスマップへの通常のアクセスを説明する。
【００３２】
ＣＰＵ２１は、プログラム領域にアクセスしプログラムを起動し、ＣＰＵレジスタ領域にアクセスし必要な画像データの格納先のアドレスを取り出し、ハードディスク領域にアクセスし処理すべき画像データを読み込み、ＲＡＭ領域にアクセスし画像データの画像処理プログラムを読み込み、画像データに対して画像処理を実行する。ここで、通常のアクセスにおいて、ＣＰＵ２１はプロテクト領域にアクセスすることはない。
【００３３】
このように、ＣＰＵ２１がプログラム通りに正常に動作する場合、プログラム領域への書き込みは発生しない。しかし、外部からノイズ等を受けて各バスや各線を流れる電流値（信号値）に変化が生じること等が原因となり、プログラムが暴走し、予期せぬアドレスにアクセスして画像処理が正常に実行されないことがある。
【００３４】
この場合、画像処理プログラムを格納するプログラム領域を保護し、画像処理プログラムが再書き込みされることを防止する必要がある。
【００３５】
プロテクト領域は、プログラムが暴走した場合、プログラム領域への動作禁止領域または書込禁止領域を構成し、プログラム領域への再書込を禁止する。
【００３６】
例えば、ＣＰＵ２１がハードディスク領域へデータの書き込みを実行している際に、プログラムが暴走した場合、一つの特性として、アドレスポインタはインクリメントし、ハードディスク領域を超えてプロテクト領域にアクセスする場合がある。ここで、ＣＰＵ２１がプロテクト領域にアクセスした場合、プログラムの制御を禁止する。
【００３７】
本実施形態では、プログラム領域の前後にプロテクト領域を配置するため、プログラムが暴走した場合、アドレスポインタはインクリメントするときに限らず、デクリメントするにも有効である。また、アドレスポインタがランダムにプロテクト領域を指定する場合も、プログラムの制御を禁止することができる。
【００３８】
図３および４を参照して、プログラムが暴走した場合、プログラムの制御を禁止する方法を説明する。図３は、ＣＰＵからＦｌａｓｈＲＯＭを制御する回路部の一例を示す図ある。
【００３９】
ＣＰＵ３１は、制御信号をアドレスデコーダ３２に伝送し、アドレスレコーダ３２にデコードさせ、アクセスするデバイス（ＦｌａｓｈＲＯＭ）を特定してチップイネーブル信号を伝送させる。その後、ＣＰＵ３１は、特定されたデバイス（ＦｌａｓｈＲＯＭ）との間でデータ信号を送受信し、データの読込や書込を実行する。
【００４０】
ＣＰＵ３１は、アドレスバス、ＣＳ（チップセレクト）線を介してアドレスデコーダ３２に接続され、リード線、ライト線、データバスを介してＦｌａｓｈＲＯＭ３３に接続される。ＦｌａｓｈＲＯＭ３３は、ＣＳ（チップセレクト）線を介してアドレスデコーダ３２に接続される。
【００４１】
制御信号としては、アドレス信号、チップイネーブル（ＣＥ）信号、アウトプットイネーブル（ＯＥ：読込イネーブル）信号およびライトイネーブル（ＷＥ：書込イネーブル）信号がある。
【００４２】
アドレスデコーダ３２は、ＣＰＵ３１からのアドレス信号に基づきアクセスするデバイス（ＦｌａｓｈＲＯＭ）を判定して、該当するデバイス（ＦｌａｓｈＲＯＭ）をイネーブル（有効）にするためのＣＥ信号を伝送する。つまり、ＣＰＵ３１からＦｌａｓｈＲＯＭ３２へのアドレス信号およびＣＥ信号が伝送された場合、アドレスデコーダ３２はＦｌａｓｈＲＯＭ３３にＣＥ信号を伝送し、ＦｌａｓｈＲＯＭ３３を動作状態にする。
【００４３】
アドレス信号は、図２に示すアドレスマップ上の各領域に付与される番地を指定するための信号であり、アドレスバスを介して伝送される。
【００４４】
ＣＥ信号は、デバイスの選択または非選択を決めるための活性化（アクティブ）信号であり、ＣＳ線を介して伝送される。例えば、ＣＥ信号が"Ｌ"レベルの場合、ＣＳ信号により、ＦｌａｓｈＲＯＭ３３はイネーブルにされ、動作状態となり、一方、"Ｈ"レベルの場合、ＦｌａｓｈＲＯＭ３３は停止状態になる。
【００４５】
ＯＥ信号は、読み込みを可能にするための信号である。例えば、ＯＥ信号が"Ｈ"レベルの場合、内部のアドレスポインタはインクリメントし、読込動作を実行し、一方、"Ｌ"レベルの場合、内部への読込動作は禁止され、内部のアドレスポインタは停止する。
【００４６】
ＷＥ信号は、書き込みを可能にするための信号である。例えば、ＷＥ信号が"Ｈ"レベルの場合、内部のアドレスポインタはインクリメントし、読込動作を実行し、一方、"Ｌ"レベルの場合、内部への書込動作は停止され、内部のアドレスポインタは停止する。
【００４７】
データ信号は、アドレス信号で選択されたデバイス（ＦｌａｓｈＲＯＭ）とＣＰＵとの間でデータをやり取りするための信号であり、データバスを介して伝送される。つまり、ＦｌａｓｈＲＯＭ３３にプログラムが書き込まれる場合、ＣＰＵ３１からＦｌａｓｈＲＯＭ３３にプログラムデータが伝送される。一方、ＦｌａｓｈＲＯＭ３３からデータが読み込まれる場合、ＦｌａｓｈＲＯＭ３３からＣＰＵ３１にデータが伝送される。
【００４８】
ＣＰＵ３１が、ＦｌａｓｈＲＯＭ３３へデータの読込を命令する場合の動作について説明する。ＦｌａｓｈＲＯＭ３３には、プログラムが格納される。ＣＰＵ３１は、ＣＳ線を介してアドレス信号とＣＥ信号を出力するとともに、ＯＥ線を介してＯＥ信号を出力して、ＦｌａｓｈＲＯＭ３３をプログラムデータの読出可能な状態にする。ＣＰＵ３１は、データバスを介して、ＦｌａｓｈＲＯＭ３３からプログラムデータを取得する。
【００４９】
次に、ＣＰＵ３１が、ＦｌａｓｈＲＯＭ３３へデータの書込を命令する場合の動作について説明する。ＣＰＵ３１は、ＣＳ線を介してアドレス信号とＣＥ信号を出力するとともに、ＯＥ線を介してＯＥ信号を出力して、ＦｌａｓｈＲＯＭ３３をデータの書込可能な状態にする。ＣＰＵ３１は、データバスを介して、ＦｌａｓｈＲＯＭ３３にデータを伝送し格納させる。
【００５０】
ここで、ＣＰＵ３１からＦｌａｓｈＲＯＭ３３のプロテクト領域へアクセスがある場合、アドレスデコーダ３２は、ＣＥ信号を伝送しない。
【００５１】
つまり、ＣＰＵ３１がプログラム通りに正常に動作するとき、ＣＰＵ３１はプロテクト領域にはアクセスしないため、プロテクト領域へのアクセスがある場合、プログラムが暴走したとみなし、ＣＥ信号を遮断する。したがって、プロテクト領域は、動作禁止領域を構成することになり、プログラム領域への再書込を禁止する。
【００５２】
したがって、例えば、ＣＰＵ３１がハードディスク領域へデータの書き込みを実行している際に、プログラムが暴走しアドレスポインタがインクリメントし、ハードディスク領域を超えてプロテクト領域にアクセスする場合、書込動作は実行されず、プログラム領域への再書込みを禁止することができる。なお、この場合、ＣＰＵ３１は全ての領域へアクセスすることは可能であるが、停止状態である。
【００５３】
図４は、ＣＰＵからＦｌａｓｈＲＯＭを制御する回路部の他の例を示す図である。なお、図３を参照して説明した部分と同様のものについては、説明の重複を避けるため、その説明を省略する。
【００５４】
ＣＰＵ４１は、制御信号をアドレスデコーダ４２に伝送し、アドレスレコーダ４２にデコードさせ、アクセスするデバイス（ＦｌａｓｈＲＯＭ）を特定してチップイネーブル信号を伝送させる。その後、ＣＰＵ４１は、特定されたデバイス（ＦｌａｓｈＲＯＭ）との間でデータ信号を送受信し、データの読込や書込を実行する。
【００５５】
または、ＣＰＵ４１は、制御信号をアドレスデコーダ４２に伝送し、アドレスレコーダ４２にデコードさせ、アクセスするデバイス（ＦｌａｓｈＲＯＭ）を特定する。その後、ＣＰＵ４１は、ＣＥ信号およびＯＥ信号を特定されたデバイス（ＦｌａｓｈＲＯＭ）に伝送し、データ信号を送受信し、データの読込を実行する。
【００５６】
ＣＰＵ４１は、アドレスバス、ライト線を介してアドレスデコーダ４２に接続され、ＣＳ線、リード線、データバスを介してＦｌａｓｈＲＯＭ４４に接続される。ＦｌａｓｈＲＯＭ４３は、ライト線を介してアドレスデコーダ４２に接続される。
【００５７】
アドレスデコーダ４２は、ＣＰＵ４１からのアドレス信号およびＷＥ信号に基づきアクセスするデバイス（ＦｌａｓｈＲＯＭ）を判定して、該当するデバイス（ＦｌａｓｈＲＯＭ）をイネーブル（有効）にする。つまり、ＣＰＵ４１からＦｌａｓｈＲＯＭ４２へのアドレス信号およびＷＥ信号が伝送された場合、アドレスデコーダ４２はＦｌａｓｈＲＯＭ４３にＷＥ信号を伝送し、ＦｌａｓｈＲＯＭ４３を書込可能な状態にする。その後、ＣＰＵ４１は、ＦｌａｓｈＲＯＭ４３との間でデータをやり取りし、ＦｌａｓｈＲＯＭ４３にプログラムを書き込む。
【００５８】
ＣＰＵ４１が、ＦｌａｓｈＲＯＭ４３へデータの書込を命令する場合の動作について説明する。ＣＰＵ４１は、ＣＳ線を介してアドレス信号とＷＥ信号を出力するとともに、ＣＳ線を介してＷＥ信号を出力して、ＦｌａｓｈＲＯＭ４３をプログラムデータの書込可能な状態にする。ＣＰＵ４１は、データバスを介して、ＦｌａｓｈＲＯＭ４３にデータを伝送し格納させる。
【００５９】
ここで、ＣＰＵ４１からＦｌａｓｈＲＯＭ４３のプロテクト領域へアクセスがある場合、アドレスデコーダ４２は、ＷＥ信号を伝送しない。
【００６０】
つまり、ＣＰＵ４１がプログラム通りに正常に動作するとき、ＣＰＵ４１はプログラム領域にはアクセスしないため、プロテクト領域へのアクセスがある場合、プログラムが暴走したとみなし、ＷＥ信号を遮断する。したがって、プロテクト領域は、書込禁止領域を構成することなり、プログラム領域への再書込を禁止する。
【００６１】
したがって、例えば、ＣＰＵ４１がハードディスク領域へデータの書込を実行している際に、プログラムが暴走する場合、書込動作は実行されず、いずれの領域への再書込みを禁止することができる。なお、この場合、ＣＰＵ４１は全ての領域へアクセスすることは可能であるが、書込動作は禁止される。
【００６２】
次に、ＣＰＵ４１が、ＦｌａｓｈＲＯＭ４３へデータの読込を命令する場合の動作について説明する。ＣＰＵ３１は、ＣＳ線を介してアドレス信号を出力するとともに、ＯＥ線を介してＯＥ信号を出力し、ＣＳ線を介してＣＥ信号を出力して、ＦｌａｓｈＲＯＭ４３をデータの読込可能な状態にする。ＣＰＵ４１は、データバスを介して、ＦｌａｓｈＲＯＭ４３からプログラムデータを取得する。
【００６３】
このようなプログラムの制御を禁止する方法は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）や、ＣＰＬＤ  (Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ)およびＦＰＧＡ  (Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ)などのＰＬＤ(ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ)を用いることにより実現することができる。これらの論理回路は、Ｖｅｒｉｏｇ−ＨＤＬやＶＨＤＬ等のデジタル回路設計用のハードウェア記述言語（ＨＤＬ)により記述される。
【００６４】
本実施形態によれば、プロテクト領域が、動作禁止領域または書込禁止領域を構成することにより、プログラムが暴走した場合、プログラムの制御を禁止することができる。したがって、アドレスデコーダにおいて、プログラムが暴走した際のＦｌａｓｈＲＯＭＯへの書き込みを防止し、当該ＦｌａｓｈＲＯＭの内容を適切に保護することができる。
【００６５】
本発明は、上記実施形態のみに限定されるものではなく、特許請求の範囲内において、種々改変することができる。
【００６６】
図５を参照して、プリンタのアドレスマップの他の例を説明する。図５は、プリンタのアドレスマップの他の例を示す図である。
【００６７】
上記本実施形態では、プリンタのアドレスマップにおいて、プログラム領域は、ＦｌａｓｈＲＯＭで構成されており、ＦｌａｓｈＲＯＭには、他にプロテクト領域が配置されているが、本発明は、これに限定されるものではない。
【００６８】
ＦｌａｓｈＲＯＭには、プログラム領域および不揮発性メモリ領域を配置させることができる。この場合、ＦｌａｓｈＲＯＭには、プリンタのプログラムを格納する他、未使用領域を設けることができる。この場合、ＦｌａｓｈＲＯＭに、プログラム領域および不揮発性メモリ領域を配置することにより、ＦｌａｓｈＲＯＭの有効利用を図ることができる。例えば、コンビニ等のプリンタで使用される際には印刷枚数のカウントが必要である。この場合、不揮発性メモリ領域である未使用領域に、印刷情報等を書き込むことができ、ＦｌａｓｈＲＯＭの有効利用を図るとともに、利便性の向上を図ることができる。
【００６９】
図５は、図２に示すプリンタのアドレスマップにおけるプログラム領域の変形例に相当する。したがって、当該領域は、０ｘＡ０００―００００番地〜０ｘＡＦＦＦ―ＦＦＦＦ番地が割り振られ、２５６Ｍバイトである。
【００７０】
アドレスマップには、使用後に情報を書き込むための未使用領域である不揮発性メモリ領域と、プログラム領域を保護するためのプロテクト領域と、画像処理プログラムを格納するためのプログラム領域とが配置される。
【００７１】
不揮発性メモリ領域には、０ｘＡＣ０００―００００番地〜０ｘＡ１ＦＦ―ＦＦＦＦ番地が割り振られ、プロテクト領域には、０ｘＡ４００―００００番地〜０ｘＡ７ＦＦ―ＦＦＦＦ番地が割り振られ、プログラム領域には、０ｘＡ８００―００００番地〜０ｘＡＦＦＦ―ＦＦＦＦ番地が割り振られる。
【００７２】
このように、プログラム領域の前にプロテクト領域を配置するため、上記実施形態と同様に、プログラムが暴走した場合、プロテクト領域がプログラム領域への再書込を禁止する。
【００７３】
例えば、ＣＰＵが不揮発性メモリへデータの書き込みを実行している際に、プログラムが暴走した場合、アドレスポインタはインクリメントし、不揮発性メモリ領域を超えてプロテクト領域にアクセスする場合がある。そこで、ＣＰＵがプロテクト領域にアクセスした場合、プログラムの制御を禁止することで、プログラム領域への再書込みが禁止される。
【００７４】
また、上記実施形態では、本発明のメモリ制御方法をプリンタに適用して説明したが、本発明はこれに限定されるものではない。本発明のメモリ制御方法は、ＭＦＰ（Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）、デジタル複写機、ファクシミリ、電子メールプリンタ等の電子写真方式を用いた画像形成装置の他、データの書換可能な不揮発性メモリ（ＥＰＲＯＭ：Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）を実装するコンピュータ制御機器にも適用可能である。
【図面の簡単な説明】
【００７５】
【図１】本実施形態に係るプリンタの構成を概略的に示す構成図である。
【図２】プリンタのアドレスマップの一例を示す図である。
【図３】ＣＰＵからＦｌａｓｈＲＯＭを制御する回路部の一例を示す図ある。
【図４】ＣＰＵからＦｌａｓｈＲＯＭを制御する回路部の他の例を示す図ある。
【図５】プリンタのアドレスマップの他の例を説明する。
【符号の説明】
【００７６】
１    プリンタ、
１０    メカ制御用基板、
１１，２１，３１，４１    ＣＰＵ、
１２，２２，３３，４３    ＦｌａｓｈＲＯＭ、
１３，２３    ＲＡＭ、
２０    画像処理用基板、
２４    ＨＤＤ、
３２，４２    アドレスデコーダ。
【図１】
2010134555.tif 000003
【図２】
2010134555.tif 000004
【図３】
2010134555.tif 000005
【図４】
2010134555.tif 000006
【図５】
2010134555.tif 000007