編者按
網(wǎng)絡(luò)側(cè)現(xiàn)在還沒有形成標(biāo)準(zhǔn)的接口。Virtio-net因為軟件虛擬化的流行所以標(biāo)準(zhǔn),但其性能較差;AWS有自己的ENA/EFA接口,NVIDIA提供的是NV-SRIOV自定義接口,以及基于此封裝的Virtio-net接口。 在存儲側(cè),業(yè)界形成了“偉大”的共識:NVMe標(biāo)準(zhǔn)接口,兼顧了標(biāo)準(zhǔn)化和高性能。與此同時,從Virtio-blk逐步切換到NVMe在業(yè)界得到了眾多的認(rèn)可。
高速存儲接口NVMe
跟網(wǎng)絡(luò)接口相比,存儲的接口標(biāo)準(zhǔn)化程度相對較高。NVMe是本地高性能存儲主流的接口標(biāo)準(zhǔn),同時基于NVMe擴(kuò)展的NVMeoF是高性能網(wǎng)絡(luò)存儲主要的接口及整體解決方案標(biāo)準(zhǔn)。
1 NVMe概述
NVMe(Non-Volatile Memory Express)是經(jīng)過優(yōu)化的、高性能的、可擴(kuò)展的主機(jī)控制器接口,專為非易失性存儲器(NVM)技術(shù)而設(shè)計。NVMe解決了如下一些性能問題:
帶寬:通過支持PCIe和諸如RDMA和光纖之類的通道,NVMe可以支持比SATA或SAS高很多的帶寬。
IOPS:例如,串行ATA可能的最大IOPS為20萬,而NVMe設(shè)備已被證明超過100萬IOPS。
延遲:NVM以及未來的存儲技術(shù)具有一微秒以內(nèi)的訪問延遲,需要一種更簡潔的軟件協(xié)議,能夠?qū)崿F(xiàn)包括軟件堆棧在內(nèi)的不超過10毫秒的端到端延遲。
NVMe協(xié)議支持多個深度隊列,這是對傳統(tǒng)SAS和SATA協(xié)議的改進(jìn)。典型的SAS設(shè)備在單個隊列中最多支持256個命令,而SATA設(shè)備最多支持32個命令。這些隊列深度對于傳統(tǒng)的硬盤驅(qū)動器技術(shù)已經(jīng)足夠,但不能充分利用NVM技術(shù)的性能。
相比之下,圖1所示的NVMe多隊列,每個隊列支持64K命令,最多支持64K隊列。這些隊列的設(shè)計使得IO命令和對命令的處理不僅可以在同一處理器內(nèi)核上運行,也可以充分利用多核處理器的并行處理能力。每個應(yīng)用程序或線程可以有自己的獨立隊列,因此不需要IO鎖定。NVMe還支持MSI-X和中斷控制,避免了CPU中斷處理的瓶頸,實現(xiàn)了系統(tǒng)擴(kuò)展的可伸縮性。NVMe采用簡化的命令集,相比SAS或SATA,NVMe命令集使用的處理IO請求的指令數(shù)量減少了一半,從而在單位CPU指令周期內(nèi)可以提供更高的IOPS,并且降低主機(jī)中IO軟件堆棧的處理延遲。

