TWI842137B - 記憶體中之錯誤更正碼功率消耗優化 - Google Patents
記憶體中之錯誤更正碼功率消耗優化 Download PDFInfo
- Publication number
- TWI842137B TWI842137B TW111139443A TW111139443A TWI842137B TW I842137 B TWI842137 B TW I842137B TW 111139443 A TW111139443 A TW 111139443A TW 111139443 A TW111139443 A TW 111139443A TW I842137 B TWI842137 B TW I842137B
- Authority
- TW
- Taiwan
- Prior art keywords
- parity
- ecc
- circuit
- memory
- unit
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 173
- 238000005457 optimization Methods 0.000 title description 2
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000004364 calculation method Methods 0.000 claims abstract description 36
- 238000012937 correction Methods 0.000 claims description 59
- 238000012795 verification Methods 0.000 claims description 10
- 230000003213 activating effect Effects 0.000 claims description 6
- 238000011156 evaluation Methods 0.000 claims 1
- 208000011580 syndromic disease Diseases 0.000 abstract description 23
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000008878 coupling Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 4
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 3
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 206010011906 Death Diseases 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
本發明係關於一種記憶體裝置,其包括包含複數個記憶體胞元之一陣列及一操作單元,該操作單元包括一編碼單元,該編碼單元經組態以將使用者資料儲存於該記憶體陣列之複數個記憶體胞元中,且將與該使用者資料相關聯之同位資料儲存於該記憶體陣列之若干同位胞元中,該操作單元進一步包括一解碼單元,該解碼單元繼而包括經組態以從該等經儲存使用者資料及同位資料計算一ECC校驗子之一校驗子產生單元,其中該校驗子產生單元包括複數個電路部分,各電路部分經組態以計算該ECC校驗子之一各自校驗子部分。該操作單元經組態以啟動該校驗子產生單元之一第一電路部分以用於計算一第一校驗子部分,及基於該經計算之第一校驗子部分決定是否啟動一第二電路部分以用於一第二校驗子部分之該計算。本文中亦揭示相關方法及系統。
Description
本發明大體上係關於一記憶體胞元陣列之管理及操作,且更特定言之係關於用以優化具有錯誤更正碼(ECC)保護之記憶體之效能以減少ECC功率消耗的裝置及方法。
記憶體裝置用於許多電子系統中,諸如行動電話、個人數位助理、膝上型電腦、數位相機及類似者。在記憶體裝置中使用各種類型之記憶體,包含隨機存取記憶體(RAM)、唯讀記憶體(ROM)、動態RAM (DRAM)、同步動態RAM (SDRAM)、鐵電RAM (FeRAM)、磁性RAM (MRAM)、電阻式RAM (RRAM)、快閃記憶體、相變記憶體(PCM)等等。記憶體裝置可為揮發性的或非揮發性的。非揮發性記憶體在電源關閉時保持其內容,此使其等成為記憶體裝置中用於儲存待在一系統重新啟動(power-cycle)之後擷取之資訊的良好選擇。特定言之,非揮發性記憶體胞元可甚至在缺少一外部電源之情況下維持其等之經儲存邏輯狀態達延長時段。
藉由程式化一記憶體裝置之不同狀態而儲存資訊。例如,二進位裝置具有通常由一邏輯「1」或一邏輯「0」表示之兩種狀態。在其他系統中,可儲存兩個以上狀態。為存取經儲存資訊,記憶體裝置之一組件可讀取或感測經儲存狀態。為儲存資訊,記憶體裝置之一組件可寫入或程式化邏輯狀態。
改良記憶體裝置可包含增加記憶體胞元密度、增加讀取/寫入速度、增加可靠性、增加資料保持、降低製造成本、按比例縮放小於傳統裝置以及降低功率消耗。
歸因於各種因素(諸如存取次數、製程之品質、環境因素及類似者),記憶體胞元在其生命週期期間具有變化實體及電氣特性。錯誤更正碼(ECC)通常根據記憶體裝置之胞元之一經定義狀態(例如,胞元之壽命終止可靠性)來校準,且因此大體上在陣列之整個壽命內以其最高更正功率使用。因此,通常存在過度功率消耗。因此,期望改良具備ECC電路之記憶體裝置之功率消耗。
在本發明之一些實施例中,一種記憶體裝置包括:一陣列,其包含複數個記憶體胞元;及一操作單元。一操作單元包括:一編碼單元,其經組態以:將使用者資料儲存於該記憶體陣列之複數個記憶體胞元中;及將與該使用者資料相關聯之同位資料儲存於該記憶體陣列之若干同位胞元中;一解碼單元,其包括經組態以從該等經儲存使用者資料及同位資料計算一ECC校驗子(syndrome)之一校驗子產生單元。該校驗子產生單元包括複數個電路部分,各電路部分經組態以計算該ECC校驗子之一各自校驗子部分。該操作單元經組態以:啟動該校驗子產生單元之一第一電路部分以用於計算一第一校驗子部分;及基於該經計算之第一校驗子部分決定是否啟動一第二電路部分以用於一第二校驗子部分之計算。
在本發明之一些實施例中,一種用於操作一記憶體胞元陣列之方法包括:將使用者資料儲存於該記憶體陣列之複數個記憶體胞元中;將與該使用者資料相關聯之同位資料儲存於該記憶體陣列之若干同位胞元中;及從該等經儲存使用者資料及同位資料計算一ECC校驗子。該ECC校驗子包括一或多個校驗子部分。計算該ECC校驗子包括:計算一第一校驗子部分;及基於該經計算之第一校驗子部分決定是否計算一第二校驗子部分。
在本發明之一些實施例中,一種記憶體裝置包括:一陣列,其包含複數個記憶體胞元;及一控制器。該控制器經組態以:將使用者資料儲存於該記憶體陣列之複數個記憶體胞元中;將與該使用者資料相關聯之同位資料儲存於該記憶體陣列之若干同位胞元中;及從該等經儲存使用者資料及同位資料計算一ECC校驗子。該控制器包括複數個電路部分,各電路部分經組態以計算該ECC校驗子之一各自校驗子部分。該控制器進一步經組態以:啟動該校驗子產生單元之一第一電路部分,以用於基於一目標ECC更正功率來計算一第一校驗子部分;及若該第一校驗子部分具有不同於零之至少一個值,則啟動一第二電路部分以用於一第二校驗子部分之計算。
參考該等圖式,本文中將揭示用於記憶體胞元之一經改良操作及用於降低ECC功率消耗之裝置及方法。
在以下[實施方式]中,闡述許多具體細節以提供所主張標的之一透徹理解。然而,熟習此項技術者將理解,所主張標的可在無此等具體細節之情況下實踐。在其他例項中,並未詳細描述一般技術者將已知之方法、設備及/或系統以免使所主張標的不清楚。
非揮發性記憶體在電源關閉時保持其內容,而使其等成為用於儲存待在一系統重新啟動之後擷取之資訊的良好選擇。一快閃記憶體係一類型之非揮發性記憶體,其保持經儲存資料,且其特徵為非常快的存取時間。此外,其可按區塊而非一次一個位元組地擦除。記憶體之各可擦除區塊包括配置成列及行之一矩陣之複數個非揮發性記憶體胞元。各胞元耦合至一存取線及/或一資料線。藉由操縱存取及資料線上之電壓而程式化及擦除胞元。存取電路可在一記憶體胞元之不同邏輯狀態之間進行區分。例如,在一記憶體讀取的情況中,存取電路將具有一特定量值及極性之一電壓脈衝施加至存取線,此導致專用感測電路可偵測到之一電回應。偵測電回應可包含例如偵測跨陣列之一給定記憶體胞元之端子的一電壓降(例如,一臨限電壓)、通過給定記憶體胞元之電流及給定記憶體胞元之一臨限事件之一或多者。
在本發明中,術語「耦合」可指代直接地抑或間接地實體、電及/或通信連接之元件,且在本文中可與術語「連接」可互換地使用。實體耦合可包含直接接觸。電耦合包含容許組件之間的電氣流量及/或傳訊之一介面或互連。通信耦合包含使組件能夠交換資料之連接,包含有線及無線連接。
圖1係根據本發明之一例示性實施例之包括一記憶體裝置100的一系統1000之一示意性高階方塊圖,此記憶體裝置100經配置、經程式化且經組態以執行如下文揭示之錯誤更正碼(ECC)技術且具有專用ECC電路部分。
記憶體裝置100可為例如一固態硬碟(SSD),且可包含一記憶體區段101、一控制器102及一主機介面103。記憶體區段101不限於一特定架構,且可包含不同類型之記憶體。
控制器102可經由複數個通道耦合至主機介面103及記憶體區段101,且可用於在記憶體區段101與一主機110之間傳送資料。主機介面103可呈一標準化介面之形式。例如,當記憶體裝置100在一運算系統中用於資料儲存時,主機介面103可為一串列進階技術附件(SATA)、高速周邊組件互連(PCIe)或一通用串列匯流排(USB)以及其他連接器及介面。一般而言,主機介面103可提供用於在記憶體裝置100與主機110之間傳遞控制項、位址、資料及其他信號之一介面。
控制器102可包含一嵌入式韌體,且經調適以在內部管理及控制記憶體區段101之操作。控制器102可與記憶體區段101通信以控制資料讀取、寫入及擦除操作以及其他操作。例如,控制器102可包含呈硬體及/或韌體(例如,一或多個積體電路)及/或軟體之形式的若干組件,以用於控制對記憶體區段101之存取及/或促進主機110與該記憶體區段101之間的資料傳送。
因此,記憶體控制器102表示裝置之控制邏輯,其例如回應於由主機110 (其大體上可為非揮發性記憶體之一外部管理系統)之命令而作用。在一些實施例中,記憶體控制器102亦可在主機110中實施,特定言之作為一主機處理器110’之部分,即使本發明不受一特定架構限制。
如關於圖1所揭示,記憶體控制器102可透過輸入/輸出IO接收使用者資料。多個信號線將記憶體控制器102與記憶體區段101耦合。例如,此等信號線可包含時鐘、命令/位址及寫入資料(DQ)、讀取DQ、以及零個或更多個其他信號線。因此,記憶體控制器102可經由合適匯流排可操作地耦合至記憶體區段101。
記憶體裝置100亦可包括其他組件(未展示),諸如耦合至控制器102之處理器單元、天線、與主機裝置110之進一步連接構件及類似者。在任何情況下,本發明不受記憶體裝置100之一特定組態限制。
此外,控制器102亦可包含其自身之記憶體區段(未展示),該記憶體區段與其之其他單元可操作地耦合。在任何情況下,本發明不受控制器102之一特定組態限制。
記憶體裝置100可為經組態以耦合至主機裝置110之一可攜式裝置。然而,在圖式中未展示之其他實施例中,記憶體裝置100亦可嵌入於一或多個主機裝置內。主機110可為例如一個人電腦、一平板電腦、一智慧型電話、一伺服器或類似者。主機110可包含一系統主機板及/或背板,且可包含若干記憶體存取裝置(例如,若干處理器)。
在一些實施例中,控制器102包含一ECC單元104 (其亦稱為ECC引擎),ECC單元104經結構化且經組態以根據如在下文描述之技術操作。
根據本發明之實施例,ECC單元104可包含錯誤更正電路及邏輯以偵測及更正若干位元錯誤。ECC單元104不限於電路(例如,硬體)實施方案。例如,另外,ECC單元104可在韌體及/或軟體中實施。
ECC單元104可由離散組件(諸如一特定應用積體電路(ASIC))或反映由控制器102內不一定具有與控制器102之其他部分分離之一離散實體形式之電路提供的功能性之組件體現。儘管繪示為控制器102內之組件,但ECC單元104可在控制器102外部,或可具有定位於控制器102內之若干組件及定位於控制器102外部之若干組件,其中本發明不受一特定硬體架構限制。在若干實施例中,ECC單元104可包含各別編碼及解碼組件。一般而言,記憶體裝置100因此包括一操作單元(或操作電路) (被指示為104),該操作單元係一ECC引擎(其繼而可耦合至控制器102或整合至控制器102中,控制器102可因此執行該ECC引擎之功能)。
換言之,可如下文所揭示般程式化之ECC單元104之錯誤偵測/更正電路可包含硬體邏輯,以實施一ECC以偵測自記憶體區段101讀取之資料中發生的錯誤。在一項實施例中,錯誤偵測/更正電路亦更正錯誤(取決於基於所實施之ECC碼之一特定錯誤率)。
記憶體裝置100之記憶體區段101可為包含一記憶體胞元陣列之一快閃記憶體,例如,一NAND記憶體、NOR記憶體、AND記憶體及類似者。額外地或替代地,記憶體區段101可包括位元可變記憶體胞元;例如,相變記憶體(PCM)、鐵電記憶體(FeRAM)、磁性記憶體(MRAM)、基於硫族化物之自選擇記憶體(SSM)等。可在本發明之實施例中採用任何種類之記憶體。例如,本發明適用於非揮發性及揮發性記憶體之任一者或兩者。
一般而言,記憶體區段101可包括一記憶體胞元陣列101’。非揮發性記憶體可包括複數個區塊,各區塊在本文中用元件符號101’’指示,且包括定義數目個頁面。為簡單起見,圖1之實例中僅展示四個區塊101’’。
記憶體區段101表示用於記憶體裝置100之記憶體資源。在一項實施例中,記憶體胞元陣列101’被管理為資料列,經由字線(列)及位元線(耦合至一列內之個別位元之行)控制來存取。如先前所揭示,記憶體胞元陣列101’可組織為大體上在複數個部分中之單獨通道、階層(rank)及記憶體庫。通道係至記憶體區段內之儲存位置之獨立控制路徑。階層係指跨多個記憶體裝置之共同位置(例如,不同裝置內之相同列位址)。記憶庫係指一記憶體裝置內之記憶體陣列位置。在一項實施例中,記憶體庫被劃分為子記憶庫,其等具有用於該等子記憶庫之共用電路之至少一部分(例如,驅動器、信號線、控制邏輯)。將理解,通道、階層、記憶庫或記憶體位置之其他組織及組織之組合可與實體資源重疊。例如,可經由一特定通道存取相同實體記憶體位置作為一特定記憶庫,該記憶庫亦可屬於一階層。因此,記憶體資源之組織將以包含性而非排他性方式來理解。
換言之,根據本發明之一實施例,記憶體胞元陣列101’可細分為複數個部分,諸如一頁面、一單一區塊、一區塊群組、或甚至所有區塊(即,所有胞元),本發明不限於此。因此,記憶體胞元可例如分組成包含若干實體頁面之若干區塊。若干區塊可包含於一記憶體胞元平面中且一陣列可包含若干平面。
實施例不限於一特定類型之記憶體陣列或陣列架構,且本發明之技術可應用於數種記憶體技術(例如,平面、交叉點、3D等)。
記憶體區段101亦可包括可操作地耦合至記憶體胞元陣列101’之一進一步電路105。
在一項實施例中,進一步電路105包含存取電路及感測電路,以偵測一或多個記憶體胞元對一經施加讀取電壓之電回應。在一項實施例中,感測電路包含感測放大器。圖1將進一步電路105繪示為嵌入於記憶體區段101中;然而,其他實施例可包含與記憶體區段101分離之存取電路及/或感測電路。例如,存取電路及感測電路可包含於諸如記憶體控制器102之一記憶體控制器中。
此外,記憶體裝置100 (特定言之,記憶體區段101之記憶體胞元陣列101’)可包括便於儲存操作資訊之一非揮發性區107,例如用於根據在下文揭示之實施例之記憶體陣列的管理。
在一項實施例中,記憶體裝置100亦可包括一感測單元108,感測單元108包括可操作地耦合至記憶體區段101且視情況耦合至控制器102之一或多個感測器。感測單元108可經組態以偵測記憶體胞元陣列101’或其之一部分的一狀態(例如,溫度)。
一般而言,記憶體裝置100之特定架構可根據需要及/或情況而變化,而不限制本發明之範疇。
主機110及記憶體裝置100可形成系統1000。如先前提及,主機裝置110係根據本文中所描述之任何實施例之一運算裝置,且可為一膝上型電腦、一桌上型電腦、一伺服器、一遊戲或娛樂控制系統、一掃描機、影印機、印表機、路由或交換裝置、嵌入式運算裝置或諸如一智慧型電話之其他電子裝置。主機110大體上可為管理記憶體區段101之一系統,記憶體區段101可嵌入於該系統中或大體上由該系統管理。因此,記憶體裝置100可由一外部控制器(即,如先前揭示,嵌入於主機110之處理器110’中之控制器)管理,使得ECC單元亦可包含於該外部控制器中。在此情況下,記憶體裝置之控制器可能不存在,且記憶體裝置100 (其可嵌入於主機110中)將所需資訊傳達至外部控制器。
在一項實施例中,系統1000包含耦合至處理器110’之一介面1010,介面1010可表示用於需要較高頻寬連接之系統組件及/或圖形介面組件之一較高速介面或一高輸送量介面。圖形介面介接至圖形組件,以用於為系統1000之一使用者提供一視覺顯示。在一項實施例中,圖形介面基於儲存於記憶體裝置中之資料或基於由處理器執行之操作或兩者來產生一顯示。
系統1000亦可包括網路介面1020,網路介面1020通信地耦合至主機或記憶體裝置,以例如用於與其他系統及/或經耦合以為該系統提供電力之一電池連接。
根據本發明,ECC單元104可經組態以對儲存於記憶體區段101中之一碼字執行具有一特定錯誤更正功率之一ECC操作(錯誤之偵測及/或更正),其中碼字包含特定數目個同位位元,如下文將揭示。
在一些實施例中,實際使用之ECC更正可取決於錯誤數目而變化;換言之,在一些情況下,例如當偵測到之錯誤之數目小於最大可更正錯誤數目時,僅可利用實際可用之全錯誤能力之一小分率。在一些實施例中,可例如基於陣列之記憶體胞元之狀態來動態地修改ECC更正功率。
圖2繪示一例示性使用者資料型樣圖201。使用者資料型樣圖201包含使用者資料210a及經編碼使用者資料215a。在記憶體胞元陣列之程式化階段中執行之編碼程序220a可將使用者資料210a (U1、…、Um)轉換為經編碼使用者資料215a (E1、…、En)。經編碼使用者資料215a可儲存於一組記憶體胞元中,該組記憶體胞元可為例如圖1之記憶體區段101之記憶體胞元。經編碼使用者資料215a之各框可對應於可展現一邏輯狀態1或一邏輯狀態0之一記憶體胞元。在本發明之實施例中,在編碼程序220a期間,可將若干同位位元添加至使用者資料(或酬載) 210a。經編碼使用者資料215a中之位元之數目可大於使用者資料210a中之位元數目(例如,若添加一些位元(例如,同位位元),則n大於m)。程序225可在已準確讀取經編碼使用者資料215a之後將經編碼使用者資料215a轉換回至使用者資料210a。
在一實施例中,待讀取之複數個經編碼位元表示一碼字(CW)。碼字可經程式化以包含待在讀取階段期間使用之各種資訊。為保持一流暢且簡單之描述,在下文將僅提及ECC相關資訊。
如先前提及,當數位資料儲存於一記憶體(諸如圖1之記憶體胞元陣列101’)中時,以使得一解碼器可識別及更正錯誤之方式編碼資料,即,藉由添加若干同位位元來編碼資料串,且在將重構原始資料時,解碼器檢查經編碼訊息以檢查任何錯誤。在特定實施例中,使用者資料位元之一區塊經編碼以成為n個位元之一區塊(即,碼字CW),如圖2中展示。然而,各種編碼方案係可能的。
一般而言,基於編碼方案,藉由操縱使用者資料位元且添加若干同位位元來產生一碼字(例如,如在程序220a中)。在本發明之一些實施例中,經添加同位位元之數目係對應於一經定義最大ECC更正功率之一固定數目。基於解碼方案,接著例如藉由圖1之ECC單元104從使用者資料及同位資料之經編碼集合產生一ECC校驗子。ECC校驗子取決於錯誤之存在及位置而改變。當偵測到錯誤時,ECC單元104能夠取決於且根據所實施之更正功率來更正該等錯誤。在一些情況下,可報告一無法更正錯誤(例如,超過最大更正功率且其位置未知)之存在。在讀回時,根據一ECC方案存取及解碼碼字。
應注意,一ECC電路之功率消耗取決於其更正功率。例如,在相同條件下,ECC3電路可需要比ECC2電路或ECC1電路更多之功率(其中在一些實例中,ECC3可為具有3個位元之更正功率之一錯誤更正碼,ECC2可為具有2個位元之更正功率之一錯誤更正碼,且ECC1可為具有1個位元之更正功率之一錯誤更正碼)。在任何情況下,對於任何給定之ECC更正功率,相對於在需要更正較多錯誤時可消耗之功率,在需要更正較少(或無)錯誤時可消耗較少功率。
為降低功率消耗,根據本發明,一ECC引擎經結構化且經組態使得ECC校驗子(及因此對應校驗子產生電路)被分成彼此獨立地控制之部分。以此方式,在一第一步驟計算一個校驗子部分(及因此啟動一對應校驗子電路部分),而其他校驗子部分可僅在一第二步驟中取決於第一經計算校驗子部分來計算。此容許藉由僅在按需基礎上啟動ECC電路之一子集來降低一ECC操作之功率消耗。
在一些情況下,第一經計算校驗子部分及/或第一及第二經計算校驗子部分可指示不存在錯誤;在此等情況下,可不必要運算第二及/或一第三校驗子部分,因此節省功率,且可輸出資料。若相反,第一經計算校驗子部分及/或第一及第二經計算校驗子部分指示存在一或多個錯誤,則可計算額外校驗子部分以獲得完整校驗子。
一旦已計算ECC校驗子,則ECC電路便能夠計算一碼字中之錯誤數目,且能夠針對經偵測錯誤之數目即時(例如,基於錯誤數目計算)調適其更正功率。例如,當錯誤數目較低時可選擇一較低ECC更正,且當錯誤數目較高時可選擇一較高ECC更正。
圖3展示一碼字300之一實例,碼字300包括對應於酬載(因此包含經編碼使用者資料)之一第一碼字部分301及對應於同位資料之一第二碼字部分302。應注意,此一區別可能有某種隨意性;事實上,一編碼程序(諸如圖2中之程序220a)可組合及混合使用者資料及同位資料,使得應整體考量碼字。
在此實例中,同位資料包含儲存於被表示為P
1、P
3及P
5之同位胞元中之同位位元。換言之,在圖3之實例中,儲存用於計算校驗子S
1(對應於ECC1)、校驗子S
3(與S
1一起對應於ECC2)及校驗子S
5(與S
1及S
3一起對應於ECC3)之若干位元。觀察到,碼字部分302之一單一區塊不必對應於一單一胞元且亦可對應於一胞元群組,例如,其大體上表示用於計算一對應ECC更正功率之校驗子之若干位元。此外,應理解,雖然在圖3中描繪三個保護級別(例如,ECC1、ECC2及ECC3),但可設想任何數目。例如,具有較高(例如,N>3)錯誤更正能力之實施例係可能的。
因此,根據本發明,使用者資料儲存於記憶體陣列之複數個記憶體胞元中,而且與使用者資料相關聯之同位資料儲存於若干同位胞元中。在一些實施例中,經儲存同位位元之數目係預定的且在操作中不變。
更明確言之,本發明提供從經儲存使用者資料及同位資料計算一第一校驗子部分,且接著檢查該第一校驗子部分是否等於零。接著,基於第一校驗子部分之計算,可計算其他校驗子部分,特定言之若該校驗子部分不同於零,則指示存在錯誤。
圖4係根據本發明之一實施例之用於管理一記憶體裝置400 (其可對應於圖1之記憶體裝置100)中之ECC操作的一操作電路401之一示意性方塊圖。如圖4中展示,記憶體裝置400包括用於管理一記憶體胞元陣列400’ (其可對應於圖1之陣列101’)之操作的一操作電路401。操作電路401可為裝置之一控制器(諸如圖1之控制器102)之部分,或可在控制器外部,或可具有定位於控制器內之若干組件及定位於控制器外部之若干組件,其中本發明不受一特定硬體架構限制。
根據本發明之實施例,操作電路401 (在一些實例中,其可對應於圖1之ECC單元104)可包含錯誤更正電路及邏輯,以偵測及更正若干位元錯誤(至多基於所實施之ECC碼之一最大錯誤數目)。操作電路401可由離散組件(諸如一特定應用積體電路)或反映由控制器內不一定具有與控制器之其他部分分離之一離散實體形式之電路提供的功能性之組件體現。因此,在本發明中,術語「操作電路」以一般且非限制性方式使用。
在若干實施例中,操作電路401可包含各別編碼及解碼組件。更特定言之,如圖4中展示,操作電路401包括一編碼單元402,編碼單元402經組態以根據編碼方案產生一碼字。碼字可包括儲存於複數個記憶體胞元中之酬載資料及儲存於同位胞元中之與酬載資料相關聯之同位資料,如關於圖3之碼字300所展示。
操作電路401進一步包括一解碼單元403,解碼單元403經組態以對經儲存碼字執行一ECC操作(諸如位元錯誤偵測及/或更正)。因此,操作電路401能夠經由編碼單元402產生包括酬載資料及同位資料之一碼字,且能夠經由解碼單元403處理該碼字。編碼單元402及解碼單元403可彼此可操作地連接且連接至陣列400’。
解碼單元403可包括經組態以從儲存於輸入碼字中之使用者資料及同位資料產生一ECC校驗子之一校驗子產生單元410。此外,解碼單元403可包括一錯誤單元420,錯誤單元420在偵測到錯誤時被啟動,且經組態以考量碼字中所含之錯誤的數目。解碼單元403可進一步包括一校驗子解碼單元430,校驗子解碼單元430經組態以處理校驗子且對經儲存資料執行一對應ECC操作。
根據本發明,校驗子產生單元410包括複數個電路,該等電路單獨或按群組可形成電路部分,各電路部分經組態以計算一各自之校驗子部分。各校驗子部分可用於實施一ECC更正功率;例如,校驗子部分S
1可用於實施ECC1,而校驗子部分S
3可與S
1一起用於實施ECC2。各電路部分可根據一第一校驗子部分之計算結果由操作電路401選擇性地啟動。如已針對術語「操作電路」觀察到,在本發明中,術語「電路部分」亦以一般且非限制性方式使用,且可以數種方式體現。各校驗子部分(或部分之組合)可指示碼字中不存在錯誤,使得不需要更正,或存在某一錯誤,且應計算額外校驗子部分以正確判定錯誤數目及其等更正。
在本發明之一項實施例中,校驗子產生單元之電路部分可包括一或多個互斥或(XOR)電路,例如配置成列及行之一矩陣。在一些實施例中,一校驗子位元係自記憶體胞元讀取之碼字之許多位元之XOR。不同校驗子位元可具有共同之一些碼字位元,使得其等可共用該等XOR閘之一部分。校驗子位元與碼字位元之間的關聯可由二進位矩陣表示(例如,矩陣中之一「1」指示對應碼字位元促成校驗子位元,而矩陣中之一「0」指示對應位元未促成此校驗子位元)。
在一些實例中,電路部分可單獨或按群組啟動。在本發明之一實施例中,操作電路經組態以選擇性地停用與未計算之校驗子部分相關之電路部分。
基於此一般架構,本發明提供優化ECC操作以降低功率消耗之技術。更明確言之,根據本發明,操作單元經組態以:啟動校驗子產生單元之一第一電路部分以用於計算一第一校驗子部分;及基於該經計算之第一校驗子部分決定是否啟動至少一個第二電路部分以用於一第二校驗子部分之計算。例如,操作單元可經組態以在第一校驗子部分具有不同於零之至少一個值時啟動第二電路部分。
現在參考圖5之實例,一碼字CW經產生且儲存在一陣列500’ (其可對應於圖4之陣列400’)中。當碼字CW儲存於陣列500’中時,可發生一錯誤,此錯誤在圖5中被表示為「e」。接著,將碼字CW作為一輸入饋送至解碼單元503 (其可對應於圖4之解碼單元403)。更特定言之,在解碼單元503中,由一校驗子產生單元510 (其可對應於圖4之校驗子產生單元410)產生一ECC校驗子,如將在下文詳述。接著,若偵測到一或多個錯誤,則由一錯誤單元520 (其可對應於圖4之錯誤單元420)計算錯誤數目。因此,錯誤單元520經組態以基於經計算校驗子判定資料中之錯誤數目。在一實施例中,錯誤單元520由一第一邏輯單元540啟動,第一邏輯單元540經組態以在偵測到錯誤的情況下(例如,當ECC校驗子之至少一個值不同於零時)啟用該錯誤單元520。接著,一校驗子解碼單元530 (其可對應於圖4之校驗子解碼單元430)便於接收經計算校驗子,且執行一ECC操作,使得輸出一經更正碼字。
根據本發明之實施例,校驗子產生單元510可包括用於從碼字之輸入資料計算ECC校驗子之對應部分之複數個電路。例如,在一些實施例中,校驗子產生單元510可包括用於計算S
1之被表示為510’之一電路,用於計算S
3之被表示為510’’之一電路,及用於計算S
5之被表示為510’’’之一電路。顯然,應理解,即使在圖5中僅展示與三個ECC保護級別(即,ECC1、ECC2及ECC3)相關之S
1、S
3及S
5,亦可設想任何數目,且本發明不受所展示實例限制。電路510’、510’’及510’’’可在需要時被啟動,且其等可單獨或彼此組合形成本發明之電路部分。
因此,專門用於計算一所需校驗子部分之ECC區塊可由操作電路基於一先前計算之結果選擇性地啟用。以此方式,可基於一第一校驗子部分計算之結果(例如,S
1)來執行一第二校驗子部分(例如,S
3)之一按需計算。
觀察到,許多組態係可能的;例如,如將在下文詳述,在一些組態中,可基於S
1之先前計算來計算S
3作為第二校驗子部分,且在其他組態中,可基於S
1及S
3之先前計算來計算S
5作為第二校驗子部分,等等,各組態取決於第一計算所需之最小資訊,此繼而取決於ECC保護級別。
若在一第一步驟啟動一第一電路部分(例如,在一ECC2之情況下,僅用於計算S
1之電路510’),且經計算校驗子部分等於零(其指示碼字中不存在錯誤),則不啟動第二電路部分且亦不啟動錯誤單元520。另一方面,若經計算之第一校驗子部分不等於All0 (其指示碼字中存在至少一個錯誤),則在第一電路部分之後啟動一第二電路部分(例如,在一ECC2之情況下,用於計算S
3之電路510’’),且錯誤單元520經組態以基於所有經計算校驗子部分之一組合(例如,對於一ECC2,基於S
1及S
3)來判定錯誤數目。一般而言,根據本發明之實施例,操作電路經組態以在經計算校驗子展現不同於零之至少一個值時啟用錯誤單元520。
仍參考圖5之實例,操作電路(特定言之解碼單元503)包括一第二邏輯單元550,第二邏輯單元550經組態以評估第一校驗子部分值,且偵測該經計算之第一校驗子部分是否為All0或包括不同於零之至少一個值。在一些實施例中,第二邏輯單元550可為第一單元540之部分,或其可由單獨之電路來體現,其中本發明不受一特定硬體架構限制。一般而言,操作單元因此包括用於評估經計算校驗子部分之值及用於基於該第一校驗子部分之計算選擇性地啟用一或多個電路部分之構件。
在一些實施例中,解碼單元503進一步包括耦合至電路510’ (可啟動用於計算S
1)、510’’ (可啟動用於計算S
3)及510’’’ (可啟動用於計算S
5)之一選擇器元件560。例如,選擇器560可經組態以最初選擇電路部分510’以用於第一校驗子部分S
1之計算。基於第一校驗子部分之計算及因此基於第二邏輯單元550之輸出,選擇器元件560經組態以選擇性地啟用一個第二電路部分以計算各自第二校驗子部分。在一些實例中,選擇器元件560可為一多工器。在一些實施例中,選擇器元件可整合至第一及/或第二邏輯單元中。
例如,在一ECC2之情況下,電路510’可最初或始終在作用中,且由第二邏輯單元550處理校驗子S
1(在此情況下,其係第一校驗子部分),且若S
1≠ 0,則連接至第二邏輯單元550之選擇器元件560啟動電路510’’以用於S
3(在此情況下,其係第二校驗子部分)之計算。同樣地,在一ECC3之情況下,電路510’及電路510’’ (其等在一起形成第一電路部分)可最初或始終在作用中,且由第二邏輯單元550處理校驗子S
1及S
3(在一起形成第一校驗子部分),且若S
1≠ 0及/或S
1≠ 0,則連接至第二邏輯單元550之選擇器元件560亦啟動電路510’’’ (在此情況下,其係第二電路部分)以用於S
5(在此情況下,其係第二校驗子部分)之計算。
已觀察到,語詞「第一校驗子部分」、「第一電路部分」、「第二電路部分」、「第二校驗子部分」及類似者不一定指代單一電路或校驗子項,而是可對應於數個電路及校驗子項之一組合。例如,在ECC3之情況下,第一校驗子部分可對應於S
1及S
3之組合,以及第一電路部分可對應於圖5之電路510’及510’’。一般而言,校驗子產生單元510包括複數個電路(例如,圖5之電路510’、510’’及510’’’),該等電路可在邏輯上分組以形成本發明之電路部分。
亦應觀察到,在不脫離本發明之範疇之情況下,可修改圖5之所揭示實施方案。所繪示組態僅為許多可能組態之一者,且本發明不受圖式中所展示之例示性實施例限制。
若碼字之經計算校驗子為零,則對應碼字中不存在錯誤,該碼字在無進一步處理之情況下被傳輸為輸出。
此外,在一些實施例中,待由校驗子解碼單元530應用之ECC更正功率係基於如由錯誤單元520計算之經判定錯誤數目。例如,校驗子解碼單元530可包括複數個校驗子解碼器電路部分(圖式中未展示),各校驗子解碼器電路部分經組態以對經儲存資料執行一特定ECC操作,且可由操作電路選擇性地啟動,該操作電路經組態以基於經判定錯誤數目選擇性地啟動一或多個校驗子解碼器電路部分。以此方式,可僅啟用更正如所判定之實際錯誤數目所嚴格必需之校驗子解碼器電路部分,而可停用不需要之校驗子解碼器電路部分。換言之,可停用用於不同於實際判定之錯誤數目之若干錯誤之更正(例如,一較高ECC更正功率)的電路部分,以進一步降低功率消耗。
根據本發明之一實施例,待計算之第一校驗子部分係可根據一經定義目標ECC選擇之最低部分。一般而言,操作單元經組態以基於目標ECC選擇待計算之第一校驗子部分,其中目標ECC (或ECC範疇,或所實施之ECC)可在設計層級定義。例如,根據一些技術,可實施一ECC2更正引擎。在不同情形中(例如,需求較高之應用、不同之成本/效能規格等),可實施一ECC3引擎(或較高更正功率)。基於此設計選擇,判定對應之第一校驗子部分計算(例如,S
1或S
1+S
3等)。
換言之,根據本發明之實施例,首先選擇一目標ECC,且接著基於該目標ECC選擇待計算之第一校驗子部分。如先前提及,目標ECC可在設計層級選取(例如,其可為例如ECC2、ECC3、ECC4等之一者),或在不同之實施例中,其可在裝置操作期間動態地選擇,例如基於陣列之記憶體胞元之狀態。
觀察到,由於校驗子S
1等效於一ECC1碼,且在一些實施例中,ECC1碼具有一漢明(Hamming)距離3,故若存在零個錯誤,或在一些情況下存在三個或更多個錯誤而非具有一個或兩個錯誤,則該校驗子S
1可為All0。同樣地,S
1及S
3之組合等效於一ECC2碼,在一些實施例中,該ECC2碼具有一漢明距離5。因此,在零錯誤情況下或在五個或更多個錯誤而非具有一個、兩個、三個或四個錯誤之一些情況下,校驗子S
1及S
3之組合可為All0。一般而言,取決於目標ECC (例如,ECC1、ECC2、ECC3、…),藉由檢查經計算校驗子部分何時為All0,可區分零錯誤情況與需要ECC更正器之情況。換言之,對於任何目標ECC,可識別一對應第一校驗子部分計算,此容許在未偵測到錯誤之情境中(此係最可能之情形)藉由跳過任何額外校驗子部分計算來加速整個讀取操作;此亦容許一相當大的節能。若偵測到一或多個錯誤,則計算額外校驗子部分,且僅啟動更正經判定錯誤數目所需之電路,從而導致能量消耗之一限制。
圖6係列出根據本發明之實施例之校驗子部分之計算的實例之一表600。在此表中,第一欄601列出目標ECC,即,所要ECC保護,第二欄602列出待根據目標ECC計算之第一校驗子部分,且第三欄603列出待在第一校驗子部分之後計算之第二校驗子部分。
例如,在ECC2之情況下(表600之行(line) 600a),計算S
1作為第一校驗子部分,及接著若需要則啟用計算S
3作為第二校驗子部分係足夠的。更特定言之,若S
1= 0 (即,當存在零錯誤時),則不需要計算S
3及因此啟動相關電路部分。在一個或兩個錯誤之情況下,S
1≠ 0且啟動用於S
3之計算之電路部分,而當目標ECC係ECC2 (即,此後一情況超出ECC2範疇)時,三個或更多錯誤之情況係不相關的。
在另一實例中,在擴展ECC2 (圖6之行600b)之情況下,即,在由一額外校驗子位元(在本文中被表示為S
0)特性化之一ECC2碼之情況下,待計算之第一校驗子部分係S
1,且當S
1不同於零時,除S
3外將額外校驗子位元S
0計算為第二校驗子部分。
對於較高之ECC更正功率(例如,ECC3、ECC4、ECC5等),計算S
1作為第一校驗子部分可能不足夠,使得在第一步驟可需要其他計算(及因此其他XOR電路之啟動),而在第二步驟中可計算較高等級之校驗子部分。
在ECC3 (表600之行600c)之情況下,檢查S
1係不足夠的,使得將S
1及S
3兩者計算為第一校驗子部分以決定是否啟用第二校驗子部分(在該實例中,S
5)之計算。更特定言之,在此實例中,若S
1= 0且S
3= 0,則不需要計算S
5及啟動相關之電路部分。若相反,第一校驗子部分計算(S
1及S
3)指示一或多個錯誤,則亦計算S
5,判定實際錯誤數目,且藉由啟動(及僅啟動)校驗子解碼器電路部分以進行更正來更正其等。
在另一實例中,在一擴展ECC3之情況下(圖6之行600d),僅計算S
1作為第一校驗子部分係不足夠的,且在第一步驟亦計算額外位元S
0,使得第一校驗子部分係S
0及S
1之組合。基於此第一校驗子部分之計算,可決定是否啟用S
3及S
5之計算作為第二校驗子部分。換言之,在此實例中,若S
0= 0及S
1= 0,則不計算S
3及S
5及因此不啟動相關電路。在一替代實施例中,在一擴展ECC3之情況下,亦可將第一校驗子部分計算為S
1及S
3之組合,且接著,基於此第一校驗子部分決定是否啟用計算S
0及S
5作為第二校驗子部分。在此等情況之任一者中,在第二校驗子部分計算之後,若需要則判定實際錯誤數目,且藉由啟動所需之校驗子解碼器電路部分來更正其等。
根據本發明之另一實施例,由於一碼字在大多數情況下包括零個或一個錯誤,且較高數目之錯誤之發生機率降低數個數量級,故第一校驗子部分之計算可涉及僅計算給定目標ECC更正功率將在理論上需要之校驗子之部分。在此情況下,由於藉由僅計算最小必要校驗子之部分來實施一較低保護,故錯誤之發生可略高(即,可能發生一較小位元錯誤率(BER)損失),但功率消耗進一步降低。換言之,為達成一進一步功率降低,可接受一較小BER增加。
例如,在此實施例中,在實施一ECC3之一BCH碼之情況下,若僅S
1(且非S
3)被計算為第一校驗子部分,則有可能相信不存在錯誤而實際上存在三個錯誤,使得0.2%之錯誤三元組可能未被更正,而導致一較小BER增加。換言之,在此實例中,若S
1= 0,則可不存在唯一之錯誤亦不存在一對錯誤;然而,導致S
1= 0之三個錯誤之機率係0.2%,且若此一錯誤增加係可接受的,則可不計算S
3及S
5。因此,可接受一較小BER損失以利於一經改良功率消耗。觀察到,即使在上述實例中實施一BCH碼,仍可使用其他ECC碼,且本發明不限於所展示實例。
現參考表600之行600e,在具有一接受之BER損失之一ECC3之情況下,第一校驗子部分可僅包括S
1,且基於S
1之計算,可決定是否計算S
3及S
5作為第二校驗子部分。因此,在此實施例中,關於ECC2,僅當S
1≠ 0時可控制及啟用S
3及S
5計算,一ECC3同樣如此。
現在參考600之行600f,在具有一接受之BER損失之一擴展ECC3之情況下,待計算之第一校驗子部分係S
1,且第二校驗子部分由S
0、S
3及S
5之組合給出,僅在S
1≠ 0之情況下計算此第二校驗子部分。
應觀察到,表6中所列出之情況僅為本文中所揭示之技術之應用之非限制性實例,且本發明可應用於具有許多其他可能ECC組態之許多其他保護級別。
如先前提及,當計算一第一校驗子部分時,當存在錯誤時其亦可能等於零,此係因為各可選擇之目標ECC更正功率對應於不同於零直至一給定錯誤數目之一校驗子。例如,一ECC3並不旨在於五個錯誤之情況下給出一正確結果;然而,對於一ECC3,此錯誤數目超出選定ECC更正功率之範疇,且因此,此並非本文中所揭示之技術之一障礙。
此外,記憶體胞元陣列之不同部分可發生一不同錯誤數目。因此,根據本發明之一實施例,陣列之記憶體胞元可分組成複數個部分,各部分基於一所要保護級別根據一特定ECC更正功率進行操作。因此,陣列之一「部分」係根據本發明之技術操作之一記憶體胞元群組。根據一實施例,一記憶體部分可對應於一內部細分,如一記憶庫群組、一記憶庫、一區段或記憶體之任何其他合適內部細分。此外,記憶體部分亦可對應於一規格/主機細分,如一緩衝器、一頁面,即,高層級之一細分。在一實施例中,整個記憶體陣列可在ECC更正功率方面一致。此外,在一些實施例中,一頁面可以一最大更正功率(其中僅儲存P
1及P
3同位位元)操作,而另一頁面可以一ECC3最大更正功率(其中儲存P
1、P
3及P
5同位位元)操作。可在操作期間動態地修改最大ECC更正功率。例如,可實施一後續較低(或較高)最大ECC更正功率(例如,不同於一先前最大ECC更正功率)。一部分可對應於一碼字、一記憶庫、一記憶庫群組、陣列之一區段、整個陣列、或甚至一緩衝器、一頁面之一者,且本發明不受胞元分組之方式限制。將陣列細分為數個部分更適合於真實記憶體裝置。
圖7係表示根據本發明之實施例之用於操作一記憶體胞元陣列的一方法700之步驟的一流程圖。所描述之程序可由硬體邏輯及電路執行。例如,以下程序被描述為由如圖4及圖5中所描述之編碼402及/或解碼403、503單元及/或如本文中所揭示之存取電路、感測電路及ECC電路執行。然而,其他實施例可包含適於執行程序之不同電路組態。
本發明之方法係一種用於改良具有ECC保護之記憶體胞元之操作之方法。存取電路將資料寫入至複數個記憶體胞元。例如,存取電路將邏輯0及邏輯1寫入至複數個記憶體胞元,諸如圖1之記憶體區段101中之記憶體胞元。在一項實施例中,存取電路可藉由施加具有負極性之程式化脈衝來寫入邏輯0,且藉由施加具有正極性之程式化脈衝來寫入邏輯1。亦可採用相反慣例。取決於技術,可將不同程式化脈衝施加至記憶體胞元。在將資料寫入至複數個記憶體胞元之後,存取電路可讀取複數個記憶體胞元且ECC電路可確認錯誤之存在並更正錯誤。
更特定言之,在步驟710,將使用者資料儲存於一記憶體陣列之複數個記憶體胞元中,例如,儲存於一碼字中。例如,與步驟710相關聯之操作可由一編碼單元402執行。
在步驟720,將與使用者資料相關聯之同位資料儲存於記憶體陣列之經判定數目個同位胞元中(例如,在碼字中)。例如,與步驟720相關聯之操作可由編碼單元402執行。
接著,從經儲存使用者資料及同位資料計算一ECC校驗子,其中ECC校驗子包括一或多個校驗子部分。換言之,該等校驗子部分單獨地或彼此組合地對應於一給定之ECC保護級別。更特定言之,在步驟730,計算一第一校驗子部分。
基於第一校驗子部分計算,方法包括決定是否計算至少一個第二校驗子部分之一步驟740。
例如,在一些實施例中,方法包括檢查第一校驗子部分是否具有不同於零之至少一個值之一步驟740’。若第一校驗子部分為All0,則不計算第二校驗子部分(步驟740a),或相反,在步驟740b計算第二校驗子部分。
總之,本發明透過按需校驗子項計算來提供ECC功率消耗之一即時優化。因此,本發明之技術容許ECC電路設計中之一較大靈活性。一般理念係僅啟動與待計算之校驗子部分相關之必要電路,而接著可停用未使用之ECC電路,從而導致降低之功率消耗。
根據本發明,ECC引擎因此經調適以喚醒區塊(在本文中被指示為電路部分,例如包含一或多個XOR電路),以用於計算對應校驗子部分(例如,S
1、S
3、S
5等)。因此,僅在ECC引擎中啟用嚴格必需之電路。更明確言之,ECC引擎經組態以啟用對應於待計算之最小所需校驗子部分之最低功率消耗電路部分,且停用其餘電路。一般而言,在一碼字中具有較高錯誤數目之機率降低數個數量級,且大多數碼字係無錯誤的或僅含有一個錯誤,使得在許多情況下,使用一ECC電路中可用之最高更正功率導致較高功率消耗,但在資料安全性/準確度方面未導致一真實益處。根據本文中所揭示之技術,藉由將校驗子產生單元分成可單獨啟動之不同項來避免上述問題。例如,在一些實施例中,一第一電路部分產生校驗子之最低階部分(例如,對於ECC2,在第一步驟僅計算S
1);接著,取決於S
1值,可決定是否計算其他校驗子部分(例如,對於ECC2,S
3),且取決於整個校驗子,可計算一碼字中之錯誤數目。本發明中所揭示之技術容許一顯著功率降低,此係因為在每次運算時僅啟動一裝置電路之一子集,而其他部分僅在按需基礎上啟動。
根據一例示性實施例,一種記憶體裝置包括:一陣列,其包含複數個記憶體胞元;及一操作單元,其包括一編碼單元,該編碼單元經組態以將使用者資料儲存於記憶體陣列之複數個記憶體胞元中,且將與使用者資料相關聯之同位資料儲存於記憶體陣列之若干同位胞元中。該操作電路進一步包括一解碼單元,該解碼單元包括經組態以從經儲存使用者資料及同位資料計算一ECC校驗子之一校驗子產生單元,其中該校驗子產生單元包括複數個電路部分,各電路部分經組態以計算ECC校驗子之一各自校驗子部分,且其中該操作單元經組態以啟動該校驗子產生單元之一第一電路部分以用於計算一第一校驗子部分,及基於經計算之第一校驗子部分決定是否啟動一第二電路部分以用於一第二校驗子部分之計算。
根據另一例示性實施例,一種記憶體裝置包括:一陣列,其包含複數個記憶體胞元;及一控制器,其經組態以:將使用者資料儲存於該記憶體陣列之複數個記憶體胞元中,將與該使用者資料相關聯之同位資料儲存於該記憶體陣列之若干同位胞元中,及從該等經儲存使用者資料及同位資料計算一ECC校驗子。該控制器包括複數個電路部分,各電路部分經組態以計算該ECC校驗子之一各自校驗子部分,其中該控制器進一步經組態以啟動校驗子產生單元之一第一電路部分以用於基於一目標ECC更正功率計算一第一校驗子部分,及若該第一校驗子部分具有不同於零之至少一個值,則啟動至少一個第二電路部分以用於一第二校驗子部分之計算。
本發明亦係關於一種用於操作一記憶體胞元陣列之方法,該方法包括:將使用者資料儲存於記憶體陣列之複數個記憶體胞元中;將與該使用者資料相關聯之同位資料儲存於該記憶體陣列之若干同位胞元中;及從經儲存使用者資料及同位資料計算一ECC校驗子,其中ECC校驗子包括一或多個校驗子部分,其中計算該ECC校驗子包括:計算一第一校驗子部分,及基於經計算之第一校驗子部分決定是否計算至少一個第二校驗子部分。若未明確地指示,則方法步驟不一定按所揭示序列。
在前述[實施方式]中,參考形成其之一部分之隨附圖式,且其中藉由繪示展示特定實例。在圖式中,相同元件符號在數個視圖各處描述實質上類似之組件。在不脫離本發明之範疇之情況下,可利用其他實例,且可進行結構、邏輯及/或電氣改變。另外,如將瞭解,圖中所提供之元件之比例及相對尺度意欲繪示本發明之實施例,且不應被視為限制意義。
如本文中所使用,「一」、「一個」或「若干」某物可指代此等事物之一或多者。「複數個」某物意指兩個或更多個。如本文中所使用,術語「耦合」可包含電耦合、不具有中介元件之直接耦合及/或直接連接(例如,藉由直接實體接觸),或運用中介元件間接耦合及/或連接。術語耦合可進一步包含彼此協作或互動(例如,如成因果關係)之兩個或更多個元件。
儘管已在本文中繪示及描述特定實例,但一般技術者將暸解,經計算以達成相同結果之一配置可取代所展示之特定實施例。本發明旨在涵蓋本發明之一或多項實施例之調適或變動。應理解,已依一闡釋性方式而非一限制性方式進行上述描述。應參考隨附發明申請專利範圍以及此等發明申請專利範圍所授權之等效物之全範圍來判定本發明之一或多個實例之範疇。
100: 記憶體裝置
101: 記憶體區段
101’: 記憶體胞元陣列
101’’: 區塊
102: 控制器
103: 主機介面
104: 錯誤更正碼(ECC)單元
105: 進一步電路
107: 非揮發性區
108: 感測單元
110: 主機/主機裝置
110’: 主機處理器
201: 使用者資料型樣圖
210a: 使用者資料
215a: 經編碼使用者資料
220a: 編碼程序
225: 程序
300: 碼字
301: 第一碼字部分
302: 第二碼字部分
400: 記憶體裝置
400’: 記憶體胞元陣列
401: 操作電路
402: 編碼單元
403: 解碼單元
410: 校驗子產生單元
420: 錯誤單元
430: 校驗子解碼單元
500’: 陣列
503: 解碼單元
510: 校驗子產生單元
510’: 電路/電路部分
510’’: 電路
510’’’: 電路
520: 錯誤單元
530: 校驗子解碼單元
540: 第一邏輯單元/第一單元
550: 第二邏輯單元
560: 選擇器元件/選擇器
600: 表
600a: 行
600b: 行
600c: 行
600d: 行
600e: 行
600f: 行
601: 第一欄
602: 第二欄
603: 第三欄
700: 方法
710: 步驟
720: 步驟
730: 步驟
740: 步驟
740’: 步驟
740a: 步驟
740b: 步驟
1000: 系統
1010: 介面
1020: 網路介面
圖1係包括可根據本發明操作之一記憶體裝置之一系統之一示意性方塊圖;
圖2係根據本發明之實施例編碼之使用者資料型樣之一實例;
圖3展示經受根據本發明之技術之一碼字之一實例;
圖4係根據本發明之實施例之用於管理一記憶體裝置中之錯誤更正碼(ECC)操作的一操作電路之一示意性方塊圖;
圖5展示根據本發明之實施例之包括用於計算一ECC校驗子之可選擇電路部分的一操作電路之例示性細節;
圖6係展示根據本發明之實施例之校驗子部分計算的實例之一表;及
圖7係根據本發明之一實施例之一方法之步驟的一流程圖。
500’:陣列
503:解碼單元
510:校驗子產生單元
510’:電路/電路部分
510”:電路
510''':電路
520:錯誤單元
530:校驗子解碼單元
540:第一邏輯單元/第一單元
550:第二邏輯單元
560:選擇器元件/選擇器
Claims (16)
- 一種記憶體裝置,其包括:一陣列,其包含複數個記憶體胞元;及一操作單元,其包括:一編碼單元,其經組態以:將使用者資料儲存於該記憶體陣列之複數個記憶體胞元中;及將與該使用者資料相關聯之同位資料儲存於該記憶體陣列之若干同位胞元中,一解碼單元,其包括:一校驗子產生單元,其經組態以從該等經儲存使用者資料及同位資料計算一ECC校驗子;及一錯誤單元;及一校驗子解碼單元,其中該校驗子產生單元包括複數個電路部分,各電路部分經組態以計算該ECC校驗子之一各自校驗子部分,及其中該操作單元經組態以:啟動該校驗子產生單元之一第一電路部分以用於計算一第一校驗子部分;在該第一校驗子部分具有不同於零之至少一個值之情況下啟動用於計算一第二校驗子部分之該第二電路部分;及在至少一第二電路部分在一第一電路部分之後被啟動之情況下啟動該錯誤單元以基於經計算之該等校驗子部分判定該資料中之一錯 誤數目;及其中該校驗子解碼單元經組態以接收經計算之該校驗子且基於經判定之該錯誤數目來實施一ECC操作。
- 如請求項1之記憶體裝置,其中該操作單元經組態以基於一目標ECC選擇待計算之該第一校驗子部分。
- 如請求項1之記憶體裝置,其中該第一校驗子部分係其計算需要較少功率之部分。
- 如請求項1之記憶體裝置,其包括用於評估該經計算校驗子部分之該等值及用於基於該第一校驗子部分之該計算選擇性地啟用一或多個電路部分之構件。
- 如請求項1之記憶體裝置,其中該校驗子解碼單元包括複數個校驗子解碼器電路部分,各電路部分經組態以對該經儲存資料執行一特定ECC操作,且可由該操作電路選擇性地啟動,該操作單元經組態以基於該經判定錯誤數目選擇性地啟動一或多個校驗子解碼器電路部分。
- 如請求項1之記憶體裝置,其中該陣列被劃分為複數個部分,該複數個部分之各部分可以一各自ECC更正功率操作,且其中一部分對應於一碼字、一記憶庫、一記憶庫群組、該陣列之一區段、該整個陣列、一緩衝器及一頁面之一者。
- 如請求項1之記憶體裝置,其中該校驗子產生單元之該等電路部分包括複數個互斥或電路。
- 一種用於操作一記憶體胞元陣列之方法,該方法包括:將使用者資料儲存於該記憶體陣列之複數個記憶體胞元中;將與該使用者資料相關聯之同位資料儲存於該記憶體陣列之若干同位胞元中;及從該等經儲存使用者資料及同位資料計算一ECC校驗子,其中該ECC校驗子包括一或多個校驗子部分,其中計算該ECC校驗子包括:計算一第一校驗子部分;及若該第一校驗子部分具有不同於零之至少一個值,則計算一第二校驗子部分;若至少一第二校驗子部分在該第一校驗子部分之後經計算,基於經計算之該等校驗子部分判定該資料中之一錯誤數目;及基於經判定之該錯誤數目來實施一ECC操作。
- 如請求項8之方法,其包括基於一目標ECC選擇待計算之該第一校驗子部分。
- 如請求項9之方法,其中計算該第一校驗子部分包括:僅計算一給定目標ECC更正功率將需要之該整個第一校驗子部分之部分。
- 如請求項8之方法,其中該ECC校驗子係由一校驗子產生單元計算,該校驗子產生單元包括複數個電路部分,各電路部分可經啟動以計算一各自校驗子部分,其中計算該ECC校驗子包括:啟動該校驗子產生單元之一第一電路部分以用於計算該第一校驗子部分;及基於該經計算之第一校驗子部分決定是否啟動一第二電路部分以用於該第二校驗子部分之該計算。
- 如請求項8之方法,其包括將該經計算校驗子發送至一校驗子解碼單元,且經由該校驗子解碼器實施該ECC操作,該方法進一步包括基於一經判定誤差數目選擇性地啟動該校驗子解碼器之一或多個電路部分,各電路部分對該經儲存資料執行一各自ECC操作,以基於該經判定誤差數目選擇複數個ECC更正能力之一ECC更正能力。
- 一種記憶體裝置,其包括:一陣列,其包含複數個記憶體胞元;及一控制器,其經組態以:將使用者資料儲存於該記憶體陣列之複數個記憶體胞元中;將與該使用者資料相關聯之同位資料儲存於該記憶體陣列之若干同位胞元中;及從該等經儲存使用者資料及同位資料計算一ECC校驗子,其中該控制器包括複數個電路部分,各電路部分經組態以計算該 ECC校驗子之一各自校驗子部分,及其中該控制器進一步經組態以:啟動校驗子產生單元之一第一電路部分以用於基於一目標ECC更正功率計算一第一校驗子部分;及若該第一校驗子部分具有不同於零之至少一個值,則啟動一第二電路部分以用於一第二校驗子部分之該計算。
- 如請求項13之記憶體裝置,其包括經組態以評估該第一校驗子部分之一邏輯單元,及用於基於該邏輯單元之該評估選擇性地啟用一或多個電路部分之一選擇器元件。
- 如請求項13之記憶體裝置,其包括經組態以基於經計算之該(等)ECC校驗子部分判定該資料中之一錯誤數目之一錯誤單元,其中若在該第一電路部分之後啟動至少一個第二電路部分,則該錯誤單元經組態以基於所有該等經計算部分之一組合來進行該錯誤數目之該判定。
- 如請求項13之記憶體裝置,其中該控制器經組態以僅計算該給定目標ECC更正功率將需要之該整個第一校驗子部分之部分。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2021/022225 WO2023067367A1 (en) | 2021-10-18 | 2021-10-18 | Ecc power consumption optimization in memories |
WOPCT/IB2021/022225 | 2021-10-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202329148A TW202329148A (zh) | 2023-07-16 |
TWI842137B true TWI842137B (zh) | 2024-05-11 |
Family
ID=
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200310911A1 (en) | 2019-03-26 | 2020-10-01 | Innogrit Technologies Co., Ltd. | Systems and methods for an ecc architecture with prioritized task queues |
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200310911A1 (en) | 2019-03-26 | 2020-10-01 | Innogrit Technologies Co., Ltd. | Systems and methods for an ecc architecture with prioritized task queues |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102179228B1 (ko) | 메모리에서의 티어드 오류 정정 코드(ecc) 동작 | |
CN109196479B (zh) | 存储器中的错误校正码(ecc)操作 | |
KR100842680B1 (ko) | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 | |
US20100269000A1 (en) | Methods and apparatuses for managing bad memory cell | |
CN110347530B (zh) | 数据存储装置及其操作方法 | |
US11431355B2 (en) | Error correction code (ECC) operations in memory for providing redundant error correction | |
US11810627B2 (en) | Selective read disturb sampling | |
JP2023025687A (ja) | メモリ装置およびその動作方法 | |
WO2023028347A1 (en) | Monitoring memory device health according to data storage metrics | |
WO2023014482A1 (en) | Managing defective bitline locations in a bit flipping decoder | |
US20230195566A1 (en) | Memory device crossed matrix parity | |
KR102605633B1 (ko) | 컨트롤러 및 그것의 동작 방법 | |
CN112084052A (zh) | 基于主机的错误校正 | |
US11996860B2 (en) | Scaled bit flip thresholds across columns for irregular low density parity check decoding | |
US20220342748A1 (en) | Data recovery system for memory devices | |
TWI842137B (zh) | 記憶體中之錯誤更正碼功率消耗優化 | |
US11662941B2 (en) | System and method for mitigating effect of erase cells on adjacent cells | |
US11830545B2 (en) | Data programming techniques to store multiple bits of data per memory cell with high reliability | |
WO2023047149A1 (en) | Improved ecc configuration in memories | |
US10855316B2 (en) | Error correction code (ECC) operations in memory | |
TW202329148A (zh) | 記憶體中之錯誤更正碼功率消耗優化 | |
US20240103741A1 (en) | Providing multiple error correction code protection levels in memory | |
TW202244934A (zh) | 用於減少糾錯碼功率消耗之方法及系統 | |
US11921581B1 (en) | Read recovery including low-density parity-check decoding | |
US20230195358A1 (en) | Separation of Parity Columns in Bit-Flip Decoding of Low-Density Parity-Check Codes with Pipelining and Column Parallelism |