| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 최소 공통 조상
- Strongly Connected Component
- 강한 연결 요소
- Lock-free Stack
- DP
- 게임 서버 아키텍처
- Binary Lifting
- Github
- select 모델
- 이분 탐색
- PROJECT
- statefulset
- SCC
- trie
- 자바스크립트
- 2-SAT
- Prisma
- Spin Lock
- Overlapped Model
- 벨만-포드
- Behavior Design Pattern
- 트라이
- 비트필드를 이용한 dp
- JavaScript
- Delete
- HTTP
- 그래프 탐색
- map
- reference counting
- ccw 알고리즘
Archives
- Today
- Total
dh_0e
[NR] DL/UL Scheduling & Link Adaptation (MCS/DCI/HARQ ..) 본문
5G NR Scheduling & Link Adaption Process


1. 무선 신호 품질 지표 (RSRP, RSSI, SINR)
- 기지국과 단말의 통신 품질을 나타내는 대표적인 지표
- RSRP (Reference Signal Received Power): 단말과 연결된 기지국의 순수 신호 세기만 측정 (수신 파워)
- RSSI (Received Signal Strength Indicator): 기지국 신호뿐만 아니라 주변 노이즈, 다른 셀의 간섭까지 모두 합친 전체 수신 전력량
- SINR (Signal-to-Interference-plus-Noise Ratio): 노이즈와 간섭 대비 내가 원하는 '유효 신호'의 비율
- 통신 품질(속도)을 결정하는 가장 핵심적인 지표
- SINR이 높아야 고차 변조(256QAM 등)를 사용 가능

- Interference, Noise를 계산할 때 CSI-IM을 사용함
- 기지국이 주파수 대역 중 일부를 텅 비워서 단말에게 보냄 (이 빈 자원 공간을 CSI-IM이라 함)
- CSI-IM 부분에 파워가 잡히면 이를 통해 간섭(I), 노이즈(N)를 계산
2. CSI(Channel State Information) 및 피드백
- 단말은 DL 채널 상태를 측정하여 기지국에 보고해야 함
- 기준이 되는 신호
- CSI-RS(CSI Reference Signal): 단말이 채널 상태를 측정하기 위해 기지국이 쏘아주는 기준 신호
- CSI-IM(CSI Interference Measurement): 신호 품질(SINR)을 정확히 계산하기 위해, 현재 주변으로부터 간섭이 얼마나 들어오는지 측정하는 자원
- A-CSI(Aperiodic CSI): 기지국이 DCI를 통해 지금 즉시 채널 상태를 보고하게끔 하는 비주기적 트리거링(요청) 방식
- 주요 보고 지표
- CQI(Channel Quality Indicator): 현재 채널 상태에서 에러율 10% 미만을 유지할 수 있는 가장 높은 MCS Index를 추천하는 값
- RI(Rank Indicator): 안테나 경로의 독립성. 즉, 겹치지 않고 보낼 수 있는 공간 레이어(Spatial Layer)의 수
3. MCS(Modulation and Coding Scheme): 변조 및 코딩 기법
- 기지국과 단말은 무선 채널의 상태(Quality)에 따라 데이터를 변환하는 방식을 동적으로 바꾸며 이를 적응형 변조 및 코딩(AMC)이라 함
5G | ShareTechnote
MCS / TBS / Code Rate in a Nutshell MCS ranges from 0 through 28 Qm can be 2, 4, 6 (64QAM) and 8 (256QAM) Three different tables are defined in 3GPP. Table 1 for 64QAM max, Table 2 for 256QAM max, Table 3 for Low Data Rate TBS calculation is not as simpl
www.sharetechnote.com
< MCS Table >
- Modulation Order(변조 차수): 한 번의 신호(Symbol)에 몇 bit를 담을 것인가를 결정
- QPSK: 2bit/symbol
- 16QAM: 4bit/symbol
- 64QAM: 6bit/symbol
- 256QAM: 8bit/symbo
- 채널 상태가 좋을수록 고차 변조(64QAM, 256QAM)를 사용하여 전송 속도를 높임
- Target Code Rate x(목표 부호화율): 전체 전송되는 데이터 중 실제 유효 데이터의 비율 (정보 bit / 전체 bit 비율)
- 통신에서는 오류 복구를 위해 원본 데이터에 중복(Redundancy) 비트를 붙여 전송
- Code Rate가 낮으면 중복 비트가 많아 오류 복구 능력(안정성)이 올라가지만 속도가 떨어짐
- x가 낮음 = 복구력↑ 효율↓
- x가 높음 = 복구력↓ 효율↑
단말의 256QAM 활성화 절차
- 초기 상태: 기지국은 단말의 최대 능력을 모르므로 안전하게 64QAM까지만 사용
- Capa (Capability) 보고: 통신이 연결된 후(RACH 절차 및 보안 설정 이후), 단말이 기지국에 자신의 최고 하드웨어 스펙(256QAM 지원 여부 등)을 보고함
- RRC Reconfiguration: 기지국이 단말의 능력을 확인한 후, 256QAM 전용 MCS 테이블 등을 사용하도록 설정을 재구성(Reconf)하는 명령을 내림
- 고속 통신 시작: 설정이 완료된 이후부터, 채널 상태가 좋을 때 256QAM을 본격적으로 사용하여 전송 속도를 극대화함
4. TDD 슬롯 포맷 및 타이밍 (K0, K1, K2)
- TDD 방식에서는 동일한 주파수 대역을 시간 단위로 나누어 DL, UL을 수행함
- 슬롯 포맷(ex: DDDD U DDDD U)
- D(Downlink), U(Uplink)
- 완충 지대: DL에서 UL로 방향을 바꿀 때 반드시 필요한 구간
- F(Flexible): 5G NR에서 유연하게 쓸 수 있는 구간
- S(Special): LTE 시절에 부르던 명칭
- 타이밍 변수(K 파라미터): 스케줄링부터 실제 동작까지의 시간차 (슬롯 단위)
- K0: DCI 수신(PDCCH) ~ DL 데이터 수신(PDSCH) 간격
- 5G에서는 Latency 최소화를 위해 "K0 = 0"을 기본으로 사용하는 경우가 많음
- 하나의 슬롯 안에서 앞부분(1~3)에 DCI(PDCCH)가 들어오고, 그 직후 같은 슬롯의 나머지 공간에 실제 데이터(PDSCH)가 밀려 들어옴
- K1: DL 데이터 수신(PDSCH) ~ 이에 대한 ACK/NACK 응답(PUCCH) 간격
- TDD 환경에선 데이터를 수신했다고 해서, 아무 때나 UL을 쏠 수 없음
- 기지국은 단말이 만나는 가장 가까운 U 슬롯의 위치를 계산하여 DCI에 K1 값을 담아 알려줌
- K2: DCI 수신(PDCCH) ~ UL 데이터 전송(PUSCH) 간격
- 기지국이 단말에게 UL 데이터를 쏴도 좋다고 허가증(UL Grant)을 내린 시점부터, 단말이 실제로 데이터(PUSCH)를 쏘아 올리기까지의 간격
- 단말 입장에서는 보낼 데이터를 준비하고 신호로 변환(인코딩)할 준비 시간이 필요
- 이 준비 시간과 TDD의 U 슬롯 타이밍을 고려하여 기지국이 K2 값을 지정해줌
- 결국 K0, k1은 하향링크(DL) 데이터 처리를 위한 세트이고, K2는 상향링크(UL) 데이터 전송을 위한 변수임
- [하향링크(DL) 데이터 흐름]
기지국 명령(DCI) ➡️ (K0 간격) ➡️ 단말 데이터 수신(PDSCH) ➡️ (K1 간격) ➡️ 단말 피드백 전송(ACK/NACK) - [상향링크(UL) 데이터 흐름]
기지국 허가(DCI) ➡️ (K2 간격) ➡️ 단말 데이터 송신(PUSCH)
- [하향링크(DL) 데이터 흐름]
- K0: DCI 수신(PDCCH) ~ DL 데이터 수신(PDSCH) 간격
DL vs UL 전파 구조
하향링크(DL) 전파 구조
[주파수 축: RB]
^
| +-----------+-------------------------------------------+
| | | |
| | PDCCH | PDSCH (실제 하향링크 데이터) |
| | (DCI 포함)| |
| | | |
| +-----------+-------------------------------------------+
| | PDCCH | PDSCH |
| +-----------+-------------------------------------------+
+----------------------------------------------------------> [시간 축: Symbol]
<-- 1~3 --> <------------- 나머지 기호 ----------------->
상향링크(UL) 전파 구조
[주파수 축: RB]
^
| +--------+-------------------------------------+--------+
| | PRACH | | PUCCH |
| |(예약석)| PUSCH (실제 상향링크 데이터) | (피드백)|
| +--------+ +--------+
| | | | |
| | PUSCH | PUSCH | PUCCH |
| +--------+-------------------------------------+--------+
+----------------------------------------------------------> [시간 축: Symbol]
<--------- 기지국이 할당한 공간 --------> <-끝부분->
5. CORESET 할당 원리
- CORESET과 CCE의 관계
- PDCCH(물리 DL 제어 체널): DCI가 전송되는 실제 물리적인 길
- CORESET: DCI를 찾기 위해 뒤져야 하는 주파수 영역
- CCE(Control Chanel Element): PDCCH를 구성하는 기본 블록 단위
- 표준에 따라 1 CCE = 6 RB로 구성됨
- 비트맵 할당 방식
- 기지국은 CORESET의 주파수 크기를 단말에게 알려줄 때, 주파수 자원 낭비를 막기 위해 주파수 대역을 6RB 단위로 쪼개어 비트맵 방식으로 알려줌
- RRC 설정 메시지에 frequencyDomainResources라는 45자리 비트맵의 1자리(1bit)가 6RB를 의미
- ex) 11111111000000... 이면 앞에서부터 8개의 비트가 켜져있으므로 6RB x 8 = 48RB의 대역폭을 가진다는 의미
6. DCI(Downlink Control Information): DL 제어 정보
- 기지국이 단말에게 "너에게 자원을 언제/어디에/어떻게 할당해 주겠다"고 알려주는 스케줄링 메시지
- DCI Format 종류 (x_y)
- Format 0_x(상향링크 스케줄링): 단말이 기지국으로 보낼 데이터(PUSCH)의 자원 할당 정보
- 목적: 기지국이 단말에게 "상향링크 데이터(PUSCH) 전송을 허가함"
- 단말은 기지국의 허락(스케줄링) 없이는 단 1bit의 UL 데이터도 마음대로 쏠 수 없음
- 단말이 함부로 전파를 쏘면 다른 단말의 통신을 방해하는 심각한 간섭(Coollision)이 발생하기 때문
- Format 1_x(하향링크 스케줄링): 기지국이 단말에게 보낼 데이터(PDSCH)의 자원 할당 정보
- 목적: 기지국이 단말에게 "하향링크 데이터(PDSCH)를 보낼테니 받을 준비하라"
- 목적: 기지국이 단말에게 "하향링크 데이터(PDSCH)를 보낼테니 받을 준비하라"
- _0(Fallback) vs _1(Non-fallback)
- Fallback 포맷(0_0, 1_0): 가장 필수적인 정보만 담은 가벼운(생존용) 포맷
- 통신 환경이 갑자기 너무 안 좋아졌을 때, 기지국과 단말 사이에 설정을 변경하고 있어서 서로 상태가 약간 어긋날 위험이 있을 때(핸드오버 중) 같이 작고 가벼워서 웬만한 악조건에서도 단말이 안정적으로 수신하고 디코딩할 수 있어야 하는 상황에서 사용
- ex) DCI 0_0(기지국→단말): "지금 상태 안 좋으니까, 다 빼고 그냥 이 주파수로 UL 데이터 쏴!"
- Non-fallback 포맷(0_1, 1_1): 안테나 설정, 전력 제어 옵션 등 상세한 제어가 들어간 무거운 포맷
- 기지국과 단말의 연결이 안정적이고 채널 상태가 좋을 때, 기지국이 단말을 아주 세밀하게 컨트롤하여 전송 속도를 한계치까지 끌어올리기 위해 사용
- ex) DCI 0_1(단말→기지국): "상태 좋으니 1번 안테나 켜고, 파워는 이만큼 올리고, MCS는 이거 써서 UL 데이터 쏴!"
- Fallback 포맷(0_0, 1_0): 가장 필수적인 정보만 담은 가벼운(생존용) 포맷
- Format 0_x(상향링크 스케줄링): 단말이 기지국으로 보낼 데이터(PUSCH)의 자원 할당 정보
7. UL 자원 요청 (SR vs PRACH)
- 단말이 기지국으로 보낼 데이터가 생겼을 때 자원을 요청하는 방식
- PRACH(Random Access Preamble): 단말이 PUCCH 자원조차 없거나, 기지국과 동기가 맞지 않을 때(초기 접속) 사용하는 방식
- 초기 접속을 마치면, 기지국과 단말 간에 동기화(Sync)가 맞춰지고 단말 전용의 제어 채널(PUCCH)이 할당 됨
- SR(Scheduling Request): 단말이 제어 채널(PUCCH)을 사용할 수 있는 상태일 때, "보낼 데이터가 있으니 PUSCH 자원을 할당해달라"고 1bit 플래그를 올리는 과정
- SR을 받은 기지국은 "조금만 줄 테니까 얼마나 보낼지 말해봐"라며 작은 크기의 UL 링크 자원(PUSCH)을 할당해 줌
- 단말은 이 자원을 이용해 BSR(Buffer Status Report)이라는 제어 메시지를 보냄 (구체적인 송신 양 보고)
- BSR을 확인한 기지국은 남는 자원(RB)을 계산한 뒤, DCI Format 0_x(상향링크 스케줄링)를 단말에게 내려보냄
- 이 DCI 안에 어떤 주파수(RB)를 써서, 어떤 변조 방식(MCS)으로, 지금부터 K2 슬롯 뒤에 있는 U 슬롯에 데이터를 쏘라는 상세한 명령이 들어있음
- 단말은 DCI를 참고하여 지정된 U 슬롯에 지정된 방식, 주파수로 자신의 데이터(PUSCH)를 쏘아 올림
- PRACH(Random Access Preamble): 단말이 PUCCH 자원조차 없거나, 기지국과 동기가 맞지 않을 때(초기 접속) 사용하는 방식
8. 자원 할당 알고리즘 (Resource Allocation)
- 주파수 축(RB)을 단말에게 어떻게 나누어 줄 것인지에 대한 방식
| 할당 방식 | 특징 | 설명 |
| Type 0 (RBG 방식) | 불연속 할당 가능 | 여러 개의 RB를 묶은 RBG(RB Group) 단위로 비트맵(Bitmap)을 이용해 징검다리처럼 듬성듬성 할당 |
| Type 1 (RIV 방식) | 연속 할당만 가능 | 시작 RB 위치와 길이를 RIV(Resource Indicator Value)라는 하나의 수식 값으로 압축하여 연속된 구간만 할당 |
[ 기지국의 할당 신호 Type 0 (비트맵): 1 0 1 1 0 ]
주파수 대역 ------------------------------------------------------>
| RBG #0 | RBG #1 | RBG #2 | RBG #3 | RBG #4 | (RBG = 4개의 RB 묶음)
|----------|----------|----------|----------|----------|
| [할당] | [비어 | [할당] | [할당] | [비어 |
| | 있음] | | | 있음] |
------------------------------------------------------------------
(사용O) (사용X) (사용O) (사용O) (사용X)
💡 특징: 중간에 간섭이 심한 구역(RBG #1, #4)을 피해서 유연하게 할당할 수 있음.
[ 기지국의 할당 신호 Type 1: RIV (시작점 = RB 5, 길이 = 8개) ]
주파수 대역 (RB 단위) ------------------------------------------------>
|0|1|2|3|4| 5| 6| 7| 8| 9|10|11|12 |13|14|15|16|
| | | | | |[ 할당 구간 ]| | | | |
| | | | | |<---------- 총 8개의 RB ---------->| | | | |
------------------------------------------------------------------
(사용 안 함) (연속해서 사용) (사용 안 함)
💡 특징: 중간에 끊어질 수 없지만, 신호(DCI)의 크기를 아주 작게 압축(RIV)해서 보낼 수 있음.
9. DMRS와 전력 제어 (Power Boosting)
- DMRS (DeModulation Reference Signal): 수신기가 채널을 추정ㅇ하기 위해 사용하는 기준 신호
- DMRS 포트(Port): DMRS가 어느 Layer에 해당하는지를 구분하는 번호
- 에 따라 공간적 레이어(Layer)를 분리할 수 있어 다중 안테나(MIMO) 전송이 가능해짐
- DMRS 포트를 파악하여 Layer 정보를 알 수 있음
- + DMRS가 배치된 RE의 위치를 통해 Frequency(어느 서브캐리어에 있는지)와 Time(몇 번째 OFDM Symbol 인지)정보도 함께 알 수 있음
- DMRS 포트(Port): DMRS가 어느 Layer에 해당하는지를 구분하는 번호
- 전력 제어 (Power Boosting)
- 기지국이나 단말이 낼 수 있는 최대 출력 파워(Total Power)는 제한되어 있음
- 만약 주파수 대역(RB)을 100개 다 쓰지 않고 절반(50개)만 할당한다면, 남는 잉여 파워를 사용 중인 RB에 집중(Power Spectral Density 증가)시킬 수 있음
- 이를 통해 신호가 약한 셀 가장자리 단말의 수신 품질을 끌어올릴 수 있음
10. HARQ 피드백 (ACK / NACK / DTX)
- HARQ(Hybrid Automatic Repeat reQuest, 혼합 자동 재전송 요청)
- 기존 통신에서 쓰던 두 가지 에러 복구 기술(FEC, ARQ)의 장점을 섞은 기술
- FEC(Forward Error Correction, 전진 에러 수정)
- 기지국이 데이터를 보낼 때, 데이터가 깨질 것을 대비해 미리 복구용 힌트(잉여 bit)를 잔뜩 붙여서 보내는 기술
- 수신 측은 에러가 나도 이 힌트를 보고 스스로 데이터를 수정함
- 재전송을 요청할 필요가 없어 빠르지만, 데이터 크기가 무거워짐
- ARQ(Automatic Repeat reQuest, 자동 재전송 요청)
- 데이터를 받아보고 깨져있으면, NACK을 보내 데이터 재전송을 요청하는 기술
- 데이터는 가볍게 보낼 수 있지만, 통신 지연이 심해질 수 있음
- FEC(Forward Error Correction, 전진 에러 수정)
- 평소에는 적당한 힌트(FEC)만 붙여서 보내다가, 도저히 복구가 안 될 정도로 깨지면 재전송(ARQ)을 요청하는 메커니즘
- 이때, 기지국이 보낸 데이터가 파손되어 있어도 버리지 않고 버퍼에 보관한 뒤,
재전송한 데이터 조각이 도착하면 새로 받은 데이터와 퍼즐 맞추듯 결합하여 원본 데이터 복구
- 이때, 기지국이 보낸 데이터가 파손되어 있어도 버리지 않고 버퍼에 보관한 뒤,
- 기존 통신에서 쓰던 두 가지 에러 복구 기술(FEC, ARQ)의 장점을 섞은 기술
- 단말은 데이터 수신 성공 여부에 따라 다음 3가지 상태를 가지고 기지국에 신호를 보냄
| 상태 | 설명 | 원인 |
| DTX | 피드백 없음 (무응답) | 제어 신호(PDCCH) 자체를 수신하지 못해 자신에게 데이터가 오는 줄도 모름 |
| NACK | 수신 실패 | 제어 신호는 받았으나, 실제 데이터(PDSCH) 복조 과정에서 오류 발생 |
| ACK | 수신 성공 | 제어 신호와 데이터 모두 성공적으로 수신 및 복조 완료 |
'5G 통신' 카테고리의 다른 글
| [NR] 이동 통신 기초 & 통신 기술 기초 (0) | 2026.07.14 |
|---|---|
| [NR] 5G Initial Access & RACH Procedure (3) | 2026.07.08 |
| [NR] FDD/TDD & Resource Structure (RB/RE/Slot) (0) | 2026.07.08 |