羅桂娥,康 霞
中南大學(xué) 信息科學(xué)與工程學(xué)院,長(zhǎng)沙 410083
隨著計(jì)算機(jī)的普及及其處理問(wèn)題復(fù)雜程度的增加,人們對(duì)計(jì)算機(jī)的存儲(chǔ)容量、存儲(chǔ)速度以及存儲(chǔ)數(shù)據(jù)的完整性和靈活性提出了更高的要求。目前市場(chǎng)上比較普遍的存儲(chǔ)設(shè)備為傳統(tǒng)的機(jī)械硬盤(pán)、U盤(pán)以及固態(tài)硬盤(pán)。傳統(tǒng)的機(jī)械硬盤(pán)由于自身固有的特性,還存在諸如存儲(chǔ)速度慢,不穩(wěn)定,體積大和功耗大等缺點(diǎn)[1]。U盤(pán)雖然小巧輕便,但是其可擴(kuò)展性差[2]。固態(tài)硬盤(pán)是采用閃存芯片構(gòu)成的塊存儲(chǔ)設(shè)備,由于內(nèi)部不需要機(jī)械硬盤(pán)那樣的機(jī)械結(jié)構(gòu)等,在讀寫(xiě)性能、能耗、尺寸、存儲(chǔ)容量等方面有著明顯的優(yōu)勢(shì)[3]。
硬盤(pán)接口是計(jì)算機(jī)硬件架構(gòu)的一個(gè)重要組成部分,與傳統(tǒng)基于并行接口的硬盤(pán)相比,SATA接口具有優(yōu)異的電氣特性和傳輸速度[4]。其主要優(yōu)點(diǎn)如下:(1)有效解決了串?dāng)_問(wèn)題;(2)帶寬增加;(3)具有熱插拔的性能;(4)精確性高;(5)工作電壓降低;(6)向上與并行接口兼容。因而SATA接口成為目前硬盤(pán)接口的主流。
基于閃存的固態(tài)硬盤(pán)具有高性能、低功耗等諸多優(yōu)點(diǎn),因而迅速得到了學(xué)術(shù)界以及工業(yè)界的重視。國(guó)內(nèi)外先后涌現(xiàn)了很多的固態(tài)硬盤(pán)生產(chǎn)廠商,國(guó)外廠商如希捷等,國(guó)內(nèi)如源科等。目前市面上也能看到很多基于SATA2.0、SATA3.0的固態(tài)硬盤(pán)產(chǎn)品。但是目前國(guó)內(nèi)對(duì)于固態(tài)硬盤(pán)技術(shù)的研究還不成熟,具有自主知識(shí)產(chǎn)權(quán)的比較少,同時(shí),由于固態(tài)硬盤(pán)的主控芯片以及Flash存儲(chǔ)介質(zhì)的選型不一樣,固態(tài)硬盤(pán)的性能也有所區(qū)別,因此開(kāi)發(fā)出具有自主知識(shí)產(chǎn)權(quán),性?xún)r(jià)比又比較高的固態(tài)硬盤(pán)產(chǎn)品具有重要意義。
基于以上背景,設(shè)計(jì)了一種基于SATA3.0接口的多通道并行架構(gòu)的固態(tài)硬盤(pán)存儲(chǔ)系統(tǒng),以FPGA芯片XC5VFX130T為核心,采用高速并行的硬件架構(gòu),結(jié)合先進(jìn)的軟件調(diào)度算法,對(duì)固態(tài)硬盤(pán)存儲(chǔ)系統(tǒng)的實(shí)現(xiàn)及速度優(yōu)化進(jìn)行了研究。優(yōu)化后的實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)具有存儲(chǔ)速度快,并行性和擴(kuò)展性強(qiáng)等特點(diǎn)。
在此設(shè)計(jì)中,固態(tài)硬盤(pán)存儲(chǔ)系統(tǒng)采用的是基于SATA3.0協(xié)議的硬盤(pán)存儲(chǔ)接口。SATA3.0體系結(jié)構(gòu)共分為4層:應(yīng)用層、傳輸層、鏈路層和物理層[5]。其中應(yīng)用層主要負(fù)責(zé)ATA(Advanced Technology Attachment)命令的解析和對(duì)控制命令寄存器的訪問(wèn);傳輸層主要負(fù)責(zé)組裝與解析幀;數(shù)據(jù)鏈路層通過(guò)維持?jǐn)?shù)據(jù)的完整性來(lái)保證數(shù)據(jù)包通過(guò)鏈路可靠地傳輸;物理層包含串行器/解串行器,提供OOB(Out of Band)帶外號(hào)并處理加電順序和速度協(xié)商[6]。
NOR和NAND是現(xiàn)在市場(chǎng)上兩種主要的非易失性存儲(chǔ)技術(shù)[3]。其中NOR閃存主要用來(lái)存儲(chǔ)少量的代碼以及需要多次擦寫(xiě)的場(chǎng)合,而NAND則是海量數(shù)據(jù)存儲(chǔ)密度的理想解決方案,設(shè)計(jì)中采用基于NAND的閃存技術(shù)[7]。NAND Flash存儲(chǔ)介質(zhì)由多個(gè)存儲(chǔ)面(Plane)組成,其中每個(gè)存儲(chǔ)面又由多個(gè)存儲(chǔ)塊(Block)組成,而每個(gè)存儲(chǔ)塊又可以分成一定數(shù)量的存儲(chǔ)頁(yè)(Page)。每個(gè)存儲(chǔ)頁(yè)中包含了相應(yīng)的數(shù)據(jù)、ECC信息[8]。存儲(chǔ)過(guò)程中對(duì)Flash共有讀、寫(xiě)和擦除3種操作,其中“塊”是擦除操作的基本單位,“頁(yè)”是讀寫(xiě)操作的基本單位。每個(gè)塊的擦除次數(shù)有限,當(dāng)超過(guò)擦除次數(shù)后,存儲(chǔ)塊上的數(shù)據(jù)將變得不可靠。與傳統(tǒng)的磁盤(pán)存儲(chǔ)器不同之處是NAND Flash不支持定點(diǎn)更新,即一個(gè)存儲(chǔ)頁(yè)被寫(xiě)入過(guò)數(shù)據(jù)后,它只有在進(jìn)行了擦除操作后才能再次寫(xiě)入新的數(shù)據(jù),這個(gè)特點(diǎn)稱(chēng)為寫(xiě)前擦除[9]。NAND Flash的這種存儲(chǔ)特性使得其不能像磁盤(pán)存儲(chǔ)器一樣被傳統(tǒng)文件系統(tǒng)直接使用,需要設(shè)計(jì)專(zhuān)門(mén)的控制器。同時(shí),為了能訪問(wèn)閃存的數(shù)據(jù),固態(tài)硬盤(pán)中存在一個(gè)閃存轉(zhuǎn)換層(Flash Translation Layer,F(xiàn)TL),用于實(shí)現(xiàn)上層文件系統(tǒng)邏輯地址到物理地址的轉(zhuǎn)換[10]以及對(duì)閃存進(jìn)行相應(yīng)的管理。
圖1 固態(tài)硬盤(pán)存儲(chǔ)系統(tǒng)架構(gòu)圖
存儲(chǔ)系統(tǒng)的訪問(wèn)速度是存儲(chǔ)系統(tǒng)的重要性能指標(biāo),提高SSD(Solid State Disk)的速度對(duì)于整個(gè)系統(tǒng)具有重要的意義。良好的硬件架構(gòu)能為系統(tǒng)速度的高速要求奠定基礎(chǔ),固態(tài)硬盤(pán)主要由固態(tài)硬盤(pán)控制器和存儲(chǔ)單元構(gòu)成[11]。本文對(duì)基于SATA3.0接口的固態(tài)硬盤(pán)存儲(chǔ)系統(tǒng)進(jìn)行了設(shè)計(jì),并且以Flash[12]作為主要的存儲(chǔ)介質(zhì)。根據(jù)SATA3.0協(xié)議標(biāo)準(zhǔn),硬盤(pán)接口的速度能達(dá)到600 MB/s[6],但由于單片NAND Flash的訪問(wèn)速度比較慢,兩者之間速度不匹配。所以,如何保證SATA與NAND之間的速度匹配是系統(tǒng)架構(gòu)設(shè)計(jì)的核心所在,系統(tǒng)的總體構(gòu)架如圖1所示。
從圖1分析可知,系統(tǒng)主要由SATA接口、FPGA和Flash芯片陣列構(gòu)成。其中FPGA內(nèi)部集成了ARM、SATA控制器、NAND控制器、DMA控制器、DBUF(Data Buffer)、SRAM以及通過(guò)系統(tǒng)總線(xiàn)進(jìn)行內(nèi)部模塊的連接[13],在APB總線(xiàn)上掛了一些常用的外部設(shè)備,如GPIO等。其中,SATA接口的作用是實(shí)現(xiàn)與主機(jī)互聯(lián),有效地保證主機(jī)設(shè)備間的通信效率;ARM的作用是對(duì)整個(gè)系統(tǒng)進(jìn)行管理,包括工作模式管理和文件系統(tǒng)管理;FPGA的作用是實(shí)現(xiàn)ARM、SATA和FLASH芯片陣列之間的邏輯接口轉(zhuǎn)換,并對(duì)FLASH陣列進(jìn)行數(shù)據(jù)讀寫(xiě)。
在固態(tài)硬盤(pán)存儲(chǔ)系統(tǒng)中,實(shí)現(xiàn)主機(jī)與存儲(chǔ)單元Flash之間的通信是系統(tǒng)最主要的任務(wù)。其通信過(guò)程主要分為兩個(gè)步驟:第一,主機(jī)設(shè)備間通過(guò)高速數(shù)據(jù)接口進(jìn)行數(shù)據(jù)傳輸;第二,系統(tǒng)與NAND Flash芯片之間通過(guò)NAND Flash接口進(jìn)行數(shù)據(jù)傳輸。硬件架構(gòu)主要通過(guò)以下幾個(gè)方面的技術(shù)來(lái)高效的實(shí)現(xiàn)上述任務(wù):
(1)多通道NAND Flash的并行流水機(jī)制接口與有效配置DBUF相結(jié)合的方法。其中,NAND控制器內(nèi)置DMA和可配置的ECC。在系統(tǒng)架構(gòu)中,共有8個(gè)NAND Flash控制器和外接的Flash芯片一起組成8路NAND Flash訪問(wèn)通道,每個(gè)通道上的NAND Flash共享一條I/O總線(xiàn),各個(gè)控制器能獨(dú)立工作。采用8通道并行操作方法,能將數(shù)據(jù)總線(xiàn)的帶寬擴(kuò)展到單個(gè)通道帶寬的8倍,實(shí)現(xiàn)了數(shù)據(jù)宏觀上的并行操作。同時(shí),為了滿(mǎn)足用戶(hù)對(duì)存儲(chǔ)容量的需求,對(duì)其擴(kuò)展性進(jìn)行了設(shè)計(jì),每個(gè)通道上能掛多片F(xiàn)lash芯片,因而能設(shè)計(jì)出不同容量的固態(tài)硬盤(pán)。
(2)針對(duì)NAND Flash讀寫(xiě)訪問(wèn)操作不同的特點(diǎn),設(shè)計(jì)中加入了DBUF作為緩存。設(shè)計(jì)中的DBUF有獨(dú)立的尋址空間,這樣SATA以及NAND控制器通過(guò)DMA進(jìn)行數(shù)據(jù)傳輸時(shí),能有效地進(jìn)行動(dòng)態(tài)地址映射,同時(shí),也減輕了系統(tǒng)管理數(shù)據(jù)的復(fù)雜度。設(shè)計(jì)中的DBUF的個(gè)數(shù)為8個(gè),能有效利用乒乓緩沖策略。以主機(jī)對(duì)設(shè)備發(fā)出寫(xiě)請(qǐng)求為例,由于SATA接口的數(shù)據(jù)傳輸速度高于NAND Flash接口的數(shù)據(jù)存取速度,當(dāng)NAND控制器對(duì)DBUF0進(jìn)行訪問(wèn)時(shí),SATA能對(duì)DBUF1進(jìn)行數(shù)據(jù)傳輸,這樣當(dāng)NAND控制器將DBUF0的數(shù)據(jù)讀完之后,DBUF0空閑,SATA能重新對(duì)DBUF0進(jìn)行訪問(wèn),提高了主機(jī)與系統(tǒng)之間數(shù)據(jù)傳輸?shù)牟⑿卸?。此外,在主機(jī)發(fā)送讀數(shù)據(jù)請(qǐng)求時(shí),NAND控制器內(nèi)部的DMA具有靈活性,為了減少控制器緩存到DBUF之間的數(shù)據(jù)傳輸時(shí)間,可以跳過(guò)DBUF而直接將數(shù)據(jù)傳送給SATA,同時(shí),若NAND給出的數(shù)據(jù)量足夠大的情況下,而SATA來(lái)不及對(duì)所有的數(shù)據(jù)進(jìn)行處理時(shí),也能通過(guò)DBUF緩存來(lái)保證數(shù)據(jù)傳輸?shù)倪B續(xù)性以及準(zhǔn)確性,提高了系統(tǒng)硬件資源的利用率。
(3)在系統(tǒng)功能設(shè)計(jì)過(guò)程中,由于主機(jī)設(shè)備間接口標(biāo)準(zhǔn)速度為600 MB/s,所以對(duì)主控芯片的時(shí)鐘頻率要求比較高,因而系統(tǒng)內(nèi)部MPU模塊采用ARM9,它能支持的頻率最大能達(dá)到400 MHz。實(shí)際設(shè)置MPU的時(shí)鐘頻率為300 MHz,系統(tǒng)內(nèi)部總線(xiàn)時(shí)鐘為150 MHz,根據(jù)系統(tǒng)的硬件架構(gòu),8DBUF以及8NAND控制器的理論頻率能達(dá)到1 200 MHz,從而能滿(mǎn)足SATA3.0的接口速度需求。若從系統(tǒng)的成本出發(fā),即使系統(tǒng)采用4通道架構(gòu),緩存以及NAND接口理論并行時(shí)鐘頻率為600 MHz,也能滿(mǎn)足系統(tǒng)內(nèi)部速度的匹配。但是在實(shí)際FPGA的實(shí)現(xiàn)過(guò)程中,由于系統(tǒng)內(nèi)部的時(shí)序約束等要求,實(shí)測(cè)頻率大約為理論頻率的80%左右。
根據(jù)上述分析,在4通道架構(gòu)下,給出了在Xilinx ISE環(huán)境下的FPGA主要的邏輯資源以及存儲(chǔ)資源的分布如表1所示。從表1中可以看出FPGA內(nèi)部的主要邏輯資源片內(nèi)LUT的已用個(gè)數(shù)為68 123個(gè)(LUT為6輸入),LUT觸發(fā)對(duì)的已用數(shù)目為75 334個(gè),主要實(shí)現(xiàn)信號(hào)同步和鎖存;主要的存儲(chǔ)資源寄存器的已用個(gè)數(shù)為41 472個(gè)以及FIFO的已用個(gè)數(shù)為117;BUFDS主要用來(lái)實(shí)現(xiàn)門(mén)控時(shí)鐘和劃分時(shí)鐘樹(shù),其中高速收發(fā)口為SATA接口。
表1 FPGA內(nèi)部主要資源使用分布圖
固態(tài)硬盤(pán)存儲(chǔ)系統(tǒng)是一個(gè)高度集成的嵌入式系統(tǒng),不僅需要處理器和接口等基本硬件,而且還需要完備的系統(tǒng)控制軟件[14]。系統(tǒng)控制軟件主要負(fù)責(zé)以下幾個(gè)功能:系統(tǒng)初始化,處理來(lái)自SATA接口的命令,控制存儲(chǔ)系統(tǒng)內(nèi)命令隊(duì)列機(jī)制,控制數(shù)據(jù)并行傳輸,維護(hù)閃存地址映射表等。圖1的硬件架構(gòu)具備的高速并行存儲(chǔ)的能力奠定了良好的硬件基礎(chǔ),下面將從系統(tǒng)控制軟件的角度上分析并優(yōu)化系統(tǒng)的性能。
系統(tǒng)速度的影響因子主要是存儲(chǔ)容量與系統(tǒng)時(shí)間,其中,系統(tǒng)時(shí)間包含軟硬件處理時(shí)間。因此,如何提高單位時(shí)間內(nèi)數(shù)據(jù)的吞吐量,以及在主機(jī)一次命令傳輸數(shù)據(jù)大小不變的情況下減少系統(tǒng)時(shí)間,能有效地提高系統(tǒng)的讀寫(xiě)效率。為了充分體現(xiàn)NAND Flash的并行流水機(jī)制,設(shè)計(jì)分析系統(tǒng)速度時(shí),以NAND Flash采用4通道2CE(Chip Enable)構(gòu)架為例來(lái)分析系統(tǒng)的軟硬件工作流程。在HOST一次DMA Read Command[15]命令處理64 KB數(shù)據(jù)時(shí),從圖1的多通道并行架構(gòu)角度出發(fā),得到優(yōu)化前后系統(tǒng)的軟硬件流程圖如圖2所示。
從圖2可以看出,系統(tǒng)的總體任務(wù)主要分為以下幾個(gè)部分:對(duì)主機(jī)發(fā)來(lái)的讀命令進(jìn)行命名解析,函數(shù)初始化,觸發(fā)NAND通道,F(xiàn)TL建表,通過(guò)SATA接口往主機(jī)傳輸數(shù)據(jù)。同時(shí),通過(guò)分析可以看出優(yōu)化前后的流程的區(qū)別:(1)優(yōu)化后流程比較簡(jiǎn)單,減少了控制流程的復(fù)雜度;(2)優(yōu)化后采用超級(jí)頁(yè)進(jìn)行傳輸,因而在傳輸數(shù)據(jù)時(shí)間不變的情況下大大增加數(shù)據(jù)的吞吐量;(3)對(duì)系統(tǒng)的任務(wù)調(diào)度的優(yōu)先級(jí)不一樣,優(yōu)化后先進(jìn)行通道觸發(fā)后建立FTL表,這樣NAND Flash能提前準(zhǔn)備數(shù)據(jù),隱藏了NAND Access的時(shí)間;(4)優(yōu)化后充分利用了NAND之間的并發(fā)與流水機(jī)制。
圖2 SSD系統(tǒng)4通道2CE優(yōu)化前后軟硬件流程圖
在圖2中,多處采用時(shí)間隱藏機(jī)制,充分利用系統(tǒng)的軟硬件資源,減少系統(tǒng)時(shí)間,提高了系統(tǒng)的性能。同時(shí),根據(jù)傳輸?shù)倪^(guò)程中出現(xiàn)的針對(duì)連續(xù)地址讀取數(shù)據(jù)時(shí)LBA(Logical Base Address)中存在地址偏移的情況,設(shè)計(jì)采取了數(shù)據(jù)補(bǔ)償策略。即CPU第一次觸發(fā)NAND 4個(gè)通道時(shí)的實(shí)際讀取數(shù)據(jù)少于32 KB,為了滿(mǎn)足主機(jī)DMA Read Command[16]需要的64 KB,此時(shí)CPU必須進(jìn)行3次觸發(fā)操作,從而大大延長(zhǎng)了系統(tǒng)時(shí)間。設(shè)計(jì)中采用數(shù)據(jù)補(bǔ)償法,在讀取少于8 KB數(shù)據(jù)的地址時(shí),將少于8 KB數(shù)據(jù)的這頁(yè)先放在DBUF中進(jìn)行等待,與讀取最后一頁(yè)的數(shù)據(jù)構(gòu)成8 KB數(shù)據(jù)才開(kāi)始往SATA傳輸。這樣只是主機(jī)的第一次命令數(shù)據(jù)傳輸時(shí)間較長(zhǎng),對(duì)文件數(shù)據(jù)大小大于64 KB的系統(tǒng)時(shí)間不會(huì)產(chǎn)生大的影響,避免了由于地址偏移造成NAND通道的浪費(fèi),提高了系統(tǒng)的速度,也有效地減少了系統(tǒng)的成本。同時(shí),在實(shí)際操作過(guò)程中可對(duì)數(shù)據(jù)進(jìn)行預(yù)取,即假設(shè)數(shù)據(jù)量大于64 KB,提前對(duì)NAND通道進(jìn)觸發(fā),而將T1與T3的時(shí)間隱藏在下次命令中,因而系統(tǒng)實(shí)際消耗的時(shí)間只有T2,實(shí)現(xiàn)了軟硬件的最佳平衡。
此外,將時(shí)間進(jìn)行細(xì)化分析,還可以從以下幾個(gè)方面進(jìn)行改進(jìn)提高整體性能:(1)提高系統(tǒng)時(shí)鐘;(2)增加NAND通道數(shù);(3)選擇支持同步模式的Flash芯片與NAND控制器,從而優(yōu)化NAND IO時(shí)間;(4)優(yōu)化ECC;(5)NAND采用多級(jí)流水,比如采用 Read Page Multi-plane命令等;(6)優(yōu)化軟件時(shí)間,比如說(shuō)優(yōu)化FTL算法等,因?yàn)镕TL算法的優(yōu)劣直接決定了系統(tǒng)的開(kāi)銷(xiāo)和性能,也決定了整個(gè)固態(tài)存儲(chǔ)系統(tǒng)的使用壽命[17]。
根據(jù)以上分析以及改進(jìn)方法,假設(shè)命令解析時(shí)間、函數(shù)初始化時(shí)間、通道觸發(fā)時(shí)間分別為T(mén)cmd_dma_read、Tfunc_initial和Tch_trigger;Nce表示NAND CE數(shù),Nch表示NAND通道數(shù);Tsata2host表示數(shù)據(jù)從SATA接口傳輸?shù)街鳈C(jī)的時(shí)間;Tnand_acess為NAND傳輸數(shù)據(jù)的準(zhǔn)備時(shí)間,Tecc為ECC校驗(yàn)時(shí)間以及Tnand_dma為DMA傳輸時(shí)間,Tnand_xfer1,Tnand_xfer2為NAND工作在異步與ONFI(Open Nand Flash Interface)模式下NAND IO的傳輸時(shí)間;Tsys1,Tsys2與Ssys1,Ssys2表示不同模式下的SSD系統(tǒng)總的消耗時(shí)間以及主機(jī)發(fā)一次命令的系統(tǒng)讀速度。
根據(jù)圖1的系統(tǒng)硬件架構(gòu)以及圖2的軟硬件工作流程,在主機(jī)一次DMA Read命令取64 KB數(shù)據(jù),且NAND采用4通道2CE,F(xiàn)lash芯片采用MT29F32G08ABCAB,并設(shè)置Flash的每頁(yè)大小為8 KB,當(dāng)NAND Flash分別工作在異步模式與ONFI模式時(shí),即設(shè)NAND的IO時(shí)鐘分別為50 MHz與200 MHz。結(jié)合軟硬件測(cè)試,得到系統(tǒng)參數(shù)的大小如下:
在NAND工作在同樣模式的前提下,系統(tǒng)主要采取的優(yōu)化方法為:數(shù)據(jù)補(bǔ)償策略,數(shù)據(jù)預(yù)取,利用超級(jí)頁(yè)進(jìn)行傳輸。根據(jù)以上分析可以得到NAND不同工作模式下系統(tǒng)速度為式(2),以及優(yōu)化前后的系統(tǒng)總體消耗時(shí)間為式(3)和式(4):
其中Gpage表示NAND每個(gè)page的大小,Nch取1,2,3,4以及Nce取1,2。在異步模式下T2取T21,Tsys取Tsys1;ONFI模式下T2取T22,Tsys的值為T(mén)sys2。從式(3)和式(4)中可以看出優(yōu)化前后的對(duì)系統(tǒng)速度的不同算法,主要是為了減少系統(tǒng)總時(shí)間,優(yōu)化了參數(shù)T2和T3。同時(shí),將式(1)代入式(2)、式(3)、式(4),得到式(5)、式(6)如下:
將參數(shù)Nch、Nce的值分別代入式(5)和式(6)可以得到SSD讀速度,根據(jù)算出來(lái)的值畫(huà)出SSD讀速度圖如圖3與圖4所示。
圖3 異步模式下優(yōu)化前后的SSD讀速度
圖4 同步模式下優(yōu)化前后的SSD讀速度
從圖3與圖4中可以看出:(1)在CE數(shù)為2時(shí),優(yōu)化前后的速度明顯,因?yàn)檫@時(shí)候?qū)?shù)據(jù)進(jìn)行預(yù)取,將T3時(shí)間進(jìn)行了隱藏,CE數(shù)為1時(shí),數(shù)據(jù)量少,只是隱藏了通道觸發(fā)時(shí)間,因而優(yōu)化效果不是很明顯。(2)在CE數(shù)不變的情況下,增加NAND通道數(shù)大大提高了系統(tǒng)的速度;同時(shí)通過(guò)圖3和圖4對(duì)比可以看出支持ONFI模式下的SSD速度基本是異步模式下的2倍。(3)在異步模式,傳輸數(shù)據(jù)量大小為64 KB,即NAND CE數(shù)為2,通道數(shù)為4時(shí),通過(guò)計(jì)算優(yōu)化后速度相對(duì)于優(yōu)化前提高了15%,ONFI模式提高了38.8%。
固態(tài)硬盤(pán)存儲(chǔ)系統(tǒng)的功能測(cè)試是測(cè)試固態(tài)硬盤(pán)能否被主機(jī)的主板正常識(shí)別。在各種操作系統(tǒng)下對(duì)硬盤(pán)進(jìn)行測(cè)試,分別通過(guò)硬盤(pán)識(shí)別,對(duì)硬盤(pán)進(jìn)行讀寫(xiě)數(shù)據(jù)操作以及通過(guò)文件系統(tǒng)對(duì)文件進(jìn)行建立、修改、保存和刪除操作來(lái)驗(yàn)證固態(tài)硬盤(pán)的功能。在WINDOWS XP系統(tǒng)下對(duì)固態(tài)硬盤(pán)進(jìn)行測(cè)試,測(cè)試結(jié)果的識(shí)盤(pán)圖如圖5所示,測(cè)試結(jié)果表明,固態(tài)硬盤(pán)工作正常。
圖5 固態(tài)硬盤(pán)識(shí)盤(pán)圖
圖6 固態(tài)硬盤(pán)性能測(cè)試圖
固態(tài)硬盤(pán)性能測(cè)試包括對(duì)固態(tài)硬盤(pán)的讀取速度和寫(xiě)入速度測(cè)試,振動(dòng)環(huán)境下以及高低溫環(huán)境下對(duì)讀寫(xiě)數(shù)據(jù)的影響。以系統(tǒng)在NAND取4個(gè)通道,工作在異步模式為例,在測(cè)試軟件ATTO下得到測(cè)試,得到優(yōu)化后固態(tài)硬盤(pán)的讀寫(xiě)性能圖如圖6所示。通過(guò)圖6可以看出在文件大小為64 KB的條件下,測(cè)試讀取速度為143 MB/s,由圖3可以知道此時(shí)理論速度約為152 MB/s,因?yàn)橄到y(tǒng)實(shí)際測(cè)試時(shí),還要考慮操作系統(tǒng)時(shí)間,因而實(shí)測(cè)結(jié)果在可估測(cè)的范圍內(nèi)。從而驗(yàn)證了優(yōu)化方法的有效性以及系統(tǒng)架構(gòu)設(shè)計(jì)的可行性,也為下一步研究奠定了基礎(chǔ)。在增加系統(tǒng)成本的前提下,根據(jù)設(shè)計(jì)的架構(gòu)擴(kuò)展到8通道,根據(jù)以上分析,8通道時(shí),估算系統(tǒng)的平均讀速度能達(dá)到574 MB/s,讀的效率比較高。
隨著NAND Flash固態(tài)存儲(chǔ)器技術(shù)的日益成熟,其存儲(chǔ)密度越來(lái)越大,而相應(yīng)的體積、功耗和成本卻越來(lái)越小,因而NAND Flash固態(tài)存儲(chǔ)會(huì)得到越來(lái)越廣泛的應(yīng)用。以并行流水機(jī)制為核心,設(shè)計(jì)了一種基于SATA3.0接口的固態(tài)硬盤(pán)存儲(chǔ)系統(tǒng),并從硬件架構(gòu)以及軟件調(diào)度上對(duì)系統(tǒng)的性能進(jìn)行了分析、優(yōu)化,最后驗(yàn)證了設(shè)計(jì)的可行性以及可擴(kuò)展性。此外,本文設(shè)計(jì)也為后續(xù)對(duì)固態(tài)硬盤(pán)的研究奠定了基礎(chǔ)。比如說(shuō)在系統(tǒng)硬件架構(gòu)基本不變的情況下,系統(tǒng)版本從FPGA版本擴(kuò)展到ASIC版本以及在FPGA上實(shí)現(xiàn)NAND8個(gè)通道并行工作等。
[1]許長(zhǎng)庚.高速海量固態(tài)硬盤(pán)的實(shí)現(xiàn)[D].哈爾濱:哈爾濱工程大學(xué),2010.
[2]孫浩然.高速海量固態(tài)硬盤(pán)的設(shè)計(jì)[D].哈爾濱:哈爾濱工程大學(xué),2009.
[3]李博.固態(tài)硬盤(pán)寫(xiě)效率及能耗優(yōu)化研究[D].武漢:華中科技大學(xué),2010.
[4]唐純杰.SATA協(xié)議分析及FPGA實(shí)現(xiàn)[D].長(zhǎng)沙:湖南大學(xué),2009.
[5]Serial ATA International Organization.Serial ATA revision 2.6[S].2007.
[6]Serial ATA International Organization.Serial ATA revision 3.0[S].2009.
[7]Ken Takeuchi.Novel co-design of NAND flash memory and NAND flash controller circuits for sub-30nm low-power high-speed solid-state drives(SSD)[J].IEEE Journal of Solid-State Circuits,2009,44(4):1227-1234.
[8]Dirik C,Jacob B.The performance of PC solid-state disks(SSDs)as a function of bandwidth,concurrency,device architecture,and system organization[C]//Proceedings of the 36th Annual International Symposium on Computer Architecture(ISCA’09).New York,USA:ACM,2009,37(3):279-289.
[9]Kang J U,Jo H,Kim J S,et,A superblock-based flash translation layer for NAND flash memory[C]//Proc of the 6th ACM Conference Embedded Systems Software,Seoul,Korea,2006:161-170.
[10]Xu Zhiyong,Li Ruixuan,Xu Chengzhong.CAST:A pagelevel FTL with compact address mapping and parallel data blocks[C]//Proceedings of IEEE 31st International Conference on Performance Computing and Communication Austin,TX,2012:142-151.
[11]張磊,李清江.基于SATA接口的固態(tài)硬盤(pán)設(shè)計(jì)[J].微處理機(jī),2011,8(4):77-82.
[12]Lee S W,Park D J,Chung T S,et al.A log buffer-based flash translation layerusing fully associative sector translation[J].ACM Transactions on Embedded Computing Systems,2007,6(3):100-127.
[13]Arm Company.AMBA specification[S].1999.
[14]涂剛.軟實(shí)時(shí)系統(tǒng)任務(wù)調(diào)度算法研究[D].武漢:華中科技大學(xué),2004.
[15]Synopsys Company.Synopsys design ware SATA device program guide,revision 1.33a[R].2010.
[16]Wu Wei,Su Haibing,Wu Qinzhang.Implementing a serial ATA controller base on FPGA[C]//Proceedings of International Symposium on Computation Intelligence and Design,2009:467-470.
[17]Park S H,Ha S H,Bang K.Design and analysis of flash translation layers for multi-channel NAND flash-based storage devices[J].IEEE Transactions on Consumer Electronics,2009,55(3):1392-1400.