本實(shí)用新型涉及硬盤存儲(chǔ)技術(shù)領(lǐng)域,具體涉及一種用于固態(tài)硬盤的控制芯片及固態(tài)硬盤。
背景技術(shù):
SSD(Solid State Drive,固態(tài)硬盤),用固態(tài)電子存儲(chǔ)芯片陣列而制成的硬盤,由控制單元和存儲(chǔ)單元組成。一般以NAND Flash芯片或者DRAM芯片作為存儲(chǔ)介質(zhì)。其中基于NAND Flash的SSD不僅讀寫帶寬高,抗震防摔,功耗低,體積小而且掉電后數(shù)據(jù)不會(huì)丟失,應(yīng)用范圍最為廣泛。因此,消費(fèi)級(jí)SSD及工業(yè)用數(shù)據(jù)存儲(chǔ)系統(tǒng)中的定制SSD大都基于NAND Flash。
在實(shí)現(xiàn)本實(shí)用新型的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:
對(duì)于消費(fèi)級(jí)的SSD來(lái)說,一般只有一種接口,通常是USB接口、SATA接口或PCIe接口中的一種,因此和PC(personal computer,個(gè)人計(jì)算機(jī))的連接方式較為單一,無(wú)法提供多種接口選擇;并且只有和個(gè)人計(jì)算機(jī)相連的接口,不支持其它工業(yè)標(biāo)準(zhǔn)接口,無(wú)法用于工業(yè)數(shù)據(jù)采集等應(yīng)用情況。
對(duì)于工業(yè)用數(shù)據(jù)存儲(chǔ)系統(tǒng)中定制的SSD來(lái)說,其通常具有多個(gè)接口,但該類SSD中主控芯片沒有維護(hù)文件系統(tǒng)的功能,不能按照文件系統(tǒng)來(lái)組織數(shù)據(jù),一般用于直接存儲(chǔ)原始數(shù)據(jù),因此存儲(chǔ)的數(shù)據(jù)不能被個(gè)人計(jì)算機(jī)直接識(shí)別,不能作為標(biāo)準(zhǔn)硬盤使用,不方便數(shù)據(jù)分析處理。為了讀出其中的數(shù)據(jù),通常需要個(gè)人計(jì)算機(jī)使用專門的硬件接口與其連接,并安裝專門的軟件。因此其使用過程較為繁瑣。
技術(shù)實(shí)現(xiàn)要素:
本實(shí)用新型實(shí)施例提供一種用于固態(tài)硬盤的控制芯片及固態(tài)硬盤,用以至少解決上述闡述的現(xiàn)有技術(shù)中消費(fèi)級(jí)固態(tài)硬盤接口單一且應(yīng)用場(chǎng)合少、工業(yè)級(jí)固態(tài)硬盤不支持文件系統(tǒng)的問題。
本實(shí)用新型實(shí)施例的一個(gè)方面提供了一種用于固態(tài)硬盤的控制芯片,包 括:
用于連接具有不同接口標(biāo)準(zhǔn)的接口的多個(gè)接口控制模塊;
與所述多個(gè)接口控制模塊連接的指令處理模塊;
用于與所述固態(tài)硬盤中的存儲(chǔ)單元連接的存儲(chǔ)單元控制模塊;
與所述指令處理模塊和所述存儲(chǔ)單元控制模塊經(jīng)由AXI總線連接的處理器;
經(jīng)由所述AXI總線分別與所述處理器連接的多個(gè)功能子卡控制模塊。
在本實(shí)用新型的一些實(shí)施例中,所述多個(gè)接口控制模塊至少包括USB接口控制模塊、SATA接口控制模塊、PCIe接口控制模塊。
在本實(shí)用新型的一些實(shí)施例中,所述控制芯片為FPGA芯片。
在本實(shí)用新型的一些實(shí)施例中,所述控制芯片還包括經(jīng)由所述AXI總線與所述處理器和所述存儲(chǔ)單元控制模塊連接的DMA控制模塊。
在本實(shí)用新型的一些實(shí)施例中,所述處理器安裝有操作系統(tǒng),所述操作系統(tǒng)中的文件系統(tǒng)至少包括NTFS、FAT32、exFAT中的任意一種。
在本實(shí)用新型的一些實(shí)施例中,所述操作系統(tǒng)包括Linux系統(tǒng)。
本實(shí)用新型實(shí)施例的另一個(gè)方面提供了一種固態(tài)硬盤,包括:
上述實(shí)施例中的控制芯片;
與所述控制芯片的存儲(chǔ)單元控制模塊連接的存儲(chǔ)單元;
分別與所述控制芯片的多個(gè)功能子卡控制模塊連接的適于接插多個(gè)功能子卡的多個(gè)擴(kuò)展接插件;
分別與所述控制芯片的多個(gè)接口控制模塊對(duì)應(yīng)連接的適于與外部設(shè)備連接的多個(gè)接口,所述多個(gè)接口對(duì)應(yīng)多種不同的接口標(biāo)準(zhǔn)。
在本實(shí)用新型的一些實(shí)施例中,所述固態(tài)硬盤包括經(jīng)由所述AXI總線與所述控制芯片的處理器連接的緩存單元。
在本實(shí)用新型的一些實(shí)施例中,所述緩存單元與所述控制芯片中的經(jīng)由所述AXI總線與所述處理器和所述存儲(chǔ)單元控制模塊連接的DMA控制模塊連接。
在本實(shí)用新型的一些實(shí)施例中,所述存儲(chǔ)單元包括NAND Flash存儲(chǔ)陣列。
在本實(shí)用新型的一些實(shí)施例中,所述多個(gè)接口至少包括USB接口、SATA 接口和PCI-e接口。
在本實(shí)用新型的一些實(shí)施例中,所述USB接口通過物理接口收發(fā)器與所述控制芯片連接。
本實(shí)用新型實(shí)施例所示用于固態(tài)硬盤的控制芯片及固態(tài)硬盤,由于包括多種接口標(biāo)準(zhǔn)不同的接口,例如USB接口、SATA接口、PCIe接口等,可以通過任一接口連接到個(gè)人計(jì)算機(jī),使得本實(shí)用新型實(shí)施例所示固態(tài)硬盤具有多種被個(gè)人計(jì)算機(jī)訪問的選擇,降低了被計(jì)算機(jī)訪問的復(fù)雜度。本實(shí)用新型實(shí)施例還包括多個(gè)用于接插標(biāo)準(zhǔn)功能子卡的接插件,例如標(biāo)準(zhǔn)FMC接口,可以安裝多種標(biāo)準(zhǔn)FMC功能子卡,使得本實(shí)用新型實(shí)施例所示固態(tài)硬盤可用于多種場(chǎng)合下的數(shù)據(jù)存取項(xiàng)目。此外,本實(shí)用新型實(shí)施例支持例如NTFS、FAT32、exFAT等多種文件系統(tǒng),使得本實(shí)用新型實(shí)施例所示固態(tài)硬盤中存儲(chǔ)的數(shù)據(jù)很容易被個(gè)人計(jì)算機(jī)分析處理。
附圖說明
為了更清楚地說明本實(shí)用新型實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本實(shí)用新型的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本實(shí)用新型一實(shí)施例的用于固態(tài)硬盤的控制芯片的內(nèi)部邏輯結(jié)構(gòu)示意圖;
圖2是本實(shí)用新型一實(shí)施例的固態(tài)硬盤的內(nèi)部邏輯結(jié)構(gòu)示意圖;
圖3是本實(shí)用新型一實(shí)施例的固態(tài)硬盤的USB接口的邏輯結(jié)構(gòu)示意圖;
圖4是本實(shí)用新型一實(shí)施例的固態(tài)硬盤的PCIe接口的邏輯結(jié)構(gòu)示意圖;
圖5是本實(shí)用新型一實(shí)施例的固態(tài)硬盤的SATA接口的邏輯結(jié)構(gòu)示意圖;
圖6是本實(shí)用新型一實(shí)施例的固態(tài)硬盤中的NAND Flash存儲(chǔ)陣列的邏輯結(jié)構(gòu)示意圖;
圖7是本實(shí)用新型一實(shí)施例的固態(tài)硬盤支持的FAT32文件系統(tǒng)的整體布局圖;
圖8是本實(shí)用新型一實(shí)施例的多接口固態(tài)硬盤的工作流程圖。
具體實(shí)施方式
為使本實(shí)用新型實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本實(shí)用新型實(shí)施例中的附圖,對(duì)本實(shí)用新型實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本實(shí)用新型一部分實(shí)施例,而不是全部的實(shí)施例?;诒緦?shí)用新型中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本實(shí)用新型保護(hù)的范圍。
需要說明的是,在不沖突的情況下,本實(shí)用新型中的實(shí)施方式及實(shí)施方式中的特征可以相互組合。
還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”,不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
圖1是本實(shí)用新型一實(shí)施例的用于固態(tài)硬盤的控制芯片的內(nèi)部邏輯結(jié)構(gòu)示意圖。如圖1所示,該控制芯片1為FPGA芯片,包括處理器10、指令處理模塊11、存儲(chǔ)單元控制模塊12、多個(gè)功能子卡控制模塊13和多個(gè)接口控制模塊14。其中,各模塊均通過總線15與處理器10連接。
在圖1所示實(shí)施例中,處理器10為嵌入在FPGA芯片上的MicroBlaze處理器。MicroBlaze處理器是利用FPGA IP核搭建的內(nèi)嵌處理器。在該處理器中安裝有操作系統(tǒng),例如可以是Linux系統(tǒng),用于維護(hù)NTFS、FAT32、exFAT等多種文件系統(tǒng)。通過給本實(shí)用新型實(shí)施例中的FPGA芯片加載不同的bit文件來(lái)配置FPGA芯片,可使本實(shí)用新型所示實(shí)施例維護(hù)不同的文件系統(tǒng)。
存儲(chǔ)單元控制模塊12為NAND Flash控制器,用于實(shí)現(xiàn)對(duì)固態(tài)硬盤中的NAND Flash存儲(chǔ)陣列的訪問,包括讀、寫、擦除等操作。
指令處理模塊11為ATA指令解釋和映射模塊,用于分析和固態(tài)硬盤連接的外部設(shè)備例如PC機(jī)通過固態(tài)硬盤中的SATA接口,USB接口,PCIe接口傳送的ATA指令,并從中獲取PC機(jī)希望執(zhí)行的操作和目的地址并映射為 NAND Flash控制器能直接處理的地址和命令。
接口控制模塊14包括USB接口控制器141,SATA接口控制器142和PCIe接口控制器143。其中,USB接口控制器141用于控制處理器10通過固態(tài)硬盤中的USB接口與PC機(jī)之間的通信;SATA接口控制器142用于控制處理器10通過固態(tài)硬盤中的SATA接口與PC機(jī)之間的通信;PCIe接口控制器用于控制處理器10通過固態(tài)硬盤中的PCIe接口與PC機(jī)之間的通信。
功能子卡控制模塊13包括FMC功能板卡控制器131和132,F(xiàn)MC功能板卡控制器用于控制固態(tài)硬盤中的FMC接口安裝的標(biāo)準(zhǔn)FMC功能板卡的工作。其具體功能與FMC接口安裝的標(biāo)準(zhǔn)FMC功能板卡相關(guān),例如FMC接口安裝DAC板卡,則對(duì)應(yīng)的FMC功能板卡控制器需要控制DAC板卡工作;如FMC接口安裝ADC板卡,則對(duì)應(yīng)的FMC功能板卡控制器需要控制ADC板卡工作。FMC接口安裝的板卡根據(jù)實(shí)際需要靈活選擇,不僅限于ADC板卡和DAC板卡。因此使用本實(shí)用新型之前,需要根據(jù)FMC接口安裝的標(biāo)準(zhǔn)FMC功能板卡正確配置本實(shí)用新型的FPGA。通過給本實(shí)用新型中的FPGA芯片加載對(duì)應(yīng)的bit文件可實(shí)現(xiàn)對(duì)本實(shí)用新型的多種配置,每種配置下FMC功能板卡控制器只能實(shí)現(xiàn)對(duì)特定的標(biāo)準(zhǔn)FMC功能板卡的控制。
圖1所示實(shí)施例中,控制芯片1還包括與處理器10和存儲(chǔ)單元控制模塊12連接的DMA控制器16。本實(shí)用新型實(shí)施例中各模塊包括USB接口控制器,SATA接口控制器,PCIe接口控制器,F(xiàn)MC功能板卡控制器,NAND Flash控制器,ATA指令解釋和映射模塊都通過AXI總線15掛載到MicroBlaze處理器上,由MicroBlaze處理器統(tǒng)一調(diào)度,實(shí)現(xiàn)對(duì)NAND Flash陣列的高速DMA操作。
圖2是本實(shí)用新型一實(shí)施例的固態(tài)硬盤的內(nèi)部邏輯結(jié)構(gòu)示意圖。如圖2所示,該固態(tài)硬盤2包括圖1所示實(shí)施例中的用于固態(tài)硬盤的控制芯片21、存儲(chǔ)單元22、多個(gè)擴(kuò)展接插件23和多個(gè)接口24。其中,存儲(chǔ)單元22、多個(gè)擴(kuò)展接插件23和多個(gè)接口24均與控制芯片21連接。
在圖2所示實(shí)施例中,存儲(chǔ)單元22是NAND Flash芯片組成的存儲(chǔ)陣列,用于存儲(chǔ)數(shù)據(jù);
擴(kuò)展接插件231和232為FMC接口,用于安裝多個(gè)標(biāo)準(zhǔn)FMC功能板卡。 FMC接口安裝的板卡根據(jù)實(shí)際需要靈活選擇,本實(shí)用新型對(duì)此不作限制;
接口24包括USB3.0接口241、SATA接口242和PCIe 2.0接口243,通過接口24本實(shí)用新型實(shí)施例所示固態(tài)硬盤可以和外部設(shè)備例如PC機(jī)進(jìn)行通信。其中,USB接口通過物理接口收發(fā)器例如PHY與FPGA芯片連接。
圖2所示實(shí)施例中,固態(tài)硬盤2還包括與控制芯片21連接的緩存單元,例如DDR3芯片,用于固態(tài)硬盤中數(shù)據(jù)存取的緩存處理。相應(yīng)地,控制芯片21中包括緩存單元控制模塊,例如DDR3控制器。該DDR3控制器通過總線例如AXI連接至控制芯片中的處理器。
以下將結(jié)合圖3、圖4、圖5和圖6說明本實(shí)用新型的接口電路及NAND Flash存儲(chǔ)陣列的具體實(shí)現(xiàn)。
圖3是本實(shí)用新型一實(shí)施例的固態(tài)硬盤的USB接口的邏輯結(jié)構(gòu)示意圖。參見圖3,本實(shí)用新型實(shí)施例中USB接口電路的主要元件可以包括電源轉(zhuǎn)換芯片,TPS74801DRCR、TPS76801QD;USB接口插件,CMS1811-010010;配置EEPROM,24LC256;以及時(shí)鐘元件,NX3225SA-19.200M-EXS00A-CS03082和SG-3040LC 32.7680KB3:PURE SN。
圖4是本實(shí)用新型一實(shí)施例的固態(tài)硬盤的PCIe接口的邏輯結(jié)構(gòu)示意圖。參見圖4,本實(shí)用新型實(shí)施例中PCIe接口電路的主要元件可以包括PCIe金手指和時(shí)鐘芯片ICS854104,ICS874001。
圖5是本實(shí)用新型一實(shí)施例的固態(tài)硬盤的SATA接口的邏輯結(jié)構(gòu)示意圖。參見圖5,本實(shí)用新型實(shí)施例中SATA接口電路的主要元件可以包括SATA接口插件,67490-1221和時(shí)鐘芯片ICS844071。
圖6是本實(shí)用新型一實(shí)施例的固態(tài)硬盤中的NAND Flash存儲(chǔ)陣列的邏輯結(jié)構(gòu)示意圖。參見圖6,本實(shí)用新型實(shí)施例中NAND Flash存儲(chǔ)陣列由多片NAND Flash芯片,MT29F128G08AE[C/E]BB組成。NAND Flash芯片的數(shù)量可結(jié)合儲(chǔ)器帶寬和性能要求靈活擴(kuò)展。
本實(shí)用新型實(shí)施例所示固態(tài)硬盤,存在兩種工作模式:模式0和模式1。 當(dāng)本實(shí)用新型所示的固態(tài)硬盤通過USB接口,SATA接口,PCIe接口三種接口中的任一接口和PC機(jī)相連且在FMC接口安裝了某種標(biāo)準(zhǔn)FMC功能板卡,則固態(tài)硬盤工作于模式0;當(dāng)本實(shí)用新型所示的固態(tài)硬盤通過USB接口,SATA接口,PCIe接口中的任一接口和PC機(jī)相連且未在FMC接口安裝任何標(biāo)準(zhǔn)FMC功能板卡,則此時(shí)固態(tài)硬盤工作于模式1。
本實(shí)用新型所示的固態(tài)硬盤工作時(shí),在根目錄下存在5個(gè)文件夾:CFG文件夾,RD文件夾,WR文件夾,DONE文件夾,USER文件夾。其中,CFG文件夾中存放CFG文件,該類文件為FMC接口安裝的標(biāo)準(zhǔn)FMC功能板卡及對(duì)應(yīng)的FMC功能板卡控制器提供配置參數(shù),CFG文件夾中可存放多個(gè)CFG文件,但同一時(shí)刻只有一個(gè)CFG文件有效;RD文件夾中存放讀操作數(shù)據(jù)文件,該類數(shù)據(jù)文件為本實(shí)用新型中的固態(tài)硬盤在模式0時(shí),標(biāo)準(zhǔn)FMC功能板卡傳送到本實(shí)用新型中的數(shù)據(jù)組成的文件,RD文件夾中可存放多個(gè)數(shù)據(jù)文件;WR文件夾中存放寫操作數(shù)據(jù)文件,該類數(shù)據(jù)文件為本實(shí)用新型中的固態(tài)硬盤在模式0時(shí),PC機(jī)準(zhǔn)備通過標(biāo)準(zhǔn)FMC功能板卡向外發(fā)送的數(shù)據(jù)組成的文件,WR文件夾可存放多個(gè)數(shù)據(jù)文件,但同一時(shí)刻僅有一個(gè)數(shù)據(jù)文件有效且有效的數(shù)據(jù)文件必是有效CFG文件指定的文件;DONE文件夾中存放DONE文件,該類文件代表當(dāng)前CFG文件啟動(dòng)的操作完成,DONE文件夾中可存放多個(gè)DONE文件;USER文件夾中存放文件的類型不受限制,當(dāng)本實(shí)用新型中的固態(tài)硬盤處于模式1時(shí)或者處于模式0但用戶不啟動(dòng)FMC功能板卡只執(zhí)行標(biāo)準(zhǔn)的硬盤文件操作時(shí),用戶的所有文件操作應(yīng)該在本文件夾中執(zhí)行。
本實(shí)用新型中的固態(tài)硬盤工作時(shí),PC機(jī)識(shí)別本存儲(chǔ)器為一硬盤盤符。PC機(jī)訪問本實(shí)用新型所示固態(tài)硬盤的行為如同PC機(jī)訪問標(biāo)準(zhǔn)硬盤。雖然PC機(jī)訪問本實(shí)用新型所示固態(tài)硬盤的行為如同訪問標(biāo)準(zhǔn)硬盤,但需要配合PC機(jī)端的操作機(jī)制,PC機(jī)除了可實(shí)現(xiàn)標(biāo)準(zhǔn)的硬盤操作外,還可啟動(dòng)固態(tài)硬盤中FMC接口安裝的標(biāo)準(zhǔn)FMC功能板卡使其工作,將標(biāo)準(zhǔn)FMC功能板卡接收的數(shù)據(jù)組成文件存儲(chǔ)到本實(shí)用新型所示固態(tài)硬盤中的RD文件夾或者,將WR文件夾中指定文件中的有效數(shù)據(jù),通過標(biāo)準(zhǔn)FMC功能板卡向外發(fā)送數(shù)據(jù)。
以下結(jié)合表1說明用戶在PC機(jī)端的操作機(jī)制。
表1用戶在PC機(jī)上的操作機(jī)制
當(dāng)本實(shí)用新型中的固態(tài)硬盤工作于模式0時(shí),用戶通過PC機(jī)可執(zhí)行的操作如下:
1)如果用戶要啟動(dòng)FMC接口安裝的標(biāo)準(zhǔn)FMC功能板卡并將該標(biāo)準(zhǔn)FMC功能板卡接收的數(shù)據(jù)組成文件存儲(chǔ)到本實(shí)用新型中的固態(tài)硬盤:用戶需要通過PC機(jī)在CFG文件夾中寫入讀操作CFG文件;該CFG文件寫入到CFG文件夾之后,固態(tài)硬盤會(huì)啟動(dòng)其內(nèi)部工作機(jī)制,使FMC接口安裝的標(biāo)準(zhǔn)FMC功能板卡工作并將該標(biāo)準(zhǔn)FMC功能板卡接收的數(shù)據(jù)存儲(chǔ)到固態(tài)硬盤的RD文件夾;數(shù)據(jù)存儲(chǔ)完成后,等待DONE文件夾中生成指定的DONE文件,表示本次操作結(jié)束;待看到指定DONE文件,用戶才可執(zhí)行其他操作。
2)如果用戶需要啟動(dòng)FMC接口安裝的標(biāo)準(zhǔn)FMC功能板卡并通過此板卡向外發(fā)送數(shù)據(jù):用戶需要通過PC機(jī)在CFG文件夾中寫入寫操作CFG文件并在WR文件夾中寫入待發(fā)送的數(shù)據(jù)文件;待CFG文件和指定的數(shù)據(jù)文件寫入完成之后,固態(tài)硬盤會(huì)啟動(dòng)其內(nèi)部工作機(jī)制,使FMC接口安裝的標(biāo)準(zhǔn)FMC功能板卡工作并讀取WR文件夾中的待發(fā)送數(shù)據(jù)文件,從標(biāo)準(zhǔn)FMC功能板卡向外發(fā)送數(shù)據(jù);數(shù)據(jù)發(fā)送結(jié)束后,等待DONE文件夾中生成指定的DONE文件,表示本次操作結(jié)束;待看到指定DONE文件,用戶才可執(zhí)行其他操作。
3)如果PC機(jī)不需要啟動(dòng)FMC接口安裝的標(biāo)準(zhǔn)FMC功能板卡,僅執(zhí)行標(biāo)準(zhǔn)硬盤文件操作。用戶需要在以上兩種操作已經(jīng)完成的情況下,在USER文件夾中執(zhí)行。
當(dāng)本實(shí)用新型中的固態(tài)硬盤工作于模式1時(shí),本實(shí)用新型支持PC機(jī)所有的標(biāo)準(zhǔn)硬盤文件操作,但要求用戶在USER文件夾中執(zhí)行。
本實(shí)用新型支持FAT32,exFAT,NTFS等多種文件系統(tǒng)。以下以FAT32文件系統(tǒng)為例,說明本實(shí)用新型中的固態(tài)硬盤是如何支持文件系統(tǒng)的。
圖7是本實(shí)用新型一實(shí)施例的固態(tài)硬盤支持的FAT32文件系統(tǒng)的整體布局圖。如圖7所示,以本實(shí)用新型中的固態(tài)硬盤采用256GB存儲(chǔ)空間為例,說明NAND Flash空間布局:
設(shè)定文件系統(tǒng)每扇區(qū)字節(jié)數(shù)512字節(jié),每簇32個(gè)扇區(qū),存儲(chǔ)空間劃分為536,870,912個(gè)扇區(qū),其中保留區(qū)使用34個(gè)扇區(qū),2個(gè)FAT區(qū)使用4,161,790個(gè)扇區(qū),數(shù)據(jù)區(qū)使用16,647,159個(gè)簇。
在本實(shí)用新型中的固態(tài)硬盤工作前,需要先為NAND Flash陣列建立FAT32文件系統(tǒng)。具體方法可以如下:
1)建立引導(dǎo)扇區(qū):將如上各配置參數(shù)寫入NAND Flash陣列的保留區(qū)的第0扇區(qū)。
2)初始化FAT0區(qū)和FAT1區(qū):除FAT表項(xiàng)0和FAT表項(xiàng)1外,所有FAT表項(xiàng)為32`h0,表示對(duì)應(yīng)簇未被分配使用;FAT表項(xiàng)0寫入32`hF8FF_FF0F;FAT表項(xiàng)1寫入32`hFFFF_FFFF。
3)初始化數(shù)據(jù)區(qū):擦除數(shù)據(jù)區(qū)所有空間。
4)建立根目錄:寫結(jié)束標(biāo)記32`h0fff_ffff到FAT區(qū)的第2個(gè)FAT表項(xiàng),表示數(shù)據(jù)區(qū)第二簇已經(jīng)分配給根目錄使用;將卷標(biāo)目錄項(xiàng)寫入數(shù)據(jù)區(qū)第二簇中,指定本硬盤盤符為“FAT32_HQ”。
5)根目錄下新建5個(gè)文件夾:CFG文件夾,WR文件夾,RD文件夾,DONE文件夾,USER文件夾。具體建立過程如下:
a)建立CFG文件夾:寫結(jié)束標(biāo)記32`h0fff_ffff到FAT區(qū)的第3表項(xiàng),表示數(shù)據(jù)區(qū)第3簇被使用;將CFG文件夾的文件大小,文件夾名稱,屬性,時(shí)間及開始簇地址等信息寫入到根目錄數(shù)據(jù)區(qū)的目錄項(xiàng)中。
b)建立WR文件夾:寫結(jié)束標(biāo)記32`h0fff_ffff到FAT區(qū)的第4表項(xiàng),表示數(shù)據(jù)區(qū)第4簇被使用;將WR文件夾的文件大小,文件夾名稱,屬性,時(shí)間及開始簇地址等信息寫入到根目錄數(shù)據(jù)區(qū)的目錄項(xiàng)中。
c)建立RD文件夾:寫結(jié)束標(biāo)記32`h0fff_ffff到FAT區(qū)的第5表項(xiàng), 表示數(shù)據(jù)區(qū)第5簇被使用;將RD文件夾的文件大小,文件夾名稱,屬性,時(shí)間及開始簇地址等信息寫入到根目錄數(shù)據(jù)區(qū)的目錄項(xiàng)中。
d)建立DONE文件夾:寫結(jié)束標(biāo)記32`h0fff_ffff到FAT區(qū)的第6表項(xiàng),表示數(shù)據(jù)區(qū)第6簇被使用;將DONE文件夾的文件大小,文件夾名稱,屬性,時(shí)間及開始簇地址等信息寫入到根目錄數(shù)據(jù)區(qū)的目錄項(xiàng)中。
e)建立USER文件夾:寫結(jié)束標(biāo)記32`h0fff_ffff到FAT區(qū)的第7表項(xiàng),表示數(shù)據(jù)區(qū)第7簇被使用;將USER文件夾的文件大小,文件夾名稱,屬性,時(shí)間及開始簇地址等信息寫入到根目錄數(shù)據(jù)區(qū)的目錄項(xiàng)中。
以上操作為本實(shí)用新型中的固態(tài)硬盤工作前的配置工作,配置成功后固態(tài)硬盤中存在指定文件系統(tǒng)。本實(shí)用新型中的固態(tài)硬盤工作時(shí),不需要再執(zhí)行本配置。
由于本實(shí)用新型的固態(tài)硬盤中已經(jīng)存在文件系統(tǒng),當(dāng)固態(tài)硬盤工作時(shí),PC機(jī)通過驅(qū)動(dòng)程序識(shí)別本實(shí)用新型為一卷標(biāo)為“FAT32_HQ”的硬盤。在該盤根目錄下有5個(gè)文件夾分別是CFG文件夾,WR文件夾,RD文件夾,DONE文件夾,USER文件夾。這5個(gè)文件夾受本實(shí)用新型保護(hù),不可被刪除。
固態(tài)硬盤工作時(shí),F(xiàn)PGA根據(jù)固態(tài)硬盤外部連接狀況進(jìn)入正確的工作模式。
當(dāng)固態(tài)硬盤工作于模式0時(shí),F(xiàn)PGA監(jiān)控CFG文件夾中是否存在有效的CFG文件以及PC機(jī)是否請(qǐng)求操作本實(shí)用新型。
如果用戶需要通過PC機(jī)啟動(dòng)標(biāo)準(zhǔn)FMC功能板卡并存儲(chǔ)標(biāo)準(zhǔn)FMC功能板卡接收的數(shù)據(jù)到RD文件夾,用戶需要通過PC機(jī)在CFG文件夾中寫入CFG文件,在該CFG文件中指定標(biāo)準(zhǔn)FMC功能板卡運(yùn)行參數(shù)和標(biāo)準(zhǔn)FMC功能板卡接收數(shù)據(jù)的存儲(chǔ)文件名。固態(tài)硬盤監(jiān)測(cè)到有效的CFG文件后,啟動(dòng)標(biāo)準(zhǔn)FMC功能板卡,然后接收標(biāo)準(zhǔn)FMC功能板卡傳給固態(tài)硬盤的數(shù)據(jù),將其組成文件存儲(chǔ)在RD文件夾中,該文件的名字在對(duì)應(yīng)CFG文件中指定。其中將數(shù)據(jù)組成文件并存儲(chǔ)到RD文件夾的具體流程如下:
1)尋找起始簇:FPGA在FAT表中查找未使用的第一個(gè)FAT表項(xiàng),將其作為本文件寫入起始簇并將結(jié)束標(biāo)記32`h0fff_ffff寫入表項(xiàng)。
2)將標(biāo)準(zhǔn)FMC功能板卡接收的數(shù)據(jù)寫入到起始簇中;若當(dāng)前簇寫滿之后,如還需要繼續(xù)寫入數(shù)據(jù),則FPGA在FAT表中尋找下一個(gè)未使用的FAT 表項(xiàng),將結(jié)束標(biāo)記32`h0fff_ffff寫入該表項(xiàng)并將該表項(xiàng)對(duì)應(yīng)的簇號(hào)寫入上一FAT表項(xiàng),然后將標(biāo)準(zhǔn)FMC功能板卡接收的數(shù)據(jù)寫入到本次尋找的FAT表項(xiàng)對(duì)應(yīng)的數(shù)據(jù)區(qū)簇中;若當(dāng)前簇空間使用完畢后,還需繼續(xù)寫入,則重復(fù)上一步驟,直至數(shù)據(jù)全部寫入完畢。
3)待數(shù)據(jù)寫入完畢后,將文件大小,文件名稱,屬性,時(shí)間及開始簇地址等信息寫入到RD文件夾數(shù)據(jù)區(qū)的目錄項(xiàng)中。
4)生成DONE文件:FPGA在FAT表中尋找未使用的簇,并在該FAT表項(xiàng)中寫入結(jié)束標(biāo)記32`h0fff_ffff,指示當(dāng)前DONE文件使用該簇;然后在數(shù)據(jù)區(qū)該簇中寫入“***文件接收成功”,此處“***”為CFG文件中指定的文件名;最后將該DONE文件的相關(guān)信息如文件大小,文件夾名稱,屬性,時(shí)間及開始簇地址等信息寫入到DONE文件夾數(shù)據(jù)區(qū)的目錄項(xiàng)中。
如果用戶需要通過PC機(jī)啟動(dòng)標(biāo)準(zhǔn)FMC功能板卡并將WR文件夾中指定的數(shù)據(jù)文件通過標(biāo)準(zhǔn)FMC功能板卡發(fā)送出去,用戶需要通過PC機(jī)向CFG文件夾寫入CFG文件,該CFG文件含有指定標(biāo)準(zhǔn)FMC功能板卡運(yùn)行參數(shù)和待發(fā)送的數(shù)據(jù)文件的文件名;用戶還需要通過PC機(jī)向WR文件寫入該待發(fā)送數(shù)據(jù)文件。待固態(tài)硬盤監(jiān)測(cè)到有效的CFG文件和對(duì)應(yīng)的數(shù)據(jù)文件,將啟動(dòng)標(biāo)準(zhǔn)FMC功能板卡,并把WR文件夾中的指定數(shù)據(jù)文件經(jīng)標(biāo)準(zhǔn)FMC功能板卡向外發(fā)送。其中讀取數(shù)據(jù)文件并向外發(fā)送的具體流程如下:
1)尋找指定文件的起始簇:FPGA讀取在根目錄的數(shù)據(jù)區(qū)簇中搜索WR文件夾的目錄項(xiàng);然后在WR文件夾的數(shù)據(jù)區(qū)簇中搜索待發(fā)送文件的目錄項(xiàng),從該目錄項(xiàng)中,F(xiàn)PGA獲取待發(fā)送文件的起始簇。
2)發(fā)送數(shù)據(jù):FPGA從起始簇中,將簇中的有效數(shù)據(jù)讀出,通過標(biāo)準(zhǔn)FMC功能板卡發(fā)送出去;如果數(shù)據(jù)文件的內(nèi)容分布在多個(gè)簇中,當(dāng)前簇中的數(shù)據(jù)讀取完畢后,F(xiàn)PGA通過FAT表項(xiàng)尋找到下一簇,并從中讀取數(shù)據(jù),直到待發(fā)送文件的所有數(shù)據(jù)被讀取。
3)生成DONE文件:FPGA在FAT表中尋找未使用的簇,并在該FAT表項(xiàng)中寫入結(jié)束標(biāo)記32`h0fff_ffff,指示當(dāng)前DONE文件使用該簇;然后在數(shù)據(jù)區(qū)該簇中寫入“***文件發(fā)送成功”,此處文件名為CFG文件中指定的文件名;最后將該DONE文件的相關(guān)信息如文件大小,文件夾名稱,屬性,時(shí)間及開始簇地址等信息寫入到DONE文件夾數(shù)據(jù)區(qū)的目錄項(xiàng)中。
以上描述了本實(shí)用新型實(shí)施例所示固態(tài)硬盤對(duì)FAT32文件系統(tǒng)的支持,但本實(shí)用新型不僅限于支持FAT32文件系統(tǒng),還可以支持exFAT,NTFS等文件系統(tǒng),本實(shí)用新型對(duì)此不作限制。
以下將結(jié)合圖8說明本實(shí)用新型內(nèi)部邏輯模塊的工作機(jī)制。
如圖8所示,本實(shí)用新型中的固態(tài)硬盤通過USB,SATA,PCIe三種接口中的任一接口與PC機(jī)相連并在FMC接口安裝標(biāo)準(zhǔn)FMC功能板卡(或者FMC接口不安裝標(biāo)準(zhǔn)FMC功能板卡),然后上電,固態(tài)硬盤開始工作:首先固態(tài)硬盤會(huì)啟動(dòng)MicroBlaze處理器中的Linux系統(tǒng),并初始化FPGA中的各邏輯單元;待以上操作完成之后,MicroBlaze處理器會(huì)掃描USB接口,SATA接口,PCIe接口和FMC接口,確定固態(tài)硬盤和PC機(jī)之間的有效連接接口以及FMC接口是否安裝標(biāo)準(zhǔn)FMC功能板卡,由此判斷并進(jìn)入正確的工作模式。
1、當(dāng)本實(shí)用新型所示固態(tài)硬盤工作于模式1時(shí),該固態(tài)硬盤如同標(biāo)準(zhǔn)硬盤。該模式下,固態(tài)硬盤具體的工作機(jī)制如下:MicroBlaze處理器會(huì)一直監(jiān)控是否有來(lái)自PC機(jī)的操作請(qǐng)求,直到接收到來(lái)自PC機(jī)的操作請(qǐng)求:
1)如果用戶通過PC機(jī)端口(USB,SATA,PCIe中的任一端口)發(fā)送寫數(shù)據(jù)操作,該操作請(qǐng)求經(jīng)對(duì)應(yīng)的接口控制器傳送到ATA指令解釋和映射模塊;ATA指令解釋和映射模塊,分析出PC機(jī)要求執(zhí)行的操作和目標(biāo)地址并將其映射為NAND Flash控制器能夠直接執(zhí)行的操作和地址,然后發(fā)送給MicroBlaze處理器;MicroBlaze處理器收到相關(guān)信息后,調(diào)用NAND Flash陣列控制器寫入到NAND Flash陣列中,操作的過程中為了縮短操作時(shí)間,將使用DDR3緩存和DMA模塊;
2)如果PC機(jī)通過PC機(jī)端口(USB,SATA,PCIe中的任一端口)發(fā)送讀數(shù)據(jù)操作,該操作請(qǐng)求經(jīng)對(duì)應(yīng)的接口控制器傳送到ATA指令解釋和映射模塊;ATA指令解釋和映射模塊分析出PC機(jī)要求執(zhí)行的操作和目標(biāo)地址并將其映射為NAND Flash控制器能夠直接執(zhí)行的操作和地址,然后發(fā)送給MicroBlaze處理器;MicroBlaze處理器收到相關(guān)信息后,調(diào)用NAND Flash陣列控制器從NAND Flash陣列中讀出的數(shù)據(jù),經(jīng)接口控制器上傳到PC機(jī),在這一過程中,為縮短操作時(shí)間,將使用DDR3緩存和DMA模塊。
3)如果PC機(jī)通過PC機(jī)端口(USB,SATA,PCIe中的任一端口)發(fā)送擦除數(shù)據(jù)操作,該操作請(qǐng)求經(jīng)對(duì)應(yīng)的接口控制器傳送到ATA指令解釋和映射 模塊;ATA指令解釋和映射模塊分析出PC機(jī)要求執(zhí)行的操作和目標(biāo)地址并將其映射為NAND Flash控制器能夠直接執(zhí)行的操作和地址,然后發(fā)送給MicroBlaze處理器;MicroBlaze處理器收到相關(guān)信息后,調(diào)用NAND Flash陣列控制器從NAND Flash陣列中刪除指定位置的數(shù)據(jù)。
2、當(dāng)本實(shí)用新型所示固態(tài)硬盤工作于模式0時(shí),MicroBlaze處理器會(huì)監(jiān)控CFG文件夾中是存在有效的CFG文件。
1)如果不存在,固態(tài)硬盤可以接收PC機(jī)的讀、寫、擦除請(qǐng)求,執(zhí)行標(biāo)準(zhǔn)的硬盤操作,其工作機(jī)制與模式1一致。
2)當(dāng)MicroBlaze處理器發(fā)現(xiàn)CFG文件夾中存在有效的CFG文件之后,MicroBlaze處理器將根據(jù)該CFG文件的類型執(zhí)行不同的操作流程。
A.如果有效的CFG文件為讀操作CFG文件:MicroBlaze處理器根據(jù)文件系統(tǒng)組織結(jié)構(gòu)(具體結(jié)構(gòu)及實(shí)現(xiàn)方法參照前述文件系統(tǒng)的實(shí)現(xiàn))讀取該CFG文件并根據(jù)文件的內(nèi)容設(shè)置對(duì)應(yīng)的標(biāo)準(zhǔn)FMC功能板卡及其控制器;設(shè)置完畢后,標(biāo)準(zhǔn)FMC功能板卡及對(duì)應(yīng)的控制器開始工作;標(biāo)準(zhǔn)FMC功能板卡接收的數(shù)據(jù)由對(duì)應(yīng)的FMC功能板卡控制器傳送到MicroBlaze處理器;MicroBlaze處理器根據(jù)文件系統(tǒng)組織結(jié)構(gòu)(具體結(jié)構(gòu)及實(shí)現(xiàn)方法參照前述文件系統(tǒng)的實(shí)現(xiàn))使用NAND Flash控制器存儲(chǔ)數(shù)據(jù)到NAND Flash陣列中,在這一過程中,為了縮短操作時(shí)間,將使用DDR3緩存和DMA模塊;寫入完成后,RD文件夾中生成一數(shù)據(jù)文件,該數(shù)據(jù)文件的名稱由CFG文件指定;當(dāng)當(dāng)前CFG文件中指定的工作完成,MicroBlaze處理器將根據(jù)指定文件系統(tǒng)組織結(jié)構(gòu)(具體結(jié)構(gòu)及實(shí)現(xiàn)方法參照前述文件系統(tǒng)的實(shí)現(xiàn))向DONE文件夾寫入一DONE文件并無(wú)效當(dāng)前CFG文件;當(dāng)用戶看到DONE文件夾中出現(xiàn)指定DONE文件,用戶可執(zhí)行其他操作。
B.如果有效的CFG文件為寫操作CFG文件:MicroBlaze處理器讀取該CFG文件,確定將要發(fā)送文件的名稱,然后搜索WR文件夾,查看其中是否已經(jīng)存在指定的寫數(shù)據(jù)文件;如果WR文件夾中不存在對(duì)應(yīng)的寫數(shù)據(jù)文件,本實(shí)用新型所示固態(tài)硬盤可執(zhí)行標(biāo)準(zhǔn)的硬盤操作,期間MicroBlaze處理器會(huì)不斷監(jiān)控WR文件夾,查看其中是否有指定的數(shù)據(jù)文件,直到PC機(jī)寫入指定名稱的數(shù)據(jù)文件或者刪除該CFG文件取消啟動(dòng)標(biāo)準(zhǔn)FMC功能板卡;當(dāng)MicroBlaze處理器檢測(cè)到WR文件夾中存在指定的數(shù)據(jù)文件時(shí),MicroBlaze 處理器根據(jù)文件系統(tǒng)組織結(jié)構(gòu)(具體結(jié)構(gòu)及實(shí)現(xiàn)方法參照前述文件系統(tǒng)的實(shí)現(xiàn))讀取寫操作CFG文件中的參數(shù)并根據(jù)文件的內(nèi)容配置標(biāo)準(zhǔn)FMC功能板卡對(duì)應(yīng)的控制器及對(duì)應(yīng)的標(biāo)準(zhǔn)FMC功能板卡;設(shè)置完畢后,標(biāo)準(zhǔn)FMC功能板卡及對(duì)應(yīng)的控制器開始工作;MicroBlaze處理器根據(jù)文件系統(tǒng)組織結(jié)構(gòu)(具體結(jié)構(gòu)及實(shí)現(xiàn)方法參照前述文件系統(tǒng)的實(shí)現(xiàn))通過NAND Flash控制器讀取WR文件夾中指定的數(shù)據(jù)文件,然后解析數(shù)據(jù)文件中的有效載荷并發(fā)送給FMC功能板卡控制器,在FMC功能板卡控制器的控制下由標(biāo)準(zhǔn)FMC功能板卡向外發(fā)送,在這一過程中為了縮短操作時(shí)間,將使用DDR3緩存和DMA模塊;待數(shù)據(jù)發(fā)送完畢,MicroBlaze處理器將根據(jù)指定文件系統(tǒng)組織結(jié)構(gòu)(具體結(jié)構(gòu)及實(shí)現(xiàn)方法參照前述文件系統(tǒng)的實(shí)現(xiàn))在DONE文件夾中寫入一DONE文件,并無(wú)效當(dāng)前CFG文件,當(dāng)用戶看到DONE文件夾中出現(xiàn)對(duì)應(yīng)DONE文件,用戶可以執(zhí)行其他操作。
本實(shí)用新型實(shí)施例所示用于固態(tài)硬盤的控制芯片及固態(tài)硬盤,由于包括多種接口標(biāo)準(zhǔn)不同的接口,例如USB接口、SATA接口、PCIe接口等,可以通過任一接口連接到個(gè)人計(jì)算機(jī),使得本實(shí)用新型實(shí)施例所示固態(tài)硬盤具有多種被個(gè)人計(jì)算機(jī)訪問的選擇,降低了被計(jì)算機(jī)訪問的復(fù)雜度。本實(shí)用新型實(shí)施例還包括多個(gè)用于接插標(biāo)準(zhǔn)功能子卡的接插件,例如標(biāo)準(zhǔn)FMC接口,可以安裝多種標(biāo)準(zhǔn)FMC功能子卡,使得本實(shí)用新型實(shí)施例所示固態(tài)硬盤可用于多種場(chǎng)合下的數(shù)據(jù)存取項(xiàng)目。此外,本實(shí)用新型實(shí)施例支持例如NTFS、FAT32、exFAT等多種文件系統(tǒng),使得本實(shí)用新型實(shí)施例所示固態(tài)硬盤中存儲(chǔ)的數(shù)據(jù)很容易被個(gè)人計(jì)算機(jī)分析處理。
通過以上的實(shí)施例的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到以上所描述的實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。各實(shí)施例可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過硬件。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。
最后應(yīng)說明的是:以上實(shí)施例僅用以說明本實(shí)用新型的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本實(shí)用新型進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本實(shí)用新型各實(shí)施例技術(shù)方案的精神和范圍。