跳转至

浮点标量块

浮点标量块指令是一种用于处理标量浮点型数据运算的块类型。浮点数运算操作通常在科学计算、工程应用、图像处理等领域经常出现,这些领域往往需要进行精度要求较高的数值运算,因此浮点标量块也是一种较为重要的块指令。除此之外,浮点块内也支持通用的整型标量运算。

块类型特征

浮点标量块有如下特点:

  • 浮点标量块由BSTART.FP指令作为起始指令。
  • 浮点标量块只支持一体块形式
  • 浮点标量块提供全量跳转方式,具体参考跳转方式
  • 浮点标量块内不支持块内跳转
  • 浮点标量块内允许访问全局寄存器GGPR系统寄存器SSR和内存等全局状态。不允许访问Tile寄存器

块内状态BSTATE

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

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

FP块的BSTATE以BARG管理浮点标量块的块级控制与属性,支持与STD一致的跳转与顺序语义:BPC与BlockType标识块入口与类型,BPCN、Type、Taken用于块间跳转控制,AQ/RL用于执行序与内存可见性约束。块体以单一TPC线性推进微指令序列。并提供8个64位SGPR,承担浮点与相关控制计算的通用标量暂存与操作数承载,支撑指令流水中的操作数准备、循环控制与中间结果保存。整体上,FP块通过BARG的跳转与属性控制、单TPC的顺序执行和SGPR的高效标量数据通道,形成面向浮点标量任务的调度与执行闭环。

汇编示例

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

    BSTART.FP DIRECT
    lwi [a0, 0],   ->t
    lwi [a0, 8],   ->t
    fadd.fs t#2, t#1,    ->t   
    ...