Hexagon 系统架构

本节介绍 Hexagon 架构的一些独有特性。

中断

中断到达 Hexagon DSP 核心时,按优先级路由到符合条件且优先级最低的硬件线程处理。

内存

每个硬件线程的 SSR.ASID 保存地址空间标识符。 该值与 32 位虚拟地址拼接,MMU 将扩展后的虚拟地址解析为物理地址。

TLBs

TLB 条目格式如下。

备注

Small Core DSP 使用不同的 TLB 格式,目前尚不支持。

示意图

       6                   5                   4               3
 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|v|g|x|A|A|             |                                       |
|a|l|P|1|0|     ASID    |             Virtual Page              |
|l|b| | | |             |                                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   3                   2                   1                   0
 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | | |       |                                             | |
|x|w|r|u|Cacheab|               Physical Page                 |S|
| | | | |       |                                             | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • ASID:地址空间标识符。

  • A1、A0:QEMU 不建模这些缓存行属性的行为。

  • xP:扩展物理地址位,是物理地址最高位。

  • S:S 位和物理页的低位共同表示页面大小。

  • val:有效位,置位后表示页面匹配时应考虑此条目。

页面大小

S 位

物理页低位

页面大小

1

N/A

4kb

0

0b1

16kb

0

0b10

64kb

0

0b100

256kb

0

0b1000

1MB

0

0b10000

4MB

0

0b100000

16MB

  • glb:全局位置位后,TLB 匹配不考虑 ASID。

  • Cacheab:不建模 TLB 缓存属性,忽略这些位。

  • RWX:读、写、执行使能位,表示用户程序能否读取、写入或执行此页。

  • U:表示用户程序能否访问此页。

调度器

Hexagon 提供辅助客户机操作系统任务调度的功能,通过 SCHEDCFG.EN 启用。 客户机设置 BESTWAIT,表示等待某硬件线程运行的最高优先级任务。 任一硬件线程的 STID.PRIO 优先级低于 BESTWAIT 时触发重调度中断, 并将 BESTWAIT.PRIO 重置为 0x1ff。

HVX 协处理器

监督者状态寄存器的 SSR.XA 将 DSP 硬件线程绑定到八个 HVX 上下文之一。 客户机操作系统负责管理此资源。

参见

更多 Hexagon 信息见 QEMU 源码树的 target/hexagon/README。