이번 포스팅에서는 downlink data의 동적 자원할당을 위해 설정되는 K0값과 K0값 확인을 위한 DCI, RRC 설정 확인등을 설명하도록 한다. 본 글은 Naveen Chelikani의 글[1]을 기반으로하여 한국어로 번역 후 부가적인 설명을 붙인 글이다. 원문을 확인하고 싶다면 링크에서 확인할 수 있다.
<5G 시간 축 자원할당 시리즈>
1. 시간 축 자원할당 개요
2. K0에 의한 PDSCH 자원 할당
3. K1에 의한 HARQ-ACK 자원 할당 (1) - HARQ-ACK timing
4. K1에 의한 HARQ-ACK 자원 할당 (2) - codebook
K0값과 PDSCH 할당
K0값은 뭔가 엄청난 자원할당의 비밀을 갖고있는 것처럼 표현되지만, 사실 그냥 '현재 수신 받은 DCI'에 해당하는 'PDSCH'가 지금으로 부터 몇 슬롯 떨어져 있는가를 의미한다. (실제로 K0 값은 대부분 0으로 할당된다. 즉, DCI와 같은 슬롯에서 PDSCH가 수신된다는 의미)
하지만, K0값 만으로는 실제 자원할당을 할 수 없다. 추가적인 중요한 정보가 빠졌기 때문이다. 그것은 1) 슬롯 내 어느 심볼부터 수신할 지, 2) 얼마나 긴 기간동안 수신할 지 이다. 이 각각은 Starting symbol (S)값, Allocation length (L)값이라고 부른다. 따라서 K0값과 SLIV (S and L Indicator Value) 값으로 PDSCH가 할당된다.
3GPP에서는 이 값을 완전히 flexible하게 설정하게 두지 않았다. 설정 가능한 값을 TS 38.214에 정의해두었고, 3가지 Value는 하나의 index를 구성해 총 16개의 설정값을 가질 수 있다. 따라서 이를 지정하기 위해서 PDCCH의 DCI는 Time domain resorce allocation (TDRA)는 4개의 비트가 할당되고, 16개의 숫자 중 하나를 지정한다. 다음챕터에서 테이블 예시를 살펴보자.
K0값은 PDCCH의 DCI에, 그리고 할당되는 채널은 PDSCH이므로 두 채널이 참조하는 Subcarrier spacing index가 다를 수 있다. 따라서, 이를 보정해줘야하는데 표준에서는 아래와 같은 수식으로 보정해주고 있다. 별다르게 어려운 수식은 아니고 slot index를 스캐일링 해주는 과정이다.

K0이 4라면, 슬롯 인덱스 기준으로 5가 아닌 10으로 PDSCH가 할당되어야 한다. 그림을 통해 확인할 수 있을 것이다.
Resource Allocation Table
본격적인 내용에 앞서 Time domain resource allocation 테이블을 훅 살펴보자면, 다음과 같다.
앞에서 설명한 대로 1번을 보면, K0, S, L 값들이 정의되어 있는 것을 확인할 수있다. 2번을 보면, PDSCH 매핑타입은 Type A와 Type B가 있는데, Type A는 slot기반 전송, Type B는 non-slot 기반 전송 (mini-slot)을 의미한다. Release 15까지는 downlink mini-slot의 길이는 2, 4, 7로만 가능했기 때문에 L을 보면 세가지 길이로만 할당되는 것을 알 수 있다.
또한, 3번을 보면 인덱스들은 총 16개까지 있다는 것을 알 수 있다. DCI의 TDRA 필드가 4개의 비트로 16개 까지 설정할 수 있다는 것을 재확인 할 수 있다.
Resource allocation을 할 때 참고하는 테이블은 크게 두 종류가 있다. Default 테이블과 RRC 테이블 (RRC Allocation List)이다. 각 테이블은 쓰이는 상황이 따로 있다.
어떤 테이블을 사용할 지는, 일반적으로 Common search space의 DL 할당인지와 User specific search space의 DL할당인지에 따라 달라진다. 즉 유저데이터인지 셀데이터인지에 따라 다르다는 말이다.
유저데이터라도 즉, pdsch-ConfigCommon의 list를 참고하는 경우라도 설정이 되어있지 않다면 Default 테이블을 참고할 수 있음을 알 수 있다.
구분 |
RNTI |
Search space |
참조 위치 |
Default table (Default A,B,C) |
SI-RNTI, RA-RNTI, P-RNTI 등 |
Common search space |
표준에 정의 (TS 38.214) |
RRC 테이블 (RRC Allocation List) |
C-RNTI 등 |
User specific search space |
pdsch-TimeDomainAllocationList (pdsch-ConfigSetup of RRC Reconfiguration (TS 38.331 참고)) |
PDSCH 할당 예제
이번에는 두 테이블을 사용하는 PDSCH 할당 예제를 각각 살펴볼 것이다. PDSCH 할당에 대한 정보는 DCI에 있으므로, DCI 예제를 가지고 알아본다. 이 예제에 사용되는 DCI는 originiator의 글 [1]에서 가져왔음을 미리 밝힌다.
1. Default 테이블을 참조하는 PDSCH 자원할당
1) ⑤에서 DCI에서 RNTI 타입 확인: RA-RNTI
2) 적용가능한 PDSCH 테이블 (그림 2) 확인: RA-RNTI는 Default A를 참조함
3) 다시 DCI ⑥에서 TDRA index 확인: 1
4) Default A 테이블 (그림 1)에서 K0과 SLIV 참조: K0=0, S=2, L=12
5) 할당 slot 계산: K0=0이므로, 같은 슬롯에 할당 (Slot # 62)
6) 할당된 슬롯 및 symbol 확인
S = 2, L = 2므로, 원래 2번부터 14번까지 할당이 맞으나, 2번에 DMRS 심볼이 들어있는 관계로 PDSCH는 3벌째부터 할당된다.
2. RRC 테이블을 참조하는 PDSCH 자원할당
1) DCI ①에서 RNTI 타입 확인: C-RNTI
2) 적용가능한 PDSCH테이블 확인: pdsch-AllocationList in RRC 설정
3) DCI ③에서 TDRA index 확인: 각각 5/0/5/7/5/0/5
4) UE가 갖고있는 RRC 테이블의 index 확인: SLIV로 주어짐
5) 할당 슬롯 계산: SLIV만 주어진 경우 K0=0으로 간주 (TS 38.214, 5.1.2.1)
6) 할당된 슬롯 및 symbol 확인: SLIV 계산식으로 부터 계산
<5G 시간 축 자원할당 시리즈>
1. 시간 축 자원할당 개요
2. K0에 의한 PDSCH 자원 할당
3. K1에 의한 HARQ-ACK 자원 할당 (1) - HARQ-ACK timing
4. K1에 의한 HARQ-ACK 자원 할당 (2) - codebook
포스팅이 유용하셨다면
아래 하트를 눌러주세요
로그인이 필요하지 않습니다.
공감은 포스팅에 큰 힘이 됩니다.