分析寬帶系統(tǒng)互聯(lián)中的串行選擇
然而今天,子系統(tǒng)之間帶寬的迅速增長,低延時通路在子系統(tǒng)邊界擴展的風險,以及嚴格的功耗和成本預(yù)算等因素導致一切變得更加復雜。在很多設(shè)計中,不可能在系統(tǒng)中布滿CPU總線,或者外設(shè)總線。對于以芯片系統(tǒng)(SoC)實現(xiàn)的子系統(tǒng),一些芯片設(shè)計人員能夠通過這些子系統(tǒng)預(yù)先了解您的系統(tǒng)互聯(lián)體系結(jié)構(gòu)。由于低I/O電壓和極短的上升時間,點對點互聯(lián)遇到了很大的時序、信號完整性和電路板設(shè)計難題。
對于這一越來越復雜的情形,需要其他的解決方案。高速串行互聯(lián)一直主要用于通信行業(yè),在較長的距離上傳輸數(shù)據(jù)流。采用高級硅片工藝技術(shù),在很多系統(tǒng)中,這些串行鏈路的接口變得非常小,而數(shù)據(jù)速率足夠高,多千兆位串行鏈路替代了并行總線,甚至是異步I/O.
一個很明顯的例子是PCI Express (PCIe)。最初的PCI是非常傳統(tǒng)的并行同步總線。隨著個人計算機帶寬需求的增長,Intel把這一拓撲遷移到了高速串行鏈路的多個通路上。相似的發(fā)展也出現(xiàn)在大容量存儲器件中,老的AT連接總線變?yōu)楝F(xiàn)在非常熟悉的串行ATA (SATA)。
而這些概念的應(yīng)用已經(jīng)超出了外設(shè)總線。為能夠理解為什么高速串行鏈路可以應(yīng)用于點對點連接甚至是單個電路板邊界上,讓我們了解一些系統(tǒng)劃分問題。
系統(tǒng)劃分
在理想的理論體系結(jié)構(gòu)中,系統(tǒng)劃分完全是基于數(shù)據(jù)和控制流圖的系統(tǒng)過程。您畫出圖,然后,將功能模塊劃分到子系統(tǒng)中,子系統(tǒng)分成更大的組,這樣,減小了帶寬需求,增大了子系統(tǒng)之間鏈路的延時約束。然后,您可以針對這一鏈路的需求,以最短的合適互聯(lián),實現(xiàn)子系統(tǒng)之間的每一連接。
這一方法對于空白電路板非常適用。這實際上與SoC設(shè)計和FPGA使用的早期階段非常相似。但是,當今的大部分設(shè)計都從商用芯片開始:專用標準產(chǎn)品(ASSP)或者微控制器單元(MCU)。這些SoC給我們提出了很多劃分要求,如圖1所示。我們選擇的芯片決定了我們的子系統(tǒng)邊界,以及應(yīng)使用那種互聯(lián)技術(shù)。如果您MCU唯一的外部互聯(lián)是AMBA APB外設(shè)總線,或者DDR2存儲器總線,以及一些通用I/O引腳,那么,這就是您的選擇。
圖1.電機控制電路板上的芯片按照子系統(tǒng)進行分組。
即使這樣,劃分仍然是系統(tǒng)設(shè)計中的一個重要步驟。而且,您必須對比SoC設(shè)計人員做出的假設(shè)和系統(tǒng)實際物理邊界、帶寬需求以及延時要求。因此,您需要識別出子系統(tǒng):把需要交換大量數(shù)據(jù)的芯片放到一起,例如,SoC及其DRAM等??梢园阉鼈冎g的窄帶、對延時要求不高的芯片放在不同的子系統(tǒng)中,例如,MCU和系統(tǒng)監(jiān)視模數(shù)轉(zhuǎn)換器(ADC)等。通過這種分組方法包括了系統(tǒng)中所有的功能模塊后,可以轉(zhuǎn)向?qū)ψ酉到y(tǒng)之間的鏈路進行特征描述。
特征描述
在基于SoC的系統(tǒng)中,對子系統(tǒng)之間的互聯(lián)進行特征描述看起來似乎沒有什么意義。SoC的I/O選項很好的定義了接口。但是作為系統(tǒng)設(shè)計人員,您還是需要回答某些重要問題,仍然有一些可能不太明確的選項。
把問題分成帶寬、延時和成本幾類。帶寬是這些問題的基礎(chǔ)。如果您建議的互聯(lián)方案是可行的,那么,您應(yīng)該清楚的知道每一子系統(tǒng)的帶寬需求。一般而言,這實際上是一個意義不大的問題。SoC設(shè)計人員將通路設(shè)計得很長,以保證芯片上的I/O要比預(yù)測的任務(wù)需求多得多。一般有足夠的DRAM帶寬來處理芯片CPU高速緩存生成的所有指令和數(shù)據(jù)流。通常有PCIe等高速總線連接至主系統(tǒng)或者寬帶外設(shè)和加速器等。而且,還有與標準兼容的專用I/O接口。
但是,如果SoC設(shè)計人員沒有預(yù)見到您所做的工作呢?有時候,基于您對系統(tǒng)體系結(jié)構(gòu)的分析,您選擇的SoC完全滿足您的接口要求。在其他情況下,您可能會發(fā)現(xiàn),在某些地方會遇到瓶頸,而有的情況下會遇到未使用的帶寬,或者完全沒有使用的接口。在所有這些情況下,您可能會重新思考這些接口的用途。或者,如果您通過在FPGA中匯集知識產(chǎn)權(quán)(IP)來構(gòu)建SoC,那么,您能夠更靈活的重新安排系統(tǒng)互聯(lián)體系結(jié)構(gòu)。特別是,您應(yīng)該仔細處理系統(tǒng)中要求最高的數(shù)據(jù)流。將所有的東西都自動轉(zhuǎn)儲到一條共享總線上,即使是快速PCIe總線,也不是好方法。
評論