JP7687084B2 - Non-volatile semiconductor memory performance evaluation device - Google Patents
Non-volatile semiconductor memory performance evaluation device Download PDFInfo
- Publication number
- JP7687084B2 JP7687084B2 JP2021106405A JP2021106405A JP7687084B2 JP 7687084 B2 JP7687084 B2 JP 7687084B2 JP 2021106405 A JP2021106405 A JP 2021106405A JP 2021106405 A JP2021106405 A JP 2021106405A JP 7687084 B2 JP7687084 B2 JP 7687084B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- write
- access
- response time
- time
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Memory System (AREA)
Description
本発明は、SDメモリカード等の不揮発性半導体メモリの性能評価装置に関する。 The present invention relates to a performance evaluation device for non-volatile semiconductor memory such as SD memory cards.
SDメモリカード(例えば、特許文献1参照)が車載機器などの記録装置として利用されている。従来のSDメモリカードのアクセス性能評価は、SDメモリカードインターフェースを通し、アクセスするアドレス位置を連続またはランダムに変化させたときのコマンド応答時間を測定するだけのもので、同一の個体でも測定結果がばらつき、高精度な評価が出来ていなかった。 SD memory cards (see, for example, Patent Document 1) are used as recording devices for in-vehicle devices and the like. Conventional access performance evaluations of SD memory cards involve simply measuring the command response time when the address location to be accessed is changed continuously or randomly through an SD memory card interface, and the measurement results vary even for the same individual device, making it impossible to perform a highly accurate evaluation.
SDメモリカードのアクセス性能の評価の主な目的は、SDメモリカード固有の性能の限界を見つけるものであり、これにより、SDメモリカードを使用するシステムから見て、データの読み書きに異常が起きないことを明確にすることである。例えば、SDメモリカードにオペレーティングシステム(以下、OSという)を配置した場合や、OSのシステムリソースの一時退避先にSDメモリカードを使用した場合や、複数アプリケーションを並列実行してSDメモリカードのデータを読み書きする場合等、ランダムなアドレス位置へデータの読み書きが頻繁に発生するため、ランダムアクセス性能の高精度な評価がより重要となっている。 The main purpose of evaluating the access performance of an SD memory card is to find the performance limits specific to the SD memory card, and thereby to clarify that no abnormalities occur in reading and writing data from the perspective of the system using the SD memory card. For example, when an operating system (hereinafter referred to as OS) is placed on the SD memory card, when the SD memory card is used as a temporary storage destination for OS system resources, or when multiple applications are executed in parallel to read and write data on the SD memory card, data is frequently read and written to random address locations, making highly accurate evaluation of random access performance more important.
しかしながら、従来のランダムアクセス性能の評価では、SDメモリカードの内部処理を定量化することが出来ず、同じメーカの同じ型番のSDメモリカードに同じパターンのランダムアクセスを実施しても性能評価の結果にばらつきが発生していた。また、従来のPCを使用した評価では、PCのOSのオーバーヘッドの影響を受けるため、同様に、同じメーカの同じ型番のSDメモリカードに同じパターンを書き込んでも性能評価の結果にばらつきが発生していた。 However, conventional random access performance evaluations could not quantify the internal processing of an SD memory card, and even when the same pattern of random access was performed on SD memory cards of the same model number and from the same manufacturer, the results of the performance evaluation varied. Furthermore, conventional evaluations using a PC were affected by the overhead of the PC's OS, and similarly, even when the same pattern was written to SD memory cards of the same model number and from the same manufacturer, the results of the performance evaluation varied.
このように、従来の評価方法では、固有のSDメモリカードの書き込んだ時の最大処理時間を明確に出来ず、この処理時間に基づくアクセス性能の限界を明確に把握することが出来なかった。従って、SDメモリカードをシステムで使用する際、システムが想定した以上のコマンド応答時間が発生することがあった。その結果、書き込みエラーや処理遅れによる想定外のトラブルが発生することがあった。同様の事象は、NANDフラッシュメモリを含むSDメモリカード以外の不揮発性半導体メモリでも発生することがあった。 As such, with conventional evaluation methods, it was not possible to clearly determine the maximum processing time when writing to a specific SD memory card, and it was not possible to clearly grasp the limits of access performance based on this processing time. Therefore, when using an SD memory card in a system, command response times longer than expected by the system could occur. As a result, unexpected problems could occur due to writing errors or processing delays. Similar phenomena could also occur with non-volatile semiconductor memory other than SD memory cards, including NAND flash memory.
本実施形態はこうした状況に鑑みてなされたものであり、その目的は、不揮発性半導体メモリのアクセス性能を高精度に評価する技術を提供することにある。 This embodiment was made in consideration of these circumstances, and its purpose is to provide a technology for evaluating the access performance of non-volatile semiconductor memory with high accuracy.
上記課題を解決するために、本実施形態のある態様の不揮発性半導体メモリの性能評価装置は、NANDフラッシュメモリと、コントローラを含む不揮発性半導体メモリの性能評価装置であって、前記不揮発性半導体メモリの全領域に、アドレス降順でアクセスするアクセスパターンでデータの書き込みを指示する降順の書き込みコマンドを発行し、その前または後に前記不揮発性半導体の全領域に、アドレス昇順でアクセスするアクセスパターンでデータの書き込みを指示する昇順の書き込みコマンドを発行するコマンド実行部と、前記書き込みコマンドに対するコマンド応答時間を取得し、前記コマンド応答時間をもとに、前記不揮発性半導体メモリの性能評価データを生成するホストコントローラと、を備える。前記コマンド実行部は、前記降順の書き込みコマンドを第1の設定回数以上発行し、前記昇順の書き込みコマンドを第2の設定回数以上発行し、前記ホストコントローラは、前記昇順の書き込みコマンドから前記降順の書き込みコマンドに切り替えられた後の初回の前記降順の書き込みコマンドに対するコマンド応答時間と次の前記降順の書き込みコマンドに対するコマンド応答時間との差分をアクセス方向の切り替え処理時間として抽出し、または、前記降順の書き込みコマンドから前記昇順の書き込みコマンドに切り替えられた後の初回の前記昇順の書き込みコマンドに対するコマンド応答時間と次の前記昇順の書き込みコマンドに対するコマンド応答時間との差分をアクセス方向の切り替え処理時間として抽出し、抽出したアクセス方向の切り替え処理時間にさらに基づく前記不揮発性半導体メモリの性能評価データを生成する。 In order to solve the above problem, a nonvolatile semiconductor memory performance evaluation device of one aspect of the present embodiment is a nonvolatile semiconductor memory performance evaluation device including a NAND flash memory and a controller, and is equipped with a command execution unit that issues a descending write command that instructs writing data to all areas of the nonvolatile semiconductor memory in an access pattern that accesses the entire area in descending address order, and issues an ascending write command before or after that that instructs writing data to all areas of the nonvolatile semiconductor memory in an access pattern that accesses the entire area in ascending address order, and a host controller that acquires a command response time to the write command and generates performance evaluation data for the nonvolatile semiconductor memory based on the command response time . The command execution unit issues the descending write command a first set number of times or more and issues the ascending write command a second set number of times or more, and the host controller extracts as an access direction switching processing time a difference between a command response time for the first descending write command after the ascending write command is switched to the descending write command and a command response time for the next descending write command, or extracts as an access direction switching processing time a difference between a command response time for the first ascending write command after the descending write command is switched to the ascending write command and a command response time for the next ascending write command, and generates performance evaluation data of the non-volatile semiconductor memory further based on the extracted access direction switching processing time .
本実施形態の別の態様は、不揮発性半導体メモリの性能評価方法である。この方法は、NANDフラッシュメモリと、コントローラを含む不揮発性半導体メモリの性能評価方法であって、前記不揮発性半導体メモリの全領域に、アドレス降順でアクセスするアクセスパターンでデータの書き込みを指示する降順の書き込みコマンドを発行する第1ステップと、前記書き込みコマンドに対するコマンド応答時間を取得する第2ステップと、を有する。前記第1ステップは、前記降順の書き込みコマンドを設定回数以上発行し、前記第2ステップは、前記設定回数以上の降順の書き込みコマンドに対する前記設定回数以上のコマンド応答時間をもとに、前記不揮発性半導体メモリの性能評価データを生成する。 Another aspect of this embodiment is a performance evaluation method for a nonvolatile semiconductor memory. This method is a performance evaluation method for a nonvolatile semiconductor memory including a NAND flash memory and a controller, and includes a first step of issuing a write command in descending order that instructs writing data to an entire area of the nonvolatile semiconductor memory in an access pattern that accesses the entire area in descending address order, and a second step of acquiring a command response time to the write command. The first step issues the descending write command a set number of times or more, and the second step generates performance evaluation data for the nonvolatile semiconductor memory based on the command response time to the set number of or more descending write commands.
なお、以上の構成要素の任意の組合せ、本実施形態の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本実施形態の態様として有効である。 In addition, any combination of the above components, and conversions of the expressions of this embodiment between methods, devices, systems, recording media, computer programs, etc., are also valid aspects of this embodiment.
本実施形態によれば、不揮発性半導体メモリのアクセス性能を高精度に評価することが出来る。 According to this embodiment, the access performance of non-volatile semiconductor memory can be evaluated with high accuracy.
本実施形態は、一般に市場流通しているSDメモリカード(マイクロSDカードを含む)に関し、SDメモリカード規格に基づく外部インターフェースからのアクセス時間を測定することにより、SDメモリカードのアクセス性能の限界を評価する性能評価装置、及び性能評価方法に関する。 This embodiment relates to a performance evaluation device and a performance evaluation method for evaluating the limits of the access performance of SD memory cards (including micro SD cards) that are generally available on the market, by measuring the access time from an external interface based on the SD memory card standard.
図1は、実施形態に係る、性能評価装置20を用いたSDメモリカード10の評価システムの構成を示す図である。SDメモリカード10は、NANDフラッシュメモリ11及びコントローラ12を含む。NANDフラッシュメモリ11は、トランジスタの浮遊ゲートの電荷の状態によって情報を記憶するメモリである。
Figure 1 is a diagram showing the configuration of an evaluation system for an
NANDフラッシュメモリ11では、ソース線を複数のセルで共有しているため、データの書き込み/読み出しはページ単位で行われる。消去は、複数のページを含むブロック単位で行われる。消去は浮遊ゲートから電子を引き抜くことで行われ、書き込みは浮遊ゲートに電子を注入することにより行われる。NANDフラッシュメモリ11は、ソース線を複数のセルで共有することにより、セルごとにソース線が設けられるNORフラッシュメモリより高集積化を実現している。
In the
コントローラ12は、データの書き込み、読み出し、消去の制御、論理アドレスと物理アドレスの変換、ウェアレベリング、誤り訂正、不良ブロックの管理、ホストとのインターフェース等の制御を行う。
The
NANDフラッシュメモリ11では、データを上書きすることが出来ず、一旦消去してから書き込みする必要がある。上述したように消去はブロック単位で行う必要がある。従って、書き込み領域を含むブロック全体のデータを一旦、バッファに読み出して、当該ブロック全体を消去し、当該バッファ内のデータと新しいデータを当該ブロックに書き込む必要がある。
In the
SSDの場合、NANDフラッシュメモリに加えて、書き込み時のバッファとして使用可能な揮発性の内部キャッシュメモリを備える。この内部キャッシュメモリには通常、DRAMが使用される。SSDでは当該DRAMを使用することにより、高速な書き込みが可能となる。これに対して、SDメモリカードでは、一般にスペース的な制約から、NANDフラッシュメモリ11の他に、揮発性の内部キャッシュメモリを備えていない。
In addition to the NAND flash memory, SSDs have a volatile internal cache memory that can be used as a buffer when writing. DRAM is usually used for this internal cache memory. By using this DRAM in SSDs, high-speed writing is possible. In contrast, SD memory cards generally do not have a volatile internal cache memory in addition to the
そこでSDメモリカード10では、NANDフラッシュメモリ11の余剰容量を活用して書き込みを行っている。NANDフラッシュメモリ11は、仕様に記載された記録容量よりも、実際には多くの記憶容量を搭載している。この仕様上の記憶容量と、実記憶容量との差分が余剰容量となる。余剰容量は、実記憶容量の10~25%程度に設定されることが多い。
Therefore, the
SDメモリカード10は、この余剰容量を書き込みとウェアレベリングに活用している。コントローラ12は、データを書き換える際、書き込み対象ページを含むブロック(以下、対象ブロック)のデータを余剰ブロックに退避させ、対象ブロックのデータを消去する。コントローラ12は、退避させたデータ(書き込み対象ページのデータを除く)と新しいデータを対象ブロックに書き込む。
The
なお、ブロックサイズより大きいデータを書き込む際は、コントローラ12は、新しいデータを余剰ブロックへ書き込んで当該余剰ブロックのステータスを通常ブロックへ変更し、古いデータが存在するブロックのステータスを余剰ブロックへ変更してもよい。
When writing data larger than the block size, the
NANDフラッシュメモリ11は基本的に、HDDのように書き込みアドレスの位置による物理的な性能の差が存在しない。従って、内部キャッシュとして使用する余剰容量が一杯になった状態で、同じデータを書き込んだ場合、どのアドレスへ書き込んでも同じコマンド応答時間となる筈である。
The
しかしながら、内部キャッシュとして使用する余剰容量を一杯にした状態で、SDメモリカード10の所定のアドレス範囲に順方向に連続的にデータを書き込んだ時のコマンド応答時間と、当該アドレス範囲にランダムにデータを書き込んだ時のコマンド応答時間との間に差が発生することが一般的である。これは、NANDフラッシュメモリ11では、ブロック内の複数のページをアドレス昇順方向(以下、フォワードアクセスともいう)に連続して書き込むことは出来るが、アドレス降順方向(以下、リバースアクセスともいう)に連続して書き込むことが出来ないことに起因する。即ち、NANDフラッシュメモリ11では、ブロック内の複数のページをアドレス昇順で書き込む必要がある。
However, when the surplus capacity used as the internal cache is full, it is common for there to be a difference in command response time between when data is written continuously in the forward direction to a specific address range of the
図2は、NANDフラッシュメモリのブロック1内のページ3-5に、フォワードアクセスで連続的に書き込む動作を模式的に示した図である。図3は、NANDフラッシュメモリのブロック1内のページ3-5に、リバースアクセスで連続的に書き込む動作を模式的に示した図である。フォワードアクセスでは1回の書き込み動作でページ3-5にデータを書き込むことが出来るが、リバースアクセスでは、ページ5、ページ4、ページ3のように3回の書き込み動作が必要となる。このようにリバースアクセスで連続的に書き込むには、フォワードアクセスで連続的に書き込む場合と比較して、多くの処理が必要となる。
Figure 2 is a schematic diagram showing the operation of continuously writing to pages 3-5 in
上述した処理等は、SDメモリカード10では内部処理としてコントローラ12が行う。NANDフラッシュメモリ11の物理アドレスはコントローラ12で論理アドレスに変換され、変換されたアドレスに基づいてNANDフラッシュメモリ11にデータが書き込まれる。
The above-mentioned processes are performed by the
NANDフラッシュメモリ11への書き込みは図2のように、一般にページ単位で行われるが、ページを降順で書き込むことは禁止されていることから、リバースアクセスとしてページを降順として書き込もうとすると図3のように書き込み工数が増える。図3の書き込み方法は概念図であり簡単な一例である。実際にSDメモリカードインターフェースを通して、SDメモリカード10にリバースアクセスで連続的にデータを書き込む際のコントローラ12の内部処理の方法は、SDメモリカード10のメーカごとに違いがあり、最終的にSDメモリカード10のアクセス性能の差となって現れる。これまでの性能評価では、このメーカごとに異なる内部処理時間を明確に把握する方法がなかった。
As shown in Figure 2, writing to the
ここで、SDメモリカード10に同じデータをフォワードアクセスで連続的に書き込んだ時のコマンド応答時間と、リバースアクセスで連続的に書き込んだ時のコマンド応答時間を、書き込んだデータ量に基づいて合算すれば、書き込んだデータ量あたりのコマンド応答時間になるはずである。しかしながら実際には、それ以上のコマンド応答時間がかかることがある。
If the command response time when the same data is continuously written to the
これは、図2に示したフォワードアクセスでの連続的な書き込みから、図3に示したリバースアクセスでの連続的な書き込みに変更される場合のように、SDメモリカード10の内部でNANDフラッシュメモリ11のアクセス方向の切り替え処理が発生していることに起因する。このアクセス方向の切り替え処理についても、SDメモリカード10のメーカごとに違いがあり、最終的にSDメモリカード10のアクセス性能の差となって現れる。これまでの性能評価では、この処理の時間も明確に把握する方法がなかった。
This is because the access direction of the
以上のように、実際の各アクセスによる書き込み時のコマンド応答時間には、フォワードアクセスの書き込み処理時間、リバースアクセスの書き込み処理時間、アクセス方向の切り替え処理時間が成分として含まれる。本実施形態では、これらの成分のそれぞれを定量的に測定して合算等することにより、SDメモリカード10のアクセス性能を高精度に評価する方法を提供する。
As described above, the command response time during writing by each actual access includes the forward access write processing time, the reverse access write processing time, and the access direction switching processing time as components. In this embodiment, a method for evaluating the access performance of the
性能評価装置20は、SDメモリカード10の純粋なパフォーマンスを測定するための専用のテスタである。性能評価装置20は、コマンド実行部21及びホストコントローラ22を含む。ホストコントローラ22は、任意のアドレス範囲を指定し、フォワードアクセスまたはリバースアクセスパターンの、書き込みコマンド/読み出しコマンドを発行する。ホストコントローラ22は、データ転送時の電源電圧や転送速度を指定することも出来る。
The
一般に、PCやスマートフォンを用いたストレージ機器のベンチマークテストでは、PCやスマートフォンのOSの介在のもと、PCやスマートフォンからストレージ機器の一つであるSDメモリカード10の所定のLBAに繰り返しアクセスを行い、アクセス時間を測定している。このようなベンチマークテストは、アクセスパターンが統一されていない、ハードウェア構成ごとに転送周波数が異なる、OSのオーバーヘッドが介在するといった制約がある。これらの制約から、測定システム環境ごとにコマンド応答時間をプロットし、相対評価することが一般的であった。そのため、評価対象のSDメモリカード10が、通常の使用方法で問題なく測定システムで使用可能であることを確認することが出来ても、SDメモリカード10のそれぞれの個体がどのようなアクセス性能を持つかを高精度に把握することが出来なかった。
In general, in benchmark tests of storage devices using a PC or smartphone, a specific LBA of an
これに対して本実施形態では、OSのオーバーヘッド等が介在しない専用のテスタ環境を構成し、直接、SDメモリカード10の全領域に対し、最大転送量・最大転送周波数で、特定のアクセスパターンのデータを書き込む。
In contrast, in this embodiment, a dedicated tester environment is configured that does not involve OS overhead, and data with a specific access pattern is directly written to the entire area of the
コマンド実行部21は、ホストコントローラ22により発行された書き込みコマンド/読み出しコマンドを出力し、SDメモリカード10との間のデータ転送処理を実行する。書き込みコマンド/読み出しコマンドによるデータ転送処理はSDメモリカード10から出力される応答をもって完了する。
The
ホストコントローラ22は、書き込みコマンド/読み出しコマンドの応答をもって、コマンド応答時間と各成分の処理時間を決定する。ホストコントローラ22は、取得したコマンド応答時間と各成分の処理時間を性能評価データとして、データベース30に登録する。性能評価データはSDメモリカードの個体ごとに測定し識別可能に登録すると好適である。データベース30は例えば、図示しないPC、サーバ、タブレット等の情報機器で構成してもよい。性能評価装置20と当該情報機器との間は例えば、USBケーブルで接続され、性能評価装置20から性能評価データがデータベース30に出力される。
The
図4は、SDメモリカードにフォワードアクセスで連続的にデータを書き込む場合のアクセスパターンの一例を示す図である。縦軸は論理アドレスからなるLBA(Logical Block Address)を示し、横軸はコマンド発行番号(コマンドの発行順序を示す番号)を示している。コマンド発行番号が小さい順に、各書き込みコマンドが発行される。図4に示すフォワードアクセスでは、0LBAから最大LBAまで256ブロック単位でSDメモリカード10の全領域にデータの書き込みを行う。書き込むデータは任意のデータでよい。コマンド実行部21は、例えば、n番目の書き込みコマンドを発行した場合は、n番目の書き込みコマンドに対する応答をコントローラ12から受信したら直ぐに、n+1番目の書き込みコマンドを発行する。ここでn番目のコマンド発行から応答受信までの時間がn番目のコマンド応答時間となる。なお、256ブロック単位の書き込みは一例であり、512ブロック単位等、別のブロック単位で書き込んでもよい。
Figure 4 is a diagram showing an example of an access pattern when data is continuously written to an SD memory card by forward access. The vertical axis shows LBA (Logical Block Address) consisting of a logical address, and the horizontal axis shows command issue numbers (numbers indicating the command issue order). Write commands are issued in ascending order of command issue numbers. In the forward access shown in Figure 4, data is written to the entire area of the
図5は、SDメモリカードにリバースアクセスで連続的にデータを書き込む場合のアクセスパターンの一例を示す図である。コマンド発行番号が小さい順に、各書き込みコマンドが発行される。図5に示すリバースアクセスでは、最大LBAから0LBAまで256ブロック単位でSDメモリカード11の全領域にデータの書き込みを行う。書き込むデータは任意のデータでよい。
Figure 5 shows an example of an access pattern when data is continuously written to an SD memory card using reverse access. Write commands are issued in ascending order of command issue number. In the reverse access shown in Figure 5, data is written to the entire area of the
図6は、コマンド応答時間をコマンド発行番号nごとにプロットしたテーブルの一例を示す図である。コマンド応答時間をプロットしたテーブルは、フォワードアクセスとリバースアクセスのそれぞれに生成される。 Figure 6 shows an example of a table that plots command response times for each command issue number n. A table that plots command response times is generated for both forward access and reverse access.
各アクセスによる書き込み処理時間について詳述する。フォワードアクセスの書き込み処理時間は、SDメモリカード10に、例えば図4のような決められたアクセスパターンで全領域に書き込んだ時に要した書き込み時間から容量あたりの処理時間として求められる。リバース方向の書き込み処理時間は、SDメモリカード10に、例えば図5のような決められたアクセスパターンで全領域に書き込んだ時に要した書き込み時間から容量あたりの処理時間として求められる。
The write processing time for each type of access is described in detail below. The write processing time for forward access is calculated as the processing time per capacity from the write time required when writing to the entire area of the
SDメモリカード10のコントローラ12は、それぞれ単一方向のアクセスパターンで決められた容量単位で連続的に全領域に書き込むだけでは、内部的に同じ処理を繰り返すだけであるから、書き込みに要する時間はそれぞれ同じような時間となる。しかし、アクセス方向の切り替え処理を伴う書き込み時間は、通常のアクセス処理時間よりも書き込み時間が長くなるのが一般である。
When the
アクセス方向の切り替え処理時間は、SDメモリカード10に、例えばフォワードアクセスの書き込み処理で全領域に書き込んだ後、最初のリバースアクセスで全領域に書き込んだ時に要した書き込み時間に内包される。そのため、続けて2回目のリバースアクセスで全領域に書き込みを実施した時に要した書き込み時間と前回の書き込み時間との差分をとることでアクセス方向の切り替えの処理時間が求められる。
The processing time for switching the access direction is included in the write time required to write to the entire area of the
図7は、実施形態に係る、性能評価装置20を用いたSDメモリカード10の評価方法の流れを示すフローチャートである。図7に示す例は、フォワードアクセスを5回、リバースアクセスを5回、実施する例である。
Figure 7 is a flowchart showing the flow of a method for evaluating an
ホストコントローラ22は、フォワードアクセスの評価回数パラメータnを1にリセットする(S10)。コマンド実行部21は、図4に示したようなアクセスパターンで、フォワード方向に連続的にデータをSDメモリカード10に書き込む。ホストコントローラ22は、コマンド応答時間とSDメモリカード10の全領域の書き込み時間を取得する(S11)。SDメモリカード10に書き込むデータはどのようなものでも良く、図6に示したような各アクセスパターンのコマンド応答時間を取得することを目的とする。
The
ホストコントローラ22は、各回のフォワードアクセスの評価において、最大となるコマンド応答時間mと全領域書き込み時間kを取得するためのデータ処理を実行する(S12)。
The
図8は、フォワードアクセスのデータ処理のサブルーチンを示す図である。評価回数パラメータnが1の場合(S120のYES)、コマンド応答時間の最大値パラメータmに何もデータが入っていないため、ホストコントローラ22は、最大値パラメータmに、コマンド応答時間[n]の値をそのまま格納する(S122)。
Figure 8 shows a subroutine for forward access data processing. If the evaluation count parameter n is 1 (YES in S120), no data is entered in the maximum command response time parameter m, so the
評価回数パラメータnが1以外の場合(S120のNO)、ホストコントローラ22は、最大値パラメータmの値とコマンド応答時間[n]の値を比較する(S121)。コマンド応答時間[n]の値の方が大きい場合(S121のYES)、ホストコントローラ22は、最大値パラメータmをコマンド応答時間[n]の値に更新する(S122)。コマンド応答時間[n]の値の方が大きくない場合(S121のNO)、ステップS122の処理がスキップされる。
If the evaluation count parameter n is other than 1 (NO in S120), the
評価回数パラメータnが1の場合(S123のYES)、全領域書き込み時間の最大値パラメータkに何もデータが入っていないため、ホストコントローラ22は、最大値パラメータkに、全領域書き込み時間[n]の値をそのまま格納する(S125)。
If the evaluation count parameter n is 1 (YES in S123), since no data is stored in the maximum all-area write time parameter k, the
評価回数パラメータnが1以外の場合(S123のNO)、ホストコントローラ22は、最大値パラメータkの値と全領域書き込み時間[n]の値を比較する(S124)。全領域書き込み時間[n]の値の方が大きい場合(S124のYES)、ホストコントローラ22は、最大値パラメータkを全領域書き込み時間[n]の値に更新する(S125)。全領域書き込み時間[n]の値の方が大きくない場合(S124のNO)、ステップS125の処理がスキップされる。図7に戻る。
If the evaluation count parameter n is other than 1 (NO in S123), the
評価回数パラメータnが5未満の場合(S13のYES)、ホストコントローラ22は、評価回数パラメータnを1カウントアップする(S14)。ステップS11に遷移する。
If the evaluation count parameter n is less than 5 (YES in S13), the
評価回数パラメータnが5に到達した場合(S13のNO)、ホストコントローラ22は、5回のフォワードアクセスの実施により得られた、フォワード方向のコマンド応答時間の最大値mと全領域書き込み時間の最大値kをデータベース30へ記録する(S15)。全領域書き込み時間の最大値kを、単位転送量あたりのアクセス時間に換算した値が、フォワードアクセスの書き込み処理時間となる。
When the evaluation count parameter n reaches 5 (NO in S13), the
5回のフォワードアクセスを実施するのは、内部キャッシュとして使用する余剰容量を一杯にするためである。従って、内部キャッシュとして使用する余剰容量が一杯になることを確保することが出来れば、5回に限定される必要はなく、他の設定回数としても良い。 The reason for performing five forward accesses is to fill up the surplus capacity used as the internal cache. Therefore, as long as it is possible to ensure that the surplus capacity used as the internal cache is filled up, it does not have to be limited to five times and another setting may be used.
ホストコントローラ22は、フォワードアクセスの評価回数パラメータnを1にリセットする(S16)。コマンド実行部21は、図5に示したようなアクセスパターンで、リバース方向に連続的にデータをSDメモリカード10に書き込む。ホストコントローラ22は、コマンド応答時間とSDメモリカード10の全領域の書き込み時間を取得する(S17)。SDメモリカード10に書き込むデータはどのようなものでも良く、図6に示したような各アクセスパターンのコマンド応答時間を取得することを目的とする。
The
ホストコントローラ22は、各回のリバースアクセスの評価において、最大となるコマンド応答時間pと全領域書き込み時間qと、アクセス方向切り替え処理時の書き込み時間tを取得するためのデータ処理を実行する(S18)。
The
図9は、リバースアクセスのデータ処理のサブルーチンを示す図である。評価回数パラメータnが1の場合(S180のYES)、コマンド応答時間の最大値パラメータpに何もデータが入っていないため、ホストコントローラ22は、最大値パラメータpに、コマンド応答時間[n]の値をそのまま格納する(S182)。
Figure 9 shows a subroutine for reverse access data processing. If the evaluation count parameter n is 1 (YES in S180), no data is entered in the maximum command response time parameter p, so the
評価回数パラメータnが1以外の場合(S180のNO)、ホストコントローラ22は、最大値パラメータpの値とコマンド応答時間[n]の値を比較する(S181)。コマンド応答時間[n]の値の方が大きい場合(S181のYES)、ホストコントローラ22は、最大値パラメータpをコマンド応答時間[n]の値に更新する(S182)。コマンド応答時間[n]の値の方が大きくない場合(S181のNO)、ステップS182の処理がスキップされる。
If the evaluation count parameter n is other than 1 (NO in S180), the
評価回数パラメータnが1の場合(S183のYES)、全領域書き込み時間の最大値パラメータqに何もデータが入っていないため、ホストコントローラ22は、最大値パラメータqに、全領域書き込み時間[n]の値をそのまま格納する(S187)。
If the evaluation count parameter n is 1 (YES in S183), since no data is stored in the maximum value parameter q of the total area write time, the
評価回数パラメータnが2の場合(S183のNO、S184のYES)、ホストコントローラ22は、最大値パラメータq(全領域書き込み時間[1]の値)から全領域書き込み時間[2]の値を引いて、アクセス方向切り替え処理時の書き込み時間tを算出する(S185)。1回目の全領域書き込み時間にはアクセス方向切り替え処理時の書き込み時間が含まれているが、2回目の全領域書き込み時間には含まれていない。従って、両者の差分を算出することにより、アクセス方向切り替え処理時の書き込み時間を算出することが出来る。評価回数パラメータnが2以外の場合(S184のNO)、ステップS185の処理がスキップされる。
If the evaluation count parameter n is 2 (NO in S183, YES in S184), the
ホストコントローラ22は、最大値パラメータqの値と全領域書き込み時間[n]の値を比較する(S186)。全領域書き込み時間[n]の値の方が大きい場合(S186のYES)、ホストコントローラ22は、最大値パラメータqを全領域書き込み時間[n]の値に更新する(S187)。全領域書き込み時間[n]の値の方が大きくない場合(S186のNO)、ステップS187の処理がスキップされる。図7に戻る。
The
評価回数パラメータnが5未満の場合(S19のYES)、ホストコントローラ22は、評価回数パラメータnを1カウントアップする(S20)。ステップS17に遷移する。リバースアクセスの実施時には、既に5回のフォワードアクセスが実施されているため、内部キャッシュとして使用する余剰容量は一杯になっている。従って、リバースアクセスの実施回数は5回未満としても良い。内部キャッシュとして使用する余剰容量は、不揮発性のNANDフラッシュメモリ11の一部を使用しているため、内部キャッシュとして使用する余剰容量には何らかのデータが消えずに残っている。
If the evaluation count parameter n is less than 5 (YES in S19), the
評価回数パラメータnが5に到達した場合(S19のNO)、ホストコントローラ22は、5回のリバースアクセスの実施により得られた、リバース方向のコマンド応答時間の最大値pと全領域書き込み時間の最大値qをデータベース30へ記録する(S21)。全領域書き込み時間の最大値qを、単位転送量あたりのアクセス時間に換算した値が、リバースアクセスの書き込み処理時間となる。
When the evaluation count parameter n reaches 5 (NO in S19), the
ホストコントローラ22は、アクセス方向切り替え処理時の書き込み時間tをデータベース30へ記録する(S22)。
The
更に、ホストコントローラ22は、SDメモリカード10のランダムアクセス性能として、フォワードアクセスの書き込み処理時間に、リバースアクセスの書き込み処理時間のアクセス方向切り替え処理時の書き込み時間tを加えて、SDメモリカード10の単位転送量あたりの書き込み時間を算出してもよい。
Furthermore, the
更に、ホストコントローラ22は、SDメモリカード10のコマンド応答性能として、フォワード方向の書き込み時のコマンド応答時間の最大値mと、アクセス方向切り替え処理時間を含むリバース方向の書き込み時のコマンド応答時間の最大値pをもとに、SDメモリカード10の最大コマンド応答時間を決定しても良い。
Furthermore, the
SDメモリカード10を使用するシステムの設計者は、書き込み時のシステムのタイムアウトを決定するために、ランダムアクセス性能として、SDメモリカード10の単位転送量あたりの書き込み時間と最大コマンド応答時間を必要とする。最大コマンド応答時間は、全てのアクセスに対するコマンド応答時間の最大値とすれば良い。リバースアクセスの書き込み時のコマンド応答時間には、アクセス方向切り替え処理時間が含まれていても良い。ホストコントローラ22は、フォワード方向の書き込み時のコマンド応答時間の最大値mと、アクセス方向切り替え処理時間を含むリバース方向の書き込み時のコマンド応答時間の最大値pを比較し、大きい方をSDメモリカード10の最大コマンド応答時間として、データベース30へ登録する。
To determine the system timeout during writing, the designer of a system that uses the
図10は、複数のSDメモリカード10の評価データをプロットしたテーブルの一例を示す図である。図10に示すテーブルにはSDメモリカード10の個体ごとに、最大コマンド応答時間、フォワードアクセスの書き込み時間、リバースアクセスの書き込み時間、アクセス方向切り替え処理時間が記録されている。
Figure 10 shows an example of a table that plots evaluation data for multiple
こうした処理時間の評価データの記録によれば、ランダムアクセスする際のデータ転送量と、フォワードアクセス書き込み時間またはリバースアクセス書き込み時間をもとに、各アクセス方向に当該データを書き込むために必要な時間を求めることが出来る。この時間に、さらにアクセス方向を切り替える回数に応じたアクセス方向切り替え処理時間を加えることにより、SDメモリカード10を使用するシステムにおける実使用時のランダムアクセス性能を推測することが出来る。また、この時の最大コマンド応答時間も算出することが出来る。
By recording such evaluation data of processing time, it is possible to determine the time required to write the data in each access direction based on the amount of data transferred during random access and the forward access write time or reverse access write time. By adding to this time the access direction switching processing time according to the number of times the access direction is switched, it is possible to estimate the random access performance during actual use in a system that uses the
本実施形態によれば、内部キャッシュの余剰容量を一杯にした状態における各アクセス処理時間を取得する。コントローラ12及びNANDフラッシュメモリ11の構成が同じとなる同型のSDメモリカード10では、内部キャッシュの余剰容量を一杯にするとコントローラ12の内部処理は同様の動作となることから、最大コマンド応答時間、全領域の書き込みに要する時間の最大値は同様の結果を示し、これらから求められるランダムアクセス性能も同様となる。本実施形態では同型のSDメモリカード10の各種アクセス性能をより正確に推測することが出来る。
According to this embodiment, the access processing time is obtained when the excess capacity of the internal cache is full. In
従来、SDメモリカード10のランダムアクセス性能を評価する際には、疑似乱数などに基づく不特定のアドレスに不特定なデータ容量で書き込み処理を複数回行い、その処理時間の合計を評価結果に用いていた。本実施形態によれば、従来のような不特定な手法を用いず、さらに各アクセスパターンによる評価を指定回数続けて実施することでばらつきの少ない各アクセスにおける処理時間を取得でき、また処理時間を記録することにより、負荷がかかった状態でのSDメモリカード10に固有の性能を明確にできる。
Conventionally, when evaluating the random access performance of the
以上説明したように本実施形態によれば、SDメモリカード10のアクセス性能を高精度に評価することが出来る。SDメモリカード10を使用するシステムの設計者は、図10に示したような評価データに基づいて、システムの処理のタイムアウト時間の閾値設定を適切に決定することが出来る。また、タイムアウト時間の閾値が既に決定されているシステムにおいては、スペックに十分に余裕があるSDメモリカード10を選択することが出来る。
As described above, according to this embodiment, the access performance of the
本実施形態に係るSDメモリカード10の性能評価は、車載機器(例えば、ドライブレコーダ)等の信頼性が要求される用途での事前評価に有効である。要求される書き込み速度を満たしているSDメモリカード10を的確に抽出することが出来る。また、本実施形態に係るSDメモリカード10の性能評価は、中古流通している素性が明らかでないSDメモリカード10の性能評価にも利用可能である。
The performance evaluation of the
以上、本発明を実施形態をもとに説明した。この実施形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。また本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で置き換えたものもまた本発明の態様として有効である。 The present invention has been described above based on an embodiment. This embodiment is merely an example, and those skilled in the art will understand that various modifications are possible in the combination of each component and each processing process, and that such modifications are also within the scope of the present invention. Furthermore, substitutions of the expression of the present invention between a method, an apparatus, a system, a recording medium, a computer program, etc. are also valid aspects of the present invention.
上記実施形態では、n回のフォワードアクセスを実施した後、n回のリバースアクセスを実施した。この点、先にn回のリバースアクセスを実施し、その後に、n回のフォワードアクセスを実施してもよい。その場合、フォワードアクセスの1回目の全領域書き込み時間に、アクセス方向切り替え処理時の書き込み時間が含まれることになる。フォワードアクセスの1回目の全領域書き込み時間と、2回目の全領域書き込み時間との差分から、アクセス方向切り替え処理時の書き込み時間を算出する。 In the above embodiment, n forward accesses were performed, and then n reverse accesses were performed. In this regard, n reverse accesses may be performed first, and then n forward accesses may be performed. In this case, the write time during the access direction switching process is included in the full area write time of the first forward access. The write time during the access direction switching process is calculated from the difference between the full area write time of the first forward access and the full area write time of the second forward access.
上記実施形態では、SDメモリカード10の性能評価を例に説明した。この点、SDメモリカード10は、内部に揮発性のキャッシュメモリを含まない不揮発性半導体メモリの一例である。内部に揮発性のキャッシュメモリを含まない、他の不揮発性半導体メモリの性能評価にも適用可能である。例えば、eMMC、USBメモリの性能評価にも適用可能である。
In the above embodiment, the performance evaluation of the
10 SDメモリカード、 11 NANDフラッシュメモリ、 12 コントローラ、 20 性能評価装置、 21 コマンド実行部、 22 ホストコントローラ、 30 データベース。 10 SD memory card, 11 NAND flash memory, 12 controller, 20 performance evaluation device, 21 command execution unit, 22 host controller, 30 database.
Claims (3)
前記不揮発性半導体メモリの全領域に、アドレス降順でアクセスするアクセスパターンでデータの書き込みを指示する降順の書き込みコマンドを発行し、その前または後に前記不揮発性半導体の全領域に、アドレス昇順でアクセスするアクセスパターンでデータの書き込みを指示する昇順の書き込みコマンドを発行するコマンド実行部と、
前記書き込みコマンドに対するコマンド応答時間を取得し、前記コマンド応答時間をもとに、前記不揮発性半導体メモリの性能評価データを生成するホストコントローラと、を備え、
前記コマンド実行部は、前記降順の書き込みコマンドを第1の設定回数以上発行し、前記昇順の書き込みコマンドを第2の設定回数以上発行し、
前記ホストコントローラは、
前記昇順の書き込みコマンドから前記降順の書き込みコマンドに切り替えられた後の初回の前記降順の書き込みコマンドに対するコマンド応答時間と次の前記降順の書き込みコマンドに対するコマンド応答時間との差分をアクセス方向の切り替え処理時間として抽出し、
または、
前記降順の書き込みコマンドから前記昇順の書き込みコマンドに切り替えられた後の初回の前記昇順の書き込みコマンドに対するコマンド応答時間と次の前記昇順の書き込みコマンドに対するコマンド応答時間との差分をアクセス方向の切り替え処理時間として抽出し、
抽出したアクセス方向の切り替え処理時間にさらに基づく前記不揮発性半導体メモリの性能評価データを生成する、
不揮発性半導体メモリの性能評価装置。 A performance evaluation device for a non-volatile semiconductor memory including a NAND flash memory and a controller,
a command execution unit that issues a write command in descending order to instruct writing of data in an access pattern that accesses all areas of the nonvolatile semiconductor memory in descending address order, and issues an ascending order write command before or after that to instruct writing of data in an access pattern that accesses all areas of the nonvolatile semiconductor memory in ascending address order;
a host controller that acquires a command response time to the write command and generates performance evaluation data of the nonvolatile semiconductor memory based on the command response time ;
the command execution unit issues the write command in the descending order a first set number of times or more and issues the write command in the ascending order a second set number of times or more;
The host controller
extracting, as an access direction switching processing time, a difference between a command response time for a first write command in the descending order after switching from the ascending order write command to the descending order write command and a command response time for a next write command in the descending order;
or
extracting, as an access direction switching processing time, a difference between a command response time for a first ascending order write command after switching from the descending order write command to the ascending order write command and a command response time for a next ascending order write command;
generating performance evaluation data of the nonvolatile semiconductor memory further based on the extracted access direction switching processing time;
A performance evaluation device for non-volatile semiconductor memories.
請求項1に記載の不揮発性半導体メモリの性能評価装置。 the host controller estimates a maximum command response time of the non-volatile semiconductor memory by adding up a maximum command response time for the write commands in the ascending order and a maximum command response time for the write commands in the descending order, the maximum command response time including the access direction switching processing time;
2. The performance evaluation apparatus for a nonvolatile semiconductor memory according to claim 1 .
請求項1または2に記載の不揮発性半導体メモリの性能評価装置。 The non-volatile semiconductor memory is an SD memory card.
3. A performance evaluation apparatus for a nonvolatile semiconductor memory according to claim 1 .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021106405A JP7687084B2 (en) | 2021-06-28 | 2021-06-28 | Non-volatile semiconductor memory performance evaluation device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021106405A JP7687084B2 (en) | 2021-06-28 | 2021-06-28 | Non-volatile semiconductor memory performance evaluation device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2023004595A JP2023004595A (en) | 2023-01-17 |
| JP7687084B2 true JP7687084B2 (en) | 2025-06-03 |
Family
ID=85101096
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021106405A Active JP7687084B2 (en) | 2021-06-28 | 2021-06-28 | Non-volatile semiconductor memory performance evaluation device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7687084B2 (en) |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005250619A (en) | 2004-03-02 | 2005-09-15 | Matsushita Electric Ind Co Ltd | Nonvolatile memory device and rewriting method thereof |
| JP2010147970A (en) | 2008-12-22 | 2010-07-01 | Hitachi Ltd | Data recording apparatus, data recording method and recording medium |
| JP2013242716A (en) | 2012-05-21 | 2013-12-05 | Sharp Corp | Access control device and access control method |
| JP2016157228A (en) | 2015-02-24 | 2016-09-01 | 株式会社Jvcケンウッド | Evaluation method, evaluation system, and evaluation program for nonvolatile semiconductor memory device |
| JP2017059110A (en) | 2015-09-18 | 2017-03-23 | キヤノン株式会社 | Nonvolatile memory device control apparatus, image forming apparatus having the same, memory apparatus, control method, and program |
| JP2019159747A (en) | 2018-03-13 | 2019-09-19 | 株式会社Jvcケンウッド | Non-volatile semiconductor memory device life prediction device, life prediction method, and life prediction program |
| JP2020201546A (en) | 2019-06-06 | 2020-12-17 | 株式会社Jvcケンウッド | Performance evaluation device, performance evaluation method, and performance evaluation program for nonvolatile semiconductor storage device |
-
2021
- 2021-06-28 JP JP2021106405A patent/JP7687084B2/en active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005250619A (en) | 2004-03-02 | 2005-09-15 | Matsushita Electric Ind Co Ltd | Nonvolatile memory device and rewriting method thereof |
| JP2010147970A (en) | 2008-12-22 | 2010-07-01 | Hitachi Ltd | Data recording apparatus, data recording method and recording medium |
| JP2013242716A (en) | 2012-05-21 | 2013-12-05 | Sharp Corp | Access control device and access control method |
| JP2016157228A (en) | 2015-02-24 | 2016-09-01 | 株式会社Jvcケンウッド | Evaluation method, evaluation system, and evaluation program for nonvolatile semiconductor memory device |
| JP2017059110A (en) | 2015-09-18 | 2017-03-23 | キヤノン株式会社 | Nonvolatile memory device control apparatus, image forming apparatus having the same, memory apparatus, control method, and program |
| JP2019159747A (en) | 2018-03-13 | 2019-09-19 | 株式会社Jvcケンウッド | Non-volatile semiconductor memory device life prediction device, life prediction method, and life prediction program |
| JP2020201546A (en) | 2019-06-06 | 2020-12-17 | 株式会社Jvcケンウッド | Performance evaluation device, performance evaluation method, and performance evaluation program for nonvolatile semiconductor storage device |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2023004595A (en) | 2023-01-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10714186B2 (en) | Method and apparatus for dynamically determining start program voltages for a memory device | |
| US10628257B2 (en) | Memory management method and storage controller | |
| US10268407B1 (en) | Method and apparatus for specifying read voltage offsets for a read command | |
| US9298534B2 (en) | Memory system and constructing method of logical block | |
| CN109815160B (en) | Last written page search | |
| US20110225346A1 (en) | Garbage collection in a storage device | |
| US20190258729A1 (en) | Key-value storage device and operating method thereof | |
| US9881682B1 (en) | Fine grained data retention monitoring in solid state drives | |
| US20100023677A1 (en) | Solid state storage system that evenly allocates data writing/erasing operations among blocks and method of controlling the same | |
| KR20210147696A (en) | Data storage device and operating method thereof | |
| US11036411B2 (en) | Yield improvement through block budget optimization by using a transient pool of multi-level blocks | |
| JP2023033158A (en) | Data storage device for refreshing data and operating method thereof | |
| KR20190061942A (en) | Data storage device and operating method thereof | |
| US12222800B2 (en) | Write and retire pages in QLC NAND blocks | |
| US10997068B1 (en) | Rapid SSD preconditioning | |
| US12164777B2 (en) | Controlling memory storage based on pattern data | |
| JP7687084B2 (en) | Non-volatile semiconductor memory performance evaluation device | |
| CN118550759B (en) | Flash memory reliability optimization method and related device based on data internal migration | |
| WO2025119061A1 (en) | Data writing method and apparatus for resource blocks, device and storage medium | |
| KR20230023477A (en) | Memory system and operating method thereof | |
| US10921988B2 (en) | System and method for discovering parallelism of memory devices | |
| US20230147773A1 (en) | Storage device and operating method | |
| CN120266092A (en) | Memory controller, memory system, method and storage medium for performing garbage collection | |
| US12346588B2 (en) | Apparatus with memory cell calibration mechanism and methods for operating the same | |
| US20250348423A1 (en) | Memory devices, operation methods thereof, and memory systems |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240329 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20250205 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250225 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250408 |
|
| 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: 20250422 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250505 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7687084 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |