本發(fā)明涉及小衛(wèi)星固態(tài)存儲(chǔ)器分時(shí)復(fù)用管理讀寫文件方法,以適應(yīng)衛(wèi)星對(duì)固態(tài)存儲(chǔ)器寫入當(dāng)前文件數(shù)據(jù)同時(shí)讀取當(dāng)前寫入或歷史寫入文件數(shù)據(jù)的需求。
背景技術(shù):
小衛(wèi)星對(duì)地?cái)?shù)據(jù)傳輸受地面站可視范圍影響,在地面站可視范圍才能完成星到地的數(shù)據(jù)傳輸,這種方式僅能將在地面站可視范圍內(nèi)有效載荷獲取的數(shù)據(jù)實(shí)時(shí)傳輸至地面站;如果在地面站可視范圍外有效載荷獲取數(shù)據(jù)需要以文件形式先存儲(chǔ)在固態(tài)存儲(chǔ)器其中,當(dāng)進(jìn)入地面站可視范圍內(nèi)將固態(tài)存儲(chǔ)器中文件數(shù)據(jù)回放至地面站,這種方式對(duì)固態(tài)存儲(chǔ)器的讀寫操作是不同時(shí)進(jìn)行的。以上兩種方式是小衛(wèi)星將有效載荷數(shù)據(jù)對(duì)地傳輸基本工作模式。
為適應(yīng)用戶兩種新的需求:1.有效載荷獲取高質(zhì)量數(shù)據(jù),使數(shù)傳接收原始數(shù)據(jù)量顯著提高,但數(shù)傳射頻通道速率是固定的,在地面站可視范圍內(nèi)將獲取大數(shù)據(jù)量傳至地面站;2.在地面站可視范圍邊界內(nèi)外區(qū)域連續(xù)獲取高質(zhì)量數(shù)據(jù)并需及時(shí)傳至地面站。這些需求都需要星載固態(tài)存儲(chǔ)器具有數(shù)據(jù)緩存功能并可以對(duì)當(dāng)前文件的同時(shí)讀寫數(shù)據(jù),這種固態(tài)存儲(chǔ)器工作模式被稱為“邊記邊放”?,F(xiàn)有固態(tài)存儲(chǔ)器通過內(nèi)部存儲(chǔ)空間分區(qū)調(diào)度實(shí)現(xiàn)“邊記邊放”功能,具體機(jī)理如下:
當(dāng)固態(tài)存儲(chǔ)器工作在邊記邊放,為了解決單口flash存儲(chǔ)芯片的訪問沖突問題,整個(gè)存儲(chǔ)陣列等分為三個(gè)子陣列(bank)并配備兩套總線,一套用于記錄而另一套則用于回放。每套總線各有三條分支,分別對(duì)應(yīng)一個(gè)子陣列,每個(gè)子陣列在一個(gè)時(shí)刻只能工作在讀模式或?qū)懩J?。每個(gè)子陣列從上到下又分成若干分區(qū)(也可以稱為扇區(qū)),在緩沖模式工作時(shí),三個(gè)子陣列的分區(qū)在任務(wù)管理單元的統(tǒng)一調(diào)度下交替記錄和回放,從而達(dá)到宏觀上同時(shí)讀寫的目的,分區(qū)調(diào)度策略如圖1圖1所示。
但對(duì)于用戶及衛(wèi)星設(shè)計(jì)方提出固態(tài)存儲(chǔ)器寫入當(dāng)前數(shù)據(jù)同時(shí)讀取當(dāng)前寫入數(shù)據(jù)或歷史寫入數(shù)據(jù)的需求,即邊記邊放多文件功能,此種設(shè)計(jì)無法實(shí)現(xiàn)?!?bank”分區(qū)調(diào)度設(shè)計(jì)中,回放地址與記錄地址必須滿足匹配關(guān)系(如放bank1的地址,記錄bank3的地址)才能啟動(dòng)邊記邊放,因此每次啟動(dòng)回放都需要3~5秒的匹配過程(取決于記錄速率的快慢)。因此邊記邊放多文件時(shí),文件之間必然出現(xiàn)3~5秒的空擋期。并且由于每個(gè)文件由位于不同bank的大量地址組成,鑒于單片機(jī)資源有效,邊記邊放多文件的軟件設(shè)計(jì)難度極大。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)解決問題是:為滿足固態(tài)存儲(chǔ)器“邊記邊放”模式支持回放任意文件,支持回放多文件,且對(duì)記錄速率與回放速率相對(duì)快慢關(guān)系無約束的需求,提供一種小衛(wèi)星固態(tài)存儲(chǔ)器分時(shí)復(fù)用管理讀寫文件方法,將固態(tài)存儲(chǔ)器存儲(chǔ)空間從“3bank”整合為一個(gè)完整存儲(chǔ)空間,利用dma控制器控制存儲(chǔ)空間中存儲(chǔ)陣列對(duì)唯一一根數(shù)據(jù)總線分時(shí)占用讀寫,以達(dá)到宏觀上固態(tài)存儲(chǔ)器的讀操作和寫操作是獨(dú)立的,最終滿足固態(tài)存儲(chǔ)器寫入當(dāng)前數(shù)據(jù)同時(shí)讀取當(dāng)前寫入數(shù)據(jù)或歷史寫入數(shù)據(jù)的需求。
本發(fā)明的技術(shù)解決方案是:固態(tài)存儲(chǔ)器存儲(chǔ)空間統(tǒng)一整合并采用dma控制器控制固態(tài)存儲(chǔ)器讀寫操作分時(shí)復(fù)用共用數(shù)據(jù)總線的調(diào)度策略,實(shí)現(xiàn)固態(tài)存儲(chǔ)器記錄與回放獨(dú)立運(yùn)行。
本發(fā)明實(shí)現(xiàn)步驟如下:
(1)固態(tài)存儲(chǔ)器的存儲(chǔ)陣列整合為一個(gè)整體統(tǒng)一編排存儲(chǔ)地址,開辟輸入數(shù)據(jù)緩存和輸出數(shù)據(jù)緩存,通過帶有dma控制器數(shù)據(jù)總線將存儲(chǔ)陣列與輸入數(shù)據(jù)緩存和輸出數(shù)據(jù)緩存連接;
(2)當(dāng)固態(tài)存儲(chǔ)器記錄數(shù)據(jù)時(shí),輸入數(shù)據(jù)緩存內(nèi)數(shù)據(jù)通過數(shù)據(jù)總線記入存儲(chǔ)空間完成寫操作,當(dāng)固態(tài)存儲(chǔ)器讀取數(shù)據(jù)時(shí),輸入出數(shù)據(jù)緩存通過數(shù)據(jù)總線讀取存儲(chǔ)空間內(nèi)數(shù)據(jù)完成讀操作;
(3)讀寫操作共用一條數(shù)據(jù)總線,dma控制器控制讀寫操作占用數(shù)據(jù)總線的時(shí)間,對(duì)應(yīng)劃分為讀時(shí)間和寫時(shí)間,使讀寫操作獨(dú)立進(jìn)行,實(shí)現(xiàn)對(duì)數(shù)據(jù)總線的分時(shí)復(fù)用,特別是當(dāng)固態(tài)存儲(chǔ)器同時(shí)讀寫時(shí),dma控制器將數(shù)據(jù)總線占用時(shí)間劃分為細(xì)小時(shí)間片,并依次分配給讀寫操作,宏觀上固態(tài)存儲(chǔ)器同時(shí)讀寫功能。
所述步驟(1),將固態(tài)存儲(chǔ)器的存儲(chǔ)陣列的地址通過地址管理軟件進(jìn)行按序編排,使固態(tài)存儲(chǔ)器的存儲(chǔ)陣列成為一個(gè)整體,固態(tài)存儲(chǔ)器輸入數(shù)據(jù)緩存和輸出數(shù)據(jù)緩存,兩個(gè)獨(dú)立緩存根據(jù)輸入輸出速率需求選取不同緩存器件,如高速ddr、mram、fpga等,兩個(gè)緩存與存儲(chǔ)陣列之間由帶有dma控制器的數(shù)據(jù)總線,dma控制器控制輸入緩存和輸出緩存通過數(shù)據(jù)總線完成操作占用時(shí)間。
所述步驟(2)固態(tài)存儲(chǔ)器進(jìn)行數(shù)據(jù)記錄時(shí),外部輸入數(shù)據(jù)進(jìn)入輸入數(shù)據(jù)緩存,輸入數(shù)據(jù)緩存通過數(shù)據(jù)總線將輸入數(shù)據(jù)傳輸給存儲(chǔ)陣列,存儲(chǔ)陣列管理軟件控制寫入輸入數(shù)據(jù)并生成文件,這個(gè)過程稱為寫操作;固態(tài)存儲(chǔ)器進(jìn)行數(shù)據(jù)回放時(shí),存儲(chǔ)陣列管理軟件讀取存儲(chǔ)陣列內(nèi)文件數(shù)據(jù),通過數(shù)據(jù)總線傳輸給輸出數(shù)據(jù)緩存,之后經(jīng)輸出接口輸出,這個(gè)過程稱為讀操作。
所述步驟(3)中讀寫操作共用一條數(shù)據(jù)總線時(shí),dma控制器控制讀寫操作占用數(shù)據(jù)總線時(shí)間來控制讀寫操作,實(shí)現(xiàn)對(duì)數(shù)據(jù)總線的分時(shí)復(fù)用,讀寫操作獨(dú)立進(jìn)行,當(dāng)固態(tài)存儲(chǔ)器進(jìn)行數(shù)據(jù)記錄時(shí),即固態(tài)存儲(chǔ)器內(nèi)部進(jìn)行寫操作,dma控制器將占用數(shù)據(jù)總線時(shí)間分配給寫操作,該用數(shù)據(jù)總線時(shí)間稱為寫時(shí)間;當(dāng)固態(tài)存儲(chǔ)器進(jìn)行數(shù)據(jù)回放時(shí),即固態(tài)存儲(chǔ)器內(nèi)部進(jìn)行讀操作,dma控制器將占用數(shù)據(jù)總線時(shí)間分配給讀操作,該用數(shù)據(jù)總線時(shí)間稱為讀時(shí)間;當(dāng)固態(tài)存儲(chǔ)器邊記邊放時(shí),即固態(tài)存儲(chǔ)器內(nèi)部同時(shí)讀寫操作時(shí),dma控制器將占用數(shù)據(jù)總線時(shí)間劃分為細(xì)小的時(shí)間片(時(shí)間),即記錄時(shí)間片和回放時(shí)間片為200-300微秒,記錄時(shí)間片小于記錄緩存時(shí)間,回放時(shí)間片小于回放緩存時(shí)間,且滿足記錄時(shí)間片快,回放時(shí)間片慢,依次分配給讀寫操作,在時(shí)間上看來固態(tài)存儲(chǔ)器在同時(shí)讀寫,由于讀寫操作分時(shí)獨(dú)立操作,實(shí)現(xiàn)固態(tài)存儲(chǔ)器寫入當(dāng)前文件數(shù)據(jù)同時(shí)讀取當(dāng)前寫入或歷史寫入文件數(shù)據(jù)。
本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:
(1)本發(fā)明通過dma控制器控制固態(tài)存儲(chǔ)器讀寫操作占用數(shù)據(jù)總線時(shí)間,使固態(tài)存儲(chǔ)器讀寫相對(duì)于“3bank”設(shè)計(jì)徹底獨(dú)立運(yùn)行,可以完成單獨(dú)記錄文件、單獨(dú)回放文件,對(duì)同一文件邊記邊放,記錄當(dāng)前文件同時(shí)回放以前文件等多種工作模式,使固態(tài)存儲(chǔ)器使用方式更為多樣和靈活。
(2)本發(fā)明存儲(chǔ)陣列整合為一體大大簡(jiǎn)化在軟件層面地址資源管理與使用復(fù)雜度。
(3)本發(fā)明讀寫操作共用數(shù)據(jù)總線使固態(tài)存儲(chǔ)器硬件層面簡(jiǎn)化結(jié)構(gòu)設(shè)計(jì)。
附圖說明
圖1為原固態(tài)存儲(chǔ)器存儲(chǔ)空間為“3bank”結(jié)構(gòu)分區(qū)調(diào)度設(shè)計(jì)架構(gòu)圖;
圖2為本發(fā)明固態(tài)存儲(chǔ)器存儲(chǔ)空間分時(shí)復(fù)用調(diào)度設(shè)計(jì)架構(gòu)圖;
圖3為本發(fā)明中dma控制固態(tài)存儲(chǔ)器同時(shí)讀寫時(shí)時(shí)間片劃分與分配圖;
具體實(shí)施方式
如圖2所示,固態(tài)存儲(chǔ)器結(jié)構(gòu)與圖1所示的“3bank”結(jié)構(gòu)設(shè)計(jì)相比,將存儲(chǔ)陣列整合為一個(gè)整體,不再依賴于三個(gè)bank子陣列的串行工作,記錄數(shù)據(jù)和回放數(shù)據(jù)獨(dú)立數(shù)據(jù)總線由一根帶有dma控制器的數(shù)據(jù)總線替代,即整個(gè)存儲(chǔ)陣列在物理上對(duì)外僅有一條唯一的數(shù)據(jù)總線對(duì)應(yīng)輸入數(shù)據(jù)緩存和輸出數(shù)據(jù)緩存,無論在記錄還是回放時(shí)都是通過dma控制器分時(shí)復(fù)用調(diào)度讀寫操作占用數(shù)據(jù)總線時(shí)間。當(dāng)固態(tài)存儲(chǔ)器進(jìn)行數(shù)據(jù)記錄時(shí),即固態(tài)存儲(chǔ)器內(nèi)部進(jìn)行寫操作,dma控制器將占用數(shù)據(jù)總線時(shí)間分配給寫操作,該時(shí)間稱為寫時(shí)間;當(dāng)固態(tài)存儲(chǔ)器進(jìn)行數(shù)據(jù)回放時(shí),即固態(tài)存儲(chǔ)器內(nèi)部進(jìn)行讀操作,dma控制器將占用數(shù)據(jù)總線時(shí)間分配給讀操作,該時(shí)間稱為讀時(shí)間;當(dāng)固態(tài)存儲(chǔ)器工作在邊記邊放模式時(shí),dma控制器需將數(shù)據(jù)總線工作時(shí)間軸分為寫和讀兩種時(shí)間片進(jìn)行輪詢,在寫時(shí)間片時(shí)對(duì)應(yīng)寫操作占用數(shù)據(jù)總線,讀時(shí)間片時(shí)對(duì)應(yīng)讀操作占用數(shù)據(jù)總線。
如圖3所示,固態(tài)存儲(chǔ)器在邊記邊放模式時(shí),dma控制器將讀寫操作占用數(shù)據(jù)總線時(shí)間依次均與劃分為寫和讀時(shí)間片:在“寫時(shí)間片1”執(zhí)行寫操作,輸入的記錄數(shù)據(jù)占用數(shù)據(jù)總線,將數(shù)據(jù)寫入存儲(chǔ)陣列進(jìn)行存儲(chǔ);在t0時(shí)刻,停止寫操作,記錄數(shù)據(jù)釋放總線,總線切換至回放數(shù)據(jù),執(zhí)行讀操作,在“回放時(shí)間片1”,存儲(chǔ)陣列中存儲(chǔ)的數(shù)據(jù)被取出并寫入輸出數(shù)據(jù)緩存,同時(shí),記錄數(shù)據(jù)寫入輸入數(shù)據(jù)緩存中等待存儲(chǔ);在t1時(shí)刻,停止讀操作,回放數(shù)據(jù)釋放總線,總線切換至記錄數(shù)據(jù),執(zhí)行寫操作,在“記錄時(shí)間片2”,輸入數(shù)據(jù)緩存中的數(shù)據(jù)被取出并寫入存儲(chǔ)陣列進(jìn)行存儲(chǔ),同時(shí)輸出數(shù)據(jù)緩存中的數(shù)據(jù)被送至輸出接口板中并按分系統(tǒng)要求速率進(jìn)行回放。依此類推,整個(gè)邊記邊放過程中,在微觀上由dma控制器控制讀寫操作對(duì)數(shù)據(jù)總線分時(shí)復(fù)用,而在宏觀時(shí)間上固態(tài)存儲(chǔ)器表現(xiàn)為同時(shí)讀寫。
固態(tài)存儲(chǔ)器采用總線分時(shí)復(fù)用策略后,使得固態(tài)存儲(chǔ)器內(nèi)部讀、寫操作獨(dú)立進(jìn)行,“邊記邊放”模式可以在記錄當(dāng)前文件同時(shí)支持回放任意文件(當(dāng)前文件或歷史文件),且跨文件可以無縫銜接。