KR100899731B1 - 광대역 무선 통신 시스템에서 수신 데이터를 처리하기 위한장치 및 방법 - Google Patents

광대역 무선 통신 시스템에서 수신 데이터를 처리하기 위한장치 및 방법 Download PDF

Info

Publication number
KR100899731B1
KR100899731B1 KR1020070095812A KR20070095812A KR100899731B1 KR 100899731 B1 KR100899731 B1 KR 100899731B1 KR 1020070095812 A KR1020070095812 A KR 1020070095812A KR 20070095812 A KR20070095812 A KR 20070095812A KR 100899731 B1 KR100899731 B1 KR 100899731B1
Authority
KR
South Korea
Prior art keywords
burst
data
decoding
harq
fragment
Prior art date
Application number
KR1020070095812A
Other languages
English (en)
Other versions
KR20080026523A (ko
Inventor
조현상
김상효
정중호
송봉기
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20080026523A publication Critical patent/KR20080026523A/ko
Application granted granted Critical
Publication of KR100899731B1 publication Critical patent/KR100899731B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/24Radio transmission systems, i.e. using radiation field for communication between two or more posts
    • H04B7/26Radio transmission systems, i.e. using radiation field for communication between two or more posts at least one of which is mobile
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0036Systems modifying transmission characteristics according to link quality, e.g. power backoff arrangements specific to the receiver
    • H04L1/0039Systems modifying transmission characteristics according to link quality, e.g. power backoff arrangements specific to the receiver other detection of signalling, e.g. detection of TFCI explicit signalling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0002Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
    • H04L1/0003Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate by switching between different modulation schemes
    • H04L1/0004Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate by switching between different modulation schemes applied to control information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • H04L1/001Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding applied to control information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0023Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the signalling
    • H04L1/0025Transmission of mode-switching indication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]

Abstract

본 발명은 광대역 무선 접속 통신 시스템에서 수신 장치 및 방법에 관한 것으로서, 특히 와이브로시스템에서 사용하는 이동 단말기용 모뎀에서 데이터를 심볼 단위로 처리하기 위한 장치 및 방법에 관한 것이다.
본 발명에 따른 광대역 무선 통신 시스템의 수신기에서 수신된 프레임의 데이터를 처리 하기 위한 방법은, 복수의 버스트들로 구성된 한 프레임의 데이터에 대한 제어 정보들로부터 상기 프레임을 구성하는 버스트들의 버스트 크기들과, 상기 프레임에 적용된 변조 방식 정보를 추출하는 과정과, 상기 버스트들을 식별하기 위한 버스트 식별자(ID)들을 부여하고, 상기 버스트 각 크기들과 상기 변조 방식 정보에 따른 조각 크기들을 갖는 데이터 조각들에 버스트 파셜 식별자(ID)들을 부여하는 과정과, 상기 버스트 식별자들에 따라 상기 데이터 조각들을 저장하기 위한 버스트 영역들을 메모리 상에 구성하는 과정과, 상기 프레임에 포함되는 한 슬롯의 수신 데이터프레임에 포함되는 한 슬롯의 수신 데이터를 상기 조각 크기들에 따른 데이터 조각들로 구분하여 디코딩하는 과정과, 상기 각 디코딩된 데이터 조각에 해당하는 버스트 식별자와 버스트 파셜 식별자에 따라 상기 디코딩된 데이터 조각을 순서대로 상기 메모리에 저장하는 과정을 포함한다.
Figure R1020070095812
Wibro, Burst, Symbol Scheduler, DL-MAP, FCH, Concatenation

Description

광대역 무선 통신 시스템에서 수신 데이터를 처리하기 위한 장치 및 방법{APPARATUS AND METHOD FOR PROCESSING RECEIVED DATA IN WIRELESS BROADBAND COMMUNICATION SYSTEM}
본 발명은 광대역 무선 접속 통신 시스템에서 수신 장치 및 방법에 관한 것으로서, 특히 와이브로시스템에서 사용하는 이동 단말기용 모뎀에서 데이터를 심볼 단위로 처리하기 위한 장치 및 방법에 관한 것이다.
현재의 무선 통신 환경에서 사용자에게 데이터 서비스를 제공하기 위해서 일반적으로 사용되는 기술은 CDMA2000 1xEVDO(Code Division Multiple Access 2000 1x Evolution Data Optimized), GPRS(General Packet Radio Services) 및 UMTS(Universal Mobile Telecommunication Service)와 같은 2.5세대 또는 3세대 셀룰러 이동통신 기술과, IEEE(Institute of Electrical and Electronics Engineers) 802.11 무선(Wireless) 근거리 통신 네트워크(Local Area Network, 이하 'LAN'이라 칭하기로 한다), 하이퍼(Hiper) LAN/2(이하 'HiperLAN/2'라 칭하기로 한다) 등의 무선랜 기술로 나누어진다.
상기와 같이 회선 망을 통한 음성 서비스 위주의 3세대 셀룰러 이동통신 기술에서 가장 두드러지는 특징은, 가입자들이 광범위한 무선 통신 환경에서 인터넷(internet)에 접속할 수 있는 패킷 데이터 서비스(Packet Data Services)를 제공한다는 것이다.
하지만, 셀룰러 이동통신 망에서 고속의 패킷 데이터 서비스를 지원하는 데는 한계가 있다. 예컨대, 동기식 이동통신 시스템인 상기 CDMA2000 1xEVDO 시스템에서는 약 2.4Mbps까지의 데이터 전송율을 제공하고 있다.
한편, 이러한 이동통신 기술들의 진화와 병행하여 IEEE 802.16 기반의 무선 LAN이나 HiperLAN/2 및 블루투스(Bluetooth) 등과 같은 다양한 근거리 무선 접속 기술들이 등장하고 있다. 그러나, 이러한 기술들은 셀룰러 이동통신 시스템에서와 동등한 수준의 이동성(mobility)을 보장하지 못한다. 하지만, 상기 근거리 무선 접속 기술들은 공공장소나 학교 등과 같은 핫 스팟(Hot Spot) 지역이나 홈 네트워크 환경에서 케이블 모뎀(cable modem) 또는 xDSL(Digital Subscriver Line)과 같은 유선 통신 망을 대체하면서, 무선 환경에서 고속 데이터 서비스를 제공하기 위한 대안으로서 제시되고 있다.
그러나, 상기에서 설명하는 무선 LAN으로 고속 데이터 서비스를 제공할 경우, 극히 제한된 이동성과 좁은 서비스 영역뿐만 아니라 전파 간섭 등으로 인해 사용자에게 공중망 서비스를 제공하는데 한계가 있다.
따라서, 상기와 같은 한계를 극복하기 위한 노력들이 다각도로 이루어지고 있다. 예를 들면, 셀룰러 이동통신 시스템과 무선 LAN의 장단점을 보완한 휴대 인터넷 기술에 대한 연구가 활발히 이루어지고 있다. 현재 표준화 및 개발이 진행중인 상기 휴대 인터넷 기술의 대표적인 예로서, 무선 광대역 인터넷(Wibro, Wireless Broadband Internet, 이하 '와이브로'라 칭하기로 한다) 시스템에 대한 연구들이 활발히 진행 중에 있다. 상기 와이브로 시스템은 다양한 형태의 이동 단말기를 이용해 실내외의 정지 환경, 보행 속도 및 중/저속(60Km/h 내외) 등의 이동 환경에서 고속의 데이터 서비스를 제공할 수 있다. 이하, 상기 와이브로 시스템에 대하여 보다 구체적으로 살펴보기로 한다.
상기 와이브로(Wibro) 시스템은 2.3GHz 대역의 무선 가입자 회선(WLL, Wireless Local Loop) 기술에서 한 단계 진화된 기술로 4세대 이동통신 사업 영역을 포함하며, 3세대 IMT-2000보다 넓은 사업 분야를 가지고 있다. 이로 인해, 상기 와이브로를 3.5세대 이동통신 기술이라고 한다.
현재 상기 와이브로 기술 적용을 통한 와이브로 서비스를 제공하기 위해 그에 상응하는 시스템 및 이동 단말기(MS; Mobile Station)에 대한 개발이 활발히 진행되고 있다. 여기서, 상기 이동 단말기에 적용되는 이동 단말기용 모뎀(modem)은 현재 명확하게 규정되어 있는바가 없다. 아울러 상술한 와이브로와 같은 광대역 무선 통신 시스템을 이하에서는 광대역 무선 통신 시스템이라고 통칭하기로 한다.
도 1은 일반적인 광대역 무선 통신 시스템에서 사용하는 와이브로 데이터 프레임 구조를 개략적으로 도시한 도면이다.
상기 도 1을 참조하면, 상기 도 1은 와이브로와 같은 광대역 무선 통신 서비 스를 제공하기 위한 기반 규격인 802.16e 데이터 프레임 구조를 나타낸 것으로, 먼저 상기 와이브로 통신 시스템에서 사용하는 와이브로 데이터 프레임은 하향링크(DL; Downlink) 영역과, 상향링크(UL; Uplink) 영역을 시간 단위로 구분한다. 상기 하향링크에서 상기 다운링크로 천이(transition)하는 구간에는 송신/수신 천이 갭(Transmit/receive Transition Gap, 이하 'TTG'라 칭하기로 한다)이 보호 시간을 구성하며, 상기 상향링크에서 상기 하향링크로 다시 천이하는 구간에는 수신/송신 천이 갭(Receive/transmit Transition Gap, 이하 'RTG'라 칭하기로 한다)이 보호 시간을 구성한다. 또한, 상기 도 1에서 가로축은 직교 주파수 분할 다중 접속(Orthogonal Frequency Division Multiple Access, 이하 'OFDMA'라 칭하기로 한다) 심벌 번호(OFDMA symbol number)를 나타내며, 세로축은 다수개의 서브채널로 구성되는 서브채널 논리적 번호(subchannel logical number)를 나타낸다.
상기 하향링크를 살펴보면, 상기 하향링크는 K번 OFDMA 심벌에서 동기 획득을 위한 프리앰블(preamble)이 위치하며, K+1번 OFDMA 심벌에서 프레임 제어 헤더(Frame Control Header, 이하 'FCH'라 칭하기로 한다), 하향링크 MAP(DL-MAP)과 같은 이동 단말기들이 공통적으로 수신할 방송(broadcast) 데이터 정보가 위치한다. 여기서, 상기 FCH는 두 개의 서브채널로 구성되어 서브채널, 레인징(ranging) 및 변조(modulation) 방식 등에 대한 기본 정보를 전달한다. K+3번 OFDMA 심벌에서 K+15번 OFDMA 심벌까지는 하향링크 버스트(Downlink Burst, 이하 'DL burst'라 칭하기로 한다)들 예컨대, DL burst#1 내지 DL burst#6이 위치하게 된다.
다음으로, 상기 상향링크를 살펴보면, 상기 상향링크는 K+17번 OFDMA 심벌에 서 K+26번 OFDMA 심벌까지 상향링크 버스트(Uplink Burst, 이하 'UL burst'라 칭하기로 한다)들이 위치한다. 또한, 상기 K+17 OFDMA 심벌에서 K+26 OFDMA 심벌까지 레인징을 위한 레인징 서브채널(Ranging subchannel)이 위치한다.
먼저, 상기 IEEE 802.16e 통신 시스템에서 사용하는 와이브로 데이터 프레임 구조에서 하향링크 프레임은 상술한 바와 같이, 프리앰블 영역과, FCH 영역과, DL-MAP 영역과, UL-MAP 영역과, 다수의 DL 버스트(burst) 영역들로 구성된다.
상기 프리앰블 영역은 송수신기 에컨대, 기지국(BS; Base Station)과 이동 단말기간 동기 획득을 위한 동기 신호, 즉 프리앰블 시퀀스(preamble sequence)를 송신하는 영역이다. 즉, 상기 프리앰블 영역은 상기 기지국에서 송신된 데이터와의 동기를 맞추기 위해 필요한 부분으로서, 상기 이동 단말기의 모뎀에서는 여러 가지 방법을 통해 상기 프리앰블에서 동기 정보를 추출하게 된다.
상기 FCH 영역은 4 개의 서브채널들로 구성되어 DL-MAP의 길이, 변조 방식 등 DL-MAP에 대한 기본 정보를 전달한다. 예컨대, 상기 FCH 정보를 분석하여 DL-MAP의 크기를 알 수 있으며, 기지국에서 사용하는 주파수 재사용 율(Frequency Reuse Factor, 이하 'reuse'라 칭하기로 한다) 예컨대, reuse 1 또는 3 중 어느 것을 적용하고 있는지를 확인할 수 있다. 그리고, DL-MAP의 변조 방식은 프레임 단위로 변경된다.
상기 DL-MAP 영역은 DL-MAP 메시지를 송신하는 영역이며, 하향링크 프레임 내에 데이터 위치, 크기 등의 데이터 추출 및 이동 단말기에 서비스를 제공하기 위한 여러 가지 정보를 가진다. 따라서, 상기 DL-MAP 정보를 분석함으로써, 프레임 내 데이터를 추출할 수 있다.
상기 DL 버스트(burst) 영역은 일반 데이터 정보들, 예컨대 상기 DL-MAP을 해석하여 획득하는 정보를 기반으로 데이터를 추출한다.
한편, 이상에서 설명한 서브채널은, 다수의 서브캐리어들로 구성되는 채널을 의미하며, 시스템 상황에 따라 미리 설정된 개수의 서브캐리어들이 1개의 서브채널을 구성한다. 또한, 상기 하나의 프레임은 여러 개의 심볼 예컨대, 와이브로 시스템에서는 42 심볼로 구성되며, 상기 하나의 심볼은 다시 여러 개의 서브채널로 구분할 수 있다. 상기 심볼은 프레임을 시간 영역에서 구분한 단위로 볼 수 있으며, 하나의 심볼 내의 데이터 크기는 프레임의 구성 형태에 따라 다르다.
다음으로, 상기 IEEE 802.16e 통신 시스템에서 사용하는 와이브로 데이터 프레임 구조에서 상향링크 프레임은 상술한 바와 같이, 다수의 UL 버스트(burst) 영역들과, 레인징 서브채널 영역으로 구성된다. 상기 레인징 서브채널 영역은 레인징을 위한 레인징 서브채널들이 송신되는 영역이며, 상기 UL 버스트(burst) 영역을 통해 일반 데이터 정보들, 예컨대 상기 UL-MAP을 해석하여 획득하는 정보를 기반으로 데이터를 추출한다.
상술한 바와 같은 상기 와이브로 데이터 프레임의 하향링크 영역들에서, 802.16e 규격에 따라 데이터를 추출하기 위해서는 다음과 같은 데이터 처리 순서가 필요하게 된다.
1) FCH 내의 reuse 정보와, 상기 DL-MAP 크기 정보를 획득하기 위한 FCH 정보를 분석하는 과정.
2) 상기 DL-MAP 내의 정보에 따라 HARQ(Hybrid Automatic ReQuest) 버스트를 제외한 일반 버스트(normal burst)를 추출하기 위한 여러 가지 정보를 획득하는 DL-MAP 디코딩을 수행하는 과정.(하나의 프레임 내에서 HARQ 버스트와 노멀 버스트가 공존할 수 있으며, 프레임 내 데이터 할당은 매 프레임마다 변경될 수 있다.)
3) 상기 DL-MAP에서 획득한 정보를 기반으로 일반 버스트를 추출하는 과정.
상기와 같은 1), 2), 3)의 순서로 데이터 처리 과정을 수행하게 되면, 1 프레임에 대한 데이터 수신이 완료되게 된다. 통상적으로 와이브로 모뎀은 고속의 데이터 전송 속도(예컨대, 하향링크 10Mbps)가 요구되고, PUSC(Partial Usage Subchannel), FUSC(Full Usage Subchannel), 재사용 율(reuse factor) 등과 같이 데이터 구조가 복잡함에 따라, 데이터 처리 방식에 있어 매우 중요한 문제가 된다.
도 2는 일반적인 광대역 무선 통신 시스템에서 데이터 처리를 위한 장치 구조를 개략적으로 도시한 도면이다.
상기 도 2를 설명하기에 앞서, 802.16e를 기반으로 하는 와이브로 모뎀 구성은 크게 동기부, CTC(Convolutional Turbo Codes) 디코더(decoder) 및 CC(Convolutional Codes) 디코더를 포함하는 수신(Rx) 데이터 처리부, MAC, CTC 인코더(encoder) 및 CC 인코더를 포함하는 송신(Tx) 데이터 처리부로 구분된다. 상기와 같은 와이브로 모뎀 구성에서 상기 도 2는 상기 수신 데이터 처리부에서 데이터 디코딩 처리를 위한 블록 구성을 나타낸다.
상기 도 2를 참조하면, 상기 도 2는 종래 기술에 따른 수신 데이터 처리부에 서 데이터 디코딩 처리를 위한 블록 구성을 개략적으로 도시한 것으로서, 채널 추정기(Channel estimator)(210)와, 디코더(Decoder)(230) 및 MAP 디코더(250)를 포함하여 구성된다.
상기 채널 추정기(210)는 고속 푸리에 변환(Fast Fourier Transform, 이하 'FFT'라 칭하기로 한다)된 데이터 내 파일럿(pilot)을 기반으로 채널을 추정한다. 이때, 상기 추정된 채널에 따라 데이터의 보상이 이루어진다.
상기 디코더(230)는 CTC 디코더 및 CC 디코더의 종류에 따라 동작한다. 상기 디코더(230)를 통해 데이터가 전송될 시 발생하는 데이터의 오류를 정정한다.
상기 MAP 디코더(250)는 상기 도 1에 나타낸 바와 같은 802.16e에 정의된 프레임 구조에서 FCH, DL-MAP을 처리한다. 상기 MAP 디코더(250)를 통해 상기 FCH, DL-MAP을 처리함으로써, 수신기의 와이브로 모뎀은 일반 데이터를 추출한다.
일반적으로 802.16e를 기반으로 한 와이브로 모뎀 구성은 크게 동기부와 CTC 및 CC 디코더를 포함하는 수신 데이터 처리부 및 CTC 및 CC 인코더를 포함하는 송신 데이터 처리부로 구분된다.
상기 도 2에 나타낸 바와 같은 구조는, 802.16e를 기반으로 구현되는 단순한 구조를 개략적으로 나타낸 것으로, 상기와 같은 구조를 기반으로 할 때 발생되는 문제를 살펴보면 다음과 같다.
하나의 프레임에는 여러 데이터가 실릴 수 있는데, 하나의 데이터가 완전히 전송된 다음에 데이터 처리를 시작하는 구조에서는 데이터가 시간축 방향으로 길게 전송되는 경우, 데이터 전송속도가 많이 저하될 수 있다. 하나의 데이터가 완전히 전송된 다음 그 데이터에 해당되는 데이터만을 채널 추정하는 구조에서는 채널 추정 성능이 열화되며, PUSC, FUSC 및 reuse 등 프레임 내 여러 구조가 혼합되어 있는 경우, 여러 개의 데이터 처리가 복잡하다는 문제점을 가진다. 또한, 하나의 데이터가 완전히 전송된 다음 데이터 처리를 수행함에 따라, 필요한 데이터 전송 속도를 획득하기 위한 많은 수의 디코더를 사용해야 하는 문제점을 가진다.
상기와 같은 와이브로 모뎀은 그 제조사별로 각기 고유한 데이터 처리 구성을 가질 수 있으며, 데이터 처리 속도 및 효율성을 생각할 때 효과적인 블록 설계가 요구된다.
본 발명은 와이브로 시스템의 수신기에서 심볼 단위로 데이터를 처리하기 위한 방법 및 장치를 제공한다.
본 발명은 와이브로 시스템의 수신기에서 HARQ 버스트를 처리하기 위한 장치 및 방법을 제공한다.
본 발명에 따른 광대역 무선 통신 시스템의 수신기에서 수신된 프레임의 데이터를 처리 하기 위한 방법은, 복수의 버스트들로 구성된 한 프레임의 데이터에 대한 제어 정보들로부터 상기 프레임을 구성하는 버스트들의 버스트 크기들과, 상기 프레임에 적용된 변조 방식 정보를 추출하는 과정과, 상기 버스트들을 식별하기 위한 버스트 식별자(ID)들을 부여하고, 상기 버스트 각 크기들과 상기 변조 방식 정보에 따른 조각 크기들을 갖는 데이터 조각들에 버스트 파셜 식별자(ID)들을 부여하는 과정과, 상기 버스트 식별자들에 따라 상기 데이터 조각들을 저장하기 위한 버스트 영역들을 메모리 상에 구성하는 과정과, 상기 프레임에 포함되는 한 슬롯의 수신 데이터를 상기 조각 크기들에 따른 데이터 조각들로 구분하여 디코딩하는 과정과, 상기 각 디코딩된 데이터 조각에 해당하는 버스트 식별자와 버스트 파셜 식별자에 따라 상기 디코딩된 데이터 조각을 순서대로 상기 메모리에 저장하는 과정을 포함한다.
광대역 무선 통신 시스템의 수신기에서 수신된 프레임의 데이터를 처리 하기 위한 장치는, 복수의 버스트들로 구성된 한 프레임의 데이터에 대한 제어 정보들을 수신하여 디코딩하는 제어 정보 디코더와, 상기 디코딩된 제어 정보로 상기 프레임을 구성하는 버스트들의 버스트 크기들과, 상기 프레임에 적용된 변조 방식 정보를 추출하고, 상기 버스트들을 식별하기 위한 버스트 식별자들을 부여하고, 상기 버스트 크기들과 상기 변조 방식 정보에 따른 조각 크기들을 갖는 데이터 조각들에 버스트 파셜 식별자들을 부여하는 제어기와, 상기 프레임에 포함되는 한 슬롯의 수신 데이터를 상기 데이터 조각 크기들에 따른 데이터 조각들로 구분하여 상기 각 데이터 조각을 디코딩하는 디코딩 부와, 상기 버스트 식별자들에 따라 각 데이터 조각들을 저장하기 위한 버스트 영역들로 구성되고, 상기 디코딩부로부터 출력된 각 데이터 조각에 해당하는 버스트 식별자와 버스트 파셜 식별자에 따라 상기 디코딩된 데이터 조각을 순서대로 저장하는 버스트 메모리부를 포함한다.
본 발명은 광대역 무선 통신 시스템의 수신기에서 기지국이 전송한 데이터를 복원하기 위한 구조를 제안한 것으로, 다음과 같은 효과를 제공한다.
- 수신된 데이터를 심볼 단위로 처리함으로 데이터 처리 속도가 빠르다.
- 전체 버스트가 채널 추정 버퍼에 버퍼링되기 전에 심볼 단위로 수신된 데이터 조각들에 대해 디코딩 및 CRC 검사를 수행함으로 전체적인 버퍼의 크기가 줄어든다.
- 데이터를 처리하기 위한 제어가 간단해 진다.
- HARQ 데이터를 효과적으로 처리할 수 있다.
이하 본 발명의 바람직한 실시 예들의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
먼저 본 발명을 설명하기에 앞서 본 발명이 적용되는 와이브로와 같은 광대역 무선 통신 시스템의 개략적인 설명을 하면 아래와 같다.
일반적으로, 802.16e를 기반으로 하는 와이브로 모뎀 구성은 크게 동기부, CTC 디코더 및 CC 디코더를 포함하는 수신(Rx) 데이터 처리부, 매체 접근 제어부(Medimum Access Control : MAC), CTC 인코더 및 CC 인코더를 포함하는 송신(Tx) 데이터 처리부로 구분된다. 제안하는 본 발명은 심볼 레벨 블록(symbol level block)인 상기 수신 데이터 처리부에서 수신 데이터 처리부의 전체적인 동작을 제어하는 스케쥴러의 동작 및 그 구성에 관한 것이다.
상기 802.16e 규격은 해석하기에 따라 여러 가지 데이터 처리 스케쥴링 방식을 적용할 수 있다. 이에 본 발명에서는 최대한 높은 데이터 전송 속도를 얻을 수 있으며, CC 디코더 및 CTC 디코더를 포함하는 디코더의 성능을 최대한 높일 수 있도록 하는 장치 구조 및 그 방안을 제안한다. 또한, 최대 예컨대, 10Mbps의 데이터 전송 속도를 얻기 위한 디코더의 수를 줄이고, 각 블록들간 지연(delay)를 최소화 함으로써, 많은 데이터 처리에도 안정적인 성능을 얻을 수 있도록 한다.
본 발명에 따른 와이브로 모뎀(modem)용 심볼 단위로 수신된 데이터를 처리하기 위한 심볼 스케쥴러는 802.16e 통신 시스템을 기반으로, 데이터 수신에 적합하게 구성되며, 데이터 처리를 심볼 단위로 처리함으로써, 빠른 전송 속도를 얻을 수 있도록 한다. 또한 상기와 같이 심볼 단위로 데이터를 처리함으로써, 시간 영역에서 길게 배치된 데이터를 처리함에 있어서 발생하는 문제점을 해결하고, 이에 따라 필요한 전송 속도를 얻기 위한 CTC 및 CC 디코더의 개수를 최적화 할 수 있다. 또한 본 발명에서는 PUSC, FUSC, 주파수 재사용율 등의 복잡한 프레임 구조를 단순화하여 데이터를 처리를 원활히 제공할 수 있도록 한다.
이하, 상기와 같은 본 발명의 기능을 수행하기 위한 수신 데이터 처리부의 블록 구성 및 그 운용 방법에 대하여 하기 도면을 참조하여 보다 구체적으로 살펴보기로 한다.
도 3은 본 발명의 제1 실시 예에 따른 광대역 무선 통신 시스템 수신기의 수신 데이터 처리부의 블록 구성을 개략적으로 도시한 도면이다.
상기 도 3을 설명하기에 앞서, 상기 도 3은 본 발명의 제1 실시 예에 따른 수신 데이터 처리부의 블록 구조를 나타낸 것으로, 이하에서는 상기 도 3을 통해 본 발명의 제1 실시 예에 따른 전체 블록 구성, 심볼 스케쥴러(symbol scheduler), LLR 디매퍼(Demapper), 메모리(memory), 슬롯컴바이너(slot combiner), 디코더(decoder), 복합자동재전송 제어기(Hybrid Automatic Request Controller : HARQ controller) 등에 대한 구조 및 그에 상응하는 전반적인 데이터 흐름을 규정한다.
상기 도 3을 참조하면, 수신 데이터 처리부는 심볼 스케쥴러(Symbol Scheduler)(301)와, 채널 추정기(Channel Estimator)(303)와, LLR 디매퍼(LLR demapper)(307)와, 디코더(Decoder)(309)와, 메모리(313)와, MAP 디코더(315) 및 HARQ 제어기(317)를 포함하여 구성된다.
상기 심볼 스케쥴러(301)는 도 3에 도시되어 있는 수신 데이터 처리부내의 각 블록들을 제어하고 전체 정보를 관리하는 기능을 수행한다. 상기 심볼 스케쥴러(301)에 대해서는 후술하는 도 4를 통해 그 내부 구조 및 동작을 설명하므로, 여기서는 그 상세한 설명은 생략하기로 한다.
상기 채널 추정기(303)는 고속 푸리에 변환(Fast Fourier Transform, 이하 'FFT'라 칭하기로 한다)되어 입력되는 데이터의 채널을 추정하여 보상하는 기능을 수행한다.
상기 LLR 디매퍼(307)는 CC 디코딩 및 CTC 디코딩을 수행하기 위해, LLR 계산을 수행한다. 상기 CC 디코딩 및 CTC 디코딩 방식은 연판정(Soft Decision) 방식이 적용되는 방식이다. 따라서, 상기 상기 디코딩 방식에 상응하여 상기 LLR 디매퍼(307)에서는 연판정 연산을 수행한다.
상기 디코더(309)는 CC 디코더 및 CTC 디코더를 포함하며, 상기 CC 디코더 및 CTC 디코더를 통한 상기 CC/CTC 디코딩된 데이터를 복호하는 기능을 수행한다. 이때, 상기 CC 디코더 및 CTC 디코더에서 계산된 연판정(soft decision) 결과를 바탕으로 트렐리스 다이어그램(Trellis diagram)을 계산하여 원래의 데이터를 획득하 게 된다.
상기 메모리(313)는 상기 디코더(309)에서 출력된 데이터를 각 데이터 영역 즉, 상기 디코더(309)에서 디코딩되어 출력되는 데이터를 버스트 단위로 저장하는 기능을 수행한다. 상기 메모리(313)는 버스트 메모리(burst memory)를 포함하며, 또한 메모리 동작을 제어하기 위한 메모리 제어기(memory controller)를 포함하여 구성될 수 있다.
상기 MAP 디코더(315)는 프레임 제어 헤더(Frame Control Head : FCH), DL-MAP 데이터에서 프레임 관련 정보를 추출하고, 상기 추출 정보들을 상기 심볼 스케쥴러(301) 및 상기 추출 정보를 필요로 하는 각 블록에 전송하는 기능을 수행한다.
상기 HARQ 제어기(317)는 HARQ 데이터 정보에 대한 ACK, NACK을 판단하고 제어하는 기능을 수행한다.
다음으로, 이하에서는 상기 도 3에 나타낸 본 발명의 제1 실시예에 따른 심볼 스케쥴러(301)에 대하여 도 4를 참조하여 보다 구체적으로 살펴보기로 한다.
도 4는 본 발명의 제1 실시예에 따른 심볼 스케쥴러의 내부 구성을 개략적으로 도시한 도면이다.
상기 도 4를 참조하면, 본 발명의 제1 실시예에 따른 상기 심볼 스케쥴러는 크게 4부분으로 구성된다. 즉, 상기한 심볼 블록 전체에 대한 입출력의 동작 즉, 상태(status)를 관리하는 스케쥴러(Scheduler)(301)는, FCH 디코딩을 수행하기 위한 정보들을 관리하는 FCH 스케쥴러(Fch_scheduler)(410)와, DL-MAP 디코딩을 수행하기 위한 정보들을 관리하는 DL-MAP 스케쥴러(Dl-map_scheduler)(420)와, 메모 리(memory)를 초기화(initial)하고 데이터 크기등을 설정하는 초기화 스케쥴러(Initiation_scheduler)(430)와, 일반 버스트(Normal burst) 디코딩을 수행하기 정보들을 관리하는 노멀 스케쥴러(Normal_scheduler)(440)를 포함하여 구성된다.
상기와 같은 구성을 통해 상기 본 발명의 심볼 스케쥴러에 따른 바람직한 동작을 살펴보면 다음과 같다.
먼저, 상기 심볼 스케쥴러(301)는 수신 데이터 처리부에 대한 상태를 관리한다. 이때, 하나의 프레임에서 데이터를 처리하기 위해서는 다음과 같은 과정을 수행한다.
1) 상기 심볼 스케줄러(301)는 데이터 동기가 맞았는지 확인한다. 즉, 데이터 동기가 맞지 않으면 해당 프레임 데이터는 처리할 수 없다. 따라서 동기 정보를 보고 데이터를 처리할 것인지를 결정한다.
2) 상기 심볼 스케줄러(301)는 프레임 내 FCH를 추출한다. 즉, 상기 FCH는 첫 번째 심볼의 PUSC 영역에 고정된 위치에 직교위상편이변조(Quaderature Phase Shift Keying : QPSK) 1/2이고, 반복(repetition)은 '4'로 전송하게 된다. 이때, 상기 MAP 디코더(315)에서 FCH 디코딩이 완료되었음을 알리는 신호를 수신하게 되면, DL-MAP 디코딩 모드로 넘어간다.
3) 상기 심볼 스케줄러(301)는 프레임 내 DL-MAP을 추출한다. 즉, 상기 DL-MAP은 상기 FCH에서 지정된 reuse 정보 및 크기(size) 정보에 상응하여 PUSC 영역에 존재하게 된다. 따라서, 상기 MAP 디코더에서는 상기 FCH에서 추출된 정보를 바탕으로 상기 DL-MAP을 디코딩한 후, 버스트 테이블 및 비트맵 테이블(bitmap table)을 생성한다. 상기 테이블 생성이 완료되면 HARQ MAP 검사 영역으로 넘어가게 된다.
4) 상기 심볼 스케줄러(301)는 프레임 내 HARQ MAP이 있는지를 검사한다. 즉, HARQ MAP이 있는 경우에는 HARQ MAP 모드로 변환되며, HARQ MAP이 없는 경우에는 데이터 모드로 변환된다. 이때, 상기 HARQ MAP이 있는 경우에는 상기한 MAP 디코더(315)에서 해당 정보를 알려주게 된다.
5) 상기 심볼 스케줄러(301)는 데이터 모드가 되면, 비트맵(Bitmap) 정보를 바탕으로 심볼 단위 데이터 처리를 수행한다. 이후, 버스트 구성 테이블에 지정된 모든 데이터 처리가 완료되면 다음 프레임이 전송될 때까지 대기한다.
여기서, 상기한 과정의 각 단계는 스테이트로 정의되며, 상기 스테이트는 스케쥴러에서 관리되며, 이하에서는 '스케쥴러 스테이트'라 칭하기로 한다. 보다 구체적으로, 상기 데이터 동기가 맞는지 확인하는 단계는 '초기 스테이트'로 정의되며, 상기 프레임 내 FCH를 추출하는 단계 즉, FCH 정보를 디코딩하는 모드는 'FCH 모드'로 정의되며, 상기 프레임 내 DL-MAP을 추출하는 단계는 즉, DL-MAP 을 디코딩하는 모드는 'DL-MAP 모드'로 정의되며, 상기 프레임 내 HARQ MAP이 있는지 검사하는 단계는 'HARQ 모드'로 정의된다. 이때, 상기 HARQ MAP은 프레임내에 반드시 존재하지는 않는다. 마지막으로, 상기 모든 MAP 정보들이 추출 완료되면 데이터를 추출하기 위한 '데이터 모드'로 정의된다.
상기 스케쥴러 스테이트의 상태에 따라 하위 스케쥴러 즉, 상기한 FCH 스케쥴러(410), DL-MAP 스케쥴러(420), 초기화 스케쥴러(430) 및 노멀 스케쥴러(440)가 동작하게 된다. 상기와 같은 하위 스케쥴러들의 동작은 다음과 같다.
상기 FCH 스케쥴러(410)는 상기 심볼 스케쥴러(301)의 스테이트(state)가 'FCH 모드'일 때 스테이트 관리를 수행한다.
상기 DL-MAP 스케쥴러(420)는 상기 심볼 스케쥴러(301)의 스테이트(state)가 'DL-MAP 모드'일 때 스테이트 관리를 수행한다.
상기 초기화 스케쥴러(430)는 상기 심볼 스케쥴러(301)의 스테이트(state)가 FCH 디코딩을 하기 위한 정보를 각 블록에 설정하는 'FCH 정보를 설정하는 스테이트', DL-MAP 디코딩을 위한 기본 적인 정보들을 각 블록들에 설정하는 스테이트인 'DL-MAP 정보를 설정하는 스테이트' 및 버스트 메모리에서 버스트 사이즈 등을 설정하는 '버스트 정보 설정 스테이트'일 때 각각의 스테이트 관리를 수행한다.
상기 'FCH 정보를 설정하는 스테이트'에서는 초기화 스케줄러(430)가 FCH 추출에 필요한 정보를 각각의 블록들에 설정한다. 이때, 상기 FCH 추출에 필요한 정보는 FCH의 크기, 반복회수 및 데이터 타입 등이 된다. 상기 'DL-MAP 정보를 설정하는 스테이트'에서는 초기화 스케줄러(430)가 DL-MAP 추출에 필요한 정보들을 각각의 블록들에 설정한다. 이때, 상기 DL-MAP 추출에 필요한 정보는 DL-MAP의 크기, 반복회수, 데이터 타입 및 디코딩 타입 등이 된다. 상기 '버스트 정보 설정 스테이트'에서는 초기화 스케줄러(430)는 일반 데이터를 추출하기 위한 정보들을 각 블록에 설정한다. 여기서, 상기 DL-MAP을 통해 추출된 정보들은 MAP 디코더를 통해 테이블로 변환되고, 상기 테이블 값들은 각 블록들에 디코딩을 위해 설정된다. 상기 노멀 스케쥴러(440)는 상기 심볼 스케쥴러(301)의 스테이트(state)가 'normal 모 드'일 때 스테이트 관리를 수행한다.
상기와 같은 하위 스케쥴러들의 동작 과정을 보다 구체적으로 설명하기로 한다.
먼저, 상기 심볼 스케쥴러(301)가 프레임 시작 신호를 수신하면, 심볼 디코딩을 시작한다. 이후 상기 초기화 스케쥴러(430)를 동작시켜 FCH 디코딩 관련 정보들을 설정한다. 상기 FCH 디코딩 관련 정보가 설정되면, 이를 기반으로 하여 상기 FCH 스케쥴러(410)가 동작하여 FCH 디코딩을 수행한다.
다음으로, 상기 초기화 스케쥴러(430)에서 상기 FCH 디코딩 결과로 획득한 DL-MAP 정보를 관련 블록에 설정한다. 그러면, 상기 DL-MAP 스케쥴러(420)가 동작하여 DL-MAP 디코딩을 수행한다. 다음으로 상기 초기화 스케쥴러(430)에서는 상기 DL-MAP 디코딩 결과로 얻어진 버스트 테이블 및 비트맵 테이블을 기반으로, 일반 버스트(normal burst) 디코딩을 위한 정보들을 관련 블록에 설정한다. 마지막으로 상기 노멀 스케쥴러(440)가 동작하여 일반 버스트들을 디코딩한다.
이상에서 살펴본 바와 같은 본 발명의 제1 실시 예에서는, 심볼(symbol) 단위 데이터 처리를 수행한다. 즉, 매 심볼의 채널 추정 결과가 완료되면, 그 심볼의 데이터를 읽어 바로 디코딩 처리하도록 한다. 여기서, 상기 심볼 단위 처리를 수행하기 위해서, 본 발명의 제1 실시 예에서는 두 개의 구성 테이블(configuration table) 즉, 버스트 테이블(burst table) 및 비트맵 테이블(bitmap table)을 제안한다.
상기 두 개의 테이블은 모두 상기 MAP 디코더(315)에서 생성되며, 상기 버스 트 테이블 및 상기 비트맵 테이블에 대한 실시예는 하기 도 5 및 도 6에 나타낸 바와 같다.
도 5는 본 발명의 제1 실시 예에 따른 광대역 무선 통신 시스템에서 버스트 테이블의 구성 예를 개략적으로 도시한 도면이다.
상기 도 5를 참조하면, 상기 버스트 구성 테이블은 DL-MAP에서 버스트 정보 엘리먼트(Information Element, 이하 'IE'라 칭하기로 한다)를 통해 얻은 버스트 정보를 각각의 버스트마다 번호를 매겨 버퍼에 저장된다.
상기 도 5에 도시한 바와 같이, 상기 버스트 테이블의 부분별 내용은 다음과 같다. 즉, 버스트 테이블은 상기 버스트 테이블의 마지막인지 아닌지를 나타내는 EOC(End Of Contents)와, 해당하는 테이블의 버스트가 현재의 이동 단말기가 확인해야 하는 버스트인지 다른 이동 단말기에 속한 버스트인지를 구분하기 위한 커넥션 ID(Conection ID : CID)와, 각각의 버스트 마다 매겨지는 번호를 나타내는 버스트 인덱스(Burst_indx)(아래의 도 9 내지 도 19에서 설명하는 버스트 ID와 동일한 의미를 가짐)와, 프레임 에러 정정(Frame Error Correction : FEC) 코드 타입(code type)을 나타내는 것으로, CTC 정보, CC 정보 및 인코딩(encoding) 정보가 포함되는 FEC code type과, 반복이 몇 번 수행되었는지를 나타내는 repetition과, 데이터 부스팅(boosting)이 얼마 되었는지를 나타내는 boosting과, 데이터 슬롯(slot)의 크기를 나타내는 burst_sz와, CTC 디코딩에서 반복(iteration) 회수를 지정하는 CTC iteration를 포함하여 이루어진다.
여기서, 하나의 프레임에는 여러 개의 데이터가 전송될 수 있으며, 이때 전 송 개수는 매 프레임마다 달라질 수 있다. 이때, 전송된 데이터만큼 테이블을 저장하고, 마지막에 상기 EOC를 '1'로 설정함으로써, 해당 프레임내 전송된 데이터 개수를 파악하고 불필요한 연산을 줄일 수 있다. 또한, 휴대 인터넷 예컨대 와이브로 규격에서는 데이터 별로 9dB ~ 12dB의 상기 boosting을 정의할 수 있으며, 상기 boosting은 DL-MAP을 통해 지정된다.
도 6은 본 발명의 제1 실시 예에 따른 광대역 무선 통신 시스템에서 비트맵 테이블의 구성 예를 개략적으로 도시한 도면이다.
상기 도 6을 참조하면, 상기 비트맵 테이블은 한 프레임 내 데이터의 위치 및 버스트 번호를 표시하여 심볼 단위 데이터 처리를 가능하게 하는 테이블로서, 상기 비트맵 테이블의 부분별 내용은 다음과 같다.
상기 도 6에 도시한 바와 같이, 비트맵 테이블은 수신된 버스트가 현재 이동 단말기에 해당하는 버스트인지를 나타내는 My_brst와, 각 버스트마다 매겨진 번호를 나타내는 Burst_indx와, 데이터가 CC 디코딩 및 CTC 디코딩 크기가 되었음을 나타내는 Fec_end를 포함하여 이루어진다. 즉, 휴대 인터넷 예컨대, 와이브로 규격에서는 하나의 버스트를 여러 개로 나누어서 전송하며, 상기와 같이 나누어진 각 부분에 대해 CC 및 CTC 인코딩이 수행된다. 이와 같이 수신된 버스트를 디코딩하기 위해서는 수신한 데이터가 어느 정도로 나누어져 있으며, 현재 CC 및 CTC 디코딩을 수행할 수 있는 정도로 처리되었는지 확인하여야 한다. 이를 통해 상기 'Fec_end' 신호를 통해 상기와 같이 Concatenation된 데이터의 CC 및 CTC 디코딩 위치를 표시할 수 있다.
상기와 같이, 상기 도 5 및 도 6에 나타낸 테이블 정보를 기반으로 상기 심볼 스케쥴러(301)는 동작하게 된다. 이때, 상기 두 테이블 정보가 설정되는 시점은 DL-MAP 디코딩이 끝나는 시점이다. 이어서, 상기 DL-MAP 디코딩이 완료되면, 상기 MAP 디코더(315)로부터 구성 완료(configuration done) 신호가 심볼 스케줄러(301)로 입력된다. 그러면 상기 심볼 스케쥴러(301)에서는, 먼저 상기 구성된 버스트 테이블을 읽어 해당 정보들을 미리 설정하고, 다음으로 상기 비트맵 테이블을 읽어 매 심볼 단위로 데이터를 처리하게 된다.
다음으로, 이하에서는 상기한 심볼 스케쥴러(301)에서의 처리 과정을 첨부한 도면을 참조하여 설명하기로 한다. 이때, 상기 심볼 스케쥴러(301)의 동작은 HARQ MAP이 있을 경우에 따른 처리 과정과, 상기 HARQ MAP이 없을 경우의 처리 과정으로 구분되며, 이는 각각 하기 도 7 및 도 8에 나타낸 바와 같다.
도 7은 본 발명의 제1 실시 예에 따른 심볼 스케쥴러(Symbol Schedule) 에서 FCH, DL-MAP, HARQ MAP을 디코딩하기 위한 방법 흐름도이다. 본 발명의 실시 예에 따른 심볼 스케줄러는 유한 스테이트 머신(Finite State Machine)으로 구현할 수 있다.
상기 도 7을 참조하면, 먼저 701단계에서 상기 심볼 스케쥴러(301)는 'IDLE' 상태로 새로운 프레임의 시작을 대기한다. 즉, 소정의 프레임에 대한 처리가 완료되어 리셋(reset) 등이 발생하면 'IDLE 모드'에서 대기한다. 이때, 상기 IDLE 모드 대기는 703단계에서와 같이 프레임 시작(Frame start) 신호가 발생할 때까지 상기 IDLE 모드로 대기한다.
다음으로, 703단계에서와 같이 프레임 시작 신호가 발생되면, 심볼 스케쥴러(301)는 705단계로 진행한다. 상기 705단계에서는 FCH 정보를 설정(FCH information setting)한 후 707단계로 진행한다. 즉, 705단계에서 심볼 스케쥴러(301)는 FCH 디코딩을 위한 정보들을 LLR 디매퍼(307), 메모리(313)에 설정한다. 이때, 상기 FCH는 PUSC 영역에 4슬롯 안에 4번 반복되어 입력되며, 이를 통해 상기 FCH 크기 및 반복 정보 등을 내부 각 블록들에 설정한다.
다음으로, 상기 707단계에서는 심볼 스케쥴러(301)는 FCH 디코딩을 위한 제어를 완료한 후 709단계로 진행한다. 이때, 상기 FCH 디코딩은 상기 709단계에 나타낸 바와 같이, MAP 디코더(315)로부터 FCH 디코딩이 완료(FCH done)되었다는 신호인 FCH Done 신호를 받을 때까지 수행된다.
다음으로, 심볼 스케쥴러(301)는 상기 709단계에서와 같이 FCH 디코딩이 완료됨을 알리는 신호인 FCH Done 신호를 수신하면 711단계로 진행한다. 상기 711단계에서는 심볼 스케줄러(301)는 DL-MAP 정보를 수신 데이터 처리부 내 각 블록들에 설정(DL-MAP information setting)한 후 713단계로 진행한다. 즉, 상기 711단계에서는 DL-MAP 디코딩을 위한 정보들을 설정한다. 다시 말해, 심볼 스케줄러(301)는 상기 707단계에서 FCH 디코딩이 완료되면 DL-MAP 크기, 반복 및 코드 등의 정보를 획득할 수 있는데, 이러한 정보들을 데이터 디코딩 처리를 위한 수신 데이터 처리부 내부 각 블록들에 설정한다.다음으로, 심볼 스케줄러(301)는 상기 713단계에서는 DL-MAP 디코딩 모드(DL-MAP decoding mode)에서 DL-MAP 디코딩을 수행하게 수신 데이터 처리부 내 각블록들을 제어한 후 715단계로 진행한다. 이때, 상기 DL-MAP 디코딩의 결과로 상기 MAP 디코더(315)에서 테이블이 생성되는데, 이러한 과정은 상기 715단계에 나타낸 바와 같이 상기 테이블 생성이 완료되었다는 신호인 TABLE Done 신호가 MAP 디코더(315)에서 발생할 때까지 상기 DL MAP 디코딩 모드 상태에서 대기한다.
다음으로, 심볼 스케줄러(301)는 상기 715단계에서와 같이 DL MAP 디코더(315)로부터 테이블 생성이 완료됨을 알리는 신호인 TABLE Done 신호를 수신하면 717단계로 진행한다. 상기 717단계에서는 HARQ MAP 정보를 설정(HARQ MAP information setting)한 후 719단계로 진행한다. 즉, 상기 717단계에서는 HARQ MAP을 디코딩하기 위한 정보들을 설정한다.
그리고 심볼 스케줄러(301)는 상기 719단계에서는 HARQ MAP 디코딩 모드(HARQ MAP decoding mode)에서 HARQ MAP 디코딩을 수행하게 수신 데이터 처리부 내 각블록들을 제어한 후 721단계로 진행한다. 상기 HARQ MAP 디코딩 과정은 MAP 디코더(315)로부터 상기 721단계에 나타낸 바와 같이 HARQ MAP 디코딩이 완료되었다는 신호인 HARQ TABLE Done 신호가 발생할 때까지 계속된다. 다음으로, 심볼 스케줄러(301)는 상기 721단계에서와 같이 상기 HARQ MAP 디코딩이 완료됨을 알리는 신호인 HARQ TABLE Done를 MAP 디코더(315)로부터 수신하면 723단계로 진행한다.
상기 723단계에서 심볼 스케줄러(301)는 버스트 정보를 초기값으로 설정(Burst information initialize)한 후 725단계로 진행한다. 즉, 상기 723단계에서는 일반 버스트 디코딩을 위한 정보들을 설정한다. 이러한 관련 정보들은 상기한 버스트 구성 테이블에서 읽을 수 있다. 이때, 심볼 스케줄러(301)는 상기 버스트 구성 테이블에서 정보를 읽어 부호율(code rate), FEC 코드 타입(code type)은 LLR 디매퍼(307), CTC 반복 회수(CTC iteration)는 디코더(309), 버스트 크기(burst size) 등의 정보는 버스트 메모리인 메모리(313)에 각각 설정한다.
다음으로, 상기 725단계에서는 심볼 스케줄러(301)는 일반 버스트 디코딩 모드(Normal burst decoding mode)에서 일반 버스트를 디코딩하게 수신 데이터 처리부 내 각 블록들을 제어한 후 727단계로 진행한다. 상기 725단계는 상기 727단계에 나타낸 바와 같이, 디코더(309)로부터 버스트 디코딩이 완료되었다는 신호인 Burst decoding Done 신호가 발생할 때까지 상기 일반 버스트 디코딩 모드 상태에서 대기한다. 마지막으로, 상기 727단계에서와 같이 디코더(309)로부터 상기 버스트 디코딩이 완료됨을 알리는 신호(Burst decoding Done)를 수신하면, 심볼 스케줄러(301)는 상기 프레임에 대한 처리를 완료하고, 리셋(reset) 등을 통해 상기 701단계로 진행하여 새로운 프레임의 시작을 대기한다.
다음으로, 이하에서는 HARQ MAP이 없을 때의 상기 심볼 스케쥴러(301)의 처리 과정에 대하여 설명하기로 한다.
도 8은 본 발명의 제1 실시 예에따른 심볼 스케쥴러(301)에서 HARQ MAP없이 FCH, DL-MAP을 디코딩하기 위한 방법 흐름도이다.
상기 도 8을 참조하면, 먼저 801단계에서 상기 심볼 스케쥴러(301)는 'IDLE' 상태로 새로운 프레임의 시작을 대기한다. 즉, 소정의 프레임에 대한 처리가 완료되어 리셋(reset) 등이 발생하면, 심볼 스케줄러(301)는 'IDLE 모드'에서 대기한다. 이때, 상기 'IDLE 모드 대기는 803단계에서와 같이 프레임 시작(Frame start) 신호가 발생할 때까지 상기 IDLE 모드로 대기한다.
다음으로 803단계에서와 같이 프레임 시작 신호가 발생되면, 심볼 스케줄러(301)는 805단계로 진행하여 FCH 정보를 설정(FCH information setting)한 후 807단계로 진행한다. 즉, FCH 디코딩을 위한 정보들을 설정한다. 예를 들어, 상기 FCH는 PUSC 영역에 4슬롯 안에 4번 반복되어 입력되며, 이를 통해 상기 FCH 크기 및 반복 정보 등을 수신 데이터 처리부 내부 각 블록들에 설정한다.
다음으로, 상기 807단계에서는 심볼 스케줄러(301)는 FCH 디코딩 모드(FCH decoding mode)에서 FCH 디코딩을 수행하게 각 블록들을 제어한 후 809단계로 진행한다. 이때, 상기 FCH 디코딩은 상기 809단계에 나타낸 바와 같이, 심볼 스케줄러(301)가 FCH 디코딩이 완료되었다는 신호(FCH Done)를 받을 때까지 계속 수행된다. 다음으로, 상기 809단계에서와 같이 FCH 디코딩이 완료됨을 알리는 신호(FCH Done)를 MAP 디코더(315)로부터 수신하면 심볼 스케줄러(301)는 811단계로 진행한다. 상기 811단계에서 심볼 스케줄러(301)는 DL-MAP 정보를 설정(DL-MAP information setting)한 후 813단계로 진행한다. 즉, 상기 811단계에서 심볼 스케줄러(301)는 DL-MAP 디코딩을 위한 정보들을 설정한다. 다시 말해, 상기 807단계에서 심볼 스케줄러(301)는 FCH 디코딩이 완료되면 DL-MAP 크기, 반복 및 코드 등의 정보를 획득할 수 있는데, 이러한 정보들을 수신 데이터 처리부 내부 각 블록들에 설정한다.
다음으로, 상기 813단계에서 심볼 스케줄러(701)는 DL-MAP 디코딩 모드(DL-MAP decoding mode)에서 DL-MAP 디코딩을 수행하게 수신 데이터 처리부의 각 블록 들을 제어한 후 815단계로 진행한다. 이때, 상기 DL-MAP 디코딩의 결과로 상기 MAP 디코더(315)에서 테이블이 생성되는데, 이러한 과정은 상기 815단계에 나타낸바와 같이 상기 테이블 생성이 완료되었다는 신호(TABLE Done)가 발생할 때까지 DL MAP 디코딩 모드로 대기한다.
다음으로, 상기 815단계에서와 같이 테이블 생성이 완료됨을 알리는 신호인 TABLE Done 신호를 수신하면 심볼 스케줄러(301)는 817단계로 진행하여 버스트 정보를 초기값으로 설정(Burst information initialize)한 후 819단계로 진행한다. 즉, 상기 815단계에서는 일반 버스트 디코딩을 위한 정보들을 설정한다. 이러한 관련 정보들은 상기한 버스트 테이블에서 읽을 수 있다. 이때, 심볼 스케줄러(301)는 상기 버스트 테이블에서 정보를 읽어 부호율(code rate), FEC 코드 타입(code type)은 LLR 디매퍼(307), CTC 반복 회수(CTC iteration)는 디코더(309), 버스트 크기(burst size) 등의 정보는 버스트 메모리인 메모리(313)에 각각 설정한다.
다음으로, 상기 819단계에서 심볼 스케줄러(301)는 일반 버스트 디코딩 모드(Normal burst decoding mode)에서 일반 버스트를 디코딩하게 수신 데이터 처리부의 각 블록들을 제어한 후. 821단계로 진행한다. 상기 819단계에서 심볼 스케줄러(301)는 상기 821단계에 나타낸 바와 같이, 버스트 디코딩이 완료되었다는 신호인 Burst decoding Done신호가 발생할 때까지 상기 일반 버스트 디코딩 모드로 동작한다. 마지막으로, 상기 821단계에서 디코더(309)로부터 상기 버스트 디코딩이 완료됨을 알리는 신호(Burst decoding Done)를 수신하면, 심볼 스케줄러(301)는 상 기 프레임에 대한 처리를 완료하고, 리셋(reset) 등을 통해 상기 801단계로 진행하여 새로운 프레임의 시작을 대기한다.
이상에서는 본 발명의 제1 실시예에 따른 상기 심볼 스케쥴러(301)에서의 처리 과정에 대하여 설명하였으며, 이하에서는 상기 심볼 스케쥴러(301)를 구성하는 각 하위 스케쥴러 즉, FCH 스케쥴러(410), DL-MAP 스케쥴러(420), 초기화 스케쥴러(430) 및 노멀 스케쥴러(440) 각각에 대한 세부 처리 과정에 대하여 설명하기로 한다.
먼저, 상기 FCH 스케쥴러(410)에 대한 세부 동작 과정을 살펴보면 다음과 같다.
상기 FCH 스케쥴러는 FCH 디코딩을 하기 위해 관련 스테이트(state)를 관리한다. 즉, 상기 FCH 스케쥴러 동작은 스케쥴러 스테이트(scheduler state)가 'FCH mode'가 되었을 때 동작하게 된다. 보다 구체적으로, 먼저 상기 FCH 스케쥴러(410)는 FCH 디코딩을 수행할 수 있도록 데이터들이 충분히 채널 추정이 되었는지 소정의 버퍼 예컨대, 채널 추정 버퍼(channel estimation buffer)를 확인한다. 여기서, 상기 FCH는 처음 PUSC 심볼 구간에 있으므로, 처음 2 심볼이 채널 추정 완료되었는지 확인하면 된다. 다음으로, 채널 추정이 완료된 것이 확인되면 FCH 스케줄러(410)는 FCH 디코딩을 위해 필요한 정보들을 설정한다. 즉, 반복회수, 버스트 ID, 데이터 크기 및 FEC 코드 타입 등을 설정한다. 이후 상기 설정이 완료되면 상기 채널 추정 버퍼에서 데이터를 읽기 위한 어드레스를 생성하고, FCH 디코딩 완료 신호가 발생할 때까지 대기한다.
다음으로, 상기 DL-MAP 스케쥴러(420)에 대한 세부 동작 과정을 살펴보면 다음과 같다.
상기 DL-MAP 스케쥴러(420)는 FCH 스케쥴러(410)를 통해 FCH 디코딩이 완료되면, 이후 DL-MAP 디코딩을 수행하는 동안의 스테이트를 관리한다. 여기서, 상기 DL-MAP은 상기 FCH와는 달리 그 길이가 고정되어 있지 않고, 부호율(code rate)도 상황에 따라 변화된다. 따라서, 상기 FCH 디코딩 결과를 상기 MAP 디코더(315)로부터 받아 관련 정보를 수신 데이터 처리부의 각 블록(LLR 디매퍼(307), 메모리(313))들에 설정해 주어야 한다. 또한 상기 DL-MAP 스케쥴러(420)에서는 매 프레임마다 스테이트가 초기화되어 관리된다. 보다 구체적으로, 먼저 상기 DL-MAP 스케쥴러(420)는 상기 심볼 스케쥴러(310)가 DL-MAP 모드가 되면 동작을 시작한다. 상기 DL-MAP 모드가 되면 먼저 디코딩을 수행하기 위한 정보들을 필요 블록들에 각각 설정한다. 이때, 상기 정보들은 DL-MAP 크기, DL-MAP 반복회수, 부호율(code rate) 등이며, DL-MAP 크기는 버스트 메모리(313)에, DL-MAP 반복 횟수, 부호율은 LLR 디매퍼(307)에 각각 설정한다. 다음으로, 상기 설정이 완료되면 채널 추정 값 및 데이터를 상기 채널 추정기(303)의 채널 추정단 버퍼에서 읽는다. 이후, DL-MAP 디코딩이 완료되었음을 알리는 DL-MAP DONE 신호가 발생될 때까지 대기한다.
다음으로, 상기 초기화 스케쥴러(430)에 대한 세부 동작 과정을 살펴보면 다음과 같다.
상기 초기화 스케쥴러(430)는 상기 심볼 스케쥴러에서 상태가 변할 때마다 필요한 정보를 각 블록들 즉, LLR 디매퍼(307), 버스트 메모리(313), HARQ 제어 기(317)들에 설정한다. 상기와 같이, 데이터를 전송하기 전에 반복적으로 사용되는 데이터를 미리 설정함으로써, 전반적인 데이터 처리 성능을 높일 수 있다. 여기서, 상기 초기화 스케쥴러(430)는 다음과 같이 3단계의 FCH 설정 단계에서 동작을 수행하며, 각 영역에서 필요한 정보를 설정한다.
- 새로운 프레임이 입력되고, FCH 디코딩을 수행하기 전 FCH 관련 정보 설정.
- FCH 디코딩이 완료되고 DL-MAP 디코딩을 수행하기 위해 FCH에서 획득한 DL-MAP 정보를 설정.
- DL-MAP 디코딩 결과로 획득한 구성 테이블(configuration table)을 바탕으로 하여 일반 데이터를 디코딩하기 위한 정보 설정.
다음으로, 상기 노멀 스케쥴러(440)에 대한 세부 동작 과정을 살펴보면 다음과 같다.
상기 노멀 스케쥴러(440)는 일반 버스트 디코딩을 위한 스케쥴러 기능을 담당한다. 즉, 노멀 데이터는 PUSC 영역 및/또는 FUSC 영역에 존재할 수 있으므로, 노멀 스케쥴러(440)에서는 상기 노멀 데이터에 관련 사항들을 고려해야만 한다. 따라서 구성 테이블(configuration table)을 바탕으로 정보가 설정되며, 각각의 버스트마다 별도로 설정된다.
앞서 설명한 본 발명의 제1 실시 예에 따른 광대역 무선 통신 시스템의 수신기는 채널 추정기(303)에 한 개의 버스트가 완전히 입력되기 전까지는 후단의 디코 더로 수신된 버스트를 전송할 수 없다. 아울러 두 개 이상의 버스트가 수신될 경우에는 광대역 무선 통신 시스템의 수신기는 둘 중 먼저 수신된 버스트에 대해 디코딩을 수행하고, 그 이후에 다른 버스트에 대해 디코딩을 수행함으로 인하여 디코딩 시간이 지연되는 문제점이 있었다.
따라서 이하에서 제안하는 본 발명의 제2 실시 예에 따른 심볼 단위로 데이터를 처리하는 심볼 레벨 블록(Symbol level block)인 수신 데이터 처리부에서 데이터를 심볼 단위로 처리하기 위한 구성 및 방법을 제공한다. 또한 본 발명의 제2 실시 예에서 제안하는 수신 데이터 디코딩 파트가 HARQ 데이터와 HARQ 데이터가 아닌 노멀(Normal) 데이터 처리를 지원하도록 설계되었다.
상기 802.16e 규격은 해석하기에 따라 여러 가지 데이터 처리 스케줄(Schedule) 방식이 가능한데, 이에 본 발명은 심볼 단위로 데이터를 처리하여 최대한 높은 데이터 전송 속도 구현이 가능하도록 설계되었고, 이를 지원하기 위한 장치 및 방법을 제안한다.
이하에서는 심볼 단위로 노멀 데이터를 처리하기 위한 구성 및 HARQ 버스트 처리 방법과 심볼 단위로 노멀 데이터를 처리하기 위한 버스트 메모리부의 구성 및 방법과 HARQ 제어기의 구성 및 방법을 제2 실시 예로서 제안 할 것이다. 아울러 이하에서 설명되는 본 발명의 제2 실시 예에서는 광대역 무선 통신 시스템의 수신기의 블록 구성 중 앞서 제1 실시 예에서 상술한 내용과 중복되는 동작에 대한 상세한 설명은 생략하기로 한다.
우선 본 발명의 구체적인 제2 실시 예를 설명하기 전에 본 발명의 제1 실시 예에 따른 광대역 무선 통신 시스템의 이동단말에서 수신되는 버스트를 처리하는 과정들을 도 9내지 도 11을 참조하여 설명하기로 한다.
즉, 앞서 설명한 본 발명의 제1 실시 예에 따른 적용되는 광대역 무선 통신 시스템의 이동단말의 모뎀부에서 하나의 버스트 단위로 데이터를 처리하는 방식은 도 9와 도 10에 나타내었다.
도 9는 본 발명의 제1 실시 예에 따른 광대역 무선 통신 시스템 수신기의 채널 추정단(Channel Estimator)(900)으로 한 개의 버스트가 입력될 때의 동작을 개략적으로 설명하기 위한 블록 구성도이다. 채널 추정단(900)은 채널 추정단 버퍼(900a)와 채널 추정기(900b)를 포함한다. 도 9에서 채널 추정기(900b)에 버퍼링되는 버스트는 버스트 ID가 1인 버스트이며, 버스트 ID는 전술한 도 5내지 도 6에서 설명한 버스트 인덱스(Burst_indx)와 동일한 의미이며, 이하에서는 버스트 ID로 통칭하여 사용하기로 한다. 도 9 내지 도 11은 설명의 편의를 위해 본 발명의 제1 실시 예에서 설명했던 수신 데이터 처리부의 블록 구성들 중 심볼 스케줄러(301), LLR 디매퍼(307), 디코더(309), 메모리(313), HARQ 제어기(317)를 Rx 디코더부(902b)로 칭하였다.
도 10은 본 발명의 제1 실시 예에 따른 광대역 무선 통신 시스템 수신기의 채널 추정단으로 한 개의 버스트가 모두 입력되어 채널 추정 버퍼에 저장되었을 경우의 동작을 설명하기 위한 도면이다
앞서 설명한 버스트 단위로 데이터를 처리하는 방식은 채널 추정단(900)에서 하나의 버스트가 완전히 추정 완료되어 채널 추정 버퍼(Channel Estimator Buffer)(900a)에 저장된 다음에 데이터 디코딩을 수행하는 방법이다. 채널 추정 버퍼(900a)를 살펴보면, 0번 심볼부터 9번 심볼 까지 10개의 심볼을 버퍼링할 수 있는 것으로 가정하였으며, 세로 축은 주파수를 가로 축은 시간을 나타낸다. 기지국에서는 일정한 시간 간격을 두고 한 심볼 단위로 전송을 하게 된다. 그리고 채널 추정기(900b)에서는 한 심볼 단위로 수신된 데이터들을 버퍼링하면, Rx 디코더부(902b)는 상기 채널 추정단 버퍼(900a)에서 슬롯 단위로 데이터를 읽어와 처리한다.
앞서 설명한 본 발명의 제1 실시 예에 따른 광대역 무선 통신시스템의 이동단말에서는 도 9와 같이 채널 추정 버퍼(900a)에 버스트 1이 완전히 버퍼링되지 않은 경우에는 데이터 디코딩을 시작하지 않고 대기한다. 그리고 도 10과 같이 완전히 데이터가 저장되면 데이터 버스트 디코딩을 시작한다. 하나의 데이터 버스트 디코딩이 완료되면 다음 버스트 디코딩을 시작한다. Rx 디코더부(902b)는 채널 추정단(900)으로부터 전송되는 버퍼링 정보(Buffering Information)를 통해 현재 채널 추정 버퍼(900a)에 버스트 데이터가 어느 정도나 버퍼링되어 있는지 알 수 있으며, Rx 디코더부(902b)는 실제로 버퍼링된 버스트 데이터를 읽어오기 위한 신호인 데이터 주소(Data address)와 이네이블(enable)신호를 채널 추정단(900)로 전송함으로써 실제 버퍼링된 버스트 데이터인 채널 추정된 데이터(Channel Estimated data)를 읽어올 수 있다. 즉, 도 9와 같이 버스트의 일부분이 버퍼링된 경우에는 디코딩이 수행되지 않으며, 도 10과 같이 전체 버스트가 버퍼링될 경우에만 수신된 버스트에 대해 디코딩을 수행할 수 있다.
또한, 도 11과 같이 버스트 1, 2가 동시에 채널 추정 버퍼(900a)에 버퍼링된 경우에는 버스트 1이 완전히 버퍼링된 이후에야 버스트 2를 디코딩하는 것을 보여준다. 즉, 도 11은 버스트 ID(Burst_indx)가 각각 1과 2인 두 개의 버스트들이 채널 추정 버퍼(900a)에 버퍼링되는 것을 보여주고 있다.
앞서 설명한 본 발명의 제1 실시 예에 따른 광대역 무선 통신 시스템의 수신기에서는 데이터 버스트 단위로 처리하기 때문에 버스트의 데이터에 대해 디코딩을 수행하는 도중에 특별한 처리가 필요 없으나, 하나의 버스트의 채널 추정이 완료된 이후에 다음에 버퍼링된 버스트는 현재 처리되는 버스트의 디코딩이 완료되기 전에는 디코딩이 진행될 수 없으므로 수신기에서 수신된 데이터를 처리하는 전체적인 처리 속도가 저하되는 문제점이 있다.
즉, 앞서 설명한 본 발명이 적용되는 광대역 무선 통신 시스템의 이동단말에서 버스트를 처리 방식은 다음의 문제점을 가지고 있다.
1. 하나의 버스트가 처리 완료되기 전에 다음 버스트 처리로 진행할 수 없으므로, 수신된 버스트들을 모두 버퍼링할 수 있는 용량이 큰 채널 추정 버퍼가 필요하다.
2. 하나의 버스트에 대해 모두 채널 추정(Channel estimation) 처리가 종료될 때까지 데이터 디코딩(decoding)을 진행할 수 없으므로 수신된 데이터에 대한 처리 속도가 저하된다.
3. 데이터 처리 속도를 높이기 위해 많은 수의 디코더가 필요하다.
4. 채널 추정 버퍼에서 데이터를 읽기 위한 제어가 복잡해진다.
이하의 제2 실시 예에서는 802.16e를 기반으로 하는 광대역 무선 통신 시스템의 이동단말 모뎀에서 수신 데이터를 효율적으로 처리하기 위한 수신 데이터 처리부의 구성 및 처리방식을 제안한다.
본 발명의 제2 실시 예를 개략적으로 설명하면 다음과 같다. 이하에서 설명할 본 발명의 제2 실시 예는 상기 도 9내지 도 11에서 이미 설명한 바와 같이 채널 추정버퍼(900a)가 심볼 단위로 기지국으로부터 데이터들을 수신함으로 버스트 단위가 아닌 버스트의 일부가 존재하는 심볼 단위로 복호를 수행하게 제어함으로써 상기에서 언급한 바와 같이 버스트에 대한 버퍼링 및 채널 추정이 끝날 때까지 디코딩 시작을 지연시킬 필요가 없게 된다.
도 12는 본 발명의 제2 실시 예에 따른 광대역 무선 통신 시스템에서 수신된 데이터를 복호하기 위한 수신 데이터 디코딩 파트(Peceving Data Decoding Part)(1200)와 그 주변 장치의 블록 구성도이다. 즉, 본 발명의 제2 실시 예에 따른 수신 데이터 처리부의 블록 구성도이다. 본 발명의 제2 실시 예에서는 심볼 스케줄러(1202)의 제어에 의해 MAP 디코더(1214)가 FCH와 DL-MAP에 대해서는 본 발명의 제1 실시 예에서 설명한 도 7과 도 8과 같이 디코딩을 완료한 것으로 가정한다. 따라서 심볼 스케줄러(1202)는 채널 추정단(1218)에 버퍼링된 버스트들의 데이터 위치등에 대한 정보를 알 수 있다.
그리고 채널 추정단(1218)으로 버스트(FFT 데이터)가 수신되게 되면, 채널 추정단(1218)에서는 수신된 버스트들에 대해 심볼 단위로 버퍼링을 수행한다. 이때 채널 추정단(1218)내의 채널 추정 버퍼에는 버스트가 아래의 도 13과 같은 형태로 버퍼링되게 된다. 도 13은 본 발명의 제2 실시 예에 따른 광대역 무선 통신 시스템에서 사용되는 버스트가 조각(Concatenation)단위로 분할되는 것을 보여주는 도면이다.
IEEE 802.16e와 같은 광대역 무선 통신 시스템의 기지국에서는 데이터를 심볼 단위로 전송하고, 상기 심볼 단위로 전송할 버스트를 소정 크기의 단위(Concatenation)로 분할하여 생성하게 된다.
즉, 도 13에서는 본 발명의 이해를 돕기 위해 하나의 버스트(1300)가 14개의 조각(Concatenation)으로 구성되어 있음을 예로서 도시하고 있다. 그리고, 14개의 조각(Concatenation)에는 1 내지 14까지 각각 식별자인 ID(Identifier)가 부여된다. 본 발명의 제2 실시 예에서는 상기 14개 각각을 데이터 조각(Concatenation)이라 칭하기로 하며, 상기 각 데이터 조각의 식별자인 1 내지 14를 버스트 파셜 ID(Burst Partial ID)라 칭하기로 한다. 본 발명의 제2 실시 예에서 사용하는 concatenation 이라는 용어는 와이브로 표준 문서 IEEE 802.16e의 8.4.9절에 기고되어 있다. 상기 IEEE 802.16e의 표준 문서에는 기지국이 전송할 프레임을 구성하는 버스트들의 버스트 크기(Burst Size)들과 QPSK(Quadrature Phase Shift Keying, QAM(Quadrature Amplitude Modulation)과 같은 변조 방식에 따라 데이터 조각(Concatenation)의 크기와 개수를 결정하여 전송하는 것이 개시되어 있다.
IEEE 802.16e 와 같은 와이브로 시스템의 송신단에서는 48개의 서브캐리어들이 하나의 슬롯을 구성하게 되며, 여러 개의 슬롯들이 모여 하나의 데이터 조 각(concatenation)을 구성하게 된다. 그리고, 송신단에서는 슬롯 단위로 반복하여 전송하게 된다. 따라서 본 발명의 제2 실시 예에서는 와이브로 시스템의 수신단의 채널 추정단에서는 심볼 단위로 데이터를 버퍼링하고, 상기 버퍼링된 데이터들을 수신 데이터 디코팅 파트(1200)는 슬롯 단위로 데이터를 읽어오고, 슬롯 단위의 데이터가 조각 단위가 되면, 조각 단위로 디코딩을 수행하는 것을 기술할 것이다.
아울러 본 발명의 제2 실시 예는 와이브로 시스템에 적용되는 것으로 설명하지만, 본 발명이 와이브로 시스템에만 적용되는 것은 아니며, 와이브로 시스템과 같이 버스트를 심볼 단위마다 소정의 크기로 나누어 전송하는 광대역 무선 통신 시스템에는 모두 적용될 수 있을 것이다.
도 12를 참조하면, 본 발명의 제2 실시 예에 따른 와이브로 시스템에서 사용되는 수신기의 모뎀에 구비되는 수신 데이터 처리부를 도시한 것으로서, 수신 데이터 처리부는 채널 추정단(1218)과 수신 데이터 디코딩 파트(1200)를 포함한다.
도 12에서 수신 데이터 디코딩 파트(1200)의 전단에서 데이터를 처리하는 채널 추정단(1218)에서 채널에 대한 추정을 완료한 후 수신된 슬롯 단위의 데이터를 내부의 채널 추정 버퍼에 버퍼링하면, 수신 데이터 디코딩 파트(1200)의 심볼 스케줄러(1202)에서 채널 추정단(1218) 내부의 채널 추정 버퍼를 읽기 위한 제어 신호를 채널 추정단(1218)으로 내보낸다.
이때는 이미 FCH, DL-MAP의 디코딩이 수행된 이후이므로, 심볼 스케줄러(1202)가 채널 추정 버퍼에 버퍼링된 버스트의 위치 및 크기 정보와 같은 버스트 정보(Information) 등을 알고 있다. 따라서, 본 발명의 제2 실시 예와 같이 심볼 스케줄러(1202)는 채널 추정단(1218)의 채널 추정 버퍼로부터 버퍼링된 버스트가 슬롯 단위로 슬롯 컴바이너(combiner)(1204)로 출력될 때 상기 버퍼링된 버스트의 ID 및 버스트 파셜 ID의 정보도 같이 슬롯 컴바이너(1204)로 전송하게 된다. 본 발명의 제2 실시 예에서 심볼 스케줄러(1202)는 수신 데이터 디코딩 파트(1200)내 내부 블록들에 대해 전반적인 제어를 수행한다. 또한, 복수의 버스트들로 구성된 한 프레임의 데이터에 대한 제어 정보(DL-MAP, FCH)들로부터 상기 프레임을 구성하는 버스트들의 버스트 크기들과, 상기 프레임에 적용된 변조 방식 정보를 추출하고, 상기 버스틀을 식별하기 위한 버스트 식별자(ID)들을 부여하고, 상기 버스트 크기들과 상기 변조 방식 정보에 따른 조각 크기를 갖는 데이터 조각들에 버스트 파셜 식별자(ID)들을 부여한다.
그리고 슬롯 컴바이너(1204)는 상기 채널 추정단(1218)으로부터 출력된 슬롯 단위로 반복된 데이터를 컴바인하여 LLR 디매퍼(1206)로 출력한다. 그리고, 컴바인된 데이터와 컴바인된 데이터에 해당하는 버스트 ID와 버스트 파셜 ID를 각각 출력한다.
슬롯 컴바이너(Slot Combiner)(1204)는 데이터가 슬롯 단위로 반복되어 전송되었을 때 (와이브로 규격에서는 슬롯 단위 반복이 1, 2, 4, 6번 단위로 수행될 수 있다.) 슬롯 단위 반복을 컴바인(Combine)하는 블록이다.
본 발명의 제2 실시 예에서 슬롯 컴바이너(1204)는 입력된 데이터를 컴바인하고, 컴바인된 데이터(combined data)를 LLR 디매퍼(1206)로 전송한다. 그리고, LLR 디매퍼(1206)는 슬롯 컴바이너(1204)에서 컴바인된 데이터를 LLR로 변환하고, LLR은 디코딩 부(Decoding Unit)(1210)로 전달된다. 또한 슬롯 컴바이너(1204)는 컴바인된 데이터와 컴바인된 데이터의 버스트 ID와 버스트 파셜 ID도 LLR 디매퍼(1206)를 통해 디코딩 부(1210)로 전송한다.
이때, LLR 디매퍼(1206)는 슬롯 컴바이너(1204)로부터 출력된 데이터들 중 HARQ 데이터일 경우에는 HARQ 컴바이너(Combiner)(1208)로 전송하고, HARQ 컴바이너(1208)는 기존의 HARQ 데이터에 새로운 HARQ 데이터를 컴바인하여 출력한다. 도 12에서 슬롯 컴바이너(1204)와 디코딩 부(1210) 사이에 참조번호 1220인 점선이 HARQ 데이터가 아닌 노멀 데이터의 전달 경로이며, 참조번호 1222인 점선이 HARQ 데이터의 전달 경로이다. 여기서 HARQ 컴바이너(1208)가 수신된 HARQ 데이터에 대해 컴바인을 수행할지 여부는 심볼 스케줄러(1202)로부터 수신한 HARQ 지시자를 통해 알 수 있게 된다.
즉, 슬롯 컴바이너(1204)는 슬롯 단위로 반복되어 컴바인된 데이터를 LLR 디매퍼(1206)로 출력하며, LLR 디매퍼(1206)는 상기 컴바인된 데이터들이 하나의 데이터 조각 크기가 될 때까지 저장하고 있는다. 그리고, LLR 디매퍼(1206)는 상기 컴바인된 데이터들이 하나의 데이터 조각 크기가 되면, 디코딩부(1210)로 출력한다.
예컨대 하나의 데이터 조각이 3개의 슬롯으로 구성되어 있고, 2번 반복(Repetition)되어 있다면, 슬롯 컴바이너(1204)는 상기 채널 추정단(1218)로부터 6개의 슬롯을 읽어 3번 repetition combining 하여 LLR 디매퍼(1206)로 출력하고, LLR 디매퍼(1206)는 3 슬롯의 크기만큼 입력되면 디코딩부(1210)로 출력한다.
그리고, 디코딩 부(1210)에서는 LLR 디매퍼(1206)로부터 출력된 LLR 값을 디코딩하여 원래의 데이터 조각으로 복원한 후 복원된 데이터 조각과 복원된 데이터 조각의 버스트 ID와 버스트 파셜 ID를 메모리부(1216)로 전송하고, 버스트 메모리부(1216)는 수신된 데이터 조각을 송신단에서 생성했던 원래 순서대로 메모리에 저장한다. 이때 디코딩 부(1210)는 데이터 조각 단위로 디코딩을 수행한다. 즉, 프레임에 포함되는 한 슬롯의 수신 데이터를 상기 조각 크기들에 따른 데이터 조각들로 구분하여 디코딩한다. 여기서 디코딩 부(1210)는 CTC 및 CC 디코더가 포함될 수 있다.
도 12에는 한 개의 디코더만을 도시하였지만, 수신단에서 데이터 처리에 필요한 속도에 따라 복수 개의 디코더들로 구성될 수 있다. 본 발명의 제2 실시 예에서는 심볼 단위로 데이터를 처리하기 때문에 여러 개의 데이터 버스트가 심볼에 할당된 형태로 버스트 메모리부(1216)로 전달된다. 그리고 버스트 메모리부(1216)는 디코딩 부(1210)로부터 HARQ 데이터가 아닌 노멀(normal)데이터가 입력될 경우 로맥(Low MAC)(1230)으로 노멀 데이터를 전송하여 상위 계층으로 전송하게 한다.
또한, 버스트의 조각(concatenation) 데이터의 크기가 다름으로 디코딩 부(1210)의 처리 속도가 각각 달라지며, 이로 인하여 버스트 메모리부(1216)에 복호된 데이터가 전달되는 순서도 불규칙하다. 따라서 버스트 메모리부(1216)에서는 이런 불규칙한 순서를 원래 버스트 데이터 순서로 정렬하여 저장한다.
본 발명의 제2 실시 예에 따른 버스트 메모리부(1216)는 버스트 메모리 제어기(Burst memory controller)(1216a)와 버스트 메모리(1216b)로 구성되며, 버스트 메모리(1216b)에 데이터를 저장하고, 버스트 메모리(1216b)에 대한 접속 등의 제어 수행은 버스트 메모리 제어기(1216a)가 수행하게 되며, 버스트 메모리 제어기(1216a)와 버스트 메모리(1216b)에 대한 자세한 설명은 후술한 도 16과 도 17을 참조하여 설명하기로 한다.
그리고 버스트 메모리부(1216)는 디코딩 부(1210)에 의해 복호된 입력 데이터가 HARQ 데이터일 경우 HARQ 제어기(1212)로 데이터를 전송하여 HARQ 데이터 처리를 수행하도록 한다.
HARQ 제어기(1212)는 HARQ 데이터에 대한 처리를 수행하며, 심볼 스케줄러(1202)로부터 수신한 HARQ 정보(HARQ Information)를 근거로 버스트 메모리부(1216)로부터 읽어온 HARQ 데이터에 대해 컴바인(Combine)을 수행할 것인지 아니면, 단순히 저장할 것인지, 이번에 수신된 HARQ 데이터를 무시할 것인지에 대한 결정을 수행한다. 상기 결정을 통해 HARQ 제어기(1212)는 HARQ 컴바이너(1208)의 동작을 제어한다. 그리고, HARQ 제어기(1212)는 버스트 메모리부(1216)로부터 읽은 HARQ 데이터들에 대해 순환 중복 검사(Cyclic Redundancy Check : CRC)를 수행하여 그에 대한 결과인 ACK/NACK를 심볼 스케줄러(1202)로 전송한다. 도 12에서 심볼 스케줄러(1202)와 HARQ 제어기(1212) 사이의 HARQ 정보(HARQ information)는 HARQ 제어기(1212)가 CRC 검사를 수행하기 위해 심볼 스케줄러(1202)가 셋팅하는 정보들(버스트 크기(burst size) 정보 등)과 CRC 검사결과 발생한 ACK 또는 NACK과, 재전송(retransmission)이나 컴바이닝(combining)을 수행할지 말지에 대한 정보가 포함된다.
이하에서 본 발명의 제2 실시 예에서는 수신 데이터 디코딩 파트(1200)의 블록 구성들 중 특히 심볼 스케줄러(1202)에서 심볼 단위로 데이터를 처리하기 위한 프로세스와, HARQ 컴바이너(1208) 및 HARQ 제어기(1212)를 포함한 구성 및 메모리부(1216)의 구조 및 방법을 제안한다.
채널 추정단(1218)은 한 심볼에 대한 채널 추정이 완료되면 처리된 값을 내부의 채널 추정 버퍼에 저장하고 수신 데이터 디코딩 파트(1200)의 심볼 스케줄러(1202)로 한 심볼 처리가 완료되었음을 알리는 신호를 발생시킨다.
한 심볼 채널 추정이 완료되면 수신 데이터 디코딩 파트(1200)에서 동작을 시작하는데, 전체 동작 제어는 심볼 스케줄러(1202)에서 수행한다.
심볼 스케줄러(1202)는 앞서 도 4에서 설명한 바와 같이 크게, FCH 스케줄러, DL-MAP 스케줄러, 초기화 스케줄러, 노멀 스케줄러를 포함하여 구성된다.
FCH 및 DL-MAP은 데이터 할당이 1-D(Dimension) 형태로 되어 있으므로, 본 발명의 제2 실시 예에서는 디코딩 방식을 설명하지는 않는다. DL-MAP 디코딩 처리가 완료되면, 앞서 설명한 바와 같이 MAP 디코더(1214)에서 전체 수신 심볼에서 데이터 할당 구성이 어떻게 되어있는지 파악하여 비트맵을 구성한다.
그리고 비트맵이 완료되면 심볼 스케줄러(1202)가 데이터를 디코딩하기 위한 제어를 실시한다.
본 발명의 제2 실시 예에 따라 데이터 제어를 위한 심볼 스케줄러(1202)의 순서도는 아래의 도 14와 같다.
도 14는 본 발명의 제2 실시 예에 따라 심볼 스케줄러(1202)가 데이터를 디 코딩하기 위한 동작 흐름도이다. 도 14는 앞서 도 3에서 설명한 노멀 스케줄러에서 수행된다. 1400단계에서 심볼 스케줄러(1202)는 아이들 상태로 동작하다가 1402단계에서 MAP 디코더(1214)에서 DL-MAP/FCH 디코딩이 완료되었는지 검사한다.
상기 1402단계에서 DLMAP/FCH 디코딩이 완료되었다면, 생성된 비트맵(Bitmap)에 따라 심볼 스케줄러(1202)는 수신 데이터 디코딩 파트(1200)의 각 블록들을 제어한다.
1404단계에서 심볼 스케줄러(1202)는 채널 추정단(1218)내의 채널 추정단 버퍼(Channel Estimator Buffer)에 하나 이상의 데이터 조각(Concatenation)이 버퍼링되어 있는지 검사한다.
그리고 1406단계에서 심볼 스케줄러(1202)는 채널 추정단(1218)으로부터 한 심볼에 대한 채널 추정이 완료되었다는 신호를 받으면 수신 데이터 디코딩 파트((1200)에 대한 제어동작을 수행하게 된다.
즉, 1406단계에서 심볼 스케줄러(1202)는 하나의 심볼에 적어도 하나 이상의 데이터 조각이 버퍼링 되어있다면, 1408단계로 진행하여 디코딩 부(1210)에서 데이터를 처리할 수 있는 상태인지 검사한다. 즉, 1408단계에서 심볼 스케줄러(1202)는 디코딩 부(1210)가 사용 가능한지 여부를 검사한다.
이때, 디코딩 부(1210)에서 데이터를 처리할 수 없는 경우는 다음과 같다.
1. 디코딩 부(1210)의 모든 사용 가능한 디코더가 동작 중이어서 다음 데이터를 처리할 수 없는 상태.
2. 모든 디코더가 처리 완료되었으나 버스트 메모리부(1216)에서 데이터를 읽어갈 수 없는 상태(디코딩 부(1210)의 다음 블록으로 데이터를 전송 중이거나, 다른 형태의 디코더(CTC 디코더 또는 CC 디코더)에서 데이터를 읽고 있는 중)
위 2 가지 조건들 중 어느 하나라도 해당되면 그 조건이 해제될 때까지 대기한다. 그 조건이 해제되면 다음 단계인 1410단계로 진행한다.
상기 1408단계의 검사 후에 현재 디코딩 부(1210) 에서 데이터를 처리할 수 있으면 1410단계에서 해당 심볼에서 하나의 슬롯을 검사하여 슬롯에 데이터가 있는지 여부를 검사한다.
반면, 상기 1406단계에서 심볼 스케줄러(1202)의 검사결과 채널 추정단(1218)의 내부 채널 추정단 버퍼(channel estimator buffer)에 데이터 조각이 버퍼링되어 있지 않다면, 심볼 스케줄러(1202)는 상기 1404단계로 진행하여 채널 추정단 버퍼를 검사하는 동작으로 전환하게 된다.
IEEE 802.16e의 규격에 따르면 데이터는 슬롯 단위로 할당되므로, 데이터 처리는 슬롯 단위로 되어야 한다. 따라서 심볼 스케줄러(1202)는 1410단계의 검사결과 슬롯에 적어도 하나의 데이터 조각이 있다면, 1412단계에서 비트맵을 검사하여 해당 슬롯에 처리할 데이터가 수신기에 해당하는 데이터 즉, 심볼 스케줄러(1202)가 처리해야할 데이터라면, 1414단계로 진행하여 수신 데이터 디코딩 파트(1200)가 상기 해당 슬롯의 데이터 조각을 읽어서 상기 읽은 데이터를 처리하게 하고, 그렇지 않으면 1418단계로 진행하여 그 슬롯을 건너뛴다.
그리고 1414단계에서 심볼 스케줄러(1202)는 상기 해당 슬롯에 대한 슬롯 컴 바인 및 LLR 디매핑을 수행하기 위한 정보를 설정한다. 이때 버스트 메모리부(1216)에서 데이터를 정렬할 수 있도록 심볼 스케줄러(1202)는 버스트 ID 및 버스트 파셜(partial) ID를 생성하여 버스트 메모리부(1216)로 출력한다. 상기 버스트 메모리부(1216)에서 상기 심볼 스케줄러(1202)로부터 수신한 버스트 ID와 버스트 파셜 ID를 통해 데이터 조각을 재정렬하는 방법은 후술할 도 16 내지 도 17을 참조하여 설명하기로 한다.
상기 1414단계에서 심볼 스케줄러(1202)는 데이터 처리가 완료되면, 채널 추정단(1218)의 채널 추정 버퍼에서 하나의 슬롯에 대한 데이터 조각을 읽는다. 1414단계에서 한 슬롯에 대해 읽기 동작이 완료되면, 심볼 스케줄러(1202)는 1416단계로 진행하여 지금 읽은 슬롯이 해당 심볼에서 마지막 슬롯인지 확인하고, 마지막 슬롯인 경우에는 1420단계로 진행하여 다음번 심볼을 읽기 위한 동작을 취하게 된다. 즉, 채널 추정단 버퍼에 버퍼링된 심볼들 중 이미 검사한 심볼의 다음 심볼을 검사하기 위해 심볼 인덱스를 증가시키는 동작을 수행한다. 반면, 상기 1416단계에서 마지막 슬롯이 아니라면, 심볼 스케줄러(1202)는 상기 1404단계로 진행하여 채널 추정단(1218)에 새로운 데이터 조각이 입력되는지 검사한다.
그리고 1422단계에서 심볼 스케줄러(1202)는 모든 심볼 또는 할당된 모든 데이터 버스트 처리가 완료되었는지 검사하고, 검사결과 모든 심볼/모든 버스트에 대한 처리가 완료되지 못했다면, 상기 1404단계로 진행하여 채널 추정단(1218)의 채널 추정 버퍼에 데이터 조각이 입력되었는지를 검사한다. 반면, 상기 1422단계의 검사결과 상기 1402단계에서 디코딩된 DL-MAP과 FCH에 해당하는 프레임의 버스트/ 심볼들에 대해 처리가 완료되었다면, 다시 상기 1400단계로 진행한다.
상기 도 14에서 설명한 바와 같이 심볼 스케줄러(1202)의 제어에 따라 채널 추정단(1218)의 채널 추정 버퍼로부터 출력된 데이터는 슬롯컴바이너(1204)로 입력된다.
슬롯 컴바이너(1204)를 거쳐 슬롯 단위로 반복된 데이터가 컴바인(Combine) 되면, LLR 디매퍼(1206)를 통해 출력된 LLR을 사용하여 디코딩 부(1210)가 데이터 디코딩을 수행할 수 있다. 이때 데이터의 처리 속도를 높이기 위해 디코딩 부(1210)의 개수는 복수 개가 될 수 있다. 상기 슬롯 컴바이너(1204)는 상기 채널 추정단(1218)로부터 출력된 슬롯 단위의 데이터 조각들과 버스트 ID, 버스트 파셜 ID를 출력한다.
디코딩 부(1210)내에 구비된 복수 개의 디코더들에서 나오는 출력은 데이터 버스트 데이터 조각(Concatenation) 크기에 따라 불규칙적으로 나오므로, 디코딩된 버스트 데이터 조각(Concatenation)들을 순서대로 정렬하여 원래의 데이터 버스트로 만드는 방법이 필요하다.
디코딩 부(1210)의 출력을 병합하여 원래 송신단에서 생성되었던 데이터 버스트로 다시 정렬하는 블록이 버스트 메모리부(1216)이다. 그럼 이하에서 도 12를 참조하여 본 발명의 제2 실시 예에 따른 버스트 메모리부(1216)의 버스트 메모리 제어기(1216a)의 동작 흐름을 살펴보기로 한다.
도 12에 도시된 구조와 같이 버스트 메모리부(1216)는 디코딩 부(1210)의 출력부에 연결되어 디코딩 부(1210)로부터 출력된 데이터 조각들을 정렬한다. 버스트 메모리부(1216)의 버스트 메모리 제어기(1216a)가 버스트 메모리(1216b)로 입력된 데이터를 정렬하기 위해서 다음의 3가지 정보가 필요하다.
a. 데이터 버스트의 크기(burst size)
b. 데이터 번호(버스트 ID)
c. 데이터 버스트 concatenation 순서 정보(burst partial ID)
데이터 버스트의 크기 정보, 버스트 ID, 버스트 파셜 ID는 도 12에서 심볼 스케줄러(1202)에서 버스트 메모리부(1216)로 전달되는 버스트 정보(Burst information)에 포함되어 있다. 즉, 버스트 정보 셋팅(Burst information setting) 신호를 통해 심볼 스케줄러(1202)는 버스트 메모리부(1216)내의 버스트 영역을 지정한다.
심볼 스케줄러(1202)에서 상기 버스트 정보를 설정하는 과정은 아래의 도 15와 같다.
도 15는 본 발명의 제2 실시 예에 따른 심볼 스케줄러(1202)에서 버스트 정보를 설정하기 위한 동작 흐름도이다. 도 15는 앞서 설명한 도 3의 초기화 스케줄러에서 수행된다.
도 15에서와 같이 심볼 스케줄러(1202)는 1500단계의 아이들 상태에서 1502단계로 진행하여 FCH 디코딩이 완료되었는지를 검사한다. 상기 1502단계의 검사결과 FCH 디코딩이 완료되었다면, 심볼 스케줄러(1202)는 DL-MAP 크기를 확인할 수 있고, 1504 단계에서 상기 DL-MAP 크기를 이용하여 DL-MAP 디코딩을 수행한다. 그리고, 심볼 스케줄러(1202)는 1506단계에서 DL-MAP 디코딩이 완료되었는지를 검사 한다. 상기 DL-MAP 디코딩을 수행함으로서 심볼 스케줄러(1202)는 각 버스트에 대한 크기 정보를 파악할 수 있으며, 이를 이용하여 1508단계에서 버스트 정보를 생성한다. 여기서 버스트 정보(Burst Information)는 버스트 크기(burst size), 버스트 ID, 버스트 파셜 ID를 포함한다. 즉, 본 발명의 제2 실시 예에 따른 심볼 스케줄러(1202)는 복수의 버스트들로 구성된 한 프레임의 데이터에 대한 제어 정보들로부터 상기 프레임을 구성하는 버스트들의 버스트 크기들과 상기 프레임에 적용된 변조 방식 정보를 추출하고, 상기 버스트들을 식별하기 위한 버스트 식별자들을 수신된 순서에 따라 부여하고, 상기 버스트 각 크기들과 상기 변조 방식 정보에 따른 조각 크기들을 갖는 데이터 조각들에 버스트 파셜 식별자들을 부여한다.
따라서 심볼 스케줄러(1202)는 1510단계에서 이렇게 파악된 버스트 크기 정보를 버스트 메모리부(1216)로 전송하여 버스트 메모리부(1216)의 버스트 메모리 제어기(1216a)로 하여금 해당 버스트 ID에 해당하는 버스트 크기만큼 버스트 메모리(1216b)에 버스트 영역을 할당하도록 한다. 그리고, 심볼 스케줄러(1202)는 1512단계로 진행하여 모든 버스트에 대해 버스트 정보가 설정되었는지 검사하고, 모든 버스트에 대해 버스트 정보가 설정되지 않았다면, 다시 1510단계로 진행하여 나머지 버스트들에 대한 버스트 정보를 설정한다. 반면, 상기 1512단계에서 채널 추정단 버퍼에 버퍼링된 모든 버스트들에 대한 버스트 정보가 생성되었다면, 심볼 스케줄러(1202)는 상기 1500단계의 아이들 상태로 천이한다. 상기 심볼 스케줄러(1202)는 상기 버스트 정보를 매 프레임마다 설정하게 된다.
버스트 메모리부(1216)는 수신 데이터 디코딩 파트(1200)에서 처리할 수 있 는 데이터의 최대 크기를 저장할 수 있는 크기로 구현된다. 보통 버스트 메모리부(1216)의 버스트 메모리(1216b)는 하나의 메모리로 구성이 되는데, 디코딩 부(1210)에 구비된 여러 개의 디코더로부터 데이터를 입력받고, 상기 디코딩 부(1210)로부터 출력되는 데이터 조각(concatenation)은 송신단에서 전송되었던 순서대로 입력되는 것이 아니므로, 데이터를 정렬할 수 있는 기능이 필요하다.
따라서 버스트 메모리 제어기(1216a)가 버스트 메모리(1216b)에 디코딩 부(1210)로부터 출력된 데이터 조각을 저장하기 위해서는 각 버스트의 크기만큼의 메모리 상의 위치정보를 받아 버스트 메모리(1216b)에 버스트 ID에 해당하는 버스트 크기만큼의 영역을 설정해야 하는데, 그 형태가 아래의 도 16과 같다. 즉, 본 발명의 제2 실시 예에 따른 버스트 메모리부 제어부(1216a)는 상기 버스트 식별자들에 따라 상기 각 데이터 조각들을 저장하기위한 버스트 영역들을 버스트 메모리(1216b)에 구성하고, 상기 디코딩 부(1210)에서 각각 디코딩된 데이터 조각에 해당하는 버스트 식별자와 버스트 파셜 식별자에 따라 상기 디코딩된 데이터 조각들을 순서대로 버스트 메모리(1216b)에 저장한다.
도 16은 본 발명의 제2 실시 예에 따른 버스트 메모리(1216b) 블록의 구성도이다.
도 16과 같이 본 발명의 제2 실시 예에서는 하나의 버스트 메모리(1216b)에 심볼 스케줄러(1202)로부터 수신한 버스트 정보를 기반으로 각각의 버스트들에 대한 오프셋이 설정된다. 설정된 오프셋은 버스트 메모리(1216b)에 저장될 데이터 버스트의 저장 또는 읽는 위치가 된다. 즉, 도 16을 참조하면, 버스트 0, 1, 2, 3이 각각 버스트 0 영역(1600), 버스트 1 영역(1602), 버스트 2 영역(1604)에, 버스트 3 영역(1606)에 저장된다.
버스트 메모리(1216b)에서 디코딩 부(1210)로부터 데이터 버스트를 받아 저장하는 순서는 다음과 같다.
a. 디코딩 부(1210)는 디코딩이 완료되었음을 알리는 디코딩 완료 신호를 심볼 스케줄러(1202)로 전달함과 동시에 디코딩된 데이터 조각이 포함되는 버스트의 버스트 ID 및 상기 데이터 조각에 해당하는 버스트 파셜 ID를 버스트 메모리부(1216)로 전달.
b. 버스트 메모리부(1216)의 버스트 메모리 제어기(1216a)는 상기 디코딩 완료 신호와 버스트 ID 및 버스트 파셜 ID를 수신한 뒤 상기 디코딩 부(1210)로부터 출력된 버스트 ID를 검사하고, 상기 버스트 ID에 해당하는 버스트 파셜(partial) ID를 검색한다.
그리고, 버스트 메모리부(1216)의 버스트 메모리 제어기(1216a)는 상기 디코딩 부(1210)로부터 출력한 데이터 조각에 해당하는 버스트 파셜 ID와 버스트 메모리(1216b)에 저장될 버스트 파셜 ID와 비교하여 일치하는 버스트 파셜 ID에 해당하는 데이터 조각을 버스트 메모리(1216b)에 저장한다. 즉, 버스트 메모리 제어기(1216a)는 버스트 메모리(1216b)에 이미 저장된 데이터 조각의 버스트 ID와 버스트 파셜 ID들을 알 고 있으므로, 이미 저장된 데이터 조각의 버스트 파셜 ID 바로 다음 데이터 조각의 버스트 파셜 ID와 디코딩 부(1210)로부터 출력된 데이터 조각들의 버스트 파셜 ID들을 비교하여 일치하는 버스트 파셜 ID에 해당하는 데이터 조 각을 버스트 메모리(1216b)에 저장한다.
만약 버스트 메모리(1216b)에 저장된 데이터 조각이 없다면, 버스트를 구성하는 데이터 조각들 중 제일 처음에 위치하는 버스트 파셜 ID가 "1"인 데이터 조각을 저장할 것이다.
이렇게 버스트 메모리 제어기(1216a)가 버스트 파셜 ID를 비교하는 이유는, 현재 버스트 메모리(1216b)에는 특정 버스트 ID의 버스트 파셜 ID에 해당하는 데이터 조각이 저장되어 있으므로 그 데이터 조각 이후의 버스트 파셜 ID를 갖는 데이터 조각만을 저장하기 위해서이다. 따라서 상기 버스트 메모리 제어기(1202)는 앞으로 저장될 데이터 조각의 버스트 파셜 ID와 디코딩 부(1210)로부터 출력된 복호 데이터 조각의 버스트 파셜 ID를 비교하게 된다.
그러므로 버스트 메모리 제어기(1216a)는 디코딩 부(1210)로부터 수신한 버스트 ID와 버스트 파셜 ID가 이미 저장하고 있는 동일한 버스트 ID를 갖는 버스트 파셜 ID 와 같으면 그 데이터를 수신한다. 그렇지 않고 다른 값이 입력되었다면 LLR 디매퍼(1206)에서 디코딩 부(1210)로 입력된 데이터 조각의 길이가 각각 다름으로 인하여 디코딩 순서가 바뀌어 출력된 것이므로, 그 데이터를 수신하지 않고, 디코딩 부(1210)의 다른 디코더 출력을 검사하여 이미 저장하고 있는 버스트 파셜 ID 바로 다음에 해당하는 버스트 파셜 ID의 데이터 조각을 찾는다.
c. 버스트 메모리 제어기(1216a)는 디코딩 부(1210)로부터 출력되는 데이터 조각의 버스트 ID를 확인하여 버스트 메모리(1216b)에 상기 버스트 ID에 해당하는 버스트 영역을 확인하고, 상기 데이터 조각의 버스트 파셜 ID를 확인하여 해당 버 스트 영역에 순차적으로 저장한다. 즉, 이미 버스트 메모리(1216b)에 이미 저장된 데이터 조각에 해당하는 버스트 ID의 버스트 파셜 ID 바로 다음의 버스트 파셜 ID와 동일한 버스트 파셜 ID를 갖는 데이터 조각이 디코딩 부(1210)로부터 전송되었다면 버스트 메모리 제어기(1216a)는 상기 디코딩 부(1210)로부터 출력된 데이터 조각을 버스트 메모리(1216b)에 해당 버스트 ID의 영역에 해당하는 메모리 옵셋을 고려하여 상기 데이터 조각을 저장한다.
이때 메모리 옵셋(Memory offset)의 초기 값은 심볼 스케줄러(1202)에서 지정한 값이다. 그리고, 조각(concatenation) 데이터가 버스트 메모리(1216b)에 저장될 때마다 저장되는 데이터 조각 크기 만큼 버스트 메모리(1216b)의 어드레스가 증가된다. 버스트 메모리 제어기(1216a)는 메모리 옵셋을 각 버스트 ID별로 따로 관리하며, 데이터 조각이 저장되면 해당 버스트 ID의 데이터 조각이 몇 개가 저장되어 있는지를 나타내기 위한 버스트 파셜 ID 카운터 값도 하나 증가시킨다.
d. 디코딩 부(1210)내의 여러 개의 디코더들에서 동시에 저장 요청 신호가 발생한 경우에는 버스트 메모리 제어기(1216a)는 동시에 저장 요청된 데이터 조각들 중 버스트 ID와 버스트 파셜 ID를 가지고 버스트 메모리(1216b)에 순차적으로 저장되어야 할 데이터 조각을 선택한다. 하나의 디코더에서 출력된 데이터가 버스트 메모리 제어기(1216a)에 의해 선택되어 저장되는 동안 디코딩 부(1210)의 나머지 디코더들에서는 복호된 데이터를 출력하지 않고 대기 상태로 있게 된다. 버스트 메모리 제어기(1216a)가 디코딩 부(1210)의 디코더에서 출력되는 디코딩된 데이터들 중 저장할 데이터를 선택할 때 고려하는 것은 다음과 같다.
미리 버스트 메모리(1216b)에 저장된 데이터 조각의 버스트 ID와 일치하고, 미리 저장된 데이터 조각의 버스트 파셜 ID 바로 다음 버스트 파셜 ID에 해당하는 데이터 조각
- 디코딩 완료 후 출력되는 저장 요청 신호를 가장 먼저 출력하는 디코더로부터 출력된 데이터 조각
e. 데이터 조각들의 저장이 완료되면 다른 디코더에서 데이터 저장 공간을 효율적으로 사용할 수 있다. 왜냐하면, 버스트 단위로 메모리를 구성하지 않아도 되고, 메모리가 1개로 관리되므로 데이터 path가 단순화 된다. 또한 버스트 크기는 매 프레임마다 변경되므로, 변경되는 크기에 상관없이 하나의 메모리로 관리할 수 있다. 위 설명한 방법이 도 17의 흐름도로 표시되었다.
도 17은 본 발명의 제2 실시 예에 따른 버스트 메모리부(1216)의 버스트 메모리 제어기(1216a)의 동작 흐름도이다.
먼저, 1700단계에서 버스트 메모리 제어기(1216a)는 아이들 상태에서 1702단계로 진행하여 프레임이 시작되었는지를 검사한다. 상기 1702단계에서 프레임의 시작은 도시되지 않은 동기부를 통해 알 수 있다.
1702단계에서 프레임이 시작될 경우, 1704단계에서 버스트 메모리 제어기(1216a)는 디코딩 부(1210)내의 디코더들의 디코딩 진행 상태를 검사한다. 그리고, 1706단계에서 버스트 메모리 제어기(1216a)는 디코딩 부(1210)의 디코더들 중 데이터 조각에 대해 디코딩을 완료하여 데이터 조각의 저장을 요청한 디코더가 있 는지 검사한다. 상기 1706단계에서 디코딩이 완료된 디코더로부터 복호된 데이터 조각에 대해 저장 요청 신호가 있다면, 버스트 메모리 제어기(1216a)는 1708단계로 진행하여 저장 요청된 데이터 조각의 버스트 ID를 확인함으로써 상기 저장 요청된 데이터 조각이 포함되는 버스트를 확인하고 1710단계에서 버스트 파셜 ID를 확인한다.
그리고, 1712단계에서 버스트 메모리 제어기(1216a)는 버스트 메모리(1216b)에 저장될 버스트 파셜 ID와 상기 저장 요청된 데이터 조각의 버스트 파셜 ID가 일치하는지 비교한다. 상기 1712단계의 검사결과 두 개의 버스트 파셜 ID가 일치한다면, 상기 디코더로부터 출력된 데이터 조각은 동일한 버스트에 포함되는 데이터 조각임으로, 버스트 메모리 제어기(1216a)는 1714단계로 진행하여 디코더(1210)로부터 출력된 데이터 조각을 저장한다. 즉, 버스트 메모리 제어기(216a)는 상기 버스트 파셜 ID에 해당하는 영역에 상기 데이터 조각을 저장한다.
1716단계에서 버스트 메모리 제어기(1216a)는 데이터 조각에 대해 디코딩이 완료된 다른 디코더들을 검사하고, 1716단계에서 버스트 메모리 제어기(1216a)는 심볼 스케줄러(1202)로부터 수신한 버스트 ID와 버스트 파셜 ID를 사용하여 한 프레임을 구성하는 총 데이터 조각의 개수를 계산한다. 그리고, 버스트 메모리 제어기(1218a)는 디코딩 부(1210)로부터 출력된 데이터 조각을 버스트 메모리(1216b)에 저장할 때마다 "checking_decoder_number"를 증가시킨다. 그리고, 버스트 메모리 제어기(1216a)는 상기 "checking_decoder_number"가 상기 총 데이터 조각의 개수와 동일하다면, 모든 버스트에 대해 디코딩이 완료되어 저장되었음을 판단한다.
상기 1718단계에서 모든 버스트들을 버스트 메모리(1216b)에 저장하였다면, 상기 1700단계로 진행하여 새로운 프레임이 시작될 때까지 대기하며, 모든 버스트들을 아직 저장하지 못했다면, 다시 상기 1704단계로 진행하여 디코딩 부(1210)에서 디코딩이 완료된 디코더가 있는지 다시 검사하게 된다.
본 발명의 제2 실시 예에서와 같이 디코딩이 완료한 디코더의 유무를 검사하고, 디코더로부터 저장 요청을 받을 경우 저장 요청된 데이터 조각의 버스트 파셜 ID를 검사하여 버스트 메모리부(1216)에 저장할 수 있는 이유는 디코더들도 각각 데이터 조각들 단위로 디코딩을 수행하며, 각각의 데이터 조각들에 대해 심볼 스케줄러(1202)가 할당한 버스트 ID와 버스트 파셜 ID에 대한 정보가 같이 전송되기 때문이다.
도 18은 본 발명의 제2 실시 예에 따른 HARQ 제어기(1212)의 블록 구성도이다.
먼저, 도 18을 설명하기 전에 수신된 데이터가 HARQ 데이터인 경우에는 심볼 스케줄러(1202)에서 수신된 데이터가 포함되는 버스트 ID에 HARQ 데이터라는 것을 표시하여 슬롯 컴바이너(1204)로 전송한다. 표시 방식은 버스트 ID의 최상위 비트에 현재 수신된 데이터가 HARQ 임을 표시함으로써 알 수도 있다. 따라서 HARQ 데이터가 버스트 메모리부(1216)로 전송되면 버스트 메모리부(1216)는 수신된 데이터를 HARQ 제어기(1212)로 전송한다.
버스트 메모리부(1216)로부터 HARQ 제어기(1212)로 출력되는 데이터는 전체 버스트가 아닌 조각 (concatenation)된 데이터이므로, HARQ 제어기(1212)에서는 버 스트를 구성하는 전체 데이터를 받기 전까지는 수신된 데이터에 대한 ACK(Acknowledge)/NACK(Not Acknowledge)을 판별 할 수 없다.
HARQ 제어기(1212)는 수신된 데이터들에 대한 CRC 결과를 가지고 ACK/NACK을 판별하는데, CRC 결과는 HARQ가 적용되는 데이터 버스트를 모두 버스트 메모리부(1216)로부터 읽어야 판별 가능하다. 그러나 하나의 데이터 버스트가 모두 디코딩될 때까지 대기했다가 CRC 결과를 판별하면 HARQ 데이터 처리 속도가 늦어지게 된다.
따라서, HARQ 데이터 처리 속도를 높이기 위해 본 발명의 제2 실시 예에서는 다음의 방식을 사용한다.
a. 심볼 스케줄러(1202)에서 HARQ 데이터 정보를 파악한 후 HARQ 제어기(1212)로 HARQ 데이터의 버스트 파셜 ID, 버스트 ID 및 버스트 크기를 설정한 HARQ 정보를 출력한다.
b. 버스트 메모리부(1216)는 디코더(1210)로부터 디코딩된 HARQ 데이터를 수신하면 HARQ 제어기(1212)로 HARQ 데이터를 전달한다. 이때, 전달되는 데이터는 조각(concatenation)된 데이터이다. 즉, 상기 디코딩 부(1210)에서 디코딩된 데이터 조각이 HARQ가 적용되는 HARQ 버스트에 포함되는 경우, 버스트 메모리 제어기(1216a)는 상기 디코딩된 데이터 조각을 HARQ 제어기(1212)로 출력한다. 그러면, 버스트 메모리부(1216)에서 버스트 파셜 ID에 따라 순서대로 HARQ 제어기(1212)로 출력하고, HARQ 제어기(1212)는 버스트 ID를 확인하여 해당 버스트에 대한 HARQ 동 작을 제어한다.
c. HARQ 제어기(1212)는 버스트 메모리부(1216)로부터 HARQ 데이터를 입력받으면 CRC 계산을 수행하고, 그 결과를 임시 값 저장 버퍼(1804)에 저장한다. 이때, 입력된 데이터는 데이터 조각(concatenation)이다. HARQ 제어기(1212)의 버스트 크기 검사부(Burst Size Checker)(1802)에서는 입력된 데이터 조각의 크기를 계산하여 내부 레지스터에 저장하고, 계산된 데이터 조각의 크기가 이미 버스트 크기 검사부(1802)에 설정된 버스트 크기와 비교하여 버스트 크기와 같은 크기의 데이터 조각들이 입력되었는지 확인한다. 도 18에서 버스트 크기를 검사하는 블록이 0번부터 15번까지 있는 이유는 802.16e의 규격에 하나의 심볼에 최대 16개의 버스트가 할당될 수 있다고 정의되어 있으므로, 16개 이상의 블록은 필요치 않기 때문이다. 물론 실시 경우에 따라 블록의 개수는 변경될 수 있다.
d. 그리고 CRC 검사부(1800)는 버스트 메모리부(1216)로부터 읽은 데이터 조각들의 크기가 심볼 스케줄러(1202)에서 설정된 버스트 크기와 같지 않으면 현재까지 계산된 CRC 계산 결과는 내부의 임시 값 저장 버퍼(intermediate result save buffer)(1804)에 별도로 저장된다. 그리고 다음 데이터를 버스트 메모리부(1216)로부터 읽을 수 있는데, 이때 상기 다음 데이터는 다른 버스트 또는 다음 데이터 조각(concatenation)이 된다.
e. 그리고 다른 버스트의 데이터가 입력되면 CRC 검사부(1800)는 초기화 되고, 기존에 입력된 버스트에 대한 CRC 계산 중간 값이 있다면, CRC 검사부(1800)는 이 값으로 CRC 검사부 내부의 레지스터 값을 설정(초기화)한다.
상기와 같이 CRC 검사부(1800)가 CRC 계산 중간 값으로 내부의 레지스터를 초기화하는 이유는 다음과 같다.
1. 하나의 버스트 데이터가 조각(concatenation)되어 입력.
2. CRC 검사부(1800)는 조각(concatenation) 단위로 CRC 계산을 수행해야 하고, 하나의 CRC 계산기로 여러 개의 버스트(burst)들을 검사해야 하므로, CRC 계산의 중간 값을 저장하였다가 그 결과 값에 해당되는 버스트 ID의 데이터가 입력되면 그 값으로 내부의 레지스터를 초기화하여 CRC 계산을 수행해야함.
CRC 계산 결과의 중간 값을 저장하는 이유는 HARQ 제어기(1212)가 CRC 계산 블록을 공유해서 사용함으로 여러 개의 버스트가 한 프레임에 같이 있는 경우, CRC 계산이 Concatenation 단위로 되기 때문이다. 즉, CRC 계산은 결국 내부 레지스터 상에서 결정되는데, 여러 데이터를 하나의 CRC 계산 블록에서 처리하려면, 위와 같이 중간 계산 값을 저장했다가 같은 버스트 ID의 다음 데이터 조각(Concatenation)이 입력되면, 기존 계산된 값으로 초기화를 해줘야 CRC 계산이 연속적으로 처리된다.
f. HARQ 제어기(1212)는 하나의 버스트 크기만큼의 HARQ 데이터의 CRC 계산이 완료되면 CRC 검사를 마치고, 해당 버스트에 대한 검사 결과를 버스트 스케줄러(1202) 및 각 블록들(예컨대 버스트 메모리(1216) 및 HARQ 컴바이너(1208))에 전송한다.
즉, 본 발명의 제2 실시 예에 따른 HARQ 제어기(1212)는 상기 디코딩 부(1210)에서 디코딩된 데이터 조각이 HARQ가 적용되는 HARQ 버스트에 포함될 경 우, 상기 디코딩된 데이터 조각의 CRC를 계산하고, 상기 HARQ 버스트를 구성하는 모든 데이터 조각들이 디코딩되면, 상기 데이터 조각들에 대한 CRC 계산 값들을 사용하여 상기 HARQ 버스트에 대한 CRC 검사를 수행한다. 그리고, 상기 CRC 검사결과에 따라 상기 HARQ 버스트에 대한 ACK 신호 또는 NACK을 심볼 스케줄러(1202)로 출력한다.
그럼 이하에서 HARQ 제어기(1212)의 구성을 도 18을 참조하여 좀더 상세히 알아보기로 한다.
도 18은 데이터 버스트를 16개(0~15) 까지 지원했을 때의 구성도이다. 위 방식과 같이 HARQ 데이터로 구성된 버스트에 대해 CRC 검사를 진행하면 하나의 버스트가 모두 디코딩될 때까지 대기하지 않아도 되므로 데이터 처리 속도가 빨라진다.
도 18에서 심볼 스케줄러(1202)는 HARQ 제어기(1212)로 버스트 크기(burst size) 정보와 , HARQ 데이터 버스트 ID(HARQ data burst ID)를 전송한다. 그리고 HARQ 제어기(1212)는 버스트 메모리부(1216)로부터 입력된 HARQ 데이터들에 대해 하나의 HARQ 데이터마다 CRC 계산을 하고, HARQ 데이터들이 하나의 버스트 크기와 동일한 크기만큼 입력되면, 상기 계산한 CRC 계산 값으로 전체 버스트에 대해 CRC 결과를 알 수 있으므로 그때까지 수행된 CRC 결과인 ACK/NACK을 심볼 스케줄러(1202)로 전송한다.
그리고 버스트 메모리부(1216)의 버스트 메모리 제어기(1216a)는 디코딩 부(1210)로부터 HARQ 데이터가 입력될 경우 버스트 메모리(1216b)에 저장함과 동시에 HARQ 제어기(1212)로 출력한다. 이때 버스트 메모리 제어기(1216a)는 HARQ 제어 기(1212)로 HARQ 데이터를 전송할 때 HARQ 데이터가 전송되는 것을 알리는 Data enable 신호와 해당 HARQ 데이터가 몇 번째 버스트에 속하는지를 지칭해주는 버스트 ID도 같이 전송한다.
상기 HARQ 제어기(1212)로 전송되는 HARQ 데이터가 HARQ 데이터인지를 지시해주는 정보는 버스트 ID의 1비트를 사용할 수 있다. 그리고 HARQ 제어기(1212)의 CRC 검사부(1800)는 앞서 설명한 바와 같이 입력된 HARQ 데이터에 대해 CRC 계산을 수행한다. 그리고 버스트 크기 검사부(1802)에는 앞서 상술한 바와 같이 각 버스트 ID 별로 버스트 크기를 검사할 블록들이 구현되어 있으며, 각각의 버스크 크기 검사부(1802)는 현재 HARQ 제어기(1212)로 입력된 데이터 조각들의 크기가 해당 ID의 버스트 크기와 다르다면, CRC 검사부(1800)로 하여금 입력된 HARQ 데이터들에 대한 CRC 계산 결과를 임시 값 저장버퍼(1804)에 저장하게 한다.
즉, CRC 검사부(1800)는 현재까지 입력된 HARQ 데이터들에 대한 CRC 계산한 값인 하나의 데이터 조각(Concatenation)마다의 CRC 계산 값을 임시 값 저장 버퍼(1804)에 저장한다. 반면, 입력된 데이터 조각들의 총 크기가 미리 정해진 버스트 크기와 같다면, 입력 버스트 크기 검사부(1802)는 CRC 검사부(1800)로 하여금 해당 버스트에 대한 CRC 검사 결과인 ACK/NACK을 심볼 스케줄러(1202)로 전송하게 한다.
예컨대 하나의 버스트가 3개의 데이터 조각 단위로 구성되었다면, CRC 검사부(1800)는 1번째 데이터 조각에 대한 CRC 계산 결과인 제1 CRC 계산 값을 임시 결과 저장 버퍼(1804)에 저장한다. 그리고 2번째 데이터 조각이 입력될 경우 상기 2 번째 데이터 조각에 대한 CRC 계산 결과인 제2 CRC 계산 값을 임시 결과 저장 버퍼(1804)에 저장한다. 그 후, 하나의 버스트를 구성하는 마지막 3번째 데이터 조각이 입력될 경우, 최종 CRC 계산의 결과를 송신단에서 전송한 CRC 값과 비교하여, 상기 버스트에 대한 데이터 조각ACK 또는 NACK을 판단하게 된다.
도 19는 본 발명의 제2 실시 예에 따른 HARQ 제어기(1212)의 동작 흐름도이다.
1900단계에서 HARQ 제어기(1212)는 아이들 상태에서 대기하다가 1902단계에서 프레임 사이즈가 바뀌었음을 인지하게 되면, HARQ 데이터 크기 및 버스트 정보등과 같은 HARQ 정보를 설정한다.
1904단계에서 HARQ 제어기(1212)는 조각된 HARQ 데이터가 입력될 때까지 대기한다. 1906단계에서 HARQ 제어기(1212)는 HARQ 데이터가 입력되기 시작하면, 1908단계에서 CRC 계산을 수행하고, 1910단계에서 정해진 버스트 크기만큼 해당 버스트의 데이터 조각(Concatenation)들이 모두 입력되었는지 검사한다.
상기 1910단계의 검사결과 해당 버스트 크기만큼의 데이터 조각들이 입력되지 않았다면, HARQ 제어기(1212)는 1912단계로 진행하여 현재까지 계산된 CRC 계산 값을 해당 버스트의 ID의 임시 값 저장 버퍼(immediate result save buffer)(1804)에 저장한다. 반면, 상기 1910단계의 검사결과 정해진 버스트 크기만큼 데이터 조각(Concatenation)들이 모두 입력되었다면, HARQ 제어기(1212)는 1914단계에서 정해진 버스트에 대한 CRC 결과를 심볼 스케줄러(1202)로 전송한다. 그리고, HARQ 제어기(1212)는 1916단계에서 모든 버스트들에 대해 CRC 검사가 완료되었는지 검사하 고, 완료되었다면 다시 상기 1900단계로 진행하여 아이들 상태로 대기한다. 반면, 상기 1916단계의 검사결과 모든 버스트에 대해 CRC 검사가 종료되지 않았다면, HARQ 제어기(1212)는 다시 상기 1904단계로 진행하여 HARQ 데이터 조각이 버스트 메모리부(1216)로부터 입력될 때까지 대기한다.
도 1은 일반적인 광대역 무선 통신 시스템에서 사용하는 프레임 구조를 개략적으로 도시한 도면,
도 2는 일반적인 광대역 무선 통신 시스템에서 데이터 처리를 위한 장치 구조를 개략적으로 도시한 도면,
도 3은 본 발명의 제1 실시 예에 따른 적용되는 광대역 무선 통신 수신기의 수신 데이터 처리부의 블록 구성도,
도 4는 본 발명의 제1 실시 예에 따른 수신 데이터 처리부의 심볼 스케줄러의 블록 구성도,
도 5는 본 발명의 제1 실시 예에 따른 광대역 무선 통신 시스템에서 버스트 테이블의 구성 예를 개략적으로 도시한 도면,
도 6은 본 발명의 제1 실시 예에 따른 광대역 무선 통신 시스템에서 비트맵 테이블의 구성 예를 개략적으로 도시한 도면,
도 7은 본 발명의 제1 실시 예에 따른 심볼 스케줄러에서 FCH, DL-MAP, HARQ MAP을 디코딩하기 위한 방법 흐름도,
도 8은 본 발명의 제1 실시 예에 따른 심볼 스케줄러에서 HARQ MAP 없이 FCH, DL-MAP을 디코딩하기 위한 방법 흐름도,
도 9는 본 발명의 제1 실시 예에 따른 광대역 무선 통신 시스템의 수신기의 채널 추정단으로 한 개의 버스트가 입력될 때의 동작을 개략적으로 설명하기 위한 블록 구성도,
도 10은 본 발명의 제1 실시 예에 따른 광대역 무선 통신 시스템의 수신기의 채널 추정단으로 한 개의 버스트가 모두 입력되어 채널 추정 버퍼에 저장되었을 때의 동작을 개략적으로 설명하기 위한 블록 구성도,
도 11은 본 발명의 제1 실시 예에 따른 광대역 무선 통신 시스템의 수신기에서 채널 추정단으로 두 개의 버스트가 입력되었을 경우의 동작을 개략적으로 설명하기 위한 도면,
도 12는 본 발명의 제2 실시 예에 따른 광대역 무선 통신 시스템에서 수신된 데이터를 복호하기 위한 수신 디코딩 파트와의 블록 구성도,
도 13은 본 발명의 제2 실시 예에 따른 광대역 무선 통신 시스템에서 사용되는 버스트가 조각(Concatenation)단위로 분할 되는 것을 보여주는 도면,
도 14는 본 발명의 제2 실시 예에 따라 심볼 스케줄러가 데이터를 디코딩하기 위한 동작 흐름도,
도 15는 본 발명의 제2 실시 예에 따른 심볼 스케줄러에서 버스트 정보를 설정하기 위한 동작 흐름도,
도 16은 본 발명의 제2 실시 예에 따른 버스트 메모리 블록의 구성도,
도 17은 본 발명의 제2 실시 예에 따른 메모리부의 버스트 메모리 제어기의 동작 흐름도,
도 18은 본 발명의 제2 실시 예에 따른 HARQ 제어기의 블록 구성도,
도 19는 본 발명의 제2 실시 예에 따른 HARQ 제어기의 동작 흐름도.

Claims (10)

  1. 광대역 무선 통신 시스템의 수신기에서 수신된 프레임의 데이터를 처리 하기 위한 방법에 있어서,
    복수의 버스트들로 구성된 한 프레임의 데이터에 대한 제어 정보들로부터 상기 프레임을 구성하는 버스트들의 버스트 크기들과, 상기 프레임에 적용된 변조 방식 정보를 추출하는 과정과,
    상기 버스트들을 식별하기 위한 버스트 식별자(ID)들을 부여하고, 상기 버스트 각 크기들과 상기 변조 방식 정보에 따른 조각 크기들을 갖는 데이터 조각들에 버스트 파셜 식별자(ID)들을 부여하는 과정과,
    상기 버스트 식별자들에 따라 상기 데이터 조각들을 저장하기 위한 버스트 영역들을 메모리 상에 구성하는 과정과,
    상기 프레임에 포함되는 한 슬롯의 수신 데이터를 상기 조각 크기들에 따른 데이터 조각들로 구분하여 디코딩하는 과정과,
    상기 각 디코딩된 데이터 조각에 해당하는 버스트 식별자와 버스트 파셜 식별자에 따라 상기 디코딩된 데이터 조각을 순서대로 상기 메모리에 저장하는 과정을 포함함을 특징으로 하는 광대역 무선 통신 시스템의 수신기에서 수신 데이터 처리 방법.
  2. 제1 항에 있어서,
    상기 디코딩된 데이터 조각을 순서대로 상기 메모리에 저장하는 과정은,
    상기 디코딩된 데이터 조각이 저장하고자 하는 데이터 조각이라면, 상기 메모리에 이미 저장된 데이터 조각 이후에 상기 디코딩된 데이터 조각을 저장하는 과정을 포함함을 특징으로 하는 광대역 무선 통신 시스템의 수신기에서 수신 데이터 처리 방법.
  3. 제1 항에 있어서,
    상기 디코딩된 데이터 조각을 순서대로 상기 메모리에 저장하는 과정은,
    상기 디코딩된 데이터 조각이 저장하고자 하는 데이터 조각이 아니라면,
    상기 메모리에 이미 저장된 데이터 조각의 버스트 파셜 식별자의 다음 버스트 파셜 식별자에 해당하는 데이터 조각이 디코딩되어 출력될 때까지 상기 디코딩된 데이터 조각을 상기 메모리에 저장하지 않고 대기시키는 과정을 포함함을 특징으로 하는 광대역 무선 통신 시스템의 수신기에서 수신 데이터 처리 방법.
  4. 제1 항에 있어서,
    상기 디코딩된 데이터 조각을 순서대로 상기 메모리에 저장하는 과정은,
    상기 디코딩된 데이터 조각이 포함되는 버스트 식별자에 해당하는 버스트 영 역에 저장된 데이터 조각이 없다면, 상기 디코딩된 데이터 조각을 상기 버스트 영역의 처음 위치에 저장하는 과정을 포함함을 특징으로 하는 광대역 무선 통신 시스템의 수신기에서 수신 데이터 처리 방법.
  5. 제1 항에 있어서,
    상기 디코딩된 데이터 조각이 HARQ가 적용되는 HARQ 버스트에 포함되는 경우,
    상기 디코딩된 데이터 조각의 CRC를 계산하는 과정과,
    상기 HARQ 버스트를 구성하는 모든 데이터 조각들이 디코딩되면, 상기 데이터 조각들에 대한 CRC 계산 값들을 사용하여 상기 HARQ 버스트에 대한 CRC 검사를 수행하는 과정과,
    상기 CRC 검사 결과에 따라 상기 HARQ 버스트에 대한 ACK 신호 또는 NACK 신호를 전송하는 과정을 더 포함함을 특징으로 하는 광대역 무선 통신 시스템의 수신기에서 수신 데이터 처리 방법.
  6. 광대역 무선 통신 시스템의 수신기에서 수신된 프레임의 데이터를 처리 하기 위한 장치에 있어서,
    복수의 버스트들로 구성된 한 프레임의 데이터에 대한 제어 정보들을 수신하 여 디코딩하는 제어 정보 디코더와,
    상기 디코딩된 제어 정보로 상기 프레임을 구성하는 버스트들의 버스트 크기들과, 상기 프레임에 적용된 변조 방식 정보를 추출하고, 상기 버스트들을 식별하기 위한 버스트 식별자들을 부여하고, 상기 버스트 크기들과 상기 변조 방식 정보에 따른 조각 크기들을 갖는 데이터 조각들에 버스트 파셜 식별자들을 부여하는 제어기와,
    상기 프레임에 포함되는 한 슬롯의 수신 데이터를 상기 데이터 조각 크기들에 따른 데이터 조각들로 구분하여 상기 각 데이터 조각을 디코딩하는 디코딩 부와,
    상기 버스트 식별자들에 따라 각 데이터 조각들을 저장하기 위한 버스트 영역들로 구성되고, 상기 디코딩부로부터 출력된 각 데이터 조각에 해당하는 버스트 식별자와 버스트 파셜 식별자에 따라 상기 디코딩된 데이터 조각을 순서대로 저장하는 버스트 메모리부를 포함함을 특징으로 하는 광대역 무선 통신 시스템의 수신기에서 수신 데이터 처리 장치.
  7. 제6 항에 있어서,
    상기 버스트 메모리부는,
    상기 디코딩된 데이터 조각이 저장하고자 하는 데이터 조각이라면, 이미 저장된 데이터 조각 이후에 상기 디코딩된 데이터 조각을 저장함을 특징으로 하는 광 대역 무선 통신 시스템의 수신기에서 수신 데이터 처리 장치.
  8. 제6 항에 있어서,
    상기 버스트 메모리부는,
    상기 디코딩된 데이터 조각이 저장하고자 하는 데이터 조각이 아니라면, 이미 저장된 데이터 조각의 버스트 파셜 식별자의 다음 버스트 파셜 식별자에 해당하는 데이터 조각이 디코딩되어 출력될 때까지 상기 디코딩된 데이터 조각을 저장하지 않고 대기시킴을 특징으로 하는 광대역 무선 통신 시스템의 수신기에서 수신 데이터 처리 장치.
  9. 제6 항에 있어서,
    상기 버스트 메모리부는,
    상기 디코딩된 데이터 조각이 포함되는 버스트 식별자에 해당하는 버스트 영역에 저장된 데이터 조각이 없다면, 상기 디코딩된 데이터 조각을 상기 버스트 영역의 처음 위치에 저장함을 특징으로 하는 광대역 무선 통신 시스템의 수신기에서 수신 데이터 처리 장치.
  10. 제6 항에 있어서,
    상기 디코딩된 데이터 조각이 HARQ가 적용되는 HARQ 버스트에 포함되는 경우,
    상기 디코딩된 데이터 조각의 CRC를 계산하고, 상기 HARQ 버스트를 구성하는 모든 데이터 조각들이 디코딩되면, 상기 데이터 조각들에 대한 CRC 계산 값들을 사용하여 상기 HARQ 버스트에 대한 CRC 검사를 수행하고, 상기 CRC 검사 결과에 따라 상기 HARQ 버스트에 대한 ACK 신호 또는 NACK 신호를 전송하는 HARQ 제어기를 더 포함함을 특징으로 하는 광대역 무선 통신 시스템의 수신기에서 수신 데이터 처리 장치.
KR1020070095812A 2006-09-20 2007-09-20 광대역 무선 통신 시스템에서 수신 데이터를 처리하기 위한장치 및 방법 KR100899731B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060091476 2006-09-20
KR20060091476 2006-09-20

Publications (2)

Publication Number Publication Date
KR20080026523A KR20080026523A (ko) 2008-03-25
KR100899731B1 true KR100899731B1 (ko) 2009-05-27

Family

ID=38984222

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070095812A KR100899731B1 (ko) 2006-09-20 2007-09-20 광대역 무선 통신 시스템에서 수신 데이터를 처리하기 위한장치 및 방법

Country Status (4)

Country Link
US (1) US8176379B2 (ko)
EP (1) EP1903710A3 (ko)
KR (1) KR100899731B1 (ko)
WO (1) WO2008035936A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100754584B1 (ko) * 2005-07-04 2007-09-05 삼성전자주식회사 모뎀에서 데이터 스케쥴링 장치 및 방법
KR100771876B1 (ko) * 2006-07-14 2007-11-01 삼성전자주식회사 버스트 데이터의 리오더링 여부에 따라 클럭 레이턴시를조절하는 반도체 메모리 장치 및 방법
US8132069B2 (en) * 2007-12-13 2012-03-06 Qualcomm Incorporated Selective HARQ combining scheme for OFDM/OFDMA systems
US8161342B2 (en) * 2007-12-13 2012-04-17 Qualcomm Incorporated Forward and reverse shifting selective HARQ combining scheme for OFDMA systems
US8175015B1 (en) 2008-01-02 2012-05-08 Marvell International Ltd. WiMAX MAC
US8576955B2 (en) * 2008-03-28 2013-11-05 Qualcomm Incorporated Architecture to handle concurrent multiple channels
US9184874B2 (en) * 2008-03-31 2015-11-10 Qualcomm Incorporated Storing log likelihood ratios in interleaved form to reduce hardware memory
US8165096B2 (en) 2008-05-19 2012-04-24 Qualcomm Incorporated Methods and systems of improved success rate for decoding downlink map and uplink map IES in mobile WIMAX mobile
US8576931B2 (en) 2008-06-24 2013-11-05 Qualcomm Incorporated Methods and systems for overhead reduction in a wireless communication network
KR101489191B1 (ko) * 2008-11-28 2015-02-09 삼성전자주식회사 통신 시스템에서 가변적 패킷 수신 방법 및 장치
KR101013713B1 (ko) * 2008-12-26 2011-02-10 주식회사 세아네트웍스 무선 통신 시스템에서 제어 장치 및 방법
US8995362B2 (en) * 2009-06-10 2015-03-31 Lg Electronics Inc. Resource allocation bitmap configuration method in a group resource allocation method
US8897219B2 (en) * 2010-08-13 2014-11-25 Lg Electronics Inc. Method and user equipment for transmitting ranging signal, and method and base station for receiving ranging signal
WO2014040130A1 (en) * 2012-09-12 2014-03-20 Cohda Wireless Pty Ltd Split radio architecture
CN111866912B (zh) * 2020-06-16 2021-07-20 北京邮电大学 基于时间-空间的业务量区域分类和分析方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020122411A1 (en) 2001-03-02 2002-09-05 Ofer Zimmerman Method and system for packing management messages in a communication system
KR20050014315A (ko) * 2003-07-30 2005-02-07 삼성전자주식회사 광대역 무선 접속 통신 시스템에서 역방향 신호 전송 방법
KR20050015309A (ko) * 2003-08-05 2005-02-21 삼성전자주식회사 광대역 무선 접속 통신 시스템에서 연결 식별자 할당 장치및 방법
US20050286451A1 (en) 2004-06-24 2005-12-29 Samsung Electronics Co., Ltd. Connection identification allocating system and method in a broadband wireless access communication system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3763172B2 (ja) * 1996-12-16 2006-04-05 ソニー株式会社 ディジタル信号復号方法及び装置、並びにディジタル信号再生装置
JP3549788B2 (ja) * 1999-11-05 2004-08-04 三菱電機株式会社 多段符号化方法、多段復号方法、多段符号化装置、多段復号装置およびこれらを用いた情報伝送システム
US7050419B2 (en) * 2001-02-23 2006-05-23 Terayon Communicaion Systems, Inc. Head end receiver for digital data delivery systems using mixed mode SCDMA and TDMA multiplexing
US7020822B2 (en) * 2001-08-02 2006-03-28 Texas Instruments Incorporated Automatic repeat request for centralized channel access
US6962580B2 (en) * 2002-09-17 2005-11-08 Transoma Medical, Inc. Vascular access port with needle detector
KR100594111B1 (ko) * 2004-03-12 2006-06-30 삼성전자주식회사 주파수 밴드별 다중 코딩을 사용하는 광대역 무선 접속시스템에서 데이터 전송 방법 및 시스템
US7940662B2 (en) * 2004-04-12 2011-05-10 Integrated Device Technology, Inc. Method and apparatus for forwarding bursty data
JP4086304B2 (ja) * 2004-04-23 2008-05-14 株式会社東芝 通信装置、通信システム、および通信制御プログラム
CA2590858C (en) * 2004-12-27 2014-08-19 Lg Electronics Inc. Supporting hybrid automatic retransmission request in orthogonal frequency division multiplexing access radio access system
KR100754584B1 (ko) * 2005-07-04 2007-09-05 삼성전자주식회사 모뎀에서 데이터 스케쥴링 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020122411A1 (en) 2001-03-02 2002-09-05 Ofer Zimmerman Method and system for packing management messages in a communication system
KR20050014315A (ko) * 2003-07-30 2005-02-07 삼성전자주식회사 광대역 무선 접속 통신 시스템에서 역방향 신호 전송 방법
KR20050015309A (ko) * 2003-08-05 2005-02-21 삼성전자주식회사 광대역 무선 접속 통신 시스템에서 연결 식별자 할당 장치및 방법
US20050286451A1 (en) 2004-06-24 2005-12-29 Samsung Electronics Co., Ltd. Connection identification allocating system and method in a broadband wireless access communication system

Also Published As

Publication number Publication date
US20080072115A1 (en) 2008-03-20
EP1903710A3 (en) 2014-05-21
KR20080026523A (ko) 2008-03-25
EP1903710A2 (en) 2008-03-26
WO2008035936A1 (en) 2008-03-27
US8176379B2 (en) 2012-05-08

Similar Documents

Publication Publication Date Title
KR100899731B1 (ko) 광대역 무선 통신 시스템에서 수신 데이터를 처리하기 위한장치 및 방법
KR100754584B1 (ko) 모뎀에서 데이터 스케쥴링 장치 및 방법
US9172504B2 (en) Method, apparatus and system for downlink channel transmission
JP5646662B2 (ja) モバイル通信におけるpdcchブラインド復号のための方法およびシステム
CN107005363B (zh) 用于重复设计的方法以及装置
RU2289210C2 (ru) Устройство и способ передачи/приема данных в системе связи, использующей схему множественного доступа
KR101108750B1 (ko) 무선 통신 시스템에서의 제어 정보 전송 방법
EP2282434B1 (en) Control channel element detection method using CQI in a wireless communication system
US20090074088A1 (en) Adaptive Fragmentation for HARQ in Wireless OFDMA Networks
JP2011525060A (ja) 通信システムにおけるスペクトル利用効率を向上させるための方法、装置及び通信システム
US20090249150A1 (en) Apparatus, method and computer program product for HARQ buffer size reduction
US20220103286A1 (en) Method for transmitting data, receiving-end device, and transmitting-end device
KR100930265B1 (ko) 광대역 무선접속 통신시스템에서 복호를 위한 장치 및 방법
JPWO2010073987A1 (ja) 信号配置方法及び通信装置
JP7048931B2 (ja) 無線中継装置および無線中継方法
CN113612583A (zh) 支持sidelink通信盲检测的FPGA实现方法及系统
US9054837B2 (en) Demodulation method and apparatus, decoding method and apparatus and baseband chip in communication system
US10284331B2 (en) Channel decoding method, apparatus, and system
GB2390954A (en) Method for selecting a wireless transmission scheme
CN116055019A (zh) 接收物理下行控制信道的方法及装置、终端

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130429

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140429

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150429

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160428

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170427

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180427

Year of fee payment: 10