亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

易靈思Sapphire SoC中RISC-V平臺級中斷控制器深度解析

易靈思官微 ? 來源:易靈思官微 ? 2025-11-08 09:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

隨著 RISC -V處理器FPGA 領(lǐng)域的廣泛應(yīng)用,易靈思 FPGA 的 Sapphire RISC-V 內(nèi)核憑借軟硬核的靈活支持,為開發(fā)者提供多樣選擇。本文深入探討 Sapphire SoC 中 RISC - V 平臺級中斷控制器(PLIC),解析其架構(gòu)與操作機(jī)制,助力你深入了解與應(yīng)用。

Part 01 RISC-V中斷生態(tài)系統(tǒng)導(dǎo)論

1.1 中斷在現(xiàn)代計(jì)算系統(tǒng)中的角色

在現(xiàn)代計(jì)算系統(tǒng)中,中斷是實(shí)現(xiàn)異步事件處理的核心機(jī)制。它允許外部設(shè)備(如網(wǎng)絡(luò)控制器、磁盤驅(qū)動器或用戶輸入設(shè)備)在需要處理器關(guān)注時(shí)主動發(fā)送信號,從而將處理器從低效的、持續(xù)性的輪詢(polling)模式中解放出來。通過中斷機(jī)制,系統(tǒng)能夠高效地管理多任務(wù)并行、處理I/O操作,并對外部事件做出快速響應(yīng),這對于構(gòu)建高性能、高能效的計(jì)算平臺至關(guān)重要。

1.2 中斷架構(gòu)的劃分:本地中斷與全局中斷

RISC-V的特權(quán)架構(gòu)對中斷進(jìn)行了明確的分類,這種設(shè)計(jì)策略性地分離了不同層級的關(guān)注點(diǎn),以同時(shí)優(yōu)化延遲和可擴(kuò)展性。中斷源被劃分為兩大類:本地中斷(Local Interrupts)和全局中斷(Global or External Interrupts)。

本地中斷

本地中斷源直接連接到特定的處理器核心(在RISC-V中稱為“Hart”),其處理不經(jīng)過平臺級中斷控制器(PLIC)。RISC-V標(biāo)準(zhǔn)定義了兩種核心的本地中斷:軟件中斷(Software Interrupts)和計(jì)時(shí)器中斷(Timer Interrupts)。這些中斷通常由一個名為核心本地中斷器(Core Local Interrupter, CLINT)或更高級的核心本地中斷控制器(Core Local Interrupt Controller, CLIC)的模塊管理 。本地中斷的關(guān)鍵特性是延遲極低,因?yàn)樗恍枰诙鄠€Hart之間進(jìn)行仲裁,并且服務(wù)Hart可以通過直接讀取mcause等控制與狀態(tài)寄存器CSR)來快速確定中斷源 。這種設(shè)計(jì)確保了對時(shí)間敏感的核心級功能(如上下文切換調(diào)度、核間通信)的最高效處理。

全局(外部)中斷

全局中斷,也常被稱為外部中斷,源自處理器核心外部的平臺級設(shè)備,例如UART、GPIO、以太網(wǎng)控制器或DMA引擎 。在一個復(fù)雜的片上系統(tǒng)(SoC)中,這類中斷源的數(shù)量可能非常龐大。為了有效管理這些中斷,RISC-V架構(gòu)引入了一個專用的、可擴(kuò)展的控制器,即平臺級中斷控制器(PLIC)。全局中斷需要一個集中的仲裁單元來處理來自眾多外設(shè)的請求,根據(jù)預(yù)設(shè)的優(yōu)先級進(jìn)行裁決,并將中斷信號路由到一個或多個目標(biāo)Hart 。

1.3 平臺級中斷控制器(PLIC)的目標(biāo)與重要性

PLIC是RISC-V針對全局中斷管理所提出的標(biāo)準(zhǔn)解決方案,其在SoC設(shè)計(jì)中扮演著基石的角色。它的核心目標(biāo)是解決在擁有豐富外設(shè)集的復(fù)雜系統(tǒng)中管理大量中斷源的挑戰(zhàn)。PLIC的主要功能可以概括為以下三點(diǎn):

多路復(fù)用(Multiplexing):將來自多達(dá)1023個不同外部設(shè)備的中斷信號匯集起來進(jìn)行統(tǒng)一管理。

優(yōu)先級仲裁(Prioritization):提供硬件支持的中斷優(yōu)先級機(jī)制,確保高優(yōu)先級的緊急事件能夠優(yōu)先得到處理。

路由(Routing):根據(jù)軟件的配置,將裁決后的中斷通知精確地分發(fā)到指定的一個或多個Hart上下文(Hart Context)。

通過將全局中斷的管理從核心中分離出來,PLIC的設(shè)計(jì)體現(xiàn)了RISC-V架構(gòu)的模塊化和可擴(kuò)展性理念。它使得SoC設(shè)計(jì)者能夠根據(jù)平臺外設(shè)的復(fù)雜程度來調(diào)整PLIC的實(shí)現(xiàn)規(guī)模,而不會影響核心內(nèi)部計(jì)時(shí)器等基礎(chǔ)中斷機(jī)制的性能。對于旨在運(yùn)行如Linux等功能完備的操作系統(tǒng)的平臺而言,一個高效的PLIC是不可或缺的組成部分。

Part 02 PLIC架構(gòu)深度解析

PLIC的硬件架構(gòu)是一個精心設(shè)計(jì)的、可配置的硬件排序與過濾引擎。它將識別最高優(yōu)先級中斷的復(fù)雜任務(wù)從軟件層面轉(zhuǎn)移到硬件層面,從而顯著降低了中斷處理的延遲。若沒有PLIC,軟件在收到一個通用的“外部中斷”信號后,必須通過輪詢大量外設(shè)的狀態(tài)寄存器來確定中斷源,并依據(jù)軟件邏輯判斷其優(yōu)先級,這一過程緩慢且效率低下。PLIC通過其硬件仲裁機(jī)制,將這一串行、低效的軟件輪詢循環(huán)轉(zhuǎn)變?yōu)椴⑿小⒏咚俚挠布Q策過程。

2.1 概念框圖與組件交互

下圖(圖1)展示了PLIC的架構(gòu),描繪了從中斷源到中斷目標(biāo)(Hart)的完整信號流。

50ec4ce0-b9ee-11f0-8c8f-92fbcf53809c.png

圖 1: RISC-V PLIC 概念架構(gòu)框圖

該架構(gòu)主要由四個核心組件構(gòu)成:中斷源、中斷網(wǎng)關(guān)、PLIC核心以及中斷目標(biāo)。

2.2 中斷源與中斷網(wǎng)關(guān):信號接收的前線

中斷源(Interrupt Sources):指產(chǎn)生中斷信號的外部物理設(shè)備,如UART、I2C控制器等。PLIC規(guī)范支持多達(dá)1023個中斷源,其ID范圍為1至10。中斷ID 0被特殊保留,表示“無中斷”。

中斷網(wǎng)關(guān)(Interrupt Gateways):每個中斷源都連接到一個專用的中斷網(wǎng)關(guān)。網(wǎng)關(guān)的職責(zé)是處理來自設(shè)備的原始中斷信號(可以是電平觸發(fā)、邊沿觸發(fā)等),并將其轉(zhuǎn)換為標(biāo)準(zhǔn)化的中斷請求格式,然后轉(zhuǎn)發(fā)給PLIC核心。網(wǎng)關(guān)確保在任何時(shí)刻,每個中斷源在PLIC核心中最多只能有一個掛起的請求。只有在收到前一個中斷的完成消息后,網(wǎng)關(guān)才會轉(zhuǎn)發(fā)來自同一源的下一個新請求。

2.3 PLIC核心:仲裁與路由邏輯

PLIC核心是整個控制器的中樞,它接收來自所有網(wǎng)關(guān)的請求,并執(zhí)行關(guān)鍵的仲裁與路由邏輯。其內(nèi)部主要包含以下幾個關(guān)鍵部分:

中斷掛起(Interrupt Pending, IP)位:一個位數(shù)組,用于鎖存(latch)從網(wǎng)關(guān)傳入的中斷請求。當(dāng)某個中斷源的IP位被置位時(shí),表示該源有一個活躍的請求正在等待服務(wù)。

中斷優(yōu)先級(Interrupt Priority)寄存器:一個寄存器數(shù)組,每個中斷源對應(yīng)一個。軟件可以通過寫這些寄存器來為每個中斷源分配一個數(shù)值化的優(yōu)先級。

中斷使能(Interrupt Enable, IE)矩陣:一個龐大的位矩陣,允許軟件為每一個中斷目標(biāo)獨(dú)立地使能或禁用每一個中斷源。

