一致性总线CMN600AE-ARM系列

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


前言

主要介绍一致性总线CMN600AE,根据arm官网的spec来概述其模块。


提示:以下是本篇文章正文内容,下面案例可供参考

1、CMN600AE的介绍

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

2、CMN600AE的feature点

cmn600,arm开发,经验分享

3、CMN600AE的架构

3.1 CMN600AE的路由方式

问题:基于mesh 架构的CMN600网络中是如何routing的?
cmn600,arm开发,经验分享
根据配置SAM来实现路由,根据2级mapping来实现,RN->HN根据RN SAM来实现,和HN->SN根据HN SAM来实现,CHI的协议中也是如此定义SAM的。

RN SAM的mapinng方式
cmn600,arm开发,经验分享
不同类型的地址段mapping:

  • gic的地址段:用于给gic分配地址段
  • Non-hash地址段:支持8个地址段,目标node可以为HN-I, HN HN-F,一般用于寄存器地址段
  • hash地址段:支持8个地址段,目标node为HN-F,HNF个数可以为2/4/8/16/32
  • Default id:默认的id为HN-D
    HN SAM的mapinng方式
    cmn600,arm开发,经验分享HHNF->SN,地址的mapping方式
  • 通过range 地址段来选择最终的tgtid的node
  • 对于有3个SN或者是6个SN是需要配置来选择最终的tgtid
  • 用于确定的SN来说只需要配置SN0的tagidN SAM来实现,CHI的协议中也是如此定义的
    cmn600,arm开发,经验分享cmn600,arm开发,经验分享

HNI->SN的mapping方式:
下游可以对接memory和device,对于memoey的空间,需要对应64byte大小内的地址段保序,对应device空间,可以配置多个device空间,每个region内需要保序

3.2 CMN600AE的双chip方案

cmn600,arm开发,经验分享
如图为CMN600AE的spec所描述的双chip方案,chip和chip之间的连接是根据PCIE所连接,PCIE与CMN600的网络的连接接口为CXS,对接的模块为CXG,用于CHI协议的转化为CCIX。
cmn600,arm开发,经验分享
如上图为对于双Chip下,对于mapping的配置方式。

3.3 CMN600AE的debug/trace/pmu功能

3.4 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,arm开发,经验分享在RN 的节点是qos发出的源头,如图所示,RN-D/RN-I的qos配置在该节点内,对应RNF节点来说配置在对应的XP节点内,qos的值支持以下机制配置:

  • 直接bypass
  • Latency regulation:根据每个包的延时来调整qos值
  • Period regulation:根据一段时间内包完成的延时来调整qos值
    cmn600,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的值会直接透传到下一级。

下图为qos典型的配置方法
cmn600,arm开发,经验分享文章来源地址https://www.toymoban.com/news/detail-764025.html

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

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

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

相关文章

  • 什么是一致性哈希?一致性哈希是如何工作的?如何设计一致性哈希?

    如果你有 n 个缓存服务器,一个常见的负载均衡方式是使用以下的哈希方法: 服务器索引 = 哈希(键) % N ,其中 N 是服务器池的大小。 让我们通过一个例子来说明这是如何工作的。如表5-1所示,我们有4台服务器和8个字符串键及其哈希值。 为了获取存储某个键的服务器,我们

    2024年02月06日
    浏览(22)
  • 从kafka如何保证数据一致性看通常数据一致性设计

    在数据库系统中有个概念叫事务,事务的作用是为了保证数据的一致性,意思是要么数据成功,要么数据失败,不存在数据操作了一半的情况,这就是数据的一致性。在很多系统或者组件中,很多场景都需要保证数据的一致性,有的是高度的一致性。特别是在交易系统等这样

    2024年02月19日
    浏览(21)
  • 分布式系统的一致性级别划分及Zookeeper一致性级别分析

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

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

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

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

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

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

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

    2024年02月07日
    浏览(25)
  • Redis 数据一致性

    当我们在使用缓存时,如果发生数据变更,那么你需要同时操作缓存和数据库,而它们两个又分属不同的系统,因此无法做到同时操作成功或失败,因此在并发读写下很可能出现缓存与数据库数据不一致的情况 理论上可以通过分布式事务保证同时操作成功或失败,但这会影响

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

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

    2024年02月08日
    浏览(22)
  • 缓存数据一致性探究

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

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

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

    2023年04月24日
    浏览(21)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包