説明

読み出し性能を向上させることができるメモリカード

【課題】読み出し性能を向上させることができるメモリカードを提供する。
【解決手段】メモリカードは読み出し開始情報の入力の時、プログラムの介入なく、外部アドレス及び設定されたアドレスのいずれかによって内部アドレスを発生する第1スケジューラと、内蔵プログラムを含み、読み出し命令が入力される時、内蔵プログラムを使って外部アドレスを内部アドレスに変換する第2スケジューラと、第1スケジューラ及び第2スケジューラのいずれかからの内部アドレスによって読み出し動作を実行するフラッシュメモリを含み、第2スケジューラは読み出し命令の入力の時、加速イネーブル情報を第1スケジューラに設定し、第1スケジューラは加速イネーブル情報が設定されている間、読み出し開始情報の入力に応答して内部アドレスを発生し、加速イネーブル情報が設定されている間前記第2スケジューラのアドレス変換動作は中止する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は電子装置に関するものであり、さらに具体的には不揮発性メモリを含むメモリカードに関するものである。
【背景技術】
【0002】
メモリカードはデジタルカメラ、PDA、携帯用オーディオ装置、携帯電話、及びパーソナルコンピュータのようなデジタル装置とともに情報を貯蔵する/読み出すために使われている。メモリカードにはフラッシュメモリのような不揮発性メモリが含まれる。必要に従って、メモリカードには不揮発性メモリとともにメモリ制御器が含まれる。メモリカードに含まれたメモリ制御器はホストとのインターフェースを提供する。
【0003】
例示的なメモリカードが特許文献1、特許文献2、および特許文献3に開示されている。
【0004】
漸次的にデジタル装置が発展されることによって、多様な分野に使われているメモリカードの容量増加のみならず、動作性能の向上が要求されている。
【特許文献1】米国特許公開第2004‐0205301号
【特許文献2】米国特許公告第6131139号
【特許文献3】米国特許公開第2004‐0236909号
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明の目的は読み性能を向上させることができるメモリカードを提供することである。
【課題を解決するための手段】
【0006】
上述の諸般目的を達成するための本発明の特徴によると、メモリカードは、ホストシステムから第1命令及び第1外部アドレスを伝達されるメモリコントローラと、第1及び第2内部アドレスに従ってデータのページにアクセスするフラッシュメモリモジュールとを含み、前記メモリコントローラは、貯蔵されたプログラムによって前記第1外部アドレスを前記第1内部アドレスに変換させる第1回路と、読み出し信号と加速イネーブル信号に応答して前記第1内部アドレス及び前記第1外部アドレスを利用して前記第2内部アドレスを発生させる第2回路とを含み、ここで、前記フラッシュメモリモジュールが前記第1内部アドレスを利用して読み出し動作のためのデータのページにアクセスした後、前記第1回路は前記第2回路でハードウエアアクセレレーションフラッグを設置し、前記メモリコントローラが前記ホストシステムから読み出し命令を伝達される時たびに、前記第2回路は前記読み出し信号を活性化させることを特徴とする。
【0007】
例示的な実施形態において、前記メモリコントローラは前記第1命令を伝達された後、第2命令と第2外部アドレスを伝達され、ここで、前記第1及び第2命令は任意の読み出し命令であることを特徴とする。
【0008】
例示的な実施形態において、前記第1回路は前記第1外部アドレスを前記第1命令を伝達される前記第2回路に伝送し、前記第2回路は前記第1外部アドレスを貯蔵するようになることを特徴とする。
【0009】
例示的な実施形態において、各々の前記第1及び第2外部アドレスは、メモリブロックアドレス及び、開始及び終了ページアドレスを含むことを特徴とする。
【0010】
例示的な実施形態において、前記ハードウエアアクセレレーションフラッグが設置される時、前記第2回路は前記第1及び前記第2外部アドレスが同一なメモリブロックアドレスを有するか、そして前記第2外部アドレスが前記第1外部アドレスの開始及び終了ページアドレスの間でページアドレスを有するかを決定することを特徴とする。
【0011】
例示的な実施形態において、前記第1及び第2外部アドレスが前記同一なメモリブロックアドレスを有し、前記第2外部アドレスが前記第1外部アドレスの前記開始及び終了アドレスとの間で、ページアドレスを有すれば、前記第2回路は前記第2内部アドレスを発生することを特徴とする。
【0012】
例示的な実施形態において、前記第1及び第2外部アドレスが前記同一なメモリブロックアドレスを有していなければ、または、前記第2外部アドレスが前記第1アドレスの前記開始及び終了ページアドレスとの間でページアドレスを有していなければ、前記第2回路は前記メモリコントローラ内にインタラプトフラッグを設置するためのインタラプト信号を活性化させる。その結果前記第1回路は第1内部アドレスを発生させることを特徴とする。
【0013】
例示的な実施形態においては、前記第1命令は順次的読み出し命令であることを特徴とする。
【0014】
例示的な実施形態においては、前記第1回路は前記第1外部及び内部アドレスを前記第2回路に伝達して、前記第2回路は基準アドレスとして前記第1外部アドレスを貯蔵し、前記第2回路は前記第1外部アドレスを利用して、次のアドレスを発生することを特徴とする。
【0015】
例示的な実施形態においては、前記第1外部アドレスは、メモリブロックアドレスと、開始及び終了ページアドレスを含むことを特徴とする。
【0016】
例示的な実施形態において、前記ハードウエアアクセレレーションフラッグか設置される時、前記第2回路は新しいアドレス及び前記基準アドレスが前記同一なメモリブロックアドレスを有しているか、前記新しいアドレスが前記基準アドレスの前記開始及び終了ページアドレスとの間にページアドレスを有しているかを決定することを特徴とする。
【0017】
例示的な実施形態において、前記新しいアドレスと前記基準アドレスは前記同一なメモリブロックアドレスを有しているか、そして前記新しいアドレスが前記基準アドレスの前記開始及び終了ページアドレスとの間でページアドレスを有しているかを決定する時、前記第2回路は前記第1外部及び内部アドレスを利用して前記第2内部アドレスを発生させることを特徴とする。
【0018】
例示的な実施形態において、前記新しいアドレス及び前記基準アドレスが前記同一なメモリブロックアドレスを有せず、或いは、前記新しいアドレスが前記基準アドレスの前記スタート及びエンドページアドレスとの間でページアドレスを有しないかを決定する時、前記第2回路は前記メモリコントローラ内にインタラプトフラッグを設置するためのインタラプト信号を活性化させる。その結果、前記第1回路は第1内部アドレスを発生することを特徴とする。
【0019】
例示的な実施形態において、前記第1回路は読み出し動作で前記フラッシュメモリモジュールにアクセスした後、前記第1外部アドレスを前記第2回路に伝達し、ここで、前記第1外部アドレスはメモリブロックアドレスと開始及び終了ページアドレスを含むことを特徴とする。
【0020】
例示的な実施形態において、前記第2回路は、前記ハードウエアアクセレレーションフラッグと前記外部アドレスから抽出した基準アドレスを貯蔵するレジスタと、モード信号に応答して現在の外部のアドレスと次のアドレスとの間で選択し、新しいアドレスに前記選択されたアドレスを出力する選択回路と、前記基準アドレスと前記新しいアドレスが前記同一なメモリブロックアドレスを有しているか、そして前記新しいアドレスが前記基準アドレスの前記開始及び終了ページアドレスとの間でページアドレスを有しているかを感知するヒット信号を発生する判断回路と、前記選択回路から前記新しいアドレスを伝達され、前記新しいアドレスを利用して前記の次のアドレスを出力するアドレス発生器と、前記ヒット信号に応答して前記の次のアドレスを利用して前記内部アドレスを発生する状態マシンを含むことを特徴とする。
【0021】
例示的な実施形態において、前記第2内部アドレスを発生させる時、前記状態マシンはあらかじめ決定された値に従って増加する前記の次のアドレスのため、前記アドレス発生器に制御信号を送ることを特徴とする。
【0022】
例示的な実施形態において、前記の次のアドレスは前記基準アドレスとして前記レジスタに貯蔵されることを特徴とする。
【0023】
例示的な実施形態において、前記選択回路は前記モードが任意の読み動作するモードを指示する時、前記現在のアドレスを選択し、前記モード信号が順次的読み出し動作するモードを指示する時、前記の次のアドレスを選択されることを特徴とする。
【0024】
例示的な実施形態において、前記新しいアドレスが前記基準アドレスから互いに異なるメモリブロックアドレスを有しており、或いは、前記新しいアドレスが前記基準アドレスの前記開始及び終了ページアドレスとの間にない時、前記判断回路は前記メモリコントローラで設置されるインタラプトフラッグにより、インタラプト信号を発生させることを特徴とする。
【0025】
例示的な実施形態において、前記メモリカードは、前記第1回路による選択信号出力に応答して前記フラッシュメモリモジュールに前記第1及び第2内部アドレスを伝達するスイッチをさらに含むことを特徴とする。
【0026】
例示的な実施形態において、不揮発性メモリ装置のためのメモリコントローラにおいて、プログラムを貯蔵する内部メモリと、第1内部アドレスを生産するために、前記プログラムを使って第1外部アドレスを処理するマイクロコントローラユニットと、第2内部アドレスを発生させるために、前記第1外部アドレスと前記第1内部アドレスを利用して第2外部アドレスを処理する加速器と、前記マイクロコントローラ、前記加速器及びホストシステムの間をインターフェースするホストインターフェースと、前記マイクロコントローラ、前記加速器及び前記不揮発性メモリの間でインターフェースするメモリインターフェースとを含むことを特徴とする。
【0027】
例示的な実施形態において、前記加速器は前記マイクロコントローラユニットから伝達されたハードウエアアクセレレーションフラッグに応答して動作することを特徴とする。
【0028】
例示的な実施形態において、メモリコントローラと、不揮発性メモリ装置と前記メモリコントローラとの間にインターフェースするメモリインターフェースとを含み、前記メモリコントローラは、第1内部アドレスを生成するために貯蔵されたプログラムを使って第1外部アドレスを処理するマイクロコントローラと、前記第1内部及び外部アドレスを利用して第2外部アドレスを処理する加速器とを含むことを特徴とする。
【0029】
例示的な実施形態において、前記加速器は前記マイクロコントローラユニットから伝達されたハードウエアアクセレレーションフラッグに応答して動作することを特徴とする。
【発明の効果】
【0030】
アドレス及び命令を変換するための時間を除去することによって、メモリカード100の性能を向上させることができる。
【発明を実施するための最良の形態】
【0031】
参照符号が本発明の望ましい実施形態に詳細に表示されてあり、それらの例が参照図面に表示されている。可能などんな場合も、同一の参照符号が同一、または、類似の部分を参照するために説明及び図面に使われる。
【0032】
下で、NANDフラッシュメモリ装置が本発明の特徴及び機能を説明するための例として使われる。しかし、当業者は、ここに記載していた内容によって本発明の他の利点及び性能を易しく理解できる。本発明は他の実施例によってまたは、実現されたり、適用されることもできる。それに、詳細な説明は本発明の範囲、技術的の思想、及び他の目的からかなり逸脱されず、観点及び応用によって修正されたり変更されることができる。
【0033】
図1は本発明によるメモリカードを概略的に示すブロック図である。図1を参照したら、本発明のメモリカード100は小ブロックインターフェース方式(small block interface manner)を通じて、ホスト200と通信し、ホスト200に提供される命令に応じて読み出し、書き込み、または消去動作を実行する。メモリカード100はフラッシュメモリ120とメモリコントローラ140とを含む。メモリコントローラ140はフラッシュメモリ120とホスト200との間で、インターフェースの役割を実行する。フラッシュメモリ120は、望ましく、NANDフラッシュメモリである。よく知られているように、フラッシュメモリ120は複数のページで各々構成される複数のメモリブロックを含み、ページサイズは512Bである。これによって、ホスト200は512B単位で読み出し/書き込み動作を実行し、これを小ブロックインターフェースと呼ぶ。
【0034】
例えば、図2に図示されたように、任意のメモリブロックの各ページは512Bのページサイズを有する。メモリ容量が漸次的に増加することに従って、メモリブロックのページサイズも増加する。以下、512Bのページサイズを有するメモリブロックを「小ブロック(small block)」と呼ぶ。図2に図示されたように、任意のメモリブロックは2KBのページサイズを有する複数のページで構成されることができる。即ち、メモリブロックのページサイズが512Bから2KBに増加することに従って、ホスト200から提供されるアドレスを直接使ってフラッシュメモリ120をアクセスすることが不可能である。これを可能にするために、メモリコントローラ140はホスト200から提供されるアドレス及び命令を2KBのページサイズを有するメモリブロック(以下、「大ブロック(large block)」と呼ぶ)に適するように変換すべきである。大ブロックの場合、図2に図示されたように、2KBのページは四つの512Bページで構成されることができる。ホスト200が小ブロックの1番ページ1Pをアクセスするためにアドレス及び読み出し命令をメモリカード100に提供したら、メモリカード100のメモリコントローラ140は入力された小ブロック用アドレス及び命令を大ブロック用アドレス及び命令に変換すべきである。例えば、小ブロックの1番ページ1Pは大ブロックの0番ページに属するから、小ブロック用の行アドレスは大ブロック用の行アドレスに変更されるべきである。また、大ブロックのページが4等分されているから、小ブロック用の開始列アドレスはやはり、大ブロック用の開始列アドレス(図2で、矢印に表示されているところ)に変更されるべきである。
【0035】
もし、フラッシュメモリ120が小ブロック構造を有したら、アドレス変換をせず、ホスト200から提供されるアドレス及び命令を利用してフラッシュメモリ120を直接アクセスすることができる。しかし、ホスト200が小ブロックインターフェース方式に従ってメモリカード100をアクセスする場合、メモリカード100は小ブロックインターフェース方式に従うアドレス及び命令を大ブロックインターフェース方式に従うアドレス及び命令に変更し、その次に変更されたアドレス及び命令に従って、フラッシュメモリ120について、読み出し/書き込み動作を実行する。従って、ホスト200の読み出し要求の時点からデータ出力時点までの時間によって決定されるメモリカード100の読み出し性能は小ブロック用のアドレス及び命令を大ブロック用アドレス及び命令に変更するのにかかる時間によって制約される。本発明のメモリカード100はアドレス及び命令を変更するのに要る時間を最小にして/除去して読み出し性能を向上させるためのものであり、これは以後、詳細に説明する。
【0036】
図3は本発明の一実施形態による図1に図示されたメモリコントローラを示すブロック図である。図3を参照したら、本発明のメモリコントローラ140はホストインターフェースコントローラ310、MCU320、内部メモリ330、レジスタ340、スイッチ350、メモリインターフェースコントローラ360、加速器370(図面では、「HWACC」と表示されている)、及びバッファメモリ380を含む。
【0037】
ホストインターフェースコントローラ310はホスト200とのインターフェースを提供し、レジスタセット311を含む。レジスタセット311にはホスト200から提供されるアドレス、命令などの情報だけではなく、インタラプト情報が貯蔵される。レジスタセット311に貯蔵されたインタラプト情報はホスト200から命令が入力される時に設定され、インタラプト動作が終了するたびに初期化される。たとえ、レジスタセット311がホストインターフェースコントローラ310内に含まれているが、レジスタセット311がコントローラ310の外部に実現されることができるのは、この分野で通常的な知識を習得した者に自明である。
【0038】
MCU320はメモリカード100の全般的な動作を制御するように構成される。MCU320はレジスタセット311にインタラプト情報か設定される時、レジスタセット311に貯蔵されているアドレズ及び命令を持って来る。MCU320は内部メモリ330に貯蔵されているプログラムを利用して、持ってきた小ブロック用アドレス及び命令を大ブロック用アドレス及び命令に変更する。変更されたアドレス及び命令はレジスタ340に一時貯蔵される。MCU320は変更されたアドレス及び命令がメモリインターフェースコントローラ360に出力されるようにスイッチ350を制御する。即ち、MCU320は選択信号SELを活性化させ、スイッチ350は活性化された選択信号SELに応答して、MCU320からの大ブロック用アドレス及び読み出し命令をメモリインターフェースコントローラ360に伝達する。一旦、変更されたアドレス及び読み出し命令がスイッチ360を通じてメモリインターフェースコントローラ360に伝達されたら、MCU320は加速器370とメモリインターフェースコントローラ360との間に信号経路が形成されるように選択信号SELを非活性化させる。もし、書き込み命令が入力されたら、スイッチ350の信号経路はMCU320とメモリインターフェースコントローラ360との間に形成されるようにMCU320によって制御される。MCU320は、また、現在入力されたアドレスに基づいてメモリブロック情報及びページ情報を加速器370に貯蔵する。これと同時に、MCU320は読み出し命令が入力されたことを示す加速イネーブル情報を加速器370に貯蔵する。
【0039】
ここで、メモリブロック情報は現在入力されたアドレスによって選択されたメモリブロックを指定するためのブロックアドレスを含み、ページ情報は選択されたメモリブロックのページ範囲を指定するための開始及び終了ページアドレス及び現在選択されたページの次のページアドレスを含む。
【0040】
メモリインターフェースコントローラ360はスイッチ350を通じて入力されたアドレス及び命令をよく知られていたNANDインターフェースタイミングに従って、NANDフラッシュメモリ120に出力する。メモリインターフェースコントローラ360はNANDフラッシュメモリ120から出力されるデータをバッファメモリ380に伝達するか、バッファメモリ380から出力されるデータをNANDフラッシュメモリ120に伝達する。バッファメモリ380は読み出し及び書き込み動作に従って、MCU320によって、または、加速器370によって制御されるように構成され、これは以後、詳細に説明する。
【0041】
続いて、図3を参照すると、加速イネーブル情報が設定されている時、加速器370はMCU320によって設定されたアドレス情報に従って大ブロック用のアドレス及び命令を生成するように構成される。具体的には、加速イネーブル情報がMCU320によって設定されている場合、加速器370は読み出し動作の時、ホスト200から提供されるアドレス及び命令情報が入力され、入力されたアドレス及び設定されたアドレス情報を利用して大ブロック用アドレス及び命令を生成する。例えば、まず、現在入力された命令が読み出し命令であり、加速イネーブル情報が設定されている時、加速器370は現在入力されたアドレスのブロックアドレスが設定されたブロックアドレスと一致するか否か、そして現在の入力されたアドレスのページアドレスが設定された開始及び終了ページアドレスとの間に存在するか否かを判別する。もし、現在入力されたアドレスのブロックアドレスが設定されたブロックアドレスと一致し、現在入力されたアドレスのページアドレスが設定された開始及び終了ページアドレスの間に存在すれば、加速器370は入力されたアドレス情報及び設定されたアドレズ情報を利用して大ブロック用アドレス及び読み出し命令を生成する。そうして生成されたアドレス及び読み出し命令はスイッチ350を通じてメモリインターフェースコントローラ360に伝達される。これに反して、現在入力されたアドレスのグロックアドレスが設定されたブロックアドレスと一致しないか、現在入力されたアドレスのページアドレスが設定された開始及び終了ページアドレスの間に存在しない時、加速器370はホストインターフェースコントローラ310のレジスタセット311にインタラプト情報を設定する。これはMCU320が前記説明と同一の過程を実行し、これは以後、詳細に説明する。
【0042】
以上の説明から分かるように、小ブロックアドレスを大ブロック用アドレスに変更する動作は読み出し命令が入力される時たびにプログラムを使うMCU320によって実行されない。即ち、一番目の読み出し命令と共に入力された小ブロック用アドレスはプログラムを利用するMCU320によって変更される。次の読み出し命令と共に入力された小ブロック用アドレスは、プログラムのローディングなく、加速器370によって変更/生成される。または、連続的な読み出し動作モードの時、一番目の読み動作に対するアドレス及び命令生成はMCU320によって行う一方、残りの読み動作に対するアドレスおよび命令生成は、プログラムのローディングなく、加速器370によって行われる。結果的に、こういうアドレス変更はスキームはプログラムの介入を排除することによって読み出し性能を向上させる。
【0043】
図4は本発明の望ましい実施形態による図3に図示された加速器370を示すブロック図である。図4を参照すれば、本発明に係る加速器370はレジスタ371、選択回路372、判別回路373、アドレス発生回路374、及び状態マシン375を含む。
【0044】
まず、レジスタ371にはMCU320からのメモリブロック情報及びページ情報が貯蔵される。上述のように、メモリブロック情報は現在入力されたアドレスによって選択されたメモリブロックを指定するためのブロックアドレスを含み、ページ情報は選択されたメモリブロックのページ範囲を指定するための開始及び終了ページアドレス及び現在選択されたページの次のページアドレスを含む。また、レジスタ371には加速イネーブル情報がMCU320によって貯蔵される。選択回路372は読み出し動作モードに応じて、レジスタ371に貯蔵された次のアドレスNEXT_ADDとホストインターフェースコントローラ310からの現在アドレスCUR_ADDのうちのいずれか一つを選択する。ここで、現在アドレスCUR_ADDはホスト200から提供される、即ち、インターフェースコントローラ310のレジスタセット311に貯蔵されたアドレスであり、読み出し動作モードは連続読み出し動作モード及びランダム読み出し動作モードのうちのいずれか一つを有する。例えば、モード信号MODEが連続読み出し動作モードを示す時、選択回路372はアドレスNEXT_ADDを選択する。モード信号MODEがランダム読み出し動作モードを示す時、選択回路372はアドレスCUR_ADDを選択する。
【0045】
判別回路373は制御信号HWACC_EN及び読み出し信号READに応答して動作する。例えば、判別回路373は制御信号HWACC_ENが活性化され、読み出し信号READが活性化される時に動作する。制御信号HWACC_ENはレジスタ371に貯蔵された加速イネーブル情報に応じて活性化される。例えば、以前に入力された命令が読み出し命令である時、MCU320は加速イネーブル情報を設定し、その結果、制御信号HWACC_ENは活性化される。もし、以前に入力された命令が書き命令である場合、加速イネーブル情報は設定されず、その結果、制御信号HWACC_ENは非活性化される。読み出し信号READはホストインターフェースコントローラ310のレジスタセット311に読み出し命令が貯蔵される時活性化される。すなわち、読み出し命令がレジスタセット311内に貯蔵され、インタラプト情報がレジスタセット311内に設定される時、読み信号READが活性化される。従って、判別回路373は、ランダム読み出し動作モードの時、以前に入力された命令が読み出し命令であり、現在入力された命令が読み出し命令である時、活性化される。また、読み出し信号READは連続読み出し動作モードの時、以前の読み出し動作によって、読み出されたデータがホスト200に全て伝送される時、活性化される。従って、判別回路373は、連続読み出し動作モードの時、以前の読み出し動作によって、読み出されたデータがホスト200に全て伝送される時活性化される。
【0046】
制御信号HWACC_EN及び読み出し信号READによって活性化される時、判別回路373は選択回路372からのアドレスREQ_ADDとレジスタ371に貯蔵されたアドレスとを比較する。例えば、判別回路373は選択回路372からのアドレスREQ_ADDがレジスタ371に貯蔵されたブロックアドレスと一致し、レジスタ371に貯蔵された開始及び終了ページアドレスとの間に存在するか否かを判別する。もし、選択回路372からのアドレスREQ_ADDがレジスタ371に貯蔵されたブロックアドレスと一致し、レジスタ371に貯蔵された開始及び終了ページアドレスとの間に存在すれば、判別回路373はヒット信号HITを活性化させる。もし、そうしなければ、判別回路は373はヒット信号HITを非活性化させ、インタラプト信号INTを発生する。インタラプト信号INTによってホストインターフェースコントローラ310内のレジスタセット311のインタラプト情報が設定される。
【0047】
アドレス発生回路374は選択回路372から出力されるアドレスREQ_ADDによって設定され、状態マシン375の制御に応じて、次のアドレスを生成する。そのように生成された次のアドレスは、次のページアドレスとしてレジスタに貯蔵される。状態マシン375はヒット信号HITに応答して大ブロック用アドレス及び読み出し命令を発生する。大ブロック用アドレスはアドレス発生回路374からのアドレス(即ち、次のアドレスではなく、アドレス発生回路374に更新されたアドレス)を利用して生成される。状態マシン375からのアドレス及び命令はスイッチ350を通じてメモリインターフェースコントローラ360に伝達される。
【0048】
図5は本発明に係るメモリカードの読み出し/書き込み動作を説明するためのフローチャートである。以下、本発明によるメモリカードの読み出し/書き込み動作を参照図面に基づいて、以下、詳細に説明する。上述のように、読み出し動作モードは一度の読み出し命令に応じて、定めた分量のデータが連続的に出力される連続読み動作モード及び読み出し命令が入力される時だけ、データが出力されるランダム読み出し動作モードを含む。本発明に係るメモリカードは連続及びランダム読み出し動作モードで向上された読み出し性能を提供する。説明の便宜上、連続読み出し動作モードの説明の前に、ランダム読み出し動作モードを先に説明する。
【0049】
ホスト200からアドレス及び命令がメモリカード100に提供されれば、アドレス及び命令はホストインターフェースコントローラ310のレジスタセット310に貯蔵される。これと同時に、レジスタセット310にはインタラプト情報が設定される。インタラプト情報が設定されたことに従って、MCU320は入力された命令が読み出し命令であるか、書き命令であるかを判別する(410)。もし、入力された命令が書き命令であれば、MCU320はインタラプトを処理する(420)。即ち、MCUは内部メモリ330に貯蔵されたプログラムを利用して入力されたアドレス及び書き込み命令を大ブロックインターフェース方式に適するように変換し、変換されたアドレス及び書き込み命令をスイッチ360を通じてメモリインターフェースコントローラ360に出力する(430)。この時、加速イネーブル情報は加速器370のレジスタ371のないに設定されない。以後、よく知られた方式によってフラッシュメモリ120にデータがプログラムされる。
【0050】
もし、入力された命令が読み出し命令であれば、MCU320は制御信号HWACC_ENが活性化されたか否かを判別する(440)。例えば、MCU320は加速器370のレジスタ371に貯蔵された加速イネーブル情報に基づいて制御信号HWACC_ENの活性化を判別する。制御信号HWACC_ENが活性化されている場合、MCU320は動作しない。これに反して、制御信号HWACC_ENが非活性化されている場合、MCU320はインタラプトを発生する(420)。その後に、MCU320は大ブロック用アドレス及び命令を生成し、生成された大ブロック用アドレス及び命令がスイッチ350を通じてメモリインターフェースコントローラ360に伝送されるように選択信号SELを活性化させる。
【0051】
さらに、具体的に説明すれば、MCU320はホストインターフェースコントローラ310のレジスタセット311に貯蔵されたアドレス及び命令が入力され、内部メモリ330に貯蔵されたプログラムを利用して入力されたアドレス及び命令(即ち、小ブロック用アドレス及び命令)を大ブロック用アドレス及び命令に変換する。MCU320は変換されたアドレス及び命令をレジスタ340に一時貯蔵し、選択信号SELを活性化させる。これは、プログラムを利用してMCU320によって生成された大ブロック用アドレス及び命令がスイッチ350を通じてメモリインターフェースコントローラ360に伝達するようにする。また、MCU320は読み出し命令と共に入力されたアドレスに基づいて加速器370のレジスタ371にメモリブロック情報、ページ情報、及び加速イネーブル情報を貯蔵する。加速イネーブル情報が貯蔵されることによって、制御信号HWACC_ENは活性化される。以後、よく知られた方式によって、フラッシュメモリ120の読み出し動作がメモリインターフェースコントローラ360の制御に従って実行されるであろう(470)。読み出し動作に従って読み出されたデータはMCU320の制御下にバッファメモリ380に貯蔵され、ホスト200はバッファメモリ380に貯蔵されたデータを持って行く。
【0052】
先に説明した410〜440段階は以前動作サイクルで読み出し命令が入力されていない状態で現在動作サイクルで読み出し命令が入力される時、MCU320によって自動的に実行される。この時、アドレス及び命令変換は内部メモリ330に貯蔵されたプログラムを利用して実行される。この場合、実質的な読み出し動作時間と共にアドレス変換時間が追加的に要求される。
【0053】
続いて、図5を参照すれば、制御信号HWACC_ENが活性化されてあり、現在入力されたアドレスがレジスタ371に貯蔵されたアドレス情報と関連がある時、加速器370は貯蔵されたアドレス情報に従って、プログラムの介入なく、大ブロック用アドレス及び命令を生成する(460)。すなわち、以前動作サイクルで読み出し命令が入力された状態で現在動作サイクルで読み出し命令が入力されれば、加速器370はレジスタ371に貯蔵されたアドレス情報及びホストインターフェースコントローラ310に貯蔵された小ブロック用アドレス及び命令を利用してプログラムの介入なく、自動的に大ブロック用アドレス及び命令を生成する。さらに具体的に説明すれば、次のようになる。
【0054】
選択回路372は、読み出し動作モードに従って、レジスタ371に貯蔵された次のアドレスNEXT_ADDとホストインターフェースコントローラ310からの現在アドレスCUR_ADDのうちのいずれか一つを選択する。モード信号MODEがランダム読み出し動作モードを示すから、選択回路372はアドレスCUR_ADDを選択する。この時、アドレス発生回路374は選択回路372から出力されたアドレスREQ_ADDに更新される。判別回路373は以前動作サイクルで入力された命令が読み出し命令であり、現在動作サイクルで入力された命令が読み出し命令であるから活性化される。制御信号HWACC_EN及び読み出し信号READによって活性化される時、判別回路373は選択回路372からのアドレスREQ_ADDがレジスタ371に貯蔵されたブロックアドレスと一致し、レジスタ371に貯蔵された開始及び終了ページアドレスとの間に存在するか否かを判別する。もし、選択回路372からのアドレスREQ_ADDがレジスタ371に貯蔵されたブロックアドレスと一致し、レジスタ371に貯蔵された開始及び終了ページアドレスとの間で存在すれば、判別回路373はヒット信号HITを活性化させる。ヒット信号HITか活性化される時、状態マシン375はアドレズ発生回路374に更新されたアドレスを利用して大ブロック用アドレス及び命令を発生する。そのように生成された大ブロック用アドレス及び命令はスイッチ350を通じてメモリインターフェースコントローラ360に伝達される。これと同時に、状態マシン375は次のアドレスが生成されるようにアドレス発生回路374を制御する。先生されたアドレスは次のページアドレスとしてレジスタ371に貯蔵される。以後、よく知れれた方式によって、フラッシュメモリ120の読み出し動作が実行される(470)。読み出し動作に従って読み出されたデータは加速器370(例えば、状態マシン375)の制御下にバッファメモリ380に貯蔵され、ホスト200はバッファメモリ380に貯蔵されたデータを持って行く。
【0055】
もし、選択回路372からのアドレスREQ_ADDがレジスタ371に貯蔵されたブロックアドレスと一致しないか、レジスタ371に貯蔵された開始及び終了ページアドレスの間で存在しなかければ、判別回路373はヒット信号HITを非活性化させ、インタラプト信号を発生する。インタラプト信号INTによってホストインターフェースコントローラ310内のレジストセット311のインタラプト情報が設定される。これはMCU320が先に説明したことと同一の方式で大ブロック用アドレス及び命令を生成するようにする。
【0056】
連続読み出し動作モードによるメモリカード100の動作は選択回路372がアドレスNEXT_ADDを選択し、判別回路373が以前の読み出し動作によって読み出されたデータが全てホスト200に伝送される時、動作するという点を除去すれば、ランダム読み出し動作モードのそれと同一であるので、それに対する説明は省略する。
【0057】
以上の説明から分かるように、ホスト200から提供されるアドレス及び命令を変換する時間を除去することによって、メモリカード100の読み出し性能を向上させることができる。さらに具体的に説明すれば、次のようになる。まず、メモリカード100において、メモリカードの動作状態を示すR/nB信号はアドレス及び命令の入力の時、ローに遷移し、一定時間(以下、「t1」に表記する)の後にハイに遷移する。ここで、t1はメモリブロックの選択されたページからバッファメモリにデータを移るのにかかる時間である。以後、読み出されたデータは一定時間(以下、「t2」に表記する)の間ホスト200に伝送される。
【0058】
まず、メモリカード100のページサイズか512Bである場合、メモリカード100はホスト200からのアドレス及び命令(連続読み出し動作命令)に応答して、アドレス及び命令変換なく、すぐ読み出し動作を実行する。この時、図6に図示されたように、R/nB1信号は読み出し動作の間、即ち、t1区間の間ローに維持される。その後に、R/nB1信号はt2時間の間ハイに遷移し、この区間の間読み出されたデータがホスト200に伝送される。このような動作は要求されるデータが全てホストに伝送されるまで繰り返される。
【0059】
もし、メモリカード100のページサイズが2KBであれば、ホスト200から提供されたアドレス及び命令(即ち、小ブロック用アドレス及び命令)はメモリカード100内で大ブロック用アドレス及び命令に変更されるべきである。以下、アドレス及び命令を変更するのにかかる時間はt3に表記される。一旦、ホスト200から小ブロック用アドレス及び命令が提供されれば、R/nB2信号はローに遷移する。この時、メモリカード100のMCU320は先に説明したような方式で小ブロック用アドレス及び命令を大ブロック用アドレス及び命令に変換する。そのように変換されたアドレス及び命令に従って読み出し動作がt1時間の間実行される。以後、図6に図示されたように、R/nB2信号はt2時間の間ハイに遷移し、この区間の間読み出されたデータがホスト200に伝送される。読み出されたデータが全てホストに伝送されれば、MCU320は再び次のページをアクセスするための大ブロック用アドレス及び命令を準備し、準備されたアドレス及び命令に従って読み出し動作がt1時間の間実行される。以後の動作は先に説明したように同一に実行されるので、それに対する説明は省略する。このような連続的な読み出し方式によれば、毎ページをアクセスする時たびに、アドレス及び命令を準備するのにかかる時間t3が必要である。
【0060】
しかし、本発明によるメモリカード100の場合、一番目のページの読み出し動作を除去して、残りのページの読み出しページ動作に必要なアドレス及び命令を準備する時間は除去される。メモリカード100のページサイズが2KBである場合、先に説明したように、ホスト200から提供されたアドレス及び命令(即ち、小ブロック用アドレス及び命令)はメモリカード100内で大ブロック用アドレス及び命令に変更されるべきである。一旦、ホスト200から小ブロック用アドレス及び命令が提供されれば、図6に図示されたように、R/nB3信号はローに遷移する。この時、メモリカード100のMCU320は先に説明したような方式で小ブロック用アドレス及び命令を大ブロック用アドレス及び命令に変換する。そのように変換されたアドレス及び命令によって読み出し動作がt1時間の間実行される。以後、図6に図示されたように、R/nB3信号はt2時間の間ハイに遷移し、この区間の間読み出されたデータがホスト200に伝送される。先に言ったように、加速器370は、次のページのアクセスに先行して、以前に入力されたアドレスを利用して、次にアクセスされるページのアドレスを準備する。一旦、読み出されたデータが全てホストに伝送されれば、MCU320の代わりに加速器370によって、予め準備されたアドレス及び命令に従って次のページに対する読み動作がt1時間の間実行される。以後の動作は先に説明したように、同一に実行されるので、これに対する説明は省略する。このような連続的な読み方式によれば、一番目のページをアクセスする時だけ、アドレス及び命令変更時間t3が必要し、残りのページをアクセスする時にはt3時間は要らない。従って、本発明によるメモリカード100の読み出し性能を向上させることができる。
【0061】
連続的な読み出し動作モードと同様に、ランダム読み出し動作モードでも読み出し性能が向上されることができる。すなわち、ランダム読み出し動作のための読み出し命令が連続的に入力される場合、図7に図示されたように、一番目に入力された読み出し命令に対するアドレス及び命令変換はプログラムを利用してMCU320によって生成する。以後、図7に図示されたように、入力される読み出し命令に対するアドレス及び命令変換はプログラムの介入なく、(または、アドレス及び命令変換時間なく)加速器370によって自動的に行う。即ち、アドレス及び命令を変換するための時間を除去することができ、その結果メモリカード100の読み出し性能が向上する。
【0062】
図8は本発明の他の実施例に係るメモリコントローラを示すフロック図である。図8に図示されたメモリコントローラはインタラプトコントローラ390が追加された点を除去すれば、図3に図示されたことと同一であるので、それに対する説明は省略する。図8に図示されたインタラプトコントローラ390はホストインターフェースコントローラ310内のレジスタセット311にインタラプト情報が設定される時、インタラプト信号を発生するように構成される。インタラプト信号が生成される時、MCU320は先に説明されたことと同一にアドレス及び命令変換動作を実行する。
【0063】
本発明の範囲または技術的の思想を抜けなく、本発明の構想が多様に修正または、変更されることができるのはこの分野で熟練された者に自明である。上述の内容を考慮すれば、もし、本発明の修正及び変更が請求項及び同等物の範疇内に属したら、本発明がこの発明の変更及び修正を含むことと見なされる。
【図面の簡単な説明】
【0064】
【図1】本発明に係るメモリカードを概略的に示すブロック図である。
【図2】小ブロック及び大ブロック間のページマッピング関係を説明するための図面である。
【図3】本発明の一実施形態に係る図1に図示されたメモリコントローラを示すブロック図である。
【図4】本発明の望ましい実施形態に係る図3に図示された加速器を示すブロック図である。
【図5】本発明に係るメモリカードの読み出し/書き込み動作を説明するためのフローチャートある。
【図6】連続的な読み出し動作の時、ページサイズによる読み出し性能を説明するための図面である。
【図7】ランダム読み出し動作の時、ページサイズによる読み出し性能を説明するための図面である。
【図8】本発明の他の実施例に係る図1に図示されたメモリコントローラを示すブロック図である。
【符号の説明】
【0065】
100 メモリカード
200 ホスト
310 ホストインターフェースコントローラ
320 MCU
330 内部メモリ
340 レジスタ
350 スイッチ
360 メモリインターフェースコントローラ
370 加速器
380 バッファメモリ
390 インタラプトコントローラ

【特許請求の範囲】
【請求項1】
メモリカードにおいて、
ホストシステムから第1命令及び第1外部アドレスを伝達されるメモリコントローラと、
第1及び第2内部アドレスに従ってデータのページにアクセスするフラッシュメモリモジュールとを含み、
前記メモリコントローラは、
貯蔵されたプログラムによって前記第1外部アドレスを前記第1内部アドレスに変換させる第1回路と、
読み出し信号と加速イネーブル信号に応答して前記第1内部アドレス及び前記第1外部アドレスを利用して前記第2内部アドレスを発生させる第2回路とを含み、
ここで、前記フラッシュメモリモジュールが前記第1内部アドレスを利用して読み出し動作のためのデータのページにアクセスした後、前記第1回路は前記第2回路でハードウエアアクセレレーションフラッグを設置し、
前記メモリコントローラが前記ホストシステムから読み出し命令を伝達される時たびに、前記第2回路は前記読み出し信号を活性化させることを特徴とするメモリカード。
【請求項2】
前記メモリコントローラは、前記第1命令を伝達された後、第2命令と第2外部アドレスを伝達され、
ここで、前記第1及び第2命令は、任意の読み出し命令であることを特徴とする請求項1に記載のメモリカード。
【請求項3】
前記第1回路は、前記第1外部アドレスを前記第1命令を伝達される前記第2回路に伝送し、
前記第2回路は、前記第1外部アドレスを貯蔵することを特徴とする請求項2に記載のメモリカード。
【請求項4】
各々の前記第1及び第2外部アドレスは、
メモリブロックアドレス及び、
開始及び終了ページアドレスを含むことを特徴とする請求項3に記載のメモリカード。
【請求項5】
前記ハードウエアアクセレレーションフラッグが設置される時、前記第2回路は前記第1及び前記第2外部アドレスが同一なメモリブロックアドレスを有するか、それとも、前記第2外部アドレスが前記第1外部アドレスの開始及び終了ページアドレスの間でページアドレスを有するかを決定することを特徴とする請求項4に記載のメモリカード。
【請求項6】
前記第1及び第2外部アドレスが前記同一なメモリブロックアドレスを有し、前記第2外部アドレスが前記第1外部アドレスの前記開始及び終了アドレスとの間で、ページアドレスを有すれば、前記第2回路は前記第2内部アドレスを発生することを特徴とする請求項5に記載のメモリカード。
【請求項7】
前記第1及び第2外部アドレスが前記同一なメモリブロックアドレスを有していなければ、または、前記第2外部アドレスが前記第1アドレスの前記開始及び終了ページアドレスとの間でページアドレスを有していなければ、前記第2回路は前記メモリコントローラ内にインタラプトフラッグを設置するためのインタラプト信号を活性化させ、その結果、前記第1回路は第1内部アドレスを発生させることを特徴とする請求項5に記載のメモリカード。
【請求項8】
前記第1命令は、順次的読み出し命令であることを特徴とする請求項1に記載のメモリカード。
【請求項9】
前記第1回路は前記第1外部及び内部アドレスを前記第2回路に伝達して、前記第2回路は基準アドレスとして前記第1外部アドレスを貯蔵し、
前記第2回路は、前記第1外部アドレスを利用して、次のアドレスを発生することを特徴とする請求項8に記載のメモリカード。
【請求項10】
前記第1外部アドレスは、
メモリブロックアドレスと、
開始及び終了ページアドレスを含むことを特徴とする請求項9に記載のメモリカード。
【請求項11】
前記ハードウエアアクセレレーションフラッグか設置される時、前記第2回路は新しいアドレス及び前記基準アドレスが前記同一なメモリブロックアドレスを有しているか、それとも、前記新しいアドレスが前記基準アドレスの前記開始及び終了ページアドレスとの間にページアドレスを有しているかを決定することを特徴とする請求項10に記載のメモリカード。
【請求項12】
前記新しいアドレスと前記基準アドレスは前記同一なメモリブロックアドレスを有しているか、そして前記新しいアドレスが前記基準アドレスの前記開始及び終了ページアドレスとの間でページアドレスを有しているかを決定する時、前記第2回路は前記第1外部及び内部アドレスを利用して前記第2内部アドレスを発生させることを特徴とする請求項11に記載のメモリカード。
【請求項13】
前記新しいアドレス及び前記基準アドレスが前記同一なメモリブロックアドレスを有せず、或いは、前記新しいアドレスが前記基準アドレスの前記スタート及びエンドページアドレスとの間でページアドレスを有しないかを決定する時、前記第2回路は前記メモリコントローラ内にインタラプトフラッグを設置するためのインタラプト信号を活性化させる。その結果、前記第1回路は第1内部アドレスを発生することを特徴とする請求項11に記載のメモリカード。
【請求項14】
前記第1回路は読み出し動作で前記フラッシュメモリモジュールにアクセスした後、前記第1外部アドレスを前記第2回路に伝達し、
ここで、前記第1外部アドレスはメモリブロックアドレスと開始及び終了ページアドレスを含むことを特徴とする請求項1に記載のメモリカード。
【請求項15】
前記第2回路は、
前記ハードウエアアクセレレーションフラッグと前記外部アドレスから抽出した基準アドレスを貯蔵するレジスタと、
モード信号に応答して現在の外部のアドレスと次のアドレスとの間で選択し、新しいアドレスに前記選択されたアドレスを出力する選択回路と、
前記基準アドレスと前記新しいアドレスが前記同一なメモリブロックアドレスを有しているか、そして前記新しいアドレスが前記基準アドレスの前記開始及び終了ページアドレスとの間でページアドレスを有しているかを感知するヒット信号を発生する判断回路と、
前記選択回路から前記新しいアドレスを伝達され、前記新しいアドレスを利用して前記の次のアドレスを出力するアドレス発生器と、
前記ヒット信号に応答して前記の次のアドレスを利用して前記内部アドレスを発生する状態マシンを含むことを特徴とする請求項14に記載のメモリカード。
【請求項16】
前記第2内部アドレスを発生させる時、前記状態マシンはあらかじめ決定された値に従って増加する前記の次のアドレスのため、前記アドレス発生器に制御信号を送ることを特徴とする請求項15に記載のメモリカード。
【請求項17】
前記の次のアドレスは前記基準アドレスとして前記レジスタに貯蔵されることを特徴とする請求項16に記載のメモリカード。
【請求項18】
前記選択回路は前記モードが任意の読み動作するモードを指示する時、前記現在のアドレスを選択し、前記モード信号が順次的読み出し動作するモードを指示する時、前記の次のアドレスを選択されることを特徴とする請求項15に記載のメモリカード。
【請求項19】
前記新しいアドレスが前記基準アドレスから互いに異なるメモリブロックアドレスを有しており、或いは、前記新しいアドレスが前記基準アドレスの前記開始及び終了ページアドレスとの間にない時、前記判断回路は前記メモリコントローラで設置されるインタラプトフラッグにより、インタラプト信号を発生させることを特徴とする請求項15に記載のメモリカード。
【請求項20】
前記メモリカードは、
前記第1回路による選択信号出力に応答して前記フラッシュメモリモジュールに前記第1及び第2内部アドレスを伝達するスイッチをさらに含むことを特徴とする請求項1に記載のメモリカード。
【請求項21】
不揮発性メモリ装置のためのメモリコントローラにおいて、
プログラムを貯蔵する内部メモリと、
第1内部アドレスを生産するために、前記プログラムを使って第1外部アドレスを処理するマイクロコントローラユニットと、
第2内部アドレスを発生させるために、前記第1外部アドレスと前記第1内部アドレスを利用して第2外部アドレスを処理する加速器と、
前記マイクロコントローラ、前記加速器及びホストシステムの間をインターフェースするホストインターフェースと、
前記マイクロコントローラ、前記加速器及び前記不揮発性メモリの間でインターフェースするメモリインターフェースとを含むことを特徴とするメモリコントローラ。
【請求項22】
前記加速器は前記マイクロコントローラユニットから伝達されたハードウエアアクセレレーションフラッグに応答して動作することを特徴とする請求項21に記載のメモリコントローラ。
【請求項23】
メモリコントローラと、
不揮発性メモリ装置と前記メモリコントローラとの間にインターフェースするメモリインターフェースとを含み、
前記メモリコントローラは、
第1内部アドレスを生成するために貯蔵されたプログラムを使って第1外部アドレスを処理するマイクロコントローラと、
前記第1内部及び外部アドレスを利用して第2外部アドレスを処理する加速器とを含むことを特徴とする不揮発性メモリカード。
【請求項24】
前記加速器は前記マイクロコントローラユニットから伝達されたハードウエアアクセレレーションフラッグに応答して動作することを特徴とする請求項23に記載の不揮発性メモリカード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2006−331408(P2006−331408A)
【公開日】平成18年12月7日(2006.12.7)
【国際特許分類】
【出願番号】特願2006−118309(P2006−118309)
【出願日】平成18年4月21日(2006.4.21)
【出願人】(390019839)三星電子株式会社 (8,520)
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【Fターム(参考)】