優(yōu)先級閾值(Priority Threshold)寄存器:每個中斷目標(biāo)都擁有一個獨(dú)立的閾值寄存器。PLIC只有在檢測到一個掛起且已使能的中斷,并且其優(yōu)先級嚴(yán)格大于目標(biāo)當(dāng)前的閾值時(shí),才會向該目標(biāo)發(fā)送中斷通知。

2.4 中斷目標(biāo):定義中斷傳遞的Hart上下文

中斷目標(biāo)是中斷通知的最終接收者。在RISC-V中,一個中斷目標(biāo)通常被定義為一個“Hart上下文”,即某個特定Hart上的特定特權(quán)模式(例如,Hart 0的機(jī)器模式,或Hart 1的監(jiān)管者模式)。PLIC規(guī)范理論上最多可支持15872個獨(dú)立的Hart上下文。

當(dāng)PLIC決定向一個Hart上下文發(fā)送中斷通知時(shí),它會通過置位該Hart的mip(機(jī)器中斷掛起)或sip(監(jiān)管者中斷掛起)CSR中的相應(yīng)位來實(shí)現(xiàn),具體來說是MEIP(機(jī)器外部中斷掛起)或SEIP(監(jiān)管者外部中斷掛起)位。

一個至關(guān)重要的架構(gòu)特性是,PLIC獨(dú)立地對待每一個中斷目標(biāo),其本身不提供中斷搶占(preemption)或嵌套(nesting)的概念。這些復(fù)雜的行為必須由接收中斷的處理器核心自身通過軟件或硬件邏輯來處理。

Part 03 PLIC的核心運(yùn)行機(jī)制

PLIC的強(qiáng)大功能源于其優(yōu)先級、閾值和使能機(jī)制的協(xié)同工作。這套機(jī)制構(gòu)成了一個靈活的兩級過濾系統(tǒng),為操作系統(tǒng)設(shè)計(jì)者提供了巨大的便利。它成功地將設(shè)備的靜態(tài)重要性(通過優(yōu)先級設(shè)定)與運(yùn)行核心的動態(tài)上下文(通過閾值調(diào)節(jié))分離開來。

3.1 優(yōu)先級系統(tǒng):為中斷源賦予重要性

每個中斷源(ID 1-1023)都可以通過寫入其專用的32位內(nèi)存映射優(yōu)先級寄存器來分配一個優(yōu)先級。

優(yōu)先級值為0是一個特殊值,表示“從不中斷”,這等同于在源頭禁用了該中斷。

優(yōu)先級1是最低的有效優(yōu)先級。最高優(yōu)先級級別由具體的PLIC實(shí)現(xiàn)來定義。

為了保證處理的確定性,當(dāng)多個中斷具有相同的優(yōu)先級時(shí),PLIC會采用中斷ID作為決勝規(guī)則:ID號較小的中斷擁有更高的有效優(yōu)先級。

3.2 基于閾值的過濾:每個目標(biāo)的動態(tài)中斷屏蔽

每個中斷目標(biāo)(Hart上下文)都擁有自己的優(yōu)先級閾值寄存器。PLIC在向目標(biāo)發(fā)送中斷通知前,會進(jìn)行一次關(guān)鍵的比較:只有當(dāng)一個掛起中斷的優(yōu)先級嚴(yán)格大于該目標(biāo)閾值寄存器中的值時(shí),通知才會被發(fā)出。

將閾值設(shè)置為0,意味著允許所有優(yōu)先級大于0的中斷通過。

將閾值設(shè)置為實(shí)現(xiàn)所支持的最高優(yōu)先級,則可以有效地屏蔽該目標(biāo)的所有全局中斷。

這種機(jī)制賦予了軟件(如操作系統(tǒng)內(nèi)核)強(qiáng)大的動態(tài)控制能力。例如,當(dāng)一個核心進(jìn)入一個不希望被中等優(yōu)先級的網(wǎng)絡(luò)中斷打擾的臨界區(qū)時(shí),內(nèi)核可以臨時(shí)將其閾值提升到網(wǎng)絡(luò)中斷的優(yōu)先級之上。這僅僅屏蔽了該核心的中斷,而不會影響其他核心,也無需全局禁用中斷。

3.3 中斷使能矩陣:對每個目標(biāo)的精細(xì)化控制

PLIC內(nèi)部維護(hù)著一個龐大的中斷使能(IE)位數(shù)組,該數(shù)組按目標(biāo)進(jìn)行組織。對于每一個目標(biāo),都有一組與之對應(yīng)的使能位,每個中斷源占用其中一位。只有當(dāng)中斷源針對某個目標(biāo)的IE位被置位時(shí),該中斷才會被該目標(biāo)所考慮。

這種矩陣式的控制結(jié)構(gòu)支持非常靈活的路由策略。例如,一個調(diào)試用的UART中斷可以只為Hart 0使能(用于控制臺I/O),而對正在執(zhí)行實(shí)時(shí)控制任務(wù)的Hart 1禁用。

3.4 交互與優(yōu)先級:兩階段過濾流程

綜合來看,PLIC決定是否向一個Hart發(fā)出中斷信號是一個嚴(yán)謹(jǐn)?shù)亩嚯A段過濾過程。對于一個中斷源N和一個中斷目標(biāo)T,必須同時(shí)滿足以下所有條件,中斷通知才會被發(fā)出:

中斷N必須處于掛起狀態(tài)(其IP位為1)。

中斷N必須為目標(biāo)T使能(其在IE矩陣中對應(yīng)T的位為1)。

中斷N的優(yōu)先級必須大于0。

中斷N的優(yōu)先級必須嚴(yán)格大于目標(biāo)T的當(dāng)前閾值。

在所有同樣滿足以上四個條件的中斷中,不存在任何其他中斷M的優(yōu)先級高于N。

Part 04 完整的中斷生命周期:從設(shè)備信號到軟件完成

理解PLIC的完整工作流程需要貫穿硬件和軟件兩個領(lǐng)域。整個過程可以劃分為四個主要階段,每個階段都有明確的責(zé)任實(shí)體。

4.1 階段一:中斷生成與PLIC裁決(硬件域)

信號生成:一個外部設(shè)備(如GPIO)因某個事件(如電平變化)而觸發(fā)并拉高其中斷線。

網(wǎng)關(guān)請求:與該設(shè)備連接的PLIC中斷網(wǎng)關(guān)接收到信號,并向PLIC核心發(fā)送一個標(biāo)準(zhǔn)化的中斷請求。

請求鎖存:PLIC核心收到請求后,在其中斷掛起(IP)位數(shù)組中將對應(yīng)中斷ID的位設(shè)置為1。

持續(xù)評估:PLIC的硬件邏輯持續(xù)地、并行地評估所有掛起的IP位。對于每一個中斷目標(biāo),它都會檢查該中斷是否被使能,以及其優(yōu)先級是否高于該目標(biāo)的閾值。

發(fā)送通知:一旦某個掛起的中斷通過了針對某個目標(biāo)的所有檢查,PLIC就會向該目標(biāo)Hart發(fā)出外部中斷通知,通常是置位Hart的mip.MEIP或sip.SEIP位。

4.2 階段二:Hart通知與陷入機(jī)制(軟硬件接口

信號檢測:目標(biāo)Hart檢測到其外部中斷掛起位(如mip.MEIP)被置位,并且對應(yīng)的中斷使能位(mie.MEIE)也已置位。

陷入觸發(fā):在mstatus寄存器中的全局中斷使能位(MIE)為1的前提下,Hart會停止當(dāng)前指令的執(zhí)行,進(jìn)入一個“陷入”(trap)狀態(tài)。

硬件自動操作:Hart的硬件會自動執(zhí)行一系列上下文保存操作:將當(dāng)前的程序計(jì)數(shù)器(PC)值保存到mepc寄存器;在mcause寄存器中設(shè)置一個值以表明陷入原因是外部中斷(例如,機(jī)器模式外部中斷的原因?yàn)?1);保存當(dāng)前的全局中斷使能狀態(tài),然后禁用全局中斷以防嵌套;最后,跳轉(zhuǎn)到mtvec寄存器所指向的地址開始執(zhí)行異常處理代碼。

4.3 階段三:關(guān)鍵的聲明/完成協(xié)議(軟件域)

聲明(Claim):此時(shí),軟件中斷處理程序開始執(zhí)行。它的首要任務(wù)是向PLIC聲明中斷。這通過讀取其Hart上下文專用的claim/complete寄存器來完成。PLIC硬件在響應(yīng)這次讀操作時(shí),會返回當(dāng)前待處理的、優(yōu)先級最高的中斷ID。這次讀取操作是原子的,并且?guī)в幸粋€至關(guān)重要的副作用:PLIC會自動清除該中斷ID對應(yīng)的IP位。

服務(wù)(Service):軟件通過上一步獲得的ID,知道了中斷源。它利用這個ID來調(diào)用相應(yīng)的設(shè)備驅(qū)動程序中的中斷服務(wù)例程(Interrupt Service Routine, ISR)。ISR執(zhí)行具體的工作,例如從UART的FIFO中讀取數(shù)據(jù)。一個常被忽略但至關(guān)重要的步驟是:ISR必須清除設(shè)備本身的中斷狀態(tài)。

完成(Complete):ISR執(zhí)行完畢后,軟件必須向PLIC發(fā)送完成信號。這通過將之前聲明時(shí)獲得的同一個中斷ID寫回到同一個claim/complete寄存器來完成。這個寫操作通知了中斷網(wǎng)關(guān),該中斷已被完全處理,允許網(wǎng)關(guān)在需要時(shí)轉(zhuǎn)發(fā)來自同一源的新中斷。

4.4 階段四:上下文恢復(fù)與中斷重使能(軟硬件接口)

返回:主陷入處理程序執(zhí)行一條特權(quán)返回指令(如mret)。

硬件自動恢復(fù):Hart硬件自動將mepc中保存的地址恢復(fù)到PC,并恢復(fù)陷入前的全局中斷使能狀態(tài),從而重新允許中斷的發(fā)生,程序從被中斷處繼續(xù)執(zhí)行。

下表清晰地總結(jié)了在中斷生命周期的每個環(huán)節(jié)中,各個實(shí)體的責(zé)任。

表1:中斷生命周期責(zé)任矩陣

5150bf90-b9ee-11f0-8c8f-92fbcf53809c.jpg

Part 05 PLIC寄存器接口與內(nèi)存映射

PLIC是一個內(nèi)存映射設(shè)備,這意味著CPU通過標(biāo)準(zhǔn)的加載(load)和存儲(store)指令來訪問其內(nèi)部寄存器。RISC-V規(guī)范定義了PLIC各個寄存器塊的相對偏移量,但并未強(qiáng)制規(guī)定其基地址?;刂酚删唧w的SoC平臺定義,軟件需要從設(shè)備樹(Device Tree)等平臺信息中獲取。

下表整合了來自多個規(guī)范文檔的信息,提供了一個全面的PLIC寄存器內(nèi)存映射參考。

表2:PLIC綜合寄存器內(nèi)存映射表

51c9c58e-b9ee-11f0-8c8f-92fbcf53809c.jpg

注:Base指PLIC模塊的內(nèi)存映射基地址,C指上下文ID,N指中斷源ID。

Part 06 PLIC軟件編程實(shí)踐指南

PLIC的聲明/完成協(xié)議為軟件和硬件之間建立了一份嚴(yán)格且不可協(xié)商的契約。對同一個寄存器地址的讀(聲明)和寫(完成)所附帶的副作用是這份契約的核心,是整個外部中斷系統(tǒng)正確運(yùn)行的基礎(chǔ)。任何對該協(xié)議的違反,例如聲明后忘記完成,或是不聲明而直接輪詢設(shè)備,都會導(dǎo)致系統(tǒng)中斷功能失常甚至崩潰。

6.1 系統(tǒng)初始化與PLIC配置序列

在系統(tǒng)啟動階段,通常由引導(dǎo)加載程序(bootloader)或操作系統(tǒng)內(nèi)核對PLIC進(jìn)行初始化。一個標(biāo)準(zhǔn)的配置序列如下:

全局禁用中斷:通過清除mstatus.MIE位,確保在配置過程中不會有中斷發(fā)生。

禁用所有源:遍歷所有PLIC中斷源的優(yōu)先級寄存器,將其值全部設(shè)為0,以禁用所有中斷源。

清除所有使能:清除所有上下文的所有中斷使能位。

設(shè)置默認(rèn)閾值:為所有目標(biāo)的優(yōu)先級閾值寄存器設(shè)置一個安全的默認(rèn)值。通常設(shè)為0,表示允許所有已使能的中斷;或設(shè)為最大值,表示暫時(shí)屏蔽所有中斷。

配置特定中斷:對于需要使用的每個設(shè)備中斷:

在其中斷源優(yōu)先級寄存器中設(shè)置一個非零的優(yōu)先級值(例如1到7)。

在中斷使能矩陣中,為需要接收該中斷的目標(biāo)上下文設(shè)置相應(yīng)的使能位。

設(shè)置陷入向量:配置mtvec寄存器,使其指向主陷入處理程序的入口地址。

全局使能中斷:設(shè)置mstatus.MIE位,重新允許中斷。

6.2 實(shí)現(xiàn)健壯的中斷服務(wù)例程(ISR)

一個健壯的PLIC中斷處理程序必須嚴(yán)格遵循“聲明 -> 服務(wù) -> 完成”的序列。以下是偽代碼示例和關(guān)鍵點(diǎn)說明:

522be7b4-b9ee-11f0-8c8f-92fbcf53809c.png

關(guān)鍵點(diǎn):在設(shè)備ISR(如uart0_isr())內(nèi)部,必須通過訪問設(shè)備自身的寄存器來清除引起中斷的條件。對于電平觸發(fā)的中斷,如果不這樣做,設(shè)備會持續(xù)斷言中斷信號,導(dǎo)致PLIC在完成當(dāng)前中斷后立即再次觸發(fā)同一個中斷,形成“中斷風(fēng)暴” 。

6.3 高級考量:多核與中斷處理循環(huán)

多核仲裁:PLIC的claim操作是原子的,這為多核環(huán)境提供了天然的硬件鎖。即使一個中斷被同時(shí)路由到多個Hart,PLIC也確保只有一個Hart能夠成功聲明它。當(dāng)一個Hart讀取claim寄存器并獲得中斷ID時(shí),其他Hart在同一時(shí)刻讀取只會得到0(表示無中斷)。

處理多個掛起中斷:為了提高效率,一個設(shè)計(jì)良好的中斷處理程序應(yīng)該在一個循環(huán)中處理中斷。在完成一個中斷后,應(yīng)立即嘗試再次聲明。如果返回非零ID,則表示有另一個中斷正在等待處理,應(yīng)繼續(xù)服務(wù)。此循環(huán)應(yīng)持續(xù)進(jìn)行,直到claim操作返回0為止。這避免了為處理背靠背發(fā)生的多個中斷而反復(fù)進(jìn)入和退出陷入處理程序的巨大開銷。

Part 07 結(jié)論:PLIC作為RISC-V可擴(kuò)展性的基石

7.1 關(guān)鍵架構(gòu)特性總結(jié)

PLIC的設(shè)計(jì)體現(xiàn)了RISC-V架構(gòu)的核心理念。其關(guān)鍵特性包括:集中的硬件仲裁機(jī)制、基于優(yōu)先級的硬件排序、通過使能矩陣實(shí)現(xiàn)的靈活路由,以及通過每個目標(biāo)的獨(dú)立閾值實(shí)現(xiàn)的動態(tài)屏蔽。這些特性共同構(gòu)成了一個強(qiáng)大而高效的全局中斷管理框架。

7.2 PLIC在使能復(fù)雜多外設(shè)系統(tǒng)中的作用

PLIC的架構(gòu)使其能夠從容應(yīng)對從僅有少量外設(shè)的簡單微控制器到擁有數(shù)十個中斷源和多個核心、能夠運(yùn)行Linux等復(fù)雜操作系統(tǒng)的應(yīng)用處理器的擴(kuò)展需求。它通過硬件加速中斷仲裁,為構(gòu)建高性能、高響應(yīng)性的RISC-V系統(tǒng)提供了堅(jiān)實(shí)的基礎(chǔ)。

7.3 未來方向與演進(jìn)中的RISC-V中斷格局

PLIC規(guī)范體現(xiàn)了RISC-V的一個核心哲學(xué):定義一個最小化的、功能性的基線以確?;ゲ僮餍裕瑫r(shí)為實(shí)現(xiàn)者保留優(yōu)化和差異化的空間。這是一個雙刃劍。規(guī)范定義了寄存器的偏移量和行為,為通用軟件驅(qū)動程序提供了基礎(chǔ)。然而,它將基地址、源和目標(biāo)的最大數(shù)量、優(yōu)先級級別數(shù)以及中斷觸發(fā)類型(電平/邊沿)的配置等細(xì)節(jié)留給了實(shí)現(xiàn)者。

