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