MAC Scheduler¶
Scheduler là khối trong lớp MAC của gNB-DU quyết định, cho mỗi cell và mỗi slot, UE nào được truyền, trên tài nguyên nào, với số layer, precoder và MCS nào. Mọi tài nguyên vô tuyến ở trạng thái kết nối đều do scheduler cấp, nên scheduler quyết định phần lớn thông lượng, độ trễ và tính công bằng mà người dùng cảm nhận. 3GPP đặc tả tín hiệu và thủ tục mà scheduler dùng (DCI, HARQ, BSR, CSI) nhưng không đặc tả thuật toán lập lịch; thuật toán là phần mềm riêng của nhà sản xuất. Trang này trình bày theo thứ tự: vị trí của scheduler trong DU, vòng lặp theo slot và giao diện với L1, các đầu vào, quan hệ thời gian K0, K1, K2, cấp phát tài nguyên và HARQ, các thuật toán lập lịch, cơ chế cấp phát không cần yêu cầu, các chức năng đường lên đi kèm, rồi các ràng buộc khi hiện thực. Luồng bản tin SR, BSR và HARQ giữa UE và gNB được trình bày ở Connected Mode & Mobility.
Vị trí của scheduler¶
Scheduler nằm trong MAC của DU, giữa RLC phía trên và L1 phía dưới. Phía trên, scheduler biết lượng dữ liệu đang chờ trong từng kênh logic của từng UE ở đường xuống, và lấy dữ liệu từ RLC khi tạo transport block. Phía dưới, scheduler gửi cho L1 mô tả đầy đủ những gì cần phát và thu trong mỗi slot, rồi nhận lại kết quả giải mã và các phép đo.
Thông thường mỗi cell có một instance scheduler, gồm hai phần đường xuống và đường lên chạy song song. Khi có carrier aggregation hoặc dual connectivity, các scheduler của nhiều cell phải phối hợp với nhau, ví dụ để chia dữ liệu của một UE giữa các sóng mang. Bản thân CU không lập lịch theo slot; CU chỉ quyết định thiết lập bearer, QoS flow và chính sách, xem Kiến trúc DU và CU.
Vòng lặp theo slot và giao diện với L1¶
Giữa MAC và L1, phần lớn hệ thống dùng 5G FAPI của Small Cell Forum (SCF222). FAPI chia thành phần cấu hình (P5, ví dụ cấu hình cell, bắt đầu và dừng L1) và phần dữ liệu theo slot (P7). Các bản tin P7 chính:
| Bản tin | Hướng | Nội dung |
|---|---|---|
SLOT.indication |
L1 → MAC | Báo slot mới bắt đầu, là nhịp của toàn bộ vòng lặp |
DL_TTI.request |
MAC → L1 | Những gì phát ở đường xuống trong slot: PDCCH, PDSCH, SSB, CSI-RS |
TX_Data.request |
MAC → L1 | Nội dung các transport block của PDSCH |
UL_TTI.request |
MAC → L1 | Những gì cần thu ở đường lên: PUSCH, PUCCH, PRACH, SRS |
UL_DCI.request |
MAC → L1 | PDCCH mang DCI cấp phát đường lên |
RX_Data.indication, CRC.indication |
L1 → MAC | Dữ liệu PUSCH đã giải mã và kết quả kiểm tra CRC |
UCI.indication |
L1 → MAC | HARQ-ACK, SR và báo cáo CSI giải được từ PUCCH hoặc PUSCH |
SRS.indication, RACH.indication |
L1 → MAC | Kết quả đo SRS và preamble phát hiện được |
Mỗi khi nhận SLOT.indication, scheduler phải xử lý các kết quả mới nhận, ra quyết định cho slot sắp tới và gửi đủ các bản tin request trước hạn chót của L1. Hạn chót này là ràng buộc cứng: theo tài liệu của NVIDIA Aerial, nếu DL_TTI.request hoặc TX_Data.request đến muộn, L1 bỏ toàn bộ hoặc một phần slot đó của cell; nếu UL_TTI.request đến muộn, PUSCH của slot đó không được xử lý. Vì vậy thời gian chạy của scheduler phải ổn định, không chỉ nhanh ở trung bình.
sequenceDiagram
participant L1
participant MAC as MAC scheduler
participant RLC
L1->>MAC: SLOT.indication (slot n)
L1->>MAC: CRC / UCI / SRS.indication từ các slot trước
Note over MAC: Cập nhật HARQ, CSI, BSR<br/>Chọn UE, tài nguyên, MCS
MAC->>RLC: Yêu cầu dữ liệu theo kích thước TB
RLC-->>MAC: RLC PDU
MAC->>L1: DL_TTI.request, UL_DCI.request
MAC->>L1: TX_Data.request
MAC->>L1: UL_TTI.request (cho slot đường lên sắp tới)
Đầu vào của scheduler¶
| Đầu vào | Nguồn | Dùng để |
|---|---|---|
| Lượng dữ liệu chờ ở đường xuống | RLC của DU | Biết UE nào có dữ liệu, bao nhiêu, thuộc kênh logic nào |
| Buffer status report (BSR) | UE, qua MAC CE trên PUSCH | Biết lượng dữ liệu chờ ở UE theo 8 nhóm kênh logic |
| Scheduling request (SR) | UE, trên PUCCH | Biết UE có dữ liệu mới nhưng chưa có grant |
| Báo cáo CSI (CQI, PMI, RI) | UE, trên PUCCH hoặc PUSCH | Chọn MCS, rank và precoder ở đường xuống |
| Phản hồi HARQ | UE (đường xuống), kết quả CRC của L1 (đường lên) | Quyết định truyền lại và hiệu chỉnh link adaptation |
| Đo SRS, DMRS đường lên | L1 | Chọn MCS, precoder đường lên; precoder đường xuống theo tính thuận nghịch |
| Power headroom report (PHR) | UE, qua MAC CE | Biết UE còn bao nhiêu công suất, giới hạn số PRB đường lên cấp được |
| Tham số QoS | Cấu hình từ CU (5QI, ưu tiên, GBR, ngân sách độ trễ) | Xếp thứ tự ưu tiên giữa các luồng và UE |
| Trạng thái DRX, BWP, khả năng UE | Cấu hình RRC, thông tin khả năng của UE | Chỉ lập lịch khi UE đang nghe PDCCH, trong BWP đang hoạt động, trong giới hạn khả năng |
Các tham số QoS được ánh xạ từ 5QI (5G QoS identifier). TS 23.501 định nghĩa mỗi 5QI chuẩn một tập đặc tính: loại tài nguyên (GBR, non-GBR hoặc delay-critical GBR), mức ưu tiên, ngân sách độ trễ gói (packet delay budget) và tỉ lệ lỗi gói. Scheduler dùng các đặc tính này để quyết định UE nào được phục vụ trước, nhưng cách dùng cụ thể do nhà sản xuất quyết định.
Quan hệ thời gian K0, K1, K2¶
DCI, dữ liệu và phản hồi không nhất thiết nằm trong cùng một slot. NR dùng ba khoảng lệch tính theo slot:
- K0: từ slot chứa DCI cấp phát PDSCH tới slot chứa PDSCH.
- K1: từ slot chứa PDSCH tới slot UE gửi HARQ-ACK, báo trong DCI.
- K2: từ slot chứa DCI cấp phát PUSCH tới slot chứa PUSCH.
K0 và K2 được chọn từ bảng phân bổ miền thời gian (time domain resource allocation, TDRA) cấu hình bằng RRC, cùng với symbol bắt đầu và độ dài của dữ liệu. K1 được chọn từ một tập giá trị cấu hình. Các giá trị K phải đủ lớn để UE có thời gian xử lý: TS 38.214 quy định thời gian tối thiểu từ cuối PDSCH tới HARQ-ACK (N1) và từ cuối DCI tới PUSCH (N2), tính theo số symbol và phụ thuộc subcarrier spacing và khả năng xử lý của UE.
Với TDD, HARQ-ACK và PUSCH chỉ đặt được vào slot đường lên, nên K1 và K2 phụ thuộc vị trí của slot trong mẫu TDD.
Với TDD, mẫu slot giới hạn trực tiếp các giá trị K. Ở ví dụ DDDSU, PDSCH của ba slot đường xuống đều phải báo HARQ-ACK ở cùng một slot đường lên, nên scheduler phải gộp nhiều bit HARQ-ACK vào một lần báo (HARQ-ACK codebook) và dành đủ tài nguyên PUCCH cho slot đó. Tương tự, mọi grant đường lên đều nhắm vào số ít slot U, nên tài nguyên PDCCH ở các slot D trước đó phải đủ cho cả DCI đường xuống lẫn đường lên. Mẫu TDD được trình bày ở Frame Structure & Resource Grid.
Cấp phát tài nguyên và HARQ¶
Một quyết định lập lịch cho một UE gồm các thành phần:
- Miền tần số: các PRB trong BWP đang hoạt động, cấp theo kiểu bitmap RBG (type 0) hoặc khối PRB liên tục (type 1), xem Frame Structure & Resource Grid.
- Miền thời gian: một dòng trong bảng TDRA (K0 hoặc K2, symbol bắt đầu, số symbol).
- Link adaptation: MCS, số layer, precoder, dựa trên CSI và vòng hiệu chỉnh ngoài, xem Reference Signals & CSI.
- PDCCH: một candidate còn trống trong search space của UE với aggregation level đủ cho chất lượng kênh. Nếu không còn CCE trống, UE không thể được lập lịch trong slot đó dù còn PRB, nên dung lượng PDCCH là một giới hạn thực tế của số UE mỗi slot, xem Physical Channels.
- HARQ: số HARQ process, bit NDI và redundancy version.
Mỗi UE có nhiều HARQ process song song trên mỗi cell, tối đa 16 ở Rel-15 và tới 32 theo khả năng UE ở một số cấu hình của các release sau. Nhờ nhiều process, scheduler có thể truyền dữ liệu mới trong khi chờ HARQ-ACK của các lần truyền trước. HARQ của NR là bất đồng bộ ở cả hai chiều: lần truyền lại có thể ở bất kỳ slot nào, với tài nguyên và MCS khác lần đầu, và được nhận diện qua số HARQ process cùng bit NDI không đổi. Thông thường scheduler ưu tiên các lần truyền lại trước dữ liệu mới, vì dữ liệu chờ truyền lại đã chiếm bộ đệm và đang trễ.
Thuật toán lập lịch¶
Bài toán lập lịch là chia tài nguyên hữu hạn của mỗi slot cho các UE sao cho cân bằng giữa thông lượng tổng, công bằng giữa người dùng và yêu cầu QoS. Các chiến lược cơ bản:
| Chiến lược | Nguyên tắc | Đặc điểm |
|---|---|---|
| Round robin | Lần lượt phục vụ các UE có dữ liệu | Công bằng về thời gian, không tận dụng chất lượng kênh, thông lượng tổng thấp |
| Max C/I (max throughput) | Chọn UE có tốc độ khả dụng cao nhất | Thông lượng tổng cao nhất, UE ở biên cell gần như không được phục vụ |
| Proportional fair (PF) | Chọn UE có tỉ số giữa tốc độ khả dụng hiện tại và thông lượng trung bình quá khứ lớn nhất | Tận dụng lúc kênh của từng UE tốt hơn mức thường lệ của chính nó, vẫn đảm bảo UE nào cũng được phục vụ |
| Theo QoS | Thêm trọng số theo mức ưu tiên, thời gian chờ so với ngân sách độ trễ, mức GBR còn thiếu | Bảo đảm các luồng có yêu cầu độ trễ hoặc tốc độ tối thiểu |
Với PF, thông lượng trung bình của mỗi UE thường được cập nhật bằng trung bình trượt hàm mũ: mỗi slot, giá trị cũ giảm theo một hệ số quên, và chỉ UE được lập lịch được cộng thêm lượng dữ liệu vừa nhận. Hằng số thời gian của trung bình quyết định đánh đổi: hằng số dài cho thông lượng tổng cao hơn nhưng một UE có thể phải chờ lâu hơn khi kênh của nó xấu.
Scheduler thực tế thường kết hợp các chiến lược theo hai bước. Bước miền thời gian chọn tập UE ứng viên cho slot theo thứ tự: truyền lại HARQ, bản tin báo hiệu (SRB), các luồng có ràng buộc độ trễ, rồi dữ liệu thường theo trọng số PF có điều chỉnh QoS. Bước miền tần số chia PRB cho các UE đã chọn, có thể ưu tiên vùng PRB mà CQI theo subband của từng UE tốt nhất. Với massive MIMO, scheduler còn chọn các UE ghép cặp MU-MIMO sao cho kênh của chúng đủ tách biệt về không gian, xem MIMO & Beamforming. Thứ tự và trọng số cụ thể khác nhau giữa các nhà sản xuất và thường là tham số tinh chỉnh khi triển khai.
Cấp phát không cần yêu cầu¶
Với lưu lượng đều đặn hoặc cần độ trễ thấp, vòng SR, grant, BSR tốn vài slot cho mỗi gói. NR có các cơ chế cấp phát trước:
| Cơ chế | Hướng | Cách hoạt động |
|---|---|---|
| Configured grant type 1 | Đường lên | Tài nguyên định kỳ cấu hình hoàn toàn bằng RRC, UE dùng ngay khi có dữ liệu |
| Configured grant type 2 | Đường lên | Chu kỳ cấu hình bằng RRC, tài nguyên và MCS được kích hoạt hoặc giải phóng bằng DCI |
| Semi-persistent scheduling (SPS) | Đường xuống | Chu kỳ cấu hình bằng RRC, kích hoạt bằng DCI, gNB phát PDSCH định kỳ không cần DCI mỗi lần |
Với scheduler, các tài nguyên này phải được dành trước trong mỗi chu kỳ, nên làm giảm tài nguyên cho lập lịch động khi UE không có dữ liệu. Các cơ chế cho URLLC khác như mini-slot và preemption (DCI 2_1) được trình bày ở Kịch bản sử dụng 5G.
Chức năng đường lên đi kèm¶
Ngoài cấp phát, MAC của gNB còn duy trì các điều kiện để đường lên của UE thu được:
- Timing advance. gNB đo độ lệch thời gian của tín hiệu UE (từ PUSCH, PUCCH, SRS) và gửi lệnh timing advance qua MAC CE để UE phát sớm hơn, sao cho tín hiệu của mọi UE đến gNB thẳng hàng với khung thời gian. UE coi như mất đồng bộ đường lên khi bộ đếm
timeAlignmentTimerhết hạn mà không nhận được lệnh mới. - Điều khiển công suất. Công suất PUSCH, PUCCH và SRS gồm phần vòng hở, UE tự tính từ suy hao đường truyền, và phần vòng kín, gNB điều chỉnh bằng lệnh TPC trong DCI cấp phát hoặc DCI nhóm 2_2, 2_3. Báo cáo PHR cho scheduler biết nếu cấp thêm PRB thì UE có đủ công suất hay không.
- DRX. Scheduler chỉ gửi DCI cho UE trong thời gian UE đang thức theo cấu hình DRX, và việc lập lịch cho UE sẽ kéo dài thời gian thức qua
drx-InactivityTimer.
Các cơ chế này được tóm tắt ở Connected Mode & Mobility.
Ràng buộc khi hiện thực¶
- Ngân sách thời gian. Ở subcarrier spacing 30 kHz, mỗi slot dài 0,5 ms, và quyết định cho mỗi slot phải xong trước hạn chót của L1. Số UE được xét và số UE được lập lịch mỗi slot thường bị giới hạn để giữ thời gian chạy trong ngân sách.
- Thời gian chạy ổn định. Scheduler thường chạy trên core CPU được cô lập, tránh cấp phát bộ nhớ động và khóa dùng chung trong đường xử lý theo slot, vì một lần chạy vượt hạn chót làm mất cả slot của cell, xem Kiến trúc DU và CU.
- Song song hóa. Nhiều cell trên một DU thường được xử lý trên các thread riêng; đường xuống và đường lên của một cell có thể tách thread nhưng phải dùng chung trạng thái HARQ và tài nguyên PDCCH.
- Tương tác với RIC. Trong kiến trúc O-RAN, Near-RT RIC có thể điều chỉnh tham số của scheduler (trọng số ưu tiên, chia tài nguyên giữa các slice) qua giao diện E2 ở thang thời gian từ 10 ms trở lên. Quyết định theo từng slot vẫn nằm trong DU, xem RAN Intelligent Controller.
- Đo lường và kiểm thử. Chất lượng scheduler được đánh giá qua thông lượng cell và từng UE, phân bố thông lượng (đặc biệt UE ở biên cell), tỉ lệ lỗi lần truyền đầu, độ trễ gói theo từng 5QI, mức sử dụng PRB và PDCCH. Các chỉ số này cần được theo dõi theo từng slot khi gỡ lỗi, vì giá trị trung bình che mất các slot bị bỏ lỡ hạn chót.
Liên quan¶
- Connected Mode & Mobility: luồng DCI, HARQ, SR và BSR giữa UE và gNB, các cơ chế ở trạng thái kết nối.
- Protocol Stack & States: vị trí lớp MAC trong chồng giao thức, kênh logic và kênh truyền tải.
- Physical Channels: PDCCH, các định dạng DCI, PUCCH và cách xác định kích thước transport block.
- Reference Signals & CSI: CSI làm đầu vào cho link adaptation, bảng CQI và MCS.
- MIMO & Beamforming: chọn rank, precoder và ghép cặp MU-MIMO.
- Kiến trúc DU và CU: scheduler chạy trên DU cùng L1, cách phân core.
- RAN Intelligent Controller: vòng điều khiển near-real-time có thể điều chỉnh tham số của scheduler qua E2.
- L1 & Acceleration: giao diện FAPI giữa L2 và L1.
- Kịch bản sử dụng 5G: yêu cầu của eMBB, URLLC, mMTC và network slicing đối với lập lịch.
Tài liệu tham khảo¶
- 3GPP TS 38.321: Medium Access Control (MAC) protocol specification (HARQ, BSR, SR, PHR, timing advance, configured grant, SPS, DRX).
- 3GPP TS 38.214: Physical layer procedures for data (TDRA, K0, K2, thời gian xử lý N1 và N2, số HARQ process).
- 3GPP TS 38.213: Physical layer procedures for control (K1, HARQ-ACK codebook, điều khiển công suất).
- 3GPP TS 23.501 mục 5.7.4 (bản trích trên itecspec): ánh xạ 5QI chuẩn sang các đặc tính QoS.
- Small Cell Forum: 5G FAPI PHY API specification (SCF222): giao diện giữa MAC và L1.
- NVIDIA Aerial: SCF FAPI support: các bản tin P5 và P7 được hỗ trợ, xử lý khi bản tin đến muộn.
- Survey on Scheduling and Radio Resources Allocation in LTE (arXiv 1404.2759): khảo sát các thuật toán lập lịch, gồm proportional fair và đánh đổi giữa thông lượng và công bằng.
- EURECOM: proportional fair scheduling, công thức trung bình trượt và hằng số thời gian.