NVME
NVM Express ( NVMe ) 或 Non-Volatile Memory Host Controller Interface Specification( NVMHCIS ) 是一種開(kāi)放式邏輯設(shè)備接口規(guī)范,用于訪問(wèn)通過(guò)PCI Express總線連接的計(jì)算機(jī)非易失性存儲(chǔ)介質(zhì)。NVM 的縮寫(xiě)代表非易失性存儲(chǔ)器,通常是 NAND 閃存,具有多種物理外形,包括固態(tài)驅(qū)動(dòng)器(SSD)、PCIe 附加卡和M.2( mSATA的后繼者 )。
從架構(gòu)上講,NVMe 邏輯物理存儲(chǔ)在 NVMe 控制器芯片內(nèi)并由該芯片執(zhí)行,該芯片與存儲(chǔ)介質(zhì)(通常是 SSD)物理位于同一位置。NVMe 的版本更改(例如 1.3 到 1.4)已合并到存儲(chǔ)介質(zhì)中,并且不會(huì)影響主板、CPU 等 PCIe 借口兼容組件。
SATA和NVME外形區(qū)別 圖片來(lái)源:金士頓官網(wǎng)
FPGA實(shí)現(xiàn)NVME
NVMe協(xié)議基于PCIe協(xié)議之上實(shí)現(xiàn)NVMe Host與NVMe SSD之間高速數(shù)據(jù)通信。FPGA實(shí)現(xiàn)的簡(jiǎn)單架構(gòu)如下:
FPGA實(shí)現(xiàn)NVME控制(圖片來(lái)源見(jiàn)水?。?/p>
下面介紹幾個(gè)NVME協(xié)議的實(shí)現(xiàn)的開(kāi)源項(xiàng)目。
OpenSSD+nvme storage
介紹
OpenSSD的發(fā)展歷史如下:
nvme_comp_storage項(xiàng)目是基于OpenSSD的存儲(chǔ)系統(tǒng),詳細(xì)的架構(gòu)如下:
兩個(gè)項(xiàng)目都有異常詳細(xì)的文檔介紹,鏈接如下:
其中OpenSSD是有官方網(wǎng)址的,截止發(fā)文前,官網(wǎng)訪問(wèn)受限~
antmicro for nvme
該項(xiàng)目和上面項(xiàng)目類似,唯一的區(qū)別就是該項(xiàng)目從底層PCIe到頂層所有的代碼都是自己寫(xiě)的(在PCIe項(xiàng)目中有介紹),不想借助官方IP的項(xiàng)目,這個(gè)項(xiàng)目很具有借鑒意義。
該項(xiàng)目介紹的非常項(xiàng)目,就不贅述了。
NVMe
介紹
本項(xiàng)目基于AMD-XILINX FPGA XDMA的NVME控制器,詳細(xì)的文件架構(gòu)如下:
NVMe/ ├──hw/(RTLcodes) │├──COMSTRAINTS/(Constraints:Boardconnections) │├──IP/(IPs:ILA,XDMAIP,Boarddesign) │├──RTL/(NVMeHardwareDriverRTLcodes) │├──scripts/ │├──SIM/ │└──SYNTH/(NVMeHardwareDriverProjectdirectories) ├──sw/(NVMesuFileLibrary) ├──SIM/ ├──README.md ├──LICENSE └──CMakeLists.txt
具有硬件加速功能的 NVMe 控制器
介紹
NVMeCHA 是一款超低延遲和高吞吐量的 NVMe 控制器,具有高度并行、流水線和可擴(kuò)展的架構(gòu),具有一個(gè)管理控制器和多個(gè)完全硬件自動(dòng)化的 I/O 控制器。管理控制器采用軟硬件協(xié)同設(shè)計(jì),其中 NVMe 管理命令的復(fù)雜處理由軟件管理,而 PCIe 上的數(shù)據(jù)傳輸由硬件處理。這種混合架構(gòu)結(jié)合了軟件靈活性和硬件效率,減少了 CPU 資源并提高性能。I/O控制器采用高度并行和流水線的硬件架構(gòu)設(shè)計(jì),允許并行處理許多NVMe I/O命令,而無(wú)需任何軟件干預(yù)。每個(gè)I/O控制器對(duì)應(yīng)一個(gè)NVMe I/O隊(duì)列對(duì)。
該項(xiàng)目在 Xilinx KCU105 FPGA 板上進(jìn)行驗(yàn)證,該板通過(guò) PCIe gen3 x8 接口連接到計(jì)算機(jī)。通過(guò)SPDK-Perf基準(zhǔn)測(cè)試工具進(jìn)行評(píng)估,該NVMe控制器的最大讀寫(xiě)帶寬均可達(dá)到7.0GB/s,占理論P(yáng)CIe帶寬的89%。最大4KB大小的讀/寫(xiě)吞吐量可以達(dá)到每秒170萬(wàn)次I/O操作(MIOPS)。4KB大小的平均讀/寫(xiě)延遲僅為2.4μs/3.2μs。
該項(xiàng)目也進(jìn)行論文發(fā)表: IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,doi:10.1109/TCAD.2021.3088784。
pl-nvme
介紹
這個(gè)項(xiàng)目也和上面項(xiàng)目類似,不過(guò)性能沒(méi)有上面的架構(gòu)強(qiáng)。
該項(xiàng)目包含 Dune NvmeStorage 系統(tǒng)的源代碼以及簡(jiǎn)單的NVMe測(cè)試環(huán)境,允許使用低級(jí)Xilinx FPGA進(jìn)行接口驗(yàn)證。
包含F(xiàn)PGA源代碼、仿真環(huán)境或 Nvme 測(cè)試 FPGA 固件以及 nvme_test 主機(jī)軟件。
總結(jié)
NVME部分因?yàn)榛竞虵PGA PCIe息息相關(guān),所以基本和PCIe項(xiàng)目同時(shí)出現(xiàn),對(duì)于想從底層開(kāi)始實(shí)現(xiàn)的,強(qiáng)烈建議 antmicro 項(xiàng)目。
最后,還是感謝各個(gè)大佬開(kāi)源的項(xiàng)目,讓我們受益匪淺。后面有什么感興趣方面的項(xiàng)目,大家可以在后臺(tái)留言或者加微信留言,今天就到這,我是爆肝的碎碎思,期待下期文章與你相見(jiàn)。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1630文章
21777瀏覽量
604709 -
閃存
+關(guān)注
關(guān)注
16文章
1796瀏覽量
115021 -
控制器
+關(guān)注
關(guān)注
112文章
16418瀏覽量
178789 -
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110193 -
nvme
+關(guān)注
關(guān)注
0文章
222瀏覽量
22684
原文標(biāo)題:優(yōu)秀的 Verilog/FPGA開(kāi)源項(xiàng)目介紹(三十九)- NVMe
文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論