CN105849714B - 用于在功率选通事件之后恢复数据阵列的多核装置和方法 - Google Patents
用于在功率选通事件之后恢复数据阵列的多核装置和方法 Download PDFInfo
- Publication number
- CN105849714B CN105849714B CN201480062559.5A CN201480062559A CN105849714B CN 105849714 B CN105849714 B CN 105849714B CN 201480062559 A CN201480062559 A CN 201480062559A CN 105849714 B CN105849714 B CN 105849714B
- Authority
- CN
- China
- Prior art keywords
- core
- data
- fuse
- configuration data
- decompression
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/16—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/18—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Power Engineering (AREA)
- Microcomputers (AREA)
- Stored Programmes (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Semiconductor Integrated Circuits (AREA)
- Power Sources (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
- Mathematical Physics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种装置包括编程器、存储装置和多个核心。编程器利用压缩的配置数据来对熔丝阵列进行编程。存储装置支持对解压缩的配置数据集合的存储和访问。多个核心中的每一个被耦合到熔丝阵列。核心中的一个在上电/重置之后访问熔丝阵列以对用于一个或多个高速缓存存储器的配置数据集合进行解压缩并且将经解压缩的配置数据集合进行存储。多个核心中的每一个都具有重置逻辑和睡眠逻辑。重置逻辑在上电/重置之后采用解压缩的配置数据集合来初始化一个或者多个高速缓存存储器。睡眠逻辑在功率选通事件之后确定功率被恢复,并且随后访问存储装置以检索和采用解压缩的配置数据集合,来在功率选通事件之后初始化一个或者多个高速缓存。
Description
相关申请的交叉引用
本申请是如下的美国专利申请的继续申请,并且要求该美国专利申请的优先权权益。
本申请与如下的待决美国及PCT专利申请相关,并且其中的每一个都具有共同的受让人和共同的发明人。
技术领域
本发明大体上涉及微电子领域,并且更具体地,涉及用于在多核功率选通事件之后恢复压缩的高速缓存修补(repair)数据的装置和方法。
背景技术
集成器件技术在过去的40年间获得了指数级的进步。特别是在始于4位单指令、10微米器件的微处理器领域,在半导体制造技术的进步已经使得设计者能够提供在架构和密度方面越来越复杂的设备。在80年代和90年代中,所谓的流水线微处理器和超标量体系结构微处理器被开发出来,其在单个管芯(die)上包括数百万个晶体管。现在,在20年之后,64位的32纳米的设备正在被生产,其在单个管芯上具有数十亿个晶体管,并且其包括用于数据处理的多个微处理器核心。
从这些早期的微处理器被生产开始就一直坚持的一个要求是:当其被上电时或者当其被重置时需要利用配置数据来对这些设备进行初始化。例如,很多架构以很多可选择的频率和/或电压中的一个执行而使得设备能够被致能。其它的架构要求每个设备具有序列号,以及可以通过指令的执行而被读取的其它信息。另外的设备的内部寄存器和控制电路需要初始化数据。另外的微处理器,特别是具有板上高速缓存存储器的微处理器使用修补数据来实现在这些存储器内的冗余电路,以纠正制造的错误。
本领域技术人员将理解,设计者传统上采用管芯上的半导体熔丝阵列来存储和提供初始配置和修补数据。这些熔丝阵列通常通过在已经制造好部件之后对其中的选择的熔丝进行烧断来编程,并且阵列包含上千位的信息,其在上电/重置之后通过相应的设备来读取,以初始化和配置设备来进行操作。
随着过去的数年间设备的复杂度得到增加,对于典型的设备所需要的配置/修补数据的量也成比例地增加。但是,本领域技术人员将理解,虽然晶体管大小随着所采用的半导体制造工艺而成比例地缩小,但是半导体熔丝大小由于用于对管芯上的熔丝进行编程的特定的需求而增加。半导体熔丝中的和其本身的这种现象对于通常受到实际资源(realestate)限制和功率限制的设计者而言是个问题。换言之,在给定的管芯上没有足够的实际资源来制造庞大的熔丝阵列。
此外,用于在单个管芯上制造多个设备核心的能力已经几何地加剧了该问题,因为对于每个核心的配置需求导致在单个阵列或者不同的阵列中、在管芯上熔丝数量的需求,该数量与在其上放置的核心的数量成比例。
此外,本领域技术人员将理解,多核设备使用操作的复杂的功率节省模式,其导致核心中的一个或者多个当不被使用时,在所谓的功率选通事件(或者“睡眠模式”)中被断电。因此,当在功率选通事件之后对核心上电时,除了初始化速度需求更加严厉之外,仍然继续存在对于初始化、配置、以及修补的相同的需求。
因此,需要使得配置/修补数据能够被存储和提供给与迄今已经被提供的设备相比,在单个管芯上要求明显减少的实际资源以及功率的多核设备的装置和方法。
此外,需要能够存储和提供与当前技术相比明显更多的配置/修补数据,同时要求在多核管芯上的相同或者更少的实际资源的熔丝阵列机制。
此外,需要便于在功率选通事件之后提示多核设备的初始化、配置、以及修补的技术。
发明内容
本发明提供一种用于在功率选通事件之后恢复配置数据的领先技术。在一方面中,考虑一种用于提供配置数据给集成电路的装置。该装置包括设备编程器、存储装置和多个核心。设备编程器被耦合到布置在管芯上的半导体熔丝阵列,并且被配置为利用压缩的配置数据来对半导体熔丝阵列进行编程。存储装置也被布置在管芯上,并且被配置用于解压缩的配置数据集合的存储和访问。多个核心也被布置在管芯上,其中多个核心中的每一个被耦合到半导体熔丝阵列,并且其中多个核心中的一个被配置为在上电/重置之后访问半导体熔丝阵列以进行读取并对压缩的配置数据进行解压缩,并且将用于多个核心中的每一个内的一个或多个高速缓存存储器的解压缩的配置数据集合存储在存储装置中。多个核心中的每一个包括重置逻辑和睡眠逻辑。重置逻辑被配置为在上电/重置之后采用解压缩的配置数据集合来初始化一个或者多个高速缓存存储器。睡眠逻辑被配置为在功率选通事件之后确定功率被恢复,并且被配置为随后访问存储装置以检索和采用解压缩的配置数据集合,来在功率选通事件之后初始化一个或者多个高速缓存。
在一方面中,设想到一种用于提供配置数据给集成电路设备的装置。该装置包括设备编程器和多核微处理器。设备编程器被耦合到布置在管芯上的半导体熔丝阵列,并且被配置为利用压缩的配置数据来对半导体熔丝阵列进行编程。多核微处理器具有半导体熔丝阵列、存储装置和多个核心。半导体熔丝阵列被布置在管芯上,向其中编程压缩的配置数据。存储装置也被布置在管芯上,并且被配置用于解压缩的配置数据集合的存储和访问。多个核心也被布置在管芯上,其中多个核心中的每一个被耦合到半导体熔丝阵列,并且其中多个核心中的一个被配置为在上电/重置之后访问半导体熔丝阵列以进行读取并对压缩的配置数据进行解压缩,并且将用于多个核心中的每一个内的一个或多个高速缓存存储器的解压缩的配置数据集合存储在存储装置中。多个核心中的每一个包括重置逻辑和睡眠逻辑。重置逻辑被配置为在上电/重置之后采用解压缩的配置数据集合来初始化一个或者多个高速缓存存储器。睡眠逻辑被配置为在功率选通事件之后确定功率被恢复,并且被配置为随后访问存储装置以检索和采用解压缩的配置数据集合,来在功率选通事件之后初始化一个或者多个高速缓存。
在另一方面中,本发明包含一种用于配置集成电路的方法。该方法包括:第一将半导体熔丝阵列布置在管芯上;经由设备编程器利用压缩的配置数据来对半导体熔丝阵列进行编程;第二将存储装置布置在管芯上,该存储装置被配置用于解压缩的配置数据集合的存储和访问;第三将多个微处理器核心布置在管芯上,其中多个微处理器核心中的每一个被耦合到半导体熔丝阵列,并且其中多个微处理器核心中的一个被配置为在上电/重置之后访问半导体熔丝阵列以进行读取并对压缩的配置数据进行解压缩,并且将用于多个核心中的每一个内的一个或多个高速缓存存储器的解压缩的配置数据集合存储在存储装置中;经由布置在多个核心中的每一个内的重置逻辑在上电/重置之后采用解压缩的配置数据集合来初始化一个或者多个高速缓存存储器;以及经由布置在多个核心中的每一个内的睡眠逻辑在功率选通事件之后确定功率被恢复,并且随后访问存储装置以检索和采用解压缩的配置数据集合,来在功率选通事件之后初始化一个或者多个高速缓存。
关于工业适用性,本发明在可以用于通用或者专用计算设备的微处理器内实现。
附图说明
相对于以下描述和附图,本发明的这些和其它目标、特征、和优点将得到更好的理解,在附图中:
图1是图示了包括用于向微处理器核心提供配置数据的熔丝阵列的当前微处理器核心的框图;
图2是描绘了包括可以在烧断熔丝阵列内的第一熔丝组之后烧断的冗余熔丝组的,在图1的微处理器核心内的熔丝阵列的框图;
图3是特征为提供对多核设备的配置数据的压缩和解压缩的根据本发明的系统的框图;
图4是示出了根据本发明的熔丝解压缩机制的框图;
图5是图示了根据本发明的用于压缩的配置数据的示例性格式的框图;
图6是图示了根据本发明的用于解压缩的微代码补丁(PATCH)配置数据的示例性格式的框图;
图7是描绘了根据本发明的用于解压缩的微代码寄存器配置数据的示例性格式的框图;
图8是特征为根据本发明的用于解压缩的高速缓存纠正数据的示例性格式的框图;
图9是示出了根据本发明的用于解压缩的熔丝纠正数据的示例性格式的框图;以及
图10是示出了根据本发明的用于解压缩的熔丝纠正数据的替代的示例性格式的框图;以及
图11是图示了在功率选通事件之后提供对于高速缓存修补数据的快速恢复的、根据本发明的多核装置的框图。
具体实施方式
以下将描述本发明的示例和说明性的实施例。为了清楚,在本说明书中并没有对实际实现方式中的所有的特征进行描述,因为本领域技术人员而言将会理解,在任何这样的实际实施例的开发中,会进行各种实现方式特定的决定,以实现诸如符合与系统相关或者与商业相关的限制之类的特定目标,所述目标可能根据实现方式而不同。此外,将会理解,这些开发努力将是复杂的和耗时的,然而对于受益于本公开的本领域普通技术人员而言,其应该是例行的工作。对于本领域技术人员而言,对于优选实施例的各种修改将是显而易见的,并且在此限定的一般的原理将可以被应用到其它实施例中。因此,本发明不旨在受到在此示出和描述的具体实施例的限制,而是与符合在此描述的原理和新颖特征的最宽的范围相一致。
现在将参考附图来对本发明进行描述。在附图中示意性地描绘的各种结构、系统、以及设备仅仅出于说明的目的,从而不应该利用本领域技术人员所公知的细节来模糊本发明。然而,附图被包括以用于描述和说明本发明的示例性的示例。在此所使用的文字和短语应该被理解和解释为具有与本领域技术人员所理解的这些文字和短语相一致的意思。没有通过在此的术语或者短语的一贯用法来暗示术语或短语的特定定义(即,与本领域技术人员所理解的普通的和习惯上的含义不同的定义)。为了使得术语或者短语被用于具有特定的含义(即,除了熟练技工所理解的意思之外的含义),将在说明书中以定义的方式来明确地阐述这样的特定的定义,所述方式将直接地和明确地提供用于该术语或短语的特定的定义。
鉴于关于设备熔丝阵列的上述背景讨论以及在用于在初始上电期间提供配置数据的当前集成电路内采用的相关技术,将参考图1和图2来呈现对于这些技术的限制和缺点的讨论。在此之后,将参考图3到图10来呈现对于本发明的讨论。本发明通过提供用于采用在多核管芯中的压缩配置的装置和方法来克服以下讨论的限制和缺点,其使用在多核管芯上的更小的功率和实际资源,提供用于在功率选通事件之后对于配置和修补数据的快速恢复,并且比迄今已经提供的技术更加可靠。
定义
集成电路(IC):在小尺寸半导体材料(典型的为硅)上制造的电子电路的集合。IC也可以被称为芯片、微芯片、或者管芯。
中央处理单元(CPU):通过对数据执行包括算法操作、逻辑操作、以及输入/输出操作的操作,来执行计算机程序(也被称为“计算机应用”、“应用程序”、“程序”、或者“应用”)的指令的电子电路(即,“硬件”)。
微处理器:用作在单个集成电路上的CPU的电子设备。微处理器接收数字数据来作为输入,根据从存储器(管芯上的或者管芯外的)获取的指令来处理数据,并且生成指令所规定的操作的结果来作为输出。通用微处理器可以在包括但是不限于,桌上型计算机、移动计算机、或者平板计算机的设备中采用,并且可以被使用用于诸如但是不限于,计算、文本编辑、多媒体显示、以及因特网浏览的任务。微处理器还可以被布置在嵌入式系统中,以控制包括电器、移动电话、智能电话、以及工业控制设备的各种设备。
多核处理器:还被称为多核微处理器,多核处理器是具有在单个集成电路上制造的多个CPU(也被称为“核心”)的微处理器。
指令集架构(ISA)或者指令集:与编程相关的计算机架构的一部分,其包括:数据类型、指令、寄存器、寻址模式、存储器架构、中断和执行处理、以及输入/输出。ISA包括操作码集合的规范(即,机器语言指令)、以及由特定CPU实现的原生命令。
X86-兼容的微处理器:能够执行根据X86ISA而编程的计算机应用的微处理器。
微代码:被采用来表示多个微指令的术语。微指令(也被称为“原生指令”)是处于微处理器子单元执行的层级的指令。示例性子单元包括整数单元、浮点单元、MMX单元、以及负载/存储单元。例如,微指令直接通过精减指令集计算机(RISC)微处理器来执行。对于诸如X86兼容的微处理器之类的复杂指令集(CISC)微处理器,X86指令被翻译为相关联的微指令,并且相关联的微指令直接通过CISC微处理器内的一个子单元或者多个子单元来执行。
熔丝:通常被排列为细丝的导电结构,其可以通过在细丝上施加电压和/或穿过细丝来施加电流而在选择的位置处断开。熔丝可以使用公知的制造技术而沉积在横跨管芯剖面的指定区域处,以在所有潜在的可编程区域处产生细丝。在制造之后,熔丝结构被烧断(或者未被烧断),以为被布置在管芯上的相应的设备提供期望的可编程能力。
参考图1,所呈现的框图100图示了包括用于向微处理器核心101提供配置数据的熔丝阵列102的当前的微处理器核心101。熔丝阵列102包括多个微处理器熔丝(未示出),其通常以被称为组(bank)的群组来排列。熔丝阵列102耦合到包括重置电路104和重置码105这两者的重置逻辑103。重置逻辑103被耦合到控制电路107、微代码寄存器108、微代码补丁元件109、以及高速缓存纠正元件110。外部的重置信号RESET耦合到微处理器核心101,并且被路由到重置逻辑103。
本领域技术人员将理解,熔丝(也被称为“链路”、或者“熔丝结构”)在大量当前集成电路设备中被采用,以在制造设备之后来提供对于设备的配置。例如,考虑到图1的微处理器核心101被制造以选择性地提供如桌上型计算机设备或者移动设备的功能。因此,在制造之后,在熔丝阵列102内的规定的熔丝可以被烧断,以配置诸如移动设备的设备。因此,在重置信号RESET致能之后,重置逻辑103读取在熔丝阵列102中的规定熔丝的状态,并且重置电路104(而不是在该示例中的重置微代码105)使能相应的控制电路107,其排他性地禁用与桌上型计算机设备操作相关联的核心101的元件,并且排他性地激活与移动操作相关联的核心101的元件。因此,在上电重置之后,核心101被配置为移动设备。此外,重置逻辑103读取在熔丝阵列102中的其它熔丝的状态,并且重置电路104(而不是在该示例中的重置微代码105)使能相应的高速缓存纠正电路107,其提供用于与核心101相关联的一个或者多个高速缓存存储器(未示出)的纠正机制。因此,在上电重置之后,核心101被配置为移动设备,并且用于其高速缓存存储器的纠正机制就绪。
以上示例仅仅是用于在诸如图1的微处理器核心101之类的集成电路设备中的配置熔丝的许多不同用法中的一种。本领域技术人员将理解,配置熔丝的其它用法包括但是不限于,设备特定的数据的配置(例如,序列号、唯一的密码密钥、能够被用户访问的架构委任数据(architecture mandated data)、速度设置、电压设置)、初始化数据、以及补丁数据。例如,许多当前的设备执行微代码,并且经常要求由微代码读取的寄存器108的初始化。这样的初始化数据可以通过在熔丝阵列102内的微代码寄存器熔丝(未示出)来提供,其可以在重置之后被读取,并且通过重置逻辑103(使用重置电路104或者重置微代码105、或者这两个元件104-105)提供给微代码寄存器108。出于本发明的目的,重置电路104包括提供某些类型的配置数据的硬件元件,所述配置数据不能经由重置微代码105的执行来提供。重置微代码105包括在核心101的重置之后执行的内部微代码存储器(未示出)内布置的多个微指令,以执行与核心101的初始化相对应的功能,这些功能包括将从熔丝阵列102读取的配置数据提供给诸如微代码寄存器108和微代码补丁机制109之类的元件。经由熔丝提供的某些类型的配置数据是否可以经由重置微代码105被分布到核心101的各种元件107-110的标准是核心101的特定设计的主要功能。本发明不只在提供关于被采用来对集成电路设备进行初始化的特定配置技术的全面教导,因为本领域技术人员将理解,对于当前的微处理器核心101,可配置元件107-110的类型通常落入到如在图1中所示例的四大类中:控制电路、微代码寄存器、微代码补丁机制、以及高速缓存纠正机制。此外,本领域技术人员将理解,配置数据的特定值基于数据的特定类型而发生明显变化。例如,64位控制电路107可以包括ASCII数据,其规定了用于核心101的序列号。另一64位控制寄存器可以具有64种不同的速度设置,仅仅其中的一种被致能用于指定核心101的操作速度。微代码寄存器108通常可以被初始化为全0(即,逻辑低状态)或者全1(即,逻辑高状态)。微代码补丁机制109可以包括1和0的接近于均匀的分布,以指示在微代码ROM(未示出)中的地址以及用于这些地址的替代微代码值。最后,高速缓存纠正(即,“修补”)机制可以包括1的非常稀疏的设置,以指示替换控制信号来将某些高速缓存子组元素(即,行或者列)替代为特定的替代子组元素,从而使能对于一个或者多个高速缓存存储器的修补。
熔丝阵列102提供用于在制造设备之后配置诸如微处理器核心101之类的设备的极好装置。通过烧断在熔丝阵列102中的所选择的熔丝,核心101可以被配置用于在其所意图的环境中的操作。然而,本领域技术人员将理解,操作环境可以在对熔丝阵列102进行编程之后变化。商业要求可以命令将原始被配置为诸如桌上型计算机设备101的设备101重新配置为移动设备101。因此,设计者已经提供了以下技术:其使用在熔丝阵列102中的熔丝的冗余组,以向其中所选择的熔丝提供“未烧断”,从而使得设备101能够被重新配置,并且能够纠正制造错误等。现在将参考图2来讨论这些冗余阵列技术。
现在参考图2,所呈现的框图200描绘了在包括冗余熔丝组202RFB1-RFBN的图1的微处理器核心101内的熔丝阵列201,所述冗余熔丝组202RFB1-RFBN将在烧断熔丝阵列201内的第一熔丝阵列组202PFB1-PFBN之后被烧断。熔丝阵列202PFB1-PFBN、RFB1-RFBN中的每一个包括与核心101的特定设计相对应的规定数目的单独的熔丝203。例如,在64位微处理器核心101中,在给定熔丝组202中的熔丝203的数目可以是64个熔丝203,以便于以容易在核心101中实现的格式来提供配置数据。
熔丝阵列201被耦合到寄存器集210-211,所述寄存器集210-211通常被布置在核心101的重置逻辑内。主寄存器PR1被采用来读取第一熔丝组PFB1-PFBN中的一个(例如为在视图200中所示的PFB3),并且冗余寄存器RR1被采用来读取冗余熔丝阵列RFB1-RFBN中的相应一个。寄存器210-211被耦合到生成输出FB3的异或逻辑212。
在操作中,在制造核心101之后,利用用于核心101的配置数据,通过已知的技术对第一熔丝组PFB1-PFBN进行编程。冗余熔丝组RFB1-RFBN没有被烧断,并且对于其中的所有熔丝保持在逻辑低状态。在核心101的上电/重置之后,第一熔丝组PFB1-PFBN和冗余熔丝组RFB1-RFBN这两者根据配置的需要而被分别读取以用于配置到主寄存器和冗余寄存器210-211。异或逻辑212生成输出FB3,其是寄存器210-211的内容的逻辑异或结果。因为所有的冗余熔丝组没有被烧断(即,逻辑低状态),所以输出FB3值仅在被制造之后被编程到第一熔丝组PFB1-PFBN中。
然而,现在考虑的是,设计或者商业要求命令被编程到第一熔丝组PFB1-PFBN中的一些信息需要改变。因此,执行编程操作,以烧断在冗余熔丝组RFB1-RFBN内的相应熔丝203,以便改变在上电时读取的信息。通过在所选择的冗余组RFB1-RFBN中烧断熔丝203,在主(primary)熔丝组PFB1-PFBN中的相应熔丝203的值被逻辑上取补。
图2的机制可以被采用来提供对在设备101内的熔丝203的“重新烧断”,但是本领域技术人员将理解,给定的熔丝203仅仅可以被重新烧断一次,因为仅仅存在一组冗余熔丝组RFB1-RFBN。为了提供额外的重新烧断,相应数量的额外的熔丝组202和寄存器210-211必须被添加到部件101中。
至此,以上参考图1和图2来讨论的熔丝阵列机制已经提供了足够的灵活度以足以配置微处理器核心以及其它相关的设备,同时还允许受限制次数的重新烧断。这主要是因为以下事实:之前的制造技术,例如65纳米以及45纳米工艺允许在管芯上的足够的实际资源,以实现足够的熔丝来提供对于在管芯上布置的核心101的配置。然而,本发明人已经观察到,由于两个重要的因素而导致当前的技术在向前发展时受到限制。首先,在本领域中的趋势是将多个设备核心101布置在单个管芯上,以增加处理性能。这些所谓的多核设备可以包括例如,2-16个单独的核心101,其中的每一个必须在上电/重置之后利用熔丝数据来配置。因此,对于4核设备,需要四个熔丝阵列201,因为与单独的核心相关联的一些数据可能会变化(例如,高速缓存纠正数据、冗余熔丝数据等)。其次,本领域技术人员将理解,随着制造工艺技术缩小为例如,32纳米,在晶体管大小因此缩小的同时,熔丝大小增加,从而需要更多管芯的实际资源,以相对于在45纳米的管芯上,在32纳米的管芯上实现相同大小的熔丝阵列。
以上的两个限制以及其它的限制对设备设计者,更具体地对于多核设备设计者提出了巨大的挑战,并且本发明人注意到,依据本发明可以实现对于传统设备的配置机制上的显著改进,其允许对于在多核设备中的单独的核心进行编程,以及明显增加了高速缓存纠错和熔丝重新编程(“重新烧断”)元件。现在将参考图3到图11来讨论本发明。
参考图3,所呈现的框图的特征在于根据本发明的系统300,其提供对多核设备的配置/修补数据的压缩和解压缩。多核设备包括被布置在管芯330上的多个核心332。虽然本发明设想到在管芯330上布置的各种数量的核心332,但是出于示例性的目的,在管芯330上描绘了四个核心332CORE1-CORE 4。在一个实施例中,所有核心332共享也被布置在管芯330上的单个高速缓存存储器334。单个可编程的物理熔丝阵列336也被布置在管芯330上,并且核心332中的每一个被配置为访问熔丝阵列336,以在上电/重置期间检索和解压缩如上所述的配置数据。
在一个实施例中,核心332包括被配置为多核微处理器330的微处理器核心。在另一个实施例中,多核微处理器330被配置为X86兼容的多核微处理器。在又一个实施例中,高速缓存存储器334包括与微处理器核心332相关联的2级(L2)高速缓存存储器334。在一个实施例中,虽然其它数量的熔丝也被设想到,但是熔丝阵列336包括8192(8K)个单独的熔丝(未示出)。在单核的实施例中,仅仅一个核心332被布置在管芯330上,并且核心332被耦合到高速缓存存储器334以及物理熔丝阵列336。本发明人注意到,虽然在下文中将在多核设备330的背景下来讨论本发明的特征和功能,但是这些特征和功能也可以同样地应用到单核心实施例中。
系统300还包括设备编程器310,其包括耦合到虚拟熔丝阵列303的压缩器320。在一个实施例中,设备编程器310可以包括CPU(未示出),其被配置为处理配置数据,以及根据公知的编程技术来在管芯330的制造之后对熔丝阵列336进行编程。CPU可以被集成到被采用来在制造之后测试设备管芯330的晶片测试装置中。在一个实施例中,压缩器320可以包括在设备编程器310上执行的应用程序,并且虚拟熔丝阵列303可以包括由压缩器320访问的存储器内的位置。虚拟熔丝阵列303包括多个虚拟熔丝组301,其中的每一个包括多个虚拟熔丝302。在一个实施例中,虚拟熔丝阵列303包括128个虚拟熔丝组301,其中的每一个包括64个虚拟熔丝302,从而产生在大小上为8Kb的虚拟阵列303。
操作上,设备330的配置信息被输入到虚拟熔丝阵列303中来作为制造工艺中的一部分,并且其如以上参考图1所描述的一样。因此,配置信息包括控制电路配置数据、用于微代码寄存器的初始化数据、微代码补丁数据、以及高速缓存纠正数据。此外,如上所述,与数据类型中的每一个相关联的值的分布根据类型而明显不同。虚拟熔丝阵列303是包括用于在管芯330上的每个微处理器核心332的配置信息,以及用于在管芯330上的每个高速缓存存储器334的纠正数据的熔丝阵列(未示出)的逻辑表示。
在信息被输入到虚拟熔丝阵列303中之后,压缩器320读取在每个虚拟熔丝组301中的虚拟熔丝302的状态,并且使用与每个数据类型相对应的不同的压缩算法来压缩信息,以表现(render)压缩的熔丝阵列数据303。在一个实施例中,控制电路的系统数据没有被压缩,而是在没有压缩的情况下被传输。为了压缩微代码寄存器数据,微代码寄存器数据压缩算法被采用,其对于压缩具有对应于微代码寄存器数据的状态分布的数据是有效的。为了压缩微代码补丁数据,微代码补丁数据压缩算法被采用,其对于压缩具有对应于微代码补丁数据的状态分布的数据是有效的。为了压缩高速缓存纠正数据,高速缓存纠正数据压缩算法被采用,其对于压缩具有对应于高速缓存纠正数据的状态分布的数据是有效的。
设备编程器310然后将未压缩的和压缩的熔丝阵列数据编程到管芯330上的物理熔丝阵列336中。
在上电/重置之后,每个核心332可以访问物理熔丝阵列336,以检索未压缩和压缩的熔丝阵列数据,并且布置在每个核心332内的重置电路/微代码(未示出)分布未压缩的熔丝阵列数据,并且根据与以上记录的数据类型中的每一个相对应的不同的解压缩算法来解压缩压缩的熔丝阵列数据,以表现原始输入到虚拟熔丝阵列303的值。重置电路/微代码然后将配置信息输入到控制电路(未示出)、微代码寄存器(未示出)、补丁元件(未示出)、以及高速缓存纠正元件(未示出)中。
有利的是,根据本发明的熔丝阵列压缩系统300使得设备设计者能够相对于迄今已经提供的技术而言在物理熔丝阵列336中采用明显更少数量的熔丝,并且使用在其中编程的压缩信息来在上电/重置期间配置多核设备330。
现在参考图4,所呈现的框图400示出了根据本发明的熔丝解压缩机制。解压缩机制可以被布置在图3的微处理器核心332中的每一个中。出于清楚地教导本发明的目的,在图4中仅仅描绘了一个核心420,并且在管芯上布置的核心332中的每一个包括与所示的核心420基本上等价的元件。被如上所述地布置在管芯上的物理熔丝阵列401耦合到核心420。物理熔丝阵列401包括压缩的微代码补丁熔丝403、压缩的寄存器熔丝404、压缩的高速缓存纠正熔丝405、以及压缩的熔丝纠正熔丝406。物理熔丝阵列401还可以包括诸如如上所讨论的系统配置数据(未示出)和/或块错误检查和纠正(ECC)代码(未示出)之类的未压缩的配置数据。以下将更详细地描述根据本发明的ECC特征所包含的内容。
微处理器核心420包括重置控制器417,其接收在核心420的上电之后并且响应于使得核心420启动重置序列步骤的事件而被致能的重置信号RESET。重置控制器417包括解压缩器421。解压缩器421具有补丁熔丝元件408、寄存器熔丝元件409、以及高速缓存熔丝元件410。解压缩器421还包括熔丝纠正元件411,其经由总线412而被耦合到补丁熔丝元件408、寄存器熔丝元件409、以及高速缓存熔丝元件410。补丁熔丝元件408被耦合到在核心420中的微代码补丁元件414。寄存器熔丝元件409被耦合到在核心420中的微代码寄存器415。并且高速缓存熔丝元件410被耦合到核心420中的高速缓存纠正元件416。在一个实施例中,高速缓存纠正元件416被布置在管芯上的L2高速缓存存储器(未示出)内,所述L2高速缓存存储器被诸如图3的高速缓存存储器334之类的所有核心420共享。另一个实施例设想到高速缓存纠正元件416被布置在核心420内的L1高速缓存存储器(未示出)内。另一个实施例考虑到高速缓存纠正元件416被布置来纠正上述的L2和L1高速缓存存储器这两者。其它的实施例设想到高速缓存纠正元件416被布置在多个核心上以及不在核心上。
在操作中,在致能重置信号RESET之后,重置控制器417读取在物理熔丝阵列410中的熔丝403-406的状态,并且将压缩的系统熔丝(未示出)的状态分布到解压缩器421上。在已经读取和分布熔丝数据之后,解压缩器421的熔丝纠正元件411对压缩的熔丝纠正熔丝406状态进行解压缩,以表现指示在物理熔丝阵列401中的、其状态要从之前编程的状态发生变化的一个或者多个熔丝地址的数据。解压缩的所述数据还包括一个或者多个熔丝地址中的每一个的值。所述一个或者多个熔丝地址(以及可选值)经由总线412被路由到元件408-410,以使得在其中处理的相应熔丝的状态在对其相应的压缩数据进行解压缩之前发生变化。
在一个实施例中,补丁熔丝元件408包括如下的微代码:其进行操作来根据与如上参考图3所述的微代码补丁压缩算法相对应的微代码补丁解压缩算法来对压缩的微代码补丁熔丝403的状态进行解压缩。在一个实施例中,寄存器熔丝元件409包括如下的微代码:其进行操作来根据与如上参考图3所述的寄存器熔丝压缩算法相对应的寄存器熔丝解压缩算法来对压缩的寄存器熔丝404的状态进行解压缩。在一个实施例中,高速缓存熔丝元件410包括如下的微代码:其进行操作来根据与如上参考图3所述的高速缓存纠正熔丝压缩算法相对应的高速缓存纠正熔丝解压缩算法来对压缩的高速缓存纠正熔丝405的状态进行解压缩。在元件408-410中的每一个改变其地址(和可选值)被经由总线412从熔丝纠正元件411提供的任何熔丝的状态之后,其各自的数据被根据所采用的相应算法解压缩。如将在以下更详细地描述地,本发明设想到在由元件408-411中的任何一个执行的解压缩过程的初始化之前的在物理熔丝阵列内的任何熔丝地址的多次“重新烧断”。在一个实施例中,总线412可以包括被采用来在其中的各个例程之间传输数据的传统的微代码编程机制。本发明进一步设想到具有基于其特定的类型而识别和解压缩配置数据的能力的综合(comprehensive)解压缩器421。因此,虽然所陈述的在解压缩器421内的元件408-411被呈现,以便教导本领域的相关方面,然而,所设想的本发明的实现方式可以并不必须包括不同的元件408-411,而是包括综合解压缩器421,其提供了与上述的每个元件408-411相对应的功能。
在一个实施例中,重置控制器417初始化在补丁熔丝元件408内的微代码的执行,以对压缩的微代码补丁熔丝403的状态进行解压缩。重置控制器417还初始化在寄存器熔丝元件409内的微代码的执行,以对压缩的寄存器熔丝404的状态进行解压缩。并且重置控制器417进一步发起在高速缓存熔丝元件410内的微代码的执行,以对压缩的高速缓存纠正熔丝405的状态进行解压缩。在解压缩器421内的微代码还进行操作来在对压缩的数据进行解压缩之前,改变由压缩的熔丝纠正熔丝406提供的熔丝纠正数据所寻址的任何熔丝的状态。
根据本发明的重置控制器417、解压缩器421、以及在其中的元件408-411被配置为执行如上所讨论的功能和操作。重置控制器417、解压缩器421、以及在其中的元件408-411可以包括逻辑、电路、设备、或者微代码,或者逻辑、电路、设备、或者微代码的组合,或者被采用来执行根据所记录的本发明的功能和操作的等价元件。被采用来完成在重置控制器417、解压缩器421、以及在其中的元件408-411内的这些操作和功能的元件可以通过被采用来执行在重置控制器417、解压缩器421、以及在其中的元件408-411内的其它功能和/或操作的其它电路、微代码等来共享,或者通过在核心420内的其它元件来共享。
在物理熔丝阵列401内的熔丝403-406的状态已经被改变和解压缩之后,解压缩的“虚拟”熔丝的状态然后被适当地路由到微代码补丁元件414、微代码寄存器415、以及高速缓存纠正元件416。因此,核心420被配置用于在重置序列完成之后的操作。
本发明人注意到,以上所讨论的解压缩功能不需要在重置序列期间以特定顺序来执行。例如,微代码补丁可以在微代码寄存器初始化数据的解压缩之后被解压缩。同样,解压缩功能可以并行地执行,或者以适合于满足设计限制的顺序来执行。
此外,本发明人注意到元件408-411的实现方式不需要以微代码相对于硬件电路来实现,因为典型的微处理器核心420中存在相对于直接通过微代码来写入而言,能够更容易地经由硬件(例如,与高速缓存存储器相关联的扫描链)来初始化的核心420的元件。这样的实现方式的细节将留给设计者来判断。然而,本发明人提交的是,现有技术教导了在对微代码的执行初始化之前的重置期间,高速缓存纠正熔丝传统地被硬件电路读取并且被输入到高速缓存纠正扫描链中,并且本发明的特征在于在与硬件控制电路相对的微代码中实现高速缓存熔丝元件410,因为核心的高速缓存存储器通常直到微代码运行时才会被开启。通过使用微代码来执行高速缓存熔丝元件410,提供了更加灵活且先进的机制来将高速缓存纠正数据输入到扫描链中,并且显著地节省了硬件。
现在将参考图5,呈现的框图图示了根据本发明的用于压缩的配置数据500的示例性格式。压缩的配置数据500由图3的压缩器320从驻留在虚拟熔丝阵列303中的数据来压缩,并且被编程(即,“烧断”)到多核设备330的物理熔丝阵列336中。在如上所述的重置序列期间,压缩的配置数据500被核心332中的每一个从物理熔丝阵列336中检索,并且由在每个核心420内的解压缩器421的元件408-411解压缩和纠正。解压缩和纠正的配置数据然后被提供给核心420内的各种元件414-416,以初始化核心420来进行操作。
压缩的配置数据500包括用于如上所讨论的配置数据类型中的每一个的一个或者多个压缩的数据字段(D)502,并且其通过类型结尾(end-of-type)字段(ET)503来划界。编程事件(即,“烧断”)通过烧断结尾(end-of-blow)字段(EB)504来划界。与数据类型中的每一个相关联的压缩的数据字段502根据被最优化来使得用于存储与数据类型中的每一个相关联的特定位模式所需的位(即,熔丝)数最小化的压缩算法来进行编码。在形成压缩的数据字段502中的每一个的物理熔丝阵列336中的熔丝数量是被采用来用于特定数据类型的压缩算法的函数。例如,考虑包括64个64位微代码寄存器的核心,所述64位微代码寄存器必须被初始化为例如,全1或者全0。可以采用优化的压缩算法来针对数据类型产生64个压缩的数据字段502,其中压缩的数据字段502中的每一个包括用于特定微代码寄存器的初始化数据,其中压缩的数据字段502以寄存器编号顺序来规定(即,1-64)。压缩的数据字段502中的每一个包括单个熔丝,如果相应的微代码寄存器被初始化为全1,则其被烧断,而如果相应的微代码寄存器被初始化为全0,则其不被烧断。
在核心420中的解压缩器421的元件408-410被配置为使用类型结尾字段503来确定其各自的压缩数据位于物理熔丝阵列336内的何处,并且熔丝纠正元件411被配置为使用烧断结尾字段504来在初始编程事件之后定位已经被编程的(即,烧断)的压缩的熔丝纠正数据。如将在下文中更详细地讨论的,本发明的特征在于在物理熔丝阵列336中提供大量的备用熔丝,以允许可观的后续编程事件。
呈现以上所讨论的示例性压缩类型格式,以清楚地教导与配置数据的压缩和解压缩相关联的本发明的方面。然而,对特定数据类型进行压缩、划界的形式,以及在熔丝阵列401内要被压缩的数据的数量和类型不意图被限于图5的示例。其它的数字、类型、和格式被设想到,其允许使本发明适应于本领域存在的各种设备和架构。
现在参考图6,所呈现的框图图示了根据本发明的用于解压缩的微代码补丁配置数据600的示例性格式。在重置序列期间,压缩的微代码补丁配置数据被每个核心420从物理熔丝阵列401中读取。然后,根据经由总线412提供的熔丝纠正数据来纠正压缩的微代码补丁配置数据。然后,由补丁熔丝元件408对经纠正的压缩的微代码补丁配置数据进行解压缩。解压缩过程的结果是解压缩的微代码补丁配置数据600。数据600包括与在需要初始化数据的核心420内的微代码补丁元件414的数量相对应的多个解压缩的数据块604。每个解压缩的数据块604包括核心地址字段601、微代码ROM地址字段602、以及微代码补丁数据字段603。字段601-603的大小是核心架构的函数。作为解压缩过程的一部分,补丁熔丝元件408生成用于初始化微代码补丁元件414所需的目标数据的完整图像。在微代码补丁配置数据600的解压缩之后,传统的分布机制可以被采用来将数据603分布到微代码补丁元件414中的相应寻址的核心以及微代码ROM替代电路/寄存器。
现在参考图7,所呈现的框图描绘了根据本发明的用于解压缩的微代码寄存器配置数据700的示例性格式。在重置序列期间,压缩的微代码寄存器配置数据由每个核心420从物理熔丝阵列401中读取。然后根据经由总线412提供的熔丝纠正数据来纠正压缩的微代码寄存器配置数据。然后,经纠正的压缩的微代码寄存器配置数据被寄存器熔丝元件409解压缩。解压缩过程的结果是解压缩的微代码寄存器配置数据700。数据700包括与在需要初始化数据的核心420内的微代码寄存器415的数量相对应的多个解压缩的数据块704。每个解压缩的数据块704包括核心地址字段701、微代码寄存器地址字段702、以及微代码寄存器数据字段703。字段701-703的大小是核心架构的函数。作为解压缩过程的一部分,寄存器熔丝元件409生成用于初始化微代码寄存器415所需的目标数据的完整图像。在微代码寄存器配置数据700的解压缩之后,传统的分布机制可以被采用来将数据703分布到相应寻址的核心和微代码寄存器415。
现在参考图8,所呈现的框图的特征在于根据本发明的用于解压缩的高速缓存纠正数据800的示例性格式。在重置序列期间,压缩的高速缓存纠正数据被每个核心420从物理熔丝阵列401中读取。然后根据经由总线412提供的熔丝纠正数据来纠正压缩的高速缓存纠正数据。然后,经纠正的压缩的高速缓存纠正数据被高速缓存熔丝元件410解压缩。解压缩过程的结果是经解压缩的高速缓存纠正数据800。在多核处理器330中可以采用各种高速缓存机制,并且解压缩的高速缓存纠正数据800在共享的L2高速缓存存储器334的背景下呈现,其中所有的核心332可以使用共享区域来访问单个高速缓存存储器334。因此,根据所记录的架构来提供示例性格式。数据800包括与在要求纠正数据的核心420内的高速缓存纠正元件416的数量相对应的多个解压缩的数据块804。每个解压缩的数据块804包括子单元列地址字段802和替代列地址字段803。本领域技术人员将理解,在高速缓存存储器的子单元中利用冗余的列(或者行)来制造存储器高速缓存,以允许在特定的子单元中用有功能的冗余列(或者行)来替代没有功能的列(或者行)。因此,解压缩的高速缓存纠正数据800允许用有功能的列(如图8中所示)来替代没有功能的列。此外,本领域技术人员将理解,当冗余的子单元列需要替代时,与高速缓存纠正相关联的传统的熔丝阵列机制包括与被烧断的每个子单元列相关联的熔丝。因此,因为需要这样大数量的熔丝(以用于寻址所有的子单元和其中的列),所以通常仅仅包括子单元的一部分,然后高速缓存纠正熔丝将非常稀疏地被烧断。并且本发明人还注意到,本发明的特征在于仅仅对需要替代的那些子单元列来寻址和压缩子单元列地址和替代列地址,从而最小化需要实现高速缓存纠正数据所需的熔丝的数量。因此,如由物理熔丝阵列大小和在其中被编程的额外的配置数据量所限制地,本发明相对于迄今已经被提供的技术而言,提供了扩展可以被纠正的高速缓存存储器334中的子单元列(或者行)的数量的潜力。在图8中所示的实施例中,注意到相关联的核心332被配置为使得共享L2高速缓存存储器334的核心332中的仅一个将访问纠正数据802-803并将其提供给其相应的高速缓存纠正元件416。字段802-803的大小是核心架构的函数。作为解压缩过程的一部分,高速缓存纠正熔丝元件410生成初始化高速缓存纠正元件416所需的目标数据的完整图像。在高速缓存纠正数据800的解压缩之后,在响应核心420中的传统的分布机制可以被采用来将数据802-803分布到相应寻址的高速缓存纠正元件416。
参考图9,所呈现的框图的特征在于根据本发明的用于解压缩的高速缓存纠正数据900的替换示例性格式。图9的实施例可以采用在比如图4的机制之类的多核处理器配置,其中每个核心420包括一个或者多个核心上的高速缓存存储器(未示出),其包括但不限于一级(L1)数据高速缓存存储器和L1指令高速缓存存储器。在重置序列期间,压缩的高速缓存纠正数据被每个核心420从物理熔丝阵列401中读取。然后根据经由总线412提供的熔丝纠正数据来纠正压缩的高速缓存纠正数据。然后,经纠正的压缩的高速缓存纠正数据被高速缓存熔丝元件410解压缩。解压缩过程的结果是经解压缩的高速缓存纠正数据900。数据900包括与在需要纠正数据的核心420内的高速缓存纠正元件416的数量相对应的多个解压缩的数据块904。每个解压缩的数据块904具有核心地址字段901、高速缓存地址(CAD)字段905、子单元列地址字段902、以及替代列地址字段903。因此,解压缩的高速缓存纠正数据900允许在由CAD字段905指定的高速缓冲内、在由核心地址字段901指定的核心420内,用有功能的列(或者行)来替代没有功能的列(或者行)。在核心地址字段901中的预定义的核心地址值可以指定共享的高速缓存存储器,例如,不在核心上的L2高速缓存存储器。字段901-903、905的大小是核心架构的函数。作为解压缩过程的一部分,高速缓存纠正熔丝元件410生成初始化高速缓存纠正元件416所需的目标数据的完整图像。在高速缓存纠正数据900的解压缩之后,在响应核心420中的传统的分布机制可以被采用来将数据901-903、905分布到相应寻址的高速缓存纠正元件416。
现在参考图10,所呈现的框图示出了根据本发明的用于解压缩的熔丝纠正数据1000的示例性格式。如上所讨论的,在重置期间,熔丝纠正元件411访问在物理熔丝阵列401内的压缩的熔丝纠正数据406,对压缩的熔丝纠正数据进行解压缩,并且将产生的经解压缩的熔丝纠正数据1000提供给核心420内的其它元件408-410。解压缩的熔丝纠正数据包括一个或者多个烧断结尾字段(EB)1001,其指示在物理熔丝阵列401中成功编程的事件的结尾。如果已经发生了随后的编程事件,则重新烧断字段(R)1002被编程以用于指示以下情况:随后的一个或者多个熔丝纠正字段(FC)1003指示在物理熔丝阵列401内的将被重新烧断的熔丝。熔丝纠正字段中的每一个包括在物理熔丝阵列401内的将被重新烧断的特定熔丝的地址以及特定熔丝的状态(即,烧断或者不烧断)。仅仅那些将被重新烧断的熔丝在熔丝纠正块字段1003中被提供,并且在给定重新烧断事件内的每组字段1003被通过烧断结尾字段1001来划界。如果被适当编码的重新烧断字段1002存在于给定的烧断结尾字段1001之后,则后续的一个或者多个熔丝可以被配置为如相应的熔丝纠正字段所指示地被重新烧断。因此,本发明提供了对于受到阵列大小或者在其中提供的其它数据所限定的相同熔丝的充足次数的重新烧断的能力。
本发明人还观察到与在其中存储压缩的配置数据的共享物理熔丝阵列的利用相关联的实际资源和电源增益呈现了对于被布置在多核管芯上的额外特征的机会。此外,本发明人还注意到,本领域技术人员将会理解,当今的半导体熔丝结构往往受到若干缺点的影响,其中一个缺点被称为“逆生长(growback)”。逆生长是编程过程的逆过程,其使得在一段时间之后,熔丝将在其被烧断之后重新连接,即,其从被编程(即,烧断)状态变回到未编程(即,未烧断)状态。
在另一方面,如上间接提到的,本发明人已经注意到,当功率选通技术被采用来最小化在例如,图3的管芯330的多核管芯上的功率消耗时,存在很多挑战。在本申请的范围之外的这样的技术被采用来检测一个或者多个核心332何时没有被利用,并且以多种方式将一个或者多个核心332断电(也被称为功率选通事件(power gating event))。当经功率选通的核心322被要求执行时,电源被恢复到核心332,并且其开始执行。本发明人特别感兴趣的是核心332包括一个或者多个核心上的高速缓存存储器的情况,如参照图9中所讨论的,其中,在功率选通事件下电源被从这些高速缓存存储器中移除。本领域技术人员将理解,为了在功率选通事件之后对一个或者多个高速缓存存储器上电,一个或者多个高速缓存存储器必须首先使用如上所述的熔丝纠正数据进行配置。然而,本领域技术人员还将理解,熔丝阵列的过度读取降低了在其中的熔丝的寿命。与功率选通相关的另一个问题是每个核心可能需要过度的时间来读取高速缓存纠正熔丝,以对压缩的熔丝修补数据进行解压缩,并且配置用于其相应的核心上高速缓存存储器中的每一个的纠正。因此,本发明的另一个实施例被提供以:1)减小所有的核心在功率选通事件之后解压缩和配置其相应的核心上高速缓存存储器所需的时间量;以及2)通过在功率选通条件下减小由核心访问的数量来增加熔丝阵列的整体寿命。
现在参考到图11,其中所呈现的框图详细描述了用于在最初并且在功率选通事件之后将高速缓存纠正数据快速加载到多核设备1100中的根据本发明的机制。设备1100包括多个核心1101,所述多个核心1101基本上如以上参照图3-10中所述地配置。此外,每个核心1101包括一个或者多个核心上高速缓存存储器CACHE1-CACHEN 1102、高速缓存修补存储装置1103、配置数据存储装置1104、重置逻辑1105、以及睡眠逻辑1106。核心1101中的每一个被耦合到被配置为如上参考图3-10所述的物理熔丝阵列1110,并且耦合到被布置在与核心1101相同的管芯上的存储装置(例如,随机存取存储器(RAM))1130,但是其没有被布置在核心1101中的任何一个内。因此,此后将存储装置1130称为“非核心(UNCORE)”存储装置1130。非核心存储装置1130包括指定的子存储装置1131-1134,其每个对应于核心1101中的每一个。多核设备1100进一步包括被耦合到每个核心1101的功率控制器1120。同步总线SYNC被耦合到每个核心1101,以在上电、重置、以及功率选通事件期间,在其间提供同步通信。
出于示例的目的,仅仅示出了四个核心1101、单个物理熔丝阵列1110、以及单个非核心存储装置1130,然而,本发明人注意到,根据本发明的新颖的和创造性的内容可以被扩展到多个核心1101、熔丝阵列1110、以及任意数量的非核心存储装置1130。在一个实施例中,非核心存储装置1130包括随机存取存储器(RAM),其在功率选通事件期间保持功率。在一个实施例中,非核心存储装置1130包括4KB RAM,但是其它大小也可被设想到。
在操作中,功率控制器1120被配置为执行功率选通,以便将电源恢复到一个或者多个核心1101,或者将电源从其移除。在上电/重置期间,在每个核心1101上的重置逻辑1105被配置为,除了其它操作之外,执行如上所述的对于核心1101的配置。此外,重置逻辑1105被配置为读取配置数据寄存器1104,以确定核心1101是主核心还是从核心。如果配置数据指示核心1101是从核心,则作为重置过程的一部分,从核心等待直到在同步总线SYNC上出现指示用于每个核心1101的解压缩的高速缓存修补数据已经被从熔丝阵列1110中读取并且已经被写入到非核心存储装置1130内的相应子存储装置1131-1134中的主核心信号为止。在SYNC上的相应的子存储装置1131-1134已经被写入的指示之后,每个从核心从相应的子存储装置1131-1134读取其相应的解压缩的修补数据,并且行进以如上所述地配置其相应的核心上高速缓存存储器。如果配置数据指示核心1101是主核心,则作为上电/重置的一部分,主核心从熔丝阵列1110中读取所有核心1101的高速缓存纠正数据,对所有的核心1101的压缩的纠正数据进行解压缩,并且将解压缩的高速缓存修补数据写入到与每个核心1101相对应的子存储装置1131-1134。主核心然后在SYNC上向其它核心1101用信号通知解压缩的高速缓存修补数据的写入完成。
在功率选通事件期间,功率控制1120从一个或者多个核心1101中移除电源,使得电源也被从核心的核心上高速缓存存储器1102上移除。然而,电源没有从非核心存储装置1130中移除,因此为每个核心1101保留了解压缩的修补数据。睡眠逻辑1106被配置为确定在功率选通事件之后电源何时被恢复到相应的核心1101,以从其相应的子存储装置1131-1134直接读取用于其核心上高速缓存存储器的高速缓存修补数据,并且为其核心上的高速缓存存储器1102的纠正来配置其相应的修补数据存储装置1103,从而极大地减小了用于返回到在功率选通事件之后的操作所需的时间,同时明显地增加了熔丝阵列1110的寿命。
本发明的各部分以及相应的详细描述按照计算机存储器内的软件、或者数据位上的操作的算法和符号表示来呈现。通过这些描述和表示,本领域技术人员有效地将其工作的实质传播给本领域其它技术人员。算法,如该术语在此被使用的,以及如其通常被使用的,被认为是导致期望结果的步骤的自洽(self-consistent)序列。所述步骤是需要物理量的物理操纵的步骤。通常地,虽然不是必要地,这些量采取能够被存储、转移、组合、比较、以及以其它方式操纵的光、电、或者磁信号的形式。主要出于公共使用的原因,已经不时地证明将这些信号称为位、值、元素、符号、字符、项、数字等是方便的。
然而,应该记住,所有这些和相似的术语要与适当的物理量相关联,并且仅仅应用到这些量的方便的标签。除非特别声明,或者从讨论中显而易见,否则诸如“处理”或者“计算”或者“确定”或者“显示”等的术语指代计算机系统、微处理器、中央处理单元、或者相似的电子计算设备的动作和过程,所述设备将被表示为在计算机系统的寄存器和存储器内的物理、电子量的数据操纵和转换为相似地表示为计算机系统存储器或者寄存器,或者其它这种信息存储、传输或者显示设备内的物理量的其它数据。
还应该注意,在本发明的软件实现方面,其典型地在某种形式的程序存储介质上编码,或者在某种类型的传输介质上实现。程序存储介质可以是电子的(例如,只读存储器、闪速只读存储器、电可编程只读存储器、随机存取存储器)、磁的(例如,软盘或者硬盘)或者光学的(例如,致密盘只读存储器、或者“CD ROM”),并且其可以是只读的或者是随机存取的。相似地,传输介质可以是金属迹线、双绞线、同轴线缆、光纤、或者本领域公知的某种其它的适当的传输介质。本发明不限于任何给定的实现方式的这些方面。
以上公开的特定实施例仅仅是示例的,并且本领域技术人员将会理解,其可以容易地使用所公开的概念和特定实施例来作为基础来设计或者修改其它结构,以执行与本发明相同的目的,并且可以在不脱离由权利要求阐明的本发明的范围的情况下,对本发明进行各种变化、替换、和更替。
Claims (21)
1.一种用于提供配置数据给集成电路的装置,该装置包括:
设备编程器,其被耦合到布置在管芯上的半导体熔丝阵列,被配置为利用压缩的配置数据来对所述半导体熔丝阵列进行编程;
存储装置,其也被布置在所述管芯上,被配置用于解压缩的配置数据集合的存储和访问;以及
多个核心,其也被布置在所述管芯上,其中所述多个核心中的每一个被耦合到所述半导体熔丝阵列,并且其中所述多个核心中的一个被配置为在上电/重置之后访问所述半导体熔丝阵列以对所述压缩的配置数据进行读取并进行解压缩,并且将用于所述多个核心中的所述每一个内的一个或多个高速缓存存储器的所述解压缩的配置数据集合存储在所述存储装置中,所述多个核心中的所述每一个包括:
重置逻辑,被配置为在上电/重置之后采用所述解压缩的配置数据集合来初始化所述一个或者多个高速缓存存储器;以及
睡眠逻辑,被配置为在功率选通事件之后确定功率被恢复,并且被配置为随后访问所述存储装置以检索和采用所述解压缩的配置数据集合,来在所述功率选通事件之后初始化所述一个或者多个高速缓存。
2.如权利要求1所述的装置,其中,所述多个核心中的所述一个核心内的高速缓存熔丝解压缩器通过在上电/重置期间运行微代码来对所述压缩的配置数据进行解压缩。
3.如权利要求1所述的装置,其中,所述解压缩的配置数据集合每个包括以第一多个半导体熔丝的状态表示的数据,所述以第一多个半导体熔丝的状态表示的数据指示所述一个或多个高速缓存存储器中的一个高速缓存存储器内的在正常操作期间不被采用的一个或多个子单元位置。
4.如权利要求3所述的装置,其中,所述解压缩的配置数据集合每个还包括以第二多个半导体熔丝的状态表示的数据,所述以第二多个半导体熔丝的状态表示的数据指示所述一个或多个高速缓存存储器中的一个高速缓存存储器内的在正常操作期间替代所述一个或多个子单元位置的相应位置将被采用的一个或多个替代子单元位置。
5.如权利要求4所述的装置,其中,在所述一个或多个高速缓存存储器中的所述一个高速缓存存储器内,所述子单元位置和所述替代子单元位置分别包括列和冗余列。
6.如权利要求4所述的装置,其中,在所述一个或多个高速缓存存储器中的所述一个高速缓存存储器内,所述子单元位置和所述替代子单元位置分别包括行和冗余行。
7.如权利要求1所述的装置,其中,所述集成电路包括x86兼容的多核微处理器。
8.一种用于提供配置数据给集成电路设备的装置,该装置包括:
设备编程器,其被耦合到布置在管芯上的半导体熔丝阵列,被配置为利用压缩的配置数据来对所述半导体熔丝阵列进行编程;以及
多核微处理器,包括:
所述半导体熔丝阵列,其被布置在所述管芯上,向其中编程所述压缩的配置数据;
存储装置,其也被布置在所述管芯上,并且被配置用于解压缩的配置数据集合的存储和访问;以及
多个核心,其也被布置在所述管芯上,其中所述多个核心中的每一个被耦合到所述半导体熔丝阵列,并且所述其中多个核心中的一个被配置为在上电/重置之后访问所述半导体熔丝阵列以对所述压缩的配置数据进行读取并进行解压缩,并且将用于所述多个核心中的所述每一个内的一个或多个高速缓存存储器的所述解压缩的配置数据集合存储在所述存储装置中,所述多个核心中的所述每一个包括:
重置逻辑,其被配置为在上电/重置之后采用所述解压缩的配置数据集合来初始化所述一个或者多个高速缓存存储器;以及
睡眠逻辑,其被配置为在功率选通事件之后确定功率被恢复,并且被配置为随后访问所述存储装置以检索和采用所述解压缩的配置数据集合,来在所述功率选通事件之后初始化所述一个或者多个高速缓存。
9.如权利要求8所述的装置,其中,所述多个核心中的所述一个核心内的高速缓存熔丝解压缩器通过在上电/重置期间运行微代码来对所述压缩的配置数据进行解压缩。
10.如权利要求8所述的装置,其中,所述解压缩的配置数据集合每个包括以第一多个半导体熔丝的状态表示的数据,所述以第一多个半导体熔丝的状态表示的数据指示所述一个或多个高速缓存存储器中的一个高速缓存存储器内的在正常操作期间不被采用的一个或多个子单元位置。
11.如权利要求10所述的装置,其中,所述解压缩的配置数据集合每个还包括以第二多个半导体熔丝的状态表示的数据,所述以第二多个半导体熔丝的状态表示的数据指示所述一个或者多个高速缓存存储器中的一个高速缓存存储器内的在正常操作期间替代所述一个或者多个子单元位置的相应位置将被采用的一个或者多个替代子单元位置。
12.如权利要求11所述的装置,其中,在所述一个或者多个高速缓存存储器中的所述一个高速缓存存储器内,所述子单元位置和所述替代子单元位置分别包括列和冗余列。
13.如权利要求11所述的装置,其中,在所述一个或者多个高速缓存存储器中的所述一个高速缓存存储器内,所述子单元位置和所述替代子单元位置分别包括行和冗余行。
14.如权利要求8所述的装置,其中,所述多核微处理器包括x86兼容的多核微处理器。
15.一种用于配置集成电路的方法,该方法包括:
第一将半导体熔丝阵列布置在管芯上;
经由设备编程器利用压缩的配置数据来对半导体熔丝阵列进行编程;
第二将存储装置布置在管芯上,该存储装置被配置用于解压缩的配置数据集合的存储和访问;
第三将多个微处理器核心布置在管芯上,其中多个微处理器核心中的每一个被耦合到半导体熔丝阵列,并且其中多个微处理器核心中的一个被配置为在上电/重置之后访问半导体熔丝阵列以对压缩的配置数据进行读取并进行解压缩,并且将用于多个核心中的每一个内的一个或多个高速缓存存储器的解压缩的配置数据集合存储在存储装置中;
经由布置在多个核心中的每一个内的重置逻辑在上电/重置之后采用解压缩的配置数据集合来初始化一个或者多个高速缓存存储器;以及
经由布置在多个核心中的每一个内的睡眠逻辑在功率选通事件之后确定功率被恢复,并且随后访问存储装置以检索和采用解压缩的配置数据集合,来在功率选通事件之后初始化一个或者多个高速缓存。
16.如权利要求15所述的方法,其中,在多个核心中的一个核心内的高速缓存熔丝解压缩器通过在上电/重置期间执行微代码来对压缩的配置数据进行解压缩。
17.如权利要求15所述的方法,其中,解压缩的配置数据集合每一个包括以第一多个半导体熔丝的状态表示的数据,所述以第一多个半导体熔丝的状态表示的数据指示在一个或者多个高速缓存存储器中的一个高速缓存存储器内的在正常操作期间不被采用的一个或者多个子单元位置。
18.如权利要求17所述的方法,其中,解压缩的配置数据集合每一个还包括以第二多个半导体熔丝的状态表示的数据,所述以第二多个半导体熔丝的状态表示的数据指示一个或者多个高速缓存存储器中的一个高速缓存存储器内的在正常操作期间替代一个或者多个子单元位置中的相应位置将被采用的一个或者多个替代子单元位置。
19.如权利要求18所述的方法,其中,在一个或者多个高速缓存存储器中的一个高速缓存存储器内,子单元位置和替代子单元位置分别包括列和冗余列。
20.如权利要求18所述的方法,其中,在一个或者多个高速缓存存储器中的一个高速缓存存储器内,子单元位置和替代子单元位置分别包括行和冗余行。
21.如权利要求15所述的方法,其中,集成电路包括x86兼容的多核微处理器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/285,412 US9606933B2 (en) | 2014-05-22 | 2014-05-22 | Multi-core apparatus and method for restoring data arrays following a power gating event |
US14/285,412 | 2014-05-22 | ||
PCT/IB2014/003185 WO2015177592A1 (en) | 2014-05-22 | 2014-12-12 | Programming apparatus and method for repairing cache arrays in multi-core microprocessor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105849714A CN105849714A (zh) | 2016-08-10 |
CN105849714B true CN105849714B (zh) | 2019-03-01 |
Family
ID=52358980
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410667236.0A Active CN104538059B (zh) | 2014-05-22 | 2014-11-20 | 用于在功率选通事件之后恢复数据阵列的多核装置和方法 |
CN201480062553.8A Active CN105849812B (zh) | 2014-05-22 | 2014-12-12 | 用于在功率选通事件之后恢复数据阵列的多核编程装置和方法 |
CN201480062554.2A Active CN105849813B (zh) | 2014-05-22 | 2014-12-12 | 多核数据阵列功率选通高速缓存恢复编程机制 |
CN201480062556.1A Active CN105849810B (zh) | 2014-05-22 | 2014-12-12 | 多核微处理器功率选通高速缓存恢复编程机制 |
CN201480062559.5A Active CN105849714B (zh) | 2014-05-22 | 2014-12-12 | 用于在功率选通事件之后恢复数据阵列的多核装置和方法 |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410667236.0A Active CN104538059B (zh) | 2014-05-22 | 2014-11-20 | 用于在功率选通事件之后恢复数据阵列的多核装置和方法 |
CN201480062553.8A Active CN105849812B (zh) | 2014-05-22 | 2014-12-12 | 用于在功率选通事件之后恢复数据阵列的多核编程装置和方法 |
CN201480062554.2A Active CN105849813B (zh) | 2014-05-22 | 2014-12-12 | 多核数据阵列功率选通高速缓存恢复编程机制 |
CN201480062556.1A Active CN105849810B (zh) | 2014-05-22 | 2014-12-12 | 多核微处理器功率选通高速缓存恢复编程机制 |
Country Status (6)
Country | Link |
---|---|
US (5) | US9606933B2 (zh) |
EP (4) | EP2989637B1 (zh) |
JP (4) | JP6161808B2 (zh) |
KR (4) | KR101757571B1 (zh) |
CN (5) | CN104538059B (zh) |
WO (4) | WO2015177592A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378560B2 (en) | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US9223715B2 (en) | 2013-08-21 | 2015-12-29 | Via Alliance Semiconductor Co., Ltd. | Microprocessor mechanism for decompression of cache correction data |
US9348690B2 (en) | 2013-08-21 | 2016-05-24 | Via Alliance Semiconductor Co., Ltd. | Correctable configuration data compression and decompression system |
US9606933B2 (en) | 2014-05-22 | 2017-03-28 | Via Alliance Semiconductor Co., Ltd. | Multi-core apparatus and method for restoring data arrays following a power gating event |
US9395802B2 (en) | 2014-05-22 | 2016-07-19 | Via Alliance Semiconductor Co., Ltd. | Multi-core data array power gating restoral mechanism |
US9524241B2 (en) | 2014-05-22 | 2016-12-20 | Via Alliance Semiconductor Co., Ltd. | Multi-core microprocessor power gating cache restoral mechanism |
US9665490B2 (en) | 2014-05-22 | 2017-05-30 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method for repairing cache arrays in a multi-core microprocessor |
US10565494B2 (en) * | 2016-12-31 | 2020-02-18 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with segmentable array width rotator |
US10833688B2 (en) * | 2017-06-23 | 2020-11-10 | Hitachi Automotive Systems, Ltd. | Electronic control device |
CN109343794B (zh) * | 2018-09-12 | 2021-11-09 | 杭州晨晓科技股份有限公司 | 一种存储器的配置方法及配置装置 |
US11886722B2 (en) | 2021-03-31 | 2024-01-30 | Lenovo (Singapore) Pte. Ltd. | Smart inclusion of technology at time of build |
CN114203245B (zh) * | 2022-02-18 | 2022-05-10 | 深圳市芯茂微电子有限公司 | 一种eFuse控制方法及相关组件 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7328335B1 (en) * | 2004-10-01 | 2008-02-05 | Xilinx, Inc. | Bootable programmable logic device for internal decoding of encoded configuration data |
US7383423B1 (en) * | 2004-10-01 | 2008-06-03 | Advanced Micro Devices, Inc. | Shared resources in a chip multiprocessor |
CN103377711A (zh) * | 2012-04-30 | 2013-10-30 | 爱思开海力士有限公司 | 具有阵列电熔丝的半导体集成电路及其驱动方法 |
Family Cites Families (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155484A (en) | 1991-09-13 | 1992-10-13 | Salient Software, Inc. | Fast data compressor with direct lookup table indexing into history buffer |
US5513346A (en) | 1993-10-21 | 1996-04-30 | Intel Corporation | Error condition detector for handling interrupt in integrated circuits having multiple processors |
US5745734A (en) | 1995-09-29 | 1998-04-28 | International Business Machines Corporation | Method and system for programming a gate array using a compressed configuration bit stream |
US5784625A (en) | 1996-03-19 | 1998-07-21 | Vlsi Technology, Inc. | Method and apparatus for effecting a soft reset in a processor device without requiring a dedicated external pin |
US5889679A (en) | 1997-07-15 | 1999-03-30 | Integrated Device Technology, Inc. | Fuse array control for smart function enable |
US6349395B2 (en) | 1997-09-17 | 2002-02-19 | Kabushiki Kaisha Toshiba | Configurable integrated circuit and method of testing the same |
JPH11143704A (ja) | 1997-11-12 | 1999-05-28 | Nec Software Hokkaido Ltd | 圧縮データパッチ修正方式 |
US6028445A (en) | 1997-12-30 | 2000-02-22 | Xilinx, Inc. | Decoder structure and method for FPGA configuration |
US6772356B1 (en) | 2000-04-05 | 2004-08-03 | Advanced Micro Devices, Inc. | System for specifying core voltage for a microprocessor by selectively outputting one of a first, fixed and a second, variable voltage control settings from the microprocessor |
US6748518B1 (en) | 2000-06-06 | 2004-06-08 | International Business Machines Corporation | Multi-level multiprocessor speculation mechanism |
US6525678B1 (en) | 2000-10-06 | 2003-02-25 | Altera Corporation | Configuring a programmable logic device |
US6577156B2 (en) | 2000-12-05 | 2003-06-10 | International Business Machines Corporation | Method and apparatus for initializing an integrated circuit using compressed data from a remote fusebox |
JP2003100097A (ja) | 2001-09-25 | 2003-04-04 | Mitsubishi Electric Corp | 半導体記憶装置及びそのテスト方法 |
EP1438662A2 (en) | 2001-10-11 | 2004-07-21 | Altera Corporation | Error detection on programmable logic resources |
US6924663B2 (en) | 2001-12-28 | 2005-08-02 | Fujitsu Limited | Programmable logic device with ferroelectric configuration memories |
AU2003245533A1 (en) | 2002-06-21 | 2004-01-06 | Thomson Licensing S.A. | Broadcast router having a shared configuration repository |
US7120068B2 (en) | 2002-07-29 | 2006-10-10 | Micron Technology, Inc. | Column/row redundancy architecture using latches programmed from a look up table |
US7415640B1 (en) | 2003-10-13 | 2008-08-19 | Virage Logic Corporation | Methods and apparatuses that reduce the size of a repair data container for repairable memories |
US7400167B2 (en) | 2005-08-16 | 2008-07-15 | Altera Corporation | Apparatus and methods for optimizing the performance of programmable logic devices |
US7350119B1 (en) | 2004-06-02 | 2008-03-25 | Advanced Micro Devices, Inc. | Compressed encoding for repair |
US7873776B2 (en) | 2004-06-30 | 2011-01-18 | Oracle America, Inc. | Multiple-core processor with support for multiple virtual processors |
JP2006079262A (ja) * | 2004-09-08 | 2006-03-23 | Matsushita Electric Ind Co Ltd | Eeprom制御システム |
DE102004047330B4 (de) | 2004-09-29 | 2011-04-07 | Qimonda Ag | Integrierter Halbleiterspeicher |
US7308598B2 (en) | 2004-11-04 | 2007-12-11 | International Business Machines Corporation | Algorithm to encode and compress array redundancy data |
US7268577B2 (en) | 2004-12-17 | 2007-09-11 | International Business Machines Corporation | Changing chip function based on fuse states |
JP4158922B2 (ja) * | 2004-12-20 | 2008-10-01 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マイクロコンピュータ |
US7529997B2 (en) | 2005-03-14 | 2009-05-05 | International Business Machines Corporation | Method for self-correcting cache using line delete, data logging, and fuse repair correction |
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 |
US7805761B2 (en) | 2005-04-29 | 2010-09-28 | Microsoft Corporation | Disposable red partitions |
US7640541B2 (en) | 2005-05-23 | 2009-12-29 | Intel Corporation | In-system reconfiguring of hardware resources |
WO2007119300A1 (ja) | 2006-03-15 | 2007-10-25 | Nec Corporation | 再構成可能デバイスのテストシステム及びその方法並びにそれに用いる再構成可能デバイス |
US7529992B1 (en) | 2006-03-27 | 2009-05-05 | Tabula, Inc. | Configurable integrated circuit with error correcting circuitry |
US7702978B2 (en) | 2006-04-21 | 2010-04-20 | Altera Corporation | Soft error location and sensitivity detection for programmable devices |
US7898882B2 (en) | 2006-06-23 | 2011-03-01 | Synopsys, Inc. | Architecture, system and method for compressing repair data in an integrated circuit (IC) design |
CN101479718B (zh) | 2006-06-27 | 2011-04-06 | 日本电气株式会社 | 多处理器系统以及使用它的便携式终端 |
US20080046891A1 (en) | 2006-07-12 | 2008-02-21 | Jayesh Sanchorawala | Cooperative asymmetric multiprocessing for embedded systems |
US7757135B2 (en) | 2006-09-11 | 2010-07-13 | Mentor Graphics Corporation | Method and apparatus for storing and distributing memory repair information |
EP1912121B1 (en) | 2006-09-13 | 2009-08-12 | STMicroelectronics S.r.l. | NAND flash memory device with ECC protected reserved area for non volatile storage of redundancy data |
US7538597B2 (en) | 2007-08-13 | 2009-05-26 | Hong Kong Applied Science And Technology Research Institute Co. Ltd. | Fuse cell and method for programming the same |
US7924596B2 (en) | 2007-09-26 | 2011-04-12 | Intel Corporation | Area efficient programmable read only memory (PROM) array |
US8112681B2 (en) | 2008-01-29 | 2012-02-07 | Arm Limited | Method and apparatus for handling fuse data for repairing faulty elements within an IC |
US7710813B1 (en) | 2008-03-05 | 2010-05-04 | Xilinx, Inc. | Electronic fuse array |
US7663957B2 (en) | 2008-05-27 | 2010-02-16 | Via Technologies, Inc. | Microprocessor with program-accessible re-writable non-volatile state embodied in blowable fuses of the microprocessor |
US7839707B2 (en) | 2008-09-09 | 2010-11-23 | Vitesse Semiconductor Corporation | Fuses for memory repair |
CN101493809B (zh) | 2009-03-03 | 2010-09-08 | 哈尔滨工业大学 | 一种基于fpga的多核心星载计算机 |
US8234543B2 (en) | 2009-03-06 | 2012-07-31 | Via Technologies, Inc. | Detection and correction of fuse re-growth in a microprocessor |
US7795899B1 (en) | 2009-04-08 | 2010-09-14 | Oracle America, Inc. | Enabling on-chip features via efuses |
US8281223B2 (en) | 2009-08-07 | 2012-10-02 | Via Technologies, Inc. | Detection of fuse re-growth in a microprocessor |
US8194489B2 (en) | 2010-01-21 | 2012-06-05 | International Business Machines Corporation | Paired programmable fuses |
KR101131557B1 (ko) * | 2010-04-30 | 2012-04-04 | 주식회사 하이닉스반도체 | 반도체 메모리 장치의 리페어 회로 및 리페어 방법 |
US8242800B2 (en) | 2010-06-25 | 2012-08-14 | Via Technologies, Inc. | Apparatus and method for override access to a secured programmable fuse array |
US8117498B1 (en) * | 2010-07-27 | 2012-02-14 | Advanced Micro Devices, Inc. | Mechanism for maintaining cache soft repairs across power state transitions |
US9323527B2 (en) | 2010-10-15 | 2016-04-26 | International Business Machines Corporation | Performance of emerging applications in a virtualized environment using transient instruction streams |
US8930676B2 (en) | 2010-12-22 | 2015-01-06 | Via Technologies, Inc. | Master core discovering enabled cores in microprocessor comprising plural multi-core dies |
JP5636276B2 (ja) * | 2010-12-27 | 2014-12-03 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US20130022951A1 (en) | 2011-07-21 | 2013-01-24 | Hughes timothy p | Individualized, genetically-determined dietary supplementation and exercise recommendation with container and dispenser for same |
US8719648B2 (en) | 2011-07-27 | 2014-05-06 | International Business Machines Corporation | Interleaving of memory repair data compression and fuse programming operations in single fusebay architecture |
US8467260B2 (en) | 2011-08-05 | 2013-06-18 | International Business Machines Corporation | Structure and method for storing multiple repair pass data into a fusebay |
US8484543B2 (en) | 2011-08-08 | 2013-07-09 | International Business Machines Corporation | Fusebay controller structure, system, and method |
US8537627B2 (en) | 2011-09-01 | 2013-09-17 | International Business Machines Corporation | Determining fusebay storage element usage |
US20130070514A1 (en) | 2011-09-16 | 2013-03-21 | Advanced Micro Devices, Inc. | Integrated circuit with on-die distributed programmable passive variable resistance fuse array and method of making same |
US9201834B2 (en) | 2011-10-11 | 2015-12-01 | Etron Technology, Inc. | Reconfigurable high speed memory chip module and electronic device with a reconfigurable high speed memory chip module |
KR20130072094A (ko) * | 2011-12-21 | 2013-07-01 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그 동작 방법 |
US9367329B2 (en) * | 2011-12-29 | 2016-06-14 | Intel Corporation | Initialization of multi-core processing system |
KR101847541B1 (ko) | 2012-01-18 | 2018-04-11 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치의 메모리 셀 구조 및 그의 구동 방법 |
US8982655B1 (en) | 2013-08-21 | 2015-03-17 | Via Technologies, Inc. | Apparatus and method for compression and decompression of microprocessor configuration data |
US9223715B2 (en) | 2013-08-21 | 2015-12-29 | Via Alliance Semiconductor Co., Ltd. | Microprocessor mechanism for decompression of cache correction data |
US9348690B2 (en) | 2013-08-21 | 2016-05-24 | Via Alliance Semiconductor Co., Ltd. | Correctable configuration data compression and decompression system |
US8879345B1 (en) * | 2013-08-21 | 2014-11-04 | Via Technologies, Inc. | Microprocessor mechanism for decompression of fuse correction data |
US9606933B2 (en) | 2014-05-22 | 2017-03-28 | Via Alliance Semiconductor Co., Ltd. | Multi-core apparatus and method for restoring data arrays following a power gating event |
US9395802B2 (en) | 2014-05-22 | 2016-07-19 | Via Alliance Semiconductor Co., Ltd. | Multi-core data array power gating restoral mechanism |
US9665490B2 (en) | 2014-05-22 | 2017-05-30 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method for repairing cache arrays in a multi-core microprocessor |
US9524241B2 (en) | 2014-05-22 | 2016-12-20 | Via Alliance Semiconductor Co., Ltd. | Multi-core microprocessor power gating cache restoral mechanism |
-
2014
- 2014-05-22 US US14/285,412 patent/US9606933B2/en active Active
- 2014-11-20 CN CN201410667236.0A patent/CN104538059B/zh active Active
- 2014-12-12 KR KR1020157033142A patent/KR101757571B1/ko active IP Right Grant
- 2014-12-12 EP EP14891594.5A patent/EP2989637B1/en active Active
- 2014-12-12 JP JP2016520764A patent/JP6161808B2/ja active Active
- 2014-12-12 US US14/889,843 patent/US9582428B2/en active Active
- 2014-12-12 US US14/889,846 patent/US9594691B2/en active Active
- 2014-12-12 CN CN201480062553.8A patent/CN105849812B/zh active Active
- 2014-12-12 CN CN201480062554.2A patent/CN105849813B/zh active Active
- 2014-12-12 US US14/889,844 patent/US9582429B2/en active Active
- 2014-12-12 JP JP2016520765A patent/JP6078693B2/ja active Active
- 2014-12-12 US US14/889,845 patent/US9594690B2/en active Active
- 2014-12-12 WO PCT/IB2014/003185 patent/WO2015177592A1/en active Application Filing
- 2014-12-12 JP JP2016520763A patent/JP6078692B2/ja active Active
- 2014-12-12 CN CN201480062556.1A patent/CN105849810B/zh active Active
- 2014-12-12 KR KR1020157033143A patent/KR101757572B1/ko active IP Right Grant
- 2014-12-12 EP EP14891595.2A patent/EP2989635B1/en active Active
- 2014-12-12 CN CN201480062559.5A patent/CN105849714B/zh active Active
- 2014-12-12 KR KR1020157033145A patent/KR101721790B1/ko active IP Right Grant
- 2014-12-12 WO PCT/IB2014/003267 patent/WO2015177596A1/en active Application Filing
- 2014-12-12 KR KR1020157033146A patent/KR101721791B1/ko active IP Right Grant
- 2014-12-12 WO PCT/IB2014/003259 patent/WO2015177595A1/en active Application Filing
- 2014-12-12 WO PCT/IB2014/003198 patent/WO2015177593A1/en active Application Filing
- 2014-12-12 JP JP2016520762A patent/JP6078691B2/ja active Active
- 2014-12-12 EP EP14891596.0A patent/EP2989553B1/en active Active
- 2014-12-12 EP EP14891593.7A patent/EP2989636B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7328335B1 (en) * | 2004-10-01 | 2008-02-05 | Xilinx, Inc. | Bootable programmable logic device for internal decoding of encoded configuration data |
US7383423B1 (en) * | 2004-10-01 | 2008-06-03 | Advanced Micro Devices, Inc. | Shared resources in a chip multiprocessor |
CN103377711A (zh) * | 2012-04-30 | 2013-10-30 | 爱思开海力士有限公司 | 具有阵列电熔丝的半导体集成电路及其驱动方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105849714B (zh) | 用于在功率选通事件之后恢复数据阵列的多核装置和方法 | |
CN104572335B (zh) | 多核数据阵列功率选通恢复机制 | |
CN104570830B (zh) | 向集成电路提供配置数据的装置及方法 | |
CN104575610B (zh) | 多核微处理器功率选通高速缓存恢复机制 | |
US9727478B2 (en) | Apparatus and method for configurable redundant fuse banks | |
TWI532049B (zh) | 向積體電路提供配置資料的裝置和方法 | |
TW201545166A (zh) | 向積體電路提供配置資料的裝置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
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. |
|
CP03 | Change of name, title or address |