6562876 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

ふるた技工所(てっこうしょ)

ふるた技工所(てっこうしょ)

PR

キーワードサーチ

▼キーワード検索

プロフィール

Aちゃん22

Aちゃん22

フリーページ

購入履歴

NIKON EN-EL8対応互換バッテリー 600mAh☆CoolpixS8、S9【送料無料】
Coolpix S7 に使用しました。一度返品交換しています。手間ですが、充電、静止画と動画撮影、電池抜き差し…[>>]
フジフィルム(FUJIFILM) NP-48 互換バッテリー 【メール便送料無料】
交換前の電池が膨らみかけていたので購入しました。Fujifilm XQ2 で使用、まだ 20 ~ 30 枚程度撮影して充…[>>]
>> お買い物履歴一覧を見る
2024.07.26
XML
カテゴリ:ソフト開発日誌
NVDISK2-SS0080A のアクセス速度を測ってみた。単純化した数値でみると USB Super Speed 接続の Card Reader 経由でアクセスする Micro SD card UHS1 の速度が出ているかどうか、と言われそうな結果である。

次は NVDISK2-SS0080ASanDisk HIGH ENDURANCE 32Gbyte Micro SD card (リンク先は速度測定結果の詳細) の性能を比較した表だ。

項目NVDISK2-SS0080ASanDisk SDSQQNR-032G-GN6iA
Sequential Read (Mbytes/sec)13395.9
Sequential Write (Mbytes/sec)33.995.8
Random Read IOPS40002700
Random Write IOPS13302500

NVDISK2-SS0080A が Micro SD card より優れている性能は SATA 接続の利点によるものだ。SD Card は、
  • Class UHS1 は 4bit, 100MHz, DDR により最大転送速度は 100Mbytes/sec
  • NAND Memory 到達するまでに入る Controller は PCIe-USB, USB-SDIO, SDIO-NAND と多く、turn-around-time (IOPS) は良い結果を出せない
次は 比較に使った Micro SD card の画像。



NVDISK2-SS0080A の結果を詳細に見ていく。SLC NAND memory と優秀な Controller Firmware アルゴリズムによって、IO 停滞(いわゆるプチフリーズ)が起きない使い勝手が良いストレージだといえる。

Linux の mount option -o discard を付与して、ext4 partition を mount、File Read/Write をしてアクセス速度試験を実施した。アクセスパターンは discard があまり有効に働かない。

Sequential Read の速度を見てみる。全容量 7.45Gibyte に対して 6,300Mibyte を読み出す。O_DIRECT を付けて file を open し kernel の cache は使わない。結果は 133Mbytes/sec だった。SATA Link 速度 1.5Gbps で達成出来る速度の最大値が出ていると思う。



読み出している最中に誤り訂正が発生していたのだろうか? SLC で誤りが発生していなかったか、訂正専用ハードウエアか優秀な訂正アルゴリズム(恐らく遅延が表面化しないような task 構成)によって、一定の読み出し速度を出せている。

Sequential Write の速度を見てみる。全容量 7.45Gibyte に対して 6,300Mibyte を書き込む。O_DIRECT の使い方は Read と同じ。結果は 33.9Mbytes/sec だった。Read と比べて 1/3 の速度しかなく NVDISK2-SS0080A に対する興味が薄れるかもしれない。



途中アクセス速度が瞬間的に 1/3 程度まで低下しているのも見える。これは良くある SD Card と比べると速度低下の頻度は非常に低い。とは言っても比較対象にした Micro SD card が突発的に性能低下した場合よりもさらに低い転送速度だ。

Random Read 性能を見ていく、最高 4000iops で 256kibyte を越える読み出しの場合は、ほぼ安定して Sequntial Read と同じ速度を出している。



アクセス時間分布から推定できることを挙げる。
  • 次のうちいずれかが起きている
    • ECC 訂正が起きた場合、積極的に再書き込みをしている
    • 直前の書き込み動作をバックグラウンドで行っていて、しばしば完了待ちが発生している
  • 転送長 256Kibyte 以下の転送でアクセス時間分布が 2 つに別れるのは Error Collection が発生した場合のオーバーヘッドかも、おおよそ +500us ~ +600us
  • 転送長が 256kibyte より長い場合は Error Collection が有ったとしても、速度低下として目立たず、上手くバックグラウンド処理が行われるように task 分割している
Random Write 性能を見ていく、最高 1330iops で 2Mibyte を越える書き込みの場合はほぼ Sequential Read 速度と同じ速度を出している。



アクセス時間分布から推定できることを挙げる。
  • 1Mibytes 程度の Cache memory を内蔵している(1Mibytes x N の様な多バンク構成の可能性もある)
  • 2, 3 block 以上の erase を伴う場合、read (+ecc), erase, write (back) が pipe line 的に動作している
  • 1 sector write が意図的に cache されない様に見える
1 sector write が意図的に cache されないのは何でだろうか? NAND memory の構造は Erase Block より大きい構造を単純化して考えれば次の様になっているはず。



Erase Block を構成する Sector のうち、1 ~ 数個はあえて data を書き込まず予約状態にしているのだろうか?書き戻し、連続書き込みを処理した場合に、全ての Sector を書き込まずに敢えて、書き残しを作っておく。



書き残し部分は ECC 訂正が発生した場合の置き換え領域か、小サイズの書き込みに充てて、Erase がなるべく発生しないようにしているのかも。

NVDISK2-SS0080A の就任先は RaspBerryPi みたいな組み込み Linux SBC の swap かなぁ。

NVDISK2-SS0080A の外観画像など
NVDISK2-SS0080A の SMART 情報






お気に入りの記事を「いいね!」で応援しよう

最終更新日  2024.07.26 10:53:01
コメント(0) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

カレンダー

カテゴリ

サイド自由欄

コメント新着

ニューストピックス


© Rakuten Group, Inc.
X