RISC-V AIA SPEC學習(五)

第六章 Interrupts for Virtual Machines(VS Level)

核心內容

1.VS級別外部中斷支持:??

    • ??客戶中斷文件(Guest Interrupt File)??:虛擬機的每個vCPU擁有獨立的IMSIC中斷文件,允許直接接收設備MSI。
    • ??vstopi CSR??:類似stopei,用于虛擬機內部處理最高優先級中斷。

2.?虛擬中斷注入:??

    • Hypervisor通過??hvictl CSR??配置虛擬中斷,包括設置虛擬中斷身份(IID)和觸發方式。
    • ??hviprio1/hviprio2??:配置VS級別主要中斷(如VSEI、VSTI)的優先級。

3.中斷捕獲與模擬:??

    • 當虛擬機無客戶中斷文件時,所有外部中斷由Hypervisor捕獲并模擬(如通過hvip CSR注入虛擬中斷)。

當實現管理程序擴展(hypervisor extension)時,一個硬件線程(hart)的可能特權模式集合將包括用于托管虛擬硬件線程(virtual harts)的虛擬特權監督模式(VS,Virtual Supervisor)和虛擬用戶模式(VU,Virtual User)。高級中斷架構(Advanced Interrupt Architecture)為管理程序擴展增添了新的中斷設施,這些設施與之前描述的用于特權監督級別(supervisor-level)中斷的設施相一致。

如第二章所述,添加了多個與管理程序和虛擬特權監督模式(VS)相關的控制與狀態寄存器(CSR):hvien、hvictl、hviprio1、hviprio2、vsiselect、vsireg、vstopei 和 vstopi。(對于 RV32 架構,還添加了以下高半部分 CSR:hidelegh、hvienh、hviph、hviprio1h、hviprio2h、vsiph 和 vsieh。)與往常一樣,當在 VS 模式或 VU 模式下執行時,VS CSR 將替代對應的特權監督 CSR。

為了使在虛擬機中運行的軟件看起來像是在一臺實現了高級中斷架構的特權監督級別的真實機器上執行,管理程序軟件和本章描述的硬件設施需要共同承擔責任。雖然某些行為可以直接由硬件處理,但其他行為則需要管理程序進行大量的模擬,有時還需要硬件的協助。

6.1. VS-level external interrupts with a guest interrupt file

當一個硬件線程(hart)實現了管理程序擴展(hypervisor extension)時,建議該hart還配備一個集成消息信號中斷控制器(IMSIC),并具備客戶中斷文件(guest interrupt files)。假設客戶中斷文件可用,那么每個客戶中斷文件都可以被分配給物理hart上的一個虛擬hart,作為該虛擬hart的特權監督級別(supervisor-level)中斷文件。如果存在多個客戶中斷文件,那么物理hart上的每個虛擬hart都可以擁有一個物理客戶中斷文件,作為其(虛擬的)特權監督級別中斷文件。當前虛擬hart的客戶中斷文件始終由CSR hstatus中的VGEIN字段指示。當VGEIN不是客戶中斷文件的有效編號時,當前虛擬hart就沒有客戶中斷文件作為其特權監督級別中斷文件。

當hstatus.VGEIN是客戶中斷文件的有效編號時,viselect的值在0x70-0xFF范圍內會選擇該客戶中斷文件的寄存器,這與siselect在同一范圍內選擇IMSIC真實特權監督級別中斷文件的寄存器的方式相同。通過vsiselect和vsireg間接訪問的中斷文件寄存器在關于IMSIC的第三章中有詳細說明,同時該章還介紹了僅與IMSIC相關的CSR vstopei。由于所有IMSIC中斷文件的行為都相同,因此虛擬hart通過CSR siselect、sireg和stopei訪問的客戶中斷文件,從S模式(或HS模式)的角度來看,與真實的特權監督級別中斷文件沒有區別。

除了每個hart上的IMSIC外,虛擬機可能還需要看到平臺級中斷控制器(PLIC)或高級平臺級中斷控制器(APLIC)。然而,與IMSIC能夠為虛擬hart提供物理客戶中斷文件的能力不同,PLIC或APLIC必須由管理程序為虛擬機進行模擬。

? 目前,高級中斷架構(Advanced Interrupt Architecture)并不包括用于虛擬化APLIC的硬件輔助。對于hart數量較少的情況,這樣的硬件將比為IMSIC實現客戶中斷文件所需的硬件大得多。假設大多數高性能I/O可以通過能夠直接向客戶中斷文件發送消息信號中斷(MSI)的設備來完成(例如通過PCI Express互連連接的設備)。對于那些中斷必須通過(虛擬的)APLIC的設備類型,模擬APLIC的開銷預計不會太大。

當一個虛擬hart因為被分配了一個客戶中斷文件而看似擁有一個IMSIC時,所有發往該虛擬hart的外部中斷(無論是真實的還是模擬的)都必須通過這個看似存在的IMSIC。管理程序可以很容易地通過設置中斷待處理數組中的一個位(該數組通過vsiselect和vsireg間接訪問)來向hstatus.VGEIN選擇的客戶中斷文件中注入一個模擬的外部中斷。當一個虛擬hart擁有客戶中斷文件時,管理程序通常不需要在CSR hvip中設置VSEIP位。

在一種特殊情況下,如果為虛擬機模擬的APLIC具有一個與真實APLIC的實際中斷源相對應的硬連線中斷源,并且在該虛擬機中運行的軟件將其虛擬APLIC配置為將來自該源的中斷作為MSI轉發到特定的虛擬hart,那么管理程序可以配置真實APLIC以將實際中斷直接作為MSI轉發到該虛擬hart的客戶中斷文件。這樣,盡管管理程序必須捕獲并模擬虛擬機在虛擬APLIC上配置中斷轉發的內存訪問,但中斷本身可以自動轉換為針對客戶中斷文件的真實MSI,而無需為每個到達的中斷調用管理程序。

6.1.1. Direct control of a device by a guest OS

為確保對中斷提供恰當的支持,在管理程序允許運行在虛擬機中的客戶操作系統(guest OS)直接控制一個能夠發送消息信號中斷(MSI)的物理設備之前,必須滿足兩個條件:首先,每個虛擬硬件線程(virtual hart)必須被分配一個客戶中斷文件,這樣每個虛擬hart在虛擬機內部就擁有了一個看似獨立的集成消息信號中斷控制器&#

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

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

相關文章

【Python-Day 11】列表入門:Python 中最靈活的數據容器 (創建、索引、切片)

Langchain系列文章目錄 01-玩轉LangChain:從模型調用到Prompt模板與輸出解析的完整指南 02-玩轉 LangChain Memory 模塊:四種記憶類型詳解及應用場景全覆蓋 03-全面掌握 LangChain:從核心鏈條構建到動態任務分配的實戰指南 04-玩轉 LangChai…

【AXI總線專題】-AXI-LITE總線解讀

【AXI總線專題】-AXI-LITE總線解讀 1.axi-lite概述2.信號定義Write address channelWrite data channelWrite response channelRead address channelRead data channel 3.測試4.仿真波形5.工程文件 參考手冊 《3-2-03米聯客2022版AXI4總線專題-20211123.pdf》 《IHI0022E_amba_…

在企業級項目中高效使用 Maven-mvnd

1、引言 1.1 什么是 Maven-mvnd? Maven-mvnd 是 Apache Maven 的一個實驗性擴展工具(也稱為 mvnd),基于守護進程(daemon)模型構建,目標是顯著提升 Maven 構建的速度和效率。它由 Red Hat 推出,通過復用 JVM 進程來減少每次構建時的啟動開銷。 1.2 為什么企業在構建過…

網絡字節序 - 大端

回顧主機字節序 - 大小端 發送主機將發送緩沖區中的數據按內存地址從低到高的順序發出接收主機把從網絡上接收到的數據按內存地址從底到高的順序依次保存到接收緩沖區TCP/IP 規定,網絡數據流應采用大端字節序,即低地址高字節,也就是說&#…

《被討厭的勇氣》書摘

阿德勒心理學考慮的不是過去的“原因”,而是現在的“目的”。你的朋友并不是因為不想到外面去,才制造出不安的情緒。是先有了“不出去”這個目的,之后才會為了達到這個目的而制造出不安或者恐懼之類的情緒。 個人見解:這是阿德勒…

打造專屬AI好友:小智AI聊天機器人詳解

打造專屬AI好友:小智AI聊天機器人詳解 在當下的科技熱潮中,AI正迅速改變著我們的生活,成為了科技領域的新寵。而今,借助開源項目的力量,你可以親手打造一個智能小助手——小智AI聊天機器人。它不僅是一個技術探索的窗…

如何利用爬蟲獲得1688商品詳情:實戰指南

在電商運營和市場分析中,獲取1688商品詳情數據是一項重要任務。本文將詳細介紹如何利用爬蟲技術獲取1688商品詳情,包括準備工作、爬蟲實現步驟以及注意事項。 一、準備工作 (一)注冊1688開放平臺賬號 在1688開放平臺注冊開發者…

如何優化系統啟動時間--基于米爾瑞薩MYD-YG2LX開發板

1.概述 MYD-YG2LX采用瑞薩RZ/G2L作為核心處理器,該處理器搭載雙核Cortex-A551.2GHzCortex-M33200MHz處理器,其內部集成高性能3D加速引擎Mail-G31 GPU(500MHz)和視頻處理單元(支持H.264硬件編解碼),16位的DDR4-1600 / DDR3L-1333內…

QML 圖像變換(縮放、平移、旋轉)

目錄 引言相關閱讀基礎知識工程結構核心代碼解析示例1:圖像縮放(ImageScale.qml)代碼說明運行效果 示例2:圖像平移(ImageTransform.qml)代碼說明運行效果 示例3:圖像旋轉(ImageRotat…

Linux 系統命令使用指南1

適用于 Red Hat / CentOS / Rocky Linux 等系統的基本初始化配置操作。 🔒 1. 關閉 SELinux(臨時生效) setenforce 0?? 注意:此命令僅臨時關閉 SELinux,重啟后可能恢復。要永久關閉,請修改 /etc/selinux…

1.2.1 Linux音頻系統發展歷程簡介

Linux音頻系統的發展經歷了從最初的簡單驅動到今天多層次、模塊化音頻架構。簡要梳理其主要歷程: 早期的OSS(Open Sound System) 在90年代及2000年代初,Linux主要使用OSS來支持音頻。OSS直接為硬件設備(如聲卡&#…

【Linux操作系統】第一彈——Linux基礎篇

文章目錄 💡 一. Linux的基本常識🪔 1.1 linux網絡連接三種方式🪔1.2 虛擬機的克隆🪔1.3 虛擬機的快照🪔1.4 虛擬機的遷移和刪除🪔1.5 vmtools工具 💡二. Linux的目錄結構🪔2.1 Linu…

STM32printf重定向到串口含armcc和gcc兩種方案

STM32串口重定向:MDK與GCC環境下需重寫的函數差異 在嵌入式開發中,尤其是使用 STM32系列微控制器 的項目中,調試信息的輸出是不可或缺的一部分。為了方便調試,開發者通常會選擇將 printf 等標準輸出函數通過 UART 串口發送到 PC …

C++ 文本讀寫與二進制讀寫的底層機制

1.文件的打開方式 1.文本打開 在windows中,寫入時會將\n換成\r\n,讀出時\r\n會讀出\n linux對\n讀寫不做處理 2.二進制打開 對\n讀寫不做處理 2.文本讀寫 1.數據要先變成字符串再寫進緩沖區 2.字符串直接寫進緩沖區就是 3.c對文本讀寫的支持 istream/ostream中重載了對…

02 mysql 管理(Windows版)

一、啟動及關閉 MySQL 服務器 1.1 通過 “服務” 管理工具 winr打開運行,輸入services.msc 找到MySQL80,這個是我們在安裝mysql的時候給的服務的名稱,具體見文章mysql 安裝 右鍵選擇啟動或者停止。 1.2 通過命令提示符 1.2.1 關閉命令…

Elasticsearch知識匯總之 ElasticSearch高可用方案

六 ElasticSearch高可用方案 6.1 高可用架構 請求協調節點根據負載均衡,轉發給主分片節點,主分片同步復制給從節點,主從節點都寫入完成返回客戶端請求成功。對于讀請求,協調負載到任意節點數據節點,數據節點把各自符合…

H5 移動端適配最佳實踐落地指南。

文章目錄 前言一、為什么需要移動端適配?二、核心適配方案1. 視口(Viewport)設置2. 三種適配方案 (僅供參考)(1)rem 適配方案(2)vw/vh 適配方案(3&#xff09…

MySQL初階:數據庫約束和表的設計

數據庫約束 數據庫約束是針對數據庫中的表中的數據進行施加規則和條件,用于確保數據的準確性和可靠性。 數據庫約束類型 1)not null 非空類型 :指定非空類型的列不能存儲null,如果插入的數據是null便會報錯。 2)de…

LVGL- 按鈕矩陣控件

1 按鈕矩陣控件 lv_btnmatrix 是 LVGL(Light and Versatile Graphics Library) v8 中提供的一個非常實用的控件,用于創建帶有多個按鈕的矩陣布局。它常用于實現虛擬鍵盤、數字鍵盤、操作面板、選擇菜單等場景,特別適用于嵌入式設…

excel 批量導出圖片并指定命名

一、開發環境 打開excel文件中的宏編輯器和JS代碼調試 工具-》開發工具-》WPS宏編輯器 左邊是工程區,當打開多個excel時會有多個,要注意不要把代碼寫到其他工作簿去了 右邊是代碼區 二、編寫代碼 宏是js語言,因此變量或者方法可以網上搜…