从零学习 InfiniBand-network架构(八) —— IB协议中的原子操作
创始人
2024-02-11 20:40:06
0

从零学习 InfiniBand-network架构(八) —— IB协议中的原子操作


🔈声明:
😃博主主页:王_嘻嘻的CSDN主页
🔑未经作者允许,禁止转载
🚩本专题部分内容源于《InfiniBand-network architecture》,侵权必删

   本章将介绍IB协议中传输请求中的原子操作,并解释原子操作存在的意义以及IB协议中原子操作的具体类型与流程


什么是原子操作

  原子(atomic),在信息领域中指的就是不可分割的操作,不会因为线程调度被打断的操作。在IB协议中,原子操作指:如果一个处理器必须对特定的内存区域(例如,一个数据结构)执行一系列的两次或两次以上的访问,需确保在该处理器的一系列访问完成之前没有其他处理器访问同一内存。

  通过这种方式,原子操作的任务已经为自己保留了资源,然后可以启动一系列数据结构访问,而不必担心另一个任务成功访问该数据结构。


原子操作的意义

  假设系统中不存在原子操作:

  • 任务A在处理器A上运行,任务B在处理器B上运行;
  • 任务A必须访问共享数据结构;
  • 处理器A启动并完成一次内存读取,检查目标内存的状态,并标记该空间其它任务不可用;
  • 任务A然后执行存储指令将更新的信号量放回内存中;
  • 同时,运行在处理器B上的任务也希望访问该空间,但它可能在处理器a之前获得对信号量位置的访问权;
  • 此时,任务A和任务B现在都认为数据结构只属于它们,数据将进入无法预测的状态;

  出现上述问题将导致整个系统陷入糟糕的状态,这不是设计人员希望看到的。


  如果处理器A能够执行内存读、值测试和寄存器中的设置,以及作为原子的、不可分割的操作的内存写,并确保在原子系列访问(在本例中,是内存读和内存写)完成之前没有其他实体访问同一内存区域,那么这种情况是可以避免的。


IB协议中原子操作的类型与流程

  为了解决上述问题,IB协议提供了两种原子操作:

  • fetch and add的原子操作
  • Compare and Swap If Equal的原子操作(同Java中的CAS)

  原子操作由请求和Ack包组成,一个由请求方QP的SQ逻辑发出的原子请求包和一个由响应方QP的RQ逻辑返回的原子确认包,但是这两个数据包都不包含数据有效负载字段。操作所需的数据项在报文的AtomicETH字段中携带,AtomicETH字段包含:

  • 虚拟内存地址(VA);
  • 远程访问键(R_Key);
  • 添加数据(在Fetch和Add操作的情况下),或比较数据和交换数据(在比较和交换如果相等操作的情况下);

  IB协议规定了在接收到原子请求包时,响应端QP的RQ将其发布到特定于设备的队列中,(由硬件,而不是软件来执行),在内存读写之间的时间间隔内,CA必须阻止同一CA上的其他QP访问同一位置

以fetch and add操作为例,具体流程如下图:

  1. 从响应端内存中可被8整除的虚拟地址开始的内存中读取64-bits值;
  2. 使用请求包的AtomicETH字段中提供的64位add Data字段执行无符号添加;
  3. 将结果写回相同的虚拟地址;

在这里插入图片描述

Compare and Swap操作与fetch and add操作类似,在此就不再详细描述。




搜索关注我的公众号【IC墨鱼仔】,获取我的更多IC干货分享!

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...