一種隨機存儲器的擴展方法及裝置制造方法
【專利摘要】本發(fā)明提供一種隨機存儲器的擴展裝置,包括帶有ECC校驗位接口的隨機存儲器;兩個ECC產(chǎn)生和控制器,用來產(chǎn)生ECC校驗位和糾正發(fā)生錯誤的比特;ECC讀處理模塊,用來和主設(shè)備進行數(shù)據(jù)交互傳遞,并可將數(shù)據(jù)分為高比特部分和低比特部分,并分別與兩個ECC產(chǎn)生和控制器進行數(shù)據(jù)交互傳遞;ECC寫處理模塊,用來同時與兩個隨機存儲器、ECC產(chǎn)生和控制器進行數(shù)據(jù)交互,將兩個ECC產(chǎn)生和控制器傳遞過來的數(shù)據(jù)和校驗位進行處理;還可將從隨機存儲器得到的數(shù)據(jù)發(fā)送到ECC讀處理模塊。本發(fā)明的積極效果是:可實現(xiàn)將兩個隨機存儲器擴展為具有雙倍數(shù)據(jù)位寬和具有雙倍檢錯,糾錯能力的隨機存儲器,提高了開發(fā)設(shè)計的速度。
【專利說明】一種隨機存儲器的擴展方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機隨機存儲器【技術(shù)領(lǐng)域】,尤其是涉及一種隨機存儲器的擴展方法及裝置。
【背景技術(shù)】
[0002]隨著處理器技術(shù)和現(xiàn)代工藝的進步,處理器的運算速度越來越快,性能越來越強,同時處理器對隨機存儲器的容量和準確度也有了越來越高的要求。但是,新的技術(shù)和工藝的發(fā)展往往需要很長的周期,這樣,僅僅依靠工藝和技術(shù)的發(fā)展來滿足處理器對隨機存儲器的要求是遠遠不夠的。因此,通過盡可能的復用原有IP,擴展其容量和ECC的功能可以加快開發(fā)和設(shè)計的速度。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的問題是提供一種隨機存儲器的擴展方法及裝置。
[0004]為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案是:
[0005]一種隨機存儲器的擴展方法,
[0006]當向隨機存儲器寫數(shù)據(jù)時:
[0007]將接收的主設(shè)備的數(shù)據(jù)分成高位部分和低位部分,
[0008]將高位部分和低位部分分別進行處理產(chǎn)生新的ECC校驗位;
[0009]將數(shù)據(jù)和得到的新的ECC校驗位進行綜合處理,形成可糾正雙倍數(shù)據(jù)比特和檢測雙倍比特ECC校驗位的數(shù)據(jù),并將數(shù)據(jù)分為高比特部分和低比特部分,并分別寫入帶有ECC校驗位的兩個隨機存儲器;
[0010]當向隨機存儲器寫數(shù)據(jù)時:
[0011]同時從兩個隨機存儲器中讀取對應(yīng)地址的數(shù)據(jù)和ECC校驗比特,后恢復出按上述寫操作過程中的高比特部分和低比特部分;
[0012]將從兩個隨機存儲器直接傳遞的數(shù)據(jù)和校驗位,與上步恢復后得到的數(shù)據(jù)和校驗位進行比較:
[0013]當讀回的數(shù)據(jù)沒有錯誤或恢復了原來正確數(shù)據(jù)的,則將讀回的數(shù)據(jù)直接返回給主設(shè)備;
[0014]當前數(shù)據(jù)發(fā)生了一個不可修復的錯誤,此時將標記錯誤出現(xiàn),并通知主設(shè)備此時發(fā)生了一個不可恢復的隨機存儲器的錯誤;
[0015]當高比特部分和低比特部分中只有一個發(fā)生錯誤,則可通過從兩個隨機存儲器直接傳遞的數(shù)據(jù)和校驗位,恢復高比特部分和低比特部分的數(shù)據(jù)正確。
[0016]一種隨機存儲器的擴展裝置,包括:
[0017]隨機存儲器,為帶有ECC校驗位接口的隨機存儲器,用來存儲主設(shè)備發(fā)送過來的數(shù)據(jù)和ECC比特位;
[0018]ECC擴展裝置,用來將兩個隨機存儲器通過較少的額外控制邏輯擴展為具有雙倍數(shù)據(jù)位寬和具有雙倍檢錯、糾錯能力的隨機存儲器,包括兩個ECC產(chǎn)生和控制器、ECC寫處理模塊和ECC讀處理模塊:
[0019]其中所述兩個ECC產(chǎn)生和控制器,用來產(chǎn)生ECC校驗位和糾正發(fā)生錯誤的比特,并可以提示產(chǎn)生的不可糾正的錯誤;
[0020]其中所述ECC讀處理模塊,用來和主設(shè)備進行數(shù)據(jù)交互傳遞,并可將數(shù)據(jù)分為高比特部分和低比特部分,并分別與兩個ECC產(chǎn)生和控制器進行數(shù)據(jù)交互傳遞;
[0021]所述ECC寫處理模塊,用來同時與兩個隨機存儲器、ECC產(chǎn)生和控制器進行數(shù)據(jù)交互,將兩個ECC產(chǎn)生和控制器傳遞過來的數(shù)據(jù)和校驗位進行處理;還可將從隨機存儲器得到的數(shù)據(jù)發(fā)送到ECC讀處理模塊。
[0022]本發(fā)明具有的優(yōu)點和積極效果是:
[0023]本發(fā)明方法和裝置均可實現(xiàn)將兩個隨機存儲器擴展為具有雙倍數(shù)據(jù)位寬和具有雙倍檢錯,糾錯能力的隨機存儲器;這樣可以在不改變原來設(shè)計的條件下擴展原來隨機存儲器的位寬,極大的復用了原有的IP,提高了開發(fā)設(shè)計的速度。
【專利附圖】
【附圖說明】
[0024]圖1是本發(fā)明一種隨機存儲器的擴展方法及裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0025]提出了一種可以很好的復用較少容量和較少位數(shù)的ECC的隨機存儲器,在較少的額外開銷的前提下,擴展其原有的數(shù)據(jù)位寬和其ECC校驗碼的位數(shù)。下面結(jié)合附圖對本發(fā)明的具體實施例做詳細說明。
[0026]本發(fā)明一種隨機存儲器的擴展方法,包含:
[0027]當向隨機存儲器寫數(shù)據(jù)時:
[0028]將接收的主設(shè)備的數(shù)據(jù)分成高位部分和低位部分,
[0029]將高位部分和低位部分分別進行處理產(chǎn)生新的ECC校驗位;
[0030]將數(shù)據(jù)和得到的新的ECC校驗位進行綜合處理,形成可糾正雙倍數(shù)據(jù)比特和檢測雙倍比特ECC校驗位的數(shù)據(jù),并將數(shù)據(jù)分為高比特部分和低比特部分,并分別寫入帶有ECC校驗位的兩個隨機存儲器;
[0031]當向隨機存儲器寫數(shù)據(jù)時:
[0032]同時從兩個隨機存儲器中讀取對應(yīng)地址的數(shù)據(jù)和ECC校驗比特,后恢復出按上述寫操作過程中的高比特部分和低比特部分;
[0033]將從兩個隨機存儲器直接傳遞的數(shù)據(jù)和校驗位,與上步恢復后得到的數(shù)據(jù)和校驗位進行比較:
[0034]當讀回的數(shù)據(jù)沒有錯誤或恢復了原來正確數(shù)據(jù)的,則將讀回的數(shù)據(jù)直接返回給主設(shè)備;
[0035]當前數(shù)據(jù)發(fā)生了一個不可修復的錯誤,此時將標記錯誤出現(xiàn),并通知主設(shè)備此時發(fā)生了一個不可恢復的隨機存儲器的錯誤;
[0036]當高比特部分和低比特部分中只有一個發(fā)生錯誤,則可通過從兩個隨機存儲器直接傳遞的數(shù)據(jù)和校驗位,恢復高比特部分和低比特部分的數(shù)據(jù)正確
[0037]—種隨機存儲器的擴展裝置,如圖1所示包括
[0038]隨機存儲器,為帶有ECC校驗位接口的隨機存儲器,用來存儲主設(shè)備發(fā)送過來的數(shù)據(jù)和ECC比特位;
[0039]ECC擴展裝置,用來將兩個隨機存儲器通過較少的額外控制邏輯擴展為具有雙倍數(shù)據(jù)位寬和具有雙倍檢錯、糾錯能力的隨機存儲器,包括兩個ECC產(chǎn)生和控制器、ECC寫處理模塊和ECC讀處理模塊:
[0040]其中所述兩個ECC產(chǎn)生和控制器,用來產(chǎn)生ECC校驗位和糾正發(fā)生錯誤的比特,并可以提示產(chǎn)生的不可糾正的錯誤;
[0041]其中所述ECC讀處理模塊,用來和主設(shè)備進行數(shù)據(jù)交互傳遞,并可將數(shù)據(jù)分為高[N-1:0]比特和低[N-1:0]比特分別與兩個ECC產(chǎn)生和控制器進行數(shù)據(jù)交互傳遞;
[0042]所述ECC寫處理模塊,用來同時與兩個隨機存儲器、ECC產(chǎn)生和控制器進行數(shù)據(jù)交互,將兩個ECC產(chǎn)生和控制器傳遞過來的數(shù)據(jù)和校驗位進行處理;還可將從隨機存儲器得到的數(shù)據(jù)發(fā)送到ECC讀處理模塊。
[0043]本發(fā)明隨機存儲器的擴展裝置,當主設(shè)備發(fā)起一次對隨機存儲器的寬度為[2N-1:0]的寫操作時,處理過程如下:
[0044]I)ECC讀處理模塊接收來自主設(shè)備的數(shù)據(jù)位寬為[2N_1:0]的數(shù)據(jù),同時檢測到此次操作為一次寫操作:如此次為半字或者字節(jié)寫,則先讀出該地址原有數(shù)據(jù)和ECC校驗位,然后再將所要寫入的位置的數(shù)據(jù)用新數(shù)據(jù)替換;若為字操作,則不作任何處理;然后將數(shù)據(jù)分為高[N-1:0]比特和低[N-1:0]比特分別傳遞給兩個ECC產(chǎn)生和控制器;
[0045]2)ECC產(chǎn)生和控制器根據(jù)ECC讀處理模塊傳遞下來的數(shù)據(jù)產(chǎn)生新的ECC校驗位比特,并將其結(jié)果傳遞給ECC寫處理模塊;
[0046]3) ECC寫處理模塊綜合處理來自兩個ECC產(chǎn)生和控制器傳遞過來的數(shù)據(jù)和ECC校驗位,同時檢測到此次操作為寫操作,然后經(jīng)過ECC檢錯和糾錯處理之后形成可糾正2m比特和檢測2p比特的ECC校驗數(shù)據(jù),并將這些數(shù)據(jù)分為高[Ν+η-1:0]比特和低[Ν+η_1:0]比特分別寫入帶有ECC校驗位的兩個隨機存儲器。
[0047]本發(fā)明隨機存儲器的擴展裝置,當主設(shè)備發(fā)起一次對隨機存儲器的寬度為[2N-1:0]的讀操作時,處理過程如下:
[0048]DECC寫處理模塊從帶有ECC校驗位接口的兩個隨機存儲器中讀取對應(yīng)地址的數(shù)據(jù)和ECC校驗比特,同時檢測到此次操作為讀操作:ECC寫處理模塊則根據(jù)讀回的2n-l比特ECC校驗碼,恢復出原來在ECC產(chǎn)生和控制器規(guī)則下的高[η-1]比特ECC校驗碼和低[η-1]比特ECC校驗碼,并將其分別送回兩個各自的ECC產(chǎn)生和控制器;同時,將讀回的可糾正2m比特和檢測2p (P為m的2倍)比特的2n_l比特ECC校驗數(shù)據(jù)送回給ECC讀處理模塊;
[0049]2)兩個ECC產(chǎn)生和控制器分別根據(jù)ECC寫處理模塊傳遞過來的數(shù)據(jù)判斷當前數(shù)據(jù)是否正確,并將處理結(jié)果及數(shù)據(jù)傳遞給ECC讀處理模塊;
[0050]3)ECC讀處理模塊檢測到此次操作為讀操作,同時接收來自ECC產(chǎn)生和控制器的數(shù)據(jù)及數(shù)據(jù)處理結(jié)果,和來自ECC寫處理模塊的2n-l比特的ECC校驗碼;ECC讀處理模塊綜合處理ECC產(chǎn)生和控制器傳遞過來的結(jié)果:當讀回的數(shù)據(jù)沒有錯誤或經(jīng)過ECC產(chǎn)生和控制器后已經(jīng)恢復了原來正確數(shù)據(jù)的,ECC讀處理模塊則將讀回的數(shù)據(jù)直接返回給主設(shè)備;若兩個ECC產(chǎn)生和控制器返回的結(jié)果都含有錯誤標志,則表明當前數(shù)據(jù)發(fā)生了一個不可修復的錯誤,此時ECC讀處理模塊會將錯誤標志置高,并通知主設(shè)備此時發(fā)生了一個不可恢復的隨機存儲器的錯誤;如果兩個ECC產(chǎn)生和控制器返回的結(jié)果中只有一個含有錯誤標志,那么則說明這個ECC產(chǎn)生和控制器所處理的數(shù)據(jù)產(chǎn)生了一個P位的錯誤,這時,就可以利用從ECC寫處理模塊中傳遞過來的2n-l位的ECC校驗碼來修正發(fā)生錯誤的P比特數(shù)據(jù)了。
[0051]從上述過程可以看出,經(jīng)過本發(fā)明的ECC擴展裝置之后,原本可修正m比特錯誤、檢測P比特錯誤的N位寬的隨機存儲器,被擴展成了 2N-1位寬的、可修正最多3m比特錯誤(其中2m位在一個ECC產(chǎn)生和控制器的范圍,而另m比特在另一個ECC產(chǎn)生和控制器的范圍)、檢測2p比特錯誤的帶有ECC功能的隨機存儲器。這樣就達到了盡可能的利用原有IP,擴展隨機存儲器的容量、位寬和ECC的目的,可極大地加快芯片的開發(fā)和設(shè)計效率。
[0052]以上對本發(fā)明的實施例進行了詳細說明,但所述內(nèi)容僅為本發(fā)明的較佳實施例,不能被認為用于限定本發(fā)明的實施范圍。凡依本發(fā)明申請范圍所作的均等變化與改進等,均應(yīng)仍歸屬于本發(fā)明的專利涵蓋范圍之內(nèi)。
【權(quán)利要求】
1.一種隨機存儲器的擴展方法,其特征在于: 當向隨機存儲器寫數(shù)據(jù)時: 將接收的主設(shè)備的數(shù)據(jù)分成高位部分和低位部分, 將高位部分和低位部分分別進行處理產(chǎn)生新的ECC校驗位; 將數(shù)據(jù)和得到的新的ECC校驗位進行綜合處理,形成可糾正雙倍數(shù)據(jù)比特和檢測雙倍比特ECC校驗位的數(shù)據(jù),并將數(shù)據(jù)分為高比特部分和低比特部分,并分別寫入帶有ECC校驗位的兩個隨機存儲器; 當向隨機存儲器寫數(shù)據(jù)時: 同時從兩個隨機存儲器中讀取對應(yīng)地址的數(shù)據(jù)和ECC校驗比特,后恢復出按上述寫操作過程中的高比特部分和低比特部分; 將從兩個隨機存儲器直接傳遞的數(shù)據(jù)和校驗位,與上步恢復后得到的數(shù)據(jù)和校驗位進行比較: 當讀回的數(shù)據(jù)沒有錯誤或恢復了原來正確數(shù)據(jù)的,則將讀回的數(shù)據(jù)直接返回給主設(shè)備; 當前數(shù)據(jù)發(fā)生了一個不可修復的錯誤,此時將標記錯誤出現(xiàn),并通知主設(shè)備此時發(fā)生了一個不可恢復的隨機存儲器的錯誤; 當高比特部分和低比特部分中只有一個發(fā)生錯誤,則可通過從兩個隨機存儲器直接傳遞的數(shù)據(jù)和校驗位,恢復高比特部分和低比特部分的數(shù)據(jù)正確。
2.一種隨機存儲器的擴展裝置,其特征在于包括: 隨機存儲器,為帶有ECC校驗位接口的隨機存儲器,用來存儲主設(shè)備發(fā)送過來的數(shù)據(jù)和ECC比特位; ECC擴展裝置,用來將兩個隨機存儲器通過較少的額外控制邏輯擴展為具有雙倍數(shù)據(jù)位寬和具有雙倍檢錯、糾錯能力的隨機存儲器,包括兩個ECC產(chǎn)生和控制器、ECC寫處理模塊和ECC讀處理模塊: 其中所述兩個ECC產(chǎn)生和控制器,用來產(chǎn)生ECC校驗位和糾正發(fā)生錯誤的比特,并可以提示產(chǎn)生的不可糾正的錯誤; 其中所述ECC讀處理模塊,用來和主設(shè)備進行數(shù)據(jù)交互傳遞,并可將數(shù)據(jù)分為高比特部分和低比特部分,并分別與兩個ECC產(chǎn)生和控制器進行數(shù)據(jù)交互傳遞; 所述ECC寫處理模塊,用來同時與兩個隨機存儲器、ECC產(chǎn)生和控制器進行數(shù)據(jù)交互,將兩個ECC產(chǎn)生和控制器傳遞過來的數(shù)據(jù)和校驗位進行處理;還可將從隨機存儲器得到的數(shù)據(jù)發(fā)送到ECC讀處理模塊。
【文檔編號】G06F3/06GK104317525SQ201410490508
【公開日】2015年1月28日 申請日期:2014年9月23日 優(yōu)先權(quán)日:2014年9月23日
【發(fā)明者】蘭光洋, 王忠海, 肖佐楠, 鄭茳 申請人:天津國芯科技有限公司