CN102609320B - 微处理器与于微处理器中配置除错逻辑的方法 - Google Patents
微处理器与于微处理器中配置除错逻辑的方法 Download PDFInfo
- Publication number
- CN102609320B CN102609320B CN201210015223.6A CN201210015223A CN102609320B CN 102609320 B CN102609320 B CN 102609320B CN 201210015223 A CN201210015223 A CN 201210015223A CN 102609320 B CN102609320 B CN 102609320B
- Authority
- CN
- China
- Prior art keywords
- mentioned
- microprocessor
- debug
- microcode
- fuse
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
Abstract
微处理器与于微处理器中配置除错逻辑的方法,该方法包括:执行一重置微码以响应上述微处理器的重置;重置微码判定一标志是否具有一第一预设值或一第二预设值,其中标志用以指出重置微码是否被致能以配置除错逻辑;当标志具有第一预设值时,重置微码将多个数值写入一可编程除错配置存储元件,用以配置除错逻辑;以及当标志具有第二预设值时,禁止将数值写入可编程除错配置存储元件。
Description
技术领域
本发明涉及微处理器的设计,特别涉及配置微处理器的除错逻辑。
背景技术
现在的微处理器非常的复杂,其意味着在微处理器和/或微处理器执行的软件中有很高的机率会发生错误,包括系统固件(如BIOS)。因此,急需一种工具用以帮助微处理器开发者对微处理器以及系统固件除错。现在已有许多除错工具。当执行用户软件(如应用软件或操作系统软件)时大部分错误会自己显现出来。举例而言,当微处理器正在执行一特定应用程序(如电视游戏),或当由许多用户和/或一特定用户软件应用程序的结合处在大量负载时,错误会自己显现出来。在这些情况中,当微处理器已经开机且正在运作用户程序后,通过用户软件配置与致能除错工具即可满足该项需求。然而,从过去经验得知,在用户软件运作以配置及致能除错工具前,在系统开机过程中已有部分错误被显现出来。因此,需要一种方法以协助除错上述系统开机过程中的部分错误。
发明内容
在本发明的一实施例中,微处理器包括除错逻辑、多个可编程除错配置存储单元、重置逻辑标志与重置微码。微处理器用以在读取与执行用户程序指令之前执行重置微码以响应微处理器重置。重置逻辑标志于微处理器重置之前为可变的,并于微处理器读取与执行用户指令之前选择性地致能重置微码以设定与致能除错逻辑。
重置微码用以判定重置逻辑标志是否具有一第一预设值或一第二预设值,第一预设值与第二预设值分别相对应于一除错模式值以及一初始标准模式值。当重置逻辑标志具有对应于除错模式的第一预设值时,重置微码将除错配置初始值写入可编程除错配置存储元件中,以配置除错逻辑。当重置逻辑标志具有相对应于标准模式值的第二预设值时,重置微码禁止将除错配置初始值写入可编程除错配置存储元件中。因此,在微处理器重置时以及微处理器读取与执行用户指令之前,微处理器根据重置逻辑标志的预设值被选择性地配置以设定与致能除错逻辑。
在另一实施例中,除错逻辑为一追踪程序逻辑,除错配置存储元件为追踪程序配置存储元件,除错配置初始值为追踪程序逻辑配置值。在一实施例中,可编程除错或追踪程序配置存储元件包括微处理器的特别模块寄存器,特别模块寄存器通过上述的重置微码及x86指令集结构的WRMSR指令进行配置。
在另一有关重置逻辑标志架构的实施例中,重置逻辑标志包括一可变熔丝,用以通过上述微处理器的高电压输入端熔断上述微码修补熔丝加以改变。在另一实施例中,重置逻辑标志包括一易失性存储器扫描寄存器,上述易失性存储器扫描寄存器具有可通过微处理器的除错端口通过除错器所设定的数值。重置逻辑标志包括由除错器预先提供的扫描寄存器值。当微处理器重置且微处理器没有关掉电源时,上述扫描寄存器的数值可保持着。当重置逻辑标志不具有扫描寄存器的数值时,重置逻辑标志的数值即为通过可变熔丝所指定的数值。
同样地,在另一有关除错配置初始值来源的实施例中,除错配置初始值为通过多个可变除错配置初始存储元件的一或多个提供。除错配置初始化值为存储在重置微码中的数值。在一些实施例中,通过微处理器的高电压输入端熔断微码修补熔丝的可变微码修补熔丝被提供以在微处理器中应用微码修补。在这些实施例中,当使用微码修补时,除错配置初始化值为存储在微码修补中的数值。在一些实施例中,易失性存储器扫描寄存器用以扫描或提供除错器扫描以及存储由微处理器的除错端口通过除错器所提供的数值。在这些实施例中,除错配置初始化值为由除错器预先提供的扫描寄存器值。当没有扫描寄存器值时,除错配置初始化值为存储在微码修补中的数值。当在上述两种情况中,除错配置初始化值为与原先重置微码存储的数值。
在另一实施例中,除错逻辑选择性地根据可编程除错配置存储元件的数值与一除错触发事件的检测触发除错微码。当在除错模式时,除错微码配置微处理器以产生处理器状态记录信息。
在另一实施例中,提供配置微处理器的除错逻辑的方法。微处理器执行重置微码以响应微处理器的重置。重置微码判定一标志是否具有一第一预设值或一第二预设值,其中标志用以指出重置微码是否用以配置除错逻辑。当标志具有第一预设值时,重置微码将除错配置初始化值写入可编程除错配置存储元件中以配置除错逻辑。当标志具有第二预设值时,重置微码禁止将除错配置初始化值写入可编程除错配置存储元件中。
在另一有关重置逻辑标志的结构的实施例中,重置逻辑标志包括一可变熔丝,用以通过上述微处理器的一高电压输入端熔断上述微码修补熔丝加以改变。在此实施例中,该方法还包括通过上述微处理器的一高电压输入端熔断上述微码修补熔丝加以改变。
在另一实施例中,重置逻辑标志包括一易失性存储器扫描寄存器,上述易失性存储器扫描寄存器具有可通过微处理器的除错端口通过除错器所设定的数值。在此实施例中,该方法还包括连接一除错器至微处理器的除错端口,使用除错器以设定扫描寄存器值,以及在不关闭微处理器电源的情况下重置微处理器。
同样地,在另一有关除错配置初始值的可变来源的实施例中,将数值写入可编程除错配置存储元件中的动作包括将存储在重置微码中的预设值写入可编程除错配置存储元件中,在另一实施例中,将数值写入可编程除错配置存储元件的动作包括将存储在多个初始化存储元件中的值写入可编程除错配置存储元件中。初始化存储元件包括可变微码修补熔丝,用以通过上述微处理器的一高电压输入端熔断上述微码修补熔丝加以改变。该方法还包括施加多个高电压至可变微码修补熔丝的一或多个以修补重置微码。初始化存储元件包括易失性存储器扫描寄存器,上述易失性存储器扫描寄存器具有可通过微处理器的除错端口所设定的数值。该方法还包括连接一除错器至微处理器的除错端口,使用除错器以设定扫描寄存器值,以及在不关闭微处理器电源的情况下重置微处理器。
在另一实施例中,提供通过设定重置逻辑标志以配置微处理器的除错逻辑的方法,在读取以及执行用户指令前,该重置逻辑标志选择性地致能重置微码以设定与致能微处理器中的除错逻辑。该方法包括连接一除错器至微处理器的除错端口,根据设定至初始标准模式的重置逻辑标志运作微处理器,使用除错器以设定重置逻辑标志为一除错模式值,重置微处理器,以及执行重置微码以响应微处理器的重置。重置微码判定重置逻辑标志是否具有标准模式值或除错模式值。当重置逻辑标志具有除错模式值时,将数值写入可编程除错配置存储元件中。当重置逻辑标志不具有除错模式值,禁止将数值写入可编程除错配置存储元件中。
上述方法有关于重置逻辑标志的结构以及除错配置初始化值的可变来源的设定动作。在一实施例中,该方法还包括在重置微处理器前,使用除错器以将新除错配置值写入多个除错配置初始化存储元件中。在其他实施例中,该方法还包括在重置微处理器前,施加多个高电压至一或多个可变微码修补熔丝以改变重置逻辑标志的相对应值和/或修补重置微码。在其他实施例中,该方法还包括在重置微处理器前,使用除错器设定扫描寄存器值和/或除错配置初始化值以给重置逻辑标志。
附图说明
图1所示是根据本发明实施例的微处理器的方块图;
图2所示是根据本发明实施例的配置图1微处理器的方法流程图;
图3所示是根据本发明实施例的图1微处理器的运作流程图。
【主要元件符号说明】
100~微处理器;
102~快取存储器;
104~指令转译器;
106~微序列器;
107~微码存储器;
108~重置微码;
112~寄存器别名表;
114~保留站;
116~执行单元;
118~引退单元;
128~微码修补熔丝;
132~特征致能熔丝;
134~扫描寄存器;
138~追踪程序特别模块寄存器;
142~追踪程序微码;
144~微码修补硬件;
152~逻辑;
154~事件输入;
156~信号;
192~重置输入端;
194~熔丝熔断电压输入端;
196~JTAG输入端;
202、204、302、304、305、306、308、312、314、316~步骤。
具体实施方式
美国专利第12/748,753号(CNTR.2461)、第12/748,929号(CNTR.2508)、第12/944,269号(CNTR.2509)与第12/748,846号(CNTR.2510)中描述了一种用于微处理器的除错与效能调整功能的追踪程序。一般而言,追踪程序是一组微码例程(microcode routine),追踪程序一直处在睡眠状态,直到一软件被写入至一控制寄存器时追踪程序才会被启动。
当追踪程序被启动时,多个事件可以触发追踪程序以收集处理器状态信息以及将处理器状态信息写入存储器中特定的地址,使得处理器状态信息可以被监控外部处理器总线状态的逻辑解析器(logic analyzer)所捕捉。状态信息包括:寄存器组(register sets)、转译后备(translation-lookaside)缓冲器、快取存储器(例如数据快取存储器、指令快取存储器、分流目标地址快取存储器与level-2快取存储器)与处理器私有RAM的内容。状态信息以及其他有关状态信息的信息(时间信息)在此处称为记录(LOG)信息或记录。
上述事件也可以触发追踪程序用以执行其他动作,例如清除多种状态(例如回写无效快取存储器、清除TLBs与LRU矩阵以及分流预测信息),或使处理器对私有SMM地址执行SMI中断。举例而言,事件包括:特定指令的执行;x86异常;SMI、INTR、NMI、STPCLK与A20中断;VM离开状态;机器检测;以及读写APIC寄存器。
追踪程序可被服务处理器配置、致能以及触发。当主要处理器总线闲置(hang)时,记录信息可以被写入至系统存储器或服务处理器总线。服务处理器也可检测主要处理器处在闲置状态,并在重置主要处理器时,为主要处理器和/或写入记录信息。追踪程序可被配置在一多内核处理器的每一内核上,使得所有内核在分界点(breakpoint)后可同步继续执行。追踪程序可被配置成重复执行以下指令:在一预设数目的指令引退后被触发、将处理器状态倾倒(dump)存储器后、重置处理器后、从存储器重载处理器状态后、以及继续执行。必要的话,处理器的重置可为部分重置以避免闲置系统总线。
然而,时常在用户应用程序配置追踪程序寄存器之前,在微处理器或系统固件中的错误即会显现出来。此处描述一种解决方法,主要为在微处理器开始读取与执行用户应用程序指令之前,即配置微处理器以使重置微码载入具有预设值的追踪程序配置寄存器,使得追踪程序可在用户码致使任一事件发生时被事件触发。微处理器被配置完成上述步骤包括修补追踪程序微码,以及熔断熔丝以启动此特征,修补微码可用以致能除错器从预设值改变为追踪程序配置寄存器值。
图1所示是根据本发明的微处理器100的示意图。微处理器100可由改变一可编程熔丝值而被选择性地配置,在微处理器100转送控制权给一用户应用程序(如系统固件)之前(即于微处理器100读取或执行用户应用程序指令之前),使得重置微处理器100的微码可配置与致能追踪程序特征。上述方法有助于对微处理器100与系统固件进行除错。仔细而言,上述方法在用户软件用以配置与致能追踪程序之前,可便于针对在系统开机过程已经显现出来的错误类别进行除错。此外,上述方法使得微处理器100的制造者可在没有存取系统固件来源码的情况中,判定错误是否在微处理器100或系统固件中。
根据本发明一实施例,微处理器100的微结构包括超标量(纯量)架构与非循序(out-of-order)执行管线(pipeline)的功能单元。指令快取存储器102快取(cache)从一系统存储器(未显示于图中)中所读取的指令。指令转译器104耦接至指令快取存储器102,以接收来自指令快取存储器102的指令,如x86指令集结构指令。寄存器别名表112(register alias table,RAT)耦接至指令转译器104与微序列器106,以接收来自指令转译器104与微序列器106的已转译的微指令,以及对已转译的微指令产生相依性信息(dependency infor-mation)。多个保留站114耦接至寄存器别名表112,以接收来自寄存器别名表112的已转译的微指令与相关信息。多个执行单元116耦接至保留站114,以接收来自保留站114的已转译的微指令与已转译微指令的指令运算元。指令运算元可来自微处理器100的寄存器,例如通用寄存器(未显示于图中)与可读写的特别模块寄存器138(model specific register,MSR),以及来自耦接至执行单元116的数据快取存储器(未显示于图中)。引退单元118耦接至执行单元116,以接收来自执行单元116的指令结果,并引退指令结果至微处理器100的结构状态寄存器中。一外部的重置输入端192耦接至每一单元。当微处理器100电源开启时,重置输入端192上的重置值使得微处理器100保持在重置状态,直到一转变信号使重置输入端192上的值转变为非重置值为止。
特别模块寄存器138可为追踪程序特别模块寄存器(138)或追踪程序配置寄存器(138)。追踪程序配置寄存器(138)存储关于追踪程序运算的配置值,例如会触发追踪程序的事件以及追踪程序会根据事件所执行的动作等信息,如上述美国专利申请书中所载。如上所述,用户应用程序可对追踪程序配置寄存器(138)进行写入操作以配置与致能追踪程序。在一实施例中,用户码可通过x86 WRMSR指令以写入至追踪程序配置寄存器(138)中。有益的是,重置微码108(下面将对此进行讨论)可在用户应用程序指令被读取与执行前被致能,用以载入追踪程序配置值至追踪程序配置寄存器(138)并致能追踪程序,以便加速微处理器100和/或系统固件的除错。
微序列器106包括微码存储器107,其中微码存储器107用以存储重置微码108、追踪程序微码142以及被执行单元116所执行的其他微码。微序列器106还包括微码修补硬件144。重置微码108被启动以响应微处理器100的重置。换句话说,当微处理器100重置时,微处理器100最先执行的指令为重置微码108。在一实施例中,重置微码108与追踪程序微码142为微处理器100的微结构指令集的指令。在另一实施例中,重置微码108与追踪程序微码142为不同指令集的指令,上述指令被转译为微处理器100的微结构指令集的指令。下面将详述重置微码108与追踪程序微码142的运作。
微处理器100包括逻辑152,用以接收来自追踪程序配置寄存器(138)的值与事件输入154,并响应于其而产生一追踪程序进入信号(trap on tracersignal)156至指令转译器104,以使得指令转译器104停止读取用户应用程序指令,并使指令转译器104控制权至微序列器106并开始读取追踪程序微码142。因此,当追踪程序配置寄存器(138)中所定义的一追踪程序触发事件发生时,追踪程序微码142即被启动。事件输入154可包括用以表示前述美国专利申请书中所描述的事件的输入,例如,但不限定于,一计数器指出微处理器100已经引退了一预设数目的指令、指令转译器104解码一预设指令集中的一指令、以及一异常发生。逻辑152比较事件输入154与来自追踪程序配置寄存器(138)的追踪程序配置值,以判定事件输入154是否达到条件以传送追踪程序进入信号156。有益的是,微处理器100通过特征致能熔丝(fatureenable fuse)132或如下将详述的一除错端口或测试存取端口如JTAG(JointTest Action Group)输入端196(其中JTAG输入端196为JTAG接口的一部分)被配置,用以使重置微码108载入追踪程序配置值至追踪程序配置寄存器(138),以便于用户应用程序指令被读取与执行之前配置与致能追踪程序。此外,追踪程序配置的预设值可通过微码修补熔丝由修补微码加以修正。应注意的是,在一实施例中,可以逻辑152为中心组成一除错逻辑来完成上述除错的工作,而除错逻辑应包含逻辑152的功能但不限于此。此外,在另一实施例中,可以追踪程序配置寄存器138为内核作为存储配置上述除错逻辑所需数值的可编程除错配置存储单元,而此可编程除错配置存储单元所存储的数值可视应用而变更、或是视应用而编程存储其中的数值。再者,作为除错触发事件的事件154也可依据实际应用而变更,以使上述的除错逻辑得以进入除错模式以进行除错的工作,但实际应用不限于此。
微处理器100也包括特征致能熔丝132,用以指出除错器(即除错微处理器100和/或系统固件的用户)是否已经致能重置微码108以配置与致能追踪程序的特征。特征致能熔丝132的值被提供至执行单元116使得重置微码108可以读取该值。特征致能熔丝132的熔断值指示重置微码108以配置与致能追踪程序特征,而特征致能熔丝132的非熔断值则指示重置微码108以禁止配置与致能追踪程序特征。特征致能熔丝132可通过在熔丝熔断电压输入端194施加高电压而被熔断。在一实施例中,微处理器100包括可寻址的熔丝,且熔丝熔断电压输入端194也包括地址信号,其中可通过地址信号以指出哪些特征致能熔丝132为可被熔断的熔丝。在一实施例中,可以特征致能熔丝132为内核设置一初始化存储元件,作为存储除错配置初始化值的场所,例如当致能熔丝132的非熔断值(亦即初使标准模式值)则指示重置微码108以禁止配置与致能追踪程序特征,但实际应用可不限于此。
微处理器100也包括多个微码修补熔丝128,微码修补熔丝128可通过微码修补(microcode patches)被选择性地熔断,微码修补被写入至微码修补硬件144以修补重置微码108与追踪程序微码142。进一步而言,在重置微码108与追踪程序微码142中的初始追踪程序配置值可通过微码修补熔丝128被修补。微码修补熔丝128的值被提供至执行单元116,使得重置微码108可读取该值且将这些值写入微码修补硬件144。微码修补熔丝128可通过熔丝熔断电压输入端194被熔断。
在一实施例中,微处理器100还包括一扫描寄存器134,扫描寄存器134配置在执行单元116与特征致能熔丝132与微码修补熔丝128之间。在执行单元116执行到要求这些值的指令时,扫描寄存器134接收特征致能熔丝132与微码修补熔丝128的值,并将接收到的值提供至执行单元116。然而,如果除错器在微处理器100重置之前通过JTAG输入端196将这些值扫描入扫描寄存器134之中,扫描寄存器134会提供特征致能熔丝132和/或微码修补熔丝128的值至执行单元116。在此方式中,在读取与执行用户应用程序指令之前,除错器不需熔断特征致能熔丝132即可致能此特征,以使得重置微码108配置与致能追踪程序。同样地,在此方式中,除错器不需熔断微码修补熔丝128,即可通过修补在重置微码108与追踪程序微码142中的初始追踪程序配置值,以修正初始追踪程序配置值。通过JTAG输入端196将这些值扫描至扫描寄存器134而非熔断熔丝128与132的好处为这些值可连续性地被改变。即使当微处理器100重置时,扫描至扫描寄存器134的值会保持着,然而当关闭微处理器100时,扫描至扫描寄存器134的值将会遗失。
在一实施例中,在微处理器100开启后与重置输入端被释放之前(即重置微码108开始运作之前),除错器将这些值扫描至扫描寄存器134。除错器可利用除错器转接器(如JTAG卡)扫描这些值并通过JTAG输入端196改变熔丝128/132的值。基本上,JTAG卡(通过耦接一USB端口)安装在一计算机中,该计算机为在包括微处理器100和/或系统固件将被除错的另一计算机的外部,而JTAG卡则包括JTAG接口,用以耦接正在被除错的微处理器100的JTAG输入端。除错器通过熔丝熔断电压输入端194或JTAG输入端196将特征致能熔丝132设定为一第一预设值以致能该特征,并将特征致能熔丝132设定为一第二预设值以去能该特征。
图2所示是配置图1的微处理器100以除错微处理器100和/或系统固件的方法的流程图。流程图起始在步骤202。
在步骤202中,除错器通过通过熔丝熔断电压输入端194熔断特征致能熔丝132、或通过JTAG输入端196将特征致能值扫描至扫描寄存器134以致能除错特征。接着,流程图进行至步骤204。
在步骤204中,除错器通过修补重置微码108/追踪程序微码142以覆盖重置微码108/追踪程序微码142中的初始追踪程序配置值,上述步骤可通过通过熔丝熔断电压输入端194熔断微码修补熔丝128、或通过JTAG输入端196将修补值扫描至扫描寄存器134达成。在一实施例中,初始追踪程序配置值使得追踪程序于指令转译器104在下列情形产生检查点(checkpoint):执行指令(如RDMSR、WRMSR、CPUID、IN、OUT或RDTSC)时;一外部中断(包括一系统管理中断SMI);一异常发生;或一TR7事件。TR7事件可通过程序给定一数值,以指出在检查点之前所预定的引退指令数量。TR7事件中的检查点包括在每次引退一预设数目的指令后,将处理器状态信息的完全倾倒(full dump)或记录。在其他追踪程序事件时,检查点包括较小的记录,主要包括有关于执行特定指令或事件的暂存值。接着,流程图进行至步骤204。
因为标准功能和/或效能会被追踪程序特征的致能所影响,除了在除错环境中,除错微码不适合致能追踪程序。换句话说,因为标准功能和/或效能可能会被影响,微处理器100的制造者在配置微处理器100给一般用户时并不会在重置时致能追踪程序。
图3所示是图1的微处理器100的运作的流程图。流程图起始在步骤302。
在步骤302中,微处理器100进行重置。在一实施例中,微处理器100的重置通过在重置输入端192上由一第一预设值转换至一第二预设值所触发。在一实施例中,微处理器100的重置可通过接收到一讯息所触发,例如微处理器100接收到经由包含微处理器100的系统的一芯片组传送的总线协议INIT讯息。在另一实施例中,微处理器100包括辅助处理器或服务处理器如上述美国专利申请书中所述,而服务处理器会重置图1中的微处理器100。接着,流程图进行至步骤304。
在步骤304中,响应在步骤302中的微处理器100的重置,微处理器100开始读取与执行图1中的重置微码108。进一步而言,微序列器106开始读取与执行重置微码108。接着,流程图进行至步骤305。
在步骤305中,重置微码108从扫描寄存器134读取特征致能熔丝132与微码修补熔丝128的值。此外,重置微码108将从扫描寄存器134读取到的微码修补写入微码修补硬件144。如上所述,微码修补可在重置微码108/追踪程序微码142中包括对初始追踪程序配置值的修正。接着,流程图进行至步骤306。
在步骤306中,重置微码108根据步骤305中所读取到的特征致能熔丝132的值,用以判定该特征是否被致能。在一实施例中,微处理器100对于每一类型微处理器100的重置包括不同的特征致能熔丝。举例而言,一第一特征致能熔丝可用以指出重置微码108是否应配置与致能追踪程序以响应一外部输入端的重置192,一第二特征致能熔丝可用以指出重置微码108是否应配置与致能追踪程序以响应一INIT讯息重置,以及一第三特征致能熔丝可用以指出重置微码108是否应配置与致能追踪程序以响应服务处理器对微处理器100的重置。如果特征被致能时,流程图则进行至步骤308;否则,流程图则进行至步骤312。
在步骤308中,重置微码载入预设值至追踪程序配置寄存器(138)且致能追踪程序。这些预设值包含在重置微码108之中,即微码存储器107在制造即具有此与设值。然而,包含在重置微码108中的预设值可通过熔断图1中的微码修补熔丝128被改变。接着,流程图进行至步骤312。
在步骤312中,重置微码108继续微处理器100的标准初始化,例如执行诊断功能(如测试快取存储器阵列)以及配置微处理器100的其他部分。接着,流程图进行至步骤314。
在步骤314中,重置微码108完成微处理器100的初始化且通过读取与执行在结构重置向量地址(architectural reset vector address)的指令以转交控制权给用户软件,其中系统固件位于结构重置向量地址中。接着,流程图进行至步骤316。
在步骤316中,在重置微码108用以配置追踪程序配置寄存器(138)的触发事件发生时,微处理器100执行追踪程序微码142。
本发明虽以优选实施例公开如上,然其并非用以限定本发明的范围,本领域技术人员在不脱离本发明的精神和范围内,当可做些许的更动与润饰。举例来说,除了以硬件(例如耦接至或在一中央处理单元内、微处理器、微控制器、数字信号处理器、处理器内核、系统芯片或任何其它装置)来实现外,也可用软件(例如计算机可读码、程序代码、或任何形式的指令,例如原始语言、目标语言或机械语言)来实现,例如,在一计算机可用(例如可读取)介质内存储该软件。举例来说,此种软件可以使功能执行、制造、制造模型、模拟、叙述或测试这里所提及的装置及方法,例如,可用通常的程序语言(例如C或C++)、硬件描述语言(例如Verilog HDL、VHDL)或其它程序来完成;此种软件可被安装于任何计算机可用介质,例如半导体、磁盘或光盘(例如CD-ROM、DVD-ROM等)。本发明的实施例包括提供一微处理器的方法,此通过提供描述有微处理器的设计的软件,并将该软件以计算机数据信号的方式通过通信网络(包括互联网及局域网)传送出去。本发明的装置与方法也可被用于一半导体知识产权内核(semiconductor intellectualproperty core),例如一个微处理器内核(以HDL实现),之后再以集成电路的方式转换成硬件,另外,本发明的装置与方法也可由硬件及软件来组合实现。因此,本发明不该被局限于所公开的实施例,本发明的保护范围当视后附的申请专利范围所指定者为准。本发明被实现于一微处理器装置中,且该微处理器装置被应用于一般的计算机。
Claims (22)
1.一种用于配置除错逻辑的微处理器,包括:
一除错逻辑单元;
多个可编程除错配置存储元件,上述可编程除错配置存储元件的值用以配置上述除错逻辑;
一扫描寄存器,用于存储一标志,该标志在上述微处理器重置之前为可变的;以及
一微码存储器,用于存储重置微码,该重置微码用以于上述微处理器被重置时以及在用户应用程序指令被读取与执行之前被上述微处理器执行,上述重置微码用以:
判定上述标志是否具有一第一预设值或一第二预设值;
当上述标志具有上述第一预设值时,将除错配置初始值写入上述可编程除错配置存储元件作为可编程除错配置存储元件的值,用以配置上述除错逻辑;以及
当上述标志具有上述第二预设值时,禁止将上述除错配置初始值写入上述可编程除错配置存储元件;
其中在上述读取与执行上述用户应用程序指令前,上述微处理器于重置时根据上述标志的上述预设值被配置,用以设定与致能上述除错逻辑,
其中上述除错逻辑用以根据上述可编程除错配置存储元件的上述数值与一除错触发事件的检测以启动一除错微码,
其中第一预设值与第二预设值分别相对应于一除错模式值以及一初始标准模式值。
2.如权利要求1所述的微处理器,其中上述重置微码用以将存储在上述微码存储器中的多个预设值写入上述可编程除错配置存储元件。
3.如权利要求1所述的微处理器,还包括多个初始化存储元件用以存储多个除错配置初始值。
4.如权利要求3所述的微处理器,其中上述初始化存储元件包括多个可变的微码修补熔丝,用以通过上述微处理器的一高电压输入端熔断上述微码修补熔丝加以改变。
5.如权利要求3所述的微处理器,还包括一除错端口,其中上述初始化存储元件包括多个扫描寄存器,上述扫描寄存器具有可通过上述微处理器的上述除错端口扫描的特征致能熔丝和微码修补熔丝的数值,当上述微处理器重置且上述微处理器没有关掉电源时,上述扫描寄存器的上述数值可保持着。
6.如权利要求1所述的微处理器,其中上述扫描寄存器替换为用于存储该标志的一微码修补熔丝,用以通过上述微处理器的一高电压输入端熔断微码修补熔丝实现该标志的改变。
7.如权利要求1所述的微处理器,还包括一除错端口,上述扫描寄存器具有可通过上述微处理器的上述除错端口扫描的特征致能熔丝和微码修补熔丝的数值,其中当上述微处理器重置且上述微处理器没有关掉电源时,上述扫描寄存器的数值可保持着。
8.如权利要求1所述的微处理器,其中上述可编程除错配置存储元件包括上述微处理器的多个特别模块寄存器,上述特别模块寄存器通过一x86指令集结构的一WRMSR指令进行配置。
9.如权利要求1所述的微处理器,其中上述除错微码用以在一除错模式时,配置上述微处理器以产生一处理器状态记录信息。
10.一种于微处理器中配置除错逻辑的方法,包括:
执行一重置微码以响应上述微处理器的重置;
上述重置微码判定一标志是否具有一第一预设值或一第二预设值,其中上述标志用以指出上述重置微码是否被致能以配置上述除错逻辑,其中第一预设值与第二预设值分别相对应于一除错模式值以及一初始标准模式值;
当上述标志具有上述第一预设值时,上述重置微码将除错配置初始值写入一可编程除错配置存储元件,用以配置上述除错逻辑;以及
当上述标志具有上述第二预设值时,禁止将上述除错配置初始值写入上述可编程除错配置存储元件;以及
根据上述可编程除错配置存储元件的上述除错配置初始值与一除错触发事件的检测以启动一除错微码。
11.如权利要求10所述的于微处理器中配置除错逻辑的方法,还包括将存储在上述重置微码中的预设值写入上述可编程除错配置存储元件。
12.如权利要求10所述的于微处理器中配置除错逻辑的方法,其中将上述除错配置初始值写入上述可编程除错配置存储元件的步骤,包括将存储在初始化存储元件中的除错配置初始值写入上述可编程除错配置存储元件。
13.如权利要求12所述的于微处理器中配置除错逻辑的方法,其中上述初始化存储元件包括一个或多个可变的微码修补熔丝,用以通过上述微处理器的一高电压输入端熔断上述一个或多个微码修补熔丝加以改变,还包括施加多个高电压至上述微码修补熔丝的一个或多个以修补上述重置微码。
14.如权利要求12所述的于微处理器中配置除错逻辑的方法,其中上述初始化存储元件包括易失性存储器扫描寄存器,上述易失性存储器扫描寄存器具有可通过上述微处理器的一除错端口扫描的特征致能熔丝和微码修补熔丝的数值,其中当上述微处理器重置且上述微处理器没有关掉电源时,上述易失性存储器扫描寄存器的上述数值可保持着,上述方法还包括:
连接一除错器至上述微处理器的上述除错端口;
使用上述除错器设定上述易失性存储器扫描寄存器的上述数值;以及
在上述微处理器未关掉电源时重置上述微处理器。
15.如权利要求10所述的于微处理器中配置除错逻辑的方法,其中上述标志存储在一微码修补熔丝用以通过上述微处理器的一高电压输入端熔断微码修补熔丝加以改变。
16.如权利要求10所述的于微处理器中配置除错逻辑的方法,其中上述标志存储在一易失性存储器扫描寄存器,上述易失性存储器扫描寄存器具有可通过上述微处理器的一除错端口扫描的特征致能熔丝和微码修补熔丝的数值,其中当上述微处理器重置且上述微处理器没有关掉电源时,上述易失性存储器扫描寄存器的数值可保持着,上述方法还包括:
连接一除错器至上述微处理器的上述除错端口;
使用上述除错器设定上述易失性存储器扫描寄存器的上述数值;以及
在上述微处理器未关掉电源时重置上述微处理器。
17.一种于微处理器中配置除错逻辑的方法,上述微处理器通过一重置逻辑标志用以指出一初始标准模式值或一除错模式值,上述方法包括:
连接一除错器至上述微处理器的一除错端口;
根据设定为上述初始标准模式值的上述重置逻辑标志运作上述微处理器;
使用上述除错器设定上述重置逻辑标志为上述除错模式值;
重置上述微处理器;
执行一重置微码以响应上述微处理器的重置;
上述重置微码判定上述重置逻辑标志是否具有上述初始标准模式值或上述除错模式值;
当上述重置逻辑标志具有上述除错模式值时,上述重置微码将除错配置初始值写入一可编程除错配置存储元件,用以配置上述除错逻辑;以及
当上述重置逻辑标志具有上述初始标准模式值时,禁止将上述除错配置初始值写入上述可编程除错配置存储元件;
根据上述可编程除错配置存储元件的上述除错配置初始值与一除错触发事件的检测以启动一除错微码。
18.如权利要求17所述的于微处理器中配置除错逻辑的方法,其中上述微处理器还包括多个初始化存储元件,上述方法还包括:
在重置上述微处理器之前,使用上述除错器将新的除错配置值写入上述初始化存储元件中;
其中上述重置微码将上述除错配置初始值写入上述可编程除错配置存储元件的步骤,包括将存储在上述初始化存储元件中的上述新的除错配置值写入上述可编程除错配置存储元件中。
19.如权利要求17所述的于微处理器中配置除错逻辑的方法,其中上述微处理器还包括可变的微码修补熔丝,用以通过上述微处理器的一高电压输入端熔断上述微码修补熔丝加以改变,上述方法还包括:
施加高电压至上述微码修补熔丝的一或多个,用以修补上述重置微码;
其中上述重置微码将上述除错配置初始值写入上述可编程除错配置存储元件的步骤,包括将存储在上述可变的微码修补熔丝中的数值写入上述可编程除错配置存储元件中。
20.如权利要求17所述的于微处理器中配置除错逻辑的方法,其中上述微处理器还包括易失性存储器扫描寄存器,上述易失性存储器扫描寄存器具有可通过上述微处理器的一除错端口扫描的特征致能熔丝和微码修补熔丝的数值,其中当上述微处理器重置且上述微处理器没有关掉电源时,上述易失性存储器扫描寄存器的数值可保持着,上述方法还包括:
在重置上述微处理器之前,使用上述除错器设定上述易失性存储器扫描寄存器的数值;
在上述微处理器未关掉电源时,完成重置上述微处理器;以及
上述重置微码将上述除错配置初始值写入上述可编程除错配置存储元件的步骤,包括写入上述易失性存储器扫描寄存器的数值至上述可编程除错配置存储元件。
21.如权利要求17所述的于微处理器中配置除错逻辑的方法,其中上述重置逻辑标志存储在一微码修补熔丝,用以通过上述微处理器的一高电压输入端熔断微码修补熔丝加以改变,上述方法还包括:
通过上述微处理器的上述高电压熔断上述微码修补熔丝,用以设定上述重置逻辑标志为上述除错模式值。
22.如权利要求17所述的于微处理器中配置除错逻辑的方法,其中上述重置逻辑标志存储在一易失性存储器扫描寄存器,上述易失性存储器扫描寄存器具有可通过上述微处理器的一除错端口扫描的特征致能熔丝和微码修补熔丝的数值,其中当上述微处理器重置且上述微处理器没有关掉电源时,上述易失性存储器扫描寄存器的数值可保持着,上述方法还包括:
在重置上述微处理器之前,使用上述除错器设定上述易失性存储器扫描寄存器的数值为上述除错模式值;以及
在上述微处理器未关掉电源时,完成重置上述微处理器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161433904P | 2011-01-18 | 2011-01-18 | |
US61/433,904 | 2011-01-18 | ||
US13/293,268 | 2011-11-10 | ||
US13/293,268 US8639919B2 (en) | 2011-01-18 | 2011-11-10 | Tracer configuration and enablement by reset microcode |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102609320A CN102609320A (zh) | 2012-07-25 |
CN102609320B true CN102609320B (zh) | 2015-09-02 |
Family
ID=46491653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210015223.6A Active CN102609320B (zh) | 2011-01-18 | 2012-01-18 | 微处理器与于微处理器中配置除错逻辑的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8639919B2 (zh) |
CN (1) | CN102609320B (zh) |
TW (1) | TWI465899B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8464032B2 (en) * | 2009-07-10 | 2013-06-11 | Via Technologies, Inc. | Microprocessor integrated circuit with first processor that outputs debug information in response to reset by second processor of the integrated circuit |
US8495344B2 (en) * | 2010-01-22 | 2013-07-23 | Via Technologies, Inc. | Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information |
US8762779B2 (en) * | 2010-01-22 | 2014-06-24 | Via Technologies, Inc. | Multi-core processor with external instruction execution rate heartbeat |
US8370684B2 (en) * | 2010-02-16 | 2013-02-05 | Via Technologies, Inc. | Microprocessor with system-robust self-reset capability |
CN106294357B (zh) * | 2015-05-14 | 2019-07-09 | 阿里巴巴集团控股有限公司 | 数据处理方法和流计算系统 |
CN106681877B (zh) * | 2015-11-11 | 2020-02-04 | 扬智科技股份有限公司 | 芯片调试系统及方法与系统芯片 |
TWI682400B (zh) * | 2019-03-04 | 2020-01-11 | 新唐科技股份有限公司 | 半導體裝置與資料保護方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5630049A (en) * | 1994-11-30 | 1997-05-13 | Digital Equipment Corporation | Method and apparatus for testing software on a computer network |
US5850562A (en) * | 1994-06-27 | 1998-12-15 | International Business Machines Corporation | Personal computer apparatus and method for monitoring memory locations states for facilitating debugging of post and BIOS code |
CN101261577A (zh) * | 2007-04-10 | 2008-09-10 | 威盛电子股份有限公司 | 微处理器以及在微处理器中存储数据的方法 |
CN101425030A (zh) * | 2007-10-29 | 2009-05-06 | 环隆电气股份有限公司 | 基本输入输出系统的除错方法 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62256298A (ja) | 1986-04-28 | 1987-11-07 | Toshiba Corp | ダイナミツクランダムアクセスメモリのリフレツシユ装置 |
US6463529B1 (en) | 1989-11-03 | 2002-10-08 | Compaq Computer Corporation, Inc. | Processor based system with system wide reset and partial system reset capabilities |
JP2960560B2 (ja) | 1991-02-28 | 1999-10-06 | 株式会社日立製作所 | 超小型電子機器 |
US5850526A (en) * | 1996-02-07 | 1998-12-15 | Kingston Technology Co. | LAN station for determining the destination LAN station is capable of decompressing by comparing destination address to block of addresses assigned by a LAN manufacturer |
US6438709B2 (en) | 1997-09-18 | 2002-08-20 | Intel Corporation | Method for recovering from computer system lockup condition |
KR100562116B1 (ko) | 1997-11-28 | 2006-05-25 | 마츠시타 덴끼 산교 가부시키가이샤 | 처리 효율을 높인 영상음성 처리장치 |
US6687865B1 (en) | 1998-03-25 | 2004-02-03 | On-Chip Technologies, Inc. | On-chip service processor for test and debug of integrated circuits |
US6260082B1 (en) | 1998-12-23 | 2001-07-10 | Bops, Inc. | Methods and apparatus for providing data transfer control |
US6567932B2 (en) | 1999-10-01 | 2003-05-20 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US7111160B1 (en) * | 2000-02-07 | 2006-09-19 | Cisco Technology, Inc. | Method and apparatus for using a development port for boot up |
US6643796B1 (en) | 2000-05-18 | 2003-11-04 | International Business Machines Corporation | Method and apparatus for providing cooperative fault recovery between a processor and a service processor |
DE10036278A1 (de) * | 2000-07-26 | 2002-02-07 | Bosch Gmbh Robert | Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik |
JP2002157137A (ja) | 2000-11-20 | 2002-05-31 | Nec Corp | 通信機能を備えたプログラム更新システム |
US6857083B2 (en) | 2000-12-18 | 2005-02-15 | International Business Machines Corporation | Method and system for triggering a debugging unit |
US7013398B2 (en) | 2001-11-15 | 2006-03-14 | Nokia Corporation | Data processor architecture employing segregated data, program and control buses |
US7200772B2 (en) | 2003-04-29 | 2007-04-03 | Intel Corporation | Methods and apparatus to reinitiate failed processors in multiple-processor systems |
US7269768B2 (en) * | 2004-03-18 | 2007-09-11 | Intel Corporation | Method and system to provide debugging of a computer system from firmware |
JP4409349B2 (ja) * | 2004-04-27 | 2010-02-03 | Okiセミコンダクタ株式会社 | デバッグ回路およびデバッグ制御方法 |
EP1754156B1 (en) | 2004-05-12 | 2015-12-23 | Callahan Cellular L.L.C. | Data processing system with trace co-processor |
US20060277435A1 (en) | 2005-06-07 | 2006-12-07 | Pedersen Frode M | Mechanism for storing and extracting trace information using internal memory in microcontrollers |
JP4795025B2 (ja) | 2006-01-13 | 2011-10-19 | キヤノン株式会社 | ダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラム |
US9177176B2 (en) | 2006-02-27 | 2015-11-03 | Broadcom Corporation | Method and system for secure system-on-a-chip architecture for multimedia data processing |
JP4728896B2 (ja) | 2006-07-13 | 2011-07-20 | エヌイーシーコンピュータテクノ株式会社 | コンピュータシステム |
US7610517B2 (en) | 2006-09-14 | 2009-10-27 | Innovasic, Inc. | Microprocessor with trace functionality |
US20080141073A1 (en) * | 2006-12-07 | 2008-06-12 | Inventec Corporation | BIOS debugging system and method |
CN101000596A (zh) | 2007-01-22 | 2007-07-18 | 北京中星微电子有限公司 | 一种可实现芯片内多核间通信的芯片及通信方法 |
US7853834B2 (en) | 2007-01-30 | 2010-12-14 | Freescale Semiconductor, Inc. | Instruction-based timer control during debug |
US8375219B2 (en) * | 2007-10-24 | 2013-02-12 | Microsoft Corporation | Program and operation verification |
US9223677B2 (en) | 2008-06-11 | 2015-12-29 | Arm Limited | Generation of trace data in a multi-processor system |
US7890298B2 (en) | 2008-06-12 | 2011-02-15 | Oracle America, Inc. | Managing the performance of a computer system |
US8464032B2 (en) | 2009-07-10 | 2013-06-11 | Via Technologies, Inc. | Microprocessor integrated circuit with first processor that outputs debug information in response to reset by second processor of the integrated circuit |
US8743128B2 (en) | 2009-09-01 | 2014-06-03 | Blackberry Limited | Mobile wireless communications device with reset functions and related methods |
CA2717977A1 (en) | 2009-10-20 | 2011-04-20 | Research In Motion Limited | Enhanced fast reset in mobile wireless communication devices and associated methods |
US8762779B2 (en) | 2010-01-22 | 2014-06-24 | Via Technologies, Inc. | Multi-core processor with external instruction execution rate heartbeat |
US8495344B2 (en) | 2010-01-22 | 2013-07-23 | Via Technologies, Inc. | Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information |
US8370684B2 (en) | 2010-02-16 | 2013-02-05 | Via Technologies, Inc. | Microprocessor with system-robust self-reset capability |
-
2011
- 2011-11-10 US US13/293,268 patent/US8639919B2/en active Active
-
2012
- 2012-01-17 TW TW101101679A patent/TWI465899B/zh active
- 2012-01-18 CN CN201210015223.6A patent/CN102609320B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5850562A (en) * | 1994-06-27 | 1998-12-15 | International Business Machines Corporation | Personal computer apparatus and method for monitoring memory locations states for facilitating debugging of post and BIOS code |
US5630049A (en) * | 1994-11-30 | 1997-05-13 | Digital Equipment Corporation | Method and apparatus for testing software on a computer network |
CN101261577A (zh) * | 2007-04-10 | 2008-09-10 | 威盛电子股份有限公司 | 微处理器以及在微处理器中存储数据的方法 |
CN101425030A (zh) * | 2007-10-29 | 2009-05-06 | 环隆电气股份有限公司 | 基本输入输出系统的除错方法 |
Also Published As
Publication number | Publication date |
---|---|
US8639919B2 (en) | 2014-01-28 |
TW201232251A (en) | 2012-08-01 |
TWI465899B (zh) | 2014-12-21 |
US20120185681A1 (en) | 2012-07-19 |
CN102609320A (zh) | 2012-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102609320B (zh) | 微处理器与于微处理器中配置除错逻辑的方法 | |
JP6507435B2 (ja) | 命令エミュレーションプロセッサ、方法、およびシステム | |
TWI531897B (zh) | 從多重資料錯誤中恢復之技術 | |
CN101901177B (zh) | 多核微处理器及其除错方法 | |
CN102906708B (zh) | 响应于适配器事件采取的动作的操作系统通知 | |
TWI544410B (zh) | 利用執行單步驟以進行編碼診斷 | |
US8533394B2 (en) | Controlling simulation of a microprocessor instruction fetch unit through manipulation of instruction addresses | |
CN103123597A (zh) | 微处理器及其所适用的测试方法 | |
CN101286116A (zh) | 执行实时微码修补之装置及方法 | |
US10824426B2 (en) | Generating and verifying hardware instruction traces including memory data contents | |
CN114661347A (zh) | 用于安全指令集执行、仿真、监控和阻止的装置和方法 | |
US10185616B1 (en) | Computer system vulnerability analysis apparatus and method | |
US20200151085A1 (en) | Efficient register breakpoints | |
NL2029030B1 (en) | Device, system and method to determine a structure of a crash log record | |
Wagner et al. | Using field-repairable control logic to correct design errors in microprocessors | |
CN101894062B (zh) | 微处理器以及其所适用的操作方法 | |
US9645882B2 (en) | Field repairable logic | |
CN101930390B (zh) | 微处理器及其所适用的操作方法 | |
CN101930386B (zh) | 微处理器及其所适用的初始化方法 | |
He | An Investigation of Commercial Off-The-Shelf (COTS) Based Fault Tolerance | |
CN101794249A (zh) | 微处理器及初始化微处理器的方法 | |
TW200928717A (en) | Computer system, detecting device and controlling method thereof | |
Deng et al. | Designing source-level debug-for embedded system platform | |
CN101930391A (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 |