Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Research Collaboration and Enablement
    • DesignStart
    • Education Hub
    • Innovation
    • Open Source Software and Platforms
  • Forums
    • AI and ML forum
    • Architectures and Processors forum
    • Arm Development Platforms forum
    • Arm Development Studio forum
    • Arm Virtual Hardware forum
    • Automotive forum
    • Compilers and Libraries forum
    • Graphics, Gaming, and VR forum
    • High Performance Computing (HPC) forum
    • Infrastructure Solutions forum
    • Internet of Things (IoT) forum
    • Keil forum
    • Morello Forum
    • Operating Systems forum
    • SoC Design and Simulation forum
    • 中文社区论区
  • Blogs
    • AI and ML blog
    • Announcements
    • Architectures and Processors blog
    • Automotive blog
    • Graphics, Gaming, and VR blog
    • High Performance Computing (HPC) blog
    • Infrastructure Solutions blog
    • Innovation blog
    • Internet of Things (IoT) blog
    • Operating Systems blog
    • Research Articles
    • SoC Design and Simulation blog
    • Tools, Software and IDEs blog
    • 中文社区博客
  • Support
    • Arm Support Services
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • Community Help
  • More
  • Cancel
中文社区
中文社区
中文社区博客 扩展系统一致性 - 第 1 部分 - 缓存一致性基本信息
  • Blogs
  • Forum
  • 视频和文件
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
  • New
中文社区 requires membership for participation - click to join
More blogs in 中文社区
  • ARM中国大学计划博客

  • Arm新闻

  • 中文mbed博客

  • 中文社区博客

  • 恩智浦汽车电子MCU讨论区博客

 

Tags
  • AMBA
  • chinese
  • cache_coherency
  • ACE
  • cache_coherence
  • amba4
  • 中文
  • interconnect
  • cci-400
  • coherency
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

扩展系统一致性 - 第 1 部分 - 缓存一致性基本信息

Song Bin 宋斌
Song Bin 宋斌
February 24, 2015
2 minute read time.

原文地址:Extended System Coherency - Part 1 - Cache Coherency Fundamentals

原作者:neilparris

简介

TechCon 2013 的主题是“智能互联”,而在许多方面,硬件系统一致性是 SoC 中智能互联的一个重要部分。我在今年的演讲“移动等平台的扩展系统一致性”中介绍了缓存一致性的基本信息,探讨了相关实施,也研究了一些用例。 本文是系列博文中的第一篇,首先介绍缓存一致性的基本信息。

那么“一致性”的真正内涵是什么?01.png

我们先回到起点,了解一致性意味着什么。 一致性意味着确保系统中所有处理器或总线主控器看到相同的内存视图。 例如,如果我有一个处理器创建数据结构,再传递到 DMA 引擎以移动它,那么处理器和 DMA 必须看到相同的数据。 如果该数据曾在 CPU 中缓存过,而 DMA 从外部 DDR 中读取,那么 DMA 将读取到过时、陈旧的数据。

维护一致性的机制有三种:

·        禁用缓存是最简单的机制,但可能牺牲大量 CPU 性能。 为获得最高的性能,处理器采用管线结构以在高频率上运行,并从延迟性非常低的缓存运行。 数据缓存可以被多次访问,从而大大提高性能,同时减少 DRAM 访问次数并降低功耗。 将数据标记为“非缓存”可能会影响性能和功耗。

·        软件管理一致性是数据共享问题的传统解决方案。 此处软件通常指的是设备驱动程序,它们必须从缓存中清理或清空脏数据,使旧数据失效,从而与系统中的其他处理器或主控器实现共享。 这将占用处理器周期、总线带宽和功耗。

·        硬件管理一致性提供可简化软件的替代方式。 使用这一解决方案时,任何标记为“共享”的缓存数据将始终自动保持最新。 该共享域中的所有处理器和总线主控器看到完全相同的值。

软件一致性的挑战

缓存将外部内存内容存储到靠近处理器的位置,从而缩短访问延迟并降低功耗。 片上内存访问的功耗要远低于外部 DRAM 访问。

软件管理一致性通过两个主要机制管理缓存内容:

·         缓存清理(清空):

o    如果缓存中存储的任何数据被修改,它会标记为“脏”,必须在未来某一时点写回到 DRAM。 这种清理或清空缓存的过程将强制脏数据写入到外部内存。

·         缓存失效:

o    如果处理器拥有数据的本地副本,但外部代理更新了主内存,那么缓存内容将过期或变得“陈旧”。 在读取这一数据前,处理器必须从缓存删除陈旧的数据,这称为“失效”(缓存线标记为无效)。 例如,某一内存区域用作网络流量的共享缓冲区,网络流量可能会被网络接口 DMA 硬件更新;想要访问这一数据的处理器必须先使任何陈旧副本失效后才能读取新的数据。

挑战 1: 软件复杂性

来自应用处理器供应商的一位系统架构师的声音:

“50% 的调试时间花在了软件一致性问题上,因为它们难以发现和查明”

软件一致性难以进行调试,而缓存清理和失效必须在正确的时间执行。 如果过于频繁,这会浪费功耗和 CPU 资源。 如果频率太低,它将导致数据陈旧,并可能引起不可意料的应用程序行为甚至崩溃。 对此进行调试的难度很高,因为偶尔会引起数据损坏。

“我们希望通过硬件一致性连接更多设备,以简化软件并加快产品计划”

上述话语来自某一应用处理器供应商,他们寻求在一致互联结构中连接更多的硬件加速器和接口,帮助缩短新产品的上市时间。

来自网络和调制解调器合作伙伴的声音:

“我们软件部门中只有少数人懂得处理器和无线电子系统之间共享数据所需的谨慎定时。 将此放大为强大百倍的软件团队是非常困难的!”

另一家制造配备 Cortex-A CPU 的调制解调器系统的合作伙伴也希望通过硬件一致性简化软件。

挑战 2: 性能和功耗

如果请求程序之间存在大量共享,软件缓存维护的代价就会很高,而且可能会限制性能。 例如,ARM 基准测试发现处理每一数据包标头的联网应用程序可能会将超过三分之一的 CPU 周期花在缓存维护上。 难点的一部分在于找出哪些数据需要进行维护。 在最糟糕的情形中,必须清空整个缓存内容,这可能会移走需要从 DRAM 读回的有用数据。

下表显示了硬件一致性与软件一致性 DMA 传输性能对比的简单示例。 在这一示例中,随着处理器缓存中脏数据量的增加(命中率),硬件一致性的性能也在提高。 这是因为,在拥有更多脏数据时,软件一致性版本将花费更多时间来清理缓存并使之失效。

02.png

将硬件一致性扩展到系统03.png

硬件一致性并非新概念。 实际上,ARM 对其的第一次实施是在 ARM11 MPCore 处理器中。 在这一处理器中,最多 4 个处理器核心集成到一个群集中,作为“对称多重处理器”(SMP) 运行,它们可以互相看到对方的 L1 缓存和共享 L2 缓存。 这一技术受到了所有最新 ARM Cortex 应用处理器的支持。

将硬件一致性扩展到系统需要一致总线协议。ARM 在 2011 年发布了 AMBA 4 ACE 规格,在流行的 AXI 协议基础上推出了“AXI 一致性扩展”。 完整的 ACE 接口允许处理器群集之间实现硬件一致性,并且允许 SMP 操作系统扩展到更多核心。 以两个群集为例,任何对内存的共享访问可以“监听”另一群集的缓存,以了解数据是否已在芯片上;如果没有,则从外部内存 (DDR) 中获取。

AMBA 4 ACE-Lite 接口的设计面向 IO(或单向)一致系统主控器,如 DMA 引擎、网络接口和 GPU。 这些设备可能没有自己的缓存,但可以从 ACE 处理器读取共享数据。 另外,它们可能也有缓存,但不缓存可共享的数据。

虽然硬件一致性可能为互联和处理器增加一些复杂性,但它可以大大简化软件,实现凭借软件一致性无法实现的应用。 例如,big.LITTLE 全局任务调度。

小结04.png

缓存一致性是共享数据时需要理解的重要概念。 禁用缓存可能会影响性能;软件一致性会增加开销和复杂性;而硬件一致性可以自动管理共享,从而简化软件。 AMBA 4 ACE 总线接口使硬件缓存一致性超越处理器群集范围,扩展到系统层面。

本系列博文中的下一篇将探索硬件一致性的实施,并且列举各种各样的应用,如 big.LITTLE 处理和 GPU 计算等移动应用,以及联网和服务器等企业应用。

单击此处阅读第 2 部分: 扩展系统一致性 - 第 2 部分 - 实施、big.LITTLE、GPU 计算和企业级应用

单击此处阅读第 3 部分: 扩展系统一致性 - 第 3 部分 - 性能提升和 CoreLink CCI-500 简介

Anonymous
中文社区博客
  • Arm A-Profile构架2022扩展

    Zenon Xiu (修志龙)
    Zenon Xiu (修志龙)
    原文:Arm A-Profile Architecture Developments 2022 - Architectures and Processors blog - Arm Community blogs - Arm Community  作者:Martin Weidmann翻译:修志龙(Zenon Xiu) 与arm构架授权和生态伙伴一起,arm持续演进其构架,开发新功能以满足现有和新市场的要求…
    • October 17, 2022
  • 深入理解 Arm A-profile的non-maskable interrupt -NMI

    Zenon Xiu (修志龙)
    Zenon Xiu (修志龙)
    原文: https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/a-profile-non-maskable-interrupts  翻译: 修志龙 Zenon Xiu Arm A-profile构架一个长久以来的局限性是:缺乏对non-maskable interrupt (NMI…
    • August 24, 2022
  • Arm A-Profile 构架2021扩展

    Zenon Xiu (修志龙)
    Zenon Xiu (修志龙)
    原文: https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-a-profile-architecture-developments-2021 Martin Weidmann September 8, 2021 翻译注释:Zenon Xiu Arm与arm构架授权公司及生态伙伴一起…
    • August 17, 2022