該申請要求題為“APPARATUS AND METHOD FOR MAPPING BINARY TO TERNARY AND ITS REVERSE(用于將二進制映射到三進制及其反轉的裝置和方法)”且于2014年9月18日提交的美國專利申請序列號14/490,307的優先權,其通過引用全部合并于此。
背景技術:
閃速存儲器可使用在每個存儲器單元中存儲單個位信息的單級單元來設計,或設計為在每個存儲器單元中存儲多位信息的多級單元。一般,單級單元比多級單元具有更高的耐久性。然而,多級單元提供比單級單元更高的存儲密度。多級單元存儲器(例如,閃速存儲器)由多級單元組成,其中的每個能夠存儲多個電荷狀態或水平。電荷狀態中的每個與存儲器元件位模式關聯。多級單元存儲器可配置成存儲多個閾值電壓水平(Vt)。
多級單元存儲器能夠基于電荷狀態的數量存儲一個以上的位的數據。例如,可以存儲四個電荷狀態(或四個Vt水平)的多級單元存儲器可以存儲兩位數據,可以存儲八個電荷狀態(或八個Vt水平)的多級單元存儲器可以存儲三位數據,并且可以存儲十六個電荷狀態的多級單元可以存儲四位數據。對于n位多級單元存儲器中的每個,各種存儲器元件位模式可以與不同電荷狀態中的每個關聯。參考電壓可使各種電荷狀態分開。例如,第一參考電壓可使水平3和水平2分開,并且第二電壓參考可使水平2與水平1分開,并且第三參考電壓可使水平1與水平0分開。
二進制信息可直接映射到單級單元存儲器。然而,多級單元需要存儲器映射操作來將二進制信息映射到多級單元中的多個水平(level)。二進制到三進制映射是取二進制數據并將其映射到三進制符號的函數。典型的二進制到三進制映射首先獲得二進制串的十進制表示并且然后將該十進制數字映射到它的三進制表示。通過該映射獲得的壓縮接近理論極限。例如,1千字節的位(即,8192個位)可以映射到5169個三進制符號。獲得的壓縮是1.5848,其接近理論極限。每個3級存儲器單元的理論存儲極限是Log2(3)=1.5849個位。
該典型的二進制到三進制映射的一個問題是它經受錯誤傳播。考慮待存儲二進制串“000…001111”。該串的十進制表示是15并且三進制表示是“000..00120”。在單元中存儲(例如,存儲到NAND閃速存儲器)為水平信息(level information)的該三進制串被讀回。因為在從存儲器(例如,NAND閃速存儲器)讀取時有錯誤,比如說“0000…00121”被讀回(即,最后的水平0讀出為水平1)。對于該有噪讀出的二進制表示是“000…0010000”。因此,單級的錯誤在讀出錯誤中轉化為5個位。典型的映射具有3.5倍的錯誤傳播,這意指位差錯率是水平差錯率的3.5倍。
附圖說明
將從下文給出的詳細描述以及本公開的各種實施例的附圖更充分地理解本公開的實施例,然而,它們不應視為使本公開局限于特定實施例,而只是用于解釋和理解。
圖1圖示根據本公開的一些實施例使用查找表(LUT)用于將二進制映射到三進制以及返回的硬件架構。
圖2圖示根據本公開的一些實施例具有19位二進制輸入和12個三進制數位的三進制符號輸出(具有2的冪的三進制表示)的LUT。
圖3圖示根據本公開的一些實施例具有12個三進制數位的三進制符號輸入和19位二進制輸出(具有3的冪的二進制表示)的LUT。
圖4圖示根據本公開的一些實施例將數據存儲到根據圖1的硬件架構的多級(例如,3級)存儲器單元的存儲器架構。
圖5圖示根據本公開的一些實施例用于將二進制映射到三進制以及返回的方法的流程圖。
圖6圖示根據一些實施例具有用于將二進制數據映射到三進制數據以及返回的裝置的智能設備或計算機系統或SoC(片上系統)。
具體實施例
對于采用多級存儲模式(例如,三閾值電壓水平模式)使用的閃速存儲器(例如,NAND存儲器),存在可以將二進制位映射到三個閾值水平的各種方式。例如,有效載荷可以是首先保護的防錯碼(ECC)并且然后二進制ECC位可以從二進制映射到三進制域。另一個方案是首先進行有效載荷的二進制到三進制映射并且然后使三進制ECC碼在三進制數據上操作。在使用三進制ECC方案中有明顯優勢。二進制ECC方案可需要從存儲器讀取的水平首先從三進制轉換到二進制域。因為在讀取的三進制水平中有錯誤,在三進制符號轉換為二進制位時存在兩倍的錯誤傳播。
然而,如果使用三進制ECC方案,則三進制ECC首先校正所有錯誤。對無噪數據操作的三進制到二進制映射提供沒有錯誤的二進制位。典型的二進制到三進制映射實現起來非常復雜。例如,對于簡單數據的ECC碼字大小是近似4.6千字節位或近似37,665個位。如果這37,665個位被轉換成它們對應的三進制表示,門計數是4*37665=150,000個門。對于三進制到二進制映射需要相似數量的門,該三進制到二進制映射在使用典型的二進制到三進制映射的讀取期間將三進制數據映射到二進制數據。各種實施例描述最佳二進制到三進制映射并且詳述它的硬件實現。
在一些實施例中描述的映射是19-12映射,其取19個二進制位并且使用查找表(LUT)將它們映射到12個三進制符號(或三進制數位)。每個3級存儲器單元的理論存儲極限是Log2(3)=1.5849個位。在一些實施例中,該轉換得到映射到一個三進制符號的1.5833個位,其更接近每單元1.5849個位(bpc)的理論極限。在一些實施例中,該映射的硬件實現使用在100個門范圍內的邏輯門,其比用于典型的二進制到三進制映射的硬件的復雜程度要小得多。
盡管參考在3級存儲器(例如,3級NAND、3級相變存儲器,等)中存儲來描述實施例,實施例不限于此。在一些實施例中,對于6級編程,19-12映射可以概括如下。例如,對于6級編程的級別分為兩組-第一組L0、L1和L2以及第二組L3、L4和L5,其中‘L’指級別。在一些實施例中,一個位用于決定組(即,第一組或第二組),并且然后19-12映射用于在一組的三個級別內存儲1.583bpc。利用這樣的實施例實現2.583bpc的存儲。在各種實施例中描述的方案可以擴展到任意倍數的兩級或三級編程。例如,9級編程、12級編程、18級編程、27級編程等。
在下列描述中,論述許多細節來提供對本公開的實施例的更全面解釋。然而,本公開的實施例可在沒有這些具體細節的情況下實踐,這對于本領域內技術人員將是明顯的。在其它示例中,以框圖的形式而不詳細地示出眾所周知的結構和設備,以便避免混淆本公開的實施例。
注意在實施例的對應圖中,信號用線表示。一些線可更粗,用于指示更多的組成信號路徑,并且/或在一個或多個端處具有箭頭,用于指示主要信息流方向。這樣的指示不意在為限制性的。相反,這些線結合一個或多個示范性實施例使用以便于更容易地理解電路或邏輯單元。任何表示的信號,如由設計需要或偏好指定的,實際上可包括一個或多個信號,其可在任一方向上行進并且可用任何適合類型的信號方案實現。
在整個說明書和權利要求書中,術語“連接”意指連接的事物之間沒有任何中間設備的直接電氣連接。術語“耦合”意指連接的事物之間的直接電氣連接或通過一個或多個無源或有源中間設備的間接連接。術語“電路”意指設置成彼此合作來提供期望功能的一個或多個無源和/或有源部件。術語“信號”意指至少一個電流信號、電壓信號或數據/時鐘信號。“一”和“該”的意思包括復數個參考。“在…中”的意思包括“在…中”和“在…上”。
術語“大致”、“接近”、“近似”、“靠近”和“大約”一般指在目標值的+/- 20%內。除非另外規定,用于描述公共對象的序數詞“第一”、“第二”、“第三”等的使用僅僅指示提及類似對象的不同示例,并且不意在暗指這樣描述的對象必須在時間上、空間上、采用排序或采用任何其它方式處于給定序列中。
圖1圖示根據本公開的一些實施例使用用于將二進制映射到三進制以及返回的LUT的硬件架構100。在一些實施例中,架構100包括第一邏輯101、第一LUT 102、緩沖器103、第二邏輯104和第二LUT 105。在一些實施例中,第一邏輯101包括訪問第一LUT 102來將二進制輸入轉換為三進制符號輸出的組合邏輯和/或有限狀態機(FSM)。
在一些實施例中,第一邏輯101包括使三進制輸出值初始化為零的邏輯。在一些實施例中,第一邏輯101然后檢查19位元組(即,二進制輸入)中一的位置。在一些實施例中,在二進制輸入中無論何時檢測到一的情況下,從第一LUT 102讀取它的三進制表示并且將其加到三進制值(其首先被初始化為零)。根據一些實施例參考圖2描述第一LUT 102。返回參考圖1,在一些實施例中,在三進制域中進行該加法。在一些實施例中,在考慮19位元組中的所有一時,獲得12三進制符號值并且將其作為三進制輸出而提供。
在一些實施例中,第二邏輯104包括使二進制輸出初始化為零的邏輯。在一些實施例中,第二邏輯104然后檢查12三進制數位符號(即,緩沖的三進制輸出)中一的位置。在一些實施例中,在緩沖的三進制輸出中無論何時檢測到一的情況下,從第二LUT 105讀取它的二進制表示并且將其加到二進制值(其首先被初始化為零)。根據一些實施例,參考圖3描述第二LUT 105。返回參考圖1,在一些實施例中,在二進制域中進行該加法。在一些實施例中,在考慮12三進制數位符號中的所有一時,獲得19位二進制值并且將其作為二進制輸出而提供。第二邏輯104的硬件實現可以與第一邏輯101的硬件實現相似。
使用這些映射,一些實施例可以在寫操作期間在編碼器處高效地將二進制數據轉換到三進制域并且在讀操作期間在解碼器處高效地將三進制數據轉換到二進制形式。在一些實施例中,19-12映射提供到1.585bpc理論極限的最高效映射。
圖2圖示根據本公開的一些實施例具有19位二進制輸入和12三進制數位符號輸出(具有2的冪的三進制表示)的LUT 200(例如,第一LUT 102)。要指出,圖2的具有與任何其他圖的元件相同的標號(或名稱)的那些元件可以采用與描述的那個相似但不限于這樣的任何方式操作或運作。在一些實施例中,LUT 200具有19個條目,其對應于從0到18的所有2的冪的三進制中該2的冪。
在一些實施例中,LUT 200在非易失性存儲器中實現。非易失性存儲器的示例是相變存儲器(PCM)、三維交叉點存儲器、電阻存儲器、納米線存儲器、鐵電晶體管隨機存取存儲器(FeTRAM)、閃速存儲器(例如NAND或NOR)、磁阻隨機存取存儲器(MRAM)存儲器(其包含憶阻器技術)、自旋轉移轉距(STT)-MRAM等。在其他實施例中,LUT 200在其他類型的存儲電路中實現。
圖3圖示根據本公開的一些實施例具有12三進制數位的三進制符號輸入和19位二進制輸出(具有3的冪的二進制表示)的LUT 300(例如,第二LUT 105)。要指出,圖3的具有與任何其他圖的元件相同的標號(或名稱)的那些元件可以采用與描述的那個相似但不限于這樣的任何方式操作或運作。在一些實施例中,LUT 300具有12條目,其對應于從0到11的三的冪。一些實施例中,LUT 300在非易失性存儲器中實現。在其他實施例中,LUT 300在其他類型的存儲電路中實現。
圖4圖示根據本公開的一些實施例在根據圖1的硬件架構的多級存儲器(例如,3級存儲器)中存儲數據的存儲器架構400。要指出,圖4的具有與任何其他圖相同的標號(或名稱)的那些元件可以采用與描述的那個相似但不限于這樣的任何方式操作或運作。
根據一些實施例,存儲器架構400可以是固態驅動器(SSD)。在其他實施例中,可以使用其他類型的架構。為了不混淆實施例,示出存儲器架構400的簡化版本。本領域內技術人員將意識到存在架構400的完整操作所需要的其他邏輯和電路。例如,未示出輸入-輸出(I/O)緩沖器(例如串行高級技術附件(SATA)接口)和對應的電路。
在一些實施例中,存儲器架構400包括3級存儲器401(例如,3級NAND閃速存儲器、3級相變存儲器(PCM)等)和處理器402(例如,存儲器控制器)。盡管存儲器401示出為單個單元,它可以包括多個非易失性存儲器子單元,其中的每個具有3級存儲器單元。在一些實施例中,存儲器401可以在相同封裝件上在處理器402內集成。在一些實施例中,存儲器401可以單獨在截然不同的晶片上,但在相同封裝件上或不同封裝件上。
對于一些存儲器(例如,L06 NAND),非易失性存儲器單元(例如,3級NAND單元)編程為3個級別(即,位映射到3個級別)。一些實施例描述1.5個位/單元編程方案。這包括將三個位編程到兩個非易失性存儲器單元。兩個非易失性存儲器單元可以共同代表九個組合。組合之一未被編程,而另外八個組合唯一地映射到3個位。因此每非易失性存儲器單元存儲1.5個位。每個非易失性存儲器單元的理論存儲極限實際上是1.5849個位。因此存儲1.5個位/單元是低效的。根據本公開的一些實施例,架構100和SSD 400描述大致達到1.5849個位/單元的存儲極限的硬件和關聯方法。
在一些實施例中,處理器402包括編碼器403、解碼器404、第一邏輯101(即,二進制到三進制(B2T)轉換器)、第一LUT 102、第二邏輯104(即,三進制到二進制(T2B)轉換器)和第二LUT 105。在一些實施例中,輸入二進制數據(data_in)被B2T轉換器101接收,其使用如參考圖1描述的第一LUT 102的映射將data_in轉換為三進制dataT1。返回參考圖4,在一些實施例中,三進制dataT1被編碼器403編碼,其生成編碼數據(即,編碼的水平信息)以存儲在存儲器401中。
在處理器402請求數據時,從存儲器401檢索編碼數據并且被解碼器404解碼。因為編碼數據是三進制數據,解碼器404的輸出dataT2是三進制數據。在一些實施例中,dataT2被T2B轉換器105接收,其使用如參考圖1描述的第二LUT 105的映射將dataT2轉換為二進制輸出data_out。在這里,解碼器404的無錯水平信息輸出data_out被T2B轉換器105映射到二進制域。
返回參考圖4,在一些實施例中,編碼器403是低密度奇偶校驗(LDPC)編碼器并且解碼器404是LDPC解碼器。在其他實施例中,可以使用其他類型的編碼和對應的解碼方案。例如,可以使用Bose、Chaudhuri和Hocquenghem(BCH)編碼和對應的解碼方案。在一些實施例中,非二進制LDPC碼以附加硬件為代價提供比二進制LDPC碼更好的性能。根據一些實施例,在三進制碼的情況下,附加硬件成本最小。與二進制碼相比,一些實施例的殘余位差錯率(RBER)增益是明顯的。例如,由于參考各種實施例描述的緊湊二進制到三進制映射和三進制LDPC碼所引起的RBER增益是近似1.53倍,從而允許有2.3e-2的RBER。
圖5圖示根據本公開的一些實施例用于將二進制映射到三進制以及返回的方法的流程圖500。要指出,圖5具有與任何其他圖的元件相同的標號(或名稱)的那些元件可以采用與描述的那個相似的任何方式操作或運作,但不限于此。
盡管按特定順序示出參考圖5的流程圖中的框,可以修改動作的順序。從而,圖示的實施例可以按不同順序執行,并且一些動作/框可以并行執行。根據某些實施例,圖5中列出的框和/或操作中的一些是可選的。呈現的框的編號是為了清楚起見并且不意在規定各種框必須出現的操作順序。另外,各種流程的操作可以以多種組合使用。
在框501,二進制輸入被第一邏輯101接收。在框502,二進制輸入被第一邏輯101根據第一LUT 102轉換為三進制輸出,其中第一LUT 102包括19個二進制位到12個三進制的三進制數位的映射,如參考圖2示出的。在一些實施例中,第一邏輯101使三進制輸出值初始化為零。在一些實施例中,第一邏輯101然后檢查19位二進制輸入中一的位置。在一些實施例中,在二進制輸入中無論何時檢測到一的情況下,從第一LUT 102讀取它的三進制表示并且將其加到三進制值(其首先被初始化為零)。在一些實施例中,在考慮19位二進制輸入中的所有一時,獲得12三進制符號值并且將其作為三進制輸出而提供以存儲在存儲器(例如,存儲器401)中。
返回參考圖5,在框503,從存儲器(例如,存儲器401)檢索三進制輸出并且將其提供給第二邏輯104。在框504,第二邏輯104根據第二LUT 105將三進制輸出轉換為二進制輸出,其中第二LUT 105包括12個三進制的三進制數位到19個二進制位的映射,如參考圖3描述的。
在一些實施例中,第二邏輯104包括使二進制輸出初始化為零的邏輯。在一些實施例中,第二邏輯104然后檢查12三進制數位符號(即,從存儲器401檢索的三進制輸出)中一的位置。在一些實施例中,在三進制輸出中無論何時檢測到一的情況下,從第二LUT 105讀取它的二進制表示并且將其加到二進制值(其首先被初始化為零)。在一些實施例中,在二進制域中進行該加法。在一些實施例中,在考慮12三進制數位符號中的所有一時,獲得19位二進制值并且將其作為二進制輸出而提供。
圖6圖示根據一些實施例具有用于將二進制映射到三進制以及返回的裝置的智能設備或計算機系統或SoC(片上系統)。要指出,圖6的具有與任何其他圖的元件相同的標號(或名稱)的那些元件可以采用與描述的那個相似但不限于這樣的任何方式操作或運作。
圖6圖示其中可以使用平坦表面接口連接器的移動設備的實施例的框圖。在一些實施例中,計算設備1600代表移動計算設備,例如計算平板、移動電話或智能電話、支持無線的電子閱讀器或其他無線移動設備。將理解大體示出某些部件,并且不是這樣的設備的所有部件都在計算設備1600中示出。
在一些實施例中,計算設備1600包括第一處理器1610,其具有根據論述的一些實施例用于將二進制映射到三進制以及返回的裝置。計算設備1600的其他塊還可以包括用于根據一些實施例將二進制映射到三進制以及返回的裝置。本公開的各種實施例還可以包括1670內的網絡接口(例如無線接口)使得系統實施例可以并入無線設備,例如蜂窩電話或個人數字助理。
在一個實施例中,處理器1610(和/或處理器1690)可以包括一個或多個物理設備,例如微處理器、應用處理器、微控制器、可編程邏輯設備或其他處理部件。由處理器1610執行的處理操作包括執行應用和/或設備功能所在的操作平臺或操作系統的執行。處理操作包括與對于人類用戶或對于其他設備的I/O(輸入/輸出)有關的操作、與電力管理有關的操作和/或與使計算設備1600連接到另一個設備有關的操作。處理操作還可以包括與音頻I/O和/或顯示I/O有關的操作。
在一個實施例中,計算設備1600包括音頻子系統1620,其代表與向計算設備提供音頻功能關聯的硬件(例如,音頻硬件和音頻電路)和軟件(例如,驅動器、編解碼器)部件。音頻功能可以包括揚聲器和/或耳機輸出,以及麥克風輸入。用于這樣的功能的設備可以集成到設備計算設備1600內,或連接到計算設備1600。在一個實施例中,用戶通過提供音頻命令(其由處理器1610接收并且處理)而與計算設備1600交互。
顯示子系統1630代表硬件(例如,顯示設備)和軟件(例如,驅動器)部件,其提供視覺和/或觸覺顯示器以供用戶與計算設備1600交互。顯示子系統1630包括顯示界面1632,其包括用于向用戶提供顯示的特定屏幕或硬件設備。在一個實施例中,顯示界面1632包括與處理器1610分離以執行與顯示有關的至少一些處理的邏輯。在一個實施例中,顯示子系統1630包括觸屏(或觸控板)設備,其向用戶提供輸出和輸入兩者。
I/O控制器1640代表與用戶的交互有關的硬件設備和軟件部件。I/O控制器1640可操作以管理作為音頻子系統1620和/或顯示子系統1630的部分的硬件。另外,I/O控制器1640圖示用于連接到計算設備1600的額外設備的連接點,用戶可通過額外設備與系統交互。例如,可以附連到計算設備1600的設備可以包括麥克風設備、揚聲器或立體音響系統、視頻系統或其他顯示設備、鍵盤或小鍵盤設備,或其他I/O設備以與特定應用(例如讀卡器或其他設備)一起使用。
如上文提到的,I/O控制器1640可以與音頻子系統1620和/或顯示子系統1630交互。例如,通過麥克風或其他音頻設備的輸入可以對計算設備1600的一個或多個應用或功能提供輸入或命令。另外,代替顯示輸出或除顯示輸出外,可以提供音頻輸出。在另一個示例中,如果顯示子系統1630包括觸屏,顯示設備也充當輸入設備,其可以至少部分由I/O控制器1640管理。在計算設備1600上還可以存在額外的按鈕或開關,用于提供由I/O控制器1640管理的I/O功能。
在一個實施例中,I/O控制器1640管理例如加速計、拍攝裝置、光傳感器或其他環境傳感器等設備,或計算設備1600中可以包括的其他硬件。輸入可以是直接用戶交互的部分,以及向系統提供環境輸入來影響它的操作(例如對于噪聲的濾波、對于亮度檢測而調整顯示器、對拍攝裝置應用閃光燈,或其他特征)。
在一個實施例中,計算設備1600包括電力管理1650,其管理電池電力使用、電池的充電和與電力節省操作有關的特征。存儲器子系統1660包括用于將信息存儲在計算設備1600中的存儲器設備。存儲器可以包括非易失性(如果中斷對存儲器設備的電力則狀態不改變)和/或易失性(如果中斷對存儲器設備的電力則狀態不確定)存儲器設備。存儲器子系統1660可以存儲應用數據、用戶數據、音樂、照片、文檔或其他數據,以及與計算設備1600的應用和功能的執行有關的系統數據(無論是長期還是暫時的)。
實施例的元件還作為用于存儲計算機可執行指令(例如,實現本文論述的任何其他進程的指令)機器可讀介質(例如,存儲器1660)而提供。該機器可讀介質(例如,存儲器1660)可以包括但不限于閃速存儲器、光盤、CD-ROM、DVD ROM、RAM、EPROM、EEPROM、磁或光卡、相變存儲器(PCM)或適合于存儲電子或計算機可執行指令的其他類型的機器可讀介質。例如,本公開的實施例可以作為計算機程序(例如,BIOS)而下載,其可以通過數據信號經由通信鏈路(例如,調制解調器或網絡連接)從遠程計算機(例如,服務器)傳輸到請求計算機(例如,客戶端)。
連接性(connectivity)1670包括硬件設備(例如,無線和/或有線連接器和通信硬件)和軟件部件(例如,驅動器、協議棧),用于使計算設備1600能夠與外部設備通信。計算設備1600可以是獨立設備,例如其他計算設備、無線接入點或基站以及例如頭戴式耳機、打印機或其他設備等外設。
連接性1670可以包括多個不同類型的連接性。為了推廣,計算設備1600圖示有蜂窩連接性1672和無線連接性1674。蜂窩連接性1672一般指由無線載波提供的蜂窩網絡連接性,例如經由GSM(全球移動通信系統)或變化或衍生、CDMA(碼分多址)或變化或衍生、TDM(時分復用)或變化或衍生或其他蜂窩服務標準提供的。無線連接性(或無線接口)1674指不是蜂窩的無線連接性,并且可以包括個人區域網(例如藍牙、近場等)、局域網(例如Wi-Fi)和/或廣域網(例如WiMax)或其他無線通信。
外圍連接1680包括硬件接口和連接器,以及軟件部件(例如,驅動器、協議棧),用于進行外圍連接。將理解計算設備1600既可以是到其他計算設備(“到”1682)的外圍設備,又具有連接到它的外圍設備(“從”1684)。計算設備1600通常具有“對接”連接器,用于連接到其他計算設備用于例如管理(例如,下載和/或上傳、改變或同步)計算設備1600上的內容等目的。另外,對接連接器可以允許計算設備1600連接到某些外設,其允許計算設備1600控制例如到視聽或其他系統的內容輸出。
除外圍對接連接器或其他外圍連接硬件外,計算設備1600可以經由公共或基于標準的連接器來進行外圍連接1680。常見類型可以包括通用串行總線(USB)連接器(其可以包括許多不同的硬件接口中的任一個)、DisplayPort(其包括MiniDisplayPort(MDP))、高清晰度多媒體接口(HDMI)、Firewire或其他類型。
在說明書中對“實施例”、“一個實施例”、“一些實施例”或“其他實施例”的引用意指結合實施例描述的特定特征、結構或特性包括在至少一些實施例中,而不一定是所有實施例。“實施例”、“一個實施例”或“一些實施例”的各種表現不一定都指相同的實施例。如果說明書規定部件、特征、結構或特性“可”、“可能”或“可以”被包括,則該特定部件、特征、結構或特性不是必需被包括。如果說明書或權利要求提及“一”元件,這不意指僅存在描述的元件中的一個。如果說明書或權利要求提及“額外的”元件,這不排除存在超過一個額外的元件。
此外,特定特征、結構、功能或特性可采用任何適合的方式在一個或多個實施例中組合。例如,第一實施例可與第二實施例在這兩個實施例關聯的特定特征、結構、功能或特性不互相排斥的任何情況下進行組合。
盡管本公開已經結合其特定實施例描述,鑒于前面的描述,這樣的實施例的許多備選、修改和變化對于本領域內技術人員將是明顯的。例如,其他存儲器架構(例如,動態RAM(DRAM))可以使用論述的實施例。本公開的實施例意在包含所有這樣的備選、修改和變化,它們落入附上的權利要求的廣泛范圍內。
另外,為了簡化說明和論述,并且為了不混淆本公開,眾所周知的到集成電路(IC)芯片和其他部件的電力/接地連接可在或可不在呈現的圖內示出。此外,設置可采用框圖形式示出以避免混淆本公開,并且還鑒于關于這樣的框圖設置的實現的細節高度地取決于實現本公開所在的平臺(即,這樣的細節應該完全在本領域內技術人員的視野內)這一事實。在闡述特定細節(例如,電路)以便描述本公開的示例實施例的情況下,可以在沒有這些特定細節或具有這些特定細節的變化形式的情況下實踐本公開,這對本領域內技術人員應該是明顯的。從而描述被視為說明性而非限制性的。
下列示例關于另外的實施例。示例中的細節可在一個或多個實施例中在任何地方使用。本文描述的裝置的所有可選特征也可關于方法或進程實現。
例如,提供裝置,其包括:第一LUT,其具有19個二進制位到12個三進制的三進制數位的映射;和第一邏輯,用于接收二進制輸入并且根據第一LUT將該二進制輸入轉換為三進制輸出。在一些實施例中,裝置包括:第二LUT,其具有12個三進制的三進制數位到19個二進制位的映射;和第二邏輯,用于接收三進制輸出并且根據第二LUT將它轉換為二進制輸出。在一些實施例中,第一LUT包括 19個條目,其對應于從0到18的2的冪的三進制中該2的冪的值。
在一些實施例中,第二LUT 包括12個條目,其對應于對于從0到11的3的冪的二進制中該3的冪的值。在一些實施例中,第一邏輯包括:用于使三進制輸出初始化為零的邏輯。在一些實施例中,第一邏輯包括:用于確定二進制輸入中一的位置的邏輯。在一些實施例中,二進制輸入具有19個二進制位。在一些實施例中,第一邏輯包括用于檢測二進制輸入中的一的邏輯。在一些實施例中,第一邏輯包括:用于根據來自二進制輸入中一的位置的一的對應位置從第一LUT讀取三進制表示的邏輯。
在一些實施例中,第一邏輯包括加法器,用于在三進制域中將三進制表示加到初始化的三進制輸出來生成三進制輸出。在一些實施例中,三進制輸出是12三進制符號值。在一些實施例中,第二邏輯包括:用于讀取三進制輸出以及使二進制輸出初始化為零的邏輯。在一些實施例中,第二邏輯包括:用于確定三進制輸出的12個三進制的三進制數位中的一的位置的邏輯;用于根據來自三進制輸入中一的位置的一的對應位置從第二LUT讀取二進制表示的邏輯;和加法器,用于在二進制域中將二進制表示加到初始化的二進制輸出來生成二進制輸出。
在另一個示例中,提供系統,其包括:非易失性存儲器;耦合于該非易失性存儲器的處理器,該處理器包括:第一LUT,其具有19個二進制位到12個三進制的三進制數位的映射;第二LUT,其具有12個三進制的三進制數位到19個二進制位的映射;第一邏輯,用于接收二進制輸入并且根據第一LUT將二進制輸入轉換成三進制輸出;和編碼器,用于接收三進制輸出并且對三進制輸出編碼來生成編碼的三進制輸出以存儲在非易失性存儲器中;和無線接口,用于允許處理器與另一個設備通信。
在一些實施例中,系統包括:解碼器,用于對編碼的三進制輸出解碼并且生成解碼的三進制輸出。在一些實施例中,系統包括:第二邏輯,用于接收解碼的三進制輸出并且根據第二LUT將它轉換為二進制輸出。在一些實施例中,編碼器是三進制LDPC編碼器,并且其中解碼器是三進制LDPC解碼器。在一些實施例中,第一LUT包括19個條目,其對應于從0到18的2的冪的三進制中該2的冪的值,并且其中第二LUT包括12個條目,其對應于從0到11的3的冪的二進制中該3的冪的值。
在另一個示例中,提供方法,其包括:接收二進制輸入;以及根據第一LUT將該二進制輸入轉換為三進制輸出,該第一LUT具有19個二進制位到12個三進制的三進制數位的映射。在一些實施例中,方法包括:接收三進制輸出;以及根據第二LUT將三進制輸出轉換為二進制輸出,該第二LUT具有12個三進制的三進制數位到19個二進制位的映射。在一些實施例中,第一LUT包括19個條目,其對應于從0到18的2的冪的三進制中該2的冪的值。在一些實施例中,第二LUT包括12個條目,其對應于從0到11的3的冪的二進制中該3的冪的值。在一些實施例中,方法包括使三進制輸出初始化為零。在一些實施例中,方法包括確定二進制輸入中一的位置。在一些實施例中,二進制輸入具有19個二進制位。
在一些實施例中,方法包括檢測二進制輸入中的一。在一些實施例中,方法包括根據來自二進制輸入中一的位置的一的對應位置從第一LUT讀取三進制表示。在一些實施例中,方法包括在三進制域中將三進制表示加到初始化的三進制輸出來生成三進制輸出。在一些實施例中,三進制輸出是12三進制符號值。在一些實施例中,方法包括:讀取三進制輸出;以及使二進制輸出初始化為零。
在一些實施例中,方法包括確定三進制輸出的12個三進制的三進制數位中一的位置。在一些實施例中,方法包括根據來自三進制輸入中一的位置的一的對應位置從第二LUT讀取二進制表示。在一些實施例中,方法包括在二進制域中將二進制表示加到初始化的二進制輸出來生成二進制輸出。
在另一個示例中,提供裝置,其包括:用于接收二進制輸入的部件;和用于根據第一LUT將二進制輸入轉換為三進制輸出的部件,該第一LUT具有19個二進制位到12個三進制的三進制數位的映射。在一些實施例中,裝置包括:用于接收三進制輸出的部件;和用于根據第二LUT將三進制輸出轉換為二進制輸出的部件,該第二LUT具有12個三進制的三進制數位到19個二進制位的映射。在一些實施例中,第一LUT包括19個條目,其對應于從0到18的2的冪的三進制中該2的冪的值。在一些實施例中,第二LUT包括12個條目,其對應于從0到11的3的冪的二進制中該3的冪的值。
在一些實施例中,裝置包括用于使三進制輸出初始化為零的部件。在一些實施例中,裝置包括用于確定二進制輸入中一的位置的部件。在一些實施例中,二進制輸入具有19個二進制位。在一些實施例中,裝置包括用于檢測二進制輸入中的一的部件。在一些實施例中,裝置包括用于根據來自二進制輸入中一的位置的一的對應位置從第一LUT讀取三進制表示的部件。
在一些實施例中,裝置包括用于在三進制域中將三進制表示加到初始化的三進制輸出來生成三進制輸出的部件。在一些實施例中,三進制輸出是12三進制符號值。在一些實施例中,裝置包括:用于讀取三進制輸出的部件;和用于使二進制輸出初始化為零的部件。在一些實施例中,裝置包括用于確定三進制輸出的12個三進制的三進制數位中的一個的位置的部件。在一些實施例中,裝置包括用于根據來自三進制輸入中一的位置的一的對應位置從第二LUT讀取二進制表示的部件。在一些實施例中,裝置包括用于在二進制域中將二進制表示加到初始化的二進制輸出來生成二進制輸出的部件。
在另一個示例中,提供系統,其包括:非易失性存儲器;耦合于該非易失性存儲器的處理器,該處理器包括根據上文描述的裝置的裝置;和無線接口,用于允許處理器與另一個設備通信。在一些實施例中,非易失性存儲器是NAND存儲器或PCM中的一個。在一些實施例中,系統包括顯示接口,用于允許顯示單元顯示被處理器處理的內容。
提供摘要,其允許讀者弄清本技術公開的本質和要點。提交摘要要理解為摘要將不用于限制權利要求的范圍或含義。隨附的權利要求由此并入詳細描述內,其中每個權利要求立足于它自身作為單獨實施例。