欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

抑制比特錯(cuò)誤校驗(yàn)碼方案的制作方法

文檔序號(hào):6595122閱讀:180來(lái)源:國(guó)知局
專利名稱:抑制比特錯(cuò)誤校驗(yàn)碼方案的制作方法
技術(shù)領(lǐng)域
本發(fā)明的實(shí)施例涉及抑制比特錯(cuò)誤校驗(yàn)碼方案。
背景技術(shù)
當(dāng)數(shù)據(jù)進(jìn)出存儲(chǔ)器時(shí),會(huì)發(fā)生各種類型的錯(cuò)誤。更普遍的,它們是單個(gè)比特錯(cuò)誤, 但是2比特以及其它類型的錯(cuò)誤也可能發(fā)生。錯(cuò)誤校驗(yàn)一般用于在將數(shù)據(jù)寫入存儲(chǔ)器或從存儲(chǔ)器讀出時(shí)校驗(yàn)數(shù)據(jù)的完整性。錯(cuò)誤校驗(yàn)可以包括錯(cuò)誤檢測(cè)和/或錯(cuò)誤校正。錯(cuò)誤檢測(cè)是檢測(cè)存在由傳輸期間的噪聲或其它故障引起的錯(cuò)誤的能力。錯(cuò)誤校正是重建初始的、無(wú)錯(cuò)數(shù)據(jù)的附加能力。有很多可用的方案。錯(cuò)誤校正碼(ECC)是錯(cuò)誤校驗(yàn)方案(特別是錯(cuò)誤校正)的一個(gè)例子。在ECC中, 例如,當(dāng)通過(guò)存儲(chǔ)器總線發(fā)送數(shù)據(jù)時(shí),ECC產(chǎn)生邏輯(例如,異或算法)對(duì)該數(shù)據(jù)進(jìn)行計(jì)算以產(chǎn)生ECC。然后將該數(shù)據(jù)和ECC —起存儲(chǔ)在存儲(chǔ)器中。當(dāng)隨后從存儲(chǔ)器訪問(wèn)數(shù)據(jù)時(shí)(與 ECC 一起),將ECC錯(cuò)誤解碼邏輯應(yīng)用到該數(shù)據(jù)以產(chǎn)生錯(cuò)誤檢測(cè)和校正信息。然后能夠使用該信息來(lái)校正該數(shù)據(jù)。


通過(guò)示例的方式,而不是通過(guò)限制的方式在附圖的圖形中說(shuō)明了本發(fā)明的實(shí)施例,其中相似的標(biāo)記數(shù)字指代類似的元素,并且其中附圖1說(shuō)明了依照本發(fā)明的實(shí)施例的系統(tǒng)。附圖2說(shuō)明了根據(jù)本發(fā)明的實(shí)施例的方法。附圖3說(shuō)明了依照本發(fā)明的實(shí)施例的方法。附圖4說(shuō)明了依照本發(fā)明的實(shí)施例的狀態(tài)圖。
具體實(shí)施例方式下文描述的示例僅為說(shuō)明的目的,并且決不意圖限制本發(fā)明的實(shí)施例。因此,對(duì)于詳細(xì)描述了示例的地方,或者提供了一個(gè)或多個(gè)示例的地方,需要理解的是該示例不被解釋為窮舉的,并且不應(yīng)將本發(fā)明的實(shí)施例限制為所描述和/或說(shuō)明的示例。附圖1是說(shuō)明了根據(jù)實(shí)施例的計(jì)算系統(tǒng)100的框圖。在一些實(shí)施例中,計(jì)算系統(tǒng) 100可包括多個(gè)處理器102A、102B、102C,直到N個(gè)處理器。如本文使用的,處理器102A、 102B、102C中任意給定的一個(gè)可以被稱作102N。本文討論的“處理器”涉及用于完成計(jì)算任務(wù)的硬件和軟件資源的任意組合。例如,處理器可包括中央處理單元(CPU)或微控制器來(lái)執(zhí)行用于根據(jù)預(yù)定義的指令集處理數(shù)據(jù)的機(jī)器可讀指令。處理器可以包括具有多個(gè)處理核的多核處理器,并且處理器可替代地指代可以包括在多核處理器中的處理核,其中操作系統(tǒng)可將該處理核感知為具有全套執(zhí)行資源的分立的處理器。存在其它可能。系統(tǒng)100可另外包括存儲(chǔ)器106。存儲(chǔ)器106可存儲(chǔ)能夠被執(zhí)行的機(jī)器可執(zhí)行指令132,和/或能夠被訪問(wèn)、在其上運(yùn)算、和/或操作的數(shù)據(jù)。本文提到的“機(jī)器可執(zhí)行”指
5令涉及可被一個(gè)或多個(gè)機(jī)器理解的用于執(zhí)行一個(gè)或多個(gè)邏輯操作的表達(dá)。例如,機(jī)器可執(zhí)行指令132可包括可由處理器編譯器解釋的用于在一個(gè)或多個(gè)數(shù)據(jù)對(duì)象上執(zhí)行一個(gè)或多個(gè)操作的指令。然而,這只是機(jī)器可執(zhí)行指令的示例,并且本發(fā)明的實(shí)施例并不限于此方面。存儲(chǔ)器106可包括,例如,只讀、海量存儲(chǔ)、隨機(jī)存取存儲(chǔ)器、非易失性存儲(chǔ)器、和/或一個(gè)或多個(gè)其它類型的機(jī)器可訪問(wèn)存儲(chǔ)器。在多處理器系統(tǒng)中,其中存儲(chǔ)器是共享的并且使用本地高速緩存104A、104B、104C(處理器本地的高速緩存)進(jìn)行同步,存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)可被稱為高速緩存行(cache line)。邏輯130可包括在系統(tǒng)100的任意部分上或其中。邏輯130可包括硬件、軟件、或硬件和軟件的組合(例如固件)。例如,邏輯130可包括電路(即,一個(gè)或多個(gè)電路)來(lái)執(zhí)行本文描述的操作。例如,邏輯130可包括一個(gè)或多個(gè)數(shù)字電路、一個(gè)或多個(gè)模擬電路、一個(gè)或多個(gè)狀態(tài)機(jī)、可編程邏輯、和/或一個(gè)或多個(gè)ASIC(專用集成電路)。邏輯130可以是硬布線的以執(zhí)行一個(gè)或多個(gè)操作。可選地或附加地,邏輯130可體現(xiàn)在存儲(chǔ)在存儲(chǔ)器(例如存儲(chǔ)器106)中的機(jī)器可執(zhí)行指令132中,以執(zhí)行這些操作??蛇x地或附加地,邏輯130 可體現(xiàn)在固件中。邏輯可包括在系統(tǒng)100的各種部件中,例如在存儲(chǔ)器控制器114中。盡管邏輯130被示出為存儲(chǔ)器控制器114中的分離的框,但本領(lǐng)域的普通技術(shù)人員可以理解, 存儲(chǔ)器控制器114和邏輯130可另外包括在同一框中。一般而言,邏輯130可用于通過(guò)本文描述的各種部件來(lái)執(zhí)行各種功能。集線器控制器108可包括主機(jī)橋/集線器系統(tǒng),其可將處理核102A、102B、102C中的每一個(gè)與存儲(chǔ)器106相互耦合。集線器控制器108可包括一個(gè)或多個(gè)集成電路芯片,例如從可從Intel 公司商業(yè)獲得的集成電路芯片組(例如,圖形、存儲(chǔ)器和I/O控制器集線器芯片組)中選擇的那些,然而其他一個(gè)或多個(gè)集成電路芯片也可以被使用,或可以替代地被使用。例如,集線器控制器108可包括輸入/輸出控制集線器(ICH)、存儲(chǔ)器控制集線器 (MCH)、或圖形/存儲(chǔ)器控制集線器(GMCH)。系統(tǒng)100可包括兩個(gè)集線器控制器,例如ICH 和MCH,或僅單個(gè)集線器控制器,然而本發(fā)明的實(shí)施例不被系統(tǒng)100中的集線器控制器的數(shù)目所限制。集線器控制器108可通過(guò)存儲(chǔ)器總線112與存儲(chǔ)器106進(jìn)行通信,以及通過(guò)系統(tǒng)總線Iio與處理器102A、102B、102C進(jìn)行通信。集線器控制器108可包括存儲(chǔ)器控制器114 來(lái)管理處理器102A、102B、102C和存儲(chǔ)器106以及系統(tǒng)100中的其它設(shè)備(未示出)之間的數(shù)據(jù)移動(dòng)??蛇x擇地,存儲(chǔ)器控制器114可與處理器102A、102B、102C中的一個(gè)或多個(gè)集成在管芯(die)上。系統(tǒng)100還可包括目錄高速緩存116。目錄高速緩存116可保持關(guān)于每一塊存儲(chǔ)器或高速緩存行的信息。例如,目錄高速緩存116可指示每一塊存儲(chǔ)器的狀態(tài),例如,共享的、非高速緩存的、或獨(dú)占的;本地高速緩存(對(duì)應(yīng)于處理器102A、102B、102C中的一個(gè))具有給定高速緩存行的拷貝;并且不管該高速緩存行是否為臟。例如,在一個(gè)實(shí)施例中,每一個(gè)對(duì)數(shù)據(jù)的請(qǐng)求被發(fā)送到目錄高速緩存116。目錄高速緩存116然后可將該對(duì)數(shù)據(jù)的請(qǐng)求轉(zhuǎn)發(fā)到任意數(shù)目的處理器102A、102B和102C,目錄高速緩存116指示這些處理器已經(jīng)將數(shù)據(jù)存儲(chǔ)在其本地高速緩存中。作為示例,目錄高速緩存116可為N個(gè)節(jié)點(diǎn)維護(hù)N比特向量圖,其中每一個(gè)比特指示相應(yīng)的節(jié)點(diǎn)是否維護(hù)給定高速緩存行的高速緩存的拷貝。
處理器102A、102B、102C、存儲(chǔ)器106以及總線110、112可包括在單電路板中,諸如,例如系統(tǒng)主板118,但是本發(fā)明的實(shí)施例不限于此方面。附圖2說(shuō)明了根據(jù)本發(fā)明的實(shí)施例的方法。附圖2的方法可開(kāi)始于框200,并繼續(xù)到框202,在框202,該方法可包括確定事件的發(fā)生和未發(fā)生中之一,該發(fā)生和未發(fā)生中之
一導(dǎo)致事件確定。事件可包括,例如,數(shù)據(jù)被高速緩存。例如,在一個(gè)實(shí)施例中,處理器102N可修改數(shù)據(jù),將它高速緩存到其本地高速緩存中,并且然后將該數(shù)據(jù)寫回到存儲(chǔ)器,例如存儲(chǔ)器 106。在這個(gè)示例中,當(dāng)數(shù)據(jù)被存儲(chǔ)在本地高速緩存中時(shí)可確定事件發(fā)生。作為另一個(gè)示例, 事件可包括存儲(chǔ)消息。例如,在某些系統(tǒng)(諸如超級(jí)計(jì)算機(jī))中,運(yùn)行在系統(tǒng)中各微處理器上的進(jìn)程可相互傳遞消息。在這個(gè)示例中,當(dāng)一個(gè)進(jìn)程為另一個(gè)進(jìn)程產(chǎn)生并存儲(chǔ)了消息,可確定事件發(fā)生。在框204,該方法可包括處理具有事件比特的碼,該處理根據(jù)所述事件確定和所述碼。“事件比特”是指碼中的比特,其可被設(shè)置以指示事件的發(fā)生或未發(fā)生。事件比特可包括靜態(tài)比特位置,例如,比特位置0,或者它可包括動(dòng)態(tài)比特位置,例如,比特位置3,以指示特定處理器已經(jīng)產(chǎn)生了事件。因此,如果確定已經(jīng)發(fā)生了事件,事件比特被設(shè)置為一個(gè)值; 否則,如果確定沒(méi)有發(fā)生事件,事件比特被設(shè)置為一個(gè)不同的值?!霸O(shè)置”可指代設(shè)置比特為 “1”以指示事件的發(fā)生,或設(shè)置比特為“0”以指示事件的未發(fā)生??商娲兀霸O(shè)置”可指代設(shè)置比特為“0”以指示事件的發(fā)生,或設(shè)置比特為“1”以指示事件的未發(fā)生。在上下文中,“根據(jù)所述事件確定和所述碼來(lái)處理所述碼”是指在框206中,確定所述碼的事件比特是否對(duì)應(yīng)于所述事件確定;如果不對(duì)應(yīng),該碼被編碼,反之不進(jìn)行處理。 如果事件比特與事件確定矛盾,則事件比特不對(duì)應(yīng)于事件確定。例如,如果事件比特具有值 “0”,其中該值被配置為表示該事件被禁止或沒(méi)有發(fā)生;并且如果確定事件已經(jīng)發(fā)生,則事件比特不對(duì)應(yīng)于事件確定。相反,如果事件比特指示了與事件確定不矛盾的事件的發(fā)生,則事件比特對(duì)應(yīng)于事件確定。例如,如果事件比特具有值“1”,其中該值被配置為表示事件已經(jīng)發(fā)生;并且如果確定事件已經(jīng)發(fā)生,則事件比特對(duì)應(yīng)于事件確定。在框208,如果事件比特不對(duì)應(yīng)于事件確定,則所述碼被編碼以產(chǎn)生對(duì)應(yīng)于所述事件確定的抑制比特(poison bit)。如本文使用的,“編碼”是指對(duì)碼的一個(gè)或多個(gè)比特進(jìn)行抑制。如本文使用的,“抑制”是指應(yīng)用抑制掩碼(例如,固定模式碼)以在事件比特位置處存儲(chǔ)比特1或比特0來(lái)指示事件的發(fā)生或未發(fā)生,而不用改變下層碼的常規(guī)效力。另外,當(dāng)錯(cuò)誤校驗(yàn)邏輯應(yīng)用于所述碼以產(chǎn)生第一處理后的碼,并且應(yīng)用到解碼后的碼以產(chǎn)生第二處理后的碼時(shí),僅第一處理后的碼和第二處理后的碼中的一個(gè)是不可校正的。換句話說(shuō),當(dāng)從存儲(chǔ)器讀回時(shí),具有另外編碼的數(shù)據(jù)應(yīng)能夠相對(duì)容易地與不具有另外編碼的數(shù)據(jù)相區(qū)別。 這甚至也可以是存在普通存儲(chǔ)器錯(cuò)誤時(shí)的情形。這將在附圖3中更詳細(xì)地解釋。在本發(fā)明的實(shí)施例中,例如,如果下層錯(cuò)誤校驗(yàn)碼的錯(cuò)誤校驗(yàn)和/或校正能力實(shí)際上與未編碼的錯(cuò)誤校驗(yàn)碼一樣準(zhǔn)確,則抑制掩碼不改變下層錯(cuò)誤校驗(yàn)碼的常規(guī)效力。此外,優(yōu)選地絕不會(huì)混淆各種類型的錯(cuò)誤。例如,常規(guī)有效的錯(cuò)誤校驗(yàn)碼是一種這樣的碼,其中,對(duì)于在同一存儲(chǔ)設(shè)備中的1比特或1線錯(cuò)誤,或者2比特錯(cuò)誤不會(huì)發(fā)生混淆;其中無(wú)記載數(shù)據(jù)損壞(SDC)錯(cuò)誤和檢測(cè)到的不可恢復(fù)錯(cuò)誤(DUE)在統(tǒng)計(jì)上很少發(fā)生(例如,分別是其它兩比特錯(cuò)誤的MOO萬(wàn)分之一,chipkill的2億5千萬(wàn)分之一)。在一個(gè)實(shí)施例中,編碼可包括應(yīng)用抑制掩碼以抑制單個(gè)比特。如本領(lǐng)域的普通技術(shù)人員將理解的,用于對(duì)錯(cuò)誤校驗(yàn)碼進(jìn)行編碼的邏輯依賴于錯(cuò)誤校驗(yàn)碼本身。如本領(lǐng)域的普通技術(shù)人員將理解的,錯(cuò)誤校驗(yàn)碼(諸如ECC碼)的產(chǎn)生通常是勞動(dòng)密集性工作并且是秘密的,或者甚至交換秘密數(shù)據(jù)。給定編碼所基于的碼的復(fù)雜度,本領(lǐng)域的普通技術(shù)人員可以理解用于執(zhí)行另外編碼的邏輯需要數(shù)學(xué)分析,以及試驗(yàn)和錯(cuò)誤。然而,要滿足的需求的描述仍然會(huì)使本領(lǐng)域的技術(shù)人員根據(jù)本發(fā)明的實(shí)施例產(chǎn)生所述邏輯。例如,在一個(gè)實(shí)施例中,如果數(shù)據(jù)已經(jīng)被高速緩存(其中比特1指示數(shù)據(jù)已經(jīng)被高速緩存),則錯(cuò)誤校驗(yàn)碼01010100101101000 (其中,比特位置0包括事件比特以指示數(shù)據(jù)是否已經(jīng)被高速緩存)將需要通過(guò)抑制比特位置0以存儲(chǔ)比特1而不是比特0,來(lái)根據(jù)事件被編碼。在這個(gè)示例中,編碼后的錯(cuò)誤校驗(yàn)碼將產(chǎn)生01010100101101001。另一方面, 如果數(shù)據(jù)已經(jīng)被高速緩存(其中,比特1指示數(shù)據(jù)已經(jīng)被高速緩存),則產(chǎn)生的錯(cuò)誤校驗(yàn)碼 01010100101101001 (其中,比特位置0用于指示數(shù)據(jù)是否已經(jīng)被高速緩存)將不需要被編碼。在一個(gè)實(shí)施例中,事件比特對(duì)應(yīng)于動(dòng)態(tài)比特位置以指示特定的處理器102N已經(jīng)高速緩存了數(shù)據(jù)。例如,在具有8個(gè)處理器(處理器0-7)的系統(tǒng)中,其中高速緩存處理器 102N是處理器6,事件比特對(duì)應(yīng)于比特#7。因此,如果錯(cuò)誤校驗(yàn)碼包括01010100100101000, 設(shè)置比特以指示處理器6已經(jīng)在其高速緩存中高速緩存了數(shù)據(jù)會(huì)產(chǎn)生錯(cuò)誤校驗(yàn)碼 01010100101101000。同樣地,如果處理器#2是高速緩存處理器,則錯(cuò)誤校驗(yàn)碼會(huì)產(chǎn)生錯(cuò)誤校驗(yàn)碼01010100100101100。在另一個(gè)實(shí)施例中,事件比特對(duì)應(yīng)于靜態(tài)比特以指示數(shù)據(jù)已經(jīng)被任一個(gè)處理器102N高速緩存。例如,如果錯(cuò)誤校驗(yàn)碼包括01010100100101000, 并且事件比特包括比特0以指示處理器已經(jīng)高速緩存了數(shù)據(jù),則錯(cuò)誤校驗(yàn)碼包括 01010100100101001,不管是處理器2還是處理器7是高速緩存處理器。在一個(gè)實(shí)施例中,所述碼可包括錯(cuò)誤校驗(yàn)碼。錯(cuò)誤校驗(yàn)碼可包括,例如,錯(cuò)誤校正碼(ECC)或CRC(循環(huán)冗余碼)。然而,本發(fā)明的實(shí)施例不被這些實(shí)施例所限制。在一個(gè)實(shí)施例中,處理后的碼可包括與對(duì)應(yīng)的數(shù)據(jù)一起存儲(chǔ)在存儲(chǔ)器中的ECC 碼。例如,如附圖4所示,一旦數(shù)據(jù)402的高速緩存行可用于寫入存儲(chǔ)器106,ECC產(chǎn)生邏輯 404可以被應(yīng)用到數(shù)據(jù)402以產(chǎn)生與數(shù)據(jù)402 —起存儲(chǔ)在存儲(chǔ)器106中的ECC (具有事件比特)406,以校正在數(shù)據(jù)402的存儲(chǔ)期間可能發(fā)生的某些錯(cuò)誤(例如,1或2比特的錯(cuò)誤)。 如上所述,并且如在428的判定框所示,如果ECC 406的事件比特不對(duì)應(yīng)于事件確定,使用抑制掩碼408來(lái)編碼ECC 406。如果ECC 406的事件比特對(duì)應(yīng)于事件確定,則處理后的碼 410與數(shù)據(jù)402 —起存儲(chǔ)(不在框408應(yīng)用抑制掩碼)在存儲(chǔ)器106中。附圖2的方法可以在框206結(jié)束。在一個(gè)實(shí)施例中,高速緩存行可被劃分為多個(gè)部分,并且對(duì)于高速緩存行的每個(gè)部分可產(chǎn)生錯(cuò)誤校驗(yàn)碼。例如,高速緩存行可被分為兩等分,可為每一半產(chǎn)生錯(cuò)誤校驗(yàn)碼。 此外,對(duì)錯(cuò)誤校驗(yàn)碼進(jìn)行編碼可包括將單個(gè)掩碼應(yīng)用到至少一個(gè)高速緩存行部分以推斷單個(gè)事件??蛇x地,可應(yīng)用對(duì)應(yīng)于高速緩存行的每個(gè)部分的掩碼以推斷多個(gè)事件。盡管這會(huì)導(dǎo)致更小的錯(cuò)誤校正能力,但也會(huì)降低將無(wú)記載數(shù)據(jù)損壞(SDC)和/或檢測(cè)到的不可恢復(fù)錯(cuò)誤(DUE)混淆的可能。在根據(jù)附圖2的方法保存錯(cuò)誤校驗(yàn)碼后,該方法可進(jìn)一步繼續(xù)到附圖3的方法。 附圖3的方法開(kāi)始于框300,并繼續(xù)到框302,在框302,該方法可包括從存儲(chǔ)器讀取所述碼 (“讀取碼”)。在一個(gè)實(shí)施例中,參照附圖4,該方法可包括與對(duì)應(yīng)的數(shù)據(jù)402 —起從存儲(chǔ)器106讀取處理后的ECC碼410。在框304,該方法可包括處理所述讀取碼以產(chǎn)生多個(gè)處理后的碼。在一個(gè)實(shí)施例中,“處理所述讀取碼以產(chǎn)生多個(gè)處理后的碼”是指解碼所述讀取碼以產(chǎn)生解碼后的讀取碼,在讀取碼上執(zhí)行碼校驗(yàn)以產(chǎn)生第一處理后的碼,并在所述解碼后的讀取碼上執(zhí)行碼校驗(yàn)以產(chǎn)生第二處理后的碼。所述讀取碼是指從存儲(chǔ)器讀取的編碼后的碼。所述解碼后的讀取碼是指應(yīng)用編碼所述碼應(yīng)用的碼的反碼而獲得的碼。參考附圖4,在一個(gè)實(shí)施例中,從存儲(chǔ)器106讀取數(shù)據(jù)402和處理后的ECC 410。在這個(gè)方面,從存儲(chǔ)器106讀取的ECC 410被稱為“讀取碼”。然后讀取碼被解碼414以產(chǎn)生解碼后的讀取碼418。讀取碼412通過(guò)碼校驗(yàn)邏輯416以產(chǎn)生第一處理后的碼420,并且解碼后的讀取碼418通過(guò)碼校驗(yàn)邏輯416以產(chǎn)生第二處理后的碼422。可根據(jù)處理后的碼產(chǎn)生碼校驗(yàn)邏輯416。例如,如果處理后的ECC已經(jīng)被抑制(即, 應(yīng)用了抑制掩碼到ECC),則產(chǎn)生碼校驗(yàn)邏輯416,使得當(dāng)從存儲(chǔ)器106讀取處理后的ECC 410 (讀取碼41 時(shí),在解碼后的讀取碼418上計(jì)算的碼校驗(yàn)邏輯416導(dǎo)致沒(méi)有錯(cuò)誤或可校正的錯(cuò)誤;并且在讀取碼412上計(jì)算的碼校驗(yàn)邏輯416導(dǎo)致不可校正的錯(cuò)誤。類似地,如果處理后的ECC沒(méi)有被抑制,則產(chǎn)生碼校驗(yàn)邏輯216,使得當(dāng)從存儲(chǔ)器 106讀取處理后的ECC 210(讀取碼21 時(shí),在解碼后的讀取碼218上計(jì)算的碼校驗(yàn)邏輯 216導(dǎo)致不可校正的錯(cuò)誤,并且在讀取碼212上計(jì)算的碼校驗(yàn)邏輯216導(dǎo)致沒(méi)有錯(cuò)誤或可校正的錯(cuò)誤。同樣,本領(lǐng)域的普通技術(shù)人員可以理解用于執(zhí)行另外編碼的邏輯可能需要數(shù)學(xué)分析以及試驗(yàn)和錯(cuò)誤,以使得錯(cuò)誤校正邏輯216以這種方式工作。在框306,該方法可包括從多個(gè)處理后的碼中的一個(gè)識(shí)別可校正的碼。如本文使用的,“可校正的碼”是指多個(gè)處理后的碼中的一個(gè),其中作為ECC校驗(yàn)的結(jié)果,在處理后的碼中僅有一個(gè)是不可校正的碼,并且其它處理后的碼或者沒(méi)有錯(cuò)誤,或者有可校正的錯(cuò)誤。如果兩個(gè)/所有處理后的碼導(dǎo)致不可校正的錯(cuò)誤,或者兩個(gè)/所有處理后的碼導(dǎo)致沒(méi)有錯(cuò)誤 /可校正錯(cuò)誤,則發(fā)生混淆并且可校正的碼不能被識(shí)別。下面的表1說(shuō)明了可用于確定可校正的碼是否能被識(shí)別的判定表的示例。在這個(gè)示例中,矩陣A是指在讀取(編碼后的)碼上執(zhí)行的ECC校驗(yàn)邏輯;矩陣B是指在解碼后的碼上執(zhí)行的ECC校驗(yàn)邏輯。表頂部的欄表示通過(guò)在讀取(編碼后的)碼上執(zhí)行碼校驗(yàn)而產(chǎn)生的第一處理后的碼的結(jié)果的值;左邊的欄表示通過(guò)在解碼后的碼上執(zhí)行碼校驗(yàn)而產(chǎn)生的第二處理后的碼的結(jié)果。如表所示,在以下情況下碼是不可校正的如果第一處理后的碼和第二處理后的碼均具有不可校正的錯(cuò)誤;以及如果第一處理后的碼不具有錯(cuò)誤或具有可校正的錯(cuò)誤。在另一方面,如果第一處理后的碼和第二處理后的碼中的一個(gè)具有不可校正的錯(cuò)誤,并且第一處理后的碼和第二處理后的碼中的另一個(gè)不具有錯(cuò)誤或具有可校正的錯(cuò)誤,則存在可校正的碼。在后一種情況,可校正的碼是沒(méi)有錯(cuò)誤或具有可校正錯(cuò)誤的處理后的碼。
權(quán)利要求
1.一種用于抑制至少一個(gè)比特的裝置,所述裝置包括邏輯,所述邏輯用于產(chǎn)生與要存儲(chǔ)在共享存儲(chǔ)器中的高速緩存行對(duì)應(yīng)的ECC (錯(cuò)誤校正碼),所述ECC具有事件比特;確定事件的發(fā)生和未發(fā)生中之一,以產(chǎn)生事件確定; 根據(jù)所述事件比特和所述事件確定來(lái)處理所述ECC碼; 將處理后的ECC碼和對(duì)應(yīng)的高速緩存行存儲(chǔ)于存儲(chǔ)器中。
2.如權(quán)利要求1所述的裝置,其中,所述共享存儲(chǔ)器由多個(gè)處理器共享,并且要求所述對(duì)應(yīng)的高速緩存行由所述多個(gè)處理器中的一個(gè)處理器存儲(chǔ),用于確定事件的發(fā)生和未發(fā)生中之一的所述邏輯包括用于確定所述一個(gè)處理器是否另外將數(shù)據(jù)高速緩存到其本地高速緩存中的邏輯。
3.如權(quán)利要求1所述的裝置,其中,用于根據(jù)所述事件比特和所述事件確定來(lái)處理所述ECC碼的所述邏輯包括用于如下操作的邏輯確定所述事件比特是否對(duì)應(yīng)于所述事件確定,并且如果所述事件比特不對(duì)應(yīng)于所述事件確定,則編碼所述ECC以產(chǎn)生對(duì)應(yīng)于所述事件確定的抑制比特。
4.如權(quán)利要求3所述的裝置,還包括用于如下操作的邏輯 從所述存儲(chǔ)器讀取所述ECC ( “讀取碼”);處理所述讀取碼以產(chǎn)生第一處理后的碼和第二處理后的碼;至少部分地基于所述第一處理后的碼和所述第二處理后的碼來(lái)推斷所述事件的發(fā)生。
5.如權(quán)利要求4所述的裝置,其中,用于處理所述讀取碼以產(chǎn)生第一處理后的碼和第二處理后的碼的所述邏輯包括用于如下操作的邏輯解碼所述讀取碼以產(chǎn)生解碼后的讀取碼,對(duì)所述解碼后的讀取碼執(zhí)行碼校驗(yàn),以及對(duì)所述讀取碼執(zhí)行碼校驗(yàn)。
6.如權(quán)利要求5所述的裝置,其中,用于至少部分地基于所述第一處理后的碼和所述第二處理后的碼來(lái)推斷所述事件的發(fā)生的所述邏輯包括用于如下操作的邏輯識(shí)別可校正的碼;以及讀取所述可校正的碼的所述事件比特以確定所述事件的發(fā)生和未發(fā)生中之一。
7.一種系統(tǒng)包括 多個(gè)處理器;共享存儲(chǔ)器,其耦合到所述多個(gè)處理器;以及集成電路,其耦合到所述多個(gè)處理器,并且具有存儲(chǔ)器控制器邏輯,所述存儲(chǔ)器控制器邏輯用于產(chǎn)生與要存儲(chǔ)在共享存儲(chǔ)器中的高速緩存行對(duì)應(yīng)的ECC (錯(cuò)誤校正碼); 確定事件的發(fā)生和未發(fā)生中之一,以產(chǎn)生事件確定; 根據(jù)所述事件確定來(lái)處理所述ECC ;以及將處理后的ECC和對(duì)應(yīng)的高速緩存行存儲(chǔ)于所述存儲(chǔ)器中。
8.如權(quán)利要求7所述的系統(tǒng),其中,要求所述對(duì)應(yīng)的高速緩存行由所述多個(gè)處理器中的一個(gè)處理器存儲(chǔ),用于確定事件的發(fā)生和未發(fā)生中之一的所述存儲(chǔ)器控制器邏輯包括用于確定所述一個(gè)處理器是否另外將數(shù)據(jù)高速緩存到其本地高速緩存中的邏輯。
9.如權(quán)利要求7所述的系統(tǒng),其中,用于根據(jù)所述事件比特和所述事件確定來(lái)處理所述ECC碼的所述邏輯包括用于如下操作的邏輯確定所述事件比特是否對(duì)應(yīng)于所述事件確定,并且如果所述事件比特不對(duì)應(yīng)于所述事件確定,則編碼所述ECC以產(chǎn)生對(duì)應(yīng)于所述事件確定的抑制比特。
10.如權(quán)利要求7所述的系統(tǒng),其中,所述存儲(chǔ)器控制器邏輯還用于 從所述存儲(chǔ)器讀取所述碼(“讀取碼”);處理所述讀取碼以產(chǎn)生多個(gè)處理后的碼;從所述多個(gè)處理后的碼中的一個(gè)識(shí)別可校正的碼;以及如果識(shí)別了可校正的碼,則讀取所述可校正的碼的事件比特以確定所述事件的發(fā)生和未發(fā)生中之一。
11.如權(quán)利要求10所述的系統(tǒng),其中,用于處理所述讀取碼以產(chǎn)生多個(gè)處理后的碼的所述存儲(chǔ)器控制器邏輯包括用于如下操作的邏輯解碼所述讀取碼以產(chǎn)生解碼后的讀取碼,對(duì)所述解碼后的讀取碼執(zhí)行碼校驗(yàn),以及對(duì)所述讀取碼執(zhí)行碼校驗(yàn)。
12.如權(quán)利要求11所述的系統(tǒng),其中,用于解碼所述讀取碼以產(chǎn)生解碼后的讀取碼的所述邏輯包括將抑制掩碼的反碼應(yīng)用到所述讀取碼。
13.一種方法,包括確定事件的發(fā)生和未發(fā)生中之一,所述發(fā)生和未發(fā)生中之一導(dǎo)致事件確定;以及處理具有事件比特的碼,所述處理根據(jù)所述確定和所述碼通過(guò)如下方式進(jìn)行 確定所述事件比特是否對(duì)應(yīng)于所述事件確定;以及如果所述事件比特不對(duì)應(yīng)于所述事件確定,則編碼所述碼以產(chǎn)生對(duì)應(yīng)于所述事件確定的抑制比特。
14.如權(quán)利要求13所述的方法,還包括將所述碼存儲(chǔ)在存儲(chǔ)器中。
15.如權(quán)利要求14所述的方法,還包括 從所述存儲(chǔ)器讀取所述碼(“讀取碼”); 處理所述讀取碼以產(chǎn)生多個(gè)處理后的碼;從所述多個(gè)處理后的碼中的一個(gè)識(shí)別可校正的碼;以及如果識(shí)別了可校正的碼,則讀取所述可校正的碼的所述事件比特以確定所述事件的發(fā)生和未發(fā)生中之一。
16.如權(quán)利要求15所述的方法,其中,所述處理所述讀取碼包括 解碼所述讀取碼;對(duì)讀取碼執(zhí)行碼校驗(yàn)以產(chǎn)生第一處理后的碼;以及對(duì)所述讀取碼執(zhí)行碼校驗(yàn)以產(chǎn)生第二處理后的碼。
17.一種具有存儲(chǔ)在其上的指令的制造產(chǎn)品,當(dāng)所述指令由機(jī)器執(zhí)行時(shí)使得 確定事件的發(fā)生和未發(fā)生中之一,所述發(fā)生和未發(fā)生中之一導(dǎo)致事件確定;以及處理具有事件比特的碼,所述處理根據(jù)所述確定和所述碼通過(guò)如下方式進(jìn)行 確定所述事件比特是否對(duì)應(yīng)于所述事件確定;以及如果所述事件比特不對(duì)應(yīng)于所述事件確定,則編碼所述碼以產(chǎn)生對(duì)應(yīng)于所述事件確定的抑制比特。
18.如權(quán)利要求17所述的產(chǎn)品,還包括當(dāng)由機(jī)器執(zhí)行時(shí)使得將所述碼存儲(chǔ)在存儲(chǔ)器中的指令。
19.如權(quán)利要求18所述的產(chǎn)品,還包括當(dāng)由機(jī)器執(zhí)行時(shí)使得執(zhí)行如下操作的指令 從所述存儲(chǔ)器讀取所述碼(“讀取碼”);處理所述讀取碼以產(chǎn)生多個(gè)處理后的碼;從所述多個(gè)處理后的碼中的一個(gè)識(shí)別可校正的碼;以及如果識(shí)別了可校正的碼,則讀取所述可校正的碼的所述事件比特以確定所述事件的發(fā)生和未發(fā)生中之一。
20.如權(quán)利要求19所述的產(chǎn)品,其中,使得處理所述讀取碼的所述指令包括當(dāng)由機(jī)器執(zhí)行時(shí)使得執(zhí)行如下操作的指令解碼所述讀取碼;對(duì)讀取碼執(zhí)行碼校驗(yàn)以產(chǎn)生第一處理后的碼;以及對(duì)所述讀取碼執(zhí)行碼校驗(yàn)以產(chǎn)生第二處理后的碼。
全文摘要
在一個(gè)實(shí)施例中,一種方法提供了確定事件的發(fā)生和未發(fā)生中之一,所述發(fā)生和未發(fā)生中之一導(dǎo)致事件確定,以及處理具有事件比特的碼,所述處理根據(jù)所述確定和所述碼通過(guò)如下方式進(jìn)行確定所述事件比特是否對(duì)應(yīng)于所述事件確定,以及如果所述事件比特不對(duì)應(yīng)于所述事件確定,則編碼所述碼以產(chǎn)生對(duì)應(yīng)于所述事件確定的抑制比特。
文檔編號(hào)G06F11/08GK102171658SQ200980139251
公開(kāi)日2011年8月31日 申請(qǐng)日期2009年12月10日 優(yōu)先權(quán)日2008年12月29日
發(fā)明者D·布熱津斯基, R·阿加瓦爾, S·赫德?tīng)査诡D 申請(qǐng)人:英特爾公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
瓦房店市| 旅游| 荥阳市| 温宿县| 嘉义县| 岫岩| 八宿县| 罗甸县| 临江市| 临漳县| 吉隆县| 桂东县| 林甸县| 安图县| 榕江县| 泾川县| 扎鲁特旗| 申扎县| 堆龙德庆县| 肃宁县| 隆尧县| 工布江达县| 冀州市| 白沙| 龙川县| 泰来县| 称多县| 崇仁县| 治多县| 潜江市| 华蓥市| 甘孜| 蒲江县| 宁明县| 城口县| 于都县| 平乡县| 土默特左旗| 襄城县| 建瓯市| 连城县|