IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> GIC spec之ITS和LPI中断4 -> 正文阅读

[开发工具]GIC spec之ITS和LPI中断4

2.4 中断转换表

????????中断转换表ITT指定每个设备可以创建一定数量的event。ITT中的每个表项为ITE。

????????在GICv3中,ITE仅被物理中断定义。

????????在GICv4中,ITE被物理中断和虚拟中断定义,并提供如下区分:

(1)物理LPI的entry和使用ICT作为路由信息;

(2)虚拟LPI的entry和使用vPE表;

????ITT必须赋予起始ITT地址的连续物理地址空间。大小为2^(DTE.ITT range + 1) * GITS_TYPER.ITT_entry_size。

????????如果内存在开始分配时不全为0时,行为不可预测。

????????如果多个ITT在内存中重叠,行为不可预测。

????????ITS访问ITT使用相同的Shareability和Cacheability属性来指定给Device Table。

????????对于物理中断,每个ITE描述输入EventID和下列项的映射:

(1)被发送到目的PE的输出物理INTID(pINTID);

(2)ICID区分Collection表中的项,这决定了LPI的目标PE。为获取更多信息,可以查看Collection table。

????????对于虚拟中断,每个ITE描述了EventID和下列项的映射:

(1)被发送到目的PE的输出虚拟INTID(vINTID);

(2)虚拟PE标号(vPEID)区分vPE表中的表项来决定当前host Redistributor。为获取更多信息,查看vPE表;

(3)当目标vPE当前没有被调度到物理PE上,如果虚拟中断被转换,物理LPI被发送到物理PE;

????????EventID提供了表的索引值。

Table 5-3 显示了可以被保存在ITE的位数。

位数

Assignment

备注

1

Valid

BOOL型

1

Interrupt_Type

BOOL型,表明中断为物理还是虚拟中断

LPI数字空间的大小

Interrupt_Number

依赖于中断类型的pINTID或vINTID

Interrupt_Number_HypervisorID

在GICv4中pINTID被当doorbell使用。在GICv3中和不要求doorbell的GICv4中,可编程值为1023

16

ICID

中断collection ID,仅物理中断

16

vPEID

vPE,仅虚拟中断

2.5 collection表

????????Collection表CT提供了collection表项的表。仅对于物理LPI,每个CTE描述了下列两者之间的映射:

(1)ITT产生ICID;

(2)以GITS_TYPER.PTA定义的格式的目标Redistributor的地址;

????????对于每个ITS存在单独的CT,它可以保持在寄存器中或内存中,或同时存在两者中。查看GITS_BASER<n>.Type和GITS_TYPER.HCC获取更多信息。

????????TableID提供表的索引值。它源自于ICID。

????????Table 5-4给出位数可能被赋予给每个CT的例子。

位数

Assignment

备注

1

Valid

BOOL型

RDbase identifier大小

RDbase

GIC支持两种格式RDbase

2.6 vPE表

????????vPE表由vPE表项组成,vPE表项提供了ITS产生vPEID映射到:

(1)目标Redistributor,以GITS_TYPER.PTA定义的格式;

(2)与目标vPE相关的虚拟LPI Pending表的基地址;

????????GITS_BASER<n>定义的内存区域保持vPE表并指定了表中的每个项大小。

????????vPE表描述与ITS相关的所有vPE。Table5-5 描述了在vPE表实现位数。

????????16bit vPEID提供了表的索引值。

位数

Assignment

备注

1

Valid

BOOL型

RDbase identifier大小

RDbase

GIC支持RDbase的两种格式

地址的大小

VPT_addr

当VM不驻留在Redistributor中时,VPT_addr找到LPI pending表的位置。当vPE在与RDbases相关的GICR_*寄存器中被调度时它被用来在GICR_VPENDBASER作为地址

5

Size

支持的vINTID范围大小

2.7 ITS的控制和配置

????????ITS通过内存映射接口被控制和配置:

  1. 可以从GITS_IIDR和GITS_PIDR2中读取版本;
  2. GITS_TYPER指定ITS支持的特性;
  3. GITS_CTLR控制ITS的操作;
  4. GITS_TRANSLATER接受EventID信息。由实现定义DeviceID是如何提供的。
  5. GITS_BASER<n>寄存器提供架构相应的ITS内存结构体的类型,大小和访问属性;
  6. GITS_CBASER,GITS_CREADR,和GITS_CWRITER保存ITS命令队列接口的地址信息;

????????每个ITS有一个使能位GITS_CTLR.Enabled。

2.8 ITS命令接口

图5-5 描述了ITS如何提供ITS命令队列使用的基地址和大小。

GITS_CBASER,GITS_CREADR,和GITS_CWRITER定义ITS命令队列。

(1)GITS_CBASER使用下列域:

- Valid。该域表明了ITS命令队列分配的内存。

- Cacheability。该域表明了ITS命令队列的访问cacheability属性。

- Shareability。该域表明了ITS命令队列的访问shareability属性。

- Physical address。该域表明包含ITS命令队列的内存的物理基地址。

- Size。该域表明了ITS命令队列的4KB物理内存页的数目。

(2)GITS_CREADR指定了ITS读取下一个命令的基地址偏移;

(3)GITS_CWRITER指定了软件写下一个命令free entry的基地址偏移。

一个ITS命令队列项的大小为32byte。这意味着在每个4KB页支持128个项。

ITS命令队列使用小端内存模型。

在ITS命令队列:

  1. 基地址通常对齐于64KB;
  2. Size为4KB的整数倍;
  3. 队列的地址对齐于4KB,为(base address + (size * 4KB));

NOTE: 所有地址为非安全物理地址。

当第一个命令完成时,ITS开始处理下一个命令。读指针GITS_CREADR随着ITS处理命令的前进。如果GITS_CREADR达到GITS_CBASER指定的内存顶端,指针wrap回到GITS_CBASER指定的基地址。GITS_CWRITER由软件控制。

当GITS_CWRITER和GITS_CREADR指定相同的基地址偏移值时,ITS命令队列为空。

当GITS_CWRITER指向GITS_CREADR后的一个32byte时,ITS命令队列为满。

当GITS_CREADR.Stalled=1时,没有后续命令被处理。

INT ITS命令在执行时产生中断,这会在命令的一个特定的时序完成时产生一个中断。

2.9 转换的顺序及输出到ITS命令

????????每个命令队列entry自动被执行,因此一个转换请求或在一个命令之前看到ITS的状态或在这个命令之后看到ITS的状态。

????????在SYNC或VSYNC命令完成后一个初始化的转换请求使用ITS状态被转换,在命令被执行后ITS状态与该状态保持一致。

????????在缺少SYNC或VSYNC命令时,ITS命令和转换请的顺序不是由架构定义的。

2.10 INTID映射规则的限制

????????如果软件有下列行为,GIC的行为不可预测:

  1. 将多个EventID-DeviceID连结映射到相同的物理LPI INTID;
  2. 将doorbell中断赋予给相同物理LPI INTID给不同物理PE。这仅应用于GICv4。
  3. 映射EventID-DeviceID,并将一个单独的doorbell中断映射到相同物理LPI INTID,如果他们不是目标到相同物理PE。这应用于GICv4所有的版本。
  4. 将多个EventID-DeviceID映射到相同虚拟LPI INTID-vPEID。这应用于GICv4。
  5. 映射一个EventID-DeviceID,并一个默认doorbell中断到相同的物理LPI INTID。这仅应用于GICv4.1。
  6. 将一个默认doorbell和一个独立的doorbell映射到相同物理LPI INTID。这仅应用于GICv4.1。

????????NOTE:概念上限制为软件不能映射多个EventID-DeviceID到给定的虚拟机上的vLPI。但是,ITS没有意识到哪个vPE属于相同的虚拟机。

?

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 18:57:13  更:2022-04-22 18:57:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 15:06:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码