基于SCSI總線的超高速實(shí)時(shí)圖像數(shù)據(jù)存儲(chǔ)系統(tǒng)
關(guān)鍵詞:超高速 SCSI 實(shí)時(shí)存儲(chǔ) 圖像
引言
目前,對(duì)高速數(shù)字圖像的采集與存儲(chǔ)的需求越來(lái)越大,但大多數(shù)此類系統(tǒng)都依賴速微機(jī)、高速圖像采集卡和超大容量?jī)?nèi)存。滿足這些條件必然使成本成倍增高,價(jià)格昂貴,且它有一個(gè)很大的缺點(diǎn)是容量小,即便是使用超大容量?jī)?nèi)存,其增擴(kuò)的容量也只能達(dá)到幾G字節(jié)的量級(jí),如果再增大容量,系統(tǒng)的體積和成本已不允許。因此,應(yīng)用范圍受到限制。
基于冗余磁盤(pán)陣列RAID (Redundant Arrays of Inexpensive Disks)技術(shù)的應(yīng)用日漸廣泛。雖然它利用了磁盤(pán)的超大容量、體積小巧的優(yōu)勢(shì),通過(guò)磁盤(pán)陣列結(jié)構(gòu)解決了快速CPU和慢速的磁盤(pán)I/O之間的“瓶頸”難關(guān),達(dá)到了高速大容量存儲(chǔ)的目的;但是它結(jié)構(gòu)復(fù)雜,磁盤(pán)冗余導(dǎo)致成本較高。
為了充分發(fā)揮各種技術(shù)的優(yōu)勢(shì),本文基于SCSI總線的理論體系,設(shè)計(jì)出一種以SCSI硬盤(pán)為存儲(chǔ)載體,由單片機(jī)控制的超高速、數(shù)字化圖像數(shù)據(jù)采集與存儲(chǔ)系統(tǒng)。超高速是指它能夠?qū)崟r(shí)存儲(chǔ)千幀每秒的視頻圖像,數(shù)據(jù)率約是100Mb/s;數(shù)字化是指從高速相機(jī)的輸出全為數(shù)字化,存儲(chǔ)也全為數(shù)字量。它能脫離微機(jī)系統(tǒng)而單獨(dú)完全采集存儲(chǔ)的工作,操作簡(jiǎn)單而實(shí)用。下面從技術(shù)方案和體系結(jié)構(gòu)來(lái)介紹本系統(tǒng)。
一、系統(tǒng)的技術(shù)方案及體系結(jié)構(gòu)
對(duì)于超高速、大容量實(shí)時(shí)視頻圖像存儲(chǔ)系統(tǒng),存儲(chǔ)時(shí)間和速率是最高要的技術(shù)指標(biāo),但存儲(chǔ)介質(zhì)的長(zhǎng)時(shí)間的傳輸速率,即它們的持續(xù)傳輸速率又是最重要的。存儲(chǔ)介質(zhì)的猝發(fā)傳輸速率和內(nèi)部傳輸速率都不能作為實(shí)時(shí)存儲(chǔ)系統(tǒng)的衡量指標(biāo)。普通的IDE接口硬盤(pán),雖然其猝發(fā)傳輸速率和總線傳輸速率都能在33Mb/s以上,但實(shí)際上持續(xù)傳輸速率還不到5Mb/s,遠(yuǎn)不能達(dá)到要求。相比之下,SCSI硬盤(pán)的持續(xù)傳輸速率明顯高于IDE接口硬盤(pán)。目前,10000轉(zhuǎn)的SCSI硬盤(pán)的持續(xù)傳輸率大多數(shù)都能達(dá)到25Mb/s。如果讓幾個(gè)SCSI硬盤(pán)并行工作,那么總的傳輸率達(dá)到100Mb/s是可以實(shí)現(xiàn)的。
1.SCSI總線系統(tǒng)及特點(diǎn)
SCSI (Small Computer System Interface),即小型計(jì)算機(jī)系統(tǒng)接口,是美國(guó)ANSI9.2委員會(huì)定義的計(jì)算機(jī)和外設(shè)之間的接口標(biāo)準(zhǔn)。起初是以磁盤(pán)存儲(chǔ)設(shè)備為主,但由于它的靈活性、設(shè)備獨(dú)立性等特點(diǎn),使SCSI不僅在磁帶設(shè)備、打印設(shè)備、CD-ROM WORM等外設(shè)中得到普遍應(yīng)用,也在許多新I/O設(shè)備和計(jì)算機(jī)網(wǎng)絡(luò)、計(jì)算機(jī)工業(yè)控制等領(lǐng)域不斷發(fā)展。圖1是SCSI典型的系統(tǒng)結(jié)構(gòu)圖。
在SCSI 系統(tǒng)中,多個(gè)設(shè)備可以用同一電纜相連。在8位SCSI數(shù)據(jù)線情況下,可以掛接8個(gè)外設(shè);而現(xiàn)在的Ultera SCSI可以達(dá)到32位數(shù)據(jù)線,能掛接32個(gè)外設(shè)。在任意時(shí)刻,只能有兩個(gè)設(shè)備可相互通信,其中發(fā)送命令的設(shè)備叫啟動(dòng)設(shè)備(initiator),執(zhí)行命令的設(shè)備叫目標(biāo)設(shè)備(target)。SCSI上設(shè)備的唯一標(biāo)識(shí)是SCSI ID,它既是設(shè)備的地址,也是設(shè)備優(yōu)先級(jí)代碼。SCSI中的操作是由啟動(dòng)設(shè)備啟動(dòng)的,啟動(dòng)設(shè)備先選擇一個(gè)目標(biāo)設(shè)備,在目標(biāo)設(shè)備選擇完成后,目標(biāo)設(shè)備在協(xié)議上獲得對(duì)總線的控制權(quán),由目標(biāo)設(shè)備決定是繼續(xù)控制總線還是釋放總線。SCSI設(shè)備之間沒(méi)有主從關(guān)系,一個(gè)設(shè)備既可成為啟動(dòng)設(shè)備,也可以起目標(biāo)設(shè)備的作用。計(jì)算機(jī)上的SCSI適配器是典型的啟動(dòng)設(shè)備。SCSI接口硬盤(pán)是典型的Target。在SCSI總線上,可以存在于多個(gè)啟動(dòng)設(shè)備和多個(gè)目標(biāo)設(shè)備,但一個(gè)系統(tǒng)中至少應(yīng)該有一個(gè)啟動(dòng)設(shè)備和一個(gè)目標(biāo)設(shè)備。圖1是典型的多啟動(dòng)設(shè)備多目標(biāo)設(shè)備系統(tǒng)。除此之外,還有單啟動(dòng)設(shè)備多目標(biāo)設(shè)備、單啟動(dòng)設(shè)備單目標(biāo)設(shè)備。本文的高速數(shù)據(jù)存儲(chǔ)系統(tǒng)采用單啟動(dòng)設(shè)備目標(biāo)設(shè)備系統(tǒng)結(jié)構(gòu)。
SCSI雖然有其獨(dú)有特點(diǎn),但接口控制復(fù)雜。任何一個(gè)SCSI系統(tǒng)都具有適配器和控制器相配對(duì)的結(jié)構(gòu),通常適配器就是上面所說(shuō)的啟動(dòng)設(shè)備。適配器的復(fù)雜性在于必須從硬件和軟件兩部分實(shí)現(xiàn)SCSI設(shè)備與各種操作系統(tǒng)的接口。軟件要完成把SCSI命令解釋給操作系統(tǒng)和把操作系統(tǒng)的操作命令翻譯給SCSI設(shè)備;硬件要完成SCSI總線的各種時(shí)序和內(nèi)部電路的控制。
2.系統(tǒng)方案的制定
根據(jù)SCSI協(xié)議,消息、命令、數(shù)據(jù)、狀態(tài)四個(gè)階段統(tǒng)稱為信息階段,這是因?yàn)樗鼈兌际峭ㄟ^(guò)數(shù)據(jù)總線傳送數(shù)據(jù)和控制信息的。其中消息、命令和狀態(tài)的傳輸采用異步方式,數(shù)據(jù)的傳輸可用異步和同步兩種方式。
理想情況下,異步傳輸一個(gè)字節(jié)只需要一個(gè)系統(tǒng)平衡延時(shí)加一個(gè)電纜延時(shí)差,其時(shí)值為45ns+4ns=49ns,實(shí)際上應(yīng)考慮信號(hào)的跳變時(shí)值和總線傳輸延時(shí)。分析認(rèn)為,異步方式下,傳輸一個(gè)字節(jié)需要4個(gè)跳變加上它們?cè)陔娎|上的傳輸延時(shí)。其典型傳輸時(shí)間可以計(jì)算為
t=45.25L+430
其中,t為一個(gè)字節(jié)的傳輸時(shí)間,單位為ns;L為電纜長(zhǎng)度,單位為m。在電纜為1m長(zhǎng)的情況下,傳輸速率約為7.1Mb/s。
同步傳輸機(jī)制引入了同步偏移和總線緩沖的概念,即目標(biāo)設(shè)備可以連續(xù)發(fā)若干個(gè)REQ信號(hào)而不需要啟動(dòng)設(shè)備的ACK馬上回答。這樣就大大減少了總線傳輸延時(shí),從而提高了傳輸速率。因此,本系統(tǒng)以16位數(shù)據(jù)同步傳輸為基礎(chǔ)進(jìn)行設(shè)計(jì)。
結(jié)合以上的分析,實(shí)時(shí)圖像數(shù)據(jù)采集存儲(chǔ)系統(tǒng)可用SCSI硬盤(pán)作為存儲(chǔ)介質(zhì);多個(gè)SCSI硬盤(pán)并行工作以求速度的成倍提高;圖像數(shù)據(jù)的采集源選用高速數(shù)字相機(jī),以千幀每秒的速率分多路輸出,每路的數(shù)據(jù)寬度可以是8位或16位。再設(shè)計(jì)相應(yīng)的接口控制電路控制軟件,加上附屬電路構(gòu)成。體系結(jié)構(gòu)如圖2所示。
3.系統(tǒng)的體系結(jié)構(gòu)和功能描述
(1)單片機(jī)
單片機(jī)的主要功能如下:
*對(duì)SCSI總線信息狀態(tài)進(jìn)行翻譯、執(zhí)行、管理;
*負(fù)責(zé)對(duì)主機(jī)與緩沖器、緩沖器與SCSI總線之間的數(shù)據(jù)傳送控制;
*控制DMA控制器。
單片機(jī)通過(guò)緩沖器與SCSI接口控制電路交換信息,包括命令描述和狀態(tài)消息等。單片機(jī)對(duì)SCSI總線的控制是通過(guò)協(xié)議控制器實(shí)現(xiàn)的。為了完成一個(gè)I/O進(jìn)程,單片機(jī)把進(jìn)程分為仲裁、選擇、數(shù)據(jù)傳輸?shù)入A段,并分別以相應(yīng)的內(nèi)部控制命令交給協(xié)議控制器執(zhí)行。
(2)數(shù)字圖像接口電路
主要完成視頻信號(hào)的數(shù)字轉(zhuǎn)換和后續(xù)的邏輯控制。另外,有時(shí)8位的數(shù)據(jù)寬度對(duì)于后面的高速存儲(chǔ)任務(wù)來(lái)講是不夠的,必須依靠此電路來(lái)轉(zhuǎn)為16位寬或32位寬。
(3)SCSI總線控制器
這是SCSI總線來(lái)操作的執(zhí)行部件,一般稱為適配器。SCSI總線的時(shí)序很復(fù)雜也很有規(guī)律,規(guī)律是指SCSI總線的所操作都是由8個(gè)獨(dú)立的總線階段組成的,它們分別是:總線空閑、仲裁、選擇、消息、命令、數(shù)據(jù)輸入、數(shù)據(jù)輸出及狀態(tài)階段。它們之間的遷移有著嚴(yán)格的規(guī)定,圖3是SCSI的階段遷移圖。適配器接受微處理器的操作指令,如仲裁、選擇、失連、復(fù)位總線等。適配器是啟動(dòng)設(shè)備,是發(fā)出命令的一方(在微處理器控制下)。硬盤(pán)是目標(biāo)設(shè)備,它的響應(yīng)信息和返回狀態(tài)等都由徽處理器分析,并決定適配器的下一步操作。另外,啟動(dòng)I/O進(jìn)程,參加仲裁、競(jìng)爭(zhēng)總線、選擇目標(biāo)設(shè)備等都是由微處理器控制操作的。
(4)DMA控制器
適配器中的DMA控制器,一是控制圖像數(shù)字接口電路與緩沖器之間的數(shù)據(jù)傳送;二是控制緩沖器和SCSI總線之間的數(shù)據(jù)傳送,也可以通過(guò)緩沖器直接控制圖像接口電路和SCSI總線之間的數(shù)據(jù)傳送。
二、實(shí)驗(yàn)結(jié)果
系統(tǒng)結(jié)構(gòu)后,用IBM生產(chǎn)的DDRS34560型硬盤(pán)和DMVS-09V型硬盤(pán)做數(shù)據(jù)傳輸實(shí)驗(yàn),兩種硬盤(pán)的性能指標(biāo)如表1所列。分析傳輸320MB數(shù)據(jù)和1GB數(shù)據(jù)的結(jié)果如表2所列。
表1
型 號(hào) | DDRS34560 | DMVS-09V |
容量/GB | 4.5 | 9.1 |
接口類型 | Ultra2 SCSI | Ultera2 SCSI |
轉(zhuǎn)速/(r*min-1) | 7200 | 10000 |
最大外部傳速輸率/(MB*s-1) | 20 | 80 |
持續(xù)傳輸速率/(MB*s-1) | 8.6-12.3 | 15.2-29.5 |
平均尋道時(shí)間/ms | 4.9 | 7.5 |
數(shù)據(jù)緩存/B | 512K | 2M |
表2
型 號(hào) | 傳輸數(shù)據(jù)量/B | 耗時(shí)/s | 速率/(MB/s) |
DDRS34560 | 320M | 26 | 12.3 |
1G | 110 | 11.6 | |
DMVS-09V | 320M | 12 | 26.67 |
1G | 39 | 25.6 |
用加拿大的DALSA公司的CA-D6-256型高速相機(jī)輸出955幀/s的2602608bit視頻圖像,本系統(tǒng)可以實(shí)時(shí)地?zé)o壓縮并行存儲(chǔ)到多個(gè)硬盤(pán),記錄時(shí)間在30min以上。
實(shí)踐證明了本文論述的超高速實(shí)時(shí)圖像存儲(chǔ)系統(tǒng)是能實(shí)現(xiàn)的。
評(píng)論