CN1855032A - 微处理系统、总线地址转换方法以及程序修补方法 - Google Patents
微处理系统、总线地址转换方法以及程序修补方法 Download PDFInfo
- Publication number
- CN1855032A CN1855032A CNA2006100730419A CN200610073041A CN1855032A CN 1855032 A CN1855032 A CN 1855032A CN A2006100730419 A CNA2006100730419 A CN A2006100730419A CN 200610073041 A CN200610073041 A CN 200610073041A CN 1855032 A CN1855032 A CN 1855032A
- Authority
- CN
- China
- Prior art keywords
- address
- bus
- trap
- program
- storage device
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Abstract
一种微处理系统、总线地址转换方法以及程序修补方法,所述微处理系统包括:一微处理器,其将一第一地址传送至一第一地址总线;一陷阱控制器,其与所述第一地址总线连结,其包含一陷阱表及一修补表,从所述第一地址总线撷取所述第一地址,依据所述陷阱表及修补表将所述第一地址转换为一第二地址,并将所述第二地址传送至一第二地址总线。本发明将地址指向转换为正确数据,其还可以应用于制造缺陷回复以进行ROM或数据取代,不仅更具有弹性,而且成本更低。
Description
技术领域
本发明涉及程序修补技术,特别是涉及一种微处理系统、总线地址转换方法以及使用总线地址转换的程序修补方法。
背景技术
一微处理系统通常包含一只读存储器(read-only-memory,ROM)以储存程序或韧体。上述程序或韧体可以被一微处理器通过地址总线撷取及执行。类似如DVD播放器或计算机等电子产品,可以包含具有一只读存储器的一微处理器系统,以进行系统控制。
设于一微处理系统上的只读存储器通常称为一芯片上ROM(on-chip ROM)。因为只读存储器为不可写入装置,因此在微处理系统中的ROM通常储存永久数据。当装设有一芯片上ROM的一电子产品运送给消费者后,储存在ROM中的数据是不可改变的。
若ROM中的程序包含错误程序代码或需要修改,可以执行一程序修补(program patch)来进行上述修正或修改。美国专利第4542453号揭露一种数据处理系统,其在每一可能的ROM地址上使用一位,来指示ROM中程序的一程序分支(program branch)。美国专利第5581776号则提供用于ROM程序化处理器的一分支控制系统,其修改一程序计数器以处理程序计数值,并依据所述程序计数值执行一预先储存程序。再者,美国专利第6237120号揭露一种程序修补ROM的方法,其通过硬件中断改变一微处理器的地址以执行该程序修补。
上述方法及系统存在一些缺点。例如,在每一ROM地址上使用一位可能会严重增加系统负担。针对一分支修改一程序计数器则缺乏弹性,因为他仅能对一来源/目标组进行分支。改变一微处理器的地址则不能适用于某些系统中,例如具有管线(pipelined)中央处理器的系统。因此需要一个更具弹性且成本更低的方法和系统。
发明内容
有鉴于此,本发明的一目的为提供一种更具弹性且成本更低的方法和系统。
为达成上述目的,本发明提供一种微处理系统,其包含一微处理器及一陷阱控制器(trap controller)。所述微处理器将一第一地址传送至一第一地址总线;所述陷阱控制器与所述第一地址总线连接,其包含一陷阱表(traptable)及一修补表(patch table),从所述第一地址总线撷取所述第一地址,依据所述陷阱表及修补表将所述第一地址转换为一第二地址,并将所述第二地址传送至一第二地址总线。
所述陷阱控制器进一步包含:
一比较器,其与所述陷阱表连接,依据第一地址比较一陷阱地址,并取得一比较结果,其中所述陷阱地址记录于该陷阱表中;以及
一转换器,其与修补表及比较器连接,依据所述比较结果从所述修补表撷取所述第二地址,并将该第二地址传送至第二地址总线。
所述陷阱控制器进一步包含一区域表,且第一地址依据所述陷阱表、区域表、及修补表转换为所述第二地址。
所述陷阱控制器进一步包含:
一比较器,其与陷阱表及区域表连接,依据第一地址比较所述陷阱地址及一区域地址,并取得一比较结果,其中该陷阱地址记录于所述陷阱表中,而所述区域地址储存于所述区域表中;以及
一转换器,其与区域表、修补表、及比较器连接,依据所述比较结果从所述修补表撷取所述第二地址,并将该第二地址传送至第二地址总线。
所述微处理系统进一步包含:
一第一储存装置,其与第二地址总线连接,用以储存第一地址所指向的数据;以及
一第二储存装置,其与第二地址总线连接,用以储存第二地址所指向的数据。
所述第一储存装置为一只读存储器。
所述第二储存装置为一随机存取存储器。
所述第二储存装置为一缓存器。
所述第二储存装置为一硬件逻辑连接装置。
所述第二储存装置为一可程序非挥发记忆装置。
本发明还提供一种总线地址转换方法,该方法首先从一第一地址总线撷取一第一地址;依据一陷阱表及一修补表将所述第一地址转换为一第二地址。继之,将所述第二地址传送至一第二地址总线。
所述转换步骤进一步包含:
依据所述第一地址比较一陷阱地址,并取得一比较结果,其中所述陷阱地址记录于所述陷阱表中;以及
依据所述比较结果从修补表撷取所述第二地址。
所述第一地址依据陷阱表、一区域表、及修补表转换为所述第二地址。
所述转换步骤进一步包含:
依据所述第一地址比较一陷阱地址及一区域地址,并取得一比较结果,其中所述陷阱地址记录于陷阱表中,而所述区域地址储存于区域表中;以及
依据所示比较结果从修补表撷取所述第二地址。
所述方法进一步包含:
将第一地址所指向的数据储存于一第一储存装置中;以及
将第二地址所指向的数据储存于一第二储存装置中。
本发明另提供一种使用总线地址转换的程序修补方法,该方法首先初始化一陷阱表及一修补表;将一第一地址与该陷阱表中的记录比较,以得到一比较结果。从所述修补表终结取一修补记录,其中该修补记录指向一第二地址;依据所述第二地址撷取一第二程序代码;当所述比较结果为不符合时,依据所述第一地址撷取第一程序代码。
所述陷阱表及修补表建立于一微处理系统中。
所述初始化步骤进一步包含:初始化一区域表,且将所述第一地址与陷阱表及区域表中的记录比较,以取得所述比较结果。
所述第一地址由一微处理器传送至一第一地址总线。
所述第二地址由一控制器传送至一第二地址总线。
所述第一程序代码储存于一只读存储器中。
所述第二程序代码储存于一随机存取存储器中。
所述方法进一步包含:分支至一第三程序代码;执行该第三程序代码;以及返回该第一程序代码。
所述分支步骤由一软件中断完成,且所述返回步骤通过修改一软件中断返回地址完成。
所述第三程序代码执行一新功能。
所述第二程序代码包含一标头部、功能部、以及一尾部,且该标头部执行分支、变量推入、以及参数设定。
所述标头进一步执行程序代码恢复。
为让本发明的上述和其它目的、特征、和优点能更明显易懂,下文将特举出较佳实施例,并配合所附图式,对本发明进行详细说明。
本发明提供的方法与系统将地址指向(address indicating)转换为正确数据,其还可以应用于制造缺陷回复以进行ROM或数据取代,本发明的方法与系统不仅更具有弹性,而且成本更低。
附图说明
图1显示依据本发明实施例的微处理系统的示意图;
图2显示依据本发明实施例的陷阱控制器的示意图;
图3显示依据本发明实施例使用陷阱表、区域表、及修补表的总线地址转换的示意图;
图4显示依据本发明实施例总线地址转换方法的流程图;
图5显示依据本发明实施例的使用总线地址转换的程序修补方法的流程图;
图6显示依据本发明实施例使用总线地址转换的ROM程序代码取代的示意图;
图7a及图7b显示依据本发明实施例使用总线地址转换方法的ROM程序代码取代的流程图;
图8显示依据本发明实施例使用总线地址转换方法的新程序代码插入的示意图;
图9a及图9b显示依据本发明实施例使用总线地址转换方法的新程序代码插入的流程图;
图10显示依据本发明实施例的修补程序的结构示意图。
主要组件符号说明:
10微处理器; 12第一地址总线; 14陷阱控制器;
140陷阱表; 142区域表; 144修补表;
16第二地址总线;18第一储存装置; 20第二储存装置;
146比较器; 148转换器; 22数据总线;
10中央处理器; 26a DRAM; 26外部存储器装置;
26bFLASH; 24外部存储器控制器;28外部存储器总线;
30芯片上ROM; 342区域; 36SRAM或一DRAM;
362修补地址; 302陷阱地址; 60ROM;
64修补表; 62陷阱表; 86RAM;
80ROM; 82陷阱表; 84修补表;
90启始/标头; 92主功能; 94结尾/尾部。
具体实施方式
为了让本发明的目的、特征、及优点能更明显易懂,下文特举较佳实施例,并配合图1到图10,做详细的说明。本发明说明书提供不同的实施例来说明本发明不同实施方式的技术特征。其中,实施例中的各元件的配置为说明之用,并非用以限制本发明。且实施例中图式标号的部分重复,是为了简化说明,并非意指不同实施例之间的关联性。
本发明提供具有程序修补的微处理系统。图1显示依据本发明实施例的微处理系统的示意图。微处理器10(例如中央处理器(CPU))将一第一地址传送至一第一地址总线12。一陷阱控制器(trap controller)14,其与所述第一地址总线12连接,其包含一陷阱表140、一区域表142、及一修补表144。陷阱控制器14从所述第一地址总线撷取第一地址,依据陷阱表140、区域表142、及修补表144将该第一地址转换为一第二地址,并将该第二地址传送至一第二地址总线16。
微处理系统进一步包含一第一储存装置18及一第二储存装置20。第一储存装置18(例如一只读存储器)与所述第二地址总线16连接,用以储存第一地址所指向的数据。第二储存装置20(例如一随机存取存储器)与第二地址总线16连接,用以储存所述第二地址所指向的数据。陷阱控制器14进一步包含一比较器146及一转换器148。比较器146与陷阱表140及区域表142连接,依据所述第一地址比较一陷阱地址(trap address)及一区域地址,并取得一比较结果。其中所述陷阱地址记录于所述陷阱表140中,而所述区域地址储存于所述区域表142中。转换器148与所述区域表142及修补表144及比较器146连接,依据所述比较结果从修补表144撷取所述第二地址,并将该第二地址传送至第二地址总线16。
例如,当微处理器10为一中央处理器,该中央处理器10将一地址传送至地址总线(address bus)12,并从一数据总线(data bus)22撷取数据。图2显示依据本发明实施例的陷阱控制器的示意图。比较器146将从中央处理器10传送出来的地址(在此称之为中央处理器地址(CPU address))和陷阱表140及区域表142中的记录进行比较。若中央处理器地址符合陷阱表140及区域表142中记录的陷阱区域(trap region),则比较器146发出一命中信号(hit signal),并将对应的区域表142中的陷阱区域和修补表144中的修补地址(patch address)指示转换器148。
继之,转换器148依据所述比较结果,通过撷取在修补表144和区域表142中的对应记录,将所述中央处理器地址转换为一转换地址。转换器148将所述转换地址传送至转换地址总线(translated address bus)16,使得可以定位所欲的程序代码。
所述中央处理器地址可能没有位于陷阱表中,此时该转换地址就是中央处理器地址。该区域作为一个掩码(mask),以决定中央处理器地址的比较位(compared bits),该区域的大小依据实际需要而异。
图3显示依据本发明实施例使用陷阱表、区域表、及修补表的总线地址转换的示意图。例如,一芯片上ROM(on-chip ROM)30位于地址0x1000到0x3000,而用以储存正确的ROM程序代码的一SRAM或一DRAM 36则位于地址0x6000到0x10000。上述地址和数据总线均为32位。在陷阱表中一记录(亦即一陷阱地址(trap address,TA)302)为0x2000,而其对应的区域(region,TR)342为0xF0(8位)。区域342为地址位比较指针(address bit comparison indicator)。若TR=0x00,则所述比较器将对应的TA 302停用并忽略。若TR=0xFF,则将所有的中央处理器地址位和TA 302比较。若TR=0xF0,则在地址比较过程中,忽略中央处理器地址的4个最低有效位(least significant bit,LSB),且该区域延伸到16字节。当该中央处理器发出介于0x2000到0x200C的一地址,则该地址被转换为介于0x8000到0x800C之间的修补地址362。位于该SRAM或DRAM36中的修补程序代码,通过数据总线被传送到该中央处理器,以取代ROM 30中,介于0x2000到0x200C的错误程序代码。
参见图1,用以储存正确的程序代码的RAM 20或其它储存装置(例如SRAM),与所述转换地址总线16连接,而不是和中央处理器地址总线12连接。一外部存储器控制器24控制一外部存储器总线28,以使得所述中央处理器10能够接取外部存储器装置26,例如一闪存(FLASH)26b、一DRAM 26a、或其它储存装置。外部存储器控制器24也可以和该转换地址总线16连接。如此一来,正确的程序代码可以储存在外部存储器装置26,而不是在芯片上储存装置中。
图4显示依据本发明实施例总线地址转换方法的流程图。从一第一地址总线撷取一第一地址(步骤S400)。该第一地址可以依据一陷阱表、一区域表、及一修补表转换为一第二地址。
第一地址先和一陷阱区域比较,以取得一比较结果(步骤S404)。陷阱区域地址(trap region address)由该陷阱表中的一陷阱地址及该区域表中一区域而得。依据该比较结果从该修补表撷取该第二地址(步骤S406)。继之,将该第二地址传送到一第二地址总线(步骤S408)。
在此,该第一地址所指向的数据或程序储存于一第一储存装置(例如一只读存储器)中,该第二地址所指向的该数据或程序储存于一第二储存装置(例如一随机存取存储器)中。
图5显示依据本发明实施例的使用总线地址转换的程序修补方法的流程图。初始化一陷阱表、一区域表、及一修补表(步骤S500)。将一第一地址与一陷阱区域比较,以得到一比较结果(步骤S502)。该陷阱区域是以该陷阱表及该区域表中的记录定义。若该比较结果为符合,从该修补表中撷取一修补记录,其中该修补记录指向一第二地址,并依据该第二地址撷取一第二程序代码(步骤S504)。若该比较结果为不符合,则依据该第一地址撷取第一程序代码(步骤S506)。
在此,所述陷阱表、区域表、及修补表可以建立于一微处理系统中。所述第一地址是由一微处理器传送至一第一地址总线,而所述第二地址是由一控制器传送至一第二地址总线。所述第一程序代码可以储存于一只读存储器中,而该第二程序代码可以储存于一随机存取存储器中。
如上所述,本发明提供的方法与系统将地址指向(address indicating)转换为正确数据,其还可以应用于制造缺陷回复以进行ROM或数据取代。
图6显示依据本发明实施例使用总线地址转换的ROM程序代码取代的示意图。例如,在ROM 60中标示为B2 602的ROM程序代码的一大片段被取代。B21604为一中央处理器地址,其落于一陷阱区域(定义于一陷阱表及一区域表(图未显示))。从一修补表64取得一转换地址(B21_664)。程序代码B21 604通过总线地址转换,以RAM或DRAM 66中的程序代码B21_664取代。
可以在程序代码B21_664使用一分支指令(branch instruction)以跳跃至B22_662。取代在ROM 60中的整个片段B2 602。在某些系统中,该分支可以通过一直接指令实现之,例如“JUMP(跳跃)”或“BRANCH(分支)”。或者,在其它系统中,例如一ARM thumb模式,该分支则不能通过直接指令实现之。因此,相对于一单一地址,一区域的地址对于总线地址转换是有效的。再者,软件中断服务程序(software interrupt service routine,softwareISR)可以用于程序分支。程序代码B22_662可以至于该ISR中,以达成该程序分支。
在该ISR的末端,可以修改一回传地址(return address),以回传程序代码B3 606的一进入点(entry point)。因此,该程序可以在ROM 60中的一般执行程序中。
图7a及图7b显示依据本发明实施例使用总线地址转换方法的ROM程序代码取代的流程图。图7a显示使用分支指令的ROM程序代码取代。初始化一陷阱表、一区域表、及一修补表(步骤S700)。将一地址与该陷阱表及该区域表中的记录比较,以得到一比较结果(步骤S702)。若比较结果为符合,从该修补表中撷取一转换地址(步骤S704)。若比较结果为不符合,则从一ROM中撷取程序代码或数据(步骤S712)。该执行分支以通过分支指令,依据该转换地址修正程序代码(步骤S706)。之后即执行该正确程序代码(步骤S708)。继之,该程序执行最后回到ROM程序代码(步骤S710)。
图7b显示使用软件中断服务程序(ISR)的ROM程序代码取代。图7a和图7b的不同点在于,步骤S706中的分支指令在步骤S716中是以软件中断服务程序取代之。当分支指令以软件中断服务程序取代时,可以通过修正步骤S710中的ISR回传地址来使得该程序执行最后回到ROM程序代码。
图8显示依据本发明实施例使用总线地址转换方法的新程序代码插入的示意图。例如,在RAM 86中的新功能程序代码B4 864附于ROM 80的程序代码B1802之后。程序代码B2 804的地址及一对应区域,通过一陷阱表82、一区域表、及一修补表84转换为在RAM 86中的B2_862。该程序执行分支到在B2_862的B4 864,并执行其程序代码。由于B2 804是以B2_862取代,B2 804必须在执行B4 864之后复原。B2的重制物(亦即B2(影像)866)附于B4。在B2(影像)866执行之后,该程序执行回到ROM 80中的B3 806。如此一来,在RAM 86中的新功能程序代码B4 864被插入到ROM 80的B1 802和B2 804之间。
图9a及图9b显示依据本发明实施例使用总线地址转换方法的新程序代码插入的流程图。图9a显示使用分支指令的新程序代码插入。初始化一陷阱表、一区域表、及一修补表(步骤S900)。将一地址与该陷阱表及该区域表中的记录比较,以得到一比较结果(步骤S902)。若该比较结果为符合,从该修补表中撷取一转换地址(步骤S904)。若该比较结果为不符合,则从一ROM中撷取程序代码或数据(步骤S906)。通过分支指令,依据该转换地址,该执行分支到一新功能程序代码(步骤S908)。之后即执行该新功能程序代码(步骤S910)。然后,执行该陷阱区域影像程序代码(步骤S912)。最后,该程序执行回到ROM程序代码(步骤S914)。
图9b显示使用软件中断服务程序(ISR)的新程序代码插入。图9a和图9b的不同点在于,步骤S908中的分支指令在步骤S918中以软件中断服务程序取代之。当分支指令以软件中断服务程序取代时,可以通过修正步骤S914中的ISR回传地址来使得该程序执行最后回到ROM程序代码。
一修补程序可以由低阶程序化语言写成,例如:汇编语言。然而,低阶程序化语言难于维护及发展。图10显示依据本发明实施例的修补程序的结构示意图。修补程序的启始/标头(beginning/header)90及/或结尾/尾部(end/tail)94可以由低阶程序化语言实现之,而主功能92则可以由高阶程序语言实现之(例如C语言),以增加程序发展的弹性及速度。
本发明所提出的方法及系统,或者其中某些部分,可能以计算机程序(计算机指令)的方式加以实现,此计算机程序(计算机指令)可能建置于储存媒体中,如软盘(floppy diskettes)、光盘(CD-ROMS)、硬盘(hard drives)、韧体(firmware)或其它任何机器可辨读的储存媒体中。当前述的计算机程序(计算机指令)经由如计算机等机器加载并执行时,此加载计算机程序(计算机指令)的机器即转换为一用以实现本发明的装置。再者,本发明所揭示的方法及系统可以计算机程序(计算机指令)的方式进行传输,传输媒体如电线(electricalwire)、电缆(cable)、光纤(fiber optics)、以及其它任何可进行传输的传输媒体或无线传输(wireless communication)。当前述传输的计算机程序(计算机指令)经由如计算机等机器加载并执行时,此加载计算机程序(计算机指令)的机器即转换为一用以实现本发明的装置。又再者,本发明所揭示的方法及系统可以计算机程序(计算机指令)的型态应用于一通用目的(general-purpose)处理器中,当前述应用于通用目的处理器的计算机程序(计算机指令)与该处理器相结合时,即提供一用以实现本发明的装置,其功能相当于具有特定功能的逻辑电路(logic circuits)。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟悉此项技艺的人士,在不脱离本发明的精神和范围内,当可以进行一些变化与润饰,因此本发明的保护范围当以权利要求书请求保护的范围为准。
Claims (32)
1.一种微处理系统,其特征在于包括:
一微处理器,其将一第一地址传送至一第一地址总线;以及
一陷阱控制器,其与所述第一地址总线连接,其包含一陷阱表及一修补表,从第一地址总线撷取所述第一地址,依据陷阱表及修补表将该第一地址转换为一第二地址,并将该第二地址传送至一第二地址总线。
2.根据权利要求1所述的微处理系统,其特征在于所述陷阱控制器进一步包含:
一比较器,其与所述陷阱表连接,依据第一地址比较一陷阱地址,并取得一比较结果,其中该陷阱地址记录于所述陷阱表中;以及
一转换器,其与修补表及比较器连接,依据所述比较结果从修补表撷取所述第二地址,并将该第二地址传送至第二地址总线。
3.根据权利要求1所述的微处理系统,其特征在于:所述陷阱控制器进一步包含一区域表,且所述第一地址依据所述陷阱表、区域表、及修补表转换为所述第二地址。
4.根据权利要求3所述的微处理系统,其特征在于所述陷阱控制器进一步包含:
一比较器,其与陷阱表及区域表连接,依据第一地址比较陷阱地址及一区域地址,并取得一比较结果,其中陷阱地址记录于陷阱表中,而区域地址储存于区域表中;以及
一转换器,其与区域表、修补表、及比较器连接,依据所述比较结果从所述修补表撷取所述第二地址,并将该第二地址传送至第二地址总线。
5.根据权利要求1所述的微处理系统,特征在于进一步包含:
一第一储存装置,其与第二地址总线连接,用以储存所述第一地址所指向的数据;以及
一第二储存装置,其与第二地址总线连接,用以储存所述第二地址所指向的数据。
6.根据权利要求5所述的微处理系统,其特征在于所述第一储存装置为一只读存储器。
7.根据权利要求5所述的微处理系统,其特征在于:所述第二储存装置为一随机存取存储器。
8.根据权利要求5所述的微处理系统,其特征在于:所述第二储存装置为一缓存器。
9.根据权利要求5所述的微处理系统,其特征在于:所述第二储存装置为一硬件逻辑连接装置。
10.根据权利要求5所述的微处理系统,其特征在于:所述第二储存装置为一可程序非挥发记忆装置。
11.一种总线地址转换方法,其特征在于包含:
从一第一地址总线撷取一第一地址;
依据一陷阱表及一修补表将该第一地址转换为一第二地址;以及
将该第二地址传送至一第二地址总线。
12.根据权利要求11所述总线地址转换方法,其特征在于所述转换步骤进一步包含:
依据所述第一地址比较一陷阱地址,并取得一比较结果,其中所述陷阱地址记录于所述陷阱表中;以及
依据所述比较结果从修补表撷取所述第二地址。
13.根据权利要求11所述总线地址转换方法,其特征在于:所述第一地址依据陷阱表、一区域表、及修补表转换为所述第二地址。
14.根据权利要求13所述的总线地址转换方法,其特征在于所述转换步骤进一步包含:
依据所述第一地址比较一陷阱地址及一区域地址,并取得一比较结果,其中所述陷阱地址记录于陷阱表中,而所述区域地址储存于区域表中;以及
依据所示比较结果从修补表撷取所述第二地址。
15.根据权利要求11所述的总线地址转换方法,其特征在于进一步包含:
将第一地址所指向的数据储存于一第一储存装置中;以及
将第二地址所指向的数据储存于一第二储存装置中。
16.根据权利要求15所述总线地址转换方法,其特征在于:所述第一储存装置为一只读存储器。
17.根据权利要求15所述总线地址转换方法,其特征在于:所述第二储存装置为一随机存取存储器。
18.根据权利要求15所述总线地址转换方法,其特征在于:所述第二储存装置为一缓存器。
19.根据权利要求15所述总线地址转换方法,其特征在于:所述第二储存装置为一硬件逻辑连接装置。
20.根据权利要求15所述总线地址转换方法,其特征在于:所述第二储存装置为一可程序非挥发存储装置。
21.一种使用总线地址转换的程序修补方法,其特征在于包含:
初始化一陷阱表及一修补表;
将一第一地址与所述陷阱表中的记录比较,以得到一比较结果;
从修补表中撷取一修补记录,其中该修补记录指向一第二地址;
依据所述第二地址撷取一第二程序代码;以及
当所述比较结果为不符合时,依据所述第一地址撷取第一程序代码。
22.根据权利要求21所述使用总线地址转换的程序修补方法,其特征在于:所述陷阱表及修补表建立于一微处理系统中。
23.根据权利要求21所述使用总线地址转换的程序修补方法,其特征在于所述初始化步骤进一步包含:初始化一区域表,且将所述第一地址与陷阱表及区域表中的记录比较,以取得所述比较结果。
24.根据权利要求21所述使用总线地址转换的程序修补方法,其特征在于:所述第一地址由一微处理器传送至一第一地址总线。
25.根据权利要求21所述使用总线地址转换的程序修补方法,其特征在于:所述第二地址由一控制器传送至一第二地址总线。
26.根据权利要求21所述使用总线地址转换的程序修补方法,其特征在于:所述第一程序代码储存于一只读存储器中。
27.根据权利要求21所述使用总线地址转换的程序修补方法,其特征在于:所述第二程序代码储存于一随机存取存储器中。
28.根据权利要求21所述使用总线地址转换的程序修补方法,特征在于进一步包含:
分支至一第三程序代码;
执行该第三程序代码;以及
返回该第一程序代码。
29.根据权利要求28所述使用总线地址转换的程序修补方法,其特征在于:所述分支步骤由一软件中断完成,且所述返回步骤通过修改一软件中断返回地址完成。
30.根据权利要求28所述使用总线地址转换的程序修补方法,其特征在于:所述第三程序代码执行一新功能。
31.根据权利要求28所述使用总线地址转换的程序修补方法,其特征在于:所述第二程序代码包含一标头部、功能部、以及一尾部,且该标头部执行分支、变量推入、以及参数设定。
32.根据权利要求31所述使用总线地址转换的程序修补方法,其特征在于:所述标头进一步执行程序代码恢复。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/113,891 | 2005-04-25 | ||
US11/113,891 US7464248B2 (en) | 2005-04-25 | 2005-04-25 | Microprocessor systems and bus address translation methods |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1855032A true CN1855032A (zh) | 2006-11-01 |
Family
ID=37188435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006100730419A Pending CN1855032A (zh) | 2005-04-25 | 2006-04-10 | 微处理系统、总线地址转换方法以及程序修补方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7464248B2 (zh) |
CN (1) | CN1855032A (zh) |
TW (1) | TW200638259A (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090013124A1 (en) * | 2007-07-03 | 2009-01-08 | Dsp Group Limited | Rom code patch method |
US8607210B2 (en) * | 2010-11-30 | 2013-12-10 | Micron Technology, Inc. | Code patching for non-volatile memory |
EP2660713B1 (en) * | 2012-05-03 | 2015-03-04 | Nxp B.V. | Patch mechanism in embedded controller for memory access |
EP2778910B1 (en) * | 2013-03-15 | 2021-02-24 | Maxim Integrated Products, Inc. | Systems and methods to extend rom functionality |
WO2015081268A1 (en) | 2013-11-27 | 2015-06-04 | Abbott Diabetes Care Inc. | Systems and methods for revising permanent rom-based programming |
EP2881857B8 (de) * | 2013-12-09 | 2018-09-12 | dSPACE digital signal processing and control engineering GmbH | Verfahren zur Änderung der Software im Speicher eines elektronischen Steuergerätes |
US9547489B2 (en) * | 2014-03-31 | 2017-01-17 | Qualcomm Incorporated | System and method for modifying a sequence of instructions in a read-only memory of a computing device |
FR3012898A1 (fr) * | 2014-06-03 | 2015-05-08 | Continental Automotive France | Procede de prototypage rapide d'une fonction d'un vehicule |
AU2015349931B2 (en) | 2014-11-19 | 2020-08-13 | Abbott Diabetes Care Inc. | Systems, devices, and methods for revising or supplementing ROM-based RF commands |
DE102016108525B4 (de) * | 2016-05-09 | 2022-01-27 | Infineon Technologies Ag | Vorrichtung zur Verwendung beim Zugriff auf einen Speicher |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4150428A (en) * | 1974-11-18 | 1979-04-17 | Northern Electric Company Limited | Method for providing a substitute memory in a data processing system |
US4028684A (en) * | 1975-10-16 | 1977-06-07 | Bell Telephone Laboratories, Incorporated | Memory patching circuit with repatching capability |
US4028683A (en) * | 1975-10-16 | 1977-06-07 | Bell Telephone Laboratories, Incorporated | Memory patching circuit with counter |
US4028679A (en) * | 1975-10-16 | 1977-06-07 | Bell Telephone Laboratories, Incorporated | Memory patching circuit with increased capability |
US4400798A (en) * | 1981-07-13 | 1983-08-23 | Tektronix, Inc. | Memory patching system |
US4542453A (en) * | 1982-02-19 | 1985-09-17 | Texas Instruments Incorporated | Program patching in microcomputer |
US4802119A (en) * | 1987-03-17 | 1989-01-31 | Motorola, Inc. | Single chip microcomputer with patching and configuration controlled by on-board non-volatile memory |
US4905200A (en) * | 1988-08-29 | 1990-02-27 | Ford Motor Company | Apparatus and method for correcting microcomputer software errors |
US5357627A (en) | 1989-03-28 | 1994-10-18 | Olympus Optical Co., Ltd. | Microcomputer having a program correction function |
JPH03142629A (ja) | 1989-10-30 | 1991-06-18 | Toshiba Corp | マイクロコントローラ |
GB9011679D0 (en) | 1990-05-24 | 1990-07-11 | Schlumberger Ind Ltd | Mask-programmable microprocessors |
JPH04346127A (ja) | 1991-05-23 | 1992-12-02 | Sony Corp | 電子装置 |
US5408672A (en) * | 1991-11-18 | 1995-04-18 | Matsushita Electric Industrial Co. | Microcomputer having ROM to store a program and RAM to store changes to the program |
JP3230262B2 (ja) | 1992-01-24 | 2001-11-19 | ソニー株式会社 | 電子装置及びその固定情報修正方法 |
JPH06318261A (ja) | 1992-09-18 | 1994-11-15 | Sony Corp | 電子装置 |
US5574926A (en) | 1993-03-11 | 1996-11-12 | Olympus Optical Co., Ltd. | One-chip microcomputer system having function for substantially correcting contents of program |
US5546586A (en) | 1993-05-06 | 1996-08-13 | Apple Computer, Inc. | Method and apparatus for vectorizing the contents of a read only memory device without modifying underlying source code |
US5481713A (en) | 1993-05-06 | 1996-01-02 | Apple Computer, Inc. | Method and apparatus for patching code residing on a read only memory device |
JPH0764784A (ja) | 1993-08-31 | 1995-03-10 | Nec Corp | マイクロコンピュータ |
US5481776A (en) * | 1993-11-17 | 1996-01-09 | Briscoe William A | Brush pressure system |
US5581776A (en) * | 1995-02-03 | 1996-12-03 | Nokia Mobile Phones Limited | Branch control system for rom-programmed processor |
US5867701A (en) | 1995-06-12 | 1999-02-02 | Intel Corporation | System for inserting a supplemental micro-operation flow into a macroinstruction-generated micro-operation flow |
JPH09319569A (ja) | 1996-05-31 | 1997-12-12 | Mitsubishi Electric Corp | マイクロコンピュータ |
US6141740A (en) | 1997-03-03 | 2000-10-31 | Advanced Micro Devices, Inc. | Apparatus and method for microcode patching for generating a next address |
US5938766A (en) * | 1997-03-21 | 1999-08-17 | Apple Computer, Inc. | System for extending functionality of a digital ROM using RAM/ROM jump tables and patch manager for updating the tables |
US6189145B1 (en) | 1997-05-28 | 2001-02-13 | International Business Machines Corporation | Concurrent patch to logical partition manager of a logically partitioned system |
US6135651A (en) | 1997-05-29 | 2000-10-24 | Cirrus Logic, Inc. | Patching apparatus and method for upgrading modem software code |
CN1088868C (zh) | 1997-08-08 | 2002-08-07 | 华邦电子股份有限公司 | 可修补嵌入式微处理器系统中的程序的装置 |
US6073252A (en) | 1997-09-25 | 2000-06-06 | Motorola, Inc. | Data processing system with memory patching and method thereof |
US6260157B1 (en) | 1999-02-16 | 2001-07-10 | Kurt Schurecht | Patching of a read only memory |
US6351822B1 (en) | 1999-03-05 | 2002-02-26 | Seagate Technology Llc | Method and apparatus for remapping read only memory locations |
WO2001020453A1 (en) | 1999-09-14 | 2001-03-22 | Qualcomm Incorporated | Method and apparatus for modifying microinstructions in a static memory device |
US6438664B1 (en) | 1999-10-27 | 2002-08-20 | Advanced Micro Devices, Inc. | Microcode patch device and method for patching microcode using match registers and patch routines |
US6463549B1 (en) | 2000-09-28 | 2002-10-08 | Motorola, Inc. | Device and method for patching code residing on a read only memory module utilizing a random access memory for storing a set of fields, each field indicating validity of content of a group, and for receiving an address of a memory portion of the read only memory |
JP3866588B2 (ja) * | 2002-03-01 | 2007-01-10 | エルピーダメモリ株式会社 | 半導体集積回路装置 |
US6931477B2 (en) * | 2002-12-31 | 2005-08-16 | Motorola, Inc. | Method and apparatus for patching code and data residing on a memory |
US7269707B2 (en) * | 2003-01-10 | 2007-09-11 | Texas Instruments Incorporated | Multiple patches to on-chip ROM in a processor with a multilevel memory system without affecting performance |
-
2005
- 2005-04-25 US US11/113,891 patent/US7464248B2/en active Active
-
2006
- 2006-03-30 TW TW095111164A patent/TW200638259A/zh unknown
- 2006-04-10 CN CNA2006100730419A patent/CN1855032A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US7464248B2 (en) | 2008-12-09 |
TW200638259A (en) | 2006-11-01 |
US20060242383A1 (en) | 2006-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1855032A (zh) | 微处理系统、总线地址转换方法以及程序修补方法 | |
CN1053281C (zh) | 系统总线外围总线间最佳数据传送用多总线系统总线桥 | |
CN1277226C (zh) | 分布式共享内存系统数据维护方法 | |
CN1295622C (zh) | 地址映射方法和映射信息管理方法及其闪速存储器 | |
CN1397887A (zh) | 一种将储存数据重新导向的虚拟集合高速缓存 | |
CN1920780A (zh) | 访问临界区的方法和系统 | |
CN1652253A (zh) | 存储卡和半导体器件 | |
CN1567256A (zh) | 闪存介质中数据保护方法 | |
CN1499530A (zh) | 非易失性存储器系统内有效允许失序写处理的方法和装置 | |
CN1763729A (zh) | 用于闪速存储器的数据处理设备和方法 | |
CN1445787A (zh) | 大容量快速可电擦写可编程只读存储器系统中的数据处理方法 | |
CN1866252A (zh) | 不同版本的配置数据间进行转换的方法和系统 | |
CN1950802A (zh) | 存储器分配 | |
CN101046774A (zh) | 使用替代页池管理dma写入页错误的计算机实现方法和装置 | |
TW201719415A (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN1804799A (zh) | 单片机在线加载升级方法及系统 | |
CN101061466A (zh) | 用于处理闪速存储器的数据的装置和方法 | |
CN101075213A (zh) | 只读存储器数据修补电路和方法、及其嵌入式系统 | |
CN101047670A (zh) | 一种mac地址表老化、操作方法及其处理系统 | |
CN1435758A (zh) | 存储装置、数据处理方法以及数据处理程序 | |
CN1794213A (zh) | 直接存储器存取电路以及使用该电路的盘阵列设备 | |
CN1127022C (zh) | 具有地址变换的数据处理方法及设备 | |
CN1570878A (zh) | 信息家电软件升级方法及其升级数据的编码解码方法 | |
CN1882923A (zh) | 高速缓冲存储器及其控制方法 | |
CN101788946B (zh) | Cpld上连接有e2prom设备的固件烧结方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |