999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于RISC-V 的APLIC 的設計

2024-09-18 00:00:00向德鋼石雪倩王鎮道
消費電子 2024年8期

【關鍵詞】中斷系統;RISC-V;APLIC

RISC-V作為RISC系列指令集的第五代產品,因其模塊化,可擴展,免費開源,適應新時代智能互聯的要求等原因,在近10年里不斷成為芯片指令集架構的第三極,與x86,ARM共同組成當今世界主流的指令集系統[1]。

當前RISC-V的中斷系統會在核外存在一個PLIC或IMSIC(Incoming MSI Controller)模塊對中斷進行預處理[2-3]。但PLIC無法對MSI中斷做出處理,IMSIC也僅能夠處理MSI中斷。APLIC中將線中斷轉化為MSI的功能使得IMSIC僅需接收MSI中斷就可以額外處理線中斷。當系統中無需處理MSI中斷時,僅靠APLIC也可以處理線中斷。對于操作系統來說,這種切換僅需使用軟件改變對寄存器的配置便可以實現,這將極大提高系統的靈活性[4]。

由于APLIC的中斷域的存在,在滿足了大型系統所需求的SMP(Symmetric Multiprocessing)的基礎上,S級中斷域允許多個HART以S模式運行操作系統直接控制它接收到的中斷,從而避免了調用M模式來執行,這極大提高了CPU的工作效率[5]。同時因為對每個HART都劃分在不同級別的中斷域里,也能更好配合對相應中斷域的PMP(Physical MemoryProtection)物理內存保護。因此APLIC的設計將極大提高整個RISC-V系統的性能和穩定性。

此外APLIC相比現在使用的PLIC,具有更多的可配置性,比如寄存器的大端小端,中斷源的觸發方式,提供用于軟件測試中斷傳輸延遲的IFORCE和GENMSI寄存器等。

一、AIA中的APLIC

SOC的外設通過外部中斷線wire將中斷發送給APLIC。APLIC內的內存映射寄存器都可以通過對SOC內存特定地址的寫入來實現配置。

圖1 APLIC中的三個中斷域

在配置完成后,如果是直接傳送模式,APLIC將判斷外設輸入的中斷線上是否有中斷信號,中斷信號應該發送給哪一個RISC-V的HART,然后將對應HART的線中斷拉高,通知HART來特定內存映射寄存器讀取相應的中斷ID和中斷優先級。

如果是MSI模式,在收到外設的線中斷后會將該信號轉換成一次寫操作,寫在對應的內存空間中。對該內存空間的寫會產生一個信號通知IMSIC有中斷傳入。

二、APLIC架構的設計

對于一個APLIC來說,一般包含多個域,對于APLIC支持的每個中斷域,都有一個專用的內存映射控制區域。中斷域的控制區域由一組32位寄存器填充,用來控制APLIC的功能。每個中斷域的內存映射控制區域有自己獨立的物理控制接口,HART可以通過基于頁表的地址轉換輕松地調節對每個域的訪問。該接口在系統的地址空間中進行內存映射,這樣就方便PMP對每個中斷域進行保護。

因此本文設計了如圖1所示的三個域,兩個M域和一個S域。每個域根據軟件的控制可以對應一些特定的HART。在根域中的管理HART 0是僅限根域的HART,它基本上控制著根域所有中斷源的委托情況。

APLIC的每個中斷域劃分成5個組成部分:APLIC_REGS,IP_IE, MSI_CTRL, DIRECT_CTRL, DELEG_CTRL。

三、APLIC子模塊設計

(一)REG_CTRL模塊

該模塊確定了每個中斷源的中斷觸發模式(邊沿觸發還是電平觸發還是分離模式還是不活躍模式),中斷源的委托情況及委托子域的Idex,域的全局中斷,寄存器的大端小端,域的工作模式,中斷源的優先級,中斷源的EIID,目標HART的HART_IDEX,軟件控制掛起使能,MSI地址配置,強制MSI產生,IDC(interrupt delivery control)功能的實現包括每個源的中斷傳遞使能,中斷閾值,強制中斷,最高優先級寄存器的賦值和清除等。

(二)IP_IE模塊

該模塊主要是對中斷源和軟件配置的掛起和使能進行管理。該模塊包含以下幾種模式:

1.分離模式

僅通過對setip或setipnum寄存器的相關寫入將掛起位設置為1。

當在APLIC處claim中斷或由MSI轉發中斷,或通過對in_clrip寄存器或clripnum的相關寫入則會清除掛起位。

2.邊沿觸發模式

通過整流輸入值的低到高轉換,或通過對seti p或setipnum寄存器的相關寫入,將掛起位設置為1。

當在APLIC處claim中斷或由MSI轉發中斷,或通過對in_clrip寄存器或clripnum的相關寫入則會清除掛起位。

3.電平觸發模式,工作在直傳模式

每當整流輸入值為高時,掛起位被設置為1。無法通過寫入setip或setipnum寄存器來設置掛起位。

每當整流輸入值為低時,將清除掛起位。掛起位不能通過APLIC處的中斷claim清除,也不能通過寫入in_clrip寄存器或clripnum清除。

4.電平觸發模式,工作在MSI模式

通過整流輸入值中的低到高轉變將掛起位設置為1。當整流輸入值為高時,掛起位也可以通過對setip或setipnum寄存器的相關寫入來設置,但當整流輸入數值為低時則不設置。

整流輸入值為低,或者發送了MSI,或者對in_clrip,clripnum寫入時都會清除對應的掛起位。

5.不活躍模式

對于中斷源的掛起位一直為低電平不會發生變化。

上述的寄存器皆是內存映射寄存器,在REG_CTRL模塊中進行賦值,整流輸入值 = (輸入線中斷的值) XOR (源是否反轉)。當源的觸發條件為下降沿觸發或者低電平觸發時,該源被稱為反轉源。

(三)DIRECT_CTRL模塊

本文采用二叉樹法實現優先級比較的模塊priority_arb。按照從上到下的順序,中斷標識從大到小排序,輸入中斷源的優先級編號。中斷源的輸入數量最大為1023個,因此一級采用512個比較器進行兩兩比較,二級采用256個比較器,以此類推一共分十級。第一級比較器的輸入前還會有一個0值比較器,與輸入的中斷源優先級編號相比,如果相等輸出優先級編號1,如果不同,輸出原優先級編號。

比較器的上端輸入如果大于等于下端輸入,則比較器的輸出max_prio為下端輸入的優先級編號,flag輸出0;反之,如果上端輸入小于下端輸入,則比較器的max_prio為上端輸入的優先級編號,flag輸出為1。flag是用來最終確定最大優先級的源在哪個端口輸入的。后續用每一級的flag最終確定中斷源ID。

如果寫入的 IPRIO為0,則優先級為1。優先級號越小,優先級越高。當中斷源具有相同的優先級時,標識號較低的源具有最高的優先級。

排序完成后要將最大優先級編號和中斷標識回寫給在REG_CTRL的IDC.topi寄存器,拉高irq,方便hart后續讀取IDC.claimi寄存器。當Hart讀取完成后清除該源的中斷掛起位然后繼續排序,開始新的一輪循環。

(四)MSI_CTRL模塊

模塊內,最重要的功能分為兩塊,分別為計算不同級中斷域的MSI地址和發送MSI兩個功能。

因為APLIC發送的MSI是發送給IMSIC的中斷文件的,因此地址的計算應該滿足IMSIC的設計要求。由于S級的地址比M級域僅僅多出了Guest Idex的影響, M級的過程只需省略Guest Idex即可。

為滿足實際的應用需求,默認發送順序是根域先于其他M級域先于S域。對于M級域,計算完該域的地址后,需要按中斷標識號最低源優先發送MSI的規則,選擇出該源的MSI地址。

(五)DELEG_CTRL模塊

根域的M級REG_CTRL可以委托給子域,子域可以是M級,也可以是S級的中斷域。非根域的M級域也可以委托給不同的S級域,但S級域不能繼續委托給S級域。

其中包含的譯碼模塊類似于加了使能位的譯碼器。當譯碼器選擇一個中斷域后,被選中的域才將對應的輸入源實現,否則將該域的該源設置為Inactive模式。

四、仿真結果

(一)MSI傳遞仿真

測試了地址計算的正確性及不同中斷域從APB接口將中斷發送的過程。

由于仿真中,將源1設置根域,源2,3在S域因此會先發送根域的中斷,圖2表示的是經過計算后的發送地址。由發送結果可知,最終滿足APB的時序規范,也能正確地計算出MSI的地址。

圖2 MSI發送及地址計算

(二)直接傳遞仿真

驗證了對掛起位的影響,優先級排序是否正確,以及HART能否正確讀到最高優先級的優先級編號和中斷ID。

圖3表示將源2,3委托到S域,并且兩個源同時被外部中斷現拉高發給同一個HART 1,這時會根據優先級仲裁,將優先級標識號小的中斷源先處理,然后清除該源的掛起位,之后再處理剩余的中斷源。這里源2的優先級為2,源3的優先級編號為3,因此拉高irq后優先清除源2的掛起位。

圖3 拉高irq及掛起位后清除

在計算優先級的同時,會返回中斷的最大優先級和中斷源ID用來賦值topi寄存器,方便HART快速獲取中斷的信息并進入中斷處理程序。

結論

本文首次根據AIA規范,完整地設計了一款用于RISC-V處理器核的APLIC,可直接接收處理外部線中斷,也可將外部線中斷轉化成MSI,配合IMSIC讓系統能同時處理線中斷和MSI中斷。相比現在使用的PLIC增加了供軟件測試中斷延遲的寄存器,使APLIC的功能更加豐富;通過劃分中斷域,免去HART切換特權級的步驟,有效提高CPU處理中斷的速度;通過直接對寄存器寫入,確定需要路由的目標HART,降低了軟件的復雜度;配合HART的PMP提高系統穩定性。設計符合AIA高級中斷架構的要求。

參考文獻:

[1] 倪光南. 聚焦開源RISC-V 發展中國芯片產業[J]. 前瞻科技,2022,1(3):84-89.

[2] 任強. 基于RISC--V 處理器的虛擬內存管理的研究與實現[D]. 中國科學院大學,2022.

[3] 徐可凡. 基于RISC-V 的中斷系統的研究與設計[D]. 西安電子科技大學,2020.

[4] 馮建文. 基于RISC-V 架構的中斷實驗設計[J]. 實驗室研究與探索,2022,41(12):34-38.

[5] 任宇浩, 喬東海. 基于FPGA 的PLIC 中斷控制器設計[C]// 四川省聲學學會, 上海聲學學會, 山東聲學學會, 北京聲學學會, 西安聲學學會.2022’年中國西部聲學學術交流會論文集. 蘇州大學電子信息學院;,2022:4.

主站蜘蛛池模板: 伊人国产无码高清视频| 国产丝袜91| 久久6免费视频| 91免费观看视频| 亚洲天堂精品在线| 成人免费视频一区| 国产精品自在在线午夜| 爽爽影院十八禁在线观看| 人妖无码第一页| 色天堂无毒不卡| 在线观看国产网址你懂的| 国产又爽又黄无遮挡免费观看| 激情综合婷婷丁香五月尤物| 性视频一区| 国产十八禁在线观看免费| 91丨九色丨首页在线播放| 91po国产在线精品免费观看| 无码专区国产精品一区| 国产在线观看人成激情视频| WWW丫丫国产成人精品| 亚洲三级影院| 91精品小视频| 国产欧美日韩91| 精品伊人久久久香线蕉| 99热国产在线精品99| 中文字幕色站| 九九久久99精品| 欧美日韩国产精品综合| 国产精品欧美亚洲韩国日本不卡| 亚洲国产精品VA在线看黑人| 国产精品嫩草影院av| 秋霞午夜国产精品成人片| 亚洲人成亚洲精品| 国产欧美精品一区aⅴ影院| 欧美在线黄| 亚洲二三区| 国产黄色爱视频| 日韩av在线直播| 视频在线观看一区二区| 男女精品视频| 国产中文一区二区苍井空| 成年人午夜免费视频| 乱人伦中文视频在线观看免费| 成人一级免费视频| 国产毛片片精品天天看视频| 三级欧美在线| 无码人中文字幕| 成人在线不卡视频| 天天色综合4| 国产成人高清精品免费| 日韩国产一区二区三区无码| 国产精品偷伦在线观看| 欧美午夜网站| 97在线观看视频免费| 国产爽歪歪免费视频在线观看| 男女男精品视频| 免费A∨中文乱码专区| 亚洲AV一二三区无码AV蜜桃| 毛片在线播放网址| AV无码无在线观看免费| 色九九视频| 国产在线视频福利资源站| 国产大片喷水在线在线视频| 国产99视频在线| 在线看免费无码av天堂的| 不卡午夜视频| 国产精品无码制服丝袜| 欧美不卡视频一区发布| 欧美午夜精品| 国产一区在线观看无码| 亚洲精品国产精品乱码不卞| 成人福利视频网| 亚洲有码在线播放| 日韩激情成人| 国产一级毛片yw| 亚洲不卡影院| 久久国产香蕉| 欧美日韩国产成人高清视频| 免费在线视频a| 国产爽妇精品| 国产精品毛片在线直播完整版| 91久久精品国产|