基于PCI的單板計(jì)算機(jī)應(yīng)用中起到系統(tǒng)控制器作用的實(shí)
最近出現(xiàn)了一些兼?zhèn)鋽?shù)字信號(hào)處理器(DSP)和微控制器(MCU)能力的處理器,從而為那些既要求典型的MCU功能又要求高性能信號(hào)處理功能的應(yīng)用大開了方便之門。
本文引用地址:http://m.butianyuan.cn/article/202343.htm這類MCU的優(yōu)勢之一就是起到系統(tǒng)控制器的作用,通過以太網(wǎng)接口、USB接口和PCI等標(biāo)準(zhǔn)接口來協(xié)調(diào)各子系統(tǒng)的活動(dòng)。因?yàn)樵S多信號(hào)處理器都包含了這樣一些相同的接口,所以考慮一下系統(tǒng)的體系結(jié)構(gòu)正在如何演進(jìn)是很有意義的。本文將討論一種DSP在一個(gè)基于PCI的單板計(jì)算機(jī)應(yīng)用中起到系統(tǒng)控制器作用的實(shí)現(xiàn)方法。
原理圖
PCI總線的開發(fā)是為了提供一種能輕松連接外圍設(shè)備和臺(tái)式計(jì)算機(jī)的高性能方法。這些外圍設(shè)備包括圖形子系統(tǒng)、磁盤控制器和I/O設(shè)備。PCI總線與CPU總線是分開的,但是仍然需要訪問主存儲(chǔ)器。該接口可以通過一個(gè)電橋連接至系統(tǒng)總線,該電橋允許它以獨(dú)立于CPU時(shí)鐘頻率的固定頻率運(yùn)行??偠灾?,PCI為關(guān)鍵的系統(tǒng)元件提供了一個(gè)高帶寬的通道,以便在彼此之間傳送數(shù)據(jù)。
隨著嵌入式計(jì)算的出現(xiàn),人們都希望以最低的成本設(shè)計(jì)出帶有通用外圍設(shè)備的不以PC為中心的計(jì)算平臺(tái)。由于PCI的性能、可擴(kuò)縮性和普遍性,使其成為一種自然的“通用標(biāo)準(zhǔn)”,用于連接大量已經(jīng)使用的外圍設(shè)備。
此外,通過標(biāo)準(zhǔn)接口將嵌入式處理器連接到比它們功能更強(qiáng)大的臺(tái)式機(jī)處理器是很有利的,其驅(qū)動(dòng)力是嵌入式應(yīng)用的發(fā)展,例如,用戶手持設(shè)備、銷售點(diǎn)終端以及連接PC的工業(yè)自動(dòng)化系統(tǒng)。PCI促進(jìn)了模塊嵌入式系統(tǒng)設(shè)計(jì),從而允許多種外圍設(shè)備能無縫地連接到一種通用總線。最后,這種方法降低了產(chǎn)品總材料成本并且增加了設(shè)計(jì)的重用,從而降低了開發(fā)帶有嵌入式PCI接口的處理器的總風(fēng)險(xiǎn)。
系統(tǒng)結(jié)構(gòu)原理圖
系統(tǒng)體系結(jié)構(gòu)的演進(jìn)
在MCU控制的系統(tǒng)中,DSP一般是充當(dāng)協(xié)處理器。如圖1(a)所示,這種配置中的MCU和DSP通常是通過高速的串行鏈路或者存儲(chǔ)接口進(jìn)行通信。MCU先把數(shù)據(jù)傳遞給DSP,然后DSP把處理過的數(shù)據(jù)傳回給MCU,很可能還是通過同樣的接口。對(duì)諸如音頻處理這樣的中低帶寬應(yīng)用來說,這種方式效果很好。但是在處理高帶寬數(shù)據(jù)流時(shí),這種方式就就無法勝任了,例如,原始視頻流,很可能就要求超過25MB/s的數(shù)據(jù)傳送速率,遠(yuǎn)遠(yuǎn)超過了傳統(tǒng)的高速串行接口所能支持的8~15MB/s的速率。另外,如果MCU和DSP之間沒有可用的專用存儲(chǔ)接口,共享的存儲(chǔ)器會(huì)降低總體性能,因?yàn)镈SP在訪問共享空間的同時(shí)也占用了MCU的外部存儲(chǔ)器總線。
上述不利因素的結(jié)合導(dǎo)致了如圖1(b)所示的排列。通過在DSP中集成PCI功能,該DSP可以簡單地看作另一種置于由MCU主控的PCI總線另一端的“外圍設(shè)備”。在這里,DSP起到“PCI設(shè)備”的作用。該P(yáng)CI連接利用空閑的帶寬來支持視頻流速率,而且這種配置甚至允許該DSP作為一種“總線主控器”以便直接訪問該P(yáng)CI總線上的其他設(shè)備(例如網(wǎng)絡(luò)和存儲(chǔ)接口)。
隨著系統(tǒng)成本壓力進(jìn)一步推動(dòng)了設(shè)計(jì)的集成,如圖1c所示的解決方案就更加理想。圖中的處理器不是一個(gè)簡單的DSP,而是一種結(jié)合了強(qiáng)大的DSP和MCU功能的信號(hào)處理器。因此,它可以作為系統(tǒng)控制器,能主控PCI總線并且減少了一個(gè)處理器,從而大大節(jié)省了總系統(tǒng)成本。ADSP-BF533 Blackfin媒體處理器正是具備這種功能的器件。
PCI接口的特點(diǎn)
為了便于下一步的討論,先明確幾個(gè)與PCI有關(guān)的關(guān)鍵術(shù)語。
主機(jī)與設(shè)備,主控器與受控器
PCI的主要特點(diǎn)之一就是對(duì)等通信??紤]到大多數(shù)的設(shè)備都支持一種“主控器”操作,隨后設(shè)備就可以在彼此之間或者與系統(tǒng)主機(jī)(例如,圖1(a)所示的MCU或PC)之間通信。在這種拓?fù)浣Y(jié)構(gòu)中,所有的設(shè)備,包括主機(jī),都能作為一個(gè)特定PCI事務(wù)的主控器或者受控器。主機(jī)與設(shè)備的區(qū)別就在于主機(jī)可以在總線上配置各PCI代理并且提供總線仲裁。通過配置,各PCI代理(可以主控總線的設(shè)備)將彼此看成是一種存儲(chǔ)映像設(shè)備的集合,可以通過在它們各自的存儲(chǔ)器區(qū)域中發(fā)起數(shù)據(jù)傳送來訪問這些設(shè)備。每個(gè)PCI代理都可以對(duì)目標(biāo)機(jī)(“受控器”)發(fā)起一次數(shù)據(jù)傳送,從而成為該特定事務(wù)的總線主控器。
總線仲裁
在一些嵌入式應(yīng)用中,當(dāng)前的總線主控器可以不止一個(gè),這時(shí)就需要一個(gè)PCI總線判決器。在嵌入式應(yīng)用中利用一個(gè)小型的可編程邏輯電路(PLD)很容易實(shí)現(xiàn)這種功能(以前都由PC提供)。每個(gè)可能的總線主控器都有兩條線(一條用于請(qǐng)求,一條用于授權(quán))進(jìn)入總線判決器。當(dāng)一個(gè)總線主控器要求使用PCI總線時(shí),必須在其設(shè)備請(qǐng)求線上申請(qǐng)。判決器來決定什么時(shí)候授予其總線使用權(quán)并在適當(dāng)?shù)臅r(shí)候通知其授權(quán)線。雖然PCI標(biāo)準(zhǔn)中沒有規(guī)定具體的仲裁算法,但是要求有“一種公平的算法以防止死鎖”。通常,可以采用一種簡單的輪循方法來確保不會(huì)有某一個(gè)總線主控器獨(dú)占總線。
性能
如果數(shù)據(jù)吞吐量性能很重要,那么突發(fā)傳送是很關(guān)鍵的。PCI總線上的突發(fā)傳送主要是由同一地址段接連發(fā)生至少兩次數(shù)據(jù)傳送而引起的。和其他的傳送類型一樣,一旦總線主控器接收到PCI總線的使用權(quán),就要傳送其起始地址和事務(wù)類型。在實(shí)際的PCI系統(tǒng)中,總線主控器和目標(biāo)機(jī)必須都支持突發(fā)事務(wù)。例如,如果目標(biāo)機(jī)只支持單一事務(wù),性能就會(huì)極大降低,因?yàn)樵摽偩€主控器必須反復(fù)申請(qǐng)總線使用權(quán)并傳送每個(gè)事務(wù)的地址。當(dāng)總線主控器和目標(biāo)機(jī)都支持突發(fā)事務(wù)時(shí),該P(yáng)CI上的帶寬就能達(dá)到132MB/s(4B×33MHz)的最高吞吐量。
評(píng)論