글 작성자: astrocosmos

사용 가능한 HARQ process 개수는 몇 개인가?


5G NR에서 HARQ process ID를 계산하는 방법을 포스트하려고 했는데, 계산을 위해선 먼저 전체 HARQ process가 몇 개나 되는지를 알아야 했다. 이번 포스팅은 내가 알고 싶은 게 있을 때 어떤식으로 정보를 찾아나가는지에 대해서도 다뤄보려고 한다. HARQ process 개수에 대해서만 쓰자면 몇 줄이면 된다. 정보를 찾는 방법에 대해서도 언제가 정리하고 싶었고, 이번 케이스가 딱 적절했다.

그보다 먼저 HARQ가 뭔지, HARQ process는 또 뭔지, 왜 필요한건지 알아야 하지만 여기선 일단 HARQ process 개수를 어떻게 알아내는지만 확인하고 나머진 따로 포스팅을 올리려고 한다.
그럼 전체 HARQ process 개수(number of HARQ processes)를 어떻게 알아낼 수 있는지 알아보자. 구글링으로 찾아봤지만 완벽하게 설명해놓은 곳이 없어서 3GPP standard를 찾아보고 정리했다.

구글링을 해보자.


먼저 쉽게 찾아서 이해할 수 있는 내용이 있는지 구글링을 해본다. 이런 내용을 찾을 때 가장 먼저 찾아지는 웹사이트는 항상 ShareTechnote이다. 같이 일하는 인도 친구 말로는 인도에 어떤 사람이 만든거라고 하는데 4G, 5G 뿐만 아니라 기타 여러 통신 분야에 대해 방대한 양의 정보가 잘 정리되어 있다. 아마 사이트를 만든 분은 통신 관련 개발자 혹은 표준화 작업을 하시는 분일 거라고 생각된다. 나도 이렇게 모두에게 엄청난 도움이 되는 사이트를 만들면 좋겠다. 복 받으실꺼에요. 감사합니다. 시간이 되면 ShareTechnote 사이트에 대해서도 따로 포스팅 해봐야겠다.

구글에서 "5G number of HARQ processes"라고 검색했다. 역시 ShareTechnote page가 제일 먼저 나왔다.


 

첫번째 뿐만 아니라 두번째 페이지도 ShareTechnote다.

 



ShareTechnote


첫번째 페이지가 딱 인것 같다. 들어가서 보면 역시나 친절하고 쉬운 영어로 자세하게 설명해놨다. "What is H-ARQ ?"부터 내가 알고 싶었던 "How many HARQ processor ?"도 보인다. 바로 클릭해본다.


 

ShareTechnote

 


How many HARQ processor ?

Unlike LTE, in NR the max number of HARQ processor is configurable in RRC message 
as shown below. If this IE is not configured, it is assumed to be 8.

PDSCH-ServingCellConfig ::= SEQUENCE {
    codeBlockGroupTransmission     SetupRelease { PDSCH-CodeBlockGroupTransmission } OPTIONAL,
    xOverhead                      ENUMERATED { xOh6, xOh12, xOh18 } OPTIONAL,
    nrofHARQ-ProcessesForPDSCH     ENUMERATED {n2, n4, n6, n10, n12, n16} OPTIONAL,       
    pucch-Cell                     ServCellIndex OPTIONAL, -- Cond SCellAddOnly
    [[
        maxMIMO-Layers             INTEGER (1..8) OPTIONAL, -- Need M
        processingType2Enabled     BOOLEAN OPTIONAL -- Need M
    ]]
}

엇! 설명이 너무 짧다. 읽어보니 LTE와는 다르게 NR(=New Radio=5G)에서는 max number of HARQ processor가 RRC message로 설정된다고 한다. 만약에 설정되어 있지 않으면 default로 8개라고 가정한다고도 되어 있다. 유용한 내용이다. 그래서 아래 나와있는 RRC message를 봤는데.. 뭔가 이상하다. Field name이 nrofHARQ-ProcessesForPDSCH이다. 딱봐도 PDSCH에 대한 설정이다. 그럼 바로 다음과 같은 질문이 떠오를거다.

그럼 PUSCH는?


설정이 따로 있는건가? 이렇게 명확하지 않을 때 그냥 넘어가면 안된다. 이런 의문점은 더 명확해 질 때까지 최소 몇시간은 더 찾아봐야 한다. 만약 그보다 더 걸리는 경우엔 의문점을 상세하게 어딘가에 적어둬야 한다. 그리고 나중에 시간이 날 때 다시 조사한다. 더 이상 의문이 남지 않을 때까지. 그 다음에 나는 조사한 내용 전체를 정리해서 Notion에 정리해둔다. 그리고 블로그에 포스팅하면서 다시 쓴다. Notion에 정리할 때는 나혼자 보기 때문에 핵심만 간단하게 정리하고 이미 알고 있는 내용은 굳이 부가 설명을 붙일 필요가 없지만 블로그는 다르다. 기술에 대한 포스팅이기 때문에 핵심만 잘 전달하면 되지만 더 쉽게 정보를 전달하기 위한 부가 설명히 반드시 필요하다.

혹시 모르니 같은 페이지에서 "PUSCH"를 검색해본다. 아래와 같은 유용한 정보를 또 찾았다. 5G에선 PUSCH에 대해서 HARQ feedback을 주지 않는구나!! 그래서 LTE에서 PUSCH에 대한 HARQ feedback을 전달해주는 PHICH가 NR에는 없는거구나!! (나중에 따로 포스팅하자). 아무튼, 여전히 PUSCH의 number of HARQ process에 대해선 알 수 없다.

NO ACK/NACK for PUSCH : At the very high level view, NR PUSCH HARQ mechanism is very similar to NB IoT PUSCH mechanism. There is no explicit HARQ ACK/NACK for PUSCH. Then, how UE can figure out whther the PUSCH is successfully delivered or not ? It figures it out based on whether it gets retransmission request from gNB or not. If gNB does not send retransmission request (i.e, DCI 0_0/0_1 with NDI not toggled) for a certain period of time, UE assumes that PUSCH is successfully recieved and decoded by gNB.

자! 이렇게 ShareTechnote로 모든 정보를 찾을 수 없는 경우도 많다. 그럼 다시 구글링을 계속 해본다. 이제 더 정확하게 알아봐야할 내용이 생겼으니 이번에는 PUSCH를 추가해서 "5G PUSCH number of HARQ processes"로 찾아본다. 여러 페이지를 봤지만 이렇다할 내용을 찾지 못한다. 그러다 MathWorks의 "NR PUSCH Throughput"이란 페이지에서 아래와 같은 내용을 찾았다.

Other features of the simulation are:
Codebook and non-codebook based PUSCH transmission schemes
Optional PUSCH transform precoding
Slot wise and non slot wise PUSCH and DM-RS mapping
Perfect or practical synchronization and channel estimation
HARQ operation with 16 processes

MathWorks에서 제공하는 PUSCH 관련 simulator에서 제공하는 feature에 대한 내용이지만, 이것만 가지고는 spec상으로 16개의 HARQ process로 고정된 것인지 가정을 한 것인지 알 수가 없다. 그럼 이제 한가지 방법 밖에 없다. 마지막 방법은 바로 3GPP standard에서 해당 내용을 직접 찾아야 한다.

3GPP Standard에서 찾아라!


결국은 3GPP 표준문서를 봐야 하지만 먼저 구글링을 한 이유는 3GPP standard는 하나의 문서양도 어마어마하지만, 5G NR에 대한 전체 표준문서가 몇 십개나 존재한다. 물론 이번 경우에는 PHY나 MAC 또는 RRC 정도에서만 찾아보면 되겠지만 이것도 합하면 7개 정도의 문서를 봐야한다. 그럼 이젠 끝판왕 3GPP standard 문서에서 찾아보자.

먼저 모든 PHY/MAC configuration은 RRC를 통해서 받으니 RRC standard를 찾아봤다. 3GPP 38.331로 구글에서 검색하면 바로 찾을 수 있다. 앞의 숫자 38은 5G NR standard를 나타낸다. 4G LTE는 36이었다. 그리고 뒤의 숫자 331은 RRC 표준을 나타낸다. 예를 들어, 36.331은 LTE의 RRC 표준 문서 번호다.

RRC 문서에서 처음 ShareTechnote에서 찾은 nrofHARQ-ProcessesForPDSCH를 찾아본다. 다음과 같은 내용이 나온다. 예상한 것처럼 이 field는 PDSCH를 위한 것이다. PDSCH-ServingCellConfig에 있으니 뭐 당연하다. 필드 이름에도 PDSCH가 붙어 있고. 


 

 


이왕 찾았으니 PDSCH의 number of HARQ processes부터 확인하자.

내용을 보면 nrofHARQ-ProcessesForPDSCH는 n2, n4, n6, n10, n12, n16 중 하나의 값으로 설정할 수 있고, n2는 2개의 HARQ process를, n4는 4개의 HARQ process를 나타낸다. 그리고 뒤에 설명이 더 있다. Field의 오른쪽을 보면 OPTIONAL이라고 되어 있는데 말그대로 optional한 설정값으로 이 field가 있을 수도 있고 없을 수도 있다는 뜻이다. 뒤에 추가로 나오는 설명은 이 값이 없으면 어떻게 되는지에 대한 내용이 있다. 이런 optional한 field들은 값이 없는 경우 어떻게 동작하는지에 대해 RRC 문서에서 설명하는 경우도 있고, 이 설정값을 사용하는 다른 layer의 표준에서 설명하는 경우도 있다. nrofHARQ-ProcessesForPDSCH 값이 없는 경우엔 8개의 HARQ process를 가진다고 한다. 따라서 PDSCH의 HARQ process 개수는 2, 4, 6, 8, 10, 12, 16개 중에 하나가 될 수 있다.

참고로, LTE에선 HARQ process 개수를 RRC로 설정하지 않았다. 그렇단 얘기는 고정되어 있었다는 거지.

그럼 PUSCH는 어떤지 찾아보자. 이번엔 "nrofHARQ-Processes"로 찾아본다. 아래와 같은 field를 찾았다.


 

 


대충보기엔 PUSCH에 대한 내용이 맞아보인다. 하지만 좀 더 확실하게, 꼼꼼하게 봐야한다. ConfiguredGrantConfig에 대한 설명을 보니 uplink transmission without dynamic grant를 위한 설정이라고 나와있다. Dynamic grant가 없는 UL 전송을 위한 거라고? dynamic grant는 말그대로 맘대로 편하게 UL grant를 할 수 있다는 건데, 이것만 가지고는 의미가 분명하지 않을 수 있다.

38.321(MAC layer 표준 문서)의 5.8장 "Transmission and reception without dynamic scheduling"이라는 부분이 있는데, 읽어보면 "without dynamic scheduling"이란 바로 SPS(Semi-Persistent Scheduling)를 뜻한다. 즉, 여기서 찾은 nrofHARQ-Processes는 UL SPS에 대한 설정이므로 이걸로 보통 UL의 HARQ process 개수는 알 수 없다.

RRC 표준문서에서는 더이상 유의미한 정보를 찾을 수 없었다. 그럼 이제 HARQ와 관련이 있을만한 MAC이나 PHY 표준을 봐야하는데, 그중에서도 PHY의 data channel들(PDSCH/PUSCH)에 대해 기술된 38.214에서 찾아보기로 한다.

PHY standard (38.214)


아래는 38.214에서 PUSCH에 대해 HARQ process로 찾은 내용이다. 설명을 보면 UL은 왠지 16개로 고정인 것 같다.

For uplink, 16 HARQ processes per cell is supported by the UE.

이런 의문을 해결하기 위해 PDSCH에 대한 내용도 찾아본다. PDSCH의 HARQ process에 대해서는 아래와 같은 설명을 찾았다. 아... DL은 그냥 16개가 아니라 maximum 16개라고 설명한다. 그리고 이어서 RRC에서 살펴봤던 내용이 나온다. DL의 HARQ process 개수는 nrofHARQ-ProcessesForPDSCH로 설정하고, 만약에 없으면 8개의 HARQ process를 가진다. 간단한 말을 왜 이렇게 복잡하게 써놨는지; 3GPP 표준 문서는 may를 굉장히 좋아한다 (assume과도 많이 쓰인다). 하지만 may가 아니라 그렇게 해야 한다고 해석하면 쉽다. 그리고 여기서 higher layer는 대부분 RRC layer를 뜻한다.

For downlink, a maximum of 16 HARQ processes per cell is supported by the UE. The number of processes the UE may assume will at most be used for the downlink is configured to the UE for each cell separately by higher layer parameter nrofHARQ-processesForPDSCH, and when no configuration is provided the UE may assume a default number of 8 processes.

여기까지 확인한 다음에야 아래와 같이 간단하게 정리할 수 있었다.

PDSCH의 HARQ process 개수
= nrofHARQ-ProcessesForPDSCH가 있으면 2, 4, 6, 10, 12, 16개 중에 하나이고,
   없으면 8개로 설정 가능

PUSCH의 HARQ process 개수

= 16개로 고정

이렇게 간단하게 정리하기까지 꽤 오랜 시간이 걸렸다. 하지만, 이렇게 파고들어야 한다. 특히 통신 표준 문서를 볼 때는 대충 보면 안된다. 숨겨져 있는 내용도 많고, 수식이 있으면 하나하나 값을 대입해 가면서 왜 그렇게 만들었는지 알아내야 한다. 표준 문서는 말할 것도 없고, 어떤 책이나 사이트에서도 그렇게까지 자세하게 알려주지 않는다. 이렇게 정리해 놓아야 표준의 근본 원리를 알 수 있고, 나중에 더 기억하기 쉬워진다. 나중엔 마지막 2줄짜리 정리만 보겠지만, 필요하면 언제든 그 결과를 도출할 때까지의 내용을 다시 볼 수 있다. 항상 이렇게 5G 표준에 관한 내용들을 포스팅 하고 싶었는데 생각보다 쉽지가 않네; 다시 생각해봐야겠다.

모쪼록 내가 정보를 찾고 표준 문서를 공부하는 방법이 조금이라도 누군가에게 도움이 되었으면 한다.

 

 

나중에 따로 포스팅할 내용들:

  • HARQ란 무엇인가?
  • HARQ Process는 무엇이고, 왜 필요한가?
  • ShareTechnote에 대해서
  • 5G에서 PHICH가 없는 이유
  • 5G에서 PCFICH가 없는 이유
  • PUSCH HARQ operation

 

 

References:


 

5G | ShareTechnote

HARQ What is H-ARQ ? What is H-ARQ ? Why it uses the term "Hybrid" ? First think about the term ARQ. ARQ stands for Automatic Repeat Request and you would have heard this a lot if you had experience of studying IP communication (I think you can google a lo

www.sharetechnote.com

https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3216

2017-04-13 06:29 UTC Specification has been created for release Rel-15 Patrick Merias 2018-01-02 15:30 UTC Specification has been made Under Change Control John M Meredith

portal.3gpp.org

Work Programme - Work Item Detailed Report

Title 5G; NR; Radio Resource Control (RRC); Protocol specification (3GPP TS 38.331 version 15.7.0 Release 15) NR; Radio Resource Control (RRC); Protocol specification 

portal.etsi.org

 

728x90

'5G NR' 카테고리의 다른 글

통신규격/표준의 목적  (0) 2021.02.25
Fallback / Non-fallback DCI의 뜻  (0) 2021.02.21
5G Sampling Time (Tc)  (2) 2021.01.25
Bandwidth Part (BWP) 기본 개념 잡기  (0) 2021.01.04
5G NR RNTI (Radio Network Temporary Identifier)  (0) 2021.01.01