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