説明

外部記憶装置およびそのメモリアクセス制御方法

【課題】セクタデータを連続してアクセスする外部記憶装置において、単一のエラー訂正手段によりエラー検出・訂正を行いながらメモリアクセスを高速化する。
【解決手段】ホスト2がライトするセクタデータは一時ライトバッファ7に格納される。マイクロプロセッサ8は、ライトバッファに格納されたセクタデータが奇数番目のセクタデータの場合には第1のメモリ4に、偶数番目のセクタデータの場合には第2のメモリ5に格納する。ホスト2がセクタデータをリードするときには、データ切換手段11において、第1のメモリから読み出したN番目のセクタデータをシステムバスに対し出力すると同時に、第2のメモリから読み出したN+1番目のセクタデータ(ホストコンピュータが次にリードするセクタデータ)をエラー訂正手段に対し出力する。これにより、N+1番目のセクタデータに対するエラー検出およびエラー訂正に要する時間を見かけ上短縮する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、静的記憶装置を用いた、コンピュータの外部記憶装置に係わり、特に、任意バイト幅を持つセクタデータをセクタ単位に連続アクセスするときに、セクタデータのエラー検出およびエラー訂正を高速に処理するための外部記憶装置に関する。
【背景技術】
【0002】
従来、メモリ制御における信頼性向上と高速アクセスを同時に実現する技術としては、特公平6−105443号公報に記載されているように、メモリから出力されるxバイト幅のデータを奇数部(x/2バイト幅)と偶数部(x/2バイト幅)に分割して、奇数部と偶数部のそれぞれについて、エラー訂正コードを用いてエラー検出およびエラー訂正を行ない、奇数部と偶数部から出力されるx/2バイト幅のデータをインタリーブ制御によって、x/2バイト幅のシステムバスに連続して出力する方式がある。
【0003】
ところで、mバイト(例えば512バイト)幅を持つセクタデータに対し、エラー検出およびエラー訂正を行なうには、mバイト幅のセクタデータをnバイト(例えば1バイト)単位に、m/n回(mはnの倍数である)にわけて、エラー訂正手段に入力する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来技術でのエラー検出およびエラー訂正は、システムバスのバイト幅と同じバイト幅のデータに対して行うものであり、システムバスのバイト幅より大きなmバイト幅のセクタデータに対するエラー検出およびエラー訂正を行なうものにはそのまま適用できない。しかも、上記従来技術では、奇数部と偶数部の両方に、別個のエラー訂正手段を必要としている。
【0005】
本発明の目的は、システムバスのバイト幅よりも大きなmバイト幅のセクタデータに対してエラー検出およびエラー訂正を行なう場合に、エラー検出およびエラー訂正に要する時間を短縮し、高速なメモリアクセスを実現する外部記憶装置を提供することにある。
【0006】
本発明の他の目的は、単一のエラー訂正手段を用いて、エラー検出およびエラー訂正に要する時間を短縮し、高速なメモリアクセスを実現する外部記憶装置を提供することにある。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明は、
ホストコンピュータとのインタフェースを司るシステムインタフェース部と、 該システムインタフェース部と前記ホストコンピュータとを接続しているシステムバスのバス幅より大きいバイト数のデータからなるセクタデータに対してエラー検出およびエラー訂正を行うエラー訂正手段と、
それぞれ、前記システムバスのバス幅と同一のバス幅のメモリバスを有し、セクタデータを格納する静的記憶装置としての第1のメモリおよび第2のメモリと、
前記ホストコンピュータから前記第1および第2のメモリに対する、セクタデータのリードおよびライト動作を制御する制御手段とを備え、
前記制御手段は、前記ホストコンピュータからのライトコマンドに応答して、当該ライトコマンドに付随する複数のセクタデータをセクタ単位に交互に前記第1および第2のメモリに格納し、
前記制御手段は、前記ホストコンピュータからのリードコマンドに応答して、該リードコマンドで要求された複数のセクタデータのうち、1番目のセクタデータを前記第1のメモリから読み出して前記エラー訂正手段に供給し、その後、前記第1および第2のメモリの一方からN番目(Nは自然数)のセクタデータを前記システムインタフェース部へ転送する間に、他方からN+1番目のセクタデータを前記エラー訂正手段に転送するように、前記第1および第2のメモリのセクタデータの読み出しを同時に行うことを特徴とする外部記憶装置を提供する。
【0008】
この外部記憶装置において、好ましくは、選択的に、前記システムインタフェース部および前記エラー訂正手段の一方へ前記第1のメモリのメモリバスを接続するとともに、その他方へ前記第2のメモリのメモリバスを接続するデータ切り換え手段を備え、前記制御手段は、前記ホストコンピュータからのリードアクセス時に当該データ切り換え手段の切り換えを行いながら前記第1および第2のメモリのセクタデータの読み出しを行う。
【0009】
前記ホストコンピュータから前記第1および第2のメモリへのセクタデータのライトアクセスにおいて一時的にセクタデータを格納するライトバッファを備え、該ライトバッファを介して前記第1および第2のメモリへのセクタデータの格納を行うようにしてもよい

【0010】
前記第1および第2のメモリに代えて、システムバスのバス幅の2倍のバス幅のメモリバスを有しセクタデータを格納するメモリを用いてもよい。この場合には、前記制御手段は、前記ホストコンピュータからのライトコマンドに応答して、当該ライトコマンドに付随する複数のセクタデータのうち奇数番目のセクタデータを上記メモリバスの上位側のメモリに格納するとともに、偶数番目のセクタデータを上記メモリバスの下位側のメモリに格納し、前記ホストコンピュータからのリードコマンドに応答して、該リードコマンドで要求された複数のセクタデータのうち、1番目のセクタデータを前記メモリの上位側から読み出して前記エラー訂正手段に供給し、その後、前記メモリの上位側および下位側の一方からN番目(Nは自然数)のセクタデータを前記システムインタフェース部へ転送する間に、他方からN+1番目のセクタデータを前記エラー訂正手段に転送するように、前記メモリの上位側および下位側のセクタデータの読み出しを同時に行う。
【0011】
また、本発明による外部記憶装置のメモリアクセス制御方法は、
セクタデータを格納する静的記憶装置を有する外部記憶装置であって、前記静的記憶装置として、アクセス対象の連続した複数のセクタのうち奇数番目のセクタのセクタデータを格納する第1のメモリ、および、偶数番目のセクタのセクタデータを格納する第2のメモリと、セクタデータに対してエラー検出およびエラー訂正を行うエラー訂正手段とを有するものにおいて、
ホストコンピュータから前記連続した複数のセクタにライトアクセスを行う際、セクタ単位に交互に、奇数番目のセクタデータをそのエラー訂正用符号とともに前記第1のメモリに格納すると共に、偶数番目のセクタデータをそのエラー訂正用符号とともに前記第2のメモリに格納し、
前記ホストコンピュータから、前記連続した複数のセクタにリードアクセスする際、1番目のセクタデータを前記第1のメモリから読み出して前記エラー訂正手段によりエラー検出・訂正を行い、該エラー検出・訂正の済んだ1番目のセクタデータを前記第1のメモリから前記ホストコンピュータへ転送する間に2番目のセクタデータを前記第2のメモリから読み出して前記エラー訂正手段に転送し、次いで該エラー検出・訂正の済んだ2番目のセクタデータを前記第2のメモリから前記ホストコンピュータへ転送する間に3番目のセクタデータを前記第1のメモリから読み出して前記エラー訂正手段へ転送し、同様にして、エラー検出・訂正の済んだN番目のセクタデータを前記ホストコンピュータへ転送する間にN+1番目のセクタデータを読み出して前記エラー訂正手段に転送する制御を行うことを特徴とする。
【発明の効果】
【0012】
本発明によれば、制御手段(例えば、マイクロプロセッサ)は、N番目のセクタデータとN+1番目のセクタデータを同時に読み出すことを可能とするように、ライト対象の複数のセクタデータをメモリに格納できる。これにより、データ切り替え手段によって、N番目のセクタデータをシステムバスに出力すると同時に、N+1番目のセクタデータをエラー訂正手段に対し出力することができる。したがって、N+1番目のセクタデータに対するエラー検出およびエラー訂正に要する時間は、N番目のセクタデータをシステムバスに出力するときに、同時に行なうことが可能となるので、セクタデータに対するエラー検出およびエラー訂正に要する時間を見かけ上短縮することが可能となる。
【0013】
また、エラー検出・訂正は、常にホストコンピュータに転送しているセクタデータの次のセクタデータについてのみ実行するので、エラー訂正手段は単一個用いればよい。
【図面の簡単な説明】
【0014】
【図1】本発明の外部記憶装置のシステム構成を示すブロック図。
【図2】システムインタフェース部13の構成を示すブロック図。
【図3】データ切り換え手段11の構成を示すブロック図。
【図4】リードデータ選択回路116の真理値表を示す図表。
【図5】エラー訂正手段入力データ選択回路117の真理値表。
【図6】ホストコンピュータ2の動作を示すフローチャート。
【図7】マイクロプロセッサ8の動作を示すフローチャート。
【図8】マイクロプロセッサ8の動作を示すフローチャート。
【図9】マイクロプロセッサ8の動作を示すフローチャート。
【図10】マイクロプロセッサ8の動作を示すフローチャート。
【図11】マイクロプロセッサ8の動作を示すフローチャート。
【図12】本発明の外部記憶装置の他の実施例のシステム構成を示すブロック図。
【図13】データ切り換え手段92の構成を示すブロック図。
【図14】本発明の外部記憶装置のさらに他の実施例のシステム構成を示すブロック図。
【図15】データ切り換え手段93の構成を示すブロック図。
【図16】実施例におけるライト処理の動作例を示すタイミング図。
【図17】第1のメモリ4および第2のメモリ5の説明図。
【図18】実施例におけるリード処理の動作例を示すタイミング図。
【図19】図18のタイミング図に続くタイミング図。
【図20】本発明の外部記憶装置を内蔵したメモリカードの外観図。
【実施例】
【0015】
以下、本発明の実施例を図面を用いて説明する。
【0016】
図1は、本発明による外部記憶装置の一実施例のシステム構成を示すブロック図である。
【0017】
1は、ホストコンピュータ2からのコマンドにしたがって、第1のメモリ4および第2のメモリ5に対し、セクタデータをライトまたはリードするメモリ制御装置であり、制御信号22および外部バス32によって、ホストコンピュータ2のコマンドを受け付ける。
【0018】
ホストコンピュータ2は、ホストコンピュータバス31によって、システムバス3に接続され、制御信号22とシステムバス3を使用して、メモリ制御装置1に対し、セクタデータのライトおよびリードの動作を行なう。第1のメモリ4および第2のメモリ5は、それぞれセクタデータを格納する記憶手段であり、本実施例では、フラッシュメモリを用いる。フラッシュメモリは、予め定められたバイト数(例えば512バイト)のセクタ単位にデータの電気的消去・書き換えが可能な不揮発性の半導体メモリとして知られている。但し、本発明は静的記憶装置である他の書き込み可能メモリに対しても適用することが可能である。ローカルバス6は、メモリ制御装置1、ライトバッファ7そしてマイクロプロセッサ8を接続しているバスである。ライトバッファ7は、ホストコンピュータ2が、ライトしたセクタデータを一時的に格納するための記憶手段であり、ライトバッファバス61によってローカルバス6に接続される。マイクロプロセッサ8は、マイクロプロセッサバス62によってローカルバス6に接続され、ホストコンピュータ2がメモリ制御装置1に設定したコマンドを解析し、メモリ制御装置1が行なう動作の設定を行なう。
【0019】
ここで、システムバス3のバス幅がMバイトのとき、ローカルバス6のバス幅はシステムバス3と同一のMバイトであり、第1のメモリバス111および第2のメモリバス112のバス幅もシステムバス3と同一のMバイトである。
【0020】
データ切り替え手段11は、第1のメモリバス111および第2のメモリバス112からのセクタデータをECCバス113および内部データバス114に切り換える。エラー訂正手段12は、内部データバス114からのセクタデータに対するエラー訂正用符号を生成し、また、ECCバス113からのセクタデータに対するエラー検出およびエラー訂正を行なう。システムインタフェース部13は、制御信号22および外部バス32によって、ホストコンピュータ2からのメモリアクセスに対するコマンドを受け付ける。このとき、システムインタフェース部13は、割り込み信号131をマイクロプロセッサ8に対し出力する。また、システムインタフェース部13は、制御信号22によるリード/ライトからセクタデータに対するリード信号132、ライト信号133、転送終了信号134およびタイミング信号135を生成する。
【0021】
ホストコンピュータ2がセクタデータをライトする場合には、ライト信号133が出力され、ホストコンピュータ2からのセクタデータは、タイミング信号135のタイミングで内部データバス114からライトバッファ7に格納される。また、ホストコンピュータ2がセクタデータをリードする場合には、リード信号132が出力され、第1のメモリバス111または第2のメモリバス112のセクタデータをタイミング信号135のタイミングで読み出し、データ切り替え手段11によって内部データバス114に切り替え、システムインタフェース部13からホストコンピュータ2に出力する。さらに、ホストコンピュータ2にセクタデータを出力すると同時に、第1のメモリバス111または第2のメモリバス112のセクタデータをデータ切り替え手段11でECCバス113に切り換え、エラー訂正手段12において、エラー検出およびエラー訂正を行なう。
【0022】
図1において、システムインタフェース部13より下側に示した部分は、図20にその外観を示すようなメモリカード内に内蔵することが可能である。
【0023】
図2は、システムインタフェース部13の構成を示すブロック図である。
【0024】
データバッファ136は、外部バス32からのセクタデータおよび、内部データバス114からのセクタデータをバッファリングする。アクセス設定レジスタ137には、ホストコンピュータ2からのコマンドが設定される。コマンドは、アクセスするセクタデータの先頭アドレス、アクセスの種類(リードまたはライト)およびアクセスするセクタ数を示している。ホストコンピュータ2がアクセス設定レジスタ137にコマンドを設定すると、アクセス設定レジスタ137は割り込み信号131を出力する。また、アクセス設定レジスタ137は、設定されたコマンドにより、リード信号132またはライト信号133を出力する。制御信号デコード部138は、制御信号22から、転送終了信号134およびタイミング信号135を出力する。転送終了信号134は、一つのセクタデータに対するアクセスが終了すると出力される。タイミング信号135は、ホストコンピュータ2がセクタデータをリードまたはライトするときの制御信号22から生成される。ステータスレジスタ139は、メモリ制御装置1の状態を示すデータを格納する。割り込み信号131が出力されたとき、および転送終了信号134が出力されたとき、ステータスレジスタ139はビジー状態に設定される。また、ステータスレジスタ139をレディー状態に設定するのは、マイクロプロセッサ8が行なう。ステータスレジスタ139がビジー状態であるとき、ホストコンピュータ2は、セクタデータのリードおよびライトを行なわない。
【0025】
図3は、データ切り換え手段11の構成を示すブロック図である。
【0026】
データ選択設定レジスタ115は、マイクロプロセッサ8が設定する記憶手段であり、ECCバス113および内部データバス114に出力するデータを第1のメモリバス111または第2のメモリバス112から選択するための情報が設定される。リードデータ選択回路116は、データ選択設定レジスタ115の内容に従って、内部データバス114に出力するデータを第1のメモリバス111または第2のメモリバス112から選択する。エラー訂正手段入力データ選択回路117は、データ選択設定レジスタ115の内容に従って、ECCバス113に出力するデータを第1のメモリバス111または第2のメモリバス112から選択する。
【0027】
図4にリードデータ選択回路116の真理値表を示す。データ選択設定レジスタ115の内容に従って、内部データバス114に出力するデータが、第1のメモリバス111または第2のメモリバス112から選択される。
【0028】
図5にエラー訂正手段入力データ選択回路117の真理値表を示す。データ選択設定レジスタ115の内容に従って、ECCバス113に出力するデータが、第1のメモリバス111または第2のメモリバス112から選択される。
【0029】
以下に、システムバス3のバス幅が1バイトの場合における、ホストコンピュータ2がセクタデータのリードまたはライトを行なう動作についてフローチャートを用いて説明する。
【0030】
図6は、ホストコンピュータ2がセクタデータをリードまたはライトするときのフローチャートである。
【0031】
まず、S001において、システムインタフェース部13内のアクセス設定レジスタ137にコマンドを設定する。このコマンドは、アクセス開始セクタのセクタ番号と、連続アクセスするセクタ数を含む。その後、ステータスレジスタ139を監視する(S002)。ステータスレジスタ139がレディー状態に設定されると、ホストコンピュータ2は、1バイト単位にデータバッファ136に対し、リードまたはライトを行なう(S003)。一つのセクタデータに対し、リードまたはライトが終了するまでS003の動作を繰り返す(S004)。全てのセクタデータに対してリードまたはライトが終了していない場合には(S0005,No)、前記S002からS004までの動作を繰り返し、全てのセクタデータに対してリードまたはライトが終了すると、ホストコンピュータ2のリードまたはライト動作が終了する。
【0032】
図7から図11は、マイクロプロセッサ8の動作を示すフローチャートである。
【0033】
まず、S101において、マイクロプロセッサ8は、ホストコンピュータ2がアクセス設定レジスタ137にコマンドを設定したことを示す割り込み信号131が出力されたことを監視する。割り込み信号131が出力されると、マイクロプロセッサ8は、アクセス設定レジスタ137を読み出し、ホストコンピュータ2が設定したコマンドを解析する(S102)。
【0034】
次いで、S103において、アクセスの種類が「ライト」の場合にはS104を実行し、「リード」の場合には、図9に示すフローチャートの動作を実行する。
【0035】
アクセス設定レジスタ137のコマンドが「ライト」を示している場合、ホストコンピュータ2がライトするセクタデータをライトバッファ7に格納するために、マイクロプロセッサ8はライトバッファ7に対し、アドレス81を出力し(S104)、ステータスレジスタ139にレディー状態を設定する(S105)。
【0036】
その後、一つのセクタデータがホストコンピュータ2からライトバッファ7に格納されると、制御信号デコード部138から転送終了信号134出力される。マイクロプロセッサ8は、S106において、転送終了信号134が出力されたことを検出すると、エラー訂正手段12に格納されているエラー訂正用符号を読み出す(S107)。次いで、マイクロプロセッサ8は、図8に示すフローチャートの動作を実行する。
【0037】
ライトバッファ7に格納されてセクタデータが2N−1番目(すなわち奇数番目)のセクタデータの場合には、第1のメモリ4に対する第1のメモリアドレス82を出力し(S109)、ライトバッファ7から第1のメモリ4にセクタデータを転送し、さらに、エラー訂正用符号を第1のメモリ4に格納する(S110)。また、ライトバッファ7に格納されてセクタデータが2N番目(すなわち偶数番目)のセクタデータの場合には、第2のメモリ5に対する第2のメモリアドレス83を出力し(S111)、ライトバッファ7から第2のメモリ5にセクタデータを転送し、さらに、エラー訂正用符号を第2のメモリ5に格納する(S112)。
【0038】
図17に、第1のメモリ4および第2のメモリ5に格納されたデータの様子を示す。図から分かるように、第1および第2のメモリの各アドレスには、1セクタ(ここでは512バイト)のデータとそれに対して生成されたエラー訂正用符号を格納している。本実施例におけるエラー訂正用符号は、1セクタ全体のデータに対して1つ(ここでは3バイト)の符号が付与されるものである。
【0039】
ホストコンピュータ2から全てのセクタデータのライトが終了した場合には、マイクロプロセッサ8は、S101の動作から繰り返し、終了していない場合には、前記S104からS112までの動作を繰り返す(S113)。
【0040】
アクセス設定レジスタ137のコマンドが「リード」を示している場合、図9に示すフローチャートの動作を実行する。
【0041】
まず、ホストコンピュータ2が1番目にリードするセクタデータに対するエラー検出およびエラー訂正を行なう。2N−1番目のセクタデータは、第1のメモリ4に格納されているので、エラー訂正手段12に1番目のセクタデータを入力するために、マイクロプロセッサ8は、データ選択設定レジスタ115に’1’を設定する(S114)。これにより、メモリ制御装置1では、第1のメモリ4からリードしたセクタデータをデータ切り替え手段11において、ECCバス113に切り換えて出力し、第1のメモリ4からリードしたセクタデータに対するエラー検出およびエラー訂正をエラー訂正手段12で行なう。ここで、第1のメモリ4からはセクタデータに続いて、エラー訂正用符号も出力され、エラー訂正用符号はエラー訂正手段12に入力される。これにより、エラー訂正手段12では、第1のメモリ4からリードしたセクタデータに対する復号が行なわれ、エラー検出ができる。また、メモリ制御装置1では、エラー訂正手段12に対し、第1のメモリ4からリードしたセクタデータの出力が終了すると、転送終了信号134がマイクロプロセッサ8に出力される。マイクロプロセッサ8は、転送終了信号134が出力されたことを検出すると(S115)、エラー訂正手段12に格納されている復号結果を読み出し(S116)、エラーが発生したかどうかを判定する(S117)。エラーが発生していた場合には、マイクロプロセッサ8は、エラー訂正手段12に対しエラー訂正処理を起動することで、エラー位置および訂正パターンを知り、第1のメモリ4に格納されているエラーの発生したセクタデータに訂正結果を書き戻す(S118)。エラーが発生していない場合には、図10のS119へ進む。
【0042】
次いで、マイクロプロセッサ8は、図10に示すフローチャートの動作を行なう。S119において、マイクロプロセッサ8は、ホストコンピュータ2に出力するセクタデータが2N−1番目であるかどうかを確認する。S120では、マイクロプロセッサ8は、2N−1番目のセクタデータをホストコンピュータ2に出力すると同時に、2N番目のセクタデータをエラー訂正手段12に入力するために、データ選択設定レジスタ115に’0’を設定する。次のS121では、第1のメモリアドレス82には、ホストコンピュータ2に出力するセクタデータのアドレスを、第2のメモリアドレス83には、エラー検出およびエラー訂正を行なうセクタデータのアドレスを出力する。S122では、マイクロプロセッサ8は、2N番目のセクタデータをホストコンピュータ2に出力すると同時に、2N+1番目のセクタデータをエラー訂正手段12に入力するために、データ選択設定レジスタ115に’1’を設定する。S123では、第1のメモリアドレス82には、エラー検出およびエラー訂正を行なうセクタデータのアドレスを、第2のメモリアドレス83には、ホストコンピュータ2に出力するセクタデータのアドレスを出力する。その後、マイクロプロセッサ8は、ステータスレジスタ139をレディー状態に設定する(S124)。
【0043】
ステータスレジスタ139がレディー状態に設定されたことにより、ホストコンピュータ2はメモリ制御装置1に対しセクタデータのリードを行なう。S125では、転送終了信号134が出力されたかどうかを判定している。一つのセクタデータに対するリードが終了すると、メモリ制御装置1の制御信号デコード部138から転送終了信号134が出力される。転送終了信号134が出力されたことにより、マイクロプロセッサ8はエラー訂正手段12に格納されている復号結果を読み出し(S126)、エラーが発生したかどうかを判定する(図11のS127)。エラーが発生していた場合には、マイクロプロセッサ8は、エラー訂正手段12に対しエラー訂正処理を起動することで、エラー位置および訂正パターンを知り、第1のメモリ4または第2のメモリ5に格納されているエラーの発生したセクタデータに訂正結果を書き戻す(S128)。発生していない場合には、S129へ進む。
【0044】
ホストコンピュータ2が全てのセクタデータのリードを終了した場合には、マイクロプロセッサ8はS101の動作から繰り返し、終了していない場合には、前記S119からS128までの動作を繰り返す(S129)。
【0045】
次に、図16、図18および図19に示したタイミング図により、図1の装置の具体的な処理例を説明する。
【0046】
図16は、ホストコンピュータ2からメモリ4、5へセクタデータを書き込むライト動作を示す。時点t0で、ホストコンピュータ2からアクセス設定レジスタ137にライトコマンドを設定すると、時点t1で割り込み信号131が発生し、マイクロプロセッサ8に割り込みをかける。時点t1で、ステータスレジスタ139はビジー信号を発生する。その後、時点t2で、ステータスレジスタ139がレディー信号を発生し、マイクロプロセッサ8がライトバッファ7に対してアドレス81を発生する。時点t3以降、ライトバッファ7の指定されたアドレス位置に、タイミング信号135にしたがって512バイトのデータ1〜512が1バイトずつ順次書き込まれる。また、タイミング信号135にしたがって、内部データバス114から512バイトのデータ1〜512が、エラー訂正手段12に入力され、エラー訂正手段12では、エラー訂正用符号を生成する。時点t4で最後のデータ512が書き込まれると、時点t5で転送終了信号134が出力される。その後、このようにしてライトバッファ7に格納されたセクタデータは、図8で説明したように、第1または第2のメモリ4、5に書き込まれる。メモリ4、5への格納結果は、図17に示すようになる。
【0047】
図18、図19は、ホストコンピュータ2からメモリ4、5のセクタデータを読み出すリード動作を示す。まず、図18において、時点t6でホストコンピュータ2からアクセス設定レジスタ137にリードコマンドを設定すると、次の時点t7で割り込み信号131が発生し、マイクロプロセッサ8に割り込みをかける。ここでは、アドレス「100」以降の複数のセクタのデータを連続して読み出すものとする。時点t8で、読み出すべき1番目のセクタのアドレス「100」を第1のメモリアドレス82に与え、時点t8以降、第1のメモリバス111から512バイトのデータおよび付随する3バイトのエラー訂正用符号を、タイミング信号135にしたがって順次1バイトずつ読み出す。これらのデータは、そのままECCバス113に出力されエラー訂正手段12に入力される。
【0048】
次に、図19に移り、エラーチェックの終了した1番目のセクタのデータを今度は内部データバス114へ(すなわちホストコンピュータ2側へ)出力するために、データ切り替え手段11の切り替え状態を反転し、時点t9で第1のメモリアドレス82のアドレスは「100」のままとし、第2のメモリアドレス83のアドレスを「101」とする。時点t10以降、再度第1のメモリ4からアドレス「100」のセクタデータを読み出す。このセクタデータは内部データバス114側に出力される。これと並行して、第2のメモリ5のアドレス「101」から2番目のセクタの512バイトのデータおよび付随する3バイトのエラー訂正用符号を順次1バイトずつ読み出し、これをエラー訂正手段12につながるECCバス113に出力する。両セクタデータの読み出しが終了した後、時点t11で今度は、エラーチェックの終了した第2のメモリ5のアドレス「101」を第1のメモリ4のメモリアドレス82に出力するとともに、第2のメモリアドレスはアドレス「101」のままとする。データ切り替え手段11の切り替え状態を反転する。これにより、時点t12以降、アドレス「101」のセクタデータを内部データバス114に出力すると同時に、次のセクタであるアドレス「102」のセクタデータをECCバス113側へ出力する。
【0049】
このようにして、連続したセクタのデータのリード時に、内部データバス114には連続的にセクタデータが得られ、その結果、ホストコンピュータ2からは、エラー訂正手段12によるエラーチェック処理の時間が存在しないようにみえる。
【0050】
以上説明したように、本実施例によれば、マイクロプロセッサ8は、ライトバッファ7に格納された奇数番目のセクタデータを第1のメモリ4に、偶数番目のセクタデータを第2のメモリ5に格納することにより、ホストコンピュータ2がN番目のセクタデータをリードすると同時に、N+1番目のセクタデータをエラー訂正手段12に対し出力することができるので、N+1番目のセクタデータに対するエラー検出およびエラー訂正に要する時間を見かけ上短縮することができる。
【0051】
図12は、本発明による外部記憶装置のシステム構成を示すブロック図の他の実施例である。
【0052】
メモリ9、メモリバス91、データ切り替え手段92以外は、図1と同一の構成であり、同一の動作を行なう。メモリ9は、図1の第1のメモリ4および第2のメモリ5の持つバス幅の2倍のバス幅を持ち、メモリバス91によって、メモリ制御装置1のデータ切り替え手段92とローカルバス6に接続される。データ切り替え手段92は、メモリバス91からの上位データと下位データを内部データバス114およびECCバス113に切り換える。
【0053】
図13は、データ切り替え手段92の構成を示すブロック図である。
【0054】
データ選択設定レジスタ115、リードデータ選択回路116、エラー訂正手段入力データ選択回路117は、図3のブロック図に示すものと同一の動作を行なう。メモリバス91からのデータは、上位データ911と下位データ912として、リードデータ選択レジスタ116およびエラー訂正手段入力データ選択回路117に入力される。リードデータ選択レジスタ116では、データ選択設定レジスタ115の内容に従って、内部データバス114に上位データ911または下位データ912を出力する。同様に、エラー訂正手段入力データ選択回路117においても、ECCバス113に上位データ911または下位データ912を出力する。
【0055】
つまり、システムバス3の2倍のバス幅を持つメモリ9に対しても、マイクロプロセッサ8は、ライトバッファ7に格納されている2N−1番目のセクタデータを同一メモリバス上の上位に、2N番目のセクタデータを下位に格納することで、ホストコンピュータ2がN番目のセクタデータをリードすると同時に、N+1番目のセクタデータをエラー訂正手段12に対し出力することができるので、N+1番目のセクタデータに対するエラー検出およびエラー訂正に要する時間を見かけ上短縮することができる。
【0056】
図14は、本発明による外部記憶装置のシステム構成を示すブロック図の他の実施例である。
【0057】
図14では、図1のブロック図に示されているライトバッファ7を使用しない構成である。つまり、ホストコンピュータ2がライトするセクタデータは、ライトバッファに一時的に格納されるのではく、直接第1のメモリ4または第2のメモリ5に書き込まれる。そこで、データ切り替え手段93では、ホストコンピュータ2がセクタデータをライトする場合に、内部データバス114からデータを第1のメモリバス111または第2のメモリバス112に切り換えて出力する。
【0058】
図15は、データ切り替え手段93の構成を示すブロック図である。
【0059】
データ選択設定レジスタ115、リードデータ選択回路116、エラー訂正手段入力データ選択回路117は、図3のブロック図に示すものと同一の動作を行なう。ライトデータ選択回路118は、データ選択設定レジスタ115の内容に従って、内部データバス114のセクタデータを第1のメモリバス111または第2のメモリバス112に切り換えて出力する。データ選択設定レジスタ115が’0’のとき、内部データバス114のセクタデータを第1のメモリバス111に出力し、データ選択設定レジスタ115が’1’のとき、内部データバス114のセクタデータを第2のメモリバス112に出力する。
【0060】
つまり、データ切り替え手段11のライトデータ選択回路118は、2N−1番目のセクタデータを第1のメモリバス111に、2N番目のセクタデータを第2のメモリバス112に出力することで、第1のメモリ4には2N−1番目のセクタデータ、第2のメモリ5には2N番目のセクタデータが格納される。これにより、ホストコンピュータ2がN番目のセクタデータをリードすると同時に、N+1番目のセクタデータをエラー訂正手段12に対し出力することができるので、N+1番目のセクタデータに対するエラー検出およびエラー訂正に要する時間を見かけ上短縮することができる。
【0061】
以上説明したように、本発明によれば、ホストコンピュータが任意のバイト幅を持つセクタデータをライトするときには、複数(1以上)のメモリから構成される第1のメモリには2N−1番目のセクタデータを、第2のメモリには2N番目のセクタデータを格納できる。これにより、ホストコンピュータがセクタデータをリードするときには、第1のメモリから読み出した2N+1番目のセクタデータをホストコンピュータに出力すると同時に、第2のメモリから読み出した2N番目のセクタデータ(次にホストコンピュータがリードするセクタデータ)をエラー訂正手段においてエラー検出およびエラー訂正を行なうことが可能となる。また、第2のメモリから読み出した2N番目のセクタデータをホストコンピュータに出力すると同時に、第1のメモリから読み出した2N−1番目のセクタデータ(次にホストコンピュータがリードするセクタデータ)をエラー訂正手段においてエラー検出およびエラー訂正を行なうことが可能となる。したがって、ホストコンピュータがセクタデータのリードを行なうと同時に、次にホストコンピュータがリードするセクタデータに対するエラー検出およびエラー訂正を行なうことで、エラー検出およびエラー訂正に要する時間を見かけ上短縮するが可能となり、メモリアクセスの高速化を図ることができる。
【0062】
さらに、システムバスの2倍のバス幅を持つメモリバスに接続されるメモリに対しても、メモリバスの上位側に2N−1番目のセクタデータを、下位側に2N番目のセクタデータを格納する。これにより、メモリバスの上位側に格納されている2N−1番目のセクタデータと2N番目のセクタデータを同時に読み出すことが可能となり、ホストコンピュータがセクタデータのリードを行なうと同時に、次にホストコンピュータがリードするセクタデータに対するエラー検出およびエラー訂正を行なうことで、エラー検出およびエラー訂正に要する時間を見かけ上短縮するが可能となり、メモリアクセスの高速化を図ることができる。
【0063】
以下に、本発明の実施態様を列挙する。
【0064】
1.外部バスを介してホストコンピュータとのインターフェースを実行するシステムインターフェース部と、前記システムインターフェース部によって前記ホストコンピュータから受信されたコマンドを解析し、当該記憶装置内で行われる動作を制御する制御手段と、データを電気的に消去・書き換え可能な不揮発性半導体メモリとを備えた記憶装置において、
前記不揮発性半導体メモリは、前記システムインターフェース部を介して前記ホストコンピュータから受信されたデータを格納し、
前記制御手段は、前記システムインターフェース部を介して前記ホストコンピュータから受信されたリードコマンドに応答して、データ処理後のデータの前記システムインターフェース部を介した前記ホストコンピュータへの転送と、前記データ処理のための次のデータの前記不揮発性半導体メモリからの転送とを並列に実行すること
を特徴とする記憶装置。
【0065】
2.前記データ処理後のデータの前記システムインターフェース部を介した前記ホストコンピュータへの転送と、前記データ処理のための次のデータの前記不揮発性半導体メモリからの転送との並列動作は、2つの前記不揮発性半導体メモリを用いて実行されること
を特徴とする前項1に記載された記憶装置。
【0066】
3.前記システムインターフェース部を介して前記ホストコンピュータから受信されたリードコマンドに応答して、前記2つの不揮発性半導体メモリの一方は、前記データ処理後のデータを発生し、前記2つの不揮発性半導体メモリの他方は、前記データ処理のための次のデータを発生すること
を特徴とする前項2に記載された記憶装置。
【0067】
4.前記不揮発性半導体メモリは、フラッシュメモリであること
を特徴とする前項2又は3に記載された記憶装置。
【0068】
5.前記2つの不揮発性半導体メモリの一方は、第1のメモリバスを介して前記制御手段に接続され、
前記2つの不揮発性半導体メモリの他方は、第2のメモリバスを介して前記制御手段に接続され、
前記データ処理後のデータの前記システムインターフェース部を介した前記ホストコンピュータへの転送の間に、前記データ処理後のデータが前記システムインターフェース部を介して前記ホストコンピュータへ転送されると共に前記データ処理のための次のデータが前記第2のメモリバスを介して前記2つの不揮発性半導体メモリの他方から転送され、
前記データ処理のための次のデータの前記不揮発性半導体メモリからの転送の間に、前記データ処理後の次のデータが前記システムインターフェース部を介して前記ホストコンピュータへ転送されると共に前記データ処理のためのさらに次のデータが前記第1のメモリバスを介して前記2つの不揮発性半導体メモリの一方から転送されること
を特徴とする前項2〜4の何れかに記載された記憶装置。
【0069】
6.外部バスを介してホストコンピュータとのインターフェースを実行するシステムインターフェース部と、前記システムインターフェース部によって前記ホストコンピュータから受信されたコマンドを解析し、当該記憶装置内で行われる動作を制御する制御手段と、データを電気的に消去・書き換え可能な不揮発性半導体メモリとを備えた記憶装置において、
前記不揮発性半導体メモリは、前記システムインターフェース部を介して前記ホストコンピュータから受信されたデータを格納し、
前記制御手段は、前記システムインターフェース部を介して前記ホストコンピュータから受信されたリードコマンドに応答して、エラー検出・訂正後のデータの前記システムインターフェース部を介した前記ホストコンピュータへの転送と、前記エラー検出・訂正のための次のデータの前記不揮発性半導体メモリからの転送とを並列に実行すること
を特徴とする記憶装置。
【0070】
7.前記エラー検出・訂正後のデータの前記システムインターフェース部を介した前記ホストコンピュータへの転送と、前記エラー検出・訂正のための次のデータの前記不揮発性半導体メモリからの転送との並列動作は、2つの前記不揮発性半導体メモリを用いて実行されること
を特徴とする前項6に記載された記憶装置。
【0071】
8.前記システムインターフェース部を介して前記ホストコンピュータから受信されたリードコマンドに応答して、前記2つの不揮発性半導体メモリの一方は、前記エラー検出・訂正後のデータを発生し、前記2つの不揮発性半導体メモリの他方は、前記エラー検出・訂正のための次のデータを発生すること
を特徴とする前項7に記載された記憶装置。
【0072】
9.前記不揮発性半導体メモリは、フラッシュメモリであること
を特徴とする前項7又は8に記載された記憶装置。
【0073】
10.前記2つの不揮発性半導体メモリの一方は、第1のメモリバスを介して前記制御手段に接続され、
前記2つの不揮発性半導体メモリの他方は、第2のメモリバスを介して前記制御手段に接続され、
前記エラー検出・訂正後のデータの前記システムインターフェース部を介した前記ホストコンピュータへの転送の問に、前記エラー検出・訂正後のデータが前記システムインターフェース部を介して前記ホストコンピュータへ転送されると共に前記エラー検出・訂正のための次のデータが前記第2のメモリバスを介して前記2つの不揮発性半導体メモリの他方から転送され、
前記エラー検出・訂正のための次のデータの前記不揮発性半導体メモリからの転送の間に、前記エラー検出・訂正後の次のデータが前記システムインターフェース部を介して前記ホストコンピュータへ転送されると共に前記エラー検出・訂正のためのさらに次のデータが前記第1のメモリバスを介して前記2つの不揮発性半導体メモリの一方から転送されること
を特徴とする前項7〜9の何れかに記載された記憶装置。
【0074】
11.外部バスを介してホストコンピュータとのインターフェースを実行するシステムインターフェース部と、前記ホストコンピュータからのデータのリード動作及びライト動作を制御する制御手段と、データのエラー検出・訂正を行うエラー訂正手段と、データを電気的に消去・書き換え可能な不揮発性半導体メモリとを備えた記憶装置において、
前記不揮発性半導体メモリは、前記システムインターフェース部を介して前記ホストコンピュータから受信されたセクタデータを格納し、
前記制御手段は、前記ホストコンピュータから、連続した複数のセクタデータにリードアクセスする際、第N番目のセクタデータを前記不揮発性半導体メモリから読み出して前記エラー訂正手段によりエラー検出・訂正を行い、前記エラー検出・訂正後の第N番目のセクタデータを前記ホストコンピュータへ転送している間に、第(N+1)番目のセクタデータを前記不揮発性半導体メモリから読み出して前記エラー訂正手段に転送する制御を行うこと
を特徴とする記憶装置。
【0075】
12.前記エラー訂正手段は、前記エラー検出・訂正後の第N番目のセクタデータを前記ホストコンピュータへ転送している間に、前記不揮発性半導体メモリから読み出された前記第(N+1)番目のセクタデータのエラー検出・訂正を行うこと
を特徴とする前項11に記載された記憶装置。
【0076】
13.前記セクタデータのサイズは、512バイトであること
を特徴とする前項11又は12に記載された記憶装置。
【0077】
14.前記制御手段は、前記ホストコンピュータから、連続した複数のセクタデータにリードアクセスする際、該リードアクセスで要求された複数のセクタデータのうち、第1番目のセクタデータを前記不揮発性半導体メモリから読み出して前記エラー訂正手段に供給し、その後、第N番目のセクタデータを前記不揮発性半導体のメモリのうちの1つから読み出して前記エラー訂正手段によりエラー検出・訂正を行い、前記エラー検出・訂正後の第N番目のセクタデータを前記ホストコンピュータへ転送している間に、第(N+1)番目のセクタデータを前記不揮発性半導体メモリのうちの他の1つのメモリから読み出して前記エラー訂正手段に転送する制御を行うこと
を特徴とする前項11〜13の何れかに記載された記憶装置。
【符号の説明】
【0078】
1・・・メモリ制御装置
2・・・ホストコンピュータ
3・・・システムバス
4・・・第1のメモリ、
5・・・第2のメモリ
6・・・ローカルバス
7・・・ライトバッファ
8・・・マイクロプロセッサ、
9・・・メモリ
11・・・データ切り替え手段
12・・・エラー訂正手段
13・・・システムインタフェース部、
22・・・制御信号
31・・・ホストコンピュータバス
32・・・外部バス
61・・・ライトバッファバス
62・・・マイクロプロセッサバス
81・・・ライトバッファアドレス
82・・・第1のメモリアドレス
83・・・第2のメモリアドレス
84・・・メモリアドレス
91・・・メモリバス
92・・・データ切り替え手段
93・・・データ切り替え手段
111・・・第1のメモリバス
112・・・第2のメモリバス
113・・・ECCバス
114・・・内部データバス
115・・・データ選択設定レジスタ
116・・・リードデータ選択回路
117・・・エラー訂正手段入力データ選択回路
131・・・割り込み信号
132・・・リード信号
133・・・ライト信号
134・・・転送終了信号
135・・・タイミング信号
136・・・データバッファ
137・・・アクセス設定レジスタ
138・・・制御信号デコード部
139・・・ステータスレジスタ
911・・・メモリバス91の上位データ
912・・・メモリバス91の下位データ

【特許請求の範囲】
【請求項1】
外部バスを介してホストコンピュータとのインターフェースを実行するシステムインターフェース部と、前記システムインターフェース部によって前記ホストコンピュータから受信されたコマンドを解析し、当該記憶装置内で行われる動作を制御する制御手段と、データを電気的に消去・書き換え可能な不揮発性半導体メモリとを備えた記憶装置において、
前記不揮発性半導体メモリは、前記システムインターフェース部を介して前記ホストコンピュータから受信されたデータを格納し、
前記制御手段は、前記システムインターフェース部を介して前記ホストコンピュータから受信されたリードコマンドに応答して、データ処理後のデータの前記システムインターフェース部を介した前記ホストコンピュータへの転送と、前記データ処理のための次のデータの前記不揮発性半導体メモリからの転送とを並列に実行すること
を特徴とする記憶装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2013−101641(P2013−101641A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2012−279187(P2012−279187)
【出願日】平成24年12月21日(2012.12.21)
【分割の表示】特願2010−43814(P2010−43814)の分割
【原出願日】平成7年7月14日(1995.7.14)
【出願人】(508117798)ソリッド ステート ストレージ ソリューションズ インク (11)
【Fターム(参考)】