JP2020154477A - 半導体記憶装置の模擬方法および模擬装置 - Google Patents

半導体記憶装置の模擬方法および模擬装置 Download PDF

Info

Publication number
JP2020154477A
JP2020154477A JP2019050498A JP2019050498A JP2020154477A JP 2020154477 A JP2020154477 A JP 2020154477A JP 2019050498 A JP2019050498 A JP 2019050498A JP 2019050498 A JP2019050498 A JP 2019050498A JP 2020154477 A JP2020154477 A JP 2020154477A
Authority
JP
Japan
Prior art keywords
controller
data
information
storage device
simulation
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.)
Pending
Application number
JP2019050498A
Other languages
English (en)
Inventor
酒井 敦
Atsushi Sakai
敦 酒井
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.)
Kioxia Corp
Original Assignee
Kioxia 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 Kioxia Corp filed Critical Kioxia Corp
Priority to JP2019050498A priority Critical patent/JP2020154477A/ja
Priority to US16/565,597 priority patent/US20200302027A1/en
Publication of JP2020154477A publication Critical patent/JP2020154477A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】半導体記憶装置の模擬方法および模擬装置を提供する。【解決手段】コントローラ220aに通信路240aを介して接続された半導体記憶装置230aを模擬する模擬装置100による模擬方法である。模擬装置は、コントローラから半導体記憶装置に転送され、コントローラによって書き込みが命令された第1データと、半導体記憶装置に記憶され、半導体記憶装置からコントローラに転送され、コントローラから読み出しが命令されたデータである第2データを第1通信路に設けられた分岐部250から取得し、第1データと第2データとの比較に基づいて得られる半導体記憶装置の特性に基づいて、半導体記憶装置の応答を模擬する。【選択図】図1

Description

本実施形態は、半導体記憶装置の模擬方法および模擬装置に関する。
従来、半導体記憶装置を制御するコントローラの設計または製造の段階においては、コントローラに対し、実際の使用条件で仕様通りに動作するか否かを評価する試験が実施される。そのような試験においてコントローラに不具合が発生した場合、コントローラが改良され、その後、不具合の解消の確認などが実施される。不具合の解消の確認の際には、その不具合が生じたときの挙動を半導体記憶装置に再現させることが求められる。
特開2004−151901号公報 特開2009−252315号公報 特開2006−146485号公報
一つの実施形態は、半導体記憶装置の挙動を模擬する模擬方法および模擬装置を提供することを目的とする。
一つの実施形態によれば、模擬方法は、第1コントローラに第1通信路を介して接続された半導体記憶装置を模擬する模擬装置による模擬方法である。模擬方法は、第1データを前記第1通信路に設けられた分岐部から取得することと、第2データを分岐部から取得することと、第1情報に基づいて半導体記憶装置の応答を模擬することと、を備える。第1データは、第1コントローラから半導体記憶装置に転送され、第1コントローラによって書き込みが命令されたデータである。第2データは、半導体記憶装置に記憶され、半導体記憶装置から第1コントローラに転送され、第1コントローラから読み出しが命令されたデータである。第1情報は、第1データと第2データとの比較に基づいて得られる半導体記憶装置の特性を示す。
図1は、第1の実施形態の模擬装置が学習モードで使用される場合の一例を説明するための図である。 図2は、第1の実施形態のメモリチップの構成の一例を示す図である。 図3は、第1の実施形態のメモリセルアレイに含まれる1個のブロックの構成例を示す回路図である。 図4は、第1の実施形態の模擬装置が模擬モードで使用される場合の一例を説明するための図である。 図5は、第1の実施形態の模擬装置の具体的な構成を示す例示的かつ模式的な図である。 図6は、第1の実施形態の記憶装置に格納される情報の一例を説明するための例示的かつ模式的な図である。 図7は、学習モードの模擬装置を用いた第1の実施形態の試験方法の一例を説明するフローチャートである。 図8は、模擬モードの模擬装置を用いた第1の実施形態の試験方法の一例を説明するフローチャートである。 図9は、第2の実施形態の模擬装置が学習モードで使用される場合の一例を説明するための図である。 図10は、第2の実施形態の模擬装置が備える記憶装置に格納される情報の例示的かつ模式的な図である。 図11は、第2の実施形態の模擬装置が模擬モードで使用される場合の一例を説明するための図である。 図12は、第2の実施形態の模擬装置の具体的な構成を示す例示的かつ模式的な図である。 図13は、学習モードの模擬装置を用いた第2の実施形態の試験方法の一例を説明するフローチャートである。 図14は、模擬モードの模擬装置を用いた第2の実施形態の試験方法の一例を説明するフローチャートである。
以下に添付図面を参照して、実施形態にかかる半導体記憶装置の模擬方法および模擬装置を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
(第1の実施形態)
第1の実施形態の模擬装置は、半導体記憶装置の特性を学習する学習モードと、学習した特性に基づいて半導体記憶装置の挙動を模擬する模擬モードと、の2つのモードで動作することができる。
図1は、第1の実施形態の模擬装置が学習モードで使用される場合の一例を説明するための図である。本図に示されるように、ホスト210a、コントローラ220a、およびメモリチップ230aは、コントローラ220aが実際の使用条件でも仕様通りに動作するか否かを評価するための試験装置200aを構成している。
メモリチップ230aは、ここでは一例として、NAND型フラッシュメモリのメモリチップであることとする。なお、メモリチップ230aは、半導体記憶装置の一例である。
コントローラ220aとメモリチップ230aとは、通信路240aによって接続されている。通信路240aは、第1通信路の一例である。
通信路240aは、例えば、IO信号線および制御信号線を含む、配線群によって構成される。IO信号線は、データ、アドレス、およびコマンドを送受信するための信号線である。制御信号線は、例えば、CE(チップイネーブル)信号、WE(ライトイネーブル)信号、RE(リードイネーブル)信号、CLE(コマンドラッチイネーブル)信号、ALE(アドレスラッチイネーブル)信号、WP(ライトプロテクト)信号、DQS(データストローブ)信号、Ry/By(レディ/ビジー)信号等を送受信するための信号線である。
コントローラ220aは、メモリチップ230aとともにメモリシステムを構成し得る電子部品である。コントローラ220aは、ハードウェア回路によって構成されてもよいし、ファームウェアなどのプログラムを実行するプロセッサを備えていてもよい。また、コントローラ220aは、レジスタ、フリップフロップ、またはメモリなど、の記憶装置を備えていてもよい。コントローラ220aは、メモリシステムにおいて、メモリシステムの外部の装置からの要求に基づいてメモリチップ230aに対するアクセスを実行することができる。外部の装置は、例えば、サーバコンピュータ、パーソナルコンピュータ、CPU(Central Processing Unit)、携帯用情報端末、などである。要求は、例えば、データを格納する要求、データを読み出す要求、データを消去する要求、を含む。なお、コントローラ220aは、第1コントローラの一例である。
ホスト210aは、外部の装置としての動作を行う。つまり、ホスト210aは、コントローラ220aに対し、各種の要求を送信することができる。ホスト210aは、ここでは、コントローラ220aの動作を試験するための予め作成された手順に従って、コントローラ220aに対して要求を逐次送信する。手順は、例えばプログラムに記述されている。ホスト210aは、例えばプロセッサであり、プログラムに記述された手順にしたがって、コントローラ220aに対して要求を送信する。なお、ホスト210aは、プログラムを要さないハードウェア回路によって構成されてもよい。
コントローラ220aは、ホスト210aからの要求などに基づいて、メモリチップ230aに対するアクセスを実行する。アクセスは、具体的には、コントローラ220aが、メモリチップ230aに対してデータを書き込むためのライトコマンドをデータとともに送信したり、メモリチップ230aからデータを読み出すためのリードコマンドを送信したり、メモリチップ230aからリードコマンドに応じて出力されたデータを受信したりすることを含む。ライトコマンドおよびリードコマンドは、アクセス先を示すアドレス(物理アドレス)を伴う。
以降、コントローラ220aからメモリチップ230aに転送されたデータを、ライトデータと表記することがある。また、メモリチップ230aからコントローラ220aに転送されたデータを、リードデータと表記することがある。
図2は、第1の実施形態のメモリチップ230aの構成の一例を示す図である。メモリチップ230aは、制御回路231と、メモリセルアレイ232と、を備える。制御回路231は、コントローラ220aからのコマンドに基づいてメモリセルアレイ232に対するアクセスを実行する。メモリセルアレイ232に対するアクセスは、データをメモリセルMTにプログラムするプログラム処理、メモリセルMTにプログラムされたデータをリードするリード処理、およびメモリセルMTにプログラムされたデータをイレースするイレース処理を含む。
メモリセルアレイ232は、複数のブロックを備える。各ブロックに格納されたデータは、一括してイレースされる。各ブロックは、複数のページを備える。各ページは、プログラム処理またはリード処理が実行される最小の単位である。
図3は、第1の実施形態のメモリセルアレイ232に含まれる1個のブロックの構成例を示す回路図である。本図に示されるように、各ブロックは、X方向に沿って順に配列された(p+1)個のNANDストリングを備えている(p≧0)。(p+1)個のNANDストリングにそれぞれ含まれる選択トランジスタST1は、ドレインがビット線BL0〜BLpに接続され、ゲートが選択ゲート線SGDに共通接続されている。また、選択トランジスタST2は、ソースがソース線SLに共通接続され、ゲートが選択ゲート線SGSに共通接続されている。
各メモリセルMTは、半導体基板上に形成された積層ゲート構造を備えたMOSFET(Metal Oxide Semiconductor Field Effect Transistor)から構成される。積層ゲート構造は、半導体基板上にトンネル酸化膜を介在して形成されたフローティングゲート、及びフローティングゲートの上方にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。フローティングゲートに蓄えられる電子の数に応じてしきい値電圧が変化する。メモリセルMTは、しきい値電圧の違いに応じてデータを記憶する。即ち、メモリセルMTは、フローティングゲートに、データに応じた量の電荷を保持する。
各NANDストリングにおいて、(q+1)個のメモリセルMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。そして、最もドレイン側に位置するメモリセルMTから順に、制御ゲート電極がワード線WL0〜WLqにそれぞれ接続されている。従って、ワード線WL0に接続されたメモリセルMTのドレインは選択トランジスタST1のソースに接続され、ワード線WLqに接続されたメモリセルMTのソースは選択トランジスタST2のドレインに接続されている。
ワード線WL0〜WLqは、ブロック内のNANDストリング間で、メモリセルMTの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルMTの制御ゲート電極は、同一のワード線WLに接続される。各メモリセルMTに1ビットの値を保持可能に構成される場合には、同一のワード線WLに接続される(p+1)個のメモリセルMTは1ページとして取り扱われ、このページごとにプログラム処理及びリード処理が行われる。
なお、各メモリセルMTには、複数ビットのデータが格納され得る。例えば、各メモリセルMTがn(n≧2)ビットのデータを格納可能な場合、ワード線当たりの記憶容量はnページ分のサイズに等しくなる。
制御回路231は、プログラム処理において、プログラム対象のページのメモリセルMTのしきい値電圧を、データに対応したレベルに設定する。また、制御回路231は、リード処理において、リード対象のページのメモリセルMTのしきい値電圧を所定の判定電圧と比較することによって、当該しきい値電圧のレベルをデータにデコードする。また、制御回路231は、イレース処理において、イレース対象のブロックに含まれる全てのメモリセルMTのしきい値電圧を、イレースされた状態に対応した所定のレベルに設定する。
図1に説明を戻す。
各メモリセルMTのしきい値電圧は、種々の要因で変動し得る。従って、メモリセルMTにプログラムされたデータ値と異なるデータ値がそのメモリセルMTから読み出される、誤りが発生し得る。誤りによって化けたデータ値は、コントローラ220aにおいて検出され、正しいデータ値に訂正される。
つまり、コントローラ220aは、リードデータに含まれる誤りを検出して訂正する、誤り検出・訂正機能を有している。コントローラ220aは、データに対し、誤り訂正のための符号化を施して、符号化されたデータをライトデータとしてメモリチップ230aに送信する。また、コントローラ220aは、リードデータを受信した際に、リードデータを復号化することによって、リードデータに含まれる誤りの検出と訂正とを実行する。誤りの訂正が成功した場合、コントローラ220aは、符号化前のデータと同じ状態のデータを取得することができる。
なお、コントローラ220aは、ここでは詳細な説明は省略するが、ホスト210aからの要求に応じた動作の他に、リフレッシュ処理、ウェアレベリング処理、またはガベージコレクション処理などを実行することができる。コントローラ220aは、これらの処理を、ホスト210aからの要求に基づかないで、自律的に実行する。これらの処理の際にも、コントローラ220aは、メモリチップ230aに対してアクセスを実行することができる。
第1の実施形態では、通信路240aには、通信路240aを分岐させる分岐部250が設けられている。分岐部250によって生成された分岐先は、模擬装置100に接続されている。これによって、模擬装置100は、コントローラ220aとメモリチップ230aとの間を転送される各種の信号を、分岐部250を介して受信することができる。模擬装置100は、学習モードにおいては、コントローラ220aとメモリチップ230aとの間を転送される各種の信号に基づいて、メモリチップ230aの特性を学習することができる。
特性は、誤りに関する特性を含む。第1の実施形態では、一例として、誤り率および誤りパターンを特性として見なす。
誤り率は、正常なビットデータの数または単位データを構成するビットデータの数と、誤りによって化けたビットデータの数と、の比である。単位データは、例えばページサイズのデータである。なお、誤り率の定義はこれに限定されない。所定サイズのデータに含まれる誤りによって化けたビットデータの比または量に対応する限り、任意の数量が誤り率として定義され得る。
誤りパターンは、誤りが出現する傾向を示した情報である。一例では、誤りパターンは、ワード線における誤りが出現しやすい部位を示す。
学習された特性は、特性情報(図6参照)として記録される。特性情報が得られた後、模擬装置100は、模擬モードで使用され得る。
図4は、第1の実施形態の模擬装置100が模擬モードで使用される場合の一例を説明するための図である。本図に示されるように、ホスト210b、コントローラ220b、模擬装置100は、コントローラ220bが実際の使用条件でも仕様通りに動作するか否かを評価するための試験装置200bを構成している。
ホスト210bは、ホスト210aと同一の動作を実行する。コントローラ220bは、コントローラ220aと同じであってもよいし、コントローラ220aと異なるコントローラであってもよい。コントローラ220bは、発生した不具合に対応して改良されたコントローラであってもよい。コントローラ220bは、第2コントローラの一例である。
コントローラ220bと模擬装置100とは、通信路240bによって接続されている。通信路240bは、第2通信路の一例である。
通信路240bは、通信路240aと同じ配線群によって構成される。つまり、例えば、通信路240bは、IO信号線および制御信号線を含む。制御信号線は、例えば、CE信号、WE信号、RE信号、CLE信号、ALE信号、WP信号、DQS信号、Ry/By信号等を送受信するための信号線である。
模擬装置100は、模擬モードにおいては、特性情報に従って、メモリチップ230aの挙動を模擬した動作を行う。例えば、模擬装置100は、コントローラ220bからライトコマンドを受信すると、ライトコマンドとともに送られてきたライトデータを、内部に備える記憶装置106に格納する。その後、模擬装置100は、すでに記憶装置106に格納されたライトデータの読み出しを命令するリードコマンドをコントローラ220bから受信すると、記憶装置106からライトデータを読み出して、読み出されたライトデータを特性情報に基づいて加工して、加工されたライトデータをリードデータとしてコントローラ220bに送信する。
ここで、加工とは、一例では、データ内に誤りを生成することである。つまり、模擬装置100は、コントローラ220bからライトデータとして受信したデータに誤りを生成し、誤りを含んだデータをリードデータとして出力する。誤りは、学習したメモリチップ230aの特性に従って生成される。これによって、模擬装置100は、メモリチップ230aと同じ特性を有する擬似的なメモリチップとして動作することが可能である。
なお、加工の方法は上記の方法に限定されない。模擬装置100は、ライトデータに対して種々の加工を施して、加工後のライトデータをリードデータとして送信することができる。
実施形態と比較される技術によれば、試験においてコントローラに不具合が発生した場合、不具合を解明したり、改良後のコントローラが不具合を解消していることを確認したりするために、再試験が実行される。ここで、複数のメモリチップが同じ製造工程で製造された場合であっても、製造ばらつきなどに起因して、これらの複数のメモリチップ間で特性がばらつく。メモリチップの特性に関する条件を、不具合が発生した試験時と再試験時とで等しくするため、再試験では、不具合が発生した試験において用いられたメモリチップが用いられる。したがって、再試験を複数回実行したい場合には、再試験に要する合計の時間が、再試験の実行回数に応じて長くなる。以降では、実施形態と比較される技術を、比較例にかかる技術と表記する。
第1の実施形態では、模擬装置100は、学習モードにおいて、メモリチップ230aの特性を学習し、模擬モードにおいて、メモリチップ230aと同じ特性を有する擬似的なメモリチップとして動作する。よって、初回の試験において、模擬装置100を学習モードで使用し、コントローラ220aに不具合が発生した場合、模擬装置100を模擬モードで使用すれば、再試験においてメモリチップ230aを不要とすることが可能となる。
また、例えば、複数台の模擬装置100を用意して、複数台の模擬装置100のそれぞれに同一の特性情報を設定すれば、当該複数台の模擬装置100の全ては、メモリチップ230aと同じ特性を有する擬似的なメモリチップとして動作する。つまり、当該複数台の模擬装置100のそれぞれを、複数台の試験装置100bのそれぞれに接続して使用すれば、複数回分の再試験を並列に実行することが可能となる。その結果、比較例にかかる技術に比べて、再試験に要する合計の時間を大幅に短縮することが可能となる。
続いて、第1の実施形態の模擬装置100の具体的な構成について説明する。図5は、第1の実施形態の模擬装置100の具体的な構成を示す例示的かつ模式的な図である。
模擬装置100は、インタフェース101、コマンド解析装置102、応答解析装置103、応答装置104、誤り解析装置105、および記憶装置106を備える。応答装置104は、誤り生成装置107を備える。インタフェース101、コマンド解析装置102、応答解析装置103、応答装置104、および誤り解析装置105は、処理装置の一例である。
コマンド解析装置102、応答解析装置103、応答装置104、および誤り解析装置105のうちの一部または全部は、プログラムを要しないハードウェア回路によって構成されてもよいし、プログラムに基づいて動作するプロセッサによって構成されてもよい。また、模擬装置100が備える各装置(インタフェース101、コマンド解析装置102、応答解析装置103、応答装置104、誤り解析装置105、および記憶装置106)のうちの一部または全部は、FPGA(field-programmable gate array)またはASIC(application specific integrated circuit)によって構成されてもよい。
インタフェース101は、通信路240aおよび通信路240bに接続するためのハードウェアである。インタフェース101は、物理的な端子および信号を受けるバッファを含み得る。
コマンド解析装置102は、コントローラ220aおよびコントローラ220bが出力する信号を解析する装置である。コマンド解析装置102は、コントローラ220aおよびコントローラ220bが出力する信号から、少なくとも、ライトコマンド、リードコマンド、物理アドレス、およびライトデータ、を取り出すことができる。
応答解析装置103は、学習モードにおいて、メモリチップ230aから出力された信号を解析する装置である。応答解析装置103は、メモリチップ230aから出力された信号から、少なくとも、リードデータを取り出すことができる。
応答装置104は、模擬モードにおいて、コントローラ220bからのコマンドに対する応答を生成して、生成した応答をコントローラ220bに送信することができる。
誤り生成装置107は、応答装置104がリードデータに相当するデータをコントローラ220bに送信する際に、当該データに誤りを生成する。これによって、応答装置104は、生成された誤りを含むデータを、リードデータとしてコントローラ220bに送信することができる。
誤り解析装置105は、学習モードにおいて、ライトデータとリードデータとの比較に基づいて、特性情報を取得する。つまり、誤り解析装置105は、ライトデータとリードデータとで異なっているデータビットを誤りとして特定し、特定された誤りの数および位置に基づいて、誤り率および誤りパターンを算出する。そして、誤り解析装置105は、算出した誤り率および誤りパターンを、特性情報として記録する。
記憶装置106は、レジスタ、SRAM(Static Random Access Memory)、DRAM(Dynamic Access Memory)、フラッシュメモリ、ハードディスクドライブ、またはこれらの組み合わせによって構成される。記憶装置106には、ライトデータや特性情報などが格納される。
図6は、第1の実施形態の記憶装置106に格納される情報の一例を説明するための例示的かつ模式的な図である。記憶装置106には、メモリセルアレイ232が備える全てのページのそれぞれに対応したページ情報10が格納される。
1つのページ情報10は、対応するページに書き込まれたライトデータと、対応するページにかかる特性情報とを含む。つまり、この例によれば、特性情報はページ毎に算出されて記録される。特性情報は、前述したように、誤り率および誤りパターンを含む。
なお、特性情報は、誤り率および誤りパターンの他に、任意の情報を含み得る。例えば、特性情報は、電圧情報、温度情報、記憶モード、時刻情報、などを含んでいてもよい。電圧情報は、例えば、メモリセルMTのしきい値電圧を判定するための判定電圧など、対応するページに対するアクセス(プログラム処理またはリード処理)において制御回路231が使用した電圧値である。また、温度情報は、対応するページに対するアクセス(プログラム処理またはリード処理)におけるメモリチップ230aまたはメモリチップ230aの周辺環境の温度である。記憶モードは、1つのメモリセルMTに格納されるデータの量を示す情報である。時刻情報は、対応するページに対するアクセス(プログラム処理またはリード処理)が実行された時刻を示す情報である。
また、ページ情報10の群のデータ構成は、特定の構成に限定されない。例えば、ページ情報10の群は、1つのテーブルを構成してもよいし、1つのリストを構成していてもよい。また、必ずしも全てのページにかかるページ情報10が記憶装置106に格納されていなくてもよい。例えば、学習モードにおいては、ライトデータが書き込まれていないページにかかるページ情報10は、記憶装置106に格納されていなくてもよい。また、学習モードにおいては、リードが行われなかったことで特性情報が取得出来なかったページにかかるページ情報10は、記憶装置106に格納されていなくてもよい。
また、各ページ情報10には、対応するページに対してプログラム処理が実行される毎にライトデータが上書き形式で記録されてもよいし、ライトデータがログ形式で書き加えられてもよい。同様に、特性情報は、対応するページに対してアクセスが実行される毎に上書き形式で記録されてもよいし、ログ形式で書き加えられてもよい。
続いて、第1の実施形態の模擬装置100を用いた一連の動作について説明する。
図7は、学習モードの模擬装置100を用いた第1の実施形態の試験方法の一例を説明するフローチャートである。
模擬装置100が学習モードで使用される場合には、図1に示されるように、模擬装置100はコントローラ220aとメモリチップ230aとを接続する通信路240aに設けられた分岐部250に接続される。
そして、試験が開始されると(S101)、ホスト210aは、所定の手順でコントローラ220aに各種の要求を送り、コントローラ220aは、要求に基づいてメモリチップ230aに対するアクセスを行う。また、コントローラ220aは、リフレッシュ処理、ウェアレベリング処理、ガベージコレクション処理などを実行し、これらの処理の際に自律的にメモリチップ230aに対するアクセスを実行する。
模擬装置100では、インタフェース101は、コントローラ220aとメモリチップ230aとの間で転送される信号を、分岐部250を介して取得する。そして、コマンド解析装置102および応答解析装置103は、インタフェース101が取得した信号を解析する。
例えば、ライトコマンドが転送された場合(S102:Yes)、コマンド解析装置102は、当該ライトコマンドを検知して、ライトコマンドとともに通信路240aを転送される物理アドレスおよびライトデータを取得する(S103)。そして、コマンド解析装置102は、取得したライトデータを、取得したアドレスが示すページに対応するページ情報10に記録する(S104)。
なお、コマンド解析装置102は、ライトデータを記録する際に任意の情報を記録してもよい。例えば、コマンド解析装置102は、不図示の温度センサを用いて温度情報を取得して、取得した温度情報を特性情報のうちの一部として記録してもよい。また、コマンド解析装置102は、ライトデータを記録する際に、不図示のタイマから時刻情報を取得して、取得した時刻情報を特性情報のうちの一部として記録してもよい。
また、ライトコマンドではなくリードコマンドが転送された場合(S102:No、S105:Yes)、コマンド解析装置102は、当該リードコマンドを検知して、リードコマンドとともに転送される物理アドレスを取得する(S106)。また、応答解析装置103は、転送されたリードコマンドに応じてメモリチップ230aからコントローラ220aに転送されるリードデータを取得する(S107)。
続いて、誤り解析装置105は、S106の処理によって取得されたアドレスが示すページにかかるページ情報10から、ライトデータを取得する(S108)。そして、誤り解析装置105は、S107の処理によって取得されたリードデータと、S108の処理によって取得されたライトデータと、の比較に基づいて特性情報を取得する(S109)。つまり、誤り解析装置105は、S109において、誤り率と誤りパターンとを計算する。誤り解析装置105は、計算によって取得した特性情報を、S106の処理によって取得されたアドレスが示すページにかかるページ情報10に記録する(S110)。
なお、誤り解析装置105は、リードデータが取得された際の任意の情報を記録してもよい。例えば、誤り解析装置105は、不図示の温度センサを用いて温度情報を取得して、取得した温度情報を特性情報のうちの一部として記録してもよい。また、誤り解析装置105は、リードデータが取得された際に、不図示のタイマから時刻情報を取得して、取得した時刻情報を特性情報のうちの一部として記録してもよい。
このように、試験中においては、学習モードで動作している模擬装置100は、ライトコマンドが転送された場合には、ライトデータを取得して記憶装置106に格納する。そして、模擬装置100は、リードコマンドが転送された場合には、リードデータを取得して、記憶装置106に格納されているライトデータとリードデータとの比較に基づいて特性情報を取得し、取得した特性情報を記録する。これらの動作が繰り返し実行されることによって、ライトデータが書き込まれ、その後そのデータが読み出された全てのページにかかる特性情報が、記憶装置106に蓄積される。つまり、メモリチップ230aの特性が学習される。
ライトコマンドでもリードコマンドでもなく特性設定(set feature)コマンドが転送された場合(S102:No、S105:No、S111:Yes)、コマンド解析装置102は、当該特性設定コマンドを検知して、当該特性設定コマンドによって設定された特性を取得する(S112)。そして、コマンド解析装置102は、取得した特性を記憶装置106に記録する(S113)。
特性設定コマンドは、メモリチップに対して種々の特性を設定するためのコマンドである。特性設定コマンドによって、例えば、判定電圧を設定することができる。
リードコマンドは、標準の判定電圧を使うリードを行うためのリードコマンドと、特性設定コマンドによって設定された判定電圧を使うリードを行うためのリードコマンドと、を含む。通常は、標準の判定電圧を使うリードが実行されるが、ブロックBLK内のデータのエラーレートが低くなってくると、当該データを正しくリードするための判定電圧の探索が実行される。探索によって得られた判定電圧の電圧値は、特性設定コマンドによって設定され、該当のブロック内のデータのリードは、特性設定コマンドによって設定され判定電圧を用いて実行されるようになる。
判定電圧の設定値が特性設定コマンドによって転送されてきた場合には、コマンド解析装置102は、当該設定値を記憶装置106に記録する。判定電圧の設定値は、例えばブロックBLKと対応付けて記録される。
試験中において、コントローラ220aに不具合が発生する場合がある。例えば、S113の後やS111の判定処理においてNoと判定された後などにおいて、コントローラ220aに不具合が発生しているか否かが判定される(S114)。コントローラ220aに不具合が発生した場合(S114:Yes)、試験が停止される(S115)。そして、学習モードの模擬装置100を用いた試験が終了する。例えばホスト210aは、コントローラ220aが意図した動作を実行しないことなどを検出した場合には、不具合が発生したと判定し、試験を停止することができる。なお、不具合の発生の検出方法および試験の停止方法はこれに限定されない。任意の装置が任意の方法で不具合の発生を検出し、試験を停止することができる。
また、コントローラ220aに不具合が発生することなくホスト210aが試験のための一連の手順を終えると(S114:No、S116:Yes)、学習モードの模擬装置100を用いた試験が終了する。まだ手順が残っている場合には(S116:No)、S102に制御が移行する。
図8は、模擬モードの模擬装置100を用いた第1の実施形態の試験方法の一例を説明するフローチャートである。
模擬装置100が模擬モードで使用される場合には、図4に示されるように、模擬装置100はコントローラ220bと通信路240bを介して接続される。試験が開始されると(S201)、ホスト210bは、学習モードにおけるホスト210aと同様に、所定の手順でコントローラ220bに各種の要求を送る。コントローラ220bは、模擬装置100をメモリチップとして見なして、模擬装置100に対するアクセスを実行する。つまり、コントローラ220bは、模擬装置100に対して各種コマンドを送信したり、模擬装置100から各種応答を受信したりする。また、コントローラ220bは、リフレッシュ処理、ウェアレベリング処理、ガベージコレクション処理などを実行し、これらの処理の際においても自律的に模擬装置100に対するアクセスを行う。
模擬装置100では、インタフェース101は、コントローラ220bから送信された信号を受信する。そして、コマンド解析装置102および応答解析装置103は、インタフェース101が受信した信号を解析する。
例えば、ライトコマンドが受信された場合(S202:Yes)、コマンド解析装置102は、当該ライトコマンドを検知して、ライトコマンドとともに通信路240bを転送される物理アドレスおよびライトデータを取得する(S203)。そして、コマンド解析装置102は、取得したライトデータを、取得したアドレスが示すページに対応するページ情報10に記録する(S204)。
また、ライトコマンドではなくリードコマンドが受信された場合(S202:No、S205:Yes)、コマンド解析装置102は、当該リードコマンドを検知して、リードコマンドとともに転送される物理アドレスを取得する(S206)。そして、応答装置104は、S206の処理によって取得されたアドレスが示すページにかかるページ情報10から、ライトデータと特性情報とを取得する(S207)。
誤り生成装置107は、特性情報に基づいて、ライトデータに誤りを生成する(S208)。例えば誤り生成装置107は、ライトデータのビットデータの列のうちの誤り率に対応した数のビットデータを、ビット反転させる。ビット反転させるビットデータの位置は、誤りパターンに基づく位置とする。これによって、学習モードにおいてメモリチップ230aが出力したリードデータと誤りに関する特性が類似したデータが生成される。
応答装置104は、誤りを含むライトデータを、リードデータとしてコントローラ220bに送信する(S209)。これによって、メモリチップ230aの挙動を模擬した応答が実行される。なお、リードデータの送信は、インタフェース101を介して実行される。
また、ライトコマンドでもリードコマンドでもなく特性設定コマンドが受信された場合(S202:No、S205:No、S210:Yes)、コマンド解析装置102は、当該特性設定コマンドを検知して、当該特性設定コマンドによって設定された特性、即ち判定電圧の設定値を取得する(S211)。そして、コマンド解析装置102は、取得した特性、即ち判定電圧の設定値を記憶装置106に記録する(S212)。以降に受信するリードコマンドに対する応答時には、特性設定コマンドによって設定された判定電圧に対応したリードデータが出力される。
例えば、S212の後やS210の判定処理においてNoと判定された後などにおいて、コントローラ220bに不具合が発生しているか否かが判定される(S213)。コントローラ220bに不具合が発生した場合(S213:Yes)、試験が停止される(S214)。そして、模擬モードの模擬装置100を用いた試験が終了する。例えばホスト210bは、コントローラ220bが意図した動作を実行しないことなどを検出した場合には、不具合が発生したと判定し、試験を停止することができる。なお、不具合の発生の検出方法および試験の停止方法はこれに限定されない。任意の装置が任意の方法で不具合の発生を検出し、試験を停止することができる。
また、コントローラ220bに不具合が発生することなくホスト210bが試験のための一連の手順を終えると(S213:No、S215:Yes)、模擬モードの模擬装置100を用いた試験が終了する。まだ手順が残っている場合には(S215:No)、例えばS202に制御が移行する。
なお、図7および図8の説明においては、模擬装置100は、学習モードで動作することによって、特性情報を取得して記憶装置106に格納し、その後、模擬モードで動作する際には、記憶装置106に格納された特性情報を利用してメモリチップ230aの挙動を模擬する例について説明した。模擬モードで動作する模擬装置100は、学習モードで動作する模擬装置100とは異なる装置であってもよい。例えば、模擬モードで動作する模擬装置100の記憶装置106に、学習モードで動作する模擬装置100が取得した特性情報の複製を格納することによって、模擬モードで動作する模擬装置100は、メモリチップ230aの挙動を模擬することが可能となる。
また、模擬モードで動作する模擬装置100は、複数設けられ得る。模擬モードで動作する複数の模擬装置100は、それぞれ、メモリチップ230aの挙動を模擬することができるので、複数の試験を並列に実行することが可能となる。
また、第1の実施形態の模擬装置100は、学習モードでのみ動作する第1装置と、模擬モードでのみ動作する第2装置と、によって構成されてもよい。その場合、第1装置は、図5に示した模擬装置100の構成から応答装置104を廃した構成とすることが可能である。また、第2装置は、図5に示した模擬装置100の構成から応答解析装置103を廃した構成とすることが可能である。
また、以上の説明においては、特性情報は、ページ毎に記録されるとして説明した。特性情報は、ページと異なる単位毎に記録されてもよい。例えば、特性情報は、ブロック毎に記録されてもよい。
なお、例えばブロック毎に特性情報が記録される場合、特性情報は、任意の方法で取得され得る。一例では、ブロック毎に代表ページが予め設定されており、代表ページにかかる特性情報がその代表ページを含むブロックの特性情報として見なされる。別の例では、各ブロックに対し、最後にリードが実行されたページの特性情報が、そのページを含むブロックの特性情報として見なされる。
このように、第1の実施形態によれば、コントローラ220aからメモリチップ230aに転送される、コントローラ220aによって書き込みが命令されたライトデータを、模擬装置100が、コントローラ220aとメモリチップ230aとを接続する通信路240aに設けられた分岐部250から取得する。その後、メモリチップ230aからコントローラ220aに転送される、コントローラ220aから読み出しが命令されたライトデータであるリードデータを、模擬装置100が、分岐部250から取得する。そして、模擬装置100は、ライトデータとリードデータとの比較に基づいて、メモリチップ230aの特性を示す特性情報を取得する。模擬装置100は、メモリチップ230aの応答を、特性情報に基づいて模擬する。この構成により、メモリチップ230aの挙動を模擬することが可能となる。
また、第1の実施形態によれば、特性情報は、誤りに関する情報を含む。この構成により、模擬装置100は、誤りの点でメモリチップ230aが出力するリードデータと同様の特性を有するリードデータを応答することが可能となる。
また、第1の実施形態によれば、模擬装置100は、コントローラ220bによって書き込みが命令されたライトデータを、コントローラ220bと模擬装置100と接続する通信路240bを介して受信する。模擬装置100は、受信したライトデータを記憶装置106に格納する。そして、模擬装置100は、当該ライトデータを読み出す命令、つまりリードコマンドに応じて、当該ライトデータを記憶装置106から読み出して特性情報に基づいて加工する。そして、模擬装置100は、加工されたライトデータをリードデータとしてコントローラ220bに通信路240bを介して送信する。この構成により、メモリチップ230aの挙動を模擬することが可能となる。
また、第1の実施形態によれば、特性情報は誤りに関する情報を含む。模擬装置100は、特性情報として記録された誤りに関する情報に基づいてライトデータに誤りを発生させる。この構成により、模擬装置100は、メモリチップ230aが出力するリードデータと誤りの点で特性が同じデータを、リードコマンドに応じて出力することが可能となる。
また、第1の実施形態によれば、メモリチップ230aは、複数のページを備え、模擬装置100は、特性情報をページ毎に取得する。
なお、模擬装置100は、ページと異なる単位毎に特性情報を取得するように構成されてもよい。例えば、模擬装置100は、ブロック毎に特性情報を取得してもよい。
(第2の実施形態)
ホストが実行する試験の手順が複数のプロセスを含む場合、オペレータは、複数のプロセスのうちの任意のタイミングから試験を再実行したい場合がある。第2の実施形態では、任意のタイミングから試験を再実行することを可能とする模擬装置100について説明する。
以降、第2の実施形態の模擬装置100を、模擬装置100aと表記する。模擬装置100aが備える構成要素のうちの第1の実施形態と同じ構成要素には、第1の実施形態と同じ名称および符号を付す。そして、第1の実施形態と同じ構成要素については、説明を省略するか、または簡略的に説明する。
図9は、第2の実施形態の模擬装置100aが学習モードで使用される場合の一例を説明するための図である。ホスト210c、コントローラ220c、およびメモリチップ230aは、コントローラ220cが実際の使用条件でも仕様通りに動作するか否かを評価するための試験装置200cを構成している。
コントローラ220cは、メモリチップ230aとともにメモリシステムを構成し得る電子部品である。コントローラ220cは、例えばコントローラ220aと同様の動作を実行することができる。なお、コントローラ220cは、第1コントローラの別の一例である。
コントローラ220cは、メモリチップ230aと通信路240aを介して接続されている。通信路240aを分岐させる分岐部250が設けられている。分岐部250によって生成された分岐先は、模擬装置100aに接続されている。これによって、模擬装置100aは、コントローラ220cとメモリチップ230aとの間を転送される各種の信号を、分岐部250を介して受信することができる。模擬装置100aは、学習モードにおいては、コントローラ220cとメモリチップ230aとの間を転送される各種の信号に基づいて、メモリチップ230aの特性を学習することができる。
模擬装置100aは、さらに、ホスト210cと通信路300を介して接続される。また、模擬装置100aは、さらに、コントローラ220cと通信路310を介して接続される。通信路300は、第3通信路の一例である。
ホスト210cは、メモリシステムに対する外部の装置としての動作を行う。つまり、ホスト210cは、ホスト210aと同様に、コントローラ220cに対し、各種の要求を送信することができる。ホスト210cは、ここでは、コントローラ220cの動作を試験するための予め決められた手順に従って、コントローラ220cに対して要求を逐次送信する。手順は、例えばプログラムによって記述されている。ホスト210cは、例えばプロセッサであり、プログラムによって記述された手順にしたがって、コントローラ220cに対して要求を送信する。なお、ホスト210cは、プログラムを要さないハードウェア回路によって構成されてもよい。
ホスト210cは、さらに、それぞれ異なるタイミングで、1回以上、スナップショット指示を通信路300を介して模擬装置100aに送信することができる。例えば、試験の手順が、連続して実行される複数のプロセスを含む場合、ホスト210cは、各プロセスが完了する毎にスナップショット指示を模擬装置100aに送信することができる。なお、スナップショット指示を送信するタイミングはこれに限定されない。スナップショット指示は、第1指示の一例である。
模擬装置100aは、スナップショット指示を受信すると、特性情報およびコントローラ220cの内部状態情報を、内部に備える記憶装置106に格納する。
ここで、コントローラ220cの内部状態情報とは、コントローラ220cが備える記憶装置221の状態を示す情報である。コントローラ220cが備える記憶装置は、レジスタ、フリップフロップ、およびメモリを含む。コントローラ220cがプロセッサを含む場合、コントローラ220cが備える記憶装置は、当該プロセッサ内のレジスタを含む。模擬装置100aは、記憶装置221の内容を、内部状態情報として通信路310を介して取得し、取得した内部状態情報を全ページの特性情報(特性情報群)と対応づけて記憶装置106に格納する。この内部状態情報と特性情報群との対を、スナップショット情報と表記する。
図10は、第2の実施形態の模擬装置100aが備える記憶装置106に格納される情報の例示的かつ模式的な図である。記憶装置106には、メモリセルアレイ232が備える全てのページのそれぞれに対応したページ情報10と、1以上のスナップショット情報20とが格納される。
1以上のスナップショット情報20のそれぞれは、スナップショット指示に応じて格納されたものであり、内部状態情報と特性情報群との対によって構成されている。スナップショット情報20に含まれる内部状態情報は、スナップショット指示の受信に応じて取得された内部状態情報である。特性情報群は、スナップショット指示の受信に応じて全てのページ情報10から収集された全ページ分の特性情報である。
なお、各スナップショット情報20は、生成または格納された時刻を示す時刻情報など、各スナップショット情報20を特定するための情報を含み得る。各スナップショット情報20は、各スナップショット情報20を特定するための情報として、IDを含んでいてもよい。IDは、スナップショット指示によってホスト210cから指定されてもよいし、模擬装置100aが生成してもよい。IDは、ホスト210cから指定されたプロセス番号であってもよい。プロセス番号は、例えば、試験の手順に含まれる複数のプロセスのそれぞれに付されたユニークな番号である。
図11は、第2の実施形態の模擬装置100aが模擬モードで使用される場合の一例を説明するための図である。本図に示されるように、ホスト210d、コントローラ220d、模擬装置100aは、コントローラ220dが実際の使用条件でも仕様通りに動作するか否かを評価するための試験装置200dを構成している。
ホスト210dは、ホスト210cと同一の動作を実行する。コントローラ220dは、コントローラ220cと同じであってもよいし、コントローラ220cと異なるコントローラであってもよい。コントローラ220dは、発生した不具合に対応して改良されたコントローラであってもよい。コントローラ220dは、第2コントローラの一例である。
コントローラ220dと模擬装置100aとは、通信路240bを介して接続されている。模擬装置100aは、ホスト210dと通信路300を介して接続されている。また、模擬装置100aは、コントローラ220dと通信路310を介して接続されている。
模擬装置100aは、模擬モードで動作する際に、ホスト210dから、1つのスナップショット情報20を指定する指示を受信することができる。この指示を、指定指示と表記する。指定指示は、第2指示の一例である。模擬装置100aは、指定指示を通信路300を介して受信する。
なお、指定指示のデータ構造は、任意に構成され得る。指定指示は、例えば、ID、時刻情報、プロセス番号などを含み得る。
模擬装置100aは、記憶装置106に格納されている1以上のスナップショット情報20のうちの指定されたスナップショット情報20に含まれる特性情報群をロードする。つまり、模擬装置100aは、特性情報群に含まれる全ページ分の特性情報のそれぞれを、対応するページ情報10に記録する。これによって、模擬装置100aは、指定されたスナップショット情報20が生成された時点におけるメモリチップ230aの特性を模擬した動作を開始することが可能となる。
さらに、模擬装置100aは、指定されたスナップショット情報20に含まれる内部状態情報を、コントローラ220dにセットする。つまり、模擬装置100aは、コントローラ220dが備える、レジスタ、フリップフロップ、およびメモリなどの、記憶装置2221を、内容状態情報で上書きする。これによって、コントローラ220dは、指定されたスナップショット情報20が生成された時点におけるコントローラ220cと同じ動作を開始することが可能となる。
特性情報群がロードされ、内部状態情報がセットされることで、コントローラ220dおよび模擬装置100aは、指定されたスナップショット情報20が生成された時点からの試験を開始することが可能な状態となる。ホスト210dは、試験の手順のうち、指定したスナップショット情報20が生成された時点から、試験を開始する。
試験が開始されると、模擬装置100aは、ページ情報10に含まれる特性情報に従って、メモリチップ230aの挙動を模擬した動作を行う。例えば、模擬装置100aは、コントローラ220dからライトコマンドを受信すると、ライトコマンドとともに送られてきたライトデータを内部に備える記憶装置106に格納する。その後、模擬装置100aは、コントローラ220dからリードコマンドを受信すると、記憶装置106に格納されているライトデータを読み出して、読み出されたライトデータをページ情報10に含まれる特性情報に基づいて加工して、加工されたライトデータをリードデータとしてコントローラ220dに送信する。
このように、模擬装置100aは、学習モードにおいては、指示されたタイミングでスナップショット情報20を生成する。スナップショット情報20は、全ページ分の特性情報を集めた特性情報群と、コントローラ220cの内部状態情報と、を含む。そして、模擬装置100aは、模擬モードにおいては、それぞれ異なるタイミングで生成された1以上のスナップショット情報20のうちの任意の1つを指定することが可能に構成される。これによって、ホスト210cが後に試験を再実行したいポイントでスナップショット指示を送信すれば、模擬装置100aは、そのポイントから試験を開始することが可能となる。つまり、任意のタイミングから試験を再実行することを可能となる。
続いて、第2の実施形態の模擬装置100aの具体的な構成について説明する。図12は、第2の実施形態の模擬装置100aの具体的な構成を示す例示的かつ模式的な図である。
模擬装置100aは、インタフェース101、コマンド解析装置102、応答解析装置103、応答装置104、誤り解析装置105、および記憶装置106を備える。応答装置104は、誤り生成装置107を備える。
模擬装置100aは、さらに、第2インタフェース108、第3インタフェース109、およびスナップショット制御装置110を備える。
インタフェース101、コマンド解析装置102、応答解析装置103、応答装置104、誤り解析装置105、第2インタフェース108、第3インタフェース109、およびスナップショット制御装置110は、処理装置の他の例を構成する。
第2インタフェース108は、通信路300に接続するためのハードウェアである。第2インタフェース108は、物理的な単位および信号を受けるバッファを含み得る。
第3インタフェース109は、通信路310に接続するためのハードウェアである。第3インタフェース109は、物理的な単位および信号を受けるバッファを含み得る。
スナップショット制御装置110は、スナップショット指示に応じてスナップショット情報20を生成して記憶装置106に格納することができる。また、スナップショット制御装置110は、指定指示によって指定されたスナップショット情報20から内部状態情報および特性情報群を取得して、内部状態情報をコントローラ220dにセットしたり、特性情報群をロードしたりすることができる。
なお、スナップショット制御装置110は、コマンド解析装置102、応答解析装置103、応答装置104、および誤り解析装置105などと同様に、プログラムを要しないハードウェア回路によって構成されてもよいし、プログラムに基づいて動作するプロセッサによって構成されてもよい。また、スナップショット制御装置110は、FPGAまたはASICによって構成されてもよい。
続いて、第2の実施形態の模擬装置100aを用いた一連の動作について説明する。
図13は、学習モードの模擬装置100aを用いた第2の実施形態の試験方法の一例を説明するフローチャートである。
模擬装置100aが学習モードで使用される場合には、図9に示されるように、模擬装置100aはコントローラ220cとメモリチップ230aとを接続する通信路240aに設けられた分岐部250に接続される。また、模擬装置100aは、ホスト210cと通信路300を介して接続される。また、模擬装置100aは、コントローラ220cと通信路310を介して接続される。
そして、試験が開始されると(S301)、S302〜S313において、図7のS102〜S113と同様の処理が実施される。
試験中、模擬装置100aがスナップショット指示を受信すると(S314:Yes)、スナップショット制御装置110は、通信路310を介してコントローラ220cの内部状態情報を取得する(S315)。また、スナップショット制御装置110は、全てのページ情報10から特性情報を取得する(S316)。つまり、スナップショット制御装置110は、全ページ分の特性情報を取得する。
そして、スナップショット制御装置110は、S315の処理によって取得された内部状態情報と、S316の処理によって取得された全ページ分の特性情報と、をスナップショット情報20として記録する(S317)。
なお、スナップショット指示を受信していない場合(S314:No)、S315〜S317の処理はスキップされる。
その後、S318〜S320において、図7のS114〜S116と同様の処理が実施される。
図14は、模擬モードの模擬装置100aを用いた第2の実施形態の試験方法の一例を説明するフローチャートである。
模擬装置100aが模擬モードで使用される場合には、図11に示されるように、模擬装置100aはコントローラ220dと通信路240bで直接に接続される。また、模擬装置100aは、ホスト210dと通信路300を介して接続される。また、模擬装置100aは、コントローラ220dと通信路310を介して接続される。
そして、試験が開始される前に、模擬装置100aは、ホスト210dから通信路300を介して指定指示を受信する(S401)。すると、スナップショット制御装置110は、指定指示によって指定されたスナップショット情報20に含まれている内部状態情報を、コントローラ220dにセットする(S402)。また、スナップショット制御装置110は、指定指示によって指定されたスナップショット情報20に含まれている特性情報群をページ情報10に記録する(S403)。つまり、スナップショット制御装置110は、特性情報群に含まれる全ページ分の特性情報のそれぞれを、対応するページ情報10に記録する。
その後、試験が開始されると(S404)、S405〜S418において、図8のS202〜S215と同様の処理が実施される。なお、試験においては、ホスト210dは、試験の手順のうちの、指定されたスナップショット情報20が生成されたポイントから試験を開始することができる。
このように、第2の実施形態によれば、コントローラ220cは、ホスト210cに接続され、ホスト210cからの要求に基づいてメモリチップ230aにコマンドを送信する。模擬装置100aは、模擬装置100aとホスト210cとを接続する通信路300を介して、ホスト210cからスナップショット指示を受信する。模擬装置100aは、スナップショット指示に応じて、コントローラ220cの内部状態情報を取得して、内部状態情報と特性情報群とを含むスナップショット情報20を記憶装置106に格納する。また、模擬装置100aは、模擬モードでの試験を開始する前に、スナップショット情報20に含まれる内部状態情報をコントローラ220dにセットし、スナップショット情報20に含まれる特性情報群をロードする。
この構成により、試験の一連の手順のうちの任意のポイントから試験を再実行することが可能となる。
また、第2の実施形態によれば、スナップショット情報20を生成して記憶装置106に格納する処理は、複数回実行され得る。そして、模擬装置100aは、記憶装置106に格納された複数のスナップショット情報20のうちの1つを指定する指定指示をホスト210dから受信することができる。
この構成により、試験の一連の手順のうちの複数のポイントのうちの任意の1つから試験を再実行することが可能となる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10 ページ情報、20 スナップショット情報、100,100a 模擬装置、101 インタフェース、102 コマンド解析装置、103 応答解析装置、104 応答装置、105 誤り解析装置、106,221 記憶装置、107 誤り生成装置、108 第2インタフェース、109 第3インタフェース、110 スナップショット制御装置、200a,200b,200c,200d 試験装置、210a,210b,210c,210d ホスト、220a,220b,220c,220d コントローラ、230a メモリチップ、231 制御回路、232 メモリセルアレイ、240a,240b,300,310 通信路、250 分岐部。

Claims (14)

  1. 第1コントローラに第1通信路を介して接続された半導体記憶装置を模擬する模擬装置による模擬方法であって、
    前記第1コントローラから前記半導体記憶装置に転送され、前記第1コントローラによって書き込みが命令された第1データを、前記第1通信路に設けられた分岐部から取得することと、
    前記半導体記憶装置に記憶され、前記半導体記憶装置から前記第1コントローラに転送され、前記第1コントローラから読み出しが命令された第2データを、前記分岐部から取得することと、
    前記第1データと前記第2データとの比較に基づいて得られる前記半導体記憶装置の特性を示す第1情報に基づいて、前記半導体記憶装置の応答を模擬すること、
    を備える模擬方法。
  2. 前記第1情報は前記第2データの誤りに関する情報を含む、
    請求項1に記載の模擬方法。
  3. 前記模擬することは、
    第2コントローラによって書き込みが命令された第3データを前記第2コントローラと前記模擬装置とを接続する第2通信路を介して受信することと、
    受信した前記第3データを前記模擬装置が有する記憶装置に格納することと、
    前記第2コントローラからの前記第3データを読み出す命令に応じて、格納した前記第3データを前記記憶装置から読み出して前記第1情報に基づいて加工して、加工された前記第3データである第4データを前記第2コントローラに前記第2通信路を介して送信することと、
    を含む請求項1に記載の模擬方法。
  4. 前記第1コントローラは、ホストに接続され、前記ホストからの要求に基づいて前記半導体記憶装置に命令を送信し、
    前記模擬装置と前記ホストとを接続する第3通信路を介して前記ホストから第1指示を受信することと、
    受信した前記第1指示に応じて、前記第1コントローラの内部状態を示す第2情報を取得し、前記第1情報と取得した前記第2情報とを含むスナップショット情報を前記記憶装置に格納することと、
    前記模擬することを開始する前に、前記スナップショット情報に含まれる前記第2情報を前記第2コントローラにセットし、前記スナップショット情報に含まれる前記第1情報をロードすることと、
    を更に備える請求項3に記載の模擬方法。
  5. 前記スナップショット情報を格納することはそれぞれ異なるタイミングで複数回実行され、
    前記第2情報をセットし前記第1情報をロードすることは、前記記憶装置に格納された複数のスナップショット情報のうちの1つを指定する第2指示を前記ホストから受信すること、
    を含む請求項4に記載の模擬方法。
  6. 前記第1情報は前記第2データの誤りに関する情報を含み、
    前記第4データを送信することは、前記誤りに関する情報に基づいて前記第3データに誤りを発生させること、
    を含む請求項3に記載の模擬方法。
  7. 前記半導体記憶装置は、複数の記憶領域を備え、
    前記複数の記憶領域のうちの前記第1データが格納された記憶領域と対応付けて、前記模擬装置が備える記憶装置に前記第1情報を格納すること、
    を更に備える請求項1に記載の模擬方法。
  8. 第1コントローラと半導体記憶装置とを接続する第1通信路に接続可能なインタフェースと、
    前記第1コントローラから前記半導体記憶装置に転送され、前記第1コントローラによって書き込みが命令された第1データを、前記インタフェースを介して取得し、
    前記半導体記憶装置に記憶され、前記半導体記憶装置から前記第1コントローラに転送され、前記第1コントローラから読み出しが命令された第2データを、前記インタフェースを介して取得し、
    前記第1データと前記第2データとの比較に基づいて得られる前記半導体記憶装置の特性を示す第1情報に基づいて、前記半導体記憶装置の応答を模擬する、処理装置と、
    を備える模擬装置。
  9. 前記第1情報は前記第2データの誤りに関する情報を含む、
    請求項8に記載の模擬装置。
  10. 記憶装置をさらに備え、
    前記処理装置は、
    第2コントローラによって書き込みが命令された第3データを前記第2コントローラと前記模擬装置とを接続する第2通信路を介して受信し、
    受信した前記第3データを前記記憶装置に格納し、
    前記第2コントローラからの前記第3データを読み出す命令に応じて、格納した前記第3データを前記記憶装置から読み出して前記第1情報に基づいて加工して、加工された前記第3データである第4データを前記第2コントローラに前記第2通信路を介して送信する、
    請求項8に記載の模擬装置。
  11. 前記第1コントローラは、ホストに接続され、前記ホストからの要求に基づいて前記半導体記憶装置に命令を送信し、
    前記処理装置は、
    前記模擬装置と前記ホストとを接続する第3通信路を介して前記ホストから第1指示を受信し、
    受信した前記第1指示に応じて、前記第1コントローラの内部状態を示す第2情報を取得し、前記第1情報と取得した前記第2情報とを含むスナップショット情報を前記記憶装置に格納し、
    前記模擬を開始する前に、前記スナップショット情報に含まれる前記第2情報を前記第2コントローラにセットし、前記スナップショット情報に含まれる前記第1情報をロードする、
    請求項10に記載の模擬装置。
  12. 前記処理装置は、
    前記第1指示をそれぞれ異なるタイミングで複数受信し、
    前記複数の第1指示のそれぞれを受信する毎に前記スナップショット情報を生成して前記記憶装置に格納し、
    前記記憶装置に格納された複数の前記スナップショット情報のうちの1つを指定する第2指示を前記ホストから受信する、
    請求項11に記載の模擬装置。
  13. 前記第1情報は前記第2データの誤りに関する情報を含み、
    前記処理装置は、前記誤りに関する情報に基づいて前記第3データに誤りを発生させる、
    請求項10に記載の模擬装置。
  14. 前記半導体記憶装置は、複数の記憶領域を備え、
    前記模擬装置は、記憶装置をさらに備え、
    前記処理装置は、前記第1情報を、前記複数の記憶領域のうちの前記第1データが格納された記憶領域と対応付けて前記記憶装置に格納する、
    請求項8に記載の模擬装置。
JP2019050498A 2019-03-18 2019-03-18 半導体記憶装置の模擬方法および模擬装置 Pending JP2020154477A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019050498A JP2020154477A (ja) 2019-03-18 2019-03-18 半導体記憶装置の模擬方法および模擬装置
US16/565,597 US20200302027A1 (en) 2019-03-18 2019-09-10 Simulation method and simulation device for semiconductor storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019050498A JP2020154477A (ja) 2019-03-18 2019-03-18 半導体記憶装置の模擬方法および模擬装置

Publications (1)

Publication Number Publication Date
JP2020154477A true JP2020154477A (ja) 2020-09-24

Family

ID=72513649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019050498A Pending JP2020154477A (ja) 2019-03-18 2019-03-18 半導体記憶装置の模擬方法および模擬装置

Country Status (2)

Country Link
US (1) US20200302027A1 (ja)
JP (1) JP2020154477A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7436901B1 (ja) 2022-10-12 2024-02-22 東芝情報システム株式会社 テスト用nand装置及びnand装置のデバッグ方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117012255A (zh) * 2022-04-29 2023-11-07 长鑫存储技术有限公司 存储器的测试方法及测试系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7436901B1 (ja) 2022-10-12 2024-02-22 東芝情報システム株式会社 テスト用nand装置及びnand装置のデバッグ方法

Also Published As

Publication number Publication date
US20200302027A1 (en) 2020-09-24

Similar Documents

Publication Publication Date Title
US6388919B2 (en) Memory controller for flash memory system and method for writing data to flash memory device
US7362611B2 (en) Non-volatile memory copy back
JP5112566B1 (ja) 半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラム
TWI467591B (zh) 於非揮發記憶體系統中損壞區塊隔離的方法及其相關非揮發記憶體器件
US8719662B2 (en) Memory device with error detection
US10496474B2 (en) Semiconductor storage device and memory system having the same
US20180276073A1 (en) Memory system
US8760921B2 (en) Storage device and control method of nonvolatile memory
CN110111832B (zh) 半导体存储器装置及其操作方法
KR20150029404A (ko) 반도체 장치, 메모리 시스템 및 이의 동작 방법
CN110459259A (zh) 存储设备写错误纠错能力的测试方法、系统及存储介质
US20170221584A1 (en) Ssd controlling circuit for determining reusability of data block of ssd
CN109754840B (zh) 半导体存储器装置及其操作方法
TWI591642B (zh) Memory controller and method of controlling semiconductor memory device
CN116880782B (zh) 一种内嵌式存储器及其测试方法
JP2019164858A (ja) メモリシステム
US9146824B1 (en) Management of bit line errors based on a stored set of data
CN110879759B (zh) 控制器及其操作方法
JP2022034536A (ja) マルチページデータをプログラムするための不揮発性メモリ装置の動作方法
JP2020154477A (ja) 半導体記憶装置の模擬方法および模擬装置
CN111324300B (zh) 控制器以及控制器的操作方法
US20180129559A1 (en) Semiconductor memory device, controller, and operating methods thereof
CN110109797B (zh) 存储器控制器、存储器系统及存储器控制器的操作方法
CN110444244B (zh) 存储设备读错误纠错能力的测试装置
TWI791254B (zh) 記憶體系統、記憶體系統之控制方法及主機裝置