JP2009211208A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2009211208A
JP2009211208A JP2008051405A JP2008051405A JP2009211208A JP 2009211208 A JP2009211208 A JP 2009211208A JP 2008051405 A JP2008051405 A JP 2008051405A JP 2008051405 A JP2008051405 A JP 2008051405A JP 2009211208 A JP2009211208 A JP 2009211208A
Authority
JP
Japan
Prior art keywords
data
delay
trimming
error correction
dly
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
JP2008051405A
Other languages
English (en)
Other versions
JP4519923B2 (ja
Inventor
Yasushi Nagatomi
靖 長冨
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
Original Assignee
Toshiba 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
Priority to JP2008051405A priority Critical patent/JP4519923B2/ja
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to KR1020097017688A priority patent/KR101096884B1/ko
Priority to US12/529,080 priority patent/US8103920B2/en
Priority to CN2009800001158A priority patent/CN101681296B/zh
Priority to EP09713659.2A priority patent/EP2248022B1/en
Priority to PCT/JP2009/051398 priority patent/WO2009107443A1/en
Priority to TW098106020A priority patent/TWI409640B/zh
Publication of JP2009211208A publication Critical patent/JP2009211208A/ja
Application granted granted Critical
Publication of JP4519923B2 publication Critical patent/JP4519923B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)

Abstract

【課題】不揮発性記憶部の信号線の負荷容量が増大した場合においても、不揮発性記憶部からデータを読み出して確実に出力することが可能なメモリシステムを提供することを目的とする。
【解決手段】NAND I/F116は、RE信号を帰還させた信号をプログラムブル遅延素子220で遅延させて第2のクロックCLK2として出力し、第2のクロックCLK2を使用して、NANDメモリ10から読み出したデータをラッチして出力する。
【選択図】 図13

Description

本発明は、不揮発性半導体記憶装置を用いて構成されるメモリシステムに関する。
コンピュータシステムに用いられる外部記憶装置として、フラッシュメモリ(フラッシュEEPROM)を搭載したメモリシステムとしてSSD(Solid State Drive)が注目されている。フラッシュメモリは、磁気ディスク装置に比べ、高速、軽量などの利点を有している。
SSD内には、複数のフラッシュメモリチップ、ホスト装置からの要求に応じて各フラッシュメモリチップのリード/ライト制御を行うコントローラ、各フラッシュメモリチップとホスト装置との間でデータ転送を行うためのバッファメモリ、電源回路、ホスト装置に対する接続インタフェースなどを備えている(例えば、特許文献1)。
しかしながら、SSDを設計する場合、コントローラチップのPin数や実装面積が限られた中で、データ容量を増やすために、メモリChipを複数枚Stack(積層)したStack品を使用する必要がある。かかるStack品では、内部でIO信号線および制御信号線をメモリChip数分纏めた形となり、各信号線の負荷容量もStackしたメモリChip数につれて大きくなる。
各信号線の負荷容量が大きくなると、IO信号および制御信号のCR遅延による遅れが生じ、同期設計したコントローラを使用した場合、低負荷(Stack数:少)ではメモリからの読み取りデータをラッチして出力できるが、高負荷(Stack数:多)ではCR遅延によってメモリから読み出したデータの遅延のため、ラッチして出力できないおそれがある。
特許第3688835号公報
本発明は、上記課題に鑑みてなされたものであり、不揮発性記憶部の信号線の負荷容量が増大した場合においても、不揮発性記憶部からデータを読み出して確実に出力することが可能なメモリシステムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、不揮発性記憶部と、前記フラッシュメモリを制御するコントロール回路と、前記コントロール回路を制御するMPUと、ホストとの通信を行うインタフェース回路を有するメモリシステムにおいて、前記コントロール回路は、リードイネーブル信号を前記フラッシュメモリに出力してデータを読み出す読み出し手段と、前記リードイネーブル信号を帰還させた信号を遅延させてクロックとして出力する遅延手段と、前記遅延手段から出力されるクロックを使用して、前記フラッシュメモリから読み出したデータをラッチして出力するラッチ手段と、を備えたことを特徴とする。
本発明によれば、リードイネーブル信号を帰還させた信号を遅延させたクロックを使用して、不揮発性記憶部から読み出したデータをラッチして出力することとしたので、不揮発性記憶部の信号線の負荷容量が増大した場合においても、不揮発性記憶部からデータを読み出して確実に出力することが可能なメモリシステムを提供することが可能となるという効果を奏する。
以下に、この発明につき図面を参照しつつ詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、下記実施例における構成要素には、当業者が容易に想定できるものまたは実質的に同一のものが含まれる。
本実施例のメモリシステムは、不揮発性半導体記憶装置を含み、たとえば、パーソナルコンピュータなどのホスト装置の2次記憶装置(SSD:Solid State Drive)として使用され、ホスト装置から書込要求が出されたデータを記憶し、またホスト装置から読出要求のあったデータを読出してホスト装置に出力する機能を有する。
[SSDの構成例]
図1は、SSD100の構成例を示すブロック図である。SSD100は、システム基板に搭載されたASICおよびNANDメモリ10で構成されている。また、ASICには、ドライブ制御回路4,電源回路5,DRAM20が搭載されている。
SSD100は、ATAインタフェース(ATA I/F)2などのメモリ接続インタフェースを介してパソコンあるいはCPUコアなどのホスト装置(ホスト)1と接続され、ホスト装置1の外部メモリとして機能する。また、SSD100は、RS232Cインタフェース(RS232C I/F)3などの通信インタフェースを介して、デバッグ用機器200との間でデータを送受信することができる。SSD100は、不揮発性メモリとしてのNANDフラッシュメモリ(以下、NANDメモリと略す)10と、コントローラとしてのドライブ制御回路4と、揮発性メモリとしてのDRAM20と、電源回路5と、状態表示用のLED6などを備えている。
電源回路5は、ホスト装置1側の電源回路から供給される外部直流電源から複数の異なる内部直流電源電圧を生成し、これら内部直流電源電圧をSSD100内の各回路に供給する。また、電源回路5は、外部電源の立ち上がりまたは立ち下がりを検知し、パワーオンリセット信号またはパワーオフリセット信号を生成して、ドライブ制御回路4に供給する。
NANDメモリ10は、4ChのNANDメモリパッケージ10a〜10dを有する。1つのNANDメモリパッケージは、積層された複数のNANDメモリチップ(以下、「Chip」と称する)によって構成されている。図1に示す例では、例えば、NANDメモリパッケージ10aは、8枚のChip0〜7(例えば、1Chip=16GB)がStackされた8StackChip10a1と、8枚のChip8〜15がStackされた8StackChip10a2とを備え、他のNANDメモリパッケージ10b〜dも同様に、2組の8StackChipを備えており、NANDメモリ10は128GBの容量を有する。4ChのNANDメモリパッケージ10a〜10dは、4並列動作が可能となっている。
DRAM20は、ホスト装置1とNANDメモリ10間でのデータ転送用キャッシュおよび作業領域用メモリとして機能する。ドライブ制御回路4は、ホスト装置1とNANDメモリ10との間でDRAM20を介してデータ転送制御を行うとともに、SSD100内の各構成要素を制御する。また、ドライブ制御回路4は、状態表示用LED6にステータス表示用信号を供給するとともに、電源回路5からのパワーオン/オフリセット信号を受けて、リセット信号およびクロック信号を自回路内およびSSD100内の各部に供給する機能も有している。
各NANDメモリチップは、データ消去の単位であるブロックを複数配列して構成されている。図2は、NANDメモリチップに含まれる1個のブロックの構成例を示す回路図である。各ブロックは、X方向に沿って順に配列された(m+1)個のNANDストリングを備えている(mは、0以上の整数)。(m+1)個のNANDストリングにそれぞれ含まれる選択トランジスタST1は、ドレインがビット線BL0〜BLmに接続され、ゲートが選択ゲート線SGDに共通接続されている。また、選択トランジスタST2は、ソースがソース線SLに共通接続され、ゲートが選択ゲート線SGSに共通接続されている。
各メモリセルトランジスタMTは、半導体基板上に形成された積層ゲート構造を備えたMOSFET(metal oxide semiconductor field effect transistor)から構成される。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(浮遊ゲート電極)、及び電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタMTは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。メモリセルトランジスタMTは、1ビットを記憶するように構成されていてもよいし、多値(2ビット以上のデータ)を記憶するように構成されていてもよい。
各NANDストリングにおいて、(n+1)個のメモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、複数のメモリセルトランジスタMTは、隣接するもの同士で拡散領域(ソース領域若しくはドレイン領域)を共有するような形でY方向に直列接続される。
そして、最もドレイン側に位置するメモリセルトランジスタMTから順に、制御ゲート電極がワード線WL0〜WLnにそれぞれ接続されている。従って、ワード線WL0に接続されたメモリセルトランジスタMTのドレインは選択トランジスタST1のソースに接続され、ワード線WLnに接続されたメモリセルトランジスタMTのソースは選択トランジスタST2のドレインに接続されている。
ワード線WL0〜WLnは、ブロック内のNANDストリング間で、メモリセルトランジスタMTの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタMTの制御ゲート電極は、同一のワード線WLに接続される。この同一のワード線WLに接続される(m+1)個のメモリセルトランジスタMTは1ページとして取り扱われ、このページごとにデータの書き込み及びデータの読み出しが行われる。
また、ビット線BL0〜BLmは、ブロック間で、選択トランジスタST1のドレインを共通に接続している。つまり、複数のブロック内において同一列にあるNANDストリングは、同一のビット線BLに接続される。
図1に示したように、NANDメモリ10においては、4つの並列動作要素であるNANDメモリパッケージ10a〜10dが各8ビットの4チャネル(4Ch)を介してドライブ制御回路4に並列接続されている。4つのNANDメモリパッケージ10a〜10dを単独動作させるか、並列動作させるか、NANDメモリ10の倍速モードを使用するか否か、という組み合わせにより、下記3種類のアクセスモードが提供される。
(1)8ビットノーマルモード
1Chだけ動作させ、8ビット単位で読み書きをするモードである。転送サイズの1単位はページサイズ(4kB)である。
(2)32ビットノーマルモード
4Ch並列で動作させ、32ビット単位で読み書きをするモードである。転送サイズの1単位はページサイズ×4(16kB)である。
(3)32ビット倍速モード
4Ch並列で動作させ、更に、NANDメモリ10の倍速モードを利用して読み書きをするモードである。転送サイズの1単位はページサイズ×4×2(32kB)である。
4Ch並列動作する32ビットノーマルモードまたは32ビット倍速モードでは、並列動作する4または8ブロックが、NANDメモリ10としての消去単位となり、並列動作する4または8ページが、NANDメモリ10としての書き込み単位及び読み出し単位となる。
図3は、ドライブ制御回路4のハードウェア的な内部構成例を示すブロック図である。ドライブ制御回路4は、データアクセス用バス101、第1の回路制御用バス102、及び第2の回路制御用バス103を備えている。第1の回路制御用バス102には、ドライブ制御回路4全体を制御するプロセッサ104が接続されている。第1の回路制御用バス102には、NANDメモリ10に記憶された各管理プログラム(FW:ファームウエア)をブートするブート用プログラムが格納されたブートROM105がROMコントローラ106を介して接続されている。また、第1の回路制御用バス102には、図1に示した電源回路5からのパワーオン/オフリセット信号を受けて、リセット信号及びクロック信号を各部に供給するクロックコントローラ107が接続されている。
第2の回路制御用バス103は、第1の回路制御用バス102に接続されている。第2の回路制御用バス103には、図1に示した状態表示用LED6にステータス表示用信号を供給するパラレルIO(PIO)回路108、RS232C I/F3を制御するシリアルIO(SIO)回路109が接続されている。
ATAインタフェースコントローラ(ATAコントローラ)110、第2のECC(Error Check and Correct)回路111、NANDコントローラ112、及びDRAMコントローラ113は、データアクセス用バス101と第1の回路制御用バス102との両方に接続されている。ATAコントローラ110は、ATAインタフェース2を介してホスト装置1との間でデータを送受信する。データアクセス用バス101には、データ作業領域として使用されるSRAM114がSRAMコントローラ115を介して接続されている。SRAM114には、NANDメモリ10に記憶されているファームウエアが起動時、ブートROM105に記憶されたブート用プログラムによって転送される。
NANDコントローラ112は、NANDメモリ10の各NANDメモリパッケージ10a〜10dとのインタフェース処理を行うNAND I/F116、第1のECC回路117、NANDメモリ10−DRAM20間のアクセス制御を行うDMA転送制御用DMAコントローラ118、およびプロセッサ104により制御データが書き込まれる制御レジスタ119を備えている。
NANDメモリ10にデータを書き込む場合は、第1のECC回路117は、書き込み対象のデータに対して、所定単位データD(例えば、512B)毎に、誤り検出符号(例えば、CRC32)および1bitの訂正能力がある第1の誤り訂正符号(例えば、ハミング符号)を生成して付加する。また、第1のECC回路117は、8個の単位データD毎に、複数bit(例えば、48bit)の訂正能力がある第2の誤り訂正符号(例えば、BCH符号)を生成して付加する。誤り検出符号および第1の誤り訂正符号が付加されたデータがNAND I/F116によりNANDメモリ10に書き込まれる。
また、NANDメモリ10からデータを読み出す場合は、第1のECC回路117は、NAND I/F116によりNANDメモリ10から読み出されたデータに対して、まず、第1の誤り訂正を行った後、誤り検出符号で誤りがあるか否かを検出し、第1の誤り訂正後のデータ、第1の誤り訂正による訂正bit数、および誤り検出結果をDAMコントローラ118を介して、DRAM20に格納する。第2のECC回路111は、誤り検出結果で誤りがある場合に、すなわち、第1の誤り訂正で誤りを訂正できなかった場合に、第2の誤り訂正を行って、第2の誤り訂正後のデータおよび第2の誤り訂正による訂正bit数をDRAM20に格納する。
図4は、NANDメモリ10に書き込むデータのフォーマットの一例を示す図である。
同図に示すように、単位データD(512B)に対してCRC32および1bitの訂正能力があるハミング符号(第1の誤り訂正符号)が付加され、列方向の8個の単位データD(4KB)に対して48bitの訂正能力があるBCH符号(第2の誤り訂正符号)が付加されている。
[NANDコントローラおよびNANDメモリ]
図5は、NAND I/F116とNANDメモリ10との接続を説明するための図である。NAND I/F116は、4Chのインタフェース回路であるCh0〜Ch3制御部210a〜210dを備えており、Ch0〜Ch3制御部210a〜210dの制御信号ピン201およびIO信号ピン202は、Ch0〜Ch3のNANDパッケージ10a〜10d(NAND Ch0〜Ch3)とそれぞれ独立に接続されている。制御信号ピン201からは制御信号が出力され、IOピン202からは8ビットのデータIO0〜7が入出力される。NAND I/F116は、CE(チップイネーブル)0〜3信号は、NANDパッケージ10a〜10d(NAND Ch0〜Ch3)を選択する。
以下の説明では、各Chの構成は同一であるので、Ch0を代表させて説明する。図6および図7は、NANDメモリ10の負荷容量およびCR遅延を説明するための図である。図7において、213は入出力IO,214および215は出力IOを示している。
図6に示すように、8StackChip10a1は、IOデータIO0〜7、制御信号{WE(ライトイネーブル)信号、RE(リードイネーブル)信号、CLE(コマンドラッチイネーブル)信号、ALE(アドレスラッチイネーブル)信号、WP(ライトプロテクト)信号等}が1本/8Chipであるので、負荷容量が8倍に増加する。また、NANDパッケージ10aは、信号pinを減らすために、IO信号IO0〜7および制御信号/2個の8StackChip10a1,10a2としているため、負荷容量がさらに2倍に増加する。このため、CR遅延が増加する。また、一般に負荷容量はIOデータ>制御信号であるため、IOデータと制御信号で遅延差が生じる。
図8は、NANDメモリ10からのデータの読み出しを説明するためのタイミングチャートである。同図において、(A)はRE信号、(B)はIOデータを示している。ここで、システムは、RE信号の立ち下がりからtREA経過した後に、読み出しデータの出力が保証され、REの立ち上がりからtRLOH経過した後は、読み出しデータの出力が保証されないスペックであるとする。この場合、負荷容量が大きくCR遅延が大きい場合は、tREAが遅れ負荷容量が小さい場合のラッチタイミングではデータを取得できなくなってしまい、そのタイミング調整が必要となる。
図9〜図11を参照して、NAND I/F116のCh制御部に完全同期設計回路を搭載した場合の信号遅延について説明する。図9は、安全同期設計回路を説明するための図、図10は、負荷容量が小さい場合のタイミングチャート、図11は、負荷容量が大きい場合のタイミングチャートを示している。なお、以下、フリップフロップをFFと表記する。
図9において、Ch0制御部210aは、クロックコントローラ107(図3参照)で生成された内部クロックCLKに同期してREを出力するFF_REと、内部クロックCLKに同期してIO[7:0]をラッチして出力するFF_DATA[7:0]とを備えている。同図において、t1は、IOとCR遅延、t2,t5は、伝搬(配線)遅延、t4はIO遅延、tREAはNANDデータ出力とIOとCR遅延を示している。
図10および図11において、(A)は内部CLK、(B)はFF_RE出力、(C)はNAND RE、(D)はNAND IO[7:0]、(E)はFF_DATA[7:0]入力、(F)はFF_DATA[7:0]出力を示している。
図10に示すように、負荷容量が小さい場合には、t1およびtREAのCR遅延が小さいため、内部クロックCLKのタイミングでデータを取得することができる。他方、図11に示すように、負荷容量が大きい場合には、t1およびtREAのCR遅延が大きくなるため、内部クロックCLKのタイミングでデータを取得することができなくなってしまう。このため、タイミング調整のための非同期設計が必要となる。
[NANDコントローラ112のデータ読み出しのタイミング調整]
図12〜図18を参照して、NANDコントローラ112のデータ読み出しのタイミング調整を説明する。本実施の形態では、NANDメモリ10の負荷容量の増大に伴う信号遅延があってもNANDメモリ10からの読み出しデータの出力動作を保証するために、図12に示すように、各Ch毎にRE信号を帰還させて、読み出しデータをラッチする際のタイミング調整を行っている。同図では、Ch0のみを図示しているが、他のCh1〜3についても同様にRE信号を帰還させる。
具体的には、読み出しデータをラッチするフリップフロップFFに、RE信号を帰還(再入力)させて、データラッチ用の第2のクロックCLK2とすると共に、RE信号を帰還させる経路にプログラムブル遅延素子を配置して、プログラムブル遅延素子で第2のクロックCLK2のタイミングを調整することで、信号遅延があってもNANDメモリ10からの読み出しデータの出力動作を保証している。プログラムブル遅延素子の遅延量を、システム基板の負荷容量が小さい場合は「小」、システム基板の負荷容量が大きい場合は「大」に設定して、システム基板の負荷容量が大〜小の場合まで読み出しデータの出力動作を保証することが可能となる。
(実施例1)
図13〜図14を参照して実施例1を説明する。図13は、実施例1に係るNAND I/F116のCh制御部に搭載される非同期回路の一例を説明するための図である。図14は、実施例1の非同期回路のタイミングチャートの一例である。
図13において、t1は、IOとCR遅延、t2,t3,t5は、伝搬(配線)遅延、t4はIO遅延、tREAはNANDデータ出力とIOとCR遅延、tDLYはIOとDLY素子遅延である。実施例1では、システム基板上でRE信号を分岐させて帰還させる構成であり、REを再入力してデータラッチ用CLKとして利用することで、IO信号の配線遅延およびIO遅延をキャンセルする。IO信号を出力するための信号線S1とRE信号を出力するための信号線S2を等長にして、両者の負荷容量を等しくする。
FF_REは、内部クロックCLKに同期してRE信号をNANDメモリ10に出力する。プログラムブル遅延Y素子220は、RE信号を帰還させる経路に配置され、RE帰還信号の遅延量を調整して、第2のクロックCLK2として、FF_DATA0[7:0]に出力する。プログラムブル遅延Y素子220の遅延量(DLYタップ数)は、後述するように、プロセッサ104により設定される。FF_DATA0[7:0]は、第2のクロックCLK2(RE信号の再入力)に同期してIO[7:0]をラッチして、後段のFF_DATA1[7:0]に出力する。FF_DATA1[7:0]は、FF_DATA0[7:0]から出力されるDATA1[7:0]を、内部クロックCLKに同期してDATA0[7:0]をラッチして、DATA1[7:0]を出力する。
図14は、図13の非同期回路のタイミングチャートを示しており、同図において、(A)は内部クロックCLK、(B)はFF_RE出力、(C)はNAND RE、(D)はNAND IO[7:0]、(E)はFF_DATA[7:0]入力、(F)は第2のCLK(REの再入力)、(G)はFF_DATA[7:0]出力、(H)はFF_DATA1[7:0]出力(内部CLKに同期化)を示している。
なお、ここでは、RE帰還信号をCh毎(計4本)に追加することとしたが、信号pin削減のために、1ChのみにRE帰還信号を追加し、他Chも使用するようにしてもよい。この場合、実装上Ch毎の信号線長やメモリChipのバラツキを考慮する必要がある。
(実施例2)
図15〜図16を参照して実施例1を説明する。図15は、実施例2に係るNAND I/F116のCh制御部に搭載される非同期回路の一例を説明するための図である。図15において、図13と同等機能を有する部位には同一符号を付し、共通する部分の説明を省略し、異なる点についてのみ説明する。図16は、実施例5の非同期回路のタイミングチャートの一例である。
上記実施例1では、システム基板上でRE信号を分岐させて帰還させる構成である。これに対して、実施例2は、ASIC内でRE信号を分岐させて帰還させる構成である。
図15において、t1は、IOとCR遅延、t2,t5は、伝搬(配線)遅延、t4はIO遅延、tREAはNANDデータ出力とIOとCR遅延、tDLYはIOとDLY素子遅延である。実施例1と異なる点は、IO信号の遅延値をキャンセルしないので、プログラムブル遅延素子220でこの分を考慮する。実施例1と同様に、FF_DATA0[7:0]は、第2のクロックCLK2に同期してIO[7:0]をラッチして、後段のFF_DATA1[7:0]に出力し、FF_DATA1[7:0]は、IO[7:0]をCLKでラッチして出力する。
図16は、図15の非同期回路のタイミングチャートを示しており、同図において、(A)は内部クロックCLK、(B)はFF_RE出力、(C)はNAND RE、(D)はNAND IO[7:0]、(E)はFF_DATA[7:0]入力、(F)は第2のクロックCLK2(ASIC内のREの再入力)、(G)はFF_DATA[7:0]出力、(H)はFF_DATA1[7:0]出力(内部クロックCLKに同期化)を示している。
(プログラムブル遅延素子の設定方法)
図17および図18を参照して、上記実施例1、2のプログラムブル遅延素子220の遅延量(タップ数)の設定方法を説明する。図17は、プログラムブル遅延素子のタップ数の設定方法を説明するための図である。図18はプログラムブル遅延素子220の構成例を示す図である。
全DLY長及びDLYタップ数を決める場合は、(1)システムが保証するデータの読み出しタイミングの範囲内となること、(2)システム構成での各信号の負荷容量、(3)ASIC−NANDメモリ10間での伝送線路のシミュレーション結果、(4)遅延素子1個の遅延量/実装面積(遅延素子数を多くすると実装面積が大きくなる。)を考慮する。
図17において、NANDコントローラ112の制御レジスタ119は、タップ数設定レジスタ119aを備えている。プロセッサ104は、タップ数設定レジスタ119aに、プログラムブル遅延素子220のDLYタップ数を設定する。NAND I/F116は、タップ数設定レジスタ119aに設定されたDLYタップ数に応じたタップ制御データ(例えば、7Bit)を全Chのプログラムブル遅延素子220に出力する。本実施の形態では、全Chのプログラムブル遅延素子220に同一のDLYタップ数が設定される構成としている。なお、各Ch毎にタップ数設定レジスタ119aを設け、各Chで異なるDLYタップ数を設定する構成としてもよい。
図18において、プログラムブル遅延素子220は、セレクタSEL0〜SEL6と、セレクタSEL0〜SEL6の出力をそれぞれ反転させる反転器INV0〜INV6と、RE信号を反転させてRE反転信号を出力する反転器INV7と、セレクタSEL0〜SEL6および反転器INV0〜INV6をそれぞれ介して直列に7段接続されるDLY素子(DLYタップ)DLY0〜DLY6とを備えている。本例では、FF_Data[7:0]がpositive edgeクロックのフリップフロップのため、プログラマブル遅延素子220は出力の極性は入力の反転となるようにしてある。また、セレクタの出力に反転器を挿入しているのは、DLY素子のrise/fall極性を緩和させるためである。
セレクタSEL0〜SEL6は、それぞれ、DLY素子DLY0〜DLY6の出力が入力され、セレクタSEL0,2,4,6には、RE信号が入力され、セレクタSEL1,3,5には、RE反転信号が入力される。セレクタSEL0〜SEL6は、NAND I/F116から入力されるタップ制御データ(7bit)に応じて、遅延素子DLY0〜DLY6の出力と、RE信号または反転RE信号の出力とをそれぞれ択一的に選択して出力し、タップ制御データの対応ビットが「0」の場合、RE信号または反転RE信号を出力し、タップ制御データの対応ビットが「1」の場合、遅延素子DLY0〜DLY6の出力を出力する。
例えば、タップ数設定レジスタ119aに「3」が設定された場合、すなわち、DLYタップ数が「3」の場合には、タップ制御データは、「0000111」となる。セレクタSEL4〜6では、3つの遅延素子DLY4〜DLY6が選択され、セレクタSEL3から入力されるRE反転信号が3つの遅延素子DLY4〜DLY6で遅延された後、第2のクロックCLK2として出力される。
このように、タップ数設定レジスタ119aに設定されるDLYタップ数に基づいて、接続する遅延素子DLY0〜DLY6を選択して、帰還させるRE信号の遅延量を設定することが可能となる。なお、プロセッサ104は、電源ON時に後述するトリミング検査で決定したDLYタップ数をNANDメモリ10または不揮発性メモリから読み出して、
タップ数設定レジスタ119aに設定することができる。
[製造時のトリミング検査]
図19〜図23を参照して、製造時のトリミング検査でプログラムブル遅延素子220のDLYタップ数の設定を行う場合について説明する。プログラムブル遅延素子220のDLYタップ数の設定は、製造時のトリミング検査で行うことができる。トリミング検査では、32ビットモード(32ビットノーマルモードまたは32ビット倍速モード)を使用して、トリミング検査の処理時間を短縮する。また、トリミング検査は、動作マージンを広くするために、高温および高電圧条件下で行うのが望ましい。
(実施例1)
図19〜図21を参照して、製造時のトリミング検査の実施例1を説明する。図19は、プログラムブル遅延素子220のDLYタップ数を変更した場合の第2のクロックCLK2でIO信号をラッチする場合を説明するためのタイミングチャートである。図20は、製造時トリミング検査の実施例1を説明するためのフローチャートである。図21は、トリミング検査結果からプログラムブル遅延素子220のDLYタップ数を決定する方法を説明するための図である。
トリミング検査の実施例1では、図1、図3、図17において、プロセッサ104は、トリミング検査を行う場合には、トリミングデータをDRAM20に展開した後、DRAMコントローラ113およびNANDコントローラ112を介して、32ビットモードで、各ChのNANDメモリパッケージ10a〜10dの全Chipに書き込む。プロセッサ104は、全Chのプログラムブル遅延素子220のDLYタップ数(0〜7)を変更しながら、各ChのChip0〜15毎にトリミングデータを、32ビットモードで読み出してDRAM20に転送し、プロセッサ104は、読み出したトリミングデータと書き込んだトリミングデータのコンペアを行ない、コンペア結果に基づいてプログラムブル遅延素子220の最適なDLYタップ数を設定する。
トリミングデータは、タイミングによる読み出し誤りを検知できるようなパターンにすることが望ましい。例えば、各IOでトグルかつ隣接IOでトグルするようなパターン(例えば、32’h5555_5555,32’hAAAA_AAAA)を使用することができる。
図19を参照して、プログラムブル遅延素子220のDLYタップ数を変更した場合の第2のクロックCLK2およびこの第2のクロックCLK2でIO信号をラッチする場合を説明する。同図において、(A)は内部クロックCLK、(B)はIO信号(IOデータ)、(C)〜(J)はDLYタップ数0〜7とした場合の第2のクロックCLK2(RE再入力)を示している。
第2のクロックCLK2の立ち上がりで、IO信号(データ)をラッチする場合、DLYタップ数0〜1では、第2のクロックCLK2の立ち上がりが早すぎるため、IO信号(データ)をラッチすることができない(NG)。また、DLYタップ数6〜7では、第2のクロックCLK2の立ち上がりが遅すぎるためIO信号(データ)をラッチすることができない(NG)。他方、DLYタップ数2〜5では、第2のクロックCLK2の立ち上がりでIO信号(データ)をラッチすることができる(OK)。
つぎに、図20を参照して、トリミング検査の実施例1の処理フローを説明する。プロセッサ104は、NANDコントローラ112の制御レジスタ119のタップ数設定レジスタ119aにDLYタップ数0〜7を順に書き込んで、全Chのプログラムブル遅延素子220のDLYタップ数0〜7を変更しながら、NANDメモリ10の全ChのChip番号0〜15のChipについてトリミング検査を行う。
図20において、DRAM20に格納したトリミングデータを、NANDメモリ10の全Chipに書き込む(ステップS1)。プロセッサ104は、DLYタップ数<全タップ数(7)であるか否かを判定する(ステップS2)。DLYタップ数<全タップ数でない場合(ステップS2の「No」)、すなわち、全てのタップ数についての検査が終了した場合には、検査結果に基づいてDLYタップ数を決定して(ステップS11)、当該フローを終了する。
他方、DLYタップ数<全タップ数である場合には(ステップS2の「Yes」)、プログラムブル遅延素子220のDLYタップ数をインクリメントする(ステップS3)。そして、Chip番号<全Chip数(15)であるか否かを判断し(ステップS4)、Chip番号<全Chip数でない場合には(ステップS4の「No」)、ステップS2に戻る一方、Chip番号<全Chip数である場合には(ステップS4の「Yes」)、Chip番号をインクリメントする(ステップS5)。全ChのChip番号のChipから32ビットモードで全データを読み出してDRAM20に展開する(ステップS6)。プロセッサ104は、DRAM20に読み出したトリミングデータと書き込んだトリミングデータとをコンペア(比較)して(ステップS7)、OK、NGを判断する(ステップS8)。
ここで、OK/NGの判定は、不一致bit数(全Chの該当するChip番号のChipの不一致bitの合計値)≦閾値bit数の場合にOK、不一致bit数>閾値bit数の場合にNGと判定する。閾値bit数はシステムで許容可能な不一致bit数が設定される。なお、出荷時に誤りbitを許容している場合もあるので、閾値bit数は0とは限らない。
コンペア結果がOKである場合には(ステップS8の「Yes」)、DLYタップ数とOK結果をDRAM20に保存し(ステップS10)、ステップS4に戻る。他方、コンペア結果がNGである場合には(ステップS8の「No」)、DLYタップ数とNG結果をDRAM20に保存し(ステップS9)、ステップS2に戻る。
なお、実施例1では、誤り訂正および誤り検出を行わないので、トリミングデータをNANDメモリ10に書き込む場合に、誤り検出符号および第1,第2の誤り訂正符号を付加しない構成としてもよい。また、実施例1では、タイミングのNAND Chip依存性を考慮するために全Chipに対して検査を行ったが、検査時間を短縮するためにNAND 1Chipのみを検査するようにしてもよい。
次に、図21を参照して、トリミング検査結果からDLYタップ数を具体的に決定する方法について説明する。図21は、データコンペア結果の一例を示しており、横軸はDLYタップ数0〜7を、縦軸はデータコンペア結果を示しており、○はOK結果、×はNG結果を示している。
例1に示すように、読み出し可能区間がはっきりしている場合(読み出し始めと終わりが判断できる場合)には、真ん中を選択する。例1では、DLYタップ数2〜DLYタップ数5間で読み出し可能であるので、DLYタップ数3またはDLYタップ数4を選択する。
例2に示すように、読み出しの始めしか分からない場合(終わりしかわからない場合も同様)には、単純に一番遅いDLYタップ数を選択する。例2では、DLYタップ数5〜DLYタップ数7で読み出しが可能であるので、DLYタップ数7を選択する。また、設計時のタイミング計算からDLYタップ数2個分マージンを取るとした場合は、DLYタップ数7を選択する(DLYタップ数5,6はマージン)。
例3に示すように、設計時のタイミング計算からDLYタップ数2個分マージンを取るとした場合は、DLYタップ数6〜DLYタップ7で読み出しが可能であるので、DLYタップ数を選択することができないので、初期不良と判断する。例4に示すように、全タップで読み出しができない場合には、初期不良と判断する。
(実施例2)
図22〜図23を参照して、製造時のトリミング検査の実施例2を説明する。図22は、製造時トリミング検査の実施例2を説明するためのフローチャートである。図23は、トリミング検査結果からプログラムブル遅延素子220のDLYタップ数を決定する方法を説明するための図である。
実施例1では、データコンペアを行い、その結果に基づいてプログラムブル遅延素子220のDLYタップ数を決定するものである。これに対して、実施例2は、誤り訂正を行い、その結果に基づいてプログラムブル遅延素子220のDLYタップ数を決定するものである。
トリミング検査の実施例2では、図1、図3、図17において、プロセッサ104は、トリミング検査を行う場合には、トリミングデータをDRAM20に展開した後、DRAMコントローラ113およびNANDコントローラ112を介して、32ビットモードで、各ChのNANDメモリパッケージ10a〜10dの全Chipに書き込む。プロセッサ104は、プログラムブル遅延素子220のDLYタップ数(0〜7)を変更しながら、書き込まれたトリミングデータを、Chip毎に32ビットモードで読み出し、第1のECC回路117で第1の誤り訂正を行った後、誤り検出符号で誤りがあるか否かを検出し、第1の誤り訂正後のデータ、第1の誤り訂正による訂正bit数、および誤り検出結果をDRAM20に格納する。この後、第2のECC回路111は、誤り検出結果で誤りがある場合に、第2の誤り訂正を行って、第2の誤り訂正による訂正bit数をDRAM20に格納する。プロセッサ104は、第1および第2の誤り訂正bit数に基づいて、プログラムブル遅延素子220の最適なDLYタップ数を決定する。
トリミングデータは、実施例1と同様に、タイミングによる読み出し誤りを検知できるようなパターンにする。例えば、各IOでトグルかつ隣接IOでトグルするようなパターン(ex.32’h5555_5555,32’hAAAA_AAAA)を使用することができる。
つぎに、図22を参照して、トリミング検査の実施例2の処理フローを説明する。図22において、図20と同様な処理を行うステップには同一のステップ番号を付してある。
図22において、プロセッサ104は、DRAM20に格納したトリミングデータを、NANDメモリ10の全Chipに書き込む(ステップS1)。DLYタップ数<全タップ数(7)であるか否かを判定する(ステップS2)。DLYタップ数<全タップ数でない場合には(ステップS2の「No」)、検査結果に基づいてDLYタップ数を決定して(ステップS11)、当該フローを終了する。
他方、DLYタップ数<全タップ数である場合には(ステップS2の「Yes」)、DLYタップ数をインクリメントする(ステップS3)。そして、Chip番号<全チップ数(15)であるか否かを判断し(ステップS4)、Chip番号<全チップ数でない場合には(ステップS4の「No」)、ステップS2に戻る一方、Chip番号<全チップ数である場合には(ステップS4の「Yes」)、Chip番号をインクリメントする(ステップS5)。Chip番号のChipから全データを読み出し、DRAM20に展開する(ステップS6)。この場合、第1のECC回路117では、読み出したデータに対して第1の誤り訂正を行った後、誤り検出符号で誤りがあるか否かを検出し、第1の誤り訂正後のデータ、第1の誤り訂正による訂正bit数、および誤り検出結果をDRAM20に格納する。この後、第2のECC回路111は、誤り検出結果で誤りがある場合に、第1の誤り訂正後のデータに対して、第2の誤り訂正を行って、第2の誤り訂正による訂正bit数、および訂正不可(第2の誤り訂正の訂正能力を超える場合)その旨の情報をDRAM20に格納する(ステップS21)。
プロセッサ104は、誤り訂正無し、または訂正bit数(全Chにおける,第1の誤り訂正bit数+第2の誤り訂正bit数)<許容bit数であるか否かを判断する(ステップS22)。ここで、許容bit数は、システムで許容可能な誤り訂正bit数である。許容bit数は、Chip単位、ページ単位(NANDメモリ10の最小アクセス単位のこと。32ビット倍速モードでは、32KB。)またはブロック単位(NANDメモリの消去単位のこと。32ビット倍速モードでは、4MB)で設定することにしてもよい。
訂正無しまたは誤り訂正bit数<許容bit数である場合には(ステップS22の「Yes」)、DLYタップ数でOK結果を保存し(ステップS10)、ステップS4に戻る。他方、訂正無しまたは訂正bit数<許容bit数でない場合(訂正不可も含む)には(ステップS22の「No」)、DLYタップ数でのNG結果を保存し(ステップS9)、ステップS2に戻る。
なお、ここでは、第1の誤り訂正および第2の誤り訂正の誤り訂正bit数に基づいて、プログラムブル遅延素子220のDLYタップ数を設定することとしたが、第1の誤り訂正のみを行って、その誤り訂正bit数のみを使用してDLYタップ数を設定することにしてもよい。
次に、図23を参照して、トリミング検査結果からDLYタップ数を決定する実施例2について説明する。トリミング検査結果からDLYタップ数を決定する実施例2を説明するための図である。実施例2では、誤り訂正bit数を使用する場合である。図23は、誤り訂正結果の一例を示しており、()内は誤り訂正bit数を示しており、×は誤り訂正bit数が許容bit数(例えば、12bit)より大きい場合を示している。
例1に示すように、読み出し可能区間がはっきりしている場合(読み出し始めと終わりが判断できる場合)には、訂正bit数の少ないDLYタップ数を選択する。例1では、DLYタップ数2〜DLYタップ数5間で読み出し可能であるので、誤り訂正bit数の最も少ないDLYタップ数3を選択する。なお、訂正bit数の最も少ないDLYタップ数が複数ある場合は、真ん中のDLYを選択する。
例2に示すように、読み出しの始めしか分からない場合(終わりしかわからない場合も同様)には、単純に一番誤り訂正bit数が少ないDLYタップ数を選択する。例2では、DLYタップ数5〜DLYタップ数7で読み出しが可能であるので、DLYタップ数7を選択する。また、設計時のタイミング計算からDLYタップ数2個分マージンを取り、かつ、一番訂正bit数の少ないものとした場合は、DLYタップ数7を選択する(DLY5,6はマージン)。
例3に示すように、設計時のタイミング計算からDLYタップ数2個分マージンを取り、かつ、一番訂正bit数の少ないものとした場合は、DLYを選択することができないので、初期不良と判断する。例4に示すように、全タップで誤り訂正bit数が許容bit数より大きい場合には、初期不良と判断する。
(実施例3)
図24を参照して、製造時のトリミング検査の実施例3を説明する。トリミング検査の実施例3では、実施例2の誤り訂正と実施例1のデータコンペアの両方を使用する。実施例3では、誤り訂正不可の場合には、データコンペア処理を省き、検査時間を短縮している。また、誤り訂正無し/誤り訂正可能の場合でも、データコンペア処理をすることで、検査精度を向上させている。
図24は、製造時のトリミング検査の実施例3を説明するためのフローチャートである。図24において、図20および図22と同様な処理を行うステップには同一のステップ番号を付し、共通する部分の説明は省略し、異なる点についてのみ説明する。
ステップS41において、プロセッサ104は、誤り訂正無し、または訂正bit数(第1の誤り訂正bit数+第2の誤り訂正bit数)<許容bit数であるか否かを判断する(ステップS41)。訂正無しまたは誤り訂正bit数<許容bit数である場合には(ステップS41の「Yes」)、DRAM20に読み出したトリミングデータ(誤り訂正前のデータ)と書き込んだトリミングデータとをコンペア(比較)して(ステップS41)、OK、NGを判断する(ステップS42)。
ここで、OK/NGの判定は、不一致bit数(全Chの該当するChip番号のChipの不一致bitの合計値)≦閾値bit数の場合にOK、不一致bit数>閾値bit数の場合にNGと判定する。閾値bit数はシステムで許容可能な不一致bit数が設定される。
コンペア結果がOKである場合には(ステップS43の「Yes」)、DLYタップ数とOK結果をDRAM20に保存し(ステップS10)、ステップS4に戻る。他方、コンペア結果がNGである場合には(ステップS43の「No」)、DLYタップ数とNG結果をDRAM20に保存し(ステップS9)、ステップS2に戻る。
トリミング検査結果からDLYタップ数を決定する方法は実施例1と同様であるので、その説明は省略する。
[SSDの電源ON時の処理]
次に、製品化後のSSD100の電源ON時の処理について説明する。トリミング検査で決定したDLYタップ数は、不揮発性メモリであるNANDメモリ10に保存する。この場合、製品化後の電源ON時には、NANDコントローラ112の制御レジスタ119のタップ数設定レジスタ119aにタップ数が設定されていないため、プログラムブル遅延素子220の遅延量が設定されていない。このため、確実にNANDメモリ10からDLYタップ数を読み出して、タップ数設定レジスタ119aに設定する必要があるため、(1)高速で読み出すモードと、遅くとも確実に読み出すモードを2類種用意しておき、DLYタップ数を読み出し時には、確実に読めるタイミングで読み出す。(2)また、FeRAMなどの不揮発性メモリを使用してDLYタップ数情報を格納する構成とすれば、(1)のように2モードを使う必要はなく、不揮発性メモリに格納されたDLYタップ数情報をタップ数設定レジスタ119aに設定すればよい。
なお、電源ON後、トリミング検査で決定したDLYタップ数を設定した後、DLYタップ数を読み出せるかをチエックしてもよい。この場合、トリミング検査の簡略版でもよい(あるChipに対してのみデータコンペアを行う)。もし、NGになった場合は、何らかの理由で故障したとみなしてホスト装置1に通知する。
以上説明したように、本実施の形態によれば、NAND I/F116は、RE信号を帰還させた信号をプログラムブル遅延素子220で遅延させて第2のクロックCLK2として出力し、第2のクロックCLK2を使用して、NANDメモリ10から読み出したデータをラッチして出力することとしたので、信号線の負荷容量が増大し、信号遅延があっても、NANDメモリ10からデータを読み出して確実に出力することが可能となる。付言すると、負荷容量による遅延差を広くカバーすることができるので、NANDメモリのデータ容量小〜大に対応したコントローラを設計することが可能となる。
また、プログラムブル遅延素子200は、直列接続された複数の遅延素子DLY0〜6と、複数の遅延素子のうち接続する遅延素子DLY0〜7を選択して、遅延量を選択するセレクタSEL0〜6とを備えているので、遅延量を可変に設定することができ、精度の高いデータの取り込みタイミングの調整を実現することが可能となる。
また、遅延量(DLYタップ数)が設定されるタップ数設定レジスタ119aを備え、プロセッサ104がタップ数設定レジスタ119aに遅延量を設定し、セレクタSEL0〜6は、タップ数設定レジスタ119aに設定された遅延量に基づいて、接続する遅延素子DLY0〜6を選択しているので、プロセッサ104からプログラムブル遅延素子220の遅延量を設定することが可能となる。
また、RE信号をシステム基板上またはASIC上で分岐させて帰還させることとしたので、SSD100のレイアウトを考慮して、RE信号を分岐させる位置を決定することが可能となる。
また、プログラムブル遅延素子220の遅延量を製造時のトリミング検査で設定することとしたので、製造時に製品毎に最適なプログラムブル遅延素子220の遅延量を設定することが可能となる。また、この場合、データコンペアまたは誤り訂正結果に基づいて、プログラムブル素子220の遅延量を決定しているので、より高精度にデータの取り込みタイミングの調整を実現することが可能となる。
なお、上記実施の形態では、本発明を、NANDメモリを有するSSDに適用するようにしたが、NOR型などの他のフラッシュEEPROMを有するSSDに本発明を適用するようにしてもよい。
SSD(Solid State Drive)の構成例を示すブロック図である。 NANDメモリチップに含まれる1個のブロックの構成例を示す回路図である。 ドライブ制御回路のハードウェア的な内部構成例を示すブロック図である。 NANDメモリに書き込むデータのフォーマットの一例を示す図である。 NAND I/FとNANDメモリとの接続を説明するための図である。 NANDメモリの負荷容量およびCR遅延を説明するための図である。 NANDメモリの負荷容量およびCR遅延を説明するための図である。 NANDメモリからのデータの読み出しを説明するためのタイミングチャートである。 安全同期設計回路を説明するための図である。 負荷容量が小さい場合のタイミングチャートである。 負荷容量が大きい場合のタイミングチャートを示している。 RE信号の帰還を説明するための図である。 実施例1に係るNAND I/FのCh制御部に搭載される非同期回路の一例を説明するための図である。 実施例1の非同期回路のタイミングチャートの一例を示す図である。 実施例2に係るNAND I/FのCh制御部に搭載される非同期回路の一例を説明するための図である。 実施例2の非同期回路のタイミングチャートの一例を示す図である。 プログラムブル遅延素子のタップ数の設定方法を説明するための図である。 プログラムブル遅延素子の構成例を示す図である。 プログラムブル遅延素子のタップ数を変更した場合の第2のクロックCLK2でIO信号をラッチする場合を説明するためのタイミングチャートである。 製造時トリミング検査の実施例1を説明するためのフローチャートである。 トリミング検査結果からプログラムブル遅延素子のDLYタップ数を決定する方法を説明するための図である。 製造時トリミング検査の実施例2を説明するためのフローチャートである。 トリミング検査結果からプログラムブル遅延素子のDLYタップ数を決定する方法を説明するための図である。 製造時トリミング検査の実施例3を説明するためのフローチャートである。
符号の説明
100 SSD
1 ホスト装置
2 ATAインタフェース(ATA I/F)
3 RS232C I/F
4 ドライブ制御回路
5 電源回路
6 LED
10 NANDメモリ
10a〜d NANDメモリパッケージ
10a1,10a2〜10d1、10d2 8StackChip
20 DRAM
101 データアクセス用バス
102 第1の回路制御用バス
103 第2の回路制御用バス
104 プロセッサ
105 ブートROM
106 ROMコントローラ
107 クロックコントローラ
108 パラレルIO(PIO)回路
109 シリアルIO(SIO)回路
110 ATAインタフェースコントローラ(ATAコントローラ)
111 第2のECC(Error Check and Correct)回路
112 NANDコントローラ
113 DRAMコントローラ
114 SRAM
115 SRAMコントローラ
116 NAND I/F
117 第1のECC回路
118 DMAコントローラ
119 制御レジスタ
119a タップ数設定レジスタ
220 プログラムブル遅延素子

Claims (10)

  1. 不揮発性記憶部と、前記不揮発性記憶部を制御するコントロール回路と、前記コントロール回路を制御するMPUと、ホストとの通信を行うインタフェース回路を備えるメモリシステムにおいて、
    前記コントロール回路は、
    リードイネーブル信号を前記不揮発性記憶部に出力してデータを読み出す読み出し手段と、
    前記リードイネーブル信号を帰還させた信号を遅延させてクロックとして出力する遅延手段と、
    前記遅延手段から出力されるクロックを使用して、前記不揮発性記憶部から読み出したデータをラッチして出力するラッチ手段と、
    を備えたことを特徴とするメモリシステム。
  2. 前記遅延手段は、遅延量を可変設定可能であることを特徴とする請求項1に記載のメモリシステム。
  3. 前記遅延手段は、
    任意に設定可能なレジスタ手段と、
    直列接続された複数の遅延素子と、
    前記レジスタ手段のレジスタ値に基づいて、前記複数の遅延素子のうち接続する遅延素子を選択して、遅延量を選択する選択手段と、
    を備えたことを特徴とする請求項2に記載のメモリシステム。
  4. 前記レジスタ手段のレジスタ値は、前記MPUが設定することを特徴とする請求項3に記載のメモリシステム。
  5. 前記コントロール回路、前記MPU、前記インタフェース回路、および前記コントロール回路を実装するASIC上で、前記リードイネーブル信号を帰還させることを特徴とする請求項1または請求項2に記載のメモリシステム。
  6. 前記ASICおよび前記不揮発性記憶部を搭載するシステム基板上で、前記リードイネーブル信号を帰還させることを特徴とする請求項1または請求項2に記載のメモリシステム。
  7. 製造時のトリミング検査を行い、検査結果に基づいて、前記遅延手段の遅延量を設定するトリミング検査手段を備えたことを特徴とする請求項2〜請求項4のいずれか1つに記載のメモリシステム。
  8. 前記トリミング検査手段は、
    トリミングデータを前記不揮発性記憶部に書き込むトリミングデータ書き込み手段と、
    前記遅延手段の遅延量を変更しながら、前記不揮発性記憶部に書き込んだトリミングデータを読み出して、書き込んだトリミングデータと読み出したトリミングデータとのデータコンペアを行う比較手段と、
    前記データコンペア結果に基づいて、前記遅延手段の遅延量を決定する遅延量決定手段と、
    を備えたことを特徴とする請求項7に記載のメモリシステム。
  9. 前記トリミング検査手段は、
    トリミングデータに誤り訂正符号を付加して、前記不揮発性記憶部に書き込むトリミングデータ書き込み手段と、
    前記遅延手段の遅延量を変更しながら、前記不揮発性記憶部に書き込んだトリミングデータを読み出し、読み出したトリミングデータに前記誤り訂正符号を用いて誤り訂正を行う誤り訂正手段と、
    前記誤り訂正手段の誤り訂正結果に基づいて、前記遅延手段の遅延量を決定する遅延量決定手段と、
    を備えたことを特徴とする請求項7に記載のメモリシステム。
  10. 前記トリミング検査手段は、
    トリミングデータに誤り訂正符号を付加して、前記不揮発性記憶部に書き込むトリミングデータ書き込み手段と、
    前記遅延手段の遅延量を変更しながら、前記不揮発性記憶部に書き込んだトリミングデータを読み出し、読み出したデータに誤り訂正を行う誤り訂正手段と、
    前記誤り訂正手段の誤り訂正bit数が許容範囲内の場合に、書き込んだトリミングデータと読み出したトリミングデータとのデータコンペアを行う比較手段と、
    前記データコンペア結果に基づいて、前記遅延手段の遅延量を決定する遅延量決定手段と、
    を備えたことを特徴とする請求項7に記載のメモリシステム。
JP2008051405A 2008-02-29 2008-02-29 メモリシステム Active JP4519923B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2008051405A JP4519923B2 (ja) 2008-02-29 2008-02-29 メモリシステム
US12/529,080 US8103920B2 (en) 2008-02-29 2009-01-22 Memory system configured by using a nonvolatile semiconductor memory
CN2009800001158A CN101681296B (zh) 2008-02-29 2009-01-22 存储器系统
EP09713659.2A EP2248022B1 (en) 2008-02-29 2009-01-22 Memory system
KR1020097017688A KR101096884B1 (ko) 2008-02-29 2009-01-22 메모리 시스템
PCT/JP2009/051398 WO2009107443A1 (en) 2008-02-29 2009-01-22 Memory system
TW098106020A TWI409640B (zh) 2008-02-29 2009-02-25 記憶體系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008051405A JP4519923B2 (ja) 2008-02-29 2008-02-29 メモリシステム

Publications (2)

Publication Number Publication Date
JP2009211208A true JP2009211208A (ja) 2009-09-17
JP4519923B2 JP4519923B2 (ja) 2010-08-04

Family

ID=41015849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008051405A Active JP4519923B2 (ja) 2008-02-29 2008-02-29 メモリシステム

Country Status (7)

Country Link
US (1) US8103920B2 (ja)
EP (1) EP2248022B1 (ja)
JP (1) JP4519923B2 (ja)
KR (1) KR101096884B1 (ja)
CN (1) CN101681296B (ja)
TW (1) TWI409640B (ja)
WO (1) WO2009107443A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128924A (ja) * 2010-12-17 2012-07-05 Toshiba Corp 半導体記憶装置

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101893332B1 (ko) * 2009-11-13 2018-08-31 가부시키가이샤 한도오따이 에네루기 켄큐쇼 반도체 장치 및 반도체 장치의 구동 방법
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US8700842B2 (en) * 2010-04-12 2014-04-15 Sandisk Enterprise Ip Llc Minimizing write operations to a flash memory-based object store
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US8954385B2 (en) 2010-06-28 2015-02-10 Sandisk Enterprise Ip Llc Efficient recovery of transactional data stores
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
JP5674634B2 (ja) * 2011-12-28 2015-02-25 株式会社東芝 コントローラ、記憶装置およびプログラム
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
US9471484B2 (en) 2012-09-19 2016-10-18 Novachips Canada Inc. Flash memory controller having dual mode pin-out
TWI461717B (zh) * 2012-11-05 2014-11-21 Realtek Semiconductor Corp 掃描時脈產生器以及掃描時脈產生方法
US20140223213A1 (en) * 2013-02-05 2014-08-07 Kabushiki Kaisha Toshiba Memory system
CN107341071A (zh) * 2013-08-23 2017-11-10 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
KR20150061393A (ko) 2013-11-27 2015-06-04 삼성전자주식회사 메모리 장치로부터 읽은 데이터를 고속으로 전송하는 메모리 컨트롤러 및 그것의 데이터 전송 방법.
US9594910B2 (en) 2014-03-28 2017-03-14 Intel Corporation In-system provisioning of firmware for a hardware platform
CN105608490B (zh) * 2015-07-29 2018-10-26 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中的通信方法
US10719394B2 (en) * 2017-10-25 2020-07-21 Innogrit Technologies Co., Ltd. Systems and methods for fast access of non-volatile storage devices
KR102394727B1 (ko) * 2017-12-12 2022-05-09 에스케이하이닉스 주식회사 반도체시스템
US10747611B2 (en) * 2018-01-15 2020-08-18 Microchip Technology Incorporated Safety enhancement for memory controllers
US10991445B2 (en) * 2018-09-06 2021-04-27 Micron Technology, Inc. Memory sub-system including an in-package sequencer to perform error correction and memory testing operations
US10790039B1 (en) * 2019-09-26 2020-09-29 Micron Technology, Inc. Semiconductor device having a test circuit
US11817168B2 (en) * 2021-11-30 2023-11-14 Micron Technology, Inc. Environmental condition tracking for a memory system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001291388A (ja) * 2000-04-05 2001-10-19 Nec Corp Dll回路、それを使用する半導体装置及びタイミング生成方法
JP2002007202A (ja) * 2000-06-22 2002-01-11 Mitsubishi Electric Corp 半導体記憶装置および調整方法
JP2002318638A (ja) * 2001-04-24 2002-10-31 Hitachi Ltd 情報処理システム及び半導体集積回路装置
JP2004227486A (ja) * 2003-01-27 2004-08-12 Fujitsu Ltd 高速読み出し回路を備えた半導体記憶装置
JP2006155479A (ja) * 2004-12-01 2006-06-15 Toshiba Corp 誤り訂正回路
JP2008010607A (ja) * 2006-06-29 2008-01-17 Nec Computertechno Ltd 半導体集積回路およびクロックスキュー低減方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978284A (en) * 1997-08-22 1999-11-02 Micron Technology, Inc. Synchronous memory with programmable read latency
US6122710A (en) * 1998-02-17 2000-09-19 International Business Machines Corporation Dynamic word line driver for cache
EP1225597A1 (en) * 2001-01-15 2002-07-24 STMicroelectronics S.r.l. Synchronous-reading nonvolatile memory
ITTO20010148A1 (it) * 2001-02-20 2002-08-20 St Microelectronics Srl Dispositivo e metodo di temporizzazione lettura di una memoria non volatile con minimizzazione del rumore di commutazione.
US7082071B2 (en) * 2001-08-23 2006-07-25 Integrated Device Technology, Inc. Integrated DDR/SDR flow control managers that support multiple queues and MUX, DEMUX and broadcast operating modes
TWI254936B (en) * 2003-07-25 2006-05-11 E Ten Information Sys Co Ltd Nonvolatile memory access system and its accessing method
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7694202B2 (en) * 2004-01-28 2010-04-06 Micron Technology, Inc. Providing memory test patterns for DLL calibration
DE102004015868A1 (de) * 2004-03-31 2005-10-27 Micron Technology, Inc. Rekonstruktion der Signalzeitgebung in integrierten Schaltungen
US7319612B2 (en) * 2005-05-18 2008-01-15 Intel Corporation Performing multiple read operations via a single read command
KR100801032B1 (ko) * 2006-11-15 2008-02-04 삼성전자주식회사 비휘발성 반도체 메모리 장치의 입력회로 및 비휘발성반도체 메모리 장치의 데이터 입력방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001291388A (ja) * 2000-04-05 2001-10-19 Nec Corp Dll回路、それを使用する半導体装置及びタイミング生成方法
JP2002007202A (ja) * 2000-06-22 2002-01-11 Mitsubishi Electric Corp 半導体記憶装置および調整方法
JP2002318638A (ja) * 2001-04-24 2002-10-31 Hitachi Ltd 情報処理システム及び半導体集積回路装置
JP2004227486A (ja) * 2003-01-27 2004-08-12 Fujitsu Ltd 高速読み出し回路を備えた半導体記憶装置
JP2006155479A (ja) * 2004-12-01 2006-06-15 Toshiba Corp 誤り訂正回路
JP2008010607A (ja) * 2006-06-29 2008-01-17 Nec Computertechno Ltd 半導体集積回路およびクロックスキュー低減方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128924A (ja) * 2010-12-17 2012-07-05 Toshiba Corp 半導体記憶装置

