????????本文講解采用zynq7045芯片如何實現200T容量高速存儲方案設計,對于大容量高速存儲卡,首先會想到采用pcie? switch級聯方式,因為單張ssd的容量是有限制的(目前常見的m.2接口容量為4TB,U.2接口容量為16TB),pcie switch目前主流型號是pex8748,剛好這個型號有對應的國產8748,國微8748現在用得很成熟了,雖然該芯片有一些bug,但作者都已經打上了patch完美解決了該問題。
本次設計方案框圖如下所示,8748一共有48個lane,最大port數量為12,zynq下面通過pcie 2.0 x8連接1級switch,1級switch在通過5路gen3 x8連接5個二級pcie switch,二級switch下面通過pcie 3.0 x4連接10張gen3 x4 ssd,這樣一共可以支持5 *10 = 50張ssd。?
對于zynq芯片中pcie硬核選擇有兩種。
方案一采用axi-bridge硬核,該硬核最大支持pcie 2.0 x4,mps=256,這種方式速度會受到硬件的限制,但實現更加簡單。
?
方案二采用pcie Series硬核,該硬核最大支持pcie 2.0 x8,mps=256或者512(根據芯片等級有區別),如果是gen1 mps=1024,一般的ssd mps=128,256,512.該ip速度會很快,但是實現難度會更大。
?
這兩個ip都是可以作為host bridge使用,具體選用哪一個結合技術實力和方案需求綜合評估。
這種方案會面臨的兩個問題
1. ECAM 窗口很小,導致不能訪問所有設備的配置空間,作者已經解決該問題。(zynq默認采用的是mem方案訪問配置空間,也可以采用config tlp方式訪問配置空間)
2. 多張ssd同時訪問會出現競爭和超時問題,這個需要對nvme協議做出修訂
?
fpga設計框圖
在zynq級聯方案中,作者已經實現標準ext4文件系統,用戶可以獨立讀寫每一張ssd,也可以將多張ssd組成raid0方式讀寫,在使用gen2 x4這個ip上,標準ext4文件系統速度可以做到1.2GB/s(這里的速度很保守,作者是按照國產ssd的最低速度和穩態速度寫的),用戶可以將ssd對應的存儲卡拔插后插入到windows電腦上,windows可以識別到標準的ssd,并且會自動掛在成標準的windows盤符。
?
級聯ssd上電枚舉打印如下:
?