(57)【要約】【課題】各バッファＲＡＭのサイズを１セクタサイズ相当に低減し、製造コストが安価で、高速転送が可能であるとともに、書き込み・読出しの高速処理が可能な半導体記憶装置を提供する。【解決手段】フラッシュメモリ（２）の１ブロックの容量サイズは外部ホストの処理単位である１セクタサイズの複数倍であり、外部ホストとフラッシュメモリ（２）間のデータ転送を媒介する第１及び第２のバッファＲＡＭは、各々がフラッシュメモリ（２）の１セクタサイズに相当する容量を有し、外部ホストとバッファＲＡＭ間のデータ転送、フラッシュメモリとバッファＲＡＭ間のデータ転送は、それぞれ第１及び第２のバッファＲＡＭのうち別々のバッファＲＡＭを交互に選択して、バッファＲＡＭと外部ホスト間でのデータ授受と、バッファＲＡＭとフラッシュメモリ間でのデータ授受を同時並列的に行う。【選択図】図１
2011118922.tif 000002
【特許請求の範囲】
【請求項１】
システムバス上に接続された２個のバッファメモリを介して外部ホスト端末とデータ転送可能に接続された不揮発性半導体メモリのデータ読出し方法であって、
読出し制御の初期化によって開始ブロックアドレスと開始セクタ番号と転送セクタ数を取得する工程と、
最初のセクタデータを読出してバッファメモリに格納し、ホスト端末への読出し転送を行う工程と、
転送セクタ数を１減算カウントした後、バッファメモリからホスト端末へのデータ転送中か転送完了しているかを判定する工程と、
ホスト端末へのデータ転送完了時に、ホスト端末へのデータ転送要求を発行し、バッファメモリからホスト端末へのデータ転送を開始する工程と、
処理されるべき転送セクタ数が０か否か判定する工程、とを有し、
転送セクタ数が０の場合は、ブロック処理を完了し、転送セクタ数が０より大の場合は、バッファメモリの切り替えを行い、対象セクタ番号を１だけインクレメントして次のセクタからの読出しを行い、一方のバッファメモリが外部ホスト端末との間で１セクタ分のデータの授受を行っている際には、もう一方のバッファメモリは不揮発性半導体メモリとの間で別の１セクタ分のデータの授受を行うことを特徴とする不揮発性半導体メモリのデータ読出し方法。
【請求項２】
システムバス上に接続された２個のバッファメモリを介して外部ホスト端末とデータ転送可能に接続された不揮発性半導体メモリへのデータ書き込み方法であって、
書き込み制御の初期化によって開始ブロックアドレスと開始セクタ番号と転送セクタ数を取得する工程と、
ホストからのデータ転送要求を発行し、バッファメモリへのデータ転送を開始する工程と、
フラッシュメモリのプログラム完了時に、ライトコマンド・ブロックアドレス印加処理を行う工程と、
ホスト端末からのデータ転送完了を待って、転送セクタ数を１減算カウントした後、処理されるべき転送セクタ数が０か否か判定する工程と、を有し、
転送セクタ数が０の場合は、ライトセクタ書き込み転送処理した後、ブロック処理を完了し、
転送セクタ数が０より大の場合は、バッファメモリの切り替えを行い、ホスト端末からのデータ転送要求を発行し、バッファメモリへのデータ転送を開始し、ライトセクタ書き込み転送を行い、対象セクタ番号を１だけインクレメントして次のセクタへの書き込みを行い、一方のバッファメモリが外部ホスト端末との間で１セクタ分のデータの授受を行っている際には、もう一方のバッファメモリは不揮発性半導体メモリとの間で別の１セクタ分のデータの授受を行うことを特徴とする不揮発性半導体メモリへのデータ書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体記憶装置に関し、特に、ブロック単位でリード・ライト・イレースされるフラッシュメモリを用いた半導体ディスク装置などの大容量半導体記憶装置に関し、不揮発性半導体メモリとして大容量メモリを用いて高性能でかつ製造コストの低減を実現した半導体記憶装置に関する。
【背景技術】
【０００２】
従来、不揮発性半導体メモリとして、例えば、三菱電機（株）製の M5M29F25611VP や日立製作所（株）製の HN29W25611 などが使用され、これらは２ｋバイトのブロック単位でリード、ライト処理を行うフラッシュメモリである。このフラッシュメモリを搭載した半導体記憶装置の場合、ホスト端末とのデータ転送とフラッシュメモリとのデータ転送を並列処理させるために、フラッシュメモリは、図７に示すように、各２ｋバイトのブロックを複数枚有し、２個のバッファＲＡＭ（Ｒ１，Ｒ２）は各々１ブロックの容量サイズを有するものであった。
【０００３】
このように、図７に示す従来の半導体記憶装置では、各バッファＲＡＭの容量は１ブロックの容量サイズに相当、即ち、１セクタサイズの複数倍（例えば４セクタサイズ相当）であった。
【０００４】
ホスト端末機とバッファＲＡＭ間のデータ転送、フラッシュメモリとバッファＲＡＭ間のデータ転送は、２つのバッファＲＡＭ（Ｒ１，Ｒ２）のうちそれぞれ別々のバッファＲＡＭを選択して行い、一方のバッファＲＡＭ（例えばＲ１）がホスト端末機とデータ送受信を行っている際には、もう一方のバッファＲＡＭ（例えばＲ２）はフラッシュメモリとの間でデータ送受信を行うように構成されていた。
【０００５】
ここで、バッファＲＡＭとホスト端末機間およびバッファＲＡＭとフラッシュメモリ間でのデータ転送は、１ブロック相当の複数セクタ分のデータを一括してデータ転送を行うように構成され、フラッシュメモリに対するコマンドはブロック（４セクタ）単位で実施されている。
【０００６】
図７（ａ）はフラッシュメモリからホスト端末への従来のデータ読出し動作を示す模式図であり、図７（ｂ）はホスト端末からフラッシュメモリへのデータ書き込み動作を示す模式図であり、フラッシュメモリは１ブロックサイズが２ｋバイト（４セクタサイズ）で構成された場合を示している。
【０００７】
図７（ａ）に示すフラッシュメモリからのデータ読出し動作において、破線矢印で示すデータ転送は、フラッシュメモリから１ブロックのデータが予めバッファＲＡＭ（Ｒ１）に格納され、次に実線矢印で示した２つのデータ転送を同時に行うことを示している。即ち、バッファＲＡＭ（Ｒ１）に先に格納されたデータをバッファＲＡＭ（Ｒ１）から読み出してホストに転送すると同時的に、フラッシュメモリから次のブロックのデータを読み出してもう一方のバッファＲＡＭ（Ｒ２）に転送し格納する。
【０００８】
同様に、図７（ｂ）に示すホスト端末からフラッシュメモリへのデータ書き込み動作において、破線矢印で示すデータ転送は、ホストから１ブロックに対するデータが予めバッファＲＡＭ（Ｒ１）に格納され、次に実線矢印で示した２つのデータ転送を同時に行うことを示している。即ち、バッファＲＡＭ（Ｒ１）に先に格納されたデータを読み出してフラッシュメモリに転送するのと同時的に、ホスト端末から次のブロックに対するデータをバッファＲＡＭ（Ｒ２）に転送し格納する。
【０００９】
また、特開昭６４−７４６４９号公報（特許文献１）では、磁気ディスク装置において、各々複数セクタ分の容量を持った２個のバッファメモリを有し、１セクタ分のデータを読み出して格納し、そのデータを転送している間に、他方のバッファメモリに別の１セクタ分のデータを読み出して格納する技術が開示されている。ここで、各々複数セクタ分の容量を持った２個のバッファメモリを備えることは、転送データの履歴を残すことにより、故障解析を容易にするためである。
【００１０】
このように、従来技術では各バッファＲＡＭが複数セクタ分の容量を持った構成であるので、バッファメモリの容量が大きくなり、将来、フラッシュメモリの大容量化がさらに進み、ブロックサイズが例えば４ｋバイト、８ｋバイト等と大きくなった場合、従来の技術構成ではバッファＲＡＭも同様に大きく構成しなければならない。このため、コントローラ等を含む装置全体のコストも高くなることは避けられなかった。
【００１１】
また、バッファサイズが小さいままで、そのバッファサイズ毎にリードコマンドやライトコマンドを実行すると、コマンド実行のオーバーヘッドが余分に加わるため効率が悪くなり、ホスト端末側から見た書き込み・読出し速度が遅くなるという課題があった。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開昭６４−７４６４９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明は、上記課題を解決するためになされたもので、各バッファＲＡＭのサイズを１セクタサイズ相当に低減し、製造コストが安価で、高速転送が可能であるとともに、書き込み・読出しの高速処理が可能な半導体記憶装置及びその読出し・書き込み方法を提供することを目的とする。
【００１４】
また、本発明の他の目的は、上記性能を有するとともに、誤り訂正によりデータの信頼性向上が図れる半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明による半導体記憶装置は、システムバスを介して外部ホスト端末とデータ転送可能に接続され、
複数個のブロック構成を有する不揮発性半導体メモリであって、各ブロック単位で読出し・書き込みのコマンドが実行処理され、１ブロックの容量サイズは外部ホスト端末がデータ読出し・書き込み単位とする１セクタサイズの複数倍である不揮発性半導体メモリと、
上記外部ホスト端末と上記不揮発性半導体メモリ間のデータ転送を媒介する２個のバッファメモリであって、各々が上記不揮発性半導体メモリの１セクタサイズに相当する容量を有する第１及び第２のバッファメモリと、
上記外部ホスト端末と上記バッファメモリ間のデータ転送および上記不揮発性半導体メモリと上記バッファメモリ間のデータ転送は、それぞれ上記第１及び第２のバッファメモリのうち別々のバッファメモリを選択し、一方のバッファメモリが外部ホスト端末との間で１セクタ分のデータの授受を行っている際には、もう一方のバッファメモリは不揮発性半導体メモリとの間で別の１セクタ分のデータの授受を行うように制御する制御手段とを有することを特徴とする。
【００１６】
上記制御手段は、外部ホスト端末からのデータ読出し・書き込みの要求に応答して、前記不揮発性半導体メモリのブロックに対する読出し・書き込みのコマンドを印加し、順次セクタデータ毎に前記バッファメモリを介して外部ホスト端末と前記不揮発性半導体メモリ間のデータの授受を行う。
【００１７】
また、上記制御手段は、１つのセクタデータの転送後は次のセクタデータの転送が継続できるように前記不揮発性半導体メモリへの制御レベルを保持し、データ転送の同時並列処理を行う。
【００１８】
上記構成により、バッファメモリの容量を小さくできるので、低コストでの製造が可能となり、転送の並列処理ができるので、ホスト端末からみて高速な転送が実現できる。また、フラッシュメモリに対してブロック単位で処理を行うので、高速な書き込み・読出しが可能となり、処理時間の短縮を図ることができる。
【００１９】
本発明の他の態様による半導体記憶装置は、上記不揮発性半導体メモリに格納されたデータの誤りを訂正制御する誤り訂正手段を更に有し、誤り訂正のための冗長データは各セクタデータ毎にセクタデータの直後に格納することもできる。
上記誤り訂正手段は、前記不揮発性半導体メモリからバッファメモリへのデータ読出しの際には、これと同時並行して上記誤り訂正手段にセクタデータと冗長データが転送され、訂正可能な誤りが検出された場合には前記バッファメモリ上のデータを訂正し、該バッファメモリから上記不揮発性半導体メモリへの書き込みの際には、これと同時並行して上記誤り訂正手段にセクタデータを転送して冗長データを生成し、生成された冗長データを上記不揮発性半導体メモリに転送することもできる。
【００２０】
これにより、データの誤りを訂正制御手段が付加されたことにより、前述の効果に加えて、データの信頼性を向上させることができる。
【００２１】
更に、本発明による不揮発性半導体メモリのデータ読出し方法は、
読出し制御の初期化によって開始ブロックアドレスと開始セクタ番号と転送セクタ数を取得する工程と、
最初のセクタデータを読出してバッファメモリに格納し、ホスト端末への読出し転送を行う工程と、
転送セクタ数を１減算カウントした後、バッファＲＡＭからホスト端末へのデータ転送中か転送完了しているかを判定する工程と、
ホスト端末へのデータ転送完了時に、ホスト端末へのデータ転送要求を発行し、バッファメモリからホスト端末へのデータ転送を開始する工程と、
処理されるべき転送セクタ数が０か否か判定する工程、とを有し、
転送セクタ数が０の場合は、ブロック処理を完了し、転送セクタ数が０より大の場合は、バッファメモリの切り替えを行い、対象セクタ番号を１だけインクレメントして次のセクタからの読出しを行い、一方のバッファメモリが外部ホスト端末との間で１セクタ分のデータの授受を行っている際には、もう一方のバッファメモリは不揮発性半導体メモリとの間で別の１セクタ分のデータの授受を行うことを特徴とする。
【００２２】
また、本発明による不揮発性半導体メモリへのデータ書き込み方法は、
書き込み制御の初期化によって開始ブロックアドレスと開始セクタ番号と転送セクタ数を取得する工程と、
ホストからのデータ転送要求を発行し、バッファメモリへのデータ転送を開始する工程と、
フラッシュメモリのプログラム完了時に、ライトコマンド・ブロックアドレス印加処理を行う工程と、
ホスト端末からのデータ転送完了を待って、転送セクタ数を１減算カウントした後、処理されるべき転送セクタ数が０か否か判定する工程と、を有し、
転送セクタ数が０の場合は、ライトセクタ書き込み転送処理した後、ブロック処理を完了し、
転送セクタ数が０より大の場合は、バッファメモリの切り替えを行い、ホスト端末からのデータ転送要求を発行し、バッファメモリへのデータ転送を開始し、ライトセクタ書き込み転送を行い、対象セクタ番号を１だけインクレメントして次のセクタへの書き込みを行い、一方のバッファメモリが外部ホスト端末との間で１セクタ分のデータの授受を行っている際には、もう一方のバッファメモリは不揮発性半導体メモリとの間で別の１セクタ分のデータの授受を行うことを特徴とする。
【００２３】
上記不揮発性半導体メモリのデータ読出し・書き込み方法によれば、バッファメモリの容量を小さくできるので、低コストでの製造が可能となり、転送の並列処理ができるので、ホスト端末からみて高速な転送が実現できる。また、フラッシュメモリに対してブロック単位で処理を行うので、高速な書き込み・読出しが可能となり、処理時間の短縮を図ることができる。
【発明の効果】
【００２４】
以上のように、本発明によれば、バッファＲＡＭの容量を小さくできるので、低コストでの製造が可能となり、転送の並列処理ができるので、ホストからみて高速な転送が実現できる。また、フラッシュメモリに対してブロック単位で処理を行うので、高速な書き込み・読出しが可能となる。さらに、上記効果を損なうことなく、誤り訂正によりデータの信頼性向上が図れる。
【図面の簡単な説明】
【００２５】
【図１】本発明に係る半導体記憶装置の実施例１のブロック図
【図２】（ａ）、（ｂ）はそれぞれ本発明に係る半導体記憶装置の読出し・書き込み動作におけるデータ転送の模式図
【図３】（ａ）、（ｂ）はそれぞれ本発明に係る半導体記憶装置の読出し・書き込み動作におけるフラッシュメモリ制御信号のタイミングチャート
【図４】本発明に係る半導体記憶装置の読出し動作のフローチャート
【図５】本発明に係る半導体記憶装置の書き込み動作のフローチャート
【図６】本発明に係る半導体記憶装置の実施例２のブロック図
【図７】（ａ）、（ｂ）はそれぞれ従来の半導体記憶装置の読出し・書き込み動作におけるデータ転送の模式図。
【発明を実施するための形態】
【００２６】
（実施例１）
図１乃至図５を用いて本発明の第１の実施例について説明する。なお、各図において共通する要素には同一の符号を付し、重複する説明については省略している。
【００２７】
図１は、本発明による不揮発性半導体メモリを用いて構成された半導体記憶装置の１実施例のブロック構成を示す。同図において、半導体記憶装置は、制御信号生成手段としての機能を有する制御信号生成シーケンサ（ＳＥＱ）１と、複数のブロック階層構造を有するフラッシュメモリ２と、２つのバッファＲＡＭ（Ｒ１，Ｒ２）と、双方向バッファ３と、４つのセレクタ（Ｓ１，Ｓ２，Ｓ３，Ｓ４）とを備える。バッファＲＡＭ（Ｒ１，Ｒ２）は、それぞれホスト端末機からのデータの読出し・書き込みができるように、データバスによってセレクタ（Ｓ１，Ｓ２，Ｓ３）を介してホストインターフェース部４と接続されている。同様に、バッファＲＡＭ（Ｒ１，Ｒ２）は、フラッシュメモリ２に対するデータの読出し・書き込みができるように、データバスによってセレクタ（Ｓ２，Ｓ３，Ｓ４）および双方向バッファ３を介してフラッシュメモリ２と接続され、各セレクタによって接続されるデータバスが選択される。
【００２８】
ここで、制御信号生成シーケンサ（ＳＥＱ）１は、各種のデータ転送を実施するために適切なタイミングで各ブロックに対して制御信号を与え、各セレクタの切替制御、バッファＲＡＭ（Ｒ１，Ｒ２）への制御信号、ブロックアドレス、フラッシュメモリ２への制御信号は全て制御信号生成シーケンサ（ＳＥＱ）１によって生成される（図３を用いて後述する）。
【００２９】
図１に示す半導体記憶装置では、フラッシュメモリのリード、ライト、イレース処理はブロック単位で行われ、この１ブロックの容量サイズはホスト端末機が処理単位とする１セクタサイズの整数倍であり、本実施例では１ブロックサイズが４セクタサイズである構成例を示している。
【００３０】
本発明では、ホスト端末機とフラッシュメモリ間のデータ転送を媒介するために設けられた２つのバッファＲＡＭ（Ｒ１，Ｒ２）としては、各々の記憶容量がホスト端末機の処理単位である１セクタサイズと同じ容量サイズのものが使用される。そのため、ホスト端末機とバッファＲＡＭ間のデータ転送、フラッシュメモリとバッファＲＡＭ間のデータ転送は、２つのバッファＲＡＭ（Ｒ１，Ｒ２）のうちそれぞれ別々のバッファＲＡＭを選択して行い、一方のバッファＲＡＭ（例えばＲ１）がホスト端末機とデータの送受信を行っている際には、もう一方のバッファＲＡＭ（例えばＲ２）はフラッシュメモリとのデータ送受信を行うように構成されている。
【００３１】
ホスト端末機からの読出し・書き込みの要求に応答して、制御信号生成シーケンサ（ＳＥＱ）１は、フラッシュメモリのアドレス指定されたブロックに対するリードコマンド・ライトコマンドを印加し、順次セクタ単位毎にバッファＲＡＭを介してホスト端末機とフラッシュメモリ間のデータの授受を行い、これをブロック単位毎に繰り返してリードコマンド・ライトコマンドを実行する。ここで、１つのセクタデータの転送後は次のセクタデータの転送が継続できるようにフラッシュメモリへの制御信号はそのレベルが保持される。
【００３２】
図２（ａ）はフラッシュメモリからホスト端末へのデータ読出し動作を示す模式図であり、図２（ｂ）はホスト端末からフラッシュメモリへのデータ書き込み動作を示す模式図であり、フラッシュメモリは１ブロックサイズが２ｋバイト（４セクタサイズ）で構成された場合を示している。
【００３３】
図２（ａ）に示すフラッシュメモリからのデータ読出し動作において、破線矢印で示すデータ転送Dtr1は、フラッシュメモリから例えばセクタ１のデータが前段階の処理ステップで予めバッファＲＡＭ（Ｒ１）に格納されていることを示している。次に実線矢印で示した２つのデータ転送Dtr2とDtr3 を同時に行う。即ち、バッファＲＡＭ（Ｒ１）に先に格納されたセクタ１のデータをバッファＲＡＭ（Ｒ１）から読み出してホストに転送する(Dtr3)と同時的に、フラッシュメモリから次のセクタ２のデータを読み出してもう一方のバッファＲＡＭ（Ｒ２）に転送(Dtr2)し格納する。バッファＲＡＭ（Ｒ２）に格納されたセクタ２のデータを読み出してホストに転送するときは、それと同時に、フラッシュメモリから次のセクタ３のデータを読み出してもう一方のバッファＲＡＭ（Ｒ１）に転送し格納する。
【００３４】
同様に、図２（ｂ）に示すホストからフラッシュメモリへのデータ書き込み動作において、破線矢印で示すデータ転送Dtw1は、ホスト端末から例えばセクタ１に対するデータが予めバッファＲＡＭ（Ｒ１）に格納されていることを示している。次に実線矢印で示した２つのデータ転送Dtw2とDtw3 を同時に行う。即ち、バッファＲＡＭ（Ｒ１）に先に格納されたセクタ１に対するデータを読み出してフラッシュメモリに転送する(Dtw3)と同時的に、ホスト端末から次のセクタ２に対するデータをバッファＲＡＭ（Ｒ２）に転送(Dtw2)し格納する。
【００３５】
図３（ａ）はフラッシュメモリからのデータ読出し動作における制御信号生成シーケンサ（ＳＥＱ）１からの制御信号のタイミング波形図を示し、図３（ｂ）はフラッシュメモリへのデータ書き込み動作における制御信号のタイミング波形図を示す。
【００３６】
フラッシュメモリに対するコマンドはブロック（４セクタ）単位で実施されるため、各コマンドの実施は、コマンド・ブロックアドレス印加ステップ(read open, write open)と、セクタ転送（読出し・書き込み）ステップ(read sector, write sector)と、ブロック処理完了ステップ(read close, write close)とに分けて制御する。各ステップ完了後はそのままの制御信号レベルを保持するので、次のステップまで時間間隔があってもそのままフラッシュメモリに対するコマンドを継続することができる。
【００３７】
図３（ａ）に示すデータ読出し動作における制御タイミングにおいて、／ＣＥはチップイネーブル入力を示し、／ＣＥの立ち上がりでスタンバイ状態に戻る。コマンド・アドレス印加によってチップイネーブル状態が開始され、ブロック処理完了ステップ(read close)までレベル保持される。同図において、上付線を付した信号／ＣＥ，／ＷＥ，／ＯＥはＬＯＷアクティブ信号であることを示し、ｔＡはアクセス時間を示している。／ＯＥはアウトプットイネーブル信号を示し、／ＯＥ＝Ｌレベルの間フラッシュメモリからデータが出力され、コマンド入力前は／ＯＥ＝Ｈレベル（出力ディスエーブル）状態から開始されている。
【００３８】
コマンド・アドレス印加によって制御イネーブル状態となると、バッファＲＡＭへのライトイネーブル信号／ＷＥは初期化され、フラッシュメモリから１セクタ分のデータを予め一方のバッファＲＡＭ（Ｒ１）に格納し（ＷＥ０）、次に所定時間後に、このバッファＲＡＭ（Ｒ１）に格納されたセクタのデータを読み出してホストに転送する（ＯＥ０）。これと同時的に、フラッシュメモリから次のセクタのデータを読み出してもう一方のバッファＲＡＭ（Ｒ２）に転送し格納する（ＷＥ１）。１セクタ分のデータ転送が終了すると処理は次のセクタに移行し、読出し転送セクタを順次セクタ０からセクタ４までセクタ単位毎に指定（ＳＣ）することにより、２つのバッファＲＡＭを介してホスト端末機とフラッシュメモリ間のデータの授受を行い、これをブロック単位毎に繰り返してリードコマンドを実行する。ここで、ＳＣは各セクタ毎の転送データ量を計数し転送セクタを取得するシリアルクロック入力信号を示し、リードデータはＳＣの立ち上がりでラッチされる。
【００３９】
図３（ｂ）に示すデータ書き込み動作における制御タイミングについても、図３（ａ）に示す制御タイミングとほぼ同様であり、常時／ＯＥ＝Ｈレベルの間出力ディスエーブル状態となる。write close時の“確認”は、フラッシュメモリへの書込みを行うに当たって確認コマンドを入れることを示している。その他の動作については図３（ａ）と同様であるので、ここではその説明は省略する。
【００４０】
図４は本実施例の半導体記憶装置の読出し動作についての内部動作のフローチャートを示す。先ず、ステップ＃４０１では、読出し制御の初期化によって開始ブロックアドレス（ＢＡ）と開始セクタ番号（ｉ）と転送セクタ数（ＳＣ）が取得される。ステップ＃４０２でリードコマンド・ブロックアドレス印加(read open)処理がおこなわれた後、ステップ＃４０３でリードセクタ転送（読出し）(read sector)に移行し、最初のセクタデータの読出し、バッファＲＡＭへの格納およびホスト端末への転送が行われる。ステップ＃４０４で転送セクタ数（ＳＣ）が１減算カウントされた後、ステップ＃４０５でバッファＲＡＭからホスト端末へのデータ転送中か転送完了しているかが判定される。ホスト端末へのデータ転送中の場合は、転送完了を待って（ステップ＃４０６）、転送完了の場合は、ステップ＃４０７でホスト端末へのデータ転送要求を発行し、バッファＲＡＭからホストへのデータ転送が開始される（ステップ＃４０８）。
【００４１】
次にステップ＃４０９で、転送セクタ数（ＳＣ）が０（未転送セクタなし）か否か（未転送セクタ有り）が判定され、未転送セクタなしの場合（ＳＣ＝０）は、ブロック処理完了ステップ(read close) ＃４１０に移行する。未転送セクタ有りの場合（ＳＣ＞０）は、ステップ＃４１１でバッファＲＡＭの切り替えが行われ、対象セクタ番号を１だけインクレメントして次のセクタからの読出しに移行する（ステップ＃４１２）。
【００４２】
ステップ＃４１３で対象セクタ番号（ｉ）が上限値か否か判定され、上限値以下の場合はステップ＃４０３の処理工程にもどり、上限値より大の場合は、ブロック処理完了ステップ(read close)＃４１４での処理の後、ステップ＃４１５でブロックアドレス（ＢＡ）を次のブロックに移行して対象セクタ番号（ｉ）をｉ＝０に設定し、再びステップ＃４０２からの処理工程を繰り返す。
【００４３】
ここで、本実施例ではセクタ番号（ｉ）の上限値を４（セクタ）としているが、本発明はこれに限定されるものではなく、１ブロックのセクタサイズは任意である。
【００４４】
図５は本実施例の半導体記憶装置の書き込み動作についての内部動作のフローチャートを示す。図４の読出し動作の場合と同様に、先ず、ステップ＃５０１では、書き込み制御の初期化によって開始ブロックアドレス（ＢＡ）と開始セクタ番号（ｉ）と転送セクタ数（ＳＣ）が取得される。次に、ステップ＃５０２でホストからのデータ転送要求を発行し、バッファＲＡＭへのデータ転送が開始される（ステップ＃５０３）。ステップ＃５０４でフラッシュメモリのプログラム完了待ちを行った後、ステップ＃５０５でライトコマンド・ブロックアドレス印加(write open)処理が行われる。
【００４５】
ホスト端末からのデータ転送完了を待って（ステップ＃５０６）、ステップ＃５０７で転送セクタ数（ＳＣ）が１減算カウントされた後、ステップ＃５０８で、転送セクタ数（ＳＣ）が０（未転送セクタなし）か否（未転送セクタ有り）か判定される。未転送セクタなしの場合（ＳＣ＝０）は、ステップ＃５０９のライトセクタ転送（書き込み）(write sector)に移行し、ブロック処理完了ステップ(write close) ＃５１０を経て、ステップ＃５１１でフラッシュメモリのプログラム完了待ちを行った後終了する。
【００４６】
未転送セクタ有りの場合（ＳＣ＞０）は、ステップ＃５１２でバッファＲＡＭの切り替えが行われ、ステップ＃５１３でホストからのデータ転送要求を発行し、バッファＲＡＭへのデータ転送が開始される（ステップ＃５１４）。次に、ステップ＃５１５でライトセクタ転送（書き込み）(write sector)処理を行い、対象セクタ番号を１だけインクレメントして次のセクタへの書き込みに移行する（ステップ＃５１６）。
【００４７】
ステップ＃５１７で対象セクタ番号（ｉ）が上限値か否か判定され、上限値以下の場合はステップ＃５０６の処理工程にもどり、上限値より大の場合は、ブロック処理完了ステップ(write close)＃５１８での処理の後、ステップ＃５１９でブロックアドレス（ＢＡ）を次のブロックに移行して対象セクタ番号（ｉ）をｉ＝０に設定し、再びステップ＃５０４からの処理工程を繰り返す。
【００４８】
本実施例によれば、バッファＲＡＭの容量を従来技術の複数セクタ分相当と比べて顕著に小さくできるので、低コストでの製造が可能となり、転送の並列処理ができるので、ホストからみて高速な転送が実現できる。また、フラッシュメモリに対してブロック単位で処理を行うので、高速な書き込み・読出しが可能となる。
【００４９】
（実施例２）
図６を用いて本発明の第２の実施例について説明する。図１に示す実施例１の構成と異なるところは、本実施例２では誤り訂正制御手段（ＥＣＣ）５を追加したことである。図６に示すように、セレクタＳ４と双方向バッファ３との間に誤り訂正制御手段（ＥＣＣ）５を介在接続させることにより、フラッシュメモリ２からバッファＲＡＭ（Ｒ１，Ｒ２）へのデータ読出しの際に、これと並行して誤り訂正制御手段（ＥＣＣ）５にセクタデータと誤り訂正用の冗長データが転送され、訂正可能な誤りが検出された場合にバッファＲＡＭ上のデータを訂正しておくようにする。
【００５０】
バッファＲＡＭからフラッシュメモリへのデータ書き込みの際には、これと並行して誤り訂正制御手段（ＥＣＣ）５にセクタデータを転送して冗長データを生成し、生成された冗長データをフラッシュメモリ２に転送する。誤り訂正のための冗長データは各セクタデータ毎にセクタデータの直後に格納するように構成される。なお、上記以外の要素については実施例１と共通するので、その説明についてはここでは省略する。
【００５１】
上記構成により、実施例１で得られる効果のほかに、誤り訂正により処理データの信頼性向上が図れるといった効果が得られる。
【符号の説明】
【００５２】
１  制御信号生成シーケンサ
２  フラッシュメモリ
３  双方向バッファ
４  ホストインターフェース
Ｒ１，Ｒ２  バッファＲＡＭ
Ｓ１〜Ｓ４  セレクタ
５  ＥＣＣ回路
【図１】
2011118922.tif 000003
【図２】
2011118922.tif 000004
【図３】
2011118922.tif 000005
【図４】
2011118922.tif 000006
【図５】
2011118922.tif 000007
【図６】
2011118922.tif 000008
【図７】
2011118922.tif 000009