TW201618119A - 於非依電性記憶體中之回復演算法 - Google Patents
於非依電性記憶體中之回復演算法 Download PDFInfo
- Publication number
- TW201618119A TW201618119A TW104125962A TW104125962A TW201618119A TW 201618119 A TW201618119 A TW 201618119A TW 104125962 A TW104125962 A TW 104125962A TW 104125962 A TW104125962 A TW 104125962A TW 201618119 A TW201618119 A TW 201618119A
- Authority
- TW
- Taiwan
- Prior art keywords
- xor
- data
- memory
- memory device
- ecc
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Abstract
本文說明記憶體中之回復演算法的裝置、系統、與方法。於一實施例中,一控制器包含邏輯來從一主機裝置接收讀取至該記憶體裝置之資料線的一讀取請求,其中該資料分散於多個(N)晶粒間並包含分散於該等多個(N)晶粒間之一錯誤修正碼(ECC)、從該記憶體裝置擷取該資料線、對於從該記憶體裝置擷取之資料線上執行一錯誤修正碼(ECC)檢查、以及響應對於從該記憶體裝置擷取之該資料線上的ECC檢查中之一錯誤而引動一回復演算法。本案亦揭示其他實施例及加以請求專利。
Description
本揭示內容一般係有關電子設備之領域。更特別是,本發明之實施例一般係有關電子裝置之記憶體中的一回復演算法。
許多電子裝置包括可使用經常作為一非依電性記憶體,例如,快取記憶體等等來予以具體化之局部、快速接取記憶體來執行的記憶體系統。某些範例中,錯誤修正碼(ECC)可用來保護該資料免於原始位元錯誤(RBER)。為了取得RBER多樣性的優點,該ECC碼字可分散在多個晶粒上。ECC碼字之範例可包括BCH碼、里德-索羅門碼、低密度同位元檢查(LDPC)、卷積碼、漢明碼、等等。為了提供晶粒失效的還原性,RAID機構可用來儲存所有晶粒之內容的XOR。
因此,例如,於電子裝置之記憶體系統中,為改善加密記憶體中RBER效能之技術可找到公用程式。
依據本發明之一實施例,係特地提出一種記憶體,包含有:一記憶體裝置;以及一耦合至該記憶體裝置並包含至少部分包括硬體邏輯之邏輯的控制器,其用以執行下列步驟:從一主機裝置接收讀取儲存於該記憶體裝置之資料的一讀取請求,其中該資料之一部分儲存於多個(N)晶粒中的每一者,而與該資料相關聯之一錯誤修正碼(ECC)的一部分儲存於該等多個(N)晶粒中的每一者;響應該讀取請求,而從該記憶體裝置擷取該資料;對於從該記憶體裝置擷取之該資料執行一錯誤修正碼(ECC)檢查;以及響應對於從該記憶體裝置擷取之該資料上的該ECC檢查中之一錯誤而引動一回復演算法。
100‧‧‧中央處理單元封裝體
110、702-1至702-N、904、1002、1004‧‧‧處理器
112‧‧‧互連體
120‧‧‧控制集線器
122、610‧‧‧記憶體控制器
124‧‧‧記憶體介面
130‧‧‧局部記憶體
140‧‧‧遠端記憶體
142‧‧‧控制器
144、160‧‧‧通信匯流排
150‧‧‧記憶體裝置
310A、310B...310N‧‧‧晶粒
410、415、420、425、430、435、440、445、510、515、520、525、530、535、545、550、555、560、565‧‧‧操作
600、700、1000‧‧‧計算系統
602‧‧‧中央處理單元
603、1003‧‧‧電腦網路
604‧‧‧互連網路(或匯流排)
606、1020‧‧‧晶片組
608、1006、1008‧‧‧記憶體控制集線器
612、714、960、1010、1012‧‧‧記憶體
614、1036‧‧‧圖形介面
616‧‧‧顯示器裝置
618‧‧‧集線器介面
620‧‧‧輸入/輸出控制集線器
622、704、812、944‧‧‧匯流排
624‧‧‧橋接器(或控制器)
626、1047‧‧‧聲頻裝置
628‧‧‧磁碟驅動器
630‧‧‧網路介面裝置
706-1至706-M‧‧‧處理器核心
708‧‧‧共享快取記憶體
710‧‧‧路由器
712‧‧‧匯流排或互連網路
714‧‧‧匯流排單元
716-1‧‧‧L1快取記憶體
720‧‧‧處理器控制邏輯或單元
802‧‧‧提取單元
804‧‧‧解碼單元
806‧‧‧排程單元
808‧‧‧執行單元
810‧‧‧退回單元
814‧‧‧匯流排單元
816‧‧‧暫存器
902‧‧‧晶載系統
920‧‧‧中央處理單元核心
930‧‧‧圖形處理器單元核心
940‧‧‧輸入/輸出介面、匯流排
941、1016、1018、1026、1028、1030、1032、1037‧‧‧點對點介面電路
942‧‧‧記憶體控制器、匯流排橋接器
943、970、1043‧‧‧輸入/輸出裝置
1014、1022、1024‧‧‧點對點介面
1034‧‧‧圖形電路
945、1045‧‧‧鍵盤/滑鼠
946‧‧‧通訊裝置
948、1048‧‧‧資料儲存裝置
949、1049‧‧‧編碼
1042‧‧‧匯流排橋接器
1046‧‧‧通信裝置
該詳細說明係參照該等附圖來提供。不同圖形中使用相同參考數字表示類似或相同項目。
圖1為一根據本文說明之各種不同範例,用於在非依電性記憶體中執行一回復演算法之裝置的構件之示意、方塊圖。
圖2至圖3為根據本文說明之各種不同範例,用於在非依電性記憶體之寫入操作中執行一回復演算法的一記憶體架構之示意、方塊圖。
圖4至圖5為繪示根據本文說明之各種不同實施例,用於在非依電性記憶體之讀取操作中執行一回復演算法的一方法中之操作的流程圖。
圖6至圖10為根據本文說明之各種不同實施例,可配適來執行記憶體回復管理之電子裝置的示意、方塊圖。
下列說明中,其提出若干特定細節以提供對各種不同實施例的一完整了解。然而,本發明之各種不同實施例在無該等特定細節時仍可加以實作。其他實例中,著名的方法、程序、構件、與電路未詳細說明以避免混淆本發明之特定實施例。此外,本發明之實施例的各種不同觀點可使用各種不同的方法,諸如整合半導體電路(“硬體”)、組織為一或更多程式之電腦可讀指令(“軟體”)、或硬體與軟體之某些組合來實行。為了本揭示內容,參照為“邏輯”將表示每一硬體、軟體、或其某些組合。
圖1為一根據本文說明之各種不同範例,用於在記憶體中執行一回復演算法之裝置的構件之示意、方塊圖。參照圖1,某些實施例中,一中央處理單元(CPU)封裝體100可包含耦合至一控制集線器120與一局部記憶體130之一或更多處理器110。控制集線器120包含一記憶體控制器122與一記憶體介面124。
記憶體介面124由一通信匯流排160耦合至一遠端記憶體140。某些範例中,該通信匯流排160可作為一印刷電路板上之軌跡、具有銅線之一纜線、一光纖纜線、一連接插座、或上述之一組合來予以執行。記憶體140可包含
一控制器142與一或更多記憶體裝置150。各種不同實施例中,該等記憶體裝置150之至少某些可使用依電性記憶體,例如,靜態隨機存取記憶體(SRAM)、一動態隨機存取記憶體(DRAM)、或非依電性記憶體,例如,相變記憶體、NAND(快取)記憶體、鐵電隨機存取記憶體(FeRAM)、奈米線式非依電性記憶體、合併憶阻器技術之記憶體、三維度(3D)交叉點記憶體,諸如相變記憶體(PCM)、旋轉力矩轉移隨機存取記憶體(STT-RAM)、磁電阻式隨機存取記憶體(MRAM)、或NAND快取記憶體來執行。該記憶體140中之該等記憶體裝置150的特定組態並非關鍵。
資料儲存在記憶體140之該等記憶體裝置150中的多個晶粒間之某些範例中,一ECC碼字可類似儲存在多個晶粒間。圖2描繪之範例中,資料可分開在記憶體之一數字,N個晶粒間,而該ECC碼字之一部分可儲存在每一晶粒中。該N+1晶粒可用來儲存該等N個晶粒之內容的一互斥OR(XOR)。
該記憶體中之晶粒特定數字N並非關鍵。根據該記憶體組態,該數字N可在2與30間變化。於一範例中,一記憶體可以等於18個晶粒之一數字N來組配以保持資料,而一288位元組BCH碼字可以每一晶粒儲存之一16位元組(B)的叢訊而分散於該等18個晶粒間。一第19晶粒儲存該等18個晶粒之內容的XOR。儲存於該XOR晶粒中之16B叢訊其可藉由取得一單一BCH碼字之該288位元組的一XOR來取得。
圖4描繪於記憶體中執行一回復演算法之一方法的一第一觀點之操作。某些範例中,圖4描繪之操作可由該控制器142中之邏輯,單獨或與該CPU封裝體100之記憶體控制器122中的邏輯組合來執行。現參照圖4,操作410中,該控制器142從一主機裝置,例如,從記憶體控制器122接收一讀取請求。該讀取請求可包括儲存於記憶體裝置150中之一資料方塊的一邏輯位址。控制器142可將隨著該讀取請求接收之邏輯位址轉譯為記憶體裝置150中之一實體位址,而操作415中,可從記憶體擷取該資料。
操作420中,該擷取資料若無讀取錯誤,則控制流程前往操作425而該控制器142返回從記憶體擷取之資料。相較之下,操作420中若有一讀取錯誤,則控制流程前往操作430而該控制器142執行一ECC常式來嘗試修正該讀取錯誤。
操作435中,若該ECC常式成功修正該讀取錯誤,則控制流程前往操作440而該控制器142返回從記憶體擷取之資料。相較之下,操作435中,若該ECC常式無法成功修正該讀取錯誤,則控制流程前往操作445而該控制器142執行一回復演算法。
一回復演算法之一範例將參照圖3與圖5來說明。參照圖5,操作510中,一第二XOR被計算。於一範例中,該片語“第二XOR”將參照為從該記憶體裝置150中之N個晶粒與該XOR晶粒來計算該等16位元組叢訊的XOR。參照圖2至圖3,於一記憶體裝置150中包含資料之N個晶粒以及
含有該資料之XOR的一額外晶粒(N+1),一第二XOR可藉由採用從表示為310A、310B至310(N)之該等個別晶粒讀取之資料叢訊以及來自表示為圖3之310(N+1)的XOR之叢訊的XOR來判定。
操作515中,若該第二XOR為零,則表示無讀取錯誤,則控制流程前往操作520而從記憶體裝置150讀取之資料返回啟動該請求之主機裝置。相較之下,操作515中,若該第二XOR包括任何一,則表示該資料有錯誤,則控制流程前往操作525。
若每一晶粒中之錯誤位於分開的位置,則該第二XOR於對應位置將含有一。因此,為了嘗試修正該等錯誤,該回復演算法執行相繼反轉對應該第二XOR中一的位置之資料叢訊中的對應位置上之位元的一程序,之後重新計算該第二XOR。該程序可在該第二XOR之每一端開始而該第二XOR中下一個一的位置被設置。控制流程之後前往操作530而一迴圈啟動橫跨該叢訊資料並反轉該叢訊資料中對應位置的位元(操作535)。操作540中,該第二XOR再被計算。
操作545中,若該第二XOR為零,則表示無讀取錯誤,則控制流程前往操作520而從記憶體裝置150讀取之資料返回啟動該請求之主機裝置。相較之下,操作545中,若該第二XOR包括任何一,則表示該資料有錯誤,則控制流程前往操作550而該計數器(i)之數值增加。
操作555中,若該計數器(i)之數值尚未達到晶粒
之數量(N),則控制流程回到操作535。相較之下,操作555中,若該計數器(i)之數值已達到晶粒之數量(N),則表示該迴圈已循環過記憶體裝置中之所有晶粒,則控制流程前往操作560。
操作560中,若該第二XOR中有更多一,則控制流程回到操作525而該第二XOR中下一個一的位置被設置。因此,操作525至560可根據該第二XOR中的每個一被設置來定義一迴圈,而操作535至555定義之套疊迴圈根據對應該第二XOR中的一之位置上的資料叢訊中之位元來定義一迴圈,而該第二XOR再被計算。相較之下,操作560中,若該第二XOR中無更多一,則控制流程前往操作565而返回一錯誤。
如上所述,某些實施例中,該電子裝置可作為一電腦系統來予以具體化。圖6繪示一根據本發明之一實施例的一計算系統600之方塊圖。該計算系統600可包括經由一互連網路(或匯流排)604通信之一或更多中央處理單元(CPU)602或處理器。該處理器602可包括一通用處理器、一網路處理器(處理於一電腦網路603上傳達之資料)、或其他類型的處理器(包括一精簡指令集電腦(RISC)處理器或一複雜指令集電腦(CISC))。此外,該處理器602可具有一單一或多個核心之設計。具有一多核心設計之處理器602可將不同類型的處理器核心整合在相同積體電路(IC)晶粒上。再者,具有一多核心設計之處理器602可執行為對稱或非對稱多處理器。於一實施例中,一或更多該等處理器602可與圖1
之處理器102相同或類似。例如,一或更多該等處理器602可包括參照圖1至圖3說明之控制單元120。此外,參照圖3至圖5說明之操作可由該系統600之一或更多構件來執行。
一晶片組606亦可與該互連網路604通信。該晶片組606可包括一記憶體控制集線器(MCH)608。該MCH 608可包括與一記憶體612(其可與圖1之記憶體130相同或類似)通訊之一記憶體控制器610。該記憶體412可儲存資料,包括在該計算系統600中之CPU 602、或任何其他裝置執行的指令序列。本發明之一實施例中,該記憶體612可包括一或更多依電性儲存器(或記憶體)裝置,諸如隨機存取記憶體(RAM)、動態RAM(DRAM)、同步DRAM(SDRAM)、靜態RAM(SRAM)、或其他類型的儲存器裝置。亦可使用非依電性記憶體,諸如一硬碟或一固態驅動機(SSD)。額外的裝置,諸如多個CPU及/或多個系統記憶體可經由該互連網路604來通訊。
該MCH 608亦可包括與一顯示器裝置616通訊之一圖形介面614。於本發明之一實施例中,該圖形介面614可經由一加速圖形埠(AGP)來與該顯示器裝置616通訊。於本發明之一實施例中,該顯示器616(諸如一平板顯示器)可透過,例如,一信號轉換器來與該圖形介面614通訊,該轉換器可將儲存在一儲存裝置,諸如視訊記憶體或系統記憶體中之一影像的一數位表示法轉換成該顯示器616闡述與顯示之顯示器信號。該顯示器裝置產生之顯示器信號在該顯示器616闡述與隨後顯示之前可通過各種不同的控制裝
置。
一集線器介面618可允許該MCH 608與一輸入/輸出控制集線器(ICH)620來通訊。該ICH 620可提供一介面至與該計算系統600通訊之I/O裝置。該ICH 620可透過一周邊橋接器(或控制器)624,諸如一周邊購件互連(PCI)橋接器、一通用串列匯流排(USB)控制器、或其他類型的周邊橋接器或控制器來與一匯流排622通訊。該橋接器624可在該CPU 602與周邊裝置之間提供一資料路徑。亦可使用其他類型的拓樸結構。此外,多個匯流排可,例如,透過多個橋接器或控制器來與該ICH 620通訊。再者,本發明之各種不同實施例中,與該ICH 620通訊之其他周邊設備可包括整合裝置電子介面(IDE)或小型電腦系統介面(SCSI)硬碟、USB埠、一鍵盤、一滑鼠、並列埠、串列埠、軟碟驅動器、數位輸出支援(例如,數位視訊介面(DVI))、或其他裝置。
該匯流排622可與一聲頻裝置626、一或更多磁碟驅動器628、以及一網路介面裝置630通訊(其與該電腦網路603通訊)。其他裝置可經由該匯流排622通訊。此外,本發明之某些實施例中,各種不同構件(諸如該網路介面裝置630)可與該MCH 608通訊。此外,該處理器602與本文所述之一或更多其他構件可組合來形成一單一晶片(例如,來提供一晶載系統(SOC))。再者,本發明之其他實施例中,該圖形加速器616可包括在該MCH 608中。
此外,該計算系統600可包括依電性及/或非依電性記憶體(或儲存器)。例如,非依電性記憶體可包括一或更
多下列記憶體:唯讀記憶體(ROM)、可規劃ROM(PROM)、可抹除PROM(EPROM)、電子EPROM(EEPROM)、一磁碟驅動器(例如,628)、一軟碟、一光碟ROM(CD-ROM)、一多樣化數位光碟(DVD)、快取記憶體、一磁性光碟、或能夠儲存電子資料(例如,包括指令)之其他類型的非依電性機器可讀媒體。
圖7繪示一根據本發明之一實施例,一計算系統700之方塊圖。該系統700可包括一或更多處理器702-1至702-N(本文一般參照為“多個處理器702”或“處理器702”)。該等處理器702可經由一互連網路或匯流排704來通信。每一處理器可包括各種不同的構件,為了清晰解說,其某些僅參照處理器702-1來說明。於是,剩餘的處理器702-2至702-N的每一個可包括參照處理器702-1來說明之相同或類似的構件。
於一實施例中,該處理器702-1可包括一或更多處理器核心706-1至706-M(本文中參照為“多個核心706”或更一般參照為“核心706”)、一共享快取記憶體708、一路由器710、及/或一處理器控制邏輯或單元720。該等處理器核心706可在一單一積體電路(IC)晶片上執行。此外,該晶片可包括一或更多共享及/或私有快取記憶體(諸如快取記憶體708)、匯流排或互連體(諸如一匯流排或互連體712)、記憶體控制器、或其他構件。
於一實施例中,該路由器710可用來在該處理器702-1之各種不同構件及/或系統700間通訊。再者,該處理
器702-1可包括超過一個路由器710。另外,大量的路由器710可通訊來將該處理器702-1內側或外側之各種不同構件間的資料選路賦能。
該共享快取記憶體708可儲存該處理器702-1之一或更多構件,諸如該等核心706使用之資料(例如,包括指令)。例如,該共享快取記憶體708可局部快取儲存在一記憶體714中之資料來由該處理器702之構件更快速存取。於一實施例中,該快取記憶體708可包括一中準位快取記憶體(諸如一準位2(L2)、一準位3(L3)、一準位4(L4)、或其他準位的快取記憶體)、一末準位快取記憶體(LLC)、及/或其組合。此外,該處理器702-1之各種不同構件可直接、透過一匯流排(例如,該匯流排712)、及/或一記憶體控制器或集線器來與該共享快取記憶體708通訊。如圖7所示,某些實施例中,該等核心706的其中之一或更多可包括一準位1(L1)快取記憶體(716-1)(本文一般參照為“L1快取記憶體716”)。於一實施例中,該控制單元720可包括邏輯來執行上述參照圖2之記憶體控制器122的操作。
圖8繪示一根據本發明之一實施例,一計算系統之一處理器核心706與其他構件的一部分之方塊圖。於一實施例中,圖8顯示之箭頭繪示指令經過該核心706之流動方向。一或更多處理器核心(諸如該處理器核心706)可於諸如參照圖7說明之一單一積體電路晶片(或晶粒)上執行。此外,該晶片可包括一或更多共享及/或私有快取記憶體(例如,圖7之快取記憶體708)、互連體(例如,圖7之互連體704及/或
112)、控制單元、記憶體控制器、或其他構件。
如圖8繪示,該處理器核心706可包括一提取單元802來提取由該核心706執行之指令(包括具有條件分支的指令)。該等指令可從諸如該記憶體714之任何儲存裝置來提取。該核心706亦可包括一解碼單元804來將該提取指令解碼。例如,該解碼單元804可將該提取指令解碼為多個uop(微操作)。
此外,該核心706可包括一排程單元806。該排程單元806可實行與(例如,從該解碼單元804接收之)儲存解碼指令相關聯的各種不同操作,直到該等指令準備調度為止,例如,直到一解碼指令之所有來源數值變為可用為止。於一實施例中,該排程單元806可排程及/或發出(或調度)解碼指令至一執行單元808以供執行。該執行單元808可在該等調度指令(例如,由該解碼單元804)解碼以及(例如,由該排程單元806)調度後來將其執行。於一實施例中,該執行單元808可包括超過一個執行單元。該執行單元808亦可實行諸如加法、減法、乘法、及/或除法之各種不同的算術操作,並可包括一或更多的算術邏輯單元(ALU)。於一實施例中,一共處理器(未顯示)可實行結合該執行單元808之各種不同的算術操作。
再者,該執行單元808可執行亂序指令。因此,於一實施例中該處理器核心706可為一亂序處理器核心。該核心706亦可包括一退回單元810。該退回單元810可在執行指令提交後將其退回。於一實施例中,該等執行指令之退
回會造成處理器狀態從該等指令之執行來提交、該等指令使用之實體暫存器為解配置、等等。
該核心706亦可包括一匯流排單元714來經由一或更多匯流排(例如,匯流排804及/或812)來將該處理器核心706之構件與其他構件(諸如參照圖8說明之構件)間的通信賦能。該核心706亦可包括一或更多暫存器816來儲存該核心706之各種不同構件接取的資料(諸如有關電力耗損狀態設定的數值)。
此外,即使圖7繪示該控制單元720經由互連體812來耦合至該核心706,但各種不同實施例中,該控制單元720可以其他方式來設置,諸如該核心706內側、經由匯流排704耦合至核心、等等。
某些實施例中,本文說明之一或更多構件可作為一晶載系統(SOC)裝置來予以具體化。圖9繪示一根據一實施例之一SOC封裝體的方塊圖。如圖9中繪示,SOC 902包括一或更多中央處理單元(CPU)核心920、一或更多圖形處理器單元(GPU)核心930、一輸入/輸出(I/O)介面940、以及一記憶體控制器942。該SOC封裝體902之各種不同構件可耦合至諸如本文參照其他圖形中說明之一互連體或匯流排。此外,該SOC封裝體902可包括,諸如本文參照其他圖形中說明之較多或較少的構件。另外,該SOC封裝體902之每一構件可包括,例如,如參照本文其他圖形說明之一或更多其他構件。於一實施例中,SOC封裝體902(與其構件)可設置在一或更多積體電路(IC)晶粒上,例如,其可封裝在一單
一半導體裝置。
如圖9繪示,SOC封裝體902可經由該記憶體控制器942耦合至一記憶體960(其可與本文參照其他圖形說明之記憶體類似或相同)。於一實施例中,該記憶體960(或其一部分)可整合於該SOC封裝體902上。
該I/O介面940可例如,經由諸如本文參照其他圖形說明之一互連體及/或匯流排來耦合至一或更多I/O裝置970。I/O裝置970可包括一鍵盤、一滑鼠、一觸控墊、一顯示器、一影像/視訊擷取裝置(諸如一相機或攝錄影機/攝影機)、一觸控螢幕、一揚聲器、等等的其中之一或更多。
圖10繪示一根據本發明之一實施例,以一點對點(PtP)組態來安排之計算系統1000。特別是,圖10顯示處理器、記憶體、與輸入/輸出裝置由若干點對點介面互連之一系統。參照圖2說明之操作可由該系統1000之一或更多構件來執行。
如圖10繪示,該系統1000可包括若干處理器,為了清晰解說其僅顯示兩個處理器1002與1004。該等處理器1002與1004中的每一者包括一局部記憶體控制器集線器(MCH)1006與1008來賦能與記憶體1010與1012之通訊。某些實施例中,MCH 1006與1008可包括圖1之該記憶體控制器120及/或邏輯125。
於一實施例中,該等處理器1002與1004可為參照圖7說明之處理器702的其中之一。該等處理器1002與1004可分別使用PtP介面電路1016與1018經由一點對點(PtP)介
面1014來交換資料。此外,該等處理器1002與1004中的每一者可使用點對點介面電路1026、1028、1030、與1032,經由個別的PtP介面1022與1024與一晶片組1020交換資料。該晶片組1020可進一步例如,使用一PtP介面電路1037經由一高效能圖形介面1036來與一高效能圖形電路1034交換資料。
如圖10所示,圖1之一或更多該等核心106及/或快取記憶體108可位於該等處理器902與904中。然而,本發明之其他實施例可存在圖9之該系統900中的其他電路、邏輯單元、或裝置。此外,本發明之其他實施例可分散遍及在圖9繪示之若干電路、邏輯單元、或裝置。
該晶片組920可使用一PtP介面電路941與一匯流排940通訊。該匯流排940可具有與其通訊之一或更多裝置,諸如一匯流排橋接器942與I/O裝置943。經由一匯流排944,該匯流排橋接器943可與其他裝置通訊,諸如一鍵盤/滑鼠945、通訊裝置946(諸如數據機、網路介面裝置、或可與該電腦網路803通訊之其他通訊裝置)、聲響I/O裝置、及/或一資料儲存裝置948。該資料儲存裝置948(其可為一硬碟驅動器或一NAND快取式固態驅動器)可儲存可由該等處理器902及/或904執行之編碼949。
下列範例係有關其它實施例。
範例1為一種記憶體,其包含一記憶體裝置、以及耦合至該記憶體裝置並包含邏輯之一控制器,來從一主機裝置接收讀取儲存於該記憶體裝置之資料的一讀取請求、
其中該資料之一部分儲存於多個(N)晶粒中的每一者,而與該資料相關聯之一錯誤修正碼(ECC)的一部分儲存於該等多個(N)晶粒中的每一者,響應該讀取請求,而從該記憶體裝置擷取該資料、對於從該記憶體裝置擷取之該資料執行一錯誤修正碼(ECC)檢查、以及響應對於從該記憶體裝置擷取之該資料上的該ECC檢查中之一錯誤而引動一回復演算法。
範例2中,範例1之標的可隨選地包括該資料包含一ECC碼字、以及該ECC檢查包含估計於該資料與該ECC碼上執行一互斥OR(XOR)操作之一結果的一安排。
範例3中,範例1至2之任一個的標的可隨選地包括邏輯,至少部分包括硬體邏輯,來將從該記憶體裝置擷取之資料以及從該記憶體裝置擷取之資料上執行一XOR操作的結果來計算一第二XOR。
範例4中,範例1至3之任一個的標的可隨選地包括邏輯,至少部分包括硬體邏輯,來於執行該第二XOR操作之結果皆為零時將該資料返回該主機裝置。
範例5中,範例1至4之任一個的標的可隨選地包括邏輯,至少部分包括硬體邏輯,來於該第二XOR之內容皆為零時將該資料返回該主機裝置。
範例6中,範例1至5之任一個的標的可隨選地包括邏輯,至少部分包括硬體邏輯,來於該第二XOR之內容皆為零時將該資料返回該主機裝置。
範例7中,範例1至6之任一個的標的可隨選地包
括邏輯,至少部分包括硬體邏輯,來於該第二XOR之內容包括一個1時將一讀取錯誤返回該主機裝置。
範例8為一電子裝置,其包含一處理器、一記憶體裝置、以及耦合至該記憶體裝置並包含邏輯之一控制器,來從一主機裝置接收讀取儲存於該記憶體裝置之資料的一讀取請求、其中該資料之一部分儲存於多個(N)晶粒中的每一者,而與該資料相關聯之一錯誤修正碼(ECC)的一部分儲存於該等多個(N)晶粒中的每一者,響應該讀取請求,而從該記憶體裝置擷取該資料、對於從該記憶體裝置擷取之該資料執行一錯誤修正碼(ECC)檢查、以及響應對於從該記憶體裝置擷取之該資料上的該ECC檢查中之一錯誤而引動一回復演算法。
範例9中,範例8之標的可隨選地包括該資料包含一ECC碼字、以及該ECC檢查包含估計於該資料與該ECC碼上執行一互斥OR(XOR)操作之一結果的一安排。
範例10中,範例8至9之任一個的標的可隨選地包括邏輯,至少部分包括硬體邏輯,來將從該記憶體裝置擷取之資料以及從該記憶體裝置擷取之資料上執行一XOR操作的結果來計算一第二XOR。
範例11中,範例8至10之任一個的標的可隨選地包括邏輯,至少部分包括硬體邏輯,來於執行該第二XOR操作之結果皆為零時將該資料返回該主機裝置。
範例12中,範例8至11之任一個的標的可隨選地包括邏輯,至少部分包括硬體邏輯,來於該第二XOR之內
容皆為零時將該資料返回該主機裝置。
範例13中,範例8至12之任一個的標的可隨選地包括邏輯,至少部分包括硬體邏輯,來於該第二XOR之內容皆為零時將該資料返回該主機裝置。
範例14中,範例8至13之任一個的標的可隨選地包括至少部分包括硬體邏輯之邏輯,來於該第二XOR之內容包括一個1時將一讀取錯誤返回該主機裝置。
範例15為一種包含儲存在一非暫態電腦可讀媒體中之邏輯指令的電腦程式產品,該等指令由耦合至一記憶體裝置之一控制器執行時,可組配該控制器來從一主機裝置接收讀取至該記憶體裝置之一資料線的一讀取請求,其中該資料分散於多個(N)晶粒間並包含分散於該等多個(N)晶粒間之一錯誤修正碼(ECC)、從該記憶體裝置擷取該資料線、對於從該記憶體裝置擷取之該資料線執行一錯誤修正碼(ECC)檢查、以及響應從該記憶體裝置擷取之該資料線上的ECC檢查中之一錯誤而引動一回復演算法。
範例16中,範例15之標的可隨選地包括該資料包含一ECC碼字、以及該ECC檢查包含估計於該資料與該ECC碼上執行一互斥OR(XOR)操作之一結果的一安排。
範例17中,範例15至16之任一個的標的可隨選地包括儲存在一非暫態電腦可讀媒體中之邏輯指令,該等指令由耦合至一記憶體裝置之一控制器執行時,可組配該控制器來將從該記憶體裝置擷取之資料以及從該記憶體裝置擷取之資料上執行一XOR操作的結果來計算一第二XOR。
範例18中,範例15至17之任一個的標的可隨選地包括儲存在一非暫態電腦可讀媒體中之邏輯指令,該等指令由耦合至一記憶體裝置之一控制器執行時,可組配該控制器來於執行該第二XOR之結果皆為零時將該資料返回該主機裝置。
範例19中,範例15至18之任一個的標的可隨選地包括儲存在一非暫態電腦可讀媒體中之邏輯指令,該等指令由耦合至一記憶體裝置之一控制器執行時,可組配該控制器來於該第二XOR之內容皆為零時將該資料返回該主機裝置。
範例20中,範例15至19之任一個的標的可隨選地包括儲存在一非暫態電腦可讀媒體中之邏輯指令,該等指令由耦合至一記憶體裝置之一控制器執行時,可組配該控制器來於該第二XOR之內容皆為零時將該資料返回該主機裝置。
範例21中,範例15至20之任一個的標的可隨選地包括儲存在一非暫態電腦可讀媒體中之邏輯指令,該等指令由耦合至一記憶體裝置之一控制器執行時,可組配該控制器來於該第二XOR之內容包括一個1時將一讀取錯誤返回該主機裝置。
本發明之各種不同實施例中,本文,例如,參照圖1至10說明之操作,可作為硬體(例如,電路)、軟體、韌體、微碼、或其組合來予以執行,其可提供來作為一電腦程式產品,例如,包括儲存有指令(或軟體程序)之一有形(例
如,非暫態)機器可讀或電腦可讀媒體,該等指令用來規劃一電腦執行本文說明之一程序。此外,藉由範例,該術語“邏輯”可包括軟體、硬體、或軟體與硬體之組合。該機器可讀媒體可包括諸如本文所述之一儲存裝置。
說明書中參照為“一實施例”、“某一實施例”表示,與該實施例相關說明之一特別特徵、結構、或特性可包括在至少一實施例中。該說明書之各種不同地方出現該片語“於一實施例中”可或可不全參照為相同實施例。
此外,該說明與請求項中,可使用該等術語“耦合”與“連接”、以及其衍生名詞。本發明之某些實施例中,“連接”可用於表示兩個或更多元件直接以實體或電氣方式彼此接觸。“耦合”可表示兩個或更多元件直接以實體或電氣方式接觸。然而,“耦合”亦可表示兩個或更多元件不直接以實體或電氣方式彼此接觸,但仍可彼此協力操作或互動。
因此,雖然本發明之實施例以特定於結構上特徵及/或方法學動作之語言來說明,但應了解請求標的可不侷限於所述之該特定特徵或動作。而是,該等特定特徵與動作揭示來作為執行該請求標的之樣本型式。
100‧‧‧中央處理單元封裝體
110‧‧‧處理器
120‧‧‧控制集線器
122‧‧‧記憶體控制器
124‧‧‧記憶體介面
130‧‧‧局部記憶體
140‧‧‧遠端記憶體
142‧‧‧控制器
144、160‧‧‧通信匯流排
150‧‧‧記憶體裝置
Claims (21)
- 一種記憶體,包含有:一記憶體裝置;以及一控制器,其耦合至該記憶體裝置並包含至少部分包括硬體邏輯之用以執行下列步驟的邏輯:從一主機裝置接收讀取儲存於該記憶體裝置之資料的一讀取請求,其中該資料之一部分係儲存於多個(N)晶粒中的每一者,而與該資料相關聯之一錯誤修正碼(ECC)的一部分係儲存於該等多個(N)晶粒中的每一者;響應該讀取請求,而從該記憶體裝置擷取該資料;對於從該記憶體裝置擷取之該資料執行一錯誤修正碼(ECC)檢查;以及響應對於從該記憶體裝置擷取之該資料上的該ECC檢查中之一錯誤而引動一回復演算法。
- 如請求項1之記憶體,其中:該資料包含一ECC碼字;以及該ECC檢查包含估計於該資料與該ECC碼上執行一互斥OR(XOR)操作之一結果。
- 如請求項2之記憶體,其中該控制器更包含至少部分包括硬體邏輯之用以執行下列步驟的邏輯:從擷取自該記憶體裝置之該資料以及在擷取自該 記憶體裝置之該資料上執行一XOR操作的結果來計算一第二XOR。
- 如請求項3之記憶體,其中該控制器更包含至少部分包括硬體邏輯之用以執行下列步驟的邏輯:當執行該第二XOR操作之結果皆為零時,將該資料返回該主機裝置。
- 如請求項3之記憶體,其中該控制器更包含至少部分包括硬體邏輯之用以相繼執行下列步驟的邏輯:將一個1的一位置設置在該第二XOR上;以及執行橫跨該等晶粒之一迴圈以相繼執行下列步驟:於對應該第二XOR中該1的位置之一位置上反轉一晶粒中之一位元;以及重新計算該第二XOR。
- 如請求項5之記憶體,其中該控制器更包含至少部分包括硬體邏輯之用以執行下列步驟的邏輯:當該第二XOR之內容皆為零時,將該資料返回該主機裝置。
- 如請求項5之記憶體,其中該控制器更包含至少部分包括硬體邏輯之用以執行下列步驟的邏輯:當該第二XOR之內容包括一個1時,將一讀取錯誤返回該主機裝置。
- 一種電子裝置,其包含有:一處理器;以及 一記憶體,包含有:一記憶體裝置;以及一控制器,其耦合至該記憶體裝置並包含至少部分包括硬體邏輯之用以執行下列步驟的邏輯:從一主機裝置接收讀取至該記憶體裝置之一資料線的一讀取請求,其中該資料分散於多個(N)晶粒間並包含分散於該等多個(N)晶粒間之一錯誤修正碼(ECC);從該記憶體裝置擷取該資料線;對於從該記憶體裝置擷取之該資料線執行一錯誤修正碼(ECC)檢查;以及響應對於從該記憶體裝置擷取之該資料線上的該ECC檢查中之一錯誤而引動一回復演算法。
- 如請求項8之電子裝置,其中:該資料線包含一ECC碼字;該ECC檢查包含估計該資料線與該ECC碼之一XOR。
- 如請求項9之電子裝置,其中該控制器更包含至少部分包括硬體邏輯之用以執行下列步驟的邏輯:從擷取自該記憶體裝置之該資料線以及在擷取自該記憶體裝置之該資料線的XOR來計算一第二XOR。
- 如請求項10之電子裝置,其中該控制器更包含至少部分包括硬體邏輯之用以執行下列步驟的邏輯: 當該第二XOR之結果皆為零時,將該資料返回該主機裝置。
- 如請求項3之電子裝置,其中該控制器更包含至少部分包括硬體邏輯之用以相繼執行下列步驟的邏輯:將一個1的一位置設置在該第二XOR上;以及執行橫跨該等晶粒之一迴圈以相繼執行下列步驟:於對應該第二XOR中該1的位置之一位置上反轉一晶粒中之一位元;以及重新計算該第二XOR。
- 如請求項12之電子裝置,其中該控制器更包含至少部分包括硬體邏輯之用以執行下列步驟的邏輯:當該第二XOR之內容皆為零時,將該資料返回該主機裝置。
- 如請求項12之電子裝置,其中該控制器更包含至少部分包括硬體邏輯之用以執行下列步驟的邏輯:當該第二XOR之內容包括一個1時,將一讀取錯誤返回該主機裝置。
- 一種電腦程式產品,其包含儲存在一非暫態電腦可讀媒體中之邏輯指令,該等指令由耦合至一記憶體裝置之一控制器執行時,可組配該控制器來執行下列步驟:從一主機裝置接收讀取至該記憶體裝置之一資料線的一讀取請求,其中該資料分散於多個(N)晶粒間並包含分散於該等多個(N)晶粒間之一錯誤修正碼 (ECC);從該記憶體裝置擷取該資料線;對於從該記憶體裝置擷取之該資料線執行一錯誤修正碼(ECC)檢查;以及響應對於從該記憶體裝置擷取之該資料線上的該ECC檢查中之一錯誤而引動一回復演算法。
- 如請求項15之電腦程式產品,其中:該資料線包含一ECC碼字;該ECC檢查包含估計該資料線與該ECC碼之一XOR。
- 如請求項16之電腦程式產品,其中該控制器更包含儲存在一非暫態電腦可讀媒體中之邏輯指令,該等指令由耦合至一記憶體裝置之一控制器執行時,可組配該控制器來執行下列步驟:從擷取自該記憶體裝置之該資料線以及在擷取自該記憶體裝置之該資料線的XOR來計算一第二XOR。
- 如請求項17之電腦程式產品,其中該控制器更包含儲存在一非暫態電腦可讀媒體中之邏輯指令,該等指令由耦合至一記憶體裝置之一控制器執行時,可組配該控制器來執行下列步驟:當該第二XOR之結果皆為零時,將該資料返回該主機裝置。
- 如請求項17之電腦程式產品,其中該控制器更包含儲存在一非暫態電腦可讀媒體中之邏輯指令,該等指令由耦 合至一記憶體裝置之一控制器執行時,可組配該控制器來相繼執行下列步驟:將一個1的一位置設置在該第二XOR上;以及執行橫跨該等晶粒之一迴圈以相繼執行下列步驟:於對應該第二XOR中該1的位置之一位置上反轉一晶粒中之一位元;以及重新計算該第二XOR。
- 如請求項19之電腦程式產品,更包含儲存在一非暫態電腦可讀媒體中之邏輯指令,該等指令由耦合至一記憶體裝置之一控制器執行時,可組配該控制器來執行下列步驟:當該第二XOR之內容皆為零時,將該資料返回該主機裝置。
- 如請求項19之電腦程式產品,更包含儲存在一非暫態電腦可讀媒體中之邏輯指令,該等指令由耦合至一記憶體裝置之一控制器執行時,可組配該控制器來執行下列步驟:當該第二XOR之內容包括一個1時,將一讀取錯誤返回該主機裝置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/493,956 US9652321B2 (en) | 2014-09-23 | 2014-09-23 | Recovery algorithm in non-volatile memory |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201618119A true TW201618119A (zh) | 2016-05-16 |
TWI587308B TWI587308B (zh) | 2017-06-11 |
Family
ID=55525837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104125962A TWI587308B (zh) | 2014-09-23 | 2015-08-10 | 於非依電性記憶體中之回復演算法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9652321B2 (zh) |
KR (1) | KR102242872B1 (zh) |
CN (1) | CN106663472B (zh) |
TW (1) | TWI587308B (zh) |
WO (1) | WO2016048495A1 (zh) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10115446B1 (en) | 2015-04-21 | 2018-10-30 | Spin Transfer Technologies, Inc. | Spin transfer torque MRAM device with error buffer |
US10163479B2 (en) | 2015-08-14 | 2018-12-25 | Spin Transfer Technologies, Inc. | Method and apparatus for bipolar memory write-verify |
US10033411B2 (en) | 2015-11-20 | 2018-07-24 | Intel Corporation | Adjustable error protection for stored data |
US10437723B2 (en) | 2016-09-27 | 2019-10-08 | Spin Memory, Inc. | Method of flushing the contents of a dynamic redundancy register to a secure storage area during a power down in a memory device |
US10366774B2 (en) | 2016-09-27 | 2019-07-30 | Spin Memory, Inc. | Device with dynamic redundancy registers |
US10192601B2 (en) | 2016-09-27 | 2019-01-29 | Spin Transfer Technologies, Inc. | Memory instruction pipeline with an additional write stage in a memory device that uses dynamic redundancy registers |
US10437491B2 (en) | 2016-09-27 | 2019-10-08 | Spin Memory, Inc. | Method of processing incomplete memory operations in a memory device during a power up sequence and a power down sequence using a dynamic redundancy register |
US10460781B2 (en) | 2016-09-27 | 2019-10-29 | Spin Memory, Inc. | Memory device with a dual Y-multiplexer structure for performing two simultaneous operations on the same row of a memory bank |
US10818331B2 (en) | 2016-09-27 | 2020-10-27 | Spin Memory, Inc. | Multi-chip module for MRAM devices with levels of dynamic redundancy registers |
US10360964B2 (en) | 2016-09-27 | 2019-07-23 | Spin Memory, Inc. | Method of writing contents in memory during a power up sequence using a dynamic redundancy register in a memory device |
US10628316B2 (en) | 2016-09-27 | 2020-04-21 | Spin Memory, Inc. | Memory device with a plurality of memory banks where each memory bank is associated with a corresponding memory instruction pipeline and a dynamic redundancy register |
US10446210B2 (en) | 2016-09-27 | 2019-10-15 | Spin Memory, Inc. | Memory instruction pipeline with a pre-read stage for a write operation for reducing power consumption in a memory device that uses dynamic redundancy registers |
US10546625B2 (en) | 2016-09-27 | 2020-01-28 | Spin Memory, Inc. | Method of optimizing write voltage based on error buffer occupancy |
US10192602B2 (en) | 2016-09-27 | 2019-01-29 | Spin Transfer Technologies, Inc. | Smart cache design to prevent overflow for a memory device with a dynamic redundancy register |
US10656994B2 (en) | 2017-10-24 | 2020-05-19 | Spin Memory, Inc. | Over-voltage write operation of tunnel magnet-resistance (“TMR”) memory device and correcting failure bits therefrom by using on-the-fly bit failure detection and bit redundancy remapping techniques |
US10529439B2 (en) | 2017-10-24 | 2020-01-07 | Spin Memory, Inc. | On-the-fly bit failure detection and bit redundancy remapping techniques to correct for fixed bit defects |
US10489245B2 (en) | 2017-10-24 | 2019-11-26 | Spin Memory, Inc. | Forcing stuck bits, waterfall bits, shunt bits and low TMR bits to short during testing and using on-the-fly bit failure detection and bit redundancy remapping techniques to correct them |
US10481976B2 (en) | 2017-10-24 | 2019-11-19 | Spin Memory, Inc. | Forcing bits as bad to widen the window between the distributions of acceptable high and low resistive bits thereby lowering the margin and increasing the speed of the sense amplifiers |
US10395712B2 (en) | 2017-12-28 | 2019-08-27 | Spin Memory, Inc. | Memory array with horizontal source line and sacrificial bitline per virtual source |
US10395711B2 (en) | 2017-12-28 | 2019-08-27 | Spin Memory, Inc. | Perpendicular source and bit lines for an MRAM array |
US10360962B1 (en) | 2017-12-28 | 2019-07-23 | Spin Memory, Inc. | Memory array with individually trimmable sense amplifiers |
US10891997B2 (en) | 2017-12-28 | 2021-01-12 | Spin Memory, Inc. | Memory array with horizontal source line and a virtual source line |
US10424726B2 (en) | 2017-12-28 | 2019-09-24 | Spin Memory, Inc. | Process for improving photoresist pillar adhesion during MRAM fabrication |
US10811594B2 (en) | 2017-12-28 | 2020-10-20 | Spin Memory, Inc. | Process for hard mask development for MRAM pillar formation using photolithography |
US10886330B2 (en) | 2017-12-29 | 2021-01-05 | Spin Memory, Inc. | Memory device having overlapping magnetic tunnel junctions in compliance with a reference pitch |
US10840439B2 (en) | 2017-12-29 | 2020-11-17 | Spin Memory, Inc. | Magnetic tunnel junction (MTJ) fabrication methods and systems |
US10546624B2 (en) | 2017-12-29 | 2020-01-28 | Spin Memory, Inc. | Multi-port random access memory |
US10367139B2 (en) | 2017-12-29 | 2019-07-30 | Spin Memory, Inc. | Methods of manufacturing magnetic tunnel junction devices |
US10784439B2 (en) | 2017-12-29 | 2020-09-22 | Spin Memory, Inc. | Precessional spin current magnetic tunnel junction devices and methods of manufacture |
US10840436B2 (en) | 2017-12-29 | 2020-11-17 | Spin Memory, Inc. | Perpendicular magnetic anisotropy interface tunnel junction devices and methods of manufacture |
US10424723B2 (en) | 2017-12-29 | 2019-09-24 | Spin Memory, Inc. | Magnetic tunnel junction devices including an optimization layer |
US10438996B2 (en) | 2018-01-08 | 2019-10-08 | Spin Memory, Inc. | Methods of fabricating magnetic tunnel junctions integrated with selectors |
US10438995B2 (en) | 2018-01-08 | 2019-10-08 | Spin Memory, Inc. | Devices including magnetic tunnel junctions integrated with selectors |
US10446744B2 (en) | 2018-03-08 | 2019-10-15 | Spin Memory, Inc. | Magnetic tunnel junction wafer adaptor used in magnetic annealing furnace and method of using the same |
US10529915B2 (en) | 2018-03-23 | 2020-01-07 | Spin Memory, Inc. | Bit line structures for three-dimensional arrays with magnetic tunnel junction devices including an annular free magnetic layer and a planar reference magnetic layer |
US11107978B2 (en) | 2018-03-23 | 2021-08-31 | Spin Memory, Inc. | Methods of manufacturing three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer |
US11107974B2 (en) | 2018-03-23 | 2021-08-31 | Spin Memory, Inc. | Magnetic tunnel junction devices including a free magnetic trench layer and a planar reference magnetic layer |
US10784437B2 (en) | 2018-03-23 | 2020-09-22 | Spin Memory, Inc. | Three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer |
CN110309012B (zh) * | 2018-03-27 | 2021-01-26 | 杭州海康威视数字技术股份有限公司 | 一种数据处理方法及其装置 |
US10824504B2 (en) * | 2018-04-16 | 2020-11-03 | International Business Machines Corporation | Common high and low random bit error correction logic |
US10411185B1 (en) | 2018-05-30 | 2019-09-10 | Spin Memory, Inc. | Process for creating a high density magnetic tunnel junction array test platform |
US10593396B2 (en) | 2018-07-06 | 2020-03-17 | Spin Memory, Inc. | Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations |
US10692569B2 (en) | 2018-07-06 | 2020-06-23 | Spin Memory, Inc. | Read-out techniques for multi-bit cells |
US10600478B2 (en) | 2018-07-06 | 2020-03-24 | Spin Memory, Inc. | Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations |
US10559338B2 (en) | 2018-07-06 | 2020-02-11 | Spin Memory, Inc. | Multi-bit cell read-out techniques |
US10725862B2 (en) * | 2018-07-06 | 2020-07-28 | Macronix International Co., Ltd. | Data recovery method to error correction code in memory |
US10824502B2 (en) * | 2018-08-08 | 2020-11-03 | Micron Technology, Inc. | Enhanced codeword for media persistence and diagnostics |
US10650875B2 (en) | 2018-08-21 | 2020-05-12 | Spin Memory, Inc. | System for a wide temperature range nonvolatile memory |
US10699761B2 (en) | 2018-09-18 | 2020-06-30 | Spin Memory, Inc. | Word line decoder memory architecture |
US11621293B2 (en) | 2018-10-01 | 2023-04-04 | Integrated Silicon Solution, (Cayman) Inc. | Multi terminal device stack systems and methods |
US10971680B2 (en) | 2018-10-01 | 2021-04-06 | Spin Memory, Inc. | Multi terminal device stack formation methods |
US11107979B2 (en) | 2018-12-28 | 2021-08-31 | Spin Memory, Inc. | Patterned silicide structures and methods of manufacture |
US10936415B2 (en) * | 2019-06-28 | 2021-03-02 | Western Digital Technologies, Inc. | Error correction scheme in flash memory |
US11183267B2 (en) * | 2019-07-12 | 2021-11-23 | Micron Technology, Inc. | Recovery management of retired super management units |
CN113050874A (zh) * | 2019-12-26 | 2021-06-29 | 华为技术有限公司 | 一种内存设置方法以及装置 |
KR20210141156A (ko) | 2020-05-15 | 2021-11-23 | 삼성전자주식회사 | 페이지 장애에 기초하여 메모리 고장을 예견하고, 예견되는 메모리 고장을 관리하는 시스템의 운영 체계 핸들링 |
US11593197B2 (en) * | 2020-12-23 | 2023-02-28 | Samsung Electronics Co., Ltd. | Storage device with data quality metric and selectable data recovery scheme |
US11722151B2 (en) | 2021-08-09 | 2023-08-08 | Micron Technology, Inc. | Bit flipping decoder based on soft information |
US11777522B1 (en) | 2022-03-28 | 2023-10-03 | Micron Technology, Inc. | Bit flipping decoder with dynamic bit flipping criteria |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7028213B2 (en) * | 2001-09-28 | 2006-04-11 | Hewlett-Packard Development Company, L.P. | Error indication in a raid memory system |
US7173852B2 (en) * | 2003-10-03 | 2007-02-06 | Sandisk Corporation | Corrected data storage and handling methods |
US8291295B2 (en) * | 2005-09-26 | 2012-10-16 | Sandisk Il Ltd. | NAND flash memory controller exporting a NAND interface |
US7490263B2 (en) * | 2006-01-17 | 2009-02-10 | Allen King | Apparatus, system, and method for a storage device's enforcing write recovery of erroneous data |
US20070268905A1 (en) * | 2006-05-18 | 2007-11-22 | Sigmatel, Inc. | Non-volatile memory error correction system and method |
US8806293B2 (en) * | 2008-10-09 | 2014-08-12 | Micron Technology, Inc. | Controller to execute error correcting code algorithms and manage NAND memories |
US8225069B2 (en) * | 2009-03-31 | 2012-07-17 | Intel Corporation | Control of on-die system fabric blocks |
US20110040924A1 (en) * | 2009-08-11 | 2011-02-17 | Selinger Robert D | Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code |
US20110041005A1 (en) * | 2009-08-11 | 2011-02-17 | Selinger Robert D | Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System |
US20110041039A1 (en) * | 2009-08-11 | 2011-02-17 | Eliyahou Harari | Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device |
US8595411B2 (en) * | 2009-12-30 | 2013-11-26 | Sandisk Technologies Inc. | Method and controller for performing a sequence of commands |
US8443263B2 (en) * | 2009-12-30 | 2013-05-14 | Sandisk Technologies Inc. | Method and controller for performing a copy-back operation |
US20120110244A1 (en) * | 2010-11-02 | 2012-05-03 | Micron Technology, Inc. | Copyback operations |
KR101778782B1 (ko) * | 2011-04-08 | 2017-09-27 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US9086983B2 (en) * | 2011-05-31 | 2015-07-21 | Micron Technology, Inc. | Apparatus and methods for providing data integrity |
US8589761B2 (en) * | 2011-05-31 | 2013-11-19 | Micron Technology, Inc. | Apparatus and methods for providing data integrity |
US20130304970A1 (en) * | 2012-04-20 | 2013-11-14 | Stec, Inc. | Systems and methods for providing high performance redundant array of independent disks in a solid-state device |
KR20130130484A (ko) * | 2012-05-22 | 2013-12-02 | 삼성전자주식회사 | 읽기 카운터 로직을 포함하는 플래시 메모리 시스템 |
KR20140031515A (ko) * | 2012-09-03 | 2014-03-13 | 삼성전자주식회사 | 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치 |
US8959407B2 (en) * | 2012-11-28 | 2015-02-17 | Intel Corporation | Scaling factors for hard decision reads of codewords distributed across die |
US9021339B2 (en) * | 2012-11-29 | 2015-04-28 | Western Digital Technologies, Inc. | Data reliability schemes for data storage systems |
US9110829B2 (en) | 2012-11-30 | 2015-08-18 | Taiwan Semiconductor Manufacturing Co. Ltd. | MRAM smart bit write algorithm with error correction parity bits |
JP2015018451A (ja) * | 2013-07-11 | 2015-01-29 | 株式会社東芝 | メモリコントローラ、記憶装置およびメモリ制御方法 |
US10073731B2 (en) * | 2013-11-27 | 2018-09-11 | Intel Corporation | Error correction in memory |
-
2014
- 2014-09-23 US US14/493,956 patent/US9652321B2/en active Active
-
2015
- 2015-08-10 TW TW104125962A patent/TWI587308B/zh active
- 2015-08-20 WO PCT/US2015/046024 patent/WO2016048495A1/en active Application Filing
- 2015-08-20 CN CN201580044846.8A patent/CN106663472B/zh active Active
- 2015-08-20 KR KR1020177004432A patent/KR102242872B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
US20160085621A1 (en) | 2016-03-24 |
WO2016048495A1 (en) | 2016-03-31 |
CN106663472A (zh) | 2017-05-10 |
US9652321B2 (en) | 2017-05-16 |
TWI587308B (zh) | 2017-06-11 |
KR102242872B1 (ko) | 2021-04-21 |
KR20170032424A (ko) | 2017-03-22 |
CN106663472B (zh) | 2021-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI587308B (zh) | 於非依電性記憶體中之回復演算法 | |
CN106575346B (zh) | 存储器中的加密完整性校验 | |
KR101730306B1 (ko) | 메모리에서의 오류 정정 | |
US10572343B2 (en) | Targeted aliasing single error correction (SEC) code | |
KR101767018B1 (ko) | 비휘발성 메모리에서의 오류 정정 | |
JP7276742B2 (ja) | メモリエラーを訂正するための共有パリティチェック | |
TWI546815B (zh) | 錯誤檢測與校正之設備及方法 | |
CN105474184B (zh) | 用来管理高容量储存器装置的设备和方法 | |
KR102533062B1 (ko) | 비휘발성 메모리에서 결함에 대한 내성을 향상시키기 위한 방법 및 장치 | |
CN105210046B (zh) | 存储器等待时间管理 | |
WO2014051797A1 (en) | Techniques associated with error correction for encoded data | |
US20170123892A1 (en) | Parity check circuit and memory device including the same | |
US11664083B2 (en) | Memory, memory system having the same and operating method thereof | |
TWI569277B (zh) | 用以於分散式碼字儲存系統中定位故障晶粒之計數器 | |
CN116266148A (zh) | 用于存储器内计算/邻存储器计算的端到端数据保护 | |
US20160378594A1 (en) | Method and apparatus to decode low density parity codes | |
KR102518010B1 (ko) | 휘발성 메모리에 대한 극성 기반 데이터 트랜스퍼 기능 | |
CN108665940B (zh) | Ecc编码电路、解码电路以及存储器控制器 | |
KR20210150149A (ko) | 신드롬과 부분 계수 정보를 병렬적으로 생성하는 에러 정정 장치 및 방법 | |
WO2023035136A1 (zh) | 用于存储器的数据保护方法及其存储装置 |