本發(fā)明專利技術(shù)適用于數(shù)據(jù)處理領(lǐng)域,提供一種存儲(chǔ)器故障單元的替換方法及裝置、數(shù)據(jù)存儲(chǔ)系統(tǒng),其中所述方法包括:根據(jù)讀取地址讀取主存儲(chǔ)器中對(duì)應(yīng)數(shù)據(jù),并檢測所述數(shù)據(jù)是否正確;若所述數(shù)據(jù)錯(cuò)誤,則在映射表中查找所述讀取地址對(duì)應(yīng)的替換地址,從替換存儲(chǔ)器中獲取所述替換地址對(duì)應(yīng)的替換數(shù)據(jù)并返回至處理器,其中所述映射表保存有主存儲(chǔ)器中故障單元地址和替換存儲(chǔ)器中對(duì)應(yīng)替換地址的映射關(guān)系,所述替換存儲(chǔ)器用于保存主存儲(chǔ)器中故障單元所對(duì)應(yīng)的正確數(shù)據(jù);若所述數(shù)據(jù)正確,則將所述數(shù)據(jù)直接返回至處理器。使用本方法即使主存儲(chǔ)器存儲(chǔ)單元中出現(xiàn)了多處錯(cuò)誤,亦可通過映射表獲取正確的數(shù)據(jù),并且替換存儲(chǔ)器的容量也非常小,成本和功耗都很低。
【技術(shù)實(shí)現(xiàn)步驟摘要】
一種存儲(chǔ)器故障單元的替換方法及裝置、數(shù)據(jù)存儲(chǔ)系統(tǒng)
本專利技術(shù)屬于數(shù)據(jù)處理領(lǐng)域,尤其涉及一種存儲(chǔ)器故障單元的替換方法及裝置、數(shù) 據(jù)存儲(chǔ)系統(tǒng)。
技術(shù)介紹
常用的半導(dǎo)體隨機(jī)存取存儲(chǔ)器可以分為動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器DRAM和靜態(tài)隨機(jī)存 取存儲(chǔ)器SRAM兩大類,DRAM具有集成度高、速度快等特點(diǎn),主要用作系統(tǒng)的內(nèi)存;SRAM可以 達(dá)到更高的速度,不需要定時(shí)刷新,但是集成度較低,因此主要用作高速緩存。DRAM和SRAM都通過電荷來保存信息,例如DRAM是根據(jù)晶體管柵極電容是否存有 電荷來表示I或0,SRAM是根據(jù)晶體管的導(dǎo)通或截止來表示I或O。它們?cè)谕獠坑钪嫔渚€ 或芯片封裝材料中放射性元素的影響下,電荷狀態(tài)可能發(fā)生變化,例如從I變成0,導(dǎo)致保 存的信息出現(xiàn)變化。這種現(xiàn)象稱為軟失效,但是其中的存儲(chǔ)單元并未損壞,只是信息發(fā)生變 化而已,可以通過重新寫入數(shù)據(jù)將其糾正。此外,芯片工作電壓的波動(dòng)、電磁干擾也會(huì)引起 軟失效,隨著半導(dǎo)體生產(chǎn)工藝的不斷改進(jìn),DRAM和SRAM的集成度越來越高,工作電壓也在 不斷降低,因此軟失效的幾率在不斷增加。同時(shí),存儲(chǔ)器也會(huì)有個(gè)別存儲(chǔ)單元出現(xiàn)硬失效, 這種故障無法通過重新寫入數(shù)據(jù)進(jìn)行糾正,從該存儲(chǔ)單元中讀出來的數(shù)據(jù)可能一直是1、一 直是O或者不確定。存儲(chǔ)器中保存的是系統(tǒng)運(yùn)行的代碼和數(shù)據(jù),如果其中的內(nèi)容發(fā)生變化,會(huì)產(chǎn)生意 料不到的結(jié)果,甚至可能使得系統(tǒng)運(yùn)行失常或死機(jī)。為了解決存儲(chǔ)單元的失效問題,現(xiàn)有技術(shù)中通過采用ECC (Error Check andCorrection,檢錯(cuò)糾錯(cuò))算法,在現(xiàn)有存儲(chǔ)器的基礎(chǔ)上新增一片校驗(yàn)存儲(chǔ)器(例如內(nèi)存條 上有9個(gè)存儲(chǔ)器芯片,其中8個(gè)是數(shù)據(jù)存儲(chǔ)器,I個(gè)是校驗(yàn)存儲(chǔ)器),兩者共用同一個(gè)通道。 每次向存儲(chǔ)器寫入數(shù)據(jù)時(shí),將根據(jù)ECC算法得到的校驗(yàn)數(shù)據(jù)也一起寫入校驗(yàn)存儲(chǔ)器,從存 儲(chǔ)器讀出數(shù)據(jù)時(shí),也一起讀出校驗(yàn)存儲(chǔ)器中的數(shù)據(jù),并根據(jù)ECC算法檢測是否發(fā)生了錯(cuò)誤。 如果出現(xiàn)了單比特錯(cuò)誤,ECC算法可以將其糾正,得到正確的數(shù)據(jù)。但ECC算法的糾錯(cuò)能力 很有限,一般只能糾正單個(gè)比特的錯(cuò)誤,如果發(fā)生多個(gè)比特錯(cuò)誤將無法糾正。同時(shí),雖然ECC 算法將讀出的單比特錯(cuò)誤糾正了,但存儲(chǔ)器中的內(nèi)容仍然是錯(cuò)誤的,如果此后再發(fā)生一個(gè) 比特的失效就無法糾正了。為此,現(xiàn)有技術(shù)為了進(jìn)一步提高糾錯(cuò)能力,將兩個(gè)完全相同的存儲(chǔ)器組成鏡像或 鎖步方式,使用兩個(gè)通道與存儲(chǔ)控制器連接。其中鏡像方式是將兩個(gè)存儲(chǔ)器的內(nèi)容組成 一一對(duì)應(yīng)的關(guān)系,當(dāng)檢測到其中一個(gè)存儲(chǔ)器的數(shù)據(jù)出錯(cuò)時(shí),再從另一個(gè)存儲(chǔ)器取數(shù)據(jù),因此 可以容忍整個(gè)存儲(chǔ)器失效;鎖步方式是將兩個(gè)存儲(chǔ)器通道組合成一個(gè)邏輯通道,采用了更 先進(jìn)的糾錯(cuò)算法,可以容忍單個(gè)存儲(chǔ)器芯片失效。但是顯然,所述鏡像方式和鎖步方式都要 求使用兩組容量、速度完全一樣的存儲(chǔ)器,增加了系統(tǒng)成本和功耗。
技術(shù)實(shí)現(xiàn)思路
鑒于上述問題,本專利技術(shù)提供一種存儲(chǔ)器故障單元的替換方法及裝置和數(shù)據(jù)存儲(chǔ)系 統(tǒng),旨在解決現(xiàn)有技術(shù)中,通過增加校驗(yàn)存儲(chǔ)器,采用ECC算法的糾錯(cuò)能力很有限,以及采 用鏡像方式或鎖步方式增加了系統(tǒng)成本和功耗的技術(shù)問題。第一方面,所述存儲(chǔ)器故障單元的替換方法包括根據(jù)讀取地址讀取主存儲(chǔ)器中 對(duì)應(yīng)數(shù)據(jù);檢測所述數(shù)據(jù)是否正確;若所述數(shù)據(jù)錯(cuò)誤,則在映射表中查找所述讀取地址對(duì) 應(yīng)的替換地址,從替換存儲(chǔ)器中獲取所述替換地址對(duì)應(yīng)的替換數(shù)據(jù)并返回至處理器,其中 所述映射表保存有主存儲(chǔ)器中故障單元地址和替換存儲(chǔ)器中對(duì)應(yīng)替換地址的映射關(guān)系,所 述替換存儲(chǔ)器用于保存主存儲(chǔ)器中故障單元所對(duì)應(yīng)的正確數(shù)據(jù);若所述數(shù)據(jù)正確,則將所 述數(shù)據(jù)直接返回至處理器。在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述根據(jù)讀取地址讀取主存儲(chǔ)器中對(duì)應(yīng) 數(shù)據(jù),并檢測所述數(shù)據(jù)是否正確步驟之前,還包括根據(jù)寫入地址將數(shù)據(jù)寫入主存儲(chǔ)器中對(duì) 應(yīng)的存儲(chǔ)單元,若映射表中存在所述寫入地址,將所述數(shù)據(jù)同時(shí)替換存儲(chǔ)器中對(duì)應(yīng)的存儲(chǔ) 單元。結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式 中,若所述數(shù)據(jù)錯(cuò)誤,則在映射表中查找所述讀取地址對(duì)應(yīng)的替換地址,從替換存儲(chǔ)器中獲 取所述替換地址對(duì)應(yīng)的替換數(shù)據(jù)并返回至處理器步驟,具體包括若所述數(shù)據(jù)錯(cuò)誤且無法 糾正,則在映射表中查找所述讀取地址對(duì)應(yīng)的替換地址,從替換存儲(chǔ)器中獲取所述替換地 址對(duì)應(yīng)的替換數(shù)據(jù)并返回至處理器。結(jié)合第一方面第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,若所述數(shù)據(jù) 錯(cuò)誤但可以糾正,則將糾正后的數(shù)據(jù)返回至處理器。結(jié)合第一方面第二種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,若所述數(shù)據(jù) 錯(cuò)誤且無法糾正,則在映射表中查找所述讀取地址對(duì)應(yīng)的替換地址,從替換存儲(chǔ)器中獲取 所述替換地址對(duì)應(yīng)的替換數(shù)據(jù)并返回至處理器步驟,具體包括若所述數(shù)據(jù)錯(cuò)誤且無法糾 正,同時(shí)映射表中存在所述讀取地址,則根據(jù)讀取地址所對(duì)應(yīng)的替換地址,從替換存儲(chǔ)器中 獲取對(duì)應(yīng)的替換數(shù)據(jù)并返回至處理器。結(jié)合第一方面第四種可能的實(shí)現(xiàn)方式中,在第五種可能的實(shí)現(xiàn)方式中,若所述數(shù) 據(jù)錯(cuò)誤且無法糾正,同時(shí)映射表中不存在所述讀取地址,則分配一個(gè)替換存儲(chǔ)器的空白地 址與所述讀取地址對(duì)應(yīng),作為新的映射表項(xiàng)寫入映射表,并輸出重啟指令。結(jié)合第一方面第三種可能的實(shí)現(xiàn)方式,在第六種可能的實(shí)現(xiàn)方式中,所述若所述 數(shù)據(jù)錯(cuò)誤但可以糾正,則將糾正后的數(shù)據(jù)返回至處理器步驟,具體包括若所述數(shù)據(jù)錯(cuò)誤但 可以糾正,同時(shí)映射表中存在所述讀取地址,則將糾正后的數(shù)據(jù)返回至處理器。結(jié)合第一方面地六種可能的實(shí)現(xiàn)方式,在第七種可能實(shí)現(xiàn)的方式中,若所述數(shù)據(jù) 錯(cuò)誤但可以糾正,同時(shí)映射表中不存在所述讀取地址,則將糾正后的數(shù)據(jù)返回至處理器,再 分配一個(gè)替換存儲(chǔ)器的空白地址與所述讀取地址對(duì)應(yīng),作為新的映射表項(xiàng)寫入映射表,并 將糾正后數(shù)據(jù)寫入所述空白地址對(duì)應(yīng)的存儲(chǔ)單元。結(jié)合第一方面的第五種或第七種可能的實(shí)現(xiàn)方式,在第八中可能的實(shí)現(xiàn)方式中, 在寫入新的映射表項(xiàng)時(shí)若已達(dá)到映射表的容量上限,則隨機(jī)選取一個(gè)映射表項(xiàng)替換為所述 新的映射表項(xiàng);或者,在映射表中按照順序順次替換所述新的映射表項(xiàng);或者,將最近最少 使用的映射表項(xiàng)替換為所述新的映射表項(xiàng)。結(jié)合第一方面第八中可能的實(shí)現(xiàn)方式,在第九種可能的實(shí)現(xiàn)方式中,在寫入新的 映射表項(xiàng)時(shí)若已達(dá)到映射表的容量上限,則同時(shí)向處理器輸出中斷告警。第二方面,所述存儲(chǔ)器故障單元的替換裝置包括讀取檢測單元,用于根據(jù)讀取地 址讀取主存儲(chǔ)器中對(duì)應(yīng)數(shù)據(jù),并檢測所述數(shù)據(jù)是否正確;替換數(shù)據(jù)返回單元,用于當(dāng)所述讀 取檢測單元檢測到所述數(shù)據(jù)錯(cuò)誤時(shí),映射表中查找所述讀取地址對(duì)應(yīng)的替換地址,從替換 存儲(chǔ)器中獲取所述替換地址對(duì)應(yīng)的替換數(shù)據(jù)并返回至處理器,其中所述映射表保存有主存 儲(chǔ)器中故障單元地址和替換存儲(chǔ)器中對(duì)應(yīng)替換地址的映射關(guān)系,所述替換存儲(chǔ)器用于保存 主存儲(chǔ)器中故障單元所對(duì)應(yīng)的正確數(shù)據(jù);數(shù)據(jù)直接返回單元,用于當(dāng)所述讀取檢測單元檢 測到所述數(shù)據(jù)正確時(shí),將所述數(shù)據(jù)直接返回至處理器。在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述裝置還包括數(shù)據(jù)寫入單元,用于根 據(jù)寫入地址將數(shù)據(jù)寫入主存儲(chǔ)器中對(duì)應(yīng)的存儲(chǔ)單元,若映射表中存在所述寫入地址,將所 述數(shù)據(jù)同時(shí)替換存儲(chǔ)器中對(duì)應(yīng)的存儲(chǔ)單元。結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式 中,所述替換數(shù)據(jù)返回單元包括替換返回模塊,用于當(dāng)所述數(shù)據(jù)錯(cuò)誤且無法糾正時(shí),本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種存儲(chǔ)器故障單元的替換方法,其特征在于,所述方法包括:根據(jù)讀取地址讀取主存儲(chǔ)器中對(duì)應(yīng)數(shù)據(jù);檢測所述數(shù)據(jù)是否正確;若所述數(shù)據(jù)錯(cuò)誤,則在映射表中查找所述讀取地址對(duì)應(yīng)的替換地址,從替換存儲(chǔ)器中獲取所述替換地址對(duì)應(yīng)的替換數(shù)據(jù)并返回至處理器,其中所述映射表保存有主存儲(chǔ)器中故障單元地址和替換存儲(chǔ)器中對(duì)應(yīng)替換地址的映射關(guān)系,所述替換存儲(chǔ)器用于保存主存儲(chǔ)器中故障單元所對(duì)應(yīng)的正確數(shù)據(jù);若所述數(shù)據(jù)正確,則將所述數(shù)據(jù)直接返回至處理器。
【技術(shù)特征摘要】
1.一種存儲(chǔ)器故障單元的替換方法,其特征在于,所述方法包括 根據(jù)讀取地址讀取主存儲(chǔ)器中對(duì)應(yīng)數(shù)據(jù); 檢測所述數(shù)據(jù)是否正確; 若所述數(shù)據(jù)錯(cuò)誤,則在映射表中查找所述讀取地址對(duì)應(yīng)的替換地址,從替換存儲(chǔ)器中獲取所述替換地址對(duì)應(yīng)的替換數(shù)據(jù)并返回至處理器,其中所述映射表保存有主存儲(chǔ)器中故障單元地址和替換存儲(chǔ)器中對(duì)應(yīng)替換地址的映射關(guān)系,所述替換存儲(chǔ)器用于保存主存儲(chǔ)器中故障單元所對(duì)應(yīng)的正確數(shù)據(jù); 若所述數(shù)據(jù)正確,則將所述數(shù)據(jù)直接返回至處理器。2.如權(quán)利要求1所述方法,其特征在于,所述根據(jù)讀取地址讀取主存儲(chǔ)器中對(duì)應(yīng)數(shù)據(jù)步驟之前,還包括 根據(jù)寫入地址將數(shù)據(jù)寫入主存儲(chǔ)器中對(duì)應(yīng)的存儲(chǔ)單元,若映射表中存在所述寫入地址,將所述數(shù)據(jù)同時(shí)替換存儲(chǔ)器中對(duì)應(yīng)的存儲(chǔ)單元。3.如權(quán)利要求1或2所述方法,其特征在于,所述若所述數(shù)據(jù)錯(cuò)誤,則在映射表中查找所述讀取地址對(duì)應(yīng)的替換地址,從替換存儲(chǔ)器中獲取所述替換地址對(duì)應(yīng)的替換數(shù)據(jù)并返回至處理器包括 若所述數(shù)據(jù)錯(cuò)誤且無法糾正,則在映射表中查找所述讀取地址對(duì)應(yīng)的替換地址,從替換存儲(chǔ)器中獲取所述替換地址對(duì)應(yīng)的替換數(shù)據(jù)并返回至處理器。4.如權(quán)利要求3所述方法,其特征在于,還包括 若所述數(shù)據(jù)錯(cuò)誤但可以糾正,則將糾正后的數(shù)據(jù)返回至處理器。5.如權(quán)利要求3所述方法,其特征在于,若所述數(shù)據(jù)錯(cuò)誤且無法糾正,則在映射表中查找所述讀取地址對(duì)應(yīng)的替換地址,從替換存儲(chǔ)器中獲取所述替換地址對(duì)應(yīng)的替換數(shù)據(jù)并返回至處理器步驟,具體包括 若所述數(shù)據(jù)錯(cuò)誤且無法糾正,同時(shí)映射表中存在所述讀取地址,則根據(jù)讀取地址所對(duì)應(yīng)的替換地址,從替換存儲(chǔ)器中獲取對(duì)應(yīng)的替換數(shù)據(jù)并返回至處理器。6.如權(quán)利要求5所述的方法,其特征在于,還包括 若所述數(shù)據(jù)錯(cuò)誤且無法糾正,同時(shí)映射表中不存在所述讀取地址,則分配一個(gè)替換存儲(chǔ)器的空白地址與所述讀取地址對(duì)應(yīng),作為新的映射表項(xiàng)寫入映射表,并輸出重啟指令。7.如權(quán)利要求4所述方法,其特征在于,所述若所述數(shù)據(jù)錯(cuò)誤但可以糾正,則將糾正后的數(shù)據(jù)返回至處理器步驟,具體包括 若所述數(shù)據(jù)錯(cuò)誤但可以糾正,同時(shí)映射表中存在所述讀取地址,則將糾正后的數(shù)據(jù)返回至處理器。8.如權(quán)利要求7所述的方法,其特征在于還包括 若所述數(shù)據(jù)錯(cuò)誤但可以糾正,同時(shí)映射表中不存在所述讀取地址,則將糾正后的數(shù)據(jù)返回至處理器,再分配一個(gè)替換存儲(chǔ)器的空白地址與所述讀取地址對(duì)應(yīng),作為新的映射表項(xiàng)寫入映射表,并將糾正后數(shù)據(jù)寫入所述空白地址對(duì)應(yīng)的存儲(chǔ)單元。9.如權(quán)利要求6或8所述方法,其特征在于,在寫入新的映射表項(xiàng)時(shí)若已達(dá)到映射表的容量上限,則隨機(jī)選取一個(gè)映射表項(xiàng)替換為所述新的映射表項(xiàng);或者,在映射表中按照順序順次替換所述新的映射表項(xiàng);或者,將最近最少使用的映射表項(xiàng)替換為所述新的映射表項(xiàng)。10.如權(quán)利要求9所述方法,其特征在于,在寫入新的映射表項(xiàng)時(shí)若已達(dá)到映射表的容量上限,則同時(shí)向處理器輸出中斷告警。11.一種存儲(chǔ)器故障單元的替換裝置,其特征在于,所述裝置包括 數(shù)據(jù)讀取單元,用于根據(jù)讀取地址讀取主存儲(chǔ)器中對(duì)應(yīng)數(shù)據(jù); 數(shù)據(jù)檢測單元,用于檢測所述數(shù)據(jù)是否正確; 替換數(shù)據(jù)返回單元,用于當(dāng)所述讀取檢測單元檢測到所述數(shù)據(jù)錯(cuò)誤時(shí),映射表中查找所述讀取地址對(duì)應(yīng)的替換地址,從替換存儲(chǔ)器中獲取所述替換地址對(duì)應(yīng)的替換數(shù)據(jù)并返回至處理器,其中所述映射表保存有主存...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:李延松,
申請(qǐng)(專利權(quán))人:華為技術(shù)有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。