TW202203592A - 通用猜測隨機加性雜訊解碼(grand)的解碼器 - Google Patents
通用猜測隨機加性雜訊解碼(grand)的解碼器 Download PDFInfo
- Publication number
- TW202203592A TW202203592A TW110120488A TW110120488A TW202203592A TW 202203592 A TW202203592 A TW 202203592A TW 110120488 A TW110120488 A TW 110120488A TW 110120488 A TW110120488 A TW 110120488A TW 202203592 A TW202203592 A TW 202203592A
- Authority
- TW
- Taiwan
- Prior art keywords
- error
- decoder
- generator
- matrix
- symptom
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
- H03M13/451—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2778—Interleaver using block-wise interleaving, e.g. the interleaving matrix is sub-divided into sub-matrices and the permutation is performed in blocks of sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6575—Implementations based on combinatorial logic, e.g. Boolean circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
Abstract
所描述者為合適於同任何通訊或儲存系統來使用的解碼器。所描述的解碼器具有模組化解碼器硬體架構,其能夠實行雜訊猜測處理,且由於其僅相依於雜訊,該解碼器設計無關於任何編碼器,因此將其造就成通用解碼器。因此,於此說明的解碼器架構對任何譯碼方案是不可知的。
Description
本發明係關於通用猜測隨機加性雜訊解碼(GRAND)的解碼器。對於相關申請案的交叉參考
本案請求於2020年6月8日申請具有申請序號63/036,237名為「Universal Guessing Random Additive Noise Decoding (GRAND) Decoder」之美國臨時申請案的優先權利益,其於此以其整體參引合併。關於聯邦政府贊助研究的聲明
本發明在由美國海軍研究署(ONR)頒佈的第N6833518C0179號合約下以美國政府支持所作成。美國政府在本發明中有某些權利。
至少部分由於網路的成長(像是網際網路和全球資訊網(通常已知為網頁(Web))),以及計算裝置之發展和使用(像是行動和無線通訊裝置),這些計算裝置正被使用來以位元之串流(或是「位元流(bit stream)」)之形式傳送及接收前所未有的資料量(amounts of data)。不幸的是,這些通訊對於各種類型的擾動(disturbance)是敏感的,為了提供一些範例,像是在傳送通道中的雜訊、不良信號強度或品質、來自可同時通訊或干擾(jamming)的其它裝置的雜擾(interference)。由於這些現象,由接收器接收的資料之位元可與由傳送器傳送的該些者不同。為了確保資料忠實地由接收器接收,運用了不同的技術,像是通道譯碼(channel coding),其將資料之再現性(reproducibility)保留到某種有限的範圍。
如已知的,通道譯碼(亦已知為前向錯誤控制譯碼(FECC; forward error control coding))包含有將冗餘位元加到位元流中的步驟,這類的冗餘位元係由接收器使用以校正由通道導入的錯誤。如此一來,加入的冗餘位元允許接收器識別原始傳送的位元。通道譯碼方法學之範例包括里德-所羅門碼(里德和所羅門,1960)、哈達馬德碼(貝爾,1966)以及漢明碼(漢明,1950)。
提供本發明說明以簡化的形式來介紹概念之選擇,其在下面的實施方式中進一步來說明。本發明說明並不打算識別關鍵或必要特徵或是所請求的標的之結合,也不打算被使用來限定所請求的標的之範圍。
在一態樣中,於此所述者為一種設備和用於通用解碼的技術。
在於此所述的概念之另一態樣中,所述者為用於5G及下一代無線通訊系統的解碼器以及相關的技藝。所述的解碼器具有能夠在實行稱為猜測隨機加性雜訊解碼(GRAND; guessing random additive noise decoding)的解碼演算法上的模組解碼器硬體架構。GRAND解碼器為一種通用解碼器,其合適於在具以不同速率的適度冗餘之碼上使用。適度冗餘意味著冗餘位元的數目使得基於冗餘位元之數目的階數之元素的數目之計算(像是探勘可能錯誤型樣)能以可接收的的複雜度來進行。GRAND解碼器由於其僅相依於雜訊而無關任何編碼器,因此使其為通用最大概似(ML; maximum-likelihood)解碼器。因此,於此說明的解碼器架構對任何譯碼方案是不可知的。在當同時提供較短碼長度、較高速率、較低延時(低於可以先前技術方法所達成的)的同時,GRAND解碼器對於適度冗餘透過每解碼位元低能量而致能高效率。
在實施例中,積體電路(或「晶片」)係組態以依據猜測隨機加性雜訊解碼(GRAND)處理來操作(因而該晶片有時被稱為「GRAND晶片」)。
依據提供來闡述於此說明的較寬廣概念、結構及技術的一範例實施例,方法可包括:由解碼器晶片解調載波信號來產生接收的信號,產生第一錯誤向量,從該接收的信號將該第一錯誤向量之效應反轉來產生第一碼字,並且針對該第一碼字(codeword)檢查碼書(codebook)。方法亦包括:反應於該第一碼字為該碼書的成員(member),將該第一碼字識別為所產生的碼字並且基於該所造成的碼字產生資訊字(information word)。
將成員關係(membership)特徵化的一個方式係透過癥狀(syndrome)之使用。經由癥狀檢查相關性(pertinence)的一個方式係為讓該碼書由同位(parity)檢查矩陣特徵化,該同位檢查矩陣係基於碼長度和支援的碼率(code rate)。方法可包括:由解碼器解調載波信號以產生接收的信號、例如藉由乘以同位檢查矩陣來計算該接收的信號之癥狀、產生第一錯誤向量、例如藉由乘以同位檢查矩陣來計算該錯誤向量之癥狀以及檢查該接收的信號之癥狀和該錯誤向量之癥狀是否相同。方法亦包括:反應於該接收的信號之癥狀等於該錯誤向量之癥狀,從該接收的信號將該第一錯誤向量之效應反轉以產生第一碼字、將該第一碼字識別為所造成的碼字以及基於該所造成的碼字產生資訊字。
在一態樣中,該第一錯誤向量為具有零之漢明權重(Hamming weight)的錯誤向量,並且其它錯誤向量具有一或二的權重。
在一態樣中,基於同位檢查矩陣來產生該癥狀。
在一態樣中,該同位檢查矩陣H
係基於碼長度和碼率。
在一態樣中,方法亦可包括:反應於該接收的信號非為該碼書的成員,如藉由在該接收的信號之癥狀與該第一錯誤向量之者之間不具有相等性來判定,則產生第二錯誤向量,檢查該第二錯誤向量之癥狀是否匹配該接收的信號之者,並且反應於該接收的信號之癥狀等於該第二錯誤向量之癥狀,從該接收的信號將該第二錯誤向量之效應反轉以產生碼字,將此碼字識別為所造成的碼字以及基於該所造成的碼字產生資訊字。
在一態樣中,該第二錯誤向量為具有一之漢明權重的錯誤向量。
在一態樣中,該第一錯誤向量和該第二錯誤向量為複數個錯誤向量中的錯誤向量,該複數個錯誤向量係以機率的遞減次序來安排。
依據提供以闡述於此說明的較寬廣概念的另一示出的實施例,方法可包括:產生通道輸出Y
之癥狀,並且反應於該癥狀為零向量的判定,將該癥狀識別為所造成的碼字以及基於該所造成的碼字來產生資訊字。方法亦包括:反應於該癥狀不是零向量之判定,產生錯誤向量,並且反應於該錯誤向量與同位矩陣H
之乘積(product)等於該癥狀之判定,從該通道輸出Y
將這類錯誤向量之效應反轉以獲得預期的碼字,將該預期的碼字識別為所造成的碼字以及基於該所造成的碼字產生資訊字。
在一態樣中,該第一錯誤向量為具有一和二之漢明權重的錯誤向量。
在一態樣中,該同位檢查矩陣H
係基於碼長度和速率。
在一態樣中,方法亦包括:反應於該第一錯誤向量與同位矩陣H
之乘積不等於該癥狀之判定,產生第二錯誤向量,並且反應於該第二錯誤向量與該同位矩陣H
之乘積等於該癥狀之判定,從該通道輸出Y
將該第二錯誤向量之效應反轉以獲得預期的碼字,將該預期的碼字識別為所造成的碼字以及基於該所造成的碼字產生資訊字。
現請參照圖1A,其繪示依據本揭露之實施例包含通用解碼器的系統。在所繪示的範例中,發送器10透過通訊通道21提供資訊位元(其包括資料12)給接收器。資訊係由編碼器14所編碼且在信號路徑之上傳送或另以提供給通用解碼器22之輸入。無論特別編造於編碼器14與解碼器22之間的信號路徑,於此該信號路徑稱為通道21。在此範例中,通道21包含第一有線或無線通道16、網際網路18和第二有線或無線通道20之一或更多者。
在通用解碼器22處接收的編碼資料可包括一些雜訊或錯誤。通用解碼器22將對之提供的編碼資料解碼且將解碼的資料提供給接收器26(例如,使用者、軟體應用或其它適當的實體)。解碼器22在接收的編碼資料進行偵測且在碼書中輸出一或更多位元。利用適合的編碼及解碼,由發送器提供的資訊位元匹配提供給接收器的解碼的位元。
雖然圖1之範例實施例闡述透過通訊通道21提供給接收器的資訊位元,但在實施例中,可為理想的是,首先將資訊位元提供給儲存系統或其它系統,而非直接給通訊通道21。在此情形中,接收器26可請求且從儲存或其它系統取回資料。
現請參照圖1B,其繪示在示出的通訊通道21中資料流的圖。如繪示的,發送器10可傳送或另以將資料發送到接收器26。在傳送之前,資料12可經由來源譯碼(source coding)被壓縮成較小的資料封包,用以產生要被傳送的資訊串(string of information),。例如,可為位元寬的資訊串,其包含來自字符的符號。編碼器14(例如,產生器矩陣)接著可在這些資料封包上進行通道譯碼(亦即,資訊串),用以添加冗餘,產生線性碼,。添加的冗餘允許在接收器26處錯誤偵測及校正。因此,通道譯碼技術可被利用來確保由發送器傳送的資料忠實地由接收器所接收。
所有位元寬向量的集合已知為碼書,。線性碼能為兩種類型的:系統碼和非系統碼。能以形式被代表的所有碼可被稱為系統碼,其中為要被傳送的位元寬資訊串,並且為字串位元寬,其為在編碼過程中加入的冗餘。不能以形式被代表的所有其它碼可被稱為非線性碼。
如先前所述,對於在發送器104與接收器106之間的通訊通道102中的資料流,發送器104能透過來源譯碼將要被傳送的資料壓縮成較小的封包。例如,讓要由發送器104所傳送的資訊串(其中)作為來源譯碼的輸出,通道譯碼能被進行於這些資料封包上(例如,)用以添加冗餘,其允許在接收器處的錯誤偵測及校正。接著碼書(其中)能被調變於載波信號之上並且透過通訊通道102(例如,傳送通道)來傳送,例如像是無線通道。由於通訊通道102並非完美的,故一些隨機通道雜訊可能被添加到傳送的碼書中。例如,能被設想為另一位元寬向量(例如,),其被添加到碼書中,代表於傳送期間在資料中觀察到的惡化(corruption)。
當載波信號在接收器106處被解調時,接收器106可獲得通道輸出,其為另一位元寬向量。為了獲得曾由發送器104所傳送的資料,接收器能使用或另以應用通道解碼演算法,例如使用解碼器110()用以解碼在通道輸出處接收的資料。應用這類通道解碼演算法可生成預期的碼書,其為另一位元寬向量。在傳送期間曾被添加到資料中的各種冗餘使得從惡化的通道輸出取回傳送的資料是可能的。
基於碼書之具雜訊的版本的觀察復原最可能的資訊字已知為困難問題(NP-困難(NP-hard))。結果是,碼通常以打算的解碼演算法來協同設計(co-design)。結果是,大多數的傳統碼(諸如里德-穆勒(RM; Reed-Mueller)及多數決邏輯、用於CA-Polar碼的循環冗餘檢查協助的(CA; Cyclic-Redundancy-Check Assisted)連續刪除列表(SCL; Successive Cancellation List)解碼、低密度同位檢查(LDPC; Low Density Parity Check)以及置信傳播(BP; Belief Propagation),用來提供些許範例)係並同若干個解碼方案來協同設計,其使得若改變碼則改變解碼器是必要的。由於碼對於解碼演算法需要修正,他們受限於他們的構造。
以這類的傳統碼來看,僅有限的碼率可能用於不同的碼長度。碼率能被界定為資訊位元之數目對碼長度的比率(亦即,)。應注意的是,雖然對具有適度冗餘的碼之研究可指對於所有碼長度的支援,可行性的邊界並未生成碼及關聯的解碼器。在適度的冗餘碼長度上,對於碼率的選取低於容量。亦即,這類有限的碼率可低於通道容量(channel capacity),其被界定為通道之輸入的熵(entropy)與給定輸出的輸入之熵之間的最大差。結果是,為了達成較高速率,傳統碼需要較長的碼長度。
於在第3代合作夥伴計劃(3GPP; 3rd
Generation Partnership Project)第五代(5G)新無線電(NR; New Radio)資料通道中典型的蜂巢式通訊的範例情形中,位元錯誤率(BER; bit error rate)(其定義為每單位時間位元錯誤的數目)一般範圍從10-2
到10-4
。假定一二元對稱通道(BSC; Binary Symmetric Channel)模型,其定義為能夠以交越機率(crossover probability)發送及接收兩符號(0或1)其中僅一者的通道,通道容量為0.92至0.999的階數。該通道之容量係由給定,其中為二元熵函數。3GPP 5G NR資料通道使用具有最低至0.2的速率之3840位元低密度同位檢查(LDPC; low-density parity-check),以及具有在0.33至0.91之間的之8448位元LDPC。此外,為了使通道顯得獨立同分佈(IID; independently and identically distributed),交插發生超過上千個位元。不幸的是,這些方案導入延時(latency),同時遠不足以達到通道容量而失敗。
在最大相概似(ML)解碼方法的情形中,接收的碼書係與在碼書中所有的碼字比較。最接近輸入碼字的碼字被選取作為輸出碼字。因此,通道解碼器之實行著眼於對於在碼書內接收的碼字找到匹配。此方式本質上需要對於解碼器的編碼方案的知識,因此需要他們的互依性(inter-dependency)。為此,碼書係首先在發送器與接收器之間共用。亦同樣的,請注意,針對輸入碼字搜尋碼書為高度複雜的及計算的。
於此所使用的、、分別表示線性碼的長度、維度及速率。線性碼的G
、分別表示線性碼的產生器/同位檢查矩陣(於此有時更簡單地稱為「同位矩陣」)。分別表示資訊字、碼字以及通道輸出。D表示解碼演算法。雜訊係由或來表示。
揭示了用於實行猜測隨機加性雜訊解碼(GRAND)演算法的通用雜訊中心(noise-centric)通道解碼器硬體(例如,積體電路或「晶片」)之概念、裝置、系統及技術。如鑒於此揭露而將理解的是,不像傳統的通道解碼器,實行GRAND的解碼器晶片(或更簡單的解碼器)非著眼於對於在碼書中接收的碼字找到匹配。相反的,實行GRAND的解碼器找到、識別或另以發現由發送器傳送的碼字於從發送器到接收器的傳送期間可能已遭受的一或更多錯誤。由於這類的解碼器能使用GRAND演算法解碼任何種類的線性碼,故此允許實行GRAND的解碼器對編碼方案是不可知的。實行GRAND的解碼器當隨同隨機或隨機線性碼使用時亦為達成具有高機率的容量。
在實施例中,實行GRAND的通用解碼器(於此有時更簡單稱為「GRAND解碼器」)利用可於傳送信號期間遭受的錯誤,取代在碼書中找到碼字。為此,在實施例中,GRAND解碼器以他們發生之機率的遞減次序來產生一系列可能的雜訊序列(於此亦稱為錯誤向量)。錯誤向量係為於傳送期間可已添加到碼字的雜訊之代表。GRAND解碼器將這些錯誤向量從接收的通道輸出減去以產生預期的碼字。
GRAND解碼器檢查通道輸出減推定錯誤(putative error)向量是否在碼書中。生成碼書之成員的第一錯誤向量為所產生的錯誤向量,並且對應的碼字為通道輸出減該錯誤向量。如於此多方面地說明的這個過程能被稱為透過雜訊猜測的ML解碼。
在實施例中,透過雜訊猜測的ML解碼假定了解通訊通道之特性,像是二元對稱通道(BSC; binary symmetric channel)。這類特性之範例包括(但未限定)預期未譯碼的位元錯誤率(BER)以及雜訊之模型。這類特性可經由觀察通訊通道來決定。例如,通訊通道特性對於GRAND解碼器是需要來以他們概似之遞減次序決定錯誤向量序列。請注意,由於在通道中的錯誤並非取決於正被使用的碼,故任何類型的線性碼能隨同GRAND演算法來使用。結果為GRAND解碼器為不可知的碼書且與不同譯碼方案相容。
在實施例中,GRAND解碼器能使用用於n
=128的表示式(expression)來決定具有漢明權重之錯誤的機率。
其中為通道之未譯碼的BER。表1繪示並同對於不同未譯碼值在BSC通道中發生的機率之錯誤的不同漢明權重。
請注意,猜測雜訊之計算複雜度(亦即,每接收的位元作成的猜測之平均數目)隨速率增加而減少。
在實施例中,GRAND解碼器以他們概似的遞減次序產生可能的雜訊序列。這供給了在能量消耗上的降低。
在實施例中,GRAND解碼器藉由利用錯誤向量之稀疏性來達成在矩陣向量乘法運算上的低延時。
在實施例中,GRAND解碼器係與在實時(real-time)或準實時(quasi real-time)上多個同位檢查矩陣()之間切換的內建安全時間交插(time-interleaved)。這對於具有在解碼中最小(且理想上為零)死區(dead zone)的每一個碼字致能了碼書的重新隨機化(re-randomization)。
編碼器
編碼器組件負責準備用於在雜訊通道之上傳送的資訊字。這能包括以錯誤校正碼及將碼字調變來編碼資訊字。
通道
碼字可在雜訊通道上發送,其惡化了碼字之符號中的一些者。感興趣的通道之非限定範例包括:二元對稱通道(BSC)(其為具有某種機率每一個位元翻換的通道,獨立於其它位元)、加性白高斯雜訊(AWGN; Additive White Gaussian Noise)通道(其為獨立地將高斯雜訊加到各個調變的符號的通道)以及叢發性通道(bursty channel)(其為將成塊的順序位元翻換的通道)。
解碼器
在總體概述上,GRAND嘗試猜測或公設(postulate)以概似之遞減次序加到在通道(或雜訊通道)之上發送的碼字之加性雜訊。能使用同位矩陣來完成碼書之成員關係。一旦找到碼字,識別的碼字為最有可能的碼字。嘗試找到這類碼字能在預定數目的猜測之後(GRANDAB)作廢。
更詳細而言且依據本揭露之實施例,GRAND解碼器著眼於找到或另以發現在信號傳送期間可能已導入的錯誤。在一些這類實施例中,給定通道之統計特性,GRAND解碼器能以高機率猜測錯誤。在實行中,GRAND解碼器且特別是GRAND演算法以遞減或趨近他們機率的遞減次序來產生錯誤向量。GRAND解碼器能進行同位檢查以與接收的值相匹配。這提供了在傳送期間導入的錯誤且允許GRAND解碼器從通道輸出產生預期的碼字。
例如,設想為由發送器在通道之上發送到接收器的碼字,而為在碼字傳送期間加到其之中的雜訊。這將提供為接收器的輸出。設想為使用來產生碼字的產生器矩陣,並且讓為其對應的同位矩陣。由於,將通道輸出之兩側皆與上述同位矩陣相乘提供了。
GRAND解碼器能利用通道雜訊特性來以機率之遞減次序產生雜訊序列且能使用碼書會員關係作為雜湊(hash)來驗證錯誤。
圖2為包含處理動作的序列的流程圖,其形成用於依據於此說明的概念解碼的過程之示出的實施例。應理解的是,除非明白地陳述,在流程圖中的處理動作是無序的,意味在流程圖中列出的處理動作可以任何方便的次序來進行。
現請參照圖2,其為依據本揭露之實施例用於猜測隨機加性雜訊解碼(GRAND)的範例過程200。例如,通道輸出()可為128位元寬向量(碼長度),其被遞傳到癥狀計算器。癥狀計算器接著能將通道輸出與同位矩陣()相乘,用以計算通道輸出之癥狀。同位檢查矩陣的維度係基於碼長度以及最小支援碼速率,並且該維度能被給定為。例如,對於0.656的最小支援碼速率,,及同位矩陣的維度為44 x 128。請注意,若且唯若通道輸出為碼書的成員,則癥狀為零向量。此暗示著在傳送期間未曾導入錯誤且已接收正確的碼字。
參考過程200,在202處,檢查癥狀(其中H為同位矩陣並且Y為接收的碼字)以決定其是否為零向量。若作成癥狀為零向量的決定,接著則其能被決定的是,觀察的輸出與在傳送資料期間(例如,在跨通道21傳送資料12到解碼器22期間)沒有錯誤被導入相容,以及通道輸出為最有可能的碼字(亦即,在顧及解碼器之準則的範圍內正確的碼字),例如,其已由發送器(例如在圖1、1A中的發送器10)所發送。處理前進到處理方塊204、205且提供輸出資料Y。
否則,若在抉擇方塊202中作成癥狀不是零向量的決定,則此意味錯誤E存在且提供該癥狀給主錯誤產生器。主錯誤產生器的細節將在下面至少連同圖3~5C來說明。然而,這裡只是要說的是,在實施例中,主錯誤產生器產生了具有一或二的漢明權重的錯誤向量。這些錯誤向量可被視為「容易的」錯誤型樣(例如,具有1或2位元翻換的該些者)。
在抉擇方塊206處,作成關於癥狀是否等於錯誤E和同位矩陣H
的乘積(具有表示為的乘積)的決定。若作成癥狀等於錯誤與同位矩陣的乘積的決定(亦即,),則接著在208處,能被決定的是,找到了於資料傳送期間在通道(例如,通道21)中已遭受的錯誤(亦即,推定錯誤)。接著,處理前進到處理方塊210且主錯誤產生器能從通道輸出減去錯誤來產生預期的碼字(亦即,正確的碼字),而處理方塊前進到前述的方塊204、205。
否則,若在抉擇方塊206中作成癥狀不等於錯誤與同位矩陣的乘積之決定(亦即,不等於),則接著在處理方塊212處,主錯誤產生器將該乘積(亦即,)遞傳給次錯誤產生器,並且改變錯誤型樣。在實施例中,次錯誤產生器產生具有三的漢明權重之錯誤向量。這些錯誤向量可被視為較複雜的錯誤型樣(例如,具有3位元翻換的該些者)。這些錯誤向量為在序列中的下一個錯誤向量。重複上述的過程(例如,在206處,基於癥狀對錯誤與同位矩陣()之乘積的檢查來處理)直到發現實際的錯誤或滿足作廢準則。例如,若錯誤之漢明權重大於三,則可將通道輸出作廢。若滿足作廢準則,則預期的是,發送器將重新傳送該碼字。
圖3A示出通過通用解碼器晶片22’(或更簡單為解碼器22’)的各種模組之流程,該解碼器22’可與上面圖1A、1B所說明的解碼器22相同或類似。解碼器22’包含介面33,透過該介面,資料在解碼器22’中被接收且提供給(例如,於其之間傳送或另以通訊)圖3A的各種解碼器組件。在實施例中,介面33可使用分開的時脈及資料線並同選擇線來選取用於通訊的特定組件。
在運算中,假定癥狀計算器32的記憶體已填充有碼書,反應於由解碼器22’晶片所接收的碼字Y’(亦即,接收的碼字Y’),將接收的碼字Y’提供給癥狀計算器32。反應於對之提供接收的碼字Y’,癥狀計算器計算或另以決定癥狀。若癥狀值為零(0),則接著沒有存在錯誤且所產生的碼字Y經由信號路徑34被發送或另以提供給輸出緩衝器36。亦即,解碼器在其輸出處將對應於預期的碼字Y的碼字輸出。
在另一方面,若癥狀為非零,則接著有錯誤出現。從常見的通道統計來看,已知的是,隨著位元翻換的數目增加,他們發生的機率一般減少。以此考量,將資料提供給主錯誤產生器40a,其中決定了1和2的錯誤權重。
在實施例中,主錯誤產生器40a包含型樣產生器42a、距離邏輯45a、移位器44a、乘法器方塊46a、計算方塊48a以及邏輯方塊50a。一旦決定錯誤E,乘法器方塊進行與同位矩陣H的乘法來產生乘積HE。乘積HE對H.Y’值比較。若發現錯誤,則接著減去錯誤且經由信號路徑52a發送所產生的碼字到輸出緩衝器。
若未發現錯誤,則接著次錯誤產生器參與(亦即,主錯誤產生器40a例如經由緩衝器或其它機構60將乘積(亦即,)遞傳給次錯誤產生器40b)。次錯誤產生器40b包含型樣產生器42b、距離邏輯45b、移位器44b、乘法器方塊46b、計算方塊48b以及邏輯方塊50b。次錯誤產生器從主錯誤產生器接收乘積(亦即,),並且次錯誤產生器改變錯誤型樣。在實施例中,次錯誤產生器可產生具有三的漢明權重之錯誤向量。如上連同圖2所注解的,這些錯誤向量可被視為「難的」錯誤型樣(例如,具有3位元翻換的該些者)。這些錯誤向量為在序列中的下一個錯誤向量。主及次錯誤產生器操作直到發現實際錯誤或滿足作廢準則為止。若發現錯誤,則接著反轉錯誤效果且經由信號路徑52b發送所產生的碼字到輸出FIFO。
或者,若錯誤之漢明權重大於三,則可將通道輸出作廢。如上所注解的,若滿足作廢準則,則預期的是,發送器將重新傳送該碼字。
應理解的是,在運算中,癥狀計算器32並未閒置,而相反的是保持接收新的碼字並且反應於其而產生提供給輸出FIFO的輸出。錯誤產生器的管線化及動態時脈閘控
圖3B示出使用錯誤產生器的管線化及動態時脈閘控通過通用解碼器晶片100(或更簡單為解碼器100)的流程。在實施例中,解碼器100可與上面連同圖1A、1B及3所述的解碼器22相同或類似。
解碼器100包含介面102,透過該介面,資料Y在解碼器100中被接收且提供給(例如,於其之間傳送或另以通訊)圖3A中所示出的各種解碼器組件。在此示出的實施例中,提供介面102作為SPI。解碼器100亦經由第一多工器104接收同位矩陣H,該第一多工器選擇性地將同位矩陣資料引導到矩陣記憶體106、108(分別為在圖3A中表示的H矩陣A和H矩陣B)。矩陣記憶體106、108係耦接至第二多工器110,其選擇性地將同位矩陣資料引導至癥狀104以及至主錯誤產生器(EG; error generator) 112及次EG 114。因此,多工器104,110及記憶體106, 108建立用於平行化及管線化運算的結構技術之至少部分,用以處理資料。
簡而言之,解碼器100利用管線化以增加通量/處理量(throughput)。在此範例實施例中,利用了三級(three-stage)管線化(亦即,管線化成癥狀104、主EG 112及次EG 114)來增加通量。
在一範例實施例中,對於在10-3
之階數上通道位元翻換機率(p),通量可增加了1.7x或更多。
資料透過SPI傳播至輸入記憶體(於此示出為輸入FIFO記憶體)並且被提供到癥狀計算器32。癥狀計算器32對於碼書成員關係和用於計算具有1至3位元翻換之等級排序的(rank-ordered)二元對稱通道雜訊型樣的錯誤產生器(EG)40進行檢查,並且藉由查詢碼書來對於成員關係進行檢查。在此範例實施例中,EG 40包含主及次EG 40a, 40b,平行地檢查2和16錯誤,並從而達成在延時上兩倍(2x)和16倍(16x)降低。
解碼器100善用雜訊統計以基於錯誤概似之機率藉由將EG 112, 114動態時脈閘控來最佳化每解碼位元的能源。
例如,對於n=128位元且p=10-3
,碼字之88%沒有錯誤,他們中之11.99%具有1或2位元翻換,以及他們中之僅0.03%具有3位元翻換。因此,在此範例中,次EG 40b僅對於編碼之0.03%維持主動(active),從而降低平均功率且致能8.4x能源節約。當然,應理解的是,在利用不同數目的位元(例如,n=265、512、1024等)以及對於不同通道位元翻換機率的應用中亦增得了改善。因此,所述的技術在各式各樣不同的應用中找到應用。
在運算中,假定癥狀計算器104已填充有碼書(例如,癥狀計算器之記憶體填充有碼書),反應於由解碼器100所接收的碼字Y(亦即,接收的碼字Y),將接收的碼字Y係提供給癥狀計算器104。反應於對之提供接收的碼字Y,癥狀計算器計算或另以決定癥狀。若癥狀值為零(0),則接著沒有存在錯誤且所造成的碼字Y被發送或另以提供給解碼器之輸出。在此範例實施例中,癥狀係經由輸出緩衝器116輸出(在圖3A的範例實施例中被示出為先進、先出(FIFO; first-in, first-out)緩衝器116)。
對於從於此下面提供的說明將變得明白的理由,癥狀104和主及次EG 112, 114之p處理時間能造成亂序(out-of-order)編碼的碼字。因此,在輸出編碼的碼字之前,需要的是將編碼的碼字重新排序。據此,來自癥狀104所造成的碼字Y係提供給癥狀輸出緩衝器116,且隨後提供給基於標籤(tag-based)重新排序系統118,其重新排序亂序的解碼的碼字,並且提供解碼的碼字120。
在實施例中,基於標籤的重新排序系統118可被設置為部分的解碼器積體電路(例如,解碼器100)。在實施例中,基於標籤的重新排序系統118可為晶片外(off-chip)組件(例如,未被設置為部分的解碼器積體電路),在其情形中,解碼器晶片將接著可輸出解碼的碼字,其被提供到進行需要重新排序亂序的解碼的碼字之分開的處理電路(亦即,與解碼器晶片分開)。
在一範例實施例中,亂序的解碼的碼字可使用二位元標籤來重新排序,以為了成功的資訊復原。下面連同圖15A、15B說明基於標籤的重新排序。當然,應理解的是,亦可使用其它重新排序技術(亦即,其它基於標籤的重新排序)。
若癥狀為非零,則接著有錯誤出現。如上所注解的,從通道統計來看,已知的是,隨著位元翻換的數目增加,他們發生的機率一般減少。以此考量,透過緩衝器121(於此示出為FIFO)從癥狀104提供資料給主EG 112,其中能決定1和2的錯誤權重。
在實施例中,主錯誤產生器112包含型樣產生器122、距離邏輯、移位器、乘法器方塊124、計算方塊以及邏輯。
一旦錯誤E由錯誤產生器122決定或另以提供,則乘法器124進行錯誤值E與同位矩陣H之值之間的乘法,用以產生乘積H.E。如在126中所示出的,乘積H.E對乘積H.Y值比較。若找到錯誤,則接著減去錯誤(例如,補償或另以移除),並且所造成的碼字被發送到主輸出130(在圖3A的範例實施例中示出為先進、先出(FIFO)緩衝器130),而隨後到如上的基於標籤的重新排序系統118。
若在主EG 112中未找到錯誤,則接著透過緩衝器140(於此示出為FIFO)從主EG 112提供資料(例如,乘積H.E)給次EG 114。次錯誤產生器114包含型樣產生器150、距離邏輯、移位器、乘法器方塊152、計算方塊以及邏輯。次錯誤產生器114從主錯誤產生器40a接收乘積(亦即,H.E),並且次錯誤產生器改變錯誤型樣。
在實施例中,次錯誤產生器114可產生具有三的漢明權重之錯誤向量。如上連同圖2所注解的,這些錯誤向量可被視為「難的」錯誤型樣(例如,具有3位元翻換的該些者)。這些錯誤向量為在序列中的下一個錯誤向量。主及次錯誤產生器操作直到發現實際錯誤或滿足作廢準則為止。若找到錯誤,則接著反轉錯誤效果(例如,減去、補償或另以移除),並且所造成的碼字被發送到主輸出154(在圖3A的範例實施例中示出為先進、先出(FIFO)緩衝器),而隨後到如上的基於標籤的重新排序系統118。
或者,若次錯誤產生器114不能決定錯誤,則可作廢通道輸出。例如,在實施例中,若錯誤的漢明權重大於三,則可作廢通道輸出。如上所注解的,若滿足作廢準則,則預期的是,發送器將重新傳送該碼字。
應理解的是,在運算中,癥狀計算器104並未閒置,而相反的是保持接收新的碼字並且反應於其而依據上述技術產生用於處理的輸出。
圖4依據本揭露之實施例闡述範例癥狀計算器300。如先前所說明的,癥狀計算器300可藉由將通道輸出與同位矩陣(例如,)相乘來計算通道輸出(例如,)之癥狀(例如,)。如所繪示的,癥狀計算器300包括位址產生器302、記憶體304、暫存器306、暫存器306、乘法邏輯308以及用於邏輯地按照對其提供的輸入來提供癥狀的邏輯電路310。在範例實行中,位址產生器302可被實行為有限狀態機(FSM; finite state machine),其被組態以產生同位矩陣之兩直行(例如,在圖4中所繪示直行位址1和直行位址2)之位址,並且記憶體304能被提供為雙埠靜態隨機存取記憶體(DPSRAM; dual-port static random access memory)以及邏輯電路310可以為XOR邏輯電路。
如在圖4之範例實施例中所繪示的,從位址產生器302輸出的兩直行之位址被輸入到DPSRAM 304,其產生同位矩陣之兩直行。從DPSRAM 304輸出的同位矩陣之兩直行接著與從暫存器306輸出的向量之二元素相乘(請看圖4中的參考數字308)。來自乘法邏輯的輸出為癥狀值。同位矩陣之兩直行和向量之兩元件的乘積(亦即,來自乘法邏輯308的輸出)接著按位元比較,其中該比較透過使用進行XOR(請見圖4中的參考數字310)來生效,以決定該癥狀是否為零向量。重複上述過程直到同位矩陣耗盡(亦即,所有的同位矩陣之直行都被處理)。若癥狀為零向量(亦即,在傳送期間未曾導入錯誤且該通道輸出為碼字),則發送該癥狀到輸出作為碼字。否則,發送該癥狀到主錯誤產生器來找到或另以發現錯誤。
圖5A示出範例錯誤產生器400,其包含產生距離對(D1, D2)的距離邏輯電路402(或更簡單為距離邏輯402)、使用距離對(D1, D2)來使用算術公式(arithmetic formula)產生型樣的型樣產生器404以及接收對其提供的型樣且邏輯地將N位元值(例如,128位元值)移位了t位元的移位模組(或更簡單為移位器)406。t之選取取決於通道模型,或其能取決於平行化的級數,或取決於兩者。
如在圖3中所示出的,理解的是,該實施例包含以主及次錯誤模組(例如,在圖3中的主及次錯誤模組40, 40’)之形式的兩個不同模組,因而對於兩者的情形錯誤產生器稍微不同。因此,應理解的是,圖5A之範例描繪了錯誤產生器功能特性之一般概念。
如先前所說明的,錯誤產生器400順序地產生不同的型樣。在實施例中,主錯誤產生器400可產生具有一或二的漢明權重之錯誤向量。可基於他們發生概似之他們的遞減次序來產生錯誤向量(錯誤序列)。
錯誤產生器400亦包括作廢邏輯,其決定各種錯誤權重的終止條件。
簡而言之,移位器模組406和距離邏輯402與型樣產生器404之結合可以被認為是生產者消費者(producer-consumer)系統,型樣產生器404負責生產新的型樣,同時移位器模組406負責寫入暫存器,,(圖5C)給定型樣之所有t移位。如在下面將進一步說明的,向量的移位本質上被向量移位了位元。無論何時移位器模組406完成將型樣位移,移位器模組406從型樣產生器404提取下一個型樣。一旦從移位器模組406接收信號,距離邏輯402更新下一個距離,並且型樣產生器404生成下一個錯誤型樣並且將其發送到移位模組406。請注意,錯誤產生器400僅負責產生錯誤而不負責檢查在碼書中的成員關係。因此,錯誤產生器400並不知道(亦即,沒有認知到)何時找到碼字。結果是,利用外側信號(例如,在圖5A、5C及10中的信號 )
來通知錯誤產生器400(亦即,錯誤產生器400之距離邏輯402和移位器模組404兩者)錯誤產生器400何時需要被重置(例如,何時找到碼字)。
更詳細而言且參考圖5C,距離邏輯402係組態以更新在下一個產生的型樣中1之間的距離。也就是,距離邏輯402負責產生具有1之間不同距離的型樣。在運算中,移位器模組406無論何時完成將型樣移位,溢位(overflow)信號()被發送到距離邏輯402,其指示距離邏輯402需要更新下一個型樣的1之間的距離。下列提供用於距離邏輯402的範例擬碼(pseudo code):
1) 若已接收 信
號:將距離邏輯暫存器重置。
2) 否則:當「完成了型樣」,接收信號:
3) 針對下一個型樣更新所有的暫存器。
舉例而言,在二元對稱通道(BSC)的範例情形中,如在圖5B中所繪示的,當預期的錯誤型樣以遞減機率之次序來安排時,可觀察到浮現的型樣。如在圖5B中能看到的,可參照兩個連序高位元之間位元的數目(具有包括的較高有效位元(significant bit)),並且之值隨預期錯誤型樣之遞減機率而增加。在實行中,距離邏輯402可被實現為一或多個計數器。在這類實行中,距離邏輯402每次滿足溢位條件(亦即,每次距離邏輯402逼近溢位條件)能將之值增量,其中溢位條件被界定為錯誤向量之最高有效位元(MSB)為高位。在圖5A中所繪示的範例中,當僅有一位元翻換時,第一錯誤型樣為種子型樣,用以由錯誤移位器模組(例如,移位器模組406)所使用,其對應於0之值。
將理解的是,距離邏輯402可取決於通訊通道來修改。舉例而言,對於叢發性通道模型(例如,其中通道以某種機率將若干個連序位元翻換的模型),距離邏輯402能被變更以具有相鄰1之間1的距離,並且無論何時接收到溢位信號(),1的數目會增加。亦要注意的是,在說明用於兩個不同模型之距離邏輯組件的同時,將理解的是,能鑑於此揭露實行其它距離邏輯。
再請參照圖5A,型樣產生器404係組態以每一次移位器模組406需要新的錯誤型樣來移位時饋送或另以提供新的錯誤型樣給移位器模組406。為此,型樣產生器404從距離邏輯402接收1之間的距離並且在被饋送或另以提供給移位器模組406的新的型樣中產生1的位址。亦即,型樣產生器404從距離邏輯402接收之值作為輸入且產生用於移位器模組406的輸入種子型樣。下列提供用於型樣產生器404的範例擬碼:
1)在下一個型樣中產生1的位址。
舉例而言,如在圖6中所繪示的,型樣產生器404可產生對具有1之位元值之索引(index)的指標(pointer)。如在圖6之一位元翻換的範例中能見到的是,基於,型樣產生器404(圖5A)可產生一位元翻換型樣(16’h80_00)。在產生的向量中,00參照至在索引0處的高位元且對應於第一位元翻換。由於在此範例中就只有一個錯誤,僅需要一個指標。然而,由於型樣產生器404可產生具有二之權重(例如,漢明權重)的錯誤向量,型樣產生器404需要另一個值來當需要時指出其它高位元MM:這清楚嗎?。當不需要該其它值時,型樣產生器404可產生80的空值(null value),其在之後的處理級中被忽略。
如在圖7中所繪示的,型樣產生器404亦可基於產生二位元翻換型樣(16’h04_00)。在產生的向量中,00參照至在索引0處的高位元並且對應至第一位元翻換,而04參照至在索引4處的高位元且對應至第二位元翻換。
請再參照圖5A,移位器模組406係組態以從型樣產生器404接收種子型樣作為輸入並且循環地將型樣位移朝向最高有效位元。此本質地在向量上進行邏輯向左移位(LSL; Logical Shift Left)運算。在運算中,移位器模組406接收主動/有效(active)高位元之索引。因此,為了進行LSL運算,移位器模組406將1加到索引之現存值。在實施例中,移位器模組406在各個時脈周期中可能夠同時產生多達16個錯誤向量,其允許平行化的運算。下列提供用於移位器模組406的範例擬碼:
1) 若已接收 信
號:重置移位器模組。
2) 否則:讓e
0為底部MUX之讀取值(例如,請參照圖12)。
3) 將e
移位了i單位並且輸出ei。
4) 若移位之一者溢位或造成零字串(下面進一步說明):
將「終結型樣(Finish pattern)」傳訊給型樣產生器。
移位器模組406亦組態以產生溢位信號。如先前所說明的,溢位可被界定為其中錯誤向量之MSB行走到高位的條件。由於在向量上進一步的LSL運算將降低在向量中高位元之數目,故此條件被選取,從而改變其權重(例如,漢明權重)。移位器模組406可集體發送溢位信號給距離邏輯402,其中在所有溢位值上進行按位元OR運算。此結果被使用來將計數器對於增量,用以產生下一個種子型樣。
圖8示出依據本揭露之實施例的主錯誤產生器的範例乘法模組800。特別是,範例乘法模組800係使用雙埠SRAM來實行。雙埠SRAM允許透過其兩個存取埠立即存取兩個記憶體區位。這使主錯誤產生器(例如,在圖3中的主錯誤產生器40)各個時脈周期/循環能獲得兩個直行的同位矩陣。
在實施例中,如在圖8中所繪示的,取代從型樣產生器產生二進制值(請見圖8中的參考數字802)的是,型樣產生器產生三個十進制值,其表明在錯誤向量中「1」之位置。來自型樣產生器的輸出(亦即,直行位址)作為輸入被提供給移位器(請見圖8中的參考數字804),其在各個步驟中被增量了一。來自移位器的輸出被提供給DPSRAM(請見圖8中的參考數字806)作為輸入,其中獲得了分別的直行。來自DPSRAM的輸出接著被進行XOR(請見圖8中的參考數字808)並且獲得了最終的乘積。
請注意,在主錯誤產生器中產生的索引值藉由作為用於選擇的直行位址而在乘法模組800中操作為直行選擇器。DPSRAM被使用來儲存同位矩陣。所接收的兩個直行值被XOR在一起,其產生乘積。該乘積接著對癥狀值比較。若該乘積等於癥狀值,則主錯誤產生器從通道輸出將此錯誤值減去來獲得預期的碼字。由於主錯誤產生器至多產生具有兩位元翻換的錯誤,故僅需要單一個DPSRAM,其允許在一個時脈周期/循環中的二筆讀取。這允許在一個時脈周期/循環的非常低延時上進行計算。
如先前所說明的,若主錯誤產生器(例如,在圖3中的主錯誤產生器40)窮盡所有可能的錯誤向量,則主錯誤產生器將乘積(亦即,)遞傳給次錯誤產生器(例如,圖3中的次錯誤產生器40’)。在實行中,可使用先進先出(FIFO)佇列來遞傳乘積。
如在圖9A中所繪示的,次錯誤產生器900包括距離邏輯902、型樣產生器904以及移位器模組906。在實施例中,次錯誤產生器900之結構類似於如先前所描述之主錯誤產生器400之結構。
請參照次錯誤產生器900,距離邏輯902係組態以更新在下一個產生的型樣中1之間的距離。也就是,距離邏輯902負責產生具有1之間不同距離的型樣。在運算中,移位器模組906無論何時完成將型樣移位,溢位(overflow)信號()被發送到距離邏輯902,其指示距離邏輯902需要更新下一個型樣的1之間的距離。
舉例而言,在BSC的範例情形中,如在圖10A中所繪示的(具有距離邏輯10B),當預期的錯誤型樣以遞減機率之次序來安排時,可觀察到浮現的型樣。如能在圖10A中見到,可參照至在最低有效高位元與第二最低有效高位元(具有包括的第二高位元)之間的位元之數目。可參照至在最高有效高位元與第二最高有效高位元(具有包括的第二高位元)之間的位元之數目。同位之值可由下列來給定:
在實施例中,距離邏輯902可考量此對之型樣,並且一當接收或另以被提供適當的溢位信號時,順序地產生這些值。在實行中,距離邏輯902可被實現為計數器。在這類實行中,距離邏輯902每次滿足溢位條件(亦即,每次距離邏輯902逼近溢位條件)能將和之值增量。
再請參照圖9A,型樣產生器904係組態以每一次移位器模組906需要新的錯誤型樣來移位時饋送或另以提供新的錯誤型樣給移位器模組906。為此,型樣產生器904從距離邏輯902接收對之值作為輸入且產生用於移位器模組906的輸入種子型樣。在範例實行中,型樣產生器904可使用下列式子來產生種子型樣:
舉例而言,如在圖11中所繪示的,型樣產生器904可產生對具有1之位元值之索引(index)的指標(pointer)。如能見到的,該一位元翻換型樣和該二位元翻換型樣係分別與連同上面圖6和7中上面提供的說明一致。在此實例中,如在圖11中所繪示的,在和的基礎上,型樣產生器904可產生三位元翻換型樣(24’h04_02_00)。在產生的向量中,00參照至在索引0處的高位元並且對應至第一位元翻換,02參照至在索引2處的高位元且對應至第二位元翻換,而04參照至在索引4處的高位元且對應至第三位元翻換。
請再參照圖9A,移位器模組906係組態以從型樣產生器904接收種子型樣作為輸入並且循環地將型樣位移朝向最高有效位元。此本質地在向量上進行邏輯向左移位(LSL; Logical Shift Left)運算。在運算中,移位器模組906接收主動/有效(active)高位元之索引。因此,為了進行LSL運算,移位器模組906將1加到索引之現存值。在實施例中,移位器模組906在各個時脈周期中可能夠同時產生多達16個錯誤向量,其允許平行化的運算。
在範例實施中,如在圖12中所繪示,移位器模組906可被組態以平行產生在四個分支上的錯誤向量。如能在圖12中見到的是,方塊將向量移位了次且輸出被寫入到對應的暫存器。係無論何時移位器造成溢位為1的信號。基本型樣(由表示)被移位了16次,其在各個時脈周期/循環輸出基本型樣的16個移位。當其在單一周期/循環內提供16個錯誤向量時,此為晶片之平行化的關鍵部分。請注意,將二進制字串移位了位元相當於將代表的整數乘以。
類似於先前說明的移位器模組406,移位器模組906亦組態以產生溢位信號。再一次,溢位可被界定為其中錯誤向量之MSB行走到高位的條件。由於在向量上進一步的LSL運算將降低在向量中高位元之數目,故此條件被選取,從而改變其權重(例如,漢明權重)。若移位運算造成溢位(輸入的數個一(1’s)其中一者的),或若移位器單元之輸出為0字串,則對應的信號被設置成一(否則其被設置為零)。移位器模組906可集體發送溢位信號給距離邏輯902,其中在所有溢位值上進行按位元OR運算。此結果被使用來將計數器對於對增量,用以產生下一個種子型樣。亦即,信號通知距離邏輯902其何時需要針對下一個錯誤型樣的距離更新。錯誤產生器
現請參照圖9B,錯誤產生器950包含耦接至型樣產生器954及錯誤移位器956的錯誤邏輯電路952(或更簡單為錯誤邏輯)。如在圖9A中所示出的,錯誤產生器950平行地產生、創建或另以提供有次序的錯誤序列。
錯誤邏輯952包含1位元距離邏輯960、2位元距離邏輯962以及3位元距離邏輯964,並且產生(D1, D2)距離對來指示在猜測雜訊序列(E)中主動高位元(1s)之間的距離。
型樣產生器954建構由(D1, D2)界定的位元序列,其接著被使用作為用於錯誤移位器956的輸入種子1之索引。錯誤移位器956透過對於主及次EG循環移位而平行地創建二(2)及十六(16)個種子序列之變異。對於3位元錯誤移位器,在平行的分支中(於此,在四(4)個平行分支中)產生錯誤向量,用以經由1位元和4位元邏輯向左移位的結合來降低臨界路徑延遲。
圖13A示出依據本揭露之實施例次錯誤產生器900的範例乘法模組1300。特別是,乘法模組900係使用雙埠SRAM來實行。各個雙埠SRAM允許透過其兩個存取埠立即存取兩個記憶體區位。這兩個雙埠SRAM使主錯誤產生器900能在各個周期/循環獲得同位矩陣之三個直行。
在實施例中,如在圖13A中所繪示的,取代從型樣產生器產生二進制值(請見圖13A中的參考數字1302)的是,型樣產生器產生三個十進制值,其表明在錯誤向量中「1」之位置。來自型樣產生器的輸出(亦即,直行位址)作為輸入被提供給移位器(請見圖13A中的參考數字1304),其在各個步驟中被增量了一。來自移位器的輸出其中兩者被提供給DPSRAM(請見圖13A中的參考數字1306)作為輸入,其中獲得了分別的直行。來自移位器的第三輸出被提供給第二DPSRAM(請見圖13A中的參考數字1308)作為輸入,其中獲得了對應的直行。來自第一及第二DPSRAM的輸出接著被比較,可能藉由被進行XOR(請見圖13A中的參考數字1310)並且獲得了最終的乘積。請注意,由於次錯誤產生器900產生具有三位元翻換的錯誤因而需求三條存取線,故利用兩個DPSRAMS。此呈現出未利用第二DPSRAM(例如,DPSRAM 1308)之埠的其中一者。在乘法期間,未被利用的第二DPSRAM該埠可例如經由埠致能信號的手段來轉向關(OFF)狀態。稀疏乘法器:
請參照圖13B,所繪示者為一種示出的稀疏乘法器1350。錯誤向量1352被饋送至矩陣向量乘法單元中,用以計算及檢查H.Y是否等於H.E,其中H為同位矩陣1353。在此範例實施例中,同位矩陣H 1353具有四十四(44)條橫列和一百二十八(128)條直行(H44x128
),並且錯誤向量E具有128條橫列和1條直行(E128x1
)。在另一實施例中,可使用選定來適合特定應用之需要的其它矩陣尺寸。一般而言,錯誤向量E將具有鮮少的非零元素(entry)。例如,在實施例中,錯誤向量E可為最大的用於128x1錯誤向量的3非零元素。在圖13A的範例中,橫列R1、R3及R7為在錯誤向量E中的僅非零元素。要注意的是,在載入(或儲存)在記憶體1354中之前,同位矩陣值和錯誤向量值可被儲存於記憶體中。
為了在單一時脈周期/循環中達成低延時乘法,可能善用錯誤矩陣(或錯誤向量)E之稀疏性。稀疏矩陣E主動高位元(亦即,在範例中的R1、R3、R7)被使用作為用於儲存在記憶體1354(於此示出為雙埠SRAM)中之H矩陣的直行位址。在記憶體1354之選定的直行C1、C3、C7中的資料被提供給邏輯電路1356,其進行邏輯XOR運算(亦即,直行C1、C3、C7經由邏輯電路1356被進行XOR),用以生成乘積H.E. 1360 (HE44x1
)。
圖14A示出依據本揭露之實施例用於重新隨機化碼書的範例架構1400。架構1400提供在通訊中的安全及解碼方法之實體層。此係藉由在時間交插的架構中重新隨機化碼書來達成。例如,設想具有對應的同位矩陣和的兩個產生器矩陣。以編碼的碼字僅能以來解碼。類似地,以編碼的碼字僅能以來解碼。基於此原則,如在圖14中所繪示的,乘法方塊(請見在圖14中的參考數字1402)包括SRAM方塊A(請見圖14的參考數字1402A)和SRAM方塊B(請見在圖14中的參考數字1402B)。各個SRAM方塊含有另一碼的同位矩陣。例如,SRAM方塊A能含有,而SRAM方塊B能含有。碼選擇器方塊(請見在圖14中的參考數字1404)能被使用來決定確字被輸入到哪一個同位矩陣(亦即,SRAM方塊A或SRAM方塊B)中,並且使用對應的矩陣來解碼碼字。此允許解碼多個碼。
在實施例中,額外的控制(未繪示)可允許改變在SRAM方塊其中一者中的同位矩陣,同時其餘的SRAM方塊正被利用來解碼進入的通道輸出。此允許有效地降低(且理想地是消除)可藉由改變同位矩陣引起的停機時間(downtime)。在實施例中,可使用隨機數字產生器來產生成串的值來決定要被使用的同位矩陣之序列。在一些這類實施例中,同位矩陣之序列可被產生於晶片運算開始處。在實施例中,同位矩陣之序列可被儲存在晶片外,例如在安全儲存中。碼交插:
圖14B、14C示出由解碼器進行的碼交插(CI; code interleaving),解碼器像是例如在上面連同圖1~3中所述的通用解碼器。
請參照圖14B,輸入碼字和H矩陣值係在平行信號路徑之間進行多工,各者導向H矩陣值所被儲存於其中的記憶體(於此為成對的SRAM)。偽隨機數字產生器係耦接至多工器(muxes)且造成分別的多工器隨機地選擇複數個碼字其中一者和複數個H矩陣其中一者。輸入碼字多工器將選定的輸入(因為在選定的輸入上的資料)轉送或另以導向到乘法器電路。H矩陣多工器將選定的輸入(因而為在選定的輸入上的資料)轉送或另以導向到H矩陣記憶體選擇器開關(於此示出為單極雙投開關(single pole double throw switch))。開關輸出係選擇性地在成對的記憶體之間耦接。因此,來自H矩陣多工器的資料係選擇性地(以交插/交錯的方式)提供給該對H矩陣記憶體其中一者。在運算中,當H矩陣正被載入到H矩陣記憶體其中一者中時,其餘的H矩陣記憶體可被使用於解碼碼字。亦即,當資料正被載入到一記憶體中時,其餘的記憶體為主動的。
在圖14B中的碼交插/交錯藉由同時解碼及改變儲存在SRAM中的H矩陣來有效地將碼書實時地重新隨機化。因此,當在一SRAM中的矩陣準備好被使用於解碼運算時,正改變在其餘的SRAM中的矩陣。此交插/交錯方式增加動態碼書初始化的處理量。在實施例中,動態碼書初始化的處理量被增加了1.6x。
當不正確的H矩陣被使用於RLC解碼,可能劣化延時。藉由動態地將碼書重新隨機化來利用此特徵做為安全層。
請參照圖14C,所繪示者為兩記憶體在操作期間之主動的、死區及載入次數。基於標籤的重新排序
請參照圖15A,所繪示者為當例如被使用於圖3B的系統中時基於標籤的重新排序之範例。如連同圖3B所注解的,癥狀、主及次EG之不同的處理次數造成亂序(out-of-order)解碼的碼字。這類亂序的解碼的碼字可使用標籤來重新排序,以為了成功的資訊復原。在圖15A的範例實施例中,二位元標籤被使用於成功的資訊復原。用於重新排序3級管線之輸出的標籤係於圖15B中繪示。
如在圖15A中所繪示的,針對癥狀計算器輸出(例如,如在圖3A中所繪示的),標籤位元00意味HY為零,而01意味HY為非零。若HY為非零,則碼字將被遞傳給主錯誤產生器(例如,分別在圖3A、3B中的主錯誤產生器40a、112),以用於對具有以遞減機率的一及二位元翻換的等級排序的雜訊序列進行檢查。若在主錯誤產生器找到正確的錯誤序列,則標籤位元將維持為01而主輸出將為最終輸出。否則,標籤位元將被改變成10。接著,將藉由以透過概似排序的三位元翻換檢查可能的錯誤序列來在次錯誤產生器(例如,在圖3A中的次錯誤產生器40b)中處理碼字。若在次錯誤產生器中找到正確的雜訊型樣,則接著標籤將停留為10。在此情形中,解碼器將從次出來輸出碼字。否則,標籤位元將被改變成11,且此標籤值指示在解碼上的失敗。
圖15A示出依據本揭露之實施例用於結合癥狀計算器之輸出的次序的2位元旗標之範例使用。在圖3A、3B中示出範例癥狀計算器(例如,分別的癥狀32、104)。下列提供用於基於標籤的重新排序系統的範例擬碼:
對於各個癥狀輸出
若其旗標為01
則等待主錯誤產生器輸出
若其旗標為10
則等待次錯誤產生器輸出
取代碼字和旗標兩者
結束
取代碼字和旗標兩者
結束
取代碼字和旗標兩者
結束
進一步例示的實施例
下列範例屬於進一步實施例,眾多的置換及組態自該些範例將為顯見的。
範例1包括一種方法,包括:藉由解碼器解調載波信號,用以產生接收的信號;藉由該解碼器計算該接收的信號之癥動,藉由該解碼器產生第一錯誤向量;藉由該解碼器檢查該接收的信號之癥狀是否等於該第一錯誤向量之癥狀;及反應於該兩個癥狀相等,將該第一錯誤向量識別為實際錯誤向量;以及基於從該接收的信號將該實際錯誤向量反轉來產生資訊字。
範例2包括範例1的標的,其中該第一錯誤向量係基於該載波信號經由其所接收的通訊通道之至少一特性而產生。
範例3包括範例2的標的,其中該至少一特性包括預期未譯碼位元錯誤率(BER)。
範例4包括範例2的標的,其中該至少一特性包括在該通道中雜訊的模型。
範例5包括範例1到4之任一者的標的,其中當該第一錯誤向量之癥狀和該接收的信號之癥狀不相等時,由該解碼器產生一或更多錯誤向量,進行下列步驟:藉由該解碼器檢查該接收的信號之癥狀是否等於該一或更多錯誤向量之一者的癥狀;反應於該接收的信號的癥狀等於該錯誤向量之至少一者的癥狀的該二癥狀,將其癥狀等於該接收的信號向量之癥狀的錯誤識別為該實際錯誤向量;以及基於從該接收的信號將該實際錯誤向量之效應反轉來產生資訊字。
範例6包括範例5的標的,其中第二錯誤向量為具有一之漢明權重的錯誤向量,並且隨後的錯誤向量係按漸增的漢明權重次序。
範例7包括範例6的標的,其中該第一錯誤向量和該第二錯誤向量為複數個錯誤向量中的錯誤向量,該複數個錯誤向量係以機率的遞減次序來安排。
範例8包括範例1到7之任一者的標的,其中用於該接收的信號和該第一錯誤向量的癥狀係針對多於一個碼書來計算。
範例9包括一種方法,包括:產生通道輸出之癥狀;反應於該癥狀為零向量的判定,將該癥狀識別為所造成的碼字並且基於該所造成的碼字產生資訊字;以及反應於該癥狀不為零向量的判定,產生第一錯誤向量;及反應於第一錯誤向量與同位矩陣之乘積等於該癥狀的判定,將從該通道輸出的該第一錯誤向量之效應反轉,用以獲得預期的碼字;將該預期的碼字識別為所造成的碼字;以及基於該所造成的碼字產生資訊字。
範例10包括範例9的標的,其中該資訊字能被使用來進行晶片外倒極變換(inverse polar transformation)。
範例11包括範例9和10之任一者的標的,其中該第一錯誤向量為複數個錯誤向量其中一者,該複數個錯誤向量以機率的遞減次序來安排。
範例12包括範例9到11之任一者的標的,其中該第一錯誤向量係基於該通道之至少一特性來產生。
範例13包括範例9到12之任一者的標的,其中該至少一特性包括預期未譯碼位元錯誤率(BER)或在該通道中雜訊的模型。
範例14包括範例9到13之任一者的標的,更包括:反應於該第一錯誤向量與同位矩陣之乘積不等於該癥狀之判定,產生第二錯誤向量;並且反應於該第二錯誤向量與該同位矩陣之乘積等於該癥狀之判定,從該通道輸出將該第二錯誤向量減去以獲得預期的碼字;將該預期的碼字識別為所造成的碼字;以及基於該所造成的碼字產生資訊字。
範例16包括範例9和15之任一者的標的,其中該第二錯誤向量為複數個錯誤向量其中一者,該複數個錯誤向量以機率的遞減次序來安排。
範例17包括範例9到16之任一者的標的,其中用於該接收的信號和該第一錯誤向量的癥狀係針對多於一個碼書來計算。
範例18包括範例9到17之任一者的標的,其中錯誤產生器依據他們產生的錯誤之類型在不同的速度上操作。
範例19包括範例18的標的,其中用於具有較高漢明權重的錯誤之錯誤產生器操作在較高的頻率上。
範例20包括一種錯誤產生器,其中錯誤藉由使用移位器來產生。
範例21包括範例20之的標的,其中錯誤型樣藉由距離邏輯判定移位之類型來控制。
範例22包括範例21之標的,其中移位之一些者係與產生的錯誤向量之機率的次序關聯。
範例23包括範例20到22之任一者的標的,其中錯誤產生器依據他們產生的錯誤之類型在不同的速度上操作。
範例24包括範例23的標的,其中用於具有較高漢明權重的錯誤之錯誤產生器操作在較高的頻率上。
範例25包括一種方法,包括:將在編碼器處接收的信號標籤;以及依據該標籤將對應至該接收的信號的資訊字排序。
揭露的實施例可以各種不同形式之任一者來實行。例如,揭露的實施例能在各種形式的通訊裝置內實行,有線的和無線的兩者,像是電視機、機上盒、音訊/視訊裝置、智慧電話、膝上型電腦、桌上型電腦、平板電腦、衛星通訊器、具有通訊能力的相機、網路介面卡(NIC; network interface card)以及其它網路介面結構、基地台、存取點和數據機。
於此所述的標的能以數位電子電路,或以電腦軟體、韌體或硬體來實行,包括在此說明書中所揭露的結構機構以及其結構等同物,或是他們的組合。於此所述的標的能被實行為一或更多電腦程式產品,像是可觸地體現於資訊載體中的一或更多電腦程式(例如,在機器可讀儲存裝置中),或體現於傳播的信號,用於藉由資料處理設備執行或用以控制資料處理設備之操作(例如,可程式化處理器、電腦或多台電腦)。電腦程式(亦已知為程式、軟體、軟體應用或碼)能以任何形式的程式化語言來撰寫,包括編譯的或解譯的語言,並且其能以任何形式來佈署,包括為獨立程式或為模組、組件、副程式(subroutine)或合適於在計算環境中使用的另外的單元。電腦程式並不必然對應於檔案。程式能被儲存在持有其它程式或資料的檔案之部分中、在專用於所討論的程式的單一檔案中或在多個協同的檔案(例如,儲存一或更多模組、子程式或碼之部分的檔案)中。能佈署電腦程式以在一台電腦或多台電腦上在一個位址或跨多個位址分佈且藉由通訊網路來互連而執行。
在此說明書中所述的過程及邏輯流程,包括於此所述的標的之方法步驟,能藉由執行一或更多電腦程式的一或更多可程式化處理器來進行,以藉由在輸入資料上操作且產生輸出進行於此所述的標的之功能。過程及邏輯流程亦能藉由於此說明的標的之設備來進行,於此說明的標的之設備能被實行為特定目的邏輯電路,例如FPGA (場可程式化閘陣列)及/或ASIC(特定應用積體電路)。
藉由範例的方式,合適用於執行電腦程式的處理器包括通用及特定目的兩者的微處理器,以及任何種類的數位電腦的任一或更多處理器。一般而言,處理器將接收來自唯讀記憶體或隨機存取記憶體或兩者的指令和資料。電腦的必要元件為用於執行指令的處理器和用於儲存指令及資料的一或更多記憶體裝置。一般而言,電腦亦將包括或可操作地耦合以接收資料自或傳輸資料到用顧儲存資料的一或更多大量儲存裝置或兩者,例如磁、磁光碟或光碟。合適於體現電腦程式指令及資料的資訊載體包括所有形式的非揮發性記憶體,藉由範例的方式,其包括半導體記憶體裝置,像是EPROM、EEPROM、快閃記憶體裝置或磁碟。處理器及記憶體能由特定目的邏輯電路輔助或是能結合於其中。
在前面的詳細說明中,各種特徵被群集在一起於一或更多個別實施例中,以為了精簡本揭露的目的。此揭露之方法並非要被轉譯為反映各個請求項需求比其中明白記載的更多特徵的打算。相反的,發明的態樣可在於比各個揭露的實施例之所有特徵還少。
在本揭露中及在所附的申請專利範圍中所使用的術語(例如,所附申請專利範圍之本體)一般係打算為「開放式」術語(例如,術語「其包括」應被解譯為「其包括,但不限於」,術語「具有」應被解譯為「具有至少」,術語「包括有」應被解譯為「包括有,但不限於」等)。
此外,若意圖特定數目的引入請求項記載,這樣的意圖將明白地記載於該請求項中,並且在缺少這類記載下,則沒有出現這樣的意圖。例如,作為對了解的協助,下列所附申請專利範圍可含有引入式用語「至少一」和「一或更多」的使用,用以引入請求項的記載。然而,即使當同樣請求項包括引入式用語「一或更多」或「至少一」以及諸如「一」或「一種」的不定冠詞時,這類用語的使用不應被理解為暗示將請求項記載引入了不定冠詞「一(a)」或「一種(an)」而將含有這類引入的請求項記載的特定請求項限定成含有僅一個這類記載的實施例(例如,「一」及/或「一種」應被解譯為意味「至少一」或「一或更多」);同樣適用於使用以引入請求項記載的定冠詞之使用。
所揭露的標的在其應用中並不限於在下面的說明提出的或在圖式中示出的結構之細節及組件之佈設。揭露的標的能夠為其它實施例的且能夠以各種方式施行及實現。如此,在本領域中具有通常知識的該些者將理解,本揭露所依據的概念可輕易地被利用為用於為了實現揭露的標的之些許目的設計其它結構、方法及系統的基礎。因此,申請專利範圍應被視為包括這類均等的結構,只要他們未悖離所揭露的標的之精神及範圍。
同樣,在本專利中使用的用語和術語係為了描述的目的且不應被視為限定。如此,本揭露所依據的概念可輕易地被利用為用於為了實現揭露的標的之些許目的設計其它結構、方法及系統的基礎。因此,申請專利範圍應被視為包括這類均等的結構,只要他們未悖離所揭露的標的之精神及範圍。
雖然在前面示出的實施例中已說明及闡述所揭露的標的,要了解的是,本揭露已僅藉由範例的方式作成,並且可在不悖離所揭露的標的之範圍下在揭露的標的之實行的細節上作成眾多改變。據此,此專利之範圍不應限於所說明的實施例,而相反的應僅由下列申請專利範圍之精神及範圍所限制。
10:發送器
12:資料
14:編碼器
16:通道
18:網際網路
20:通道
21:通道
22,22’:解碼器
24:資料
26:接收器
32:癥狀計算器
33:介面
34:信號路徑
36:輸出緩衝器
38:值
40a:主錯誤產生器
40b:次錯誤產生器
42,42’:型樣產生器
44,44’:移位器
45,45’:距離邏輯
46,46’:乘法方塊
48,48’:計算方塊
50,50’:邏輯方塊
52,52’:信號路徑
60:緩衝器
100:通用解碼晶片
102:介面
104:第一多工器
106:矩陣記憶體
108:矩陣記憶體
110:第二多工器
112:主錯誤產生器
114:次錯誤產生器
116:癥狀輸出緩衝器
118:基於標籤重新排序系統
120:碼字
121:緩衝器
122:型樣產生器
124:乘法器
130:緩衝器
140:緩衝器
150:型樣產生器
152:乘法器方塊
154:主輸出
302:位址產生器
304:記憶體
306:暫存器
308:乘法方塊
310:邏輯電路
400:錯誤產生器
402:距離邏輯電路
404:型樣產生器
406:移位器模組
800:乘法模組
802:型樣產生器
804:移位器
806:雙埠靜態隨機存取記憶體
902:距離邏輯
904:型樣產生器
906:移位器模組
950:錯誤產生器
952:錯誤邏輯電路
954:型樣產生器
956:錯誤移位器
960:1位元距離邏輯
962:2位元距離邏輯
964:3位元距離邏輯
1300:乘法模組
1302:型樣產生器
1304:移位器
1306:第一雙埠靜態隨機存取記憶體
1308:第二雙埠靜態隨機存取記憶體
1350:稀疏乘法器
1352:錯誤向量
1353:同位矩陣
1354:記憶體
1356:邏輯電路
1360:乘積
1400:用於重新隨機化碼書的架構
1402:乘法方塊
1402A:靜態隨機存取記憶體方塊
1402B:靜態隨機存取記憶體方塊
1404:碼選擇器方塊
製作及使用所揭露的實施例之方式及過程可藉由參考所附圖式之圖來理解。應理解的是,在圖中所闡述的組件和結構必不必然是等比例的,取而代之的是重點著眼於闡述於此所述的概念之原理。相似的參考數字遍及不同的視圖標定對應的部分。進一步而言,在圖中實施例係藉由範例的方式來闡述而非限制,其中:
[圖1A]為依據本揭露之實施例包含通用解碼器的系統之方塊圖。
[圖1B]為在示出的通訊通道中資料流的方塊圖。
[圖2]為依據本揭露之實施例用於猜測隨機加性雜訊解碼(GRAND)的範例過程之流程圖。
[圖3A]為依據本揭露之實施例的通用解碼器之方塊圖。
[圖3B]為依據本揭露之實施例的通用解碼器之方塊圖。
[圖4]為依據本揭露之實施例闡述範例癥狀計算器之方塊圖。
[圖5A]為依據本揭露之實施例的範例主錯誤產生器之方塊圖。
[圖5B]為映射至距離對的錯誤向量之範例。
[圖5C]為依據本揭露之實施例的圖4之主錯誤產生器的範例距離邏輯電路。
[圖6]繪示依據本揭露之實施例的一位元翻換型樣之範例。
[圖7]繪示依據本揭露之實施例的二位元翻換型樣之範例。
[圖8]為依據本揭露之實施例的主錯誤產生器的範例乘法模組之方塊圖。
[圖9A]為依據本揭露之實施例的範例次錯誤產生器之方塊圖。
[圖9B]為依據本揭露之實施例的範例錯誤產生器之方塊圖。
[圖10A]為映射至距離對的錯誤向量之範例。
[圖10B]為依據本揭露之實施例的圖9之次錯誤產生器的範例距離邏輯電路。
[圖11]繪示依據本揭露之實施例的三位元翻換型樣之範例。
[圖12]為依據本揭露之實施例的範例移位器模組之方塊圖。
[圖13A]為依據本揭露之實施例的次錯誤產生器的範例乘法模組之方塊圖。
[圖13B]為依據本揭露之實施例的範例稀疏乘法器之方塊圖。
[圖14A]為依據本揭露之實施例用於重新隨機化碼書的範例架構之方塊圖。
[圖14B]為依據本揭露之實施例用於碼交插及重新隨機化碼書的範例架構之方塊圖。
[圖14C]為依據本揭露之實施例闡述碼交插的圖。
[圖15A]為依據本揭露之實施例闡述範例的使用用於重新排序癥狀計算器之輸出的2位元旗標的圖。
[圖15B]為依據本揭露之實施例闡述用於重新排序3階管線之輸出的標籤的圖。
22:解碼器
32:癥狀計算器
33:介面
34:信號路徑
36:輸出緩衝器
38:值
40a:主錯誤產生器
40b:次錯誤產生器
42,42’:型樣產生器
44,44’:移位器
45,45’:距離邏輯
46,46’:乘法方塊
48,48’:計算方塊
50,50’:邏輯方塊
52,52’:信號路徑
60:緩衝器
Claims (18)
- 一種通用解碼器,包含: 癥狀計算器,用於檢查在碼書中接收的資料之成員關係;以及 錯誤產生器,耦接至該癥狀計算器,其中反應於該癥狀計算器偵測到錯誤,該癥狀計算器將該錯誤提供給該錯誤產生器,並且該錯誤產生器計算等級排序的二元對稱通道雜訊型樣並且針對在碼書中的成員關係進行檢查。
- 如請求項1所述的通用解碼器,其中該錯誤產生器包含主錯誤產生器和耦接至該主錯誤產生器的次錯誤產生器。
- 如請求項1所述的通用解碼器,其中該錯誤產生器係組態以平行地檢查錯誤,用以降低在處理碼字中的延時。
- 如請求項1所述的通用解碼器,其中該錯誤產生器包含: 錯誤邏輯,其產生(D1, D2)距離對以指示在猜測雜訊序列(E)中的主動高位元(1s)之間的距離; 耦接至該錯誤邏輯的型樣產生器;以及 耦接至該錯誤邏輯及該型樣產生器的錯誤移位器,其中產生(D1, D2)距離對以指示在猜測雜訊序列(E)中該主動高位元(1s)之間的該距離的錯誤邏輯和該型樣產生器建構由(D1, D2)界定的位元序列,其接著被使用為用於該錯誤移位器的輸入種子1s之索引,並且該錯誤移位器透過對於該主及次錯誤產生器的循環移位平行地創建該種子序列之變異,使得該錯誤產生器平行地創建有次序的錯誤序列。
- 如請求項1所述的通用解碼器,其中資料被管線化,使得在癥狀計算器、主錯誤產生器及次錯誤產生器中處理資料造成亂序的解碼的碼字。
- 如請求項5所述的通用解碼器,更包含重新排序電路,組態以接收該亂序的解碼的碼字,並且組態以將該亂序的解碼的碼字重新排序。
- 如請求項6所述的通用解碼器,其中該重新排序電路包含基於標籤的重新排序電路。
- 如請求項6所述的通用解碼器,其中該解碼器利用雜訊統計來基於錯誤概似之機率藉由將該主及次錯誤產生器動態時脈閘控來將每解碼的位元的能量最佳化。
- 一種通用解碼器,包含: 用於接收輸入碼字和H矩陣值的機構; 用於將平行信號路徑之間的H矩陣值進行多工的機構,信號路徑導向一對記憶體,H矩陣值係儲存於其中; 癥狀計算器,組態以接收輸入碼字和H矩陣值; 錯誤產生器,耦接至該癥狀計算器,其中反應於該癥狀計算器偵測到錯誤,該癥狀計算器將該錯誤提供給該錯誤產生器,並且該錯誤產生器計算等級排序的二元對稱通道雜訊型樣並且針對在碼書中的成員關係進行檢查。
- 如請求項9所述的通用解碼器,更包含偽隨機數字產生器,耦接至該用於將H矩陣值進行多工的機構,並且引起該用於進行多工的機構隨機選擇複數個H矩陣其中一者。
- 如請求項9所述的通用解碼器,更包含偽隨機數字產生器,耦接至該用於進行多工的機構,並且引起該進行多工的機構隨機選擇複數個輸入碼字其中一者和複數個H矩陣其中一者。
- 如請求項9所述的通用解碼器,其中該用於接收輸入碼字和H矩陣值的機構將選定的輸入碼字引導至乘法器電路之第一輸入。
- 如請求項12所述的通用解碼器,更包含用於從該對記憶體之第一者提供H矩陣值給乘法器電路之第二輸入的機構,使得該乘法器電路生成該H矩陣值與輸入碼字的乘積。
- 如請求項13所述的通用解碼器,更包含用於與該對記憶體之該第一者提供H矩陣值給該乘法器電路之該第二輸入同時將H矩陣值載入到該對記憶體之第二者中的機構。
- 如請求項13所述的通用解碼器,更包含用於以交插的方式將H矩陣資料載入於該第一及第二記憶體中的機構。
- 如請求項9所述的通用解碼器,更包含藉由同時解碼和改變儲存在第一及第二記憶體中的H矩陣即時將碼書重新隨機化的機構,使得當在該第一及第二記憶體之第一者中的H矩陣準備好被使用於解碼運算時,在該第一及第二記憶體之第一、不同者中的該H矩陣被改變。
- 如請求項9所述的通用解碼器,其中該癥狀計算器和錯誤產生器之至少一者包含稀疏乘法器,組態以接收H矩陣值(H)和錯誤向量值(E)並且生成乘積值HE。
- 如請求項17所述的通用解碼器,其中該稀疏乘法器包含具有矩陣值儲存於其中的記憶體,且其中該錯誤向量之主動高位元被使用以選擇用於H矩陣的直行位址,並且該選定的H矩陣直行係進行邏輯XOR來生成該乘積值H.E。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063036237P | 2020-06-08 | 2020-06-08 | |
US63/036,237 | 2020-06-08 | ||
US17/225,818 | 2021-04-08 | ||
US17/225,818 US11870459B2 (en) | 2020-06-08 | 2021-04-08 | Universal guessing random additive noise decoding (GRAND) decoder |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202203592A true TW202203592A (zh) | 2022-01-16 |
Family
ID=78818070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110120488A TW202203592A (zh) | 2020-06-08 | 2021-06-04 | 通用猜測隨機加性雜訊解碼(grand)的解碼器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11870459B2 (zh) |
TW (1) | TW202203592A (zh) |
WO (1) | WO2021252066A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10608673B2 (en) | 2017-12-22 | 2020-03-31 | Massachusetts Institute Of Technology | Decoding signals by guessing noise |
GB201918218D0 (en) | 2019-12-11 | 2020-01-22 | Maynooth Univ | A method of decoding a codeword |
US11431368B2 (en) | 2020-03-16 | 2022-08-30 | Massachusetts Institute Of Technology | Noise recycling |
WO2022255913A1 (en) * | 2021-06-02 | 2022-12-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and arrangements for supporting forward error correction decoding of a word |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2735889B1 (fr) | 1995-06-22 | 1997-09-05 | Sgs Thomson Microelectronics | Circuit de calcul de syndrome |
US6511280B1 (en) | 1996-05-21 | 2003-01-28 | Motorola, Inc. | Adaptive Reed-Solomon decoder and methods thereof |
US6038676A (en) * | 1997-09-25 | 2000-03-14 | International Business Machines Corporation | Method and circuit for data integrity verification during DASD data transfer |
US6427219B1 (en) | 1998-06-24 | 2002-07-30 | Conexant Systems, Inc. | Method and apparatus for detecting and correcting errors using cyclic redundancy check |
US6625226B1 (en) | 1999-12-03 | 2003-09-23 | Allen Gersho | Variable bit rate coder, and associated method, for a communication station operable in a communication system |
US6678639B2 (en) * | 2000-08-04 | 2004-01-13 | Sun Microsystems, Inc. | Automated problem identification system |
JP3714910B2 (ja) | 2001-02-20 | 2005-11-09 | 株式会社エヌ・ティ・ティ・ドコモ | ターボ受信方法及びその受信機 |
US7178080B2 (en) | 2002-08-15 | 2007-02-13 | Texas Instruments Incorporated | Hardware-efficient low density parity check code for digital communications |
US7209867B2 (en) | 2002-10-15 | 2007-04-24 | Massachusetts Institute Of Technology | Analog continuous time statistical processing |
US7162684B2 (en) * | 2003-01-27 | 2007-01-09 | Texas Instruments Incorporated | Efficient encoder for low-density-parity-check codes |
US7206363B2 (en) | 2003-06-24 | 2007-04-17 | Intersymbol Communications, Inc. | Method and apparatus for delayed recursion decoder |
US7271749B2 (en) | 2004-09-14 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Context-based denoiser that simultaneously updates probabilities for multiple contexts |
US7498961B2 (en) | 2004-09-14 | 2009-03-03 | Hewlett-Packard Development Company, L.P. | Context identification using a denoised signal |
US7581159B2 (en) | 2004-11-23 | 2009-08-25 | Texas Instruments Incorporated | Simplified decoding using structured and punctured LDPC codes |
KR100641052B1 (ko) | 2004-12-08 | 2006-11-02 | 한국전자통신연구원 | Ldpc 부호기 및 복호기, 및 ldpc 부호화 방법 및복호화 방법 |
US8335484B1 (en) | 2005-07-29 | 2012-12-18 | Siport, Inc. | Systems and methods for dynamically controlling an analog-to-digital converter |
US7668224B2 (en) | 2005-08-16 | 2010-02-23 | Texas Instruments Incorporated | Encoding for digital communications in a multiple-input, multiple-output environment |
US7668248B2 (en) | 2005-10-19 | 2010-02-23 | Texas Instruments Incorporated | High-performance LDPC coding for digital communications in a multiple-input, multiple-output environment |
US7734596B2 (en) * | 2005-11-30 | 2010-06-08 | Stephen John Vivian | Automatic failover configuration with redundant abservers |
US7577899B2 (en) | 2006-02-13 | 2009-08-18 | Harris Corporation | Cyclic redundancy check (CRC) based error correction method and device |
US7783123B2 (en) | 2006-09-25 | 2010-08-24 | Hewlett-Packard Development Company, L.P. | Method and system for denoising a noisy signal generated by an impulse channel |
KR101433620B1 (ko) | 2007-08-17 | 2014-08-25 | 삼성전자주식회사 | 처리량을 높이기 위하여 더블 버퍼링 구조와 파이프라이닝기법을 이용하는 디코더 및 그 디코딩 방법 |
TW201014200A (en) | 2008-09-25 | 2010-04-01 | Sunplus Technology Co Ltd | Decoding system for LDPC code concatenated with 4QAM-NR code |
US8121232B2 (en) * | 2008-11-06 | 2012-02-21 | Lg Electronics Inc. | Transmitting/receiving system and method of processing broadcast signal in transmitting/receiving system |
US8601338B2 (en) | 2008-11-26 | 2013-12-03 | Broadcom Corporation | Modified error distance decoding of a plurality of signals |
US9769003B2 (en) | 2011-12-12 | 2017-09-19 | John W. Bogdan | Direct synthesis of OFDM receiver clock |
US20180254882A1 (en) | 2009-01-10 | 2018-09-06 | John W. Bogdan | Synthesizing Clock of OFDM Receiver |
US8327234B2 (en) | 2009-02-27 | 2012-12-04 | Research In Motion Limited | Code block reordering prior to forward error correction decoding based on predicted code block reliability |
US8851378B2 (en) | 2009-09-24 | 2014-10-07 | Ebay Inc. | System and method for recognizing deformed linear barcodes from a stream of varied-focus video frames |
KR101201057B1 (ko) | 2010-11-17 | 2012-11-14 | 삼성에스디아이 주식회사 | 방수 배터리 팩 |
US9288045B2 (en) | 2011-07-18 | 2016-03-15 | Ben-Gurion University Of The Negev Research And Development Authority | Spectral and temporal stealthy fiber optic communication using sampling and phase encoding detection systems |
US8898504B2 (en) * | 2011-12-14 | 2014-11-25 | International Business Machines Corporation | Parallel data communications mechanism having reduced power continuously calibrated lines |
EP2974096A4 (en) | 2013-03-14 | 2016-11-09 | Massachusetts Inst Technology | METHOD AND APPARATUS FOR SECURE COMMUNICATION |
US10298263B2 (en) | 2014-02-18 | 2019-05-21 | Seagate Technology Llc | Refresh, run, aggregate decoder recovery |
EP3113436B1 (en) | 2014-02-24 | 2020-03-11 | Mitsubishi Electric Corporation | Soft decision value generation apparatus and soft decision value generation method |
US10425204B2 (en) | 2015-03-13 | 2019-09-24 | Samsung Electronics Co., Ltd. | Method and apparatus for measuring channel state information in communication system |
JP6554735B2 (ja) | 2015-03-23 | 2019-08-07 | パナソニック株式会社 | ターボ等化器および無線受信装置 |
EP3091670B1 (en) | 2015-05-08 | 2019-02-27 | Lantiq Beteiligungs-GmbH & Co.KG | Selective channel estimation |
US9998148B2 (en) | 2015-12-01 | 2018-06-12 | SK Hynix Inc. | Techniques for low complexity turbo product code decoding |
US10135661B2 (en) | 2016-06-22 | 2018-11-20 | Huawei Technologies Co., Ltd. | Phase noise estimation and cancellation |
US10312946B2 (en) | 2017-02-06 | 2019-06-04 | Mitsubishi Electric Research Laboratories, Inc. | Soft-output decoding of codewords encoded with polar code |
US10944610B2 (en) | 2017-12-22 | 2021-03-09 | Massachusetts Institute Of Technology | Decoding signals by guessing noise |
US10608673B2 (en) | 2017-12-22 | 2020-03-31 | Massachusetts Institute Of Technology | Decoding signals by guessing noise |
US10833750B2 (en) * | 2018-09-28 | 2020-11-10 | Apple Inc. | Codebook updates for a linear system using superposition |
US10491432B1 (en) | 2018-10-01 | 2019-11-26 | Huawei Technologies Co., Ltd. | System and method for turbo equalization and decoding in a receiver |
US11910137B2 (en) | 2019-04-08 | 2024-02-20 | Infisense, Inc. | Processing time-series measurement entries of a measurement database |
KR20210034999A (ko) * | 2019-09-23 | 2021-03-31 | 에스케이하이닉스 주식회사 | Aim 장치 및 aim 장치에서의 곱셈-누산 연산 방법 |
GB201918218D0 (en) | 2019-12-11 | 2020-01-22 | Maynooth Univ | A method of decoding a codeword |
US11431368B2 (en) | 2020-03-16 | 2022-08-30 | Massachusetts Institute Of Technology | Noise recycling |
US11381260B2 (en) * | 2020-05-27 | 2022-07-05 | The Royal Institution For The Advancement Of Learning / Mcgill University | Architecture for guessing random additive noise decoding (GRAND) |
US11340713B2 (en) | 2020-06-26 | 2022-05-24 | Logitech Europe S.A. | Surface classification reporting and sensor tuning for a computer peripheral device |
-
2021
- 2021-04-08 WO PCT/US2021/026412 patent/WO2021252066A1/en active Application Filing
- 2021-04-08 US US17/225,818 patent/US11870459B2/en active Active
- 2021-06-04 TW TW110120488A patent/TW202203592A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US11870459B2 (en) | 2024-01-09 |
WO2021252066A1 (en) | 2021-12-16 |
US20210384918A1 (en) | 2021-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202203592A (zh) | 通用猜測隨機加性雜訊解碼(grand)的解碼器 | |
US7613991B1 (en) | Method and apparatus for concurrent calculation of cyclic redundancy checks | |
ES2356767T3 (es) | Procesadores de nodo para su uso en decodificadores de control de paridad. | |
CN110771047B (zh) | 具有f功能和g功能的llr域计算的极性解码器 | |
Sloane | A short course on error correcting codes | |
JP2006244259A (ja) | 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置 | |
Kim et al. | A novel partially parallel architecture for high-throughput LDPC decoder for DVB-S2 | |
TW201926911A (zh) | 使用於低密度奇偶檢查碼解碼器的方法及解碼器 | |
WO2007034870A1 (ja) | 復号装置および受信装置 | |
JP5542140B2 (ja) | 復号化回路及び符号化回路 | |
CN110741558B (zh) | 具有逻辑三维存储器的极化编码器、通信单元、集成电路及其方法 | |
US20090031200A1 (en) | High Rate, Long Block Length, Low Density Parity Check Encoder | |
CN113783576A (zh) | 用于从循环置换矩阵的集群构建的准循环低密度奇偶校验码的垂直分层解码的方法及设备 | |
US8504892B2 (en) | LDPC decoder and method for LDPC decoding based on layered algorithm applied to parity check matrix | |
JP5333233B2 (ja) | 復号装置、データ蓄積装置、データ通信システム、および復号方法 | |
CN111313912B (zh) | 一种ldpc码编码器及编码方法 | |
TW201029337A (en) | Method for decoding LDPC code and the circuit thereof | |
CN110741562B (zh) | 向量信令码信道的流水线式前向纠错 | |
US10216567B1 (en) | Direct parity encoder | |
Xiao et al. | A Low-Latency and Area-Efficient ORBGRAND Decoder for Polar Codes | |
Yeon et al. | Low-complexity triple-error-correcting parallel BCH decoder | |
Lee et al. | Algebraic decoding of the (73, 37, 13) quadratic residue code | |
WO2019110721A1 (en) | Parallel encoding method and system for protograph-based ldpc codes with hierarchical lifting stages | |
CN114629507B (zh) | 一种Turbo和LDPC码速率匹配和交织器共享存储设计方法 | |
Su et al. | Maximizing the throughput-area efficiency of fully-parallel low-density parity-check decoding with C-slow retiming and asynchronous deep pipelining |