用于修改静态存储装置中微指令的方法和设备制造方法及图纸

技术编号:2880568 阅读:197 留言:0更新日期:2012-04-11 18:40
用于对驻留在静态存储装置中的程序流程进行修改的方法和设备。当来自静态存储装置的微指令需要进行修改时,跳转点寄存器就用于保存触发中断事件的跳转点地址。当当前的程序计数器含有与跳转点地址相等的地址且跳转点寄存器有效时,就产生中断事件,将程序流程从静态存储装置重新定向到可编程存储装置上。本发明专利技术使用中断来绕过驻留在静态存储装置中的微指令部分,而不是使用中断来指示外部事件的发生。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及用于微处理器的控制存储器领域。具体说,本专利技术涉及对同时使用只读存储器(ROM)和随机存储器(RAM)的控制存储器装置的修改。
技术介绍
控制存储器含有控制微处理器数据通路的可执行微指令。在一些机器上,控制存储器由RAM组成,而在其他机器中,控制存储器就是ROM。RAM的内容很容易用新的信息进行重写。然而,RAM是易失的,即RAM的内容仅在给电路施加电源的这段时间周期期间能够保持。相反,ROM的内容是在ROM制造时插入,并且即使在断电时也不能被改动或擦除。当大规模制造时,ROM比RAM便宜很多。处于对RAM和ROM成本的考虑,微码程序员通常用RAM设计新的电路,以便可以很容易地修正程序错误,但是在最终设计阶段,为了将生产成本减至最小,就用ROM取代RAM。然而,即使是最严格的设计检验也会遗漏程序错误,而这些错误将随后永久嵌入在静态ROM中。当在存储于ROM中的微指令集中发现有程序错误时,程序员就创建补丁来修正错误。在本领域中的“补丁”术语是指引入用于修正先前代码或添加新功能的新代码。微指令整体上称为“代码”,并且以模块方式进行设计,其中整个代码由单独的子程序组成。因此,可以对代码中某部分的错误进行隔离和修正,而不需要对整个代码都进行重写。当发现缺陷子程序时,程序员将创建没有错误的副本子程序,该子程序会取代缺陷子程序被程序流程调用。通过同时使用RAM和ROM存储微指令集的系统就可能实现这种技术。子程序通常存储在ROM中,而调用子程序的主程序代码则存储在RAM中。因为程序流程按RAM中的微指令集进行,所以,来自主代码的出口点就允许程序流程执行ROM中子程序的微指令。当子程序已经执行,程序流程就退出子程序,并且重返RAM中的主代码。然而,当在子程序中发现错误时,对应于缺陷子程序的出口点无效,并且程序员必须用新的子程序修补错误。因为ROM为静态,所以这个新的子程序必须存储在RAM中。由于除主代码中的预定点外就不能进入或退出缺陷子程序,所以,这种方法就比较缺乏灵活性。另外,因为为了修正子程序中的程序错误,无论错误是多么次要也必须在RAM中复制整个子程序,因而,这种方法浪费了空间。本领域需要在程序中具有更加灵活的ROM和RAM间的出口和进入点。另外,需要将修正ROM中程序错误所需的RMA容量减至最小。
技术实现思路
本专利技术定位于一种为使程序员对ROM微指令具有更直接的访问和控制,而对驻留在ROM中的微指令程序流程进行修改的方法和设备。因为不能对ROM中的微指令进行改动,所以,任何所需的对微指令集的变化都必须在RAM中进行。本专利技术允许程序员直接访问ROM中的程序错误,而不需要在RAM中复制整个子程序。本专利技术也允许程序员给陈旧的ROM添加新的功能,而不是用新设计的ROM来取代旧的ROM。本专利技术的示范实施例是一种用于对静态存储装置中的程序流程进行修改的方法,该方法包括产生触发从静态存储装置到可编程存储装置的跳转的中断的步骤。在本专利技术的一个实施例中,跳转点寄存器用于保持跳转点的地址。该跳转点会触发程序流程中的中断事件。程序计数器含有程序流程中当前微指令的地址。如果程序计数器保留有与跳转点寄存器中跳转点地址相等的地址,就产生中断事件。这个中断事件开始在程序流程中进行从静态存储装置到可编程存储装置的改变。在本专利技术的一个实施例中,中断事件可以用于修复静态存储装置的程序错误。程序员可以创建针对驻留在静态存储装置中缺陷代码部分的补丁。随后,程序员可以将出口地址存储在寄存器或其他存储装置中,其中出口地址对应于缺陷代码部分中预定微指令的地址。将出口地址与所有在程序流程中执行的微指令进行比较。当在程序流程中出现预定的微指令,就执行补丁中的微指令。在本专利技术的另一实施例中,中断事件可以在程序流程中产生给静态存储装置添加功能的改变。这种改变可以是存储在可编程存储装置中的附加代码形式,该形式可以在执行来自静态存储装置的微代码的中间执行。在本专利技术的另一实施例中,多个跳转点寄存器可以与相应的比较器一起与中断端口耦合,该端口可以使每个单独的跳转点寄存器有效或无效。每个单独的跳转点寄存器可以与单独的中断事件关联。因此,使用多个跳转点寄存器给程序员提供了灵活性,并且允许她根据将来的需要方便地分配跳转点寄存器。这种修改减少了用于修正ROM中错误所需的RAM容量,并且改进了ROM的功能。通过下面的描述,对于本专利技术的熟练技术人员来说,本专利技术的其他目标和优点将变得容易理解。附图说明图1是示出RAM和ROM之间的传统程序流程的图例。图2是示出在本专利技术实施例中RAM和ROM之间的程序流程的图例。图3是用于实现RAM和ROM之间的程序流程的电路框图。图4是数据处理系统的框图。具体实施例方式图1是示出用于数据处理系统中,例如计算机系统或通用微计算机,微指令错误修正的方法,即“调试”方法,的已有技术实现的框图。处于说明目的,本专利技术的较佳实施例使用ROM和RAM进行描述。然而,在下面的详细描述中,可以容易理解所述的方法适用于任意的静态存储装置和易失存储装置。在图1中,RAM 100已经用调用在ROM 110中的子程序的代码进行了编程。含有接着要执行的微指令地址的程序计数器(未示出)顺RAM堆栈向下执行,直到程序计数器碰到ROM堆栈中的微指令地址。在点101,程序流程从RAM 100中的微指令集中退出,并进入ROM 110中的微指令集。程序计数器顺ROM 110向下执行,直到它碰到RAM 100中的微指令地址。程序流程从ROM 110中的微指令集中退出,并在点102重返RAM 100中的微指令集。对于存储在ROM 110中各个子程序,重复这种处理。然而如果程序错误需要在ROM 110中进行修正,或者需要加入不同的功能,程序员可以对RAM 100重新编程,以便绕过存储在ROM 110中的子程序。本领域熟练技术人员中目前的惯例是通过在RAM100中复制整个子程序来对缺陷子程序进行调试,消除程序错误,并且对RAM100进行重新编程来把程序流程带到在RAM 100中复制的子程序,而不是带到存储在ROM 110中有缺陷的子程序。如图1所说明,如果在子程序105中发现程序错误106,那么,程序员将只能使从RAM 100到ROM 110的数据通路103无效,并且创建到驻留在RAM 100中的替代子程序107的数据通路104。当完成子程序107,数据通路108回流到位于RAM 100中无效数据通路103之后的任意所设计的微指令。当程序错误的大小极小时,这就会成为对RAM资源的巨大浪费。因为ROM是静态,所以,即使仅有一小部分子程序需要重写,程序员也不能改变ROM中的微指令,使程序流程从ROM中不同的点重定向到RAM。图2是示出本专利技术实施例中RAM 200和ROM 210之间程序流程的框图,该实施例允许程序员不需要将整个子程序复制在RAM 200中,就能调试存储在ROM 210中的缺陷子程序。另外,程序员可以在存储于ROM 210的子程序中包括附加特性和功能。如图1,在微代码无差错部分期间,程序流程退出RAM200而进入ROM 210。然而,当在ROM 210中发现错误时,图2的程序流程允许程序员不需要为了修正错误而牺牲掉很大一部分RAM 200,就能创建该错误的补丁。程本文档来自技高网
...

【技术保护点】
一种用于对静态存储装置中的程序流程进行修改的方法,其特征在于,所述方法包括产生触发从静态存储装置到可编程装置的跳转的中断的步骤。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:李维新GB福斯特张立周群真
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1