KR20220114920A - 데이터 전송을 위한 블록 인터리빙을 수행하는 장치 및 방법 - Google Patents

데이터 전송을 위한 블록 인터리빙을 수행하는 장치 및 방법 Download PDF

Info

Publication number
KR20220114920A
KR20220114920A KR1020210018534A KR20210018534A KR20220114920A KR 20220114920 A KR20220114920 A KR 20220114920A KR 1020210018534 A KR1020210018534 A KR 1020210018534A KR 20210018534 A KR20210018534 A KR 20210018534A KR 20220114920 A KR20220114920 A KR 20220114920A
Authority
KR
South Korea
Prior art keywords
sub
block
blocks
input index
interleaver
Prior art date
Application number
KR1020210018534A
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 삼성전자주식회사
Priority to KR1020210018534A priority Critical patent/KR20220114920A/ko
Priority to US17/559,132 priority patent/US11804926B2/en
Priority to EP22151306.2A priority patent/EP4040684A3/en
Priority to TW111104789A priority patent/TW202239153A/zh
Priority to CN202210121153.6A priority patent/CN114915299A/zh
Publication of KR20220114920A publication Critical patent/KR20220114920A/ko
Priority to US18/496,280 priority patent/US20240063943A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block 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/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2703Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
    • 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/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2778Interleaver using block-wise interleaving, e.g. the interleaving matrix is sub-divided into sub-matrices and the permutation is performed in blocks of sub-matrices
    • 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/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2703Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
    • H03M13/2707Simple row-column interleaver, i.e. pure block interleaving
    • 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/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/276Interleaving address generation
    • 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/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2789Interleaver providing variable interleaving, e.g. variable block sizes
    • 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/6561Parallelized implementations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0014Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the source coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving

Abstract

본 개시의 예시적 실시예에 따른 장치는, 소스 데이터를 인코딩하여 복수의 비트들로 구성된 코드워드를 생성하도록 구성된 인코더(encoder) 및 상기 코드워드에 대하여 복수의 서브 블록들이 포함된 블록 기반 인터리빙을 수행하도록 구성된 인터리버(interleaver)를 포함하고, 상기 인터리버는, 상기 서브 블록들 중 제1 기준 서브 블록의 제1 기준 입력 인덱스를 생성하고, 상기 제1 기준 입력 인덱스를 기반으로 상기 서브 블록들 중 상기 제1 기준 서브 블록으로부터 제1 방향으로 인접하게 배치된 제1 서브 블록의 제1 입력 인덱스를 생성하며, 상기 제1 기준 입력 인덱스 및 상기 제1 입력 인덱스에 따라 상기 복수의 비트들 중 상기 제1 기준 서브 블록 및 상기 제1 서브 블록에 대응하는 비트들을 내부 메모리에 저장하도록 구성된 것을 특징으로 한다.

Description

데이터 전송을 위한 블록 인터리빙을 수행하는 장치 및 방법{Apparatus and method for performing block interleaving for data transmission}
본 개시의 기술적 사상은 인터리빙 방식에 관한 것으로서, 구체적으로 데이터 전송을 위한 블록 인터리빙을 수행하는 장치 및 방법에 관한 것이다.
데이터를 송수신하는 시스템에서 단시간에 처리가 요구되는 데이터 트래픽이 증가함에 따라 시스템 내의 장치의 데이터 처리 속도 및 구현 효율성의 중요성이 강조되고 있다. 또한, 시스템에서 데이터 처리, 데이터 송수신 등에 소모되는 전력이 계속 증가하고 있으나, 사용 가능한 전력량은 제한적이기 때문에 시스템 내의 장치의 전력 사용 효율도 중요하다.
한편, 데이터를 송수신하는 다양한 시스템에서는 데이터 전송을 위한 인터리버(interleaver)가 필수적으로 사용되고 있다. 인터리버는 연집 오류를 랜덤 오류로 변화시켜 오류 정정 성능을 향상시킬 수 있다. 최근 인터리버는 직각 이등변 삼각형 형태의 블록 인터리빙을 수행하도록 구현되고 있으나, 기존의 방식으로는 인터리빙에 대한 계산 복잡도가 상당히 높아 전력 소모 및 하드웨어 면적 복잡도 측면에서 비효율적인 문제가 있다.
본 개시의 기술적 사상은, 하드웨어 면적 복잡도를 낮추고, 향상된 전력 효율성을 제공하는 블록 인터리빙을 위한 장치 및 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 예시적 실시예에 따른 장치는, 소스 데이터를 인코딩하여 복수의 비트들로 구성된 코드워드를 생성하도록 구성된 인코더(encoder) 및 상기 코드워드에 대하여 복수의 서브 블록들이 포함된 블록 기반 인터리빙을 수행하도록 구성된 인터리버(interleaver)를 포함하고, 상기 인터리버는, 상기 서브 블록들 중 제1 기준 서브 블록의 제1 기준 입력 인덱스를 생성하고, 상기 제1 기준 입력 인덱스를 기반으로 상기 서브 블록들 중 상기 제1 기준 서브 블록으로부터 제1 방향으로 인접하게 배치된 제1 서브 블록의 제1 입력 인덱스를 생성하며, 상기 제1 기준 입력 인덱스 및 상기 제1 입력 인덱스에 따라 상기 복수의 비트들 중 상기 제1 기준 서브 블록 및 상기 제1 서브 블록에 대응하는 비트들을 내부 메모리에 저장하도록 구성된 것을 특징으로 한다.
본 개시의 예시적 실시예에 따른 복수의 비트들로 구성된 코드워드에 대하여 복수의 서브 블록들이 포함된 블록 기반 인터리빙 방법은, 상기 서브 블록들 중 제1 기준 서브 블록의 제1 기준 입력 인덱스를 생성하는 단계, 상기 제1 기준 입력 인덱스를 기반으로 상기 서브 블록들 중 상기 제1 기준 서브 블록으로부터 제1 방향으로 인접하게 배치된 제1 서브 블록의 제1 입력 인덱스를 생성하는 단계 및 상기 제1 기준 입력 인덱스 및 상기 제1 서브 블록에 대응하는 비트들을 저장하는 단계를 포함하는 것을 특징으로 한다.
본 개시의 예시적 실시예에 따른 장치는, 메모리, 소스 데이터를 인코딩하여 복수의 비트들로 구성된 코드워드를 생성하고, 상기 코드워드에 대하여 복수의 서브 블록들이 포함된 블록 기반 인터리빙을 수행하도록 구성된 프로세서 및 인터리빙된 상기 코드워드를 포함하는 데이터를 소정의 채널로 출력하도록 구성된 집적 회로를 포함하며, 상기 프로세서는, 상기 서브 블록들 중 제1 열에 대응하는 제1 서브 블록들 간의 수열 관계를 기반으로 상기 제1 서브 블록들의 제1 입력 인덱스들을 생성하여 상기 제1 서브 블록들에 대응하는 비트들을 상기 메모리에 저장하고, 상기 제1 서브 블록들의 제1 출력 인덱스들에 따라 상기 메모리에 저장된 상기 비트들을 출력하도록 구성된 것을 특징으로 한다.
본 개시의 예시적 실시예에 따른 장치의 인터리버는 서브 블록들 간의 관계를 이용하여 단순한 연산을 통해 인터리빙을 위한 입력 인덱스들을 생성하기 때문에 인터리버의 하드웨어 설계가 단순해질 수 있으며, 전력을 효율적으로 사용할 수 있다. 그 결과, 장치의 전체적인 성능이 개선될 수 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 전자 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 인터리버의 블록 인터리빙 동작을 설명하기 위한 순서도이다.
도 3은 본 개시의 예시적 실시예와의 비교예를 설명하기 위한 도면이다.
도 4는 본 개시의 예시적 실시예에 따른 블록을 설명하기 위한 도면이다.
도 5는 본 개시의 예시적 실시예에 따른 인터리버의 동작 방법을 설명하기 위한 순서도이다.
도 6은 본 개시의 예시적 실시예에 따른 동일한 열에 배치된 제1 및 제2 서브 블록의 수열 관계를 설명하기 위한 도면이다.
도 7a 및 도 7b는 본 개시의 예시적 실시예에 따른 인터리버의 동작을 구체적으로 설명하기 위한 도면이다.
도 8a는 본 개시의 예시적 실시예에 따른 인터리버의 구성을 설명하기 위한 블록도이고, 도 8b는 도 8a의 인터리버의 출력을 설명하기 위한 도면이다.
도 9는 본 개시의 예시적 실시예에 따른 인터리버의 블록 인터리빙 동작을 설명하기 위한 순서도이다.
도 10은 본 개시의 예시적 실시예에 따른 인터리버의 동작을 구체적으로 설명하기 위한 도면이다.
도 11은 본 개시의 예시적 실시예에 따른 블록을 설명하기 위한 도면이다.
도 12는 도 11의 제(p-1) 서브 블록의 입력 인덱스들을 생성하는 실시예를 설명하기 위한 도면이다.
도 13은 본 개시의 예시적 실시예에 따른 통신 시스템을 나타내는 블록도이다.
도 14는 본 개시의 예시적 실시예에 따른 시스템들을 나타내는 블록도이다.
도 15는 본 개시의 예시적 실시예에 따른 프로세서를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예들에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 전자 시스템(1)을 나타내는 블록도이다. 도 1에 도시된 바와 같이, 송신기(10) 및 수신기(20)는 채널(30)을 통해서 통신할 수 있다.
예시적 실시예로, 전자 시스템(1)은 송신기(10) 및 수신기(20) 사이 통신 프로토콜을 정의하는 임의의 통신 시스템일 수 있다. 일부 실시예에서, 채널(30)은 무선 자원(radio resource)을 사용하는 무선 채널일 수 있고, 전자 시스템(1)은 무선 통신 시스템일 수 있다. 예를 들면, 전자 시스템(1)은, 5G(5th generation wireless) NR(New Radio) 시스템, LTE(Long Term Evolution) 시스템, LTE-Advanced 시스템, CDMA(Code Division Multiple Access) 시스템, GSM(Global System for Mobile Communications) 시스템 등과 같은 셀룰러 네트워크(cellular network)를 이용하는 무선 통신 시스템일 수도 있고, WPAN(Wireless Personal Area Network) 시스템 또는 다른 임의의 무선 통신 시스템일 수 있다. 또한, 일부 실시예들에서, 채널(30)은 전기적 신호 및/또는 광 신호 등을 사용하는 유선 채널일 수 있고, 전자 시스템(1)은 유선 통신 시스템일 수 도 있다.
다른 실시예로, 전자 시스템(1)은 메모리 시스템 또는 이미지 프로세싱 시스템일 수 있다. 이 때, 채널(30)은 전기적 신호 및/또는 광 신호 등을 사용하는 유선 채널일 수 있고, 송신기(10) 및 수신기(20)는 각각 컨트롤러 또는 메모리 장치 또는 이미지 장치에 해당할 수 있다. 다만, 본 개시의 기술적 사상이 적용되는 전자 시스템(1)의 예시는 이에 국한되지 않으며, 소정의 채널을 통해 데이터를 송수신하는 다양한 전자 시스템에 광범위하게 적용될 수 있음은 분명하다. 이하에서, 전자 시스템(1)은 무선 통신 시스템, 특히 셀룰러 네트워크를 이용하는 무선 통신 시스템으로서 5G NR을 주로 참조하여 설명될 것이나, 본 개시의 예시적 실시예들이 이에 제한되지 아니하는 점은 이해될 것이다.
전자 시스템(1)이 셀룰러 네트워크를 이용하는 무선 통신 시스템인 경우, 송신기(10) 및 수신기(20) 각각은, 기지국(Base Station; BS) 또는 사용자 기기(User Equipment; UE)일 수 있다. 송신기(10)가 기지국이고 수신기(20)가 사용자 기기인 경우 채널(30)에 하향링크(downlink)가 형성될 수 있는 한편, 송신기(10)가 사용자 기기이고 수신기(20)가 기지국인 경우 채널(30)에 상향링크(uplink)가 형성될 수 있다. 또한, 송신기(10) 및 수신기(20)가 모두 사용자 기기들인 경우, 채널(30)에 사이드링크(sidelink)가 형성될 수도 있다. 한편, 송신기(10)는 채널(30)을 통해 신호를 수신하는 수신기로서 동작할 수 있으며, 수신기(20)는 채널(30)을 통해 신호를 송신하는 송신기로서 동작할 수 있다.
기지국은 일반적으로 사용자 기기 및/또는 다른 기지국과 통신하는 고정된 지점(fixed station)을 지칭할 수 있고, 사용자 기기 및/또는 다른 기지국과 통신함으로써 데이터 및 제어 정보를 교환할 수 있다. 예를 들면, 기지국은 Node B, eNB(evolved-Node B), gNB(Next generation Node B), 섹터(Sector), 싸이트(Site), BTS(Base Transceiver System), AP(Access Pint), 릴레이 노드(Relay Node), RRH(Remote Radio Head), RU(Radio Unit), 스몰 셀(small cell) 등으로 지칭될 수도 있다. 본 명세서에서, 기지국 또는 셀은 CDMA에서의 BSC(Base Station Controller), WCDMA의 Node-B, LTE에서의 eNB, 5G의 gNB 또는 섹터(싸이트) 등이 커버하는 일부 영역 또는 기능을 나타내는 포괄적인 의미로 해석될 수 있고, 메가셀, 매크로셀, 마이크로셀, 피코셀, 펨토셀 및 릴레이 노드, RRH, RU, 스몰 셀 통신범위 등 다양한 커버리지 영역을 모두 포괄할 수 있다. 사용자 기기(User Equipment; UE)는 고정되거나 이동성을 가질 수 있고, 기지국과 통신하여 데이터 및/또는 제어 정보를 송수신할 수 있는 임의의 기기들을 지칭할 수 있다. 예를 들면, 사용자 기기는 단말(terminal), 단말 기기(terminal equipment), MS(Mobile Station), MT(Mobile Terminal), UT(User Terminal), SS(Subscribe Station), 무선 장치(wireless device), 휴대 장치(handheld device) 등으로 지칭될 수 있다.
사용자 기기와 기지국 사이 무선 통신 네트워크는 가용 네트워크 자원들을 공유함으로써 다수의 사용자들이 통신하는 것을 지원할 수 있다. 예를 들면, 무선 통신 네트워크에서 CDMA(Code Division Multiple Access), FDMA(Frequency Division Multiple Access), TDMA(Time Division Multiple Access), OFDMA(Orthogonal Frequency Division Multiple Access), SC-FDMA(Single Carrier Frequency Division Multiple Access), OFDM-FDMA, OFDM-TDMA, OFDM-CDMA 등과 같은 다양한 다중 접속 방식으로 정보가 전달할 수 있다.
송신기(10)는 채널(30)을 통해서 신호를 송신하고, 수신기(20)는 채널(30)을 통해서 신호를 수신할 수 있다. 전자 시스템(1)은 채널 코딩(channel coding)을 정의할 수 있고, 이에 따라 송신기(10)는 인코딩된 신호를 채널(30)을 통해서 송신할 수 있고, 수신기(20)는 채널(30)을 통해서 수신된 신호를 디코딩할 수 있다. 예를 들면, 전자 시스템(1)은 폴라 코드(또는, 극 부호)(polar code), 리드-솔로몬 코드(Read-Solomon code), 컨볼루션 코드(convolution code) 등에 기초한 채널 코딩을 정의할 수 있다.
도 1에 도시된 바와 같이, 송신기(10)는 채널 코딩을 위하여 인코더(12)를 포함할 수 있으며, 수신기(20)는 디코더(미도시)를 포함할 수 있다. 인코더(12)는 소스 데이터(SD)를 인코딩함으로써 코드워드(CW)를 생성할 수 있다. 코드워드(CW)는 채널(30)에서 발생하는 노이즈, 간섭 등에 기인한 비트 에러를 정정하기 위한 에러 정정 코드를 포함할 수 있다. 송신기(10)는 코드워드(CW)에 대한 블록 기반 인터리빙을 수행하는 인터리버(100)를 포함할 수 있다. 인터리버(100)는 인코더(12)의 채널 코딩과 더불어 데이터 신뢰성을 추가로 개선시키기 위하여 코드워드(CW)에 대한 인터리빙을 수행할 수 있다. 일부 실시예에서, 인코더(12) 및 인터리버(100)는 프로세서(미도시)에 포함된 하나의 회로로 통합될 수 있다. 이 때, 프로세서(미도시)는 채널 코딩과 본 개시의 예시적 실시예들에 따른 인터리빙을 수행할 수 있다.
예시적 실시예로, 인터리버(100)는 코드워드(CW)에 대하여 복수의 서브 블록들이 포함된 블록 기반 인터리빙을 수행할 수 있다. 예시적 실시예로, 블록은 행과 열에 따라 변의 길이가 달라지는 형태일 수 있다. 예를 들어, 직각 이등변 삼각형 형태, 사다리꼴 형태 등의 다양한 형태일 수 있다. 이하에서는, 직각 이등변 삼각형 형태의 블록을 중심으로 본 개시의 실시예들이 서술되나, 이에 국한되지 않음은 이해될 것이다.
예시적 실시예로, 인터리버(100)는 블록을 서브 블록들로 구분하여 인터리빙을 수행할 수 있으며, 서브 블록의 크기를 설정할 수 있다. 일 예로, 인터리버(100)는 송신기(10)의 동작 조건을 기반으로 서브 블록의 크기를 설정할 수 있다. 동작 조건은 송신기(10)의 전력 상태(또는, 배터리 상태), 수신기(20)로 송신해야 할 데이터량 등에 관한 것일 수 있다. 예시적 실시예로, 서브 블록은 제1 방향으로 '
Figure pat00001
'(단, n은 1 이상의 정수)의 비트 길이를 갖고, 제1 방향과 직교하는 제2 방향으로 '1' 비트 길이를 갖도록 설정될 수 있다. 다만, 이는 예시적인 실시예에 불과한 바, 이에 국한되지 않고, 서브 블록은 다른 서브 블록과 소정의 관계가 형성되도록 크기가 다양하게 설정될 수 있다. 한편, 블록은 형태에 따라 제1 방향으로 '
Figure pat00002
'(단, n은 1 이상의 정수)의 비트 길이를 갖고, 제1 방향과 직교하는 제2 방향으로 '1' 비트 길이를 갖는 서브 블록들과 다른 크기를 갖는 서브 블록들을 더 포함할 수 있다. 이렇게 다른 크기를 갖는 서브 블록들에 대한 입출력 인덱스를 생성하는 방법은 도 11 및 도 12에서 구체적으로 후술된다.
인터리버(100)는 코드워드(CW)의 비트들을 좌측으로부터 우측 방향으로 블록의 연속적인 행들에 기록하고, 상단으로부터 하단 방향으로 블록의 연속적인 열들을 독출할 수 있다. 이하에서는, 상단으로부터 하단 방향은 제1 방향 또는 열 방향으로 지칭되고, 좌측으로부터 우측 방향은 제2 방향 또는 행 방향으로 지칭될 수 있다. 일부 실시예에서, 제1 방향과 제2 방향은 블록의 구현 예 또는 인터리빙 기법에 따라 달라질 수 있다.
코드워드(CW)의 비트들을 블록에 기록하기 위해 인터리버(100)는 비트들 각각의 입력 인덱스(또는, 입력 주소)를 생성하고, 코드워드(CW)의 비트들을 블록으로부터 독출하기 위해 인터리버(100)는 비트들 각각의 출력 인덱스(또는, 출력 주소)를 생성할 수 있다. 즉, 인터리버(100)는 생성된 입력 인덱스들에 따라 코드워드(CW)의 비트들을 블록에 기록하고, 생성된 출력 인덱스들에 따라 코드워드(CW)의 비트들을 블록으로부터 리드할 수 있다. 한편, 블록은 인터리버(100)의 내부 메모리의 가상의 공간에 해당될 수 있으며, 블록에 대한 기록 및 독출은 내부 메모리에 대한 기록 및 독출을 의미할 수 있다.
예시적 실시예로, 인터리버(100)는 블록의 제1 열에서의 제1 기준 서브 블록의 제1 기준 입력 인덱스를 생성하고, 제1 기준 입력 인덱스를 기반으로 제1 기준 서브 블록과 제1 방향으로 배치된 적어도 하나의 제1 서브 블록의 제1 입력 인덱스를 생성할 수 있다. 한편, 서브 블록의 입력 인덱스는 서브 블록에 기록되는 비트들 각각에 대응하는 복수의 입력 인덱스들을 포함할 수 있다. 예시적 실시예로, 인터리버(100)는 제1 기준 입력 인덱스와 제1 입력 인덱스가 상호 수열 관계를 형성할 수 있도록 서브 블록의 크기를 설정할 수 있다. 이하에서는, 서브 블록들 간의 수열 관계는 서브 블록들 각각에 대응하는 입력 인덱스들 간의 수열 관계를 의미할 수 있다. 예시적 실시예로, 인터리버(100)는 제1 기준 입력 인덱스를 이용하여 단순한 덧셈, 뺄셈 및 쉬프팅 연산을 통해 제1 입력 인덱스를 생성할 수 있다.
예시적 실시예로, 인터리버(100)는 블록의 제2 열에서의 제2 기준 서브 블록의 제2 기준 입력 인덱스를 생성하고, 제2 기준 입력 인덱스를 기반으로 제2 기준 서브 블록과 제1 방향으로 배치된 적어도 하나의 제2 서브 블록의 제2 입력 인덱스를 생성할 수 있다.
다른 예시적 실시예로, 인터리버(100)는 이전에 생성되었던 제1 기준 입력 인덱스 또는 제1 입력 인덱스를 이용하여 블록의 제2 열에서의 적어도 하나의 제2 서브 블록의 제2 입력 인덱스를 생성할 수 있다. 제1 열에 배치된 제1 서브 블록과 제2 열에 배치된 제2 서브 블록은 소정의 관계를 형성할 수 있으며, 인터리버(100)는 상기 관계를 고려하여 제1 기준 입력 인덱스 또는 제1 입력 인덱스로부터 제2 입력 인덱스를 생성할 수 있다.
인터리버(100)는 전술된 실시예들로 서브 블록들 간의 미리 결정된 관계를 기반으로 단순한 연산을 통해 모든 서브 블록들의 입력 인덱스들을 생성할 수 있다. 인터리버(100)는 생성된 입력 인덱스들에 따라 내부 메모리에 코드워드(CW)의 비트들을 기록할 수 있다. 인터리버(100)는 서브 블록들의 출력 인덱스들을 생성하고, 출력 인덱스들에 따라 내부 메모리로부터 코드워드(CW)의 비트들을 독출함으로써 인터리빙된 코드워드(I_CW)를 출력할 수 있다.
일부 실시예에서 인터리빙된 코드워드(I_CW)는 전술된 블록 인터리빙 외에 추가적인 서브 블록 인터리빙이 수행된 후, 채널(30)을 통해 수신기(20)에 송신될 수 있다.
본 개시의 예시적 실시예에 따른 인터리버(100)는 서브 블록들 간의 관계를 이용하여 단순한 연산을 통해 인터리빙을 위한 입력 인덱스들을 생성하기 때문에 인터리버(100)의 하드웨어 설계가 단순해질 수 있으며, 전력을 효율적으로 사용할 수 있다. 그 결과, 송신기(10)의 전체적인 성능이 개선될 수 있다.
예시적 실시예로, 수신기(20)는 디-인터리버(미도시)를 더 포함하고, 디-인터리버(미도시)를 이용하여 인터리빙된 코드워드(I_CW)를 원래의 순서대로 재배열할 수 있다. 이 때, 디-인터리버(미도시)에도 전술된 인터리버(100)의 기술적 사상이 적용되어 디-인터리버(미도시)는 단순한 연산을 통해 디-인터리빙을 수행할 수 있다. 또한, 수신기(20)는 디코더(미도시)를 더 포함하고, 디코더(미도시)를 이용하여 디-인터리빙된 코드워드를 소스 데이터로 디코딩할 수 있다.
또한, 송신기(10)는 외부로부터 수신되는 신호에 대하여 디-인터리빙을 수행하는 디-인터리버(미도시), 디-인터리빙된 신호에 대한 디코딩을 수행하는 디코더(미도시)를 더 포함할 수 있다. 특히, 디-인터리버(미도시)는 인터리버(100)의 동작에 부합하는 디-인터리빙 동작을 수행할 수 있도록 구성될 수 있다.
도 2는 본 개시의 예시적 실시예에 따른 인터리버의 블록 인터리빙 동작을 설명하기 위한 순서도이다.
도 2를 참조하면, 단계 S100에서 인터리버는 블록을 구성하는 서브 블록의 크기를 설정할 수 있다. 일 예로, 인터리버는 서브 블록의 크기를 장치의 동작 상태에 적응적으로 설정할 수 있다. 인터리버는 제1 방향으로 '
Figure pat00003
'(단, n은 1 이상의 정수)의 비트 길이를 갖고, 제1 방향과 직교하는 제2 방향으로 '1' 비트 길이를 갖도록 서브 블록의 크기를 설정할 수 있다.
단계 S110에서 인터리버는 블록의 제1 열에서의 기준 서브 블록의 기준 입출력 인덱스를 생성할 수 있다. 이하에서, 입출력 인덱스는 입력 인덱스 및 출력 인덱스를 포함한다.
단계 S120에서 인터리버는 블록의 제1 열에서 기준 서브 블록과 제1 방향으로 나란하게 배치된 서브 블록의 입출력 인덱스를 기준 입출력 인덱스를 기반으로 생성할 수 있다. 구체적으로, 인터리버는 기준 서브 블록과 서브 블록의 수열 관계를 기반으로 기준 입력 인덱스로부터 입력 인덱스를 생성할 수 있다. 또한, 인터리버는 서브 블록의 출력 인덱스를 생성할 수 있다. 인터리버는 단계 S120에서 서술된 방식으로 블록의 제1 열 외에 다른 열들의 서브 블록들의 입출력 인덱스들을 생성할 수 있다.
단계 S130에서 인터리버는 생성된 입출력 인덱스를 이용하여 블록 기반 인터리빙을 수행할 수 있다. 예시적 실시예로, 인터리버는 생성된 서브 블록들의 입력 인덱스들에 따라 코드워드의 비트들을 내부 메모리에 기록하고, 생성된 서브 블록들의 출력 인덱스들에 따라 내부 메모리로부터 코드워드들의 비트들을 독출함으로써 블록 기반 인터리빙을 수행할 수 있다.
도 3은 본 개시의 예시적 실시예와의 비교예를 설명하기 위한 도면이다. 도 3에서는 본 개시의 예시적 실시예들을 비교하기 위한 하나의 예시를 도시하고 있으며, 본 개시의 기술적 사상은 도 3에 도시된 예시에 한정 해석되지 않음은 분명하다.
도 3을 참조하면, 블록(BLK)은 직각 이등변 삼각형 형태일 수 있다.
블록(BLK)의 한 변의 길이(T)는 [수학식 1]을 기반으로 설정될 수 있다.
[수학식 1]
Figure pat00004
블록(BLK)에 기록되는 코드워드는 'E' 개의 비트들로 구성될 수 있다. [수학식 1]을 만족하는 값들 중 최소값이 블록(BLK)의 한 변의 길이(T)가 될 수 있다. 일 예로, 블록(BLK)의 한 변의 길이(T)는 '8' 비트 길이에 해당할 수 있다. 블록(BLK)의 'N'으로 표기된 부분은 널(Null) 데이터가 기록되며 널 데이터의 개수(D)는 [수학식 2]와 같을 수 있다.
[수학식 2]
Figure pat00005
블록(BLK)은 제1 내지 제3 부분(P1~P3)으로 구성되고, 제2 부분(P2)까지의 변의 길이(T2)는 [수학식 3]과 같이 설정될 수 있다.
[수학식 3]
Figure pat00006
[수학식 3]을 만족하는 값들 중 최소값이 제2 부분(P2)까지의 변의 길이(T2)가 될 수 있다. 일 예로, '4' 비트 길이에 해당할 수 있다.
제1 부분(P1)까지의 변의 길이(T1)는 [수학식 3]과 같이 설정될 수 있다.
[수학식 4]
Figure pat00007
비교예에서 인터리버는 제1 부분(P1)에서의 입출력 인덱스들을 생성할 때에 다음과 같은 알고리즘을 이용할 수 있다.
for (
Figure pat00008
;
Figure pat00009
;
Figure pat00010
) //
Figure pat00011
: column index
{
for(
Figure pat00012
;
Figure pat00013
;
Figure pat00014
) //
Figure pat00015
: row index
{Output index =
Figure pat00016
Input index =
Figure pat00017
}
블록(BLK)에 기재된 '0' 내지 '36' 은 블록(BLK)에 기록되는 코드워드의 비트들의 입력 인덱스들을 나타낼 수 있다. 상기 알고리즘에서와 같이 코드워드의 비트들은 입력 인덱스들에 따라 좌측으로부터 우측 방향으로 블록(BLK)의 연속적인 행들에 기록될 수 있고, 출력 인덱스들에 따라 상단으로부터 하단 방향으로 블록(BLK)의 연속적인 열들이 독출될 수 있다.
한편, 비교예에서 인터리버는 제1 부분(P1)에서의 입력 인덱스들을 생성하기 위해서 곱셈 연산 및 나눗셈 연산과 같은 복잡한 연산을 수행해야 하는 바, 인터리버의 하드웨어 복잡도 및 전력 소모량이 증가하게 되었다.
도 4는 본 개시의 예시적 실시예에 따른 블록(BLK)을 설명하기 위한 도면이다. 이하 서술되는 블록(BLK)은 본 개시의 기술적 사상의 이해를 돕기 위한 예시로서, 일부의 서브 블록들(SB1~SB6)만이 도시되어 있으며, 본 개시의 예시적 실시예들은 도 4 이외의 다양한 형태의 블록에도 적용될 수 있음은 분명하다.
도 4를 참조하면, 블록(BLK)은 제1 내지 제6 서브 블록(SB1~SB6)을 포함할 수 있다. 블록(BLK)은 직각 이등변 삼각형의 형태를 가지며, 한 변의 길이는 'T' 비트 길이에 해당할 수 있다.
예시적 실시예로, 제1 내지 제6 서브 블록(SB1~SB6)는 제1 방향(D1)(또는, 열 방향)으로 'T'보다 짧은 '
Figure pat00018
' 비트 길이를 가지고, 제2 방향(D2)(또는, 로우 방향)으로 '1' 비트 길이를 가질 수 있다.
예시적 실시예로, 인터리버는 첫번째 열에 대응하는 제1 내지 제3 서브 블록(SB1~SB3)의 입력 인덱스들을 생성할 수 있다. 일 예로, 인터리버는 제1 서브 블록(SB1)을 기준 서브 블록으로 선택하고, 제1 서브 블록(SB1)의 입력 인덱스를 이용하여 제2 및 제3 서브 블록(SB2, SB3)의 입력 인덱스들을 생성할 수 있다. 즉, 제1 서브 블록(SB1)과 제2 서브 블록(SB2)은 상호 수열 관계를 형성할 수 있고, 제1 서브 블록(SB1)과 제3 서브 블록(SB3)도 상호 수열 관계를 형성할 수 있다. 일부 실시예에서, 인터리버는 제1 서브 블록(SB1)의 입력 인덱스를 각각 이용한 제2 서브 블록(SB2)의 입력 인덱스 생성 동작과 제3 서브 블록(SB3)의 입력 인덱스 생성 동작을 병렬적으로 수행할 수 있다. 이를 위해, 인터리버는 적어도 두 개 이상의 인터리빙 회로들을 포함할 수 있다. 인터리버는 제1 서브 블록(SB1)의 입력 인덱스를 이용하여 덧셈, 뺄셈 및 쉬프팅 연산을 통해 제2 및 제3 서브 블록(SB2, SB3)의 입력 인덱스들을 생성할 수 있다. 한편, 서브 블록들(SB1~SB6)에 기록되는 비트 개수는 '
Figure pat00019
' 개이므로, 입력 인덱스를 생성하기 위한 쉬프팅 연산은 곱셈 연산을 대체할 수 있다.
예시적 실시예로, 인터리버는 두번째 열에 대응하는 제4 내지 제6 서브 블록(SB4~SB6)의 입력 인덱스들을 생성할 수 있다. 일 예로, 인터리버는 제4 서브 블록(SB4)을 기준 서브 블록으로 선택하여 제4 서브 블록(SB4)의 입력 인덱스를 이용하여 제5 및 제6 서브 블록(SB5, SB6)의 입력 인덱스들을 생성할 수 있다. 즉, 제4 서브 블록(SB4)과 제5 서브 블록(SB5)은 상호 수열 관계를 형성할 수 있고, 제4 서브 블록(SB4)과 제6 서브 블록(SB6)도 상호 수열 관계를 형성할 수 있다.
다른 예로, 인터리버는 제1 내지 제3 서브 블록(SB1~SB3)의 생성된 입력 인덱스들을 이용하여 제4 내지 제6 서브 블록(SB4~SB6)의 입력 인덱스들을 생성할 수 있다. 예를 들어, 인터리버는 제1 서브 블록(SB1)의 입력 인덱스에 소정의 상수를 합산하여 제4 서브 블록(SB4)의 입력 인덱스를 생성할 수 있다. 인터리버는 제2 서브 블록(SB2)의 입력 인덱스에 소정의 상수를 합산하여 제5 서브 블록(SB5)의 입력 인덱스를 생성할 수 있다. 또한, 인터리버는 제3 서브 블록(SB3)의 입력 인덱스에 소정의 상수를 합산하여 제6 서브 블록(SB6)의 입력 인덱스를 생성할 수 있다. 상수는 열을 기준으로 서브 블록들 간의 거리 차에 의해 결정될 수 있다. 예를 들어, 첫번째 열에 대응하는 서브 블록의 입력 인덱스로부터 두번째 열에 대응하는 서브 블록의 입력 인덱스를 생성할 때에, 상수는 '1' 로 결정될 수 있고, 첫번째 열에 대응하는 서브 블록의 입력 인덱스로부터 세번째 열에 대응하는 서브 블록의 입력 인덱스를 생성할 때에, 상수는 '2' 로 결정될 수 있다. 인터리버는 다른 열의 서브 블록들의 입력 인덱스들을 생성하기 위하여 기준이 되는 열의 서브 블록들의 입력 인덱스들을 내부 메모리에 미리 저장하여 필요할때마다 내부 메모리로부터 독출할 수 있다.
예시적 실시예에 따른 인터리버는 전술된 방식으로 도시되지 않은 나머지 서브 블록들의 입력 인덱스들을 생성할 수 있다. 또한, 인터리버는 서브 블록들의 출력 인덱스들을 생성하여 내부 메모리를 이용한 블록 기반 인터리빙을 수행할 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 인터리버의 동작 방법을 설명하기 위한 순서도이다.
도 5를 참조하면, 단계 S200에서 인터리버는 k(단, k는 1 이상의 정수)를 1로 설정하고, 단계 S210에서 인터리버는 블록의 k번째 열의 기준 서브 블록의 기준 입출력 인덱스를 생성할 수 있다. 단계 S220에서 인터리버는 블록의 k번째 열의 서브 블록의 입출력 인덱스를 생성할 수 있다. 예시적 실시예로, 인터리버는 k번째 열의 기준 서브 블록과 제1 방향으로 배치된 서브 블록의 입력 인덱스를 기준 서브 블록의 기준 입력 인덱스를 기반으로 생성할 수 있다. 한편, 블록의 k번째 열에는 기준 서브 블록과 복수의 서브 블록들이 포함될 수 있으며, 이 때, 단계 S220에서 인터리버는 기준 서브 블록의 기준 입력 인덱스를 이용하여 복수의 서브 블록들의 입력 인덱스들을 생성할 수 있다. 일부 실시예에서, 인터리버는 기준 서브 블록의 기준 입력 인덱스를 이용하여 복수의 서브 블록들의 입력 인덱스들을 생성하는 동작을 병렬적으로 수행할 수 있다. 예를 들어, 인터리버는 기준 입력 인덱스를 이용하여 k번째 열의 제1 서브 블록의 입력 인덱스와 k번째 열의 제2 서브 블록의 입력 인덱스를 병렬적으로 생성할 수 있다.
단계 S230에서 인터리버는 k번째 열이 블록의 마지막 열인지 여부를 판별할 수 있다. 단계 S230가 'NO'인 경우에 단계 S240을 후속하여 인터리버는 k를 카운트 업한 후, 단계 S210을 후속할 수 있다. 도 5에서는 블록의 서브 블록들에 대한 입출력 인덱스들을 열별로 순차적으로 생성하는 것으로 도시되어 있으나, 이에 국한되지 않고, 인터리버는 각각의 열에 대응하는 입출력 인덱스들을 병렬적으로 생성할 수 있다.
단계 S240가 'YES'인 경우에, 단계 S250을 후속하여 인터리버는 블록의 서브 블록들의 생성된 입출력 인덱스들을 이용하여 인터리빙을 수행할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 동일한 열에 배치된 제1 및 제2 서브 블록(SB1, SB2)의 수열 관계를 설명하기 위한 도면이다. 도 6의 제1 및 제2 서브 블록(SB1, SB2)은 도 4의 블록(BLK)의 제1 및 제2 서브 블록(SB1, SB2)에 대응됨을 전제한다. 다만, 도 6에서 서술되는 실시예는 본 개시의 기술적 사상의 이해를 돕기 위한 것에 불과한 바, 이에 국한되지 않고, 블록, 서브 블록의 형태, 인터리빙 방식 등에 따라 형성되는 제1 및 제2 서브 블록(SB1, SB2) 간의 수열 관계에도 본 개시의 기술적 사상이 적용될 수 있음은 분명하다.
도 6을 참조하면, 제1 서브 블록(SB1)은 제1 방향(D1)(또는, 열 방향)으로 배치된 제1 내지 제8 엘리먼트(a1~a8)를 포함하고, 제2 서브 블록(SB2)은 제1 방향(D1)(또는, 열 방향)으로 배치된 제9 내지 제16 엘리먼트(a9~a16)를 포함할 수 있다. 엘리먼트는 인터리빙을 위해 입력 인덱스에 따라 한개의 비트가 기록되거나 출력 인덱스에 따라 독출되는 가상의 공간을 의미할 수 있다. 이하에서는, 제1 서브 블록(SB1)과 제2 서브 블록(SB2)의 관계는 입력 인덱스를 기준으로 서술되며, 엘리먼트의 입력 인덱스는 엘리먼트에 대응되는 비트의 입력 인덱스를 의미할 수 있다.
제1 서브 블록(SB1)에서의 제1 내지 제8 엘리먼트(a1~a8)와 제2 서브 블록(SB2)에서의 제9 내지 제16 엘리먼트(a9~a16) 각각에 대응하는 입력 인덱스의 관계는 도 6에 도시된 것과 같다. 즉, 제1 엘리먼트(a1)의 입력 인덱스는 제2 엘리먼트(a2)의 입력 인덱스와 도 4의 블록(BLK)의 한 변의 길이인 'T' 만큼의 차이가 있을 수 있다. 제2 엘리먼트(a2)의 입력 인덱스와 제3 엘리먼트(a3)의 입력 인덱스는 'T-1' 만큼의 차이가 있을 수 있다. 즉, 제1 내지 제16 엘리먼트(a1~a16)의 입력 인덱스는 다음 [수학식 5]와 같은 수열 관계를 가질 수 있다.
[수학식 5]
Figure pat00020
Figure pat00021
Figure pat00022
제1 내지 제16 엘리먼트(a1~a16)의 입력 인덱스(an_II)는 계차 수열 관계를 가질 수 있으며, 계차(bk)는 등차수열로서 계차의 합(Sn)과 초기 입력 인덱스(a1_II)의 합산 결과는 입력 인덱스(an_II)와 대응될 수 있다.
한편, T=21, 공차(d)=1 임을 전제할 때에, 제1 서브 블록(SB1)의 제1 내지 제8 엘리먼트(a1~a8)와 제2 서브 블록(SB2)의 제9 내지 제16 엘리먼트(a9~a16)의 관계는 다음 [수학식 6]과 같다.
[수학식 6]
Figure pat00023
즉, 제2 서브 블록(SB2)의 제9 내지 제16 엘리먼트(a9~a16)의 입력 인덱스(a(n+8)_II_SB2)와 제1 서브 블록(SB1)의 제1 내지 제8 엘리먼트(a1~a8)의 입력 인덱스(an_II_SB1)는 [수학식 6]과 같은 수열 관계를 가질 수 있다.
예시적 실시예로, 인터리버는 제1 서브 블록(SB1)과 제2 서브 블록(SB2) 간의 관계를 고려하여 제1 서브 블록(SB1)의 입력 인덱스(an_II_SB1)를 생성한 후, [수학식 6]을 기반으로 제2 서브 블록(SB2)의 입력 인덱스(a(n+8)_II_SB2)를 생성할 수 있다. [수학식 6]에서의 곱셈 연산은 서브 블록(SB1, SB2)이
Figure pat00024
개의 엘리먼트들로 구성된 것에 기인하여 쉬프팅 연산으로 대체될 수 있는 바, 인터리버는 [수학식 6]을 기반으로 단순한 덧셈, 뺄셈 및 쉬프팅 연산을 수행하여 제2 서브 블록(SB2)의 입력 인덱스(a(n+8)_II_SB2)를 생성할 수 있다.
도 7a 및 도 7b는 본 개시의 예시적 실시예에 따른 인터리버의 동작을 구체적으로 설명하기 위한 도면이다. 도 7a 및 도 7b에 도시된 실시예는 도 4 내지 도 6에서의 실시예를 바탕으로 한다.
도 7a를 참조하면, 제1 서브 블록(SB1)의 제1 내지 제8 엘리먼트(a1~a8)의 입력 인덱스(an_II_SB1)는 도 6의 [수학식 5]를 기반으로 생성되어 '0, 21, 41, 60, 78, 95, 111, 126'를 가질 수 있다. 제2 서브 블록(SB2)의 제9 내지 제16 엘리먼트(a9~a16)의 입력 인덱스(a(n+8)_II_SB2)는 도 6의 [수학식 6]을 기반으로 제1 내지 제8 엘리먼트(a1~a8)의 입력 인덱스로부터 생성되어 '140, 153, 165, 176, 186, 195, 203, 210'을 가질 수 있다.
한편, 제1 서브 블록(SB1)의 제1 내지 제8 엘리먼트(a1~a8)와 제3 서브 블록(SB3)의 제17 내지 제21 엘리먼트(a17~a21)의 관계는 다음 [수학식 7]과 같다.
[수학식 7]
Figure pat00025
즉, 제3 서브 블록(SB3)의 제17 내지 제21 엘리먼트(a17~a21)의 입력 인덱스(a(n+16)_II_SB3)와 제1 서브 블록(SB1)의 제1 내지 제8 엘리먼트(a1~a8)의 입력 인덱스(an_II_SB1)는 [수학식 7]과 같은 수열 관계를 가질 수 있다. 제3 서브 블록(SB3)의 나머지 영역에는 널(N) 데이터가 기록되며, 이에 대한 설명은 생략한다.
제3 서브 블록(SB3)의 제17 내지 제21 엘리먼트(a17~a21)의 입력 인덱스는 [수학식 7]을 기반으로 제1 내지 제5 엘리먼트(a1~a5)의 입력 인덱스로부터 생성되어 '216, 221, 225, 228, 230'을 가질 수 있다.
예시적 실시예로, 인터리버는 제2 서브 블록(SB2)의 입력 인덱스를 생성하는 동작과 제3 서브 블록(SB3)의 입력 인덱스를 생성하는 동작을 병렬적으로 수행할 수 있다. 이에 대한 구체적인 실시예는 도 8a에서 후술한다.
도 7b를 더 참조하면, 제4 서브 블록(SB4)의 제22 내지 제29 엘리먼트(a22~a29)의 입력 인덱스는 '1, 22, 42, 61, 79, 95, 111, 127'을 가질 수 있다. 제5 서브 블록(SB5)의 제30 내지 제37 엘리먼트(a30~a37)의 입력 인덱스는 도 6의 [수학식 6]을 기반으로 제22 내지 제29 엘리먼트(a22~a29)의 입력 인덱스로부터 생성되어 '141, 154, 166, 177, 187, 196, 204, 211'을 가질 수 있다.
제6 서브 블록(SB6)의 제38 내지 제42 엘리먼트(a38~a42)의 입력 인덱스는 [수학식 7]을 기반으로 제22 내지 제26 엘리먼트(a22~a26)의 입력 인덱스로부터 생성되어 '217, 222, 226, 229, 231'을 가질 수 있다.
도 8a는 본 개시의 예시적 실시예에 따른 인터리버(100)의 구성을 설명하기 위한 블록도이고, 도 8b는 도 8a의 인터리버(100)의 출력을 설명하기 위한 도면이다.
도 8a를 참조하면, 인터리버(100)는 제1 인터리빙 회로(110), 제2 인터리빙 회로(120) 및 출력 버퍼(130)를 포함할 수 있다. 제1 및 제2 인터리빙 회로(110, 120)는 코드워드(CW)를 수신하여 코드워드(CW)의 복수의 비트들 중 자신에게 할당된 비트들에 대한 인터리빙을 상호 병렬적으로 수행할 수 있다. 일 예로, 도 7a를 더 참조하여 서술하면, 제1 인터리빙 회로(110)는 제2 서브 블록(SB2)의 입력 인덱스를 생성하고, 이와 병렬적으로 제2 인터리빙 회로(120)는 제3 서브 블록(SB3)의 입력 인덱스를 생성할 수 있다. 제1 및 제2 인터리빙 회로(110, 120)는 각각의 인터리빙 결과를 동일한 시간 구간에서 출력 버퍼(130)에 제공할 수 있다. 출력 버퍼(130)는 소정의 타이밍에 맞춰 저장된 인터리빙 결과를 인터리빙된 코드워드(I_CW)로서 출력할 수 있다.
도 8b를 더 참조하면, 출력 버퍼(130)에는 제1 인터리빙 회로(110)로부터 제x 서브 블록(SBx)에 대응하는 코드워드(CW)의 비트들에 대한 제1 인터리빙 결과와 제2 인터리빙 회로(120)로부터 제x+1 서브 블록(SB(x+1))에 대응하는 코드워드(CW)의 비트들에 대한 제2 인터리빙 결과 중 일부가 동시에 저장될 수 있다. 일부 실시예에서, 출력 버퍼(130)의 사이즈에 따라 제2 인터리빙 결과 전체가 제1 인터리빙 결과와 함께 출력 버퍼(130)에 동시에 저장될 수도 있다.
위와 같은 인터리버(100)의 구성 및 동작을 통해 블록 기반 인터리빙 동작을 신속하게 수행하여 인터리빙 성능이 향상될 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 인터리버의 블록 인터리빙 동작을 설명하기 위한 순서도이다.
도 9를 참조하면, 단계 S300에서 인터리버는 기준 열의 서브 블록들의 입출력 인덱스들을 생성하고, 저장할 수 있다. 단계 S310에서 인터리버는 저장된 입출력 인덱스들을 이용하여 다른 열들의 서브 블록들의 입출력 인덱스들을 생성할 수 있다. 구체적으로, 기준 열의 서브 블록들과 다른 열들의 서브 블록들 간에는 소정의 관계가 형성될 수 있으며, 이러한 관계를 고려하여 인터리버는 저장된 입력 인덱스들로부터 소정의 상수를 합산함으로써 다른 열들의 서브 블록들의 입력 인덱스들을 생성할 수 있다. 한편, 인터리버는 서브 블록들의 출력 인덱스들은 도 3에서 서술된 알고리즘을 기반으로 생성할 수 있다. 단계 S310에서 인터리버는 생성된 입출력 인덱스들을 이용하여 인터리빙을 수행할 수 있다.
도 10은 본 개시의 예시적 실시예에 따른 인터리버의 동작을 구체적으로 설명하기 위한 도면이다. 도 10에 도시된 실시예는 도 4 및 도 9에서의 실시예를 바탕으로 한다.
도 10을 참조하면, 인터리버는 도 7a에서 서술된 것과 같이 제1 내지 제3 서브 블록(SB1~SB3)의 입력 인덱스들을 생성하고, 생성된 제1 내지 제3 서브 블록(SB1~SB3)의 입력 인덱스를 이용하여 제4 내지 제6 서브 블록(SB4~SB6)의 입력 인덱스를 생성할 수 있다.
예시적 실시예로, 블록(BLK, 도 4)의 첫째 열에 배치된 제1 서브 블록(SB1)의 입력 인덱스는 제1 서브 블록(SB1)과 제2 방향으로 인접하게 블록(BLK, 도 4)의 둘째 열에 배치된 제4 서브 블록(SB4)의 입력 인덱스 간의 관계는 다음 [수학식 8]과 같다.
[수학식 8]
Figure pat00026
상수(c)는 제1 서브 블록(SB1)과 제4 서브 블록(SB4) 간의 제2 방향을 기준으로 상호 간의 거리에 따라 결정될 수 있으며, 도 10에 도시된 바와 같이, 상수(c)는 '1' 값을 가질 수 있다. 이를 바탕으로, 일 예로, 제1 서브 블록(SB1)과 제2 방향으로 블록(BLK, 도 4)의 셋째 열에 나란하게 배치된 제7 서브 블록(미도시)과 제1 서브 블록(SB1)의 관계에서는 상수(c)는 '2' 값을 가질 수 있다.
위의 관계는 제2 방향으로 나란하게 배치된 제2 서브 블록(SB2)과 제5 서브 블록(SB5), 제3 서브 블록(SB3)과 제6 서브 블록(SB6) 간의 관계에도 적용될 수 있다.
인터리버는 첫째 열을 기준 열로 설정하여 기준 열의 제1 내지 제3 서브 블록(SB1~SB3)의 입력 인덱스들을 생성한 후에 내부 메모리에 저장하여, 제4 내지 제6 서브 블록(SB4~SB6)들을 포함하는 나머지 서브 블록들의 입력 인덱스들을 생성하는 데에 이용할 수 있다.
본 개시의 예시적 실시예에 따른 인터리버는 기준 열의 서브 블록들의 입력 인덱스들을 이용하여 단순한 연산으로 나머지 서브 블록들의 입력 인덱스들을 빠르게 생성할 수 있는 바, 전력 소모를 최소화하고, 인터리빙 성능이 향상될 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 블록(BLK)을 설명하기 위한 도면이다. 이하에서는, 도 4와 중복되는 내용은 생략한다.
도 11을 참조하면, 블록(BLK)은 제(p-1) 및 제p 서브 블록(SB(p-1), SBp)을 더 포함할 수 있다. 단, p는 7이상의 정수이다. 제(p-1) 및 제p 서브 블록(SB(p-1), SBp)은 블록(BLK)의 형태의 제약으로 인하여 제1 내지 제6 서브 블록(SB1~SB6)과 크기가 다를 수 있다. 제(p-1) 및 제p 서브 블록(SB(p-1)~SBp)은 블록(BLK)의 형태에 따라 다양한 크기로 설정될 수 있으며, 블록(BLK)은 제1 내지 제6 서브 블록(SB1~SB6)과 크기가 다른 서브 블록들(미도시)을 더 포함할 수 있다.
예시적 실시예로, 인터리버는 도 9 및 도 10에서 서술된 실시예들을 기반으로 제(p-1) 및 제p 서브 블록(SB(p-1), SBp)의 입력 인덱스들을 생성할 수 있다. 이에 대한 구체적인 실시예는 도 12에서 후술한다.
도 12는 도 11의 제(p-1) 서브 블록(SB(p-1))의 입력 인덱스를 생성하는 실시예를 설명하기 위한 도면이다.
도 12를 참조하면, 제(p-1) 서브 블록(SB(p-1))는 제1 방향으로 '4' 비트 길이를 갖고, 제2 방향으로 '2' 비트 길이를 가지고, 블록(BLK)의 (p-1)번째 열과 p번째 열에 걸쳐 배치될 수 있다. 제(p-1) 서브 블록(SB(p-1))은 8개의 엘리먼트들(am~a(m+7))을 포함할 수 있다.
예시적 실시예로, 인터리버는 기준 열의 제1 서브 블록(SB1)의 입력 인덱스를 이용하여 제(p-1) 서브 블록(SB(p-1))의 입력 인덱스를 생성할 수 있다. 일 예로, 제1 서브 블록(SB1)과 제(p-1) 서브 블록(SB(p-1))의 (p-1)번째 열의 엘리먼트들(am~a(m+3))의 관계에서 도 10의 [수학식 8]에서의 상수(c)는 'p-2' 값을 가질 수 있다. 또한, 제1 서브 블록(SB1)과 제(p-1) 서브 블록(SB(p-1))의 (p)번째 열의 엘리먼트들(a(m+4)~a(m+7))의 관계에서 도 10의 [수학식 8]에서의 상수(c)는 'p-1' 값을 가질 수 있다.
인터리버는 상기 관계를 고려하여 제1 서브 블록(SB1)의 입력 인덱스에 각각의 상수를 합산하여 제(p-1) 서브 블록(SB(p-1))의 입력 인덱스를 생성할 수 있다. 인터리버는 (p-1)번째 열의 엘리먼트들(am~a(m+3))에 대응하는 'p-2, p+19, p+58, p+76'의 값을 갖는 입력 인덱스들을 생성하고, p번째 열의 엘리먼트들(a(m+4)~a(m+7))에 대응하는 'p-1, p+20, p+59, p+77'의 값을 갖는 입력 인덱스들을 생성할 수 있다. 일부 실시예에 있어서, 제(p-1) 서브 블록(SB(p-1))의 입력 인덱스를 생성하기 위해 이용하는 입력 인덱스에 대응하는 서브 블록은 기준 열에 한정되지 않고, 다양할 수 있다. 일 예로, (p-2)번째 열에 배치된 서브 블록(미도시)의 입력 인덱스를 이용하여 제(p-1) 서브 블록(SB(p-1))의 입력 인덱스를 생성할 수 있다.
한편, 인터리버는 위와 같은 방식으로 크기가 다른 제p 서브 블록(SBp)의 입력 인덱스도 생성할 수 있다.
본 개시의 예시적 실시예에 따른 인터리버는 크기가 다른 서브 블록들에 대해 서브 블록들 간 관계를 이용하여 단순한 연산으로 빠르게 입력 인덱스들을 생성할 수 있어 전력 소모를 최소화하고, 인터리빙 성능이 향상될 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 통신 시스템(1000)을 나타내는 블록도이다.
도 13을 참조하면, 통신 시스템(1000)은 단말(1100) 및 기지국(1200)을 포함할 수 있다. 단말(1100)은 무선 통신 장치로서, 이동성을 가질 수 있고, 기지국(1200)과 하향링크 채널(DL) 및 상향링크 채널(UL)을 통해 통신하여 데이터 및 제어 정보를 송수신할 수 있다.
본 개시의 예시적 실시예에 따른 인터리빙 방식은 상향링크 채널(UL)의 상향링크 제어 채널(Physical Uplink Control Channel, PUCCH)의 전송을 위해 이용될 수 있으며, 더 나아가, 통신 시스템(1000)이 V2X(Vehicle-to-Everything) 통신을 지원할 때에 다른 단말(미도시)로의 사이드링크 제어 채널(Physicnal Sidelink Control Channel, PSCCH)의 전송을 위해 이용될 수 있다. 다만, 이는 예시적 실시예에 불과한 바, 이에 국한되지 않고, 더 다양한 제어 채널에도 본 개시의 기술적 사상이 적용될 수 있다.
단말(1100)은 복수의 안테나들(AT), RF(Radio Frequency) 집적회로(1110), 베이스밴드 집적회로(1120), 프로세서(1130)를 포함할 수 있다. 한편, 도 13에 도시된 단말(1000)의 구현예는 예시적인 것에 불과한 바, 이에 제한되지 않고, 단말(1000)은 더 많거나, 더 적은 구성을 포함할 수 있다. 또한, 일부 실시예에서 RF 집적회로(1110) 및 베이스밴드 집적회로(1120)는 하나의 집적회로에 포함되도록 구현될 수 있다.
RF 집적회로(1110)는 신호의 대역 변환, 증폭 등 무선 채널을 통해 신호를 복수의 안테나들(AT)을 이용하여 송수신하기 위한 기능을 수행할 수 있다. 구체적으로, RF 집적회로(1110)는 베이스밴드 집적회로(1120)로부터 제공되는 베이스밴드 신호를 RF 대역 신호로 상향 변환한 후 안테나들(AT)을 통해 송신하고, 안테나들(AT)을 통해 수신되는 RF 대역 신호를 베이스밴드 신호로 하향 변환할 수 있다. 예를 들어, RF 집적회로(1110)는 송신 필터, 수신 필터, 증폭기, 믹서(mixer), 오실레이터(oscillator), DAC(Digital to Analog Converter), ADC(Analog to Digital Converter) 등을 포함할 수 있다. 또한, RF 집적회로(1110)는 복수의 RF 체인들(미도시)을 더 포함할 수 있으며, 안테나들(AT)을 이용한 빔포밍(beamforming)을 수행할 수 있다. RF 집적회로(1110)는 빔포밍을 위해 안테나들(AT)을 통해 송수신되는 신호들 각각의 위상 및 크기를 조절할 수 있다 더 나아가, RF 집적회로(1110)는 MIMO(Multi Input Multi Output)를 수행할 수 있으며, MIMO 동작 수행 시 여러 개의 레이어들을 수신할 수 있다.
베이스밴드 집적회로(1120)는 시스템의 물리 계층 규격에 따라 베이스밴드 신호 및 비트열 간 변환 동작을 수행할 수 있다. 예를 들어, 베이스밴드 집적회로(1120)는 데이터 송신 시에 송신 비트열을 부호화 및 변조함으로써 복소 심벌들을 생성할 수 있다. 또한, 베이스밴드 집적회로(1120)는 데이터 수신 시에 RF 집적회로(1110)로부터 제공되는 베이스밴드 신호를 복조 및 복호화하여 수신 비트열을 복원할 수 있다.
RF 집적회로(1110) 및 베이스밴드 집적회로(1120)는 상술한 바와 같이 신호를 송수신할 수 있다. RF 집적회로(1110) 및 베이스밴드 집적회로(1120)는 송신부, 수신부, 송수신부 또는 통신부로 지칭될 수 있다. 더 나아가, RF 집적회로(1110) 및 베이스밴드 집적회로(1120) 중 적어도 하나는 서로 다른 복수의 무선 접속 기술들을 지원하기 위한 복수의 통신 모듈들을 포함할 수 있다. 또한, RF 집적회로(1110) 및 베이스밴드 집적회로(1120) 중 적어도 하나는 서로 다른 주파수 대역의 신호들을 처리하기 위해 서로 다른 통신 모듈들을 포함할 수 있다. 예를 들어, 서로 다른 무선 접속 기술들은 NR(New Radio) 기술, LTE 기술 등을 포함할 수 있다. 또한, 서로 다른 주파수 대역들은 극고단파(super high frequency) 대역, 밀리미터파 대역 등을 포함할 수 있다. 단말(1100)은 RF 집적회로(1110) 및 베이스밴드 집적회로(1120)를 이용하여 기지국(1200)과 통신할 수 있다.
프로세서(1130)는 단말(1000)의 전반적인 동작들을 제어할 수 있다. 예시적 실시예로, 프로세서(1130)는 본 개시의 예시적 실시예들에 따른 인터리빙을 수행하는 인터리버(1132)를 포함할 수 있다. 인터리버(1132)는 블록의 서브 블록들 간의 수열 관계를 이용하여 단순한 연산을 통해 서브 블록들의 입출력 인덱스들을 생성할 수 있다. 인터리버(1132)는 상기 수열 관계가 만족할 수 있도록 서브 블록들의 크기를 설정할 수 있다.
본 개시의 예시적 실시예들에 따른 인터리버(1132)의 하드웨어가 단순해지고, 전력 소모가 최소화됨에 따라 인터리빙에 의한 프로세서(1130)의 부담(burden)을 줄임으로써 프로세서(1130)의 성능을 향상시킬 수 있다.
프로세서(1130)는 소정의 제어 채널의 코딩을 수행하고, 인터리버(1132)를 이용하여 채널 코딩 결과 생성된 코드워드를 인터리빙한 후, RF 집적회로(1110) 및 베이스밴드 집적회로(1120)를 이용하여 기지국(1200) 또는 다른 단말(미도시)에 송신할 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 시스템들을 나타내는 블록도이다. 도 14에 도시된 바와 같이, 메모리 시스템(2000) 및 호스트 시스템(2300)은 인터페이스(2400)를 통해서 통신할 수 있고, 메모리 시스템(2000)은 메모리 제어기(2100) 및 메모리 장치들(2200)을 포함할 수 있다.
인터페이스(2400)는 전기적 신호 및/또는 광신호를 사용할 수 있고, 비제한적인 예시로서, SATA(serial advanced technology attachment) 인터페이스, SATAe(SATA express) 인터페이스, SAS(serial attached small computer system interface; serial attached SCSI), USB(Universal Serial Bus) 인터페이스 또는 이들의 조합으로 구현될 수 있다. 호스트 시스템(2300) 및 메모리 제어기(2100)는 직렬 통신을 위하여 SerDes를 포함할 수 있다.
일부 실시예들에서, 메모리 시스템(2000)은 호스트 시스템(2300)과 제거 가능하게(removable) 결합됨으로써 호스트 시스템(2300)과 통신할 수 있다. 메모리 장치(2200)는 휘발성 메모리 또는 불휘발성 메모리일 수 있고, 메모리 시스템(2000)은 스토리지 시스템으로서 지칭될 수도 있다. 예를 들면, 메모리 시스템(2000)은 비제한적인 예시로서 SSD(solid-state drive or solid-state disk), 임베디드 SSD(embedded SSD; eSSD), 멀티미디어 카드(multimedia card; MMC), 임베디드 멀티미디어 카드(embedded multimedia card; eMMC) 등으로 구현될 수 있다. 메모리 제어기(2100)는 인터페이스(2400)를 통해서 호스트 시스템(2300)로부터 수신된 요청에 응답하여 메모리 장치들(2200)을 제어할 수 있다.
한편, 본 개시의 예시적 실시예들에 따른 인터리빙을 수행하는 인터리버(미도시)가 아날로그-디지털 변환 회로는 메모리 제어기(2100), 메모리 장치들(2200) 및 호스트 시스템(2300)에 각각 포함되도록 구현될 수 있다. 구체적으로, 메모리 제어기(2100), 메모리 장치들(2200), 호스트 시스템(2300)은 본 개시의 예시적 실시예들에 따른 인터리버를 이용하여 ECC를 포함하는 소정의 코드워드 또는 소정의 데이터를 인터리빙한 후 송신할 수 있다.
도 15는 본 개시의 예시적 실시예에 따른 프로세서(3000)를 나타내는 블록도이다. 일부 실시예들에서, 도 1의 인터리버(100)는 도 15의 프로세서(3000)에 구현될 수 있다.
도 15에 도시된 바와 같이, 프로세서(3000)는 ASIC(Application Specific Integrated Circuit)(3051), ASIP(Application Specific Instruction set Processor)(3053), 메모리(3055), 메인 프로세서(3057) 및 메인 메모리(3059)를 포함할 수 있다. 일부 실시예들에서, ASIC(3051), ASIP(3053) 및 메인 프로세서(3057) 중 2개 이상은 상호 통신할 수 있다. 또한, 일부 실시예들에서, ASIC(3051), ASIP(3053), 메모리(3055), 메인 프로세서(3057) 및 메인 메모리(3059) 중 적어도 2개 이상은 하나의 반도체 칩에 내장될(embedded) 수 있다.
ASIP(3053)은 특정한 용도를 위하여 커스텀화된 집적 회로로서, 특정 어플리케이션을 위한 전용의 명령어 세트(instruction set)를 지원할 수 있고, 명령어 세트에 포함된 명령어를 실행할 수 있다. 메모리(3055)는 ASIP(3053)와 통신할 수 있고, 비일시적인 저장장치로서 ASIP(3053)에 의해서 실행되는 복수의 명령어들을 저장할 수도 있다. 예를 들면, 메모리(3055)는, 비제한적인 예시로서 RAM(Random Access Memory), ROM(Read Only Memory), 테이프, 자기디스크, 광학디스크, 휘발성 메모리, 비휘발성 메모리 및 이들의 조합과 같이, ASIP(3053)에 의해서 접근가능한 임의의 유형의 메모리를 포함할 수 있다. 일부 실시예들에서, 메모리(3055)는 다른 서브 블록들의 입력 인덱스들을 생성하기 위해 이용되는 기준 서브 블록의 입력 인덱스가 저장될 수 있다.
메인 프로세서(3057)는 복수의 명령어들을 실행함으로써 프로세서(3050)를 제어할 수 있다. 예를 들면, 메인 프로세서(3057)는 ASIC(3051) 및 ASIP(3053)를 제어할 수도 있다. 메인 메모리(3059)는 메인 프로세서(3057)와 통신할 수 있고, 메인 프로세서(3057)에 의해서 접근가능한 임의의 유형의 메모리를 포함할 수 있다. 일부 실시예들에서, 메인 메모리(3059)는 비일시적인 저장장치로서 메인 프로세서(3057)에 의해서 실행되는 복수의 명령어들을 저장할 수도 있다.
예시적 실시예들에 따른 인터리빙은, 도 15의 프로세서(3000)에 포함된 구성요소들 중 적어도 하나에 의해서 수행될 수 있다. 예를 들면, 도 1의 인터리버(100)의 동작 중 적어도 일부는 메모리(3055)에 저장된 복수의 명령어들로서 구현될 수 있고, ASIP(3053)는 메모리(3055)에 저장된 복수의 명령어들을 실행함으로써 인터리빙 단계들 중 적어도 하나를 수행할 수 있다. 일부 실시예들에서, 인터리빙 단계들 중 적어도 하나는, 논리 합성 등을 통해서 설계된 하드웨어 블록에 의해 수행될 수 있다. 일부 실시예들에서, 인터리빙의 단계들 중 적어도 하나는, 메인 메모리(3059)에 저장된 복수의 명령어들로서 구현될 수 있고, 메인 프로세서(3057)가 메인 메모리(3059)에 저장된 복수의 명령어들을 실행함으로써 인터리빙 단계들 중 적어도 하나를 수행할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 이용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 이용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 이용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 소스 데이터를 인코딩하여 복수의 비트들로 구성된 코드워드를 생성하도록 구성된 인코더(encoder); 및
    상기 코드워드에 대하여 복수의 서브 블록들이 포함된 블록 기반 인터리빙을 수행하도록 구성된 인터리버(interleaver)를 포함하고,
    상기 인터리버는,
    상기 서브 블록들 중 제1 기준 서브 블록의 제1 기준 입력 인덱스를 생성하고, 상기 제1 기준 입력 인덱스를 기반으로 상기 서브 블록들 중 상기 제1 기준 서브 블록으로부터 제1 방향으로 인접하게 배치된 제1 서브 블록의 제1 입력 인덱스를 생성하며, 상기 제1 기준 입력 인덱스 및 상기 제1 입력 인덱스에 따라 상기 제1 기준 서브 블록 및 상기 제1 서브 블록에 대응하는 비트들을 내부 메모리에 저장하도록 구성된 것을 특징으로 하는 장치.
  2. 제1항에 있어서,
    상기 블록은,
    행과 열에 따라 변의 길이가 달라지는 형태인 것을 특징으로 하는 장치.
  3. 제2항에 있어서,
    상기 블록은,
    직각 이등변 삼각형 형태인 것을 특징으로 하는 장치.
  4. 제1항에 있어서,
    상기 제1 기준 서브 블록 및 상기 제1 서브 블록은,
    상기 제1 방향으로
    Figure pat00027
    (단, n은 1이상의 정수)비트 길이를 갖고, 상기 제1 방향과 직교하는 제2 방향으로 1비트 길이를 갖는 것을 특징으로 하는 장치.
  5. 제1항에 있어서,
    상기 인터리버는,
    상기 제1 기준 서브 블록과 상기 제1 서브 블록 간의 수열 관계를 기반으로 상기 제1 기준 입력 인덱스로부터 덧셈, 뺄셈 및 비트 쉬프트 연산을 통해 상기 제1 입력 인덱스를 생성하도록 구성된 것을 특징으로 하는 장치.
  6. 제1항에 있어서,
    상기 인터리버는,
    상기 제1 기준 서브 블록 및 상기 제1 서브 블록의 출력 인덱스를 생성하고, 상기 출력 인덱스에 따라 상기 내부 메모리로부터 상기 제1 기준 서브 블록 및 상기 제1 서브 블록에 대응하는 상기 비트들을 출력하도록 구성된 것을 특징으로 하는 장치.
  7. 제1항에 있어서,
    상기 인터리버는,
    상기 서브 블록들 중 상기 제1 기준 서브 블록으로부터 상기 제1 방향에 직교하는 제2 방향으로 인접한 제2 기준 서브 블록의 제2 기준 입력 인덱스를 생성하고, 상기 제2 기준 입력 인덱스를 기반으로 상기 서브 블록들 중 상기 제2 기준 서브 블록으로부터 상기 제1 방향으로 배치된 제2 서브 블록의 제2 입력 인덱스를 생성하며, 상기 제2 기준 입력 인덱스 및 상기 제2 입력 인덱스에 따라 상기 제2 기준 서브 블록 및 상기 제2 서브 블록에 대응하는 비트들을 상기 내부 메모리에 저장하도록 구성된 것을 특징으로 하는 장치.
  8. 제1항에 있어서,
    상기 인터리버는,
    상기 제1 기준 입력 인덱스를 기반으로 상기 서브 블록들 중 상기 제1 서브 블록으로부터 상기 제1 방향으로 인접하게 배치된 제2 서브 블록의 제2 입력 인덱스를 생성하도록 구성된 것을 특징으로 하는 장치.
  9. 제8항에 있어서,
    상기 인터리버는,
    상기 제1 입력 인덱스의 생성 동작과 상기 제2 입력 인덱스의 생성 동작을 병렬적으로 수행하도록 구성된 것을 특징으로 하는 장치.
  10. 제9항에 있어서,
    출력 버퍼를 더 포함하고,
    상기 인터리버는,
    상기 제1 서브 블록에 대한 인터리빙 결과와 상기 제2 서브 블록에 대한 인터리빙 결과를 동일한 시간 구간에서 상기 출력 버퍼에 저장하도록 구성된 것을 특징으로 하는 장치.
  11. 제1항에 있어서,
    상기 인터리버는,
    상기 제1 서브 블록으로부터 상기 제1 방향에 직교하는 제2 방향으로 배치된 제2 서브 블록의 제2 입력 인덱스를 상기 제1 입력 인덱스를 이용하여 생성하도록 구성된 것을 특징으로 하는 장치.
  12. 제9항에 있어서,
    상기 인터리버는,
    상기 제1 서브 블록과 상기 제2 서브 블록 간의 거리에 부합하는 상수와 상기 제1 입력 인덱스를 합산하여 상기 제2 입력 인덱스를 생성하도록 구성된 것을 특징으로 하는 장치.
  13. 복수의 비트들로 구성된 코드워드에 대하여 복수의 서브 블록들이 포함된 블록 기반 인터리빙 방법으로서,
    상기 서브 블록들 중 제1 기준 서브 블록의 제1 기준 입력 인덱스를 생성하는 단계;
    상기 제1 기준 입력 인덱스를 기반으로 상기 서브 블록들 중 상기 제1 기준 서브 블록으로부터 제1 방향으로 인접하게 배치된 제1 서브 블록의 제1 입력 인덱스를 생성하는 단계; 및
    상기 제1 기준 입력 인덱스 및 상기 제1 서브 블록에 대응하는 비트들을 저장하는 단계를 포함하는 것을 특징으로 하는 블록 기반 인터리빙 방법.
  14. 제13항에 있어서,
    상기 제1 입력 인덱스를 생성하는 단계는,
    상기 제1 기준 서브 블록과 상기 서브 블록 간의 수열 관계를 기반으로 상기 제1 기준 입력 인덱스로부터 덧셈, 뺄셈 및 비트 쉬프트 연산을 통해 상기 제1 입력 인덱스를 생성하는 것을 특징으로 하는 블록 기반 인터리빙 방법.
  15. 제13항에 있어서,
    상기 제1 기준 입력 인덱스를 기반으로 상기 서브 블록들 중 상기 제1 서브 블록으로부터 상기 제1 방향으로 인접하게 배치된 제2 서브 블록의 제2 입력 인덱스를 생성하는 단계를 더 포함하는 것을 특징으로 하는 블록 기반 인터리빙 방법.
  16. 메모리;
    소스 데이터를 인코딩하여 복수의 비트들로 구성된 코드워드를 생성하고, 상기 코드워드에 대하여 복수의 서브 블록들이 포함된 블록 기반 인터리빙을 수행하도록 구성된 프로세서; 및
    인터리빙된 상기 코드워드를 포함하는 데이터를 소정의 채널로 출력하도록 구성된 집적 회로를 포함하며,
    상기 프로세서는,
    상기 서브 블록들 중 제1 열에 대응하는 제1 서브 블록들 간의 수열 관계를 기반으로 상기 제1 서브 블록들의 제1 입력 인덱스들을 생성하여 상기 제1 서브 블록들에 대응하는 비트들을 상기 메모리에 저장하고, 상기 제1 서브 블록들의 제1 출력 인덱스들에 따라 상기 메모리에 저장된 상기 비트들을 출력하도록 구성된 것을 특징으로 하는 장치.
  17. 제16항에 있어서,
    상기 프로세서는,
    상기 제1 서브 블록들 중 기준 서브 블록의 기준 입력 인덱스로부터 덧셈, 뺄셈 및 쉬프트 연산을 통해 상기 제1 입력 인덱스들을 생성하도록 구성된 것을 특징으로 하는 장치.
  18. 제16항에 있어서,
    상기 프로세서는,
    상기 서브 블록들 중 제2 열에 대응하는 제2 서브 블록들의 제2 입력 인덱스들을 상기 제1 입력 인덱스들을 이용하여 생성하도록 구성된 것을 특징으로 하는 장치.
  19. 제18항에 있어서,
    상기 프로세서는,
    상기 제1 서브 블록들과 상기 제2 서브 블록들 간의 행 방향의 거리 차이에 부합하는 상수를 상기 제1 입력 인덱스들에 합산하여 상기 제2 입력 인덱스들을 생성하도록 구성된 것을 특징으로 하는 장치.
  20. 제18항에 있어서,
    상기 제1 서브 블록들은,
    열 방향으로
    Figure pat00028
    (단, n은 1이상의 정수)비트 길이를 갖고, 행 방향으로 1비트 길이를 갖는 것을 특징으로 하는 장치.
KR1020210018534A 2021-02-09 2021-02-09 데이터 전송을 위한 블록 인터리빙을 수행하는 장치 및 방법 KR20220114920A (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020210018534A KR20220114920A (ko) 2021-02-09 2021-02-09 데이터 전송을 위한 블록 인터리빙을 수행하는 장치 및 방법
US17/559,132 US11804926B2 (en) 2021-02-09 2021-12-22 Method and apparatus for performing block interleaving for data transmission
EP22151306.2A EP4040684A3 (en) 2021-02-09 2022-01-13 Method and apparatus for performing block interleaving for data transmission
TW111104789A TW202239153A (zh) 2021-02-09 2022-02-09 用於執行資料傳輸的區塊交插的方法和設備
CN202210121153.6A CN114915299A (zh) 2021-02-09 2022-02-09 用于执行用于数据传输的块交织的方法和设备
US18/496,280 US20240063943A1 (en) 2021-02-09 2023-10-27 Method and apparatus for performing block interleaving for data transmission

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210018534A KR20220114920A (ko) 2021-02-09 2021-02-09 데이터 전송을 위한 블록 인터리빙을 수행하는 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20220114920A true KR20220114920A (ko) 2022-08-17

Family

ID=79602028

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210018534A KR20220114920A (ko) 2021-02-09 2021-02-09 데이터 전송을 위한 블록 인터리빙을 수행하는 장치 및 방법

Country Status (5)

Country Link
US (2) US11804926B2 (ko)
EP (1) EP4040684A3 (ko)
KR (1) KR20220114920A (ko)
CN (1) CN114915299A (ko)
TW (1) TW202239153A (ko)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6845482B2 (en) 2001-02-28 2005-01-18 Qualcomm Incorporated Interleaver for turbo decoder
US7343530B2 (en) 2004-02-10 2008-03-11 Samsung Electronics Co., Ltd. Turbo decoder and turbo interleaver
KR20050094304A (ko) 2004-03-22 2005-09-27 삼성전자주식회사 통신시스템의 인터리버 및 인터리빙 방법
US7793169B2 (en) * 2005-10-19 2010-09-07 Telefonaktiebolaget Lm Ericsson (Publ) Intelligent table-driven interleaving
WO2008151061A1 (en) 2007-05-31 2008-12-11 Interdigital Technology Corporation Channel coding and rate matching for lte control channels
KR20090030378A (ko) 2007-09-20 2009-03-25 삼성전자주식회사 이동통신 시스템에서 블럭 인터리빙을 위한 장치 및 방법
KR101775704B1 (ko) * 2014-05-21 2017-09-19 삼성전자주식회사 송신 장치 및 그의 인터리빙 방법
JP6897205B2 (ja) 2017-02-20 2021-06-30 ソニーグループ株式会社 送信装置、送信方法、受信装置、及び、受信方法
US20180367202A1 (en) 2017-06-16 2018-12-20 Mediatek Inc. Codeword Mapping In NR And Interleaver Design For NR
WO2019024086A1 (en) 2017-08-04 2019-02-07 Qualcomm Incorporated EFFICIENT INTERLACTIVE DESIGNS FOR POLAR CODES
US10873347B2 (en) 2017-08-07 2020-12-22 Mediatek Inc. Channel bit interleaver design for polar coding chain
CN109495207B (zh) * 2017-09-11 2021-08-10 上海诺基亚贝尔股份有限公司 用于在无线通信系统中交织数据的方法和设备
US11165456B2 (en) * 2018-04-03 2021-11-02 Semiconductor Components Industries, Llc Methods and apparatus for a continuous time linear equalizer
EP3785373A1 (en) 2018-04-27 2021-03-03 Telefonaktiebolaget Lm Ericsson (Publ) Efficient triangular interleaver/deinterleaver for polar codes
US20200059249A1 (en) * 2018-08-14 2020-02-20 Industrial Technology Research Institute Method for polar code transmission with partial information and devices using the same

Also Published As

Publication number Publication date
EP4040684A3 (en) 2022-12-21
US20220255663A1 (en) 2022-08-11
EP4040684A2 (en) 2022-08-10
US20240063943A1 (en) 2024-02-22
CN114915299A (zh) 2022-08-16
US11804926B2 (en) 2023-10-31
TW202239153A (zh) 2022-10-01

Similar Documents

Publication Publication Date Title
KR102428522B1 (ko) 무선 통신 시스템에서 극 부호를 이용한 부호화 및 복호화를 위한 장치 및 방법
US10979081B2 (en) Polar code interleaving and bit selection
CN111052616B (zh) 用于极化码的信道排序的构建
US10320428B2 (en) Outputting of codeword bits for transmission prior to loading all input bits
CN112039636B (zh) 用于极性码的高效交织器设计
CN110166167B (zh) 编码的方法、译码的方法、编码设备和译码设备
CN109391367B (zh) 通信方法和装置
KR102632560B1 (ko) 경로 메트릭을 이용하여 입력 데이터를 디코딩하는 장치 및 이를 이용하는 디코딩 방법
CN111247743B (zh) 在crc制码之前对包括已知位的nr pbch有效载荷进行交织以增强极化码性能
TWI772457B (zh) 用於極化碼的高效交錯器設計
US10944508B2 (en) Data processing method and communications device
KR20220114920A (ko) 데이터 전송을 위한 블록 인터리빙을 수행하는 장치 및 방법
JP6989692B2 (ja) 端末、基地局、無線通信方法及びシステム
KR102350909B1 (ko) 오류 정정 부호에 기초한 오류 정정 방법 및 장치
EP3785373A1 (en) Efficient triangular interleaver/deinterleaver for polar codes
CN112438023B (zh) 极化编码和解码
WO2019144787A1 (zh) 一种交织方法及交织设备
WO2019029690A1 (zh) 通信方法和装置
JP2010098594A (ja) 復調回路および復調方法

Legal Events

Date Code Title Description
A201 Request for examination