• Hexagon_V65_Programmers_Reference_Manual(24)


    11.9 SYSTEM

    SYSTEM 指令类包括用于管理系统资源的指令。

    11.9.1 SYSTEM/GUEST

    SYSTEM/GUEST 指令子类包括访客模式的指令。

    11.9.1.1 访客控制寄存器传输

    这些指令在客户控制和通用寄存器文件之间移动寄存器。
    下图显示了访客控制寄存器及其寄存器字段编码。
    寄存器可以作为单个或对齐的 64 位对移动。
    在这里插入图片描述

    Class: SYSTEM (slot 3)
    注意
    这是访客级别的功能。 如果在用户模式下执行,则会发生权限错误异常。

    编码
    在这里插入图片描述
    在这里插入图片描述

    11.9.2 SYSTEM/MONITOR

    SYSTEM/MONITOR 指令子类包括监控模式的指令。

    11.9.2.1 清除中断自动禁用

    寄存器 Rs 指定一个 32 位的掩码,其中位 0 对应最高优先级的中断 0,寄存器位 31 指的是最低优先级的中断 31。
    对于 Rs 中设置的位,IAD 中的相应位被清除。 这将重新启用中断。

    对于 Rs 中清零的位,IAD 中的相应位不受影响。
    在这里插入图片描述

    Class: SYSTEM (slot 3)
    注意

    • 该指令只能与 ALU32 或非浮点 XTYPE 指令组合。
    • 这是监视器级别的功能。 如果在用户或访客模式下执行,则会发生权限错误异常。

    编码
    在这里插入图片描述

    11.9.2.2 交换 SGP 控制寄存器

    CRSWAP 将通用寄存器的内容与主管通用指针寄存器之一(SGP0 或 SGP1)交换。

    例如,这些寄存器可用于保存管理程序或异常堆栈指针,或其他用于快速异常处理的通用指针。 存在一对交换形式,用于将两个 SGP 寄存器与一对对齐的通用寄存器交换。

    在这里插入图片描述

    Class: SYSTEM (slot 3)
    注意

    • 这是监视器级别的功能。 如果在用户或访客模式下执行,则会发生权限错误异常。

    编码
    在这里插入图片描述

    11.9.2.3 取消挂起的中断

    寄存器 Rs 指定一个 32 位的掩码,其中位 0 对应最高优先级的中断 0,寄存器位 31 指的是最低优先级的中断 31。

    CSWI 通过清除 IPEND 寄存器中的中断来取消掩码中指示的任何未决中断。
    在这里插入图片描述

    Class: SYSTEM (slot 3)
    注意

    • 该指令只能与 ALU32 或非浮点 XTYPE 指令组合。
    • 这是监视器级别的功能。 如果在用户或访客模式下执行,则会发生权限错误异常。

    编码
    在这里插入图片描述

    11.9.2.4 清除数据缓存

    DCKILL 使数据缓存的全部内容无效。 上电时,不保证缓存包含有效数据。

    该指令应用于建立初始的干净缓存状态。 执行 DCKILL 时,数据缓存中所有尚未写回内存的脏数据都会丢失。 如果要保存数据,则应在执行 DCKILL 之前使用 DCLEAN 指令将其清除。

    由于高速缓存在所有线程之间共享,因此必须仅在确保没有其他线程正在使用高速缓存时才执行该指令。 最好的选择是在只有一个线程上电而其他线程断电时使用该指令。
    在这里插入图片描述

    Class: SYSTEM (slot 0)
    注意

    • 这是一个单独的指令。 它不能与数据包中的其他指令组合在一起。
    • 这是监视器级别的功能。 如果在用户或访客模式下执行,则会发生权限错误异常。
      在这里插入图片描述

    11.9.2.5 数据缓存维护监视器说明

    对数据缓存执行维护操作。

    DCCLEANINVIDX 查看数据缓存中的索引 Rs。 如果此行有脏数据,则将数据刷新到内存中。 该行无效。 该集合在 Rs[11:5] 中提供,路径在 Rs[2:0] 中提供。 该指令只能与 X 型或 A 型指令组合。

    DCCLEANIDX 查看数据缓存中的索引 Rs。 如果此行有脏数据,则将数据刷新到内存中。 该集合在 Rs[11:5] 中提供,路径在 Rs[2:0] 中提供。 该指令只能与 X 型或 A 型指令组合。

    DCINVIDX 使索引 Rs 处的行无效。 该集合在 Rs[11:5] 中提供,路径在 Rs[2:0] 中提供。 该指令只能与 X 型或 A 型指令组合。

    DCTAGR 读取 Rs 指示的标签并将数据返回到 Rd。 集合提供Rs[11:5],路提供Rs[2:0]。 标签在 Rd[23:0] 中返回,状态在 Rd[30:29] 中返回。 该指令只能与 X 型或 A 型指令组合。

    DCTAGW 使用寄存器 Rs 和 Rt。 寄存器 Rs 包含 [11:5] 中的集合和 [2:0] 中的路,而 Rt 值包含 [23:0] 中的标签和 [30:29] 中的状态。 DCTAGW 指令仅是单线程的。 所有其他线程必须处于停止或调试模式,没有未完成的事务。 该指令为 SOLO 指令,不得与其他指令一起出现在数据包中。

    状态位编码如下:
    00 = Invalid
    01 = Valid & Clean
    10 = Reserved
    11 = Valid &Clean
    在这里插入图片描述

    Class: SYSTEM (slot 0)
    注意

    • 该指令只能与 ALU32 或非浮点 XTYPE 指令组合。
    • 这是一个单独的指令。 它不能与数据包中的其他指令组合在一起。
    • 这是监视器级别的功能。 如果在用户或访客模式下执行,则会发生权限错误异常。

    在这里插入图片描述

  • 相关阅读:
    el-form动态表单嵌套验证
    数据库安全性管理
    linux可用内存不足如何排查清理
    Python GRPC 10min掌握使用
    【C++入门基础】命名空间 | 缺省参数 | 函数重载 | 引用 | 内联函数
    ISIS默认层级实验简述
    海边溺水,救援机器人“生死时速”;机器学习论文撰写清单;Kaggle数据科学新手教程;约克大学『计算机视觉』课程资料;前沿论文 | ShowMeAI资讯日报
    MATLAB基础应用精讲-【数模应用】神经网络
    Python DCM转NRRD及NRRD转NII
    Spring Cloud(一):Spring Cloud Alibaba 组件 和 版本选择
  • 原文地址:https://blog.csdn.net/weixin_38498942/article/details/126282141