Also Published As

Publication number Publication date
WO2009107443A1 (en) 2009-09-03
US8103920B2 (en) 2012-01-24
CN101681296A (zh) 2010-03-24
TWI409640B (zh) 2013-09-21
EP2248022B1 (en) 2016-04-20
TW200937202A (en) 2009-09-01
CN101681296B (zh) 2012-05-30
EP2248022A4 (en) 2012-08-08
EP2248022A1 (en) 2010-11-10
KR20090117748A (ko) 2009-11-12
US20100325498A1 (en) 2010-12-23
KR101096884B1 (ko) 2011-12-22
JP4519923B2 (ja) 2010-08-04

Similar Documents

Publication Publication Date Title
JP4519923B2 (ja) メモリシステム
US10956039B2 (en) Memory system with selective access to first and second memories
US9627079B1 (en) Storage device, memory system having the same, and operating method thereof
US10706940B2 (en) Memory system
JP6164712B1 (ja) フラッシュメモリ
JP2012203957A (ja) メモリシステム
US9030873B2 (en) Semiconductor device and method of operating the same
US20190086995A1 (en) Memory system, method of controlling memory system, and controller circuit
US8558602B2 (en) Semiconductor integrated circuit
JP2012119034A (ja) メモリシステム
US11868648B2 (en) Memory system
JP2013030251A (ja) メモリシステム
JP5017443B2 (ja) メモリシステム
US20170323671A1 (en) Control circuit and memory device having the same
JP2012168719A (ja) メモリシステム
JP2012119033A (ja) メモリシステム
JP2012212233A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100222

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4519923

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140528

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350