JPH11265283A - 記憶装置におけるファームウェアの修正方法及び記憶装置 - Google Patents

記憶装置におけるファームウェアの修正方法及び記憶装置

Info

Publication number
JPH11265283A
JPH11265283A JP10068102A JP6810298A JPH11265283A JP H11265283 A JPH11265283 A JP H11265283A JP 10068102 A JP10068102 A JP 10068102A JP 6810298 A JP6810298 A JP 6810298A JP H11265283 A JPH11265283 A JP H11265283A
Authority
JP
Japan
Prior art keywords
firmware
stored
memory
module
jump table
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
JP10068102A
Other languages
English (en)
Inventor
Takayuki Tamura
隆之 田村
Kunihiro Katayama
国弘 片山
Kazuo Nakamura
一男 中村
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP10068102A priority Critical patent/JPH11265283A/ja
Publication of JPH11265283A publication Critical patent/JPH11265283A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】フラッシュメモリなどの不揮発性半導体メモリ
を用いた記憶装置において、内蔵されるファームウェア
の容易な修正と低価格な記憶装置を提供する。 【解決手段】フラッシュメモリカード2において、電源
オン時に、フラッシュメモリ22からRAM26にロー
ドすることで、ROM25内の不具合が発生したモジュ
ールの変わりにRAM26の不具合を修正されたモジュ
ールを使用すること、ROM25のファームウェアの不
具合対策を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、電気的に書き換え
可能な不揮発性半導体メモリを記憶媒体として用いた記
憶装置に係り、特に、記憶装置に格納されたファームウ
ェアの修正を容易に行うことを目的とした不揮発性半導
体メモリを用いた記憶装置に関する。
【0002】
【従来の技術】不揮発性半導体メモリを用いた記憶装置
として、フラッシュメモリを用いた記憶装置がある。フ
ラッシュメモリは、データの書き込みを行う前に、デー
タ書き込みを行う一つ以上のセクタから構成されるブロ
ックを消去しなければならない。また、パーソナルコン
ピュータ(PC)などのホストコンピュータに接続され
た場合、PCが発行するコマンドなどの解析を行い、P
Cが要求するデータの読み出しや書き込みを制御する必
要がある。
【0003】このフラッシュメモリの制御やホストコン
ピュータ間の制御を行うために、記憶装置にはファーム
ウェアが格納されている。このような記憶装置として、
米国特許第5606660号公報がある。本従来例にお
いて、ファームウェアは不揮発性半導体メモリに格納さ
れ、RAMなどのメモリにロードされた後に、記憶装置
に内蔵のマイクロプロセッサによって実行される。不揮
発性半導体メモリにファームウェアが格納されていない
場合には、ホストコンピュータからの特殊コマンドによ
って、ホストコンピュータが書き込むファームウェアを
不揮発性半導体メモリに書き込む。
【0004】
【発明が解決しようとする課題】米国特許第56066
60号公報に示される従来の記憶装置は、ファームウェ
アを不揮発性半導体メモリに格納するための手段につい
てのものであり、ファームウェアに不具合が発生した場
合におけるファームウェアの修正に関して配慮がされて
おらず、容易にファームウェアを修正できないという問
題がある。さらに、従来の記憶装置では、不揮発性半導
体メモリに格納されたファームウェアをRAMに格納す
るために、RAMの容量が増大する問題がある。
【0005】本発明の目的は、不揮発性半導体メモリに
ファームウェアを格納した後に、ファームウェアの不具
合が発生した場合でも、ファームウェアの修正を容易に
行うことにある。
【0006】本発明の他の目的は、ファームウェアを修
正するために使用されるメモリの容量を低減し、低価格
な記憶装置を提供することにある。
【0007】
【課題を解決するための手段】上記目的を達成するため
に、本発明の記憶装置に格納されるファームウェアは、
各機能ごとに分割された複数のモジュールと、各モジュ
ールの呼び出し毎に参照されるジャンプテーブルで構成
される。ジャンプテーブルは、各モジュールのアドレス
を示している。また、本発明の記憶装置は、不揮発性半
導体メモリであるフラッシュメモリ、マイクロプロセッ
サ、ファームウェアが格納されるROM、そしてROM
に格納されているファームウェア内のジャンプテーブル
または修正されたジャンプテーブルと修正されたモジュ
ールをフラッシュメモリからロードするRAMから構成
される。フラッシュメモリには、ホストコンピュータが
書き込むデータと、修正されたジャンプテーブルや複数
のモジュールが格納される。ROMには、予めファーム
ウェアが格納されている。
【0008】まず、電源オン後、第1のメモリに格納さ
れているジャンプテーブルが、マイクロプロセッサによ
って、ROMからRAMにコピーされる。ファームウェ
アに不具合が発生していないときには、RAMにコピー
されたジャンプテーブルは、すべてROMに格納されて
いるファームウェアの各モジュールのアドレスを示して
いる。
【0009】ROMに格納されているファームウェアに
不具合が発生した場合、フラッシュメモリには、不具合
が発生したモジュールに対する修正したモジュールを格
納する。同時に、ジャンプテーブルも、修正されたモジ
ュールのアドレスを示すように修正され、フラッシュメ
モリに格納される。
【0010】ROMに格納されているジャンプテーブル
をRAMにコピーした後、修正されたジャンプテーブル
および複数のモジュールがフラッシュメモリに格納され
ている場合には、フラッシュメモリに格納されている修
正されたジャンプテーブルおよび複数のモジュールはR
AMにロードされる。このとき、ROMからコピーされ
たジャンプテーブルは、フラッシュメモリに格納されて
いる修正されたジャンプテーブルに書き替えられる。こ
れにより、ROMに格納されている不具合が発生したモ
ジュールは参照されず、RAMにロードされている修正
されたモジュールが参照される。
【0011】以上のように、不具合が発生したモジュー
ルおよびジャンプテーブルを修正し、フラッシュメモリ
に格納することにより、ROMに格納されているファー
ムウェアに不具合が発生した場合にも、容易にファーム
ウェアの修正が可能になる。
【0012】また、ファームウェアの修正のために必要
になるRAMの容量は、不具合が発生したモジュールと
ジャンプテーブルの容量で十分であるので、RAM容量
を低減でき、低価格な記憶装置を提供できる。
【0013】
【発明の実施の形態】以下、本発明に係る不揮発性半導
体メモリを用いた記憶装置の実施例について説明する。
【0014】図1に、本発明の一実施例である記憶装置
の構成をコンピュータの外部記憶装置への適用を例にと
り示す。
【0015】図1において、2が外部記憶装置であり、
ホストコンピュータ1の外部記憶装置である。ホストコ
ンピュータ1は、記憶装置に対してデータの格納や読み
出しを行う装置であり、例えばパーソナルコンピュータ
(PC)である。外部記憶装置2は、不揮発性半導体メ
モリとしてフラッシュメモリを用いていることからフラ
ッシュメモリカードと呼ばれる。
【0016】このフラッシュメモリカード2は、標準バ
ス101を介してホストコンピュータ1からのコマンド
やデータの授受を行う。標準バス101には、PCMC
IAインタフェースやSCSIインタフェースなど様々
なインタフェースがあり、外部記憶装置を必要とするホ
ストコンピュータ1と間のプロトコルの取り決めを有す
るものであれば特に限定はない。
【0017】フラッシュメモリカード2において、21
は、ホストコンピュータ1やフラッシュメモリ22との
インタフェースを司り、マイクロプロセッサ24の指示
に従って、ホストコンピュータ1やフラッシュメモリ2
2間のデータ転送を行うコントローラである。
【0018】22は、ホストコンピュータが書き込むデ
ータを格納するためのフラッシュメモリであり、複数個
のフラッシュメモリチップから構成される。フラッシュ
メモリ22には、ホストコンピュータが取り扱うユーザ
データや修正されたモジュールやジャンプテーブル、そ
してフラッシュメモリに格納されているユーザデータを
管理するための管理情報が格納されている。
【0019】23は、ホストコンピュータ1との間でデ
ータの授受を行うとき、データを一時格納するためのデ
ータバッファである。データバッファ23は、マイクロ
プロセッサ24がフラッシュメモリ22に格納されてい
るデータを読み出したり、マイクロプロセッサ24がフ
ラッシュメモリ22にデータを書き込むときにも使用さ
れる。データバッファ26は、スタティックRAMやダ
イナミックRAMそしてランダムアクセスが可能なフラ
ッシュメモリなどのランダムアクセスが可能なメモリで
あればよい。
【0020】24は、マイクロプロセッサであり、ホス
トコンピュータ1が書き込むコマンドの制御やフラッシ
ュメモリ22の管理、そしてフラッシュメモリ22とデ
ータバッファ23間やホストコンピュータ1とデータバ
ッファ23間のデータ転送を制御する。
【0021】25は、ファームウェアが格納されている
不揮発性のメモリ(ROM)である。ROM25は、マ
スクROMやEEPROMそしてフラッシュメモリなど
の不揮発性のメモリであればよい。
【0022】26は、フラッシュメモリ22に格納され
ている修正されたモジュールやジャンプテーブルがロー
ドされるランダムアクセスが可能なメモリ(RAM)で
ある。また、RAM26は、マイクロプロセッサ24が
使用するワークメモリとしても使用可能である。RAM
26は、スタティックRAMやダイナミックRAMそし
てランダムアクセスが可能なフラッシュメモリなどのメ
モリであればよい。
【0023】ここで、フラッシュメモリ22は、フラッ
シュバス201を介してコントローラ21に接続され
る。フラッシュバス201は、フラッシュメモリ22に
依存するインタフェースを提供する。データバッファ2
3は、データバッファバス202を介してコントローラ
21に接続される。データバッファバス202は、デー
タバッファ23に依存するインタフェースを提供する。
コントローラ21、マイクロプロセッサ24、ROM2
5そしてRAM26は、ローカルバス203を介して、
それぞれが接続される。ローカルバス203は、マイク
ロプロセッサ24に依存するインタフェースを提供す
る。
【0024】図2に、フラッシュメモリ22のチップ0
の内部構成を示す。
【0025】ブロックアドレス0〜n−1には、ユーザ
データが格納される。ブロックアドレスnには、修正さ
れたファームウェアが格納される。ブロックアドレスn
以降のブロックは、フラッシュメモリ22を管理するた
めの情報が格納される。また、それぞれのユーザデータ
部は、ユーザデータ管理部を持ち、ユーザデータ部に対
する状態などの管理情報を保持している。ユーザデータ
管理部の使用方法に関しては省略する。
【0026】修正されたファームウェアが格納されてい
る修正ファームウェア格納部221は、修正されたジャ
ンプテーブルや複数の修正されたモジュールが格納され
ている。ユーザデータ部と同様に、修正ファームウェア
格納部221は修正ファーム管理部222を持つ。修正
ファーム管理部222は、修正ファームウェア格納部2
21に修正されたファームウェアが格納されているかど
うかを示す修正ファーム有無フラグなどの情報を保持し
ている。ROM25に格納されているファームウェアに
不具合が発生していない場合には、修正ファーム有無フ
ラグは修正されたファームウェアがないことを示す。
【0027】ここで、ブロックアドレスnは、予め決め
られている。また、図2では、修正されたファームウェ
アのモジュールやジャンプテーブルを格納するために一
つのブロックを使用した場合について示しているが、修
正されたファームウェアのモジュールやジャンプテーブ
ルを複数のブロックに格納してもよい。
【0028】図3は、ROM25に格納されているファ
ームウェアの内部構成を示している。
【0029】ROM25に格納されているファームウェ
アは、電源オン処理モジュール、初期ジャンプテーブ
ル、初期モジュール1,・・・、初期モジュールkから
構成される。電源オン処理モジュールは、電源オン処理
時に実行されるモジュールである。初期ジャンプテーブ
ルは、初期モジュール1,・・・、初期モジュールkの
アドレスを示している。初期モジュール1,・・・、初
期モジュールkは、機能ごとに分割されたプログラムで
ある。
【0030】図4は、ROM25に格納されている電源
オン処理モジュールを処理するマイクロプロセッサのフ
ローチャートである。
【0031】まず、ステップ1001において、マイク
ロプロセッサ23およびコントローラ21の初期設定を
行う。
【0032】次いで、ステップ1002において、RO
M25に格納されている初期ジャンプテーブルをRAM
26にコピーする。図5は、ステップ1002を処理し
た後のRAM26の内容を示している。
【0033】ステップ1003では、フラッシュメモリ
22の修正されたファームウェアが格納されているブロ
ックアドレスnの修正ファーム管理部222をデータバ
ッファ23に転送している。その後、マイクロプロセッ
サ24は、データバッファ23に転送された修正ファー
ム管理部222の修正ファーム有無フラグをリードし、
フラッシュメモリ22のブロックアドレスnに修正され
たモジュールやジャンプテーブルが格納されているかど
うかを確認する(ステップ1004)。
【0034】修正されたモジュールやジャンプテーブル
がフラッシュメモリ22のブロックアドレスnに格納さ
れている場合には、ステップ1005およびステップ1
006を処理する。ステップ1005は、フラッシュメ
モリ22の修正されたファームウェアが格納されている
ブロックアドレスnの修正ファームウェア格納部221
をデータバッファ23に転送している。ステップ100
6では、データバッファ23に転送された修正ファーム
ウェア格納部をRAM26にコピーしている。
【0035】図6は、ステップ1005およびステップ
1006の処理を行った後のRAM26の内容を示して
いる。ここで、ステップ1002でROM25からコピ
ーされた初期ジャンプテーブルは、フラッシュメモリ2
2に格納されていた修正ジャンプテーブルの書き替えら
れる。ステップ1006の終了した後は、ステップ10
07に進み、次の処理を行う。
【0036】修正されたモジュールやジャンプテーブル
がフラッシュメモリ22のブロックアドレスnに格納さ
れている場合には、ステップ1007に進み、次の処理
を行う。
【0037】図7は、修正ファームウェア管理部222
の修正ファーム有無フラグが修正ファームウェアが格納
されていないことを示している場合、つまりROM25
に格納されているファームウェアに不具合が発生してい
ない場合のファームウェアのフローを図示したものであ
る。RAM26には、ROM25に格納されている初期
ジャンプテーブルがコピーされている。
【0038】図7において、初期モジュール1のモジュ
ールhを呼び出す個所251では、初期ジャンプテーブ
ルの261を参照し、モジュールhのアドレスを得る。
261は、初期モジュールhのアドレスを示しているの
で、初期モジュール1から初期モジュールhに処理が移
る。
【0039】同様に、初期モジュールkのモジュールj
を呼び出す個所252では、初期ジャンプテーブルの2
62を参照し、モジュールjのアドレスを得る。262
は、初期モジュールjのアドレスを示しているので、初
期モジュールkから初期モジュールjに処理が移る。
【0040】図8は、修正ファームウェア管理部222
の修正ファーム有無フラグが修正ファームウェアが格納
されていることを示している場合、つまりROM25に
格納されているファームウェアに不具合が発生している
場合のファームウェアのフローを図示したものである。
また、図8では、ROM25内の初期モジュールhと初
期モジュールjに不具合が発生したことにより、初期モ
ジュールhおよび初期モジュールjに対する修正された
修正モジュールhと修正モジュールjがRAM26に格
納されている。さらに、修正モジュールhと修正モジュ
ールjのアドレスを変更するために、初期ジャンプテー
ブルに対する修正された修正ジャンプテーブルもRAM
26に格納されている。修正ジャンプテーブル、修正モ
ジュールhおよび修正モジュールjがRAM26へ格納
される方法は、図4および図6を用いて説明したように
行われる。
【0041】図8において、初期モジュール1のモジュ
ールhを呼び出す個所251では、修正ジャンプテーブ
ルの263を参照し、モジュールhのアドレスを得る。
263は、修正モジュールhのアドレスを示しているの
で、初期モジュール1から修正モジュールhに処理が移
る。
【0042】同様に、初期モジュールkのモジュールj
を呼び出す個所252では、修正ジャンプテーブルの2
64を参照し、モジュールjのアドレスを得る。264
は、修正モジュールjのアドレスを示しているので、初
期モジュールkから修正モジュールjに処理が移る。
【0043】ここで、図7の初期ジャンプテーブルの2
61と図8の修正ジャンプテーブル263はRAM26
上で同一のアドレスである。同様に、図7の初期ジャン
プテーブルの262と図8の修正ジャンプテーブル26
4もRAM26上で同一のアドレスである。また、マイ
クロプロセッサ23は、RAM26に格納されているジ
ャンプテーブルを用いて、モジュールの呼び出しを行
う。
【0044】以上のように、RAM26に格納されたジ
ャンプテーブルを使用することにより、ROM25に格
納されているファームウェアに不具合が発生した場合で
も、不具合が発生したモジュールをRAM26に格納
し、さらにジャンプテーブルを修正することで、容易に
ファームウェアの不具合を対策できる。また、不具合対
策のために必要となるRAM26の容量は、ジャンプテ
ーブルと不具合が発生したモジュールを格納する容量だ
けで良いので、RAM容量を低減でき、低価格なフラッ
シュメモリカード2を提供できる。
【0045】次に、修正されたジャンプテーブルやモジ
ュールをフラッシュメモリ22に格納するための手順に
ついて図9を用いて説明する。図9および図10は、図
4で説明した電源オン処理後のファームウェアを処理す
るマイクロプロセッサ24にフローチャートである。
【0046】まず、ステップ2002において、ホスト
コンピュータ1がコマンドをフラッシュメモリ2に発行
された場合、ステップ2003でホストコンピュータ1
が発行したコマンドを判定する。ステップ2003にお
いて、ホストコンピュータ1が発行したコマンドが特殊
ライトコマンドである場合には、ステップ2005に進
み、特殊ライトコマンド以外の場合には、ステップ20
04の通常のコマンド処理を行う。特殊ライトコマンド
とは、フラッシュメモリ22に修正したジャンプテーブ
ルとモジュールを書き込むためのコマンドである。
【0047】ステップ2004の通常コマンド処理は、
ホストコンピュータ1がユーザデータを書き込んだり、
読み出したり、またはフラッシュメモリカード2の情報
を読み出したりするためのコマンドであり、ここでは説
明を省略する。ステップ2004が終了後は、ステップ
2002に戻り、ホストコンピュータ1からの次のコマ
ンドを待つ。
【0048】ステップ2003で特殊ライトコマンドと
判定されると、ステップ2005において、ホストコン
ピュータ1からデータバッファ23へのデータ転送をコ
ントローラ21に設定する。
【0049】次いで、ステップ2006において、ホス
トコンピュータ1が発行したコマンドに対する準備が整
ったことをコントローラ21に設定し、ホストコンピュ
ータ1からのデータ転送終了を待つ(ステップ200
7)。
【0050】ホストコンピュータ1からのデータ転送が
終了すると、ステップ2008において、修正ファーム
管理部222の修正ファーム有無フラグに対応するデー
タバッファ23に修正ファームウェア格納部221に修
正されたジャンプテーブルとモジュールが格納されてい
ることを示すフラグを書き込む。
【0051】その後、ステップ2009において、デー
タバッファ23に書き込まれているホストコンピュータ
1からのデータをフラッシュメモリ22のブロックアド
レスnの修正ファームウェア格納部221に、また、デ
ータバッファ23の修正ファーム管理部222に対応す
るデータをフラッシュメモリ22のブロックアドレスn
の修正ファーム管理部222に転送する。
【0052】フラッシュメモリ22へのデータ転送終了
を待ち(ステップ2010)、データ転送が終了した
後、ステップ2011において、フラッシュメモリ22
にプログラム開始を設定する。
【0053】ステップ2012において、フラッシュメ
モリ22へのプログラムが終了した後に、ステップ20
02に戻り、ホストコンピュータ1からの次のコマンド
を待つ。
【0054】ここで、ファームウェアを修正すること
は、非常に危険な処理である。そこで、フラッシュメモ
リカード2に制御ピンを設定する。ステップ2003に
おける特殊ライトコマンドの判定において、前記制御ピ
ンも判定に加える。例えば、グランドレベルを示してい
るときには、ホストコンピュータ1が特殊ライトコマン
ドを発行しても、修正ファームウェア格納部221およ
び修正ファーム管理部への書き込みを行わないようにす
る。
【0055】図4に示した電源オン処理モジュールを実
行するマイクロプロセッサ24のフローチャートの他に
実施例について、図11を用いて説明する。
【0056】まず、ステップ3001において、マイク
ロプロセッサ23およびコントローラ21の初期設定を
行う。
【0057】次いで、ステップ3002では、フラッシ
ュメモリ22の修正されたファームウェアが格納されて
いるブロックアドレスnの修正ファーム管理部222を
データバッファ23に転送している。その後、マイクロ
プロセッサ24は、データバッファ23に転送された修
正ファーム管理部222の修正ファーム有無フラグをリ
ードし、フラッシュメモリ22のブロックアドレスnに
修正されたモジュールやジャンプテーブルが格納されて
いるかどうかを確認する(ステップ3003)。
【0058】修正されたモジュールやジャンプテーブル
がフラッシュメモリ22のブロックアドレスnに格納さ
れている場合には、ステップ3004、ステップ300
5そしてステップ3006を処理する。ステップ300
4は、フラッシュメモリ22の修正されたファームウェ
アが格納されているブロックアドレスnの修正ファーム
ウェア格納部221をデータバッファ23に転送してい
る。ステップ3005では、データバッファ23に転送
された修正ファームウェア格納部をRAM26にコピー
している。ステップ3006では、ジャンプテーブルを
RAM26にコピーされた修正ジャンプテーブルに変更
するために、ROM35の初期ジャンプテーブルのアド
レスに対するオフセットを設定している。オフセットを
設定することにより、ROM35の初期ジャンプテーブ
ルの変わりに、RAM26にコピーされた修正ジャンプ
テーブルを使用することが可能になる。ステップ300
6の後、ステップ3007に進み、次の処理を行う。
【0059】修正されたモジュールやジャンプテーブル
がフラッシュメモリ22のブロックアドレスnに格納さ
れている場合には、ステップ3007に進み、次の処理
を行う。
【0060】図12は、修正ファームウェア管理部22
2の修正ファーム有無フラグが修正ファームウェアが格
納されていないことを示している場合、つまりROM2
5に格納されているファームウェアに不具合が発生して
いない場合のファームウェアのフローを図示したもので
ある。
【0061】図12において、初期モジュール1のモジ
ュールhを呼び出す個所251では、初期ジャンプテー
ブルの253を参照し、モジュールhのアドレスを得
る。253は、初期モジュールhのアドレスを示してい
るので、初期モジュール1から初期モジュールhに処理
が移る。
【0062】同様に、初期モジュールkのモジュールj
を呼び出す個所252では、初期ジャンプテーブルの2
54を参照し、モジュールjのアドレスを得る。254
は、初期モジュールjのアドレスを示しているので、初
期モジュールkから初期モジュールjに処理が移る。
【0063】ここで、修正ファームウェア管理部222
の修正ファーム有無フラグが修正ファームウェアが格納
されていることを示している場合、つまりROM25に
格納されているファームウェアに不具合が発生している
場合のファームウェアのフローは、図8と同一である。
【0064】図4に示した電源オン処理モジュールを実
行するマイクロプロセッサ24のフローチャートのさら
なる他に実施例について、図13を用いて説明する。
【0065】まず、ステップ4001において、マイク
ロプロセッサ23およびコントローラ21の初期設定を
行う。
【0066】次いで、ステップ4002では、フラッシ
ュメモリ22の修正されたファームウェアが格納されて
いるブロックアドレスnの修正ファーム管理部222を
データバッファ23に転送している。その後、マイクロ
プロセッサ24は、データバッファ23に転送された修
正ファーム管理部222の修正ファーム有無フラグをリ
ードし、フラッシュメモリ22のブロックアドレスnに
修正されたモジュールやジャンプテーブルが格納されて
いるかどうかを確認する(ステップ4003)。
【0067】修正されたモジュールやジャンプテーブル
がフラッシュメモリ22のブロックアドレスnに格納さ
れている場合には、ステップ4004する。ステップ4
004では、ジャンプテーブルをフラッシュメモリ22
に格納された修正ジャンプテーブルに変更するために、
ROM35の初期ジャンプテーブルのアドレスに対する
オフセットを設定している。オフセットを設定すること
により、ROM35の初期ジャンプテーブルの変わり
に、フラッシュメモリ22に格納された修正ジャンプテ
ーブルを使用することが可能になる。ステップ4004
の後、ステップ4005に進み、次の処理を行う。
【0068】修正されたモジュールやジャンプテーブル
がフラッシュメモリ22のブロックアドレスnに格納さ
れている場合には、ステップ4005に進み、次の処理
を行う。
【0069】図14は、修正ファームウェア管理部22
2の修正ファーム有無フラグが修正ファームウェアが格
納されていることを示している場合、つまりROM25
に格納されているファームウェアに不具合が発生してい
る場合のファームウェアのフローを図示したものであ
る。また、図14では、ROM25内の初期モジュール
hと初期モジュールjに不具合が発生したことにより、
初期モジュールhおよび初期モジュールjに対する修正
された修正モジュールhと修正モジュールjがフラッシ
ュメモリ22に格納されている。さらに、修正モジュー
ルhと修正モジュールjのアドレスを変更するために、
初期ジャンプテーブルに対する修正された修正ジャンプ
テーブルもフラッシュメモリ22に格納されている。こ
こで、フラッシュメモリ22は、ランダムな読み出しが
可能なメモリである。
【0070】図14において、初期モジュール1のモジ
ュールhを呼び出す個所251では、修正ジャンプテー
ブルの223を参照し、モジュールhのアドレスを得
る。223は、修正モジュールhのアドレスを示してい
るので、初期モジュール1から修正モジュールhに処理
が移る。
【0071】同様に、初期モジュールkのモジュールj
を呼び出す個所252では、修正ジャンプテーブルの2
24を参照し、モジュールjのアドレスを得る。224
は、修正モジュールjのアドレスを示しているので、初
期モジュールkから修正モジュールjに処理が移る。
【0072】図13に示すファームウェアの修正方法で
は、図1に示すRAM26が必要なくなるので、さらに
低価格なフラッシュメモリカードを提供できる。
【0073】
【発明の効果】以上説明したように、本発明によれば、
フラッシュメモリなどの不揮発性半導体メモリを用いた
記憶装置において、内蔵されるファームウェアの修正を
容易に行うことができ、低価格な記憶装置を提供できる
効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例を示す外部記憶装置の構成を
示すブロック図である。
【図2】フラッシュメモリ22のチップ0における内部
構成を示す図である。
【図3】ROM25に格納されているファームウェアの
内部構成を示す図である。
【図4】ROM25に格納されている電源オン処理モジ
ュールを処理するマイクロプロセッサのフローチャート
である。
【図5】図4のステップ1002を処理した後のRAM
26の内容を示す図である。
【図6】図4のステップ1005およびステップ100
6の処理を行った後のRAM26の内容を示す図であ
る。
【図7】修正ファームウェア管理部222の修正ファー
ム有無フラグが修正ファームウェアが格納されていない
ことを示している場合のファームウェアのフロー図であ
る。
【図8】修正ファームウェア管理部222の修正ファー
ム有無フラグが修正ファームウェアが格納されているこ
とを示している場合のファームウェアのフロー図であ
る。
【図9】電源オン処理後のファームウェアを処理するマ
イクロプロセッサ24にフローチャートである。
【図10】電源オン処理後のファームウェアを処理する
マイクロプロセッサ24にフローチャートである。
【図11】他の実施例である電源オン処理モジュールを
実行するマイクロプロセッサ24のフローチャートであ
る。
【図12】修正ファームウェア管理部222の修正ファ
ーム有無フラグが修正ファームウェアが格納されていな
いことを示している場合のファームウェアのフロー図で
ある。
【図13】他の実施例である電源オン処理モジュールを
実行するマイクロプロセッサ24のフローチャートであ
る。
【図14】修正ファームウェア管理部222の修正ファ
ーム有無フラグが修正ファームウェアが格納されている
ことを示している場合のファームウェアのフロー図であ
る。
【符号の説明】
1…ホストコンピュータ、 2…フラッシュメモリ
カード(記憶装置)、21…コントローラ、
22…フラッシュメモリ、23…データバッファ、
24…マイクロプロセッサ、25…ROM、
26…RAM。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】ホストコンピュータが書き込むデータを格
    納するための不揮発性半導体メモリと、ファームウェア
    が格納されている第1のメモリと、ファームウェアを処
    理するためのマイクロプロセッサを有する記憶装置にお
    いて、該第1のメモリに格納されているファームウェア
    に不具合が発生したときのファームウェアの修正方法で
    あって、該第1のメモリに格納されているファームウェ
    アに不具合が発生したときには、該不揮発性半導体メモ
    リに不具合が発生したファームウェアのモジュール、お
    よび不具合が発生したモジュールとの関係を示すジャン
    プテーブルが格納され、電源オン処理において、該不揮
    発性半導体メモリに該修正されたモジュールとジャンプ
    テーブルが格納されている場合には、該不揮発性半導体
    メモリから第2のメモリに修正されたファームウェアの
    モジュールとジャンプテーブルをロードし、該マイクロ
    プロセッサは、該第2のメモリにロードされたジャンプ
    テーブルを参照することで、該第1のメモリに格納され
    ている不具合が発生したモジュールの変わりに該第2の
    メモリにロードされている修正されたモジュールを実行
    することを特徴とする記憶装置におけるファームウェア
    の修正方法。
  2. 【請求項2】請求項1に記載の記憶装置におけるファー
    ムウェアの修正方法であって、電源オン処理において、
    該第1のメモリに格納されているジャンプテーブルを第
    2のメモリにコピーし、該不揮発性半導体メモリに修正
    されたファームウェアのモジュールが格納されていない
    場合には、該マイクロプロセッサは、該第2のメモリに
    格納されているジャンプテーブルを参照することで、該
    第1のメモリに格納されているファームウェアを実行
    し、該不揮発性半導体メモリに修正されたファームウェ
    アのモジュールが格納されている場合には、該不揮発性
    半導体メモリから第2のメモリに修正されたファームウ
    ェアのモジュールとジャンプテーブルをロードし、この
    とき該第1のメモリからコピーされたジャンプテーブル
    を上書きし、該マイクロプロセッサは、該第2のメモリ
    にロードされたジャンプテーブルを参照することで、該
    第1のメモリに格納されている不具合が発生したモジュ
    ールの変わりに該第2のメモリにロードされている修正
    されたモジュールを実行することを特徴とする記憶装置
    におけるファームウェアの修正方法。
  3. 【請求項3】ホストコンピュータが書き込むデータを格
    納するための不揮発性半導体メモリと、ファームウェア
    が格納されている第1のメモリと、ファームウェアを処
    理するためのマイクロプロセッサを有する記憶装置にお
    いて、該第1のメモリに格納されているファームウェア
    に不具合が発生したときには、該不揮発性半導体メモリ
    に不具合が発生したファームウェアのモジュール、およ
    び不具合が発生したモジュールとの関係を示すジャンプ
    テーブルが格納され、該不揮発性半導体メモリに修正さ
    れたファームウェアのモジュールが格納されている場合
    には、該不揮発性半導体メモリから修正されたファーム
    ウェアのモジュールとジャンプテーブルをロードするた
    めの第2のメモリを有し、該第1のメモリに格納されて
    いる不具合が発生したモジュールの変わりに該第2のメ
    モリに格納されている修正されたモジュールを実行する
    ことを特徴とする記憶装置。
  4. 【請求項4】ホストコンピュータが書き込むデータを格
    納するための不揮発性半導体メモリと、ファームウェア
    が格納されている第1のメモリと、ファームウェアを処
    理するためのマイクロプロセッサを有する記憶装置にお
    いて、該第1のメモリに格納されているファームウェア
    に不具合が発生したときのファームウェアの修正方法で
    あって、該第1のメモリに格納されているファームウェ
    アに不具合が発生したときには、該不揮発性半導体メモ
    リに不具合が発生したファームウェアのモジュール、お
    よび不具合が発生したモジュールとの関係を示すジャン
    プテーブルが格納され、電源オン処理において、該不揮
    発性半導体メモリに修正されたファームウェアのモジュ
    ールが格納されている場合には、該マイクロプロセッサ
    は、該不揮発性半導体メモリに格納されているジャンプ
    テーブルを参照するように切り替え、該マイクロプロセ
    ッサは、該不揮発性半導体メモリに格納されているジャ
    ンプテーブルを参照することで、該第1のメモリに格納
    されている不具合が発生したモジュールの変わりに該不
    揮発性半導体メモリに格納されている修正されたモジュ
    ールを実行することを特徴とする記憶装置におけるファ
    ームウェアの修正方法。
  5. 【請求項5】ホストコンピュータが書き込むデータを格
    納するための不揮発性半導体メモリと、ファームウェア
    が格納されているメモリと、ファームウェアを処理する
    ためのマイクロプロセッサを有する記憶装置において、
    該ファームウェアに不具合が発生したときには、該不揮
    発性半導体メモリに不具合が発生したファームウェアの
    モジュール、および不具合が発生したモジュールとの関
    係を示すジャンプテーブルが格納され、該不揮発性半導
    体メモリに修正されたファームウェアのモジュールが格
    納されている場合には、該メモリに格納されている不具
    合が発生したモジュールの変わりに該不揮発性半導体メ
    モリに格納されている修正されたモジュールを実行する
    ことを特徴とする記憶装置。
JP10068102A 1998-03-18 1998-03-18 記憶装置におけるファームウェアの修正方法及び記憶装置 Pending JPH11265283A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10068102A JPH11265283A (ja) 1998-03-18 1998-03-18 記憶装置におけるファームウェアの修正方法及び記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10068102A JPH11265283A (ja) 1998-03-18 1998-03-18 記憶装置におけるファームウェアの修正方法及び記憶装置

Publications (1)

Publication Number Publication Date
JPH11265283A true JPH11265283A (ja) 1999-09-28

Family

ID=13364053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10068102A Pending JPH11265283A (ja) 1998-03-18 1998-03-18 記憶装置におけるファームウェアの修正方法及び記憶装置

Country Status (1)

Country Link
JP (1) JPH11265283A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005173746A (ja) * 2003-12-09 2005-06-30 Yokogawa Electric Corp メモリ装置及びメモリ装置のアクセス方法
JP2005332221A (ja) * 2004-05-20 2005-12-02 Renesas Technology Corp 記憶装置
US6996005B2 (en) 2003-02-26 2006-02-07 Renesas Technology Corp. Nonvolatile memory card
US7002853B2 (en) 1999-02-26 2006-02-21 Renesas Technology Corp. Memory card having a buffer memory for storing testing instruction
JP2006120082A (ja) * 2004-10-25 2006-05-11 Toshiba Corp メモリカード、半導体装置、及びメモリカードの制御方法
CN100412893C (zh) * 2001-09-13 2008-08-20 株式会社瑞萨科技 存储卡
US8195868B2 (en) 2003-10-17 2012-06-05 Renesas Electronics America Inc. Method and apparatus for smart memory pass-through communication
WO2018150820A1 (ja) * 2017-02-17 2018-08-23 日立オートモティブシステムズ株式会社 情報処理装置

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7002853B2 (en) 1999-02-26 2006-02-21 Renesas Technology Corp. Memory card having a buffer memory for storing testing instruction
US7292480B2 (en) 1999-02-26 2007-11-06 Renesas Technology Corp. Memory card having buffer memory for storing testing instruction
US7440337B2 (en) 1999-02-26 2008-10-21 Renesas Technology Corp. Nonvolatile semiconductor memory apparatus having buffer memory for storing a program and buffering work data
US7908424B2 (en) 2001-09-13 2011-03-15 Renesas Electronics Corporation Memory card and data rewriting method
CN100412893C (zh) * 2001-09-13 2008-08-20 株式会社瑞萨科技 存储卡
US6996005B2 (en) 2003-02-26 2006-02-07 Renesas Technology Corp. Nonvolatile memory card
US7298649B2 (en) 2003-02-26 2007-11-20 Renesas Technology Corp. Nonvolatile memory card
CN100367306C (zh) * 2003-02-26 2008-02-06 株式会社瑞萨科技 非易失性存储卡
US7483297B2 (en) 2003-02-26 2009-01-27 Renesas Technology Corp. Nonvolatile memory card
US8195868B2 (en) 2003-10-17 2012-06-05 Renesas Electronics America Inc. Method and apparatus for smart memory pass-through communication
JP2005173746A (ja) * 2003-12-09 2005-06-30 Yokogawa Electric Corp メモリ装置及びメモリ装置のアクセス方法
JP2005332221A (ja) * 2004-05-20 2005-12-02 Renesas Technology Corp 記憶装置
US7379334B2 (en) 2004-10-25 2008-05-27 Kabushiki Kaisha Toshiba Memory card, semiconductor device, and method of controlling memory card
US7898862B2 (en) 2004-10-25 2011-03-01 Kabushiki Kaisha Toshiba Memory card, semiconductor device, and method of controlling memory card
US7639538B2 (en) 2004-10-25 2009-12-29 Kabushiki Kaisha Toshiba Memory card, semiconductor device, and method of controlling memory card
JP2006120082A (ja) * 2004-10-25 2006-05-11 Toshiba Corp メモリカード、半導体装置、及びメモリカードの制御方法
WO2018150820A1 (ja) * 2017-02-17 2018-08-23 日立オートモティブシステムズ株式会社 情報処理装置
JPWO2018150820A1 (ja) * 2017-02-17 2019-07-18 日立オートモティブシステムズ株式会社 情報処理装置

Similar Documents

Publication Publication Date Title
JP4534498B2 (ja) 半導体装置およびその起動処理方法
JP2990181B1 (ja) フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法
US20060107031A1 (en) Portable terminal
US8719492B1 (en) Non-volatile storage module having magnetic random access memory (MRAM) with a buffer window
US6546517B1 (en) Semiconductor memory
US20100169546A1 (en) Flash memory access circuit
US8555050B2 (en) Apparatus and method thereof for reliable booting from NAND flash memory
JP2005071303A (ja) プログラム起動装置
JP4829370B1 (ja) メモリ制御装置、メモリ装置および停止制御方法
US7096351B2 (en) Single-chip microcomputer and boot region switching method thereof
JPH11265283A (ja) 記憶装置におけるファームウェアの修正方法及び記憶装置
WO2020199242A1 (zh) 存储器和其电子装置及其测试系统、测试方法和应用方法
JP2004220068A (ja) メモリカード及びメモリへのデータ書き込み方法
US20070180205A1 (en) Data copy device
JPH0476681A (ja) マイクロコンピュータ
CN107168650B (zh) 一种对bios的存储器中的数据的处理方法及装置
JP2008065725A (ja) Nand型フラッシュメモリデバイス及びこれを利用したコンピューティングシステムの起動方法
TWI417888B (zh) An embedded chip system, a method for burning a wafer, and a computer program product
JP2853593B2 (ja) ダウンロード装置
JPH11353120A (ja) 磁気ディスク装置およびライトデータのバックアップ方法
JP2001147863A (ja) フラッシュメモリ書き替え装置
JPS63278162A (ja) 情報処理装置におけるエラ−訂正装置
JPH11338690A (ja) フラッシュメモリ、ファームウエア使用システム装置およびファームウエア書き換え方法
JP2003288215A (ja) 情報処理装置
JP2007188372A (ja) ディスクアレイコントローラ

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20040309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040816

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050301

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050427

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050906