JP2022190627A - メモリ性能測定シミュレーション装置及びメモリ性能測定シミュレーション用プログラム - Google Patents

メモリ性能測定シミュレーション装置及びメモリ性能測定シミュレーション用プログラム Download PDF

Info

Publication number
JP2022190627A
JP2022190627A JP2021099056A JP2021099056A JP2022190627A JP 2022190627 A JP2022190627 A JP 2022190627A JP 2021099056 A JP2021099056 A JP 2021099056A JP 2021099056 A JP2021099056 A JP 2021099056A JP 2022190627 A JP2022190627 A JP 2022190627A
Authority
JP
Japan
Prior art keywords
time
read
simulation
memory
command
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
JP2021099056A
Other languages
English (en)
Other versions
JP7295446B2 (ja
Inventor
和也 蓮見
Kazuya Hasumi
嘉治 居村
Yoshiharu Imura
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 Information Systems Japan Corp
Original Assignee
Toshiba Information Systems Japan Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Information Systems Japan Corp filed Critical Toshiba Information Systems Japan Corp
Priority to JP2021099056A priority Critical patent/JP7295446B2/ja
Publication of JP2022190627A publication Critical patent/JP2022190627A/ja
Application granted granted Critical
Publication of JP7295446B2 publication Critical patent/JP7295446B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】UFSの性能を的確に求めて出力する。【解決手段】ホストコンピュータから発したコマンドによって、メモリチップに記憶されているデータを読み出し、完了するまでのメモリにおける処理を模擬するシミュレーション手段110を有し、前記ホストコンピュータがコマンドの発行処理に要する時間であるコマンド発行時間と、前記コマンドの解析結果に基づき前記アクセス先へアクセスしデータを読み出し前記ホストコンピュータへ出力するまでの処理の時間である読み出し時間とが含まれるスペックパラメータが与えられ、前記シミュレーション手段により前記メモリチップに記憶されているデータが読み出し完了となるまでのシミュレーション処理を監視し、前記スペックパラメータに含まれる各対応時間に基づきデータ読み出しまでのトータル時間として出力するトータル時間計算手段120を備える。【選択図】図2

Description

この発明は、メモリ性能測定シミュレーション装置及びメモリ性能測定シミュレーション用プログラムに関するものである。
従来のメモリの性能に関する見積りは机上計算が主流であった。しかしながら、過去製品のデータを基に計算をするため、新しいFWの性能見積りとしては精度に難があった。また、過去製品の実機を使って見積りを行ったり、RTL(register transfer level)シミュレータを使って見積りを行ったりすることも検討した。しかし、前者はHWが変更になった場合には参考にならない値となり、後者はHW部分の変更に対応するためにはRTLに精通した人の協力が不可欠であり、多大なコスト(RTL修正工数や膨大な実行時間)がかかることから見積りには適さないという問題があった。
特許文献1には、ホストに対するゲストによる、プログラムの命令読み込みにキャッシュを用いるときのプログラムの実行のシミュレーションに関して記述されている。
特許文献2には、要求性能の計測を行う要求性能計測部を備え、計測した要求性能に基づいて並列動作要素のリード/ライトの同時実行数を変化させるメモリシステムが開示されている。
特許文献3には、複数のシミュレータを用いて性能測定し、重みに応じて処理量が分配されるよう対象処理を各シミュレータに割り当てることが記載されている。
国際公開第2016/189725号公報 特開2016-99728号公報 国際公開第2018/158944号公報
ホストコンピュータから発したコマンドによって、メモリチップに記憶されているデータを読み出し、データの読み出しが完了するまでの時間などのメモリの性能を的確に求めて出力するメモリ性能測定シミュレーション装置を提供することを目的とする。
本実施形態に係るメモリ性能測定シミュレーション装置は、ホストコンピュータから発したコマンドによって、メモリチップに記憶されているデータを読み出し、完了するまでのメモリにおける処理を模擬するシミュレーション手段を有し、前記読み出し完了までに要する時間を求めるメモリ性能測定シミュレーション装置において、前記ホストコンピュータがコマンドの発行処理に要する時間であるコマンド発行時間と、このコマンドを受けたコントローラがコマンドを解析処理する時間であるコマンド解析時間と、コマンドに基づきメモリのアクセス先を特定する処理による特定までの時間であるアクセス先特定時間と、前記コマンドの解析結果に基づき前記アクセス先へアクセスしデータを読み出し前記ホストコンピュータへ出力処理するまでの時間である読み出し時間とが含まれるスペックパラメータが与えられ、前記シミュレーション手段により前記メモリチップに記憶されているデータが読み出し完了となるまでのシミュレーション処理を監視し、監視したシミュレーション処理について、前記スペックパラメータに基づき各処理に対応する時間(コマンドの発行処理に要する時間、コマンドを解析処理する時間、アクセス先を特定する処理による特定までの時間、前記ホストコンピュータへ出力するまでの処理の時間)を得て足し合わせてデータ読み出しまでのトータル時間として出力するトータル時間計算手段を備えることを特徴とする。
本実施形態に係るメモリ性能測定シミュレーション用プログラムは、コンピュータを、ホストコンピュータから発したコマンドによって、メモリチップに記憶されているデータを読み出し、完了するまでのメモリにおける処理を模擬するシミュレーション手段、前記ホストコンピュータがコマンドの発行処理に要する時間であるコマンド発行時間と、このコマンドを受けたコントローラがコマンドを解析処理する時間であるコマンド解析時間と、コマンドに基づきメモリのアクセス先を特定する処理による特定までの時間であるアクセス先特定時間と、前記コマンドの解析結果に基づき前記アクセス先へアクセスしデータを読み出し前記ホストコンピュータへ出力するまでの処理の時間である読み出し時間とが含まれるスペックパラメータが与えられ、前記シミュレーション手段により前記メモリチップに記憶されているデータが読み出し完了となるまでのシミュレーション処理を監視し、監視したシミュレーション処理について、前記スペックパラメータに基づき各処理に対応する時間(コマンドの発行処理に要する時間、コマンドを解析処理する時間、アクセス先を特定する処理による特定までの時間、前記ホストコンピュータへ出力するまでの処理の時間)を得て足し合わせてデータ読み出しまでのトータル時間として出力するトータル時間計算手段、として機能させ、前記コンピュータを前記トータル時間計算手段として、前記読み出し完了までに要する時間を求めるように機能させることを特徴とする。
UFS-NAND製品の要部構成を示すブロック図。 本実施形態に係るメモリ性能測定シミュレーション装置を実現するハードウエアのブロック図。 本実施形態のメモリ性能測定シミュレーション装置が実現されるハードウエア構成を示す図。 本実施形態において設定されるスペックパラメータの一例を示す表形式の図。 メモリセルと、各メモリセルへ延びるビット線BL、ワード線WLの関係を示した図。 読み出し動作時にワード線WLへ印加される電圧を示す図。 メモリセルの分布としきい値電圧の関係を示す図。 本実施形態に係るシミュレーション装置の動作を示すフローチャート。 本実施形態に係るシミュレーション装置のシミュレーションの際におけるメモリ読み出し動作を時系列で示した図。 複数のバス速度情報のときの単位時間当たりの読み出しデータ量(MiB/s)を求めた図。 本実施形態による見積り精度と、机上計算による見積り精度と、過去の製品の実機による見積り精度と、RTLによる見積り精度を、過去の製品の実機による見積り精度を100%としてグラフ化して示した図。
以下添付図面を参照して、本発明の実施形態に係るメモリ性能測定シミュレーション装置及びメモリ性能測定シミュレーション用プログラムの実施形態を説明する。各図において同一の構成要素には同一の符号を付して重複する説明を省略する。
実施形態に係るメモリ性能測定シミュレーション装置は、スマートフォン、タブレット端末、車載機器などに用いられるフラッシュメモリの動作性能測定をシミュレーションするものであり、より詳細にはUFS(Universal Flash Storage)-NAND製品の動作性能測定をシミュレーションするものである。
図1は、上記スマートフォン等を実現するUFS-NAND製品の要部構成を示すブロック図である。上記スマートフォン等は、図1に示されるようにUFS-NAND部20と、ホスト装置10とが接続された構成である。ホスト装置10は、スマートフォン等としての機能を実現する本体側CPUやディスプレイ装置などを備える。UFS-NAND部20はコントローラ21を備え、コントローラ21は2チャネルを有している。勿論、このチャネル数は例示に過ぎず、3チャネル以上を有していても良い。各チャネルには、2つずつのメモリチップ(11、12と、13、14)が接続されている。コントローラ21は、ファームウエア22とハードウエア23とにより構成され、メモリチップ11~14に対するアクセス制御を行う。
図2は、本実施形態に係るメモリ性能測定シミュレーション装置を実現するハードウエアのブロック図である。本実施形態に係るメモリ性能測定シミュレーション装置は、CPU100を中心としたコンピュータにより実現される。CPU100には、バス101を介してRAM102、ROM103、入出力部104、表示装置105が接続されている。
ROM103には、UFS-NAND部20からのデータ読み出し処理性能測定をシミュレーションするためのプログラム(メモリ性能測定シミュレーション用プログラム)と、本実施形態のシミュレーション装置により後に説明するトータル時間等を求めるために必要なスペックパラメータが記憶されている。CPU100は、上記メモリ性能測定シミュレーション用プログラムによって、シミュレーション手段110、トータル時間計算手段120、読み出し時間シミュレーション手段130を実現する。
シミュレーション手段110は、ホストコンピュータであるホスト装置10から発したコマンドによって、メモリチップに記憶されているデータを読み出し、完了するまでのメモリにおける処理を模擬するものである。トータル時間計算手段120は、上記ホストコンピュータがコマンドの発行処理に要する時間であるコマンド発行時間と、このコマンドを受けたコントローラがコマンドを解析処理する時間であるコマンド解析時間と、コマンドに基づきメモリのアクセス先を特定する処理による特定までの時間であるアクセス先特定時間と、上記コマンドの解析結果に基づき上記アクセス先へアクセスしデータを読み出し上記ホストコンピュータへ出力するまでの処理の時間である読み出し時間とが含まれるスペックパラメータが与えられ、上記シミュレーション手段110により上記メモリチップに記憶されているデータが読み出し完了となるまでのシミュレーション処理を監視し、監視したシミュレーション処理について、上記スペックパラメータに基づき各処理に対応する時間を得て足し合わせてデータ読み出しまでのトータル時間として出力するものである。トータル時間計算手段120は、上記メモリチップのバスに関し、複数の速度情報を保持しており、得られた上記トータル時間と速度情報に基づき単位時間当たりの読み出しデータ量を求めて出力することができる。
読み出し時間シミュレーション手段130は、ランダムリードの場合にrand関数を用いてランダムなアドレスを上記コントローラが作り出し出力して、読み出しシミュレーションを行うものである。上記トータル時間計算手段120は、上記読み出し時間シミュレーション手段130により得られた時間を読み出し時間として用いることができる。
RAM102は、CPU100が動作するときに必要なデータや処理途中のデータ等を一次記憶などするために用いられる。入出力部104は、キーボードやマウスなどの入力装置と、プリンタなどの出力装置により構成される。表示装置105は、LEDやLCD等のディスプレイ装置である。
図3は、本実施形態のメモリ性能測定シミュレーション装置が実現されるハードウエア構成を示す。このハードウエア構成は、図1のスマートフォン等の構成を示すブロック図に対応しており、UFS-NAND部20に、メモリコントローラ201、I/Oインタフェース202、バッファ203、アドレス変換テーブル204、電圧出力部205、ドライバ206-1~206-4、センスアンプ207-1~207-4、フラッシュメモリ208-1~208-4が設けられている。I/Oインタフェース202には、ホスト装置10が接続されている。
上記UFS-NAND部20の各部は、設計された通りの速度やデータサイズなどのスペックパラメータで動作するものして、スペックパラメータが設定され、シミュレーションが行われる。図4は、本実施形態において設定されるスペックパラメータの一例を示す表形式の図である。これを表の上側から説明すると、「CHUNK_SIZE」は、ホストコマンドで命令されるリードデータサイズであり、256が例示されている。「QUE_DEPTH」は、ホストコマンドの最大数であり、8が例示されている。「SEQ_MODE」は、シーケンスリードかランダムリードかの設定情報であり、1でシーケンスリードを指定でき、0でランダムリードを指定できる。「NBUF_SIZE」は、チャネル毎のバッファサイズであり、ここでは4KB単位で、96/4が例示されている。「ENTRY_MAX」は、チャネル毎の最大エントリ数であり、16が例示されいている。「SETUP_MAX」は、チャネル毎の同時発行できるセットアップ数であり、32が例示されている。
「SW_CHG_DOUT」は、コマンドの発行順でなく準備が整ったデータを読み出す許可情報であり、1で許可、0で不許可を示す。「NUM_OF_CH」は、NANDメモリのチャネル数を示すもので、2が例示されている。「NUM_OF_CH」は、チャネル毎のNANDチップ数を示すもので、2が例示されている。「TCMD_TX」は、ホストのコマンド発行時間(ns)を示し、1000が例示されている。「TDOUT_4K」は、4KBのデータの出力時間(ns)であり、6120が例示されている。「TB_CACHE」は、キャッシュセットアップ時間、ターミネイトのTDCBSYR時間(ns)を示し、6000が例示されている。「TR_UPP」は、8値メモリにおけるアッパーページの読み出し時間(ns)を示し、60000が例示されている。「TR_MID」は、8値メモリにおけるミドルページの読み出し時間(ns)を示し、60000が例示されている。「TR_LOW」は、8値メモリにおけるロウページの読み出し時間(ns)を示し、60000が例示されている。「MEASURE_MSEC」は、計測時間(ms)を示し、100が例示されている。「MCPU_CONF」は、ホストコマンドを解析処理するために要する時間(ns)と、次いでアドレス変換テーブル204に基づいて読み出そうとするアクセス先を特定するまでに要する時間(ns)であり、前者としては5000が例示されており、後者としては3000が設定されている。
本実施形態でシミュレーションされるメモリは図1を用いて述べた通り、2チャネルに2ずつ接続されたメモリチップ11~14のNANDメモリであり、このNANDメモリのメモリセルが8値のトリプルレベルセルとなっている。図5は、メモリセルと、センスアンプ207-1~207-4から各メモリセルへ延びるビット線BL、ドライバ206-1~206-4から各メモリセルへ延びるワード線WLの関係を示した図である。図6は、読み出し動作時にワード線WLへ印加される電圧を示している。リード時には、センスアンプ207-1~207-4は、ビット線BLに電源電位VDDをプリチャージし、ドライバ206-1~206-4は、選択されたワード線WLにデータ値(“111”、“110”、“100”、“000”、“010”、“011”、“001”、“101”)毎の分布を特定するための複数種類の判定電位(リード電圧(VCGR1~VCGR8))を順次印加する。なお、ドライバ206-1~206-4は、非選択のワード線WLには転送電位(Vread)を印加し、非選択のワード線WLに属するメモリセルを導通状態にしておく。センスアンプ207-1~207-4は、プリチャージにより蓄えられた電荷がどのリード電圧が印加されたときにソース線へ出力されたかを検知して、対象のメモリセルに記憶されているデータ値を判定する。
図7は、メモリセルの分布としきい値電圧の関係を示す図である。この図7に示すように、図7の最も左の分布Lと分布Aとの間にリード電圧V1が設定される。分布Aと分布Bとの間にリード電圧V2が設定される。分布Bと分布Cとの間にリード電圧V3が設定される。分布Cと分布Dとの間にリード電圧V4が設定される。分布Dと分布Eとの間にリード電圧V5が設定される。分布Eと分布Fとの間にリード電圧V6が設定される。分布Fと分布Gとの間にリード電圧V7が設定される。
メモリセルからのリード時の動作として、例えば、データ値が“001”である分布Aのメモリセルに関しては次のようである。センスアンプ207-1~207-4がビット線BLにVDD[V]、ドライバ206-1~206-4が選択ワードWLに読み出し電圧VCGR(V1)を印加すると、メモリセルがオフ状態、ワードWLに読み出し電圧VCGR(V2)を印加することでオン状態となる。このようにデータ値が“001”のアッパーページ(V2)、ミドルページ(V12(V1とV2の中間の電圧値))、ローワーページ(V1)について、スペックパラメータであるそれぞれの読み出し時間をTR_UPP=60000、TR_MID=60000、TR_LOW=60000に設定する。本来、Upper、Middle、Lowerで読み出し時間は異なる。本実施形態では、上記読み出し時間シミュレーション手段130は、アッパーページ、ミドルページ、ロウページの各読み出し時間のスペックパラメータについて、これらの平均値を上記アッパーページ、上記ミドルページ、上記ロウページ、の読み出し時間のスペックパラメータとして用いることができる。
図8は、本実施形態に係るシミュレーション装置の動作を示すフローチャートである。CPU100は、ホストコンピュータであるホスト装置10として、コマンドとデータ読み出し先アドレス(論理アドレス)の発行を行う(S11)。このとき、スペックパラメータとして、コマンド発行期間(図4、TCMD_TX=1000(ns))、CHUNK_SIZE=256、QUE_DEPTH=8によって設定されている、読み出しコマンドと読み出し先アドレスとをNANDフラッシュメモリ(I/Oインタフェース202)へ出力する。また、コマンドには、SEQ_MODE=1、0のいずれかでシーケンスリード動作又はランダムリード動作を選択可能とする情報がセットされる。
また、スペックパラメータとして、チャネル毎のバッファサイズのNBUF_SIZE=96/4、チャネル毎の最大コマンド発行数のENTRY_MAX=16、NANDへの最大コマンド発行数のSETUP_MAX=32、NANDからバッファにリードするのにコマンドの順番通りに出すのではなく、準備が整ったデータを順次読み出すのを許可するSW_CHG_DOUT(1、0(1:有効)のいずれか)についても設定されており、CPU100は、これらのスペックパラメータについても従ったシミュレーションを行う。
図9は、シミュレーションの際における動作を時系列で示した図である。ステップS11の段階では、CPU100がホスト装置10として、CMDとして記載されているコマンドとアドレスを発行している。CPU100は、トータル時間計算手段120としてこの処理を監視し、処理に対応する時間を得て、後に説明するように足し合わせてデータ読み出しまでのトータル時間として出力する。
ステップS11の次に、CPU100は、コマンドにランダムリードの実行が設定されているか否かを検出し(S12)、ランダムリードの実行が設定されていなければコントローラ21のファームウエア22として、コマンドの解析とアクセス先の特定を行う(S13)。即ち、ホストコンピュータであるホスト装置10からコマンドとアドレスを受け取り、CPU100は、例えば先頭コマンドを解析し、次いでアドレス変換テーブル204のデータに基づいて読み出そうとするアクセス先を特定する。図9においては、ファームウエアFWの欄に、解析結果R1、R2、・・・と、NANDアクセス先AD1、AD2、・・・が並ぶことになる。この解析とアクセス先特定までに要する時間を、5000+3000[ns]と設定した(図4のMCPU_CONF)。CPU100は、ここの処理についてもトータル時間計算手段120としてこの処理を監視し、処理に対応する時間を得て、後に説明するように足し合わせてデータ読み出しまでのトータル時間として出力する。
上記のようにファームウエア22として、コマンドの解析とアクセス先の特定を行うステップS13の処理が終了すると、順次にNAND制御(データ読み出しとデータ転送)に移行する(S14)。即ち、シーケンシャルに与えられる物理アドレスに応じて、データの読み出し動作が実行される。より具体的には、センスアンプ207-1~207-4とドライバ206-1~206-4を用いて、ビット線BL及びワード線WLへの所定電位の印加を行って、センスアンプ207-1~207-4からバッファ203へのデータ読み出しが行われる。図9においては、ハードウエアHWの欄に、NAND制御結果のメモリアクセスACCE、・・・と表わされる処理が進行し、その下欄にデータ読み出し及びデータ転送DR、・・・と表わされる処理が並ぶことになる。CPU100は、この処理についてもトータル時間計算手段120としてこの処理を監視し、処理に対応する時間を得て、後に説明するように足し合わせてデータ読み出しまでのトータル時間として出力する。
ステップS14が終了すると、ホストコンピュータであるホスト装置10へデータが出力される(S15)。図9においては、ハードウエアHWの欄に、ホスト装置へのデータ出力D11、D12、・・・、D44と表わされるデータ列が表示される。D44は最後に出力されるデータを示す。CPU100は、ここの処理についてもトータル時間計算手段120としてこの処理を監視し、処理に対応する時間を得て、後に説明するように足し合わせてデータ読み出しまでのトータル時間として出力する。ステップS15の次に、CPU100はトータル時間計算手段120として、上記監視により得られている各処理に対応する時間の全てを用い、ホストコンピュータであるホスト装置10からコマンドが発せられてからメモリチップに記憶されているデータを読み出し完了までの時間を足し合わせてデータ読み出しまでのトータル時間として出力する(S16)。即ち、図9のトータル時間total-Tが出力される。
図10は、複数の各バス速度情報のときの単位時間当たりの読み出しデータ量(MiB/s)を求めた図(グラフ)である。シーケンスリードの場合の本実施形態では、トータル時間計算手段120は、上記メモリチップのバスに関し、複数の速度情報を保持している。例えば、図10に示されるように、550、600、・・・、950(Mbps)を備えている。本実施形態では、トータル時間計算手段120は、得られた上記トータル時間total-Tと上記速度情報に基づき単位時間当たりの読み出しデータ量を求めて出力するようにしても良い。
上記の図4に示したスペックパラメータを用いて実現されたtotal-Tを、図10においてはNAND処理時間と称し、40μsとする。図4とは別の2通りのスペックパラメータ(図示せず)を用いてシミュレーションされたtotal-TであるNAND処理時間が、50μsと60μsのNANDが設計されており、上記速度情報を用いて、それぞれのバス速度情報のときの単位時間当たりの読み出しデータ量(MiB/s)を求める。このように2チャネルで1チャネル当り2チャネルのNANDをシミュレーションした結果を図(グラフ)を図10(A)に示す。
図10(B)は、2チャネルを有し、1チャネル当たり4チップが接続されているNANDについて図示しないスペックパラメータを用いてシミュレーションを行った結果を示し、図10(C)は、4チャネルを有し、1チャネル当たり4チップが接続されているNANDについて図示しないスペックパラメータを用いてシミュレーションを行った結果を示す。目標性能を2400(MiB/s)とした場合、コストパフォーマンスを考慮して、図10(A)に示すように、2チャネルを有し、1チャネル当たり2チップが接続されているNANDであって、NAND処理時間が40μs、バス速度が800Mbpsのものが最適であると結論できた。
図8のフローチャートにおけるステップS12において、ランダムリードが設定されていることが検出されると、ステップS21のランダムリード処理へ進む。ランダムリード処理に入ると、ランダムなアドレスのデータを読み出すための準備が行われることになる。
本実施形態では、以下に詳述するステップS21のランダムリード処理において、CPU100は、コントローラ21のファームウエア22として、このランダムリード動作をシミュレートプログラムで実現する際に、rand関数を用いて読み出し動作を実行している。即ち、CPU100がホスト装置10としてランダムリードするときに発行するアドレスをランダムなアドレスとするために、rand関数を用いる。rand関数は、ランダムな数字を返す(発生する)公知の関数である。CPU100は、コントローラ21のファームウエア22として、係るrand関数を用いて、rand関数により返された(発生された)数値をアドレスとして配置することにより、ランダムなアドレスの配置を得て(S21)、ランダムリードを実行する。即ち、Rand関数はランダムな値(アドレス)を返す一方、ランダムリードはランダムなアドレスを用いてメモリを読むものであるから、ランダム数値を使用する点で同じであるため、Rand関数を用いることは有効な手段である。また、本実施形態において使用した関数がSrand関数ではなく、Rand関数である理由は、Srand関数は同じシード値では毎回同じパターンで値を返すため、ランダムリードのように毎回異なるアドレスを読む動作のシミュレーションには適していないのに対し、Rand関数は、シードが同じであっても毎回異なる値を返すため、ランダムリードと同じ動作を実現可能なためである。
ステップS21が終了すると、ステップS22へ進み、CPU100はコントローラ21のファームウエア22として、コマンドの解析とアクセス先の特定を行う(S22)。このときには、シーケンシャルリードと同じように、図9においては、ファームウエアFWの欄に、解析結果R1、R2、・・・と、アクセス先AD1、AD2、・・・が並ぶことになる。この解析とアクセス先特定までに要する時間を、5000+3000[ns]と設定した(図4のMCPU_CONF)。
ステップS22の処理が終了すると、ランダム配置されたアドレスに応じたNAND制御(データ読み出しとデータ転送)に移行する(S23)。すなわち、ランダム配置された論理アドレスをアドレス変換テーブルを用いて変換して得られる物理アドレスに応じて、データの読み出し動作が実行される。
既に、各メモリセルへ延びるビット線BL及びワード線WLに関する説明に用いた図5を用い、ランダムリードを実行する際の動作を説明する。ホストコンピュータであるホスト装置10から発行された読み出しコマンドに設定されているSEQ_MODEが0である場合には、“ランダムリード”が選択される。この場合に、読み出そうとするアドレスがメモリ(M1)→メモリ(M2)→メモリ(M3)の順に発行されていたものとすると、コントローラ21のファームウエア22は、ドライバ206-1~206-4とセンスアンプ207-1~207-4を制御して、例えば、メモリ(M2)→メモリ(M3)→メモリ(M1)とランダムな順に読み出し動作を実行する。また、ランダムな読み出しは、フラッシュメモリ208-1~208-4をランダムに読み出すものであってもよい。この場合、読み出そうとするフラッシュメモリに対応してドライバ206-1~206-4の対応の1つを、センスアンプ207-1~207-4の対応の1つを、その都度動作させて読み出し動作を実行する。
このようなランダムリードにおいて、例えば、フラッシュメモリ208-1におけるメモリからの読み出し動作が連続する場合には、読み出し状態のワード線WLと非読み出し状態のワード線WLがその都度切り換るため、ワード線WLの電位が所望の値に達するまでの電圧切換に時間を要する。更に、読み出しが例えば、フラッシュメモリ208-1→フラッシュメモリ208-3と移動した場合に、フラッシュメモリ208-1に対応するドライバ206-1のワード線WL電位をゼロにし、フラッシュメモリ208-3に対応するドライバ206-3のワード線WL電位を上昇させる必要があることから理解できるように、フラッシュメモリ208-1~208-4の切換動作に起因してNandフラッシュが読み出し動作に入るまでの時間が異なる。
しかし、本実施形態に係るメモリ性能測定シミュレーション装置では、アッパーページ、ミドルページ、ロウページの各読み出し時間TR_UPP、TR_MID、TR_LOWのスペックパラメータについて、これらの平均値=60000を上記アッパーページ、上記ミドルページ、上記ロウページ、の読み出し時間のスペックパラメータとして用いるので、この誤差を吸収することができる。このステップS23の処理によって、図9においては、ハードウエアHWの欄に、NAND制御結果のメモリアクセスACCE、・・・と表わされる処理が進行し、その下欄にデータ読み出し及びデータ転送DR、・・・と表わされる処理が並ぶことになる。
ステップS23が終了すると、ホストコンピュータであるホスト装置10へデータが出力される(S15)。図9においては、ハードウエアHWの欄に、ホスト装置へのデータ出力D11、D12、・・・、D44と表わされるデータ列が表示される。ステップS15の次に、CPU100はトータル時間計算手段120としてホストコンピュータであるホスト装置10からコマンドが発せられてからメモリチップに記憶されているデータを読み出し完了までの時間を足し合わせてデータ読み出しまでのトータル時間として出力する(S16)。即ち、図9のトータル時間total-Tが出力される。
このランダムリードの場合においても、シーケンスリードの場合と同様に、トータル時間total-TをNAND処理時間とし、バス速度情報を550、600、・・・、950(Mbps)として、これらに基づき単位時間当たりの読み出しデータ量を求めて出力するようにしても良い。本実施形態では、図4に示したスペックパラメータを用いてランダムリードの場合のシミュレーションを行うように説明したが、実際には、アッパーページ、ミドルページ、ロウページの各読み出し時間TR_UPP、TR_MID、TR_LOWのスペックパラメータがシーケンスリードの場合とは異なるものであっても良く、このようなスペックパラメータを用いてランダムリードの場合の単位時間当たりの読み出しデータ量を求めて出力することができることは言うまでもない。
図11は、本実施形態による見積り精度と、机上計算による見積り精度と、過去の製品の実機による見積り精度と、RTLによる見積り精度を、過去の製品の実機による見積り精度を100%としてグラフ化して示した図である。この図から明らかな通り、本シミュレータでは精度が111%(誤差11%)となり、過去の測定方法の机上計算(誤差33%)と比べて精度が改善されていることが判る。見積りの対象の性能は、トータル時間や図10に示した単位時間当たりの読み出しデータ量である。本実施形態では、メモリ性能測定の各処理が想定スペック通りに「実行されたもの」とし、与えられたスペックパラメータの実行時間を積み上げる手法を採用しているので、『実機』を用いて性能を求める場合に比べて実行時間・精度は多少劣るものの、性能を見積る上では支障のないレベルとなっていることが判る。
本発明に係る複数の実施形態を説明したが、これらの実施形態は例として提示するものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10 ホスト装置、11-14 メモリチップ、20 UFS-NAND部、21 コントローラ、22 ファームウエア、23 ハードウエア、100 CPU、101 バス、102 RAM、103 ROM、104 入出力部、105 表示装置、110 シミュレーション手段、120 トータル時間計算手段、130 読み出し時間シミュレーション手段、201 メモリコントローラ、202 I/Oインタフェース、203 バッファ、204 アドレス変換テーブル、205 電圧出力部、206-1~206-4 ドライバ、207-1~207-4 センスアンプ、208-1~208-4 フラッシュメモリ

Claims (8)

  1. ホストコンピュータから発したコマンドによって、メモリチップに記憶されているデータを読み出し、読み出しが完了するまでのメモリにおける処理を模擬するシミュレーション手段を有し、前記読み出しが完了までに要する時間を求めるメモリ性能測定シミュレーション装置において、
    前記ホストコンピュータがコマンドの発行処理に要する時間であるコマンド発行時間と、このコマンドを受けたコントローラがコマンドを解析処理する時間であるコマンド解析時間と、コマンドに基づきメモリのアクセス先を特定する処理による特定までの時間であるアクセス先特定時間と、前記コマンドの解析結果に基づき前記アクセス先へアクセスしデータを読み出し前記ホストコンピュータへ出力するまでの処理の時間である読み出し時間とが含まれるスペックパラメータが与えられ、前記シミュレーション手段により前記メモリチップに記憶されているデータが読み出し完了となるまでのシミュレーション処理を監視し、監視したシミュレーション処理について、前記スペックパラメータに基づき各処理に対応する時間を得て足し合わせてデータ読み出しまでのトータル時間として出力するトータル時間計算手段を備えることを特徴とするメモリ性能測定シミュレーション装置。
  2. ランダムリードの場合にrand関数を用いてランダムなアドレスを前記コントローラが作り出し出力して、読み出しシミュレーションを行う読み出し時間シミュレーション手段を備え、
    前記トータル時間計算手段は、前記読み出し時間シミュレーション手段により得られた時間を読み出し時間として用いることを特徴とする請求項1に記載のメモリ性能測定シミュレーション装置。
  3. 前記メモリチップはNANDメモリのメモリチップであり、メモリセルが8値のトリプルレベルセルである場合に、
    前記読み出し時間シミュレーション手段は、前記メモリセルの、アッパーページ、ミドルページ、ロウページの各読み出し時間のスペックパラメータについて、これらの平均値を前記アッパーページ、前記ミドルページ、前記ロウページ、の読み出し時間のスペックパラメータとして用いることを特徴とする請求項1または2に記載のメモリ性能測定シミュレーション装置。
  4. トータル時間計算手段は、前記メモリチップのバスに関し、複数の速度情報を保持しており、得られた前記トータル時間と前記速度情報に基づき単位時間当たりの読み出しデータ量を求めて出力することを特徴とする請求項1乃至3のいずれか1項に記載のメモリ性能測定シミュレーション装置。
  5. コンピュータを、
    ホストコンピュータから発したコマンドによって、メモリチップに記憶されているデータを読み出し、完了するまでのメモリにおける処理を模擬するシミュレーション手段、
    前記ホストコンピュータがコマンドの発行処理に要する時間であるコマンド発行時間と、このコマンドを受けたコントローラがコマンドを解析処理する時間であるコマンド解析時間と、コマンドに基づきメモリのアクセス先を特定する処理による特定までの時間であるアクセス先特定時間と、前記コマンドの解析結果に基づき前記アクセス先へアクセスしデータを読み出し前記ホストコンピュータへ出力するまでの処理の時間である読み出し時間とが含まれるスペックパラメータが与えられ、前記シミュレーション手段により前記メモリチップに記憶されているデータが読み出し完了となるまでのシミュレーション処理を監視し、監視したシミュレーション処理について、前記スペックパラメータに基づき各処理に対応する時間を得て足し合わせてデータ読み出しまでのトータル時間として出力するトータル時間計算手段、
    として機能させ、
    前記コンピュータを前記トータル時間計算手段として、前記読み出し完了までに要する時間を求めるように機能させることを特徴とするメモリ性能測定シミュレーション用プログラム。
  6. 前記コンピュータを、ランダムリードの場合にrand関数を用いてランダムなアドレスを前記コントローラが作り出し出力して、読み出しシミュレーションを行う読み出し時間シミュレーション手段として機能させ、
    前記コンピュータを前記トータル時間計算手段として、前記読み出し時間シミュレーション手段により得られた時間を読み出し時間として用いるように機能させることを特徴とする請求項5に記載のメモリ性能測定シミュレーション用プログラム。
  7. 前記メモリチップはNANDメモリのメモリチップであり、メモリセルが8値のトリプルレベルセルである場合に、
    前記コンピュータを前記読み出し時間シミュレーション手段を、前記メモリセルの、アッパーページ、ミドルページ、ロウページの各読み出し時間のスペックパラメータについて、これらの平均値を前記アッパーページ、前記ミドルページ、前記ロウページ、の読み出し時間のスペックパラメータとして用いるように機能させることを特徴とする請求項5または6に記載のメモリ性能測定シミュレーション用プログラム。
  8. 前記コンピュータをトータル時間計算手段として、前記メモリチップのバスに関し、複数の速度情報を保持しており、得られた前記トータル時間と前記速度情報に基づき単位時間当たりの読み出しデータ量を求めて出力するように機能させることを特徴とする請求項5乃至7のいずれか1項に記載のメモリ性能測定シミュレーション用プログラム。
JP2021099056A 2021-06-14 2021-06-14 メモリ性能測定シミュレーション装置及びメモリ性能測定シミュレーション用プログラム Active JP7295446B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021099056A JP7295446B2 (ja) 2021-06-14 2021-06-14 メモリ性能測定シミュレーション装置及びメモリ性能測定シミュレーション用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021099056A JP7295446B2 (ja) 2021-06-14 2021-06-14 メモリ性能測定シミュレーション装置及びメモリ性能測定シミュレーション用プログラム

Publications (2)

Publication Number Publication Date
JP2022190627A true JP2022190627A (ja) 2022-12-26
JP7295446B2 JP7295446B2 (ja) 2023-06-21

Family

ID=84601874

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021099056A Active JP7295446B2 (ja) 2021-06-14 2021-06-14 メモリ性能測定シミュレーション装置及びメモリ性能測定シミュレーション用プログラム

Country Status (1)

Country Link
JP (1) JP7295446B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116486893A (zh) * 2023-04-23 2023-07-25 珠海妙存科技有限公司 Ufs验证方法、装置、电子设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08180094A (ja) * 1994-12-27 1996-07-12 Nec Corp アーキテクチャ・シミュレータ
JPH10187484A (ja) * 1996-12-25 1998-07-21 Oki Data:Kk シミュレータ
JP2005346517A (ja) * 2004-06-04 2005-12-15 Renesas Technology Corp 検証装置および検証方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08180094A (ja) * 1994-12-27 1996-07-12 Nec Corp アーキテクチャ・シミュレータ
JPH10187484A (ja) * 1996-12-25 1998-07-21 Oki Data:Kk シミュレータ
JP2005346517A (ja) * 2004-06-04 2005-12-15 Renesas Technology Corp 検証装置および検証方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116486893A (zh) * 2023-04-23 2023-07-25 珠海妙存科技有限公司 Ufs验证方法、装置、电子设备及计算机可读存储介质
CN116486893B (zh) * 2023-04-23 2023-12-12 珠海妙存科技有限公司 Ufs验证方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
JP7295446B2 (ja) 2023-06-21

Similar Documents

Publication Publication Date Title
KR101957614B1 (ko) 메모리의 상이한 메모리 평면들을 동시에 액세스하기 위한 장치들 및 방법들
US10990466B2 (en) Memory sub-system with dynamic calibration using component-based function(s)
CN108133732B (zh) 闪存芯片的性能测试方法、装置、设备及存储介质
CN110431526B (zh) 用于自动化动态字线开始电压的设备与方法
CN109313620A (zh) 存储器协议
JP7295446B2 (ja) メモリ性能測定シミュレーション装置及びメモリ性能測定シミュレーション用プログラム
KR20210075206A (ko) 자동화된 테스트 벡터를 사용한 제어기 구조 테스트
KR20220044597A (ko) 순차적 slc 판독 최적화
KR20190123990A (ko) 메모리 컨트롤러 및 그 동작 방법
US20220230700A1 (en) Intelligent memory device test rack
CN109144419A (zh) 一种固态硬盘内存读写方法及系统
US20180011662A1 (en) Memory controller, storage device, information processing system, and method of controlling memory
CN103839592A (zh) 用于嵌入式快闪存储器的内建自测试方法及装置
CN110931075A (zh) 可重新配置的模拟系统和测试存储装置的固件的方法
KR20140093868A (ko) 반도체 장치 및 이의 동작 방법
WO2021127297A1 (en) Resistor-capacitor sensor circuit for electronic circuit lines
Prodromakis et al. MLC NAND flash memory: Aging effect and chip/channel emulation
CN101950368B (zh) 24c系列芯片存储容量的识别方法
US11205338B2 (en) Extracting the resistor-capacitor time constant of an electronic circuit line
US11152077B2 (en) Transmitting data and power to a memory sub-system for memory device testing
TW201833779A (zh) 避免讀取擾動的資料搬移方法以及使用該方法的裝置
CN109859788B (zh) 阻式存储器的误码率测试方法
CN111899782A (zh) 一种测试方法、装置、电子设备及存储介质
US11947382B2 (en) Measuring a timing margin of a memory device using an internal oscilloscope
US20240177764A1 (en) Nonvolatile memory device and opeation method thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220620

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230425

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230522

R150 Certificate of patent or registration of utility model

Ref document number: 7295446

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150