CN115827332A - Mcu处理器核电路结构和mcu跑飞就近恢复现场方法 - Google Patents
Mcu处理器核电路结构和mcu跑飞就近恢复现场方法 Download PDFInfo
- Publication number
- CN115827332A CN115827332A CN202211704346.0A CN202211704346A CN115827332A CN 115827332 A CN115827332 A CN 115827332A CN 202211704346 A CN202211704346 A CN 202211704346A CN 115827332 A CN115827332 A CN 115827332A
- Authority
- CN
- China
- Prior art keywords
- module
- instruction
- backup
- mcu
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Retry When Errors Occur (AREA)
Abstract
MCU处理器核电路结构和MCU跑飞就近恢复现场方法,涉及单片机技术。本发明的MCU处理器核电路结构包括控制模块、取指模块、译码模块、执行模块、存储器模块、指令存储模块和寄存器模块,其特征在于,还包括备份模块、编码器模块和备份指令存储模块,所述备份模块分别连接至编码模块、译码模块、执行模块、存储器模块和寄存器模块,所述备份指令存储模块分别连接至编码模块、取指模块。本发明可以使MCU自动回退到固定时间间隔前的断点处而不必从头重新开始执行,从而提升MCU在特殊环境下工作的效率与可靠性。
Description
技术领域
本发明涉及单片机技术。
背景技术
MCU,全名为Micro Control Unit,即微控制器,可以根据不同的程序设计提供对应的控制动作,在工业、军事等领域应用很广。
由于MCU应用很广,不可避免的可能工作在恶劣的电磁环境下。在强电磁干扰下,正常的程序执行有可能被打断,错误进入到未知的地址空间,甚至出现MCU工作进入死循环,人们将这一现象称为MCU“跑飞”,为了解决该问题,MCU一般设置了看门狗机制。
看门狗(Watch Dog Timer)本质上是一个计时器,通常具有固定的定时时间,当定时时间计满(溢出)时,电路就产生复位信号或中断信号。程序正常运行时,在小于定时时间间隔内,单片机向看门狗输出一个信号用于刷新定时器,即喂狗,使得定时器处于不断重新定时的过程中,这样看门狗就不会产生复位信号。当程序因出现干扰“跑飞”时,单片机无法刷新定时器,就可以通过看门狗溢出产生复位信号或中断信号使单片机复位或中断,由中断处理程序使其返回到起始点,以使程序恢复正常运行。
当MCU工作在特殊环境下受到干扰导致某条指令的执行出现错误,现有的看门狗复位功能是使程序回到设置的位置,而且由于没有完整的备份该时间间隔内的数据,所以无法完全恢复程序执行现场,并且如果不加设置,一般回到程序开始的位置,导致之前执行的数据结果全部丢失,而有的数据是一次性的难以复现的,因此可能会造成较大的损失,并且从头重新开始会浪费一定时间,对任务的执行造成重大影响。但如果在程序中频繁的设置看门狗寄存器,又会大量占用程序的存储空间,影响程序的执行效率。
发明内容
本发明所要解决的技术问题是,提供一种具有高度连续性与工作的稳定性的MCU处理器核电路结构,以及MCU跑飞就近恢复现场方法。
本发明解决所述技术问题采用的技术方案是,MCU处理器核电路结构,包括控制模块、取指模块、译码模块、执行模块、存储器模块、指令存储模块和寄存器模块,还包括备份模块、编码器模块和备份指令存储模块,所述备份模块分别连接至编码模块、译码模块、执行模块、存储器模块和寄存器模块,所述备份指令存储模块分别连接至编码模块和取指模块。
本发明提供一种MCU处理器就近恢复现场方法,包括下述步骤:
(1)正常工作状态下,备份模块在控制模块的控制下从存储器或寄存器读取被写入地址所存储的原始数据,并记录每条写入指令的指令地址;
(2)当看门狗发出复位信号时,进入读模式并停止备份,然后执行备份指令存储模块中的指令,在执行完成之后恢复到了备份的断点处,控制模块控制处理器核从该断点处开始正常工作。
通过本发明提供的技术方案,实现在MCU因受到干扰“跑飞”的情况下,无需人工干预,自动恢复到最近的断点处继续运行程序,从而提高了MCU在特殊工作环境下程序执行的连续性与工作的稳定性。当MCU工作在特殊环境下受到干扰导致某条指令的执行出现错误,现有的看门狗复位功能是使程序回到最开始的起点,导致之前执行的数据结果丢失,花费较多时间重启,在特殊工作环境下会造成更大的损失。本发明可以使MCU自动回退到固定时间间隔前的断点处而不必从头重新开始执行,从而提升MCU在特殊环境下工作的效率与可靠性。
附图说明
图1是现有技术的MCU架构示意图。
图2是本发明的MCU架构示意图。
图3是本发明的恢复方法流程图。
具体实施方式
本发明提供了一种用于实现“跑飞”时自动就近恢复现场的MCU处理器核电路结构。在MCU正常工作时,该处理器核检测涉及写入的指令,并自动备份将要写入地址的原始数据,将其重新编码成可用于还原的指令存储起来,“跑飞”后看门狗发出复位信号,随后该结构将执行所存储的用于恢复的指令,执行完成后将继续执行正常的指令。通过本发明提供的技术方案,实现在MCU因受到干扰“跑飞”的情况下,无需人工干预,自动恢复到最近的断点处继续运行程序,从而提高了MCU在特殊工作环境下程序执行的连续性与工作的稳定性。
本发明在普通的处理器核流水线的基础上,添加备份模块(back)、编码器模块(encode)、备份指令存储模块(back_ram)以及对应的数据通路。参见图1、图2,在译码模块(id)添加写入类型指令的检测,检测到写入类型的指令后判断其为写存储器还是写寄存器,将类型判断结果、该条指令的地址以及写入地址输出到备份模块(back)和控制模块(ctrl);
备份模块(back)在控制模块(ctrl)的管理下从存储器(data_ram)和寄存器模块(regs)读取被写入地址的原始数据,此外还将记录每条写入指令的指令地址用于备份还原后恢复到正常执行的指令地址;
编码模块(encode)接收备份模块(back)传输的备份数据进行重新编码,将其编码为写入指令的“逆指令”形式,即向被写入地址处(写入指令所针对的寄存器或存储器)写入原始数据来进行恢复;
备份指令存储模块(back_ram)接收编码模块编码后的“逆指令”,同时存储其对应原始指令的指令地址。当进入备份恢复状态后,PC指针将指向该存储模块对应备份指令的地址来进行执行恢复。恢复完成后,指令地址(PC)指针指向最旧备份“逆指令”的原始指令的指令地址,从而回到正常执行状态。该指令存储模块的指令存储的数目决定了备份的断点时间,在存储到达上限后新备份的指令将覆盖最旧的指令从而实现相对程序正常执行固定的时间间隔。
实施例:
图1所示的为无备份功能的三级流水线结构加上数据存储器、指令存储器。其中取指模块(pc_reg)进行程序的计数,从指令存储器(Inst_rom)取出对应地址的指令然后送到译码模块(id),译码后将结果送到执行模块(ex)。执行的结果写入Regs寄存器堆或data_ram数据存储器。
图2是跑飞后自动恢复的处理器核流水线结构加上数据存储器、指令存储器,该结构在图一的三级流水线的基础上进行的扩展。图二中,该具备跑飞后还原功能的处理器核流水线结构在图一中流水线的基础上增加了备份模块(back)、编码器模块(encode)、备份指令存储模块(back_ram)以及对应的数据通路。各功能模块作用如下,
备份模块(back):在控制模块(ctrl)的控制下从存储器(data_ram)和寄存器堆(regs)读取被写入地址的原始数据,此外还将记录每条写入指令的指令地址。
编码模块(encode):接收备份模块(back)传输的备份数据进行重新编码,将其编码为写入指令的“逆指令”形式,即向被写入地址写入其原始数据来进行恢复。以RV32I指令为例,对于写寄存器的指令,将其重新编码为lui和addi两条指令以实现向指定地址的寄存器写入32位数据;对于写存储器的指令,将其重新编码为lui、addi、sw三条指令以实现向指定地址的存储器写入32位数据。
备份指令存储模块(back_ram):接收编码模块编码后的“逆指令”,同时存储接收其对应原始指令的指令地址。当进入备份恢复状态后,PC指针将指向该存储模块对应备份指令的地址来进行执行恢复。恢复完成后,PC指针指向最旧备份“逆指令”的原始指令的指令地址,从而回到正常执行状态。该指令存储模块的指令存储的数目决定了备份的断点时间,在存储到达上限后新备份的指令将覆盖最旧的指令从而实现相对程序正常执行固定的时间间隔。
表1给出了该处理器核的外部接口信号。信号为四类:分别是全局的时钟和复位、访问数据存储器的信号、访问指令存储器的信号、看门狗复位信号。其中访问数据存储器的信号可再细分为正常执行程序数据读写与备份读取数据。
信号 | 位宽 | 方向 | 功能描述 |
Clk | 1 | 输入 | 系统时钟 |
Rst | 1 | 输入 | 系统复位 |
Inst_i | 32 | 输入 | 指令输出 |
Inst_addr_o | 32 | 输出 | 取指地址 |
Mem_rd_addr_o | 32 | 输出 | 访存地址 |
Mem_rd_req_o | 1 | 输出 | 访存申请 |
Mem_rd_data_i | 32 | 输入 | 访存获取的数据 |
Mem_wr_data_o | 32 | 输出 | 写内存数据 |
Mem_wr_req_o | 1 | 输出 | 写内存请求 |
Mem_wr_addr_o | 32 | 输出 | 写内存地址 |
Wr_mem_data_addr_o | 32 | 输出 | 被备份的数据在存储器中地址 |
Wr_mem_data_en_o | 1 | 输出 | 读被存储器被备份数据原始地址使能 |
Ram_back_data_i | 32 | 输入 | 备份数据 |
wdt | 1 | 输入 | 看门狗复位信号 |
正常工作流程如图3所示。在正常工作下,备份模块以指令的形式将备份存储在备份指令存储模块(back_ram)。当看门狗复位信号拉高时,控制模块(ctrl)控制该结构进入读模式并停止备份,开始执行back_ram中的指令,在执行完成之后恢复到了备份的断点处,控制模块控制处理器核从该断点处开始正常工作。
Claims (2)
1.MCU处理器核电路结构,包括控制模块、取指模块、译码模块、执行模块、存储器模块、指令存储模块和寄存器模块,其特征在于,还包括备份模块、编码器模块和备份指令存储模块,所述备份模块分别连接至编码模块、译码模块、执行模块、存储器模块和寄存器模块,所述备份指令存储模块分别连接至编码模块、取指模块。
2.MCU处理器就近恢复现场方法,其特征在于,包括下述步骤:
(1)正常工作状态下,备份模块在控制模块的控制下从存储器或寄存器读取被写入地址所存储的原始数据,并记录每条写入指令的指令地址;
(2)当看门狗发出复位信号时,进入读模式并停止备份,然后执行备份指令存储模块中的指令,向指令所针对的被写入地址处写入原始数据,在执行完成之后恢复到了备份的断点处,控制模块控制处理器核从该断点处开始正常工作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211704346.0A CN115827332A (zh) | 2022-12-29 | 2022-12-29 | Mcu处理器核电路结构和mcu跑飞就近恢复现场方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211704346.0A CN115827332A (zh) | 2022-12-29 | 2022-12-29 | Mcu处理器核电路结构和mcu跑飞就近恢复现场方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115827332A true CN115827332A (zh) | 2023-03-21 |
Family
ID=85519211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211704346.0A Pending CN115827332A (zh) | 2022-12-29 | 2022-12-29 | Mcu处理器核电路结构和mcu跑飞就近恢复现场方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827332A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116932272A (zh) * | 2023-09-14 | 2023-10-24 | 飞腾信息技术有限公司 | 一种错误上报方法及微处理器 |
-
2022
- 2022-12-29 CN CN202211704346.0A patent/CN115827332A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116932272A (zh) * | 2023-09-14 | 2023-10-24 | 飞腾信息技术有限公司 | 一种错误上报方法及微处理器 |
CN116932272B (zh) * | 2023-09-14 | 2023-11-21 | 飞腾信息技术有限公司 | 一种错误上报方法及微处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US3533065A (en) | Data processing system execution retry control | |
US9690642B2 (en) | Salvaging event trace information in power loss interruption scenarios | |
US20100031084A1 (en) | Checkpointing in a processor that supports simultaneous speculative threading | |
JPH07117903B2 (ja) | 障害回復方法 | |
CN115827332A (zh) | Mcu处理器核电路结构和mcu跑飞就近恢复现场方法 | |
US8181063B2 (en) | Computer device, continuing operation method for computer device, and program | |
JPS6286449A (ja) | データ処理装置におけるページフォールト実行再開方法 | |
CN104484289A (zh) | 一种基于扇区的嵌入式系统写保护的装置以及方法 | |
CN104699550A (zh) | 一种基于lockstep架构的错误恢复方法 | |
CN102033823B (zh) | 一种保存数据的方法及装置 | |
CN115185746B (zh) | 一种基于C66x多核DSP芯片的上下文环境备份与恢复方法 | |
CN114756355B (zh) | 一种计算机操作系统的进程自动快速恢复的方法和装置 | |
JP3192354B2 (ja) | コンピュータシステムのリトライ処理装置 | |
CN112462847A (zh) | 提高配电自动化设备断电守时精度的方法 | |
JPH0644238B2 (ja) | 命令再実行制御方法 | |
CN115934426A (zh) | Mcu异常恢复方法 | |
JPH0793101A (ja) | データバックアップ装置 | |
JP2807026B2 (ja) | 並列プログラムの実行再現方法 | |
WO2023082332A1 (zh) | 一种故障恢复方法、装置、设备及计算机可读存储介质 | |
JPH0133856B2 (zh) | ||
CN118155673A (zh) | 分段上电恢复方法、装置、计算机设备及可读存储介质 | |
JPH0476138B2 (zh) | ||
CN118132427A (zh) | 芯片的运行跟踪方法、芯片、板卡、电子设备及存储介质 | |
SU1124314A1 (ru) | Устройство дл восстановлени информации при сбо х в блоках ЦВМ | |
JPS6244293B2 (zh) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |