[go: up one dir, main page]

TWI524352B - 向積體電路提供配置資料的裝置和方法 - Google Patents

向積體電路提供配置資料的裝置和方法 Download PDF

Info

Publication number
TWI524352B
TWI524352B TW103141345A TW103141345A TWI524352B TW I524352 B TWI524352 B TW I524352B TW 103141345 A TW103141345 A TW 103141345A TW 103141345 A TW103141345 A TW 103141345A TW I524352 B TWI524352 B TW I524352B
Authority
TW
Taiwan
Prior art keywords
fuse
configuration data
core
cores
integrated circuit
Prior art date
Application number
TW103141345A
Other languages
English (en)
Other versions
TW201545166A (zh
Inventor
G 葛蘭 亨利
弟尼斯K 詹
史蒂芬 嘉斯金斯
Original Assignee
上海兆芯集成電路有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/285,448 external-priority patent/US9395802B2/en
Priority claimed from US14/285,484 external-priority patent/US9524241B2/en
Application filed by 上海兆芯集成電路有限公司 filed Critical 上海兆芯集成電路有限公司
Publication of TW201545166A publication Critical patent/TW201545166A/zh
Application granted granted Critical
Publication of TWI524352B publication Critical patent/TWI524352B/zh

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

向積體電路提供配置資料的裝置和方法
本發明係有關於一種微電子領域,特別是一種涉及用於向積體電路提供配置資料的裝置和方法。
積體電路的技術在過去的40年間獲得了指數級的進步。特別是從4位元單指令、10微米器件開始的微處理器領域,在半導體製造技術的進步已經使得設計者能夠提供在架構和密度方面越來越複雜的設備。在80年代和90年代中,所謂的管線式(pipeline)微處理器和超標量體系結構(superscalar)微處理器被開發出來,其在單個晶粒(die)上包括數百萬個電晶體。現在,在20年之後,64位的32奈米的設備正在被生產,其在單個晶粒上具有數十億個電晶體,並且其包括用於資料處理的多個微處理器核心。
從這些早期的微處理器被生產開始就一直堅持的一個要求是:當其被上電時或者當其被重置時需要利用配置資料來對這些設備進行初始化。例如,很多架構以很多可選擇的頻率和/或電壓中的一個執行而使得設備能夠被致能。其它的架構要求每個設備具有序號,以及可以透過指令的執行而被讀取的其它資訊。另外的設備的內部暫存器和控制電路需要初始 化資料。另外的微處理器,特別是具有板上(on-board)快取記憶體的微處理器使用修補資料來實現在這些記憶體內的冗餘電路,以糾正製造的錯誤。
本領域技術人員將理解,設計者傳統上採用晶粒 上的半導體熔絲陣列來儲存和提供初始配置和修補資料。這些熔絲陣列通常透過在已經製造好部件之後對其中的選擇的熔絲進行燒斷來程式設計,並且陣列包含上千位元的資訊,其在上電/重置之後透過相應的設備來讀取,以初始化和配置設備來進行操作。
隨著過去的數年間設備的複雜度得到增加,對於 典型的設備所需要的配置/修補資料的量也呈比例地增加。但是,本領域技術人員將理解,雖然電晶體大小隨著所採用的半導體製造工藝而成比例地縮小,但是半導體熔絲大小由於用於對晶粒上的熔絲進行程式設計的特定的需求而增加。半導體熔絲中的和其本身的這種現象對於通常受到實際資源(real estate)限制和功率限制的設計者而言是個問題。換言之,在給定的晶粒上沒有足夠的實際資源來製造龐大的熔絲陣列。
此外,用於在單個晶粒上製造多個設備核心的能 力已經幾何地加劇了該問題,因為對於每個核心的配置需求導致在單個陣列或者不同的陣列中、在晶粒上熔絲數量的需求,該數量與在其上放置的核心的數量呈比例。
此外,本領域技術人員將理解,多核設備使用操 作的複雜的功率節省模式,其導致核心中的一個或者多個當不被使用時,在所謂的功率選通事件(或者“睡眠模式”)中被 斷電。因此,當在功率選通事件之後對核心上電時,除了初始化速度需求更加嚴厲之外,仍然繼續存在對於初始化、配置、以及修補的相同的需求。
因此,需要使得配置/修補資料能夠被儲存和提供 給與迄今已經被提供的設備相比,在單個晶粒上要求明顯減少的實際資源以及功率的多核設備的裝置和方法。
此外,需要能夠儲存和提供與當前技術相比明顯 更多的配置/修補資料,同時要求在多核晶粒上的相同或者更少的實際資源的熔絲陣列機制。
此外,需要便於在功率選通事件之後提示多核設備的初始化、配置、以及修補的技術。
本發明提供一種用於向積體電路提供配置資料的裝置。所述裝置包括:半導體熔絲陣列和記憶體。半導體熔絲陣列被佈置在晶粒上,並且被利用用於佈置在所述晶粒上的、並且耦合到所述半導體熔絲陣列的多個核心的壓縮的配置資料來程式設計。記憶體被耦合到所述多個核心,並且包括多個子記憶體,多個子記憶體的每個對應於所述多個核心中的每一個,其中,所述多個核心中的一個被配置為在供電/重置之後存取所述半導體熔絲陣列,以讀取和解壓縮所述壓縮的配置資料,並且被配置為在所述多個子記憶體中儲存用於所述多個核心的每一個內的一個或者多個快取記憶體的多個解壓縮的配置資料集合,並且其中,在功率選通事件之後,多個核心的每一個中的一個接續地存取所述多個子記憶體中的每一個中的 相應的一個,以檢索和採用所述解壓縮的配置資料集合,從而初始化一個或者多個快取記憶體。
本發明的另一個方面旨在一種用於配置積體電路 的方法。所述方法包括:首先將半導體熔絲陣列放置在晶粒上,向其中程式設計用於被佈置在晶粒上的、並且被耦合到半導體熔絲陣列上的多個核心的壓縮的配置資料;並且其次將記憶體放置在晶粒上,其中,記憶體包括多個子記憶體,多個子記憶體的每個對應於多個核心中的每一個,並且其中多個核心的一個被配置為在供電/重置之後存取半導體熔絲陣列,以對壓縮的配置資料進行讀取和解壓縮,並且在多個子記憶體中儲存用於在多個核心的每一個內的一個或者多個快取記憶體的多個解壓縮的配置資料集合,並且其中,在功率選通事件之後,多個核心的每一個中的一個接續地存取多個子記憶體的每一個的相應一個,從而檢索和採用解壓縮的配置資料設置,以初始化一個或者多個快取記憶體。
關於工業適用性,本發明在可以用於通用或者專用計算設備的微處理器內實現。
為讓本發明之特徵和優點能更明顯易懂,下文特舉出較佳實施例,並配合所附圖式,作詳細說明如下:
100、200、300、400、1100‧‧‧方塊圖
101、420、1101‧‧‧微處理器核心
102‧‧‧熔絲陣列
103‧‧‧重置邏輯
104‧‧‧重置電路
105‧‧‧重置微代碼
107‧‧‧控制電路
108、415‧‧‧微代碼暫存器
109、414‧‧‧微代碼補丁元件
110、416‧‧‧快取記憶體校正元件
201‧‧‧熔絲陣列
202、PFB1~PFBN、RFB1~RFBN‧‧‧冗餘熔絲組
203‧‧‧熔絲
210、211、PR1、RR1‧‧‧暫存器
212‧‧‧互斥邏輯
FB3‧‧‧輸出
310‧‧‧設備程式設計器
320‧‧‧壓縮器
301‧‧‧虛擬熔絲組
302‧‧‧虛擬熔絲
303‧‧‧虛擬熔絲陣列
330‧‧‧晶粒
332‧‧‧核心
334、1102、CATCH1~CATCHN‧‧‧快取記憶體
336、1110‧‧‧物理熔絲陣列
RESET‧‧‧重置
401‧‧‧物理熔絲陣列
403‧‧‧微代碼補丁熔絲
404‧‧‧壓縮的暫存器熔絲
405‧‧‧壓縮的快取記憶體校正熔絲
406‧‧‧壓縮的熔絲校正熔絲
417‧‧‧重置控制器
421‧‧‧解壓縮器
408‧‧‧補丁熔絲元件
409‧‧‧暫存器熔絲元件
410‧‧‧快取記憶體熔絲元件
411‧‧‧熔絲校正元件
412‧‧‧匯流排
502、503、601~603、701~703、802、803、901~903、905、1001~1003‧‧‧欄位
500、600、700、800、900、1000‧‧‧配置資料
604、704、804、904‧‧‧資料塊
1103‧‧‧快取記憶體修補儲存裝置
1104‧‧‧配置資料儲存裝置
1105‧‧‧重置邏輯
1106‧‧‧睡眠邏輯
1120‧‧‧功率控制器
1130‧‧‧非核心儲存裝置
SYNC‧‧‧同步匯流排
第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-相容的微處理器:能夠執行根據x86 ISA而程式設計的電腦應用的微處理器。
微代碼:被採用來表示多個微指令的術語。微指令(也被稱為“原生指令”)是處於微處理器子單元執行的層級的指令。示例性子單元包括整數單元、浮點單元、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)使能相應的快取記憶體校正元件110,其提供用於與核心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描繪了在包 括冗餘熔絲組202 RFB1-RFBN的圖1的微處理器核心101內的熔絲陣列201,所述冗餘熔絲組202 RFB1-RFBN將在燒斷熔絲陣列201內的第一熔絲陣列組202 PFB1-PFBN之後被燒斷。熔絲陣列202 PFB1-PFBN、RFB1-RFBN中的每一個包括與核心101的特定設計相對應的規定數目的單獨的熔絲203。例如,在64位元微處理器核心101中,在給定熔絲組202中的熔絲203的數目可以是64個熔絲203,以便於以容易在核心101中實現的格式來提供配置資料。
熔絲陣列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上描繪了四個核心332。在一個實施例中,所有核心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”),並且其可以是唯讀的或者是隨機存取的。 相似地,傳輸介質可以是金屬跡線、雙絞線、同軸線纜、光纖、或者本領域公知的某種其它的適當的傳輸介質。本發明不限於任何給定的實現方式的這些方面。
以上公開的特定實施例僅僅是示例的,並且本領 域技術人員將會理解,其可以容易地使用所公開的概念和特定實施例來作為基礎來設計或者修改其它結構,以執行與本發明相同的目的,並且可以在不脫離由權利要求闡明的本發明的範圍的情況下,對本發明進行各種變化、替換、和更替。
310‧‧‧設備程式設計器
320‧‧‧壓縮器
301‧‧‧虛擬熔絲組
302‧‧‧虛擬熔絲
303‧‧‧虛擬熔絲陣列
330‧‧‧晶粒
332‧‧‧核心
334‧‧‧快取記憶體
336‧‧‧物理熔絲陣列

