当前位置: 首页 > news >正文

AMBA-CHI协议详解(二十四)

在这里插入图片描述

AMBA-CHI协议详解(一)- Introduction

文章目录

    • 5.3 Write transaction flows
      • 5.3.1 Write transaction with no snoop and separate responses
      • 5.3.2 Write transaction with snoop and separate responses
      • 5.3.3 CopyBack Write transaction to memory
    • 5.4 Atomic transaction flows
      • 5.4.1 Atomic transactions with data return
      • 5.4.2 Atomic transaction without data return
      • 5.4.3 Atomic operation executed at the SN


5.3 Write transaction flows

本节给出了写入事务的互连协议流程示例。

5.3.1 Write transaction with no snoop and separate responses

在这里插入图片描述
WriteNoSnp 事务流的步骤如下:(传输的数据副本以粗体标记。)

  1. RN-F0 向 HN-F 发起 WriteNoSnp 事务。HN-F 接收并分配该请求。
  2. HN-F 发送 DBIDResp 而不发送 Comp。同时,HN-F 向 SN-F 发送 WriteNoSnp。
  3. RN-F0 用数据 NCWrData 作出响应。SN-F 向 HN-F 返回 CompDBIDResp。
  4. HN-F 在接收到来自 SN-F 的 CompDBIDResp 后发送 Comp。HN-F 向 SN-F 发送 NCBWrData。(此流程示例显示 Comp 在接收到来自 SN-F 的 CompDBIDResp 后发送。然而,HN-F 被允许在接收到来自 RN-F0 的 WriteNoSnp 请求后随时发送 Comp。)
  5. RN-F0 等待来自 HN-F 的 Comp,并释放其请求。

5.3.2 Write transaction with snoop and separate responses

WriteUniquePtl事务实例在这里插入图片描述

带有Snoop的WriteUniquePtl步骤:

  1. RN-F0向HN-F发送WriteUniquePtl写入请求。
  2. HN-F向RN-F1和RN-F2发送SnpCleanInvalid请求。HN-F还向RN-F0返回DBIDResp。RN-F2缓存行状态从UD转换为I。
  3. RN-F1向HN-F发送SnpResp_I,RN-F2向HN-F发送SnpRespData_I_PD。
  4. RN-F0向HN-F发出NCBWrData。HN-F将写入数据与dirty line合并,并向SN-F发送WriteNoSnp。
  5. HN-F向RN-F0发送Comp响应。
  6. SN-F 返回 CompDBIDResp 给 HN-F。
  7. HN-F 发送 NCBWrData 给 SN-F。

5.3.3 CopyBack Write transaction to memory

WriteBackFull示例
在这里插入图片描述

  1. RN-F0 向 HN-F 发送WriteBackFull请求。
  2. HN-F 返回 CompDBIDResp 给 RN-F0。RN-F0 缓存行状态从 UD 转变为 I。
  3. RN-F0 向 HN-F 发送 CBWrData_UD_PD。HN-F 向 SN-F 发送 WriteNoSnp。
  4. SN-F 返回 CompDBIDResp 给 HN-F。
  5. HN-F 发送 NCBWrData 给 SN-F。

5.4 Atomic transaction flows

本节展示不同原子事务类型的流程。

5.4.1 Atomic transactions with data return

此流程适用于:

  • AtomicLoad
  • AtomicCompare
  • AtomicSwap

Atomic transaction with snoops and data return

下图显示了在 HN-F 执行的原子操作。

在这里插入图片描述

  1. RN-F0 向 HN-F 发送原子事务。
  2. 在接收到原子请求后,HN-F:
    • 向RN-F0发送DBIDResp以获取原子事务数据。
    • 在确定需要窥探后,向其他RN-F发送SnpUnique窥探请求。
    • HN-F被允许但不要求向SN-F发送一个推测性的ReadNoSnp请求。
  3. RN-F2在UD状态下拥有缓存行,并通过发送数据和使其自己的缓存副本失效来响应。
    • 响应为SnpRespData_I_PD。
    • 该数据标记为(InitialData,初始数据),以将其与请求者发送的数据和在执行原子操作后写入SN-F的数据区分开。
    • HN-F还从RN-F1接收到第二个窥探响应SnpResp_I。
  4. 在接收到所有窥探响应后,HN-F将CompData_I发送给请求者。
    • 与Comp一起发送的数据是数据的初始副本。
    • 该数据在 RN-F0 处不得以一致状态缓存。
  5. 作为之前发送的 DBIDResp 的响应,HN-F 从请求者接收 NonCopyBackWrData_I 响应。
    • 该数据标记为 (TxnData),以将其与 RN-F2 对 HN-F 的窥探请求的响应中发送的数据区分开。
  6. 一旦 HN-F 从请求者接收到 NonCopyBackWrData_I 响应,并且从 RN-F2 接收到带数据的窥探响应,它将执行原子操作。
    • 原子操作执行后的结果值标记为 (NewData),并写入 SN-F。
  7. 在此示例中,由于推测性读取而接收到的读取数据被 HN-F 丢弃。

Atomic transaction without snoops and with data return
下图显示了在Home节点执行的原子操作。
在这里插入图片描述

  1. RN-F0 向Home节点发送原子事务请求。
  2. Home节点向 RN-F0 返回DBIDResp。
  3. Home节点向 SN 发送ReadNoSnp请求。与此同时,RN 向Home节点发送 NCBWrData(TxnData)。
  4. SN 向Home节点返回 RespData_I(InitialData)。
  5. Home节点返回 CompData_I(InitialData)。
  6. Home节点执行原子操作并向 SN 发送WriteNoSnp请求。
  7. SN 向Home节点返回 CompDBID 响应。
  8. Home节点将原子操作的结果发送给 SN,标记为(NewData)。

5.4.2 Atomic transaction without data return

此流程适用于AtomicStore事务。

Atomic transaction with snoops and without data return
下图显示了在HN-F执行的原子操作。该流程类似于带有窥探且有数据返回的原子事务,唯一不同的是对RN-F0的Comp响应不包含数据。
在这里插入图片描述
HN执行的AtomicStore事务的步骤如下:

  1. RN-F0向HN-F发送AtomicStore请求。
  2. HN-F向请求者RN-F0发出DBIDResp,并向RN-F1和RN-F2发出SnpUnique请求。
  3. RN-F1向HN-F返回SnpResp_I响应。RN-F2的缓存行处于UD状态,并返回SnpRespData_I_PD(InitialData)响应。 这使得RN-F2中的缓存副本失效。
  4. RN-F0 将写入数据 (TxnData) 发送到 HN-F。HN-F 在本地执行 AtomicStore 操作。
  5. HN-F 向 SN-F 发出 WriteNoSnp 请求。
  6. SN-F 向主节点返回 CompDBIDResp。
  7. HN-F 将原子操作的结果发送给 SN-F,标记为 (NewData)。

Atomic transaction without snoops and without data return
下图显示了在Home节点执行的原子操作。该流程类似于没有窥探且有数据返回的原子事务,只是对请求节点的 Comp 响应不包括数据。
在这里插入图片描述
注意:
在图中,从SN节点读取是为了获取初始数据,并且不是推测性的。
来自Home节点的 Comp 响应可以与 DBIDResp 响应合并。

  1. RN 向 HN 发送 AtomicStore 请求。
  2. HN 返回 DBIDResp 响应给 RN,指示 RN 可以将写入数据发送到 HN。
  3. HN 向 RN 发送 Comp 响应,并向 SN 发送 ReadNoSnp 请求。
  4. SN 返回 RespData_I 给 HN。
  5. 一旦 HN 从 RN 获取写入数据,它可以执行原子操作并向 SN 发送 WriteNoSnp。
  6. SN 返回 CompDBIDResp 给 HN。
  7. HN 将原子操作的结果发送给 SN,标记为 NewData。

5.4.3 Atomic operation executed at the SN

下图显示了一个示例原子事务流,其中 SN-F 正在执行原子操作。
在这里插入图片描述
在 SN-F 执行的 AtomicStore 事务的步骤如下:

  1. RN-F0 向 HN-F 发送 AtomicStore 事务。
    • 原子请求是针对Snoopable位置的。
  2. 在接收到原子请求后,HN-F:
    • 向RN-F0发送DBIDResp以获取原子事务数据。
    • 在确定需要窥探后,向其他RN-F发送SnpUnique。
  3. RN-F2在UD状态下具有缓存行,并通过发送数据和使其自己的缓存副本失效来响应。
    • 响应为SnpRespData_I_PD。
    • 该数据在图中标记为(InitialData),以将其与请求者发送的数据和写入SN-F以执行原子操作的数据区分开。
    • HN-F还从其他被窥探的RN-F接收到第二个窥探响应SnpResp_I。
  4. HN-F使用WriteNoSnp事务将接收到的数据写入SN-F。
  5. 作为之前发送的DBIDResp的响应,HN-F从请求者接收到NonCopyBackWrData响应。
  6. HN-F在将窥探响应数据发送到SN-F后,向SN-F发送AtomicStore请求,并执行完成原子事务所需的消息序列。
  7. HN-F 在将 Comp 响应发送给请求者并从 SN-F 收到原子事务的 Comp 响应后,释放请求。
    • 当所有窥探响应都收到时,HN-F 可以发送 Comp 响应。

相关文章:

  • window.btoa 和 atob 记不住,怎么根据字母意思去理解
  • 错误: 缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序
  • 当底层硬盘老旧时,如何限制Linux服务器和Windows服务的IOPS?
  • 苍穹外卖-Spring Task使用的前置条件
  • GROOT N1,英伟达开源的人形机器人模型
  • 【LLMs篇】06:Encoder-Only vs Decoder-Only vs Encoder-Decoder
  • OWASP Top 10 解读:如何构建更安全的应用?
  • 【C++】二叉树和堆的链式结构
  • 阿里云 AI 搜索产品荣获 Elastic Innovation Award 2024
  • MySQL 调优
  • 线性规划的标准形式
  • openpnp - 如果安装面的钣金接触面不平,可以尝试加垫片
  • Springboot List集合的校验方式
  • 替代Qt中信号与槽的完整例子。
  • CVPR2025 | TAPT:用于视觉语言模型鲁棒推理的测试时对抗提示调整
  • 如何实现一个DNS
  • Java Web应用程序实现用户登录、学生信息管理和验证码验证以及页面跳转等基本功能(IDEA)含(Ajax、JSTL)
  • 【时时三省】(C语言基础)用gutchar函数输入一个字符
  • Session 、Cookies 和 Token关系于区别
  • k8s中的service解析
  • 潍坊网站建设自助建站平台/广东短视频seo搜索哪家好
  • 化妆品网站建设预算/百度问一问客服人工在线咨询
  • 做网站在哪里找素材/怎样在浏览器上找网站
  • 服装企业网站策划书/seo文章范文
  • 广州公司排名前十/陕西网站seo
  • 电子政务与网站建设意义/武汉大学人民医院官网