【ARM】CCI集成指导整理

目录

1.CCI集成流程

2.CCI功能集成指导

2.1CCI结构框图解释

Request concentrator

Transaction tracker

Read-data Network

Write-data Network

B-response Network

2.2 接口注意项

记录一下CCI500的ACE slave interface不支持的功能:

对于ACE-Lite slave interface来说:

对于AXI4 master interface:

将AXI4 master连接到CCI-500的ACE-Lite接口:

2.3CCI的系统级一致性

Domain signaling

Point of Serialization

WriteLineUnique 和 WriteUnique支持

2.4 Exclusive accesses


1.CCI集成流程

上述为推荐的集成流程,每个方面的技术细节这里暂时不展开了,涉及了ACE\AXI4\APB\Low-power interface\clk_rst\综合\DFT\验证等。

2.CCI功能集成指导

这是本次整理主要内容,涉及了CCI在不同case下会有的不同行为。这一章主要是总结一些AXI和ACE协议的需求。

结合之前的CCI500_execution_tb【ARM】CCI500_execution_tb-CSDN博客可以很容易理解上述的架构图。

2.1CCI结构框图解释
Request concentrator

请求集中器(RC)根据事务跟踪器(Transaction Tracker, TT)和ID跟踪器(ID Tracker, IDT)中的服务质量(Quality of Service, QoS)属性和占用水平(occupancy levels)来对请求进行仲裁。根据地址,请求随后进入两个TT分区中的一个。TT负责处理危险检查(hazard checking),生成窥探请求(snoop requests),并根据需要将请求发送到下游。每个从属接口都有一个IDT,它向TT提供排序要求。

Transaction tracker

对于shareable requests,TT访问窥探过滤器(snoop filter)以确定请求是否必须进行窥探或继续向下游发送。TT还向窥探过滤器发出分配和去分配请求,确保窥探过滤器始终包含最新信息。如果窥探过滤器在尝试分配时找不到空闲条目,它将通过发出CleanInvalidate窥探请求来释放一个条目。

Read-data Network

如果窥探过滤器指示数据可能被保存在上游缓存中,TT通过Snoop网络(Snoop Network, SN)向适当的ACE从属接口发出窥探请求。这些接口通过可选的流水线阶段和出口(egress)寄存器片进行访问。在窥探命中的情况下,SN通过读数据网络(Read-data Network, RN)将数据发送回原始主设备。

RN是一个全交叉互联,它将读数据从主接口传输到从属接口。

如果读响应不需要数据传输,TT通过读响应器(Read Responder, RR)发送读响应。例如,TT可能使用RR处理直接虚拟内存访问(Direct Virtual Memory access, DVM)消息或缓存维护(cache maintenance)操作。

Write-data Network

如果需要CCI生成的写操作,SN通过写数据网络(Write-data Network, WN)发送窥探数据。WN是一个全交叉互联,它将写数据从从属接口传输到主接口。

不可共享请求和导致窥探过滤器未命中的可共享请求通过请求分配器(Request Distributor, RD)发送到下游的主接口。为了防止跨流阻塞,RD只允许TT向具有空间的FIFOs的主接口发送请求。

B-response Network

在TT处理写请求并且RD允许请求向下游发送后,将路由信息发送到WN。这个路由信息允许写数据被发送。B响应网络(B-response Network, BN)将写响应传输到IDT。IDT将写响应发送到原始主设备,并在必要时重新排序以满足ID排序要求。

APB接口使您能够对CCI-500进行编程。APB接口连接到配置寄存器块(Configuration Register Block, CRB)和性能监控单元(Performance Monitoring Unit, PMU)。

P-Channel和Q-Channel提供时钟和电源控制。

2.2 接口注意项

当使用不是完全支持接口协议的master或slave时,需要做额外的logic去提供需要的值。

记录一下CCI500的ACE slave interface不支持的功能:

对于ACE-Lite slave interface来说:

也是不支持barrier transactions。与一般的ACE-Lite slave不同的是CCI的拥有AC和CR channel用来发送DVM messages。当连接不支持返回DVM message response的master,若CCI 发送DVM message会导致CCI deadlock住,所以建议将ACCHANNELEN tie 0来避免这个问题。

CCI可以设置可以接受的OT的大小。设置SIx_RW_MAX。

对于AXI4 master interface:

注意分为system interface和memory interface, address decoder用来做地址区分,fix从什么端口出。

将AXI4 master连接到CCI-500的ACE-Lite接口:

ACE-Lite 较 AXI4支持 硬件一致性缓存维护(cache maintenance). 所以如果想将AXI4 master连接到CCI500的ACE-Lite接口上需要注意如下事项。

PS:正常的ACE-Lite相比AXI4增加的接口如下:

因为AXI4没有AC等接口所以只能保持hardware coherency。AXI4->ACE-Lite的转换通过添加AxDOMAIN信号,并且确保其他的AXI4无法驱动的ACE-Lite接口tie off。下表声明如何将这些信号tie off。

CCI-500 的 ACE-Lite 从属接口支持可编程的可共享覆盖。因此,您可以为连接的设备配置适当的属性,使其可以是共享的,也可以是不共享的。

注意:

  • FIXED 突发传输、设备内存事务和 DVM 消息事务不受任何覆盖影响。
  • 如果一个主设备正在对可共享区域生成独占访问,它需要在其他主设备中增加额外的独占监视器。因此,如果它覆盖为可共享,CCI-500 将 AxLOCK 覆盖为正常,独占写入将失败

或者,如果需要共享和非共享流量的混合,则必须使用从属接口上的 AxDOMAIN 输入信号来标记这种混合。您可以基于以下内容对 AxDOMAIN 进行解码:

  • 地址,其中某些区域被视为可共享的,其他区域被视为非共享的。
  • ID,其中某些主设备或线程被视为可共享的。
  • USER 位。如果您使用 CoreLink NIC-400 网络互连来组合几个具有不同 AxDOMAIN 信号要求的 AXI 主设备,那么每个主设备都可以为其自己的事务生成自己的 AxDOMAIN 信号。然后,您可以使用 AxUSER 信号将这些信号通过互连路由,并将 AxUSER 输出连接到 CCI-500 ACE-Lite 从属接口的 AxDOMAIN 输入。

注意:

  • 当事务被标记为内部共享或外部共享时,根据 ACE 规范,其他属性有限制。以下表格显示了这些限制。

其余有一些AXI3连接ACE-Lite slave interface,ACE-Lite连接master interface暂时不更新。(有需要可以评论一下我再更新)

2.3CCI的系统级一致性
Domain signaling

 下图是AMBA中对AxDomain的解释       

CCI是被认为处于Inner和Outer domain中的。所以AxDomain处于Inner Shareable和Outer Shareable时可能会导致snoop transaction到连接的ACE master上,取决于snoop filter 的内容。又因为下游的端口都是AXI4,因此domain信息是不会传到下游去的。Cache maintenance 操作总是会终止于CCI-500。下表是CCI-500对AxDomain的处理。

Point of Serialization

与exclusive access有关。

在一致性系统中,每个可共享地址必须对所有能够访问该地址的主设备有一个单一的序列化点(Point of Serialization, PoS)。PoS也被称为一致性点(Point of Coherency, PoC)。

CCI-500包含两个PoS,每个事务跟踪器(Transaction Tracker, TT)分区一个。这些PoS覆盖由哈希算法确定的不同地址区域。所有进入PoS的可共享事务都会针对发往该分区的其他可共享事务的进展进行危险检查(hazard check)。

例如:

  1. 事务1,一个共享读取事务,通过了PoS。
  2. 事务2,一个与事务1具有相同地址的共享读取事务,进入了PoS。
  3. 事务2对事务1进行了危险检查,因为事务1尚未完成。
  4. 事务2仅在事务1完成后才继续进行。也就是说,当事务1收到RACK(Read Acknowledge)并且事务被接受进入CCI时。

注意: 为了维护一致性,如果一个代理以可共享的方式访问地址,所有代理都必须以可共享的方式访问它。此外,任何在主设备之间共享的可缓存地址都必须使用被标记为内部共享(Inner Shareable)或外部共享(Outer Shareable)的事务来访问。

WriteLineUnique 和 WriteUnique支持

CCI-500 处理 WriteLineUnique 和 WriteUnique 事务。 当它接收到一个 WriteLineUnique 事务时,CCI-500 会生成一个 MakeInvalid 窥探事务来使所有缓存中的cacheline失效。当 MakeInvalid 通过了 PoS(Point of Serialization)并且完成了其窥探事务时,CCI-500 会从其 AXI4 主接口发出一个 WriteNoSnoop 事务。 当它接收到一个 WriteUnique 时,CCI-500 会生成一个 CleanInvalid 窥探来清理和使所有主缓存中的相关cacheline失效。当 CleanInvalid 通过了 PoS 并且完成了其窥探事务时,CCI-500 会从其 AXI4 主接口发出一个 WriteNoSnoop 事务。 与任何 CleanInvalid 事务一样,CCI 生成的 WriteBack 事务可以优先于 WriteNoSnoop 事务。这个现象与仿真case一致。【ARM】CCI500_execution_tb-CSDN博客

为确保 CCI-500 中有足够的一致性处理时间,提供了写数据缓冲区。这些缓冲区允许链接的 AW 和 W 通道事务通过提供写数据存储在 AW 通道被处理时进入 CCI-500。 如果接收到的 WriteUnique 或 WriteLineUnique 事务与之前的 WriteUnique 或 WriteLineUnique 事务发生危险冲突,它会在 PoS 处被暂停。该事务在早期写入完成之前不会进展。如果事务仅与同一 ACELite 从属接口的早期事务发生危险冲突,它可以在早期窥探事务完成后进展。在这种情况下,事务可以在不必等待早期写入事务完成的情况下继续进行。然而,如果暂停事务的原因是为了防止其他事务饥饿,被暂停的事务在早期写入事务完成后才能继续。 任何 WriteUnique 或 WriteLineUnique 事务如果与除 WriteUnique 或 WriteLineUnique 之外的可共享事务发生危险冲突,都必须等待早期事务完成后才能进展。

2.4 Exclusive accesses

CCI-500 支持对可共享和不可共享位置的独占访问。 CCI-500 的独占访问支持符合 ACE 和 AXI4 协议所定义的标准。 注意: CCI-500 仅提供 PoS(Point of Serialization)独占监视器。主设备和从设备组件必须以符合 ARM® AMBA® AXI 和 ACE 协议规范,AXI3, AXI4, 以及 AXI4-Lite ACE 和 ACE-Lite 的方式提供额外的监视器。 ARM® AMBA® AXI 和 ACE 协议规范,AXI3, AXI4, 以及 AXI4-Lite ACE 和 ACE-Lite 仅允许在 ACE 接口上进行可共享的独占访问。有关所需 ACE 信号的信息,请参见规范。 以下事务与可共享位置的独占序列相关联:

  • 断言 ARLOCK 的 ReadClean。
  • 断言 ARLOCK 的 ReadShared。
  • 断言 ARLOCK 的 CleanUnique。

CCI-500 支持每个 ACE 主设备最多四个独占访问线程,并为安全和非安全事务设有单独的监视器。这意味着非安全事务不能影响安全事务,反之亦然。从属接口上的 ARID 信号的两个最低有效位区分独占线程。当与 ARM 处理器一起使用时,这些位标识群集中的每个处理器。在该线程的独占共享访问上设置监视器标志,并在来自不同独占线程的成功独占共享访问上重置。 如果处理器对其缓存以共享状态持有的存储位置执行 Store-Exclusive 指令,则必须在 ACE 接口上发出相应的独占 CleanUnique 事务。 当 CleanUnique 事务由 CCI-500 处理时:

  • 如果设置了适当的监视器,事务可能会通过。发送窥探并返回 EXOKAY 响应,除非它以 ERROR 响应命中。
  • 如果未设置适当的监视器,则认为事务失败。抑制窥探,并返回 OKAY 响应。

未完待续

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

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

相关文章

Java项目:基于SSM框架实现的中小型企业财务管理系统【ssm+B/S架构+源码+数据库+答辩PPT+开题报告+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的中小型企业财务管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单…

【分库】分库的核心原则

目录 分库的核心原则 前言 分区透明性与一致性保证 弹性伸缩性与容错性设计 数据安全与访问控制机制 分库的核心原则 前言 在设计和实施分库策略时,遵循一系列核心原则是至关重要的,以确保系统不仅能够在当前规模下高效运行,还能够随着…

集成excel工具:自定义导入回调监听器、自定义类型转换器、web中的读

文章目录 I 封装导入导出1.1 定义工具类1.2 自定义读回调监听器: 回调业务层处理导入数据1.3 定义文件导入上下文1.4 定义回调协议II 自定义转换器2.1 自定义枚举转换器2.2 日期转换器2.3 时间、日期、月份之间的互转2.4 LongConverterIII web中的读3.1 使用默认回调监听器3.2…

算法 —— 高精度

目录 加法高精度 两个正整数相加 两个正小数相加 两正数相加 减法高精度 两个正整数相减 两个正小数相减 两正数相减 加减法总结 乘法高精度 两个正整数相乘 两个正小数相乘 乘法总结 加法高精度 题目来源洛谷:P1601 AB Problem(高精&#x…

医疗器械FDA |FDA网络安全测试具体内容

医疗器械FDA网络安全测试的具体内容涵盖了多个方面,以确保医疗器械在网络环境中的安全性和合规性。以下是根据权威来源归纳的FDA网络安全测试的具体内容: 一、技术文件审查 网络安全计划:制造商需要提交网络安全计划,详细描述产…

循环结构(一)——for语句【互三互三】

文章目录 🍁 引言 🍁 一、语句格式 🍁 二、语句执行过程 🍁 三、语句格式举例 🍁四、例题 👉【例1】 🚀示例代码: 👉【例2】 【方法1】 🚀示例代码: 【方法2】…

转盘输入法

简介 转盘输入法,给你的聊天加点新意。它不用常见的九宫格或全键盘,而是把字母摆在圆盘上,一滑一滑,字就出来了,新鲜又直接。 触摸屏版本 当触屏输入法启动时,与200X年流行的按键手机相比,两者…

Profibus_DP转ModbusTCP网关模块连马保与上位机通讯

Profibus转ModbusTCP网关模块(XD-ETHPB20)广泛应用于工业自动化领域。例如,可以将Profibus网络中的传感器数据转换为ModbusTCP协议,实现数据的实时监控和远程控制。本文介绍了如何利用Profibus转ModbusTCP网关(XD-ETHP…

【安装记录】:安装破解 ideaIU-2024.1.4

1、官网下载安装包: https://www.jetbrains.com/idea/download/?sectionwindows 2、按照下图操作: 然后,自定义重启即可 3、破解参考这篇文章:https://www.exception.site/article/1727

java版的上门家政系统和PHP版的上门家政有什么区别?

Java版的上门家政系统和PHP版的上门家政系统主要在以下几个方面存在区别: 1. 开发语言和特性 Java版:基于Java语言开发,Java是一种编译型语言,具有面向对象、跨平台、高性能等特点。Java代码在编写后需要通过Java虚拟机&#xff…

九盾安防:如何调控叉车限速器的报警速度呢

在繁忙的物流仓储和制造业环境中,叉车是不可或缺的搬运设备。然而,其高速行驶也带来了潜在的安全隐患。为了确保作业人员和货物的安全,又车限速器的设置显得尤为关键。那么,如何调控叉车限速器的报警速度呢? 叉车限速器的速度调整…

Goland 通道

channel通道 目录 channel通道 channel介绍 channel基本使用 有缓存通道和无缓存通道的区别 通道的初始化,写入数据到通道,从通道读取数据及基本的注意事项 channel的关闭和遍历 channel的关闭 为什么关闭 如何优雅地关闭通道 channel的遍历 chan…

STM32智能仓储管理系统教程

目录 引言环境准备晶智能仓储管理系统基础代码实现:实现智能仓储管理系统 4.1 数据采集模块 4.2 数据处理与决策模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:仓储管理与优化问题解决方案与优化收尾与总结 1. 引言 智能仓储管理系统…

通过git将文件push到github 远程仓库

1.先git clone 代码地址 git clone htttp://github.com/用户名/test.git 2. 添加文件 例如:touch 1.txt 3.将文件添加到暂存区 git add 1.txt 4.提交 git commit -m "commit 1.txt" 5.与远程仓库建立关联 git remote add 远程仓库名 远程仓库…

uniapp内置组件scroll-view案例解析

参考资料 文档地址&#xff1a;https://uniapp.dcloud.net.cn/component/scroll-view.html 官方给的完整代码 <script>export default {data() {return {scrollTop: 0,old: {scrollTop: 0}}},methods: {upper: function(e) {console.log(e)},lower: function(e) {cons…

computed计算属性用法及方法对比

模板中的插值表达式虽然方便&#xff0c;但当要写复杂逻辑时就会变得臃肿&#xff0c;难以维护&#xff0c;遇上复杂逻辑时&#xff0c;推荐使用计算属性来描述以响应式状态的复杂逻辑。这里我们做个对比&#xff0c;先用表达式的方法进行计算&#xff0c;先把页面写好&#xf…

centos单机配置多个内网IP地址

centos单机配置多个内网IP地址 引配置1. 查看当前网络IP配置2. 打开网络配置目录3. 设置静态IP4. 编辑ifcfg-eno1:15. 重启网络配置 引 同一个局域网&#xff0c;但是对接的多个子系统使用了不同的网段&#xff0c;如一个系统主机IP地址是192.168.10.1&#xff0c;另一个系统主…

昇思25天学习打卡营第8天|模型权重保存与加载

打卡 目录 打卡 模型的两种保存形式 Checkpoint 中间表示IR 模型保存与加载 模型权重保存-例1 模型权重加载-例1 模型权重保存-例2 模型权重加载-例2 模型权重文件的空间占用计算-例 模型的两种保存形式 Checkpoint 权重参数文件 中间表示IR 中间表示&#xff08;…

罗技K380无线键盘及鼠标:智慧互联,一触即通

目录 1. 背景2. K380无线键盘连接电脑2.1 键盘准备工作2.2 电脑配置键盘的连接 3. 无线鼠标的连接3.1 鼠标准备工作3.2 电脑配置鼠标的连接 1. 背景 有一阵子经常使用 ipad&#xff0c;但是对于我这个习惯于键盘打字的人来说&#xff0c;慢慢在 ipad 上打字&#xff0c;实在是…

【人工智能】-- 迁移学习

个人主页&#xff1a;欢迎来到 Papicatch的博客 课设专栏 &#xff1a;学生成绩管理系统 专业知识专栏&#xff1a; 专业知识 文章目录 &#x1f349;引言 &#x1f349;迁移学习 &#x1f348;基本概念 &#x1f34d;定义 &#x1f34c;归纳迁移学习&#xff08;Induct…