電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 135|回復(fù): 0
收起左側(cè)

深入理解AXI協(xié)議中的outstanding/out-of-order/interleaving(三)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
匿名  發(fā)表于 2024-10-22 11:17:00 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
——————————————————————————————
版權(quán)聲明:
本文作者:烓圍瑋未。主要從事ISP/MIPI/SOC/車規(guī)芯片設(shè)計(jì)/SOC架構(gòu)設(shè)計(jì)
首發(fā)于知乎專欄:芯片設(shè)計(jì)進(jìn)階之路
微信公眾號(hào):芯片設(shè)計(jì)進(jìn)階之路(x_chip)
轉(zhuǎn)發(fā)必須授權(quán),同時(shí)保留這段聲明,盜版必究!
——————————————————————————————
為了詳細(xì)了解,outstanding,out-of-order,interleaving對(duì)傳輸?shù)挠绊,繼續(xù)進(jìn)行場(chǎng)景分析。
  • 兩個(gè)master訪問兩個(gè)salve[/ol]兩個(gè)master訪問兩個(gè)個(gè)slave,代表了大多數(shù)SOC系統(tǒng)的最基本的總線結(jié)構(gòu)。

    在前面的分析中,其實(shí)簡(jiǎn)化了BUS的作用,但是復(fù)雜情況下,其實(shí)BUS才是重點(diǎn)。加上了總線(BUS)后,為了便于分析,把BUS分解成如下結(jié)構(gòu):

    BUS仲裁采用最簡(jiǎn)單的crossbar,實(shí)際中可能是NOC/MESH等結(jié)構(gòu),我們先按照最簡(jiǎn)單的進(jìn)行分析。BUS內(nèi)部總線也按照AXI來進(jìn)行,實(shí)際中可能是AXI也可能是私有協(xié)議。
    可以看到,master訪問slave,實(shí)際上是經(jīng)過了一系列的中間單元,bus內(nèi)部的slave和master,這些單元會(huì)把輸入進(jìn)行緩存或者進(jìn)行時(shí)鐘域變換,或者進(jìn)行數(shù)據(jù)位寬變幻,協(xié)議轉(zhuǎn)換等,這些是總線設(shè)計(jì)的重點(diǎn),這里簡(jiǎn)化為進(jìn)行簡(jiǎn)單的接受和轉(zhuǎn)發(fā)。那么一個(gè)master訪問slave可以簡(jiǎn)化為下面的鏈路:

    下面我們先基于這個(gè)基本鏈路進(jìn)行分析。復(fù)雜的系統(tǒng)都是這個(gè)鏈路的組合。
  • AXI鏈路的outstanding支持[/ol]再重復(fù)一下協(xié)議的規(guī)則:
  • 同一個(gè)ID:可以發(fā)送多個(gè)OST,但是必須按照順序回來;
  • 不同ID:可以發(fā)送多個(gè)OST, 返回可以亂序;
  • 讀和寫是獨(dú)立通道,沒有關(guān)系;
    [/ol]
  • Master是否支持oustanding的對(duì)比[/ol]如果master不支持oustanding,由于經(jīng)過了多個(gè)slave和master鏈路,導(dǎo)致響應(yīng)延時(shí)更大,這時(shí)候master是否支持outstanding的區(qū)別更加明顯:

    圖片上半部分是不支持OST, 下半部分是支持OST。可以明顯看到,當(dāng)response延時(shí)加大時(shí)候,支持outstanding帶來的提升更加明顯。
    如APB這種不支持OST的協(xié)議,在配置大量配置的時(shí)候,就需要非常長的時(shí)間,比如現(xiàn)在的GPU/ISP等IP可能需要配置幾萬個(gè)寄存器,如果使用APB協(xié)議,可能初始化時(shí)間就需要十分鐘,這是不能忍受的。所以最新的IP都是通過AXI或者自帶的DMA來進(jìn)行配置。IP設(shè)計(jì)的時(shí)候要充分考慮到系統(tǒng)的需求。
  • 數(shù)據(jù)鏈路的oustanding計(jì)算[/ol]上面的分析中,沒有考慮到中間鏈路的outstanding的支持,如果AXI訪問鏈路上的OST是不一樣的,整個(gè)鏈路的OST怎么計(jì)算呢?如下圖所示:

    Master0的OST=4, Master00 OST=2, Master01 OST=5。假設(shè)Slave只是做接受和直接轉(zhuǎn)發(fā),不做任何緩存,實(shí)際中大部分也是這種情況。另外,Master0發(fā)送的傳輸必須等到slave0的response返回,這筆transcation才算結(jié)束,也就是不支持eraly response,這也符合大部分實(shí)際系統(tǒng)的運(yùn)行。
    那么假設(shè)Master0還是能發(fā)出4個(gè)outstanding,傳輸?shù)組aster00。Master00在發(fā)送完2個(gè)outstanding命令后,需要等待第一個(gè)response返回,因?yàn)镺ST=2,這樣,Master00其實(shí)不會(huì)接受上游Master0的A2和A3命令。
    也就是Master0雖然OST=4, 但由于下游的Master00不接受,導(dǎo)致Master0實(shí)際只能發(fā)送2個(gè),也就是鏈路到Master00實(shí)際的OST=2。
    那么Master00怎么控制Master0不繼續(xù)發(fā)送命令呢?別忘了AXI是一個(gè)握手協(xié)議,Master00不能繼續(xù)發(fā)送的時(shí)候,可以直接反壓上游,不發(fā)送Ready信號(hào)就可以讓上游的命令不能繼續(xù)發(fā)送。



    當(dāng)Master00繼續(xù)把傳輸發(fā)送給Master01, 雖然Master01 OST=5,但是Master00發(fā)不出大于2的命令,這樣在Master01的輸出AXI口上,看到的OST=2.
    所以,整個(gè)鏈路的OST=2.
    分析其他情況我們可以得到如下結(jié)論:
    一個(gè)AXI訪問鏈路上的outstanding大小等于鏈路上組件支持的最小的outstanding.
    所以在系統(tǒng)總線設(shè)計(jì)的時(shí)候,原則就是保持整個(gè)鏈路的outstanding和Master一致,總線內(nèi)部outstanding大于master只會(huì)浪費(fèi)資源,小于master又會(huì)限制master的性能。Master一般是IP,在進(jìn)行IP設(shè)計(jì)的時(shí)候,比較好的設(shè)計(jì)是能夠調(diào)節(jié)IP的outstanding大小,這樣在整個(gè)SOC系統(tǒng)進(jìn)行性能帶寬調(diào)試的時(shí)候,可以通過IP內(nèi)部來調(diào)節(jié),對(duì)系統(tǒng)優(yōu)化和后期靈活性帶來了極大的方便。
  • Master是否支持out-of-order和interleaving[/ol]正如前面的文章分析的,支持outstanding的一般都會(huì)支持,out-of-order和interleaving,不支持的影響在SOC系統(tǒng)上,只會(huì)放大不利因素,所以不在過多對(duì)比。如果IP(Master)不支持,那么系統(tǒng)總線設(shè)計(jì)也會(huì)解決這個(gè)問題,通過增加buffer等方式,不然對(duì)系統(tǒng)影響太大,具體的方法會(huì)在討論系統(tǒng)架構(gòu)的時(shí)候再分析(嗯,那是另外的價(jià)格)。
    真正的難點(diǎn)是多master訪問多slave的ID的處理,這會(huì)涉及到系統(tǒng)限制,死鎖等方面,下篇文章繼續(xù)分析。
    后記技術(shù)很重要,技術(shù)背后的思想更重要!
    技術(shù)背后的某些思想就是你解決以后問題的鑰匙。我的文章可能一篇中知識(shí)點(diǎn)不太多,但是力求讓你能深入理解,為你進(jìn)階打下基礎(chǔ)。如果有一點(diǎn)點(diǎn)收獲,也算是我對(duì)中國芯片行業(yè)的一點(diǎn)點(diǎn)小貢獻(xiàn)吧。
    贈(zèng)人玫瑰,手有余香。如果你有所收獲,麻煩花一秒時(shí)間幫我點(diǎn)個(gè)贊吧,謝謝!
    知乎專欄:芯片設(shè)計(jì)進(jìn)階之路
    ——————————————————————————————
  • 本帖子中包含更多資源

    您需要 登錄 才可以下載或查看,沒有賬號(hào)?立即注冊(cè)

    x
    回復(fù)

    使用道具

    發(fā)表回復(fù)

    本版積分規(guī)則


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表