一、DSU是什么?

DSU (DynamIQ™ Shared Unit)的组成和功能:DSU 包括 L3 内存系统、控制逻辑和外部接口,用于支持 DynamIQ™集群。

DynamIQ™集群微体系结构整合了一个或多个核心与 DSU,形成一个按指定配置实现的集群。在宏单元实施过程中,可以选择和配置core。

集群可以以以下三种配置之一实现:

一组,具有相同微体系结构的核心。两组核心,其中每组具有不同的微体系结构。这种配置可能在 DynamIQ™ big.LITTLE™集群中使用。三组核心,其中每组具有不同的微体系结构。

二、DSU的各个组成部分

DSU的内部结构,包括缓存、一致性维护、接口配置以及调试支持等方面

L3 Cache(L3缓存):

L3 Cache 是DSU内的一部分,用于简化核心之间的进程迁移。部分核心可以配置为没有L2缓存,对于这些核心,共享的L3缓存被视为L2缓存。在整个文档中,术语'L3缓存'用于描述这个共享缓存。 Snoop Control Unit (SCU)(snoop控制单元): SCU用于维持核心和L3缓存之间的一致性。它包括一个 a snoop filter,以优化一致性维护操作。 Internal Interfaces to the Cores(核心的内部接口): 这些内部接口在宏单元实施期间配置,不直接可见。 External Interfaces to the SoC(与SoC的外部接口): 外部接口连接到SoC。 Core Configuration(核心配置): 每个核心可以配置为与DSU同步运行,共享时钟,或异步运行,具有独立时钟。 Microarchitecture Features and System Control Registers(微体系结构特性和系统控制寄存器): 与实施的核心相关的微体系结构特性和系统控制寄存器在附带核心的技术参考手册(TRMs)中描述。 DebugBlock: DSU配备了一个DebugBlock,主要目的是提供调试支持,帮助开发者在调试和分析软件时更有效地操作处理器核心。集成了嵌入式交叉触发器、调试寄存器,并支持在断电时进行调试。该调试块包括在调试电源域中所需的所有功能。DebugBlock 的存在提高了 DSU 的调试和分析能力,使得开发者能够更容易地理解、诊断和修复软件问题。这对于在复杂的嵌入式系统中进行开发和调试至关重要。

完整的调试功能: DebugBlock 包含了所有在调试过程中可能需要的功能,从捕获跟踪信息到检查寄存器状态等。这使得开发者能够更全面地了解系统的运行情况,有助于排除和分析问题。 支持断电调试: DebugBlock 提供对调试电源域的支持,允许在系统断电的情况下进行调试。这对于分析在低功耗状态下的问题非常重要,因为在这些状态下,系统的行为可能与正常操作时不同。 调试寄存器: DebugBlock 包含调试寄存器,用于捕获、存储和检查关键的系统状态和变量。这对于调试代码、追踪执行路径以及查找潜在问题非常有帮助。 Embedded Cross Trigger(嵌入式交叉触发器): DebugBlock 集成了嵌入式交叉触发器,这是一种用于协调多个调试事件和操作的机制。通过交叉触发器,开发者可以定义特定条件下触发调试操作,这对于捕捉复杂的调试场景非常有用。

三、DSU结构图

1.DSU结构图

2.DSU的流程:

四、DSU的feature list

AMBA ACE5 或 AMBA 5 CHI 主总线接口: DSU支持 AMBA ACE5 或 AMBA 5 CHI 主总线接口,这是一种用于高性能片上总线通信的标准接口协议。 可选的128位宽的 I/O  I/O-coherent Accelerator Coherency Port(ACP): 提供了一个可选的 I/O 一致性加速器一致性端口,宽度为128位。 可选的64位宽的设备外设端口: DSU 提供了一个可选的设备外设端口,宽度为64位。 支持40位、44位或48位物理地址的核心: DSU 支持带有40位、44位或48位物理地址的处理器core。 Arm®v8.2-A 或 Arm®v8.4-A 调试逻辑:

DSU 集成了 Arm®v8.2-A 或(适用于兼容核心的情况下) Arm®v8.4-A 调试逻辑,用于支持调试操作。 可靠性、可用性和可维护性(RAS)支持: DSU 提供了对可靠性、可用性和可维护性的支持,这是一种确保系统在运行时保持稳定和可管理的功能。 可选的统一的16路组相联 L3 缓存: DSU 提供了一个可选的统一的16路组相联 L3 缓存,用于提供更大的共享缓存。 64字节的缓存行: 缓存中的每一行都有64字节,这是缓存操作的基本单位。 缓存分区支持: DSU 支持缓存分区,使得可以将缓存划分为不同的部分,以满足特定的应用需求。 部分 L3 缓存断电支持:

提供了对 L3 缓存的部分断电支持,以降低功耗。 可选的缓存保护形式: DSU 提供了一个可选的缓存保护功能,采用错误纠正码(ECC)形式,用于提高缓存的可靠性。 Snoop Control Unit (SCU)(嗅探控制单元): 描述了 DSU 中的 Snoop Control Unit(嗅探控制单元)。SCU 通常用于维持核心和 L3 缓存之间的一致性,包括嗅探过滤器来优化一致性维护操作。 L3 memory system clocked at a rate synchronous to the external system interconnect or at integer multiples(L3内存系统的时钟频率): 描述了 L3 内存系统的时钟可以与外部系统互连同步,也可以以整数倍的频率运行。这意味着 L3 内存系统的时钟可以与系统互连的时钟同步,或者以系统互连时钟的整数倍运行。 Arm®v8.2-A or Arm®v8.4-A architecture cores supported(支持 Arm®v8.2-A 或 Arm®v8.4-A 架构核心): DSU 支持 Arm®v8.2-A 或 Arm®v8.4-A 架构的处理器核心。这表明 DSU 兼容这两种架构,可以与相应版本的 Arm 处理器核心协同工作。 Support for three types of core(支持三种类型的核心): 描述了 DSU 的支持范围,可以与三种不同类型的核心协同工作。这可能涉及到不同架构或配置的处理器核心。 Cores can be clocked at different frequencies(核心可以以不同频率运行): 提到了处理器核心可以以不同的频率运行。这表示 DSU 允许系统中的不同核心具有不同的时钟频率,这在一些应用中可以提供更大的灵活性,例如动态调整功耗或优化性能。

总体而言,这些功能使得 DSU 具备了在高性能嵌入式系统中处理共享缓存、总线通信、调试和可靠性,对不同类型核心的支持、内存系统时钟的配置灵活性以及与外部系统互连的协同能力。这对于处理复杂的计算和通信任务的处理器核心是至关重要的。

五、补充知识点

1)计算机缓存结构:

计算机系统中的层次化缓存层次结构通常由多个级别的缓存组成,这些级别包括L1缓存、L2缓存和L3缓存。每个级别的缓存都有不同的特性,例如容量、访问速度和成本。以下是一般的层次化缓存结构:

L1缓存(第一级缓存):

位置:通常与处理器核心紧密集成,位于核心内部。容量:相对较小,以KB为单位。访问速度:非常快,与处理器核心的时钟速度相匹配。作用:提供最快的数据访问,用于存储频繁使用的指令和数据。 L2缓存(第二级缓存):

位置:通常位于处理器核心和主内存之间。容量:比L1缓存大,以MB为单位。访问速度:比主内存快,但相对于L1缓存较慢。作用:扩展了缓存层次结构,提供更多的缓存空间,用于存储更多的指令和数据。 L3缓存(第三级缓存):

位置:通常位于多个处理器核心之间,是共享的。容量:更大,以MB或更大的单位为准。访问速度:相对于L2缓存和L1缓存较慢,但仍然比主内存快。作用:为多个处理器核心提供共享的缓存资源,促进核心之间的数据共享和一致性。 主内存(RAM):

位置:通常位于计算机系统的主板上。容量:远大于L3缓存,以GB为单位。访问速度:相对较慢,远低于缓存。作用:存储操作系统、应用程序和数据,是计算机系统中存储层次结构的最大容量部分。

层次化缓存结构的设计旨在利用不同级别缓存的优势,通过提供更小、更快的缓存来提高数据访问速度,并通过较大、较慢的缓存提供更大的存储容量。这有助于平衡性能和成本。

程序执行时,会先将内存中的数据加载到共享的 L3 Cache 中,再加载到每个核心独有的 L2 Cache,最后进入到最快的 L1 Cache,之后才会被 CPU 读取。

2)L3 Cache:

L3 Cache(第三级缓存)是计算机系统中的一个层次化缓存层次结构中的一部分。在这里L3 Cache是DSU的组成部分之一,用于支持DynamIQ™集群中的多个处理核心。

具体来说,关于L3 Cache的说明包括以下几个关键点:

简化进程迁移: L3 Cache的一个作用是简化处理core之间的进程迁移。当一些处理core被配置为没有独立的L2缓存时,它们可以共享L3 Cache,并将其视为自己的L2缓存。这有助于在处理器核心之间更灵活地进行任务切换和迁移。 层次化缓存结构:在计算机系统中,层次化缓存结构是一种常见的设计,其中L1、L2和L3缓存层次不同,越高级别的缓存容量越大,但访问速度相对较慢。L3 Cache通常是多个处理核心共享的,以提供更大的缓存容量。 一致性维护: L3 Cache通过Snoop控制单元(Snoop Control Unit,SCU)来维持处理核心和L3缓存之间的一致性。这确保了所有核心对共享数据的访问是同步和一致的,防止数据不一致的问题。

总体而言,L3 Cache在多核系统中发挥着重要作用,提供了更大的共享缓存,促进了任务之间的灵活性和数据一致性。

3)没有L2的core,L3 cache可视为L2cache

某些处理器core可以被配置为没有独立的第二级缓存(L2缓存)。对于这些没有L2缓存的core,系统将共享的第三级缓存(L3缓存)视为它们的L2缓存。

通常情况下,每个处理器core都有自己的L1缓存和L2缓存。然而,有时为了某些设计或性能的考虑,可以选择将某些core配置为没有独立的L2缓存。在这种情况下,这些core需要访问共享的L3缓存来获取缓存的好处,以满足其对数据和指令的快速访问需求。

这种配置的优点可能包括降低硅芯片的复杂性、减小硅芯片的面积、降低成本等。然而,也需要确保在共享L3缓存的情况下,这些核心仍然能够有效地协同工作,并且对共享缓存的访问能够被管理和优化,以确保整体性能的提升。

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: