錯(cuò)誤檢測(cè)和校正裝置及方法
【技術(shù)領(lǐng)域】
[0001] 本公開(kāi)一般涉及微處理器和存儲(chǔ)器裝置及方法,并且更具體地涉及用于檢測(cè)和校 正多個(gè)錯(cuò)誤類型的錯(cuò)誤的裝置和方法。
【背景技術(shù)】
[0002] 最近,管芯堆疊技術(shù)使得多層的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)和/或邏輯管芯能夠 被集成到縱向堆疊中。連同快速互連,堆疊的存儲(chǔ)器可以提供高帶寬和低等待時(shí)間的存儲(chǔ) 器子系統(tǒng)。
[0003] 堆疊的DRAM的有前景的使用是作為存儲(chǔ)器側(cè)緩存(cache)。使用DRAM作為緩存 一般還需要標(biāo)簽陣列的實(shí)現(xiàn)。然而,整個(gè)標(biāo)簽開(kāi)銷可能太大以致于不能被存儲(chǔ)在芯片上。例 如,具有64字節(jié)塊的IGBDRAM緩存可能需要多達(dá)96MB的標(biāo)簽存儲(chǔ)。一種方法是將標(biāo)簽條 目與數(shù)據(jù)一起存儲(chǔ)在DRAM中。該方法可能負(fù)面地影響可靠性。因?yàn)闃?biāo)簽和數(shù)據(jù)二者被存 儲(chǔ)在一起,標(biāo)簽中的位翻轉(zhuǎn)可能引起整個(gè)緩存行中的所有數(shù)據(jù)被誤用。
【附圖說(shuō)明】
[0004] 通過(guò)結(jié)合附圖的以下詳細(xì)描述將容易地理解實(shí)施例。為了促進(jìn)該描述,同樣的參 考標(biāo)號(hào)指明同樣的結(jié)構(gòu)元件。在附圖的圖中通過(guò)示例的方式而不是通過(guò)限制的方式圖示實(shí) 施例。
[0005] 圖1是圖示根據(jù)各種實(shí)施例的合并本公開(kāi)的各方面的示例裝置的框圖。
[0006] 圖2圖示根據(jù)各種實(shí)施例的可以將本公開(kāi)的各方面應(yīng)用到其中的多個(gè)錯(cuò)誤類型。
[0007] 圖3圖示根據(jù)各種實(shí)施例的可以將本公開(kāi)的各方面應(yīng)用到其中的多個(gè)突發(fā)錯(cuò)誤。
[0008] 圖4是圖示合并本公開(kāi)的各方面的示例錯(cuò)誤檢測(cè)模塊和示例錯(cuò)誤校正模塊的框 圖。
[0009] 圖5圖示根據(jù)各種實(shí)施例的合并本公開(kāi)的各方面的示例錯(cuò)誤檢測(cè)和校正過(guò)程。
[0010] 圖6圖示根據(jù)各種實(shí)施例的合并本公開(kāi)的各方面的示例錯(cuò)誤檢測(cè)過(guò)程。
[0011] 圖7圖示根據(jù)各種實(shí)施例的合并本公開(kāi)的各方面的示例錯(cuò)誤校正過(guò)程。
[0012] 圖8圖示根據(jù)各種實(shí)施例的可以將本公開(kāi)的各方面合并到其中的示例計(jì)算系統(tǒng)/ 設(shè)備。
[0013] 圖9圖示根據(jù)各種實(shí)施例的具有編程指令、合并本公開(kāi)的各方面的制品。
【具體實(shí)施方式】
[0014] 在以下詳細(xì)描述中,對(duì)形成本文一部分的附圖做出參考,其中同樣的標(biāo)號(hào)遍及全 文指明同樣的部件,并且其中通過(guò)可以被實(shí)踐的說(shuō)明實(shí)施例的方式示出。要理解的是:可以 利用其它實(shí)施例,并且可以做出結(jié)構(gòu)或邏輯改變而不脫離本公開(kāi)的范圍。因此,以下詳細(xì)描 述不要以限制性意義來(lái)理解,并且實(shí)施例的范圍由所附權(quán)利要求及其等同物限定。
[0015] 可以依次以最有助于理解所要求保護(hù)的主題的方式將各種操作描述為多個(gè)離散 的行動(dòng)或操作。然而,描述的次序不應(yīng)被解釋為暗示這些操作必定是依賴次序的。特別地, 可以不以呈現(xiàn)的次序執(zhí)行這些操作。可以以不同于所述實(shí)施例的次序執(zhí)行所述操作。在附 加的實(shí)施例中可以執(zhí)行各種附加的操作和/或可以省略所述操作。
[0016] 為了本公開(kāi)的目的,短語(yǔ)"A和/或B"是指(A)、(B)或(A和B)。為了本公開(kāi)的目 的,短語(yǔ) "A、B和 / 或C" 是指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
[0017] 其中,本公開(kāi)敘述"一個(gè)"或"第一"元件或其等同物,這樣的公開(kāi)包括一個(gè)或多個(gè) 這樣的元件,既不要求也不排除兩個(gè)或更多這樣的元件。此外,用于標(biāo)識(shí)的元件的序數(shù)指示 符(例如第一、第二或第三)用于在元件之間進(jìn)行區(qū)分,并且不指示或暗示所需或有限數(shù)量 的這樣的元件,它們也不指示這樣的元件的特定位置或次序,除非另行具體陳述。
[0018] 描述可以使用短語(yǔ)"在一個(gè)實(shí)施例中"、"在實(shí)施例中"、"在另一個(gè)實(shí)施例中"、"在 多個(gè)實(shí)施例中"、"在各種實(shí)施例中"等,其可以各自指代一個(gè)或多個(gè)相同或不同的實(shí)施例。 此外,如關(guān)于本公開(kāi)的實(shí)施例所使用的術(shù)語(yǔ)"包含"、"包括"、"具有"等是同義的。
[0019] 如本文所使用,術(shù)語(yǔ)"模塊"可以指代以下各項(xiàng)、是以下各項(xiàng)的部分或包括以下各 項(xiàng):專用集成電路(ASIC)、電子電路、執(zhí)行一個(gè)或多個(gè)軟件或固件程序的處理器(共享的、 專用的或群組)和/或存儲(chǔ)器(共享的、專用的或群組)、組合邏輯電路和/或提供所述功能 性的其它合適的組件。
[0020] 現(xiàn)在參考圖1,根據(jù)各種實(shí)施例,示出了圖示合并本公開(kāi)的各方面的示例裝置的框 圖。在實(shí)施例中,諸如信息處理系統(tǒng)或計(jì)算機(jī)之類的裝置100可以包括存儲(chǔ)器110、存儲(chǔ)器 控制器120以及一個(gè)或多個(gè)處理器核130。
[0021] 在實(shí)施例中,還被稱為存儲(chǔ)裝置或計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)裝置的存儲(chǔ)器110可以包括計(jì) 算機(jī)組件和用于保持?jǐn)?shù)字?jǐn)?shù)據(jù)的記錄介質(zhì)。在一個(gè)實(shí)施例中,存儲(chǔ)器110可以是處理器寄 存器和緩存。在另一個(gè)實(shí)施例中,存儲(chǔ)器110可以以在線大容量存儲(chǔ)設(shè)備的形式,諸如作為 二級(jí)存儲(chǔ)的硬驅(qū)動(dòng)裝置。在線大容量存儲(chǔ)設(shè)備可以包括可以以各種形式出現(xiàn)的非易失性存 儲(chǔ)器,包括但不限于NAND(閃速)存儲(chǔ)器、鐵電隨機(jī)存取存儲(chǔ)器(FeTRAM)、基于納米線的非 易失性存儲(chǔ)器、合并了憶阻器技術(shù)的存儲(chǔ)器、MRAM、STT-MRAM、三維(3D)交叉點(diǎn)電阻式存儲(chǔ) 器,諸如相變存儲(chǔ)器(PCM)或PCM和開(kāi)關(guān)(PCMS),等等。然而在另一個(gè)實(shí)施例中,存儲(chǔ)器110 可以以離線海量存儲(chǔ)設(shè)備的形式,諸如作為三級(jí)存儲(chǔ)的DVD-ROM。
[0022] 然而在另一個(gè)實(shí)施例中,存儲(chǔ)器110可以包括控制器卡和系統(tǒng)隨機(jī)存取存儲(chǔ)器 (RAM),諸如DRAM112。RAM使得能夠以任何隨機(jī)次序、用類似量的時(shí)間訪問(wèn)所存儲(chǔ)的數(shù) 據(jù)而不管數(shù)據(jù)存儲(chǔ)位置?,F(xiàn)代RAM的主要形式包括但不限于靜態(tài)RAM(SRAM)和動(dòng)態(tài)RAM (DRAM)。SRAM可以表現(xiàn)出數(shù)據(jù)殘留,而必須周期性地刷新DRAM中的電容器電荷以保持信 息。SRAM和DRAM二者都是易失性的,因?yàn)楫?dāng)不為存儲(chǔ)器供電時(shí),最終丟失數(shù)據(jù)。DRAM112 中的電路可以與傳統(tǒng)的水平或平面方法或調(diào)制解調(diào)器管芯堆疊技術(shù)集成。也已知為芯片堆 疊或縱向集成的管芯堆疊是縱向裝配多個(gè)芯片的過(guò)程,以增加單個(gè)半導(dǎo)體封裝內(nèi)的硅芯片 的量,并且實(shí)現(xiàn)具有電路之間互連的較短路由的較佳電性能。管芯堆疊可以應(yīng)用于易失性 和非易失性存儲(chǔ)器二者。
[0023] 存儲(chǔ)器控制器120可以被配置成提供到存儲(chǔ)器110的接口,并管理去往和來(lái)自存 儲(chǔ)器110的數(shù)據(jù)流。在實(shí)施例中,存儲(chǔ)器控制器120可以以分離的芯片的形式,或者與存儲(chǔ) 器110集成。在實(shí)施例中,存儲(chǔ)器控制器120可以被實(shí)現(xiàn)在母板上或在微處理器上形成集 成的存儲(chǔ)器控制器(me)以潛在地減少存儲(chǔ)器等待時(shí)間。
[0024] 在實(shí)施例中,存儲(chǔ)器控制器120可以具有錯(cuò)誤檢測(cè)模塊122和錯(cuò)誤校正模塊124。 在一些情況下,在有噪聲的信道中的傳輸期間可能引入錯(cuò)誤,因?yàn)樵S多通信信道遭受信道 噪聲。在其它情況下,可能在存儲(chǔ)裝置中引入錯(cuò)誤。例如,在芯片的材料中的放射性原子 可能衰變。衰變可以產(chǎn)生撞擊存儲(chǔ)器單元以改變其狀態(tài)并引起單位翻轉(zhuǎn)(SBU)或多位翻轉(zhuǎn) (MBU)的粒子。利用管芯堆疊技術(shù),相同的粒子就受影響的位而言可以具有大的影響。在實(shí) 施例中,錯(cuò)誤檢測(cè)模塊122可以被配置成檢測(cè)在傳輸或存儲(chǔ)期間由噪聲或其它損害引起的 錯(cuò)誤;錯(cuò)誤校正模塊124可以被配置成以最佳努力重構(gòu)原始的無(wú)錯(cuò)誤數(shù)據(jù)。
[0025] 通過(guò)向數(shù)據(jù)添加一些冗余,諸如稍后可以用于驗(yàn)證數(shù)據(jù)完整性并恢復(fù)確定惡化的 數(shù)據(jù)的一個(gè)或多個(gè)校驗(yàn)位,一般可以實(shí)現(xiàn)錯(cuò)誤檢測(cè)和校正。作為示例,前向錯(cuò)誤校正(FEC) 或信道編碼可以使用錯(cuò)誤校正碼來(lái)編碼數(shù)據(jù),并且稍后利用恢復(fù)諸如隨機(jī)錯(cuò)誤之類的錯(cuò)誤 類型的能力來(lái)解碼數(shù)據(jù)。在實(shí)施例中,錯(cuò)誤檢測(cè)模塊122可以被配置成檢測(cè)多個(gè)錯(cuò)誤類型 的錯(cuò)誤的存在,諸如突發(fā)錯(cuò)誤以及隨機(jī)錯(cuò)誤。隨后,錯(cuò)誤校正模塊124可以被配置成:一旦 多個(gè)錯(cuò)誤類型的錯(cuò)誤由錯(cuò)誤檢測(cè)模塊122檢測(cè)到,則校正它們。
[0026] 在實(shí)施例中,處理器核130可以具有一個(gè)或多個(gè)中央處理單元(CPU)或核,其中每 個(gè)核可以讀取并執(zhí)行CPU指令,諸如添加、移動(dòng)、分支、讀、寫(xiě)等等。隨著多個(gè)核被集成到單 個(gè)集成電路管芯或單個(gè)芯片封裝中的多個(gè)管芯上,多核處理器順從于并行計(jì)算,從而增加 整體計(jì)算速度。
[0027] 現(xiàn)在參考圖2,根據(jù)各種實(shí)施例,示出可以將本公開(kāi)的各方面應(yīng)用到其中的多個(gè)錯(cuò) 誤類型200。錯(cuò)誤可以隨機(jī)發(fā)生,但是具有某一概率分布圖(profile)。錯(cuò)誤還可以主要在 突發(fā)中發(fā)生。因此錯(cuò)誤可以一般被寬泛地分組為隨機(jī)錯(cuò)誤和突發(fā)錯(cuò)誤。在圖2中,四個(gè)數(shù) 據(jù)傳遞Data_0 210、Data_l220、Data_2 230和Data_3 240,例如來(lái)自緩存行的一半,被示 為以交錯(cuò)的方式250傳遞。正如所示,錯(cuò)誤類型200可以包括隨機(jī)錯(cuò)誤和突發(fā)錯(cuò)誤。隨機(jī) 錯(cuò)誤可以由隨機(jī)位故障280引起,而突發(fā)錯(cuò)誤可以由近鄰位故障260和/或單線故障270 引起。在下文中,錯(cuò)誤類型還可以被稱為錯(cuò)誤的類型,為了本公開(kāi)的目的,其可以被認(rèn)為是 同義的,除非上下文另行清楚指示;并且因而可以可互換地使用所述術(shù)語(yǔ)。
[0028] 存儲(chǔ)器芯片的故障可以引起甚至在重新引導(dǎo)系統(tǒng)后都不能被糾正的硬錯(cuò)誤。需要 替換存儲(chǔ)器芯片以糾正硬錯(cuò)誤。相反,在芯片級(jí)或系統(tǒng)級(jí)中的軟錯(cuò)誤只改變程序中的數(shù)據(jù) 或指令??梢酝ㄟ^(guò)重寫(xiě)正確的數(shù)據(jù)或通過(guò)真時(shí)(onthefly)的錯(cuò)誤檢測(cè)和校正技術(shù)來(lái)校正 軟錯(cuò)誤。除了隨機(jī)軟和硬錯(cuò)誤外,作為處理器核130和存儲(chǔ)器110之間鏈接的存儲(chǔ)器控制 器120可以變成另一個(gè)錯(cuò)誤源。例如,由于在DRAM信道上的突發(fā)傳遞,在數(shù)據(jù)總線上的單 線故障270可以表現(xiàn)為跨針對(duì)一半緩存行(32B)的Data_0 210、Data_l220、Data_2 230 和Data_3 240的4位錯(cuò)誤。作為另一個(gè)示例,在一個(gè)存儲(chǔ)器芯片中的多位故障可以引起多 個(gè)近鄰位在Data_l220中出故障。
[0029] 在實(shí)施例中,可以通過(guò)錯(cuò)誤檢測(cè)模塊122和錯(cuò)誤校正模塊124檢測(cè)和校正這些上 述的故障。在DRAM緩存的情況下,數(shù)據(jù)完整性需要被廣泛和高效地保護(hù)。然而,因?yàn)槿狈?足夠的位,一般不能將常規(guī)的DRAM錯(cuò)誤校正碼(ECC)方案應(yīng)用到DRAM緩存。DIMM結(jié)構(gòu)可 以是固定的,即每8個(gè)數(shù)據(jù)芯片一個(gè)ECC芯片。與數(shù)據(jù)一起存儲(chǔ)標(biāo)簽和元數(shù)據(jù)將直接減少 為ECC預(yù)留的位數(shù)。此外,常規(guī)的ECC技術(shù),諸如雙錯(cuò)誤校正和三錯(cuò)誤檢測(cè)(DEC-TED),不能 校正多個(gè)類型的錯(cuò)誤。錯(cuò)誤檢測(cè)模塊122和錯(cuò)誤校正模塊124,尤其是由特殊設(shè)計(jì)的奇偶校 驗(yàn)矩陣表征的實(shí)施例,可以用類似于DEC-TED的低開(kāi)銷校正隨機(jī)和突發(fā)錯(cuò)誤二者。
[0030] 現(xiàn)在參考圖3,根據(jù)各種實(shí)施例,示出可以將本公開(kāi)的各方面應(yīng)用到其中的多個(gè)突 發(fā)錯(cuò)誤300。正如所示,多個(gè)突發(fā)錯(cuò)誤300可以由模式(pattern)編號(hào)310編號(hào),具有位交 錯(cuò)之后的可區(qū)分的錯(cuò)誤位模式320,其中"1"是指位故障,"0"是指有效,并且是指