ARM一致性总线CMN600AE

这篇具有很好参考价值的文章主要介绍了ARM一致性总线CMN600AE。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. CMN600AE的介绍

        CoreLink CMN-600 Coherent Mesh Network 是基于Mesh拓扑结构,对外支持AMBA CHI/ACE-LITE等接口,内部改用路由结构转发数据,并提供硬件一致性和系统缓存,还支持多芯片互联。CMN600在T16FFC上可以做到2Ghz,另外AE版本增加了车规芯片的安全功能,总线内部采用EDC检查,接口采用的奇校验。

CMN-600AE具有以下特点:

功能安全合规性:该网络符合功能安全标准,例如ISO 26262(汽车电子领域的功能安全标准)或IEC 61508(工业自动化领域的功能安全标准)等。

高性能:CMN-600AE采用了先进的连通性算法和协议,以提供低延迟、高带宽和高吞吐量的数据传输。

可靠性:该网络具有内建的容错机制,能够在节点故障时自动重新路由数据流,确保系统的连通性和可靠性。

低功耗:CMN-600AE优化了功耗,可以在满足高性能需求的同时降低能源消耗。

它应用于整个soc之间的cache一致性

举个例子如下为一个CMN 2X2的mesh结构:

cmn600带ccix,arm开发

对DDR发起访问的master为CPU和GPU,CPU内部有自己的L1/L2/L3cache,当GPU发起DDR访问时,会通过HN-F节点去管理整个系统的cache一致性。

2. CHI协议简介

CHI协议是比较大的一块,对它理解的也不够深入就不展开讲了,这里就讲一些基本的概念。

2.1 CHI节点分类

cmn600带ccix,arm开发

SNOOP消息:是一种在高速缓存系统中用于通信和控制的消息。当一个处理器修改了缓存中的某个数据项时,它会发送一个Snoop消息给其他处理器,告知它们该数据项的状态发生了变化。其他处理器接收到Snoop消息后,根据消息中的信息更新自己的缓存状态,以保证缓存一致性。

在MESI协议中,当一个处理器修改了缓存中的数据项时,它会将该数据项的状态由Shared(共享)变为Modified(修改),然后向其他处理器发送Snoop消息,告知它们该数据项已被修改。其他处理器接收到Snoop消息后,如果它们也缓存了该数据项,并且数据项的状态是Shared,则会将状态变为Invalid(无效),表示自己的缓存中的数据已经过期。这样一来,当其他处理器再次访问该数据项时,就会从主内存中重新获取最新的数据,保证了缓存的一致性。

通过使用Snoop消息和缓存一致性协议,可以确保多个处理器或核心之间共享的数据在高速缓存中始终保持一致,避免了数据不一致的问题,提高了系统的性能和可靠性。

DVM消息:(Distributed Virtual Memory messages)DVM消息的作用是通知相关的硬件和软件组件,TLB中的某些条目已经无效或失效,需要进行相应的处理。这些消息可以触发TLB的刷新、更新或使其失效。通过DVM消息,系统可以确保TLB中的数据与实际的内存映射保持一致,并防止出现无效的地址转换。

2.2 CHI的消息路由之SAM(system address map table)表

cmn600带ccix,arm开发

如图1-1所示,当CPU发起一笔没有被cache的DDR访问时,RN节点通过SAM表中的映射关系,物理地址查找对应的HN-F节点, 当到达HN-F节点时,又通过SAM表查找到对应的SN-F/SBSX节点,最终到达DDR

配置SAM有如下约束:

• 每个RN/HN必须有自己SAM,且每个RN的节点SAM表需要配置成一致,每个HN节点的SAM表也需要配置成一致

• RN的sam表用于将物理地址映射到对应的HN 节点上

• HN的sam表用于将物理地址映射到对应DDR上

2.3 RN(CPU)发起访问的详细过程

cmn600带ccix,arm开发

• RN0根据内部的SAM知道要把请求发给HN0(TgtID是HN0,SrcID是RN0);

•HN0在通过内部的SAM知道要继续发给SN0(ReturnNID是RN0);

•SN0接收请求,返回数据(HomeNID是HN0,TgtID从HN0的ReturnNID而来);

•RN0接收到SN0的数据响应,返回CompAck给HN以结束此次transaction(TgtID是HN0,从HomeNID而来)

3. CMN 配置

3.1 RN-F/RN-D SAM表配置

配置memory地址RN到HN路由

cmn600带ccix,arm开发

cmn600带ccix,arm开发

3.2 配置路由的HN-F的node ID

cmn600带ccix,arm开发

举个例子:假如por_rnsam_sys_cache_grp_region0.region0_base_addr= 0xc000_0000 , por_rnsam_sys_cache_grp_hn_nodeid_reg0.nodeid_0 = 0x30 por_rnsam_sys_cache_grp_hn_nodeid_reg0.nodeid_1 = 0x40, 则说明RN-X发出去c000_0000开头的地址会路由到HN-F node=0x30,0x40两个node上面。

3.3 配置非一致性地址出口

cmn600带ccix,arm开发

配置方法和上面一致

4. CMN600AE的架构

4.1 CMN600AE的路由方式

cmn600带ccix,arm开发

        根据配置SAM来实现路由,根据2级mapping来实现,RN->HN根据RN SAM来实现,和HN->SN根据HN SAM来实现,CHI的协议中也是如此定义SAM的。

4.2 CMN600AE的双chip方案

cmn600带ccix,arm开发

        如图为CMN600AE的spec所描述的双chip方案,chip和chip之间的连接是根据PCIE所连接,PCIE与CMN600的网络的连接接口为CXS,对接的模块为CXG,用于CHI协议的转化为CCIX。

4.3 CMN600AE的qos机制

在mesh的架构中CMN600网络提高性能的方法:
1、mesh的架构层,通过多级的cache,以及设计HNF node可以去snoop cluster中的cache,提高性能
2、协议层,CHI协议中支持DMT、DCT、和prefetch功能提高性能
3、soc层,支持qos机制来提高性能,qos的value一共有4bit,值为0-15,值越高优先级越高

cmn600带ccix,arm开发

        在RN 的节点是qos发出的源头,如图所示,RN-D/RN-I的qos配置在该节点内,对应RNF节点来说配置在对应的XP节点内,qos的值支持以下机制配置:

  • 直接bypass
  • Latency regulation:根据每个包的延时来调整qos值
  • Period regulation:根据一段时间内包完成的延时来调整qos值
  • cmn600带ccix,arm开发
  • HNF内部对qos的处理:在HNF内部配置POCQ可以为32或者64个Entry,qos一共被分为4类HH/H/M/L优先级,如图设置32个Entry,1个固定的SFevict使用,其他给qos使用,配置的个数如下,当L的包收到5个后,会占5个entry,再来一个L的包会触发chi协议中的retry机制,来带M的qos,会选择空闲的15个entry内找一个来处理该包的数据。
    HNI/D的处理:来源高优先级的qos先处理,并且qos的值会直接透传到下一级。

5.术语

ATB(Advanced Trace Bus):For moving trace data around the chip,see CoreSight

ACE(AXI Coherency Extensions):Used in big LITTLE systems for smartphones,tablets,etc

CHI(Coherent Hub Interface):The highest performance,used in networks and servers文章来源地址https://www.toymoban.com/news/detail-795067.html

到了这里,关于ARM一致性总线CMN600AE的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式系统的一致性级别划分及Zookeeper一致性级别分析

    在谈到Zookeeper的一致性是哪种级别的一致性问题,以及CAP原则中的C是哪一种一致性级别时有些疑惑。 下面是大多数文章中提到的一致性级别 一致性(Consistency)是指多副本(Replications)问题中的数据一致性。可以分为强一致性、顺序一致性与弱一致性。 1.1 强一致性(Stric

    2024年04月12日
    浏览(58)
  • 深入理解高并发下的MySQL与Redis缓存一致性问题(增删改查数据缓存的一致性、Canal、分布式系统CAP定理、BASE理论、强、弱一致性、顺序、线性、因果、最终一致性)

    一些小型项目,或极少有并发的项目,这些策略在无并发情况下,不会有什么问题。 读数据策略:有缓存则读缓存,然后接口返回。没有缓存,查询出数据,载入缓存,然后接口返回。 写数据策略:数据发生了变动,先删除缓存,再更新数据,等下次读取的时候载入缓存,

    2024年03月20日
    浏览(47)
  • Redis 原理缓存过期、一致性hash、雪崩、穿透、并发、布隆、缓存更新策略、缓存数据库一致性

    redis的过期策略可以通过配置文件进行配置 redis会把设置了过期时间的key放在单独的字典中,定时遍历来删除到期的key。 1).每100ms从过期字典中 随机挑选20个,把其中过期的key删除; 2).如果过期的key占比超过1/4,重复步骤1 为了保证不会循环过度,导致卡顿,扫描时间上限

    2024年02月08日
    浏览(56)
  • 【Redis】缓存一致性

    读缓存 双检加锁 策略 采用 双检加锁 策略 多个线程同时去查询数据库的这条数据,那么我们可以在第一个查询数据的请求上使用一个 互斥锁来锁住它。 其他的线程走到这一步拿不到锁就等着,等第一个线程查询到了数据,然后做缓存。 后面的线程进来发现已经有缓存了,

    2023年04月24日
    浏览(55)
  • Flink 状态一致性

    状态一致性有三种级别: 最多一次 (AT-MOST-ONCE) : 只处理一次 , 遇到故障就会丢失 , 优点 : 处理快 至少一次 (AT-LEAST-ONCE) : 不会丢失数据 , 但存在重复数据 精确一次(EXACTLY-ONCE) : 不会丢失数据 , 也不会重复数据 实现要求 : 端到端 (end-to-end) 的状态一致性 : 数据源、流处理器、

    2024年02月11日
    浏览(44)
  • 如何保持数据一致性

    数据库和缓存(比如:redis)双写数据一致性问题,是一个跟开发语言无关的公共问题。尤其在高并发的场景下,这个问题变得更加严重。 以下是我无意间了解很好的文章,分享给大家。 通常情况下,我们使用缓存的主要目的是为了提升查询的性能。大多数情况下,我们是这

    2024年02月08日
    浏览(52)
  • 谈谈一致性哈希算法

    一致性哈希算法是1997年由麻省理工的几位学者提出的用于解决分布式缓存中的热点问题。大家有没有发现,我们之前介绍的例如快排之类的算法是更早的六七十年代,此时分布式还没有发展起来, 大家往往还在提高单机性能。但是九十年代开始,逐渐需要用分布式集群来解

    2024年02月07日
    浏览(55)
  • 一致性协议浅析

    Paxos 发明者是大名鼎鼎的 Lesile Lamport。Lamport 虚拟了一个叫做 Paxos 的希腊城邦,城邦按照议会民主制的政治模式制定法律。在 Lesile Lamport 的论文中,提出了 Basic Paxos、Multi Paxos、Fast Paxos 三种模型。 Client :系统外部角色,请求发起者,类比于民众。 Proposer :接收 Client 请求,

    2024年01月18日
    浏览(45)
  • 缓存一致性设计思路

    Spring注解使用,控制Redis缓存更新 缓存一致性问题是如何产生的? 双更新模式:操作不合理,导致数据一致性问题 “后删缓存”,能解决多数不一致 大厂高并发,“后删缓存”依旧不一致 如何解决高并发的不一致问题?延迟双删与闪电缓存 如何解决缓存击穿?读操作互斥

    2023年04月17日
    浏览(51)
  • 缓存数据一致性探究

    缓存是一种较低成本提升系统性能的方式,自它面世第一天起就备受广大开发者的喜爱。然而正如《人月神话》中的那句经典的“没有银弹”中所说,软件工程的设计没有银弹。 就像每一次发布上线修复问题的同时,也极易引入新的问题,自缓存诞生的第一天起, 缓存与数

    2024年02月16日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包