当前位置: 首页> 健康> 美食 > 做网站建设公司_建站_网页设计与制作步骤_seo的范畴是什么

做网站建设公司_建站_网页设计与制作步骤_seo的范畴是什么

时间:2025/7/12 2:33:58来源:https://blog.csdn.net/u011832525/article/details/144587073 浏览次数:0次
做网站建设公司_建站_网页设计与制作步骤_seo的范畴是什么

本文属于《 RISC-V指令集基础系列教程》之一,欢迎查看其它文章。

1 概述

Advanced Interrupt Architecture for RISC-V(AIA),RISC-V的高级中断架构。
该AIA规范相对于原有的PLIC规范,增加了MSI消息中断的支持,可以更好的应用于多核NoC的网络中。
RISCV的2个标准中断控制器:

  • Advanced Platform-Level Interrupt Controller (APLIC)
  • Incoming Message-Signaled Interrupt Controller(IMSIC)

2 目标

RISCV AIA有如下目标:

  • 基于原有的RISC-V特权架构,尽量少地改动原有功能,扩展中断处理功能。
  • 除了基本的线中断(wired interrupts),为RISC-V系统提供了直接处理MSI的方式,MSI被PCIe及其他设备广泛使用。
  • 对于线中断,定义了一种全新的中断控制器APLIC,针对不同的特权态(machine level、supervisor level)内部存在相对应的域(machine domain、supervisor domain)。APLIC的作用是在软件的配置下,将线中断转换成MSI中断。
  • 扩展了RISC-V hart的本地中断(local interrupt,指timer中断、软件中断IPI)的处理框架。
  • 允许软件对所有中断源进行优先级排序(timer中断、IPI、外部中断)。
  • 虚拟化的中断处理—待完善,当 hart 实现 hypervisor extension 时,可以为 virtual machine(VM)虚拟化的这些相同的 interrupt 设施提供足够的帮助。
  • IO-MMU——待完善。透过I/O MMU (memory management unit)的帮助,运行在 VM 中的guest OS 有最大的机会和能力直接控制设备,避免让 hardware interrupt 限制了 VM 数量的因素。
  • 在实现的弹性、效率和灵活性之间,尽可能保持最佳的折衷,从而实现上述所有目标。

AIA规范面向大规模高性能RISC-V处理器的需求。目前还未定义以下中断处理特性的支持,这些特性是有助于 real time(实时)系统,但不太适合高速处理器,如下所示:

  • 为每个 interrupt source 提供一个单独的 trap 入口地址
  • 在 interrupt trap 进入时自动堆栈 register的值,在退出时回复
  • 根据 priority 自动抢占 interrupt

3 限制

在目前版本当中,RISC-V AIA 可支持 16,384个 harts 的对称多处理器(SMP)系统,如果 harts 是64位(RV64)且实现了 hypervisor extension,并且 AIA 的所有功能都已实作,那么对于每个实体 hart,最多可能有63个虚拟 hart 和数千个额外的闲置(已交换出的)虚拟 hart,其中每个虚拟 hart 都直接控制一个或多个实体设备。
在这里插入图片描述

4 AIA主要组件概览

AIA中定义了两个组件:

  • IMSIC(Incoming MSI Controller),IMSIC的任务是收集和处理MSI中断。
  • APLIC(Advanced Platform-Level Interrupt Controller),APLIC的任务是收集和处理中断,然后将这些中断以线连接或者MSI的方式传递给hart。

在完全支持 MSI 系统中,每个 hart 都有 IMSIC,可用来控制 external interrupt;相反的,传统的 interrupt,hart没有IMSIC。
通常较大的系统,如支持PCI设备的系统,通常会给 hart 提供 IMSIC,从而完全支持 MSI;而许多较小的系统可能仍然适合使用 wire interrupt 和没有 IMSIC 的简单 hart。

4.1 不带IMSIC的外部中断

在这里插入图片描述
当RSIC-V hart不带IMSIC时,外部中断通过独享的中断线传送到hart内。
在这种情况下,APLIC作为外部中断控制器,负责将所有外部中断路由至不同的hart中,并对不同的外部中断进行优先级排序。
APLIC会根据软件配置(即Delgate)将外部中断有选择性的传入到hart中的M态或者S态。

此外,即使 hart 有实现 hypervisor extension,如果没有 IMSIC,目前 AIA 不支持 external interrupt 直接向 VM 发送 interrupt。相反的需要将 interrupt 送到相关的 hypervisor,hypervisor才可以将virtual interrupt 送给 VM。

4.2 带IMSIC的外部中断

在这里插入图片描述
IMSIC用来接收MSI中断,MSI中断通过向内存映射地址写数据的方式实现。MSI 只是一种对特定的内存写入,硬件接受该地址表示为 interrupt。因此,每个 IMSIC 在物理地址空间中被分配了一个或多个不同的地址,当对这些地址进行写入时,接收的 IMSIC 就表示该行为为 external interrupt。所有 IMSIC 在机器的实体地址空间中都有唯一的地址,所以每个 IMSIC 都可以接收 MSI。

IMSIC 针对 machine level 和 supervisor level 有独立的地址,部分原因为通过不同地址写入的权限,可以授予或拒绝每个级别发出 interrupt 信号的能力,另外的原因则为可以更好的支持虚拟化。

面向特定特权等级下的hart的MSI中断会被记录在IMSIC的interrupt file中,interrupt file主要包含:

所有MSI的pending位(eip0-eip63)和enable位(eie0-eie63),每个寄存器32bit,因此共支持32*64-1=2047个MSI中断,分别对应interrupt identity 1-2047,另外interrupt identity 0的pending位和enable位固定为0,因此是支持2047个MSI中断。

当 risc-v 系统中 hart 具有 IMSIC,且具有 APLIC时, APLIC的角色将有所改变。APLIC 会将所有 wired interrupt 转换成 MSI,然后通过 IMSIC 送到 hart(如果没有 IMSIC 则由 APLIC 充当,但只能使用 wired interrupt 不能用 MSI)。由于每个hart都有一个IMSIC,因此APLIC将线中断发送到哪一个hart的哪一个特权等级对应的IMSIC的interrupt file,以及该MSI中断的优先级,都是有软件对APLIC中的寄存器配置来实现的。

如果 risc-v hart 实作了 hypervisor extension,IMSIC 可能可以额外提供 guest interrupt file,用来向虚拟机提供的 interrupt。

4.3 其他中断

其他中断为本地中断(local interrupt),包含timer interruptsoft interrupt(IPI),它们是hart内部的中断,不会通过APLIC和IMSIC

5 在hart中的中断ID定义

RISC-V 特权架构为每个 hart 上的 interrupt cause 定义了不同的 ID number ,这是当 trap 发生时自动写入 mcause 或是 scause 的。

  • RISC-V特权架构,定义了 0 到 15,大于 16 的部分可自行定义;
  • 而 AIA 进一步定义 16~23 和 32~47,而 23~31 以及大于 48 的也是可自行定义使用。
    在这里插入图片描述

外部中断的major identity,即为该中断的exception code。
特定特权级别上的外部中断,都共享一个主标识号(major identity):

  • S level的外部中断,major identity为9
  • H level的外部中断,major identity为10
  • M level的外部中断,major identity为11

Minor identity由软件指定(线中断的minor identity在APLIC中配置,msi中断的minor identity在I/O设备中指定)。

来自大多数I/O设备的中断,由hart的外部中断控制器传送到hart,要么是hart的IMSIC,要么是APLIC。
不同原因的外部中断,通过外部中断控制器提供的次要标识号(minor identity)来区分。

也就是说,一个外部中断,需要由major identity和minor identity联合起来,进行标识。

6 选择哪一个hart来接收中断

每个有信号的中断,只在一个特权级别上传递给仅一个hart,通常由软件以这种或那种方式确定。
与其他一些体系结构不同,RISC-V高级中断体系结构没有提供广播或多播中断到多个hart的标准硬件机制。

也就是说,中断的处理(目的地),仅仅只能在某一个hart上进行。

对于本地中断,以及软件注入到较低权限级别的任何“虚拟”中断,这些中断在本质上完全是本地事务,对其他中断永远不可见。

RISCV特权架构的定时器中断,也唯一地绑定到单个hart。
对于hart从hart外部的源接收到的其他中断,每个中断信号(无论是通过电线还是通过MSI传递),都由软件配置为仅进入单个hart。
要向多个hart发送一个处理器间中断(IPI),发起hart只需要执行一个循环,向每个目标hart发送一个单独的IPI。

7 ISA extensions Smaia and Ssaia

省略。


参考链接:

  • 《RISCV AIA (二)概述》
关键字:做网站建设公司_建站_网页设计与制作步骤_seo的范畴是什么

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: