CN101075213B - 只读存储器数据修补电路和方法、及其嵌入式系统 - Google Patents
只读存储器数据修补电路和方法、及其嵌入式系统 Download PDFInfo
- Publication number
- CN101075213B CN101075213B CN2007101292280A CN200710129228A CN101075213B CN 101075213 B CN101075213 B CN 101075213B CN 2007101292280 A CN2007101292280 A CN 2007101292280A CN 200710129228 A CN200710129228 A CN 200710129228A CN 101075213 B CN101075213 B CN 101075213B
- Authority
- CN
- China
- Prior art keywords
- address
- rom
- signal
- reads
- data block
- 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.)
- Active
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B43—WRITING OR DRAWING IMPLEMENTS; BUREAU ACCESSORIES
- B43L—ARTICLES FOR WRITING OR DRAWING UPON; WRITING OR DRAWING AIDS; ACCESSORIES FOR WRITING OR DRAWING
- B43L1/00—Repeatedly-usable boards or tablets for writing or drawing
- B43L1/04—Blackboards
- B43L1/06—Blackboards rigid
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B43—WRITING OR DRAWING IMPLEMENTS; BUREAU ACCESSORIES
- B43K—IMPLEMENTS FOR WRITING OR DRAWING
- B43K31/00—Writing implement receptacles functioning as, or combined with, writing implements
- B43K31/005—Distributors for leads, cartridges and the like
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一种只读存储器(ROM)数据修补电路,用于基于修补信息利用存储在N个随机存取存储器(RAM)修补块中的修补数据来替换存储在N个修改ROM数据块中的数据。该ROM数据修补电路包括数据修补检测单元、RAM地址生成单元以及地址选择单元。该数据修补检测单元生成N个偏移选择信号和地址选择信号。所述N个偏移选择信号指明ROM读取地址属于哪一块,地址选择信号表示ROM的读取地址是否属于N个修改ROM数据块中的任意一个。RAM地址生成单元基于偏移选择信号,而生成与ROM读取地址对应的RAM读取地址。地址选择单元基于地址选择信号,而输出ROM读取地址和RAM读取地址之一。
Description
相关申请的交叉引用
本申请根据35 USC§119要求在2006年2月21日向韩国知识产权局提交的韩国专利申请No.2006-16609的优先权,通过引用而在此全部合并其公开。
技术领域
本发明涉及一种半导体器件,并特别是一种ROM数据修补(patch)电路、包括该修补电路的嵌入式系统以及修补ROM数据的方法。
背景技术
嵌入式系统一般包括控制例如机械装置、电子装置等系统的微处理器。此嵌入式系统典型地可通过单片形式来实现。对装置进行操作的软件不是从外部存储器读取,而是存储在嵌入式系统的芯片中。
典型的嵌入式系统把要运行的程序和用于操作系统的数据存储在只读存储器(ROM)中。与ROM相反,使用随机存取存储器(RAM)将使得能够修改存储的程序和数据。但是,与包括ROM作为存储器件的嵌入式系统相比,包括RAM作为存储器件的嵌入式系统的生产成本相对高。
因此,在典型的嵌入式系统中,程序和数据存储在RAM中用于系统开发,并然后在完成系统开发后将其存储在ROM中。
图1是图示了嵌入式系统的数据存取路径的方框图。
参考图1,嵌入式系统100包括处理器110、程序ROM 120、数据ROM130和RAM 140。处理器110通过地址总线160输出ROM的读取地址来读取存储在ROM 120和130中的程序及数据。读取的程序代码和读取的数据通过数据总线150传送到处理器110或存储在RAM 140中。
在完成系统开发后,例如,在程序代码发生错误或者存储在ROM中的数据需要修改或升级以改进系统性能的情况下,程序和/或数据可能需要修改或升级。
在这些和其它情形下,放弃已经制造的产品以及制造用于存储修改程序代码和数据的新芯片都是低效的。另外,由于程序代码和数据是在半导体存储器件的制造过程中存储在ROM中的,所以改变新芯片的制造处理会导致时间和金钱成本。因此,当需要用修补程序代码和/或修补数据修改存储在ROM中的部分数据和程序时,使用已经制定的产品是很困难的。
正如在美国专利第5,940,850号中公开的那样,修补存储在RAM中的程序的装置和方法是可用的,但是修补存储在ROM中的数据的装置和方法不能广泛使用。因为存储在ROM中的数据是固定的表值形式,出错的概率相对低。但是,出错的概率不为零,就像前文描述的那样,需要升级在ROM中存储的数据,从而改进系统性能等。
修补存储在ROM中的数据的方法可与修补程序的方法类似。当修补程序时,需要一种确定待修改程序块的起始地址并将ROM的起始地址移位到RAM的对应地址的方法。但是,修补数据时,由于可能不能明确限定数据块,所以需要复杂的比较器。对于复杂的数据修补电路,在读取命令后输出读取地址到地址总线可能会有延迟,并且这样的延迟可降低系统性能。
所以,需要一种修补ROM数据的装置和方法,其中可以使用已经制定的数据ROM,而不会降低系统性能。
发明内容
根据本发明的示意性实施例,ROM数据修补电路基于修补信息,而用在N(N为自然数)个RAM修补块中存储的修补数据来替换在N个修改ROM数据块中存储的ROM数据。ROM数据修补电路包括数据修补检测单元、RAM地址生成单元以及地址选择单元。该数据修补检测单元生成N个偏移选择信号和地址选择信号。所述N个偏移选择信号指明ROM的读取地址属于N个修改ROM数据块中的哪一块,以及该地址选择信号表示该ROM的读取地址是否属于这N个修改ROM数据块中的任意一个。该RAM地址生成单元基于偏移选择信号生成与ROM的读取地址对应的RAM的读取地址。该地址选择单元基于地址选择信号输出ROM的读取地址和RAM的读取地址之一。
该修补信息包括N个修改ROM数据块的N个起始地址、N个数据块的长度、N个偏移以及控制修补操作的修补使能信号。N个偏移中的每个表示修改ROM数据块的地址与对应的RAM修补块的地址之间的每一差值。该ROM数据修补电路可以进一步包括用于存储修补信息的寄存器。当ROM的读取地址属于这N个修改ROM数据块中的任意一个而且修补使能信号为逻辑高时,该地址选择信号可以为逻辑高;而当ROM的读取地址不属于这N个修改ROM数据块中的任意一个或者修补使能信号为逻辑低时,该地址选择信号可以为逻辑低。
该数据修补检测单元包括N个比较器单元、或门和第一与门。当ROM的读取地址属于对应的修改ROM数据块时,N个比较器单元分别生成逻辑高的偏移选择信号;而当ROM的读取地址不属于对应的修改ROM数据块时,N个比较器单元分别生成为逻辑低的偏移选择信号。或门对N个比较器单元生成的N个偏移选择信号执行或操作。第一与门对或门的输出信号和修补使能信号执行与操作,以生成地址选择信号。
N个比较器单元中的每一单元,例如N个比较器单元中的第K(K为不大于N的自然数)个单元,可以包括下限比较器、加法器、上限比较器和第二与门。当ROM的读取地址不小于N个起始地址中的第K个起始地址时,下限比较器输出为逻辑高的第一信号。加法器输出第K个起始地址和N个数据块长度中的第K个数据块长度之和。当ROM的读取地址不大于加法器的输出时,上限比较器输出为逻辑高的第二信号。第二与门对第一信号与第二信号执行与操作,以生成N个偏移选择信号中的第K个偏移选择信号。
RAM地址生成单元可以包括偏移选择器和偏移加法器。偏移选择器基于所述N个偏移选择信号,而输出该N个偏移之中的、与ROM读取地址所属的修改ROM数据块对应的偏移。偏移加法器将ROM的读取地址与从偏移选择器输出的偏移量相加,从而输出RAM的读取地址。
当修补使能信号为逻辑低时,地址选择单元选择并输出ROM的读取地址,而不考虑该ROM的读取地址是否属于N个修改ROM数据块中的任意一个。地址选择单元可以包括多路复用器,该多路复用器基于地址选择信号而输出ROM的读取地址和RAM的读取地址之一。
依据本发明的示意性实施例,嵌入式系统包括处理器、存储处理器所处理的数据的数据ROM、存储修补数据以替换数据ROM中存储的数据的RAM、存储修补信息的寄存器、以及基于修补信息及ROM的读取地址而输出ROM读取地址和与该ROM读取地址对应的RAM读取地址之一的ROM数据修补电路。修补数据可以由外部可编程ROM提供,并且在引导处理期间存储在RAM中。
依据本发明的示意性实施例,一种修补ROM数据的方法包括:提供替换存储在N个修改ROM数据块中的数据的修补数据和修补信息,分别将修补数据存储在N个RAM修补块中,以及基于修补信息和ROM读取地址输出ROM读取地址和与ROM读取地址对应的RAM读取地址之一。该修补ROM数据的方法可以进一步包括将修补信息存储在寄存器中。
输出RAM读取地址和ROM读取地址之一的方法可以包括:生成N个偏移选择信号,该偏移选择信号指明ROM的读取地址属于N个修改ROM数据块中的哪一块;生成地址选择信号,该地址选择信号表示ROM读取地址是否属于N个修改ROM数据块中的任一个;以及基于偏移选择信号生成与ROM读取地址对应的RAM读取地址,并基于地址选择信号输出ROM读取地址和RAM读取地址之一。
附图说明
通过参考附图详细地描述本发明的示范性实施例,本发明将变得更加显而易见,其中:
图1是图示了传统常规嵌入式系统的数据访问路径的框图。
图2是图示了根据本发明示意性实施例的包括ROM数据修补电路的嵌入式系统的框图。
图3是描述修改ROM数据块和对应的RAM修补块之间的关系的图。
图4是图示了依据本发明示意性实施例的ROM数据修补电路的框图。
图5是图示了图4中的数据修补检测单元的电路图。
图6是图示了图5中的比较器单元的电路图。
图7是图示了图4中的RAM地址生成单元的框图。
图8是图示了依据本发明示意性实施例的修补ROM数据的方法的流程图。
具体实施方式
现在,将参考其中示出了本发明实施例的附图而更加全面地描述本发明的实施例。但是,本发明可以以许多不同形式实施,并不应被解释为限于在此提出的实施例。相反,提供这些实施例,使得该公开全面彻底,并且该公开将本发明的范围完整地传达给本领域普通技术人员。在整个申请中,相同的附图标记始终表示相同的部件。
图2是图示了根据本发明示意性实施例的包括ROM数据修补电路的嵌入式系统的框图。
参见图2,嵌入式系统200包括处理器210、程序ROM 220、数据ROM230、RAM 240、寄存器单元270以及ROM数据修补电路280。
处理器210通过数据总线250和地址总线260控制嵌入式系统200。处理器210执行系统操作需要的各种操作,并通过地址总线260输出读取地址或写入地址。存储在ROM 220和230的读取地址或者RAM 240的读取地址处的程序代码或数据通过数据总线250而传送。另外,要写入RAM 240的写入地址处的数据通过地址总线250而传送到RAM 240。
程序ROM 220与数据ROM 230可以是物理上分离的独立存储器件,或者可以是同一存储器件内逻辑上分离的独立空间。
修改ROM数据块被定义为数据ROM 230的逻辑空间,其中存储要修改的ROM数据。RAM修补块被定义为RAM 240的逻辑空间,其中存储修补数据以替换修改ROM数据块中的数据。可以有多个修改ROM数据块和RAM修补块。每一个修改ROM数据块的长度与对应的RAM修补块长度相同。
修补数据可以存储在可编程ROM中。如果已升级的数据已校正了错误,存储在可编程ROM中的修补数据可以在嵌入式系统200的引导处理期间加载到RAM 230的RAM修补块中。
寄存器单元270存储用于替换数据的修补信息,而ROM数据修补电路280基于修补信息和ROM读取地址输出ROM读取地址和与ROM读取地址对应的RAM读取地址之一。ROM数据修补电路280的详细结构和操作在下文描述。
修补信息可以包括RAM修补块的起始地址、数据块长度、偏移量以及用于控制修补操作的修补使能信号。每个偏移量表示修改ROM数据块地址与对应的RAM修补块的地址之间的差值。该起始地址和数据块长度存储在具有修补数据的可编程ROM中,并可以在嵌入式系统200的引导处理期间加载到寄存器单元270中。在嵌入式系统200的引导处理期间,处理器210在修补数据加载后检测偏移量,并将检测到的偏移量存储到寄存器单元270中。
图3是描述修改ROM数据块和对应的RAM修补块之间的关系的图。虽然图3中图示了一个修改ROM数据块,但在ROM中还可存在多个修改ROM数据块。
参见图3,偏移量OFS表示修改ROM数据块235的起始地址SADD与对应的RAM修补块的起始地址SADD’之间的差值。修改ROM数据块存储要修改的ROM数据,以及RAM修补块245存储修补数据用于替换修改ROM数据块中存储的数据。如上文提到的,要修改的ROM数据量与对应修补数据量彼此相同。因此,修改ROM数据块235的数据块长度DBL与对应的RAM修补块245的数据块长度DBL彼此相同。将修补数据存储在可通过将偏移量OFS与存储对应的ROM数据的ROM读取地址相加所计算得到的RAM的读取地址处。
从而,为了读取修补数据而不是ROM数据,将对应的RAM读取地址(而不是ROM的读取地址)输出到地址总线即足够了。其它操作与传统数据处理操作相同。也就是说,当收到与包括在修改ROM数据块235中的ROM读取地址有关的读取命令时,能够通过将RAM的读取地址输出到地址总线,而用修补数据替换存储在该ROM读取地址处的ROM数据,这里RAM的读取地址等于ROM的读取地址加上偏移量。
当存在N(N为自然数)个修改ROM数据块235时,分别需要N个起始地址SADD、N个数据块长度和N个偏移量。该修补信息在引导处理期间提供给嵌入式系统200,并可以存储在寄存器单元270处。
图4是图示了根据本发明示意性实施例的ROM数据修补电路的框图。
参见图4,ROM数据修补电路280包括数据修补检测单元410、RAM地址生成单元430和地址选择单元450。
当从处理器接收到ROM数据的读取命令时,ROM数据修补电路280基于ROM读取地址ROMADD和修补信息SADD、DBL、OFS及ENB,检测读取的ROM数据是否属于N个修改ROM数据块235中的任意一个。当ROM的读取地址ROMADD不属于这N个修改数据块235中的任意一个时,ROM数据修补电路280将ROM读取地址ROMADD输出到地址总线。否则,当ROM的读取地址ROMADD属于这N个修改数据块235中的任意一个时,ROM数据修补电路280将RAM的读取地址RAMADD输出到地址总线,在该地址处存储有对应的修补数据。
基于ROM的读取地址ROMADD、起始地址SADD、数据块长度DBL和修补使能信号ENB,数据修补检测单元410输出偏移选择信号OFFSL和地址选择信号ADDSL。偏移选择信号OFFSL寻址ROM的读取地址属于N个修改ROM数据块中的哪一个,而地址选择信号用来决定ROM读取地址ROMADD和RAM读取地址RAMADD中的哪一个从地址选择单元450输出。
基于ROM的读取地址ROMADD、偏移量OFS和偏移选择信号OFSSL,RAM地址生成单元430生成与ROM的读取地址ROMADD对应的RAM读取地址RAMADD。
地址选择单元450基于地址选择信号ADDSL输出ROM读取地址ROMADD和RAM读取地址RAMADD之一。例如,对于地址选择单元450输出到地址总线260的选定地址SLADD,当地址选择信号ADDSL为逻辑低时,该选定地址SLADD可以是ROM的读取地址ROMADD;当地址选择信号ADDSL为逻辑高时,该选定地址SLADD可以是RAM的读取地址RAMADD。
地址选择单元450可以包括多路复用器,该多路复用器基于地址选择信号ADDSL而输出ROM读取地址ROMADD和RAM读取地址RAMADD之
图5是图示了图4中的数据修补检测单元410的电路图。
数据修补检测单元410包括第一、第二和第三比较器单元510、520和530、或门540、以及与门550。虽然图5中描述了三个比较器单元,但是本领域普通技术人员应该理解,可以实现不同数目的比较器单元,例如根据包括要修改的ROM数据的修改ROM数据块的数目确定比较器单元的数目。
第一个比较器单元510基于第一修改ROM数据块的第一数据块长度DBL1和第一起始地址SADD1生成第一偏移选择信号OFFSL1,该第一偏移选择信号OFFSL1表示ROM读取地址ROMADD是否属于第一修改ROM数据块。例如,当ROM读取地址ROMADD不小于第一起始地址SADD1而且不大于第一起始地址SADD 1与第一数据块长度DBL1之和时,第一偏移选择信号OFFSL1可以为逻辑高;其它情形时第一偏移选择信号OFFSL1为逻辑低。第二比较器单元520和第三比较器单元530的操作基本上与第一比较器单元510相同,并因此省略了对它们的描述。
当ROM读取地址ROMADD属于N个修改ROM数据块中的任意一个时,偏移选择信号OFSSL1、OFSSL2和OFSSL3中的偏移选择信号例如为逻辑高。这些偏移选择信号的组合指明RAM的读取地址属于N个修改ROM数据块中的哪一个。当RAM的读取地址不属于修改ROM数据块中的任意一个时,所有的偏移选择信号都是逻辑低。
或门540对偏移选择信号OFSSL1、OFSSL2和OFSSL3执行或操作。当ROM读取地址ROMADD属于N个修改ROM数据块中的任意一个时,或门540的输出信号可以为逻辑高;反之,当ROM读取地址ROMADD不属于N个修改ROM数据块中的任意一个时,或门540的输出信号可以为逻辑低。
与门550对或门540的输出信号和修补使能信号ENB执行与操作,以输出地址选择信号ADDSL。当ROM读取地址ROMADD属于N个修改ROM数据块中的任意一个以及修补使能信号为逻辑高时,地址选择信号ADDSL为逻辑高。当ROM读取地址ROMADD不属于N个修改ROM数据块中的任意一个或者修补使能信号为逻辑低时,地址选择信号为逻辑低。结果,当地址选择信号ADDSL为逻辑低时,图4中的地址选择单元450输出ROM读取地址ROMADD;当地址选择信号ADDSL为逻辑高时,图4中的地址选择单元450输出RAM读取地址RAMADD。
修补使能信号ENB是用来控制ROM数据修补电路的修补操作的信号。当修改ROM数据时,修补使能信号被设置为逻辑高,反之当没有修改ROM数据时,修补使能信号被设置为逻辑低。即使修改ROM数据,也能根据特定需求而阻止修补ROM数据。也就是说,当修补使能信号设置为逻辑低时,地址选择单元450选择并输出ROM的读取地址ROMADD,而不考虑该ROM读取地址是否属于的N个修改ROM数据块中的任意一个。
图6是图示了图5中所示的示例性比较器单元例如510的电路图。
参见图6,比较器单元600包括下限比较器610、上限比较器620、加法器630以及与门640。
下限比较器610输出第一信号,当ROM的读取地址ROMADD不小于起始地址SADD时,第一信号为逻辑高;当ROM的读取地址ROMADD小于起始地址时,第一信号为逻辑低。
加法器630输出起始地址SADD与数据块长度DBL之和。
上限比较器620输出第二信号,当ROM的读取地址ROMADD不大于加法器630的输出时,第二信号为逻辑高;当ROM的读取地址ROMADD大于加法器630的输出时,第二信号为逻辑低。
与门640对第一信号和第二信号执行与操作,以生成偏移选择信号OFSSL。
图7是图示了图4中的RAM地址生成单元430的框图。
参见图7,RAM地址生成单元430包括偏移选择器710和偏移加法器720。
偏移选择器710基于偏移选择信号OFFSL1、OFFSL2和OFFSL3,而输出偏移量OFS1、OFS2和OFS3当中的、与ROM读取地址所属的修改ROM数据块对应的偏移量。也就是说,当第k偏移选择信号OFFSLK为逻辑高时,偏移选择器710选择并输出第k偏移量OFSK到偏移加法器720,以上例子中的K为1、2或3。
偏移加法器720通过将ROM的读取地址ROMADD与选定的偏移量相加而输出RAM的读取地址。在从偏移加法器720中输出的RAM读取地址RAMADD处存储用于替换ROM读取地址处存储的要替换的数据的修补数据。
图8是图示了根据本发明示意性实施例的修补ROM数据的方法的流程图。
参见图8,修补ROM数据的方法包括提供用于替换在N(N为自然数)个修改ROM数据块中存储的数据的修补数据和修补信息(方框S810),将修补数据分别存储在N个RAM修补块中(方框S820)以及基于修补信息和ROM读取地址而输出ROM读取地址和与ROM读取地址对应的RAM读取地址之一(方框S830到S860)。
如上文所描述的,修补信息可以包括N个修改ROM数据块的起始地址、数据块长度、偏移量和用于控制修补操作的修补使能信号。每个偏移量表示修改ROM数据块地址与对应的RAM修补块的地址之间的差值。修补信息可以存储在寄存器单元270中,且当读取数据时使用。
基于ROM测试结果或者按照升级ROM数据的需要,可以在安排于嵌入式系统200之外的可编程ROM 220例如闪存中存储修补数据。在嵌入式系统引导处理期间,将存储在可编程ROM 220中的修补数据加载到RAM 240中(方框S820)。
基于N个修改ROM数据块的起始地址和数据块长度而生成N个偏移选择信号(方框S830)。N个偏移选择信号指明ROM的读取地址属于N个修改ROM数据块中的哪一个。
基于偏移选择信号生成地址选择信号,该地址选择信号表示ROM的读取地址是否属于N个修改ROM数据块中的任意一个(方框S840)。
基于偏移选择信号生成与ROM的读取地址对应的RAM的读取地址(方框S850)。
基于地址选择信号而输出ROM读取地址与RAM读取地址之一(方框S860)。当ROM读取地址属于N个修改ROM数据块中的任意一个并且修补使能信号为逻辑高时,输出RAM读取地址。当ROM读取地址不属于N个修改ROM数据块中的任意一个或者修补使能信号为逻辑低时,输出ROM读取地址。
如上文描述的,在根据本发明实施例的ROM数据修补设备、嵌入式系统以及修补ROM数据的方法中,可以利用存储在RAM中的修补数据来修改ROM数据的错误以及升级ROM数据,而且基本上不会降低系统性能。
因此,根据本发明示意性实施例的ROM数据修补设备、嵌入式系统以及修补ROM数据的方法通过利用存储在RAM中的修补数据修改ROM数据的错误以及升级ROM数据,可以降低制造系统的时间和成本。
虽然已详细描述了本发明的示意性实施例和它们的优点,但应当理解,在不脱离本发明范围的情况下,可以进行各种变化、替换和变形。
Claims (17)
1.一种只读存储器ROM数据修补电路,用于基于修补信息利用N个随机存取存储器RAM修补块中存储的修补数据来替换N个修改ROM数据块中存储的ROM数据,N为自然数,该ROM数据修补电路包括:
数据修补检测单元,被配置为生成N个偏移选择信号和地址选择信号,所述N个偏移选择信号指明ROM读取地址属于N个修改ROM数据块中的哪一个,该地址选择信号表示ROM读取地址是否属于N个修改ROM数据块中的任意一个;
RAM地址生成单元,被配置为基于偏移选择信号而生成与该ROM读取地址对应的RAM读取地址;以及
地址选择单元,被配置为基于地址选择信号输出ROM读取地址和RAM读取地址之一,
其中所述修补信息包括所述N个修改ROM数据块的N个起始地址、N个数据块长度、N个偏移量以及用于控制修补操作的修补使能信号,所述N个偏移量中的每个表示修改ROM数据块地址与对应的RAM修补块地址之间的差值;
其中,当ROM读取地址属于N个修改ROM数据块中的任意一个而且修补使能信号为逻辑高时,所述地址选择信号为逻辑高;当ROM读取地址不属于N个修改ROM数据块中的任意一个或者修补使能信号为逻辑低时,所述地址选择信号为逻辑低;以及
其中,当地址选择信号为逻辑低时,所述地址选择单元被配置为输出ROM读取地址,而当地址选择信号为逻辑高时,所述地址选择单元被配置为输出RAM读取地址。
2.如权利要求1所述的ROM数据修补电路,其中所述数据修补检测单元包括:
N个比较器单元,被配置为用来分别生成偏移选择信号,当ROM读取地址属于对应的修改ROM数据块时,该偏移选择信号为逻辑高,而当ROM读取地址不属于对应的修改ROM数据块时,该偏移选择信号为逻辑低;
或门,被配置为对所述N个比较器单元生成的所述N个偏移选择信号执行或操作;以及
第一与门,被配置为对该或门的输出信号和该修补使能信号执行与操作,以生成该地址选择信号。
3.如权利要求2所述的ROM数据修补电路,其中所述N个比较器单元中的第K比较器单元,K为自然数,包括:
下限比较器,被配置为当ROM读取地址不小于N个起始地址中的第K起始地址时,输出逻辑高的第一信号;
加法器,被配置为输出第K起始地址和N个数据块长度中的第K数据块长度之和;
上限比较器,被配置为当ROM读取地址不大于加法器的输出时,输出为逻辑高的第二信号;以及
第二与门,被配置为对该第一信号与该第二信号执行与操作,以生成N个偏移选择信号中的第K偏移选择信号。
4.如权利要求1所述的ROM数据修补电路,其中所述RAM地址生成单元包括:
偏移选择器,被配置为基于所述N个偏移选择信号而输出该N个偏移量中的、与ROM读取地址所属的修改ROM数据块对应的偏移量;以及
偏移加法器,被配置为通过将ROM读取地址与从偏移选择器输出的偏移量相加,而输出RAM读取地址。
5.如权利要求1所述的ROM数据修补电路,其中当该修补使能信号为逻辑低时,所述地址选择单元被配置为选择并输出ROM读取地址,而不考虑该ROM读取地址是否属于N个修改ROM数据块中的任意一个。
6.如权利要求1所述的ROM数据修补电路,其中所述地址选择单元包括多路复用器,该多路复用器被配置为基于地址选择信号而输出ROM读取地址和RAM读取地址之一。
7.如权利要求1所述的ROM数据修补电路,进一步包括用于存储该修补信息的寄存器。
8.一种嵌入式系统,包括:
处理器;
数据只读存储器ROM,被配置为存储由处理器处理的数据;
随机存取存储器RAM,被配置为存储修补数据,用于替换该数据ROM中存储的数据;
寄存器,被配置为存储修补信息;以及
ROM数据修补电路,被配置为基于修补信息和ROM读取地址,而输出ROM读取地址和对应于该ROM读取地址的RAM读取地址之一,
其中,所述ROM数据修补电路被配置为基于修补信息利用存储在N个RAM修补块中的修补数据来替换存储在N个修改ROM数据块中的数据,N为自然数,其中所述ROM数据修补电路包括:
数据修补检测单元,被配置为生成N个偏移选择信号和地址选择信号,所述N个偏移选择信号指明ROM读取地址属于N个修改ROM数据块中的哪一个,该地址选择信号表示ROM读取地址是否属于N个修改ROM数据块中的任意一个;
RAM地址生成单元,被配置为基于偏移选择信号而生成与该ROM读取地址对应的RAM读取地址;以及
地址选择单元,被配置为基于地址选择信号而输出ROM读取地址和RAM读取地址之一,
其中,所述修补信息包括N个修改ROM数据块的N个起始地址、N个数据块长度、N个偏移量和用来控制修补操作的修补使能信号,所述N个偏移量中的每个表示修改ROM数据块地址与对应的RAM修补块地址之间的差值,
其中,当ROM读取地址属于N个修改ROM数据块中的任意一个而且修补使能信号为逻辑高时,所述地址选择信号为逻辑高;而当ROM读取地址不属于N个修改ROM数据块中的任意一个或者修补使能信号为逻辑低时,所述地址选择信号为逻辑低;
以及其中,当地址选择信号为逻辑低时,所述地址选择单元被配置为输出ROM读取地址,而当地址选择信号为逻辑高时,所述地址选择单元被配置为输出RAM读取地址。
9.如权利要求8所述的嵌入式系统,其中所述修补数据由外部可编程ROM提供,并在引导处理期间被存储在RAM中。
10.如权利要求8所述的嵌入式系统,其中,该数据修补检测单元包括:
N个比较器单元,被配置为用来分别生成偏移选择信号,当ROM读取地址属于对应的修改ROM数据块时,该偏移选择信号为逻辑高,当ROM读取地址不属于对应的修改ROM数据块时,该偏移选择信号为逻辑低;
或门,被配置为对该N个比较器单元生成的该N个偏移选择信号执行或操作;以及
第一与门,被配置为对该或门的输出信号和该修补使能信号执行与操作,以生成该地址选择信号。
11.如权利要求10所述的嵌入式系统,其中所述N个比较器单元的第K比较器单元,K为不大于N的自然数,包括:
下限比较器,被配置为当ROM读取地址不小于N个起始地址中的第K起始地址时,输出逻辑高的第一信号;
加法器,被配置为输出第K起始地址和N个数据块长度中的第K数据块长度之和;
上限比较器,被配置为当ROM读取地址不大于加法器的输出时,输出逻辑高的第二信号;以及
第二与门,被配置为对该第一信号与该第二信号执行与操作,以生成N个偏移选择信号中的第K偏移选择信号。
12.如权利要求8所述的嵌入式系统,其中所述RAM地址生成单元包括:
偏移选择器,被配置为基于所述N个偏移选择信号,输出所述N个偏移量中的、与ROM读取地址所属的修改ROM数据块对应的偏移量;以及
偏移加法器,被配置为通过将ROM读取地址与偏移选择器输出的偏移量相加而输出RAM读取地址。
13.如权利要求8所述的嵌入式系统,其中,当该修补使能信号为逻辑低时,所述地址选择单元被配置为选择并输出ROM读取地址,而不考虑该ROM读取地址是否属于N个修改ROM数据块中的任意一个。
14.如权利要求8所述的嵌入式系统,其中所述地址选择单元包括多路复用器,该多路复用器被配置为基于地址选择信号输出ROM读取地址和RAM读取地址之一。
15.一种修补只读存储器ROM数据的方法,该方法包括:
提供修补数据和修补信息,用于替换在ROM的N个修改ROM数据块中存储的数据;
将该修补数据分别存储在N个随机存取存储器RAM修补块中;以及
基于修补信息和ROM读取地址,而输出ROM读取地址和与ROM读取地址对应的RAM读取地址之一,
其中所述修补信息包括N个修改ROM数据块的N个起始地址、N个数据块长度、N个偏移量和用来控制修补操作的修补使能信号,所述N个偏移量中的每个表示修改ROM数据块地址与对应的RAM修补块地址之间的差值,
其中输出RAM读取地址和ROM读取地址之一的步骤包括:
生成N个偏移选择信号,所述N个偏移选择信号指明ROM读取地址属于N个修改ROM数据块中的哪一个;
生成地址选择信号,该地址选择信号表示ROM读取地址是否属于N个修改ROM数据块中的任意一个;
基于偏移选择信号,而生成与ROM读取地址对应的RAM读取地址;以及
基于地址选择信号,而输出ROM读取地址和RAM读取地址之一,
当ROM读取地址属于N个修改ROM数据块中的任意一个而且修补使能信号为逻辑高时,输出RAM读取地址;和
当ROM读取地址不属于N个修改ROM数据块中的任意一个或者修补使能信号为逻辑低时,输出ROM读取地址。
16.如权利要求15所述的修补ROM数据的方法,进一步包括将修补信息存储在寄存器中。
17.如权利要求15所述的修补ROM数据的方法,其中生成N个偏移选择信号中的第K偏移选择信号的步骤,k为不大于N的自然数,包括:
当ROM读取地址不小于N个起始地址中的第K起始地址时,输出逻辑高的第一信号;
当ROM读取地址不大于第K起始地址与N个数据块长度中的第K数据块长度之和时,输出逻辑高的第二信号;以及
通过对该第一信号与该第二信号执行与操作,而生成N个偏移选择信号中的第K偏移选择信号。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060016609A KR100717110B1 (ko) | 2006-02-21 | 2006-02-21 | 롬 데이터 패치 회로, 이를 포함하는 임베디드 시스템 및롬 데이터 패치 방법 |
KR16609/06 | 2006-02-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101075213A CN101075213A (zh) | 2007-11-21 |
CN101075213B true CN101075213B (zh) | 2011-04-20 |
Family
ID=38270411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101292280A Active CN101075213B (zh) | 2006-02-21 | 2007-02-25 | 只读存储器数据修补电路和方法、及其嵌入式系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8504799B2 (zh) |
KR (1) | KR100717110B1 (zh) |
CN (1) | CN101075213B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100927446B1 (ko) * | 2007-11-28 | 2009-11-19 | 웹싱크 주식회사 | 이동통신단말기의 트랜잭션 단위 펌웨어 업그레이드 방법및 이를 이용한 펌웨어 업그레이드 시스템 |
US20130013849A1 (en) * | 2011-07-06 | 2013-01-10 | Varma Vishal V | Programmable Patch Architecture for ROM |
US8570799B2 (en) | 2011-08-16 | 2013-10-29 | Intel Mobile Communications GmbH | Magnetic random access memory with conversion circuitry |
ITMI20120944A1 (it) * | 2012-05-31 | 2013-12-01 | St Microelectronics Srl | Unità di controllo di circuiti di alimentazione per uno o più punti di carico di un sistema elettronico con nvm esterna di personalizzazione |
US9696990B2 (en) | 2014-09-23 | 2017-07-04 | Nxp Usa, Inc. | Method and apparatus for implementing inter-component function calls |
KR102492033B1 (ko) * | 2018-03-26 | 2023-01-26 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
TW202040582A (zh) * | 2019-01-18 | 2020-11-01 | 美商半導體組件工業公司 | 用於置換擷取自記憶體之資料的系統及方法 |
CN112231136A (zh) * | 2020-11-04 | 2021-01-15 | 炬芯科技股份有限公司 | SoC芯片、获取修复信息的方法、存储介质及电子设备 |
CN114047952B (zh) * | 2022-01-11 | 2022-05-20 | 长芯盛(武汉)科技有限公司 | 用于单片机的处理器、方法、单片机和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1529847A (zh) * | 2001-07-16 | 2004-09-15 | 任宇清 | 内嵌软件更新系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2733692B2 (ja) * | 1989-06-21 | 1998-03-30 | 本田技研工業株式会社 | Rom装置 |
JP3810805B2 (ja) | 1992-09-19 | 2006-08-16 | ソニー株式会社 | 情報修正システム |
JPH07129396A (ja) * | 1993-11-08 | 1995-05-19 | Nec Corp | 読み出し専用記憶装置のパッチ方法 |
US5940850A (en) | 1996-10-31 | 1999-08-17 | International Business Machines Corporation | System and method for selectively enabling load-on-write of dynamic ROM data to RAM |
US5757690A (en) | 1997-04-23 | 1998-05-26 | Exponential Technology, Inc. | Embedded ROM with RAM valid bits for fetching ROM-code updates from external memory |
TW400469B (en) * | 1997-07-08 | 2000-08-01 | Winbond Electronics Corp | Device capable of fixing programs in embedded microprocessor |
KR20000013076A (ko) | 1998-08-04 | 2000-03-06 | 윤종용 | 플래시 롬의 데이터 갱신 방법 |
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 |
DE10055096A1 (de) * | 2000-11-07 | 2002-05-16 | Infineon Technologies Ag | Speicherverwaltungslogik zur erweiterten Nutzung von Festwertspeichern |
US6865667B2 (en) * | 2001-03-05 | 2005-03-08 | Freescale Semiconductors, Inc. | Data processing system having redirecting circuitry and method therefor |
KR100410557B1 (ko) * | 2001-11-19 | 2003-12-18 | 주식회사 하이닉스반도체 | 프로그램 수정 가능한 마이크로컨트롤러 및 구동방법 |
US7039776B2 (en) * | 2003-04-17 | 2006-05-02 | Broadcom Corporation | Patch memory system for a ROM-based processor |
US7739469B2 (en) * | 2005-11-08 | 2010-06-15 | Freescale Semiconductor, Inc. | Patching ROM code |
US7644223B2 (en) * | 2006-10-30 | 2010-01-05 | Via Telecom Co., Ltd. | Circuit and method for patching for program ROM |
-
2006
- 2006-02-21 KR KR1020060016609A patent/KR100717110B1/ko active IP Right Grant
-
2007
- 2007-02-06 US US11/671,534 patent/US8504799B2/en active Active
- 2007-02-25 CN CN2007101292280A patent/CN101075213B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1529847A (zh) * | 2001-07-16 | 2004-09-15 | 任宇清 | 内嵌软件更新系统 |
Non-Patent Citations (1)
Title |
---|
JP特开平7-129396A 1995.05.19 |
Also Published As
Publication number | Publication date |
---|---|
CN101075213A (zh) | 2007-11-21 |
US8504799B2 (en) | 2013-08-06 |
US20070220374A1 (en) | 2007-09-20 |
KR100717110B1 (ko) | 2007-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101075213B (zh) | 只读存储器数据修补电路和方法、及其嵌入式系统 | |
CN101246738B (zh) | 具有备份电路的存储系统及编程方法 | |
KR100397903B1 (ko) | 반도체 집적 회로, 반도체 집적 회로의 메모리 리페어방법 및 그 방법을 컴퓨터로 실행시키는 프로그램을기록한 컴퓨터 판독 가능한 기록 매체 | |
CN101369453B (zh) | 闪存存储器设备和控制闪存存储器设备的方法 | |
CN102132354B (zh) | 闪存中的数据的快速低功率读取 | |
US7366042B2 (en) | Defective column(s) in a memory device/card is/are skipped while serial data programming is performed | |
US20060140027A1 (en) | Semiconductor memory device and method of operating the same | |
US20160306593A1 (en) | Method for reading data from nonvolatile memory | |
US8429380B2 (en) | Disabling redundant subfunctional units receiving same input value and outputting same output value for the disabled units in SIMD processor | |
US20120110375A1 (en) | Macro and command execution from memory array | |
CN101206562A (zh) | 微码修补系统及方法 | |
CN101571818A (zh) | 修补装置、电子装置以及用于修补只读存储器代码的方法 | |
US20050207232A1 (en) | Access method for a NAND flash memory chip, and corresponding NAND flash memory chip | |
CN103593252A (zh) | 具有动态错误侦测及更正的存储器 | |
CN101000795A (zh) | 半导体存储装置 | |
JP5304239B2 (ja) | プロセッサ試験装置、プロセッサ試験方法、プロセッサ試験プログラム | |
CN101470666B (zh) | 一种数据存储方法 | |
KR20140124545A (ko) | 비휘발성 메모리 및 이의 부트업 동작 방법 | |
US8214714B2 (en) | Nonvolatile storage device, controller of nonvolatile memory, and nonvolatile storage system | |
US20040193966A1 (en) | Semiconductor device | |
JP4695373B2 (ja) | メモリテスト回路及びメモリテスト方法 | |
US11669392B2 (en) | Non-volatile memory | |
JP6594712B2 (ja) | 半導体メモリ及び半導体メモリのベリファイ方法 | |
US20050289336A1 (en) | Method and apparatus for switching among multiple initial execution addresses | |
CN101789268A (zh) | 存储器装置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |