作為一名新時(shí)代的ICer,一定必定肯定聽說過AMBA協(xié)議,但是卻少有人知道AMBA協(xié)議的evolution過程,本文將大致聊聊Evolution of the ARM AMBA Specifications!
高級(jí)微控制器總線架構(gòu)(AMBA)總線協(xié)議是ARM的一組互連規(guī)范,用于標(biāo)準(zhǔn)化各種功能模塊(或IP)之間的片上通信機(jī)制,以構(gòu)建高性能SOC設(shè)計(jì)。這些設(shè)計(jì)通常將一個(gè)或多個(gè)微控制器或微處理器以及其他幾個(gè)組件(內(nèi)部存儲(chǔ)器或外部存儲(chǔ)器橋接器、DSP、DMA、加速器和各種其他外設(shè)(如PCIE、USB、UART、I2C等)集成在單個(gè)芯片上。AMBA協(xié)議的主要目的是建立一種標(biāo)準(zhǔn)且有效的方法來互連這些模塊,并在多個(gè)設(shè)計(jì)中重復(fù)使用。
學(xué)習(xí)AMBA協(xié)議的第一步是了解這些協(xié)議的確切使用場(chǎng)景,這些協(xié)議是如何演變的,以及它們?nèi)绾芜m用于SOC設(shè)計(jì)。下圖(參考AMBA 2規(guī)范)說明了基于AMBA的傳統(tǒng)SOC設(shè)計(jì),該設(shè)計(jì)使用AHB或ASB協(xié)議進(jìn)行高帶寬互連,并使用APB協(xié)議進(jìn)行低帶寬外設(shè)互連。
隨著越來越多的功能模塊集成到SOC設(shè)計(jì)中,共享總線協(xié)議AHB/ASB很快就開始受到限制。
2003年,新修訂版AMBA 3引入了點(diǎn)對(duì)點(diǎn)連接協(xié)議——AXI 3。2010年,又推出了增強(qiáng)版——AXI 4。如下圖,可以看出協(xié)議的演變以及業(yè)界SOC設(shè)計(jì)趨勢(shì)。
下圖則說明了如何使用AXI互連來構(gòu)建具有各種功能模塊的SOC,并通過主從協(xié)議進(jìn)行通信。互連可以是定制的crossbar或switch設(shè)計(jì),甚至可以是支持多個(gè)AXI masters和slaves的現(xiàn)成NOC(片上網(wǎng)絡(luò))IP。與以前的AHB/ASB總線相比,AXI互連有助于擴(kuò)展agent數(shù)量的連接。其中一個(gè)slave端口上的AXI2APB橋接器,通常用于通信橋接到APB總線上的一組外設(shè)。
進(jìn)一步的演變發(fā)生在移動(dòng)和智能手機(jī)時(shí)代,SoC具有雙/四/八核處理器,使得在具有一致性緩存的多個(gè)CPU核集成在單個(gè)芯片上時(shí),需要實(shí)現(xiàn)有效的數(shù)據(jù)共享和一致性管理。這導(dǎo)致在AMBA 4版本中引入了ACE。
最后,在當(dāng)前HPC和數(shù)據(jù)中心市場(chǎng)異構(gòu)計(jì)算的時(shí)代,集成趨勢(shì)繼續(xù)隨著處理器核心數(shù)量的增加以及GPU、DSP、FPGAs、memory controllers和IO子系統(tǒng)等幾種異構(gòu)計(jì)算元素的增加而增加。2013年,AMBA 5引入了CHI協(xié)議,作為對(duì)AXI/ACE協(xié)議的重新設(shè)計(jì)。基于信號(hào)的AXI/ACE協(xié)議被新的基于數(shù)據(jù)包的CHI分層協(xié)議所取代。
以上就是AMBA協(xié)議演變的大致過程,ARM已經(jīng)開源了所有協(xié)議,所有spec都可以從ARM網(wǎng)站免費(fèi)下載:
APB:(Advanced Peripheral Bus)用于連接低帶寬外設(shè)。它是一種簡(jiǎn)單的非流水線協(xié)議,可用于通過共享總線從brigde/master與多個(gè)slave進(jìn)行通信(讀或?qū)?。讀和寫共享同一組信號(hào),不支持burst傳輸。
AHB:(Advanced High-performance Bus)用于在共享總線上連接需要較高帶寬的組件。這些可以是內(nèi)部存儲(chǔ)器或外部存儲(chǔ)器接口,DMA等,但共享總線將限制agent的數(shù)量。與APB類似,這是一個(gè)用于多個(gè)master和slave的共享總線協(xié)議,但可以通過burst傳輸實(shí)現(xiàn)更高的帶寬。
AHB-lite:AHB-lite協(xié)議是AHB的簡(jiǎn)化版本。只支持單個(gè)master設(shè)計(jì),并且移除了arbitration,retry,split等功能。
AXI:(Advanced eXtensible Interface)對(duì)于高帶寬和低延遲互連非常有用。這是一種點(diǎn)對(duì)點(diǎn)互連,克服了共享總線協(xié)議在可連接的agent數(shù)量方面的限制。該協(xié)議是AHB的增強(qiáng)版,支持outstanding傳輸、burst傳輸、獨(dú)立讀寫通道以及不同總線寬度。
AXI-lite:AXI-lite協(xié)議是AXI的簡(jiǎn)化版本,不支持burst傳輸、亂序傳輸?shù)鹊取?/p>
AXI-stream:它只支持?jǐn)?shù)據(jù)從master流到slave。協(xié)議中沒有獨(dú)立的讀/寫通道,因?yàn)樗辉谝粋€(gè)方向上進(jìn)行傳輸。不需要地址傳輸,只傳輸數(shù)據(jù),沒有其他控制信號(hào),在視頻流等設(shè)計(jì)中非常有用。
ACE:(AXI Coherency Extensions)是對(duì)AXI 4協(xié)議的擴(kuò)展,它在多個(gè)CPU核心與一致性緩存集成在單個(gè)芯片上的時(shí)代得到了發(fā)展。ACE協(xié)議通過引入獨(dú)立的snoop地址、snoop數(shù)據(jù)和snoop響應(yīng)通道,擴(kuò)展了AXI讀寫數(shù)據(jù)通道。這些額外的通道提供了實(shí)現(xiàn)基于snoop的一致性協(xié)議的機(jī)制。
ACE-lite:ACE還為那些沒有自己的緩存,但仍然屬于可共享一致性域的agent提供了一個(gè)簡(jiǎn)化版本的協(xié)議。典型的agent(如DMA或網(wǎng)絡(luò)接口agent)可以使用ACE-lite協(xié)議實(shí)現(xiàn)這種“單向”一致性。
CHI:(Coherent Hub Interface)隨著SOC上一致性cluster數(shù)量的增加,以及其他異構(gòu)計(jì)算元素和內(nèi)存控制器的加入,AMBA 5引入了CHI協(xié)議,作為ACE協(xié)議的完全重新設(shè)計(jì)。CHI協(xié)議使用分層的基于數(shù)據(jù)包的通信協(xié)議,包括協(xié)議層、鏈路層和物理層的實(shí)現(xiàn),并支持基于QoS的流控制和重試機(jī)制。
進(jìn)一步學(xué)習(xí)的最好方法是閱讀spec,了解協(xié)議的每一個(gè)細(xì)節(jié)。APB和AHB相對(duì)簡(jiǎn)單,可以快速上手,AXI、ACE和CHI相對(duì)復(fù)雜,需要詳細(xì)閱讀并理解緩存一致性和通用通信協(xié)議的基礎(chǔ)知識(shí)。
審核編輯:劉清
-
加速器
+關(guān)注
關(guān)注
2文章
799瀏覽量
37873 -
微處理器
+關(guān)注
關(guān)注
11文章
2263瀏覽量
82448 -
SoC設(shè)計(jì)
+關(guān)注
關(guān)注
1文章
148瀏覽量
18774 -
片上網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
33瀏覽量
11808 -
AMBA協(xié)議
+關(guān)注
關(guān)注
0文章
7瀏覽量
6449
原文標(biāo)題:一文了解AMBA總線協(xié)議和體系結(jié)構(gòu)
文章出處:【微信號(hào):IC修真院,微信公眾號(hào):IC修真院】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論