TWI823436B - Apparatus and method for generating low-density parity-check (ldpc) code - Google Patents
Apparatus and method for generating low-density parity-check (ldpc) code Download PDFInfo
- Publication number
- TWI823436B TWI823436B TW111123322A TW111123322A TWI823436B TW I823436 B TWI823436 B TW I823436B TW 111123322 A TW111123322 A TW 111123322A TW 111123322 A TW111123322 A TW 111123322A TW I823436 B TWI823436 B TW I823436B
- Authority
- TW
- Taiwan
- Prior art keywords
- parity check
- low
- density parity
- check code
- user data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000004364 calculation method Methods 0.000 claims abstract description 78
- 239000011159 matrix material Substances 0.000 claims abstract description 32
- 230000005540 biological transmission Effects 0.000 claims abstract description 14
- 230000007717 exclusion Effects 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 3
- 125000004122 cyclic group Chemical group 0.000 claims description 2
- 230000008030 elimination Effects 0.000 abstract 1
- 238000003379 elimination reaction Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000004242 micellar liquid chromatography Methods 0.000 description 1
- 229940044442 onfi Drugs 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000004809 thin layer chromatography Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
Description
本發明涉及儲存裝置,尤指一種低密度奇偶檢查碼的產生裝置及方法。 The present invention relates to a storage device, and in particular, to a device and method for generating a low-density parity check code.
閃存通常分為NOR閃存與NAND閃存。NOR閃存為隨機存取裝置,中央處理器(Host)可於位址腳位上提供任何存取NOR閃存的位址,並及時地從NOR閃存的資料腳位上獲得儲存於該位址上的資料。相反地,NAND閃存並非隨機存取,而是序列存取。NAND閃存無法像NOR閃存一樣,可以存取任何隨機位址,中央處理器反而需要寫入序列的位元組(Bytes)的值到NAND閃存中,用於定義請求命令(Command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(閃存中寫入作業的最小資料塊)或一個區塊(閃存中抹除作業的最小資料塊)。提昇資料傳輸到閃存模組的正確率,一直是影響閃存控制器的整體效能的重要課題。因此,本發明提出一種低密度奇偶檢查碼的產生裝置及方法,用於提升資料傳輸到閃存模組的正確率。 Flash memory is usually divided into NOR flash memory and NAND flash memory. NOR flash memory is a random access device. The central processor (Host) can provide any address to access the NOR flash memory on the address pin, and obtain the data stored at the address from the data pin of the NOR flash memory in a timely manner. material. On the contrary, NAND flash memory does not have random access, but sequential access. NAND flash memory cannot access any random address like NOR flash memory. Instead, the central processor needs to write a sequence of Bytes values into the NAND flash memory to define the type of request command (Command) (such as , read, write, erase, etc.), and the address used on this command. The address can point to a page (the smallest block of data for a write operation in flash memory) or a block (the smallest block of data for an erase operation in flash memory). Improving the accuracy of data transmission to flash memory modules has always been an important issue that affects the overall performance of flash memory controllers. Therefore, the present invention proposes a low-density parity check code generation device and method for improving the accuracy of data transmission to a flash memory module.
有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。 In view of this, how to alleviate or eliminate the deficiencies in the above-mentioned related fields is a problem that needs to be solved.
本說明書涉及一種低密度奇偶檢查碼的產生裝置,包含:低密度奇偶檢查碼編碼器、前視電路和互斥或計算單元。低密度奇偶檢查碼編碼器用於使用二階段編碼演算法,以奇偶校檢矩陣對使用者資料 的前部進行編碼,產生第一計算結果。前視電路用於在每次迭代以相應於奇偶校檢矩陣的多個特徵列中的一個對使用者資料的後部執行內積計算,產生第二計算結果。互斥或計算單元用於對第一計算結果和第二計算結果進行互斥或計算,產生低密度奇偶檢查碼的前部。 This specification relates to a low-density parity check code generation device, including: a low-density parity check code encoder, a look-ahead circuit and a mutual exclusion or calculation unit. The low-density parity check code encoder is used to use a two-stage encoding algorithm to encode user data using a parity check matrix. The front part is encoded to produce the first calculation result. The lookahead circuit is configured to perform an inner product calculation on the rear part of the user data using one of the plurality of feature columns corresponding to the parity check matrix in each iteration to generate a second calculation result. The mutual exclusion or calculation unit is used to perform mutual exclusion or calculation on the first calculation result and the second calculation result to generate the front part of the low-density parity check code.
本說明書另涉及一種由控制器執行的低密度奇偶檢查碼的產生方法。控制器耦接切換器、低密度奇偶檢查碼編碼器和前視電路。該方法包含:在使用者資料的前部傳送至低密度奇偶檢查碼編碼器完畢時,控制切換器以讓使用者資料的後部饋入所述前視電路,並且發出第一訊號給低密度奇偶檢查碼編碼器以啟動第二階段編碼;以及在使用者資料的後部傳送至前視電路完畢時,發出第二訊號給低密度奇偶檢查碼編碼器以開始輸出第一計算結果給互斥或計算單元,發出第三訊號給前視電路以開始輸出第二計算結果給所述互斥或計算單元。 This specification also relates to a method of generating a low-density parity check code executed by a controller. The controller is coupled to the switch, the low-density parity check code encoder and the look-ahead circuit. The method includes: when the front part of the user data is transmitted to the low-density parity check code encoder, controlling the switch to allow the rear part of the user data to feed into the look-ahead circuit, and sending a first signal to the low-density parity check code the check code encoder to start the second stage encoding; and when the rear part of the user data is transmitted to the look-ahead circuit, a second signal is sent to the low-density parity check code encoder to start outputting the first calculation result to the mutex or calculation The unit sends a third signal to the look-ahead circuit to start outputting the second calculation result to the mutual exclusive OR calculation unit.
上述實施例的優點之一,通過如上所述的裝置,可縮短二階段編碼演算法的計算時間,從而消除使用者資料和低密度奇偶檢查碼的傳輸之間的時間空檔。 One of the advantages of the above-described embodiment is that the calculation time of the two-stage encoding algorithm can be shortened by the above-described device, thereby eliminating the time gap between the transmission of user data and low-density parity check codes.
本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。 Other advantages of the present invention will be explained in more detail in conjunction with the following description and drawings.
10:電子裝置 10: Electronic devices
110:主機端 110: Host side
130:閃存控制器 130:Flash controller
131:主機介面 131:Host interface
134:處理單元 134: Processing unit
136:隨機存取記憶體 136: Random access memory
138:NAND閃存控制器 138:NAND flash controller
139:閃存介面 139:Flash memory interface
150:閃存模組 150:Flash memory module
151:介面 151:Interface
153#0~153#15:NAND閃存單元 153#0~153#15: NAND flash memory unit
CH#0~CH#3:通道
CE#0~CE#3:致能訊號
302:使用者資料 302:User information
304:LDPC碼 304:LDPC code
310:LDPC編碼器 310:LDPC encoder
320:多工器 320:Multiplexer
tb:時間空檔 tb: time slot
402#1:使用者資料的前部 402#1: The front part of the user data
402#2:使用者資料的後部 402#2: End of user data
404#1,404#2:計算結果 404#1,404#2: Calculation result
406#1:LDPC碼的前部 406#1: The front part of LDPC code
406#2:LDPC碼的後部 406#2: The rear part of the LDPC code
510,610:控制器 510,610:Controller
520:切換器 520:Switcher
530,560:LDPC編碼器 530,560: LDPC encoder
540:前視電路 540: Forward looking circuit
550:互斥或計算單元 550: Mutual exclusion or calculation unit
570:多工器 570:Multiplexer
620:內積計算單元 620: Inner product calculation unit
630:特徵列產生電路 630: Feature column generation circuit
640:資料寄存器 640: Data register
680,680#0~680#3:特徵列 680,680#0~680#3: Feature column
710:多工器 710:Multiplexer
720#0~720#3:輸入端口 720#0~720#3: Input port
730:來源寄存器 730: Source register
730#0~730#3:寄存器 730#0~730#3: Register
810#0~810#3:D正反器 810#0~810#3:D flip-flop
S1010~S1040:方法步驟 S1010~S1040: Method steps
圖1為依據本發明實施例的電子裝置的系統架構圖。 FIG. 1 is a system architecture diagram of an electronic device according to an embodiment of the present invention.
圖2為依據本發明實施例的閃存模組的示意圖。 FIG. 2 is a schematic diagram of a flash memory module according to an embodiment of the present invention.
圖3為依據一些實施方式的使用者資料和LDPC碼的編碼和傳輸示意圖。 Figure 3 is a schematic diagram of encoding and transmission of user data and LDPC codes according to some embodiments.
圖4為依據本發明實施例的消除使用者資料和LDPC碼的傳輸之間的時間空檔的示意圖。 FIG. 4 is a schematic diagram of eliminating the time gap between the transmission of user data and LDPC codes according to an embodiment of the present invention.
圖5為依據本發明實施例的LDPC碼的產生裝置的方塊圖。 FIG. 5 is a block diagram of an LDPC code generating device according to an embodiment of the present invention.
圖6為依據本發明實施例的前視電路的方塊圖。 FIG. 6 is a block diagram of a front-view circuit according to an embodiment of the present invention.
圖7和圖8為依據本發明實施例的特徵列產生電路的方塊圖。 7 and 8 are block diagrams of a feature sequence generating circuit according to an embodiment of the present invention.
圖9為依據本發明實施例的特徵列的示意圖。 FIG. 9 is a schematic diagram of a feature column according to an embodiment of the present invention.
圖10為依據本發明實施例的控制方法的流程圖。 Figure 10 is a flow chart of a control method according to an embodiment of the present invention.
以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。 The following description is a preferred implementation manner for completing the invention, and its purpose is to describe the basic spirit of the invention, but is not intended to limit the invention. For the actual invention, reference must be made to the following claims.
必須了解的是,使用於本說明書中的“包含”、“包括”等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。 It must be understood that the words "including" and "include" used in this specification are used to indicate the existence of specific technical features, numerical values, method steps, work processes, components and/or components, but do not exclude the possibility of adding further technical features, values, method steps, processes, components, components, or any combination of the above.
於權利要求中使用如“第一”、“第二”、“第三”等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。 The use of words such as "first", "second" and "third" in the claims is used to modify the elements in the claims, and is not used to indicate that there is a priority, precedence relationship between them, or that they are one element. Prior to another element, or the chronological order in which method steps are performed, it is only used to distinguish elements with the same name.
必須了解的是,當元件描述為“連接”或“耦接”至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為“直接連接”或“直接耦接”至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如“介於”相對於“直接介於”,或者是“鄰接”相對於“直接鄰接”等等。 It must be understood that when an element is described as being "connected" or "coupled" to another element, it can be directly connected or coupled to the other element, and intervening elements may be present. In contrast, when an element is described as being "directly connected" or "directly coupled" to another element, there are no intervening elements present. Other words used to describe the relationship between elements could be interpreted in a similar fashion, such as "between" versus "directly between," "adjacent" versus "directly adjacent," etc.
參考圖1。電子裝置10包含主機端(Host Side)110、閃存控制器130及閃存模組150,並且閃存控制器130及閃存模組150可合稱為裝置端(Device Side)。電子裝置10可實施於個人電腦、筆記型電腦(Laptop PC)、平板電腦、手機、數位相機、數位攝影機等電子產品之中。主機端110與閃存控制器130的主機介面(Host Interface)131之間可以通用序列匯流排(Universal Serial Bus,USB)、先進
技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快捷週邊組件互連介面(peripheral component interconnect express,PCI-E)、通用快閃記憶儲存(Universal Flash Storage,UFS)、嵌入式多媒體卡(Embedded Multi-Media Card,eMMC)等通訊協定彼此溝通。NAND閃存控制器(NAND Flash Controller,NFC)138的閃存介面(Flash Interface)139與閃存模組150之間可以雙倍資料率(Double Data Rate,DDR)通訊協定彼此溝通,例如,開放NAND快閃(Open NAND Flash Interface,ONFI)、雙倍資料率開關(DDR Toggle)或其他通訊協定。閃存控制器130包含處理單元134,可使用多種方式實施,如使用通用硬體(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行軟體以及/或韌體指令時,提供之後描述的功能。處理單元134通過主機介面131接收主機命令,例如讀取命令(Read Command)、寫入命令(Write Command)、丟棄命令(Discard Command)、抹除命令(Erase Command)等,排程並執行這些命令。閃存控制器130另包含隨機存取記憶體(Random Access Memory,RAM)136,可實施為動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)或上述兩者的結合,用於配置空間作為資料緩衝區,儲存從主機端110讀取並即將寫入閃存模組150的使用者資料(也可稱為主機資料),以及從閃存模組150讀取並即將輸出給主機端110的使用者資料。隨機存取記憶體136另可儲存執行過程中需要的資料,例如,變數、資料表、主機與閃存位址對照表(Host-to-Flash Address Mapping Table,簡稱H2F表)、閃存與主機位址對照表(Flash-to-Host Address Mapping Table,簡稱F2H表)等。NAND閃存控制器138提供存取閃存模組150時需要的功能,例
如命令序列器(Command Sequencer)、低密度奇偶校驗(Low-Density Parity-Check,LDPC)等。
Refer to Figure 1. The
閃存控制器130中可配置共享匯流排架構(Shared Bus Architecture),用於讓元件之間彼此耦接以傳遞資料、位址、控制訊號等,這些元件包含主機介面131、處理單元134、RAM 136、NAND閃存控制器138等。匯流排包含並行的物理線,連接閃存控制器130中兩個以上的組件。共享匯流排是一種共享的傳輸媒體,在任意的時間上,只能有兩個裝置可以使用這些線來彼此溝通,用於傳遞資料。資料及控制訊號能夠在組件間分別沿資料和控制線進行雙向傳播,但另一方面,位址訊號只能沿位址線進行單向傳播。例如,當處理單元134想要讀取RAM 136的特定位址上的資料時,處理單元134在位址線上傳送此位址給RAM 136。接著,此位址的資料會在資料線上回覆給處理單元134。為了完成資料讀取操作,控制訊號會使用控制線進行傳遞。
The
閃存模組150提供大量的儲存空間,通常是數百個千兆位元組(Gigabytes,GB),甚至是數個兆兆位元組(Terabytes,TB),用於儲存大量的使用者資料,例如高解析度圖片、影片等。閃存模組150中包含控制電路以及記憶體陣列,記憶體陣列中的記憶單元可組態為單層式單元(Single Level Cells,SLCs)、多層式單元(Multiple Level Cells,MLCs)三層式單元(Triple Level Cells,TLCs)、四層式單元(Quad-Level Cells,QLCs)或上述的任意組合。處理單元134可通過閃存介面139寫入使用者資料到閃存模組150中的指定位址(目的位址),以及從閃存模組150中的指定位址(來源位址)讀取使用者資料。閃存介面139使用數個電子訊號來協調閃存控制器130與閃存模組150間的資料與命令傳遞,包含資料線(Data Line)、時脈訊號(Clock Signal)與控制訊號(Control Signal)。資料線可用於傳遞命令、位址、讀出及寫入的資料;控
制訊號線可用於傳遞晶片致能(Chip Enable,CE)、位址提取致能(Address Latch Enable,ALE)、命令提取致能(Command Latch Enable,CLE)、寫入致能(Write Enable,WE)等控制訊號。
The
參考圖2,閃存模組150中的介面151可包含四個輸出入通道(I/O channels,以下簡稱通道)CH#0至CH#3,每一個通道連接四個NAND閃存單元,例如,通道CH#0連接NAND閃存單元153#0、153#4、153#8及153#12。每個NAND閃存單元可封裝為獨立的芯片(die)。閃存介面139可通過介面151發出致能訊號CE#0至CE#3中的一個來致能NAND閃存單元153#0至153#3、153#4至153#7、153#8至153#11、或153#12至153#15,接著以並行的方式從致能的NAND閃存單元讀取使用者資料,或者寫入使用者資料至致能的NAND閃存單元。所屬技術領域人員可依據系統的需求改變閃存模組150的設計,在閃存模組150中配置更多或更少的通道,和/或將每個通道連接上更多或更少的NAND閃存單元,本發明並不因此受限。
Referring to Figure 2, the
NAND閃存控制器138可包含低密度奇偶校檢編碼器(LDPC Encoder),用於依據使用者資料來產生低密度奇偶檢查碼(LDPC Code),其是一種線性的錯誤修正碼(Linear Error Correcting Code)。舉例來說,LDPC碼的產生可使用以下公式表示:MSG1xn ☉ PCMnx(n+m)=CW1x(n+m)其中,MSG1xm代表使用者資料的1列、n行矩陣,PCMnx(n+m)代表n列、(n+m)行奇偶校檢矩陣(Parity Check Matrix),CW1x(n+m)代表最後產生的碼字(Codeword)的1列、(n+m)行矩陣,☉代表模2乘法(Modulo 2 Multiplication)。奇偶校檢矩陣可包含類循環(Quasi-Cyclic,QC)結構,並且CW1x(n+m)中的前n個位元的值等於MSG1xn的值,而CW1x(n+m)中的後m個位元的值稱為LDPC碼。舉例如下:
參考圖3中的(A)部分,在一些實施方式中,NAND閃存控制器138可包含LDPC編碼器310和多工器(Multiplexer)320。LDPC編碼器310使用事先決定的奇偶校檢矩陣,將一段固定長度的使用者資料302編碼成固定長度的LDPC碼304,例如,將2KB(位元組)的使用者資料302編碼成512B的LDPC碼304。初始時,多工器320用於輸出使用者資料302到閃存模組150。在使用者資料302傳輸完成後,多工器320被控制來輸出LDPC碼304到閃存模組150。然而,參考圖3中的(B)部分,在使用一些演算法實作的LDPC編碼器310中,LDPC編碼器310在收到完整的使用者資料302後需要運算一段時間tb才能產生LDPC碼304,讓LDPC碼304能夠開始傳輸到閃存模組150,這段運算時間tb又稱為時間空檔(Timing Bubble)。例如,在二階段編碼中,奇偶校檢矩陣可拆成兩個矩陣,H=[H1,H2]。第一階段將使用者資料(也可稱為訊息位元,Message Bits)和第一矩陣H1進行內積計算(Dot Product)以產生部分奇偶檢查碼(Partial Parity)。第二階段將部分奇偶檢查碼和第二矩陣的反矩陣H2T進行內積計算以產生LDPC碼。由於第二階段需要使用反矩陣的內積計算,計算複雜度較高,因此,LDPC編碼器310需要計算一段時間才能夠得到LDPC碼,造成時間空檔。然而,在高速的傳輸介面運行時是無法中斷的,如果在傳輸資料到閃存模組150的過程中出現時間空檔,則傳送到閃存模組150的資料容易發生錯誤。
Referring to part (A) of FIG. 3 , in some embodiments, the NAND
為了消除如上所述的時間空檔,參考圖4,本發明實施例提出一種LDPC碼的產生方法和裝置,用於消除如圖3所述的時間空檔tb。由於LDPC編碼器310需要運行一段固定的時間tb才能開始產生完成的LDPC碼,因此,本發明實施例將最終產生的LDPC碼304分為兩個部分:前部(a)406#1和後部(b)406#2。前部(a)406#1的長度視時間
空檔tb的長度而定。舉例來說,如果LDPC編碼器310需要2個時鐘週期(clock cycles)才能開始輸出LDPC碼,並且1個時鐘週期可以輸出4B的資料到閃存模組150,則LDPC碼304的前部(a)406#1的長度固定為8B。整個使用者資料302則可分為兩個部分:前部(a)402#1和後部(b)402#2,並且為前部(a)402#1和後部(b)402#2分別使用兩個電路來編碼出LDPC碼304的前部(a)406#1和後部(b)406#2。
In order to eliminate the time gap as described above, with reference to Figure 4, an embodiment of the present invention proposes an LDPC code generation method and device for eliminating the time gap tb as shown in Figure 3. Since the
參考圖5所示的LDPC碼的產生裝置,一個電路可包含LDPC編碼器560(例如,先前實做的LDPC編碼器310),使用二階段編碼演算法,以預先定義的奇偶校檢矩陣對使用者資料302編碼出LDPC碼304的後部(b)406#2。另一個電路可包含切換器520、LDPC編碼器530、前視電路(Look-ahead Circuit)540、互斥或計算單元(Exclusive-OR Calculation Unit)550和多工器570,用於以預先定義的奇偶校檢矩陣對使用者資料302快速編碼出LDPC碼304的前部(a)406#1,使得使用者資料302的後部(b)傳送到閃存模組150後可以立即依序傳送LDPC碼304的前部(a)406#1和後部(b)406#2到閃存模組150,讓使用者資料302和LDPC碼304的傳輸之間並不存在時間空檔(如圖4的下半部所示)。
Referring to the LDPC code generation device shown in Figure 5, a circuit may include an LDPC encoder 560 (for example, the previously implemented LDPC encoder 310), using a two-stage encoding algorithm, using a predefined parity check matrix pair The
切換器520包含一個輸入端和兩個輸出端,輸入端用於接收使用者資料302,一個輸出端耦接LDPC編碼器530的輸入端,另一個輸出端耦接前視電路540的輸入端。切換器520在控制器510的控制下,選擇性地耦接LDPC編碼器530或前視電路540的輸入端。控制器510可在編碼使用者資料302的開始之前控制切換器520,讓使用者資料302饋入LDPC編碼器530。接著,在使用者資料302的前部(a)402#1完整饋入到LDPC編碼器530後,控制器510控制切換器302,用於讓使用者資料302的後部(b)402#2饋入前視電路540。LDPC編碼器530使用二階段編碼演算法,以預先定義的奇偶校檢矩陣對使用者資料302的前部(a)402#1進行編碼,以產生編碼資料404#1。控制器510可
在LDPC編碼器530為使用者資料302的前部(a)402#1計算出大部分的部分奇偶校驗碼時,指示LDPC編碼器530開始執行第二階段的編碼(也就是提早啟動第二階段的編碼)。由於執行第二階段的編碼的期間,使用者資料302的後部(b)402#2沒有饋入LDPC編碼器530,因此,前視電路540對使用者資料302的後部(b)402#2和相應於奇偶校檢矩陣的特徵列(Feature Row)執行內積計算,以產生編碼資料404#2,用於補償LDPC編碼器530的計算結果404#1。在這裡需要注意的是,所屬技術領域人員理解由於本說明書中所述的內積計算執行於二元領域(Binary Field),所以,本說明書中所述的矩陣內積計算等同於模2乘法。互斥或計算單元550耦接於LDPC編碼器530和前視電路540的輸出端,逐批次對LDPC編碼器530的輸出404#1和前視電路540的輸出404#2進行互斥或計算,例如,每個批次可為8B的輸出404#1和404#2進行互斥或計算。多工器570包含兩個輸入端和一個輸出端,一個輸入端耦接互斥或計算單元550的輸出,另一個輸入端耦接LDPC編碼器560的輸出,輸出端耦接閃存模組150。控制器510可在產生LDPC碼的一開始,或者使用者資料302的後部(b)402#2饋入到前視電路540完畢後,控制多工器570,用於將互斥或計算單元550的輸出端耦接至閃存模組150,讓互斥或計算單元550的計算結果(也就是LDPC碼304的前部(a)406#1)能夠輸出到閃存模組150。控制器510在LDPC碼304的前部(a)406#1輸出到閃存模組150完畢後,控制多工器570,用於將LDPC編碼器560的輸出端耦接至閃存模組150,讓LDPC編碼器560的計算結果(也就是LDPC碼304的後部(b)406#2)能夠輸出到閃存模組150。
The
參考圖6所示的前視電路540的實施例,包含控制器610、內積計算單元620、特徵列產生電路630和資料寄存器640。資料寄存器640用於儲存使用者資料302的後部(b)402#2。特徵列產生電路630可包含來源寄存器,用於儲存前視基礎(Look-ahead Basis),其長度預設
為|m2|+|pa|-1,m2代表使用者資料302的後部(b)402#2的長度,pa代表LDPC碼304的前部(a)406#1的長度。前視基礎從奇偶校檢矩陣推導而出,並且包含奇偶校檢矩陣中用來編碼使用者資料302的後部(b)402#2所需的子集合。此外,特徵列的長度等於使用者資料302的後部(b)402#2的長度。例如,假設使用者資料302的後部(b)402#2為8B(也就是64位元)並且LDPC碼304的前部(a)406#1為8B(也就是64位元),則來源寄存器的長度為127位元,並且特徵列680的長度為8B(也就是64位元)。由於奇偶校檢矩陣包含類循環結構,因此除了第一次迭代以外,每次迭代中用來計算的特徵列,就是上一個特徵列的循環右移一位的結果。參考圖9所示的特徵列示意圖,每一列代表一個前視基礎,而每一列中的反斜線局部代表前視基礎中的特徵列680。特徵列680#1是特徵列680#0的循環右移一位的結果,特徵列680#2是特徵列680#1的循環右移一位的結果,依此類推。特徵列產生電路630另包含用於從前視基礎中獲得每次迭代需要的特徵列680的電路。在每次迭代中,控制器610發出訊號給特徵列產生電路630,用於驅動特徵列產生電路630輸出這次迭代需要的特徵列680。內積計算單元620耦接特徵列產生電路630和資料寄存器640,在每次迭代中對特徵列產生電路630所輸出的特徵列和資料寄存器640中儲存的值進行內積計算,獲得計算結果404#2,並且輸出計算結果404#2到互斥或計算單元550。
Referring to the embodiment of the look-
參考圖7所示的特徵列產生電路630的實施例,包含多工器710和來源寄存器730。初始時,來源寄存器730儲存預設的前視基礎。多工器710包含多個輸入端口,每個輸入端口以指定順序通過預設數目的實體線分別連接到來源寄存器730中的預設數目的寄存器。例如,多工器710的輸入端口720#0通過實體線依序連接到寄存器730#1、730#2、730#3;多工器710的輸入端口720#1通過實體線依序連接到寄存器730#2、730#3、730#0;多工器710的輸入端口720#2通過實
體線依序連接到寄存器730#3、730#0、730#1;以及多工器710的輸入端口720#3通過實體線依序連接到寄存器730#0、730#1、730#2。在第一次迭代時,多工器710接收到控制訊號以將輸入端口720#0連接到輸出端口,用於輸出寄存器730#1、730#2、730#3的值作為特徵列680。在第二次迭代時,多工器710接收到控制訊號以將輸入端口720#1連接到輸出端口,用於輸出寄存器730#2、730#3、730#0的值作為特徵列680,依此類推。
Referring to the embodiment of the feature
參考圖8所示的特徵列產生電路630的實施例,包含以多個D正反器(D Flip-flop)810#0至810#3串接起來的位移器(Bit-shifter)。每個D正反器的輸出端q連接到下一個D正反器的輸入端d,形成一個環形。初始時,控制器(未顯示於圖8)設定D正反器810#0至810#3中的每一個來儲存預設的前視基礎。一部分的D正反器的輸出,例如D正反器810#1、810#2和810#3的輸出,形成特徵列。控制器設定(Set)一個D正反器以使其儲存邏輯“1”,或者重設(Reset)一個D正反器以使其儲存邏輯“0”。接著,每個D正反器偵測到時鐘訊號clk發生變化時(也就是上緣-Rising Edges和下緣-Falling Edges),輸出其中儲存的值到下一個D正反器進行儲存。在每次迭代中,依序搜集D正反器810#1至810#3的輸出680[0]至680[2]作為特徵列680。舉例來說,控制器在初始時驅動D正反器810#0至810#3以儲存預設的前視基礎“0b0001”。D正反器810#0至810#3的輸出在第一次迭代時為“0b001”;D正反器810#0至810#3的輸出在第二次迭代時為“0b000”;D正反器810#0至810#3的輸出在第三次迭代時為“0b100”;D正反器810#0至810#3的輸出在第四次迭代時為“0b010”。
Referring to the embodiment of the feature
參考圖10所示的由控制器510所執行的控制方法的流程圖。詳細說明如下:
Refer to the flowchart of the control method executed by the
步驟S1010:發出訊號給切換器520,用於讓使用者資料302饋入LDPC編碼器530(也可稱為第一LDPC編碼器)。
Step S1010: Send a signal to the
步驟S1020:在使用者資料302中的前部(a)402#1傳送完畢時,控制切換器520以將輸入端耦接至前視電路540,讓使用者資料302中的後部(b)402#2饋入前視電路540,並且發出訊號給LDPC編碼器530以啟動第二階段編碼(也就是提早啟動第二階段的編碼)。
Step S1020: After the front part (a) 402 #1 in the
步驟S1030:在使用者資料302中的後部(b)402#2傳送完畢時,控制多工器570以讓互斥或計算單元550的輸出端連接到多工器570的輸出端,用於讓互斥或計算單元550的計算結果(也就是LDPC碼的前部(a)406#1)能夠寫入到閃存模組150;發出訊號給LDPC編碼器530以開始輸出計算結果404#1;發出訊號給前視電路540以開始輸出計算結果404#2;並且發出訊號給LDPC編碼器560(也可稱為第二LDPC編碼器)以開始計算LDPC碼的後部(b)406#2。
Step S1030: After the transmission of the rear part (b) 402#2 in the
步驟S1040:在LDPC碼的前部(a)406#1傳送完畢時,控制多工器570以讓LDPC編碼器560的輸出端連接到多工器570的輸出端,用於讓LDPC編碼器560的計算結果(也就是LDPC碼的後部(b)406#2)能夠寫入到閃存模組150;並且發出訊號給LDPC編碼器560以開始輸出其計算結果406#2。
Step S1040: When the transmission of the front part (a) 406#1 of the LDPC code is completed, control the
雖然圖1、圖2、圖5至圖8中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,以達成更佳的技術效果。此外,雖然圖10的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。 Although Figures 1, 2, 5 to 8 contain the above-described elements, it does not rule out the use of more other additional elements to achieve better technical effects without violating the spirit of the invention. In addition, although the flow chart in Figure 10 is executed in a specified order, those skilled in the art can modify the order of these steps without violating the spirit of the invention and achieve the same effect. Therefore, the present invention does not You are not limited to using only the order described above. In addition, those skilled in the art can also integrate several steps into one step, or in addition to these steps, perform more steps sequentially or in parallel, and the invention is not limited thereby.
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方 式解釋來包含所有顯而易見的修改與相似設置。 Although the present invention is described using the above embodiments, it should be noted that these descriptions are not intended to limit the present invention. On the contrary, this invention covers modifications and similar arrangements which will be obvious to one skilled in the art. Therefore, the scope of claims in the application must be in the broadest possible way. The formula is interpreted to include all obvious modifications and similar settings.
302:使用者資料 302:User information
304:LDPC碼 304:LDPC code
402#1:使用者資料的前部 402#1: The front part of the user data
402#2:使用者資料的後部 402#2: End of user data
404#1,404#2:計算結果 404#1,404#2: Calculation results
406#1:LDPC碼的前部 406#1: The front part of LDPC code
406#2:LDPC碼的後部 406#2: The rear part of the LDPC code
510:控制器 510:Controller
520:切換器 520:Switcher
530,560:LDPC編碼器 530,560: LDPC encoder
540:前視電路 540: Forward looking circuit
550:互斥或計算單元 550: Mutual exclusion or calculation unit
570:多工器 570:Multiplexer
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111123322A TWI823436B (en) | 2022-06-23 | 2022-06-23 | Apparatus and method for generating low-density parity-check (ldpc) code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111123322A TWI823436B (en) | 2022-06-23 | 2022-06-23 | Apparatus and method for generating low-density parity-check (ldpc) code |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI823436B true TWI823436B (en) | 2023-11-21 |
TW202401992A TW202401992A (en) | 2024-01-01 |
Family
ID=89722690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111123322A TWI823436B (en) | 2022-06-23 | 2022-06-23 | Apparatus and method for generating low-density parity-check (ldpc) code |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI823436B (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102340318A (en) * | 2011-10-08 | 2012-02-01 | 中国科学院上海微系统与信息技术研究所 | Method for encoding quasi-cycle LDPC (Low Density Parity Check) codes |
CN103023516A (en) * | 2013-01-01 | 2013-04-03 | 苏州威士达信息科技有限公司 | LDPC (low density parity check) coder capable of generating matrix and check matrix jointly and coding method |
CN111162797A (en) * | 2020-01-21 | 2020-05-15 | 华侨大学 | Encoding device and encoding method of 5G LDPC code with compatible rate |
CN113765623B (en) * | 2021-09-02 | 2022-06-07 | 中山大学 | Bidirectional communication method based on superposition coding and extra information transmission |
-
2022
- 2022-06-23 TW TW111123322A patent/TWI823436B/en active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102340318A (en) * | 2011-10-08 | 2012-02-01 | 中国科学院上海微系统与信息技术研究所 | Method for encoding quasi-cycle LDPC (Low Density Parity Check) codes |
CN103023516A (en) * | 2013-01-01 | 2013-04-03 | 苏州威士达信息科技有限公司 | LDPC (low density parity check) coder capable of generating matrix and check matrix jointly and coding method |
CN111162797A (en) * | 2020-01-21 | 2020-05-15 | 华侨大学 | Encoding device and encoding method of 5G LDPC code with compatible rate |
CN113765623B (en) * | 2021-09-02 | 2022-06-07 | 中山大学 | Bidirectional communication method based on superposition coding and extra information transmission |
Also Published As
Publication number | Publication date |
---|---|
TW202401992A (en) | 2024-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI692762B (en) | Flash memory controller, flash memory module and associated electronic device | |
TWI517173B (en) | Apparatuses and methods of updating reliability data | |
CN106205728B (en) | Parity check circuit and memory device including the same | |
US20200272539A1 (en) | Methods and apparatuses for error correction | |
TWI516035B (en) | Management of data storage in analog memory cells using a non-integer number of bits per cell | |
US9858994B2 (en) | Memory system with MLC memory cells and partial page compression or reduction | |
US8484547B2 (en) | System and method for reducing memory in a multi-channel parallel encoder system | |
TWI536749B (en) | Decoding method, memory storage device and memory controlling circuit unit | |
US20180034483A1 (en) | Variable t bch encoding | |
TWI823436B (en) | Apparatus and method for generating low-density parity-check (ldpc) code | |
TWI732642B (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
KR102017807B1 (en) | Apparatus for processing data and method for processing data | |
US20230421178A1 (en) | Apparatus and method for generating low-density parity-check (ldpc) code | |
TWI719880B (en) | Apparatus and method for programming data of page groups into flash units | |
TWI804359B (en) | Method and apparatus for decoding low-density parity-check (ldpc) code | |
TWI808902B (en) | Apparatus for detecting errors during data encryption | |
TWI835381B (en) | Apparatus for detecting errors during data encryption | |
TWI835601B (en) | Apparatus and method for expanding round keys during data encryption | |
US20230421175A1 (en) | Method and apparatus for decoding low-density parity-check (ldpc) code | |
TWI829252B (en) | Method and computer program product and apparatus for decoding low-density parity-check (ldpc) code | |
WO2021146967A1 (en) | Low density parity check code encoding method and encoder | |
US11169878B2 (en) | Non-volatile memory accessing method using data protection with aid of look-ahead processing, and associated apparatus | |
TW202420088A (en) | Apparatus for detecting errors during data encryption | |
TW202236832A (en) | Adaptive serial general purpose input output interface and siganl receiver thereof | |
CN117997797A (en) | Error detecting device for data encryption |