一、atomic transactions are as follows:
1. AWLEN和AWSIZE指定写数据的字节数(对于AtomicCompare需包含比较值和交换值)
AWLEN(突发长度)和AWSIZE(每次传输的字节数)共同决定了原子事务中写数据的总字节数。对于大多数原子事务,这指的是操作数的大小;但对于AtomicCompare,由于需要发送两个值(比较值和交换值),总字节数必须包含两者。
// 场景1:AtomicSwap,交换8字节值 // AWLEN = 0(1次传输) // AWSIZE = 3(8字节) // 总字节数 = (AWLEN+1) * (1<<AWSIZE) = 1 * 8 = 8字节 // 写数据通道:64位数据包含交换值 // 场景2:AtomicCompare,比较值和交换值各4字节 // AWLEN = 0(1次传输) // AWSIZE = 3(8字节)// 总字节数 = 8字节 = 4字节(比较值) + 4字节(交换值) // 写数据通道:64位数据,高32位是比较值,低32位是交换值 // 场景3:AtomicCompare,比较值和交换值各8字节 // AWLEN = 0(1次传