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

文章目录

    • 4.1 Cache line states
      • 4.1.1 Empty cache line ownership
      • 4.1.2 Ownership of cache line with partial Dirty data
    • 4.2 Request types


4.1 Cache line states

  协议节点访问cache line时需要采取的操作取决于cache line的状态。协议定义了以下cache line状态:

I:Invalid
  ● Cache line不存在于cache中。

UC:Unique Clean
  ● Cache line只存在于此cache中。
  ● 相对于内存,cache line没有被修改。
  ● 可以在不通知其他cache的情况下修改cache line。(因为Cache line只存在于此cache中)
  ● 在响应请求的Snoop时,允许(但不要求)cache line行为:
   — 有要求时返回Home
   — 当snoop指示时(fwd),直接转发给Requester。

UCE:Unique Clean Empty
  ● Cache line只存在于此cache中。
  ● Cache line处于Unique状态,但所有数据字节都无效。
  ● 可以在不通知其他cache的情况下修改cache line。
  ● 在响应请求的Snoop时,cache line不能为:
   — 即使被要求,也不能返回Home
   — 即使是在snoop的指示的情况下,也不能直接转发给Requester。

UD:Unique Dirty
  ● Cache line只存在于此cache中。
  ● 相对于内存,cache line已被修改。
  ● 在evict时必须将cache line写回下一级缓存或内存。
  ● 可以在不通知其他cache的情况下修改cache line。
  ● 在响应请求的Snoop时,cache line:
   — 必须在被要求时返还至Home。
   — snoop指示时,期待将数据直接转发给Requester。

UDP:Unique Dirty Partial
  ● Cache line只存在于此cache中。
  ● Cache line是Unique的。cache line可能有部分有效的字节。
  ● 相对于内存,cache line已被修改。
  ● 当cache line被evict时,必须将其与下一级缓存或内存中的数据合并,以形成完整的有效cache line。
  ● 可以在不通知其他cache的情况下修改cache line。
  ● 为了响应请求的Snoop,cache line必须:
   — 返回至Home
   — 即使被指示,不直接转发给Requester。

SC :Shared Clean
  ● 其他缓存可能具有cache line的共享副本。
  ● 相对于内存,cache line可能被修改。(可能,因为不知道副本有无被修改)
  ● 该Cache不负责在evict时将cache line写回内存。
  ● 如果不使任何共享副本无效并获得Cache的唯一所有权,则无法修改cache line。
  ● 在响应请求的Snoop时,Cache line:
   — 如果未设置RetToSrc位,则要求不返回数据。
   — 如果设置了RetToSrc位,则期待返回数据。
   — 当窥探者指示时,期待将数据直接转发给请求者。

SD :Shared Clean
  ● 其他缓存可能具有cache line的共享副本。
  ● 相对于内存,cache line已被修改。
  ● 在evict时必须将cache line写回下一级缓存或内存。
  ● 如果不使任何共享副本无效并获得Cache的唯一所有权,则无法修改cache line。
  ● 在响应请求的Snoop时,Cache line:
   — 必须在被要求时归还。
   — 当窥探者指示时,期待将直接转发给请求者。

4.1.1 Empty cache line ownership

Empty cache line是指处于Unique状态的cache line,以防止存在该cache line的其他副本。
Empty cache line中没有有效的数据字节。cache line状态为UCE或UDP。

以下是Empty cache line所有权可能发生的示例:
  ● Requester可以在开始写操作之前获取空cache line,以节省系统带宽。
   期望写入cache line的Requester可以获得具有存储权限的空cache line,而不是获得cache line的有效副本。

  ● 如果Requester在请求存储权限时拥有cache line的副本,则Requester可以转换为空状态。在Requester获得存储权限之前,该cache line的副本无效。在请求完成时,这将导致Requester拥有一个具有存储权限的空缓存行。

4.1.2 Ownership of cache line with partial Dirty data

  一旦获得了没有数据的cache line的所有权,Requester就被允许(但不是必须)将数据存储到cache line。如果Requester修改了部分cache line,cache line将保持partially Unique Dirty。缓存线状态为UDP

4.2 Request types

协议请求分为以下几类:
  ● 对于读请求事务,向Requester提供一个数据响应。
  ● 对于Dataless请求事务,不向Requester提供任何数据响应。
  ● 对于写请求事务,数据来自Requester。
  ● 对于组合写请求事务,数据来自Requester,并执行缓存维护操作。
  ● 对于原子请求事务,数据来自Requester,并以某些请求类型向Requester提供数据响应。
  ● 对于Stash请求事务,可以在系统内搬移数据以提高性能。
  ● 其他请求事务:
   — 不涉及系统中的任何数据移动。
   — 可用于协助DVM维护。

下一节继续。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MATLAB第109期】基于MATLAB的带置信区间的RSA区域敏感性分析方法,无目标函数

【MATLAB第108期】基于MATLAB的带置信区间的RSA区域敏感性分析方法,无目标函数 参考第64期文章【MATLAB第64期】【保姆级教程】基于MATLAB的SOBOL全局敏感性分析模型运用(含无目标函数,考虑代理模型) 创新点: 1、采…

《外国服务区加油站模型:功能与美观的完美结合 caotu66.com》

这个外国服务区加油站模型在设计上独具特色,兼具实用性和美观性。 从整体布局来看,加油站位于服务区的显眼位置。加油站的顶棚采用了现代风格的设计,顶棚的颜色主要是黄色和蓝色,色彩鲜明且具有辨识度。顶棚下方有多个加油柱&…

mybatis-plus超详细讲解

mybatis-plus (简化代码神器) 地址:https://mp.baomidou.com/ 目录 mybatis-plus 简介 特性 支持数据库 参与贡献 快速指南 1、创建数据库 mybatis_plus 2、导入相关的依赖 3、创建对应的文件夹 4、编写配置文件 5、编写代码 …

数据结构(顺序表)JAVA方法的介绍

前言 在 Java 中,集合类(Collections)是构建高效程序的核心组件之一,而 List 接口作为集合框架中的重要一员,是一个有序、可重复的元素集合。与 Set 接口不同,List 保证了元素的顺序性,并允许存…

泊松编辑 possion editing图像合成笔记

开源地址: GitHub - kono-dada/Reproduction-of-possion-image-editing 掩码必须是矩形框

【Flink-scala】DataStream编程模型之状态编程

DataStream编程模型之状态编程 参考: 1.【Flink-Scala】DataStream编程模型之数据源、数据转换、数据输出 2.【Flink-scala】DataStream编程模型之 窗口的划分-时间概念-窗口计算程序 3.【Flink-scala】DataStream编程模型之窗口计算-触发器-驱逐器 4.【Flink-scal…

Linux实操篇-远程登录/Vim/开机重启

目录 传送门前言一、远程登录1、概念2、ifconfig3、实战3.1、SSH(Secure Shell)3.2、VNC(Virtual Network Computing)3.3、RDP(Remote Desktop Protocol)3.4、Telnet(不推荐)3.5、FT…

【计算机网络】期末考试预习复习|上

作业讲解 物理层作业 共有4个用户进行CDMA通信。这4个用户的码片序列为: A: (–1 –1 –1 1 1 –1 1 1);B: (–1 –1 1 –1 1 1 1 –1) C: (–1 1 –1 1 1 1 –1 –1);D: (–1 1 –1 –1 –1 –1 1 –1) 现收到码片序列:(–1 1 –…

CTFHub-ssrf

技能树--Web--SSRF 内网访问 开启题目 尝试访问位于127.0.0.1的flag.php吧 进入环境 根据提示输入即可 127.0.0.1/flag.php 伪协议读取文件 开启题目 尝试去读取一下Web目录下的flag.php吧 进入环境,根据提示输入 file:///var/www/html/flag.php 鼠标右键查看…

解决PyTorch模型推理时显存占用问题的策略与优化

在将深度学习模型部署到生产环境时,显存占用逐渐增大是一个常见问题。这不仅可能导致性能下降,还可能引发内存溢出错误,从而影响服务的稳定性和可用性。本文旨在探讨这一问题的成因,并提供一系列解决方案和优化策略,以…

Java从入门到工作3 - 框架/工具

3.1、SpringBoot框架结构 在 Spring Boot 或微服务架构中,每个服务的文件目录结构通常遵循一定的约定。以下是一个常见的 Spring Boot 服务目录结构示例,以及各个文件和目录的简要说明: my-service │ ├── src │ ├── main │ │…

电子应用设计方案-56:智能书柜系统方案设计

智能书柜系统方案设计 一、引言 随着数字化时代的发展和人们对知识获取的需求增加,智能书柜作为一种创新的图书管理和存储解决方案,能够提供更高效、便捷和个性化的服务。本方案旨在设计一款功能齐全、智能化程度高的智能书柜系统。 二、系统概述 1. 系…

2024 年贵州技能大赛暨全省第二届数字技术应用职业技能竞赛“信息通信网络运行管理员”赛项--linux安全题

Linux操作系统渗透测试 Nmap -sS -p- ip 扫描 这题有俩种做法,一种用3306端口,另一种用48119端口 用48119端口是最简单的做法 nc 连接这个端口如何修改root密码 ssh连接 这样我们就成功的拿到root权限 1.通过本地PC中渗透测试平台Kali对服务器场景进…

网格剖分算法 铺装填充算法效果

1.原图 图:原图 2.OpenCV提取轮廓 图:提取轮廓线 3.计算凸包和最小外围轮廓 图:计算凸包和最小包围轮廓 4.网格剖分效果 图:网格剖分效果 5.铺装填充效果 图:铺装算法效果 原图--》提取轮廓线--》计算最小外包轮廓--》…

JMeter配置原件-计数器

一、面临的问题: 由于本人的【函数助手对话框】中counter计数器每次加2,且只显示偶数(如下图所示),因此借助【配置原件-计数器】来实现计数功能。 如果有大佬知道解决方式,麻烦评论区解答一下,谢谢。 二、配置原件-c…

旋转花键VS传统花键:传动效率的革新

旋转花键与传统花键都是一种传动装置,用于将转动力传递给另一个轴。主要区别在于其结合了花键轴和滚珠丝杆的功能特点,通过滚珠在花键轴和花键套之间的滚动来实现旋转运动和直线运动的传递,以下是几个关键的差异点: 1、结构设计&a…

C++类模板的应用

template <class T> class mylist{ public: // 这是一个链表的节点 struct Link{ T val; Link* next; } 增 &#xff1a;insert(T val) 在链表中创建新节点&#xff0c;节点上保存的数据为 val 删&#xff1a;remove(T val) 移除链表中数据为 val 的节点 改: operator[](…

python学opencv|读取图像(十二)BGR图像转HSV图像

【1】引言 前述已经学习了opencv中图像BGR相关知识&#xff0c;文章链接包括且不限于下述&#xff1a; python学opencv|读取图像&#xff08;六&#xff09;读取图像像素RGB值_opencv读取灰度图-CSDN博客 python学opencv|读取图像&#xff08;七&#xff09;抓取像素数据顺利…

基于 mzt-biz-log 实现接口调用日志记录

&#x1f3af;导读&#xff1a;mzt-biz-log 是一个用于记录操作日志的通用组件&#xff0c;旨在追踪系统中“谁”在“何时”对“何事”执行了“何种操作”。该组件通过简单的注解配置&#xff0c;如 LogRecord&#xff0c;即可实现接口调用的日志记录&#xff0c;支持成功与失败…

如何在繁忙的生活中找到自己的节奏?

目录 一、理解生活节奏的重要性 二、分析当前生活节奏 1. 时间分配 2. 心理状态 3. 身体状况 4. 生活习惯 1. 快慢适中 2. 张弛结合 3. 与目标相符 三、掌握调整生活节奏的策略 1. 设定优先级 2. 合理规划时间 3. 学会拒绝与取舍 4. 保持健康的生活方式 5. 留出…