Sense Wide
article thumbnail

HARQ의 세부 동작 원리 및 이슈 (1) - CC/IR HARQ

 

 

- 2020.04.18 내용 수정
   (이전 포스팅 확인: HARQ 기본)

 

- HARQ 개요에 대해서는 이전 포스팅에 소개되어 있습니다.

본 포스팅에서는 세부적인 내용을 위주로 다루겠습니다.

 

 

1. HARQ란

 

HARQ는 유무선 통신의 에러제어 기법인 FEC와 ARQ를 혼합한 형태의 제어기법

즉, 에러 정정 (FEC, Forward Error Correction)과 에러 제어 (ARQ, Automatic Repeat&reQuest)를 동시에 수행합니다.

각 기법의 기본 개념, 장/단점 등은 이전 포스팅에 간략하게 소개가 되어 있습니다.

 

 

2. HARQ 관련 이슈

 

HARQ는 FEC와 ARQ를 혼합하여 사용하는 방식이므로, 물리계층/링크계층 및 TCP계층까지 다양한 레벨에서의 이슈가 있습니다.

 

물리계층

- 채널코딩 스킴에 따른 FEC 성능 - Convolutional, Turbo, Polar, LDPC 코드 기법 

- Redundancy version puncturing (Bit selection)

 

링크계층 (LRC/MAC/RRC)

- 동기식/비동기식 HARQ를 위한 시그널링

- HARQ-ACK 타이밍을 위한 시그널링

 

전송계층

- ARQ ACK에 따른 패킷 분류, 재배치, 드랍 등

- GBN, SAW, SR ARQ 등

 

따라서, 간단히 표현하자면 물리계층에서는 에러 정정을, 그 이외의 계층에서 에러 감지 및 제어가 이슈입니다.

물리계층의 FEC, 전송계층의 ARQ의 개별적인 내용에 대해서는 이 포스팅에서는 다루지 않습니다.

 

 

 

3. 물리계층 (FEC 및 Combining) [1]

 

본 포스팅에서는 HARQ내 FEC의 채널코딩의 원리에 대해서는 다루지 않습니다. 글쓴이가 전공으로 다루지 않았던 부분일 뿐더러, 채널코딩 하나의 주제를 HARQ 포스팅에 녹여내기에는 무리가 있다고 판단하였습니다.

 

Type 1 HARQ가 단순 FEC+ARQ의 조합이었다면, Type 2 HARQ는 기전송된 패킷의 디코딩 정보를 활용해 정정을 시도합니다. 이 과정을 Combining이라고 하며, Combining에 따라 Chase Combining 방식 Incremental Redundancy 방식으로 나뉩니다.

 

<Chase Combining (CC)>

 

 

정보 비트는 CRC (Cyclic Redundancy Check) 비트를 붙이고, Rate-matching을 거치고 나서 Codeword가 됩니다. 이 때, Code rate을 3/4로 정한다면, 정보비트와 부호화를 위한 Redundancy 비트의 비율이 3:1이 되게 코딩합니다.

 

이 Codeword가 매 전송 시 똑같이 전송되며, 수신측에서는 이전 Decoding 결과를 Combining해 새로 디코딩합니다. 따라서, Accumulated energy는 증가하지만 Code rate (암호율)는 그대로 3/4를 유지함을 알 수 있습니다.

 

 

<Incremental Redundancy (IR)>

 

 

 Rate-matching을 통한 코딩은 CC방식과 마찬가지지만, 여기서는 Code rate가 1/4로 줄었습니다. 이 말은, 전체 Codeword 중 실제 데이터 Bit가 1/4만 해당한다 (정보 1, Redundancy 3)는 말 입니다. 즉, Codeword는 CC보다 훨씬 더 많은 Parity 비트를 갖고 있습니다.

 

하지만, 각 Parity 비트들은 Redundancy version에 따라서 실제 데이터에 Punturing되는 방식으로 삽입되며, 이 코드가 전송됩니다. 따라서, 초장에 성공만 한다면 좋은 Code rate로 전송에 성공하게 됩니다. 실패하는 경우 다른 Redundancy version의 Parity 비트를 전송해 디코딩 합니다.

 

4. Redundancy Value (RV) on LTE/5G [2]

 

IR-HARQ는 5G NR 및 4G LTE에서 사용되는 HARQ 기법입니다. 5G의 제어채널 (Control Channel)의 코딩으로 Polar 코딩을, 데이터 채널 (Data Channel)의 코딩으로 Low-Density Parity Check (LDPC)를 사용합니다.

 

따라서, 데이터 전송에 사용되는 HARQ는 LDPC 기반의 IR-HARQ라고 볼 수 있습니다. 또한, 비동기식 HARQ가 Downlink/Uplink 둘 다 지원됩니다. 이에 대한 포스팅은 2편에서 다루겠습니다. 여기서는, LDPC의 세부내용은 마찬가지로 다루지 않으며, 대신 셀룰러 통신에서 RV에 따른 Punturing방법에 대해서 설명하겠습니다.

 

셀룰러 통신에서 Redundancy Value (RV) id는 RVset의 값 중 하나로 결정됩니다. 이 때, Set은 {0, 2, 3, 1}이며, RV id는 재전송 횟수에 따라 0, 1, 2, 3 중 한 값을 갖습니다. 4G LTE에서는 RVid는 재전송 횟수에 따라 순서대로 0, 2, 3, 1 이었습니다. 5G에서는 이 값이 LDPC base graph와 Lifting size Z 등의 값에 따라 정해집니다. 여기서 값에 따른 더 자세한 동작원리는 LDPC 코딩 내용과 3GPP 표준 [3]을 확인하면 될 것 같습니다.

 

IR-HARQ puncturing의 예시 [2]

 

위의 그림은 IR-HARQ Puncturing의 예시를 보여줍니다. 이러한 형태의 Circular buffer가 HARQ buffer의 한 형태로 사용됩니다.

 

 RV0, RV1, RV2, RV3이라고 표시된 부분이 전송되는 데이터가 시작되는 부분입니다. 전송 비트는 Systematic bits와 Parity bits로 구성되어 있으며, RV id에 따라 그 해당 비트들의 일부가 이어서 전송됩니다. 이 예제에서는 RV0와 RV3의 부분부터 전송되는 코드들이 Self-decodable할 확률이 가장 높음을 알 수 있습니다.

 

 

이 포스팅에서는 HARQ의 동작 원리 및 물리계층에서의 이슈들에 대해서 언급해 보았습니다. 저자가 채널코딩의 전공자가 아니라 살짝 아쉽게 커버한 면이 있지만, 해당 내용의 입문정도로 보시면 괜찮을 것 같습니다. 이어 채널코딩 및 HARQ에 대해서 더 궁금하시다면 관련 내용이 많이 있으니 참고하시면 되겠습니다.

Reference

[1] 4G LTE/LTE-Advanced for Mobile Broadband, Erik Dahlman, Stefan Parkvall and Johan Sköld, 2011

[2] 5G NR, Sassan Ahmadi, 2019

[3] 3GPP TS 38.212, Multiplexing and channel coding, 2019

 

 

도움이 되셨다면, 아래 공감 버튼을 눌러주세요.

감사합니다.

 

profile

Sense Wide

@June_Kim

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!