專利名稱:存儲器尋址錯誤檢測系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及電子系統(tǒng),并且特別涉及在電子系統(tǒng)中檢測存儲器尋址錯誤。
背景技術(shù):
結(jié)合存儲器設(shè)備訪問操作的錯誤檢測,傳統(tǒng)上受限于數(shù)據(jù)錯誤的檢查。然而,在作為通信設(shè)備的這種電子系統(tǒng)中追求最大化系統(tǒng)可靠性和可用性的努力中,例如關(guān)于所謂的“5-9s”的運營商(carrier)級目標,檢測所有類型的電子系統(tǒng)錯誤的需要變得更加重要,其中包括尋址錯誤。
防止存儲器尋址錯誤的已知技術(shù)的一個例子,包括在存儲器寫地址上計算地址保護比特,并且在每個寫操作上將所述比特存儲到存儲器中。在每個讀操作上,在存儲器讀地址上計算類似的地址保護比特,并然后將其與存儲在存儲器中的那些比特進行比較。如果這些地址保護比特不匹配,則產(chǎn)生錯誤告警。這種特定解決方案的顯著缺點是需要存儲器中的資源用來存儲地址保護比特。
發(fā)明內(nèi)容
考慮到前述內(nèi)容,需要用于防止電子系統(tǒng)中的存儲器尋址錯誤、檢測所述存儲器尋址錯誤或二者的有效技術(shù)??赡芴貏e希望存儲器尋址錯誤保護或檢測,以增強通信設(shè)備的可靠性,例如分組交換或路由器,并且更通常地,計算機和其它類型的電子系統(tǒng)和設(shè)備。
根據(jù)本發(fā)明的一個方面,提供了一種存儲器尋址錯誤保護系統(tǒng),該系統(tǒng)包括用于接收要被存儲在存儲器中的數(shù)據(jù)的數(shù)據(jù)輸入端、用于接收其中存儲數(shù)據(jù)的存儲器中存儲位置的地址的地址輸入端,以及耦合到所述數(shù)據(jù)輸入端和地址輸入端的錯誤保護模塊。所述錯誤保護模塊基于所述地址來計算地址保護信息、基于所述地址保護信息和數(shù)據(jù)二者來計算組合的地址與數(shù)據(jù)保護信息,并且輸出所述數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息以存儲在存儲位置中。
還提供了一種存儲器尋址錯誤保護方法,該方法包括以下操作接收要被存儲在存儲器中的數(shù)據(jù)和其中存儲數(shù)據(jù)的存儲器中存儲位置的地址、基于所述地址來計算地址保護信息、基于所述地址保護信息和數(shù)據(jù)二者來計算組合的地址與數(shù)據(jù)保護信息,以及輸出所述數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息以存儲在存儲位置中。
根據(jù)本發(fā)明另一個方面所提供的存儲器尋址錯誤檢測系統(tǒng),包括用于在尋址錯誤檢測系統(tǒng)和存儲器之間傳送信息的存儲器接口、用于接收從其讀取數(shù)據(jù)的存儲器中存儲位置的地址的地址輸入端,以及耦合到所述地址輸入端和存儲器接口的錯誤保護模塊。所述錯誤保護模塊通過所述地址輸入端來接收從其讀取數(shù)據(jù)的存儲器中存儲位置的地址。所述錯誤保護模塊還通過存儲器接口來接收檢索自存儲器中讀地址上的存儲位置的數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息。所述組合的地址與數(shù)據(jù)保護信息是基于所述數(shù)據(jù)和原始地址保護信息而被計算的,并且所述原始地址保護信息是基于其中寫入數(shù)據(jù)的存儲器中存儲位置的寫地址而被計算的。所述錯誤保護模塊還基于從其讀取數(shù)據(jù)的地址來重新計算地址保護信息,并且利用被接收數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息,基于所述被重新計算的地址保護信息是否匹配于原始地址保護信息來確定是否發(fā)生了尋址錯誤。
相關(guān)的存儲器尋址錯誤檢測方法包括接收從其讀取數(shù)據(jù)的存儲器中存儲位置的地址;接收檢索自存儲器中讀地址上的存儲位置的數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息,所述組合的地址與數(shù)據(jù)保護信息是基于所述數(shù)據(jù)和原始地址保護信息而被計算的,并且所述原始地址保護信息是基于其中寫入數(shù)據(jù)的存儲器中存儲位置的寫地址而被計算的;基于從其讀取數(shù)據(jù)的地址來重新計算地址保護信息;并且利用所述被接收數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息,基于所述被重新計算的地址保護信息是否匹配于所述原始地址保護信息來確定是否發(fā)生了尋址錯誤。
根據(jù)本發(fā)明的又一個方面,還提供了一種數(shù)據(jù)結(jié)構(gòu)。存儲在具有地址的存儲位置上的數(shù)據(jù)結(jié)構(gòu),包括存儲數(shù)據(jù)的數(shù)據(jù)字段以及存儲組合的地址與數(shù)據(jù)保護信息的保護信息字段。如上所述,基于數(shù)據(jù)和原始地址保護信息來計算所述組合的地址與數(shù)據(jù)保護信息,并且基于其中寫入數(shù)據(jù)的介質(zhì)中存儲位置的寫地址來計算原始地址保護信息。通過確定針對讀地址所產(chǎn)生的地址保護信息是否匹配于所述原始地址保護信息,所述保護信息字段實現(xiàn)了尋址錯誤的檢測。
地址保護信息可以是地址本身,或利用線性塊代碼來被計算。在某些實施例中,利用不同的線性塊代碼來計算所述組合的地址與數(shù)據(jù)保護信息。
通過檢查指定說明性實施例的以下描述,本發(fā)明的其它方面和特征對于本領(lǐng)域的技術(shù)人員而言將變得顯而易見。
現(xiàn)在將參考附圖詳細描述本發(fā)明實施例的例子,其中圖1是實現(xiàn)傳統(tǒng)數(shù)據(jù)保護技術(shù)的電子設(shè)備的框圖;圖2是實現(xiàn)本發(fā)明實施例的說明性示例電子設(shè)備的框圖;圖3是根據(jù)本發(fā)明實施例的錯誤保護模塊的框圖;圖4和5是根據(jù)本發(fā)明其它實施例的方法的流程圖;以及圖6是根據(jù)本發(fā)明實施例的數(shù)據(jù)結(jié)構(gòu)的框圖。
具體實施例方式
如上面簡要描述的,結(jié)合存儲器設(shè)備的錯誤檢測主要涉及數(shù)據(jù)錯誤的檢查。圖1是實現(xiàn)傳統(tǒng)數(shù)據(jù)保護技術(shù)的電子設(shè)備的框圖。電子設(shè)備10包括總線驅(qū)動器和接收器16、數(shù)據(jù)保護模塊18、一個或多個錯誤處理器19,以及通常指定的其它部件或功能14。例如通過電子系統(tǒng)中的總線將電子設(shè)備10連接到存儲器12。本領(lǐng)域的技術(shù)人員將熟悉圖1所示的部件和可以包括所述部件以及可能地包括其它部件的各種電子系統(tǒng)和設(shè)備。
說明性地是專用集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA)的電子設(shè)備10,利用電子設(shè)備10和存儲器12之間的各個連接上所承載的地址、控制和數(shù)據(jù)信號來與存儲器12連接。包括例如由處理器執(zhí)行的軟件功能的各種部件或功能可以訪問存儲器12,并且在圖1的14上被一般示出。
數(shù)據(jù)信號承載數(shù)據(jù)字(data word),該數(shù)據(jù)字要被存儲在存儲器12中或從存儲器12被檢索。這些數(shù)據(jù)字中的每個都包括數(shù)據(jù)比特和一個或多個數(shù)據(jù)保護比特,例如,在存儲器12存儲36比特數(shù)據(jù)字的情況下,數(shù)據(jù)字可以包括35比特的數(shù)據(jù)和一個奇偶校驗比特,或29比特的數(shù)據(jù)和7個糾錯碼(ECC)比特。地址信號為存儲器訪問操作提供了讀和寫地址,然而控制信號在任何時候都實現(xiàn)讀操作或?qū)懖僮鳌?br>
在存儲器寫操作期間,在數(shù)據(jù)字在16上被供給總線驅(qū)動器之前,通過電子設(shè)備10中的保護功能而從數(shù)據(jù)比特產(chǎn)生了用于每個數(shù)據(jù)字的數(shù)據(jù)保護比特,其中所述保護功能由所述數(shù)據(jù)保護模塊18來表示。所述總線驅(qū)動器然后提供數(shù)據(jù)字給存儲器12。
同樣,總線接收器在存儲器讀操作期間接收數(shù)據(jù)信號并且將所接收的數(shù)據(jù)字供給數(shù)據(jù)保護模塊18。數(shù)據(jù)保護模塊18使用數(shù)據(jù)保護比特,以確定在存儲數(shù)據(jù)字到存儲器12并從存儲器12檢索該數(shù)據(jù)字的過程期間,是否發(fā)生了影響數(shù)據(jù)字的數(shù)據(jù)比特的錯誤,并且該數(shù)據(jù)保護模塊可以在19向錯誤處理器19提供錯誤信號或其它數(shù)據(jù)錯誤指示。如果采用合適的ECC,則數(shù)據(jù)保護模塊18也能夠校正被檢索數(shù)據(jù)中的錯誤。
圖1中的系統(tǒng)提供了僅針對數(shù)據(jù)的錯誤保護。即使可以檢測并且可能地校正從存儲器12讀取的數(shù)據(jù)中的錯誤,電子設(shè)備10也不能確保被讀取數(shù)據(jù)從存儲器12中的預(yù)期地址上被實際讀取。數(shù)據(jù)保護模塊18不能檢測存儲器尋址錯誤。
根據(jù)一個傳統(tǒng)尋址錯誤檢測方案,通過計算并且存儲存儲器中的地址保護比特,數(shù)據(jù)保護技術(shù)被有效地擴展到地址。然而,這種類型的保護對于地址保護比特需要額外的存儲器空間,所述地址保護比特是針對特定存儲器地址而被產(chǎn)生的并且和數(shù)據(jù)與數(shù)據(jù)保護比特一起被存儲在存儲器中的所述地址上。
本發(fā)明的實施例提供了用于防止并檢測存儲器尋址錯誤的改進的技術(shù)。通過在計算數(shù)據(jù)保護信息時包括具有數(shù)據(jù)的地址保護信息,克服了上述額外存儲的問題。因此,地址保護被嵌入數(shù)據(jù)保護中,并且因此在已經(jīng)用于數(shù)據(jù)保護的存儲上不需要額外的存儲,其中假設(shè)具有數(shù)據(jù)的地址保護信息的添加無需使用更多的數(shù)據(jù)保護比特。當僅采用數(shù)據(jù)錯誤檢測(而不進行校正)時,通常是所述情況。此外,當采用數(shù)據(jù)糾錯時,通常是這種情況,這是由于糾錯碼通常能夠校正比存儲數(shù)據(jù)所使用的更大的數(shù)據(jù)字。
圖2是實現(xiàn)本發(fā)明實施例的說明性示例電子設(shè)備20的框圖。電子設(shè)備20包括存儲器接口26,、錯誤保護模塊28、一個或多個錯誤處理器29,以及訪問存儲器22的其它部件或功能24。
存儲器22、其它部件或功能24以及錯誤處理器29可以與電子設(shè)備10中類似標記的部件基本上相同。在一些實施例中,存儲器接口26是包括如上所述的總線驅(qū)動器和接收器的總線接口,盡管也設(shè)想了用于在尋址錯誤保護系統(tǒng)27和存儲器22之間傳送信息的其它類型的存儲器接口。尋址錯誤保護系統(tǒng)27提供了除數(shù)據(jù)保護之外的存儲器尋址錯誤保護,如以下將進一步詳細描述的。
電子設(shè)備10、20之間一個主要的不同之處在于到錯誤保護模塊28的地址的輸入,如在25所示。因此,在電子設(shè)備20中,尋址錯誤保護系統(tǒng)27包括圖2的25所代表的地址輸入端,用于接收其中存儲數(shù)據(jù)的存儲器22中存儲位置的地址。也在數(shù)據(jù)輸入端上從其它部件或功能24接收要被存儲在存儲器位置上的數(shù)據(jù),如圖2中的數(shù)據(jù)線所示。針對讀操作,在地址輸入端25上接收讀地址,并且通過數(shù)據(jù)線至少將從存儲器22讀取的數(shù)據(jù)輸出給發(fā)起讀操作的部件或功能。
根據(jù)本發(fā)明的實施例,例如,根據(jù)電子設(shè)備20中所支持的功能,錯誤保護模塊28涉及寫操作、讀操作或二者。盡管許多電子設(shè)備執(zhí)行寫和讀操作二者,然而電子設(shè)備也可以僅執(zhí)行所述功能之一。電子設(shè)備也可以訪問由不同設(shè)備寫入存儲器中的數(shù)據(jù)。因此,應(yīng)當理解到,尋址錯誤保護可以針對寫和讀操作而基本上獨立地被實現(xiàn),這將在下面被分別描述。
當存儲器寫操作由部件或功能24發(fā)起時,錯誤保護模塊28接收存儲器地址和數(shù)據(jù),并且基于所述地址來計算地址保護信息。地址保護信息可以包括一個或多個地址保護比特,或在一些實施例中包括地址本身。因而連同數(shù)據(jù)一起包括了地址保護信息,用于計算數(shù)據(jù)保護信息。由于數(shù)據(jù)保護信息在所述情況中是基于要被寫入存儲器22的存儲位置的數(shù)據(jù)以及利用存儲位置地址而被計算的地址保護信息的,因此所述數(shù)據(jù)保護信息此后主要被稱作組合的地址與數(shù)據(jù)保護信息。
所述數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息由此構(gòu)成地址保護的數(shù)據(jù)字,所述地址保護的數(shù)據(jù)字由錯誤保護模塊28通過存儲器接口26來被輸出,并且以給定的存儲器地址被寫入存儲器22中。
所述地址保護信息和組合的地址與數(shù)據(jù)保護信息的計算,可以實際上使用任何錯誤檢測代碼。也可以用于實現(xiàn)這里公開的技術(shù)的糾錯碼,提供了數(shù)據(jù)糾錯和地址檢錯的附加優(yōu)點。在一個實施例中,各個線性塊代碼被用來計算地址保護信息和組合的地址與數(shù)據(jù)保護信息。應(yīng)當認識到,可以使用其它類型的代碼,并且可以使用相同代碼來計算地址保護信息和組合的地址與數(shù)據(jù)保護信息二者。
如上所述,僅數(shù)據(jù)和組合的數(shù)據(jù)與地址保護信息被存儲到存儲器22中,這因而避免了與許多傳統(tǒng)地址保護技術(shù)相關(guān)聯(lián)的附加存儲器空間需求。
現(xiàn)在轉(zhuǎn)向讀操作,當電子設(shè)備20的部件或功能24發(fā)起讀操作以從存儲器22中的存儲位置檢索信息時,從其讀取數(shù)據(jù)的地址在地址輸入端25上被傳送給錯誤保護模塊28。通過存儲器接口26,錯誤保護模塊28也從存儲器22中讀地址的存儲位置上接收數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息。接收自存儲器22的組合的地址與數(shù)據(jù)保護信息將基于數(shù)據(jù)和地址保護信息、基本上如上所述的那樣被計算,并且所述地址保護信息將基于要向其寫入數(shù)據(jù)的寫地址來被計算。
在讀操作或前述的寫操作期間缺乏尋址錯誤的情況下,所述讀地址將是地址輸入端25上所接收的預(yù)期的讀地址,并且被接收數(shù)據(jù)將是在預(yù)期讀地址上被正確寫入的數(shù)據(jù)。
為了檢查存儲器尋址錯誤,錯誤保護模塊28針對預(yù)期的讀地址重新計算地址保護信息。錯誤保護系統(tǒng)28將所述被重新計算的地址保護信息與讀數(shù)據(jù)以及組合的地址與數(shù)據(jù)保護信息進行合并,并且確定是否檢測到任何錯誤。如果沒有,則所述被重新計算的地址保護信息與原始地址保護信息相匹配,所述原始地址保護信息是基于要向其寫入數(shù)據(jù)的寫地址而被計算的。
如果檢測到錯誤,并且采用糾錯碼(ECC),則錯誤的位置可以分離于數(shù)據(jù)或地址保護信息中。如果錯誤在數(shù)據(jù)中,則可以校正該錯誤。如果錯誤在地址保護信息中,則可以確定發(fā)生了尋址錯誤。
當檢測到存儲器尋址錯誤時,錯誤保護模塊28可以提供錯誤指示給錯誤處理器29。也可以提供任何被檢測數(shù)據(jù)錯誤的指示。
盡管圖2中作為分離部件而被示出,然而錯誤處理器29的地址和/或數(shù)據(jù)錯誤處理功能可以被包括在訪問存儲器22的部件或功能24中。許多不同的錯誤處理操作對于本領(lǐng)域的技術(shù)人員是顯而易見的,例如包括放棄讀取存儲器內(nèi)容以及再試存儲器讀操作。
可以在使用ECC來計算組合的地址與數(shù)據(jù)保護信息的情況下而被糾錯的被恢復(fù)數(shù)據(jù),也可以由錯誤保護系統(tǒng)28輸出給發(fā)起讀操作的部件或功能24。在一個實施例中,讀數(shù)據(jù)僅在沒有檢測到尋址錯誤的情況下而被輸出。
圖3是根據(jù)本發(fā)明實施例的錯誤保護模塊的框圖。錯誤保護模塊30實現(xiàn)了上面的例子,在該例子中,使用奇偶校驗來產(chǎn)生地址保護信息并且使用ECC來產(chǎn)生組合的地址與數(shù)據(jù)保護信息。然而如上面指出的,本發(fā)明決不限于所述類型的保護信息,或限于圖3所示的數(shù)據(jù)和保護信息比特的特定數(shù)量。
錯誤保護模塊30包括奇偶校驗產(chǎn)生器32、ECC產(chǎn)生器36和錯誤檢測器/校正器38。所述部件的各種基于硬件和軟件的實現(xiàn)對于本領(lǐng)域的技術(shù)人員是顯而易見的。
在操作中,ECC產(chǎn)生器36和奇偶校驗產(chǎn)生器32分別接收向其寫入數(shù)據(jù)的存儲器位置的29比特數(shù)據(jù)和N比特地址。奇偶校驗產(chǎn)生器32計算作為地址保護信息的地址奇偶校驗比特,并且將其輸出給ECC產(chǎn)生器36。地址奇偶校驗比特被包括于由ECC產(chǎn)生器36所進行的組合的數(shù)據(jù)與地址保護ECC比特的計算中。從ECC產(chǎn)生器36輸出了在圖3的例子中包括29個數(shù)據(jù)比特和7個ECC比特的數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息,以存儲在與被接收的N比特地址相關(guān)聯(lián)的存儲器位置上。
根據(jù)一個實施例,用于計算組合的地址與數(shù)據(jù)保護信息的特定ECC,可以在直到63個比特中校正單個比特錯誤并且檢測兩個比特錯誤。這種額外的錯誤校正容量可以作為用在存儲器中的數(shù)據(jù)字的大小的結(jié)果而出現(xiàn)。例如,6個ECC比特可以具有保護僅直到31比特長度的數(shù)據(jù)字的容量,包括25個數(shù)據(jù)比特和6個ECC比特。在存儲器存儲36比特數(shù)據(jù)字的情況下,需要7個ECC比特。在僅針對數(shù)據(jù)的保護的情況下,7個ECC比特連同29個數(shù)據(jù)比特一起被存儲在存儲器中。然而,7個ECC比特可以保護直到63個比特,以便通過根據(jù)在所述例子中具有63比特長度的信息塊來計算ECC比特,可以提供基本上相同級別的數(shù)據(jù)錯誤保護。因此,與針對每個36比特數(shù)據(jù)字而被存儲在存儲器中的僅29比特實際數(shù)據(jù)一起,存在足夠的容量以在組合的地址與數(shù)據(jù)保護ECC的計算中包括直到27比特的地址保護信息。
當執(zhí)行讀操作時,錯誤檢測器/校正器38在讀信息的至少一部分中檢測錯誤并且在所述情況下校正錯誤,所述信息在圖3中包括29個數(shù)據(jù)比特和7個ECC比特。如上面所指出的,檢測地址保護信息中的錯誤,并且優(yōu)選地同時檢測和校正數(shù)據(jù)錯誤。
奇偶校驗產(chǎn)生器32基于預(yù)期的讀地址來重新計算地址奇偶校驗比特,并且輸出被重新計算的地址奇偶校驗比特給錯誤檢測器/校正器38。錯誤檢測器/校正器38將被重新計算的地址奇偶校驗比特與讀數(shù)據(jù)以及組合的地址與數(shù)據(jù)保護信息進行合并,并且確定在被重新計算的地址奇偶校驗比特中是否檢測到錯誤。如果在被重新計算的地址奇偶校驗比特中檢測到錯誤,則錯誤檢測器/校正器38輸出地址錯誤指示。錯誤檢測器/校正器38還輸出被校正的讀數(shù)據(jù),所述錯誤檢測器/校正器38除被校正數(shù)據(jù)之外還可以提供被檢測且被校正的任何數(shù)據(jù)錯誤的指示。
錯誤保護模塊30代表了特定的例子,該例子針對地址保護信息使用奇偶校驗碼并且針對組合的地址與數(shù)據(jù)保護信息使用ECC。然而,這里公開的尋址錯誤保護機制可以使用其它類型的代碼,實際上包括任何線性塊代碼,例如ECC、奇/偶校驗、比特交織的奇/偶校驗、對角交織的奇/偶校驗、循環(huán)冗余校驗等,以計算地址保護信息、組合的地址與數(shù)據(jù)保護信息,或二者。如果使用多比特地址保護代碼,則用于計算組合的地址與數(shù)據(jù)保護信息的代碼優(yōu)選地規(guī)定了例如單個比特地址故障的公共地址保護故障的檢測。例如,如果單個地址比特故障導(dǎo)致了多個比特在地址保護信息代碼中改變,則具有多比特錯誤檢測能力的數(shù)據(jù)保護代碼在僅執(zhí)行單個比特錯誤檢測并且因此不檢測地址故障的代碼上是優(yōu)選的。
上面主要就尋址錯誤保護和檢測系統(tǒng)主要描述了本發(fā)明的實施例。圖4和5是根據(jù)本發(fā)明又一個實施例的方法的流程圖。圖4和5所示的操作根據(jù)前面的系統(tǒng)描述是顯而易見的,并且因此下面將相對簡要地對其進行描述。用于執(zhí)行圖4和5所示的操作和可以被執(zhí)行的其它操作的各種機制,以及所示方法的其它變型,根據(jù)前面的系統(tǒng)描述是顯而易見的。
現(xiàn)在參考圖4,示出了存儲器尋址錯誤保護方法40。所述方法開始于42,其中接收了要被存儲到存儲器中的數(shù)據(jù)以及其中存儲數(shù)據(jù)的存儲器中存儲位置的地址?;谒龅刂?,在44計算地址保護信息。在46,連同所述數(shù)據(jù)一起使用地址保護信息,以計算組合的地址與數(shù)據(jù)保護信息。在48,輸出了所述數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息以存儲在存儲位置中。
圖5示出了存儲器尋址錯誤檢測方法50,所述方法開始于52,其中進行了這樣的操作接收檢索自存儲器中讀地址上的存儲位置的組合的地址與數(shù)據(jù)保護信息和數(shù)據(jù)?;跀?shù)據(jù)和原始地址保護信息,如上所述地那樣計算組合的地址與數(shù)據(jù)保護信息,所述原始地址保護信息是基于其中寫入數(shù)據(jù)的存儲器中存儲位置的寫地址而被計算的。
在54,基于從其讀取數(shù)據(jù)的存儲器中存儲位置的地址,類似地重新計算地址保護信息。在56,利用數(shù)據(jù)、被重新計算的地址保護信息和組合的地址與數(shù)據(jù)保護信息,進行關(guān)于被重新計算的地址保護信息是否匹配于原始地址保護信息的確定。如果不匹配,則發(fā)生了尋址錯誤,如在58所示。否則,沒有發(fā)生尋址錯誤,并且在59輸出被恢復(fù)的數(shù)據(jù),在該被恢復(fù)數(shù)據(jù)中,可以在使用ECC計算組合的地址與數(shù)據(jù)保護信息的情況下校正錯誤。
根據(jù)本發(fā)明的另一個方面,提供了一種數(shù)據(jù)結(jié)構(gòu)。圖6是根據(jù)本發(fā)明一個實施例的這種數(shù)據(jù)結(jié)構(gòu)的框圖。數(shù)據(jù)結(jié)構(gòu)60在機器可讀介質(zhì)中被存儲在具有地址的特定存儲位置上,并且包括用于存儲數(shù)據(jù)的數(shù)據(jù)字段62和用于存儲組合的地址與數(shù)據(jù)保護信息的保護信息字段64?;跀?shù)據(jù)和原始地址保護信息來計算組合的地址與數(shù)據(jù)保護信息,所述原始地址保護信息是基于其中寫入數(shù)據(jù)的介質(zhì)中存儲位置的寫地址而被計算的,如上所述。字段64中的保護信息由此通過確定針對地址所產(chǎn)生的地址保護信息是否匹配于原始地址保護信息,來允許檢測尋址錯誤。
包括以不同順序的上述字段和/或可能額外的字段的其它數(shù)據(jù)結(jié)構(gòu),對于本領(lǐng)域的技術(shù)人員是顯而易見的。還應(yīng)當認識到,數(shù)據(jù)結(jié)構(gòu)60沒有超出任何特定的范圍。在優(yōu)選實施例中,數(shù)據(jù)字段62優(yōu)選地大于保護字段64,如在上述例子的情況下數(shù)據(jù)字包括29個數(shù)據(jù)比特和7個ECC比特。
如這里公開的尋址錯誤保護和檢測技術(shù)可以廣泛應(yīng)用于電子系統(tǒng),并且在高可靠性系統(tǒng)中特別有用,例如電信系統(tǒng)。當運營商(carrier)努力改善其系統(tǒng)的可用性到5-9s能力或以上時,檢測存儲器尋址錯誤的能力將變得更為重要。此外,除了立即應(yīng)用于通信系統(tǒng)以外,本發(fā)明的實施例通常具有對數(shù)字電子系統(tǒng)的廣泛應(yīng)用。
這里公開的技術(shù)的一個主要優(yōu)點在于,通常不以附加存儲器成本來提供存儲器尋址錯誤保護。在當前用于利用例如ECC的存儲器數(shù)據(jù)保護的存儲器之上,沒有消耗附加的存儲器。
以上所述僅是本發(fā)明原理的應(yīng)用的說明。本領(lǐng)域的技術(shù)人員可以在不脫離本發(fā)明范圍的情況下實現(xiàn)其它安排和方法。
例如,電子系統(tǒng)可以包括多于圖1所示的單個存儲器和電子設(shè)備。也可以在電子系統(tǒng)中提供不同類型的電子設(shè)備和存儲器以及附加部件,但是為了避免圖中的擁塞而沒有示出。類似地,電子設(shè)備可以包括多于圖1所示的部件。因此應(yīng)當認識到,圖1的電子系統(tǒng)以及其它圖的內(nèi)容僅用于說明的目的,并且本發(fā)明決不限于附圖明確示出的以及這里描述的特定示例這里公開的技術(shù)的許多不同實現(xiàn)也是顯而易見的。這些技術(shù)可以如上所述地在電子設(shè)備中被實現(xiàn),或分離地被實現(xiàn),例如在例如控制對存儲器的訪問的存儲器管理器中。電子設(shè)備可以采用上述技術(shù),用于訪問內(nèi)部存儲器設(shè)備、外部存儲器設(shè)備或二者。
也可以基本上獨立地實現(xiàn)讀和寫操作,這是由于電子設(shè)備可以支持僅寫操作,僅讀操作或二者。在電子系統(tǒng)中,可以提供具有不同存儲器訪問能力的不止一種類型的電子設(shè)備。例如,電子系統(tǒng)中的一個電子設(shè)備可以通過不同的電子設(shè)備或可能地甚至不同的電子系統(tǒng),來讀取被寫入存儲器中的數(shù)據(jù),該存儲器說明性地是電可編程只讀存儲器(EPROM)。在EPROM分別提供例如操作內(nèi)核(operating kernel)或游戲(game)的固件或軟件的情況下,所述情形可能出現(xiàn)。
正如電子系統(tǒng)可以包括不同類型的電子設(shè)備,電子系統(tǒng)可以包括地址保護的存儲器和未保護的存儲器。盡管可能結(jié)合相同電子系統(tǒng)中的另一個存儲器來使用傳統(tǒng)技術(shù),然而當尋址被保護的存儲器時可以使用上述技術(shù)。盡管希望單個存儲器設(shè)備是被保護的或未保護的,然而也設(shè)想基于每個存儲的位置或塊來提供尋址錯誤保護,其中存儲器設(shè)備潛在地包括地址保護的存儲位置以及未保護的存儲位置。
此外,盡管主要就方法和系統(tǒng)進行了描述,然而也設(shè)想了本發(fā)明的其它實現(xiàn),例如存儲在機器可讀介質(zhì)上的指令。因此,錯誤保護模塊28(圖2)可以在硬件或軟件中被實現(xiàn)用于由例如處理器來執(zhí)行。
權(quán)利要求
1.一種存儲器尋址錯誤保護系統(tǒng),該系統(tǒng)包括用于接收要被存儲在存儲器中的數(shù)據(jù)的數(shù)據(jù)輸入端,以及用于接收其中存儲所述數(shù)據(jù)的所述存儲器中存儲位置的地址的地址輸入端;以及錯誤保護模塊,其被耦合到所述數(shù)據(jù)輸入端和所述地址輸入端,以基于所述地址來計算地址保護信息、基于所述地址保護信息和所述數(shù)據(jù)二者來計算組合的地址與數(shù)據(jù)保護信息,并且輸出所述數(shù)據(jù)和所述組合的地址與數(shù)據(jù)保護信息以存儲到所述存儲位置中。
2.根據(jù)權(quán)利要求1的存儲器尋址錯誤保護系統(tǒng),其中,所述地址保護信息包括所述地址。
3.根據(jù)權(quán)利要求1或2的存儲器尋址錯誤保護系統(tǒng),其中,所述錯誤保護模塊利用各個線性塊代碼,計算所述地址保護信息和所述組合的地址與數(shù)據(jù)保護信息。
4.根據(jù)權(quán)利要求1或2的存儲器尋址錯誤保護系統(tǒng),還包括用于在所述尋址錯誤保護系統(tǒng)和所述存儲器之間傳送信息的存儲器接口,其中,所述錯誤保護模塊被耦合到所述存儲器接口,并且通過所述地址輸入端來接收從其讀取數(shù)據(jù)的所述存儲器中存儲位置的地址;通過所述存儲器接口來接收檢索自所述存儲器中讀地址上的存儲位置的組合的地址與數(shù)據(jù)保護信息以及數(shù)據(jù),所述組合的地址與數(shù)據(jù)保護信息是基于所述數(shù)據(jù)和原始的地址保護信息而被計算的,并且所述原始地址保護信息是基于其中寫入所述數(shù)據(jù)的所述存儲器中存儲位置的寫地址而被計算的;基于從其讀取數(shù)據(jù)的所述地址來重新計算地址保護信息;并且利用所接收的數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息,基于所述被重新計算的地址保護信息是否匹配于所述原始地址保護信息來確定是否發(fā)生了尋址錯誤。
5.根據(jù)權(quán)利要求4的存儲器尋址錯誤保護系統(tǒng),其中,所述錯誤保護模塊還在發(fā)生尋址錯誤的情況下輸出錯誤指示。
6.一種電子系統(tǒng),其包括存儲器;以及被耦合到所述存儲器的多個電子設(shè)備,該多個電子設(shè)備包括至少一個電子設(shè)備,其包括根據(jù)權(quán)利要求1的尋址錯誤保護系統(tǒng);以及至少一個電子設(shè)備,其包括用于接收從其讀取數(shù)據(jù)的所述存儲器中存儲位置的地址的地址輸入端;用于在所述電子設(shè)備和所述存儲器之間傳送信息的存儲器接口;以及錯誤保護模塊,其被耦合到所述地址輸入端和所述存儲器接口,用于通過所述地址輸入端來接收從其讀取數(shù)據(jù)的地址;通過所述存儲器接口,接收檢索自所述存儲器中讀地址上的存儲位置的組合的地址與數(shù)據(jù)保護信息以及數(shù)據(jù),所述組合的地址與數(shù)據(jù)保護信息是基于所述數(shù)據(jù)和原始的地址保護信息而被計算的,并且所述原始地址保護信息是基于其中寫入所述數(shù)據(jù)的所述存儲器中存儲位置的寫地址而被計算的;基于從其讀取數(shù)據(jù)的所述地址來重新計算地址保護信息;并且利用所接收的數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息,基于所述被重新計算的地址保護信息是否匹配于所述原始地址保護信息來確定是否發(fā)生了尋址錯誤。
7.一種存儲器尋址錯誤保護方法,該方法包括下列步驟接收要被存儲在存儲器中的數(shù)據(jù)以及其中存儲所述數(shù)據(jù)的所述存儲器中存儲位置的地址;基于所述地址來計算地址保護信息;基于所述地址保護信息和所述數(shù)據(jù),計算組合的地址與數(shù)據(jù)保護信息;以及輸出所述數(shù)據(jù)和所述組合的地址與數(shù)據(jù)保護信息以存儲到所述存儲位置中。
8.根據(jù)權(quán)利要求7的方法,其中,所述計算地址保護信息包括使用奇偶校驗碼,并且其中,所述計算組合的地址和數(shù)據(jù)保護信息包括使用糾錯碼。
9.根據(jù)權(quán)利要求7或8的方法,還包括下列步驟接收從其讀取數(shù)據(jù)的所述存儲器中存儲位置的地址;接收檢索自所述存儲器中讀地址上的存儲位置中的組合的地址與數(shù)據(jù)保護信息以及數(shù)據(jù),所述組合的地址與數(shù)據(jù)保護信息是基于所述數(shù)據(jù)和原始的地址保護信息而被計算的,并且所述原始地址保護信息是基于其中寫入所述數(shù)據(jù)的所述存儲器中存儲位置的寫地址而被計算的;基于從其讀取數(shù)據(jù)的所述地址來重新計算地址保護信息;并且利用所接收的數(shù)據(jù)和組合的地址和數(shù)據(jù)保護信息,基于所述被重新計算的地址保護信息是否匹配于所述原始地址保護信息來確定是否發(fā)生了尋址錯誤。
10.根據(jù)權(quán)利要求9的方法,還包括在發(fā)生了尋址錯誤的情況下提供錯誤指示。
11.根據(jù)權(quán)利要求9的方法,該方法被實現(xiàn)在包括存儲器和多個電子設(shè)備的電子系統(tǒng)中,其中在所述多個電子設(shè)備的至少一個的每一個中實現(xiàn)了下列操作接收要被存儲在存儲器中的數(shù)據(jù)以及其中存儲數(shù)據(jù)的所述存儲器中存儲位置的地址、計算地址保護信息、計算組合的地址與數(shù)據(jù)保護信息,并且輸出所述數(shù)據(jù)和所述組合的地址與數(shù)據(jù)保護信息;并且在所述多個電子設(shè)備的至少另一個電子設(shè)備的每一個中實現(xiàn)了下列操作接收從其讀取數(shù)據(jù)的所述存儲器中存儲位置的地址、接收數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息、重新計算地址保護信息,并且確定是否發(fā)生了尋址錯誤。
12.一種存儲器尋址錯誤檢測系統(tǒng),其包括存儲器接口,其用于在所述尋址錯誤檢測系統(tǒng)和存儲器之間傳送信息;以及地址輸入端,其用于接收從其讀取數(shù)據(jù)的所述存儲器中存儲位置的地址;錯誤保護模塊,其被耦合到所述地址輸入端和所述存儲器接口,用于通過所述地址輸入端來接收從其讀取數(shù)據(jù)的所述存儲器中存儲位置的地址;通過所述存儲器接口來接收檢索自所述存儲器中讀地址上的存儲位置的數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息,所述組合的地址與數(shù)據(jù)保護信息是基于所述數(shù)據(jù)和原始的地址保護信息而被計算的,并且所述原始地址保護信息是基于其中寫入數(shù)據(jù)的所述存儲器中存儲位置的寫地址而被計算的;基于從其讀取數(shù)據(jù)的所述地址來重新計算所述地址保護信息;并且利用所接收的數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息,基于所述被重新計算的地址保護信息是否匹配于所述原始地址保護信息來確定是否發(fā)生了尋址錯誤。
13.根據(jù)權(quán)利要求12的存儲器尋址錯誤檢測系統(tǒng),其中,利用各個線性塊代碼來計算所述原始地址保護信息和所述組合的地址與數(shù)據(jù)保護信息。
14.根據(jù)權(quán)利要求12或13的存儲器尋址錯誤檢測系統(tǒng),其中,所述錯誤保護模塊還在發(fā)生尋址錯誤的情況下輸出錯誤指示。
15.根據(jù)權(quán)利要求12或13的存儲器尋址錯誤檢測系統(tǒng),其中,所述錯誤保護模塊還通過數(shù)據(jù)輸入端來接收要被存儲在所述存儲器中的數(shù)據(jù),并且通過所述地址輸入端來接收其中存儲數(shù)據(jù)的所述存儲器中存儲位置的地址;基于所述地址來計算地址保護信息;基于所述地址保護信息和所述數(shù)據(jù)二者來計算組合的地址與數(shù)據(jù)保護信息;并且輸出所述數(shù)據(jù)和所述組合的地址與數(shù)據(jù)保護信息以存儲在所述存儲位置中。
16.一種電子系統(tǒng),其包括存儲器;以及下列電子設(shè)備中的至少一個被耦合到所述存儲器并且包括根據(jù)權(quán)利要求12的存儲器尋址錯誤檢測系統(tǒng)的電子設(shè)備;被耦合到所述存儲器的電子設(shè)備,該電子設(shè)備包括用于接收要被存儲在所述存儲器中的數(shù)據(jù)的數(shù)據(jù)輸入端,以及用于接收其中存儲數(shù)據(jù)的所述存儲器中存儲位置的地址的地址輸入端;錯誤保護模塊,其被耦合到所述數(shù)據(jù)輸入端和所述地址輸入端,用于基于所述地址來計算地址保護信息、基于所述地址保護信息和所述數(shù)據(jù)二者來計算組合的地址與數(shù)據(jù)保護信息以及數(shù)據(jù),并且輸出所述數(shù)據(jù)和所述組合的地址與數(shù)據(jù)保護信息以存儲在所述存儲位置中;以及被耦合到所述存儲器的電子設(shè)備,該電子設(shè)備包括根據(jù)權(quán)利要求12的存儲器尋址錯誤保護系統(tǒng),其中,所述錯誤保護模塊還通過數(shù)據(jù)輸入端來接收要被存儲在所述存儲器中的數(shù)據(jù),并且通過所述地址輸入端來接收其中存儲所述數(shù)據(jù)的所述存儲器中存儲位置的地址;基于所述地址來計算地址保護信息;基于所述地址保護信息和所述數(shù)據(jù)二者來計算組合的地址與數(shù)據(jù)保護信息;并且輸出所述數(shù)據(jù)和所述組合的地址與數(shù)據(jù)保護信息以存儲在所述存儲位置中。
17.一種存儲器尋址錯誤檢測方法,該方法包括下列步驟接收從其讀取數(shù)據(jù)的存儲器中存儲位置的地址;接收檢索自所述存儲器中讀地址上的存儲位置的組合的地址與數(shù)據(jù)保護信息以及數(shù)據(jù),所述組合的地址與數(shù)據(jù)保護信息是基于所述數(shù)據(jù)和原始地址保護信息而被計算的,并且所述原始地址保護信息是基于其中寫入數(shù)據(jù)的所述存儲器中存儲位置的寫地址而被計算的;基于從其讀取數(shù)據(jù)的所述地址來重新計算地址保護信息;并且利用所接收的數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息,基于所述被重新計算的地址保護信息是否匹配于所述原始地址保護信息來確定是否發(fā)生了尋址錯誤。
18.根據(jù)權(quán)利要求17的方法,還包括在發(fā)生了尋址錯誤的情況下提供錯誤指示。
19.根據(jù)權(quán)利要求17或18的方法,還包括接收要被存儲在所述存儲器中的數(shù)據(jù)以及其中存儲所述數(shù)據(jù)的所述存儲器中存儲位置的地址;基于所述地址來計算地址保護信息;基于所述地址保護信息和所述數(shù)據(jù)二者來計算組合的地址與數(shù)據(jù)保護信息;以及輸出所述數(shù)據(jù)和所述組合的地址與數(shù)據(jù)保護信息以存儲在所述存儲位置中。
20.一種機器可讀介質(zhì),該機器可讀介質(zhì)在具有地址的存儲位置上存儲數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包括存儲數(shù)據(jù)的數(shù)據(jù)字段;以及保護信息字段,其存儲組合的地址與數(shù)據(jù)保護信息,所述組合的地址與數(shù)據(jù)保護信息是基于所述數(shù)據(jù)和原始的地址保護信息而被計算的,并且所述原始地址保護信息是基于其中寫入數(shù)據(jù)的所述介質(zhì)中存儲位置的寫地址而被計算的,其中,所述保護信息字段通過確定針對所述地址而產(chǎn)生的地址保護信息是否匹配于所述原始地址保護信息,來實現(xiàn)尋址錯誤的檢測。
全文摘要
公開了一種用于防止存儲器尋址錯誤的系統(tǒng)和方法。當將數(shù)據(jù)寫入存儲器中的存儲位置時,基于該存儲位置的地址來計算地址保護信息,并且基于該地址保護信息和數(shù)據(jù)二者來計算組合的地址與數(shù)據(jù)保護信息。所述數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息被存儲在所述存儲位置中。在讀操作期間,數(shù)據(jù)和組合的地址與數(shù)據(jù)保護信息是從讀地址的存儲位置上而被檢索的。地址保護信息是基于從其讀取數(shù)據(jù)的地址而被重新計算的,并且在被重新計算的地址保護信息與原始地址保護信息不匹配的情況下,檢測尋址錯誤,其中基于該原始地址保護信息來計算所檢索的組合的地址與數(shù)據(jù)保護信息。
文檔編號G11C7/24GK1832049SQ20061000037
公開日2006年9月13日 申請日期2006年1月6日 優(yōu)先權(quán)日2005年1月7日
發(fā)明者S·德里埃狄格爾 申請人:阿爾卡特公司