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

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

3天內不再提示

深度分析AMBA總線工作原理4

jf_78858299 ? 來源:黑客與攝影師 ? 作者:黑客與攝影師 ? 2023-05-04 11:30 ? 次閱讀

2.5 AXI總線

2.5.1 AXI總線簡介

AXI作為AMBA總線協議的一部分,第一次出現在AMBA 3.0中。后面AMBA 4.0發布,AXI4出現了。AXI4總線和別的總線一樣,都用來傳輸bits信息(包含了數據或者地址)。AXI是一種面向高性能、高帶寬、低延遲的片內總線。它的地址/控制和數據相位是分離的,支持不對齊的數據傳輸,同時在突發傳輸中,只需要首地址,同時分離的讀寫數據通道、并支持顯著傳輸訪問和亂序訪問,并更加容易進行時序收斂。

AXI特點是單向通道體系結構,信息流只以單方向傳輸,簡化時鐘域間的橋接,減少門數量。當信號經過復雜的片上系統時,減少延時。支持多項數據交換。通過并行執行猝發操作,極大地提高了數據吞吐能力,可在更短的時間內完成任務,在滿足高性能要求的同時,又減少了功耗。獨立的地址和數據通道。地址和數據通道分開,能對每一個通道進行單獨優化,可以根據需要控制時序通道,將時鐘頻率提到最高,并將延時降到最低。

AXI4總線有三種類型,分別是AXI4、AXI4-Lite、AXI4-Stream。AXI4是一種高性能memory-mapped總線,AXI4-Lite是一只簡單的、低通量的memory-mapped 總線,而 AXI4-Stream 可以傳輸高速數據流。從字面意思去理解,AXI4-Lite是AXI4的輕量版。這里保留了memory-mapped的寫法,主要是為了與AXI4-Stream區分開。

可以這樣去理解memory-mapped,假設有master A, 和 slave B,A與B通過AXI4或者AXI4-Lite連接通訊,A可以把B這個外設看作A上的某個地址。當A向B傳輸數據時,就等同于A向這個地址傳輸數據。AXI4-Stream與AXI4、AXI4-Lite不同, 它不需要地址通道。

2.5.2 AXI總線讀寫框架

1)AXI讀寫傳輸

AXI4 和 AXI4-Lite接口包含5個不同的通道:兩個讀通道和三個寫通道。每一個AXI傳輸通道都是單方向的。每一個傳輸都有地址和控制信息在地址通道(address channel)中,用來描述被傳輸數據的性質。

  • 兩個讀通道:讀地址通道(read address channel)、讀數據通道(read data channel)。
  • 三個寫通道:寫地址通道(write address channel)、寫數據通道(write data channel)、寫響應通道(write response channel)。
    對于讀操作,主模塊通過地址通道發送讀傳輸地址,從模塊通過讀數據通道返回給主模塊所需要的數據。

對于寫操作,主模塊通過寫地址通道發送寫傳輸地址,并通過寫數據通道把數據發送給從模塊。而從模塊接受到數據后,需要通過寫響應通道返回一個響應給主模塊。

讀通道和寫通道是分開的,因此可以完成數據的雙向傳輸。此外AXI4能夠實現burst傳輸,換句說就是,可以在一個地址后傳輸多個數據,最多可以達256 字節。AXI4-Lite不支持burst傳輸。AXI4-Stream 只有一個通道,不需要地址,可以burst 傳輸無限的數據。

這5條獨立的通道都包含一個信息信號和一個雙路的VALD、READY握手機制。信息源通過VALID信號來指示通道中的數據和控制信息什么時候有效。目地源用READY信號來表示何時能夠接收數據。讀數據和寫數據通道都包括一個LAST信號,用來指明一個事物傳輸的最后一個數據。

讀和寫傳輸都有他們自己的地址通道,這地址通道攜帶著傳輸所必須的地址和信息。讀數據通道傳送著從模塊到主模塊的讀數據和讀響應信息。讀響應信息指明讀事務的完成狀態。寫數據通路傳送著主模塊向從模塊的寫數據。每八個數據都會有一個byte lane ,用來指明數據總線上面的哪些byte有效。寫響應通道提供了設備響應寫傳輸的一種方式。這完成信號每一次突發式讀寫會產生一個。

2)AXI典型連接圖

上圖是一個典型的一系列主設備與一系列從設備的連接系統。這些主設備與從設備通過interconnect連接在一起。

AXI協議提供單一的接口定義,主要包括:

  • manager和interconnect之間。
  • subordinate和interconnect之間。
  • manager和subordinate之間。
    AXI協議還提出了一個重要的概念,那就是 Register Slices,因為 上述五個通道之間沒有固定的關系,而且通道中傳輸的信息是單方向的,那么可以可以在任意一個通道中任意節點 插入register slices,通過插入register slice來抵消長路徑的延時,從而提高系統的性能。register slice的使用需要平衡 時鐘延時和最大工作頻率之間的關系。

2.5.2 AXI信號

2.5.3 握手信號

在了解AXI每個通道的定義信號后,下面對讀寫機制中的握手機制進行說明。

五個獨立的通道均使用VALID/READY進行握手,VALID由源端產生,用于指示源端發出的地址、數據、控制信息什么時候生效,READY則由目的端產生,用于指示源端發送信息什么時候被接收,只有當VALID和READY同時為高時,才會表示本次傳輸完成。

VALID和READY握手可以分為下面三種情況:

  • VALID早于READY生效。
  • READY早于VALID生效。
  • VALID和READY同時生效。

對于五個通道之間的關系,AXI協議僅定義了下面的關系:

  • 寫響應必須跟隨寫操作的最后一個傳輸。
  • 讀數據必須緊跟讀地址數據。
    除了上述兩點定義,AXI未定義其他任何通道間的關系,那么對于通道間的握手信號先后順序,必須按照特定的順序操作,不然很容易引起接口上的dead-lock。
    具體的,讀操作時,對應的讀地址通道和讀數據通道間握手信號的解釋如下:
  • ARVALID和ARREADY可以參考握手機制中的時序圖所示關系;
  • RVALID和RREADY可以參考握手機制中的時序圖所示關系;
  • RVALID必須在ARVALID和ARREADY同時生效后被使能;
    寫操作時,對應的寫地址通道、寫數據通道、寫響應通道間的握手信號的解釋如下:
  • AWVALID和AWREADY之間的關系可以參考握手機制中的時序圖。
  • WVALID和WREADY之間的關系可以參考握手機制中的時序圖。
  • WVALID和AWREADY之間也可以參考握手機制中的時序圖。
  • BAVALID和BREADY之間的關系可以參考握手機制中的時序圖。
  • BVALID必須在WVALID和WREADY同時生效之后再被使能,同時必須是WLAST之后。
    上述寫操作通道間握手順序是基于AXI3協議,AXI4/5在AXI3基礎上有改進,具體如下:

圖片

AXI4/5協議對于BVALID置位條件加強了,同時需要滿足WVALID/WREADY和AWVALID/AWREADY生效之后,且是在WLAST之后,才能被使能;

2.5.4 地址結構

AXI協議傳輸數據時控制信息采用Start_address+Length形式,即Manager發出start_address、length以及burst類型、每次傳輸的大小等,subordinate需要根據這些信息計算后續的地址,決定返回那些地址對應的數據給manager;那么如何根據manager發送的address、length、burst類型、每個傳輸的大小這些信息計算出manager需要訪問的地址,需要先看一下AXI協議所定義的地址結構;

2.5.5 burst length

AXI協議定義 ARLEN、AWLEN分別表示讀操作長度和寫操作長度,后面統一使用AxLEN統一表示。

AxLEN的含義:AxLEN+1 個傳輸(transfer)。

如AxLEN=7,AxSIZE=16byte(后面會講到),那么本次burst傳輸的數據量為:8*16=128byte。

AXI3協議定義AxLEN范圍:1~16;對應的AxLEN使用4bit表示。

AXI4協議定義AxLEN范圍:1~256,對應的AxLEN使用8bit表示。

對于Length還有如下幾點限制條件:

  • 對于WARP類型的burst,burst length必須為2、4、8或者16。
  • burst不能超過4KB地址邊界。
  • burst不支持提前結束。

2.5.6 burst size

burst size表示每次傳輸(transfer)包含多少byte,分別定義了ARSIZE、AWSIZE分別表示讀傳輸、寫傳輸大小。

后面統一使用AxSIZE表示,AxSIZE使用3bit表示,具體的譯碼方式參見下圖:

AxSIZE指定的傳輸大小不能超過系統工作的數據位寬。

2.5.7 burst type

AXI協議規定下面三種burst類型:

同理,AxBURST為ARBURST和AWBURST的統稱,分別表示讀操作、寫操作burst類型。

  • FIXED表示每次傳輸的地址是相同的地址,常用于對FIFO的訪問。
  • INCR表示每次地址都是按照遞增類型,下次傳輸的地址=當前傳輸地址+當前傳輸的大小。
  • WRAP表示每次地址都是按照遞增類型,只有在達到地址邊界的時候,會卷繞到低位的地址邊界開始,這種卷繞方式同AHB協議相同。

2.5.8 響應類型

上面分析地址結構、數據結構,接下來介紹一下響應類型,BRESP、RRESP分別表示寫響應、讀響應,后面統一使用xRESP表示,具體的譯碼規則如下:

2.6 AXI、AHB、APB總線對比

AHB:針對高效率、高頻寬及快速系統模塊所設計的總線,它可以連接如CPU、芯片上或芯片外的內存模塊和DMA等高效率模塊。

APB:用在低速且低功耗的外圍設備,針對外圍設備作功率消耗及復雜接口的優化。APB在AHB和低帶寬的外圍設備之間提供了通信的橋梁,所以APB是AHB的二級拓展總線。

AXI:高速度、高帶寬、管道化互聯、單向通道,只需要首地址、讀寫并行、支持亂序、支持非對齊操作,但連線非常多。

AXI、AHB、APB總線的性能對比分析:

AHB是高級高性能總線,AXI是高級可擴展接口,APB是高級外圍總線。AHB和APB都是單通道總線,不支持讀寫并行。而AXI是多通道總線,總共分為五個通道,能夠實現讀寫并行。AHB和AXI都是多主/從設備,且通過仲裁機制實現總線控制權的分配。而APB是單主設備多從設備,其主設備就是APB橋,不具有仲裁機制。在數據操作方面,AHB和AXI支持突發傳輸,APB不支持。此外,AXI支持數據的非對齊操作,AHB不支持。

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

    關注

    134

    文章

    8725

    瀏覽量

    363098
  • 總線
    +關注

    關注

    10

    文章

    2735

    瀏覽量

    87389
  • AMBA
    +關注

    關注

    0

    文章

    67

    瀏覽量

    14831
