03-缓存一致性---提高性能和引入CoreLink CCI-500

news/2024/11/28 9:24:33/

引流关键词: bit.LITTLE,GPU,CCI,cache,缓存一致性,DSU

快速链接:
.
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈

  • 付费专栏-付费课程 【购买须知】:
  • 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈

在这里插入图片描述

相关链接:
01-缓存一致性—基础知识
02-缓存一致性—实现big.LITTLE、GPU 计算和企业应用
03-缓存一致性—提高性能和引入CoreLink CCI-500

目录

        • 1、硬件一致性和窥探
        • 2、Snoop Filter的介绍
        • 3、电源&功耗优势
        • 4、性能优势
        • 5、高度可扩展的解决方案
        • 6、内存带宽需求增加
        • 7、CoreLink CCI-500 提供更高的系统带宽
        • 8、Part of a Complete System
        • 9、总结
        • 10、参考

1、硬件一致性和窥探

缓存一致性的最简单实现是向所有处理器缓存广播监听以按需定位共享数据。当缓存收到监听请求时,它会执行标签数组查找以确定是否有数据,并相应地发送回复。
在这里插入图片描述
例如,在上图中,我们可以看到箭头显示了 big 和 LITTLE 处理器集群之间的监听,以及从 IO 接口到两个处理器集群的监听。访问任何共享数据都需要这些窥探,以确保它们的缓存是硬件缓存一致的。换句话说,要确保所有处理器和 IO 看到相同的内存视图。

对于大多数工作负载,由于侦听请求而执行的大多数查找将丢失,即它们无法在缓存中找到所请求数据的副本。这意味着许多侦听引起的查找可能是对带宽和能量的不必要使用。当然,我们已经消除了软件缓存维护的高得多的成本,但也许我们可以进一步优化它?

2、Snoop Filter的介绍

这就是窥探过滤器的用武之地。通过将窥探过滤器集成到互连中,我们可以维护处理器缓存内容的目录,并消除广播窥探的需要。

监听过滤器的原理如下:

  • 所有缓存共享内存的标签都存储在互连的目录中(snoop filter)
  • 所有共享访问都将在此监听过滤器中查找,该过滤器有两种可能的响应:
    HIT –> 数据在芯片上,提供了一个向量来指向包含数据的集群
    MISS –> 从外部存储器中取出
    在这里插入图片描述

3、电源&功耗优势

由于集成了监听滤波器,CoreLink CCI-500 与上一代互连相比,提供了内存系统节能。这种节能的驱动因素是执行一次中央监听查找而不是多次查找,并减少每次命中缓存的监听对外部存储器的访问。此外,它可以使处理器集群在监听过滤器响应一致性请求的同时更长时间地保持低功耗睡眠状态。

4、性能优势

移动系统通常包括每个处理器集群的异步时钟桥,跨这些桥进行通信会导致延迟。相反,与互连监听过滤器通信更快、更容易、功耗更低。这种减少的监听延迟有利于处理器性能,基准测试显示内存密集型处理器工作负载提高了 30%。这有助于使您的移动设备更快、响应更快,并加速视频编辑等生产力应用程序。

此外,通过减少窥探,系统中的处理器可以将其资源集中在处理性能上,而不是对窥探做出响应。实际上,这意味着用户将拥有可以提供更高性能同时需要更少功率的 SoC。

5、高度可扩展的解决方案

随着设计团队寻求释放更高的计算性能,许多市场都出现了多集群 SoC 的一致趋势。扩展到具有更多处理器集群的更高带宽系统将为监听过滤器带来更大的好处。事实上,当将性能扩展到两个处理器集群之外时,它变得至关重要。CoreLink CCI-500 具有高度可扩展性,支持 1 到 4 个 ACE 接口(例如 1 到 4 个处理器集群)的配置。虽然双集群 big.LITTLE 仍将是移动领域的标准,但互连可以支持未来拥有更多处理器或完全一致的 GPU 和加速器。CoreLink CCI-500 通过分布式虚拟内存 (DVM) 消息传输,完全支持处理器和共享虚拟内存之间完全硬件一致性的异构系统架构 (HSA) 概念。CoreLink CCI-400 自 2011 年以来就支持这一点,CoreLink CCI-500 对此进行了改进,具有更高的可扩展性和可配置性。

基础设施网络和服务器应用程序已经在处理器和 IO 之间拥有很高比例的共享内存访问;ARM CoreLink CCN Cache Coherent Network 系列产品已经包含集成的监听过滤器,以确保这些应用程序所期望的高性能和低延迟。CoreLink CCN 系列仍然是最高性能的一致性互连 IP,支持多达 12 个集群(48 个内核)、集成的 3 级系统缓存和超过 1GHz 的时钟速度。CoreLink CCI-500 针对移动和其他功率受限应用所需的性能和功率包络进行了优化。互补的CoreLink NIC-400 网络互连 提供 IO 相干请求者和成百上千的外设和接口所需的低功耗、低延迟“SoC 的其余部分”连接。

没有“一刀切”的互连,相反,ARM 拥有一系列针对每种应用的需求进行了优化的产品。

6、内存带宽需求增加

包括智能手机和平板电脑在内的移动设备的性能每一代都在提高;事实上,平板电脑正在取代许多笔记本电脑购买。SoC 性能的一个关键维度是内存带宽,而这受到屏幕分辨率、3D 游戏、多个更高分辨率的摄像头和超高分辨率外部显示器的推动。“Retina”级显示分辨率在移动设备上已经司空见惯,而超高清 4K 已经在高端电视上出现几年了。我们看到 4K 内容出现在移动设备中只是时间问题。

为了支持这种内存带宽的增加,SoC 供应商正在寻求最新的低功耗双倍数据速率 (LPDDR) 动态 RAM (DRAM) 技术。LPDDR3 是 2013 年消费设备中的成熟技术,而 LPDDR4 出现在 2014 年的一些设备中,并将在 2015 年继续提高其在移动和非移动应用程序中的采用率。每一代 LPDDR 都会降低电压,但会增加接口频率,最终结果是:更高的带宽和更低的每比特能量。单个 32 位 LPDDR4-3200 接口将提供 12.8GB/s,这是当今高端智能手机的典型特征。

7、CoreLink CCI-500 提供更高的系统带宽

对于移动设备,32 位内存通道很常见,从用于低成本入门智能手机的单通道,到用于高端智能手机的双通道,再到用于最高性能平板电脑的四通道。

CoreLink CCI-500 通过支持多达 4 个内存通道,提供高达 CoreLink CCI-400 峰值系统带宽的两倍。这可以让合作伙伴构建支持每秒 34GB 及以上的内存系统,从而实现高性能、高分辨率的平板电脑计算。当然,多个应用程序的可扩展性很重要,CoreLink CCI-500 可以配置 1 到 4 个内存通道以满足性能要求。

8、Part of a Complete System

ARM CoreLink 互连的最大优势之一是,它与我们的 Cortex 和 Mali 处理器产品一起开发、验证和优化,并具有合作伙伴期望的高质量水平。本周的发布还宣布了 Cortex-A72,ARM 的最高性能 Cortex 处理器,Mali-T880 GPU,我们最新的 Mali-V550 视频和 Mali-DP550 显示 IP 的高端配置以及用于 16 FinFet 的 Artisan 物理 IP。
在这里插入图片描述
为完善 SoC,ARM 还提供了一套完整的系统 IP,包括用于低功耗、低延迟、端到端连接到 SoC 其余部分的 CoreLink NIC-400 网络互连、用于 IO 虚拟化的 CoreLink MMU-500 系统 MMU 和CoreLink GIC-500 用于管理跨多个集群的中断,更不用说用于调试和跟踪的 CoreSight。所有这一切的核心是 CoreLink CCI-500 缓存相干互连。

9、总结

正如我们从企业应用程序中开始的许多其他计算功能中看到的那样,移动 SoC 正在迅速赶上跨芯片的共享流量。这证明移动计算能力仍在稳步发展,并融合了许多几年前才引入高级笔记本电脑的功能。移动设备现在本身就是高性能设备这一事实应该不足为奇

10、参考

Extended System Coherency - Part 3 – Increasing Performance and Introducing CoreLink CCI-500



http://www.ppmy.cn/news/409299.html

相关文章

wss 配置

打开宝塔配置文件 配置文件添加内容: map $http_upgrade $connection_upgrade {default upgrade; close; } # 这里的backend可以改成自己需要的名称,我自己用的是wss。 upstream wss {# 这里的localhost是映射本地服务器,也可以是外网ip…

高频题目总结

数组中的第 k 大的数字 class Solution:def findKthLargest(self, nums: List[int], k: int) -> int:n len(nums)def partitions(arr, l, r):base arr[l]while l < r:while l < r and arr[r] > base:r - 1arr[l] arr[r]while l < r and arr[l] < base:l …

指针(四)

文章内容&#xff1a; 1. 数组参数、指针参数 2. 函数指针 3. 函数指针数组 4. 指向函数指针数组的指针 5. 回调函数 文章内容 1. 数组参数、指针参数 地址需要指针接收&#xff0c;指针的地址需要二级指针接受,以此类推...... 1.1 一维数组传参 #include <stdio.…

【Linux之Shell脚本实战】检查Mysql数据库状态的shell脚本

【Linux之Shell脚本实战】检查Mysql数据库状态的shell脚本 一、脚本要求二、检查本地环境2.1 本地环境规划2.2 检查本地操作操作2.3 检查系统内核版本三、配置脚本注释模板3.1 编辑 .vimrc 文件3.2 检查模板生效情况四、编辑测试脚本4.1 编写mysql_check.sh脚本4.2 编写mysql_c…

国产MCU-CW32F030开发学习--按键检测

国产MCU-CW32F030开发学习–按键检测 bsp_key 按键驱动程序用于扫描独立按键&#xff0c;具有软件滤波机制&#xff0c;采用 FIFO 机制保存键值。可以检测 如下事件&#xff1a; 按键按下。 按键弹起。 长按键。 长按时自动连发。 我们将按键驱动分为两个部分来介绍&#xff…

【Java面试】Spring中的IOC和AOP

IOC/DI IOC:控制反转也叫依赖注入。利用了工厂模式 将对象交给容器管理&#xff0c;你只需要在spring配置文件总配置相应的bean&#xff0c;以及设置相关的属性&#xff0c;让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候&#xff0c;spring会把你在配置…

<Linux开发>驱动开发 -之-阻塞、非阻塞IO和异步通知

&#xff1c;Linux开发&#xff1e;驱动开发 -之-阻塞、非阻塞IO和异步通知 交叉编译环境搭建&#xff1a; &#xff1c;Linux开发&#xff1e; linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下&#xff1a; &#xff1c;Linux开发&#xff1e; -之-系统移植 uboot移…

Vue繁体简体转换

https://github.com/nk2028/opencc-js/blob/main/README-zh-CN.md