国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      內(nèi)存糾錯(cuò)方法、內(nèi)存條、內(nèi)存控制器和處理器與流程

      文檔序號(hào):39617231發(fā)布日期:2024-10-11 13:30閱讀:17來源:國知局
      內(nèi)存糾錯(cuò)方法、內(nèi)存條、內(nèi)存控制器和處理器與流程

      本技術(shù)涉及存儲(chǔ),特別涉及一種內(nèi)存糾錯(cuò)方法、內(nèi)存條、內(nèi)存控制器和處理器。


      背景技術(shù):

      1、在存儲(chǔ)技術(shù)中,內(nèi)存系統(tǒng)包括內(nèi)存控制器和雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(double?data?rate?synchronous?dynamic?random?access?memory,ddr?sdram)。其中,雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器也即是內(nèi)存條(memory?module),可以稱為內(nèi)存模塊或者內(nèi)存。該內(nèi)存條包括多個(gè)內(nèi)存顆粒,內(nèi)存顆粒又稱動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dynamic?random?accessmemory,dram),其中,一部分內(nèi)存顆粒用于存儲(chǔ)數(shù)據(jù),稱為數(shù)據(jù)顆粒(data?device),另一部分內(nèi)存顆粒用于存儲(chǔ)數(shù)據(jù)的糾錯(cuò)碼(error?correcting?code,ecc),也即是冗余信息,稱為糾錯(cuò)碼顆粒(ecc?device),該糾錯(cuò)碼用于校驗(yàn)內(nèi)存顆粒中所存儲(chǔ)的數(shù)據(jù)是否發(fā)生錯(cuò)誤;內(nèi)存控制器能夠基于糾錯(cuò)碼對(duì)碼字內(nèi)錯(cuò)誤進(jìn)行糾錯(cuò),也即是內(nèi)存控制器能夠?qū)崿F(xiàn)系統(tǒng)級(jí)糾錯(cuò)。其中,內(nèi)存顆粒內(nèi)部的存儲(chǔ)陣列存儲(chǔ)有多組碼字,每組碼字包括數(shù)據(jù)和校驗(yàn)碼;內(nèi)存顆粒還包括片上糾錯(cuò)引擎,該片上糾錯(cuò)引擎能夠基于校驗(yàn)碼對(duì)與該校驗(yàn)碼屬于同一碼字的數(shù)據(jù)進(jìn)行檢錯(cuò),若數(shù)據(jù)中單個(gè)比特發(fā)生錯(cuò)誤,則片上糾錯(cuò)引擎能夠?qū)υ撳e(cuò)誤進(jìn)行糾正;若數(shù)據(jù)中多個(gè)比特發(fā)生錯(cuò)誤,則可能會(huì)被片上糾錯(cuò)引擎當(dāng)成單比特錯(cuò)誤糾正,也可能片上糾錯(cuò)引擎無法檢出該錯(cuò)誤,形成靜默錯(cuò)誤,也即是內(nèi)存顆粒中的片上糾錯(cuò)引擎能夠?qū)崿F(xiàn)顆粒級(jí)糾錯(cuò)。

      2、相關(guān)技術(shù)中,在讀取數(shù)據(jù)時(shí),先通過片上糾錯(cuò)引擎對(duì)內(nèi)存顆粒進(jìn)行檢錯(cuò),片上糾錯(cuò)引擎一旦檢出錯(cuò)誤,立即上報(bào)給內(nèi)存控制器,以輔助內(nèi)存控制器定位到發(fā)生錯(cuò)誤的內(nèi)存顆粒,進(jìn)而內(nèi)存控制器基于ecc?device中的冗余信息,對(duì)發(fā)生錯(cuò)誤的內(nèi)存顆粒進(jìn)行數(shù)據(jù)恢復(fù),再對(duì)數(shù)據(jù)進(jìn)行重讀。然而,上述方法中,針對(duì)多個(gè)比特發(fā)生錯(cuò)誤的情況,片上糾錯(cuò)引擎有較大概率無法檢出,從而導(dǎo)致內(nèi)存控制器無法對(duì)該內(nèi)存顆粒進(jìn)行糾錯(cuò),帶來數(shù)據(jù)靜默錯(cuò)誤風(fēng)險(xiǎn),影響內(nèi)存數(shù)據(jù)的可靠性。


      技術(shù)實(shí)現(xiàn)思路

      1、本技術(shù)實(shí)施例提供了一種內(nèi)存系統(tǒng)中的內(nèi)存糾錯(cuò)方法、內(nèi)存條、內(nèi)存控制器和處理器,能夠降低數(shù)據(jù)靜默錯(cuò)誤風(fēng)險(xiǎn)、提高內(nèi)存系統(tǒng)的糾錯(cuò)能力,提高內(nèi)存條中數(shù)據(jù)的可靠性。該技術(shù)方案如下。

      2、第一方面,提供了一種內(nèi)存糾錯(cuò)方法,該方法包括:

      3、內(nèi)存控制器在對(duì)從內(nèi)存條中獲取的數(shù)據(jù)糾錯(cuò)失敗的情況下,確定內(nèi)存條中發(fā)生錯(cuò)誤的內(nèi)存顆粒,進(jìn)而基于發(fā)生錯(cuò)誤的內(nèi)存顆粒,對(duì)數(shù)據(jù)再次進(jìn)行糾錯(cuò)。

      4、其中,內(nèi)存控制器對(duì)多個(gè)內(nèi)存顆粒中的數(shù)據(jù)進(jìn)行檢測(cè)的結(jié)果以及后續(xù)步驟包括三種情況,第一種情況:未檢測(cè)出錯(cuò)誤,內(nèi)存控制器直接將數(shù)據(jù)返回給處理器;第二種情況:檢測(cè)出的錯(cuò)誤數(shù)量在內(nèi)存控制器所采用的糾錯(cuò)算法的糾錯(cuò)能力之內(nèi),也即是糾錯(cuò)成功,內(nèi)存控制器通過該糾錯(cuò)算法對(duì)數(shù)據(jù)進(jìn)行糾錯(cuò),將糾錯(cuò)后的數(shù)據(jù)返回給處理器;第三種情況:檢測(cè)出的錯(cuò)誤數(shù)量超出了該糾錯(cuò)算法的糾錯(cuò)能力,也即是糾錯(cuò)失敗,內(nèi)存控制器確定內(nèi)存條中發(fā)生錯(cuò)誤的內(nèi)存顆粒,進(jìn)而基于發(fā)生錯(cuò)誤的內(nèi)存顆粒,對(duì)數(shù)據(jù)進(jìn)行糾錯(cuò)。

      5、其中,內(nèi)存控制器通過內(nèi)存顆粒的糾錯(cuò)狀態(tài)信息確定內(nèi)存條中發(fā)生錯(cuò)誤的內(nèi)存顆粒。內(nèi)存控制器可以將糾錯(cuò)狀態(tài)為不可糾錯(cuò)誤的內(nèi)存顆粒確定為發(fā)生錯(cuò)誤的內(nèi)存顆粒;也可以將糾錯(cuò)狀態(tài)為可糾正錯(cuò)誤和不可糾正錯(cuò)誤的內(nèi)存顆粒均確定為發(fā)生錯(cuò)誤的內(nèi)存顆粒。

      6、上述方法中,基于內(nèi)存控制器的系統(tǒng)級(jí)糾錯(cuò)和基于片上糾錯(cuò)引擎的顆粒級(jí)糾錯(cuò)相互耦合,通過內(nèi)存控制器對(duì)數(shù)據(jù)進(jìn)行糾錯(cuò),與僅依靠片上糾錯(cuò)引擎進(jìn)行糾錯(cuò)相比,能夠?qū)ζ霞m錯(cuò)引擎未檢測(cè)出的靜默錯(cuò)誤和誤糾的錯(cuò)誤進(jìn)行糾正,因此能夠降低內(nèi)存顆粒中的數(shù)據(jù)靜默錯(cuò)誤風(fēng)險(xiǎn)和數(shù)據(jù)誤糾風(fēng)險(xiǎn);另外,內(nèi)存控制器在第一次糾錯(cuò)失敗的情況下,利用片上糾錯(cuò)引擎的糾錯(cuò)結(jié)果,確定發(fā)生錯(cuò)誤的內(nèi)存顆粒,進(jìn)而基于發(fā)生錯(cuò)誤的內(nèi)存顆粒再次對(duì)數(shù)據(jù)進(jìn)行糾錯(cuò),由于內(nèi)存控制器在第二次糾錯(cuò)時(shí),用于糾錯(cuò)的已知信息除了從內(nèi)存條中獲取的數(shù)據(jù),還包括發(fā)生錯(cuò)誤的內(nèi)存顆粒的信息,與僅依靠內(nèi)存控制器進(jìn)行糾錯(cuò)相比,能夠提高內(nèi)存控制器的糾錯(cuò)能力,從而能夠提高內(nèi)存系統(tǒng)的糾錯(cuò)能力和內(nèi)存條中數(shù)據(jù)的可靠性。

      7、可選地,內(nèi)存控制器基于內(nèi)存顆粒的第一寄存器中所記錄的內(nèi)存顆粒的糾錯(cuò)狀態(tài)信息,確定內(nèi)存條中發(fā)生錯(cuò)誤的顆粒。

      8、其中,第一寄存器為內(nèi)存條中原有的未定義功能的保留寄存器,該第一寄存器的取值能夠用于表示內(nèi)存顆粒的糾錯(cuò)狀態(tài)。

      9、上述方法中,將內(nèi)存顆粒的糾錯(cuò)狀態(tài)信息寫入內(nèi)存顆粒的第一寄存器中,內(nèi)存控制器能夠通過讀取該第一寄存器中的糾錯(cuò)狀態(tài)信息來定位到發(fā)生錯(cuò)誤的顆粒,從而使得顆粒級(jí)的糾錯(cuò)和系統(tǒng)級(jí)的糾錯(cuò)能夠相互配合,實(shí)現(xiàn)了對(duì)冗余資源的充分利用,有利于在固定冗余配置下提高內(nèi)存系統(tǒng)的糾錯(cuò)能力。

      10、可選地,內(nèi)存控制器在對(duì)從內(nèi)存條中獲取到的數(shù)據(jù)糾錯(cuò)失敗的情況下,對(duì)內(nèi)存條的讀寫進(jìn)程進(jìn)行反壓,并在反壓成功后再次獲取內(nèi)存條中的數(shù)據(jù),在兩次獲取到的數(shù)據(jù)一致的情況下,從多個(gè)內(nèi)存顆粒的第一寄存器中,讀取多個(gè)內(nèi)存顆粒的糾錯(cuò)狀態(tài)信息。

      11、其中,反壓是指從中央處理器(central?processing?unit,cpu)源頭或訪存路徑抑制內(nèi)存訪問的產(chǎn)生。其中,內(nèi)存控制器判斷讀取操作對(duì)應(yīng)的內(nèi)存地址是否為直接內(nèi)存訪問地址,在該內(nèi)存地址為除直接內(nèi)存訪問(direct?memory?access,dma)地址之外的內(nèi)存地址,內(nèi)存控制器才能夠?qū)?nèi)存條的讀取進(jìn)程進(jìn)行反壓,從而防止其他讀寫進(jìn)程對(duì)待糾正的數(shù)據(jù)進(jìn)行改寫,進(jìn)而避免數(shù)據(jù)不一致。

      12、上述方法中,內(nèi)存控制器對(duì)內(nèi)存條的讀取進(jìn)程進(jìn)行反壓,從而防止其他讀寫進(jìn)程對(duì)待糾正的數(shù)據(jù)進(jìn)行改寫,進(jìn)而避免數(shù)據(jù)不一致;此外,通過再次從內(nèi)存條中獲取數(shù)據(jù),以確定數(shù)據(jù)在反壓生效前是否被改寫過,在未被改寫過的情況下,才繼續(xù)后續(xù)數(shù)據(jù)糾錯(cuò)流程,能夠保證數(shù)據(jù)糾錯(cuò)流程的有效性,進(jìn)而保證數(shù)據(jù)的一致性。

      13、可選地,在發(fā)生錯(cuò)誤的內(nèi)存顆粒的數(shù)量小于或等于內(nèi)存條中糾錯(cuò)碼顆粒的數(shù)量的情況下,內(nèi)存控制器才能基于發(fā)生錯(cuò)誤的內(nèi)存顆粒,對(duì)該數(shù)據(jù)進(jìn)行糾錯(cuò)。

      14、其中,在確定發(fā)生錯(cuò)誤的內(nèi)存顆粒的情況下,內(nèi)存控制器的糾錯(cuò)能力能夠滿足對(duì)目標(biāo)數(shù)量的發(fā)生錯(cuò)誤的內(nèi)存顆粒進(jìn)行糾錯(cuò),其中,目標(biāo)數(shù)量為內(nèi)存條中糾錯(cuò)碼顆粒的數(shù)量。發(fā)生錯(cuò)誤的內(nèi)存顆粒的數(shù)量小于或等于內(nèi)存條中糾錯(cuò)碼顆粒的數(shù)量,說明內(nèi)存條中冗余的內(nèi)存顆粒的數(shù)量大于或等于發(fā)生錯(cuò)誤的內(nèi)存顆粒的數(shù)量,也即是發(fā)生錯(cuò)誤的內(nèi)存顆粒的數(shù)量在內(nèi)存控制器的糾錯(cuò)能力之內(nèi),內(nèi)存控制器能夠基于內(nèi)存條中未發(fā)生錯(cuò)誤的內(nèi)存顆粒中的數(shù)據(jù),對(duì)發(fā)生錯(cuò)誤的內(nèi)存顆粒中的數(shù)據(jù)進(jìn)行糾錯(cuò)。

      15、可選地,在對(duì)數(shù)據(jù)進(jìn)行糾錯(cuò)之后,內(nèi)存控制器將糾錯(cuò)后的數(shù)據(jù)回寫至內(nèi)存顆粒中,對(duì)該讀取操作對(duì)應(yīng)的內(nèi)存地址進(jìn)行重讀,對(duì)重讀到的數(shù)據(jù)進(jìn)行校驗(yàn),若校驗(yàn)通過,則內(nèi)存控制器將重讀到的數(shù)據(jù)返回給處理器,若校驗(yàn)不通過,則內(nèi)存控制器向處理器上報(bào)錯(cuò)誤。

      16、其中,內(nèi)存控制器將糾錯(cuò)后的數(shù)據(jù)回寫至讀取操作對(duì)應(yīng)的內(nèi)存地址中,也即是對(duì)各個(gè)內(nèi)存顆粒中該內(nèi)存地址對(duì)應(yīng)的位置上的所有數(shù)據(jù)進(jìn)行替換。

      17、上述方法中,內(nèi)存控制器將糾錯(cuò)后的數(shù)據(jù)回寫至內(nèi)存顆粒中,從而使得在下一次對(duì)同一內(nèi)存地址進(jìn)行讀取操作時(shí),能夠讀取到正確的數(shù)據(jù),有利于提高內(nèi)存條中數(shù)據(jù)的可靠性;此外,內(nèi)存控制器對(duì)重讀到的數(shù)據(jù)進(jìn)行校驗(yàn),在校驗(yàn)通過的情況下才返回?cái)?shù)據(jù),能夠保證數(shù)據(jù)的一致性,提高內(nèi)存條中數(shù)據(jù)的可靠性。

      18、可選地,內(nèi)存顆粒的不同的糾錯(cuò)狀態(tài)由第一寄存器的目標(biāo)位上的不同的取值來表示,第一寄存器的目標(biāo)位的取值所表示的內(nèi)存顆粒的糾錯(cuò)狀態(tài)為無錯(cuò)誤、可糾正錯(cuò)誤和不可糾正錯(cuò)誤中任一項(xiàng)。例如,目標(biāo)位的取值為00b、01b和10b分別表示內(nèi)存顆粒的糾錯(cuò)狀態(tài)為無錯(cuò)誤、可糾正錯(cuò)誤和不可糾正錯(cuò)誤。

      19、可選地,內(nèi)存顆粒的糾錯(cuò)狀態(tài)由寄存器的目標(biāo)位的占用狀態(tài)來表示。例如,目標(biāo)位的占用狀態(tài)為空,也即是目標(biāo)位無取值,表示內(nèi)存顆粒的糾錯(cuò)狀態(tài)為無錯(cuò)誤或可糾正錯(cuò)誤,目標(biāo)位的占用狀態(tài)不為空,也即是目標(biāo)位有取值,表示內(nèi)存顆粒的糾錯(cuò)狀態(tài)為不可糾正錯(cuò)誤。

      20、可選地,發(fā)生錯(cuò)誤的內(nèi)存顆粒是指糾錯(cuò)狀態(tài)為可糾正錯(cuò)誤的內(nèi)存顆粒和糾錯(cuò)狀態(tài)為不可糾正錯(cuò)誤的內(nèi)存顆粒中的至少一種內(nèi)存顆粒。

      21、其中,內(nèi)存控制器可以將糾錯(cuò)狀態(tài)為不可糾錯(cuò)誤的內(nèi)存顆粒確定為發(fā)生錯(cuò)誤的內(nèi)存顆粒;也可以將糾錯(cuò)狀態(tài)為可糾正錯(cuò)誤和不可糾正錯(cuò)誤的內(nèi)存顆粒均確定為發(fā)生錯(cuò)誤的內(nèi)存顆粒。

      22、上述方法中,內(nèi)存控制器可以將糾錯(cuò)狀態(tài)為可糾正錯(cuò)誤和不可糾正錯(cuò)誤的內(nèi)存顆粒均確定為發(fā)生錯(cuò)誤的內(nèi)存顆粒,由于片上糾錯(cuò)引擎在對(duì)數(shù)據(jù)進(jìn)行糾錯(cuò)時(shí)可能會(huì)出現(xiàn)誤糾的情況,也即是將多比特錯(cuò)誤當(dāng)成單比特錯(cuò)誤進(jìn)行了糾正,因此,將糾錯(cuò)狀態(tài)為可糾正錯(cuò)誤的內(nèi)存顆粒也確定為發(fā)生錯(cuò)誤的內(nèi)存顆粒,進(jìn)而內(nèi)存控制器不僅對(duì)片上糾錯(cuò)引擎不可糾的數(shù)據(jù)進(jìn)行糾正,還能夠?qū)ζ霞m錯(cuò)引擎誤糾的數(shù)據(jù)進(jìn)行糾正,有利于進(jìn)一步提高內(nèi)存條中數(shù)據(jù)的可靠性。

      23、可選地,內(nèi)存顆粒包括片上糾錯(cuò)引擎,該片上糾錯(cuò)引擎能夠?qū)膬?nèi)存顆粒中讀取到的數(shù)據(jù)進(jìn)行糾錯(cuò),將該內(nèi)存顆粒的糾錯(cuò)狀態(tài)信息寫入該內(nèi)存顆粒的第一寄存器中,并將糾錯(cuò)后的數(shù)據(jù)輸出至內(nèi)存控制器。

      24、上述方法中,片上糾錯(cuò)引擎將內(nèi)存顆粒的糾錯(cuò)狀態(tài)信息寫入內(nèi)存顆粒的第一寄存器中,使得內(nèi)存控制器能夠通過讀取該第一寄存器中的糾錯(cuò)狀態(tài)信息來定位到發(fā)生錯(cuò)誤的內(nèi)存顆粒,從而使得顆粒級(jí)的糾錯(cuò)和系統(tǒng)級(jí)的糾錯(cuò)能夠相互配合,實(shí)現(xiàn)了對(duì)冗余資源的充分利用,有利于在固定冗余配置下提高內(nèi)存系統(tǒng)的糾錯(cuò)能力。

      25、第二方面,提供了一種內(nèi)存糾錯(cuò)方法,由內(nèi)存條執(zhí)行,該內(nèi)存條包括多個(gè)內(nèi)存顆粒,每個(gè)內(nèi)存顆粒包括第一寄存器,該方法包括:

      26、對(duì)從內(nèi)存顆粒中讀取到的數(shù)據(jù)進(jìn)行糾錯(cuò),得到內(nèi)存顆粒的糾錯(cuò)狀態(tài)信息,將內(nèi)存顆粒的糾錯(cuò)狀態(tài)信息寫入該內(nèi)存顆粒的第一寄存器中。

      27、第三方面,提供了一種內(nèi)存控制器,該內(nèi)存控制器包括至少一個(gè)功能模塊,該至少一個(gè)功能模塊用于執(zhí)行如前述第一方面或第一方面中任一種可能的實(shí)現(xiàn)方式所提供的內(nèi)存糾錯(cuò)方法。

      28、第四方面,提供了一種內(nèi)存條,該內(nèi)存條包括多個(gè)內(nèi)存顆粒,每個(gè)內(nèi)存顆粒包括第一寄存器,該內(nèi)存條用于執(zhí)行如前述第二方面所提供的內(nèi)存糾錯(cuò)方法。

      29、第五方面,提供了一種內(nèi)存控制器,該內(nèi)存控制器用于執(zhí)行如前述第一方面或第一方面中任一種可能的實(shí)現(xiàn)方式所提供的內(nèi)存糾錯(cuò)方法。

      30、第六方面,提供了一種處理器,該處理器包括內(nèi)存控制器和計(jì)算核心,該處理器用于執(zhí)行如前述第一方面或第一方面中任一種可能的實(shí)現(xiàn)方式所提供的內(nèi)存糾錯(cuò)方法,該計(jì)算核心用于對(duì)內(nèi)存顆粒中的數(shù)據(jù)執(zhí)行計(jì)算操作。

      31、第七方面,提供了一種計(jì)算設(shè)備,該計(jì)算設(shè)備包括內(nèi)存控制器和內(nèi)存條,該內(nèi)存條用于暫存數(shù)據(jù),該內(nèi)存控制器用于執(zhí)行如前述第一方面或第一方面中任一種可能的實(shí)現(xiàn)方式所提供的內(nèi)存糾錯(cuò)方法。

      32、第八方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)用于存儲(chǔ)至少一段程序代碼,該至少一段程序代碼用于執(zhí)行如前述第一方面或第一方面中任一種可能的實(shí)現(xiàn)方式所提供的內(nèi)存糾錯(cuò)方法。

      33、第九方面,提供了一種包含至少一段程序代碼的計(jì)算機(jī)程序產(chǎn)品,當(dāng)該至少一段程序代碼被計(jì)算設(shè)備運(yùn)行時(shí),使得該計(jì)算設(shè)備執(zhí)行如前述第一方面或第一方面中任一種可能的實(shí)現(xiàn)方式所提供的內(nèi)存糾錯(cuò)方法。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1