Type-1 HARQ-ACK 码本使用条件
(1)UE 被配置为 pdsch-HARQ-ACK-Codebook = semi-static
pdsch-HARQ-ACK-Codebook ENUMERATED {semiStatic, dynamic}
(2)DCI 1_0 或 DCI 1_1 的 PDSCH-to-HARQ_feedback timing indicator 域指示 HARQ-ACK 传输的时隙。
UE 在时隙 n + k n+k n+k 报告以下时隙 PDSCH 接收的 HARQ-ACK 信息:
- 从时隙 n − N P D S C H r e p e a t + 1 n-N_ {PDSCH}^{repeat}+1 n−NPDSCHrepeat+1 到时隙 n n n, N P D S C H r e p e a t N_ {PDSCH}^{repeat} NPDSCHrepeat 来自于 pdsch-AggregationFactor;
- 从时隙 n − R e p N u m R 16 + 1 n-RepNumR16+1 n−RepNumR16+1 到时隙 n n n, 如果 DCI 的 Time domain resource assignment 域指向的 pdsch-TimeDomainAllocationList 项包含 RepNumR16;
- 时隙 n n n。
k k k 由 DCI 的 PDSCH-to-HARQ_feedback timing indicator 域指示或由 dl-DataToUL-ACK 提供。
UE 针对以下情况在 PUCCH 报告 HARQ-ACK 信息:
- DCI 1_0 指示的 SPS PDSCH 释放, counter DAI 域为 1;
- 主小区 DCI 1_0 调度的 PDSCH 接收,counter DAI 域为 1;
- SPS PDSCH 接收。
确定 SPS PDSCH 传输的时隙
循环:
(1)
c
=
0
:
N
c
e
l
l
s
D
L
−
1
c=0:N_{cells}^{DL}-1
c=0:NcellsDL−1 ,下行服务小区
(2)
s
=
0
:
N
c
S
P
S
−
1
s=0:N_c^{SPS}-1
s=0:NcSPS−1,小区配置的 SPS PDSCH
(3)
n
D
=
0
:
N
c
D
L
−
1
n_D=0:N_c^{DL}-1
nD=0:NcDL−1,SPS PDSCH 的接收时隙
如果
n
D
n_D
nD 是小区
c
c
c 配置
s
s
s 接收 SPS PDSCH 的时隙,除因重叠不能接收外,计入SPS PDSCH 传输的时隙。
结束(3)
结束 (2)
结束 (1)。
UE 决定
M
A
,
c
M_{A,c}
MA,c 个候选 PDSCH 接收的时间点对应时隙
n
U
n_U
nU 的 PUCCH 传输的HARQ-ACK 信息。决定过程依据以下参数:
a)
K
1
K_1
K1,(PDSCH 到 PUCCH/PUSCH),根据 UE 检测的DCI决定
K
1
K_1
K1的集合;
b) 时域资源分配表,根据时域资源分配域确定行编号
R
R
R从而得到
K
0
K_0
K0 (PDCCH 到 PDSCH),SLIV,和 PDSCH 映射类型,根据UE 检测的DCI决定时域资源分配表行的集合;
c)
2
μ
D
L
−
μ
U
L
2^{\mu_{DL} -\mu_{UL}}
2μDL−μUL;
d) tdd-UL-DL-ConfigurationCommon 和 tdd-UL-DL-ConfigurationDedicated;
e) ca-SlotOffset 。
确定过程:
由上行PUCCH时隙
n
U
n_U
nU 和
K
1
K_1
K1确定下行时隙
n
D
n_D
nD,如果
n
D
n_D
nD 满足下行传输要求且对应的资源分配表的行集合为非空集则表明该下行时隙为候选 PDSCH 接收的时间点。
如果一个时隙允许多个PDSCH,且有PDSCH开始的符号在其它PDSCH结束的符号之后,则可计为多个PDSCH。
Type-2 HARQ-ACK 码本使用条件
(1)UE 被配置为 pdsch-HARQ-ACK-Codebook = dynamic 或配置了 pdsch-HARQ-ACK-Codebook-r16
pdsch-HARQ-ACK-Codebook ENUMERATED {semiStatic, dynamic}
pdsch-HARQ-ACK-Codebook-r16 ENUMERATED {enhancedDynamic}
(2)DCI 的 PDSCH-to-HARQ_feedback timing indicator 域指示一个合适的值
- DCI 1-0/DCI 4-1,PDSCH-to-HARQ_feedback timing indicator 域 3 比特,codepoint 表示 dl-DataToUL-ACK 中的第 1,2,…,8 项;
- DCI 1-1/DCI 1-2/DCI 4-2,PDSCH-to-HARQ_feedback timing indicator 域 0,1,2,3 比特,比特数
log
2
(
I
)
\log_2(I)
log2(I),
I
I
I 是 dl-DataToUL-ACK 的项数。
dl-DataToUL-ACK SEQUENCE (SIZE (1..8)) OF INTEGER (0..15)
从接收 PDSCH 结束的 slot n n n 到发送 HARQ ACK 的PUCCH slot n + k n+k n+k 之间的 slot 间隔 k k k,( 即 K 2 K_2 K2)。
(3)Type-2 HARQ-ACK 码本里所复用的 HARQ-ACK 信息所对应的 DCI 包括 counter DAI 域。
- DCI 0-1,1st DAI(1,2,4 比特) 和 2nd DAI (0,2,4 比特)
1比特 semi-static HARQ-ACK codebook;
2比特 dynamic HARQ-ACK codebook 或 enhanced dynamic HARQ-ACK codebook 无 UL-TotalDAI-Included;
4 比特 enhanced dynamic HARQ-ACK codebook 且 UL-TotalDAI-Included = true。
当配置了 2 个 HARQ-ACK codebooks,如果两个码本的 1st (或 2nd)DAI 长度不同,在短的DAI 的 MSB 补 0 至长度一致。 - DCI 1-0,2 比特,counter DAI。
- DCI 1-1 Downlink assignment index – 0,1,2,4,6 比特
6 比特,多小区下行,配置 nfi-TotalDAI-Included (non-feedback)。4 MSB 是 counter DAI 和调度 PDSCH group 的 total DAI,2 LSB 是非调度 PDSCH group 的 total DAI;
4 比特,单小区下行,配置 nfi-TotalDAI-Included (non-feedback)。2 MSB 是 counter DAI , 2 LSB 是非调度 PDSCH group 的 total DAI;
4 比特,多小区下行,pdsch-HARQ-ACK-Codebook=dynamic 或 pdsch-HARQ-ACK-Codebook-r16= enhancedDynamic, 无 nfi-TotalDAI-Included 配置。 2 MSB 是 counter DAI , 2 LSB 是 total DAI;
4 比特, 单小区下行, pdsch-HARQ-ACK-Codebook=dynamic,2 coresetPoolIndex CORESETs, ackNackFeedbackMode = joint。 2 MSB 是 counter DAI , 2 LSB 是 total DAI;
2 比特,单小区下行,pdsch-HARQ-ACK-Codebook=dynamic 或 pdsch-HARQ-ACK-Codebook-r16= enhancedDynamic, 无 nfi-TotalDAI-Included 配置,无 coresetPoolIndex 或 coresetPoolIndex 对所有 CORESETs 相同 或 无 ackNackFeedbackMode = joint 配置。counter DAI;
0 比特,其它。. - DCI 1-2 Downlink assignment index – 0,1,2,4 比特
0 比特,downlinkAssignmentIndexDCI-1-2 无配置;
1 或 2 比特是 counter DAI,单小区下行,pdsch-HARQ-ACK-Codebook=dynamic;
4 比特, pdsch-HARQ-ACK-Codebook=dynamic,多小区配置下行,或单小区 2 CORESETs 且 ackNackFeedbackMode = joint。2 MSB 是 counter DAI,2 LSB 是 total DAI。 - DCI 4-1 Downlink assignment index – 2 比特 counter DAI;
4 比特,多小区多播,pdsch-HARQ-ACK-Codebook-Multicast=dynamic。2 MSB 是 counter DAI,2 LSB 是 total DAI;
2 比特,单小区多播, pdsch-HARQ-ACK-Codebook-Multicast=dynamic。counter DAI;
0 比特,其它。 - DCI 4-2 Downlink assignment index – 0,2,4 比特
4 比特,多小区多播,pdsch-HARQ-ACK-Codebook-Multicast=dynamic。2 MSB 是 counter DAI,2 LSB 是 total DAI;
2 比特,单小区多播, pdsch-HARQ-ACK-Codebook-Multicast=dynamic。counter DAI;
0 比特,其它。
第一个 DCI 的 dl-DataToUL-ACK 值不可用情况
如果 UE 收到的第一个 DCI 的 HARQ_feedback timing indicator 域所指示的 dl-DataToUL-ACK 值不可用, 如果 UE 检测到第二个 DCI ,在第二个DCI 的 HARQ_feedback timing indicator 域指示的时间的 PUCCH 或 PUSCH 复用 HARQ-ACK,需满足以下条件:
- 如果 UE 没有配置 pdsch-HARQ-ACK-Codebook = enhancedDynamic-r16,UE 在第一 DCI 后检测第二 DCI;
- 如果 UE 配置 pdsch-HARQ-ACK-Codebook = enhancedDynamic-r16, UE 在第一 DCI 后检测第二 DCI,第二 DCI 指示的 PDSCH group index 同第一 DCI;
- 如果 UE 配置 pdsch-HARQ-ACK-OneShotFeedback-r16, 第一 DCI 没有指示 SPS PDSCH release 或 SCell dormancy, UE 在第一 DCI 后检测第二 DCI,第二 DCI 包括 One-shot HARQ-ACK request 域且为 1, UE 采用 Type-3 HARQ-ACK codebook;
- 其它情况,UE 不复用 HARQ-ACK 信息。
在 PUCCH 传输 Type-2 HARQ-ACK 码本
决定检测 PDCCH 的时间
UE 所检测的 PDCCH 调度的 PDSCH 接收或 服务小区 c 的激活 BWP的 SPS PDSCH 释放对应 UE 在时隙 n 发送的 HARQ-ACK,PDCCH 的决定时间基于以下参数:
(1)PDSCH-to-HARQ_feedback timing indicator 域的值 (指示从 PDSCH 到 PUCCH 的时隙间隔);
(2)时隙偏移量 K 0 K_0 K0(从 PDCCH 到PDSCH 的时隙间隔, 由 DCI 的 time domain resource assignment 域提供),和 pdsch-AggregationFactor 或 RepNumR16 (重复次数)。
PDCCH 检测时间按检测起始时间的增加方向排序,检测时间集总数为 M。
counter DAI 计数
- counter DAI 表示到当前小区和当前 PDCCH 检测时间累积的 {serving cell, PDCCH monitoring occasion} 对,
- 首先,如果 UE 支持 PDSCH-Number-perMOperCell(每检测时间每小区多个 PDSCH),在一个 {serving cell, PDCCH monitoring occasion} 对里按 PDSCH 接收开始时间增加排序,
然后, 按小区编号增加排序,最后按检测时间编号 m 增加排序, 0 ≤ m < M 0\le m<M 0≤m<M; - 如果有两个 CORESET 编号且 ACKNACKFeedbackMode = JointFeedback,对于同小区同检测时间编号先 CORESET 0 后 CORESET 1。
total DAI 计数
DCI 中的 total DAI 表示到当前 PDCCH 检测时间的总的 {serving cell, PDCCH monitoring occasion} 对(pair),
- Total DAI 更新:从 PDCCH 检测时间到 PDCCH 检测时间;
- 如果有两个 CORESET 编号且 ACKNACKFeedbackMode = JointFeedback,total DAI 计两次。
记 N C − D A I D L N_{C-DAI}^{DL} NC−DAIDL 为 counter DAI 的比特数,令 T D = 2 N C − D A I D L T_D =2^{N_{C-DAI}^{DL}} TD=2NC−DAIDL;
记 V C − D A I , c , m D L V_{C-DAI,c,m}^{DL} VC−DAI,c,mDL 为小区 c 和 PDCCH 检测时间指数 m 的 counter DAI ;
记 V T − D A I , m D L V_{T-DAI,m}^{DL} VT−DAI,mDL 为 PDCCH 检测时间指数 m 的 total DAI ;
DAI 值
i
=
codepoint
+
1
i=\text{codepoint} +1
i=codepoint+1,{serving cell, PDCCH monitoring occasion}-对的值
Y
Y
Y
(
Y
−
1
)
m
o
d
T
D
+
1
=
i
(Y-1)\mod T_D+1=i
(Y−1)modTD+1=i
在 PDCCH 检测时间指数 m,UE 的所有 DCI 的有相同的 total DAI;在一个 Type-2 HARQ-ACK 码本,HARQ-ACK 信息所对应的 DCI 有相同的 counter DAI 比特数。
决定 Type-2 HARQ-ACK 信息比特
令
V
t
e
m
p
=
0
V_{temp}=0
Vtemp=0 为 counter DAI 初始值;
令
V
t
e
m
p
2
=
0
V_{temp2}=0
Vtemp2=0 为total DAI 初始值;
令
j
=
0
j=0
j=0 为码本比特 DAI 周期初始值,单位为
T
D
T_D
TD(1TB 或 2TB 空间绑定) 或
2
T
D
2T_D
2TD (2TB 无空间绑定);
令
V
s
=
∅
V_s=\emptyset
Vs=∅ 为码本位置集合。
循环:
(1)
m
=
0
:
M
−
1
m=0:M-1
m=0:M−1,PDCCH 检测时间指数,
M
M
M 为总的检测时间指数,其中的 DCI 调度 PDSCH 接收或 SPS PDSCH 释放;
(2) c = 0 : N c e l l D L − 1 c=0:N_{cell}^{DL}-1 c=0:NcellDL−1
-
N c e l l D L N_{cell}^{DL} NcellDL 为服务小区个数。
-
如果有 2 CORESETs 且 ackNackFeedbackMode = joint,服务小区数计两次。
-
如果UE 配置 PDSCH-Number-perMOperCell, 服务小区计 N P D S C H M O N_{PDSCH}^{MO} NPDSCHMO 次。
-
无效小区:如果检测时间 m m m 在该小区切换到当前活动下行BWP之前,或当前的活动上行BWP非m时间触发,则跳过该小区。
-
如果有PDSCH 或 SPS PDSCH 释放对应的PDCCH,则进行以下过程:
a) 如果 V C − D A I , c , m D L ≤ V t e m p V_{C-DAI,c,m}^{DL}\le V_{temp} VC−DAI,c,mDL≤Vtemp(表明比特跨过了一个DAI 周期),令 j = j + 1 j=j+1 j=j+1;
b) V t e m p = V C − D A I , c , m D L V_{temp}=V_{C-DAI,c,m}^{DL} Vtemp=VC−DAI,c,mDL。
c) 如果 V T − D A I , m D L V_{T-DAI,m}^{DL} VT−DAI,mDL 是空集,则 V t e m p 2 = V C − D A I , c , m D L V_{temp2}=V_{C-DAI,c,m}^{DL} Vtemp2=VC−DAI,c,mDL,否则 - V t e m p 2 = V T − D A I , m D L V_{temp2}=V_{T-DAI,m}^{DL} Vtemp2=VT−DAI,mDL。
如果 2 传输块 (TB) 无空间绑定,则产生 2 个ACK 比特;
V s = V s ∪ { 2 ⋅ T D ⋅ j + 2 ( V C − D A I , c , m D L − 1 ) , 2 ⋅ T D ⋅ j + 2 ( V C − D A I , c , m D L − 1 ) + 1 } V_s=V_s∪\{2⋅T_D⋅j+2(V_{C-DAI ,c,m}^{DL} -1), 2⋅T_D⋅j+2(V_{C-DAI ,c,m}^{DL} -1)+1\} Vs=Vs∪{2⋅TD⋅j+2(VC−DAI,c,mDL−1), 2⋅TD⋅j+2(VC−DAI,c,mDL−1)+1}
d) 如果1TB , 则产生 1 个ACK 比特;如果 2TB 空间绑定, 则产生 1 个ACK 比特为两个 TB ACK 信息比特的逻辑 AND 结构。
V s = V s ∪ { T D ⋅ j + V C − D A I , c , m D L − 1 } V_s=V_s∪\{T_D⋅j+V_{C-DAI ,c,m}^{DL} -1\} Vs=Vs∪{TD⋅j+VC−DAI,c,mDL−1}
结束循环 (2);
结束循环 (1);
如果 V t e m p 2 < V t e m p V_{temp2}<V_{temp} Vtemp2<Vtemp, 令 j = j + 1 j=j+1 j=j+1。
HARQ-ACK 码本长度
如果 2TB 无空间绑定
O
A
C
K
=
2
⋅
(
T
D
⋅
j
+
(
(
V
t
e
m
p
2
−
1
)
m
o
d
T
D
+
1
)
)
O^{ACK}=2⋅(T_D⋅j+((V_{temp2}-1)\mod T_D+1))
OACK=2⋅(TD⋅j+((Vtemp2−1)modTD+1))
如果1TB 或 2TB 空间绑定
O
A
C
K
=
T
D
⋅
j
+
(
(
V
t
e
m
p
2
−
1
)
m
o
d
T
D
+
1
)
O^{ACK}=T_D⋅j+((V_{temp2}-1)\mod T_D+1)
OACK=TD⋅j+((Vtemp2−1)modTD+1)
除
V
s
V_s
Vs 以外的位置设为 NACK。
如果 UE 配置接收 SPS PDSCH, UE 将激活 SPS PDSCH接收的 HARQ-ACK 信息附在 O A C K O^{ACK} OACK HARQ-ACK 信息比特之后。
针对 PDSCH 接收或 SPS PDSCH 释放,如果 UE 收到一个 单TB 的 PDSCH 而 maxNrofCodeWordsScheduledByDCI 是 2,
- 如果没有 harq-ACK-SpatialBundlingPUCCH, 则 HARQ-ACK 信息比特对应第一个 TB 并产生一个 NACK 对应第二个 TB,
- 如果有 harq-ACK-SpatialBundlingPUCCH, 则 产生一个 ACK 对应第二个 TB。
Type-3 HARQ-ACK 码本使用场合和过程
使用场合:
UE 配置 pdsch-HARQ-ACK-OneShotFeedback-r16。
确定码本过程:
循环:
(1)小区编号
(2)每小区 HARQ过程
(3)每HARQ过程的传输块(TB)
(4)每 TB的码块组 (CBG)
结束(4),
结束(3),
结束(3),
结束(1)。