TW201545165A - Apparatus and method for providing configuration data to an integrated circuit - Google Patents

Apparatus and method for providing configuration data to an integrated circuit Download PDF

Info

Publication number
TW201545165A
TW201545165A TW103141343A TW103141343A TW201545165A TW 201545165 A TW201545165 A TW 201545165A TW 103141343 A TW103141343 A TW 103141343A TW 103141343 A TW103141343 A TW 103141343A TW 201545165 A TW201545165 A TW 201545165A
Authority
TW
Taiwan
Prior art keywords
configuration data
fuse
cores
core
cache memory
Prior art date
Application number
TW103141343A
Other languages
Chinese (zh)
Other versions
TWI532049B (en
Inventor
G Glenn Henry
Dinesh K Jain
Stephan Gaskins
Original Assignee
Via Alliance Semiconductor Co Ltd
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
Priority claimed from US14/285,517 external-priority patent/US9665490B2/en
Priority claimed from US14/285,412 external-priority patent/US9606933B2/en
Application filed by Via Alliance Semiconductor Co Ltd filed Critical Via Alliance Semiconductor Co Ltd
Publication of TW201545165A publication Critical patent/TW201545165A/en
Application granted granted Critical
Publication of TWI532049B publication Critical patent/TWI532049B/en

Links

Abstract

An apparatus includes a fuse array and a plurality of cores. The fuse array is programmed with compressed data. Each of the plurality of cores accesses the fuse array upon power-up/reset to read and decompress the compressed data, and to store decompressed data sets for one or more cache memories within the each of the plurality of cores in a stores that is coupled to the each of the plurality of cores. Each of the plurality of cores has reset logic and sleep logic. The reset logic employs the decompressed data sets to initialize the one or more cache memories upon power-up/reset. The sleep logic determines that power is restored following a power gating event, and subsequently accesses the stores to retrieve and employ the decompressed data sets to initialize the one or more caches following the power gating event.

Description

向積體電路提供配置資料的裝置和方法 Apparatus and method for providing configuration data to an integrated circuit

本發明係有關於一種微電子領域,特別是一種涉及用於向積體電路提供配置資料的裝置和方法。 This invention relates to the field of microelectronics, and more particularly to an apparatus and method for providing configuration data to an integrated circuit.

積體電路的技術在過去的40年間獲得了指數級的進步。特別是從4位元單指令、10微米器件開始的微處理器領域,在半導體製造技術的進步已經使得設計者能夠提供在架構和密度方面越來越複雜的設備。在80年代和90年代中,所謂的管線式(pipeline)微處理器和超標量體系結構(superscalar)微處理器被開發出來,其在單個晶粒(die)上包括數百萬個電晶體。現在,在20年之後,64位的32奈米的設備正在被生產,其在單個晶粒上具有數十億個電晶體,並且其包括用於資料處理的多個微處理器核心。 The technology of integrated circuits has achieved exponential progress over the past 40 years. Especially in the field of microprocessors starting with 4-bit single instruction, 10 micron devices, advances in semiconductor fabrication technology have enabled designers to provide increasingly complex devices in terms of architecture and density. In the 1980s and 1990s, so-called pipeline microprocessors and superscalar microprocessors were developed that included millions of transistors on a single die. Now, after 20 years, 64-bit 32-nm equipment is being produced, with billions of transistors on a single die, and it includes multiple microprocessor cores for data processing.

從這些早期的微處理器被生產開始就一直堅持的一個要求是:當其被上電時或者當其被重置時需要利用配置資料來對這些設備進行初始化。例如,很多架構以很多可選擇的頻率和/或電壓中的一個執行而使得設備能夠被致能。其它的架構要求每個設備具有序號,以及可以透過指令的執行而被讀取的其它資訊。另外的設備的內部暫存器和控制電路需要初始 化資料。另外的微處理器,特別是具有板上(on-board)快取記憶體記憶體的微處理器使用修補資料來實現在這些記憶體內的冗餘電路,以糾正製造的錯誤。 One requirement that has been adhered to since the early days of these early microprocessors was that they were initialized with configuration data when they were powered up or when they were reset. For example, many architectures enable a device to be enabled with one of a number of selectable frequencies and/or voltages. Other architectures require each device to have a sequence number and other information that can be read through the execution of the instruction. The internal registers and control circuitry of the other device require an initial Information. Additional microprocessors, particularly microprocessors with on-board cache memory, use patching data to implement redundant circuitry in these memories to correct manufacturing errors.

本領域技術人員將理解,設計者傳統上採用晶粒上的半導體熔絲陣列來儲存和提供初始配置和修補資料。這些熔絲陣列通常透過在已經製造好部件之後對其中的選擇的熔絲進行燒斷來程式設計,並且陣列包含上千位元的資訊,其在上電/重置之後透過相應的設備來讀取,以初始化和配置設備來進行操作。 Those skilled in the art will appreciate that designers have traditionally employed semiconductor fuse arrays on the die to store and provide initial configuration and repair information. These fuse arrays are typically programmed by blowing selected fuses after the components have been fabricated, and the array contains thousands of bits of information that are read through the corresponding device after power up/reset. Take to initialize and configure the device to operate.

隨著過去的數年間設備的複雜度得到增加,對於典型的設備所需要的配置/修補資料的量也呈比例地增加。但是,本領域技術人員將理解,雖然電晶體大小隨著所採用的半導體製造工藝而成比例地縮小,但是半導體熔絲大小由於用於對晶粒上的熔絲進行程式設計的特定的需求而增加。半導體熔絲中的和其本身的這種現象對於通常受到實際資源(real estate)限制和功率限制的設計者而言是個問題。換言之,在給定的晶粒上沒有足夠的實際資源來製造龐大的熔絲陣列。 As the complexity of the device has increased over the past few years, the amount of configuration/repair data required for a typical device has also increased proportionally. However, those skilled in the art will appreciate that while the transistor size scales down with the semiconductor fabrication process employed, the semiconductor fuse size is due to the particular need for programming the fuses on the die. increase. This phenomenon in semiconductor fuses and by itself is a problem for designers who are often subject to real estate constraints and power limitations. In other words, there is not enough real resources on a given die to make a bulky fuse array.

此外,用於在單個晶粒上製造多個設備核心的能力已經幾何地加劇了該問題,因為對於每個核心的配置需求導致在單個陣列或者不同的陣列中、在晶粒上熔絲數量的需求,該數量與在其上放置的核心的數量呈比例。 Furthermore, the ability to fabricate multiple device cores on a single die has geometrically exacerbated this problem because the configuration requirements for each core result in a number of fuses on the die in a single array or in different arrays. Demand, which is proportional to the number of cores placed on it.

此外,本領域技術人員將理解,多核設備使用操作的複雜的功率節省模式,其導致核心中的一個或者多個當不被使用時,在所謂的功率選通事件(或者“睡眠模式”)中被 斷電。因此,當在功率選通事件之後對核心上電時,除了初始化速度需求更加嚴厲之外,仍然繼續存在對於初始化、配置、以及修補的相同的需求。 Moreover, those skilled in the art will appreciate that multi-core devices use a complex power saving mode of operation that causes one or more of the cores to be in a so-called power gating event (or "sleep mode") when not in use. Be Power off. Therefore, when the core is powered up after a power gating event, in addition to the more stringent initialization speed requirements, the same requirements for initialization, configuration, and patching continue to exist.

因此,需要使得配置/修補資料能夠被儲存和提供給與迄今已經被提供的設備相比,在單個晶粒上要求明顯減少的實際資源以及功率的多核設備的裝置和方法。 Accordingly, there is a need for an apparatus and method that enables configuration/repair data to be stored and provided to a multi-core device that requires significantly reduced actual resources and power on a single die as compared to devices that have been provided to date.

此外,需要能夠儲存和提供與當前技術相比明顯更多的配置/修補資料,同時要求在多核晶粒上的相同或者更少的實際資源的熔絲陣列機制。 In addition, there is a need for a fuse array mechanism that is capable of storing and providing significantly more configuration/repair data than current technology while requiring the same or fewer actual resources on a multi-core die.

此外,需要便於在功率選通事件之後提示多核設備的初始化、配置、以及修補的技術。 In addition, techniques are needed to facilitate the initialization, configuration, and patching of multi-core devices after a power gating event.

本發明提供一種用於將配置資料提供給積體電路的裝置。所述裝置包括半導體熔絲陣列和多個核心。半導體熔絲陣列被佈置在晶粒上,向其中程式設計壓縮的配置資料。多個核心被佈置在晶粒上,其中多個核心中的每一個被耦合到半導體熔絲陣列,並且其中多個核心中的一個被配置為在被上電/重置之後存取半導體熔絲陣列以對壓縮的配置資料進行讀取和解壓縮,並且在耦合到多個核心中的每一個的儲存裝置(storage)中儲存用於在多個核心中的每一個內的一個或者多個快取記憶體記憶體的解壓縮的配置資料集合。多個核心中的每一個具有重置邏輯和睡眠邏輯。重置邏輯被配置為採用解壓縮的配置資料集合,以在上電/重置之後初始化一個或者多個快取記憶體記憶體。睡眠邏輯被配置為確定在功率選通事件之 後恢復功率,並且被配置為隨後存取儲存裝置,以檢索和採用解壓縮的配置資料集合,來在功率選通事件之後初始化一個或者多個快取記憶體記憶體。 The present invention provides an apparatus for providing configuration data to an integrated circuit. The device includes a semiconductor fuse array and a plurality of cores. A semiconductor fuse array is placed on the die to which the compressed configuration data is programmed. A plurality of cores are disposed on the die, wherein each of the plurality of cores is coupled to the semiconductor fuse array, and wherein one of the plurality of cores is configured to access the semiconductor fuse after being powered up/reset The array reads and decompresses the compressed configuration data and stores one or more caches in each of the plurality of cores in a storage coupled to each of the plurality of cores A collection of decompressed configuration data for memory memory. Each of the plurality of cores has reset logic and sleep logic. The reset logic is configured to employ a decompressed set of configuration data to initialize one or more cache memories after power up/reset. Sleep logic is configured to determine the power gating event The power is then restored and configured to subsequently access the storage device to retrieve and employ the decompressed set of configuration data to initialize one or more cache memory memories after the power gating event.

在又一方面,本發明包括一種用於配置積體電路的方法。所述方法包括:首先將半導體熔絲陣列佈置在晶粒上,向其中程式設計壓縮的配置資料;其次將多個微處理器核心佈置在晶粒上,其中多個微處理器核心中的每一個被耦合到半導體熔絲陣列,並且其中多個微處理器核心中的一個被配置為在上電/重置之後存取半導體熔絲陣列以對壓縮的配置資料進行讀取和解壓縮,並且在耦合到多個核心中的每一個的儲存裝置中儲存用於在多個核心中的每一個內的一個或者多個快取記憶體記憶體的解壓縮的配置資料集合;經由佈置在多個核心中的每一個內的重置邏輯,採用解壓縮的配置資料集合,以在上電/重置之後對一個或者多個快取記憶體記憶體進行初始化;以及經由被佈置在多個核心中的每一個內的睡眠邏輯,確定在功率選通事件之後恢復功率,並且隨後存取儲存裝置,以檢索和採用解壓縮的配置資料集合,來在功率選通事件之後初始化一個或者多個快取記憶體記憶體。 In yet another aspect, the invention includes a method for configuring an integrated circuit. The method includes first disposing a semiconductor fuse array on a die, programming a compressed configuration data therein, and secondly arranging a plurality of microprocessor cores on the die, wherein each of the plurality of microprocessor cores One is coupled to the semiconductor fuse array, and wherein one of the plurality of microprocessor cores is configured to access the semiconductor fuse array after power up/reset to read and decompress the compressed configuration data, and Storing a set of decompressed configuration data for one or more cache memories within each of the plurality of cores in a storage device coupled to each of the plurality of cores; Reset logic within each of the instances, using a decompressed set of configuration data to initialize one or more cache memory after power up/reset; and via being disposed in multiple cores Each of the sleep logic determines to recover power after a power gating event, and then accesses the storage device to retrieve and employ the decompressed configuration data set, Initializing the one or more cache memory after power gating event.

關於工業適用性,本發明在可以用於通用或者專用計算設備的微處理器內實現。 With regard to industrial applicability, the present invention is implemented in a microprocessor that can be used in a general purpose or special purpose computing device.

為讓本發明之特徵和優點能更明顯易懂,下文特舉出較佳實施例,並配合所附圖式,作詳細說明如下: In order to make the features and advantages of the present invention more comprehensible, the preferred embodiments are described below, and are described in detail with reference to the accompanying drawings.

100、200、300、400、1100‧‧‧方塊圖 100, 200, 300, 400, 1100‧‧‧ block diagram

101、420、1101‧‧‧微處理器核心 101, 420, 1101‧‧ ‧ microprocessor core

102‧‧‧熔絲陣列 102‧‧‧Fuse array

103‧‧‧重置邏輯 103‧‧‧Reset logic

104‧‧‧重置電路 104‧‧‧Reset circuit

105‧‧‧重置微代碼 105‧‧‧Reset microcode

107‧‧‧控制電路 107‧‧‧Control circuit

108、415‧‧‧微代碼暫存器 108, 415‧‧‧ microcode register

109、414‧‧‧微代碼補丁元件 109, 414‧‧‧ microcode patch components

110、416‧‧‧快取記憶體校正元件 110, 416‧‧‧ Cache memory correction components

201‧‧‧熔絲陣列 201‧‧‧Fuse Array

202、PFB1~PFBN、RFB1~RFBN‧‧‧冗餘熔絲組 202, PFB1~PFBN, RFB1~RFBN‧‧‧Redundant fuse set

203‧‧‧熔絲 203‧‧‧Fuse

210、211、PR1、RR1‧‧‧暫存器 210, 211, PR1, RR1‧‧‧ register

212‧‧‧互斥邏輯 212‧‧‧Exclusive logic

FB3‧‧‧輸出 FB3‧‧‧ output

310‧‧‧設備程式設計器 310‧‧‧Device Programmer

320‧‧‧壓縮器 320‧‧‧Compressor

301‧‧‧虛擬熔絲組 301‧‧‧Virtual fuse set

302‧‧‧虛擬熔絲 302‧‧‧Virtual Fuse

303‧‧‧虛擬熔絲陣列 303‧‧‧Virtual Fuse Array

330‧‧‧晶粒 330‧‧‧ grain

332‧‧‧核心 332‧‧‧ core

334、1102、CATCH1~CATCHN‧‧‧快取記憶體 334, 1102, CATCH1~CATCHN‧‧‧ Cache Memory

336、1110‧‧‧物理熔絲陣列 336, 1110‧‧‧ physical fuse array

RESET‧‧‧重置 RESET‧‧‧Reset

401‧‧‧物理熔絲陣列 401‧‧‧Physical Fuse Array

403‧‧‧微代碼補丁熔絲 403‧‧‧Microcode patch fuse

404‧‧‧壓縮的暫存器熔絲 404‧‧‧Compressed register fuse

405‧‧‧壓縮的快取記憶體校正熔絲 405‧‧‧Compressed cache memory correction fuse

406‧‧‧壓縮的熔絲校正熔絲 406‧‧‧Compressed fuse correction fuse

417‧‧‧重置控制器 417‧‧‧Reset controller

421‧‧‧解壓縮器 421‧‧Decompressor

408‧‧‧補丁熔絲元件 408‧‧‧ patch fuse components

409‧‧‧暫存器熔絲元件 409‧‧‧Storage fuse element

410‧‧‧快取記憶體熔絲元件 410‧‧‧Cache memory fuse components

411‧‧‧熔絲校正元件 411‧‧‧Fuse correction component

412‧‧‧匯流排 412‧‧‧ busbar

502、503、601~603、701~703、802、803、901~903、905、1001~1003‧‧‧欄位 502, 503, 601~603, 701~703, 802, 803, 901~903, 905, 1001~1003‧‧‧ fields

500、600、700、800、900、1000‧‧‧配置資料 500, 600, 700, 800, 900, 1000‧‧‧ configuration data

604、704、804、904‧‧‧資料塊 604, 704, 804, 904‧‧‧ data blocks

1103‧‧‧快取記憶體修補儲存裝置 1103‧‧‧Cache memory repair storage device

1104‧‧‧配置資料儲存裝置 1104‧‧‧Configuration data storage device

1105‧‧‧重置邏輯 1105‧‧‧Reset logic

1106‧‧‧睡眠邏輯 1106‧‧‧ Sleep Logic

1120‧‧‧功率控制器 1120‧‧‧Power Controller

1130‧‧‧非核心儲存裝置 1130‧‧‧Non-core storage devices

SYNC‧‧‧同步匯流排 SYNC‧‧‧ Sync Bus

第1圖圖示了包括用於向微處理器核心提供配置資料的熔絲陣列的當前微處理器核心的方塊圖;第2圖描繪了包括可以在燒斷熔絲陣列內的第一熔絲組之後燒斷的冗餘熔絲組的,在第1圖的微處理器核心內的熔絲陣列的方塊圖;第3圖特徵為提供對多核設備的配置資料的壓縮和解壓縮的根據本發明的系統的方塊圖;第4圖示出了根據本發明的熔絲解壓縮機制的方塊圖;第5圖圖示了根據本發明的用於壓縮的配置資料的示例性格式的方塊圖;第6圖圖示了根據本發明的用於解壓縮的微代碼補丁(PATCH)配置資料的示例性格式的方塊圖;第7圖描繪了根據本發明的用於解壓縮的微代碼暫存器配置資料的示例性格式的方塊圖;第8圖特徵為根據本發明的用於解壓縮的快取記憶體糾正資料的示例性格式的方塊圖;第9圖示出了根據本發明的用於解壓縮的熔絲糾正資料的示例性格式的方塊圖;第10圖示出了根據本發明的用於解壓縮的熔絲糾正資料的替代的示例性格式的方塊圖;第11圖圖示了在功率選通事件之後提供對於快取記憶體修補資料的快速恢復的、根據本發明的多核裝置的方塊圖。 1 is a block diagram of a current microprocessor core including a fuse array for providing configuration data to a microprocessor core; and FIG. 2 depicts a first fuse including an array of fuses that can be blown A block diagram of a fuse array in the microprocessor core of FIG. 1 after the group of blown redundant fuse sets; and FIG. 3 is a diagram showing compression and decompression of configuration data for the multi-core device according to the present invention. Block diagram of a system; FIG. 4 is a block diagram showing a fuse decompression mechanism according to the present invention; and FIG. 5 is a block diagram showing an exemplary format of a configuration material for compression according to the present invention; 6 is a block diagram showing an exemplary format of a decompressed microcode patch (PATCH) configuration material in accordance with the present invention; and FIG. 7 depicts a microcode register configuration for decompression in accordance with the present invention. A block diagram of an exemplary format of data; FIG. 8 is a block diagram showing an exemplary format of a cache memory correction data for decompression according to the present invention; FIG. 9 is a diagram for solving a solution according to the present invention. Example of compressed fuse correction data Block diagram of the format; Figure 10 shows a block diagram of an alternative exemplary format for the fuse correction data for decompression in accordance with the present invention; Figure 11 illustrates the provision of a cache for the power gating event A block diagram of a multi-core device in accordance with the present invention for rapid recovery of memory patching data.

以下將描述本發明的示例和說明性的實施例。為 了清楚,在本說明書中並沒有對實際實現方式中的所有的特徵進行描述,因為本領域技術人員而言將會理解,在任何這樣的實際實施例的開發中,會進行各種實現方式特定的決定,以實現諸如符合與系統相關或者與商業相關的限制之類的特定目標,所述目標可能根據實現方式而不同。此外,將會理解,這些開發努力將是複雜的和耗時的,然而對於受益於本公開的本領域普通技術人員而言,其應該是例行的工作。對於本領域技術人員而言,對於優選實施例的各種修改將是顯而易見的,並且在此限定的一般的原理將可以被應用到其它實施例中。因此,本發明不旨在受到在此示出和描述的具體實施例的限制,而是與符合在此描述的原理和新穎特徵的最寬的範圍相一致。 Example and illustrative embodiments of the invention are described below. for It is clear that not all features of the actual implementation are described in this specification, as those skilled in the art will appreciate that in the development of any such actual embodiment, various implementation-specific It is decided to achieve specific goals, such as compliance with system-related or business-related restrictions, which may vary depending on the implementation. Moreover, it will be appreciated that these development efforts will be complex and time consuming, however, it should be routine for those of ordinary skill in the art having the benefit of this disclosure. Various modifications to the preferred embodiment will be apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the specific embodiments shown and described herein, but rather in the broad scope of the principles and novel features described herein.

現在將參考附圖來對本發明進行描述。在附圖中示意性地描繪的各種結構、系統、以及設備僅僅出於說明的目的,從而不應該利用本領域技術人員所公知的細節來模糊本發明。然而,附圖被包括以用於描述和說明本發明的示例性的示例。在此所使用的文字和短語應該被理解和解釋為具有與本領域技術人員所理解的這些文字和短語相一致的意思。沒有通過在此的術語或者短語的一貫用法來暗示術語或短語的特定定義(即,與本領域技術人員所理解的普通的和習慣上的含義不同的定義)。為了使得術語或者短語被用於具有特定的含義(即,除了熟練技工所理解的意思之外的含義),將在說明書中以定義的方式來明確地闡述這樣的特定的定義,所述方式將直接地和明確地提供用於該術語或短語的特定的定義。 The invention will now be described with reference to the drawings. The various structures, systems, and devices that are schematically depicted in the drawings are for illustrative purposes only, and should not be construed However, the attached drawings are included to describe and explain illustrative examples of the invention. The words and phrases used herein should be understood and interpreted as having the meaning of the words and phrases understood by those skilled in the art. The specific definition of a term or phrase (i.e., a definition different from the ordinary and customary meanings understood by those skilled in the art) is not implied by the consistent use of the term or phrase herein. In order for a term or phrase to be used with a particular meaning (i.e., meaning other than what is understood by a skilled artisan), such a particular definition will be explicitly set forth in a defined manner in the specification. A specific definition for the term or phrase will be provided directly and explicitly.

鑒於關於設備熔絲陣列的上述背景討論以及在用 於在初始上電期間提供配置資料的當前積體電路內採用的相關技術,將參考第1及2圖來呈現對於這些技術的限制和缺點的討論。在此之後,將參考第3-10圖來呈現對於本發明的討論。本發明透過提供用於採用在多核晶粒中的壓縮配置的裝置和方法來克服以下討論的限制和缺點,其使用在多核晶粒上的更小的功率和實際資源,提供用於在功率選通事件之後對於配置和修補資料的快速恢復,並且比迄今已經提供的技術更加可靠。 In view of the above background discussion on device fuse arrays and in use The related art employed in the current integrated circuit that provides configuration data during initial power up will be discussed with reference to Figures 1 and 2 for limitations and disadvantages of these techniques. Hereinafter, a discussion of the present invention will be presented with reference to Figures 3-10. The present invention overcomes the limitations and disadvantages discussed below by providing apparatus and methods for employing a compression configuration in a multi-core die that uses less power and actual resources on the multi-core die to provide for power selection The quick recovery of configuration and patching data after the event is more reliable than the technology that has been provided to date.

定義: definition:

積體電路(IC):在小尺寸半導體材料(典型的為矽)上製造的電子電路的集合。IC也可以被稱為晶片、微晶片、或者晶粒。 Integrated circuit (IC): A collection of electronic circuits fabricated on small-sized semiconductor materials (typically germanium). An IC can also be referred to as a wafer, a microchip, or a die.

中央處理單元(CPU):透過對資料執行包括演算法操作、邏輯操作、以及輸入/輸出操作的操作,來執行電腦程式(也被稱為“電腦應用”、“應用程式”、“程式”、或者“應用”)的指令的電子電路(即,“硬體”)。 Central Processing Unit (CPU): executes computer programs (also known as "computer applications", "applications", "programs", by performing operations including arithmetic operations, logical operations, and input/output operations on data. Or an "application" of an electronic circuit (ie, "hardware").

微處理器:用作在單個積體電路上的CPU的電子設備。微處理器接收數位資料來作為輸入,根據從記憶體(晶粒上的或者晶粒外的)獲取的指令來處理資料,並且生成指令所規定的操作的結果來作為輸出。通用微處理器可以在包括但是不限於,桌上型電腦、移動電腦、或者平板電腦的設備中採用,並且可以被使用用於諸如但是不限於,計算、文本編輯、多媒體顯示、以及網際網路流覽的任務。微處理器還可以被佈置在嵌入式系統中,以控制包括電器、行動電話、智慧型電話、以 及工業控制設備的各種設備。 Microprocessor: An electronic device used as a CPU on a single integrated circuit. The microprocessor receives the digital data as input, processes the data based on instructions fetched from the memory (on the die or out of the die), and generates the result of the operation specified by the instruction as an output. A general purpose microprocessor can be employed in devices including, but not limited to, desktop computers, mobile computers, or tablets, and can be used for, for example, without limitation, computing, text editing, multimedia display, and the Internet. The task of the tour. The microprocessor can also be arranged in an embedded system to control including electrical appliances, mobile phones, smart phones, And various equipment for industrial control equipment.

多核處理器:還被稱為多核微處理器,多核處理器是具有在單個積體電路上製造的多個CPU(也被稱為“核心”)的微處理器。 Multi-core processors: Also known as multi-core microprocessors, multi-core processors are microprocessors with multiple CPUs (also referred to as "cores") fabricated on a single integrated circuit.

指令集架構(ISA)或者指令集:與程式設計相關的電腦架構的一部分,其包括:資料類型、指令、暫存器、定址模式、記憶體架構、中斷和執行處理、以及輸入/輸出。ISA包括操作碼集合的規範(即,機器語言指令)、以及由特定CPU實現的原生命令。 Instruction Set Architecture (ISA) or instruction set: Part of a computer architecture associated with programming, including: data types, instructions, scratchpads, addressing modes, memory architecture, interrupt and execution processing, and input/output. The ISA includes specifications for the set of opcodes (ie, machine language instructions), as well as native commands implemented by a particular CPU.

x86-相容的微處理器:能夠執行根據x86 ISA而程式設計的電腦應用的微處理器。 X86-compatible microprocessor: A microprocessor capable of executing a computer application programmed according to the x86 ISA.

微代碼:被採用來表示多個微指令的術語。微指令(也被稱為“原生指令”)是處於微處理器子單元執行的層級的指令。示例性子單元包括整數單元、浮點單元、MMX單元、以及負載/儲存單元。例如,微指令直接通過精減指令集電腦(RISC)微處理器來執行。對於諸如x86相容的微處理器之類的複雜指令集(CISC)微處理器,x86指令被翻譯為相關聯的微指令,並且相關聯的微指令直接通過CISC微處理器內的一個子單元或者多個子單元來執行。 Microcode: A term used to denote multiple microinstructions. Microinstructions (also known as "native instructions") are instructions at the level of execution of the microprocessor subunit. Exemplary subunits include integer units, floating point units, MMX units, and load/store units. For example, microinstructions are executed directly by a Reduced Instruction Set Computer (RISC) microprocessor. For complex instruction set (CISC) microprocessors such as x86 compatible microprocessors, x86 instructions are translated into associated microinstructions, and associated microinstructions pass directly through a subunit within the CISC microprocessor. Or multiple subunits to execute.

熔絲:通常被排列為細絲的導電結構,其可以透過在細絲上施加電壓和/或穿過細絲來施加電流而在選擇的位置處斷開。熔絲可以使用公知的製造技術而沉積在橫跨晶粒剖面的指定區域處,以在所有潛在的可程式設計區域處產生細絲。在製造之後,熔絲結構被燒斷(或者未被燒斷),以為被佈置 在晶粒上的相應的設備提供期望的可程式設計能力。 Fuse: A conductive structure that is typically arranged as a filament that can be broken at a selected location by applying a voltage across the filament and/or applying a current through the filament. Fuses can be deposited at specified areas across the grain profile using well-known fabrication techniques to produce filaments at all potential programmable areas. After fabrication, the fuse structure is blown (or not blown), so that it is arranged Corresponding devices on the die provide the desired programmability.

參考第1圖,所呈現的方塊圖100圖示了包括用於向微處理器核心101提供配置資料的熔絲陣列102的當前的微處理器核心101。熔絲陣列102包括多個微處理器熔絲(未示出),其通常以被稱為組(bank)的群組來排列。熔絲陣列102耦合到包括重置電路104和重置微代碼105這兩者的重置邏輯103。重置邏輯103被耦合到控制電路107、微代碼暫存器108、微代碼補丁元件109、以及快取記憶體校正元件110。外部的重置信號RESET耦合到微處理器核心101,並且被傳送到重置邏輯103。 Referring to FIG. 1, a block diagram 100 is presented illustrating a current microprocessor core 101 including a fuse array 102 for providing configuration data to a microprocessor core 101. Fuse array 102 includes a plurality of microprocessor fuses (not shown) that are typically arranged in groups called banks. Fuse array 102 is coupled to reset logic 103 that includes both reset circuit 104 and reset microcode 105. The reset logic 103 is coupled to the control circuit 107, the microcode register 108, the microcode patch component 109, and the cache memory correction component 110. An external reset signal RESET is coupled to the microprocessor core 101 and passed to the reset logic 103.

本領域技術人員將理解,熔絲(也被稱為“鏈路”、或者“熔絲結構”)在大量當前積體電路設備中被採用,以在製造設備之後來提供對於設備的配置。例如,考慮到第1圖的微處理器核心101被製造以選擇性地提供如桌上型電腦設備或者移動設備的功能。因此,在製造之後,在熔絲陣列102內的規定的熔絲可以被燒斷,以配置諸如移動設備的設備。因此,在重置信號RE SET致能之後,重置邏輯103讀取在熔絲陣列102中的規定熔絲的狀態,並且重置電路104(而不是在該示例中的重置微代碼105)使能相應的控制電路107,其排他性地禁用與桌上型電腦設備操作相關聯的核心101的元件,並且排他性地啟動與移動操作相關聯的核心101的元件。因此,在上電重置之後,核心101被配置為移動設備。此外,重置邏輯103讀取在熔絲陣列102中的其它熔絲的狀態,並且重置電路104(而不是在該示例中的重置微代碼105)使能相應的快取記憶體校正 元件110,其提供用於與核心101相關聯的一個或者多個快取記憶體記憶體(未示出)的校正機制。因此,在上電重置之後,核心101被配置為移動設備,並且用於其快取記憶體記憶體的校正機制就緒。 Those skilled in the art will appreciate that fuses (also referred to as "links" or "fuse structures") are employed in a large number of current integrated circuit devices to provide configuration for the device after the device is manufactured. For example, it is contemplated that the microprocessor core 101 of FIG. 1 is fabricated to selectively provide functions such as a desktop device or a mobile device. Thus, after fabrication, the specified fuses within the fuse array 102 can be blown to configure equipment such as mobile devices. Thus, after the reset signal RE SET is enabled, the reset logic 103 reads the state of the specified fuse in the fuse array 102 and resets the circuit 104 (instead of resetting the microcode 105 in this example) A corresponding control circuit 107 is enabled which exclusively disables the elements of the core 101 associated with the operation of the desktop device and exclusively activates the elements of the core 101 associated with the mobile operation. Therefore, after power-on reset, the core 101 is configured as a mobile device. In addition, reset logic 103 reads the status of other fuses in fuse array 102, and reset circuit 104 (rather than reset microcode 105 in this example) enables corresponding cache memory corrections. Element 110 provides a correction mechanism for one or more cache memory (not shown) associated with core 101. Thus, after power-on reset, core 101 is configured as a mobile device and the correction mechanism for its cache memory is ready.

以上示例僅僅是用於在諸如第1圖的微處理器核心101之類的積體電路設備中的配置熔絲的許多不同用法中的一種。本領域技術人員將理解,配置熔絲的其它用法包括但是不限於,設備特定的資料的配置(例如,序號、唯一的密碼金鑰、能夠被使用者存取的架構委任資料(architecture mandated data)、速度設置、電壓設置)、初始化資料、以及補丁資料。例如,許多當前的設備執行微代碼,並且經常要求由微代碼讀取的暫存器108的初始化。這樣的初始化資料可以透過在熔絲陣列102內的微代碼暫存器熔絲(未示出)來提供,其可以在重置之後被讀取,並且透過重置邏輯103(使用重置電路104或者重置微代碼105、或者這兩個元件104-105)提供給微代碼暫存器108。出於本發明的目的,重置電路104包括提供某些類型的配置資料的硬體元件,所述配置資料不能經由重置微代碼105的執行來提供。重置微代碼105包括在核心101的重置之後執行的內部微代碼記憶體(未示出)內佈置的多個微指令,以執行與核心101的初始化相對應的功能,這些功能包括將從熔絲陣列102讀取的配置資料提供給諸如微代碼暫存器108和微代碼補丁元件109之類的元件。經由熔絲提供的某些類型的配置資料是否可以經由重置微代碼105被分佈到核心101的各種元件107-110的標準是核心101的特定設計的主要功能。本發明 不只在提供關於被採用來對積體電路設備進行初始化的特定配置技術的全面教導,因為本領域技術人員將理解,對於當前的微處理器核心101,可配置元件107-110的類型通常落入到如在圖1中所示例的四大類中:控制電路、微代碼暫存器、微代碼補丁機制、以及快取記憶體校正機制。此外,本領域技術人員將理解,配置資料的特定值基於資料的特定類型而發生明顯變化。例如,64位元控制電路107可以包括ASCII資料,其規定了用於核心101的序號。另一64位控制暫存器可以具有64種不同的速度設置,僅僅其中的一種被致能用於指定核心101的操作速度。微代碼暫存器108通常可以被初始化為全0(即,邏輯低狀態)或者全1(即,邏輯高狀態)。微代碼補丁元件109可以包括1和0的接近於均勻的分佈,以指示在微代碼ROM(未示出)中的地址以及用於這些地址的替代微代碼值。最後,快取記憶體校正(即,“修補”)機制可以包括1的非常稀疏的設置,以指示替換控制信號來將某些快取記憶體子組元素(即,行或者列)替代為特定的替代子組元素,從而使能對於一個或者多個快取記憶體記憶體的修補。 The above examples are just one of many different uses for configuring fuses in an integrated circuit device such as microprocessor core 101 of FIG. Those skilled in the art will appreciate that other uses for configuring fuses include, but are not limited to, configuration of device-specific data (eg, serial number, unique cryptographic key, architecture mandated data that can be accessed by the user). , speed setting, voltage setting), initialization data, and patch data. For example, many current devices execute microcode and often require initialization of the scratchpad 108 that is read by the microcode. Such initialization data may be provided by a microcode register fuse (not shown) within fuse array 102, which may be read after reset and passed through reset logic 103 (using reset circuit 104) Alternatively, the reset microcode 105, or the two components 104-105), is provided to the microcode register 108. For purposes of the present invention, reset circuit 104 includes hardware components that provide certain types of configuration material that cannot be provided via execution of reset microcode 105. The reset microcode 105 includes a plurality of microinstructions arranged within an internal microcode memory (not shown) that are executed after resetting of the core 101 to perform functions corresponding to initialization of the core 101, including The configuration data read by the fuse array 102 is provided to elements such as the microcode register 108 and the microcode patch component 109. The criteria for whether certain types of profiles provided via fuses can be distributed to various elements 107-110 of core 101 via reset microcode 105 are the primary functions of the particular design of core 101. this invention Not only is there a comprehensive teaching of specific configuration techniques that are employed to initialize integrated circuit devices, as those skilled in the art will appreciate that for current microprocessor cores 101, the types of configurable components 107-110 typically fall into the category. To the four categories as illustrated in Figure 1: control circuitry, microcode registers, microcode patching mechanisms, and cache memory correction mechanisms. Moreover, those skilled in the art will appreciate that the particular value of the configuration data varies significantly based on the particular type of material. For example, the 64-bit control circuit 107 can include ASCII data that specifies the sequence number for the core 101. Another 64-bit control register can have 64 different speed settings, only one of which is enabled to specify the operating speed of the core 101. The microcode register 108 can typically be initialized to all zeros (ie, a logic low state) or all ones (ie, a logic high state). The microcode patch element 109 may include a nearly uniform distribution of 1's and 0's to indicate addresses in the microcode ROM (not shown) and alternate microcode values for those addresses. Finally, the cache memory correction (ie, "patches") mechanism can include a very sparse setting of 1 to indicate replacement control signals to replace certain cache memory subgroup elements (ie, rows or columns) with specific ones. Substituting subgroup elements to enable patching of one or more cache memory.

熔絲陣列102提供用於在製造設備之後配置諸如微處理器核心101之類的設備的極好裝置。透過燒斷在熔絲陣列102中的所選擇的熔絲,核心101可以被配置用於在其所意圖的環境中的操作。然而,本領域技術人員將理解,操作環境可以在對熔絲陣列102進行程式設計之後變化。商業要求可以命令將原始被配置為諸如桌上型電腦設備101的設備101重新配置為移動設備101。因此,設計者已經提供了以下技術:其使 用在熔絲陣列102中的熔絲的冗餘組,以向其中所選擇的熔絲提供“未燒斷”,從而使得設備101能夠被重新配置,並且能夠校正製造錯誤等。現在將參考第2圖來討論這些冗餘陣列技術。 The fuse array 102 provides an excellent means for configuring a device such as the microprocessor core 101 after the device is manufactured. By blowing the selected fuses in the fuse array 102, the core 101 can be configured for operation in its intended environment. However, those skilled in the art will appreciate that the operating environment may vary after the fuse array 102 is programmed. Commercial requirements may command the device 101, originally configured to be configured as a desktop device 101, to be reconfigured as the mobile device 101. Therefore, the designer has provided the following technology: The redundant set of fuses used in the fuse array 102 is provided with "unboiled" to the selected fuse therein, thereby enabling the device 101 to be reconfigured and capable of correcting manufacturing errors and the like. These redundant array techniques will now be discussed with reference to Figure 2.

現在參考第2圖,所呈現的方塊圖200描繪了在包括冗餘熔絲組202 RFB1-RFBN的圖1的微處理器核心101內的熔絲陣列201,所述冗餘熔絲組202 RFB1-RFBN將在燒斷熔絲陣列201內的第一熔絲陣列組202 PFB1-PFBN之後被燒斷。熔絲陣列202 PFB1-PFBN、RFB1-RFBN中的每一個包括與核心101的特定設計相對應的規定數目的單獨的熔絲203。例如,在64位元微處理器核心101中,在給定熔絲組202中的熔絲203的數目可以是64個熔絲203,以便於以容易在核心101中實現的格式來提供配置資料。 Referring now to FIG. 2, a block diagram 200 is presented depicting a fuse array 201 within the microprocessor core 101 of FIG. 1 including redundant fuse sets 202 RFB1-RFBN, the redundant fuse set 202 RFB1 The -RFBN will be blown after the first fuse array group 202 PFB1-PFBN in the fuse array 201 is blown. Each of the fuse arrays 202 PFB1-PFBN, RFB1-RFBN includes a prescribed number of individual fuses 203 corresponding to a particular design of the core 101. For example, in a 64-bit microprocessor core 101, the number of fuses 203 in a given fuse set 202 can be 64 fuses 203 to facilitate providing configuration information in a format that is easily implemented in core 101. .

熔絲陣列201被耦合到暫存器集210-211,所述暫存器集210-211通常被佈置在核心101的重置邏輯內。主暫存器PR1被採用來讀取第一熔絲組PFB1-PFBN中的一個(例如為在視圖200中所示的PFB3),並且冗餘暫存器RR1被採用來讀取冗餘熔絲陣列RFB1-RFBN中的相應一個。暫存器210-211被耦合到生成輸出FB3的互斥邏輯212。 The fuse array 201 is coupled to a register set 210-211, which is typically disposed within the reset logic of the core 101. The main register PR1 is employed to read one of the first fuse sets PFB1-PFBN (for example, PFB3 shown in view 200), and the redundancy register RR1 is employed to read the redundant fuse Corresponding one of the arrays RFB1-RFBN. The registers 210-211 are coupled to mutual exclusion logic 212 that generates an output FB3.

在操作中,在製造核心101之後,利用用於核心101的配置資料,透過已知的技術對第一熔絲組PFB1-PFBN進行程式設計。冗餘熔絲組RFB1-RFBN沒有被燒斷,並且對於其中的所有熔絲保持在邏輯低狀態。在核心101的上電/重置之後,第一熔絲組PFB1-PFBN和冗餘熔絲組RFB1-RFBN這兩者根據配 置的需要而被分別讀取以用於配置到主暫存器和冗餘暫存器210-211。互斥或邏輯212生成輸出FB3,其是暫存器210-211的內容的邏輯互斥或結果。因為所有的冗餘熔絲組沒有被燒斷(即,邏輯低狀態),所以輸出FB3值僅在被製造之後被程式設計到第一熔絲組PFB1-PFBN中。 In operation, after manufacturing the core 101, the first fuse set PFB1-PFBN is programmed by known techniques using configuration information for the core 101. The redundant fuse sets RFB1-RFBN are not blown and remain in a logic low state for all of the fuses therein. After power-on/reset of the core 101, the first fuse set PFB1-PFBN and the redundant fuse set RFB1-RFBN are both The settings are read separately for configuration to the primary and redundant registers 210-211. Mutually exclusive OR logic 212 generates an output FB3, which is a logical exclusive or result of the contents of registers 210-211. Since all of the redundant fuse sets are not blown (ie, logic low state), the output FB3 value is programmed into the first fuse set PFB1-PFBN only after being fabricated.

然而,現在考慮的是,設計或者商業要求命令被程式設計到第一熔絲組PFB1-PFBN中的一些資訊需要改變。因此,執行程式設計操作,以燒斷在冗餘熔絲組RFB1-RFBN內的相應熔絲203,以便改變在上電時讀取的資訊。透過在所選擇的冗餘組RFB1-RFBN中燒斷熔絲203,在主(primary)熔絲組PFB1-PFBN中的相應熔絲203的值被邏輯上取補數。 However, it is now considered that some of the information that the design or commercial requirements command is programmed into the first fuse set PFB1-PFBN needs to be changed. Therefore, a programming operation is performed to blow the respective fuses 203 in the redundant fuse sets RFB1-RFBN to change the information read at power-on. By blowing the fuse 203 in the selected redundancy group RFB1-RFBN, the values of the respective fuses 203 in the primary fuse sets PFB1-PFBN are logically complemented.

第2圖的機制可以被採用來提供對在設備101內的熔絲203的“重新燒斷”,但是本領域技術人員將理解,給定的熔絲203僅僅可以被重新燒斷一次,因為僅僅存在一組冗餘熔絲組RFB1-RFBN。為了提供額外的重新燒斷,相應數量的額外的熔絲組202和暫存器210-211必須被添加到部件101中。 The mechanism of Figure 2 can be employed to provide "re-blow" of the fuse 203 within the device 101, but those skilled in the art will appreciate that a given fuse 203 can only be re-battered once because only There is a set of redundant fuse sets RFB1-RFBN. In order to provide additional re-blow, a corresponding number of additional fuse sets 202 and registers 210-211 must be added to component 101.

至此,以上參考第1-2圖來討論的熔絲陣列機制已經提供了足夠的靈活度以足以配置微處理器核心以及其它相關的設備,同時還允許受限制次數的重新燒斷。這主要是因為以下事實:之前的製造技術,例如65奈米以及45奈米工藝允許在晶粒上的足夠的實際資源,以實現足夠的熔絲來提供對於在晶粒上佈置的核心101的配置。然而,本發明人已經觀察到,由於兩個重要的因素而導致當前的技術在向前發展時受到限制。首先,在本領域中的趨勢是將多個設備核心101佈置在單 個晶粒上,以增加處理性能。這些所謂的多核設備可以包括例如,2-16個單獨的核心101,其中的每一個必須在上電/重置之後利用熔絲資料來配置。因此,對於4核設備,需要四個熔絲陣列201,因為與單獨的核心相關聯的一些資料可能會變化(例如,快取記憶體校正資料、冗餘熔絲資料等)。其次,本領域技術人員將理解,隨著製造工藝技術縮小為例如,32奈米,在電晶體大小因此縮小的同時,熔絲大小增加,從而需要更多晶粒的實際資源,以相對於在45奈米的晶粒上,在32奈米的晶粒上實現相同大小的熔絲陣列。 To this end, the fuse array mechanism discussed above with reference to Figures 1-2 has provided sufficient flexibility to configure the microprocessor core and other associated devices while still allowing a limited number of re-blows. This is mainly due to the fact that previous manufacturing techniques, such as the 65 nm and 45 nm processes, allowed sufficient practical resources on the die to achieve sufficient fuses to provide core 101 for placement on the die. Configuration. However, the inventors have observed that current technologies are limited in their advancement due to two important factors. First, a trend in the art is to place multiple device cores 101 in a single On the die to increase processing performance. These so-called multi-core devices may include, for example, 2-16 individual cores 101, each of which must be configured with fuse data after power up/reset. Thus, for a 4-core device, four fuse arrays 201 are required because some of the data associated with the individual cores may vary (eg, cache memory correction data, redundant fuse data, etc.). Secondly, those skilled in the art will appreciate that as the manufacturing process technology shrinks to, for example, 32 nm, as the transistor size shrinks, the fuse size increases, requiring more physical resources of the die to be relative to On the 45 nm grain, a fuse array of the same size was realized on a 32 nm die.

以上的兩個限制以及其它的限制對設備設計者,更具體地對於多核設備設計者提出了巨大的挑戰,並且本發明人注意到,依據本發明可以實現對於傳統設備的配置機制上的顯著改進,其允許對於在多核設備中的單獨的核心進行程式設計,以及明顯增加了快取記憶體糾錯和熔絲重新程式設計(“重新燒斷”)元件。現在將參考第3-11圖來討論本發明。 The above two limitations, as well as other limitations, present significant challenges for device designers, and more specifically for multi-core device designers, and the inventors have noted that significant improvements in the configuration mechanism for conventional devices can be achieved in accordance with the present invention. It allows for programming of individual cores in multi-core devices, as well as significantly increased cache memory error correction and fuse reprogramming ("reboil") components. The invention will now be discussed with reference to Figures 3-11.

參考第3圖,所呈現的方塊圖的特徵在於根據本發明的系統300,其提供對多核設備的配置/修補資料的壓縮和解壓縮。多核設備包括被佈置在晶粒330上的多個核心332。雖然本發明設想到在晶粒330上佈置的各種數量的核心332,但是出於示例性的目的,在晶粒330上描繪了四個核心332。在一個實施例中,所有核心332共用也被佈置在晶粒330上的單個快取記憶體記憶體334。單個可程式設計的物理熔絲陣列336也被佈置在晶粒330上,並且核心332中的每一個被配置為存取熔絲陣列336,以在上電/重置期間檢索和解壓縮如上所述的配置資料。 Referring to Figure 3, the block diagram presented is characterized by a system 300 in accordance with the present invention that provides compression and decompression of configuration/repair data for a multi-core device. The multi-core device includes a plurality of cores 332 that are disposed on the die 330. Although the present invention contemplates various numbers of cores 332 disposed on die 330, four cores 332 are depicted on die 330 for exemplary purposes. In one embodiment, all of the cores 332 share a single cache memory 334 that is also disposed on the die 330. A single programmable physical fuse array 336 is also disposed on the die 330, and each of the cores 332 is configured to access the fuse array 336 for retrieval and decompression during power up/reset as described above Configuration information.

在一個實施例中,核心332包括被配置為多核微處理器330的微處理器核心。在另一個實施例中,多核微處理器330被配置為X86相容的多核微處理器。在又一個實施例中,快取記憶體334包括與微處理器核心332相關聯的2級(L2)快取記憶體334。在一個實施例中,雖然其它數量的熔絲也被設想到,但是熔絲陣列336包括8192(8K)個單獨的熔絲(未示出)。在單核的實施例中,僅僅一個核心332被佈置在晶粒330上,並且核心332被耦合到快取記憶體334以及物理熔絲陣列336。本發明人注意到,雖然在下文中將在多核設備330的背景下來討論本發明的特徵和功能,但是這些特徵和功能也可以同樣地應用到單核心實施例中。 In one embodiment, core 332 includes a microprocessor core configured as a multi-core microprocessor 330. In another embodiment, the multi-core microprocessor 330 is configured as an X86 compatible multi-core microprocessor. In yet another embodiment, cache memory 334 includes level 2 (L2) cache memory 334 associated with microprocessor core 332. In one embodiment, the fuse array 336 includes 8192 (8K) individual fuses (not shown), although other numbers of fuses are also contemplated. In a single core embodiment, only one core 332 is disposed on die 330 and core 332 is coupled to cache memory 334 and physical fuse array 336. The inventors have noted that while the features and functions of the present invention will be discussed below in the context of multi-core device 330, these features and functions can be equally applied to a single core embodiment.

系統300還包括設備程式設計器310,其包括耦合到虛擬熔絲陣列303的壓縮器320。在一個實施例中,設備程式設計器310可以包括CPU(未示出),其被配置為處理配置資料,以及根據公知的程式設計技術來在晶粒330的製造之後對熔絲陣列336進行程式設計。CPU可以被集成到被採用來在製造之後測試設備晶粒330的晶片測試裝置中。在一個實施例中,壓縮器320可以包括在設備程式設計器310上執行的應用程式,並且虛擬熔絲陣列303可以包括由壓縮器320存取的記憶體內的位置。虛擬熔絲陣列303包括多個虛擬熔絲組301,其中的每一個包括多個虛擬熔絲302。在一個實施例中,虛擬熔絲陣列303包括128個虛擬熔絲組301,其中的每一個包括64個虛擬熔絲302,從而產生在大小上為8Kb的虛擬陣列303。 System 300 also includes a device programmer 310 that includes a compressor 320 coupled to a virtual fuse array 303. In one embodiment, device programmer 310 can include a CPU (not shown) configured to process configuration data and to program fuse array 336 after fabrication of die 330 in accordance with well-known programming techniques. design. The CPU can be integrated into a wafer test apparatus that is employed to test the device die 330 after fabrication. In one embodiment, the compressor 320 can include an application executing on the device programmer 310, and the virtual fuse array 303 can include locations within the memory accessed by the compressor 320. The virtual fuse array 303 includes a plurality of virtual fuse sets 301, each of which includes a plurality of virtual fuses 302. In one embodiment, virtual fuse array 303 includes 128 virtual fuse sets 301, each of which includes 64 virtual fuses 302, resulting in a virtual array 303 that is 8 Kb in size.

操作上,晶粒330的配置資訊被輸入到虛擬熔絲陣 列303中來作為製造工藝中的一部分,並且其如以上參考第1圖所描述的一樣。因此,配置資訊包括控制電路配置資料、用於微代碼暫存器的初始化資料、微代碼補丁資料、以及快取記憶體校正資料。此外,如上所述,與資料類型中的每一個相關聯的值的分佈根據類型而明顯不同。虛擬熔絲陣列303是包括用於在晶粒330上的每個微處理器核心332的配置資訊,以及用於在晶粒330上的每個快取記憶體334的校正資料的熔絲陣列(未示出)的邏輯表示。 Operationally, the configuration information of the die 330 is input to the virtual fuse array. Column 303 is included as part of the manufacturing process and is as described above with reference to Figure 1. Therefore, the configuration information includes control circuit configuration data, initialization data for the microcode register, microcode patch data, and cache memory correction data. Furthermore, as described above, the distribution of values associated with each of the material types differs significantly depending on the type. The virtual fuse array 303 is a fuse array including configuration information for each of the microprocessor cores 332 on the die 330, and correction data for each cache memory 334 on the die 330 ( A logical representation of not shown).

在資訊被輸入到虛擬熔絲陣列303中之後,壓縮器320讀取在每個虛擬熔絲組301中的虛擬熔絲302的狀態,並且使用與每個資料類型相對應的不同的壓縮演算法來壓縮資訊,以表現(render)壓縮的熔絲陣列資料303。在一個實施例中,控制電路的系統資料沒有被壓縮,而是在沒有壓縮的情況下被傳輸。為了壓縮微代碼暫存器資料,微代碼暫存器資料壓縮演算法被採用,其對於壓縮具有對應於微代碼暫存器資料的狀態分佈的資料是有效的。為了壓縮微代碼補丁資料,微代碼補丁資料壓縮演算法被採用,其對於壓縮具有對應於微代碼補丁資料的狀態分佈的資料是有效的。為了壓縮快取記憶體校正資料,快取記憶體校正資料壓縮演算法被採用,其對於壓縮具有對應於快取記憶體校正資料的狀態分佈的資料是有效的。 After the information is input into the virtual fuse array 303, the compressor 320 reads the state of the virtual fuse 302 in each of the virtual fuse sets 301, and uses a different compression algorithm corresponding to each data type. The information is compressed to render the compressed fuse array data 303. In one embodiment, the system data of the control circuit is not compressed, but is transmitted without compression. To compress the microcode register data, a microcode scratchpad data compression algorithm is employed which is effective for compressing data having a state distribution corresponding to the microcode register data. In order to compress the microcode patch data, a microcode patch data compression algorithm is employed which is effective for compressing data having a state distribution corresponding to the microcode patch material. In order to compress the cache memory correction data, a cache memory correction data compression algorithm is employed which is effective for compressing data having a state distribution corresponding to the cache memory correction data.

設備程式設計器310然後將未壓縮的和壓縮的熔絲陣列資料程式設計到晶粒330上的物理熔絲陣列336中。 Device programmer 310 then programs the uncompressed and compressed fuse array data into physical fuse array 336 on die 330.

在上電/重置之後,每個核心332可以存取物理熔絲陣列336,以檢索未壓縮和壓縮的熔絲陣列資料,並且佈置在 每個核心332內的重置電路/微代碼(未示出)分佈未壓縮的熔絲陣列資料,並且根據與以上記錄的資料類型中的每一個相對應的不同的解壓縮演算法來解壓縮壓縮的熔絲陣列資料,以表現原始輸入到虛擬熔絲陣列303的值。重置電路/微代碼然後將配置資訊輸入到控制電路(未示出)、微代碼暫存器(未示出)、補丁元件(未示出)、以及快取記憶體校正元件(未示出)中。 After power up/reset, each core 332 can access physical fuse array 336 to retrieve uncompressed and compressed fuse array data and is placed The reset circuit/microcode (not shown) within each core 332 distributes the uncompressed fuse array data and decompresses according to different decompression algorithms corresponding to each of the above recorded data types. The compressed fuse array data is used to represent the value originally input to the virtual fuse array 303. The reset circuit/microcode then inputs configuration information to a control circuit (not shown), a microcode register (not shown), a patch component (not shown), and a cache memory correction component (not shown) )in.

有利的是,根據本發明的熔絲陣列壓縮系統300使得設備設計者能夠相對于迄今已經提供的技術而言在物理熔絲陣列336中採用明顯更少數量的熔絲,並且使用在其中程式設計的壓縮資訊來在上電/重置期間配置多核設備330。 Advantageously, the fuse array compression system 300 in accordance with the present invention enables a device designer to employ a significantly smaller number of fuses in the physical fuse array 336 relative to the techniques that have been provided to date, and to use programming therein. The compression information is used to configure the multi-core device 330 during power up/reset.

現在參考第4圖,所呈現的方塊圖400示出了根據本發明的熔絲解壓縮機制。解壓縮機制可以被設置在第3圖的每一個微處理器核心332中。出於清楚地教導本發明的目的,在第4圖中僅僅描繪了一個核心420,並且在晶粒上佈置的核心332中的每一個包括與所示的核心420基本上等價的元件。被如上所述地佈置在晶粒上的物理熔絲陣列401耦合到核心420。物理熔絲陣列401包括壓縮的微代碼補丁熔絲403、壓縮的暫存器熔絲404、壓縮的快取記憶體校正熔絲405、以及壓縮的熔絲校正熔絲406。物理熔絲陣列401還可以包括諸如如上所討論的系統組態資料(未示出)和/或塊錯誤檢查和校正(ECC)代碼(未示出)之類的未壓縮的配置資料。以下將更詳細地描述根據本發明的ECC特徵所包含的內容。 Referring now to Figure 4, a block diagram 400 is presented showing a fuse decompression mechanism in accordance with the present invention. The decompression mechanism can be placed in each of the microprocessor cores 332 of FIG. For the purpose of clearly teaching the present invention, only one core 420 is depicted in FIG. 4, and each of the cores 332 disposed on the die includes elements that are substantially equivalent to the core 420 shown. A physical fuse array 401 disposed on the die as described above is coupled to the core 420. The physical fuse array 401 includes a compressed microcode patch fuse 403, a compressed scratchpad fuse 404, a compressed cache memory correction fuse 405, and a compressed fuse correction fuse 406. Physical fuse array 401 may also include uncompressed configuration material such as system configuration data (not shown) and/or block error checking and correction (ECC) code (not shown) as discussed above. The content contained in the ECC feature according to the present invention will be described in more detail below.

微處理器核心420包括重置控制器417,其接收在核心420的上電之後並且回應於使得核心420啟動重置序列步 驟的事件而被致能的重置信號RESET。重置控制器417包括解壓縮器421。解壓縮器421具有補丁熔絲元件408、暫存器熔絲元件409、以及快取記憶體熔絲元件410。解壓縮器421還包括熔絲校正元件411,其經由匯流排412而被耦合到補丁熔絲元件408、暫存器熔絲元件409、以及快取記憶體熔絲元件410。補丁熔絲元件408被耦合到在核心420中的微代碼補丁元件414。暫存器熔絲元件409被耦合到在核心420中的微代碼暫存器415。並且快取記憶體熔絲元件410被耦合到核心420中的快取記憶體校正元件416。在一個實施例中,快取記憶體校正元件416被佈置在晶粒上的L2快取記憶體(未示出)內,所述L2快取記憶體被諸如圖3的快取記憶體334之類的所有核心420共用。另一個實施例設想到快取記憶體校正元件416被佈置在核心420內的L1快取記憶體(未示出)內。另一個實施例考慮到快取記憶體校正元件416被佈置來校正上述的L2和L1快取記憶體這兩者。其它的實施例設想到快取記憶體校正元件416被佈置在多個核心上以及不在核心上。 Microprocessor core 420 includes a reset controller 417 that receives power-up after core 420 and responds to causing core 420 to initiate a reset sequence step The reset signal RESET is enabled for the event. The reset controller 417 includes a decompressor 421. The decompressor 421 has a patch fuse element 408, a register fuse element 409, and a cache memory fuse element 410. The decompressor 421 also includes a fuse correction component 411 that is coupled via a bus bar 412 to a patch fuse component 408, a scratchpad fuse component 409, and a cache memory fuse component 410. Patch fuse element 408 is coupled to microcode patch element 414 in core 420. Register fuse element 409 is coupled to microcode register 415 in core 420. And the cache memory fuse element 410 is coupled to the cache memory correction component 416 in the core 420. In one embodiment, the cache memory correction component 416 is disposed within an L2 cache memory (not shown) on the die, such as the cache memory 334 of FIG. All cores 420 of the class are shared. Another embodiment contemplates that the cache memory correction component 416 is disposed within an L1 cache (not shown) within the core 420. Another embodiment contemplates that the cache memory correction component 416 is arranged to correct both of the L2 and L1 cache memories described above. Other embodiments contemplate that the cache memory correction component 416 is disposed on multiple cores and not on the core.

在操作中,在致能重置信號RESET之後,重置控制器417讀取在物理熔絲陣列410中的熔絲403-406的狀態,並且將壓縮的系統熔絲(未示出)的狀態分佈到解壓縮器421上。在已經讀取和分佈熔絲資料之後,解壓縮器421的熔絲校正元件411對壓縮的熔絲校正熔絲406狀態進行解壓縮,以表現指示在物理熔絲陣列401中的、其狀態要從之前程式設計的狀態發生變化的一個或者多個熔絲位址的資料。解壓縮的所述資料還包括一個或者多個熔絲位址中的每一個的值。所述一個或者多 個熔絲位址(以及可選值)經由匯流排412被傳送到元件408-410,以使得在其中處理的相應熔絲的狀態在對其相應的壓縮資料進行解壓縮之前發生變化。 In operation, after enabling the reset signal RESET, the reset controller 417 reads the state of the fuses 403-406 in the physical fuse array 410 and the state of the compressed system fuse (not shown). It is distributed to the decompressor 421. After the fuse data has been read and distributed, the fuse correction component 411 of the decompressor 421 decompresses the state of the compressed fuse correction fuse 406 to represent the state indicated in the physical fuse array 401. Data from one or more fuse addresses that have changed from the state of the previous programming. The decompressed data also includes values for each of one or more fuse addresses. One or more The fuse addresses (and optional values) are transmitted via bus 412 to components 408-410 such that the state of the respective fuses processed therein changes prior to decompressing their respective compressed data.

在一個實施例中,補丁熔絲元件408包括如下的微代碼:其進行操作來根據與如上參考第3圖所述的微代碼補丁壓縮演算法相對應的微代碼補丁解壓縮演算法來對壓縮的微代碼補丁熔絲403的狀態進行解壓縮。在一個實施例中,暫存器熔絲元件409包括如下的微代碼:其進行操作來根據與如上參考第3圖所述的暫存器熔絲壓縮演算法相對應的暫存器熔絲解壓縮演算法來對壓縮的暫存器熔絲404的狀態進行解壓縮。在一個實施例中,快取記憶體熔絲元件410包括如下的微代碼:其進行操作來根據與如上參考第3圖所述的快取記憶體校正熔絲壓縮演算法相對應的快取記憶體校正熔絲解壓縮演算法來對壓縮的快取記憶體校正熔絲405的狀態進行解壓縮。在元件408-410中的每一個改變其位址(和可選值)被經由匯流排412從熔絲校正元件411提供的任何熔絲的狀態之後,其各自的資料被根據所採用的相應演算法解壓縮。如將在以下更詳細地描述地,本發明設想到在由元件408-411中的任何一個執行的解壓縮過程的初始化之前的在物理熔絲陣列內的任何熔絲位址的多次“重新燒斷”。在一個實施例中,匯流排412可以包括被採用來在其中的各個常式之間傳輸資料的傳統的微代碼程式設計機制。本發明進一步設想到具有基於其特定的類型而識別和解壓縮配置資料的能力的綜合(comprehensive)解壓縮器421。因此,雖然所陳述的在解壓縮器421內的元件408-411被 呈現,以便教導本領域的相關方面,然而,所設想的本發明的實現方式可以並不必須包括不同的元件408-411,而是包括綜合解壓縮器421,其提供了與上述的每個元件408-411相對應的功能。 In one embodiment, patch fuse element 408 includes microcode that operates to compress a microcode patch decompression algorithm corresponding to the microcode patch compression algorithm described above with reference to FIG. The state of the microcode patch fuse 403 is decompressed. In one embodiment, the register fuse element 409 includes microcode that operates to decompress the register fuse according to the register fuse compression algorithm as described above with reference to FIG. The algorithm decompresses the state of the compressed scratchpad fuse 404. In one embodiment, the cache memory fuse element 410 includes microcode that operates to operate in accordance with a cache memory corresponding to the cache memory correction fuse compression algorithm described above with reference to FIG. The fuse decompression algorithm is calibrated to decompress the state of the compressed cache memory correction fuse 405. After each of the elements 408-410 changes its address (and optional value) by the state of any fuse provided from the fuse correction element 411 via the bus bar 412, its respective data is calculated according to the corresponding calculation The solution is decompressed. As will be described in more detail below, the present invention contemplates multiple "re-reviews of any fuse address within the physical fuse array prior to initialization of the decompression process performed by any of the components 408-411. Blow out." In one embodiment, bus 412 may include conventional microcode programming mechanisms employed to transfer data between various routines therein. The present invention further contemplates a comprehensive decompressor 421 having the ability to identify and decompress configuration data based on its particular type. Thus, although the elements 408-411 stated in the decompressor 421 are Presented to teach relevant aspects of the art, however, contemplated implementations of the present invention may not necessarily include different elements 408-411, but instead include a comprehensive decompressor 421 that provides each of the elements described above 408-411 corresponding function.

在一個實施例中,重置控制器417初始化在補丁熔絲元件408內的微代碼的執行,以對壓縮的微代碼補丁熔絲403的狀態進行解壓縮。重置控制器417還初始化在暫存器熔絲元件409內的微代碼的執行,以對壓縮的暫存器熔絲404的狀態進行解壓縮。並且重置控制器417進一步發起在快取記憶體熔絲元件410內的微代碼的執行,以對壓縮的快取記憶體校正熔絲405的狀態進行解壓縮。在解壓縮器421內的微代碼還進行操作來在對壓縮的資料進行解壓縮之前,改變由壓縮的熔絲校正熔絲406提供的熔絲校正資料所定址的任何熔絲的狀態。 In one embodiment, reset controller 417 initializes execution of microcode within patch fuse element 408 to decompress the state of compressed microcode patch fuse 403. The reset controller 417 also initializes the execution of the microcode within the scratchpad fuse element 409 to decompress the state of the compressed register fuse 404. And reset controller 417 further initiates execution of the microcode within cache memory fuse element 410 to decompress the state of compressed cache memory correction fuse 405. The microcode within decompressor 421 is also operative to change the state of any fuse addressed by the fuse correction data provided by compressed fuse correction fuse 406 prior to decompressing the compressed material.

根據本發明的重置控制器417、解壓縮器421、以及在其中的元件408-411被配置為執行如上所討論的功能和操作。重置控制器417、解壓縮器421、以及在其中的元件408-411可以包括邏輯、電路、設備、或者微代碼,或者邏輯、電路、設備、或者微代碼的組合,或者被採用來執行根據所記錄的本發明的功能和操作的等價元件。被採用來完成在重置控制器417、解壓縮器421、以及在其中的元件408-411內的這些操作和功能的元件可以透過被採用來執行在重置控制器417、解壓縮器421、以及在其中的元件408-411內的其它功能和/或操作的其它電路、微代碼等來共用,或者透過在核心420內的其它元件來共用。 The reset controller 417, decompressor 421, and elements 408-411 therein are configured to perform the functions and operations discussed above in accordance with the present invention. The reset controller 417, the decompressor 421, and the elements 408-411 therein may include logic, circuitry, devices, or microcode, or a combination of logic, circuitry, devices, or microcode, or employed to perform The equivalents of the functions and operations of the present invention are recorded. Elements that are employed to perform these operations and functions within reset controller 417, decompressor 421, and elements 408-411 therein may be employed to execute at reset controller 417, decompressor 421, Other circuitry, microcode, etc., of other functions and/or operations within elements 408-411 are shared, or shared by other components within core 420.

在物理熔絲陣列401內的熔絲403-406的狀態已經被改變和解壓縮之後,解壓縮的“虛擬”熔絲的狀態然後被適當地傳送到微代碼補丁元件414、微代碼暫存器415、以及快取記憶體校正元件416。因此,核心420被配置用於在重置序列完成之後的操作。 After the states of fuses 403-406 within physical fuse array 401 have been changed and decompressed, the state of the decompressed "virtual" fuses is then appropriately transferred to microcode patch component 414, microcode register 415. And a cache memory correction component 416. Thus, core 420 is configured for operation after the reset sequence is completed.

本發明人注意到,以上所討論的解壓縮功能不需要在重置序列期間以特定順序來執行。例如,微代碼補丁可以在微代碼暫存器初始化資料的解壓縮之後被解壓縮。同樣,解壓縮功能可以並行地執行,或者以適合於滿足設計限制的順序來執行。 The inventors have noted that the decompression functions discussed above do not need to be performed in a particular order during the reset sequence. For example, a microcode patch can be decompressed after decompression of the microcode register initialization data. Likewise, the decompression functions can be performed in parallel or in an order suitable to meet design constraints.

此外,本發明人注意到元件408-411的實現方式不需要以微代碼相對於硬體電路來實現,因為典型的微處理器核心420中存在相對於直接透過微代碼來寫入而言,能夠更容易地經由硬體(例如,與快取記憶體相關聯的掃描鏈)來初始化的核心420的元件。這樣的實現方式的細節將留給設計者來判斷。然而,本發明人提交的是,現有技術教導了在對微代碼的執行初始化之前的重置期間,快取記憶體校正熔絲傳統地被硬體電路讀取並且被輸入到快取記憶體校正掃描鏈中,並且本發明的特徵在於在與硬體控制電路相對的微代碼中實現快取記憶體熔絲元件410,因為核心的快取記憶體通常直到微代碼運行時才會被開啟。透過使用微代碼來執行快取記憶體熔絲元件410,提供了更加靈活且先進的機制來將快取記憶體校正資料登錄到掃描鏈中,並且顯著地節省了硬體。 Moreover, the inventors have noted that the implementation of elements 408-411 need not be implemented in microcode relative to hardware circuitry, as typical microprocessor cores 420 can be written relative to direct microcode. The elements of the core 420 are more easily initialized via hardware (eg, a scan chain associated with the cache memory). The details of such an implementation will be left to the designer to judge. However, the inventors have submitted that the prior art teaches that during a reset prior to the initialization of the execution of the microcode, the cache memory correction fuse is conventionally read by the hardware circuit and input to the cache memory correction. In the scan chain, and the invention is characterized in that the cache memory fuse element 410 is implemented in microcode as opposed to the hardware control circuitry, since the core cache memory is typically not turned on until the microcode is run. Executing the memory fuse element 410 by using microcode provides a more flexible and advanced mechanism for logging cache memory correction data into the scan chain and significantly saving hardware.

現在將參考第5圖,呈現的方塊圖圖示了根據本發 明的用於壓縮的配置資料500的示例性格式。壓縮的配置資料500由圖3的壓縮器320從駐留在虛擬熔絲陣列303中的資料來壓縮,並且被程式設計(即,“燒斷”)到多核設備330的物理熔絲陣列336中。在如上所述的重置序列期間,壓縮的配置資料500被核心332中的每一個從物理熔絲陣列336中檢索,並且由在每個核心420內的解壓縮器421的元件408-411解壓縮和校正。解壓縮和校正的配置資料然後被提供給核心420內的各種元件414-416,以初始化核心420來進行操作。 Referring now to Figure 5, the block diagram presented is illustrated in accordance with the present invention. An exemplary format of a configuration profile 500 for compression. The compressed configuration data 500 is compressed by the compressor 320 of FIG. 3 from the data residing in the virtual fuse array 303 and is programmed (ie, "burned") into the physical fuse array 336 of the multi-core device 330. During the reset sequence as described above, the compressed configuration data 500 is retrieved from the physical fuse array 336 by each of the cores 332 and resolved by elements 408-411 of the decompressor 421 within each core 420. Compression and correction. The decompressed and corrected configuration data is then provided to various elements 414-416 within core 420 to initialize core 420 for operation.

壓縮的配置資料500包括用於如上所討論的配置資料類型中的每一個的一個或者多個壓縮的資料欄位(D)502,並且其通過類型結尾(end-of-type)欄位(ET)503來劃界。程式設計事件(即,“燒斷”)通過燒斷結尾(end-of-blow)欄位(EB)504來劃界。與資料類型中的每一個相關聯的壓縮的資料欄位502根據被最優化來使得用於儲存與資料類型中的每一個相關聯的特定位元模式所需的位元(即,熔絲)數最小化的壓縮演算法來進行編碼。在形成壓縮的資料欄位502中的每一個的物理熔絲陣列336中的熔絲數量是被採用來用於特定資料類型的壓縮演算法的函數。例如,考慮包括64個64位微代碼暫存器的核心,所述64位微代碼暫存器必須被初始化為例如,全1或者全0。可以採用優化的壓縮演算法來針對資料類型產生64個壓縮的資料欄位502,其中壓縮的資料欄位502中的每一個包括用於特定微代碼暫存器的初始化資料,其中壓縮的資料欄位502以暫存器編號順序來規定(即,1-64)。壓縮的資料欄位502中的每一個包括單個熔絲,如果相應的微代碼暫存器被初始化 為全1,則其被燒斷,而如果相應的微代碼暫存器被初始化為全0,則其不被燒斷。 The compressed profile 500 includes one or more compressed data fields (D) 502 for each of the profile types discussed above, and which pass an end-of-type field (ET) ) 503 to demarcate. The programming event (ie, "burn") is delimited by an end-of-blow field (EB) 504. The compressed data field 502 associated with each of the data types is optimized to cause the bits (ie, fuses) required to store a particular bit pattern associated with each of the data types. The number is minimized by a compression algorithm for encoding. The number of fuses in the physical fuse array 336 forming each of the compressed data fields 502 is a function of the compression algorithm employed for a particular data type. For example, consider a core that includes 64 64-bit microcode scratchpads that must be initialized to, for example, all ones or all zeros. An optimized compression algorithm can be employed to generate 64 compressed data fields 502 for the data type, wherein each of the compressed data fields 502 includes initialization data for a particular microcode register, where the compressed data field Bits 502 are specified in the order of the register number (ie, 1-64). Each of the compressed data fields 502 includes a single fuse if the corresponding microcode register is initialized If it is all 1, it is blown, and if the corresponding microcode register is initialized to all 0s, it is not blown.

在核心420中的解壓縮器421的元件408-410被配置為使用類型結尾欄位503來確定其各自的壓縮資料位於物理熔絲陣列336內的何處,並且熔絲校正元件411被配置為使用燒斷結尾欄位504來在初始程式設計事件之後定位已經被程式設計的(即,燒斷)的壓縮的熔絲校正資料。如將在下文中更詳細地討論的,本發明的特徵在於在物理熔絲陣列336中提供大量的備用熔絲,以允許可觀的後續程式設計事件。 Elements 408-410 of decompressor 421 in core 420 are configured to use type end field 503 to determine where their respective compressed data is located within physical fuse array 336, and fuse correction element 411 is configured to The burnout end field 504 is used to locate the compressed fuse correction data that has been programmed (ie, blown) after the initial programming event. As will be discussed in more detail below, the present invention features the provision of a large number of spare fuses in the physical fuse array 336 to allow for substantial subsequent programming events.

呈現以上所討論的示例性壓縮類型格式,以清楚地教導與配置資料的壓縮和解壓縮相關聯的本發明的方面。然而,對特定資料類型進行壓縮、劃界的形式,以及在熔絲陣列401內要被壓縮的資料的數量和類型不意圖被限於圖5的示例。其它的數位、類型、和格式被設想到,其允許使本發明適應於本領域存在的各種設備和架構。 The exemplary compression type format discussed above is presented to clearly teach aspects of the invention associated with compression and decompression of configuration data. However, the form of compression, demarcation of a particular data type, and the amount and type of material to be compressed within the fuse array 401 are not intended to be limited to the example of FIG. Other digits, types, and formats are contemplated which allow the invention to be adapted to the various devices and architectures that exist in the art.

現在參考第6圖,所呈現的方塊圖圖示了根據本發明的用於解壓縮的微代碼補丁配置資料600的示例性格式。在重置序列期間,壓縮的微代碼補丁配置資料被每個核心420從物理熔絲陣列401中讀取。然後,根據經由匯流排412提供的熔絲校正資料來校正壓縮的微代碼補丁配置資料。然後,由補丁熔絲元件408對經校正的壓縮的微代碼補丁配置資料進行解壓縮。解壓縮過程的結果是解壓縮的微代碼補丁配置資料600。資料600包括與在需要初始化資料的核心420內的微代碼補丁元件414的數量相對應的多個解壓縮的資料塊604。每個解壓縮 的資料塊604包括核心位址欄位601、微代碼ROM地址欄位602、以及微代碼補丁資料欄位603。欄位601-603的大小是核心架構的函數。作為解壓縮過程的一部分,補丁熔絲元件408生成用於初始化微代碼補丁元件414所需的目標資料的完整圖像。在微代碼補丁配置資料600的解壓縮之後,傳統的分佈機制可以被採用來將資料603分佈到微代碼補丁元件414中的相應定址的核心以及微代碼ROM替代電路/暫存器。 Referring now to Figure 6, a block diagram is presented illustrating an exemplary format of a microcode patch configuration material 600 for decompression in accordance with the present invention. The compressed microcode patch configuration material is read from the physical fuse array 401 by each core 420 during the reset sequence. The compressed microcode patch configuration data is then corrected based on the fuse correction data provided via bus bar 412. The corrected compressed microcode patch configuration data is then decompressed by patch fuse element 408. The result of the decompression process is the decompressed microcode patch configuration material 600. The data 600 includes a plurality of decompressed data blocks 604 corresponding to the number of microcode patch elements 414 within the core 420 that require initialization data. Each decompression The data block 604 includes a core address field 601, a microcode ROM address field 602, and a microcode patch data field 603. The size of fields 601-603 is a function of the core architecture. As part of the decompression process, patch fuse element 408 generates a complete image of the target material needed to initialize microcode patch component 414. After decompression of the microcode patch configuration material 600, a conventional distribution mechanism can be employed to distribute the data 603 to the corresponding addressed cores in the microcode patch component 414 as well as the microcode ROM replacement circuitry/scratchpad.

現在參考第7圖,所呈現的方塊圖描繪了根據本發明的用於解壓縮的微代碼暫存器配置資料700的示例性格式。在重置序列期間,壓縮的微代碼暫存器配置資料由每個核心420從物理熔絲陣列401中讀取。然後根據經由匯流排412提供的熔絲校正資料來校正壓縮的微代碼暫存器配置資料。然後,經校正的壓縮的微代碼暫存器配置資料被暫存器熔絲元件409解壓縮。解壓縮過程的結果是解壓縮的微代碼暫存器配置資料700。資料700包括與在需要初始化資料的核心420內的微代碼暫存器415的數量相對應的多個解壓縮的資料塊704。每個解壓縮的資料塊704包括核心位址欄位701、微代碼暫存器位址欄位702、以及微代碼暫存器資料欄位703。欄位701-703的大小是核心架構的函數。作為解壓縮過程的一部分,暫存器熔絲元件409生成用於初始化微代碼暫存器415所需的目標資料的完整圖像。在微代碼暫存器配置資料700的解壓縮之後,傳統的分佈機制可以被採用來將資料703分佈到相應定址的核心和微代碼暫存器415。 Referring now to Figure 7, a block diagram is presented depicting an exemplary format of a microcode register configuration profile 700 for decompression in accordance with the present invention. During the reset sequence, the compressed microcode register configuration data is read by each core 420 from the physical fuse array 401. The compressed microcode register configuration data is then corrected based on the fuse correction data provided via bus bar 412. The corrected compressed microcode register configuration data is then decompressed by the register fuse element 409. The result of the decompression process is the decompressed microcode register configuration data 700. The data 700 includes a plurality of decompressed data blocks 704 corresponding to the number of microcode registers 415 within the core 420 that require initialization data. Each decompressed data block 704 includes a core address field 701, a microcode register address field 702, and a microcode register data field 703. The size of fields 701-703 is a function of the core architecture. As part of the decompression process, the scratchpad fuse element 409 generates a complete image of the target material needed to initialize the microcode register 415. After decompression of the microcode register configuration data 700, a conventional distribution mechanism can be employed to distribute the data 703 to the corresponding addressed core and microcode registers 415.

現在參考第8圖,所呈現的方塊圖的特徵在於根據 本發明的用於解壓縮的快取記憶體校正資料800的示例性格式。在重置序列期間,壓縮的快取記憶體校正資料被每個核心420從物理熔絲陣列401中讀取。然後根據經由匯流排412提供的熔絲校正資料來校正壓縮的快取記憶體校正資料。然後,經校正的壓縮的快取記憶體校正資料被快取記憶體熔絲元件410解壓縮。解壓縮過程的結果是經解壓縮的快取記憶體校正資料800。在多核處理器330中可以採用各種快取記憶體機制,並且解壓縮的快取記憶體校正資料800在共用的L2快取記憶體334的背景下呈現,其中所有的核心332可以使用共用區域來存取單個快取記憶體334。因此,根據所記錄的架構來提供示例性格式。資料800包括與在要求校正資料的核心420內的快取記憶體校正元件416的數量相對應的多個解壓縮的資料塊804。每個解壓縮的資料塊804包括子單元列位址欄位802和替代列位址欄位803。本領域技術人員將理解,在快取記憶體的子單元中利用冗餘的行(或者列)來製造記憶體快取記憶體,以允許在特定的子單元中用有功能的冗餘行(或者列)來替代沒有功能的行(或者列)。因此,解壓縮的快取記憶體校正資料800允許用有功能的行(如圖8中所示)來替代沒有功能的行。此外,本領域技術人員將理解,當冗餘的子單元行需要替代時,與快取記憶體校正相關聯的傳統的熔絲陣列機制包括與被燒斷的每個子單元行相關聯的熔絲。因此,因為需要這樣大數量的熔絲(以用於定址所有的子單元和其中的行),所以通常僅僅包括子單元的一部分,然後快取記憶體校正熔絲將非常稀疏地被燒斷。並且本發明人還注意到,本發明的特徵在於僅僅對需要替代的 那些子單元行來定址和壓縮子單元行位址和替代行位址,從而最小化需要實現快取記憶體校正資料所需的熔絲的數量。因此如由物理熔絲陣列大小和在其中被程式設計的額外的配置資料量所限制地,本發明相對於迄今已經被提供的技術而言,提供了擴展可以被校正的快取記憶體334中的子單元行(或者列)的數量的潛力。在圖8中所示的實施例中,注意到相關聯的核心332被配置為使得共用L2快取記憶體334的核心332中的僅一個將存取校正資料802-803並將其提供給其相應的快取記憶體校正元件416。欄位802-803的大小是核心架構的函數。作為解壓縮過程的一部分,快取記憶體校正熔絲元件410生成初始化快取記憶體校正元件416所需的目標資料的完整圖像。在快取記憶體校正資料800的解壓縮之後,在回應核心420中的傳統的分佈機制可以被採用來將資料802-803分佈到相應定址的快取記憶體校正元件416。 Referring now to Figure 8, the block diagram presented is characterized by An exemplary format of the cache memory correction material 800 for decompression of the present invention. The compressed cache memory correction data is read from the physical fuse array 401 by each core 420 during the reset sequence. The compressed cache memory correction data is then corrected based on the fuse correction data provided via bus bar 412. The corrected compressed cache memory correction data is then decompressed by the cache memory fuse element 410. The result of the decompression process is the decompressed cache memory correction data 800. Various cache memory mechanisms can be employed in the multi-core processor 330, and the decompressed cache memory correction material 800 is presented in the context of a shared L2 cache memory 334, where all cores 332 can use a common area. A single cache memory 334 is accessed. Therefore, an exemplary format is provided in accordance with the recorded architecture. The data 800 includes a plurality of decompressed data blocks 804 corresponding to the number of cache memory correction elements 416 within the core 420 that require calibration data. Each decompressed data block 804 includes a subunit column address field 802 and an alternate column address field 803. Those skilled in the art will appreciate that redundant memory lines (or columns) are used in the sub-cells of the cache memory to make the memory cache memory to allow for functional redundant lines in a particular sub-unit ( Or column) to replace rows (or columns) that have no function. Thus, the decompressed cache memory correction data 800 allows for the replacement of non-functional rows with functional rows (as shown in Figure 8). Moreover, those skilled in the art will appreciate that the conventional fuse array mechanism associated with cache memory correction includes fuses associated with each sub-cell row being blown when redundant sub-cell rows require replacement. . Therefore, because such a large number of fuses are needed (for addressing all of the subunits and the rows therein), typically only a portion of the subunits are included, and then the cache memory correction fuses will be blown very sparsely. And the inventors have also noticed that the invention is characterized only by the need for replacement Those subunit rows address and compress the subunit row address and the alternate row address, thereby minimizing the number of fuses needed to implement the cache memory correction data. Thus, as limited by the physical fuse array size and the amount of additional configuration material programmed therein, the present invention provides an extension to the cache memory 334 that can be corrected relative to the techniques that have been provided to date. The potential of the number of subunit rows (or columns). In the embodiment shown in FIG. 8, it is noted that the associated core 332 is configured such that only one of the cores 332 of the shared L2 cache 334 will access the correction material 802-803 and provide it to it. A corresponding cache memory correction component 416 is provided. The size of the field 802-803 is a function of the core architecture. As part of the decompression process, the cache memory correction fuse element 410 generates a complete image of the target material needed to initialize the cache memory correction component 416. After decompression of the cache memory correction data 800, the conventional distribution mechanism in the response core 420 can be employed to distribute the data 802-803 to the corresponding addressed cache memory correction component 416.

參考第9圖,所呈現的方塊圖的特徵在於根據本發明的用於解壓縮的快取記憶體校正資料900的替換示例性格式第9圖的實施例可以採用在比如圖4的機制之類的多核處理器配置,其中每個核心420包括一個或者多個核心上的快取記憶體(未示出),其包括但不限於一級(L1)資料快取記憶體和L1指令快取記憶體。在重置序列期間,壓縮的快取記憶體校正資料被每個核心420從物理熔絲陣列401中讀取。然後根據經由匯流排412提供的熔絲校正資料來校正壓縮的快取記憶體校正資料。然後,經校正的壓縮的快取記憶體校正資料被快取記憶體熔絲元件410解壓縮。解壓縮過程的結果是經解壓縮的快取 記憶體校正資料900。資料900包括與在需要校正資料的核心420內的快取記憶體校正元件416的數量相對應的多個解壓縮的資料塊904。每個解壓縮的資料塊904具有核心位址欄位901、快取記憶體位址(CAD)欄位905、子單元行位址欄位902、以及替代行位址欄位903。因此,解壓縮的快取記憶體校正資料900允許在由CAD欄位905指定的高速緩衝內、在由核心位址欄位901指定的核心420內,用有功能的行(或者列)來替代沒有功能的行(或者列)。在核心位址欄位901中的預定義的核心位址值可以指定共用的快取記憶體,例如,不在核心上的L2快取記憶體。欄位901-903、905的大小是核心架構的函數。作為解壓縮過程的一部分,快取記憶體校正熔絲元件410生成初始化快取記憶體校正元件416所需的目標資料的完整圖像。在快取記憶體校正資料900的解壓縮之後,在回應核心420中的傳統的分佈機制可以被採用來將資料901-903、905分佈到相應定址的快取記憶體校正元件416。 Referring to Figure 9, the block diagram presented is characterized by an alternative exemplary format for decompressing cache memory correction material 900 in accordance with the present invention. The embodiment of Figure 9 can be employed in a mechanism such as that of Figure 4. Multi-core processor configuration, wherein each core 420 includes one or more cache memories (not shown) on the core, including but not limited to a level one (L1) data cache and an L1 instruction cache. . The compressed cache memory correction data is read from the physical fuse array 401 by each core 420 during the reset sequence. The compressed cache memory correction data is then corrected based on the fuse correction data provided via bus bar 412. The corrected compressed cache memory correction data is then decompressed by the cache memory fuse element 410. The result of the decompression process is the decompressed cache Memory correction data 900. The data 900 includes a plurality of decompressed data blocks 904 corresponding to the number of cache memory correction elements 416 within the core 420 that require calibration data. Each decompressed data block 904 has a core address field 901, a cache memory address (CAD) field 905, a sub-cell row address field 902, and an alternate row address field 903. Thus, the decompressed cache memory correction data 900 allows for the replacement of functional rows (or columns) within the core 420 specified by the core address field 901 within the cache specified by the CAD field 905. A line (or column) that has no function. The predefined core address values in the core address field 901 may specify a shared cache memory, such as an L2 cache memory that is not on the core. The size of fields 901-903, 905 is a function of the core architecture. As part of the decompression process, the cache memory correction fuse element 410 generates a complete image of the target material needed to initialize the cache memory correction component 416. After decompression of the cache memory correction data 900, the conventional distribution mechanism in the response core 420 can be employed to distribute the data 901-903, 905 to the corresponding addressed cache memory correction component 416.

現在參考第10圖,所呈現的方塊圖示出了根據本發明的用於解壓縮的熔絲校正資料1000的示例性格式。如上所討論的,在重置期間,熔絲校正元件411存取在物理熔絲陣列401內的壓縮的熔絲校正資料406,對壓縮的熔絲校正資料進行解壓縮,並且將產生的經解壓縮的熔絲校正資料1000提供給核心420內的其它元件408-410。解壓縮的熔絲校正資料包括一個或者多個燒斷結尾欄位(EB)1001,其指示在物理熔絲陣列401中成功程式設計的事件的結尾。如果已經發生了隨後的程式設計事件,則重新燒斷欄位(R)1002被程式設計以用於指示以下 情況:隨後的一個或者多個熔絲校正欄位(FC)1003指示在物理熔絲陣列401內的將被重新燒斷的熔絲。熔絲校正欄位中的每一個包括在物理熔絲陣列401內的將被重新燒斷的特定熔絲的位址以及特定熔絲的狀態(即,燒斷或者不燒斷)。僅僅那些將被重新燒斷的熔絲在熔絲校正欄位1003中被提供,並且在給定重新燒斷事件內的每組欄位1003被通過燒斷結尾欄位1001來劃界。如果被適當編碼的重新燒斷欄位1002存在於給定的燒斷結尾欄位1001之後,則後續的一個或者多個熔絲可以被配置為如相應的熔絲校正欄位所指示地被重新燒斷。因此,本發明提供了對於受到陣列大小或者在其中提供的其它資料所限定的相同熔絲的充足次數的重新燒斷的能力。 Referring now to Figure 10, a block diagram is presented showing an exemplary format of fuse correction material 1000 for decompression in accordance with the present invention. As discussed above, during reset, the fuse correction component 411 accesses the compressed fuse correction data 406 within the physical fuse array 401, decompresses the compressed fuse correction data, and produces a resolved solution. The compressed fuse correction data 1000 is provided to other components 408-410 within core 420. The decompressed fuse correction data includes one or more burnout end fields (EB) 1001 that indicate the end of the successfully programmed event in the physical fuse array 401. If a subsequent programming event has occurred, the re-burnout field (R) 1002 is programmed to indicate the following Situation: Subsequent one or more fuse correction fields (FC) 1003 indicate fuses within the physical fuse array 401 that are to be re-blowed. Each of the fuse correction fields includes the address of a particular fuse within the physical fuse array 401 that is to be re-blowed and the state of the particular fuse (ie, blown or not blown). Only those fuses that will be re-blowed are provided in the fuse correction field 1003, and each set of fields 1003 within a given re-blow event is delimited by the burnout end field 1001. If the appropriately encoded re-burnout field 1002 is present after a given burn-out field 1001, the subsequent one or more fuses may be configured to be re-directed as indicated by the corresponding fuse correction field. Boiled. Thus, the present invention provides the ability to re-blow a sufficient number of identical fuses as defined by the array size or other materials provided therein.

本發明人還觀察到與在其中儲存壓縮的配置資料的共用物理熔絲陣列的利用相關聯的實際資源和電源增益呈現了對於被佈置在多核晶粒上的額外特徵的機會。此外,本發明人還注意到,本領域技術人員將會理解,當今的半導體熔絲結構往往受到若干缺點的影響,其中一個缺點被稱為“逆生長(growback)”。逆生長是程式設計過程的逆過程,其使得在一段時間之後,熔絲將在其被燒斷之後重新連接,即,其從被程式設計(即,燒斷)狀態變回到未程式設計(即,未燒斷)狀態。 The inventors have also observed that the actual resources and power gain associated with the utilization of the shared physical fuse array in which the compressed configuration data is stored present an opportunity for additional features to be placed on the multi-core die. Moreover, the inventors have also noted that those skilled in the art will appreciate that today's semiconductor fuse structures are often subject to several disadvantages, one of which is referred to as "growback." Inverse growth is the inverse of the programming process, which causes the fuse to reconnect after it has been blown for a period of time, ie, it is changed from being programmed (ie, blown) back to unprogrammed ( That is, the state is not burned.

在另一方面,如上間接提到的,本發明人已經注意到,當功率選通技術被採用來最小化在例如,第3圖的晶粒330的多核晶粒上的功率消耗時,存在很多挑戰。在本申請的範圍之外的這樣的技術被採用來檢測一個或者多個核心332何 時沒有被利用,並且以多種方式將一個或者多個核心332斷電(也被稱為功率選通事件(power gating event))。當經功率選通的核心322被要求執行時,電源被恢復到核心332,並且其開始執行。本發明人特別感興趣的是核心332包括一個或者多個核心上的快取記憶體的情況,如參照第9圖中所討論的,其中,在功率選通事件下電源被從這些快取記憶體中移除。本領域技術人員將理解,為了在功率選通事件之後對一個或者多個快取記憶體上電,一個或者多個快取記憶體必須首先使用如上所述的熔絲校正資料進行配置。然而,本領域技術人員還將理解,熔絲陣列的過度讀取降低了在其中的熔絲的壽命。與功率選通相關的另一個問題是每個核心可能需要過度的時間來讀取快取記憶體校正熔絲,以對壓縮的熔絲修補資料進行解壓縮,並且配置用於其相應的核心上快取記憶體中的每一個的校正。因此,本發明的另一個實施例被提供以:1)減小所有的核心在功率選通事件之後解壓縮和配置其相應的核心上快取記憶體所需的時間量;以及2)通過在功率選通條件下減小由核心存取的數量來增加熔絲陣列的整體壽命。 On the other hand, as indirectly mentioned above, the inventors have noted that when power gating techniques are employed to minimize power consumption on, for example, the multi-core die of die 330 of Figure 3, there are many challenge. Such techniques outside the scope of this application are employed to detect one or more cores 332 It is not utilized and powers down one or more cores 332 (also known as power gating events) in a variety of ways. When the power gated core 322 is required to execute, the power is restored to the core 332 and it begins execution. Of particular interest to the inventors is the case where the core 332 includes one or more cache memories on the core, as discussed with reference to Figure 9, where power is taken from these cache memories during power gating events. Removed from the body. Those skilled in the art will appreciate that in order to power up one or more cache memories after a power gating event, one or more cache memories must first be configured using the fuse correction data as described above. However, those skilled in the art will also appreciate that over-reading of the fuse array reduces the life of the fuse therein. Another problem associated with power gating is that each core may require excessive time to read the cache memory correction fuse to decompress the compressed fuse repair data and configure it for its corresponding core. Cache the correction of each of the memories. Accordingly, another embodiment of the present invention is provided to: 1) reduce the amount of time required for all cores to decompress and configure the cache memory on their respective cores after a power gating event; and 2) pass The number of core accesses is reduced under power gating conditions to increase the overall life of the fuse array.

現在參考到第11圖,其中所呈現的方塊圖詳細描述了用於在最初並且在功率選通事件之後將快取記憶體校正資料快速載入到多核設備1100中的根據本發明的機制。設備1100包括多個核心1101,所述多個核心1101基本上如以上參照第3-10圖中所述地配置。此外,每個核心1101包括一個或者多個核心上快取記憶體CACHE1-CACHEN 1102、快取記憶體修補儲存裝置1103、配置資料儲存裝置1104、重置邏輯1105、以及 睡眠邏輯1106。核心1101中的每一個被耦合到被配置為如上參考第3-10圖所述的物理熔絲陣列1110,並且耦合到被佈置在與核心1101相同的晶粒上的儲存裝置(例如,隨機存取記憶體(RAM))1130,但是其沒有被佈置在核心1101中的任何一個內。因此,此後將儲存裝置1130稱為“非核心(UNCORE)”儲存裝置1130。非核心儲存裝置1130包括指定的子儲存裝置1131-1134,其每個對應於核心1101中的每一個。多核設備1100進一步包括被耦合到每個核心1101的功率控制器1120。同步匯流排SYNC被耦合到每個核心1101,以在上電、重置、以及功率選通事件期間,在其間提供同步通信。 Referring now to Figure 11, the block diagram presented therein details the mechanism according to the present invention for quickly loading cache memory correction data into the multi-core device 1100 initially and after a power gating event. Apparatus 1100 includes a plurality of cores 1101 that are substantially configured as described above with reference to Figures 3-10. In addition, each core 1101 includes one or more core cache memories CACHE1-CACHEN 1102, a cache memory repair storage device 1103, a configuration data storage device 1104, a reset logic 1105, and Sleep logic 1106. Each of the cores 1101 is coupled to a physical fuse array 1110 configured as described above with reference to Figures 3-10, and coupled to a storage device disposed on the same die as the core 1101 (eg, randomly stored) Memory (RAM) 1130 is taken, but it is not disposed in any of the cores 1101. Therefore, the storage device 1130 is hereinafter referred to as a "non-core (UNCORE)" storage device 1130. The non-core storage device 1130 includes designated sub-storage devices 1131-1134, each of which corresponds to each of the cores 1101. Multi-core device 1100 further includes a power controller 1120 coupled to each core 1101. A synchronous bus SYNC is coupled to each core 1101 to provide synchronous communication therebetween during power up, reset, and power gating events.

出於示例的目的,僅僅示出了四個核心1101、單個物理熔絲陣列1110、以及單個非核心儲存裝置1130,然而,本發明人注意到,根據本發明的新穎的和創造性的內容可以被擴展到多個核心1101、熔絲陣列1110、以及任意數量的非核心儲存裝置1130。在一個實施例中,非核心儲存裝置1130包括隨機存取記憶體(RAM),其在功率選通事件期間保持功率。在一個實施例中,非核心儲存裝置1130包括4KB RAM,但是其它大小也可被設想到。 For purposes of example, only four cores 1101, a single physical fuse array 1110, and a single non-core storage device 1130 are shown, however, the inventors have noted that the novel and inventive content in accordance with the present invention can be Expanded to multiple cores 1101, fuse array 1110, and any number of non-core storage devices 1130. In one embodiment, the non-core storage device 1130 includes random access memory (RAM) that maintains power during a power gating event. In one embodiment, the non-core storage device 1130 includes 4 KB of RAM, but other sizes are also contemplated.

在操作中,功率控制器1120被配置為執行功率選通,以便將電源恢復到一個或者多個核心1101,或者將電源從其移除。在上電/重置期間,在每個核心1101上的重置邏輯1105被配置為,除了其它操作之外,執行如上所述的對於核心1101的配置。此外,重置邏輯1105被配置為讀取配置資料暫存器1104,以確定核心1101是主核心還是從核心。如果配置資料指 示核心1101是從核心,則作為重置過程的一部分,從核心等待直到在同步匯流排SYNC上出現指示用於每個核心1101的解壓縮的快取記憶體修補資料已經被從熔絲陣列1110中讀取並且已經被寫入到非核心儲存裝置1130內的相應子儲存裝置1131-1134中的主核心信號為止。在SYNC上的相應的子儲存裝置1131-1134已經被寫入的指示之後,每個從核心從相應的子儲存裝置1131-1134讀取其相應的解壓縮的修補資料,並且行進以如上所述地配置其相應的核心上快取記憶體。如果配置資料指示核心1101是主核心,則作為上電/重置的一部分,主核心從熔絲陣列1110中讀取所有核心1101的快取記憶體校正資料,對所有的核心1101的壓縮的校正資料進行解壓縮,並且將解壓縮的快取記憶體修補資料寫入到與每個核心1101相對應的子儲存裝置1131-1134。主核心然後在SYNC上向其它核心1101用信號通知解壓縮的快取記憶體修補資料的寫入完成。 In operation, power controller 1120 is configured to perform power gating to restore power to one or more cores 1101 or to remove power therefrom. During power up/reset, the reset logic 1105 on each core 1101 is configured to perform the configuration for core 1101 as described above, among other operations. In addition, reset logic 1105 is configured to read configuration data register 1104 to determine if core 1101 is a primary core or a secondary core. If the configuration data refers to The core 1101 is a slave core, and as part of the reset process, waiting from the core until a flash memory repair data indicating decompression for each core 1101 appears on the sync bus SYNC has been taken from the fuse array 1110. The medium core signals in the corresponding sub-storage devices 1131-1134 in the non-core storage device 1130 are read and have been written. After the corresponding sub-storage devices 1131-1134 on SYNC have been written, each slave core reads its corresponding decompressed patch material from the corresponding sub-storage device 1131-1134 and proceeds as described above. Configure the cache on its corresponding core. If the configuration data indicates that the core 1101 is the main core, the main core reads the cache memory correction data of all the cores 1101 from the fuse array 1110 as part of the power-on/reset, and corrects the compression of all the cores 1101. The data is decompressed, and the decompressed cache memory patch data is written to the sub-storage devices 1131-1134 corresponding to each core 1101. The main core then signals the completion of the write of the decompressed cache memory to other cores 1101 on SYNC.

在功率選通事件期間,功率控制1120從一個或者多個核心1101中移除電源,使得電源也被從核心的核心上快取記憶體1102上移除。然而,電源沒有從非核心儲存裝置1130中移除,因此為每個核心1101保留瞭解壓縮的修補資料。睡眠邏輯1106被配置為確定在功率選通事件之後電源何時被恢復到相應的核心1101,以從其相應的子儲存裝置1131-1134直接讀取用於其核心上快取記憶體的快取記憶體修補資料,並且為其核心上的快取記憶體1102的校正來配置其相應的修補資料儲存裝置1103,從而極大地減小了用於返回到在功率選通事件之後的操作所需的時間,同時明顯地增加了熔絲陣列1110的壽 命。 During a power gating event, power control 1120 removes power from one or more cores 1101 such that power is also removed from cache memory 1102 on the core of the core. However, the power source is not removed from the non-core storage device 1130, so that the compressed patch material is known for each core 1101. The sleep logic 1106 is configured to determine when the power is restored to the corresponding core 1101 after the power gating event to directly read the cache memory for the cache memory on its core from its respective child storage device 1131-1134 The material is patched and its corresponding patched data storage device 1103 is configured for correction of the cache memory 1102 on its core, thereby greatly reducing the time required to return to operation after the power gating event At the same time, the life of the fuse array 1110 is obviously increased. Life.

本發明的各部分以及相應的詳細描述按照電腦記憶體內的軟體、或者資料位元上的操作的演算法和符號表示來呈現。通過這些描述和表示,本領域技術人員有效地將其工作的實質傳播給本領域其它技術人員。演算法,如該術語在此被使用的,以及如其通常被使用的,被認為是導致期望結果的步驟的自洽(self-consistent)序列。所述步驟是需要物理量的物理操縱的步驟。通常地,雖然不是必要地,這些量採取能夠被儲存、轉移、組合、比較、以及以其它方式操縱的光、電、或者磁信號的形式。主要出於公共使用的原因,已經不時地證明將這些信號稱為位元、值、元素、符號、字元、項、數位等是方便的。 Portions of the present invention and corresponding detailed description are presented in terms of algorithms and symbolic representations of the software in the computer memory, or operations on the data bits. Those skilled in the art will be able to effectively convey the substance of their work to those skilled in the art. Algorithms, as the term is used herein, and as it is commonly used, are considered to be a self-consistent sequence of steps leading to a desired result. The steps are steps that require physical manipulation of physical quantities. Generally, though not necessarily, these quantities take the form of optical, electrical, or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, digits, and so forth.

然而,應該記住,所有這些和相似的術語要與適當的物理量相關聯,並且僅僅應用到這些量的方便的標籤。除非特別聲明,或者從討論中顯而易見,否則諸如“處理”或者“計算”或者“確定”或者“顯示”等的術語指代電腦系統、微處理器、中央處理單元、或者相似的電子計算設備的動作和過程,所述設備將被表示為在電腦系統的暫存器和記憶體內的物理、電子量的資料操縱和轉換為相似地表示為電腦系統記憶體或者暫存器,或者其它這種資訊儲存、傳輸或者顯示裝置內的物理量的其它資料。 However, it should be borne in mind that all of these and similar terms are to be associated with the appropriate physical quantities and are only applied to the convenient labels of these quantities. Unless specifically stated otherwise or apparent from the discussion, terms such as "processing" or "calculating" or "determining" or "displaying" refer to a computer system, microprocessor, central processing unit, or similar electronic computing device. Actions and procedures, the device will be represented as physical and electronic data manipulation and conversion in the scratchpad and memory of the computer system to be similarly represented as computer system memory or scratchpad, or other such information Other materials that store, transmit, or display physical quantities within the device.

還應該注意,在本發明的軟體實現方面,其典型地在某種形式的程式儲存介質上編碼,或者在某種類型的傳輸介質上實現。程式儲存介質可以是電子的(例如,唯讀記憶體、 快閃唯讀記憶體、電可程式設計唯讀記憶體、隨機存取記憶體)、磁的(例如,軟碟或者硬碟)或者光學的(例如,唯讀光碟、或者“CD ROM”),並且其可以是唯讀的或者是隨機存取的。相似地,傳輸介質可以是金屬跡線、雙絞線、同軸線纜、光纖、或者本領域公知的某種其它的適當的傳輸介質。本發明不限於任何給定的實現方式的這些方面。 It should also be noted that in the software implementation of the present invention, it is typically encoded on some form of program storage medium or on some type of transmission medium. Program storage media can be electronic (eg, read-only memory, Flash read-only memory, electrically programmable read-only memory, random access memory), magnetic (for example, floppy or hard), or optical (for example, CD-ROM, or "CD ROM") And it can be read only or randomly accessed. Similarly, the transmission medium can be a metal trace, a twisted pair, a coaxial cable, an optical fiber, or some other suitable transmission medium known in the art. The invention is not limited to these aspects of any given implementation.

以上公開的特定實施例僅僅是示例的,並且本領域技術人員將會理解,其可以容易地使用所公開的概念和特定實施例來作為基礎來設計或者修改其它結構,以執行與本發明相同的目的,並且可以在不脫離由權利要求闡明的本發明的範圍的情況下,對本發明進行各種變化、替換、和更替。 The specific embodiments disclosed above are merely exemplary, and those skilled in the art will understand that the present invention can be Various changes, substitutions, and alterations of the invention are possible in the present invention without departing from the scope of the invention as set forth in the appended claims.

310‧‧‧設備程式設計器 310‧‧‧Device Programmer

320‧‧‧壓縮器 320‧‧‧Compressor

301‧‧‧虛擬熔絲組 301‧‧‧Virtual fuse set

302‧‧‧虛擬熔絲 302‧‧‧Virtual Fuse

303‧‧‧虛擬熔絲陣列 303‧‧‧Virtual Fuse Array

330‧‧‧晶粒 330‧‧‧ grain

332‧‧‧核心 332‧‧‧ core

334‧‧‧快取記憶體 334‧‧‧Cache memory

336‧‧‧物理熔絲陣列 336‧‧‧Physical fuse array

Claims (15)

一種用於向積體電路提供配置資料的裝置,所述裝置包括:佈置在晶粒上的半導體熔絲陣列,向其中程式設計壓縮的配置資料;以及佈置在所述晶粒上的多個核心,其中,所述多個核心中的每一個被耦合到所述半導體熔絲陣列,並且其中,所述多個核心中的一個被配置為在上電/重置之後存取所述半導體熔絲陣列以對壓縮的配置資料進行讀取和解壓縮,並且在耦合到所述多個核心的所述每一個的儲存裝置中儲存用於在所述多個核心的所述每一個內的一個或者多個快取記憶體記憶體的解壓縮的配置資料集合,所述多個核心的所述每一個包括:重置邏輯,其被配置為採用解壓縮的配置資料集合,以在上電/重置之後初始化所述一個或者多個快取記憶體記憶體;以及睡眠邏輯,其被配置為確定在功率選通事件之後恢復功率,並且被配置為隨後存取所述儲存裝置,以檢索和採用所述解壓縮的配置資料集合,來在所述功率選通事件之後初始化所述一個或者多個快取記憶體記憶體。 An apparatus for providing configuration data to an integrated circuit, the apparatus comprising: a semiconductor fuse array disposed on a die, programming compressed configuration data therein; and a plurality of cores disposed on the die Wherein each of the plurality of cores is coupled to the semiconductor fuse array, and wherein one of the plurality of cores is configured to access the semiconductor fuse after power up/reset The array reads and decompresses the compressed configuration data and stores one or more for each of the plurality of cores in a storage device coupled to each of the plurality of cores a set of decompressed configuration data of the cache memory, each of the plurality of cores including: reset logic configured to employ the decompressed configuration data set to power up/reset Initializing the one or more cache memory memories; and sleep logic configured to determine to restore power after the power gating event and configured to subsequently access the storage Position, and to retrieve said decompressed using the configuration data set, or a plurality of initializing the cache memory after the power gating event. 如申請專利範圍第1項所述之用於向積體電路提供配置資料的裝置,其中,在所述多個核心的所述一個中的快取記憶體熔絲元件通過在上電/重置期間執行微代碼來對所述壓縮的配置資料進行解壓縮。 The apparatus for providing configuration data to an integrated circuit according to claim 1, wherein the cache memory fuse element in the one of the plurality of cores is powered on/reset The microcode is executed to decompress the compressed configuration data. 如申請專利範圍第1項所述之用於向積體電路提供配置資料的裝置,其中,所述解壓縮的配置資料集合的每個包括第一多個半導體熔絲,其指示在所述一個或者多個快取記憶體記憶體中的所述一個內的一個或者多個子單元位置,所述一個或者多個快取記憶體記憶體在正常操作期間不被採用。 The apparatus for providing configuration data to an integrated circuit according to claim 1, wherein each of the decompressed configuration data sets includes a first plurality of semiconductor fuses, the indication being in the one Or one or more subunit locations within the one of the plurality of cache memories, the one or more cache memories not being employed during normal operation. 如申請專利範圍第3項所述之用於向積體電路提供配置資料的裝置,其中,所述解壓縮的配置資料集合的每個進一步包括第二多個半導體熔絲,其指示所述一個或者多個快取記憶體記憶體中的一個內的一個或者多個替代子單元位置,所述一個或者多個快取記憶體記憶體在正常操作期間替代所述一個或者多個子單元位置的相應位置將被採用。 The apparatus for providing configuration data to an integrated circuit as described in claim 3, wherein each of the decompressed configuration data sets further includes a second plurality of semiconductor fuses indicating the one Or one or more substitute subunit locations within one of the plurality of cache memory, the one or more cache memories replacing the one or more subunit locations during normal operation The location will be taken. 如申請專利範圍第4項所述之用於向積體電路提供配置資料的裝置,其中,在所述一個或者多個快取記憶體記憶體的所述一個內,所述子單元位置和所述替代子單元位置分別包括列和冗餘列。 The apparatus for providing configuration data to an integrated circuit according to claim 4, wherein the subunit position and location in the one of the one or more cache memories The alternate subunit locations include columns and redundant columns, respectively. 如申請專利範圍第4項所述之用於向積體電路提供配置資料的裝置,其中,在所述一個或者多個快取記憶體記憶體的所述一個內,所述子單元位置和所述替代子單元位置分別包括行和冗餘行。 The apparatus for providing configuration data to an integrated circuit according to claim 4, wherein the subunit position and location in the one of the one or more cache memories The alternate subunit locations include rows and redundant rows, respectively. 如申請專利範圍第1項所述之用於向積體電路提供配置資料的裝置,其中,所述裝置包括多核微處理器。 The apparatus for providing configuration data to an integrated circuit as described in claim 1, wherein the apparatus comprises a multi-core microprocessor. 如申請專利範圍第1項所述之用於向積體電路提供配置資料的裝置,其中,所述述儲存裝置被配置為儲存和存取解 壓縮的配置資料集合。 The apparatus for providing configuration data to an integrated circuit according to claim 1, wherein the storage device is configured to store and access a solution. A collection of compressed profiles. 一種用於配置積體電路的方法,所述方法包括:將半導體熔絲陣列佈置在晶粒上,向其中程式設計壓縮的配置資料;將多個微處理器核心佈置在晶粒上,其中,多個微處理器核心中的每一個被耦合到半導體熔絲陣列,並且其中,多個微處理器核心中的一個被配置為在上電/重置之後存取半導體熔絲陣列以對壓縮的配置資料進行讀取和解壓縮,並且在耦合到多個核心中的每一個的儲存裝置中儲存用於在多個核心中的每一個內的一個或者多個快取記憶體記憶體的解壓縮的配置資料集合;經由佈置在多個核心中的每一個內的重置邏輯,採用解壓縮的配置資料集合,以在上電/重置之後對一個或者多個快取記憶體記憶體進行初始化;以及經由被佈置在多個核心中的每一個內的睡眠邏輯,確定在功率選通事件之後恢復功率,並且隨後存取儲存裝置,以檢索和採用解壓縮的配置資料集合,來在功率選通事件之後初始化一個或者多個快取記憶體記憶體。 A method for configuring an integrated circuit, the method comprising: arranging a semiconductor fuse array on a die, programming a compressed configuration data therein; and arranging a plurality of microprocessor cores on the die, wherein Each of the plurality of microprocessor cores is coupled to the semiconductor fuse array, and wherein one of the plurality of microprocessor cores is configured to access the semiconductor fuse array after power up/reset to compress The configuration data is read and decompressed and stored in a storage device coupled to each of the plurality of cores for decompression of one or more cache memories within each of the plurality of cores Configuring a data set; employing a set of decompressed configuration data via reset logic disposed within each of the plurality of cores to initialize one or more cache memory after power up/reset; And determining, via a sleep logic disposed within each of the plurality of cores, restoring power after the power gating event, and subsequently accessing the storage device to retrieve and retrieve Decompression of configuration data set to initialize one or more cache memory after power gating event. 如申請專利範圍第9項所述之用於配置積體電路的方法,其中,在所述多個核心中的一個內的快取記憶體熔絲元件通過在上電/重置期間執行微代碼來對所述壓縮的配置資料進行解壓縮。 A method for configuring an integrated circuit as described in claim 9, wherein the cache memory fuse element in one of the plurality of cores performs microcode during power up/reset To decompress the compressed configuration data. 如申請專利範圍第9項所述之用於配置積體電路的方法,其中,所述解壓縮的配置資料集合的每一個包括第一多個半 導體熔絲,其指示在所述一個或者多個快取記憶體記憶體中的一個內的一個或者多個子單元位置,所述一個或者多個快取記憶體記憶體在正常操作期間不被採用。 The method for configuring an integrated circuit according to claim 9, wherein each of the decompressed configuration data sets includes a first plurality of a conductor fuse indicating one or more sub-unit locations within one of the one or more cache memory, the one or more cache memories not being employed during normal operation . 如申請專利範圍第11項所述之用於配置積體電路的方法,其中,所述解壓縮的配置資料集合的每一個進一步包括第二多個半導體熔絲,其指示所述一個或者多個快取記憶體記憶體中的一個內的一個或者多個替代子單元位置,所述一個或者多個快取記憶體記憶體在正常操作期間替代所述一個或者多個子單元位置的相應位置將被採用。 The method for configuring an integrated circuit according to claim 11, wherein each of the decompressed configuration data sets further includes a second plurality of semiconductor fuses indicating the one or more Cache one or more substitute subunit locations within one of the memory banks, the one or more cache memory locations replacing the corresponding locations of the one or more subunit locations during normal operation will be use. 如申請專利範圍第12項所述之用於配置積體電路的方法,其中,在所述一個或者多個快取記憶體記憶體中的一個內,子單元位置和替代子單元位置分別包括列和冗餘列。 The method for configuring an integrated circuit according to claim 12, wherein, in one of the one or more cache memories, the subunit position and the substitute subunit position respectively comprise a column And redundant columns. 如申請專利範圍第12項所述之用於配置積體電路的方法,其中,在所述一個或者多個快取記憶體記憶體中的一個內,子單元位置和替代子單元位置分別包括行和冗餘行。 The method for configuring an integrated circuit according to claim 12, wherein, in one of the one or more cache memories, the subunit position and the substitute subunit position respectively comprise a line And redundant lines. 如申請專利範圍第12項所述之用於配置積體電路的方法,更包括:將所述儲存裝置佈置在晶粒上,其被配置為儲存和存取解壓縮的配置資料集合。 The method for configuring an integrated circuit according to claim 12, further comprising: arranging the storage device on a die configured to store and access the decompressed configuration data set.
TW103141343A 2014-05-22 2014-11-28 Apparatus and method for providing configuration data to an integrated circuit TWI532049B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/285,517 US9665490B2 (en) 2014-05-22 2014-05-22 Apparatus and method for repairing cache arrays in a multi-core microprocessor
US14/285,412 US9606933B2 (en) 2014-05-22 2014-05-22 Multi-core apparatus and method for restoring data arrays following a power gating event

Publications (2)

Publication Number Publication Date
TW201545165A true TW201545165A (en) 2015-12-01
TWI532049B TWI532049B (en) 2016-05-01

Family

ID=55407168

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103141343A TWI532049B (en) 2014-05-22 2014-11-28 Apparatus and method for providing configuration data to an integrated circuit

Country Status (1)

Country Link
TW (1) TWI532049B (en)

Also Published As

Publication number Publication date
TWI532049B (en) 2016-05-01

Similar Documents

Publication Publication Date Title
TWI571797B (en) Processing device and method for configuration data
US9740622B2 (en) Extended fuse reprogrammability mechanism
US9594690B2 (en) Multi-core microprocessor power gating cache restoral programming mechanism
US9690511B2 (en) Multi-core data array power gating restoral mechanism
US9665490B2 (en) Apparatus and method for repairing cache arrays in a multi-core microprocessor
US9524241B2 (en) Multi-core microprocessor power gating cache restoral mechanism
TW201508633A (en) Processing device and method for configuration data
TWI532049B (en) Apparatus and method for providing configuration data to an integrated circuit
TWI524352B (en) Apparatus and method for providing configuration data to an integrated circuit
TWI552068B (en) Processing device and method for configuration data
EP2840490B1 (en) Core-specific fuse mechanism for a multi-core die
EP2840491B1 (en) Extended fuse reprogrammability mechanism
US20150058565A1 (en) Apparatus and method for compression of configuration data