KR20210097743A - 정렬 방법, 장치, 전자 기기 및 매체 - Google Patents

정렬 방법, 장치, 전자 기기 및 매체 Download PDF

Info

Publication number
KR20210097743A
KR20210097743A KR1020217020024A KR20217020024A KR20210097743A KR 20210097743 A KR20210097743 A KR 20210097743A KR 1020217020024 A KR1020217020024 A KR 1020217020024A KR 20217020024 A KR20217020024 A KR 20217020024A KR 20210097743 A KR20210097743 A KR 20210097743A
Authority
KR
South Korea
Prior art keywords
data
bit
extracted
order
information
Prior art date
Application number
KR1020217020024A
Other languages
English (en)
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 세인칩스 테크놀로지 컴퍼니 리미티드
Publication of KR20210097743A publication Critical patent/KR20210097743A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6591Truncation, saturation and clamping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

정렬 방법, 장치, 전자기기 및 매체로서, 상기 방법은 생존 경로의 수(L), 마더 코드의 길이(N0), 적어도 하나의 경로 삭제 명령 및 비트 절단 폭(W)을 포함하는 구성 정보를 획득하는 단계(101); 상기 비트 절단 폭(W)에 따라 입력된 복수 개의 데이터 중의 각 데이터에 대해 비트 절단 처리를 수행하고, 각 비트 절단 처리된 데이터 중 절단된 하위 비트 정보를 메모리에 저장하는 단계(102); 상기 적어도 하나의 경로 삭제 명령에 따라 복수 개의 하위 비트 정보가 절단된 데이터에 대해 데이터 추출을 수행하고, 추출된 데이터의 비트 순서를 기록하는 단계(103); 상기 추출된 데이터에 밀착 배열 처리를 수행하고, 밀착 배열 처리에 의해 획득한 데이터의 개수를 결정하는 단계(104); 상기 생존 경로의 수(L), 상기 마더 코드의 길이(N0), 상기 추출된 데이터, 상기 추출된 데이터의 비트 순서 및 상기 밀착 배열 처리에 의해 획득한 데이터의 개수에 기반하여 L개의 출력 대상 데이터를 결정하는 단계(105)를 포함한다.

Description

정렬 방법, 장치, 전자 기기 및 매체
본 출원은 2018년 12월 5일 자로 중국 특허청에 제출된, 출원번호가201811483150.7인 중국 특허 출원의 우선권을 주장하는 바이며, 상기 출원의 모든 내용은 본 출원에 참조로서 포함된다.
본 발명은 통신 분야에 관한 것으로, 예를 들어 정렬 방법, 장치, 전자 기기 및 매체에 관한 것이다.
Polar 코드(극성 코드)는 디코딩 시 일반적으로 연속 제거 리스트(Successive Cancellation List, SCL) 알고리즘을 사용하며, 상기 알고리즘은 디코딩 시 최대로 L개의 경로를 유지할 수 있고, 각 경로에 대해 메트릭을 측정하여 디코딩 성능을 향상시킨다. 여기서 생존 경로의 수(L)는 2의 정수차 거듭제곱이어야 하고, L이 커짐에 따라 디코더의 성능이 향상되지만, 동시에 디코딩 복잡도도 커진다는 것을 의미한다.
Polar 코드는 디코딩 전에 먼저 디코딩 트리로 디코딩 순서를 결정한다. 디코딩 과정에서 디코더는 현재 노드가 디코딩 트리에서의 위치에 따라 대응되게 로그 우도 비(Likelihood Rate, LLR)와 경로 메트릭(Path Merit, PM)을 업데이트 한다. 정보 비트인 경우, 현재 정보 비트에 대응하는 디코딩 경로를 2개의 경로로 분할시키고, 현재 확장된 경로의 총 수가 L보다 큰 경우, 정렬 알고리즘을 작동시켜 PM 값이 가장 작은 L개의 경로를 선택한다. 루트 노드를 제외한 2N0-2(N0은 마더 코드의 길이임)개의 노드가 반복 연산을 완성한 후 디코딩 과정을 끝내고 일정한 규칙에 따라 디코딩 결과를 출력한다.
매 번의 디코딩 과정에서 확장된 경로의 수가 생존 경로의 수(L)보다 큰 경우, 정렬에 의해 PM 값이 가장 작은 L개의 생존 경로를 선택한다. 정렬 성능의 좋고 나쁨은 디코딩 성능에 직접적인 영향을 준다. 현재의 SCL 디코더 중의 정렬 연산은 지연 시간이 길고 하드웨어 자원의 점용이 크기 때문에 정렬 성능이 떨어지고 전력 소모가 클 뿐만 아니라 원활성도 부족하다.
본 발명의 실시예는 관련 기술의 Polar 코드 디코딩 과정에 존재하는 디코딩 지연 시간이 길고 하드웨어 자원의 소모가 크며 원활성이 부족한 등 문제들을 극복할 수 있는 정렬 방법, 장치, 전자 기기 및 매체를 제공한다.
본 발명의 실시예는,
생존 경로의 수(L), 마더 코드의 길이(N0), 적어도 하나의 경로 삭제 명령 및 비트 절단 폭(W)을 포함하는 구성 정보를 획득하는 단계;
상기 비트 절단 폭(W)에 따라 입력된 복수 개의 데이터 중의 각 데이터에 대해 비트 절단 처리를 수행하고, 각 비트 절단 처리된 데이터 중 절단된 하위 비트 정보를 메모리에 저장하는 단계;
상기 적어도 하나의 경로 삭제 명령에 따라 복수 개의 하위 비트 정보가 절단된 데이터에 대해 데이터 추출을 수행하고, 추출된 데이터의 비트 순서를 기록하는 단계;
상기 추출된 데이터에 밀착 배열 처리를 수행하고, 밀착 배열 처리에 의해 획득한 데이터의 개수를 결정하는 단계;
상기 생존 경로의 수(L), 상기 마더 코드의 길이(N0), 상기 추출된 데이터, 상기 추출된 데이터의 비트 순서 및 상기 밀착 배열 처리에 의해 획득한 데이터의 개수에 기반하여 L개의 출력 대상 데이터를 결정하는 단계를 포함하는 정렬 방법을 제공한다.
본 발명의 실시예는,
생존 경로의 수(L), 마더 코드의 길이(N0), 적어도 하나의 경로 삭제 명령 및 비트 절단 폭(W)을 포함하는 구성 정보를 획득하도록 구성된 획득 모듈;
상기 비트 절단 폭(W)에 의해 입력된 복수 개의 데이터 중의 각 데이터에 대해 비트 절단 처리를 수행하고, 각 비트 절단 처리된 데이터 중 절단된 하위 비트의 정보를 메모리에 저장하도록 구성된 비트 절단 모듈;
상기 적어도 하나의 경로 삭제 명령에 따라, 복수 개의 하위 비트 정보가 절단된 데이터에 대해 데이터 추출을 수행하고, 추출된 데이터 비트 순서를 기록하며, 상기 추출된 데이터에 밀착 배열 처리를 수행하고, 밀착 배열 처리에 의해 획득한 데이터의 개수를 결정하도록 구성된 추출 모듈;
상기 생존 경로의 수(L), 상기 마더 코드의 길이(N0), 상기 추출된 데이터, 상기 추출된 데이터의 비트 순서 및 상기 밀착 배열 처리에 의해 획득한 데이터의 개수에 기반하여 L개의 출력 대상 데이터를 결정하도록 구성된 출력 제어 모듈을 포함하는 정렬 장치를 제공한다.
본 발명의 실시예는, 적어도 하나의 프로세서; 적어도 하나의 컴퓨터 프로그램을 저장하도록 구성된 메모리를 포함하되, 상기 적어도 하나의 컴퓨터 프로그램이 상기 적어도 하나의 프로세서에 의해 실행되는 경우, 상기 적어도 하나의 프로세서가 본 발명의 실시예에 따른 정렬 방법을 구현하도록 하는 전자 기기를 더 제공한다.
본 발명의 실시예는, 본 발명의 실시예에 따른 정렬 방법을 수행하는 컴퓨터 실행 가능 명령이 저장된 컴퓨터 기록 매체를 더 제공한다.
본 발명의 실시예에 따른 기술수단을 통해 관련 기술에서 Polar 코드 디코딩 과정에 존재하는 디코딩 지연 시간이 길고, 하드웨어 자원의 소모가 크며, 원활성이 부족한 등 문제들을 극복할 수 있다.
도 1은 본 발명의 실시예에 따른 정렬 방법의 개략적인 흐름도이다.
도 2는 본 발명의 실시예에 따른 종래의 바이토닉 정렬 원리 개략도이다.
도 3은 본 발명의 실시예에 따른 bmN 기본 유닛 개략도이다.
도 4는 본 발명의 실시예에 따른 64 입력 출력 전체 정렬 bm 어레이 개략도이다.
도 5는 본 발명의 실시예에 따른 정렬 장치의 개략적인 구성 구조도이다.
도 6은 본 발명의 실시예에 따른 정렬 시스템의 시스템 아키텍처 개략도이다.
도 7은 본 발명의 실시예에 따른 N0=512, L=32를 지원하는 정렬 bm 어레이 개략도이다.
도 8은 본 발명의 실시예에 따른 전자 기기의 개략적인 구조도이다.
본 발명의 실시예에 따른 특징과 기술 내용을 더 상세하게 알기 위해 이하에서 도면과 함께 본 발명의 실시예를 상세하게 설명하며, 첨부된 도면은 설명에 참조하기 위한 것일 뿐 본 발명의 실시예를 한정하기 위한 것이 아니다.
실시예 1
도 1은 본 발명의 실시예에 따른 정렬 방법의 개략적인 흐름도이고 Polar 코드의 디코딩 과정에 적용된다. 도 1에 도시된 바와 같이 상기 방법은 이하 단계를 포함한다.
생존 경로의 수(L), 마더 코드의 길이(N0), 적어도 하나의 경로 삭제 명령 및 비트 절단 폭(W)을 포함하는 구성 정보를 획득하는 단계(101)를 포함한다.
본 실시예에서 상기 구성 정보는 Polar 코드의 디코딩의 수요에 따라 사전 설정될 수 있다.
상기 비트 절단 폭(W)에 따라 입력된 복수 개의 데이터 중의 각 데이터에 대해 비트 절단 처리를 수행하고, 각 비트 절단 처리된 데이터 중 절단된 하위 비트의 정보를 메모리에 저장하는 단계(102)를 포함한다.
다시 말하면, 입력된 각 데이터에 대해, 구성 정보 중의 비트 절단 폭(W)에 따라 해당 데이터의 하위 비트(하위 비트 정보)를 절단하고, 하위 비트 데이터를 메모리에 저장한다.
여기서, 비트 절단 폭(W)에 따라 입력된 데이터에 대해 비트 절단 처리를 수행하는데 그 비트 절단 방식은:
입력된 데이터가 a[N:0]이라고 가정하면, 비트 절단 후 출력된 데이터는 a[N:W]이고, 절단된 데이터 a[W-1:0]은 메모리에 저장된다.
이렇게 하여, 비트 절단 처리를 통해 획득한 상위 비트 정보는 단계 103의 입력 데이터로 사용된다.
상기 적어도 하나의 경로 삭제 명령에 따라 복수 개의 하위 비트 정보가 절단된 데이터에 대해 데이터 추출을 수행하고, 추출된 데이터의 비트 순서를 기록하는 단계(103)를 포함한다.
일부 실시형태에서, 상기 적어도 하나의 경로 삭제 명령에 따라 하위 비트가 절단된 데이터에 대해 데이터 추출을 수행하는 단계는,
추출 규칙 및 각 상기 생존 경로의 경로 삭제 명령에 따라, 상기 복수 개의 하위 비트 정보가 절단된 데이터 중의 데이터를 대응되게 추출하는 단계를 포함할 수 있으며, 상기 추출 규칙은 모든 정보 비트에 대응하는 데이터를 보류하는 것이다.
예를 들어, 현재 두 개의 생존 경로가 있고, 모든 정보 비트에 대응하는 데이터를 보류하는 것을 추출 규칙으로 한다. 첫 번째 생존 경로의 추출되기 전의 데이터의 격식은 {info0,null,info1,null,info2,null,info3,null}이고, 여기에서의 경로 삭제 명령은 info0~info3이 정보 비트에 대응하는 데이터임을 나타내며, null은 비정보 비트에 대응하는 데이터이고, 추출된 후의 데이터의 배열은 {info0,info1,info2,info3}이다. 두 번째 생존 경로의 추출되기 전의 데이터의 격식은 {info6,null,info7,null,info8,null,info9,null}이고, 추출된 후의 데이터의 배열은 {info6,info7,info8,info9}이다. 그러면, 두 개의 생존 경로에서 추출된 데이터에 밀착 배열 처리를 수행하면 {info0,info1,info2,info3,info6,info7,info8,info9}를 획득할 수 있다.
일 실시형태에서, 먼저 단계 103에서 수신된 모든 입력 데이터를 오름차순으로 번호를 매기고, 상기 번호는 각 데이터의 비트 순서를 기록하는데 사용된다. 구성 정보 중의 경로 삭제 명령에 따라 데이터를 추출하고, 추출된 데이터의 비트 순서를 기록하여 바이토닉 정렬 bmN 어레이 또는 출력 제어 모듈과 같은 다음 처리 모듈에 함께 송신한다. 4b-SCL을 예로 들면, 각 생존 경로에 매 번 4bit의 디코딩을 수행하면 최대로 16개의 경로를 확장할 수 있고, 이 4bit 중 어느 bit가 확장을 필요로 하는지를 알려줘야 한다. 경로 삭제 명령의 격식이 {info_flg0,info_flg1,info_flg2,info_flg3}이고, info_flg0 과 info_flg2가 1이라고 가정하면, 이 두 비트에 대응하는 경로를 확장해야 함을 의미하며, 즉 이 두 비트의 값은 각각 0과 1을 가질 수 있다. info_flg1과 info_flg2가 0이면 이 두 비트에 대응하는 경로는 확장하지 않음을 의미하며, 즉 이 두 비트의 값은 0을 가질 수 밖에 없고, 보류된 데이터의 경로 번호는 4'b0000,4'b0010,4'bl000,4'bl0l0이며, 즉 제0,2,8,10개의 경로에 대응하는 데이터를 추출한다.
상기 추출된 데이터에 밀착 배열 처리를 수행하고, 밀착 배열 처리에 의해 획득한 데이터의 개수를 결정하는 단계(104)를 포함한다.
이렇게 하여, 단계 105에서 밀착 배열 처리에 의해 획득한 데이터의 개수를 통해 L개의 출력 대상 데이터를 결정하는 방식을 쉽게 선택할 수 있다.
그리고, 추출하는 과정에 동시에 각 데이터의 비트 순서를 기록한다. 예를 들면, {info0,null,info1,null,info2,null,info3,null}, info0에 대응하는 비트 순서는 0, 첫 번째 null에 대응하는 비트 순서는 1, info1에 대응하는 비트 순서는 2, 두 번째 null에 대응하는 비트 순서는 3, info2에 대응하는 비트 순서는 4, 세 번째 null에 대응하는 비트 순서는 5, info3에 대응하는 비트 순서는 6, 네 번째 null에 대응하는 비트 순서는 7이다. 추출 후의 데이터 배열은 {info0,info1,info2,info3}이고, 대응하는 비트 순서는 {0,2,4,6}으로 기록된다.
상기 생존 경로의 수(L), 상기 마더 코드의 길이(N0), 상기 추출된 데이터, 상기 추출된 데이터의 비트 순서 및 밀착 배열 처리에 의해 획득한 데이터의 개수에 기반하여 L개의 출력 대상 데이터를 결정하는 단계(105)를 포함한다.
일부 실시형태에서, 상기 생존 경로의 수(L), 상기 마더 코드의 길이(N0), 상기 추출된 데이터, 상기 추출된 데이터의 비트 순서 및 밀착 배열 처리에 의해 획득한 데이터의 개수에 기반하여, L개의 출력 대상 데이터를 결정하는 단계는,
밀착 배열 처리에 의해 획득한 데이터의 개수가 L보다 큰 경우, 미리 설정된 어레이로 밀착 배열 처리에 의해 획득한 데이터에 대해 바이토닉 정렬을 수행하고, 그 중에서 L개의 데이터를 추출하는 단계;
밀착 배열 처리에 의해 획득한 데이터의 개수가 L 이하인 경우, 밀착 배열 처리에 의해 획득한 데이터를 L개의 데이터로 보충하는 단계를 포함할 수 있다.
여기서, 상기 미리 설정된 어레이는 bmN 어레이(정렬 기본 유닛)이다.
일 실시형태에서, 상기 밀착 배열 처리된 데이터에서 L개의 데이터를 추출하는 단계는,
밀착 배열 처리에 의해 획득한 데이터 중에서 가장 작은 L개의 데이터를 선택하고, 상기 L개의 데이터 중에서 각 데이터에 대응하는 비트 순서를 결정하는 단계를 포함한다.
여기서, 상기 비트 순서와 단계 103에서 데이터를 추출하는 과정에 번호를 매길 때 주어지는 비트 순서는 일치하다.
본 실시예에서, 임의의 N0이 L을 선택하는 것을 지원하고, N0의 값은 32, 64, 128, 256, 512을 포함하나 이에 한정되지 않는다.
이렇게 하여, 생존 경로의 수(L), 마더 코드의 길이(N0) 및 유효 데이터의 개수에 의해 bmN 어레이에서 L개의 데이터를 추출한다. 여기서 유효 데이터의 개수는 밀착 배열 처리에 의해 획득한 데이터의 개수라고 이해할 수 있다.
도 2는 종래의 바이토닉 정렬 기본 원리도를 도시하며, bmN은 N개의 데이터를 입력하고 이 N개의 데이터의 순서화된 시퀀스를 정렬하고 출력한다. 예를 들어 bm4는 4개의 데이터를 입력하여 이 4개 데이터의 순서화된 시퀀스를 정렬하고 출력한다. 본 발명의 실시예에서 bm4에 대해 개선하고 최적화한다. 도 2에 도시된 바와 같이, bml6은 왼쪽에서부터 오른쪽으로 총 4급으로 비교한다. 그 중에서 앞의 2급의 비교는 1급 bm4_b로 합칠 수 있으나 여기서 데이터에 대해 간격을 두면서 추출해야 하며, 도 2에서의 검은 점이 표시하는 위치의 데이터는 1개의 bm4_b를 입력한 4개의 데이터이며, 이렇게 해야만 간격을 두면서 추출한 4개의 데이터가 1개의 bm4_b로 합칠 수 있다. 뒤의 2급의 비교는 하나의 종래 bm4에 의해 구현될 수 있고, 이를 bm4_a로 기록할 수 있으며, 두 개씩 비교하는 동시에 판정하는 방식으로 전체 정렬을 완성한다. 상기 최적화를 거쳐 원래의 bml6의 4급 bm2 비교 논리는 2급의 bm4 비교 논리로 감소된다.
도 2 중의 검은 점이 표시하는 4개의 데이터 사이에는 규칙이 있는 바, 이는 이전 급에서 입력된 것이 바이토닉 시퀀스이기에 반드시 datl>=dat0 & dat2>=dat3이 존재하고, 이렇게 하면 원래의 bm4_a 중의 6개의 비교기를 4개로 감소할 수 있다. 이 밖에 bm4_b의 최대치는 datl 또는 dat2일 수밖에 없고 최소치는 dat0 또는 dat3일 수밖에 없으며 두 번째 최소치 또는 두 번째 최대치는 dat0 또는 dat3일 수밖에 없는 규칙에 의하여 bm4_b는 매우 적은 논리로 4개의 데이터의 전체 정렬을 구현할 수 있다.
상술한 원리에 기반하여, 도 3에서는 최적화된 정렬 기본 유닛 bmN을 열거했다.
bm4: bm4_a로 구성;
bm8: bm4_b 및 bm2 캐스케이드로 구성;
bml6: bm4_b 및 bm4_a 캐스케이드로 구성;
bm32: bm4_b, bm2 및 bm4_a 캐스케이드로 구성;
bm64: bm4_b, bm4_a 및 bm4_a 캐스케이드로 구성.
도 4는 64개 데이터의 전체 배열에 필요한 정렬 어레이를 열거했다. N0=32,L=8 또는 16인 경우, bm32 유닛에서 제1급 bm4_b 어레이 출력 데이터 중에서 가장 작은 8개 또는 16개의 데이터를 추출하면 Polar 코드 디코딩의 수요를 만족시킬 수 있다. N0=64,L=16 또는 32인 경우, bm64 유닛의 제1급 bm4_b 어레이 출력 데이터 중에서 가장 작은 16개 또는 32개의 데이터를 추출하면 Polar 코드 디코딩의 수요를 만족시킬 수 있다. 같은 원리에 의해 bm64 뒤에 2급 bm64, 1급 bm2 및 1급 bm4를 캐스케이드하여 한 세트의 어레이로 N0=32,64,128,256,512가 L을 선택하는 정렬 작업을 구현할 수 있다.
일 실시형태에서, 밀착 배열 처리에 의해 획득한 데이터를 L개의 데이터로 보충하는 단계는,
보충 데이터의 개수 또는 값을 결정하는 단계를 포함하되, 각 보충 데이터의 값은 현재 데이터의 비트 폭이 표시할 수 있는 최대치이다.
예컨대 보충 데이터의 개수를 X라고 결정하면, 이 X개의 보충 데이터의 값은 일치하다.
따라서 밀착 배열 처리에 의해 획득한 데이터의 개수가 L-X라고 가정하면, 먼저 밀착 배열 처리에 의해 획득한 이 L-X개의 데이터를 보충하고 그 다음 X개의 보충 데이터 및 이 X개의 보충 데이터의 값을 결정한다.
본 발명의 실시예에서 L개의 출력 대상 데이터를 결정하는 단계 이후에,
상기 밀착 배열 처리에 의해 획득한 데이터의 개수가 L보다 큰 경우, 추출된 L개의 데이터의 비트 순서 정보에 의해, 메모리에서 대응하는 절단된 하위 비트 정보를 추출할 수 있고, 상기 추출된 L개의 데이터와 추출된 하위 비트 정보를 원시 데이터로 스플라이싱하는 단계;
밀착 배열 처리에 의해 획득한 데이터의 개수가 L 이하인 경우, 상기 밀착 배열 처리에 의해 획득한 데이터에 대응하는 비트 순서 정보에 의해, 메모리에서 대응하는 절단된 하위 비트 정보를 추출하고, 상기 밀착 배열 처리에 의해 획득한 데이터와 추출된 하위 비트 정보를 원시 데이터로 스플라이싱하는 단계를 더 포함할 수 있다.
따라서, 먼저 bmN 어레이에서 L개의 데이터를 추출한 다음 상기 L개의 데이터에 대해 비트 보충 처리를 수행할 수 있다.
예를 들면, 데이터 밀착 배열과 정렬 과정에서 기록된 비트 순서 정보를 사용하여, 단계 102의 메모리에서 절단된 하위 비트 정보를 추출하고 원시 데이터로 스플라이싱하여 출력하며, 스플라이싱 방식은 {a[N:W],a[W-l:0]}인바, 즉 출력 데이터는 a[N:0]이다.
본 발명의 실시예에 따른 기술수단을 통해, 관련 기술 대비 비교적 적은 하드웨어 자원으로 Polar 코드 디코딩에 필요한 정렬 기능을 완성할 수 있을 뿐만 아니라 고속 회로 설계도 쉽게 진행할 수 있다. 멀티 탭 bmN 어레이를 통해 한 세트의 회로로 각 비트 길이의 Polar 코드 디코딩의 정렬 수요를 지원할 수 있다.
실시예 2
도 5는 본 발명의 실시예에 따른 정렬 장치의 개략적인 구성 구조도이고, 도 5에 도시된 바와 같이, 상기 정렬 장치는 획득 모듈(10), 절단 모듈(20), 추출 모듈(30), 출력 제어 모듈(40)을 포함하고,
상기 획득 모듈(10)은, 생존 경로의 수(L), 마더 코드의 길이(N0), 적어도 하나의 경로 삭제 명령 및 비트 절단 폭(W)을 포함하는 구성 정보를 획득하도록 구성되며;
상기 비트 절단 모듈(20)은, 상기 비트 절단 폭(W)에 따라, 입력된 복수 개의 데이터 중의 각 데이터에 대해 비트 절단 처리를 수행하고, 각 절단 처리된 데이터 중 절단된 하위 비트 정보를 메모리에 저장하도록 구성되며;
상기 추출 모듈(30)은, 상기 적어도 하나의 경로 삭제 명령에 따라 복수 개의 하위 비트 정보가 절단된 데이터에 대해 데이터 추출을 수행하고 추출된 데이터의 비트 순서를 기록하며, 상기 추출된 데이터에 밀착 배열 처리를 수행하며, 밀착 배열 처리에 의해 획득한 데이터의 개수를 결정하도록 구성되고;
상기 출력 제어 모듈(40)은 상기 생존 경로의 수(L), 상기 마더 코드의 길이(N0), 상기 추출된 데이터, 상기 추출된 데이터의 비트 순서 및 상기 밀착 배열 처리에 의해 획득한 데이터의 개수에 기반하여 L개의 출력 대상 데이터를 결정하도록 구성된다.
일 실시형태로서, 상기 출력 제어 모듈(40)은,
상기 밀착 배열 처리에 의해 획득한 데이터의 개수가 L보다 큰 경우, 미리 설정된 어레이로 상기 추출 모듈(30)에 의해 밀착 배열 처리하여 획득한 데이터에 대해 바이토닉 정렬을 수행하고, 그 중에서 L개의 데이터를 추출하도록 구성된 정렬 모듈(50);
상기 추출 모듈(30)에 의해 밀착 배열 처리하여 획득한 데이터의 개수가 L 이하인 경우, 밀착 배열 처리하여 얻은 데이터를 L개의 데이터로 보충하도록 구성된 보충 모듈(60)을 포함할 수 있다.
일부 실시형태에서, 상기 정렬 모듈(50)은,
상기 밀착 배열 처리에 의해 획득한 데이터 중에서 가장 작은 L개의 데이터를 선택하고, 상기 L개의 데이터 중에서 각 데이터에 대응되는 비트 순서를 결정하도록 구성된다.
일부 실시형태에서, 상기 보충 모듈(60)은,
보충 데이터의 개수와 값을 결정하도록 구성되고, 각 보충 데이터의 값은 현재 데이터의 비트 폭이 표시할 수 있는 최대치이다.
일부 실시형태에서, 상기 장치는 비트 보충 모듈(70)을 더 포함하고, 상기 비트 보충 모듈은,
밀착 배열 처리에 의해 획득한 데이터의 개수가 L보다 큰 경우, 추출된 L개의 데이터의 비트 순서에 의해 메모리에서 대응하는 절단된 하위 비트 정보를 추출하고 상기 추출된 L개의 데이터와 추출된 하위 비트 정보를 원시 데이터로 스플라이싱하며;
상기 밀착 배열 처리에 의해 획득한 데이터의 개수가 L 이하인 경우, 상기 밀착 배열 처리하여 획득한 데이터에 대응하는 비트 순서 정보에 의해 상기 메모리에서 대응하는 절단된 하위 비트 정보를 추출하고 상기 밀착 배열 처리하여 획득한 데이터와 추출된 하위 비트 정보를 원시 데이터로 스플라이싱할 수 있다.
일부 실시형태에서, 상기 추출 모듈(30)은,
추출 규칙과 각 생존 경로의 경로 삭제 명령에 따라 상기 복수 개의 하위 비트 정보가 절단된 데이터 중의 데이터를 대응되게 추출하도록 구성되고, 추출 규칙은 모든 정보 비트에 대응하는 데이터를 보류하는 것이다.
실제 응용에서, 상기 획득 모듈(10), 비트 절단 모듈(20), 추출 모듈(30), 출력 제어 모듈(40), 정렬 모듈(50), 보충 모듈(60)과 비트 보충 모듈(70)은 모두 상기 정렬 장치에 위치한 중앙처리장치(Central Processing Unit, CPU), 마이크로 프로세서(Microprocessor Unit, MPU),디지털 신호 프로세서(Digital Signal Processor, DSP), 또는 필드 프로그래머블 게이트 어레이(Field-Programmable Gate Array, FPGA) 등으로 구현될 수 있다.
본 실시예에 따른 정렬 장치는 비교적 적은 하드웨어 자원으로 Polar 코드 디코딩에 필요한 정렬 기능을 완성할 수 있고, 고속 회로의 설계를 쉽게 진행할 수 있다. 멀티 탭 bmN 어레이를 통해 한 세트의 회로로 각 비트 길이의 Polar 코드 디코딩 정렬 수요를 지원할 수 있다.
실시예 3
도 6은 정렬 시스템의 시스템 아키텍처 개략도를 도시하며, 도 6에 도시된 바와 같이, 해당 아키텍쳐는 주로 비트 절단, 추출, 바이토닉 정렬 bmN 어레이, 출력 제어와 비트 보충 등 크게 몇 개 부분으로 이루어지는데 여기서,
(1) 비트 절단:
구성 정보에 따라 입력된 데이터의 하위 비트를 절단하고, 하위 비트의 데이터를 메모리에 저장하며, 절단한 후의 데이터를 추출 모듈에 출력한다. 예를 들어, 입력된 데이터가 a[N:0]이라고 가정하면 비트 절단 후 출력된 데이터는 a[N:W]이고, 비트 절단된 데이터 a[W-l:0]을 메모리에 저장한다.
상술한 비트 절단 처리는 비트 절단 모듈에 의해 구현될 수 있다.
(2) 추출:
먼저 모든 입력된 데이터를 오름차순으로 번호를 매기고, 상기 번호에 의해 각 데이터의 비트 순서를 기록한 다음, 구성 정보 중의 경로 삭제 명령에 따라 데이터를 추출하고, 추출된 데이터의 비트 순서를 기록하여 뒤의 바이토닉 정렬 bmN 어레이 또는 출력 제어 모듈에 함께 송신한다. 4b-SCL를 예로 들면, 각 생존 경로가 매번 4bit의 디코딩을 진행하면 최대로 16개의 경로를 확장할 수 있고 이 4bit에서 어느 bit가 확장을 필요로 하는지를 알 수 있다. 경로 삭제 명령의 격식이{info_flg0,info_flgl,info_flg2,info_flg3}이고, info_flg0 및 info_flg2가 1이라고 가정하면, 이 두 비트에 대응하는 경로를 확장해야 함을 의미하고, 즉 이 두 비트는 각각 0과 1인 값을 가질 수 있다. info_flgl 및 info_flg2가 0이면 이 두 비트에 대응하는 경로를 확장하지 않음을 표시하며, 즉 이 두 비트의 값은 0을 가질 수 밖에 없고, 보류된 데이터의 경로 번호는 4'b0000,4'b0010,4'bl000,4'bl0l0인바, 즉 제0,2,8,10개의 경로에 대응하는 데이터를 추출한다.
상술한 추출 처리는 추출 모듈에 의해 구현될 수 있다.
(3) 바이토닉 정렬 bmN 어레이:
입력된 데이터에 정렬을 수행하여, 가장 작은 L개의 데이터 및 각 데이터에 대응하는 비트 순서를 선택한다. 임의의 N0이 L을 선택하도록 지원하고 N0의 값은 32, 64, 128, 256, 512를 포함하나 이에 한정되지 않는다. L의 값은 8, 16, 32를 포함하나 이에 한정되지 않는다.
도 2에 도시된 바는 종래 바이토닉 배열 기본 원리도이고, bmN는 N개의 데이터를 입력하고 이 N개의 데이터의 순서화된 시퀀스를 정렬하여 출력한다. 본 발명의 실시예에서는 bm4를 개선하고 최적화하였다. 도 2에 도시된 바와 같이, bml6은 왼쪽에서부터 오른쪽으로 총 4급의 비교가 있다. 그 중에서 앞의 2급의 비교는 1급 bm4_b로 합칠 수 있지만 여기서는 데이터에 대해 간격을 두면서 추출해야 하고, 도 2에서의 검은 점이 표시하는 위치의 데이터는 1개의 bm4_b가 입력된 4개의 데이터이고, 이렇게 해야만 간격을 두면서 추출한 후의 4개의 데이터를 1개 bm4_b로 합칠수 있다. 뒤의 2급 비교는 하나의 종래 bm4에 의해 구현될 수 있고 bm4_a로 기록되며, 두 개씩 비교하여 동시에 판정하는 방식으로 전체 정렬을 완성할 수 있다. 상술한 최적화를 통해, 원래의 bml6의 4급 bm2 비교 논리는 2급 bm4 비교 논리로 감소될 수 있다.
도 2의 검은 점이 표시하는 4개 데이터 사이에는 규칙이 있다. 그의 이전 급에서 입력된 것은 바이토닉 시퀀스이기에 반드시 datl>=dat0&dat2>=dat3이 존재하고, 이렇게 하면 원래의 bm4_b 중의 6개의 비교기가 4개로 감소할 수 있다. 이 밖에 bm4_b의 최대치는 datl 또는 dat2일 수밖에 없고 최소치는 dat0 또는 dat3일 수밖에 없으며 두 번째 최소치 또는 두 번째 최대치는 dat0 또는 dat3일 수밖에 없는 규칙에 의해 bm4_b는 매우 적은 비교로 4개의 데이터의 전체 정렬을 구현할 수 있다.
상기 원리에 기반하여, 도 3에서는 최적화 후의 정렬 기본 유닛 bmN을 열거했다.
bm4: bm4_a으로 구성,
bm8: bm4_b 및 bm2 캐스케이드로 구성,
bml6: bm4_b 및 bm4_a 캐스케이드로 구성,
bm32: bm4_b, bm2 및 bm4_a 캐스케이드로 구성,
bm64: bm4_b, bm4_a 및 bm4_a 캐스케이드로 구성.
도 4에서는 64개의 전체 정렬에 필요한 정렬 어레이를 열거했다. N0=32,L=8 또는 16인 경우, bm32 유닛의 제1급 bm4_b 어레이 출력 데이터 중에서 가장 작은 8개 또는 16개의 데이터를 추출하면 Polar 코드 디코딩의 수요를 만족시킬 수 있다. N0=64,L=16 또는 32인 경우, bm64 유닛의 제1급 bm4_b 어레이 출력 데이터 중에서 가장 작은 16개 또는 32개의 데이터를 추출하면 Polar 코드 디코딩의 수요를 만족시킬 수 있다. 같은 원리에 따라, bm64 뒤에 2급 bm64, 1급 bm2 및 1급 bm4를 캐스케이트하여 한 세트의 어레이로 N0=32, 64, 128, 256, 512가 L을 선택하는 정렬 작업을 구현할 수 있다.
상술한 바이토닉 정렬 bmN 어레이 처리는 정렬 모듈에 의해 구현될 수 있다.
(4) 출력 제어:
구성 정보 중의 L 및 N0, 그리고 추출 모듈에 의해 입력된 제어 정보에 의해, 바이토닉 정렬 bmN 어레이에 의해 출력된 데이터 또는 추출 모듈에 의해 출력된 데이터 중에서 L개의 데이터를 선택하여 출력한다.
추출 모듈에 의해 입력된 제어 정보는, 추출된 데이터 및 이런 데이터들에 대응하는 비트 순서, 추출 모듈에 의해 밀착 배열 처리되어 획득한 데이터의 개수를 포함한다.
상술한 출력 제어 처리는 출력 제어 모듈에 의해 구현될 수 있다.
(5) 비트 보충
선택된 L개의 데이터의 비트 순서 정보로 비트 절단 모듈의 메모리에서 절단된 하위 정보를 추출하여 데이터를 보충한 후에 출력한다.
상술한 비트 보충 처리는 비트 보충 모듈에 의해 구현될 수 있다.
그리고, 위의 문장에서 설명한 시스템 아키텍쳐는 예시적인 것일 뿐이고, 본 공개에서는 정렬 시스템의 아키텍처에 대해 한정하지 않는다.
실시예 4
이하 4b-SCL 디코딩 알고리즘으로 N0=512,L=32인 경우를 예로 들어 상세하게 설명한다.
4b-SCL 디코딩 알고리즘은 매 번 4 비트의 데이터에 대해 반복 디코딩을 수행하고, 각 생존 경로를 매번 반복하여 최대로 16갈래의 경로로 확장하며, 모든 생존 경로는 최대로 512갈래의 경로로 확장될 수 있다.
먼저 생존 경로의 수(L), 마더 코드의 길이 NO, 적어도 하나의 경로 삭제 명령 및 비트 절단 폭(W)을 구성하고, 다음 입력 데이터에 대해 정렬 선택 작업을 수행한다.
비트 절단 모듈에 의해 입력된 데이터의 개수는 512개, 비트 순서 번호는 0~511이다. 각 데이터에서 W개의 하위 비트를 절단한 후 출력한 데이터를 추출 모듈에 주고, 동시에 절단된 데이터를 메모리에 저장한다.
추출 모듈은 수신된 데이터를 매 16개의 데이터를 한 그룹으로 나누고 그룹별로 추출한다. 매 그룹의 16개의 데이터는 독립적인 경로 삭제 명령을 가지고, 그 격식은 {info_flg0,info_flgl,info_flg2,info_flg3}이며, info_flgN이 1이면 정보 비트를 표시하고 경로 확장을 필요로 하며, 상기 bit 위치의 값은 0/1로 될 수 있으며, info_flgN이 0이면 경로 확장을 할 필요가 없음을 표시하고, 상기 비트 위치의 값은 0일 수밖에 없다. 상기 규칙에 따라 획득한 데이터 값을 그룹 번호와 스플라이싱하면 해당 그룹에서 보류해야 할 데이터의 비트 순서 번호이다. 예를 들면, 제1 그룹 {0,0,1,0}은 10진법에서의 2를 표시하고, 그룹 번호는 0이기에 비트 순서가 2인 데이터를 보류한다. 제2 그룹 {0,0,1,0}는 10진법에서의 2를 표시하고, 그룹 번호는 1이기에 비트 순서가 18인 데이터를 보류한다. 모든 그룹의 데이터가 추출 완료된 후 스플라이싱된 데이터는 A={그룹 0 추출데이터, 그룹 1 추출데이터, …,그룹 31 추출데이터}이고, 비트 순서는 B={그룹 0 데이터 비트 순서, 그룹 1 데이터 비트 순서, ... ,그룹 31 데이터 순서}로 스플라이싱된다. A 중의 데이터의 개수가 32 이하인 경우, A와 B는 직접적으로 출력 제어 모듈로 출력되고, A 중의 데이터의 개수가 32보다 큰 경우, A와 B는 바이토닉 정렬 bmN 어레이 모듈로 출력되며 바이토닉 정렬을 수행한다.
도 7에 도시된 바는 N0=512,L=32를 지원하는 정렬 bm 어레이이고, bm4 어레이는 128개의 bm4 정렬 유닛으로 병렬 구성되며 정렬 완료 후 모든 데이터를 bm8 어레이에 준다. bm8 어레이는 64개의 bm8 정렬 유닛으로 병렬 구성되고 정렬 완료 후 모든 데이터를 bml6 어레이에 준다. bml6 어레이는 32개의 bml6 정렬 유닛으로 병렬 구성되어 정렬 완료 후 모든 데이터를 bm32에 준다. bm32 어레이는 16개의 bm32 정렬 유닛으로 병렬 구성되어 정렬 완료 후 모든 데이터를 bm64_a 어레이에 준다. bm64_a 어레이는 8개의 bm64 정렬 유닛으로 병렬 구성되어 정렬 완료 후 각 bm64 출력 결과에서 비교적 작은 32개 데이터를 선택하여 총 256개의 데이터를 bm64_b 어레이에 준다. bm64_b 어레이는 4개의 bm64 정렬 유닛으로 병렬 구성되어 정렬 완료 후 각 bm64 출력 결과 중에서 비교적 작은 32개의 데이터를 선택하여 총 128개의 데이터를 bm64_c 어레이에 준다. bm64_c 어레이는 2개의 bm64 정렬 유닛으로 병렬 구성되어 정렬 완료 후 각 bm64 출력 결과 중에서 비교적 작은 32개의 데이터를 선택하여 총 64개의 데이터를 bm2 어레이에 준다. bm2 어레이는 32개의 bm2 정렬 유닛으로 병렬 구성되어 입력된 64개의 데이터 중에서 비교적 작은 32개 데이터를 출력한다.
정렬 선택 과정에서 동시에 각 데이터에 대응하는 비트 순서를 보류하여, 데이터와 함께 하위 모듈에 전송한다.
도 7에 도시된 바와 같이, 해당 정렬 어레이는 512개의 데이터를 입력하는 것을 지원할 뿐만 아니라, 비교적 작은 32개 데이터를 선택하는, 즉 N0=512,L=32인 Polar 코드의 디코딩 수요를 지원한다. 상이한 탭을 통해 N0=32, L=16/8인 Polar 코드의 디코딩 수요, N0=64, L=32/16/8인 Polar 코드의 디코딩 수요, N0=128, L=32/16/8인 Polar 코드의 디코딩 수요, N0=256, L=32/16인 Polar 코드의 디코딩 수요를 지원할 수도 있다. 본 정렬 어레이 뒤에 상이한 bmN을 캐스케이드하고, 임의의 N0/L의 Polar 코드의 디코딩 수요를 지원할 수 있다.
출력 제어 모듈은 추출 모듈로부터 송신된 A 중의 유효 데이터의 개수, N0 및 L 정보에 의해, 해당되는 탭의 데이터를 선택하여 출력한다. 본 실시예에서 A 중의 유효 데이터의 개수가 32보다 큰 경우, N0=512,L=32인 탭의 데이터를 선택하여 출력하고, A 중의 유효 데이터의 개수가 32 이하인 경우, 추출 모듈로부터 송신된 데이터를 비트 보충 모듈에 직접 출력한다.
비트 보충 모듈은 수신된 각 데이터의 비트 순서 정보에 의해, 비트 절단 모듈에서 해당 데이터의 절단된 하위 비트(bit)정보를 꺼내 데이터를 보충한 후 출력한다.
실시예 5
도 5에서의 바이토닉 정렬 bmN 어레이 모듈을 단독으로 추출하여 정렬 선택 작업을 수행하는 바, 즉 M개의 데이터에서 최소 또는 최대 L개의 데이터를 선택한다.
정렬 어레이 구조는 도 7에 도시된 바와 같다. 정렬 대상 데이터의 개수인 M이 2가 아닌 정수차 거듭제곱인 경우, 정렬 대상 데이터 뒤에 N0-M개의 입력 데이터 비트 폭이 표시할 수 있는 최대치를 보충해야 한다. 예를 들어 입력 데이터의 비트 폭이 N이면 보충한 최대치는 2N-1이다. 여기서 N0의 계산 방법은:
N0=2k>M을 구하고, 여기서 k는 이 공식을 만족시키는 최소 정수이다.
500개의 데이터(각 데이터의 비트 폭 N은 8임)에서 가장 작은 32개의 데이터를 선택하여 출력한다고 가정하면, N0=2k>500을 구하고, 여기서 K는 이 공식을 만족시키는 최소 정수이므로 K=9, N0=512이며, 500개의 데이터의 뒤에 12개의 데이터를 보충하고, 이 12개의 데이터의 값은 모두 현재 데이터의 비트 폭이 표시할 수 있는 최대치 255이기 때문에 512개의 데이터를 획득한다. 도 7과 같이 회로의 좌측에 이 512개의 데이터를 입력하면 가장 우측에서 가장 작은 32개의 데이터를 획득할 수 있다.
상술한 500개의 데이터 중에서 최대의 32개의 데이터를 선택하려면 먼저 500개의 데이터의 뒤에 12개의 데이터를 보충하고, 이 12개 데이터의 값은 모두 현재 데이터 비트 폭이 표시할 수 있는 최소치 0이며, 512개 데이터로 보충한 후에 도 7에 기재된 회로의 좌측으로부터 입력하고, bm4/bm8/bml6/bm32/bm64/bm2 정렬 회로 구조와 상술한 최소치를 선택한 정렬 회로 구조와와 완전히 같으며, bm64와 가장 마지막 1급 bm2 정렬 완료 후의 출력 결과의 선택에서만 구별된다. 각 bm64 정렬 완료 후 출력 결과에서 비교적 큰 32개 데이터를 선택하고, 가장 마지막 1급 bm2 어레이는 입력된 64개 데이터에서 비교적 큰 32개 데이터를 선택하여 출력하며, 이로써 500개의 데이터에서 가장 큰 32개의 데이터를 선택할 수 있다.
도 8은 한 실시예에 따른 전자 기기의 하드웨어 구조 개략도이다. 도 8에 도시된 바와 같이, 해당 전자장치는 하나 이상의 프로세서(810) 및 메모리(820)를 포함한다. 도 8에서는 하나의 프로세서(810)를 예로 든다.
상기 전자 기기는 입력 장치(830)와 출력 장치(840)를 더 포함할 수 있다.
상기 전자 기기의 프로세서(810), 메모리(820), 입력 장치(830) 및 출력 장치(840)는 버스라인 또는 다른 방식으로 연결될 수 있으며, 도 7에서는 버스라인 연결을 예로 든다.
메모리(820)는 컴퓨터 판독가능 저장매체로서 소프트웨어 프로그램, 컴퓨터 실행가능 프로그램 및 모듈을 저장하도록 구성될 수 있다. 프로세서(810)는 메모리(820) 중의 소프트웨어 프로그램, 명령 및 모듈을 실행함으로써 다양한 기능 응용 및 데이터 처리를 수행하여 상기 실시예 중의 임의의 한 방법을 구현한다.
메모리(820)는 프로그램 저장구역과 데이터 저장구역을 포함할 수 있는데, 그 중 프로그램 저장구역은 운영체제, 적어도 하나의 기능에 필요한 응용프로그램을 저장할 수 있다. 데이터 저장구역은 전자기기의 사용 과정에서 구축된 데이터 등을 저장할 수 있다. 이 밖에, 메모리는 랜덤 액세스 메모리(Random Access Memory, RAM) 등 휘발성 메모리를 포함할 수 있고 비휘발성 메모리도 포함할 수 있으며, 예를 들어 적어도 하나의 자기 디스크 메모리, 플래시 메모리 또는 다른 비과도 솔리드 스테이트 메모리를 포함할 수도 있다.
메모리(820)는 비과도 컴퓨터 기록 매체 또는 과도 컴퓨터 기록 매체일 수 있다. 해당 비과도 컴퓨터 저장매체는 예를 들어 적어도 하나의 자기 디스크 메모리, 플래시 메모리 또는 비과도 솔리드 스테이트 메모리이다. 일부 실시예에서 메모리(820)는 선택적으로 프로세서(810)에 비해 원격으로 설치된 메모리를 포함할 수 있고, 이런 원격 메모리는 네트워크를 통해 전자기기에 연결될 수 있다. 상기 네트워크의 실시예는 인터넷, 인트라넷, 근거리 통신망, 이동통신망 및 이들의 조합을 포함할 수 있다.
입력장치(830)는 입력된 숫자 또는 문자부호 정보를 수신하고, 전자 기기의 사용자 설정 및 기능 제어에 관련된 키 신호 입력을 생성하도록 구성될 수 있다. 출력장치(840)는 디스플레이 스크린과 같은 기기를 포함할 수 있다.
본 실시예는 저장매체를 더 제공하며, 상기 저장매체에는 프로세서에 의해 실행되어 전술한 임의 하나 이상의 정렬 방법을 구현하는 컴퓨터 프로그램이 저장되어 있다.
상기 컴퓨터 저장매체는 다양한 유형의 저장매체일 수 있고 본 실시예에서는 바람직하게 비순간 저장매체를 선택한다.
본 분야의 기술자라면 실시예에 따른 정렬 방법의 관련 설명을 참조하여 본 실시예의 저장매체 중의 각 프로그램의 기능을 이해할 수 있음을 알 것이다.
본 발명의 실시예에 따른 방법을 종래 기술과 비교하면, 비교적 적은 하드웨어 자원으로 Polar 코드 디코딩에 필요한 정렬 기능을 완성할 수 있을 뿐만 아니라 고속 회로 설계를 쉽게 진행할 수 있다. 멀티 탭 bmN 어레이를 통해 한 세트의 회로로 각 코드 길이의 Polar 코드 디코딩 정렬 수요를 지원할 수 있다.
본 발명의 실시예에 기재된 기술수단 사이에 충돌되지 않는 한 임의로 조합할 수 있다.
본 공개에 따른 일부 실시예에서, 개시된 방법과 스마트 기기는 다른 형태를 통해 구현될 수도 있다는 것을 이해할 수 있다. 이상에서 설명된 기기 실시예는 단지 예시적인 것으로, 예를 들면 상기 유닛의 구분은 단지 한 가지 논리 기능의 구분이고, 실제 구현 시 다른 구분 방식이 있을 수도 있으며, 예를 들어 복수 개의 유닛 또는 부품과 결합될 수 있고 또는 다른 하나의 시스템에 집적될 수 있으며, 또는 일부 특징은 무시되거나 수행되지 않을 수 있다. 이 밖에 표시되거나 논의된 각 구성요소 상호간의 결합 또는 직접적인 결합, 또는 통신 연결은 일부 인터페이스, 기기 또는 유닛을 통해 간접적 결합 또는 통신 연결될 수 있으며 이는 전기적, 기계적 또는 다른 형태일 수 있다.
상기 분할 부품으로 설명된 유닛은, 물리적으로 분리된 것이거나 아니어도 되고, 유닛으로 표시된 부품은, 물리적 유닛이거나 아니어도 되고, 한 곳에 위치하거나 복수 개의 네트워크 유닛에 분포될 수도 있으며, 실제 수요에 따라 이 중의 일부 또는 전부 유닛을 선택하여 본 실시예 수단의 목적을 달성할 수 있다.
또한, 본 발명의 각 실시예 중의 각 기능 유닛은 하나의 제2 처리 유닛에 전부 집적될 수 있고, 각각의 유닛이 단독으로 하나의 유닛이 될 수도 있으며, 두 개 이상의 유닛이 하나의 유닛으로 집적될 수도 있다. 상기 집적된 유닛은 하드웨어의 형태로 구현될 수 있고, 하드웨어와 소프트웨어 기능 유닛을 결합한 방식으로 구현될 수도 있다.
810: 프로세서 820: 메모리
830: 입력 장치 840: 출력 장치

Claims (14)

  1. 생존 경로의 수(L), 마더 코드의 길이(N0), 적어도 하나의 경로 삭제 명령 및 비트 절단 폭(W)을 포함하는 구성 정보를 획득하는 단계;
    상기 비트 절단 폭(W)에 따라 입력된 복수 개의 데이터 중의 각 데이터에 대해 비트 절단 처리를 수행하고, 각 비트 절단 처리된 데이터 중 절단된 하위 비트 정보를 메모리에 저장하는 단계;
    상기 적어도 하나의 경로 삭제 명령에 따라 복수 개의 하위 비트 정보가 절단된 데이터에 대해 데이터 추출을 수행하고, 추출된 데이터의 비트 순서를 기록하는 단계;
    상기 추출된 데이터에 밀착 배열 처리를 수행하고, 밀착 배열 처리에 의해 획득한 데이터의 개수를 결정하는 단계; 및
    상기 생존 경로의 수(L), 상기 마더 코드의 길이(N0), 상기 추출된 데이터, 상기 추출된 데이터의 비트 순서 및 상기 밀착 배열 처리에 의해 획득한 데이터의 개수에 기반하여 L개의 출력 대상 데이터를 결정하는 단계;를 포함하는, 정렬 방법.
  2. 제1항에 있어서,
    상기 생존 경로의 수(L), 상기 마더 코드의 길이(N0), 상기 추출된 데이터, 상기 추출된 데이터의 비트 순서 및 상기 밀착 배열 처리에 의해 획득한 데이터의 개수에 기반하여 L개의 출력 대상 데이터를 결정하는 단계는,
    상기 밀착 배열 처리에 의해 획득한 데이터의 개수가 L보다 큰 경우, 미리 설정된 어레이로 상기 밀착 배열 처리에 의해 획득한 데이터에 대해 바이토닉 정렬을 수행하고, 그 중에서 L개의 데이터를 추출하는 단계;
    상기 밀착 배열 처리에 의해 획득한 데이터의 개수가 L 이하인 경우, 상기 밀착 배열 처리에 의해 획득한 데이터를 L개의 데이터로 보충하는 단계를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 그 중에서 L개의 데이터를 추출하는 단계는,
    상기 밀착 배열 처리에 의해 획득한 데이터에서 가장 작은 L개의 데이터를 선택하고, 상기 L개의 데이터에서 각 데이터에 대응하는 데이터 순서를 결정하는 단계를 포함하는, 방법.
  4. 제2항에 있어서,
    상기 밀착 배열 처리에 의해 획득한 데이터를 L개의 데이터로 보충하는 단계는,
    보충 데이터의 개수 및 값을 결정하는 단계를 포함하되, 각 상기 보충 데이터의 값은 현재 데이터의 비트 폭이 표시할 수 있는 최대치인, 방법.
  5. 제2항, 제3항 또는 제4항에 있어서,
    상기 L개의 출력 대상 데이터를 결정하는 단계 이후에,
    상기 밀착 배열 처리하여 획득한 데이터의 개수가 L보다 큰 경우, 추출된 L개의 데이터의 비트 순서 정보에 따라, 상기 메모리에서 대응하는 절단된 하위 비트 정보를 추출하고, 상기 추출된 L개의 데이터와 추출된 하위 비트 정보를 원시 데이터로 스플라이싱하는 단계;
    상기 밀착 배열 처리에 의해 획득한 데이터가 L 이하인 경우, 상기 밀착 배열 처리하여 획득한 데이터에 대응되는 비트 순서 정보에 의해, 상기 메모리에서 대응하는 절단된 하위 비트 정보를 추출하고, 상기 밀착 배열 처리에 의해 획득한 데이터와 추출된 하위 비트 정보를 원시 데이터로 스플라이싱하는 단계를 더 포함하는, 방법.
  6. 제1항에 있어서,
    상기 적어도 하나의 경로 삭제 명령에 따라 복수 개의 하위 비트 정보가 절단된 데이터에 대해 데이터 추출을 수행하는 단계는,
    추출 규칙과 각 상기 생존 경로의 경로 삭제 명령에 따라, 상기 복수 개의 하위 비트 정보가 절단된 데이터 중의 데이터를 대응되게 추출하는 단계를 포함하되, 상기 추출 규칙은 모든 정보 비트에 대응하는 데이터를 보류하는 것인, 방법.
  7. 생존 경로의 수(L), 마더 코드의 길이(N0), 적어도 하나의 경로 삭제 명령 및 비트 절단 폭(W)을 포함하는 구성 정보를 획득하도록 구성된 획득 모듈;
    상기 비트 절단 폭(W)에 따라 입력된 복수 개의 데이터 중의 각 데이터에 대해 비트 절단 처리를 수행하고 각 비트 절단 처리된 데이터 중 절단된 하위 비트 정보를 메모리에 저장하도록 구성된 비트 절단 모듈;
    상기 적어도 하나의 경로 삭제 명령에 따라 복수 개의 하위 비트 정보가 절단된 데이터에 대해 데이터 추출을 수행하고, 추출된 데이터의 비트 순서를 기록하며, 상기 추출된 데이터에 밀착 배열 처리를 수행하고, 밀착 배열 처리에 의해 획득한 데이터의 개수를 결정하도록 구성된 추출 모듈;
    상기 생존 경로의 수(L), 상기 마더 코드의 길이(N0), 상기 추출된 데이터, 상기 추출된 데이터의 비트 순서 및 상기 밀착 배열 처리에 의해 획득한 데이터의 개수에 기반하여 L개의 출력 대상 데이터를 결정하도록 구성된 출력 제어 모듈을 포함하는, 정렬 장치.
  8. 제7항에 있어서,
    상기 출력 제어 모듈은,
    상기 밀착 배열 처리에 의해 획득한 데이터의 개수가 L보다 큰 경우, 미리 설정된 어레이로 상기 추출 모듈에 의해 밀착 배열 처리되어 획득한 데이터에 바이토닉 정렬을 수행하고, 그 중에서 L개의 데이터를 추출하도록 구성된 정렬 모듈;
    상기 추출 모듈에 의해 밀착 배열 처리되어 획득한 데이터의 개수가 L 이하인 경우, 상기 밀착 배열 처리에 의해 획득한 데이터를 L개의 데이터로 보충하도록 구성된 보충 모듈을 포함하는, 장치.
  9. 제8항에 있어서,
    상기 정렬 모듈은,
    상기 밀착 배열 처리에 의해 획득한 데이터 중에서 가장 작은 L개의 데이터를 선택하고, 상기 L개의 데이터 중에서 각 데이터에 대응하는 비트 순서를 결정하도록 구성된 것인, 장치.
  10. 제8항에 있어서,
    상기 보충 모듈은,
    보충 데이터의 개수 및 값을 결정하되, 각 상기 보충 데이터의 값은 현재 데이터의 비트 폭이 표시할 수 있는 최대치로 구성된 것인, 장치.
  11. 제8항, 제9항, 또는 제10항에 있어서,
    상기 밀착 배열 처리에 의해 획득한 데이터의 개수가 L보다 큰 경우, 추출된 데이터의 비트 순서 정보에 따라, 상기 메모리에서 대응하는 절단된 하위 비트 정보를 추출하고, 상기 추출된 L개의 데이터와 추출된 하위 비트 정보를 원시 데이터로 스플라이싱하며,
    상기 밀착 배열 처리에 의해 획득한 데이터의 개수가 L 이하인 경우, 상기 밀착 배열 처리에 의해 획득한 데이터에 대응하는 비트 순서 정보에 따라 상기 메모리에서 대응하는 절단된 하위 비트 정보를 추출하고, 상기 밀착 배열 처리에 의해 획득한 데이터와 추출된 하위 비트 정보를 원시 데이터로 스플라이싱하도록 구성된 비트 보충 모듈을 더 포함하는, 장치.
  12. 제7항에 있어서,
    상기 추출 모듈은,
    추출 규칙과 각 상기 생존 경로의 경로 삭제 명령에 따라, 상기 복수 개의 하위 비트 정보가 절단된 데이터 중의 데이터를 대응되게 추출하도록 구성되되, 상기 추출 규칙은 모든 정보 비트에 대응하는 데이터를 보류하는 것인, 장치.
  13. 적어도 하나의 프로세서;
    적어도 하나의 컴퓨터 프로그램이 저장되도록 구성된 메모리;를 포함하되,
    상기 적어도 하나의 컴퓨터 프로그램이 상기 적어도 하나의 프로세서에 의해 실행되는 경우, 상기 적어도 하나의 프로세서가 제1항 내지 제6항 중 어느 한 항에 따른 정렬 방법을 구현하도록 하는, 전자 기기.
  14. 제1항 내지 제6항 중 어느 한 항에 따른 정렬 방법을 수행하는 컴퓨터 실행 가능 명령이 저장된, 컴퓨터 판독 가능 기록 매체.

KR1020217020024A 2018-12-05 2019-12-05 정렬 방법, 장치, 전자 기기 및 매체 KR20210097743A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811483150.7 2018-12-05
CN201811483150.7A CN111277276B (zh) 2018-12-05 2018-12-05 一种排序方法及装置
PCT/CN2019/123423 WO2020114469A1 (zh) 2018-12-05 2019-12-05 排序方法、装置、电子设备及介质

Publications (1)

Publication Number Publication Date
KR20210097743A true KR20210097743A (ko) 2021-08-09

Family

ID=70973569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217020024A KR20210097743A (ko) 2018-12-05 2019-12-05 정렬 방법, 장치, 전자 기기 및 매체

Country Status (4)

Country Link
EP (1) EP3893400A4 (ko)
KR (1) KR20210097743A (ko)
CN (1) CN111277276B (ko)
WO (1) WO2020114469A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112015366B (zh) * 2020-07-06 2021-09-10 中科驭数(北京)科技有限公司 数据排序方法、数据排序装置及数据库系统
CN113162633B (zh) * 2021-02-24 2023-09-05 Oppo广东移动通信有限公司 极化码的译码方法及装置、译码器、设备、存储介质
CN113672530B (zh) * 2021-10-21 2022-02-18 苏州浪潮智能科技有限公司 一种服务器及其排序设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000052143A (ko) * 1999-01-30 2000-08-16 윤종용 적응 비터비 복호기 및 그 동작방법
CN1168254C (zh) * 2002-01-19 2004-09-22 华为技术有限公司 一种截短维特比译码方法及其译码器
JP2004096363A (ja) * 2002-08-30 2004-03-25 Matsushita Electric Ind Co Ltd ターボ符号のパンクチャリング方法及び符号化装置
CN101997553B (zh) * 2009-08-13 2013-03-20 中兴通讯股份有限公司 一种卷积码译码方法及装置
CN101667840B (zh) * 2009-09-08 2012-12-12 华为技术有限公司 一种咬尾译码方法及装置
CN108650057B (zh) * 2012-10-17 2023-10-13 华为技术有限公司 一种编译码的方法、装置及系统
US20140132429A1 (en) * 2012-11-10 2014-05-15 John Conant Scoville Method for data compression and inference
CN106803759A (zh) * 2016-12-27 2017-06-06 南京邮电大学 基于高斯构造的Polar码有效自适应译码方法
CN108574561B (zh) * 2017-03-14 2020-11-17 华为技术有限公司 极化码编码的方法和装置
CN107094064B (zh) * 2017-03-29 2020-02-07 西安电子科技大学 针对八进制连续相位频移键控的维特比解调系统及方法

Also Published As

Publication number Publication date
CN111277276B (zh) 2023-06-27
EP3893400A1 (en) 2021-10-13
WO2020114469A1 (zh) 2020-06-11
CN111277276A (zh) 2020-06-12
JP2022510442A (ja) 2022-01-26
EP3893400A4 (en) 2022-01-05

Similar Documents

Publication Publication Date Title
KR20210097743A (ko) 정렬 방법, 장치, 전자 기기 및 매체
US10698697B2 (en) Adaptive routing to avoid non-repairable memory and logic defects on automata processor
TW200401206A (en) Enhanced multiway radix tree and related methods
US8542137B2 (en) Decoding encoded data
CN107465657A (zh) 直播视频监控方法、存储介质、电子设备及系统
CN108229573B (zh) 基于决策树的分类计算方法和装置
CN111384972B (zh) 多进制ldpc解码算法的优化方法、装置及解码器
US9805091B2 (en) Processing a database table
CN111787325B (zh) 一种熵编码器及其编码方法
CN108009111B (zh) 数据流连接方法及装置
CN108920458A (zh) 一种标签归一化方法、装置、服务器和存储介质
CN1768480B (zh) 编码装置和方法、解码装置和方法
US8279095B2 (en) Method for storing node information of Huffman tree and corresponding decoding method
CN111862343A (zh) 一种三维重建方法、装置、设备及计算机可读存储介质
JP7495933B2 (ja) ソート方法、装置、電子デバイス及びコンピュータプログラム
US20100049713A1 (en) Pattern matching device and method
US10380304B2 (en) Assistance programs, design assistance methods, and information processing apparatuses
CN114142873A (zh) 一种极化码译码方法及装置
CN114070901A (zh) 基于多数据对齐的数据发送和接收方法、装置和设备
CN102104741A (zh) 多语种字幕的编排方法及装置
US9390794B2 (en) Semiconductor device and operating method thereof
US9507899B2 (en) System and method for register transfer level autointegration using spread sheet and computer readable recording medium thereof
CN107094022B (zh) 一种用于VLSI设计的Huffman编码系统的实现方法
CN111628778B (zh) 一种基于动态规划的无损压缩方法和装置
CN107195327B (zh) 一种优化的prom存储器编程烧录方法的设计

Legal Events

Date Code Title Description
E902 Notification of reason for refusal