AN 886: Intel® Agilex™ SoC器件设计指南

ID 683634
日期 1/22/2021
Public
文档目录

5.1.8.2.1. 系统级高速缓存一致性

表 26.  器件种类检查表
编号 是否完成? 检查表项目
1   考虑使用多少个主接口,以及使用那些主接口。
2   确定如何管理可高速缓存的访问。
考虑使用多少个主接口,以及使用那些主接口:
  • MPU
  • DMA
  • 具有主接口的外设
  • FPGA中连接HPS的主控。

    高速缓存一致性是了解何时必须在系统中多个主机之间共享数据的基础主题。在SoC器件环境下这些主控可以是MPU,DMA,带有主接口的外设和FPGA中连接HPS的主控。由于MPU包含1级和2级高速缓存控制器,因此比起系统中的主存储器,其可保存更多最新内容。HPS支持两种机制,以确保系统中的主控观察到一致的存储器视图:确保主存储器包含最新值,或者确保主控使用ACE-Lite接口访问基于目录的CCU架构。

    MPU将缓冲区约束为不可高速缓存,从而确保L1和L2高速缓存永远不会缓存数据。MPU还可访问可高速缓存的数据,以及将其转储到主存储器,或者在其他主控尝试访问该数据之前,将可高速缓存的数据复制到非可高速缓存缓冲器中。操作系统通常为上述两种保持高速缓存一致性的方式提供运行机制。

    系统中的主控一方面依靠MPU将数据放置到主存储器中而非将其缓存来访问相关数据;或者另一方面使系统中的主控通过CCU执行高速缓存访问,从而访问一致性数据。根据主控访问的存储器缓冲器大小来决定采用的运行机制。

    请参阅对接FPGA 部分

    了解更多信息。

指南:请确保通过CCU访问的数据适合1 MB L2高速缓存以避免过多系统颠簸。

由于L2高速缓存为1 MB,因此如果系统中的主控频繁访问超出1 MB的缓冲区,则会导致系统颠簸。

高速缓存颠簸是数据大小超出高速缓存的情况,从而导致高速缓存执行频繁驱逐并从主存储器预取数据。该颠簸情况会抵消高速缓存数据的性能优势。

在潜在颠簸情况下,使主控访问非高速缓存相关数据并允许MPU上运行的软件通过系统维护数据一致性将更有意义。

指南:MPU和系统主控之间共享的较小数据缓冲, 可考虑让系统主控执行高速缓存访问来避免高速缓存转储清除操作导致的开销。

如果系统中的主控需要访问更小的数据一致性模块,则需要考虑让MPU访问作为高速缓存的缓冲区,并且系统中的主控执行对数据执行高速缓存。通过FPGA到HPS桥接支持的ACE-Lite协议对CCU进行可缓存访问,以确保主控和MPU访问数据的相同副本。由于让MPU使用高速缓存缓冲,并且系统主控执行高速缓存访问,软件便不必再维持系统范围的一致性,从而确保MPU和系统主控都能观察到相同的数据副本。