作者tyfu (慎)
看板Storage_Zone
標題Re: [請益] Intel NVMe Driver 觀念釐清
時間Thu Apr 19 08:00:28 2018
小弟用自己的見解來回答這些問題,有錯請鞭小力點XD
※ 引述《delaluna ( ̄︶ ̄y)》之銘言:
: 大家好
: 最近在爬梳 intel NVMe 一些搞肛的問題
: 主要是基於本版三篇系列文: [請益] NVme跟AHCI問題請教
: #1NnGEYg5 (Storage_Zone)
: #1NnLq4T2 (Storage_Zone)
: #1Nnb57t4 (Storage_Zone)
: 以下從兩個層面請教:
: 1. Intel NVMe under AHCI or RAID
: (a) RAID Mode:
: Intel NVMe SSD 要能在 RST 介面管理,要將SATA控制器改為RAID模式
: ref: http://www.xfastest.com/thread-158897-1-1.html
: 此時 NVMe remapping 是OS下指令給RAID控制器再轉給 NVMe SSD
: 這個動作是在硬體層還是驅動層呢?
: (硬體層: OS -> PCH RAID Controller -> CPU -> PCIe SSD 感覺有點搞肛?)
嚴格來說這裡的RAID不是硬體、而是韌體,
這個RAID韌體同時管理SATA實體控制器以及RST Remapped的PCIe Port,
軟體層上來看OS -> RST Driver -> PCH RAID FW
NVMe碟機的指令就由FW自己來做,CPU在這有沒有插一腳我就不能確定了XD
: (b) AHCI Mode:
: NVMe SSD 在非RAID模式下運行的話就不能在RST介面管理,
: 但 remapping 是經由OS的PCIe enumeration
: 是直接由CPU的PCIe通道控制SSD?
: 這種方法是否路徑及延遲較短?
原設計概念是這樣沒錯,讓CPU直接存取NVMe,
但現在更大的瓶頸其實是軟體的系統架構,
因為對絕大多數OS而言NVMe還是儲存裝置、須掛載在DRAM的File System之下。
什麼意思?意思就是你所有Disk I/O資料還是得透過DMA回到DRAM,
NVMe資料到DRAM後才去跟CPU做Transaction,
完全沒有實現CPU直接存取NVMe,所以..這東西算是廢了= =
這也是為什麼絕大多數使用者從SATA SSD升級到NVMe SSD完全無感..
P.S. 我說的不是跑分、跑分沒有意義XD
: 2. Driver 與電源管理: OFA, RST, ... ?
: (a) Windows 內建:
: Windows NVMe driver 會讓SSD進入深層睡眠,
: 在斷斷續續的附載中容易影響效能。
: (b) SSD原廠提供的 OFA改:
: Samsung與Toshiba提供的驅動是基於OFA範本修改,
: 不讓SSD睡眠所以SSD一直維持高效能狀態。
: (c) Intel (RST?)
: RST則是在閒置時挑比較不那麼深層的睡眠,所以效能也比Windows內建好。
: 這裡所謂 RST 是指SATA控制器運作在RAID下,且裝了RST的意思嗎?
: 我看到 Intel 有出一個Windows的 NVMe driver:
: https://tinyurl.com/ybzobjks
: 這個driver是要在RAID模式才能裝還是可以在AHCI下就可以呢?
: 如果在非RAID模式(RST看不到)的狀況下裝這個驅動,
: 是否跟其他OFA驅動一樣,不用走RAID remapping,
: 且有較高效能的電源管理呢?
: 這個驅動的效果跟透過RST管理NVMe有何差異呢?
: 謝謝。
這隻驅動小弟還沒玩過、手邊沒有Intel的SSD可以灌,
但稍微看一下這支Driver的INF應該是掃PCI enumeration的Device,
意思就是RAID mode沒辦法灌,因為PCIe Port會被藏起來看不到,
理論上RAID mode底下應該只有RST這個選擇、因為你只能透過韌體控制NVMe。
至於是不是OFA基底、有沒有Power Management,
裝上去、下下看OFA的Pass through IOCTL應該就會有答案了XD
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.1.252
※ 文章網址: https://www.ptt.cc/bbs/Storage_Zone/M.1524096031.A.819.html
※ 編輯: tyfu (118.163.1.252), 04/19/2018 08:03:14
→ tyfu : NVMe要突破還是得看OS臉色,但OS似乎已經把他定型了 04/19 08:14
→ tyfu : 不如期待兩年後作業系統的新架構、Persistent Memor 04/19 08:15
→ tyfu : 真正當OS Memory使用、又是非揮發性儲存的架構 04/19 08:16
推 delaluna : 感謝大大的回覆 04/19 11:33
→ delaluna : 所以目前其實沒有真正的CPU直連NVMe 是卡在OS 04/19 11:34
推 Cubelia : 專業 04/19 11:56
推 yak2573 : 學習了 04/19 12:43
推 goldie : 推專業 04/19 12:43
更新一下網址上那隻Intel驅動,借了一隻760P來玩XD
那隻的確是OFA基底的,之前做的IOCTL可以直接使用,
不太一樣的是他有把RST做NVMe電源管理的方法移植到這上面,
APST: NVMe自發性電源狀態切換 (Device自己切的意思)
裡面的時間參數也全都遵循RST的設計,
這樣的設計不會過熱也能保有效能,不愧是Intel XD
但有抓到一個小Bug,IOCTL沒把Format NVM這道指令擋起來,
使用者可以在系統執行下進行全碟抹除的自殺動作= =
※ 編輯: tyfu (118.163.1.252), 04/19/2018 15:22:14
推 delaluna : 所以是走Windows PCI enumeration (非intel RAID) 04/19 15:45
→ delaluna : 且有一部份的省電 感覺還不錯 04/19 15:45
推 yymeow : 專業推推 04/19 18:41
推 goldie : 感謝更新測試結果,專業又實用 04/19 23:21
推 sdbb : 推,ramdisk也是卡在file system 04/20 00:25
推 jacksonx2000: 之前把intel 750賣了換回三爽850pro果然是正確的 04/20 18:03