JP2004280790A - Ecc制御装置 - Google Patents

Ecc制御装置 Download PDF

Info

Publication number
JP2004280790A
JP2004280790A JP2004016180A JP2004016180A JP2004280790A JP 2004280790 A JP2004280790 A JP 2004280790A JP 2004016180 A JP2004016180 A JP 2004016180A JP 2004016180 A JP2004016180 A JP 2004016180A JP 2004280790 A JP2004280790 A JP 2004280790A
Authority
JP
Japan
Prior art keywords
circuit
data
host
signal
input
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
JP2004016180A
Other languages
English (en)
Other versions
JP4550439B2 (ja
Inventor
Kenji Sakagami
健二 坂上
Hiroshi Sukegawa
博 助川
Hitoshi Tsunoda
仁 角田
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.)
Toshiba Corp
Toshiba Electronic Device Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Microelectronics 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 Toshiba Corp, Toshiba Microelectronics Corp filed Critical Toshiba Corp
Priority to JP2004016180A priority Critical patent/JP4550439B2/ja
Priority to US10/787,183 priority patent/US7516371B2/en
Publication of JP2004280790A publication Critical patent/JP2004280790A/ja
Application granted granted Critical
Publication of JP4550439B2 publication Critical patent/JP4550439B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk

Abstract

【課題】ホスト或いはメモリカードにおける既存の回路変更を少なくしてECCの機能強化を可能とする。
【解決手段】ホストとメモリとの間に接続されたECC制御装置であって、前記ホストとの間でデータの入力及び出力を行う第1入出力回路と、前記第1入出力回路に入力された所定データ長を有する書き込みデータのうち、保護対象である保護領域とそれ以外の冗長領域とを検出する検出回路と、前記保護領域のデータに対してエラー訂正符号を生成する生成回路と、前記冗長領域に前記訂正符号を挿入する訂正符号挿入回路と、前記メモリとの間でデータの入力及び出力を行う第2入出力回路とを有する。
【選択図】 図3

Description

