이하, 본 개시의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시예를 설명함에 있어서 본 개시가 속하는 기술 분야에 익히 알려져 있고 본 개시와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 개시의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부된 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성 요소에는 동일한 참조 번호를 부여하였다.
본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시의 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시는 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. 또한 본 개시를 설명함에 있어서 관련된 기능 또는 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 개시에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
또한, 이하에서는 LTE(Long Term Evolution), LTE-A (LTE-Advanced) 및 NR(New Radio) 시스템에 기반하여 설명할 수도 있지만, 유사한 기술적 배경 또는 채널형태를 갖는 여타의 통신시스템에도 본 개시의 실시예가 적용될 수 있다. 예를 들어, NR 시스템은 LTE-A 이후에 개발되는 5세대 이동통신 기술(5G, new radio, NR)일 수 있으며, 이하의 5G는 기존의 LTE, LTE-A 및 유사한 다른 서비스를 포함하는 개념일 수도 있다. 또한, 본 개시는 숙련된 기술적 지식을 가진 자의 판단으로써 본 개시의 범위를 크게 벗어나지 아니하는 범위에서 일부 변형을 통해 다른 통신시스템(예를 들면, Wi-MAX, Wi-Bro)에도 적용될 수 있다.
이때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예를 들면, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이때, 본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다. 또한 실시예에서 '~부'는 하나 이상의 프로세서를 포함할 수 있다.
도 1은 본 개시의 일 실시예에 따른 무선 통신 시스템의 프로토콜 구조를 나타내는 도면이다.
도 1을 참조하면, 무선 통신 시스템의 무선 프로토콜은 단말(100)과 기지국(150)에서 각각 SDAP 계층(Service Data Adaptation Protocol)(101, 151), PDCP(Packet Data Convergent Protocol) 계층(102, 152), RLC(Radio Link Control) 계층(103, 153), MAC(Medium Access Control) 계층(104, 154)를 포함할 수 있다.
일부 실시예에 따르면, SDAP 계층(101, 151)의 주요 기능은 다음의 기능들 중 일부를 포함할 수 있다. 물론 하기 예시에 제한되는 것은 아니다.
사용자 데이터의 전달 기능(transfer of user plane data)
상향 링크와 하향 링크에 대해서 QoS flow와 데이터 베어러의 맵핑 기능(mapping between a QoS flow and a DRB for both DL and UL)
상향 링크와 하향 링크에 대해서 QoS flow ID를 마킹 기능(marking QoS flow ID in both DL and UL packets)
상향 링크 SDAP PDU들에 대해서 relective QoS flow를 데이터 베어러에 맵핑시키는 기능 (reflective QoS flow to DRB mapping for the UL SDAP PDUs).
SDAP 계층(101, 151)에 대해 단말은 RRC 메시지로 각 PDCP 계층(102, 152) 별로 또는 베어러 별로 또는 로지컬 채널 별로 SDAP 계층(101, 151)의 헤더를 사용할 지 여부 또는 SDAP 계층(101, 151)의 기능을 사용할 지 여부를 설정 받을 수 있다. 또한 SDAP 계층(101, 151)은 SDAP 헤더가 설정된 경우, SDAP 헤더의 NAS(Non Access Stratum) QoS(Quality of Service) 반영 설정 1비트 지시자(NAS reflective QoS)와 AS QoS 반영 설정 1비트 지시자(AS reflective QoS)로 단말이 상향 링크와 하향 링크의 QoS flow와 데이터 베어러에 대한 맵핑 정보를 갱신 또는 재설정할 수 있도록 지시할 수 있다. 일부 실시예에 따르면, SDAP 헤더는 QoS를 나타내는 QoS flow ID 정보를 포함할 수 있다. 또한 일부 실시예에 따르면, QoS 정보는 원활한 서비스를 지원하기 위한 데이터 처리 우선 순위, 스케쥴링 정보 등으로 사용될 수 있다.
일부 실시예에 따르면, PDCP 계층(102, 152)의 주요 기능은 다음의 기능들 중 일부를 포함할 수 있다. 물론 하기 예시에 제한되는 것은 아니다.
- 헤더 압축 및 압축 해제 기능(Header compression and decompression: ROHC only)
- 사용자 데이터 전송 기능 (Transfer of user data)
- 순차적 전달 기능(In-sequence delivery of upper layer PDUs)
- 비순차적 전달 기능 (Out-of-sequence delivery of upper layer PDUs)
- 순서 재정렬 기능(PDCP PDU reordering for reception)
- 중복 탐지 기능(Duplicate detection of lower layer SDUs)
- 재전송 기능(Retransmission of PDCP SDUs)
- 암호화 및 복호화 기능(Ciphering and deciphering)
- 타이머 기반 SDU (Service Data Unit) 삭제 기능(Timer-based SDU discard in uplink.)
일부 실시예에 따르면, PDCP 계층 (102, 152) 의 순서 재정렬 기능(reordering)은 하위 계층에서 수신한 PDCP PDU들을 PDCP SN(sequence number)을 기반으로 순서대로 재정렬하는 기능, 재정렬된 순서대로 데이터를 상위 계층에 전달하는 기능, 또는 순서를 고려하지 않고, 바로 전달하는 기능, 순서를 재정렬하여 유실된 PDCP PDU들을 기록하는 기능, 유실된 PDCP PDU들에 대한 상태 보고를 송신 측에 하는 기능, 및 유실된 PDCP PDU들에 대한 재전송을 요청하는 기능 중 적어도 하나의 기능을 포함할 수 있다.
일부 실시예에 따르면, RLC 계층(103, 153)의 주요 기능은 다음의 기능들 중 일부를 포함할 수 있다. 물론 하기 예시에 제한되는 것은 아니다.
- 데이터 전송 기능(Transfer of upper layer PDUs)
- 순차적 전달 기능(In-sequence delivery of upper layer PDUs)
- 비순차적 전달 기능(Out-of-sequence delivery of upper layer PDUs)
- ARQ 기능(Error Correction through automatic repeat request)
- 접합, 분할, 재조립 기능(Concatenation, segmentation and reassembly of RLC SDUs)
- 재분할 기능(Re-segmentation of RLC data PDUs)
- 순서 재정렬 기능(Reordering of RLC data PDUs)
- 중복 탐지 기능(Duplicate detection)
- 오류 탐지 기능(Protocol error detection)
- RLC SDU 삭제 기능(RLC SDU discard)
- RLC 재수립 기능(RLC re-establishment)
일부 실시예에 따르면, RLC 계층(103, 153)의 순차적 전달 기능(In-sequence delivery)은 하위 계층으로부터 수신한 RLC SDU들을 순서대로 상위 계층에 전달하는 기능, 원래 하나의 RLC SDU가 여러 개의 RLC SDU들로 분할되어 수신된 경우, 이를 재조립하여 전달하는 기능, 수신한 RLC PDU들을 RLC SN(sequence number) 또는 PDCP SN(sequence number)를 기준으로 재정렬하는 기능, 순서를 재정렬하여 유실된 RLC PDU들을 기록하는 기능, 유실된 RLC PDU들에 대한 상태 보고를 송신 측에 하는 기능, 유실된 RLC PDU들에 대한 재전송을 요청하는 기능, 유실된 RLC SDU가 있을 경우, 유실된 RLC SDU 이전까지의 RLC SDU들만을 순서대로 상위 계층에 전달하는 기능, 또는 유실된 RLC SDU가 있어도 소정의 타이머가 만료되었다면 타이머가 시작되기 전에 수신된 모든 RLC SDU들을 순서대로 상위 계층에 전달하는 기능, 및 유실된 RLC SDU가 있어도 소정의 타이머가 만료되었다면 현재까지 수신된 모든 RLC SDU들을 순서대로 상위 계층에 전달하는 기능을 포함할 수 있다. 또한 RLC 계층(103, 153)는 RLC PDU들을 수신하는 순서대로 (일련번호, Sequence number의 순서와 상관없이, 도착하는 순으로) 처리하여 PDCP 계층으로 순서와 상관없이(Out-of sequence delivery) 전달할 수도 있으며, 수신한 RLC PDU가 분할(segment)된 경우에는 버퍼에 저장되어 있거나 추후에 수신될 segmentation 을 수신하여 온전한 하나의 RLC PDU로 재구성한 후, 처리하여 PDCP 계층 (102, 152)로 전달할 수 있다. 일부 실시예에 따르면 RLC 계층(103, 153)는 접합(Concatenation) 기능을 포함하지 않을 수 있고 상기 기능을 MAC 계층(104, 154)에서 수행하거나 MAC 계층(104, 154)의 다중화(multiplexing) 기능으로 대체할 수 있다.
RLC 계층(103, 153)의 비순차적 전달 기능(Out-of-sequence delivery)은 하위 계층으로부터 수신한 RLC SDU들을 순서와 상관없이 바로 상위 계층으로 전달하는 기능, 및 원래 하나의 RLC SDU가 여러 개의 RLC SDU들로 분할되어 수신된 경우, 이를 재조립하여 전달하는 기능을 포함할 수 있으며, 수신한 RLC PDU들의 RLC SN 또는 PDCP SN을 저장하고 순서를 정렬하여 유실된 RLC PDU들을 기록해두는 기능 중 적어도 하나의 기능을 포함할 수 있다.
일부 실시예에 따르면, MAC 계층(104, 154)은 한 단말(100)에 구성된 여러 RLC 계층들과 연결될 수 있으며, MAC 계층의 주요 기능은 다음의 기능들 중 일부를 포함할 수 있다. 물론 하기 예시에 제한되지 않는다.
- 맵핑 기능(Mapping between logical channels and transport channels)
- 다중화 및 역다중화 기능(Multiplexing/demultiplexing of MAC SDUs)
- 스케쥴링 정보 보고 기능(Scheduling information reporting)
- HARQ 기능(Error correction through HARQ)
- 로지컬 채널 간 우선 순위 조절 기능(Priority handling between logical channels of one UE)
- 단말 간 우선 순위 조절 기능(Priority handling between UEs by means of dynamic scheduling)
- MBMS 서비스 확인 기능(MBMS service identification)
- 전송 포맷 선택 기능(Transport format selection)
- 패딩 기능(Padding)
일부 실시예에 따르면, PHY 계층(105, 155)은 상위 계층 데이터를 채널 코딩 및 변조하고, OFDM 심벌로 만들어서 무선 채널로 전송하거나, 무선 채널을 통해 수신한 OFDM 심벌을 복조하고 채널 디코딩해서 상위 계층으로 전달하는 동작을 수행할 수 있다. 물론 상기 예시에 제한되지 않는다.
전술한 무선 프로토콜의 동작들 중 처리 로드(load)가 큰 동작들을 효율적으로 처리함으로써, 단말(100) 또는 기지국(150)은 보다 높은 데이터 율(data rate)을 지원할 수 있다. 구체적으로, RLC 계층(103, 153)의 동작들 중에서, ARQ 관련 동작, STATUS PDU의 생성 동작, 및 분할(segmentation) 관련 동작은 가장 처리 로드가 큰(heavy) 동작 중 하나에 해당한다. 공간 및 비용 측면에서, 처리 능력의 제한이 있는 단말(100)의 패킷 처리 로드는 특히 더 심각할 수 있다. 따라서, 이러한 동작들을 효율적으로 처리하기 위한 방법에 대해 후술한다.
도 1을 참조하면, 단말(100) 및 기지국(150)의 무선 프로토콜들 간 송수신이 수행될 수 있다. 이 때, 단말(100) 또는 기지국(150)이 각각 송신 장치 또는 수신 장치가 될 수 있으며, 단말(100) 또는 기지국(150) 중 어느 것이 송신 장치 또는 수신 장치 인지 여부와 무관하게 후술하는 동작들이 적용될 수 있다. 즉, 이하에서 송신 장치 또는 수신 장치로 지칭되는 것은 단말(100) 또는 기지국(150) 일 수 있다.
도 2a는 본 개시의 일 실시예에 따른 ARQ 관련 동작을 처리하기 위한 방법을 나타내는 도면이다.
송신 장치에서의 RLC 계층은 PDCP 계층으로부터 전달된 RLC SDU를 처리할 수 있다. 이 때, RLC SDU는 PDCP SDU(200, 203, 206)에 PDCP 헤더(header)(201, 204, 207)가 접합된 PDCP PDU에 대응할 수 있다. PDCP SDU(200, 203, 206)는 SDAP PDU(미도시)에 대응할 수 있으나, 이하에서는 RLC 계층 이하의 동작들에 대해 설명하므로, PDCP SDU(200, 203, 206) 기준으로 설명한다.
RLC 계층에서 수신한 PDCP PDU는 RLC SDU에 대응할 수 있다. 도 2a를 참조하면, RLC 계층은 수신된 RLC SDU 각각에 대해 1 내지 n 에 대응하는 시퀀스 넘버(SN, sequence number)를 할당할 수 있다. RLC PDU는 RLC data PDU(TMD PDU, UMD PDU, AMD PDU)와 RLC control PDU(STATUS PDU, ARQ PDU)를 포함할 수 있고, RLC control PDU에는 시퀀스 넘버가 할당되지 않는다.
이하에서는 설명의 편의 상, 시퀀스 넘버가 1에 대응하는 패킷의 처리에 대해 설명하나, 시퀀스 넘버 1 내지 n에 대응하는 패킷의 처리에 대해 모두 동일하게 적용될 수 있음은 물론이다. 또한, 이하에서는 시퀀스 넘버 n에 대응하는 RLC SDU를 제n RLC SDU로 지칭하고, 제n RLC SDU를 포함하는 RLC data PDU를 제n RLC data PDU로 지칭한다.
RLC 계층은 수신된 제1 RLC SDU 내지 제n RLC SDU 에 RLC 헤더를 접합한 제1 RLC data PDU 내지 제n RLC data PDU를 생성할 수 있다. 구체적으로, RLC 계층은 제1 RLC SDU(200, 201)에 RLC 헤더(202)를 접합한 제1 RLC PDU를 생성할 수 있다. 또한, 제1 RLC data PDU, 제2 RLC data PDU 및 제n RLC data PDU에 포함되는 각각의 RLC 헤더(202, 205, 208)는 각각의 RLC data PDU의 동작을 처리하기 위한 정보를 포함할 수 있다. 구체적으로, RLC 헤더(202, 205, 208)는 제1 RLC data PDU, 제2 RLC data PDU 및 제n RLC data PDU에 대한 패킷 폐기, 분할 핸들링, ARQ 관련 동작, 패킷 전달 등의 동작을 처리하기 위한 정보를 포함할 수 있다.
RLC 계층은, 생성된 RLC data PDU들을 MAC 계층으로 전달하고, MAC 계층은 수신된 RLC data PDU들 및 수신된 RLC data PDU들 각각에 대응하는 MAC 서브 헤더들(211, 212, 213)을 접합한 MAC PDU들을 생성할 수 있다. 이 때, 제1 RLC data PDU 내지 제n RLC data PDU들이 모두 포함된 하나의 MAC PDU(210)가 생성될 수 있다. 한편, 자원 할당에 따라 MAC PDU에 제1 RLC data PDU 내지 제n RLC data PDU들이 모두 포함될 수 없는 경우, MAC PDU에 포함되는 RLC data PDU들의 수는 변경될 수도 있다(미도시). 예를 들어, 자원 할당에 따라, 제1 RLC data PDU 내지 제m RLC data PDU들이 하나의 전송 블록에 포함될 수도 있다(m<n). 즉, MAC PDU(210)에 포함되는 RLC data PDU들의 개수는 자원 할당에 따라 달라질 수 있으며, 자원 할당에 따라 제1 RLC data PDU 내지 제n RLC data PDU들 중, 제1 RLC data PDU 내지 제m RLC data PDU들만이 하나의 전송 블록에 포함될 수 있다.
상술한 방법에 따르면, RLC 동작들은 RLC data PDU들 각각에 대해 수행되어야 하므로 n회 수행되어야 한다. 도 1에서 전술한 바와 같이, RLC 계층의 동작들 중, ARQ 관련 동작은 레이어 2(L2)에서 높은 비중을 차지할 수 있다. 예를 들어, ARQ 관련 동작은 L2의 MAC 계층 또는 PDCP 계층에서의 동작 대비 두 배 이상의 로드가 필요할 수 있으며, 특히 ARQ 관련 동작, STATUS PDU의 생성 동작, 및 분할 관련 동작들은 가장 heavy한 기능들 중 하나로, RLC 계층에서 병목(bottleneck) 현상을 일으킬 수 있다. 따라서, ARQ 관련 동작을 효율적으로 수행할 수 있는 방안이 요구된다.
도 2b는 본 개시의 일 실시예에 따른 ARQ 관련 동작을 처리하기 위한 ARQ PDU를 설명하기 위한 도면이다.
본 개시의 일 실시예에 따르면, RLC 계층은 제1 RLC data PDU 내지 제n RLC data PDU들을 포함하는 RLC data PDU 셋(220)에 대응하는 ARQ PDU (230)를 생성할 수 있다. 이 경우, RLC 계층은 RLC data PDU 셋(220)에 대한 ARQ 관련 동작을 ARQ PDU (230)에 기초하여 처리할 수 있다. 구체적으로, RLC 계층은 ARQ PDU (230)에 제1 RLC data PDU 내지 제n RLC data PDU들과 관련된 동작에 대한 정보를 포함시킴으로써, 소정 RLC 계층 동작(예를 들어, ARQ 관련 동작)들을 제1 RLC data PDU 내지 제n RLC data PDU들 각각에 대해 n회 수행하던 것을 1회로 줄일 수 있다. 이 경우, 제1 RLC data PDU 내지 제n RLC data PDU들 각각에 포함된 제1 RLC 헤더 내지 제n RLC 헤더들은 ARQ PDU에 포함된 소정 RLC 계층 동작에 대한 정보를 제외한 나머지 RLC 동작들에 대한 정보를 포함할 수 있다. 즉, 수신 장치의 RLC 계층은 ARQ PDU(230)에 기초하여 RLC data PDU 셋(220)에 대해 소정 RLC 계층 동작을 1회 수행하고, 제1 RLC data PDU 내지 제n RLC data PDU들 각각에 대한 나머지 RLC 동작들을 n회 수행할 수 있다. 한편, 도 2a를 참조하여 설명한 실시예에 따라, 전송 블록에 제1 RLC data PDU 내지 제m RLC data PDU들이 포함되는 경우, 제1 RLC data PDU 내지 제m RLC data PDU들 각각에 대해 소정 RLC 계층 동작들을 m회 수행하던 것을 1회로 줄일 수 있음은 물론이다.
설명의 편의상, MAC 계층이 하나의 RLC 엔티티로부터 복수의 RLC data PDU들을 수신하는 내용에 대해 설명하였으나, 복수의 RLC 엔티티(entity)들로부터 RLC data PDU들을 각각 수신할 수도 있다(미도시). 여기서, RLC 계층의 동작의 수행 주체를 RLC 엔티티로 정의한다. 즉, RLC 계층과 관련된 동작을 수행하기 위한 복수의 RLC 엔티티들이 하나의 장치에 포함될 수 있으며, MAC PDU 안에는 여러 RLC 엔티티들로부터 수신된 RLC data PDU들이 포함될 수 있다. 이하에서는, RLC data PDU 셋 및 RLC data PDU 셋에 대응하는 ARQ PDU를 포함하는 것을 RLC 프레임으로 정의한다.
이때, MAC 계층에서 복수의 RLC 프레임들에 포함된 복수의 ARQ PDU들 및 복수의 RLC data PDU들 각각에 MAC 서브 헤더가 접합된 것에 기초하여 MAC PDU가 생성될 수 있다. 구체적으로, MAC PDU는 여러 RLC 엔티티들로부터 획득되는 여러 RLC 프레임(ARQ PDU, 대응하는 RLC data PDU들)들을 포함할 수 있다. 이 때, 각 RLC 엔티티는 RLC data PDU에 대응하는 시퀀스 넘버(sequence number, SN)를 독립적으로 운영하듯이 RLC 프레임에 대응하는 프레임 넘버(frame number, FN)도 독립적으로 운영할 수 있다. 즉, 하나의 MAC PDU 안에는 제1 RLC 엔티티로부터의 3번 프레임 넘버에 대응하는 RLC 프레임과 제2 RLC 엔티티로부터의 97번 프레임 넘버에 대응하는 RLC 프레임이 모두 포함될 수 있다. 이때, 다음에 전송되는 MAC PDU 안에는 제1 RLC 엔티티로부터의 4번 프레임 넘버에 대응하는 RLC 프레임과 제2 RLC 엔티티로부터의 98번 프레임 넘버에 대응하는 RLC 프레임이 포함될 수 있다. 즉, 수신 장치는 각각의 MAC 서브 헤더에 포함된 정보(예를 들어, 논리 채널 식별자)에 기초하여 어떤 RLC 엔티티로부터 전송된 ARQ PDU 또는 RLC data PDU들인지 여부를 판단하고, ARQ PDU에 기초하여 해당하는 RLC 엔티티에서 RLC 프레임들을 처리할 수 있다.
이하에서는 설명의 편의상 단일 RLC 엔티티로부터 획득되는 RLC 프레임들에 대해 설명하나, 전술한 바와 같이 복수의 RLC 엔티티들로부터 수신되는 RLC 프레임들에 대해서도 동일하게 적용될 수 있음은 물론이다.
도 2b를 참조하면, 제1 RLC data PDU 내지 제n RLC data PDU들을 포함하는 RLC data PDU 셋(220)은 프레임 넘버 1에 대응되며, ARQ PDU (230)는 프레임 넘버 1에 대응할 수 있다. 이에 따라, 제n+1 RLC data PDU 내지 제n' RLC data PDU들을 포함하는 제2 RLC data PDU 셋(미도시)은 프레임 넘버 2에 대응되며, 프레임 넘버 2에 대응하는 ARQ PDU(미도시)가 생성될 수 있다. 즉, 제1 RLC data PDU 셋 및 제1 ARQ PDU를 포함하는 것은 제1 RLC 프레임, 제2 RLC data PDU 셋 및 제2 ARQ PDU를 포함하는 것은 제2 RLC 프레임, 제n RLC data PDU 셋 및 제n ARQ PDU를 포함하는 것은 제n RLC 프레임으로 지칭될 수 있다. 즉, 이하에서 제n RLC 프레임은 제n RLC data PDU 셋과 제n ARQ PDU를 포함하는 것에 대응된다. 이때, ARQ PDU는 프레임 넘버에 대한 정보를 포함함으로써, 어떠한 RLC 프레임과 연관된 동작인지를 지시할 수 있다.
ARQ PDU (230)는 상위 계층에서 수신된 것이 아니고, RLC 계층에서 새롭게 생성될 수 있다. 이에 따라, ARQ PDU (230)는 다른 RLC data PDU들과 달리 PDCP 헤더 혹은 PDCP SDU를 포함하지 않는다. ARQ PDU (230)는 데이터 부분에 해당하는 ARQ PDU 페이로드 (231), 및 RLC 헤더(232)를 포함할 수 있다. 또한 ARQ PDU 페이로드 (231) 또는 RLC 헤더(232)는 RLC data PDU 셋(220)과 관련된 동작을 처리하기 위한 정보를 포함할 수 있다. 즉, RLC 계층은 ARQ PDU(230)에 기초하여 제1 RLC data PDU 내지 제n RLC data PDU들에 대한 소정 RLC 계층 관련 동작을 1회 수행하고, 나머지 RLC 동작들만 n회 수행할 수 있다. 이에 따라, 기존에 패킷 처리의 로드가 큰 RLC 계층 관련 동작에 대한 처리가 1/n으로 줄어들어 RLC 계층에서의 병목 현상을 해소할 수 있다.
MAC 계층은 RLC data PDU 셋(220)에 포함되는 각각의 RLC data PDU들 및 ARQ PDU(230)에 대한 MAC 서브 헤더들을 각각 생성할 수 있다. 구체적으로, MAC 계층은 ARQ PDU(230)에 MAC 서브 헤더(251)를 접합한 MAC sub PDU (250)를 생성할 수 있다. 또한, MAC 계층은 RLC data PDU들 각각에 MAC 서브 헤더를 접합한 MAC sub PDU들을 생성할 수 있다. 또한, MAC 계층은 RLC data PDU 셋(220), ARQ PDU(230), 및 MAC 서브 헤더들을 포함하는 MAC PDU(240)를 생성할 수 있다. 생성된 MAC PDU(240)는 하위 계층을 통해 수신 장치로 전송될 수 있다.
도 3은 본 개시의 일 실시예에 따른 송신 장치의 동작을 설명하기 위한 흐름도이다.
단계 310에서, 송신 장치는 RLC 엔티티에서, 복수의 RLC data PDU (protocol data unit)들을 획득할 수 있다. 구체적으로, 송신 장치는 PDCP 계층으로부터 복수의 PDCP PDU들을 획득할 수 있으며, 복수의 PDCP PDU들은 RLC SDU들에 대응될 수 있다. 또한, 송신 장치는 상위 계층으로부터 복수의 RLC SDU들을 획득하고 획득된 RLC SDU들에 대해 RLC 헤더를 접합시킨 RLC PDU들을 생성할 수 있다. RLC 계층에서 획득되는 RLC PDU들은 RLC data PDU들을 포함할 수 있다. 구체적으로, RLC PDU는 RLC data PDU(TMD PDU, UMD PDU, AMD PDU)와 RLC control PDU(STATUS PDU, ARQ PDU)를 포함할 수 있으며, RLC control PDU는 RLC 계층에서 생성될 수 있다.
단계 320에서, 송신 장치는 RLC 엔티티에서, 자원 할당에 따라 복수의 RLC data PDU들 중 적어도 하나 이상을 포함하는 RLC data PDU 셋에 대응하는 ARQ PDU를 생성할 수 있다. ARQ PDU는 RLC data PDU 셋과 관련된 동작을 처리하기 위한 정보를 포함할 수 있다. 예를 들어, ARQ PDU는 적어도 하나 이상의 RLC data PDU들에 대해 자동 재전송 요청과 관련된 동작, 수신 윈도우 내인지 여부를 판단하는 동작, 중복 패킷인지 여부를 확인하는 동작, 또는 패킷 폐기를 위한 동작을 처리하기 위한 정보 중 적어도 하나 이상을 포함할 수 있다.
송신 장치는 RLC data PDU 셋에 대응하는 ARQ PDU를 생성할 수 있다. 예를 들어, 송신 장치는 제1 RLC data PDU 셋에 대응하는 제1 ARQ PDU를 생성하고, 제2 RLC data PDU 셋에 대응하는 제2 ARQ PDU를 생성할 수 있다. 이 때, 제1 ARQ PDU는 제1 RLC PDU 셋과 관련된 동작을 처리하기 위한 정보를 포함할 수 있다.
이 때, RLC data PDU 셋에 포함되는 RLC data PDU들의 개수는 자원 할당에 의해 결정될 수 있다. 구체적으로, RLC 엔티티는 MAC 계층으로부터 자원 할당 정보를 획득할 수 있다. 이때, 자원은 바이트 단위로 할당될 수 있으며, 송신 장치는 자원 할당 정보에 기초하여 RLC data PDU 셋을 결정할 수 있다. 예를 들어, 송신 장치는 자원 할당 정보에 기초하여 제1 RLC data PDU부터 제n RLC data PDU를 전송하도록 결정할 수 있다. 즉, 제1 RLC data PDU부터 제n RLC data PDU가 하나의 RLC data PDU 셋에 포함되도록 결정될 수 있다. 이 경우, 송신 장치는 결정된 RLC data PDU 셋에 대응하는 ARQ PDU를 생성할 수 있으며, ARQ PDU는 결정된 RLC data 셋에 포함되는 제1 RLC data PDU 내지 제n RLC data PDU에 대한 정보를 포함할 수 있다.
만약, 자원 할당이 제1 RLC data PDU부터 제n RLC data PDU 및 대응하는 ARQ PDU를 전송하기에 부족한 경우, 소정 RLC SDU에 분할이 일어날 수 있다. 이때, 자원 할당에 따라 RLC data PDU 셋은 분할된 RLC SDU를 포함할 수 있다. 예를 들어, 자원 할당에 따라 제1 RLC SDU 내지 제n-1 RLC SDU, 제n RLC SDU 중 적어도 일부, 및 RLC 헤더들(제1 RLC SDU 내지 제n-1 RLC SDU, 제n RLC SDU 중 적어도 일부에 각각 대응)이 하나의 RLC data PDU 셋에 포함될 수 있다. 이 경우, 송신 장치는 분할된 제n RLC SDU를 포함하는 RLC data PDU 셋에 대응하는 ARQ PDU를 생성할 수 있다. 이 때, 분할된 제n RLC SDU에 대한 정보(예를 들어, 분할 정보)는 분할된 제n RLC SDU에 대응하는 RLC 헤더에 포함할 수 있다.
단계 330에서, 송신 장치는 MAC 계층에서, RLC data PDU 셋 및 ARQ PDU에 기초하여 생성된 제1 MAC PDU를 하위 계층을 통해 수신 장치로 송신할 수 있다. 이때, 제1 MAC PDU는 단일의 RLC data PDU 셋 및 단일의 ARQ PDU를 포함할 수 있다. 뿐만 아니라, 제1 MAC PDU는 복수의 RLC data PDU 셋 및 복수의 ARQ PDU들을 포함할 수도 있다. 예를 들어, 제1 RLC data PDU 셋 내지 제n RLC data PDU 셋에 각각 대응하는 제1 ARQ PDU 내지 제n ARQ PDU가 하나의 MAC PDU에 포함될 수 있다.
단계 340 에서, 송신 장치는 수신 장치로부터, 소정 조건이 만족되는 경우 RLC data PDU 셋과 연관된 STATUS PDU를 수신할 수 있다. 구체적으로, STATUS PDU는 RLC data PDU 셋에 대한 수신 여부를 나타내는 ACK (acknowledgement) 또는 NACK (negative-acknowledgement)을 포함할 수 있다.
송신 장치는 STATUS PDU에 NACK (Negative Acknowledgement)이 포함되는 경우, 재전송을 위한 자원 할당에 따라 기 전송한 RLC data PDU 셋 중 적어도 일부를 포함하는 제2 MAC PDU를 생성하고, 제2 MAC PDU를 하위 계층을 통해 수신 장치로 송신할 수 있다. 만약, STATUS PDU에 NACK이 포함되고 재전송을 위한 자원 할당이 기 전송한 RLC data PDU 셋을 포함하기에 충분한 경우, 제2 MAC PDU는 RLC data PDU 셋 전체를 포함할 수 있다. 한편, 재전송을 위한 자원 할당이 기 전송한 RLC data PDU 셋을 포함하기에 충분하지 않은 경우, 제2 MAC PDU는 기 전송된 RLC data PDU 셋 중 적어도 일부만을 포함할 수 있다. 이때, RLC data PDU 셋 중 적어도 일부는, RLC data PDU 셋이 분할(segmentation)된 것이고, 분할된 RLC data PDU 셋에 기초하여 ARQ PDU가 업데이트 될 수 있다. 이때, 제2 MAC PDU는, 분할된 RLC data PDU 셋 및 업데이트된 ARQ PDU를 포함할 수 있다.
수신 장치는 상태 변수(state variable)에 기초하여 소정 RLC 프레임이 수신되었는지 여부를 판단하며, 판단 결과에 기초하여 소정 조건이 만족되는 경우에 STATUS 보고를 트리거할 수 있다.
도 4는 본 개시의 일 실시예에 따른 MAC PDU를 설명하기 위한 도면이다.
MAC PDU(400)는 하나의 RLC 프레임뿐만 아니라 복수의 RLC 프레임에 기초하여 생성될 수 있다. 도 4를 참조하면, MAC PDU(400)는 MAC sub PDU(410, 420) 및 복수의 MAC sub PDU들(411, 421)을 포함할 수 있다. MAC sub PDU(410)는 제1 ARQ PDU에 MAC 서브 헤더가 접합된 것이고, MAC sub PDU(420)는 제2 ARQ PDU에 MAC 서브 헤더가 접합된 것을 나타낸다. 또한, MAC sub PDU들(411)은 제1 ARQ PDU에 대응하는 RLC data PDU들 각각에 MAC 서브 헤더들이 접합된 것이고, MAC sub PDU들(421)은 제2 ARQ PDU에 대응하는 RLC data PDU들 각각에 MAC 서브 헤더들이 접합된 것을 나타낸다. 이 때, MAC PDU(400)는 단일의 RLC 엔티티 또는 여러 RLC 엔티티들로부터 수신되는 복수의 RLC 프레임들에 기초하여 생성된 것일 수 있다.
본 개시의 일 실시예에 따르면, MAC PDU(400)는 단일의 RLC 엔티티로부터 수신되는 복수의 RLC 프레임들에 기초하여 생성될 수 있다. 예를 들면, 단일의 RLC 엔티티는 자원 할당 정보에 기초하여 제1 RLC 프레임 및 제2 RLC 프레임을 결정할 수 있으며, MAC PDU(400)는 제1 RLC 프레임에 대응하는 MAC sub PDU들 (410, 411)뿐만 아니라 제2 RLC 프레임에 대응하는 MAC sub PDU들 (420, 421)을 포함할 수 있다.
한편, 본 개시의 일 실시예에 따르면, MAC PDU(400)는 복수의 RLC 엔티티들로부터 수신되는 복수의 RLC 프레임들을 포함할 수 있다. 예를 들면, MAC sub PDU들(410, 411)은 제1 RLC 엔티티로부터 수신되는 제1 RLC 프레임에 기초하여 생성되고, MAC sub PDU들(420, 421)은 제2 RLC 엔티티로부터의 제2 RLC 프레임에 기초하여 생성될 수도 있다.
즉, 복수의 RLC 엔티티들로부터 수신되는 복수의 RLC 프레임들이 하나의 MAC PDU에 포함될 수 있으며, 각 RLC 엔티티들은 시퀀스 넘버를 독립적으로 운영하듯이 프레임 넘버도 독립적으로 운영할 수 있다. 예를 들어, 단일의 MAC PDU 안에는 제1 RLC 엔티티로부터 수신되는 RLC 프레임 3번(미도시)과 제2 RLC 엔티티로부터 수신되는 RLC 프레임 97번(미도시) 및 MAC 서브 헤더들이 포함될 수 있으며, 다음에 전송되는 MAC PDU는 제1 RLC 엔티티로부터 수신되는 RLC 프레임 4번(미도시)과 제2 RLC 엔티티로부터 수신되는 RLC 프레임 98번(미도시), 및 MAC 서브 헤더들을 포함할 수 있다.
도 5는 본 개시의 일 실시예에 따른 MAC PDU 내에서 ARQ PDU에 대응하는 MAC sub PDU의 위치를 설명하기 위한 도면이다.
MAC sub PDU(511, 521)는 MAC PDU(510, 520) 내의 어느 부분에나 위치할 수 있다. 여기서, MAC sub PDU(511, 521)는 ARQ PDU 및 ARQ PDU에 접합되는 MAC 서브 헤더를 포함하는 것을 의미한다. 예를 들어, MAC sub PDU(511)는 MAC PDU(510)의 마지막 부분에 위치할 수 있고, MAC sub PDU(521)는 MAC PDU(520)의 처음 부분에 위치할 수 있다.
본 개시의 일 실시예에 따르면, MAC sub PDU (511)는 MAC PDU(510) 내의 마지막 부분에 위치될 수 있다. 이 경우, 수신 장치의 RLC 계층에서는 ARQ PDU의 처리 이전이라도 RLC data PDU들에 대해 먼저 처리하고 처리 결과를 상위 계층으로 전달 할 수 있다는 이점이 있다.
한편, 본 개시의 다른 실시예에 따르면, MAC sub PDU (521)는 MAC PDU(520) 내의 처음 부분에 위치할 수 있다. 수신 장치의 RLC 계층에서는 ARQ PDU를 RLC data PDU들 보다 먼저 처리할 수 있으며, 이에 따라 RLC 동작들의 로드에 대해 추가적인 감소 효과를 얻을 수 있다. 특히 MAC PDU (520)에 따르면, ARQ PDU와 RLC data PDU들이 같은 코어에서 순차적으로 하나씩 처리될 수 있고, ARQ PDU의 처리결과가 RLC data PDU들의 처리에 적용되는 것이 용이하므로, MAC sub PDU (521)가 MAC PDU(520) 내의 처음에 위치하는 것은 단일 코어(single core) 환경에서 효과적일 수 있다. 즉, ARQ PDU와 RLC data PDU가 서로 다른 코어에서 처리될 가능성이 있는 멀티 코어 환경에 비해, MAC sub PDU (521)가 MAC PDU(520) 내의 처음에 위치하는 것은 단일 코어(single core) 환경에서 효과적일 수 있다.
한편, ARQ PDU에 대응하는 MAC sub PDU는 MAC PDU 내의 중간에도 위치할 수 있다(미도시). 이 경우, ARQ PDU에 대응하는 MAC sub PDU가 MAC PDU의 처음 또는 마지막 부분에 위치하는 경우에 얻게 되는 이점 중 일부를 각각 가질 수 있다.
설명의 편의상, 도 5에서는 단일의 RLC 프레임을 포함하는 MAC PDU(510, 520)에 대해 설명하였으나, MAC PDU에 복수의 RLC 프레임들 및 MAC 서브 헤더들이 포함되는 경우(미도시)에도 전술한 내용이 적용될 수 있다. 복수의 RLC 프레임들은 복수의 ARQ PDU들 및 복수의 ARQ PDU들 각각에 대응하는 RLC data PDU 셋들을 포함할 수 있다. 이때, MAC PDU는 복수의 ARQ PDU들 각각에 MAC 서브 헤더가 접합된 MAC sub PDU들 (이하, 복수의 ARQ PDU들에 대응하는 MAC sub PDU들) 및 각 ARQ PDU에 대응하는 RLC data PDU 셋 내의 RLC data PDU들 각각에 MAC 서브 헤더가 접합된 MAC sub PDU들의 셋(이하, MAC sub PDU 셋)들을 포함할 수 있다. 복수의 ARQ PDU들에 대응하는 MAC sub PDU들은 각각 해당 MAC sub PDU 셋의 앞 부분마다 위치하거나, 해당 MAC sub PDU 셋의 뒤 부분마다 위치할 수 있다.
도 6은 본 개시의 일 실시예에 따른 RLC data PDU들을 전송하기 위한 다른 구조를 설명하기 위한 도면이다.
구체적으로, 도 6을 참조하면, RLC super PDU(631, 620)가 데이터의 형태로 전송되며, MAC 서브 헤더(632)가 RLC super PDU (631, 620)에 붙을 수 있다. 또한, RLC super PDU (631, 620)의 RLC super PDU 헤더(631)는 RLC super PDU (631, 620) 와 관련된 동작을 처리하기 위한 정보를 포함할 수 있다. 송신 장치는 RLC data PDU(610)를 포함하는 복수의 RLC data PDU들(620) 및 RLC super PDU 헤더(631)를 포함하는 RLC super PDU (631, 620)을 생성하여 MAC 계층으로 전달할 수 있다. 송신 장치는 ARQ PDU를 별도로 생성하지 않고, RLC super PDU 헤더(631)에 ARQ PDU에 포함되는 정보를 포함시킬 수 있다. 즉, 송신 장치는 RLC 계층에서 RLC super PDU 헤더(631)를 생성할 수 있다.
MAC PDU(600)는 복수의 RLC data PDU들 및 RLC super PDU 헤더(631)로 구성된 RLC super PDU (620, 631) 및 MAC 서브 헤더(632)를 포함할 수 있다. MAC 서브 헤더(632)는 RLC super PDU (620, 631) 와 관련된 동작을 처리하기 위한 정보를 포함할 수 있다. MAC PDU(600)는 복수의 RLC super PDU들 및 각각의 MAC 서브 헤더들을 포함할 수도 있다(미도시).
RLC super PDU 헤더(631)의 처리에 의해 복수의 RLC data PDU들(620)에 대한 동작의 일괄 처리가 가능하므로 RLC 동작의 오버헤드가 감소할 수 있다. 또한, 복수의 RLC data PDU들 각각에 대해 MAC 서브 헤더가 생성되던 것과 달리, RLC super PDU(631, 620)에 대해서만 MAC 서브 헤더(632)가 생성되므로 MAC 서브 헤더 자체의 오버헤드가 감소할 수 있다.
도 7a는 본 개시의 일 실시예에 따른 RLC data PDU 셋을 바이트 단위로 분할하는 것을 설명하기 위한 도면이다.
송신 장치의 RLC 엔티티는 MAC 계층으로부터 자원 할당 정보를 수신할 수 있으며, 자원은 byte 단위로 할당될 수 있다. RLC 엔티티는 자원 할당 정보에 기초하여 전송할 RLC data PDU 셋을 결정하므로, 처음으로 전송되는 RLC data PDU 셋(이하, 초송 RLC data PDU 셋)은 분할될 필요가 없다. 구체적으로, 자원 할당이 제1 RLC data PDU 내지 제n RLC data PDU 및 ARQ PDU를 전송하기에 부족한 경우, 소정 RLC SDU가 분할될 수 있다. 즉, 자원 할당에 따라 초송 RLC data PDU 셋은 분할된 RLC SDU을 포함하고, 초송 RLC data PDU 셋 자체에 분할이 수행되지는 않는다.
또한, 제n RLC SDU가 분할되는 경우, 분할된 제n RLC SDU에 따라 제n RLC SDU에 접합되는 RLC 헤더의 크기가 변경될 수 있다. 제n RLC SDU에 분할이 수행된 경우, 송신 장치는 분할된 제n RLC SDU에 대한 정보(예를 들어, 분할 정보)를 분할된 제n RLC SDU에 대응하는 RLC 헤더에 포함시킬 수 있다. 이 경우, 변경된 RLC 헤더의 크기를 고려하여 자원 할당에 따른 RLC data PDU 셋이 결정될 수 있다. 구체적으로, 송신 장치의 RLC 엔티티는 자원 할당 정보에 기초하여, 제1 RLC SDU 내지 제n-1 RLC SDU, 제n RLC SDU의 적어도 일부, 및 RLC 헤더들을 포함하는 RLC data PDU 셋 및 ARQ PDU를 결정할 수 있다. 즉, 송신 장치는 복수의 RLC SDU들(또는 분할된 RLC SDU들) 각각에 RLC 헤더들이 접합된 복수의 RLC data PDU들을 포함하는 RLC data PDU 셋에 대응하는 ARQ PDU를 생성할 수 있다. 전술한 바와 같이, MAC PDU에 포함될 수 있는 RLC data PDU들 및 ARQ PDU는 자원 할당 정보에 의해 결정될 수 있다.
STATUS PDU에 NACK (Negative Acknowledgement)이 포함되는 경우, 송신 장치의 RLC 엔티티는 자원 할당에 따라, 재전송 할 RLC data PDU 셋의 적어도 일부를 결정할 수 있다. 구체적으로, STATUS PDU에 NACK (Negative Acknowledgement)이 포함되고 자원 할당이 충분한 경우, 송신 장치는 NACK에 기초하여 RLC data PDU 셋을 재전송할 수 있다. 만약 재전송을 위한 자원 할당이 RLC data PDU 셋을 전송하기 위해 필요한 전송 자원보다 작은 경우, RLC 엔티티는 RLC data PDU 셋에 포함된 RLC SDU들 중 일부에 바이트(byte) 단위의 분할(segmentation)을 수행할 수 있다.
도 7a는 본 개시의 일 실시예에 따른 RLC data PDU 셋에 대한 바이트 단위의 분할(710)을 설명하기 위한 도면이다. 송신 장치의 RLC 엔티티는 자원 할당 정보에 따라, 제1 RLC 프레임을 결정할 수 있다. 구체적으로, 제1 RLC 프레임은 시퀀스 넘버 1 내지 4에 대응하는 복수의 RLC data PDU들 및 복수의 RLC data PDU들에 대응하는 ARQ PDU를 포함할 수 있다. 송신 장치는 제1 RLC 프레임을 포함하는 제1 MAC PDU(미도시)를 하위 계층을 통해 수신 장치로 송신할 수 있다. 수신 장치는 RLC data PDU 셋이 수신되지 않았으며 소정 조건이 만족되면 NACK을 포함하는 STATUS PDU를 전송할 수 있다. 송신 장치는 NACK이 포함된 STATUS PDU가 수신되면, RLC data PDU 셋을 재전송 하기로 결정할 수 있다.
도 7a를 참조하면, MAC 계층에서 각 RLC 엔티티로 할당하는 재전송 허용 크기(711)는 제1 RLC 프레임의 크기보다 작을 수 있으며 바이트 단위일 수 있다. 구체적으로, 재전송 허용 크기(711)는 시퀀스 넘버 1 내지 시퀀스 넘버 2에 대응하는 RLC SDU, 시퀀스 넘버 3에 대응하는 RLC SDU의 적어도 일부, ARQ PDU, 및 RLC 헤더들을 포함하는 크기일 수 있다. 즉, 재전송 허용 크기(711)에 따라 제1 RLC 프레임은 분할될 수 있으며, 제1 RLC 프레임이 분할된다는 것은 제1 RLC 프레임에 포함되는 RLC SDU에 대한 분할을 의미한다. 이하에서, 설명의 편의상, RLC 프레임은 완전한 RLC 프레임 또는 분할된 RLC 프레임을 포함하는 개념으로 사용되고, 구분되어야 할 필요가 있을 때, 분할된 RLC 프레임 또는 완전한 RLC 프레임이라고 별도로 명시하기로 한다. 전술한 바와 같이, RLC SDU에 바이트 단위의 분할이 수행되는 경우, RLC 헤더의 크기가 변경될 수 있으며, 변경된 RLC 헤더의 크기를 고려하여 분할된 RLC data PDU 셋(이하 재송 RLC data PDU 셋)이 결정될 수 있다. 구체적으로, 송신 장치는 시퀀스 넘버 1 내지 4에 대응하는 RLC data PDU들을 포함하는 RLC data PDU 셋을 재전송 허용 크기(711)에 기초하여 분할할 수 있다. 이 경우, 송신 장치는 초송 RLC data PDU 셋을 byte 단위로 분할할 수 있으며, 재송 RLC data PDU 셋은 시퀀스 넘버 1 내지 2에 대응하는 RLC data PDU들, 및 시퀀스 넘버 3에 대응하는 RLC SDU의 일부와 시퀀스 넘버 3에 대응하는 RLC SDU에 대한 정보(예를 들어, 분할 정보)를 포함하는 RLC 헤더를 포함할 수 있다. 이때, 시퀀스 넘버 3에 대응하는 RLC SDU의 일부와 해당 RLC SDU에 대한 정보를 포함하는 RLC 헤더를 포함하는 것도 RLC data PDU이다. 즉, 소정 RLC SDU 중 일부 및 해당 RLC SDU에 대응하는 RLC 헤더를 포함하는 것도 RLC data PDU에 해당한다.
또한, 송신 장치는 재송 RLC data PDU 셋에 기초하여 ARQ PDU를 업데이트 할 수 있다. 구체적으로, ARQ PDU는 재송 RLC data PDU 셋에 대한 정보를 포함할 수 있다. 또한, 송신 장치는 재송 RLC data PDU 셋 및 업데이트된 ARQ PDU에 기초하여 제2 MAC PDU (712)를 생성할 수 있다. 제2 MAC PDU (712)는 재송 RLC data PDU 셋, 업데이트된 ARQ PDU, 및 MAC 서브 헤더들을 포함할 수 있다. 이때, 재송 RLC data PDU 셋에 포함되는 RLC data PDU들 및 업데이트된 ARQ PDU의 크기의 합은 재전송 허용 크기(711)에 대응될 수 있다. 즉, 바이트 단위로 자원을 활용하는 경우, 할당된 자원을 모두 이용할 수 있다. 이때, 제2 MAC PDU (712) 내의 MAC sub PDU에 포함되는 ARQ PDU는, 분할에 대한 정보를 포함하고, 분할에 대한 정보는, 분할 여부에 대한 정보, 분할의 단위에 대한 정보, 분할의 위치에 대한 정보, 분할의 시작점, 분할의 끝점, 또는 분할의 시작점으로부터의 오프셋에 대한 정보 중 적어도 하나 이상을 포함할 수 있다.
도 7b는 본 개시의 일 실시예에 따른 RLC data PDU 셋을 RLC SDU 단위로 분할하는 것을 설명하기 위한 도면이다.
초송 RLC data PDU 셋에 대해서는 도 7a에서 전술한 바와 같으므로 여기서는 생략하기로 한다. 수신 장치가 ARQ PDU에 기초하여 초송 RLC data PDU 셋을 수신하지 못한 것으로 판단하는 경우, 소정 조건이 만족되면 NACK을 포함하는 STATUS PDU를 전송할 수 있다. 송신 장치는 NACK이 포함된 STATUS PDU가 수신되면, RLC data PDU 셋을 재전송 할 수 있다.
도 7b를 참조하면, MAC 계층에서 각 RLC 엔티티로 할당하는 재전송 허용 크기(721)는 제1 RLC 프레임의 크기보다 작을 수 있으며 바이트 단위일 수 있다. 구체적으로, 재전송 허용 크기(721)는 시퀀스 넘버 1에 대응하는 RLC SDU, 시퀀스 넘버 2에 대응하는 RLC SDU, 시퀀스 넘버 3에 대응하는 RLC SDU의 일부, ARQ PDU, 및 RLC 헤더들을 포함하는 크기일 수 있다. 이 경우, 송신 장치는 재전송 허용 크기(721)에 기초하여 초송 RLC data PDU 셋을 분할할 수 있다. 이때, 송신 장치는 RLC data PDU 셋에 대해 RLC SDU 단위의 분할을 수행할 수 있으며 분할된 RLC data PDU 셋(또는 재송 RLC data PDU 셋)은 시퀀스 넘버 1 내지 2에 대응하는 RLC data PDU들을 포함할 수 있다. 분할된 RLC data PDU 셋에 기초하여 생성되는 제2 MAC PDU (722)는 ARQ PDU, 시퀀스 넘버 1 내지 2에 대응하는 RLC data PDU들, 및 MAC 서브 헤더들을 포함할 뿐만 아니라, 나머지 자원(723)에 패딩(padding) 비트, 다른 RLC 엔티티로부터의 RLC PDU(미도시), MAC 서브 헤더(미도시) 또는 MAC control element(미도시) 중 적어도 하나 이상을 더 포함할 수 있다.
즉, 송신 장치는 분할된 RLC data PDU 셋에 기초하여 ARQ PDU를 업데이트 할 수 있다. 구체적으로, ARQ PDU는 분할된 RLC data PDU 셋에 대한 정보를 포함할 수 있다. 또한, 송신 장치는 분할된 RLC data PDU 셋 및 업데이트된 ARQ PDU에 기초하여 제2 MAC PDU (722)를 생성할 수 있다. 제2 MAC PDU (722)는 재전송 허용 크기(721) 내에서 분할 없이 포함될 수 있는 최대 개수의 RLC SDU들을 포함할 수 있다. 구체적으로, 도 7b를 참조하면, 제2 MAC PDU (722)는 ARQ PDU, 시퀀스 넘버 1 내지 2에 대응하는 RLC data PDU들, 및 MAC 서브 헤더들을 포함할 수 있다. 즉, 송신 장치의 RLC 엔티티는 자원 할당에 따라 시퀀스 넘버 3에 대응하는 RLC SDU 전체를 포함시킬 수 없으므로, 제2 MAC PDU(722)에는 ARQ PDU, 시퀀스 넘버 1 내지 2에 대응하는 RLC data PDU들, 및 MAC 서브 헤더들이 포함될 수 있다. 이 때, 재전송 허용 크기(721)보다 재전송되는 분할된 RLC 프레임의 크기가 작아지게 되므로 송신 장치는 나머지 자원(723)에 패딩(padding) 비트, 다른 RLC 엔티티로부터의 RLC PDU(미도시), MAC 서브 헤더(미도시) 또는 MAC control element(미도시) 중 적어도 하나 이상을 추가할 수 있다. 또한, RLC SDU 단위로 분할이 수행되는 경우, RLC 동작이 간소화 될 수 있다.
한편, 본 개시의 일 실시예에 따르면, 송신 장치는 자원 할당 정보에 기초하여, NACK이 수신된 RLC data PDU 셋의 적어도 일부를 재전송할 수 있다. 이때, 송신 장치는 MAC 계층에서 자원 할당 정보에 기초하여 분할된 RLC data PDU 셋뿐만 아니라 새로운 RLC data PDU 셋(초송 RLC data PDU 셋)을 더 포함하는 MAC PDU(미도시)를 생성할 수도 있다.
MAC PDU의 사이즈가 큰 경우 (즉, RLC 엔티티로 할당된 자원의 크기가 큰 경우), 바이트 단위로 자원을 활용하는 효과가 상대적으로 작을 수 있다. 예를 들어, MAC PDU의 사이즈가 10 바이트인 경우에 1 바이트 자원을 활용하는 것은 MAC PDU의 사이즈가 1000 바이트인 경우에 1 바이트 자원을 활용하는 것보다 효율이 높다. 즉, MAC PDU의 사이즈가 클수록 분할을 RLC SDU 단위로 수행함으로써 RLC 동작을 간소화 하는 것이 효율이 더 높을 수 있다.
송신 장치는 바이트 단위로 분할을 수행하기 위해, 분할이 일어나는 위치(point)에 대한 정보(segment offset, SO )가 필요하다. 이에 따라, RLC data PDU들의 헤더에 대한 유형 또는 구조가 복잡할 수 있고, 해당 정보를 처리하기 위한 동작 또한 RLC 동작 중 패킷 처리의 로드가 큰 동작에 속한다. 한편, 분할이 RLC SDU 단위로 수행되는 경우, RLC PDU들의 헤더에 대한 유형 또는 구조가 단순화 되고, 해당 처리 동작 또한 간소화 될 수 있다.
도 8a는 본 개시의 일 실시예에 따른 기존의 ARQ 관련 동작을 설명하기 위한 도면이다.
송신 장치가 MAC PDU #1 내지 MAC PDU #3을 전송하면, 수신 장치는 하위 계층을 통해 MAC PDU들을 수신할 수 있다. 구체적으로, 송신 장치가 MAC PDU #1 내지 MAC PDU #3을 송신하고, 수신 장치가 MAC PDU #1 내지 MAC PDU #3 중 적어도 하나의 수신을 실패한 경우 RLC 계층에서 각각의 RLC data PDU들에 기초하여 RLC data PDU들에 대한 동작을 수행할 수 있다. 수신 장치는 각각의 RLC data PDU들 또는 각각의 RLC data PDU들에 접합된 RLC 헤더를 참조하여 해당 RLC data PDU들에 대한 RLC 계층 동작을 수행할 수 있다. 즉, 수신 장치는 시퀀스 넘버 1 내지 시퀀스 넘버 12에 대응하는 각각의 RLC data PDU들에 기초하여 RLC 계층의 동작(예를 들어, ARQ 관련 동작)을 수행해야 한다.
도 8a를 참조하면, 수신 장치는 12 개의 RLC data PDU들 각각에 기초하여, 시퀀스 넘버 5 내지 시퀀스 넘버 8에 대응하는 RLC SDU들의 수신 여부를 판단할 수 있으며, 판단 결과에 기초하여 송신 장치로 시퀀스 넘버 5 내지 시퀀스 넘버 8에 대응하는 RLC SDU들에 대한 재전송을 요청할 수 있다. 즉, 수신 장치는 각각의 RLC data PDU들에 기초하여 RLC SDU들의 수신 여부를 판단해야 하므로 ARQ 관련 동작의 로드가 크다는 문제가 있다.
도 8b는 본 개시의 일 실시예에 따른 기존의 시퀀스 넘버 기반 RLC 동작을 설명하기 위한 도면이다.
도 8b를 참조하면, 수신 장치는 RLC 계층에서 수신된 RLC data PDU들의 RLC 헤더에 포함된 시퀀스 넘버 및 RLC SDU들에 대한 분할 정보에 기초하여 상태 변수들을 업데이트(800) 할 수 있다. 구체적으로, 시퀀스 넘버 1에 대응하는 완전한 RLC SDU(분할되지 않은 RLC SDU를 의미함)를 포함하는 RLC data PDU가 수신되면, 수신 장치는 다음으로 수신할 RLC SDU를 나타내는 상태 변수(RX_Next)를 2로 업데이트 할 수 있다. 또한, 시퀀스 넘버 2에 대응하는 완전한 RLC SDU를 포함하는 RLC data PDU가 수신되면, 수신 장치는 다음으로 수신할 RLC SDU를 나타내는 상태 변수 (RX_Next)를 3으로 업데이트 할 수 있다. 한편, 시퀀스 넘버 2에 대응하는 RLC SDU 중 일부만이 수신된 경우, 수신 장치는 시퀀스 넘버 2에 대응하는 RLC SDU를 온전히 수신하지 못했기 때문에 파라미터(RX_Next)를 3으로 업데이트 하지 않을 수 있다. 즉, 상태 변수 (RX_Next)는 시퀀스 넘버의 순서대로 홀(hole) 없이 수신된 완전한 RLC SDU들 중 가장 마지막 시퀀스 넘버의 바로 다음 시퀀스 넘버를 나타낸다. 여기서, 홀(hole)은 수신된 RLC SDU들 중간에 수신되지 않은 RLC SDU(들) 또는 RLC SDU의 일부분(들)을 의미한다. 또한, 수신 장치는 각각의 RLC data PDU들에 기초하여 RLC 동작을 수행할 수 있다.
도 8a 및 도 8b를 참조하면, 수신 장치는 시퀀스 넘버 4에 대응하는 완전한 RLC SDU를 포함하는 RLC data PDU가 수신되어 상태 변수(Rx_Next)를 5로 업데이트 하였으나, 시퀀스 넘버 5에 대응하는 완전한 RLC SDU를 포함하는 RLC data PDU 대신 시퀀스 넘버 9 내지 12에 대응하는 RLC SDU를 포함하는 RLC data PDU들이 수신될 수 있다. 이 경우, 수신된 RLC SDU들 중 가장 높은 시퀀스 넘버의 바로 다음 시퀀스 넘버를 나타내는 상태 변수 (Rx_Next_Highest)는 13으로 업데이트 될 수 있다. 수신 장치는 상태 변수(Rx_Next) 및 상태 변수(Rx_Next_Highest)에 기초하여 수신된 RLC SDU들 중간에 수신되지 않은 RLC SDU(들) 또는 RLC SDU의 일부분(들)인 홀(hole)이 발생한 것을 알 수 있다. 즉, 수신 장치는 상태 변수(Rx_Next)가 5인 것에 기초하여, 시퀀스 넘버 5에 대응하는 완전한 RLC SDU가 수신되지 않았다는 정보(예를 들어, NACK)를 포함하는 STATUS PDU를 송신 장치로 전송할 수 있다.
또한, 도 8b를 참조하면, 전술한 것과 같이 ARQ 및 packet discard 관련 동작(810)은 상태 변수의 업데이트(800)에 기초하여 수행될 수 있다. 즉, RLC data PDU들 각각에 대해 ARQ 및 packet discard 관련 동작(810)이 수행될 수 있다. 예를 들어, 수신 장치는 복수의 RLC data PDU들에 대한 시퀀스 넘버들이 수신 윈도우 내에 포함되는지 여부를 결정할 수 있다. 구체적으로, 수신 장치는 상태 변수(RX_Next) <= 수신된 RLC data PDU의 시퀀스 넘버(SN) < 상태 변수(RX_Next) + 수신 윈도우 사이즈(RX_Window_Size) 를 만족하는 시퀀스 넘버(SN)에 대해서만 수신 윈도우 내에 포함되는 것으로 판단하고, 수신 윈도우 내에 포함되지 않는 시퀀스 넘버들에 해당하는 RLC data PDU들은 폐기(discard)할 수 있다. 여기서, RX Window size는 수신 윈도우의 크기를 의미한다. 또한, 수신 장치는 복수의 RLC SDU들이 중복 수신되었는지 여부를 시퀀스 넘버에 기초하여 판단하고, 중복 수신된 RLC SDU들 또는 RLC SDU들의 일부는 폐기할 수 있다.
또한, ARQ 관련 동작들 중, t-Reassembly 관리 및 STATUS PDU 생성(820)도 RLC data PDU들 각각에 포함된 시퀀스 넘버들을 기반으로 수행될 수 있다. 또한, RLC SDU에 대해 분할이 발생하는 경우, 분할 관리(830)도 RLC data PDU들 각각에 대해 수행될 수 있다. 즉, 상태 변수의 업데이트(800), ARQ 및 packet discard 관련 동작(810), t-Reassembly 관리 및 STATUS PDU 생성(820), 및 분할 관리(830)는 모두 시퀀스 넘버 기반으로 RLC data PDU들에 대한 처리가 수행될 수 있다. 한편, 전술한 동작들(800, 810, 820 830)은 시퀀스 넘버 기반으로 동작할 때 패킷 처리의 로드가 상대적으로 큰 동작들에 해당하며, 짧은 시간에 많은 RLC data PDU들을 처리해야하는 초고속 data rate 환경에서 각 RLC data PDU 별로 발생하는 패킷 처리 로드를 줄일 수 있는 방안이 요구된다. 이하에서는, 도 9a 내지 도 9c를 참조하여, 본 개시의 일 실시예에 따른 ARQ PDU 기반의 RLC 동작들에 대해 설명한다.
도 9a는 본 개시의 일 실시예에 따른 ARQ PDU 기반의 RLC 동작을 설명하기 위한 도면이다.
송신 장치가 MAC PDU #1 내지 MAC PDU #3을 전송하면, 수신 장치는 하위 계층을 통해 MAC PDU들을 수신할 수 있다. 구체적으로, 송신 장치가 MAC PDU #1 내지 MAC PDU #3을 송신하고, 수신 장치가 MAC PDU #1 내지 MAC PDU #3 중 적어도 하나의 수신을 실패한 경우 RLC 계층에서 ARQ PDU들에 기초하여 RLC 프레임들에 대한 RLC 동작을 수행할 수 있다. 도 9a를 참조하면, MAC PDU #1 내지 MAC PDU #3이 각각 제1 RLC 프레임(시퀀스 넘버 1 내지 4에 대응하는 RLC data PDU들) 내지 제3 RLC 프레임(시퀀스 넘버 9 내지 12에 대응하는 RLC data PDU들)을 포함하는 경우에 대해 설명한다.
본 개시의 일 실시예에 따르면, 수신 장치는 ARQ PDU에 기초하여 ARQ PDU에 대응하는 RLC 프레임에 대한 동작을 수행할 수 있다. 구체적으로, 수신 장치는 시퀀스 넘버 1 내지 시퀀스 넘버 12에 대응하는 각각의 RLC data PDU들 마다 상태 변수를 업데이트할 필요 없이, 프레임 넘버 1 내지 프레임 넘버 3에 대응하는 ARQ PDU에 기초하여 상태 변수를 업데이트할 수 있다.
도 9a를 참조하면, 수신 장치는 업데이트 된 상태 변수에 기초하여 프레임 넘버 2에 대응하는 ARQ PDU 가 수신되지 않은 것으로 판단되고 소정 조건이 만족되는 경우, 제2 RLC 프레임이 수신되지 않았다는 정보(예를 들어, NACK 정보)를 포함하는 STATUS PDU를 송신 장치로 전송할 수 있다. 이에 따라, 송신 장치는 제2 RLC 프레임에 대한 ARQ 관련 동작을 수행할 수 있다. 즉, 수신 장치는 프레임 넘버 1 내지 프레임 넘버 3에 대응하는 3 개의 ARQ PDU들에 기초하여 제1 RLC 프레임 내지 제3 RLC 프레임과 관련된 RLC 동작을 수행할 수 있다.
도 9b는 본 개시의 일 실시예에 따른 ARQ PDU 기반 RLC 동작을 설명하기 위한 도면이다.
도 9b를 참조하면, 수신 장치는 적어도 하나의 ARQ PDU들에 포함된 정보에 기초하여, 복수의 RLC data PDU들에 해당하는 시퀀스 넘버들이 수신 윈도우 내에 포함되는지 여부를 판단하고, 복수의 RLC data PDU들 중 수신 윈도우 내에 포함되지 않는 시퀀스 넘버에 해당하는 RLC data PDU를 폐기(discard)할 수 있다. 이때, ARQ PDU들에 포함된 정보는, 복수의 RLC data PDU들 각각에 대한 시퀀스 번호들에 대한 정보가 포함될 수 있다. 예를 들어, 도 9a를 참조하면, 프레임 넘버 1에 대응하는 ARQ PDU는 RLC data PDU들의 시퀀스 넘버인 1 내지 4에 대한 정보를 포함할 수 있다. 구체적으로, 수신 장치는, ARQ PDU에 포함된 정보에 기초하여 관리되는 상태 변수(RX_Next_s_ARQ, 912)를 통해 해당 RLC 프레임 내의 RLC data PDU의 시퀀스 넘버가 수신 윈도우 이내인지 여부를 판단할 수 있다. 상태 변수 (RX_Next_s_ARQ)는 시퀀스 넘버의 순서대로 홀(hole) 없이 수신된 완전한 RLC SDU들 중 가장 마지막 시퀀스 넘버의 바로 다음 시퀀스 넘버를 나타낸다. 구체적으로, 수신 장치는 상태 변수(RX_Next_s_ARQ, 912) <= 시퀀스 넘버(SN) < 상태 변수(RX_Next_s_ARQ, 912) + 수신 윈도우 사이즈(RX_Window_Size)를 만족하는 시퀀스 넘버(SN) 가 수신 윈도우 이내인 것으로 판단할 수 있다. 즉, 수신 장치는 시퀀스 넘버 기반의 상태 변수(RX_Next_s_ARQ, 912)와 수신 윈도우에 기초하여 RLC data PDU의 폐기 여부를 감지하고 RLC 프레임의 수신 현황에 대한 정보를 업데이트할 수 있다. 구체적으로, 수신 장치는 RLC 프레임 내의 ARQ PDU에 포함된 정보에 기초하여 상태 변수(RX_Next_s_ARQ, 912)를 관리하며, 상태 변수(RX_Next_s_ARQ, 912)에 기초하여 RLC data PDU의 폐기 여부를 감지(detect) 할 수 있다.
수신 장치에서는 STATUS PDU를 생성하기 위해 수신 윈도우 내의 시퀀스 넘버 또는 프레임 넘버에 해당하는 RLC 프레임들에 대한 수신 현황에 대한 정보가 필요할 수 있다. 이때, 수신 현황은 ARQ PDU 내의 정보를 기반으로 관리될 수 있다. 설명의 편의 상, 초송 RLC data PDU 셋 내에 포함되는 RLC SDU들을 순서대로 연결한 것을 RLC SDU 셋으로 지칭한다. 예를 들어, RLC 프레임들에 대한 수신 현황은 제1 RLC 프레임 내 완전한 RLC SDU 셋이 수신되었고(이하에서는, 설명의 편의상 완전한 RLC SDU 셋이 수신된 경우, 완전한 RLC 프레임이 수신된 것으로 설명한다), 제2 RLC 프레임은 수신되지 않았고, 제3 RLC 프레임 내 RLC SDU 셋의 0 byte부터 100byte까지만 수신된 것(이하에서는, 설명의 편의상 RLC SDU 셋의 일부가 수신된 경우, 해당 RLC 프레임의 일부가 수신된 것으로 설명한다)을 나타낼 수 있다. 만약 소정 RLC 프레임 내 RLC SDU 셋의 일부 또는 전부가 폐기(discard)된 경우, 해당 RLC 프레임 내 RLC SDU 셋의 일부 또는 전부가 수신되지 않았다는 것이 수신 현황에 반영이 되어야 한다. 즉, 실제로 폐기는 RLC SDU를 포함하는 RLC data PDU의 처리 시에 일어나더라도, 수신 현황을 관리하기 위해 RLC 프레임 내의 RLC SDU 셋의 일부 또는 전부에 대한 폐기 여부를 ARQ PDU에 기초하여 감지할 수 있다.
이 때, 패킷 폐기(discard) 동작은 시퀀스 넘버 기반의 상태 변수의 관리에 따라 수행될 수 있다. 구체적으로, 수신 장치는 상태 변수(RX_Next_s_data, 913) 및 수신 윈도우에 기초하여 RLC data PDU의 폐기를 수행할 수 있다. 상태 변수 (RX_Next_s_data)는 시퀀스 넘버의 순서대로 홀(hole) 없이 수신된 완전한 RLC SDU들 중 가장 마지막 시퀀스 넘버의 바로 다음 시퀀스 넘버를 나타낸다. 즉, 수신 장치는 상태 변수(RX_Next_s_data, 913)에 기초하여 RLC data PDU에 대한 폐기를 수행할 수 있다. 즉, 수신 장치는 상태 변수(RX_Next_s_data, 913) <= 시퀀스 넘버(SN) < 상태 변수(RX_Next_s_data, 913) + 수신 윈도우 사이즈(RX_Window_Size)를 만족하는 시퀀스 넘버를 수신 윈도우 이내로 판단하고, 수신 윈도우 밖의 시퀀스 넘버에 해당하는 RLC data PDU들을 폐기할 수 있다. 또한, 수신 장치는 RLC data PDU의 처리 시에 RLC data PDU의 RLC 헤더 내에 있는 시퀀스 넘버에 기초하여 상태 변수(RX_Next_s_data, 913)를 업데이트하고, 해당 시퀀스 넘버가 상태 변수(RX_Next_s_data, 913) 기반의 수신 윈도우 내에 있는지 여부에 따라 패킷 폐기를 수행할 수 있다.
이와 같이, RLC data PDU의 폐기 여부를 감지하기 위해 ARQ PDU에 기초하여 관리되는 상태 변수(RX_Next_s_ARQ, 912), 및 실제로 RLC data PDU의 폐기를 수행하기 위해 RLC data PDU 내의 RLC 헤더에 기초하여 관리되는 상태 변수(RX_Next_s_data, 913)를 별도로 관리하는 경우, ARQ PDU의 처리 결과가 RLC data PDU의 처리에 영향을 주지 않기 때문에 ARQ PDU 및 RLC data PDU 간 처리 선후에 제약이 없어 멀티 코어 및 pipelining 관점에서 유리할 수 있다.
한편, 본 개시의 다른 실시예에 따르면, ARQ PDU 내에 시퀀스 넘버 기반으로 관리되는 상태 변수(RX_Next_s_ARQ)를 별도로 두지 않고, RLC data PDU의 RLC 헤더 내의 시퀀스 넘버 기반으로 관리되는 상태 변수(RX_Next_s_data)에 기초하여 ARQ PDU 처리 동작 중 하나인 패킷 폐기 여부에 대한 감지를 수행할 수 있다. 이 경우 상태 변수(RX_Next_s_data)는 ARQ PDU 처리 동작과 RLC data PDU 처리 동작 간에 공유 변수가 될 수 있다. 공유 변수 관련 동작은 멀티 코어 기반의 특정 환경에서 성능 제한을 일으킬 수 있다.
전술한 바와 같이, 수신 장치는 시퀀스 넘버 기반의 수신 윈도우들을 관리할 수 있다. 본 개시의 다른 실시예에 따르면, 수신 장치는 프레임 넘버 기반의 수신 윈도우를 관리할 수도 있으며, 관련 내용은 도 9c에서 설명한다.
도 9b를 참조하면, 수신 장치는 프레임 넘버에 기초하여 ARQ 관련 동작(911)을 수행할 수 있다. 프레임 넘버 기반으로 수행되는 ARQ 관련 동작(911)은 상태 변수들의 관리, t-Reassembly 관리, 및 STATUS PDU 생성과 관련된 동작을 포함할 수 있다. 구체적으로, 프레임 넘버 1에 대응하는 ARQ PDU가 수신되면, 수신 장치는 다음으로 수신할 RLC 프레임을 나타내는 상태 변수 (RX_Next_f)를 2로 업데이트 할 수 있다. 한편, 전술한 바와 같이, 프레임 넘버 1에 대응하는 ARQ PDU가 수신되더라도 제1 RLC 프레임 중 일부만 수신된 경우(이전 수신을 고려하더라도 제1 RLC 프레임 중 일부가 수신되지 않은 경우), 상태 변수(RX_Next_f)는 2로 업데이트 되지 않을 수 있다. 이 경우, 상태 변수(RX_Next_f)가 계속 1인 상태이기 때문에, 제2 RLC 프레임 전체가 수신되었다 하더라도, 여전히 제1 RLC 프레임 중 일부가 수신되지 않았기 때문에 상태 변수 (Rx_Next_f)는 업데이트 되지 않을 수도 있다. 수신 장치는 ARQ PDU들에 기초하여 복수의 RLC data PDU들에 대한 수신 여부를 판단할 수 있다.
이와 같이, 상태 변수(RX_Next_f)는 프레임 넘버의 순서대로 홀(hole) 없이 수신된 완전한 RLC 프레임들 중 가장 마지막 프레임 넘버의 다음 프레임 넘버를 나타낸다. 즉, 상태 변수(RX_Next_f)는 상태 변수(RX_Next_f)에 해당하는 값 이전의 RLC 프레임들은 모두 완전한 RLC 프레임들이 수신되었음을 나타낼 수 있다. 구체적으로, ARQ PDU 의 수신 시, 해당 ARQ PDU 내의 정보 및 수신 장치에서 관리되는 RLC 프레임 수신 현황 정보에 기초하여, 해당 ARQ PDU에 포함된 프레임 넘버를 갖는 완전한 RLC 프레임이 수신되었음이 확인되며, 해당 프레임 넘버가 기존의 상태 변수(RX_Next_f)의 값과 동일할 경우, 상태 변수(RX_Next_f) 값은 기존의 상태 변수(RX_Next_f)의 값 보다 큰 프레임 넘버에 해당하면서 완전하게 수신되지 않은 (일부 또는 전부가 수신되지 않은) RLC 프레임들 중에서, 가장 작은 프레임 넘버를 갖는 RLC 프레임의 프레임 넘버로 업데이트 될 수 있다.
도 9a 및 도 9b를 참조하면, 프레임 넘버 2에 대응하는 ARQ PDU 대신 프레임 넘버 3에 대응하는 ARQ PDU가 수신되는 경우, 상태 변수(Rx_Next_Highest_f)가 4로 업데이트 될 수 있다. 상태 변수(RX_Next_Highest_f)는 수신된 RLC 프레임들 중 가장 높은 프레임 넘버의 바로 다음 프레임 넘버를 나타낼 수 있다. 구체적으로, ARQ PDU의 수신 시, 해당 프레임 넘버가 기존의 상태 변수(RX_Next_Highest_f) 값보다 크거나 같은 경우, 상태 변수(RX_Next_Highest_f)의 값을 해당 프레임 넘버 + 1로 업데이트 할 수 있다.
또한, 수신 장치는 상태 변수(Rx_Next_f) 및 상태 변수 (Rx_Next_Highest_f)에 기초하여 수신된 RLC 프레임들 중간에 수신되지 않은 RLC 프레임(들) 또는 RLC 프레임의 일부분(들)이 존재한다는 것을 알 수 있다. 즉, 수신 장치는 수신된 RLC 프레임들 중간에 수신되지 않은 RLC 프레임(들) 또는 RLC 프레임의 일부분(들)이 존재한다는 것으로부터 RLC SDU 셋들의 수신에 홀(hole)이 발생한 것을 알 수 있다. 수신 장치는 상태 변수(Rx_Next)가 2이고 상태 변수 (Rx_Next_Highest_f)가 4인 것에 기초하여, 소정 조건이 만족되는 경우, 프레임 넘버 2에 대응하는 제2 RLC 프레임이 수신되지 않았다는 정보(예를 들어, NACK)를 포함하는 STATUS PDU를 송신 장치로 전송할 수 있다.
한편, 상태 변수(RX_Highest_Status_f)는 STATUS PDU 내의 ACK_FN 필드의 값으로 포함될 수 있는 가장 높은 프레임 넘버를 나타낼 수 있다. ACK_FN 필드는 STATUS PDU 내에 포함될 수 있으며, ACK_FN 필드에는 해당 STATUS PDU내에서 NACK 정보가 포함된 RLC 프레임들을 제외하고 완전한 수신이 이루어지지 않은 바로 다음 RLC 프레임의 프레임 넘버를 포함할 수 있다. 구체적으로, STATUS PDU의 생성 시점에 상태 변수(RX_Highest_Status_f)보다 작거나 같은 프레임 넘버에 해당하는 RLC 프레임들 중 완전한 수신이 이루어지지 않은 RLC 프레임들에 대해서, 상기 STATUS PDU의 생성 시점은 해당 RLC 프레임들의 적어도 일부가 수신되지 않은 것이 감지된 이후 t-Reassembly 타이머(하위 계층에서 RLC 프레임의 수신 실패를 감지하기 위한 타이머)가 시작(start) 및 만료된 이후(즉, 소정 시간이 지난 시점)일 수 있다. 상태 변수(RX_Highest_Status_f)보다 작거나 같은 프레임 넘버에 해당하는 RLC 프레임들은 STATUS PDU(RLC ACK/NACK) 생성의 대상이 된다. 즉, 상태 변수(RX_Highest_Status_f)보다 큰 프레임 넘버를 갖는 RLC 프레임들은 STATUS PDU 생성이 트리거 되더라도 STATUS PDU의 생성 대상이 아니기 때문에 STATUS PDU 내에 해당 ACK/NACK 정보가 포함되지 않는다.
상태 변수(RX_Highest_Status_f)는 ARQ PDU 수신 시, 해당 ARQ PDU 내의 정보 및 수신 장치에서 관리되는 RLC 프레임 수신 현황 정보에 기초하여, 해당 ARQ PDU에 포함된 프레임 넘버를 갖는 완전한 RLC 프레임이 수신되었음이 확인되며, 해당 프레임 넘버가 기존의 상태 변수(RX_Highest_Status_f)와 동일할 경우에 업데이트될 수 있다. 구체적으로, 상태 변수(RX_Highest_Status_f)는 전술한 조건을 만족할 경우, 상태 변수(RX_Highest_Status_f)의 값 보다 큰 프레임 넘버에 해당하면서 완전하게 수신되지 않은 (일부 또는 전부가 수신되지 않은) RLC 프레임들 중에서, 가장 작은 프레임 넘버를 갖는 RLC 프레임의 프레임 넘버로 업데이트 될 수 있다.
또한, 상태 변수(RX_Highest_Status_f)는 t-reasembly 타이머 만료 시, 상태 변수(RX_Next_Status_Trigger)의 값 보다 큰 프레임 넘버에 해당하면서 완전하게 수신되지 않은 (일부 또는 전부가 수신되지 않은) RLC 프레임들 중에서, 가장 작은 프레임 넘버를 갖는 RLC 프레임의 프레임 넘버로 업데이트 될 수 있다.
상태 변수(RX_Next_Status_Trigger_f)는 수신 장치에 수신됨으로써 홀을 발생시켜 t-Reassembly 타이머를 트리거한 RLC 프레임의 프레임 넘버의 바로 다음 프레임 넘버(t-Reassembly 타이머를 트리거한 RLC 프레임의 프레임 넘버+1)를 나타낼 수 있다. 즉, 상태 변수(RX_Next_Status_Trigger_f)는 t-Reassembly 타이머가 구동(running)하고 있지 않을 때 수신된 RLC 프레임에 대해, 해당 RLC 프레임 내의 수신된 부분보다 앞부분이 아직 수신되지 않았거나, 해당 RLC 프레임의 프레임 넘버보다 작은 프레임 넘버를 갖는 RLC 프레임들의 적어도 일부가 아직 수신되지 않은 경우, 상기 수신된 RLC 프레임의 프레임 넘버+1을 나타낼 수 있다. 도 9a 및 도 9b를 참조하면, t-Reassembly 타이머가 구동(running)하고 있지 않을 때, 상태 변수(RX_Next_Status_Trigger_f)는 제2 RLC 프레임(프레임 넘버 2에 대응)의 적어도 일부가 수신되지 않은 상태에서, 수신된 제3 RLC 프레임(프레임 넘버 3에 대응)의 프레임 넘버+1인, 4를 나타낼 수 있다. 즉, 상태 변수(RX_Next_Status_Trigger_f)는 t-Reassembly 타이머가 구동(running)하고 있지 않을 때, 수신됨으로써 홀을 발생시킨 RLC 프레임의 프레임 넘버+1을 나타낼 수 있다.
상태 변수(RX_Next_Status_Trigger_f)는 t-Reassembly 타이머를 시작(start)시킬 때, 상태 변수(RX_Next_Status_Trigger_f)의 값을 상태 변수(RX_Next_Highest_f)의 값으로 업데이트 할 수 있다.
즉, 상태 변수(Rx_Next_f, Rx_Next_Highest_f, RX_Highest_Status_f, RX_Next_Status_Trigger_f)는 프레임 넘버 기반으로 관리될 수 있다.
t-Reassembly 타이머가 구동(running) 중에 ARQ PDU가 수신되는 경우, 전술한 방법에 따라 관련된 상태 변수들의 업데이트가 수행된 후, 다음 중 하나 이상의 조건을 만족할 때 t-Reassembly 타이머는 중단(stop)된 후 리셋될 수 있다. 다음 조건들은 수신된 RLC 프레임들 사이의 홀(hole)이 채워졌음을 확인하기 위한 조건들일 수 있다.
1) 상태 변수(RX_Next_Status_Trigger_f) = 상태 변수(RX_Next_f)
2) 상태 변수(RX_Next_Status_Trigger_f) = 상태 변수(RX_Next_f) + 1 이고, 프레임 넘버가 상태 변수(RX_Next_f)의 값과 동일한 RLC 프레임에 대해 수신 장치에서 수신된 총 데이터 부분(해당 RLC 프레임의 RLC SDU 셋의 적어도 일부)이 해당 RLC 프레임의 RLC SDU 셋의 처음 부분부터 홀 없이 연속적인 부분이거나 해당 RLC 프레임의 RLC SDU 셋의 전체인 경우
3) 상태 변수(RX_Next_Status_Trigger_f)가 프레임 넘버 기반의 수신 윈도우 밖의 값을 갖고, 상태 변수(RX_Next_f) + 수신 윈도우 크기(RX_Window_Size)의 값과는 같지 않은 경우
한편, ARQ PDU 수신 시에 t-Reassembly 타이머가 구동(running) 하고 있지 않고 다음 중 하나 이상의 조건을 만족할 때 t-Reassembly 타이머는 시작(start)될 수 있다. 또한, 다음 조건들은 수신된 RLC 프레임과 이전에 수신된 RLC 프레임 사이에 홀(hole)이 발생했음을 확인하기 위한 조건들일 수 있다.
1) 상태 변수(RX_Next_Highest_f) > 상태 변수(RX_Next_f) +1 일 때
2) 상태 변수(RX_Next_Highest_f) = 상태 변수(RX_Next_f) + 1 이고, 프레임 넘버가 상태 변수(RX_Next_f)의 값과 동일한 RLC 프레임에 대해 수신 장치에서 수신된 총 데이터 부분(해당 RLC 프레임의 RLC SDU 셋의 적어도 일부)의 중간에 수신되지 않은 부분인 홀이 존재할 때
한편, t-Reassembly 타이머가 만료된 경우, 다음 중 하나 이상의 조건을 만족할 때 t-Reassembly 타이머는 시작(start)될 수 있다. 또한, 다음 조건들은 수신 장치에 수신된 RLC 프레임들 사이에 hole이 발생했음을 확인하기 위한 조건들일 수 있다.
1) 상태 변수(RX_Next_Highest_f) > 상태 변수(RX_Highest_Status_f) +1
2) 상태 변수(RX_Next_Highest_f) = 상태 변수(RX_Highest_Status_f) + 1 이고, 프레임 넘버가 상태 변수(RX_Highest_Status_f)의 값과 동일한 RLC 프레임에 대해 수신 장치에서 수신된 총 데이터 부분(해당 RLC 프레임의 RLC SDU 셋의 적어도 일부)의 중간에 수신되지 않은 부분인 홀이 존재할 때
전술한 바와 같이, 프레임 넘버 기반으로 수행되는 ARQ 관련 동작(911)은 t-Reassembly 관리를 포함할 수 있다. 또한, 프레임 넘버 기반으로 수행되는 ARQ 관련 동작(911)은 STATSU PDU 생성 동작을 포함할 수 있다. 구체적으로, t-Reassembly 타이머 만료 시에는 수신 장치에서 STATUS 보고(reporting)가 트리거 되어, STATUS PDU를 생성하고 생성된 STATUS PDU를 송신 장치로 전송할 수 있다.
예를 들어, 수신 장치는 ARQ PDU에 기초하여 프레임 넘버 기반으로 RLC 프레임의 수신 여부에 대한 정보를 포함하는 STATUS PDU(RLC ACK 또는 RLC NACK을 포함)를 생성할 수 있다. 구체적으로, 수신 장치는 소정 조건 만족 시, STATUS 보고(reporting)가 트리거 되면, 수신된 RLC 프레임에 대해 STATUS PDU를 생성해서 송신 장치로 전송 할 수 있다. 수신 장치가 STATUS 보고(reporting)를 트리거하는 조건은 다음과 같다.
1. 수신된 ARQ PDU의 폴링 비트 필드(P field)의 값이 1로 설정되어 수신되고 다음 중 하나 이상의 조건을 만족하는 경우
1) 해당 RLC 프레임에 대해 패킷 폐기가 발생한 경우 (즉, 해당 RLC 프레임 내의 RLC SDU의 일부 또는 전부가 중복 수신되거나 해당 시퀀스 넘버 또는 프레임 넘버가 수신 윈도우 밖에 해당됨에 따라 폐기되는 경우)
2) 해당 프레임 넘버(FN) < 상태 변수(RX_Highest_Status_f) (즉, 해당 프레임 넘버가 상태 변수(RX_Highest_Status_f) 보다 작아서 RLC ACK/NACK 생성의 대상이 되는 경우)
2. t-Reassembly 타이머가 만료된 경우 (즉, 수신 실패 또는 홀이 감지된 경우)
STATUS 보고(reporting)가 트리거되면, 수신 장치는 STATUS PDU를 생성해서 송신 장치로 전송할 수 있다
수신 장치는 상태 변수(RX_Next_f) <= 프레임 넘버(FN) < 상태 변수(RX_Highest_Status_f) 를 만족하는 RLC 프레임에 대해서 다음과 같은 ACK/NACK 정보를 포함하는 STATUS PDU를 생성할 수 있다.
1) RLC 프레임의 전부가 수신되지 않은 경우, 해당 RLC 프레임의 프레임 넘버(FN)의 값을 가지는 NACK_FN 필드가 STATUS PDU에 포함됨
2) RLC 프레임의 RLC SDU 셋 내에 수신되지 않은 연속적인 BYTE가 존재하는 경우(RLC SDU 셋 내에 홀이 발생한 경우), 해당 RLC 프레임의 프레임 넘버(FN)의 값을 가지는 NACK_FN 필드와 홀이 발생한 부분의 위치를 나타내는 FSOstart 필드 및 FSOend 필드가 STATUS PDU에 포함됨
3) 연속적인 프레임 넘버를 갖는 RLC 프레임들이 전혀 수신되지 않은 경우 (연속된 RLC 프레임들의 SDU 셋들을 모두 포함하는 홀이 발생한 경우), 해당 RLC 프레임들 중 가장 작은 프레임 넘버의 값을 가지는 NACK_FN 필드, 및 수신되지 않은 연속된 RLC 프레임의 개수(상기 홀에 포함되는 RLC SDU 셋에 해당하는 연속된 RLC 프레임의 개수)를 나타내는 NACK_range 필드가 STATUS PDU에 포함됨 (이때, 연속된 RLC 프레임들 중, 맨 앞 또는 맨 뒤 RLC 프레임 중 일부만 수신되지 않은 경우, 각각의 RLC 프레임 내 RLC SDU 셋에서 해당 위치를 나타내는 FSOstart 필드와 FSOend 필드를 STATUS PDU에 추가로 포함할 수 있음)
4) 완전하게 수신되지 않았지만 (일부 또는 전부가 수신되지 않았지만) 1) 내지 3)에 해당하는 수신 실패 정보가 STATUS PDU에 포함되지 않은 RLC 프레임들 중에서, 가장 작은 프레임 넘버(FN) 값을 가지는 RLC 프레임의 프레임 넘버를 포함하는 ACK_SN 필드가 STATUS PDU에 포함됨
송신 장치는 ARQ PDU에 폴링 비트 필드(P field)의 값을 1로 설정함으로써 수신 장치로부터의 STATUS 보고(reporting)를 트리거 할 수 있다. 구체적으로, 송신 장치가 전송하고자 하는 RLC 프레임 내에 이전에 한번도 전송되지 않은 RLC SDU 또는 RLC SDU의 일부로 구성된 RLC SDU 셋이 포함되는 경우, 송신 장치는 다음과 같은 과정을 통해 송신 장치의 카운터(Counter)들을 관리하고 ARQ PDU의 폴링 비트 필드(P field)의 값을 설정 할 수 있다.
i. 카운터(FRAME_WITHOUT_POLL)를 1만큼 증가시킴
ii. 카운터(BYTE_WITHOUT_POLL)를 해당 RLC 프레임에 포함된 이전에 한번도 전송되지 않은 RLC SDU 또는 RLC SDU의 일부(즉, 해당 RLC SDU 셋)의 byte 크기 만큼 증가시킴
iii. 카운터(FRAME_WITHOUT_POLL) >= 파라미터(pollFRAME) 이거나, 카운터(BYTE_WITHOUT_POLL) >= 파라미터(pollByte)인 경우, 해당 ARQ PDU의 폴링 비트 필드(P field)의 값을 1로 설정함. 그렇지 않은 경우, 해당 ARQ PDU의 폴링 비트 필드(P field)의 값을 0으로 설정함.
iv. ARQ PDU의 폴링 비트 필드(P field)의 값을 1로 설정하는 경우, 카운터(FRAME_WITHOUT_POLL) 및 카운터(BYTE_WITHOUT_POLL) 값은 0으로 설정(set)함.
또한, 송신 장치에서 관리되는 상태 변수(POLL_FN)는 폴링 비트 필드(P field)가 1로 설정(set)된 ARQ PDU의 프레임 넘버 값을 나타낼 수 있다. 또한, 상태 변수(POLL_FN)는 폴링 비트 필드(P field)가 1로 설정된 ARQ PDU를 포함하는 RLC 프레임을 하위 계층으로 전달할 때, RLC 계층에서 상태 변수(POLL_FN)의 값을 해당 RLC 프레임의 프레임 넘버로 설정할 수 있다.
송신 장치는 poll의 재전송을 관리하기 위해 t-PollRetransmit 타이머를 사용할 수 있다. 즉, 송신 장치에서 폴링 비트 필드(P field)의 값을 1로 설정한 ARQ PDU를 전송하였으나, 수신 장치로부터 t-PollRetransmit 타이머의 만료 전에 STATUS PDU가 수신되지 않으면, poll을 재전송할 수 있다(즉, 다음에 보내는 ARQ PDU의 폴링 비트 필드(P field)의 값을 다시 1로 설정하여 전송).
폴링 비트 필드(P field)의 값이 1로 설정된 ARQ PDU를 포함하는 RLC 프레임이 MAC 계층으로 전달될 때, t-PollRetransmit 타이머가 구동(running) 중이 아니라면 송신 장치는 t-PollRetransmit 타이머를 시작시키고, t-PollRetransmit 타이머가 이미 구동(running) 중이라면 송신 장치는 t-PollRetransmit 타이머를 재시작(restart) 할 수 있다.
또한, t-PollRetransmit 타이머는 상태 변수(POLL_FN)에 해당하는 RLC 프레임의 수신 여부 정보가 담긴 STATUS PDU 수신 시에 중단(stop)된 후 리셋될 수 있다. 한편, t-PollRetransmit 타이머가 만료되는 경우 다음에 보내는 ARQ PDU의 폴링 비트 필드(P field)의 값을 다시 1로 설정할 수 있다.
또한, 송신 장치는 STATUS PDU에 의해 RLC 프레임의 적어도 일부가 수신되지 못했다는 정보가 수신되면, 다음 동작을 수행할 수 있다.
● 상태 변수(TX_Next_Ack_f) <= 수신 실패 정보에 대응하는 프레임 넘버(FN) <= “이전에 MAC 계층으로 전달한 RLC 프레임의 프레임 넘버 중 가장 큰 프레임 넘버” 를 만족하는 경우, 수신 실패 정보에 대응하는 RLC 프레임 또는 RLC 프레임의 적어도 일부를 재전송 할 수 있다.
또한, 송신 장치는 RLC 프레임의 재전송 횟수가 소정 횟수를 초과할 경우(송신 장치 및 수신 장치 간 링크 상황이 나빠진 것을 의미), 이를 상위 계층에 알려 송신 장치 및 수신 장치 간 링크 관리를 할 수 있도록 함
한편, 도 9b를 참조하면, 분할 관리(handling) (914)는 분할이 발생하는 경우에만 수행될 수 있으며, 도 8b에서와 같이 각각의 RLC data PDU들에 대해서 수행되어야 한다. 구체적으로, 분할 관리(914)에는 분할된 RLC SDU의 저장, 수신된 RLC SDU의 일부들 중 서로 동일한 시퀀스 넘버를 가지는 것들을 서로 연결, 가능한 경우 동일한 시퀀스 넘버를 가지는 RLC SDU의 일부들을 연결해 완전한 RLC SDU를 생성 하기 위한 동작이 포함될 수 있다. 즉, RLC 프레임 내의 소정 RLC SDU에서 분할이 발생하기 때문에, 분할 관리(914)는 소정 RLC SDU, 해당 시퀀스 넘버, 및 RLC SDU의 분할 정보를 포함하는 RLC data PDU의 처리 시 수행될 수 있다. 즉, 분할 관리 (914)는 시퀀스 넘버 기반으로 수행될 수 있다.
도 9c는 본 개시의 다른 실시예에 따른 ARQ PDU 기반의 RLC 동작을 설명하기 위한 도면이다.
도 9c의 921를 참조하면, RLC data PDU들과 관련된 동작을 처리하기 위해 상태 변수를 프레임 넘버 기반으로 업데이트하고, t-Reassembly를 관리하고, STATUS PDU를 생성하는 동작을 수행할 수 있다. 도 9c에 대한 설명 중, 도 9b에서와 중복되는 설명은 생략하고, 도 9b와 차이가 있는 부분에 대해서만 설명한다.
한편, 도 9c를 참조하면, 수신 장치는 적어도 하나의 ARQ PDU들의 프레임 넘버에 기초하여 폐기할 RLC 프레임들을 판단하고, 해당 RLC 프레임을 폐기(discard)할 수 있다. 도 9c의 921을 참조하면, ARQ 관련 동작뿐만 아니라 패킷 폐기 동작도 ARQ PDU에 기초하여 수행될 수 있다.
또한, 수신 장치는 ARQ PDU에 포함된 정보에 기초하여 RLC 프레임을 선 처리(pre-processing)함으로써 RLC data PDU 별 동작을 추가적으로 감소시킬 수 있다. 구체적으로, 도 9c를 참조하면, 수신 장치는 RLC 프레임의 프레임 넘버가 수신 윈도우 내에 있는지 판단할 수 있다. 즉, 프레임 넘버가 상태 변수(RX_Next_f) <= 프레임 넘버(FN) < 상태 변수(RX_Next_f) + 수신 윈도우 사이즈(RX_Window_Size) 를 만족하는 경우 수신 윈도우 이내인 것으로 판단하며, 해당 프레임 넘버에 대응하는 RLC 프레임은 폐기되지 않는다. 한편, 프레임 넘버가 상기 수식을 만족하지 않으면, 해당 프레임 넘버에 대응하는 RLC 프레임은 폐기되고, 이에 따라 해당 RLC 프레임에 포함되는 RLC data PDU들도 폐기될 수 있다. ARQ PDU 처리 시에 RLC 프레임 기반으로 패킷 폐기 동작이 수행되기 때문에, RLC data PDU 수신 시에 처리해야 하는 동작 중에서, 시퀀스 넘버 기반의 수신 윈도우 관리, 상태 변수 (RX_Next_s_data, RX_Next_s_ARQ) 관리, 및 각 RLC data PDU의 시퀀스 넘버가 수신 윈도우 내에 포함되는지 확인하는 동작 등을 생략할 수 있다. 즉 RLC data PDU에 대한 처리 동작이 감소될 수 있다.
즉, 도 9b에서는 패킷 discard 관련 동작(912)이 ARQ PDU에 포함되는 시퀀스 넘버 및 RLC data PDU의 RLC 헤더에 포함되는 시퀀스 넘버에 기반하여 수행되는 점에서, 패킷 discard 관련 동작(921)이 ARQ PDU 내의 프레임 넘버에 기반하여 수행되는 도 9c와 차이가 있다.
또한, 수신 장치는 적어도 하나의 ARQ PDU에 포함되는 프레임 넘버 및 RLC data PDU 셋 중 적어도 일부에 대한 분할 정보에 기초하여 RLC data PDU 셋의 적어도 일부가 중복 수신된 것인지 여부를 판단하고, 중복 수신된 것으로 판단되는 RLC data PDU 셋 또는 분할된 RLC data PDU 셋을 폐기할 수도 있다. 즉, 수신 장치는 RLC data PDU 셋 또는 분할된 RLC data PDU 셋(분할이 있는 경우)이 중복 수신된 것으로 판단되는 경우에도, 중복 수신된 것으로 판단되는 RLC data PDU 셋 또는 분할된 RLC data PDU 셋(분할이 있는 경우)을 폐기할 수 있다.
한편, 본 개시의 다른 실시예에 따르면, 패킷 폐기가 PDCP 계층 또는 MAC 계층에서 대신 수행될 수 있는 경우, RLC 계층에서 패킷 폐기와 관련된 동작이 수행되지 않을 수도 있다.
도 10a는 본 개시의 일 실시예에 따른 멀티 코어 환경에서의 RLC 동작의 처리를 설명하기 위한 도면이다.
도 10a를 참조하면, 멀티 코어 환경에서 RLC 동작이 처리될 수 있다. 초고속 전송을 지원하기 위해서는, 멀티 코어 기반의 parallel 구조 기반으로 패킷 처리를 해야할 필요가 있을 수 있다. 다만, 멀티 코어 환경에서는 각 코어에서 공유 자원에 접근해야 하는 동작인 critical section에 의해 멀티 코어의 성능이 저하될 수 있다. 이에 따라, 크리티컬 섹션을 최소화 하기 위한 방법이 필요하며, 전술한 도 9b의 방법이 멀티 코어에 효율적인 방법이 될 수 있다.
도 10a를 참조하면, CPU 0 내지 CPU 3은 각각 서로 다른 코어를 의미한다. 복수의 코어들(CPU 0 내지 CPU 3)은 RLC 동작을 병렬적으로 수행(parallel flow)할 수 있다. 다만, 소정 RLC 동작을 수행하기 위해 복수의 코어들(CPU 0 내지 CPU 3)은 공유 자원(shared resource)으로의 접근이 필요할 수 있다. 전술한 RLC 동작들 중, 상태 변수들, 타이머, RLC 프레임 수신 현황 등과 같은 것들이 여러 코어에서 RLC 동작의 처리를 위해 접근해야 하는 공유 자원이며, 공유 자원에 접근해야 하는 동작들이 critical section에 해당한다. 예를 들어, ARQ 관련 동작, packet discard 관련 동작, 분할 관리 등이 크리티컬 섹션에 포함될 수 있다. 즉, 도 8b, 도 9b, 및 도 9c에서, PDCP 계층으로 패킷을 전달하는 동작 외의 나머지 동작들은 모두 크리티컬 섹션에 포함될 수 있다.
크리티컬 섹션에서 복수의 코어들(CPU 0 내지 CPU 3)의 공유 자원으로의 접근이 발생하는 경우, 제1 코어(CPU 0)에서 공유 자원을 사용하는 동안 다른 코어들(CPU 1 내지 CPU 3)에서는 해당 공유 자원을 사용할 수 없다. 즉, 이 구간은 busy wait(공유 자원의 사용을 위한 대기)이 발생하는 구간일 수 있다. Busy wait 구간이 끝나면, 다른 코어들(CPU 1 내지 CPU 3) 중 어느 하나의 코어에서 해당 공유 자원을 이용할 수 있다.
즉, 멀티-코어의 환경에서는 공유 자원들이 발생하게 되고 이에 따라 크리티컬 섹션에서는 공유 자원들에 대한 동시 사용이 어려울 수 있다. 이 경우, 도 9b 및 도 9c를 참조하여 설명한 것과 같이 크리티컬 섹션들 중 일부를 효율적으로 처리할 수 있다. 구체적으로, 도 9b 및 도 9c를 참조하면, ARQ PDU를 처리하기 위해 접근해야하는 자원과 RLC data PDU를 처리하기 위해 접근해야하는 자원을 서로 공유되지 않도록 분리함으로써 ARQ PDU 또는 RLC data PDU를 처리하는 동작상에서의 크리티컬 섹션을 줄일 수 있다.
도 10b는 본 개시의 일 실시예에 따른 멀티 코어 환경에서의 RLC 동작의 효율을 설명하기 위한 도면이다.
도 10b는 코어들의 개수에 따른 동기화 효율에 크리티컬 섹션이 미치는 영향을 설명하기 위한 그래프이다. 구체적으로, 8 %의 크리티컬 섹션 발생 시의 멀티 코어의 성능은 코어의 개수가 소정 개수에 도달 할 때까지 증가하다가 그 이후로는 감소할 수 있다. 구체적으로, 코어의 개수가 10 개에 도달할 때까지 동기화 효율은 증가하다가 그 이후부터 감소할 수 있다. 즉, 크리티컬 섹션에 의해, 여러 개의 코어를 사용함에 따라 발생할 수 있는 효율이 증가하는 구간이 소정 코어 개수 이내의 구간으로 제한될 수 있다.
도 11은 본 개시의 일 실시예에 따른 수신 장치의 동작을 설명하기 위한 흐름도이다.
단계 1110에서, 수신 장치는 MAC 계층에서, ARQ PDU 및 ARQ PDU에 대응하는 복수의 RLC data PDU들을 포함하는 제1 MAC PDU를 수신할 수 있다. 이 때, ARQ PDU는 복수의 RLC data PDU들과 관련된 RLC 동작을 처리하기 위한 정보를 포함할 수 있다. 구체적으로, ARQ PDU는 ARQ PDU에 대응하는 RLC data PDU들에 대한 식별 정보를 포함할 수 있다.
단계 1120에서, 수신 장치는 RLC 엔티티에서, ARQ PDU에 기초하여 복수의 RLC data PDU들에 대응하는 RLC data PDU 셋에 대한 상태 변수(state variable)들을 업데이트 할 수 있다. 예를 들어, 수신 장치는 ARQ PDU에 포함된 정보에 기초하여 RLC data PDU 셋을 처리할 수 있다. 또한, 프레임 넘버 또는 시퀀스 넘버 기반의 ARQ PDU에 기초하여 상태 변수들을 업데이트하는 구체적인 내용에 대해서는 도 9b 및 도 9c에서 상술하였으므로 여기서는 생략한다.
단계 1130에서, 수신 장치는 소정 조건을 만족하는 경우, 수신 윈도우 내의 적어도 하나 이상의 RLC data PDU 셋들에 대한 수신 현황을 나타내는 수신 현황 정보 및 업데이트된 상태 변수에 기초하여 생성된 STATUS PDU를 송신 장치로 송신할 수 있다. 구체적으로, 수신 장치는 상태 변수(state variable)의 관리 및 t-Reassembly 타이머의 관리를 통해 RLC 프레임의 전체 또는 RLC 프레임의 적어도 일부에 대한 수신 실패를 감지하여 STATUS PDU의 생성하고 생성된 STATUS PDU를 전송할 수 있다. STATUS PDU를 생성하기 위한 구체적인 동작들은 전술한 바와 같으므로 여기서는 생략한다.
도 12는 본 개시의 일 실시예에 따른 RLC 프레임의 재전송 시 분할을 처리하는 방법을 설명하기 위한 도면이다.
전술한 바와 같이, 초기 전송 시에는 RLC SDU에 분할이 일어날 뿐, 초송 RLC data PDU 셋 자체에는 분할이 수행되지 않는다. 또한, 초송 RLC data PDU 셋을 재전송 하는 경우, 재송 RLC data PDU 셋은 초송 RLC data PDU 셋에 분할이 일어난 것일 수 있으며, 이때 분할은 바이트 단위 또는 RLC SDU 단위로 수행될 수 있다. 이하에서, 설명의 편의상 RLC 프레임 또는 RLC data PDU 셋의 분할로 설명하나, 분할의 대상은 RLC SDU 이기 때문에 RLC 프레임 또는 RLC data PDU 셋의 분할은 RLC 프레임 내의 RLC SDU에 대한 분할을 의미한다. 즉, RLC 헤더는 분할의 대상이 될 수 없으며 분할에 따라 RLC 헤더의 크기만이 변경될 수 있을 뿐이다.
도 12를 참조하면, 재송 RLC data PDU 셋에 포함되는 RLD SDU들은 자원 할당에 기초하여 바이트(byte) 단위 또는 RLC SDU 단위로 분할(segmentation)될 수 있다. 이하에서는 도 12를 참조하여, RLC data PDU 셋이 바이트 단위 또는 RLC SDU 단위로 분할되는 경우에 ARQ PDU에 포함되는 정보에 대해 설명한다. 수신 장치는 수신된 MAC PDU에 포함된 ARQ PDU에 기초하여 RLC data PDU 셋의 분할 여부를 판단할 수 있다. 또한, MAC PDU에 포함된 ARQ PDU는, 분할된 RLC 프레임의 분할에 대한 정보를 포함하는 것이고, 분할에 대한 정보는 분할 여부에 대한 정보, 분할의 단위에 대한 정보, 분할의 위치에 대한 정보, 분할의 시작점, 분할의 끝점, 또는 분할의 오프셋에 대한 정보 중 적어도 하나 이상을 포함할 수 있다.
ARQ PDU는 프레임 분할 정보(FSI,frame segmentation information)를 포함할 수 있다. FSI는 RLC 프레임 내에 분할이 없는 지(즉, 완전한 프레임), RLC 프레임의 처음 부분에서 분할된 것인지, RLC 프레임의 마지막 부분에서 분할된 것인지, 또는 RLC 프레임의 중간 부분에서 분할된 것 (RLC 프레임의 처음 부분 또는 마지막 부분에서의 분할이 아닌 것) 인지에 대한 정보를 나타낼 수 있다. 전술한 바와 같이, RLC 프레임의 분할의 대상은 RLC SDU 이기 때문에 RLC 프레임 또는 RLC data PDU 셋의 분할은 RLC 프레임 내의 RLC SDU 또는 RLC SDU의 일부에 대한 분할을 의미한다. 즉, RLC 프레임의 분할이 처음 부분이라는 것은, RLC 프레임의 RLC data PDU 셋 내에 포함되는 RLC SDU들 또는 RLC SDU의 일부들 중 처음 부분이 포함되도록 분할된 것을 의미한다.
예를 들어, FSI는 2 비트로 표현될 수 있으며, FSI가 00인 경우는 RLC 프레임에 분할이 발생하지 않은 것, FSI가 01인 경우는 RLC 프레임의 RLC data PDU 셋 내에 포함되는 RLC SDU들 또는 RLC SDU의 일부들 중 처음 부분이 포함되도록 분할된 것, FSI가 10인 경우는 RLC 프레임의 RLC data PDU 셋 내에 포함되는 RLC SDU들 또는 RLC SDU의 일부들 중 마지막 부분이 포함되도록 분할된 것, FSI가 11인 경우는 RLC 프레임의 RLC data PDU 셋 내에 포함되는 RLC SDU들 또는 RLC SDU의 일부들 중 처음 및 마지막 부분이 아닌 중간 부분을 포함하도록 분할된 것을 나타낼 수 있다. 다만, RLC 프레임 내의 분할 위치에 대한 정보는 다른 방식으로 ARQ PDU에 포함될 수 있으며, 상술된 예에 제한되는 것은 아니다. 이하에서는, 자원 할당에 따라 RLC 프레임의 RLC data PDU 셋이 바이트(byte) 단위 또는 RLC SDU 단위로 분할(segmentation)되는 경우의 ARQ PDU에 포함되는 정보를 설명한다. 이때, RLC 프레임(ARQ PDU 및 RLC data PDU 셋)에서 분할의 대상은 ARQ PDU가 아닌, RLC data PDU 셋에 포함되는 RLC SDU 또는 RLC SDU의 일부에 대한 분할에 해당한다. 즉, 본 개시에서 RLC 프레임의 분할은 RLC data PDU 셋에 포함되는 RLC SDU 또는 RLC SDU의 일부에 대한 분할을 의미할 수 있고, 이하에서는 설명의 편의상 RLC 프레임의 분할로 설명한다.
<바이트 단위 분할의 경우>
전술한 것과 같이, RLC data PDU 셋이 초기 전송인 경우에는 자원 할당에 대응하도록 RLC data PDU 셋이 결정되므로 RLC 프레임이 분할될 필요가 없다. 즉, 초기에 전송되는 RLC 프레임에 대해서는 FSI가 00(프레임 내 분할이 수행되지 않았음)일 수 있다. 이때, ARQ PDU는 ARQ PDU에 대응하는 식별 번호(프레임 넘버=1), 프레임 분할 정보(FSI=00), ARQ PDU에 대응하는 RLC data PDU들 중 첫 번째 RLC data PDU(RLC SDU)에 대한 식별 번호(SN=1), 및 RLC 프레임에 포함되는 RLC data PDU의 개수(data PDU count=8)을 포함할 수 있다. 이에 따라, 수신 장치는 ARQ PDU에 기초하여 프레임 넘버 1에 대응하는 RLC 프레임이 수신되었고, 수신된 RLC 프레임에는 분할이 발생하지 않았으며, RLC 프레임은 시퀀스 넘버 1에 대응하는 RLC data PDU를 첫 번째 RLC data PDU로 포함하고, 시퀀스 넘버 8까지의 RLC data PDU를 포함하는 RLC 프레임이 수신된 것을 알 수 있다.
자원 할당에 따라, 재전송되는 RLC 프레임은 소정 부분으로 분할될 수 있다. 도 12에서는, RLC 프레임 내에 분할이 두 번 일어난 것을 가정한다. 구체적으로, 자원 할당에 따라 첫 번째 재전송 (재송 1)에서는 분할된 RLC 프레임의 처음 부분이 전송되고, 두 번째 재전송(재송 2)에서는 분할된 RLC 프레임의 중간 부분이 전송되고, 세 번째 재전송(재송 3)에서는 분할된 RLC 프레임의 마지막 부분이 전송되는 것을 가정한다.
분할된 RLC 프레임의 처음 부분에 대한 ARQ PDU는 ARQ PDU에 대응하는 식별 번호(프레임 넘버=1), 프레임 분할 정보(FSI=01), ARQ PDU에 대응하는 RLC data PDU들 중 분할이 시작되는 RLC data PDU에 대한 식별 번호(SN=1), 분할된 RLC 프레임의 처음 부분에 포함되는 서로 다른 RLC data PDU의 개수(data PDU count=3) 및 프레임 분할 오프셋 정보(FSOend=100)를 포함할 수 있다. 프레임 분할 오프셋 (FSO, frame segment offset) 정보는 RLC data PDU 셋 내에 포함되는 RLC SDU(RLC data PDU에서 RLC header를 제외한 부분)들을 순서대로 연결한 RLC SDU 셋 내에서 분할이 발생한 시작점을 나타내는 파라미터(FSOstart) 및 RLC data PDU 셋 내에 포함되는 RLC SDU(RLC data PDU에서 RLC header를 제외한 부분)들을 순서대로 연결한 RLC SDU 셋 내에서 분할이 발생한 끝점을 나타내는 파라미터(FSOend)를 포함할 수 있다. 분할된 RLC 프레임의 처음 부분에서 시작점은 항상 RLC 프레임의 맨 처음이므로, ARQ PDU는 분할이 발생한 시작점을 나타내는 파라미터(FSOstart)를 포함하지 않을 수 있다. 즉, 분할된 RLC 프레임의 처음 부분은 RLC SDU 셋의 처음 부분을 포함하므로, ARQ PDU는 파라미터(FSOstart)는 포함하지 않으며, 분할의 끝점을 나타내는 파라미터(FSOend)를 포함할 수 있다.
수신 장치는 ARQ PDU에 기초하여 프레임 넘버 1에 대응하는 RLC 프레임의 부분이 수신되었고, RLC 프레임의 부분은 분할된 RLC 프레임의 처음 부분에 해당하며, 분할된 RLC 프레임의 처음 부분은 시퀀스 넘버 1에 대응하는 RLC data PDU를 첫 번째 RLC data PDU로 포함하고, 3 개의 서로 다른 RLC data PDU들을 포함하는 것을 알 수 있다. 이에 따라, 수신 장치는 data PDU count가 3인 것에 기초하여, 분할된 RLC 프레임의 처음 부분이 시퀀스 넘버 1에 대응하는 RLC data PDU로부터 3 번째 RLC data PDU(시퀀스 넘버 3에 대응)중 적어도 일부를 포함하는 것을 알 수 있다. 또한, 수신 장치는 파라미터(FSOend)의 값이 100인 것에 기초하여, RLC SDU 셋의 시작점부터 100 바이트 떨어진 지점에 분할이 발생된 것을 알 수 있다.
또한, 분할된 RLC 프레임의 중간 부분에 대한 ARQ PDU는 ARQ PDU에 대응하는 식별 번호(프레임 넘버=1), 프레임 분할 정보(FSI=11), ARQ PDU에 대응하는 RLC data PDU들 중 분할이 시작되는 RLC data PDU에 대한 식별 번호(SN=3), 분할된 RLC 프레임의 중간 부분에 포함되는 서로 다른 RLC data PDU의 개수(data PDU count=3) 및 프레임 분할 오프셋 정보(FSOstart=100, FSOend=130)를 포함할 수 있다. 분할의 처음 부분 또는 마지막 부분이 아닌 경우, 분할의 시작점 및 분할의 끝점에 대한 정보가 모두 필요하다. 따라서, ARQ PDU는 분할된 RLC 프레임이 중간 부분에 해당하는 경우, 파라미터(FSOstart) 및 파라미터(FSOend)를 포함할 필요가 있다.
수신 장치는 ARQ PDU에 기초하여 프레임 넘버 1에 대응하는 RLC 프레임의 부분이 수신되었고, RLC 프레임의 부분은 분할된 RLC 프레임의 중간 부분에 해당하며, 분할된 RLC 프레임의 중간 부분은 시퀀스 넘버 3에 대응하는 RLC data PDU를 첫 번째 RLC data PDU로 포함하고, 3 개의 서로 다른 RLC data PDU들을 포함하는 것을 알 수 있다. 또한, 수신 장치는 data PDU count가 3인 것에 기초하여, 시퀀스 넘버 3에 대응하는 RLC data PDU로부터 3 번째 RLC data PDU(시퀀스 넘버 5에 대응)에 걸쳐 분할된 RLC 프레임의 중간 부분이 수신된 것을 알 수 있다. 또한, 수신 장치는 파라미터(FSOstart)의 값이 100인 것에 기초하여, RLC SDU 셋의 시작점부터 100바이트 떨어진 지점에서 분할이 시작된 것을 알 수 있다. 또한, 수신 장치는 파라미터(FSOend)의 값이 130인 것에 기초하여, RLC SDU 셋의 시작점부터 130바이트 떨어진 지점에서 분할이 끝난 것을 알 수 있다.
또한, 분할된 RLC 프레임의 마지막 부분에 대한 ARQ PDU는 ARQ PDU에 대응하는 식별 번호(프레임 넘버=1), 프레임 분할 정보(FSI=10), ARQ PDU에 대응하는 RLC data PDU들 중 분할이 시작되는 RLC data PDU에 대한 식별 번호(SN=5), 분할된 RLC 프레임의 마지막 부분에 포함되는 서로 다른 RLC data PDU의 개수(data PDU count=4) 및 프레임 분할 오프셋 정보(FSOstart=130)를 포함할 수 있다. 분할된 RLC 프레임의 마지막 부분은 RLC 프레임의 끝부분 까지를 포함해야 하므로, 분할의 시작점에 대한 정보만 필요하다. 분할된 RLC 프레임의 마지막 부분에서 끝점은 항상 RLC 프레임의 마지막이므로, ARQ PDU는 분할이 발생한 끝점을 나타내는 파라미터(FSOend)를 포함하지 않을 수 있다. 즉, 분할된 RLC 프레임의 마지막 부분은 항상 RLC SDU 셋의 마지막 부분을 포함하므로, ARQ PDU는 파라미터(FSOend)를 포함하지 않으며, 분할의 시작점을 나타내는 파라미터(FSOstart)를 포함할 수 있다.
수신 장치는 ARQ PDU에 기초하여 프레임 넘버 1에 대응하는 RLC 프레임의 부분이 수신되었고, RLC 프레임의 부분은 분할된 RLC 프레임의 마지막 부분에 해당하며, 분할된 RLC 프레임의 마지막 부분은 시퀀스 넘버 5에 대응하는 RLC PDU를 첫 번째 RLC data PDU로 포함하고, 4 개의 서로 다른 RLC data PDU들을 포함하는 것을 알 수 있다. 또한, 수신 장치는 data PDU count가 4인 것에 기초하여, 시퀀스 넘버 5에 대응하는 RLC data PDU로부터 4 번째 RLC data PDU(시퀀스 넘버 8에 대응)에 걸쳐 분할된 RLC 프레임의 마지막 부분이 수신된 것을 알 수 있다. 또한, 수신 장치는 파라미터(FSOstart)의 값이 130인 것에 기초하여, RLC SDU 셋의 시작점부터 130바이트 떨어진 지점에서 분할이 시작된 것을 알 수 있다. 또한, 분할된 RLC 프레임의 마지막 부분은 전술한 시작점부터 시퀀스 넘버 8에 대응하는 RLC SDU 셋의 끝까지 포함할 수 있다.
<SDU 단위 분할의 경우>
RLC 프레임(전술한 것과 같이, 분할은 RLC SDU 셋 내에서 발생함)이 SDU 단위로 분할되는 경우, 전술한 바이트 단위 분할과 달리, ARQ PDU에 프레임 분할 오프셋 (FSO, frame segment offset) 정보가 포함될 필요가 없다. 즉, RLC SDU 셋이 RLC SDU 단위로 분할되는 경우, RLC SDU 내에서 분할이 일어나지 않으므로 ARQ PDU는 FSO 정보를 포함할 필요가 없다. 이에 따라, RLC SDU 단위로 분할되는 경우에 ARQ PDU에 포함되는 정보가 간소화 될 수 있으며, 이에 대해서는 후술한다.
전술한 것과 같이, RLC data PDU 셋이 초기 전송인 경우에는 자원 할당에 대응하도록 RLC data PDU 셋이 결정되므로 RLC data PDU 셋이 분할될 필요가 없다. 즉, 초기에 전송되는 RLC 프레임에 대해서는 FSI가 00(RLC 프레임 내 분할이 수행되지 않았음을 나타냄)일 수 있다. 이때, ARQ PDU는 ARQ PDU에 대응하는 식별 번호(프레임 넘버=1), 프레임 분할 정보(FSI=00), ARQ PDU에 대응하는 RLC data PDU들 중 첫 번째 RLC data PDU에 대한 식별 번호(SN=1), 및 총 RLC data PDU의 개수(data PDU count=8)을 포함할 수 있다. 이에 따라, 수신 장치는 ARQ PDU에 기초하여 프레임 넘버 1에 대응하는 RLC 프레임이 수신되었고, 수신된 RLC 프레임에는 분할이 발생하지 않았으며, RLC 프레임은 시퀀스 넘버 1에 대응하는 RLC data PDU를 첫 번째 RLC data PDU로 포함하고, 총 시퀀스 넘버 8까지의 RLC data PDU를 포함하는 RLC 프레임이 수신된 것을 알 수 있다.
또한, 분할된 RLC 프레임의 처음 부분에 대한 ARQ PDU는 ARQ PDU에 대응하는 식별 번호(프레임 넘버=1), 프레임 분할 정보(FSI=01), ARQ PDU에 대응하는 RLC data PDU들 중 분할이 시작되는 RLC data PDU에 대한 식별 번호(SN=1), 및 분할된 RLC 프레임의 처음부분에 포함되는 서로 다른 RLC data PDU의 개수(data PDU count=3)를 포함할 수 있다.
수신 장치는 ARQ PDU에 기초하여 프레임 넘버 1에 대응하는 RLC 프레임의 부분이 수신되었고, RLC 프레임의 부분은 분할된 RLC 프레임의 처음 부분에 해당하며, 분할된 RLC 프레임의 처음 부분은 시퀀스 넘버 1에 대응하는 RLC data PDU를 첫 번째 RLC data PDU로 포함하고, 3 개의 서로 다른 RLC data PDU들을 포함하는 것을 알 수 있다. 즉, 수신 장치는 분할된 RLC 프레임의 처음 부분이 시퀀스 넘버 1 내지 3에 대응하는 RLC data PDU들을 포함하는 것을 알 수 있다.
또한, 분할된 RLC 프레임의 중간 부분에 대한 ARQ PDU는 ARQ PDU에 대응하는 식별 번호(프레임 넘버=1), 프레임 분할 정보(FSI=11), ARQ PDU에 대응하는 RLC data PDU들 중 분할이 시작되는 RLC data PDU에 대한 식별 번호(SN=4), 및 분할된 프레임의 중간 부분에 포함되는 서로 다른 RLC data PDU의 개수(data PDU count=2)를 포함할 수 있다.
수신 장치는 ARQ PDU에 기초하여 프레임 넘버 1에 대응하는 RLC 프레임의 부분이 수신되었고, RLC 프레임의 부분은 분할된 프레임의 중간 부분에 해당하며, 분할된 RLC 프레임의 중간 부분은 시퀀스 넘버 4에 대응하는 RLC data PDU를 첫 번째 RLC data PDU로 포함하고, 2 개의 서로 다른 RLC data PDU들을 포함하는 것을 알 수 있다. 즉, 수신 장치는 분할된 RLC 프레임의 중간 부분이 시퀀스 넘버 4 및 5에 대응하는 RLC data PDU들을 포함하는 것을 알 수 있다.
또한, 분할된 RLC 프레임의 마지막 부분에 대한 ARQ PDU는 ARQ PDU에 대응하는 식별 번호(프레임 넘버=1), 프레임 분할 정보(FSI=10), ARQ PDU에 대응하는 RLC data PDU들 중 분할이 시작되는 RLC data PDU에 대한 식별 번호(SN=6), 및 분할된 RLC 프레임의 마지막 부분에 포함되는 서로 다른 RLC data PDU의 개수(data PDU count=3)를 포함할 수 있다.
수신 장치는 ARQ PDU에 기초하여 프레임 넘버 1에 대응하는 RLC 프레임의 부분이 수신되었고, RLC 프레임의 부분은 분할된 프레임의 마지막 부분에 해당하며, 분할된 RLC 프레임의 마지막 부분은 시퀀스 넘버 5에 대응하는 RLC data PDU를 첫 번째 RLC data PDU로 포함하고, 4 개의 서로 다른 RLC data PDU들을 포함하는 것을 알 수 있다. 즉, 수신 장치는 분할된 RLC 프레임의 마지막 부분이 시퀀스 넘버 6 내지 8에 대응하는 RLC data PDU들을 포함하는 것을 알 수 있다.
즉, RLC SDU 기반으로 RLC 프레임이 분할되는 경우, ARQ PDU는 RLC 프레임의 식별 정보, 분할의 시작점 및 분할된 RLC 프레임에 포함되는 RLC data PDU들의 개수에 대한 정보만을 포함할 수 있다. 또한, 분할된 RLC 프레임에 포함되는 RLC data PDU들의 개수 대신 분할의 끝점 등에 대한 정보를 포함할 수도 있다. 즉, ARQ PDU에 포함되는 정보는 전술된 실시예에 제한되지 않으며, 분할에 대한 정보를 포함할 수 있는 것이면 어느 것이든 가능할 수 있다.
도 13a는 본 개시의 일 실시예에 따른 RLC 프레임이 바이트 단위로 분할되는 경우에 ARQ PDU의 구조를 도시한 도면이다.
도 13a를 참조하면, RLC 프레임이 바이트 단위로 분할되는 경우의 ARQ PDU는 ARQ PDU에 대응하는 프레임 식별 정보(FN, frame number), 프레임 분할 정보 (FSI), ARQ PDU에 대응하는 RLC data PDU에 대한 정보(SN, sequence number), ARQ PDU에 대응하는 서로 다른 RLC data PDU들의 개수에 대한 정보(data PDU count), 및 프레임 분할 오프셋 (FSO, frame segment offset) 정보 중 적어도 하나를 포함할 수 있다.
프레임 분할 오프셋 (FSO, frame segment offset) 정보는 RLC data PDU 셋 내에 포함되는 RLC SDU(RLC data PDU에서 RLC header를 제외한 부분)들을 순서대로 연결한 RLC SDU 셋 내에서 분할이 발생한 시작점을 나타내는 파라미터(FSOstart) 및 RLC data PDU 셋 내에 포함되는 RLC SDU(RLC data PDU에서 RLC header를 제외한 부분)들을 순서대로 연결한 RLC SDU 셋 내에서 분할이 발생한 끝점을 나타내는 파라미터(FSOend)를 포함할 수 있다. 분할된 RLC 프레임의 처음 부분에서, 분할의 시작점은 항상 RLC 프레임에 포함되는 RLC SDU 셋의 맨 처음이므로, ARQ PDU는 분할의 시작점을 나타내는 파라미터(FSOstart)를 포함하지 않을 수 있다. 또한, 분할된 RLC 프레임의 마지막 부분에서, 분할의 끝점은 항상 RLC 프레임에 포함되는 RLC SDU 셋의 맨 마지막이므로, ARQ PDU는 분할의 끝점을 나타내는 파라미터(FSOend)를 포함하지 않을 수 있다. 또한, 분할이 일어나지 않은 경우에도 분할의 시작점을 나타내는 파라미터(FSOstart) 및 분할의 끝점을 나타내는 파라미터(FSOend)를 포함하지 않을 수 있다.
즉, 분할된 RLC 프레임의 중간 부분 또는 마지막 부분에 대응하는 ARQ PDU는 각각 파라미터(FSOstart)를 포함할 수 있다. 또한, 분할된 RLC 프레임의 중간 부분 또는 중간 부분에 대응하는 ARQ PDU는 각각 분할의 끝점을 나타내는 파라미터(FSOend)를 포함할 수 있다.
도 13b는 본 개시의 일 실시예에 따른 RLC 프레임이 바이트 단위로 분할되는 경우에 RLC data PDU의 구조를 도시한 도면이다.
RLC 프레임이 바이트 단위로 분할되는 경우, RLC 프레임에 포함되는 RLC SDU 내에서 분할이 수행될 수 있다. 따라서, RLC SDU 내에 분할 발생한 경우, RLC 헤더는 RLC SDU 내의 분할 위치에 대한 정보를 나타내는 분할 오프셋(SO, segmentation offset) 정보를 포함할 수 있다. 또한, 분할 오프셋 정보는 두 번째 이상의 분할에만 포함될 수 있다. 분할된 RLC 프레임의 처음 부분은 해당 RLC 프레임 내 RLC SDU 셋의 0 byte 지점에서부터 시작되고, 수신 장치는 RLC 헤더에 접합되는 MAC 서브 헤더 내의 length field에 기초하여 어느 지점(byte)까지 분할되는 지 알 수 있다. 한편 완전한 RLC SDU가 수신되는 경우, RLC 헤더는 분할 오프셋 정보를 포함하지 않을 수 있다.
도 14는 본 개시의 일 실시예에 따른 RLC 프레임이 RLC SDU 단위로 분할되는 경우에 ARQ PDU 및 RLC data PDU의 구조를 도시한 도면이다.
구체적으로, 도 14를 참조하면, 수신 장치는 전술한 도 9b에서와 같이 시퀀스 넘버 기반으로 패킷 discard를 수행할 수 있다. 또한, RLC SDU 단위로 분할이 수행되는 경우, ARQ PDU는 RLC data PDU는 분할 관리(handling)를 위한 정보를 포함할 필요가 없다.
도 14를 참조하면, RLC 프레임이 RLC SDU 단위로 분할되는 경우에, ARQ PDU는 ARQ PDU에 대응하는 프레임 식별 정보(FN, frame number), 프레임 분할 정보 (FSI), ARQ PDU에 대응하는 RLC data PDU에 대한 정보(SN, sequence number), 또는 ARQ PDU에 대응하는 서로 다른 RLC data PDU들의 개수에 대한 정보(data PDU count) 중 적어도 하나를 포함할 수 있다. 즉, RLC SDU 단위로 RLC 프레임이 분할되는 경우, ARQ PDU는 프레임의 식별 정보, 분할의 시작점 및 분할된 RLC 프레임에 포함되는 RLC data PDU들의 개수에 대한 정보만을 포함할 수 있다.
도 15는 본 개시의 다른 실시예에 따른 RLC 프레임이 RLC SDU 단위로 분할되는 경우에 ARQ PDU 및 RLC data PDU의 구조를 도시한 도면이다.
구체적으로, 도 15를 참조하면, 수신 장치는 전술한 도 9c에서와 같이 패킷의 폐기 동작을 프레임 넘버 기반으로 수행할 수 있다. 즉, 패킷 discard 관련 동작은 프레임 넘버에 기반하여 수행되므로, ARQ PDU는 시퀀스 넘버에 대한 정보를 포함할 필요가 없다.
도 15를 참조하면, RLC 프레임 내 분할이 발생하지 않은 경우(FSI=00), ARQ PDU는 프레임 넘버에 대한 정보를 포함할 수 있다. 또한, RLC 프레임 내에 분할이 수행된 경우(FSI=01, 11, 또는 10), ARQ PDU는 ARQ PDU에 대응하는 프레임 넘버, ARQ PDU에 대응하는 데이터 PDU 순서 번호(DON, data PDU ordering number), 또는 ARQ PDU에 대응하는 서로 다른 RLC data PDU들의 개수에 대한 정보(data PDU count) 중 적어도 하나를 포함할 수 있다.
구체적으로, 데이터 PDU 순서 번호(DON, data PDU ordering number)는 RLC 프레임 내의 각 RLC data PDU에 대해 1부터 번호를 부여(ordering)한 것을 의미한다. 이에 따라, 분할된 RLC 프레임의 처음 부분(FSI=01)에서, 시작점은 RLC 프레임의 맨 처음 RLC data PDU에 해당하므로, ARQ PDU 내 DON은 분할의 끝점에 대응하는 RLC data PDU의 DON 만을 포함할 수 있다. 또한, 분할된 RLC 프레임의 마지막 부분(FSI=10)에서, 끝점은 RLC 프레임의 맨 마지막 RLC data PDU에 해당하므로, ARQ PDU 내 DON은 분할의 시작점에 대응하는 RLC data PDU의 DON 만을 포함할 수 있다. 또한, 분할된 RLC 프레임의 처음 부분 또는 분할된 RLC 프레임의 마지막 부분이 아닌 중간 부분(FSI=11)에서, 분할의 시작점에 대응하는 RLC data PDU를 DON으로 알려주고, 분할의 시작점으로부터의 offset을 data PDU count로 알려줄 수 있다. 즉, data PDU count는 분할된 RLC 프레임의 처음 부분 또는 마지막 부분이 아닌 경우에만 ARQ PDU에 포함될 수 있다.
도 13a 내지 도 15를 참조하여 전술한 ARQ PDU 및 data PDU의 구조는 일 예시에 불과하며, 분할에 대한 정보를 알려줄 수 있으면 어떠한 형태로도 가능할 수 있고 개시된 실시예에 제한되는 것은 아니다.
도 16a는 본 개시의 일 실시예에 따른 ARQ PDU의 구조를 도시한 도면이고, 도 16b는 본 개시의 일 실시예에 따른 5G STATUS PDU의 구조를 도시한 도면이다.
도 16a 및 도 16b를 참조하면, ARQ PDU에 포함된 헤더(1610)의 구조 및 5G STATUS PDU의 헤더(1620)의 구조는 서로 동일할 수 있다. 즉, 수신 장치는, 5G STATUS PDU의 헤더(1620)와 ARQ PDU의 헤더(1610)의 구조가 동일한 경우, 하드웨어 가속기의 구조를 동일하게 이용할 수 있다는 이점이 있다. 특히, 공간 및 비용 상의 제약이 있는 단말에서는 기존의 하드웨어 가속기 구조에서 추가적인 구현을 하지 않아도 된다는 이점이 있다.
도 17a는 본 개시의 일 실시예에 따른 LTE 시스템에서의 패킷 처리를 설명하기 위한 도면이고, 도 17b는 LTE 시스템에서의 패킷 선 처리 과정을 설명하기 위한 도면이다.
도 17a 및 도 17b를 참조하면, LTE 시스템에서는, RLC 계층에서 PDCP PDU들의 접합이 수행되고, 접합된 PDCP PDU들에 대한 하나의 RLC 헤더가 추가되어 하나의 RLC PDU가 생성될 수 있다. 즉, 도 17b를 참조하면, 상향링크 자원 할당의 이전에 PDCP PDU들에 대한 선 처리(pre-processing)가 가능할 수 있다. 하지만, LTE 시스템에 따르면, RLC 접합도 자원 할당 이후에 처리가 가능하고, 그 이후의 분할 등과 같은 동작들도 자원 할당 이후에 처리가 가능하므로, NR 시스템에 비해 선 처리 가능한 부분이 적을 수 있다. 또한, RLC 접합 및 그 이후의 동작들이 자원 할당 이후에 결정되는 현상은 상향링크뿐만 아니라 하향링크에서도 동일하게 발생할 수 있다.
도 17c는 본 개시의 일 실시예에 따른 NR 시스템에서의 패킷 처리를 설명하기 위한 도면이고, 도 17d는 NR 시스템에서의 패킷 선 처리 과정을 설명하기 위한 도면이다.
도 17c 및 도 17d를 참조하면, NR 시스템에서는, MAC 계층에서 MAC subPDU들의 생성 이후에, 자원 할당에 따른 동작(예를 들어, 분할)을 수행할 수 있다. 즉, 도 17d를 참조하면, MAC PDU의 생성 이전 단계에서 RLC 헤더 및 MAC 서브 헤더들에 대한 선 처리가 수행될 수 있다. 또한, 자원 할당에 따른 분할이 발생하는 경우, MAC PDU 중 마지막 부분에 해당하는 MAC 서브 헤더 및 RLC 헤더만을 업데이트 될 수 있어, LTE 시스템에 비해 선 처리 가능한 부분이 확대될 수 있다. 본 개시의 일 실시예에 따르면, NR 시스템과 유사한 수준의 선처리가 가능하다. 구체적으로, ARQ PDU 및 RLC data PDU들에 대해 RLC 헤더 및 MAC 서브 헤더의 선처리가 가능하다. 분할이 발생된 경우에는 자원 할당 이후에 ARQ PDU 및 RLC data PDU에 관련 정보가 업데이트될 수 있다.
도 18은 본 개시의 일 실시예에 따른 단말의 구조를 도시한다.
도 18을 참조하면, 단말은 송수신부(1810), 메모리(1820), 및 프로세서(1830)를 포함할 수 있다. 다만, 단말의 구성 요소가 전술한 예에 한정되는 것은 아니다. 예를 들면, 단말은 전술한 구성 요소보다 더 많은 구성 요소를 포함하거나 더 적은 구성 요소를 포함할 수 있다. 뿐만 아니라, 송수신부(1810), 메모리(1820), 및 프로세서(1830)가 하나의 칩(Chip) 형태로 구현될 수도 있다.
본 개시의 일 실시예에 따르면, 송수신부(1810)는 기지국과 신호를 송수신할 수 있다. 상술된 신호는 제어 정보와, 데이터를 포함할 수 있다. 이를 위해, 송수신부(1810)는 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신기와, 수신되는 신호를 저 잡음 증폭하고 주파수를 하강 변환하는 RF 수신기 등으로 구성될 수 있다. 또한, 송수신부(1810)는 무선 채널을 통해 신호를 수신하여 프로세서(1830)로 출력하고, 프로세서(1830)로부터 출력된 신호를 무선 채널을 통해 전송할 수 있다.
본 개시의 일 실시예에 따르면, 메모리(1820)는 단말의 동작에 필요한 프로그램 및 데이터를 저장할 수 있다. 또한, 메모리(1820)는 단말이 송수신하는 신호에 포함된 제어 정보 또는 데이터를 저장할 수 있다. 메모리(3502)는 롬(ROM), 램(RAM), 하드디스크, CD-ROM 및 DVD 등과 같은 저장 매체 또는 저장 매체들의 조합으로 구성될 수 있다. 또한, 메모리(1820)는 복수 개의 메모리로 구성될 수도 있다.
본 개시의 일 실시예에 따르면, 프로세서(1830)는 상술된 본 개시의 실시예들에 따라 단말이 동작할 수 있는 일련의 과정을 제어할 수 있다. 예를 들면, 프로세서(1830)는 본 개시의 실시예들에 따라 RLC 계층에서의 ARQ 관련 동작들을 제어할 수 있다.
구체적으로 프로세서(1830)는 RLC 엔티티에서, 복수의 RLC data PDU들을 획득하고, RLC 엔티티에서, 자원 할당에 따라 복수의 RLC data PDU들 중 적어도 하나 이상을 포함하는 RLC data PDU 셋에 대응하는 ARQ PDU를 생성하고, MAC 계층에서, RLC data PDU 셋 및 ARQ PDU에 기초하여 생성된 제1 MAC PDU를 하위 계층을 통해 기지국으로 송신하고, 소정 조건이 만족되는 경우, RLC data PDU 셋과 연관된 STATUS PDU를 수신하기 위해 단말의 각 구성을 제어할 수 있다.
또한, 프로세서(1830)는 MAC 계층에서, ARQ PDU 및 ARQ PDU에 대응하는 복수의 RLC data PDU들을 포함하는 제1 MAC PDU를 수신하고, RLC 엔티티에서, ARQ PDU들에 기초하여 복수의 RLC data PDU들에 대응하는 RLC data PDU 셋에 대한 상태 변수를 업데이트하고, 소정 조건을 만족하는 경우, 수신 윈도우 내의 적어도 하나 이상의 RLC data PDU 셋들에 대한 수신 현황을 나타내는 수신 현황 정보 및 업데이트 된 상태 변수에 기초하여 생성된 STATUS PDU를 기지국으로 송신 하기 위해 단말의 각 구성을 제어할 수 있다.
즉, 단말은 전술한 바와 같이 송신 장치 또는 수신 장치로 동작할 수 있다. 구체적으로, 단말이 송신 장치인 경우, 기지국이 수신 장치로 동작하며, 단말이 수신 장치인 경우 기지국이 송신 장치로 동작할 수 있음은 물론이다.
또한, 프로세서(1830)는 복수의 프로세서를 포함할 수 있으며, 메모리(1820)에 저장된 프로그램을 실행함으로써, 본 개시의 실시예들에 따라 ARQ PDU를 생성하고, ARQ PDU에 기초하여, ARQ 관련 동작, 패킷 discard 관련 동작, 또는 분할 관리를 위한 동작들을 수행할 수 있다.
도 19는 본 개시의 일 실시예에 따른 기지국의 구조를 도시한다.
도 19를 참조하면, 기지국은 송수신부(1910), 메모리(1920), 및 프로세서(1930)를 포함할 수 있다. 다만, 기지국의 구성 요소가 전술한 예에 한정되는 것은 아니다. 예를 들어, 기지국은 전술한 구성 요소보다 더 많은 구성 요소를 포함하거나 더 적은 구성 요소를 포함할 수 있다. 뿐만 아니라, 송수신부(1910), 메모리(1920), 및 프로세서(1930)가 하나의 칩(Chip) 형태로 구현될 수도 있다.
본 개시의 일 실시예에 따르면, 송수신부(1910)는 단말과 신호를 송수신할 수 있다. 상술된 신호는 제어 정보와, 데이터를 포함할 수 있다. 이를 위해, 송수신부(1910)는 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신기와, 수신되는 신호를 저 잡음 증폭하고 주파수를 하강 변환하는 RF 수신기 등으로 구성될 수 있다. 또한, 송수신부(1910)는 무선 채널을 통해 신호를 수신하여 프로세서(1930)로 출력하고, 프로세서(1930)로부터 출력된 신호를 무선 채널을 통해 전송할 수 있다.
본 개시의 일 실시예에 따르면, 메모리(1920)는 기지국의 동작에 필요한 프로그램 및 데이터를 저장할 수 있다. 또한, 메모리(1920)는 기지국이 송수신하는 신호에 포함된 제어 정보 또는 데이터를 저장할 수 있다. 메모리(1920)는 롬(ROM), 램(RAM), 하드디스크, CD-ROM 및 DVD 등과 같은 저장 매체 또는 저장 매체들의 조합으로 구성될 수 있다. 또한, 메모리(1920)는 복수 개의 메모리로 구성될 수도 있다.
본 개시의 일 실시예에 따르면, 프로세서(1930)는 상술된 본 개시의 실시예에 따라 기지국이 동작할 수 있도록 일련의 과정을 제어할 수 있다. 예를 들면, 프로세서(1930)는 본 개시의 실시예들에 따라 ARQ PDU를 생성하고, ARQ PDU에 기초하여, ARQ 관련 동작, 패킷 discard 관련 동작, 또는 분할 관리를 위한 동작들을 수행할 수 있다.
또한, 프로세서(1930)는 복수의 프로세서를 포함할 수 있으며, 메모리(1920)에 저장된 프로그램을 실행함으로써, 본 개시의 실시예들에 따른 단말의 하향링크 제어 채널의 모니터링을 제어하는 방법, 전력 절약 신호에 관한 설정 및 전력 절약 신호를 생성 및 송신하는 방법을 수행할 수 있다.
본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체 또는 컴퓨터 프로그램 제품이 제공될 수 있다. 컴퓨터 판독 가능 저장 매체 또는 컴퓨터 프로그램 제품에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM: Read Only Memory), 전기적 삭제가능 프로그램가능 롬(EEPROM: Electrically Erasable Programmable Read Only Memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM: Compact Disc-ROM), 디지털 다목적 디스크(DVDs: Digital Versatile Discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(Local Area Network), WLAN(Wide LAN), 또는 SAN(Storage Area Network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크 상의 별도의 저장 장치가 본 개시의 실시예를 수행하는 장치에 접속할 수도 있다.
상술한 본 개시의 구체적인 실시예들에서, 본 개시에 포함되는 구성 요소는 제시된 구체적인 실시예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편, 본 명세서와 도면에 개시된 본 개시의 실시예들은 본 개시의 기술 내용을 쉽게 설명하고 본 개시의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 개시의 범위를 한정하고자 하는 것은 아니다. 즉 본 개시의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 개시의 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한 상기 각각의 실시예는 필요에 따라 서로 조합되어 운용할 수 있다. 예를 들면, 본 개시의 일 실시예와 다른 일 실시예의 일부분들이 서로 조합되어 기지국과 단말이 운용될 수 있다. 또한, 본 개시의 실시예들은 다른 통신 시스템에서도 적용 가능하며, 실시예의 기술적 사상에 바탕을 둔 다른 변형예들 또한 실시 가능할 것이다. 예를 들면, 실시예들은 LTE 시스템, 5G 또는 NR 시스템, 6G 등에도 적용될 수 있다.