在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

請問AMBA總線之AXI是如何提高性能的呢?

路科驗證 ? 來源:芯時代青年 ? 2024-02-21 12:27 ? 次閱讀

很多讀者對AXI是如何提高吞吐量,提高帶寬的方式還不夠Make sense。本篇文章將從概念本身,結合配圖,帶大家充分理解AXI是如何提高性能的。

1、如何評估性能?

性能中一個關鍵的指標就是延遲,什么是延遲(Latency)呢?

比如有個人,叫做小明,在上大學需要用錢,因此給父親寄信。父親收到信以后將錢寄給小明同學。整個過程一共花費了2+3=5days。這就是整個寄信加寄錢所花費的延遲。

我們假設每次寄錢只能夠寄兩萬,由此我們又可以引出帶寬(Bandwidth)的概念。所謂的帶寬即單位時間可以傳輸的數據量多少。在上述的例子中BW=2W/5days = 0.4W/day。

如果按照這樣的一個帶寬速度,寄100萬需要多久呢?我們用數據量除以帶寬:100W/(0.4W/day)=250days!

如何讓寄100萬更快呢?一種很直接的方法,就是在收到錢之前,狂發信。父親每收到一封就把錢寄回去。理論上這樣只需要5天多一點,就可以寄100W!

2、Outstanding對性能的影響

有了上面的例子,大家已經知道了什么是延遲和帶寬了。由此我們接著往下講。在之前的文章已經講過,AXI提高傳輸速度主要有三板斧,以下排名分先后順序:

Outstanding

Out-of-orde(ooo)

Interleave

最直截了當提高總線性能的方法是什么呢?首先就是提高頻率,再一個就是提高數據位寬。這兩種方式對所有的總線實際上都是成立的,但由于過于簡單粗暴,一般不能作為某個總線的優勢或者賣點所在。

因此我們重點講一下AXI的三板斧,首先是Outstanding。所謂的Outstanding就是在任務完成之前就可以下達新的任務,即“在路上”。Outstanding是上面三種方法中,提高總線性能最有效最簡單的方法!

我們看一下Outstanding的延遲怎么算。下圖顯然是不支持Outstanding的例子,可以看到AR發出以后,需要15個Cycle準備數據,又需要5個Cycle傳回數據。因此總共需要20個Cycle。

這個例子中絕對延遲和平均延遲都是20s。

這個例子中帶寬BW=30B/60s=0.5Bps,然而最大的瞬時帶寬是2Bps。

有75%的時間都因為Master和Slave之間的巨大延遲而浪費掉了!

9ce2ff6e-d06f-11ee-a297-92fbcf53809c.jpg

我們再看一下Outstanding做到3的時候是怎樣的結果,下圖這個例子中,絕對延遲依然是20s。但是平均延遲變為了30s/3=10s。相應的帶寬也變成了1Bps。

9cf33d52-d06f-11ee-a297-92fbcf53809c.jpg

上面那個例子中,是過了5s再發出下一個Outstanding命令,實際上一般不會考慮這么多。當還沒有發滿的時候,就接著發。我們看下面這個例子:

絕對延遲分別是20/24/28s。由此可以看到Outstanding有可能還會使絕對延遲變長(當然B、C也可以向流水線一樣和A緊貼著,這個取決于具體設計。當需要維持住5個Cycle的時候,那自然就需要等待了)

平均延遲是50/6=8.33s。

BW=60B/50s=1.2Bps

也可以用平均延遲算,BW=10B/8.33=1.2Bps

9cf6a0a0-d06f-11ee-a297-92fbcf53809c.jpg

上面那個例子中,R這個信道實際上也是沒有占滿的,當Outstanding為4的時候呢?可以看看下圖這個例子:

絕對延遲分別是20/24/28/32s

平均延遲是55s/8=6.875s,極限是lim?→∞(15+??5)/?=5?

BW=80B/55s=1.45Bps,極限是lim?→∞(10??)/(15+??5)=2???

可以看到理論極限就是5s,這個時間對應于真正需要傳輸數據或者是維持住某個數據不變的時間。極限的帶寬實際上就是10/5=2Bps

9d081948-d06f-11ee-a297-92fbcf53809c.jpg

我們再來思考一個問題:Outstanding數量越多越好嗎?

答案當然是否定的,更多的Outstanding意味著更多的硬件資源開銷,比如就需要很多的Buffer去存儲已經發送的CMD。但通過上面的例子我們可以看出,當Outstanding再增加,其性能也已經飽和了,不會再增加。因此選擇一個合適的Outstanding數量,基于此進行設計很重要。

既然Outstanding不是越大越好,那我們怎么去估計Outstanding數量呢?

我們考慮一個非常簡單的例子:

假設始終頻率是500MHz,相應的周期是2ns

假設AXI cmd是基于burst-8傳輸的。即對于一個cmd,至少需要8個cycle傳輸相應的數據。

第一筆數據返回的時候,需要200ns

由此可以估算Outstanding的數量為200/(2ns*8),可以設置為8或者16(一般是用2的冪次方)。實際中會比這個例子復雜的多,該例子只是幫助大家梳理一下基本思路。

我們再看一下Outstang的優缺點:

優點:提高帶寬,減少平均延遲

缺點:可能會增加絕對延遲,一定會增加面積(需要Buffer存CMD,如果沒有亂序,這個時候額外的面積其實還不太多,如果要支持亂序,那額外的面積開銷就大了,因為還要存DATA)

此外,Outstanding是ooo和Interleave的基礎,沒有Outstanding,后面二者是無從談起的。

3、Out of Order對性能的影響

講完了Outstanding,我們來看一下亂序。在上面的例子中,大家可能會覺得:咦?不是R信道已經占滿了嗎?難道還可以提速嗎?為什么還需要亂序?

因為在上面的例子中,我們是假定各個模塊準備數據的延遲是一樣久的。但是在下面這個例子中,可以看到B需要更多的周期去準備相應的數據,又浪費了Cycle!假如B的數據是來自DDR的,此時還用這種方式且不支持亂序,那就非常Naive了,可能百分之九十多的周期都被浪費了。

9d1810b4-d06f-11ee-a297-92fbcf53809c.jpg

這種情況下,我們就要使出第二板斧,亂序。可以看到下圖這個例子,我們可以讓快速的Slave先傳,然后再傳慢的Buffer。

9d227cd4-d06f-11ee-a297-92fbcf53809c.jpg

如果要做Out of Order。那么Master端就需要一個非常大的Buffer了。以上圖例子中,就需要40Byte的Buffer了。因為最差的情況,數據ABCD是倒著回給你的,但是你還是得按照順序用,那只能用額外的Buffer存儲了。因此如果不是某個Slave一定會亂序,且對性能影響很大,一般做Master是不建議支持Out of Order的。

4、Interleave對性能的影響

Interleave就是交織,在AXI中的Interleave,按照我的理解就是更加細粒度的亂序。

我們考慮這樣的例子,每次CMD需要4次Transfer。我們假設Slave準備數據很慢,每次只能準備2次Transfer的數據,如下圖所示。可以看到,又有Cycle浪費了(可以看到這個例子中,是Out of Order的,但是同樣有周期的浪費)。

9d272d2e-d06f-11ee-a297-92fbcf53809c.jpg

當允許交織以后,如下圖所示:可以看到每個周期都充分利用上了,非常的棒啊。這樣性能會更加好。但是Interleave顯然,比Out of Order更麻煩。它消耗的面積和亂序實際上是差不多的,但是控制邏輯復雜的多。正因為如此,AXI4已經移除了寫交織,僅保留讀交織。

實際上很多Master壓根不支持讀交織,大家設計模塊的時候,還是要根據實際需求,確定是否需要支持這些功能。畢竟一旦支持這些功能,一個簡單的DMA Master的代碼都奔著上千行去了,還非常容易出錯。(筆者當時就做了一個可以亂序和讀交織的DMA,僅僅和驗證配合調試都花了兩個多月)。

9d357820-d06f-11ee-a297-92fbcf53809c.jpg

5、其它提高AXI性能的辦法

這里主要講兩點:

QoS

數據/傳輸的重定義,優化

5.1、QoS

QoS實際上是計算機網絡的概念,QoS(Quality of Service)即服務質量。在有限的帶寬資源下,QoS為各種業務分配帶寬,為業務提供端到端的服務質量保證。例如,語音、視頻和重要的數據應用在網絡設備中可以通過配置QoS優先得到服務。

ARM基于此概念,在AXI4新增QoS相關的信號,為AxQOS,共4bit,其定義了每次傳輸的優先級。我們一般認為0xF代表最高的優先級,0x0代表最低的優先級。QoS一般有如下的作用:

QoS可以用來解決訪問沖突問題,當同時訪問先仲裁得到優先級高的;

