高速數(shù)字記錄系統(tǒng)中光纖下載卡的邏輯設(shè)計(jì)
中斷控制方式是外圍設(shè)備收到數(shù)據(jù)后,向CPU發(fā)送中斷。CPU收到中斷后,再控制數(shù)據(jù)在其內(nèi)存和外圍設(shè)備之間的傳輸。它的優(yōu)點(diǎn)是大大提高了CPU的利用率且能支持多道程序和設(shè)備的并行操作。它的缺點(diǎn)是由于數(shù)據(jù)緩沖寄存器比較小,如果中斷次數(shù)較多,仍然會(huì)占用大量CPU時(shí)間。在外圍設(shè)備較多時(shí),由于中斷次數(shù)的急劇增加,可能造成CPU無(wú)法響應(yīng)中斷而出現(xiàn)中斷丟失的現(xiàn)象。如果外圍設(shè)備速度比較快,可能會(huì)出現(xiàn)CPU來(lái)不及從數(shù)據(jù)緩沖寄存器中取走數(shù)據(jù)而丟失數(shù)據(jù)的情況。本文引用地址:http://www.ex-cimer.com/article/188359.htm
DMA方式是在外圍設(shè)備和內(nèi)存之間開(kāi)辟直接的數(shù)據(jù)交換通路進(jìn)行數(shù)據(jù)傳送。外圍設(shè)備通過(guò)通用總線直接訪問(wèn)內(nèi)存,將其收到的數(shù)據(jù)寫(xiě)入內(nèi)存或?qū)⒁l(fā)送的數(shù)據(jù)讀出內(nèi)存。上述操作完成后,再通過(guò)中斷的方式通知CPU,由CPU進(jìn)行后繼的處理。它的優(yōu)點(diǎn)是除了在數(shù)據(jù)塊傳送開(kāi)始時(shí)需要CPU的啟動(dòng)指令,在整個(gè)數(shù)據(jù)塊傳送結(jié)束時(shí)需要發(fā)中斷通知CPU進(jìn)行中斷處理之外,不需要CPU的干涉。
可見(jiàn),下載設(shè)備和微機(jī)之間通過(guò)主DMA方式進(jìn)行通信,可以大大的提高數(shù)據(jù)傳輸速率。66MHz/64位寬的PCI總線在理想情況下可以提供近500Mb/s的傳輸速率,可以比較容易的達(dá)到250Mb/s的光纖下載速度,所以下載的瓶頸在于硬盤(pán)的讀寫(xiě)速度。普通硬盤(pán)的平均讀寫(xiě)速度在60Mb/s,采用4個(gè)盤(pán)一組的陣列盤(pán),差不多可以達(dá)到60×4=240Mb/s的速度。
由上述數(shù)據(jù)可以看出,采用64位的PCI總線,用主DMA方式進(jìn)行數(shù)據(jù)傳輸,下載的最大速度將大于200Mb/s。
FPGA邏輯內(nèi)部結(jié)構(gòu)
邏輯總體結(jié)構(gòu)圖如圖3所示,數(shù)據(jù)流方向?yàn)椋捍械?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/光纖">光纖數(shù)據(jù)首先進(jìn)入ATM(Aurora Transmit Module)模塊,由ATM模塊內(nèi)部的Xilinx RocketIo核將串行數(shù)據(jù)轉(zhuǎn)換成并行32位數(shù)據(jù)。并行數(shù)據(jù)經(jīng)過(guò)FIFO進(jìn)行緩存后,進(jìn)入PING64模塊。Pin64模塊內(nèi)部邏輯產(chǎn)生主DMA時(shí)序,并將FIFO數(shù)據(jù)送上內(nèi)部總線。Pcim_lc將內(nèi)部總線信號(hào)轉(zhuǎn)換成PCI總線信號(hào)并送出去。各個(gè)模塊的功能具體如下。
圖3 FPGA內(nèi)部結(jié)構(gòu)圖
● Pcim_lc模塊為Xilinx提供的PCI64位的軟核;
● Ping64模塊包括和PCI64軟核的接口以及主DMA處理邏輯;
● ATM為和光纖輸入的接口模塊,采用Xilinx提高的Aurora協(xié)議對(duì)數(shù)據(jù)進(jìn)行控制,ATM只需提高用戶邏輯和Aurora的接口即可;
● CRM為時(shí)鐘和復(fù)位信號(hào)產(chǎn)生模塊。
評(píng)論