体系结构论文(五十六):Hybrid Modular Redundancy: Exploring Modular Redundancy Approaches in RISC-V Multi-Core

Hybrid Modular Redundancy: Exploring Modular Redundancy Approaches in RISC-V Multi-Core Computing Clusters for Reliable Processing in Space
 

一、文章介绍

背景:

太空中的辐射环境会导致电子设备出现单粒子瞬态(SETs)和单粒子翻转(SEUs)等错误。这些错误比地面环境中更为频繁,严重影响系统的可靠性。因此,设计能够容忍这些故障的系统对于保障太空任务的成功至关重要。当前普遍采用的辐射加固设计(RHBD)方法代价高昂,且在性能、功耗和面积(PPA)方面存在较大开销。

为了弥补PPA上的差距,研究人员开始探索新的低开销解决方案。文中介绍的HMR方法通过灵活的模块冗余技术,在性能和可靠性之间提供了一个可调节的平衡点。这种方法不仅适用于处理计算密集型任务,还可以处理安全关键的任务,具有很强的实用性和灵活性。

核心思想与技术:

模块冗余模式:HMR设计允许通过双核锁步(DCLS)和三核锁步(TCLS)模式,动态地对系统中的多个RISC-V内核进行分组和冗余操作。在高性能需求时,内核可以独立运行,而在关键任务部分,则可以通过冗余执行来提高可靠性。

两种故障恢复方法

  1. 软件恢复:这是一种基于软件的恢复方法,在三核模式下需要363个时钟周期来恢复系统。此方法占用0.612 mm²的芯片面积,增加了1.3%的面积开销。
  2. 硬件恢复:相比之下,硬件恢复方法更加快速,仅需要24个时钟周期即可完成恢复,但占用的芯片面积稍大,为0.660 mm²,增加了大约9.4%的面积开销。

动态锁定机制:HMR系统允许动态配置处理器核之间的锁步模式,支持高性能模式和可靠性模式的快速切换。在进入或退出冗余模式时,开销小于400个时钟周期。这使得系统能够在需要时提高可靠性,同时在其他情况下维持高性能。

实现细节:该系统基于RISC-V的多核处理器集群,使用22 nm工艺,最高工作频率为430 MHz。在非冗余模式下可以达到1160 MOPS的性能,而在双核和三核锁步模式下分别达到617和414 MOPS。

贡献:

  • 提出了一个可动态重配置的多核RISC-V集群,支持双核和三核锁步执行,能够同时处理计算密集型和安全关键型任务。
  • 设计了一个快速的硬件恢复方案,使用了错误校正码(ECC)保护的状态寄存器来加速恢复过程。
  • 提出了一个新的运行时可编程的分离锁定机制,允许在性能和可靠性模式之间进行快速切换。

通过22 nm工艺实现的RISC-V集群,展示了在非冗余和冗余模式下的高性能表现,并且在仅增加少量面积开销的前提下,提供了快速的故障恢复能力。这种灵活的可配置性使得该系统成为第一个结合性能与可靠性平衡的开源RISC-V多核集群。

二、相关工作

1. 设计趋势概述:

随着太空任务对性能要求的提升,传统的依赖辐射加固技术(Rad-Hard)的设计已经不足以满足新的需求。这些传统技术往往成本高、性能低,虽然在关键任务中仍然有应用,但在商业技术进步推动下,S-CPS中的多核架构开始获得青睐。

RISC-V被越来越多地应用于定制的系统芯片(SoC)设计中

2. 相关的容错方法:

辐射诱导故障:太空中的辐射环境比地球上更为严苛,会导致单粒子瞬态(SETs)和单粒子翻转(SEUs),这些软错误对电子系统的影响非常大,需要采取专门的措施进行防护。

辐射加固设计:辐射加固技术通常依赖于硅层级的设计改进,比如晶体管尺寸的调整和低级别的电路修改,以增强技术单元对粒子撞击的鲁棒性。然而,这类技术通常昂贵且局限于较旧的工艺节点,难以跟上现代技术的发展。

3. 架构修改的容错方法:

纠错码(ECC):这是最常见的保护静态数据的方法,通常用于存储器和寄存器中,以较低的额外开销提供信息冗余。

模块冗余(Modular Redundancy):如双模块冗余(DMR)和三模块冗余(TMR),这些技术依赖于硬件模块的冗余执行和结果比对。

文中的SHATKI-F等系统结合了ECC和DMR的混合方法,用ECC保护存储器和寄存器,同时在执行单元中使用DMR,以确保正确计算。

4. 系统级容错方法:

双核锁步(DCLS)和三核锁步(TCLS):这种方法在系统级别复制整个处理器核,并在边界处添加检查器和投票器,以实现容错。

ARM的DCLS/TCLS方法:依赖于重置和检查点机制,来处理和修复错误。ARM Cortex-R5中的三核锁步通过辅助单元实现,它可以让三个核心以相同的输入和输出进行锁步执行,故障修复期间不影响剩余两个核心的正常操作。

5. 提出的HMR方法

文章提出的HMR系统是基于RISC-V的,支持DCLS和TCLS模式,能够在高性能和安全关键应用之间灵活切换。

系统通过ECC保护的状态寄存器实现快速故障恢复,并支持运行时的分离锁定机制。该机制允许在独立执行和锁步执行模式之间快速切换,保证任务的可靠性。

  • 表格展示了不同的系统及其使用的容错方法。传统的Rad-Hard设计,如Gaisler GR740和BAE RAD5500,采用了辐射加固和ECC技术,而新兴的RISC-V架构(如Duck-Core和STRV)则采用了ECC和TMR技术进行保护。
  • 系统级的容错方法中,ARM和RISC-V处理器通过双核锁步和三核锁步技术,提供了更灵活的冗余机制。与这些系统相比,本文提出的HMR方法通过DCLS、TCLS和ECC实现了更高的灵活性和容错性。

 三、架构

1. PULP集群的背景介绍

PULP集群是一个多核并行超低功耗集群,它的核心使用的是32位的CV32E40P内核,这些内核经过OpenHW Group的工业验证,并进行了DSP性能增强。

其实说白了就是由多个小型、并行运行的RISC-V处理器核心组成,能够同时处理多个任务。有点像GPU?一个GPU多个SM这样。

  • 指令缓存架构:每个核心都有自己的私有指令缓存,存储容量为512B。这些缓存通过一个共享的4KiB缓存从系统中获取指令。这种设计通过单程序多数据(SPMD)范式提高应用程序性能。

  • TCDM(紧耦合数据存储器):TCDM是PULP集群的数据存储核心,具有单周期访问延迟,并采用了内存银行交错设计(每32位字),以减少内存访问冲突。常见的内存银行配置为核心数的两倍(例如12个核心使用24个内存银行),以确保高并发性,且即使是内存密集型工作负载,数据共享的开销也小于5%。

  • DMA和事件单元

    • DMA单元能够实现每周期64位数据的双向全双工传输,允许集群的TCDM与外部内存系统间进行高速数据交换。
    • 事件单元负责集群内的同步操作,如同步屏障。当所有核心访问同一个屏障地址时,才会收到响应。此外,事件单元还管理中断,屏蔽和转发进入集群的中断信号给相关的核心。
  • AXI互连:集群通过AXI互连连接到外部主机子系统,这使得主机可以访问集群的内部存储器和外围设备,进行配置和通信。

PULP集群的软件生态系统提供了并行代码执行的支持,允许主机系统配置并启动加速集群,还提供了多种并行应用和基准测试程序,加快了自定义工作负载的开发。

2. 按需冗余分组

按需冗余分组ODRG是混合模块冗余HMR系统的基础,它允许集群核心动态进行冗余分组。在本文中,ODRG得到了进一步扩展,不仅支持TCLS(三核锁步),还增加了对DCLS(双核锁步)的支持。此外,HMR还实现了硬件扩展,允许更快的故障恢复和核心的重新同步。

ODRG它允许处理器核心在运行时根据需要动态地进入冗余模式。例如,如果某个任务非常关键,系统可以根据需求将多个核心组合在一起进行锁步计算(即同步执行相同的任务),确保在遇到硬件故障时仍然能够提供正确的结果。ODRG 的灵活性体现在可以动态调整冗余的级别,即可以按需选择双核或三核冗余模式,减少系统的性能开销。

分离锁定机制:新的快速分离锁定机制允许在运行时进行快速可选择的配置切换。例如,可以在关键任务部分的代码执行时进入冗余模式,而在非关键部分则恢复为独立执行模式。这个机制显著降低了配置切换的开销。

3. 系统级集成

在系统级别,HMR单元主要负责保护PULP集群中各处理器核心的正确操作。为了实现这一目标,设计中假设TCDM和指令存储器等模块是可靠的,采用了ECC编码和内存清洗技术进行保护。

1. 核心部分(CORE 0 到 CORE N)

这些核心通过 HMR 单元(Hybrid Modular Redundancy 单元)管理,允许根据需求动态地进入双核或三核锁步模式

2. HMR 单元

HMR 单元包围了所有的核心,负责实现双核或三核锁步。这个单元确保在一个核心出错时,通过冗余的方式来保持系统的正确性。

3. TCDM 互联

TCDM是紧耦合数据内存,由多个内存银行(BANK 0, BANK 1, … BANK M)组成。这些内存银行可以为每个核心提供高速的数据访问,以减少延迟。

4. 外部主机子系统

集群与外部主机子系统通过 CLUSTER AXI 互联 相连。外部主机子系统可能包含控制器核心、更大的存储器,以及处理来自外部的指令或数据。

  • 核心冗余模式:HMR集群中的核心可以被分组到DCLS或TCLS模式中。图1展示了HMR单元在PULP集群中的集成情况,所有输入输出信号都通过HMR单元与核心进行交互。在12核心的PULP集群中,HMR单元能够将所有核心分为若干组,每组分别使用2个核心进行DCLS冗余或3个核心进行TCLS冗余。如果核心数不同,则可能会有部分核心无法参与冗余模式。

  • 外围设备接口:HMR单元通过集群的外围设备互连暴露出外围设备内存端口,允许任何集群内的核心或主机系统对HMR单元进行配置。这一接口还支持读取HMR单元内存映射的寄存器,例如当前的可靠性状态和错误统计数据。

4 混合模块冗余块 

混合模块冗余(HMR)块的关键在于利用多个硬件实例执行相同操作以确保正确的执行。双模块冗余(DMR)情况下,结果由两个核心进行比较,三模块冗余(TMR)情况下则通过多数投票决定结果。

模块冗余的操作流程

输入连接:所有的输入(例如控制信号、指令、数据)在两个或三个核心之间进行共享,确保每个核心接收到的信号一致,从而进行相同的计算。

输出处理:每个核心的输出将被发送到一个专门的检查器或多数投票器,以确保计算结果一致。如果发生故障,系统将进行故障检测和恢复处理。

虚拟核心:当这些锁步核心被分组后,从系统的角度看,它们将作为一个虚拟核心运行。检查器和多数投票器确保在核心发生故障时系统仍能可靠地执行任务。

保护机制:检查器和多数投票器虽然可以保护核心,但它们自身也可能遭受软错误的影响。因此,假设系统为总线提供了其他保护措施(如ECC编码),这些错误可以通过总线协议进行检测并纠正。

4.1 双核锁步模式(DCLS模式)

在双核锁步模式下(图2),PULP集群中的核心将被成对分组,标识出主核心和辅助核心。

  • 主辅助关系:主核心继续执行计算,而辅助核心执行与主核心相同的指令,确保同步执行。辅助核心的输出不直接影响系统的行为。
  • 输入共享:两个核心接收相同的输入信号,因此它们应该生成相同的输出。
  • 输出检测:输出通过位级检查器进行比较。若结果一致,主核心的结果被视为系统的有效输出;若不一致,则检查器产生错误信号,表示其中一个核心出错。
  • 错误处理:由于双核锁步模式无法确定哪个核心生成了正确的输出,因此系统会立即阻止输出继续传播,并通知系统进行恢复。

4.2 三核锁步模式(TCLS模式)

在三核锁步模式下(图3),三个核心组成一组,包括一个主核心和两个辅助核心。该模式与双核锁步模式类似,但在处理故障时有更高的可靠性。

  • 多数投票机制:每个核心的输出都会通过位级多数投票器与其他两个核心的输出进行比较。若有一个核心的结果与其他两个不一致,则多数投票器会选择正确的输出,而不需要停止系统的执行。
  • 故障恢复:由于TCLS模式具有投票机制,系统可以识别并忽略故障核心的输出,并使用其余两个核心的状态进行恢复。甚至可以允许两个无故障核心在不立即修复错误核心的情况下继续运行,但如果发生第二次错误,系统必须立即启动同步流程。

4.3 参数化

HMR单元提供了DCLS和TCLS两种配置模式,硬件可以根据需求进行参数化以禁用或强制使用这些模式。HMR单元能够支持分离锁定功能,允许动态切换配置模式。如果不需要这种动态切换功能,可以永久启用DCLS模式或TCLS模式。

  • 核心无关性:HMR单元的设计与具体的核心实现无关,能够根据核心接口进行适当配置。在本文中,HMR单元已与CV32E40P和Ibex核心进行了测试,均能良好适配。

5. Split-Lock

Split-Lock机制允许核心在不同的模式之间切换。图4展示了6个核心在不同模式下的分组:

  • 独立模式(图4a):所有核心独立工作,不存在锁步执行的冗余机制。
  • 双核锁步模式(DCLS-mode)(图4b):核心按对分组,例如核心0与核心3组成一组,核心1与核心4组成另一组。每对核心共享相同的输入,输出通过DCLS检查器进行比较。
  • 三核锁步模式(TCLS-mode)(图4c):三个核心组成一组,例如核心0、2和4分为一组。这种模式下,输出通过多数投票机制决定,能够更好地处理单个核心的错误。

Split-Lock允许系统在运行时动态改变这些分组模式,适应不同任务的需求。

5.1. 关键任务部分

关键任务部分设计用于需要高度可靠的任务执行。这一模式下,多个核心以锁步方式执行,保证冗余。

  • 进入关键任务部分

    • 主核心执行一个定制的软件例程(参见Listing 1),将所需的状态(DCLS模式或TCLS模式)写入HMR单元的配置寄存器。这一操作会触发一个中断,通知辅助核心准备参与任务。
    • 中断服务例程(Listing 2)会将辅助核心的状态保存到TCDM堆栈中,包括寄存器文件(RF)和控制状态寄存器(CSRs),确保核心可以稍后恢复其状态。
    • 辅助核心进入同步屏障,所有核心在锁步状态下继续执行任务。
  • 退出关键任务部分

    • 当任务完成后,核心将新的状态(例如独立模式)写回HMR单元。此操作会解除核心之间的锁步状态。
    • 主核心可以继续其任务,因为它的状态始终保持一致。而辅助核心则需要恢复进入关键任务之前的状态,因此系统会清除辅助核心并重新加载其状态。

5.2. 性能部分

性能部分允许系统在非关键任务部分时,通过分离核心来提升性能。每个核心以独立模式工作,处理自己的线程。

  • 进入性能部分:核心通过写入HMR单元的配置寄存器,解除锁步状态。主核心继续处理主要线程,而辅助核心则更新其堆栈指针并独立运行。
  • 退出性能部分:当性能部分完成时,所有核心进入同步屏障,再次锁步执行,并加载主核心的状态,恢复正常操作。

6 故障恢复

6.1 TCLS模式的软件重新同步流程

当TCLS模式中的单个核心发生故障时,集群可以继续运行,因为投票器会覆盖错误核心的无效输出。TCLS模式提供了内部冗余状态信息,使系统能够从无硬件恢复的状态下恢复。

  • 步骤:当故障发生时,HMR单元的有限状态机(FSM)进入卸载(unload)状态,并通过事件单元触发一个中断。这会启动中断服务程序,将非故障核心的内部状态(如程序计数器PC、寄存器文件RF和控制状态寄存器CSRs)存储到堆栈中。
  • 卸载与重载:在卸载过程中,位级投票器会扫描核心的内容,只存储非故障核心的状态。然后,将堆栈指针(SP)存储到HMR单元的内存映射寄存器中。FSM进入重载(reload)状态,将主核心的正确状态加载回锁步核心。
  • 错误清除机制:如果在重载阶段再次发生故障,核心可以被再次清除,并从内存中重新加载安全状态。核心启动序列会检查SP寄存器内容,如果值不为0,则使用该SP寄存器重新加载状态。
6.2 基于硬件的重新同步与快速恢复扩展

为了进一步提升恢复速度,硬件加速的快速恢复机制被引入到HMR单元中,减少了软件中断处理程序的开销。

  • 硬件恢复机制:每个核心组中引入一个硬件恢复引擎,包括用于程序计数器(PC)、寄存器文件(RF)和控制状态寄存器(CSRs)的恢复区域。正常处理期间,主核心的状态会被备份到这些恢复寄存器中,更新操作每个周期进行一次。
  • 错误检测与恢复过程:当检查器或投票器检测到不一致时,错误信号会阻止新的写操作进入恢复寄存器,避免备份状态的损坏。此时,快速恢复控制器启动恢复流程,将故障核心的内部寄存器重置为默认值,并通过硬件重新加载正确的状态。
6.3 快速恢复扩展的应用

引入的快速恢复硬件不仅可以加速故障恢复,还可以用于任务关键部分的快速进入和性能部分的快速退出。主核心的状态持续备份,保证任务关键部分能够安全启动,辅助核心在锁步进入之前将其状态保存到TCDM堆栈中,确保进入屏障后同步执行。

四、实验

图7:PULP集群的物理实现

(a) PULP集群的物理实现布局 PULP集群的物理实现,包含HMR单元和快速恢复扩展。布局清晰显示了偶数和奇数ID核心的分布,以及各个模块的布局,例如TCDM和HMR单元。

(b) PULP集群面积比较 表格展示了在不同模式下(基线、DMR、TMR、HMR)的面积比较,标出了每种模式的额外面积开销。在快速恢复机制下,HMR模式的面积开销最大,为9.4%,但提供了最好的故障恢复性能。

(c) 面积分布 该图展示了整个PULP集群中的面积分布,核心、TCDM、AXI互连、DMA等模块各占不同的比例。其中HMR单元占集群面积的9%,这表明其重要性。

(d) HMR单元的面积分解 HMR单元的快速恢复功能占用了大部分面积(78%),其次是TMR投票器(10%)和DMR检查器(5%)。这表明快速恢复功能虽然面积开销大,但在关键任务中的重要性无可替代。

表2:PULP集群在不同冗余模式下的性能总结

表2总结了不同冗余模式下的性能,包括矩阵乘法和复杂快速傅里叶变换(CFFT)的表现。基线模式下,PULP集群可以达到1165 MOPS的矩阵乘法性能,而在TMR模式下性能降低到414 MOPS。这表明冗余带来了可靠性,但也影响了性能。

此外,还列出了恢复延迟和进入/退出关键任务部分以及性能部分的循环数。显然,快速恢复功能(DMR-R、TMR-R模式)大大降低了恢复延迟,从原来的363周期缩短到24周期。

图8:故障恢复和Split-Lock的开销循环计数分解
  1. 软件和硬件恢复:软件恢复需要大约15倍的时间,而硬件恢复只需24个周期。这表明硬件加速的恢复机制显著提高了恢复速度。
  2. 进入/退出关键任务部分:硬件加速的进入/退出关键任务部分的时间比软件快1.3倍,而退出性能部分则加速了3.3倍。这展示了硬件扩展的显著优势,尤其在需要频繁切换模式的任务中。

图9:PULP集群性能随故障率增加的降级表现

图9展示了随着故障率增加,PULP集群在不同冗余模式下的性能降级趋势。快速恢复模式下(DCLS rapid和TCLS rapid),集群能够在较高的故障率下维持更高的性能,显示出硬件加速恢复功能在高故障率环境中的重要性。

  • DCLS快速恢复模式在故障率达到10^7时仍能保持约50%的性能,而在传统DCLS模式下性能急剧下降。
  • TCLS快速恢复模式也提供了类似的性能提升,表明快速恢复在提高系统可靠性方面的重要作用。

图10:不同模式下故障恢复成本的评估

图10展示了在不同故障率下,PULP集群的恢复成本。DCLS模式下,当故障率高时,恢复时间可能会超过1秒,特别是在软件恢复模式下,这对于实时任务可能是不允许的。然而,在快速恢复模式下,无论是DCLS还是TCLS,恢复成本都大大降低,即使在高故障率下,也可以在毫秒级别内完成恢复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D了一天bug忘了编译

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值