專利名稱:具有改善緩沖器容量的使用的大容量存儲系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及具有改善緩沖器容量的使用的大容量存儲系統(tǒng),并且更具體地涉及具 有嵌入式控制器的用于實時數(shù)據(jù)存儲的大容量存儲系統(tǒng)(massstorage system)
背景技術(shù):
為存儲直接來自數(shù)據(jù)流源(例如膠片攝像機(film camera))的、具有高數(shù)據(jù)速率 的實時數(shù)據(jù)流而設(shè)計的嵌入式的獨立(stand-alone)系統(tǒng)通常可以被拆分(split up)為 兩種數(shù)據(jù)處理 1.具有保證的數(shù)據(jù)速率的實時視頻數(shù)據(jù)存儲,以及 2.由嵌入式處理器管理的諸如文件系統(tǒng)信息之類的非實時數(shù)據(jù)存儲。 兩種數(shù)據(jù)通道(path)都必須與I/O控制器連接,所述I/O控制器實施與形成大容
量存儲陣列的存儲單元的I/O通信。 通過諸如硬盤、光盤或基于固態(tài)的存儲器(memory)之類的單一存儲單元的并行 化來達到確保的高數(shù)據(jù)速率。以上類型的存儲單元經(jīng)常在傳輸?shù)拈_始處引入顯著的等待時 間(latency)。由于尤其在需要實時行為時等待時間成為問題,所以引入諸如SRAM和/或 SDRAM之類的無存取等待時間或至少沒有顯著的存取等待時間的存儲器。對于移動應(yīng)用具 體而言,其他要求是整個存儲系統(tǒng)必須盡可能小并且必須具有減少的功耗。
發(fā)明內(nèi)容
本發(fā)明的目的是提出一種具有改善可用緩沖器容量的使用的大容量存儲系統(tǒng)。 根據(jù)本發(fā)明,通過一種大容量存儲系統(tǒng)來實現(xiàn)該目的,所述大容量存儲系統(tǒng)具有
實時數(shù)據(jù)接口和大容量存儲陣列之間的第一數(shù)據(jù)通道以及嵌入式處理器和大容量存儲陣
列之間的第二數(shù)據(jù)通道,所述第一數(shù)據(jù)通道包括無存取等待時間的數(shù)據(jù)緩沖器,其中無存
取等待時間的數(shù)據(jù)緩沖器也被用作嵌入式處理器和大容量存儲陣列之間的非實時數(shù)據(jù)傳
輸?shù)臄?shù)據(jù)緩沖器。 本發(fā)明提出了一種實時數(shù)據(jù)通道中的"無存取等待時間"的存儲器單元的多用途 的使用。這是該存儲器的更高效的使用,并且附加地是在嵌入式處理器和由單一存儲器件 組成的大容量存儲陣列之間傳輸非實時數(shù)據(jù)的更高效的方式。當然,本發(fā)明不僅可應(yīng)用于 為實時數(shù)據(jù)而設(shè)計的系統(tǒng)。同樣還可以將本發(fā)明用于其中需要確保的高數(shù)據(jù)速率并且等待 時間成為問題的其他環(huán)境中。 優(yōu)選地將具有小尺寸(footprint)的"無等待時間"存儲器集成到實時數(shù)據(jù)通道 中作為實時數(shù)據(jù)緩沖器以補償目標大容量存儲陣列的任何等待時間。所述大容量存儲陣列 由兩個或更多的單一存儲單元組成。所述存儲單元中的每一個由I/0控制器控制。由于嵌 入式處理器也必須存取并且修改大容量存儲陣列上的數(shù)據(jù),所以存在實時數(shù)據(jù)緩沖器和處 理器的主存儲器之間實施的第二通道。因此,實施用于在來自或去往實時接口的數(shù)據(jù)和來 自或去往嵌入式處理器的數(shù)據(jù)之間進行切換的數(shù)據(jù)開關(guān)。使用必要的實時數(shù)據(jù)緩沖器還用
3于在嵌入式處理器和大容量存儲陣列之間的非實時數(shù)據(jù)傳輸節(jié)省了用于非實時傳輸?shù)念~ 外的緩沖器。因此,可以減少空間和功耗。 優(yōu)選地由嵌入式處理器通過控制線將硬件塊配置在所要求的模式中。嵌入式處理
器通過啟動(initial)其主存儲器和實時數(shù)據(jù)緩沖器之間的直接存儲器存取傳輸(DMA傳
輸),以從大容量存儲陣列傳輸數(shù)據(jù)以及向大容量存儲陣列傳輸數(shù)據(jù)。因為處理器能夠在執(zhí)
行數(shù)據(jù)傳輸?shù)耐瑫r在其他任務(wù)上工作,所以這是高效的實施方案。另外,嵌入式處理器經(jīng)由
實時數(shù)據(jù)緩沖器來存取大容量存儲陣列比直接存取大容量存儲陣列更快。 有利地,大容量存儲系統(tǒng)具有用于拆分數(shù)據(jù)流并且將其并行地發(fā)送至兩個或更多
的存儲單元的數(shù)據(jù)處理塊。這允許容易地實施RAID或類似RAID的系統(tǒng)。 優(yōu)選地,可以對"無存取等待時間"數(shù)據(jù)緩沖器設(shè)置一個或更多的閾值,所述一個
或更多的閾值控制在從數(shù)據(jù)緩沖器向大容量存儲陣列、向?qū)崟r接口、以及向主存儲器流傳
輸出數(shù)據(jù)的瞬時(instant)。以此方式,可以適應(yīng)不同的數(shù)據(jù)目標的性能行為。
為了更好地理解,現(xiàn)在將參考附圖在以下描述中更詳細地解釋本發(fā)明。應(yīng)當理解, 本發(fā)明不限于該示范性實施例,并且也可以方便地組合和/或修改所指定的特征,而脫離 本發(fā)明的范圍。在附圖中 圖1示出了根據(jù)本發(fā)明的一種示范性大容量存儲系統(tǒng)。
具體實施例方式
圖1以框圖的形式示出了用于實時數(shù)據(jù)流的、具有嵌入式處理器2的獨立的大容 量存儲系統(tǒng)1的架構(gòu)設(shè)計。實時接口塊3連接到實時數(shù)據(jù)源或接收器(sink)(未示出), 即,攝像機或顯示器。嵌入式處理器2對諸如像"記錄視頻"或"回放視頻"的用戶輸入做 出反應(yīng)。嵌入式處理器2通過控制連接4(由虛線指示)將硬件塊配置在所請求的模式中。 為此目的,由嵌入式處理器2在寫入存取中修改用于配置硬件塊的簡單的"模式"寄存器。
對實時數(shù)據(jù)流傳輸(streaming)的需求,嵌入式處理器2首先配置硬件塊。數(shù)據(jù) 開關(guān)5選擇用于數(shù)據(jù)流傳輸?shù)膶崟r接口。另外,多個I/0控制單元6(1/0 Ctrl)接收關(guān)于 實時數(shù)據(jù)流的方向(讀或?qū)?以及存儲地址的信息。實時數(shù)據(jù)流的存儲地址獨立于數(shù)據(jù)流 的方向和種類。實時數(shù)據(jù)和非實時數(shù)據(jù)之間的主要區(qū)別是與一般相當少量的非實時數(shù)據(jù) 相比,預(yù)期大量的實時數(shù)據(jù)。為了應(yīng)對該區(qū)別,在去往I/0控制單元6的讀/寫命令中包括 要傳輸?shù)淖止?jié)的數(shù)目。在實時模式中,I/O控制單元6允許讀/寫足夠大的數(shù)據(jù)的量,以保 證嵌入式處理器2能夠生成并發(fā)送下一讀/寫命令。由于在嵌入式處理器2的兩個讀/寫 命令之間經(jīng)過相對大的時間量,因此這對于確保實時數(shù)據(jù)速率來說是必須的。在非實時模 式中,由于經(jīng)常僅僅必須傳輸少量的數(shù)據(jù),因此允許利用單一讀/寫命令來讀/寫的數(shù)據(jù)量 相當少。 在"記錄"用戶輸入的情況中,實時數(shù)據(jù)流經(jīng)過實時接口 3、數(shù)據(jù)開關(guān)5、實時數(shù)據(jù) 緩沖器7和數(shù)據(jù)處理單元8,其中實時數(shù)據(jù)流被拆分并且被并行地發(fā)送至I/O控制單元6。 I/O控制單元6向大容量存儲陣列10的多個存儲單元9寫入數(shù)據(jù)。只要大容量存儲陣列 10的存儲單元9不能夠接收數(shù)據(jù),實時數(shù)據(jù)流就被存儲進實時數(shù)據(jù)緩沖器7。在存儲單元9準備好接收數(shù)據(jù)時,向大容量存儲陣列10的數(shù)據(jù)傳輸繼續(xù)。例如,如果硬盤必須重定位它 們的讀/寫磁頭,則產(chǎn)生這樣的等待時間。由于機械操作引起數(shù)據(jù)傳輸被暫停。只在完成 定位過程之后,硬盤才能夠以它們的介質(zhì)傳輸數(shù)據(jù)速率來運行。 在"回放"用戶輸入的情況中,從存儲單元9并行地讀取數(shù)據(jù),并且在經(jīng)過數(shù)據(jù)處 理單元8之后將其寫入至實時數(shù)據(jù)緩沖器7中,其中,單一數(shù)據(jù)流被合并為一個實時數(shù)據(jù) 流。優(yōu)選地,僅僅在實時數(shù)據(jù)緩沖器7被填滿時,才啟動通過實時接口 3向數(shù)據(jù)接收器的實 時數(shù)據(jù)流的傳送。該措施有助于補償由大容量存儲陣列io產(chǎn)生的等待時間,并且有助于幫 助滿足實時要求。有利地,通過設(shè)置閾值,該行為是可改變的,這將在后面解釋。
如果嵌入式處理器2必須存取大容量存儲陣列10,例如必須更新一些系統(tǒng)文件信 息或者必須讀/寫或修改屬于被存儲在大容量存儲陣列10上的實時數(shù)據(jù)流的描述性數(shù)據(jù), 則執(zhí)行非實時的數(shù)據(jù)傳輸。與實時數(shù)據(jù)流的主要區(qū)別是由處理器的主存儲器ll邏輯地替 換實時接口 3。在向大容量存儲陣列l(wèi)O寫入數(shù)據(jù)的情況下,從主存儲器ll向?qū)崟r數(shù)據(jù)緩沖 器7傳輸數(shù)據(jù),或者在從大容量存儲陣列10讀取數(shù)據(jù)的情況下,從實時數(shù)據(jù)緩沖器7向主 存儲器11傳輸數(shù)據(jù)。因此,由嵌入式處理器2啟動主存儲器11和實時數(shù)據(jù)緩沖器7之間的 直接存儲器存取(DMA)傳輸。自動地執(zhí)行從實時數(shù)據(jù)緩沖器7向大容量存儲陣列10的數(shù) 據(jù)傳輸。結(jié)果,在啟動了 DMA傳輸之后,嵌入式存儲器2可以自由地在其他任務(wù)上工作,直 至接收到成功的或不成功向大容量存儲陣列10的DMA傳輸?shù)南?。在DMA傳輸期間,如同 處理實時數(shù)據(jù)流那樣,大容量存儲陣列10的等待時間由實時數(shù)據(jù)緩沖器7補償。這提供了 比嵌入式處理器2對大容量存儲陣列IO的直接單一字(single word)的存取更高的性能。 進一步的改善是用于非實時數(shù)據(jù)流的控制機制與用于實時數(shù)據(jù)流的控制機制相同。但是, 必須不同地配置數(shù)據(jù)開關(guān)6以利用主存儲器11來替換實時接口 3。并且,修改利用單一讀 /寫命令寫入的數(shù)據(jù)量。每個命令的數(shù)據(jù)量相對小,但同樣可以適應(yīng)嵌入式處理器2的需 要,以使得利用去往I/O控制單元6的單一命令來執(zhí)行每個DMA傳輸。
在數(shù)據(jù)處理單元8中執(zhí)行數(shù)據(jù)的并行化,這允許分別并行地向大容量存儲陣列10 的全部單一存儲單元9寫入,從大容量存儲陣列10的全部單一存儲單元9讀取。這對應(yīng)于 RAID-0系統(tǒng)。也可以實施其他RAID或類似RAID的系統(tǒng)。 優(yōu)選地,即使在對大容量存儲陣列10的兩個存取期間、或?qū)⒉煌拇笕萘看鎯?元9添加至大容量存儲陣列10時,仍可以由嵌入式處理器2動態(tài)地配置實時數(shù)據(jù)緩沖器7 的閾值。該閾值控制從實時數(shù)據(jù)緩沖器7向大容量存儲陣列10、向?qū)崟r接口 3、或向主存儲 器ll流傳輸出數(shù)據(jù)的瞬時。以此方式,可以適應(yīng)不同的數(shù)據(jù)目標的性能行為。例如,在實 時數(shù)據(jù)緩沖器7中存在至少"n"個數(shù)目字節(jié)可用時,首先啟動從實時數(shù)據(jù)緩沖器7向主存 儲器11的DMA傳輸,數(shù)目"n"由特定的閾值來確定。結(jié)果,主存儲器11盡可能短地被DMA 傳輸鎖定并且嵌入式處理器2僅僅必須在相同的短時間中、在沒有主存儲器11的情況下執(zhí) 行其任務(wù)。閾值的動態(tài)修改允許使該系統(tǒng)最優(yōu)地適應(yīng)于不同類型的大容量存儲單元9或不 同類型的數(shù)據(jù)存取,諸如數(shù)據(jù)流傳輸或較小的數(shù)據(jù)塊的傳送。例如,對于某些類型的固態(tài)盤 來說,不利的瞬時處的數(shù)據(jù)傳輸?shù)臅和?dǎo)致數(shù)據(jù)速率的下降。在記錄期間,通過在向大容量 存儲單元9傳輸數(shù)據(jù)之前首先在實時數(shù)據(jù)緩沖器7中收集數(shù)據(jù)來進行補償。雖然這減少了 可以被補償?shù)牡却龝r間,但增加總體的數(shù)據(jù)速率。
權(quán)利要求
大容量存儲系統(tǒng)(1),其具有實時數(shù)據(jù)接口(3)和大容量存儲陣列(10)之間的第一數(shù)據(jù)通道,所述第一數(shù)據(jù)通道包括無存取等待時間的數(shù)據(jù)緩沖器(7);以及嵌入式處理器(2)和大容量存儲陣列(10)之間的第二數(shù)據(jù)通道,其中所述無存取等待時間的數(shù)據(jù)緩沖器(7)也被用作嵌入式處理器(2)和大容量存儲陣列(10)之間的非實時數(shù)據(jù)傳輸?shù)臄?shù)據(jù)緩沖器。
2. 根據(jù)權(quán)利要求1所述的大容量存儲系統(tǒng)(l),其進一步具有數(shù)據(jù)開關(guān)(5),所述數(shù)據(jù) 開關(guān)(5)用于在來自或去往實時接口 (3)的數(shù)據(jù)和來自或去往嵌入式處理器(2)的數(shù)據(jù)之 間進行切換。
3. 根據(jù)權(quán)利要求1或2所述的大容量存儲系統(tǒng)(l),其中,所述大容量存儲陣列(10) 包括兩個或更多的存儲單元(9)。
4. 根據(jù)權(quán)利要求3所述的大容量存儲系統(tǒng)(l),其中,所述兩個或更多的存儲單元(9) 為硬盤、光盤、或固態(tài)存儲器。
5. 根據(jù)權(quán)利要求3或4所述的大容量存儲系統(tǒng)(l),其進一步具有數(shù)據(jù)處理塊(8), 所述數(shù)據(jù)處理塊(8)用于拆分數(shù)據(jù)流并且并行地將其發(fā)送給所述兩個或更多的存儲單元 (9)。
6. 根據(jù)權(quán)利要求1至5中的任一項所述的大容量存儲系統(tǒng)(l),其中可以為所述無存 取等待時間的數(shù)據(jù)緩沖器(7)設(shè)置閾值,所述閾值控制從數(shù)據(jù)緩沖器(7)向大容量存儲陣 列(10)、向?qū)崟r接口 (3)、或向主存儲器(11)流傳輸出數(shù)據(jù)的瞬時。
7. 根據(jù)權(quán)利要求6所述的大容量存儲系統(tǒng)(1),其中可以為向大容量存儲陣列(10)、向 實時接口 (3)、以及向主存儲器(11)的數(shù)據(jù)傳輸設(shè)置不同的閾值。
8. 在大容量存儲系統(tǒng)(1)中的數(shù)據(jù)傳輸?shù)姆椒?,所述大容量存儲系統(tǒng)(1)具有實時 數(shù)據(jù)接口 (3)和大容量存儲陣列(10)之間的第一數(shù)據(jù)通道,所述第一數(shù)據(jù)通道包括無存取 等待時間的數(shù)據(jù)緩沖器(7);以及嵌入式處理器(2)和大容量存儲陣列(10)之間的第二數(shù) 據(jù)通道,所述方法具有以下步驟使用無存取等待時間的數(shù)據(jù)緩沖器(7)執(zhí)行在所述嵌入 式處理器(2)和所述大容量存儲陣列(10)之間的非實時數(shù)據(jù)傳輸。
全文摘要
本發(fā)明涉及具有改善緩沖器容量的使用的大容量存儲系統(tǒng)(1),并且更具體地涉及具有嵌入式控制器(2)的、用于實時數(shù)據(jù)存儲的大容量存儲系統(tǒng)(1)。根據(jù)本發(fā)明,該大容量存儲系統(tǒng)具有實時數(shù)據(jù)接口(3)和大容量存儲陣列(10)之間的第一數(shù)據(jù)通道,所述第一數(shù)據(jù)通道包括無存取等待時間的數(shù)據(jù)緩沖器(7);以及嵌入式處理器(2)和大容量存儲陣列(10)之間的第二數(shù)據(jù)通道,其中無存取等待時間的數(shù)據(jù)緩沖器(7)也被用作嵌入式處理器(2)和大容量存儲陣列(10)之間的非實時數(shù)據(jù)傳輸?shù)臄?shù)據(jù)緩沖器。
文檔編號G06F12/08GK101796479SQ200880105134
公開日2010年8月4日 申請日期2008年8月26日 優(yōu)先權(quán)日2007年8月31日
發(fā)明者托馬斯·布龍, 斯蒂芬·埃伯林, 沃爾夫?qū)た藙谒共? 約翰·馬斯 申請人:湯姆森特許公司