欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種LDPC塊并行讀寫同序譯碼的排序方法與流程

文檔序號:40610470發(fā)布日期:2025-01-07 20:53閱讀:8來源:國知局
一種LDPC塊并行讀寫同序譯碼的排序方法與流程

本發(fā)明涉及通信,具體地,涉及一種適用于各種base?graph(基圖)ldpc(low-density?parity-check,準循環(huán)ldpc碼)塊并行讀寫同序譯碼的排序方法。


背景技術:

1、ldpc碼是一種具有系數(shù)校驗矩陣的分組糾錯碼,幾乎適用于所有的信道,因此成為編碼界近年來的研究熱點,它的性能逼近香農(nóng)極限,且描述和實現(xiàn)簡單,易于進行理論分析和研究,譯碼簡單且可實行并行操作,適合硬件實現(xiàn)。

2、塊并行譯碼是使用很廣泛的一種ldpc譯碼方式,這種方式同一時刻能且只能讀一個塊,寫一個塊;而且必須保證讀一個塊之前,這個塊已經(jīng)完成上一次的寫操作,如果在讀的時候發(fā)現(xiàn)沒有寫完,那么就要增加延遲,等待上一次寫完才能開始讀,延遲越多譯碼效率就越低,影響性能。

3、同時為了滿足硬件開銷問題,會采取讀寫順序一致的塊并行譯碼算法,這就更加大了降低時延的難度。


技術實現(xiàn)思路

1、為了在讀寫同序的ldpc塊并行譯碼時,不改變譯碼時層順序的前提下,避免讀寫沖突,大幅降低譯碼所需額外延遲,適應各種不同bg,自動生成讀寫順序而提出本發(fā)明所述方法。

2、本發(fā)明采用的技術方案為:

3、一種ldpc塊并行讀寫同序譯碼的排序方法,包括以下過程:

4、步驟1:輸入需要排序的bg矩陣,得到每一層需要用到的塊號;

5、步驟2:對第一層塊號的讀寫順序進行排列,并計算每一層讀的起始位置和寫的起始位置;其中排序規(guī)則為:第一層之后設定層數(shù)中要用到的塊號次數(shù)越多,對應塊號的排序優(yōu)先級越高;

6、步驟3:增加每一層讀數(shù)前的延遲,使得同一時刻只有一層在讀和一層在寫,讀寫相同塊號時,寫的時刻在讀時刻之前;

7、步驟4:每一層與前設定個鄰近層存在相同塊號時,若因某塊號導致新增延遲,則將對應塊號后移,返回步驟3,直到每一層塊號順序不變;

8、步驟5:每一層與后設定個鄰近層存在相同塊號時,若因某塊號導致新增延遲,則將對應塊號前移;

9、步驟6:增加每一層讀數(shù)前的延遲,使得同一時刻只有一層在讀和一層在寫,讀寫相同塊號時,寫的時刻在讀時刻之前;返回步驟5,直到每一層塊號順序不變;

10、步驟7:輸出每層讀寫塊的順序,以及每層開始的時刻。

11、進一步的,所述步驟2包括:

12、步驟2.1:將第一層用到的塊號定義為4部分:①.第二層和第三層都用;②.第二層用,第三層不用;③.第二層不用,第三層用;④.第二層和第三層都不用;

13、步驟2.2:然后第一層按照①、②、③、④的順序排列存入order_buffer(1);讀的起始位置記為1,存入read_pos_buffer(1);寫的起始位置記為d+rowdegree(1),存入write_pos_buffer(1);其中,d為每一層讀寫操作之間必須的延遲數(shù),rowdegree(1)存儲第1層使用塊的個數(shù);

14、第二層到最后一層layer_num按bg矩陣中原順序排列,存入對應的order_buffer(k);第k層讀的起始位置記為:存入read_pos_buffer(k);第k層寫的起始位置記為:read_pos_buffer(k)+d+rowdegree(k),存入write_pos_buffer(k);其中,2≤k≤layer_num;rowdegree(k)存儲第k層使用塊的個數(shù);order_buffer(k)存儲第k層讀寫塊的順序,長度為rowdegree(k);read_pos_buffer(k)存儲第k層讀第一個塊的時刻;write_pos_buffer(k)存儲第k層寫第一個塊的時刻。

15、進一步的,所述步驟3包括:

16、從第二層到第layer_num層順序循環(huán),其中第k層處理過程為:

17、步驟3.1:同時讀和同時寫沖突檢測:計算k-1層讀的最后一個的位置read_pos_buffer(k-1)+rowdegree(k-1)-1和k層第一個讀的位置read_pos_buffer(k),二者作差得delay1;計算k-1層寫的最后一個的位置write_pos_buffer(k-1)+rowdegree(k-1)-1和k層第一個寫的位置write_pos_buffer(k),二者作差得delay2;

18、步驟3.2:共用塊沖突檢測:循環(huán)當前層使用的每一個塊,稱當前循環(huán)塊為block_same;循環(huán)當前層往上最多三層,即,k-1,k-2,k-3;如果k為第2層,則只循環(huán)k-1,如果k為第3層,則只循環(huán)k-1和k-2,如果k大于3,則循環(huán)k-1、k-2和k-3層;其中每一層k-q處理過程為:如果第k層和第k-q層都使用了塊block_same,則用k-q層寫block_same的位置和第k層讀block_same的位置作差,得到若干差值delay3,delay4…;

19、步驟3.3:沖突冗余消除:找到[delay1?delay2?delay3?delay4…]中最大值delay_max,如果delay_max+1為正,則第k層到第layer_num層對應的read_pos_buffer(k)和write_pos_buffer(k)的值均加delay_max+1;如果delay_max+1為負,則第k層到第layer_num層對應的read_pos_buffer(k)和write_pos_buffer(k)的值均減|delay_max+1|;如果delay_max+1為0,則第k層到第layer_num層對應的read_pos_buffer(k)和write_pos_buffer(k)的值不變。

20、進一步的,所述步驟4包括:

21、從第二層到第layer_num層順序循環(huán),其中第k層處理過程為:

22、步驟4.1:對當前循環(huán)層即第k層,使用倒數(shù)第二個塊到第一個塊順序循環(huán),稱當前循環(huán)塊order_buffer(k)(p)為block_current,稱后一個塊order_buffer(k)(p+1)為block_after;

23、步驟4.2:如果k為第2層,則只循環(huán)k-1,如果k為第3層,則只循環(huán)k-1和k-2,如果k大于3,則循環(huán)k-1、k-2和k-3層,其中每一層k-q的處理過程為:

24、檢測第k-q層是否使用block_after,如果是且第k層對block_after讀的時刻與第k-q層對block_after寫的時刻作差為1,則返回步驟4.1循環(huán)下一個塊;如果循環(huán)完k-1、k-2和k-3層均不存在上述做差為1的情況則執(zhí)行下一步驟;

25、步驟4.3:如果k為第2層,則只循環(huán)k-1,如果k為第3層,則只循環(huán)k-1和k-2,如果k大于3,則循環(huán)k-1、k-2和k-3層,其中每一層k-m的處理過程為:

26、檢測第k-m層是否使用block_current,如果有且第k層對block_current讀的時刻與第k-m層對block_current寫的時刻作差為1,則執(zhí)行下一步驟;如果循環(huán)完k-1、k-2和k-3層均不存在上述做差為1的情況則返回步驟4.1循環(huán)下一個塊;

27、步驟4.4:交換block_current和block_after在order_buffer(k)中的位置,返回步驟4.1循環(huán)下一個塊。

28、進一步的,所述步驟5包括:

29、從第二層到第layer_num層順序循環(huán),每一層的處理過程為:

30、步驟5.1:對當前循環(huán)層k層使用的第二個塊到最后一個塊順序循環(huán),稱當前循環(huán)塊order_buffer(k)(p)為block_current,稱前一個塊order_buffer(k)(p-1)為block_before;

31、步驟5.2:循環(huán)k-1、k-2和k-3層,每一層k-q層的處理為;檢測k-q層是否使用block_current,如果有且第k層對block_current讀的時刻與第k-q層對block_current寫的時刻作差為1,則返回步驟5.1循環(huán)下一個塊;如果循環(huán)完k-1、k-2和k-3層均不存在做差為1的情況執(zhí)行下一步驟;

32、步驟5.3:循環(huán)k+1、k+2和k+3層,每一層k+m層的處理為;檢測k+m層是否使用block_before,如果有且k+m層對block_before讀的時刻與第k層對block_before寫的時刻作差為1,則返回步驟5.1循環(huán)下一個塊;如果循環(huán)完k+1、k+2和k+3層均不存在做差為1的情況執(zhí)行下一步驟;

33、步驟5.4:循環(huán)k+1、k+2和k+3層,每一層k+n層的處理為;檢測k+n層是否使用block_current,如果沒有,或者有但第k+n層對block_current讀的時刻與第k層對block_current寫的時刻作差不為1,則返回步驟5.1循環(huán)下一個塊,否則執(zhí)行下一步驟;

34、步驟5.5:交換block_current和block_before在order_buffer(k)中的位置,返回步驟5.1循環(huán)下一個塊。

35、本發(fā)明相比現(xiàn)有技術的優(yōu)點為:

36、1.本發(fā)明可以自動輸出讀寫同序的ldpc塊并行譯碼讀寫順序。

37、2.本發(fā)明譯碼時不改變層的順序,避免讀寫沖突的同時,大幅降低了譯碼所需延遲。

38、3.本發(fā)明適用于各種不同的bg。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
延边| 县级市| 泗水县| 浦北县| 梁山县| 高安市| 沧源| 健康| 福海县| 延边| 老河口市| 甘肃省| 邓州市| 阿荣旗| 望城县| 申扎县| 玉屏| 昔阳县| 闽清县| 青州市| 仪陇县| 南充市| 崇义县| 宁河县| 桦川县| 溆浦县| 商河县| 合阳县| 团风县| 凤翔县| 磐安县| 祥云县| 两当县| 延吉市| 阳新县| 桦川县| 邓州市| 德化县| 贵州省| 崇文区| 临海市|