圖1 NVMe多隊列
2 NVMe寄存器
NVMe(Over PCIe)寄存器主要分為兩類,一類是PCIe配置空間寄存器,一類是NVMe控制器相關(guān)的寄存器。
a.PCIe配置空間和功能
NVMe PCIe總線寄存器如表1所示,NVMe跟主機(jī)CPU的接口主要是基于PCIe總線,使用PCIe的Config和Capability機(jī)制。包括PCI/PCIe頭、PCI功能和PCIe擴(kuò)展功能。
表1 NVMe PCIe配置空間和功能
| 起始 | 結(jié)束 | 名稱 | 類型 |
| 00h | 3Fh | PCI/PCIe頭 | |
| PMCAP | PMCAP+7h | PCI功耗管理(Power Management)功能 | PCI功能 |
| MSICAP | MSICAP+9h | MSI(Message Signaled Interrupt)功能 | PCI功能 |
| MSIXCAP | MSIXCAP+Bh | MSI-X(MSI eXtension,MSI擴(kuò)展)功能 | PCI功能 |
| PXCAP | PXCAP+29h | PCIe功能 | PCI功能 |
| AERCAP | AERCAP+47h | AER(Advanced Error Reporting)功能 | PCIe擴(kuò)展功能 |
b.NVMe控制器寄存器
NVMe控制器寄存器位于MLBAR/MUBAR寄存器(PCI BAR0和BAR1)中,這些寄存器應(yīng)映射到支持順序訪問和可變訪問寬度的內(nèi)存空間。NVMe 1.3d版本的控制器寄存器列表如表2所示。
表2 NVMe 1.3d版本的控制器寄存器列表
| 起始 | 結(jié)束 | 縮寫 | 描述 |
| 0h | 7h | CAP | 控制功能 |
| 8h | Bh | VS | 版本 |
| Ch | Fh | INTMS | 中斷屏蔽設(shè)置 |
| 10h | 13h | INTMC | 中斷屏蔽清楚 |
| 14h | 17h | CC | 控制器配置 |
| 18h | 1Bh | Reserved | 保留 |
| 1Ch | 1Fh | CSTS | 控制器狀態(tài) |
| 20h | 23h | NSSR | NVM子系統(tǒng)重置(可選) |
| 24h | 27h | AQA | 管理隊列屬性 |
| 28h | 2Fh | ASQ | 管理提交隊列基地址 |
| 30h | 37h | ACQ | 管理完成隊列基地址 |
| 38h | 3Bh | CMBLOC | 控制器存儲緩沖位置(可選) |
| 3Ch | 3Fh | CMBSZ | 控制器存儲緩沖大?。蛇x) |
| 40h | 43h | BPINFO | 引導(dǎo)分區(qū)信息(可選) |
| 44h | 47h | BPRSEL | 引導(dǎo)分區(qū)讀選擇(可選) |
| 48h | 4Fh | BPMBL | 引導(dǎo)分區(qū)存儲緩沖位置(可選) |
| 50h | EFFh | Reserved | 保留 |
| F00h | FFFh | Reserved | 命令設(shè)置具體的寄存器 |
| 1000h | 1003h | SQ0TDBL | 管理SQ0尾Db |
| 1000h + (1 * (4 << CAP.DSTRD)) | 1003h + (1 * (4 << CAP.DSTRD)) | CQ0HDBL | 管理CQ0頭Db |
| 1000h + (2 * (4 << CAP.DSTRD)) | 1003h + (2 * (4 << CAP.DSTRD)) | SQ1TDBL | SQ1尾Db |
| 1000h + (3 * (4 << CAP.DSTRD)) | 1003h + (3 * (4 << CAP.DSTRD)) | CQ1HDBL | CQ1頭Db |
| … | … | … | … |
| 1000h+ (2y * (4 << CAP.DSTRD)) | 1003h + (2y * (4 << CAP.DSTRD)) | SQyTDBL | SQy尾Db |
| 1000h + ((2y + 1) * (4 << CAP.DSTRD)) | 1003h + ((2y + 1) * (4 << CAP.DSTRD)) | CQyHDBL | CQy頭Db |
| 供應(yīng)商定制寄存器(可選) | |||
| SQ:Submission Queue,提交隊列;CQ:Completion Queue,完成隊列;Db:Doorbell,門鈴。 |
3 NVMe隊列
NVMe的隊列是經(jīng)典的環(huán)形隊列結(jié)構(gòu),通過提交/完成隊列對來實現(xiàn)隊列的傳輸交互。
a.隊列概述
NVMe使用的是經(jīng)典的循環(huán)隊列結(jié)構(gòu)來傳遞消息(例如,傳遞命令和命令完成通知)。隊列可以映射到任何PCIe可訪問的內(nèi)存中,通常是放在主機(jī)內(nèi)存。
如圖2,隊列是固定大小的,通過Tail和Head來分別指向?qū)懭牒妥x取的指針。像通常的隊列數(shù)據(jù)結(jié)構(gòu)一樣,隊列實際可使用的大小是隊列大小減1,并且用Head等于Tail指示隊列空,用Head等于(Tail+1)除以隊列大小的余數(shù)來指示隊列滿。

圖2 NVMe隊列結(jié)構(gòu)
如上一節(jié)的圖1,根據(jù)用途,NVMe隊列有兩類:管理隊列和IO隊列;根據(jù)傳輸方向有兩類:提交隊列和完成隊列。具體介紹見表3。
表3 NVMe隊列類型
| 管理 | IO | |
| 提交 |
用于提交管理命令,最大4K項; 用于配置控制器和IO隊列等; 從主機(jī)側(cè)到控制器側(cè)。 |
用于傳輸IO命令,最大64K項; 用于提交IO操作命令; 從主機(jī)側(cè)到控制器側(cè)。 |
| 完成 |
管理命令的完成確認(rèn),最大4K項; 從控制器側(cè)到主機(jī)側(cè); 獨立的MSI-X中斷處理。 |
IO命令的完成確認(rèn),最大64K項; 從控制器側(cè)到主機(jī)側(cè); 獨立的MSI-X中斷處理。 |
b.隊列處理流程
NVMe的驅(qū)動和設(shè)備交互跟Virtio不同:Virtio是在通過一個隊列完成雙向通知交互;而NVMe則采用提交隊列和完成隊列配合完成雙向交互的方式。
如圖3,NVMe隊列處理流程如下(其中主機(jī)為軟件驅(qū)動,控制器為硬件設(shè)備):
(1)主機(jī)寫命令到提交隊列項中。
(2)主機(jī)寫DB(Doorbell)寄存器,通知控制器有新命令待處理。
(3)控制器從內(nèi)存中的提交隊列中讀取命令。
(4)控制器執(zhí)行命令。
(5)控制器更新完成隊列,表示當(dāng)前的SQ項已經(jīng)處理。
(6)控制器發(fā)MSI-x中斷到主機(jī)CPU。
(7)主機(jī)處理完成隊列,同步更新提交隊列中的已處理項。
(8)主機(jī)寫完成隊列Db到控制器,告知完成隊列項已釋放。

圖3 NVMe隊列處理流程
4 NVMe命令結(jié)構(gòu)
我們通過如下一些概念來理解NVMe命令結(jié)構(gòu):
隊列項的數(shù)據(jù)格式。NVMe的提交命令固定64字節(jié),完成命令固定16字節(jié)。
命令。NVMe命令分為Admin和IO兩類。
NVMe的數(shù)據(jù)塊組織方式有PRP和SGL兩種。
a.隊列項的數(shù)據(jù)格式
提交隊列和完成隊列,組成隊列對,協(xié)作完成NVMe驅(qū)動和設(shè)備之間的命令傳輸。提交隊列每一項64字節(jié)固定大小,完成隊列每一項16字節(jié)固定大小。
提交隊列的數(shù)據(jù)格式如圖4所示。NVMe提交隊列項的數(shù)據(jù)格式屬性如下:
Opcode:命令操作碼
FUSE:熔合兩個命令為一條命令
PSDT:PRP或SGL數(shù)據(jù)傳輸
Command Identifier:命令I(lǐng)D
Namespace Identifier:命名空間ID
Metadata Pointer:元數(shù)據(jù)指針
PRP entry 1/2:物理區(qū)域頁項,對應(yīng)的由PRP和PRP列表
SGL:散列聚合列表

圖4 提交隊列項的數(shù)據(jù)格式
完成隊列的數(shù)據(jù)格式如圖5所示。

圖5 完成隊列項的數(shù)據(jù)格式
NVMe完成隊列的數(shù)據(jù)格式屬性如下:
SQ Header pointer:SQ頭指針
SQ Identifier:SQ ID
Command Identifier:命令I(lǐng)D
P:相位標(biāo)志phase tag,完成隊列沒有head/tail交互,通過相位標(biāo)志實現(xiàn)完成隊列項的釋放
Status Field:狀態(tài)域
b.NVMe命令
NVMe管理類的命令如表4所示。
表4 NVMe管理命令列表
| 命令 | 必選或可選 | 類別 |
| 創(chuàng)建IO SQ | 必選 | 隊列管理 |
| 刪除IO SQ | 必選 | |
| 創(chuàng)建IO CQ | 必選 | |
| 刪除IO CQ | 必選 | |
| 鑒別 | 必選 | 配置 |
| 獲取特征 | 必選 | |
| 設(shè)置特征 | 必選 | |
| 獲取日志頁 | 必選 | 狀態(tài)報告 |
| 異步事件請求 | 必選 | |
| 中止 | 必選 | 中止命令 |
| 固件鏡像下載 | 可選 | 固件更新和管理 |
| 固件可用 | 可選 | |
| IO命令集定制命令 | 可選 | IO命令集定制 |
| 供應(yīng)商定制命令 | 可選 | 供應(yīng)商定制 |
NVMe IO類命令如表5所示。
表5 NVMe IO類命令列表
| 命令 | 必選或可選 | 類別 |
| 讀 | 必選 | 必選的數(shù)據(jù)命令 |
| 寫 | 必選 | |
| 清洗 | 必選 | |
| 不可改正的寫 | 可選 | 可選的數(shù)據(jù)命令 |
| 寫0 | 可選 | |
| 比較 | 可選 | |
| 數(shù)據(jù)集管理 | 可選 | 數(shù)據(jù)提示 |
| 預(yù)約獲取 | 可選 | 預(yù)約命令 |
| 預(yù)約寄存器 | 可選 | |
| 預(yù)約釋放 | 可選 | |
| 預(yù)約報告 | 可選 | |
| 供應(yīng)商專用命令 | 可選 | 供應(yīng)商專用 |
c.物理區(qū)域頁PRP
PRP本質(zhì)是一個鏈表,鏈表中的每一個指針都指向一個不超過頁大小的數(shù)據(jù)塊。PRP為8字節(jié)(64bits)固定大小,PRPList則最多可以占滿一整個頁。
PRP1和PRP2的格式如圖6(a)所示。如果是首個PRP,則Offset(偏移量)可能是非零的數(shù)據(jù),另外,偏移量是32bits對齊的(即末尾兩位為0)。如圖6(b)所示,在PRP列表中的所有PRP項的偏移量都為0,也即是PRP指針指向頁面起始地址。

圖6 PRP和PRP列表的格式
如圖7(a)所示,當(dāng)數(shù)據(jù)只有一個或兩個頁面的時候,就不需要使用PRP列表數(shù)據(jù)結(jié)構(gòu),直接PRP1和PRP2指向內(nèi)存頁面。當(dāng)一個命令指向的數(shù)據(jù)超過兩個內(nèi)存頁面的時候,就需要使用PRP列表,圖7(b)所顯式的為使用PRP列表的數(shù)據(jù)結(jié)構(gòu)。

(a) 范例1:PRP直接指向內(nèi)存頁面

(b) 范例2:PRP列表指針,指向PRP列表,再指向內(nèi)存頁面
圖7 PRP數(shù)據(jù)結(jié)構(gòu)范例
d.散列聚合列表SGL
PRP每個鏈表指針最多指向一個頁大小的數(shù)據(jù)塊,即使若干個頁在內(nèi)存連續(xù)放置,PRP也需要對應(yīng)的多個PRP項。為了減少元數(shù)據(jù)規(guī)模,SGL不限制指針指向數(shù)據(jù)塊的大小,這樣連續(xù)的若干個頁的數(shù)據(jù),只需要一個SGL項就可以標(biāo)識。
NVMe中SGL的長度為16字節(jié)固定長度,其格式如圖8(a)所示,在最高的第15字節(jié)SGL描述符類型域和子類型域標(biāo)識不同類型的SGL描述符,根據(jù)不同的描述符,字節(jié)14-0的格式各有不同。SGL描述符類型如圖8(b)所示。

圖8 NVMe SGL數(shù)據(jù)格式
如圖9,NVMe SGL的數(shù)據(jù)結(jié)構(gòu)是鏈表形式,SQ中的首個SGL段只有1項,為指向下一個SGL段的指針。下一個SGL段包含若干SGL數(shù)據(jù)塊描述符,SGL段的最后的一個SGL描述符為另一個SGL段指針,指向下一個SGL段。根據(jù)傳輸數(shù)據(jù)大小,在最后一個SGL 段中,所有的SGL描述符都是SGL數(shù)據(jù)塊描述符。
PRP只能指向單個內(nèi)存頁,這樣,當(dāng)要傳輸?shù)臄?shù)據(jù)塊非常大的時候,就需要非常多的PRP項。而SGL可以指向不同大小的數(shù)據(jù)塊,處于連續(xù)內(nèi)存區(qū)域的多個數(shù)據(jù)塊只需要一個SGL描述符就可以標(biāo)識。因此,一般情況下,SGL比PRP更高效,更節(jié)省描述符資源。

圖9 NVMe SGL數(shù)據(jù)結(jié)構(gòu)范例
5 網(wǎng)絡(luò)存儲接口NVMeoF
NVMeoF(NVMe over Fabrics)定義了一種通用架構(gòu),該架構(gòu)支持一系列基于NVMe塊存儲協(xié)議的存儲網(wǎng)絡(luò)系統(tǒng)。包括從前端存儲接口到后端擴(kuò)展的大量NVMe設(shè)備或NVMe子系統(tǒng),也包括訪問遠(yuǎn)程NVMe設(shè)備和NVMe子系統(tǒng)所需的網(wǎng)絡(luò)傳輸系統(tǒng)。
如圖10所示,NVMeoF支持以太網(wǎng)、光纖和InfiniBand等不同的網(wǎng)絡(luò)傳輸介質(zhì)?;赗DMA的NVMeoF,使用的是InfiniBand、RoCEv1/v2或iWARP。NVMeoF的主要目標(biāo)是提供與NVMe設(shè)備的低延遲遠(yuǎn)程連接,與服務(wù)器本地NVMe設(shè)備相比,增加的延遲不超過10μs。

圖10 NVMe over Fabrics支持的網(wǎng)絡(luò)傳輸介質(zhì)
利用NVMeoF技術(shù),可以輕松構(gòu)建由許多NVMe設(shè)備組成的存儲系統(tǒng),它通過基于RDMA或光纖網(wǎng)絡(luò)實現(xiàn)的NVMeoF,構(gòu)成了完整的NVMe端到端存儲解決方案。NVMeoF系統(tǒng)可以提供非常高的訪問性能,同時保持非常低的訪問延遲。
為了遠(yuǎn)距離傳輸NVMe協(xié)議,理想的基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)應(yīng)具有以下特征:
可靠的基于信用的流量控制和傳輸機(jī)制。需要網(wǎng)絡(luò)能支持自動流量調(diào)節(jié),從而提供可靠的網(wǎng)絡(luò)連接。基于信用的流量控制是光纖、InfiniBand和PCIe原生支持的功能。
優(yōu)化的NVMe客戶端。客戶端軟件能夠直接與傳輸網(wǎng)絡(luò)之間發(fā)送和接收NVMe命令,不需要使用諸如SCSI之類比較低效的轉(zhuǎn)換層。
低延遲的網(wǎng)絡(luò)。網(wǎng)絡(luò)應(yīng)該是針對低延遲優(yōu)化過的,網(wǎng)絡(luò)路徑(包括交換機(jī))端到端延遲不能超過10 μs。
能夠減少延遲和CPU使用率的硬件接口卡。接口卡支持直接內(nèi)存注冊給用戶模式的應(yīng)用程序使用,以便數(shù)據(jù)傳輸可以直接從應(yīng)用程序傳遞到接口卡。
網(wǎng)絡(luò)擴(kuò)展。網(wǎng)絡(luò)能夠支持?jǐn)U展到成千上萬個設(shè)備,甚至更多。
多主機(jī)支持。該網(wǎng)絡(luò)應(yīng)能夠支持多個主機(jī)同時發(fā)送和接收命令。這也適用于多個存儲子系統(tǒng)。
多端口支持。主機(jī)服務(wù)器和存儲系統(tǒng)應(yīng)能夠同時支持多個端口。
多路徑支持。該網(wǎng)絡(luò)應(yīng)能夠同時支持任何NVMe主機(jī)發(fā)起端和任何NVMe存儲目標(biāo)端之間的多個路徑。
最多可達(dá)64K的獨立IO隊列以及IO隊列固有的并行性可以很好地與上述特征一起使用。每個IO隊列可同時支持64K個命令。另外,NVMe命令數(shù)量非常少,因此在各種不同的網(wǎng)絡(luò)環(huán)境中實現(xiàn)起來也非常的簡單高效。
NVMeoF協(xié)議大約90%與NVMe協(xié)議相同。這包括NVMe命名空間、IO和管理命令、寄存器和屬性、電源狀態(tài)、異步事件等。兩者的差異對比如表6所示。
表6 NVMe和NVMeoF對比
| 差異性 | NVMe(PCIe) | NVMeoF |
| 識別碼 | BDF信息 | NVMe合格名稱(NQN) |
| 設(shè)備發(fā)現(xiàn) | 總線枚舉 | 發(fā)現(xiàn)和連接命令 |
| 排隊 | 基于內(nèi)存 | 基于消息 |
| 數(shù)據(jù)傳輸 | PRP或SGL | 僅SGL,添加了密鑰 |
NVMe基于分層的設(shè)計:如果把NVMe傳輸映射到內(nèi)存訪問和PCIe總線,則是通常所理解的NVMe;如果把NVMe傳輸映射到RoCE等網(wǎng)絡(luò)接口,基于消息傳輸和內(nèi)存訪問,則是NVMeoF。
如圖11,在本地NVMe中,NVMe命令和響應(yīng)映射到主機(jī)中的共享內(nèi)存,可以通過PCIe接口訪問。但是,NVMeoF是基于節(jié)點之間發(fā)送和接收消息的概念構(gòu)建的。NVMeoF通過把NVMe命令和響應(yīng)封裝到消息,每個消息包含一個或多個NVMe命令或響應(yīng)。

圖11 NVMeoF堆棧
對于NVMeoF來說,多隊列特征是支持的。通過使用類似NVMe的提交隊列和完成隊列機(jī)制來支持NVMe多隊列模型,但是將命令封裝在基于消息的傳輸中。NVMe IO隊列對(提交和完成)是為多核CPU設(shè)計的,這種低延遲的設(shè)計在NVMeoF也同樣支持。
當(dāng)通過網(wǎng)絡(luò)將復(fù)雜的消息發(fā)送到遠(yuǎn)端NVMe設(shè)備時,允許將多個小消息合并成一條消息發(fā)送,從而提高傳輸效率并減少延遲。如圖12,一條消息封裝了提交隊列項或完成隊列項、多個SGL、多組數(shù)據(jù)以及元數(shù)據(jù)等。每一項的內(nèi)容與本地NVMe協(xié)議相同,但是封裝是將它們打包在一起,用以提高傳輸效率。

圖12 NVMeoF的命令和響應(yīng)封裝
6 NVMe及NVMeoF總結(jié)
NVMe是為了高速非易失性存儲定制的存儲接口訪問協(xié)議,定向優(yōu)化了存儲的主要性能指標(biāo):帶寬、延遲和IOPS。NVMe最重要的特征體現(xiàn)在:
面向高速存儲場景定制:NVMe是專門面向高速存儲場景定制的協(xié)議,因此充分考慮了塊存儲的特點,重點解決存儲性能的關(guān)鍵問題。
多隊列支持:多隊列不僅僅充分利用了硬件的并行處理能力,同時,也充分的利用了多核系統(tǒng)多線程并行的特點,最大化的優(yōu)化了NVMe的性能。
標(biāo)準(zhǔn)化:NVMe是得到廣泛應(yīng)用的PCIe SSD接口標(biāo)準(zhǔn),各大主流操作系統(tǒng)支持統(tǒng)一的標(biāo)準(zhǔn)NVMe驅(qū)動。
NVMeoF集成現(xiàn)有的NVMe和高速低延遲傳輸網(wǎng)絡(luò)的技術(shù),提供一整套整合的遠(yuǎn)程高速存儲系統(tǒng)解決方案,非常適應(yīng)于大規(guī)模存儲集群的應(yīng)用場景。
原文標(biāo)題:高速的、標(biāo)準(zhǔn)化的存儲接口NVMe
文章出處:【微信公眾號:中科院半導(dǎo)體所】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
審核編輯:湯梓紅
-
存儲器
+關(guān)注
關(guān)注
39文章
7724瀏覽量
171265 -
接口
+關(guān)注
關(guān)注
33文章
9491瀏覽量
156577 -
設(shè)備
+關(guān)注
關(guān)注
2文章
4806瀏覽量
73469
原文標(biāo)題:高速的、標(biāo)準(zhǔn)化的存儲接口NVMe
文章出處:【微信號:bdtdsj,微信公眾號:中科院半導(dǎo)體所】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
一文詳細(xì)了解JTAG接口
NVMe協(xié)議研究掃盲
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計30: NVMe 設(shè)備模型設(shè)計
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計50:主要功能測試結(jié)果與分析2 nvmePCIe高速存儲
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計51:主要功能測試結(jié)果與分析3 nvmePCIe高速存儲 PCIe高速存儲
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計52:主要功能測試結(jié)果與分析4(NVMe 指令提交與完成機(jī)制測試)
在Xilinx ZCU102評估套件上啟用NVMe SSD接口
詳細(xì)了解下ups的相關(guān)計算
詳細(xì)了解一下STM32F1的具體電路參數(shù)
基于 NVMe 接口的帶 exFAT 文件系統(tǒng)的高速存儲 FPGA IP 核演示
一文詳細(xì)了解OpenHarmony新圖形框架
新品推薦|40G光纖接入的NVME存儲模塊
帶您一起詳細(xì)了解IEEE802.3bt(PoE++)的有關(guān)特點
一文帶你詳細(xì)了解工業(yè)電腦
一文詳解 ALINX NVMe IP 特性
一文詳細(xì)了解高速存儲接口NVMe
評論