JP3548252B2 - 外部メモリ用アドレス制御装置およびアドレス制御方法 - Google Patents
外部メモリ用アドレス制御装置およびアドレス制御方法 Download PDFInfo
- Publication number
- JP3548252B2 JP3548252B2 JP33251894A JP33251894A JP3548252B2 JP 3548252 B2 JP3548252 B2 JP 3548252B2 JP 33251894 A JP33251894 A JP 33251894A JP 33251894 A JP33251894 A JP 33251894A JP 3548252 B2 JP3548252 B2 JP 3548252B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- slot
- external memory
- memory device
- slots
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims description 108
- 238000000034 method Methods 0.000 title claims description 78
- 230000001419 dependent effect Effects 0.000 claims description 18
- 230000008859 change Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 41
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000000859 sublimation Methods 0.000 description 1
- 230000008022 sublimation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0653—Configuration or reconfiguration with centralised address assignment
Description
【産業上の利用分野】
本発明は、レーザビームプリンタをはじめとする印刷装置等の制御装置に使用される外部メモリのアドレスを制御する外部メモリ用アドレス制御装置およびアドレス制御方法に関する。
【0002】
【従来の技術】
従来、外部メモリ装置に対するアドレスは固定の絶対アドレスが割り付けられていた。しかしながら、外部メモリ装置のスロットが複数ある場合、個々に絶対アドレスを割り付けると、外部メモリ装置にアドレスに依存するプログラム等を格納する場合、特定のスロットにしか差せなくなるという問題点があった。
【0003】
【発明が解決しようとする課題】
これを解決する方法として、1)バンク切り換えを行う方法、2)PIC(Position Independent Coding)及びPID(Position Independent Data)を使用する方法、等が提案されている。
【0004】
まず、1)のバンク切り換えを行う方法は、外部メモリ装置用の複数のスロットに対し、全て同一のアドレスを割り付け、本体プログラムからアクセスする際にバンクを切り換えることによって、所望のスロットを選択する方法である。この方法によれば、どのスロットに差そうと、外部メモリ装置に割り付けられる先頭アドレスは同一であるため、アドレスに依存するプログラム等であってもスロットを選ばないで差すことができる。
【0005】
しかしながら、この方法では、複数のスロットに差された複数の外部メモリのデータに対して本体プログラムが交互にアクセスする場合など、バンクを頻繁に切り換える必要があるという問題点がある。さらに、片方のスロットに差されたプログラム等がもう一方のスロットに差されたフォント等のデータをアクセスするといった場合、この方法では実現できないという問題点もある。
【0006】
次に、2)のPICおよびPIDを用いる方法であるが、PICは、プログラムのコンパイル時に、プログラム内でのアドレス指定を絶対アドレス指定ではなく現在のアドレスからの相対アドレス指定にすることにより、絶対アドレスを意識しないプログラムにする方法であり、PIDは、データとして書かれるアドレスを外部メモリ装置先頭からの相対アドレスで指定し、特定のレジスタに外部メモリ装置先頭アドレスをプログラム実行時に設定することにより、データ内のアドレスの絶対アドレスを獲得する方法である。
【0007】
これらの方法によれば、プログラム自体は絶対アドレスを意識しないので、外部メモリ装置がどのアドレスのスロットに差されても問題なく動作するし、データについては、本体プログラムから外部メモリ内のプログラムを起動する際に所定のレジスタに外部メモリ装置のスロットの先頭アドレスを設定することで、どのスロットに差されても絶対アドレスを獲得することができる訳である。
【0008】
しかしながら、これらの方法では本体プログラムから直接外部メモリ内データにアクセスすることが難しいという問題点がある。なぜなら、本体にあるデータ内アドレスは絶対アドレス表記されていないため、本体プログラムはデータアクセス時に、いちいちどのスロットのデータにアクセス中かを意識しながら、相対アドレスとして意識したり、絶対アドレスとして意識したりするようにしなければならないからである。同様に、外部メモリ内のプログラムが本体にあるデータや別のスロットに差されたデータに対してアクセスする際にも、問題が生ずる。さらに、相対アドレス指定では、絶対アドレスを獲得するために必ず1ステップ、余計なコーディングが必要になりパフォーマンス劣化の原因になる。また、PICおよびPIDはコンパイラの機能なので、この機能を有さないコンパイラでは、この方法は使用できないという問題点もあった。
【0009】
【課題を解決するための手段】
本発明は、上記課題を解決するためになされたもので、バンク切り換えやPICおよびPIDの機能を使用せずに、アドレスに依存するデータが格納された外部メモリ装置が複数スロットのいずれのスロットに差されても正常に動作するようにした外部メモリ装置用アドレス制御装置およびアドレス制御方法を提供することを第一の目的とする。
また、外部メモリ装置毎に仮想スロットを割り付ける場合、十分に仮想スロット数を確保しないと、仮想スロットが足りなくなる危険性がある。ところが、外部メモリ装置に格納されるデータ中にはファントデータ等のようにアドレス情報が入っていないアドレスに依存しない情報も存在する。
そこで、本発明の第2の目的は、アドレスに依存しないデータが格納された外部メモリ装置に対する仮想スロットの無駄使いを防ぐことである。
また、外部メモリ装置が初期状態の書き込み可能な不揮発性メモリ(例えば、フラッシュPROM)の場合も、まだアドレスに依存するデータを書き込む前なので、特定の仮想スロットを割り付ける必要はない。
そこで、本発明の第3の目的は、初期状態の書き込み可能な不揮発性メモリからなる外部メモリ装置に対する仮想スロットの無駄使いを防ぐことにある。
また、外部メモリ装置が書き込み可能な不揮発性メモリである場合、アドレスに依存するプログラム等が格納されていても、プログラムのアドレス書き換え情報等があれば、一旦RAM上に読み出してアドレスを書き換え、また不揮発性メモリに書き込むことで、スロットのアドレスの不一致を修復することが可能である。
そこで、本発明の第4の目的は、異なるアドレスのスロットに挿入されたプログラムのアドレスを書き換えて、修復し、新しいスロットアドレスで使用可能とすることである。
さらに、仮想スロット空間の配分がどうしても足りなくなった場合、基本的にはバッティングしない外部メモリ装置同士(例えば、同一プログラムのバージョンアップ版)に同一の仮想スロットを配分することになるが、異なるスロットにこれら同一の仮想スロットを配分された外部メモリ装置が装着される危険性は回避できない。
そこで、本発明の第5の目的は、異なるスロットに同一の仮想スロットを配分された外部メモリ装置が装着された場合、優先度の高い外部メモリ装置が装着されたスロットを有効にし、優先度の低い外部メモリ装置が装着されたスロットを無効にすることである。
また、それでも仮想スロット空間の配分が足りなくなった場合、異なるスロットに同一の仮想スロットを配分された外部メモリ装置が装着されることになり、優先順位ではどちらかが無効になってしまう。
そこで、本発明の第6の目的は、異なるスロットに同一の仮想スロットを配分された外部メモリが装着された場合でも、両方の外部メモリ装置にアクセスすることを可能にすることである。
【0010】
上記目的を達成するために、本発明は、外部メモリ装置を装着する複数のスロットを有する外部メモリ装置用アドレス制御装置において、スロット数に等しいかそれ以上の仮想スロット用のアドレス空間を有し、外部メモリ装置は、アドレスに依存するデータか否かの情報を格納する手段と、仮想スロットの特定のためのアドレス情報を格納する手段と、を有し、最初に、アドレスに依存するデータが格納された外部メモリ装置が装着されたスロットに対し、該外部メモリ装置内に格納された仮想スロットのアドレス情報に従って、該外部メモリ装置が差されたスロットのアドレスを割り付け、次に、アドレスに依存しないデータが格納された外部メモリ装置が装着されたスロットに対し、任意の空き仮想スロットのアドレスを割り付けることを特徴とする。
本発明は、外部メモリ装置を装着する複数のスロットを有し、書き込み可能な不揮発性メモリからなる外部メモリ装置に対し読み書きが可能な外部メモリ装置用アドレス制御装置において、スロット数に等しいかそれ以上の仮想スロット用のアドレス空間を有し、外部メモリ装置は、初期状態の不揮発性メモリが装着されているか否かを認識する手段と、仮想スロットの特定のためのアドレス情報を格納する手段と、を有し、最初に、アドレスに依存するデータが格納された外部メモリ装置が装着されたスロットに対し、該外部メモリ装置内に格納された仮想スロットのアドレス情報に従って、該外部メモリ装置が差されたスロットのアドレスを割り付け、次に、初期状態の不揮発性メモリからなる外部メモリ装置が装着されたスロットに対し、任意の空き仮想スロットのアドレスを割り付けるとともに、割り付けたアドレス情報を不揮発性メモリの所定の位置に書き込むことを特徴とする。
本発明は、外部メモリ装置を装着する複数のスロットを有し、書き込み可能な不揮発性メモリからなる外部メモリ装置に対し読み書きが可能な外部メモリ装置用アドレス制御装置において、不揮発性メモリにアドレスに依存するプログラムを書き込む際に、該不揮発性メモリが装着されているスロットのアドレス情報と、上記プログラムのアドレスを変更するための情報とを書き込み、不揮発性メモリに書かれたアドレス情報と、該不揮発性メモリが装着されているスロットのアドレスとが異なる場合、該不揮発性メモリに書かれた、プログラムのアドレスを変更するための情報を用いて、該不揮発性メモリ内のプログラムのアドレスを書き換えるとともに、該不揮発性メモリに書かれたアドレス情報を該不揮発性メモリが装着されているスロットのアドレスに従って書き換えることを特徴とする。
本発明は、外部メモリ装置を装着する複数のスロットを有する外部メモリ装置用アドレス制御装置において、スロット数に等しいかそれ以上の仮想スロット用アドレス空間を有し、外部メモリ装置は、仮想スロットの特定のためのアドレス情報を格納する手段と、外部メモリ装置のバンク番号を格納する手段と、を有し、外部メモリ装置内に格納された仮想スロットのアドレス情報に従って、該外部メモリ装置が差されたスロットのアドレスを割り付ける際に、複数のスロットから同一の仮想スロット空間アドレスの割り付けを要求された場合、それらの全てのスロットに指定アドレスを割り付け、前記バンク番号を各スロット毎に保持し、本体プログラムによるバンク切り換え命令によって、同一アドレスに割り付けられた複数のスロットの切り換えを行うことを特徴とする。
本発明は、外部メモリ装置を装着する複数のスロットに対してスロット空間アドレスを割り当てる制御装置であって、複数のスロットのうちの1つに装着された外部メモリ装置に格納された属性情報を獲得する獲得手段と、前記属性情報に基づいて、アドレスに依存するデータが格納された外部メモリ装置であるかを判定する判定手段と、
アドレスに依存するデータが格納された外部メモリ装置であれば、該外部メモリ装置によって指定されたスロット空間アドレスを、該外部メモリ装置が装着されたスロットに割り当て、アドレスに依存するデータが格納された外部メモリ装置でなければ、任意のスロット空間アドレスを、該外部メモリ装置が装着されたスロットに割り当てるアドレス割当手段とを有することを特徴とする。
【0011】
また、上記目的を達成するために、本発明は、外部メモリ装置を装着する複数のスロットを有する外部メモリ装置用アドレス制御装置で行われるアドレス制御方法において、スロット数に等しいかそれ以上の仮想スロット用のアドレス空間を有し、外部メモリ装置は、アドレスに依存するデータか否かの情報を格納する手段と、仮想スロットの特定のためのアドレス情報を格納する手段と、を有し、最初に、アドレスに依存するデータが格納された外部メモリ装置が装着されたスロットに対し、該外部メモリ装置内に格納された仮想スロットのアドレス情報に従って、該外部メモリ装置が差されたスロットのアドレスを割り付け、次に、アドレスに依存しないデータが格納された外部メモリ装置が装着されたスロットに対し、任意の空き仮想スロットのアドレスを割り付けることを特徴とする。
本発明は、外部メモリ装置を装着する複数のスロットを有し、書き込み可能な不揮発性メモリからなる外部メモリ装置に対し読み書きが可能な外部メモリ装置用アドレス制御装置で行われるアドレス制御方法において、スロット数に等しいかそれ以上の仮想スロット用のアドレス空間を有し、外部メモリ装置は、初期状態の不揮発性メモリが装着されているか否かを認識する手段と、仮想スロットの特定のためのアドレス情報を格納する手段と、を有し、最初に、アドレスに依存するデータが格納された外部メモリ装置が装着されたスロットに対し、該外部メモリ装置内に格納された仮想スロットのアドレス情報に従って、該外部メモリ装置が差されたスロットのアドレスを割り付け、次に、初期状態の不揮発性メモリからなる外部メモリ装置が装着されたスロットに対し、任意の空き仮想スロットのアドレスを割り付けるとともに、割り付けたアドレス情報を不揮発性メモリの所定の位置に書き込むことを特徴とする。
本発明は、外部メモリ装置を装着する複数のスロットを有し、書き込み可能な不揮発性メモリからなる外部メモリ装置に対し読み書きが可能な外部メモリ装置用アドレス制御装置で行われるアドレス制御方法において、不揮発性メモリにアドレスに依存するプログラムを書き込む際に、該不揮発性メモリが装着されているスロットのアドレス情報と、上記プログラムのアドレスを変更するための情報とを書き込み、不揮発性メモリに書かれたアドレス情報と、該不揮発性メモリが装着されているスロットのアドレスとが異なる場合、該不揮発性メモリに書かれた、プログラムのアドレスを変更するための情報を用いて、該不揮発性メモリ内のプログラムのアドレスを書き換えるとともに、該不揮発性メモリに書かれたアドレス情報を該不揮発性メモリが装着されているスロットのアドレスに従って書き換えることを特徴とする。
本発明は、外部メモリ装置を装着する複数のスロットを有する外部メモリ装置用アドレス制御装置で行われるアドレス制御方法において、スロット数に等しいかそれ以上の仮想スロット用アドレス空間を有し、外部メモリ装置は、仮想スロットの特定のためのアドレス情報を格納する手段と、外部メモリ装置のバンク番号を格納する手段と、を有し、外部メモリ装置内に格納された仮想スロットのアドレス情報に従って、該外部メモリ装置が差されたスロットのアドレスを割り付ける際に、複数のスロットから同一の仮想スロット空間アドレスの割り付けを要求された場合、それらの全てのスロットに指定アドレスを割り付け、前記バンク番号を各スロット毎に保持し、本体プログラムによるバンク切り換え命令によって、同一アドレスに割り付けられた複数のスロットの切り換えを行うことを特徴とする。
本発明は、外部メモリ装置を装着する複数のスロットに対してスロット空間アドレスを割り当てる制御装置で行われるアドレス制御方法であって、複数のスロットのうちの1つに装着された外部メモリ装置に格納された属性情報を獲得する獲得ステップと、前記属性情報に基づいて、アドレスに依存するデータが格納された外部メモリ装置であるかを判定する判定ステップと、アドレスに依存するデータが格納された外部メモリ装置であれば、該外部メモリ装置によって指定されたスロット空間アドレスを、該外部メモリ装置が装着されたスロットに割り当て、アドレスに依存するデータが格納された外部メモリ装置でなければ、任意のスロット空間アドレスを、該外部メモリ装置が装着されたスロットに割り当てるアドレス割当ステップとを有することを特徴とする。
【0021】
【実施例】
次に、図面を参照して、本発明の実施例を説明する。
【0022】
(実施例1)
図1は、実施例1に適用されるレーザビームプリンタ(以下、LBPと略す)の内部構造を示す断面図である。このLBPは不図示のデータ源から文字パターンの登録や定型書式(フォームデータ)などの登録が行える。同図において、1000はLBP本体であり、外部に接続されているホストコンピュータ(図示せず)から供給される文字情報(文字コード)やフォーム情報あるいはマクロ命令などを入力して記憶するとともに、それらの情報に従って対応する文字パターンやフォームパターンなどを作成し、記録体である記録紙上に像を形成する。
【0023】
1012は操作のためのスイッチおよびLED表示器などが配されている操作パネル、1001はLBP1000全体の制御およびホストコンピュータから供給される文字情報などを解析するプリンタ制御ユニットである。この制御ユニット1001は、主に文字情報を対応する文字パターンのビデオ信号に変換してレーザドライバ1002に出力する。レーザドライバ1002は半導体レーザ1003を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ1003から発射されるレーザ光1004をオンオフ切り換えする。レーザ1004は回転多面鏡1005で左右方向に振られ静電ドラム1006上を走査する。
【0024】
これにより、静電ドラム1006上には文字パターンの静電潜像が形成される。この潜像は、静電ドラム1006周囲の現像ユニット1007により現像された後、記録紙に転写される。この記録紙にはカットシートを用い、カットシート記録紙はLBP1000に装着した用紙カセット1008に収納され、給紙ローラ1009及び搬送ローラ1010と1011とにより装置内に取り込まれて、静電ドラム1006に供給される。
【0025】
図2は図1に示したLBP1000のプリンタ制御ユニット1001の構成を中心に概要構成を示すブロック図である。図2において、2001は不図示のホストコンピュータからの印字データを受け取り、受信バッファに一時的に蓄えるホストインターフェース、2002はホストインターフェース2001、後述するMPU、RAM、ROM、メモリスロット、印字機構インターフェース等を繋ぐシステムバス、2003は後述する制御手段に従ってプリンタ制御ユニット1001の制御や、レーザプリンタ1000全体の制御を行うMPU、2004は後述する一連の制御手段実行のためのプログラム等が格納されているROM、2005はMPU2003がプログラム実行時にワークとして使用するRAM、2006は外部メモリを装着するためのメモリスロット1〜n(2007、2008、2009)のアドレスを制御するアドレス制御回路、2010は、MPU2003からの画像出力命令に基づいて画像データを印字機構(レーザプリンタ)2011に出力する印字機構インターフェースである。
【0026】
図3は、アドレス制御回路2006の詳細なブロック図である。MPU2003からアドレス制御回路2006に繋がるシステムバス2002は、データバス3011、アドレスバス3012、およびRD信号やWR信号を始めとする各種の制御信号から構成されている。MPUがスロット2007〜2009に差された外部メモリにアクセスする際には、アドレスバス3012に図4の4000に示すような32ビットのアドレスが送られる。このアドレス4000はリージョンビット(4bit)4001、スロット空間ビット(4bit)4002、およびスロット先頭からの相対アドレスビット(24bit)4003から構成されている。
【0027】
アドレスデコーダ3001は、アドレスバスに流されたアドレスがスロットのリージョンであるか否かを判断する。例えは図6のアドレスマップ6000に示すように、0〜allFhアドレスバスを流れるアドレスのうち、リージョンビット(4bit)4001が0101bである場合すなわちアドレス空間50000000h〜5FFFFFFFhに属するアドレスのみ、スロットのアドレスであると判断して3008〜3010のANDゲートに真の信号を送る。
【0028】
一方、アドレスバスを流れるアドレスは、3005〜3007のコンパレータ1〜nにも伝えられ、これらのコンパレータはアドレスのうち、スロット空間ビット(4bit)4002と、3002〜3004のレジスタ1〜nに設定されている図5に示すレジスタデータ5000のうちのスロット空間ビット(4bit)5002とを比較する。比較の結果、一致したコンパレータは真の信号を3008〜3010のANDゲートに送る。これによって、アドレスマップ6000に示す6001〜6004のスロット空間のうち、アドレスに対応するスロット空間が割り付けられているスロットのANDゲートに真の信号が送られることになる。
【0029】
なお、3002〜3004のレジスタへのデータ5000の書き込みは、以下のようにしてなされる。すなわち、アドレスコーダ3001によって、アドレスバスを流れるアドレスが各レジスタに対応するものと判断されWR信号が送られた場合、書き込みによって3002〜3004の対応するレジスタに伝えられ、データバス3011を介して書き込むデータがMPUより供給される。
【0030】
ここで、レジスタに書き込まれるデータ5000は、スロット空間ビット(4bit)5002と、スロットの有効ビット(1bit)5001から構成されている。スロット空間ビット5002はアドレスマップ6000で示すスロット空間6001〜6004のいずれかの番号を示しており、これによって、スロット空間アドレスがスロットに割り付けられる。また、スロットの有効ビット5001の情報は真偽信号として、ANDゲート3008〜3010に伝えられる。
【0031】
ANDゲート3008から3010は、アドレスコーダ3001からの信号とコンパレータ3005〜3007からの信号と、レジスタ3002〜3004からの有効ビットの信号を受け取り、全ての信号が真の場合のみ、真の信号を2007〜2009のスロット1〜nの対応するスロットに送る。
【0032】
各スロットは、ANDゲートからの信号が真だった場合、アドレスバスからのアドレスのうちスロット先頭からの相対アドレスビット(24bit)4003を受け取り、そのアドレスをスロットに差された外部メモリ先頭からの相対アドレス情報として外部メモリの指定アドレスのデータにアクセスし、RD信号やWR信号等に基づき、データバス3012を介してMPU2003とデータのやりとりを行う。
【0033】
以上のようにして、アドレスに対応するスロット空間アドレスが割り付けられた有効なスロットに対し、データのアクセスが可能になる仕組みになっている。以上の構成のプリンタ制御ユニット1001を組み込んだレーザビームプリンタ1000の動作について、図7に示すフローチャートを参照して説明する。
【0034】
まず、不図示の電源部から電源を供給すると、ステップS7001で2007〜2009のn個の外部メモリ用スロットについて初期アドレスを割り付ける。本実施例では、スロット1(2007)にはスロット空間0(6001)(50000000h〜50FFFFFFh)を、スロット2(2008)にはスロット空間1(6002)(51000000h〜51FFFFFFh)を、スロットn(2009)にはスロット空間n−1(5(n−1)000000h〜5(n−1)FFFFFF)をそれぞれ割り付ける。このスロットk(0≦k≦n−1)にスロット空間k−1を割り付ける処理は、図3において、レジスタkに有効ビット5001が1、スロット空間ビット5002がk−1のデータを書き込むことにより実現される。
【0035】
さらに初期化処理として、図11の各スロットに対応するスロット属性テーブルのスロット属性11001を0x00000000(無効)に、スロット有効フラグ11002をOFF(オフ)にそれぞれ初期化する、また、図12の各スロット空間に対応するスロット空間管理テーブルの対応スロット番号を0(空き状態)に初期化する。
【0036】
次に、ステップS7002で、プログラムのワークであるRAM2005上のスロット番号変数に初期値として1を設定する。次に、ステップS7003で、このステップS番号変数がスロット総数nより大きいかどうかを比較し、大きければ全スロットに対する処理が終了して、(1)で次ページの処理に移行する。
【0037】
他方、ステップS7003で、スロット番号変数がスロット総数n以下の場合は、ステップS7004でスロット番号変数に指定されたスロットに差された図13に示す外部メモリ13000にアクセスにいく。外部メモリ13000は、外部メモリヘッダ情報部13001とプログラムやフォントデータ等の実際のデータ部13002から構成されている。なお、外部メモリヘッダ情報部13001は、外部メモリ属性情報13003、ヘッダサイズ13004、スロット空間番号13005、優先順位13006、およびバンク番号13007から構成されている。
【0038】
外部メモリの外部メモリ属性情報13003は、以下のような属性情報からなっている。まず、この4バイト情報が0x00000001の場合、スロット空間番号指定された外部メモリであることを示す。次に、この4バイト情報が0x00000002の場合、スロット空間番号が任意指定の(スロット空間アドレスに依存しない)外部メモリであることを示す。また、この4バイト情報が0xFFFFFFFFの場合、書き込み可能な不揮発性メモリであるフラッシュPROMで初期化されていない状態(全データが0xFF)であることを示す。
【0039】
ステップS7004では、スロット上の外部メモリにアクセスし、この外部メモリ属性情報13003を獲得し、これが0x00000001のスロット空間番号指定された外部メモリであれば、ステップS7005にとぶ。ステップS7005では、スロット空間番号13005、優先順位13006、およびバンク番号13007を獲得し、図11に示すプログラムのワークであるRAM2005上に確保された各スロット毎の属性テーブル1106〜1109のうちの現在参照中のスロットに対応するスロット属性テーブルのスロット属性11001をスロット空間指定(0x00000001)に設定し、スロット空間番号11003を設定する。
【0040】
さらにステップS7006で、優先順位11004、およびバング番号11005をそれぞれ設定する。なお、まだ実際のスロットへのアドレス割り付けは行っていないので、スロット有効フラグ11002はOFF(オフ)にしておく。そして、ステップS7012に飛び、スロット番号変数をインクリメントしてステップS7003に戻る。
【0041】
他方、ステップS7004で、スロット空間番号指定メモリでないと判断された場合、ステップS7007に飛び、外部メモリ属性情報13003がスロット番号任意指定(0x00000002)であるかどうかをチェックし、スロット番号任意指定であればステップS7008に飛ぶ。
【0042】
ステップS7008では、現在参照中のスロットに対応するスロット属性テーブルのスロット属性11001にスロット番号任意指定(0x00000002)を書き込み、まだ実際のスロットへのアドレス割り付けは行っていないので、スロット有効フラグ11002をOFFにして、ステップS7012に飛び、スロット番号変数をインクリメントしてステップS7003に戻る。
【0043】
他方、ステップS7007で、スロット空間番号指定メモリでないと判断された場合、ステップS7009に飛び、外部メモリ属性情報13003が初期状態のフラッシュPROM(0xFFFFFFFF)であるかどうかをチェックし、初期状態のフラッシュPROMであればステップS7010に飛ぶ。
【0044】
ステップS7010では、現在参照中のスロットに対応するスロット属性テーブルのスロット属性11001に初期状態のフラッシュPROM(0xFFFFFFFF)を書き込み、まだ実際のスロットへのアドレス割り付けは行っていないので、スロット有効フラグ11002をOFFにして、ステップS7012に飛び、スロット番号変数をインクリメントしてステップS7003に戻る。
【0045】
なお、ステップS7009で初期状態のフラッシュPROMでないと判断された場合、ステップS7011に飛び、このスロットの外部メモリは無効であると判断して、現在参照中のスロットに対応するスロット属性テーブルのスロット属性11001に無効(0x00000000)ほ設定し、当該スロット有効フラグ11002もOFFにして、ステップS7012に飛び、スロット番号変数をインクリメントしてステップS7003に戻る。以上により、全スロットに差された外部メモリの属性等の情報を対応するスロット属性テーブルに読み出すことができる。
【0046】
次に、ステップS7003で全スロットの読み出し処理を終了したと判断された場合、(1)で図8のステップS8001に飛ぶ。ステップS8001では、前述のスロット番号変数をもう一度1に初期化する。次にステップS8002で、このスロット番号変数がスロット総数nより大きいかどうかを比較し、大きければ全スロットに対する処理が終了して、(2)で次ページの処理に移行する。
【0047】
ステップ8002でスロット番号変数がスロット総数n以下と判断された場合、ステップS8003に飛び、スロット番号変数に設定されたスロット番号に対応するスロット属性テーブルのスロット属性11001にアクセスし、スロット空間番号指定(0x00000001)であるかチェックする。スロット空間番号指定でなければステップS8010に飛び、スロット番号変数をインクリメントしてステップS8002に戻る。
【0048】
他方、ステップS8003でスロット空間番号指定と判断された場合、ステップS8004でスロット空間番号11003を獲得し、そこで指定されているスロット空間に対応するスロット管理テーブル(図12)の対応スロット番号12000を獲得し、これを空き状態(0)であるかどうかをチェックする。
【0049】
空き状態(0)ならば、ステップS8007に飛び、現在参照中のスロット属性テーブルのスロット空間番号11003をスロット空間ビット5002に設定し、有効ビット5001を1にして、現在参照中のスロット(スロット番号変数に設定されたスロット番号のスロット)のレジスタに書き込む。
【0050】
次にステップS8008で、現在参照中のスロット属性テーブルのスロット有効フラグを0Nにするとともに、ステップS8007で指定したスロット空間に対応するスロット空間管理テーブルの対応スロット番号12000に現在のスロット番号変数に設定されているスロット番号を設定する。そして、ステップS8010に飛び、スロット番号変数をインクリメントしてステップS8002に戻る。
【0051】
ステップS8004でスロット空間が空きでない(どれかのスロットに既に割り付けられている)と判断された場合、ステップS8005で現在参照中のスロット属性テーブルの優先順位11004と、スロット空間管理テーブルに設定されている対応スロット番号12000で指定されているスロットに対応するスロット属性テーブルの優先順位11004とを比較する。
【0052】
現在参照中のスロット属性テーブルの優先順位の方が高ければ(優先順位の値が大きければ)、ステップS8006でスロット空間管理テーブルに設定されている対応スロット番号12000で指定されているスロットを管理するレジスタの有効ビット5001を0にして、スロットを無効にするとともに、そのスロットに対応するスロット属性テーブルのスロット有効フラグ11002をOFFにし、ステップS8007に飛ぶ。
【0053】
他方、ステップS8005で現在参照中のスロット属性テーブルの優先順位の方が低い(優先順位が小さい)と判断された場合、ステップS8009に飛び、現在参照中のスロット属性テーブルのスロット有効フラグをOFFにし、ステップS8010に飛ぶ。
【0054】
以上のようにして、スロット番号が指定されているスロットに対してスロット空間を割り付けることができる。ステップS8003で、全スロットの処理が終了したら、(2)で図9のステップS9001に飛ぶ。ステップS9001では前述のスロット番号変数をもう一度1に初期化する。
【0055】
次にステップS9002で、このスロット番号変数がスロット総数nより大きいかどうかを比較し、大きければ全スロットに対する処理が終了して、(3)で次ページの処理に移行する。ステップS9002でスロット番号変数がスロット総数n以下と判断された場合、ステップS9003に飛び、スロット番号変数に設定されたスロット番号に対応するスロット属性テーブルのスロット属性11001にアクセスし、スロット空間番号指定(0x00000002)であるかチェックする。スロット空間任意指定でなければステップS9007に飛び、スロット番号変数をインクリメントしてステップS9002に戻る。
【0056】
他方、ステップS9003でスロット属性がスロット空間任意指定であると判断された場合、ステップS9004で、スロット空間管理テーブルを先頭から順にアクセスし、対応スロット番号12000が空き状態(0)であるスロット空間を検索する。
【0057】
次にステップS9005で検索された空きスロット空間のスロット空間番号をスロット空間ビット5002に、有効ビット5001にそれぞれ設定して、現在参照中のスロット(スロット番号変数に設定されているスロット)に対応するレジスタに設定し、そのスロットに対応するスロット属性テーブルのスロット有効フラグ11002をON(オン)にする。
【0058】
ステップS9006で、スロット空間管理テーブルの対応スロット番号12000に現在のスロット番号を設定し、ステップS9007でスロット番号変数をインクリメントして、ステップS9002に戻る。以上により、スロット空間の指定が任意である外部メモリが装着されたスロットに対するスロット空間アドレスの割り付けが完了する。最後に、ステップS9002で、全スロットの処理が終了したら、(3)で図10のステップS10001に飛ぶ。
【0059】
ステップS10001では、前述のスロット番号変数をもう一度1に初期化する。次にステップS10002で、このスロット番号変数がスロット総数nより大きいかどうかを比較し、大きければ全スロットに対する処理が終了し、ブート処理が終了する。
【0060】
他方、ステップS10002でスロット番号変数がスロット総数n以下と判断された場合、ステップS10003に飛び、スロット番号変数に設定されたスロット番号に対応するスロット属性テーブルのスロット属性11001にアクセスし、初期状態のフラッシュPROM(0xFFFFFFFF)であかチェックする。初期状態のフラッシュPROMでなければステップS10008に飛び、スロット番号変数をインクリメントしてステップS10002に戻る。
【0061】
他方、ステップS10003で初期状態のフラッシュPROMと判断された場合、ステップS10004でスロット空間管理テーブルほ先頭から順にアクセスし、対応スロット番号12000が空き状態(0)であるスロット空間を検索する。
【0062】
次にステップS10005で検索された空きスロット空間のスロット空間番号をスロット空間ビット5002に、有効ビット5001を1にそれぞれ設定して、現在参照中のスロット(スロット番号変数に設定されているスロット)に対応するレジスタに設定し、そのスロットに対応するスロット属性テーブルのスロット有効フラグ11002をONにする。
【0063】
次に、ステップS10006でフラッシュPROMに外部メモリヘッダ情報部13001を書き込む。外部メモリ属性情報13003は、スロット空間指定メモリ属性(0x00000001)に、ヘッダサイズ13004は5×4バイト=20バイトに、スロット空間番号13005は、ステップS10005で指定したスロット空間番号に、優先順位およびバンク番号は0にそれぞれ書き込む。
【0064】
次にステップS10007で、スロット空間管理テーブルの対応スロット番号12000に現在のスロット番号を設定し、ステップS10008でスロット番号変数をインクリメントして、ステップS10002に戻る。以上により、初期状態のフラッシュPROMが装着されたスロットに対するスロット空間アドレスの割り付けが完了し、スロットに関するすべてのブート処理が完了する。
【0065】
(実施例2)
次に、実施例2を実施例1と全く同じ構成のLBPで説明する。ブート時の処理は、実施例1と全く同様である。ただし、複数のスロットに対し同一のスロット空間が割り付けられた場合のプログラム実行時のバンク切り換えについて図14のフローチャートを用いて説明する。
【0066】
実施例1で説明したとおり、複数のスロットに対し同一のスロット空間が割り付けられた場合、ブート時には最も優先順位の高い外部メモリが差されたスロットに対しスロット空間が割り付けられている。これを切り換えたい場合、実施例フローチャートにはプログラム実行時に図14のフローチャートに示すバンク切り換え関数をコールする。バンク切り換え関数がコールされると、ステップS14001で切り換えたいスロット空間番号と、切り換えるバンク番号を獲得する。
【0067】
次にステップS14002でステップS14001で獲得したスロット空間番号に対応するスロット空間管理テーブルに設定された対応スロット番号12000を獲得し、そのスロットのレジスタの有効ビット5001を0にしてスロットを無効にするとともに、そのスロットに対応するスロット属性テーブルのスロット有効フラグをOFFにする。
【0068】
次に、ステップS14003で、プログラムのワークであるRAM2005上のスロット番号変数に初期値として1を設定する。次にステップS14004で、このスロット番号変数がスロット総数nより大きいかどうかを比較し、大きければ切り換えるべきバンク番号に対応するスロットが見つからなかったと判断しエラー終了する。
【0069】
他方、ステップS14004でスロット番号変数がスロット総数n以下と判断された場合、ステップS14005に飛び、スロット番号変数に設定されたスロット番号に対応するスロット属性テーブルのスロット空間番号11003にアクセスし、ステップS14001で獲得したスロット空間番号と一致するかどうか比較する。一致しなかった場合は、ステップS14008に飛び、スロット番号変数をインクリメントしてステップS14004に戻る。
【0070】
他方、ステップS14005でスロット空間が一致した場合、ステップS14006に飛び、スロット番号変数に設定されたスロット番号に対応するスロット属性テーブルのバンク番号11005にアクセスし、ステップS14001で獲得したバンク番号と一致するかどうか比較する。一致しなかった場合、ステップS14008に飛び、スロット番号変数をインクリメントしてステップS14004に戻る。
【0071】
他方、ステップS14006でバンク番号が一致した場合、ステップS14007でバンク番号が一致したスロット属性テーブルに対応するスロットのレジスタの有効ビット5001を1にして、スロットを有効にし、スロット属性テーブルのスロット有効フラグをONにするとともに、スロット空間管理テーブルの対応スロット番号12000を設定し、バンク切り換えを終了する。
【0072】
以上のようにして、同一スロット空間に複数のスロットが割り付けられている場合、プログラムによるバンク切り換えが実現される。
【0073】
(実施例3)
さらに、実施例1と全く同一の構成のLBPを用いて、実施例3を説明する。ただし、外部メモリ用スロットに装着される外部メモリのうちフラッシュPROMのデータは図16に示すように、以下のようなフォーマットをしている。
【0074】
フラッシュPROMのデータフォーマット16000は、大きく分けてフラッシュPROMヘッダ情報部16001、アドレス書換え情報部16002、およびプログラム部16003から構成されている。フラッシュPROMヘッダ情報部16001は、アドレス書換え可能なフラッシュPROMであること(0x00000003)を示す外部メモリ属性情報16004、ヘッダサイズ16005、フラッシュPROM上の現在のプログラムのアドレスが割り付けられているスロット空間番号16006、アドレス書換え情報部16002へのオフセット16007、およびプログラム部16003へのオフセット16008から構成されている。
【0075】
また、アドレス書換え情報部16002は、図17の17000に示すように、アドレス書換え情報の総数17001および、アドレス書換え情報の総数分のアドレス書換え情報17002、17003から構成されており、アドレス書換え情報17002は、書換え絶対アドレス値のフラッシュメモリ先頭からの相対アドレス値17004、書換え絶対アドレス値が格納されている総数17005、および書換える絶対アドレス値が格納されている総数分の書換える絶対アドレスのフラッシュメモリ先頭からのオフセット位置17006、17007から構成されている。
【0076】
次に実施例3を詳細に説明する。ブート処理は実施例1とほとんど同様に実行されるが、実施例1の図7のステップS7009でフラッシュPROMと判断されるのは初期値状態のフラッシュPROM(0X FFFFFFFF)と、アドレス書換え可能なフラッシュPROM(0X 00000003)の両方であり、ステップS7010でそれぞれの属性がスロット属性テーブルのスロット属性11001に設定される。
【0077】
しかしながら、図10のステップS10003では初期状態のフラッシュPROM(0X FFFFFFFF)のみがフラッシュPROMとして判断される。そして実施例3では実施例1のブート処理が終了した後、図15のフローチャートに示すアドレス書換え可能なフラッシュPROMのブート処理を実行する。まず、ステップS15001で、プログラムのワークであるRAM2005上のスロット番号変数に初期値として1を設定する。
【0078】
次に、ステップS15002で、このスロット番号変数がスロット総数nより大きいかどうかを比較し、大きければ全スロットのアドレス書換え可能なフラッシュPROMに対するブート処理が終了する。
【0079】
他方、ステップS15002でスロット番号変数がスロット総数n以下であると判断された場合、ステップS15003に飛び、スロット番号変数に設定されたスロット番号に対応するスロット属性テーブルのスロット属性11001にアクセスし、アドレス書換え可能なフラッシュPROM(0X 00000003)であるかチェックする。アドレス書換え可能なフラッシュPROMでなければステップS15010に飛び、スロット番号変数をインクリメントしてステップS15002に戻る。
【0080】
他方、ステップS1500アドレスでアドレス書換え可能なフラッシュPROMと判断された場合、ステップS15004でフラッシュPROMのヘッダ情報のスロット空間番号16006を獲得する。ステップS15005でステップS15004で獲得したスロット空間が空き状態かどうかスロット管理テーブルでチェックする。空き状態(0)であれば、ステップS15009に飛び、ステップS15004で獲得したスロット空間番号をスロット空間ビット5002に、有効ビット5001を1にそれぞれ設定して、現在参照中のスロット(スロット番号変数に設定されているスロット)に対応するレジスタに設定し、そのスロットに対応するスロット属性テーブルのスロット有効フラグ11002をONにし、ステップS15010に飛び、スロット番号変数をインクリメントしてステップS15002に戻る。
【0081】
他方、ステップS15005でスロット空間が空き状態でないと判断された場合、ステップS15006でスロット空間管理テーブルを先頭から順にアクセスし、対応スロット番号12000が空き状態(0)であるスロット空間を検索し、検索された空きスロット空間のスロット空間番号をスロット空間ビット5002に、有効ビット5001を1にそれぞれ設定して、現在参照中のスロット(スロット番号変数に設定されているスロット)に対応するレジスタに設定し、そのスロットに対応するスロット属性テーブルのスロット有効フラグ11002をONにする。
【0082】
次に、ステップS15007で、プログラム部16003をプログラムのワークであるRAM2005上に読み出し、フラッシュPROM上のアドレス書換え情報部16002の情報部を使用して、RAM2005上に読みだしたプログラムのアドレス情報を新しいスロット空間に対応するものに書き換える。なお、ステップS15007の使用際な内容については、図18のフローチャートを用いて後述する。
【0083】
次にステップS15008で、RAM2005上でアドレスを書換えたプログラムでフラッシュPROMのプログラム部16003を書換え、フラッシュPROMヘッダ情報部16001のスロット空間番号16006を新しいスロット空間に書換え、ステップS15010に飛び、スロット番号変数をインクリメントしてステップS15002に戻る。
【0084】
次に、ステップS15007の詳細な内容については、図18のフローチャートを用いて説明する。ステップS18001で、新しく割り付けられたスロット空間の先頭アドレスを獲得する。次に、フラッシュPROMのアドレス書き換え情報部16002からアドレス書換え情報の総数17001を獲得する。次にステップS18003でアドレス書換え情報の総数が0より大きいかどうか比較し、0以下ならば処理終了と判断し、サブルーチンを終了する。
【0085】
他方、ステップS18003でアドレス書換え情報の総数が0より大きいと判断した場合、ステップS18004でアドレス書換え情報17002の書換えアドレスの相対アドレス17004にステップS18001で獲得した新しく割り付けられたスロット空間の先頭アドレスを加算して、書換えアドレスの新しい絶対アドレスを獲得する。
【0086】
次に、ステップS18005でアドレス書換え情報17002のアドレス書換え総数17005を獲得する。次にステップS18006で、アドレス書換え情報の総数をデクリメントする。次にステップS18007でアドレス書換え総数が0より大きいかどうか比較し、0以下ならばそのアドレスに関する書換え処理が終了したと判断し、ステップS18003に戻る。
【0087】
他方、ステップS18007でアドレス書換え総数が0より大きいと判断された場合、ステップS18008でアドレス書換え情報17002のアドレス書き換え位置17006を獲得し、RAM2005上にコピーしたプログラムの先頭からアドレス書換え位置で指定されたオフセット位置に書かれているアドレスをステップS18004で獲得した書換えアドレスの新しい絶対アドレスに書換える。
【0088】
次にステップS18009でアドレス書換え総数をデクリメントして、ステップS18007に戻る。以上述べてきたような処理により、フラッシュPROMのプログラム部のアドレスを、フラッシュPROMの装着されたスロットに割り付けられたスロット空間アドレスに適合するように、書換えることができる。本実施例では、LBPについて説明したが、外部メモリ用の複数のスロットを有するものであればインクジェットプリンタ、溶融型熱転写プリンタ、昇華型熱転写プリンタ、LEDプリンタ、液晶シャッタープリンタなどのようなプリンタであっても構わない。また、外部メモリ用の複数スロットを有するものであればプリンタ装置に限るものでなく、パーソナルコンピュータ等のコンピュータ装置等どんな装置であっても構わない。
【0089】
本実施例では、外部メモリ装置として、ROMを使用したが、スロット数によって装着される外部メモリ装置であり、アドレスを有するものであれば、どのような外部メモリ装置であっても構わない。また、本実施例では、書き込み可能な不揮発性の外部メモリ装置として、フラッシュPROMを使用したが、スロット等によって装着される外部メモリ装置であり、書き込み可能な不揮発性メモリでアドレスを有するものであれば、EEPROMやバックアップ電源を有するRAM等、どのような外部メモリ装置であっても構わない。
【0090】
【発明の効果】
以上説明したように、本発明によれば、バング切り換えやPICおよびPIDの機能を使用しなくても、複数のスロットの任意のスロットにアドレスに依存するデータが格納された外部メモリ装置を装着し、動作させることが可能になるという効果がある。
【図面の簡単な説明】
【図1】図1は、本発明を適用可能な印刷装置の構成を説明する断面図である。
【図2】図2は、本発明の実施例を示す印刷装置の制御構成を説明するブロック図である。
【図3】図3は、図2に示したアドレス制御回路の詳細を説明するブロック図である。
【図4】図4は、図3に示したアドレスバスを流れるアドレス情報の詳細を説明するための図である。
【図5】図5は、図3に示したスロットを管理するレジスタのデータの詳細を説明するための図である。
【図6】図6は、図2に示した制御装置のアドレスマップを説明するための図である。
【図7】図7は、本発明の実施例1の印刷装置のブート時の動作手順を示すフローチャートである。
【図8】図8は、本発明の実施例1の印刷装置のブート時の動作手順を示すフローチャートである。
【図9】図9は、本発明の実施例1の印刷装置のブート時の動作手順を示すフローチャートである。
【図10】図10は、本発明の実施例1の印刷装置のブート時の動作手順を示すフローチャートである。
【図11】図11は、本実施例の印刷装置の各外部メモリ用スロットを管理するためにRAM上に確保された管理テーブルの概略図である。
【図12】図12は、本実施例の印刷装置のスロット空間アドレスを管理するためにRAM上に確保された管理テーブルの概要図である。
【図13】図13は、本実施例の印刷装置の各外部メモリ装置内のデータフォーマットの一例である。
【図14】図14は、本発明の実施例2の印刷装置のプログラム動作時の動作手順を示すフローチャートである。
【図15】図15は、本発明の実施例2、3の印刷装置のブート時の動作手順を示すフローチャートである。
【図16】図16は、実施例2の印刷装置の外部メモリ装置の一つであるフラッシュPROMのデータフォーマットの一例である。
【図17】図17は、フラッシュPROMのデータフォーマットのうちアドレス書き換え情報部のデータ構造の一例である。
【図18】図18は、本発明の実施例3の印刷装置のブート時の動作手順を示すフローチャートである。
【符号の説明】
1000 LBP本体
1001 印刷制御部
1002 レーザドライバ
1003 半導体レーザ
1004 レーザ光
1005 回転多面体
1006 静電ドラム
1007 現像ユニット
1008 紙カセット
1009〜1011 搬送ローラ
1012 操作パネル
Claims (10)
- 外部メモリ装置を装着する複数のスロットを有する外部メモリ装置用アドレス制御装置において、
スロット数に等しいかそれ以上の仮想スロット用のアドレス空間を有し、
外部メモリ装置は、アドレスに依存するデータか否かの情報を格納する手段と、仮想スロットの特定のためのアドレス情報を格納する手段と、を有し、
最初に、アドレスに依存するデータが格納された外部メモリ装置が装着されたスロットに対し、該外部メモリ装置内に格納された仮想スロットのアドレス情報に従って、該外部メモリ装置が差されたスロットのアドレスを割り付け、次に、アドレスに依存しないデータが格納された外部メモリ装置が装着されたスロットに対し、任意の空き仮想スロットのアドレスを割り付けることを特徴とする外部メモリ装置用アドレス制御装置。 - 外部メモリ装置を装着する複数のスロットを有し、書き込み可能な不揮発性メモリからなる外部メモリ装置に対し読み書きが可能な外部メモリ装置用アドレス制御装置において、
スロット数に等しいかそれ以上の仮想スロット用のアドレス空間を有し、
外部メモリ装置は、初期状態の不揮発性メモリが装着されているか否かを認識する手段と、仮想スロットの特定のためのアドレス情報を格納する手段と、を有し、
最初に、アドレスに依存するデータが格納された外部メモリ装置が装着されたスロットに対し、該外部メモリ装置内に格納された仮想スロットのアドレス情報に従って、該外部メモリ装置が差されたスロットのアドレスを割り付け、次に、初期状態の不揮発性メモリからなる外部メモリ装置が装着されたスロットに対し、任意の空き仮想スロットのアドレスを割り付けるとともに、割り付けたアドレス情報を不揮発性メモリの所定の位置に書き込むことを特徴とする外部メモリ装置用アドレス制御装置。 - 外部メモリ装置を装着する複数のスロットを有し、書き込み可能な不揮発性メモリからなる外部メモリ装置に対し読み書きが可能な外部メモリ装置用アドレス制御装置において、
不揮発性メモリにアドレスに依存するプログラムを書き込む際に、該不揮発性メモリが装着されているスロットのアドレス情報と、上記プログラムのアドレスを変更するための情報とを書き込み、
不揮発性メモリに書かれたアドレス情報と、該不揮発性メモリが装着されているスロットのアドレスとが異なる場合、該不揮発性メモリに書かれた、プログラムのアドレスを変更するための情報を用いて、該不揮発性メモリ内のプログラムのアドレスを書き換えるとともに、該不揮発性メモリに書かれたアドレス情報を該不揮発性メモリが装着されているスロットのアドレスに従って書き換えることを特徴とする外部メモリ装置用アドレス制御装置。 - 外部メモリ装置を装着する複数のスロットを有する外部メモリ装置用アドレス制御装置において、
スロット数に等しいかそれ以上の仮想スロット用アドレス空間を有し、
外部メモリ装置は、仮想スロットの特定のためのアドレス情報を格納する手段と、外部メモリ装置のバンク番号を格納する手段と、を有し、
外部メモリ装置内に格納された仮想スロットのアドレス情報に従って、該外部メモリ装置が差されたスロットのアドレスを割り付ける際に、複数のスロットから同一の仮想スロット空間アドレスの割り付けを要求された場合、それらの全てのスロットに指定アドレスを割り付け、前記バンク番号を各スロット毎に保持し、本体プログラムによるバンク切り換え命令によって、同一アドレスに割り付けられた複数のスロットの切り換えを行うことを特徴とする外部メモリ装置用アドレス制御装置。 - 外部メモリ装置を装着する複数のスロットに対してスロット空間アドレスを割り当てる制御装置であって、
複数のスロットのうちの1つに装着された外部メモリ装置に格納された属性情報を獲得する獲得手段と、
前記属性情報に基づいて、アドレスに依存するデータが格納された外部メモリ装置であるかを判定する判定手段と、
アドレスに依存するデータが格納された外部メモリ装置であれば、該外部メモリ装置によって指定されたスロット空間アドレスを、該外部メモリ装置が装着されたスロットに割り当て、アドレスに依存するデータが格納された外部メモリ装置でなければ、任意のスロット空間アドレスを、該外部メモリ装置が装着されたスロットに割り当てるアドレス割当手段とを有することを特徴とする制御装置。 - 外部メモリ装置を装着する複数のスロットを有する外部メモリ装置用アドレス制御装置で行われるアドレス制御方法において、
スロット数に等しいかそれ以上の仮想スロット用のアドレス空間を有し、
外部メモリ装置は、アドレスに依存するデータか否かの情報を格納する手段と、仮想スロットの特定のためのアドレス情報を格納する手段と、を有し、
最初に、アドレスに依存するデータが格納された外部メモリ装置が装着されたスロットに対し、該外部メモリ装置内に格納された仮想スロットのアドレス情報に従って、該外部メモリ装置が差されたスロットのアドレスを割り付け、次に、アドレスに依存しないデータが格納された外部メモリ装置が装着されたスロットに対し、任意の空き仮想スロットのアドレスを割り付けることを特徴とするアドレス制御方法。 - 外部メモリ装置を装着する複数のスロットを有し、書き込み可能な不揮発性メモリからなる外部メモリ装置に対し読み書きが可能な外部メモリ装置用アドレス制御装置で行われるアドレス制御方法において、
スロット数に等しいかそれ以上の仮想スロット用のアドレス空間を有し、
外部メモリ装置は、初期状態の不揮発性メモリが装着されているか否かを認識する手段と、仮想スロットの特定のためのアドレス情報を格納する手段と、を有し、
最初に、アドレスに依存するデータが格納された外部メモリ装置が装着されたスロットに対し、該外部メモリ装置内に格納された仮想スロットのアドレス情報に従って、該外部メモリ装置が差されたスロットのアドレスを割り付け、次に、初期状態の不揮発性メモリからなる外部メモリ装置が装着されたスロットに対し、任意の空き仮想スロットのアドレスを割り付けるとともに、割り付けたアドレス情報を不揮発性メモリの所定の位置に書き込むことを特徴とするアドレス制御方法。 - 外部メモリ装置を装着する複数のスロットを有し、書き込み可能な不揮発性メモリからなる外部メモリ装置に対し読み書きが可能な外部メモリ装置用アドレス制御装置で行われるアドレス制御方法において、
不揮発性メモリにアドレスに依存するプログラムを書き込む際に、該不揮発性メモリが装着されているスロットのアドレス情報と、上記プログラムのアドレスを変更するための情報とを書き込み、
不揮発性メモリに書かれたアドレス情報と、該不揮発性メモリが装着されているスロットのアドレスとが異なる場合、該不揮発性メモリに書かれた、プログラムのアドレスを変更するための情報を用いて、該不揮発性メモリ内のプログラムのアドレスを書き換えるとともに、該不揮発性メモリに書かれたアドレス情報を該不揮発性メモリが装着されているスロットのアドレスに従って書き換えることを特徴とするアドレス制御方法。 - 外部メモリ装置を装着する複数のスロットを有する外部メモリ装置用アドレス制御装置で行われるアドレス制御方法において、
スロット数に等しいかそれ以上の仮想スロット用アドレス空間を有し、
外部メモリ装置は、仮想スロットの特定のためのアドレス情報を格納する手段と、外部メモリ装置のバンク番号を格納する手段と、を有し、
外部メモリ装置内に格納された仮想スロットのアドレス情報に従って、該外部メモリ装置が差されたスロットのアドレスを割り付ける際に、複数のスロットから同一の仮想スロット空間アドレスの割り付けを要求された場合、それらの全てのスロットに指定アドレスを割り付け、前記バンク番号を各スロット毎に保持し、本体プログラムによるバンク切り換え命令によって、同一アドレスに割り付けられた複数のスロットの切り換えを行うことを特徴とするアドレス制御方法。 - 外部メモリ装置を装着する複数のスロットに対してスロット空間アドレスを割り当てる制御装置で行われるアドレス制御方法であって、
複数のスロットのうちの1つに装着された外部メモリ装置に格納された属性情報を獲得する獲得ステップと、
前記属性情報に基づいて、アドレスに依存するデータが格納された外部メモリ装置であるかを判定する判定ステップと、
アドレスに依存するデータが格納された外部メモリ装置であれば、該外部メモリ装置によって指定されたスロット空間アドレスを、該外部メモリ装置が装着されたスロットに割り当て、アドレスに依存するデータが格納された外部メモリ装置でなければ、任意のスロット空間アドレスを、該外部メモリ装置が装着されたスロットに割り当てるアドレス割当ステップとを有することを特徴とするアドレス制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33251894A JP3548252B2 (ja) | 1994-12-13 | 1994-12-13 | 外部メモリ用アドレス制御装置およびアドレス制御方法 |
US08/570,734 US5911147A (en) | 1994-12-13 | 1995-12-12 | Address controller for apparatus with plural external memory slots |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33251894A JP3548252B2 (ja) | 1994-12-13 | 1994-12-13 | 外部メモリ用アドレス制御装置およびアドレス制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08166904A JPH08166904A (ja) | 1996-06-25 |
JP3548252B2 true JP3548252B2 (ja) | 2004-07-28 |
Family
ID=18255829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33251894A Expired - Fee Related JP3548252B2 (ja) | 1994-12-13 | 1994-12-13 | 外部メモリ用アドレス制御装置およびアドレス制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5911147A (ja) |
JP (1) | JP3548252B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4208350B2 (ja) | 1999-06-29 | 2009-01-14 | キヤノン株式会社 | 描画装置及び描画方法、記憶媒体 |
US6820148B1 (en) * | 2000-08-17 | 2004-11-16 | Sandisk Corporation | Multiple removable non-volatile memory cards serially communicating with a host |
JP4695815B2 (ja) * | 2002-02-22 | 2011-06-08 | キヤノン株式会社 | 描画処理装置および描画処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラム |
US8738887B2 (en) * | 2008-04-24 | 2014-05-27 | Advanced Micro Devices, Inc. | Dynamic fix-up of global variables during system BIOS execution |
US20100262722A1 (en) * | 2009-04-10 | 2010-10-14 | Christophe Vauthier | Dynamic Assignment of Graphics Processing Unit to a Virtual Machine |
US9767051B2 (en) * | 2014-04-04 | 2017-09-19 | Tidal Systems, Inc. | Scalable, parameterizable, and script-generatable buffer manager architecture |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02121042A (ja) * | 1988-10-31 | 1990-05-08 | Toshiba Corp | メモリシステム |
-
1994
- 1994-12-13 JP JP33251894A patent/JP3548252B2/ja not_active Expired - Fee Related
-
1995
- 1995-12-12 US US08/570,734 patent/US5911147A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08166904A (ja) | 1996-06-25 |
US5911147A (en) | 1999-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100531192B1 (ko) | 비휘발성 메모리의 제어방법 | |
US5963983A (en) | Method and apparatus for dynamically creating conversion tables to access a semiconductor memory device | |
KR100877448B1 (ko) | 비휘발성 기억 시스템 | |
US7373452B2 (en) | Controller for controlling nonvolatile memory | |
US7009896B2 (en) | Apparatus and method for managing bad blocks in a flash memory | |
JP5336060B2 (ja) | 不揮発性メモリ装置およびそれを動作させる方法 | |
US6789158B2 (en) | Method of rewriting program in a flash microcomputer | |
EP1387284A2 (en) | Computer system with nand flash memory for booting and data storage | |
US20060187738A1 (en) | Memory management device and memory device | |
JPH06131266A (ja) | ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置 | |
JPH11126488A (ja) | フラッシュメモリを複数使用した外部記憶装置のデータ記憶制御方法及び装置 | |
JP3548252B2 (ja) | 外部メモリ用アドレス制御装置およびアドレス制御方法 | |
US5734858A (en) | Method and apparatus for simulating banked memory as a linear address space | |
JP4242245B2 (ja) | フラッシュrom制御装置 | |
US5928338A (en) | Method for providing temporary registers in a local bus device by reusing configuration bits otherwise unused after system reset | |
JP2004326165A (ja) | メモリ制御装置およびメモリ制御方法 | |
US6687783B1 (en) | Access apparatus and method for accessing a plurality of storage device having different characteristics | |
US6684290B2 (en) | Memory rewriting apparatus and method for memory mapping rewriting program to same address space | |
JP2005115562A (ja) | フラッシュrom制御装置 | |
JP4895264B2 (ja) | 記憶装置および情報処理装置 | |
JP2001134496A (ja) | 不揮発性半導体メモリを用いた記憶装置 | |
JP5350077B2 (ja) | 情報処理装置及びこれを備えた画像形成装置 | |
JP2000099408A (ja) | Feepromデイスク管理システム及びその管理方法並びにその制御プログラムを記録した記録媒体 | |
JP2001005669A (ja) | プログラム起動方式 | |
JP2003308247A (ja) | メモリーカード |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20031208 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040308 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040312 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040413 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040416 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090423 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090423 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100423 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |