<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天內不再提示

SoC常見問題 - axi deadlock

ruikundianzi ? 來源:IP與SoC設計 ? 2023-12-07 09:45 ? 次閱讀

最近多個項目并行,實在是沒有時間分享了,今天在評論區看到了一個非常有意義的問題,同樣也是社招,校招最常見的問題。那就是AXI協議怎么避免死鎖呢?

兩種死鎖場景分別是亂序讀和寫交織,有的人更熟悉英文,那就是out of order和interleaving。下面我們分析原因。

亂序讀:我們知道AXI協議支持亂序讀,那么為什么能實現呢?這也是常見面試題目,那就是因為AXI(現在單指AXI3)每個通路都有相應的ID,通過請求和響應ID的一致來將打亂的順序恢復。

現在假設M1發給S1的請求ID可以是1,2,3,M1發給S2的ID可以是3,4,5?,F在M1分別發起了兩組outstanding傳輸給S1和S2,RID是隨機的,也就是ARID_S1和ARID_S2存在都是3的可能。并且如圖,S1/S2響應的時間是不同的,所以也就存在S1和S2 RID=3的響應順序是不確定的,例如M1>S2先發出ID=3的請求,長度為16,又發出M1>S1的ID=3的請求,長度為8,但是由于S2響應慢,M1會先拿到S1的響應,那么M1收到ID為3的響應時該怎么區分呢?答案是無法區分,所以這種場景會造成M1工作異常(接到全部數據的時候沒有rlast信號,此時正處于S2響應的中間,并沒有RLAST會導致M1認為傳輸錯誤)。具體解決方案是per slave per id,M0發起訪問時,會判斷已經發出去的ID,保證每個slave收到的ID是唯一的,所以我們設計axi master時也要這樣,當然,我們也可以投機取巧,固定值。

想必一定有熟悉coreconsulatant和ARM NIC的同學,配置的時候有兩個參數,那就是每組outstanding可以使用的ID個數,以及每個ID對應的指令個數,兩者相乘就是outstanding能力,所以為了避免死鎖我們會將ID個數配置為1(當然僅限第一級矩陣,也就是和自研AXI_M連接的地方,這樣太暴力),這樣Master就很容易區分不同slave設備的響應了,但是缺點也很明顯,那就是會降低性能,不同ID的請求會被矩陣master反壓,所以我們設置的需要合理。怎么算合理呢?首先如果大家看過cpu文檔,會發現ID個數以及不同ID的含義是有明確定義的,所以我們配置時要考慮master的ID個數,但是master cpu訪問我們時限制不了的,所以我們會在那里下手呢?那就是矩陣,需要做remap,NIC和NOC都有這種設計,實時保證ID的唯一性。

4c8d0d94-94a0-11ee-939d-92fbcf53809c.jpg

亂序讀死鎖常見結構

交織寫:AXI3協議支持交織寫,原因就是容易造成總線死鎖,其實并不是交織寫容易造成死鎖,而是某些場景容易出現(矩陣配置不合理,或者不同路徑delay分析不正確)。我們分析一下原因。

如下圖,假設M1對S1地址發起多次burst傳輸,并且因為矩陣支持交織寫,會把M1訪問的順序打亂(原因是master的數據也是由上級傳遞過來的,順序可能不同)。如果不好理解的話,可以抽象將M1和M2認為是一個master,都在訪問S1,矩陣的interleaving深度是>1的,也就是S1出口會將寫的順序打亂,導致waddr和wdata的順序改變,那么結果是什么呢?那就是驢頭不對馬嘴,想寫A1,但是數據卻寫到了A2地址,但是控制通路已經規定了burst長度,如果wlast出現的時候數據不夠,或者多了,當然會讓slave出現問題嘍。

這也是為什么AXI4取消了WID的主要原因。

4c97daf8-94a0-11ee-939d-92fbcf53809c.jpg

交織寫死鎖常見結構

交織讀為什么不容易死鎖呢?

如果是M1訪問S1,根本不會出現交織,這個場景安全。

如果M1同時訪問S1和S2,因為矩陣延遲的不同,很有可能發生交織,但是由于ARID和RID不同,也不會造成死鎖。也是安全的。

但是當然存在不安全的場景,那就是master不支持交織,矩陣支持交織,同樣會導致總線異常,所以我們配置矩陣IP時,一定要充分了解所有的master設備和slave設備。主要參數如下:outstanding能力,read interleaving深度,master id寬度,master個數,slave id寬度(矩陣slave口ID寬度會受master個數影響,id一定不能截位,但是可以remap)等。

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

    關注

    38

    文章

    3806

    瀏覽量

    216158
  • MASTER
    +關注

    關注

    0

    文章

    85

    瀏覽量

    11176
  • AXI
    AXI
    +關注

    關注

    1

    文章

    126

    瀏覽量

    16350

原文標題:SoC常見問題 - axi deadlock

文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    熱釋電傳感器基本知識和使用中的常見問題

    電子發燒友網站提供《熱釋電傳感器基本知識和使用中的常見問題》資料免費下載
    發表于 06-11 09:06 ?0次下載

    PCB設計中的常見問題有哪些?

    一站式PCBA智造廠家今天為大家講講PCB設計中的常見問題有哪些?PCB設計布局時容易出現的五大常見問題。在電子產品的開發過程中,PCB(Printed Circuit Board,印刷電路
    的頭像 發表于 05-23 09:13 ?236次閱讀
    PCB設計中的<b class='flag-5'>常見問題</b>有哪些?

    SoC設計中總線協議AXI4與AXI3的主要區別詳解

    AXI4和AXI3是高級擴展接口(Advanced eXtensible Interface)的兩個不同版本,它們都是用于SoC(System on Chip)設計中的總線協議,用于處理器和其它外設之間的高速數據傳輸。
    的頭像 發表于 05-10 11:29 ?922次閱讀
    <b class='flag-5'>SoC</b>設計中總線協議<b class='flag-5'>AXI</b>4與<b class='flag-5'>AXI</b>3的主要區別詳解

    Ubuntu系統常見問題及解答

    今天小編為大家總結了Ubuntu系統常見問題的解決方法,便于收藏和查閱,大家快快碼住哦~
    的頭像 發表于 04-19 12:29 ?379次閱讀
    Ubuntu系統<b class='flag-5'>常見問題</b>及解答

    CLOCK常見問題解答

    電子發燒友網站提供《CLOCK常見問題解答.pdf》資料免費下載
    發表于 11-23 10:23 ?0次下載
    CLOCK<b class='flag-5'>常見問題</b>解答

    C語言的常見問題

    電子發燒友網站提供《C語言的常見問題集.pdf》資料免費下載
    發表于 11-18 10:29 ?0次下載
    C語言的<b class='flag-5'>常見問題</b>集

    AXI傳輸數據的過程

    AXI4為例,有AXI full/lite/stream之分。 在Xilinx系列FPGA及其有關IP核中,經常見AXI總線接口,AXI
    的頭像 發表于 10-31 15:37 ?559次閱讀
    <b class='flag-5'>AXI</b>傳輸數據的過程

    什么是AXI?AXI如何工作?

    Xilinx 從 Spartan-6 和 Virtex-6 器件開始采用高級可擴展接口 (AXI) 協議作為知識產權 (IP) 內核。Xilinx 繼續將 AXI 協議用于針對 7 系列和 Zynq-7000 All Programmable
    的頭像 發表于 09-27 09:50 ?811次閱讀
    什么是<b class='flag-5'>AXI</b>?<b class='flag-5'>AXI</b>如何工作?

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

    本文介紹了AMBA3.0AXI的結構和特點,分析了新的AMBA3.0AXI協議相對于AMBA2.0的優點。它將革新未來高性能SOC總線互連技術,其特點使它更加適合未來的高性能、低延遲設計。最后介紹了基于
    發表于 09-20 08:30

    USB 接口電路設計常見問題

    USB 接口電路設計常見問題
    的頭像 發表于 09-18 10:59 ?479次閱讀
    USB 接口電路設計<b class='flag-5'>常見問題</b>

    Brocade X7控制器常見問題

    電子發燒友網站提供《Brocade X7控制器常見問題.pdf》資料免費下載
    發表于 09-01 11:55 ?0次下載
    Brocade X7控制器<b class='flag-5'>常見問題</b>

    Brocade X6控制器常見問題

    電子發燒友網站提供《Brocade X6控制器常見問題.pdf》資料免費下載
    發表于 08-30 17:28 ?0次下載
    Brocade X6控制器<b class='flag-5'>常見問題</b>

    SoC Designer AXI4協議包的用戶指南

    這是SoC Designer AXI4協議包的用戶指南。該協議包包含SoC Designer組件、探針和ARM AXI4協議的事務端口接口(包括對AMBA4
    發表于 08-10 06:30

    學習架構-AMBA AXI簡介

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

    OpenSSL安裝常見問題

    OpenSSL安裝常見問題
    的頭像 發表于 07-07 11:17 ?567次閱讀
    OpenSSL安裝<b class='flag-5'>常見問題</b>
    亚洲欧美日韩精品久久_久久精品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>