CN101196847A - Cpu程序存储器自动维护的方法及硬件单元结构 - Google Patents

Cpu程序存储器自动维护的方法及硬件单元结构 Download PDF

Info

Publication number
CN101196847A
CN101196847A CNA2006101574437A CN200610157443A CN101196847A CN 101196847 A CN101196847 A CN 101196847A CN A2006101574437 A CNA2006101574437 A CN A2006101574437A CN 200610157443 A CN200610157443 A CN 200610157443A CN 101196847 A CN101196847 A CN 101196847A
Authority
CN
China
Prior art keywords
cpu
address
program memory
program
automatic maintenance
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
Application number
CNA2006101574437A
Other languages
English (en)
Inventor
谢洪德
彭亮
郑涛
周显文
韦毅
刘波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Arkmicro Technologies Inc
Original Assignee
Arkmicro Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Arkmicro Technologies Inc filed Critical Arkmicro Technologies Inc
Priority to CNA2006101574437A priority Critical patent/CN101196847A/zh
Publication of CN101196847A publication Critical patent/CN101196847A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种可用于片上系统中CPU掩模只读程序存储器自动维护的方法。该方法在不改变CPU内部结构、不占用CPU中断资源和不减慢CPU运行速度的情况下,通过对CPU掩模只读程序存储器错误区段程序自动屏蔽、跳转,对掩模只读程序存储器可能潜在的错误进行自动维护,具体包括如下步骤:当CPU程序存储器自动维护功能被激活时,比较器将处于透明监控状态,CPU发出的地址直接通过;其中,当CPU当前发出的程序存储器地址与更新目标地址相同时,模块自动产生一个替换该地址的跳转指令(JMP);CPU地址转移到正确的地址,读取更新过的正确指令数据;当更新指令读取、执行完毕后,单元电路又将系统切换同正常状态。

Description

CPU程序存储器自动维护的方法及硬件单元结构
技术领域
本发明涉及一种CPU程序存储器自动维护的方法及结构,特别是嵌入式微处理器中程序存储器的自动维护方法及结构。
背景技术
随着集成电路设计和工艺技术的发展,片上系统(SOC)已经在消费电子产品领域中被广泛应用。这不仅有效减少了电路的尺寸、降低了后期系统设计的复杂性,而且还具有高可靠性、低成本、低功耗等优点,可以说片上系统代表了未来集成电路的发展方向。
作为一个完整的片上系统都必须包含的一个核心单元——微处理器(CPU),但仅有CPU并不能使整个系统运行起来,而这一切就要靠程序来提供支持。目前用来存储程序的程序存储器有只读存储器和可重写存储器两种。但为了降低量产后的芯片成本,很多芯片设计厂商都会采用一定容量的掩模程序存储器来存储片上系统的启动、配置和诊断等程序。但如果在芯片量产后发现掩模程序存储器中指令数据有一些错误存在,而这些错误由于在设计时已经被固化下来并不能像外部可擦除程序存储器那样通过上电方式消除,这时只能从新设计加工该掩模程序存储器,这样不仅大大耗费了研发时间,而且更重要的是大大增加了设计成本。所以,如何能在不大量增加研发成本的情况下快速修正这些错误将成为一个技术难题。
为了防止这种可能需要重新加工的情况出现,设计人员想出一种解决方案,那就是当CPU运行到有错误程序指令数据的时候使用正确的外部数据来将其替换。针对这个思路目前业界已有一些可行的方法,当前主要使用的解决方法包括以下几种:
其中一种方法是当CPU运行到掩模程序存储器错误的程序指令数据的地址时,将禁止掩模程序存储器的数据发送到地址线上,然后通过特殊的机制将被修正好的程序指令数据重新发送到地址线上让CPU执行,以达到程序指令数据修复的目的。
另一种方法是将已经修正过的程序指令数据以中断服务程序形式存储于外部的随机存储器RAM中,当CPU运行到掩模程序存储器的错误地址时,产生一个中断信号,使CPU转到执行中断服务程序处执行,以避开原有错误的程序指令段,达到程序指令数据修复的目的。
还有一种方法就是略微改变CPU内部结构,在地址、数据总线中加入程序存储器错误校正单元,在内部直接对地址和数据进行监控,以达到程序指令数据修复的目的。
以上的三种方法虽然都可行也有可取之处,但都具有其明显的局限性。对于第一种方法由于要先禁止程序存储器的输出再将正确的程序指令数据发送到地址线上,会大大影响正常程序的运行速度,在实时性要求较高的系统中将很难满足要求;第二种方案采用中断方式实现,这种方法简单有效,在简单的片上系统中运用的话是一个不错的解决方案,但由于CPU能支持的中断数目通常是有限的,如果系统程序相当复杂可能会造成系统中断,分配紧张,甚至可能会出现无法安排相应的中断用于程序修正之用;相对于前面的两种方式,第三种方式显然是一种很高效而且不消耗CPU本身硬件资源的一种处理方式,但由于改变了CPU内部的总线连接结构使CPU内部结构的复杂程度提高,这使研发人员需要花费更多额外的时间对CPU功能、时序等方面进行验证,增加了研发成本。另外,对于采用CPU IP方式开发SOC系统的设计人员也可能无法轻易修改CPU内部的结构以达到程序指令数据修复的目的。
发明内容
本发明的目的是提供一种能解决掩模式CPU程序存储器程序指令数据的错误,同时兼顾CPU运行速度、硬件资源和内部结构等各方面因素,使芯片整个系统在后期的维护中具有灵活性的同时又不影响整体系统性能的方法及结构。
针对上述存在的问题,本发明公开了一种可用于片上系统中CPU掩模只读程序存储器自动维护的方法。该方法在不改变CPU内部结构、不占用CPU中断资源和不减慢CPU运行速度的情况下,通过对CPU掩模只读程序存储器错误区段程序自动屏蔽、跳转,对掩模只读程序存储器可能潜在的错误进行自动维护,具体包括如下步骤:
当CPU程序存储器自动维护功能被激活时,比较器将处于透明监控状态,CPU发出的地址直接通过;其中,
当CPU当前发出的程序存储器地址与更新目标地址相同时,模块自动产生一个替换该地址的跳转指令(JMP);
CPU地址转移到正确的地址,读取更新过的正确指令数据;
当更新指令读取、执行完毕后,单元电路又将系统切换回正常状态。
所述的CPU程序存储器自动维护的方法,其特征在于:未启用CPU程序存储器自动维护功能时,该硬件单元处于透明传输状态,即直接将CPU请求的程序地址发送到掩模程序存储器,CPU执行该地址所指向的程序存储器内的指令。
所述的CPU程序存储器自动维护的方法,其特征在于:所述方法对CPU读取程序存储器地址进行透明地监控,当CPU所指定的程序存储器指令地址为错误程序段入口时将该地址修改,并使其指向存储正确程序指令存储器的地址,并提供正确的程序指令数据。
CPU程序存储器自动维护硬件单元结构包括:一个或数个可能需要修复程序地址段的一对或数对地址寄存器和相应数量的修复允许寄存器位、一用于比较当前CPU所读取的程序存储器地址与更新目标地址的地址比较切换器、一地址更新模块、一定容量用于存储正确程序指令数据的可重写存储器,输出缓冲模块和辅助电路。
本发明的有益效果在于:在普通的CPU基础上,即在不改变现有的CPU内部架构的情况下,采用一种特殊方法解决在芯片设计时掩模只读存程序储器可能未考虑到的或潜在的错误,即CPU程序存储器自动维护的方法,该方法无须改变现有的CPU内部架构,只在外部添加一些简单逻辑单元,而且在程序修复过程中不会占用到CPU的任何中断和影响CPU的运行速度。利用这种方法及结构的片上系统在后期的改进更新和维护过程中具有很大的灵活性,可以适应不同应用背景的需要。
附图说明
现将结合参考附图更详细的描述本发明所述的方法及结构,但并不限于附图图形的形式:
图1是一个包含CPU程序存储器自动维护单元的片上系统框图;
图2是硬件实现程序自动维护单元基本操作的流程图;
图3是CPU中程序运行地址转换示意图;
图4是CPU程序自动维护硬件单元的基本结构示意图。
具体实施方式
本发明所描述的方法是当CPU维护修复程序可用时,可根据程序存储器自动维护单元的选择设置和地址匹配与否执行CPU程序自动维护的配置方式。如果当前维护修复程序可用而且自动维护单元选择设置有效,则CPU运行到相应地址的程序内容时自动维护模块产生跳转指令使CPU能执行正确的新程序;如果当前维护修复程序不可用或自动维护单元选择设置无效,CPU则执行正常地址的程序内容。
下面将参照本发明的一个具体实施例详细描述本发明。
附图1所示是一个包含CPU程序存储器自动维护单元的片上系统框图。本发明所述应用在一个嵌入式系统中,该自动维护系统包含所述的自动维护硬件单元结构和一微处理器CPU(101)、一用于存储CPU程序指令的掩模程序存储器(103)、一CPU程序存储器自动维护单元(102)、其他功能模块(104)以及一定数量的地址/数据总线(105~107)等,所述其他功能模块受CPU控制以实现特定功能的单元模块。
该嵌入式系统通常以一单芯片形式来实现,其基本工作流程如下:当系统中的CPU(101)启动时将发出读取指令的请求,该请求通过地址线(106)发出,该地址线同时连接到掩模程序存储器单元(103)和CPU程序存储器自动维护单元(102),当掩模程序存储器(103)接收到CPU发出的地址时将程序指令数据通过数据线(107)送出。当CPU程序存储器自动维护单元(102)功能没有被激活时,程序存储器(103)送出的指令数据将直接通过数据线(105)送到CPU中执行;当CPU程序存储器自动维护单元(102)功能被激活时,该单元模块(102)开始对CPU(101)送出地址的地址线(106)进行透明监控。一般情况下掩模程序存储器(103)送出的数据将直接通过数据线(105)直接送到CPU(101)去执行。只有当CPU(101)送出的地址与CPU程序自动维护单元(102)中的目标地址寄存器地址相同时,CPU程序自动维护单元(102)将自动产生一个JMP指令返回CPU(101)中去执行,并修改CPU(101)送出地址使其指向存储有正确程序指令的存储器中,当修复程序运行完毕后自动执行返回指令使CPU(101)继续执行掩模存储器原来的程序。
附图2是根据本发明附图1中所描述的系统以流程图的方式对CPU程序存储器自动维护单元的基本工作流程的描述。在CPU取指令阶段依次判断CPU程序存储器自动维护单元是否被激活,指令地址是否与预设定错误指令地址相匹配,如果匹配则进行指令替换,当指令被替换、执行完毕系统将自动返回到原程序指令继续运行。
本发明所述的方法主要是能实现程序指令的自动修正,图3描述的是CPU程序存储器自动维护单元执行过程中指令执行的实际过程。其中图3A图描述的是存在于掩模的指令序列a0、a1、a2……an、an+1,其中a2~an-1区间的指令存在缺陷,即需要修复的目标程序指令段;图3B图描述的是存储于其它可重写存储器件中的正确程序指令序列b0、b1、b2……bn。当CPU程序存储器自动维护单元被激活,CPU执行指令到a2时,将被CPU程序存储器自动维护单元自动产生的JMP指令所替代,并跳转到b0指令处继续执行,当执行到修正程序的最后一条指令bn时又将自动返回到正常的指令序列an、an+1……中继续执行下去,因此CPU在执行指令过程中的实际指令序列将变为C图中所示的形式,从而实现了CPU程序存储器的自动维护。
本发明在具体实施时针对需要修复的地址数目、需要修复的程序段长度等可采用多种方式,图4是一个拥有两个指令修复地址入口功能的CPU程序存储器自动维护单元基本结构。其中地址比较切换器用于对输入的指令地址和修复目标地址进行比较和地址切换;地址更新模块用于在CPU的取指(InstructionFetch)阶段对修复目标地址更新产生正确的目标指令数据地址,最后由输出缓冲模块输出。由于该程序存储器自动维护单元独立于CPU,运行时也没有产生周期延时的单元器件,因此不会对CPU的执行效率产生任何的影响。由此可看出本发明的优点是无须改变现有的CPU内部架构,并且在程序修复过程中不会占用到CPU的任何中断和影响CPU的运行速度,使片上系统在后期的改进更新和维护具有很大的灵活性。

Claims (4)

1.CPU程序存储器自动维护的方法,其特征在于:该方法通过对CPU掩模只读程序存储器错误区段程序自动屏蔽、跳转的方式对掩模只读程序存储器可能潜在的错误进行自动维护,具体包括如下步骤:
当CPU程序存储器自动维护功能被激活时,比较器将处于透明监控状态,CPU发出的地址直接通过;其中,
当CPU当前发出的程序存储器地址与更新目标地址相同时,模块自动产生一个替换该地址的跳转指令(JMP);
CPU地址转移到正确的地址,读取更新过的正确指令数据;
当更新指令读取、执行完毕后,单元电路又将系统切换回正常状态。
2.根据权利要求1所述的CPU程序存储器自动维护的方法,其特征在于:未启用CPU程序存储器自动维护功能时,该硬件单元处于透明传输状态,即直接将CPU请求的程序地址发送到掩模程序存储器,CPU执行该地址所指向的程序存储器内的指令。
3.根据权利要求1或2所述的CPU程序存储器自动维护的方法,其特征在于:所述方法对CPU读取程序存储器地址进行透明地监控,当CPU所指定的程序存储器指令地址为错误程序段入口时将该地址修改,并使其指向存储正确程序指令存储器的地址,并提供正确的程序指令数据。
4.CPU程序存储器自动维护硬件单元结构包括:一个或数个可能需要修复程序地址段的一对或数对地址寄存器和相应数量的修复允许寄存器位、一用于比较当前CPU所读取的程序存储器地址与更新目标地址的地址比较切换器、一地址更新模块、一定容量用于存储正确程序指令数据的可重写存储器,输出缓冲模块和辅助电路。
CNA2006101574437A 2006-12-08 2006-12-08 Cpu程序存储器自动维护的方法及硬件单元结构 Pending CN101196847A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2006101574437A CN101196847A (zh) 2006-12-08 2006-12-08 Cpu程序存储器自动维护的方法及硬件单元结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2006101574437A CN101196847A (zh) 2006-12-08 2006-12-08 Cpu程序存储器自动维护的方法及硬件单元结构

Publications (1)

Publication Number Publication Date
CN101196847A true CN101196847A (zh) 2008-06-11

Family

ID=39547278

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006101574437A Pending CN101196847A (zh) 2006-12-08 2006-12-08 Cpu程序存储器自动维护的方法及硬件单元结构

Country Status (1)

Country Link
CN (1) CN101196847A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103268237A (zh) * 2013-05-10 2013-08-28 东信和平科技股份有限公司 一种掩膜智能卡的补丁功能扩展方法及装置
CN104156241A (zh) * 2014-07-31 2014-11-19 中国船舶重工集团公司第七0九研究所 处理器微程序的初始化配置方法及系统
CN104246710A (zh) * 2012-04-16 2014-12-24 国际商业机器公司 高可用性处理器中的可重新配置修复模式
CN110476153A (zh) * 2018-03-09 2019-11-19 深圳市汇顶科技股份有限公司 访问指令sram的方法和电子设备
CN110955605A (zh) * 2019-12-10 2020-04-03 宁波轸谷科技有限公司 一种cpu验证单步动态执行的方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104246710A (zh) * 2012-04-16 2014-12-24 国际商业机器公司 高可用性处理器中的可重新配置修复模式
CN104246710B (zh) * 2012-04-16 2017-10-20 国际商业机器公司 用于错误修复的方法和系统
CN103268237A (zh) * 2013-05-10 2013-08-28 东信和平科技股份有限公司 一种掩膜智能卡的补丁功能扩展方法及装置
CN104156241A (zh) * 2014-07-31 2014-11-19 中国船舶重工集团公司第七0九研究所 处理器微程序的初始化配置方法及系统
CN104156241B (zh) * 2014-07-31 2019-08-13 中国船舶重工集团公司第七0九研究所 处理器微程序的初始化配置方法及系统
CN110476153A (zh) * 2018-03-09 2019-11-19 深圳市汇顶科技股份有限公司 访问指令sram的方法和电子设备
CN110955605A (zh) * 2019-12-10 2020-04-03 宁波轸谷科技有限公司 一种cpu验证单步动态执行的方法

Similar Documents

Publication Publication Date Title
TWI516909B (zh) 包括在裝置中自主的硬體式深度省電之能源效率及能源節約的方法、設備及系統
US8914672B2 (en) General purpose hardware to replace faulty core components that may also provide additional processor functionality
EP1655667A2 (en) A patching device for a processor
US7853834B2 (en) Instruction-based timer control during debug
US20150234661A1 (en) Semiconductor integrated circuit device and system using the same
JP2006107507A (ja) 命令語キャッシュと命令語変換参照バッファの制御器、及びその制御方法
US20130036426A1 (en) Information processing device and task switching method
CN101196847A (zh) Cpu程序存储器自动维护的方法及硬件单元结构
US7831862B2 (en) Selective timer control during single-step instruction execution
CN112230992A (zh) 一种包含分支预测循环的指令处理装置、处理器及其处理方法
US20090063907A1 (en) Debugging system, debugging apparatus and method
KR20170031758A (ko) 역방향 메모리 스페어링을 위한 방법 및 장치
JP2005316559A (ja) デバッグ回路およびデバッグ制御方法
US8060778B2 (en) Processor controller, processor control method, storage medium, and external controller
US9652259B2 (en) Apparatus and method for managing register information in a processing system
US20130111071A1 (en) Self-healing and reconfiguration in an integrated circuit
CN114489743B (zh) 一种片上可编程系统的程序烧写及加载运行方法
US6993674B2 (en) System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
US20120072632A1 (en) Deterministic and non-Deterministic Execution in One Processor
EP1408405A1 (en) "A reconfigurable control structure for CPUs and method of operating same"
JP2012137946A (ja) 半導体装置
CN110990201B (zh) 一种自愈管理控制器、SoC及自愈方法
JP2006221606A (ja) データプロセッサ
US20060195849A1 (en) Method for synchronizing events, particularly for processors of fault-tolerant systems
US20050251640A1 (en) System and method for configuring a computer system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20080611