CN100585554C - 经由私有操作访问控制寄存器的系统和方法 - Google Patents
经由私有操作访问控制寄存器的系统和方法 Download PDFInfo
- Publication number
- CN100585554C CN100585554C CN200580044467A CN200580044467A CN100585554C CN 100585554 C CN100585554 C CN 100585554C CN 200580044467 A CN200580044467 A CN 200580044467A CN 200580044467 A CN200580044467 A CN 200580044467A CN 100585554 C CN100585554 C CN 100585554C
- Authority
- CN
- China
- Prior art keywords
- microcode
- processor
- address
- control register
- input
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 14
- 238000012360 testing method Methods 0.000 claims abstract description 24
- 238000003860 storage Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 6
- 238000004519 manufacturing process Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 230000005055 memory storage Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 claims 10
- 238000007689 inspection Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 5
- 241001269238 Data Species 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000009897 systematic effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013016 damping Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- 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
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
描述了一种用于访问计算机系统中的控制寄存器的系统和方法。在一个实施例中,把正常的输入/输出可寻址范围之外的地址赋给控制寄存器。另外,该控制寄存器可以物理地位于与处理器功能电路独立的系统电路中。这种控制寄存器不能经由正常的用户输入/输出指令访问。可以用特殊微码来访问这些控制寄存器。可以通过特殊的系统事件来执行该特殊微码。这些特殊事件可以包括加载微码补丁,或进入特殊的调试模式,或使用测试访问端口的测试访问。
Description
技术领域
本发明通常涉及微处理器系统,更具体地,涉及可以使用控制寄存器设置系统参数和提供系统状态信息的微处理器系统。
技术背景
微处理器系统可以使用各种形式的控制寄存器来支持其操作。可以对一种形式的控制寄存器进行写入,以便设置系统参数、配置系统,等等。这种寄存器中各种比特的组合可以设置操作限制,诸如预测执行的深度或高速缓存的大小;或者可以开启或关闭选择性的功能电路,诸如分支预测器和预取单元;或者可以针对某些事件激活或禁止中断。可以读出其它形式的控制寄存器,以便接收系统状态。这种控制寄存器又称为状态寄存器。状态寄存器可以提供关于系统健康、与故障状况相关联的程序寄存器的内容、操作温度、及其它形式状态的信息。许多控制寄存器既可读出又可写入。控制寄存器的例子可以是在系列兼容微处理器中实现的模型特定寄存器(MSR)。
通常,可以通过用于访问控制寄存器的特定指令,或者通过特定形式的通用用户指令,诸如输入/输出(I/O)用户指令,来访问控制寄存器。可以限于在高级别软件特权下执行特定控制寄存器访问指令,其中该特定控制寄存器访问指令可用于位于处理器之内的控制寄存器。
另外,在结构上与处理器功能单元独立的系统电路部分中可能需要各种控制寄存器。例如,这些部分可以包括各种芯片组功能,或者可以包括各种系统内总线桥。通常不能经由专用电路,而仅能通过包括系统总线的预定数据路径,来访问这些系统电路部分。可能需要经由可以在低级别软件特权下执行的通用I/O用户指令,来访问位于处理器之外的常规控制寄存器,诸如位于芯片组中的控制寄存器。
附图说明
在附图中以示例性的方式而不是以限制性的方式示出了本公开,且在附图中相似的参考数字表示相似的元件,其中:
图1是根据本公开一个实施例的访问控制寄存器的图。
图2是根据本公开一个实施例的存储器地址空间的图。
图3是根据本公开另一个实施例的访问控制寄存器的图。
图4是根据本公开另一个实施例的访问控制寄存器的图。
图5A是根据本公开一个实施例的具有能够访问控制寄存器的处理器的系统的示意图。
图5B是根据本公开另一个实施例的具有能够访问控制寄存器的处理器的系统的示意图。
具体实施方式
以下描述包括用于控制寄存器的技术,该控制寄存器可以具有增强的访问保护,且可以位于在结构上独立于处理器功能块的系统部件中。在以下描述中,阐述了多个具体细节,诸如逻辑电路实现、软件模块分配、总线及其它接口信号传输技术、以及操作细节,以便提供对本发明的更彻底的理解。然而,本领域的技术人员将会意识到,在没有这些具体细节的情况下也可以实践本发明。在其它例子中,没有详细示出控制结构、门级电路以及全部软件指令序列,以免混淆本发明。本领域普通技术人员利用这里所包括的描述,能够实现适当的功能,而无需过多实验。在某些实施例中,在(诸如英特尔公司生产的)兼容处理器系统以及相关联的系统和处理器固件的环境中公开了本发明。然而,可以通过其它类型的处理器系统实践本发明,诸如通过(诸如英特尔公司生产的)处理器族兼容的处理器、X-族兼容的处理器、或来自其它供应商和设计商的任何处理器结构的其它各种不同类型的通用处理器。另外,一些实施例可以包括或可以是专用处理器,诸如图形、网络、图像、通信处理器,或任何其它已知或可用类型的与其固件结合的处理器。
现在参见图1,根据本公开的一个实施例,示出了访问控制寄存器的图。图1的系统包括通过总线150连接的处理器110和芯片组130。在其它实施例中,在总线150上可以连接额外的处理器和芯片组。另外,芯片组功能,诸如用于访问存储器的电路和输入/输出(I/O)设备,可以分布在其它模块中。处理器110和芯片组130可以用各自独立的半导体模块实现,也可以集成在一起成为单一模块。在一个实施例中,处理器110可以是系列兼容的处理器,且总线150可以是系列兼容的前端总线(FSB)
处理器110可以在微码的控制下执行来自指令集的用户指令。可以提供微码只读存储器(ROM)112来存储基本微码集。另外,可以提供可写入微码随机访问存储器(RAM)114来接收另一个微码集。在一个实施例中,可以从系统存储器142中的微码补丁映象(microcode patch image)144,或从基本输入/输出系统(BIOS)可编程只读存储器(PROM)146中的微码补丁映象148,来加载该另一个微码集。在其它实施例中,除了BIOS之外,可以使用其它形式的系统固件,诸如,可扩展固件接口(EFI);且除了PROM之外,可以使用其它形式的存储装置,诸如闪存。
图1的系统可以使用多个控制寄存器。可以由处理器110读出这些控制寄存器,以产生系统状态信息,或者可以由处理器110写入这些控制寄存器,以设置某些系统操作参数。在一些情况下,可以读出的控制寄存器可以称为“状态寄存器”,但是为了本公开的目的,该术语“状态寄存器”通常会涉及可读出或可写入控制寄存器,或涉及可读出且可写入控制寄存器。在一个实施例中,可以通过执行用户指令RDMSR(读出机器特定寄存器)和WRMSR(写入机器特定寄存器)来读出或写入常规的控制寄存器。这些用户指令可以限于访问位于不能被其它指令访问的独立地址空间中的控制寄存器。在一个实施例中,常规用户I/O指令可以用来访问位于I/O地址空间中的常规控制寄存器。在一个实施例中,这种I/O地址空间可以限于16比特地址。
在一个实施例中,可以有本公开的新的示例性控制寄存器。这种新控制寄存器可以是位于芯片组130中的控制寄存器1-N(136-138),以及位于处理器110中的控制寄存器A和B(120、122)。在每种情况下,该新的控制寄存器可以具有在I/O地址空间之外的地址。在一个实施例中,控制寄存器1-N(136-138)和控制寄存器A和B(120、122)具有的地址在系列兼容处理器的I/O地址空间的极限和物理地址的极限之间。在不同的实施例中,物理地址空间的极限可以是(232-1)或(264-1)。在其它实施例中,可以存在其它边界,描绘来自整个物理存储器空间的I/O地址空间。
由于控制寄存器1-N(136-138)的地址在处理器110的用户I/O地址空间之外,不能经由常规用户I/O指令访问这些控制寄存器。可替换地,在一个实施例中,非用户可访问微码集可以包括允许读出和写入控制寄存器1-N(136-138)的微码。在其它实施例中,除了微码操作之外,可以使用其它形式的私有操作来访问控制寄存器1-N(136-138)。
在一个实施例中,可以通过修改现有的用于实现用户指令RDMSR和WRMSR的微码,得到允许写入和读出控制寄存器1-N(136-138)和控制寄存器A和B(120、122)的微码。现有的用于实现RDMSR和WRMSR的微码包括取出32比特物理寄存器中所包含的数据的微操作,该32比特物理寄存器代表逻辑通用目的寄存器ECX。然后发出该32比特地址作为所需MSR的地址,该地址在包含控制寄存器的独立地址空间中。
为了产生可以访问诸如控制寄存器1-N(136-138)和控制寄存器A和B(120、122)的新控制寄存器的微码,可以修改用于用户指令RDMSR和WRMSR的现有微码,以将某些MSR地址转换成I/O地址。在一个实施例中,转换后的地址在常规用户I/O指令中固有的用户可寻址地址范围限制之外。然后可以将该修改所得的微码放置到替换微码集。在其它实施例中,可以将修改的RDMSR或修改的WRMSR微码之外的微码改进,以支持访问新控制寄存器。
值得注意的是,用于访问控制寄存器1-N(134-138)的技术可以经由两个总线接口模块118、140通过总线150进行操作。在一个实施例中,总线150可以支持I/O可寻址存储器空间之外的地址,如果没有其它原因,其还可以支持通过总线150和存储器接口132、152访问存储器。如此处所示,芯片组130的芯片组功能电路能够在结构上与处理器110独立的模块上实现,且能够经由总线150而无需额外的专用信号线进行连接,所以这种用于访问控制寄存器的技术可以通过现有的诸如FSB的常规总线来执行。
因为修改所得的用于访问控制寄存器1-N(136-138)和控制寄存器A和B(120、122)的微码通常对用户来说不可用,因此可以强加特定的触发条件来执行该微码。例如,在一个实施例中,加载微码补丁映象144或微码补丁映象148到微码RAM 114可以触发修改后的微码的执行。(可以通过从处理器110移除RESET#信号,来依次触发对微码补丁映象144或微码补丁映象148的加载)。这样,可以将来自微码补丁的控制比特写入控制寄存器1-N(136-138)和控制寄存器A和B(120、122),作为微码补丁加载的一部分。
在另一个实施例中,在微码ROM 112中可以有两个微码集:一个集用于用户指令微码,且另一个集在调试模式中使用。在其它实施例中,这两个微码集可以在微码ROM 112和微码RAM 114之间分开。可以用调试标志124来指示处理器110是在用户模式还是在调试模式。在一些实施例中,可以在制造期间设置调试标志124(逻辑真),且可以在最后制造测试或预备交付的某个阶段清除调试标志124(逻辑假)。在一些实施例中,可以有特殊的电子过程,以在交付了处理器110之后设置并随后清除调试标志124。
当设置了调试标志124时,可以使得特权用户能够执行第二微码集。这样,可以仅限于在调试模式下执行用于访问所选择的新控制寄存器的微码,诸如访问控制寄存器1-N(136-138)和控制寄存器A和B(120、122)。当在交付处理器110之前清除了调试标志时,该清除可能阻止最终用户访问该控制寄存器。
现在参见图2,根据本公开的一个实施例,示出了存储器地址空间的图。与可寻址存储器空间220相比,I/O可寻址存储器空间210如图所示是独立寻址的。在一个实施例中,该I/O可寻址存储器空间210可以通过16比特地址(即,(216-1)或64K字节)来寻址。在其它实施例中,可以多增加几个地址,得到64K字节+N字节的I/O可寻址存储器空间210,其中在一个实施例中N=3。在处理器使用32比特存储器地址的实施例中,该可寻址存储器空间220可以是232或4G字节;在处理器使用64比特存储器地址的其它实施例中,该可寻址存储器空间220可以是264字节。
如图2所示,仅可以通过存储器操作和其它微码操作来访问的存储器空间的部分,即可寻址存储器空间220,正交于I/O可寻址存储器空间210。在其它实施例中,在I/O可寻址存储器空间210和可寻址存储器空间220之间可以有不同的边界集。
现在参见图3,根据本公开的另一个实施例,示出了访问控制寄存器的图。处理器310可以配置为通过服从电气电子工程师协会(IEEE)标准1149规范的测试访问端口(TAP)(“IEEE标准测试访问端口与边界扫描结构”,IEEE标准1149.1-1990)来操作。此处所示的处理器130具有TAP接口370,其可以允许通过可兼容IEEE标准1149的调试端口374来访问处理器310。调试端口374可以经由接口376并通过边界扫描复用器372所提供的信号缓冲,直接控制处理器310。
调试端口374可以允许用户访问该用户正常情况下不可访问的处理器310的逻辑电路部分。在一个实施例中,调试端口373可以允许用户执行非用户指令微码。这可以允许该用户执行能访问具有在I/O可寻址存储器空间之外的地址的控制寄存器的微码,诸如访问控制寄存器1-N(334-338)和控制寄存器A(320)。此处,如图1中的实施例,可以通过一个微码集来实现用户指令,且能访问这些控制寄存器的微码可以属于另一个微码集。
在其它实施例中,调试端口374可以用来直接写入控制寄存器,诸如控制寄存器1-N(334-338)和控制寄存器A(320)。
现在参见图4,根据本公开的另一个实施例,示出了访问控制寄存器的图。在图4的实施例中,处理器410和480不是经由多点总线而是经由点对点数据链路460交换数据。另外,没有使用独立的芯片组。可替换地,将诸如存储器接口472和I/O接口466的所选择的芯片组功能与处理器410集成在一起。
处理器410可以包括本公开的控制寄存器,诸如控制寄存器1-N(434-438)。处理器480还可以包括能够从处理器410访问的控制寄存器,即控制寄存器A和B(484、486)。值得注意的是,这种用于访问控制寄存器A和B(484、486)的技术可以经由点对点接口模块462、464通过点对点数据链路460来进行操作。在一个实施例中,点对点数据链路460可以支持在I/O可寻址存储器空间之外的地址,如果没有其它原因,它可以支持从处理器B 480通过点对点数据链路460和存储器接口472、452对存储器的访问。控制寄存器1-N(434-438)和控制寄存器A和B(484、486)中每一个都具有I/O可寻址存储器空间之外的地址。
可以提供微码ROM 412,以存储基本微码集;且可以提供微码RAM 414,以接收另一个微码集。在一个实施例中,该另一个微码集可以从微码补丁映象444或从微码补丁映象448加载。在一个实施例中,非用户可访问微码集可以包括允许写入和读出控制寄存器1-N(434-438)和控制寄存器A和B(484、486)的微码。
因为用于访问控制寄存器1-N(434-438)和控制寄存器A和B(484、486)的微码正常情况下对于用户是不可用的,可以再次强加用于执行该微码的特定触发条件。例如,在一个实施例中,将微码补丁映象444或微码补丁映象448加载入微码RAM 414可以触发修改后的微码的执行。以这种方式,可以将来自微码补丁的控制比特写入控制寄存器1-N(434-438)和控制寄存器A和B(484、486),作为微码补丁加载的一部分。可替换地,可以在微码ROM 412中提供第二微码集,且可以在上述结合图1讨论的调试模式期间,或通过上述结合图3讨论的测试访问端口的动作,执行用于访问控制寄存器1-N(434-438)和控制寄存器A和B(484、486)的微码。
现在参见图5A和5B,根据本公开的两个实施例,示出了具有能够访问本公开的控制寄存器的处理器的系统的示意图。图5A示出的系统中,处理器、存储器、以及输入/输出设备通过系统总线互相连接;而图5B示出的系统中,处理器、存储器、以及输入/输出设备通过多个点对点接口互相连接。
图5A的系统可以包括一个或多个处理器,为了简洁起见,此处仅示出了两个,即处理器40、60。处理器40、60可以包括一级高速缓存42、62。图5A的系统可以具有经由总线接口44、64、12、8与系统总线6连接的多个功能单元。在一个实施例中,系统总线6可以是与英特尔公司制造的系列微处理器配合使用的前端总线(FSB)。在其它实施例中,可以使用其它总线。在一些实施例中,存储器控制器34和总线桥32可以合称为芯片组。在一些实施例中,与图5A的实施例所示的不同,可以在多个物理芯片之间划分芯片组的多个功能单元。
存储器控制器34可以允许处理器40、60读出和写入系统存储器10以及固件可擦除可编程只读存储器(EPROM)36。在一些实施例中,该固件可以提供微码补丁映象,用于加载到处理器40、60的微码RAM(未示出)。在一些实施例中,固件EPROM 36可以利用闪存。存储器控制器34可以包括总线接口8,以允许向或从系统总线6上的总线代理搬运存储器读出和写入数据。存储器控制器34还可以通过高性能图形接口39与高性能图形电路38连接。在某些实施例中,该高性能图形接口39可以是高级图形端口AGP接口。存储器控制器34可以通过高性能图形接口39,将来自系统存储器10的数据导向高性能图形电路38。
图5B的系统也可以包括一个或多个处理器,为了简洁起见,仅示出了其中的两个,即处理器70、80。处理器70、80可以各自包括一个本地存储器控制器集线器(MCH)72、82,以便与存储器2、4和固件3、5相连接。在一些实施例中,该固件可以提供微码补丁映象,用于加载到处理器70、80的微码RAM(未示出)中。处理器70、80可以使用点对点接口电路78、88,经由点对点接口50来交换数据。处理器70、80可以使用点对点接口电路(P-P)76、94、86、98,经由各自的点对点接口52、54来与芯片组90交换数据。芯片组90也可以经由高性能图形接口92来与高性能图形电路38交换数据。
在图5A的系统中,总线桥32可以允许在系统总线6和总线16之间交换数据,在一些实施例中,总线16可以是工业标准结构(ISA)总线或外围设备互连(PCI)总线。在图5B的系统中,芯片组90可以经由总线接口96来与总线16交换数据。在任一系统中,在总线16上可以有各种输入/输出I/O设备14,在一些实施例中,包括低性能图形控制器、视频控制器和网络控制器。在一些实施例中,可以用另一个总线桥18,来允许在总线16和总线20之间交换数据。在一些实施例中,总线20可以是小型计算机系统接口(SCSI)总线、集成驱动电子设备(IDE)总线、通用串行总线(USB)总线。另外,I/O设备可以与总线20相连接。这些I/O设备可以包括键盘和光标控制设备22(包括鼠标)、音频I/O 24、通信设备26(包括调制解调器和网络接口)、以及数据存储设备28。软件代码30可以存储在数据存储设备28上,在一些实施例中,软件代码30可以包括微码补丁映象。在一些实施例中,数据存储设备28可以包括固定磁盘、软盘驱动器、光盘驱动器、磁光盘驱动器、磁带、或非易失性存储器(包括闪存)。
在前述说明书中,根据具体的示例性实施例描述了本发明。然而,显然在不脱离所附权利要求所描述的本发明的更宽的精神和范围的前提下,可以对本发明做各种修改和改变。因此,本说明书和附图应被视为示例性的而非限制性的。
Claims (43)
1、一种用于实现寄存器访问的装置,包括:
用于执行所选芯片组功能的逻辑电路;
用于与处理器连接的总线接口;以及
通过在所述处理器的输入/输出地址空间之外的地址来访问的控制寄存器,
其中,所述逻辑电路和所述控制寄存器能够相互通信,并且能够经由所述总线接口与所述处理器通信。
2、如权利要求1所述的装置,其中,所述总线接口支持所述处理器的输入/输出地址空间之外的所述地址。
3、如权利要求1所述的装置,其中,所述处理器的物理寄存器支持所述处理器的输入/输出地址空间之外的所述地址。
4、一种处理器,包括:
第一逻辑电路,用于在包含用户指令微码的第一微码集的控制下执行指令集;
物理寄存器,用于容纳所述指令集的输入/输出地址空间中不包括的地址;以及
第二逻辑电路,用于使用所述指令集的输入/输出地址空间中不包括的所述地址访问控制寄存器。
5、如权利要求4所述的处理器,还包括第三逻辑电路,用于接收第二微码集,其中所述第二微码集包含用于访问所述指令集的输入/输出地址空间中不包括的所述地址处的所述控制寄存器的指令。
6、如权利要求5所述的处理器,其中,所述第二微码集包括用于从所述物理寄存器发出所述指令集的输入/输出地址空间中不包括的所述地址的微码。
7、如权利要求5所述的处理器,其中,所述第三逻辑电路从外部存储器接收所述第二微码集。
8、如权利要求5所述的处理器,还包括总线接口,用于将所述指令集的输入/输出地址空间中不包括的所述地址传输到所述处理器外部。
9、如权利要求4所述的处理器,还包括第二微码集,所述第二微码集包括用于发出到控制寄存器的所述指令集的输入/输出地址空间中不包括的所述地址的微码。
10、如权利要求9所述的处理器,还包括调试标志,用于指示可以执行所述第二微码集。
11、如权利要求10所述的处理器,其中,在制造期间设置所述调试标志并且在所述处理器的验收测试期间清除所述调试标志。
12、如权利要求10所述的处理器,其中,通过验收后的测试过程设置所述调试标志。
13、如权利要求9所述的处理器,还包括测试访问端口接口,用于接收测试命令。
14、如权利要求13所述的处理器,其中,可以响应于所述测试命令,执行所述第二微码集。
15、如权利要求9所述的处理器,还包括总线接口,用于将所述指令集的输入/输出地址空间中不包括的所述地址传输到所述处理器外部。
16、一种用于实现寄存器访问的系统,包括:
处理器,其包括:第一逻辑电路,用于在包含用户指令微码的第一微码集的控制下执行指令集;以及物理寄存器,用于容纳所述指令集的输入/输出地址空间中不包括的地址;以及
包括以下组件的模块:第二逻辑电路,用于执行选择的芯片组功能;用于将所述模块与所述处理器连接的接口;以及通过所述指令集的输入/输出地址空间中不包括的所述地址访问的控制寄存器。
17、如权利要求16所述的系统,其中,所述处理器包括第三逻辑电路,用于接收第二微码集,其中所述第二微码集包含用于访问所述指令集的输入/输出地址空间中不包括的所述地址处的所述控制寄存器的指令。
18、如权利要求17所述的系统,其中,所述第二微码集包括用于从所述物理寄存器发出所述指令集的输入/输出地址空间中不包括的所述地址以访问所述控制寄存器的微码。
19、如权利要求17所述的系统,其中,所述第二逻辑电路和所述第三逻辑电路将所述第二微码集加载到所述第三逻辑电路中。
20、如权利要求19所述的系统,其中,从在所述系统外部存储的第二微码集映象加载所述第二微码集。
21、如权利要求16所述的系统,其中,所述接口是所述处理器和所述模块之间的总线。
22、如权利要求16所述的系统,其中,所述处理器还包括第二微码集,所述第二微码集包括用于使用所述指令集的输入/输出地址空间中不包括的所述地址来访问所述控制寄存器的微码。
23、如权利要求22所述的系统,其中,所述处理器还包括调试标志,用于指示可以执行所述第二微码集。
24、如权利要求23所述的系统,其中,在制造期间设置所述调试标志并且在所述处理器的验收测试期间清除所述调试标志。
25、如权利要求23所述的系统,其中,通过验收后的测试过程设置所述调试标志。
26、如权利要求22所述的系统,其中,所述处理器包括测试访问端口接口,用于接收测试命令。
27、如权利要求26所述的系统,其中,可以响应于所述测试命令,执行所述第二微码集。
28、一种用于实现寄存器访问的方法,包括:
将控制寄存器的地址放置在处理器的物理寄存器中,其中,所述地址不包括在处于第一微码集控制下的指令集的输入/输出地址空间中,并且其中所述第一微码集包含用户指令微码;以及
在第二微码集的控制下,从所述物理寄存器发出到所述控制寄存器的所述指令集的输入/输出地址空间中不包括的所述地址,其中所述第二微码集包含用于访问所述指令集的输入/输出地址空间中不包括的所述地址处的所述控制寄存器的指令。
29.如权利要求28所述的方法,还包括:将所述第二微码集加载到所述处理器中。
30、如要求要求29所述的方法,还包括:响应于所述加载,执行所述第二微码集。
31、如权利要求28所述的方法,还包括:检查调试标志的状态,以确定处理器是否处于调试模式。
32、如权利要求31所述的方法,其中,所述发出地址响应于所述检查。
33、如权利要求31所述的方法,还包括:在制造期间设置所述调试标志,以及响应于验收测试,清除所述调试标志。
34、如权利要求31所述的方法,还包括:响应于验收后的测试,设置所述调试标志。
35、如权利要求29所述的方法,其中,所述发出地址响应于从测试访问端口接口接收到的测试命令。
36、一种用于实现寄存器访问的装置,包括:
用于将控制寄存器的地址放置在处理器的物理寄存器中的模块,其中所述地址不包括在处于第一微码集控制下的指令集的输入/输出地址空间中,并且其中所述第一微码集包含用户指令微码;以及
用于在第二微码集的控制下,从所述物理寄存器发出到所述控制寄存器的所述指令集的输入/输出地址空间中不包括的所述地址的模块,其中所述第二微码集包含用于访问所述指令集的输入/输出地址空间中不包括的所述地址处的所述控制寄存器的指令。
37、如权利要求36所述的装置,还包括用于将所述第二微码集加载到所述处理器中的模块。
38、如权利要求37所述的装置,还包括用于响应于所述用于加载的模块来执行所述第二微码集的模块。
39、如权利要求36所述的装置,还包括用于检查调试标志的状态以确定处理器是否处于调试模式的模块。
40、如权利要求39所述的装置,其中,所述用于发出地址的模块响应于所述用于检查的模块。
41、如权利要求39所述的装置,还包括用于在制造期间设置所述调试标志并且响应于验收测试来清除所述调试标志的模块。
42、如权利要求41所述的装置,还包括用于响应于验收后的测试来设置调试标志的模块。
43、如权利要求36所述的装置,其中,所述用于发出地址的模块响应于从测试访问端口接口接收到的测试命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/022,595 US20060136608A1 (en) | 2004-12-22 | 2004-12-22 | System and method for control registers accessed via private operations |
US11/022,595 | 2004-12-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101088064A CN101088064A (zh) | 2007-12-12 |
CN100585554C true CN100585554C (zh) | 2010-01-27 |
Family
ID=36597501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200580044467A Expired - Fee Related CN100585554C (zh) | 2004-12-22 | 2005-12-21 | 经由私有操作访问控制寄存器的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20060136608A1 (zh) |
KR (1) | KR100928757B1 (zh) |
CN (1) | CN100585554C (zh) |
DE (1) | DE112005003216T5 (zh) |
TW (1) | TWI334082B (zh) |
WO (1) | WO2006069364A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10630584B2 (en) | 2015-09-30 | 2020-04-21 | Huawei Technologies Co., Ltd. | Packet processing method and apparatus |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7827390B2 (en) * | 2007-04-10 | 2010-11-02 | Via Technologies, Inc. | Microprocessor with private microcode RAM |
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 |
CN103262060A (zh) | 2010-12-13 | 2013-08-21 | 诺基亚公司 | 用于3d捕获同步的方法和装置 |
US9250902B2 (en) * | 2012-03-16 | 2016-02-02 | International Business Machines Corporation | Determining the status of run-time-instrumentation controls |
US9323715B2 (en) | 2013-11-14 | 2016-04-26 | Cavium, Inc. | Method and apparatus to represent a processor context with fewer bits |
US20210026950A1 (en) * | 2016-03-07 | 2021-01-28 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
US20230004391A1 (en) * | 2017-06-28 | 2023-01-05 | Texas Instruments Incorporated | Streaming engine with stream metadata saving for context switching |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4947316A (en) * | 1983-12-29 | 1990-08-07 | International Business Machines Corporation | Internal bus architecture employing a simplified rapidly executable instruction set |
GB2200483B (en) * | 1987-01-22 | 1991-10-16 | Nat Semiconductor Corp | Memory referencing in a high performance microprocessor |
US5201039A (en) * | 1987-09-30 | 1993-04-06 | Mitsubishi Denki Kabushiki Kaisha | Multiple address-space data processor with addressable register and context switching |
US5182811A (en) * | 1987-10-02 | 1993-01-26 | Mitsubishi Denki Kabushiki Kaisha | Exception, interrupt, and trap handling apparatus which fetches addressing and context data using a single instruction following an interrupt |
US5136691A (en) * | 1988-01-20 | 1992-08-04 | Advanced Micro Devices, Inc. | Methods and apparatus for caching interlock variables in an integrated cache memory |
US5185878A (en) * | 1988-01-20 | 1993-02-09 | Advanced Micro Device, Inc. | Programmable cache memory as well as system incorporating same and method of operating programmable cache memory |
JP2507638B2 (ja) * | 1989-12-01 | 1996-06-12 | 三菱電機株式会社 | デ―タ処理装置 |
US5124989A (en) * | 1990-01-08 | 1992-06-23 | Microsoft Corporation | Method of debugging a computer program |
US5495615A (en) * | 1990-12-21 | 1996-02-27 | Intel Corp | Multiprocessor interrupt controller with remote reading of interrupt control registers |
US5497494A (en) * | 1993-07-23 | 1996-03-05 | International Business Machines Corporation | Method for saving and restoring the state of a CPU executing code in protected mode |
US5781750A (en) * | 1994-01-11 | 1998-07-14 | Exponential Technology, Inc. | Dual-instruction-set architecture CPU with hidden software emulation mode |
JP3672634B2 (ja) * | 1994-09-09 | 2005-07-20 | 株式会社ルネサステクノロジ | データ処理装置 |
JPH08272648A (ja) * | 1994-12-29 | 1996-10-18 | Hitachi Ltd | デバッグコマンドファイルを自動的に生成する方法、およびデバッグコマンドファイルにおいてブレークポイントを自動的に再生成する装置 |
US5621886A (en) * | 1995-06-19 | 1997-04-15 | Intel Corporation | Method and apparatus for providing efficient software debugging |
US5544311A (en) * | 1995-09-11 | 1996-08-06 | Rockwell International Corporation | On-chip debug port |
US5729760A (en) * | 1996-06-21 | 1998-03-17 | Intel Corporation | System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode |
US5978902A (en) * | 1997-04-08 | 1999-11-02 | Advanced Micro Devices, Inc. | Debug interface including operating system access of a serial/parallel debug port |
US6314530B1 (en) * | 1997-04-08 | 2001-11-06 | Advanced Micro Devices, Inc. | Processor having a trace access instruction to access on-chip trace memory |
US6041406A (en) * | 1997-04-08 | 2000-03-21 | Advanced Micro Devices, Inc. | Parallel and serial debug port on a processor |
US6009488A (en) * | 1997-11-07 | 1999-12-28 | Microlinc, Llc | Computer having packet-based interconnect channel |
KR100496856B1 (ko) * | 1999-05-20 | 2005-06-22 | 삼성전자주식회사 | 어드레스 확장이 가능한 데이터 처리 시스템 |
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 |
US7073173B1 (en) * | 2000-12-04 | 2006-07-04 | Microsoft Corporation | Code and thread differential addressing via multiplex page maps |
US20030126454A1 (en) * | 2001-12-28 | 2003-07-03 | Glew Andrew F. | Authenticated code method and apparatus |
-
2004
- 2004-12-22 US US11/022,595 patent/US20060136608A1/en not_active Abandoned
-
2005
- 2005-12-21 CN CN200580044467A patent/CN100585554C/zh not_active Expired - Fee Related
- 2005-12-21 DE DE112005003216T patent/DE112005003216T5/de not_active Ceased
- 2005-12-21 KR KR1020077014104A patent/KR100928757B1/ko not_active IP Right Cessation
- 2005-12-21 WO PCT/US2005/046989 patent/WO2006069364A2/en active Application Filing
- 2005-12-22 TW TW094145870A patent/TWI334082B/zh active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10630584B2 (en) | 2015-09-30 | 2020-04-21 | Huawei Technologies Co., Ltd. | Packet processing method and apparatus |
US11184281B2 (en) | 2015-09-30 | 2021-11-23 | Huawei Technologies Co., Ltd. | Packet processing method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
WO2006069364A2 (en) | 2006-06-29 |
TWI334082B (en) | 2010-12-01 |
KR20070086506A (ko) | 2007-08-27 |
US20060136608A1 (en) | 2006-06-22 |
TW200632659A (en) | 2006-09-16 |
KR100928757B1 (ko) | 2009-11-25 |
CN101088064A (zh) | 2007-12-12 |
DE112005003216T5 (de) | 2007-10-31 |
WO2006069364A3 (en) | 2006-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100585554C (zh) | 经由私有操作访问控制寄存器的系统和方法 | |
CN101981541B (zh) | 使用闪存和有限功能存储器控制器来引导电子设备 | |
US7840845B2 (en) | Method and system for setting a breakpoint | |
US20090296511A1 (en) | Microprocessor with program-accessible re-writable non-volatile state embodied in blowable fuses of the microprocessor | |
JP2003296191A (ja) | 汎用プロセッサおよび周辺装置のプロセッサとして動作可能な集積回路 | |
KR20080113040A (ko) | 앳-스피드 멀티-포트 메모리 어레이 테스트 방법 및 장치 | |
US7571357B2 (en) | Memory wrap test mode using functional read/write buffers | |
WO2008082455A1 (en) | Reconfiguring a secure system | |
CN105426265A (zh) | 具有虚拟装置的系统和装置以及控制虚拟装置的方法 | |
US6148384A (en) | Decoupled serial memory access with passkey protected memory areas | |
US20060248392A1 (en) | Systems and methods for CPU repair | |
US6820051B1 (en) | Software emulation monitor employed with hardware suspend mode | |
KR100825786B1 (ko) | 메모리 카드 및 메모리 카드의 디버깅 방법 | |
US20080294421A1 (en) | Hard Disk Drive Adapter For Emulating Hard Disk Drive Interface | |
US5751641A (en) | Microprocessor memory test circuit and method | |
US7694175B2 (en) | Methods and systems for conducting processor health-checks | |
US5712822A (en) | Microprocessor memory test circuit and method | |
US7607040B2 (en) | Methods and systems for conducting processor health-checks | |
CN114489743B (zh) | 一种片上可编程系统的程序烧写及加载运行方法 | |
KR20200123799A (ko) | 디바이스를 디버깅할 때 메타데이터에 액세스하기 위한 장치 및 방법 | |
US7765362B2 (en) | Efficient system bootstrap loading | |
US7533293B2 (en) | Systems and methods for CPU repair | |
US6560698B1 (en) | Register change summary resource | |
US5689635A (en) | Microprocessor memory test circuit and method | |
US8661289B2 (en) | Systems and methods for CPU repair |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100127 Termination date: 20191221 |