本発明は、ホストから出力されたデータをメモリに記憶し、或いはメモリに記憶したデータをホストが読み出す際に用いられるECC(Error Check and Correct)制御装置に係り、特にホストとメモリとの間のバスを中断して挿入されるECC制御装置に関する。
1つのメモリセルが記憶できる情報(値)の数を2値から多値(3値以上)に変更することで、記憶素子としてメモリセルを有する例えばメモリカードの大容量化が可能となる。しかし、メモリセルに多値を用いたメモリカードでは、セル保持データの経年劣化や、データの書き込み及び消去の繰り返し等により、メモリセルが劣化してしまう。これにより、記憶データの信頼性が2値メモリカードに比べて低下してしまう。
このようなメモリセルの信頼性の低下を防止するための方法として、新たなエラー訂正手段を備えた記憶装置が提案されている(特許文献1参照)。
ところが、新たなエラー訂正手段を追加するには、メモリカード或いはメモリカードにデータの書き込み等を行うホストの回路変更等を行う必要がある。また、上記ホストの回路変更を行った場合、新たなエラー訂正手段を制御するためにホストの処理負担が増大してしまう。
特開2000−349652号公報
本発明は、上記のような事情に鑑みてなされたもので、ホスト或いはメモリにおける既存の回路変更を少なくし、且つホストの処理負担を増やすことなくECCの機能強化が可能なECC制御装置を提供することを目的とする。
上記目的を達成するために本発明の第1の視点に係るECC制御装置は、ホストとメモリとの間に接続されたECC制御装置であって、前記ホストとの間でデータの入力及び出力を行う第1入出力回路と、前記第1入出力回路に入力された所定データ長を有する書き込みデータのうち、保護対象である保護領域とそれ以外の冗長領域とを検出する検出回路と、前記保護領域のデータに対してエラー訂正符号を生成する生成回路と、前記冗長領域に前記訂正符号を挿入する訂正符号挿入回路と、前記メモリとの間でデータの入力及び出力を行う第2入出力回路と、前記第2入出力回路に入力された前記所定データ長を有する読み出しデータに対し、当該読み出しデータが有する前記エラー訂正符号を用いてシンドローム演算を行い且つシンドローム信号を生成するシンドローム回路と、前記シンドローム信号に基づいてエラーの訂正を行う訂正回路とを有する。
本発明によれば、ホスト或いはメモリにおける既存の回路変更を少なくし、且つホストの処理負担を増やすことなくECCの機能強化が可能なECC制御装置を提供することができる。
以下、このような知見に基づいて構成された本発明の実施の形態について図面を参照して説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
図1は、この実施形態の全体構成を示すブロック図である。
本実施形態では、メモリカードとして例えばNANDフラッシュメモリを用いている。また本実施形態では、例えば4個のNANDフラッシュメモリからなるNANDフラッシュメモリモジュール2を実装している。ホスト3は、NANDメモリインタフェース回路を備えたNANDメモリ制御装置等により構成される。またホスト3は、例えばパーソナルコンピュータからなり、NANDフラッシュメモリモジュール2に対してデータの書き込み、或いはデータの読み出し等を行うものであってもよい。さらに、ホスト3とNANDフラッシュメモリモジュール2との間に、ECCコントローラ1を備えている。このECCコントローラ1は、例えばホスト3が備えるNANDメモリインタフェース回路とNANDフラッシュメモリモジュール2との間のバスを中断して挿入されている。
ホスト3とECCコントローラ1とは、例えば8ビットからなる双方向データバスFDH[7:0](以後、バスFDHと称す)と、4ビットのチップイネーブル(CE[3:0])信号(以後、CE信号と称す)の信号線5と、リードイネーブル(RE)信号及びライトイネーブル(WE)信号の信号線6と、アドレスラッチイネーブル(ALE)信号及びコマンドラッチイネーブル(CLE)信号の信号線7と、割り込み(INTN)信号の信号線13とにより接続されている。
ホスト3は、上記モジュール2に対するコマンド、アドレス及びライトデータをバスFDHに出力する。またホスト3は、上記モジュール2から出力されたリードデータ及び上記モジュール2のステータス情報等をバスFDHを介して読み出す。またホスト3は、上記ECCコントローラ1から出力されるエラー訂正情報等をバスFDHを介して読み出す。
CE信号は、ホスト3が上記モジュール2にアクセス中であることを示す信号である。RE信号は、ホスト3が上記モジュール2からデータを読み出し中であることを示す信号である。WE信号は、ホスト3が上記モジュール2にデータを書き込み中であることを示す信号である。ALE信号は、ホスト3が上記モジュール2にアドレスデータを転送中であることを示す信号である。CLE信号は、ホスト3が上記モジュール2にコマンドデータを転送中であることを示す信号である。CE、RE及びWE信号は、例えばローレベルでアクティブとなる。ALE及びCLE信号は、例えばハイレベルがアクティブとなる。
ECCコントローラ1と上記モジュール2とは、8ビットの双方向データバスFDN[7:0](以後、バスFDNと称す)と、4ビットのチップイネーブル(CEo[3:0])信号(以後、CEo信号と称す)の信号線8と、リードイネーブル(REo)信号及びライトイネーブル(WEo)信号の信号線9と、アドレスラッチイネーブル(ALEo)信号及びコマンドラッチイネーブル(CLEo)信号の信号線10により接続されている。上記ECCコントローラ1から出力される各イネーブル信号は、ホスト3から出力される各イネーブル信号に基づいて生成される。この生成処理については後述する。
上記モジュール2とホスト3とは、レディー/ビジー(R/B)信号の信号線11と、その他信号を転送する信号線12とにより接続されている。なお、ECCコントローラ1を挿入する場合と挿入しない場合とで変更のない信号は、図1中のその他信号として表示している。R/B信号は、上記モジュール2のレディー状態(ハイレベル)或いはビジー状態(ローレベル)を表す信号である。上記モジュール2からデータを読み出す場合、ホスト3はリードコマンドを発行した後、上記モジュール2がレディーになった時点でデータの読み出しが可能となる。
一方上記モジュール2へのデータの書き込む場合、ホスト3は、WE信号を使って上記モジュール2が内蔵するデータバッファへデータを書き込んだ後、プログラムコマンド(上記データバッファからセルへデータを書き込むためのコマンド)を実行する。プログラムコマンドが実行されると、上記モジュール2は、R/B信号をビジーにすることで、プログラム実行中であることをホスト3に通知する。さらに、上記モジュール2は、R/B信号をレディーにすることで、次のデータ書き込みが可能であることをホスト3に通知する。
図2は、図1に示したNANDフラッシュメモリモジュール2の内部構成を示すブロック図である。NANDフラッシュメモリモジュール2は、例えば4個のNANDフラッシュメモリ2A,2B,2C,2Dを備えている。8ビット双方向データバスFDN[7:0]と、ALEo,CLEo,WEo,REo信号の信号線9,10と、その他信号の信号線12とは、4個のNANDフラッシュメモリ2A〜2Dに共通に接続される。4ビットのCEo[3:0]信号の信号線8は、CEo[0]がNANDフラッシュメモリ2Aに、CEo[1]がNANDフラッシュメモリ2Bに、CEo[2]がNANDフラッシュメモリ2Cに、CEo[3]がNANDフラッシュメモリ2Dにそれぞれ接続される。またNANDフラッシュメモリ2A〜2Dから出力されるR/B信号の信号線11は、ワイアードロジックによりNANDフラッシュメモリモジュール2共通の1ビットのR/B信号としてホスト3に接続される。
なお、NANDフラッシュメモリの個数はこれに限定されず、CEo信号のビット数によって変更可能である。本実施形態では、4ビットのCEo信号を用いている。例えば4ビットのCEo信号のうち、0ビット目はNANDフラッシュメモリ2Aに、1ビット目はNANDフラッシュメモリ2Bに、2ビット目はNANDフラッシュメモリ2Cに、3ビット目はNANDフラッシュメモリ2Dに夫々割り当てられる。各NANDフラッシュメモリは、各自割り当てられたビットがアクティブになることで動作する。なお、NANDフラッシュメモリ2A〜2Dの動作は同じである。よって、重複説明を避けるため、以後NANDフラッシュメモリ(以後、NANDメモリと称す)2Aの動作について説明する。
図3は、ECCコントローラ1の内部構成を示すブロック図である。ECCコントローラ1は、データパス/ECC回路100と、イネーブルインターフェース/クロック回路200と、制御回路300と、カウンタ400と、I/Oレジスタ500とから構成されている。データパス/ECC回路(以後、DP/ECC回路と称す)100は、ライトデータ及びリードデータのデータパス処理と、ECCコードの生成及びエラー訂正等の処理とを行う。イネーブルインターフェース/クロック回路(以後、EI/C回路と称す)200は、各イネーブル信号の遅延時間調整や、クロック生成等を行う。カウンタ400は、ライトデータ或いはリードデータのバイト数のカウントと、RE信号或いはWE信号のパルス数のカウントとを行う。I/Oレジスタ500は、ホスト3から入力されたデータを記憶する。
図4は、制御回路300の内部構成を示すブロック図である。制御回路300は、DP/ECC回路100及びEI/C回路200が行う処理に必要な制御信号を生成し、この生成した制御信号を上記2つの回路に夫々出力する。また制御回路300は、バス監視回路301と、コマンド/アドレス出力回路302と、書き込み回路303と、読み出し回路304とを備えている。
バス監視回路301は、バスFDH及びFDNの入出力データの監視を行う。ECCコントローラ1の入出力データがない時は、バスFDH及びFDNにデータを出力しない。これは、バス監視回路301が、制御信号NOUTE及びHOUTEを生成し、これらの制御信号を後述するDP/ECC回路100内のトライステートバッファ106及び111に入力することにより行う。これにより、バスを中断して挿入されたECCコントローラ1から余分なデータが出力されず、ホスト3或いはNANDメモリ2Aの誤動作を防止することが可能となる。
コマンド/アドレス出力回路302は、ホスト3が出力したコマンド及びアドレスの検出及びコマンド及びアドレスをNANDメモリ2Aに転送するための制御を行う。また、各制御信号を生成してDP/ECC回路100に出力する。
書き込み回路303は、ライトデータ及びECCコードの書き込み制御を行う。またカウンタ400を使用してブロックデータのバイト数をカウントし、厳密なタイミングでECCコードの挿入を行う。また書き込み回路303は、各制御信号を生成してDP/ECC回路100に出力する。
読み出し回路304は、リードデータの読み出し制御を行う。また、訂正回路114等を使用してエラー訂正を実行し、訂正回路114が生成した各情報をホスト3に転送する。また読み出し回路304は、各制御信号を生成してDP/ECC回路100に出力する。
さらに制御回路300は、クロック生成回路305と、CE信号生成回路306と、割り込み回路307と、ECC領域変更回路309と、専用コマンド回路310とを備えている。
クロック生成回路305は、WE/REクロック代用モードの切り替えを行う。またクロック生成回路305は、WE/REクロック代用モード時のクロック生成制御を行う。ECCコントローラ1は、ホスト3から取得したクロック(DCLK)を使用する通常のクロックモードと、RE信号或いはWE信号を使用してECCコントローラ1の動作に必要なクロック(CLK)を生成するWE/REクロック代用モードとを備える。さらにクロック生成回路305は、WE/REクロック代用モードが選択された場合には、カウンタ400によるカウント値を使用して、NANDメモリ2Aに不要なRE信号及びWE信号を厳密なタイミングでマスクする機能を備えている。
CE信号生成回路306は、ダイナミックCEモードとスタティックCEモードとを制御する。ECCコントローラ1は、チップイネーブル信号の出力方法として、ホスト3から入力されるCE信号に基づいてCEo信号を出力するダイナミックCEモードと、I/Oレジスタ500に書き込んだチップイネーブル信号を出力するスタティックCEモードとを備えている。CE信号生成回路306は、上記2つのモードの切り替えを行う。またCE信号生成回路306は、スタティックCEモードが選択された場合に、スタティックCE信号をNANDメモリ2Aに出力する。
割り込み回路307は、割り込み信号をアクティブにし、ホスト3に対して割り込み制御を行う。また割り込み回路307は、エラー情報出力回路308を備えている。エラー情報出力回路308は、上記割り込み信号のアクティブ時、後述する訂正回路114が生成したエラー訂正処理の結果を表す各情報を、上記割り込み信号のアクティブと同時にホスト3に出力する。
ECC領域変更回路309は、ECCコントローラ1が生成したECCコードをブロックデータに挿入する位置を、後述する各データフォーマットに基づいて変更する。またECC領域変更回路309は、ECCコードを挿入するタイミングを制御し、このタイミングに基づいて制御信号NDOSを生成する。
専用コマンド回路310は、ホスト3から入力されるECCコントローラ1用の命令として定義された専用コマンドを検出すると、以後ホスト3から入力されるコマンドをNANDメモリ2Aに出力しないように制御する。
図5は、EI/C回路200の回路構成を示すブロック図である。
EI/C回路200に入力されたCE信号は、4入力NAND回路201とセレクタ202に入力される。なお前述したように、当該ECCコントローラ1は、チップイネーブルのモードとしてダイナミックCEモードとスタティックCEモードとを備えている。通常、ECCコントローラ1はダイナミックCEモードで動作する。このダイナミックCEモードでは、セレクタ202はホスト3から入力されるCE信号をスルー出力する。スタティックCEモードについては後述する。セレクタ202から出力された信号は、遅延回路203により所定時間遅延され、バッファ204を介して信号線8からCEo信号として出力される。4入力NAND回路201から出力された信号(CEiN)は、NAND回路207とNAND回路215とに入力される。
EI/C回路200に入力されたWE信号は、遅延回路205とNAND回路207とセレクタ208とAND回路221とに入力される。遅延回路205に入力されたWE信号は、所定時間遅延され、バッファ206を介してクロックWE_CLKとして出力される。NAND回路207から出力された信号は、セレクタ208に入力される。セレクタ208は、ダイナミックCEモードではWE信号を選択する。セレクタ208から出力された信号は、NOR回路209に入力される。またNOR回路209には、制御回路300から出力されるマスク信号MSK_WEが入力される。NOR回路209から出力された信号は、遅延回路210により所定時間遅延され、インバータ回路211に入力される。インバータ回路211から出力された信号は、WEo信号として出力される。またインバータ回路211から出力された上記信号は、バッファ212を介してクロックWEo_CLKとして出力される。
EI/C回路200に入力されたRE信号は、遅延回路213とNAND回路215とセレクタ216と上記AND回路221とに入力される。遅延回路213に入力されたRE信号は、所定時間遅延され、バッファ214を介してクロックRE_CLKとして出力される。NAND回路215から出力された信号は、セレクタ216に入力される。セレクタ216は、ダイナミックCEモードではRE信号を選択する。セレクタ216から出力された信号は、NOR回路217に入力される。またNOR回路217には、制御回路300から出力されるマスク信号MSK_REが入力される。NOR回路217から出力された信号は、遅延回路218により所定時間遅延され、インバータ回路219に入力される。インバータ回路219から出力された信号は、REo信号として出力される。またインバータ回路219から出力された上記信号は、バッファ220を介してクロックREo_CLKとして出力される。
AND回路221から出力された信号は、セレクタ222に入力される。セレクタ222は、AND回路221から入力された信号とダイレクトクロック(DCLK)とのいずれかを、制御回路300から入力される制御信号DCLKSELに基づいて選択する。セレクタ222から出力された信号は、遅延回路223により所定時間遅延され、バッファ224を介してクロックCLKとして出力される。クロックCLKは、当該ECCコントローラ1のクロックとして使用される。
EI/C回路200に入力されたCLE信号は、遅延回路225により所定時間遅延され、バッファ226を介してCLEo信号として出力される。上記EI/C回路200に入力されたALE信号は、遅延回路227により所定時間遅延され、バッファ228を介してALEo信号として出力される。
遅延回路203,205,210,213,218,223,225,227の遅延時間は、ECCコントローラ1内部の配線遅延を同一に揃え、かつホスト3のバスタイミングを保つことができる値に設定される。これにより、ECCコントローラ1を挿入したことにより、ECCコントローラ1内の各配線の長さの違いによる信号遅延を統一することができる。よって、ホスト3から入力された各イネーブル信号の相互間のタイミングが保持されてNANDメモリ2Aに出力される。
図6は、DP/ECC回路100の回路構成を示す図である。
バスFDHから入力されたデータは、バッファ101に入力される。バッファ101から出力されたデータは、信号線FDHIを介してセレクタ105とフリップフロップ102に入力される。フリップフロップ102は、クロックWE_CLKに基づいて入力データのラッチを行う。フリップフロップ102から出力されたデータは、8ビットからなる信号線HDI_WEi[7:0]を介してセレクタ103とセレクタ112とに入力される。セレクタ112に入力されたデータは、制御回路300から入力される制御信号DINSにより選択され、8ビットからなる信号線DIN[7:0]を介してECC回路120内の訂正符号/シンドローム回路113に入力される。なお、ECC回路120は、訂正符号/シンドローム回路113と訂正回路114とを含む。
訂正符号/シンドローム回路113は、ホスト3からNANDメモリ2Aに書き込むライトデータに対して、ECCコード(誤り訂正符号として、例えばリードソロモン(Reed−Solomon)符号を用いる)を生成する。この生成されたECCコードは、8ビットからなる信号線CODE[7:0]を介してセレクタ103に入力される。セレクタ103は、制御回路300から入力される制御信号NDOSに基づいて、上記ライトデータに上記ECCコードを挿入する。セレクタ103から出力されたデータは、フリップフロップ104に入力される。
フリップフロップ104は、クロックWEo_CLKに基づいて入力データのラッチを行う。フリップフロップ104から出力されたデータは、8ビットからなる信号線NDO_WEoN[7:0]を介してセレクタ105に入力される。セレクタ105は、制御回路300から入力される制御信号FDHISに基づいて、8ビットからなる信号線FDHI[7:0]のデータを出力するか、或いは8ビットからなる信号線NDO_WEoN[7:0]のデータを出力するかを選択する。セレクタ105から出力されたデータは、8ビットからなる信号線NDHO[7:0]を介してトライステートバッファ106に入力される。トライステートバッファ106は、制御回路300から入力される制御信号NOUTEに基づいてデータの出力を行う。トライステートバッファ106から出力されたデータは、上記バスFDNからNANDメモリ2Aへ出力される。
一方、バスFDNから入力された読み出しデータは、バッファ107に入力される。なお、バッファ101,107は、外部回路との相互作用防止等のために用いられている。バッファ107から出力されたデータは、8ビットからなる信号線NDHI[7:0]を介してフリップフロップ108に入力される。フリップフロップ108は、クロックRE_CLKに基づいて入力データのラッチを行う。フリップフロップ108から出力されたデータは、8ビットからなる信号線NDI_REo[7:0]を介してセレクタ109とセレクタ112に入力される。セレクタ112に入力されたデータは、制御回路300から入力される制御信号DINSにより選択され、8ビットからなる信号線DIN[7:0]を介して訂正符号/シンドローム回路113に入力される。
訂正符号/シンドローム回路113は、ホスト3がNANDメモリ2Aから読み出すリードデータに対して、ECCコードを用いてシンドローム演算を行う。このシンドローム演算の結果生成されたシンドロームは、訂正回路114に入力される。訂正回路114は、上記シンドロームを基に、エラーデータの有無を判定する。エラーデータがなければ、正常に読み出しが行われた旨の正常終了情報を生成し、この正常終了情報を出力する。
一方、エラーデータがあった場合は、訂正回路114は訂正情報を生成する。さらに、訂正回路114は、訂正処理が正常に終了した旨の訂正終了情報を生成し、上記訂正終了情報及び訂正情報を出力する。ところで、エラーデータがあった場合において、訂正回路114は、5シンボル以上のエラーデータを検出した場合には訂正不可能であると判定する。そして訂正回路114は、上記訂正不可能である旨の異常終了情報を生成し、この異常終了情報を出力する。
訂正回路114から出力されたデータは、8ビットからなる信号線ADRS/EDATA[7:0]を介してセレクタ109に入力される。セレクタ109は、制御回路300から入力される制御信号HDOSにより選択されたデータを出力する。セレクタ109から出力されたデータはフリップフロップ110に入力される。フリップフロップ110は、入力されたデータをクロックREo_CLKでラッチする。フリップフロップ110から出力されたデータは、8ビットからなる信号線HDO_REiN[7:0]を介してトライステートバッファ111に入力される。トライステートバッファ111は、制御回路300から入力される制御信号HOUTEに基づいてデータの出力を行う。トライステートバッファ111から出力されたデータは、バスFDHからホスト3へ出力される。
図7は、本実施形態で採用するブロックデータのフォーマットを示す図である。本実施形態において、データは所定のバイト数を有するブロック単位で取り扱われる。1ブロックは、例えば528バイトで構成される。この1ブロックは、ユーザ領域512バイトと冗長領域16バイトとに分けられる。例えば、ユーザ領域が16Mバイトのメモリカードは、上記ブロックを32K個備える。ECCの符号化方式は、例えばリードソロモン符号を使用し、4シンボル(1シンボルが10ビット)のエラー訂正を行う。ユーザ領域512バイトのデータに対しては、8シンボル(80ビット)、すなわち10バイトのECCコードを生成する。
図7において、フォーマット0は、ユーザ領域の直後にECCコードを挿入する形式である。フォーマット1は、ユーザ領域の後に1バイトの冗長領域を設け、その後にECCコードを挿入する形式である。フォーマット2は、ユーザ領域の後に2バイトの冗長領域を設け、その後にECCコードを挿入する形式である。フォーマット3は、ユーザ領域の後に3バイトの冗長領域を設け、その後にECCコードを挿入する形式である。フォーマット4は、ユーザ領域の後に4バイトの冗長領域を設け、その後にECCコードを挿入する形式である。フォーマット5は、ユーザ領域の後に5バイトの冗長領域を設け、その後にECCコードを挿入する形式である。フォーマット6は、ユーザ領域の後に6バイトの冗長領域を設け、その後にECCコードを挿入する形式である。
なお、フォーマット6において、ユーザ領域512バイトに更に冗長領域6バイトをユーザに割り当てることも可能である。この場合は、ユーザ領域512バイトに上記冗長領域6バイトを加えた保護対象データ518バイトに対して、10バイトのECCコードを生成する。これにより、518バイトをユーザ領域として使用可能となる。フォーマットの種類と保護対象データの選択(512バイト/518バイト)は、例えばI/Oレジスタ500内のモードレジスタ501にホスト3が予め設定する。なお、本実施形態では、518バイトを保護対象データとしたフォーマット6を使用する。
以下、図3のように構成されたECCコントローラ1の動作を説明する。
先ず、ホスト3から入力されるコマンド及びアドレスの出力動作を説明する。図8は、コマンド及びアドレスの出力動作のタイミングチャートを表す図である。
ホスト3は、コマンドCMD(例えばブロックライトコマンド)をNANDメモリ2Aに転送するため、WE信号をアクティブ(ローレベル)及びCLE信号をアクティブ(ハイレベル)にし、続いてコマンドCMDをバスFDHに出力する。するとEI/C回路200は、WEo信号及びCLEo信号をNANDメモリ2Aに出力する。さらにDP/ECC回路100は、コマンドCMDをラッチせずにバスFDNへ出力する。これは、コマンド/アドレス出力回路302が、信号線FDHIのデータを選択する旨の制御信号FDHISを生成してセレクタ105の制御端子に入力することにより行う。NANDメモリ2Aは、WEo信号の立上がりエッジでコマンドCMDを読み取る。後述する各データの読み込みは、同様の方法で行われる。
次に、ホスト3は、WE信号をアクティブ及びALE信号をアクティブ(ハイレベル)にし、続いてアドレス(ADRS1及びADRS2)をバスFDHに出力する。すると、EI/C回路200は、NANDメモリ2Aに対してALEo信号を出力する。さらにDP/ECC回路100は、ADRS1及びADRS2をラッチせずにバスFDNへ出力する。これでデータの書き込みが可能となる。NANDメモリ2Aからデータの読み出しを行う場合も同様である。なお、本実施形態では、アドレスは例えば4バイト(ADRS1〜ADRS4)で構成される。また、コマンドCMD及びアドレスADRS1〜ADRS4は、夫々1バイトで構成される。
次に、データの書き込み動作を説明する。図9は、データの書き込み動作のタイミングチャートを表す図である。
ホスト3がバスFDHにライトデータWD1(1バイトからなる)を出力すると、ECCコントローラ1はこのライトデータWD1をDP/ECC回路100に入力する。次にDP/ECC回路100は、ライトデータWD1をクロックWE_CLKの立上がりでラッチして8ビットからなる信号線HDI_WEi[7:0]に出力する。このように、各ライトデータをクロックWE_CLKに同期させることで、制御回路300の同期設計を容易にすることができる。
次にDP/ECC回路100は、ライトデータWD1をクロックWEo_CLKの立ち下がりでラッチして8ビットからなる信号線NDO_WEoN[7:0]に出力する。このように、各ライトデータをクロックWEo_CLKでラッチすることで、ECCコントローラ1内の配線遅延を考慮する必要が無いため、レイアウト設計が容易になる。そしてECCコントローラ1は、ライトデータWD1をバスFDNからNANDメモリ2Aに出力する。後続のライトデータWD2及びWD3についても同様の処理を行う。
なおECCコントローラ1は、ライトデータを、8ビットからなる信号線FDHI[7:0]を使用してラッチせずに出力させることも可能である。この場合、書き込み回路303は、信号線FDHIにより転送されるデータを選択する旨の制御信号FDHISを生成してセレクタ105に入力する。これにより、ホスト3から出力されたライトデータが、ラッチされずにNANDメモリ2Aへ出力される。
次に、データの読み出し動作を説明する。図10は、データの読み出し動作のタイミングチャートを表す図である。
NANDメモリ2AがバスFDNにリードデータRD1(1バイトからなる)を出力すると、ECCコントローラ1はこのリードデータRD1をDP/ECC回路100に入力する。DP/ECC回路100は、リードデータRD1をクロックRE_CLKの立ち上がりでラッチして8ビットからなる信号線NDI_REo[7:0]に出力する。次にDP/ECC回路100は、リードデータRD1をクロックREo_CLKの立下りでラッチして8ビットからなる信号線HDO_REiN[7:0]に出力する。そしてECCコントローラ1は、リードデータRD1をバスFDHからホスト3に出力する。後続のリードデータRD2及びRD3についても同様の処理を行う。
なお、ECCコントローラ1がリードデータをラッチせずに出力すると、ECCコントローラ1内部の配線遅延により、ホスト3でのリードデータ読み取り時のセットアップマージンが減少する。ECCコントローラ1が行うリードデータのラッチ処理は、これを回避するために有効である。なお、上記セットアップマージンを確保するためにラッチを行った場合、図10に示すようにホスト3が出力するRE信号に対してリードデータが1サイクル遅れてホスト3に出力される。この場合、予めホスト3に対して最初のRE信号がアクティブ時には、リードデータが出力されない旨を通知しておく。
次に、保護対象データが518バイトである上記フォーマット6のブロックデータから構成されるライトデータの書き込み動作を説明する。図11は、上記ライトデータの書き込み動作のフローを示す図である。図12は、上記ライトデータの書き込み動作におけるタイミングチャートを示す図である。
ホスト3がライトデータの書き込みを行うための命令であるブロックライトコマンドを実行したとする。書き込み回路303は、上記ブロックライトコマンドを検知してデータ書き込み処理を開始する。書き込み回路303は、例えば上記ブロックライトコマンドを検知してカウンタ400によりバスFDHから入力されたライトデータWD1〜518(ライトデータWD1〜WD512と、冗長部ライトデータWD513〜WD518とからなる)のバイト数のカウントを開始する。なお、バスFDHから入力されたライトデータWD1〜518は、クロックWE_CLKによりラッチされる。そして書き込み回路303は、上記ライトデータWD1〜518を選択する旨の制御信号NDOSを生成し、セレクタ103の制御端子に入力する。また書き込み回路303は、上記ライトデータWD1〜518を選択する旨の制御信号DINSを生成し、セレクタ112の制御端子に入力する。
訂正符号/シンドローム回路113は、セレクタ112から入力されたライトデータWD1〜518に対するECCコード(10バイトからなる)を生成する。なおホスト3は、保護対象データを出力した後、WE信号と共にダミーライトデータDMY1〜10を出力する。このダミーライトデータDMY1〜10は、どんなデータでもかまわない。次に書き込み回路303は、上記生成したECCコードCODE1〜10を保護対象データの後ろに挿入するために、制御信号NDOSを生成してセレクタ103に入力する。これにより、セレクタ103は、ダミーライトデータDMY1〜10に替えてECCコードCODE1〜10を出力する。
DP/ECC回路100は、セレクタ103から出力されたECCコードが挿入されたブロックデータをクロックWEo_CLKでラッチする。この際、書き込み回路303は、ライトデータWD518の直後のWE信号を1パルス分マスクするため、マスク信号MSK_WE(ハイレベル)を生成してNOR回路209に入力する。WE信号をマスクするタイミングは、カウンタ400のカウント値を使用して決定する。これにより、NANDメモリ2Aは、ダミーライトデータDMY1を書き込まない。
次に書き込み回路303は、上記ラッチされたライトデータ及びECCコードを選択する旨の制御信号FDHISを生成してセレクタ105の制御端子に入力する。ECCコントローラ1は、セレクタ105から出力されたデータをNANDメモリ2Aに順次転送する。
一方ホスト3は、プログラムコマンドを実行してCLE信号及びWE信号をアクティブにする。なお、NANDメモリ2Aは、ECCコントローラ1から入力されたデータをデータバッファに記憶している。そして、NANDメモリ2Aは、上記プログラムコマンドが実行されると、データバッファに記憶しているデータをメモリセルに書き込む。次にホスト3は、NANDメモリ2Aのステータスを検出するためのステータスリードコマンドを実行し、R/B信号をポーリング(polling)する。そして、R/B信号がレディーになるのを検出した時点で、当該ライトデータの書き込みを完了し、必要に応じて次のブロックライトコマンドを実行する。
次に、NANDメモリ2Aからのリードデータの読み出し動作を説明する。図13は、上記リードデータの読み出し動作のフローを示す図である。
ホスト3がリードデータの読み出しを行うための命令であるブロックリードコマンドを実行したとする。ECCコントローラ1は、バスFDHを介して上記ブロックリードコマンドを検知してデータ読み出し処理を開始すると共に、このブロックリードコマンドをNANDメモリ2Aに出力する。次にECCコントローラ1は、ホスト3が出力したアドレスをNANDメモリ2Aに出力する。次にホスト3は、R/B信号をポーリングし、レディーを検出すると、NANDメモリ2Aからリードデータの転送を開始する。
DP/ECC回路100は、バスFDNから入力されたリードデータ528バイト(リードデータRD1〜RD512と、冗長部リードデータRD513〜RD518と、ECCコードCODE1〜CODE10とからなる)をクロックRE_CLKによりラッチする。次に読み出し回路304は、このリードデータを選択する旨の制御信号HDOSを生成してセレクタ109の制御端子に入力する。また読み出し回路304は、上記ラッチされたリードデータを選択する旨の制御信号DINSを生成してセレクタ112の制御端子に入力する。
次に訂正符号/シンドローム回路113は、セレクタ112から入力されたリードデータRD1〜518に対し、ECCコードCODE1〜10を用いてシンドローム信号を生成する。判定回路115は、上記シンドローム信号に基づいてエラーデータの有無を判定する。判定回路115によりエラーデータが検出されなかった場合、情報生成回路116は上記正常終了情報を生成する。そして訂正回路114は、処理結果通知として上記正常終了情報を出力する。読み出し回路304は、この正常終了情報を選択する旨の制御信号HDOSを生成してセレクタ112の制御端子に入力する。
一方、訂正回路114は、エラーデータを検出した場合には、訂正処理を実行する。すなわち、判定回路115によりエラーデータが検出された場合、情報生成回路116はエラーデータのアドレスと訂正に必要なエラー差分情報とからなる訂正情報を生成する。エラー差分情報とは、ホスト3が読み込んだリードデータと当該エラー差分情報との排他的論理和を演算することで期待値(エラーが発生していないデータ)を得ることができる情報である。
訂正処理が終了した場合、情報生成回路116は上記訂正終了情報を生成する。そして訂正回路114は、上記訂正終了情報及び訂正情報を出力する。読み出し回路304は、上記訂正終了情報及び訂正情報を選択する旨の制御信号HDOSを生成してセレクタ109の制御端子に入力する。また情報生成回路116は、エラーの有無を表すエラー有無情報及びエラーデータの数を表すエラー数情報を生成する。そして、訂正回路114は、エラー有無情報及びエラー数情報を訂正情報に含めて出力するようにしてもよい。
なお、訂正回路114は、エラーデータを検出した場合において、5シンボル以上のエラーデータを検出すると、エラー訂正が不可能であると判定する。すなわち、判定回路115は、エラーデータを検出した場合、さらにエラーデータ数が5シンボル以上であるか否かを判定する。判定回路115により5シンボル以上であると判定された場合、情報生成回路116は上記異常終了情報を作成する。なお、上記5シンボルは一例であり、回路によって任意に設定可能である。そして訂正回路114は、上記異常終了情報を出力する。読み出し回路304は、上記異常終了情報を選択する旨の制御信号HDOSを生成してセレクタ109の制御端子に入力する。
DP/ECC回路100は、セレクタ109から出力された各データをクロックREo_CLKによりラッチする。そして、ECCコントローラ1は、リードデータ及び各情報をホスト3に出力する。同様に、ECCコントローラ1は、次のリードデータの読み出し処理を実行する。
次に、クロック生成回路305によるWE/REクロック代用モードの動作について説明する。
NANDメモリ2AとしてクロックDCLKを持たないバスプロトコルを使用するメモリカードが用いられる場合には、ECCコントローラ1を駆動するための上記クロックDCLKが得られない。ここで上記クロックDCLKとは、ホスト3から入力されるデータにより得られるクロック、或いはホスト3から直接入力されるクロックである。このため、ECCコントローラ1は、WE/REクロック代用モードを実行する。WE/REクロック代用モードへの切り替えは、ユーザが例えば外部入力手段から設定してもよいし、ホスト3を経由して設定するようにしてもよい。また、ECCコントローラ1がクロックを持たないメモリカードを検出する機能を備え、自動的に設定するようにしてもよい。なお、WE/REクロック代用モードでは、ホスト3はデータの書き込み及び読み出しを行っていない場合でもECCコントローラ1の内部処理のためにWE信号或いはRE信号を余分に出力している。
クロック生成回路305は、WE/REクロック代用モードが選択されると、WE信号とRE信号とのAND信号をクロックCLKとして選択する旨の制御信号DCLKSELを生成し、セレクタ222の制御端子に入力する。これにより、ECCコントローラ1は、WE信号とRE信号とのAND信号をクロックCLKとして使用可能となる。次にクロック生成回路305は、例えばホスト3からブロックライトコマンドとアドレスとが入力されたのを検出すると、カウンタ400を起動する。カウンタ400は、この時点からWE信号のパルスのカウントを開始する。
次にクロック生成回路305は、カウンタ400のカウント値が上記データフォーマットに基づいた所定の値(本実施形態では、1ブロックが528バイトなので、カウント値は528)になるのを検出すると、パルスをマスクするためにマスク信号MSK_WE(ハイレベル)を生成して、NOR回路209に入力する。そして、NOR回路209を介して出力されるWEo信号は、厳密なタイミングでマスクされる。例えば1ブロックのライトデータをNANDメモリ2Aに書き込む場合、WE信号のパルスを528個出力し、その後のWE信号をマスクする。RE信号においても同様である。
これにより、ホスト3がECCコントローラ1の内部処理のためにWE信号或いはRE信号を余分に出力してもNANDメモリ2Aに不要なWE信号或いはRE信号はマスクされる。よって、NANDメモリ2Aが誤動作するのを防止できる。
次に、CE信号生成回路306によるスタティックCEモードの動作について説明する。ECCコントローラ1が4個のNANDメモリ2A〜2Dを制御するものとする。ホスト3が4個のNANDメモリ2A〜2Dに対して4つのチップイネーブル(CE)信号を独立に割り当てることが可能なシステムでは、通常のダイナミックCEモードを使用する。このダイナミックCEモードにおいて、ECCコントローラ1はホスト3から入力されたCE[3:0]信号を、指定されたNANDメモリにCEo[3:0]信号として出力する。なお、本実施形態ではCE[3:0]信号は4ビットからなるため、4個のメモリを同時に制御可能である。
一方、ホスト3がNANDフラッシュメモリモジュール2に対して1つのCE信号しかアクティブにできないシステムであり、4個のNANDメモリ2A〜2Dに対して1つのCE信号しか割り当てがない場合には、ECCコントローラ1はスタティックCEモードを実行することで、4個のNANDメモリ2A〜2Dを制御可能になる。
通常、ECCコントローラ1は、ホスト3からのCE信号をそのままスルーでCEo信号としてNANDメモリ2Aに出力するが、ホスト3がモードレジスタ501を設定することで、スタティックCEモードで動作する。スタティックCEモードでは、ECCコントローラ1はスタティックCEレジスタ502に設定されたデータをCEo信号として出力する。
NANDメモリ2Aのページデータプログラム期間(NANDメモリ2Aが内蔵するデータバッファからセルへのデータ書き込み期間)は数msecオーダーかかり、ページデータリードビジー期間(NANDメモリ2Aが内蔵するデータバッファへのセル保持データ書き込み期間)は数百μsecオーダーかかる。この期間中、ホスト3がNANDメモリ2AへのCE信号をアクティブにし続けると、ホストはホストバス上の他の周辺デバイスへのアクセスができず、システム全体の処理効率が低下する。これを回避したい場合は、ホスト3がECCコントローラ1をスタティックCEモードにする。
するとCE信号生成回路306は、スタティックCEレジスタ502に設定されたスタティックCE信号をセレクタ202に入力する。またCE信号生成回路306は、スタティックCE選択信号(STATIC_CE_MODE)を生成し、セレクタ202,208,216の制御端子に入力する。スタティックCE信号は、セレクタ202から出力される。さらにこのスタティックCE信号は、CEo信号としてNANDメモリ2Aに出力される。これにより、ホスト3は、NANDメモリ2AへのCE信号はアクティブにし続け、上記ページデータプログラム及びページデータリードビジー状態を維持しつつ、ホストバス上のNANDメモリ2AへのCE信号はインアクティブにして、他の周辺デバイスのCE信号をアクティブにすることができる。
なおECCコントローラ1は、スタティックCEモードにおいて、WEo或いはREo信号をCE信号(4ビット)のいずれかがアクティブでなければマスクしてアクティブにしない回路を備えている。これは、NANDメモリ2Aがビジー期間中のみ、外部CE信号に拠らずCEo信号をアクティブにして、ビジー状態を維持するが、NANDメモリ2AへのWEo或いはREo信号を使ったNANDメモリ2Aへのアクセスを禁止したい意図で設けた機能である。
セレクタ208/216は、STATIC_CE_MODE信号が入力されると、それぞれNAND回路207/215が出力した信号を選択する。スタティックCEモードでのCE[3:0]信号に基づくWEo/REoマスク処理は、CE[3:0]信号を入力とする4入力NAND回路201の出力信号をNAND回路207/215にそれぞれ入力することで実行する。すなわち、CE[3:0]信号の4ビット全てがハイレベルならば、NAND回路201の出力信号はローレベルになり、NAND回路207及び215の出力はWE/RE信号の値に関わらずハイレベルになる。NOR回路209/217への入力信号がハイレベルでそれぞれWE/RE信号がマスクされる。これにより、CE信号がインアクティブ時は、NANDメモリ2Aに対してデータの書き込み或いは読み出しが行われない。
次に、割り込み回路307による割り込み処理の動作について説明する。ECCコントローラ1は、割り込み処理を行う割り込み回路307を備えている。割り込み通知は、割り込み(INTN)信号をアクティブにすることにより行う。
NANDメモリ2Aからホスト3へのリードデータの読み出しが終了すると、エラー情報出力回路308は、ECCコントローラ1がエラー検出処理中であることを表すデータ“ff”h(hexadecimal notation)をセレクタ109に入力する。また割り込み回路307は、上記データ“ff”を選択する旨の制御信号HDOSを生成してセレクタ109の制御端子に入力する。これにより、上記データ“ff”がホスト3へ出力される。ホスト3は、上記データ“ff”により、ECCコントローラ1がエラー検出処理中であると判断する。エラー検出処理中である旨を表すデータは上記“ff”でなくてもよい。
次にエラー情報出力回路308は、所定サイクル(1サイクルは、RE信号のハイレベルとローレベル)後、ホスト3に対して上記エラー有無情報を1サイクル出力後、再びデータ“ff”をホスト3に出力し続ける。次にエラー情報出力回路308は、所定サイクル後、ホスト3に対して上記エラー数情報を1サイクル出力後、再びデータ“ff”をホスト3に出力し続ける。
次にエラー情報出力回路308は、所定サイクル後、訂正処理の結果に応じて、上記正常終了情報、訂正終了情報又は異常終了情報をホスト3に対して1サイクル出力する。なおエラー情報出力回路308が出力する上記各情報は、前述したように訂正回路114により生成される。エラー情報出力回路308は、訂正回路114を制御することにより、上記タイミングで上記各情報を出力させる。また割り込み回路307から出力される各データは、当該割り込み回路307が制御信号HDOSを生成してセレクタ109の制御端子に入力することにより行う。以下、割り込み回路307が出力するデータについても同様である。
ここで、非割り込みモードで訂正処理が終了した場合、上記正常終了情報ならば、処理を終了する。また上記訂正終了情報ならば、エラー情報出力回路308は訂正情報をホスト3に出力し、処理を終了する。また上記異常終了情報ならば、処理を終了する。
一方、割り込みモードで訂正処理が終了した場合について説明する。上記正常終了情報ならば、割り込み回路307は割り込み(INTN)信号をアクティブにする。そしてエラー情報出力回路308は、上記正常終了情報をバスFDNに出力し続ける。ホスト3は、割り込みを受け付けると、割り込み内容を取得し、ECCコントローラ1に対して割り込み許可である旨のアクノリッジコマンドを出力する。割り込み回路307は、上記アクノリッジコマンドをマスクして、NANDメモリ2Aに出力しない。上記アクノリッジコマンドのマスクは、割り込み回路307がマスク信号MSK_WE(ハイレベル)を生成してNOR回路209に入力することにより行う。割り込み回路307は、上記アクノリッジコマンドが入力されると、上記INTN信号をインアクティブにし、処理を終了する。
また訂正終了情報ならば、割り込み回路307は、上記アクノリッジコマンドが入力されると、上記INTN信号をインアクティブにする。続いてエラー情報出力回路308は、RE信号に同期して上記訂正情報を出力し、処理を終了する。
また異常終了情報ならば、上記アクノリッジコマンドが入力されると、上記INTN信号をインアクティブにし、処理を終了する。このような割り込み処理を行うことにより、ホスト3は割り込み通知と同時に割り込み内容を取得することができる。よってホスト3の割り込み内容を読み込むためのI/Oレジスタ500へのアクセスを省くことができる。
次に、ECC領域変更回路309によるECCコード格納領域可変動作について説明する。
上記ECCコントローラ1は、上記図7に示したブロックデータの各フォーマットのうち、ECCコードを挿入する領域を冗長領域内の任意の場所に指定できる機能を備えている。フォーマット情報の選択方法としては、ユーザが選択したフォーマット情報をホスト3がECCコントローラ1に設定するようにしてもよいし、ECCコントローラ1に入力手段を設け、ユーザが設定するようにしてもよい。
例えばホスト3が、ECCコントローラ1内のモードレジスタ501にフォーマット情報を書き込んだとする。すると、ECC領域変更回路309は、上記カウンタ400がカウントする値が、上記設定されたフォーマットにより決められる値になった時点で、上記訂正符号/シンドローム回路113が作成したECCコードを順次挿入する。例えば上記図7に示したフォーマット1の場合について説明する。ECC領域変更回路309は、カウント値が513になった時点で訂正符号/シンドローム回路113から出力されるECCコードを選択する旨の制御信号NDOSを生成してセレクタ103の制御端子に入力する。これにより、フォーマット1で決められている所定の位置にECCコードを挿入することができる。
次に、専用コマンド回路310による専用コマンド実行モードの動作について説明する。
ECCコントローラ1の専用コマンドを定義する場合、メモリカードのコマンドセットの中の未使用コードを専用コマンドとして割り当てる必要がある。この場合、ECCコントローラ1の専用コマンド数が制限されるため、ECCコントローラ1の多機能化の弊害となる。この実施形態では、専用コマンドを2つ使用するだけで、ECCコントローラ1の専用命令を実行する。
例えばECCコントローラ1の専用コマンドとして、コマンド90(CMD90)とコマンド91(CMD91)を定義する。ホスト3がCMD90を実行すると専用コマンド実行モードに入り、CMD91を実行すると専用コマンド実行モードから抜ける。ECCコントローラ1は、このモード中、ホスト3から入力されたコマンドをマスクしてNANDメモリ2Aに上記コマンドを出力しない機能を備える。
具体的には、専用コマンド回路310は、マスク信号MSK_WE(ハイレベル)を生成し、このマスク信号MSK_WEをNOR回路209に入力する。これにより、NANDメモリ2Aに出力されるWEo信号を、ホスト3が出力するWE信号に関わらずインアクティブにする。また専用コマンド回路310は、マスク信号MSK_RE(ハイレベル)を生成し、このマスク信号MSK_REをNOR回路217に入力する。これにより、NANDメモリ2Aに出力されるREo信号を、ホスト3が出力するRE信号に関わらずインアクティブにする。これにより、CMD90が実行されると、以後NANDメモリ2Aにはコマンドが書き込まれない。
したがって、ホスト3によりCMD90が実行されると、ホスト3はECCコントローラ1に対してメモリカードのコマンドセットと同一のコードを使用して、ECCコントローラ1に命令を実行することが可能となる。よって、多くのECCコントローラ1専用コマンドを定義して、ECCコントローラ1の多機能化を実現できる。
以上詳述したようにこの実施形態では、ホスト3とNANDメモリ2A間のバスをECCコントローラ1が中断するアーキテクチャにしている。よって、例えば多値化データに対応して機能を強化したECC回路を追加する場合に、ホスト3及びNANDメモリ2Aの設計変更等が不要になる。
ECCコントローラ1は、ホスト3から入力されるWE信号に基づいてライトデータをラッチしている。これにより、制御回路300でライトデータの同期を取る必要ないため、同期設計を容易にすることができる。また、ECCコントローラ1は、各イネーブル信号の内部配線遅延を各遅延回路によりを等しく揃えるようにしている。これにより、NANDメモリ2Aに対して正確なタイミングで各イネーブル信号を供給することができる。またECCコントローラ1がライトデータを出力する際、遅延調整されたWEo信号によりラッチするようにしている。これにより、ホスト3或いはNANDメモリ2Aは、データ受信時のタイミングマージンを確保することができる。またECCコントローラ1は、ホスト3から入力されたデータをラッチするか、スルー出力するかを選択することができるので、データの種類により自由に対応することが可能である。
また、クロックを持たないメモリカードなどに用意されたバスプロトコルにECCコントローラ1を適用する場合でも、例えばライトイネーブル信号或いはリードイネーブル信号をクロックとして代用することができるため、クロックが無いシステムにもECCコントローラ1を追加することができる。また、メモリカードに必要なライトイネーブル信号或いはリードイネーブル信号のみをメモリカードに出力するようにしているので、不要なライトイネーブル信号或いはリードイネーブル信号がメモリカードに入力され、メモリカードが誤動作することを防止できる。
また、ホスト3が例えばIOデバイスに対して1つのチップイネーブル信号しかアサートできないシステムにおいて、ECCコントローラ1がホスト3に代わってチップイネーブル信号をアクティブにする機能を備えている。これによりホスト3は、NANDメモリ2Aのチップイネーブル信号をアクティブにし、且つ他のデバイスにアクセスして並列処理を行うことが可能となる。
またECCコントローラ1は、割り込み信号をアクティブにし、同時に割り込み内容をバスに出力し続ける機能を備えている。よって、割り込み通知と割り込み内容を同時にホスト3に通知することができる。これにより、ホスト3はNANDメモリ2AのI/Oレジスタ500へのアクセスを省くことができ、高速処理及び処理の簡素化が可能となる。
またECCコントローラ1は、ECCコードを挿入する領域を変更する機能を備えている。よって、NANDメモリ2Aの多種類のデータフォーマットに柔軟に対応することができる。
またECCコントローラ1は、ホスト3から入力された所定の専用コマンドをマスクしてNANDメモリ2Aに出力しない機能を備えている。よってホスト3は、NANDメモリ2Aのコマンドセットと同一のコードを使用して、ECCコントローラ1に命令を実行することが可能となる。これにより、多くのECCコントローラ1専用コマンドを定義して、ECCコントローラ1の多機能化を実現できる。
なお、上記実施形態では、ホスト3或いはNANDメモリ2Aとは別にECCコントローラ1を構成している。しかし、ホスト3がECCコントローラ1を備える構成であってもよい。また、NANDメモリ2AがECCコントローラ1を備える構成であってもよい。このように構成しても同様に実施可能である。
この発明は、上記実施形態に限定されるものではなく、その他、本発明の要旨を変更しない範囲において種々変形して実施可能である。
本発明の一実施形態における全体構成を示すブロック図。 図1に示したNANDフラッシュメモリモジュール2の内部構成を示すブロック図。 図1に示したECCコントローラ1の内部構成を示すブロック図。 図3に示した制御回路300の回路構成を示すブロック図。 図3に示したイネーブルインターフェース/クロック回路200の回路構成を示すブロック図。 図3に示したデータパス/ECC回路100の回路構成を示すブロック図。 本実施形態で採用するブロックデータのフォーマットを示す図。 図3に示したECCコントローラ1におけるコマンド及びアドレスの出力動作のタイミングチャートを示す図。 図3に示したECCコントローラ1におけるデータの書き込み動作のタイミングチャートを示す図。 図3に示したECCコントローラ1におけるデータの読み出し動作のタイミングチャートを示す図。 図3に示したECCコントローラ1におけるブロックライトデータの書き込み動作のフローを示す図。 図3に示したECCコントローラ1におけるブロックライトデータの書き込み動作のタイミングチャートを示す図。 図3に示したECCコントローラ1におけるブロックリードデータの読み出し動作のフローを示す図。
符号の説明
1…ECCコントローラ、2…NANDフラッシュメモリモジュール、2A,2B,2C,2D…NANDフラッシュメモリ、3…ホスト、5〜13…信号線、100…データパス/ECC回路、101,107…バッファ、102,104,108,110…フリップフロップ、103,105,109、112…セレクタ、106,111…トライステートバッファ、113…訂正符号/シンドローム回路、114…訂正回路、115…判定回路、116…情報生成回路、120…ECC回路、200…イネーブルインターフェース/クロック回路、201,207,215…NAND回路、202,208,216,222…セレクタ、203,205,210,213,218,223,225,227…遅延回路、204,206,212,214,220,224,226,228…バッファ、209,217…NOR回路、211,219…インバータ回路、221…AND回路、300…制御回路、301…バス監視回路、302…コマンド/アドレス出力回路、303…書き込み回路、304…読み出し回路、305…クロック生成回路、306…CE信号生成回路、307…割り込み回路、308…エラー情報出力回路、309…ECC領域変更回路、310…専用コマンド回路、400…カウンタ、500…I/Oレジスタ、501…モードレジスタ、502…スタティックCEレジスタ。

Claims (5)

  1. ホストとメモリとの間に接続されたECC制御装置であって、
    前記ホストとの間でデータの入力及び出力を行う第1入出力回路と、
    前記第1入出力回路に入力された所定データ長を有する書き込みデータのうち、保護対象である保護領域とそれ以外の冗長領域とを検出する検出回路と、
    前記保護領域のデータに対してエラー訂正符号を生成する生成回路と、
    前記冗長領域に前記訂正符号を挿入する訂正符号挿入回路と、
    前記メモリとの間でデータの入力及び出力を行う第2入出力回路と、
    前記第2入出力回路に入力された前記所定データ長を有する読み出しデータに対し、当該読み出しデータが有する前記エラー訂正符号を用いてシンドローム演算を行い且つシンドローム信号を生成するシンドローム回路と、
    前記シンドローム信号に基づいてエラーの訂正を行う訂正回路と
    を具備することを特徴とするECC制御装置。
  2. 前記ホストから入力された前記メモリにデータを書き込み中であることを示すライトイネーブル信号のパルス数と、前記ホストから入力された前記メモリからデータを読み出し中であることを示すリードイネーブル信号のパルス数とを夫々カウントするカウンタと、
    前記ライトイネーブル信号と前記リードイネーブル信号とに基づいてクロックを生成し、且つ前記カウンタによりカウントされたパルス数が所定パルス数になった場合に前記ライトイネーブル信号及び前記リードイネーブル信号を前記メモリに出力しないクロック生成回路とをさらに具備することを特徴とする請求項1記載のECC制御装置。
  3. 前記ホストが前記メモリにアクセス中であることを示すチップイネーブル信号と同じ信号であるダミーチップイネーブル信号を記憶するレジスタと、
    前記ホストから入力された前記チップイネーブル信号を前記メモリに出力する第1モードと、前記ダミーチップイネーブル信号を前記メモリに出力する第2モードとを有し、前記第1モードと第2モードとを切り替えることにより前記チップイネーブル信号或いは前記ダミーチップイネーブル信号を前記メモリに供給するチップイネーブル信号生成回路とをさらに具備することを特徴とする請求項1記載のECC制御装置。
  4. 前記ホストから第1コマンドが入力された場合に、以後前記ホストから入力されるコマンドを前記メモリに出力しないよう制御し、一方前記ホストから第2コマンドが入力された場合に、以後前記ホストから入力されるコマンドを前記メモリに出力するよう制御する専用コマンド回路をさらに具備することを特徴とする請求項1記載のECC制御装置。
  5. 前記ホストから入力された前記メモリにデータを書き込み中であることを示すライトイネーブル信号に基づいて前記書き込みデータをラッチする第1ラッチ回路と、
    前記ホストから入力され且つ前記ライトイネーブル信号を含む複数の制御信号の遅延時間を当該装置の配線遅延に基づいて夫々調整する複数の遅延調整回路と、
    前記遅延調整回路により遅延時間を調整された前記ライトイネーブル信号に基づいて前記訂正符号が挿入された前記書き込みデータをラッチする第2ラッチ回路と
    をさらに具備することを特徴とする請求項1記載のECC制御装置。
JP2004016180A 2003-02-28 2004-01-23 Ecc制御装置 Expired - Fee Related JP4550439B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004016180A JP4550439B2 (ja) 2003-02-28 2004-01-23 Ecc制御装置
US10/787,183 US7516371B2 (en) 2003-02-28 2004-02-27 ECC control apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003054686 2003-02-28
JP2004016180A JP4550439B2 (ja) 2003-02-28 2004-01-23 Ecc制御装置

Publications (2)

Publication Number Publication Date
JP2004280790A true JP2004280790A (ja) 2004-10-07
JP4550439B2 JP4550439B2 (ja) 2010-09-22

Family

ID=33134260

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004016180A Expired - Fee Related JP4550439B2 (ja) 2003-02-28 2004-01-23 Ecc制御装置

Country Status (2)

Country Link
US (1) US7516371B2 (ja)
JP (1) JP4550439B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009510560A (ja) * 2005-09-26 2009-03-12 サンディスク アイエル リミテッド Nandインタフェースをエクスポートするnand型フラッシュメモリコントローラ
JP2010517168A (ja) * 2007-01-26 2010-05-20 マイクロン テクノロジー, インク. Nandメモリのためのプログラミング管理データ
JP2010262640A (ja) * 2009-04-30 2010-11-18 Internatl Business Mach Corp <Ibm> 不揮発性メモリの適応型エンデュランス・コーディング方法及びシステム
JP2011508296A (ja) * 2007-12-24 2011-03-10 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 読出ステータスのコントローラ
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
KR20170129060A (ko) * 2016-05-16 2017-11-24 윈본드 일렉트로닉스 코포레이션 반도체 장치

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100688549B1 (ko) * 2005-05-24 2007-03-02 삼성전자주식회사 비휘발성 메모리를 지원하는 온더플라이 bcc 코덱시스템 및 방법
JP2007133986A (ja) * 2005-11-11 2007-05-31 Nec Electronics Corp 半導体記憶装置
US7911834B2 (en) * 2006-05-15 2011-03-22 Apple Inc. Analog interface for a flash memory die
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
US7568135B2 (en) * 2006-05-15 2009-07-28 Apple Inc. Use of alternative value in cell detection
US8000134B2 (en) 2006-05-15 2011-08-16 Apple Inc. Off-die charge pump that supplies multiple flash devices
US7701797B2 (en) * 2006-05-15 2010-04-20 Apple Inc. Two levels of voltage regulation supplied for logic and data programming voltage of a memory device
WO2008016170A1 (en) * 2006-07-31 2008-02-07 Kabushiki Kaisha Toshiba Nonvolatile memory system, and data read/write method for nonvolatile memory system
US20080046630A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080046641A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
KR100847560B1 (ko) * 2006-12-11 2008-07-21 삼성전자주식회사 다운로드되는 펌웨어의 오류 정정을 위한 회로 및 방법
KR100845529B1 (ko) * 2007-01-03 2008-07-10 삼성전자주식회사 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
US20080250192A1 (en) * 2007-04-05 2008-10-09 Phison Electronics Corp. Integrating flash memory system
US7984357B2 (en) * 2007-04-27 2011-07-19 International Business Machines Corporation Implementing minimized latency and maximized reliability when data traverses multiple buses
JP5162763B2 (ja) * 2007-08-07 2013-03-13 株式会社メガチップス メモリアクセスシステム
JP2010020839A (ja) * 2008-07-10 2010-01-28 Panasonic Corp 半導体記憶装置
US8316201B2 (en) * 2008-12-18 2012-11-20 Sandisk Il Ltd. Methods for executing a command to write data from a source location to a destination location in a memory device
US8140712B2 (en) * 2009-07-17 2012-03-20 Sandforce, Inc. System, method, and computer program product for inserting a gap in information sent from a drive to a host device
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US20110040924A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
US8381077B2 (en) * 2009-09-08 2013-02-19 Lsi Corporation Systems and methods for implementing error correction in relation to a flash memory
US8413015B2 (en) * 2009-09-21 2013-04-02 Sandisk Technologies Inc. Nonvolatile memory controller with scalable pipelined error correction
US8176234B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Multi-write coding of non-volatile memories
US8176235B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Non-volatile memories with enhanced write performance and endurance
US8443263B2 (en) * 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US8595411B2 (en) 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
US8898540B1 (en) * 2010-04-06 2014-11-25 Marvell Israel (M.I.S.L) Ltd. Counter update through atomic operation
US8769374B2 (en) 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories
CN102023943B (zh) * 2010-11-25 2013-06-19 杭州晟元芯片技术有限公司 一种通过四通道IO接口控制并读写NandFlash的方法
US20120226949A1 (en) * 2011-03-02 2012-09-06 Texas Instruments Incorporated Multi-Channel Bus Protection
US9350386B2 (en) 2012-04-12 2016-05-24 Samsung Electronics Co., Ltd. Memory device, memory system, and method of operating the same
US8990641B2 (en) * 2012-11-16 2015-03-24 International Business Machines Corporation Selective posted data error detection based on history
US8990640B2 (en) * 2012-11-16 2015-03-24 International Business Machines Corporation Selective posted data error detection based on request type
KR102342789B1 (ko) * 2015-09-24 2021-12-24 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
EP3519975B1 (en) * 2016-09-28 2021-09-08 Nanolock Security Inc. Access control for integrated circuit devices
JP2022187220A (ja) 2021-06-07 2022-12-19 キオクシア株式会社 メモリシステム
US11841764B2 (en) * 2021-12-17 2023-12-12 Infineon Technologies LLC Circuit and method for reading ECC from memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07302175A (ja) * 1994-05-09 1995-11-14 Toshiba Corp 半導体ディスク装置
JPH11272568A (ja) * 1998-01-07 1999-10-08 Hitachi Ltd 記憶再生装置、誤り訂正方法及びこれらを用いた携帯情報端末ならびにディジタルカメラ
JP2000020409A (ja) * 1998-07-07 2000-01-21 Seiko Epson Corp 半導体記憶装置
JP2001501000A (ja) * 1996-08-16 2001-01-23 東京エレクトロン株式会社 エラー検出および訂正を有する半導体メモリ装置
WO2002086719A2 (en) * 2001-04-24 2002-10-31 Koninklijke Philips Electronics N.V. Improved error correction scheme for use in flash memory allowing bit alterability

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4238524A (en) 1978-03-06 1980-12-09 American Optical Corporation Process for identification marking clear plastic articles
US4307149A (en) 1979-11-05 1981-12-22 Columbia Ribbon & Carbon Mfg. Co., Inc. Transfer elements and process for making same
US4329378A (en) 1979-12-11 1982-05-11 Kabushiki Kaisha Hoya Lens (Hoya Lens Corporation) Method for marking an indication to the lens
US4303701A (en) 1979-12-31 1981-12-01 Buckbee-Mears Company Method of marking plastic lenses
US5599578A (en) 1986-04-30 1997-02-04 Butland; Charles L. Technique for labeling an object for its identification and/or verification
US5194289A (en) 1986-04-30 1993-03-16 Butland Trust Organization Method for labeling an object for its verification
US5135591A (en) 1990-11-28 1992-08-04 Precision Fabrics Group, Inc. Process of making a phosphorescent fiber reinforced plastic article
CA2069464A1 (en) 1991-05-28 1992-11-29 Daniel K. Kohn Phosphorescent identification device
US5811152A (en) 1991-10-02 1998-09-22 Smartwater Limited Method of identifying a surface
JP3178909B2 (ja) 1992-01-10 2001-06-25 株式会社東芝 半導体メモリ装置
US5421869A (en) 1993-05-28 1995-06-06 Nocopi Technologies, Inc. Security marking method and composition
US5516362A (en) 1993-05-28 1996-05-14 Nocopi Technologies, Inc. Security marking method and composition
US5605738A (en) 1993-09-30 1997-02-25 Angstrom Technologies, Inc. Tamper resistant system using ultraviolet fluorescent chemicals
US5603001A (en) 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
US5599956A (en) * 1996-02-22 1997-02-04 Uop Integrated process for the production of propylene oxide
JPH10198608A (ja) * 1997-01-08 1998-07-31 Mitsubishi Electric Corp メモリカード
US5961660A (en) * 1997-03-03 1999-10-05 International Business Machines Corporation Method and apparatus for optimizing ECC memory performance
US6263399B1 (en) * 1998-06-01 2001-07-17 Sun Microsystems, Inc. Microprocessor to NAND flash interface
US6349390B1 (en) * 1999-01-04 2002-02-19 International Business Machines Corporation On-board scrubbing of soft errors memory module
JP2000349652A (ja) 1999-06-07 2000-12-15 Hitachi Ltd 誤り訂正手段を備えた記憶装置
WO2001022232A1 (fr) * 1999-09-17 2001-03-29 Hitachi, Ltd. Memoire dans laquelle le nombre de corrections d'erreurs est enregistre
US6701480B1 (en) * 2000-03-08 2004-03-02 Rockwell Automation Technologies, Inc. System and method for providing error check and correction in memory systems
US6684353B1 (en) * 2000-12-07 2004-01-27 Advanced Micro Devices, Inc. Reliability monitor for a memory array
US7028248B2 (en) * 2001-02-28 2006-04-11 International Business Machines Corporation Multi-cycle symbol level error correction and memory system
JP4059473B2 (ja) * 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
JP4437519B2 (ja) * 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
JP4034949B2 (ja) * 2001-09-06 2008-01-16 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
JP4112849B2 (ja) * 2001-11-21 2008-07-02 株式会社東芝 半導体記憶装置
KR100437461B1 (ko) * 2002-01-12 2004-06-23 삼성전자주식회사 낸드 플래시 메모리 장치 및 그것의 소거, 프로그램,그리고 카피백 프로그램 방법
KR100441608B1 (ko) * 2002-05-31 2004-07-23 삼성전자주식회사 낸드 플래시 메모리 인터페이스 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07302175A (ja) * 1994-05-09 1995-11-14 Toshiba Corp 半導体ディスク装置
JP2001501000A (ja) * 1996-08-16 2001-01-23 東京エレクトロン株式会社 エラー検出および訂正を有する半導体メモリ装置
JPH11272568A (ja) * 1998-01-07 1999-10-08 Hitachi Ltd 記憶再生装置、誤り訂正方法及びこれらを用いた携帯情報端末ならびにディジタルカメラ
JP2000020409A (ja) * 1998-07-07 2000-01-21 Seiko Epson Corp 半導体記憶装置
WO2002086719A2 (en) * 2001-04-24 2002-10-31 Koninklijke Philips Electronics N.V. Improved error correction scheme for use in flash memory allowing bit alterability

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009510560A (ja) * 2005-09-26 2009-03-12 サンディスク アイエル リミテッド Nandインタフェースをエクスポートするnand型フラッシュメモリコントローラ
US7886212B2 (en) 2005-09-26 2011-02-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
JP2010517168A (ja) * 2007-01-26 2010-05-20 マイクロン テクノロジー, インク. Nandメモリのためのプログラミング管理データ
JP2011508296A (ja) * 2007-12-24 2011-03-10 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 読出ステータスのコントローラ
JP2010262640A (ja) * 2009-04-30 2010-11-18 Internatl Business Mach Corp <Ibm> 不揮発性メモリの適応型エンデュランス・コーディング方法及びシステム
JP2014170578A (ja) * 2009-04-30 2014-09-18 International Business Maschines Corporation メモリ・アクセス方法およびシステム
KR20170129060A (ko) * 2016-05-16 2017-11-24 윈본드 일렉트로닉스 코포레이션 반도체 장치
JP2017208149A (ja) * 2016-05-16 2017-11-24 ウィンボンド エレクトロニクス コーポレーション 半導体装置
KR101950758B1 (ko) * 2016-05-16 2019-02-21 윈본드 일렉트로닉스 코포레이션 반도체 장치
US10496474B2 (en) 2016-05-16 2019-12-03 Winbond Electronics Corp. Semiconductor storage device and memory system having the same

Also Published As

Publication number Publication date
US20040205418A1 (en) 2004-10-14
JP4550439B2 (ja) 2010-09-22
US7516371B2 (en) 2009-04-07

Similar Documents

Publication Publication Date Title
JP4550439B2 (ja) Ecc制御装置
US8103920B2 (en) Memory system configured by using a nonvolatile semiconductor memory
US10552047B2 (en) Memory system
US10860258B2 (en) Control circuit, memory device including the same, and method
JP2005196764A (ja) データをセクタ単位にランダムに入出力することができるフラッシュメモリシステム
US20080141059A1 (en) Flash Memory Devices with High Data Transmission Rates and Memory Systems Including Such Flash Memory Devices
US8145858B2 (en) Interleave control device, interleave control method, and memory system
KR20150040170A (ko) 플래시 메모리를 기반으로 하는 저장 장치 및 그것의 동작 방법
US7725621B2 (en) Semiconductor device and data transfer method
WO2010069045A1 (en) Error detection method and a system including one or more memory devices
US20070038795A1 (en) Asynchronous bus interface and processing method thereof
US9093138B2 (en) Non-volatile semiconductor memory device
US20070028037A1 (en) Memory system with automatic dual-buffering
US9256556B2 (en) RAM memory device capable of simultaneously accepting multiple accesses
US20070047308A1 (en) Memory controller, flash memory system and control method for flash memory
US11631454B2 (en) Methods and apparatus for reduced area control register circuit
TW201643737A (zh) 組態串列裝置
US6769051B2 (en) Memory controller and memory control method for controlling an external memory device to be accessible even in an addressing mode that is not supported thereby
US20100146224A1 (en) Request processing device, request processing system, and access testing method
US20070143534A1 (en) Nonvolatile-memory-access control apparatus and nonvolatile-memory control system
JP2008146773A (ja) 不揮発性半導体記憶装置
JP2013182373A (ja) 記憶装置及びその制御方法
JP2008102693A (ja) メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2009252294A (ja) メモリコントローラ、メモリシステム、及びメモリデバイスへのデータの書込方法
JP4103452B2 (ja) シリアルeepromのデータ入力制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061228

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20090210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091222

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100708

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees