專利名稱:為在存儲(chǔ)器元件內(nèi)存儲(chǔ)的數(shù)據(jù)提供數(shù)據(jù)保護(hù)的方法及其集成電路器件的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種為在存儲(chǔ)器元件內(nèi)存儲(chǔ)的數(shù)據(jù)提供數(shù)據(jù)保護(hù)的方法及其集成電路器件。
背景技術(shù):
在集成電路器件領(lǐng)域內(nèi),特別是在用于汽車應(yīng)用的集成電路器件領(lǐng)域內(nèi),用糾錯(cuò)碼(ECC)保護(hù)存儲(chǔ)在RAM (隨機(jī)存取存儲(chǔ)器)內(nèi)的數(shù)據(jù),特別是針對由錯(cuò)誤事件例如α輻射、大氣中子等引起的數(shù)據(jù)內(nèi)的“軟錯(cuò)誤”提供保護(hù),是眾所周知的。這種糾錯(cuò)碼的例子是提供單位糾錯(cuò)和雙位錯(cuò)誤檢測的擴(kuò)展?jié)h明碼、夏碼(Hsia codes)以及類似的線性碼。
·
隨著加工技術(shù)的發(fā)展以及被縮小到納米,單錯(cuò)誤事件(例如,由單一字母或中子粒子引起的)可能會(huì)引起RAM內(nèi)多個(gè)相鄰位單元改變狀態(tài),并且因此被損壞。因此,由傳統(tǒng)的ECC技術(shù)單獨(dú)提供的單一位糾錯(cuò)不足以防止這種錯(cuò)誤事件。為了克服這個(gè)問題,已知交織存儲(chǔ)在RAM塊內(nèi)的數(shù)據(jù)字。以這種方式,在所述RAM塊內(nèi)數(shù)據(jù)字的相鄰數(shù)據(jù)位不是相鄰于彼此被存儲(chǔ)的。這種技術(shù)通常被表示為多路復(fù)用器(MUX)因子。例如,圖I說明了帶有MUX因子‘4’的RAM 100的簡化框圖。因此,4個(gè)數(shù)據(jù)字110、120、130、140 (為方便說明,每個(gè)包括4個(gè)位)被交織成RAM塊100的位單元的單一行150。以這種方式,對于帶有MUX因子‘4’的RAM塊,例如圖I中所說明的RAM塊100,存儲(chǔ)在一行位單元內(nèi)的每第四個(gè)數(shù)據(jù)位屬于相同的數(shù)據(jù)字。如果錯(cuò)誤事件發(fā)生,例如通過擊中所述RAM塊的α粒子或中子,使得單一行內(nèi)的最多四個(gè)相鄰位單元被損壞,則任何數(shù)據(jù)字內(nèi)只有一個(gè)位將被損壞。因此,以這種方式,所述錯(cuò)誤能夠通過傳統(tǒng)的ECC單一位糾錯(cuò)技術(shù)被糾正。此外,正如圖2所說明的,通過傳遞從帶有MUX因子‘4’的RAM塊100內(nèi)讀取的數(shù)據(jù)通過傳統(tǒng)的ECC功能塊200,在單一行150內(nèi)損壞最多四個(gè)相鄰位單元的多位錯(cuò)誤事件可被防止。然而,隨著加工技術(shù)和特征尺寸的持續(xù)縮小,RAM位單元變得更小,可受單一錯(cuò)誤事件影響的相鄰RAM位單元的數(shù)量變得更大。因此,需要對存儲(chǔ)在RAM塊內(nèi)的數(shù)據(jù)提供保護(hù),以防止在單一行RAM位單元內(nèi)損壞更大數(shù)量的相鄰位單元的多位錯(cuò)誤事件。這個(gè)問題的一種解決方案是使用能夠糾正例如兩個(gè)錯(cuò)誤而不是單一錯(cuò)誤碼的ECC碼。以這種方式,當(dāng)與帶有MUX因子‘4’的RAM—起使用時(shí),在單一行內(nèi)損壞最多八個(gè)相鄰位單元的多位錯(cuò)誤事件可被防止。然而,這種方法的一個(gè)問題是使用這種多元糾錯(cuò)碼比單一糾錯(cuò)碼慢得多,使得這個(gè)多元糾錯(cuò)碼從性能的角度來看不切實(shí)際。這個(gè)問題的另一種解決方案是為RAM塊增加MUX因子,例如使用帶有MUX因子‘8’的RAM塊,據(jù)此8個(gè)數(shù)據(jù)字的數(shù)據(jù)位被交織成單一行RAM位單元。以這種方式,單一行內(nèi)的每第八個(gè)數(shù)據(jù)位屬于相同的數(shù)據(jù)字。當(dāng)用傳統(tǒng)的ECC單一位糾錯(cuò)技術(shù)實(shí)施時(shí),在單一行內(nèi)損壞最多八個(gè)相鄰位單元的多位錯(cuò)誤事件可被防止。這個(gè)解決方案的一個(gè)問題是它在RAM塊的物理實(shí)現(xiàn)上設(shè)置了顯著的約束。當(dāng)這種約束可適應(yīng)大RAM塊時(shí),對于更小的RAM塊,這種約束使得這個(gè)解決方案不切實(shí)際。例如,假設(shè)RAM塊需要包括32位字以及例如256個(gè)字。如果這個(gè)RAM塊通過MUX因子4實(shí)現(xiàn)時(shí),RAM塊將包括RAM位單元的矩陣,所述矩陣包括(32*4=128)行(位線)和(256/4=64)列。因此,RAM位單元的所述矩陣包括尺寸之間的2倍差異。然而,如果RAM塊通過MUX因子8實(shí)現(xiàn),需要的行的數(shù)量成為32*8=256,以及列的數(shù)量成為(256/8 = =32)。因此,RAM位單元的所述矩陣包括8倍差異;256行X32列。結(jié)果是,在硅上這個(gè)RAM陣列將包括窄的矩形,從而導(dǎo)致較差的面積效率和較差的時(shí)間。通常,用于RAM位單元的矩陣的尺寸的品質(zhì)因數(shù)可被看做(位數(shù)*MUX_因子)不應(yīng)超過(字?jǐn)?shù)/MUX_因子)的2至4倍
發(fā)明內(nèi)容
本發(fā)明提供了一種如所附權(quán)利要求中所描述的為在存儲(chǔ)器元件內(nèi)存儲(chǔ)的數(shù)據(jù)提供數(shù)據(jù)保護(hù)的方法以及集成電路器件。本發(fā)明的具體實(shí)施例在從屬權(quán)利要求中被陳述。根據(jù)下文中描述的實(shí)施例,本發(fā)明的這些或其它方面將會(huì)很明顯并且被闡述。
根據(jù)附圖,僅僅通過舉例的方式,描述了本發(fā)明的進(jìn)一步細(xì)節(jié)、方面和實(shí)施例。在附圖中,類似的符號被用于表示相同的或功能相似的元件。為了簡便以及清晰,附圖中的元件不一定按比例繪制。圖I和圖2說明了 RAM存儲(chǔ)器的例子。圖3說明了集成電路器件的例子的簡化框圖。圖4說明了一種為在存儲(chǔ)器元件內(nèi)存儲(chǔ)的數(shù)據(jù)提供數(shù)據(jù)保護(hù)的方法的例子的簡化流程圖。圖5說明了一種為在存儲(chǔ)器元件內(nèi)存儲(chǔ)的數(shù)據(jù)提供數(shù)據(jù)保護(hù)的方法的替代例子的簡化流程圖。
具體實(shí)施例方式由于本發(fā)明所說明的實(shí)施例可能,在大多數(shù)情況下,通過使用本領(lǐng)域所屬技術(shù)人員所熟知的電子元件以及電路被實(shí)施,細(xì)節(jié)不會(huì)在比上述所說明的認(rèn)為有必要的程度大的任何程度上進(jìn)行解釋。對本發(fā)明基本概念的理解以及認(rèn)識是為了不混淆或偏離本發(fā)明所教之內(nèi)容。綜上所述,示例實(shí)施例涉及一種為在隨機(jī)存取存儲(chǔ)器(RAM)元件內(nèi)存儲(chǔ)的數(shù)據(jù)提供數(shù)據(jù)保護(hù)的方法和集成電路。根據(jù)一些示例實(shí)施例,所述方法包括接收要寫入存儲(chǔ)器的數(shù)據(jù)以及將所述接收到的數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)段。然后糾錯(cuò)碼可被應(yīng)用于所述數(shù)據(jù)段以形成碼字段,例如,每個(gè)碼字段可能包括所述數(shù)據(jù)段之一及其所附加的糾錯(cuò)碼位。然后所述碼字段可彼此交織以形成交織的數(shù)據(jù)碼字,所述數(shù)據(jù)碼字可在單一時(shí)鐘周期內(nèi)被寫入存儲(chǔ)器。根據(jù)一些進(jìn)一步的示例實(shí)施例,一種方法可能包括在單一時(shí)鐘周期從存儲(chǔ)器讀取數(shù)據(jù)碼字并且解交織所讀取的數(shù)據(jù)碼字以獲得多個(gè)碼字段。然后可對解交織的數(shù)據(jù)碼字段執(zhí)行錯(cuò)誤檢測和校正以檢索數(shù)據(jù)段,所述數(shù)據(jù)段然后或可被組合以再現(xiàn)用戶數(shù)據(jù)。以這種方式,通過將要寫入存儲(chǔ)器的數(shù)據(jù)劃分為多個(gè)段,并且將糾錯(cuò)碼應(yīng)用于單獨(dú)數(shù)據(jù)段,相對于對作為一個(gè)整體的數(shù)據(jù)執(zhí)行相同的(或類似的)糾錯(cuò)技術(shù),在所述數(shù)據(jù)內(nèi)檢測和校正錯(cuò)誤的能力被提高。例如,對作為一個(gè)整體的數(shù)據(jù)使用傳統(tǒng)的ECC單一位糾錯(cuò)技術(shù)只能使作為一個(gè)整體的數(shù)據(jù)內(nèi)的一個(gè)單一位錯(cuò)誤被糾正。然而,通過將所述數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)段以及將這種ECC單一位糾錯(cuò)技術(shù)單獨(dú)應(yīng)用到每個(gè)段,單一位錯(cuò)誤能夠在每個(gè)數(shù)據(jù)段內(nèi)被檢測。因此,例如,如果所述數(shù)據(jù)被劃分為,比如說,兩個(gè)數(shù)據(jù)段,兩個(gè)單一位錯(cuò)誤可在所述數(shù)據(jù)內(nèi)被檢測(每個(gè)數(shù)據(jù)段一個(gè)),與當(dāng)傳統(tǒng)的ECC單一位糾錯(cuò)技術(shù)被應(yīng)用于作為一個(gè)整體的所述數(shù)據(jù)時(shí)的只一個(gè)單一位錯(cuò)誤相反。此外,通過交織所述碼字段以形成然后寫入存儲(chǔ)器的交織的數(shù)據(jù)碼字,每個(gè)碼字段的連續(xù)位被設(shè)置在所述交織的數(shù)據(jù)碼字的每η個(gè)連續(xù)位之一,其中η是被交織的碼字段的數(shù)量。以這種方式,如果在存儲(chǔ)器內(nèi)存儲(chǔ)的所述交織的數(shù)據(jù)碼字內(nèi)有小于或等于η個(gè)連續(xù)位被損壞,例如,作為單一錯(cuò)誤事件的結(jié)果(例如,由單一 α或中子粒子引起的),只有與任何一個(gè)碼字段相關(guān)的單一位將會(huì)被損壞。因此,當(dāng)所述交織數(shù)據(jù)碼字隨后從存儲(chǔ)器被讀取并且所述碼字段被解交織時(shí),傳統(tǒng)的ECC單一位糾錯(cuò)技術(shù)可被用于糾正每個(gè)碼字段內(nèi)的所述單一錯(cuò)誤以檢索原始數(shù)據(jù)段,所述原始數(shù)據(jù)段然后可被重新組合以獲得原始的用戶數(shù)據(jù)。因此,以這種方式,存儲(chǔ)器內(nèi)存儲(chǔ)的所述數(shù)據(jù)可免受單一錯(cuò)誤事件(例如,由單一 α或中子粒子引起的),所述單一錯(cuò)誤事件通過使用傳統(tǒng)的ECC單一位糾錯(cuò)技術(shù),引起存儲(chǔ)器內(nèi) 存儲(chǔ)的所述交織的數(shù)據(jù)碼字內(nèi)的最多η個(gè)連續(xù)位被損壞?,F(xiàn)參照圖3,根據(jù)本發(fā)明的一些示例實(shí)施例,說明了被改編的集成電路器件300的例子的簡化框圖。所述集成電路器件300包括存儲(chǔ)器存取模塊305用于從存儲(chǔ)器讀取數(shù)據(jù)和寫入數(shù)據(jù)到存儲(chǔ)器。對于說明的例子,所述存儲(chǔ)器存取模塊305被安排以從存儲(chǔ)器元件300讀取數(shù)據(jù)和寫入數(shù)據(jù)到存儲(chǔ)器元件300,對于所說明的例子,這形成了所述集成電路器件300的不可分割的一部分。根據(jù)一個(gè)例子,所述存儲(chǔ)器存取模塊305被安排以接收要寫入存儲(chǔ)器的數(shù)據(jù)320以及將所接收的數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)段,對于所說明的例子,這包括了通常在322和324被說明的連續(xù)的數(shù)據(jù)位的段。然后所述存儲(chǔ)器存取模塊305被安排以將糾錯(cuò)碼應(yīng)用于所述數(shù)據(jù)段以形成碼字段。因此,對于所說明的例子,所述存儲(chǔ)器存取模塊305包括多個(gè)糾錯(cuò)碼(ECC)塊310、315,其中每個(gè)ECC塊310、315被安排以接收所接收的數(shù)據(jù)320的一個(gè)數(shù)據(jù)段322、324。在收到所接收的數(shù)據(jù)320的數(shù)據(jù)段322、324后,每個(gè)ECC塊310、315為其各自數(shù)據(jù)段322、324生成糾錯(cuò)碼,并附加所述糾錯(cuò)碼至所述各自數(shù)據(jù)段322、324以形成碼字段,正如在312、317說明的所述碼字段被輸出。所述存儲(chǔ)器存取模塊305還被安排以交織所述ECC塊310、320輸出的所述碼字段312、317以形成交織的數(shù)據(jù)碼字,正如通常在340所說明的。然后這種交織的數(shù)據(jù)碼字在單一時(shí)鐘周期內(nèi)被寫入存儲(chǔ)器元件330。根據(jù)一些示例實(shí)施例,所述存儲(chǔ)器存取模塊305,或更具體地說,對于所說明的例子,所述ECC塊310、315被安排以將單一位糾錯(cuò)編碼應(yīng)用于所述數(shù)據(jù)段322、324以形成所述碼字段312、317。以這種方式,由這種錯(cuò)誤編碼的應(yīng)用引起的延遲是最小的。這種單一位糾錯(cuò)編碼技術(shù)是眾所周知的,并且因此在本發(fā)明中將不被詳細(xì)描述。對于所說明的例子,所述存儲(chǔ)器存取模塊305被安排以將所接收的數(shù)據(jù)劃分為兩個(gè)數(shù)據(jù)段322、324。然而,在其它例子中,概念并不局限于將所接收的數(shù)據(jù)320恰好劃分為兩個(gè)數(shù)據(jù)段322、324,因此所接收的數(shù)據(jù)320可被劃分為任何適當(dāng)數(shù)量(η)的數(shù)據(jù)段,以及將糾錯(cuò)碼應(yīng)用于那些η個(gè)數(shù)據(jù)段以形成η個(gè)碼字段,以及交織所述η個(gè)碼字段以形成單一交織的數(shù)據(jù)碼字。以這種方式,通過交織所述碼字段312、317以形成在單一時(shí)鐘周期內(nèi)被寫入存儲(chǔ)器330的交織的數(shù)據(jù)碼字340,每個(gè)單獨(dú)碼字段312、317的連續(xù)位被設(shè)置在所述交織的數(shù)據(jù)碼字340的每η個(gè)連續(xù)位的一個(gè)上。因此,如果在存儲(chǔ)器內(nèi)存儲(chǔ)的所述交織的數(shù)據(jù)碼字內(nèi)有小于或等于η個(gè)連續(xù)位被損壞,例如,作為單一錯(cuò)誤事件的結(jié)果(例如,由單一α或中子粒子引起的),只有與任何一個(gè)碼字段312、317相關(guān)的單一位將已經(jīng)被損壞。因此,當(dāng)所述交織的數(shù)據(jù)碼字340隨后從存儲(chǔ)器330被讀取并且所述碼字段312、317被解交織時(shí),傳統(tǒng)的ECC單一位糾錯(cuò)技術(shù)可被用于糾正每個(gè)碼字段312、317內(nèi)的所述單一錯(cuò)誤以檢索原始數(shù)據(jù)段322、324,所述原始數(shù)據(jù)段322、324然后或可被重新組合以獲得原始的用戶數(shù)據(jù)320。因此,以這種方式,存儲(chǔ)器300內(nèi)存儲(chǔ)的所述數(shù)據(jù)可免受單一錯(cuò)誤事件(例如,由單一 α或中子粒子引起的),所述單一錯(cuò)誤事件通過使用傳統(tǒng)的ECC單一位糾錯(cuò)技術(shù),弓丨起存儲(chǔ)器300內(nèi)存儲(chǔ)的所述交織的數(shù)據(jù)碼字340內(nèi)的最多η個(gè)連續(xù)位被損壞。根據(jù)一些示例實(shí)施例,所述存儲(chǔ)器存取模塊305可還被安排以將所述交織的數(shù)據(jù)碼字340的連續(xù)位寫入,比如說,所述存儲(chǔ)器元件330內(nèi)的一行存儲(chǔ)器位單元335內(nèi)的每i個(gè)連續(xù)位單元的一個(gè)上。例如,所述存儲(chǔ)器存取模塊305可能包括多路復(fù)用模塊350,所述·多路復(fù)用模塊被安排以接收交織的數(shù)據(jù)碼字340以及將所接收的交織的數(shù)據(jù)碼字340的第一位寫入一行存儲(chǔ)器位單元335內(nèi)的i個(gè)起始位單元中的一個(gè)(根據(jù)控制信號355)。所述存儲(chǔ)器存取模塊305還可能將所接收的交織的數(shù)據(jù)碼字340的隨后連續(xù)位寫入存儲(chǔ)器元件330內(nèi)的一行存儲(chǔ)器位單元335內(nèi)的每第i個(gè)連續(xù)位單元。以這種方式,所述多路復(fù)用模塊350可被安排以將i個(gè)交織的數(shù)據(jù)碼字340寫入單一行存儲(chǔ)器位單元335以便當(dāng)存儲(chǔ)在所述存儲(chǔ)器元件330內(nèi)時(shí),所述i個(gè)交織的數(shù)據(jù)碼字彼此互相交織。這種存儲(chǔ)在一行存儲(chǔ)器內(nèi)的多路復(fù)用數(shù)據(jù)字,比如說關(guān)于包括“i”MUX因子的RAM塊是為人所熟知的。因此,對于所說明的例子,所述存儲(chǔ)器元件330可能包括RAM塊,所述RAM塊包括MUX因子,比如說‘4’,以及所述多路復(fù)用模塊350形成所述存儲(chǔ)器元件330的一部分并且被安排以在一行存儲(chǔ)器位單元335內(nèi)多路復(fù)用四個(gè)交織的數(shù)據(jù)碼字340。因此,對于所說明的例子,所述存儲(chǔ)器存取模塊305可能包括既與所述存儲(chǔ)器元件330互相整合又位于存儲(chǔ)器元件330之外的部件,所述存儲(chǔ)器存取模塊305被安排以向其提供存取。以這種方式,存儲(chǔ)在一行存儲(chǔ)器內(nèi)的數(shù)據(jù)字的多路復(fù)用導(dǎo)致數(shù)據(jù)字的相鄰數(shù)據(jù)位在一行存儲(chǔ)器內(nèi)不是彼此相鄰被存儲(chǔ)的。例如,其中i個(gè)數(shù)據(jù)字被多路復(fù)用到單一行存儲(chǔ)器內(nèi),存儲(chǔ)在所述行內(nèi)的每第i個(gè)數(shù)據(jù)位屬于相同的數(shù)據(jù)字。如果錯(cuò)誤事件發(fā)生,例如α粒子或中子擊中存儲(chǔ)器塊,使得單一行內(nèi)的最多i個(gè)相鄰位單元被損壞,任何數(shù)據(jù)字內(nèi)只有一個(gè)位將被損壞。因此,根據(jù)一些示例實(shí)施例,結(jié)合上述描述的通過存儲(chǔ)器存取模塊305形成的交織的數(shù)據(jù)碼字340,通過實(shí)施這種多路復(fù)用,即使單一行內(nèi)i*n相鄰位單元被損壞,通過使用傳統(tǒng)的ECC單一位糾錯(cuò)技術(shù),原始用戶數(shù)據(jù)仍然可能被恢復(fù)。例如,以下這個(gè)例子通過所述存儲(chǔ)器存取模塊305將用戶數(shù)據(jù)320劃分為數(shù)據(jù)段322,324的數(shù)量(n),以及由所述ECC塊310輸出的碼字段312、317的數(shù)量,包括比如說兩個(gè),被多路復(fù)用到一行存儲(chǔ)器位單元335內(nèi)的交織的數(shù)據(jù)碼字340的數(shù)量(i)等于四。如果在單一行存儲(chǔ)器位335內(nèi)的i*n個(gè)相鄰位,對于這個(gè)例子,包括8個(gè)相鄰位,被損壞,例如,由于α粒子或中子擊中存儲(chǔ)器塊,由于每第i個(gè)位屬于相同的交織的數(shù)據(jù)碼字340,每個(gè)交織的數(shù)據(jù)碼字340內(nèi)的η個(gè)連續(xù)位將被損壞。因此,對于這個(gè)例子,每個(gè)交織的數(shù)據(jù)碼字340內(nèi)只有兩個(gè)連續(xù)位將被損壞。正如前面所提到的,通過交織所述碼字段312、317以形成然后被寫入存儲(chǔ)器330的交織的數(shù)據(jù)碼字340,每個(gè)碼字段312、317的連續(xù)位被設(shè)置在所述交織的數(shù)據(jù)碼字340的每η個(gè)連續(xù)位的一個(gè)上。因此,對于這個(gè)例子,每個(gè)碼字段312、317的連續(xù)位被設(shè)置在所述交織的數(shù)據(jù)碼字340的每兩個(gè)連續(xù)位的一個(gè)上。因此,當(dāng)每個(gè)交織的數(shù)據(jù)碼字340內(nèi)的兩個(gè)連續(xù)位已經(jīng)被損壞,正如上面的例子中的情況,所述兩個(gè)損壞的位對應(yīng)于兩個(gè)不同的碼字段312、317。因此,當(dāng)所述交織的數(shù)據(jù)碼字340隨后從存儲(chǔ)器被讀取以及所述碼字段312、317被解交織時(shí),每個(gè)數(shù)據(jù)碼字段312、317將只包括單一損壞位。因此,傳統(tǒng)的ECC單一位糾錯(cuò)技術(shù)可被用于糾正每個(gè)碼字段312、317內(nèi)的單一錯(cuò)誤以檢索原始數(shù)據(jù)段322、324,所述原始數(shù)據(jù)段然后可被重新組合以獲得原始用戶數(shù)據(jù)320。因此,以這種方式,存儲(chǔ)器內(nèi)存儲(chǔ)的數(shù)據(jù)可防止在存儲(chǔ)器元件330內(nèi)的一行存儲(chǔ)器位單元335內(nèi)的最多i*n個(gè)連續(xù)位被損壞,對于上述的例子包括最多8個(gè)連續(xù)位,例如通過使用傳統(tǒng)的ECC單一位糾錯(cuò)技術(shù),作為一個(gè)單一錯(cuò)誤事件的結(jié)果(例如,由單一 α或中子粒子引起的)。 為了幫助理解,如下所述,本發(fā)明實(shí)施的一個(gè)詳細(xì)的例子被提供。讓我們假定需要帶有32位用戶字寬度的256-條目深RAM塊,并且要求防止影響最多八個(gè)相鄰RAM位單元的錯(cuò)誤。為了避免使用慢的多元糾錯(cuò)碼,已知的現(xiàn)有技術(shù)可能包括使用包括MUX因子‘8’的RAM塊以提供所需的數(shù)據(jù)保護(hù)。RAM塊將需要39位(32位用于用戶數(shù)據(jù)以及7位用于ECC校驗(yàn)和)的寬度。相反,對于本發(fā)明實(shí)施的一個(gè)例子,當(dāng)與例如存儲(chǔ)器存取控制器一起使用時(shí),包括MUX因子‘4’的RAM塊足以提供所需的數(shù)據(jù)保護(hù),所述存儲(chǔ)器存取控制器將所述用戶數(shù)據(jù)劃分為兩個(gè)數(shù)據(jù)段,然后交織源自這兩個(gè)數(shù)據(jù)段的ECC保護(hù)的碼字段以生成要被存儲(chǔ)于存儲(chǔ)器內(nèi)的交織的碼字。例如,在圖3中所說明的例子中,所述存儲(chǔ)器存取控制器305可被安排以接收要被寫入包括32位字的存儲(chǔ)器內(nèi)的數(shù)據(jù),將所接收的數(shù)據(jù)劃分為兩個(gè)16位數(shù)據(jù)段,將6位糾錯(cuò)編碼應(yīng)用于每個(gè)數(shù)據(jù)段以形成兩個(gè)22位碼字段,以及交織所述兩個(gè)22位碼字?jǐn)?shù)據(jù)段以形成44位交織的數(shù)據(jù)碼字。然后所述44位交織的數(shù)據(jù)碼字可被提供給包括MUX因子‘4’的RAM塊330并且被寫入一行335存儲(chǔ)器330內(nèi)每第四位單元。在這個(gè)例子中,RAM塊將需要44位(32位用于用戶數(shù)據(jù)以及12位用于ECC檢驗(yàn)和-或者更準(zhǔn)確地說2*16用于用戶數(shù)據(jù)以及2*6用于ECC檢驗(yàn)和)的寬度。顯著地,使用帶有更高M(jìn)UX因子的RAM塊的需要被大大減輕以實(shí)現(xiàn)更高程度的保護(hù),而不需要依賴于使用更慢的多元糾錯(cuò)碼。當(dāng)實(shí)施本發(fā)明上述例子需要更寬的RAM塊時(shí),對于更小RAM ±夾,例如,包括使得(位數(shù)*MUX_因子)與(字?jǐn)?shù)/MUX_因子)相差不超過2至4倍的尺寸,改進(jìn)的面積效率及時(shí)間可被實(shí)現(xiàn)以彌補(bǔ)所述更寬的RAM塊。因此,當(dāng)相對于已知現(xiàn)有技術(shù),存儲(chǔ)器存取模塊305的所說明的例子使得防止了多位錯(cuò)誤事件而不需要使用更慢的多元糾錯(cuò)碼,而且不需要使用例如有增加的MUX因子的RAM塊,其中所述多位錯(cuò)誤事件損壞了在單一行存儲(chǔ)器內(nèi)的大量相鄰位單元。對于圖3中所說明的例子,所述存儲(chǔ)器存取模塊305包括兩個(gè)單獨(dú)ECC塊310、315,每個(gè)用于所述數(shù)據(jù)段322、324中的每個(gè),所接收的用戶數(shù)據(jù)被劃分為所述數(shù)據(jù)段322、324。此外,在‘寫入’方向,每個(gè)ECC塊310、315接收單一數(shù)據(jù)段322、324并且輸出單一的碼字段312、317,所述碼字段312、317包括所接收的數(shù)據(jù)段322、324和相應(yīng)的糾錯(cuò)碼。此夕卜,在‘讀取’方向,每個(gè)ECC塊310、315接收單一碼字段312、317并且輸出相應(yīng)的數(shù)據(jù)段322、324。為了便于對所說明的例子的理解,單獨(dú)ECC塊已被說明,以及根據(jù)其它示例實(shí)施例進(jìn)行改編的存儲(chǔ)器存取模塊可不被局限于包括這種單獨(dú)ECC塊。例如,在‘寫入’方向,這樣的存儲(chǔ)器存取模塊可能包括一個(gè)或多個(gè)ECC塊,被安排以接收多個(gè)數(shù)據(jù)段322、324以及將糾錯(cuò)碼應(yīng)用于每個(gè)所接收的數(shù)據(jù)段322、324以及輸出產(chǎn)生的多個(gè)碼字段312、317。此夕卜,在‘讀取’方向,這種ECC塊可被安排以接收多個(gè)碼字段312、317以及輸出相應(yīng)的數(shù)據(jù)段 322、324。此外,對于所說明的例子,在‘寫入’方向的用戶數(shù)據(jù)320在被提供給ECC塊310、315之前被劃分為數(shù)據(jù)段322、324。同樣,在‘讀取’方向的數(shù)據(jù)段322、324通過ECC塊322、324被輸出以隨后被重新組合以恢復(fù)所述用戶數(shù)據(jù)320。然而,將用戶數(shù)據(jù)劃分為數(shù)據(jù)段以及重新組合數(shù)據(jù)段以恢復(fù)用戶數(shù)據(jù)可替代地至少部分在一個(gè)或多個(gè)ECC塊內(nèi)被執(zhí)行。 此外,對于所說明的例子,所述存儲(chǔ)器存取模塊305實(shí)質(zhì)地包括‘共同的’讀取和寫入路徑;也就是說,對于所說明的例子,在讀取操作期間從所述存儲(chǔ)器元件330讀取數(shù)據(jù)位采取與其在之前的寫入操作期間實(shí)質(zhì)相同的路徑。然而,所述存儲(chǔ)器存取模塊305可能包括至少部分地單獨(dú)讀取和寫入路徑。例如,所述存儲(chǔ)器存取模塊305可能包括一個(gè)或多個(gè)‘讀取’ECC塊,被安排以接收數(shù)據(jù)段以及將糾錯(cuò)碼應(yīng)用于所接收數(shù)據(jù)段以形成碼字段,還包括一個(gè)或多個(gè)單獨(dú)‘寫入’ ECC塊,被安排以接收碼字段以及對其執(zhí)行錯(cuò)誤檢測和糾正以檢索數(shù)據(jù)段。在另一個(gè)例子中,單獨(dú)存儲(chǔ)器存取塊可被用于實(shí)施讀取和寫入操作。例如,第一存儲(chǔ)器存取塊可被安排以接收要被寫入存儲(chǔ)器的數(shù)據(jù),將所接收的數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)段,將糾錯(cuò)碼應(yīng)用于所述數(shù)據(jù)段以形成碼字段,交織所述碼字段以形成交織的數(shù)據(jù)碼字,以及將所述交織的數(shù)據(jù)碼字寫入存儲(chǔ)器。相反地,第二存儲(chǔ)器存取塊可被安排以從存儲(chǔ)器讀取數(shù)據(jù)碼字,解交織所讀取的數(shù)據(jù)碼字以獲得多個(gè)碼字段,對所述解交織的數(shù)據(jù)碼字段執(zhí)行錯(cuò)誤檢測和糾正以檢索數(shù)據(jù)段以及組合所檢索的數(shù)據(jù)段以再現(xiàn)用戶數(shù)據(jù)。現(xiàn)參照圖4,根據(jù)本發(fā)明的一些示例實(shí)施例,說明了一種為在存儲(chǔ)器元件內(nèi)存儲(chǔ)的數(shù)據(jù)提供數(shù)據(jù)保護(hù)的方法的例子的簡化的流程圖400。所述方法從步驟410開始,并移動(dòng)到步驟420,其中接收要被寫入存儲(chǔ)器的用戶數(shù)據(jù)。然后,在步驟430,所述用戶數(shù)據(jù)被劃分為η個(gè)數(shù)據(jù)段。然后糾錯(cuò)碼位在步驟440被應(yīng)用于每個(gè)數(shù)據(jù)段以形成碼字段,對于所說明的例子,所述碼字段包括在步驟440的ECC擴(kuò)展數(shù)據(jù)段。然后所述碼字段在步驟450被交織以形成交織的數(shù)據(jù)碼字,所述數(shù)據(jù)碼字然后在單一時(shí)鐘周期內(nèi)被寫入一行存儲(chǔ)器位單元內(nèi)的每第i個(gè)連續(xù)位單元,例如通過多路復(fù)用等等。所述方法然后在步驟470結(jié)束。現(xiàn)參照圖5,根據(jù)本發(fā)明的一些示例實(shí)施例,說明了一種為在存儲(chǔ)器元件內(nèi)存儲(chǔ)的數(shù)據(jù)提供數(shù)據(jù)保護(hù)的方法的例子的簡化的流程圖500。所述方法從步驟510開始,并移動(dòng)到步驟520,在所述步驟520,存儲(chǔ)的數(shù)據(jù)在單一時(shí)鐘周期內(nèi)從一行存儲(chǔ)器位單元內(nèi)的每第i個(gè)連續(xù)位單元被讀取。然后,在步驟530,所讀取數(shù)據(jù)被解交織以獲得η個(gè)碼字段,對于所說明的例子,所述碼字段包括ECC擴(kuò)展數(shù)據(jù)段。然后,在步驟540,對所述碼字段執(zhí)行錯(cuò)誤檢測和糾正以檢索用戶數(shù)據(jù)段,以及然后在步驟550,所述用戶數(shù)據(jù)段被組合以再現(xiàn)所述用戶數(shù)據(jù)。然后在步驟560所述用戶數(shù)據(jù)被輸出,以及所述方法在步驟570結(jié)束。在前面的說明中,參照本發(fā)明實(shí)施例的特定例子已經(jīng)對本發(fā)明進(jìn)行了描述。然而,很明顯各種修改和變化可在不脫離所附權(quán)利要求中所陳述的本發(fā)明的寬范圍精神及范圍的情況下被做出。這里所討論的連接可以是任何類型的連接。該連接適于將信號從各節(jié)點(diǎn)、單元或設(shè)備傳輸或傳輸?shù)礁鞴?jié)點(diǎn)、單元或器件,例如通過中間設(shè)備。因此,除非暗示或說明,連接,例如,可能是直接連接或間接連接。連接可以被說明或描述,涉及到是單一連接、多個(gè)連接、單向連接、或雙向連接。然而,不同實(shí)施例可能改變連接的實(shí)現(xiàn)。例如,可以使用單獨(dú)單向連接而不是雙向連接,反之亦然。此外,多個(gè)連接可以被替換為連續(xù)地或以時(shí)間復(fù)用方式傳輸多個(gè)信號的單一連接。同樣地,攜帶多個(gè)信號的單一連接可以被分離成各種不同的攜帶這些信號的子集的連接。因此,存在傳輸信號的許多選項(xiàng)。這里所描述的每個(gè)信號可被設(shè)計(jì)為正邏輯或負(fù)邏輯。在負(fù)邏輯信號的情況下,所述信號是低活性,其中,所述邏輯真狀態(tài)相當(dāng)于邏輯電平O。在正邏輯信號的情況下,所述信號是高活性,所述邏輯真狀態(tài)相當(dāng)于邏輯電平I。注意,這里所描述的任何信號可以被設(shè)計(jì)為負(fù)邏輯信號或正邏輯信號。因此,在替代實(shí)施例中,那些被描述為正邏輯信號的信號可被實(shí)施為負(fù)邏輯信號,以及那些被描述為負(fù)邏輯信號的信號可被實(shí)施為正邏輯信號。 此外,對于上述說明的例子,被安排以執(zhí)行單一位糾錯(cuò)技術(shù)的ECC塊已被描述以應(yīng)用糾錯(cuò)碼至數(shù)據(jù)段以形成碼字段。然而,在其它示例實(shí)施例中,多位糾錯(cuò)技術(shù)可被替代地應(yīng)用于數(shù)據(jù)段以形成碼字段。本領(lǐng)域所屬技術(shù)人員將認(rèn)識到邏輯塊之間的界限僅僅是說明性的并且替代實(shí)施例可能合并邏輯塊或電路元素或在各種邏輯塊或電路元素上強(qiáng)加替代的分解功能。因此,應(yīng)了解,本發(fā)明描述的架構(gòu)僅僅是示范的,并且事實(shí)上實(shí)現(xiàn)相同功能的很多其它架構(gòu)可以被實(shí)現(xiàn)。為實(shí)現(xiàn)相同功能的任何組件的布置是有效地“關(guān)聯(lián)”以便所需的功能得以實(shí)現(xiàn)。因此,為實(shí)現(xiàn)特定功能,本發(fā)明中結(jié)合在一起的任何兩個(gè)組件可以被看作彼此“相關(guān)聯(lián)”以便所需的功能得以實(shí)現(xiàn),不論架構(gòu)還是中間組件。同樣地,如此關(guān)聯(lián)的任何兩個(gè)組件還可以被認(rèn)為是彼此被“可操作連接”或“可操作耦合”以實(shí)現(xiàn)所需的功能。此外,本領(lǐng)域所屬技術(shù)人員將認(rèn)識到上述描述的操作之間的界限僅僅是說明性的。多個(gè)操作可被組合成單一操作,單一操作可分布在附加操作中以及操作可至少在時(shí)間上部分地重疊而被執(zhí)行。而且,替代實(shí)施例可能包括特定操作的多個(gè)例子,并且操作的順序可在各種其它實(shí)施例中被改變。又如,在一個(gè)實(shí)施例中,說明的例子可被作為位于單一集成電路上的電路或在相同器件內(nèi)的電路被實(shí)施。或者,例子可作為以一種合適的方式彼此相連接的任何數(shù)量的單獨(dú)集成電路或單獨(dú)器件被實(shí)施。例如,圖3中所說明的存儲(chǔ)器元件330以及所述存儲(chǔ)器存取模塊305的相關(guān)聯(lián)的多路復(fù)用電路可在第一集成電路或器件內(nèi)被實(shí)施,同時(shí)所述存儲(chǔ)器存取模塊305的剩余組件可在一個(gè)或多個(gè)其他集成電路或器件上被實(shí)施。又如,例子或其中的一部分可能作為物理電路的軟或代碼表征被實(shí)現(xiàn),或作為能夠轉(zhuǎn)化成物理電路的邏輯表征,例如在任何合適的類型的硬件描述語言中被實(shí)現(xiàn)。此外,本發(fā)明不限定在非程序化硬件中被實(shí)現(xiàn)的物理器件或單元,但也可以應(yīng)用在可編程器件或單元中。這些器件或單元通過操作能夠執(zhí)行所需的器件功能。該執(zhí)行是根據(jù)合適的的程序代碼,例如,主機(jī)、微型計(jì)算機(jī)、服務(wù)器、工作站、個(gè)人電腦、筆記本、個(gè)人數(shù)字助理、電子游戲、汽車和其它嵌入式系統(tǒng)、手機(jī)和其它無線器件,在本申請中通常表示“計(jì)算機(jī)系統(tǒng)”。然而,其它修改、變化和替代也是可能的。說明書和附圖相應(yīng)地被認(rèn)為是說明性的而非限定意味。在權(quán)利要求中,放置在括號之間的任何參考符號不得被解釋為限定權(quán)利要求。詞語“包括”不排除在權(quán)利要求中列出的那些元素或步驟之外的其它元素或步驟的存在。此夕卜,本發(fā)明所用的“a”或“an”被定義為一個(gè)或多個(gè)。并且,在權(quán)利要求中的引入性術(shù)語,如“至少一個(gè)”以及“一個(gè)或多個(gè)”,不應(yīng)被解釋為,不定冠詞“a”或“an”所引入的其它權(quán)利要求元素將包括這些引入的權(quán)利要求元素的任何特定權(quán)利要求限定為只包含一個(gè)這樣的元素的發(fā)明,即使同一權(quán)利要求中包括引入性短語“一個(gè)或多個(gè)”或“至少一個(gè)”以及不定冠詞,例如“a”或“an”。使用定冠詞也是如此。除非另有說明,使用術(shù)語如“第一”以及“第二”是用于任意區(qū)分這些術(shù)語描述的元素的。因此,這些術(shù)語不一定表示時(shí)間 或這些元素的其它優(yōu)先次序。某些特定手段在相互不同的權(quán)利要求中被列舉并不表示這些手段的組合不能被用于獲取優(yōu)勢。
權(quán)利要求
1.一種為在隨機(jī)存取存儲(chǔ)器(RAM)元件內(nèi)存儲(chǔ)的數(shù)據(jù)提供數(shù)據(jù)保護(hù)的方法(400),所述方法包括 接收要被寫入存儲(chǔ)器的數(shù)據(jù)(420); 劃分所接收的數(shù)據(jù)為多個(gè)數(shù)據(jù)段(430); 應(yīng)用糾錯(cuò)碼至所述數(shù)據(jù)段以形成碼字段(440); 交織所述碼字段以形成交織的數(shù)據(jù)碼字(450);以及 在單一時(shí)鐘周期內(nèi)將所述交織的數(shù)據(jù)碼字寫入存儲(chǔ)器(460)。
2.根據(jù)權(quán)利要求I所述的方法(400),其中所述方法還包括將所述交織的數(shù)據(jù)碼字的連續(xù)位寫入所述存儲(chǔ)器的一行存儲(chǔ)位單元內(nèi)的每i個(gè)連續(xù)位單元中的一個(gè)(460)。
3.根據(jù)權(quán)利要求2所述的方法(400),其中寫入連續(xù)位包括將所述交織的數(shù)據(jù)碼字的連續(xù)位寫入所述存儲(chǔ)器的一行存儲(chǔ)位單元內(nèi)的每四個(gè)連續(xù)位單元中的一個(gè)(460)。
4.根據(jù)前述權(quán)利要求中任何一項(xiàng)所述的方法(400),其中所述方法還包括應(yīng)用單一位糾錯(cuò)碼至所述數(shù)據(jù)段以形成碼字段(440 )。
5.根據(jù)前述權(quán)利要求中任何一項(xiàng)所述的方法(400),其中所述方法還包括劃分所接收的據(jù)為兩個(gè)數(shù)據(jù)段。
6.一種為在隨機(jī)存取存儲(chǔ)器(RAM)元件內(nèi)存儲(chǔ)的數(shù)據(jù)提供數(shù)據(jù)保護(hù)的方法(500),所述方法包括 在單一時(shí)鐘周期內(nèi)從存儲(chǔ)器讀取數(shù)據(jù)碼字(520); 解交織所讀取的數(shù)據(jù)碼字以獲得多個(gè)碼字段(530); 對解交織的數(shù)據(jù)碼字段執(zhí)行錯(cuò)誤檢測和糾正以檢索數(shù)據(jù)段(540 );以及 組合所檢索的數(shù)據(jù)段以再現(xiàn)用戶數(shù)據(jù)(560 )。
7.根據(jù)權(quán)利要求6所述的方法(500),其中所述方法還包括從所述存儲(chǔ)器的一行存儲(chǔ)位單元內(nèi)的每i個(gè)連續(xù)位單元中的一個(gè)中讀取所述數(shù)據(jù)碼字的連續(xù)位(520)。
8.根據(jù)權(quán)利要求7所述的方法(500),其中讀取連續(xù)位包括從所述存儲(chǔ)器的一行存儲(chǔ)位單元內(nèi)的每四個(gè)連續(xù)位單元中的一個(gè)中讀取所述數(shù)據(jù)碼字的連續(xù)位(520)。
9.根據(jù)權(quán)利要求6至8中任何一項(xiàng)所述的方法(500),其中所述方法還包括對解交織的數(shù)據(jù)碼字段執(zhí)行單一位錯(cuò)誤檢測和糾正以檢索數(shù)據(jù)段(540 )。
10.根據(jù)權(quán)利要求6至9中任何一項(xiàng)所述的方法(500),其中所述方法還包括解交織所讀取的數(shù)據(jù)以獲得兩個(gè)碼字段(530 )。
11.根據(jù)權(quán)利要求6至10中任何一項(xiàng)所述的方法(500),其中所述方法還包括 從存儲(chǔ)器讀取44位數(shù)據(jù)碼字(520); 解交織所述44位數(shù)據(jù)碼字以獲得兩個(gè)22位碼字段(530); 對解交織的數(shù)據(jù)碼字段執(zhí)行錯(cuò)誤檢測和糾正以檢索兩個(gè)16位數(shù)據(jù)段(540);以及 組合所述兩個(gè)16位數(shù)據(jù)段以再現(xiàn)32位數(shù)據(jù)字(560)。
12.—種集成電路器件(300),包括存儲(chǔ)器存取模塊(305),用于將接收的數(shù)據(jù)寫入隨機(jī)存取存儲(chǔ)器(RAM),所述存儲(chǔ)器存取模塊(305)被安排以 接收要被寫入存儲(chǔ)器(330)的數(shù)據(jù)(320); 劃分所接收的數(shù)據(jù)為多個(gè)數(shù)據(jù)段(322、324); 應(yīng)用糾錯(cuò)碼至所述數(shù)據(jù)段(322、324)以形成碼字段(312、317);交織所述碼字段(312、317)以形成交織的數(shù)據(jù)碼字(340);以及 在單一時(shí)鐘周期內(nèi)將所述交織的數(shù)據(jù)碼字寫入存儲(chǔ)器(330)。
13.一種集成電路器件(300),包括存儲(chǔ)器存取模塊(305),用于從隨機(jī)存取存儲(chǔ)器(RAM)讀取數(shù)據(jù),所述存儲(chǔ)器存取模塊(305)被安排以 在單一時(shí)鐘周期內(nèi)從存儲(chǔ)器讀取數(shù)據(jù)碼字(520); 解交織所讀取的數(shù)據(jù)碼字以獲得多個(gè)碼字段(530); 對解交織的數(shù)據(jù)碼字段執(zhí)行錯(cuò)誤檢測和糾正以檢索數(shù)據(jù)段(540 );以及 組合所檢索的數(shù)據(jù)段以再現(xiàn)用戶數(shù)據(jù)(560 )。
全文摘要
一種用于為在隨機(jī)存取存儲(chǔ)器(RAM)元件內(nèi)存儲(chǔ)的數(shù)據(jù)提供數(shù)據(jù)保護(hù)的方法。所述方法包括接收要寫入存儲(chǔ)器的數(shù)據(jù)(420),劃分所接收的數(shù)據(jù)為多個(gè)數(shù)據(jù)段(430),對所述數(shù)據(jù)段應(yīng)用糾錯(cuò)編碼以形成碼字段(440),交織所述碼字段以形成交織數(shù)據(jù)碼字(450),以及在單一時(shí)鐘周期內(nèi)將所述交織數(shù)據(jù)碼字寫入存儲(chǔ)器(460)。
文檔編號G06F21/79GK102939590SQ201080067368
公開日2013年2月20日 申請日期2010年6月11日 優(yōu)先權(quán)日2010年6月11日
發(fā)明者亨利·克洛滕斯 申請人:飛思卡爾半導(dǎo)體公司