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