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

在这里插入图片描述

AMBA-CHI协议详解(一)- Introduction
AMBA-CHI协议详解(二)- Channel fields / Read transactions
AMBA-CHI协议详解(三)- Write transactions
AMBA-CHI协议详解(四)- Other transactions
AMBA-CHI协议详解(五)- Transaction identifier fields
AMBA-CHI协议详解(六)- Transaction identifier field flows
AMBA-CHI协议详解(七)- Ordering
AMBA-CHI协议详解(八)- Address, Control, and Data
AMBA-CHI协议详解(九)- Data transfer
AMBA-CHI协议详解(十)- Retry
AMBA-CHI协议详解(十一)- Network Layer
AMBA-CHI协议详解(十二)- Cache line states
AMBA-CHI协议详解(十三)- Read transactions and Cache line states
AMBA-CHI协议详解(十四)- Dataless transactions
AMBA-CHI协议详解(十五)- Write transactions
AMBA-CHI协议详解(十六)- Combined Write/Atomic transactions
AMBA-CHI协议详解(十七)- Snoop request types
AMBA-CHI协议详解(十八)- Response types
AMBA-CHI协议详解(十九)- Cache state transitions at a Requester
AMBA-CHI协议详解(二十)- Cache state transitions at a Snoopee
AMBA-CHI协议详解(二十一)- Hazard conditions
AMBA-CHI协议详解(二十二)- Read transaction flows
AMBA-CHI协议详解(二十三)- Dataless transaction flows
AMBA-CHI协议详解(二十四)- Write transaction flows/Atomic transaction flows
AMBA-CHI协议详解(二十五)- Stash transaction flows/Hazard handling examples

文章目录

    • 5.5 Stash transaction flows
      • 5.5.1 Write with Stash hint
      • 5.5.2 Independent Stash request
    • 5.6 Hazard handling examples
      • 5.6.1 CopyBack-Snoop hazard at RN-F
      • 5.6.2 Request hazard at HN-F
      • 5.6.3 Read - CopyBack or Dataless - CopyBack hazard at HN-F
      • 5.6.4 HN-F race hazard: Request and CompAck


5.5 Stash transaction flows

本节展示了Stash transaction的示例互连协议流程:

5.5.1 Write with Stash hint

图中显示了带Data Pull的WriteUniqueStash事务流程的示例。
在这里插入图片描述

  1. 请求节点向 HN-F 发送一个WriteUniqueFullStash请求,stash目标标识为 RN-F1(由StashNID指示)。
    通常,请求的请求节点是 RN-I。
  2. HN-F 向 RN-F1 发送 SnpMakeInvalidStash,并向 RN-F2 发送 SnpUnique。
  3. RN-F1 和 RN-F2 向 HN-F 发送 SnpResp 响应。RN-F1 的窥探响应还包括一个读取请求,即Data Pull。
  4. HN-F 将 RN-F1 的读取请求视为ReadUnique,并向 RN-F1 发送合并的 CompData。
    CompData 响应包括请求节点写入的数据。
  5. RN-F1 向 HN-F 发送 CompAck 以完成读取事务。

5.5.2 Independent Stash request

下图显示了一个带有Data Pull事务流的 StashOnce 示例。
在这里插入图片描述

  1. 请求节点向 HN-F 发送 StashOnceShared 请求,stash目标标识为 RN-F1。
  2. HN-F在为接收到的请求建立处理顺序后发送Comp响应,以确保在向稍后从任何请求者收到的同一地址请求之前处理该请求。
  3. HN-F 向 RN-F1 发送 SnpStashShared 侦听请求,并向 SN-F 发送ReadNoSnp以获取数据。
  4. RN-F1 向 HN-F 发送 SnpResp_I_Read 响应。
  5. HN-F 将来自 RN-F1 的读取请求视为 ReadNotSharedDirty,并向 RN-F1 发送合并的 CompData。
  6. RN-F1 向 HN-F 发送 CompAck 以完成读取事务。

5.6 Hazard handling examples

本节展示了如何在请求者处处理 CopyBack-Snoop 请求的Hazard条件(冲突),以及如何在 HN-F 处处理各种请求和Snoop请求的Hazard条件。

5.6.1 CopyBack-Snoop hazard at RN-F

下图显示了一个对RN-F的Snoop请求,该请求在时间C处Hazard了一个待处理的CopyBack请求。
在这里插入图片描述

  1. 在时间C:
    • SnpShared事务忽略了该Hazard并读取了缓存行数据。
    • 缓存行状态从UD更改为SC。
  2. 在时间D:
    • CopyBack的CompDBIDResp被发送到RN-F0。
    • RN-F0返回一个CopyBackWrData_SC响应。
    • 缓存行状态从SC更改为I。
    数据在一致性方面是clean的,不需要发送到互连以确保正确的功能。
    然而,协议要求CopyBack流程在snoop hazard的情况下保持一致。
    WriteData响应中的缓存行状态为SC,因为在发送WriteData响应时缓存行的状态就是SC。

注意:
• 对于与未完成的Evict发生冲突的Snoop请求,可以接收到的响应必须是SnpResp_I。
• 在对同一地址的Snoop请求的Snoop响应待处理时,唯一可以接收到的CopyBack请求的响应是RetryAck。这包括数据(如果适用)。

下图展示了一个Snoop请求与未完成的CopyBack请求发生冲突的进一步示例。 在这个示例中,Snoop请求是由于来自RN-F1的ReadOnce请求生成的SnpOnce请求。SnpOnce请求接收到带有Snoop响应的数据副本,但不改变缓存行状态。
在这里插入图片描述

5.6.2 Request hazard at HN-F

如果对同一缓存行的多个请求在 HN-F 处理,则 HN-F 可以以任意顺序选择下一个请求。 例外情况是当两个请求有排序要求并且来自同一来源时,必须要保证顺序。

下图展示了一个示例,其中一个ReadShared和一个ReadUnique针对同一缓存行,几乎同时到达HN-F。
在这里插入图片描述

  1. 在时间A:
    • 来自RN-F0的ReadUnique到达,并对来自RN-F2的ReadShared请求造成hazard,而HN-F已经发送了嗅探请求。
    • ReadUnique的处理在HN-F处被阻塞。
  2. 在时间B:
    • HN-F已完成来自RN-F2的ReadShared事务请求。
    • ReadShared事务被视为完成,HN-F解除对来自RN-F0的ReadUnique事务请求的阻塞。
    除了ReadNoSnp,如果图中显示的两个事务被任何读取请求类型或无数据请求类型替换,则流程类似:
    • 当以下两个条件都为真时,未使用 DMT 或 DCT 或分离的 Comp 和数据响应的读取事务请求在 HN-F 处完成:
    — 所有 CompData 已发送,并且(如适用)已收到 CompAck。 仅对在原始请求消息中断言 ExpCompAck 的事务要求 CompAck。
    — 如果需要,内存更新已完成。

5.6.3 Read - CopyBack or Dataless - CopyBack hazard at HN-F

在 HN-F 处,Read or Dataless请求与 CopyBack 请求之间的hazard 处理方式类似上面描述的Read-Read hazard

下图显示了在大约相同时间到达 HN-F 的ReadShared和WriteBack对同一缓存行的情况。
在这里插入图片描述

  1. 在时间A:
    • WriteBack在HN-F处遇到hazard条件。hazard的原因是一个已经在进行中的ReadShared事务。
    • hazard检测导致WriteBack被阻塞。
    • ReadShared事务接收到带有Snoop响应的数据,并且必须在将数据发送给请求者的同时更新内存。
  2. 在时间B:
    • WriteBack被解除阻塞,因为HN-F已将数据响应发送给请求者,并且为ReadShared事务向内存发送了WriteData响应。
    如果ReadShared请求在HN-F开始处理WriteBack请求后到达HN-F,则ReadShared请求将在WriteBack请求完成之前被阻塞。
    当以下两个条件都为真时,CopyBack请求在HN-F处完成:
    • 收到与CopyBack请求对应的数据消息。
    • 如果必要,内存更新将完成。

5.6.4 HN-F race hazard: Request and CompAck

Completion后,请求可能会静默地将缓存行从缓存中驱逐,并生成另一个对同一地址的请求(即相同的Txnid)。例如:

  1. 重新生成的请求(下图Req2)在与早期Req1请求相关联的 CompAck 响应之前到达 HN-F。
  2. HN-F 检测到地址Hazard,并在收到 CompAck 响应之前阻止新请求的处理。
    在这里插入图片描述

在这种情况下,当 CompAck 响应到达 HN-F 时,它将从 HN-F 中解除分配先前的请求,并解除对新请求处理的阻塞。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/36430.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【RabbitMQ】RabbitMQ的基本架构是什么?包括哪些核心组件?

RabbitMQ基于AMQP协议实现,由多个核心组件组成,确保消息的可靠传递。 Rabbit的架构图: 1.RabbitMQ的基本架构: 1.核心组件: 1.Producer(生产者): 发送消息到RabbitMQ。 2.Exchange(交换机):接…

【PCB工艺】基础:电子元器件

电子原理图(Schematic Diagram)是电路设计的基础,理解电子元器件和集成电路(IC)的作用,是画好原理图的关键。 本专栏将系统讲解 电子元器件分类、常见 IC、电路设计技巧,帮助你快速掌握电子电路…

Html label标签中的for属性(关联表单控件:将标签与特定的表单元素(如输入框、复选框等)关联起来;提高可用性;无障碍性)

文章目录 示例代码for属性含义完整代码示例 示例代码 <div class"form-group"> <!-- 表单组&#xff0c;包含省份输入框和标签 --><label for"province">省份名称&#xff1a;</label> <!-- 省份输入框的标签 --><input…

S32K144外设实验(二):ADC单通道单次采样(软件触发)

文章目录 1. 概述1.1 理论回顾1.1.1 时钟系统1.1.2 采样通道1.2 实验目的2. 配置与代码编写1. 概述 1.1 理论回顾 S32K144的ADC应该说是特别灵活,笔者采用循序渐进的方式来学习使用这个很重要的外设。 在《入门笔记系列》专栏中对用户手册进行了翻译和解读,这里在回顾一下A…

进程控制~

一.进程控制 1.进程创建 我们可以通过./cmd来运行我们的程序&#xff0c;而我们运行的程序就是bash进程常见的子进程。当然我们也可以通过fork()系统调用来创建进程。 NAME fork - create a child process SYNOPSIS #include <unistd.h> pid_t fork(void…

经历过的IDEA+Maven+JDK一些困惑

注意事项&#xff1a;由于使用过程中是IDEA绑定好另外2个工具&#xff0c;所以报错统一都显示在控制台&#xff0c;但要思考和分辨到底是IDEA本身问题导致的报错&#xff0c;还是maven导致的 标准配置 maven Java Compiler Structure 编辑期 定义&#xff1a;指的是从open pr…

将bin文件烧录到STM32

将bin文件烧录到STM32 CoFlash下载生成hex文件hex2bin使用下载bin到单片机 CoFlash下载 选择需要安装的目录 在Config中可以选择目标芯片的类型 我演示的是 stm32f103c8t6 最小系统板 Adapter&#xff1a;烧录器类型 Max Clock&#xff1a;下载速度 Por&#xff1a;接口类型&am…

硬件基础(5):(2)二极管分类

文章目录 &#x1f4cc; 二极管的分类与详细介绍1. **整流二极管&#xff08;Rectifier Diode&#xff09;**特点&#xff1a;选型依据&#xff1a;补充说明&#xff1a; 2. **快恢复二极管&#xff08;Fast Recovery Diode&#xff09;**特点&#xff1a;选型依据&#xff1a;…

【MySQL】MySQL如何存储元数据?

目录 1.数据字典的作用 2. MySQL 8.0 之前的数据字典 3. MySQL 8.0 及之后的数据字典 4.MySQL 8 中的事务数据字典的特征 5.数据字典的序列化 6. .sdi文件的作用&#xff1a; 7..sdi的存储方式 在 MySQL 中&#xff0c;元数据&#xff08;Metadata&#xff09; 是描述数…

瑞萨RA系列使用JLink RTT Viewer输出调试信息

引言 还在用UART调试程序么?试试JLINK的RTT Viewer吧!不需占用UART端口、低资源暂用、实时性高延时微秒级,这么好的工具还有什么理由不用了! 目录 一、JLink RTT Viewer 简介 二、软件安装 三、工程应用 3.1 SEGGER_RTT驱动包 3.2 手搓宏定义APP_PRINT 3.3 使用APP_…

Ranger 鉴权

Apache Ranger 是一个用来在 Hadoop 平台上进行监控&#xff0c;启用服务&#xff0c;以及全方位数据安全访问管理的安全框架。 使用 ranger 后&#xff0c;会通过在 Ranger 侧配置权限代替在 Doris 中执行 Grant 语句授权。 Ranger 的安装和配置见下文&#xff1a;安装和配置 …

LabVIEW烟气速度场实时监测

本项目针对燃煤电站烟气流速实时监测需求&#xff0c;探讨了静电传感器结构与速度场超分辨率重建方法&#xff0c;结合LabVIEW多板卡同步采集与实时处理技术&#xff0c;开发出一个高效的烟气速度场实时监测系统。该系统能够在高温、高尘的复杂工况下稳定运行&#xff0c;提供高…

【系统架构设计师】操作系统 - 特殊操作系统 ③ ( 微内核操作系统 | 单体内核 操作系统 | 内核态 | 用户态 | 单体内核 与 微内核 对比 )

文章目录 一、微内核操作系统1、单体内核 操作系统2、微内核操作系统 引入3、微内核操作系统 概念4、微内核操作系统 案例 二、单体内核 与 微内核 对比1、功能对比2、单体内核 优缺点3、微内核 优缺点 一、微内核操作系统 1、单体内核 操作系统 单体内核 操作系统 工作状态 : …

人工智能之数学基础:线性方程组

本文重点 线性方程组是由两个或两个以上的线性方程组成的方程组,其中每个方程都是关于两个或两个以上未知数的线性方程。 记忆恢复 我们先从小学学习的线性方程组找到感觉 解答过程: 将第二个方程乘以2,得到: 2x−2y=2 将第一个方程减去新得到的方程,消去x: (2x+y)−…

​第十一届传感云和边缘计算系统国际会议

重要信息 时间地点&#xff1a;2025年4月18-20日 中国-珠海 会议官网&#xff1a;www.scecs.org 简介 第十一届传感云和边缘计算系统 (SCECS 2025&#xff09;将于2025年4月18-20日在中国珠海召开。将围绕“传感云”、“边缘计算系统”的最新研究领域&#xff0c;为来自国…

MDM设备管控,企业移动设备管理方案

目录&#xff1a; 目录 目录&#xff1a; 1. MDM&#xff1a;含义与定义 2. MDM如何工作&#xff1f; 3. BYOD与MDM&#xff1a;挑战与解决方案 4. 移动设备管理的主要优势 5. 移动设备管理的基本要素 6. 移动设备管理最佳实践 --地平线-- 移动设备管理 (MDM)历经多年…

S32k3XX MCU时钟配置

今天想从头开始配置S32K312中EB中的MCU模块&#xff0c;以下是我的配置思路与理解。 关键是研究明白&#xff0c;这些频率是如何通过一个总时钟&#xff0c;一步步分频得到的。 参考时钟&#xff0c;供外设模块使用&#xff0c;不同外设需要配置合理的参考时钟。 clock genera…

GitHub 超火的开源终端工具——Warp

Warp 作为近年来 GitHub 上备受瞩目的开源终端工具&#xff0c;以其智能化、高性能和协作能力重新定义了命令行操作体验。以下从多个维度深入解析其核心特性、技术架构、用户评价及生态影响力&#xff1a; 一、背景与核心团队 Warp 由前 GitHub CTO Jason Warner 和 Google 前…

SpringBoot 第二课(Ⅰ) 整合springmvc(详解)

目录 一、SpringBoot对静态资源的映射规则 1. WebJars 资源访问 2. 静态资源访问 3. 欢迎页配置 二、SpringBoot整合springmvc 概述 Spring MVC组件的自动配置 中央转发器&#xff08;DispatcherServlet&#xff09; 控制器&#xff08;Controller&#xff09; 视图解…

八股学习-JUC java并发编程

本文仅供个人学习使用&#xff0c;参考资料&#xff1a;JMM&#xff08;Java 内存模型&#xff09;详解 | JavaGuide 线程基础概念 用户线程&#xff1a;由用户空间程序管理和调度的线程&#xff0c;运行在用户空间。 内核线程&#xff1a;由操作系统内核管理和调度的线程&…