TWI459398B - Memory system - Google Patents

Memory system Download PDF

Info

Publication number
TWI459398B
TWI459398B TW100130950A TW100130950A TWI459398B TW I459398 B TWI459398 B TW I459398B TW 100130950 A TW100130950 A TW 100130950A TW 100130950 A TW100130950 A TW 100130950A TW I459398 B TWI459398 B TW I459398B
Authority
TW
Taiwan
Prior art keywords
unit
circuit
code
memory system
bit
Prior art date
Application number
TW100130950A
Other languages
English (en)
Other versions
TW201230056A (en
Inventor
Haruki Toda
Original Assignee
Toshiba Kk
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Kk filed Critical Toshiba Kk
Publication of TW201230056A publication Critical patent/TW201230056A/zh
Application granted granted Critical
Publication of TWI459398B publication Critical patent/TWI459398B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1072Adding 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4094Bit-line management or control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

記憶體系統
本實施形態係關於一種記憶體系統。
本申請案係基於且主張2010年9月24日申請之先前的日本專利申請案第2010-213215號的優先權的權益,該申請案之全文以引用的方式併入本文。
作為儲存大容量之資料而予以利用之記憶體,三維化容易之電阻變化型記憶體(ReRAM)等備受關注。然而,無論使用何種單元,為實現大容量化,有效的是將單元之狀態以若干位準細分化,而將複數個位元擠入一個單元。關於該點可以NAND型快閃記憶體為例進行觀察。
然而,於使用此種多值儲存單元之情形時,因單元狀態之設定之不穩定性而容易產生誤讀寫。其原因在於位準數增加與取捨之關係。因此,於NAND型快閃記憶體之情形時,不僅最多只能有8或16位準,而且資料與位準之對應亦繁雜。
本發明之實施形態提供一種使用資料可靠性較高之多值儲存單元之記憶體系統。
實施形態之記憶體系統之特徵在於包括:單元陣列,其包含具有p(p為3以上之質數)以上之物理量位準之單元組件之單元陣列;代碼生成部,其將二進制表現之輸入資料轉換為以作為p之餘數體之Zp之要素而表現的寫入代碼;及代碼寫入部,其使Zp之各要素分別對應於不同之上述物理量位準,而將上述寫入代碼寫入至上述單元組件;於將上述輸入資料記錄至p-1個上述單元組件之情形時,該等p-1個上述單元組件中,上述輸入資料為0之情形、與僅1位元為1之情形時,並無以同一物理量位準寫入的單元組件。
根據本發明之實施形態,可提供一種使用資料可靠性較高之多值儲存單元的記憶體系統。
實施形態之記憶體系統之特徵在於包括:單元陣列,其包含具有p(p為3以上之質數)以上之物理量位準之單元組件;代碼生成部,其將二進制表現之輸入資料轉換為以作為p之餘數體之Zp之要素而表現的寫入代碼;及代碼寫入部,其使Zp之各要素分別對應於不同之上述物理量位準,而將上述寫入代碼寫入至上述單元組件;於將上述輸入資料記錄於p-1個上述單元組件之情形時,該等p-1個上述單元組件中上述輸入資料為0之情形、於僅1位元為1之情形時,並無以同一物理量位準寫入之單元組件。
以下,一面參照圖式一面對實施形態之記憶體系統進行說明。
[實施形態之概要]
記憶體系統不僅實現了加工之微細化,亦藉由記憶體單元使用之物理現象或單元陣列部分之三維構造化等之研究而實現儲存容量密度之增大。除此之外,為提高達成穩定製造步驟後之儲存容量密度,有效手段係將記憶體單元持有之物理量區分為複數個位準而使記憶體單元多值儲存化。
然而,於微細化後之多值儲存單元之情形時,對於資料寫入而言,容易產生原本應寫入之位準之鄰接位準錯誤而寫入資料的誤寫入,對於資料讀出而言容易產生作為記憶體單元儲存之位準之鄰接位準所對應的資料而讀出錯誤資料之誤讀出。又,對於資料保持而言,亦容易產生鄰接位準間之狀態遷移。
如此記憶體單元之多值儲存化會有損狀態之穩定性,股存在頗多限制。若可克服該記憶體單元之多值儲存化之缺陷而有效活用,則可長期利用穩定之記憶體系統之製造步驟,從而達成儲存容量之高密度化。
因此,於本實施形態之記憶體系統中,係搭載使用有李度量碼(Lee metric code)之ECC(Error Correcting Code)系統。
於使用李度量碼之ECC系統中,係以錯誤之合計數進行資料之校正,故於產生伴隨較小位準變化之錯誤之情形時可校正較多單元數。該點對於如上所述之鄰接位準間之錯誤有效。另一方面,對於伴隨較大位準變化之錯誤,只要處於錯誤之合計數之範圍內便可進行錯誤之校正,故可對應廣範圍之錯誤分佈。
此處,於1單元儲存有多值之情形時,可獲取各位準作為距基礎位準之高度,故與原本以二進制將資訊數位化相比,較理想的是以有限整數、尤其係質數將資訊數位化。因此,於本實施形態中,係使用以質數p為要素之餘數體Zp(以下僅稱為「Zp」)之李度量碼。
該情形時,於記憶體系統之外部,通常資料係以二進制進行處理,故需要自二進制向Zp之轉換。因此,以下為實現搭載有高效片上ECC系統之記憶體系統,而提及自二進制向Zp之表現轉換及使用李度量碼之ECC之具體電路。此處,構成該等轉換電路之電晶體係作為開關而發揮功能,故需注意資料之表示及運算說到底係以二進制為基本。
再者,輸入之二進制資料與記憶體單元所儲存之p進數之代碼並無線形關係,故轉換電路中二進制資料與p進數之代碼之對應可隨意設定。因此,將轉換電路鎖定之情形時,難以自記憶體單元儲存之p進數之代碼反向讀出二進制資料,該點亦可實現記憶體系統之安全加強。
先前使用之記憶體單元中,資料係作為二進制之'1'、'0'而儲存。因此,於如李度量碼般直接處理Zp之數之情形時需要預先將數設為2進數而將各位儲存於記憶體單元。
因此,關於產生錯誤之碼字與錯誤量之關係,使用圖1來說明記憶體系統之記憶體單元以位元單位儲存資訊時之代碼之錯誤量與記憶體單元之位元錯誤的關係。
如圖1所示,將Zp之數n個構成之代碼設為C=(c1 ,c2 ,c3 ,...,cn-1 ,cn ),將記憶體系統中儲存該C時產生之代碼錯誤設為E=(e1 ,e2 ,e3 ,...,en-1 ,en ),將C之各成分c根據E而變化後之字設為Y=(y1 ,y2 ,y3 ,...,yn-1 ,yn )。
C於記憶體系統內係作為二進制而儲存,故記憶體單元產生之位元錯誤因其產生之場所不同,作為E之量亦不同。
此處,考慮Zp之各數以h位元之二進制表示之情形。對於所有記憶體單元均相同地產生之位元錯誤係對應於李度量碼之代碼錯誤,其量變成E。
碼字係以h位元之二進制表示,故20 之位置之1位元錯誤於碼字中變成±1之錯誤量(Zp中為1或p-1之變化),2h-1 之位置之1位元錯誤變成±2h-1 (mod p)之錯誤量。如此因記憶體單元之位置不同,代碼錯誤之權重亦不同。因此,為對應於所有記憶體單元之位元錯誤之式樣(pattern)而需要能夠對應碼字之所有錯誤量。
於如上述般將碼字轉換為二進制而儲存於記憶體系統之情形時,記憶體系統之記憶體單元之構成無論如何均可對應。然而,如上述般使用李度量碼之ECC中,若總錯誤量Σej (j=1~n)並非未達特定之值,則無法錯誤校正。即,存在因產生錯誤之記憶體單元之位置而無法錯誤校正之情形,關於該點,於以二進制儲存於記憶體單元之情形時,無法均等地對應於所有記憶體單元。
根據以上,於使用李度量碼之情形時,如先前般將二進制資料儲存於記憶體單元並不適當。因此,於本實施形態中,對於將記憶體單元之狀態、即電晶體之閾值或電阻元件之電阻值分割為複數個位準之所謂的多值位準單元,係使Zp之數直接對應於各位準而予以儲存。藉此,可消除上述不良狀況。以下,亦存在將直接儲存李度量碼等Zp之數之多值位準單元稱為「p-adic單元」之情形。又,亦存在將使用有p-adic單元之記憶體系統稱為「p-adic記憶體系統」之情形。
其次,使用圖2對將Zp之數作為資料處理之p-adic記憶體系統之概要進行說明。
以下,將位於p-adic記憶體系統外之IT機器等以二進制處理資料之環境稱為「binary world」。相對於此,將亦包含運算處理等處理二進制之資料之部分、且以Zp處理資料之p-adic記憶體系統內之環境稱為「p-adic Zp world」。該情形時,「binary world」亦可稱為「p-adic Z2 world」。
本實施形態之記憶體系統中,作為「binary world」與「p-adic Zp world」之介面,而包含將二進制之資料轉換為Zp之資料之「binary to p-adic」轉換運算電路、及將Zp之資料轉換為二進制之資料的「p-adic to binary」轉換運算電路。
「binary world」(外部)之資料係經由「binary top-adic」轉換運算電路而輸入至「p-adic Zp world」(記憶體系統)。於記憶體系統內部,將資料維持為Zp之數之狀態而儲存於p-adic單元。藉由以此方式將資料以Zp之數記錄,使用李度量碼之ECC之處理變得容易。藉由ECC而經錯誤處理之Zp之資料係經由「p-adic to binary」轉換運算電路而輸出至「binary world」。
如此,藉由於記憶體系統中設置「binary to p-adic」轉換運算電路及「p-adic to binary」轉換運算電路,無需瞭解「p-adic Zp world」,便可將p-adic記憶體系統以「binary world」進行處理。
[自二進制資料向Zp資料之轉換]
其次,作為說明「binary to p-adic」轉換運算電路之具體電路構成之前提,對自二進制資料向Zp資料之轉換原理進行說明。
於使用Zp=GF(p)(「GF」表示伽羅體之含義,「GF(p)」係整數除以質數p後之餘數之集合)的情形時,p當然無法以2之冪表示,故與使用GF(2n )之情形不同無法將資料之所有位元式樣作為代碼而直接使用。因此,需要將資料之所有位元式樣1對1地轉換為Zp之要素。
此處,Zp之要素係以0~p-1之整數為代表,該等整數均可以h位元之二進制表示。此時由於無法使用h位元之所有位元式樣,故無法將二進制之h位元之資料直接作為Zp之要素而處理。
即,如圖3中(A)所示,將自「binary world」提供給記憶體系統之一群之資料D按各h位元予以劃分,而作為n個集合、即以2h 進數表示n位之資料D=(d0 ,d2 ,...,dn-1 )。該情形時,各位上以2h -1以下之數而出現h位元之所有位元式樣。
另一方面,如圖3中(B)所示,於n字長之Zp表現之代碼C=(c0 ,c2 ,...,cn-1 )中,h與p之間成立有cj <p<2h 之關係的情形時,並不利用h位元之所有位元式樣。
其次,考慮資料D與代碼C以1對1對應之轉換,此係相當於自2h 進數向p進數之表現之轉換。研究該轉換之條件而限定質數p之若干選擇條件。
作為第1個條件,對將二進制之資料D作為δ位之2h 進數處理之條件進行說明。
將批次處理之二進制之資料D之位元數設為M=δh。該情形時,D中h位元之組有δ個。若該等各組表示2h 進數之各位,則D可看做δ位之2h 進數。
即,M位元之資料D之所有位元式樣可考慮此種δ位數之表示。將該表示轉換為Zp之要素而可構成李度量碼。即,將δ位之2h 進數轉換為p進數,而將p進數之各位之數設為Zp之資料。
因此,對最適於該轉換之p進行研究。
作為自2h 進數向p進數之轉換之不變量,係使用包含M位元且每位能以h位元表示之δ位之2h 進數的整數D(h)。即,D(h)可如數1般表示。
[數1]
D(h)=d0 (2h )0 +d1 (2h )1 +Λ+dδ-3 (2h )δ-3 +dδ-2 (2h )δ-2 +dδ-1 (2h )δ-1
0<dδ-1 <2h ,0dj <2h
數1中,d0 、d1 、...、dδ-3 、dδ-2 、dδ-1 係h位元之群組表示之資料。
此處,將以D(h)之形式能夠表現之數之最大數、最小數設為p進數的情形時,發現以h位元之二進制表現各位之數之表示的p。作為此時之條件,係將2h 進數轉換為p進數時之位數之增加量設為最大1位。即,設為p進數後之位數設為最大δ+1位。
又,D(h)於h位元之群組之二進制表示設為a0 、a1 、...、aδ-2 、aδ-1 、aδ 時,可如數2般表示。
[數2]
D(h)=a0 (p)0 +a1 (p)1 +Λ+aδ-2 (p)δ-2 +aδ-1 (p)δ-1 +aδ (p)δ
aδ +aδ-1 ≠0,0aj <p
此處,求出能夠普遍構成D(h)之形式之δ與h之關係。即,即便為最低亦可由h之選擇而進行δ位之表現的D(h)之最小數Dmin (h)、最大數Dmax (h)係如數3般。
[數3]
Dmin (h)=(2h )δ-1 Θ dδ-1 =1,di =0
Dmax (h)=(2h )δ -1 Θ dδ-1 =di =2h -1
因此,最小數Dmin (h)-1變成δ-1位,故變得並非D(h)之形式。因此,若考慮h-1位元之群組、即以2h-1 進數能表現之最大數Dmax (h-1),於變成Dmin (h)-1≧Dmax (h-1)之情形時,D(h)之表現不會低於δ位。
即,D(h)於δ位之2h 進數表現以外不成立之δ與h之條件係如數4之關係。
[數4]
δh Θ(2h )δ-1 -1(2h-1 )δ -1
作為第2個條件,如數5所示,對資料D以δ+1位之p進數表現處理之條件進行說明。
[數5]
Dmax (h)(modpδ )≠Dmax (h)(modpδ+1 )=Dmax (h)(modpδ+2 )=Λ
∴ (p)δ (2h )δ -1<(p)δ+1
根據數5,可知均為整數,故資料D以δ+1位之p進數表現處理之條件係如數6般。
[數6]
(p)δ <(2h )δ ^(2h )δ (p)δ+1
即,可如數7般表現。
[數7]
(2h )δ/(δ+1) p<2h
進而,δ/(δ+1)=(1-1/δ)/(1-(1/δ)2 )>1-1/δ>1-1/h(h≦δ)及p為質數,故質數p之選擇條件係如數8般。
[數8]
2h-1 <p<2h
而且,此時對於δ位之p進數之最小值pδ-1 而言,
[數9]
pδ-1 <(2h )δ-1 =Dmin (h)
成立,故p進數轉換後之資料D不會變成δ-1位。
以上,若以數8所示之條件選擇質數p,則可將2h 進數轉換為p進數時位數之增加控制為最大1。
其次,對作為資料而自等價之「binary world」之δ位之2h 進數D(d0 ,d1 ,...,dδ-1 )轉換為「p-adic Zp world」之δ+1位之p進數D(a0 ,a1 ,...,aδ-1 ,aδ )的原理進行說明。
首先,關注h位元之2進數而將其設為數A。數A係如數10般。
[數10]
A=d0 20 +d1 20 +d1 21 +Λ+dh-3 2h-3 +dh-2 2h-2 +dh-1 2h-1
又,h位元之質數p之選擇條件係如數8所示。
此處,若設dh-1 =1,則變成2h-1 ≦A<2h ,故如數11之關係成立。
[數11]
2h-1 -2h =-2h-1 <A-p<2h -2h-1 =2h-1
於數11中,0≦A-p之情形時,餘數之2h-1 之係數變成0,故餘數變成h-1位元之Zp之數。
又,若設dh-1 =0,則A<p,故A變成Zp之數自身。因此,自A-p<0變成A-p≦-1,進而變成(2A+1)-2p≦-1。
即,h位元之2進數中,根據數8所示之質數p之選擇條件,p最多僅含有一個。進而,餘數等之Zp之數即便設為2倍而補足1,p亦最多僅含有一個。因此,若重複自h+1位元之二進制減去p之操作而計數p之減去數,亦可直接獲得所含之p之個數之二進制表現。
圖4係表示自二進制向p進數之轉換過程之一部分的圖,其係求出p進數之權重p0 之位(最下位)之係數的計算過程。
二進制之A可以圖4中之式E1(=C0 20 +C1 21 +...+Ch-1 2h-1 +Ch 2h +...+Cj-h 2j-h +Cj-h+1 2j-h+1 +...+Cj-1 2j-1 +Cj 2j )表示。
首先,如圖4中S1表示,將式E1中距離持有2j 之權重之最上位之位h位、即與持有2j-h+1 ~2j 之權重之位對應的式E2(=Cj-h+1 2j-h+1 +...+Cj-1 2j-1 +Cj 2j )除以p2j-h+1 ,而求出商Ck+1 j-h+1 及餘數(Rk 0 +...+Rk h-2 2h-2 +Rk h-1 2h-1 )2j-h+1
繼而,如圖4中S2所示,將式E2除以p2j-h+1 之餘數、及式E1中與持有2j-h 之權重之位對應之項Cj-h 2j-h 相加而成的式E3(=(Cj-h +2(Rk 0 +...+Rk h-2 2h-2 +Rk h-1 2h-1 ))2j-h )除以p2j-h ,而求出商Ck+1 j-h 及餘數(Rk-1 0 +...+Rk-1 h-2 2h-2 +Rk-1 h-1 2h-1 )2j-h
之後,將與圖4中S2相同之計算一面移位一面重複,最後將式E4(=C0 20 +2(R1 0 +...R1 h-2 2h-2 +R1 2h-1 ))20 )除以p20 ,而求出商Ck+1 及餘數(R0 0 +...+R0 h-2 2h-2 +R0 h-1 2h-1 )20
藉由該等一系列計算,質數p之總數可自2之冪之最上位起如Ck+1 j-h+1 2j-h+1 、Ck+1 j-h 2j-h 、...般求出。此處,須注意質數p之個數之最上位變成對於原本之式E1之最上位2j 而言指數小h-1之2j-h+1 。即,當獲得h位元之p進數之係數時,質數p之總數之二進制表現並非以h位減少,而是以h-1位減少。求出最終所得之p20 之係數Ck+1 0 時之餘數(R0 0 +R0 1 2+...+R0 h-2 2h-2 +R0 h-1 2h-1 )20 為Zp之數,變成p進數之權重p0 位之係數。
進而,將以上之計算步驟所得之p之個數之二進制表現之Ck+1 m 作為新的資料,重複與圖4相同之計算步驟時,而獲得p進數之權重p1 位之係數Rh 0 +Rh 1 2+...+Rh h-2 2h-2 +Rh h-1 2h-1
之後,藉由重複相同之計算步驟而可依序求出p進數之各位之係數。
即,可知進行二進制資料所含之質數p之枚舉之電路係藉由將求出h+1位元之二進制之資料除以質數p所得之餘數的電路設為符梯狀而構成。
圖5係模式性表示自「binary world」之δ位之2h 進數D(d0 ,d1 ,...,dδ-1 )向「p-adic Zp mod p world」之δ+1位之p進數D(a0 ,a1 ,...,aδ-1 ,aδ )之轉換計算之過程之構成的圖。
再者,圖5所示之「h res」表示之四角係將輸入之二進制資料除以質數p而求出商與餘數之運算電路。該運算電路之輸入係h+1位元之二進制資料,輸出係該二進制資料除以質數p所得之餘數。又,於輸入之二進制資料為質數p以上之情形時,將商作為進位C而輸出。以下,將該運算電路元件稱為「h res」電路區塊。
首先,於第0步驟(圖5中S0)中,相對於δ位之2h 進數之資料D(d0 ,d1 ,...,dδ-1 ),自最右側之dδ-1 側起進行質數p之枚舉。此處,對於dδ-1 而言,向輸入至「h res」電路區塊之h+1位元之二進制資料之最上位位元置入0,直接生成dδ-1 除以質數p所得之餘數同時直接生成作為商之進位C1 h(δ-1)
繼而,藉由將第h~1位元設為前一「h res」電路區塊之輸出(以h位元表現之餘數)、第0位元(最下位位元)為dδ-2 之最上位位元Dδ-2 h-1 (=Dh(δ-2)-1 )即h+1位元之二進制資料作為輸入的下一h res電路,作成所輸入之二進制資料除以質數p所得之餘數同時作成作為商的進位C1 h(δ-1)-1
之後,直至輸入至「h res」電路區塊之h+1位元之二進制資料中第0位元變成d0 之最下位位元D0 0 (=D0 )為止,使用h(δ-1)+1個「h res」電路區塊而生成進位C1 0 ~C1 h(δ-1) 。藉由該等生成之進位C1 0 ~C1 h(δ-1) 而表現之二進制資料變成資料D所含之質數p之個數。
並且,以d0 為輸入之「h res」電路區塊之輸出變成δ+1位之p進數D(a0 ,a1 ,...,aδ-1 ,aδ )中之a0 之二進制表示。
繼而,於第1步驟(圖5中S1)中,對於由第0步驟所得之資料D包含之質數p之個數,計算進而包含多少質數p而求出p2 之個數,從而求出p進數D之權重p1 位之係數a1 之二進制。
於第1步驟中,相對於進位C1 0 ~C1 h(δ-1) 而言自最右側之C1 h(δ-1) 側起進行質數p之枚舉。對進位C1 h(δ-2)+1 ~C1 h(δ-1) 進行質數p之枚舉時,向h+1位元之輸入二進制資料之最上位位元置入0,直接生成輸入二進制資料除以質數p所得之餘數同時直接生成進位C2 h(δ-2)+1
繼而,藉由第h~1位元為前一「h res」電路區塊之輸出(以h位元表現之餘數)、第0位元(最下位位元)為C1 h(δ-2) 之h+1位元之二進制資料作為輸入的下一「h res」電路區塊,生成輸入之二進制資料除以質數p所得之餘數同時生成作為商之進位C2 h(δ-2)
之後,直至輸入至「h res」電路區塊之h+1位元之二進制資料中之第0位元變成C1 0 ~C1 h(δ-1) 之最下位位元C1 0 為止,使用h(δ-2)+1個「h res」電路區塊而生成進位C2 0 ~C2 h(δ-2)+1 。藉由該等生成之進位C2 0 ~C2 h(δ-2)+1 表現之二進制資料變成資料D所含之質數p2 之個數。
並且,以C1 0 為輸入之「h res」電路區塊之輸出變成δ+1位之p進數D(a0 ,a1 ,...,aδ-1 ,aδ )中之a1 之二進制。
繼而,於第2步驟(圖5中S2)中,對於第1步驟所得之資料D中包含之p2 之個數,進而計算包含多少質數p而求出p3 之個數,從而求出p進數D之權重p2 位之係數a2 之二進制。
之後,以同樣之方式進行至求出p進數之權重pδ 位之係數aδ 之二進制表示的第δ-1步驟(圖5中Sδ-1)為止。
再者,步驟Sδ-1之進位Cδ+1 0 ~Cδ+1 δ-h 並不用於計算。
其次,對圖5所示之「h res」電路區塊之「h+1 bit mod p」電路區塊(加算電路)進行具體說明。
圖6係「h+1 bit mod p」電路區塊之電路記號。「h+1 bit mod p」電路區塊輸入h+1位元之二進制A0 ~Ah ,輸出h位元之二進制Q0 ~Qh-1 及進位PF0。
「h+1 bit mod p」電路區塊輸出輸入二進制A之質數p之餘數Q,並且當輸入二進制A為p以上時自PF0而輸出'1',當未達p時自PF0輸出'0'。
此處,考慮h=7、p=79之情形。該情形時,於二進制A、二進制Q、質數p之間成立有數12所示之關係。
[數12]
a=A0 +A1 2+A2 22 +A3 23 +A4 24 +A5 25 +A6 26 +A7 27
Q≡a(mod p)(a=Q+PF0×p)
Q=Q0 +Q1 2+Q2 22 +Q3 23 +Q4 24 +Q5 25 +Q6 26
圖7係設h=7、p=79時之「h+1 bit mod p」電路區塊之電路圖。
「h+1 bit mod p」電路區塊包含PF0生成部U1、5個半加算器(Half adder)HA1~HA5、及2個全加算器(Full adder)FA1、FA2。
PF0生成部U1於供給有特定電壓之Vcc端子、與供給有接地電壓之Vss端子之間包含串列連接之PMOS電晶體QP1~QP4、及NMOS電晶體QN1~QN5。該等電晶體QP1、QP2、QP3、QP4、QN1、QN2、QN3、QN4、及QN5分別係由A0 、A4 、A5 、A7 、A0 、A1 、A2 、A3 、及A6 控制。
又,PF0生成部U1此外還包含5個PMOS電晶體QP5~QP9、3個NMOS電晶體QN6~QN8、及反相器IV1。
電晶體QP5~QP8分別係連接於電晶體QP1之源極及汲極間。又,電晶體QP9係連接於電晶體QP1之源極及電晶體QP3之汲極間。電晶體QP5、QP6、QP7、QP8、及QP9分別係由A1 、A2 、A3 、A4 、及A6控制。
電晶體QN6、QN7分別係連接於電晶體QN1之源極及電晶體QN4之汲極間。又,電晶體QN8係連接於電晶體QN1之源極及電晶體QN5之汲極(Vss端子)間。電晶體QN6、QN7、及QN8分別係由A4 、A5 、及A7 控制。
反相器IV1之輸入係連接於電晶體QP4與QN1之連接點上。該反相器IV1之輸出變成進位PF0。
半加算器HA1之輸入為A0 及PF0、輸出為Q0 、進位輸出為C0。半加算器HA2之輸入為C0及A1 、輸出為Q1 、進位輸出為C1。半加算器HA3之輸入為C1及A2 、輸出為Q2 、進位輸出為C2。半加算器HA4之輸入為C2及A3 、輸出為Q3 、進位輸出為C3。全加算器FA1之輸入為C3及A4 、進位輸入為PF0、輸出為Q4 、進位輸出為C4。全加算器FA2之輸入為C4及A5 、進位輸入為PF0、輸出為Q5 、進位輸出為C5。半加算器HA5之輸入為C5及A6 、輸出為Q6
藉由以上之構成,PF0生成部U1判斷輸入至「h+1 bit mod p」電路區塊之二進制A是否為p=79以上,並自PF0輸出其結果。於二進制A為p=79以上之情形時,為自二進制A引出79而藉由半加算器HA111~HA115、及全加算器FA111~FA112,向二進制A中添加作為8位元二進制之79之補數的49。
其次,對進行「h+1 bit mod p」電路區塊所使用之2進數之加算的基本單位之全加算器FA及半加算器HA進行說明。
全加算器FA如圖8所示持有輸入A、B、進位輸入Cin、輸出Sout、及進位輸出Cout。
全加算器FA如圖9所示包含XOR(互斥或)電路、XNOR(否定互斥或)電路、輸出電路U1、及進位輸出電路U2。
XOR電路包含串列連接於輸入A及B間之PNOS電晶體QP1及QP2、以及串列連接於該等電晶體QP1及QP2間之節點n1及Vss端子間的NMOS電晶體QN1及QN2。其中電晶體QP2及QN1之閘極係連接於輸入A。又,電晶體QP1及QN2之閘極係連接於輸入B。藉由該構成,節點n1變成XOR電路之輸出。
XNOR電路包含串列連接於輸入A及B間之NMOS電晶體QN3及QN4、以及串列連接於該等電晶體QN3及QN4間之節點n2與Vcc端子之間的PMOS電晶體QP3及QP4。其中電晶體QN4及QP3之閘極係連接於輸入A。又,電晶體QN3及QP4之閘極係連接於輸入B。藉由該構成,節點n2變成XNOR電路之輸出。
輸出電路U1包含連接於進位輸入Cin及輸出Sout間之PMOS電晶體QP5、及同樣連接之NMOS電晶體QN5、連接於節點n2及輸出Sout間的NMOS電晶體QN6、以及連接於節點n1及輸出Sout間之PMOS電晶體QP6。其中電晶體QP5之閘極係連接於作為XOR電路之輸出之節點n1。電晶體QN5之閘極係連接於作為XNOR電路之輸出的節點n2上。電晶體QN6及QP6之閘極係連接於進位輸出Cin上。又,輸出電路U1於節點n1及Vss端子間包含NMOS電晶體QN7。電晶體QN7之閘極係連接於XNOR電路之輸出的節點n2上。
進位輸出電路U2包含連接於進位輸入Cin及進位輸出Cout間之PMOS電晶體QP7、及同樣連接之NMOS電晶體QN8、連接於輸入B及進位輸出Cout間的PMOS電晶體QP8、以及同樣連接之NMOS電晶體QN9。其中電晶體QP7及QN9之閘極係連接於作為XNOR電路之輸出之節點n2上。電晶體QN8及QP8之閘極係連接於作為XOR電路之輸出的節點n1上。又,進位輸出電路U2包含連接於Vcc端子與節點n2之間之NMOS電晶體QN10。電晶體QN10之閘極係經由反相器而連接於作為XOR電路之輸出的節點n1上。
藉由以上之構成,全加算器FA藉由XOR電路及XNOR電路而對輸入A及輸入B進行邏輯運算,進而,將該結果及進位輸入Cin輸入至輸出電路U1及進位輸出電路U2,從而生成輸出Sout及進位輸出Cout。
半加算器HA如圖10所示持有輸入A、B、輸出Sout、及進位輸出Cout。
半加算器HA如圖11所示可由一般之邏輯閘極及反相器構成。具體而言,可藉由以輸入A及輸入B為輸入之NAND閘極G1、以輸入A及輸入B為輸入之OR閘極G2、以NAND閘極G1之輸出及OR閘極G2之輸出為輸入的NAND閘極G3、以NAND閘極G1之輸出為輸入之反相器IV1、以及以NAND閘極G3之輸出為輸入的反相器IV2構成。藉由該構成,反相器IV1之輸出變成進位輸出Cout、反相器IV2之輸出變成輸出Sout。
其次,考慮使用「h+1 bit mod p」電路區塊之「binary to p-adic」轉換運算電路之構成。
圖12中(A)係使用「h+1 bit mod p」電路區塊而構成「binary to p-adic」轉換運算電路之第k步驟之電路者。
此處,將資料為δ位之2h 進數表現時之第j位設為dj 。該情形時,dj 可以h位元之二進制表示,但為將該表示之係數D與其他d之係數D予以區別,而如數13所示般使用子指數。
[數13]
dj =Dj 0 +Dj 1 2+Dj 2 22 +Λ+Dj h-3 2h-3 +Dj h-2 2h-2 +Dj h-1 2h-1
dj (2h )j =Dhj 2hj +Dhj+1 2hj+1 +Λ+Dh(j+1)-2 2h(j+1)-2 +Dh(j+1)-1 2h(j+1)-1
又,作為第k步驟之運算之輸入的前步驟(第k-1步驟)之進位為Ck 0 ~Ck h(δ-k)+k-1 ,變成作為子指數之2之冪之2進數的係數,藉由該2進數所表現之數變成資料包含之pk 之個數。
第k步驟中,如圖12中(A)所示,輸入為h(δ-k)+k個二進制(進位Ck 0 ~Ck h(δ-k)+k-1 ),其係由h(δ-(k+1))+k+1個「h+1 bit mod p」電路區塊接收。
第1個「h+1 bit mod p」電路區塊<1>向輸入二進制A0 ~Ah-1 、Ah 中分別輸入Ck h(δ-k)+k-h ~Ck h(δ-k)+k-1 、0,自輸出Q0 ~Qh-1 、進位PF0分別輸出Rh(δ-(k+1))+k 0 ~Rh(δ-(k+1))+k h-1 、Ck+1 h(δ-(k+1))+k
未圖示之第2個「h+1 bit mod p」電路區塊<2>向輸入二進制A1 ~Ah 、及A0 中分別輸入第1個「h+1 bit mod p」電路區塊<1>之輸出Rh(δ-(k+1))+k 0 ~Rh(δ-(k+1))+k h-1 、及進位Ck h(δ-(k+1))+k-1 ,自輸出Q0 ~Qh-1 、及進位PF0分別輸出Rh(δ-(k+1))+k-1 0 ~Rh(δ-(k+1))+k-1 h-1 、及Ck+1 h(δ-(k+1))+k-1
之後,如圖12中(A)所示,持有相同輸入輸出之「h+1 bit mod p」電路區塊中,合計h(δ-(k+1))+k+1個排列、自各「h+1 bit mod p」電路區塊輸出之進位Ck+1 0 ~Ck+1 h(δ-(k+1))+k 變成作為下一步驟的第k+1步驟之輸入。
如此,自二進制向p進數之轉換係如圖12中(B)所示之模式圖般自進位C之最上位位元側起依序執行。
圖12中(A)係與第k步驟相關之電路構成,藉由將各步驟分時處理而可於各步驟中重複使用圖12中(A)所示之電路構成。該情形時,為了可藉由單純之接通/斷開而控制各「h+1 bit mod p」電路區塊之輸入輸出,而於「h+1 bit mod p」電路區塊之必要數最大之第0步驟之電路構成中進而附加有δ個「h+1 bit mod p」電路區塊。
將包含以此方式構成之h(δ-1)+δ+1個「h+1 bit mod p」電路區塊的電路稱為「X to p」電路區塊。
如圖13所示,該「X to p」電路區塊之輸入較圖12中(A)中設k=0時多δ個,變成C0 0 ~C0 hδ+δ-1 之合計(h+1)δ個。又,輸出變成h個「h+1 bit mod p」電路區塊輸出之δ+1個h位元之二進制R0 0 ~R0 h-1 、Rh 0 ~Rh h-1 、...、Rh(δ-1) 0 ~Rh(δ-1) h-1 、R 0 ~R h-1 、以及作為下一步驟之輸入的hδ+δ-h個進位C1 0 ~C1h (δ-1)+δ
其次,對作為「binary to p-adic」轉換運算電路之核心部分之「p-adic」電路區塊進行說明。
圖14係表示「p-adic」電路區塊之電路記號之圖。
「p-adic」電路區塊如圖14所示輸入B0 ~Bδ+1 、I0 ~Ihδ+δ-1 ,輸出r0 ~rhδ+δ-1
圖15係「p-adic」電路區塊之方塊圖。「p-adic」電路區塊構成為以1步驟之電路構成作為「X to p」電路區塊,並於其上附加控制「X to p」電路區塊之輸入輸出的控制開關SW。
具體而言,輸入I0 ~Ihδ+δ-1 分別係經由控制開關SW1而作為C0 0 ~C0 hδ+δ-1 輸入至「X to p」電路區塊。該等δ群組之控制開關SW1分別係藉由輸入/B1 ~/Bδ ('/'表示否定)而控制。
1個控制開關SW1包含將輸入IN與輸出OUT連接之轉移電晶體TQ、及將輸出OUT降至接地電壓之NMOS電晶體QN。轉移電晶體TQ於控制信號為CNT='0'時接通,電晶體QN於控制信號為CNT='1'時接通。
於控制開關SW1之情形時,控制信號CNT變成/B1 ~/Bδ 。因此,於B='1'之情形時,I0 ~Ihδ+δ-1 直接作為C0 0 ~C0 hδ+δ-1 輸出,於B='0'之情形時,輸出變成'0'而不依賴於輸入。即便於「p-adic」電路區塊之輸入I0 ~Ihδ+δ-1 不穩定時,亦可避免「X to p」電路區塊之輸入變得不穩定。
輸入有C0 0 ~C0 hδ+δ-1 之「X to p」電路區塊如上所述輸出R0 0 ~R h-1 、C1 0 ~C1 hδ+δ-h
自「X to p」電路區塊輸出之C1 0 ~C1 hδ+δ-h 係經由控制開關SW2而變成作為「p-adic」電路區塊之輸出的rh ~rh(δ+1)+δ-h 。該等δ群組之控制開關SW2係藉由輸入/B1 ~/Bδ 而控制。因此,控制開關SW2於B='0'之情形時將C1 0 ~C1 hδ+δ-h 直接作為rh ~rh(δ+1)+δ-h 輸出。
又,自「X to p」電路區塊輸出之R0 0 ~R h-1 經由控制開關SW3而變成作為「p-adic」電路區塊之輸出的r0 ~rh(δ+1)-1 。該等δ群組之控制開關SW3分別係藉由B0 ^/B1 ~Bδ ^/Bδ+1 而控制。藉此,例如R0 0 及r0 間之控制開關SW3僅於B0 ='1'、B1 ='0'之情形時將R0 0 直接作為r0 輸出。
對控制開關SW進行控制之B1 ~Bδ+1 係時序信號,且係依序上升之信號。對應於此輸入I之匯流排自下位位元側起每隔h位元關閉,輸出r之匯流排與輸出R之匯流排進行切換。
相當於p進數之各位之係數A之R直至代入下一步驟之計算過程為止係輸出上述步驟之結果,故經由以與鄰接之時序信號B進行邏輯運算之信號而接通/斷開控制之控制開關SW3,被輸出至下述外部之「D-r」暫存器。
其次,對將上述電路彙總構成之「binary to p-adic」轉換運算電路進行說明。
圖16係「binary to p-adic」轉換運算電路之方塊圖。「binary to p-adic」轉換運算電路係於「p-adic」電路區塊上結合「D-r」暫存器而構成。
「D-r」暫存器如圖16所示係由時序信號B及時脈clk控制之暫存器,且持有輸入r0 ~rhδ+δ-1 、D0 ~Dhδ-1 、輸出I0 ~Ihδ+δ-1
圖17係「D-r」暫存器之電路圖。
「D-r」暫存器包含對應每個位元而具有2個反相器之正反器FF。該正反器FF中經由控制開關SW1而輸入有Dj (j=0~hδ-1),且經由控制開關SW2而輸入有rj 。另一方面,正反器FF之輸出側係經由控制開關SW3而連接於反相器IV1。該反相器IV1之輸出變成Ij
控制開關SW1~SW3係藉由時序信號B0 及時脈clk而控制。具體而言,控制開關SW1於/clk^/B0 ='1'之情形時接通,控制開關SW2於/clk^B0 ='1'之情形時接通,控制開關SW3於clk='1'之情形時接通。
再者,「D-r」暫存器之輸入中並無之D ~Dhδ+δ-1 係設為'0'。
「D-r」暫存器之初始狀態變成設定為二進制D0 ~Dhδ-1 ,剩餘以'0'嵌入之狀態。之後,與B0 上升及clk下降同步地取得資料rj ,與clk之上升同步而將取得之rj 作為Ij 輸出。
該「D-r」暫存器係與「p-adic」電路區塊結合而對應時序信號Bj 推進計算之步驟。各時脈之變化之情形係如圖18所示。自時脈clk作成時脈ck,進而作成時序信號Bj
各計算步驟中p進數之各位Aj 係自下位側起作為輸出r而獲得,且以與時序信號Bj 之後半之Ij 之取得相同之時序予以保持。
所有計算步驟結束後,「D-r」暫存器中保持由將p進數之資料D之各位之係數a轉換為二進制時之各位之係數Aj m
再者,與之後各種情形進行比較,於使用實用質數p之系統中計算步驟之數為10以下,「p-adic」電路區塊所含的「h+1 bit mod p」電路區塊之數為50以下。
[自Zp資料向二進制資料之轉換]
其次,將自作為資料而等價之「p-adic Zp world」之δ+1位之p進數D(a0 ,a1 ,...,aδ-1 ,aδ )向「binary world」之δ位之2h 進數D(d0 ,d1 ,...,dδ-1 )轉換的具體電路示於以下。
自p進數向2進數之轉換係如下作業,即對p進數所含之質數p之個數進行枚舉,並以其個數量不斷加算質數p之二進制表示。該作業中自p進數之最大之次數之位起將次數逐一減少而轉換為二進制,最終質數p之零次之二進制變成相同數之2進數。因此,可重複如下計算過程而進行處理,即自各h位元之計算獲得h+1位元,將其中之最下位位元分離,進行下一2之冪之次數的計算。
圖19係表示自p進數向二進制之轉換過程之一部分的圖。此處,作為已利用二進制表現p進數之資料所含之pn+1 之個數者,對使用p進數之權重pn 位之數之二進制表示獲得pn 之個數之二進制的過程進行說明。
資料所含之pn+1 之個數之二進制表現為C0 20 +C1 21 +...+Cj-1 2j-1 +Cj 2j +Cj+1 2j+1 +...之情形時,資料D之pn 之個數可如圖19中之式E1(=pn (A0 20 +A1 21 +...+Ah-1 2h-1 )+pn +1 (C0 20 +C1 21 +...+Cj-1 2j-1 +Cj 2j +Cj+1 2j+1 +...))般表示。此處,pn 之係數A0 20 +A1 21 +...+Ah-1 2h-1 變成p進數之權重pn 位之h位元表現。
首先,如圖19中S1所示,作為於h位元之二進制上加上質數p之運算,於式E1中之pn 之項pn (A0 20 +A1 21 +...+Ah-1 2h-1 )中加上pn+1 之項中與以二進制表現p進數之權重pn+1 之位時之最下位位元對應的pn+1 C0 20 之項,而生成式E2(=pn (A0 20 +A1 21 +...+Ah-1 2h-1 )+pn+1 C0 20 )。根據該式E2,獲得h+1位元之二進制表示pn (Ck 0 20 +Q1 1 21 +...+Q1 h-1 2h-1 +Q1 h 2h )。進而,為進行下一處理,而獲得自式E2中將式E2所含之pn 之個數之2進數表現之最下位之項pn Ck 0 20 分離而成之新的h位元之二進制pn 21 (Q1 1 20 +...+Q1 h-1 2h-2 +Q1 h 2h-1 )。
繼而,如圖19中S2所示,作為於h位元之二進制加上質數p之運算,而於圖19中S1所得之pn 21 (Q1 1 20 +...+Q1 h-1 2h-2 +Q1 h 2h-1 )上加上式E1中之pn+1 C1 21 之項,生成式E3(=pn 21 (Q1 1 20 +...+Q1 h-1 2h-2 +Q1 h 2h-1 )+pn+1 C1 21 )。根據該式E3,獲得h+1位元之二進制表示pn 21 (Ck 1 20 +Q2 1 21 +...+Q2 h-1 2h-1 +Q2 h 2h )。進而,為進行下一處理,而獲得自式E3中將式E3所含之pn 之個數之2進數表現之最下位之項pn Ck 1 21 分離而成的pn 22 (Q2 1 20 +...+Q2 h-1 2h-2 +C2 h 2h-1 )。
之後,與圖19中S2同樣地,獲得所有pn 之個數之二進制表現pn Ck j 2j 而結束該步驟之計算。
於該下一步驟中同樣地求出p進數之pn-1 之個數之二進制表現。
如上所述,於計算之過程中,係以h位元之二進制上加上質數p後之數變成h+1位元以下的方式選擇質數p。
h位元之二進制之數A可如數14般表示,故0≦A<2h 成立。
[數14]
A=a0 20 +a1 21 +Λ+ah-3 2h-3 +ah-2 2h-2 +ah-1 2h-1
又,h位元之質數p變成2h-1 <p<2h 之範圍。因此,如數15之關係成立。
[數15]
2h-1 <p+A<2h+1
數15表示即便於h位元之二進制上加上質數p,亦可自數8所示之質數p之選擇條件而以h+1位元以下之二進制表現。
因此,可知將資料自p進數轉換為二進制之「p-adic to binary」轉換運算電路可由輸入h位元、輸出h+1位元之加算電路之符梯構成。
圖20係模式性表示自「p-adic Zp world」之δ+1位之p進數D(a0 ,a1 ,...,aδ-1 ,aδ )向「binary world」之δ位之2h 進數D(d0 ,d1 ,...,dδ-1 )之轉換電路之構成的圖。
再者,圖20中「h+p」所示之四角係相對於輸入之h位元之資料,根據輸入的進位C而加上質數p,輸出h+1位元之二進制的運算電路。以下,將該電路稱為「h+p」電路區塊。
首先,於第0步驟(圖20中S0)中,相對於p進數之δ-1次位之二進制表示,將δ次位之二進制表示作為進位即pδ 之個數之二進制表現而進行上述計算。藉此,獲得進位C1 0 ~C1 h2-1 之2h位元作為pδ-1 之個數。該進位C1 0 ~C1 h2-1 變成下一第1步驟之輸入。
繼而,於第1步驟(圖20中S1)中,相對於p進數之δ-2次位之二進制表示,將第0步驟中所得之進位C1 0 ~C1 h2-1 作為pδ-1 之個數之二進制表現而進行上述計算。藉此,獲得進位C2 0 ~C2 h3-1 之3h位元作為pδ-2 之個數。該進位C2 0 ~C2 h3-1 變成下一第2步驟(圖20中S3)之輸入。
之後,重複與第0步驟及第1步驟相同之步驟,於第δ-1步驟中,相對於p進數表現之0次位之二進制表示,將之前的第δ-2步驟中所得之進位Cδ-1 0 ~Cδ-1 hδ-1 作為p之個數之二進制表現而進行上述計算,獲得進位Cδ 0 ~Cδ h(δ+1)-1 之h(δ+1)位元作為p0 之個數即D之2進數表現。其中,根據D之p進數及2h 進數之設定,上位之h位元為零。若將該等進位Cδ 0 ~Cδ h(δ+1)-1 去掉Cδ ~Cδ h(δ+1)-1 後之Cδ 0 ~Cδ hδ-1 對應每個h位元而彙總則可獲得D之二進制表現D(d0 ,d1 ,...,dδ-1 )。
其次,對作為圖20所示之「h+p」電路區塊之「h+1 bit add p」電路區塊進行具體說明。
圖21係「h+1 bit add p」電路區塊之電路記號。「h+1 bit add p」電路區塊輸入h位元之二進制B0 ~Bh-1 及1位元之進位(carry),輸出h+1位元之二進制Q0 ~Qh 。該「h+1 bit add p」電路區塊對於輸入B,若carry為'1'則加上質數p,並輸出其結果作為Q。
此處,考慮h=7、p=79之情形時之「h+1 bit add p」電路區塊。該情形時,二進制b、二進制Q、質數p之間成立有數16所示之關係。
[數16]
b=B0 +B1 2+B2 22 +B3 23 +B4 24 +B5 25 +B6 26
Q=b+carry×p
Q=Q0 +Q1 2+Q2 22 +Q3 23 +Q4 24 +Q5 25 +Q6 26 +Q7 27
圖22係h=7、p=79之情形時之「h+1 bit add p」電路區塊之電路圖。
「h+1 bit add p」電路區塊包含3個半加算器(Half Adder)HA1~HA3、及4個全加算器(Full Adder)FA1~FA4。
半加算器HA1之輸入為B0 及carry、輸出為Q0 、進位輸出為C0。全加算器FA1之輸入為B1 及carry、進位輸入為C0、輸出為Q1 、進位輸出為C1。全加算器FA2之輸入為B2 及carry、進位輸入為C1、輸出為Q2 、進位輸出為C2。全加算器FA3之輸入為B3 及carry、進位輸入為C2、輸出為Q3 、進位輸出為C3。半加算器HA2之輸入為B4 、進位輸入為C3、輸出為Q4 、進位輸出為C4。半加算器HA3之輸入為B5 、進位輸入為C4、輸出為Q5 、進位輸出為C5。全加算器FA4之輸入為B6 及carry、進位輸入為C5、輸出為Q6 、進位輸出為Q7。
藉由以上之構成,「p+1bitaddp」電路區塊若carry='1'則於輸入二進制B上加上p=79。
再者,對於全加算器FA及半加算器HA之電路構成而言,由於與圖9及圖11相同故而省略。
其次,考慮使用以上所說明之「h+1 bit add p」電路區塊之「p-adic to binary」轉換運算電路之構成。
圖23係使用「h+1 bit add p」電路區塊構成「p-adic to binary」轉換運算電路之第k步驟之電路構成者。
此處,資料為δ+1位之p進數表現之j次位之係數aj 可以h位元之二進制表現,但為將該二進制表現之係數A與其他係數a加以區別,而使用如數17所示之子指數。
[數17]
aj =Aj 0 +Aj 1 2+Aj 2 22 +Λ+Aj h-3 2h-3 +Aj h-2 2h-2 +Aj h-1 2h-1
aj (2h )j =Ahj 2hj +Ahj+1 2hj+1 +Λ+Ah(j+1)-2 2h(j+1)-2 +Ah(j+1)-1 2h(j+1)-1
又,作為第k步驟之運算之輸入的前步驟(第k-1步驟)之進位為Ck 0 ~Ck h(k+1)-1 ,變成作為子指數之2之冪之2進數的係數,該2進數所表現之數變成資料中包含之pδ-k 之個數。
第k步驟中,如圖23中(A)所示,藉由h(k+1)個「h+1 bit add p」電路區塊而進行處理。各「h+1 bit add p」電路區塊中輸入有1個進位(carry)、及表示p進數表現之1位之係數的h個二進制。
第1個「h+1 bit add p」電路區塊<1>向carry、輸入B0 ~Bh-1 分別輸入Ck 0 、Q-1 0 ~Q-1 h-1 ,向Q0 、Q1 ~Qh 分別輸出Ck+1 0 、Q0 0 ~Q0 h-1
未圖示之第2個「h+1 bit add p」電路區塊<2>向carry、輸入B0 ~Bh-1 分別輸入Ck 1 、Q0 0 ~Q0 h-1 ,向Q0 、Q1 ~Qh 分別輸出Ck+1 1 、Q1 0 ~Q1 h-1
之後,如圖23中(A)所示,持有相同輸入輸出之「h+1 bit add p」電路區塊中,自合計h(k+1)個排列、各「h+1 bit add p」電路區塊輸出之進位Ck+1 0 ~Ck+1 h(k+1)-1 變成作為下一步驟之第k+1步驟的輸入。
如此,自p進數向二進制之轉換係如圖23中(B)所示之模式圖般,自進位C之最下位位元側起依序執行。
圖23係如上所述與第k步驟相關之電路構成,藉由將各步驟分時處理而可於各步驟中重複使用圖23中(A)所示之電路構成。該情形時,為可藉由單純之接通/斷開控制各「h+1 bit add p」電路區塊之輸入輸出,將k=0時之h個「h+1 bit add p」電路區塊設為最小構成之電路區塊。
將包含以此方式構成之h個「h+1 bit add p」電路區塊之電路稱為「a to X」電路區塊。
如圖24所示,該「a to X」電路區塊之輸入變成Q-1 0 ~Q-1 h-1 及C0 0 ~C0 h-1 之2h個,輸出變成Qh-1 0 ~Qh-1 h-1 及C1 0 ~C1 h-1 之2h個。
其次,使用上述「a to X」電路區塊而構成用以使p進數之次數減少1之1個步驟之電路。以下,將該電路稱為p to X」電路區塊。該「p to X」電路區塊可於所有計算步驟中共通使用。
圖25係「p to X」電路區塊之電路記號。「p to X」電路區塊係由時序信號B1 ~Bδ-1 控制,自輸入之Q-1 0 ~Qh(δ-1)-1 h-1 、Cδ-1 0 ~Cδ-1 hδ-1 而輸出Cδ 0 ~Cδ h(δ+1)-1
圖26係「p to X」電路區塊之方塊圖。
「p to X」電路區塊包含δ個「a to X」電路區塊。
第1個「a to X」電路區塊<1>輸入作為「p to X」電路區塊之輸入之一部分的Q-1 0 ~Q-1 h-1 、及Cδ-1 0 ~Cδ-1 h-1 ,輸出作為Q'h-1 0 ~Q'h-1 h-1 、及「p to X」電路區塊之輸出之一部分的Cδ 0 ~Cδ h-1
第2個「a to X」電路區塊<2>輸入作為Qh-1 0 ~Qh-1 h-1 、及「p to X」電路區塊之輸入之一部分的Cδ-1 h ~Cδ-1 h2-1 ,輸出作為Q'h2-1 0 ~Q'h2-1 h-1 、及「p to X」電路區塊之輸出之一部分的Cδ h ~Cδ h2-1 。輸入中Qh-1 0 ~Qh-1 h-1 係經由時序信號Bδ-1 所控制之控制開關SW1而輸入第1個「a to X」電路區塊<1>之輸出Q'h-1 0 ~Q'h-1 h-1 的信號。
第3個「a to X」電路區塊<3>輸入作為Qh2-1 0 ~Qh2-1 h-1 、及「p to X」電路區塊之輸入之一部分的Cδ-1 h2 ~Cδ-1 h3-1 ,輸出作為Q'h3-1 0 ~Q'h3-1 h-1 、及「p to X」電路區塊之輸出之一部分的Cδ h2 ~Cδ h3-1 。輸入中Qh2-1 0 ~Qh2-1 h-1 係經由以時序信號Bδ-2 控制之控制開關SW2而輸入第2個「a to X」電路區塊之輸出Q'h2-1 0 ~Q'h2-1 h-1 的信號。
之後,直至第δ個「a to X」電路區塊<δ>為止以同樣之方式連接。
如此,以控制開關SW連接「a to X」電路區塊之輸入輸出間,係為了於計算步驟中將輸入之連接在外部輸入與內部輸入之間切換,於外部輸入之情形時為了使內部電路之輸出不干涉。
於圖26之電路構成之情形時,僅時序信號B0 為'1'之時序中,所有控制開關SW斷開,僅第1個「a to X」電路區塊活化。其係相當於第0步驟。
繼而,若時序信號B1 亦變成'1',則直至第2個「a to X」電路區塊為止活化。其係相當於第1步驟。
之後,每當時序信號B2 ~Bδ-1 依序上升時,將各步驟所需之「a to X」電路區塊不斷活化。
其次,對作為2h 進數轉換電路之核心部分之「binary」電路區塊進行說明。
圖27係「binary」電路區塊之電路記號。
「binary」電路區塊如圖27所示輸入B0 ~Bδ 、I0 ~Ih(δ+1)-1 、輸出r0 ~rh(δ+1)-1
圖28係「binary」電路區塊之方塊圖。「binary」電路區塊構成為以1步驟之電路構成作為「p to X」電路區塊,並於其上附加控制「p to X」電路區塊之輸入輸出的控制開關SW。
具體而言,輸入Ih ~Ih(δ-1)-1 分別係經由控制開關SW1而作為Cδ-1 0 ~Cδ-1 hδ-1 輸入至「p to X」電路區塊。該等δ個控制開關SW1分別係藉由時序信號B0 ~Bδ-1 而控制。因此,控制開關SW1於B='1'之情形時,Ih ~Ih(δ+1)-1 直接作為Cδ-1 0 ~Cδ-1 hδ-1 輸出,於B='1'之情形時輸出變成'0'而不依賴於輸入。
又,輸入I0 ~Ihδ-1 分別係經由控制開關SW2而作為Q-1 0 ~Qh(δ-1)-1 h-1 輸入至「p to X」電路區塊。該等δ個控制開關SW2分別係藉由Bδ Bδ-1 ~B1 B0 而控制。因此,例如I0 及Q-1 0 間之控制開關SW2僅於Bδ ='1'、Bδ-1 ='0'之情形時將I0 直接作為Q-1 0 輸出。
自「p to X」電路區塊輸出之Cδ 0 ~Cδ h(δ+1)-1 經由控制開關SW3而變成作為「binary」電路區塊之輸出的r0 ~rh(δ+1)-1 。該等控制開關SW3係藉由時序信號Bδ-1 ~B0 而控制。因此,控制開關SW3於B='1'之情形時將Cδ 0 ~Cδ h(δ+1)-1 直接作為r0 ~rh(δ+1)-1 輸出。
藉由以上之電路構成,「p to X」電路區塊一面將輸入及輸出之位寬對應每一h位元依序增加一面使其對應於各計算步驟。各計算步驟中依序自上位位數取得p進數位之數A,當所有計算步驟結束時所得者變成資料之二進制表現。
如上述般,時序信號B0 ~Bδ 係依序上升之信號。對應於此,輸入I與輸出r之匯流排係自上位位元側起對應每一h位元而不斷導通。
p進數之各位之數A於下述外部之「A-r」暫存器中初始設定,直至代入下一計算步驟為止,以選擇性切換匯流排之方式,經由與鄰接之時序信號B進行邏輯運算之信號而接通/斷開控制的控制開關SW3被輸出至「A-r」暫存器。
其次,對將上述電路彙總而構成之「p-adic to binary」轉換運算電路進行說明。
圖29係「p-adic to binary」轉換運算電路之方塊圖。「p-adic to binary」轉換運算電路係於「binary」電路區塊上結合「A-r」暫存器而構成。
「A-r」暫存器如圖29所示,係時序信號B0 及時脈clk所控制之暫存器,且持有輸入r0 ~rh(δ+1)-1 、A0 ~Ah(δ+1)-1 、輸出I0 ~Ih(δ+1)-1
圖30係「A-r」暫存器之電路圖。
「A-r」暫存器包含對應每一位元而具有2個反相器之正反器FF。該正反器FF中經由控制開關SW1而輸入有Aj (j=0~h(δ+1)-1),且經由控制開關SW2而輸入有rj 。另一方面,於正反器FF之輸出側經由控制開關SW3而連接有反相器IV1。該反相器IV1之輸出為Ij
控制開關SW1~SW3係藉由時序信號B0 及時脈clk而控制。具體而言,控制開關SW1於/clk∧/B0='1'之情形時接通,控制開關SW2於/clk∧B0='1'之情形時接通,控制開關SW3於clk='1'之情形時接通。
「A-r」暫存器之初始狀態為p進數之位Ao ~Ah(δ+1)-1
之後,將與時序信號B0 上升及時脈clk之下降同步而取得之rj 與時脈clk上升同步地作為Ij 輸出。
該「A-r」暫存器係與「binary」電路區塊結合而對應每一時序信號Bj 推進計算步驟。各時脈之變化之情形係與圖18相同。自時脈clk作成ck,進而作成時序信號Bj
所有計算步驟結束時於「A-r」暫存器中保持有作為輸入之p進數A之二進制表現Dj。
再者,與之後各種情形進行比較,於使用實用質數p之系統中計算步驟之數為10以下,「binary」電路區塊所含之「h+1 bit add p」電路區塊之數為50以下。
[時序信號產生電路]
其次,對產生分時控制「binary to p-adic」轉換運算電路、「p-adic to binary」轉換運算電路之時脈等的時序信號產生電路進行說明。
首先,對時序信號產生電路之動作概念進行說明。
時序信號產生電路係將下述單位電路依序連接而構成之電路,藉由該單位電路數而可產生必要最小限之步驟數。
圖31係該時序信號產生電路之動作概念圖。
時序信號產生電路使單位電路之狀態為'1'之狀態於時脈ck位移,自'1'狀態與'0'狀態之邊界而產生時序信號B。
自時脈clk起根據其上升而切換之時脈ck及/ck係藉由圖32所示之正反器電路FF生成。即,正反器電路FF包含以/ck及clk為輸入之NAND閘極G1、以ck及clk為輸入之NAND閘極G2、以NAND閘極G1之輸出為一方之輸入的NAND閘極G3、以及以NAND閘極G2之輸出為一方之輸入的NAND閘極G4。NAND閘極G3之他方之輸入、及NAND閘極G4之他方之輸入係分別連接於NAND閘極G4之輸出、及NAND閘極G3之輸出。
如圖31所示,每當時脈ck變化時,正反器電路FF之邊界向右移動,若到達右端則反射而向左移動。並且,若正反器電路FF之邊界到達左端則反射而向右移動。之後,重複向右之邊界移動、向左之邊界移動。藉由此種動作,於將正反器電路FF之邊界作為時序信號B之輸出的情形時,如圖18所示,每隔時脈ck之週期偏移而生成上升之時序信號B。
繼而,於圖33中說明時序信號產生電路區塊之詳細電路構成的一例。
時序信號產生電路區塊包含自單位電路間之節點n所輸出之邊界信號b0~bm而生成時序信號B0 ~B2m+2 的時序信號生成部U1、將單位電路連接而成之邊界信號生成部U2、及生成決定單位電路之狀態之移動方向之信號R及L的移動方向生成部U3。
時序信號生成部U1包含分別輸入L及bj(j=0~m)且輸出Bj 之m+1個OR閘極G1、分別輸入R及bj且輸出Bk (k=2m+1~m+1)的m+1個NOR閘極G2。
如圖33所示,邊界信號生成部U2係藉由複數個單位電路而構成。
各單位電路U4係由2個經交叉耦合之反相器、以及用以將單位電路U4之狀態傳送至鄰接之單位電路U4的6個NMOS電晶體而構成。
具體而言,例如,第1個單位電路U4<1>包含經交叉耦合之反相器IV1及IV2。
其中,反相器IV1之輸出節點及Vss端子間具有串列連接之3個NMOS電晶體QN1~QN3。該等電晶體QN1、QN2、QN3分別係由'H'(始終接通)、信號R、時脈ck而控制。
另一方面,反相器IV2之輸出節點及Vss端子間具有串列連接之3個NMOS電晶體QN4~QN6。該等電晶體QN4、QN5、QN6分別係由鄰接之單位電路U4<2>之反相器IV3之輸出、信號L、時脈ck而控制。
又,第2個單位電路U4<2>包含經交叉耦合之反相器IV3及IV4。
其中,反相器IV3之輸出節點及Vss端子間具有串列連接之3個NMOS電晶體QN7~QN9。該等電晶體QN7、QN8、QN9分別係由鄰接之單位電路U4<1>之反相器IV2之輸出、信號L、時脈/ck而控制。
另一方面,反相器IV4之輸出節點及Vss端子間具有串列連接之3個NMOS電晶體QNa~QNc。該等電晶體QNa、QNb、QNc分別係由鄰接之第3個單位電路U4<3>之反相器IV5之輸出、信號L、時脈/ck而控制。
之後,變成將與第1個單元電路U4<1>及第2個單元電路U4<2>相同之單位電路U4交替連接而成的構成。
藉由該構成各單位電路U4間之各節點n變成邊界信號b0~bm。又,最初之反相器IV1之輸出變為信號F、最後之反相器IVa之輸出變為信號C。
如圖33所示,移動方向生成部U3係由正反器電路FF構成。即,移動方向生成部U3包含以F及/ck為輸入之NAND閘極G3、以C及/ck為輸入之NAND閘極G4、以NAND閘極G3之輸出為一方之輸入的NAND閘極G5、以及以NAND閘極G144之輸出為一方之輸入的NAND閘極G146。NAND閘極G5之他方之輸入、及NAND閘極G6之他方之輸入係分別連接於NAND閘極G5之輸出、及NAND閘極G6之輸出。
移動方向生成部U3產生根據邊界信號生成部U2之兩端之節點n0、nm之信號F及C而決定狀態之移動方向的信號R及L。
藉由以上說明之電路,而可構成使「binary world」與「p-adic Zp world」之間往來之通道。
[李度量碼之概要]
其次,對「p-adic Zp world」之資料處理進行說明。此處,構成代碼之各位係稱為「碼字符號」。
碼字符號c為數18所示之整數。
[數18]
cGF(p)=Zp,0c<p
將該等整數之李度量設為|c|,將所有李度量|c|設為p/2以下之整數,則李度量|c|之定義係如數19般。
[數19]
代碼C認為係n=p-1個碼字符號c之排列,故如圖1亦所示般可以C=(c1 ,c2 ,...,cn )表示,代碼C之計量w(C)係如數20般定義為各碼字符號c之李度量|c|之和。
[數20]
w(C)=|c1 |+|c2 |+Λ+|cn |
又,代碼間之距離係以對應於代碼之各碼字符號之差之李度量之和而定義。此處2個代碼C與Y之差(李距離)dL (C,Y)係如數21般。
[數21]
dL (C,Y)=w(C-Y)
進而,代碼C之最小李距離係如數22所示般以代碼C之計量w(C)之最小之計量而定義。
[數22]
dL (C)=min w(C)
此時,李度量碼係持有數23所示之生成矩陣G及徵候群矩陣H之代碼間之最小距離為2γ、且可進行γ-1以下之李度量之錯誤校正的代碼。
[數23]
此處,若將代碼C之符號數設為n、資料字D之符號數設為k,則γ=n-k,γ表示代碼C所含之冗餘之符號數。
將為作成以此方式構成之李度量碼而經輸入轉換之資料之k位數之p進數位之數作為Zp之數,將其作為李度量碼之資料字X,而自G矩陣獲得代碼表現運算C=XG。將所得之碼字儲存於記憶體。所儲存之Zp之數產生之錯誤之資訊作為自記憶體讀出之李度量碼之資料字Y,自運算S=YHt (Ht 為H之轉置矩陣)獲得徵候群,而可計算錯誤之位置及量從而可校正錯誤。
其次,為表示最佳者作為儲存李度量碼之記憶體單元而對李度量碼出現之量之間之條件關係進行總結。
若使用Zp之李度量碼,則「binary world」中為2h 進數δ位之資料,故將代碼之字長設為n、即C=(c1 ,c2 ,...,cn )、資料之字長設為k、可校正之錯誤之李度量之最大值設為ε=γ-1時,可相對於δ+1個代碼資料而作成如數24之代碼。
[數24]
n=p-1,dL (C)2γ,k=n-γ,k=κ+δ+1
即,k=δ+1係相當於李度量碼中之資料之字長。
質數p之選擇係以δ+1=k之方式決定,進而根據k=n-γ=p-1-ε-1=p-ε-2,數25為質數p應具備之條件。
[數25]
δ+ε+3=p
此處,若總結質數p之條件,則將可校正之錯誤之李度量之總量設為ε、將「binary world」中之ECC批次處理資料位元數設為M時,M及p之選擇條件根據δh=M及數25而變成數26。
[數26]
2h-1 <p<2h I M=h(p-ε-3)
此時,作為Zp上之代碼,與資料之冗餘字長為γ=ε+1=n-k=n-(δ+1),故「binary world」之資料之2h 進數之位數δ、與「p-adic Zp world」之碼字數n之間,如數27之關係成立。
[數27]
n-δ=γ+1=ε+2
[p-adic單元]
其次,對「p-adic Zp world」中儲存李度量碼C=(c1 ,c2 ,...,cn )之各代碼cj 的記憶體單元進行說明。
一個可設定複數個值之物理量之記憶體單元中,使該量物理地依序形成集合之記憶體單元對應於Zp之表現時,將該記憶體單元稱為「p-adic單元」。
作為p-adic單元,具體而言只要為使用MOS電晶體之複數個閾值作為物理量之記憶體單元、使用可變電阻體之複數個電阻值作為物理量的記憶體單元、使用所保持之磁通量子之數作為物理量之記憶體單元、使用被捕獲之電荷量作為物理量的記憶體單元等可將某個物理量作為量設定之順序集合之一個要素而保持的記憶體單元便可。以下,將物理量之順序稱為「位準」。
對此種記憶體單元進行位準及Zp之要素之分配的記憶體單元為p-adic單元。
圖34表示向p-adic單元之Zp之分配例。該例係對一個記憶體單元設定與Zp之表現之數相同之位準而分配位準與表現者。即,作為單元組件之p-adic單元係由1個記憶體單元構成。
圖34中a~f係表示質數p分別為7、11、13、17、19、23之情形時之例。劃分為分別區分為p個之物理量之順序之區分,而將各個區分分配給Zp。
記憶體單元之錯誤係於順序接近之位準間發生誤動作之可能性較高者,故李度量接近者與位準之順序接近者成比例,必然地作為物理量之位準之順序與作為Zp之表現之順序一致。Zp之順序為巡迴,故對於1個記憶體單元之順序之分配方法存在p種。圖34所示者係將最低位準分配為0之情形,只要保持Zp之李度量之順序之單元位準與Zp之表現對應,則亦可利用圖34所示之例以外之分配。又,即便每個記憶體單元之該分配方法不同,亦可維持自單元陣列外觀察李度量碼之一貫性。
圖34中a所示之p=7之情形係詳細表示位準變化帶來之李度量之變化。變化量設為dL=1、2、3,對應之位準之跳躍係以箭頭表示。任意對應之位準變化之情形時之數為p=7。
由於p為質數故與變化量之間互為素。又,注意李度量之變化量僅為(p-1)/2以下。Zp之順序為巡迴故dL=1或2時,如虛線所示之箭頭般,位準跳動較大之誤動作出現的可能性較低。
圖34中a~f中,作為李度量之變化量,於ε=(p-1)/4之情形及ε'=(p-1)/3之情形時,表示各p之代表性位準變化。作為該等李度量之變化,物理位準之誤動作對於任意質數p而言,ε與ε'時分別為大致相同之量。因此,若對於利用相同物理量之記憶體單元增大p則代碼之錯誤亦變大,可錯誤校正量亦需要增大。
其次,使用圖35對p-adic單元之讀出方法進行說明。
言語上之定義如下,即所謂「將偏壓區分而串行施加」,係指依照記憶體單元之位準而依序改變偏壓。
亦考慮使用ΔΣ調變等而直接感測單元位準之物理量,但此處係對使用亦考慮向記憶體單元之寫入及檢驗,將施加給記憶體單元之偏壓區分地串行施加而與參照物理量Iref進行比較,偵測哪一偏壓超過Iref之感測方式的例進行說明。
圖35係自p-adic單元之讀出動作所需之區塊構成。
圖35中表示由p-adic單元陣列狀排列而成之p-adic單元陣列、將自p-adic單元讀出之物理量與Iref進行比較之感測放大部t-SA、根據t-SA之結果而保持自p-adic單元讀出之資料的暫存器、將感測放大部t-SA與暫存器選擇性連接之「Zp→hdec」電路區塊、及包含列解碼/字元線驅動器的代碼讀出部。
於p-adic單元陣列中,對儲存Zp之資料A=(a1 ,a2 ,...,an )之各代碼aj 之p-adic單元同時進行存取。作為該存取之方法,假定使用字元線WL與位元線BL之先前之方法,對1個字元線WL與複數個位元線BL之交叉點上所設的p-adic單元施加偏壓。該偏壓係電壓、電流、或其他物理量、且係作為使用感測放大部t-SA而與Iref可比較之物理量出現於位元線BL上者。
設於字元線WL之一端之列解碼器/字元線驅動器(Row Dec./WL Driver)選擇字元線WL,對於該字元線將讀出所需之偏壓區分而串行施加。此時之偏壓之區分為p階段。
再者,該代碼讀出部之列解碼/字元線驅動器於代碼寫入時作為代碼寫入部之一部分,對於選擇字元線WL將代碼寫入所需之偏壓區分而串行施加。此時之偏壓之區分為p-1階段。
感測放大部t-SA係對Iref與來自p-adic單元之物理量Icell進行對比之電路。感測放大部t-SA如圖35所示係藉由感測放大器sa對Icell與Iref進行比較,使前一比較結果退避至鎖存L2之後,將當前比較結果覆寫至鎖存L1予以保持。
感測放大部t-SA之輸出僅於鎖存L1、L2之資料內容不同時作為信號L而輸出'1'。即,當Icell依照順序變化時僅於Iref與Icell之順序關係最初倒轉之串行循環中輸出L變成'1'。再者,鎖存L1與鎖存L2之初始值設為兩者相同,以便最初之Iref與Icell進行比較時可獲得正確的感測輸出。
「Zp→h dec」電路區塊以控制區分而串行施加之偏壓之信號Δ0、Δ1、...、Δp-2、Δp-1為輸入,根據該輸入,而使指定選擇暫存器之h位元之選擇線SL0 ~SLh-1 活化。藉由字元線WL而同時選擇之n個p-adic單元所對應之感測放大部t-SA的輸出分別選擇性地連接於h個暫存器,該「Zp→h dec」電路區塊藉由對應於信號Δ0、Δ1、...、Δp-2、Δp-1而活化之選擇線SL0 ~SLh-1 ,進行感測放大部t-SA與暫存器之關聯。
暫存器藉由信號RS而重置內容、即設為'0',於信號j及感測放大部t-SA輸出之信號L均為'1'之情形時將內容置換為'1'。
於如上所述之構成中,自p-adic單元之讀出動作係如下所示。
資料讀出前暫存器之初始值為'0'。
此處,自位準0起依序執行感測動作,位準j之步驟中之感測放大部t-SA之輸出L設為'1'。同時,於位準j之步驟中,向「Zp→h dec」電路區塊中輸入活化之信號Δj ,「Zp→h dec」電路區塊將j轉換為h位元之二進制,使對應之選擇線SL活化。
藉此,信號L與信號j均變成'1',對應之暫存器之內容被覆寫為'1'。
藉由以上之動作,於向p-adic單元之所有步驟結束之時間點,暫存器中儲存由p-adic單元所儲存之Zp之要素之二進制表示A。該暫存器中所儲存之A受到「p-adic Zp world」之運算處理。
以上,對Zp之表現中將p-adic單元使用1各單元之情形進行了說明。然而,於對於欲選擇之質數p而言記憶體單元之位準不足的情形時,可成對使用p-adic單元而獲得位準數。以下,亦將如此成對使用之p-adic單元稱為「對p-adic單元」(單元組件)。
因此,說明以對p-adic單元表現Zp之方法。
於1個p-adic單元可設定n位準之情形時,若將該p-adic單元成對使用則可設定n2 之位準。以該位準數將質數p建立關聯之情形時,根據p小於n2 且無法因數分解之條件,允許之質數之形式變成p=n2 -2、n2 -3、n2 -5、...。
此處,考慮可將對p-adic單元之位準最大限有效活用之質數p。
圖36係將每個p-adic單元可設定之位準數n、與n2 、n2 -2、n2 -3、及n2 -5之關係彙總而成之表。圖36中下劃線表示之數為質數。根據n2 之遇奇性,可知當n為偶數時質數為p=n2 -3或p=n2 -5,當n為奇數時質數為p=n2 -2之類型。再者,根據圖36,當n=11時直至n2 -5為止不存在質數。
繼而,說明對p-adic單元之位準。根據對p-adic單元之各位準以其組合而設定位準之方法存在各種,基本方法係設定為若對p-adic單元之任意位準變化1則對p-adic單元之位準亦變化1。
就錯誤校正之觀點而言,與對p-adic單元中設定之具體設定相比,位準間之距離更重要。
圖37係表示11×11之範圍之位準間距離之矩陣的圖。圖37以圖中斜線表示之中心之位準為基準,將對p-adic單元之位準跳移多少則變成對應的位準。例如表示自中心之位準觀察之向周圍位準之移動難度。該數值較小之位準間容易產生誤動作。當存在此種位準間距離時,如何使Zp之要素之順序與位準對應,關鍵點在於李度量之變化與位準間距離之變化是否接近。
將Zp之要素以零為基點利用±之數直線而於-(p-1)/2~(p-1)/2之範圍內表示時,李度量係自中心觀察之兩端最大。
此處,將數直線看做特質以該數值線之中心而變化之紐帶,考慮如何延伸該紐帶而不增大李度量。再者,圖37中係以實線與虛線表示紐帶之特質。
為使李度量不增大,較佳配置為紐帶之兩端儘量處於位準距離較大之處、即圖37所示之矩陣之角,且紐帶之特質之變更點儘量變成紐帶之中心部分。
該情形時,如圖37所示,較佳為將紐帶疊合,分配中出現之餘裕虛擬部連接於零之中心部,於紐帶之中心部之對角線上在適當位置上配置零,變成紐帶以最短李度量折返之紐帶之部分及最短距離,從而使Zp無變化。
以上說明之Zp之分配係以自矩陣之中心之位準之位準距離與李度量適合的方式設定,其次查看與自其他位準位置之位準距離之適合之效果。
圖38、圖39係相對於均以斜線表示之位準之對p-adic單元,而表示位準距離與Zp之分配之數直線之紐帶的對應。可知於0之周邊接近紐帶之對應部分之部分係工整地疊合。因此,可知若有可能對p-adic單元之位準之變化對於李度量碼之變化適合。
其次,說明對質數p分配之具體例。
圖40~圖47表示1個p-adic單元之位準數為3、4、5、6、7、8、9、10之情形時之、質數p=7、13、23、31、47、61、79、97之分配的具體例。圖40~圖47如圖48中a所示,各矩陣表之縱軸係第1個記憶體單元<1>之位準、橫軸係第2個記憶體單元<2>之位準,向藉由其組合而表示之對p-adic單元分配Zp之要素(-(p-1)/2~(p-1)/2)。
如圖48中b及c所示,ε與ε'係假定一定之位準距離式樣而表示此時之最大李度量變化量。即,ε如圖48中b所示,係可對應直至位準距離2為止之變化的李度量,ε'係作為位準距離3與位準距離4之一部分之對p-adic單元之兩方進行位準距離2之變化時可對應的李度量。
於圖40~圖47所示之矩陣表之中中,實線係對應於ε之Zp分配移動,虛線係對應於ε'之分配移動。再者,直至p=31為止則無論如何變化均可以ε'對應。
其次,說明自對p-adic單元之讀出方法之一例。
對p-adic單元之讀出方法基本上係與使用圖35所說明之單體之p-adic單元之讀出方法相同。因此,此處以不同點為中心進行說明。
於觀察構成對p-adic單元之各單體單元之情形時,由於設定有不同位準,故同時讀出該等。因此,相對於同時選擇之字元線WL而言,設置包含記憶體單元<1>之p-adic單元陣列<1>、及包含記憶體單元<2>之p-adic單元<2>作為構成對p-adic單元之單元陣列。該等p-adic單元陣列<1>、p-adic單元陣列<2>無需進行物理區別,至少以單元陣列之構成上之位址分配所決定的邏輯概念予以區別便可。施加給單元陣列之偏壓與圖35之情形同樣地係將Δ01-1 區分而串行施加。此處,1係1個p-adic單元可設定之最大位準數,例如為圖40~圖47所示之矩陣表之列或行之數即n。
各p-adic單元陣列中,對儲存Zp之資料A=(a1 ,a2 ,...,an )之各代碼aj 之p-adic單元同時存取。
與藉由字元線WL而同時選擇之各p-adic單元陣列之n個p-adic單元對應的感測放大部t-SA之輸出係分別選擇性連接於1個暫存器。
對該等暫存器與感測放大部t-SA之輸出L之選擇的連接進行控制者,與圖35之情形不同,係對應於區分而串行施加之偏壓之施加時序變成'1'的1條信號δ0 、δ1 、...、δ1-2 、δ1-1 。信號δj 係對應於p-adic單元之位準之偏壓,故位準j之偵測步驟中若感測放大部t-SA之輸出L為'1',則對應的p-adic單元之位準變為j。
暫存器與圖35之情形同樣地預先藉由信號RS而初始化為'0',於感測放大部t-SA之輸出信號L與δj 均變成'1'之情形時,暫存器之內容被設定為'1'。於向記憶體單元之所有偵測步驟結束之時間點,暫存器中保持由記憶體單元所儲存之位準。
該保持之各記憶體單元之位準L依照上述Zp與位準之對應矩陣表,取得構成對p-adic單元之記憶體單元<1>、記憶體單元<2>所對應的暫存器之內容之邏輯積(AND),從而獲得對應之Zp之要素。對於所得之Zp之要素,使用上述「Zp→hdec」電路區塊而進行h位元之二進制表示,受到「p-adic Zp world」之運算處理。
其次,對p-adic單元及對p-adic單元之位準數之性能進行比較。
首先,關於使用單體之p-adic單元之情形,於圖50中按各評估項目對圖34所示之具體例進行總結。圖50所示之表之第1行係評估項目。各評估項目係如以下所示。
L:p-adic單元之位準數
p:使用之質數
h:為將Zp二進制表示而所需之最小位元數
ε:大於(p-1)/4之最小整數,可校正錯誤之錯誤之李度量總量
ε':大於(p-1)/3之最小整數,可校正錯誤之錯誤之李度量總量
此處,ε及ε'並不依賴於p-adic單元之設定位準數,設定為假定作成p-adic單元之位準的物理量之誤動作之量大致固定。
M:藉由M=h(p-ε-3)而決定之值,以ECC進行批次處理之「binary world」之二進制之資料量
M':藉由M'=h(p-ε'-3)而決定之值,以ECC進行批次處理之「binary world」之二進制之資料量
δ:作為M之2h 進數之位數
δ':作為M'之2h 進數之位數
p-1:儲存李度量碼之碼字所需孩子p-adic單元數
log2 L:將p-adic單元設為儲存二進制之多值單元之情形時,p-adic單元中可儲存之位元數
M/log2 L:「binary world」中使資料M儲存於具有與p-adic單元相同位準數之多值單元時之記憶體單元數
其中,M/log2 L係以不設置ECC為條件而算出。
M'/log2 L:「binary world」中使資料M'儲存於具有與p-adic單元相同位準數之多值單元時之記憶體單元數
其中,M'/log2 L係以不設置ECC為條件而算出。
冗餘度:資料M於「p-adic Zp world」中向p-adic單元置入ECC而儲存時之單元數、與同一資料M於「binary world」中將同一p-adic單元作為多值單元且無ECC地儲存時之單元數的比
冗餘度':資料M'於「p-adic Zp world」中向p-adic單元置入ECC而儲存之單元數、與同一資料M於「binary world」中將同一p-adic單元作為多值單元且無ECC地儲存時之單元數的比
ε/(p-1):使用ε時之最大可校正之單元數之比例
ε'/(p-1):使用ε'時之最大可校正之單元數之比例
再者,於圖50中,質數為3或5時無法構成作為本實施形態之記憶體之「p-adic Zp world」,故表示7以上之質數。
此處,位準數自實用面起最多20左右,且自成本優勢之觀點出發將置入ECC時之冗餘度設為2以下時,圖50中以各點表示之行變成可選擇之範圍。該範圍內,可確保大致30%之校正率,故可構築可靠性相當高之記憶體系統。
繼而,關於對p-adic單元,於圖51中按各評估項目而總結圖40~圖47所示之具體例。圖51所示之表之第1行為評估項目。評估項目中與圖50所示之項目不同之評估項目係如以下所示。
L:構成對p-adic單元之單體之記憶體單元之位準數
L2 -p:向對p-adic單元之位準分配Zp時之多餘位準,且將圖40~圖47所示之具體例中之Zp之'0'分配為冗餘之位準的數
2(p-1):儲存李度量碼之碼字所需之p-adic單元數
此處,p-adic單元係成對利用,故為圖50所示之表之2倍。
再者,圖51所示之ε與ε'係與圖50所示之ε及ε'不同,其係將p-adic單元之位準之變化距離固定,作為Zp分配之對應李度量而重新重疊者,當位準數較多時作成位準之物理量之誤動作變化量係作為較小者算出。即,假定位準較多之單元可精度良好地作成。
記憶體單元之位準數無法較多時基於利用對p-adic單元之前提,將實用L假定為10以下。因此,質數p為100以下。進而,若考慮成本優勢而將冗餘度設為2以下則圖51中以各點表示之列變成可選擇之範圍。該範圍內,校正率可確保大致20%,故可構築可靠性相當高之記憶體系統。
[p-adic記憶體系統之資料/代碼處理次序]
其次,針對「p-adic Zp world」中之ECC之運算、「p-adic Zp world」之入口之轉換次序、作為Zp資料而將輸入至記憶體系統之代碼編碼的次序、將自記憶體系統讀出之代碼解碼之次序、及「p-adic Zp world」之出口之轉換次序進行總結。
此處,假定決定Zp之質數p、p之二進制表示所需之最少位元數h、批次處理資料之「binary world」中之作為2h 進數的位數δ、可校正之錯誤之李度量總量ε=γ-1為已決定者。又,以下之說明中n、k分別設為n=p-1、k=n-γ。
「p-adic Zp world」之入口之轉換次序係如以下所示。
(次序0)首先,對應每一h位元彙總自外部輸入至記憶體系統之二進制資料,並將其轉換為數28所示之2h 進數表現之δ位的資料字D(h)(圖52之S1)。
[數28]
D(h)=(d0 ,d1 ,Λ,dδ-1 )
繼而,將數28所示之資料字D(h)進而轉換為數29所示之p進數表現之δ+1位之資料字D(h)(圖52之S2)。
[數29]
D(h)=(a0 ,a1 ,Λ,aδ )
將作為Zp資料而輸入至記憶體系統之代碼編碼的次序係如以下所示。
(次序1)首先,向藉由次序0所得之Zp之要素a0 ~aδ 上追加零,設數30所示之資料D之k個要素a0 ~ak-1
[數30]
D(h)=(a0 ,a1 ,Λ,ak-1 )
繼而,於該資料D上乘以生成矩陣G而獲得代碼C之n個碼字成分c1 ~cn (圖52之S3)。各碼字成分之值係如數31所示。
[數31]
最後,將該碼字成分cj 儲存於記憶體單元(圖52之S4)。
將自記憶體系統讀出之代碼解碼之次序係如以下所示可大致分為7個次序。再者,以下次序之編號係包含編碼次序之連續編號。又,需注意以下所示之次序2及次序3對Zp之各要素(m=0~p-2)重複。
(次序2)讀出自記憶體單元所讀出之代碼Y(圖53之S5)。代碼Y係如數32所示之構成。此處,ej 表示位於代碼Y之位置j之碼字符號之錯誤之李度量。
[數32]
Y=(y1 ,y2 ,Λ,yn )
Y=C+E,E=(e1 ,e2 ,Λ,en )
繼而,於構成代碼Y之n個碼字符號之值yj (j=1~n)上乘以jm ,計算jm yj 作為Zp之數。於符號值yj 為多位準之記憶體單元之情形時,可自位準求出。又,若為一般之二進制記憶體則係自二進制資料獲得之數。於代碼Y上乘以徵候群矩陣H之轉置矩陣,如數33所示般獲得包含徵候群Sm ~Sm+ε 之徵候群系列m S(=m YHT )(53之S6)。
[數33]
(次序3)首先,相對於可校正之符號數之上限ε(=γ-1),計算η=ε、u=ηSm -1 ,自次序2中求出之徵候群S1 而求出uSm ~uSm+ε 。繼而,自該uSm ~uSm+ε 而依序計算數34所示之錯誤位置檢索多項式Ψ(x)之係數Ψj (圖53之S7)。
[數34]
此處,於Ψ(x)之次數為η之情形時,即Ψη ≠0之情形時,進入次序5而求解。於Ψη =0之情形時設為無解而結束處理,或者於進而搜索校正可能性之η=ε-1重複次序2。於Ψ(x)之次數為η、即Ψη+1 ≠0且Ψη ≠0之情形時,進入次序4而求解。另一方面,於Ψη =0之情形時,設為無解而結束處理。於該次序3中無法處理之情形時,係無法對應之錯誤分佈,故設為無解而中止錯誤校正。
(次序4)獲知次序3中為Ψε ≠0而獲得解之情形時,利用次序4、次序5獲得解。首先,次序4中為獲得解之多重度,而求出數35所示之哈塞(Hasse)微分多項式[Ψ(x)][i ]。相對於次序3中獲得之係數Ψj ,乘以一系列二項係數而獲得哈塞微分多項式之係數(圖53之S9)。
[數35]
(次序5)相對於所得之哈塞微分多項式,代入Zp之要素1~p-1,求出所有0次微分多項式(=Ψ(x))為零之要素r。繼而,如數36所示,相對於各r而言求出n-1次微分多項式為零而n次微分多項式非零之次數n(圖54之S10)。
[數36]
所得之r係產生錯誤之代碼之碼字符號之位置之逆元,對應於此之n係自所產生之錯誤量而轉換之量。
(次序6)於次序6中,自解之多重度n藉由轉換而求出錯誤量。有錯誤之碼字符號之位置為t=r-1 ,對n實施為獲得用以求解之多項式而進行的轉換之逆轉換。由於存在utm et =n之關係,故若設et =(utm )-1 n則可自n獲得原本之錯誤量et 。自由記憶體單元讀出之代碼Y之符號值yt 中減去該錯誤量et ,而獲得經校正之代碼C之符號值ct (圖54之S11)。
至此為止,可獲得儲存於記憶體單元之正確的代碼C,故藉由次序7、次序8而求出輸入至記憶體系統之二進制資料。
(次序7)自由次序6而經錯誤校正之代碼C及生成矩陣G,經由XG=C之多元聯立一次方程式,而求出k個Zp之要素a0 ~ak-1 及X(=a0 ,a1 ,...ak-1 )。藉此,獲得δ+1個Zp之要素a0 ~aδ 。自所得之要素a0 ~aδ 而作成δ+1位之p進數表現之資料字D(h)(圖54之S12)
(次序8)最後,將該資料字D(h)轉換為δ位之2h 進數表現,使各位之數字進行二進制表現。藉由以上而完成輸入至記憶體系統之二進制資料之復原(圖54之S13)。
其次,對「p-adic Zp world」中之資料處理之次序所使用之方法的原理。該原理係將先前之方法改良而成者,且被稱為「徵候群轉換法」。
保持於記憶體系統之碼字C之成分為Zp之數,各成分受到各種擾亂而引起變化,如數37所示,變化為包含不同成分之碼字Y。
[數37]
Y=(yi ),yi =ci +ei
自該Y復原C之過程即為解碼。於解碼之前求出徵候群。
徵候群m S係自Zp中選擇某個m,設m S=(Sm+1 )(1=0~γ-1),根據m=0獲得S0 且若|S0 |≦γ-1則開始解碼。徵候群m S係利用H矩陣而如數38般藉由矩陣運算求出要素作為Sm+0 、Sm+1 、...、Sm+γ+1
[數38]
此處,Ht 為H之轉置矩陣。以G矩陣及H矩陣之構成變成GHt =0(mod p)之方式構成,藉此若Y=C+E則S係以E之成分表示。再者,若設m=0、E=(e1 ,e2 ,...,en ),則變成S0 =Σej 且S0 變成各符號之錯誤之總和。於|S0 |≦γ-1之情形時,可藉由以下之徵候群轉換法而求出錯誤。即便不滿足該條件於計算上亦可獲得對於代碼成分之錯誤之值,但無法判斷其係對於真代碼之錯誤、抑或對於相鄰代碼之錯誤,故無法用於錯誤校正。代碼間之李度量之最小值為2γ。
於確實可利用於錯誤校正之情形時,繼而總括地轉換所有碼字之錯誤之成分ei 之計量。藉由作成有限體之固定要素與所有要素之積而獲得有限體之所有要素,利用該點相對於預先規定之要素η,對於|Sm |≠0之m而求出uSm ≡η之u。於包含儲存於記憶體單元陣列之錯誤之代碼Y上乘以該u而求出徵候群,作為m S上乘以u之成分之徵候群成分而獲得uSm 、uSm+1 、...、uSm+γ+1 。將其表述為uS。即,uS可如數39般表示。
[數39]
uS=(uSm ,uSm+1 ,Λ,uSm+γ+1 )
需注意進行轉換之後,轉換後之錯誤之總和uSm 變成η。又,自該總和亦可知錯誤之成分ej 可視為u(j)m ej 。該等徵候群係唯一之錯誤之資訊,基於此而進行正確的代碼之復原。
繼而,設預先獲知錯誤而說明解碼之原理。
記憶體單元陣列中儲存之代碼持有錯誤E=(e1 ,e2 ,...,en )(n=p-1),故對於新的徵候群而言虛擬錯誤為{u(1)m e1 ,u(2)m e2 ,...,u(n)m en }。將該等n=p-1個錯誤成分經轉換而成者如數40般分類為2個組J+ 及J-
[數40]
J+ ={j(1,2,Λ,n);u(j)m ej <p/2}
J- ={j(1,2,Λ,n);u(j)m ej >p/2}
即,分類為於錯碼字符號之錯誤量為u(j)m ej <p/2之情形時,作為碼字符號cj 之位置j之集合即J+ 、及錯碼字符號之錯誤量為u(j)m ej >p/2之情形時之碼字符號cj 之位置j的集合即J- 。GF(p)上之多項式Λ(x)、V(x)基於該等組而如數41般構成。
[數41]
如此,多項式Λ(x)係具有J+ 之錯誤成分位置j之反數作為根,具有其錯誤成分之李度量u(j)m ej 作為根之多重度的多項式。另一方面,多項式V(x)係具有J- 之錯誤成分位置j之反數作為根,具有其錯誤成分之李度量p-u(j)m ej 作為根之多重度的多項式。解碼係最終僅由徵候群之資訊構成該等多項式而求解從而獲得錯誤之資訊的過程。即,需要求出該等多項式Λ(x)、V(x)與徵候群之關係。若以其次數之係數具有各徵候群uS之級數多項式構成,則如數42般以因子具有錯誤成分之位置與虛擬錯誤成分之值的有理多項式表示。
[數42]
根據數42,多項式Λ(x)、V(x)、徵候群S(x)之間成立有數43所示之關係式。
[數43]
繼而,利用數43所示之關係式,自徵候群S(x)而求出多項式Λ(x)、V(x)。
根據徵候群S(x),求出數44所示之次數為γ-1以下之多項式Ψ(x)。
[數44]
Ψ(x)S(x)≡-xΨ' (x)(mod xγ )
於多項式Ψ(x)之展開式中,根據數44所示之式之兩邊之同次次數之係數之比較,係數Ψj 可使用徵候群Si 及業已求出之係數Ψj-1 而由疊代法求出。數45表示自徵候群uS1 ~uSm+γ-1 求出多項式Ψ(x)之係數Ψ0γ-1 之結果。
[數45]
Ψ0 =1
Ψ1 =-Ψ0 uS1 =-uSm+1
Ψ2 =-(Ψ1 uSm+10 uSm+2 )/2=-u(Ψ1 Sm+10 Sm+2 )/2
M
Ψγ-1 =-(Ψγ-2 uSm+1 +Λ+Ψ0 uSm+γ-1 )/(γ-1)=-u(Ψγ-2 Sm+1 +Λ+Ψ0 Sm+γ+2 )/(γ-1)
該多項式Ψ(x)係等價於Λ(x)/V(x)之多項式,彼此互為素之λ(x)與v(x)之關鍵條件係如數46般,故可藉由巧妙地選擇η而得出V(x)=1,且可直接採用Λ(x)作為Ψ(x)。
[數46]
v(x)Ψ(x)≡λ(x)(mod xγ )
degλ(x)-deg v(x)=uSm =n(mod p)
degλ(x)-deg v(x)<γ
自多項式之次數相關之條件deg λ(x)-deg v(x)=η、deg λ(x)+deg v(x)≦γ-1,而得出0≦2deg v(x)≦γ-1-η,故可知若0≦γ-1-η≦1則deg v(x)=0。即,於γ-1≧η≧γ-2之情形時,得出V(x)=1且Λ(x)=Ψ(x),Ψ(x)滿足該條件。此時自徵候群求出之Ψ(x)與預先決定之η之間應成立η=deg Ψ(x)=deg Λ(x)。於成立之情形時,滿足所有關鍵條件,故可使用Ψ(x)而獲得解。另一方面,於不成立之情形時錯誤不滿足關鍵條件,設為無解。
該方法相當於對錯誤實施所有錯誤代碼成分位置集合於集合J+ 之轉換。又,就其他觀點而言表示存在藉由以經轉換之錯誤之總和為γ-1以下,γ-2以上之方式進行轉換而可修正錯誤修正的可能性。
此處,所謂可能性存在兩種含義,第1係所有錯誤成分位置集合於J+ ,自徵候群求出之Ψ(x)之次數需要正好等於η。第2係即便並非|S0 |≦γ-1亦可於計算上獲得錯誤量,但為排除誤校正而需要添加該條件。
如下一例所示,可知對於1碼字成分之錯誤而言無論對何種錯誤均可藉由該方法獲得解,對於2碼字成分藉由循環使用徵候群無論何種錯誤均可藉由該方法獲得解。
於錯誤位置檢索中,係設Λ(x)=Ψ(x)、V(x)=1,自Zp之要素求出滿足方程式之解,並根據所得之根之多重度實施逆轉換而獲得真之錯誤E。
其次,研究藉由將錯誤之計量轉換而求出錯誤位置檢索多項式之徵候群轉換法,對於根之數即產生錯誤之碼字之成分之數能夠搜索何種錯誤。
首先,研究自錯誤位置檢索多項式所得之根為1根之情形。
若設根為j-1 則錯誤代碼E=(0,ej ,...,0)(n=p-1)之成分位置為j,其錯誤量為ej 。乘以適當的u(j)m 進行轉換,若該等分別為p/2以下而彙總於J+ ={j;u(j)m ej <p/2},則可構成數47所示之多項式Ψ(x)。
[數47]
uSm =u(j)m ej →Ψ(x)=
根據數47,不依賴於錯誤之量而必定變成u(j)m ej =η,而進入J+ 。因此,1碼字之錯誤可完全地獲得其值,碼字間之最小距離為2γ,故若|ej |為γ以上則無法特定真之碼字,根據m之選擇而獲得各種值之錯誤量。各錯誤量對於碼字而言其中之一變成真碼字之錯誤、即所謂之表單校正。
繼而,研究自錯誤位置檢索多項式所得之根為2根之情形。
若以i-1 及j-1 為根則錯誤代碼E=(0,...,ei ,...,ej ,...,0)(n=p-1)之成分位置為i與j,其等之錯誤量為ei 及ej 。若乘以適當之u(j)m 而轉換,該等分別變成p/2以下,彙總為J+={i,j;uU(i)m ei ,u(j)m ej <p/2},則可構成數48之Ψ(x),故可自多項式Ψ(x)求出錯誤量。
[數48]
uSm =u(i)m ei +u(j)m ej →Ψ(x)=
為於錯誤代碼上乘以適當之u(j)m 而轉換,該等分別變成p/2以下而彙總於J+ ,則ei 與ej 必須具有一定之關係。兩者若相等便足夠,若不相等則可藉由u(j)m 之轉換使任意錯誤量均為η,故2碼字成分之錯誤完全可獲得其值。
然而,碼字間之最小距離為2γ者係李度量碼,故|ei |+|ej |為γ以上則無法特定真之碼字,根據m之選擇而獲得各種值之錯誤量。各錯誤量係對應於碼字,其中之一係真碼字之錯誤。而且,若2個錯誤之距離滿足某個條件則藉由適當之轉換將兩者彙總於J+ ,故兩者相等並非必要條件。
其次,對使2代碼之錯誤相等之轉換方法進行說明。
設2個錯誤代碼為i、j,錯誤量分別設為ei 、ej 。該情形時,徵候群為S0 =ei +ej 。進而,根據徵候群計算可知,徵候群為Sm =im ei +jm ej 。即,藉由選擇適當之m而可設im ei ≡jm ej
此處,若使用Zp之原始根及指數表示而設ei(ei) 、ej(ej) 、i=α(i) 、j=α(j) ,則m(i)+(ei )≡m(j)+(ej )成立。因此,m可藉由m≡-{(ej )-(ei )}/{(j)-(i)}求出。
根據以上,使用徵候群之系列(Sm ,Sm+1 ,...,Sm+γ-1 )求出變成uSm =η之係數u便可。
然而,m最初並不明確,故為了對應於2個碼字符號之各種錯誤,而使用如下之轉換方法。首先,自0至p-2為止掃描m,藉由u=ηSm-1 而算出對應各m之係數u。藉此,可求出(uSm ,uSm+1 ,...,uSm+η-1 )。繼而,自該等(uSm ,uSm+1 ,...,uSm+η-1 )而構成多項式Ψ(x)。最後,自所構成之多項式Ψ(x)中抽取滿足degΨ(x)=η之m。藉由以上於所抽出之m之情形時構成Ψ(x)而變成degΨ(x)=η,則於此m時使用Ψ(x)求出根與多重度。
如上所述,獲得若錯誤位置檢索多項式之根為2根以下即2碼字成分之錯誤以下則可求出任意錯誤之方法,其次研究3根以上之情形時該如何處理。
3根以上時求解之條件係轉換所有根之錯誤量而使其屬於J+ ={j;{j(1,2,...,n);u(j)m ej <p/2},此時如數49所示Ψ(x)構成為η次之多項式。
[數49]
對於任意錯誤量均可求出之轉換於2根以下時雖然存在,但3根以上難以構成為簡單之轉換。因此,作為產生2碼字成分以下之錯誤時可應對任意錯誤之方法,係直接使用上述2根之情形時之轉換及錯誤位置檢索之方法。其中,由於增加3根以上之錯誤成分彙總於J+ 之錯誤分佈之情形,作為新的掃描,對於η之另一候補γ-2=ε-1亦重複應用相同方法。
即,對於η為ε與ε-1之各η而言使m自0直至p-2依序變化作為u≡ηSm -1 而設(uSm ,uSm+1 ,...,uSm+ε )→Ψ(x),若degΨ(x)=η則自Λ(x)=Ψ(x)獲得解。解開後結束錯誤位置檢索。若degΨ(x)≠η則為無解錯誤分佈,作為無解而結束。
該解法中包含2根或1根之解法,若為2根以下則即便為碼字成分中隨機產生之任意錯誤亦可計算。而於3根以上之碼字成分之錯誤時,對於錯誤量之分佈狹窄等特殊情形,可進行最大ε=γ-1碼字成分之校正。尤其係錯誤量之分佈於所有錯誤量相等或集中為相同值之情形時,與2根以下之情形相同,故即便產生所有種類之錯誤亦可計算碼字成分。然而,若考慮誤校正,則真之代碼之校正僅為Σ|ej |≦ε之情形,其他情形時獲得對於各種代碼之錯誤量、即誤校正之錯誤,其中存在真代碼之錯誤。
又,藉由將η之選擇設為2個之掃描,而增加3碼字成分以上之錯誤分佈中彙總於J+ 之轉換之情形,故可校正之情形確實增加,但何種分佈可進而校正並不明確。
再者,於3根以上之情形時,對於ε以下之錯誤而言,無法對藉由先前之歐幾裏得(Euclid)法求出錯誤位置檢索多項式之所有情形完成向J+ 之轉換,故徵候群轉換法無法對應。然而,較大優勢在於錯誤之成分之錯誤量之式樣相似時無差別,即便為3根以上亦可藉由徵候群轉換法容易地對應。
如p-adic單元般錯誤之量於各記憶體單元中相似之情形時處理之規模及計算更簡化,作為片上系統有效。
當然,藉由併用徵候群轉換法與先前之歐幾裏得法,而可提高可校正之錯誤分佈之範圍。然而,歐幾裏得法中使用複雜之運算處理及電路,故有損於電路規模之簡化及處理之高速化。又,當然亦可於使用李度量碼之記憶體系統之錯誤位置檢索中直接使用歐幾裏得法。
[p-adic記憶體系統之構成]
其次,對使用「p-adic Zp world」之李度量碼之本實施形態之記憶體系統的構成進行說明。
圖55係本實施形態之記憶體系統之方塊圖。
於「p-adic Zp world」中,記憶體系統之最大之優點係可利用使用有李度量碼之ECC。因此,以利用ECC為前提而構成記憶體系統。
本記憶體系統可大致分為執行「p-adic Zp world」之入口處理之部分、執行「p-adic Zp world」之處理之部分、及執行「p-adic Zp world」之出口處理的部分此3個部分。
作為執行「p-adic Zp world」之入口處理之部分,有p進數轉換部101。該p進數轉換部101與下述編碼部201一併包含於代碼生成部。所輸入之「binary world」之二進制資料D最初藉由該p進數轉換部101而經p進數轉換後,作為資料A輸入至「p-adic Zp world」。
執行「p-adic Zp world」之處理之部分有編碼部201、p-adic單元記憶體部202、錯誤檢測‧校正部(203~206)、及解碼部207。
於編碼部201中,對於自p進數轉換部101輸入之資料A作用生成矩陣G而李度量碼化,作為寫入代碼C而儲存於p-adic單元記憶體202中予以保持。
此處,p-adic單元記憶體202係快閃記憶體、PRAM、ReRAM等大容量儲存記憶體。
自p-adic單元記憶體讀出資料時,經代碼化之資料C包含錯誤,且係作為讀出代碼Y而讀出。
於徵候群生成部203中,使用數50所示之對角矩陣進行徵候群m S之計算,即將徵候群矩陣H乘以與對應Y之各碼字成分之位置之場所之座標數之m乘方的處理。
[數50]
因此,m=0、m S=0之情形時不產生錯誤,故將包括「p-adic Zp world」之最後之處理之步驟的代碼Y輸出至解碼部207。另一方面,於m S≠0之情形時,若m=0時之m S之最初之成分S0 為|S0 |>γ,則錯誤校正確實不可能,故輸出NG信號,並將帶有錯誤之代碼Y輸出至解碼部207。於其他情形時,將徵候群m S輸出至錯誤位置檢索多項式生成部204。
於錯誤位置檢索多項式生成部204中,自該徵候群m S求出錯誤位置檢索多項式Ψ(x)作為η=γ-1,此η次之次數之係數為Ψη ≠0之情形時,將此Ψ(x)輸出至哈塞微分多項式生成部205。另一方面,於Ψη =0之情形時再次求出多項式Ψ(x)作為η=γ-2。並且,於此多項式Ψ(x)之η+1次之次數之係數Ψη+1 =0之情形時,若η次之次數之係數Ψη≠0則Ψ(x)為η次,故將Ψ(x)輸出至哈塞微分多項式生成部205。另一方面,若Ψη=0則一面將m增加1一面重複求出徵候群m S之處理。並且,即便直至m為p-2為止重複而Ψ(x)之η次之係數Ψη =0,則錯誤校正為不可能故輸出NG信號,並將帶有錯誤之代碼Y輸出至解碼部207。
於哈塞微分多項式生成部205中,自所輸入之Ψ(x)求出哈塞微分多項式,算出該等根r及其根之多重度n,並作為t=r-1 輸出至代碼復原部206。
於代碼復原部206中,使用該算出之根r及其根之多重度n求出產生錯誤之碼字之位置座標、及錯誤量et ,從而算出錯誤量之李度量之總量Σ|et |。若為γ-1以下則復原李度量碼之代碼資料C。另一方面,若為γ以上則存在誤校正之可能性,故考慮校正不可能,將處理轉向下一η或下一m之處理即處理轉向徵候群生成部203或錯誤位置檢索多項式生成部204。其中,於m=p-2且η=γ-2之情形時,輸出NG信號,將處理轉向解碼部207。
於解碼部207中,對代碼資料C執行生成矩陣G之逆轉換,獲得p進數而獲得代碼A。該代碼A輸出至「binary world」。
作為執行「p-adic Zp world」之出口處理之部分有2h 進數轉換部301。
於2h 進數轉換部301中,將代碼A轉換為2h 進數即轉換為二進制表現之輸出資料並予以輸出。其係經復原之二進制資料D。
以下,對「p-adic Zp world」之各區塊之電路構成表示具體例而進行說明。
圖56中(A)係編碼部201之電路構成例,圖56中(B)係表示控制編碼部201之雙重時脈ck及c1之圖。
如圖56中(B)所示,時脈c1係較ck之上升延遲而上升之脈衝,對應每一時脈ck而依序上升c10 ~c1p-ε-3 之合計p-ε-2發之c1。並且,若c1p-ε-3 上升,則時脈ck延遲而隨後上升。相同之波形係自ck0 直至ckp 為止重複。
該等時脈ck、c1中,ck控制「Counter(1 to p-1)」電路區塊及「Ri(1~p-1)」暫存部,c1控制「X k-times」電路區塊、「Ro(0~k-1)」暫存部、及「Rgstr」暫存部。
「Counter(1 to p-1)」電路區塊係初始狀態為0,每當時脈ck上升時改變,計數時脈數而輸出之電路。即ckj (j=1~p-1)中,ckj 之上升時將j輸出至「X k-times」電路區塊。
「Ri(1~p-1)」暫存部係儲存碼字C之成分cj 之暫存器,可儲存合計p-1個數。該「Ri(1~p-1)」暫存部對應於ck之上升之時序而依序於各暫存器中儲存數。即,於ckj+1 之上升之時序將作為要素cj 之資料取入暫存器。藉由ckp 之上升而於暫存器中取入p-1個要素cj 。即,可儲存碼字C。
「X k-times」電路區塊係於時脈c1上升時於輸出上乘以輸入之電路。於「X k-times」電路區塊中,將所輸入之j於合計p-ε-2次之c1之上升時乘以輸出。即,藉由c1i (i=0~p-ε-3)之上升,「X k-times」電路區塊之輸出變成(j)i+1 。該輸出係輸出至「X Zp」電路區塊。
「Ro(0~k-1)」暫存部係可儲存k個數之暫存器,於初始狀態下儲存有代碼A之k=p-ε-2個成分a0 ~ap-ε-3 。「Ro(0~k-1)」暫存部中輸入有時脈cl,每當該時脈cl上升時依序輸出代碼A之成分a0 ~ap-ε-3 。即,接受cli (i=0~p-ε-3)而輸出ai
「X Zp」電路區塊係以Zp進行輸入之乘法之電路。「X Zp」電路區塊中對應每一時脈cli 而輸入有「X k-times」電路區塊之輸出(j)i+1 及「Ro(0~k-1)」暫存部之輸出ai ,輸出(j)i+1 ai 。對該輸出之數(j)i+1 ai 進行相加者係「h bit AD mod p」電路區塊及「Rgstr」暫存器之組合。
「h bit AD mod p」電路區塊係以p為模數而求出2個輸入之數之和之電路。另一方面,「Rgstr」暫存器係初始狀態為'0',每當輸入時脈cl時阻斷來自「h bit AD mod p」電路區塊之輸入,並將自身保持之內容輸出至「h bit AD mod p」電路區塊的暫存器。藉由如圖56所示之「h bit AD mod p」電路區塊及「Rgstr」暫存器之連接,每當輸入時脈cl時於前次輸出之數上加上新的「X Zp」電路區塊所輸出之數。即,若時脈cl0 ~clp-ε-3 上升,則將代碼A轉換為李度量碼後之C之成分cj 以時脈ckj 之循環而輸出。作為下一ckj+1 之循環之開頭而保持於「Ri(1~p-1)」暫存部。藉此,可獲得自代碼A轉換之代碼C。
其次,對構成圖56所示之「X Zp」電路區塊之積運算電路進行說明。
首先,對進行Zp之數之乘法之電路之原理進行說明。
Zp之2個數a與b分別以h位元進行二進制表示時之各位元係如數51般表示,且以h×h之要素之Mab 表示各位元之積。
[數51]
a=A0 +A1 2+A2 22 +A3 23 +Λ+Ah-2 2h-2 +Ah-1 2h-1
b=B0 +B1 2+B2 22 +B3 23 +Λ+Bh-2 2h-2 +Bh-1 2h-1
其中,h設為可將p二進制表示之最小之位元數。
此處,列舉作為使用之計算之依據之2個事項。
(第1事項)根據0≦a、b≦p-1,得出0≦a/2+b≦3/2(p-1)<2(p-1)。即,忽視Zp之h位元二進制表示之一方之數之最下位位元,偏移1位而視作h-1位元二進制之數,即便於與h位元表示之數相加之情形時,其和中亦僅最多包含1個p。因此,若將p視作法則該和可以h位元之二進制表示。
(第2事項)根據0≦a≦p-1,得出2a+1≦2p-2+1=2p-1。即,即便於h位元二進制表示之數上加上最下位位元而變成h+1位元之數的情形時,其和中亦僅最多包含1個p。因此,若將p視作法則該和可以h位元之二進制表示。
因此,利用該等2個事項而進行計算。
數52係利用上述第1事項之前半之計算步驟群。再者,對於利用上述第1事項之部分附上下劃線。又,圖57係模式性表示前半之計算步驟群之圖。
[數52]
(A0 +A1 2+A2 22 +A3 23 +Λ+Ah-2 2h-2 +Ah-1 2h-1 )×(B0 +B1 2+B2 22 +B3 23 +Λ+Bh-2 2h-2 +Bh-1 2h-1 ) …(a)
=M00 +2{(M10 +M20 2+M30 22 +Λ+Mh-20 2h-3 +Mh-10 2h-2 )+(A0 +A1 2+A2 22 +A3 23 +Λ+Ah-2 2h-2 +Ah-1 2h-1 )×(B1 +B2 2+Λ+Bh-1 2h-2 )} …(b)
=M00 +Q0 0 2+22 {(Q0 1 +Q0 2 2+Λ+Q0 h-2 2h-3 +Q0 h-1 2h-2 )+(A0 +A1 2+A2 22 +Λ+Ah-2 2h-2 +Ah-1 2h-1 )×(B2 +B3 2+A+Bh-1 2h-3 )} …(e)
=M00 +Q0 0 2+Q1 0 22 +23 {(Q1 1 +Q1 2 2+Λ+Q1 h-2 2h-3 +Q1 h-1 2h-2 )+(A0 +A1 2+A2 22 +Λ+Ah-2 2h-2 +Ah-1 2h-1 )×(B3 +Λ+Bh-1 2h-4 )} …(h)
=M00 +Q0 0 2+Q1 0 22 +Q2 0 23 +24 {(Q2 1 +Q2 2 2+Λ+Q2 h-2 2h-3 +Q2 h-1 2h-2 )+(A0 +A1 2+A2 22 +Λ+Ah-2 2h-2 +Ah-1 2h-1 )×(B4 +Λ+Bh-1 2h-5 )} …(k)
M
=M00 +Q0 0 2+Q1 0 22 +Λ+Qh-3 0 2h-2 +2h-1 {(Qh-3 1 +Qh-3 2 2+Λ+Qh-3 h-2 2h-3 +Qh-3 h-1 2h-2 )+(A0 +A1 2+A2 22 +Λ+Ah-2 2h-2 +Ah-1 2h-1 )×(Bh-1 )} …(m)
於前半之計算步驟群之第1步驟中,首先,如數52中之(b)式所示,自以p為模數所得之h位元之數中取出最下位位元M00 ,剩餘之數以2總括。
繼而,根據該以2總括之項,如數52中之(b)式所示,進行乘數b之最下位位元B0 與乘數a之相乘而作成h+1位元之數(M10 +M20 +...+Mh-1‧0 2h-2 )。與此同時,進行該時間點之乘數b之最下位位元B1 與乘數a之相乘,如數52中之(c)式所示作成h位元之數(M01 +M11 2+...+Mh-1‧1 2h-1 )。
最後,將數(M10 +M20 +...+Mh-1‧0 2h-2 )與數(M01 +M11 2+...+Mh-1‧1 2h-1 )相加,如數52中之(d)式所示,作成新的h位元之數(Q0 0 +Q0 1 2+...+Q0 h-1 2h-1 )。
重複之後相同之計算步驟,如數52中之(o)式所示,進行乘數b之最上位位元Bh-1 與乘數A之相乘直至獲得h位元之數(Qh-2 0 +Qh-2 1 2+...+Qh-2 h-1 2h-1 )為止。
數53係利用上述第2事項之後半之計算步驟群。再者,對於利用上述第2事項之部分附上雙重下劃線。又,數53中之(p)式係繼數52中之(o)式之後的式。
[數53]
=M00 +Q0 0 2+Q1 0 22 +Λ+Qh-4 0 2h-3 +2h-2  ‧‧‧(p)
≡M00 +Q0 0 2+Q1 0 22 +Λ+Qh-4 0 2h-3 +2h-2  ‧‧‧(q)
=M00 +Q0 0 2+Q1 0 22 +Λ+Qh-5 0 2h-4 +2h-3  ‧‧‧(r)
≡M00 +Q0 0 2+Q1 0 22 +Λ+Qh-5 0 2h-4 +2h-3  ‧‧‧(s)
M
= ‧‧‧(t)
≡20  …(u)
於後半之步驟群中,自前半之步驟群所得之2h-1位元之數中減去p而獲得p以下之數。
首先,於數53中之(o)式所示之前半之步驟群所得之2h-1位元之數中,以2h-2 總括自最上位起h+1個位元之數Qh-3 0 2h-2 +2h-1 (Qh-2 0 +Qh-2 1 2+...+Qh-2 h-1 2h-1 )。該結果變成數53中之(p)式。
繼而,自數53中之(p)式所示之h+1位元之二進制表示之數Qh-3 0 +2(Qh-2 0 +...+Qh-2 h-1 2h-1 )中減去p,獲得如數53中之(q)式所示之h位元之數(Qh-1 0 +Qh-1 1 2+...+Qh-1 h-1 2h-1 )。
之後,一面減少位元數一面重複相同之計算步驟。並且,獲得如數53中之(u)式所示之h位元之表示而結束處理。
以上,藉由數52及數53所示之所有計算步驟之結束,而獲得h位元之積作為Zp之數之相乘之結果。
圖58係表示「X Zp」電路區塊之一般電路記號之圖,圖59係「X Zp」電路區塊之方塊圖。又,圖60係模式性表示圖59所示之電路構成之運算處理的圖。
「X Zp」電路區塊大致包含處理數52所示之前半之計算步驟群之電路、及處理數53所示之後半之計算步驟群的電路。
處理前半之計算步驟群之電路係由AND閘極G1、及h-1個「h bit AD mod p」電路區塊構成。
AND閘極G1取得乘數a之第i(i=0~h-1)位元、與乘數b之第j(j=0~h-1)位元之邏輯積,並將其作為Mij 而輸出。
「h bit AD mod p」電路區塊係求出以Zp之2數之p為模數之和的電路。「h bit AD mod p 」電路區塊輸入A0 ~Ah-1 、及B0 ~Bh-1 ,輸出Q0 ~Qh-1
第1個「h bit AD mod p」電路區塊<1>向A0 ~Ah-2 、Ah-1 、及B0 ~Bh-1 分別輸入M10 ~Mh-1‧0 、'0'、M01 ~Mh-1‧1 ,自Q0 ~Qh-1 輸出Q0 0 ~Q0 h-1
第2個「h bit AD mod p」電路區塊<2>向A0 ~Ah-2 、Ah-1 、及B0 ~Bh-1 分別輸入作為「h bit AD mod p」電路區塊<1>之輸出的Q0 1 ~Q0 h-1 、'0'、及M02 ~Mh-1‧2 ,向Q0 ~Qh-1 輸出Q1 0 ~Q1 h-1
如上所述,處理前半之計算步驟群之電路係將「h bit AD mod p」電路區塊<1>~「h bit AD mod p」電路區塊<h-1>之輸出與輸入依序連接而構成。
處理後半之計算步驟群之電路係由h-1個「h+1 bit mod p」電路區塊構成。該「h+1 bit mod p」電路區塊係圖6、圖7所示之電路。
第1個「h+1 bit mod p」電路區塊<1>向A0 、及A1 ~Ah 分別輸入Qh-3 0 、及Qh-2 0 ~Qh-2 h-1 ,自Q0 ~Qh-1 輸出Qh-1 0 ~Qh-1 h-1
第2個「h+1 bit mod p」電路區塊<2>向A0 、及A1 ~Ah 分別輸入Qh-4 0 、及Qh-1 0 ~Qh-1 h-1 ,自Q0 ~Qh-1 輸出Qh 0 ~Qh h-1
如上所述,處理後半之計算步驟群之電路係將「h+1 bit mod p」電路區塊<1>~<h-1>之輸出與輸入依序連接而構成。
所有電路係以時脈非同步而動作,且藉由賦予輸入Mab 而確定輸出Q。
此處,說明「X Zp」電路區塊之電路規模。
例如,於p=17之情形時h=5。該情形時,「X Zp」電路區塊可由h-1=4個「h bit AD mod p」電路區塊及h-1=4個「h+1 bit mod p」電路區塊構成。據此,「X Zp」電路區塊之電路規模可以說較小。
再者,「XZp」電路區塊需要2h-2個。
其次,詳細說明圖59所示之「h bit AD mod p」電路區塊。
圖61係「h bit AD mod p」電路區塊之電路記號。
「h bit AD mod p」電路區塊求出自A及B輸入之數a及b之和,並自Q輸出所得之和之質數p的餘數。
此處,考慮h=7、p=79之情形。該情形時,數a、b、質數p、餘數之二進制表示Q之間成立有數54所示之關係。
[數54]
a=A0 +A1 2+A2 22 +A3 23 +A4 24 +A5 25 +A6 26
b=B0 +B1 2+B2 22 +B3 23 +B4 24 +B5 25 +B6 26
p=79=92 -2=26 +23 +22 +21 +1,p之補數=27 -p=25 +24 +1=49
a+b≡Q(mod p)(a+b=Q+PF0×p)
Q=Q0 +Q1 2+Q2 22 +Q3 23 +Q4 24 +Q5 25 +Q6 26
圖62係設h=7、p=79時之「h bit AD mod p」電路區塊之電路圖。
「h bit AD mod p」電路區塊包含PF0生成部U1、6個半加算器HA1~HA6、及8個全加算器FA1~FA8。
PF0生成部U1係與圖7所示之「h+1 bit mod p」電路區塊之PF0生成部U1相同故省略說明。
半加算器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'。全加算器FA5之輸入為A5 及B5 、進位輸入為C4'、輸出為S5、進位輸出為C5'。全加算器FA6之輸入為A6 及B6 、進位輸入為C5'、輸出為S6、進位輸出為C6'。半加算器HA2之輸入為S0 及PF0、輸出為Q0 、進位輸出為C0。半加算器HA3之輸入為C0及S1、輸出為Q1 、進位輸出為C1。半加算器HA4之輸入為C1及S2、輸出為Q2 、進位輸出為C2。半加算器HA5之輸入為C2及S3、輸出為Q3 、進位輸出為C3。全加算器FA7之輸入為S4及PF0、進位輸入為C3、輸出為Q4 、進位輸出為C4。全加算器FA8之輸入為S5及PF0、進位輸入為C4、輸出為Q5 、進位輸出為C5。半加算器HA6之輸入為C5及S6、輸出為Q6
藉由以上之構成,PF0生成部U1判斷輸入至「h bit AD mod p」電路區塊之二進制A及B之和是否為p=79以上,於A及B之和為p=79以上之情形時,為自A及B之和中減去79,而藉由半加算器HA2~HA6、及全加算器FA7、FA8,向A及B之和上加上作為8位元二進制之79之補數的49。
其次,對圖56所示之「X k-times」電路進行說明。
圖63係「X k-times」電路區塊之電路記號。
「X k-times」電路區塊係算出輸入X之冪(X)j 而輸出之電路,其係由時脈clj (j=1~p-1)控制。
「X k-times」電路包含「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
其次,對計算下述運算處理中常用之Zp之要素j之m乘方之電路區塊進行說明。以下,將該電路區塊稱為「(j)i (j=1 to p-1)」電路區塊。
圖65係表示「(j)i (j=1 to p-1)」電路區塊之電路記號之圖。
「(j)i (j=1 to p-1)」電路區塊係藉由時脈cki (i=0~p-2)與clj (j=1~p-1)控制,且與時脈clj 之上升同步而輸出(j)i
圖66中(A)係「(j)i (j=1 to p-1)」電路區塊之方塊圖,圖66中(B)係控制「(j)i (j=1 to p-1)」電路區塊之時脈cki 及clj 之時序圖。
「(j)i (j=1 to p-1)」電路區塊係相對於Zp之零以外之所有要素1~p-1依序算出0~p-2乘方並將其保持於暫存器之電路。
「(j)i (j=1 to p-1)」電路區塊如圖66所示包含「X Zp」電路區塊、「Counter(1 to p-1)」電路區塊、「Ro(1~p-1)」暫存部。
決定指數之時脈為cki ,根據第幾次之時脈cki 而決定指數i。另一方面,自1起依序指定Zp之要素者為時脈cl,時脈clj 之次數j為要質數。
「Counter(1 to p-1)」電路區塊係連接於「X Zp」電路區塊之一方之輸入。將cki 作為啟動信號,於clj 之上升之時序在1~p-1之範圍內遞增計數。
「Ro(1~p-1)」暫存部包含p-1個暫存器,於in之時脈/clj 之上升時將輸入i1 ~ip-1 依序儲存至第1~p-1個暫存器,於out之時脈clj 之上升時依序輸出第1~p-1個暫存器之內容11 ~1p-1
如圖66所示,使「Counter(1 to p-1)」電路區塊與「Ro(1~p-1)」暫存部之輸入時脈ck及cl同步,若藉由「X Zp」電路區塊將「Ro(1~p-1)」暫存部之輸出與「Counter(1 to p-1)電路區塊之輸出相乘,則於時脈cki 上升之後,每當clj 上升時自「X Zp」電路區塊中輸出(j)i
其次,對總括求出徵候群m S之成分要素之運算電路進行說明。以下,將該運算電路稱為「徵候群成分要素生成電路」。
若於0~p-2之範圍內掃描m,則徵候群m S之成分需要S0 ~Sp-2+ε 之ε個。數55表示徵候群m S之成分生成所需之運算處理之式。
[數55]
圖67中(A)係徵候群成分要素生成電路之電路圖,圖67中(B)係控制徵候群成分要素生成電路之時脈cki (i=0~p-2+ε)、clj (j=1~p-1)之時序圖。
徵候群成分要素生成電路如圖67中(A)所示包含「Ro(1~p-1)」暫存部、「(j)i (j=1 to p-1)」電路區塊、「X Zp」電路區塊、「h bit AD mod p」電路區塊、「Rgstr」暫存器、及「Ri(0~p-2+ε)」暫存器。
自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 之方式被控制。藉由「XZp」電路區塊生成該等積(j)i yj ,與時脈clj (j=1~p-1)同步而藉由「h bit AD mod p」電路區塊及「Rgstr」暫存器之迴路進行相加,作成徵候群成分Si 。將所得之Si 於時脈cki+1 儲存至「Ri(0~p-2+ε)」暫存器之第i個暫存器。於時脈cki 之i=0~p-2+ε處理該過程,獲得所有徵候群成分並儲存至「Ri(0~p-2+ε)」暫存部。
其次,對求出錯誤位置檢索多項式Ψ(x)之運算電路進行說明。以下,將該運算電路稱為「錯誤位置檢索多項式生成電路」。
數56表示求出錯誤位置檢索多項式Ψ(x)之x之各次數j之係數Ψj 之運算處理所需的處理式。
[數56]
圖68係錯誤位置檢索多項式生成電路之方塊圖。
錯誤位置檢索多項式生成電路係使用徵候群uS=(uSm ,uSm+1 ,...,uSm+ε )而搜索錯誤之步驟中使用之電路。
根據錯誤位置檢索多項式生成電路,無須使用複雜之歐幾裏得法,藉由簡單之巡迴電路便可生成錯誤位置檢索多項式Ψ(x)。
錯誤位置檢索多項式生成電路包含求出數56所示之第2式右邊之ΣΨj-1 Sm+i 之第1部分電路U1、及求出同一數56所示之第2式右邊之-u(j)-1 的第2部分電路U2。
第1部分電路U1包含ε-1個串列連接之「Rgstr」暫存器<1>~<ε>、連接於各「Rgstr」暫存器間之連接點的ε-1個「X Zp」電路區塊<1>~<ε>。
「Rgstr」暫存器<1>之初始值為'1',其他「Rgstr」暫存器<2>~<ε>之初始值為'0'。
第1部分電路U1係由輸入至各「Rgstr」暫存器之時脈ck控制,於第j次之時脈ckj 之上升時,自「Rgstr」暫存器之連接點輸出各次數之係數Ψj-1 、Ψj-2 、...、Ψj-(ε-1) 、Ψj-ε 。係數不存在之連接點為'0',故對於「X Zp」電路區塊<1>~<ε>之徵候群成分Sm+1 ~Sm+ε 之積運算並無幫助。「X Zp」電路區塊<1>~<ε>之輸出每兩個地由「h bit AD mod p」電路區塊進行和運算,藉由該等「h bit AD mod p」電路區塊之符梯而最終獲得ΣΨj-i Sm+i
第2部分電路U2包含「Counter(1 to ε)」電路區塊、「X Zp」電路區塊<a>、<b>、及「j-1 dec」電路區塊。
第2部分電路U2根據時脈ckj ,自「Counter(1 to ε)」電路區塊所生成之j與徵候群成分Sm ,利用「X Zp」電路區塊<a>及「j-1 dec」電路區塊而生成(jSm )-1 。並且,自該生成之(jSm )-1 與設定之η藉由「X Zp」電路區塊<b>而獲得u(j)-1
並且,藉由「X Zp」電路區塊<c>,進行第1部分電路U1所生成之ΣΨj-i Sm+i 與第2部分電路U2生成之u(j)-1 之相乘,獲得係數Ψj
係數Ψj 係h位元之二進制,為進行負數表示而以補數表現。因此,相對於「X Zp」電路區塊<c>之輸出,藉由反相器IV使其反轉後,藉由「h bit AD mod p」電路區塊而加上'1'。藉此,可獲得h位元之二進制之補數表現。
再者,圖68所示之「j-1 dec」電路區塊係求出Zp之要素j之逆元j-1 的電路。關於「j-1 dec」電路區塊之詳細說明於下文敍述。
根據以上所說明之錯誤位置檢索多項式生成電路,若置入ε次之時脈ck則於各節點獲得j=ε之係數Ψjj-ε
再者,用於實用p-adic單元記憶體之情形時,ε係選擇5或6,錯誤位置檢索多項式生成電路所需之電路區塊數較少,作為電路規模而言於實用上足夠小。
於Ψ(x)之次數與η一致之情形時,需要求出該Ψ(x)之根及其多重度。因此,其次對計算求出根之多重度時所需之哈塞微分多項式之係數的運算電路。以下,將該運算電路稱為「哈塞微分多項式係數生成電路」。
哈塞微分多項式之係數及其係數與Ψ(x)之係數之關係係如數57般。
[數57]
即,根據數57亦可知,哈塞微分多項式係數生成電路進行Ψ(x)之係數與二項係數之相乘,使用時脈ck及cl生成各微分之階數之各次數之係數,並將所有係數儲存於暫存器。
圖69中(A)係哈塞微分多項式係數生成電路之方塊圖,圖69中(B)係控制哈塞微分多項式係數生成電路之時脈ck及cl之時序圖。
哈塞微分多項式係數生成電路包含記錄有Zp之各要素i之階乘i!之「i!」表格、記錄有其逆元之「(i!)-1 」表格、及記錄有錯誤位置檢索多項式Ψ(x)之係數Ψi 的「Ψi 」表格。關於「i!」表格及「(i!)-1 」表格而言,例如p=17之情形時實用上可控制為足夠小之規模。
又,關於「Ψi」表格而言,係由圖68所示之錯誤位置檢索多項式生成電路生成,故予以使用。
哈塞微分多項式係數生成電路如圖69所示包含「i!」表格、「(i!)-1 」表格、及「Ψi 」表格、「X Zp」電路區塊、及切換該等連接之控制開關SW。非選擇之節點以「XZp」電路區塊之積運算之結果為'0'的方式,將控制開關SW之輸出側之節點以初始狀態放電為'0'。
時脈ck之時脈數係對應於微分之階數,cki 之i為1~ε之值。另一方面,時脈cl相當於次數,若微分之階數提高則無用之次數增加。因此,對於時脈ck而言無須每次產生相同數,但圖69之電路中係每次產生相同次數ε。因此,儲存時序為ε2 個,儲存係數之「Ri(0~ε)/j(0~ε-1)」暫存部無需對應於所有時脈之暫存器,只要有大致一半暫存器便可。
再者,為於暫存器上預先儲存Ψ(x)之係數、即相當於Ψ[0] 之係數而適當地設定ck0
其次,對計算錯誤位置檢索多項式Ψ(x)之根及其多重度的運算電路進行說明。以下,將該運算電路稱為「錯誤位置檢索多項式根/多重度運算電路」。
錯誤位置檢索多項式根/多重度運算電路將哈塞微分多項式之0階微分視作Ψ(x),對於Zp之各要素而言若哈塞微分多項式非零則將計算轉向下一要素,而於哈塞微分多項式為零期間則提高微分之階數。對於各Zp之要素,若暫存器中殘留有哈塞微分多項式非零之最初之哈塞微分之階數,則階數非零之要素為根,剩餘之階數為此根之多重度。即,自暫存器中選擇內容非'0'者,其保持之值則為此根之多重度。
具體而言,將錯誤位置檢索多項式Ψ(x)之根設為α、將Ψ(x)之i階之哈塞微分多項式設為[Ψ(x)][i] ,則α之多重度為n時之關係式係如數58般。
[數58]
錯誤位置檢索多項式根/多重度運算電路相對於Zp之各要素α,無論是否為Ψ(x)之根而求出具備該數58之n。n=0之情形時,表示α並非根。
圖70中(A)係錯誤位置檢索多項式根/多重度運算電路之方塊圖,圖70中(B)係控制錯誤位置檢索多項式根/多重度運算電路之時脈ck、cl、及clk之時序圖。
錯誤位置檢索多項式根/多重度運算電路於時脈ck對Zp之要素1~p-1進行掃描,於時脈cl求出哈塞微分之階數、於時脈clk求出其階數之哈塞微分多項式之值。時脈ck係於所計算之哈塞微分多項式之值非零之情形時產生,且置入下一Zp之要素之循環。
錯誤位置檢索多項式根/多重度運算電路如圖70中(A)所示包含「(j)i (j=1 to p-1)」電路區塊、「Ro i(0~ε)/j(0~ε)」暫存部、「X Zp」電路區塊、「Rgstr」暫存器<1>、「h bit AD mod p」電路區塊、「Rgstr」暫存器<2>、「clock cl gen.」電路區塊、「Counter(0 to ε)」電路區塊、「Li(1~p-1)」暫存部。
「(j)i (j=1 to p-1)」電路區塊將時脈ck接受α次而選擇要素α,將時脈clk接受j+1次而輸出α之j乘方。
「Roi(0~ε)/j(0~ε)」暫存部係接受時脈cli 及clkj 而輸出哈塞微分多項式之係數Ψ[i] j 之暫存器,其係相當於圖69所示之「Ri(0~ε)/j(0~ε-1)」暫存部者。
「X Zp」電路區塊對「(j)i (j=1 to p-1)」電路區塊之輸出αj 、與「Ro i(0~ε)/j(0~ε)」暫存部之輸出Ψ[i] j 進行積運算,輸出αj Ψ[i] j
以上,藉由對「(j)i (j=1 to p-1)」電路區塊、「Ro i(0~ε)/j(0~ε)」暫存部、及「X Zp」電路區塊賦予ε+1次時脈clk而可獲得哈塞微分多項式之值。再者,為簡化時脈ck、cl、及clk之控制,亦計算該計算中不存在之0之值之項的和。因此,原本必要之時脈clk之總數變成一半左右。
微分多項式之值[Ψ(α)][i] 為零時為'0'、其他時候為'1'而取入「Rgstr」暫存器<1>。
「Rgstr」暫存器<1>所保持之值係於時脈clk0 之時序作為時脈ckα (α=1~p-1)而輸出。該時脈ckα 保持至時脈clkε 重置為止。
「Rgstr」暫存器<1>之初始值為'1',故時脈ck1 於最初之clk0 上升。時脈ck2 之後依照計算結果而於clk之任意循環之clk0 上升。
「clock cl gen.」電路區塊與時脈clk0 同步而產生時脈cli ,每當時脈ckα 上升時重置為時脈cl0
「Counter(0 to ε)」電路區塊於時脈ckα 重置為0,每當置入時脈cl時進行遞增計數,輸出時脈cl之次數-1。該輸出係儲存於「Li(1~p-1)」暫存部。
「Li(1~p-1)」暫存部係根據時脈ckα 而切換輸入,故第α各暫存器中儲存有其多重度。
然而,於p較小之情形時,計算中利用之Zp之要素係以表格之形式存在,可預先準備。藉此,可省略計算,從而可減小電路規模。例如,實用之p最多為19左右,故將要素之逆元及階乘等設為表格。該等表格構成二進制之解碼器。
尤其,Zp之要素之逆元較多情形時對於變化之輸入要素而言為立刻需要,故較理想為作為解碼器電路而構成。
為自要素j求出逆元j-1 ,而求出j×j-1 ≡1(mod p)之關係,將j及j-1 如數59所示般構成h位元之二進制表示,而可作成其轉換解碼器。
[數59]
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 )h-2 2h-2 +(j-1 )h-1 2h-1
關於具體之轉換解碼器之構成於下文敍述。
又,要素j之階乘j!於哈塞微分多項式之係數之計算中為必要者,可預先求出而依序利用。
再者,計算j!時求出Zp之要素之值。因此,p為質數,且構成階乘之各要素之數彼此互為素,故藉由利用數60所示之遞迴公式,即便不涉及較大數亦可求出階乘。
[數60]
Input:Ii =(j)i
j=(j)0 +(j)1 2+(j)2 22 +Λ+(j)h-2 2h-2 +(j)h-1 2h-1
Output:Ii =(j!)i
j!(mod p)≡[(j-1)!(mod p)]×j(mod p)
j!=(j!)0 +(j!)1 2+(j!)2 22 +Λ+(j!)h-2 2h-2 +(j!)h-1 2h-1
圖71係作為具體例而以實用上略大質數之p=23之情形時的逆元與階乘之表。若使用該等數字之5位元之二進制表示則可作成轉換解碼器。
其次,對作為轉換解碼器之「j-1 dec」電路區塊之具體電路構成進行說明。
圖72中(A)係求出h=7時之j之逆元j-1 之解碼器電路之方塊圖,圖72中(B)係控制本解碼器電路之時脈τ0 及τ1 之時序圖。
本解碼器電路構成為將7位元之二進制資料I解碼為7位元之其他二進制資料O的一般電路。
若向I代入j、向O代入j-1 則可作為「j-1 dec」電路區塊而使用。本解碼器電路係用於Zp之要素間之轉換,且於時脈τ0 、τ1 之2個時脈動作。
解碼電路根據邏輯閘極每2個位元地將位元I0 ~I5 部分解碼而生成信號/A0 ~/A3 、/B0 ~/B3 、C0 ~C3 ,進而自/Ai 及/Bk 使用NOR閘極而生成Ai Bk
又,解碼電路對應輸出位元Om 而具有持有16個Vss之放電路徑的NOR連接,將鎖住NOR節點之位準反轉而設為Om 。再者,鎖存電路之重置僅使用1個時脈τ0
16個放電路徑分別藉由信號Ai Bk (i=0~3、k=0~3)而被門操作,進而以輸入位元I6 與/I6 分支。該分支之下依照轉換之對應而配置有由Cmi (mi=0~3)控制之NMOS電晶體之OR連接。該等分支於時脈τ1 連接於Vss。
由Cmi 控制之電晶體係藉由於轉換時將對應於位元Om 之輸入I之位元以Ai Bk 分類後,以I6 之'1'、'0'進行分類而自C0 ~C3 之中選擇所含者而配置。
對於運算處理求出之錯誤E,確認其李度量為ε以下,可知不會變成誤校正而進行校正。
因此,其次對計算Zp之要素之李度量之運算電路元件進行說明。以下,將該運算電路元件稱為「h bit LMp」電路區塊。
對於h位元之二進制表示之Zp之要素a而言,其李度量Q=|a|可表現為Q=/PF0×a+PF0×(p-a)。此處PF0於a≧(p+1)/2之情形時為'1',於a<(p+1)/2之情形時為'0'。因此,為求出a之李度量,於a≧(p+1)/2之情形時自p減去a、即向p中加上a之補數便可。
此處,作為具體例,對h=7、p=79之情形進行說明。
h=7、p=79之情形時之A與Q之關係係如數61般。
[數61]
a=A0 +A1 2+A2 22 +A3 23 +A4 24 +A5 25 +A6 26
Q=|a|(Q=/PF0×a+PF0×(p-a))
Q=Q0 +Q1 2+Q2 22 +Q3 23 +Q4 24 +Q5 25 +Q6 26
圖73係「h bit LMp」電路區塊之電路記號,圖74係h=7、p=79之情形時之「h bit LMp」電路區塊之方塊圖。
「h bit LMp」電路區塊輸入h位元之二進制A0 ~Ah-1 ,輸出h位元之二進制Q0 ~Qh-1
「h bit LMp」電路區塊包含PF0生成部U1、XOR閘G1、2個半加算器HA1、HA2、及5個全加算器FA1~FA5。
PF0生成部U1於Vcc端子及Vss端子間包含串列連接之PMOS電晶體QP1、QP2、NMOS電晶體QN1、及QN2。該等電晶體QP1、QP2、QN1、及QN2分別由輸入A5 、A6 、A3 、及A5 控制。
又,PF0輸出部U1此外還包含2個PMOS電晶體QP3、QP4、2個NMOS電晶體QN3、QN4、及反相器IV1。
電晶體QP3、QP4係串列連接,且其兩端係連接於電晶體QP1之源極及汲極。電晶體QN3係連接於電晶體QN1之源極及汲極間。又,電晶體QN4係連接於電晶體QN1之源極及電晶體QN2之汲極(Vss端子)間。電晶體QP3、QP4、QN3、及QN4分別係由輸入A3 、A4 、A4 、及A6 控制。反相器IV1之輸入係連接於電晶體QP2及QN1之連接點。該反相器IV1之輸出為進位PF0。
XOR閘G1輸入Aj (j=0~7)及PF0,輸出Bj
全加算器FA1之輸入為B0 及PF0、進位輸入PF0、輸出為Q0 、進位輸出為C0。全加算器FA2之輸入為B1 及PF0、進位輸入為C0、輸出為Q1 、進位輸出為C1。全加算器FA3之輸入為B2 及PF0、進位輸入為C1、輸出為Q2 、進位輸出為C2。全加算器FA4之輸入為B3 及PF0、進位輸入為C2、輸出為Q3 、進位輸出為C3'。半加算器HA1之輸入為C3及B4 、輸出為Q4 、進位輸出為C4。半加算器HA2之輸入為C4及B5 、輸出為Q5 、進位輸出為C5。
該具體例中若輸入為40以上則將a之補數加至p。a之補數於PF0=1之情形時係藉由XOR閘將a之各位元表示Aj 反轉而設為Bj ,於其上加1而生成。
p=79時79=(1001111)2 ,故以PF0表示,進而作為1而使用PF0,將以PF0為1而表示79者與Ai 之反轉或其自身之Bj 相加。
「h bit LMp」電路與時脈非同步地動作,置入輸入而輸出所計算之李度量。
其次,對計算錯碼字E之李度量w(E)=Σ|ej |(j=1~p-1)之運算電路進行說明。以下,將該運算電路稱為「李度量運算電路」。
圖75係李度量運算電路之方塊圖。
李度量運算電路包含「Ro(0~p-1)」暫存部、「h bit LMp」電路區塊、「h bit AD mod p」電路區塊、及「Rgstr」暫存器。
自多項式Ψ(x)所得之錯碼字E係作為初始值而儲存於「Ro(0~p-1)」暫存部。自「Ro(0~p-1)」暫存部根據時脈ckj 而依序取出E之成分ej
「h bit LMp」電路區塊自該取出之成分ej 而計算其李度量|ej |。「h bit LMp」電路區塊將對應時脈ckj 所計算出之成分之李度量|ej |輸出至「h bit AD mod p」電路區塊。
藉由「Rgstr」暫存器與「h bit AD mod p」電路區塊所構成之迴路將該|ej |相加。並且,第p-1次之時脈ck上升之時間點之「h bit AD mod p」電路區塊之輸出為w(E)=Σ|ej |。
再者,E係作為Ψ(x)之根α及多重度之組,自上述運算所得之α、[n],藉由轉換t=α-1、et =(utm )-1 n而獲得成分et 。若w(E)≦ε則結束一系列錯誤搜索,根據E而可進行校正。
若結束錯誤搜索獲得藉由錯誤代碼E而經校正之李度量碼C,則需要將其復原為Zp之資料代碼A。該運算相當於以G為生成矩陣而進行C=AG之逆運算,獲得矩陣之逆矩陣係規模較大之運算。因此,逐次自C之要素求出A之要素。數62表示計算之過程。其中,於數62中,須注意j=1~p-1、n=p-1、p-ε-3=n-γ-1=k-1。
[數62]
如數62所示,將cj =Σ(j)i+1 ai 之關係依序變形,a0 至a1 、繼而a1 至a2 、...而逐次地求出am ,此為計算之原理。
兩邊乘以j之冪之逆元而作為j之Zp之所有元之項合計。此時係利用Zp之所有元之和為零而進行變形。
數63係C之成分與A之成分之關係式。
[數63]
其次,對具體實現該數63之關係式之運算電路進行說明。
再者,獲得am 後求出am+1 時,係一面求出c(m) j 一面依序計算am+1 之j之和。此時,j所需之冪於c(m) j 時為m+1乘方,於am+1 時為m+2乘方。因此,本運算電路係使用將計算Zp之要素之冪之電路區塊略作修正而成者。
圖76中(A)係自C=AG求出A=CG-1 之運算電路(以下將該運算電路稱為「逆轉換電路」)之方塊圖,圖76中(B)係控制逆轉換電路之時脈ck及cl之時序圖。
逆轉換電路包含逐一利用運算求出資料代碼A之要素之第1部分電路U1、及每次進行該運算所需之李度量碼C之成分之轉換的第2部分電路U2。
部分電路U1及U2配置有產生有Zp之要素j之m+1乘方與m乘方之「(j)i (j=1 to p-1)2」電路區塊。該「(j)i (j=1~p-1)2」電路區塊相對於部分電路U1,於時脈cl之循環數為j之情形時,輸出以時脈cki 之循環數i為指數之要素j之冪。另一方面,相對於部分電路U2,於時脈cl之循環數為j之情形時,輸出以比時脈cki 之循環數僅小1之i為指數的要素j之冪。
該「(j)i (j=1~p-1)2」電路區塊係相對於「(j)i (j=1 to p-1)」電路區塊,進而作為取出內部節點之信號之電路重新經符號化而成者。詳細說明於下文敍述。
「(j)i (j=1 to p-1)2」電路區塊於時脈cl之第1循環相對於部分電路U1,輸出Zp之要素自身,相對於部分電路U2輸出1。輸出至該部分電路U2之1並非原本之運算中出現的值,故需要以不影響運算結果之方式進行處理。因此,為消除該1之影響,於部分電路U2之積運算中,在時脈ck之最初之循環時將另一方之輸入設為'0',而使積運算之結果為零。
首先,對第1部分電路U1進行說明。
第1部分電路U1除了包含「(j)i (j=1 to p-1)2」電路區塊以外,還包含「(j)-1 dec」電路區塊、2個「X Zp」電路<1>、<2>、「h bit AD mod p」電路區塊<1>、「Rgstr」暫存器<1>、及「Li(0~k-1)」暫存部。
「(j)i (j=1 to p-1)2」電路區塊之輸出(j)m+1 係輸入至「(j)-1 dec」電路區塊。
「(j)-1 dec」電路區塊中,將(j)m+1 轉換為其逆元(j)-(m+1) ,並將其輸出至「X Zp」電路區塊<1>。
「X Zp」電路區塊<1>進行自「(j)-1 dec」電路區塊輸入之(j)-(m+1) 、及與時脈ck間之p-1個時脈cl同步而自第2部分電路U2輸出之cj (=c(m-1) j )的積運算,並將其輸出至「h bit AD mod p」電路區塊<1>。
自「h bit AD mod p」電路區塊<1>輸出之積係藉由包含初始值為'0'之「Rgstr」暫存器<1>與「h bit AD mod p」電路區塊<1>之迴路而進行加算。該結果係自「h bit AD mod p」電路區塊<1>輸出至「X Zp」電路區塊<2>。
「X Zp」電路區塊<2>中,對自「h bit AD mod p」電路區塊<1>輸出之和與(p-1)-1 之積進行運算,獲得依照數62所示之計算式的am 。該am 藉由下一循環之開始之時脈ckm+1 而儲存至「Li(0~k-1)」暫存部之第m個暫存器。
繼而,對第2部分電路U2進行說明。
第2部分電路U2除了包含「(j)i (j=1 to p-1)2」電路區塊以外,還包含「Rgstr」暫存器<2>、「X Zp」電路區塊<3>、2個「h bit AD mod p」電路區塊<2>、<3>、及「R(1~p-1)」暫存部。
「Rgstr」暫存器<2>於ck1 之後之循環中輸出所設定之am 。即,輸出am-1 係於時脈ckm 輸出。於時脈ck之最初之循環ck0 中「Rgstr」暫存器<2>之輸出節點之初始值係設定為'0'。其原因在於如上所述將時脈cl1 時之積運算之結果設為零。
「X Zp」電路區塊<3>中,生成時脈ck之循環ckm 中產生之「(j)i (j=1 to p-1)2」電路區塊之輸出(j)m 、及「Rgstr」暫存器<2>之輸出am-1 之積,並經由反相器IV1而將其輸出至「h bit AD mod p」電路區塊<2>。
「h bit AD mod p」電路區塊<2>中,求出經由反相器IV1所輸出之「Rgstr」暫存器<2>之輸出am-1 之補數,生成-jm am-1 ,並將其輸出至「h bit AD mod p」電路區塊<3>。
「h bit AD mod p」電路區塊<3>中,生成自「h bit AD mod p」電路區塊<2>輸出之-jm am-1 、及與時脈cl而自「R(1~p-1)」暫存部輸出之cj (=c(m-2) j )的和,並作為c(m-1) j 輸出。自該「h bit AD mod p」電路區塊<3>輸出之c(m-1) j 係與時脈cl之下降同步而記錄至「R(1~p-1)」暫存部之第j個暫存器。再者,根據「Rgstr」暫存器<2>之設定,「R(1~p-1)」暫存部之初始值為c(m-2) j =c(m-1) j =C。
其次,對圖76所示之「(j)i (j=1 to p-1)2」電路區塊進行說明。
「(j)i (j=1 to p-1)2」電路區塊係使相對於Zp之零以外之所有要素1~p-1,依序求出0~p-2乘方而保持於暫存器之電路即「(j)i (j=1 to p-1)」電路區塊變形而成之電路。
圖77係表示「(j)i (j=1 to p-1)2」電路區塊之電路記號之圖。又,圖78中(A)係「(j)i (j=1 to p-1)2」電路區塊之方塊圖,圖78中(B)係表示控制「(j)i (j=1 to p-1)2」電路區塊之時脈ck及cl之時序圖。
「(j)i (j=1 to p-1)2」電路區塊係如圖77所示與輸入之時脈cki (i=0~p-2)及clj (j=1~p-1)同步而輸出(j)i+1 及(j)i
「(j)i (j=1 to p-1)2」電路包含「Counter(1~p-1)」電路區塊、「X Zp」電路區塊、及「R(1~p-1)」暫存部。
「R(1~p-1)」暫存部包含p-1個暫存器,於in之時脈/cl之上升時將輸入依序儲存至第1~p-1個暫存器,且於out之時脈/cl之上升時依序輸出第1~p-1個暫存器之內容。
「X Zp」電路區塊中,進行與輸入時脈cl同步而遞增計數之「Counter(1~p-1)」電路區塊之輸出與「R(1~p-1)」暫存部之輸出的相乘。
藉由以上之構成,自「R(1~p-1)」暫存部於cki 上升後之clj 之各循環中每當clj 上升時輸出(j)i 。同時,自「X Zp」電路區塊中輸出指數與(j)i 僅相差1之(j)i+1
[徵候群轉換法]
其次,於表示李度量碼之代碼之空間觀察時,研究進行徵候群轉換法之錯誤之校正,並研究該方法能夠有效活用之條件。
若將實際上不明之真錯碼字之點設為E=(e1 ,e2 ,...,ej ,...,en ),則於徵候群轉換法中,將其轉換為虛擬的錯碼字之點m E=(u(1)m e1 ,u(2)m e2 ,...,u(j)m ej ,...,u(n)m en )。此時,須注意成分座標自身不變。該情形時,徵候群係如數64般。
[數64]
該等轉換於m≠m'、η≠η'之情形時得出m E≠m 'E。即,若η不同則不會變成同一點。其原因在於,於m E=m 'E之情形時,對於所有i而言必須為u(i)m ei =u'(i)m' ei 、即數65必須成立,但數65於E=0以外不成立。
[數65]
因此,由於(j)p-1 =1,對m=0~p-2進行掃描,作為η而言,徵候群轉換法為使錯誤位置檢索多項式之構成簡單,有效的η係使用γ-1及γ-2之兩個。如此,包含真之錯碼字點在內獲得2(p-1)個點。該等點若包含認為受到與真之錯誤相同之李度量之制約之所有錯碼字點,則可求出錯誤位置檢索多項式而獲得解,幾次可進行無遺漏之錯誤之搜索、及可校正時之校正。
於完全不含錯碼字點之情形時,自真之錯誤轉換之點以外有可能存在對應於錯誤之點,故不能確定無法進行錯誤位置檢索而無法特點錯誤,亦存在錯誤校正產生遺漏之情形。
因此,其次對錯誤量之條件、及可校正之條件進行具體說明。
於徵候群轉換法中,使用巡迴使用徵候群之p-1個轉換及η之值,而利用最大2(p-1)個轉換。因此,其次研究藉由該轉換是否可完全校正所產生之錯誤。
如上所述,若將錯碼字之點設為E=(e1 ,e2 ,...,ej ,...,en ),則於徵候群轉換法中,其變成虛擬的錯碼字之點m E=(u(1)m e1 ,u(2)m e2 ,...,u(j)m ej ,...,u(n)m en )。
存在ξ個錯誤成分位置,若將該等表示為ji (i=1~ξ),則徵候群轉換中如數66般和為η。
[數66]
於數66中,考慮εi 為變數,變數εi 為1~p-1,且ξ個和固定為η,據此各變數之值之選擇為(p-1)ξ-1 。其中,最後之選擇中包含0,故排除該情形。
若ξ個自由變數εi 之和與η疊合時之數設為n(ξ),則最後選擇之前必須將和為η之情形排除,故變成n(ξ)=(p-1)ξ-1 -n(ξ-1)。據此獲得如數67之n(ξ)。
[數67]
ξ:偶數n(ξ)={(p-1)ξ -1}/p
ξ:奇數n(ξ)={(p-1)ξ +1}/p
該情形中存在成分均位於0~p/2之範圍者、即成分僅屬於J+ 者,故若轉換之數為該情形之數以上則不同轉換可校正不同情形,因此可作成J+ 之虛擬錯誤,並利用徵候群轉換法求解。
自徵候群轉換法觀察時,該條件係ξ=2之情形,其係如上述考察般為2根之情形。然而,於3根以上(ξ≧3)之情形時無法排除未求解之錯誤之情形。
即,徵候群轉換法之處理雖然簡單,但存在錯誤校正之意外失敗。存在產生各種式樣之錯誤之可能性之情形時,可知對於徵候群轉換法之轉換之範圍,使用循環轉換徵候群成分以外之轉換方法增加轉換數,或者處理變得複雜而不適合片上,但使用歐幾裏得之疊代法構成錯誤位置檢索多項式便可。
其次,根據以李度量碼可錯誤校正之條件之w(E)≦ε、與徵候群轉換法之無遺漏搜索條件之關係,對運算處理結果所得之錯誤量與誤校正之關係進行總結。
(1)ε之分配數≦搜索數之情形時
‧真之錯誤字之李度量為ε=γ-1以下之情形時:根據徵候群轉換法所得之解E而發現其李度量W(E)≦ε時,確認其為真之錯誤,故結束錯誤位置檢索。
其原因在於ε以下之錯誤字間之自身映射而停止解法,真之錯誤與可應用解法之錯誤相對應。
‧真之錯誤字之李度量為γ以上之情形時:根據徵候群轉換法所得之解E發現其李度量W(E)≦ε時,其係相鄰代碼之誤錯誤,故李度量碼無法進行此種錯誤與真之錯誤之判斷。
再者,此係無論使用何種ECC均無法排除之誤校正之情形。
‧徵候群轉換法所得之解E中並無李度量w(E)≦ε者之情形時:有時錯誤代碼點落於碼字間之間隙,徵候群轉換法有可能發現真之錯誤。
錯誤於真之代碼中最短,且其代碼係唯一地歸屬,故將徵候群轉換法所得之錯誤E中持有最小李度量w(E)>ε者作為Emin ,Emin 僅由1個成分構成之情形時,採用Emin 作為真之錯誤。自真之錯誤轉換而得之所有虛擬錯誤中包含真之錯誤之產生式樣之所有情形,故錯誤得以確定。其中,Emin 存在複數個之情形時無法確定,故無法獲得解。
(2) ε分配數>搜索數之情形時
除了對真之錯誤之誤校正以外,亦會產生徵候群轉換法之意外失敗。
搜索之次序於ε之分配數≦搜索數之情形時,為「每當發現解E時計算w(E)。於w(E)≦ε之情形時由於發現真之錯誤而結束處理,於w(E)>ε之情形時繼續進行掃描,進而發現較小之w(E)。所有處理之最後為最小之w(E)w(E)>ε之情形時,無法應用解法」。
[p-adic記憶體系統之驗證方法]
最後,對驗證「p-adic world」之運算處理之電路之動作的簡便方法進行說明。
「binary world」與「p-adic Zp world」之入口之轉換及p-adic記憶體系統之李度量碼轉換之電路較為複雜,難以驗證並特定其功效。
因此,若可查看輸入資料及單元陣列保持之資料之狀態而可判斷電路動作則有效。可利用對特殊資料式樣而言p-adic單元之狀態變得特殊,而進行該驗證,故對此進行說明。該驗證方法係使用'0'及'1'作為批次處理之資料,監控此時之單元陣列之記憶體單元之狀態而進行判斷者。
輸入資料可如數68般表示。
[數68]
D(h)=d0 (2h )0 +d1 (2h )1 +Λ+dδ-3 (2h )δ-3 +dδ-2 (2h )δ-2 +dδ-1 (2h )δ-1
D(h)=a0 (p)0 +a1 (p)1 +Λ+aδ-2 (p)δ-2 +aδ-1 (p)δ-1 +aδ (p)δ
此處,ECC批次處理對象之輸入資料係以二進制設為1。該情形時,輸入資料之二進制表現、及p進數表現係如數69般。
[數69]
D=(d0 ,d1 ,Λ,dδ-3 ,dδ-2 ,dδ-1 )=(1,0,Λ,0,0,0)
D=(a0 ,a1 ,Λ,aδ-2 ,aδ-1 ,aδ )=(1,0,Λ,0,0,0)
於輸入資料之二進制設為1之情形時,Zp與單元位準之對應於各記憶體單元中相同,儲存其之記憶體單元群之多值位準均設為不同。
二進制資料數為0之情形與為1之情形時不存在相同位準設定之記憶體單元。根據數70之關係,其係必須且充分之判斷條件,李度量碼中0為(0,0,...,0,0,0)之碼字、1為(1,2,...,p-3,p-2,p-1)之碼字。
[數70]
C=AG
再者,二進制資料之'1'係哪一位元位置設為'1'時,係由電路之設定而定,故若該轉換為固有對應則亦會出現無法容易地解讀資料之狀況。
根據該等電路動作之判定條件亦可知,單元位準與Zp之數之對應係對應每一記憶體單元而改變,輸入二進制與儲存資料之p進數之間並無線形關係,故轉換電路中可隨意地設定二進制與p進數之對應。因此,亦可知若鎖定該電路則難以自儲存資料對輸入二進制直接進行反向讀,且對於資料之安全之應用亦變得容易。
若對以上內容進行總結,則根據本實施形態之p-adic記憶體系統之代碼轉換,輸入至記憶體系統之代碼、與記錄於記憶體單元中之位準之對應係如以下所示。
(1) 以特定數之p-adic單元為處理單位之情形時,當輸入之二進制資料為0時對屬於處理單位的所有p-adic單元寫入與Zp之0對應之單元位準。
(2) 以p-1個p-adic單元為處理單位之情形時,當僅輸入之二進制資料之1位元為'1'時對屬於處理單位的p-adic單元寫入與Zp之1~p-1對應之所有單元位準。
(3) 於上述(2)之情形時、且屬於處理單位之所有記憶體單元之Zp之要素與單元位準之對應關係相同的情形時,對屬於處理單位之記憶體單元所寫入之單元位準均不同。
(4) 根據上述(1)及(2),以p-1個p-adic單元為處理單位之情形時,屬於處理單位之各記憶體單元中,當輸入之二進制資料為0時所寫入之單元位準、與僅輸入的二進制資料之1位元為'1'時所寫入之單元位準不同。
以上,先前記憶體單元之多值化需要穩定且高精度之動作,但根據本實施形態之記憶體系統,藉由高效率之錯誤校正,與先前相比可增大動作範圍,故可實現記憶體單元之進而多值化。
[其他]
雖然已描述了某些實施例,但這些實施例僅以實例方式呈現,且並非旨在限制本發明的範圍。實際上,本文所述之新穎方法及系統可以多種其他形式實施:此外,在不背離本發明之精神下,可對本文所述之方法及系統的形式作出各種省略、取代及改變。意欲隨附申請專利範圍及其相等物涵蓋該等形式或修改,如同屬於本發明之範疇及精神一般。
本發明之實施形態可適用於使用具有3以上之位準數之單元的記憶體系統。例如,可適用於使用快閃記憶體、DRAM、PRAM、ReRAM等之記憶體系統。
101...單元組件
201...編碼部
202...p-adic單元記憶體部
203...錯誤檢測‧校正部
204...錯誤檢測‧校正部
205...錯誤檢測‧校正部
206...錯誤檢測‧校正部
207...解碼部
301...2h 進數轉換部
BL...位元線
ck、cl、clk...時脈
FA1~FA8...全加算器
FF...正反器
G1~G6...NAND閘極
HA1~HA6...半加算器
IV1~IV5...反相器
PF0...進位
QN1~QN10...NMOS電晶體
QP1~QP9...PMOS電晶體
R、L...信號
S0~S13...步驟
sa...感測放大器
SL0 ~SLh-1 ...選擇線
SW1~SW3...控制開關
t-SA...感測放大部
U1...PF0生成部
U2...進位輸出電路
U3...移動方向生成部
U4...單位電路
WL...字元線
圖1係表示實施形態之記憶體系統之位元錯誤與代碼錯誤之關係的圖。
圖2係本實施形態之記憶體系統之概略圖。
圖3(A)、(B)係表示本實施形態之記憶體系統之二進制資料及代碼資料之構成的圖。
圖4係表示本實施形態之記憶體系統之自二進制向p進數之轉換過程之一部分的圖。
圖5係表示本實施形態之記憶體系統之向p進數之轉換電路之構成的圖。
圖6係表示本實施形態之記憶體系統之「h+1 bit mod p」電路區塊之電路記號的圖。
圖7係本實施形態之記憶體系統之「h+1 bit mod p」電路區塊之電路圖。
圖8係表示本實施形態之記憶體系統之全加算器之電路記號的圖。
圖9係本實施形態之記憶體系統之全加算器之電路圖。
圖10係表示本實施形態之記憶體系統之半加算器之電路記號的圖。
圖11係本實施形態之記憶體系統之半加算器之電路圖。
圖12(A)、(B)係表示本實施形態之記憶體系統之「X to p」電路區塊之構成的圖。
圖13係表示本實施形態之記憶體系統之「X to p」電路區塊之電路記號的圖。
圖14係表示本實施形態之記憶體系統之「p-adic」電路區塊之電路記號的圖。
圖15係本實施形態之記憶體系統之「p-adic」電路區塊之方塊圖。
圖16係本實施形態之記憶體系統之「binary to p-adic」轉換運算電路之方塊圖。
圖17係本實施形態之記憶體系統之「D-r」暫存器之電路圖。
圖18係控制本實施形態之記憶體系統之「binary to p-adic」轉換運算電路的時脈之時序圖。
圖19係表示本實施形態之記憶體系統之自p進數向二進制之轉換過程之一部分的圖。
圖20係表示本實施形態之記憶體系統之向2h 進數之轉換電路之構成的圖。
圖21係表示本實施形態之記憶體系統之「h+1 bit add p」電路區塊之電路記號的圖。
圖22係本實施形態之記憶體系統之「h+1 bit add p」電路區塊之電路圖。
圖23(A)、(B)係表示本實施形態之記憶體系統之「a to X」電路區塊之構成的圖。
圖24係表示本實施形態之記憶體系統之「a to X」電路區塊之電路記號的圖。
圖25係表示本實施形態之記憶體系統之「p to X」電路區塊之電路記號的圖。
圖26係本實施形態之記憶體系統之「p to X」電路區塊之方塊圖。
圖27係表示本實施形態之記憶體系統之「binary」電路區塊之電路記號的圖。
圖28係本實施形態之記憶體系統之「binary」電路區塊之方塊圖。
圖29係本實施形態之記憶體系統之「p-adic to binary」轉換運算電路之方塊圖。
圖30係本實施形態之記憶體系統之「A-r」暫存器之電路圖。
圖31係本實施形態之記憶體系統之時序信號產生電路之動作概念圖。
圖32係生成本實施形態之記憶體系統之時脈的正反器電路之電路圖。
圖33係本實施形態之記憶體系統之時序信號產生電路之電路圖。
圖34係表示本實施形態之記憶體系統之向p-adic單元之Zp之分配例的圖。
圖35係對本實施形態之記憶體系統之p-adic單元之讀出方法進行說明的圖。
圖36係表示本實施形態之記憶體系統之以對p-adic單元可表示之質數的圖。
圖37係對本實施形態之記憶體系統之對p-adic單元之Zp之分配方法進行說明的圖。
圖38係說明圖37所示之分配方法之效果之圖。
圖39係說明圖37所示之分配方法之效果之圖。
圖40係表示本實施形態之記憶體系統之對於對p-adic單元之Zp之分配例的圖。
圖41係表示本實施形態之記憶體系統之對於對p-adic單元之Zp之分配例的圖。
圖42係表示本實施形態之記憶體系統之對於對p-adic單元之Zp之分配例的圖。
圖43係表示本實施形態之記憶體系統之對於對p-adic單元之Zp之分配例的圖。
圖44係表示本實施形態之記憶體系統之對於對p-adic單元之Zp之分配例的圖。
圖45係表示本實施形態之記憶體系統之對於對p-adic單元之Zp之分配例的圖。
圖46係表示本實施形態之記憶體系統之對於對p-adic單元之Zp之分配例的圖。
圖47係表示本實施形態之記憶體系統之對於對p-adic單元之Zp之分配例的圖。
圖48係對本實施形態之記憶體系統之對p-adic單元之可對應之李度量進行說明的圖。
圖49係對本實施形態之記憶體系統之對p-adic單元之讀出方法進行說明的圖。
圖50係表示本實施形態之記憶體系統之p-adic單元之各位準數之性能的表。
圖51係表示本實施形態之記憶體系統之對p-adic單元之各位準數之性能的表。
圖52係本實施形態之記憶體系統之資料/代碼之轉換次序之流程圖。
圖53係本實施形態之記憶體系統之資料/代碼之轉換次序之流程圖。
圖54係本實施形態之記憶體系統之資料/代碼之轉換次序之流程圖。
圖55係本實施形態之記憶體系統之方塊圖。
圖56(A)、(B)係表示本實施形態之記憶體系統之編碼部之電路構成例的圖。
圖57係模式性表示本實施形態之記憶體系統之「X Zp」電路區塊之積運算處理的圖。
圖58係表示本實施形態之記憶體系統之「X Zp」電路區塊之電路記號的圖。
圖59係本實施形態之記憶體系統之「X Zp」電路區塊之方塊圖。
圖60係模式性表示本實施形態之記憶體系統之「X Zp」電路區塊之運算處理的圖。
圖61係表示本實施形態之記憶體系統之「h bit AD mod p」電路區塊之電路記號的圖。
圖62係本實施形態之記憶體系統之「h bit AD mod p」電路區塊之電路圖。
圖63係表示本實施形態之記憶體系統之「X k-times」電路區塊之電路記號的圖。
圖64係本實施形態之記憶體系統之「X k-times」電路區塊之方塊圖。
圖65係表示本實施形態之記憶體系統之「(j)i (j=1 to p-1)」電路區塊之電路記號的圖。
圖66(A)、(B)係本實施形態之記憶體系統之「(j)i (j=1 to p-1)」電路區塊之方塊圖。
圖67(A)、(B)係求出本實施形態之記憶體系統之徵候群之構成要素之運算電路的方塊圖。
圖68係求出本實施形態之記憶體系統之錯誤位置檢索多項式之運算電路的方塊圖。
圖69(A)、(B)係求出本實施形態之記憶體系統之哈塞(Hasse)微分多項式之係數的運算電路之方塊圖。
圖70(A)、(B)係求出本實施形態之記憶體系統之錯誤位置檢索多項式之根及其多重度的運算電路之方塊圖。
圖71係表示本實施形態之記憶體系統之質數及其逆元及階乘之對應的表。
圖72(A)、(B)係可作為本實施形態之記憶體系統之「j-1 dec」電路區塊而利用之解碼器電路的電路圖。
圖73係表示本實施形態之記憶體系統之「h bit LMp」電路區塊之電路記號的圖。
圖74係本實施形態之記憶體系統之「h bit LMp」電路區塊之方塊圖。
圖75係求出本實施形態之記憶體系統之錯誤代碼之李度量之運算電路的方塊圖。
圖76(A)、(B)係自本實施形態之記憶體系統之C=AG求出A=CG-1 之運算電路的方塊圖。
圖77係表示本實施形態之記憶體系統之「(j)-1 (j=1 to p-1)2」電路區塊之電路記號的圖。
圖78(A)、(B)係本實施形態之記憶體系統之「(j)-1 (j=1 to p-1)2」電路區塊之方塊圖。
101...單元組件
201...編碼部
202...p-adic單元記憶體部
203...錯誤檢測‧校正部
204...錯誤檢測‧校正部
205...錯誤檢測‧校正部
206...錯誤檢測‧校正部
207...解碼部
301...2h 進數轉換部

Claims (20)

  1. 一種記憶體系統,其特徵在於包括:單元陣列,其包含具有p(p為3以上之質數)以上之物理量位準之單元組件;代碼生成部,其將二進制表現之輸入資料轉換為以作為p之餘數體之Zp之要素而表現的寫入代碼;及代碼寫入部,其使Zp之各要素分別對應於不同之上述物理量位準而將上述寫入代碼寫入至上述單元組件;於將上述輸入資料記錄於p-1個上述單元組件之情形時,該等p-1個上述單元組件中,於上述輸入資料為0之情形、及僅1位元為1之情形時,並無寫入為同一物理量位準之單元組件。
  2. 如請求項1之記憶體系統,其包括:代碼讀出部,其將記錄於上述單元組件之物理量位準,作為由與該物理量位準對應之Zp之要素所表現之讀出代碼而讀出;及解碼部,其將上述讀出代碼轉換為二進制表現之輸出資料。
  3. 如請求項2之記憶體系統,其包括錯誤檢測‧校正部,該錯誤檢測‧校正部進行上述讀出代碼之錯誤檢測‧校正;上述錯誤檢測‧校正部自上述讀出代碼生成徵候群,一面依序變更該徵候群之成分之組合一面進行錯誤搜索。
  4. 如請求項3之記憶體系統,其中上述錯誤檢測‧校正部包含以p為模數之加算電路。
  5. 如請求項3之記憶體系統,其中上述錯誤檢測‧校正部包含預先算出之Zp之要素之逆元及階乘之至少一方之表格。
  6. 如請求項3之記憶體系統,其中上述解碼部藉由上述錯誤檢測‧校正部無法檢測出上述讀出代碼之錯誤之情形時,將包含錯誤之上述讀出代碼直接轉換為上述輸出資料。
  7. 如請求項1之記憶體系統,其中上述特定之單元組件之Zp之要素與上述物理量位準之對應關係,與其他上述單元組件之Zp之要素與上述物理量位準之對應關係不同。
  8. 如請求項1之記憶體系統,其中上述單元組件包含複數個記憶體單元。
  9. 一種記憶體系統,其特徵在於包括:單元陣列,其包含具有p(p為3以上之質數)以上之物理量位準之單元組件;代碼生成部,其將二進制表現之輸入資料轉換為以作為p之餘數體之Zp之要素所表現的寫入代碼;及代碼寫入部,其使Zp之各要素分別與不同之上述物理量位準對應而將上述寫入代碼寫入至上述單元組件;上述寫入代碼為李度量碼,於將上述輸入資料記錄於p-1個上述單元組件之情形時,該等p-1個上述單元組件中,上述輸入資料為0之情形、及僅1位元為1之情形時,並無寫入為相同物理量位準之單元組件。
  10. 如請求項9之記憶體系統,其中上述代碼生成部包含以p為模數之加算電路之組合。
  11. 如請求項9之記憶體系統,其包括:代碼讀出部,其將記錄於上述單元組件之物理量位準作為藉由與該物理量位準對應之Zp之要素所表現的讀出代碼而讀出;及解碼部,其將上述讀出代碼轉換為二進制表現之輸出資料。
  12. 如請求項11之記憶體系統,其包括錯誤檢測‧校正部,該錯誤檢測‧校正部進行上述讀出代碼之錯誤檢測‧校正;上述錯誤檢測‧校正部自上述讀出代碼生成徵候群,一面依序變更該徵候群之成分之組合一面進行錯誤搜索。
  13. 如請求項12之記憶體系統,其中上述錯誤檢測‧校正部包含以p為模數之加算電路。
  14. 如請求項12之記憶體系統,其中上述錯誤檢測‧校正部包含預先算出之Zp之要素之逆元及階乘之至少一方之表格。
  15. 如請求項12之記憶體系統,其中上述解碼部藉由上述錯誤檢測‧校正部無法檢測出上述讀出代碼之錯誤之情形時,將包含錯誤之上述讀出代碼直接轉換為上述輸出資料。
  16. 如請求項9之記憶體系統,其中上述特定之單元組件之Zp之要素與上述物理量位準之對應關係,與其他上述單元組件之Zp之要素與上述物理量位準之對應關係不同。
  17. 一種記憶體系統,其特徵在於包括:單元陣列,其包含具有p(p為3以上之質數)以上之物理量位準之單元組件;代碼生成部,其將二進制表現之輸入資料轉換為以作為p之餘數體之Zp之要素所表現的寫入代碼;及代碼寫入部,其使Zp之各要素分別對應於不同之上述物理量位準而將上述寫入代碼寫入至上述單元組件;上述代碼生成部包含以p為模數之加算電路之組合,於將上述輸入資料記錄於p-1個上述單元組件之情形時,該等p-1個上述單元組件中,上述輸入資料為0之情形、及僅1位元為1之情形時,並無寫入為相同物理量位準之單元組件。
  18. 如請求項17之記憶體系統,其包括:代碼讀出部,其將記錄於上述單元組件之物理量位準作為由對應於該物理量位準之Zp之要素所表現的讀出代碼而讀出;及解碼部,其將上述讀出代碼轉換為二進制表現之輸出資料。
  19. 如請求項18之記憶體系統,其包括錯誤檢測‧校正部,該錯誤檢測‧校正部進行上述讀出代碼之錯誤檢測‧校正;上述錯誤檢測‧校正部自上述讀出代碼生成徵候群,一面依序變更該徵候群之成分之組合一面進行錯誤搜索。
  20. 如請求項19之記憶體系統,其中上述錯誤檢測‧校正部包含以p為模數之加算電路。
TW100130950A 2010-09-24 2011-08-29 Memory system TWI459398B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010213215A JP5143203B2 (ja) 2010-09-24 2010-09-24 メモリシステム

Publications (2)

Publication Number Publication Date
TW201230056A TW201230056A (en) 2012-07-16
TWI459398B true TWI459398B (zh) 2014-11-01

Family

ID=45871930

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100130950A TWI459398B (zh) 2010-09-24 2011-08-29 Memory system

Country Status (3)

Country Link
US (1) US8661319B2 (zh)
JP (1) JP5143203B2 (zh)
TW (1) TWI459398B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880977B2 (en) 2011-07-22 2014-11-04 Sandisk Technologies Inc. Systems and methods of storing data
CN104040634A (zh) * 2012-01-12 2014-09-10 索尼公司 存储控制装置、存储装置、信息处理系统及其处理方法
US9368197B2 (en) 2014-01-29 2016-06-14 Kabushiki Kaisha Toshiba Memory system
DE102020100541A1 (de) * 2020-01-13 2021-07-15 Infineon Technologies Ag Bestimmung eines resultierenden datenworts beim zugriff auf einen speicher
CN111313889B (zh) * 2020-02-21 2023-05-12 宁波大学 一种正反馈异或/同或门及混合逻辑加法器

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5960653A (ja) * 1982-09-30 1984-04-06 Toshiba Corp デジタル情報の符号化、復号化方式
US5500811A (en) * 1995-01-23 1996-03-19 Microunity Systems Engineering, Inc. Finite impulse response filter
US5790545A (en) * 1996-03-14 1998-08-04 Motorola Inc. Efficient output-request packet switch and method
JPH10207689A (ja) * 1997-01-28 1998-08-07 Toshiba Corp 逆元計算装置及び逆元計算方法
TW384447B (en) * 1996-01-22 2000-03-11 Infinite Technology Inc Processor with reconfigurable arithmetic data path
TW200849257A (en) * 2006-12-31 2008-12-16 Univ Ramot Avoiding errors in a flash memory by using substitution transformations
TW200926174A (en) * 2007-10-31 2009-06-16 Micron Technology Inc Fractional bits in memory cells
US20090198881A1 (en) * 2008-01-31 2009-08-06 Kabushiki Kaisha Toshiba Memory system
US20100107039A1 (en) * 2007-02-01 2010-04-29 Kabushiki Kaisha Toshiba Semiconductor memory with reed-solomon decoder

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5960653A (ja) * 1982-09-30 1984-04-06 Toshiba Corp デジタル情報の符号化、復号化方式
US5500811A (en) * 1995-01-23 1996-03-19 Microunity Systems Engineering, Inc. Finite impulse response filter
TW384447B (en) * 1996-01-22 2000-03-11 Infinite Technology Inc Processor with reconfigurable arithmetic data path
US5790545A (en) * 1996-03-14 1998-08-04 Motorola Inc. Efficient output-request packet switch and method
JPH10207689A (ja) * 1997-01-28 1998-08-07 Toshiba Corp 逆元計算装置及び逆元計算方法
TW200849257A (en) * 2006-12-31 2008-12-16 Univ Ramot Avoiding errors in a flash memory by using substitution transformations
US20100107039A1 (en) * 2007-02-01 2010-04-29 Kabushiki Kaisha Toshiba Semiconductor memory with reed-solomon decoder
TW200926174A (en) * 2007-10-31 2009-06-16 Micron Technology Inc Fractional bits in memory cells
US20090198881A1 (en) * 2008-01-31 2009-08-06 Kabushiki Kaisha Toshiba Memory system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ron M. Roth, et al., "Lee-Metric BCH Codes and their Application to Constrained and Partial-Response Channels", IEEE Transactions on Info *

Also Published As

Publication number Publication date
JP5143203B2 (ja) 2013-02-13
US8661319B2 (en) 2014-02-25
JP2012068900A (ja) 2012-04-05
US20120079331A1 (en) 2012-03-29
TW201230056A (en) 2012-07-16

Similar Documents

Publication Publication Date Title
JP4621715B2 (ja) メモリ装置
Naeimi et al. Fault secure encoder and decoder for nanomemory applications
JP5043562B2 (ja) エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置
US7962838B2 (en) Memory device with an ECC system
Chen et al. An adaptive-rate error correction scheme for NAND flash memory
US9235488B2 (en) System and method for random noise generation
JP4836608B2 (ja) 半導体記憶装置
TWI613674B (zh) 在具有選擇性二元及非二元解碼之快閃記憶體中之偵測及解碼
TWI459398B (zh) Memory system
JPS59197940A (ja) 誤り検出・補正メモリ
JP2007305267A (ja) 半導体記憶装置
JP4982580B2 (ja) メモリシステム及びメモリシステムのデータ書き込み・読み出し方法
JP2010518464A (ja) 半導体記憶装置
TWI479317B (zh) Memory system
JP4846384B2 (ja) 半導体記憶装置
US10498364B2 (en) Error correction circuits and memory controllers including the same
US9336085B2 (en) Memory system and memory controller
JP4891704B2 (ja) 半導体記憶装置
US10133628B2 (en) Apparatuses and methods for encoding using error protection codes
Neale Design and analysis of an adjacent multi-bit error correcting code for nanoscale SRAMs
Koorapati Design of any codeword length parallel long BCH encoders with the help of an efficient C-utility
Amato et al. Error management
JPS594741B2 (ja) ブロツク誤り検出訂正方式

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees