以NAND 閃存存儲器為基礎的固態(tài)磁盤(SSD)技術與傳統(tǒng)的機械驅動器存儲系統(tǒng)相比, 吞吐量更高, 功耗更低。為此,SSD 使用量在過去十年迅速增加,從手持設備到筆記本、臺式機,現(xiàn)在又進軍企業(yè)級存儲設備市場。企業(yè)級存儲產業(yè)對基于串行高級技術附件(SATA)標準的SSD 的采用進一步加速了這一快速擴展勢頭。
但是,在SSD 制造商期望通過使用19nm 閃存存儲器將新一代系統(tǒng)的性能和密度推上新的高度的時候,SATA并沒有跟上。即便是最新的版本(SATA3.0),6Gbps 物理接口也難以滿足SSD NAND 閃存陣列的最高吞吐量,因此存在性能利用不足的問題。
為突破接口瓶頸, 基于PCI Express? 的SSD 正在給市場帶來重大影響。PCIe? 是業(yè)界標準本地總線,性能和擴展能力均優(yōu)于SATA。它采用多信道高速串行鏈路,可支持1 至16 個信道, 每個信道的運行速率高達8Gbps(Gen1 為2.5Gbps,Gen2 為5Gbps,Gen3 為8Gbps)。SSD 的PCIe 接口可支持數(shù)GB 的吞吐量,并隨著NAND 閃存技術的發(fā)展為可預見的將來預留更多裕量。
但用19nm 閃存開發(fā)基于PCIe 的SSD 系統(tǒng)一直面臨一系列挑戰(zhàn)。與SATA 相比,PCIe 接口要求更多高速串行鏈路和更復雜的互聯(lián)。對吞吐量需求則要求PCIe 直接存儲器存?。?a href="http://ttokpm.com/tags/dma/" target="_blank">DMA)以千兆字節(jié)帶寬運行。另外,采用19nm工藝,閃存的可靠性或者更具體地說“平均讀寫”(NAND 在遇到錯誤之前能讀取或者寫入的次數(shù))也是一個日益嚴峻的問題。采用19nm 工藝,制造商必須以比以往更快的速度完成平均讀寫和糾錯。
賽靈思KintexTM-7 FPGA 以不到前一代FPGA 一半的成本為FPGA 設立了新的高性能基準。Kintex-7 系列是賽靈思采用臺積電(TSMC)高性能低功耗(HPL)28nm 工藝技術生產的四大產品線之一,旨在實現(xiàn)最大能效,與前代產品相比,性價比提高了兩倍,而功耗降低了50%。Kintex-7 FPGA 采用高密度邏輯、高性能收發(fā)器、存儲器、DSP,以及靈活混合信號技術,所有這一切能讓系統(tǒng)級性能和集成度邁上新高。這些功能能讓設計以批量價格不斷實現(xiàn)創(chuàng)新和差異化。由此,賽靈思Kintex-7系列FPGA 是19nm 閃存PCIe SSD 控制器的理想選擇。
圖1 所示的是Memblaze SSD 控制器架構,由三個以高速AXI4 總線相連的子系統(tǒng)組成。PCIe SG-DMA 子系統(tǒng)包含Kintex FPGA 硬核,負責在主機和SSD 數(shù)據(jù)緩存之間分散和采集數(shù)據(jù)(SG代表分散(Scatter)和采集(Gather))。CPU 子系統(tǒng)負責管理外設和執(zhí)行SSD存取命令,而存儲子系統(tǒng)則負責運用多通道NAND 控制器、糾錯碼(ECC)模塊和平均讀寫模塊處理SSD 扇區(qū)數(shù)據(jù)。這三個子系統(tǒng)共享帶ECC 功能2GBDDR3 SDRAM。采用賽靈思存儲器接口生成器(MIG) 工具很容易生成ECCDDR3 SDRAM 控制器。
在我們的設計中,使用7 系列PCIe硬核實現(xiàn)物理轉TLP 層,讓設計能夠以最低的時延發(fā)揮高性能PCIe 端點的功能。支持ARM? AXI4 互聯(lián)的新型嵌入式MicroBlaze? 核可徹底消除片上總線的瓶頸。DDR 硬核為磁盤高速緩存提供51.2Gbps ECC 解決方案。同時,使用低功耗邏輯資源能夠方便地運行高性能平均讀寫和智能ECC 算法。另外,豐富的高性能I/O 資源為19nm NAND 閃存陣列的互聯(lián)提供了方便。
PCI EXPRESS SG-DMA
我們設計的PCIe 接口要求用一個快速DMA 控制器實現(xiàn)主機和本地AXI4 總線間的高速通信。SSD 閃存陣列的吞吐量可高達2.5Gbps。為簡化PCIe 接口的設計,為閃存芯片的發(fā)展提供更大的裕量,我們選擇使用8 信道PCIe Gen2/Gen3 架構。
PCIe 端點在物理層、數(shù)據(jù)鏈路層和事務處理層中有大量復雜的協(xié)議需要處理。幸運的是在賽靈思7 系列FPGA 中設計PCIe SG-DMA 控制器速度既快又方便。賽靈思已經(jīng)把PCIe 硬核實現(xiàn)在器件的架構中,用于處理全部的PCIe操作。這樣設計小組就可以集中精力設計SG-DMA 操作本身的功能。PCIe 解決方案的集成模塊可支持單通道、雙通道、四通道和八通道端點配置,最高速度達5Gbps(Gen2),符合PCIe 基本規(guī)范2.1 修訂版。表1 是7 系列FPGA的PCI 集成模塊的配置。該核可配置為Gen1/Gen2,最多可支持8 個信道,從而可提供高達40Gbps 的帶寬。
我們使用CORE GeneratorTM 工具來配置和生成PCIe 端點IP。該工具包括用戶指南、源代碼、仿真代碼和設計范例,可幫助我們迅速發(fā)揮該核的作用,實現(xiàn)要求的速度。圖2 顯示了PCIe 硬核的頂層功能模塊和接口。
SG-DMA 核的主要功能是處理來自主機的TLP 數(shù)據(jù)包并做出響應。SG-DMA 用作對主機存儲器的PCIe 主控訪問,在主機和本地存儲器之間傳輸數(shù)據(jù)。主機向DMA 控制器發(fā)送命令,控制DMA 訪問。該命令代碼嵌入在特定的主機TLP 寄存器寫操作的數(shù)據(jù)中。SG-DMA 控制器初始化SG-DMA 寫入請求,響應主機的讀取命令,將數(shù)據(jù)從本地存儲器遷移到主機存儲器。同樣,對于主機的寫入命令,SG-DMA 控制器初始化DMA 讀取請求,將數(shù)據(jù)從主機存儲器遷移到本地存儲器中。圖3 即是流程的圖解。
AXI4 互聯(lián)
AXI4 互聯(lián)IP 將一個或多個AXI 存儲器映射的速度更快的設備連接一個或多個存儲器映射的從設備。AXI 接口符合ARM 制定的AMBA? AXI 第4 版規(guī)范,包括AXI4-Lite 控制寄存器接口子集。互聯(lián)IP 僅用于存儲器映射傳輸,不適用AXI4-Stream 傳輸。AXI 互聯(lián)IP 可用作賽靈思嵌入式開發(fā)工具套件(EDK)中提供的pCORE, 或者用作賽靈思CORE Generator IP 目錄的獨立內核。
設計人員可從賽靈思AXI4 IP 支持的兩種操作模式中選擇。性能優(yōu)化的縱橫交換機(crossbar)模式采用共享地址多數(shù)據(jù)流(SAMD)縱橫交換機架構,為讀/ 寫數(shù)據(jù)通道提供并行路徑。而面積優(yōu)化的共享訪問模式則提供共享寫數(shù)據(jù)地址路徑、共享讀數(shù)據(jù)地址路徑和單條共享地址路徑。這兩種模式均為增量(INCR)突發(fā)提供長達256 位的突發(fā)長度以及32 位至1024 位的不同數(shù)據(jù)寬度。如有的話,每個通道還可支持USER 信號傳播,可選擇每個通道獨立的USER信號寬度。
AXI4 互聯(lián)在PCIe SG-DMA 和DDR3 存儲器之間提供高性能互聯(lián)。我們發(fā)現(xiàn)AXI4-Lite 共享總線是低速片上互聯(lián)的理想解決方案,需要的邏輯資源極少。
平均讀寫技術
平均讀寫是存儲介質廠商用于延長各類可擦除計算機存儲設備使用壽命的設計技術,比如固態(tài)硬盤中使用的閃存存儲器。在閃存存儲器系統(tǒng)內使用的平均讀寫機制有幾種,每種都對使用壽命有不同程度的強化。
不采用平均讀寫機制的閃存存儲器存儲系統(tǒng)如果向閃存寫入數(shù)據(jù),壽命會比較短。如不采用平均讀寫技術,閃存控制器必須永久性地將操作系統(tǒng)(OS)的邏輯地址分配給閃存存儲器的物理地址。也就是說每次向之前已經(jīng)寫入的模塊的寫入數(shù)據(jù)都必須先讀取、擦除、修改此前的數(shù)據(jù),然后在相同一位置重新寫入。這非常耗時,而且經(jīng)常寫入的位置會迅速磨損,而閃存上有的位置則完全沒有使用。一旦部分模塊壽終正寢,驅動器就不能再用。
第一種平均讀寫方法稱之為“動態(tài)平均讀寫”。它使用一個映射將操作系統(tǒng)的邏輯模塊地址(LBA)鏈接到物理閃存存儲器地址。每次操作系統(tǒng)寫入替換數(shù)據(jù)時,映射就會更新,標記原始的物理模塊為無效數(shù)據(jù),然后將一個新模塊鏈接到這一映射條目。每次有數(shù)據(jù)模塊重新寫入到閃存存儲器,就會寫入到新地址。閃存存儲器上沒有數(shù)據(jù)更新的模塊就一直不會產生更多的磨損。驅動器的使用壽命就可能會比不采用平均讀寫機制的驅動器長,但某些塊雖然也處于活動狀態(tài),卻沒有得到利用。
另一種平均讀寫方法稱為“靜態(tài)平均讀寫”,也使用映射將LBA 鏈接到物理存儲器地址。除了未發(fā)生變化的靜態(tài)模塊會定期移動,讓其他數(shù)據(jù)訪問這些利用率低的單元外,靜態(tài)平均讀寫與動態(tài)平均讀寫工作原理相同。這種循環(huán)效應讓SSD 能夠一直用到大多數(shù)模塊接近壽命終點。
圖4 是在長期寫入/ 擦除操作后采用和未采用平均讀寫技術的閃存頁的情況。未采用平均讀寫技術的閃存頁(黑色頁面)已經(jīng)被破壞,不能再記錄任何數(shù)據(jù),而有采用平均讀寫技術的閃存頁所有頁都還能夠繼續(xù)用于記錄數(shù)據(jù)。
智能ECC 算法
SSD 系統(tǒng)設計的另一項關鍵組成部分就是糾錯。有多種異常情況可能導致誤碼,進而影響數(shù)據(jù)完整性乃至系統(tǒng)本身的正確運行。為解決這些錯誤,我們的設計小組采用復雜的ECC 算法,而且這些算法針對我們在這些系統(tǒng)中使用的新型更小型的閃存進一步精細化。
我們在19nm NAND 閃存存儲器上采用了一種稱為“反隨機數(shù)據(jù)錯誤記錄”的ECC算法。該算法用于解決溫度變化、噪聲和存儲單元可靠性造成的誤碼。另外,NAND 閃存的存儲單元的擦除/ 編程壽命一般有限。誤碼率(BER)隨擦除/ 編程操作的累積而增大,直到有限的壽命終止。SSD 的ECC 功能還需要這種算法檢測每個單元的誤碼率,了解它們的使用壽命情況。設計人員可以設定特定的誤碼率閾值,提示壽命已到和確認替換模塊。不過該閾值的優(yōu)化也很關鍵。誤碼率閾值過低,會導致系統(tǒng)過早放棄可靠的單元,最終縮短SSD 的使用壽命。誤碼率閾值過高,則會造成數(shù)據(jù)丟失的風險,因為系統(tǒng)會試圖向不可靠的單元寫入數(shù)據(jù)。因此ECC 算法必須實現(xiàn)可靠性和壽命的最佳平衡。
19nm NAND 閃存存儲密度較高,但可靠性較差。這就是為什么我們的設計采用高速高級糾錯的原因。ECC 部分占35% 以上的設計資源,實現(xiàn)的并行計算能力能夠以4GB 讀取速度在一個1,024 位的扇區(qū)內糾正多達49 位誤碼。與上一代FPGA 相比, 新型28nmKintex-7 技術可將系統(tǒng)級性能提升達50%,容量提高兩倍,總功耗減半。與Virtex-5 器件中相同的ECC 模塊相比,Kintex-7 實現(xiàn)方案在保持成本不變的同時,將面積縮小5%,性能提升40%以上。
賽靈思Kintex-7 系列FPGA 是19nm閃存PCIe SSD 設計的理想選擇。其PCIe 硬核、性能、容量、低功耗特性使其成為市場上最優(yōu)秀的芯片產品。采用該器件,我們SSD 的讀/ 寫吞吐量可輕松達到2GBps 的水平。借助該器件,我們不僅能夠為客戶創(chuàng)造巨大的價值,而且我們的19nmNAND 閃存系統(tǒng)將得到巨大的發(fā)展?jié)摿Α?/p>
評論
查看更多