Claims (15)

  1. 一種用於向積體電路提供配置資料的裝置,所述裝置包括:佈置在晶粒上的半導體熔絲陣列,向其中程式設計用於佈置在所述晶粒上的、並且耦合到所述半導體熔絲陣列的多個核心的壓縮的配置資料;以及耦合到所述多個核心上的記憶體,所述記憶體包括多個子記憶體,多個子記憶體的每個對應於所述多個核心中的每一個,其中,所述多個核心中的一個被配置為在供電/重置之後存取所述半導體熔絲陣列,以讀取和解壓縮所述壓縮的配置資料,並且被配置為在所述多個子記憶體中儲存用於所述多個核心的所述每一個內的一個或者多個快取記憶體的多個解壓縮的配置資料集合,以及其中,在功率選通事件之後,所述多個核心的每一個中的一個接續地存取所述多個子記憶體中的所述每一個中的相應的一個,以檢索和採用所述解壓縮的配置資料集合,從而初始化所述一個或者多個快取記憶體。
  2. 如申請專利範圍第1項所述之用於向積體電路提供配置資料的裝置,其中,在所述多個核心的所述一個中的快取記憶體熔絲元件通過在供電/重置期間執行微代碼來對所述壓縮的配置資料進行解壓縮。
  3. 如申請專利範圍第1項所述之用於向積體電路提供配置資料的裝置,其中,所述解壓縮的配置資料集合的每個包括第一多個半導體熔絲,其指示在所述一個或者多個快取記 憶體中的一個內的一個或者多個子單元位置,所述一個或者多個快取記憶體在正常操作期間不被採用。
  4. 如申請專利範圍第1項所述之用於向積體電路提供配置資料的裝置,其中,所述解壓縮的配置資料集合的每個進一步包括第二多個半導體熔絲,其指示所述一個或者多個快取記憶體的一個中的一個或者多個替代子單元位置,所述一個或者多個快取記憶體在正常操作期間替代所述一個或者多個子單元位置的相應位置將被採用。
  5. 如申請專利範圍第4項所述之用於向積體電路提供配置資料的裝置,其中,在所述一個或者多個快取記憶體的所述一個內,所述子單元位置和所述替代子單元位置分別包括行和冗餘行。
  6. 如申請專利範圍第4項所述之用於向積體電路提供配置資料的裝置,其中,在所述一個或者多個快取記憶體的所述一個內,所述子單元位置和所述替代子單元位置分別包括列和冗餘列。
  7. 如申請專利範圍第1項所述之用於向積體電路提供配置資料的裝置,其中,所述裝置包括多核微處理器。
  8. 如申請專利範圍第1項所述之用於向積體電路提供配置資料的裝置,其中,所述多個核心中的每一個包括:睡眠邏輯,其被配置為接續地存取所述多個子記憶體中的所述每一個中的相應的一個,以檢索和採用所述解壓縮的配置資料集合,從而在功率選通事件之後初始化所述一個或者多個快取記憶體。
  9. 一種用於配置積體電路的方法,所述方法包括:將半導體熔絲陣列放置在晶粒上,向其中程式設計用於佈置在晶粒上的、並且被耦合到半導體熔絲陣列上的多個核心的壓縮的配置資料;以及將多個記憶體放置在晶粒上,所述記憶體包括多個子記憶體,多個子記憶體的每個對應於多個核心中的每一個,並且其中多個核心的一個被配置為在供電/重置之後存取半導體熔絲陣列,以對壓縮的配置資料進行讀取和解壓縮,並且在多個子記憶體中儲存用於在多個核心的每一個內的一個或者多個快取記憶體的多個解壓縮的配置資料集合,以及其中,在功率選通事件之後,多個核心的每一個中的一個接續地存取與多個子記憶體的每一個的相應一個,從而檢索和採用解壓縮的配置資料集合,以初始化一個或者多個快取記憶體。
  10. 如申請專利範圍第9項所述之用於配置積體電路的方法,其中,在所述多個核心的一個中的快取記憶體熔絲元件通過在供電/重置期間執行微代碼來對所述壓縮的配置資料進行解壓縮。
  11. 如申請專利範圍第9項所述之用於配置積體電路的方法,其中,所述解壓縮的配置資料集合的每一個包括第一多個半導體熔絲,其指示在所述一個或者多個快取記憶體中的一個內的一個或者多個子單元位置,所述一個或者多個快取記憶體在正常操作期間不被採用。
  12. 如申請專利範圍第11項所述之用於配置積體電路的方法, 其中,所述解壓縮的配置資料集合的每一個進一步包括第二多個半導體熔絲,其指示所述一個或者多個快取記憶體的一個中的一個或者多個替代子單元位置,所述一個或者多個快取記憶體在正常操作期間替代所述一個或者多個子單元位置的相應位置將被採用。
  13. 如申請專利範圍第12項所述之用於配置積體電路的方法,其中,在所述一個或者多個快取記憶體的所述一個內,所述子單元位置和所述替代子單元位置分別包括行和冗餘行。
  14. 如申請專利範圍第12項所述之用於配置積體電路的方法,其中,在所述一個或者多個快取記憶體的所述一個內,所述子單元位置和所述替代子單元位置分別包括列和冗餘列。
  15. 如申請專利範圍第9項所述之用於配置積體電路的方法,更包括:採用多個核心中的每一個內的睡眠邏輯,以接續地存取與多個子記憶體的每一個的相應一個,從而檢索和採用解壓縮的配置資料設置,以在功率選通事件之後初始化一個或者多個快取記憶體。
TW103141345A 2014-05-22 2014-11-28 向積體電路提供配置資料的裝置和方法 TWI524352B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
TW201545166A TW201545166A (zh) 2015-12-01
TWI524352B true TWI524352B (zh) 2016-03-01

Family

ID=55407169

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103141345A TWI524352B (zh) 2014-05-22 2014-11-28 向積體電路提供配置資料的裝置和方法

Country Status (1)

Country Link
TW (1) TWI524352B (zh)

Also Published As

Publication number Publication date
TW201545166A (zh) 2015-12-01

Similar Documents

Publication Publication Date Title
CN104183270B (zh) 配置数据的处理装置及方法
CN105849813B (zh) 多核数据阵列功率选通高速缓存恢复编程机制
CN104572335B (zh) 多核数据阵列功率选通恢复机制
CN104570830B (zh) 向集成电路提供配置数据的装置及方法
CN104575610B (zh) 多核微处理器功率选通高速缓存恢复机制
TWI524352B (zh) 向積體電路提供配置資料的裝置和方法
TWI532049B (zh) 向積體電路提供配置資料的裝置和方法
EP2840491B1 (en) Extended fuse reprogrammability mechanism
CN104200837A (zh) 配置数据的处理装置及方法