【IT168 评测】一般的RAID HBA 有下面型態的硬體架構
IOP +IOC
ASIC IOP +IOC
FPGA ,CPLD 的 IOP +ASIC IOC
ROC (Raid on Chop)
ASIC 的ROC
FPGA的ROC
ASIC (Application-specific Ic) 這種要Tape out的(好像1000萬起跳吧 忘了價格..) ,要有量才合算
LSI 這種Fabless SOC Designer 廠商當然都是ASIC 產品...
FPGA or CPLD 可程式邏輯閥陣列,這就比較有彈性了.
比如說一些SSD Raid ,DRAM Raid.都是用FPGA實現.
但是如果量大是有點不合算
像H牌這類,部份XOR 就是用 FPGA or CPLD,PH
至於FPGA 做SAS PHY 仿真就不多了
從RAID Controller的觀點來看, 他是基於單純的SAS/SATA HBA上提供了RAID功能(RAID 0, RAID 1, RAID 5, RAID 6,甚至是混合陣列等等..), 有些RAID Controller在單顆Storage情況下可以直接被識別, 有些則是必須要建立陣列(Array)才能使用, 可能根據Option ROM載入的內容而有所差異. 下面是一張AMCC/3ware早期的9690SA-8i RAID Controller, 這是一款Hardware RAID, 由PowerPC processor, ASIC XOR Accelerator和Emulex IOC組成經典的StorSwitch分離式架構. 在3ware還沒被LSI買下以前. 長年以來都是應用這種架構, 3ware對於早期開發SATA產品中, 面對SCSI產品, 這個架構有相當的優勢性, 不過現在頗老矣...:
▲
最左邊那塊是存放韌體代碼的flash, 由於StorSwitch架構沒有太多的詳細資料, 所以我的猜測是這樣的. 那顆PowerPC的processor-PPC405CR提供266MHz的時脈, 這顆處理器一般的用途可能是一些平常I/O處理, 例如中斷執行, flow control, 另外還包括了對於RAID code的執行, AMCC握有PowerPC的授權後, 不用白不用. 中間那顆是AMCC特製的ASIC XOR加速器-G133 RAID engine, 提供大量的DMA通道(32條, StorSwitch架構的特色之一)給更多的Storage使用, 附加XOR和RAID 6所使用的GF硬線加速設計, PPC405CR加上G133 RAID engine應該就是一個完整的IOP(I/O Processor)架構. 根據AMCC/3ware之前相關產品資料來看, Cache Memory部分應該是從AMCC ASIC XOR加速器連接, IOC則是使用Emulex的IOC 500S, 提供兩個wide-port的連接.
就我以前拿4顆Seagate的15k.6 146GB組成RAID 5後進行測試, 非常好的的情況都無法突破1GB/s的循序讀寫傳輸速度, 故此我是認為bottleneck應該是卡在host-bus的頻寬問題,也許有可能的情況就是AMCC ASIC XOR加速器連接IOC 500S是用PCI-X bus. 當然, 這些僅僅是我的一些猜測, 其實蹤觀3ware後期產品來看, 並沒有太多的改善, 不管是9550系列或著9650系列, software部分我倒是認為作的不差. 下面是一張LSI的SAS 9211-8i的HBA, 提供了IT/IR雙模式, 在單顆Storage連接情況下, 可以直接被識別使用:
▲
這張HBA使用了LSISAS2008晶片, 是Hardware RAID架構, 內置了一顆PowerPC-PPC440 at 533MHz的processor, LSISAS2008的特點是支持了6Gb/s介面的SAS 2.0規格, 目前被廣泛應用在HBA, ROMB方案下. 這顆晶片提供了基礎RAID功能, 可以從官方文件來看是用來取代LSISAS1068/E的, 僅擁有入門級(entry-level)的性能, 他跟同門師兄-LSISAS2108相比, 可以說是差了一大截, 他沒有任何XOR硬線加速設計, 無實作記憶體控制器來連接外部記憶體作為Cache Memory, 光缺少這兩種特徵, 足以讓RAID性能受到嚴重的打擊. 從Intel的一份文件顯示, 晶片裡面有整合一塊2MB的context RAM可以用來做為buffer; 支持MSI-X特性, IRQ x15, 對於SMP/CMP系統來說, 在大量I/O的情況下會有所助益.