收藏 人收藏

    評論

    相關推薦

    AMBA AHB總線與APB總線資料合集

    使用的是 SystemVerilog 描述。2、AMBA APB總線信號接口介紹前面分析了AHB總線協議。接下來分析APB
    發表于 04-07 10:03

    基于AMBA的SOC總線功耗分析及優化

    隨著集成電路的制造工藝進入納米級,SOC片上各模塊間通信的功耗成為系統重要的參數。本文介紹一種基于AMBA總線的系統級功耗評估和分析方法,重點通過定量的實驗,闡述了SOC
    發表于 07-30 10:43 ?16次下載

    基于AMBA片上總線的片上系統

      AMBA片上總線   AMBA 2.0規范包括四個部分:AHB、ASB、APB和Test Methodology。AHB的相互連接采用了傳統的帶有主模塊和從模塊的共享總線   
    發表于 09-01 10:59 ?2023次閱讀
    基于<b class='flag-5'>AMBA</b>片上<b class='flag-5'>總線</b>的片上系統

    AMBA總線IP核的設計

    文章采用TOP-DOWN 的方法設計了 AMBA 總線IP 核!它包括AHB 和APB兩個子IP 核 所有AMBA結構模塊均實現了RTL級建模
    發表于 07-25 18:10 ?92次下載
    <b class='flag-5'>AMBA</b><b class='flag-5'>總線</b>IP核的設計

    SPI總線及I2C總線工作原理

    SPI總線及I2C總線工作原理,本內容詳細介紹了SPI總線和I2C總線工作原理和比較
    發表于 12-08 16:55 ?0次下載

    ARM體系的特點與ARM的技術的簡介及AMBA總線分析

    簡要介紹了ARM體系及其特點,詳細分析了ARM的流水技術、Cache技術、低功耗技術、代碼壓縮技術等,介紹了AMBA總線,給出了基于ARM和AMBA
    發表于 11-20 17:12 ?9次下載
    ARM體系的特點與ARM的技術的簡介及<b class='flag-5'>AMBA</b><b class='flag-5'>總線</b>的<b class='flag-5'>分析</b>

    基于AMBA總線介紹?

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

    深度解讀AMBA、AHB、APB、AXI總線介紹及對比

    什么是AMBA? 現如今,集成電路芯片的規模越來越大。數字IC從基于時序驅動的設計方法,發展到基于IP復用的設計方法,并在SoC設計中得到了廣泛應用。在基于IP復用的SoC設計中,片上總線
    的頭像 發表于 06-25 11:22 ?9572次閱讀

    介紹AMBA2.0總線

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

    深度分析AMBA總線工作原理1

    本文主要介紹總線相關的知識,會從以下幾個方面展開:什么是總線,為什么需要總線,總線的組成,總線的分類,ARM中常見的
    的頭像 發表于 05-04 11:29 ?758次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>分析</b><b class='flag-5'>AMBA</b><b class='flag-5'>總線</b><b class='flag-5'>工作原理</b>1

    深度分析AMBA總線工作原理2

    本文主要介紹總線相關的知識,會從以下幾個方面展開:什么是總線,為什么需要總線,總線的組成,總線的分類,ARM中常見的
    的頭像 發表于 05-04 11:30 ?656次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>分析</b><b class='flag-5'>AMBA</b><b class='flag-5'>總線</b><b class='flag-5'>工作原理</b>2

    深度分析AMBA總線工作原理3

    本文主要介紹總線相關的知識,會從以下幾個方面展開:什么是總線,為什么需要總線,總線的組成,總線的分類,ARM中常見的
    的頭像 發表于 05-04 11:30 ?886次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>分析</b><b class='flag-5'>AMBA</b><b class='flag-5'>總線</b><b class='flag-5'>工作原理</b>3

    AMBA總線知識之AHB(上)

    AMBA總線陣營的強大超乎多數人的想象。AMBA總線是一個在SoC領域使用的事實上的標準。AMBA總線
    的頭像 發表于 05-04 14:45 ?2134次閱讀
    <b class='flag-5'>AMBA</b><b class='flag-5'>總線</b>知識之AHB(上)

    AMBA總線知識之AHB(下)

    AMBA總線陣營的強大超乎多數人的想象。AMBA總線是一個在SoC領域使用的事實上的標準。AMBA總線
    的頭像 發表于 05-04 14:47 ?2048次閱讀
    <b class='flag-5'>AMBA</b><b class='flag-5'>總線</b>知識之AHB(下)

    AMBA總線—apb簡介

    APB(Advanced Peripheral Bus),外圍總線的意思。該總線協議是ARM公司提出的AMBA總線結構之一,幾乎已成為一種標準的片上
    發表于 06-05 15:10 ?1278次閱讀
    <b class='flag-5'>AMBA</b><b class='flag-5'>總線</b>—apb簡介
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>