JP2001117766A - マスクromのパッチ機能を備えた情報処理装置 - Google Patents

マスクromのパッチ機能を備えた情報処理装置

Info

Publication number
JP2001117766A
JP2001117766A JP30121199A JP30121199A JP2001117766A JP 2001117766 A JP2001117766 A JP 2001117766A JP 30121199 A JP30121199 A JP 30121199A JP 30121199 A JP30121199 A JP 30121199A JP 2001117766 A JP2001117766 A JP 2001117766A
Authority
JP
Japan
Prior art keywords
read
program
storage means
written
storage unit
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.)
Pending
Application number
JP30121199A
Other languages
English (en)
Inventor
Koji Kakihara
宏治 垣原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP30121199A priority Critical patent/JP2001117766A/ja
Priority to US09/692,321 priority patent/US6314024B1/en
Publication of JP2001117766A publication Critical patent/JP2001117766A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/08Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards using semiconductor devices, e.g. bipolar elements
    • G11C17/10Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards using semiconductor devices, e.g. bipolar elements in which contents are determined during manufacturing by a predetermined arrangement of coupling elements, e.g. mask-programmable ROM
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Abstract

(57)【要約】 【課題】マスクROM装置に対してバグのあるマスクR
OM部分を迂回して正常に実行する装置の提供。 【解決手段】プログラムが書き込まれた読み出し専用の
記憶手段と、前記読み出し専用の記憶手段に書き込まれ
たプログラムのモジュールについて差し替え用のモジュ
ールを格納する書き換え可能な不揮発性の記憶手段と、
前記書き換え可能な不揮発性の記憶手段に書き込まれた
差し替えモジュールを格納する読み出し及び書き込み可
能な記憶手段と、CPU(中央処理装置)と、を備え、
前記CPUは、前記読み出し専用の記憶手段に書き込ま
れた前記モジュールの代わりに、前記読み出し及び書き
込み可能な記憶手段に格納された差し替えモジュールを
読み出して実行するように構成され、前記読み出し専用
の記憶手段に書き込まれた不具合を含む前記モジュール
の実行を回避する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は情報処理装置に関
し、特に、マスクROM等の読み出し専用型の記憶手段
に書き込まれたプログラム及びデータをCPUで実行す
る装置において読み出し専用型の記憶手段に書き込まれ
たプログラム及びデータの修正(パッチ)を可能とする
装置に関する。
【0002】
【従来の技術】組込み装置において、CPUで実行され
る制御プログラム等は、一般に、マスクROM(読み出
し専用メモリ)に書き込まれている。このマスクROM
は、製造段階で、例えばマスクデータに基づくイオン注
入マスクを用いてウェハ上のメモリセルトランジスタに
イオン注入しトランジスタの閾値電圧VTHを変えること
でデータの書き込みを行なうものであり、製造後にデー
タの修正を行なう(パッチをあてる)ことはできない。
【0003】組込み型装置において、マスクROMにプ
ログラムを書き込む前に、評価段階において、プログラ
ムのバグの検出作業が行われる。
【0004】組込み型装置において、マスクROMに書
き込まれたプログラムにバグが検出されたり、プログラ
ムが参照するテーブルデータ等に変更が生じた場合、該
マスクROMを交換することが必要とされる。また、マ
スクROMを内蔵したシングルチップ型のマイクロコン
ピュータでは、マスクROMを交換することはそもそも
不可能であることから、マスクROMを内蔵したマイク
ロコンピュータ自体を交換することになり、資源、コス
トの面で無駄であり、製品開発、販売戦略上の点でも、
不都合且つ不利益である。
【0005】ところで、数KB〜数百KBような比較的
小容量のプログラムであれば、電気的に書き換え可能な
ROM(Electrically Erasable and Programable
ROM)に書き込み、修正が必要な場合、書き換えを行う
ことができる。しかしながら、組込み型装置は高機能
化、制御の複雑化に伴い、組込み型装置に用いられる制
御用のOS(オペレーティングシステム)等のプログラ
ム・コードは大型化し、その結果、マスクROMの記憶
容量も増大し、プログラム上のバグが、評価段階で検出
されず、マスクROMに書き込まれたプログラムの潜在
的に残る可能性も増えている。これは、プログラムの大
型化に伴い、限られた時間の作業工程で、完全にバグを
検出して修正することが困難となってきているためであ
る。また、プログラムが数十MB(メガバイト)にもな
り、ROMで商品化したのでは高価となり、組込み型製
品のニーズに適合しなくなる場合もある。
【0006】
【発明が解決しようとする課題】上記したように、従来
の方法は、下記記載の問題点を有している。
【0007】組込み製品のプログラムの大規模化に伴
い、マスクROMに書き込まれたプログラムには、バグ
がそのまま残されている可能性が高くなってきている、
ということである。
【0008】このため、組込み製品等において、マスク
ROMのパッチ機能(バグの修正)を、安価に且つ効率
的に実現する手段が求められている。
【0009】なお、マスクROMに書き込まれたプログ
ラムのパッチ機能を実現する装置として、例えば特開平
7−64784号公報には、マスクROM内蔵のシング
ルチップ型マイクロコンピュータの機能端子を減らし、
外付け回路を不要とし、マイクロコンピュータ製造後に
プログラムのバグが存在するアドレスの実行を回避して
修正後のプログラムを実行できるようにしたシングルチ
ップ型のマイクロコンピュータが提案されている。この
従来のマイクロコンピュータは、マイクロコンピュータ
でプログラムの実行が開始された後、特定アドレスに達
すると、分岐命令を実行し、特定アドレスとは異なるア
ドレスから始まるプログラムを実行することにより、プ
ログラムのバグが存在するアドレスの実行を回避して修
正後のプログラムを実行できるようにしたものである。
【0010】図6は、上記特開平7−64784号公報
に提案される従来のマイクロコンピュータの構成を示す
図である。図6を参照すると、この従来のマイクロコン
ピュータ600は、プログラムカウンタ601と、RO
M(リード・オンリー・メモリ)603と、RAM(ラ
ンダム・アクセス・メモリ)604と、フェッチした命
令を解読して実行する命令実行部605と、選択回路6
07と、分岐命令発生回路608と、比較回路606
と、レジスタ609と、シリアルインタフェース610
と、アドレスバス602と、データバス611とを備え
ており、マイクロコンピュータ600に接続される外部
メモリ614は修正プログラムを記憶するものである。
【0011】比較回路606は、プログラムカウンタ6
01からアドレスバス602に出力されるアドレス信号
をレジスタ609に記憶保持されている内容と比較し、
両者が一致した場合、ハイレベルの選択信号612を出
力し、一致しない場合ロウレベルを出力する。選択回路
607は、選択信号612がハイレベルのときは分岐命
令発生回路608の出力を選択し、選択信号212がロ
ーレベルのときはデータバス611上のデータ(フェッ
チした命令)を選択して命令実行部605に出力する。
分岐命令発生回路608は、予め定められた所定番地へ
分岐する分岐命令のコードを出力する。レジスタ609
は、命令実行部605でプログラムの実行を回避したい
特定アドレスを記憶保持するレジスタである。シリアル
インタフェース610は、外部メモリ614の内容をマ
イクロコンピュータ600の内部に取り込み、データバ
ス611に出力する。外部メモリ614は、不揮発性の
メモリよりなり、プログラムのバグのアドレス及びバグ
修正後のプログラムが格納されている。
【0012】この従来のマイクロコンピュータの動作に
ついてその概要を以下に説明する。電源投入時等マイク
ロコンピュータ600のパワーオンリセット時にリセッ
ト解除につづいて初期化プログラムにて、ROMのバグ
の修正を行う場合、外部メモリ614からプログラムの
バグのアドレスと、修正後のプログラムをシリアルイン
タフェース610を介してデータバス611に読み出
し、修正後のプログラムをRAM604の所定の先頭ア
ドレスから格納し、レジスタ609には、バグアドレス
を設定する。
【0013】図7は、ROM603とRAM604の内
容の一例と動作を模式的に説明する図である。ROM6
03のプログラムのバグアドレスは1200H、120
2H(Hはヘキサデシマル表示を表す)であるものとす
る。初期化プログラム実行後、プログラムカウンタ60
1のアドレスがバグの存在するアドレス1200Hに到
達すると、比較回路606はハイレベルの選択信号61
2を出力し、選択回路607は、分岐命令発生回路60
8の出力である分岐命令(BR !F7FDH)を命令
実行部605に出力する。命令実行部605は、分岐命
令発生回路608からの分岐命令(BR !F7FD
H)を実行して、RAM604のアドレスF7FDHに
分岐する(図7の)。その際、プログラムカウンタ6
01の内容F7FDHは、レジスタ609の内容と異な
るため、命令実行部605には、RAM604のアドレ
スF7FDHから読み出された内容がデータバス611
から選択回路607を介して取り込まれる。RAM60
4のアドレスF7FDHには、修正プログラムが格納さ
れている先頭アドレスに分岐する分岐命令(BR !F
702H)が格納されており、命令実行部605でこの
分岐命令(BR !F702H)を実行することで、R
AM604に格納された修正後のプログラムの先頭アド
レスF702Hに分岐する(図7の)。
【0014】そしてRAM604のアドレスF702H
以降に格納された修正プログラムを実行し、修正プログ
ラムの最後に付加された分岐命令(BR !1204
H)を実行して、もとのROM603のバグプログラム
の次のアドレス1204Hに分岐し(図7の)、かか
る一連の動作により、ROM603のアドレス1200
H〜1202Hのバグプログラムを回避して、以降のプ
ログラムが引き続き実行される。
【0015】また、マスクROMへのパッチ機能を提供
する装置として、本願出願人による特願平11−248
545号(本願出願時未公開)には、命令を解読して実
行する命令実行部で実行されるプログラム命令及び/又
はデータが書き込まれているROMと、ROMに書き込
まれているプログラム命令及び/又はデータを修正する
ための修正プログラム命令/又は修正データを記憶する
RAMと、を備え、アドレスバス上にそれぞれ出力され
る命令フェッチアドレス信号、及び、メモリアクセスア
ドレス信号が予め設定された修正対象アドレス範囲内に
あることを検出したとき、前記アドレス信号にてアクセ
スされるROMから読み出された内容の代わりに、前記
アドレス信号に対応したアドレスでアクセスされるRA
Mから読み出された内容である修正プログラム命令又は
修正データを選択して、命令実行部に供給するように制
御する手段を備えたマイクロコンピュータの構成が開示
されている。
【0016】本発明は、上記特開平7−64784号公
報及び特願平11−248545号等に記載された手法
とは別の手法で、マスクROMに書き込まれたプログラ
ムの一部を迂回して実行する装置を提供することを目的
とする。
【0017】
【課題を解決するための手段】前記目的を達成するた
め、本発明は、プログラムが書き込まれた読み出し専用
の記憶手段と、前記読み出し専用の記憶手段に書き込ま
れたプログラムのうち1又は複数のモジュールに対し
て、差し替え用のモジュールを格納する書き換え可能な
不揮発性の記憶手段と、読み出し及び書き込み可能な記
憶手段と、CPU(中央処理装置)と、を備え、前記読
み出し及び書き込み可能な記憶手段には、前記書き換え
可能な不揮発性の記憶手段に書き込まれた差し替えモジ
ュールが格納され、前記CPUは、前記読み出し専用の
記憶手段に書き込まれた前記モジュールの代わりに、前
記読み出し及び書き込み可能な記憶手段に格納された前
記差し替えモジュールを読み出して実行することで、前
記読み出し専用の記憶手段に書き込まれた前記モジュー
ルの実行を回避するように構成されてなる、ことを特徴
とする。
【0018】また本発明は、プログラムが書き込まれた
読み出し専用の記憶手段と、前記プログラムに対する修
正アドレスと修正内容とを対応させて格納する書き換え
可能な不揮発性の記憶手段と、読み出し及び書き込み可
能な記憶手段と、CPU(中央処理装置)と、を備え、
前記読み出し専用の記憶手段に書き込まれたプログラム
がすべて前記読み出し及び書き込み可能な記憶手段に転
写され、前記読み出し及び書き込み可能な記憶手段上に
格納された前記プログラムに対して、前記書き換え可能
な不揮発性の記憶手段に格納されている修正アドレスの
内容を前記修正アドレスに対応する修正内容で書き換
え、前記CPUは、前記読み出し及び書き込み可能な記
憶手段に格納され修正が施されたプログラムを実行する
ことで、前記読み出し専用の記憶手段に書き込まれたプ
ログラムの実行を回避する構成とされている。
【0019】さらに、本発明においては、プログラムが
書き込まれた読み出し専用の記憶手段と、前記読み出し
専用の記憶手段に書き込まれたプログラムのうち修正対
象のモジュールについて修正アドレスと修正内容を対応
させて格納する書き換え可能な不揮発性の記憶手段と、
前記読み出し専用の記憶手段に書き込まれたプログラム
をモジュール単位に格納する読み出し及び書き込み可能
な記憶手段と、CPU(中央処理装置)と、を備え、前
記読み出し及び書き込み可能な記憶手段には、前記読み
出し専用の記憶手段に書き込まれたプログラムのうち修
正対象のモジュールが転写され、前記読み出し及び書き
込み可能な記憶手段に転写された前記モジュールに対し
て、前記書き換え可能な不揮発性の記憶手段に格納され
ている修正アドレスの内容を該修正アドレスに対応する
修正内容で書き換え、前記CPUは、前記読み出し専用
の記憶手段に書き込まれた前記モジュールの代わりに、
前記読み出し及び書き込み可能な記憶手段に転写され修
正が施されたモジュールを実行することで、前記読み出
し専用の記憶手段に書き込まれた前記モジュールの実行
を回避するように構成されている。
【0020】本発明は、プログラムが書き込まれた読み
出し専用の記憶手段と、前記読み出し専用の記憶手段に
書き込まれたプログラムのうち修正対象のモジュールに
ついて修正アドレスと修正内容を対応させて格納する書
き換え可能な不揮発性の記憶手段と、読み出し及び書き
込み可能な記憶手段と、CPU(中央処理装置)と、を
備え、前記読み出し専用の記憶手段のアドレス空間は複
数のスロットに分割され、前記読み出し及び書き込み可
能な記憶手段のアドレス空間も、前記読み出し専用の記
憶手段に対応して複数のスロットに分割され、前記読み
出し専用の記憶手段に書き込まれたプログラムのうち修
正対象のスロットの内容が前記読み出し及び書き込み可
能な記憶手段の対応するスロットに転写され、前記読み
出し及び書き込み可能な記憶手段の前記スロットに転写
されたプログラムに対して、前記書き換え可能な不揮発
性の記憶手段に格納されている修正アドレスの内容を該
修正アドレスに対応する修正内容で書き換え、前記CP
Uは、前記読み出し専用の記憶手段の前記スロットの代
わりに、前記読み出し及び書き込み可能な記憶手段の前
記スロット上の修正が施されたプログラムを実行するこ
とで、前記読み出し専用の記憶手段の前記スロットのプ
ログラムの実行を回避するように構成されている。
【0021】
【発明の実施の形態】本発明の実施の形態について説明
する。本発明は、読み出し専用型の記憶手段(マスクR
OM)に書き込まれたプログラムのうち、修正対象箇所
を含む部分の実行を、読み出し及び書き込み可能な記憶
手段(RAM)を用いて回避するようにしたものであ
り、読み出し専用型の記憶手段(マスクROM)に書き
込まれたプログラムのうち差し替えが必要な部分をモジ
ュール単位でRAMを用いて差し替えを行い、あるい
は、RAMに転写したモジュールに対して修正を施し、
修正が施されたRAM上のモジュールを実行するもので
あり、上記特開平7−64784号公報及び特願平11
−248545号等に記載された手法とは、相違してい
る。
【0022】本発明の第1の実施の形態においては、プ
ログラムが書き込まれた読み出し専用の記憶手段(マス
クROM)と、前記読み出し専用の記憶手段に書き込ま
れたプログラムのモジュールについて差し替え用のモジ
ュールを格納する書き換え可能な不揮発性の記憶手段
(FROM)と、読み出し及び書き込み可能な記憶手段
(RAM)と、CPU(中央処理装置)と、を備え、前
記書き換え可能な不揮発性の記憶手段(FROM)に書
き込まれた差し替えモジュールが読み出し及び書き込み
可能な記憶手段(RAM)に格納され、前記CPUは、
前記読み出し専用の記憶手段(マスクROM)に書き込
まれた前記モジュールの代わりに、前記読み出し及び書
き込み可能な記憶手段(RAM)に格納された差し替え
用モジュールをアクセスして実行することで、前記読み
出し専用の記憶手段(FROM)に書き込まれた不具合
を含む前記モジュールの実行を回避する。
【0023】また、本発明の第2の実施の形態において
は、プログラムが書き込まれた読み出し専用の記憶手段
(マスクROM)と、前記プログラムの修正アドレスと
修正内容を対応させて格納する書き換え可能な不揮発性
の記憶手段(FROM)と、前記読み出し専用の記憶手
段(マスクROM)に書き込まれたプログラムを格納す
る読み出し及び書き込み可能な記憶手段(RAM)と、
CPU(中央処理装置)と、を備え、前記読み出し専用
の記憶手段(マスクROM)に書き込まれたプログラム
がすべて前記読み出し及び書き込み可能な記憶手段(R
AM)に転写されて前記読み出し及び書き込み可能な記
憶手段にプログラムの実行イメージとして格納され、前
記読み出し及び書き込み可能な記憶手段に格納された実
行イメージに対して、前記書き換え可能な不揮発性の記
憶手段(FROM)に格納されている修正アドレスの内
容を修正内容で上書きし、前記CPUは、前記読み出し
及び書き込み可能な記憶手段に格納された修正済みのプ
ログラムを実行することで、前記読み出し専用の記憶手
段に書き込まれた不具合を含む前記モジュールの実行を
回避する。
【0024】また、本発明の第3の実施の形態において
は、プログラムが書き込まれた読み出し専用の記憶手段
(マスクROM)と、前記読み出し専用の記憶手段(マ
スクROM)に書き込まれたプログラムのうち修正対象
のモジュールについて修正アドレスと修正内容を対応さ
せて格納する書き換え可能な不揮発性の記憶手段(FR
OM)と、前記読み出し専用の記憶手段(マスクRO
M)に書き込まれたプログラムをモジュール単位に格納
する読み出し及び書き込み可能な記憶手段(RAM)
と、CPU(中央処理装置)と、を備え、前記読み出し
及び書き込み可能な記憶手段(RAM)には、前記読み
出し専用の記憶手段(マスクROM)に書き込まれたプ
ログラムのうち修正対象のモジュールが転写されて前記
読み出し及び書き込み可能な記憶手段(RAM)上には
前記モジュールの実行イメージが展開され、前記読み出
し及び書き込み可能な記憶手段に(RAM)格納された
前記モジュールの実行イメージに対して、前記書き換え
可能な不揮発性の記憶手段(FROM)に格納されてい
る前記モジュールに対する修正アドレスの内容を、該ア
ドレスに対応する修正内容で上書きし、前記CPUは、
前記読み出し専用の記憶手段に書き込まれた前記モジュ
ールの代わりに、前記読み出し及び書き込み可能な記憶
手段に格納されており修正が施されたモジュールを読み
出して実行する。
【0025】さらに、本発明の第4の実施の形態におい
ては、プログラムが書き込まれた読み出し専用の記憶手
段(マスクROM)と、前記読み出し専用の記憶手段に
書き込まれたプログラムのうち修正対象のモジュールに
ついて修正アドレスと修正内容を対応させて格納する書
き換え可能な不揮発性の記憶手段(FROM)と、読み
出し及び書き込み可能な記憶手段(RAM)と、CPU
(中央処理装置)と、を備え、前記読み出し専用の記憶
手段(マスクROM)は複数のスロットに分割され、前
記読み出し及び書き込み可能な記憶手段(RAM)も、
前記読み出し専用の記憶手段(マスクROM)に対応し
て、同様に複数のスロットに分割され、前記読み出し専
用の記憶手段(マスクROM)に書き込まれたプログラ
ムのうち修正対象のスロットの内容が前記読み出し及び
書き込み可能な記憶手段(RAM)の対応するスロット
に転写され、前記読み出し及び書き込み可能な記憶手段
(RAM)の前記スロットに格納されたプログラムに対
して、前記書き換え可能な不揮発性の記憶手段(FRO
M)に格納されている前記スロットに対する修正アドレ
スの内容を、該アドレスに対応する修正内容で上書き
し、前記CPUは、前記読み出し専用の記憶手段の前記
スロットの代わりに、前記読み出し及び書き込み可能な
記憶手段のスロットの修正が施されたモジュールを読み
出して実行するように構成されており、前記読み出し専
用の記憶手段に書き込まれた不具合(バグ)等を含む前
記モジュールの実行を回避する。
【0026】このように、本発明の実施の形態おいて
は、電池駆動(バッテリ駆動)型装置に適用可能とする
ため、パッチの情報や差し替えモジュールは、電池残量
がなくなっても、記憶状態を保持するフラッシュ型RO
M(FROM)に格納する。このFROMはマスクRO
Mにくらべサイズが小さく、また、マスクROMのバグ
が発見された場合、外部からパッチ情報や、差し替えモ
ジュールを更新することができる。
【0027】
【実施例】上記した本発明の実施の形態についてさらに
詳細に説明すべく本発明の実施例について説明する。図
1は、本発明の一実施例の構成を示す図である。図1を
参照すると、マスクROM103に書き込まれたプログ
ラムをCPU102が実行するバッテリ駆動型のコンピ
ュータ装置101において、必要な情報を保持しておく
ため、電源オフ時にも保持しておかなければならない情
報は、フラッッシュROM(一括消去型の電気的に消去
及び書き換え可能な読み出し専用メモリ、「FROM」
という)105に格納される。パッチ情報や差し替えモ
ジュールもFROM105に格納される。
【0028】一方、FROM105を用いない場合、電
気的にバックアップされたRAM106、又はNVRA
M(不揮発型のRAM)上に必要なプログラムや情報を
保持しておくようにしてもよい。この場合、FROM1
05に格納される情報はRAM106上に格納される。
【0029】本発明の第1の実施例として、プログラム
のモジュール単位の差し替えについて説明する。
【0030】モジュールは、所定の機能を実現するプロ
グラムの開発単位をいい、例えば数KB(キロバイト)
〜100KB程度のプログラムサイズとされる。
【0031】図2は、本発明の第1の実施例において、
マスクROMに格納されているモジュールの差し替えを
説明するための模式図である。図2において、CPU2
02、マスクROM203、RAM204、FROM2
05は、図1のCPU102、マスクROM103、R
AM104、FROM105に対応している。
【0032】バグがマスクROM203上のオリジナル
モジュール210に存在している場合、該モジュールの
差し替え用モジュールをFROM205上に差し替えモ
ジュール212として用意する。
【0033】コンピュータ装置201の起動時に、FR
OM205上の差し替えモジュール212を、RAM2
04上へコピーして、差し替えモジュール211を作成
する。
【0034】コンピュータ装置201は、差し替えモジ
ュール211を読むことで、どのモジュールがRAM2
04上へ差し替えられたかを認識する。
【0035】プログラムを実行する時、CPU202で
は、マスクROM203上のオリジナルモジュール21
0をスキップして、該当するモジュールの機能は、RA
M204に展開された、差し替えモジュール211を実
行する。
【0036】CPU202は、マスクROM203上の
オリジナルモジュール210の実行にあたり、該オリジ
ナルモジュール210を読み出す代わりに、RAM20
4の差し替えモジュール211を読み出して実行する。
アドレスの切換制御は、CPU202がマスクROM2
03上のプログラム220を実行して行き、モジュール
210へのアクセスを行う場合、分岐命令の実行、又
は、マスクROM203からRAM204へのアクセス
の切換により、RAM204の差し替えモジュール21
1側に切り換えられ、差し替えモジュール211の実行
後、マスクROM203上のモジュール210の最終ア
ドレスの次のアドレスに格納されているプログラム22
2に復帰する制御が行われる。
【0037】プログラムが連続的に実行される(分岐等
がないと)と仮定したときの実行順は、マスクROM2
03上のプログラム220→RAM204上の差し替え
モジュール211→マスクROM上のプログラム222
と進み、バグのあるオリジナルモジュール210の実行
を回避している。
【0038】本発明の第2の実施例について説明する。
本発明の第2の実施例は、マスクROMの内容を全てR
AMにコピーし、パッチをRAM上へ当てるようにした
ものである。本発明の第2の実施例は、マスクROMが
記憶容量が比較的小さい場合に有効である。
【0039】図3は、本発明の第2の実施例を説明する
ための図である。マスクROM303に書き込まれてい
るプログラムを読み出してRAM304に転写し、RA
M304対してパッチをあてる。CPU303は、パッ
チが当てられたプログラムを格納したRAM304のプ
ログラムを実行する。
【0040】本発明の第2の実施例の動作について説明
する。コンピュータ装置301の起動時にマスクROM
303の内容310を、全てRAM304へコピーまた
はロードし、RAM304上に実行イメージ311を作
成する。
【0041】次に、RAM304上に展開された実行イ
メージ311に対して、FROM305に格納されてい
るパッチ情報312を上書きする。
【0042】パッチ情報312は、図3に示すように、
パッチ情報テーブル306に、パッチを適用するアドレ
スとパッチ内容(修正内容)の対としてテーブル形式で
FROM305に格納されている。パッチは、通常、数
バイト〜数百バイトのオーダとされる。図3に示す例で
は、RAM304に上書きされるパッチは、パッチ31
3、314、315の3個所とされている。
【0043】本発明の第2の実施例では、RAM304
上のプログラムイメージ311は、パッチによってバグ
が回避されているため、直接、連続実行できる。
【0044】プログラムが連続的に実行されると仮定し
たときの実行順は、RAM上のプログラムを実行イメー
ジ311の先頭から320のように順に実行する。
【0045】次に本発明の第3の実施例について説明す
る。本発明の第3の実施例は、マスクROMの内容をモ
ジュール単位にRAMにコピーし、RAMにコピーされ
たモジュール単位の実行イメージに対して、パッチを当
てるようにしたものである。本発明の第3の実施例は、
前記第1の実施例で説明したモジュール単位の差し替え
に、第2の実施例で説明したパッチ部分だけの上書きを
適用したものであり、前記第1の実施例に比べFROM
の消費が少なく、前記第2の実施例に比べRAMの容量
が少なく済む。
【0046】図4は、本発明の第3の実施例を説明する
ための図である。コンピュータ装置401の起動時に、
マスクROM404バグのあるモジュール410を、R
AM404にコピーし、その上に、FROMのパッチ情
報412を上書きすることで、パッチされた実行イメー
ジ411をRAM404上に得る。図4に示す例では、
パッチは413、414、415の3つが適用されてい
る。
【0047】プログラムが連続的に実行されると仮定し
たときの実行順(命令フェッチの順番)は、マスクRO
M403上のプログラム420→RAM404上の42
1→マスクROM403上のプログラム422と進む。
【0048】本発明の第3の実施例において、どのモジ
ュールをRAM404上へコピーするかは、FROM4
05上に格納されるパッチ情報テーブル412へ予め設
定しておく。パッチ情報テーブルは、図4で406とし
て示すように、モジュール毎にパッチ情報からなり、モ
ジュール名、パッチアドレス、パッチのセットからな
る。
【0049】次に、本発明の第4の実施例について説明
する。本発明の第4の実施例は、マスクROM503を
複数のスロットに分割し、RAM504上のスロットと
差し替えて、CPU502から、アドレス空間上、連続
して見えるようにしたものである。
【0050】本発明の第4の実施例は、パッチを当てた
RAM504のスロットが、マスクROM503のオリ
ジナルなスロット514の代替となる。
【0051】CPU502からは連続したアドレスを実
行すれば、パッチが当てられたスロットだけ、RAMス
ロットが実行される。
【0052】図5は、本発明の第4の実施例を説明する
ための図である。図5を参照すると、マスクROM50
3は、複数のスロット(#1、#2、…)に分割されて
いる。
【0053】RAM504も、マスクROM503と同
じサイズの複数のスロットに分割されており、RAM5
04のスロットはマスクROMの任意のスロットに差し
替え可能に構成されている。
【0054】コンピュータ装置501の起動時に、パッ
チの適用が必要なマスクROMスロット#4の実行イメ
ージ514は、RAM504にコピーされ、FROM5
05に格納されているパッチ情報テーブル517の内容
に従い、RAM504にコピーされた内容に対してパッ
チが当てられる。図5に示す例では、スロット#4に対
してパッチは518が1つ適用されている。
【0055】プログラムが連続的に実行されると仮定し
たときの実行順は、マスクROM503上のプログラム
520→RAM上のプログラム521→マスクROM上
のプログラム522と進む。
【0056】本発明の第4の実施例において、どのモジ
ュールをRAM504上へコピーし、マスクROM50
3のスロットと差し替えるかについては、FROM50
5上のパッチ情報テーブル517へ予め書き込んでお
く。パッチ情報テーブルの詳細は、506として示すよ
うに、スロット番号、パッチアドレス、パッチのセット
からなる。CPU502からのアドレスがマスクROM
503のスロット#4に該当する場合、該アドレスを読
み出しアドレスとしてRAM504から読み出しが行わ
れ、RAM504から読み出された内容が、CPU50
2に不図示のバスを介して供給される。
【0057】
【発明の効果】以上説明したように、本発明によれば、
マスクROMへのパッチ機能を安価に提供し、バグの回
避を容易化する、という効果を奏する。その理由は、本
発明においては、例えばマスクROMからRAMに格納
されたモジュールに対して修正を施し、RAM上のモジ
ュールを実行するように構成したためである。
【0058】本発明によれば、高価な大容量FROMを
搭載して大規模プログラム全体を書き換えたり、バグが
発生したときにマスクROM自体を交換することを不要
としており、低価格化を図るとともに、パッチ作業を容
易化している。
【図面の簡単な説明】
【図1】本発明の一実施例の構成を示す図である。
【図2】本発明の第1の実施例を説明するための図であ
り、パッチモジュールによるモジュール単位の差し替え
を説明する図である。
【図3】本発明の第2の実施例を説明するための図であ
り、マスクROM全体をRAMにコピーしてパッチする
構成・動作を説明する図である。
【図4】本発明の第3の実施例を説明するための図であ
り、マスクROMのモジュール単位でRAMにコピーし
てパッチする構成・動作を説明する図である。
【図5】本発明の第4の実施例を説明するための図であ
り、マスクROMを小さなスロットにわけて、スロット
単位でRAM上のスロットと差し代える構成・動作を説
明する図である。
【図6】従来のマスクROMのパッチ機能を備えたコン
ピュータ装置の一例を示す図である。
【図7】従来のマスクROMのパッチ動作を説明するた
めの図である。
【符号の説明】
101 コンピュータ装置 102 CPU 103 マスクROM 104 RAM 105 FROM 106 電気的にバックアップされたRAM 201 コンピュータ装置 202 CPU 203 マスクROM 204 RAM 205 FROM 210 オリジナルモジュール 211 RAM上の差し替えモジュール 212 FROM上の差し替えモジュール 220、221、222 実行順 301 コンピュータ装置 302 CPU 303 マスクROM 304 RAM 305 FROM 306 パッチ情報テーブル内容 310 マスクROM実行イメージ 311 RAM上の実行イメージ 312 パッチ情報テーブル 313、314、315 パッチ 320 実行順 401 コンピュータ装置 402 CPU 403 マスクROM 404 RAM 405 FROM 410 オリジナルモジュール 411 RAM上の実行イメージ 412 パッチ情報テーブル 406 パッチ情報テーブルの内容 413、414、415 パッチ 420、421、422 プログラム実行順 501 コンピュータ装置 502 CPU 503 マスクROM 504 RAM 505 FROM 511 スロット1実行イメージ 514 オリジナルスロット実行イメージ 516 RAM上の差し替えスロット実行イメージ 517 パッチ情報テーブル 506 パッチ情報テーブル内容 518 パッチ 520、521、522 プログラム実行順 600 マイクロコンピュータ 601 プログラムカウンタ 602 アドレスバス 603 ROM 604 RAM 605 命令実行部 606 比較回路 607 選択回路 608 分岐命令発生回路 609 レジスタ 610 シリアルインタフェース 611 データバス 614 外部メモリ

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】プログラムが書き込まれた読み出し専用の
    記憶手段と、 前記読み出し専用の記憶手段に書き込まれたプログラム
    のうち1又は複数のモジュールに対して、差し替え用の
    モジュールを格納する書き換え可能な不揮発性の記憶手
    段と、 読み出し及び書き込み可能な記憶手段と、 CPU(中央処理装置)と、 を備え、 前記読み出し及び書き込み可能な記憶手段には、前記書
    き換え可能な不揮発性の記憶手段に書き込まれた差し替
    え用のモジュールが格納され、 前記CPUは、前記読み出し専用の記憶手段に書き込ま
    れた前記モジュールの代わりに、前記読み出し及び書き
    込み可能な記憶手段に格納された前記差し替え用のモジ
    ュールを読み出して実行することで、前記読み出し専用
    の記憶手段に書き込まれた前記モジュールの実行を回避
    するように構成されてなる、ことを特徴とする情報処理
    装置。
  2. 【請求項2】プログラムが書き込まれた読み出し専用の
    記憶手段と、 前記プログラムに対する修正アドレスと修正内容とを対
    応させて格納する書き換え可能な不揮発性の記憶手段
    と、 読み出し及び書き込み可能な記憶手段と、 CPU(中央処理装置)と、 を備え、 前記読み出し専用の記憶手段に書き込まれたプログラム
    がすべて前記読み出し及び書き込み可能な記憶手段に転
    写され、 前記読み出し及び書き込み可能な記憶手段上に格納され
    た前記プログラムに対して、前記書き換え可能な不揮発
    性の記憶手段に格納されている修正アドレスの内容を、
    前記修正アドレスに対応する修正内容で書き換え、 前記CPUは、前記読み出し及び書き込み可能な記憶手
    段に格納され修正が施されたプログラムを実行すること
    で、前記読み出し専用の記憶手段に書き込まれたプログ
    ラムの実行を回避する構成とされている、ことを特徴と
    する情報処理装置。
  3. 【請求項3】プログラムが書き込まれた読み出し専用の
    記憶手段と、 前記プログラムのうち修正対象の1又は複数のモジュー
    ルについて修正アドレスと修正内容を対応させて格納す
    る書き換え可能な不揮発性の記憶手段と、 前記読み出し専用の記憶手段に書き込まれたプログラム
    をモジュール単位に格納する読み出し及び書き込み可能
    な記憶手段と、 CPU(中央処理装置)と、 を備え、 前記読み出し及び書き込み可能な記憶手段には、前記読
    み出し専用の記憶手段に書き込まれたプログラムのうち
    の修正対象のモジュールがモジュール単位に転写され、 前記読み出し及び書き込み可能な記憶手段に転写された
    前記モジュールに対して、前記書き換え可能な不揮発性
    の記憶手段に格納されている前記モジュールに対する修
    正アドレスの内容を、該修正アドレスに対応する修正内
    容で書き換え、 前記CPUは、前記読み出し専用の記憶手段に書き込ま
    れた前記モジュールの代わりに、前記読み出し及び書き
    込み可能な記憶手段に転写され修正が施されたモジュー
    ルを実行することで、前記読み出し専用の記憶手段に書
    き込まれた前記モジュールの実行を回避するように構成
    されている、ことを特徴とする情報処理装置。
  4. 【請求項4】プログラムが書き込まれた読み出し専用の
    記憶手段と、 前記プログラムのうち修正対象のモジュールについて修
    正アドレスと修正内容を対応させて格納する書き換え可
    能な不揮発性の記憶手段と、 読み出し及び書き込み可能な記憶手段と、 CPU(中央処理装置)と、 を備え、 前記読み出し専用の記憶手段は複数のスロットに分割さ
    れ、 前記読み出し及び書き込み可能な記憶手段も、前記読み
    出し専用の記憶手段と差し替え可能に複数のスロットに
    分割され、 前記読み出し専用の記憶手段に書き込まれたプログラム
    のうち修正対象のスロットの内容が前記読み出し及び書
    き込み可能な記憶手段の対応するスロットに転写され、 前記読み出し及び書き込み可能な記憶手段の前記スロッ
    トに転写されたプログラムに対して、前記書き換え可能
    な不揮発性の記憶手段に格納されている前記スロットに
    対する修正アドレスの内容を、該修正アドレスに対応す
    る修正内容で書き換え、 前記CPUは、前記読み出し専用の記憶手段の前記スロ
    ットの代わりに、前記読み出し及び書き込み可能な記憶
    手段の前記スロット上の修正が施されたプログラムを実
    行することで、前記読み出し専用の記憶手段の前記スロ
    ットのプログラムの実行を回避するように構成されてい
    る、ことを特徴とする情報処理装置。
  5. 【請求項5】前記読み出し及び書き込み可能な記憶手段
    が、電源断時にも記憶内容を保持する不揮発性のランダ
    ムアクセスメモリで構成されていることを特徴とする請
    求項1乃至4のいずれか一に記載の情報処理装置。
  6. 【請求項6】前記読み出し及び書き込み可能な記憶手段
    が、電源断時にも記憶内容を保持する電源バックアップ
    型のランダムアクセスメモリで構成されており、前記書
    き換え可能な不揮発性の記憶手段に書き込まれるべき情
    報を、前記電源バックアップ型のランダムアクセスメモ
    リに格納することで、前記書き換え可能な不揮発性の記
    憶手段を要しなくしたことを特徴とする請求項1乃至4
    のいずれか一に記載の情報処理装置。
  7. 【請求項7】前記読み出し専用の記憶手段が、マスクR
    OM(リードオンリメモリ)よりなり、前記読み出し及
    び書き込み可能な記憶手段が、ランダムアクセスメモリ
    よりなり、前記書き換え可能な不揮発性の記憶手段が、
    一括消去型の電気的に書き換え可能な不揮発性メモリよ
    りなる、ことを特徴とする請求項1乃至4のいずれか一
    に記載の情報処理装置。
JP30121199A 1999-10-22 1999-10-22 マスクromのパッチ機能を備えた情報処理装置 Pending JP2001117766A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP30121199A JP2001117766A (ja) 1999-10-22 1999-10-22 マスクromのパッチ機能を備えた情報処理装置
US09/692,321 US6314024B1 (en) 1999-10-22 2000-10-20 Data processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30121199A JP2001117766A (ja) 1999-10-22 1999-10-22 マスクromのパッチ機能を備えた情報処理装置

Publications (1)

Publication Number Publication Date
JP2001117766A true JP2001117766A (ja) 2001-04-27

Family

ID=17894133

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30121199A Pending JP2001117766A (ja) 1999-10-22 1999-10-22 マスクromのパッチ機能を備えた情報処理装置

Country Status (2)

Country Link
US (1) US6314024B1 (ja)
JP (1) JP2001117766A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012118627A (ja) * 2010-11-29 2012-06-21 Mitsumi Electric Co Ltd マイクロプロセッサ

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI220497B (en) * 2003-03-07 2004-08-21 Novatek Microelectronics Corp Data processing system having built-in memory in micro-processor
JP2005078419A (ja) * 2003-09-01 2005-03-24 Ricoh Co Ltd 情報処理装置及びファイル管理方法
US20050223292A1 (en) * 2004-02-17 2005-10-06 Lee Chee S Single instruction type based hardware patch controller
US7296101B2 (en) * 2004-02-17 2007-11-13 Intel Corporation Method and system for using a patch module to process non-posted request cycles and to control completions returned to requesting device
JP2008009945A (ja) * 2006-06-30 2008-01-17 Toshiba Corp メモリシステム
JP4328796B2 (ja) * 2006-10-31 2009-09-09 エルピーダメモリ株式会社 半導体記憶装置及びその書き込み制御方法
EP2224334A1 (en) * 2009-02-28 2010-09-01 Research In Motion Limited Methods and tools for creation of read-only-memory software binary images and corresponding software patches

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4335447A (en) * 1980-02-05 1982-06-15 Sangamo Weston, Inc. Power outage recovery method and apparatus for demand recorder with solid state memory
US4361877A (en) * 1980-02-05 1982-11-30 Sangamo Weston, Inc. Billing recorder with non-volatile solid state memory
JPH01124041A (ja) 1987-11-09 1989-05-16 Nec Corp 情報処理装置
JPH04259046A (ja) 1991-02-13 1992-09-14 Nec Software Ltd Romパッチ方式
JPH0764784A (ja) 1993-08-31 1995-03-10 Nec Corp マイクロコンピュータ
JPH08305556A (ja) 1995-05-11 1996-11-22 Nec Corp コンピュータにおけるrom内プログラム修正方法
US5864653A (en) * 1996-12-31 1999-01-26 Compaq Computer Corporation PCI hot spare capability for failed components

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012118627A (ja) * 2010-11-29 2012-06-21 Mitsumi Electric Co Ltd マイクロプロセッサ

Also Published As

Publication number Publication date
US6314024B1 (en) 2001-11-06

Similar Documents

Publication Publication Date Title
JP4668416B2 (ja) ブート・ブロックへの書き込みアクセスを可能にする時のブート・ブロック・コードの保護
US7664923B2 (en) Method and system for updating software
JP3838840B2 (ja) コンピュータ
JP4279902B2 (ja) ディジタルテレビジョン放送受信装置およびディジタルテレビジョン放送受信用プログラムの取得方法
US5933595A (en) Computer apparatus having electrically rewritable nonvolatile memory, and nonvolatile semiconductor memory
RU2248627C2 (ru) Способ и устройство для изменения содержимого запоминающих устройств блоков управления
US7181198B2 (en) Program rewriting system and method for a portable telephone set
JP3830867B2 (ja) シングルチップマイクロコンピュータおよびそのブート領域切り替え方法
US20050207232A1 (en) Access method for a NAND flash memory chip, and corresponding NAND flash memory chip
JP2001117766A (ja) マスクromのパッチ機能を備えた情報処理装置
US20030005212A1 (en) Method and apparatus for dynamically modifying a stored program
JPH10307726A (ja) 起動エラー時におけるファームウェアリカバリ方式
CN114047952B (zh) 用于单片机的处理器、方法、单片机和存储介质
JP2002175193A (ja) プログラム書き換え装置及びプログラム書き換え方法
JP2002207640A (ja) 情報処理装置
JP2000293376A (ja) ブートプログラムの切替回路及び切替方法
JP2002351687A (ja) プリンタのファームウェアの更新方式
US20050068842A1 (en) Electronic device, nonvolatile memory and method of overwriting data in nonvolatile memory
JP2003122575A (ja) 情報処理装置
JP2004094628A (ja) フラッシュメモリのメモリ書き換え制御システム、メモリ書き換え制御方法及びメモリ書き換え制御方法の各工程を実行させるプログラム
JP2002259152A (ja) フラッシュメモリ書換方法
JPH08101794A (ja) ファームウェアのプログラム書き換え方式
JPH05143315A (ja) フアームウエアのバージヨンアツプ方法
JP3074238B2 (ja) カメラ
JP2000207217A (ja) デ―タ処理装置、及びプログラムダウンロ―ド方法

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20030812