Slave可以根據QoS來reorder或者優先考慮先回應哪筆傳輸;

下圖是一個典型的復雜系統,這種系統就需要QoS來確定,到底哪個Master可以優先獲得總線訪問機制,因此就需要設計復雜的QoS控制系統,此系統一般是可以通過軟件實時的去改配。

9d405e98-d06f-11ee-a297-92fbcf53809c.jpg

我們再思考一下,QoS主要是優化延遲還是帶寬呢?

AXI的QoS主要是為了解決延遲問題。通過此值,可以更好的仲裁,以避免延遲大的阻塞住整個總線,而嚴重影響其它模塊的訪問延遲。當然它一定程度上也會影響到帶寬。

AXI的QoS實際上我沒參與設計過,這里就不展開講具體設計了,以避免誤導大家。

9d5aff32-d06f-11ee-a297-92fbcf53809c.jpg

5.2、Data/Transfer

上面我們講的這些AXI的優化策略,其實ARM的初衷,主要是為了DDR設計的。因為大部分Slave和Master之間都是緊耦合的,根本就不需要Out of Order和Interleave。那么如何針對DDR的讀寫去優化呢?簡單來講就是你的CMD和DATA要更加符合DDR的胃口。

地址對齊;

增加Burst Length;Burst Combine;

避免Partial Write。即WSTRB有1有0。因為很多DDR是不支持此功能的,你要讀回去再寫,非常耗時;

Read/Write Group。即不要寫一個讀一個,最好是寫一組讀一組;

避免Locked/Exclusive access;(Locked就不說了,Exclusive是一讀一寫,對DDR非常不友好)

6、AHB vs AXI

最后我們總結一下AXI和AHB的區別,再回顧一下AXI的優勢所在。

如下圖所示,是AHB和AXI的讀例子:

盡管AHB也可以突發傳輸,但是它每一次都是需要更新相應的地址,而AXI只需要給一次地址即可。后續的數據可以讓Slave自己根據首地址不停地去算。

此外AXI支持亂序,如果針對地址A1的transaction沒能及時響應,沒關系,可以先回地址A2和A3的數據。減少了可能存在的周期浪費。

此外AXI讀還支持Interleave,即更加細粒度的亂序。可以看到針對地址A3的回數據,可能回了一筆突然回不了了,沒關系,可以馬上回地址A1的數據,再回地址A3的數據。

9d69483a-d06f-11ee-a297-92fbcf53809c.jpg




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制系統
    +關注

    關注

    41

    文章

    6765

    瀏覽量

    111876
  • DDR
    DDR
    +關注

    關注

    11

    文章

    731

    瀏覽量

    66502
  • QoS
    QoS
    +關注

    關注

    1

    文章

    137

    瀏覽量

    45300
  • AMBA總線
    +關注

    關注

    0

    文章

    35

    瀏覽量

    9804
  • AHB
    AHB
    +關注

    關注

    0

    文章

    26

    瀏覽量

    10155

原文標題:深入理解AMBA總線之AXI是如何提高性能的

文章出處:【微信號:Rocker-IC,微信公眾號:路科驗證】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    NVMe協議簡介AXI總線

    高性能、高帶寬、低延時的片內互連需求。AXI4總線則是AXI總線的第四代版本,主要包含三種類型的接口,分別是面向
    發表于 05-17 10:27

    AMBA_AXI總線詳解

    AMBA_AXI總線詳解
    發表于 04-18 11:48

    學習架構-AMBA AXI簡介

    本指南介紹了高級微控制器總線體系結構(AMBAAXI的主要功能。 該指南解釋了幫助您實現AXI協議的關鍵概念和細節。 在本指南中,我們介紹: ?A
    發表于 08-09 07:37

    PrimeCell高性能矩陣(PL301)技術概述

    HPM是一個高度可配置的自動生成的AMBA 3總線子系統,基于稱為AXI總線矩陣的高性能AXI
    發表于 08-22 06:22

    AMBA3.0 AXI總線接口協議的研究與應用

    本文介紹了AMBA3.0AXI的結構和特點,分析了新的AMBA3.0AXI協議相對于AMBA2.0的優點。它將革新未來高性能SOC總線互連技
    發表于 09-20 08:30

    AMBA AXI總線學習筆記

    AMBA AXI 總線學習筆記,非常詳細的AXI總線操作說明
    發表于 11-11 16:49 ?11次下載

    AMBA總線AHB、APB、AXI性能對比分析及AHB詳解

    高性能總線 ASB (Advanced System Bus) 高級系統總線 APB (Advanced Peripheral Bus) 高級外圍總線
    發表于 11-15 12:26 ?3.3w次閱讀

    AMBA總線概述(二)

    高性能地址映射通信的需求,允許最大256輪的數據突發傳輸; AXI4-Lite:是一個簡單地吞吐量地址映射性通信總線,是一個輕量級的地址映射單次傳輸接口,占用很少的邏輯單元; AXI
    發表于 10-02 07:09 ?1266次閱讀

    一文看懂AMBA AXI協議

    AMBA AXI 協議以高性能,高頻系統設計為目標,提供了很多適合高速亞微型系統 互連的特征。
    發表于 03-28 09:47 ?23次下載
    一文看懂<b class='flag-5'>AMBA</b> <b class='flag-5'>AXI</b>協議

    AMBA3.0 AXI總線接口協議的研究與應用

    本文介紹了AMBA3。0AXI的結構和特點,分析了新的AMBA3。0AXI協議相對于AMBA2。0的優點。它將革新未來
    發表于 03-29 09:46 ?9次下載
    <b class='flag-5'>AMBA</b>3.0 <b class='flag-5'>AXI</b><b class='flag-5'>總線</b>接口協議的研究與應用

    AMBA 3.0 AXI總線接口協議的研究與應用

    本文介紹了AMBA 3.0 AXI的結構和特點,分析了新的AMBA 3.0 AXI協議相對于AMBA 2. 0的優點。它將革新未來
    發表于 04-12 15:47 ?28次下載

    基于AMBA總線介紹?

    3.0:增加了AXI協議(了解);AMBA4.0:ACE協議(了解) 本文主要介紹AMBA2.0 (Advanced Microcontroller Bus Architecture,先進微控制
    的頭像 發表于 05-19 14:22 ?2317次閱讀
    基于<b class='flag-5'>AMBA</b><b class='flag-5'>總線</b>介紹?

    介紹AMBA2.0總線

    3.0:增加了AXI協議(了解);AMBA4.0:ACE協議(了解) 本文主要介紹AMBA2.0 (Advanced Microcontroller Bus Architecture,先進微控制
    的頭像 發表于 09-06 09:53 ?3487次閱讀
    介紹<b class='flag-5'>AMBA</b>2.0<b class='flag-5'>總線</b>

    AXI總線協議簡介

      AXI (高性能擴展總線接口,Advanced eXtensible Interface)是ARM AMBA 單片機總線系列中的一個協議
    發表于 10-10 09:22 ?1.1w次閱讀

    NVMe簡介AXI總線

    NVMe需要用AXI總線進行高速傳輸。而AXI總線是ARM公司提出的AMBA(Advanced Microcontroller Bus Ar
    的頭像 發表于 05-21 09:29 ?145次閱讀
    NVMe簡介<b class='flag-5'>之</b><b class='flag-5'>AXI</b><b class='flag-5'>總線</b>
    主站蜘蛛池模板: 久久国产精品永久免费网站 | 黄色一级片在线观看 | 日韩欧美中文字幕在线视频 | 性感美女福利视频 | 黄网站色成年片大免费软件 | 999久久久国产精品 999久久久免费精品国产牛牛 | 国产gav成人免费播放视频 | 国产成人精品日本 | 亚洲精品久久久久午夜 | 色黄在线观看 | 午夜窝窝| 日日操夜夜操免费视频 | a级午夜毛片免费一区二区 a看片 | 久久综合免费 | 九九热精品在线 | 国产精品视频一区国模私拍 | 中文在线三级中文字幕 | 又粗又大又爽又色又过瘾视频 | 天天摸天天碰成人免费视频 | 国产日日干 | 亚洲xxx视频 | 日本一区二区高清免费不卡 | 国产成人精品三级 | 色偷偷97| 美女性视频网站 | 国产精品亚洲玖玖玖在线靠爱 | 黄色一级视频网 | 大香线蕉97久久 | 翘臀白浆 | 夜夜爽天天狠狠九月婷婷 | 天天做天天爱天天影视综合 | 天堂网在线资源www最新版 | 99草视频| 日本高清一本视频 | 男人的天堂在线免费视频 | 色五月激情五月 | 人人射人人干 | 一区二区三区网站 | 免费看黄色片网站 | 二区三区视频 | 亚洲人色大成年网站在线观看 |