- 相關(guān)推薦
一種專用高速硬盤存儲(chǔ)設(shè)備的設(shè)計(jì)與實(shí)現(xiàn)
摘要:介紹一種專用高速硬盤存儲(chǔ)設(shè)備,可以脫離微機(jī)平臺(tái)實(shí)現(xiàn)將高速數(shù)據(jù)送入SCSI硬盤。給出了該設(shè)備的系統(tǒng)結(jié)構(gòu)和硬件設(shè)計(jì)方法。關(guān)鍵詞:SCSISCSI協(xié)議控制器高速數(shù)據(jù)存儲(chǔ)
在高速數(shù)據(jù)采集存儲(chǔ)系統(tǒng)中,數(shù)據(jù)存儲(chǔ)是一項(xiàng)關(guān)鍵技術(shù)。通常的做法是把數(shù)據(jù)存入大容量存儲(chǔ)器中,采集結(jié)束后再進(jìn)行數(shù)據(jù)處理和保存。這種方法。持續(xù)采集時(shí)間受存儲(chǔ)器容量的限制,在許多場(chǎng)合可能無法滿足要求;而存儲(chǔ)器容量的增加,其價(jià)格也會(huì)成倍增長(zhǎng)。因此,從存儲(chǔ)容量、讀寫速度和單位成本等方面綜合考慮,采用高速硬盤直接數(shù)據(jù)存儲(chǔ)是很有優(yōu)勢(shì)的。
對(duì)于硬盤而言,在持續(xù)高速數(shù)據(jù)存儲(chǔ)中,關(guān)鍵是它的持續(xù)數(shù)據(jù)傳輸速率(sustainedtransferrate)能否滿足要求。目前,15000r/min的小型計(jì)算機(jī)系統(tǒng)接口SCSI(SmallComputerSystemInterface)硬盤,總線數(shù)據(jù)傳輸速率為80~320MB/s,持續(xù)數(shù)據(jù)傳輸速率大于40MB/s。而PC機(jī)普遍配置的IDE硬盤,雖然它的總線數(shù)據(jù)傳輸速率可以達(dá)到33~100MB/s,但持續(xù)數(shù)據(jù)傳輸速率只有15MB/s左右,性能低于SCSI硬盤。
本文設(shè)計(jì)了一種專用高速硬盤存儲(chǔ)設(shè)備,它脫離微機(jī)平臺(tái)實(shí)時(shí)將高速數(shù)據(jù)送入SCSI硬盤,持續(xù)存儲(chǔ)速率可達(dá)35MB/s(使用Seagate公司生產(chǎn)的ST336752LW型硬盤)。
1SCSI總線及硬盤
SCSI是美國ANSI9.2委員會(huì)定義的計(jì)算機(jī)和外設(shè)之間的接口標(biāo)準(zhǔn),最初是以磁盤存儲(chǔ)設(shè)備為主,但由于它的靈活性、設(shè)備獨(dú)立等特點(diǎn),使之不僅在磁帶設(shè)備、打印設(shè)備、光盤驅(qū)動(dòng)設(shè)備等外設(shè)中得到普遍應(yīng)用,也在許多I/O設(shè)備和計(jì)算機(jī)網(wǎng)絡(luò)、計(jì)算機(jī)工業(yè)控制等領(lǐng)域不斷發(fā)展。隨著外設(shè)速率的不斷提高,SCSI的性能幾乎每5年提高一倍,目前Ultra320SCSI總線數(shù)據(jù)傳輸速率可達(dá)320MB/s。
SCSI是設(shè)備無關(guān)的輸入輸出總線,可以掛接多達(dá)8個(gè)以上的設(shè)備。對(duì)于SCSI總線上的設(shè)備,如果是任務(wù)的觸發(fā)者,則稱為啟動(dòng)設(shè)備;如果是任務(wù)的執(zhí)行者,則稱為目標(biāo)設(shè)備。通常啟動(dòng)設(shè)備先選擇一個(gè)目標(biāo)設(shè)備,繼而由目標(biāo)設(shè)備決定繼續(xù)控制總線或釋放總線,直到完成任務(wù)。本文的專用高速硬盤存儲(chǔ)設(shè)備采用單啟動(dòng)、單目標(biāo)結(jié)構(gòu)。
SCSI硬盤在標(biāo)識(shí)硬盤扇區(qū)時(shí)使用了線性的概念,即硬盤只有順序的第1扇區(qū)、第2扇區(qū)…第n扇區(qū),不像IDE硬盤的“柱面/磁頭/扇區(qū)”三維格式。這種線性編排方式訪問延時(shí)最小,可加快硬盤存取速率,尤其在持續(xù)大容量數(shù)據(jù)存儲(chǔ)時(shí),所顯現(xiàn)的優(yōu)勢(shì)較明顯。目前,操作系統(tǒng)內(nèi)部也使用線性編號(hào)的扇區(qū),其目的是加快介質(zhì)存取速度,加大介質(zhì)訪問容量。
綜上所述,該專用高速硬盤存儲(chǔ)設(shè)備使用SCSI總線不僅數(shù)據(jù)傳輸速率高,而且在需要時(shí)可以增加設(shè)備中的硬盤數(shù)量來擴(kuò)展存儲(chǔ)空量,甚至可以把硬盤替換為其它SCSI存儲(chǔ)設(shè)備。
2系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
為了實(shí)現(xiàn)SCSI協(xié)議和硬盤存儲(chǔ),一般需要有微處理器、DMA控制器、SCSI協(xié)議控制器、數(shù)據(jù)緩存器等硬件支持和相應(yīng)的軟件控制模塊。
·微處理器用來控制設(shè)備中各部件的工作,實(shí)現(xiàn)設(shè)備本身的特定功能。該專用高速硬盤存儲(chǔ)設(shè)備實(shí)現(xiàn)數(shù)據(jù)的持續(xù)高速存儲(chǔ),要求處理數(shù)據(jù)的速度高。通常這些需要傳輸和處理大量數(shù)據(jù)的設(shè)備均選用數(shù)字信號(hào)處理器DSP作為微處理器。同時(shí),SCSI協(xié)議中許多復(fù)雜的控制功能也需要這個(gè)微處理器來實(shí)現(xiàn)。
·傳送大量數(shù)據(jù)大多會(huì)采用直接存儲(chǔ)器訪問DMA(DirectMemoryAccess)方式,因此需要獨(dú)立的DMA控制器或選用內(nèi)置DMA控制器的微處理器。出于簡(jiǎn)化電路和提高速率的考慮,該設(shè)備采用復(fù)雜可編程邏輯器件CPLD構(gòu)造了一個(gè)獨(dú)立的DMA控制器。
·要實(shí)現(xiàn)SCSI協(xié)議需要有SCSI協(xié)議控制器。DSP中通常不會(huì)集成SCSI協(xié)議控制器,因此一般情況下,需要選擇通用的SCSI協(xié)議控制器,輔助DSP實(shí)現(xiàn)SCSI協(xié)議和通信。
·在設(shè)備的輸入接口部分,需要有數(shù)據(jù)緩存單元。普通的存儲(chǔ)器在寫入的同時(shí)不能讀;采用雙口隨機(jī)存儲(chǔ)器RAM雖然可以解決并發(fā)訪問的問題,但它必需的雙邊地址譯碼又是不可忽視的問題。對(duì)于單純的數(shù)據(jù)存儲(chǔ)設(shè)備,不需要對(duì)數(shù)據(jù)做壓縮、信號(hào)分析等預(yù)處理工作,緩存單元在結(jié)構(gòu)上相當(dāng)于先進(jìn)先出(FirstInFirstOut,F(xiàn)IFO)隊(duì)列,先到的數(shù)據(jù)先被存儲(chǔ)。所以采用專用FIFO芯片,可以去掉復(fù)雜的緩存器譯碼電路,大大簡(jiǎn)化系統(tǒng)設(shè)計(jì)。而且,采用專用FIFO芯片,整個(gè)設(shè)備從外部數(shù)據(jù)接口看來,就是一個(gè)寫不滿的FIFO,也大大簡(jiǎn)化了對(duì)設(shè)備數(shù)據(jù)接口的操作。
專用高速硬盤存儲(chǔ)設(shè)備的框圖如圖1所示。圖1中各方框表示一個(gè)基本模塊,括號(hào)中文字表示具體實(shí)現(xiàn)的器件,虛線左側(cè)部分不屬于設(shè)備模塊。
該高速硬盤存儲(chǔ)設(shè)備設(shè)計(jì)中向處理器選用了TI公司生產(chǎn)的TMS320F206,SCSI協(xié)議控制器選用了Qlogic公司生產(chǎn)的FAS368M,DMA控制器和其它外圍邏輯轉(zhuǎn)換電路選用了ALTERA公司生產(chǎn)的CPLD器件EPM7064。
TMS320C206是TI公司生產(chǎn)的CPLD器件EPM7064。
TMS320C206是TI公司生產(chǎn)的TMS320系列單片數(shù)字信號(hào)處理器中的一種低價(jià)格、高性能的定點(diǎn)DSP芯片。該芯片功耗低,處理能力強(qiáng),指令周期最短為25ns,運(yùn)算能力達(dá)40MIPS,片內(nèi)具有32KB的閃爍存儲(chǔ)器和4.5KB的RAM,是最早使用閃爍存儲(chǔ)器的DSP芯片之一。由于閃爍存儲(chǔ)器具有比ROM靈活、比RAM便宜的特點(diǎn),因此使用TMS320F206不僅降低了成本、減小了體積,同時(shí)系統(tǒng)升級(jí)也比較方便。
FAS368M是與SCSI-3標(biāo)準(zhǔn)完全兼容的SCSI協(xié)議控制器,它支持啟動(dòng)設(shè)備與目標(biāo)設(shè)備兩種模式,同步數(shù)據(jù)傳輸速率為40MB/s。另外,F(xiàn)AS368M支持最大50MB/s的快速DMA數(shù)據(jù)傳。由于采用分離的微處理器總線和DMA總線結(jié)構(gòu),因此能以較高速率產(chǎn)生響應(yīng)而不會(huì)造成瓶頸效應(yīng)。
3硬件電路及功能描述
TMS320F206、FAS368M、EMP7064和IDT7208之間的具體連接線路如圖2所示。
3.1FAS368M的信號(hào)及內(nèi)部寄存器說明
圖2中FAS368M的主要信號(hào)和控制邏輯如下:
·ACK、ATM、BSY、CD、IO、MSG、REQ、RST、SD0~15、SDP0~1、SEL及其差分信號(hào),都是FAS368M與SCSI總線的接口信號(hào)。
·CS信號(hào)是讀寫FAS368M內(nèi)部寄存器片選信號(hào)。
·RD、WR是FAS368M內(nèi)部寄存器的讀寫信號(hào)。
·FAS368M的TNI端對(duì)應(yīng)TMS320F206的外部中斷INT1,當(dāng)其有效時(shí),表明有錯(cuò)誤產(chǎn)生(如校驗(yàn)出錯(cuò))、一個(gè)事件需要服務(wù)(如FAS368M作為目標(biāo)設(shè)備被選中)或已結(jié)束某服務(wù)(如DMA結(jié)束)。
·DREQ,F(xiàn)AS368M使DREQ有效向DMA控制器(EPM7064)發(fā)出DMA傳輸請(qǐng)求。
·DACK,EPM7064對(duì)FAS368MDMA請(qǐng)求信號(hào)DREQ的響應(yīng)。
·DBWR,DMA數(shù)據(jù)寫信號(hào)。當(dāng)DREQ和DACK信號(hào)均有效時(shí),EPM7064控制該信號(hào)和緩存器IDT7208的RD信號(hào),實(shí)現(xiàn)數(shù)據(jù)從IDT7208向FAS368M的同步快速傳輸。
FAS368M在TMS320F206的控制下實(shí)現(xiàn)所有的SCSI物理協(xié)議,包括仲裁、選擇、消息、命令、數(shù)據(jù)、狀態(tài)等各階段規(guī)定的信號(hào)電平轉(zhuǎn)化等。在設(shè)備中TMS320F206對(duì)FAS368M的控制是通過對(duì)其寄存器的讀寫來實(shí)現(xiàn)的。
·指令寄存器(CommandRegister),TMS320F206通過向指令寄存器寫入相應(yīng)指令,實(shí)現(xiàn)諸如FAS368M的初始化與復(fù)位、SCSI總線分配與復(fù)位、SCSI總線各階段的遷移等所有針對(duì)FAS358M和SCSI總線的控制。
·FIFO寄存器(FIFORegister)是一個(gè)16字的FIFO寄存器,硬盤和FAS368M之間的數(shù)據(jù)都要通過FIFO寄存器。它有兩方面的用途:當(dāng)FAS368M通過SCSI總線向硬盤傳送數(shù)據(jù)和命令時(shí),可以先把要傳送的數(shù)據(jù)和命令放在FIFO寄存器,等SCSI總線空閑,并獲得總線控制權(quán)以后再開始傳送;另一方面,由SCSI總線傳送到FAS368M的數(shù)據(jù),也可因?yàn)門MS320F206或DMA控制器忙而停止,數(shù)據(jù)先送到FIFO寄存器空出SCSI總線,等TMS320F206或DMA控制器空閑再從FIFO寄存器讀取數(shù)據(jù)。
·傳輸計(jì)數(shù)寄存器(TransferCountRegister)是一個(gè)減計(jì)數(shù)器,它通常用來保存一次DMA命令所要傳輸數(shù)據(jù)的字節(jié)數(shù)。
·中斷寄存器(InterruptRegister),F(xiàn)AS368M所有的信息都以中斷的方式通知TMS320F206。TMS320F206通過讀取中斷寄存器和其他狀態(tài)寄存儲(chǔ)器判斷FAS368產(chǎn)生中斷的原因,決定下一步操作,從而實(shí)現(xiàn)FAS368M對(duì)TMS320F206的通信。
3.2EPM7064內(nèi)部邏輯和作用
設(shè)備中的DMA控制器由CPLD器件EPM7064實(shí)現(xiàn),這主要有下面幾方面的考慮:
。1)設(shè)備接口緩存器采用專用FIFO芯片IDT7208,它的數(shù)據(jù)總線可以和FAS368M的DMA數(shù)據(jù)總線直接連接,不需要復(fù)雜的緩存器地址譯碼電路。因此,DMA控制器不需要數(shù)據(jù)與地址總線,硬件連線可以大大減少。而配合FAS368MDMA數(shù)據(jù)傳輸?shù)臅r(shí)序,DMA控制器只需在DMA傳輸請(qǐng)求信號(hào)DREQ有效且IDT7208空信號(hào)EF無效時(shí),使DMA傳輸響應(yīng)信號(hào)DACK有效,隨后在時(shí)鐘信號(hào)CLK驅(qū)動(dòng)下連續(xù)產(chǎn)生同步的IDT7208讀信號(hào)RD和DMA寫信號(hào)DBWR,實(shí)現(xiàn)從IDT7208到FAS368M的DMA傳輸;反之,則使DMA傳輸響應(yīng)信號(hào)DACK無效,隨后停止產(chǎn)生IDT7208讀信號(hào)RD和DMA寫信號(hào)DBWR,中斷從IDT7208到FAS368M的DMA傳輸。這些時(shí)序邏輯完全可以用一片小的CPLD器件實(shí)現(xiàn),因此選用EPM7064設(shè)計(jì)了該DMA控制器。
。2)FAS368M支持高達(dá)50MB/s的快速DMA傳輸。一般的專用DMA控制器芯片難以勝任,而且專用DMA控制器與FAS368M的連接需要一定的邏輯轉(zhuǎn)換電路,外圍硬件連線也較多。同時(shí),它還必須在TMS320F206的控制下與FAS368M一起協(xié)調(diào)工作才能實(shí)現(xiàn)DMA傳輸,又增加了軟件的復(fù)雜程度。
。3)使用EPM7064除了實(shí)現(xiàn)DMA控制器的功能外,還可以把整個(gè)設(shè)備電路中的一些譯碼、邏輯轉(zhuǎn)換等模塊一并設(shè)計(jì)進(jìn)去,在很大程序上減小了設(shè)備的體積,同時(shí)也為設(shè)備的改進(jìn)和升級(jí)提供了方便。
在硬件設(shè)計(jì)的基礎(chǔ)上,DSP微處理器還需要一個(gè)軟件模塊負(fù)責(zé)對(duì)相關(guān)硬件控制和協(xié)調(diào),最終實(shí)現(xiàn)SCSI協(xié)議、硬盤的控制和DMA傳輸?shù)。?duì)DSP微處理器的編程,需要完整掌握SCSI-3協(xié)議標(biāo)準(zhǔn)和FAS368M的命令集,工作量比較大,同時(shí)程序的優(yōu)劣也關(guān)系到系統(tǒng)的存儲(chǔ)速度和可靠性。由于篇幅限制,軟件設(shè)計(jì)本文不再多述。
【一種專用高速硬盤存儲(chǔ)設(shè)備的設(shè)計(jì)與實(shí)現(xiàn)】相關(guān)文章:
一種簡(jiǎn)易數(shù)字波形存儲(chǔ)器的實(shí)現(xiàn)08-06
專用鍵盤接口芯片的一種CPLD實(shí)現(xiàn)方案08-06
存儲(chǔ)器類型綜述及DDR接口設(shè)計(jì)的實(shí)現(xiàn)08-06
高速紅外VFIR控制器的設(shè)計(jì)與實(shí)現(xiàn)08-06
USB接口的高速數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)08-06
DSP與單片機(jī)的一種高速通信實(shí)現(xiàn)方案08-06
在C 中實(shí)現(xiàn)JAVA的存儲(chǔ)管理機(jī)制08-09
ARM7系統(tǒng)中實(shí)現(xiàn)CF卡存儲(chǔ)的文件系統(tǒng)設(shè)計(jì)08-06