這種靈活性允許SoC設(shè)計(jì)者根據(jù)成本和需求量體裁衣,但同時(shí)也給軟件帶來了挑戰(zhàn)。操作系統(tǒng)需要一種機(jī)制來發(fā)現(xiàn)其所運(yùn)行硬件的具體參數(shù)。因此,設(shè)備樹(DeviceTree)等平臺描述機(jī)制在RISC-V生態(tài)中至關(guān)重要,它為軟件提供了一種標(biāo)準(zhǔn)化的方式來了解硬件的具體實(shí)現(xiàn)。

同時(shí),RISC-V中斷生態(tài)系統(tǒng)也在不斷演進(jìn)。雖然PLIC是當(dāng)前管理全局中斷的標(biāo)準(zhǔn),但新的架構(gòu)如核心本地中斷控制器(CLIC)正在為需要更低延遲和向量化中斷支持的場景提供替代方案。這表明RISC-V社區(qū)在中斷處理領(lǐng)域持續(xù)創(chuàng)新,以滿足更多樣化的應(yīng)用需求??偠灾琍LIC的設(shè)計(jì)完美地展示了規(guī)范的簡潔性/靈活性與軟件的復(fù)雜性/可移植性之間的權(quán)衡,這也是整個RISC-V生態(tài)系統(tǒng)的一個顯著特征。

易靈思公司介紹

易靈思是一家國產(chǎn)FPGA公司,總部位于深圳前海。公司憑借自主可控的Quantum硬件架構(gòu),采用邏輯和路由可以互換的XLR結(jié)構(gòu),實(shí)現(xiàn)了創(chuàng)新的產(chǎn)品設(shè)計(jì)與軟件算法,使得FPGA產(chǎn)品具備低功耗、小體積、高密度、高性能等優(yōu)勢。已量產(chǎn)的40nm Trion系列及16nm鈦金系列 FPGA產(chǎn)品,廣泛應(yīng)用于機(jī)器視覺、顯示、工業(yè)控制、醫(yī)療、汽車、AI和通信等終端領(lǐng)域。

重要產(chǎn)品

5352671c-b9ee-11f0-8c8f-92fbcf53809c.png

鈦金系列FPGA具有增強(qiáng)的Quantum架構(gòu),16nm工藝,35K 至 1,000K 邏輯單元,超高性能 300-500MHz,封裝最小可至3.5mm*3.4mm@60K LE,功耗低至競爭對手的1/4,硬核資源豐富,最新產(chǎn)品TJ375現(xiàn)已量產(chǎn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    20118

    瀏覽量

    244908
  • 中斷控制器
    +關(guān)注

    關(guān)注

    0

    文章

    62

    瀏覽量

    9769
  • RISC-V
    +關(guān)注

    關(guān)注

    48

    文章

    2723

    瀏覽量

    51430

原文標(biāo)題:RISC-V平臺級中斷控制器(PLIC):架構(gòu)與操作機(jī)制綜合分析

文章出處:【微信號:易靈思官微,微信公眾號:易靈思官微】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    RISC-V內(nèi)核的32位通用微控制器 GD32VF103芯片簡介

    RISC-V指令集架構(gòu),支持RV32IMAC指令子集的組合 2變長流水線微架構(gòu),配備精簡的指令預(yù)取單元和動態(tài)分支預(yù)測單元 增強(qiáng)的內(nèi)核中斷控制器(ECLIC) 支持標(biāo)準(zhǔn)JTAG接口和RISC
    發(fā)表于 10-23 06:46

    學(xué)習(xí)RISC-V入門 基于RISC-V架構(gòu)的開源處理SoC研究

    大量的IP核,采用類似LEON3的GRLIB庫的方式,所有的IP核都是即插即用,RISC-V VHDL提供了一個AXI總線,IP核都掛載在該總線上。IP核包括:UART、GPIO、中斷控制器、以太網(wǎng)
    發(fā)表于 07-27 18:09

    基于 RISC-V 的微控制器入門指南

    的許多微控制器平臺相對貧乏,因此開發(fā)人員選擇深入探索 RISC-V 后,就會發(fā)現(xiàn)可用的選擇和資源很少。權(quán)衡取舍不失為良策,具體取決于最終應(yīng)用以及開發(fā)人員的偏好和資源。
    發(fā)表于 08-21 18:35

    ARM的中斷控制器

    6、決定處理的掛起的最高優(yōu)先 當(dāng)使能時(shí),每一個CPU interface會獲取掛起pending列表優(yōu)先最高的中斷,然后決定是否需
    發(fā)表于 08-29 08:39

    RISC-V應(yīng)用領(lǐng)域的拓展

    公開了其在RISC-V方面的研究,指出了在深度神經(jīng)網(wǎng)絡(luò)應(yīng)用RISC-V指令集的可能性;三星也披露了將推出多款采用RISC-V內(nèi)核架構(gòu)的芯片
    發(fā)表于 06-18 20:57

    RISC-V SoC 新開源平臺發(fā)布 zqh_riscv

    介紹zqh_riscv是一套開源SoC開發(fā)平臺,核心部分包含處理core、cache、片內(nèi)互聯(lián)總線、中斷控制器、memory控制器、片內(nèi)總
    發(fā)表于 03-24 16:07

    有沒有深度解析RISC-V的文章

    接觸了很多RISC-V的芯片,一直在應(yīng)用層使用,沒有對底層進(jìn)行了解,有沒有RISC-V底層的解析?
    發(fā)表于 03-22 22:59

    RISC-V的異常處理機(jī)制復(fù)雜嗎?

    RISC-V對于異常處理的實(shí)現(xiàn)復(fù)雜嗎?應(yīng)該沒有ARM Cortex系列的那樣復(fù)雜,有NVIC或GIC中斷控制器吧。那么它執(zhí)行異常處理的流程是怎樣的?
    發(fā)表于 04-21 15:00

    RISC-V核、平臺和芯片該如何選擇?

    (1)、芯片設(shè)計(jì)者可選擇RISC-V 核 和SoC 平臺 構(gòu)建自己的芯片。比如,使用 PULPino 平臺開發(fā) SoC 芯片,內(nèi)核使用 RI
    發(fā)表于 06-21 20:34

    256核!賽昉發(fā)布全新RISC-V眾核子系統(tǒng)IP平臺

    、低延遲的RISC-V眾核子系統(tǒng)IP平臺 ,該平臺還包括:RISC-V Debug Module調(diào)試接口,RISC-V
    發(fā)表于 11-29 13:37

    三種RISC-V SoC系統(tǒng)芯片將提供各種計(jì)算和 I/O 功能

    RISC-V 是多功能高效嵌入式計(jì)算解決方案,” (中國)總經(jīng)理,銷售兼市場副總裁郭晶表示,“我們的 Trion?系列 SoC 系統(tǒng)
    發(fā)表于 07-02 17:20 ?1965次閱讀

    中斷控制器的驅(qū)動解析(上)

    這里主要分析 linux kernel GIC v3 中斷控制器的代碼(drivers/irqchip/irq-gic-v3.c)。設(shè)備樹先來看下一個
    發(fā)表于 12-04 16:36 ?10次下載
    <b class='flag-5'>中斷控制器</b>的驅(qū)動<b class='flag-5'>解析</b>(上)

    STM32外部中斷控制器EXTI詳解

    什么是外部中斷控制器,外部中斷控制器在STM32芯片中處于什么位置,它的作用是什么,EXTI與GPIO的映射關(guān)系?
    的頭像 發(fā)表于 04-20 11:44 ?3628次閱讀
    STM32外部<b class='flag-5'>中斷控制器</b>EXTI詳解

    中斷控制器級聯(lián)的類型有哪幾種

    有兩種類型: 機(jī)器級別的級聯(lián),級聯(lián)的初始化代碼理所當(dāng)然地位于板子的初始化代碼(arch/xxx/mach-xxx),因?yàn)橹灰鞘褂眠@個板子或SOC的設(shè)備,必然要使用這個子控制器。 設(shè)備級別的級聯(lián),因?yàn)樵撛O(shè)備并不一定是系統(tǒng)的標(biāo)配
    的頭像 發(fā)表于 09-28 14:15 ?1233次閱讀
    <b class='flag-5'>中斷控制器</b>級聯(lián)的類型有哪幾種

    PLIC平臺中斷控制器介紹

    平臺中斷控制器(PLIC) PLIC:Platform-Level Interrupt Controller. 實(shí)際上,除了CLINT管理的軟件中斷和定時(shí)
    的頭像 發(fā)表于 10-07 17:53 ?2111次閱讀
    PLIC<b class='flag-5'>平臺</b><b class='flag-5'>級</b><b class='flag-5'>中斷控制器</b>介紹