本申請要求于2015年5月15日提交的臨時申請?zhí)枮?2/162,511的美國臨時申請的權(quán)益,其全部內(nèi)容在此通過引用并入本文。
技術(shù)領(lǐng)域
本公開的示例性實施例涉及一種存儲器系統(tǒng)及其操作方法。
背景技術(shù):
計算機(jī)環(huán)境范例已經(jīng)轉(zhuǎn)變至可隨時隨地使用的普適計算系統(tǒng)。由于該事實,諸如移動電話、數(shù)碼相機(jī)和筆記本電腦的便攜式電子裝置的使用一直快速增加。這些便攜式電子裝置通常使用具有存儲器裝置即數(shù)據(jù)存儲裝置的存儲器系統(tǒng)。數(shù)據(jù)存儲裝置被用作便攜式電子裝置的主存儲器裝置或輔助存儲器裝置。
由于使用存儲器裝置的數(shù)據(jù)存儲裝置沒有移動部件,所以它們提供良好的穩(wěn)定性、耐用性、高的信息存取速度以及低功耗。具有這種優(yōu)點(diǎn)的數(shù)據(jù)存儲裝置的示例包括通用串行總線(USB)存儲器裝置、具有各種接口的存儲卡以及固態(tài)驅(qū)動器(SSD)。
技術(shù)實現(xiàn)要素:
本發(fā)明的一方面包括系統(tǒng)。系統(tǒng)可包括:存儲器裝置,其適于存儲數(shù)據(jù);編碼器,其適于將數(shù)據(jù)編碼成設(shè)置在多行和多列的陣列中的代碼字;以及解碼器,其適于接收所編碼的代碼字、解碼所編碼的代碼字以及檢測解碼中的誤校正。
本發(fā)明的進(jìn)一步的方面包括存儲器裝置。該裝置可包括:編碼器,其被配置成將數(shù)據(jù)編碼成設(shè)置在多行和多列的陣列中的代碼字;以及解碼器,其被配置成接收所編碼的代碼字、解碼所編碼的代碼字以及檢測解碼中的誤校正。
本發(fā)明的附加方面包括方法。該方法可包括:利用編碼器將數(shù)據(jù)編碼成設(shè)置在多行和多列的陣列中的代碼字;利用解碼器接收所編碼的代碼字;利用解碼器解碼所接收的代碼字;以及利用解碼器檢測解碼中的誤校正。
附圖說明
圖1是示意性示出根據(jù)本發(fā)明的實施例的存儲器系統(tǒng)的框圖。
圖2是示出根據(jù)本發(fā)明的實施例的存儲器系統(tǒng)的框圖。
圖3是示出根據(jù)本發(fā)明的實施例的存儲器裝置的存儲塊的電路圖。
圖4是根據(jù)本發(fā)明的方面的用于編碼和解碼的系統(tǒng)的簡圖。
圖5是根據(jù)本發(fā)明的方面的用于編碼和解碼的方法的步驟的流程圖。
圖6、圖7、圖8、圖9、圖10、圖11、圖12、圖13、圖14和圖15是根據(jù)本發(fā)明的方面的位的示例陣列的簡圖。
具體實施方式
下面將參照附圖更詳細(xì)地描述各種實施例。然而,本發(fā)明可以不同的形式呈現(xiàn)且不應(yīng)被解釋為限于在本文中提出的實施例。而是,這些實施例被提供使得本公開將是徹底且完整的并將本發(fā)明的范圍充分傳達(dá)給本領(lǐng)域技術(shù)人員。在整個公開中,相似的參考編號指的是本發(fā)明的各種附圖和實施例中的相似部件。
本發(fā)明可以多種方式實施,包括作為進(jìn)程;設(shè)備;系統(tǒng);物質(zhì)組分;呈現(xiàn)在計算機(jī)可讀存儲介質(zhì)上的計算機(jī)程序產(chǎn)品;和/或處理器,諸如適用于執(zhí)行存儲在聯(lián)接至處理器的存儲器上和/或由聯(lián)接至處理器的存儲器提供的指令的處理器。在本說明書中,這些實施例或本發(fā)明可采用的任何其它形式可被稱為技術(shù)。通常,公開的進(jìn)程的步驟的順序可在本發(fā)明的范圍內(nèi)改變。除非另有說明,否則諸如被描述為適用于執(zhí)行任務(wù)的處理器或存儲器的組件可被實施為在給定時間臨時適用于執(zhí)行任務(wù)的一般組件或被制造為執(zhí)行任務(wù)的專用組件。如在此所使用的,術(shù)語“處理器”是指適用于處理數(shù)據(jù)的一個或多個裝置、電路和/或處理核心,諸如計算機(jī)程序指令。
下面連同示出本發(fā)明的原理的附圖一起提供本發(fā)明的一個或多個實施例的詳細(xì)說明。結(jié)合這些實施例描述本發(fā)明,但本發(fā)明不限于任意實施例。本發(fā)明的范圍僅由權(quán)利要求限制且本發(fā)明包含許多可選方案、變型和等同方案。為了能夠徹底理解本發(fā)明,在下面的描述中闡述許多具體細(xì)節(jié)。這些細(xì)節(jié)被提供以用于示例的目的,且在沒有一些或全部這些具體細(xì)節(jié)的情況下,本發(fā)明可根據(jù)權(quán)利要求來實施。為了清楚的目的,沒有詳細(xì)描述在與本發(fā)明相關(guān)的技術(shù)領(lǐng)域中已知的技術(shù)材料使得本發(fā)明沒有被不必要地模糊。
圖1是示意性示出根據(jù)本發(fā)明的實施例的存儲器系統(tǒng)10的框圖。
參照圖1,存儲器系統(tǒng)10可包括存儲器控制器100和半導(dǎo)體存儲器裝置200。
存儲器控制器100可控制半導(dǎo)體存儲器裝置200的全部操作。
半導(dǎo)體存儲器裝置200可在存儲器控制器100的控制下執(zhí)行一個或多個擦除操作、編程操作和讀取操作。半導(dǎo)體存儲器裝置200可通過輸入/輸出線接收命令CMD、地址ADDR和數(shù)據(jù)DATA。半導(dǎo)體存儲器裝置200可通過電源線接收電源PWR以及通過控制線接收控制信號CTRL??刂菩盘柨砂铈i存啟用(CLE)信號、地址鎖存啟用(ALE)信號、芯片啟用(CE)信號、寫入啟用(WE)信號、讀取啟用(RE)信號等。
存儲器控制器100和半導(dǎo)體存儲器裝置200可被集成在單個半導(dǎo)體裝置中。例如,存儲器控制器100和半導(dǎo)體存儲器裝置200可被集成在諸如固態(tài)驅(qū)動器(SSD)的單個半導(dǎo)體裝置中。固態(tài)驅(qū)動器可包括用于將數(shù)據(jù)存儲在其中的存儲裝置。當(dāng)半導(dǎo)體存儲器系統(tǒng)10被用在SSD中時,聯(lián)接至存儲器系統(tǒng)10的主機(jī)(未示出)的操作速度可顯著提高。
存儲器控制器100和半導(dǎo)體存儲器裝置200可被集成在諸如存儲卡的單個半導(dǎo)體裝置中。例如,存儲器控制器100和半導(dǎo)體存儲器裝置200可被集成在單個半導(dǎo)體裝置中以配置諸如以下的存儲卡:個人計算機(jī)存儲卡國際協(xié)會(PCMCIA)的PC卡、標(biāo)準(zhǔn)閃存(CF)卡、智能多媒體(SM)卡、記憶棒、多媒體卡(MMC)、減小尺寸的多媒體卡(RS-MMC)、微型版MMC(微型MMC)、安全數(shù)碼(SD)卡、迷你安全數(shù)字(迷你SD)卡、微型安全數(shù)字(微型SD)卡、安全數(shù)字高容量(SDHC)以及通用閃速存儲器(UFS)。
作為另一個示例,存儲器系統(tǒng)10可被設(shè)置為諸如以下的包括電子裝置的各種元件中的一個:計算機(jī)、超便攜移動PC(UMPC)、工作站、上網(wǎng)本計算機(jī)、個人數(shù)字助理(PDA)、便攜式計算機(jī)、網(wǎng)絡(luò)平板PC、無線電話、移動電話、智能電話、電子書閱讀器、便攜式多媒體播放器(PMP)、便攜式游戲裝置、航海裝置、黑匣子、數(shù)碼相機(jī)、數(shù)碼多媒體廣播(DMB)播放器、三維電視、智能電視、數(shù)字音頻記錄器、數(shù)字音頻播放器、數(shù)字圖片記錄器、數(shù)字圖片播放器、數(shù)字視頻記錄器、數(shù)字視頻播放器、數(shù)據(jù)中心的存儲裝置、能夠在無線環(huán)境下接收和傳輸信息的裝置、家庭網(wǎng)絡(luò)的電子裝置中的一個、計算機(jī)網(wǎng)絡(luò)的電子裝置中的一個、遠(yuǎn)程信息處理網(wǎng)絡(luò)的電子裝置中的一個、射頻識別(RFID)裝置或計算系統(tǒng)的元件裝置。
圖2是示出根據(jù)本發(fā)明的實施例的存儲器系統(tǒng)的詳細(xì)框圖。例如,圖2的存儲器系統(tǒng)可描述圖1中示出的存儲器系統(tǒng)10。
參照圖2,存儲器系統(tǒng)10可包括存儲器控制器100和半導(dǎo)體存儲器裝置200。存儲器系統(tǒng)10可響應(yīng)于來自主機(jī)裝置的請求而操作,尤其是,存儲待被由主機(jī)裝置訪問的數(shù)據(jù)。
主機(jī)裝置可利用各種電子裝置中的任意一種來實施。在一些實施例中,主機(jī)裝置可包括諸如臺式計算機(jī)、工作站、三維(3D)電視、智能電視、數(shù)字音頻記錄器、數(shù)字音頻播放器、數(shù)字圖像記錄器、數(shù)字圖像播放器、數(shù)字視頻記錄器和數(shù)字視頻播放器的電子裝置。在一些實施例,主機(jī)裝置可包括諸如移動電話、智能電話、電子書、MP3播放器、便攜式多媒體播放器(PMP)和便攜式游戲機(jī)的便攜式電子裝置。
存儲器裝置200可存儲待被由主機(jī)裝置訪問的數(shù)據(jù)。
存儲器裝置200可利用諸如動態(tài)隨機(jī)存取存儲器(DRAM)和靜態(tài)隨機(jī)存取存儲器(SRAM)的易失性存儲器裝置或諸如只讀存儲器(ROM)、掩膜ROM(MROM)、可編程ROM(PROM)、可擦可編程ROM(EPROM)、電可擦可編程ROM(EEPROM)、鐵電隨機(jī)存取存儲器(FRAM)、相變RAM(PRAM)、磁阻RAM(MRAM)和電阻式RAM(RRAM)的非易失存儲器裝置來實施。
控制器100可控制存儲器裝置200中數(shù)據(jù)的存儲。例如,控制器100可響應(yīng)于來自主機(jī)裝置的請求控制存儲器裝置200??刂破?00可將從存儲器裝置200讀取的數(shù)據(jù)提供至主機(jī)裝置,并將從主機(jī)裝置提供的數(shù)據(jù)存儲在存儲器裝置200中。
控制器100可包括通過總線160聯(lián)接的存儲單元110、控制單元120、錯誤糾正碼(ECC)單元130、主機(jī)接口140和存儲器接口150。
存儲單元110可用作存儲器系統(tǒng)10和控制器100的工作存儲器并存儲用于驅(qū)動存儲器系統(tǒng)10和控制器100的數(shù)據(jù)。當(dāng)控制器100控制存儲器裝置200的操作時,存儲單元110可存儲被控制器100和存儲器裝置200用于諸如讀取操作、寫入操作、編程操作和擦除操作的數(shù)據(jù)。
存儲單元110可利用易失性存儲器來實施。存儲單元110可利用靜態(tài)隨機(jī)存取存儲器(SRAM)或動態(tài)隨機(jī)存取存儲器(DRAM)來實施。如上所述,存儲單元110可將主機(jī)裝置使用的數(shù)據(jù)存儲在存儲器裝置200中以用于讀取操作和寫入操作。為了存儲數(shù)據(jù),存儲單元110可包括編程存儲器、數(shù)據(jù)存儲器、寫入緩沖器、讀取緩沖器、映射緩沖器等。
控制單元120可響應(yīng)于來自主機(jī)裝置的寫入請求或讀取請求而控制存儲器系統(tǒng)10的一般操作和用于存儲器裝置200的寫入操作或讀取操作??刂茊卧?20可驅(qū)動被稱為閃存轉(zhuǎn)換層(FTL)的固件以控制存儲器系統(tǒng)10的一般操作。例如,F(xiàn)TL可執(zhí)行諸如邏輯-物理(L2P)映射、損耗均衡、碎片收集和壞塊處理的操作。L2P映射被稱為邏輯塊尋址(LBA)。
ECC單元130可檢測并糾正在讀取操作期間從存儲器裝置200讀取的數(shù)據(jù)中的錯誤。當(dāng)錯誤位的數(shù)量大于或等于可糾正錯誤位的閾值數(shù)量時,ECC單元130可不糾正錯誤位,而是可輸出表示糾正錯誤位失敗的錯誤糾正失敗信號。
在一些實施例中,ECC單元130可基于諸如低密度奇偶檢查(LDPC)碼、博斯-查德胡里-霍昆格姆(BCH)碼、Turbo(turbo)碼、Turbo乘積碼(TPC)、里德-所羅門(RS)碼、卷積碼、遞歸系統(tǒng)碼(RSC)、網(wǎng)格編碼調(diào)制(TCM)、分組編碼調(diào)制(BCM)等的編碼調(diào)制來執(zhí)行錯誤糾正操作。ECC單元130可包括用于錯誤糾正操作的所有電路、系統(tǒng)或裝置。
主機(jī)接口140可通過諸如通用串行總線(USB)、多媒體卡(MMC)、外圍組件互連高速(PCI-E)、小型計算機(jī)系統(tǒng)接口(SCSI)、串列SCSI(SAS)、串行高級技術(shù)附件(SATA)、并行高級技術(shù)附件(PATA)、增強(qiáng)型小型磁盤接口(ESDI)和集成驅(qū)動電路(IDE)的各種接口協(xié)議中的一個或多個與主機(jī)裝置通信。
存儲器接口150可提供控制器100和存儲器裝置200之間的接口以允許控制器100響應(yīng)于來自主機(jī)裝置的請求而控制存儲器裝置200。存儲器接口150可在CPU120的控制器下生成用于存儲器裝置200的控制器信號并處理數(shù)據(jù)。當(dāng)存儲器裝置200是諸如NAND閃速存儲器的閃速存儲器時,存儲器接口150可在CPU120的控制器下生成用于存儲器裝置200的控制器信號并處理數(shù)據(jù)。
存儲器裝置200可包括存儲單元陣列210、控制電路220、電壓生成電路230、行解碼器240、頁面緩沖器250、列解碼器260和輸入/輸出電路270。存儲單元陣列210可包括多個存儲塊211并可將數(shù)據(jù)存儲在其中。電壓生成電路230、行解碼器240、頁面緩沖器250、列解碼器260和輸入/輸出電路270形成用于存儲器單元陣列210的外圍電路。外圍電路可執(zhí)行存儲器單元陣列210的編程操作、讀取操作或擦除操作。控制電路220可控制外圍電路。
電壓生成電路230可生成具有各種電平的操作電壓。例如,在擦除操作中,電壓生成電路230可生成具有各種電平的操作電壓,諸如擦除電壓和過電壓。
行解碼器240可連接至電壓生成電路230和多個存儲塊211。行解碼器240可響應(yīng)于由控制電路220生成的行地址RADD選擇多個存儲塊211中的至少一個存儲塊,并將從電壓生成電路230供應(yīng)的操作電壓傳輸至在多個存儲塊211中選擇的存儲塊。
頁面緩沖器250通過位線BL(未示出)連接至存儲器單元陣列210。頁面緩沖器250可響應(yīng)于由控制電路220生成的頁面緩沖器控制信號利用正電壓對位線BL預(yù)充電、在編程操作中將數(shù)據(jù)傳輸至選擇的存儲塊/在讀取操作中從選擇的存儲塊接收數(shù)據(jù)或臨時存儲傳輸?shù)臄?shù)據(jù)。
列解碼器260可將數(shù)據(jù)傳輸至頁面緩沖器250/從頁面緩沖器250接收數(shù)據(jù)或?qū)?shù)據(jù)傳輸至輸入電路270/從輸出電路270接收數(shù)據(jù)。
輸入/輸出電路270可通過輸入/輸出電路270將從外部裝置(例如,存儲器控制器100)傳輸?shù)拿詈偷刂穫鬏斨量刂齐娐?20、將數(shù)據(jù)從外部裝置傳輸至列解碼器260或?qū)?shù)據(jù)從列解碼器260輸出至外部裝置。
控制電路220可響應(yīng)于命令和地址控制外圍電路。
圖3是示出根據(jù)本發(fā)明的實施例的半導(dǎo)體存儲器裝置的存儲塊的電路圖。例如,圖3的存儲塊可以是圖2中示出的存儲器單元陣列210的存儲塊211。
參照圖3,存儲塊211可包括分別聯(lián)接至位線BL0至BLm-1的多個單元字符串221。每列的單元字符串可包括一個或多個漏極選擇晶體管DST和一個或多個源極選擇晶體管SST。多個存儲器單元或存儲器單元晶體管可串行地聯(lián)接在選擇晶體管DST和SST。存儲單元MC0至MCn-1中的每個可由每個單元中都存儲多位數(shù)據(jù)信息的多層單元(MLC)形成。單元字符串221可分別電聯(lián)接至對應(yīng)的位線BL0至BLm-1。
在一些實施例中,存儲塊211可包括NAND型閃速存儲單元。然而,存儲塊211不限于NAND閃速存儲器,而是可包括NOR型閃速存儲器、結(jié)合兩個或多個類型的存儲單元的混合閃速存儲器和控制器被嵌入在存儲芯片內(nèi)部的1-NAND閃速存儲器。
對于NAND閃速存儲器,期望具有SoC解決方案,其中SoC解決方案具有小的硅面積,導(dǎo)致成本降低。提議的代碼可被設(shè)計為4KB代碼長度且性能可被優(yōu)化為使片上系統(tǒng)(SoC)的硬件復(fù)雜性最小化。Turbo乘積碼(TPC)結(jié)構(gòu)是以下示例:數(shù)據(jù)被設(shè)置在矩形塊(例如,陣列)中且對每行中的位生成行校驗,之后結(jié)合數(shù)個列生成列校驗。位可交叉存取使得矩形塊的列被順序地讀取以生成列代碼字。然而,用于這種交叉存取的硬件實施是復(fù)雜的且需要更多硬件區(qū)域。采用其中第一列代碼字通過以下列順序讀取位來構(gòu)建的硬件友好交叉存?。簭牡谝恍凶x取N位,從第二行讀取N位等等,直到從最后一行讀取N位(N為被結(jié)合以形成每列代碼字的列的數(shù)量)。該交叉存取在硬件上更容易實施。然而,該交叉存取引入誤校正問題。
因此,本發(fā)明的方面涉及解決代碼字的解碼中的誤校正問題。本文公開了解決該誤校正問題的數(shù)個示例。盡管本文公開的示例利用BCH代碼,但本發(fā)明不限于此,且本領(lǐng)域技術(shù)人員將理解為了實現(xiàn)本發(fā)明可利用其它合適的代碼。
在圖4中,示出用于編碼和解碼的示例系統(tǒng)40。系統(tǒng)40包括存儲器402和DRAM 400。存儲器402可包括多個塊(例如,數(shù)據(jù))、用于主機(jī)寫入的開放塊430和用于垃圾收集的開放塊440。DRAM 400可包括控制器404、編碼器410和解碼器420,DRAM 400與存儲器402通信。編碼器410可被配置為將數(shù)據(jù)編碼成代碼字并執(zhí)行如下所述的其它各種功能。解碼器420可被配置成解碼來自編碼器410的數(shù)據(jù)、檢測誤校正問題以及執(zhí)行如下所述的其它功能。盡管被示為獨(dú)立的單元,但編碼器410和解碼器420可形成單一單元、可與控制器404一起集成和/或具有如本領(lǐng)域技術(shù)人員已知的其它設(shè)置。
圖5是用于編碼和解碼的步驟的流程圖50。盡管示出步驟500-508,但這些步驟表示用于誤校正檢測的示例。步驟可以任意順序執(zhí)行,且不是所有步驟都被需要以實現(xiàn)本發(fā)明。例如,步驟502可以被采用,步驟504和步驟506可被省略等。
圖6-圖15是根據(jù)本發(fā)明的方面的代碼字的陣列的示例。
在步驟500中,位編碼成代碼字。位可通過編碼器(例如,編碼器410)來編碼。在圖6中,示出TPC的并行級聯(lián)結(jié)構(gòu)(矩形陣列60)。在該示例中,為簡單起見,結(jié)合的列的數(shù)量(N)被取為3個。列代碼字通過讀取如圖7的陣列70中所示的列向矩形塊的位來構(gòu)建。作為示例,第一列代碼字?jǐn)?shù)據(jù)被給定為(b0,b9,b18,b1,b10,b19,b2,b11,b20)。該交叉存取需要更多硬件,因為數(shù)據(jù)根據(jù)存儲器中的行被存儲且每個位需要通過單獨(dú)的讀取操作來讀取。
如上所述,存在可利用較低復(fù)雜性實施的硬件友好交叉存取。該交叉存取的示例在圖8的陣列80中示出,其中用于第一列代碼字的信息位被給定為(b0,b1,b2,b9,b10,b11,b18,b19,b20)。通常,對于該硬件友好結(jié)構(gòu),可并行地從存儲器讀取N位使得N位屬于相同的行編碼字和相同的列編碼字(例如,在本文中N位被稱為屬于行-列交叉)。此外,行-列交叉中的任何錯誤校正可對行解碼和列解碼容易地實施。該交叉存取具有較低的硬件需求但如下所述引入低權(quán)重代碼字。
考慮行-列交叉屬于矩形陣列60、70、80的對角線。對應(yīng)這些交叉中的位,它們所屬的行和列內(nèi)的位置是相同的。例如,在圖8中可見,當(dāng)使用硬件友好交叉存取時,位b0、b1和b2是第一行代碼字以及第一列代碼字的開始三位。因此,低權(quán)重代碼字可通過僅選擇屬于非零的一個對角塊的幾位來形成。這些低權(quán)重代碼字的引入引起誤校正問題。
在圖9中,示出示例陣列90,其中第一行和第一列同時誤校正相同的代碼字(通過b0 900、b1 902、r0 904以及c0 906示出)。位900和902表示信道引入的錯誤。位904和906表示解碼器形成的變化使得第一行和第一列都誤校正了相同的代碼字,如圖10中所示。假設(shè)校正能力等于1。圖10示出在第一行和第一列代碼字如何誤校正相同地代碼字的示例中的陣列1000。第一行和第一列代碼字由于圖9中的兩個信道錯誤而誤校正相同的代碼字(通過位1002和位1004表示)。行和列代碼字上的誤校正在校驗位(通過位1006和位1008表示)中引入錯誤。解碼器宣告數(shù)據(jù)被成功解碼。該問題在原始交叉存取方案中不會發(fā)生,其中,在原始交叉存取方案中位b1屬于行和列代碼字內(nèi)的不同位置且存在解碼器解碼失敗而不是誤校正的較高的可能性。
因此,誤校正問題需要被解決且可根據(jù)本文公開的下列方法、系統(tǒng)和裝置來實現(xiàn)。
在步驟502中,沿代碼字的陣列的對角線的位可被減少。參照圖11,如果矩形陣列1100的對角線上的位通過補(bǔ)零在這些位置來減少,則引起誤校正的低權(quán)重代碼字被消除且誤校正問題被容易的解決。減少可以通過編碼器(在編碼之前或之后)和/或通過解碼器來執(zhí)行。應(yīng)該注意的是,該誤校正將發(fā)生在具有距離行和列校驗相同距離的對角塊上。在圖12中,示出用于行代碼字的數(shù)量大于列代碼字的數(shù)量的情況的陣列1200中的對角塊上的減少。在圖13中,示出用于列代碼字的數(shù)量大于行代碼字的數(shù)量的情況的陣列1300中的對角塊上的減少。
解碼器中可能需要一些額外的硬件邏輯以處理減少的位置。而且,盡管對角-減少方案消除僅具有一個非零行-列交叉塊的低權(quán)重代碼字,但存在具有在矩形陣列中的非對角位置處的非零交叉的其它低權(quán)重代碼字(具有相對較高權(quán)重)。最后,如果用戶數(shù)據(jù)位的數(shù)量保持相同,則減少導(dǎo)致行和列代碼字的數(shù)量或每個組成代碼字中的信息位的數(shù)量的增加,這導(dǎo)致TPC的瀑布式性能的降低。
在步驟504中,XOR校驗可被計算且確定與XOR校驗的匹配。參照圖14的陣列1400,用于用戶數(shù)據(jù)位的N-位XOR校驗可在編碼進(jìn)程(例如,通過編碼器)期間被計算并存儲(例如,儲存在陣列1400的一部分中,如x1、x2、x3所示)且數(shù)據(jù)位的有效性可通過驗證解碼的數(shù)據(jù)的XOR校驗與儲存的XOR-校驗匹配(例如,通過解碼器)來確認(rèn)。因此,編碼器可基于代碼字生成XOR校驗,解碼器可基于代碼字生成XOR校驗。XOR-校驗位可通過將矩形陣列中除一個以外的所有行-列交叉中的N個位置的每個按位XOR來計算。以圖6的示例陣列60為例,3位XOR可如下計算:
x1=b0+b3+b6+b9+…+b21
x2=b1+b4+b7+b10+…+b22
x3=b2+b5+b8+b11+…+b23
該N位XOR校驗可被儲存在最后的行-列交叉中(例如,x1、x2和x3位于陣列1400中,而b24、b25和b26位于陣列60中)。
XOR-校驗可在編碼和解碼進(jìn)程期間被計算且需要一些額外的硬件。代碼率通過該步驟稍微降低。該率損失可通過計算N位XOR校驗的P位CRC并存儲CRC的P(其中P<N)個校驗位而不是XOR校驗來降低。最后,該步驟能夠檢測誤校正出現(xiàn)但不能校正它們。在檢測后,可以使用標(biāo)準(zhǔn)校正進(jìn)程來校正低權(quán)重的其余錯誤模式。
因此,保證步驟504的進(jìn)程以利用一個非零行-列交叉消除所有誤校正,而不管該交叉是在矩形陣列的對角位置上還是在非對角位置上。該方法還可以非常高幾率地利用不止一個非零行-列交叉來檢測其它誤校正。
在步驟506中,在列-行交叉處的位可被置換。參照圖15的陣列1500,每個行-列交叉中的N位在編碼為列代碼字之前根據(jù)N個元素上的固定置換被置換。如該置換的結(jié)果,位于對角交叉中的位轉(zhuǎn)到行和列代碼字的不同位置。因此,由形成相同BCH代碼字的行和列引起的TPC的低權(quán)重代碼字被消除。
當(dāng)使用BCH或其它循環(huán)碼時,必須小心選擇N位的置換以保證置換不對應(yīng)于行-列交叉上的一些左移或右移操作。滿足該條件且容易在硬件中實施的置換的示例是反轉(zhuǎn)元素的順序(例如,元素(1,2,…,N-1,N)被置換成(N,N-1,…,2,1))的“反轉(zhuǎn)”置換。圖15示出用于圖6中的示例的行和列代碼字,其中每個行-列交叉中的位在編碼成列代碼字之前根據(jù)反轉(zhuǎn)置換被置換(例如,位(b0,b1,b2)的順序在編碼成第一列代碼字期間被反轉(zhuǎn)成(b2,b1,b0))。
在步驟508中,如上參照步驟502、504和506所述,數(shù)據(jù)可被解碼且誤校正可被檢測(例如,通過解碼器)。三個步驟502、504和506是有效的,意味著這些步驟的結(jié)合可用于將誤校正的可能性降低至期望的機(jī)制。
盡管為了清楚說明的目的已經(jīng)相當(dāng)詳細(xì)地描述了前述實施例,但本發(fā)明不限于提供的細(xì)節(jié)。存在許多實施本發(fā)明的可選方法。公開的實施例是說明性的且不是限制性的。