如果你是一個(gè)IC工程師,并且當(dāng)前的芯片設(shè)計(jì)是 基于各種復(fù)用IP的SOC芯片 ,你肯定聽(tīng)說(shuō)過(guò)AMBA、AHB、APB、AXI、AXI-lite、ACE、CHI等。
AMBA總線協(xié)議是一套由ARM提供的互連規(guī)范,該規(guī)范標(biāo)準(zhǔn)化了各種IP之間的芯片通信機(jī)制。這些設(shè)計(jì)通常有一個(gè)或多個(gè)微處理器以及集成其他一些組件——內(nèi)部存儲(chǔ)器或外部存儲(chǔ)器橋、DSP、DMA、加速器和各種其他外圍設(shè)備,如USB、UART、PCIE、I2C等。AMBA協(xié)議的主要?jiǎng)訖C(jī)是用一種標(biāo)準(zhǔn)和高效的方法來(lái)重用這些跨多個(gè)設(shè)計(jì)的IP。
學(xué)習(xí)AMBA協(xié)議的第一步是了解這些不同的協(xié)議在哪里使用,是如何演進(jìn)的,以及它們適合什么樣SOC設(shè)計(jì)。 下圖展示了傳統(tǒng)基于AMBA的SOC設(shè)計(jì),它使用AHB(高級(jí)高性能)協(xié)議進(jìn)行高帶寬互連,以及針對(duì)低帶寬外圍互連的APB(高級(jí)外圍總線)協(xié)議。
隨隨著越來(lái)越多的IP集成到SOC設(shè)計(jì)中,讀寫(xiě)共享的AHB、APB總線已經(jīng)無(wú)法滿足互聯(lián)需求了。2003年,AMBA3.0引入了 點(diǎn)對(duì)點(diǎn)連接協(xié)議 ——AXI(高級(jí)可擴(kuò)展接口)。此外在2010年,又推出了一個(gè)增強(qiáng)版——AXI4。下圖說(shuō)明了協(xié)議的演變以及行業(yè)中的SOC設(shè)計(jì)趨勢(shì)。
下圖說(shuō)明了如何使用AXI互連來(lái)構(gòu)建各種IP通信的的SOC。與以前的AHB/ASB總線相比,AXI互連有助于提高連接數(shù)量。
在移動(dòng)和智能手機(jī)時(shí)代發(fā)生了進(jìn)一步的演進(jìn),SOC集成了2/4/8核處理器和共享cache,并且需要跨內(nèi)存子系統(tǒng)的硬件管理一致性。這導(dǎo)致了在AMBA修訂版4中引入了 ACE(AXI一致性協(xié)議擴(kuò)展) 。
在當(dāng)前HPC和數(shù)據(jù)中心市場(chǎng)的異構(gòu)計(jì)算時(shí)代,單個(gè)芯片上集成越來(lái)越多的處理器核心以及GPU、DSP、FPGA、內(nèi)存控制器和IO子系統(tǒng)。2013年,AMBA5引入了CHI協(xié)議,作為AXI/ACE協(xié)議的重新設(shè)計(jì)。基于信號(hào)的AXI/ACE協(xié)議被新的基于包的CHI協(xié)議所取代。
ARM已經(jīng)開(kāi)源了所有的協(xié)議,所有的規(guī)范都可以從ARM的網(wǎng)站上免費(fèi)下載。
1、APB:高級(jí)外圍設(shè)備總線(APB) 用于連接低帶寬的外圍設(shè)備。它是一個(gè)簡(jiǎn)單的非流水線協(xié)議。讀寫(xiě)操作共享同一組信號(hào),不支持burst數(shù)據(jù)傳輸。最新的規(guī)范(APB2.0)可以在ARM網(wǎng)站上找到, 是最容易學(xué)習(xí)的AMBA 協(xié)議 。
2、AHB:高級(jí)高性能總線(AHB) 用于連接共享總線上需要更高帶寬的組件。這些slave組件可以是內(nèi)部?jī)?nèi)存或外部?jī)?nèi)存接口、DMA、DSP等。AHB可以通過(guò)burst數(shù)據(jù)傳輸來(lái)獲得更高的帶寬。
3、AHB-lite協(xié)議是AHB的一個(gè)簡(jiǎn)化版本。簡(jiǎn)化后 只支持一個(gè)主設(shè)計(jì) ,這消除了對(duì)任何仲裁、重試、分割事務(wù)等的需求。
4、高級(jí)可擴(kuò)展接口(AXI) 適合于高帶寬和低延遲互連。這是一個(gè)點(diǎn)對(duì)點(diǎn)的互連,并克服了AHB、APB等共享總線協(xié)議在可連接的代理數(shù)量方面的限制性。該協(xié)議支持多個(gè)outstanding 的數(shù)據(jù)傳輸、burst數(shù)據(jù)傳輸、單獨(dú)的讀寫(xiě)通道和支持不同的總線寬度。
5、AXI-lite協(xié)議是AXI的簡(jiǎn)化版本,簡(jiǎn)化后不支持突發(fā)數(shù)據(jù)傳輸。
**6、AXI-stream **協(xié)議是AXI協(xié)議的另一種風(fēng)格,它只支持?jǐn)?shù)據(jù)流從master 流到slave。與完整的AXI或AXI-lite不同,AXI-stream 協(xié)議中沒(méi)有單獨(dú)的讀/寫(xiě)通道,因?yàn)槠淠康氖侵辉谝粋€(gè)方向上流。
7、ACE-AXI協(xié)議是AXI4協(xié)議的擴(kuò)展,應(yīng)用于在一個(gè)芯片上集成多個(gè)CPU核心與一致性cache的場(chǎng)景。ACE協(xié)議擴(kuò)展了AXI讀寫(xiě)數(shù)據(jù)通道,同時(shí) 引入了單獨(dú)的snoop 地址、snoop 數(shù)據(jù)和snoop 響應(yīng)通道 。這些額外的通道提供了實(shí)現(xiàn)基于snoop 的一致性協(xié)議的機(jī)制。
8、ACE-Lite —對(duì)于沒(méi)有自己cache的agents ,但仍屬于可共享一致性域的一部分,如DMA或網(wǎng)絡(luò)接口agent,使用ACE-lite協(xié)議實(shí)現(xiàn)這種“單向”一致性。
9、CHI —ACE協(xié)議作為AXI的擴(kuò)展而開(kāi)發(fā),以支持一致性互連。ACE協(xié)議使用了master/slave之間的信號(hào)電平通信,因此互連需要大量的線和增加的通道來(lái)進(jìn)行snoops 和響應(yīng)。這對(duì)于具有2/4核移動(dòng)SOC 的小一致性clusters非常有效。隨著SOC上集成越來(lái)越多的一致性clusters ——AMBA5修訂版引入了CHI協(xié)議。CHI協(xié)議使用基于分層分組的通信協(xié)議,具有協(xié)議、鏈路層和物理層實(shí)現(xiàn),還支持基于QoS的流控制和重試機(jī)制。
概述是我們深入地了解這些協(xié)議的開(kāi)始,進(jìn)一步了解的最好方法是閱讀規(guī)范,以了解每個(gè)協(xié)議的細(xì)節(jié)。APB和AHB相對(duì)簡(jiǎn)單,而且很容易學(xué)習(xí)。AXI和ACE/CHI相對(duì)復(fù)雜,需要詳細(xì)閱讀,以及了解緩存一致性和一般通信協(xié)議的基本知識(shí)。
-
dsp
+關(guān)注
關(guān)注
553文章
8005瀏覽量
349061 -
ARM
+關(guān)注
關(guān)注
134文章
9098瀏覽量
367707 -
dma
+關(guān)注
關(guān)注
3文章
561瀏覽量
100604 -
AMBA
+關(guān)注
關(guān)注
0文章
68瀏覽量
15002 -
總線協(xié)議
+關(guān)注
關(guān)注
0文章
116瀏覽量
14853
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論