CN100585554C - 经由私有操作访问控制寄存器的系统和方法 - Google Patents

经由私有操作访问控制寄存器的系统和方法 Download PDF

Info

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
Application number
CN200580044467A
Other languages
English (en)
Other versions
CN101088064A (zh
Inventor
J·吉尔伯特
H·乔伊斯
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN101088064A publication Critical patent/CN101088064A/zh
Application granted granted Critical
Publication of CN100585554C publication Critical patent/CN100585554C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD 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

经由私有操作访问控制寄存器的系统和方法
技术领域
本发明通常涉及微处理器系统,更具体地,涉及可以使用控制寄存器设置系统参数和提供系统状态信息的微处理器系统。
技术背景
微处理器系统可以使用各种形式的控制寄存器来支持其操作。可以对一种形式的控制寄存器进行写入,以便设置系统参数、配置系统,等等。这种寄存器中各种比特的组合可以设置操作限制,诸如预测执行的深度或高速缓存的大小;或者可以开启或关闭选择性的功能电路,诸如分支预测器和预取单元;或者可以针对某些事件激活或禁止中断。可以读出其它形式的控制寄存器,以便接收系统状态。这种控制寄存器又称为状态寄存器。状态寄存器可以提供关于系统健康、与故障状况相关联的程序寄存器的内容、操作温度、及其它形式状态的信息。许多控制寄存器既可读出又可写入。控制寄存器的例子可以是在
Figure C20058004446700081
系列兼容微处理器中实现的模型特定寄存器(MSR)。
通常,可以通过用于访问控制寄存器的特定指令,或者通过特定形式的通用用户指令,诸如输入/输出(I/O)用户指令,来访问控制寄存器。可以限于在高级别软件特权下执行特定控制寄存器访问指令,其中该特定控制寄存器访问指令可用于位于处理器之内的控制寄存器。
另外,在结构上与处理器功能单元独立的系统电路部分中可能需要各种控制寄存器。例如,这些部分可以包括各种芯片组功能,或者可以包括各种系统内总线桥。通常不能经由专用电路,而仅能通过包括系统总线的预定数据路径,来访问这些系统电路部分。可能需要经由可以在低级别软件特权下执行的通用I/O用户指令,来访问位于处理器之外的常规控制寄存器,诸如位于芯片组中的控制寄存器。
附图说明
在附图中以示例性的方式而不是以限制性的方式示出了本公开,且在附图中相似的参考数字表示相似的元件,其中:
图1是根据本公开一个实施例的访问控制寄存器的图。
图2是根据本公开一个实施例的存储器地址空间的图。
图3是根据本公开另一个实施例的访问控制寄存器的图。
图4是根据本公开另一个实施例的访问控制寄存器的图。
图5A是根据本公开一个实施例的具有能够访问控制寄存器的处理器的系统的示意图。
图5B是根据本公开另一个实施例的具有能够访问控制寄存器的处理器的系统的示意图。
具体实施方式
以下描述包括用于控制寄存器的技术,该控制寄存器可以具有增强的访问保护,且可以位于在结构上独立于处理器功能块的系统部件中。在以下描述中,阐述了多个具体细节,诸如逻辑电路实现、软件模块分配、总线及其它接口信号传输技术、以及操作细节,以便提供对本发明的更彻底的理解。然而,本领域的技术人员将会意识到,在没有这些具体细节的情况下也可以实践本发明。在其它例子中,没有详细示出控制结构、门级电路以及全部软件指令序列,以免混淆本发明。本领域普通技术人员利用这里所包括的描述,能够实现适当的功能,而无需过多实验。在某些实施例中,在(诸如英特尔公司生产的)
Figure C20058004446700091
兼容处理器系统以及相关联的系统和处理器固件的环境中公开了本发明。然而,可以通过其它类型的处理器系统实践本发明,诸如通过(诸如英特尔公司生产的)
Figure C20058004446700092
处理器族兼容的处理器、X-
Figure C20058004446700093
族兼容的处理器、或来自其它供应商和设计商的任何处理器结构的其它各种不同类型的通用处理器。另外,一些实施例可以包括或可以是专用处理器,诸如图形、网络、图像、通信处理器,或任何其它已知或可用类型的与其固件结合的处理器。
现在参见图1,根据本公开的一个实施例,示出了访问控制寄存器的图。图1的系统包括通过总线150连接的处理器110和芯片组130。在其它实施例中,在总线150上可以连接额外的处理器和芯片组。另外,芯片组功能,诸如用于访问存储器的电路和输入/输出(I/O)设备,可以分布在其它模块中。处理器110和芯片组130可以用各自独立的半导体模块实现,也可以集成在一起成为单一模块。在一个实施例中,处理器110可以是
Figure C20058004446700101
系列兼容的处理器,且总线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)具有的地址在
Figure C20058004446700111
系列兼容处理器的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可以是与英特尔公司制造的
Figure C20058004446700151
系列微处理器配合使用的前端总线(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所述的装置,其中,所述用于发出地址的模块响应于从测试访问端口接口接收到的测试命令。
CN200580044467A 2004-12-22 2005-12-21 经由私有操作访问控制寄存器的系统和方法 Expired - Fee Related CN100585554C (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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