跳转至

整型标量块指令

整型标量块是一种用于执行标量整型数据运算的块指令,承载了通用标量运算中大部分的业务,因此也是灵犀指令集中最为常用的块指令。整型标量块适合顺序执行的标量运算任务,适用于数据流较为简单的计算。

块类型特点

整型标量块有如下特征:

  • 整型标量块由BSTART.STD指令开启。
  • 整型标量块只支持一体块形式
  • 整型标量块提供全量跳转方式,具体参考跳转方式
  • 整型标量块内不支持块内跳转
  • 整型标量块内允许访问全局寄存器GGPR系统寄存器SSR和内存等全局状态。不允许访问Tile寄存器

块内状态BSTATE

整型标量块的BSTATE中包含以下三部分内容:

  • BARG寄存器:块内的控制参数寄存器,用于条件跳转或执行参数的保存和处理。
  • TPC寄存器:记录块内正在执行的指令的地址(块内单一TPC)。
  • SGPR寄存器:包含8个通用标量寄存器,用于保证块内数据流高效传递以及提供块内临时数据的载体。

总体上,STD块的BSTATE以BARG管理块级控制(跳转、顺序、属性),以单一TPC推进块体微指令执行,并以8个SGPR提供块内高效的标量数据通道与临时存储,三者协同完成整型标量块的调度与执行闭环。

汇编示例

整型标量块使用一体块形式进行定义,汇编示例如下:

    BSTART.STD FAll
    ...                   # 其他块头指令,根据需要补充定义
    add a0, a1,   ->t     # 块体中第一条微指令
    ldi [a2, 8],  ->u
    mul t#1, u#1, ->a1
    ...