可修补嵌入式微处理器系统中的程序的装置的制作方法

文档序号:6412252阅读:177来源:国知局
专利名称:可修补嵌入式微处理器系统中的程序的装置的制作方法
技术领域
本发明涉及嵌入式微处理器系统(embedded microprocessor)方面的技术,特别是一种可修补嵌入式微处理器系统中的程序的装置,其可在执行程序的过程中,将所执行的永久性存储的程序(例如为存储于一掩模式只读存储器(mask ROM)中的程序)中有错误码的部分,以正确的程序码来替换。
通常,公知的微处理器系统通过将其中的微处理器、存储器、及输入/输出装置等单个的功能单元分别制成单个的集成电路元件,再将这些集成电路元件安装在印刷电路板上而制成。然而随着半导体技术的不断发展,目前已可将微处理器系统中的各种功能单元整合于单一芯片上。在一个芯片上包含此一微处理器的微处理器系统即称为一“嵌入式微处理器系统”。


图1为一公知的嵌入式微处理器系统的中央处理器的功能方块图。此嵌入式微处理器包含一只读存储器单元(ROM)800,一程序记数器81,一解码单元82,一执行单元83,以及一控制单元84。ROM800用以存储该嵌入式微处理器所执行的永久性固定程序。此嵌入式微处理器可将程序计数器81所输出的计数值作为存取地址,用以读取ROM800中对应的指令。所读取的指令接着经由解码单元82作解码处理后,再传送给执行单元83作执行处理。执行指令的过程中,执行单元83根据执行情况改变程序计数器81的计数值,以读取特定地址处的指令。上述所有操作均在控制单元84的控制下进行。此嵌入式微处理器的结构和功能与现有技术相同,且为微处理机系统的基本知识,因此以下将不再对其作更进一步详细的说明。
普通的嵌入式微处理器的ROM800大多采用掩模式只读存储器。这是由于掩模式只读存储器的成本比其它种类的存储器低。在此结构下,最初的程序在设计完成后,编译后的二元码便以一掩模(mask)将其转录到集成电路中的只读存储器上。转录后的二元码便会永久性地存储在此集成电路中的只读存储器内。如需更新此二元码,则必须再进行另一次掩模制作,重新将新程序的二元码写入新的只读存储器内。然而此掩模制作极为不便且耗时。而且已制作好的嵌入式微处理器可能因初始程序的错误而不能使用,造成极大的浪费。
因此,本发明的主要目的在于提供一种可修补嵌入式微处理器系统中的程序的装置,其可简便而快速地,不必借助掩模制作过程便可修补该嵌入式微处理器系统中的掩模式只读存储器中所储存的程序码的错误区段。
本发明的另一目的在于提供一种可修补嵌入式微处理器系统中的程序的装置,其可利用该嵌入式微处理器系统中的中央处理单元,即可简便而快速地将其中的掩模式只读存储器中所存储的程序码的错误区段,以存储于一随机存取存储器单元中的替换程序区段来替换。
根据以上所述目的,本发明提供了一种新颖的可修补嵌入式微处理器系统中的程序的装置。本发明的装置可应用在一嵌入式微处理器系统上,用以将该嵌入式微处理器系统中的一只读存储器单元中的多个错误区段的程序码,以多个对应的包含正确程序码的替换程序区段来替换。
本发明的装置包含以下组成元件(a)一替换程序存储器单元,用以存储所述多个替换程序区段;(b)一错误区段地址表存储装置,用以存储该只读存储器单元中的多个错误区段的起始地址;(c)一替换区段地址表存储装置,用以存储所述多个替换程序区段在该替换程序存储器单元的起始地址值;(d)一程序计数器,用以产生顺序的计数值;(e)一比较电路,用以将该程序记数器所产生的计数值与该错误区段地址表存储装置所存储的多个错误区段的起始地址值进行比较;若两者不相等,则该比较电路产生一第一选择信号;若计数值与该多个错误区段的起始地址值中的任何一个相等,则该比较电路产生一第二选择信号,并使该替换区段地址表存储装置输出该错误区段所对应的替换程序区段的地址值;以及(f)一多路复用器,其具有至少二个输入端,分别用于接收该程序计数器输出的计数值及该替换区段地址表存储装置所输出的替换程序区段的地址值;该多路复用器耦接至该比较电路;若该比较电路输出第一选择信号,则该多路复用器选择该程序计数器所输出的计数值作为其输出;若该比较电路输出第二选择信号,则该多路复用器选择该替换区段地址表存储装置所输出的替换程序区段的地址值作为其输出;该多路复用器的输出作为一存取地址值,用以读取只读存储器单元及该替换程序存储器单元内的程序。
上述的比较电路包含以下组成元件(a)多个数字比较器,分别用以将程序计数器所产生的计数值与多个错误区段的起始地址值进行比较;每一个数字比较器中所进行的比较若不相等,则产生一第一逻辑信号;若相等,则产生一第二逻辑信号;以及(b)一或逻辑装置,其具有多个输入端,分别耦接至该多个数字比较器的输出端;若各数字比较器均输出第一逻辑信号,则或逻辑装置产生的逻辑输出即为第一选择信号;若各数字比较器有任何一个输出第二逻辑信号,则或逻辑装置产生的逻辑输出即为第二选择信号。
上述装置可在程序执行到只读存储器单元中的错误区段时,改换执行存储于随机存取存储器单元中所对应的正确程序码。因此应用本发明的装置的嵌入式微处理器系统不会因只读存储器单元中含有错误的程序码,而导致系统故障;也不必因为只读存储器单元中有少数部分须更新,而更换整个只读存储器单元。
以下参考附图详细说明本发明的实施例,其中,图1为表示一公知的嵌入式微处理器系统的中央微处理器的方块图;图2为表示一配置有本发明装置的嵌入式微处理器系统的方块图;图3A为图2的装置的详细的功能方块图;图3B为一示意图,其中显示一只读存储器单元中四个含有错误码的区段,以及一随机存取存储器单元中对应的四个替换程序区段;图3C为一示意图,用以表示图3B中其中一个错误区段以及其对应的替换程序区段的地址的相互关系。
图2表示一配置有本发明装置的嵌入式微处理器系统,其包含一错误区段地址表10,一比较电路20,一替换区段地址表30,一程序计数器40,一多路复用器(MUX)50,一只读存储器单元60,一随机存取存储器单元(RAM)70,一解码执行单元75,一中央处理单元(CPU)80,以及一地址解码器90。
此嵌入式微处理器系统可在中央处理单元80的控制下,在发现其中的ROM60中的程序有错误或需要更新时,将其中的含有错误码的区段(segment)以正确的程序码替换。而正确的程序码则以可编程的控制方式暂存在RAM70中。
ROM60用以存储此嵌入式微处理器系统所执行的例行性固定程序。ROM60例如为掩模式只读存储器,其中所存储的程序在经写入后,便永久性地存储在只读存储器内,无法任意更改。
若发现ROM60中的程序有错误或需要更新时,其中的含有错误码的区段的起始地址会被存储在该错误区段地址表10中。而用来取代这些错误区段的替换程序区段则存储在RAM70中。这些替换程序区段在RAM70中的起始地址则存储在该替换区段地址表30中。
中央处理单元80可借助地址解码器90及总线85执行下列工作(1)将ROM60中的错误区段的起始地址存入该错误区段地址表10中;(2)将这些错误区段所对应的替换程序区段存入RAM70中;以及(3)将这些替换程序区段在RAM70的起始地址存入替换区段地址表30中。上述三个操作,即替换程序区段存入其存储器单元RAM70,错误区段的起始地址存入错误区段地址表10,以及替换程序区段在RAM70的起始地址存入替换区段地址表30,可在一应用系统中由一系统控制器进行在线写入程序设计。
程序计数器40可产生顺序的计数值,用以对ROM60及RAM70进行数据存取。
多路复用器50具有二个输入端I1,I2,分别用以接收该程序计数器40所输出的计数值,以及来自替换区段地址表30的一替换程序区段的起始地址值。该多路复用器耦接至比较电路20;若比较电路的输出为SELECT=0,则多工器50将选择I1端的输入作为其输出(即该程序计数器40所输出的计数值);若比较电路20的输出为SELECT=1,则该多路复用器选择I2端的输入作为其输出(即来自替换区段地址表30的一替换程序区段的起始地址值)。
以下将结合图3A至3C,以一实施例来说明本发明的装置如何将ROM60中的错误区段,利用RAM70中所存储的替换程序区段来取代。在该实施例中,假设ROM60中有四个错误区段。但本发明并不限于可修补四个错误区段,任何数目的错误区段均可修补。
请首先参阅图3B,在该实施例中,假设存储于ROM60中的程序码中,发现有四个区段含有错误码,例如为标号61,62,63,64所示的四个区段。这四个错误区段的起始地址分别以EPC1,EPC2,EPC3,及EPC4表示。
以上四个错误区段所对应的正确程序码区段分别存储在RAM70中的四个区段中,例如为标号71,72,73,74所示的四个替换程序区段。这四个替换程序区段的起始地址分别以RPC1,RPC2,RPC3,及RPC4表示。在本实施例中,这四个替换程序区段存储在RAM70中一段连续的地址上。
本发明的装置可在当其中的嵌入式微处理器系统执行到ROM60中的任一错误区段时,将其存取地址值PC从该错误区段的起始地址改为该错误区段所对应的替换程序区段的起始地址。例如当目前的存取地址值PC为EPC1时,则将地址值改为RPC1;当存取位址值PC为EPC2时,则将其改为RPC2;当存取位址值PC为EPC3时,则将其改为RPC3;而当存取位址值PC为EPC4时,则将其改为RPC4。如此便可用RAM70中的替换区段来取代ROM60中的错误区段,使得程序的执行得以顺利进行,不会因遇到错误码而导致系统故障。
接着参阅图3A,其中表示本发明的装置如何用RAM70中的替换程序区段来取代ROM60中的错误区段。如图3A所示,图3A中所示的四个错误区段的起始地址EPC1,EPC2,EPC3,及EPC4分别被登录在该错误区段地址表10中,如标号11,12,13,14所示;而其对应的替换程序区段在该RAM70中的起始地址RPC1,RPC2,RPC3,及RPC4则分别被登录在该替换区段地址表30中,如标号31,32,33,34所示。
比较电路20中包含四个分别对应于错误区段地址表10中的四个起始地址值EPC1,EPC2,EPC3,及EPC4的数字比较器21,22,23,24。这四个数字比较器21,22,23,24可分别将四个起始地址值EPC1,EPC2,EPC3,及EPC4与程序计数器40的输出进行比较;若为等值,则输出(分别以S1,S2,S3,S4表示)一第一逻辑信号(例如为1);反之若不相等,则输出一第二逻辑信号(例如为0)。
在程序正确执行时(即解码执行单元75所处理的程序为ROM60中正确部分的程序码时),上述四个数字比较器21,22,23,24的输出S1,S2,S3,S4均为0。这将使得或门25的输出为0(即SELECT=0);而SELECT=0的情况将使得多路分用器50将程序计数器40的输出选择作为其输出。这使得ROM60及RAM70的存取地址值PC等于该程序计数器40目前的输出值。
在解码执行单元75所处理的程序进行到ROM60中的错误区段时,例如当程序计数器40所输出的计数值等于EPC1的值时,则数字比较器21的输出变为S1=1。这一方面使得RPC1被放置到该替换区段地址表30的输出数据线301上;另一方面将使得或门25的输出变为1(即SELECT=1);而SELECT=1的情况使得多路分用器50将输出数据线301上的RPC1选择作为其输出。这使得存取地址值PC等于RPC1的值;即此时解码执行单元75将执行由RAM70中位于RPC1的地址处所读取的程序码。
接着参阅图3C,假设第一个错误区段61中的程序码共占据ROM60中n个地址;即代表此错误区段61的起始地址为EPC1,结束地址为(EPC1+(n-1))。而此错误区段61所对应的替换程序区段71在RAM70中共占据m个地址;即此替换程序区段71的起始址为RPC1,结束地址为[RPC1+(m-1)]。则此替换程序区段71的结束地址[RPC1+(m-1)]处所存储的指令必须为一无条件的地址跳跃指令;即此处的地址跳跃指令将使得存取地址值PC变成(EPC1+n);该地址为ROM60中跳过错误区段61后的下一个地址处的指令。
同样,接着程序遇到ROM60中的第二个错误区段62时,其存取地址值PC由EPC2改变成RPC2,由此改为执行RAM70中的第二个替换程序区段72中的程序;再接着遇到第三个错误区段63时,其存取地址值PC会由EPC3改变成RPC3,由此改为执行RAM70中的第三个替换程序区段73中的程序;再接着遇到第四个错误区段64时,其存取地址值PC会由EPC4改变成RPC4,由此改为执行RAM70中的第四个替换程序区段74中的程序。
由以上说明可知,当程序执行到ROM60中的错误区段61,62,63,64时,便会通过本发明的装置,而改为执行RAM70中所对应的替换程序区段中的正确程序码。因此应用本发明的装置的嵌入式微处理器系统不会因只读存储器单元中含有错误程序码,而导致系统故障,也不必因为只读存储器单元中有少数部分须更新,而更换整个只读存储器单元。
在本优选实施例中,本发明的嵌入式微处理器5包括错误区段地址表10,比较电路20,替换区段地址表30,程序计数器40,多路复用器50,只读存储器单元60,随机存取存储器单元70,以及解码执行单元75等。如本领域的技术人员所知,这种嵌入式微处理器可包括其它更多的功能模组。
以上所述仅为本发明的优选实施例,并非用以限定本发明的范围,凡其它未脱离本发明精神下所完成的等效改变均应包含在下述专利要求范围内。
权利要求
1.一种可修补嵌入式微处理器系统中的程序的装置,所述装置可将该嵌入式微处理器系统中的一只读存储器单元中的多个错误区段的程序码,以多个对应的含有正确程序码的替换程序区段来替换,其组成元件包含一替换程序存储器单元,用以存储所述多个替换程序区段;一错误区段地址表存储装置,用以存储所述只读存储器单元中的多个错误区段的起始地址;一替换区段地址表存储装置,用以存储所述多个替换程序区段在所述替换程序存储器单元的起始地址值;一程序计数器,用以产生顺序的计数值;一比较电路,用以将该程序计数器所产生的计数值与该错误区段地址表存储装置中所存储的多个错误区段的起始地址值进行比较;若均不相等,则该比较电路产生一第一选择信号;若计数值与所述多个错误区段的起始地址值其中的任何一个相等,则该比较电路产生一第二选择信号,并使该替换区段地址表存储装置输出该错误区段所对应的替换程序区段的地址值;以及一多路复用器,其具有至少二个输入端,分别用于接收所述程序计数器输出的计数值及所述替换区段地址表存储装置所输出的替换程序区段的地址值;该多路复用器耦接于所述比较电路;若所述比较电路输出所述第一选择信号,则该多路复用器选择所述程序计数器输出的计数值作为其输出;而若所述比较电路输出所述第二选择信号,则该多路复用器选择所述替换区段地址表存储装置所输出的替换程序区段的地址值作为其输出;该多路复用器的输出作为一存取地址值,用以读取所述只读存储器单元及所述替换程序存储器单元内的程序。
2.如权利要求1所述的装置,其中所述比较电路包含多个数字比较器,分别用以将所述程序计数器产生的计数值与所述多个错误区段起始地址值进行比较;每一个数字比较器中所进行的比较若不相等,则产生一第一逻辑信号;若相等,则产生一第二逻辑信号;以及一或逻辑装置,其具有多个输入端,分别耦接至所述多个数字比较器的输出端;若该多个数字比较器均输出第一逻辑信号,则该或逻辑装置产生的逻辑输出即为所述第一逻辑信号;若该多个数字比较器有任何一个输出第二逻辑信号,则该或逻辑装置产生的逻辑输出即为所述第二选择信号。
3.如权利要求2所述的装置,其中所述比较电路中的多个数字比较器与所述错误区段地址表存储装置中所存储的多个错误区段的起始地址值之间形成一一对应的关系。
4.如权利要求1所述的装置,其中所述错误区段地址表存储装置中存储的多个错误区段的起始地址值与所述替换区段地址表存储装置中存储的多个替换程序区段起始地址值之间形成一一对应的关系。
5.如权利要求1所述的装置,其中所述替换程序存储器单元中所存储的每一替换程序区段,存储在该替换程序存储器单元中的一段连续的地址上。
6.如权利要求1所述的装置,其中所述只读存储器单元中的每一错误程序区段,存储在该只读存储器单元中的一段连续的地址上。
7.如权利要求1所述的装置,其中所述替换程序存储器单元中所存储的所述多个替换程序区段中,每一个替换程序区段的最后一个指令为一地址跳跃指令,其目的地址即为该替换程序区段所对应的错误区段的最后一个地址的下一个位址。
8.如权利要求1所述的装置,其中所述替换程序存储器单元、错误区段地址表存储装置以及替换区段地址表存储装置可在一应用系统中,由一系统控制器进行在线写入的程序设计。
9.一种可修补嵌入式微处理器系统中的程序的装置,其可将该嵌入式微处理器系统中的一只读存储器单元中的一错误区段的程序码,以对应的含有正确程序码的替换程序区段来替换,其组成元件包含一替换程序存储器单元,用以存储该替换程序区段;一错误区段地址表存储装置,用以存储所述只读存储器单元中的所述错误区段的起始地址;一替换区段地址表存储装置,用以存储所述替换程序区段在所述替换程序存储器单元的起始地址值;一程序计数器,用以产生顺序的计数值;一比较电路,用以将该程序计数器所产生的计数值与该错误区段地址表存储装置中所存储的该错误区段的起始地址值进行比较;若不相等,则该比较电路产生一第一选择信号;若计数值与该错误区段的起始地址值相等,则该比较电路产生一第二选择信号,并使该替换区段地址表存储装置输出该错误区段所对应的替换程序区段的地址值;以及一多路复用器,其具有至少二个输入端,分别用于接收该程序计数器所输出的计数值及该替换区段地址表存储装置所输出的替换程序区段的地址值;该多路复用器并耦接至该比较电路;若该比较电路输出该第一选择信号,则该多路复用器选择该程序计数器所输出的计数值作为其输出;而若该比较电路输出该第二选择信号,则该多路复用器选择该替换区段地址表存储装置所输出的替换程序区段的地址值作为其输出;该多路复用器的输出作为一存取地址值,用以读取该只读存储器单元及该替换程序存储器单元内的程序。
全文摘要
一种可修补嵌入式微处理器系统中的程序的装置,所述装置可将嵌入式微处理器系统中的只读存储器单元中的多个错误区段的程序码以正确的程序码区段来替换。此装置不必借助掩模制作过程便可修补一嵌入式微处理器系统中的掩模式只读存储器中所存储的永久性的程序码。经由一比较电路及一多路复用器的作用,在程序执行到只读存储器中的错误区段时,转而执行存储在随机存取存储器中所对应的正确程序码。
文档编号G06F11/28GK1208194SQ9711616
公开日1999年2月17日 申请日期1997年8月8日 优先权日1997年8月8日
发明者徐荣富 申请人:华邦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1