CN101206562A - 微码修补系统及方法 - Google Patents

微码修补系统及方法 Download PDF

Info

Publication number
CN101206562A
CN101206562A CNA2007101044223A CN200710104422A CN101206562A CN 101206562 A CN101206562 A CN 101206562A CN A2007101044223 A CNA2007101044223 A CN A2007101044223A CN 200710104422 A CN200710104422 A CN 200710104422A CN 101206562 A CN101206562 A CN 101206562A
Authority
CN
China
Prior art keywords
address
opadd
memory
patch
order
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
CNA2007101044223A
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.)
MediaTek Inc
Original Assignee
MediaTek 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 MediaTek Inc filed Critical MediaTek Inc
Publication of CN101206562A publication Critical patent/CN101206562A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/328Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种微码修补系统,包括存储器单元、地址选取单元及捕捉及修补逻辑单元。存储器单元根据选取输出地址被存取。地址选取单元用以提供第一输出地址。捕捉及修补逻辑单元耦接于地址选取单元及记忆单元之间,用以判断第一输出地址是否与至少一错误地址当中任一相符,并且当第一输出地址与错误地址当中的一个相符时,选出一选取修补地址作为第二输出地址,当第一输出地址与错误地址均不相符时,选取第一输出地址作为第二输出地址,其中第二输出地址耦接于存储器单元。本发明提供的微码修补系统,不需要存取需修补、修正或扩展的ROM地址,并且修补存储器的修补地址的产生过程也不会干扰到下一ROM地址的正常产生流程,因而能够节省电力及时间。

Description

微码修补系统及方法
技术领域
本发明是有关于嵌入式程序,特别是有关于一种对嵌入式只读存储器实施修补机制的系统及方法。
背景技术
对于具有嵌入式处理器的通用目的的专用集成电路(Application-specificIntegrated Circuit;ASIC)而言,必须具备程序存储器,以储存指令码。此程序存储器可以是只读存储器(Read Only Memory;ROM)、随机存取存储器(Random Access Memory;RAM),或两者的组合。一般来说,相同容量的ROM与RAM,ROM所占的面积较小,所以用ROM储存指令码中的绝大部分,也因此,初始化后就不能再对ROM进行修改。所以,当需要存取并执行储存在ROM中的指令码时,如果ROM内部储存着错误的指令码或是需要增加更多指令码,就需要一种修补机制。
一种修补机制是略过错误指令,并以另一指令来取代错误指令,以命令处理器存取一修补存储器(Patch Memory)内的正确指令。图1显示这种修补机制的一范例,其为美国专利US6,891,765所揭示的电路100的方框图。如图所示,电路100包括处理器102、程序空间(存储器)104、修补逻辑电路106以及选取电路108。存储器104包含只读存储器(ROM)104a及修补存储器104b。处理器102提供地址PAB至存储器104,存储器104响应地址PAB并提供数据项DATA至选取电路108。同时,处理器102也提供地址PAB至修补逻辑电路106。如果地址PAB与预先设定的多个地址中的任何一个均不符合而不需要被修补、修正或扩展,则修补逻辑电路106取消(de-assert)命令信号PTCH_DAT_SEL。但是,如果地址PAB符合该多个预先设定的地址中的任何一个,则使命令信号PTCH_DAT_SEL有效(assert),并产生一分支指令PI重新命令处理器102对修补存储器104b进行存取。选取电路108根据命令信号PTCH_DAT_SEL,选择由存储器104所接收的数据项DATA或由修补逻辑电路106所接收的分支指令PI作为指令项目PDBI,并将指令项目PDBI通过数据总线传送至处理器102。
另一种修补机制是将送至只读存储器的地址加以修改。图2及图3分别是这种修补机制的两个范例,分别显示美国专利US 6,438,664以及中国台湾专利TWI 236,018所揭示的电路200及300。请参考图2,定序器(sequencer)92控制多工器(MUX)86以选取存储器的下一地址。下一地址被传送至下一地址缓存器94以选取来自只读存储器64a或修补存储器64b的连接线。所选择的连接线被提供至输出缓存器80。下一地址也被提供至比较器84。接着,比较器84将下一地址与储存在多个匹配缓存器88的数值加以比较。如果来自下一地址缓存器94的下一地址与匹配缓存器88中的任何一个数值相符,则比较器84从一查找表90中选择出一对应的修补RAM地址。从查找表90中所选择出的地址被送至多工器86。比较器84也向定序器92报告符合情况发生的事件,以便定序器92控制多工器86从查找表90中选出地址。由只读存储器64a输入至输出缓存器80的连接线被取消,并且来自修补存储器64b中的修补将从查找表90所指示的地址开始执行。
如图3所示,电路300包括只读存储器301、随机存取存储器303、计数器305以及比较与加载单元311。计数器305产生下一地址以对只读存储器301或随机存取存储器303进行存取。计数器305也提供下一地址313至比较与加载单元311。当下一地址与储存在比较与加载单元311中的预先设定地址CHk1-CHk4其中之一相符时,比较与加载单元311发出一重置信号317以及一转移地址信号319至计数器305。转移地址信号319表示除错/更新程序地址A1至A4的其中之一,重置信号317将计数器305重置,以将下一地址313转换为转移地址信号319所表示的地址。
在电路100、200及300中,下一地址不仅传送至ROM,也传送至一电路(修补逻辑电路106、比较器84或比较与加载单元311)以判断其是否与需要修补、修正或扩展的多个预先设定地址当中的任一个相符。结果,被修补、修正或扩展的ROM地址仍被存取并产生将被抛弃或取消的不必要的指令码。因此,电力及时间被浪费在向ROM中存取不必要的指令码上。此外,电路100内的处理器102、或是电路200内的定序器92及多工器86、或电路300内的计数器305需要被重新指派或重置以产生一存取修补存储器的地址。这种重新指派或重置的动作影响了正常产生下一ROM地址的流程并且浪费了电力及时间。
发明内容
本发明提供了一种可以解决以上技术问题的微码修补系统及方法。
本发明提供了一种微码修补系统,包括存储器单元,地址选取单元,以及捕捉及修补逻辑单元。存储器单元包括用以储存至少一微码主指令的第一存储器,以及用以提供至少一微码修补指令的第二存储器,存储器单元根据选取输出地址来被存取。地址选取单元用以提供第一输出信号。捕捉及修补逻辑单元耦接于地址选取单元及记忆单元之间,用以判断第一输出地址是否与至少一错误信号当中的任一相符,并且当第一输出地址与错误地址当中之一相符时,选出一选取修补地址作为一第二输出地址以存取第二存储器;当第一输出地址与错误地址均不相符时,则选取第一输出地址作为第二输出地址。第二输出地址耦接于存储器单元。
本发明提供了一种微码修补方法,用以对一存储器单元进行存取,其中存储器单元包括用以储存至少一微码主指令的第一存储器,以及用以储存至少一微码修补指令的第二存储器。该方法包括:提供第一存储器的至少一错误地址;提供第一输出地址;判断第一输出地址是否与错误地址当中任一相符,如果是,则第二输出地址为存取该第二存储器的一选取修补地址,如果否,则第二输出地址为该第一输出地址;以及根据该第二输出地址来对存储器单元进行存取。
本发明提供的微码修补的系统及方法,通过先判断第一输出地址是否需要被替代为一存取第二存储器的地址之后,再根据判断结果来选取第二输出地址,不需要存取需修补、修正或扩展的ROM地址,并且修补存储器的修补地址的产生过程也不会干扰到下一ROM地址的正常产生流程,因而能够节省电力及时间。
附图说明
图1显示一现有微码修补机制的电路方框图。
图2显示另一现有微码修补机制的电路方框图。
图3显示另一现有微码修补机制的电路方框图。
图4显示本发明提供的微码修补系统的方框示意图的一实施例。
图5显示本发明提供的微码修补系统的方框示意图的另一实施例。
图6显示图4及图5中所示的比较模块及地址选取器的结构示意图。
图7显示本发明所提供的微码修补方法的流程图的一实施例。
具体实施方式
图4显示本发明一实施例的微码修补系统400的方框图。如图所示,微码修补系统400包括一存储器单元410及一处理器430。
存储器单元410包括第一存储器411及第二存储器412。第一存储器411可以是只读存储器(Read Only Memory;ROM),其包含存储器单元410的存储器空间的第一地址范围,用以储存至少一微码主指令。第二存储器412可以是随机存取存储器(Random Access Memory;RAM),其包含存储器单元410的存储器空间的第二地址范围,用以储存至少一微码修补指令。第一及第二存储器411、412可以是彼此独立的分离存储器,也可以是一个存储器的第一及第二部分。
如图所示,处理器430包括地址选取单元432、捕捉及修补逻辑单元434,地址缓存器436,以及地址累加器438。地址选取单元432接收至少一输入目标地址(如Ain_1至Ain_n)以存取第一存储器411,以及从地址累加器438接收下一目标地址Anext,并根据顺序控制信号SSC在所接收的地址当中选一个作为第一输出地址AO_1,然后提供第一输出地址AO_1至捕捉及修补逻辑单元434。在一实施例中,地址选取单元432是一多工器。输入目标地址Ain_1至Ain_n,例如,一个由指令译码器(图中未示)所产生的用以读取第一存储器411所储存的分支指令的目标地址,或一个由中断控制器(图中未示)所产生的用以存取第一存储器411所储存的中断处理指令的起始地址,等等。
当接收到第一输出信号AO_1之后,捕捉及修补逻辑单元434检查第一输出信号AO_1是否与至少一错误地址(例如为Abug_1至Abug_m)当中任一相符合,并根据该检查结果来提供一第二输出地址AO_2以对存取存储器单元410进行存取。错误地址Abug_1至Abug_m指示储存在第一存储器411中需要被修补、修正或扩展的微码主指令的起始地址。
假设第一输出地址AO_1与错误地址Abug_1至Abug_m当中之一(如Abug_i)相符,则捕捉及修补逻辑单元434会从至少一修补地址(譬如为Apatch_1至Apatch_m)当中选取出修补地址Apatch_i,并输出修补地址Apatch_i作为第二输出地址AO_2以对第二存储器412进行存取。修补地址Apatch_1至Apatch_m分别与错误地址Abug_1至Abug_m相对应。每一修补地址Apatch_1至Apatch_m是第二存储器412所储存的某一更新/除错程序的起始地址。并且每一更新/除错程序是以一个重新指派处理器430再次存取第一存储器411的微码修补指令作为结束。
然而,假使第一输出地址AO_1与错误地址Abug_1至Abug_m当中任一均不相符,则捕捉及修补逻辑单元434直接输出第一输出地址AO_1作为第二输出地址AO_2以存取存储器单元410。应该注意的是,捕捉及修补逻辑单元434也可不设置于处理器430之内,而可将其设置于处理器430之外并与处理器430相对独立。捕捉及修补逻辑单元434的具体结构将在对图6的相关描述中说明。
地址缓存器436暂存第二输出地址AO_2,并将第二输出地址AO_2提供至地址累加器438。地址累加器438将第二输出地址AO_2增加一个单位地址(例如为1)以提供下一目标地址Anext
因此,即使第一存储器411是储存着不可修改的数据或指令的只读存储器,仍然可以替代或增加数据或指令到第一存储器411所储存的数据或指令中。举例来说,当需要忽略第一存储器411的地址Ah至Ah+m所指示的微码主指令Ch至Ch+m时,可以将一错误地址设定为地址Ah,地址Ah所对应的修补地址所指示的一微码修补指令,指示处理器430以存取第一存储器411的地址Ah+m+1。在另一范例中,当第一存储器411的地址Ah至Ah+m所指示的微码主指令需要被替代为第二存储器412的地址Ap至Aq所指示的微码修补指令时,可以将一错误地址设定为地址Ah,地址Ah所对应的修补地址设定为Ap,且第二存储器412的地址Aq+1所指示的微码修补指令可以指示处理器430以存取第一存储器411的地址Ah+m+1。在又一范例中,当第一存储器411的地址Ap至Aq所指示的微码主指令需要被插入到第一存储器411的地址Ah至Ah+1所指示的微码主指令之间时,可以将一错误地址设定为地址Ah,地址Ah所对应的修补地址设定为Ap,且第二存储器412的地址Aq+1所指示的微码修补指令重新指示处理器430以存取第一存储器411的地址Ah+1
图5是本发明另一实施例所提供的一微码修补系统500的一方框图,其与图4所示的微码修补系统的差异仅在于:由地址缓存器436提供第二输出地址AO_2至存储器单元410,而不是由捕捉及修补逻辑单元434提供第二输出地址AO_2。其余结构均很类似,在此不再赘述。
图6是本发明图4及图5所示的捕捉及修补逻辑单元434的方框图的实施例。如图所示,捕捉及修补电路434包括一比较模块610以及一地址选取器620。比较模块610判断第一输出地址AO_1是否与至少一错误地址(譬如为Abug_1至Abug_m)当中任一相符,其中错误地址指示第一存储器410所储存的需要被修补、修正或扩展的微码主指令。比较模块610产生一地址选取信号SAS以指示错误地址当中哪一个与第一输出地址AO_1相符,并将地址选取信号SAS提供至地址选取器620。当接收到地址选取信号SAS以及第一输出地址AO_1后,假如地址选取信号SAS指示错误地址当中之一与第一输出地址AO_1相符,则地址选取器620会从至少一修补地址(譬如为Apatch_1至Apatch_m)中选取一个作为第二输出地址AO_2,其中修补地址Apatch_1至Apatch_m分别与错误地址Abug_1至Abug_m相对应;反之,假如地址选取信号SAS指示出错误地址均不与第一输出地址AO_1相符,则地址选取器620直接输出第一输出地址AO_1作为第二输出地址AO_2
图6也显示了比较模块610及地址选取器620的具体结构。如图所示,比较模块610包括一比较单元612以及一使能逻辑单元616。比较单元612包括多个逻辑方框6131至613Z。每一逻辑方框6131至613Z可以是一比较器,用以比较第一输出地址AO_1与多个预先设定地址Apre_1至Apre_Z当中之一以产生一代表比较结果的比较输出(O1至OZ)。预先设定地址Apre_1至Apre_Z可由地址缓存器接收而得,也可从外部产生。预先设定地址Apre_1至Apre_Z包括错误地址Abug_1至Abug_m。由于错误地址的数目(m)是变动的,因此并非所有储存在地址缓存器内的预先设定地址Apre_1至Apre_Z均用作错误地址Abug_1至Abug_m。比较单元612接着提供一匹配信号SM(即比较输出O1至OZ)至使能逻辑单元616,以指示预先设定地址Apre_1至Apre_Z当中哪一个与第一输出地址AO_1相符。
使能逻辑单元616包括多个逻辑门6171至617Z,每一逻辑门是用以使能/不使能该比较输出O1至OZ。由于并不是所有预先设定地址Apre_1至Apre_Z均用来作为指示第一存储器411需要修补、修正或扩展的错误地址Abug_1至Abug_m,因此当逻辑方框接收到并未用作错误地址的预先设定地址时,使能逻辑门6171至617Z不使能其所产生的比较输出;而当逻辑方框接收到用作错误地址的预先设定地址时,使能逻辑门6171至617Z将使能所产生的比较输出。
每一逻辑门6171至617Z可为一逻辑与门(如图所示),其具有一第一输入,用以从逻辑方框6131至613Z当中之一接收一比较输出;一第二输入,用以接收多个使能比特(譬如为EN0至ENZ)当中之一,以提供一使能输出EO1至EOZ。使能比特EN0至ENZ可由使能缓存器接收而得,或可由外部产生。值为“1”的使能比特EN0至ENZ是将比较信号O1至OZ使能,而值为“0”的使能比特EN0至ENZ是将比较信号O1至OZ非使能。使能逻辑单元616接着输出地址选取信号SAS(即使能输出EO1至EOZ),地址选取信号SAS指示目前当作错误地址Abug_1至Abug_m的预先设定地址Apre_1至Apre_Z当中哪一个与第一输出地址AO_1相符。
图6也显示了比较模块610及地址选取器620的具体结构。如图所示,地址选取器620可为一多工器,其接收第一输入地址AO_1以及多个修补地址Apatch_1至Apatch_m,用以根据地址选取信号SAS而选取当中之一作为第二输出地址AO_2。修补地址Apatch_1至Apatch_m可由地址缓存器接收而得,或可从外部产生。如前所述,修补地址Apatch_1至Apatch_m可提供用于第二存储器412内更新/除错程序的新指令部分的起始地址。如此一来,如果第一输出地址AO_1与预先设定地址Apre_1至Apre_Z中的作为错误地址的一特定地址相符,处理器410所执行的程序可以分支为修补地址Apatch_1至Apatch_m
总之,处理器430产生第一输出地址AO_1,其中第一输出地址AO_1是被初始化以对第一存储器411进行存取,并判断第一输出地址AO_1是否需要被取代为一存取第二存储器412的地址,接着根据判断结果选取第二输出地址AO_2以对存储器单元410进行存取。如此一来,需要被修补、修正或扩展的地址会在被传送至第一存储器(ROM)之前就被判断并取代掉,因此能避免对第一存储器的不必要的存取。这与现有电路100、200及300有所不同,现有电路100、200及300中需要被修补、修正或扩展的地址仍然被传送至ROM。此外,用以取代被修补、修正或扩展的修补地址是直接传送至存储器单元410而非传送至现有电路100中的处理器102、现有电路200中的多工器86或现有电路300中的计数器305,因此本发明中地址选取单元432不需要重新指派或重新设定的动作,从而产生第一存储器的下一地址的正常程序不会被中断。
图7显示本发明所提供的微码修补方法的流程图的一实施例,其中微码修补方法包括:存取一存储器单元,其包括用以储存至少一微码主要指令的第一存储器,以及用以储存至少一微码修补指令的第二存储器。
首先,在步骤710中,将第一输出地址初始化以存取第一存储器的某一地址。更具体来说,步骤710是从至少一用以存取第一存储器的输入地址当中,选取一地址作为第一输出地址,例如,由一指令译码器所产生的一目标地址,用以读取第一存储器所储存的一分支指令、或是由一中断控制单元所产生的一起始地址,用以储存该第一存储器所储存的中断程序码等等。
接下来,在步骤720中,判断第一输出地址是否与错误地址当中任一相符。
如果是,则程序进入步骤731以提供第二存储器的一选取修补地址作为第二输出地址,并且第二输出地址是用来存取存储器单元。在步骤731的一实施例中,提供至少一对应至错误地址的修补地址,并且与第一输出地址相符的错误地址所对应的修补地址被选取为选取修补地址。
如果不是,程序会进入步骤732以输出第一输出地址作为第二输出地址,并且第二输出地址是用来存取存储器单元。
接下来,在步骤740中,重新产生第一输出地址,并且程序回到步骤720。在一实施例中,最先产生的是第二输出地址的下一相邻地址,接着在步骤710所描述的输入地址以及第二输出地址的下一相邻地址中,选出第一输出地址。
总之,本发明是在判断被初始化为存取第一存储器的第一输出地址是否需要被替代为存取第二存储器的地址之后,才根据先前的判断结果来选取第二输出地址提供到存储器单元。如此一来,需要被修补、修正或扩展的地址会在被传送至第一存储器(ROM)之前就被取代掉,因此能避免对第一存储器的不必要存取。这与现有电路100、200及300有所不同,现有电路100、200及300中必须被修补、修正或扩展的地址仍然被传送至ROM。此外,用以取代被修补、修正或扩展的修补地址被直接传送至存储器单元,因此本发明不需要重新指派或重新设定的动作。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中的技术人员,在不脱离本发明的范围内,可以做一些改动,因此本发明的保护范围应与权利要求所界定的范围为准。

Claims (12)

1.一种微码修补系统,其特征在于,该微码修补系统包括:
一存储器单元,其包括一用以储存至少一微码主指令的第一存储器以及一用以提供至少一微码修补指令的第二存储器,该存储器单元根据一选取输出地址被存取;
一地址选取单元,用以提供一第一输出地址;以及
一捕捉及修补逻辑单元,耦接于所述的地址选取单元及所述的存储器单元之间,用以判断所述的第一输出地址是否与至少一错误地址中任一相符,并且当该第一输出地址与该错误地址其中之一相符时,选出一用于存取所述的第二存储器的选取修补地址作为一第二输出地址,当所述的第一输出地址与所述的错误地址均不相符时,选取该第一输出地址作为一第二输出地址,其中该第二输出地址耦接于所述的存储器单元。
2.如权利要求1所述的微码修补系统,其特征在于,所述的第一存储器是只读存储器,所述的第二存储器是随机存取存储器。
3.如权利要求1所述的微码修补系统,其特征在于,所述的地址选取单元接收多个输入地址,并选出其中之一作为所述的第一输出地址,其中所述的多个输入地址包括至少一用以存取所述的第一存储器的地址。
4.如权利要求3所述的微码修补系统,其特征在于,所述的多个输入地址进一步包括所述的第二输出地址的下一相邻地址。
5.如权利要求1所述的微码修补系统,其特征在于,该微码修补系统进一步包括:
一地址缓存器,用以暂存所述的捕捉及修补逻辑单元所输出的所述的第二输出地址;以及
一地址累加器,用以增加所述的地址缓存器所输出的所述的第二输出地址以提供所述的第二输出地址的下一相邻地址。
6.如权利要求5所述的微码修补系统,其特征在于,所述的地址缓存器耦接于所述的捕捉及修补逻辑单元,并且提供所述的第二输出地址至所述的存储器单元。
7.如权利要求1所述的微码修补系统,其特征在于,所述的捕捉及修补逻辑单元包括:
一比较模块,用以判断所述的第一输出地址是否与至少一所述的多个错误地址当中任一相符,并输出一地址选取信号以指示所述的多个错误地址当中哪一个与所述的第一输出地址相符;以及
一地址选取器,用以接收所述的地址选取信号以及所述的第一输出地址,以及若所述的地址选取信号指示所述的多个错误地址其中之一与所述的第一输出地址相符时,选取一对应的修补地址作为所述的选取修补地址并提供所述的选取修补地址作为所述的第二输出地址;否则,选取所述的第一输出地址作为所述的第二输出地址。
8.如权利要求1所述的微码修补系统,其特征在于,所述的错误地址分别对应至少一修补地址,以及若所述的第一输出地址与一错误地址相符时,所述的捕捉及修补逻辑单元选出一对应的修补地址作为所述的选取修补地址。
9.如权利要求8所述的微码修补系统,其特征在于,所述的捕捉及修补逻辑单元包括:
一比较单元,用以判断所述的第一输出地址是否与至少一预先设定地址当中任一相符,所述的多个预先设定地址包括所述的错误地址,并输出一匹配信号用以指示所述的多个预先设定信号当中哪一个与所述的第一输出地址相符;以及
一使能逻辑单元,用以判断所述的匹配信号的使能状态,以提供所述的地址选取信号用以指示所述的多个设定为使能状态的预先设定地址当中哪一个与所述的第一输出信号相符。
10.一种微码修补方法,用以存取一存储器单元,所述的存储器单元包括一用以储存至少一微码主指令的第一存储器以及一用以储存至少一微码修补指令的第二存储器,其特征在于,所述的微码修补方法包括:
提供一第一输出地址;
判断所述的第一输出地址是否与至少一错误地址当中任一相符;以及
根据所述的判断结果以输出一第二输出地址,假如所述的判断结果为是,则所述的第二输出地址为一存取所述的第二存储器的一选取修补地址,假如所述的判断结果为否,则所述的第二输出地址为所述的第一输出地址,并根据所述的第二输出地址以存取所述的存储器单元。
11.如权利要求10所述的微码修补方法,其特征在于,提供所述的选取修补地址作为所述的第二输出地址以存取所述的第二存储器的步骤包括:
提供至少一修补地址,分别对应至所述的错误地址;以及
选取所述的多个修补地址当中之一对应于与所述的第一输出地址相符的所述的错误地址作为所述的选取修补地址。
12.如权利要求10所述的微码修补方法,其特征在于,所述的第一存储器是只读存储器,所述的第二存储器是随机存取存储器。
CNA2007101044223A 2006-12-22 2007-04-20 微码修补系统及方法 Pending CN101206562A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/615,059 2006-12-22
US11/615,059 US20080155172A1 (en) 2006-12-22 2006-12-22 Microcode patching system and method

