2 XDMA IP中斷

三種中斷

1. Legacy
  • 定義:Legacy 中斷是傳統的中斷處理方式,使用物理中斷線(例如 IRQ)來傳遞中斷信號。
  • 缺點
    • 中斷線數量有限,通常為 16 條,限制了可連接設備的數量。
    • 中斷處理可能會導致中斷風暴,影響系統性能。
    • 不支持多處理器系統中的負載均衡。
  • 使用場景:主要用于舊設備和不支持 MSI 或 MSI-X 的硬件。
INTA, INTB, INTC, or INTD 區別
  • 優先級順序:從高到低一般是 INTA > INTB > INTC/INTD。不過,具體的優先級也可以在系統 BIOS(Basic Input - Output System)或操作系統的設備管理部分根據設備的實際重要性和使用場景進行調整。
  • 應用場景傾向:INTA 傾向于用于對實時性和性能要求高的關鍵設備,INTB 用于實時性要求稍低的設備,而 INTC 和 INTD 更多地用于對中斷響應要求不高、數據更新頻率較低或不太關鍵的設備。這種區分有助于在復雜的 PCI 系統中合理分配中斷資源,以滿足不同設備的需求
2. MSI(Message Signaled Interrupts)
  • 定義:MSI 是一種通過消息而不是傳統的中斷線來發送中斷信號的機制。
  • 優點
    • 減少了中斷線的數量,支持更高的設備數量。
    • 提高了中斷的處理效率,減少了中斷風暴的可能性。
    • 可以支持多處理器系統中的負載均衡。
    • 最多32個
  • 使用場景:常用于現代設備,尤其是 PCI 和 PCIe 設備。
  • 默認情況下,MSI 功能是啟用的,且啟用了 1 個向量。可以選擇最多 32 個向量。通常情況下,Linux 只使用 1 個向量用于 MSI。這是在IP中斷配置頁面,使能并選擇msi中斷的重點
3. MSI-X
  • 定義:MSI-X 是 MSI 的擴展版本,提供了更大的靈活性和更高的中斷數量。
  • 優點
    • 支持更多的中斷向量(最多可達 2048 個),適合需要高并發中斷的設備。
    • 提供更好的性能和可擴展性,尤其是在高性能網絡和存儲設備中。
  • 使用場景:主要用于高性能設備,如網絡適配器和存儲控制器。
總結
  • MSI 和 MSI-X 提供了更高效和靈活的中斷處理機制,適合現代設備和高性能應用。
  • Legacy 中斷則是傳統的方式,適用于老舊設備,但在性能和擴展性上存在限制。

中斷使用

  • XDMA的中斷類型,以及控制時序:
1)、Legacy Interrupts:

對于Legacy Interrupts中斷,當user_irq_ack 第一次為1的時候usr_irq_req可以清0,當user_irq_ack 第二次為1的時候,可以重新設置usr_irq_req發起中斷。

在PCI總線里面INTx中斷是由四條可選的中斷線決定的,這種中斷方式是共享式的,所有的pci設備把中斷信號在一條中短線上相與,再上報給cpu,cpu收到中斷以后再查詢具體是哪個設備產生了中斷。
在PCIE總線里面已經沒有了實體的INTx物理中斷線了,PCIE標準使用專門的Message事務包來實現INTx中斷,這是為了兼容以前的PCI軟件。_INTx__是共享式_的,cpu相應中斷后還需要查詢具體中斷源,效率比較低

在這里插入圖片描述

解釋一下這個圖什么意思:
  • 首先是usr_irq_req[15:0] = 16’h3 = 0000 0000 0000 0011 中斷0和1發出了中斷請求
  • 然后是usr_irq_ack[15:0] = 16’h1 = 0000 0000 0000 0001 響應中斷0
  • 然后是usr_irq_ack[15:0] = 16’h2 = 0000 0000 0000 0010 響應中斷1
  • 中間的波浪線是省略的意思,也就是說在中斷響應前和后,中斷請求都需要保持一段時間,這個時間多少我沒測試過,有大佬知道的可以留言
2)、MSI Interrupts:

MSI 發出usr_irq_req 中斷請求后,user_irq_ack 為1只是說明中斷已經被主機接收了,但是不代表已經處理,軟件或者驅動層可以去清零usr_irq_req

MSI中斷和MSI-X都是往配置的CPU中斷寄存器里進行memory寫操作,來產生中斷,效率比INTx是共享式高,其中MSI最多支持32個中斷向量,而MSI-X最多支持2048個中斷向量。
![[Pasted image 20240927204256.png]]

3)、MSI-X Interrupts:

當usr_irq_req 中斷請求后,只要user_irq_ack為1 就可以清零usr_irq_req,但是沒說明說明時候可以置1,重啟下次中斷。
![[Pasted image 20240927204309.png]]

經過以上所有中斷方式測試發現,MSI-X中斷,會導致系統非常慢,估計是底層頻繁中斷導致,軟件非常卡反而影響了傳輸效率,Legacy和MSI 對于usr_irq_req的清除,對于大數據量的傳輸,比如一幅圖像的傳圖只要確保usr_irq_req足夠長的時間,中斷就能被響應。 保守的做法:當軟件收到中斷后,通過AXI-LITE接口清除usr_irq_req。 usr_irq_req清除后可以重新置位響應中斷。

Note

在XDMA IP 配置期間,主機可從指定的支持中斷列表中啟用一種或多種中斷類型。即使啟用了多個中斷類型,IP 在給定時間內也只會產生一個中斷類型。MSI-X 中斷優先于 MSI 中斷,MSI 中斷優先于傳統中斷。主機軟件不得在斷言或等待中斷發生時切換(啟用或禁用)中斷類型。

在驅動中的引用

  • 后面介紹到驅動的時候說吧,這里就提一句,xdma驅動在讀取中斷事件的時候是掛起的狀態,也就說在沒讀取到中斷事件前不會往下執行其他程序,起到了阻塞的作用,如果你知道linux 驅動那么這個應該會很清楚,如果剛開始的和我一樣沒學過linux驅動的話就記住這個,我還特意去學了linux驅動基礎…

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/65859.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65859.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65859.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【算法】時間復雜度以及O(N^2)的排序

目錄 1.常數時間的操作 2.時間復雜度 2.1.以選擇排序為例 2.2.O(n^2)從何而來 2.3.冒泡排序 2.3.1.抑或運算 2.4.插入排序 3.二分法 3.1.局部最小 4.遞歸 4.1.遞歸行為時間復雜度的估計 1.常數時間的操作 一個操作如果和樣本的數據量無關,每次都是固定時…

2021 年 3 月青少年軟編等考 C 語言五級真題解析

目錄 T1. 紅與黑思路分析T2. 密室逃脫思路分析T3. 求逆序對數思路分析T4. 最小新整數思路分析T1. 紅與黑 有一間長方形的房子,地上鋪了紅色、黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫一個程序,計算你總共能夠到達多少塊黑色的…

C# 或 .NetCore 如何使用 NPOI 導出圖片到 Excel 文件

今天在本文中,我們將嘗試使用NPOI庫將圖像插入到 Excel 文件的特定位置。請將以下邏輯添加到您的寫作方法中,在 Excel 文件中添加圖像(JPEG、PNG),我已經有一個示例 jpeg 文件 - Read-write-excel-npoi.jpg ,我們將嘗試…

【學習筆記】理解深度學習的基礎:機器學習

1. 機器學習基礎 1.1 機器學習的定義與重要性 定義:深度學習是機器學習的一種特定形式。為了深入理解深度學習,必須牢固掌握機器學習的基本原理。機器學習算法是一種能夠從數據中學習的算法,通過經驗E在任務T上提高性能度量P(Mi…

Observability:將 OpenTelemetry 添加到你的 Flask 應用程序

作者:來自 Elastic jessgarson 待辦事項列表可以幫助管理與假期計劃相關的所有購物和任務。使用 Flask,你可以輕松創建待辦事項列表應用程序,并使用 Elastic 作為遙測后端,通過 OpenTelemetry 對其進行監控。 Flask 是一個輕量級…

使用Matplotlib顯示中文的方法

1 問題提出 使用圖1所示的代碼進行matplotlib繪圖時,因為其默認不支持中文,此時無法顯示正確內容,如圖2所示。 圖1 matplotlib繪圖繪圖代碼 圖2 matplotlib無法顯示中文 2 問題解決 2.1 設置全局字體 在圖1所示的代碼中,第13…

詳解opencv resize之INTER_LINEAR和INTER_AREA

一。先簡單介紹一下resize的用法 src:輸入圖, dst:輸出圖 dsize:輸出圖的寬高,如果dsize不為空(即寬高都不是0),則以dsize為準進行resize。 fx, fy是放大縮小的比例,是…

UnityDemo-TheBrave-制作筆記

這是我跟著b站up主MStudio的視頻學習制作的,大體上沒有去做一些更新的東西,這里只是一個總的總結。在文章的最后,我會放上可以游玩該游戲的鏈接和exe可執行文件,不過沒有對游戲內容進行什么加工,只有基本的功能實現罷了…

使用LSTM預測股票收盤價

在金融數據預測中,LSTM(長短期記憶網絡)憑借其在時間序列數據建模中的優勢,成為了分析股票價格趨勢的熱門選擇。本篇博客將以完整的代碼實現為例,展示如何利用LSTM網絡對股票收盤價進行預測,并從數據處理到…

模擬SpringIOCAOP

一、IOC容器 Ioc負責創建,管理實例,向使用者提供實例,ioc就像一個工廠一樣,稱之為Bean工廠 1.1 Bean工廠的作用 先分析一下Bean工廠應具備的行為 1、需要一個獲取實例的方法,根據一個參數獲取對應的實例 getBean(…

預編譯SQL

預編譯SQL 預編譯SQL是指在數據庫應用程序中,SQL語句在執行之前已經通過某種機制(如預編譯器)進行了解析、優化和準備,使得實際執行時可以直接使用優化后的執行計劃,而不需要每次都重新解析和編譯。這么說可能有一些抽…

Centos9 + Docker 安裝 MySQL8.4.0 + 定時備份數據庫到本地

Centos9 + Docker 安裝 MySQL8.4.0 + 定時備份數據庫到本地 創建目錄,創建配置文件啟動容器命令定時備份MySQL執行腳本Linux每日定時任務命令文件內參數其他時間參數AT一次性定時任務創建目錄,創建配置文件 $ mkdir -p /opt/mysql/conf$ vim /opt/mysql/conf/my.cnf[mysql] #…

軟件測試預備知識⑥—搭建Web服務器

在軟件測試的廣闊領域中,搭建Web服務器是一項極為關鍵的技能。它不僅有助于模擬真實的應用環境,方便我們對Web應用進行全面且深入的測試,還能讓測試人員更好地掌控測試場景,提升測試效率與質量。接下來,讓我們一同深入…

計算機視覺算法實戰——打電話行為檢測

?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連? ??????? ??????????????? ?????? ? 1. 引言?? 隨著智能手機的普及,打電話行為檢測成為了計算機視…

事務的隔離級別和MDL

文章目錄 說明不同隔離級別可能發生的現象關鍵現象解釋MDL(元數據鎖,Metadata Lock)MDL 的作用MDL 的工作原理MDL 鎖的常見場景如何避免 MDL 阻塞 說明 本文章由大模型對話整理而來,如果有錯誤之處,請在評論區留言指正…

Linux第二課:LinuxC高級 學習記錄day01

0、大綱 0.1、Linux 軟件安裝,用戶管理,進程管理,shell 命令,硬鏈接和軟連接,解壓和壓縮,功能性語句,結構性語句,分文件,make工具,shell腳本 0.2、C高級 …

單片機存儲與計算機存儲:從微小到龐大的數據世界

單片機存儲與計算機存儲:從微小到龐大的數據世界 在現代電子設備中,存儲是至關重要的組成部分。無論是小巧的單片機,還是功能強大的計算機,存儲都扮演著不可或缺的角色。然而,單片機和計算機的存儲架構卻有著天壤之別…

ISP流程--去馬賽克詳解

前言 本期我們將深入討論ISP流程中的去馬賽克處理。我們熟知,彩色圖像由一個個像元組成,每個像元又由紅、綠、藍(RGB)三通道構成。而相機傳感器只能感知光的強度,無法直接感知光譜信息,即只有亮暗而沒有顏色…

阿里云-通義靈碼:在 PyCharm 中的強大助力(下)

目錄 六.通義靈碼在 PyCharm 中的優勢與不足 1.優勢 (1).提高開發效率 (2).提升代碼質量 (3).易于使用 (4).不斷學習和改進 2.不足 (1).依賴網絡 (2).準確性有待提高 (3).局限性 七.未來發展展望 1.提高準確性和可靠性 2.與其他工具的集成 3.智能化程度的提升 八…

開源項目stable-diffusion-webui部署及生成照片

參考鏈接 https://www.freedidi.com/13133.html 基礎環境部署 python 官網鏈接 Python Release Python 3.10.6 | Python.org 下載 Python 3.10.6 版本安裝包 下載好后雙擊 點擊安裝,這里需要選擇一下,把環境變量加上。(這里是默認安裝到C盤…