專利名稱:高速數(shù)據(jù)記錄方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù),特別涉及一種高速數(shù)據(jù)記錄方法。
背景技術(shù):
隨著電子信息產(chǎn)業(yè)的迅速發(fā)展,高速數(shù)據(jù)存儲(chǔ)技術(shù)越來(lái)越廣泛的應(yīng)用在 各個(gè)領(lǐng)域,例如高速雷達(dá)與聲納系統(tǒng)、高分辨視頻成像、測(cè)試設(shè)備數(shù)據(jù)采集、 高能物理、電波天文學(xué)以及航空航天測(cè)試等。目前,常用的高速數(shù)據(jù)存儲(chǔ)技
術(shù)是基于SCSI ( Small Computer System Interface,小型計(jì)算機(jī)系統(tǒng)接口 )和 ASPI ( Advanced SCSI Programming Interface ,高級(jí)SCSI編程接口 )的直接 存儲(chǔ)技術(shù),其基本原理是數(shù)據(jù)信息由'PCI (周邊元件擴(kuò)展接口 )數(shù)據(jù)采集 卡經(jīng)PCI總線傳入,利用ASPI函數(shù)繞過文件系統(tǒng)直接對(duì)SCSI磁盤進(jìn)行數(shù)據(jù) 讀寫操作,以比特流的方式將數(shù)據(jù)連續(xù)高速寫入磁盤。繞過文件系統(tǒng)的直接 存儲(chǔ)技術(shù)可以保證數(shù)據(jù)流連續(xù)的記錄在磁盤連續(xù)空間中,以減少磁盤磁頭的 尋道時(shí)間達(dá)到較好的記錄存儲(chǔ)速度,但是,由于數(shù)據(jù)記錄時(shí)沒有文件系統(tǒng)的 支持,記錄的數(shù)據(jù)不滿足文件系統(tǒng)下數(shù)據(jù)文件的存儲(chǔ)結(jié)構(gòu),因此數(shù)據(jù)在操作 系統(tǒng)下是不能直接操作使用的,這樣在每次記錄數(shù)據(jù)結(jié)束后,需要花費(fèi)大量 的時(shí)間逐位讀取磁盤上存儲(chǔ)的數(shù)據(jù),將其轉(zhuǎn)換為操作系統(tǒng)下可以識(shí)別的數(shù)據(jù) 文件。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種高速數(shù)據(jù)記錄方法,使記錄的數(shù)據(jù)能夠滿足 文件系統(tǒng)下數(shù)據(jù)文件的存儲(chǔ)結(jié)構(gòu),存儲(chǔ)結(jié)束后記錄的數(shù)據(jù)不需要單獨(dú)的回放 轉(zhuǎn)換過程,而是直接以數(shù)據(jù)文件的形式保存下來(lái),從而減少形成數(shù)據(jù)文件所 消耗的時(shí)間,使操作系統(tǒng)可以直接訪問記錄的數(shù)據(jù)。
為達(dá)到上述目的,本發(fā)明提供一種高速數(shù)據(jù)記錄方法,包括以下步驟
A、 預(yù)先在磁盤上建立文件系統(tǒng);
B、 將數(shù)據(jù)連續(xù)記錄在文件系統(tǒng)下的數(shù)據(jù)存儲(chǔ)區(qū);
C、 修改所記錄數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),將記錄的數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)文件。 所述步驟A具體包括Al、如果存在多塊物理>磁盤,需要將^t盤的物理存儲(chǔ)空間映射為統(tǒng)一連
續(xù)的邏輯存儲(chǔ)空間;
A2、在邏輯存儲(chǔ)空間上建立文件系統(tǒng)分區(qū);
A3 、定義區(qū)域F0為文件系統(tǒng)中存儲(chǔ)文件/文件夾索引信息和文件數(shù)據(jù)的 區(qū)域。將F0分割為連續(xù)的文件/文件夾'索引信息區(qū)和連續(xù)的數(shù)據(jù)存儲(chǔ)區(qū)兩部 分,其中,文件/文件夾索引信息區(qū)用于存儲(chǔ)文件/文件夾的索引信息,數(shù)據(jù) 存儲(chǔ)區(qū)用于存儲(chǔ)高速數(shù)據(jù)流。
所述步驟B具體包括
Bl、計(jì)算記錄數(shù)據(jù)的起始位置;
B2、從計(jì)算出的起始位置開始將數(shù)據(jù)連續(xù)記錄在文件系統(tǒng)下F0的數(shù)據(jù) 存儲(chǔ)區(qū)。
所述步驟C具體包括
Cl、根據(jù)數(shù)據(jù)記錄的長(zhǎng)度和起始位置信息,在F0區(qū)中的文件/文件夾索 引信息區(qū)為記錄數(shù)據(jù)添加符合文件系統(tǒng)辨準(zhǔn)的索引信息;
C2、定義區(qū)域Fl為文件系統(tǒng)中存儲(chǔ)F0占用狀態(tài)信息的區(qū)域,F(xiàn)0中每 一個(gè)簇的狀態(tài)信息都映射為Fl中的一個(gè)狀態(tài)標(biāo)志。修改FO區(qū)中新記錄的數(shù) 據(jù)和新添加的文件/文件夾索引信息在F1中對(duì)應(yīng)的狀態(tài)標(biāo)志;
其中,所述步驟B1具體包括
Bll、判斷磁盤是否為空,如果為空,則將F0區(qū)數(shù)據(jù)存儲(chǔ)區(qū)的起始位置 作為記錄數(shù)據(jù)的起始位置;如果不為空,則執(zhí)行步驟B12;
B12、判斷磁盤是否有足夠的剩余空間,如果有,則將上次數(shù)據(jù)記錄的 結(jié)束位置作為記錄數(shù)據(jù)的起始位置;否則,格式化磁盤,重新建立文件系統(tǒng) 分區(qū),將F0區(qū)數(shù)據(jù)存儲(chǔ)區(qū)的起始位置作為記錄數(shù)據(jù)的起始位置;
B12所述判斷包括
首先判斷F0的文件/文件夾索引信息區(qū)是否有足夠的空間用于加入新文 件和新文件夾的索引信息,其次判斷F0的數(shù)據(jù)存儲(chǔ)區(qū)是否有足夠的空間用 于存儲(chǔ)新記錄的數(shù)據(jù),如果二者都有足夠的空間,則確定磁盤有足夠的剩余 空間。
本發(fā)明的高速數(shù)據(jù)記錄方法相對(duì)于現(xiàn)有的基于SCSI和ASPI的直接存儲(chǔ) 技術(shù)可以有效的簡(jiǎn)化數(shù)據(jù)記錄完成后形成數(shù)據(jù)文件這一過程,減少形成數(shù)據(jù) 文件所消耗的時(shí)間。
圖1為本發(fā)明高速數(shù)據(jù)記錄方法的總體流程示意圖;
圖2為FAT32文件系統(tǒng)結(jié)構(gòu)示意圖3為建立FAT32文件系統(tǒng)框架的流程示意圖4計(jì)算數(shù)據(jù)記錄起始位置流程示意圖「
圖5記錄數(shù)據(jù)流程示意具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,下面參照附圖并舉
實(shí)施例,對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
圖1示出了本發(fā)明中高速數(shù)據(jù)記錄方法的流程圖,包括以下步驟
步驟101:預(yù)先在磁盤上建立文件系統(tǒng);
步驟102:將數(shù)據(jù)連續(xù)記錄在文件系統(tǒng)下的數(shù)據(jù)存儲(chǔ)區(qū);
步驟103:完成數(shù)據(jù)記錄后修改數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),將記錄的數(shù)據(jù)轉(zhuǎn)換為
數(shù)據(jù)文件。
較佳地,所述文件系統(tǒng)可以為FAT32 ( File Allocation Table 32,文件分 配表32)文件系統(tǒng)。FAT32文件系統(tǒng)受支持廣泛,且結(jié)構(gòu)簡(jiǎn)單易與軟件編程 實(shí)現(xiàn)。根據(jù)FAT32的結(jié)構(gòu)特點(diǎn), 一旦分區(qū)建立,F(xiàn)AT32分區(qū)中的MBR( Mater Boot Record,主引導(dǎo)記錄)區(qū)域、DBR ( DOS Boot Record, ^茲盤l喿作系統(tǒng)引 導(dǎo)記錄)區(qū)域、FATl ( File Allocation Table 1 ,文件分配表1 )區(qū)域、FAT2 (File Allocation Table,文件分配表2 )區(qū)域以及DATA(數(shù)據(jù))區(qū)域的起始 結(jié)束位置就可以完全確定下來(lái)。
其中,F(xiàn)ATl區(qū)和FAT2區(qū)用于管理FAT32分區(qū)的DATA區(qū)中每個(gè)簇的 使用情況,F(xiàn)AT2區(qū)作為FATl區(qū)的備份存在。組成DATA區(qū)的每一個(gè)蔟都 在FATl和FAT2中以一個(gè)32bit的標(biāo)志標(biāo)注。
DATA區(qū)域是物理上連續(xù)的磁盤空間區(qū)域,是真正意義上的數(shù)據(jù)存儲(chǔ)的 地方,文件/文件夾的索引信息、文件中的數(shù)據(jù)都存儲(chǔ)在這個(gè)區(qū)域。本發(fā)明將 DATA區(qū)域合理的劃分為兩個(gè)部分,前一部分預(yù)留空間作為DATA區(qū)的文件 /文件夾索引信息區(qū)專門存儲(chǔ)文件/文件夾的索引信息;后 一部分的連續(xù)空間作為DATA區(qū)的數(shù)據(jù)存儲(chǔ)區(qū)(如圖2所示)。這樣DATA區(qū)的數(shù)據(jù)存儲(chǔ)區(qū)作 為連續(xù)的磁盤空間用于存儲(chǔ)高速數(shù)據(jù)流的時(shí)候,可以保證數(shù)據(jù)的高速連續(xù)存 儲(chǔ),減少磁頭的尋道時(shí)間,提高存儲(chǔ)速度。記錄結(jié)束后只需要修改DATA區(qū) 中記錄占用的簇在FAT1區(qū)和FAT2區(qū)中對(duì)應(yīng)的標(biāo)志,并在DATA區(qū)的文件/ 文件夾索引信息區(qū)加入文件和文件夾的索引信息就完成了記錄的數(shù)據(jù)到數(shù)據(jù) 文件的轉(zhuǎn)化。
這樣的記錄數(shù)據(jù)到數(shù)據(jù)文件的轉(zhuǎn)化過程不需要再次逐個(gè)操作存儲(chǔ)記錄 的數(shù)據(jù),只需要操作修改FAT32文件系統(tǒng)中和文件信息相關(guān)的區(qū)域,操作修 改的數(shù)據(jù)量遠(yuǎn)遠(yuǎn)小于先用的基于ASPI和SCSI直接存儲(chǔ)技術(shù)中回放形成數(shù)據(jù) 文件所需要操作修改的數(shù)據(jù)量,因此大大簡(jiǎn)化了記錄數(shù)據(jù)轉(zhuǎn)化成為數(shù)據(jù)文件 的過程,減少了形成數(shù)據(jù)文件的時(shí)間。
下面具體介紹圖1所示高速數(shù)據(jù)記錄各個(gè)步驟的詳細(xì)實(shí)現(xiàn)過程。
步驟101建立文件系統(tǒng)。
建立文件系統(tǒng)的具體實(shí)現(xiàn)步驟如圖3所示。首先如步驟301,基于RAID0 (Redundent Array of Independent Disks 0,獨(dú)立磁盤冗余陣列0 )將多塊磁盤 的物理存儲(chǔ)空間映射為統(tǒng)一的連續(xù)的邏輯存儲(chǔ)空間;第二步如步驟302,在 邏輯磁盤空間上建立FAT32分區(qū),使用操作系統(tǒng)支持的格式化軟件格式化建 立FAT32分區(qū);最后如步驟303,將FAT32的DATA區(qū)劃分為兩個(gè)部分, 前一部分占用DATA區(qū)的前1000個(gè)簇(簇序號(hào)為2~ 1001 )作為文件/文件 夾索引信息區(qū)專門存儲(chǔ)文件/文件夾的索引信息,后一部分起始于DATA區(qū) 的第1001簇(簇序號(hào)為1002)直到DATA區(qū)的結(jié)束作為數(shù)據(jù)存儲(chǔ)區(qū)用于存 儲(chǔ)高速數(shù)據(jù)流。完成這3個(gè)步驟后就在,盤陣空間上建立好了 FAT32文件系 統(tǒng)的框架。需要說明的是,DATA區(qū)中文件/文件夾索引信息區(qū)和數(shù)據(jù)存儲(chǔ)區(qū) 的大小可根據(jù)具體需求設(shè)置,不限于上述一種形式。
步驟102將數(shù)據(jù)連續(xù)記錄在文件系統(tǒng)下的數(shù)據(jù)存儲(chǔ)區(qū),具體分為計(jì)算記 錄數(shù)據(jù)的起始位置和記錄數(shù)據(jù)兩部分。
一、計(jì)算記錄數(shù)據(jù)的起始位置
每次開始記錄數(shù)據(jù)前,需要計(jì)算數(shù)據(jù)在磁盤陣上的起始記錄位置。實(shí)現(xiàn) 過程如圖4所示。步驟401,判斷磁盤陣是否為空。磁盤陣中沒有存儲(chǔ)乾據(jù) 時(shí)表示磁盤陣為空,進(jìn)入步驟404,計(jì)算記錄數(shù)據(jù)的起始位置結(jié)果應(yīng)為DATA 區(qū)數(shù)據(jù)存儲(chǔ)區(qū)的起始位置,即DATA區(qū)的第1001簇;如果磁盤中存儲(chǔ)了數(shù) 據(jù),則需要進(jìn)入步驟402判斷磁盤是否有足夠的剩余空間,此時(shí)的判斷分為兩個(gè)部分,首先判斷DATA區(qū)前1000簇的文件/文件夾索引信息區(qū)是否有足 夠的空間用于加入新文件和新文件夾的索引信息,其次判斷DATA區(qū)的數(shù)據(jù) 存儲(chǔ)區(qū)是否有足夠的空間用于存儲(chǔ)新記錄的數(shù)據(jù),若二者都有足夠的空間, 則表示磁盤有足夠的剩余空間,需要進(jìn)入步驟405,計(jì)算記錄數(shù)據(jù)的起均位 置結(jié)果為緊跟上次數(shù)據(jù)記錄的結(jié)束位置。根據(jù)步驟402判斷的結(jié)果如果磁盤 沒有足夠的剩余空間進(jìn)入步驟403格式化》茲盤,重新建立FAT32文件系統(tǒng)分 區(qū),然后進(jìn)入步驟404,計(jì)算記錄數(shù)據(jù)的起始位置結(jié)果為DATA區(qū)數(shù)據(jù)存儲(chǔ) 區(qū)的起始位置,即DATA區(qū)的第1001簇。完成步驟102,得到需要記錄數(shù)據(jù) 在磁盤陣存儲(chǔ)空間上的起始位置。 二、記錄數(shù)據(jù)。
計(jì)算出記錄數(shù)據(jù)的起始位置后,從計(jì)算出的起始位置開始將數(shù)據(jù)連續(xù)記 錄在DATA的數(shù)據(jù)存儲(chǔ)區(qū)。
步驟103修改數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)。
記錄數(shù)據(jù)結(jié)束后,數(shù)據(jù)記錄的長(zhǎng)度,數(shù)據(jù)記錄的起始位置信息就可以完 全確定,根據(jù)這些信息完成步驟103后處理修改數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)。具體流程如 圖5所示。
步驟501添加文件/文件夾索引信息。受到FAT32文件系統(tǒng)對(duì)文件大小 的限制, 一次記錄存儲(chǔ)的數(shù)據(jù)長(zhǎng)度超過2GB (GigaByte)時(shí),需要將記錄存 儲(chǔ)的數(shù)據(jù)分割保存為若干小于等于2GB的數(shù)據(jù)文件。因此需要根據(jù)每個(gè)分割 文件的起始位置和長(zhǎng)度信息在DATA的文件/文件夾索引信息添加符合 FAT32標(biāo)準(zhǔn)的文件/文件夾索引信息。步驟502修改FAT1區(qū)。標(biāo)注DATA 區(qū)數(shù)據(jù)存儲(chǔ)區(qū)新記錄的數(shù)據(jù)以及文件/文件夾索引信息區(qū)中新添加的文件/文 件夾索引信息在FAT1區(qū)中對(duì)應(yīng)的標(biāo)志。步驟503修改FAT2區(qū)。FAT2區(qū)是 FAT1的備份,同樣的方法修改FAT2區(qū)。
這樣步驟103只修改了 FAT1區(qū)、FAT2區(qū)以及DATA區(qū)下文件/文件夾 索引信息區(qū)中和建立文件相關(guān)數(shù)據(jù)信息,并未操作訪問已經(jīng)記錄的數(shù)據(jù),大 大減少了需要操作訪問的數(shù)據(jù)量,縮短.了形成文件的時(shí)間。
以上所述對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步的詳細(xì)說 明,所應(yīng)理解的是,以上所述并不用以限制本發(fā)明,凡在本發(fā)明的精神和原 則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范 圍之內(nèi)。
權(quán)利要求
1、一種高速數(shù)據(jù)記錄方法,其特征在于,包括以下步驟A、預(yù)先在磁盤上建立文件系統(tǒng);B、將數(shù)據(jù)連續(xù)記錄在文件系統(tǒng)下的數(shù)據(jù)存儲(chǔ)區(qū);C、修改所記錄數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),將記錄的數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)文件;所述步驟A具體包括A1、如果存在多塊物理磁盤,將磁盤的物理存儲(chǔ)空間映射為統(tǒng)一連續(xù)的邏輯存儲(chǔ)空間;A2、在邏輯存儲(chǔ)空間上建立文件系統(tǒng)分區(qū);A3、定義區(qū)域F0為文件系統(tǒng)中存儲(chǔ)文件/文件夾索引信息和文件數(shù)據(jù)的區(qū)域;將F0分割為連續(xù)的文件/文件夾索引信息區(qū)和連續(xù)的數(shù)據(jù)存儲(chǔ)區(qū)兩部分,其中,文件/文件夾索引信息區(qū)用于存儲(chǔ)文件/文件夾的索引信息,數(shù)據(jù)存儲(chǔ)區(qū)用于存儲(chǔ)高速數(shù)據(jù)流;所述步驟B具體包括B1、計(jì)算記錄數(shù)據(jù)的起始位置;B2、從計(jì)算出的起始位置開始將數(shù)據(jù)連續(xù)記錄在文件系統(tǒng)下F0的數(shù)據(jù)存儲(chǔ)區(qū);所述步驟C具體包括C1、根據(jù)數(shù)據(jù)記錄的長(zhǎng)度和起始位置信息,在F0區(qū)中的文件/文件夾索引信息區(qū)為記錄數(shù)據(jù)添加符合文件系統(tǒng)標(biāo)準(zhǔn)的索引信息;C2、定義區(qū)域F1為文件系統(tǒng)中存儲(chǔ)F0占用狀態(tài)信息的區(qū)域,F(xiàn)0中每一個(gè)簇的狀態(tài)信息都映射為F1中的一個(gè)狀態(tài)標(biāo)志,修改F0區(qū)中新記錄的數(shù)據(jù)和新添加的文件/文件夾索引信息在F1中對(duì)應(yīng)的狀態(tài)標(biāo)志。
全文摘要
本發(fā)明涉及一種高速數(shù)據(jù)記錄方法及裝置。所述方法包括以下步驟A.預(yù)先在磁盤上建立文件系統(tǒng);B.將數(shù)據(jù)連續(xù)記錄在文件系統(tǒng)下的數(shù)據(jù)存儲(chǔ)區(qū);C.修改所記錄數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),將記錄的數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)文件。利用本發(fā)明所提供的方案,能夠簡(jiǎn)化數(shù)據(jù)記錄完成后形成數(shù)據(jù)文件這一過程,減少形成數(shù)據(jù)文件所消耗的時(shí)間。
文檔編號(hào)G06F17/30GK101567000SQ200910080459
公開日2009年10月28日 申請(qǐng)日期2009年3月19日 優(yōu)先權(quán)日2009年3月19日
發(fā)明者偉 劉, 峰 劉, 曾大治, 超 王, 騰 龍 申請(qǐng)人:北京理工大學(xué)