[go: up one dir, main page]

CN104183270B - The processing unit and method of configuration data - Google Patents

The processing unit and method of configuration data Download PDF

Info

Publication number
CN104183270B
CN104183270B CN201410396074.1A CN201410396074A CN104183270B CN 104183270 B CN104183270 B CN 104183270B CN 201410396074 A CN201410396074 A CN 201410396074A CN 104183270 B CN104183270 B CN 104183270B
Authority
CN
China
Prior art keywords
fuse
configuration data
fuse array
array
core
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410396074.1A
Other languages
Chinese (zh)
Other versions
CN104183270A (en
Inventor
G.G.亨利
弟尼斯.K.詹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhaoxin Semiconductor Co Ltd
Original Assignee
Shanghai Zhaoxin Integrated Circuit 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 US13/972,690 external-priority patent/US20150054543A1/en
Priority claimed from US13/972,609 external-priority patent/US20150058598A1/en
Application filed by Shanghai Zhaoxin Integrated Circuit Co Ltd filed Critical Shanghai Zhaoxin Integrated Circuit Co Ltd
Publication of CN104183270A publication Critical patent/CN104183270A/en
Application granted granted Critical
Publication of CN104183270B publication Critical patent/CN104183270B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Microcomputers (AREA)

Abstract

The processing unit and method of a kind of configuration data.The processing unit is to provide configuration data to a microprocessor, and including a fuse array group and an at least kernel.Fuse array group is arranged on a crystal grain, and including one first fuse array and one second fuse array.Kernel is arranged on crystal grain, fuse array group is coupled, and including an array control, to access first and second fuse array, and according to the content of a configuration data register, handle a first state of the first fuse array and one second state of the second fuse array.

Description

配置数据的处理装置及方法Device and method for processing configuration data

技术领域technical field

本发明涉及一种微电子,特别涉及一种提供压缩配置数据给一多内核装置的一保险丝阵列的装置及方法。The present invention relates to a microelectronics, and more particularly to an apparatus and method for providing compressed configuration data to a fuse array of a multi-core device.

背景技术Background technique

集成电路的技术在过去40年内,以指数方式成长。特别是在微处理器领域中,由4位单指令、10微米装置开始,半导体制造技术的成长让设计者可提高复合式装置内部的元件密度。在80及90年代的流水线式微处理器及超标量(纯量)微处理器中,可将数百万个晶体管设置在单一晶粒中。在随后的20年中,出现了64位的32纳米装置,其将数十亿个晶体管设置在单一晶粒中,该晶粒具有多微处理器内核,用以处理数据。Integrated circuit technology has grown exponentially over the past 40 years. Especially in the field of microprocessors, starting from 4-bit single-instruction, 10-micron devices, the growth of semiconductor manufacturing technology allows designers to increase the device density inside complex devices. In the pipelined and superscalar (scalar) microprocessors of the 1980s and 1990s, millions of transistors could be placed on a single die. In the ensuing 20 years, 64-bit 32-nanometer devices emerged that housed billions of transistors in a single die with multiple microprocessor cores for processing data.

在启动或重置装置时,这些早期的装置需被配置数据所初始化。举例而言,许多架构利用至少一可选择的频率和/或电压,致能装置。其它架构要求每一装置需具有一序号以及其它可通过执行指令而读取的信息。另一些装置内部的寄存器及控制电路需要初始化数据。当前述电路在制造时发生错误或是并未位于临界限制中时,其它装置利用配置数据执行额外电路。These early devices need to be initialized with configuration data when starting or resetting the device. For example, many architectures enable devices with at least one selectable frequency and/or voltage. Other architectures require each device to have a serial number and other information that can be read by executing instructions. Registers and control circuits inside other devices require initialization data. Other devices use the configuration data to implement additional circuits when the aforementioned circuits are manufactured with errors or are not within critical limits.

本领域技术人员均深知,设计者可利用传统整合在晶粒上的半导体保险丝阵列存储并提供初始配置数据。当部分保险丝阵列已制造完成时,可藉由熔断所选择到的保险丝,对这些保险丝阵列进行编程,并且保险丝阵列具有数千位的信息,在启动/重置装置时,便可读取保险丝阵列,用以初始化及设定相对应装置的操作。Those skilled in the art are well aware that designers can utilize conventional on-die semiconductor fuse arrays to store and provide initial configuration data. When part of the fuse array has been manufactured, these fuse arrays can be programmed by blowing selected fuses, and the fuse array has thousands of bits of information, which can be read when starting/resetting the device , to initialize and configure the operation of the corresponding device.

当装置的复杂性愈来愈高时,配置数据量会随之增加。然而,本领域技术人员深知,虽然晶体管的尺寸随半导体工艺而缩小,但整合在晶粒上的半导体保险丝的尺寸却增加。这个现象影响可使用空间以及功率损耗,因而成为设计者的问题。因此,若欲制造一大保险丝阵列在晶粒上时,晶粒可能无法提供足够的可使用空间。As the complexity of the device increases, the amount of configuration data increases accordingly. However, those skilled in the art know well that although the size of transistors shrinks with the semiconductor process, the size of semiconductor fuses integrated on the die increases. This phenomenon affects usable space as well as power loss and thus becomes a problem for designers. Therefore, if a large fuse array is to be fabricated on a die, the die may not provide enough usable space.

另外,由于每一内核需要一定数量的保险丝,因此,若欲在单一晶粒上制造许多内核时,将使上述问题恶化。In addition, since each core requires a certain number of fuses, this problem is exacerbated when many cores are to be fabricated on a single die.

因此,需要一装置及方法使配置数据可被存储并提供在一多内核装置中,并且在单一晶粒中,不会占用太多的空间及消耗太多的电源。Therefore, there is a need for an apparatus and method that allows configuration data to be stored and provided in a multi-core device without occupying too much space and consuming too much power in a single die.

另外,需要一保险丝阵列机制,用以在相同或更小的空间中,存储并提供比传统技术更多的配置数据。In addition, a fuse array mechanism is needed to store and provide more configuration data than conventional techniques in the same or smaller space.

发明内容Contents of the invention

本发明利用一多内核装置里的一保险丝阵列的压缩配置数据,提供较佳的技术,用以解决上述问题并满足其它问题及缺点以及已知的受限。在一可能实施例中,本发明提供一种处理装置,用以提供配置数据给一微处理器,并包括一保险丝阵列组以及至少一内核。保险丝阵列组设置在一晶粒上,并包括一第一保险丝阵列以及一第二保险丝阵列。内核设置在晶粒上,耦接保险丝阵列组,并包括一阵列控制,用以存取第一及第二保险丝阵列,并根据一配置数据寄存器的内容,处理第一保险丝阵列的一第一状态及第二保险丝阵列的一第二状态。The present invention utilizes compressed configuration data for a fuse array in a multi-core device to provide preferred techniques for addressing the above problems and satisfying other problems and disadvantages as well as known limitations. In a possible embodiment, the present invention provides a processing device for providing configuration data to a microprocessor, and includes a fuse array set and at least one core. The fuse array group is disposed on a die and includes a first fuse array and a second fuse array. The core is disposed on the die, coupled to the fuse array group, and includes an array control for accessing the first and second fuse arrays, and processing a first state of the first fuse array according to the content of a configuration data register and a second state of the second fuse array.

本发明还提供一种处理装置,用以提供配置数据给一微处理器,并包括一保险丝阵列、一随机存取存储器(RAM)以及多个内核。保险丝阵列设置在一晶粒上,并包括多个半导体保险丝。半导体保险丝根据压缩配置数据而被编程。随机存取存储器,设置在晶粒上。内核各自地设置在晶粒上。每一内核耦接保险丝阵列及随机存取存储器,并且在启动/重置操作下,内核的每一个根据一载入数据寄存器的内容存取保险丝阵列或随机存取存储器,用以得知压缩配置数据。The present invention also provides a processing device for providing configuration data to a microprocessor, and includes a fuse array, a random access memory (RAM) and a plurality of cores. The fuse array is arranged on a die and includes a plurality of semiconductor fuses. The semiconductor fuses are programmed according to the compressed configuration data. Random access memory, provided on the die. The inner cores are individually disposed on the die. Each core is coupled to the fuse array and the random access memory, and upon boot/reset operation, each of the cores accesses the fuse array or the random access memory according to the contents of a load data register to know the compression configuration data.

本发明还提供一种处理方法,用以提供配置数据给一微处理器,并包括设置一保险丝阵列组在一晶粒上,其中保险丝阵列组包括一第一保险丝阵列以及一第二保险丝阵列;设置至少一内核在晶粒上,内核耦接保险丝阵列组;以及使用内核的一阵列控制,并根据一配置数据寄存器的内容,存取并处理第一保险丝阵列的一第一状态及第二保险丝阵列的一第二状态。The present invention also provides a processing method for providing configuration data to a microprocessor, and includes arranging a fuse array group on a chip, wherein the fuse array group includes a first fuse array and a second fuse array; disposing at least one core on the die, the core being coupled to the fuse array group; and using an array control of the core, and according to the contents of a configuration data register, accessing and processing a first state of the first fuse array and second fuses A second state of the array.

本发明提供另一种处理方法,用以提供配置数据给一微处理器,并包括设置一保险丝阵列设置在一晶粒上,其中保险丝阵列包括多个半导体保险丝,半导体保险丝根据一压缩配置数据而被编程;设置一随机存取存储器(RAM)在晶粒上;将多个内核各自地设置在晶粒上,并耦接每一内核与保险丝阵列及随机存取存储器;以及在启动/重置操作下,通过内核的每一个根据一载入数据寄存器的内容存取保险丝阵列或随机存取存储器,用以得知压缩配置数据。The present invention provides another processing method for providing configuration data to a microprocessor, including disposing a fuse array on a die, wherein the fuse array includes a plurality of semiconductor fuses, the semiconductor fuses are configured according to a compressed configuration data be programmed; place a random access memory (RAM) on the die; place multiple cores individually on the die, and couple each core to the fuse array and RAM; and at boot/reset In operation, each of the cores accesses the fuse array or random access memory according to the content of a loaded data register for knowing the compressed configuration data.

对于工业应用,本发明可应用在微处理器中,其应用在一般或特殊用途的计算机装置中。For industrial applications, the invention may be implemented in microprocessors, which are used in general or special purpose computing devices.

为让本发明的特征和优点能更明显易懂,下文特举出优选实施例,并配合附图,作详细说明如下:In order to make the features and advantages of the present invention more comprehensible, the preferred embodiments are specifically listed below, together with the accompanying drawings, and are described in detail as follows:

附图说明Description of drawings

图1为已知具有一保险丝阵列的微处器内核的示意图。FIG. 1 is a schematic diagram of a conventional microprocessor core with a fuse array.

图2为图1的具有冗余保险丝组的微处器内核的示意图。FIG. 2 is a schematic diagram of the microprocessor core with redundant fuse sets of FIG. 1 .

图3为根据本发明的提供压缩及解压缩配置数据给一多内核装置的示意图。FIG. 3 is a schematic diagram of providing compressed and decompressed configuration data to a multi-core device according to the present invention.

图4为根据本发明的保险丝解解压缩机制的一可能实施例。Fig. 4 is a possible embodiment of a fuse decompression mechanism according to the present invention.

图5为本发明的压缩配置数据的一可能格式示意图。FIG. 5 is a schematic diagram of a possible format of the compressed configuration data of the present invention.

图6为本发明的解压缩微码插入配置数据的一可能格式示意图。FIG. 6 is a schematic diagram of a possible format of the decompressed microcode insertion configuration data of the present invention.

图7为本发明的解压缩微码寄存器配置数据的一可能格式示意图。FIG. 7 is a schematic diagram of a possible format of the decompressed microcode register configuration data of the present invention.

图8为本发明的解压缩快取校正数据的一可能格式示意图。FIG. 8 is a schematic diagram of a possible format of the decompressed cache correction data of the present invention.

图9为本发明的解压缩保险丝校正数据的一可能格式示意图。FIG. 9 is a schematic diagram of a possible format of decompressed fuse correction data according to the present invention.

图10为本发明的具有可配置冗余保险丝阵列的多内核装置的一可能实施例。Figure 10 is a possible embodiment of the present invention for a multi-core device with configurable redundant fuse arrays.

图11为本发明的快速地载入配置数据至多内核装置的机制示意图。FIG. 11 is a schematic diagram of a mechanism for quickly loading configuration data into a multi-core device according to the present invention.

图12为本发明的错误确认校正机制的一可能实施例。FIG. 12 is a possible embodiment of the false positive correction mechanism of the present invention.

【符号说明】【Symbol Description】

100、200:方块;101:微处器内核;102、201、336:保险丝阵列;103:重置逻辑;104:重置电路;105:重置微码;107:控制电路;108:微码寄存器;109:微码插入元件:110:快取校正元件;RESET:重置信号;202、PFB1~PFBN、RFB1~RFBN:保险丝组;203:保险丝;210~211:寄存器;PR1:主要寄存器;RR1:冗余寄存器;212:异或逻辑门;FB3:输出;310:装置编程器;320:压缩器;301、302:虚拟保险丝组;302:虚拟保险丝;330:晶粒;332、1002、1102:内核;334:快取存储器;401、1001、1101、1201:物理级保险丝阵列;403:已压缩的微码插入保险丝;404:已压缩的寄存器保险丝;405:已压缩的快取校正保险缩;406:已压缩的保险丝校正保险丝;408:插入保险丝元件;409:寄存器保险丝元件;410:快取保险丝元件;411:保险丝校正元件;412:总线;414:微码插入元件;415:微码寄存器;416:快取校正元件;417:重置控制器;420:微处器内核;421:解压缩器;500:压缩配置数据;502:压缩数据栏位;503:结束类型栏位;504:结束熔断栏位;600:解压缩微码插入配置数据;601:内核地址栏位;602:微码ROM地址栏位;603:微码插入数据栏位;604:解压缩数据方块;700:解压缩微码寄存器配置数据;701:内核地址栏位;702:微码寄存器地址栏位;703:微码寄存器数据栏位;704:解压缩数据方块;800:解压缩快取校正数据;802:次单元行地址栏位;803:替换行地址栏位;804:解压缩数据方块;900:解压缩保险丝校正数据;901:结束熔断栏位;902:重熔栏位;903:保险丝校正栏位;1000:多内核装置;1003、1103:阵列控制;1004:配置数据寄存器;1100:装置;1104:载入数据寄存器;1101:物理级保险丝阵列;1105:非内核RAM;1200:错误确认校正机制;1202:ECC码方块;1203:压缩配置数据方块;1224:ECC元件;1226:解压缩器;1220:微处理器内核;1222:重置控制器;CDATA:总线;ADDR:地址总线;CODE:码总线;DATA:数据总线。100, 200: block; 101: microprocessor core; 102, 201, 336: fuse array; 103: reset logic; 104: reset circuit; 105: reset microcode; 107: control circuit; 108: microcode Register; 109: microcode insertion component: 110: cache correction component; RESET: reset signal; 202, PFB1~PFBN, RFB1~RFBN: fuse group; 203: fuse; 210~211: register; PR1: main register; RR1: redundant register; 212: XOR logic gate; FB3: output; 310: device programmer; 320: compressor; 301, 302: virtual fuse group; 302: virtual fuse; 330: die; 332, 1002, 1102: kernel; 334: cache memory; 401, 1001, 1101, 1201: physical level fuse array; 403: compressed microcode insert fuse; 404: compressed register fuse; 405: compressed cache correction fuse 406: Compressed fuse correction fuse; 408: Insert fuse element; 409: Register fuse element; 410: Cache fuse element; 411: Fuse correction element; 412: Bus; 414: Microcode insert element; 415: Micro code register; 416: cache correction component; 417: reset controller; 420: microprocessor core; 421: decompressor; 500: compressed configuration data; 502: compressed data field; 503: end type field; 504: end fuse field; 600: decompress microcode and insert configuration data; 601: kernel address field; 602: microcode ROM address field; 603: microcode insert data field; 604: decompress data block; 700: Decompress microcode register configuration data; 701: kernel address field; 702: microcode register address field; 703: microcode register data field; 704: decompress data block; 800: decompress cache correction data; 802: Subunit row address field; 803: Replace row address field; 804: Decompress data block; 900: Decompress fuse correction data; 901: End fuse field; 902: Remelt field; 903: Fuse correction field ;1000: multi-core device; 1003, 1103: array control; 1004: configuration data register; 1100: device; 1104: load data register; 1101: physical level fuse array; 1105: non-core RAM; 1200: error confirmation correction mechanism ;1202: ECC code block; 1203: compressed configuration data block; 1224: ECC component; 1226: decompressor; 1220: microprocessor core; 1222: reset controller; CDATA: bus; ADDR: address bus; CODE: code bus; DATA: data bus.

具体实施方式detailed description

集成电路(IC)是指一电子电路集合形成在一小尺寸的半导体材料上,如硅。集成电路也可称为芯片、微芯片或晶粒。An integrated circuit (IC) is a collection of electronic circuits formed on a small size of a semiconductor material, such as silicon. An integrated circuit may also be called a chip, microchip or die.

中央处理单元(CPU)是指电子电路(即硬件)藉由执行一数据的操作,执行一计算机程序(即为计算机应用程序或应用程序)的指令,该数据的操作包括算术操作、逻辑操作及输入/输出操作。A central processing unit (CPU) refers to an electronic circuit (i.e., hardware) that executes instructions of a computer program (i.e., a computer application program or an application program) by performing an operation on data, which includes arithmetic operations, logic operations, and Input/output operations.

微处理器是指一电子装置作为一单一集成电路上的一中央处理单元。一微处理器接收数字数据,作为输入,根据一存储器的指令处理数据,并产生输出指令所要求的操作结果,其中存储器设置或不设置在晶粒上。一通用微处理器可应用在桌上型、可携带型或平板电路中,并且可计算、文字处理、多媒体显示以及网络浏览。一微处理器可能设置在一嵌入式系统中,用以控制许多装置,包括设备、移动电话、智能手机以及工业用控制装置。Microprocessor refers to an electronic device as a central processing unit on a single integrated circuit. A microprocessor receives digital data as input, processes the data according to instructions from a memory, where the memory is provided or not provided on the die, and produces the result of the operation required by the output instructions. A general-purpose microprocessor can be used in desktop, portable or tablet circuits, and can perform calculation, word processing, multimedia display and web browsing. A microprocessor may be placed in an embedded system to control many devices, including equipment, mobile phones, smartphones, and industrial control devices.

多内核处理器也称为多内核微处理器、多内核处理器为一微处理器,其具有多中央处单元(内核),其形成在同一集成电路上。A multi-core processor, also known as a multi-core microprocessor, is a microprocessor that has multiple central processing units (cores) formed on the same integrated circuit.

指令集架构(ISA)或指令集是指用以编程的一计算机架构的部分,其包括数据类型、指令、寄存器、地址模式、存储器架构、中断及异常处理与输入/输出。一ISA包括操作码集合的特性(即机器语言指令)以及一特定CPU所使用的本地命令。Instruction Set Architecture (ISA) or instruction set refers to the portion of a computer architecture used for programming, including data types, instructions, registers, address modes, memory architecture, interrupt and exception handling, and input/output. An ISA includes the properties of a set of opcodes (ie, machine language instructions) as well as the native commands used by a particular CPU.

x86相容微处理器是指一具有执行计算机应用程序的微处理器,根据x86ISA便可编程计算机应用程序。An x86 compatible microprocessor refers to a microprocessor capable of executing computer applications, which are programmable according to the x86 ISA.

微码是指多个微指令。一微指令(也称为本地指令)为一指令,其可由一微处理器次运算单元所执行。在一可能实施例中,次单元包括整数运算单元、浮点运算单元、MMX运算单元以及载入/存储运算单元。举例而言,藉由精简指令集(RISC)直接执行微指令。对于多个指令集(CISC)微处理器(如x86相容性微处理器)而言,x86指令被转译成组合微指令,并且藉由CISC的微处理器直接执行组合微指令。Microcode refers to multiple microinstructions. A microinstruction (also called a native instruction) is an instruction that is executable by a microprocessor sub-arithmetic unit. In a possible embodiment, the subunits include an integer operation unit, a floating point operation unit, an MMX operation unit, and a load/store operation unit. For example, microinstructions are directly executed by a Reduced Instruction Set (RISC). For multiple instruction set (CISC) microprocessors (eg, x86 compatible microprocessors), x86 instructions are translated into composite microinstructions, and the composite microinstructions are directly executed by the CISC microprocessor.

保险丝为一导体结构,一般为细线,藉由施加电压至细线上和/或使电流流过细线,便可熔断细线。利用已知的制造技术,将保险丝沉积在一晶粒拓朴的一特定位置,用以制造出可编程的细线。在制造完成后,熔断(或不熔断)保险丝,用以提供晶粒上的一相对应装置的编程。A fuse is a conductive structure, usually a thin wire, which can be blown by applying a voltage to the thin wire and/or passing a current through the thin wire. Using known fabrication techniques, fuses are deposited at specific locations on a die topology to create programmable fine lines. After fabrication is complete, fuses are blown (or not) to provide programming of a corresponding device on the die.

请参考图1,方块100为目前微处器内核101的示意图。微处器内核101具有一保险丝阵列102,用以提供配置数据给微处器内核101。保险丝阵列102具有多个半导体保险丝(未显示)。半导体保险丝一般是成列排列。保险丝阵列102耦接重置逻辑103。重置逻辑103包括重置电路104及重置微码105。重置逻辑103耦接控制电路107、微码寄存器108、微码插入元件109以及快取校正元件110。一外部重置信号RESET耦接微处器内核101。重置逻辑103接收外部重置信号RESET。Please refer to FIG. 1 , a block 100 is a schematic diagram of a current microprocessor core 101 . The microprocessor core 101 has a fuse array 102 for providing configuration data to the microprocessor core 101 . The fuse array 102 has a plurality of semiconductor fuses (not shown). Semiconductor fuses are generally arranged in columns. The fuse array 102 is coupled to the reset logic 103 . The reset logic 103 includes a reset circuit 104 and a reset microcode 105 . The reset logic 103 is coupled to the control circuit 107 , the microcode register 108 , the microcode insertion component 109 and the cache correction component 110 . An external reset signal RESET is coupled to the microprocessor core 101 . The reset logic 103 receives an external reset signal RESET.

本领域的技术人员均深知,在集成电路装置制造完后,大量的集成电路装置使用保险丝(也称为连结或保险丝结构),用以提供集成电路的配置。举例而言,图1的微处器内核101提供功能选择,用以选择是应用在桌上型装置或便携式装置中。因此,在制造时,保险丝阵列102里的保险丝可能会被烧断,用以选择装置,如一便携式装置。因此,当重置信号RESET被致能后,重置逻辑103读取保险丝阵列102里被指定的保险丝的状态,并且重置电路104(在此例中,不是重置微码105)致能相对应的控制电路107。控制电路107禁能微处器内核101中与桌上型功能有关的元件,并致能微处器内核101中与便携式功能有关的元件。因此,微处器内核101被启动,并被重置成一便携式装置。另外,重置逻辑103读取保险丝阵列102里的其它保险丝的状态,并且重置电路104(在此例中,不是重置微码105)致能相对应的快取校正元件110,用以对给微处器内核101的至少一快取存储器(未显示)提供校正机制。因此,微处器内核101被启动,并被重置成一便携式装置,并且微处器内核101的快取存储器的校正机制也被设置妥当。Those skilled in the art are well aware that a large number of integrated circuit devices use fuses (also known as links or fuse structures) to provide integrated circuit configuration after the integrated circuit device is fabricated. For example, the microprocessor core 101 of FIG. 1 provides function selection for application in a desktop device or a portable device. Therefore, during manufacture, the fuses in the fuse array 102 may be blown for selecting a device, such as a portable device. Therefore, when the reset signal RESET is enabled, the reset logic 103 reads the state of the specified fuse in the fuse array 102, and the reset circuit 104 (in this example, not the reset microcode 105) enables the corresponding Corresponding control circuit 107. The control circuit 107 disables the components related to the desktop function in the microprocessor core 101 and enables the components related to the portable function in the microprocessor core 101 . Therefore, the microprocessor core 101 is activated and reset as a portable device. In addition, reset logic 103 reads the states of other fuses in fuse array 102, and reset circuit 104 (in this example, not reset microcode 105) enables corresponding cache correction elements 110 for A correction mechanism is provided for at least one cache memory (not shown) of the microprocessor core 101 . Therefore, the microprocessor core 101 is activated and reset as a portable device, and the calibration mechanism of the cache memory of the microprocessor core 101 is also properly set.

上述的例子仅仅是在描述图1的微处器内核101里的保险丝的许多不同用途。本领域的技术人员均深知保险丝的其它用途,并不限制在装置特定数据的配置(如序号、唯一的加密码、计算机内部结构的授权数据,其可被使用者存取、速度设定、电压设定),初始化数据及插入数据。举例而言,许多目前的装置执行微码,用以初始化微码寄存器108。保险丝阵列102里的微码寄存器保险丝(未显示)可能提供用以初始化的数据,在重置操作下,藉由重置逻辑103(重置电路104或重置微码105,或重置电路104及重置微码105)读取初始化的数据,并将读取到的初始化数据提供给微码寄存器108。为了达到上述目的,重置电路104包括硬件元件,其提供特定类型的配置数据,重置微码105无法提供这些特定类型的配置数据。重置微码105包括多个微指令,所述微指令设置在一内部微码存储器(未显示)中。在重置微处器内核101时,执行内部微码存储器,用以执行微处器内核101的初始化功能,这些功能包括,读取保险丝阵列102里的配置数据,并将读取结果提供给多个元件,如微码寄存器108及微代码插入机制109。微处器内核101的一特殊设置就是判断保险丝阵列的配置数据是否通过重置微码105提供给微处器内核101的不同元件107~110中。本发明的目的并非个别地初始化集成电路装置,本领域的技术人员均深知目前的微处器内核101的配置元件107-110的种类通常落在四种类型中,以图1为例,即为控制电路、微码寄存器、微码插入机制以及快取校正机制。另外,本领域的技术人员将可知,配置数据的值很明显是根据数据的类型而改变。例如,一64位的控制电路107可能包括ASCII数据,ASCII数据用以指定微处器内核101的序号。其它64位的控制寄存器可能具有64种不同的速度设定,每次只有一种速度设定会被致能,用以控制微处器内核101的操作速度。一般而言,微码寄存器108可能会被初始化成全为0(即低逻辑状态)或全为1(如高逻辑状态)。微代码插入机制109可能包括均匀分布的1及0,用以表示一微码ROM(未显示)中需要被置换的微码值的地址,这些地址的微码值将被置换。最后,快取校正机制可能包含很少的设定值1,用以表示一某一快取次组(sub-bank)元件(即一列或一行)需被替换成一特定取代次组元件。The foregoing examples are merely illustrative of the many different uses for fuses within microprocessor core 101 of FIG. 1 . Those skilled in the art are well aware of other uses of fuses, not limited to the configuration of device-specific data (such as serial numbers, unique encryption codes, authorization data of computer internal structures, which can be accessed by users, speed settings, voltage setting), initialize data and insert data. For example, many current devices execute microcode to initialize microcode registers 108 . Microcode register fuses (not shown) in fuse array 102 may provide data for initialization, during a reset operation, by reset logic 103 (reset circuit 104 or reset microcode 105, or reset circuit 104 and reset microcode 105) to read the initialized data, and provide the read initialized data to the microcode register 108. To accomplish this, reset circuit 104 includes hardware elements that provide certain types of configuration data that reset microcode 105 cannot provide. The reset microcode 105 includes a plurality of microinstructions that are located in an internal microcode memory (not shown). When the microprocessor core 101 is reset, the internal microcode memory is executed to perform initialization functions of the microprocessor core 101. These functions include reading the configuration data in the fuse array 102 and providing the read results to multiple components, such as microcode registers 108 and microcode insertion mechanism 109. A special setting of the microprocessor core 101 is to determine whether the configuration data of the fuse array is provided to the various components 107 - 110 of the microprocessor core 101 through the reset microcode 105 . The purpose of the present invention is not to individually initialize integrated circuit devices. Those skilled in the art know that the types of configuration elements 107-110 of the current microprocessor core 101 usually fall into four types. Taking FIG. 1 as an example, namely These are control circuits, microcode registers, microcode insertion mechanisms, and cache correction mechanisms. In addition, those skilled in the art will appreciate that the value of configuration data obviously changes according to the type of data. For example, a 64-bit control circuit 107 may include ASCII data, and the ASCII data is used to specify the serial number of the microprocessor core 101 . Other 64-bit control registers may have 64 different speed settings, and only one speed setting is enabled at a time to control the operating speed of the microprocessor core 101 . In general, the microcode registers 108 may be initialized to be all 0s (ie, a low logic state) or all 1s (ie, a high logic state). The microcode insertion mechanism 109 may include evenly distributed 1s and 0s to indicate the addresses of microcode values to be replaced in a microcode ROM (not shown). The microcode values of these addresses will be replaced. Finally, the cache correction mechanism may include a few setpoints of 1 to indicate that a certain cache sub-bank element (ie, a column or row) needs to be replaced with a specific replacement sub-bank element.

保险丝阵列102提供一优秀的功能,用以在一装置(如微处器内核101)制造完成后,设定微处器内核101。藉由熔断保险丝阵列102里的某些保险丝,就可使微处器内核101操作在相对应的环境中。然而,本领域的技术人员均深知,藉由编程保险丝阵列102,便可改变微处器内核101的操作环境。微处器内核101可能因业务需求而被初始化,如由一桌上型装置被初始化成一便携式装置。因此,设计者可设置冗余保险丝在保险丝阵列102中,作为不熔断保险丝,因此,便可初始化微处器内核101的配置、校正制造错误…等等。具有冗余保险丝的保险丝阵列将叙明于图2中。The fuse array 102 provides an excellent function for programming the microprocessor core 101 after a device such as the microprocessor core 101 is manufactured. By blowing certain fuses in the fuse array 102, the microprocessor core 101 can be operated in a corresponding environment. However, those skilled in the art are well aware that the operating environment of the microprocessor core 101 can be changed by programming the fuse array 102 . The microprocessor core 101 may be initialized due to business requirements, such as being initialized from a desktop device to a portable device. Therefore, the designer can place redundant fuses in the fuse array 102 as non-blowing fuses, thereby initializing the configuration of the microprocessor core 101, correcting manufacturing errors, . . . and so on. A fuse array with redundant fuses is illustrated in FIG. 2 .

请参考图2,方块200显示微处器内核101里的一保险丝阵列201,其具有保险丝组202(冗余保险丝组RFB1~RFBN与第一保险丝PFB1~PFBN)。保险丝阵列201里的第一保险丝组PFB1~PFBN会先被熔断,然后再熔断冗余保险丝组RFB1~RFBN。冗余保险丝组RFB1~RFBN及PFB1~PFBN包括一既定的数量的保险丝203,并且保险丝203各自独立,保险丝203的数量与微处器内核101的特定设计有关。举例而言,在64位的微处器内核101中,保险丝组202的保险丝203数量可能是64个,用以便于微处器内核101使用配置数据。Please refer to FIG. 2 , a block 200 shows a fuse array 201 in the microprocessor core 101 , which has fuse groups 202 (redundant fuse groups RFB1 -RFBN and first fuses PFB1 -PFBN). The first fuse group PFB1 ˜ PFBN in the fuse array 201 will be blown first, and then the redundant fuse group RFB1 ˜ RFBN will be blown. The redundant fuse groups RFB1 - RFBN and PFB1 - PFBN include a predetermined number of fuses 203 , and the fuses 203 are independent. The number of fuses 203 is related to the specific design of the microprocessor core 101 . For example, in a 64-bit microprocessor core 101 , the number of fuses 203 in the fuse bank 202 may be 64 for the microprocessor core 101 to use configuration data.

保险丝阵列201耦接寄存器210~211。一般而言,寄存器210~211设置在微处器内核101的重置逻辑中。主要寄存器PR1用以读取第一保险丝组PFB1~PFBN中的一个(假设是方块图200里的保险丝组PFB3)。冗余寄存器RR1用以读取冗余保险丝组RFB1~RFBN中的一个。寄存器210与211均耦接一异或逻辑门212。异或逻辑门212提供一输出FB3。The fuse array 201 is coupled to the registers 210 - 211 . Generally speaking, the registers 210 - 211 are set in the reset logic of the microprocessor core 101 . The primary register PR1 is used to read one of the first fuse banks PFB1 - PFBN (assuming it is the fuse bank PFB3 in the block diagram 200 ). The redundancy register RR1 is used to read one of the redundant fuse groups RFB1 - RFBN. The registers 210 and 211 are both coupled to an XOR logic gate 212 . The XOR logic gate 212 provides an output FB3.

在操作中,在制造出微处器内核101之后,可藉由已知的技术编程第一保险丝组PFB1~PFBN,使其成为微处器内核101可使用的配置数据。冗余保险丝组RFB1~RFBN均未被熔断,并且维持在一低逻辑状态。在启动/重置微处器内核101时,主要寄存器210以及冗余寄存器211分别读取第一保险丝组PFB1~PFBN及冗余保险丝组RFB1~RFBN的状态。异或(Exclusive OR,又称之为“互斥或”)逻辑门212对寄存器210及211所存储的数据进行异或运算,用以产生输出FB3。由于所有的冗余保险丝组均未被熔断(即均为低逻辑状态),因此,输出FB3的值很简单,就是制造后,第一保险丝组PFB1~PFBN被编程的结果。In operation, after the microprocessor core 101 is manufactured, the first fuse groups PFB1 ˜ PFBN can be programmed by known techniques to become configuration data that the microprocessor core 101 can use. None of the redundant fuse sets RFB1 ˜ RFBN are blown, and remain in a low logic state. When starting/resetting the microprocessor core 101 , the main register 210 and the redundant register 211 respectively read the states of the first fuse banks PFB1 -PFBN and the redundant fuse banks RFB1 -RFBN. An Exclusive OR (also referred to as “mutually exclusive OR”) logic gate 212 performs an exclusive OR operation on the data stored in the registers 210 and 211 to generate the output FB3. Since all the redundant fuse groups are not blown (that is, they are all in low logic state), the value of the output FB3 is simply the result of the programming of the first fuse group PFB1˜PFBN after manufacture.

目前,因设计或业务需求,要求写入至第一保险丝组PFB1~PFBN的信息可被更改。因此,为了改变启动后所读取到的信息,必须执行一可编程操作,用以熔断冗余保险丝组RFB1~RFBN里的对应冗余保险丝203。在熔断所选择的冗余保险丝组RFB1~RFBN里的一保险丝203时,第一保险丝组PFB1~PFBN里的一相对应保险丝203逻辑性地与其相配。Currently, due to design or business requirements, it is required that the information written into the first fuse groups PFB1 -PFBN can be changed. Therefore, in order to change the read information after startup, a programmable operation must be performed to blow the corresponding redundant fuses 203 in the redundant fuse groups RFB1 -RFBN. When a fuse 203 in the selected redundant fuse group RFB1 -RFBN is blown, a corresponding fuse 203 in the first fuse group PFB1 -PFBN is logically matched with it.

图2的机制可能在微处器内核101中,提供重熔的保险丝203,但是本领域技术人员所深知,由于只有一组冗余保险丝组RFB1~RFBN,因此,冗余保险丝组RFB1~RFBN里的每保险丝203只能被重熔一次,为了提供多次的重熔,可在微处器内核101中加入多组额外保险丝组202及寄存器210~211。The mechanism of Fig. 2 may provide remelting fuse 203 in microprocessor core 101, but those skilled in the art know well, because there is only one group of redundant fuse groups RFB1~RFBN, therefore, redundant fuse groups RFB1~RFBN Each fuse 203 in the fuse can only be remelted once. In order to provide multiple remelting, multiple groups of additional fuse groups 202 and registers 210-211 can be added in the microprocessor core 101.

截止目前为止,图1及图2的保险丝阵列机制提供足够的弹性给微处理器内核及其它相关的装置,用以允许有限次数的重熔。制造技术(如65及45纳米工艺)可在晶粒上形成足够的保险丝,用以设定晶粒上的一微处器内核101。然而,目前的技术仍受限制于两个明显的因素。第一个因素是,本领域的趋势是形成多个微处器内核101在同一晶粒中,用以增加处理效能。这些称为多内核装置可能具有2-16个独立内核101,为了开启/重置内核101,每一内核配置有保险丝数据。因此,对于4内核装置而言,4个保险丝阵列201会被使用在独立的内核中,每一内核的数据可能不同(如快取校正数据、冗余保险丝数据等)。第二是,本领域技术人员均深知,制造技术的降低(如32纳米),因此,晶体管的尺寸也降低,故保险丝的尺寸增加,故需在32纳米的晶粒上实现45纳米的保险丝阵列。So far, the fuse array schemes of FIGS. 1 and 2 provide enough flexibility for the microprocessor core and other related devices to allow a limited number of remelting. Manufacturing techniques (eg, 65 and 45 nm processes) can form enough fuses on the die to set a microprocessor core 101 on the die. However, current techniques are still limited by two obvious factors. The first factor is that the trend in the art is to form multiple microprocessor cores 101 in the same die to increase processing performance. These so-called multi-core devices may have 2-16 individual cores 101, each core configured with fuse data in order to turn on/reset the cores 101. Therefore, for a 4-core device, 4 fuse arrays 201 will be used in independent cores, and the data of each core may be different (such as cache calibration data, redundant fuse data, etc.). The second is that those skilled in the art are well aware that the reduction of manufacturing technology (such as 32 nanometers), therefore, the size of the transistor is also reduced, so the size of the fuse increases, so it is necessary to realize a 45-nanometer fuse on a 32-nanometer grain. array.

根据上述的限制以及装置设计者的其它挑战,特别是多内核装置的设计者,本发明提供明显的改善,优于已知装置配置机制,本发明在多内核装置中编程独立的内核,并增加快取校正及保险丝再编程(重熔)的次数。稍后将通过图3-图12说明本发明。In view of the above-mentioned limitations and other challenges for device designers, especially designers of multi-core devices, the present invention provides a significant improvement over known device configuration mechanisms, the present invention programs independent cores in a multi-core device, and increases Number of cache corrections and fuse reprogramming (remelting). The present invention will be explained later with reference to FIGS. 3-12 .

图3为本发明的系统300的示意图,用以压缩并解压缩多内核装置的配置数据。多内核装置具有多内核332。内核332设置在一晶粒330上。为方便说明,图3仅显示内核CORE1~CORE4。内核CORE1~CORE4设置在晶粒330上。在其它实施例中,晶粒330可能具有其它数量的内核332。在本实施例中,所有内核332共用单一快取存储器334。快取存储器334也设置在晶粒330之上。单一可编程保险丝阵列336也设置在晶粒330上,并且在启动/重置操作下,每一内核332用以存取保险丝阵列336,用以提取并解压缩配置数据。FIG. 3 is a schematic diagram of a system 300 of the present invention for compressing and decompressing configuration data of a multi-core device. The multi-core device has multiple cores 332 . The core 332 is disposed on a die 330 . For the convenience of description, Fig. 3 only shows the cores CORE1-CORE4. The cores CORE1 to CORE4 are disposed on the die 330 . In other embodiments, die 330 may have other numbers of cores 332 . In this embodiment, all cores 332 share a single cache memory 334 . Cache memory 334 is also disposed on die 330 . A single programmable fuse array 336 is also provided on die 330 and is used by each core 332 to access fuse array 336 to extract and decompress configuration data during boot/reset operations.

在一实施例中,内核332包括微处理器内核,用以构成一多内核微处理器(晶粒)330。在其它实施例中,多内核微处理器330作为x86相容多内核微处理器。在其它实施例,快取存储器334包括二级(level 2)快取存储器,其耦接微处理器内核332。在一可能实施例中,保险丝阵列336具有8192(8K)个各自独立的保险丝(未显示),但也可使用其它数量的保险丝。在单一内核的实施例中,只有一内核332设置在晶粒330之上,并且该内核332耦接快取存储器334及保险丝阵列336。虽然稍后将说明多内核装置(晶粒)330的特征及功能,但多内核装置的特征与单一内核的特征相同。In one embodiment, the core 332 includes a microprocessor core to form a multi-core microprocessor (die) 330 . In other embodiments, the multi-core microprocessor 330 is an x86 compatible multi-core microprocessor. In other embodiments, the cache memory 334 includes a level 2 cache memory coupled to the microprocessor core 332 . In one possible embodiment, fuse array 336 has 8192 (8K) individual fuses (not shown), although other numbers of fuses may be used. In a single core embodiment, only one core 332 is disposed on the die 330 and the core 332 is coupled to the cache memory 334 and the fuse array 336 . Although the features and functions of the multi-core device (die) 330 will be described later, the features of the multi-core device are the same as those of a single core.

系统300也包括一装置编程器310。装置编程器310包括一压缩器320。压缩器320耦接虚拟保险丝阵列303。在一可能实施例中,装置编程器310可能包括一中央处理器(未显示),用以处理配置数据,并在晶粒330制造完成后,利用已知的编程技术,编程保险丝阵列336。中央处理器可能整合在一晶圆测试设备中,用以测试制造完成后的装置晶粒330。在一可能实施例中,压缩器320可能具有一应用程序,其可在装置编程器310上被执行,并且虚拟保险丝阵列303可能包括一存储器的地址,该存储器由压缩器320所存取。虚拟保险丝阵列303具有许多虚拟保险丝组301。每一虚拟保险丝组301具有多个虚拟保险丝302。在一可能实施例中,虚拟保险丝阵列303具有128个虚拟保险丝组301,每一虚拟保险丝组301具有64个虚拟保险丝302,因此,保险丝阵列303的尺寸为8Kb。System 300 also includes a device programmer 310 . Device programmer 310 includes a compressor 320 . The compressor 320 is coupled to the virtual fuse array 303 . In one possible embodiment, device programmer 310 may include a central processing unit (not shown) for processing configuration data and programming fuse array 336 after die 330 is fabricated using known programming techniques. The CPU may be integrated into a wafer testing facility for testing device die 330 after fabrication. In one possible embodiment, the compressor 320 may have an application program executable on the device programmer 310 , and the virtual fuse array 303 may include the address of a memory that is accessed by the compressor 320 . The virtual fuse array 303 has many virtual fuse groups 301 . Each virtual fuse group 301 has a plurality of virtual fuses 302 . In a possible embodiment, the virtual fuse array 303 has 128 virtual fuse groups 301 , and each virtual fuse group 301 has 64 virtual fuses 302 , therefore, the size of the fuse array 303 is 8Kb.

操作上,如同图1所示,在制造阶段中,装置330的配置信息会被输入至虚拟保险丝阵列330中。因此,配置信息包括控制电路的配置数据、微码寄存器的初始化数据、微码插入数据以及快取校正数据。另外,如上所述,不同类型的配置数据的值均不相同。虚拟保险丝阵列303为一保险丝阵列(未显示)的逻辑代表,其具有晶粒330上的每一微处理器内核332的配置信息,以及晶粒330上的每一快取存储器334的校正数据。In operation, as shown in FIG. 1 , configuration information of the device 330 is input into the virtual fuse array 330 during the manufacturing stage. Therefore, the configuration information includes configuration data of the control circuit, initialization data of microcode registers, microcode insertion data, and cache correction data. Also, as mentioned above, different types of configuration data have different values. Virtual fuse array 303 is a logical representation of a fuse array (not shown) with configuration information for each microprocessor core 332 on die 330 and calibration data for each cache memory 334 on die 330 .

当信息存入虚拟保险丝阵列303后,压缩器320读取每一虚拟保险丝组301的虚拟保险丝302的状态,并利用每一数据类型所对应的分离压缩算法(distinct compressionalgorithms)进行压缩,用以产生压缩保险丝阵列数据。在一可能实施例中,控制电路的系统数据并不会被压缩,但会在没有压缩的情况下被转换。为了压缩微码寄存器数据,可使用一微码寄存器数据压缩算法,用以压缩具有一状态分布的数据,该状态分布相对于微码寄存器数据。为了压缩微码插入数据,可使用一微码插入数据压缩算法,用以有效地压缩具有一状态分布的数据,该状态分布对应于微码插入数据。为了压缩快取校正数据,可使用一快取校正数据压缩算法,用以有效地压缩具有一状态分布的数据,该状态分布对应于快取校正数据。After the information is stored in the virtual fuse array 303, the compressor 320 reads the status of the virtual fuses 302 of each virtual fuse group 301, and uses the separate compression algorithms (distinct compression algorithms) corresponding to each data type to perform compression to generate Compress fuse array data. In a possible embodiment, the system data of the control circuit is not compressed, but converted without compression. To compress the microcode register data, a microcode register data compression algorithm may be used for compressing data having a state distribution relative to the microcode register data. To compress the microcode insertion data, a microcode insertion data compression algorithm for efficiently compressing data having a state distribution corresponding to the microcode insertion data may be used. To compress the cache alignment data, a cache alignment data compression algorithm can be used to efficiently compress data with a state distribution corresponding to the cache alignment data.

接着,装置编程器310将未被压缩及已被压缩的保险丝阵列数据编程至晶粒330上的物理级保险丝阵列336。Next, device programmer 310 programs the uncompressed and compressed fuse array data into physical level fuse array 336 on die 330 .

在启动/重置操作时,每一内核332可能存取物理级保险丝阵列336,用以提取未压缩及已压缩的保险丝阵列数据,并且在每一内核332内的重置电路/微码(未显示)发布未压缩保险丝阵列数据,并根据每一数据类型所对应的分离解压缩算法,解压缩已压缩的保险丝阵列数据,用以提供原本在虚拟保险丝阵列303里的原始值。然后,重置电路/微码将配置信息提供给控制电路(未显示)、微码寄存器(未显示)、插入元件(未显示)以及快取校正元件(未显示)。During a boot/reset operation, each core 332 may access physical level fuse array 336 to extract both uncompressed and compressed fuse array data, and reset circuitry/microcode within each core 332 (not Shown) publishes the uncompressed fuse array data, and decompresses the compressed fuse array data according to the separate decompression algorithm corresponding to each data type, so as to provide the original value originally in the virtual fuse array 303 . The reset circuit/microcode then provides configuration information to the control circuit (not shown), microcode registers (not shown), intervening components (not shown), and cache correction components (not shown).

藉由本发明的保险丝阵列压缩系统300,可使得装置设计者减少物理级保险丝阵列336里的保险丝数量,并且在启动/重置操作中,利用已压缩的信息程序,对一多内核装置330进行设定。The fuse array compression system 300 of the present invention enables device designers to reduce the number of fuses in the physical level fuse array 336 and utilize the compressed information during boot/reset operations to configure a multi-core device 330 Certainly.

请参考图4,方块400显示本发明的保险丝解解压缩机制。解压缩机制可能设置在图3的每一微处理器内核332中。为了清楚叙明本发明,图4仅显示单一内核420,但图3的晶粒上的每一内核332均具有图4的内核420的元件。物理级保险丝阵列401设置在晶粒上,并且耦接内核420。物理级保险丝阵列401具有已压缩的微码插入保险丝403、已压缩的寄存器保险丝404、已压缩的快取校正保险丝405以及已压缩的保险丝校正保险丝406。物理级保险丝阵列组401可能也具有未压缩的配置数据(未显示),如上述的系统配置数据和/或错误检测及校正(Error Checking and Correction;以下简称ECC)码(未显示)。稍后将说明根据本发明的ECC特征。Referring to FIG. 4, block 400 shows the fuse decompression mechanism of the present invention. A decompression mechanism may be provided in each microprocessor core 332 of FIG. 3 . To clearly illustrate the present invention, FIG. 4 only shows a single core 420 , but each core 332 on the die of FIG. 3 has elements of the core 420 of FIG. 4 . The physical level fuse array 401 is disposed on the die and coupled to the core 420 . The physical level fuse array 401 has compressed microcode insertion fuses 403 , compressed register fuses 404 , compressed cache correction fuses 405 , and compressed fuse correction fuses 406 . The physical level fuse array group 401 may also have uncompressed configuration data (not shown), such as the aforementioned system configuration data and/or Error Checking and Correction (ECC) codes (not shown). The ECC feature according to the present invention will be described later.

微处器内核420包括一重置控制器417。重置控制器417接收一重置信号REST,重置信号REST用以初始化内核420,使内核420进行一重置步骤。重置控制器417具有一解压缩器421。解压缩器421具有一插入保险丝元件408、一寄存器保险丝元件409以及一快取保险丝元件410。解压缩器421也包括一保险丝校正元件411,其通过总线412耦接插入保险丝元件408、寄存器保险丝元件409以及快取保险丝元件410。插入保险丝元件408耦接内核420内的微码插入元件414。寄存器保险丝元件409耦接内核420里的微码寄存器415。快取保险丝元件410耦接内核420内的快取校正元件416。在一可能实施例中,快取校正元件416设置在具有二级(L2)快取存储器(未显示)的晶粒上。所有内核420共用快取校正元件416,如图3的快取存储器334。在另一实施例中,快取校正元件416设置在具有一级(L1)快取存储器(未显示)的晶粒上。在其它实施例中,快取校正元件416设置在具有一级(L1)及二级(L2)快取存储器(未显示)的晶粒上。The microprocessor core 420 includes a reset controller 417 . The reset controller 417 receives a reset signal REST, and the reset signal REST is used to initialize the core 420 to make the core 420 perform a reset step. The reset controller 417 has a decompressor 421 . The decompressor 421 has an insert fuse element 408 , a register fuse element 409 and a cache fuse element 410 . The decompressor 421 also includes a fuse correction element 411 coupled to the insertion fuse element 408 , the register fuse element 409 and the cache fuse element 410 via a bus 412 . Insert fuse element 408 is coupled to microcode insert element 414 within core 420 . Register fuse element 409 is coupled to microcode register 415 in core 420 . The cache fuse element 410 is coupled to the cache correction element 416 within the core 420 . In one possible embodiment, the cache correction element 416 is disposed on a die with a level 2 (L2) cache memory (not shown). All cores 420 share a cache correction element 416 , such as cache memory 334 of FIG. 3 . In another embodiment, the cache correction element 416 is disposed on a die with a level 1 (L1) cache memory (not shown). In other embodiments, the cache correction element 416 is disposed on a die having a level 1 (L1) and level 2 (L2) cache memory (not shown).

在操作时,当重置信号RESET被致能时,重置控制器417读取物理级保险丝阵列401里的保险丝403~406的状态,并将已压缩系统保险丝(未显示)的状态提供给解压缩器421。在读取并提供完成后,解压缩器421里的保险丝校正元件411解压缩已压缩的保险丝校正保险丝406的状态,用以提供数据,该数据表示物理级保险丝阵列401的至少一保险丝地址,先前已被编程的这状态会被改变。解压缩后的数据可能包含至少一保险丝地址的值。此至少一保险丝地址(及随意值)会通过总线412传送至元件408~410,使得相对应的保险丝的状态在被解压缩前就被改变。In operation, when the reset signal RESET is asserted, the reset controller 417 reads the state of the fuses 403-406 in the physical level fuse array 401 and provides the state of the compressed system fuses (not shown) to the solution compressor 421 . After the read and provide is complete, the fuse correction component 411 in the decompressor 421 decompresses the compressed fuse correction fuse 406 state to provide data representing at least one fuse address of the fuse array 401 at the physical level, previously The state that has been programmed will be changed. The decompressed data may contain at least one fuse address value. The at least one fuse address (and optional value) is transmitted to the components 408-410 through the bus 412, so that the state of the corresponding fuse is changed before being decompressed.

在一可能实施例中,插入保险丝元件408包括微码,用以根据一微码插入解压缩算法,解压缩已被压缩的微码插入保险丝403的状态,微码插入解压缩算法对应于图3所述的微码插入压缩算法。在一可能实施例中,寄存器保险丝元件409包括微码,用以根据一寄存器保险丝解压缩算法,解压缩已压缩的寄存器保险丝404,寄存器保险丝解压缩算法对应于图3所述的寄存器保险丝压缩算法。在一可能实施例中,快取保险丝元件410包括微码,用以根据一快取校正保险丝解压缩算法,解压缩已压缩的快取校正保险丝405,快取校正保险丝解压缩算法对应于图3所述的快取校正保险丝压缩算法。保险丝校正元件411通过总线412提供保险丝的地址,元件408~410的每一个根据这些地址改变相对应的保险丝的状态后,再根据相对应的算法,解压缩保险丝各自的数据。稍后将详细说明本发明所述的多次重熔保险丝,重熔的步骤早于元件408~411的解压缩动作的初始化。在一可能实施例中,总线412可能包括已知的微码程序机制,用以传送数据。本发明还具有一综合解压器421,其可根据配置数据的类型,辨别并解压缩配置数据。因此,为了说明本发明,解压缩器421仅具有元件408~411,然而,只要缩合解压器421可提供元件408~411的功能,本发明可能不需要元件408~411。In a possible embodiment, the insert fuse element 408 includes microcode for decompressing the state of the compressed microcode insert fuse 403 according to a microcode insert decompression algorithm, the microcode insert decompress algorithm corresponding to FIG. 3 The microcode inserts the compression algorithm. In a possible embodiment, the register-fuse element 409 includes microcode to decompress the compressed register-fuse 404 according to a register-fuse decompression algorithm corresponding to the register-fuse compression algorithm described in FIG. 3 . In one possible embodiment, cache-fuse element 410 includes microcode for decompressing compressed cache-correct-fuse 405 according to a cache-correct-fuse decompression algorithm, the cache-correct-fuse decompression algorithm corresponding to FIG. 3 The cache correction fuses the compression algorithm. The fuse correction component 411 provides the address of the fuse through the bus 412, and each of the components 408-410 changes the state of the corresponding fuse according to these addresses, and then decompresses the respective data of the fuse according to the corresponding algorithm. The multi-refuse fuse described in the present invention will be described in detail later, and the refuse step is earlier than the initialization of the decompression action of the elements 408-411. In one possible embodiment, the bus 412 may include known microcode programming mechanisms for transferring data. The present invention also has an integrated decompressor 421, which can identify and decompress configuration data according to the type of configuration data. Therefore, to illustrate the present invention, the decompressor 421 has only elements 408-411, however, as long as the condensation-decompressor 421 can provide the functions of the elements 408-411, the present invention may not require the elements 408-411.

在一可能实施例中,重置控制器417初始化插入保险丝元件408的微码,用以对已压缩的微码插入保险丝403进行解压缩。重置控制器417也初始化寄存器保险丝元件409的微码,用以对已压缩的寄存器保险丝404的状态进行解压缩。再者,重置控制器417更初始化快取保险丝元件410的微码,用以对已压缩的快取校正保险丝405进行解压缩。在进行解压缩前,解压缩器421的微码会先改变某些保险丝的状态,其中这些被改变的保险丝为已压缩的保险丝校正保险丝406的保险丝校正数据所指定的保险丝。In one possible embodiment, the reset controller 417 initializes the microcode inserted into the fuse element 408 to decompress the compressed microcode inserted into the fuse 403 . The reset controller 417 also initializes the microcode of the register fuse element 409 to decompress the compressed register fuse 404 state. Moreover, the reset controller 417 further initializes the microcode of the cache fuse element 410 to decompress the compressed cache correction fuse 405 . Before decompression, the microcode of the decompressor 421 will first change the state of certain fuses, wherein the changed fuses are the fuses specified by the fuse correction data of the compressed fuse correction fuse 406 .

重置控制器417、解压缩器421及元件408~411用以执行上述的功能。重置控制器417、解压缩器421及元件408~411可能包括逻辑、电路、装置或微码、或逻辑、电路、装置或微码的组合、或等效元件,其可执行上述功能及操作。这些用以实现重置控制器417、解压缩器421及元件408~411的元件可能被其它电路、微码…等所共用,其可执行重置控制器417、解压缩器421及元件408~411或内核420里的其它元件的其它功能和/或操作。The reset controller 417, the decompressor 421 and the components 408-411 are used to perform the above functions. Reset controller 417, decompressor 421 and components 408-411 may include logic, circuit, device or microcode, or a combination of logic, circuit, device or microcode, or equivalent components, which can perform the functions and operations described above . These components used to realize the reset controller 417, the decompressor 421 and the components 408-411 may be shared by other circuits, microcodes, etc., which can execute the reset controller 417, the decompressor 421 and the components 408-411 411 or other functions and/or operations of other elements in the kernel 420.

在改变及解压缩物理级保险丝阵列401内的保险丝403~406的状态后,解压缩后的虚拟保险丝的状态会被提供给微码插入元件414、微码寄存器415以及快取校正元件416。因此,内核420进行接下来的重置操作。After changing and decompressing the states of the fuses 403 - 406 in the physical fuse array 401 , the decompressed states of the virtual fuses are provided to the microcode insertion component 414 , microcode register 415 and cache correction component 416 . Therefore, the kernel 420 performs the next reset operation.

在其它实施例中,在进行重置操作时,上述的解压缩功能并不需依照一特别的顺序而被执行。举例而言,微码插入数据的解压缩动作可能在微码寄存器初始化数据的解压缩动作之后。同样地,在其它实施例中,为了满足设计需求,解压缩功能可能同时进行。In other embodiments, the above-mentioned decompression functions do not need to be executed in a specific order when performing the reset operation. For example, the decompression of microcode-inserted data may follow the decompression of microcode register initialization data. Likewise, in other embodiments, in order to meet design requirements, the decompression function may be performed simultaneously.

另外,本发明的元件408~411的实现并非一定要用硬件电路所对应的微代码,由于在一般的微处理器内核420中,其具有一些元件,这些元件可更加轻易地通过硬件被初始化(如与一快取相关的一扫描链),而不同于直接写入微码。这些的实现细节由设计者自行决定。然而,在初始化微码之前的重置操作中,已知技术利用硬件电路,使快取校正保险丝按惯例被读取并进入一快取校正扫描链。除非微码开始动作,不然内核的快取存储器并不会被导通,因此,本发明的特征是利用相对应硬件控制电路的微码,执行快取保险丝解压缩器410。利用微码执行快取保险丝元件410,便可将快取校正数据写入一扫描链中,并且很明显节省硬件元件,因而增加设计弹性及有益的机制。In addition, the realization of the elements 408-411 of the present invention does not necessarily use the microcode corresponding to the hardware circuit, because in the general microprocessor core 420, it has some elements, and these elements can be more easily initialized by hardware ( such as a scan chain associated with a cache), rather than directly writing microcode. The implementation details of these are at the discretion of the designer. However, in a reset operation prior to initializing the microcode, known techniques utilize hardware circuitry to routinely read cache calibration fuses and enter a cache calibration scan chain. Unless the microcode starts to operate, the cache memory of the core will not be turned on. Therefore, the feature of the present invention is to implement the cache fuse decompressor 410 by using the microcode corresponding to the hardware control circuit. Using microcode to implement the cache fuse element 410 can write cache correction data into a scan chain, and obviously saves hardware components, thus increasing design flexibility and beneficial mechanisms.

请参考图5,其显示本发明的压缩配置数据500的格式。图3的压缩器320压缩虚拟保险丝阵列330的数据,并编程(即熔断)压缩配置数据500至多内核装置330的物理级保险丝阵列336中。在上述的重置结果中,藉由每一内核332,压缩配置数据500会从物理级保险丝阵列336中被提取,并且被解压缩,并被每一内核420的解压缩器421的元件408~411所校正。解压缩及校正配置数据会接着被提供给内核420的多元件414~416,用以初始化内核420。Please refer to FIG. 5 , which shows the format of the compressed configuration data 500 of the present invention. The compressor 320 of FIG. 3 compresses the data of the virtual fuse array 330 and programs (ie blows) the compressed configuration data 500 into the physical level fuse array 336 of the multi-core device 330 . As a result of the reset described above, the compressed configuration data 500 is extracted from the physical level fuse array 336 by each core 332 and decompressed by elements 408- 411 corrected. The decompressed and corrected configuration data is then provided to the multiple elements 414 - 416 of the core 420 for initializing the core 420 .

压缩配置数据500具有至少一压缩数据栏位(D)502,而上述的每一配置数据类型由结束类型栏位(ET)503所分隔。编程事件(即熔断)会被结束熔断栏位(EB)504所分隔。根据一压缩算法,编码与每一数据类型有关的压缩数据栏位502,用以最小化位(即保险丝)数量,这些位用以存储与每一数据类型有关的特征位图案。构成每一压缩数据栏位502的物理级保险丝阵列336的保险丝数量为一特定数据类型所使用的压缩算法的特征。举例而言,考虑到一内核具有64位微码寄存器时,其必须全被初始化成0或1。一最佳缩压算法可能根据数据类型,提供64个压缩数据栏位502,每一压缩数据栏位502具有一特定微码寄存器的初始化数据,压缩数据栏位502被指定在寄存器数量顺序中(即1-64)。并且每一压缩数据栏位502具有一单一保险丝,若一相对应的微码寄存器需被初始化成1时,该单一保险丝被熔断,若相对应的微码寄存器需被初始化成0时,该单一保险丝不被熔断。The compressed configuration data 500 has at least one compressed data field (D) 502 , and each configuration data type mentioned above is separated by an end type field (ET) 503 . Programming events (ie, blowouts) are separated by an end blowout field (EB) 504 . The compressed data field 502 associated with each data type is encoded according to a compression algorithm to minimize the number of bits (ie, fuses) used to store the flag pattern associated with each data type. The number of fuses that make up the physical level fuse array 336 for each compressed data field 502 is characteristic of the compression algorithm used for a particular data type. For example, consider a core with 64-bit microcode registers, which must all be initialized to 0 or 1. An optimal compression algorithm may provide 64 compressed data fields 502, each with initialization data for a particular microcode register, depending on data type, the compressed data fields 502 are specified in register number order ( ie 1-64). And each compressed data field 502 has a single fuse. If a corresponding microcode register needs to be initialized to 1, the single fuse is blown. If the corresponding microcode register needs to be initialized to 0, the single fuse is blown. The fuse is not blown.

在初始编程事件后,内核420里的解压缩器421的元件408~410利用结束类型栏位503判断是否它们各自的压缩数据已被置于物理级保险丝阵列336中,并且保险丝校正解压缩器411利用结束熔断保险丝504,找出压缩保险丝校正数据,压缩保险丝校正数据在一初始化程序事件后,已被编程(即熔断)。针对随后进行的多编程事件,本发明在物理级保险丝阵列336中设置了大量的备用保险丝,以下将详细说明。After the initial programming event, the components 408-410 of the decompressor 421 in the core 420 use the end type field 503 to determine whether their respective compressed data has been placed in the physical level fuse array 336, and the fuse corrects the decompressor 411 The compressed fuse calibration data that has been programmed (ie, blown) after an initialization procedure event is located using End Blow Fuse 504 . For subsequent multi-programming events, the present invention sets a large number of spare fuses in the physical-level fuse array 336, which will be described in detail below.

上述的压缩类型格式用以说明本发明的配置数据的压缩及解压缩。然而,图5所示的特定类型数据的压缩、分隔及被压缩至保险丝阵列401里的数据类型与数量并非用以限制本发明。在其它实施例中,可利用其它的数量、类型与格式修改本发明,以得到不同的装置及算法。The above-mentioned compression type formats are used to illustrate the compression and decompression of configuration data in the present invention. However, the compression, separation, and data types and quantities of specific types of data that are compressed into the fuse array 401 shown in FIG. 5 are not intended to limit the present invention. In other embodiments, the present invention can be modified with other numbers, types and formats to obtain different devices and algorithms.

请参考图6,图6显示根据本发明的解压缩微码插入配置数据600的一可能格式。在重置操作下,利用每一内核420读取物理级保险丝阵列401里的压缩微码插入配置数据。然后,根据总线412所提供的保险丝校正数据,校正压缩微码插入配置数据。然后,藉由插入保险丝解压缩器408对已校正的压缩微码插入配置数据进行解压缩。解压缩程序的结果为解压缩微码插入配置数据600。数据600包括多个解压缩数据方块604。解压缩数据方块604的数量对应于内核420里需初始化数据的微码插入元件414的数量。每一解压缩数据方块604包括一内核地址栏位601、一微码存储器(ROM)地址栏位602以及一微码插入数据栏位603。栏位601~603的长度为内核算法的特征。在进行部分的解压缩程序时,插入保险丝元件408提供的目标数据的完整影像,其用以初始化微码插入元件414。在随后的微码插入配置数据600的解压缩中,可能使用已知的发布机制,用以发布数据603给各自的地址内核以及微码插入元件414里的微码ROM替代电路/寄存器。Please refer to FIG. 6 , which shows a possible format of the decompressed microcode insertion configuration data 600 according to the present invention. Under reset operation, each core 420 is utilized to read the compressed microcode insertion configuration data in the physical level fuse array 401 . Then, according to the fuse correction data provided by the bus 412, the compressed microcode insertion configuration data is corrected. Then, the corrected compressed microcode insert configuration data is decompressed by insert fuse decompressor 408 . The result of the decompression procedure inserts configuration data 600 for the decompression microcode. Data 600 includes a plurality 604 of decompressed data blocks. The number of decompressed data blocks 604 corresponds to the number of microcode inserts 414 in the kernel 420 that need to initialize data. Each decompressed data block 604 includes a kernel address field 601 , a microcode memory (ROM) address field 602 and a microcode insertion data field 603 . The lengths of the fields 601-603 are characteristic of the kernel algorithm. During the partial decompression process, the full image of the object data provided by the fuse component 408 is inserted, which is used to initialize the microcode insertion component 414 . In the subsequent decompression of the microcode insertion configuration data 600 , known publishing mechanisms may be used for publishing the data 603 to the respective address kernel and microcode ROM replacement circuits/registers in the microcode insertion component 414 .

请参考图7,图7显示根据本发明的解压缩微码寄存器配置数据700的格式。在重置操作中,藉由每一内核420,读取物理级保险丝阵列401里的压缩微码寄存器配置数据。然后根据总线412所提供的保险丝校正数据校正压缩微码寄存器配置数据。然后,寄存器保险丝元件409对校正后的压缩微码寄存器配置数据进行解压缩。解压缩程序的结果为解压缩微码寄存器配置数据700。数据700包括多个解压缩数据方块704,解压缩数据方块704的数量对应内核420里需要初始数据的微码寄存器415的数量。每一解压缩数据方块704具有一内核地址栏位701、一微码寄存器地址栏位702以及一微码寄存器数据栏位703。栏位701~703的长度为内核算法的特征。在进行部分的解压缩程序时,寄存器保险丝元件提供目标数据的完整影像,用以初始化微码寄存器415。在随后的微码寄存器配置数据700的解压缩中,可能使用已知的发布机制,用以发布数据703给各自的地址内核以及微码寄存器415。Please refer to FIG. 7 , which shows the format of decompressed microcode register configuration data 700 according to the present invention. In a reset operation, by each core 420, the compressed microcode register configuration data in the physical level fuse array 401 is read. The compressed microcode register configuration data is then corrected based on the fuse correction data provided by the bus 412 . Then, the register fuse element 409 decompresses the corrected compressed microcode register configuration data. The result of the decompression procedure is decompressed microcode register configuration data 700 . Data 700 includes a number of decompressed data blocks 704 corresponding to the number of microcode registers 415 in kernel 420 that require initial data. Each decompressed data block 704 has a kernel address field 701 , a microcode register address field 702 and a microcode register data field 703 . The lengths of the fields 701-703 are characteristic of the kernel algorithm. The register fuse element provides a complete image of the target data to initialize microcode registers 415 during a partial decompression process. In the subsequent decompression of the microcode register configuration data 700 , known publishing mechanisms may be used for publishing the data 703 to the respective address cores and microcode registers 415 .

请参考图8,图8显示根据本发明的解压缩快取校正数据800的一可能格式。在重置操作中,藉由每一内核420读取物理级保险丝阵列401的压缩快取校正数据。然后,根据总线412所提供的保险丝校正数据校正压缩快取校正数据。接着,利用快取保险丝元件410解压缩校正压缩快取校正数据。解压缩程序的结果为解压缩快取校正数据800。多内核处理器300使用不同的快取机制,并且解压缩快取校正数据800存在共用的二级快取存储器334中。所有内核332可能存取同一快取存储器334,用以使用相同的存储空间。因此,图8所示的格式是根据上述的算法。数据800包括多个解压缩数据方块804,解压缩数据方块804的数量对应内核420里需要校正数据的快取校正元件416的数量。每一解压缩数据方块804具有一次单元行地址栏位802以及一替换行地址栏位803。本领域技术人员均深知,在制造快取存储器时,会在快取存储器的次单元中,一并形成冗余的行(或列),用以利用一非功能性行(或列)取代一特定次单元里的功能性冗余行(或列)。因此,解压缩快取校正数据800允许非功能性行取代功能性行(如图8所示)。另外,本领域技术人员均深知,当需要利用冗余次单元行进行取代时,已知具有快取校正的保险丝阵列机制的每一次单元行的保险丝会被熔断。因此,由于需要大量的保险丝(用以存取所有的次单元及行),故只能含括一部分的次单元,因而造成已知快取校正保险丝很少被熔断。本发明的特征在于存取并且压缩次单元行的地址,并且针对需要被替换的次单元行替换行地址。因此,最小化被应用在快取校正数据的保险丝数量。因此,在物理级保险丝阵列的尺寸以及额外被编程的配置数据量的限制下,本发明延伸快取存储器334的次单元行(或列)的数量,快取存储器334可被校正。在图8所示的实施例中,相关联的内核332共用二级快取存储器334,用以存取并提供校正数据802~803给各自的快取校正元件416。栏位801~803的长度为内核算法的特征。在解压缩程序的部分中,快取校正保险丝元件410提供目标数据的完整影像,目标数据用以初始化快取校正元件416。解压缩快取校正数据800后,在负责的内核420内的已知发布机制可能发布数据802~803给被存取的快取校正元件416。Please refer to FIG. 8 , which shows a possible format of decompressed cache correction data 800 according to the present invention. In the reset operation, the compressed cache correction data of the physical level fuse array 401 is read by each core 420 . Then, the compressed cache correction data is corrected according to the fuse correction data provided by the bus 412 . Next, the cache correction data is decompressed using the cache fuse element 410 . The result of the decompression process is decompressed cache correction data 800 . The multi-core processor 300 uses different cache mechanisms, and the decompressed cache correction data 800 is stored in the shared secondary cache memory 334 . All cores 332 may access the same cache memory 334 to use the same storage space. Thus, the format shown in Figure 8 is according to the algorithm described above. The data 800 includes a plurality of decompressed data blocks 804 , the number of decompressed data blocks 804 corresponds to the number of cache correction elements 416 in the core 420 that need to correct data. Each decompressed data block 804 has a primary unit row address field 802 and a replacement row address field 803 . Those skilled in the art are well aware that when manufacturing a cache memory, redundant rows (or columns) will be formed together in the subunits of the cache memory to replace them with a non-functional row (or column) Functionally redundant rows (or columns) within a particular subunit. Thus, decompressing cache correction data 800 allows non-functional rows to replace functional rows (as shown in FIG. 8 ). In addition, those skilled in the art are well aware that when a redundant sub-unit row needs to be used for replacement, it is known that the fuse of each sub-unit row in the cache correction fuse array mechanism will be blown. Therefore, since a large number of fuses are required (to access all subunits and rows), only a fraction of the subunits can be included, resulting in known cache correction fuses being seldom blown. The present invention is characterized by accessing and compressing addresses of subunit rows, and replacing row addresses for subunit rows that need to be replaced. Thus, minimizing the number of fuses applied to cache correction data. Therefore, the present invention extends the number of subunit rows (or columns) of the cache memory 334 under the limitation of the size of the physical level fuse array and the amount of additionally programmed configuration data, and the cache memory 334 can be corrected. In the embodiment shown in FIG. 8 , associated cores 332 share the L2 cache memory 334 for accessing and providing correction data 802 - 803 to respective cache correction elements 416 . The lengths of the fields 801-803 are characteristic of the kernel algorithm. During part of the decompression process, the cache correction fuse component 410 provides a complete image of the target data used to initialize the cache correction component 416 . After decompressing the cache alignment data 800 , known publishing mechanisms within the responsible kernel 420 may issue the data 802 - 803 to the cache alignment element 416 being accessed.

请参考图9,图9显示本发明的解压缩保险丝校正数据900的一可能格式。如上所述,在重置时,保险丝校正元件411存取物理级保险丝阵列401里的压缩保险丝校正数据406,对压缩保险丝校正数据进行解压缩,并且提供解压缩保险丝校正数据900给内核420的其它元件408~410。解压缩保险丝校正数据具有至少一结束熔断栏位(EB)901,其表示在物理级保险丝阵列401里的编程事件已成功结束。若随后生一编程事件时,一重熔栏位(R)902会被编程,用以表示随后的至少一保险丝校正栏位(FC)903,其表示物理级保险丝阵401里的保险丝会再次被熔断。每一保险丝校正栏位具有物理级保险丝阵列401里的特定保险丝的地址,特定保险丝会再次被设定成一状态(即熔断或不熔断)。只有保险丝校正方块栏位903里的保险丝会再次被设定,并且每一再次设定事件的栏位903会被一结束熔断栏位901所隔开。若重熔栏位902成功地被编码在一特定结束熔断栏位901后,根据相对应的保险丝校正栏位,随后至少保险丝可能会被再次熔断。因此,在限定的保险丝阵列尺寸及阵列所能提供的数据中,本发明可对相同的保险丝进行多次的设定。Please refer to FIG. 9 , which shows a possible format of the decompressed fuse correction data 900 of the present invention. As described above, at reset, the fuse correction element 411 accesses the compressed fuse correction data 406 in the physical level fuse array 401, decompresses the compressed fuse correction data, and provides the decompressed fuse correction data 900 to the rest of the core 420. Elements 408-410. The decompressed fuse calibration data has at least one end blown field (EB) 901 indicating that the programming event in the physical level fuse array 401 has successfully ended. If a programming event occurs subsequently, a re-fuse column (R) 902 will be programmed to indicate at least one subsequent fuse correction column (FC) 903, which indicates that the fuse in the physical fuse array 401 will be blown again . Each fuse calibration field has the address of a specific fuse in the physical level fuse array 401 that is to be set again to a state (ie, blown or not blown). Only the fuses in the Fuse Correction box field 903 will be reset, and each field 903 for a resetting event will be separated by an end blown field 901 . If the remelt field 902 is successfully coded after a specific end blow field 901, according to the corresponding fuse correction field, then at least the fuse may be blown again. Therefore, within the limited size of the fuse array and the data that the array can provide, the present invention can perform multiple settings for the same fuse.

对于一多内核晶粒上的额外特征,本发明共用具有已压缩配置数据的物理级保险丝阵列,便可具有实际特性以及电源增益。另外,本领域的技术人员均深知目前的半导体保险丝结构常常具有一些缺点,其中一项就是“长回”(growback)。长回就是编程程序的颠倒,如一保险丝在熔断一段时间后,又恢复连接,也就是从一编程状态(即熔断)回到一未编程状态(即未熔断)。For additional features on a multi-core die, the present invention shares physical-level fuse arrays with compressed configuration data for practical performance and power gains. In addition, those skilled in the art are well aware that the current semiconductor fuse structure often has some disadvantages, one of which is "growback". Long back is exactly the inversion of programming procedure, as a fuse is blown after a period of time, connects again, just returns to an unprogrammed state (being not blown) from a programming state (being blown).

为了控制长回以及其它挑战,本发明具有许多优点,其中一项就是提供冗余、未配置的物理级保险丝阵列。因此,图11提供一可配置的冗余保险丝组机制。One of the many advantages of the present invention, in order to control long loops and other challenges, is to provide a redundant, unconfigured physical level fuse array. Therefore, Figure 11 provides a configurable redundant fuse bank mechanism.

请参考图10,图10显示根据本发明的多内核装置1000的物理级保险丝阵列1001的一可能实施例。多内核装置1000包括多个内核1002,其特征已公开在图3-图10及相关说明中。另外,每一内核1002包括阵列控制1003,其根据配置数据寄存器1004里的配置数据而被编程。每一阵列控制1003耦接冗余保险丝阵列1001。Please refer to FIG. 10 , which shows a possible embodiment of a physical-level fuse array 1001 of a multi-core device 1000 according to the present invention. The multi-core device 1000 includes a plurality of cores 1002, the features of which are disclosed in FIGS. 3-10 and related descriptions. Additionally, each core 1002 includes an array control 1003 that is programmed according to configuration data in configuration data registers 1004 . Each array control 1003 is coupled to the redundant fuse array 1001 .

为了说明本发明,图10仅显示四个内核1002以及两个物理级保险丝阵列1001,但并非用以限制本发明,在其它实施例中,根据本发明的公开,也可使用其它数量的内核1002及物理级保险丝阵列1001。To illustrate the present invention, FIG. 10 only shows four cores 1002 and two physical-level fuse arrays 1001, but it is not intended to limit the present invention. In other embodiments, other numbers of cores 1002 can also be used according to the disclosure of the present invention. And physical level fuse array 1001.

在操作时,每一物理级保险丝阵列1001接收配置数据寄存器1004里的配置数据,其表示物理级保险丝阵列1001的一特定配置。在一实施例中,根据配置数据的值,物理级保险丝阵列1001作为一聚集物理级保险丝阵列。聚集物理级保险丝阵列的尺寸等于各自的物理级保险丝阵列1001的尺寸总和,并且聚集物理级保险丝阵列可能用以存储接下来的多笔配置数据,其所存储的数据量大于单一物理级保险丝阵列1001所存储的数据量。因此,阵列控制1003控制相对应的内核1002,用以读取物理级保险丝阵列1001,如一聚集物理级保险丝阵列。在其它实施例中,为了控制长回,物理级保险丝阵列1001根据配置数据的值,作为冗余保险丝阵列,其利用相同的配置数据而被编程,并且每一内核1002里的阵列控制1003具有许多元件,用以对两个(或更多)阵列的内容进行OR逻辑,因此,若阵列1001的至少一熔断保险丝发生长回时,阵列1001里的至少另一相对应保险丝仍维持熔断状态。在一自动防故障实施例中,根据配置数据的值,选择性地禁能至少一物理级保险丝阵列1001,并且致能剩余的阵列1001,用以作为一聚集配置或是一OR逻辑配置。因此,每一内核1002里的阵列控制1003根据配置数据寄存器1004里的一特定配置数据,不存取被禁能的阵列1001的内容,但存取被致能的冗余阵列。In operation, each physical level fuse array 1001 receives configuration data in configuration data registers 1004 representing a particular configuration of the physical level fuse array 1001 . In one embodiment, the physical level fuse array 1001 acts as an aggregated physical level fuse array according to the value of the configuration data. The size of the aggregated physical-level fuse array is equal to the sum of the sizes of the respective physical-level fuse arrays 1001, and the aggregated physical-level fuse array may be used to store the next multiple configuration data, and the amount of data stored is greater than that of a single physical-level fuse array 1001 The amount of data stored. Therefore, the array control 1003 controls the corresponding core 1002 to read the physical level fuse array 1001, such as an aggregated physical level fuse array. In other embodiments, to control long-back, the physical level fuse array 1001 is programmed with the same configuration data as a redundant fuse array according to the value of the configuration data, and the array control 1003 in each core 1002 has many The element is used to perform OR logic on the contents of two (or more) arrays, so that if at least one blown fuse of the array 1001 is blown, at least another corresponding fuse in the array 1001 remains blown. In a fail-safe embodiment, at least one physical-level fuse array 1001 is selectively disabled and the remaining arrays 1001 are enabled, either as an aggregate configuration or as an OR logic configuration, based on configuration data values. Therefore, the array control 1003 in each core 1002 does not access the contents of the disabled array 1001 but accesses the enabled redundant array according to a specific configuration data in the configuration data register 1004 .

藉由任意已知具有可编程保险丝的装置、外部引脚设定、JTAG程序或其它相似装置,便可编程配置数据寄存器1004。Configuration data registers 1004 are programmable by any known device with programmable fuses, external pin settings, JTAG programming, or other similar means.

另一实施例中,本发明发现当至少一物理级保险丝阵列被设置在具有多内核的单一晶粒上时,在内核存取阵列时,可能会发生问题。具体而言,在启动/重置操作下,多内核处理器里的每一内核必须根据一串行方向,读取物理级保险丝阵列。首先,第一内核读取阵列,然后第二内核读取阵列,接着第三内核读取阵列,以此类推。本领域的技术人员均深知,相较于内核所执行的其它操作,保险丝阵列的读取是最花费时间,因此,当许多内核必需读取相同阵列时,所需要的时间大致上是一内核的读取时间乘上晶粒上的内核数量。本领域技术人员均深知,为了得到可靠的结果,必需读取这些保险丝,但根据制造过程,半导体保险丝的读取次数及寿命影响将会影响半导体保险丝的质量。因此,在其它实施例中,本发明降低所述内核读取物理级保险丝阵列的时间,并在启动及重置操作中藉由降低多内核处理器的内核的存取数量,用以增加保丝阵列的寿命。In another embodiment, the inventors have discovered that when at least one physical level fuse array is disposed on a single die with multiple cores, problems may occur when the cores access the array. Specifically, under boot/reset operations, each core in a multi-core processor must read the physical level fuse array according to a serial direction. First, the first core reads the array, then the second core reads the array, then the third core reads the array, and so on. Those skilled in the art are well aware that the read of the fuse array is the most time consuming compared to other operations performed by the core, so when many cores have to read the same array, the time required is roughly one core multiplied by the number of cores on the die. Those skilled in the art are well aware that these fuses must be read in order to obtain reliable results, but according to the manufacturing process, the reading times and life of the semiconductor fuse will affect the quality of the semiconductor fuse. Therefore, in other embodiments, the present invention reduces the time it takes for the core to read the physical level fuse array, and is used to increase fuses by reducing the number of accesses to the cores of a multi-core processor during boot and reset operations. The lifetime of the array.

请参考图11,其显示根据本发明快速地将配置数据载入多内核装置1100的机制示意图。装置1100具有多个内核1102,其特性如图3-图10的相关说明所述。另外,每一内核1102具有阵列控制1103,其被一载入数据寄存器1104的载入数据所编程。每一内核1102耦接一物理级保险丝1101,其特征如图3-图10的相关说明所述。每一内核1102耦接随机存取存储器(RAM)1105,其与内核1102设置在相同的晶粒之上,但不能设置在内核1102之中。因此,RAM 1105称为非内核RAM 1105。Please refer to FIG. 11 , which shows a schematic diagram of a mechanism for rapidly loading configuration data into a multi-core device 1100 according to the present invention. The device 1100 has a plurality of cores 1102 whose characteristics are described in the related descriptions of FIGS. 3-10 . Additionally, each core 1102 has an array control 1103 that is programmed with load data into a load data register 1104 . Each core 1102 is coupled to a physical level fuse 1101 , the features of which are described in the related descriptions of FIGS. 3-10 . Each core 1102 is coupled to random access memory (RAM) 1105 , which is disposed on the same die as the core 1102 , but cannot be disposed within the core 1102 . Therefore, RAM 1105 is referred to as non-core RAM 1105 .

为方便说明,图11仅显示四内核1102以及一物理级保险丝阵列1101,但并非用以限制本发明,在其它实施例中,可延伸成任意数量的内核1101以及多个物理级保险丝阵列1101。For convenience of illustration, FIG. 11 only shows four cores 1102 and one physical-level fuse array 1101 , but this is not intended to limit the present invention. In other embodiments, any number of cores 1101 and multiple physical-level fuse arrays 1101 can be extended.

在操作时,每一内核接收载入数据寄存器1104的载入数据,其代表相对于物理级保险丝阵列1101的一特定载入数据。载入数据寄存器1104的内容值指定一内核1102为主内核1102,而其它剩余内核称为次内核1102,其具有载入顺序。因此,在启动/重置操作下,阵列控制1103令主内核1102读取物理级保险丝阵列1101的内容,然后将物理级保险丝阵列1101的内容写入非内核RAM 1105。若多个物理级保险丝阵列1101设置在晶粒上,则非内核RAM 1105的容量必须能够存储所有物理级保险丝阵列1101的数据。在主内核1102将物理级保险丝阵列1101的内容存入非内核RAM 1105后,阵列控制1103令相对应的次内核1102读取非内核RAM 1105中载入数据寄存器1104的特定内容。In operation, each core receives load data in a load data register 1104 representing a particular load data relative to the physical level fuse array 1101 . The content value of the load data register 1104 designates one core 1102 as the primary core 1102, and the other remaining cores are called secondary cores 1102, which have a load order. Therefore, under a boot/reset operation, the array control 1103 causes the main core 1102 to read the contents of the physical level fuse array 1101 and then write the contents of the physical level fuse array 1101 to the uncore RAM 1105 . If multiple physical-level fuse arrays 1101 are disposed on a die, the capacity of the uncore RAM 1105 must be able to store data of all physical-level fuse arrays 1101 . After the main core 1102 stores the content of the physical level fuse array 1101 into the uncore RAM 1105 , the array control 1103 instructs the corresponding secondary core 1102 to read the specific content loaded into the data register 1104 in the uncore RAM 1105 .

已知具有可编程保险丝、外部引脚设定、JTAG程序或其它相关装置,均可编程载入数据寄存器1104。图11所示的实施例也可整合在图10所述的冗余保险丝阵列机制中。It is known to have programmable fuses, external pin settings, JTAG programs, or other related devices, all of which can be programmed into the data register 1104 . The embodiment shown in FIG. 11 can also be integrated in the redundant fuse array scheme described in FIG. 10 .

请参考图12,其显示根据本发明的错误确认校正(ECC)机制的一可能实施例。错误确认校正机制1200可整合在图3-图11所的实施例中,并强化配置数据的压缩及解压缩。图12描述一微处理器内核1220,其设置在一晶粒之上,并耦接一物理级保险丝阵列1201。物理级保险丝阵列1201包括压缩配置数据方块1203。压缩配置数据方块如上所述。为了压缩配置数据方块1203,物理级保险丝阵列1201具有ECC码方块1202。每一ECC码方块1202与一相对应的数据方块1203有关。在一可能实施例中,数据方块1203具有64位(即64保险丝),并且ECC码方块1202具有8位(即8保险丝)。内核1220具有一重置控制器1222,其接收一重置信号RESET。重置控制器1222具有一ECC元件1224,其通过总线CDATA耦接一解压缩器1226。ECC元件1224通过一地址总线ADDR、一数据总线DATA以及一码总线CODE,耦接保险丝阵列1201。Please refer to FIG. 12 , which shows a possible embodiment of the error confirmation correction (ECC) mechanism according to the present invention. The error acknowledgment correction mechanism 1200 can be integrated in the embodiments shown in FIGS. 3-11 and enhances the compression and decompression of configuration data. FIG. 12 depicts a microprocessor core 1220 disposed on a die coupled to a physical level fuse array 1201 . The physical level fuse array 1201 includes a compressed configuration data block 1203 . The compressed configuration data block is described above. To compress configuration data block 1203 , physical level fuse array 1201 has ECC code block 1202 . Each ECC code block 1202 is associated with a corresponding data block 1203 . In a possible embodiment, the data block 1203 has 64 bits (ie, 64 fuses), and the ECC code block 1202 has 8 bits (ie, 8 fuses). The core 1220 has a reset controller 1222 which receives a reset signal RESET. The reset controller 1222 has an ECC element 1224 coupled to a decompressor 1226 through the bus CDATA. The ECC element 1224 is coupled to the fuse array 1201 through an address bus ADDR, a data bus DATA and a code bus CODE.

在操作时,如同图3-图11所述,保险丝阵列1201会被数据方块1203的配置数据所编程。一特定的数据方块1203或跨越多个数据方块1203所对应的一特定数据类型(如微码插入数据、微码寄存器数据)的配置数据并不会被所编程。另外,相对于两个以上数据类型的配置数据可能会被编程至相同的数据方块1203中。另外,ECC码方块1202里的ECC码编程阵列1201。根据已知的ECC机制,ECC码被编程至一相对应的数据方块1203,但并非用以限制本发明。在其它实施例中,也可使用SECDED汉明(Hamming)码、Chipkill ECC、或是前置错误校正(FEC)码的变动。在一可能实施例中,数据方块1203相关的地址及其相对应的ECC码方块1202均为已知。因此,不需使用在图12中相邻数据方块1203的相对应ECC码方块1202。In operation, fuse array 1201 is programmed with configuration data from data block 1203 as described in FIGS. 3-11 . Configuration data corresponding to a specific data block 1203 or across multiple data blocks 1203 corresponding to a specific data type (such as microcode insertion data, microcode register data) will not be programmed. Additionally, configuration data for more than two data types may be programmed into the same data block 1203 . In addition, the ECC code programming array 1201 in the ECC code block 1202 . According to the known ECC mechanism, the ECC code is programmed into a corresponding data block 1203, but it is not intended to limit the present invention. In other embodiments, variations of SECDED Hamming codes, Chipkill ECC, or Preamble Error Correction (FEC) codes may also be used. In a possible embodiment, the addresses related to the data block 1203 and the corresponding ECC code block 1202 are both known. Therefore, there is no need to use the corresponding ECC code block 1202 of the adjacent data block 1203 in FIG. 12 .

解压缩器1226的结构及功能大致相同于图4所示的解压缩器421,并且已略为叙述在图5-11中。在重置内核1220时,在执行上述的解压缩功能之前,重置控制器1222里的ECC元件存取保险丝阵列,用以取得它的内容。通过总线ADDR,可能得到数据方块1203及ECC码方块1202的地址。通过总线DATA可得到压缩数据方块1203里的配置数据。通过总线CODE,可得到每一ECC码方块1202里的ECC码。在得到数据、地址及码后,ECC元件1224根据ECC机制,对由每一数据方块1202所提取到的数据,产生ECC确认,ECC机制用以产生ECC码,ECC码存储于相对应的ECC码方块1202。ECC元件1224也比较ECC确认与阵列1201的相应ECC码,用以产生ECC检验子。ECC元件1224更解码ECC检验子,用以判断是否没有错误发生、是否发生可校正错误或是不可校正错误发生。ECC元件1224还用以校正可校正错误。藉由总线CDATA将未校正及已校正数据提供给解压缩器1226,用以进行上述的解压缩动作。藉由总线CDATA将不可校正的错误提供给解压缩器1226。若配置数据的操作上关键部分被判断是不可校正时,解压缩器1226可能造成内核1220的关闭或是以其它方式标注错误。The structure and function of the decompressor 1226 are substantially the same as the decompressor 421 shown in FIG. 4, and have been briefly described in FIGS. 5-11. When resetting the kernel 1220, before performing the decompression function described above, the ECC element in the reset controller 1222 accesses the fuse array to obtain its contents. Through the bus ADDR, the addresses of the data block 1203 and the ECC code block 1202 may be obtained. The configuration data in the compressed data block 1203 can be obtained through the bus DATA. The ECC code in each ECC code block 1202 can be obtained through the bus CODE. After obtaining the data, address and code, the ECC component 1224 generates an ECC confirmation for the data extracted from each data block 1202 according to the ECC mechanism. The ECC mechanism is used to generate an ECC code, and the ECC code is stored in the corresponding ECC code. Block 1202. The ECC element 1224 also compares the ECC confirmation with the corresponding ECC code of the array 1201 to generate an ECC syndrome. The ECC component 1224 further decodes the ECC syndrome to determine whether no error occurs, whether a correctable error occurs or an uncorrectable error occurs. The ECC element 1224 is also used to correct correctable errors. The uncorrected and corrected data are provided to the decompressor 1226 via the bus CDATA for the decompression described above. Uncorrectable errors are provided to decompressor 1226 via bus CDATA. The decompressor 1226 may cause the kernel 1220 to shut down or otherwise flag errors if an operationally critical portion of the configuration data is determined to be uncorrectable.

在一可能实施例中,ECC元件124包括至少一微码程序,其用以执行上述的ECC功能In a possible embodiment, the ECC component 124 includes at least one microcode program, which is used to execute the above-mentioned ECC function

本发明及相对应叙述内容所提供的软件或是算法及符号表示一计算机存储器里的数据位的操作。这些内容及图示可使本领域的技术人员有效地表达相关内容给本领域的其它技术人员。使用上述的算法用以表达一自我前后一致的顺序。这些步骤需要物理量的物理级操作。一般而言,这些物理量可能是光、电或是磁性号,其可被存储、转换、整合、比较及其它操作。有些为了方便,这些信号会被称为位、值、元件、符号、特性、项目、数量或其它相关内容。The present invention and corresponding descriptions provide software or algorithms and symbols representing the manipulation of data bits in a computer memory. These contents and diagrams enable those skilled in the art to effectively convey related contents to others skilled in the art. Use the above algorithm to express a self-consistent order. The steps require physical-scale manipulations of physical quantities. Generally speaking, these physical quantities may be optical, electrical or magnetic signals, which can be stored, converted, integrated, compared and otherwise manipulated. Some of these signals will be referred to as bits, values, elements, symbols, properties, items, quantities or other related content for convenience.

然而,需注意的是,这些相似的术语与物理量有关,并且只是用以方便说明这些物理量。除非另外特别说明,不然上述的术语(如处理、估算、计算、判断、显示、或其它相关术语)指的是一计算机系统、一微处理器、一中央处理单元或相似的电子计算机装置的动作及处理,其操作并转换数据,其表示物理性、计算机系统的寄存器及存储器的数量,用以得到其它相似计算机系统的存储器、寄存器或其它相似的信息存储装置、或显示装置的物理量的数据。However, it should be noted that these similar terms relate to physical quantities and are used only for convenience in describing these quantities. Unless specifically stated otherwise, the above terms (such as processing, estimating, calculating, judging, displaying, or other related terms) refer to the actions of a computer system, a microprocessor, a central processing unit, or similar electronic computing devices. And processing, which manipulates and converts data representing physical properties, registers, and memory quantities of a computer system to obtain data of physical quantities of memory, registers, or other similar information storage devices, or display devices of other similar computer systems.

需注意到的是,本发明实现软件的方法在程序存储介质或其它相似类型的传送介质上进行编码。程序存储介质可能是电子式(如只读存储器、快闪只读存储器、电子抹除式只读存储器)、随机存取存储器磁性装置(如一软盘或一硬盘)或光学式(如只读光盘存储器CD ROM)、以及其它只读或随机存取元件。同样地,传送介质可能是金属导线、双绞线、同轴电缆、光纤、或其它已知相似的传送介质。本发明并不限制在这些实施例。It should be noted that the software implementation of the present invention is encoded on a program storage medium or other similar type of transmission medium. The program storage medium may be electronic (such as ROM, flash ROM, E-erasable ROM), random access memory magnetic (such as a floppy disk or a hard disk), or optical (such as CD-ROM CD ROM), and other read-only or random-access components. Likewise, the transmission medium may be metallic wire, twisted pair wire, coaxial cable, fiber optics, or other known similar transmission media. The present invention is not limited to these Examples.

虽然本发明已以优选实施例公开如上,然其并非用以限定本发明,本领域技术人员在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视所附权利要求书界定范围为准。Although the present invention has been disclosed above with preferred embodiments, it is not intended to limit the present invention. Those skilled in the art may make some changes and modifications without departing from the spirit and scope of the present invention. Therefore, the protection of the present invention The scope shall be determined as defined by the appended claims.

Claims (18)

1.一种处理装置,用以提供配置数据给微处理器,该处理装置包括:1. A processing device for providing configuration data to a microprocessor, the processing device comprising: 保险丝阵列组,设置在晶粒上,并包括:A fuse array set, disposed on a die, and comprising: 第一保险丝阵列;以及a first fuse array; and 第二保险丝阵列;以及a second fuse array; and 至少一内核,设置在该晶粒上,至少该内核耦接该保险丝阵列组,并包括:At least one core is disposed on the die, at least the core is coupled to the fuse array group, and includes: 阵列控制,其包括配置数据寄存器,该阵列控制存取该第一及第二保险丝阵列,并根据该配置数据寄存器的内容,处理该第一保险丝阵列的一第一状态及该第二保险丝阵列的第二状态,array control, which includes a configuration data register, the array control accesses the first and second fuse arrays, and processes a first state of the first fuse array and a state of the second fuse array according to the contents of the configuration data register second state, 其中该第一保险丝阵列根据至少该内核的一压缩配置数据而被编程,并且该配置数据寄存器的内容令该阵列控制阻止该第二保险丝阵列的存取并且只允许该第一保险丝阵列的存取,用以得知该第一状态,wherein the first fuse array is programmed according to a compressed configuration data of at least the core, and the contents of the configuration data register cause the array control to block access to the second fuse array and only allow access to the first fuse array , to know the first state, 该处理装置还包括虚拟保险丝阵列,该虚拟保险丝阵列的数据被压缩,用以产生该压缩配置数据,该虚拟保险丝阵列对应至少该内核。The processing device also includes a virtual fuse array, data of the virtual fuse array is compressed to generate the compressed configuration data, the virtual fuse array corresponds to at least the kernel. 2.如权利要求1所述的处理装置,其中至少该内核包括一x86相容的单核或多内核微处理器。2. The processing device of claim 1, wherein at least the core comprises an x86 compatible single-core or multi-core microprocessor. 3.如权利要求1所述的处理装置,其中该配置数据寄存器的内容令该阵列控制处理该第一状态及该第二状态,用以作为聚集保险丝阵列,该聚集保险丝阵列包括至少该内核的压缩配置数据,并且该压缩配置数据被编程至该第一及该第二保险丝阵列中。3. The processing device of claim 1 , wherein the content of the configuration data register causes the array control to process the first state and the second state as an aggregated fuse array, the aggregated fuse array comprising at least the core's Configuration data is compressed, and the compressed configuration data is programmed into the first and the second fuse arrays. 4.如权利要求1所述的处理装置,其中该配置数据寄存器的内容令该阵列控制处理所述第一状态及该第二状态,用以作为多个冗余保险丝阵列,所述冗余保险丝阵列被至少该内核的一压缩配置数据而编程,并且该阵列控制包括多个元件,用以对该第一状态及该第二状态进行OR逻辑运算。4. The processing device as claimed in claim 1, wherein the content of the configuration data register causes the array control to process the first state and the second state as a plurality of redundant fuse arrays, the redundant fuses The array is programmed with a compressed configuration data of at least the core, and the array control includes a plurality of elements for OR logic operation of the first state and the second state. 5.如权利要求1所述的处理装置,其中该第二保险丝阵列根据至少该内核的压缩配置数据而被编程,并且该配置数据寄存器的内容令该阵列控制阻止该第一保险丝阵列的存取并且只允许该第二保险丝阵列的存取,用以得知该第二状态。5. The processing device of claim 1 , wherein the second fuse array is programmed according to at least the kernel's compressed configuration data, and the contents of the configuration data register cause the array control to block access to the first fuse array And only the access of the second fuse array is allowed to know the second status. 6.一种处理方法,用以提供配置数据给微处理器,该处理方法包括:6. A processing method for providing configuration data to a microprocessor, the processing method comprising: 设置保险丝阵列组在晶粒上,其中该保险丝阵列组包括第一保险丝阵列以及第二保险丝阵列;setting a fuse array group on the die, wherein the fuse array group includes a first fuse array and a second fuse array; 设置至少一内核在该晶粒上,至少该内核耦接该保险丝阵列组;以及disposing at least one core on the die, at least the core being coupled to the fuse array; and 使用至少该内核的阵列控制,用以根据阵列控制中包括的配置数据寄存器的内容,存取并处理该第一保险丝阵列的第一状态及该第二保险丝阵列的第二状态,using at least the core's array control to access and process the first state of the first fuse array and the second state of the second fuse array according to the contents of configuration data registers included in the array control, 其中该第一保险丝阵列根据至少该内核的压缩配置数据而被编程,并且该配置数据寄存器的内容令该阵列控制阻止该第二保险丝阵列的存取并且只允许该第一保险丝阵列的存取,用以得知该第一状态,wherein the first fuse array is programmed according to at least the core's compressed configuration data, and the contents of the configuration data register cause the array control to block access to the second fuse array and only allow access to the first fuse array, for knowing the first state, 该处理方法还包括压缩虚拟保险丝阵列的数据,用以产生该压缩配置数据,该虚拟保险丝阵列对应至少该内核。The processing method also includes compressing data of a virtual fuse array corresponding to at least the kernel to generate the compressed configuration data. 7.如权利要求6所述的处理方法,其中至少该内核包括x86相容的单核或多内核微处理器。7. The processing method of claim 6, wherein at least the core comprises an x86 compatible single-core or multi-core microprocessor. 8.如权利要求6所述的处理方法,其中该配置数据寄存器的内容令该阵列控制处理该第一状态及该第二状态,用以作为一聚集保险丝阵列,该聚集保险丝阵列包括至少该内核的压缩配置数据,并且该压缩配置数据被编程至该第一及该第二保险丝阵列中。8. The processing method as claimed in claim 6, wherein the content of the configuration data register causes the array control to process the first state and the second state as an aggregated fuse array, the aggregated fuse array including at least the core and the compressed configuration data is programmed into the first and the second fuse arrays. 9.如权利要求6所述的处理方法,其中该配置数据寄存器的内容令该阵列控制处理该第一状态及该第二状态,用以作为多个冗余保险丝阵列,所述冗余保险丝阵列被至少该内核的一压缩配置数据而编程,并且该阵列控制包括多个元件,用以对该第一状态及该第二状态进行OR逻辑运算。9. The processing method as claimed in claim 6, wherein the content of the configuration data register makes the array control process the first state and the second state as a plurality of redundant fuse arrays, the redundant fuse array Programmed by a compressed configuration data of at least the core, and the array control includes a plurality of elements for performing an OR logic operation on the first state and the second state. 10.如权利要求6所述的处理方法,其中该第二保险丝阵列根据至少该内核的压缩配置数据而被编程,并且该配置数据寄存器的内容令该阵列控制阻止该第一保险丝阵列的存取并且只允许该第二保险丝阵列的存取,用以得知该第二状态。10. The processing method of claim 6, wherein the second fuse array is programmed according to at least the kernel's compressed configuration data, and the contents of the configuration data register cause the array control to block access to the first fuse array And only the access of the second fuse array is allowed to know the second status. 11.一种处理装置,用以提供配置数据给微处理器,该处理装置包括:11. A processing device for providing configuration data to a microprocessor, the processing device comprising: 保险丝阵列,设置在晶粒上,并包括多个半导体保险丝,所述半导体保险丝根据压缩配置数据而被编程;a fuse array disposed on the die and including a plurality of semiconductor fuses programmed according to compressed configuration data; 随机存取存储器(RAM),设置在该晶粒上;以及random access memory (RAM) disposed on the die; and 多个内核,各自地设置在该晶粒上,其中每一内核耦接该保险丝阵列及该随机存取存储器,并且在启动/重置操作下,所述内核的每一个根据载入数据寄存器的内容存取该保险丝阵列或该随机存取存储器,用以得知该压缩配置数据,a plurality of cores, respectively disposed on the die, wherein each core is coupled to the fuse array and the random access memory, and each of the cores is loaded into a data register according to the content accessing the fuse array or the random access memory to obtain the compressed configuration data, 其中该载入数据寄存器的内容说明所述内核的每一个的载入顺序,以及wherein the contents of the load data register specify the load order of each of the cores, and 其中该载入顺序指定所述内核中的一个为主内核,并且在启动/重置操作下,该主内核读取该保险丝阵列,并将该压缩配置数据写入该随机存取存储器,wherein the load sequence designates one of the cores as a master core, and upon a boot/reset operation, the master core reads the fuse array and writes the compressed configuration data to the random access memory, 其中虚拟保险丝阵列的数据被压缩,用以产生该压缩配置数据,该虚拟保险丝阵列对应所述内核。The data of the virtual fuse array is compressed to generate the compressed configuration data, and the virtual fuse array corresponds to the kernel. 12.如权利要求11所述的处理装置,其中所述内核的每一个存取并解压缩所述压缩配置数据,用以初始化所述内核的每一个的多个元件。12. The processing device of claim 11, wherein each of the kernels accesses and decompresses the compressed configuration data for initializing a plurality of elements of each of the kernels. 13.如权利要求11所述的处理装置,其中所述内核的每一个包括:13. The processing device of claim 11 , wherein each of the cores comprises: 阵列控制,用以读取该载入数据寄存器,并根据该载入数据寄存器的内容控制该保险丝阵列或该随机存取存储器的存取。The array control is used for reading the loading data register, and controlling the access of the fuse array or the random access memory according to the content of the loading data register. 14.如权利要求11所述的处理装置,其中该载入顺序指定所述内核中其余内核为次内核,并且在该主内核已将该压缩配置数据写入该随机存取存储器中后,每一次内核根据该载入顺序读取该随机存取存储器,用以得知该压缩配置数据。14. The processing device as claimed in claim 11 , wherein the load order designates the rest of the cores as secondary cores, and after the primary core has written the compressed configuration data into the random access memory, every A kernel reads the random access memory according to the loading order to obtain the compressed configuration data. 15.一种处理方法,用以提供配置数据给微处理器,该处理方法包括:15. A processing method for providing configuration data to a microprocessor, the processing method comprising: 设置保险丝阵列设置在晶粒上,其中该保险丝阵列包括多个半导体保险丝,所述半导体保险丝根据压缩配置数据而被编程;disposing a fuse array disposed on the die, wherein the fuse array includes a plurality of semiconductor fuses programmed according to compressed configuration data; 设置随机存取存储器(RAM)在该晶粒上;setting random access memory (RAM) on the die; 将多个内核各自地设置在该晶粒上,并耦接每一内核与该保险丝阵列及该随机存取存储器;以及disposing a plurality of cores individually on the die, and coupling each core to the fuse array and the random access memory; and 在启动/重置操作下,通过所述内核的每一个根据载入数据寄存器的内容存取该保险丝阵列或该随机存取存储器,用以得知该压缩配置数据,In a boot/reset operation, each of the cores accesses the fuse array or the random access memory according to the content of the loaded data register to know the compressed configuration data, 其中该载入数据寄存器的内容说明所述内核的每一个的载入顺序,以及wherein the contents of the load data register specify the load order of each of the cores, and 其中该载入顺序指定所述内核中的一个为主内核,并且在启动/重置操作下,该主内核读取该保险丝阵列,并将该压缩配置数据写入该随机存取存储器,wherein the load sequence designates one of the cores as a master core, and upon a boot/reset operation, the master core reads the fuse array and writes the compressed configuration data to the random access memory, 该处理方法还包括:压缩虚拟保险丝阵列的数据,用以产生该压缩配置数据,该虚拟保险丝阵列对应所述内核。The processing method further includes: compressing data of a virtual fuse array to generate the compressed configuration data, the virtual fuse array corresponding to the kernel. 16.如权利要求15所述的处理方法,其中所述内核的每一个存取并解压缩所述压缩配置数据,用以初始化所述内核的每一个的多个元件。16. The processing method of claim 15, wherein each of said kernels accesses and decompresses said compressed configuration data for initializing a plurality of elements of each of said kernels. 17.如权利要求15所述的处理方法,其中所述内核的每一个包括:17. The processing method of claim 15, wherein each of said kernels comprises: 阵列控制,用以读取该载入数据寄存器,并根据该载入数据寄存器的内容控制该保险丝阵列或该随机存取存储器的存取。The array control is used for reading the loading data register, and controlling the access of the fuse array or the random access memory according to the content of the loading data register. 18.如权利要求15所述的处理方法,其中该载入顺序指定所述内核中其余内核为次内核,并且在该主内核已将该压缩配置数据写入该随机存取存储器中后,每一次内核根据该载入顺序读取该随机存取存储器,用以得知该压缩配置数据。18. The processing method as claimed in claim 15 , wherein the loading order specifies that the remaining cores in the cores are secondary cores, and after the primary core has written the compressed configuration data in the random access memory, every A kernel reads the random access memory according to the loading order to obtain the compressed configuration data.
CN201410396074.1A 2013-08-21 2014-08-13 The processing unit and method of configuration data Active CN104183270B (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/972,690 US20150054543A1 (en) 2013-08-21 2013-08-21 Apparatus and method for rapid fuse bank access in a multi-core processor
US13/972,690 2013-08-21
US13/972,609 US20150058598A1 (en) 2013-08-21 2013-08-21 Apparatus and method for configurable redundant fuse banks
US13/972,609 2013-08-21

Publications (2)

Publication Number Publication Date
CN104183270A CN104183270A (en) 2014-12-03
CN104183270B true CN104183270B (en) 2017-08-25

Family

ID=51964249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410396074.1A Active CN104183270B (en) 2013-08-21 2014-08-13 The processing unit and method of configuration data

Country Status (2)

Country Link
CN (1) CN104183270B (en)
TW (1) TWI571797B (en)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10114646B2 (en) 2014-12-14 2018-10-30 Via Alliance Semiconductor Co., Ltd Programmable load replay precluding mechanism
WO2016097800A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Power saving mechanism to reduce load replays in out-of-order processor
JP6286067B2 (en) 2014-12-14 2018-02-28 ヴィア アライアンス セミコンダクター カンパニー リミテッド Mechanism to exclude load replays that depend on long load cycles in out-of-order processors
US10175984B2 (en) 2014-12-14 2019-01-08 Via Alliance Semiconductor Co., Ltd Apparatus and method to preclude non-core cache-dependent load replays in an out-of-order processor
US10108427B2 (en) 2014-12-14 2018-10-23 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on fuse array access in an out-of-order processor
US10146547B2 (en) 2014-12-14 2018-12-04 Via Alliance Semiconductor Co., Ltd. Apparatus and method to preclude non-core cache-dependent load replays in an out-of-order processor
JP6286065B2 (en) 2014-12-14 2018-02-28 ヴィア アライアンス セミコンダクター カンパニー リミテッド Apparatus and method for excluding load replay depending on write-coupled memory area access of out-of-order processor
US9804845B2 (en) 2014-12-14 2017-10-31 Via Alliance Semiconductor Co., Ltd. Apparatus and method to preclude X86 special bus cycle load replays in an out-of-order processor
EP3055768B1 (en) 2014-12-14 2018-10-31 VIA Alliance Semiconductor Co., Ltd. Mechanism to preclude uncacheable-dependent load replays in out-of-order processor
US10120689B2 (en) 2014-12-14 2018-11-06 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on off-die control element access in an out-of-order processor
US10146540B2 (en) 2014-12-14 2018-12-04 Via Alliance Semiconductor Co., Ltd Apparatus and method to preclude load replays dependent on write combining memory space access in an out-of-order processor
WO2016097814A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Mechanism to preclude shared ram-dependent load replays in out-of-order processor
US10228944B2 (en) 2014-12-14 2019-03-12 Via Alliance Semiconductor Co., Ltd. Apparatus and method for programmable load replay preclusion
US10089112B2 (en) 2014-12-14 2018-10-02 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on fuse array access in an out-of-order processor
US10083038B2 (en) 2014-12-14 2018-09-25 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on page walks in an out-of-order processor
WO2016097792A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Apparatus and method to preclude load replays dependent on write combining memory space access in out-of-order processor
EP3055769B1 (en) 2014-12-14 2018-10-31 VIA Alliance Semiconductor Co., Ltd. Mechanism to preclude load replays dependent on page walks in out-of-order processor
US10108430B2 (en) 2014-12-14 2018-10-23 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on off-die control element access in an out-of-order processor
US10127046B2 (en) 2014-12-14 2018-11-13 Via Alliance Semiconductor Co., Ltd. Mechanism to preclude uncacheable-dependent load replays in out-of-order processor
WO2016097796A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Mechanism to preclude i/o-dependent load replays in out-of-order processor
US10146539B2 (en) 2014-12-14 2018-12-04 Via Alliance Semiconductor Co., Ltd. Load replay precluding mechanism
US10108420B2 (en) 2014-12-14 2018-10-23 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on long load cycles in an out-of-order processor
US10108421B2 (en) 2014-12-14 2018-10-23 Via Alliance Semiconductor Co., Ltd Mechanism to preclude shared ram-dependent load replays in an out-of-order processor
KR101822726B1 (en) 2014-12-14 2018-01-26 비아 얼라이언스 세미컨덕터 씨오., 엘티디. Load replay precluding mechanism
WO2016097815A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Apparatus and method to preclude x86 special bus cycle load replays in out-of-order processor
WO2016097804A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Programmable load replay precluding mechanism
US10088881B2 (en) 2014-12-14 2018-10-02 Via Alliance Semiconductor Co., Ltd Mechanism to preclude I/O-dependent load replays in an out-of-order processor
CN108153559A (en) * 2017-12-08 2018-06-12 芯海科技(深圳)股份有限公司 Framework is reconfigured quickly in a kind of MCU work real-time that do not influence
TWI696113B (en) * 2019-01-02 2020-06-11 慧榮科技股份有限公司 Method for performing configuration management, and associated data storage device and controller thereof
CN116338439B (en) * 2023-05-29 2023-08-04 成都瑞迪威科技有限公司 Chip initialization data testing method through phase shift control

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003100097A (en) * 2001-09-25 2003-04-04 Mitsubishi Electric Corp Semiconductor device and its test method
US7251756B2 (en) * 2005-04-26 2007-07-31 International Business Machines Corporation Method and apparatus for increasing fuse programming yield through preferred use of duplicate data
KR101562985B1 (en) * 2009-02-25 2015-10-23 삼성전자주식회사 Semiconductor device and fuse program method thereof
TWM455257U (en) * 2011-11-03 2013-06-11 Etron Technology Inc Reconfigurable high speed memory chip module and electronics system device

Also Published As

Publication number Publication date
TW201508634A (en) 2015-03-01
CN104183270A (en) 2014-12-03
TWI571797B (en) 2017-02-21

Similar Documents

Publication Publication Date Title
CN104183270B (en) The processing unit and method of configuration data
US8879345B1 (en) Microprocessor mechanism for decompression of fuse correction data
US9740622B2 (en) Extended fuse reprogrammability mechanism
CN104183271B (en) Device and method for processing configuration data
US8982655B1 (en) Apparatus and method for compression and decompression of microprocessor configuration data
US20150058609A1 (en) Apparatus and method for storage and decompression of configuration data
CN104200837B (en) The processing unit and method of configuration data
US9348690B2 (en) Correctable configuration data compression and decompression system
EP2840490B1 (en) Core-specific fuse mechanism for a multi-core die
US20150058563A1 (en) Multi-core fuse decompression mechanism
TWI532049B (en) Apparatus and method for providing configuration data to an integrated circuit
US20150055395A1 (en) Extended fuse reprogrammability mechanism
US20150058565A1 (en) Apparatus and method for compression of configuration data
US20150058598A1 (en) Apparatus and method for configurable redundant fuse banks
US20150055427A1 (en) Multi-core microprocessor configuration data compression and decompression system
US20150054543A1 (en) Apparatus and method for rapid fuse bank access in a multi-core processor
US20150058564A1 (en) Apparatus and method for extended cache correction

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160121

Address after: 201203 Shanghai City Jinke road Zhangjiang hi tech Park No. 2537 Room 301

Applicant after: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd.

Address before: Chinese Taiwan New Taipei City

Applicant before: VIA TECHNOLOGIES, Inc.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203

Patentee after: Shanghai Zhaoxin Semiconductor Co.,Ltd.

Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203

Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd.