时钟与复位
本章介绍处理器内使用的时钟和复位。
1. 时钟与时钟使能¶
Cortex-R52 处理器只有一个时钟,用于驱动其所有触发器(flops)和 RAM。包括复位输入在内的多种输入带有同步逻辑,使其能够异步于处理器时钟工作。大多数总线具有使能输入,允许其以处理器时钟的整数分频工作。
Cortex-R52 处理器为所有核及其相关逻辑提供一个主时钟输入。每个核使用一个门控时钟,该时钟可在 WFI 低功耗模式或 WFE 低功耗模式下被禁用。有关这些模式的更多信息,请参见第 5-194 页的 5.3 Architectural clock gating。
在采用 DCLS 和 Split/Lock 的系统中,为冗余逻辑提供了单独的时钟输入。该时钟输入必须与主时钟输入频率相同并与之保持平衡。在 DCLS 和 Split/Lock 配置中,所有输入必须与时钟同步,以防止同步器引起偏差。
下表给出了时钟信号。
| 信号 | 方向 | 描述 |
|---|---|---|
| CLKIN | 输入 | 主时钟。 |
| CLKINDCLS | 输入 | 锁步(lock-step)配置中冗余逻辑使用的冗余时钟。 |
处理器各总线端口均可以主处理器时钟的整数分频工作。这是通过时钟使能输入实现的。
下表给出了时钟使能信号。
| 信号 | 方向 | 描述 |
|---|---|---|
| PCLKENDBG | 输入 | APB 时钟使能。 |
| ACLKENMx | 输入 | AXIM 接口时钟使能。 |
| ACLKENS | 输入 | AXIS 接口时钟使能。 |
| ATCLKEND | 输入 | 数据跟踪的 ATB 时钟使能。 |
| ATCLKENI | 输入 | 指令跟踪的 ATB 时钟使能,以及 TSVALUEB[63:0] 的时钟使能。 |
| ACLKENFx | 输入 | Flash 接口时钟使能。 |
| CNTCLKEN | 输入 | 计数器时钟使能 CNTVALUEB。 |
| ACLKENPx | 输入 | LLPP 时钟使能。 |
2. 复位信号¶
Cortex-R52 处理器具有复位输入,用于实现以下操作:
- 整个处理器的上电复位,或意外安全错误时的复位。
- 核关断后对单个核的复位。
- 对单个核的热复位,或仿真关断后的复位。
- 整个处理器的调试复位。
- MBIST 复位。
只有在相关核处于静止(quiescent)状态时,才能仅复位单个核而不复位其周边系统。无论是否仿真,核关断后即处于该状态。如果需要在其他时间使用此功能,例如出于安全目的进行周期性预防性复位,则软件必须首先使处理器进入类似关断模式的静止状态。
下表给出了复位及复位控制信号。
注意: 如果配置了 DCLS 或 Split/Lock,所有复位信号必须与处理器时钟同步。
| 信号 | 方向 | 描述 |
|---|---|---|
| nCORERESETx | 输入 | 单核热复位。 |
| 0:对核 x 施加复位,不包括调试和跟踪逻辑。 | ||
| 1:不对核施加复位。 | ||
| nCPUPORESETx | 输入 | 单核上电冷复位。 |
| 0:对核 x 施加复位,包括调试和跟踪逻辑。 | ||
| 1:不对核施加复位。 | ||
| nTOPRESET | 输入 | 顶层复位。复位顶层功能逻辑。 |
| 0:复位顶层功能逻辑。 | ||
| 1:不复位顶层功能逻辑。 | ||
| nCORERESETDCLSx | 输入 | 单核冗余热复位。该输入必须与 nCORERESET 完全相同。 |
| 0:对核 x 的冗余副本施加复位,不包括调试逻辑。 | ||
| 1:不对冗余核施加复位。 | ||
| nCPUPORESETDCLSx | 输入 | 单核冗余上电冷复位。该输入必须与 nCPUPORESET 完全相同。 |
| 0:对核 x 的冗余副本施加复位,包括调试逻辑。 | ||
| 1:不对冗余核施加复位。 | ||
| nTOPRESETDCLS | 输入 | 顶层冗余逻辑复位。复位处理器内所有冗余逻辑。该输入必须与 nTOPRESET 完全相同。 |
| 0:对所有冗余逻辑施加复位。 | ||
| 1:不对所有冗余逻辑施加复位。 | ||
| nPRESETDBG | 输入 | APB 复位: |
| 0:对 APB 和顶层调试逻辑施加复位。 | ||
| 1:不对 APB 和顶层调试逻辑施加复位。 | ||
| nMBISTRESET | 输入 | MBIST 复位。 |
| 0:对 MBIST 施加复位。 | ||
| 1:不对 MBIST 施加复位。 |
在正常工作时,所有复位信号均处于去断言状态。下表给出了各种复位场景及相应的断言复位信号。复位触发器使用异步复位输入。
| 信号与场景 | 上电 | 核上电 | 核热复位 | 调试 | MBIST |
|---|---|---|---|---|---|
| 核功能逻辑:nCORERESETx | 是 | 是 | 是 | 否 | 否 |
| 核功能与调试逻辑:nCPUPORESETx | 是 | 是 | 否 | 否 | 否 |
| L2 系统(AXIS 和 GIC):nTOPRESET | 是 | 否 | 否 | 否 | 否 |
| 调试:nPRESETDBG | 是 | 否 | 否 | 是 | 否 |
| MBIST:nMBISTRESET | 是 | 否 | 否 | 否 | 是 |
断言时,上电复位会异步传播到触发器。
所有复位在去断言时都经过同步,以满足触发器处的时序要求。执行逻辑扫描时,所有复位信号都能被禁用,这包括主输入同步器以及为每个核提供的同步器。
在采用 DCLS 的系统中,为冗余逻辑提供了单独的复位输入,并期望其行为与主复位输入完全相同。唯一的例外是发生故障时,此时它们的行为不再相同。
当 Cortex-R52 处理器退出复位时,它会自动无效化指令缓存和数据缓存,并在该过程完成前阻止任何查找。在自动缓存无效化操作进行期间,核不使用缓存。这可能在复位后短时间内影响核性能。自动缓存无效化还会初始化 RAM 的 ECC 校验子(syndrome)值。
3. 复位相关信号¶
每个核有两个复位请求输出,可用于请求热复位。这些信号是否参与复位输入,由 Cortex-R52 处理器外部的复位控制逻辑决定。
下表给出了复位相关信号。
| 信号 | 方向 | 描述 |
|---|---|---|
| WARMRSTREQx | 输出 | 热核复位请求。 |
| DBGRSTREQx | 输出 | 来自外部调试逻辑的复位请求。 |
| CPUHALTx | 输入 | 核退出复位后等待该信号,之后才进入复位异常并取指。 |
| CFGINITREG | 输入 | 复位后程序可见寄存器初始化为固定值。 |
| CFGL1CACHEINVDISx | 输入 | 禁用复位后的 L1 缓存自动无效化。 |
当软件向 HRMR.RR 写入 1 时,WARMRSTREQx 被断言。当调试器向 EDPRCR.CWRR 写入 1 时,DBGRSTREQx 被断言。