基于《Applying Dual-Core Lockstep in Embedded Processors to Mitigate Radiation-induced Soft Errors》文章总结

RISC-V双核锁步DCLS Lockstep技术参考之前文章:

RISC-V双核锁步DCLS Lockstep技术总结_远古架构师alanwu的博客-CSDN博客https://blog.csdn.net/heyuming20062007/article/details/123329537ARM+RISC-V异构双核锁步DCLS Lockstep技术参考之前文章:

ARM + RISC-V双核锁步DCLS Lockstep技术总结_远古架构师alanwu的博客-CSDN博客基于《A Loosely-Coupled Arm and RISC-V Locksteping Technology》文章总结一、lockstep技术分类文中将lockstep技术总结成三类:系统级、分系统级和CPU级。系统级拥有两套不同的CPU、Caches和Memory,输入通过IO进入各自Memory和Caches,输出通过Checker比较结果;分系统级共享同一个Memory和IO,输入进入各自Cache,输出通过Checker比较结果;CPU级只有两套CPU内核,Cache和Memorhttps://blog.csdn.net/heyuming20062007/article/details/123400073

一、ARM双核Lockstep架构

文中提出的ARM双核lockstep架构如下图所示,该架构中有两个CPU、两个BRAM、一个checker和一个DDR Memory。为了防止两个CPU同时竞争DDR中的资源,每个CPU均配置了一个最大64KB大小的BRAM。

所有的CPU输出的数据均缓存在该BRAM中,大小可根据应用程序情况配置。BRAM通过AXI总线互连,BRAM控制器用来处理AXI接口的通信。外部的DDR Memory存储了两个CPU的程序指令,尽管两个CPU运行的程序相同,但在DDR中各自存放两段不同物理地址的程序。除此之外,DDR还被用来存储checkpoint到达时的处理器内部信息,方便程序回卷。Checker用来验证对比CPU是否出错,如果出错需要通过中断及时通知两个CPU进行处理。由于cache使能将导致CPU0和CPU1输出不写穿到BRAM,从而无法保证系统的可靠性,因此该结构中的cache必须关闭使能。

二、程序执行过程

带有lockstep的程序流程如下图b所示,a为原始不带lockstep功能的程序。所有a中execution program将全部放入execution block中,中间通过VP(Verification Point)隔断。复位完成后,程序会对数据和寄存器进行初始化,然后会进入VP程序,此时程序会被stall住。VP阶段首先会发送程序的应用签名,该方法在应用程序上附加代码,通过计算发送给BRAM用于Checker对比。签名值是当前CPU状态和内部信息的表征,可以通过校验位、XOR掩码等方式计算得到,能够使用的处理器内部信息包括CPU内部寄存器:R0-R12;SP;LR;PC等。

使用中断机制来访问处理器内部信息,由于中断过程会将寄存器的值存储在堆栈中,这样中断服务程序可以方便的观察checkpoint时的寄存器数值差异。当CPU接收到中断后,将会执行下述步骤:

  • 实际的执行程序会被中止;
  • 处理器的寄存器数值保持到堆栈中,执行程序现场被保存;
  • 中断服务程序被执行;
  • 中断服务程序结束时,处理器从堆栈中恢复现场;
  • 继续执行程序。

在VP阶段时,Checker产生中断进入中断服务程序,然后等待BRAM中的数据ready,随后完成两个BRAM中的应用签名对比或寄存器数值对比。如果对比没有错误,表示当前两个CPU运行一致,继续执行下一段程序直到checkpoint。如果对比错误,则Checker会产生错误异常中断,告知CPU回卷程序并恢复之前程序。在Checker对比完成后,Checker会将对比结果重新写回BRAM来解锁程序,让程序继续执行。

三、Checker模块

Checker使用RTL硬件实现,负责对比程序一致性和控制lockstep前进。为了识别是否有错误,Checker会比较两端CPU的所有输出。对比可以使用两种方法实现:一种是对比所有CPU输出到BRAM中的数据;另一种是只对比应用签名。如果使用前者,对比过程可能需要更多的硬件逻辑来实现,但能保证所有数据没有错误;如果使用后者,需要提前计算好应用签名,但能够有效的提高对比速率和降低硬件逻辑资源。

四、检查点和回卷操作

当Checker验证系统出错时,它会产生中断请求CPU访问BRAM,并修改CPU堆栈内容。根据是否允许访问DDR,将回卷过程分为两种:

  • 只允许访问BRAM:处理器内容只保持在BRAM中,回卷时会将BRAM中的数值覆盖CPU内部寄存器。
  • 可访问BRAM和DDR:CPU信息会同时存入BRAM和DDR中,回卷时首先从BRAM中读取信息覆盖CPU内部寄存器,如果多次回卷仍然无法通过该checkpoint,那么程序会启动去DDR读取信息。

如果程序连续出现两次回卷,且中间没有checkpoint,则表明checkpoint出现了错误。如果多次尝试失败,此时系统需要恢复到第一次保存的程序位置,从数据初始化完成后重新运行程序。如果还是不能解决问题,那么需要产生硬件复位重新初始化两边寄存器和程序数据。

五、设计总结

上图是整个过程的总结,程序的整个流程如上左图所示,其中VP阶段的具体流程如上右图所示。

ARM双核锁步DCLS Lockstep技术研究(FPGA实现)相关推荐

  1. ARM + RISC-V双核锁步DCLS Lockstep技术总结

    基于<A Loosely-Coupled Arm and RISC-V Locksteping Technology>文章总结 一.lockstep技术分类 文中将lockstep技术总结 ...

  2. 商用DCLS双核锁步lockstep技术总结

    目前市场上能够通过IOS26262等车规标准的双核锁步DCLS芯片主要有TI的Hercules系列.英飞凌AURIX系列和NXP S32系列等. 一.TI Hercules系列 Hercules是TI ...

  3. Codasip和IAR强强联手,共同演示用于RISC-V的双核锁步技术

    IAR获得ISO 26262认证的工具支持基于屡获殊荣的CodasipL31内核的参考设计 Codasip和IAR共同宣布将强强联手为低功耗嵌入式汽车应用提供全新的创新支持,双方将联手为客户提供屡获殊 ...

  4. 上交所技术 基于FPGA技术的FAST行情解码研究

    本文选自<交易技术前沿>第二十七期 (2017年6月). 钟浪辉1,陈敏1,陈坚1,刘啸林1,秦轶轩2,李道双2, 1上交所技术有限责任公司 2南京艾科朗克信息科技有限公司 E-mail ...

  5. 光伏并网pscad_光伏并网逆变器及其关键技术研究—张兴

    欢迎加入技术交流QQ群(2000人):电力电子技术与新能源 905723370 高可靠新能源行业顶尖自媒体 在这里有电力电子.新能源干货.行业发展趋势分析.最新产品介绍.众多技术达人与您分享经验,欢迎 ...

  6. linux 挂iscisc存储,基于arm的嵌入式linux操作系统的移植研究-通信与信息系统专业论文.docx...

    基于arm的嵌入式linux操作系统的移植研究-通信与信息系统专业论文 Classified Index: TP316.8 U.D.C: 621.38 Dissertation for the Mas ...

  7. 最先进的智能采茶机器人_智能采茶机器人关键技术研究

    ■我有技术 所属领域:新一代信息技术 单位名称:长沙学院 成果简介:该项目为湖南省科学技术厅科技计划一般项目,项目立项名称为"智能采茶机器人关键技术研究",项目编号为"2 ...

  8. 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(-)-Z3GatewayHost应用

    相关系列文章 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(-)-Z3GatewayHost应用搭建 基于芯科Host-NCP解决方案的Zigbee 3.0 Gate ...

  9. 区块链技术研究热点有哪些

    随着政府部门.金融机构.科技企业和资本市场的不断投入, 加速了区块链技术在实际应用中的落地,同时加剧了区块链技术 需要突破的技术瓶颈,具体表现在以下几个研究方向: 1.共识算法与性能 共识算法是区块链 ...

最新文章

  1. Spring Transactional还能导致生产事故?
  2. SQL查询入门(上篇)
  3. 读取word文件中的文本信息
  4. SVN更新项目A C D M G U R I的含义
  5. Django(四)数据库
  6. vs2012安装过程 1006
  7. 计算机网络硬件部件,计算机网络硬件由哪些部件组成?
  8. 5G 基站功耗,到底有多可怕?
  9. perl多进程实战之一
  10. python三天速成_python学习第三天
  11. wamp环境单独安装(windows下apache2.4、mysql5.5、php5.5的版本)
  12. H5视频会议,直播,通话,教学,支持Webrtc、rtmp、sip、rtsp转协议、IPCAM、白板、桌面共享、免插件、web全平台、视频融合系统研发笔记。...
  13. matlab测量平差实验报告,测量平差实习心得精选三篇
  14. matlab的稀疏表示分类,基于稀疏表示的分类方法
  15. 使用C++枚举WINDOWS计划任务-使用管理员启动获取全计划任务,否则获取部分计划任务
  16. python 召回率_使用sklearn获取精确性和召回率
  17. 黑马程序员UI设计学院公开课,10月18日开讲啦!
  18. android action pick,android – 无法使用ACTION_PICK意图选择特定图...
  19. 开维控制精灵 Ctrl js 华为手机群发短信
  20. Echarts 水波图实现

热门文章

  1. 【⏰亲】今天冬至,早些回家!
  2. 辗转相除法——求最大公约数(易懂详解)
  3. 熵(entropy)的定义
  4. http://nian.so/#网站的拓展工具编写
  5. Class 文件的魔数和文件版本号
  6. Python基础知识-pycharm版-对象
  7. ubuntu关机卡死
  8. unsupported dynamic reloc R_ARM_REL32 AND hidden symbol '__dso_handle' is not defined
  9. ADB卸载OPPO浏览器
  10. 介绍国产的PHP MVC框架:FleaPHP