Publications (1)

Publication Number Publication Date
CN101206562A true CN101206562A (zh) 2008-06-25

Family

ID=39544577

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101044223A Pending CN101206562A (zh) 2006-12-22 2007-04-20 微码修补系统及方法

Country Status (3)

Country Link
US (1) US20080155172A1 (zh)
CN (1) CN101206562A (zh)
TW (1) TW200828111A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286117B (zh) * 2007-07-24 2010-06-02 威盛电子股份有限公司 微码修补扩充装置、扩充微码修补机制容量的装置及其方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8504993B2 (en) * 2006-12-29 2013-08-06 Intel Corporation Virtualization of micro-code patches for probe less debug
US20090031090A1 (en) * 2007-07-24 2009-01-29 Via Technologies Apparatus and method for fast one-to-many microcode patch
US20090031108A1 (en) * 2007-07-24 2009-01-29 Via Technologies Configurable fuse mechanism for implementing microcode patches
US20090031103A1 (en) * 2007-07-24 2009-01-29 Via Technologies Mechanism for implementing a microcode patch during fabrication
US20090031107A1 (en) * 2007-07-24 2009-01-29 Via Technologies On-chip memory providing for microcode patch overlay and constant update functions
US20090031109A1 (en) * 2007-07-24 2009-01-29 Via Technologies Apparatus and method for fast microcode patch from memory
US20090031121A1 (en) * 2007-07-24 2009-01-29 Via Technologies Apparatus and method for real-time microcode patch
US20100180104A1 (en) * 2009-01-15 2010-07-15 Via Technologies, Inc. Apparatus and method for patching microcode in a microprocessor using private ram of the microprocessor
EP2660713B1 (en) * 2012-05-03 2015-03-04 Nxp B.V. Patch mechanism in embedded controller for memory access
EP2784682A1 (en) * 2013-03-25 2014-10-01 Dialog Semiconductor B.V. Memory patching circuit
US11676657B2 (en) * 2020-04-16 2023-06-13 Mediatek Inc. Time-interleaving sensing scheme for pseudo dual-port memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5901225A (en) * 1996-12-05 1999-05-04 Advanced Micro Devices, Inc. System and method for performing software patches in embedded systems
FR2764407B1 (fr) * 1997-06-05 1999-07-30 Alsthom Cge Alcatel Dispositif de retouche de programme de commande dans un processeur
US5983337A (en) * 1997-06-12 1999-11-09 Advanced Micro Devices, Inc. Apparatus and method for patching an instruction by providing a substitute instruction or instructions from an external memory responsive to detecting an opcode of the instruction
US6158018A (en) * 1997-11-25 2000-12-05 Philips Semiconductor, Inc. Integrated circuit including patching circuitry to bypass portions of an internally flawed read only memory and a method therefore
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
US6925521B2 (en) * 2001-09-10 2005-08-02 Texas Instruments Incorporated Scheme for implementing breakpoints for on-chip ROM code patching
US7062598B1 (en) * 2003-04-29 2006-06-13 Advanced Micro Devices, Inc. Bypass custom array and related method for implementing ROM fixes in a data processor
US6891765B2 (en) * 2003-08-05 2005-05-10 Via Telecom, Inc. Circuit and/or method for implementing a patch mechanism for embedded program ROM

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286117B (zh) * 2007-07-24 2010-06-02 威盛电子股份有限公司 微码修补扩充装置、扩充微码修补机制容量的装置及其方法

Also Published As

Publication number Publication date
US20080155172A1 (en) 2008-06-26
TW200828111A (en) 2008-07-01

Similar Documents

Publication Publication Date Title
CN101206562A (zh) 微码修补系统及方法
US20200218446A1 (en) Method and apparatus for memory management
US5758056A (en) Memory system having defective address identification and replacement
US20020120810A1 (en) Method and system for patching ROM code
KR20020075291A (ko) 기억장치
US6546517B1 (en) Semiconductor memory
CN102063943A (zh) Nand闪存参数自动检测系统
CN101075213B (zh) 只读存储器数据修补电路和方法、及其嵌入式系统
US20060259729A1 (en) Semiconductor memory device, a sector-address conversion circuit, an address-conversion method, and operation method of the semiconductor memory device
CN102737722A (zh) 一种内建自测系统的自检修补法
CN103593252A (zh) 具有动态错误侦测及更正的存储器
US11755211B2 (en) Overhead reduction in data transfer protocol for NAND memory
KR100737919B1 (ko) 낸드 플래시 메모리의 프로그램 방법 및 메모리 시스템의프로그램 방법
US20040186962A1 (en) Method, system, and computer-readable medium for updating memory devices in a computer system
CN104134464A (zh) 地址线测试系统及方法
US20130246687A1 (en) Data writing method, memory controller and memory storage apparatus
KR100517765B1 (ko) 캐시 메모리 및 그 제어 방법
CN102129416A (zh) 一种数据通信命令表的配置存储系统及方法
US8897048B2 (en) Semiconductor memory device and programming method thereof
CN110968455A (zh) 一种非易失性存储器的修复方法及装置
CN105224249B (zh) 一种写操作方法和装置
CN116206659B (zh) 一种otp存储器
CN1532701B (zh) 存储器不稳定仍维持系统稳定度的系统及存储器控制方法
CN117573155B (zh) 产品信息处理方法及芯片
CN107977325A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication