TWI620947B - 用於高速衛星資料軟體平行前端解碼器的平行處理方法及其軟體架構 - Google Patents

用於高速衛星資料軟體平行前端解碼器的平行處理方法及其軟體架構 Download PDF

Info

Publication number
TWI620947B
TWI620947B TW106104798A TW106104798A TWI620947B TW I620947 B TWI620947 B TW I620947B TW 106104798 A TW106104798 A TW 106104798A TW 106104798 A TW106104798 A TW 106104798A TW I620947 B TWI620947 B TW I620947B
Authority
TW
Taiwan
Prior art keywords
data
block
reed
satellite data
decoded
Prior art date
Application number
TW106104798A
Other languages
English (en)
Other versions
TW201830051A (zh
Inventor
李鈐毅
劉小菁
郭育麟
Original Assignee
財團法人國家實驗研究院
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 財團法人國家實驗研究院 filed Critical 財團法人國家實驗研究院
Priority to TW106104798A priority Critical patent/TWI620947B/zh
Application granted granted Critical
Publication of TWI620947B publication Critical patent/TWI620947B/zh
Publication of TW201830051A publication Critical patent/TW201830051A/zh

Links

Landscapes

  • Radio Relay Systems (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

用於高速衛星資料軟體平行前端解碼器的平行處理方法及其軟體架構,該處理方法包括讀取該高速衛星資料;根據該高速衛星資料所屬的位置資訊,對該高速衛星資料進行定位;將該高速衛星資料分割為複數個區塊;分別對該複數個區塊進行里德-所羅門解碼;接收解碼後的各區塊資料;排序該些解碼後的各區塊資料;以及輸出完成排序之解碼後的各區塊資料;其中,分別對該複數個區塊進行里德-所羅門解碼的步驟包括將該複數個區塊的資料分配到不同處理器核心,以執行里德-所羅門解碼。

Description

用於高速衛星資料軟體平行前端解碼器的平行處理方法及其軟體架構
本發明係關於一種平行處理方法,特別是關於一種用於高速衛星資料軟體平行前端解碼器的平行處理方法及其軟體架構。
隨著科技的演進,人們的日常生活已仰賴各種資訊傳遞技術,例如無線通訊、衛星通訊等等,這些技術在提供高速資訊傳輸的同時,也需保有穩定且安全的資料保存環境。在資料傳輸的過程中,常會有雜訊干擾而使得接收端所收下的訊號有誤,因為,在發送端傳送訊號前,往往會在資料後多加一些位元,以便接收端判斷所接收到資料的正確性,並藉以提供錯誤更正的能力。
里德-所羅門碼(Reed-Solomon code)是一種廣泛運用在數位資料傳輸時,進行檢驗與校正的單一變數多項式演算法.其特徵在於於K個字元裡帶N個校正碼,因此能將輸入資料分割為多個區塊,單獨對各個區塊進行錯誤校正。然而,由於解碼時,多項式的運算需要大量計算資源,因此常以硬體方式施作,以達到運算所需的處理速率。例如在衛星資料傳輸過程中.衛星信號由地面天線接收後,必須經過里德-所羅門解碼之後才能開始使用,為追求處理速度,過往都是以硬體方式進行解碼運算,然而隨 著技術的快速演進,資料傳輸速率越來越高,但硬體設計因無法像軟體一樣進行更新和升級,僅能重新設計,但是這個過程緩慢而且成本高昂。
第一圖為現行在個人電腦中,對高速衛星資料執行里德-所羅門解碼的軟體架構示意圖,數字100~1100表示執行順序,接收器中的資料讀取通道在接收到衛星資料後(100),將未解碼的資料儲存在未解碼資料暫存器(Encoded Buffer),先進行區塊定位(200)並判斷所接收到的衛星資料是否完整(300),若是,便由歐幾里德解碼器(Euclidean decoder)開始執行里德-所羅門解碼(400~500)。歐幾里德解碼器所執行的操作流程(500)簡述如下:計算徵狀值:解碼器接收到訊號後,藉由產生多項式推導徵狀值(Syndrome),判斷傳送過程是否有發生錯誤,當計算出的徵狀值多項式不為零時,代表資料在傳送過程時有錯誤發生;求出錯誤位置矩陣以及錯誤值矩陣:利用計算出的徵狀值多項式來求得錯誤位置轉換矩陣,以及錯誤值矩陣;求出錯誤位置多項式:定義錯誤位置轉換矩陣後用利用演算法,求出錯誤位置多項式及錯誤值多項式;找出錯誤發生的位置轉換矩陣:求出錯誤位置多項式後,相應解即為錯誤位置轉換矩陣;計算錯誤位置:透過錯誤位置轉換矩陣找出錯誤位置;找出錯誤位置的錯誤值大小:利用演算法及已知的錯誤值矩陣,求出錯誤值大小;修正錯誤:對接收端資料進行相關錯誤的更正; 經由前述操作,歐基里德解碼器取得錯誤值大小與位置,再將該錯誤值大小與收到的資料經過XOR動作,就可將錯誤更正回來,得到正確的碼字。
由於歐幾里德解碼器所執行的操作(500)與本發明的重點無關,在此僅簡要說明之。
在解碼完成後,發送器接收各區塊的里德-所羅門解碼結果(600)並判斷是否正確,若正確再進入資料傳送階段(800),寫入到檔案(900)或日誌(1000),完成整個執行流程(1100)。在整個過程中,執行順序是線性的,且僅使用到一個處理器核心,整體的處理時間約有80%都是在執行里德-所羅門解碼,效率低落。
本案提出一種平行處理方法及其軟體架構,藉由適當搭配現有的處理器硬體以及最新的網路傳輸(如:Gigabit,10G)系統,達成迅速建置高速衛星資料軟體平行前端解碼器的目的。
本發明的目的之一,在於提出一種用於高速衛星資料軟體平行前端解碼器的平行處理方法,包括下列步驟:讀取該高速衛星資料;根據該高速衛星資料所屬的位置資訊,對該高速衛星資料進行定位;將該高速衛星資料分割為複數個區塊;分別對該複數個區塊進行里德-所羅門解碼;接收解碼後的各區塊資料;排序該些解碼後的各區塊資料;以及輸出完成排序之解碼後的各區塊資料;其中,分別對該複數個區塊進行里德-所羅門解碼的步驟包括將該複數個區塊的資料分配到不同處理器核心,以執行里德-所羅門解碼。
本發明的目的之一,另在於提出一種用於高速衛星資料軟體平行前端解碼器的平行處理軟體架構,包括:一接收器,包括一資料讀取通道模組,讀取該高速衛星資料;一里德-所羅門區塊定位模組,根據該高速衛星資料所屬的位置資訊,對該高速衛星資料進行定位;一區塊解碼平行分配器,將該高速衛星資料分割為複數個區塊並加以分配;複數個解碼器,分別接收該複數個區塊的高速衛星資料,分別進行里德-所羅門解碼,以產生複數個里德-所羅門區塊;一發送器,包括一里德-所羅門區塊接收模組,接收解碼後的各區塊資料;一區塊解碼序列整理器,排序該些解碼後的各區塊資料;以及一已解碼區塊傳送模組,輸出完成排序之解碼後的各區塊資料輸出;其中,該複數個解碼器係平行進行里德-所羅門解碼。
110‧‧‧接收器
1101‧‧‧資料讀取通道模組
1102‧‧‧里德-所羅門區塊定位模組
1103‧‧‧區塊解碼平行分配器
120‧‧‧歐幾里德解碼器
130‧‧‧發送器
1301‧‧‧里德-所羅門區塊接收模組
1302‧‧‧區塊解碼序列整理器
1303‧‧‧已解碼區塊傳送模組
第一圖為現行個人電腦中,對高速衛星資料執行里德-所羅門解碼的軟體架構示意圖;第二圖為本發明一實施例的軟體架構示意圖;第三圖為根據本發明一實施例所執行的平行處理軟體流程示意圖;以及第四圖繪示以Intel i7(4 Core/8 Thread)處理器執行平行處理軟體流程的程序。
里德-所羅門碼具有固定長度且彼此編碼區塊間互相獨立的特性,再者,現有處理器硬體已具有多個核心,例如英特爾I7處理器即具有四個處理器核心,然而,習知執行里德-所羅門解碼的程序卻僅能運用到一 個處理器核心,如第一圖所示。
如前所述,里德-所羅門碼具有可分割為多個區塊的特性,緣此,發明人提出一種新的處理方法及其軟體架構,有效利用現行的多核心處理器硬體,突破現有技術在高速衛星資料處理上的困境。
請參閱第二圖,本發明所提出之軟體架構主要分為接收器110、複數個歐幾里德解碼器120以及發送器130,接收器110包括資料讀取通道模組1101、里德-所羅門區塊定位模組1102及區塊解碼平行分配器1103,發送器130則包括里德-所羅門區塊接收模組1301、區塊解碼序列整理器1302和已解碼區塊傳送模組1303。在接收器110端,資料讀取通道模組1101讀取資料檔案,或者是透過網路進行網路資料讀取,將讀取到的衛星資料儲存於未解碼資料暫存器,里德-所羅門區塊定位模組1102對衛星資料做區塊定位,再由區塊解碼平行分配器1103將各區塊的資料分配到運算暫存器(Processing Buffer),其中,區塊解碼平行分配器1103將里德-所羅門解碼處理分配由多核心中央處理器的各個處理器核心執行,換言之,該複數個歐幾里德解碼器120所執行的里德-所羅門解碼處理是平行進行的。在解碼完成後,里德-所羅門區塊接收模組1301接收各區塊的已解碼資料,並儲存到已解碼資料暫存器(Decoded Buffer),由於各區塊資料為平行處理,解出的各區塊資料順序需由區塊解碼序列整理器1302重新排序,最後由已解碼區塊傳送模組1303將解碼並排序完的資料寫入到檔案或日誌,完成整個操作流程。
本實施例提出之軟體架構能利用里德-所羅門碼的特性,將衛星資料做區塊分配而妥善運用現有之多核心中央處理器的硬體能力,達 成平行高速執行里德-所羅門解碼。
第三圖為根據本發明一實施例所執行的平行處理軟體流程示意圖,請對照參閱第二圖,數字100~620係用以表達操作順序。在接收器端,衛星資料在資料讀取階段(100)被接收後,進入里德-所羅門區塊定位階段(200),接著便由區塊解碼平行分配器進行區塊分配(300),在這個階段,各區塊的衛星資料會先寫入區塊佇列(310)再進行讀取(320),區塊解碼平行分配器根據當前系統是否有資源(330)將未解碼的各區塊資料分配各處理器核心執行解碼(340),若系統暫無資源,則先等待(350)。未解碼的各區塊資料交由歐幾里德解碼器執行解碼後(400),發送器接收已解碼的區塊資料(500),由區塊解碼序列整理器將已解碼的各區塊資料寫入到區塊佇列(610)並加以排序(620),當收到完成區塊時,根據區塊序號,於區塊完成對照表登記完成旗標,其次,於區塊完成對照表中,從前一次儲存完的區塊序號開始檢查,由這個序號開始依序檢查完成旗標,直至檢查完成旗標為否,將前述檢查中找出的最大連續區塊(630)一次輸出至通道加以傳送(640),減少通道開啟與關閉所造成的額外時間消耗.傳送方式包括高速的通道傳送(650),例如使用10G/1G的乙太網路傳輸的Socket/HTTP/Message Queue等高速同步或非同步介面,亦可為慢速的寫入檔案(660)或寫入日誌(670)。
如第三圖右側之執行程序所示,上述程序並非線性進行的,以下配合第四圖加以說明。
第四圖繪示以Intel i7(4 Core/8 Thread)處理器執行平行處理軟體流程的過程,以說明時序,請對照參閱第三圖。以要執行里德-所羅門解碼的區塊資料共有ABCD四區塊為例,線程(Thread)1在衛星資料被接收 後,進入里德-所羅門區塊定位階段,接著由區塊解碼平行分配器將各區塊的衛星資料會先寫入區塊佇列,如左側所示,Thread 1執行區塊定位,線性地對未解碼衛星資料執行前述步驟(100->200->310)而產生A、B、C及D各區塊的資料。當各個區塊A、B、C、D的未解碼資料被定位出來後,Thread 2執行區塊解碼平行分配器的運算,進行區塊佇列讀取、根據當前系統是否有資源並將未解碼的各區塊資料分配由各處理器核心執行解碼(320->330->340)。接著,由於Intel i7處理器具有四個核心處理器,在理想情況下,四個核心處理器能夠分別使用Thread 3、4、5、6平行進行里德-所羅門解碼(400);待各區塊的解碼程序完成後,Thread 7接收已解碼的區塊資料(500)並寫入到區塊佇列(610),Thread 8進行已解碼資料的區塊排序並加以傳送(620->630->640)。
由第四圖的說明可知,本發明提出之平行處理方法能將衛星資料分成多個區塊平行做處理,妥善運用多核心處理器的硬體效能,降低相關操作對硬體的需求,改善習知技術缺陷。
以上僅為本發明的較佳實施例,凡依本發明權利要求範圍所做的均等變化與修飾,皆應屬本發明的涵蓋範圍,而不以前述實施例內容為限。

Claims (9)

  1. 一種用於高速衛星資料軟體平行前端解碼器的平行處理方法,包括下列步驟:讀取該高速衛星資料;根據該高速衛星資料所屬的位置資訊,對該高速衛星資料進行定位;將該高速衛星資料分割為複數個區塊;分別對該複數個區塊進行里德-所羅門解碼;接收解碼後的各區塊資料;排序該些解碼後的各區塊資料;以及輸出完成排序之解碼後的各區塊資料;其中,分別對該複數個區塊進行里德-所羅門解碼的步驟包括將該複數個區塊的資料分配到不同處理器核心,以執行里德-所羅門解碼。
  2. 如請求項1之平行處理方法,其中該讀取該高速衛星資料的步驟包括讀取資料檔案,或者是透過網路進行網路資料讀取。
  3. 如請求項1之平行處理方法,其中對該高速衛星資料進行定位的步驟包括以位元流(bit-stream)方式搜尋區塊起始定位標記。
  4. 如請求項1之平行處理方法,其中排序該些解碼後的各區塊資料的步驟還包括判斷是否有最大連續區塊,以決定是否輸出該些解碼後的各區塊資料。
  5. 一種用於高速衛星資料軟體平行前端解碼器的平行處理軟體架構,包括:一接收器,包括:一資料讀取通道模組,讀取該高速衛星資料;一里德-所羅門區塊定位模組,根據該高速衛星資料所屬的位置資 訊,對該高速衛星資料進行定位;一區塊解碼平行分配器,將該高速衛星資料分割為複數個區塊並加以分配;複數個解碼器,分別接收該複數個區塊的高速衛星資料,分別進行里德-所羅門解碼,以產生複數個里德-所羅門區塊;一發送器,包括;一里德-所羅門區塊接收模組,接收解碼後的各區塊資料;一區塊解碼序列整理器,排序該些解碼後的各區塊資料;以及一已解碼區塊傳送模組,輸出完成排序之解碼後的各區塊資料輸出;其中,該複數個解碼器係平行進行里德-所羅門解碼。
  6. 如請求項5之平行處理軟體架構,其中區塊解碼平行分配器會偵測是否有閒置資源,並據以將該複數個區塊資料分配到由不同核心處理器執行里德-所羅門解碼。
  7. 如請求項5之平行處理軟體架構,其中該資料讀取通道模組可離線讀取資料檔案,或者是透過網路進行網路資料讀取。
  8. 如請求項5之平行處理軟體架構,其中該里德-所羅門區塊定位模組是以位元流(bit-stream)方式搜尋區塊起始定位標記。
  9. 如請求項5之平行處理軟體架構,其中該區塊解碼序列整理器會根據是否有最大連續區塊,以決定是否將該些解碼後的各區塊資料提供給該已解碼區塊傳送模組。
TW106104798A 2017-02-14 2017-02-14 用於高速衛星資料軟體平行前端解碼器的平行處理方法及其軟體架構 TWI620947B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW106104798A TWI620947B (zh) 2017-02-14 2017-02-14 用於高速衛星資料軟體平行前端解碼器的平行處理方法及其軟體架構

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106104798A TWI620947B (zh) 2017-02-14 2017-02-14 用於高速衛星資料軟體平行前端解碼器的平行處理方法及其軟體架構

Publications (2)

Publication Number Publication Date
TWI620947B true TWI620947B (zh) 2018-04-11
TW201830051A TW201830051A (zh) 2018-08-16

Family

ID=62639863

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106104798A TWI620947B (zh) 2017-02-14 2017-02-14 用於高速衛星資料軟體平行前端解碼器的平行處理方法及其軟體架構

Country Status (1)

Country Link
TW (1) TWI620947B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1379873A (zh) * 1999-10-15 2002-11-13 汤姆森特许公司 双向通信系统的用户接口
US6539515B1 (en) * 1999-11-24 2003-03-25 Koninklijke Philips Electronics N.V. Accelerated Reed-Solomon error correction
US20110029359A1 (en) * 2009-07-29 2011-02-03 Cyriac Roeding Method and system for detecting presence using a wifi network probe detector
TWI351179B (en) * 2007-08-20 2011-10-21 Lite On Technology Corp Data processing method and computer system medium thereof

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1379873A (zh) * 1999-10-15 2002-11-13 汤姆森特许公司 双向通信系统的用户接口
US6539515B1 (en) * 1999-11-24 2003-03-25 Koninklijke Philips Electronics N.V. Accelerated Reed-Solomon error correction
JP2003516018A (ja) * 1999-11-24 2003-05-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 加速式リード−ソロモン誤り訂正
CN1227817C (zh) * 1999-11-24 2005-11-16 皇家菲利浦电子有限公司 加速Reed Solomon解码器,解码接收码字的方法和同时估算多个变元的多项式的方法
TWI351179B (en) * 2007-08-20 2011-10-21 Lite On Technology Corp Data processing method and computer system medium thereof
US20110029359A1 (en) * 2009-07-29 2011-02-03 Cyriac Roeding Method and system for detecting presence using a wifi network probe detector

Also Published As

Publication number Publication date
TW201830051A (zh) 2018-08-16

Similar Documents

Publication Publication Date Title
US9292449B2 (en) Cache memory data compression and decompression
US11243836B2 (en) Supporting random access of compressed data
US10694217B2 (en) Efficient length limiting of compression codes
US9753666B2 (en) Efficient data compression for solid-state memory
US7958427B1 (en) ECC with out of order completion
CN108028663B (zh) 对异构压缩加速器中的经压缩的流进行错误校验
US20150381202A1 (en) Hybrid cam assisted deflate decompression accelerator
US9559726B2 (en) Use of error correcting code to carry additional data bits
US10666288B2 (en) Systems, methods, and apparatuses for decompression using hardware and software
AU2016231603B2 (en) Method of synchronizing a fountain code transmitting end and receiving end
US9100042B2 (en) High throughput decoding of variable length data symbols
WO2023116245A1 (zh) 发送方法、接收方法、装置、系统、设备及存储介质
US8868584B2 (en) Compression pattern matching
TWI620947B (zh) 用於高速衛星資料軟體平行前端解碼器的平行處理方法及其軟體架構
US9455742B2 (en) Compression ratio for a compression engine
US9450606B1 (en) Data matching for hardware data compression
US8136008B1 (en) ECC with out of order completion
CN112839230B (zh) 图像数据压缩装置及图像数据解压缩装置
US8745476B1 (en) Systems and methods for cyclic redundancy check implementation
US8281212B1 (en) Iterative ECC decoder with out of order completion
CN112820343A (zh) 数据保护方法、装置、计算机设备及存储介质
US10089189B2 (en) Devices and methods for receiving a data file in a communication system
US20190050167A1 (en) Flash Storage Devices Executing ECC in Parallel and Methods Thereof
US20240146336A1 (en) Integration of compression algorithms with error correction codes
WO2024179488A1 (zh) 译码方法、装置、系统及计算机可读存储介质