TWI479317B - Memory system - Google Patents
Memory system Download PDFInfo
- Publication number
- TWI479317B TWI479317B TW100130951A TW100130951A TWI479317B TW I479317 B TWI479317 B TW I479317B TW 100130951 A TW100130951 A TW 100130951A TW 100130951 A TW100130951 A TW 100130951A TW I479317 B TWI479317 B TW I479317B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- unit
- circuit
- circuit block
- output
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- 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/1072—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 multilevel memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5642—Multilevel memory with buffers, latches, registers at input or output
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Error Detection And Correction (AREA)
Description
本實施形態係關於一種記憶體系統。
本申請案係基於且主張2010年9月24日申請之先前的日本專利申請案第2010-214357號的優先權的權益,該申請案之全文以引用的方式併入本文。
近年來,便攜式智慧終端或電子書籍等、行動機器中保持大量之資料而高速存取之技術正越來越重要。進而,就資訊機器之輕量化與節能之觀點而言,不具有監控器等可動部分之記憶體之矽化正快速發展。此時,重要的是如何完全利用記憶體製造時之性能之邊緣部分之記憶體單元。藉此,可實現記憶體之生產性提高帶來的廉價化及大容量化。進而,保存於此種大容量記憶體中之資料可靠性之確保亦變得重要。
即便未伴隨大規模之技術革新,作為實現記憶體之大容量化之方法,亦存在增加每一記憶體單元之儲存容量的多值化技術。又,作為對於邊緣之記憶體單元而保證資料之技術存在ECC。尤其係,對於NAND快閃記憶體而言,記憶體單元之多值化及ECC之系統技術成熟,處於大致已完成之階段。
此種NAND快閃記憶體之用途遍及行動終端或SSD等,呈越來越多元化之趨勢。伴隨於此,需要實現NAND快閃記憶體之進一步的技術性飛躍,為此,需要實施先前已有之多值化技術或ECC之革新變更。
然而,經多值化之NAND快閃記憶體原本係基於未假定多值化之規格發展而成者。又,ECC亦係基於以記憶體全體之系統為對象之技術而應用於NAND快閃記憶體。因此,該等多值化技術與ECC並非符合NAND快閃記憶體之記憶體單元之多值化的最佳技術。
本發明之實施形態係提供一種使用資料可靠性得以提高之多值儲存單元之記憶體系統。
實施形態之記憶體系統包括:單元陣列,其包含字元線、以及由上述字元線選擇、且根據不同之複數個物理量位準儲存資料的複數個記憶體單元;暫存器,其保持自外部所輸入之第1資料;及資料轉換部,其將保持於上述暫存器之第1資料轉換為第2資料,將該第2資料覆寫於上述暫存器之保持第1資料的區域,進而將保持於上述暫存器之第2資料轉換為記錄於上述記憶體單元之第3資料,將該第3資料覆寫於上述暫存器之保持第2資料的區域。
根據本發明之實施形態,可提供一種使用資料可靠性得以提高之多值儲存單元之記憶體系統。
以下,一面參照圖式一面對實施形態之記憶體系統進行說明。
[實施形態之概要]
記憶體系統係藉由單元陣列之微細化、單元陣列等之構造之三維化、對用於記憶體單元之物理現象之研究等而實現儲存容量之高密度化。並且,對於實現穩定製造步驟後之記憶體系統之高密度化而言,有效手段為記憶體單元之多值化。
尤其係,對於NAND快閃記憶體而言,多值化飛速進展,每一單元儲存8值之3位元單元已實用化。然而,其以上之記憶體單元之多值化伴隨急劇的可靠性之劣化,對於單位元單元而言,帶來至少兩位數以上之錯誤率之增加。如此,就可靠性與生產良率之問題而言,記憶體單元之多值化之進展雖可期望作為大容量檔案記憶體之實現手段,但亦存在困難之問題。
若可克服該記憶體單元之多值化時之問題且有效地進行活用,便可長期地利用穩定的NAND快閃記憶體之製造步驟,且可達成NAND快閃記憶體之儲存容量之高密度化。
因此,於第1實施形態中,基於如下所示之主旨而提出一種利用李度量碼之記憶體系統。
(1)記憶體單元之錯誤大多情形時係藉由對記憶體單元之鄰接位準之寫入、或自記憶體單元作為鄰接位準讀出等所產生。即便於此種情形時,對先前之記憶體單元分配二進制位元時,有時錯誤量會變大。因此,以下所說明之實施形態之記憶體系統係利用藉由簡化對記憶體單元之值之分配而提高可靠性的多值儲存單元。
(2)記憶體單元之多值位準可作為自基礎位準之高度而捕捉。即,經多值化之記憶體單元原本不適於儲存以二進制進行數位化之資訊,而是適於儲存以質數進行數位化的資訊。因此,以下所說明之實施形態之記憶體系統係使用將物理量位準分配給質數p之有限體Zp之各要素的記憶體單元(以下稱為「p-adic單元」)而構成。
(3)因對於記憶體單元之鄰接位準之寫入、或自記憶體單元作為鄰接位準讀出等而產生之錯誤之情形時的有效ECC(Error Correcting Code,錯誤校正碼)為有限體Zp之李度量碼(Lee metric code)。因此,以下所說明之實施形態之記憶體系統中,係利用使用有防止產生錯誤之檢索遺漏之李度量碼的ECC系統。
(4)利用p-adic單元之NAND快閃記憶體之構成與先前之NAND快閃記憶體之構成不同。因此,以下所說明之實施形態中,提示具體記憶體系統之規格之主旨內容,並對基於此而構成的記憶體系統進行說明。
(5)於欲增大可校正之錯誤量之情形時,作為利用李度量碼之ECC之錯誤校正方法,有時利用使用歐幾裏得疊代法之錯誤校正方法有效。因此,對為實現使用歐幾裏得疊代法而進行錯誤校正之記憶體系統所必需的具體電路進行說明。
[第1實施形態]
<李度量碼>
首先,對李度量碼之概要進行說明。
表示代碼之符號c為數1所示之整數。
[數1]
該等整數之計量以|cj
|表示李度量,且所有李度量|cj
|以p/2以下之整數表示,則李度量|cj
|之定義變為如數2般。
[數2]
0cj
<p/2:|cj
|=cj
p/2<c<p:|cj
|=p-cj
代碼C認為係n=p-1個符號cj
之排列,故可表示為C=(c1
,c2
,...,cn
)。代碼C之計量w(C)係如數3般定義為各符號cj
之李度量|cj
|之和。
[數3]
w(C)=|c1
|+|c2
|+Λ+|cn
|
又,代碼間之距離係以對應於代碼之各符號之差之李度量之和而定義。此處,2個符號c與y之差(李距離)dL
(c,y)係如數4般。
[數4]
dL
(c,y)=w(c-y)
進而,代碼C之最小李距離如數5所示係以代碼C之計量w(C)之最小之計量而定義。
[數5]
dL
(C)=min w(C)
此時,李度量碼係包含數6所示之生成矩陣G及徵候群矩陣H之代碼間之最小距離為2γ、且可進行γ-1以下之李度量之錯誤校正的代碼。
[數6]
此處,若將代碼C之字長設為n、將資料之字長設為k,則γ=n-k,γ表示代碼C所含之冗餘字長。
為生成以此方式構成之李度量碼而經輸入轉換之資料係以k位數之p進數表示。該p進數之各位之數係Zp之要素,故將其作為李度量碼之資料字X,而可自生成矩陣G獲得代碼表現為運算C=XG。將所得之碼字儲存於記憶體。將所儲存之Zp之數產生的錯誤之資訊作為自記憶體讀出之李度量碼之資料字Y,自運算S=YHt
(Ht
為H之轉置矩陣)獲得徵候群,而可計算錯誤之位置與量,且可校正錯誤。
<資料處理之原理、徵候群轉換法>
其次,對使用p-adic單元之NAND快閃記憶體中之資料處理之方法原理進行說明。以下,將該原理稱為「徵候群轉換法」。
p-adic單元中所保持之碼字C之成分係Zp之數,各成分受到各種擾亂而引起變化,如數7所示,變化為含有不同成分之碼字Y。
[數7]
Y=(yi
),yi
=cj
+ei
,i=1~p-1
自該Y復原C之過程為解碼。於解碼之前求出徵候群。
徵候群<m>
S係自Zp中選擇包含3個成分之向量<m>=<m1
,m2
,m3
)(mi
=0~p-2)之後,藉由包含該等向量及H矩陣之如數8之矩陣運算,作為要素S<m>+0
、S<m>+1
、…、S<m>+ε
而求出。此處,ε=γ-1。
[數8]
設<m>
S=(S<m>+1
)(1=0~ε),自<m>+1=0求出S0
,若|S0
|≦ε則開始解碼。
藉由生成矩陣G與徵候群矩陣H之構成係以GHt
=0(mod p)之方式構成,若設Y=C+E,則對於C而言如數9般其對應部分為零,且S可以E之成分表示。
[數9]
再者,可知若設<m>=<0>、l=0、E=(e1
,e2
,‧‧‧,en
),則可表示為S<0>+0
=S0
=Σej
,S0
為各錯誤之總和。
於|S0
|≦γ-1之情形時,可藉由以下之徵候群轉換法求出錯誤。即便不滿足該條件亦可於計算獲得對於代碼成分之錯誤之值,但無法判別其係真之代碼之錯誤、抑或相鄰之代碼的錯誤,故無法用於錯誤校正。其原因在於,李度量碼之可錯誤校正之必要條件係代碼間之李度量之最小值為2γ,該情形時S0
之李度量必須為ε以下,即錯誤成分之李度量之總和必須為ε以下。
於|S0
|≦ε之情形時,進入徵候群轉換法之錯誤搜索,但首先進行的是徵候群之轉換。此處,相對於S<m>+0
≠0之<m>,根據數10求出uS<m>+0
≡ε之u=ε(S<m>+0
)-1
,並據此獲得新的徵候群u<m>
S=(uS<m>+0
,uS<m>+1
,…,uS<m>+ε
)。
[數10]
繼而,使用經轉換之徵候群進行錯誤之解碼,對該方法進行說明。
儲存於記憶體單元陣列之代碼包含錯誤E=(e1
,e2
,…,en
)(n=p-1),故對於新的徵候群而言假想錯誤為{u(1)<m>
e1
,u(2)<m>
e2
,…,u(n)<m>
ep-1
}。該等n=p-1個錯誤成分經轉換而得者係如數11般分類為2個組J+
與J-
。
[數11]
即,於符號之錯誤量為u(j)<m>
ej
<p/2之情形時,係分類為符號cj
之位置j之集合J+
、與符號之錯誤量為u(j)<m>
ej
>p/2時之符號cj
之位置j的集合J-
。基於該等組而如數12般構成Zp上之多項式Λ(x)、V(x)。
[數12]
如此,多項式Λ(x)變成具有J+
之錯誤成分位置j之反數作為根,且具有此錯誤成分之李度量即u(j)<m>
ej
作為根之多重度的多項式。另一方面,多項式V(x)變成具有J-
之錯誤成分位置j之反數作為根、且具有此錯誤成分之李度量p-u(j)<m>
ej
作為根之多重度的多項式。解碼係最終僅由徵候群之資訊構成該等多項式並求解而獲得錯誤之資訊的過程。即,必須求出該等多項式Λ(x)、V(x)與徵候群之關係。若各徵候群u<m>
S係由其次數係數包含之級數多項式構成,則如數13般,係表示為因子中包含錯誤成分之位置及假想錯誤成分之值的有理多項式。
[數13]
根據數13,於多項式Λ(x)、V(x)、徵候群S(x)之間成立數14所示之關係式。
[數14]
繼而,利用數14所示之關係式,自徵候群S(x)而求出多項式Λ(x)、V(x)。
自徵候群S(x)求出數15所示之次數為γ-1以下之多項式Ψ(x)。
[數15]
於多項式Ψ(x)之展開式中,根據數15所示之式之兩邊之同次次數之係數對比,係數Ψj
可使用徵候群uS<m>+j
與業已求出之係數Φ j-1
而利用疊代法求出。數16表示自徵候群uS<m>+0
~uS<m>+ε
求出多項式Ψ(x)之係數Φ 0
~Φ ε
之結果。
[數16]
Ψ0
=1
Ψ1
=-Ψ0
uS〈m〉+1
=-uS〈m〉+1
Ψ2
=-(Ψ1
uS〈m〉+1
+Ψ0
uS〈m〉+2
)/2=-u(Ψ1
S〈m〉+1
+Ψ0
S〈m〉+2
)/2
M
Ψγ-1
=-(Ψε-1
uS〈m〉+1
+Ψ0
uS〈m〉+ε
)/ε=-u(Ψε-1
S〈m〉+1
+Ψ0
S〈m〉+ε
)/ε
該多項式Ψ(x)係等價於Λ(x)/V(x)之多項式,相互無修飾之λ(x)與v(x)之關鍵條件係如數17般,故可得出V(x)=1,Ψ(x)可作為Λ(x)自身而採用。
[數17]
v(x)Ψ(x)≡λ(x)(mod xε+1
)
deg λ(x)-deg v(x)=uS〈m〉+0
=ε(mod p)
deg λ(x)-deg v(x)ε
可知自多項式之次數相關之條件deg λ(x)-deg v(x)=ε、deg λ(x)+deg v(x)≦ε得出0≦2deg v(x)≦0,故deg v(x)=0。即,得出V(x)=1且Λ(x)=Ψ(x),Ψ(x)滿足該條件。此時,自徵候群求出之Ψ(x)中預先決定之ε與ε=deg Ψ(x)=deg Λ(x)應成立。於成立之情形時,全部滿足關鍵條件,故可使用Ψ(x)獲得解。另一方面,於不成立之情形時,錯誤不滿足關鍵條件而無解。
該方法相當於對錯誤實施將所有錯誤代碼成分位置集中於集合J+
之轉換。又,就其他觀點而言亦有如下可能性:以經轉換之錯誤之總和為ε之方式進行轉換,藉此可進行錯誤修正。
此處,所謂可能性包含兩種含義,第1含義係需要將所有錯誤成分位置集中於J+
,且自徵候群求出之Ψ(x)之次數正好等於ε。第2含義係即便並非|S0
|≦ε,於計算上亦可獲得錯誤量,但需要添加該條件以排除誤校正。
錯誤位置檢索之方法係設Λ(x)=Ψ(x)、V(x)=1,自Zp之要素尋求滿足方程式之解,根據所得之根之多重度實施逆轉換而獲得真之錯誤E。
其次,針對以上原理之徵候群轉換法,考察錯誤搜索之有效條件。
實際上若將不明的真之錯碼字之點設為E=(e1
,e2
,…,ep-1
),則於徵候群轉換法中係將其轉換為假想的錯碼字之點<m>
E=(u(1)<m>
e1
,u(2)<m>
e2
,…,u(n)<m>
ep-1
)。此時,注意成分座標自身不變。該情形時,徵候群係如數18般。數18中,ji
(i=1~ξ)係與零不同之E之成分座標。變成j1
<j2
<…<jξ
。
[數18]
此處,於ξ≧2且<m>≠<m'>之情形時,向假想錯誤之轉換均獨立。其原因在於,若存在相等者則ji
轉換後不變,故u(j)<m>
=u'(j)<m'>
必須對於ξ個不同的j成立。以下所示之數19對於所有ji
成立,且僅於ξ=1之情形時成立。
[數19]
如上所述,根據徵候群轉換法,若對<m>進行掃描,則可構成對於每個不同<m>而不同之假想錯誤點之多項式。於ξ=1之情形時,相當於僅乘以徵候群之u之轉換可對應假想錯誤。
又,若著眼於假想錯誤之1個成分,例如u(j)<m>
ej
=ε(S<m>+0
)-1
(j)<m>
ej
使零以外之所有Zp成分變動的條件係如下所示。即,若使<m>之成分之任一者自0變動至p-2,則
[數20]
以Zp之除0以外的1~p-1之成分變動,故其逆元(S<m>+0
)-1
(j)<m>
亦獲得零以外之所有成分。其結果為,u(j)<m>
ej
一次性取得零以外之所有成分,故若使<m>之成分之任一者自0掃描至p-2則獲得充分條件。
於徵候群轉換法中,對於徵候群導入p-1個對角矩陣,使用該等各者之0~p-2次方,產生假想的錯誤。因此,其次,對可藉由此種假想錯誤之轉換而代替之錯誤、及徵候群轉換法之條件進行說明。
若將真之錯碼字之點設為E=(e1
,e2
,…,ep-1
),則徵候群轉換法之假想錯碼字之點為<m>
E={u(1)<m>
e1
,u(2)<m>
e2
,…,u(p-1)<m>
ep-1
}。
存在ξ個錯誤成分位置,該等以ji
(i=1~ξ、j1
<j2
<…<jξ
)表示,且如數21所示。
[數21]
於數21中,εi
(i=1~p-1)設為變數,ε1
~εp-1
之和係固定為ε。
因此,計算和為ε之ξ個成分之情形時的數。
對於ξ-1個成分可自由地選擇1~p-1。對於該ξ-1之和係選擇最後的第ξ個值,ξ個成分之和可與ε疊合,故選擇變數時之數為(p-1)ξ-1
。
然而,如此則亦包含最後之選擇必須取0之情形,故排除該情形。若將ξ個1~p-1之和與ε疊合時之數設為n(ξ),則最後之選擇前必須排除和為ε之情形,故n(ξ)=(p-1)ξ-1
-n(ξ-1)。據此,獲得如數22之n(ξ)。
[數22]
於該ε分割為ξ個之情形時,存在成分均位於0~p/2之間者、即成分僅屬於J+
者。只要不同的假想錯誤之轉換之數為該n(ξ)個時之數以上,便可製作J+
之假想錯誤。該情形時,若滿足李度量碼之錯誤校正之條件,則可藉由徵候群轉換法無遺漏地解開所發生之真之錯誤。
繼而,藉由徵候群轉換法自真之錯誤求出可能產生之不同的假想錯誤之數。於上述情形時,向量<m>之次數為3。因此,以<m>=(m1
,m2
,m3
),ε之分割成分自1變動至p-1之全體的方式,將各者之成分獨立地自0掃描至p-2。於以下之具體例之情形時,<m>≠<m'>之轉換之數為(p-1)3
。
若與ξ個自由變數εi
之和為ε之情形時的數n(ξ)進行對比,則
[數23]
n(ξ)={(p-1)ξ
-(-1)ξ
}/p(p-1)3
變成無遺漏之掃描條件。據此,於ξ=4滿足該條件且使用3個對角矩陣之方法中,直至ξ=4為止可進行無遺漏的搜索。
進而,若追加將j自1變動至p-1為止時,自零以外之Zp之所有要素之1變動至p-1為止之函數設為對角矩陣的矩陣之m次方,則可與上述同樣地,將轉換之數呈p-1倍地增加。
若排列ζ個矩陣則轉換之數為(p-1)ζ
,無遺漏之條件始終可設為ξ=ζ+1。
該等函數之例除了以上使用之j、p-j、p-j-1
之外,亦存在將a或Zp內之a≠1、2、且某個數之冪以外之數設為a的aj
、p-aj
,而可製作充分之數之轉換。因此,若適當選擇a而製作對角矩陣,則可擴大<m>之次數,ξ可設定為始終較該次數大1。因此,對於滿足李度量碼之可校正條件之所有情形而言,即便使用徵候群轉換法代替使用歐幾裏得疊代法,亦可進行無遺漏的錯誤搜索。
其中,若ζ增加1則轉換時之數變成p-1倍,故搜索之數呈指數變大。因此,認為有時使用先前之歐幾裏得疊代法會較徵候群轉換法更縮短處理時間。該情形時,需要對應適用之記憶體系統而進行最佳之選擇。尤其係,於ε=1、2等之情形時,使用徵候群轉換法有利。
<p-adic‧NAND快閃記憶體之資料介面>
基於以上內容,此處對使用徵候群轉換法進行錯誤校正之NAND快閃記憶體之具體例進行說明。以下,將該NAND快閃記憶體稱為「p-adic‧NAND快閃記憶體」。又,於未特別指明之情形時,「記憶體系統」係指p-adic‧NAND快閃記憶體。
首先,進行選擇何種p-adic單元之對比研究。
圖1係表示第1實施形態之記憶體系統之p-adic單元之各位準數之資料儲存效率等之關係的表。表中第1行係評估項目。各評估項目係如以下所示。
L:p-adic單元之閾值位準之區分數
p:使用之質數
h:將Zp以二進制顯示所需之最小位元數
ε:可錯誤校正之錯誤之李度量總量
M:藉由M=h(p-ε-3)而決定之值,以ECC進行批次處理之「binary world」之二進制之資料量的位元數
此處,所謂「binary world」,係指本實施形態之記憶體系統外之IT機器等以二進制處理資料之環境。
δ:作為M之2h
進數之位數(δ=M/h)
M/(p-1):1個p-adic單元相當於二進制之多少位元儲存的指標
將二進制M位元作為p-1個代碼成分之碼字而儲存於p-1個p-adic單元。
p-1:儲存李度量碼之碼字所需之p-adic單元數
log2
L:將p-adic單元設為儲存二進制之多值單元之情形時,p-adic單元內可儲存的位元數
ε/(p-1):使用ε時之最大可校正之單元數之比例。或者,一個p-adic單元內可校正之最大錯誤位準距離之比例
log2
LI{M/(p-1)}:使用記憶體單元作為儲存使用李度量碼之ECC之p-adic單元之情形時的、相對於將記憶體單元視作二進制多位元單元之情形時的冗餘度
表之施加有點之部分係就p-adic單元之位準或對於二進制之冗餘度之觀點而言認為實用時之範圍。
此處,作為實用記憶體系統,係以圖1中星形標記表示之L=17、ε=4、且可校正16單元中之4單元之情形為例進行說明。
此係考慮實用之NAND快閃記憶體之每一單元之位準數為16位準。又,若ε增加1則徵候群轉換法之處理規模係以大致p倍增加,故於使用p=17之情形時,圖1中以雙圓表示之可校正16單元中之2單元之ε=2的情形亦認為目前實用,但為幫助理解實施形態而採用ε=4之情形。
繼而,對於p=17、ε=4之情形時之具體例,係構成NAND快閃記憶體系統,首先表示該NAND快閃記憶體系統之規格。再者,此處所示之規格係使用其他p或ε之情形時亦為此規格之主旨(綱要)者,根據p或ε之值而將該綱要之值變更為對應值便可。
以下係p-adic‧NAND快閃記憶體之規格。
(1)資料介面之構成設為×8之1位元組構成。
(2)與時脈同步而動作。
(3)作為資料傳送之單位之扇區設為512位元組。
(4)自二進制轉換為p進數之轉換處理之單位設為50位元。以下,將該50位元之自二進制向p進數之轉換處理稱為「製程」。再者,為與作為其他普通用語之「製程」加以區別為表述為「PROCESS(處理)」。因此,1個扇區之二進制係以82PROCESS轉換為p進數。
(5)頁面大小設為4扇區(2048位元組)。區塊大小並未特別決定,而設為依存於64頁面等單元陣列之構成的大小。
(6)向構成頁面之各扇區之存取設為隨機。
(7)作為扇區內之存取方法而準備各種模式。存取模式大致分為兩種,即「高速模式」與「隨機模式」。
高速模式:按照扇區內之固定之位址順序進行存取之模式。於寫入動作中,扇區存取開始後經過10循環後,開始PROCESS而依序處理資料。於讀出動作中,若1PROCESS結束則可進行扇區之存取。寫入動作、讀出動作均係同時進行對扇區之PROCESS、及對此扇區之存取。
隨機模式:可設定向扇區之存取之猝發長、猝發模式、猝發之開端位址之存取模式。
例如,作為猝發長可設定為4/8/16/32/256位元等,作為猝發模式可設定為交錯模式/環繞模式等。
對於儲存於扇區之資料之PROCESS結束之後,可進行向扇區之存取。
寫入動作時之PROCESS係自扇區存取之資料儲存結束之後開始。
再者,隨機模式下係將向扇區之資料匯總後開始存取或製程,故向同一扇區之存取與PROCESS不會同時進行。
其次,對實現上述規格綱要之記憶體系統之概要進行說明。該系統係將Zp之數作為資料直接進行處理之系統。
再者,如上所述,將記憶體系統外之IT機器等以二進制處理資料之環境稱為「binary world」。相對於此,將包含處理運算處理等二進制之資料之部分在內、以Zp處理資料之p-adicNAND快閃記憶體系統內之環境稱為「p-adic Zp world」。該情形時,「binary world」亦可稱為「p-adic Z2
world」。
圖2係記憶體系統之概念圖。該記憶體系統主要包含儲存資料(代碼)之「p-adic NAND cell」部分、及進行對該「p-adic NAND cell」部分之寫入或讀出時之錯誤處理的「Lee metric code & ECC」部分。該等「p-adic NAND cell」部分及「Lee metric code & ECC」部分係屬於「p-adic Zp world」之部分。
進而,該記憶體系統包含:作為「binary world」與「p-adic Zp world」之介面,將二進制之資料轉換為Zp之資料之「binary to p-adic」轉換部;及將Zp之資料轉換為二進制之資料的「p-adic to binary」轉換部。
記憶體系統之外部為「binary world」,故藉由「binary to p-adic」轉換部,將自「binary world」輸入之二進制資料每50位元地進行處理。其後,將該等資料儲存於p-adic單元,進而,藉由「p-adic to binary」轉換部而每50位元地輸出至「binary world」。
對於「p-adic NAND cell」部分所儲存之資料之ECC可藉由將李度量碼應用於Zp而容易地進行。於本記憶體系統中,藉由具備「Lee metric code&ECC」部分,而亦可進行該ECC之處理。
又,記憶體系統由於包含「binary to p-adic」部分、及「p-adic to binary」轉換部,故使用者不用知道記憶體系統內部之「p-adic Zp world」,便可維持「binary world」而操作記憶體系統。
再者,對於「p-adic NAND cell」部分之資料之寫入及讀出係將其閾值位準與Zp之要素直接建立關聯而處理,該建立關聯之方法有兩種。
第一種係如下方法:以介面來對應如先前之NAND連接之多值儲存單元(以下稱為「NAND MLC」)之資料之寫入及讀出。需要將MLC儲存之Zp位準(1~p-1)作為NAND MLC之頁面等之資訊而暫時轉換,故介於NAND MLC與周邊電路之「p-adic Zp world」之間的部分需要具有邏輯部分。於該方法之情形時,MLC儲存之Zp之資訊跨越複數個NAND MLC之頁面資訊,故資料之傳送費時。
第二種係如下方法:將Zp位準作為物理量位準而直接寫入p-adic單元。根據該方法,與第一種方法相比,可高速地進行資料之寫入/讀出之處理。
本實施形態中係採用第二種方法。
其次,對適於上述記憶體系統之規格之資料傳送、及用以實現與內部之p-adic單元之匹配的介面電路進行說明。
於本實施形態之記憶體系統之情形時,資料之處理結果均出現在構成頁面之頁面暫存器上。又,p-adic單元與該頁面暫存器進行上述資料之交換。因此,該頁面暫存器如何構成係資料傳送規格之關鍵所在。
首先,對資料介面之規格進行一次確認。
(1)記憶體系統之I/O之傳送速度為1位元組/循環。即,傳送單位為1位元組。
(2)將50位元大小之二進制資料作為處理單位進行向李度量碼之轉換。
(3)1扇區為512位元組。因此,1個扇區之二進制資料之傳送需要512循環。
(4)為將1個扇區之二進制資料轉換為李度量碼而需要82PROCESS。藉由82PROCESS而可處理之二進制資料為82×50=4100位元。因此,處理僅比1扇區多4個位元。
(5)將二進制資料轉換為p進數資料之情形時,每50位元則增大至55位元。因此,每個扇區需要82×55=4510位元分之暫存器。
(6)經過向p進數資料之轉換而將二進制資料轉換為李度量碼之情形時,每50位元則增大為80位元。因此,每個扇區需要82×80=6560位元(820位元組)大小之暫存器。
繼而,考慮上述(2),對可有效進行每50位元之資料處理之暫存器構成進行說明。
根據上述(1),資料係以1位元組/循環之速度傳送,故傳送50位元之二進制資料時最少需要7循環。又,根據上述(6),將50位元之二進制資料轉換為李度量碼之情形時,其大小增加至80位元。
此處,50位元可以5×10位元表示、80位元可以8×10位元表示。因此,於本實施形態之記憶體系統中,10×8之暫存器區塊可藉由位元組單位之複數個暫存器構成,進行使用以此方式構成之暫存器的資料處理。藉此,可實現記憶體系統之最佳暫存器構成及資料處理。再者,關於10×8之暫存器區塊將於下文敍述。
繼而,一面參照圖3一面對資料處理之流程進行說明。
對於1暫存器區塊之50位元之二進制資料之傳送係藉由10循環執行。
因此,於決定資料傳送之位址順序之情形時,可每隔10循環進行1PROCESS之處理。其中,PROCESS中各I/O之資料係合併而進行處理,故對I/O設置掩碼而使其無效之情形時,對於此I/O係作為有固定資料者而進行處理。
另一方面,於資料傳送之位址順序為隨機之情形時,無法判斷向構成扇區之暫存器之何處傳送資料,故接收1個扇區之資料傳送結束之命令,判斷處理資料之準備結束,而開始PROCESS。
PROCESS係將10×8之暫存器區塊視作下述「D-r」暫存器,利用於該「D-r」暫存器之覆寫而進行處理。
首先,將「D-r」暫存器所儲存之處理資料作為h=5、δ=10之二進制資料(第1資料)而轉換為p進數(第2資料)(圖3中S1)。繼而,將轉換為p進數之資料覆寫至「D-r」暫存器(圖3中S2)。接著,對儲存於「D-r」暫存器之p進數資料乘以生成矩陣G而將其轉換為李度量碼(第3資料)(圖3中S3)。最後,將該李度量碼覆寫至「D-r」暫存器(圖3中S4)。
藉此,作為「D-r」暫存器之10×8之80位元之暫存器區塊的暫存器中所儲存之1PROCESS之二進制資料被轉換為李度量碼後,覆寫至同一暫存器區塊而予以儲存。
藉由重複以上之PROCESS序列,以82PROCESS處理512位元組之扇區之資料。再者,82PROCESS可處理之資料量相對於512位元組而多4個位元,故附加4位元之固定虛擬位元而進行處理。
其次,對暫存器區塊之構成、與猝發資料傳送之關係進行說明。
圖4係表示構成扇區暫存器之最初之暫存器區塊的圖。
1個暫存器區塊包含80個位元暫存器,其中圖4中以a表示之8×5之暫存器群保存有第1~5循環之傳送資料。
第6~10循環之傳送資料係保持於在8×5之暫存器群下側並列配置之圖4中以b表示的暫存器群中。第6~10循環之傳送資料之一部分構成保持於圖4所示之最初之暫存器區塊之1PROCESS之資料的一部分,其他部分構成保持於下一暫存器區塊之1PROCESS之資料的一部分。
所輸入之位元組資料之傳送之掃描係如圖4中以虛線箭頭所示呈波狀進行。即,藉由最初之10循環之傳送資料確定最初之暫存器區塊之資料,其後可進行資料處理。
又,跨循環而傳送之位元組資料於處理上係予以合併,故可知位元組資料之每位元使用之循環數不同。於圖4之情形時,位元組資料係最初之2位元為10循環、剩餘之6位元為5循環之資料。
其次,一面參照圖5,一面對資料寫入時之扇區暫存器之資料處理過程進行說明。
圖5中自左起依序表示二進制資料之猝發傳送之扇區暫存器之情形(圖5中S1)、p進數轉換後之扇區暫存器之情形(圖5中S2)、李度量碼轉換後之扇區暫存器之情形(圖5中S3)。再者,圖5中之虛線表示每8位元之位元組暫存器之邊界。
扇區暫存器係將820個暫存器排成8行而構成者,820列具有102.5位元組之資料傳送之接口。8行中將第1~5行利用於資料傳送,將剩餘的第6~8行利用於資料傳送後之處理資料之保持。
於圖5之S1中,利用512循環對暫存器區塊傳送1PROCESS之二進制資料。首先,將以512循環傳送之二進制資料中最初之第1~510循環所傳送的二進制資料每隔5循環而依序儲存至第1~5列之位元組暫存器。於第510循環所傳送之二進制資料之儲存結束之時間點,820列中第1~816列之暫存器嵌入資料。
繼而,第511、512循環所傳送之資料分別每4位元地分割之後,如圖5中S1下圖所示,分別保持於第817~820列之第1~4行之暫存器。再者,第817~820列之第5行之暫存器中儲存有4位元之固定虛擬資料。
以上,扇區暫存器中以82PROCESS而儲存有相當於10位之25
進數之h=5、δ=10的50位元之二進制資料。
圖5之S2中,將50位元之二進制資料轉換為11位之p(=17)進數之55位元之資料後覆寫至扇區暫存器。該PROCESS係對每10列暫存器進行。經轉換之p進數之資料係儲存於各10列8行之暫存器區塊中之55位元。扇區暫存器包含820列8行之暫存器,1PROCESS中每隔10列而覆寫資料,故藉由82PROCESS而於所有扇區暫存器中嵌入p進數資料。
以上,藉由圖5中S1、S2,完成1扇區之自二進制資料向p進數資料之轉換。
於圖5之S3中,將p進數資料轉換為李度量碼。
李度量碼係以p-1(=16)個Zp之要素為成分之資料。1PROCESS之李度量碼係對55位元之p進數資料乘以G矩陣而得之80位元之資料,該1PROCESS之李度量碼係覆寫且儲存於10列8行之暫存器區塊中之一者。該情形時,藉由82PROCESS而於1扇區暫存器整體中填滿李度量碼。藉此,扇區暫存器保持有用以寫入p-adic單元164位元組個之資料。
以上,圖5中S1~S3所示之3階段之處理係每隔10列8行之暫存器區塊地依序進行。
再者,向扇區暫存器之資料傳送中如上所述存在高速模式與隨機模式。於高速模式之情形時,傳送而來之二進制資料係自扇區暫存器之開端起依序嵌入。因此,於高速模式中,向10列8行之暫存器區塊儲存1PROCESS之二進制資料之時間點,可並行地依序執行PROCESS。
另一方面,於隨機模式之情形時,可對每一猝發長指定開端位址而設定資料之儲存場所,並且可選擇交錯與環繞之2個定址模式。該情形時,暫存器區塊中分散地產生未儲存資料之區域。因此,於隨機模式中,需要等待表示向扇區暫存器之二進制資料儲存結束之命令,且需要開始PROCESS等之控制。
如此,於本實施形態之記憶體系統中,對扇區暫存器執行兩次資料覆寫,即自二進制資料(第1資料)向p進數資料(第2資料)轉換時以及自p進數資料(第2資料)向李度量碼(第3資料)轉換時。
而且,於先前之記憶體系統之情形時,並無相當於自二進制資料向p進數資料轉換之處理,而是將二進制資料直接轉換為使用雷德-所羅門(Reed-Solomon)等之代碼,故對暫存器之覆寫最多進行一次。
其次,一面參照圖6,一面對資料讀出時之扇區暫存器之資料處理之過程進行說明。
於圖6之S1中,儲存於p-adic單元陣列之164位元組個p-adic單元中的資料被讀出至82PROCESS之820位元組之扇區暫存器。
儲存於扇區暫存器之資料對應10列8行之暫存器區塊所儲存的1PROCESS之資料,自扇區暫存器之端接受ECC之計算處理,對能夠校正錯誤者進行校正,對無法校正者保持不變。而且,以82PROCESS對1扇區所有資料完成ECC處理後,復原李度量碼。
於圖6之S2中,將圖6之S1中經復原之李度量碼依序轉換為p進數資料。此處,1個扇區之李度量碼對應1PROCESS之80位元而進行生成矩陣G之逆轉換,轉換為以5位元之11位表示的p進數資料後,覆寫至各暫存器區塊。
於圖6之S3中,將圖6之S2中所生成之p進數資料轉換為25
進數之二進制資料。於「p-adic to binary」部分,將1PROCESS之p進數資料轉換為5位元10位之50位元之二進制資料後,將該二進制資料以10列8行之暫存器區塊之單位覆寫。
其後,將二進制資料對應8列5行之暫存器群,以1位元組/循環之速度按照行順序讀出,並作為1個扇區之資料輸出。再者,關於自扇區暫存器之最後2個循環之資料讀出,如圖6中S3下圖所示,係與資料寫入時同樣地,將4位元2行之二進制資料作為位元組資料而於1循環中讀出。
再者,於高速存取模式中,係自扇區暫存器之開端讀出資料,故可藉由1PROCESS之處理之潛時而依序讀出扇區暫存器之資料。另一方面,隨機模式下無法預先知曉扇區內之猝發之開端,故可於扇區暫存器內再現1個扇區之二進制資料的82PROCESS結束之後開始進行存取。
如此,於本實施形態之記憶體系統中,對扇區暫存器執行兩次資料覆寫,即ECC處理後執行之將李度量碼(第3資料)向p進數資料(第2資料)轉換時以及自p進數資料(第2資料)向二進制資料(第1資料)轉換時。
而且,於先前之記憶體系統之情形時,並無相當於自李度量碼向p進數資料轉換之處理,對暫存器之覆寫最多進行一次。
<向p-adic單元之Zp之要素分配>
其次,對向p-adic單元儲存李度量碼C=(c1
,c2
,…,c16
)之各代碼cj
時最佳的對p-adic單元之位準之Zp之要素分配進行說明。
於本實施形態中,如圖7所示,係自p-adic單元之最下位位準起,如0、1、…、16般連續地分配Zp之要素。該情形時,錯誤之量、與位準之變化量成比例。
於p=17之情形時,p-adic單元中必要位準數為17,該等17階段之位準之邊界(閾值)數為16。
又,於ε=4之情形時,僅1單元產生錯誤時可對圖7中以粗箭頭表示之範圍之位準的誤識別進行錯誤校正。然而,錯誤主要係因鄰接位準之範圍內之誤識別而產生。
即,本實施形態之記憶體系統藉由如圖7所示之分配方法,實質上具有可實現16單元中4單元之錯誤校正的強力錯誤校正能力。
<資料之讀出/寫入>
其次,一面參照圖8一面對向p-adic單元陣列之資料之寫入/讀出方法之一例進行說明。再者,此處所謂之「p-adic單元陣列」,係指使用浮動閘極型電晶體作為p-adic單元,將複數個p-adic單元進行NAND連接而成之單元陣列。
此處,首先對圖8所示之各記號之含義進行說明。
於p=17之情形時,李度量碼之代碼成分為16個。將該等各代碼設為c1
~c16
。各代碼c可以包含5位元之二進制h表示。又,自二進制h之最下位位元起將最上位位元之各位元設為Cj
0~Cj
4。
資料寫入/讀出時,藉由自作為資料寫入部或資料讀出部之一部分發揮功能之列解碼器/字元線驅動器(Row Dec./WLDriver)所供給的寫入電壓/讀出電壓,字元線WL之位準變化為17階段。將表示此時之字元線WL之位準的信號設為Δ1
~Δ17
。又,對使位元X反轉而成者附加「/」,以「/X」表示。
首先,對向p-adic單元之資料之寫入進行說明。
作為p-adic單元之NAND單元之閾值係對字元線WL與位元線BL間施加固定電壓而根據注入至浮動閘極之電子之量來設定。
於資料寫入時,字元線WL之電位係以16階段不斷上升。另一方面,位元線BL係連接於固定電源Vss,當p-adic單元到達所需之閾值時,變成自固定電壓Vss斷開之浮動狀態。藉此,浮動閘極上不會施加電壓,可避免向浮動閘極注入多餘電子。
於本實施形態中,使用該方法對與構成代碼之成分對應的p-adic單元批次地進行閾值設定。代碼成分c1
~c16
對應於Zp之要素,故將其以二進制表現。對於p-adic單元之位準之閾值,最低之閾值分配Zp之要素0,之後由低至高按升序分配Zp之要素。此處,將對應於各Zp之位準L之閾值區分之上限設為L、將用以注入對應於該閾值之電子量之字元線WL之位準設為WVL
、將產生該字元線之位準WVL
的信號設為ΔL
。
若將p-adic單元之消去狀態設為閾值最低之狀態,則應寫入Zp之成分0之p-adic單元之閾值無須變化,但應寫入Zp之其他成分的p-adic單元之閾值需要變化。
因此,於本實施形態中,為使p-adic單元之閾值變化,將字元線WL之電壓由低至高依序提昇,而向浮動閘極注入電子。此時,於字元線WL之電壓為與p-adic單元應設定之閾值對應之電壓以上的情形時,如上所述,將連接於此p-adic單元之位元線BL設為浮動狀態,以便不產生多餘的電子注入。進行該控制者係圖8中以a表示之程式設定電路。
程式設定電路包含用以將位元線BL連接於電壓Vss之NMOS電晶體QN1。該電晶體QN1之閘極經由下述控制信號/p所控制之NMOS電晶體Vcc而連接於固定電壓Vcc。又,電晶體QN1之閘極經由與Zp之各要素對應之並列排列的16個匯流排而連接於電壓Vss。該等16個匯流排分別係將5個NMOS電晶體串列連接而成之電路。各匯流排於/Cj
0^
/Cj
1^
/Cj
2^
/Cj
3^
/Δ1
、Cj
0^
/Cj
1^
/Cj
2^
/Cj
3/Δ2
、…、Cj
0^
Cj
1^
Cj
2^
Cj
3^
Δ16
個之情形時導通。
資料寫入時,字元線之位準自WV0
變化至WV16
,此時程式設定電路根據字元線之位準,控制位元線BL連接於電壓Vss,或者自電壓Vss斷開而變成浮動狀態。
即,當字元線之位準為WVL
時、即信號ΔL
為活動時,將連接於應設定為L-1之p-adic單元的位元線BL自電壓Vss斷開。藉此,此p-adic單元之閾值係設定為L-1之區分。位元線BL與電壓Vss之斷開係藉由電晶體QN1而控制。該電晶體QN1之閘極之節點n1首先經由信號/p所控制之電晶體QP1而預充電。並且,根據表示代碼成分之位元之資訊Cj
0~Cj
3及表示字元線之位準的信號Δ1
~Δ16
之解碼結果,而對節點n1進行放電。藉此,電晶體QN1斷開,位元線BL變成浮動狀態。再者,對於應寫入Zp之要素16之p-adic單元而言,無須使節點n1放電,只要能對Zp之要素0~15進行解碼便可,故可使用Cj
0~Cj
3之4位元之資訊。
該程式設定電路亦可對應連接於屬於同一字元線WL且與代碼不同的成分對應之p-adic單元連接之每個位元線BL而設置。該情形時,藉由使字元線WL之電壓依序提昇,將p-adic單元設定為與代碼成分之Zp對應之閾值位準。
又,為對p-adic單元設定準確之閾值位準,當改變字元線之位準時,亦可加入驗證p-adic單元之閾值狀態之檢驗讀出動作。
繼而,對自p-adic單元讀出資料進行說明。
於資料讀出時,根據流過p-adic單元之電流Icell而偵測p-adic單元之位準者,係設於位元線BL一端之感測放大部t-SA。
感測放大部t-SA包括對參照電流Iref與單元電流Icell進行比較之感測放大器sa、保持該感測放大器sa自最新比較結果之鎖存L1、保持感測放大器sa之前一比較結果之鎖存L2、根據鎖存L1與鎖存L2之結果偵測感測放大器sa之比較結果之變化的XOR閘G1、以及偵測p-adic單元是否已變化為對應於Zp之16之閾值的XOR閘G2。該XOR閘G2之輸出係作為感測放大部t-SA之輸出Z。
參照電流Iref係設定為比向p-adic單元施加閾值位準之區分之上限及其閾值位準所對應之字元線WL之電壓時之單元電流略大的電流。
感測放大部t-SA之感測放大器sa對參照電流Iref與單元電流Icell進行比較,當單元電流Icell較大時,對鎖存L1輸出「1」。字元線WL之電壓係於WV1
~WV16
個範圍內依序變化,僅於字元線之位準於WVL
時為「0」、WVL+1
時為「1」之情形時p-adic單元之閾值位準為區分L,p-adic單元保持Zp之要素L。
感測放大器sa之比較結果係依序傳送至2個鎖存L1與L2。當該等鎖存L1及L2之內容不同時,感測放大部t-SA之輸出為Z=「1」。藉此,可根據字元線之位準WVL
而判別寫入至p-adic單元之閾值之狀態。
再者,當字元線之位準為WV1
時,在Z=「1」時需要判別p-adic單元之閾值為區分0以下。又,當字元線之位準為WV16
個時,若Z=「0」則需要判別p-adic單元之閾值為區分16以上。因此,為可進行該等判斷,將鎖存L1、L2之初始狀態設定為「0」,進而於信號Δ16
個後產生信號Δ17
。藉此,可根據感測放大部t-SA之輸出變成Z=「1」時之信號ΔL
判斷p-adic單元之閾值之位準為L-1。
對保持各位元線BL上垂下之Cj
0~Cj
4之5位元之暫存器進行說明。
暫存器對應每個位元而具有如圖8中b所示之電路。即,暫存器對應每個位元而包含含有2個反相器之正反器FF、以該正反器FF之一端之節點n2為輸入之反相器IV1、用以使節點n2之電壓放電之2個串列連接的NMOS電晶體QN2、QN3、以及用以使正反器FF之另一端之節點n3之電壓放電的電晶體QN4。藉由該構成,節點n2之輸出變成/rj
,反相器IV1之輸出變成rj
。又,節點n2於j^Z=「1」之情形時係連接於電壓Vss,節點n3於RS=「1」之情形時係連接於電壓Vss。
圖8所示之「Zp→h dec」電路區塊係將信號Δ1
~Δ17
轉換為0~16個5位元表示之解碼器。
圖8中以b表示之暫存器係配置於該「Zp→h dec」電路區塊輸出之二進制信號Cj
0~Cj
4之配線與感測放大部t-SA之輸出Z之配線的各交點上。藉此,感測放大部t-SA輸出之Z係由5個暫存器保持。該情形時,該等5個暫存器所保持之資料可作為代碼成分c之二進制表示而利用。
又,該等暫存器可利用於資料寫入/讀出時之控制。例如,於資料寫入時,該等暫存器中若儲存有設定之代碼之成分之二進制表示,則可利用於以程式設定電路進行檢驗,將位元線BL設為浮動狀態等控制。
繼而,對自列解碼器/字元線驅動器供給至字元線WL之寫入電壓/讀出電壓的設定進行說明。
對於同時存取之p-adic單元全體而言,p-adic單元之位準與代碼之值之建立關聯係同時進行,故字元線WL需要以所有電壓WV0
~WV16
進行掃描。
圖9係使字元線WL之電壓依序提昇或下降而掃描之例。
於資料寫入(Write)中,只有使p-adic單元之閾值依序提昇而變化之方法,故字元線之電壓自係低電壓側向高電壓側變化。另一方面,於資料讀出(Read)中,如上所述,掃描中移動所有位準便可。
於圖9之情形時,掃描1中,字元線位準係自WV0
提昇至WV16
,故可於提昇前將代碼資料C設定於暫存器而進行資料寫入。又,於資料讀出之情形時,在掃描1結束之時間點,代碼資料得到確定,故可進行資料之讀出。
掃描1結束後進行資料寫入之情形時,如掃描2之點線所示,需要將字元線電壓再次返回為WV0,依序提昇至WV16為止。另一方面,於進行資料讀出之情形時,既可如掃描2之點線所示,使字元線電壓依序提昇,亦可如實線所示,掃描1後依序下降。於掃描2結束之時間點,由於代碼資料得到確定,故與掃描1結束時同樣地,可進行資料之讀出。
藉由掃描1與掃描2而對屬於字元線WL之所有p-adic單元進行存取之情形時,需要於該等掃描1及2中選擇不同之字元線WL,但感測放大部t-SA由複數個位元線BL共用之情形時等,當並行讀出屬於相同字元線WL之p-adic單元時亦可於掃描1及2中選擇相同字元線WL。
<自二進制資料向17進數之轉換>
其次,對本實施形態之記憶體系統之入口與出口必需之二進制與p進數(17進數)之轉換電路進行說明。
圖10係模式性表示自p=17時之「binary world」之δ位之2h
進數D(d0
,d1
,…,dδ-1
)向「p-adic Zp mod p world」之δ+1位之p進數D(a0
,a1
,…,aδ-1
,aδ
)的轉換計算之過程之構成之圖。
再者,圖10所示之表示為「5 res」之四角係將所輸入之二進制資料除以17,求出商與餘數之運算電路。該運算電路之輸入係6位元之二進制資料,輸出係將該二進制資料除以17後所得之餘數。又,輸入之二進制資料為17以上之情形時,將商作為進位(carry)C而輸出。以下,將該運算電路元件稱為「5 res」電路區塊。
首先,於第0步驟(圖10中S0)中,相對於10位之25
進數之資料D(d0
,d1
,…,d9
),自最右側之d9
側起進行17之枚舉。此處,對於d9
而言,於向輸入至「5 res」電路區塊之6位元之二進制資料之最上位位元置入0而直接生成將d9
除以17所得之餘數,且一併直接生成作為商之進位C1 45
。
繼而,藉由以第5~1位元為前一「5 res」電路區塊之輸出(以5位元表現之餘數)、第0位元(最下位位元)以d8
之最上位位元D8 4
(=D39
)之6位元之二進制資料為輸入的下一「5 res」電路區塊,作成將所輸入之二進制資料除以17所得之餘數,且一併作成作為商之進位C1 44
。
之後,直至輸入至「5 res」電路區塊之6位元之二進制資料中之第0位元變成d0
之最下位位元D0 0
(=D0
)為止,使用46個「5 res」電路區塊生成進位C1 0
~C1 45
。藉由該等生成之進位C1 0
~C1 45
所表現之二進制資料變成資料D所含之17之個數。
並且,以d0
為輸入之「5 res」電路區塊之輸出變成11位之17進數D(a0
,a1
,…,a10
)中之a0
之二進制表示。
繼而,於第1步驟(圖10中S1)中,對於由第0步驟所得之資料D所含之17之個數,進而計算包含多少個17而求出172
之個數,求出17進數D之權重171
位之係數a1
之二進制。
於第1步驟中,對於進位C1 0
~C1 45
而自最右側之C1 45
側起進行17之枚舉。對進位C1 41
~C1 45
進行17之枚舉時,向6位元之輸入二進制資料之最上位位元置入0而直接生成將輸入二進制資料除以17所得之餘數,且一併直接生成進位C2 41
。
繼而,藉由以第5~1位元為前一「5 res」電路區塊之輸出(以5位元表現之餘數)、第0位元(最下位位元)以C1 40
之6位元之二進制資料為輸入的下一「5 res」電路區塊,生成將所輸入之二進制資料除以17所得之餘數,且一併生成作為商之進位C2 40
。
之後,直至輸入至「5 res」電路區塊之6位元之二進制資料中第0位元變成C1 X
之最下位位元C1 0
為止,使用41個「5 res」電路區塊生成進位C2 0
~C2 41
。藉由該等生成之進位C2 0
~C2 41
而表現之二進制資料變成資料D所含之質數172
之個數。
並且,以C1 0
為輸入之「5 res」電路區塊之輸出變成11位之17進數D(a0
,a1
,…,a10
)中之a1
之二進制。
繼而,於第2步驟(圖10中S2)中,對於由第1步驟所得之資料D所含之172
之個數,進而計算含有多少個質數p而求出173
之個數,求出17進數D之權重172
位之係數a2
之二進制。
之後,同樣地進行至求出p進數之權重1710
位之係數a10
之二進制表示的第10步驟(圖10中S10)為止。
再者,第10步驟之進位C11 0
~C11 5
並不用於計算。
其次,考慮使用「6 bit mod p」電路區塊之「binary to p-adic」轉換部之構成。此處,所謂「6 bit mod p」電路區塊係指如下電路:對6位元之二進制資料之輸入A、與質數17進行比較,當A為17以上時輸出PF0=「1」,並且輸出A之質數17之餘數Q。詳細說明於下文敍述。
圖11中(A)係使用「6 bit mod 17」電路區塊而構成「binary to p-adic」轉換部之第k步驟之電路者。
此處,將資料以10位之25
進數表現時之第j位設為dj
。該情形時,dj
可以5位元之二進制表示,為使該表示之係數D與其他d之係數D共通地表現,而如數24所示使用子指數(subindex)。
[數24]
又,作為第k步驟之運算輸入之前步驟(第k-1步驟)之進位係Ck 0
~Ck 5(10-k)+k-1
,變成作為子指數設為2之冪之指數的2進數之係數,且由該2進數表現之數係資料所含之17k
之個數。
於第k步驟中,如圖11中(A)所示,輸入為5(10-k)+k個二進制(進位Ck 0
~Ck 5(10-k)+k-1
),且由5(10-(k+1))+k+1個「6 bit mod 17」電路區塊接收。
第1個「6 bit mod 17」電路區塊<1>向輸入二進制A0
~A4
、A5
分別輸入Ck 5(10-k)+k-5
~Ck 5(10-k)+k-1
、0,根據輸出Q0
~Q4
、進位PF0而分別輸出R5(10-(k+1))+k 0
~R5(10-(k+1))+k 4
、Ck+1 5(10-(k+1))+k
。
未圖示之第2個「6 bit mod p」電路區塊<2>向輸入二進制A0
、及A1
~A5
分別輸入進位Ck 5(10-(k+1))+k-1
、及第1個「6 bit mod 17」電路區塊<1>之輸出R5(10-(k+1))+k 0
~R5((10-(k+1))+k 4
,根據輸出Q0
~Q4
、及進位PF0而分別輸出R5(10-(k+1))+k-1 0~
R5(10-(k+1))+k-1 4
、及Ck+1 5(10-(k+1))+k-1
。
之後,如圖11中(A)所示,具有同樣之輸入輸出之「6 bit mod 17」電路區塊合計有5(10-(k+1))+k+1個排列,且自各「6 bit mod 17」電路區塊輸出之進位Ck+1 0
~Ck+1 5(10-(k+1))+k
變成作為下一步驟之第k+1步驟的輸入。
如此,自二進制向p進數之轉換係如圖11中(B)所示之模式圖般,自進位C之最上位位元側起依序執行。
圖11中(A)係與第k步驟相關之電路構成,各步驟係分時進行處理,藉此可於各步驟中隨意使用圖11中(A)所示之電路構成。該情形時,為了可藉由單純之接通/斷開而控制各「6 bit mod 17」電路區塊之輸入輸出,而於「6 bit mod 17」電路區塊之必要數最大之第0步驟之電路構成中,進而附加10個「6 bit mod 17」電路區塊。
圖12表示包含以此方式構成之56個「6 bit mod 17」電路區塊之電路。以下,將該電路稱為「X to p」電路區塊。
如圖13所示,該「X to p」電路區塊之輸入較圖12中(A)中k=0時多10個,為C0 0
~C0 59
之合計60個。又,輸出係自每隔5個「6 bit mod 17」電路區塊輸出之11個5位元之二進制R0 0
~R0 4
、R5 0
~R5 4
、…、R45 0
~R45 4
、R50 0
~R50 4
、及作為下一步驟之輸入的55個進位C1 0
~C1 55
。
其次,對圖10所示之「5 res」電路區塊之「6 bit mod 17」電路區塊進行具體說明。
圖14係表示「6 bit mod 17」電路區塊之電路記號的圖。「6 bit mod 17」電路區塊輸入6位元之二進制A0
~A5
,輸出5位元之二進制Q0
~Q4
及進位PF0。
「6 bit mod 17」電路區塊輸出輸入二進制A之質數17之餘數Q,並且當輸入二進制A為17以上時自PF0輸出「1」,未達17時自PF0輸出「0」。
此處,於h=5、p=17之情形時,二進制A、二進制Q、質數p之間成立有數25所示之關係。
[數25]
a=A0
+A1
2+A2
22
+A3
23
+A4
24
+A5
25
Q≡a(mod p)(a=Q+PF0xp)
Q=Q0
+Q1
2+Q2
22
+Q3
23
+Q4
24
圖15係「6 bit mod 17」電路區塊之電路圖。
「6 bit mod 17」電路區塊包含PF0生成部U1、2個半加算器(Half adder)HA1、HA2、及3個全加算器(Full adder)FA1~FA3。
PF0生成部U1包含於供給特定電壓之Vcc端子、與供給接地電壓之Vss端子之間,串列連接的PMOS電晶體QP1~QP5及NMOS電晶體QN1~QN2。該等電晶體QP1、QP2、QP3、QP4、QP5、QN1、及QN2分別係由A0
、A1
、A2
、A3
、A5
、A0
、及A4
控制。
又,PF0生成部U1此外還包含PMOS電晶體QP6、4個NMOS電晶體QN3~QN6、及反相器IV1。
電晶體QP6係並列連接於電晶體QP1之源極及電晶體QP4之汲極間。電晶體QN3~QN5分別係並列連接於電晶體QN1之源極及汲極間。又,電晶體QN6係並列連接於電晶體QN1之源極及電晶體QN2之汲極(Vss端子)間。該等電晶體QP6、QN3、QN4、QN5、及QN6分別係由A4
、A2
、A3
、及A5
控制。
反相器IV1之輸入係連接於電晶體QN1、QN3~QN6之源極。該反相器IV1之輸出為進位PF0。
半加算器HA1之輸入為A0
及PF0、輸出為Q0
、且進位輸出為C0。全加算器FA1之輸入為C0及A1
、進位輸入為PF0、輸出為Q1
、進位輸出為C1。全加算器FA2之輸入為C1及A2
、進位輸入為PF0、輸出為Q2
、進位輸出為C2。全加算器FA3之輸入為C2及A3
、進位輸入為PF0、輸出為Q3
、進位輸出為C3。半加算器HA2之輸入為C3及A4
、輸出為Q4
。
藉由以上之構成,PF0生成部U1判斷輸入至「6 bit mod 17」電路區塊之二進制A是否為17以上,並自PF0輸出其結果。於二進制A為17以上之情形時,為自二進制A扣除17,藉由半加算器HA1、HA2、及全加算器FA1~FA3,而於二進制A上添加作為6位元二進制之17之補數的15。
其次,對作為「binary to p-adic」轉換部之核心部分之「p-adic」電路區塊進行說明。
圖16係表示「p-adic」電路區塊之電路記號之圖。
「p-adic」電路區塊如圖16所示,輸入B0
~B11
、I0
~I59
,輸出r0
~r60
。
圖17係「p-adic」電路區塊之方塊圖。「p-adic」電路區塊構成為將1步驟之電路構成作為「X to p」電路區塊,並於其上附加控制「X to p」電路區塊之輸入輸出的控制開關SW。
具體而言,輸入I0
~I4
、I5
~I19
、…、I54
~I59
分別係經由控制開關SW1,作為C0 0
~C0 4
、C0 5
~C0 19
、…C0 54
~C0 59
而輸入至「X to p」電路區塊。該等控制開關SW1分別係藉由輸入B1
~B10
而控制。
1個控制開關SW1包含將輸入IN與輸出OUT連接之轉移電晶體TQ、及將輸出OUT後退至接地電壓之NMOS電晶體QN。轉移電晶體TQ於控制信號為CNT=「0」之情形時接通,電晶體QN於控制信號為CNT=「1」之情形時接通。
於控制開關SW1之情形時,控制信號CNT為/B1
~/B10
。因此,於B=「1」之情形時,I0
~I59
直接作為C0 0
~C0 59
而輸出,於B=「0」之情形時,輸出為「0」,不依賴於輸入。其目的在於即便向「p-adic」電路區塊之輸入I0
~I59
不定,亦可避免「X to p」電路區塊之輸入變得不定之情形。
輸入有C0 0
~C0 59
之「X to p」電路區塊如上所述輸出R0 0
~R50 4
、C1 0
~C1 55
。
自「X to p」電路區塊輸出之C1 0
~C1 55
經由控制開關SW2而變成「p-adic」電路區塊之輸出即r5
~r60
。該等控制開關SW2係藉由輸入B1
~B10
而控制。因此,該等控制開關SW2於B=「0」之情形時,將C1 0
~C1 55
直接作為r5
~r60
而輸出。
又,自「X to p」電路區塊輸出之R0 0
~R50 4
經由控制開關SW3而變成「p-adic」電路區塊之輸出即r0
~r54
。該等控制開關SW3分別係藉由B0^
/B1
~B10^
/B11
而控制。藉此,例如,位於R0 0
及r0
間之控制開關SW3僅於B0
=「1」、B1
=「0」之情形時,將R0 0
直接作為r0
而輸出。
對控制開關SW進行控制之B1
~B11
係時序信號,其係依序上升之信號。對應於此,輸入I之匯流排自下位位元側起每隔5位元而開通,輸出r之匯流排與輸出R之匯流排進行切換。
相當於17進數之各位之係數A之R直至代入下一步驟之計算過程之前,係輸出此步驟之結果,故經由利用與鄰接之時序信號B進行邏輯運算的信號而進行接通/斷開控制之控制開關SW3,輸出至下述外部之「D-r」暫存器。
其次,對將以上說明之電路匯總而構成之「binary to p-adic」轉換部進行說明。
圖18係「binary to p-adic」轉換部之方塊圖。「binary to p-adic」轉換部係於「p-adic」電路區塊上結合「D-r」暫存器而構成者。
「D-r」暫存器如圖18所示係藉由時序信號B及時脈clk而控制之暫存器,其具有輸入r0
~r60
、D0
~D60
、輸出I0
~I59
。
圖19係「D-r」暫存器之電路圖。
「D-r」暫存器對應每個位元而具有包含2個反相器之正反器FF。該正反器FF中經由控制開關SW1而輸入有Dj
(j=0~60),且經由控制開關SW2而輸入有rj
。另一方面,正反器FF之輸出側經由控制開關SW3而連接有反相器IV1。該反相器IV1之輸出為Ij
。
控制開關SW1~SW3係藉由時序信號B0
及時脈clk而控制。具體而言,分別為控制開關SW1於/clk^/B0
=「1」之情形時接通,控制開關SW2於/clk^B0
=「1」之情形時接通,控制開關SW3於clk=「1」之情形時接通。
再者,「D-r」暫存器之資料輸入中不存在之D50
~D60
係設為「0」。
「D-r」暫存器之初始狀態係設定二進制D0
~D49
,剩餘以「0」嵌入之狀態。之後,與B0
上升及clk下降同步而讀取資料rj
,與clk之上升同步而將所取得之rj
作為Ij
輸出。
該「D-r」暫存器係與「p-adic」電路區塊結合而對應時序信號Bj
推進計算步驟。圖20表示各時脈之變化之情形。自時脈clk作成時脈ck,進而作成時序信號Bj
。
各計算步驟中17進數之各位Aj
係自下位側作為輸出r而獲得,且將其以與時序信號Bj
之後半Ij
之取得相同的時序予以保持。
若所有計算步驟結束則於「D-r」暫存器中保持將17進數之資料D之各位之係數a轉換為二進制時的各位之係數Aj m
。
再者,於p=17之情形時,計算步驟之數為12,「p-adic」電路區塊所含之「6 bit mod 17」電路區塊之數為56。
<自17進數向25
進數之轉換>
圖21係模式性表示自「p-adic Zp world」之11位之17進數D(a0
,a1
,…,a9
,a10
)向「binary world」之10位之25
進數D(d0
,d1
,…,d9
)之轉換電路之構成的圖。
再者,圖21中「5 add 17」表示之四角係對於所輸入之5位元之資料,根據輸入之進位C添加17而輸出6位元之二進制的運算電路。以下,將該電路稱為「5 add 17」電路區塊。
首先,於第0步驟(圖21中S0)中,相對於17進數之9次位之二進制表示,將10次位之二進制表示作為進位即1710
之個數之二進制表現而進行上述計算。藉此,獲得進位C1 0
~C1 9
之10位元作為179
之個數。該進位C1 0
~C1 9
變成接下來之第1步驟之輸入。
繼而,於第1步驟(圖21中S1)中,相對於17進數之8次位之二進制表示,將第0步驟所得之進位C1 0
~C1 9
作為179
之個數之二進制表現而進行上述計算。藉此,獲得進位C2 0
~C2 14
之15位元作為178
之個數。該進位C2 0
~C2 14
變成接下來之第2步驟(圖21中S2)的輸入。
之後,重複與第0步驟及第1步驟相同之步驟,而於第9步驟(圖21中S9)中,相對於17進數表現之0次位之二進制表示,將之前的第8步驟(圖21中S8)所得之進位C9 0
~C9 49
作為p之個數之二進制表現而進行上述計算,獲得進位C10 0
~C10 54
之55位元作為170
之個數即D之2進數表現。其中,上位之5位元根據D之17進數與25
進數之設定而變成零。若將自該等進位C10 0
~C10 54
去除C10 50
~C10 54
所得之C10 0
~C10 49
每隔5位元進行匯總,則可獲得D之二進制表現D(d0
,d1
,…,d9
)。
其次,考慮「p-adic to binary」轉換部之構成。
圖22係使用「6 bit add 17」電路區塊構成「p-adic to binary」轉換部之第k步驟之電路構成者。此處,「6 bit add 17」電路區塊係於5位元之二進制資料之輸入B上添加質數17並將其結果作為二進制資料Q輸出的電路。詳細說明於下文敍述。
將資料以11位之17進數表現之j次位之係數aj
可以5位元之二進制表現,為將該二進制表現之係數A設為與其他位之係數a共通之表現,而使用如數26所示之子指數。
[數26]
又,作為第k步驟之運算之輸入的前步驟(第k-1步驟)之進位為Ck 0
~Ck 5(k+1)-1
,子指數係作為2之冪之指數之2進數的係數,且該2進數所表現之數係資料所含之1710-k
之個數。
於第k步驟中,如圖22中(A)所示,係藉由5(k+1)個「6 bit add 17」電路區塊進行處理。各「6 bit add 17」電路區塊中輸入有1個進位(carry)、及表示17進數表現之1位分之係數的5個二進制。
第1個「6 bit add 17」電路區塊<1>於carry、輸入B0
~B4
中分別輸入Ck 0
、Q-1 0
~Q-1 4
,於Q0
、Q1
~Q5
中分別輸出Ck+1 0
、Q0 0
~Q0 4
。
未圖示之第2個「6 bit add 17」電路區塊<2>於carry、輸入B0
~B4
中分別輸入Ck 1
、Q0 0
~Q0 4
,於Q0
、Q1
~Q5
中分別輸出Ck+1 1
、Q1 0
~Q1 4
。
之後,如圖22中(A)所示,具有相同輸入輸出之「6 bit add 17」電路區塊為合計5(k+1)個排列,且自各「6 bit add 17」電路區塊輸出的進位Ck+1 0
~Ck+1 5(k+1)-1
變成下步驟之第k+1步驟之輸入。
如此,自17進數向二進制之轉換係如圖22中(B)所示之模式圖般自進位C之最下位位元側起依序依序執行。
圖22中(A)如上述般係與第k步驟相關之電路構成,藉由對各步驟分時地進行處理,而可於各步驟中隨意使用圖22中(A)所示之電路構成。該情形時,為了可藉由單純的接通/斷開而控制各「6 bit add 17」電路區塊之輸入輸出,如圖23所示,將k=0時之5個「6 bit add 17」電路區塊設為最小構成之電路區塊。
將包含以此方式構成之5個「6 bit add 17」電路區塊之電路稱為「a to X」電路區塊。
如圖24所示,該「a to X」電路區塊之輸入為Q-1 0
~Q-1 4
與C0 0
~C0 4
之10個,輸出為Q4 0
~Q4 4
與C1 0
~C1 4
之10個。
其次,對作為圖21所示之「5 add 17」電路區塊之「6 bit add 17」電路區塊進行具體說明。
圖25係「6 bit add 17」電路區塊之電路記號。「6 bit add 17」電路區塊輸入5位元之二進制B0
~B4
與1位元之進位(carry),輸出6位元之二進制Q0
~Q5
。該「6 bit add 17」電路區塊相對於輸入B而言,若carry為「1」則添加質數17,並將其結果作為Q輸出。
此處,於h=5、p=17之情形時,二進制B、二進制Q之間成立有數27所示之關係。
[數27]
b=B0
+B1
2+B2
22
+B3
23
+B4
24
Q=b+carry×p
Q=Q0
+Q1
2+Q2
22
+Q3
23
+Q4
24
+Q5
25
圖26係「6 bit add 17」電路區塊之方塊圖。
「6 bit add 17」電路區塊包含4個半加算器(Half Adder)HA1~HA4、及1個全加算器(Full Adder)FA1。
半加算器HA1之輸入為B0
及carry、輸出為Q0
、進位輸出為C0。半加算器HA2之輸入為C0及B1
、輸出為Q1
、進位輸出為C1。半加算器HA3之輸入為C1及B2
、輸出為Q2
、進位輸出為C2。半加算器HA4之輸入為C2及B3
、輸出為Q3
、進位輸出為C3。全加算器FA1之輸入為B4
及carry、進位輸入為C3、輸出為Q4
、進位輸出為Q5
。
藉由以上之構成,「6 bit add 17」電路區塊於carry=「1」時在輸入二進制B上添加質數17。
其次,使用上述「a to X」電路區塊,構成用以使17進數之次數下降一個的1個步驟之電路。以下,將該電路稱為「p to X」電路區塊。該「p to X」電路區塊可共通地使用於所有計算步驟中。
圖27係表示「p to X」電路區塊之電路記號之圖。「p to X」電路區塊係藉由時序信號B1
~B9
控制,自作為輸入之Q-1 0
~Q44 4
、C9 0
~C9 49
而輸出C10 0
~C10 54
。
圖28係「p to X」電路區塊之方塊圖。
「p to X」電路區塊包含10個「a to X」電路區塊。
第1個「a to X」電路區塊<1>輸入作為「p to X」電路區塊之輸入之一部分的Q-1 0
~Q-1 4
、及C9 0
~C9 4
,且輸出作為Q'4 0
~Q'4 4
、及「p to X」電路區塊之輸出之一部分的C10 0
~C10 4
。
第2個「a to X」電路區塊<2>輸入作為Q4 0
~Q4 4
、及「p to X」電路區塊之輸入之一部分的C9 5
~C9 9
,且輸出作為Q'9 0
~Q'9 4
、及「p to X」電路區塊之輸出之一部分的C10 5
~C10 9
。輸入中,Q4 0
~Q4 4
係經由時序信號B9
所控制之控制開關SW1而輸入第1個「a to X」電路區塊<1>之輸出Q'4 0
~Q'4 4
的信號。
第3個「a to X」電路區塊<3>輸入作為Q9 0
~Q9 4
、及「p to X」電路區塊之輸入之一部分的C9 10
~C9 14
,且輸出作為Q'14 0
~Q'14 4
、及「p to X」電路區塊之輸出之一部分的C10 10
~C10 14
。輸入中,Q9 0
~Q9 4
係經由時序信號B8
所控制之控制開關SW2而輸入第2個「a to X」電路區塊之輸出Q'9 0
~Q'9 4
的信號。
之後,直至第10個「a to X」電路區塊<10>為止進行同樣地連接。
如此,藉由控制開關SW將「a to X」電路區塊之輸入輸出間連接者,係於每一計算步驟中將輸入之連接以外部輸入與內部輸入進行切換,以便於外部輸入之情形時不被內部電路之輸出干擾。
於圖28之電路構成之情形時,於僅時序信號B0
為「1」之時序,斷開所有控制開關SW,僅第1個「a to X」電路區塊活化。此相當於第0步驟。
繼而,若時序信號B1
亦為「1」,則活化至第2個「a to X」電路區塊<2>為止。此相當於第1步驟。
之後,按時序信號B2
~B9
依序上升時,使各步驟所需之「a to X」電路區塊活化。
其次,對作為「p-adic to binary」轉換部之核心部分之「binary」電路區塊進行說明。
圖29係「binary」電路區塊之電路記號。
「binary」電路區塊如圖29所示輸入B0
~B10
、I0
~I54
、輸出r0
~r54
。
圖30係「binary」電路區塊之方塊圖。「binary」電路區塊構成為將1步驟之電路構成作為「p to X」電路區塊,而於其上附加控制「p to X」電路區塊之輸入輸出的控制開關SW。
具體而言,輸入I5
~I54
分別係經由控制開關SW1而作為C9 0
~C9 49
輸入至「p to X」電路區塊。該等控制開關SW1分別係藉由時序信號B1
~B10
而控制。因此,控制開關SW1於B=「1」之情形時,將I5
~I54
直接作為C9 0
~C9 49
而輸出,於B=「0」之情形時輸出為「0」,而不依賴於輸入。
又,輸入I0
~I49
分別係經由控制開關SW2而作為Q-1 0
~Q44 4
輸入至「p to X」電路區塊。該等控制開關SW2分別係藉由B10^
/B9
~B1^
/B0
而控制。因此,例如,位於I0
及Q-1 0
間之控制開關SW2僅於B10
=「1」、B9
=「0」之情形時,將I0
直接作為Q-1 0
輸出。
自「p to X」電路區塊輸出之C10 0
~C10 54
經由控制開關SW3而變成「binary」電路區塊之輸出即r0
~r54
。該等控制開關SW3係藉由時序信號B9
~B0
而控制。因此,控制開關SW3於B=「1」之情形時,將C10 0
~C10 54
直接作為r0
~r54
輸出。
藉由以上之電路構成,「p to X」電路區塊係一面將輸入與輸出之位寬每隔5位元依序增加一面對應於各計算步驟。各計算步驟中依序自上位位數取得17進數位之數A,當所有計算步驟結束時所得者為資料之二進制表現。
如上述般,時序信號B0
~B10
係依序上升之信號。對應於此,面向輸入I與輸出r之匯流排係自上位位元側起每隔5位元地導通。
17進數之各位之數A係於下述外部之「A-r」暫存器中初始設定,且直至代入下一計算步驟之前,以選擇性切換匯流排之方式,經由對鄰接時序信號B進行接通/斷開控制的控制開關SW3而輸出至「A-r」暫存器。
其次,對將以上說明之電路匯總所構成之「p-adic to binary」轉換部進行說明。
圖31係「p-adic to binary」轉換部之方塊圖。「p-adic to binary」轉換部係於「binary」電路區塊上結合「A-r」暫存器而構成。
「A-r」暫存器如圖31所示係藉由時序信號B0
及時脈clk控制之暫存器,其具有輸入r0
~r54
、A0
~A54
、輸出I0
~I54
。
圖32係「A-r」暫存器之電路圖。
「A-r」暫存器對應每個位元而具有包含2個反相器之正反器FF。該正反器FF中經由控制開關SW1而輸入有Aj
(j=0~54),且經由控制開關SW2而輸入有rj
。另一方面,正反器FF之輸出側係經由控制開關SW3而連接有反相器IV1。該反相器IV1之輸出為Ij
。
控制開關SW1~SW3係藉由時序信號B0
及時脈clk而控制。具體而言,分別為控制開關SW1於/clk^
/B0=「1」之情形時接通,控制開關SW2於/clk^
B0=「1」之情形時接通,控制開關SW3於clk=「1」之情形時接通。
「A-r」暫存器之初始狀態為17進數之位數A0
~A54
。
之後,將與時序信號B0
上升及時脈clk下降同步取得之rj
,與時脈clk之上升同步地作為Ij
輸出。
該「A-r」暫存器與「binary」電路區塊結合而對應每一時序信號Bj
推進計算步驟。各時脈之變化之情形係與圖20相同。自時脈clk作成ck,進而作成時序信號Bj
。
若所有計算步驟結束則於「A-r」暫存器中保持作為輸入之p進數A之二進制表現Dj
。
以上,係用以構成p-adic‧NAND快閃記憶體之準備。
其次,依照本實施形態之記憶體系統之構成之資料處理流程進行說明。
本實施形態之記憶體系統之資料處理係使用李度量碼而進行。該資料處理之方法有上述徵候群轉換法、及歐幾裏得疊代法。於第1實施形態中,對使用徵候群轉換法進行資料處理之記憶體系統進行說明。
徵候群轉換法之一般原理係如上所述。此處,對基於上述規格而代入p=17、ε=4、δ=10等具體數值之情形進行說明。
圖33係表示p-adic記憶體系統之構成之方塊圖。
作為「binary world」之二進制資料之資料D作為「p-adic Zp world」之入口而藉由17進數轉換部101被轉換為17進數,且轉換為作為Zp之代碼之資料A。
該17進數轉換部101可藉由「X to p」電路區塊等使用圖10~圖20所說明之電路構成。
繼而,編碼部102使生成矩陣G作用於自17進數轉換部101輸出之資料A。藉此,資料A轉換為李度量碼而變成代碼C。
繼而,將自編碼部102輸出之代碼C儲存至p-adic單元快閃記憶體103。
繼而,自p-adic單元快閃記憶體103中讀出p-adic單元所保持之代碼。此處,自p-adic單元快閃記憶體讀出之代碼係代碼Y(第4資料)。該代碼Y係代碼C因寫入至儲存有代碼C之p-adic單元時、儲存於p-adic單元時、或自p-adic單元讀出時產生之錯誤變形而成者。
經讀出之代碼Y輸入至徵候群生成部104。徵候群生成部104,藉由轉置徵候群矩陣Ht
、及使用三種對角矩陣各自之冪之數28,而計算徵候群<m>
S。
[數28]
因此,於m=0、<m>
S=0之情形時,不會產生錯誤,故將應進行「p-adic Zp world」之最後處理之步驟的代碼Y輸出至解碼部109。另一方面,於<m>
S≠0之情形時,若<m>=(0,0,0)時之<m>
S之最初之成分S0
為|S0
|>5,則無法確實地進行錯誤校正,故輸出NG信號後,將帶有錯誤之代碼Y輸出至解碼部109。於其他情形時,將徵候群<m>
S輸出至錯誤位置檢索多項式生成部105。
於錯誤位置檢索多項式生成部105中,自該徵候群<m>
S求出錯誤位置檢索多項式Ψ(x),於其4次之次數之係數為Φ 4
≠0之情形時,將此Φ
(x)輸出至哈塞微分多項式生成部106。另一方面,於Φ 4
=0之情形時,重複變更<m>而重新求出徵候群<m>
S之步驟,再次求出多項式Ψ(x)。並且,若即便重複至<m>=(15,15,15)為止Ψ(x)之4次之係數仍為Ψ4
=0,則無法進行錯誤校正,故輸出NG信號後,將帶有錯誤之代碼Y輸出至解碼部109。
於哈塞微分多項式生成部106中,自所輸入之Ψ(x)求出哈塞微分多項式,算出該等根r及此根之多重度n,將其作為t=r-1
輸出至錯誤量算出部107。
於錯誤量算出部107中,自t=r-1
求出產生錯誤之碼字之位置座標,自n求出錯誤量et
(={u(t)<m>
}-1
n),從而求出錯誤量之李度量之總量Σ|et
|。並且,於Σ|et
|≦4之情形時,將處理轉移至可復原李度量碼之代碼C的代碼復原部108。於Σ|et
|≧5之情形時,存在誤校正之可能性,故作為無法校正者進行處理。該情形時,針對下一<m>重複自徵候群生成部104起之處理。又,於<m>=(15,15,15)之情形時,無法進行錯誤校正,故輸出NG信號後,將帶有錯誤之代碼Y輸出至解碼部109。
於代碼復原部108中,藉由ct
=yt
-et
對代碼C=(c1
,c2
,…,c3
)進行復原。將復原後之代碼C輸出至解碼部109。
於解碼部109中,對代碼C執行生成矩陣G之逆轉換,獲得17進數之代碼A。該代碼A輸出至25
進數轉換部110。
於25
進數轉換部110中,將代碼A轉換為25
進數,將其以二進制表現進行輸出。此為復原後之二進制資料D。
該25
進數轉換部110可藉由「p to X」電路區塊等使用圖21~圖32說明之電路而構成。
<李度量碼之生成、錯誤校正、李度量碼之復原>
其次,對使用圖33所說明之資料處理之次序進行詳細說明。
以下,關於「p-adic Zp world」之ECC之運算,匯總為:對作為Zp資料而輸入至記憶體系統之資料進行編碼之次序;及對自記憶體系統讀出之代碼進行解碼,獲得資料A為止之次序。
編碼之次序係如以下所示。
首先,將所輸入之資料D藉由「binary to p-adic」轉換部而轉換為數29所示之17進數表現之11位之資料字D(h)(圖34中S1)。
[數29]
D(h)=(a0
,a1
,Λ,a10
)
繼而,於該資料D上乘以生成矩陣G而獲得代碼C之16個碼字成分c1
~c16
(圖34中S2)。各碼字成分之值係如數30所示。
[數30]
最後,將該碼字成分cj
儲存於記憶體單元(圖34中S3)。各碼字成分係作為5位元之二進制表示而處理,與p-adic單元對應之閾值位準係維持Zp之數之表示而設定位準。
對自p-adic單元陣列讀出之代碼Y進行解碼之次序係如以下所示。
首先,讀出自p-adic單元陣列所讀出之代碼Y(圖35中S4)。代碼Y係數31所示之構成。此處,ej
表示位於代碼Y之位置j之碼字符號之錯誤之李度量。
[數31]
Y=(y1
,y2
,Λ,y16
)
Y=C+E,E=(e1
,e2
,Λ,e16
)
繼而,自代碼Y計算徵候群(圖35中S5)。設(j)<m>
=(p-j-1
)m3
(p-j)m2
jm1
、<m>=(m1,m2,m3),自<m>
Y={(1)<m>
y1
,(2)<m>
y2
,(3)<m>
y3
,…,(15)<m>
yn-1
,(16)<m>
yn
}、<m>
S=<m>
YHt
而求出徵候群<m>
S=(S<m>+0
,S<m>+1
,…,S<m>+4
)。
繼而,<m>=0時之S<0>+0
=S0
,故於|S0
|≦4之情形時,錯誤之李度量總量不會變成5以上,故而開始以下之次序2及次序3,於|S0
|>4之情形時,錯誤之李度量總量變成5以上而判斷無法進行校正,故設為無解而結束解之搜索(圖35中S6、S7)。
(次序1)依序改變<m>之成分,相對於此根據數32而求出徵候群<m>
S=(S<m>+0
,S<m>+1
,‧‧‧,S<m>+4
)(圖35中S8)。
[數32]
(次序2)可校正之碼字成分之數之上限為ε=4,相對於此,首先計算u=4(S<m>+0
)-1
,自次序1中求出之徵候群而求出徵候群u<m>
S=(uS<m>+0
,uS<m>+1
,…,uS<m>+4
)(圖35中S9)。並且,自該徵候群u<m>
S,使用數33而依序計算錯誤位置檢索多項式Ψ(x)之係數Ψj
(圖35中S10)。
[數33]
於Ψ(x)之次數為4之情形時,即Φ 4
≠0之情形時,為獲得解而進入次序3(圖35中S11)。另一方面,於Φ 4
=0之情形時推進<m>而重複(次序1)(圖35中S12)。此處,於Φ 4
=0之情形、且mζ
=15(ζ=1~3)之情形時,設為無解而放棄錯誤校正(圖35中S13)。
(次序3)若次序2中獲知能夠獲得解,則為求出此解而進入次序3以後之處理。
求出為獲得次序2所求出之多項式Ψ(x)之解之多重度而必要的哈塞微分多項式之係數(圖35中S15)。對於次序2中獲得之係數Φ j
,如數34般藉由乘以一系列二項係數j
Ci
而獲得哈塞微分多項式之係數之向量Ψ[i]
=(i
Ci Φ i
,i+1
Ci Φ i+1
,…)。
[數34]
(次序4)對於次序3中獲得之哈塞微分多項式,代入Zp之要素1~16,求出0次微分多項式(=Ψ(x))為零之要素r。繼而,如數35所示,相對於各r而言n-1次微分多項式為零,求出n次微分多項式非零之次數n(圖35中S16)。
[數35]
所得之r係產生錯誤之代碼成分之位置編號t之逆元,對應其之n係自產生之錯誤量et
轉換之量。該過程係對所有要素r進行。
(次序5)次序5中,自解之多重度n藉由轉換而求出錯誤量(圖35中S17)。有錯誤之碼字成分之位置編號為t=r-1
,對n實施為獲取用以獲得解之多項式而進行之轉換之逆轉換。由於存在u(t)<m>
et
=n之關係,故若設et
=(u(t)<m>
)-1
n則可自n獲得原本之錯誤量et
。此處,確認錯誤之誤校正之可能性。於Σ|et
|≦4之情形時,自記憶體單元中讀出之代碼Y之符號值yt
中減去錯誤量et
,獲得經校正之代碼C之符號值ct
,並使處理轉向次序6(圖36中S18、S21)。另一方面,於Σ|et
|>4之情形時,由於存在誤校正之可能性,故變更下一mξ
而自次序1起重複處理(圖36中S19)。然而,於即便mξ
=15(ξ=1~3)亦不使處理轉向次序6之情形時,設為無解而放棄錯誤校正(圖36中S20)。
至此,獲得儲存於p-adic單元陣列中之正確的代碼C,故藉由次序6而求出輸入至p-adic記憶體系統之二進制資料。
(次序6)經由代碼C及代碼A與生成矩陣G之關係AG=C而成之多元聯立一次方程式,求出11個Zp之要素a0
~a10
及A(=a0
,a1
,…a10
)。藉此,獲得11個Zp之要素a0
~a10
。自所得之要素a0
~a10
作成11位之17進數之資料A(=a0
,a1
,…,a10
))(圖36中S22)。
以上,「p-adic Zp world」內之資料處理結束,故繼而於「p-adic Zp world」之出口進行將資料A返回至二進制資料之轉換。將資料A自11位之17進數表現轉換為10位之25進數表現,作為10位而對各位之數字進行二進制表示。此係輸入至p-adic記憶體系統之二進制資料D。
以上,完成資料之復原。
其次,對求出Zp之積之計算電路進行說明。以下將該計算電路稱為「X Zp」電路區塊。
圖37係表示「X Zp」電路區塊之電路記號,圖38中(a)係「XZp」電路區塊之方塊圖,圖38中(b)、及(c)係模式性表示「X Zp」電路區塊之運算處理的圖。
「XZp」電路區塊大體包含處理前半之計算步驟群之電路、及處理後半之計算步驟群的電路。
處理前半之計算步驟群之電路係由AND閘極G1、及4個「5 bit AD mod 17」電路區塊構成。
AND閘極G1取得所乘之數a之第i(i=0~4)位元、所乘之數b之第j(j=0~4)位元之邏輯積,將其作為Mij
輸出。
「5 bit AD mod 17」電路區塊係求出以Zp之2數之17為模數之和的電路。「5 bit AD mod 17」電路區塊輸入A0
~A4
、及B0
~B4
,且輸出Q0
~Q4
。詳細說明於下文敍述。
第1個「5 bit AD mod 17」電路區塊<1>於A0
~A3
、A4
、及B0
~B4
中分別輸入M10
~M40
、「0」、M01
~M41
,且自Q0
~Q4
輸出Q0 0
~Q0 4
。
第2個「5 bit AD mod 17」電路區塊<2>於A0
~A3
、A4
、及B0
~B4
分別輸入作為「5 bit AD mod 17」電路區塊<1>之輸出的Q0 1
~Q0 4
、「0」、及M02
~M42
,且於Q0
~Q4
輸出Q1 0
~Q1 4
。
如上所述,處理前半之計算步驟群之電路係將「5 bit AD mod 17」電路區塊<1>~「5 bit AD mod 17」電路區塊<4>之輸出與輸入依序連接而構成者。
處理後半之計算步驟群之電路係由4個「6 bit mod 17」電路區塊構成。該「6 bit mod 17」電路區塊係圖25、圖26所示之電路。
第1個「6 bit mod 17」電路區塊<1>於A0
、及A1
~A5
分別輸入Q2 0
、及Q3 0
~Q3 4
,且自Q0
~Q4
輸出Q4 0
~Q4 4
。
第2個「6 bit mod 17」電路區塊<2>於A0
、及A1
~A5
分別輸入Q1 0
、及Q4 0
~Q4 4
,且自Q0
~Q4
輸出Q5 0
~Q5 4
。
如上所述,處理後半之計算步驟群之電路係將「6 bit mod 17」電路區塊<1>~「6 bit mod 17」電路區塊<4>之輸出與輸入依序連接而構成者。
所有電路係與時脈非同步地動作,且藉由賦予輸入Mab
而確定輸出Q。
此處,對「X Zp」電路區塊之電路規模進行說明。
如本例般p=17、h=5之情形時,「X Zp」電路區塊可由4個「5 bit AD mod 17」電路區塊與4個「6 bit mod 17」電路區塊構成。
再者,「X Zp」電路區塊需要8個。
其次,對圖38所示之「5 bit AD mod 17」電路區塊進行詳細說明。
圖39係「5 bit AD mod 17」電路區塊之電路記號。
「5 bit AD mod 17」電路區塊求出自A及B輸入之數a及b之和,並自Q輸出所得之和之質數p的餘數。
於h=5、p=17之情形時,數a、b、餘數之二進制表示Q之間成立有數36所示之關係。
[數36]
a=A0
+A1
2+A2
22
+A3
23
+A4
24
b=B0
+B1
2+B2
22
+B3
23
+B4
24
p=17=24
+1,/p=25
-p=23
+22
+21
+1=15
a+b=Q(mod17)(a+b=Q+PF0×17)
Q=Q0
+Q1
2+Q2
22
+Q3
23
+Q4
24
圖40係「5 bit AD mod 17」電路區塊之電路圖。
「5 bit AD mod 17」電路區塊包含PF0生成部U1、3個半加算器HA1~HA3、及7個全加算器FA1~FA7。
PF0生成部U1包含供給有特定電壓之Vcc端子、與Vss端子之間串列連接之PMOS電晶體QP1~QP4、NMOS電晶體QN1、及QN2。該等電晶體QP1、QP2、QP3、QP4、QN1、及QN2分別係由S0、S1、S2、S3、S0、及S4控制。
又,PF0生成部U1此外還包含PMOS電晶體QP5、3個NMOS電晶體QN3~QN5、及反相器IV1。
電晶體QP5係並列連接於電晶體QP1之源極及電晶體QP4之汲極間。電晶體QN3~QN5分別並列連接於電晶體QN1之源極及汲極間。該等電晶體QP5、PN3、QN4、及QN5分別係由S4、S1、S2、及S3控制。又,反相器IV1之輸入係連接於電晶體QN1、QN3~QN5之源極。該反相器IV1之輸出變成進位PF0。
半加算器HA1之輸入為A0
及B0
、輸出為S0、進位輸出為C0'。全加算器FA1之輸入為A1
及B1
、進位輸入為C0'、輸出為S1、進位輸出為C1'。全加算器FA2之輸入為A2
及B2
、進位輸入為C1'、輸出為S2、進位輸出為C2'。全加算器FA3之輸入為A3
及B3
、進位輸入為C2'、輸出為S3、進位輸出為C3'。全加算器FA4之輸入為A4
及B4
、進位輸入為C3'、輸出為S4、進位輸出為C4'。半加算器HA2之輸入為S0及PF0、輸出為Q0
、進位輸出為C0。全加算器FA5之輸入為S1及PF0、進位輸入為C0、輸出為Q1
、進位輸出為C1。全加算器FA6之輸入為S2及PF0、進位輸入為C1、輸出為Q2
、進位輸出為C2。全加算器FA7之輸入為S3及PF0、進位輸入為C2、輸出為Q3
、進位輸出為C3。半加算器HA3之輸入為C3及S4、輸出為Q4
。
藉由以上之構成,PF0生成部U1判斷輸入至「5 bit mod 17」電路區塊之二進制A及B之和是否為17以上,於A及B之和為17以上之情形時,為自A及B之和中減去17,而藉由半加算器HA1~HA3、及全加算器FA1~FA7,將作為5位元二進制之17之補數的15添加至A及B之和。
此處,對「p-adic Zp world」之各區塊之電路構成列舉具體例而進行說明。
以下,對編碼部102之電路構成例進行說明。
圖41中(A)係將Zp之碼字A轉換為李度量碼C之電路之方塊圖,圖41中(B)係表示控制圖41中(A)所示之電路之雙重時脈ck及cl的圖。
如圖41中(B)所示,時脈cl係遲於ck之上升而上升之脈衝,對應於時脈ck,cl0
~cl10
之合計11個時脈cl依序上升。並且,若cl10
上升,時脈ck延遲後隨之上升。同樣之波形係自ck0
重複至ck17
為止。
該等時脈ck、cl中,ck控制「Counter(1 to 16)」電路區塊及「Ri(1~16)」暫存部,cl控制「Ro(0~16)」暫存部、及「Rgstr」暫存器。
「Counter(1 to 16)」電路區塊係初始狀態為0,隨著時脈ck上升而計數時脈數並輸出之電路。即,ckj
(j=1~16)中,ckj
上升時將j輸出至「X k-times」電路區塊。
「Ri(1~16)」暫存部係儲存碼字C之成分cj
之暫存器,其可儲存合計16個數。該「Ri(1~16)」暫存部對照ck之上升時序而依序於各暫存器中儲存數。即,於ckj+1
上升之時序將作為要素cj
之資料取入暫存器。藉由ck17
之上升,而於暫存器中取入16個要素cj
。即,可儲存碼字C。
「X k-times」電路區塊係每當時脈cl上升時於輸出上乘以輸入之電路。於「X k-times」電路區塊中,每當合計11次之cl之上升時,於輸出上乘以所輸入之j。即,藉由cli
(i=0~10)之上升,「X k-times」電路區塊之輸出變成(j)i+1
。將該輸出向「X Zp」電路區塊輸出。
「Ro(0~10)」暫存部係能夠儲存11個數之暫存器,於初始狀態下,儲存代碼A之11個成分a0
~a10
。「Ro(0~10)」暫存部中輸入有時脈cl,每當該時脈cl上升時依序輸出代碼A之成分a0
~a10
。即,接收cli
(i=0~10)而輸出ai
。
「XZp」電路區塊係以Zp進行輸入之乘法之電路。「X Zp」電路區塊中對應時脈cli
而輸入有「X k-times」電路區塊之輸出(j)i+1
及「Ro(0~10)」暫存部之輸出ai
,且輸出(j)i+1
ai
。將該輸出之數(j)i+1
ai
不斷相加者,係「5 bit AD mod 17」電路區塊及「Rgstr」暫存器之組合。
「5 bit AD mod 17」電路區塊係以17為模數求出2個輸入之數之和的電路。另一方面,「Rgstr」暫存器係初始狀態為「0」,每次輸入時脈cl時,阻斷自「5 bit AD mod 17」電路區塊之輸入,將自身保持之內容輸出至「5 bit AD mod 17」電路區塊的暫存器。藉由如圖41所示之「5 bit AD mod 17」電路區塊及「Rgstr」暫存器之連接,每次輸入時脈cl時,於前次輸出之數上加上新的「X Zp」電路區塊輸出之數。即,若時脈cl0
~cl10
上升,則以時脈ckj
之循環輸出將代碼A轉換為李度量碼後之C之成分cj
。該成分作為下一ckj+1
之循環之開頭而保持於「Ri(1~16)」暫存部。藉此,可獲得自代碼A轉換之代碼C。
對圖41所示之「X k-times」電路區塊進行說明。
圖42係表示「X k-times」電路區塊之電路記號的圖,圖43係「X k-times」電路區塊之方塊圖。
「X k-times」電路區塊如圖42所示係算出輸入X之冪(X)j
並予以輸出之電路,其係由時脈clj
(j=1~16)控制。
「X k-times」電路如圖43所示包含「X Zp」電路區塊、及與時脈cl同步動作之「Rgstr」暫存器<1>及「Rgstr」暫存器<2>。
「Rgstr」暫存器<1>之輸入係連接於X,輸出係連接於「X Zp」電路區塊之一方之輸出。「Rgstr」暫存器<2>之輸入上連接有「X k-tims」電路區塊之輸出,且輸出上連接有「k-times」電路區塊之一方之輸入。「Rgstr」暫存器<2>之初始狀態係保持「1」。
藉由該電路構成,「X k-times」電路區塊延遲1個循環而取得自身之輸出,藉此獲得輸入X與輸出(X)j
之積。
每當置入時脈cl時於輸出(X)j
上累積乘以輸入X。於時脈clj
(j=1~k)之上升前向「Rgstr」暫存器<1>中設定資料X,與初始設定為「1」之「Rgstr」暫存器<2>同步,藉此於第j發之clj
獲得(X)j
。
以下,對徵候群生成部104之電路構成例進行說明。
首先,對求出徵候群<m>
S之成分要素之電路進行說明。
將<m>=(m1,m2,m3)相對於各成分而自0掃描至15。若賦予各<m>,則相對於此而計算徵候群之成分。該徵候群之成分之運算處理所需之式係如數37所示。
[數37]
首先,預先求出所有與計算所需之Zp之要素之<m>對應的冪。將該冪用於計算徵候群之和時的計算方法首先係求出Zp之各要素之冪,選擇Zp之要素j時對17-j或17-j-1
進行解碼而選擇對應的要素之冪,藉此計算積之和。
因此,對求出Zp之要素之冪之計算電路進行說明。
圖44中(A)係求出Zp之要素j之冪jm
之計算電路之方塊圖,圖44中(B)係控制該電路之時脈ck、cl、及時序信號B0
~B15
之時序圖。
該計算電路包含選擇電路U1、「(j)i
(j=1 to 16)」電路區塊、「R1
(0~15)」暫存部、「R2
(0~15)」暫存部(未圖示)、及「R3
(0~15)」暫存部。
選擇電路U1包含16個AND閘極G1~G16。AND閘極G1輸入B0
及/B1
,輸出信號「m=0」。AND閘極G2輸入B1
及/B2
,輸出信號「m=1」。之後,藉由同樣之輸入輸出,AND閘極G3~B16分別輸出信號「m=2」~「m=15」。該等信號「m=0」~「m=15」分別係經由控制開關SW1~SW16而變成選擇電路U1之輸出rξ
(ξ=1、2、3)。信號「m=0」~「m=15」係藉由控制開關SW1~SW16而分別對應<m>之成分mξ
之值進行解碼。
如圖44中(B)所示,繼時脈ck之後使時脈c1產生16循環,將此重複15次,藉此於時脈cki
及clj
之循環時自「(j)i
(j=1 to 16)」電路區塊輸出(j)i
。
將該輸出(j)i
於適當之循環中作為資料而鎖存於「R1
(0~15)」暫存部、「R2
(0~15)」暫存部、及「R3
(0~15)」暫存部,藉此獲得Zp之要素之3個冪。
為決定「R1
(0~15)」暫存部、「R2
(0~15)」暫存部、及「R3
(0~15)」暫存部中取入資料之時序,作成與時脈ck同步依序上升之圖44中(B)所示之信號B0
~B16
而予以利用。自該等信號B0
~B16
,作成僅於ck之上升至下一ck之上升為止期間活化的信號m=0、m=1、…、m=15。
選擇電路U1對應<m>之成分mζ
之值將該等信號m=0、m=1、….m=15解碼並選擇,僅於i=mζ
之cki
次作為有效信號rξ
輸出。
「R1
(0~15)」暫存部、「R2
(0~15)」暫存部、及「R3
(0~15)」暫存部分別根據取得該信號rξ
與時脈clj
之邏輯和之信號j而決定資料取得次數。並且,與時脈cl同步地鎖存資料。其結果為,於時脈循環之結束時,「R1
(0~15)」暫存部、「R2
(0~15)」暫存部、及「R3
(0~15)」暫存部中儲存有Zp之要素之mζ
(ζ=1,2,3)乘方。
之後生成與Zp之要素之<m>對應之冪。
繼而,對針對Zp之各要素j而計算以徵候群轉換法經轉換之錯誤之成分ε<m>+I j
(1=1、2、3、4;j=1~16)的計算電路進行說明。錯誤成分係作為ε<m>+1 j
=(17-j-1
)m3
(17-j)m2
(j)m1+1
yj
而定義。
圖45係計算ε<m>+I j
之計算電路之方塊圖。以下,將該計算電路稱為「錯誤成分生成電路」。
錯誤成分生成電路包含解碼部U1、及積運算部U2。
解碼部U1包含「Couter(1 to 16)」電路區塊、「17-j dec」電路區塊、「17-j-1
」電路區塊、「j2
dec」電路區塊、「j3
dec」電路區塊、及「j4
dec」電路區塊、以及儲存圖44所示之Zp之要素之mξ
(ξ=1、2、3)乘方的「R1
(0~15)」暫存部、「R2
(0~15)」暫存部及「R3
(0~15)」暫存部。
解碼部U1中,「Counter(1 to 16)」電路區塊於時脈clj
(j=1~16)之時序,依序輸出產生j。自該「Counter(1 to 16)」電路區塊所輸出之j分別輸入至「17-j dec」電路區塊、「17-j-1
」電路區塊、「j2
dec」電路區塊、「j3
dec」電路區塊、及「j4
dec」電路區塊。
「17-j dec」電路區塊自輸入之j而將17-j解碼並予以輸出。「17-j-1
dec」電路區塊自輸入之j而將17-j-1
解碼並予以輸出。「j2
dec」電路區塊自輸入之j將j2
解碼而予以輸出。「j3
dec」電路區塊自輸入之j將j3
解碼而予以輸出。「j4
dec」電路區塊自輸入之j將j4
解碼而予以輸出。
「R1
(0~15)」暫存部基於所輸入之j而輸出(j)m1
。「R2
(0~15)」暫存部基於自「17-j dec」電路區塊所輸出之17-j而輸出(17-j)m2
。「R3
(0~15)」暫存部基於自「17-j-1
dec」電路區塊所輸出的17-j-1
而輸出(17-j-1
)m3
。
藉由以上,解碼部U1獲得輸出(j)m1
、(17-j)m2
、(17-j-1
)m3
。
積運算部U2包含「Ro(1~16)」暫存部、及7個「X Zp」電路區塊<1>~<7>。
「Ro(1~16)」暫存部係由16個鎖存構成。該等16個鎖存中分別保持有作為自p-adic單元讀出之代碼Y之16個成分的Zp之要素y1
~y16
。「Ro(1~16)」暫存部與時脈clj
(j=1~16)同步而輸出保持於鎖存之yj
。
「X Zp」電路區塊<1>算出自「Ro(1~16)」暫存部輸出之yj
與自「R1
(0~15)」暫存部輸出之(j)m1
的Zp之積而予以輸出。
「X Zp」電路區塊<2>算出自「R2
(0~15)」暫存部輸出之(17-j)m2
與自「R3
(0~15)」暫存部輸出之(17-j-1
)m3
的Zp之積而予以輸出。
「X Zp」電路區塊<3>算出「X Zp」電路區塊<1>之輸出與「X Zp」電路區塊<2>之輸出之Zp之積ε<m>+0 j
而予以輸出。
「X Zp」電路區塊<4>算出自「X Zp」電路區塊<3>輸出之ε<m>+0 j
與j之積ε<m>+1 j
而予以輸出。
「X Zp」電路區塊<5>算出自「X Zp」電路區塊<3>輸出之ε<m>+0 j
與自「j2
dec」電路區塊輸出之j2
的積ε<m>+3 j
而予以輸出。
「XZp」電路區塊<6>算出自「XZp」電路區塊<3>輸出之ε<m>+0 j
與自「j3
dec」電路區塊輸出之j3
的積ε<m>+3 j
而予以輸出。
「XZp」電路區塊<7>算出自「XZp」電路區塊<3>輸出之ε<m>+0 j
與自「j4
dec」電路區塊輸出之j4
的積ε<m>+4 j
而予以輸出。
藉由以上構成之積運算部U2,與時脈clj
同步而將選擇並讀出之資料Y作為與Zp之要素j對應的ε<m>+0 j
、ε<m>+1 j
、ε<m>+2 j
、ε<m>+3 j
、ε<m>+4 j
獲得。
繼而,對求出ε<m>+1 j
(1=1,2,3,4)之各j=1~16個和之計算電路進行說明。藉由求出ε<m>+1 j
(1=1,2,3,4)之各j=1~16個和,而可獲得徵候群S<m>+1
。以下,將該計算電路稱為「徵候群生成電路」。
圖46係徵候群生成電路之方塊圖。
徵候群生成電路包含「Rgstr」暫存器、及「5 bit AD mod 17」電路區塊。
徵候群生成電路與時脈clj
(j=1~16)同步,而藉由「5 bit AD mod 17」電路區塊及「Rgstr」暫存器之迴路將ε<m>+1 j
相加,作成徵候群成分S<m>+1
(1=0~4)。
其次,對計算圖44所示之求出jm
之電路所使用的Zp之要素j之i乘方的電路區塊進行說明。以下,將該電路區塊稱為「(j)i
(j=1 to 16)」電路區塊。
圖47係表示「(j)i
(j=1 to 16)」電路區塊之電路記號之圖。
「(j)i
(j=1 to 16)」電路區塊係由時脈cki
(i=0~15)與clj
(j=1~16)控制,且與時脈clj
之上升同步而輸出(j)i
與(j)i+1
。
圖48係「(j)i
(j=1 to p-1)」電路區塊之方塊圖。
「(j)i
(j=1 to 16)」電路區塊係相對於Zp之零以外之所有要素1~16,依序算出0~15乘方,並保持於暫存器之電路。
「(j)i
(j=1 to 16)」電路區塊如圖48所示包含「X Zp」電路區塊、「Counter(1 to 16)」電路區塊、及「R(1~16)」暫存部。
決定指數之時脈為cki
,根據第幾次之時脈cki
而決定指數i。另一方面,自1起依序指定Zp之要素者係時脈cl,且時脈clj
之次數j變成要素數。
「Counter(1 to 16)」電路區塊係連接於「X Zp」電路區塊之一方之輸入。將cki
作為啟動信號,於clj
之上升時序在1~16個範圍內進行遞增計數。
「R(1~16)」暫存部包含16個暫存器,於in之時脈/clj
之上升時將輸入i1
~i16
依序儲存至第1~16個暫存器,於out之時脈clj
之上升時依序輸出第1~16個暫存器之內容i1
~i16
。
如圖48所示,使「Counter(1 to 16)」電路區塊及「R(1~16)」暫存部之輸入時脈ck及cl同步,藉由「X Zp」電路區塊將「R(1~16)」暫存部之輸出與「Counter(1 to 16)」電路區塊之輸出相乘,則時脈cki
上升後,每當clj
上升時自「R(1~16)」暫存部輸出(j)i
。又,自「X Zp」電路區塊輸出(j)i+1
。該(j)i+1
可視需要用於各計算電路。
以下,作為錯誤位置檢索多項式生成部105之電路構成例,對求出錯誤位置檢索多項式Ψ(x)之運算電路進行說明。將該運算電路稱為「錯誤位置檢索多項式生成電路」。
數38表示求出錯誤位置檢索多項式Ψ(x)之x之各次數j之係數Ψj
的運算處理所需之處理式。
[數38]
圖49係錯誤位置檢索多項式生成電路之方塊圖。
錯誤位置檢索多項式生成電路係於使用徵候群u<m>
S=(uS<m>+0
,uS<m>+1
,uS<m>+2
,uS<m>+3
,uS<m>+4
)搜索錯誤之步驟中所使用的電路。
根據錯誤位置檢索多項式生成電路,無須使用複雜之歐幾裏得疊代法,藉由單純之巡迴電路便可生成錯誤位置檢索多項式Ψ(x)。
錯誤位置檢索多項式生成電路包含求出數38所示之第2式右邊中之ΣΦ j-1
S<m>+i
的第1部分電路U1、及求出同樣為數38所示之第2式右邊中之u(j)-1
的第2部分電路U2。
第1部分電路U1包含4個串列連接之「Rgstr」暫存器<1>~<4>、及連接於各「Rgstr」暫存器之輸出的4個「X Zp」電路區塊<1>~<4>。
「Rgstr」暫存器<1>之初始值為「1」,其他「Rgstr」暫存器<2>~<4>之初始值為「0」。
第1部分電路U1係由輸入至各「Rgstr」暫存器之時脈ck控制,第j次之時脈ckj
之上升時,自「Rgstr」暫存器之連接點輸出各次數之係數Φ j-1
、Φ j-2
、Φ j-3
、Φ j-4
。係數不存在之連接點變成「0」,故對於「XZp」電路區塊<1>~<4>之徵候群成分S<m>+1
~S<m>+4
之積運算並無幫助。「5 bit AD mod 17」電路區塊將「X Zp」電路區塊<1>~<4>之輸出每兩個地進行和運算,藉由該等「5 bit AD mod 17」電路區塊之符梯(ladder)而最終獲得ΣΦ j-i
S<m>+i
。
第2部分電路U2包含「Counter(1 to 4)」電路區塊、「X Zp」電路區塊<a>、<b>、及「j-1
dec」電路區塊。
第2部分電路U2根據時脈ckj
而自「Counter(1 to 4)」電路區塊所生成之j與徵候群成分S<m>+0
,藉由「XZp」電路區塊<a>及「j-1
dec」電路區塊生成(jS<m>+0
)-1
。並且,自該生成之(jS<m>+0
)-1
與所設定之ε=4,藉由「X Zp」電路區塊<b>而獲得u(j)-1
。
並且,藉由「X Zp」電路區塊<c>,進行第1部分電路U1所生成之ΣΦ j-i
S<m>+i
與第2部分電路U2所生成之u(j)-1
之相乘,獲得係數Φ j
。
係數Φ j
係h位元之二進制,為顯示負數而變成補數表現。因此,藉由反相器IV1使「X Zp」電路區塊<c>之輸出反轉後,藉由「5 bit AD mod 17」電路區塊而將「1」相加。藉此,可獲得5位元之二進制之補數表現。
再者,圖49所示之「j-1
dec」電路區塊係求出Zp之要素j之逆元j-1
之電路。關於「j-1
dec」電路區塊之詳細說明於下文敍述。
根據以上所說明之錯誤位置檢索多項式生成電路,若將時脈ck置入4次則於各節點獲得j=4之係數Φ 4
~Φ 0
。
以下,對哈塞微分多項式生成部106之電路構成例進行說明。
於Ψ(x)之次數與4一致之情形時,需要求出該Ψ(x)之根及其多重度。因此,其次對計算求出根之多重度時所需之哈塞微分多項式之係數的運算電路進行說明。以下,將該運算電路稱為「哈塞微分多項式係數生成電路」。
哈塞微分多項式之係數以及其係數與Ψ(x)之係數之關係係如數39般。
[數39]
即,根據數39可知般,哈塞微分多項式係數生成電路進行Ψ(x)之係數與二項係數之乘法,使用時脈ck及cl生成各微分之階數(order)之各次數之係數,並將所有係數儲存於暫存器。
圖50中(A)係哈塞微分多項式係數生成電路之方塊圖,圖50中(B)係控制哈塞微分多項式係數生成電路之時脈ck及cl之時序圖。
哈塞微分多項式係數生成電路包含記錄有Zp之各要素i之階乘i!之「i!」表格、記錄有其逆元之「(i!)-1
」表格、及記錄有錯誤位置檢索多項式Ψ(x)之係數Φ i
的「Φ i
」表格。關於「i!」表格及「(i!)-1
」表格,如本例般於p=17之情形時,可於實用上控制為充分小之規模。
又,關於「Φ i
」表格,係由圖49所示之錯誤位置檢索多項式生成電路生成,故進行使用。
如圖50所示,哈塞微分多項式係數生成電路包含「i!」表格、「(i!)-1
」表格、及「Φ i
」表格、「X Zp」電路區塊、以及切換該等連接之控制開關SW。非選擇之節點以「X Zp」電路區塊之積運算之結果為「0」之方式,將控制開關SW之輸出側之節點以初始狀態放電為「0」。
時脈ck之時脈數係對應於微分之階數,cki
之i係取1~4之值。另一方面,時脈cl相當於次數,若微分之階數上升則不要之次數增加。因此,對於時脈ck而言無須每次產生相同數,圖50之電路中係每次產生相同之4次。因此,儲存時序為42
個,儲存係數之「Ri(0~4)/j(0~3)」暫存部無需對應所有時脈之暫存器,只要大致一半暫存器便可。
再者,ck0
係為了於暫存器中預先儲存Ψ(x)之係數、即相當於Ψ[0]
之係數而適當設置者。
圖51係亦可利用於哈塞微分多項式係數生成電路之p=17時之對於Zp之各要素而言固定的運算(逆元、階乘、冪等)之表。
藉由使用該等數字之5位元之二進制表示而可作成解碼器。再者,當j於Zp之所有要素1~16中變化時,作為能夠不會過與不足地掃描Zp之所有要素之函數之一例係如表所示,但大多情形時係去除偶數乘方或階乘。例如,若ai
為a滿足條件,則可根據j之變化而掃描Zp之零以外之所有要素。例如,於a=3、5、6、7、10之情形時,係如圖51所示。
利用該等函數可擴大徵候群轉換法之假想錯誤之搜索範圍。
其次,作為構成解碼器之電路之例而對求出Zp之要素j之逆元j-1
的解碼器進行說明。以下,將該解碼器稱為「j-1
dec」電路區塊。
為自要素j求出逆元j-1
,而求出j×j-1
≡1(mod 17)之關係,將j及j-1
如數40所示般構成5位元之二進制表示,以此方式作成其轉換解碼器便可。
[數40]
Input:Ii
=(j)i
j=(j)0
+(j)1
2+(j)2
22
+(j)3
23
+(j)4
24
Output:oi
=(j-1
)i
jj-1
≡1(mod p)
j-1
=(j-1
)0
+(j-1
)1
2+(j-1
)2
22
+(j-1
)3
23
+(j-1
)4
24
圖52係「j-1
dec」電路區塊之方塊圖。
「j-1
dec」電路區塊可藉由將5位元之二進制資料I解碼為5位元之其他二進制資料O的一般電路構成。該情形時,如數40所示,設I=j、O=j-1
便可。
「j-1
dec」電路區塊藉由NAND閘極G1及G2,每2個位元地將位元I0
~I3
部分解碼而生成信號/A0
~/A3
、/B0
~/B3
,進而,藉由3輸入之NOR閘極G3而自/Am
、/Bm
、I4
(或/I4
)生成Om
(m=0~4)。再者,於j=0之情形時,設j-1
=0。
其次,對計算錯誤位置檢索多項式Ψ(x)之根及其多重度之運算電路進行說明。以下,將該運算電路稱為「錯誤位置檢索多項式根/多重度運算電路」。
錯誤位置檢索多項式根/多重度運算電路將哈塞微分多項式之0階微分視為Ψ(x),相對於Zp之各要素,若哈塞微分多項式非零則將計算轉向下一要素,而於哈塞微分多項式為零之期間則提昇微分之階數。相對於各Zp之要素,若暫存器中殘留有哈塞微分多項式非零之最初之哈塞微分之階數,則階數非零之要素為根,所殘留之階數變成此根之多重度。即,自暫存器中選擇內容非「0」者,其保持之值變成上述根之多重度。
具體而言,若將錯誤位置檢索多項式Ψ(x)之根設為α,將Ψ(x)之i階之哈塞微分多項式設為[Ψ(x)][i]
,則α之多重度設為n時之關係式係如數41般。
[數41]
錯誤位置檢索多項式根/多重度運算電路求出具備該數41之n,無論其相對於Zp之各要素α而言是否為Ψ(x)之根。於n=0之情形時,表示α並非根。
圖53中(A)係錯誤位置檢索多項式根/多重度運算電路之方塊圖,圖53中(B)係控制錯誤位置檢索多項式根/多重度運算電路的時脈ck、cl、及clk之時序圖。
錯誤位置檢索多項式根/多重度運算電路以時脈ck對Zp之要素1~16進行掃描,以時脈cl求出哈塞微分之階數,以時脈clk求出其階數之哈塞微分多項式之值。時脈ck係於計算之哈塞微分多項式之值非零時產生,且置入下一Zp之要素之循環中。
錯誤位置檢索多項式根/多重度運算電路如圖53中(A)所示包含「(j)i
(j=1 to 16)」電路區塊、「Ro i(0~4)/j(0~4)」暫存部、「X Zp」電路區塊、「Rgstr」暫存器<1>、「5 bit AD mod 17」電路區塊、「Rgstr」暫存器<2>、「clock cl gen.」電路區塊、「Counter(0 to 4)」電路區塊、及「Li(1~16)」暫存部。
「(j)i
(j=1 to 16)」電路區塊將時脈ck接收α次而選擇要素α,將時脈clk接收j-1次而輸出α之j乘方。
「Ro i(0~4)/j(0~4)」暫存部係接收時脈cli
及clkj
而輸出哈塞微分多項式之係數Φ [i] j
之暫存器。
「X Zp」電路區塊對自「(j)i
(j=1 to 16)」電路區塊之輸出αj
、與自「Ro i(0~4)/j(0~4)」暫存部之輸出Ψ[i] j
進行積運算,而輸出αj Φ [i] j
。
以上,藉由對「(j)i
(j=1 to 16)」電路區塊、「Ro i(0~4)/j(0~4)」暫存部、及「X Zp」電路區塊賦予5次時脈clk而可獲得哈塞微分多項式之值。再者,為簡單進行時脈ck、cl、及clk之控制,亦計算該計算中不存在之0之值之項的和。因此,原本所需之時脈clk之總數為一半左右。
微分多項式之值[Ψ(α)][i]
於零之情形時作為「0」、於其他情形時作為「1」而取入至「Rgstr」暫存器<1>。
「Rgstr」暫存器<1>所保持之值於時脈clk0
之時序作為時脈ckα
(α=1~16)而輸出。該時脈ckα
保持至以時脈clk4
重置為止。
「Rgstr」暫存器<1>之初始值為「1」,故時脈ck1
上升為最初之clk0
。時脈ck2
之後,依照計算結果而以clk之任一循環之clk0
上升。
「clock cl gen.」電路區塊與時脈clk0
同步而產生時脈cli
,每當時脈ckα
上升時重置為時脈cl0
。
「Counter(0 to 4)」電路區塊於時脈ckα
重置為0,每當置入時脈cl時進行遞增計數,並輸出時脈cl之次數-1。該輸出係儲存於「Li(1~16)」暫存部。
「Li(1~16)」暫存部根據時脈ckα
而切換輸入,故第α個暫存器中儲存有上述多重度。
以下,對錯誤量算出部107之電路構成例進行說明。
對自哈塞微分多項式之根及多重度α、[n]之對求出真之錯誤而進行代碼校正的轉換電路進行說明。此處,將該轉換電路稱為「代碼校正電路」。
藉由徵候群轉換法求出之解、假想錯誤n、錯誤產生之位置t、及真之錯誤et
之關係係如數42般。
[數42]
轉換中係利用數(j)<m>
=(17-j-1
)m3
(17-j)m2
(j)m1
,該數與數43所示之徵候群成分之關係式S<m>+1
相比,係等於使用Y=(0,0,…,yj
=1,…,0,0)作為1=0之徵候群成分之S<m>+0
。加以利用而將代入有Y之t成分為1且其他為0者之徵候群成分表示為T<m>+0
,電路輸入係使用圖54之方塊圖所示的電路。
[數43]
代碼校正電路包含求出錯誤產生之位置t之第1部分電路U1、求出真之錯誤et
之第2部分電路U2、及利用真之錯誤et
進行代碼校正的第3部分電路U3。
第1部分電路U1包含「j-1
dec」電路區塊<1>。
「j-1
dec」電路區塊<1>輸入根α,輸出錯誤產生之位置t。
第2部分電路U2包含3個「X Zp」電路區塊<1>~<3>、及「j-1
dec」電路區塊<2>。
「X Zp」電路區塊<1>輸入徵候群成分S<m>+0
及4-1
(=13),輸出轉換後之數u之逆元之u-1
。
「j-1
dec」電路區塊<2>輸入T<m>+0
,輸出作為(t)<m>
之逆元之{(t)<m>
}-1
。
「X Zp」電路區塊<2>輸入多重度n及作為「X Zp」電路區塊<1>之輸出的u-1
,輸出該等積nu-1
。
「XZp」電路區塊<3>輸入「X Zp」電路區塊<2>所輸出之nu-1
及「j-1
dec」電路區塊<2>所輸出的{(t)<m>
}-1
,輸出真之錯誤et
。
第3部分電路U3包含2個「5 bit AD mod 17」電路區塊<1>、及<2>。
「5 bit AD mod 17」電路區塊<1>輸入/et
及「1」,輸出作為et
之補數之-et
。
「5 bit AD mod 17」電路區塊<2>輸入自p-adic單元讀出之代碼yt
及「5 bit AD mod 17」電路區塊<1>所輸出的-et
,輸出經錯誤校正之正確的代碼ct
。
藉由以上構成之代碼校正電路,而可復原正確的代碼ct
。
其次,對計算錯碼字E之李度量w(E)=Σ|ej
|(j=1~16)之運算電路進行說明。以下,將該運算電路稱為「李度量運算電路」。
圖55係李度量運算電路之方塊圖。
李度量運算電路包含「Ro(0~16)」暫存部、「5 bit LM 17」電路區塊、「5 bit AD mod 17」電路區塊、及「Rgstr」暫存器。
自多項式Ψ(x)所得之錯碼字E係作為初始值而儲存於「Ro(0~16)」暫存部。自「Ro(0~16)」暫存部根據時脈ckj
而依序取出E之成分ej
。
「5 bit LM 17」電路區塊自該取出之成分ej
而計算其李度量|ej
|。「5 bit LM 17」電路區塊對應時脈ckj
而將計算出之成分之李度量|ej
|輸出至「5 bit AD mod 17」電路區塊。
利用由「Rgstr」暫存器與「5 bit AD mod 17」電路區塊構成之迴路而將該|ej
|相加。並且,第16次之時脈ck上升之時間點的「5 bit AD mod 17」電路區塊之輸出變成w(E)=Σ|ej
|。
於w(E)≦4之情形時,一系列之錯誤搜索結束,可根據E而進行校正。
對於由運算處理求出之錯誤E,確認其李度量為ε以下,獲知其並非誤校正後進行校正。
因此,其次對計算Zp之要素之李度量之運算電路元件進行說明。以下,將該運算電路元件稱為「5 bit LM 17」電路區塊。
對於5位元之二進制表示之Zp之要素a,其李度量Q=|a|可表現為Q=/PF0×a+PF0×(17-a)。此處PF0於a≧9之情形時為「1」,於a<9之情形時為「0」。因此,為求出a之李度量,於a≧9之情形時自17中減去a、即對17添加a之補數便可。
h=5、p=17之情形時之A與Q之關係係如數44般。
[數44]
a=A0
+A1
2+A2
22
+A3
23
+A4
24
Q=|a|(Q=/PF0×a+PF0×(17-a))
Q=Q0
+Q1
2+Q2
22
+Q3
23
+Q4
24
圖56係「5 bit LM 17」電路區塊之電路記號,圖57係「5 bit LM 17」電路區塊之方塊圖。
「5 bit LM 17」電路區塊輸入5位元之二進制A0
~A4
,輸出5位元之二進制Q0
~Q4
。
「5 bit LM 17」電路區塊包含PF0生成部U1、XOR閘G1、3個半加算器HA1~HA3、及2個全加算器FA1、FA2。
PF0生成部U1包含於Vcc端子及Vss端子間串列連接之PMOS電晶體QP1~QP4、NMOS電晶體QN1、及QN2。該等電晶體QP1、QP2、QP3、QP4、QN1、及QN2分別係由輸入A4
、A2
、A1
、A0
、A0
、及A3
控制。
又,PF0輸出部U1此外還包含PMOS電晶體QP5、3個NMOS電晶體QN3~QN5、及反相器IV1。
電晶體QP5係連接於電晶體QP2之源極及電晶體QP4之汲極間。電晶體QN3及QN4係連接於電晶體QN1之源極及汲極間。又,電晶體QN5係連接於電晶體QN1之源極及電晶體QN2之汲極(Vss端子)間。該等電晶體QP5、QN3、QN4、及QN5分別係由輸入A3
、A1
、A2
、及A4
控制。反相器IV1之輸入係連接於電晶體QN1、QN3、QN4、及QN5之源極。該反相器IV1之輸出為進位PF0。
XOR閘G1輸入Aj
(j=0~4)及PF0,輸出Bj
。
全加算器FA1之輸入為B0
及PF0、進位輸入為PF0、輸出為Q0
、進位輸出為C0。半加算器HA1之輸入為C0及B1
、輸出為Q1
、進位輸出為C1。半加算器HA2之輸入為C1及B2
、輸出為Q2
、進位輸出為C2。半加算器HA3之輸入為C2及B3
、輸出為Q3
、進位輸出為C3。全加算器FA2之輸入為B4
及PF0、進位輸入為C3、輸出為Q4
。
該具體例中若輸入為9以上則向17添加a之補數。a之補數於PF0=1之情形時係藉由XOR閘G1將a之各位元表示Aj
反轉而設為Bj
,並於其實加1而生成。
p=17係17=(10001)2
,故以PF0進行表示,進而,使PF0為1,將該等與Bj
相加作為二進制之和。
「5 bit LM 17」電路係與時脈非同步地動作,若置入輸入則輸出所計算之李度量。
以下,對解碼部109之電路構成例進行說明。
結束錯誤搜索,根據錯誤代碼E獲得經校正之李度量碼C後,需要將其返回至Zp之資料代碼A。該運算相當於將G作為生成矩陣而進行C=AG之逆運算,矩陣之逆之獲取係規模較大之運算。因此,自C之要素逐一地求出A之要素。計算之過程係如數45所示。
[數45]
如數45所示,計算原理係將cj
=Σ(j)i+1
ai
之關係依序變形,自a0
變形為a1
、繼而自a1
變形為a2
、‧‧‧,逐一地求出am
。
兩邊乘以j之冪之逆元而將j之Zp之所有元的項匯總。此時利用Zp之所有元之和為零而進行變形。
數46係C之成分與A之成分之關係式。
[數46]
其次,使用數46所示之關係式對實現具體的運算電路者進行說明。
再者,獲得am-1
後求出am
時,係一面求出c(m-1) j
一面依序計算am
之j的和,藉此進行時脈之並列利用。
首先,基於數46所示之c(m-1) j
=c(m-2) j
-(j)m
am-1
對每次進行李度量碼C之成分之轉換的電路進行說明。以下,將該電路稱為「c(m-1) j
」電路區塊。
圖58係表示「c(m-1) j
」電路區塊之電路記號之圖,圖59係「c(m-1) j
」電路區塊之方塊圖。
「c(m-1) j
」電路區塊係與時脈clj
、/clj
同步而動作之電路,輸入(j)m
、am-1
、及代碼成分c1
~c16
,輸出c(m-1) j
。
「c(m-1) j
」電路區塊包含「X Zp」電路區塊、2個「5 bit AD mod 17」電路區塊<1>、<2>、及「R(1~16)」暫存部。
「X Zp」電路區塊中,生成(j)m
與am-1
之積,經由反相器IV1而將其輸出至「5 bit AD mod 17」電路區塊<1>。
於「5 bit AD mod 17」電路區塊<1>中,求出經由反相器IV1所輸出之輸出(j)m
am-1
之補數,生成-jm
am-1
,並將其輸出至「5 bit AD mod 17」電路區塊<2>。
於「5 bit AD mod 17」電路區塊<2>中,生成自「5 bit AD mod 17」電路區塊<1>輸出之-jm
am-1
、與和時脈cl同步而自「R(1~16)」暫存部輸出的cj
(=c(m-2) j
)之和。該和變成作為「c(m-1) j
」電路區塊之輸出之c(m-1) j
。自該「5 bit AD mod 17」電路區塊<2>輸出之c(m-1) j
係與時脈cl之下降同步而記錄於「R(1~16)」暫存部之第j個暫存器。
繼而,對基於數46所示之am
=16-1
Σ(jm+1
)-1
c(m-1) j
(j=1~16)而生成am
之電路進行說明。以下,將該電路稱為「am
」電路區塊。
圖60係表示「am
」電路區塊之電路記號之圖,圖61係「am
」電路區塊之方塊圖。
「am
」電路區塊係與時脈clj
同步而動作之電路,其輸入(j)m+1
、及c(m-1) j
,輸出am
。
「am
」電路區塊包含「j-1
dec」電路區塊、2個「X Zp」電路區塊<1>、<2>、「5 bit AD mod 17」電路區塊、及「Rgstr」暫存器。
於「j-1
dec」電路區塊中,將(j)m+1
轉換為其逆元(j)-(m+1)
,並將其輸出至「X Zp」電路區塊<1>。
「X Zp」電路區塊<1>進行自「j-1
dec」電路區塊所輸入之(j)-(m+1)
、與自「c(m-1) j
」電路區塊輸出之cj
(=c(m-1) j
)的積運算,並輸出至「5 bit AD mod 17」電路區塊。
自「5 bit AD mod 17」電路區塊輸出之積係藉由包含初始值為「0」之「Rgstr」暫存器與「5 bit AD mod 17」電路區塊的迴路而進行加算。將該結果自「5 bit AD mod 17」電路區塊輸出至「X Zp」電路區塊<2>。
於「X Zp」電路區塊<2>中,對自「5 bit AD mod 17」電路區塊輸出之和與16-1
=16之積進行運算,而獲得作為「am
」電路區塊之輸出的am
。
最後,對使用上述「c(m-1) j
」電路區塊及「am
」電路區塊而獲得資料代碼A之計算電路進行說明。以下,將該計算電路稱為「逆轉換電路」。
圖62中(A)係逆轉換電路之方塊圖,圖62中(B)係控制該逆轉換電路之時脈ck及cl之時序圖。
如圖62中(B)所示,時脈ck及cl於特定之時脈ck之上升至下一時脈ck之上升為止期間,變成時脈cl上升16次之關係。
逆轉換電路包含每次進行逆轉換所需之李度量碼C之成分之轉換的第1部分電路U1、及逐一求出資料代碼A之要素之第2部分電路U2。
第1部分電路U1包含「(j)i
(j=1 to 16)」電路區塊、「Rgstr」暫存器、及「c(m-1) j
」電路區塊。
第2部分電路U2包含「(j)i
(j=1 to 16)」電路區塊、「am
」電路區塊、及「Li(0~10)」暫存部。
其中「(j)i
(j=1 to 16)」電路區塊係與第1電路部分U1共有。「(j)i
(j=1 to 16)」電路區塊係產生「am
」電路區塊與「c(m-1) j
」電路區塊所使用之Zp之要素j之m+1乘方與m乘方的電路。該電路區塊將時脈ck之循環數m+1及比該循環次數少1之數m作為指數,將時脈c1之循環數作為j,而輸出(j)m+1
及(j)m
。
「(j)i
(j=1 to 16)」電路區塊於ck之第1循環中對「am
」電路區塊輸出Zp之要素自身,對「c(m-1) j
」電路區塊輸出「1」。輸出至該「c(m-1) j
」電路區塊之「1」原本係計算中並不利用者,故而需要研究使得該「1」不對運算結果產生影響。因此,為消除該「1」之影響,於第1部分電路U1之積運算中,在時脈ck之最初之循環時將另一方之輸入設為「0」,使得積運算之結果為零。
第1部分電路U1之「Rgstr」暫存器中設定有am
。該設定之am
於時脈ck1
後之時脈ck之時序自「Rgstr」暫存器輸出。即,「Rgstr」暫存器之輸出am-1
係於時脈ckm
之時序輸出。
於時脈ck之最初之時脈循環ck0
中,「Rgstr」暫存器之輸出節點之初始值係設定為「0」,如上述般不對計算結果產生影響。
「c(m-1) j
」電路區塊係與時脈ckm
同步而輸入有自「Rgstr」暫存器及「(j)i
(j=1 to 16)」電路區塊分別輸出的am-1
及(j)m
。「c(m-1) j
」電路區塊自該等輸入am-1
及(j)m
而獲得作為第1部分電路U1之輸出之c(m-1) j
。
再者,「c(m-1) j
」電路區塊之初始值變成經復原之代碼資料C,根據時脈ck0
之「Rgstr」暫存器之設定,為c(-1) j
=init C。
第2電路部分U2之「am
」電路區塊對應時脈cl之16個循環,依照數46所示之計算式而獲得am
。「am
」電路區塊所生成之am
藉由作為下一16次時脈cl之循環之開始時序的時脈ckm+1
而儲存至「Li(0~10)」暫存部之第m個暫存器。
若所有時脈循環結束則於「Li(0~10)」暫存部中設定並儲存代碼資料A。
<總結>
以上,於第1實施形態中,針對錯誤校正使用徵候群轉換法之p-adic‧NAND快閃記憶體,一面例示具體構成一面進行說明。
根據第1實施形態,即便於對p-adic單元之資料寫入、對p-adic單元之資料讀出等之位準設定寬鬆之情形時,亦可藉由強力的錯誤校正能力確保資料可靠性。
[第2實施形態]
於第1實施形態中,對「p-adic Zp world」之資料(代碼)之處理中利用徵候群轉換法的記憶體系統進行了說明。該情形時,可使記憶體系統所使用之電路之構成單純。然而,於可校正之錯誤量增大之情形時,為進行錯誤校正無遺漏之搜索,使得搜索之重複增大,導致處理時間增大。
於如第1實施形態般在錯誤校正中使用徵候群轉換法之情形時,錯誤搜索時所需之計算之重複次數於例如p=17之情形時,可校正之李度量為ε=3時最大為16×16=256次、ε=2時最大為16次便可。另一方面,如第1實施形態所說明般,可校正之李度量為ε=4之情形時,錯誤搜索時需要重複最大16×16×16=4096次之計算處理。
根據以上方面,徵候群轉換法對於錯誤量較小之記憶體系統中搭載之錯誤校正系統而言有效,但反之於可錯誤校正量較大之情形時(例如,p=17、ε=4),與徵候群轉換法相比,使用先前之歐幾裏得疊代法有時可減小處理時間及電路規模。
因此,於第2實施形態中,對錯誤校正使用歐幾裏得法之p-adic‧NAND快閃記憶體進行說明。
圖63係錯誤校正使用歐幾裏得疊代法之記憶體系統之方塊圖。該記憶體系統係p=17、最大可校正錯誤量設為ε=4之情形時之構成。
p-adic記憶體系統包括17進數轉換部201、編碼部202、p-adic單元記憶體部203、徵候群生成部204、錯誤位置檢索多項式生成部205、歐幾裏得疊代法處理部206、第1哈塞微分多項式生成部207、第2哈塞微分多項式生成部208、代碼復原部209、解碼部210、及25
進數轉換部211。
其中,關於17進數轉換部201、編碼部202、及p-adic單元快閃記憶體203之處理過程,係與圖33所示之p-adic記憶體系統中的17進數轉換部101、編碼部102、及p-adic單元快閃記憶體103之處理過程相同。因此,此處,自由p-adic單元快閃記憶體103中讀出代碼Y後之處理過程開始進行說明。
由編碼部202而經李度量碼化之代碼C自p-adic單元快閃記憶體203中作為包含錯誤之代碼Y而被讀出。該代碼Y輸入至徵候群生成部204。
徵候群生成部204使用徵候群矩陣H及代碼Y之各碼字成分,自S=YHt
而進行徵候群S之計算。於S=0之情形時,由於代碼Y不包含錯誤,故為進行最後之處理而將代碼Y輸出至解碼部210。另一方面,於S≠0之情形時,且S之最初之成分S0
為|S0
|>5之情形時,代碼Y之錯誤確實無法校正,故輸出NG信號,並且為進行最初之處理而將包含錯誤之代碼Y直接輸出至解碼部210。於其他情形時,將徵候群S輸出至錯誤位置檢索多項式生成部205。
錯誤位置檢索多項式生成部205藉由數47所示之計算式,自徵候群S求出多項式Ψ(x)。該多項式Ψ(x)輸出至歐幾裏得疊代法處理部206。
[數47]
S=(S0
,S1
,S3
,S4
)→Ψ(x)
Ψ0
=1
Ψ1
=-S1
Ψ2
=-(Ψ1
S1
+Ψ0
S2
)/2
Ψ3
=-(Ψ2
S1
+Ψ1
S2
+Ψ0
S3
)/3
Ψ3
=-(Ψ3
S1
+Ψ2
S2
+Ψ1
S3
+Ψ0
S4
)/4
歐幾裏得疊代法處理部206藉由歐幾裏得疊代法而嘗試進行λ=fn
、v=pn-1
之生成。於可生成λ及v之情形時,將該等多項式λ(x)及v(x)分別輸出至第1及第2哈塞微分多項式生成部207及208。另一方面,於無法生成λ或v之情形時,輸出NG信號,並且為進行最初之處理而將包含錯誤之代碼Y直接輸出至編碼部210。關於該歐幾裏得疊代法處理部206之電路構成於下文詳細敍述。
第1及第2哈塞微分多項式生成部207及208分別自多項式λ(x)與v(x)求出哈塞微分多項式,而求出該等根r及其根之多重度n。第1及第2哈塞微分多項式生成部207及208根據所得之根r及其多重度n,向代碼復原部210輸出t=r-1
。
代碼復原部210根據產生錯誤之碼字之位置座標t、及多重度n求出錯誤量et
。並且,根據ct
=yt
-et
對李度量碼之代碼C=(c1
,c2
,…,c16
)進行復原。
關於之後之解碼部210及25
進數轉換部211之處理係與圖33所示之p-adic記憶體系統中的解碼部109及25
進數轉換部110相同,故而省略。
以上,於本實施形態之記憶體系統之情形時,處理之反覆與複雜程度均彙聚於歐幾裏得疊代法,全體之處理流程變得簡單。
再者,全體之系統構成大致分為兩種,即圖63中a所示之虛線包圍之系統構成、及圖63中b表示之一點鏈線包圍的系統構成。
以虛線包圍之系統係搭載有p-adic單元快閃記憶體,且藉此作為1個記憶體系統而發揮功能者。因此,於該記憶體系統之情形時,需要開發第1實施形態中亦說明之p-adic單元快閃記憶體。又,伴隨於此,需要將對p-adic單元之位準設定方法自使用先前之NAND MLC之記憶體系統的情形加以變更。
以一點鏈線包圍之系統係直接使用先前之NAND MLC作為記憶體裝置之記憶體控制器。因此,該系統資料之寫入時僅藉由設置使Zp之要素與MLC之位準對應而解碼之I/O便可實現。藉此,可利用先前之NAND MLC構築使用李度量碼之記憶體系統。其中,於使用記憶體控制器之記憶體系統之情形時,為進行MLC與Zp之映射(mapping)而需要更多之時間,故不會成為高速之資料處理系統。然而,依然可進行資料可靠性提高之資料管理。
MLC與Zp之映射對應於MLC之位準之每個群組而言頁面不同,故於未對不同頁面間之資料進行總結管理之情形時,無法將1個記憶體單元之位準作為Zp之要素而連續地建立關聯。因此,需要設置與所有頁面資料對應之暫存器,進行與Zp之要素之二進制表示之映射,而進行與該暫存器群之所有頁面之NAND MLC記憶體裝置內之個別頁面的一系列資料傳送。因此,該映射需要更多之邏輯。該映射係視為較大之暫存器與解碼器之集合故而不進行詳細說明。再者,NAND MLC之位準數為2之冪且Zp之要素數為質數,故於8值單元之情形時,p=7、16值單元時僅使用p=13為止之質數,就記憶體單元之效率之觀點而言,並非最佳之系統。
構築何種系統係依據市場需求而定,藉由第1實施形態或以下所示之第2實施形態之說明,亦可實現任意記憶體系統。
<歐幾裏得法>
首先,作為使用歐幾裏得疊代法之記憶體系統之前提,對使用歐幾裏得法時之一般的關係式等進行總結說明。此處,係設為γ=ε+1而進行說明。
記錄於p-adic單元之代碼C之二進制資料係將包含h位元之碼字符號聚集p-1個而成者,對應每一位元受到各種擾亂而引起變化。因此,自代碼Y復原代碼C即為解碼。於該解碼之前,首先求出徵候群。
徵候群S係進行利用徵候群矩陣H之S=YHt
之運算而作為數48所示之要素S0
、S1
、...、Sγ-1
求出。
[數48]
此處,Ht
係H之轉置矩陣。生成矩陣G與徵候群矩陣H之構成係以變成GHt
=0(mod p)之方式構成,藉此若Y=C+E則S=EHt
。又,若E=(e1
,e2
,…,ep-1
)則可知徵候群S0
變成各碼字符號之錯誤之總和。該等徵候群S係唯一之錯誤之資訊,基於該等徵候群S,以如下方式進行正確的代碼C之復原。
繼而,對解碼之原理進行說明。將n(=p-1)個錯誤之符號如數49般分類為兩個組J+
與J-
。
[數49]
即,分類為符號之錯誤量為ej
<p/2之情形時,作為代碼符號cj
之位置j之集合的J+
,以及符號之錯誤量為ej
>p/2之情形時,作為代碼符號cj
之位置j之集合的J-
。基於該等組而如數50般構成伽羅體GF(p)上之多項式Λ(x)、V(x)。
[數50]
如此,多項式Λ(x)變成具有J+
之錯碼字符號之位置j之反數作為根,具有所述碼字符號之李度量ej
為根之多重度的多項式。另一方面,多項式V(x)變成具有J-
之錯碼字符號之位置j之反數作為根,具有所述碼字符號之李度量p-ej
為根之多重度的多項式。解碼最終變成藉由僅由徵候群S1
之資訊構成該等多項式而求解,獲得錯誤之資訊的過程。即,需要求出該等多項式Λ(x)、V(x)與徵候群S1
之關係。
繼而,若如數51所示般使各徵候群S1
由其次數之係數所具有的級數多項式構成,則以包含符號之錯誤量ej
、位置j及其值之有理多項式進行表示。
[數51]
根據數51,多項式Λ(x)、V(x)、徵候群S(x)之間成立有數52所示之關係式。
[數52]
繼而,利用數52所示之關係式,自徵候群S(x)求出多項式Λ(x)、V(x)。
自徵候群S(x)求出數53所示之次數為γ-1以下之多項式Ψ(x)。
[數53]
於多項式Ψ(x)之展開式中,根據數53所示之式之兩邊之同次次數之係數的比較,係數Ψj
可使用徵候群Si
與業已求出之係數Φ j-1
而利用疊代法求出。數54中表示自徵候群S1
~Sγ-1
求出多項式Ψ(x)之係數Φ 0
~Φ γ-1
的結果。
[數54]
Ψ0
=1
Ψ1
=-Ψ0
S1
=-S1
Ψ2
=-(Ψ1
S1
+Ψ0
S2
)/2
M
Ψγ-1
=-(Ψγ-2
S1
+Λ+Ψ0
Sγ-1
)/(γ-1)
該多項式Ψ(x)係等價於Λ(x)/V(x)之多項式,多項式Λ(x)、V(x)中有數55所示之關鍵條件。因此,對於xγ
及多項式Ψ(x)可藉由歐幾裏得法除以常數倍而求出。
[數55]
V(x)Ψ(x)≡Λ(x)(mod xγ
)
deg Λ(x)+deg V(x)<γ
Λ(x)與V(x)彼此互為素數
deg Λ(x)-deg V(x)≡S0
(mod p)
因此,若可自徵候群S1
~Sγ-1
構成多項式Ψ(x),則作為疊代法之停止條件使用徵候群S0
而求出多項式Λ(x)、V(x)。即,藉由疊代法而自(S0,Ψ(x))之組求出之多項式Λ(x)、V(x)係表示錯碼字符號之位置j及錯誤量ej
。
<歐幾裏得疊代法之錯誤校正>
其次,對歐幾裏得疊代法進行說明。此處,對藉由停止條件deg λ(x)-deg v(x)≡S0
(mod p)求出疊合式v(x)Ψ(x)≡λ(x)(mod xγ
)之疊代法進行說明。
歐幾裏得疊代法係使用多項式之除法而依序求出函數f0
、f1
、...、fn
之方法。該等量之間存在數56所示之關係。
[數56]
此處,如數57所示,尤其係自除法過程中所得之商多項式kn
而逐次導入pn
及qn
,藉此該等多項式滿足簡單之關係,故而可以f0
、f1
、pn-1
、及qn-1
表示fn
。因此,若設f0
=xγ
、f1
=Ψ(x)而作成xγ
之疊合式,則反覆之停止條件變成deg fn
-deg pn-1
≡S0
(mod p)。關於滿足該停止條件之n,若deg fn
+deg pn-1
<γ則可設λ(x)=fn、V(x)=pn-1
。
由於γ=ε+1,故例如於錯誤4之計算中反覆次數亦為4次之程度便可。關於該點,於使用歐幾裏得疊代法之情形時運算電路之規模增大,但計算次數與徵候群轉換法相比可顯著減少。
以下,針對具體之電路構成進行說明,而與徵候群轉換法差異較大之方面則於下文敍述。
<徵候群生成部之電路構成>
其次,作為徵候群生成部204之電路構成例,對總括地求出徵候群S之成分要素之運算電路進行說明。以下,將該運算電路稱為「徵候群成分要素生成電路」。
徵候群成分要素生成電路係根據數57所示之關係式而構成。
[數57]
圖64中(A)係徵候群成分要素生成電路之方塊圖,圖64中(B)係控制徵候群成分要素生成電路之時脈cki
(i=0~ε+1)、clj
(j=1~p-1)之時序圖。
如圖64中(A)所示,徵候群成分要素生成電路包含「Ro(1~p-1)」暫存部、「(j)i
(j=1 to p-1)」電路區塊、「X Zp」電路區塊、「h bit AD mod p」電路區塊、「Rgstr」暫存器、及「Ri(0~ε)」暫存部。
自p-adic單元陣列讀出之資料Y係作為初始設定而儲存於「Ro(1~p-1)」暫存器。自「(j)i
(j=1 to p-1)」電路區塊產生(j)i
。該等「Ro(1~p-1)」暫存器及「(j)i
(j=1 to p-1)」電路區塊係藉由時脈cli
而同步,控制為輸出Y之成分yj
之同時輸出(j)i
。該等積(j)i
yj
係由「X Zp」電路區塊生成,與時脈clj
(j=1~p-1)同步,藉由「h bit AD mod p」電路區塊及「Rgstr」暫存器之迴路而不斷進行加算,作成徵候群成分Si
。將所得之Si
於時脈cki+1
儲存於「Ri(0~ε)」暫存器之第i個暫存器。於時脈cki
之i=0~ε處理該過程,獲得所有徵候群成分而儲存於「Ri(0~ε)」暫存部。
以下,對歐幾裏得疊代法處理部206之電路構成例進行說明。
首先,對求出fn
=kn
fn+1
+fn+2
之計算之kn
的電路進行說明。以下,將該電路稱為「kn」電路區塊。
「kn」電路區塊係根據數58所示之關係式而構成。
[數58]
「kn」電路區塊使用數58所示之係數間之關係而自既知之係數求出未知之係數。再者,kn
之多項式為1次,計算過程中即便最高次之係數為0時係數亦為0,而逐次推進計算之次序。此時0之逆元為0,係數間之關係式始終成立。
圖65係表示「kn」電路區塊之電路記號之圖,圖66係「kn」電路區塊之方塊圖。
如圖65所示,「kn」電路區塊輸入a(n) m-1
及a(n) m
,輸出a(n+1) m-1
、a(n+1) m-2
、b(n) 1
、及b(n) 0
。
「kn」電路區塊包含3個「X Zp」電路區塊<1>、<2>、<3>、2個「h bit AD mod p」電路區塊<1>、<2>、「j-1
dec」電路區塊、XNOR閘極G1、及OR閘極G2。
「X Zp」電路區塊<1>利用a(n+1) m-2
及b(n) 1
進行積運算。該結果b(n) 1
a(n+1) m-2
經由反相器IV1而輸出至「h bit AD mod p」電路區塊<1>。
「h bit AD mod p」電路區塊<1>輸入反相器IV1之輸出及「1」,獲得b(n) 1
a(n+1) m-2
之補數。
「h bit AD mod p」電路區塊<2>輸入「h bit AD mod p」電路區塊<1>之輸出及a(n) m-1
,並將其結果a(n) m-1
-b(n) 1
a(n+1) m-2
輸出至「X Zp」電路區塊<2>。
「j-1
dec」電路區塊輸入a(n+1) m-1
,並將其逆元(a(n+1) m-1
)-1
輸出至「X Zp」電路區塊<2>及<3>。
「X Zp」電路區塊<2>利用「h bit AD mod p」電路區塊<2>之輸出a(n) m-1
-b(n) 1
a(n+1) m-2
及「j-1
dec」電路區塊之輸出(a(n+1) m-1
)-1
而進行積運算,獲得其結果b'(n) 0
。
「X Zp」電路區塊<3>利用a(n) m
及「j-1
dec」電路區塊之輸出(a(n+1) m-1
)-1
進行積運算,獲得作為「kn」電路區塊之輸出的b(n) 1
。
XNOR電路G1輸入「X Zp」電路區塊<2>之輸出b'(n) 0
及「X Zp」電路區塊<3>之輸出b(n) 1
。又,OR電路G2輸入XNOR電路之輸出及b'(n) 0
。該情形時,OR電路G之輸出變成「kn
」電路區塊之輸出b(n) 0
。
繼而,對求出fn
=kn
fn+1
+fn+2
之計算之fn+2
的電路進行說明。以下,將該電路稱為「fn」電路區塊。
「fn」電路區塊係根據數59所示之關係式而構成。
[數59]
「fn」電路區塊使用數59所示之係數間之關係而自既知之係數求出未知之係數。再者,利用業已獲得之kn
之多項式之係數。
圖67係表示「fn」電路區塊之電路記號之圖,圖68係「fn」電路區塊之方塊圖。
「fn」電路區塊如圖67所示輸入a(n+1) m-1
、a(n+1) m
、a(n) m
、b(n) 1
、及b(n) 0
,輸出a(n+2) m
。
「fn」電路區塊包含2個「X Zp」電路區塊<1>、<2>、3個「h bit AD mod p」電路區塊<1>、<2>、及<3>。
「X Zp」電路區塊<1>利用a(n+1) m-1
及b(n) 1
進行積運算,並將該結果b(n) 1
a(n+1) m-1
輸出至「h bit AD mod p」電路區塊<1>。
「X Zp」電路區塊<2>利用a(n+1) m
及b(n) 0
進行積運算,並將該結果b(n) 0
a(n+1) m
輸出至「h bit AD mod p」電路區塊<1>。
「h bit AD mod p」電路區塊<1>輸入「X Zp」電路區塊<1>之輸出b(n) 1
a(n+1) m-1
及「X Zp」電路區塊<2>之輸出b(n) 0
a(n+1) m
。該「h bit AD mod p」電路區塊<1>之輸出經由反相器IV1而輸入至「h bit AD mod p」電路區塊<2>。
「h bit AD mod p」電路區塊<2>輸入反相器IV1之輸出及「1」,獲得(b(n) 0
a(n+1) m
+b(n) 1
a(n+1) m-1
)之補數。
「h bit AD mod p」電路區塊<3>輸入a(n) m
及「h bit AD mod p」電路區塊<2>之輸出,而獲得作為該「fn」電路區塊之輸出的a(n+2) m
。
繼而,對求出pn
=kn-1
pn-1
+pn-2
之計算之pn-2
的電路進行說明。以下,將該電路稱為「pn」電路區塊。
「pn」電路區塊係根據數60所示之關係式而構成。
[數60]
「pn」電路區塊使用數60所示之係數間之關係而自既知之係數求出未知之係數。再者,利用業已獲得之kn
之多項式之係數。
圖69係表示「pn」電路區塊之電路記號之圖,圖70係「pn」電路區塊之方塊圖。
如圖69所示,「pn」電路區塊輸入a(n) m-1
、a(n) m
、及a(n-1) m
,輸出a(n+1) m
。
如圖70所示,「pn」電路區塊包含2個「X Zp」電路區塊<1>、<2>、2個「h bit AD mod p」電路區塊<1>、及<2>。
「X Zp」電路區塊<1>利用a(n) m-1
及b(n) 1
進行積運算,並將該結果b(n) 1
a(n) m-1
輸出至「h bit AD mod p」電路區塊<1>。
「X Zp」電路區塊<2>利用a(n) m
及b(n) 0
進行積運算,並將該結果b(n) 0
a(n) m
輸出至「h bit AD mod p」電路區塊<1>。
「h bit AD mod p」電路區塊<1>輸入「X Zp」電路區塊<1>之輸出b(n) 1
a(n) m-1
及「X Zp」電路區塊<2>之輸出b(n) 0
a(n) m
,並將b(n) 0
a(n) m
+b(n) 1
a(n) m-1
輸出至「h bit AD mod p」電路區塊<1>。
「h bit AD mod p」電路區塊<2>輸入a(n-1) m
及「h bit AD mod p」電路區塊<1>之輸出b(n) 0
a(n) m
+b(n) 1
a(n) m-1
,而獲得作為「pn」電路區塊之輸出的a(n+1) m
。
繼而,對fn
=kn
fn+1
+fn+2
之計算電路進行說明。以下,將該電路稱為「fn
=kn
fn+1
+fn+2
」電路區塊。
圖71係表示「fn
=kn
fn+1
+fn+2
」電路區塊之電路記號之圖,圖72係「fn
=kn
fn+1
+fn+2
」電路區塊之方塊圖。
「fn
=kn
fn+1
+fn+2
」電路區塊如圖71所示輸入fn
之係數a0
~aγ
、及fn+1
之係數b0
~bγ
,輸出fn+2
之係數c0
~cγ
、及kn
之係數β0
~β1
。
計算係以f0
=xγ
、f1
=Ψ(x)而開始,故fn
之最大次數為γ,fn+2
之最大次數於kn
為1之情形時亦為γ。因此,「fn
=kn
fn+1
+fn+2
」電路區塊如圖72所示包含γ+1個「kn」電路區塊<1>~<γ+1>、及γ+1個「fn」電路區塊<1>~<γ+1>。
「kn」電路區塊<1>分別將「0」、a0
、b0
、及a1
建立關聯而作為a(n+1) m-2
、a(n) m-1
、a(n+1) m-1
、及a(n) m
,且分別將β(0) 0
、及β(0) 1
建立關聯而作為b(n) 0
、及b(n) 1
。
「kn」電路區塊<2>分別將b0
、a1
、b1
、及a2
建立關聯而作為a(n+1) m-2
、a(n) m-1
、a(n+1) m-1
、及a(n) m
,且分別將β(1) 0
、及β(1) 1
建立關聯而作為b(n) 0
、及b(n) 1
。
之後,對於「kn」電路區塊<3>~<γ+1>而言,亦為與「kn」電路區塊<1>及<2>相同之輸入輸出。
「kn」電路區塊<1>~<γ+1>之輸出β(m)
0及β(m)
1(m=0~γ)分別經由deg(b1
,b2
,…,bγ
)=m所控制之控制開關SW而自「fn
=kn
fn+1
+fn+2
」電路區塊作為β0
及β1
輸出。又,該β0
及β1
亦利用為「fn」電路區塊<1>~<γ+1>之輸入。此處,deg()表示fn+1
之次數判別電路輸出。
「fn」電路區塊<1>分別輸入「0」、b0
、a0
、β0
、及β1
作為a(n+1) m-1
、a(n+1) m
、a(n) m
、b(n) 0
、及b(n) 1
,且輸出c0
作為a(n+2) m
。
「fn」電路區塊<2>分別輸入b0
、b1
、a1
、β0
、及β1
作為a(n+1) m-1
、a(n+1) m
、a(n) m
、b(n) 0
、及b(n) 1
,且輸出c1
作為a(n+2) m
。
之後,對於「fn」電路區塊<3>~<γ+1>而言,亦為與「fn」電路區塊<1>及<2>相同之輸入輸出。
「fn」電路區塊<1>~<γ+1>之輸出變成作為「fn
=kn
fn+1
+fn+2
」電路區塊之輸出的c0
~cγ
。
繼而,對pn+1
=kn
pn
+pn-1
之計算電路進行說明。以下,將該電路稱為「pn+1
=kn
pn
+pn-1
」電路區塊。
圖73係表示「pn+1
=kn
pn
+pn-1
」電路區塊之電路記號之圖,圖74係「pn+1
=kn
pn
+pn-1
」電路區塊之方塊圖。
「pn+1
=kn
pn
+pn-1
」電路區塊如圖73所示輸入kn
之係數β0
、β1
、pn-1
之係數a0
~aγ-1
、及pn
之係數b0
~bγ-1
,輸出pn+1
之係數c0
~cγ-1
。
計算係於p-1
=0、p0
=1而開始,mod xγ
中利用pn+1
,故pn+1
之最大次數為γ-1。因此,「pn+1
=kn
pn
+pn-1
」電路區塊包含γ個「pn」電路區塊<1>~<γ>。
「pn」電路區塊<1>分別輸入「0」、b0
、a0
、β0
、及β1
作為a(n) m-1
、a(n) m
、a(n-1) m
、b(n) 0
、及b(n) 1
,且輸出c0
作為a(n+1) m
。
「pn」電路區塊<2>分別輸入b0
、b1
、a1
、β0
、及β1
作為a(n) m-1
、a(n) m
、a(n-1) m
、b(n) 0
、及b(n) 1
,且輸出c1
作為a(n+1) m
。
之後,對於「pn」電路區塊<3>~<γ>而言,亦為與「pn」電路區塊<1>及<2>相同之輸入輸出。
「pn」電路區塊<1>~<γ>之輸出變成作為「pn+1
=kn
pn
+pn-1
」電路區塊之輸出的c0
~cγ-1
。
繼而,對藉由0至n為止之反覆計算而求出fn
及pn-1
之計算電路進行說明。
圖75係求出fn
之計算電路,圖76係求出pn-1
之計算電路。
求出fn
之計算電路如圖75所示除了包含「fn
=kn
fn+1
+fn+2
」電路區塊以外,還包含3個「h(γ+1)」暫存部<1>~<3>。「h(γ+1)」暫存部<1>~<3>分別包含γ+1個h位元之鎖存。「h(γ+1)」暫存部<1>~<3>中無對應輸入時設定為「0」。fn
之計算係藉由「fn
=kn
fn+1
+fn+2
」電路區塊及設於其周邊之3個「h(γ+1)」暫存部<1>~<3>,對資料進行巡迴傳送而推進。
求出pn+1
之計算電路如圖76所示除了包含「pn+1
=kn
pn
+pn-1
」電路區塊以外,還包含「hγ」暫存部<1>~<3>。「hγ」暫存部<1>~<3>分別包含γ個h位元之鎖存。「hγ」暫存部<1>~<3>於無對應輸入時設定為「0」。pn+1
之計算係藉由「pn+1
=kn
pn
+fn-1
」電路區塊及設於其周邊之3個「hγ」暫存部<1>~<3>,對資料進行巡迴傳送而推進。
fn
及pn-1
之計算於時脈cl之每個循環進行,且該時脈cl之循環自0數起之數係與歐幾裏得疊代法之n對應。最後於「h(γ+1)」暫存部<1>中保持fn
,於「hγ」暫存部<1>中保持pn-1
。
於最初之時脈循環cl0
中,「h(γ+1)」暫存部<1>~<3>、及「hγ」暫存部<1>~<3>暫存器中分別設定有如圖75、及圖76所示之初始值。
即,於求出fn
之電路中,分別係於「h(γ+1)」暫存部<1>中設定f0
=xγ
之係數,於「h(γ+1)」暫存部<3>設定f1
=Ψ(x)之係數。又,於求出pn-1之電路中,於「hγ」暫存部<1>中設定p-1
=「0」,於「hγ」暫存部<3>中設定p0
=「1」。之後,每當推進時脈循環時,開始cln
循環時將fn
及pn-1
分別保持於對應的暫存部。
「h(γ+1)」暫存部<1>、「hγ」暫存部<1>係藉由信號/ISTOP而阻斷輸入,故於該時間點「h(γ+1)」暫存部<1>、「hγ」暫存部<1>之資料為確定。此處,信號/ISTOP係滿足下述歐幾裏得疊代法之停止條件時活化之信號。
藉由以上,「h(γ+1)」暫存部<1>、「hγ」暫存部<1>中可分別獲得所需之結果之多項式之係數。
將該等係數輸入至第1哈塞微分多項式生成部207、第2哈塞微分多項式生成部208,藉此可求出哈塞微分多項式之根及多重度。
為求出圖75及圖76所示之信號/ISTOP、即歐幾裏得疊代法之停止條件,需要判別計算之結果之多項式之次數。因此,對自所得之fn
或pn-1
之係數aj
(j=0~γ)而將次數二進制表示之電路進行說明。以下,將該電路稱為「DEG」電路區塊。
圖77係表示「DEG」電路區塊之電路記號之圖,圖78係「DEG」電路區塊之方塊圖。
「DEG」電路區塊如圖77所示輸入a1
~aγ
,輸出次數之二進制表示b0
~bh-1
。
「DEG」電路區塊如圖78所示包含「h bit reg.」暫存器<1>~<γ>、OR閘極G0<1>~<γ>、G1<0>~<γ-1>、及「A to deg DEC.」電路區塊。
「h bit」暫存器中保持有分別表示γ次之多項式之係數a1
~aγ
之h位元之二進制資料。表示該等係數a1~aγ之h位元之二進制資料分別輸入至OR閘極G0<1>~<γ>。
於OR閘極G0<n>(n=1~γ)中,輸入有表示an
之h位元之二進制資料。OR閘極G0<1>於an
=0時輸出「0」,於an
≠0時輸出「1」。即,OR閘極G0<n>判別an
為0抑或0以外。
OR閘極G1<m>(m=1~γ-1)中輸入有OR閘極G0<m>~<γ>。並且,OR閘極G1<1>~<γ-1>之輸出分別變成A1
~Aγ-1
。又,OR閘極G0<γ>之輸出直接為Aγ
。該等A1
~Aγ
係輸入至「A to deg DEC.」電路區塊。
「A to deg DEC.」電路區塊係實現圖78中以T1表示之A1
~Aγ
與次數之二進制表示之對應關係的解碼器電路。Aj
(j=1~γ)之「1」之總和係對應於次數之二進制表示。
「A to deg DEC.」根據圖78中T1所示之對應表,自A1
~Aγ
而獲得作為「DEC」電路區塊之輸出的b0
~bh-1
。再者,次數γ為p以下,故可以h位元表示。
最後,對自歐幾裏得疊代法所得之fn及pn-1,判定是否滿足李度量碼之關鍵條件而停止反覆、且滿足可錯誤校正條件的電路進行說明。
圖79係生成歐幾裏得疊代法之停止條件之判定、即信號/ISTOP之電路的方塊圖。
該電路包含2個「DEG」電路區塊<1>、<2>、2個「h bit AD mod p」電路區塊<1>、<2>、及含有複數個邏輯閘極之部分電路U1。
「DEG」電路區塊<1>輸入fn
作為a1
~aγ
,輸出作為fn
之二進制表示的deg fn
作為b0
~bh-1
。該deg fn
輸入至「h bit AD mod p」電路區塊<2>。
「DEG」電路區塊<2>輸入pn-1
作為a1
~aγ
,輸出作為pn-1
之二進制表示的deg pn-1
作為b0
~bh-1
。該deg pn-1
經由反相器IV1而輸入至「h bit AD mod p」電路區塊<1>。
「h bit AD mod p」電路區塊<1>自經由反相器IV1所輸入之deg pn-1
及「1」而獲得deg pn-1
之補數。該deg pn-1
之補數輸出至「h bit AD mod p」電路區塊<2>。
歐幾裏得疊代法之停止條件為deg fn
-deg pn-1
≡S0
(mod p),故「h bit AD mod p」電路區塊<2>中輸入deg fn
及deg pn-1
之補數,獲得deg fn
-deg pn-1
作為Zp之數。為對應二進制表示之每個位元而與S0
進行比較,將該結果輸出至部分電路U1。
部分電路U1為對應每一位元而比較deg fn
-deg pn-1
與S0
,取得每一位元之互斥或。於所有位元(deg fn
-deg pn-1
)j
(j=0~h-1)與(S0
)j
一致之情形時,部分電路U1輸出「0」作為信號/ISTOP。即,信號/ISTOP變成(deg fn
-deg pn-1
)0
(+)(S0
)0
ˇ…ˇ(deg fn
-deg pn-1
)m
(+)(S0
)m
ˇ…ˇ(deg fn
-deg pn-1
)h-1
(+)(S0
)h-1
。以上,部分電路U1實現deg fn
-deg pn-1
與S0
是否一致。
圖80係判定歐幾裏得疊代法之成功條件之電路的方塊圖。
該電路包含NAND閘極G1、「h bit AD mod p」電路區塊、下述「h bit γ≦」電路區塊、及NOR閘極G2。
NAND閘極G1係於歐幾裏得疊代法不滿足停止條件而停止之情形時設置。當fn
之次數為1、fn+1
之次數為0、信號/ISTOP之逆邏輯之信號/ISTOPn為1時,即以(deg fn
=1)^(deg fn+1
=0)^(/ISTOPn=1)為條件,NAND閘極G1輸出「1」作為信號Ifail。
根據deg fn
+deg pn-1
<γ,判斷與歐幾裏得疊代法停止之時間點是否可進行錯誤校正。
因此,向「h bit AD mod p」電路區塊輸入deg fn
及deg pn-1
,求出該等和deg fn
+deg pn-1
。該和deg fn
+deg pn-1
被輸出至「h bit γ≦」電路區塊。
「h bit γ≦」電路區塊係判定輸入是否為γ以上之電路。「h bit γ≦」電路區塊與自「h bit AD mod p」電路區塊輸入之deg fn
+deg pn-1
為γ以上之情形時輸出「1」作為信號gtγ。
再者,雖省略該「h bti γ≦」電路區塊之詳細說明,但可與圖40所示之「h bit AD mod p」電路區塊之PF0生成部U1同樣地構成。
OR閘極G2輸入NAND閘極G1之輸出Ifail或「h bit γ≦」電路區塊之輸出gtγ,與Ifailˇgtγ之情形時輸出表示無法藉由歐幾裏得疊代法進行錯誤校正之NG信號。
<總結>
以上,與第2實施形態中,對於錯誤校正使用歐幾裏得疊代法之p-adic‧NAND快閃記憶體,一面例示其具體構成一面進行說明。
根據第2實施形態,與第1實施形態同樣地,即便於對p-adic單元之資料寫入、對p-adic單元之資料讀出等之位準設定寬鬆之情形時,亦可藉由強力之錯誤校正能力而確保資料可靠性。又,與第1實施形態相比,可實現高速之錯誤校正處理。
[其他]
雖然已描述了某些實施例,但這些實施例僅以實例方式呈現,且並非旨在限制本發明的範圍。實際上,本文所述之新穎方法及系統可以多種其他形式實施:此外,在不背離本發明之精神下,可對本文所述之方法及系統的形式作出各種省略、取代及改變。意欲隨附申請專利範圍及其相等物涵蓋該等形式或修改,如同屬於本發明之範疇及精神一般。
101...17進數轉換部
102...編碼部
103...p-adic單元快閃記憶體
104...徵候群生成部
105...錯誤位置檢索多項式生成部
106...哈塞微分多項式生成部
107...錯誤量算出部
108...代碼復原部
109...解碼部
110...25
進數轉換部
201...編碼部
202...p-adic單元記憶體部
203...錯誤檢測‧校正部
204...錯誤檢測‧校正部
205...錯誤檢測‧校正部
206...錯誤檢測‧校正部
207...解碼部
301...2h
進數轉換部
BL...位元線
ck、cl、clk...時脈
FA1~FA7...全加算器
FF...正反器
G1~G3...閘極
HA1~HA3...半加算器
IV1...反相器
PF0...進位
QN1~QN6...NMOS電晶體
QP1~QP6...PMOS電晶體
S0~S22...步驟
SW1~SW3...控制開關
sa...感測放大器
t-SA...感測放大部
U1...第1部分電路
U2...第2部分電路
U3...第3部分電路
WL...字元線
圖1係表示第1實施形態之記憶體系統之p-adic單元之位準數與資料儲存效率等之關係的表。
圖2係本實施形態之記憶體系統之概念圖。
圖3係對本實施形態之記憶體系統之資料介面之概要進行說明的圖。
圖4係對本實施形態之記憶體系統之資料傳送之次序進行說明的圖。
圖5係對本實施形態之記憶體系統之各扇區之寫入處理進行說明的圖。
圖6係對本實施形態之記憶體系統之各扇區之讀出處理進行說明的圖。
圖7係對本實施形態之記憶體系統之有限體Zp(p=17)對於p-adic單元之數量比例進行說明的圖。
圖8係對本實施形態之記憶體系統之寫入/讀出方法進行說明之圖。
圖9係對本實施形態之記憶體系統之寫入/讀出時之字元線位準之轉換與資料傳送時序進行說明的圖。
圖10係對本實施形態之記憶體系統之17進數之轉換電路之構成進行說明的圖。
圖11(A)、(B)係本實施形態之記憶體系統之1個步驟之17進數之轉換電路(「X to p」電路區塊)之方塊圖。
圖12係本實施形態之記憶體系統之「X to p」電路區塊之方塊圖。
圖13係表示本實施形態之記憶體系統之「X to p」電路區塊之電路記號的圖。
圖14係表示求出本實施形態之記憶體系統之Zp之要素的運算電路元件(「6 bit mod 17」電路區塊)之電路記號的圖。
圖15係本實施形態之記憶體系統之「6 bit mod 17」電路區塊之方塊圖。
圖16係表示本實施形態之記憶體系統之17進數之轉換核心(「p-adic」電路區塊)之電路記號的圖。
圖17係本實施形態之記憶體系統之「p-adic」電路區塊之方塊圖。
圖18係本實施形態之記憶體系統之17進數之轉換電路之方塊圖。
圖19係本實施形態之記憶體系統之「D-r」暫存器之電路圖。
圖20係對本實施形態之記憶體系統之17進數之轉換電路進行控制的時序信號之時序圖。
圖21係對本實施形態之記憶體系統之25
進數之轉換電路之構成進行說明的圖。
圖22(A)、(B)係本實施形態之記憶體系統之1個步驟之25
進數之轉換電路(「a to X」電路區塊)之方塊圖。
圖23係本實施形態之記憶體系統之「a to X」電路區塊之方塊圖。
圖24係表示本實施形態之記憶體系統之「a to X」電路區塊之電路記號的圖。
圖25係表示求出本實施形態之記憶體系統之二進制之要素的運算電路元件(「6 bit add 17」電路區塊)之電路記號的圖。
圖26係本實施形態之記憶體系統之「6 bit add 17」電路區塊之方塊圖。
圖27係本實施形態之記憶體系統之共通化之1個步驟之25
進數之轉換電路區塊(「p to X」電路區塊)的方塊圖。
圖28表示本實施形態之記憶體系統之「p to X」電路區塊之電路記號的圖。
圖29係表示本實施形態之記憶體系統之25
進數之轉換電路核心(「binary」電路區塊)之電路記號的圖。
圖30係本實施形態之記憶體系統之「binary」電路區塊之方塊圖。
圖31係本實施形態之記憶體系統之25
進數之轉換電路之方塊圖。
圖32係本實施形態之記憶體系統之「A-r」暫存器之電路圖。
圖33係本實施形態之記憶體系統之方塊圖。
圖34係本實施形態之記憶體系統之編碼之流程圖。
圖35係本實施形態之記憶體系統之解碼之流程圖。
圖36係本實施形態之記憶體系統之解碼之流程圖。
圖37係表示求出本實施形態之記憶體系統之Zp之要素之積的乘法電路(「X Zp」電路區塊)之電路記號的圖。
圖38(A)-(C)係本實施形態之記憶體系統之「X Zp」電路區塊之方塊圖。
圖39係表示求出本實施形態之記憶體系統之Zp之要素之和的運算電路元件(「5 bit AD mod 17」電路區塊)之電路記號的圖。
圖40係本實施形態之記憶體系統之「5 bit AD mod 17」電路區塊之電路圖。
圖41(A)、(B)係求出本實施形態之記憶體系統之記憶體所儲存之代碼成分的電路之方塊圖。
圖42係表示求出本實施形態之記憶體系統之Zp之要素之冪的電路(「X k-times」電路區塊)之電路記號之圖。
圖43係本實施形態之記憶體系統之「X k-times」電路區塊之方塊圖。
圖44(A)、(B)係求出本實施形態之記憶體系統之徵候群之電路的方塊圖。
圖45係求出本實施形態之記憶體系統之徵候群之電路的方塊圖。
圖46係求出本實施形態之記憶體系統之徵候群之電路的方塊圖。
圖47係表示求出本實施形態之記憶體系統之Zp之要素之冪的電路(「(j)i
(j=1 to 16)」電路區塊)之電路記號的圖。
圖48(A)、(B)係本實施形態之記憶體系統之「(j)i
(j=1 to 16)」電路區塊之方塊圖。
圖49係求出本實施形態之記憶體系統之錯誤位置檢索多項式之電路的方塊圖。
圖50(A)、(B)係求出本實施形態之記憶體系統之哈塞(Hasse)微分多項式之係數之電路的方塊圖。
圖51係對於本實施形態之記憶體系統之Zp之各要素之各種運算結果的表。
圖52係求出本實施形態之記憶體系統之Zp之要素間之對應之解碼器的電路圖。
圖53(A)、(B)係求出本實施形態之記憶體系統之多項式之解及其多重度的電路之方塊圖。
圖54係自本實施形態之記憶體系統之哈塞微分多項式之根與多重度之對求出真之錯誤而進行代碼校正的電路之方塊圖。
圖55係計算本實施形態之記憶體系統之錯碼字之李度量之運算電路的方塊圖。
圖56係表示計算本實施形態之記憶體系統之李度量之運算電路元件(「5 bit LM 17」電路區塊)之電路記號的圖。
圖57係本實施形態之記憶體系統之「5 bit LM 17」電路區塊之方塊圖。
圖58係表示構成自本實施形態之記憶體系統之C=AG求出A=CG-1
之計算電路的單元(「c(m-1) j
」電路區塊)之電路記號的圖。
圖59係本實施形態之記憶體系統之「c(m-1) j
」電路區塊之方塊圖。
圖60係表示構成自本實施形態之記憶體系統之C=AG求出A=CG-1
之計算電路的單元(「am
」電路區塊)之電路記號的圖。
圖61係本實施形態之記憶體系統之「am
」電路區塊之方塊圖。
圖62(A)、(B)係自本實施形態之記憶體系統之C=AG求出C=CG-1
之計算電路之方塊圖。
圖63係第2實施形態之記憶體系統之方塊圖。
圖64(A)、(B)係求出本實施形態之記憶體系統之徵候群之成分要素的電路之方塊圖。
圖65係表示本實施形態之記憶體系統之歐幾裏得疊代法所使用之電路(「kn」電路區塊)之電路記號的圖。
圖66係本實施形態之記憶體系統之「kn」電路區塊之方塊圖。
圖67係表示本實施形態之記憶體系統之歐幾裏得疊代法中使用之電路(「fn」電路區塊)之電路記號的圖。
圖68係本實施形態之記憶體系統之「fn」電路區塊之方塊圖。
圖69係表示本實施形態之記憶體系統之歐幾裏得疊代法中使用之電路(「pn」電路區塊)之電路記號的圖。
圖70係本實施形態之記憶體系統之「pn」電路區塊之方塊圖。
圖71係表示本實施形態之記憶體系統之歐幾裏得疊代法中使用之電路(「fn
=kn
fn+1
+fn+2
」電路區塊)之電路記號的圖。
圖72係本實施形態之記憶體系統之「fn
=kn
fn+1
+fn+2
」電路區塊之方塊圖。
圖73係表示本實施形態之記憶體系統之歐幾裏得疊代法中使用之電路(「pn+1
=kn
pn
+pn-1
」電路區塊)之電路記號的圖。
圖74係本實施形態之記憶體系統之「pn+1
=kn
pn
+pn-1
」電路區塊之方塊圖。
圖75係本實施形態之記憶體系統之歐幾裏得疊代法中使用之電路的方塊圖。
圖76係本實施形態之記憶體系統之歐幾裏得疊代法中使用之電路的方塊圖。
圖77係表示本實施形態之記憶體系統之歐幾裏得疊代法中使用之電路(「DEG」電路區塊)之電路記號的圖。
圖78係本實施形態之記憶體系統之「DEG」電路區塊之方塊圖。
圖79係判定本實施形態之記憶體系統之歐幾裏得疊代法之停止條件之電路的方塊圖。
圖80係判定本實施形態之記憶體系統之歐幾裏得疊代法之成功條件之電路的方塊圖。
S1~S4...步驟
Claims (20)
- 一種記憶體系統,其特徵在於包括:單元陣列,其包含字元線、及由上述字元線選擇且以不同之複數個物理量位準儲存多位準資料之複數個記憶體單元;暫存器,其保持自外部輸入之第1資料;及資料轉換部,其於將上述多位準資料記錄於上述記憶體單元之前,將保持於上述暫存器之第1資料轉換為第2資料,將該第2資料覆寫至上述暫存器之保持第1資料的區域,進而將保持於上述暫存器之第2資料轉換為第3資料或上述多位準資料,並將該第3資料覆寫至上述暫存器之保持第2資料的區域。
- 如請求項1之記憶體系統,其包括資料寫入部,該資料寫入部經由上述字元線而將分別遷移至上述複數個物理量位準的複數個寫入電壓供給至上述記憶體單元;上述資料寫入部對由上述字元線選擇之複數個記憶體單元寫入資料時,係一面自最低之上述寫入電壓至最高之上述寫入電壓為止階段性變化,一面將所有上述寫入電壓連續地供給至上述字元線。
- 如請求項1之記憶體系統,其包括資料讀出部,該資料讀出部經由上述字元線將分別偵測上述記憶體單元之複數個物理量位準之複數個讀出電壓供給至上述記憶體單元;上述資料讀出部自由上述字元線選擇之複數個記憶體 單元中讀出資料時,一面自最低之上述讀出電壓至最高之上述讀出電壓為止、或者自最高之上述讀出電壓至最低之上述讀出電壓為止階段性地變化,一面將所有上述讀出電壓連續地供給至上述字元線。
- 如請求項1之記憶體系統,其中上述第1資料為二進制資料;上述第2資料為p進數資料(p為質數);且上述第3資料為李度量碼。
- 如請求項1之記憶體系統,其包括錯誤校正部,該錯誤校正部對自上述記憶體單元所讀出之第4資料,校正該第4資料所含之錯誤,而復原上述第3資料。
- 如請求項5之記憶體系統,其中上述錯誤校正部包含:徵候群生成部,其自上述第4資料生成徵候群;錯誤位置檢索多項式生成部,其自上述徵候群生成錯誤位置檢索多項式;錯誤量算出部,其自根及多重度算出錯誤量;及代碼復原部,其基於上述錯誤量而自上述第4資料復原上述第3資料。
- 如請求項5之記憶體系統,其中上述錯誤校正部包含:徵候群生成部,其自上述第4資料生成徵候群;錯誤位置檢索多項式生成部,其自上述徵候群生成錯誤位置檢索多項式;及代碼復原部,其利用上述錯誤位置檢索多項式,藉由歐幾裏得疊代法而自根及多重度算出錯誤量,並基於上 述錯誤量而自上述第4資料復原上述第3資料。
- 一種記憶體系統,其特徵在於包括:單元陣列,其包含字元線、及由上述字元線選擇且以不同之複數個物理量位準儲存多位準資料的複數個記憶體單元;暫存器,其保持自外部所輸入之第1資料;及資料轉換部,其於將上述多位準資料記錄於上述記憶體單元之前,將保持於上述暫存器之第1資料轉換為第2資料,將該第2資料覆寫至上述暫存器之保持第1資料的區域,進而將保持於上述暫存器之第2資料轉換為第3資料或上述多位準資料,並將該第3資料覆寫至上述暫存器之保持第2資料的區域;且上述暫存器保持基於自上述記憶體單元所讀出之第4資料而經復原之上述第3資料;上述資料轉換部將保持於上述暫存器之第3資料轉換為上述第2資料,將該第2資料覆寫至上述暫存器之保持第3資料的區域,進而將保持於上述暫存器之第2資料轉換為向外部輸出之上述第1資料,並將該第1資料覆寫至上述暫存器之保持第2資料的區域。
- 如請求項8之記憶體系統,其中上述第1資料係以包含特定位元之傳送單位而保持於上述暫存器;上述資料轉換部以包含特定位元之處理單位而執行上述第1~第3資料之轉換處理;特定之上述傳送單位之一部分係以特定之處理單位而 進行轉換處理,上述特定之傳送單位之其他部分係以與上述特定之處理單位不同的其他處理單位而進行轉換處理。
- 如請求項8之記憶體系統,其包括資料寫入部,該資料寫入部經由上述字元線而將分別遷移為上述複數個物理量位準之複數個寫入電壓供給至上述記憶體單元;上述資料寫入部對由上述字元線選擇之複數個記憶體單元寫入資料時,係一面自最低之上述寫入電壓至最高之上述寫入電壓為止階段性變化,一面將所有上述寫入電壓連續地供給至上述字元線。
- 如請求項8之記憶體系統,其包括資料讀出部,該資料讀出部經由上述字元線將分別偵測上述記憶體單元之複數個物理量位準的複數個讀出電壓供給至上述記憶體單元;上述資料讀出部自由上述字元線選擇之複數個記憶體單元讀出資料時,係一面自最低之上述讀出電壓至最高之上述讀出電壓為止、或者自最高之上述讀出電壓至最低之上述讀出電壓為止階段性地變化,一面將所有上述讀出電壓連續地供給至上述字元線。
- 如請求項8之記憶體系統,其中上述第1資料為二進制資料;上述第2資料為p進數資料(p為質數);上述第3資料為李度量碼。
- 如請求項8之記憶體系統,其包括錯誤校正部,該錯誤 校正部對上述第4資料所含之錯誤進行校正,而復原上述第3資料。
- 如請求項13之記憶體系統,其中上述錯誤校正部包含:徵候群生成部,其自上述第4資料生成徵候群;錯誤位置檢索多項式生成部,其自上述徵候群生成錯誤位置檢索多項式;錯誤量算出部,其自根及多重度算出錯誤量;及代碼復原部,其基於上述錯誤量而自上述第4資料復原上述第3資料。
- 如請求項14之記憶體系統,其中上述錯誤校正部包含:徵候群生成部,其自上述第4資料生成徵候群;錯誤位置檢索多項式生成部,其自上述徵候群生成錯誤位置檢索多項式;及代碼復原部,其利用上述錯誤位置檢索多項式,藉由歐幾裏得疊代法而自根及多重度算出錯誤量,並基於上述錯誤量而自上述第4資料復原上述第3資料。
- 一種記憶體系統,其特徵在於包括:單元陣列,其包含字元線、及由上述字元線選擇且以不同之複數個物理量位準儲存多位準資料的複數個記憶體單元;暫存器,其保持自外部所輸入之第1資料;及資料轉換部,其於將上述多位準資料記錄於上述記憶體單元之前,將保持於上述暫存器之第1資料轉換為第2資料,將該第2資料覆寫至上述暫存器之保持第1資料的 區域,進而將保持於上述暫存器之第2資料轉換為第3資料或上述多位準資料,並將該第3資料覆寫至上述暫存器之保持第2資料的區域;且上述第1資料係以包含特定位元之傳送單位而保持於上述暫存器;上述資料轉換部以包含特定位元之處理單位而執行上述第1~第3資料之轉換處理;且特定之上述傳送單位之一部分係以特定之處理單位而進行轉換處理,上述特定之傳送單位之其他部分係以與上述特定之處理單位不同的其他處理單位而進行轉換處理。
- 如請求項16之記憶體系統,其包括資料寫入部,該資料寫入部經由上述字元線而將分別遷移為上述複數個物理量位準之複數個寫入電壓供給至上述記憶體單元;上述資料寫入部對由上述字元線選擇之複數個記憶體單元寫入資料時,係一面自最低之上述寫入電壓至最高之上述寫入電壓階段性變化,一面將所有上述寫入電壓連續地供給至上述字元線。
- 如請求項16之記憶體系統,其包括資料讀出部,該資料讀出部經由上述字元線而將分別偵測上述記憶體單元之複數個物理量位準之複數個讀出電壓供給至上述記憶體單元;上述資料讀出部自由上述字元線選擇之複數個記憶體單元中讀出資料時,係一面自最低之上述讀出電壓至最 高之上述讀出電壓、或者自最高之上述讀出電壓至最低之上述讀出電壓為止階段性變化,一面將所有上述讀出電壓連續地供給至上述字元線。
- 如請求項16之記憶體系統,其中上述第1資料為二進制資料;上述第2資料為p進數資料(p為質數);且上述第3資料為李度量碼。
- 如請求項16之記憶體系統,其包括錯誤校正部,該錯誤校正部對自上述記憶體單元讀出之第4資料,校正該第4資料所含之錯誤,而復原上述第3資料。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010214357A JP5204186B2 (ja) | 2010-09-24 | 2010-09-24 | メモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201229762A TW201229762A (en) | 2012-07-16 |
TWI479317B true TWI479317B (zh) | 2015-04-01 |
Family
ID=45870532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100130951A TWI479317B (zh) | 2010-09-24 | 2011-08-29 | Memory system |
Country Status (3)
Country | Link |
---|---|
US (1) | US8595592B2 (zh) |
JP (1) | JP5204186B2 (zh) |
TW (1) | TWI479317B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806308B2 (en) * | 2013-01-07 | 2014-08-12 | Freescale Semiconductor, Inc. | Bose-Chaudhuri-Hocquenghem (BCH) decoder |
US9368197B2 (en) | 2014-01-29 | 2016-06-14 | Kabushiki Kaisha Toshiba | Memory system |
KR102219293B1 (ko) * | 2014-07-28 | 2021-02-23 | 삼성전자 주식회사 | 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법 |
US9524207B2 (en) | 2014-09-02 | 2016-12-20 | Micron Technology, Inc. | Lee metric error correcting code |
US9779819B1 (en) * | 2016-06-24 | 2017-10-03 | Micron Technology, Inc. | Connecting memory cells to a data line sequentially while applying a program voltage to the memory cells |
US10534836B2 (en) * | 2016-12-06 | 2020-01-14 | Gsi Technology Inc. | Four steps associative full adder |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090024903A1 (en) * | 2007-07-17 | 2009-01-22 | Bueb Christopher J | Nibble encoding for improved reliability of non-volatile memory |
US20100103735A1 (en) * | 2008-10-28 | 2010-04-29 | Jinhyuk Kim | Memory device and program method thereof |
US20100211856A1 (en) * | 2007-12-12 | 2010-08-19 | Hanan Weingarten | Systems and methods for error correction and decoding on multi-level physical media |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4105819B2 (ja) * | 1999-04-26 | 2008-06-25 | 株式会社ルネサステクノロジ | 記憶装置およびメモリカード |
US7984360B2 (en) * | 2006-12-31 | 2011-07-19 | Ramot At Tel Aviv University Ltd. | Avoiding errors in a flash memory by using substitution transformations |
WO2008099723A1 (en) | 2007-02-01 | 2008-08-21 | Kabushiki Kaisha Toshiba | Semiconductor memory with reed- solomon decoder |
JP2009181439A (ja) | 2008-01-31 | 2009-08-13 | Toshiba Corp | メモリシステム |
US8156398B2 (en) * | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
KR101519626B1 (ko) * | 2009-02-27 | 2015-05-14 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 데이터 처리 방법 |
-
2010
- 2010-09-24 JP JP2010214357A patent/JP5204186B2/ja not_active Expired - Fee Related
-
2011
- 2011-08-29 TW TW100130951A patent/TWI479317B/zh active
- 2011-09-14 US US13/232,456 patent/US8595592B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090024903A1 (en) * | 2007-07-17 | 2009-01-22 | Bueb Christopher J | Nibble encoding for improved reliability of non-volatile memory |
US20100211856A1 (en) * | 2007-12-12 | 2010-08-19 | Hanan Weingarten | Systems and methods for error correction and decoding on multi-level physical media |
US20100103735A1 (en) * | 2008-10-28 | 2010-04-29 | Jinhyuk Kim | Memory device and program method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP5204186B2 (ja) | 2013-06-05 |
TW201229762A (en) | 2012-07-16 |
US20120075940A1 (en) | 2012-03-29 |
JP2012068993A (ja) | 2012-04-05 |
US8595592B2 (en) | 2013-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | An adaptive-rate error correction scheme for NAND flash memory | |
US8830746B2 (en) | Optimized threshold search in analog memory cells using separator pages of the same type as read pages | |
JP4621715B2 (ja) | メモリ装置 | |
TWI479317B (zh) | Memory system | |
JP4836608B2 (ja) | 半導体記憶装置 | |
TWI613674B (zh) | 在具有選擇性二元及非二元解碼之快閃記憶體中之偵測及解碼 | |
EP2610874A1 (en) | Optimized read threshold search for reading of analog memory cells | |
US8327218B2 (en) | Storage device with improved read/write speed and corresponding data process method | |
US20070198902A1 (en) | Semiconductor memory device | |
JPH07234823A (ja) | 記憶システム | |
US8201055B2 (en) | Semiconductor memory device | |
US20130318420A1 (en) | Code modulation encoder and decoder, memory controller including them, and flash memory system | |
JP2010518464A (ja) | 半導体記憶装置 | |
US8990667B2 (en) | Error check and correction circuit, method, and memory device | |
US10741212B2 (en) | Error correction code (ECC) encoders, ECC encoding methods capable of encoding for one clock cycle, and memory controllers including the ECC encoders | |
TWI459398B (zh) | Memory system | |
US9336085B2 (en) | Memory system and memory controller | |
US10133628B2 (en) | Apparatuses and methods for encoding using error protection codes | |
JP4891704B2 (ja) | 半導体記憶装置 | |
CN108574495B (zh) | 错误定位多项式解码器及方法 | |
JPH0743959B2 (ja) | 誤り訂正機能付半導体メモリ | |
JP2003256294A (ja) | 記憶システム |