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