hset_flag & hwait_flag
功能说明
为了减少同步延迟,提供了hset和hwait标志接口,hset_flag接口中的目的内存由接口立即数指定,都放置在实际的生成者或消费者接口之前。这样可以在同步发生之前通知硬件数据依赖的确切位置。接口的具体功能是,根据传入的内存和管道信息,在对应接口完成相关内存的读写之后,立即获得该事件的型号,不必等待接口的其余部分执行完成。
hset_flag & hwait_flag 仅在Cube和Fixpipe之间(双向)、Cube和Pipe MTE1之间(双向)使用。hset_flag和hwait_flag接口必须放置在相应的生产或消费接口之前,其目标内存由接口的立即数memory 指定,这样硬件可以在同步发生之前被告知数据依赖关系的确切位置。
由于“set & wait”标志必须成对出现,因此在循环体前后会插入多个“虚拟”的“set”or “wait”标志,接口引入了一个新的参数 v 来指示接口是否为虚拟接口。
接口原型
void hset_flag(pipe_t pipe, pipe_t tpipe, event_t eventID, mem_t memory, bool v) void hset_flag(pipe_t pipe, pipe_t tpipe, uint64_t eventID, mem_t memory, bool v) void hwait_flag(pipe_t pipe, pipe_t tpipe, uint64_t eventID, mem_t memory, bool v) void hwait_flag(pipe_t pipe, pipe_t tpipe, event_t eventID, mem_t memory, bool v)
参数说明
pipe_t/event_t 参数参考上一节。
参数名 |
说明 |
|---|---|
memory |
指定的依赖内存 |
v |
虚拟指示器,0表示valid,1表示虚拟 |
eventID |
2bit事件ID,仅支持4个事件ID。 |
枚举名 |
枚举值 |
|---|---|
L1 |
0 |
L0A |
1 |
L0B |
2 |
L0C |
3 |
UB |
4 |
BT |
5 |
流水类型
PIPE_S
父主题: 同步接口