隨著 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)的完整信號流。

圖 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é)任矩陣

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)存映射表

注: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)說明:

關(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)品

鈦金系列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)。
-
處理器
+關(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)載請注明出處。
發(fā)布評論請先 登錄
RISC-V內(nèi)核的32位通用微控制器 GD32VF103芯片簡介
學(xué)習(xí)RISC-V入門 基于RISC-V架構(gòu)的開源處理器及SoC研究
基于 RISC-V 的微控制器入門指南
ARM的中斷控制器
RISC-V應(yīng)用領(lǐng)域的拓展
RISC-V SoC 新開源平臺發(fā)布 zqh_riscv
RISC-V的異常處理機(jī)制復(fù)雜嗎?
RISC-V核、平臺和芯片該如何選擇?
256核!賽昉發(fā)布全新RISC-V眾核子系統(tǒng)IP平臺
三種RISC-V SoC系統(tǒng)芯片將提供各種計(jì)算和 I/O 功能
中斷控制器的驅(qū)動解析(上)
中斷控制器級聯(lián)的類型有哪幾種
PLIC平臺級中斷控制器介紹

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