专利名称:对集成电路的功能性编程的方法及设备的制作方法
领域本发明的实施例涉及集成电路(IC)领域;以及更具体来说,涉及远程可编程IC。
背景又称作CPU(中央处理器)的微处理器是控制计算机的完整计算引擎。目前,内部CPU时钟速率在制造工厂经由内部熔断器设定来固定。这些CPU速率设定在最初制造、测试和包装之后无法更改。大部分处理器都能够以其最大时钟速率能力运行。但是,较高时钟速率可能被相应供应商索取溢价。为了实现市场中更节省成本的CPU而没有吞食较高性能市场板块,对于无法证明较高性能成本额外费用的市场,供应商倾向于在完全能够以更高速率运行的装置上强加较低速率。
许多“新的”市场板块目前无法证明较高性能装置的成本。另外,那些装置中的许多倾向于具有长寿命周期(例如5-6年或以上),一旦这些装置被配置,它们不可能实际地和/或经济地被返回用于升级目的。这些市场是“新的”这一事实往往在最初等同于有限的复杂程度因而等同于有限的性能要求。终端用户可能不愿意负担复杂程度及其相关的性能提高、他们还不知道他们需要的性能提高的费用。但是,大家理解,随着顾客渐渐变得越来越富有经验,对于更多服务从而对于性能的需求以及终端用户负担提高的性能的费用的意愿将会增加。
因此,顾客陷于一种困境。他们配置数百万台5-6年产品寿命周期的装置,但那些装置无法实际地被返回用于升级。那些装置在当前可能具有最小的性能要求,但在不久的将来可能具有极大增加的性能要求。这种困境的迹象通过对于具有低性能定价的高性能装置的需求得到证明。
附图简介通过参照用来说明本发明的实施例的以下描述和附图,可以最透彻地理解本发明。附图包括
图1说明可与一个实施例配合使用的计算机系统的网络的框图。
图2说明可与一个实施例配合使用的计算机系统的框图。
图3说明根据一个实施例的处理器的框图。
图4说明根据另一个实施例的计算机系统的框图。
图5说明系统体系结构的一个实施例的框图。
图6是流程图,说明对集成电路(IC)的时钟速率进行远程编程的过程的一个实施例。
图7是流程图,说明对集成电路(IC)的时钟速率进行远程编程的过程的另一个实施例。
图8是流程图,说明远程实现集成电路(IC)的功能性的过程的一个实施例。
详细说明描述对集成电路(IC)的时钟速率进行远程编程的方法及设备。根据一个实施例,示范设备包括控制IC的时钟速率的可调锁相环(PLL)电路。对PLL的调整可通过解密引擎和内部提供的速率密钥集进行选通。访问计数器可用于选通对速率密钥的全部访问。根据一个实施例,如果进行了超过预定数量的不成功访问尝试,则对时钟速率编程的能力可被禁用。
在以下描述中,阐明了许多具体细节。但是大家理解,即使没有这些具体细节也可以实施本发明的实施例。在其它情况下,没有详细说明众所周知的电路、结构和技术,以免影响对本描述的理解。
以下详细描述的某些部分根据对计算机存储器中的数据位的操作的算法和符号表示来提供。这些算法描述和表示由数据处理领域的技术人员用于向本领域的其它技术人员最有效地传达其工作主旨。算法在此以及一般被认为是产生预期结果的独立操作序列。操作是要求物理量的物理处理的那些操作。这些量通常但不一定采用电或磁信号的形式,它们能够被存储、传送、组合、比较或者以其它方式处理。将这些信号称作位、值、元素、符号、字符、术语、编号等时常被证明是方便的,主要是因为常用。
但应当记住,所有这些及类似的术语均与适当的物理量关联,并且只是应用于这些量上的便捷标记。若没有明确说明,从以下论述中,大家清楚地知道,在整个描述中,采用诸如“处理”或“计算”或“确定”或者“显示”等术语的论述表示计算机系统或类似数据处理装置的动作和过程,其中所述的计算机系统或类似数据处理装置处理表示为计算机系统的寄存器和存储器中的物理(例如电子)量的数据并将其变换为类似地表示为计算机系统存储器或寄存器或者其它这种信息存储、传送或显示装置中的物理量的其它数据。
本发明的实施例还涉及用于执行本文所述操作的设备。设备可被专门构造用于所需目的,或者可包括通过计算机中存储的计算机程序有选择地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储介质中,例如但不限于任何类型的盘,包括软盘、光盘、CD-ROM和磁光盘;只读存储器(ROM)、随机存取存储器(RAM),例如动态RAM(DRAM)、EPROM、EEPROM、磁或光卡;或者适合存储电子指令的任何类型的介质;上述存储组件中的每一个耦合到计算机系统总线。
本文所提供的算法和显示不是固有地与任何特定计算机或其它设备相关。各种通用系统可与根据本文的理论的程序配合使用,或者可证明构造更专用的设备来执行这些方法是便利的。多种这类系统的结构通过以下描述将是显而易见的。另外,没有参照任何特定的编程语言来描述本发明的实施例。大家理解,各种编程语言可用来实现本文所述的本发明的实施例的理论。机器可读介质包括用于存储或传送机器(如计算机)可读形式的信息的任何装置。例如,机器可读介质包括只读存储器(“ROM”);随机存取存储器(“RAM”);磁盘存储介质;光存储介质;闪速存储装置;电、光、声或其它形式的传播信号(例如载波、红外信号、数字信号等)等等。
图1是根据本发明的一个实施例、其中的客户计算机可对它的微处理器的时钟速率远程编程的计算机系统的网络的图示。如图1所示,网络100包括多个客户计算机系统,它们通过因特网122耦合在一起。大家理解,术语“因特网”表示若干网络的联网。这类网络可采用用于交换信息的各种协议,例如TCP/IP、ATM、SNA、SDI等。因特网的物理连接以及因特网的协议和通信过程是本领域的技术人员众所周知的。大家还会理解,这种系统可在机构内的内联网中实现。
对因特网122的访问通常由因特网服务提供商(ISP)、例如ISP 124和ISP 126来提供。诸如客户计算机系统102、104、118及120之类的客户机系统上的用户一般通过因特网服务提供商、如ISP 124和126获得对因特网的访问。对因特网的访问可便于在诸如客户计算机系统102、104、118及120和/或万维网服务器系统128之类的两个或两个以上数字处理系统之间传递信息(例如电子邮件、文本文件、媒体文件等)。例如,客户计算机系统102、104、118及120和/或万维网服务器128的一个或多个可向客户计算机系统102、104、118及120和/或万维网服务器128的另一个或其它多个提供文档呈现(例如网页)。例如,在本发明的一个实施例中,一个或多个客户计算机系统102、104、118及120可请求访问可能存储在远程位置、如万维网服务器128上的某个文档。在远程存储的情况下,数据可作为文件被传送(例如下载),然后在传送该文件之后进行显示(例如在浏览器的窗口中)。在另一个实施例中,文档呈现可本地存储在客户计算机系统102、104、118和/或120中。在本地存储的情况下,客户机系统可经由应用程序、如字处理应用程序来检索及显示文档。无需网络连接。
万维网服务器128通常包括以一个或多个数据通信协议、如万维网的协议进行工作的至少一个计算机系统,因此通常耦合到因特网122。可选地,万维网服务器128可以是可为客户计算机系统提供对因特网和/或其它网络的访问的ISP的一部分。客户计算机系统102、104、118和120均可通过适当的万维网浏览软件来访问可由万维网服务器128提供的数据、如HTML文档(例如网页)。客户计算机可结合根据本发明的一个实施例的应用,从而允许用户与供应商设备交互,并下载远程命令对客户机器的IC(例如微处理器)的时钟速率编程。
ISP124经由可看作是客户计算机系统102的一部分的调制解调器接口106向客户计算机系统102提供因特网连通性。客户计算机系统102、104、118及120可以是传统的数据处理系统,例如具有从IntelCorporation可购买的Pentium微处理器的计算机、“网络”计算机、手持/便携计算机、具有数据处理能力的蜂窝电话、万维网电视系统或者其它类型的数字处理系统(例如个人数字助理(PDA))。
ISP126以类似方式为客户计算机系统102、104、118及120提供因特网连通性。但是,如图1所示,这种连通性可在诸如客户计算机系统102、104、118及120之类的各种客户计算机系统之间变化。例如,如图1所示,客户计算机系统104通过调制解调器接口108耦合到ISP126,而客户计算机系统118和120则是局域网(LAN)的一部分。分别表示为调制解调器106、108的接口106、108可表示模拟调制解调器、ISDN调制解调器、DSL调制解调器、电缆调制解调器、无线接口或者用于将诸如客户计算机系统之类的数字处理系统耦合到另一个数字处理系统的另一种接口。客户计算机系统118和120分别通过网络接口114和116耦合到LAN总线112。网络接口114和116可以是以太网类型、异步传输模式(ATM)或其它类型的网络接口。LAN总线还耦合到网关数字处理系统110,它可为LAN提供防火墙以及其它因特网相关服务。网关数字处理系统110又耦合到ISP126,以便向客户计算机系统118和120提供因特网连通性。例如,网关数字处理系统110可包括传统的服务器计算机系统。例如,万维网服务器128可类似地包括传统的服务器计算机系统。
图2是可与本发明的一个实施例配合使用的数字处理系统的框图。例如,图2所示的系统200可用作客户计算机系统(例如客户计算机系统102、104、118和/或120)、万维网服务器系统(例如万维网服务器系统128)或者传统的服务器系统等。此外,数字处理系统200可用来执行因特网服务提供商、如ISP124和126的一个或多个功能。
注意,虽然图2说明了计算机系统的各种组件,但并不是意在表示互连组件的任何特定体系结构或方式,因为这些详细情况不是与本发明密切相关的。大家还会理解,网络计算机、手持计算机、蜂窝电话及具有更少组件或者也许具有更多组件的其它数据处理系统也可与本发明配合使用。例如,图2的计算机系统可以是IBM兼容计算机或者Apple Macintosh计算机。
如图2所示,作为数据处理系统的形式的计算机系统200包括耦合到微处理器203和ROM207、易失性RAM205以及非易失性存储器206的总线202。可以是Intel Corporation生产的Pentium微处理器或者Motorola,Inc.生产的PowerPC G3或PowerPC G4微处理器的微处理器203耦合到高速缓冲存储器204,如图2的实例所示。总线202将这些各种组件互连在一起,以及还将这些组件203、207、205和206互连到显示控制器及显示装置208,以及互连到可能是鼠标、键盘、调制解调器、网络接口、打印机和本领域众所周知的其它装置的输入/输出(I/O)装置210。输入/输出装置210通常通过输入/输出控制器209耦合到系统。易失性RAM205通常被实现为动态RAM(DRAM),动态RAM持续要求电力来刷新或保持存储器中的数据。非易失性存储器206通常是磁硬盘驱动器、磁光盘驱动器、光盘驱动器或者DVD RAM或者即使在从系统断开电力之后仍然保持数据的其它类型的存储系统。非易失性存储器通常还是随机存取存储器,但这不是必需的。虽然图2表示非易失性存储器是直接耦合到数据处理系统中的组件的其余部分的本地装置,但是大家理解,本发明可利用远离系统的非易失性存储器,例如通过诸如调制解调器或以太网接口之类的网络接口耦合到数据处理系统的网络存储装置。总线202可包括通过各种桥接、控制器和/或适配器相互连接的一个或多个总线,如本领域众所周知的那样。在一个实施例中,I/O控制器209包括用于控制USB外设的USB(通用串行总线)适配器。
图3是框图,说明时钟速率或功能性可通过网络远程编程的微处理器的一个实施例。在一个实施例中,微处理器300包括处理核心315,它处理诸如图2的计算机系统200之类的计算机系统的数据。核心315包括高速缓存301、预取缓冲器302、指令解码器303、微码单元304、数据通路电路305、地址生成器306以及浮点单元307。高速缓存301可存储供微处理器300执行的指令和数据。高速缓存可通过经由网络、如图1的因特网122从远程机构所接收的命令来进行远程编程(例如启用)。微处理器300的一部分、如核心逻辑315的一部分还可通过经由网络从远程机构所接收的命令来进行编程或启用。预取缓冲器302可检索供微处理器300执行的数据和指令。缓冲器302或者可从高速缓存301中、或者在发生高速缓存未命中时经由总线接口单元308从计算机系统的存储器中检索数据和指令。
指令解码器303从预取缓冲器302中检索指令并对其解码。微码单元304具有存储微处理器300的微码指令的存储器。微码单元304与指令解码器303交互,以便运行指令。为了进行指令的运行,微码单元304为地址生成器306提供地址生成器306用来产生进行指令的运行所需的地址的地址信息。通过类似方式,地址生成器306为数据通路电路305和浮点单元307产生地址。
微码单元304还负责例如中断/异常仲裁等的指令边界处理以及在需要时的指令解码器303的暂停。微码单元304还处理高速缓存301的未命中。
数据通路电路305为微处理器300提供主运行数据通路。数据通路电路305包括算术逻辑单元(ALU)、控制寄存器、滚桶式移位器、只读存储器(ROM)以及标志。数据通路电路305从预取缓冲器302检索数据。数据通路电路305根据地址生成器306所产生的地址、采用从预取缓冲器302所接收的数据来运行指令解码器303所提供的微码。浮点单元307用于浮点指令的运行。
在处理核心315的外部,微处理器300具有总线接口单元(BIU)308、Pad接口311以及时钟发生器310。总线接口单元308提供微处理器300的内部总线与用于从计算机系统的存储器中取数据和指令的外部总线之间的接口。总线接口308具有写缓冲器309,写缓冲器309用来存储从微处理器300传送到计算机系统的其余部分的数据。Pad接口311为微处理器300与计算机系统的其余部分之间传递的控制、地址和数据信号提供引脚接口。
时钟发生器310接收可能是来自主板的系统时钟的系统时钟信号Cl_ksys,并采用Clk_sys来产生用于微处理器300的时钟信号。时钟发生器310向总线接口单元308和Pad接口311提供时钟信号Clk_1X。当微处理器300未过热时(由来自热传感器321的信号的取消断言来表示),则Clk_1X信号具有与Clk_sys信号相同的频率,以及与Pad接口311交互的总线接口单元308的一些部分采用C1k_1X信号。
时钟发生器310向处理器核心315提供另一个时钟信号Clk_Internal。Clk_Internal信号与Clk_sys信号同步,并且具有Clk_sys信号的频率的倍数(例如两倍)的频率。因此,当微处理器300在正常条件下工作时,处理核心315一般以高于计算机系统的其余部分的频率进行工作。
时钟发生器310的控制逻辑312从热传感器321接收热断路信号。当热断路信号被断言时,控制逻辑312根据其配置可改变Clk_Internal信号的频率以便降低处理核心315的速率,并减小微处理器300的衬底中的热量积累。这样,当热断路信号被断言时,控制逻辑312使Clk_Internal信号的频率降低或者临时停止Clk_Internal信号。
另外,根据一个实施例,微码单元304可包括特定指令(例如操作数),该指令在被调用时可提供给指令解码器303以便执行相应的操作。例如,在系统的用户发出升级处理器300的时钟速率的请求并接收用于对此时钟速率编程的加密命令之后,微码单元304被调用以便向指令解码器303提供指令。指令解码器303运行从微码单元304所接收的指令,从而将加密命令插入解密引擎(未示出)。加密引擎则对命令解密,以便提取编程代码。解密引擎可访问可能嵌入在处理器300(例如ROM)中的速率密钥信息,从而确保编程代码是有效的。如果编程代码有效,则解密引擎可与可能包括PLL电路的时钟控制逻辑312进行通信,以便根据编程代码来控制时钟发生器310,从而产生适当的时钟信号、如时钟信号Clk_1X和Clk_Internal。
图4是框图,说明具有时钟速率或功能性可被远程编程的微处理器的计算机系统的一个实施例。在一个实施例中,示范系统400包括通过网络从远程机构接收用于对集成电路(IC)的时钟速率编程的命令的接口、以及耦合到此接口以便根据此命令对IC的时钟速率编程的编程引擎。
参照图4,系统400包括处理器403,它耦合到系统输入/输出(IO)接口402以便访问网络401。处理器403可用作图2所示的系统200的处理器203。系统IO402可包括一个或多个IO装置、如系统200的装置210。具体来说,系统IO402可包括访问网络401的网络接口卡(NIC)或调制解调器。处理器403可以是Intel Corporation生产的Pentium处理器。或者,处理器403可以是Motorola,Inc.生产的PowerPC处理器。网络401可以是广域网(WAN)、如因特网。或者,网络401可以是局域网(LAN)或内联网。
在一个实施例中,处理器403其中还包括CPU微码单元404、解密引擎405、锁相环(PLL)电路406、时钟发生器407、访问计数器408、速率密钥409以及处理器标识(ID)410。根据一个实施例,操作系统400的用户可通过网络401向系统制造机构或第三方支持机构发出升级其处理器403的时钟速率的请求。此机构可由相应的供应商在网站、如图1的万维网服务器系统128进行维护。或者,机构可以是通过内联网的公司总部(例如IT部门)。请求可包括表明处理器403的类型的处理器ID410。在一个实施例中,用户可利用实用程序、例如制造商所提供的公用程序来访问此机构。或者,用户可以只利用因特网浏览器通过HTTP(超文本传输协议)协议向制造商网站发出请求。另外,机构可要求用户经由电子商务机制通过网络支付升级费用。
一支付升级费用,机构发布命令,允许系统400通过网络401从机构进行下载。在一个实施例中,命令包括具有加密算法的加密编程代码,它是本领域众所周知的。一旦在系统400的应用层运行的应用程序(未示出)接收到经由系统IO402的命令,应用程序可通过应用编程接口(API)访问微码部分404。根据一个实施例,微码部分404可采用专门处理此命令的指令(例如操作数)来预先启用。在一个实施例中,微码404可包括一个或多个存储器或IO映射寄存器,以便允许应用程序、如浏览器或其它升级实用程序直接访问微码单元404。在一个备选实施例中,应用程序可经由为微码单元404专门开发的设备驱动程序来访问微码单元404。设备驱动程序最终可与BIOS(基本输入/输出系统)通信以便访问微码单元404。在另一个实施例中,应用程序可直接与BIOS通信以便访问微码单元404。
根据一个实施例,所下载的命令采用市场中可买到的加密算法来加密。一旦微码单元404从应用程序接收到命令,微码单元404可对指令解码器、如图3的指令解码器303发出特定指令,以便将此命令传到或插入解密引擎405。解密引擎405对命令解密,从而检索编程代码以便对PLL电路406编程。在对PLL电路406编程之前,解密引擎405可通过访问计数器408访问速率密钥409以便检索嵌入速率密钥409以及处理器ID410。解密引擎405则将编程代码与速率密钥409进行比较,从而确定编程代码是否有效。比较还可检查处理器ID410,以便确定处理器403是否能够支持编程代码所指定的这种时钟速率。速率密钥409和处理器ID410可存储在处理器403的存储器、如ROM(只读存储器)中。或者,速率密钥409和处理器ID410可在制造过程中在逻辑电路、如熔断器电路中硬连线。如果解密引擎405判定编程代码有效,则解密引擎405可对PLL406编程,从而相应地控制时钟发生器407以产生预期时钟速率。
根据一个实施例,访问速率密钥单元409由访问计数器408进行选通。如果解密引擎405在预定尝试次数无法访问速率密钥单元409,则访问计数器408可临时或永久地禁用远程时钟速率调整功能性。
根据另一个实施例,通过网络401从机构所接收的命令可采用公开/私有密钥对来加密。也就是说,在机构采用公钥来加密命令,并通过网络401将其传送到系统400。根据一个实施例,私钥被嵌入在速率密钥单元409中。当解密引擎405访问速率密钥单元409时,解密引擎405检索私钥,并采用私钥对已经通过公钥加密的命令进行解密。因此,整个事务处理受到保护。可采用其它加密协议或算法。
图5是框图,说明可用于对IC(例如微处理器)的时钟速率进行远程编程的体系结构的一个实施例。在一个实施例中,示范体系结构500其中包括应用程序501、设备驱动程序502、BIOS503以及硬件504。应用程序501可通过操作系统(OS)或设备驱动程序所提供的应用程序编程接口(API)来传送一个或多个设备驱动程序502。设备驱动程序502可经由BIOS503来访问硬件(例如处理器),从而对硬件编程以便执行某些操作。或者,设备驱动程序502可经由存储器或IO映射接口直接与硬件504通信。
应用程序501可驻留在OS的用户空间。设备驱动程序502可驻留在OS的核心空间,而BIOS503则可驻留在紧接硬件504的固件(例如ROM)中。OS可以是Microsoft Corporation开发的Windows操作系统。或者,OS可以是Apple Computer,Inc.开发的Mac OS。此外,OS可以是Unix或Linux操作系统。可采用其它操作系统、如机顶盒类型计算机中嵌入的实时操作系统。
根据一个实施例,应用程序501可包括通过网络、如因特网122访问制造商机构、如万维网服务器系统128的浏览器。具体来说,当用户希望访问远程制造商机构时,用户采用驻留在应用层501的浏览器与网络接口的设备驱动程序、如驻留在设备驱动程序层502的网络驱动程序进行通信。网络驱动程序则与可包括NIC卡的硬件504进行通信,以便通过网络访问制造商机构。或者,用户可采用供应商提供的特定公用程序,经由利用调制解调器的拨号连网机制来访问此机构。
一接收到来自机构的命令,可将命令转发给解密引擎、如解密引擎405,它可驻留在设备驱动程序502、BIOS503中或者嵌入在硬件504中。解密引擎可通过软件或通过硬件来实现。解密引擎则对照一个或多个速率密钥、如速率密钥409对命令解码,以便确保所提取的编程代码有效。如果编程代码有效,则解密引擎可对相应的PLL电路编程,从而控制时钟发生器产生适当的时钟信号。
图6是流程图,说明对IC的时钟速率进行远程编程的过程的一个实施例。在一个实施例中,示范过程600包括通过网络从远程机构接收用于对集成电路(IC)的时钟速率编程的命令,以及响应此命令而调整IC的时钟速率。参照图6,在用户通过网络(例如因特网)向远程机构发出升级其IC(例如计算机系统的微处理器)的时钟速率的请求之后,在框601,用户通过网络从远程机构接收用于对IC的时钟速率编程的命令。响应此命令,在框602,系统根据命令调整IC时钟速率。
图7是流程图,说明对IC的时钟速率进行远程编程的过程的另一个实施例。在一个实施例中,示范过程700在框701开始,通过网络(例如因特网)对机构、如制造商维护的万维网服务器128产生及发送用于升级客户机的IC的时钟速率的请求。响应客户机的请求,在框702,机构发出对所请求的时钟速率编程的加密命令,并允许客户机通过网络将此加密命令下载到客户机的机器中。在框703,客户机对命令解密以便提取编程代码,并且从相应IC的存储器中检索速率密钥。在框704,客户机对照速率密钥检查编程代码,以便确定编程代码是否有效。如果编程代码有效,则在框705,客户机根据编程代码调整IC的时钟速率。在一个实施例中,客户机对PLL电路编程,从而控制时钟发生器根据编程代码产生预期时钟信号。
虽然上述技术涉及对IC的时钟速率进行编程,但是大家理解,这些技术不限于对时钟速率进行编程。这些技术可应用于IC或数据处理系统的其它远程可编程特征。例如,根据一个实施例,微处理器的高速缓冲存储器(例如高速缓存301)或数据处理系统(例如高速缓存204)可被远程启用或编程。或者,逻辑、例如处理器的核心逻辑(例如微处理器300的核心逻辑315)的一部分可被远程编程或启用。本领域的技术人员非常清楚的其它功能性可经由以上所述技术之一来进行远程编程。
图8是流程图,说明对IC的功能性进行远程编程的过程的另一个实施例。在一个实施例中,示范过程800包括通过网络从远程机构接收用于启用集成电路(IC)的功能性的命令,以及响应此命令而启用IC的功能性。在一个实施例中,经由可由IC的制造商或者第三方分销商主持的电子商务通道来接收命令。
参照图8,示范过程800在框801开始,通过网络(例如因特网)对机构、如制造商维护的万维网服务器128产生及发送用于升级客户机的IC的功能性的请求。在一个实施例中,功能性可包括时钟速率能力、高速缓冲存储器或者核心逻辑的一部分等。响应客户机的请求,在框802,机构发出对所请求的功能性编程的加密命令,并允许客户机通过网络将此加密命令下载到客户机的机器中。在框803,客户机对命令解密以便提取编程代码,并且从相应IC的存储器中检索内部代码或签名。在框804,客户机对照内部代码检查编程代码,以便确定编程代码是否有效。如果编程代码有效,则在框805,客户机根据编程代码对IC的相应功能性(例如时钟速率、高速缓冲存储器、核心逻辑的一部分等)进行编程。在一个实施例中,客户机根据编程代码对PLL电路编程,从而控制时钟发生器产生预期时钟信号。本领域的技术人员非常清楚的其它功能性可经由以上所述技术之一来进行远程编程。
因此,上述实施例允许供应商使高性能CPU产品的时钟降低,并以打折扣的较低性能价格销售。随后,随着时间推移以及终端用户对于性能需求的增加,供应商能够远程反复提供更高的CPU速率增量,对应较小的额外费用。额外费用的多少取决于CPU的预期“最终”销售费用、多少CPU速率增量结合到CPU中(因而收取的额外费用数目)以及货币的时间价值。大家会理解,例如高速缓冲存储器或逻辑的一部分之类的CPU的其它特征可远程升级或启用。通过上述技术,调整可远程、自动、安全以及“即时”地进行。
例如,高性能处理器的一个实例可能是可售大约$100的866MHz的微处理器。这个装置对于“新的”价格敏感消费者产品过于昂贵。但通过以上实施例中所述的技术,供应商实际上可在传统上具有较低价格的市场板块中销售这种产品。供应商则可将该装置的时钟下调到例如300MHz,并以例如$30将它出售给顾客。一年内,供应商能够对于到466MHz的性能提高出价例如$30(这时,费用实际上可能由终端用户支付)。此报价以及性能提高均经由一般的电子商务机制远程且自动地进行,使得终端用户不需要实际上将装置返厂升级。一年之后,同一个供应商可对于到633MHz的性能提高出价例如另一个$30。最后,又一年之后,供应商可对于到866MHz的性能提高出价例如另一个$30的最终费用。因此,此芯片的最终销售价格在三年期间为$120。
在以上说明中,参照其特定示范实施例对本发明进行了描述。很显然,可对其进行各种修改,而没有背离以下权利要求书阐述的本发明的广义精神和范围。因此,说明书和附图应看作是说明性而不是限制性的。
权利要求
1.一种方法,包括通过网络从远程机构接收用于对集成电路(IC)的时钟速率进行编程的命令;以及响应所述命令而调整所述IC的时钟速率。
2.如权利要求1所述的方法,其特征在于,所述网络为广域网(WAN)或局域网(LAN)。
3.如权利要求1所述的方法,其特征在于,所述命令包括对所述时钟速率编程的加密编程代码,所述方法还包括对所述编程代码进行解密。
4.如权利要求3所述的方法,其特征在于,还包括尝试将所述解密编程代码与所述IC内的速率代码进行匹配,以便确定所述编程代码是否有效。
5.如权利要求4所述的方法,其特征在于,还包括如果所述编程代码有效,则根据所述编程代码对锁相环(PLL)编程,从而调整所述IC的时钟速率。
6.如权利要求4所述的方法,其特征在于,还包括对照所述IC的标识(ID)检查所述编程代码以确定所述编程代码是否有效。
7.如权利要求4所述的方法,其特征在于,还包括如果所述编程代码与所述速率代码不匹配,则拒绝所述编程代码。
8.如权利要求7所述的方法,其特征在于,还包括如果执行所述尝试超过预定机会数量,则禁用对所述IC的时钟速率编程的能力。
9.如权利要求1所述的方法,其特征在于,所述远程机构为万维网服务器,所述方法还包括通过所述网络向所述远程机构发送对于调整所述IC的时钟速率的请求;以及提出与所述请求相关联的交换所述命令的付费。
10.一种设备,包括接口,通过网络从远程机构接收用于对集成电路(IC)的时钟速率编程的命令;以及编程引擎,耦合到所述接口,用以根据所述命令对所述IC的时钟速率编程。
11.如权利要求10所述的设备,其特征在于,还包括从所述接口接收所述命令的微码单元。
12.如权利要求11所述的设备,其特征在于,所述命令包括加密编程代码,所述设备还包括耦合到所述微码单元以便对所述编程代码解密的解密引擎。
13.如权利要求12所述的设备,其特征在于,还包括锁相环(PLL)电路,用以从所述解密引擎接收速率代码以便对所述IC的时钟电路编程,从而获得预期的时钟速率。
14.如权利要求12所述的设备,其特征在于,还包括一个或多个速率密钥,允许所述解密引擎将所述编程代码与所述一个或多个速率密钥进行匹配,从而确定所述编程代码是否有效。
15.如权利要求14所述的设备,其特征在于,根据所述IC的标识(ID)将所述编程代码与所述一个或多个速率密钥进行匹配。
16.如权利要求10所述的设备,其特征在于,所述网络为广域网(WAN)或局域网(LAN)。
17.一种机器可读介质,具有使机器执行方法的可执行代码,所述方法包括通过网络从远程机构接收用于对集成电路(IC)的时钟速率编程的命令;以及响应所述命令而调整所述IC的时钟速率。
18.如权利要求17所述的机器可读介质,其特征在于,所述网络为广域网(WAN)或局域网(LAN)。
19.如权利要求17所述的机器可读介质,其特征在于,所述命令包括对所述时钟速率编程的加密编程代码,所述方法还包括对所述编程代码进行解密。
20.如权利要求19所述的机器可读介质,其特征在于,所述方法还包括尝试将所述解密编程代码与所述IC内的速率代码进行匹配,以便确定所述编程代码是否有效。
21.如权利要求20所述的机器可读介质,其特征在于,所述方法还包括如果所述编程代码有效,则根据所述编程代码对锁相环(PLL)编程,从而调整所述IC的时钟速率。
22.如权利要求20所述的机器可读介质,其特征在于,所述方法还包括对照所述IC的标识(ID)检查所述编程代码以确定所述编程代码是否有效。
23.如权利要求20所述的机器可读介质,其特征在于,所述方法还包括如果所述编程代码与所述速率代码不匹配,则拒绝所述编程代码。
24.如权利要求23所述的机器可读介质,其特征在于,所述方法还包括如果执行所述尝试超过预定机会数量,则禁用对所述IC的时钟速率编程的能力。
25.如权利要求17所述的机器可读介质,其特征在于,所述远程机构为万维网服务器,所述方法还包括通过所述网络向所述远程机构发送关于调整所述IC的时钟速率的请求;以及提出与所述请求相关联的交换所述命令的付费。
26.一种方法,包括通过网络从远程机构接收用于启用集成电路(IC)的功能性的命令;以及响应所述命令而启用所述IC的所述功能性。
27.如权利要求26所述的方法,其特征在于,通过所述网络经由电子商务机制来接收所述命令。
28.如权利要求26所述的方法,其特征在于,所述IC的所述功能性是从由以下各项组成的组中选取的成员时钟速率能力;高速缓冲存储器;以及核心逻辑的至少一部分。
29.一种数据处理系统,包括处理器;以及接口,通过网络从远程机构接收命令以启用所述处理器的功能性。
30.如权利要求29所述的数据处理系统,其特征在于,还包括耦合到所述处理器以及耦合到所述接口的存储器,存储使所述处理器执行操作的指令,所述操作包括对所述命令解密以取回编程代码;将所述编程代码与内部签名进行匹配,以便确定所述编程代码是否有效;以及如果所述编程代码有效,则对电路编程以启用所述处理器的所述功能性。
全文摘要
本文描述对集成电路(IC)的功能性进行远程编程的方法及设备。在一个方面,示范方法包括通过网络从远程机构接收用于启用集成电路(IC)的功能性的命令,以及响应此命令而启用IC的功能性。还描述了其它方法及设备。
文档编号G06F21/00GK1768314SQ200480008877
公开日2006年5月3日 申请日期2004年2月19日 优先权日2003年3月31日
发明者D·J·奥利弗 申请人:英特尔公司