[發(fā)明專利]一種通過映射表處理MSI-X中斷的方法在審
| 申請(qǐng)?zhí)枺?/td> | 202010601585.8 | 申請(qǐng)日: | 2020-06-29 |
| 公開(公告)號(hào): | CN111722916A | 公開(公告)日: | 2020-09-29 |
| 發(fā)明(設(shè)計(jì))人: | 龍恢;管志堅(jiān) | 申請(qǐng)(專利權(quán))人: | 長(zhǎng)沙新弘軟件有限公司 |
| 主分類號(hào): | G06F9/48 | 分類號(hào): | G06F9/48 |
| 代理公司: | 長(zhǎng)沙市標(biāo)致專利代理事務(wù)所(普通合伙) 43218 | 代理人: | 徐邵華 |
| 地址: | 410205 湖南省長(zhǎng)沙市長(zhǎng)沙高新開*** | 國(guó)省代碼: | 湖南;43 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 通過 映射 處理 msi 中斷 方法 | ||
一種通過映射表處理MSI?X中斷的方法,設(shè)置一個(gè)全局映射表,映射表是一組單元構(gòu)成的數(shù)組,每個(gè)單元包含一個(gè)整數(shù)基準(zhǔn)值B,每個(gè)單元對(duì)應(yīng)一個(gè)中斷向量。注冊(cè)中斷時(shí),初始化程序?qū)⒁粋€(gè)中斷向量對(duì)應(yīng)單元的基準(zhǔn)值B設(shè)定為一個(gè)中斷編號(hào)的基準(zhǔn)值。當(dāng)硬件設(shè)備向處理器提交中斷時(shí),發(fā)生中斷的處理器根據(jù)中斷向量查找映射表中對(duì)應(yīng)的單元,然后根據(jù)對(duì)應(yīng)單元中的基準(zhǔn)值B和當(dāng)前處理器號(hào)L計(jì)算中斷編號(hào)N,再將中斷編號(hào)N作為參數(shù)傳遞給中斷處理程序。中斷處理程序根據(jù)中斷編號(hào)N處理對(duì)應(yīng)的硬件中斷過程。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)軟件編程領(lǐng)域,特別是硬件設(shè)備驅(qū)動(dòng)程序中一種通過映射表處理MSI-X中斷的方法。
背景技術(shù)
在計(jì)算機(jī)系統(tǒng)里中斷是硬件設(shè)備通知系統(tǒng)軟件數(shù)據(jù)IO操作完成或硬件設(shè)備狀態(tài)發(fā)生改變的常用方法,通常一個(gè)硬件設(shè)備只有一個(gè)中斷,系統(tǒng)軟件的中斷處理程序在中斷發(fā)生后通過讀取特定的硬件中斷狀態(tài)寄存器值來判定是發(fā)生了那種中斷。隨著硬件技術(shù)的進(jìn)步,為適應(yīng)更高的IO吞吐率和更多的處理器核心,在原有基礎(chǔ)上發(fā)展出MSI(MessageSignal Interrupt)和MSI-X多中斷機(jī)制,使一個(gè)硬件能同時(shí)擁有多個(gè)中斷且每個(gè)中斷對(duì)應(yīng)著不同的功能。雖然從硬件技術(shù)角度看中斷功能變得越來越強(qiáng)大,但從軟件編程的角度來說,中斷處理卻變得越來越復(fù)雜。因?yàn)閭鹘y(tǒng)的中斷處理模式中只要設(shè)置一個(gè)中斷處理程序(Interrupt Service Routine)就夠了,而對(duì)于MSI-X中斷需要設(shè)置多個(gè)中斷處理程序,且需要申請(qǐng)多個(gè)中斷向量。例如Intel公司PRO/1000系列網(wǎng)卡中使用82576和I350芯片的千兆網(wǎng)絡(luò)適配器(Gigabit Network Adapter),其最多具有8個(gè)接收隊(duì)列和8個(gè)發(fā)送隊(duì)列,每個(gè)隊(duì)列對(duì)應(yīng)一個(gè)中斷,加上處理網(wǎng)絡(luò)連接狀態(tài)改變的中斷一共可達(dá)到17個(gè)中斷。常見的操作系統(tǒng)需要為每個(gè)中斷申請(qǐng)一個(gè)中斷向量,并為每個(gè)向量設(shè)置一個(gè)對(duì)應(yīng)的中斷處理程序,使驅(qū)動(dòng)開發(fā)變得過于復(fù)雜且浪費(fèi)太多資源。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)的上述不足而提供一種通過映射表處理MSI-X中斷的方法。通過映射表將中斷向量轉(zhuǎn)換為連續(xù)的與硬件設(shè)備中斷對(duì)應(yīng)的中斷編號(hào)(InterruptNumber),然后將中斷編號(hào)作為參數(shù)傳遞給中斷處理程序,中斷處理程序根據(jù)中斷編號(hào)處理硬件設(shè)備對(duì)應(yīng)的中斷過程。
本發(fā)明的第一種技術(shù)方案是:設(shè)置一個(gè)全局映射表,映射表是一組單元構(gòu)成的數(shù)組,每個(gè)單元包含一個(gè)整數(shù)基準(zhǔn)值B,每個(gè)單元對(duì)應(yīng)一個(gè)中斷向量。注冊(cè)中斷時(shí),初始化程序?qū)⒁粋€(gè)中斷向量對(duì)應(yīng)單元的基準(zhǔn)值B設(shè)定為一個(gè)中斷編號(hào)的基準(zhǔn)值。當(dāng)一個(gè)中斷向量同時(shí)綁定多個(gè)不同處理器時(shí),其在映射表中對(duì)應(yīng)的單元還包括一個(gè)中斷規(guī)模值S,S等于該向量綁定的處理器個(gè)數(shù),為了方便計(jì)算規(guī)定綁定處理器的個(gè)數(shù)必須為1、2、4、8、16、32…這些2的整數(shù)次冪值。當(dāng)硬件設(shè)備向處理器提交中斷時(shí),發(fā)生中斷的處理器先根據(jù)中斷向量查找映射表中對(duì)應(yīng)的單元,然后根據(jù)對(duì)應(yīng)單元中的基準(zhǔn)值 B、中斷的處理器號(hào)L和中斷規(guī)模值S計(jì)算中斷編號(hào)N。計(jì)算公式為:N等于B加上L除以S的余數(shù)值,即N = B + (L % S),當(dāng)S為2的整數(shù)次冪時(shí),計(jì)算公式可簡(jiǎn)化為N = B + (L AND (S – 1)),顯然當(dāng)S等于1即中斷向量只綁定一個(gè)處理器時(shí)N = B + (L AND 0) = B。
在一個(gè)具體實(shí)施例中,網(wǎng)絡(luò)適配器具有8個(gè)接收隊(duì)列和8個(gè)發(fā)送隊(duì)列,需要為每個(gè)隊(duì)列配置一個(gè)中斷,再外加一個(gè)網(wǎng)絡(luò)連接狀態(tài)改變中斷,總共17個(gè)中斷。將MSI-X表第1項(xiàng)至第17項(xiàng)分別對(duì)應(yīng)中斷編號(hào)1至17,MSI-X表中每一項(xiàng)包含一個(gè)處理器的消息地址和一個(gè)中斷向量,用于設(shè)置中斷向量和處理器的綁定關(guān)系。8個(gè)接收隊(duì)列的中斷編號(hào)為1至8,8個(gè)發(fā)送隊(duì)列的中斷編號(hào)為9至16,網(wǎng)絡(luò)連接狀態(tài)改變的中斷編號(hào)為17。從系統(tǒng)中分配3個(gè)中斷向量90、91、92,分別設(shè)定3個(gè)中斷向量在映射表中對(duì)應(yīng)單元的基準(zhǔn)值B為1、9、17,然后設(shè)置MSI-X表的17個(gè)中斷項(xiàng)如下:
將MSI-X表第1項(xiàng)設(shè)置為中斷向量90綁定到0號(hào)處理器;
將MSI-X表第2項(xiàng)設(shè)置為中斷向量90綁定到1號(hào)處理器;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于長(zhǎng)沙新弘軟件有限公司,未經(jīng)長(zhǎng)沙新弘軟件有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010601585.8/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 瑞茲(RIZ)基因用于檢測(cè)和治療衛(wèi)星染色體不穩(wěn)定(MSI)陽(yáng)性腫瘤
- 擴(kuò)展的消息信令中斷(MSI)消息數(shù)據(jù)
- 一種用于與微衛(wèi)星不穩(wěn)定性相關(guān)微衛(wèi)星位點(diǎn)進(jìn)行雜交的DNA探針庫(kù)、檢測(cè)方法和試劑盒
- 利用CRISPR-Cas9構(gòu)建的斑馬魚msi1基因突變體及其構(gòu)建方法
- 用于目標(biāo)區(qū)域捕獲測(cè)序檢測(cè)MSI的方法、裝置和存儲(chǔ)介質(zhì)
- 一種INT中斷轉(zhuǎn)MSI中斷的轉(zhuǎn)換方法、裝置及存儲(chǔ)介質(zhì)
- 一種基于Pacbio數(shù)據(jù)的MSI微衛(wèi)星不穩(wěn)定性檢測(cè)方法和系統(tǒng)
- 一種多PCIE端口的MSI中斷過濾裝置
- 一種泛癌種的單樣本微衛(wèi)星不穩(wěn)定性的分析方法和裝置
- 一種質(zhì)譜成像數(shù)據(jù)的自動(dòng)配準(zhǔn)方法





