(57)【要約】 【課題】セクタデータを連続してアクセスする外部記憶装置において、単一のエラー訂正手段によりエラー検出・訂正を行いながらメモリアクセスを高速化する。【解決手段】ホスト２がライトするセクタデータは一時ライトバッファ７に格納される。マイクロプロセッサ８は、ライトバッファに格納されたセクタデータが奇数番目のセクタデータの場合には第１のメモリ４に、偶数番目のセクタデータの場合には第２のメモリ５に格納する。ホスト２がセクタデータをリードするときには、データ切換手段１１において、第１のメモリから読み出したＮ番目のセクタデータをシステムバスに対し出力すると同時に、第２のメモリから読み出したＮ＋１番目のセクタデータ（ホストコンピュータが次にリードするセクタデータ）をエラー訂正手段に対し出力する。これにより、Ｎ＋１番目のセクタデータに対するエラー検出およびエラー訂正に要する時間を見かけ上短縮する。【選択図】図１
2010170566.tif 000002
【特許請求の範囲】
【請求項１】
外部バスを介してホストコンピュータとのインターフェースを実行するシステムインターフェース部と、前記システムインターフェース部によって前記ホストコンピュータから受信されたコマンドを解析し、当該記憶装置内で行われる動作を制御する制御手段と、データを電気的に消去・書き換え可能な不揮発性半導体メモリとを備えた記憶装置において、
前記不揮発性半導体メモリは、前記システムインターフェース部を介して前記ホストコンピュータから受信されたデータを格納し、
前記制御手段は、前記システムインターフェース部を介して前記ホストコンピュータから受信されたリードコマンドに応答して、データ処理後のデータの前記システムインターフェース部を介した前記ホストコンピュータへの転送と、前記データ処理のための次のデータの前記不揮発性半導体メモリからの転送とを並列に実行すること
を特徴とする記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、静的記憶装置を用いた、コンピュータの外部記憶装置に係わり、特に、任意バイト幅を持つセクタデータをセクタ単位に連続アクセスするときに、セクタデータのエラー検出およびエラー訂正を高速に処理するための外部記憶装置に関する。
【背景技術】
【０００２】
従来、メモリ制御における信頼性向上と高速アクセスを同時に実現する技術としては、特公平６−１０５４４３号公報に記載されているように、メモリから出力されるｘバイト幅のデータを奇数部（ｘ／２バイト幅）と偶数部（ｘ／２バイト幅）に分割して、奇数部と偶数部のそれぞれについて、エラー訂正コードを用いてエラー検出およびエラー訂正を行ない、奇数部と偶数部から出力されるｘ／２バイト幅のデータをインタリーブ制御によって、ｘ／２バイト幅のシステムバスに連続して出力する方式がある。
【０００３】
ところで、ｍバイト（例えば５１２バイト）幅を持つセクタデータに対し、エラー検出およびエラー訂正を行なうには、ｍバイト幅のセクタデータをｎバイト（例えば１バイト）単位に、ｍ／ｎ回（ｍはｎの倍数である）にわけて、エラー訂正手段に入力する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術でのエラー検出およびエラー訂正は、システムバスのバイト幅と同じバイト幅のデータに対して行うものであり、システムバスのバイト幅より大きなｍバイト幅のセクタデータに対するエラー検出およびエラー訂正を行なうものにはそのまま適用できない。しかも、上記従来技術では、奇数部と偶数部の両方に、別個のエラー訂正手段を必要としている。
【０００５】
本発明の目的は、システムバスのバイト幅よりも大きなｍバイト幅のセクタデータに対してエラー検出およびエラー訂正を行なう場合に、エラー検出およびエラー訂正に要する時間を短縮し、高速なメモリアクセスを実現する外部記憶装置を提供することにある。
【０００６】
本発明の他の目的は、単一のエラー訂正手段を用いて、エラー検出およびエラー訂正に要する時間を短縮し、高速なメモリアクセスを実現する外部記憶装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明は、
ホストコンピュータとのインタフェースを司るシステムインタフェース部と、 該システムインタフェース部と前記ホストコンピュータとを接続しているシステムバスのバス幅より大きいバイト数のデータからなるセクタデータに対してエラー検出およびエラー訂正を行うエラー訂正手段と、
それぞれ、前記システムバスのバス幅と同一のバス幅のメモリバスを有し、セクタデータを格納する静的記憶装置としての第１のメモリおよび第２のメモリと、
前記ホストコンピュータから前記第１および第２のメモリに対する、セクタデータのリードおよびライト動作を制御する制御手段とを備え、
前記制御手段は、前記ホストコンピュータからのライトコマンドに応答して、当該ライトコマンドに付随する複数のセクタデータをセクタ単位に交互に前記第１および第２のメモリに格納し、
前記制御手段は、前記ホストコンピュータからのリードコマンドに応答して、該リードコマンドで要求された複数のセクタデータのうち、１番目のセクタデータを前記第１のメモリから読み出して前記エラー訂正手段に供給し、その後、前記第１および第２のメモリの一方からＮ番目（Ｎは自然数）のセクタデータを前記システムインタフェース部へ転送する間に、他方からＮ＋１番目のセクタデータを前記エラー訂正手段に転送するように、前記第１および第２のメモリのセクタデータの読み出しを同時に行うことを特徴とする外部記憶装置を提供する。
【０００８】
この外部記憶装置において、好ましくは、選択的に、前記システムインタフェース部および前記エラー訂正手段の一方へ前記第１のメモリのメモリバスを接続するとともに、その他方へ前記第２のメモリのメモリバスを接続するデータ切り換え手段を備え、前記制御手段は、前記ホストコンピュータからのリードアクセス時に当該データ切り換え手段の切り換えを行いながら前記第１および第２のメモリのセクタデータの読み出しを行う。
【０００９】
前記ホストコンピュータから前記第１および第２のメモリへのセクタデータのライトアクセスにおいて一時的にセクタデータを格納するライトバッファを備え、該ライトバッファを介して前記第１および第２のメモリへのセクタデータの格納を行うようにしてもよい
。
【００１０】
前記第１および第２のメモリに代えて、システムバスのバス幅の２倍のバス幅のメモリバスを有しセクタデータを格納するメモリを用いてもよい。この場合には、前記制御手段は、前記ホストコンピュータからのライトコマンドに応答して、当該ライトコマンドに付随する複数のセクタデータのうち奇数番目のセクタデータを上記メモリバスの上位側のメモリに格納するとともに、偶数番目のセクタデータを上記メモリバスの下位側のメモリに格納し、前記ホストコンピュータからのリードコマンドに応答して、該リードコマンドで要求された複数のセクタデータのうち、１番目のセクタデータを前記メモリの上位側から読み出して前記エラー訂正手段に供給し、その後、前記メモリの上位側および下位側の一方からＮ番目（Ｎは自然数）のセクタデータを前記システムインタフェース部へ転送する間に、他方からＮ＋１番目のセクタデータを前記エラー訂正手段に転送するように、前記メモリの上位側および下位側のセクタデータの読み出しを同時に行う。
【００１１】
また、本発明による外部記憶装置のメモリアクセス制御方法は、
セクタデータを格納する静的記憶装置を有する外部記憶装置であって、前記静的記憶装置として、アクセス対象の連続した複数のセクタのうち奇数番目のセクタのセクタデータを格納する第１のメモリ、および、偶数番目のセクタのセクタデータを格納する第２のメモリと、セクタデータに対してエラー検出およびエラー訂正を行うエラー訂正手段とを有するものにおいて、
ホストコンピュータから前記連続した複数のセクタにライトアクセスを行う際、セクタ単位に交互に、奇数番目のセクタデータをそのエラー訂正用符号とともに前記第１のメモリに格納すると共に、偶数番目のセクタデータをそのエラー訂正用符号とともに前記第２のメモリに格納し、
前記ホストコンピュータから、前記連続した複数のセクタにリードアクセスする際、１番目のセクタデータを前記第１のメモリから読み出して前記エラー訂正手段によりエラー検出・訂正を行い、該エラー検出・訂正の済んだ１番目のセクタデータを前記第１のメモリから前記ホストコンピュータへ転送する間に２番目のセクタデータを前記第２のメモリから読み出して前記エラー訂正手段に転送し、次いで該エラー検出・訂正の済んだ２番目のセクタデータを前記第２のメモリから前記ホストコンピュータへ転送する間に３番目のセクタデータを前記第１のメモリから読み出して前記エラー訂正手段へ転送し、同様にして、エラー検出・訂正の済んだＮ番目のセクタデータを前記ホストコンピュータへ転送する間にＮ＋１番目のセクタデータを読み出して前記エラー訂正手段に転送する制御を行うことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、制御手段（例えば、マイクロプロセッサ）は、Ｎ番目のセクタデータとＮ＋１番目のセクタデータを同時に読み出すことを可能とするように、ライト対象の複数のセクタデータをメモリに格納できる。これにより、データ切り替え手段によって、Ｎ番目のセクタデータをシステムバスに出力すると同時に、Ｎ＋１番目のセクタデータをエラー訂正手段に対し出力することができる。したがって、Ｎ＋１番目のセクタデータに対するエラー検出およびエラー訂正に要する時間は、Ｎ番目のセクタデータをシステムバスに出力するときに、同時に行なうことが可能となるので、セクタデータに対するエラー検出およびエラー訂正に要する時間を見かけ上短縮することが可能となる。
【００１３】
また、エラー検出・訂正は、常にホストコンピュータに転送しているセクタデータの次のセクタデータについてのみ実行するので、エラー訂正手段は単一個用いればよい。
【図面の簡単な説明】
【００１４】
【図１】本発明の外部記憶装置のシステム構成を示すブロック図。
【図２】システムインタフェース部１３の構成を示すブロック図。
【図３】データ切り換え手段１１の構成を示すブロック図。
【図４】リードデータ選択回路１１６の真理値表を示す図表。
【図５】エラー訂正手段入力データ選択回路１１７の真理値表。
【図６】ホストコンピュータ２の動作を示すフローチャート。
【図７】マイクロプロセッサ８の動作を示すフローチャート。
【図８】マイクロプロセッサ８の動作を示すフローチャート。
【図９】マイクロプロセッサ８の動作を示すフローチャート。
【図１０】マイクロプロセッサ８の動作を示すフローチャート。
【図１１】マイクロプロセッサ８の動作を示すフローチャート。
【図１２】本発明の外部記憶装置の他の実施例のシステム構成を示すブロック図。
【図１３】データ切り換え手段９２の構成を示すブロック図。
【図１４】本発明の外部記憶装置のさらに他の実施例のシステム構成を示すブロック図。
【図１５】データ切り換え手段９３の構成を示すブロック図。
【図１６】実施例におけるライト処理の動作例を示すタイミング図。
【図１７】第１のメモリ４および第２のメモリ５の説明図。
【図１８】実施例におけるリード処理の動作例を示すタイミング図。
【図１９】図１８のタイミング図に続くタイミング図。
【図２０】本発明の外部記憶装置を内蔵したメモリカードの外観図。
【実施例】
【００１５】
以下、本発明の実施例を図面を用いて説明する。
【００１６】
図１は、本発明による外部記憶装置の一実施例のシステム構成を示すブロック図である。
【００１７】
１は、ホストコンピュータ２からのコマンドにしたがって、第１のメモリ４および第２のメモリ５に対し、セクタデータをライトまたはリードするメモリ制御装置であり、制御信号２２および外部バス３２によって、ホストコンピュータ２のコマンドを受け付ける。
【００１８】
ホストコンピュータ２は、ホストコンピュータバス３１によって、システムバス３に接続され、制御信号２２とシステムバス３を使用して、メモリ制御装置１に対し、セクタデータのライトおよびリードの動作を行なう。第１のメモリ４および第２のメモリ５は、それぞれセクタデータを格納する記憶手段であり、本実施例では、フラッシュメモリを用いる。フラッシュメモリは、予め定められたバイト数（例えば５１２バイト）のセクタ単位にデータの電気的消去・書き換えが可能な不揮発性の半導体メモリとして知られている。但し、本発明は静的記憶装置である他の書き込み可能メモリに対しても適用することが可能である。ローカルバス６は、メモリ制御装置１、ライトバッファ７そしてマイクロプロセッサ８を接続しているバスである。ライトバッファ７は、ホストコンピュータ２が、ライトしたセクタデータを一時的に格納するための記憶手段であり、ライトバッファバス６１によってローカルバス６に接続される。マイクロプロセッサ８は、マイクロプロセッサバス６２によってローカルバス６に接続され、ホストコンピュータ２がメモリ制御装置１に設定したコマンドを解析し、メモリ制御装置１が行なう動作の設定を行なう。
【００１９】
ここで、システムバス３のバス幅がＭバイトのとき、ローカルバス６のバス幅はシステムバス３と同一のＭバイトであり、第１のメモリバス１１１および第２のメモリバス１１２のバス幅もシステムバス３と同一のＭバイトである。
【００２０】
データ切り替え手段１１は、第１のメモリバス１１１および第２のメモリバス１１２からのセクタデータをＥＣＣバス１１３および内部データバス１１４に切り換える。エラー訂正手段１２は、内部データバス１１４からのセクタデータに対するエラー訂正用符号を生成し、また、ＥＣＣバス１１３からのセクタデータに対するエラー検出およびエラー訂正を行なう。システムインタフェース部１３は、制御信号２２および外部バス３２によって、ホストコンピュータ２からのメモリアクセスに対するコマンドを受け付ける。このとき、システムインタフェース部１３は、割り込み信号１３１をマイクロプロセッサ８に対し出力する。また、システムインタフェース部１３は、制御信号２２によるリード／ライトからセクタデータに対するリード信号１３２、ライト信号１３３、転送終了信号１３４およびタイミング信号１３５を生成する。
【００２１】
ホストコンピュータ２がセクタデータをライトする場合には、ライト信号１３３が出力され、ホストコンピュータ２からのセクタデータは、タイミング信号１３５のタイミングで内部データバス１１４からライトバッファ７に格納される。また、ホストコンピュータ２がセクタデータをリードする場合には、リード信号１３２が出力され、第１のメモリバス１１１または第２のメモリバス１１２のセクタデータをタイミング信号１３５のタイミングで読み出し、データ切り替え手段１１によって内部データバス１１４に切り替え、システムインタフェース部１３からホストコンピュータ２に出力する。さらに、ホストコンピュータ２にセクタデータを出力すると同時に、第１のメモリバス１１１または第２のメモリバス１１２のセクタデータをデータ切り替え手段１１でＥＣＣバス１１３に切り換え、エラー訂正手段１２において、エラー検出およびエラー訂正を行なう。
【００２２】
図１において、システムインタフェース部１３より下側に示した部分は、図２０にその外観を示すようなメモリカード内に内蔵することが可能である。
【００２３】
図２は、システムインタフェース部１３の構成を示すブロック図である。
【００２４】
データバッファ１３６は、外部バス３２からのセクタデータおよび、内部データバス１１４からのセクタデータをバッファリングする。アクセス設定レジスタ１３７には、ホストコンピュータ２からのコマンドが設定される。コマンドは、アクセスするセクタデータの先頭アドレス、アクセスの種類（リードまたはライト）およびアクセスするセクタ数を示している。ホストコンピュータ２がアクセス設定レジスタ１３７にコマンドを設定すると、アクセス設定レジスタ１３７は割り込み信号１３１を出力する。また、アクセス設定レジスタ１３７は、設定されたコマンドにより、リード信号１３２またはライト信号１３３を出力する。制御信号デコード部１３８は、制御信号２２から、転送終了信号１３４およびタイミング信号１３５を出力する。転送終了信号１３４は、一つのセクタデータに対するアクセスが終了すると出力される。タイミング信号１３５は、ホストコンピュータ２がセクタデータをリードまたはライトするときの制御信号２２から生成される。ステータスレジスタ１３９は、メモリ制御装置１の状態を示すデータを格納する。割り込み信号１３１が出力されたとき、および転送終了信号１３４が出力されたとき、ステータスレジスタ１３９はビジー状態に設定される。また、ステータスレジスタ１３９をレディー状態に設定するのは、マイクロプロセッサ８が行なう。ステータスレジスタ１３９がビジー状態であるとき、ホストコンピュータ２は、セクタデータのリードおよびライトを行なわない。
【００２５】
図３は、データ切り換え手段１１の構成を示すブロック図である。
【００２６】
データ選択設定レジスタ１１５は、マイクロプロセッサ８が設定する記憶手段であり、ＥＣＣバス１１３および内部データバス１１４に出力するデータを第１のメモリバス１１１または第２のメモリバス１１２から選択するための情報が設定される。リードデータ選択回路１１６は、データ選択設定レジスタ１１５の内容に従って、内部データバス１１４に出力するデータを第１のメモリバス１１１または第２のメモリバス１１２から選択する。エラー訂正手段入力データ選択回路１１７は、データ選択設定レジスタ１１５の内容に従って、ＥＣＣバス１１３に出力するデータを第１のメモリバス１１１または第２のメモリバス１１２から選択する。
【００２７】
図４にリードデータ選択回路１１６の真理値表を示す。データ選択設定レジスタ１１５の内容に従って、内部データバス１１４に出力するデータが、第１のメモリバス１１１または第２のメモリバス１１２から選択される。
【００２８】
図５にエラー訂正手段入力データ選択回路１１７の真理値表を示す。データ選択設定レジスタ１１５の内容に従って、ＥＣＣバス１１３に出力するデータが、第１のメモリバス１１１または第２のメモリバス１１２から選択される。
【００２９】
以下に、システムバス３のバス幅が１バイトの場合における、ホストコンピュータ２がセクタデータのリードまたはライトを行なう動作についてフローチャートを用いて説明する。
【００３０】
図６は、ホストコンピュータ２がセクタデータをリードまたはライトするときのフローチャートである。
【００３１】
まず、Ｓ００１において、システムインタフェース部１３内のアクセス設定レジスタ１３７にコマンドを設定する。このコマンドは、アクセス開始セクタのセクタ番号と、連続アクセスするセクタ数を含む。その後、ステータスレジスタ１３９を監視する（Ｓ００２）。ステータスレジスタ１３９がレディー状態に設定されると、ホストコンピュータ２は、１バイト単位にデータバッファ１３６に対し、リードまたはライトを行なう（Ｓ００３）。一つのセクタデータに対し、リードまたはライトが終了するまでＳ００３の動作を繰り返す（Ｓ００４）。全てのセクタデータに対してリードまたはライトが終了していない場合には（Ｓ０００５，Ｎｏ）、前記Ｓ００２からＳ００４までの動作を繰り返し、全てのセクタデータに対してリードまたはライトが終了すると、ホストコンピュータ２のリードまたはライト動作が終了する。
【００３２】
図７から図１１は、マイクロプロセッサ８の動作を示すフローチャートである。
【００３３】
まず、Ｓ１０１において、マイクロプロセッサ８は、ホストコンピュータ２がアクセス設定レジスタ１３７にコマンドを設定したことを示す割り込み信号１３１が出力されたことを監視する。割り込み信号１３１が出力されると、マイクロプロセッサ８は、アクセス設定レジスタ１３７を読み出し、ホストコンピュータ２が設定したコマンドを解析する（Ｓ１０２）。
【００３４】
次いで、Ｓ１０３において、アクセスの種類が「ライト」の場合にはＳ１０４を実行し、「リード」の場合には、図９に示すフローチャートの動作を実行する。
【００３５】
アクセス設定レジスタ１３７のコマンドが「ライト」を示している場合、ホストコンピュータ２がライトするセクタデータをライトバッファ７に格納するために、マイクロプロセッサ８はライトバッファ７に対し、アドレス８１を出力し（Ｓ１０４）、ステータスレジスタ１３９にレディー状態を設定する（Ｓ１０５）。
【００３６】
その後、一つのセクタデータがホストコンピュータ２からライトバッファ７に格納されると、制御信号デコード部１３８から転送終了信号１３４出力される。マイクロプロセッサ８は、Ｓ１０６において、転送終了信号１３４が出力されたことを検出すると、エラー訂正手段１２に格納されているエラー訂正用符号を読み出す（Ｓ１０７）。次いで、マイクロプロセッサ８は、図８に示すフローチャートの動作を実行する。
【００３７】
ライトバッファ７に格納されてセクタデータが２Ｎ−１番目（すなわち奇数番目）のセクタデータの場合には、第１のメモリ４に対する第１のメモリアドレス８２を出力し（Ｓ１０９）、ライトバッファ７から第１のメモリ４にセクタデータを転送し、さらに、エラー訂正用符号を第１のメモリ４に格納する（Ｓ１１０）。また、ライトバッファ７に格納されてセクタデータが２Ｎ番目（すなわち偶数番目）のセクタデータの場合には、第２のメモリ５に対する第２のメモリアドレス８３を出力し（Ｓ１１１）、ライトバッファ７から第２のメモリ５にセクタデータを転送し、さらに、エラー訂正用符号を第２のメモリ５に格納する（Ｓ１１２）。
【００３８】
図１７に、第１のメモリ４および第２のメモリ５に格納されたデータの様子を示す。図から分かるように、第１および第２のメモリの各アドレスには、１セクタ（ここでは５１２バイト）のデータとそれに対して生成されたエラー訂正用符号を格納している。本実施例におけるエラー訂正用符号は、１セクタ全体のデータに対して１つ（ここでは３バイト）の符号が付与されるものである。
【００３９】
ホストコンピュータ２から全てのセクタデータのライトが終了した場合には、マイクロプロセッサ８は、Ｓ１０１の動作から繰り返し、終了していない場合には、前記Ｓ１０４からＳ１１２までの動作を繰り返す（Ｓ１１３）。
【００４０】
アクセス設定レジスタ１３７のコマンドが「リード」を示している場合、図９に示すフローチャートの動作を実行する。
【００４１】
まず、ホストコンピュータ２が１番目にリードするセクタデータに対するエラー検出およびエラー訂正を行なう。２Ｎ−１番目のセクタデータは、第１のメモリ４に格納されているので、エラー訂正手段１２に１番目のセクタデータを入力するために、マイクロプロセッサ８は、データ選択設定レジスタ１１５に’１’を設定する（Ｓ１１４）。これにより、メモリ制御装置１では、第１のメモリ４からリードしたセクタデータをデータ切り替え手段１１において、ＥＣＣバス１１３に切り換えて出力し、第１のメモリ４からリードしたセクタデータに対するエラー検出およびエラー訂正をエラー訂正手段１２で行なう。ここで、第１のメモリ４からはセクタデータに続いて、エラー訂正用符号も出力され、エラー訂正用符号はエラー訂正手段１２に入力される。これにより、エラー訂正手段１２では、第１のメモリ４からリードしたセクタデータに対する復号が行なわれ、エラー検出ができる。また、メモリ制御装置１では、エラー訂正手段１２に対し、第１のメモリ４からリードしたセクタデータの出力が終了すると、転送終了信号１３４がマイクロプロセッサ８に出力される。マイクロプロセッサ８は、転送終了信号１３４が出力されたことを検出すると（Ｓ１１５）、エラー訂正手段１２に格納されている復号結果を読み出し（Ｓ１１６）、エラーが発生したかどうかを判定する（Ｓ１１７）。エラーが発生していた場合には、マイクロプロセッサ８は、エラー訂正手段１２に対しエラー訂正処理を起動することで、エラー位置および訂正パターンを知り、第１のメモリ４に格納されているエラーの発生したセクタデータに訂正結果を書き戻す（Ｓ１１８）。エラーが発生していない場合には、図１０のＳ１１９へ進む。
【００４２】
次いで、マイクロプロセッサ８は、図１０に示すフローチャートの動作を行なう。Ｓ１１９において、マイクロプロセッサ８は、ホストコンピュータ２に出力するセクタデータが２Ｎ−１番目であるかどうかを確認する。Ｓ１２０では、マイクロプロセッサ８は、２Ｎ−１番目のセクタデータをホストコンピュータ２に出力すると同時に、２Ｎ番目のセクタデータをエラー訂正手段１２に入力するために、データ選択設定レジスタ１１５に’０’を設定する。次のＳ１２１では、第１のメモリアドレス８２には、ホストコンピュータ２に出力するセクタデータのアドレスを、第２のメモリアドレス８３には、エラー検出およびエラー訂正を行なうセクタデータのアドレスを出力する。Ｓ１２２では、マイクロプロセッサ８は、２Ｎ番目のセクタデータをホストコンピュータ２に出力すると同時に、２Ｎ＋１番目のセクタデータをエラー訂正手段１２に入力するために、データ選択設定レジスタ１１５に’１’を設定する。Ｓ１２３では、第１のメモリアドレス８２には、エラー検出およびエラー訂正を行なうセクタデータのアドレスを、第２のメモリアドレス８３には、ホストコンピュータ２に出力するセクタデータのアドレスを出力する。その後、マイクロプロセッサ８は、ステータスレジスタ１３９をレディー状態に設定する（Ｓ１２４）。
【００４３】
ステータスレジスタ１３９がレディー状態に設定されたことにより、ホストコンピュータ２はメモリ制御装置１に対しセクタデータのリードを行なう。Ｓ１２５では、転送終了信号１３４が出力されたかどうかを判定している。一つのセクタデータに対するリードが終了すると、メモリ制御装置１の制御信号デコード部１３８から転送終了信号１３４が出力される。転送終了信号１３４が出力されたことにより、マイクロプロセッサ８はエラー訂正手段１２に格納されている復号結果を読み出し（Ｓ１２６）、エラーが発生したかどうかを判定する（図１１のＳ１２７）。エラーが発生していた場合には、マイクロプロセッサ８は、エラー訂正手段１２に対しエラー訂正処理を起動することで、エラー位置および訂正パターンを知り、第１のメモリ４または第２のメモリ５に格納されているエラーの発生したセクタデータに訂正結果を書き戻す（Ｓ１２８）。発生していない場合には、Ｓ１２９へ進む。
【００４４】
ホストコンピュータ２が全てのセクタデータのリードを終了した場合には、マイクロプロセッサ８はＳ１０１の動作から繰り返し、終了していない場合には、前記Ｓ１１９からＳ１２８までの動作を繰り返す（Ｓ１２９）。
【００４５】
次に、図１６、図１８および図１９に示したタイミング図により、図１の装置の具体的な処理例を説明する。
【００４６】
図１６は、ホストコンピュータ２からメモリ４、５へセクタデータを書き込むライト動作を示す。時点ｔ０で、ホストコンピュータ２からアクセス設定レジスタ１３７にライトコマンドを設定すると、時点ｔ１で割り込み信号１３１が発生し、マイクロプロセッサ８に割り込みをかける。時点ｔ１で、ステータスレジスタ１３９はビジー信号を発生する。その後、時点ｔ２で、ステータスレジスタ１３９がレディー信号を発生し、マイクロプロセッサ８がライトバッファ７に対してアドレス８１を発生する。時点ｔ３以降、ライトバッファ７の指定されたアドレス位置に、タイミング信号１３５にしたがって５１２バイトのデータ１〜５１２が１バイトずつ順次書き込まれる。また、タイミング信号１３５にしたがって、内部データバス１１４から５１２バイトのデータ１〜５１２が、エラー訂正手段１２に入力され、エラー訂正手段１２では、エラー訂正用符号を生成する。時点ｔ４で最後のデータ５１２が書き込まれると、時点ｔ５で転送終了信号１３４が出力される。その後、このようにしてライトバッファ７に格納されたセクタデータは、図８で説明したように、第１または第２のメモリ４、５に書き込まれる。メモリ４、５への格納結果は、図１７に示すようになる。
【００４７】
図１８、図１９は、ホストコンピュータ２からメモリ４、５のセクタデータを読み出すリード動作を示す。まず、図１８において、時点ｔ６でホストコンピュータ２からアクセス設定レジスタ１３７にリードコマンドを設定すると、次の時点ｔ７で割り込み信号１３１が発生し、マイクロプロセッサ８に割り込みをかける。ここでは、アドレス「１００」以降の複数のセクタのデータを連続して読み出すものとする。時点ｔ８で、読み出すべき１番目のセクタのアドレス「１００」を第１のメモリアドレス８２に与え、時点ｔ８以降、第１のメモリバス１１１から５１２バイトのデータおよび付随する３バイトのエラー訂正用符号を、タイミング信号１３５にしたがって順次１バイトずつ読み出す。これらのデータは、そのままＥＣＣバス１１３に出力されエラー訂正手段１２に入力される。
【００４８】
次に、図１９に移り、エラーチェックの終了した１番目のセクタのデータを今度は内部データバス１１４へ（すなわちホストコンピュータ２側へ）出力するために、データ切り替え手段１１の切り替え状態を反転し、時点ｔ９で第１のメモリアドレス８２のアドレスは「１００」のままとし、第２のメモリアドレス８３のアドレスを「１０１」とする。時点ｔ１０以降、再度第１のメモリ４からアドレス「１００」のセクタデータを読み出す。このセクタデータは内部データバス１１４側に出力される。これと並行して、第２のメモリ５のアドレス「１０１」から２番目のセクタの５１２バイトのデータおよび付随する３バイトのエラー訂正用符号を順次１バイトずつ読み出し、これをエラー訂正手段１２につながるＥＣＣバス１１３に出力する。両セクタデータの読み出しが終了した後、時点ｔ１１で今度は、エラーチェックの終了した第２のメモリ５のアドレス「１０１」を第１のメモリ４のメモリアドレス８２に出力するとともに、第２のメモリアドレスはアドレス「１０１」のままとする。データ切り替え手段１１の切り替え状態を反転する。これにより、時点ｔ１２以降、アドレス「１０１」のセクタデータを内部データバス１１４に出力すると同時に、次のセクタであるアドレス「１０２」のセクタデータをＥＣＣバス１１３側へ出力する。
【００４９】
このようにして、連続したセクタのデータのリード時に、内部データバス１１４には連続的にセクタデータが得られ、その結果、ホストコンピュータ２からは、エラー訂正手段１２によるエラーチェック処理の時間が存在しないようにみえる。
【００５０】
以上説明したように、本実施例によれば、マイクロプロセッサ８は、ライトバッファ７に格納された奇数番目のセクタデータを第１のメモリ４に、偶数番目のセクタデータを第２のメモリ５に格納することにより、ホストコンピュータ２がＮ番目のセクタデータをリードすると同時に、Ｎ＋１番目のセクタデータをエラー訂正手段１２に対し出力することができるので、Ｎ＋１番目のセクタデータに対するエラー検出およびエラー訂正に要する時間を見かけ上短縮することができる。
【００５１】
図１２は、本発明による外部記憶装置のシステム構成を示すブロック図の他の実施例である。
【００５２】
メモリ９、メモリバス９１、データ切り替え手段９２以外は、図１と同一の構成であり、同一の動作を行なう。メモリ９は、図１の第１のメモリ４および第２のメモリ５の持つバス幅の２倍のバス幅を持ち、メモリバス９１によって、メモリ制御装置１のデータ切り替え手段９２とローカルバス６に接続される。データ切り替え手段９２は、メモリバス９１からの上位データと下位データを内部データバス１１４およびＥＣＣバス１１３に切り換える。
【００５３】
図１３は、データ切り替え手段９２の構成を示すブロック図である。
【００５４】
データ選択設定レジスタ１１５、リードデータ選択回路１１６、エラー訂正手段入力データ選択回路１１７は、図３のブロック図に示すものと同一の動作を行なう。メモリバス９１からのデータは、上位データ９１１と下位データ９１２として、リードデータ選択レジスタ１１６およびエラー訂正手段入力データ選択回路１１７に入力される。リードデータ選択レジスタ１１６では、データ選択設定レジスタ１１５の内容に従って、内部データバス１１４に上位データ９１１または下位データ９１２を出力する。同様に、エラー訂正手段入力データ選択回路１１７においても、ＥＣＣバス１１３に上位データ９１１または下位データ９１２を出力する。
【００５５】
つまり、システムバス３の２倍のバス幅を持つメモリ９に対しても、マイクロプロセッサ８は、ライトバッファ７に格納されている２Ｎ−１番目のセクタデータを同一メモリバス上の上位に、２Ｎ番目のセクタデータを下位に格納することで、ホストコンピュータ２がＮ番目のセクタデータをリードすると同時に、Ｎ＋１番目のセクタデータをエラー訂正手段１２に対し出力することができるので、Ｎ＋１番目のセクタデータに対するエラー検出およびエラー訂正に要する時間を見かけ上短縮することができる。
【００５６】
図１４は、本発明による外部記憶装置のシステム構成を示すブロック図の他の実施例である。
【００５７】
図１４では、図１のブロック図に示されているライトバッファ７を使用しない構成である。つまり、ホストコンピュータ２がライトするセクタデータは、ライトバッファに一時的に格納されるのではく、直接第１のメモリ４または第２のメモリ５に書き込まれる。そこで、データ切り替え手段９３では、ホストコンピュータ２がセクタデータをライトする場合に、内部データバス１１４からデータを第１のメモリバス１１１または第２のメモリバス１１２に切り換えて出力する。
【００５８】
図１５は、データ切り替え手段９３の構成を示すブロック図である。
【００５９】
データ選択設定レジスタ１１５、リードデータ選択回路１１６、エラー訂正手段入力データ選択回路１１７は、図３のブロック図に示すものと同一の動作を行なう。ライトデータ選択回路１１８は、データ選択設定レジスタ１１５の内容に従って、内部データバス１１４のセクタデータを第１のメモリバス１１１または第２のメモリバス１１２に切り換えて出力する。データ選択設定レジスタ１１５が’０’のとき、内部データバス１１４のセクタデータを第１のメモリバス１１１に出力し、データ選択設定レジスタ１１５が’１’のとき、内部データバス１１４のセクタデータを第２のメモリバス１１２に出力する。
【００６０】
つまり、データ切り替え手段１１のライトデータ選択回路１１８は、２Ｎ−１番目のセクタデータを第１のメモリバス１１１に、２Ｎ番目のセクタデータを第２のメモリバス１１２に出力することで、第１のメモリ４には２Ｎ−１番目のセクタデータ、第２のメモリ５には２Ｎ番目のセクタデータが格納される。これにより、ホストコンピュータ２がＮ番目のセクタデータをリードすると同時に、Ｎ＋１番目のセクタデータをエラー訂正手段１２に対し出力することができるので、Ｎ＋１番目のセクタデータに対するエラー検出およびエラー訂正に要する時間を見かけ上短縮することができる。
【００６１】
以上説明したように、本発明によれば、ホストコンピュータが任意のバイト幅を持つセクタデータをライトするときには、複数（１以上）のメモリから構成される第１のメモリには２Ｎ−１番目のセクタデータを、第２のメモリには２Ｎ番目のセクタデータを格納できる。これにより、ホストコンピュータがセクタデータをリードするときには、第１のメモリから読み出した２Ｎ＋１番目のセクタデータをホストコンピュータに出力すると同時に、第２のメモリから読み出した２Ｎ番目のセクタデータ（次にホストコンピュータがリードするセクタデータ）をエラー訂正手段においてエラー検出およびエラー訂正を行なうことが可能となる。また、第２のメモリから読み出した２Ｎ番目のセクタデータをホストコンピュータに出力すると同時に、第１のメモリから読み出した２Ｎ−１番目のセクタデータ（次にホストコンピュータがリードするセクタデータ）をエラー訂正手段においてエラー検出およびエラー訂正を行なうことが可能となる。したがって、ホストコンピュータがセクタデータのリードを行なうと同時に、次にホストコンピュータがリードするセクタデータに対するエラー検出およびエラー訂正を行なうことで、エラー検出およびエラー訂正に要する時間を見かけ上短縮するが可能となり、メモリアクセスの高速化を図ることができる。
【００６２】
さらに、システムバスの２倍のバス幅を持つメモリバスに接続されるメモリに対しても、メモリバスの上位側に２Ｎ−１番目のセクタデータを、下位側に２Ｎ番目のセクタデータを格納する。これにより、メモリバスの上位側に格納されている２Ｎ−１番目のセクタデータと２Ｎ番目のセクタデータを同時に読み出すことが可能となり、ホストコンピュータがセクタデータのリードを行なうと同時に、次にホストコンピュータがリードするセクタデータに対するエラー検出およびエラー訂正を行なうことで、エラー検出およびエラー訂正に要する時間を見かけ上短縮するが可能となり、メモリアクセスの高速化を図ることができる。
【００６３】
以下に、本発明の実施態様を列挙する。
【００６４】
１．外部バスを介してホストコンピュータとのインターフェースを実行するシステムインターフェース部と、前記システムインターフェース部によって前記ホストコンピュータから受信されたコマンドを解析し、当該記憶装置内で行われる動作を制御する制御手段と、データを電気的に消去・書き換え可能な不揮発性半導体メモリとを備えた記憶装置において、
前記不揮発性半導体メモリは、前記システムインターフェース部を介して前記ホストコンピュータから受信されたデータを格納し、
前記制御手段は、前記システムインターフェース部を介して前記ホストコンピュータから受信されたリードコマンドに応答して、データ処理後のデータの前記システムインターフェース部を介した前記ホストコンピュータへの転送と、前記データ処理のための次のデータの前記不揮発性半導体メモリからの転送とを並列に実行すること
を特徴とする記憶装置。
【００６５】
２．前記データ処理後のデータの前記システムインターフェース部を介した前記ホストコンピュータへの転送と、前記データ処理のための次のデータの前記不揮発性半導体メモリからの転送との並列動作は、２つの前記不揮発性半導体メモリを用いて実行されること
を特徴とする前項１に記載された記憶装置。
【００６６】
３．前記システムインターフェース部を介して前記ホストコンピュータから受信されたリードコマンドに応答して、前記２つの不揮発性半導体メモリの一方は、前記データ処理後のデータを発生し、前記２つの不揮発性半導体メモリの他方は、前記データ処理のための次のデータを発生すること
を特徴とする前項２に記載された記憶装置。
【００６７】
４．前記不揮発性半導体メモリは、フラッシュメモリであること
を特徴とする前項２又は３に記載された記憶装置。
【００６８】
５．前記２つの不揮発性半導体メモリの一方は、第１のメモリバスを介して前記制御手段に接続され、
前記２つの不揮発性半導体メモリの他方は、第２のメモリバスを介して前記制御手段に接続され、
前記データ処理後のデータの前記システムインターフェース部を介した前記ホストコンピュータへの転送の間に、前記データ処理後のデータが前記システムインターフェース部を介して前記ホストコンピュータへ転送されると共に前記データ処理のための次のデータが前記第２のメモリバスを介して前記２つの不揮発性半導体メモリの他方から転送され、
前記データ処理のための次のデータの前記不揮発性半導体メモリからの転送の間に、前記データ処理後の次のデータが前記システムインターフェース部を介して前記ホストコンピュータへ転送されると共に前記データ処理のためのさらに次のデータが前記第１のメモリバスを介して前記２つの不揮発性半導体メモリの一方から転送されること
を特徴とする前項２〜４の何れかに記載された記憶装置。
【００６９】
６．外部バスを介してホストコンピュータとのインターフェースを実行するシステムインターフェース部と、前記システムインターフェース部によって前記ホストコンピュータから受信されたコマンドを解析し、当該記憶装置内で行われる動作を制御する制御手段と、データを電気的に消去・書き換え可能な不揮発性半導体メモリとを備えた記憶装置において、
前記不揮発性半導体メモリは、前記システムインターフェース部を介して前記ホストコンピュータから受信されたデータを格納し、
前記制御手段は、前記システムインターフェース部を介して前記ホストコンピュータから受信されたリードコマンドに応答して、エラー検出・訂正後のデータの前記システムインターフェース部を介した前記ホストコンピュータへの転送と、前記エラー検出・訂正のための次のデータの前記不揮発性半導体メモリからの転送とを並列に実行すること
を特徴とする記憶装置。
【００７０】
７．前記エラー検出・訂正後のデータの前記システムインターフェース部を介した前記ホストコンピュータへの転送と、前記エラー検出・訂正のための次のデータの前記不揮発性半導体メモリからの転送との並列動作は、２つの前記不揮発性半導体メモリを用いて実行されること
を特徴とする前項６に記載された記憶装置。
【００７１】
８．前記システムインターフェース部を介して前記ホストコンピュータから受信されたリードコマンドに応答して、前記２つの不揮発性半導体メモリの一方は、前記エラー検出・訂正後のデータを発生し、前記２つの不揮発性半導体メモリの他方は、前記エラー検出・訂正のための次のデータを発生すること
を特徴とする前項７に記載された記憶装置。
【００７２】
９．前記不揮発性半導体メモリは、フラッシュメモリであること
を特徴とする前項７又は８に記載された記憶装置。
【００７３】
１０．前記２つの不揮発性半導体メモリの一方は、第１のメモリバスを介して前記制御手段に接続され、
前記２つの不揮発性半導体メモリの他方は、第２のメモリバスを介して前記制御手段に接続され、
前記エラー検出・訂正後のデータの前記システムインターフェース部を介した前記ホストコンピュータへの転送の問に、前記エラー検出・訂正後のデータが前記システムインターフェース部を介して前記ホストコンピュータへ転送されると共に前記エラー検出・訂正のための次のデータが前記第２のメモリバスを介して前記２つの不揮発性半導体メモリの他方から転送され、
前記エラー検出・訂正のための次のデータの前記不揮発性半導体メモリからの転送の間に、前記エラー検出・訂正後の次のデータが前記システムインターフェース部を介して前記ホストコンピュータへ転送されると共に前記エラー検出・訂正のためのさらに次のデータが前記第１のメモリバスを介して前記２つの不揮発性半導体メモリの一方から転送されること
を特徴とする前項７〜９の何れかに記載された記憶装置。
【００７４】
１１．外部バスを介してホストコンピュータとのインターフェースを実行するシステムインターフェース部と、前記ホストコンピュータからのデータのリード動作及びライト動作を制御する制御手段と、データのエラー検出・訂正を行うエラー訂正手段と、データを電気的に消去・書き換え可能な不揮発性半導体メモリとを備えた記憶装置において、
前記不揮発性半導体メモリは、前記システムインターフェース部を介して前記ホストコンピュータから受信されたセクタデータを格納し、
前記制御手段は、前記ホストコンピュータから、連続した複数のセクタデータにリードアクセスする際、第Ｎ番目のセクタデータを前記不揮発性半導体メモリから読み出して前記エラー訂正手段によりエラー検出・訂正を行い、前記エラー検出・訂正後の第N番目のセクタデータを前記ホストコンピュータへ転送している間に、第(Ｎ+１)番目のセクタデータを前記不揮発性半導体メモリから読み出して前記エラー訂正手段に転送する制御を行うこと
を特徴とする記憶装置。
【００７５】
１２．前記エラー訂正手段は、前記エラー検出・訂正後の第N番目のセクタデータを前記ホストコンピュータへ転送している間に、前記不揮発性半導体メモリから読み出された前記第(Ｎ+１)番目のセクタデータのエラー検出・訂正を行うこと
を特徴とする前項１１に記載された記憶装置。
【００７６】
１３．前記セクタデータのサイズは、５１２バイトであること
を特徴とする前項１１又は１２に記載された記憶装置。
【００７７】
１４．前記制御手段は、前記ホストコンピュータから、連続した複数のセクタデータにリードアクセスする際、該リードアクセスで要求された複数のセクタデータのうち、第１番目のセクタデータを前記不揮発性半導体メモリから読み出して前記エラー訂正手段に供給し、その後、第Ｎ番目のセクタデータを前記不揮発性半導体のメモリのうちの１つから読み出して前記エラー訂正手段によりエラー検出・訂正を行い、前記エラー検出・訂正後の第Ｎ番目のセクタデータを前記ホストコンピュータへ転送している間に、第（Ｎ＋１）番目のセクタデータを前記不揮発性半導体メモリのうちの他の１つのメモリから読み出して前記エラー訂正手段に転送する制御を行うこと
を特徴とする前項１１〜１３の何れかに記載された記憶装置。
【符号の説明】
【００７８】
１・・・メモリ制御装置
２・・・ホストコンピュータ
３・・・システムバス
４・・・第１のメモリ、
５・・・第２のメモリ
６・・・ローカルバス
７・・・ライトバッファ
８・・・マイクロプロセッサ、
９・・・メモリ
１１・・・データ切り替え手段
１２・・・エラー訂正手段
１３・・・システムインタフェース部、
２２・・・制御信号
３１・・・ホストコンピュータバス
３２・・・外部バス
６１・・・ライトバッファバス
６２・・・マイクロプロセッサバス
８１・・・ライトバッファアドレス
８２・・・第１のメモリアドレス
８３・・・第２のメモリアドレス
８４・・・メモリアドレス
９１・・・メモリバス
９２・・・データ切り替え手段
９３・・・データ切り替え手段
１１１・・・第１のメモリバス
１１２・・・第２のメモリバス
１１３・・・ＥＣＣバス
１１４・・・内部データバス
１１５・・・データ選択設定レジスタ
１１６・・・リードデータ選択回路
１１７・・・エラー訂正手段入力データ選択回路
１３１・・・割り込み信号
１３２・・・リード信号
１３３・・・ライト信号
１３４・・・転送終了信号
１３５・・・タイミング信号
１３６・・・データバッファ
１３７・・・アクセス設定レジスタ
１３８・・・制御信号デコード部
１３９・・・ステータスレジスタ
９１１・・・メモリバス９１の上位データ
９１２・・・メモリバス９１の下位データ
【図１】
2010170566.tif 000003
【図２】
2010170566.tif 000004
【図３】
2010170566.tif 000005
【図４】
2010170566.tif 000006
【図５】
2010170566.tif 000007
【図６】
2010170566.tif 000008
【図７】
2010170566.tif 000009
【図８】
2010170566.tif 000010
【図９】
2010170566.tif 000011
【図１０】
2010170566.tif 000012
【図１１】
2010170566.tif 000013
【図１２】
2010170566.tif 000014
【図１３】
2010170566.tif 000015
【図１４】
2010170566.tif 000016
【図１５】
2010170566.tif 000017
【図１６】
2010170566.tif 000018
【図１７】
2010170566.tif 000019
【図１８】
2010170566.tif 000020
【図１９】
2010170566.tif 000021
【図２０】
2010170566.tif 000022