JP2005018650A - Nonvolatile semiconductor storage device and data processor - Google Patents

Nonvolatile semiconductor storage device and data processor Download PDF

Info

Publication number
JP2005018650A
JP2005018650A JP2003185865A JP2003185865A JP2005018650A JP 2005018650 A JP2005018650 A JP 2005018650A JP 2003185865 A JP2003185865 A JP 2003185865A JP 2003185865 A JP2003185865 A JP 2003185865A JP 2005018650 A JP2005018650 A JP 2005018650A
Authority
JP
Japan
Prior art keywords
interrupt
flash memory
nonvolatile semiconductor
semiconductor memory
memory device
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.)
Granted
Application number
JP2003185865A
Other languages
Japanese (ja)
Other versions
JP3956305B2 (en
Inventor
Kazuhiro Okamoto
一宏 岡本
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2003185865A priority Critical patent/JP3956305B2/en
Publication of JP2005018650A publication Critical patent/JP2005018650A/en
Application granted granted Critical
Publication of JP3956305B2 publication Critical patent/JP3956305B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a nonvolatile semiconductor storage device capable of easily, surely, and speedily performing interruption processing for requesting real-time responsiveness, and a data processor using this nonvolatile semiconductor storage device. <P>SOLUTION: In a flash memory, an interruption signal externally inputted to an interruption input terminal A is detected. When a writing/erasing operation is executed in the flash memory when the interruption signal is detected, suspending processing for interrupting the writing/erasing operation is executed. After switching to an array reading mode of the flash memory is ended, the flash memory outputs an interruption signal to a processor through an interruption output terminal B. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、例えばハンドヘルドコンピュータ、電子手帳、携帯電話装置およびメモリカードリーダなどに用いられ、データの書き込み、消去または読み出しを可能とする不揮発性半導体装置、これをデータ記憶媒体として用いたデータ処理装置に関に関する。
【0002】
【従来の技術】
この種の不揮発性半導体装置は、コードストレージ型メモリとして、NOR型と称されるメモリアレイ構造を有するフラッシュメモリとして、例えばハンドヘルドコンピュータ、電子手帳、携帯電話装置およびメモリカードリーダなどに用いられて全盛である。フラッシュメモリは、不揮発でかつ書き換え可能という特性を持っており、この特性からメモリ内容を容易に修正することができる。この結果、フラッシュメモリは、メモリ内容の修正が困難であるマスクROMに取って代わり、コードストレージ型メモリとして急速に浸透していった。
【0003】
図10は、フラッシュメモリをコードストレージ形メモリとして用いた従来のデータ処理装置の要部構成を示すブロック図である。
【0004】
図10において、データ処理装置30は、データの書き込み、消去または読み出しを可能とする不揮発性半導体装置であるフラッシュメモリ31と、フラッシュメモリ31に対して書き込み処理、消去処理および読み出し処理を実行するプロセッサ32と、フラッシュメモリ31とプロセッサ32間には各種データを送信するたに接続された複数のバスとを備えている。
【0005】
フラッシュメモリ31は、メモリアレイと、メモリアレイに対して書き込み動作および消去動作を制御する書き込み/消去制御回路(WSM、Write State Mchine)とを有している。
【0006】
プロセッサ32は、該割り込み信号入力部32aを備え、書き込み/消去ルーチン処理部32bと、割り込みルーチン処理部32cとを実行する。この際にサスペンドコマンドをフラッシュメモリ31に与えて書き換え動作を一時的に中断させ、読み出しモードに切り替える後述のソフトウェア・デュアルワーク方式を用いている。
【0007】
バスは、コードストレージ型メモリとしてSRAMを用いた場合のバスに等しい。このバス構成により、プロセッサ32は、フラッシュメモリ31より、直接、自らが動作する命令の種類を表すインストラクション・コード(命令コード)を取り込むとともに、このインストラクション・コードに応じた命令処理を実行する。
【0008】
以下に、ここで用いられるソフトウェア・デュアルワーク方式について、その前提となるフラッシュメモリの問題点から説明する。
【0009】
フラッシュメモリをコードストレージ型メモリとして用いる場合には、プロセッサが要求するタイミングで常にプログラムコードにアクセスできることが要求される。フラッシュメモリをROM(コードストレージ型メモリ)として使用する限り、この点については全く問題がない。
【0010】
しかしながら、データ処理装置30において、コードストレージ機能だけではなく、フラッシュメモリ31の書き換え機能(書き込み機能および消去機能)を利用してデータストレージ機能をフラッシュメモリ31に併せ持たせようとするニーズがある。
【0011】
フラッシュメモリ31をデータストレージ型メモリとして使用する場合、以下の第1および第2の問題が発生する。
【0012】
第1に、フラッシュメモリ31の書き換え処理はSRAMやDRAMに比して非常に長いレイテンシを必要とする(時間がかかる)。
【0013】
第2に、プロセッサ32はフラッシュメモリ31の書換え動作中にフラッシュメモリ31のメモリアレイに記憶されたデータを読み出すことができない。書換え動作中にメモリアレイのデータを読み出すことができないのは、フラッシュメモリ31では、書き換え動作中にフラッシュメモリ31内部のレジスタの格納内容が出力されるためである。
【0014】
上記理由から、フラッシュメモリ31をデータストレージ型メモリとして使用する書き換えを前提としたデータ処理装置30では、i)書換え動作中に、フラッシュメモリ31上のメモリアレイに対する読み出し(すなわち割り込み処理)を発生させてはならないこと、およびii)書き換え用のプログラムコードを含め、書き換え中に実行しなければならないプログラムをフラッシュメモリ31に配置してはならないことなどの制約を受ける。
【0015】
i)は、書き換え動作中に外部からフラッシュメモリ31にアクセス要求があった場合には、アクセス要求に対するフラッシュメモリ31の応答時間が長くなることを意味し、ii)は、データ処理装置30のシステム設計の自由度が著しく損なわれることを意味する。
【0016】
上記制約i)およびii)を緩和する方法としては、1)ハードウェア・デュアルワーク方式と、2)ソフトウェア・デュアルワーク方式がある。
【0017】
1)ハードウェア・デュアルワーク方式
フラッシュメモリ31のメモリアレイ部を複数のバンクに分割する。書き換えによってアクセス不可能になるメモリアレイを同じバンク内のメモリアレイにのみ限定することにより、別のバンク内のメモリアレイからの任意の読み出し動作を可能にする。このように、メモリアレイ部を複数のバンクに分割することにより、データの書き換えを行うメモリアレイと、プログラムコードが記憶されるメモリアレイとを互いに独立動作させることができる。これにより、書き換え動作と読み出し動作との同時性が保障される。さらに、バンク構成に合わせてコードおよびデータ配置を切り分けることにより、上述したように書き換え動作と読み出し動作との同時性が保障され、データの書き換えに際してコードフェッチ(命令読み出し動作)が阻害されることは決してない。この方式の一例は、特許文献1に開示されている。
【0018】
2)ソフトウェア・デュアルワーク方式
ソフトウェアを用いてフラッシュメモリ31の動作状態を動的に制御することにより、外部入力されてから応答までのレスポンスを向上させる。具体的には、フラッシュメモリ素子の動作を中断するサスペンドコマンドと、中断された動作を再開するレジュームコマンドとをフラッシュメモリ31に活用する。ソフトウェアにより、書き換え中のフラッシュメモリ31の状態と、データを読み出すためのフラッシュメモリ31に対するアクセス要求とを同時にモニタリングさせる。ソフトウェアは、フラッシュメモリ31へのアクセス要求を検知すると、サスペンドコマンドをフラッシュメモリ31に与え、これにより書き換え動作を一時的に中断させ、次いで、読み出しモードに切り替えさせるように制御が為される。
【0019】
このソフトウェア・デュアルワーク方式の動作について図11を用いて説明する。
【0020】
図11は、従来のソフトウェア・デュアルワーク方式の動作を示すシーケンス図である。ここでは、プロセッサ32の書き込み/消去ルーチン処理部)がアクセス要求および、フラッシュメモリ31の書き込み処理、消去処理および読み出し処理など一切を制御し、プロセッサ32の割り込みルーチン処理部が割り込み処理の実行および、この割り込み処理の実行に関連する処理(例えば、割り込み処理のプログラムコードをフラッシュメモリ31から読み出す処理など)を制御する。
【0021】
このソフトウェア・デュアルワーク方式の動作(1)〜(8)は以下の通りである。
【0022】
(1)フラッシュメモリ31の動作状態を一元管理するため、書き込み・消去前には、ソフトウェア・デュアルワーク方式による割り込み処理やタスク切り替え処理を禁止する。この禁止期間中のアクセス要求は、書き込み・消去ルーチン処理部32bでソフトウェア的に監視するものとする。
【0023】
(2)外部からのアクセス要求は先ず、書き込み・消去ルーチン処理部32bにおける監視処理で検出され、一旦ここでホールド(記憶保持)される。
【0024】
(3)アクセス要求をトリガーとして、フラッシュメモリ31に対しサスペンドコマンドを発行する。
【0025】
(4)フラッシュメモリ31にてサスペンド処理を終了させた後、フラッシュメモリ31をアレイ読み出しモードに移行させる。
【0026】
(5)アレイ読み出しモードへの移行を確認後、割り込み、およびタスク切り替え処理の禁止を解除する。その後、ホールドしていたアクセス要求を開放し、アクセス要求のある処理に必要なプログラムコードをフラッシュメモリ341から読み出し、アクセス要求のある処理への分岐を実施する。
【0027】
(6)アクセス要求のあった処理が終了した後、再びフラッシュメモリ31の書き込み・消去ルーチン処理部32bが再び割り込み・タスク切り替え処理を禁止する。
【0028】
(7)フラッシュメモリ31に対して、中断された動作を再開するレジュームコマンドを発行し、書き込み・消去動作を再開する。
【0029】
(8) (2)〜(7)の動作を必要なだけ繰り返し、書き込み・消去の終了後、割り込みを許可して処理を終了する。
【0030】
このようなソフトウェア・デュアルワーク方式では、書き換え動作の中断に要するレイテンシが書き換え動作の終了に要するレイテンシより遥かに短いために、外部からのアクセス要求に対するシステムの応答速度を向上できる。
【0031】
また、ソフトウェア・デュアルワーク方式は、ハードウェア・デュアルワーク方式と比較すると、コード/データの配置に関してシステム設計をより柔軟に構築することが可能である(ただし、書き換え用のモニタリング・コードを配置/実行するメモリには排他アクセスが必須となる)。
【0032】
このソフトウェア・デュアルワーク方式の一例は、特許文献2に開示されている。
【0033】
このようなハードウェア・デュアルワーク方式およびソフトウェア・デュアルワーク方式は、携帯電話装置に代表される低コストかつ高い応答性が必要な分野で採用されて実績を上げている。
【0034】
【特許文献1】
特開平6−180999公報
【特許文献2】
特開平2−61896公報
【0035】
【発明が解決しようとする課題】
しかしながら、上記従来のハードウェア・デュアルワーク方式およびソフトウェア・デュアルワーク方式では以下に述べる問題がある。
【0036】
ハードウェア・デュアルワーク方式では、書き換え動作中のバンクにアクセス要求があった場合に対応できない。ハードウェア・デュアルワーク方式によって対応できない場合として、例えば、i)ユーザが用いるシステムがフラッシュメモリのバンクサイズに不適合なために、インストラクション・コードの一部がデータ書換え用のバンク内のメモリアレイに及んで書き込まれている場合、ii)インストラクション・コードへのアクセス要求だけでなく、書換え用のバンク内のメモリアレイに記録されたデータ自体へのアクセス要求がある場合が挙げられる。このようなデータ処理装置ではソフトウェア・デュアルワーク方式の併用が必須となる。
【0037】
ソフトウェア・デュアルワーク方式では、フラッシュメモリ31のサスペンド動作に要する時間と比較して、ソフトウェア部分のオーバーヘッドが非常に大きく、データ処理装置30における実装の方法にも依るが、データ処理装置30の応答速度が結果として要求される応答速度より低くなるおそれがある。ソフトウェア・デュアルワーク方式によって対応できない場合として、例えば、i)データ処理装置が応答時間に対して厳しい制約のあるリアルタイム系のシステムである場合、およびii)データ処理装置がハードウェアによる割り込み処理等のアクセス要求に対してソフトウェアによって制御できない処理系である場合がある。
【0038】
上記について整理すると、ハードウェア・デュアルワーク方式およびソフトウェア・デュアルワーク方式には、(a)書き換え動作が生じるバンク内のメモリアレイに高速処理する必要のあるコードがあり、かつ(b)このコードへのアクセスをソフトウェア的に制限できない場合、または(c)ソフトウェア・デュアルワーク処理の遅延が許容されない場合に対応できないという問題がある。
【0039】
このような問題を本質的に含むのが割り込み処理におけるデュアルワーク動作の保障である。
【0040】
割り込み処理とは、コンピュータにおいて現在実行中の処理とは全く別に、突発的に発生して優先的に実行される処理をいう。
【0041】
通常、プロセッサは、一つないし複数の割り込み信号入力端子を有しており、この割り込み信号入力端子に入力された割り込み信号をトリガーとして割り込み処理を実行する。割り込み処理の手順は以下の通りである。
【0042】
1)プロセッサ32は、入力された割り込み信号をトリガーとして現在実行中の処理を中断して、中断された処理を退避する。
【0043】
2)プロセッサ32は、割り込みベクトルテーブルから割り込み信号に応じた分岐先のアドレスを読み出し、このアドレスで指定された分岐先に記憶された割り込みサブルーチンを読み出して最優先で実行する。割り込みベクトルテーブルとは、割り込み処理への分岐先を記した記録領域をいい、割り込みサブルーチンとは、割り込み処理自体のプログラムコードをいう。
【0044】
3)プロセッサ32は、割り込み処理が終了した後、一旦退避した処理に復帰して再びこれを実行する。
【0045】
このような割り込み処理では、書き換え動作が生じるバンク内のメモリアレイに、処理を実行するのに必要なコードが記録されている場合もある(上記問題の(a)に相当)。
【0046】
また、上記1),2)の処理は、プロセッサ32によって自動的に行われるため、ユーザ・システムを問わず、ソフトウェアでこれらの処理に干渉することは通常できない。さらに、このような割り込み処理は偶発的な性質の処理であるため、事前に割り込み処理の発生を予測して分岐先で、上記1),2)の処理を実行することによって書換え動作中のメモリに対するアクセスをソフトウェア的に制限することはできない(上記問題の(b)に相当)。
【0047】
また、割り込み信号をマスクするなどの方法で割り込み処理の開始前にソフトウェアの介在が可能である場合でも、一般に割り込み操作系のプログラムはオーバーヘッドが大きいために割り込み処理の実行を大幅に遅延させるケースが多い。割り込み処理は高速で処理されることが要求されており、割り込み処理にはソフトウェア・デュアルワーク方式による遅延が許容されない(上記問題の(c)に相当)。
【0048】
したがって、フラッシュメモリ31をコードストレージ型メモリおよびデータストレージ型メモリとして使用するデータ処理装置30では、プロセッサ32の割り込み信号入力端子(割り込み信号入力部)に割り込み信号が入力される前に、割り込みベクトルおよびその分岐先に必ずアクセスできる状態にする必要がある。
【0049】
本発明は、上記従来の問題を解決して、リアルタイムな応答性を要求する割り込み処理を簡便・確実・高速で処理可能な不揮発性半導体記憶装置およびこの不揮発性半導体記憶装置を用いたデータ処理装置を提供することを目的とする。
【0050】
【課題を解決するための手段】
本発明の不揮発性半導体記憶装置は、電気的にデータの書き込み、消去または読み出し可能な不揮発性半導体記憶装置において、外部から割り込み信号が入力される割り込み信号入力部と、入力割り込み信号に応答して所定の割り込み準備処理の後に割り込み信号を外部に出力するための割り込み信号出力部とを有し、これにより上記目的が達成される。
【0051】
上記所定の割り込み準備処理を実行する制御部を有し、上記制御部は、上記所定の割り込み準備処理として、データの書き込み動作または消去動作の実行中に、入力された割り込み信号に応答して、少なくとも、上記データの書き込み動作または消去動作を中断するサスペンド処理と、上記サスペンド処理後に、データの読み出しモードに移行させる処理とを実行してもよい。
【0052】
上記割り込み信号の外部への出力後に、割り込み処理が為され、データの書き込み動作または消去動作を再開させるためのレジューム命令の入力検知後に、割り込み処理終了からデータの書き込みまたは消去動作への復帰処理を行うための所定期間として、データの読み出し動作を継続させる期間が設けられていてもよい。
【0053】
上記制御部は、上記割り込み処理の終了時を示す外部からの所定の信号を検知した場合に上記書き込み動作または消去動作を再開させるように制御してもよい。
【0054】
上記制御部は、上記割り込み処理のプログラムコードに記録された最終アドレスをメモリアレイに格納し、上記最終アドレス信号と外部から入力されるアドレス信号とが一致した場合に、上記書き込み動作または消去動作を再開させるように制御してもよい。
【0055】
上記不揮発性半導体記憶装置はランダムアクセスメモリをさらに有し、上記制御部は、上記割り込み処理のプログラムコードに記録された最終アドレスを上記ランダムアクセスメモリに格納し、上記最終アドレス信号と外部から入力されるアドレス信号とが一致した場合に、上記書き込み動作または消去動作を再開させるように制御してもよい。
【0056】
上記制御部はハードウェアで構成されてもよい。
【0057】
上記不揮発性半導体記憶装置と、上記不揮発性半導体記憶装置に対するデータの書き込み処理、消去処理または読み出し処理を制御し、割り込み処理を実行可能とするメモリ制御手段とを有するデータ処理装置において、上記不揮発性半導体記憶装置は、入力割り込み信号に応答して書き込み動作または消去動作を中断してデータの読み出しモードに移行した後に、上記割り込み信号を上記メモリ制御手段に出力する制御部を有し、これにより上記目的が達成される。
【0058】
上記メモリ制御手段は、上記割り込み信号の入力により割り込み処理を上記不揮発性半導体記憶装置に対して実行し、上記割り込み処理の終了時に、上記不揮発性半導体記憶装置にレジューム命令を出力してもよい。
【0059】
上記構成により、以下、本発明の作用について説明する。
【0060】
本発明において、割り込み処理に際して、プロセッサに先んじて割り込み信号が入力される割り込み信号入力部(入力端子)、および、メモリ側の準備処理終了後にプロセッサに対して割り込み信号を与える割り込み信号出力部(出力端子)または配線ラインなどをフラッシュメモリ側に設ける。
【0061】
外部より与えられる割り込み信号入力は、先ずフラッシュメモリ側の割り込み入力端子へ入力する。フラッシュメモリからの割り込み信号出力はプロセッサ側の割り込み入力端子に入力する。これによりフラッシュメモリは、常にプロセッサに先んじて割り込み処理の発生を知ることができる。つまりプロセッサが割り込み処理を開始する前に、フラッシュメモリは割り込みに対する準備処理動作に入ることが可能になる。
【0062】
割り込みに対する準備動作とは、以下の項目を必ず含む。すなわち、1)サスペンドによる書き込み・消去動作の中断、2)アレイ読み出しモードへの切り替え、である。これらの操作はソフトウェア制御とは無関係に、フラッシュメモリ側のハードウェア・ロジックによって自動的に行われ得る。フラッシュメモリは、少なくとも上記の二項目を実施した後、プロセッサ側に割り込み信号を出力、プロセッサは通常の割り込み処理を開始する。
【0063】
割り込み処理が終了した場合、フラッシュメモリは本来の書き込み・消去動作に戻らなければならない。つまり割り込み処理を終了して元の処理へ復帰する際に、何らかの手段を用いてフラッシュメモリのレジュームを実行する必要がある。
【0064】
したがって、割り込み信号入力部と割り込み信号出力部をフラッシュメモリ側に設けることにより、容易に割り込み信号を検出でき、その検出によりフラッシュメモリでの各種準備処理をメモリ制御手段からの割り込み処理に先立って行うことが可能になる。これにより、本発明は、リアルタイムな応答性を要求する割り込み処理を簡便・確実・高速で処理可能な不揮発性半導体記憶装置およびこの不揮発性半導体記憶装置を用いたデータ処理装置を提供することが可能になる。
【0065】
【発明の実施の形態】
以下、データ処理装置の本発明の実施形態1〜3について図面に基づいて説明する。
【0066】
[実施形態1]
図1は、本実施形態1のデータ処理装置の構成要部の概略図である。
【0067】
図1において、本実施形態1のデータ処理装置10は、電気的にデータの書き込み、消去または読み出しを可能とする不揮発性半導体装置であるフラッシュメモリ11と、フラッシュメモリ11に対して書き込み処理、消去処理および読み出し処理を実行するメモリ制御手段であるプロセッサ12と、フラッシュメモリ11とプロセッサ12間には各種データを送信するたに接続された複数のバスとを備えている。
【0068】
フラッシュメモリ11は、メモリアレイと、メモリアレイに対して書き込み動作および消去動作を制御する制御部としての書き込み/消去制御回路(WSM)と、割り込み入力部11aと、割り込み信号が外部入力される割り込み信号入力入力部としての入力端子[A]と、外部入力された割り込み信号をホールドするレジスタと、レジスタにホールドされた割り込み信号をプロセッサに出力する割り込み信号出力部としての出力端子[B]とを含む。
【0069】
プロセッサ12は、書き込み処理および消去処理を制御する書き込み/消去ルーチン処理部12aと、フラッシュメモリ11から入力される割り込み信号に応じて割り込み処理を実行する割り込みルーチン処理部12bとを実行する。
【0070】
フラッシュメモリ11とプロセッサ12との間に配置されたバス構成により、プロセッサ12は、フラッシュメモリ11にアドレスを送信するアドレスバスと、プロセッサとフラッシュメモリとの間でデータを送受信するデータバスと、フラッシュメモリの処理を制御する制御信号(例えば、チップイネーブル信号、アウトプットイネーブル信号およびライトイネーブル信号)を送信する制御バスを含む。なお、図1において、CEはチップイネーブル信号、OEはアウトプットイネーブル信号、WEはライトイネーブル信号、Addressはアドレス信号、DQはデータを表している。
【0071】
以下に、本実施形態1の特徴を説明する。
【0072】
本実施形態1の特徴は、割り込み信号の外部入力に応じて、書き込み動作および消去動作の中断処理(サスペンド処理)およびフラッシュメモリのアレイ読み出しモードへの切り替え等の割り込み準備処理をフラッシュメモリ側(ハードウェア側)に委ね、割り込み処理を終了した後に中断された書き込み動作または消去動作を再開させる(レジューム処理)レジュームコマンド(命令)の発行をソフトウェア側に委ねることにある。すなわち、サスペンド処理に関してはハードウェアで、レジューム処理についてはソフトウェア側で対応する。
【0073】
その理由は、以下の通りである。
【0074】
ソフトウェア的に見たとき、割り込み処理は一種のサブルーチンコールである。その起動は外部応答による不定期呼び出しであり、開始タイミングや開始アドレスは一意に決まらない。このためソフトウェアにより、割り込み処理の起動を制御することは困難である。逆に、割り込み処理の終了は、ユーザが記述したプログラムコードに明示的に記されたリターンコードによって決定され、復帰アドレスは一意的である。このためソフトウェアにより、割り込み処理の終了を制御することは容易である。したがって、レジュームコマンドの発行は、ハードウェア側に委ねるのではなく、ソフトウェア側に委ねる方が望ましい。
【0075】
さらに、レジュームコマンドの発行をソフトウェア側に委ねることにより、ハードウェア側にはレジュームコマンドを発行するタイミングを監視するための特別な機構が不要になり、ハードウェア・ロジックを簡略化することができる。また、レジュームタイミングの監視によって生じる処理負荷を軽減することにもつながる。
【0076】
一方ハードウェア的に見ると、割り込み処理の起動時は専用の入力端子への入力であるから検出は容易である。逆に割り込み処理の終了時は、復帰アドレスが分岐先次第であり、一意的ではないために検出することが困難である。したがって、割り込み信号の外部入力に応じた、書き込み動作および消去動作の中断は、ハードウェア側(すなわちフラッシュメモリ側)に委ねる方が望ましい。
【0077】
以下に、本実施形態1のデータ処理装置10による割り込み処理の動作を説明する。
【0078】
図2は、本実施形態1のデータ処理装置による割り込み処理のシーケンス図を示す。
【0079】
この割り込み処理の動作(1)〜(8)は以下の通りである。
【0080】
(1)フラッシュメモリ11の書き込み/消去制御回路は、割り込み入力端子[A]に割り込み信号が外部入力されると、書き込み・消去動作のサスペンド動作を実行する。
【0081】
(2)フラッシュメモリ11の書き込み/消去制御回路は、サスペンド動作の終了後、アレイ読み出しモードへの切り替えを行う。
【0082】
(3)フラッシュメモリの書き込み/消去制御回路は、アレイ読み出しモードへの切り替え終了後、割り込み信号出力端子[B]からプロセッサに割り込み信号INTを出力させる。
【0083】
(4)プロセッサ12は、割り込み処理終了時のリターン命令直前に、必ずレジュームコマンドをフラッシュメモリ11に発行するものとする。フラッシュメモリ11の書き込み/消去制御回路は、このレジュームコマンドの入力に応答してレジューム処理に入る前に、リターン命令のフェッチに必要な期間だけ、アレイ読み出しモードを継続させる。
【0084】
フラッシュメモリ11は、レジュームコマンドの入力に対して、レジューム動作に入る前に、リターン命令のフェッチに必要な期間[C]だけ、アレイ読み出しモードを維持して、その後レジューム動作を行う。これにより、プロセッサ12は、レジューム動作直後のリターン命令の実行を確実なものと
する。
【0085】
図3は、フラッシュメモリ11にて実行される自動サスペンド動作に関するフローチャートを示す図である。
【0086】
このフラッシュメモリ11は、割り込み入力端子[A]に外部入力された割り込み信号を検知する。割り込み信号を検知した時に、フラッシュメモリ11において書き込み・消去動作が実行している場合には、割り込み信号をホールド(記録保持)し(S1)、次いで、書き込み・消去動作を中断するサスペンド処理を実行する(S2)。次いで、フラッシュメモリ11は、書き込み/消去制御回路によって書き込み・消去動作に関するデータを所定のバッファに退避させてアレイ読み出しモードへの切り替えを実行する(S3)。この段階までは、外部入力された割り込み信号はフラッシュメモリ11にてホールド(記録保持)され、プロセッサ12には出力されない。フラッシュメモリ11のアレイ読み出しモードへの切り替えが終了した後、このフラッシュメモリ11は、割り込み出力端子[B]を通じてプロセッサ12に割り込み信号を出力する。
【0087】
一方、フラッシュメモリ11が割り込み入力端子[A]に外部入力された割り込み信号を検知した時に、フラッシュメモリ11がすでにアレイ読み出しモードにある場合、フラッシュメモリ11は、割り込み信号をホールドせずに、割り込み信号を割り込み信号出力端子からプロセッサにスルー出力する。
【0088】
図4は、図2に示されるレジューム処理(5)の手順を示すフローチャートである。
【0089】
フラッシュメモリ11は、レジュームコマンドの入力からレジューム処理の開始までの間(すなわち図2に示されたリターン命令のフェッチ期間[C])、数サイクルのアレイ読み出しモードを維持する(S11)。[C]の期間が経過した場合(YESの場合)(S12)、フラッシュメモリは、レジューム動作を実行する(S13)。[C]の期間が経過していない場合(NOの場合)(S12)、フラッシュメモリ11は、アレイ読み出しモードを維持する
プロセッサ12は、リターン命令のフェッチ期間において、リターン命令(すなわちリターンコード)をフェッチするとともに、割り込み処理を終了させて割り込みルーチン処理部12bから書き込み・消去ルーチン処理部12aへの復帰を実行する。
【0090】
このリターン命令のフェッチ期間に割り込み信号が入力された場合、この割り込み信号は、フラッシュメモリ11がレジューム処理を終了するまでホールドされる。ホールドされた割り込み信号は、レジューム処理終了後に行われる次のサスペンド処理のトリガーとなる。
【0091】
プロセッサ12が割り込み処理から復帰するのと平行して、または復帰が終了してから、フラッシュメモリ11はレジューム処理を開始し、書き込み・消去動作を再開する。
【0092】
[実施形態2]
本実施形態2のデータ処理装置10Aの構成は、フラッシュメモリの内部構成を除いて上記実施形態1のデータ処理装置10の構成と同じである。上記実施形態1の構成要素と同一の本実施形態2の構成要素は、上記実施形態1と同一の参照番号によって示される。また上記実施形態1と同一の構成要素の説明は省略する。
【0093】
本実施形態2のフラッシュメモリ11Aは、上記実施形態1のフラッシュメモリ11の構成要素に加えて、さらに、内部に任意のアドレスを記憶させるバッファ(バッファ上のアドレス値はユーザによって任意値に変更できるものとする)と、アドレスバス上のアドレス(このアドレスを示すアドレス信号)とバッファ(メモリアレイ)に格納されたアドレス(このアドレスを示すアドレス信号)とが一致しているか否かを判定する比較器とを含む。この一致判定は、比較器の他にデータ一致手段を用いることができ、データ一致手段はアンド回路などの論理回路で構成することができる。
【0094】
このバッファ上には、割り込み処理のプログラムコード末尾のリターンコードが記述された最終アドレスを登録するものとする。
【0095】
また、このアドレスはサスペンド動作のトリガーとなるアドレスである。
【0096】
以下に、本実施形態2の特徴を説明する。
【0097】
本実施形態2の特徴は、上記実施形態1と同様にサスペンド処理をハードウェア(フラッシュメモリ)側に委ねることに加えて、レジュームコマンド発行もフラッシュメモリ11A側に委ねることにある。
【0098】
上述したように、ハードウェア的に見ると、割り込み処理の終了時は、復帰アドレスが分岐先次第であり、一意ではないために検出が困難である。
【0099】
しかし、レジュームコマンド発行のトリガーをアドレスバス上のアドレス入力の検出とすることにより、レジュームコマンド発行をフラッシュメモリ11A側で自動的に実行できる。検出対象となるアドレスは、フラッシュメモリ11A内に準備されたバッファ上のアドレス値を用いる。このアドレス値はユーザの手によって任意の値に設定できるものとする。
【0100】
レジュームコマンド発行のトリガーをアドレスバス上のアドレス入力の検出とするためには、例えば、割り込み処理の終了アドレスを網羅してフラッシュメモリ11A上に保持することが必要となる。割り込み処理の終了アドレスを網羅してフラッシュメモリ11A上に保持できるか否かは、プロセッサ12の割り込み処理に対するアーキテクチャの実装に依存する。
【0101】
したがって、レジュームコマンド発行をフラッシュメモリ11A側に委ねることの現実上の制約はアーキテクチャの実装である。例えば、X86アーキテクチャのように、割り込み入力信号と割り込み処理が一対一に対応するアーキテクチャは、信号数分のバッファを用意することで比較的容易に実現できる。
【0102】
この結果、本実施形態2のデータ処理装置10Aでは、割り込み処理を終了した後、速やかに書き込み・消去動作への復帰処理を行うことが可能になる。また、本実施形態2のデータ処理装置では、ユーザおよびシステム側において割り込み処理のためのフラッシュメモリ11Aのサスペンド・レジューム動作に特別な配慮が不要になるため、システム設計上の負担を大幅に軽減できる。
【0103】
以下に、割り込み処理を実行する本実施形態2のデータ処理装置10Aの動作を示す。
【0104】
図5は、本実施形態2のデータ処理装置10Aによる割り込み処理のシーケンス図を示す。
【0105】
フラッシュメモリ11Aの書き込み/消去制御回路は、割り込み処理入力端子[A]からの割り込み入力を受けて、書き込み・消去動作のサスペンドを実行する。この自動サスペンド動作は、上記実施形態1のサスペンド動作(図3参照)と同様である。
【0106】
次いで、フラッシュメモリ11Aの書き込み/消去制御回路は、サスペンド動作終了後、アレイ読み出しモードへの切り替えを行う。
【0107】
フラッシュメモリ11Aの書き込み/消去制御回路は、アレイ読み出しモードへの切り替え終了後、割り込み処理出力端子[B]よりプロセッサ22へ割り込み信号を出力させる。
【0108】
サスペンド中のアレイ読み出しモードにおいて、フラッシュメモリ11Aは、比較器により、入力されたアドレスバス上のアドレスとバッファ上のアドレスを逐一比較する。両者が一致した場合、フラッシュメモリ11Aはレジューム動作を実行する。
【0109】
アドレスバッファへのアドレス登録方法については、特開2001−306400に準じる。
【0110】
図6は、本実施形態2のレジューム動作(4)に関するフローチャートを示す。
【0111】
フラッシュメモリ11Aは、サスペンド状態へ移行後、アドレスバスの監視を行う(S21)。アドレス監視はフラッシュメモリ11Aの非選択状態でも行われる。
【0112】
フラッシュメモリ11Aの比較器は、アドレスバスへの入力値とフラッシュメモリ11A内のバッファにあるアドレス値とを比較することにより、両方の値が一致するか(YES)否か(NO)を判定する(S22)。
【0113】
アドレスバス上のアドレス値とバッファ上のアドレス値が一致するタイミングは、プロセッサ12がリターンコードをフェッチしたタイミングであり、このタイミングで割り込み処理が終了したと判断できる。したがって、本実施形態2のフラッシュメモリ11Aの書き込み/消去制御回路は、アドレスバス上のアドレスとバッファ上のアドレスの一致によってレジューム処理を実行する(S23)。なお、バッファ内に登録されたアドレス値がフラッシュメモリ11A内のリターンコードの配置されたアドレスと同じであることを前提にしている。
【0114】
[実施形態3]
図7は、本実施形態3のデータ処理装置構成の要部概略図である。
【0115】
本実施形態3のデータ処理装置の構成は、上記実施形態2のデータ処理装置10Aの構成とは以下の点で異なっている。
【0116】
本実施形態3のデータ処理装置20において、フラッシュメモリ21は、プロセッサ23からRAM22にDQ、CE信号(S−CE信号)およびWE信号(S−WE信号)を送信するためのバスをRAMと共有する。フラッシュメモリ21には、通常のチップセレクト端子以外に、リターンアドレス検出用のチップセレクト端子とライトイネーブル端子とが設けられる。このリターンアドレス検出用チップセレクト端子は、RAM22に備えられたチップセレクト端子とともに、プロセッサ23からRAM22へのチップセレクト入力に接続される。これにより、フラッシュメモリ21は、プロセッサがこのデータバスを介してRAMに送信するCE信号またはWE信号を監視することが可能になる。この結果、フラッシュメモリ21は、プロセッサ23がRAM22にプログラムカウンタを退避する瞬間のタイミングを取得できる。
【0117】
RAM22は、プロセッサ23からのRAM22のみにCE信号(S−CE信号)、WE信号(S−WE信号)およびOE信号(S−OE信号)を送信する制御バスと、プロセッサ23からのRAM22にS−アドレスを送信するアドレスバスとをさらに有する。
【0118】
本実施形態3の特徴は、実施形態2と同様に、サスペンド処理をハードウェア(フラッシュメモリ)側に委ねること、および、レジュームコマンド発行をフラッシュメモリ側に委ねることである。
【0119】
レジュームコマンド発行のトリガーは、アドレスバスへの特定アドレス入力を検出することである。検出対象となるアドレスは、フラッシュメモリ21内に準備されたバッファ上のアドレス値を用いる。フラッシュメモリ21は、割り込み処理が発生する都度、プロセッサ23がRAM22のスタックエリア上に退避するプログラムカウンタの値を読み取って、自動的にバッファへセットする。なお、プログラムカウンタの値とは割り込み処理終了時に復帰するリターンアドレスである。
【0120】
プログラムカウンタの退避の検知は、プロセッサ23が割り込み処理を開始した直後にプログラムカウンタがスタックエリアのあるRAM22上に書き込まれる際の、RAM22のチップセレクト、およびライトイネーブルを監視することによって行われる。フラッシュメモリ21は、プログラムカウンタ退避を検知した時に、データバスから入力されたプログラムカウンタをバッファ上に保存する。退避されたプログラムカウンタが割り込み処理終了時に復帰するリターンアドレスであることから、このアドレスが次にアドレスバス上に現れるときを以って割り込み処理が終了したと判定してフラッシュメモリ21のレジューム動作を実行することができる。
【0121】
現実上の制約として、プログラムカウンタの退避を検知し、フラッシュメモリ21上に保持する事が可能か否かは、プロセッサ23の割り込み処理に対するアーキテクチャに依存する。割り込み処理専用のシャドウ・レジスタなどを持たない、従来のプロセッサは、割り込み処理開始と同時に現在のプログラムカウンタをスタックエリア上にプッシュするタイプが多い。このようなプロセッサには、本実施形態3のデータ処理装置の構成が適用できる。
【0122】
図8は、本実施形態3のデータ処理装置20による割り込み処理のシーケンス図を示す。
【0123】
(1)フラッシュメモリ21の書き込み/消去制御回路は、[A]からの割り込み入力を受けて、書き込み・消去動作のサスペンド処理を実行する。
【0124】
(2)フラッシュメモリの書き込み/消去制御回路は、サスペンド処理終了後、アレイ読み出しモードへの切り替えを行う。
【0125】
(3)フラッシュメモリ21の書き込み/消去制御回路は、アレイ読み出しモードへの切り替え終了後、割り込み信号出力端子[B]よりプロセッサ23へ割り込み出力を行う。
【0126】
(4)フラッシュメモリ21では、スタックエリアのあるRAM22のチップセレクト端子、及びライトイネーブル端子を監視し、プロセッサ23がスタック上にプログラムカウンタを退避したことを検知する。検知した時点でのデータバス上のデータがプログラムカウンタとして、フラッシュメモリ21はプログラムカウンタの値を自身のバッファにセットする。
【0127】
(5)サスペンド中のアレイ読み出しモードにおいて、フラッシュメモリ21は入力されたアドレスバス上のアドレスとバッファ上のアドレスを逐一比較する。両者が一致した場合、フラッシュメモリ21はレジュームを実行する。実施形態3のデータ処理装置20のレジューム動作は、実施形態2のデータ処理装置のレジューム動作(図6参照)と同様である。
【0128】
図9は、本実施形態3のデータ処理装置20による自動サスペンド動作のフローチャートを示す。
【0129】
フラッシュメモリ21は、割り込み入力端子[A]に割り込み信号が入力されるのを検知した時に書き込み・消去動作が実行中である場合、割り込み信号をホールドし(S31)、次いで、書き込み・消去動作のサスペンド処理を実行する(S32)。次に、フラッシュメモリ21はアレイ読み出しモードに切り替わる(S33)。割り込み入力が検知されてからアレイ読み出しモードに切り替わるまでの間、割り込み信号はフラッシュメモリ21にホールドされ、プロセッサ23には出力されない。アレイ読み出しモードへの切り替えが終了した後、フラッシュメモリ21は、割り込み出力端子[B]を通じてプロセッサに割り込み信号をリリース(出力)する(S34)。
【0130】
フラッシュメモリ21は、割り込み信号が割り込み入力端子に入力されるのを検知した時にフラッシュメモリ21がアレイ読み出しモードにある場合、割り込み信号をフラッシュメモリ21内にホールドせずに、プロセッサ23に割り込み信号をスルー出力する。割り込み信号がプロセッサ23に出力された後、このフラッシュメモリ21は、プロセッサによるプログラムカウンタの退避に備えてRAMのデータバスを監視する(S35)。このデータバスの監視は、フラッシュメモリ21の非選択状態でも行われる。
【0131】
フラッシュメモリ21が割り込み信号をプロセッサ23に出力すると、プロセッサ23は、プログラムカウンタ値をRAM上のスタックエリアに退避させる。
【0132】
フラッシュメモリ21は、SRAMに書き込みが有りの場合(YESの場合)(S36)、プログラムカウンタの退避があったとみなし、フラッシュメモリ21内部のバッファに読取ったプログラムカウンタ値を保存する(S37)。フラッシュメモリ21は、SRAMに書き込みがない場合(NOの場合)(S36)、プロセッサによるプログラムカウンタの退避に備えてRAMのデータバスを監視を継続する(S35)
プロセッサ23は、このプログラムカウンタ値を用いてレジュームコマンド発行を行う。
【0133】
実施形態1〜3では、サスペンド処理、またはサスペンド処理およびレジューム処理をフラッシュメモリ側で対応していたが、ハードウェアで構成された制御装置で対応するのであれば、フラッシュメモリ外の制御装置が設けられてもいてもよい。
【0134】
【発明の効果】
以上のように、本発明のデータ処理装置は、サスペンド処理、またはサスペンド処理およびレジューム処理をハードウェアで構成された制御装置で処理する。この結果、本発明は、リアルタイムな応答性を要求する割り込み処理を簡便・確実・高速で処理可能な不揮発性半導体記憶装置およびこの不揮発性半導体記憶装置を用いたデータ処理装置を提供することを可能にする。
【図面の簡単な説明】
【図1】本発明の実施形態のデータ処理装置の構成要部の概略図である。
【図2】本発明の実施形態における割り込み処理のシーケンス図を示す。
【図3】フラッシュメモリにて実行される自動サスペンド動作に関するフローチャートを示す図である。
【図4】図2に示されるレジューム処理の手順を示すフローチャートである。
【図5】本発明の別の実施形態における割り込みのシーケンス図を示す。
【図6】本発明の別の実施形態のレジューム動作に関するフローチャートを示す。
【図7】本発明のさらに別の実施形態のデータ処理装置構成の要部概略図である。
【図8】本発明のさらに別の実施形態のデータ処理装置による割り込み処理のシーケンス図を示す。
【図9】本発明のさらに別の実施形態のデータ処理装置による自動サスペンド動作のフローチャートを示す。
【図10】従来のデータ処理装置の構成要部を示す概略図である。
【図11】従来のソフトウェア・デュアルワーク方式の動作をシーケンス図である。
【符号の説明】
10 データ処理装置
11 フラッシュメモリ
11a 割り込み入力部
[0001]
BACKGROUND OF THE INVENTION
The present invention is used in, for example, a handheld computer, an electronic notebook, a mobile phone device, a memory card reader, and the like, and is a non-volatile semiconductor device capable of writing, erasing, or reading data, and a data processing device using the same as a data storage medium Related to
[0002]
[Prior art]
This type of non-volatile semiconductor device is used as a code storage type memory, a flash memory having a memory array structure called NOR type, for example, a handheld computer, an electronic notebook, a mobile phone device, a memory card reader, etc. It is. The flash memory has a characteristic of being nonvolatile and rewritable, and the memory contents can be easily corrected from this characteristic. As a result, the flash memory has rapidly become a code storage type memory, replacing the mask ROM which is difficult to modify the memory contents.
[0003]
FIG. 10 is a block diagram showing a main configuration of a conventional data processing apparatus using a flash memory as a code storage type memory.
[0004]
In FIG. 10, a data processing device 30 includes a flash memory 31 that is a nonvolatile semiconductor device capable of writing, erasing, and reading data, and a processor that executes write processing, erasing processing, and reading processing on the flash memory 31 32, and a plurality of buses connected to transmit various data between the flash memory 31 and the processor 32.
[0005]
The flash memory 31 includes a memory array, and a write / erase control circuit (WSM, Write State Machine) that controls a write operation and an erase operation for the memory array.
[0006]
The processor 32 includes the interrupt signal input unit 32a, and executes a write / erase routine processing unit 32b and an interrupt routine processing unit 32c. At this time, a suspend command is given to the flash memory 31 to temporarily interrupt the rewrite operation, and a software dual work method described later that switches to the read mode is used.
[0007]
The bus is equivalent to a bus when SRAM is used as a code storage type memory. With this bus configuration, the processor 32 directly fetches an instruction code (instruction code) indicating the type of instruction that the processor 32 operates from the flash memory 31, and executes instruction processing according to the instruction code.
[0008]
Hereinafter, the software dual work method used here will be described from the problem of the flash memory which is the premise.
[0009]
When a flash memory is used as a code storage type memory, it is required that the program code can always be accessed at the timing requested by the processor. As long as the flash memory is used as a ROM (code storage type memory), there is no problem at this point.
[0010]
However, in the data processing device 30, there is a need to provide not only the code storage function but also the flash memory 31 with the data storage function by using the rewrite function (write function and erase function) of the flash memory 31.
[0011]
When the flash memory 31 is used as a data storage type memory, the following first and second problems occur.
[0012]
First, the rewriting process of the flash memory 31 requires a very long latency (takes time) compared to SRAM and DRAM.
[0013]
Second, the processor 32 cannot read data stored in the memory array of the flash memory 31 during the rewrite operation of the flash memory 31. The reason why the data in the memory array cannot be read during the rewriting operation is that the contents stored in the register in the flash memory 31 are output in the flash memory 31 during the rewriting operation.
[0014]
For the above reasons, in the data processing device 30 on the premise of rewriting using the flash memory 31 as a data storage type memory, i) reading (that is, interrupt processing) to the memory array on the flash memory 31 is generated during the rewriting operation. And ii) there is a restriction that a program that must be executed during rewriting, including program code for rewriting, must not be placed in the flash memory 31.
[0015]
i) means that if there is an access request to the flash memory 31 from the outside during the rewrite operation, the response time of the flash memory 31 with respect to the access request becomes longer, and ii) the system of the data processing device 30 This means that the degree of freedom of design is significantly impaired.
[0016]
As a method for relaxing the constraints i) and ii), there are 1) a hardware dual work method and 2) a software dual work method.
[0017]
1) Hardware dual work method
The memory array portion of the flash memory 31 is divided into a plurality of banks. By limiting the memory array that cannot be accessed by rewriting to only the memory array in the same bank, an arbitrary read operation from the memory array in another bank can be performed. Thus, by dividing the memory array portion into a plurality of banks, the memory array for rewriting data and the memory array for storing the program code can be operated independently of each other. Thereby, the simultaneity of the rewrite operation and the read operation is ensured. Furthermore, by separating the code and data arrangement according to the bank configuration, the simultaneity of the rewrite operation and the read operation is ensured as described above, and the code fetch (instruction read operation) is inhibited during the data rewrite. never. An example of this method is disclosed in Patent Document 1.
[0018]
2) Software dual work method
By dynamically controlling the operating state of the flash memory 31 using software, the response from the external input to the response is improved. Specifically, a suspend command for interrupting the operation of the flash memory element and a resume command for resuming the interrupted operation are used for the flash memory 31. The state of the flash memory 31 being rewritten and the access request to the flash memory 31 for reading data are simultaneously monitored by software. When the software detects an access request to the flash memory 31, the software gives a suspend command to the flash memory 31, thereby temporarily interrupting the rewrite operation and then switching to the read mode.
[0019]
The operation of this software dual work method will be described with reference to FIG.
[0020]
FIG. 11 is a sequence diagram showing the operation of the conventional software dual work method. Here, the write / erase routine processing unit of the processor 32 controls all of the access request and the write processing, erase processing, and read processing of the flash memory 31, and the interrupt routine processing unit of the processor 32 executes the interrupt processing and A process related to the execution of the interrupt process (for example, a process of reading the program code of the interrupt process from the flash memory 31) is controlled.
[0021]
Operations (1) to (8) of this software dual work method are as follows.
[0022]
(1) In order to centrally manage the operation state of the flash memory 31, interrupt processing and task switching processing by the software dual work method are prohibited before writing / erasing. Access requests during this prohibition period are monitored by software in the write / erase routine processing unit 32b.
[0023]
(2) An access request from the outside is first detected by the monitoring process in the write / erase routine processing unit 32b and once held (stored).
[0024]
(3) A suspend command is issued to the flash memory 31 using an access request as a trigger.
[0025]
(4) After the suspend process is completed in the flash memory 31, the flash memory 31 is shifted to the array read mode.
[0026]
(5) After confirming the transition to the array read mode, the prohibition of interrupt and task switching processing is canceled. Thereafter, the held access request is released, the program code necessary for the process having the access request is read from the flash memory 341, and the process branches to the process having the access request.
[0027]
(6) After the process that requested the access is completed, the write / erase routine processing unit 32b of the flash memory 31 again prohibits the interrupt / task switching process.
[0028]
(7) A resume command for restarting the interrupted operation is issued to the flash memory 31, and the write / erase operation is restarted.
[0029]
(8) The operations of (2) to (7) are repeated as necessary, and after writing / erasing is completed, the interrupt is permitted and the processing is terminated.
[0030]
In such a software dual work system, the latency required to interrupt the rewrite operation is much shorter than the latency required to end the rewrite operation, so that the response speed of the system to an access request from the outside can be improved.
[0031]
In addition, the software dual work method allows more flexible system design with respect to the code / data arrangement compared to the hardware dual work method (however, the monitoring code for rewriting can be arranged / Exclusive access is mandatory for the memory to be executed).
[0032]
An example of this software dual work system is disclosed in Patent Document 2.
[0033]
Such a hardware dual work system and a software dual work system have been used in fields requiring low cost and high responsiveness as typified by mobile phone devices.
[0034]
[Patent Document 1]
JP-A-6-180999
[Patent Document 2]
JP-A-2-61896
[0035]
[Problems to be solved by the invention]
However, the conventional hardware dual work method and software dual work method have the following problems.
[0036]
The hardware dual work method cannot cope with an access request to a bank that is being rewritten. For example, i) the system used by the user is incompatible with the flash memory bank size, so that part of the instruction code extends to the memory array in the data rewrite bank. Ii) There are cases where there is an access request to the data itself recorded in the memory array in the rewrite bank as well as an access request to the instruction code. In such a data processing apparatus, it is essential to use a software dual work method.
[0037]
In the software dual work method, the overhead of the software portion is very large compared with the time required for the suspend operation of the flash memory 31, and the response speed of the data processing device 30 depends on the implementation method in the data processing device 30. As a result, the response speed may be lower than required. For example, i) the data processing device is a real-time system with severe restrictions on response time, and ii) the data processing device is hardware-based interrupt processing. There may be a processing system that cannot be controlled by software for an access request.
[0038]
To summarize the above, in the hardware dual work method and the software dual work method, (a) there is a code that needs to be processed at high speed in the memory array in the bank where the rewrite operation occurs, and (b) to this code There is a problem that it is not possible to cope with the case where the access of the software cannot be restricted by software, or (c) the case where the delay of the software dual work process is not allowed.
[0039]
It is the guarantee of the dual work operation in the interrupt processing that essentially includes such a problem.
[0040]
Interrupt processing is processing that occurs unexpectedly and is executed with priority, completely separate from processing currently being executed in the computer.
[0041]
Usually, a processor has one or a plurality of interrupt signal input terminals, and executes an interrupt process using an interrupt signal input to the interrupt signal input terminals as a trigger. The procedure for interrupt processing is as follows.
[0042]
1) The processor 32 interrupts the currently executing process using the input interrupt signal as a trigger, and saves the interrupted process.
[0043]
2) The processor 32 reads the branch destination address corresponding to the interrupt signal from the interrupt vector table, reads the interrupt subroutine stored in the branch destination designated by this address, and executes it with the highest priority. The interrupt vector table is a recording area in which the branch destination to the interrupt processing is described, and the interrupt subroutine is a program code of the interrupt processing itself.
[0044]
3) After the interrupt process is completed, the processor 32 returns to the temporarily saved process and executes it again.
[0045]
In such an interrupt process, a code necessary for executing the process may be recorded in the memory array in the bank where the rewrite operation occurs (corresponding to the above problem (a)).
[0046]
Further, since the processes 1) and 2) are automatically performed by the processor 32, software cannot normally interfere with these processes regardless of the user system. Further, since such interrupt processing is an accidental processing, the memory during the rewriting operation is predicted by executing the processing of 1) and 2) at the branch destination by predicting the occurrence of the interrupt processing in advance. Cannot be restricted by software (corresponding to (b) of the above problem).
[0047]
Even if software intervention is possible before the start of interrupt processing, such as by masking the interrupt signal, the interrupt handling program generally has a large overhead, so the execution of interrupt processing may be significantly delayed. Many. The interrupt processing is required to be processed at high speed, and the delay due to the software dual work method is not allowed for the interrupt processing (corresponding to (c) of the above problem).
[0048]
Therefore, in the data processing device 30 that uses the flash memory 31 as the code storage type memory and the data storage type memory, before the interrupt signal is input to the interrupt signal input terminal (interrupt signal input unit) of the processor 32, the interrupt vector and The branch destination must be accessible.
[0049]
The present invention solves the above-described conventional problems, and can perform a simple, reliable, and high-speed interrupt process that requires real-time responsiveness, and a data processing apparatus using the nonvolatile semiconductor memory device The purpose is to provide.
[0050]
[Means for Solving the Problems]
The nonvolatile semiconductor memory device according to the present invention is an electrically readable / writable / erasable nonvolatile semiconductor memory device in which an interrupt signal input unit to which an interrupt signal is input from the outside and in response to the input interrupt signal And an interrupt signal output unit for outputting an interrupt signal to the outside after a predetermined interrupt preparation process, thereby achieving the above object.
[0051]
The control unit executes the predetermined interrupt preparation process, and the control unit responds to the input interrupt signal during the data write operation or the erase operation as the predetermined interrupt preparation process. At least a suspend process for interrupting the data write or erase operation and a process for shifting to the data read mode after the suspend process may be executed.
[0052]
After the above interrupt signal is output to the outside, interrupt processing is performed, and after detecting the input of a resume command for resuming the data write or erase operation, the processing for returning from the end of the interrupt processing to the data write or erase operation is performed. As a predetermined period for performing, a period for continuing the data reading operation may be provided.
[0053]
The control unit may perform control so that the write operation or the erase operation is resumed when a predetermined external signal indicating the end of the interrupt process is detected.
[0054]
The control unit stores a final address recorded in the program code of the interrupt processing in a memory array, and performs the write operation or the erase operation when the final address signal matches an externally input address signal. You may control to restart.
[0055]
The nonvolatile semiconductor memory device further includes a random access memory, and the control unit stores the final address recorded in the program code of the interrupt processing in the random access memory, and is input with the final address signal from the outside. Control may be performed so that the write operation or the erase operation is resumed when the address signal matches.
[0056]
The control unit may be configured with hardware.
[0057]
A data processing apparatus comprising: the nonvolatile semiconductor memory device; and a memory control unit that controls a data writing process, an erasing process, or a reading process for the nonvolatile semiconductor memory apparatus, and that can execute an interrupt process. The semiconductor memory device includes a control unit that outputs the interrupt signal to the memory control unit after interrupting the write operation or the erase operation in response to the input interrupt signal and shifting to the data read mode. The objective is achieved.
[0058]
The memory control means may execute interrupt processing on the nonvolatile semiconductor memory device by inputting the interrupt signal, and output a resume command to the nonvolatile semiconductor memory device at the end of the interrupt processing.
[0059]
With the above configuration, the operation of the present invention will be described below.
[0060]
In the present invention, during interrupt processing, an interrupt signal input unit (input terminal) to which an interrupt signal is input prior to the processor, and an interrupt signal output unit (output) that provides an interrupt signal to the processor after completion of the memory side preparation processing Terminals) or wiring lines are provided on the flash memory side.
[0061]
An interrupt signal input from the outside is first input to an interrupt input terminal on the flash memory side. An interrupt signal output from the flash memory is input to an interrupt input terminal on the processor side. Thereby, the flash memory can always know the occurrence of the interrupt processing prior to the processor. That is, before the processor starts the interrupt process, the flash memory can enter a preparatory process operation for the interrupt.
[0062]
The preparatory operation for an interrupt always includes the following items. That is, 1) interruption of the write / erase operation by suspend, and 2) switching to the array read mode. These operations can be automatically performed by hardware logic on the flash memory side regardless of software control. After executing at least the above two items, the flash memory outputs an interrupt signal to the processor, and the processor starts normal interrupt processing.
[0063]
When the interrupt process is completed, the flash memory must return to the original write / erase operation. In other words, when the interrupt process is finished and the process returns to the original process, it is necessary to resume the flash memory using some means.
[0064]
Therefore, by providing the interrupt signal input unit and the interrupt signal output unit on the flash memory side, the interrupt signal can be easily detected, and various preparation processes in the flash memory are performed prior to the interrupt process from the memory control means by the detection. It becomes possible. As a result, the present invention can provide a nonvolatile semiconductor memory device capable of processing interrupt processing that requires real-time responsiveness simply, reliably, and at high speed, and a data processing device using the nonvolatile semiconductor memory device. become.
[0065]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, Embodiments 1 to 3 of the present invention of the data processing apparatus will be described with reference to the drawings.
[0066]
[Embodiment 1]
FIG. 1 is a schematic diagram of the main components of the data processing apparatus according to the first embodiment.
[0067]
In FIG. 1, a data processing apparatus 10 according to the first embodiment includes a flash memory 11 that is a nonvolatile semiconductor device that can electrically write, erase, or read data, and write processing and erasure on the flash memory 11. The processor 12 is a memory control means for executing processing and reading processing, and the flash memory 11 and the processor 12 are provided with a plurality of buses connected to transmit various data.
[0068]
The flash memory 11 includes a memory array, a write / erase control circuit (WSM) as a control unit for controlling write operations and erase operations for the memory array, an interrupt input unit 11a, and an interrupt to which an interrupt signal is externally input. An input terminal [A] as a signal input input unit, a register for holding an externally input interrupt signal, and an output terminal [B] as an interrupt signal output unit for outputting the interrupt signal held in the register to the processor Including.
[0069]
The processor 12 executes a write / erase routine processing unit 12 a that controls write processing and erase processing, and an interrupt routine processing unit 12 b that executes interrupt processing in response to an interrupt signal input from the flash memory 11.
[0070]
Due to the bus configuration arranged between the flash memory 11 and the processor 12, the processor 12 has an address bus that transmits an address to the flash memory 11, a data bus that transmits and receives data between the processor and the flash memory, and a flash A control bus for transmitting control signals (for example, a chip enable signal, an output enable signal, and a write enable signal) for controlling processing of the memory is included. In FIG. 1, CE represents a chip enable signal, OE represents an output enable signal, WE represents a write enable signal, Address represents an address signal, and DQ represents data.
[0071]
The features of the first embodiment will be described below.
[0072]
The feature of the first embodiment is that interrupt preparation processing such as interruption processing (suspend processing) of the writing operation and erasing operation and switching to the array reading mode of the flash memory is performed on the flash memory side (hardware) according to the external input of the interrupt signal. (The software side), and the interrupted write operation or erase operation is resumed (resume processing) after the interrupt processing is completed, and the issue of a resume command (instruction) is left to the software side. That is, the suspend process is handled by hardware, and the resume process is handled by software.
[0073]
The reason is as follows.
[0074]
When viewed from a software perspective, interrupt processing is a kind of subroutine call. The activation is an irregular call by an external response, and the start timing and start address are not uniquely determined. For this reason, it is difficult to control the activation of interrupt processing by software. Conversely, the end of the interrupt process is determined by a return code explicitly written in the program code written by the user, and the return address is unique. Therefore, it is easy to control the end of interrupt processing by software. Therefore, it is desirable to leave the issue of the resume command to the software side rather than to the hardware side.
[0075]
Further, by leaving the issue of the resume command to the software side, the hardware side does not need a special mechanism for monitoring the timing of issuing the resume command, and the hardware logic can be simplified. It also leads to a reduction in processing load caused by monitoring resume timing.
[0076]
On the other hand, in terms of hardware, the detection is easy because the input to the dedicated input terminal is performed when the interrupt process is started. On the other hand, when the interrupt process ends, the return address depends on the branch destination and is not unique, so it is difficult to detect. Therefore, it is desirable to leave the interruption of the write operation and the erase operation according to the external input of the interrupt signal to the hardware side (that is, the flash memory side).
[0077]
The operation of interrupt processing by the data processing apparatus 10 according to the first embodiment will be described below.
[0078]
FIG. 2 shows a sequence diagram of interrupt processing by the data processing apparatus of the first embodiment.
[0079]
Operations (1) to (8) of this interrupt processing are as follows.
[0080]
(1) The write / erase control circuit of the flash memory 11 executes a suspend operation of a write / erase operation when an interrupt signal is externally input to the interrupt input terminal [A].
[0081]
(2) The write / erase control circuit of the flash memory 11 switches to the array read mode after the suspend operation is completed.
[0082]
(3) The flash memory write / erase control circuit causes the processor to output an interrupt signal INT from the interrupt signal output terminal [B] after completion of switching to the array read mode.
[0083]
(4) It is assumed that the processor 12 always issues a resume command to the flash memory 11 immediately before the return instruction at the end of interrupt processing. The write / erase control circuit of the flash memory 11 continues the array read mode for a period necessary for fetching the return instruction before entering the resume process in response to the input of the resume command.
[0084]
In response to the input of the resume command, the flash memory 11 maintains the array read mode for the period [C] necessary for fetching the return instruction before entering the resume operation, and then performs the resume operation. This ensures that the processor 12 executes the return instruction immediately after the resume operation.
To do.
[0085]
FIG. 3 is a flowchart showing the automatic suspend operation executed in the flash memory 11.
[0086]
The flash memory 11 detects an interrupt signal externally input to the interrupt input terminal [A]. If a write / erase operation is being executed in the flash memory 11 when an interrupt signal is detected, the interrupt signal is held (recorded) (S1), and then a suspend process is executed to interrupt the write / erase operation. (S2). Next, the flash memory 11 performs switching to the array read mode by saving data related to the write / erase operation to a predetermined buffer by the write / erase control circuit (S3). Until this stage, the externally input interrupt signal is held (recorded) in the flash memory 11 and is not output to the processor 12. After the flash memory 11 is switched to the array read mode, the flash memory 11 outputs an interrupt signal to the processor 12 through the interrupt output terminal [B].
[0087]
On the other hand, if the flash memory 11 is already in the array read mode when the flash memory 11 detects an interrupt signal externally input to the interrupt input terminal [A], the flash memory 11 does not hold the interrupt signal and does not hold the interrupt signal. The signal is output through from the interrupt signal output terminal to the processor.
[0088]
FIG. 4 is a flowchart showing the procedure of the resume process (5) shown in FIG.
[0089]
The flash memory 11 maintains an array read mode of several cycles from the input of the resume command to the start of the resume process (that is, the return instruction fetch period [C] shown in FIG. 2) (S11). When the period [C] has elapsed (in the case of YES) (S12), the flash memory executes a resume operation (S13). When the period of [C] has not elapsed (in the case of NO) (S12), the flash memory 11 maintains the array read mode.
In the return instruction fetch period, the processor 12 fetches the return instruction (that is, the return code), ends the interrupt processing, and executes the return from the interrupt routine processing unit 12b to the write / erase routine processing unit 12a.
[0090]
When an interrupt signal is input during the fetch period of the return instruction, the interrupt signal is held until the flash memory 11 finishes the resume process. The held interrupt signal serves as a trigger for the next suspend process performed after the resume process is completed.
[0091]
In parallel with the return of the processor 12 from the interrupt process or after the return is completed, the flash memory 11 starts the resume process and resumes the write / erase operation.
[0092]
[Embodiment 2]
The configuration of the data processing apparatus 10A of the second embodiment is the same as the configuration of the data processing apparatus 10 of the first embodiment except for the internal configuration of the flash memory. The components of the second embodiment that are the same as the components of the first embodiment are indicated by the same reference numerals as in the first embodiment. The description of the same components as those in the first embodiment is omitted.
[0093]
In addition to the components of the flash memory 11 of the first embodiment, the flash memory 11A of the second embodiment further includes a buffer for storing an arbitrary address therein (the address value on the buffer can be changed to an arbitrary value by the user) Comparison to determine whether the address on the address bus (address signal indicating this address) and the address stored in the buffer (memory array) (address signal indicating this address) match. Including For this match determination, data matching means can be used in addition to the comparator, and the data matching means can be constituted by a logic circuit such as an AND circuit.
[0094]
It is assumed that the final address describing the return code at the end of the program code for interrupt processing is registered on this buffer.
[0095]
This address is an address that triggers a suspend operation.
[0096]
The features of the second embodiment will be described below.
[0097]
The feature of the second embodiment is that, as in the first embodiment, in addition to entrusting the suspend process to the hardware (flash memory) side, the resume command issuance is also entrusted to the flash memory 11A side.
[0098]
As described above, from the viewpoint of hardware, at the end of interrupt processing, the return address depends on the branch destination and is difficult to detect because it is not unique.
[0099]
However, the resume command issuance can be automatically executed on the flash memory 11A side by making the resume command issuance trigger the detection of the address input on the address bus. As an address to be detected, an address value on a buffer prepared in the flash memory 11A is used. This address value can be set to an arbitrary value by the user's hand.
[0100]
In order to trigger the resume command issuance to detect the address input on the address bus, for example, it is necessary to cover the end address of the interrupt processing and hold it in the flash memory 11A. Whether or not the end address of the interrupt process can be covered and held on the flash memory 11A depends on the implementation of the architecture for the interrupt process of the processor 12.
[0101]
Therefore, the practical limitation of entrusting the issue of the resume command to the flash memory 11A side is the implementation of the architecture. For example, an architecture in which interrupt input signals and interrupt processing correspond one-to-one like the X86 architecture can be realized relatively easily by preparing buffers for the number of signals.
[0102]
As a result, in the data processing apparatus 10A of the second embodiment, it is possible to immediately perform the return processing to the write / erase operation after completing the interrupt processing. Further, in the data processing apparatus according to the second embodiment, no special consideration is required for the suspend / resume operation of the flash memory 11A for interrupt processing on the user side and the system side, thereby greatly reducing the system design burden. .
[0103]
The operation of the data processing apparatus 10A according to the second embodiment that executes interrupt processing will be described below.
[0104]
FIG. 5 shows a sequence diagram of interrupt processing by the data processing apparatus 10A of the second embodiment.
[0105]
The write / erase control circuit of the flash memory 11A receives the interrupt input from the interrupt processing input terminal [A] and suspends the write / erase operation. This automatic suspend operation is the same as the suspend operation of the first embodiment (see FIG. 3).
[0106]
Next, the write / erase control circuit of the flash memory 11A switches to the array read mode after the suspend operation is completed.
[0107]
The write / erase control circuit of the flash memory 11A causes the processor 22 to output an interrupt signal from the interrupt processing output terminal [B] after completing the switching to the array read mode.
[0108]
In the suspended array read mode, the flash memory 11A compares the address on the input address bus with the address on the buffer one by one by the comparator. If the two match, the flash memory 11A executes the resume operation.
[0109]
The method for registering addresses in the address buffer conforms to Japanese Patent Laid-Open No. 2001-306400.
[0110]
FIG. 6 shows a flowchart relating to the resume operation (4) of the second embodiment.
[0111]
The flash memory 11A monitors the address bus after shifting to the suspended state (S21). Address monitoring is performed even when the flash memory 11A is not selected.
[0112]
The comparator of the flash memory 11A compares the input value to the address bus with the address value in the buffer in the flash memory 11A to determine whether both values match (YES) or not (NO). (S22).
[0113]
The timing at which the address value on the address bus matches the address value on the buffer is the timing at which the processor 12 fetches the return code, and it can be determined that the interrupt processing has been completed at this timing. Therefore, the write / erase control circuit of the flash memory 11A according to the second embodiment executes the resume process when the address on the address bus matches the address on the buffer (S23). It is assumed that the address value registered in the buffer is the same as the address where the return code is arranged in the flash memory 11A.
[0114]
[Embodiment 3]
FIG. 7 is a main part schematic diagram of the data processing apparatus configuration of the third embodiment.
[0115]
The configuration of the data processing apparatus of the third embodiment is different from the configuration of the data processing apparatus 10A of the second embodiment in the following points.
[0116]
In the data processing device 20 of the third embodiment, the flash memory 21 shares a bus for transmitting DQ, CE signal (S-CE signal) and WE signal (S-WE signal) from the processor 23 to the RAM 22 with the RAM. To do. The flash memory 21 is provided with a return address detection chip select terminal and a write enable terminal in addition to a normal chip select terminal. The return address detection chip select terminal is connected to the chip select input from the processor 23 to the RAM 22 together with the chip select terminal provided in the RAM 22. As a result, the flash memory 21 can monitor the CE signal or the WE signal transmitted from the processor to the RAM via the data bus. As a result, the flash memory 21 can acquire the timing when the processor 23 saves the program counter in the RAM 22.
[0117]
The RAM 22 transmits a CE signal (S-CE signal), a WE signal (S-WE signal), and an OE signal (S-OE signal) only to the RAM 22 from the processor 23, and S to the RAM 22 from the processor 23. An address bus for transmitting addresses;
[0118]
As in the second embodiment, the third embodiment is characterized in that the suspend process is left to the hardware (flash memory) side and the resume command issuance is left to the flash memory side.
[0119]
The trigger for issuing the resume command is to detect a specific address input to the address bus. As an address to be detected, an address value on a buffer prepared in the flash memory 21 is used. Each time an interrupt process occurs, the flash memory 21 reads the value of the program counter that the processor 23 saves on the stack area of the RAM 22 and automatically sets it in the buffer. Note that the value of the program counter is a return address that is restored when interrupt processing ends.
[0120]
Detection of saving of the program counter is performed by monitoring the chip select and write enable of the RAM 22 when the program counter is written on the RAM 22 having the stack area immediately after the processor 23 starts interrupt processing. When the flash memory 21 detects saving of the program counter, the flash memory 21 saves the program counter input from the data bus on the buffer. Since the saved program counter is a return address that is restored at the end of interrupt processing, it is determined that the interrupt processing has ended when the address next appears on the address bus, and the resume operation of the flash memory 21 is performed. Can be executed.
[0121]
As a practical limitation, whether or not the program counter can be detected and stored in the flash memory 21 depends on the architecture of the processor 23 for interrupt processing. Many conventional processors that do not have a shadow register dedicated to interrupt processing push the current program counter onto the stack area simultaneously with the start of interrupt processing. The configuration of the data processing apparatus according to the third embodiment can be applied to such a processor.
[0122]
FIG. 8 is a sequence diagram of interrupt processing by the data processing device 20 according to the third embodiment.
[0123]
(1) The write / erase control circuit of the flash memory 21 receives the interrupt input from [A] and executes the suspend process of the write / erase operation.
[0124]
(2) The flash memory write / erase control circuit switches to the array read mode after the suspend process is completed.
[0125]
(3) The write / erase control circuit of the flash memory 21 outputs an interrupt to the processor 23 from the interrupt signal output terminal [B] after completing the switching to the array read mode.
[0126]
(4) The flash memory 21 monitors the chip select terminal and the write enable terminal of the RAM 22 having the stack area, and detects that the processor 23 has saved the program counter on the stack. The data on the data bus at the time of detection is the program counter, and the flash memory 21 sets the value of the program counter in its own buffer.
[0127]
(5) In the suspended array read mode, the flash memory 21 compares the input address on the address bus with the address on the buffer. If the two match, the flash memory 21 resumes. The resume operation of the data processing device 20 of the third embodiment is the same as the resume operation (see FIG. 6) of the data processing device of the second embodiment.
[0128]
FIG. 9 shows a flowchart of the automatic suspend operation by the data processing apparatus 20 of the third embodiment.
[0129]
If the flash memory 21 detects that an interrupt signal is input to the interrupt input terminal [A] and the write / erase operation is being performed, the flash memory 21 holds the interrupt signal (S31), and then performs the write / erase operation. Suspend processing is executed (S32). Next, the flash memory 21 is switched to the array read mode (S33). The interrupt signal is held in the flash memory 21 and is not output to the processor 23 from when the interrupt input is detected until the array read mode is switched. After the switching to the array read mode is completed, the flash memory 21 releases (outputs) an interrupt signal to the processor through the interrupt output terminal [B] (S34).
[0130]
If the flash memory 21 is in the array read mode when it detects that an interrupt signal is input to the interrupt input terminal, the flash memory 21 does not hold the interrupt signal in the flash memory 21 but sends an interrupt signal to the processor 23. Through output. After the interrupt signal is output to the processor 23, the flash memory 21 monitors the RAM data bus in preparation for saving the program counter by the processor (S35). The monitoring of the data bus is performed even when the flash memory 21 is not selected.
[0131]
When the flash memory 21 outputs an interrupt signal to the processor 23, the processor 23 saves the program counter value in the stack area on the RAM.
[0132]
If there is a write to the SRAM (in the case of YES) (S36), the flash memory 21 considers that the program counter has been saved, and stores the read program counter value in the buffer inside the flash memory 21 (S37). When there is no writing in the SRAM (NO) (S36), the flash memory 21 continues to monitor the RAM data bus in preparation for saving the program counter by the processor (S35).
The processor 23 issues a resume command using this program counter value.
[0133]
In the first to third embodiments, the suspend process or the suspend process and the resume process are supported on the flash memory side. However, if the controller is configured by hardware, a controller outside the flash memory is provided. It may be done.
[0134]
【The invention's effect】
As described above, the data processing apparatus of the present invention processes the suspend process or the suspend process and the resume process with the control device configured by hardware. As a result, the present invention can provide a nonvolatile semiconductor memory device capable of processing interrupt processing requiring real-time responsiveness easily, reliably, and at high speed, and a data processing device using the nonvolatile semiconductor memory device. To.
[Brief description of the drawings]
FIG. 1 is a schematic diagram of a main part of a configuration of a data processing apparatus according to an embodiment of the present invention.
FIG. 2 shows a sequence diagram of interrupt processing in the embodiment of the present invention.
FIG. 3 is a flowchart related to an automatic suspend operation executed in a flash memory.
FIG. 4 is a flowchart showing a resume process procedure shown in FIG. 2;
FIG. 5 shows a sequence diagram of an interrupt in another embodiment of the present invention.
FIG. 6 is a flowchart related to a resume operation according to another embodiment of the present invention.
FIG. 7 is a schematic diagram of a main part of a configuration of a data processing apparatus according to still another embodiment of the present invention.
FIG. 8 is a sequence diagram of interrupt processing by a data processing apparatus according to still another embodiment of the present invention.
FIG. 9 shows a flowchart of an automatic suspend operation by a data processing apparatus according to still another embodiment of the present invention.
FIG. 10 is a schematic diagram showing the main components of a conventional data processing apparatus.
FIG. 11 is a sequence diagram showing the operation of the conventional software dual work method.
[Explanation of symbols]
10 Data processing device
11 Flash memory
11a Interrupt input part

Claims (10)

電気的にデータの書き込み、消去または読み出し可能な不揮発性半導体記憶装置において、
外部から割り込み信号が入力される割り込み信号入力部と、入力割り込み信号に応答して所定の割り込み準備処理の後に割り込み信号を外部に出力するための割り込み信号出力部とを有した不揮発性半導体記憶装置。
In a nonvolatile semiconductor memory device capable of electrically writing, erasing or reading data,
Nonvolatile semiconductor memory device having an interrupt signal input unit to which an interrupt signal is input from the outside, and an interrupt signal output unit for outputting an interrupt signal to the outside after a predetermined interrupt preparation process in response to the input interrupt signal .
前記所定の割り込み準備処理を実行する制御部を有し、該制御部は、該所定の割り込み準備処理として、データの書き込み動作または消去動作の実行中に、入力された割り込み信号に応答して、少なくとも、該データの書き込み動作または消去動作を中断するサスペンド処理と、該サスペンド処理後に、データの読み出しモードに移行させる処理とを実行する請求項1に記載の不揮発性半導体記憶装置。The control unit executes the predetermined interrupt preparation process, and the control unit responds to the input interrupt signal during the data write operation or the erase operation as the predetermined interrupt preparation process. The nonvolatile semiconductor memory device according to claim 1, wherein at least a suspend process for interrupting the data write operation or erase operation and a process for shifting to a data read mode after the suspend process are executed. 前記割り込み信号の外部への出力後に、外部からの指示により割り込み処理が為され、データの書き込み動作または消去動作を再開させるためのレジューム命令の入力検知後に、外部での割り込み処理終了からデータの書き込みまたは消去動作への復帰処理を行うための所定期間として、データの読み出し動作を継続させる期間が設けられている請求項2に記載の不揮発性半導体記憶装置。After the interrupt signal is output to the outside, interrupt processing is performed according to an instruction from the outside, and after detecting the input of a resume command for resuming the data writing operation or erasing operation, data writing from the end of the external interrupt processing is performed. 3. The nonvolatile semiconductor memory device according to claim 2, wherein a period for continuing the data reading operation is provided as a predetermined period for performing the return processing to the erasing operation. 前記制御部は、前記中断された書き込み動作または消去動作への復帰処理が終了すると、該中断された書き込み動作または消去動作を再開させるように制御する請求項3に記載の不揮発性半導体記憶装置。4. The nonvolatile semiconductor memory device according to claim 3, wherein when the return processing to the interrupted write operation or erase operation is completed, the control unit controls to resume the interrupted write operation or erase operation. 5. 前記制御部は、前記割り込み処理の終了時を示す外部からの所定の信号を検知した場合に前記書き込み動作または消去動作を再開させるように制御する請求項3に記載の不揮発性半導体記憶装置。4. The nonvolatile semiconductor memory device according to claim 3, wherein the control unit performs control so that the write operation or the erase operation is resumed when a predetermined external signal indicating the end of the interrupt process is detected. 5. 前記制御部は、前記割り込み処理のプログラムコードに記録された最終アドレスをメモリアレイに格納し、該最終アドレス信号と外部から入力されるアドレス信号とが一致した場合に、前記書き込み動作または消去動作を再開させるように制御する請求項1〜5の何れかに記載の不揮発性半導体記憶装置。The control unit stores the final address recorded in the program code of the interrupt processing in a memory array, and performs the write operation or erase operation when the final address signal matches an address signal input from the outside. The nonvolatile semiconductor memory device according to claim 1, wherein the nonvolatile semiconductor memory device is controlled to resume. 前記不揮発性半導体記憶装置はランダムアクセスメモリをさらに有し、前記制御部は、前記割り込み処理のプログラムコードに記録された最終アドレスを該ランダムアクセスメモリに格納し、該最終アドレス信号と外部から入力されるアドレス信号とが一致した場合に、前記書き込み動作または消去動作を再開させるように制御する請求項1〜5の何れかに記載の不揮発性半導体記憶装置。The nonvolatile semiconductor memory device further includes a random access memory, and the control unit stores the final address recorded in the program code of the interrupt processing in the random access memory, and the final address signal is input from the outside. 6. The nonvolatile semiconductor memory device according to claim 1, wherein control is performed so that the write operation or erase operation is resumed when the address signal matches. 前記制御部はハードウェアで構成された請求項1〜7の何れかに記載の不揮発性半導体記憶装置。The nonvolatile semiconductor memory device according to claim 1, wherein the control unit is configured by hardware. 請求項1〜8の何れかに記載の不揮発性半導体記憶装置と、該不揮発性半導体記憶装置に対するデータの書き込み処理、消去処理または読み出し処理を制御し、割り込み処理を実行可能とするメモリ制御手段とを有するデータ処理装置において、
該不揮発性半導体記憶装置は、入力割り込み信号に応答して書き込み動作または消去動作を中断してデータの読み出しモードに移行した後に、該割り込み信号を該メモリ制御手段に出力する制御部を有するデータ処理装置。
9. The non-volatile semiconductor memory device according to claim 1, and a memory control means for controlling a data write process, an erase process or a read process for the non-volatile semiconductor memory apparatus so as to execute an interrupt process. In a data processing apparatus having
The nonvolatile semiconductor memory device has a control unit that outputs the interrupt signal to the memory control means after interrupting the write operation or the erase operation in response to the input interrupt signal and shifting to the data read mode. apparatus.
前記メモリ制御手段は、前記割り込み信号の入力により割り込み処理を前記不揮発性半導体記憶装置に対して実行し、該割り込み処理の終了時に、該不揮発性半導体記憶装置にレジューム命令を出力する請求項9に記載のデータ処理装置。10. The memory control unit according to claim 9, wherein the memory control unit executes an interrupt process for the nonvolatile semiconductor memory device in response to the input of the interrupt signal, and outputs a resume command to the nonvolatile semiconductor memory device at the end of the interrupt process. The data processing apparatus described.
JP2003185865A 2003-06-27 2003-06-27 Nonvolatile semiconductor memory device and data processing device Expired - Fee Related JP3956305B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003185865A JP3956305B2 (en) 2003-06-27 2003-06-27 Nonvolatile semiconductor memory device and data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003185865A JP3956305B2 (en) 2003-06-27 2003-06-27 Nonvolatile semiconductor memory device and data processing device

Publications (2)

Publication Number Publication Date
JP2005018650A true JP2005018650A (en) 2005-01-20
JP3956305B2 JP3956305B2 (en) 2007-08-08

Family

ID=34185151

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003185865A Expired - Fee Related JP3956305B2 (en) 2003-06-27 2003-06-27 Nonvolatile semiconductor memory device and data processing device

Country Status (1)

Country Link
JP (1) JP3956305B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009528609A (en) * 2006-03-28 2009-08-06 ノキア コーポレイション Method and device for reducing read latency of non-volatile memory
JP2011150788A (en) * 2011-05-13 2011-08-04 Toshiba Corp Semiconductor memory
JP2011169673A (en) * 2010-02-17 2011-09-01 Alpine Electronics Inc Navigation system using memory card
US9558837B2 (en) 2013-03-25 2017-01-31 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
US9941014B2 (en) 2014-01-02 2018-04-10 Samsung Electronics Co., Ltd. Nonvolatile memory device, nonvolatile memory system including the same, and method of operating the same

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009528609A (en) * 2006-03-28 2009-08-06 ノキア コーポレイション Method and device for reducing read latency of non-volatile memory
JP2011169673A (en) * 2010-02-17 2011-09-01 Alpine Electronics Inc Navigation system using memory card
JP2011150788A (en) * 2011-05-13 2011-08-04 Toshiba Corp Semiconductor memory
US9558837B2 (en) 2013-03-25 2017-01-31 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
US9941014B2 (en) 2014-01-02 2018-04-10 Samsung Electronics Co., Ltd. Nonvolatile memory device, nonvolatile memory system including the same, and method of operating the same

Also Published As

Publication number Publication date
JP3956305B2 (en) 2007-08-08

Similar Documents

Publication Publication Date Title
US7032081B1 (en) System and method for enabling non-volatile memory to execute code while operating as a data storage/processing device
JP4136359B2 (en) Microcomputer
JPH02267634A (en) Interrupt system
JP2007219581A (en) Memory controller, and electronic equipment mounted therewith
JP3970609B2 (en) Processor system
JP3956305B2 (en) Nonvolatile semiconductor memory device and data processing device
US6748527B1 (en) Data processing system for performing software initialization
US7107407B2 (en) Arithmetic unit with reduced startup time and method of loading data
JP2004348327A (en) Digital signal processor and digital signal processing method
WO2007049423A1 (en) Computer system and method for activating basic program therein
JP4034032B2 (en) Microcomputer with built-in cache
JP2005276104A (en) Microcomputer
JP2665173B2 (en) Processor trap circuit
GB2304209A (en) Starting up a processor system
JP2001117819A (en) Instruction memory circuit and information processing system
JP2632859B2 (en) Memory access control circuit
JP2002222115A (en) Memory system
EP1104899A2 (en) Data processing apparatus and method of controlling the same
JP3785807B2 (en) Control device
JPH0635747A (en) Debug supporting device
JP2000347931A (en) Cache memory and method for controlling cache memory
JPH0447350A (en) Main storage read/response control
JPH02183342A (en) Interruption controller
JPS58114218A (en) Program loading system
JP2000250759A (en) Method for writing boot block for flash memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070323

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: 20070426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070426

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: 20110518

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110518

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120518

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120518

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130518

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees