KR102350909B1 - 오류 정정 부호에 기초한 오류 정정 방법 및 장치 - Google Patents

오류 정정 부호에 기초한 오류 정정 방법 및 장치 Download PDF

Info

Publication number
KR102350909B1
KR102350909B1 KR1020200074852A KR20200074852A KR102350909B1 KR 102350909 B1 KR102350909 B1 KR 102350909B1 KR 1020200074852 A KR1020200074852 A KR 1020200074852A KR 20200074852 A KR20200074852 A KR 20200074852A KR 102350909 B1 KR102350909 B1 KR 102350909B1
Authority
KR
South Korea
Prior art keywords
error
regression
session
function values
remind
Prior art date
Application number
KR1020200074852A
Other languages
English (en)
Other versions
KR20210100507A (ko
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 KR20210100507A publication Critical patent/KR20210100507A/ko
Application granted granted Critical
Publication of KR102350909B1 publication Critical patent/KR102350909B1/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/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
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] 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

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

오류 정정 부호에 기초한 오류 정정 방법 및 장치가 개시된다. 본 발명의 일 실시예에 따른 오류 정정 부호에 기초한 오류 정정 방법은, 상기 오류 정정 부호에 의하여 부호화된 코드워드를 수신하는 단계, 상기 수신한 코드워드를 기초로 신드롬 방정식을 생성하는 단계, 상기 신드롬 방정식을 기초로, 복수 개의 회기(iteration)에 대한 연산을 수행하여 오류 위치 다항식을 생성하는 단계, 및 상기 오류 위치 다항식에 기초하여, 상기 코드워드에 포함된 오류의 위치를 확인하여 상기 오류를 정정하는 단계를 포함하되, 상기 오류 위치 다항식을 생성하는 단계는, 적어도 두 개 이상의 인접한 회기에 대한 연산이 한 사이클 내에서 수행되는 것을 특징으로 할 수 있다. 따라서 통신 시스템 또는 메모리 시스템의 성능이 향상될 수 있다.

Description

오류 정정 부호에 기초한 오류 정정 방법 및 장치{METHOD AND APPARATUS FOR ERROR-CORRECTING BASED ON ERROR-CORRECTING CODE}
본 발명은 오류 정정 부호에 기초한 오류 정정 방법 및 장치에 관한 것으로, 통신 시스템 또는 메모리 시스템에서 데이터 전달 과정에 발생하는 오류를 정정하여 시스템의 신뢰도를 향상시키기 위한 방법 및 장치에 관한 것이다.
통신 시스템에서 통신 노드가 무선 채널을 통해 다른 통신 노드로 데이터를 전송하는 경우, 무선 채널의 상태에 따라 데이터 정보에 오류가 발생할 수 있다. 특히, 한정된 무선 자원 상에서 통신 신호가 과밀화되어 송수신될 경우, 오류 발생 확률이 증가할 수 있다. 따라서, 전송된 데이터를 수신한 통신 노드가 데이터 정보를 정확하게 검출하기 위해서는 우수한 오류 정정 능력을 갖는 복호화 기법을 필요로 할 수 있다.
한편, 메모리 시스템에서 데이터가 서로 다른 저장공간 또는 프로세서 사이에서 전달되고 저장되는 과정에서, 경우에 따라 노이즈 또는 오류가 발생할 수 있다. 특히, 메모리의 집적도를 높이기 위한 기술로, 데이터가 저장되는 셀(cell) 자체의 크기를 줄여주는 미세 공정화와 셀 당 저장되는 정보량을 늘려주는 멀티-레벨(multi-level)화가 적용되고 있는데, 이를 통하여 효율성이 향상되는 반면 오류 발생 확률이 증가할 수 있다. 따라서, 메모리 시스템의 신뢰성을 높은 수준으로 유지하기 위해서는 우수한 오류 정정 능력을 갖는 오류 정정 부호(error control code)가 필요할 수 있다.
선형 블록 부호인 BCH(Bose-Chaudhuri-Hocquenghem) 코드는 오류 정정 부호의 한 종류로서, 데이터를 주고받는 과정에서 생기는 오류를 제거하여 데이터의 무결성을 보장할 수 있는 기술 중 하나이다. BCH 코드는 대수적 방식의 코드 중 하나로, 주어진 코드 길이 안에 고칠 수 있는 오류의 개수가 정해져 있다. 이로 인해 주어진 코드 안에 해당 개수 이하의 오류가 발생하는 경우 반드시 오류를 고칠 수 있다는 특성을 가지고 있다. 이러한 BCH 코드는 통신 시스템 또는 메모리 시스템에 적용되어 시스템의 신뢰도를 향상시킬 수 있다.
BCH 코드는 종래의 오류 정정 부호들에 비하여 우수한 오류 정정 성능을 가질 수 있으나, 오류 정정 과정에서의 지연 시간 또는 레이턴시가 길어질 수 있다는 문제점이 있다. 특히 차세대 통신 시스템 또는 차세대 메모리 시스템에서는 극단적인 저지연 성능이 요구될 수 있기 때문에, 오류 정정 과정에서의 지연 시간을 줄일 수 있는 기술이 요구되고 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, BCH 코드에 의한 오류 정정 절차의 효율성을 향상시키고 지연 시간을 줄일 수 있는 오류 정정 방법 및 장치를 제공하는 데 있다.
상기한 과제를 해결하기 위한 본 발명의 일 실시예예 따른 오류 정정 부호에 기초한 오류 정정 방법은, 상기 오류 정정 부호에 의하여 부호화된 코드워드를 수신하는 단계, 상기 수신한 코드워드를 기초로 신드롬 방정식을 생성하는 단계, 상기 신드롬 방정식을 기초로, 복수 개의 회기(iteration)에 대한 연산을 수행하여 오류 위치 다항식을 생성하는 단계, 및 상기 오류 위치 다항식에 기초하여, 상기 코드워드에 포함된 오류의 위치를 확인하여 상기 오류를 정정하는 단계를 포함하되, 상기 오류 위치 다항식을 생성하는 단계는 적어도 두 개 이상의 인접한 회기에 대한 연산이 한 사이클 내에서 수행되는 것을 특징으로 할 수 있다.
상기 오류 정정 부호는
Figure 112020063267572-pat00001
개의 오류를 정정할 수 있는 BCH 코드이며, 상기 오류 위치 다항식을 생성하는 단계는 상기 신드롬 방정식에 기초하여 신드롬 수열
Figure 112020063267572-pat00002
를 획득하는 단계, 상기 획득한 신드롬 수열
Figure 112020063267572-pat00003
를 키-방정식-풀이(key-equation-solver, KES) 알고리즘에 입력하는 단계, 상기 신드롬 수열에 기초하여, 상기 KES 알고리즘을 구성하는 함수들의
Figure 112020063267572-pat00004
번째 회기에 대한 함수값들을 연산하는 단계, 0 이상이고
Figure 112020063267572-pat00005
보다 작은 짝수
Figure 112020063267572-pat00006
번째 회기에 대하여 연산된 함수값들을 기초로,
Figure 112020063267572-pat00007
번째 회기에 대한 함수값들을 연산하는 단계,
Figure 112020063267572-pat00008
번째 회기에 대하여 연산된 제1 함수의 값을 기초로 오류 위치 계수를 생성하는 단계, 및 상기 오류 위치 계수에 기초하여 상기 오류 위치 다항식을 생성하는 단계를 포함하는 것을 특징으로 할 수 있다,
상기 오류 위치 다항식을 생성하는 단계는, 상기
Figure 112020063267572-pat00009
번째 회기에 대한 함수값들을 연산하는 단계 이후,
Figure 112020063267572-pat00010
가 홀수일 경우,
Figure 112020063267572-pat00011
번째 회기에 대하여 연산된 함수값들을 기초로, 상기
Figure 112020063267572-pat00012
번째 회기에 대한 함수값들을 연산하는 단계를 더 포함하는 것을 특징으로 할 수 있다,
상기 오류 위치 다항식을 생성하는 단계는, 상기
Figure 112020063267572-pat00013
번째 회기에 대한 함수값들을 연산하는 단계 이후, 상기
Figure 112020063267572-pat00014
번째 회기 및
Figure 112020063267572-pat00015
번째 회기에서 오류가 감지되었는지를 판단하는 단계, 상기
Figure 112020063267572-pat00016
번째 회기 및 상기
Figure 112020063267572-pat00017
번째 회기 중 적어도 하나 이상의 회기에서 오류가 감지되었을 경우, 상기
Figure 112020063267572-pat00018
번째 회기에 대하여 연산된 함수값들을 기초로 상기
Figure 112020063267572-pat00019
번째 회기에 대한 함수값들을 연산하는 단계, 및 상기
Figure 112020063267572-pat00020
번째 회기 및 상기
Figure 112020063267572-pat00021
번째 회기에 대한 함수값 복구 연산을 수행하는 단계를 더 포함하는 것을 특징으로 할 수 있다.
상기 함수값 복구 연산을 수행하는 단계는, 상기
Figure 112020063267572-pat00022
번째 회기에서 오류가 감지되었을 경우, 상기
Figure 112020063267572-pat00023
번째 회기에 대하여 연산된 함수값들을 기초로 상기
Figure 112020063267572-pat00024
번째 회기에 대한 함수값들을 재연산하는 단계를 포함하는 것을 특징으로 할 수 있다.
상기 함수값 복구 연산을 수행하는 단계는, 상기
Figure 112020063267572-pat00025
번째 회기에서는 오류가 감지되고 상기
Figure 112020063267572-pat00026
번째 회기에서는 오류가 감지되지 않았을 경우, 상기
Figure 112020063267572-pat00027
번째 회기에 대하여 연산된 함수값들을 기초로 상기
Figure 112020063267572-pat00028
번째 회기에 대한 함수값들을 재연산하는 단계를 포함하는 것을 특징으로 할 수 있다.
상기
Figure 112020063267572-pat00029
번째 회기 및
Figure 112020063267572-pat00030
번째 회기에서 오류가 감지되었는지를 판단하는 단계는, 각각의 회기에 대한 조건 함수의 값이 1인 경우, 해당 회기에서 오류가 감지되지 않은 것으로 판단하는 것을 특징으로 할 수 있다.
상기 KES 알고리즘은 '간략화된 반전 없는 벨르캄프-메시(Simplified inversionless Berlekamp-Massey, SiBM) 알고리즘'의 일종인 것을 특징으로 할 수 있다.
상기한 과제를 해결하기 위한 본 발명의 일 실시예예 따른 오류 정정 부호가 적용된 통신 시스템에서의 통신 노드는, 프로세서(processor), 상기 프로세서와 전자적(electronic)으로 통신하는 메모리(memory), 및 상기 메모리에 저장되는 명령들(instructions)을 포함하며, 상기 명령들이 상기 프로세서에 의해 실행되는 경우, 상기 명령들은 상기 통신 노드가, 상기 오류 정정 부호에 의하여 부호화된 코드워드를 수신하고, 상기 수신한 코드워드를 기초로 신드롬 방정식을 생성하고, 상기 신드롬 방정식을 기초로, 복수 개의 회기(iteration)에 대한 연산을 수행하되, 2개의 인접한 회기에 대한 연산을 한 사이클 내에서 수행하여 오류 위치 다항식을 생성하고, 그리고 상기 오류 위치 다항식에 기초하여, 상기 코드워드에 포함된 오류의 위치를 확인하여 상기 오류를 정정하는 것을 야기하도록 동작할 수 있다.
상기 오류 정정 부호는
Figure 112020063267572-pat00031
개의 오류를 정정할 수 있는 BCH 코드이며, 상기 명령들은 상기 통신 노드가, 상기 신드롬 방정식에 기초하여 신드롬 수열
Figure 112020063267572-pat00032
를 획득하고, 상기 획득한 신드롬 수열
Figure 112020063267572-pat00033
를 키-방정식-풀이(key-equation-solver, KES) 알고리즘에 입력하고, 상기 신드롬 수열에 기초하여, 상기 KES 알고리즘을 구성하는 함수들의
Figure 112020063267572-pat00034
번째 회기에 대한 함수값들을 연산하고, 0 이상이고
Figure 112020063267572-pat00035
보다 작은 짝수
Figure 112020063267572-pat00036
번째 회기에 대하여 연산된 함수값들을 기초로,
Figure 112020063267572-pat00037
번째 회기에 대한 함수값들을 연산하고,
Figure 112020063267572-pat00038
번째 회기에 대하여 연산된 제1 함수의 값을 기초로 오류 위치 계수를 생성하고, 그리고 상기 오류 위치 계수에 기초하여 상기 오류 위치 다항식을 생성하는 것을 더 야기하도록 동작할 수 있다.
상기 명령들은 상기 통신 노드가, 상기
Figure 112020063267572-pat00039
번째 회기에 대한 함수값들을 연산한 이후, 상기
Figure 112020063267572-pat00040
번째 회기 및
Figure 112020063267572-pat00041
번째 회기에서 오류가 감지되었는지를 판단하고, 상기
Figure 112020063267572-pat00042
번째 회기 및 상기
Figure 112020063267572-pat00043
번째 회기 중 적어도 하나 이상의 회기에서 오류가 감지되었을 경우, 상기
Figure 112020063267572-pat00044
번째 회기에 대하여 연산된 함수값들을 기초로 상기
Figure 112020063267572-pat00045
번째 회기에 대한 함수값들을 연산하고, 그리고 상기
Figure 112020063267572-pat00046
번째 회기 및 상기
Figure 112020063267572-pat00047
번째 회기에 대한 함수값 복구 연산을 수행하는 것을 더 야기하도록 동작할 수 있다.
상기 명령들은 상기 통신 노드가, 상기
Figure 112020063267572-pat00048
번째 회기에서 오류가 감지되었을 경우, 상기
Figure 112020063267572-pat00049
번째 회기에 대하여 연산된 함수값들을 기초로 상기
Figure 112020063267572-pat00050
번째 회기에 대한 함수값들을 재연산하는 것을 더 야기하도록 동작할 수 있다.
상기 명령들은 상기 통신 노드가, 상기
Figure 112020063267572-pat00051
번째 회기에서는 오류가 감지되고 상기
Figure 112020063267572-pat00052
번째 회기에서는 오류가 감지되지 않았을 경우, 상기
Figure 112020063267572-pat00053
번째 회기에 대하여 연산된 함수값들을 기초로 상기
Figure 112020063267572-pat00054
번째 회기에 대한 함수값들을 재연산하는 것을 더 야기하도록 동작할 수 있다.
상기 프로세서는, 제어기(controller), 및 적어도
Figure 112020063267572-pat00055
개의 연산 엘리먼트(processing element, PE)들을 포함하는 것을 특징으로 할 수 있다.
상기한 과제를 해결하기 위한 본 발명의 일 실시예예 따른 오류 정정 부호가 적용된 메모리 시스템에서의 디코더는, 프로세서(processor), 상기 프로세서와 전자적(electronic)으로 통신하는 메모리(memory), 및 상기 메모리에 저장되는 명령들(instructions)을 포함하며, 상기 명령들이 상기 프로세서에 의해 실행되는 경우, 상기 명령들은 상기 디코더가 상기 오류 정정 부호에 의하여 부호화된 코드워드를 수신하고, 상기 수신한 코드워드를 기초로 신드롬 방정식을 생성하고, 상기 신드롬 방정식을 기초로, 복수 개의 회기(iteration)에 대한 연산을 수행하되, 2개의 인접한 회기에 대한 연산을 한 사이클 내에서 수행하여 오류 위치 다항식을 생성하고, 그리고 상기 오류 위치 다항식에 기초하여, 상기 코드워드에 포함된 오류의 위치를 확인하여 상기 오류를 정정하는 것을 야기하도록 동작할 수 있다.
상기 오류 정정 부호는
Figure 112020063267572-pat00056
개의 오류를 정정할 수 있는 BCH 코드이며, 상기 명령들은 상기 디코더가, 상기 신드롬 방정식에 기초하여 신드롬 수열
Figure 112020063267572-pat00057
를 획득하고, 상기 획득한 신드롬 수열
Figure 112020063267572-pat00058
를 키-방정식-풀이(key-equation-solver, KES) 알고리즘에 입력하고, 상기 신드롬 수열에 기초하여, 상기 KES 알고리즘을 구성하는 함수들의
Figure 112020063267572-pat00059
번째 회기에 대한 함수값들을 연산하고, 0 이상이고
Figure 112020063267572-pat00060
보다 작은 짝수
Figure 112020063267572-pat00061
번째 회기에 대하여 연산된 함수값들을 기초로,
Figure 112020063267572-pat00062
번째 회기에 대한 함수값들을 연산하고,
Figure 112020063267572-pat00063
번째 회기에 대하여 연산된 제1 함수의 값을 기초로 오류 위치 계수를 생성하고, 그리고 상기 오류 위치 계수에 기초하여 상기 오류 위치 다항식을 생성하는 것을 더 야기하도록 동작할 수 있다.
상기 명령들은 상기 디코더가, 상기
Figure 112020063267572-pat00064
번째 회기에 대한 함수값들을 연산한 이후, 상기
Figure 112020063267572-pat00065
번째 회기 및
Figure 112020063267572-pat00066
번째 회기에서 오류가 감지되었는지를 판단하고, 상기
Figure 112020063267572-pat00067
번째 회기 및 상기
Figure 112020063267572-pat00068
번째 회기 중 적어도 하나 이상의 회기에서 오류가 감지되었을 경우, 상기
Figure 112020063267572-pat00069
번째 회기에 대하여 연산된 함수값들을 기초로 상기
Figure 112020063267572-pat00070
번째 회기에 대한 함수값들을 연산하고, 그리고 상기
Figure 112020063267572-pat00071
번째 회기 및 상기
Figure 112020063267572-pat00072
번째 회기에 대한 함수값 복구 연산을 수행하는 것을 더 야기하도록 동작할 수 있다.
상기 명령들은 상기 디코더가, 상기
Figure 112020063267572-pat00073
번째 회기에서 오류가 감지되었을 경우, 상기
Figure 112020063267572-pat00074
번째 회기에 대하여 연산된 함수값들을 기초로 상기
Figure 112020063267572-pat00075
번째 회기에 대한 함수값들을 재연산하는 것을 더 야기하도록 동작할 수 있다.
상기 명령들은 상기 디코더가, 상기
Figure 112020063267572-pat00076
번째 회기에서는 오류가 감지되고 상기
Figure 112020063267572-pat00077
번째 회기에서는 오류가 감지되지 않았을 경우, 상기
Figure 112020063267572-pat00078
번째 회기에 대하여 연산된 함수값들을 기초로 상기
Figure 112020063267572-pat00079
번째 회기에 대한 함수값들을 재연산하는 것을 더 야기하도록 동작할 수 있다.
상기 프로세서는, 제어기(controller), 및 적어도
Figure 112020063267572-pat00080
개의 연산 엘리먼트(processing element, PE)들을 포함하는 것을 특징으로 할 수 있다.
본 발명의 실시예에 의하면, 오류 정정 부호의 일종인 BCH(Bose-Chaudhuri-Hocquenghem) 코드에 따른 디코딩 단계 중 하나인 키-방정식-풀이(key-equation-solver, KES) 단계에 언폴딩 기법을 적용함으로써 오류 정정 동작의 효율성을 향상시킬 수 있다. 본 발명에 따른 KES 알고리즘은 2개의 인접한 사이클을 통합하여 처리할 수 있다. 본 발명에 따른 KES 알고리즘은 각 사이클에 대한 연산을 수행하면서 다음 사이클에서 수행할 연산의 일부를 미리 수행할 수 있고, 이전 사이클에서 이미 수행된 연산에 따라 현재 사이클에서의 연산을 생략할 수 있다. 본 발명에 따른 KES 알고리즘에서는 오류가 발견되지 않은 사이클에 대하여는 오류 복구 단계를 생략함으로써 연산 자원의 불필요한 소비를 줄이고 지연 시간을 감축할 수 있다. 따라서, 통신 시스템 또는 메모리 시스템의 효율성이 향상될 수 있다.
도 1은 통신 시스템의 일 실시예를 도시한 개념도이다.
도 2는 통신 시스템을 구성하는 통신 노드의 일 실시예를 도시한 블록도이다.
도 3은 송신 통신 노드 및 수신 통신 노드를 포함하는 통신 시스템의 일 실시예를 도시한 블록도이다.
도 4a 및 4b는 메모리 시스템의 일 실시예를 도시한 블록도이다.
도 5는 BCH(Bose-Chaudhuri-Hocquenghem) 코드가 적용된 디코더의 일 실시예를 설명하기 위한 블록도이다.
도 6은 본 발명의 일 실시예에서 데이터 전송 환경과 키-방정식-풀이(key-equation-solver, KES) 블록에서의 각 회기(iteration) 별 제어 신호의 관계를 설명하기 위한 그래프이다.
도 7a는 KES 블록에서의 연산의 일 실시예를 설명하기 위한 개념도이다.
도 7b 및 7c는 KES 블록에서의 연산 알고리즘의 일 실시예를 설명하기 위한 예시도이다.
도 8a는 본 발명에 따른 KES 블록에서의 연산의 일 실시예를 설명하기 위한 개념도이다.
도 8b, 8c 및 8d는 본 발명에 따른 KES 블록에서의 연산 알고리즘의 일 실시예를 설명하기 위한 예시도이다.
도 9a 및 9b는 본 발명에 따른 KES 알고리즘의 일 실시예를 지원하는 회로의 구조 및 연산 엘리먼트(processing element, PE)의 구조를 도시한 구조도이다.
도 10a 및 10b는 본 발명에 따른 KES 알고리즘의 일 실시예를 지원하는 PE의 구조를 통하여 에너지 소모를 최적화하는 기술을 설명하기 위한 구조도이다.
도 11은 본 발명에 따른 KES 알고리즘이 적용된 오류 정정 방법의 일 실시예를 설명하기 위한 흐름도이다.
도 12a 및 12b는 본 발명에 따른 KES 알고리즘의 기술적 효과를 설명하기 위한 실험 그래프이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명에 따른 실시예들이 적용되는 통신 시스템(communication system) 또는 메모리 시스템(memory system)이 설명될 것이다. 본 발명에 따른 실시예들이 적용되는 통신 시스템 또는 메모리 시스템은 아래 설명된 내용에 한정되지 않으며, 본 발명에 따른 실시예들은 다양한 통신 시스템에 적용될 수 있다. 여기서, 통신 시스템은 통신 네트워크(network)와 동일한 의미로 사용될 수 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 통신 시스템의 일 실시예를 도시한 개념도이다.
도 1을 참조하면, 통신 시스템(100)은 복수의 통신 노드들(110-1, 110-2, 110-3, 120-1, 120-2, 130-1, 130-2, 130-3, 130-4, 130-5, 130-6)을 포함할 수 있다. 또한, 통신 시스템(100)은 코어 네트워크(core network)(예를 들어, S-GW(serving-gateway), P-GW(PDN(packet data network)-gateway), MME(mobility management entity))를 더 포함할 수 있다.
복수의 통신 노드들은 3GPP(3rd generation partnership project) 표준에서 규정된 4G 통신(예를 들어, LTE(long term evolution), LTE-A(advanced)), 5G 통신 등을 지원할 수 있다. 4G 통신은 6GHz 이하의 주파수 대역에서 수행될 수 있고, 5G 통신은 6GHz 이하의 주파수 대역뿐 만 아니라 6GHz 이상의 주파수 대역에서 수행될 수 있다. 예를 들어, 4G 통신 및 5G 통신을 위해 복수의 통신 노드들은 CDMA(code division multiple access) 기반의 통신 프로토콜, WCDMA(wideband CDMA) 기반의 통신 프로토콜, TDMA(time division multiple access) 기반의 통신 프로토콜, FDMA(frequency division multiple access) 기반의 통신 프로토콜, OFDM(orthogonal frequency division multiplexing) 기반의 통신 프로토콜, Filtered OFDM 기반의 통신 프로토콜, CP(cyclic prefix)-OFDM 기반의 통신 프로토콜, DFT-s-OFDM(discrete Fourier transform-spread-OFDM) 기반의 통신 프로토콜, OFDMA(orthogonal frequency division multiple access) 기반의 통신 프로토콜, SC(single carrier)-FDMA 기반의 통신 프로토콜, NOMA(Non-orthogonal Multiple Access), GFDM(generalized frequency division multiplexing) 기반의 통신 프로토콜, FBMC(filter bank multi-carrier) 기반의 통신 프로토콜, UFMC(universal filtered multi-carrier) 기반의 통신 프로토콜, SDMA(Space Division Multiple Access) 기반의 통신 프로토콜 등을 지원할 수 있다. 복수의 통신 노드들 각각은 다음과 같은 구조를 가질 수 있다.
도 2는 통신 시스템을 구성하는 통신 노드의 일 실시예를 도시한 블록도이다.
도 2를 참조하면, 통신 노드(200)는 적어도 하나의 프로세서(210), 메모리(220) 및 네트워크와 연결되어 통신을 수행하는 송수신 장치(230)를 포함할 수 있다. 또한, 통신 노드(200)는 입력 인터페이스 장치(240), 출력 인터페이스 장치(250), 저장 장치(260) 등을 더 포함할 수 있다. 통신 노드(200)에 포함된 각각의 구성 요소들은 버스(bus)(270)에 의해 연결되어 서로 통신을 수행할 수 있다. 다만, 통신 노드(200)에 포함된 각각의 구성요소들은 공통 버스(270)가 아니라, 프로세서(210)를 중심으로 개별 인터페이스 또는 개별 버스를 통하여 연결될 수도 있다. 예를 들어, 프로세서(210)는 메모리(220), 송수신 장치(230), 입력 인터페이스 장치(240), 출력 인터페이스 장치(250) 및 저장 장치(260) 중에서 적어도 하나와 전용 인터페이스를 통하여 연결될 수도 있다.
프로세서(210)는 메모리(220) 및 저장 장치(260) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(210)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(220) 및 저장 장치(260) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(220)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.
다시 도 1을 참조하면, 통신 시스템(100)은 복수의 기지국들(base stations)(110-1, 110-2, 110-3, 120-1, 120-2), 복수의 단말들(130-1, 130-2, 130-3, 130-4, 130-5, 130-6)을 포함할 수 있다. 기지국(110-1, 110-2, 110-3, 120-1, 120-2) 및 단말(130-1, 130-2, 130-3, 130-4, 130-5, 130-6)을 포함하는 통신 시스템(100)은 "액세스 네트워크"로 지칭될 수 있다. 제1 기지국(110-1), 제2 기지국(110-2) 및 제3 기지국(110-3) 각각은 매크로 셀(macro cell)을 형성할 수 있다. 제4 기지국(120-1) 및 제5 기지국(120-2) 각각은 스몰 셀(small cell)을 형성할 수 있다. 제1 기지국(110-1)의 셀 커버리지(cell coverage) 내에 제4 기지국(120-1), 제3 단말(130-3) 및 제4 단말(130-4)이 속할 수 있다. 제2 기지국(110-2)의 셀 커버리지 내에 제2 단말(130-2), 제4 단말(130-4) 및 제5 단말(130-5)이 속할 수 있다. 제3 기지국(110-3)의 셀 커버리지 내에 제5 기지국(120-2), 제4 단말(130-4), 제5 단말(130-5) 및 제6 단말(130-6)이 속할 수 있다. 제4 기지국(120-1)의 셀 커버리지 내에 제1 단말(130-1)이 속할 수 있다. 제5 기지국(120-2)의 셀 커버리지 내에 제6 단말(130-6)이 속할 수 있다.
여기서, 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 노드B(NodeB), 고도화 노드B(evolved NodeB), gNB, ng-eNB, BTS(base transceiver station), 무선 기지국(radio base station), 무선 트랜시버(radio transceiver), 액세스 포인트(access point), 액세스 노드(node), RSU(road side unit), RRH(radio remote head), TP(transmission point), TRP(transmission and reception point), f(flexible)-TRP 등으로 지칭될 수 있다. 복수의 단말들(130-1, 130-2, 130-3, 130-4, 130-5, 130-6) 각각은 UE(user equipment), 터미널(terminal), 액세스 터미널(access terminal), 모바일 터미널(mobile terminal), 스테이션(station), 가입자 스테이션(subscriber station), 모바일 스테이션(mobile station), 휴대 가입자 스테이션(portable subscriber station), 노드(node), 디바이스(device), IoT(internet of things) 기능을 지원하는 장치, 탑재 장치(mounted module/device/terminal), OBU(on board unit) 등으로 지칭될 수 있다.
한편, 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 서로 다른 주파수 대역에서 동작할 수 있고, 또는 동일한 주파수 대역에서 동작할 수 있다. 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 아이디얼 백홀 링크(ideal backhaul link) 또는 논(non)-아이디얼 백홀 링크를 통해 서로 연결될 수 있고, 아이디얼 백홀 링크 또는 논-아이디얼 백홀 링크를 통해 서로 정보를 교환할 수 있다. 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 아이디얼 백홀 링크 또는 논-아이디얼 백홀 링크를 통해 코어 네트워크와 연결될 수 있다. 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 코어 네트워크로부터 수신한 신호를 해당 단말(130-1, 130-2, 130-3, 130-4, 130-5, 130-6)에 전송할 수 있고, 해당 단말(130-1, 130-2, 130-3, 130-4, 130-5, 130-6)로부터 수신한 신호를 코어 네트워크에 전송할 수 있다.
또한, 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 MIMO 전송(예를 들어, SU(single user)-MIMO, MU(multi user)-MIMO, 대규모(massive) MIMO 등), CoMP(coordinated multipoint) 전송, CA(carrier aggregation) 전송, 비면허 대역(unlicensed band)에서 전송, 단말 간 직접 통신(device to device communication, D2D)(또는, ProSe(proximity services)) 등을 지원할 수 있다. 여기서, 복수의 단말들(130-1, 130-2, 130-3, 130-4, 130-5, 130-6) 각각은 기지국(110-1, 110-2, 110-3, 120-1, 120-2)과 대응하는 동작, 기지국(110-1, 110-2, 110-3, 120-1, 120-2)에 의해 지원되는 동작을 수행할 수 있다. 예를 들어, 제2 기지국(110-2)은 SU-MIMO 방식을 기반으로 신호를 제4 단말(130-4)에 전송할 수 있고, 제4 단말(130-4)은 SU-MIMO 방식에 의해 제2 기지국(110-2)으로부터 신호를 수신할 수 있다. 또는, 제2 기지국(110-2)은 MU-MIMO 방식을 기반으로 신호를 제4 단말(130-4) 및 제5 단말(130-5)에 전송할 수 있고, 제4 단말(130-4) 및 제5 단말(130-5) 각각은 MU-MIMO 방식에 의해 제2 기지국(110-2)으로부터 신호를 수신할 수 있다.
제1 기지국(110-1), 제2 기지국(110-2) 및 제3 기지국(110-3) 각각은 CoMP 방식을 기반으로 신호를 제4 단말(130-4)에 전송할 수 있고, 제4 단말(130-4)은 CoMP 방식에 의해 제1 기지국(110-1), 제2 기지국(110-2) 및 제3 기지국(110-3)으로부터 신호를 수신할 수 있다. 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 자신의 셀 커버리지 내에 속한 단말(130-1, 130-2, 130-3, 130-4, 130-5, 130-6)과 CA 방식을 기반으로 신호를 송수신할 수 있다. 제1 기지국(110-1), 제2 기지국(110-2) 및 제3 기지국(110-3) 각각은 제4 단말(130-4)과 제5 단말(130-5) 간의 D2D를 제어할 수 있고, 제4 단말(130-4) 및 제5 단말(130-5) 각각은 제2 기지국(110-2) 및 제3 기지국(110-3) 각각의 제어에 의해 D2D를 수행할 수 있다.
한편, 통신 시스템에서 기지국은 통신 프로토콜의 모든 기능들(예를 들어, 원격 무선 송수신 기능, 기저대역(baseband) 처리 기능)을 수행할 수 있다. 또는, 통신 프로토콜의 모든 기능들 중에서 원격 무선 송수신 기능은 TRP(transmission reception point)(예를 들어, f(flexible)-TRP)에 의해 수행될 수 있고, 통신 프로토콜의 모든 기능들 중에서 기저대역 처리 기능은 BBU(baseband unit) 블록에 의해 수행될 수 있다. TRP는 RRH(remote radio head), RU(radio unit), TP(transmission point) 등일 수 있다. BBU 블록은 적어도 하나의 BBU 또는 적어도 하나의 DU(digital unit)를 포함할 수 있다. BBU 블록은 "BBU 풀(pool)", "집중화된(centralized) BBU" 등으로 지칭될 수 있다. TRP는 유선 프론트홀(fronthaul) 링크 또는 무선 프론트홀 링크를 통해 BBU 블록에 연결될 수 있다. 백홀 링크 및 프론트홀 링크로 구성되는 통신 시스템은 다음과 같을 수 있다. 통신 프로토콜의 기능 분리 (function split) 기법이 적용되는 경우, TRP는 BBU의 일부 기능 또는 MAC/RLC의 일부 기능을 선택적으로 수행할 수 있다.
5G(또s는 NR) 이동통신 시스템에서는, 통신 시스템 표준의 요구사항을 만족하기 위하여 밀리미터파(mm-파) 등 높은 주파수 대역의 사용이 필요할 수 있다. 그런데 mm-파의 경우, 낮은 주파수 대역에서보다 신호 감쇠가 크고, 회절, 투과 등에 의하여 경로 손실(path loss)이 크게 나타날 수 있고, 옥외/옥내 침투 손실 등도 크게 나타날 수 있다. 이러한 문제를 해결하기 위하여, 5G 통신 시스템에서는 스몰 셀 네트워크, 지향성 빔포밍 등의 기술을 적용하여 mm-파 통신의 효율성 및 품질(ex. 신호 대 잡음비(SNR) 등)을 향상시킬 수 있다. 그런데, 스몰 셀 네트워크가 적용되어 복수의 스몰 셀 기지국이 존재하는 환경에서 지향성 빔포밍을 위한 빔 스캐닝 동작 등은 통신 시스템의 복잡성을 높이는 결과를 낳을 수 있다. 따라서, 이러한 동작들을 효율적으로 수행함으로써 통신 시스템의 효율을 향상시킬 수 있는 통신 기술이 요구될 수 있다.
도 3은 송신 통신 노드 및 수신 통신 노드를 포함하는 통신 시스템의 일 실시예를 도시한 블록도이다.
도 3을 참조하면, 통신 시스템은 신호를 전송하는 송신 통신 노드(310), 송신 통신 노드(310)로부터 신호를 수신하는 수신 통신 노드(320) 및 송신 통신 노드(310)와 수신 통신 노드(320) 사이에서 신호가 전달될 수 있도록 하는 채널(330)을 포함할 수 있다. 송신 통신 노드(310)는 인코더(encoder)(312) 및 변조기(modulator)(314)를 포함할 수 있고, 수신 통신 노드(320)는 복조기(demodulator)(322) 및 디코더(decoder)(324)를 포함할 수 있다.
송신 통신 노드(310)는 수신 통신 노드(320)로 정보 비트를 전송하기 전에 부호화 과정 및 변조 과정을 수행할 수 있다. 인코더(312)는 정보 비트에 대한 부호화 과정을 수행할 수 있다. 구체적으로, 인코더(312)는 정보 비트를 다수의 코드블록들을 포함하는 코드워드로 부호화할 수 있다. 이 때, 인코더(312)는 정보 비트를 작은 블록들로 분할할 수 있다. 인코더(312)는 분할된 블록들을 임의의 개수로 묶어 블록집합을 구성할 수 있다. 블록의 개수는 통신망의 채널환경, 송신 통신 노드(310)와 수신 통신 노드(320)의 성능 정보 및 응용 프로그램의 요구사항 등에 의해 결정될 수 있다. 인코더(312)는 블록집합 단위로 부호화를 수행할 수 있다. 인코더(312)는 부호화된 코드워드를 변조기(314)로 전송할 수 있다.
변조기(314)는 코드워드를 변조하여 변조 심볼(symbol)을 생성할 수 있다. 변조기(314)는 다양한 변조방법을 이용하여 코드워드를 심볼들로 변조할 수 있다. 변조는 신호 정보를 전송매체의 채널 특성에 맞게 신호(정보)의 세기나 변위, 주파수 또는 위상 등을 적합한 형태로 변환하는 것을 의미할 수 있다. 변조는 데이터를 담은 신호를 전송되는 채널에 알맞은 파형으로 변환하는 과정일 수 있다.
송신 통신 노드(310)는 변조된 심볼들을 시간/주파수 자원들에 맵핑(mapping)하고, 맵핑된 심볼에 기초하여 생성된 신호를 송신 통신 노드(310)와 수신 통신 노드(320) 사이에 형성된 채널(330)을 통해 수신 통신 노드(320)로 전송할 수 있다. 구체적으로, 송신 통신 노드(310)의 안테나를 통해 전파된 신호들은 채널(330)을 통해 수신 통신 노드(320)의 안테나로 전송될 수 있다. 이때, 채널상에서 잡음(noise)이 발생할 수 있다.
수신 통신 노드(320)의 안테나를 통해 수신한 신호는 복조기(322)로 전달될 수 있다. 복조기(322)는 채널 환경에 따라 결정된 복조 방법에 따라 신호의 복조를 수행할 수 있다. 복조기(322)는 신호를 복조하여 코드워드를 생성할 수 있고, 복조된 코드워드를 디코더(324)로 전송할 수 있다. 복조된 코드워드를 전달받은 디코더(324)는 코드워드를 복호화하여 출력 정보 비트를 획득할 수 있다.
인코더(312)에서 데이터를 코드워드로 인코딩할 때, 오류 정정 부호를 적용하여 인코딩할 수 있다. 이를테면, 인코더(312)에서 데이터를 코드워드로 인코딩할 때, BCH(Bose-Chaudhuri-Hocquenghem) 코드 방식으로 인코딩할 수 있다. 이 경우, 디코더(324)에서 코드워드가 디코딩될 때, 코드워드에 오류가 있는지 여부가 용이하게 확인될 수 있다. 코드워드에서 오류가 발견되면 오류 정정 동작 또는 오류 정정 알고리즘을 통하여 정정 또는 복구되어 정상적인 데이터로 복구될 수 있다.
도 4a 및 4b는 메모리 시스템의 일 실시예를 도시한 블록도이다.
도 4a 및 4b를 참조하면, 메모리 시스템(400)은 메모리(410)와 메모리 제어 장치(420)를 포함할 수 있다. 메모리 제어 장치(420)는 내부 인터페이스부(430), 부호/복호화부(440), 및 버퍼부(450)를 포함할 수 있다. 부호/복호화부(440)는 인코더(441) 및 디코더(442)를 포함할 수 있다. 버퍼부(450)는 쓰기용 버퍼(451) 및 읽기용 버퍼(452)를 포함할 수 있다. 본 발명의 실시예에서 메모리 시스템은 SCM(storage class memory) 시스템일 수 있으나, 여기에 국한되지 않는다.
도 4a를 참조하면, 메모리 시스템(400)은 메모리 제어 장치(420)를 통하여 프로세서(460)로부터 전달된 데이터를 메모리(410)에 저장할 수 있다. 쓰기용 버퍼(451)는 프로세서(460)로부터 데이터를 수신하여 일시적으로 저장할 수 있다. 쓰기용 버퍼(451)에에 저장된 데이터는 인코더(441)를 통하여 코드워드로 인코딩될 수 있다. 인코딩된 코드워드는 내부 인터페이스부(430)를 통하여 메모리(410)로 전달되어 메모리(410)에 저장될 수 있다.
도 4b를 참조하면, 메모리 시스템(400)은 메모리 제어 장치(420)를 통하여 메모리(410)에 저장된 데이터를 읽어내어 프로세서(460)로 전달할 수 있다. 내부 인터페이스부(430)는 메모리(410)에 저장된 코드워드를 읽어내어 디코더(442)에 전달할 수 있다. 메모리(410)로부터 읽어진 코드워드는 디코더(442)를 통하여 디코딩될 수 있다. 디코딩된 데이터는 읽기용 버퍼(452)에 일시적으로 저장될 수 있다. 읽기용 버퍼(452)에 저장된 데이터는 프로세서(460)에 전달될 수 있다.
인코더(441)에서 데이터를 코드워드로 인코딩할 때, 오류 정정 부호를 적용하여 인코딩할 수 있다. 이를테면, 인코더(441)에서 데이터를 코드워드로 인코딩할 때, BCH(Bose-Chaudhuri-Hocquenghem) 코드 방식으로 인코딩할 수 있다. 이 경우, 디코더(442)에서 코드워드가 디코딩될 때, 코드워드에 오류가 있는지 여부가 용이하게 확인될 수 있다. 코드워드에서 오류가 발견되면 오류 정정 동작 또는 오류 정정 알고리즘을 통하여 정정 또는 복구되어 정상적인 데이터로 복구될 수 있다.
도 5는 BCH(Bose-Chaudhuri-Hocquenghem) 코드가 적용된 디코더의 일 실시예를 설명하기 위한 블록도이다.
도 5를 참조하면, 본 발명에 따른 시스템은 BCH 코드가 적용된 디코더를 포함할 수 있다. BCH 코드가 적용된 디코더를 BCH 디코더(520)라 할 수 있다. 본 발명에 따른 통신 시스템 또는 메모리 시스템에서는 BCH 디코더(520)가 적용되어, 데이터를 보호하고 시스템의 무결성을 보장할 수 있다.
본 발명에 따른 시스템은 통신 시스템일 수 있다. 수신 노드는 송신 노드에서 송신된 신호를 수신할 수 있다. 수신 노드는 수신한 신호를 복조하여 코드워드를 획득할 수 있다. 획득된 코드워드는 입력비트(510)로서 BCH 디코더에 입력될 수 있다. 이를테면, 본 발명에 따른 시스템은 도 3을 참조하여 설명한 통신 시스템과 동일 또는 유사할 수 있다. 이 경우, 도 3에 도시된 디코더(324)는 본 발명에 따른 BCH 디코더(520)로 구성될 수 있다. 또는, 도 3에 도시된 디코더(324)는 본 발명에 따른 BCH 디코더(520)를 포함하도록 구성될 수 있다. BCH 방식으로 인코딩된 코드워드가 무선 채널을 통해 송수신되고 복조되는 과정에서 일부 오류 비트(511)가 발생할 수 있다. 입력 비트(510)에 포함된 오류 비트(511)는 BCH 디코더(520)를 거치며 정정될 수 있다. BCH 디코더(520)는 입력비트(510)를 디코딩하여 출력비트(530)를 출력할 수 있다. 출력비트(530)는 통신 시스템에서 전송하고자 했던 전송데이터일 수 있다.
한편, 본 발명에 따른 시스템은 메모리 시스템일 수 있다. 수신 노드는 송신 노드에서 송신된 신호를 수신할 수 있다. 메모리 시스템의 내부 인터페이스부는 메모리에 저장된 코드워드를 읽어들일 수 있다. 내부 인터페이스부에서 읽어들인 코드워드는 입력비트(510)로서 BCH 디코더에 입력될 수 있다. 일 실시예에서, 본 발명에 따른 시스템은 도 4a 및 도 4b를 참조하여 설명한 메모리 시스템과 동일 또는 유사할 수 있다. 이 경우, 도 4a 및 도 4b에 도시된 디코더(442)는 본 발명에 따른 BCH 디코더(520)로 구성될 수 있다. 또는, 도 4a 및 도 4b에 도시된 디코더(442)는 본 발명에 따른 BCH 디코더(520)를 포함하도록 구성될 수 있다. BCH 방식으로 인코딩된 코드워드가 내부 인터페이스부를 통해 메모리에 저장되고 다시 읽어들여지는 과정에서 일부 오류 비트(511)가 발생할 수 있다. 입력 비트(510)에 포함된 오류 비트(511)는 BCH 디코더(520)를 거치며 정정될 수 있다. BCH 디코더(520)는 입력비트(510)를 디코딩하여 출력비트(530)를 출력할 수 있다. 출력비트(530)는 메모리에 저장하고자 했던 데이터일 수 있다.
입력 비트(510)는 BCH 디코더(520)를 통해 디코딩되기 위하여 BCH 방식에 따라 인코딩된 BCH 코드일 수 있다. BCH 코드의 구조는 BCH(n, k, t) 또는 (n, k, t) 와 같이 표현될 수 있다. 여기서, n은 원 데이터와 패리티 검사를 위한 심볼 전체를 포함한 전체 코드워드의 심볼 수를 의미할 수 있다. k는 실제 데이터의 심볼 수를 의미할 수 있다, t는 코드워드 중 정정 가능한 최대 오류 심볼의 수를 의미할 수 있다.
BCH 디코더(520)는 신드롬 계산(syndrome calculation, SC) 블록(521), 키-방정식-풀이(key-equation-solver, KES) 블록(523), 및 치엔 탐색(chien search, CS) 블록(525)을 포함할 수 있다. SC 블록(521)과 KES 블록(523), 및 CS 블록(525)은 직렬로 연결되어 입력 비트(510)의 디코딩 수행하기 위하여 직렬로 연결될 수 있다.
SC 블록(521)은 입력 비트(510)를 입력 받아서, 오류를 찾기 위한 수열 또는 방정식을 생성할 수 있다. 이를 '신드롬 수열' 또는 '신드롬 방정식'이라 할 수 있다. (n, k, t) 구조의 BCH 코드에서, 신드롬 방정식
Figure 112020063267572-pat00081
는 수학식 1과 같이 표현될 수 있다.
Figure 112020063267572-pat00082
수학식 1을 참조하면, 신드롬 방정식
Figure 112020063267572-pat00083
의 우변은
Figure 112020063267572-pat00084
개의 항을 가지는 다항식일 수 있다. i번째 항의 계수는
Figure 112020063267572-pat00085
와 같이 표현될 수 있다. 각 항의 계수
Figure 112020063267572-pat00086
를 '신드롬'이라고 부를 수 있다.
KES(523) 블록은 SC 블록(521)에서 생성된 신드롬 방정식
Figure 112020063267572-pat00087
를 입력 받아서 오류를 정정을 위한 동작을 수행할 수 있다. 이를테면, KES 블록(523)은 신드롬 방정식
Figure 112020063267572-pat00088
를 입력 받아서 오류 위치 다항식(error-locator polynomial)
Figure 112020063267572-pat00089
를 생성할 수 있다. 오류 위치 다항식
Figure 112020063267572-pat00090
는 수학식 2와 같이 표현될 수 있다
Figure 112020063267572-pat00091
CS 블록(525)은 KES 블록(523)에서 생성된 오류 위치 다항식
Figure 112020063267572-pat00092
를 검사하여 오류 위치를 찾을 수 있다. 오류 비트(511)의 위치가 검출되면 해당 위치의 비트를 0에서 1로, 또는 1에서 0으로 수정하여 오류를 바로잡을 수 있다. BCH 디코더(520)는 이와 같이 오류가 바로잡힌 출력 비트(530)를 출력할 수 있다.
SC 블록(521) 및 CS 블록(525)에서의 연산은 병렬적으로 수행될 수 있다. 따라서, 병렬 인자를 최대로 하면 적은 사이클(이를테면, 1 사이클)만에 연산이 완료될 수 있다. 한편 KES 블록(523)에서의 연산은 직렬적으로 수행되어, 직전/직후 단계의 연산이 상호간 연관성을 가질 수 있다. 다르게 표현하면, KES 블록(523)에서는 각 사이클에서의 연산이 직전 사이클에서 계산된 값을 기반으로 수행될 수 있다. 최대
Figure 112020063267572-pat00093
개의 오류를 정정할 수 있는 (n, k, t) 구조의 BCH 코드가 적용된 KES 블록(523)에서는
Figure 112020063267572-pat00094
회의 사이클이 소모되어야 연산이 완료될 수 있다. 따라서, KES 블록(523)에서는 SC 블록(521) 및 CS 블록(525)에서보다 연산에 소요되는 지연 시간을 줄이기 어려울 수 있다. KES 블록(523)에서의 지연 시간을 줄이기 위하여
Figure 112020063267572-pat00095
값을 낮은 값으로 설정할 경우, BCH 코드의 오류 정정 능력이 저하될 수 있다 한편, BCH 코드의 오류 정정 능력을 향상시키기 위하여
Figure 112020063267572-pat00096
값을 높은 값으로 설정할 경우, KES 블록(523)에서 많은 지연 시간이 발생할 수 있다.
본 발명에서는 이러한 문제를 해결하기 위하여 언폴딩 기법이 적용된 KES 구조(Unfolded-KES Architecture), 또는 언폴딩 기법이 적용된 KES 구조에서의 오류 정정 동작을 제안한다. 본 발명에서 제안하는 언폴딩 기법은, 복수 개의 사이클에 대한 연산을 한 번에 수행할 수 있는 것을 의미한다. 이를테면, 본 발명의 일 실시예에 따른 KES 블록 또는 KES 알고리즘에서, 종래에 2개의 사이클을 통해 수행되던 연산이 한 사이클에서 수행될 수 있다. 이를 통하여 KES 블록(523)에서의 연산으로 인해 발생하는 지연 시간이 효과적으로 단축될 수 있다.
도 6은 본 발명의 일 실시예에서 데이터 전송 환경과 키-방정식-풀이(key-equation-solver, KES) 블록에서의 각 회기(iteration) 별 제어 신호의 관계를 설명하기 위한 그래프이다.
통신 시스템 또는 메모리 시스템에 있어서, 데이터가 전송되는 환경에 따라 에러 발생 비율이 달라질 수 있다. 데이터 전송 환경이 우수할 경우, RBER(raw bit error rate) 값이 낮을 수 있다. 한편, 데이터 전송 환경이 우수하지 못할 경우, RBER 값이 높을 수 있다.
최대
Figure 112020063267572-pat00097
개의 오류를 정정할 수 있는 (n, k, t) 구조의 BCH 코드가 적용된 KES 블록에서는, 오류 정정 동작을 완료하기 위해 0부터
Figure 112020063267572-pat00098
까지
Figure 112020063267572-pat00099
개의 회기(iteration) 사이에서
Figure 112020063267572-pat00100
회 만큼의 연산 사이클이 수행되어야 할 수 있다. 각 회기 별로 확인된 조건에 따라 제어 신호가 생성될 수 있다. 이를테면, 특정 회기에 있어서 오류가 감지되지 않을 경우, 해당 회기에 대하여 'T'라는 제어 신호가 부여될 수 있다. 한편, 특정 회기에 있어서 오류가 감지될 경우, 해당 회기에 대하여 'F'라는 제어 신호가 부여될 수 있다.
도 5를 참조하여 설명한 바와 같이, 본 발명의 일 실시예에 따른 KES 블록에는 언폴딩 기법이 적용될 수 있다. 이를테면, 본 발명의 일 실시예에 따른 KES 블록 또는 KES 알고리즘에서, 2개의 연속된 회기에 대한 연산이 한 번에 수행될 수 있다. 여기서, 2개의 연속된 회기에 대한 제어 신호가 하나로 묶여서 부여될 수 있다. 이를테면,
Figure 112020063267572-pat00101
번째 및
Figure 112020063267572-pat00102
번째 회기에서 오류가 감지되지 않을 경우, 두 회기에 대한 제어 신호가 'TT'와 같이 부여될 수 있다. 한편,
Figure 112020063267572-pat00103
번째 회기에 있어서 오류가 감지되지 않고
Figure 112020063267572-pat00104
번째 회기에 있어서 오류가 감지될 경우, 두 회기에 대한 제어 신호가 'TF'와 같이 부여될 수 있다. 한편,
Figure 112020063267572-pat00105
번째 회기에 있어서 오류가 감지되고
Figure 112020063267572-pat00106
번째 회기에 있어서 오류가 감지되지 않을 경우, 두 회기에 대한 제어 신호가 'FT'와 같이 부여될 수 있다. 한편,
Figure 112020063267572-pat00107
번째 및
Figure 112020063267572-pat00108
번째 회기에 있어서 오류가 감지될 경우, 두 회기에 대한 제어 신호가 'FF'와 같이 부여될 수 있다.
도 6을 참조하면, 데이터 전송 환경이 우수하여 RBER이 낮을수록 'TT' 제어신호의 발생 비율이 높을 수 있다. 한편, 데이터 전송 환경이 우수하지 않아서 RBER이 높을수록 'FF' 제어신호의 발생비율이 높을 수 있다. 여기서, 본 발명의 일 실시예에 따르면 제어 신호가 'TT'인 두 회기에 대한 연산은 한 사이클 내에서 수행될 수 있다. 또는, 제어 신호가 'TT'인 두 회기에 대한 연산은 미리 연산된 데이터를 이용하여 데이터 처리 시간이 줄어들도록 할 수 있다. 즉, 본 발명에 따른 통신 시스템 또는 메모리 시스템에서, 데이터 전송 환경이 우수하여 RBER이 낮고 'TT' 제어신호의 발생 비율이 높을수록 KES 단계에서의 연산으로 인해 발생하는 지연시간을 많이 감소시킬 수 있다.
도 7a는 KES 블록에서의 연산 경로의 일 실시예를 설명하기 위한 개념도이고, 도 7b 및 7c는 KES 블록에서의 연산 알고리즘의 일 실시예를 설명하기 위한 예시도이다.
도 7a를 참조하면, 최대
Figure 112020063267572-pat00109
개의 오류를 정정할 수 있는 (n, k, t) 구조의 BCH 코드가 적용된 KES 블록에서는 오류 정정 동작을 완료하기 위해 0 부터
Figure 112020063267572-pat00110
까지
Figure 112020063267572-pat00111
개의 회기(iteration) 사이에서
Figure 112020063267572-pat00112
회 만큼의 연산 사이클이 수행되어야 할 수 있다. 각 사이클에서는 각 회기에 대한 조건 함수
Figure 112020063267572-pat00113
의 값이 확인될 수 있다.
Figure 112020063267572-pat00114
일 경우, 해당 회기에서 오류가 감지되지 않았다는 것을 의미할 수 있다. 한편,
Figure 112020063267572-pat00115
일 경우, 해당 회기에서 오류가 감지되었다는 것을 의미할 수 있다. 직전 회기에서 확인된
Figure 112020063267572-pat00116
의 값에 따라 다음 사이클에서의 연산 경로가 달라질 수 있다. 이를테면,
Figure 112020063267572-pat00117
일 경우와
Figure 112020063267572-pat00118
일 경우에 각각 다음 사이클에서의 연산 경로가 달라질 수 있다.
구체적인 연산 알고리즘에 있어서, 종래에는 KES 블록에서의 연산에 벨르캄프-메시(Berlekamp-Massey, BM) 알고리즘이 사용되었다. KES 블록의 일 실시예에서는 BM 알고리즘의 효율성을 개선한 '간략화된 반전없는 벨르캄프-메시'(Simplified inversionless Berlekamp-Massey, SiBM) 알고리즘이 사용될 수 있다. 도 7b에는 SiBM 알고리즘의 일 실시예가 도시되어 있다.
7b를 참조하면, 최대
Figure 112020063267572-pat00119
개의 오류를 정정할 수 있는 (n, k, t) 구조의 BCH 코드가 적용된 KES 블록에는, 수학식 1을 참조하여 설명한 것과 같은 신드롬 방정식
Figure 112020063267572-pat00120
가 입력될 수 있다. KES 블록은 신드롬 방정식
Figure 112020063267572-pat00121
를 입력받아서 수학식 2를 참조하여 설명한 것과 같은 오류 위치 다항식
Figure 112020063267572-pat00122
를 생성할 수 있다. 이 과정을 수행하기 위하여, 수학식 3의
Figure 112020063267572-pat00123
및 수학식 4의
Figure 112020063267572-pat00124
와 같은
Figure 112020063267572-pat00125
-차 다항식이 추가로 생성될 수 있다.
Figure 112020063267572-pat00126
Figure 112020063267572-pat00127
다르게 표현하면, KES 블록은 신드롬 방정식
Figure 112020063267572-pat00128
를 구성하는
Figure 112020063267572-pat00129
개의 항의 계수
Figure 112020063267572-pat00130
를 입력 받아서, 오류 위치 다항식
Figure 112020063267572-pat00131
를 구성하는
Figure 112020063267572-pat00132
개의 항의 계수
Figure 112020063267572-pat00133
를 생성할 수 있다. 이 과정에서 델타 함수
Figure 112020063267572-pat00134
및 세타 함수
Figure 112020063267572-pat00135
이 정의되어 사용될 수 있다. 또한,
Figure 112020063267572-pat00136
Figure 112020063267572-pat00137
등의 함수들이 추가로 정의되어 사용될 수 있다. 여기서
Figure 112020063267572-pat00138
은 각각의 연산 사이클을 구성하는 복수 개의 회기(iteration)의 인덱스를 의미할 수 있다.
Figure 112020063267572-pat00139
은 델타 함수
Figure 112020063267572-pat00140
의 업데이트를 위하여 사용될 수 있다.
Figure 112020063267572-pat00141
은 조건 함수
Figure 112020063267572-pat00142
의 연산을 위하여 사용될 수 있다. 이를테면, 조건 함수
Figure 112020063267572-pat00143
Figure 112020063267572-pat00144
과 같이
Figure 112020063267572-pat00145
Figure 112020063267572-pat00146
등의 함수값에 기초한 불리안 연산을 통해 정의될 수 있다.
구체적으로는, KES 블록의 일 실시예에 따른 SiBM 알고리즘에는 신드롬 방정식
Figure 112020063267572-pat00147
를 구성하는
Figure 112020063267572-pat00148
개의 항의 계수
Figure 112020063267572-pat00149
가 입력될 수 있다(S710).
Figure 112020063267572-pat00150
가 입력되면, 이에 기초하여 각 함수들의 회기
Figure 112020063267572-pat00151
에서의 초기값들이 정의될 수 있다(S720). 정의된 초기값들에 기초하여, 회기
Figure 112020063267572-pat00152
에서부터 회기
Figure 112020063267572-pat00153
까지 복수 개의 회기에 대한 연산이 수행될 수 있다(S730). S730 단계에서는 회기
Figure 112020063267572-pat00154
에 대한 일부 함수값들에 기초하여, 회기
Figure 112020063267572-pat00155
에 대한 델타 함수
Figure 112020063267572-pat00156
와, 회기
Figure 112020063267572-pat00157
에 대한 조건 함수
Figure 112020063267572-pat00158
이 계산될 수 있다. 또한, 계산된
Figure 112020063267572-pat00159
의 값에 따라서, 이후의 연산 경로가 결정 또는 선택될 수 있다. 이를 위해 경로 선택 단계인 SiBM_path_sel(r,cond) 단계가 실행될 수 있다(S740).
S740 단계에서 실행되는 SiBM_path_sel(r,cond) 단계는 도 7c에 도시된 SiBM_path_sel(r,cond) 단계와 동일 또는 유사할 수 있다. 도 7c를 참조하면, SiBM_path_sel(r,cond) 단계에는 회기
Figure 112020063267572-pat00160
에 대한 조건 함수
Figure 112020063267572-pat00161
의 값이 입력될 수 있다(S751). 입력된
Figure 112020063267572-pat00162
값에 기초하여 이후의 연산 경로가 결정 또는 선택될 수 있다.
Figure 112020063267572-pat00163
일 경우, 제어신호 'F'가 부여되어, F 경로의 연산이 수행될 수 있다(S753). 한편,
Figure 112020063267572-pat00164
일 경우 제어신호 'T'가 부여되어, T 경로의 연산이 수행될 수 있다(S755). F 경로 및 T 경로에서는 각각 서로 다른 함수들의 회기
Figure 112020063267572-pat00165
에 대한 일부 함수값들에 기초하여 회기
Figure 112020063267572-pat00166
에 대한 함수값
Figure 112020063267572-pat00167
,
Figure 112020063267572-pat00168
Figure 112020063267572-pat00169
이 계산될 수 있다.
S730 및 S740 단계가 회기
Figure 112020063267572-pat00170
부터
Figure 112020063267572-pat00171
까지
Figure 112020063267572-pat00172
회 반복되어 수행되면, 회기
Figure 112020063267572-pat00173
에 대한 델타 함수값
Figure 112020063267572-pat00174
가 도출될 수 있다. 여기서, 오류 위치 다항식
Figure 112020063267572-pat00175
의 계수인
Figure 112020063267572-pat00176
의 값이
Figure 112020063267572-pat00177
로 정의될 수 있다(S760). 즉, 도 7b 및 7c를 참조하여 설명한 KES 블록에서의 연산 알고리즘은 신드롬 방정식
Figure 112020063267572-pat00178
를 구성하는 계수
Figure 112020063267572-pat00179
를 입력받아,
Figure 112020063267572-pat00180
회의 연산 사이클을 수행하여, 오류 위치 다항식
Figure 112020063267572-pat00181
를 구성하는 계수
Figure 112020063267572-pat00182
를 출력할 수 있다. 특히, 각 회기에 대한 함수값에 기초하여 다음 회기에 대한 함수값이 계산되기 때문에, 회기
Figure 112020063267572-pat00183
부터
Figure 112020063267572-pat00184
까지 사이에서
Figure 112020063267572-pat00185
회의 사이클에 이르는 전 연산 과정이 빠짐없이 수행되어야 할 수 있다.
도 8a는 본 발명에 따른 KES 블록에서의 연산의 일 실시예를 설명하기 위한 개념도이고, 도 8b, 8c 및 8d는 본 발명에 따른 KES 블록에서의 연산 알고리즘의 일 실시예를 설명하기 위한 예시도이다.
도 8a를 참조하면, 본 발명의 일 실시예에 따라 최대
Figure 112020063267572-pat00186
개의 오류를 정정할 수 있는 (n, k, t) 구조의 BCH 코드가 적용된 KES 블록에서는 오류 정정 동작을 완료하기 위해 0 부터
Figure 112020063267572-pat00187
까지
Figure 112020063267572-pat00188
개의 회기(iteration) 사이에서 복수 회의 연산 사이클이 수행되어야 할 수 있다. 도 7a를 참조하여 설명한 바와는 다르게, 본 발명의 일 실시예에서는 각 회기별 조건 함수
Figure 112020063267572-pat00189
의 값에 따라 복수 개의 회기에 대한 연산이 한 사이클 내에서 수행될 수 있다. 즉, 본 발명의 일 실시예에서는 오류 정정 동작을 완료하기 위해
Figure 112020063267572-pat00190
보다 적은 회수만큼의 연산 사이클이 수행될 수 있다.
구체적으로는,
Figure 112020063267572-pat00191
일 경우,
Figure 112020063267572-pat00192
번째 회기에서 오류가 감지되지 않았다는 것을 의미할 수 있다. 이 경우, 해당 회기에 대한 제어 신호가 'T'로 부여될 수 있다. 한편,
Figure 112020063267572-pat00193
일 경우, 해당
Figure 112020063267572-pat00194
번째 회기에서 오류가 감지되었다는 것을 의미할 수 있다. 이 경우, 해당 회기에 대한 제어 신호가 'F'로 부여될 수 있다. 본 발명의 실시예에서는 2개의 인접한 회기에 대한 제어신호가 한 번에 확인될 수 있다. 즉,
Figure 112020063267572-pat00195
번째 및
Figure 112020063267572-pat00196
번째 회기에 대한 조건 함수
Figure 112020063267572-pat00197
Figure 112020063267572-pat00198
의 값이 동시에 확인될 수 있다.
만약
Figure 112020063267572-pat00199
이고
Figure 112020063267572-pat00200
일 경우,
Figure 112020063267572-pat00201
번째 및
Figure 112020063267572-pat00202
번째 회기에서 오류가 감지되지 않았다는 것을 의미할 수 있다. 이 경우, 두 개의 인접한 회기에 대한 제어 신호가 'TT'로 부여될 수 있다. 만약
Figure 112020063267572-pat00203
이고
Figure 112020063267572-pat00204
일 경우,
Figure 112020063267572-pat00205
번째 회기에서는 오류가 감지되지 않고
Figure 112020063267572-pat00206
번째 회기에서는 오류가 감지되었다는 것을 의미할 수 있다. 이 경우, 두 개의 인접한 회기에 대한 제어 신호가 'TF'로 부여될 수 있다. 만약
Figure 112020063267572-pat00207
이고
Figure 112020063267572-pat00208
일 경우,
Figure 112020063267572-pat00209
번째 회기에서는 오류가 감지되고
Figure 112020063267572-pat00210
번째 회기에서는 오류가 감지되지 않았다는 것을 의미할 수 있다. 이 경우, 두 개의 인접한 회기에 대한 제어 신호가 'FT'로 부여될 수 있다. 만약
Figure 112020063267572-pat00211
이고
Figure 112020063267572-pat00212
일 경우,
Figure 112020063267572-pat00213
번째 및
Figure 112020063267572-pat00214
번째 회기에서 오류가 감지되었다는 것을 의미할 수 있다. 이 경우, 두 개의 인접한 회기에 대한 제어 신호가 'FF'로 부여될 수 있다. 본 발명의 실시예에서는 두 개의 인접한 회기에 대하여 부여된 제어 신호값에 따라서 연산 경로가 달라질 수 있다. 특히, 두 개의 인접한 회기에 대한 제어 신호가 'TT'로 부여되었을 경우, 두 개의 인접한 회기에 대한 연산이 한 사이클 내에서 완료될 수 있다. 이를 통하여, 본 발명의 실시예는 종래의 KES 알고리즘에서보다 적은 회수의 사이클을 통하여 오류 정정 동작을 완료할 수 있다는 기술적 효과를 가진다.
본 발명에 따른 KES 블록의 일 실시예에 사용된 알고리즘은 BM 알고리즘의 효율성을 개선한 '간략화된 반전없는 벨르캄프-메시'(Simplified inversionless Berlekamp-Massey, SiBM) 알고리즘의 일종일 수 있다. 도 8b에는 본 발명에 따른 SiBM 알고리즘의 일 실시예가 도시되어 있다.
8b를 참조하면, 최대
Figure 112020063267572-pat00215
개의 오류를 정정할 수 있는 (n, k, t) 구조의 BCH 코드가 적용된 KES 블록에는, 수학식 1을 참조하여 설명한 것과 같은 신드롬 방정식
Figure 112020063267572-pat00216
가 입력될 수 있다. KES 블록은 신드롬 방정식
Figure 112020063267572-pat00217
를 입력받아서 수학식 2를 참조하여 설명한 것과 같은 오류 위치 다항식
Figure 112020063267572-pat00218
를 생성할 수 있다. 이 과정을 수행하기 위하여, 수학식 3의
Figure 112020063267572-pat00219
및 수학식 4의
Figure 112020063267572-pat00220
과 같은
Figure 112020063267572-pat00221
-차 다항식이 추가로 생성될 수 있다. 다르게 표현하면, KES 블록은 신드롬 방정식
Figure 112020063267572-pat00222
를 구성하는 2t개의 항의 계수
Figure 112020063267572-pat00223
를 입력 받아서, 오류 위치 다항식
Figure 112020063267572-pat00224
를 구성하는 t+1개의 항의 계수
Figure 112020063267572-pat00225
를 생성할 수 있다. 이 과정에서 델타 함수
Figure 112020063267572-pat00226
및 세타 함수
Figure 112020063267572-pat00227
이 정의되어 사용될 수 있다. 또한,
Figure 112020063267572-pat00228
Figure 112020063267572-pat00229
등의 함수들이 추가로 정의되어 사용될 수 있다. 여기서
Figure 112020063267572-pat00230
은 각각의 연산 사이클을 구성하는 복수 개의 회기(iteration)의 인덱스를 의미할 수 있다.
Figure 112020063267572-pat00231
은 델타 함수
Figure 112020063267572-pat00232
의 업데이트를 위하여 사용될 수 있다.
Figure 112020063267572-pat00233
은 조건 함수
Figure 112020063267572-pat00234
의 연산을 위하여 사용될 수 있다. 이를테면, 조건 함수
Figure 112020063267572-pat00235
Figure 112020063267572-pat00236
과 같이
Figure 112020063267572-pat00237
Figure 112020063267572-pat00238
등의 함수값에 기초한 불리안 연산을 통해 정의될 수 있다.
도 7b를 참조하여 설명한 바와 달리, 본 발명에 따른 SiBM 알고리즘의 일 실시예에서는 알파 함수
Figure 112020063267572-pat00239
과, 제1 내지 제3 베타 함수
Figure 112020063267572-pat00240
,
Figure 112020063267572-pat00241
,
Figure 112020063267572-pat00242
등의 함수가 추가로 정의되어 연산에 사용될 수 있다. 한편,
Figure 112020063267572-pat00243
번째 회기에 대한 조건 함수
Figure 112020063267572-pat00244
Figure 112020063267572-pat00245
과 같은 불리안 연산을 통해 정의될 수 있다.
구체적으로는, KES 블록의 일 실시예에 따른 SiBM 알고리즘에는 신드롬 방정식
Figure 112020063267572-pat00246
를 구성하는 2t개의 항의 계수
Figure 112020063267572-pat00247
가 입력될 수 있다(S810). S810 단계에서의 동작은 S710 단계에서의 동작과 동일 또는 유사할 수 있다.
Figure 112020063267572-pat00248
가 입력되면, 이에 기초하여 각 함수들의 회기
Figure 112020063267572-pat00249
에서의 초기값들이 정의될 수 있다(S815). S815 단계에서의 동작은 S720 단계에서의 동작과 동일 또는 유사할 수 있다. 본 발명에 따른 SiBM 알고리즘에서는, 추가로 정의된 알파 함수 및 제1 내지 제3 베타 함수의 초기값들이 정의될 수 있다(S820).
정의된 초기값들에 기초하여, 복수 개의 회기에 대한 연산이 수행될 수 있다(S825). 보다 구체적으로는,
Figure 112020063267572-pat00250
범위의 짝수인
Figure 112020063267572-pat00251
을 기준으로,
Figure 112020063267572-pat00252
번째 회기와
Figure 112020063267572-pat00253
번째 회기에 대한 연산이 한 사이클 내에서 수행될 수 있다. S825 단계에서는 회기
Figure 112020063267572-pat00254
에 대한 일부 함수값들에 기초하여, 회기
Figure 112020063267572-pat00255
에 대한 조건 함수
Figure 112020063267572-pat00256
과, 회기
Figure 112020063267572-pat00257
에 대한 알파 함수
Figure 112020063267572-pat00258
, 그리고 회기
Figure 112020063267572-pat00259
에 대한 조건 함수
Figure 112020063267572-pat00260
이 계산될 수 있다. S825 단계 이후, 가속 연산 단계인 Accelerating_path(r) 단계가 실행될 수 있다(S830).
도 8c에는 본 발명에 따른 가속 연산 단계인 Accelerating_path(r) 단계의 일 실시예가 도시되어 있다. 도 8c를 참조하면, 본 발명에 따른 가속 연산 단계인 Accelerating_path(r) 단계는 회기
Figure 112020063267572-pat00261
의 인덱스를 입력 받으면서 시작될 수 있다(S831). Accelerating_path(r) 단계에서는
Figure 112020063267572-pat00262
번째 회기에 대하여 계산된 함수값들에 기초하여
Figure 112020063267572-pat00263
번째 회기에 대한 함수값들이 계산될 수 있다(S833). 즉, 도 7b 및 7c를 참조하여 설명한 바와 달리, 본 발명의 일 실시예에 KES 알고리즘에서는 Accelerating_path(r) 단계를 통하여
Figure 112020063267572-pat00264
번째 회기에 대한 연산값에서
Figure 112020063267572-pat00265
번째 회기에 대한 연산값을 한 사이클 만에 도출할 수 있다.
이는, 도 6을 참조하여 설명한 바와 같이,
Figure 112020063267572-pat00266
번째 회기 및
Figure 112020063267572-pat00267
번째 회기가 오류가 감지되지 않는 회기들일 경우,
Figure 112020063267572-pat00268
번째 회기에 대한 연산에서 바로
Figure 112020063267572-pat00269
번째 회기에 대한 연산으로 이어진다는 것을 의미할 수 있다. 다르게 표현하면,
Figure 112020063267572-pat00270
번째 회기 및
Figure 112020063267572-pat00271
번째 회기가 오류가 감지되지 않는 회기들일 것을 가정하여, 선제적으로 서로 인접한
Figure 112020063267572-pat00272
번째 회기 및
Figure 112020063267572-pat00273
번째 회기에 대한 연산을 한 사이클 내에서 수행할 수 있다. 이를 통하여, 본 발명의 실시예는 종래의 KES 알고리즘에서보다 적은 회수의 사이클을 통하여 오류 정정 동작을 완료할 수 있다는 기술적 효과를 가진다. 특히, 통신 시스템 또는 메모리 시스템에서 데이터 전송 환경이 우수하여 오류 발생 확률이 낮은 경우 이러한 기술적 효과가 극대화될 수 있다.
이후, Accelerating_path(r) 단계에서는 추가로
Figure 112020063267572-pat00274
번째 회기에 대한 알파 함수
Figure 112020063267572-pat00275
, 및 제1 내지 제3 베타 함수
Figure 112020063267572-pat00276
,
Figure 112020063267572-pat00277
,
Figure 112020063267572-pat00278
등의 함수값이 연산될 수 있다(S835). 이는, 도 6을 참조하여 설명한 바와 같이, 다음 사이클(
Figure 112020063267572-pat00279
번째 및
Figure 112020063267572-pat00280
번째 회기에 대한 연산 사이클)을 위한 연산이 미리 수행되는 것으로 볼 수 있다. 이와 같이, 본 발명의 실시예에 따른 KES 알고리즘은 직전 사이클에서 미리 연산된 데이터를 다음 사이클에서 이어서 활용함으로써, 에너지 소모가 절약 또는 최적화된 오류 정정 동작을 제공할 수 있다는 기술적 효과를 가진다.
다시 도 8b를 참조하면, 본 발명에 따른 KES 알고리즘은 가속 연산 단계인 Accelerating_path(r) 단계(S830) 이후,
Figure 112020063267572-pat00281
번째 회기 및
Figure 112020063267572-pat00282
번째 회기에서 오류가 감지되는지 여부를 확인할 수 있다(S840). 도 7c를 참조하여 설명한 바와 같이, Accelerating_path(r) 단계(S830)에서는
Figure 112020063267572-pat00283
번째 회기 및
Figure 112020063267572-pat00284
번째 회기가 오류가 감지되지 않는 회기들일 것을 선제적으로 가정하여 가속 경로에 의한 연산을 수행한 것으로 볼 수 있다. 따라서, 만약
Figure 112020063267572-pat00285
번째 회기 또는
Figure 112020063267572-pat00286
번째 회기에서 오류가 감지된다면, 이를 정정 또는 복구하는 연산이 필요할 수 있다. 따라서,
Figure 112020063267572-pat00287
번째 회기 및
Figure 112020063267572-pat00288
번째 회기가 오류가 감지되지 않는 회기들이라는 S830 단계에서의 가정이 사실인지 아닌지 여부를 확인할 필요가 있다('Mis-prediction check').
이를 위해, S825 단계에서 연산된 회기
Figure 112020063267572-pat00289
에 대한 조건 함수
Figure 112020063267572-pat00290
과, 회기
Figure 112020063267572-pat00291
에 대한 조건 함수
Figure 112020063267572-pat00292
의 값이 확인될 수 있다. 만약
Figure 112020063267572-pat00293
이고
Figure 112020063267572-pat00294
일 경우,
Figure 112020063267572-pat00295
번째 및
Figure 112020063267572-pat00296
번째 회기에서 오류가 감지되지 않았 다는 것을 의미할 수 있다. 이 경우, 두 개의 인접한 회기에 대한 제어 신호가 'TT'로 부여될 수 있다. 만약
Figure 112020063267572-pat00297
이고
Figure 112020063267572-pat00298
일 경우,
Figure 112020063267572-pat00299
번째 회기에서는 오류가 감지되지 않고
Figure 112020063267572-pat00300
번째 회기에서는 오류가 감지되었다는 것을 의미할 수 있다. 이 경우, 두 개의 인접한 회기에 대한 제어 신호가 'TF'로 부여될 수 있다. 만약
Figure 112020063267572-pat00301
이고
Figure 112020063267572-pat00302
일 경우,
Figure 112020063267572-pat00303
번째 회기에서는 오류가 감지되고
Figure 112020063267572-pat00304
번째 회기에서는 오류가 감지되지 않았다는 것을 의미할 수 있다. 이 경우, 두 개의 인접한 회기에 대한 제어 신호가 'FT'로 부여될 수 있다. 만약
Figure 112020063267572-pat00305
이고
Figure 112020063267572-pat00306
일 경우,
Figure 112020063267572-pat00307
번째 및
Figure 112020063267572-pat00308
번째 회기에서 오류가 감지되었다는 것을 의미할 수 있다. 이 경우, 두 개의 인접한 회기에 대한 제어 신호가 'FF'로 부여될 수 있다.
만약 제어 신호가 'TT'가 아니고 'TF', 'FT', 또는 'FF'일 경우, Accelerating_path(r) 단계(S830)에서의 연산을 바로잡거나 또는 보충하기 위한 연산이 수행될 수 있다(S845). 여기서, 정정 또는 복구하는 연산을 수행하기 위하여, 1회의 연산 사이클이 추가로 요구될 수 있다.
우선,
Figure 112020063267572-pat00309
번째 회기에 대하여 연산된 일부 함수값들에 기초하여
Figure 112020063267572-pat00310
번째 회기에 대한 델타 함수
Figure 112020063267572-pat00311
의 값이 연산될 수 있다. 또한, 계산된
Figure 112020063267572-pat00312
의 값에 따라서, 이후의 연산 경로가 결정 또는 선택될 수 있다. 이를 위해 SiBM_path_sel(r,cond) 단계가 실행될 수 있다. S845 단계에서의 연산은 도 7b 및 7c를 참조하여 설명한 S730 및 S740 단계에서의 연산과 일부 동일 또는 유사할 수 있다. 이후, 복구 연산 단계인 Assist_recovery(r, c(r), c(r+1)) 단계가 실행될 수 있다(S850).
Assist_recovery(r, c(r), c(r+1)) 단계에서는 Accelerating_path(r) 단계(S830)에서 기 연산된
Figure 112020063267572-pat00313
번째 회기에 대한 함수값들이 일부 재연산될 수 있다('Recovery step').
도 8d에는 본 발명에 따른 복구 연산 단계인 Assist_recovery(r, c(r), c(r+1)) 단계의 일 실시예가 도시되어 있다. 도 8d를 참조하면, 본 발명에 따른 복구 연산 단계인 Assist_recovery(r, c(r), c(r+1)) 단계가 시작되면 회기
Figure 112020063267572-pat00314
의 인덱스, 회기
Figure 112020063267572-pat00315
에 대한 조건 함수
Figure 112020063267572-pat00316
, 그리고 회기
Figure 112020063267572-pat00317
에 대한 조건 함수
Figure 112020063267572-pat00318
의 값이 입력될 수 있다. 이후,
Figure 112020063267572-pat00319
번째 회기에 대하여 연산된 함수값들을 기초로,
Figure 112020063267572-pat00320
번째 회기에 대한 델타 함수
Figure 112020063267572-pat00321
가 연산될 수 있다(S853).
이후, 회기
Figure 112020063267572-pat00322
에 대한 조건 함수
Figure 112020063267572-pat00323
, 그리고 회기
Figure 112020063267572-pat00324
에 대한 조건 함수
Figure 112020063267572-pat00325
의 값에 따라서 FF 경로, FT 경로, 또는 TF 경로 중 어느 하나의 경로가 선택되어 연산이 수행될 수 있다. 만약
Figure 112020063267572-pat00326
이고
Figure 112020063267572-pat00327
일 경우, FF 경로가 선택되어 연산이 수행될 수 있다(S855). FF 경로에서는,
Figure 112020063267572-pat00328
번째 회기에서의 경로 선택 단계인 SiBM_path_sel(r+1,cond 1 ) 단계가 수행될 수 있다. 여기서,
Figure 112020063267572-pat00329
번째 회기에서의 경로 선택 단계인 SiBM_path_sel(r+1,cond 1 ) 단계에서의 구체적인 연산 과정은, 도 7b을 참조하여 설명한
Figure 112020063267572-pat00330
번째 회기에서의 경로 선택 단계인 SiBM_path_sel(r,cond) 단계(S740)에서의 연산 과정과 유사할 수 있다. 또는, SiBM_path_sel(r+1,cond 1 ) 단계에서의 구체적인 연산 과정은, 도 7c를 참조하여 설명한 S753 단계(F 경로)에서의 연산 과정과 유사할 수 있다. 이후,
Figure 112020063267572-pat00331
번째 회기에 대한 델타 함수값들에 기초하여,
Figure 112020063267572-pat00332
번째 회기에 대한 알파 함수
Figure 112020063267572-pat00333
와, 제1 내지 제3 베타 함수
Figure 112020063267572-pat00334
,
Figure 112020063267572-pat00335
,
Figure 112020063267572-pat00336
등의 함수값이 연산될 수 있다. 이는,
Figure 112020063267572-pat00337
번째 및
Figure 112020063267572-pat00338
번째 회기에 대한 연산이 수행될 다음 사이클을 위한 연산이 미리 수행되는 것으로 이해할 수 있다.
만약
Figure 112020063267572-pat00339
이고
Figure 112020063267572-pat00340
일 경우, FT 경로가 선택되어 연산이 수행될 수 있다(S857). FT 경로에서는,
Figure 112020063267572-pat00341
번째 회기에서의 경로 선택 단계인 SiBM_path_sel(r+1,cond 1 ) 단계가 수행될 수 있다. 여기서,
Figure 112020063267572-pat00342
번째 회기에서의 경로 선택 단계인 SiBM_path_sel(r+1,cond 1 ) 단계에서의 구체적인 연산 과정은, 도 7b을 참조하여 설명한
Figure 112020063267572-pat00343
번째 회기에서의 경로 선택 단계인 SiBM_path_sel(r,cond) 단계(S740)에서의 연산 과정과 유사할 수 있다. 또는, SiBM_path_sel(r+1,cond 1 ) 단계에서의 구체적인 연산 과정은, 도 7c를 참조하여 설명한 S755 단계(T 경로)에서의 연산 과정과 유사할 수 있다. 이후,
Figure 112020063267572-pat00344
번째 회기에 대한 델타 함수값들에 기초하여,
Figure 112020063267572-pat00345
번째 회기에 대한 알파 함수
Figure 112020063267572-pat00346
와, 제1 내지 제3 베타 함수
Figure 112020063267572-pat00347
,
Figure 112020063267572-pat00348
,
Figure 112020063267572-pat00349
등의 함수값이 연산될 수 있다. 이는,
Figure 112020063267572-pat00350
번째 및 r+3 번째 회기에 대한 연산이 수행될 다음 사이클을 위한 연산이 미리 수행되는 것으로 이해할 수 있다.
만약
Figure 112020063267572-pat00351
이고
Figure 112020063267572-pat00352
일 경우, TT 경로가 선택되어 연산이 수행될 수 있다(S859). TT 경로에서는,
Figure 112020063267572-pat00353
번째 회기에 대한 델타 함수값들에 기초하여,
Figure 112020063267572-pat00354
번째 회기에 대한 알파 함수
Figure 112020063267572-pat00355
과, 제1 내지 제3 베타 함수
Figure 112020063267572-pat00356
,
Figure 112020063267572-pat00357
,
Figure 112020063267572-pat00358
등의 함수값이 연산될 수 있다. 이는,
Figure 112020063267572-pat00359
번째 및
Figure 112020063267572-pat00360
번째 회기에 대한 연산이 수행될 다음 사이클을 위한 연산이 미리 수행되는 것으로 이해할 수 있다.
다시 도 8b를 참조하면,
Figure 112020063267572-pat00361
번째 회기에 대하여 S810 단계에서 S850 단계 까지의 연산이 모두 수행되면,
Figure 112020063267572-pat00362
번째 회기에 대하여 동일한 연산 과정이 반복될 수 있다(S860). 만약
Figure 112020063267572-pat00363
가 짝수일 경우, S810 단계에서 S860 단계까지의 연산을 반복 수행함으로써 0번째 회기로부터
Figure 112020063267572-pat00364
번째 회기까지에 대한 델타 함수의 값들이 모두 연산될 수 있다. 한편,
Figure 112020063267572-pat00365
가 홀수일 경우('When t is odd'),
Figure 112020063267572-pat00366
번째 회기 이전의 마지막 회기라고 할 수 있는
Figure 112020063267572-pat00367
번째 회기에서는 두 개의 인접한 회기를 한 사이클에서 수행하는 연산이 적절하지 않을 수 있다.
따라서,
Figure 112020063267572-pat00368
가 홀수일 경우에는,
Figure 112020063267572-pat00369
번째 및
Figure 112020063267572-pat00370
번째 회기에 대한 연산이 수행된 이후,
Figure 112020063267572-pat00371
번째 회기에 대한 연산이 수행될 수 있다(S870). S870 단계에서의 연산은 도 7b를 참조하여 설명한 S730 및 S740 단계에서의 연산과 동일 또는 유사할 수 있다. 이를 통해
Figure 112020063267572-pat00372
번째 회기에 대한 델타 함수
Figure 112020063267572-pat00373
가 도출될 수 있다. 한편,
Figure 112020063267572-pat00374
가 짝수일 경우에는, S810 단계 내지 S860 단계의 반복 수행을 통해
Figure 112020063267572-pat00375
번째 회기에 대한 델타 함수
Figure 112020063267572-pat00376
가 도출될 수 있다.
Figure 112020063267572-pat00377
번째 회기에 대한 델타 함수
Figure 112020063267572-pat00378
가 도출되면, 오류 위치 다항식
Figure 112020063267572-pat00379
의 계수인
Figure 112020063267572-pat00380
의 값이
Figure 112020063267572-pat00381
로 정의될 수 있다(S880). 즉, 도 8b, 8c, 및 8d를 참조하여 설명한 본 발명에 따른 KES 블록에서의 연산 알고리즘은, 신드롬 방정식
Figure 112020063267572-pat00382
를 구성하는 계수
Figure 112020063267572-pat00383
를 입력받아, 오류 위치 다항식
Figure 112020063267572-pat00384
을 구성하는 계수
Figure 112020063267572-pat00385
를 출력할 수 있다. 특히, 인접한 2개의 회기에 대한 연산을 한 사이클 내에서 수행할 수 있기 때문에,
Figure 112020063267572-pat00386
보다 적은 회수의 연산 사이클을 통하여 오류 정정 동작이 완료될 수 있다.
도 9a 및 9b는 본 발명에 따른 KES 알고리즘의 일 실시예를 지원하는 회로의 구조 및 연산 엘리먼트(processing element, PE)의 구조를 도시한 구조도이다.
도 9a를 참조하면, 본 발명에 따른 KES 알고리즘의 일 실시예를 지원하는 하드웨어 또는 회로의 구조는 동일한 구조를 가지는 연산 엘리먼트(processing element, PE)들이
Figure 112020063267572-pat00387
개(PE0, PE1, ... PE2t-1) 연결됨으로써 구성될 수 있다. 여기서 t는 BCH 코드에 있어서 주어진 코드 길이 안에서 정정 가능한 오류의 개수를 의미할 수 있다. 각각의 PE들의 구조는 도 9b를 참조하여 설명한다
도 9b를 참조하면, 각각의 PE들은
Figure 112020063267572-pat00388
번째 회기에 대한 함수값들을 입력받아서 연산을 수행하여
Figure 112020063267572-pat00389
번째 회기 및
Figure 112020063267572-pat00390
번째 회기에 대한 함수값들을 출력하기 위한 구조를 가지는 회로로서 구성될 수 있다. 각각의 PE들은 가속 경로, 복구 경로, 및 베타 계산을 위한 구조들을 포함할 수 있다. 가속 경로를 위한 구조는 도 8b 및 8c를 참조하여 설명한 Accelerating_path(r) 단계(S830)와 동일 또는 유사한 연산을 야기할 수 있다. 복구 경로를 위한 구조는 도 8b 및 8d를 참조하여 설명한 복구 연산 단계인 Assist_recovery(r, c(r), c(r+1)) 단계(S850)와 동일 또는 유사한 연산을 야기할 수 있다. 베타 계산을 위한 구조는 도 8b, 도 8c, 및 8d에 도시된 제1 내지 제3 베타 함수
Figure 112020063267572-pat00391
,
Figure 112020063267572-pat00392
,
Figure 112020063267572-pat00393
와 관련된 연산을 야기할 수 있다.
도 10a 및 10b는 본 발명에 따른 KES 알고리즘의 일 실시예를 지원하는 PE의 구조를 통하여 에너지 소모를 최적화하는 기술을 설명하기 위한 구조도이다.
도 10a를 참조하면,
Figure 112020063267572-pat00394
번째 및
Figure 112020063267572-pat00395
번째 회기에 대한 연산이 수행되는 사이클에서는, 베타 계산을 위한 구조를 통해
Figure 112020063267572-pat00396
번째 회기에 대한 제1 내지 제3 베타 함수
Figure 112020063267572-pat00397
,
Figure 112020063267572-pat00398
,
Figure 112020063267572-pat00399
가 연산될 수 있다. 도 10b를 참조하면, 기 연산된 베타 함수
Figure 112020063267572-pat00400
,
Figure 112020063267572-pat00401
,
Figure 112020063267572-pat00402
값은 다음 사이클(
Figure 112020063267572-pat00403
번째 및
Figure 112020063267572-pat00404
번째 회기에 대한 연산이 수행되는 사이클)의 가속 경로를 위한 구조에 입력될 수 있다.
즉, 본 발명에 따른 KES 알고리즘의 일 실시예에서는 종래의 KES 알고리즘에서와 다르게 인접한 2개의 회기에 대한 연산을 한 사이클 이내에서 수행할 수 있고, 또한, 이전 사이클에서 미리 수행된 연산 결과를 다음 사이클에서 활용함으로써 에너지 소모량을 줄일 수 있다는 기술적 효과를 가진다.
도 11은 본 발명에 따른 KES 알고리즘이 적용된 오류 정정 방법의 일 실시예를 설명하기 위한 흐름도이다.
도 5, 8b, 8c, 8d 및 도 11을 참조하면, 본 발명의 실시예에 따른 BCH 디코더에 포함된 키-방정식-풀이(key-equation-solver, KES) 블록(523)은 신드롬 계산(syndrome calculation, SC) 블록(521)으로부터 데이터를 수신할 수 있다(S1110). KES 블록(523)이 수신하는 데이터는, BCH 디코더가 수신한 코드워드에 기초하여 생성된 신드롬 방정식
Figure 112020063267572-pat00405
일 수 있다. KES 알고리즘은 신드롬 방정식
Figure 112020063267572-pat00406
에 기초하여 신드롬 수열
Figure 112020063267572-pat00407
를 획득할 수 있다. KES 알고리즘은 획득한 신드롬 수열
Figure 112020063267572-pat00408
에 기초하여, KES 알고리즘을 구성하는 함수들의 회기
Figure 112020063267572-pat00409
에서의 초기값들을 연산할 수 있다. S1110 단계에서의 동작은 도 8b를 참조하여 설명한 S810 내지 S820 단계에서의 동작과 동일 또는 유사할 수 있다.
이후,
Figure 112020063267572-pat00410
범위의 짝수인
Figure 112020063267572-pat00411
을 기준으로,
Figure 112020063267572-pat00412
번째 회기와
Figure 112020063267572-pat00413
번째 회기에 대한 연산이 한 사이클 내에서 수행될 수 있다. 각 사이클에서의 연산은, 앞서 연산된 초기값, 또는 직전 사이클에서 기 연산된 함수값들에 기초하여 수행될 수 있다(S1120). S1120 단계에서의 동작은 도 8b를 참조하여 설명한 S825 및 S830 단계에서의 동작, 또는 도 8c를 참조하여 설명한 S833 단계에서의 동작과 동일 또는 유사할 수 있다.
이후, 해당 사이클에서의 제어신호가 'TT'인지 여부가 확인될 수 있다(S1130). S1130 단계에서의 동작은 도 8b를 참조하여 설명한 S840 단계에서의 동작과 동일 또는 유사할 수 있다. 만일 해당 사이클에서의 제어 신호가 'TT'일 경우, 다음 사이클에서 사용될 데이터가 미리 연산될 수 있다(S1150). S1150 단계에서의 동작은 도 8c를 참조하여 설명한 S835 단계에서의 동작과 동일 또는 유사할 수 있다. 한편, 해당 사이클에서의 제어 신호가 'TT'가 아닐 경우, 제어 신호가 'TT'일 것을 가정하여 기 연산된 데이터를 정정 또는 복구하는 동작이 수행될 수 있다(S1140). 이러한 복구 동작을 수행하기 위하여, 하나의 연산 사이클이 추가로 사용될 수 있다. S1140 단계에서의 동작은 도 8b를 참조하여 설명한 S845 및 S850 단계에서의 동작, 또는 도 8d를 참조하여 설명한 S851 내지 S859 단계에서의 동작과 동일 또는 유사할 수 있다. S1140 단계에서의 정정 또는 복구 동작이 수행되면, 다음 사이클에서 사용될 데이터가 미리 연산될 수 있다(S1150). 이후,
Figure 112020063267572-pat00414
번째 회기에 대한 연산이 수행될 수 있다(S1160). 만약 회기의 인덱스
Figure 112020063267572-pat00415
의 값이
Figure 112020063267572-pat00416
보다 작다면, S1120 내지 S1160 단계의 동작이 다시 수행될 수 있다(S1170). 한편, 만약 인덱스
Figure 112020063267572-pat00417
의 값이
Figure 112020063267572-pat00418
와 같아졌다면 반복 연산이 종료되고, 이 과정에서 획득된 델타 함수
Figure 112020063267572-pat00419
를 통해 오류 위치 다항식
Figure 112020063267572-pat00420
의 계수인
Figure 112020063267572-pat00421
의 값이 정의될 수 있다(S1170). S1160 단계 및 S1170 단계에서의 구체적인 동작은 도 8b를 참조하여 설명한 S860 내지 S880 단계에서의 동작과 동일 또는 유사할 수 있다.
도 12a 및 12b는 본 발명에 따른 KES 알고리즘의 기술적 효과를 설명하기 위한 실험 그래프이다.
도 12a는 서로 다른 3가지 구조의 BCH 코드에 대하여, 종래의 KES 알고리즘과 본 발명에 따른 KES 알고리즘이 각각 소비 또는 요구하는 연산 사이클(processing cycle)을 RBER(raw bit error rate) 등의 채널 환경 변화에 따라 측정한 그래프이다. 각각의 BCH 코드 구조는 n 비트의 전체 코드 길이, k 비트의 데이터 길이, 및 t 개의 정정 가능한 오류 수를 가지는 (n, k, t) 구조일 수 있다. 제1 구조는 (292, 256, 4) 구조일 수 있으며, 제2 구조는 (310, 256, 6) 구조일 수 있으며, 제3 구조는 (328, 256, 8) 구조일 수 있다.
도 12a를 참조하면, 종래의 KES 알고리즘에서는 t의 값만큼의 연산 사이클이 소비될 수 있다. 이를테면, 종래의 KES 알고리즘에서 제1 구조의 BCH 코드를 처리하기 위하여는 4 개의 연산 사이클이 소비될 수 있고, 제2 구조의 BCH 코드를 처리하기 위하여는 6 개의 연산 사이클이 소비될 수 있고, 제3 구조의 BCH 코드를 처리하기 위하여는 8 개의 연산 사이클이 소비될 수 있다. 즉, 종래의 KES 알고리즘에서는 채널 품질 또는 신호 상태와 무관하게 항상 동일한 연산 사이클이 소비될 수 있다. 따라서, 채널 품질 등이 우수하여 오류 발생 가능성이 낮은 경우에도 불필요한 연산 자원을 소비함으로써 효율성이 낮고 지연 시간이 길다는 문제가 있을 수 있다.
한편, 본 발명에 따른 KES 알고리즘에서는 채널 품질 등이 우수하여 오류 발생 가능성이 낮을수록 적은 연산 사이클이 소비될 수 있다. 이를테면, RBER 값이 20×10-3 일 경우, 본 발명에 따른 KES 알고리즘에서 제1 구조의 BCH 코드를 처리하기 위하여는 평균적으로 약 3.9 개의 연산 사이클이 소비될 수 있고, 제2 구조의 BCH 코드를 처리하기 위하여는 평균적으로 약 5.6 개의 연산 사이클이 소비될 수 있고, 제3 구조의 BCH 코드를 처리하기 위하여는 평균적으로 약 7.1 개의 연산 사이클이 소비될 수 있다. 한편, RBER 값이 1×10-3 일 경우, 본 발명에 따른 KES 알고리즘에서 제1 구조의 BCH 코드를 처리하기 위하여는 평균적으로 약 2.2 개의 연산 사이클이 소비될 수 있고, 제2 구조의 BCH 코드를 처리하기 위하여는 평균적으로 약 3.2 개의 연산 사이클이 소비될 수 있고, 제3 구조의 BCH 코드를 처리하기 위하여는 평균적으로 약 4.3 개의 연산 사이클이 소비될 수 있다. 즉, 본 발명에 따른 KES 알고리즘에서는 종래의 KES 알고리즘에 비하여 적은 연산 사이클이 소비될 수 있으며, 특히 채널 환경이 우수할 경우 연산 사이클 소비량이 4~50% 가량 줄어들 수 있다. 이는, 채널 환경이 우수할 경우 불필요한 오류 정정 동작을 줄임으로써 시스템의 효율을 향상시키고 시간 자원 및 연산 자원 등을 적게 소비할 수 있다는 것을 의미한다.
도 12b는 서로 다른 4가지 구조의 BCH 코드에 대하여 본 발명에 따른 KES 알고리즘에 따라 발생하는 지연 시간 값과 종래의 KES 알고리즘에 따라 발생하는 지연 시간 값의 비율(이하, 정규화된 지연 시간 비율)을 채널 환경 변화에 따라 측정한 그래프이다. 제4 구조의 BCH 코드는 256 비트의 코드 길이를 가질 수 있고, 제5 구조의 BCH 코드는 512 비트의 코드 길이를 가질 수 있고, 제6 구조의 BCH 코드는 1024 비트의 코드 길이를 가질 수 있고, 제7 구조의 BCH 코드는 2048 비트의 코드 길이를 가질 수 있다.
도 12b를 참조하면, 본 발명에 따른 KES 알고리즘에서는 채널 품질 등이 우수하여 오류 발생 가능성이 낮을수록 지연 시간이 적게 발생할 수 있다. 이를테면, RBER 값이 10×10-3 일 경우 제4 내지 제7 구조의 BCH 코드에 대한 정규화된 지연 시간 비율은 약 0.88 내지 0.97로 측정될 수 있다. 한편, RBER 값이 1×10-3 일 경우 제4 내지 제7 구조의 BCH 코드에 대한 정규화된 지연 시간 비율은 약 0.55로 측정될 수 있다. 즉, 본 발명에 따른 KES 알고리즘에서는 종래의 KES 알고리즘에 비하여 지연 시간이 적게 나타날 수 있으며, 특히 채널 환경이 우수할 경우 지연 시간이 약 4~50% 가량 줄어들 수 있다. 이는, 채널 환경이 우수할 경우 불필요한 오류 정정 동작을 줄임으로써 시스템의 효율을 향상시키고 지연 시간을 줄일 수 있다는 것을 의미한다.
상기한 본 발명의 실시예에 의하면, 오류 정정 부호의 일종인 BCH(Bose-Chaudhuri-Hocquenghem) 코드의 디코딩 단계 중 하나인 키-방정식-풀이(key-equation-solver, KES) 단계에 언폴딩 기법을 적용함으로써 오류 정정 동작의 효율성을 향상시킬 수 있다. 본 발명에 따른 KES 알고리즘은 2개의 인접한 사이클을 통합하여 처리할 수 있다. 본 발명에 따른 KES 알고리즘은 각 사이클에 대한 연산을 수행하면서 다음 사이클에서 수행할 연산의 일부를 미리 수행할 수 있고, 이전 사이클에서 이미 수행된 연산에 따라 현재 사이클에서의 연산을 생략할 수 있다. 본 발명에 따른 KES 알고리즘에서는 오류가 발견되지 않은 사이클에 대하여는 오류 복구 단계를 생략함으로써 연산 자원의 불필요한 소비를 줄이고 지연 시간을 감축할 수 있다. 따라서, 통신 시스템 또는 메모리 시스템의 효율성이 향상될 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (20)

  1. 오류 정정 부호에 기초한 오류 정정 방법에 있어서,
    Figure 112021083119188-pat00523
    개의 오류를 정정할 수 있는 BCH 코드에 의하여 부호화된 코드워드를 수신하는 단계;
    상기 수신한 코드워드를 기초로 신드롬 방정식을 생성하는 단계;
    상기 신드롬 방정식에 기초하여 신드롬 수열
    Figure 112021083119188-pat00524
    를 획득하는 단계;
    상기 획득한 신드롬 수열
    Figure 112021083119188-pat00525
    를 키-방정식-풀이(key-equation-solver, KES) 알고리즘에 입력하는 단계;
    상기 신드롬 수열에 기초하여, 상기 KES 알고리즘을 구성하는 함수들의
    Figure 112021083119188-pat00526
    번째 회기에 대한 함수값들을 연산하는 단계;
    0 이상이고
    Figure 112021083119188-pat00527
    보다 작은 짝수
    Figure 112021083119188-pat00528
    번째 회기에 대하여 연산된 함수값들을 기초로,
    Figure 112021083119188-pat00529
    번째 회기에 대한 함수값들을 연산하는 단계;
    Figure 112021083119188-pat00530
    번째 회기에 대하여 연산된 제1 함수의 값을 기초로 오류 위치 계수를 생성하는 단계;
    상기 오류 위치 계수에 기초하여 오류 위치 다항식을 생성하는 단계; 및
    상기 오류 위치 다항식에 기초하여, 상기 코드워드에 포함된 오류의 위치를 확인하여 상기 오류를 정정하는 단계를 포함하는, 오류 정정 방법.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 오류 위치 다항식을 생성하는 단계는,
    상기
    Figure 112021083119188-pat00430
    번째 회기에 대한 함수값들을 연산하는 단계 이후,
    Figure 112021083119188-pat00431
    가 홀수일 경우,
    Figure 112021083119188-pat00432
    번째 회기에 대하여 연산된 함수값들을 기초로, 상기
    Figure 112021083119188-pat00433
    번째 회기에 대한 함수값들을 연산하는 단계를 더 포함하는 것을 특징으로 하는, 오류 정정 방법.
  4. 청구항 1에 있어서,
    상기 오류 위치 다항식을 생성하는 단계는,
    상기
    Figure 112021083119188-pat00434
    번째 회기에 대한 함수값들을 연산하는 단계 이후,
    상기
    Figure 112021083119188-pat00435
    번째 회기 및
    Figure 112021083119188-pat00436
    번째 회기에서 오류가 감지되었는지를 판단하는 단계;
    상기
    Figure 112021083119188-pat00437
    번째 회기 및 상기
    Figure 112021083119188-pat00438
    번째 회기 중 적어도 하나 이상의 회기에서 오류가 감지되었을 경우, 상기
    Figure 112021083119188-pat00439
    번째 회기에 대하여 연산된 함수값들을 기초로 상기
    Figure 112021083119188-pat00440
    번째 회기에 대한 함수값들을 연산하는 단계; 및
    상기
    Figure 112021083119188-pat00441
    번째 회기 및 상기
    Figure 112021083119188-pat00442
    번째 회기에 대한 함수값 복구 연산을 수행하는 단계를 더 포함하는 것을 특징으로 하는, 오류 정정 방법.
  5. 청구항 4에 있어서,
    상기 함수값 복구 연산을 수행하는 단계는,
    상기
    Figure 112020063267572-pat00443
    번째 회기에서 오류가 감지되었을 경우,
    상기
    Figure 112020063267572-pat00444
    번째 회기에 대하여 연산된 함수값들을 기초로 상기
    Figure 112020063267572-pat00445
    번째 회기에 대한 함수값들을 재연산하는 단계를 포함하는 것을 특징으로 하는, 오류 정정 방법.
  6. 청구항 4에 있어서,
    상기 함수값 복구 연산을 수행하는 단계는,
    상기
    Figure 112020063267572-pat00446
    번째 회기에서는 오류가 감지되고 상기
    Figure 112020063267572-pat00447
    번째 회기에서는 오류가 감지되지 않았을 경우,
    상기
    Figure 112020063267572-pat00448
    번째 회기에 대하여 연산된 함수값들을 기초로 상기
    Figure 112020063267572-pat00449
    번째 회기에 대한 함수값들을 재연산하는 단계를 포함하는 것을 특징으로 하는, 오류 정정 방법.
  7. 청구항 4에 있어서,
    상기
    Figure 112020063267572-pat00450
    번째 회기 및
    Figure 112020063267572-pat00451
    번째 회기에서 오류가 감지되었는지를 판단하는 단계는,
    각각의 회기에 대한 조건 함수의 값이 1인 경우, 해당 회기에서 오류가 감지되지 않은 것으로 판단하는 것을 특징으로 하는, 오류 정정 방법.
  8. 청구항 1에 있어서,
    상기 KES 알고리즘은 '간략화된 반전 없는 벨르캄프-메시(Simplified inversionless Berlekamp-Massey, SiBM) 알고리즘'의 일종인 것을 특징으로 하는, 오류 정정 방법.
  9. 오류 정정 부호가 적용된 통신 시스템에서의 통신 노드로서,
    프로세서(processor);
    상기 프로세서와 전자적(electronic)으로 통신하는 메모리(memory); 및
    상기 메모리에 저장되는 명령들(instructions)을 포함하며,
    상기 명령들이 상기 프로세서에 의해 실행되는 경우, 상기 명령들은 상기 통신 노드가,
    Figure 112021083119188-pat00531
    개의 오류를 정정할 수 있는 BCH 코드에 의하여 부호화된 코드워드를 수신하고;
    상기 수신한 코드워드를 기초로 신드롬 방정식을 생성하고;
    상기 신드롬 방정식에 기초하여 신드롬 수열
    Figure 112021083119188-pat00532
    를 획득하고;
    상기 획득한 신드롬 수열
    Figure 112021083119188-pat00533
    를 키-방정식-풀이(key-equation-solver, KES) 알고리즘에 입력하고;
    상기 신드롬 수열에 기초하여, 상기 KES 알고리즘을 구성하는 함수들의
    Figure 112021083119188-pat00534
    번째 회기에 대한 함수값들을 연산하고;
    0 이상이고
    Figure 112021083119188-pat00535
    보다 작은 짝수
    Figure 112021083119188-pat00536
    번째 회기에 대하여 연산된 함수값들을 기초로,
    Figure 112021083119188-pat00537
    번째 회기에 대한 함수값들을 연산하고;
    Figure 112021083119188-pat00538
    번째 회기에 대하여 연산된 제1 함수의 값을 기초로 오류 위치 계수를 생성하고;
    상기 오류 위치 계수에 기초하여 오류 위치 다항식을 생성하고; 그리고
    상기 오류 위치 다항식에 기초하여, 상기 코드워드에 포함된 오류의 위치를 확인하여 상기 오류를 정정하는 것을 야기하도록 동작하는, 통신 노드.
  10. 삭제
  11. 청구항 9에 있어서,
    상기 명령들은 상기 통신 노드가,
    상기
    Figure 112021083119188-pat00460
    번째 회기에 대한 함수값들을 연산한 이후,
    상기
    Figure 112021083119188-pat00461
    번째 회기 및
    Figure 112021083119188-pat00462
    번째 회기에서 오류가 감지되었는지를 판단하고;
    상기
    Figure 112021083119188-pat00463
    번째 회기 및 상기
    Figure 112021083119188-pat00464
    번째 회기 중 적어도 하나 이상의 회기에서 오류가 감지되었을 경우, 상기
    Figure 112021083119188-pat00465
    번째 회기에 대하여 연산된 함수값들을 기초로 상기
    Figure 112021083119188-pat00466
    번째 회기에 대한 함수값들을 연산하고; 그리고
    상기
    Figure 112021083119188-pat00467
    번째 회기 및 상기
    Figure 112021083119188-pat00468
    번째 회기에 대한 함수값 복구 연산을 수행하는 것을 더 야기하도록 동작하는, 통신 노드.
  12. 청구항 11에 있어서,
    상기 명령들은 상기 통신 노드가,
    상기
    Figure 112020063267572-pat00469
    번째 회기에서 오류가 감지되었을 경우,
    상기
    Figure 112020063267572-pat00470
    번째 회기에 대하여 연산된 함수값들을 기초로 상기
    Figure 112020063267572-pat00471
    번째 회기에 대한 함수값들을 재연산하는 것을 더 야기하도록 동작하는, 통신 노드.
  13. 청구항 11에 있어서,
    상기 명령들은 상기 통신 노드가,
    상기
    Figure 112020063267572-pat00472
    번째 회기에서는 오류가 감지되고 상기
    Figure 112020063267572-pat00473
    번째 회기에서는 오류가 감지되지 않았을 경우,
    상기
    Figure 112020063267572-pat00474
    번째 회기에 대하여 연산된 함수값들을 기초로 상기
    Figure 112020063267572-pat00475
    번째 회기에 대한 함수값들을 재연산하는 것을 더 야기하도록 동작하는, 통신 노드.
  14. 청구항 9에 있어서,
    상기 프로세서는,
    제어기(controller); 및
    적어도
    Figure 112021083119188-pat00476
    개의 연산 엘리먼트(processing element, PE)들을 포함하는 것을 특징으로 하는, 통신 노드.
  15. 오류 정정 부호가 적용된 메모리 시스템에서의 디코더로서,
    프로세서(processor);
    상기 프로세서와 전자적(electronic)으로 통신하는 메모리(memory); 및
    상기 메모리에 저장되는 명령들(instructions)을 포함하며,
    상기 명령들이 상기 프로세서에 의해 실행되는 경우, 상기 명령들은 상기 디코더가
    Figure 112021083119188-pat00539
    개의 오류를 정정할 수 있는 BCH 코드에 의하여 부호화된 코드워드를 수신하고;
    상기 수신한 코드워드를 기초로 신드롬 방정식을 생성하고;
    상기 신드롬 방정식에 기초하여 신드롬 수열
    Figure 112021083119188-pat00540
    를 획득하고;
    상기 획득한 신드롬 수열
    Figure 112021083119188-pat00541
    를 키-방정식-풀이(key-equation-solver, KES) 알고리즘에 입력하고;
    상기 신드롬 수열에 기초하여, 상기 KES 알고리즘을 구성하는 함수들의
    Figure 112021083119188-pat00542
    번째 회기에 대한 함수값들을 연산하고;
    0 이상이고
    Figure 112021083119188-pat00543
    보다 작은 짝수
    Figure 112021083119188-pat00544
    번째 회기에 대하여 연산된 함수값들을 기초로,
    Figure 112021083119188-pat00545
    번째 회기에 대한 함수값들을 연산하고;
    Figure 112021083119188-pat00546
    번째 회기에 대하여 연산된 제1 함수의 값을 기초로 오류 위치 계수를 생성하고;
    상기 오류 위치 계수에 기초하여 오류 위치 다항식을 생성하고; 그리고
    상기 오류 위치 다항식에 기초하여, 상기 코드워드에 포함된 오류의 위치를 확인하여 상기 오류를 정정하는 것을 야기하도록 동작하는, 디코더.
  16. 삭제
  17. 청구항 15에 있어서,
    상기 명령들은 상기 디코더가,
    상기
    Figure 112021083119188-pat00485
    번째 회기에 대한 함수값들을 연산한 이후,
    상기
    Figure 112021083119188-pat00486
    번째 회기 및
    Figure 112021083119188-pat00487
    번째 회기에서 오류가 감지되었는지를 판단하고;
    상기
    Figure 112021083119188-pat00488
    번째 회기 및 상기
    Figure 112021083119188-pat00489
    번째 회기 중 적어도 하나 이상의 회기에서 오류가 감지되었을 경우, 상기
    Figure 112021083119188-pat00490
    번째 회기에 대하여 연산된 함수값들을 기초로 상기
    Figure 112021083119188-pat00491
    번째 회기에 대한 함수값들을 연산하고; 그리고
    상기
    Figure 112021083119188-pat00492
    번째 회기 및 상기
    Figure 112021083119188-pat00493
    번째 회기에 대한 함수값 복구 연산을 수행하는 것을 더 야기하도록 동작하는, 디코더.
  18. 청구항 17에 있어서,
    상기 명령들은 상기 디코더가,
    상기
    Figure 112020063267572-pat00494
    번째 회기에서 오류가 감지되었을 경우,
    상기
    Figure 112020063267572-pat00495
    번째 회기에 대하여 연산된 함수값들을 기초로 상기
    Figure 112020063267572-pat00496
    번째 회기에 대한 함수값들을 재연산하는 것을 더 야기하도록 동작하는, 디코더.
  19. 청구항 17에 있어서,
    상기 명령들은 상기 디코더가,
    상기
    Figure 112020063267572-pat00497
    번째 회기에서는 오류가 감지되고 상기
    Figure 112020063267572-pat00498
    번째 회기에서는 오류가 감지되지 않았을 경우,
    상기
    Figure 112020063267572-pat00499
    번째 회기에 대하여 연산된 함수값들을 기초로 상기
    Figure 112020063267572-pat00500
    번째 회기에 대한 함수값들을 재연산하는 것을 더 야기하도록 동작하는, 디코더.
  20. 청구항 15에 있어서,
    상기 프로세서는,
    제어기(controller); 및
    적어도
    Figure 112021083119188-pat00501
    개의 연산 엘리먼트(processing element, PE)들을 포함하는 것을 특징으로 하는, 디코더.
KR1020200074852A 2020-02-06 2020-06-19 오류 정정 부호에 기초한 오류 정정 방법 및 장치 KR102350909B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20200014261 2020-02-06
KR1020200014261 2020-02-06

Publications (2)

Publication Number Publication Date
KR20210100507A KR20210100507A (ko) 2021-08-17
KR102350909B1 true KR102350909B1 (ko) 2022-01-14

Family

ID=77466313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200074852A KR102350909B1 (ko) 2020-02-06 2020-06-19 오류 정정 부호에 기초한 오류 정정 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102350909B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160026435A1 (en) * 2014-07-28 2016-01-28 Storart Technology Co.,Ltd. Simplified inversionless berlekamp-massey algorithm for binary bch code and circuit implementing therefor

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101094574B1 (ko) * 2009-10-29 2011-12-19 인하대학교 산학협력단 Bch 복호기를 위한 고속 소면적 파이프라인 폴딩 방식 벨르캄프-메시 알고리즘 연산 회로 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160026435A1 (en) * 2014-07-28 2016-01-28 Storart Technology Co.,Ltd. Simplified inversionless berlekamp-massey algorithm for binary bch code and circuit implementing therefor

Also Published As

Publication number Publication date
KR20210100507A (ko) 2021-08-17

Similar Documents

Publication Publication Date Title
CN110166167B (zh) 编码的方法、译码的方法、编码设备和译码设备
US11700545B2 (en) Method and device for transmitting data
US11956077B2 (en) Method and device for performing channel coding on basis of polar coding in wireless communication system
RU2728527C1 (ru) Способ и устройство кодирования
CN109314524A (zh) 使用通用极化码时通过异构内核进行速率匹配的系统和方法
CN110663189B (zh) 用于极化编码的方法和装置
KR20200051634A (ko) 데이터 인코딩 방법 및 디바이스, 저장 매체, 및 프로세서
US11184108B2 (en) Method and apparatus for transmitting and receiving signal using polar code in communication system
CN109150199B (zh) 一种极化Polar码的交织处理方法及装置
KR102525414B1 (ko) LDPC(low-density parity-check) 부호의 복호화 방법 및 장치
CN109428608A (zh) 极化码的译码方法和译码器
KR102350909B1 (ko) 오류 정정 부호에 기초한 오류 정정 방법 및 장치
KR102438982B1 (ko) 무선 통신 시스템에서 부호화 및 복호화를 위한 방법 및 장치
KR102455652B1 (ko) 연판정을 이용한 복호 방법 및 장치
CN108390739B (zh) 数据处理的方法和装置
US8977913B2 (en) Method, device and baseband chip for receiving service data in a communication system
KR102338852B1 (ko) 무선 통신 시스템에서 신호를 복호하기 위한 장치 및 방법
US20240063943A1 (en) Method and apparatus for performing block interleaving for data transmission
WO2023221723A1 (zh) 数据处理方法、电子设备、存储介质及程序产品
KR20210064099A (ko) 폴라 코드에 기초한 부호화 및 복호화 방법 및 장치
US11777647B2 (en) Method and apparatus for traffic transmission in communication system
US20230291498A1 (en) Method and apparatus for hybrid automatic repeat request in communication system using polar codes
KR20230147978A (ko) 무선 통신 시스템에서의 신호 송수신 방법 및 장치
KR20240062116A (ko) Ldpc용 디인터리버 및 디레이트 매칭 블록의 효율적인 설계 방법 및 장치
CN114915297A (zh) 一种编码和译码方法及相关装置

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant