CN104572335B - 多核数据阵列功率选通恢复机制 - Google Patents

多核数据阵列功率选通恢复机制 Download PDF

Info

Publication number
CN104572335B
CN104572335B CN201410670832.4A CN201410670832A CN104572335B CN 104572335 B CN104572335 B CN 104572335B CN 201410670832 A CN201410670832 A CN 201410670832A CN 104572335 B CN104572335 B CN 104572335B
Authority
CN
China
Prior art keywords
core
fuse
configuration data
data
cache
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
CN201410670832.4A
Other languages
English (en)
Other versions
CN104572335A (zh
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
Application filed by Shanghai Zhaoxin Integrated Circuit Co Ltd filed Critical Shanghai Zhaoxin Integrated Circuit Co Ltd
Publication of CN104572335A publication Critical patent/CN104572335A/zh
Application granted granted Critical
Publication of CN104572335B publication Critical patent/CN104572335B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-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/16Read-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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-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/18Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/785Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes
    • G11C29/787Masking faults in memories by using spares or by reconfiguring using programmable devices with redundancy programming schemes using a fuse hierarchy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Abstract

提供了一种包括熔丝阵列和存储器的装置。熔丝阵列利用用于多个核心的压缩的配置数据来编程。存储器被耦合到所述多个核心,并且包括多个子存储器,多个子存储器的每个对应于所述多个核心中的每一个,其中,所述多个核心中的一个在供电/重置之后访问所述半导体熔丝阵列,并且读取和解压所述压缩的配置数据,并且被配置为在多个子存储器中存储用于所述多个核心的每一个内的一个或者多个高速缓存存储器的多个解压的配置数据集合。多个核心的每个具有睡眠逻辑。睡眠逻辑被配置为接续地访问所述多个子存储器中的每一个中的相应的一个,以检索和采用解压的配置数据集合,从而在功率选通事件之后初始化所述一个或者多个高速缓存存储器。

Description

多核数据阵列功率选通恢复机制
相关申请的交叉引用
本申请与如下的待决美国专利申请相关,并且其中的每一个都具有共同的受让人和共同的发明人。
技术领域
本发明大体上涉及微电子领域,并且更具体地,涉及用于在多核功率选通事件之后恢复压缩的高速缓存修补(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 (13)

1.一种用于向集成电路提供配置数据的装置,所述装置包括:
布置在管芯上的半导体熔丝阵列,向其中编程用于布置在所述管芯上的、并且耦合到所述半导体熔丝阵列的多个核心的压缩的配置数据,所述多个核心中的每一个被耦合到一同步总线;
耦合到所述多个核心上的存储器,所述存储器包括多个子存储器,多个子存储器的每个对应于所述多个核心中的每一个,其中,所述多个核心中的一个核心被配置为:在供电/重置之后访问所述半导体熔丝阵列,以读取和解压用于所述多个核心的压缩的配置数据;并且被配置为在所述多个子存储器中存储用于所述多个核心的所述每一个核心内的一个或者多个高速缓存存储器的多个解压的配置数据集合;以及
多个核心,其每个包括:
睡眠逻辑,其被配置为接续地访问所述多个子存储器中的所述每一个中的相应的一个,以检索和采用所述解压的配置数据集合,从而在功率选通事件之后初始化所述一个或者多个高速缓存存储器,
其中如果配置数据指示所述多个核心中的一个核心是从核心,则作为重置过程的一部分,所述从核心等待直到在所述同步总线上出现指示用于所述多个核心中的每个核心的解压的配置数据集合已经被从所述半导体熔丝阵列中读取并且已经被写入到所述存储器内的信号为止。
2.根据权利要求1所述的装置,其中,在所述多个核心的所述一个中的高速缓存熔丝元件通过在供电/重置期间执行微代码来对所述压缩的配置数据进行解压。
3.根据权利要求1所述的装置,其中,所述解压的配置数据集合的每个包括第一多个半导体熔丝,其指示在所述一个或者多个高速缓存存储器中的一个内的一个或者多个子单元位置,所述一个或者多个子单元位置在正常操作期间不被采用。
4.根据权利要求3所述的装置,其中,所述解压的配置数据集合的每个进一步包括第二多个半导体熔丝,其指示在所述一个或者多个高速缓存存储器的一个内的一个或者多个替代子单元位置,所述一个或者多个替代子单元位置在正常操作期间替代所述一个或者多个子单元位置的相应位置将被采用。
5.根据权利要求4所述的装置,其中,在所述一个或者多个高速缓存存储器的所述一个内,所述子单元位置和所述替代子单元位置分别包括列和冗余列。
6.根据权利要求4所述的装置,其中,在所述一个或者多个高速缓存存储器的所述一个内,所述子单元位置和所述替代子单元位置分别包括行和冗余行。
7.根据权利要求1所述的装置,其中,所述装置包括多核微处理器。
8.一种用于配置集成电路的方法,所述方法包括:
将半导体熔丝阵列放置在管芯上,向其中编程用于布置在管芯上的、并且耦合到半导体熔丝阵列上的多个核心的压缩的配置数据,所述多个核心中的每一个被耦合到一同步总线;
将多个存储器放置在管芯上,所述存储器包括多个子存储器,多个子存储器的每个对应于多个核心中的每一个的多个子存储器,并且其中多个核心的一个核心被配置为:在供电/重置之后访问半导体熔丝阵列,以对用于所述多个核心的压缩的配置数据进行读取和解压;并且在多个子存储器中存储用于在多个核心的每一个核心内的一个或者多个高速缓存存储器的多个解压的配置数据集合;以及
采用多个核心中的每一个内的睡眠逻辑,以接续地访问与多个子存储器的每一个的相应一个,从而检索和采用解压的配置数据设置,以在功率选通事件之后初始化一个或者多个高速缓存存储器,
其中如果配置数据指示所述多个核心中的一个核心是从核心,则作为重置过程的一部分,所述从核心等待直到在所述同步总线上出现指示用于所述多个核心中的每个核心的解压的配置数据集合已经被从所述半导体熔丝阵列中读取并且已经被写入到所述存储器内的信号为止。
9.根据权利要求8所述的方法,其中,在所述多个核心的一个中的高速缓存熔丝元件通过在供电/重置期间执行微代码来对所述压缩的配置数据进行解压。
10.根据权利要求8所述的方法,其中,所述解压的配置数据集合的每一个包括第一多个半导体熔丝,其指示在所述一个或者多个高速缓存存储器中的一个内的一个或者多个子单元位置,所述一个或者多个子单元位置在正常操作期间不被采用。
11.根据权利要求10所述的方法,其中,所述解压的配置数据集合的每一个进一步包括第二多个半导体熔丝,其指示所述一个或者多个高速缓存存储器的一个内的一个或者多个替代子单元位置,所述一个或者多个替代子单元位置在正常操作期间替代所述一个或者多个子单元位置的相应位置将被采用。
12.根据权利要求11所述的方法,其中,在所述一个或者多个高速缓存存储器的所述一个内,所述子单元位置和所述替代子单元位置分别包括列和冗余列。
13.根据权利要求11所述的方法,其中,在所述一个或者多个高速缓存存储器的所述一个内,所述子单元位置和所述替代子单元位置分别包括行和冗余行。
CN201410670832.4A 2014-05-22 2014-11-20 多核数据阵列功率选通恢复机制 Active CN104572335B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/285,448 2014-05-22
US14/285,448 US9395802B2 (en) 2014-05-22 2014-05-22 Multi-core data array power gating restoral mechanism

Publications (2)

Publication Number Publication Date
CN104572335A CN104572335A (zh) 2015-04-29
CN104572335B true CN104572335B (zh) 2018-09-14

Family

ID=53088474

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410670832.4A Active CN104572335B (zh) 2014-05-22 2014-11-20 多核数据阵列功率选通恢复机制

Country Status (2)

Country Link
US (2) US9395802B2 (zh)
CN (1) CN104572335B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2510180C (en) 2002-12-17 2012-09-11 Merck Patent Gesellschaft Mit Beschraenkter Haftung Humanized antibody (h14.18) of the mouse 14.18 antibody binding to gd2 and its fusion with il-2
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
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
US9395802B2 (en) 2014-05-22 2016-07-19 Via Alliance Semiconductor Co., Ltd. Multi-core data array power gating restoral mechanism
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
US9524241B2 (en) 2014-05-22 2016-12-20 Via Alliance Semiconductor Co., Ltd. Multi-core microprocessor power gating cache restoral mechanism
US11003387B2 (en) * 2017-11-28 2021-05-11 Western Digital Technologies, Inc. Combined data and control for multi-die flash
US11200001B2 (en) * 2020-05-15 2021-12-14 Micron Technology, Inc. Management of power during memory device reset and initialization

Family Cites Families (68)

* Cited by examiner, † Cited by third party
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 半導体記憶装置及びそのテスト方法
JP4856848B2 (ja) 2001-10-11 2012-01-18 アルテラ コーポレイション プログラマブルロジックリソース上のエラー検出
EP1324495B1 (en) 2001-12-28 2011-03-30 Fujitsu Semiconductor Limited Programmable logic device with ferrroelectric configuration memories
US7805766B2 (en) 2002-06-21 2010-09-28 Thomson Licensing 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
DE102004047330B4 (de) 2004-09-29 2011-04-07 Qimonda Ag Integrierter Halbleiterspeicher
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
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
US7640541B2 (en) 2005-05-23 2009-12-29 Intel Corporation In-system reconfiguring of hardware resources
JP5035239B2 (ja) 2006-03-15 2012-09-26 日本電気株式会社 再構成可能デバイスのテストシステム及びその方法並びにそれに用いる再構成可能デバイス
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
WO2008001671A1 (fr) 2006-06-27 2008-01-03 Nec Corporation Système multiprocesseur et terminal portable l'utilisant
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
US8281198B2 (en) 2009-08-07 2012-10-02 Via Technologies, Inc. User-initiatable method for detecting re-grown fuses within a microprocessor
US8194489B2 (en) 2010-01-21 2012-06-05 International Business Machines Corporation Paired programmable fuses
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
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 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
KR101847541B1 (ko) 2012-01-18 2018-04-11 에스케이하이닉스 주식회사 반도체 메모리 장치의 메모리 셀 구조 및 그의 구동 방법
KR101890820B1 (ko) 2012-04-30 2018-08-22 에스케이하이닉스 주식회사 어레이 일렉트릭 퓨즈를 구비하는 반도체 집적회로 및 그의 구동방법
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

Also Published As

Publication number Publication date
US20160350022A1 (en) 2016-12-01
US9395802B2 (en) 2016-07-19
US20150338905A1 (en) 2015-11-26
US9690511B2 (en) 2017-06-27
CN104572335A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN104538059B (zh) 用于在功率选通事件之后恢复数据阵列的多核装置和方法
CN104572335B (zh) 多核数据阵列功率选通恢复机制
CN104570830B (zh) 向集成电路提供配置数据的装置及方法
CN104575610B (zh) 多核微处理器功率选通高速缓存恢复机制
CN104183270B (zh) 配置数据的处理装置及方法
US9727478B2 (en) Apparatus and method for configurable redundant fuse banks
TWI524352B (zh) 向積體電路提供配置資料的裝置和方法
TWI532049B (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