KR20090031783A - 심볼 레이트 하드웨어 가속기 - Google Patents

심볼 레이트 하드웨어 가속기 Download PDF

Info

Publication number
KR20090031783A
KR20090031783A KR1020097003321A KR20097003321A KR20090031783A KR 20090031783 A KR20090031783 A KR 20090031783A KR 1020097003321 A KR1020097003321 A KR 1020097003321A KR 20097003321 A KR20097003321 A KR 20097003321A KR 20090031783 A KR20090031783 A KR 20090031783A
Authority
KR
South Korea
Prior art keywords
buffer
hardware accelerator
information bits
controller
data
Prior art date
Application number
KR1020097003321A
Other languages
English (en)
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 KR20090031783A publication Critical patent/KR20090031783A/ko

Links

Images

Classifications

    • 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/0041Arrangements at the transmitter end
    • H04L1/0043Realisations of complexity reduction techniques, e.g. use of look-up tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • 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/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0065Serial concatenated codes
    • 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/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving

Abstract

하드웨어 가속기는 제1 버퍼, 제2 버퍼, 어드레스 발생기(들), 변환 판독 전용 메모리(ROM), 순환 잉여 검사(CRC, cyclic redundancy check) 발생기, 컨볼루션 인코더, 및 제어기를 포함한다. 제1 버퍼와 제2 버퍼는 정보 비트를 저장한다. 어드레스 발생기(들)은 제1 버퍼, 제2 버퍼, 및 공유 메모리 아키텍처(SMA, shared memory architecture)에 액세스하기 위한 어드레스를 발생시킨다. 변환 ROM은 제1 버퍼와 제2 버퍼에 액세스하기 위해 변환된 어드레스의 발생시 이용된다. 제어기는 CRC 발생기, 컨볼루션 인코더, 및 어드레스 발생기에 대해 파라미터들을 설정하고, 제1 버퍼, 제2 버퍼, SMA, CRC 발생기, 및 컨볼루션 인코더 간에 정보 비트를 이동시키는 동안 정보 비트를 조작함으로써, 재정렬, 블록 코딩, 패리티 테일링, 펑춰링, 컨볼루션 인코딩, 및 인터리빙과 같은 채널 처리를 행하기 위한 미리 정의된 시퀀스의 제어 명령어들을 정보 비트에 대해 수행한다.

Description

심볼 레이트 하드웨어 가속기{SYMBOL RATE HARDWARE ACCELERATOR}
본 발명은 무선 통신 시스템에 관한 것이다. 더 상세하게, 본 발명은 무선 통신용 심볼 레이트 하드웨어 가속기에 관한 것이다.
2세대(2G) 무선 통신 시스템용 무선 송수신 유닛(WTRU)은 통상적으로 신호 처리 및 심볼 레이트 처리를 위한 디지털 신호 프로세서(DSP, digital signal processor)를 포함한다. 2G WTRU는 보통 계층 1(L1) 제어 및 프로토콜 스택 처리를 다루기 위해 (향상된 RISC 머신(ARM, advanced RISC machine)과 같은) 제어 프로세서를 구비한다.
도 1은 (GSM(global system for mobile communication), GPRS(global packet radio service), 및 EDGE(enhanced data rate for GSM evolution )와 같은) 종래의 2G 시스템용 WTRU(100)의 블록도이다. WTRU(100)는 채널 처리 유닛(110), 버스트 발생 및 변조 유닛(120), 송신기(130), 및 안테나(140)를 포함한다. 채널 처리 유닛(110)은 블록 코딩 유닛(112), 컨볼루션 인코더(convolutional encoder)(114), 재정렬 및 분할(reordering and partitioning) 유닛(116), 및 인터리버(interleaver)(118)를 포함한다. 버스트 발생 및 변조 유닛(120)은 부호화 유 닛(122), 버스트 발생기(124), 및 변조기(126)를 포함한다. 도 1은 오직 WTRU(100)의 송신측 만을 보여주지만, WTRU(100)는 송신측에 대응하는 수신측의 컴포넌트들 또한 포함한다.
정보 비트(111)는 우선 블록 코딩 유닛(112)(예컨대, 순환 잉여 검사(CRC, cyclic redundancy check) 유닛)에 의해 처리된다. 블록 코딩 유닛(112)에 의해 정보 비트(111)에 패리티 비트가 추가된다. 그 다음, 패리티 비트(113)를 갖는 정보 비트가 컨볼루션 인코더(114)에 의해 처리된다. 컨볼루션 인코더(114)는 인코딩된 비트(115)를 발생시키기 위하여 비트(113)에 대해 컨볼루션 코딩을 수행한다. 인코딩된 비트(115)는 재정렬 및 분할 유닛(116)에 의해 재정렬되고 분할된다. 그 다음, 재정렬되고 분할된 비트(117)가 인터리버(118)에 의해 인터리빙된다. 인터리빙된 비트(119)는 부호화 유닛(122)에 의해 부호화된다. 부호화된 비트(123)는 버스트 발생기(124)에 전송된다. 버스트 발생기(124)는 부호화된 비트(123)로부터 버스트(125)를 발생시킨다. 버스트 멀티플렉싱 또한 버스트 발생기(124)에 의해 수행된다. 그 다음, 버스트(125)는 변조기(126)에 의해 처리된다. 그 다음, 변조된 심볼(127)이 송신기(130)에 의해 안테나(140)를 통해 송신된다.
3GPP(third generation partnership project) 기술 표준(TS) 45.003 섹션 2.1로부터 취해진 도 2는, GSM, GPRS, 및 EDGE의 채널 중 일부에 대한 정보 비트의 처리를 보여준다. 2G 시스템에서는 복수의 채널들이 지원된다. 도 2는 향상된 풀 레이트 음성용 트래픽 채널(TCH/EFS, traffic channel for enhanced full rate speech), 풀 레이트 음성용 트래픽 채널(TCH/FS, traffic channel for full rate speech), 1/2 레이트 음성용 트래픽 채널(TCH/HS, traffic channel for half rate speech), 데이터 트래픽 채널, 및 패킷 데이터 트래픽 채널(PDTCH, packet data traffic channel)에 대한 정보 비트의 처리를 보여준다.
도 1 및 도 2를 참조하면, TCH/FS에 대한 정보 비트 처리가 예로서 설명된다. 풀 레이트 또는 향상된 풀 레이트의 음성 부호기(도 1에는 도시되지 않음)는 채널 처리 유닛에 데이터 블록 시퀀스를 전달한다. TCH/FS 또는 TCH/EFS의 경우, 하나의 데이터 블록이 하나의 음성 프레임에 대응한다. 각각의 블록은 182개 클래스 1 비트(보호된 비트)와 78개 클래스 2 비트(보호되지 않은 비트)를 포함하는 260개 정보 비트를 포함한다. 각각의 블록의 260개 비트는 블록 코딩 유닛에 의해 처리된다. 처음 50개의 클래스 1 비트는 에러 검출을 위해 3개의 패리티 비트에 의해 보호된다. 클래스 1 입력 비트 및 패리티 비트가 재정렬되며, 4개의 꼬리 비트(tailing bit)가 끝에 추가된다. 블록 코딩 유닛은 3개의 패리티 비트와 4개의 꼬리 비트를 포함하는 267개 비트를 출력한다. 267개 비트의 클래스 1 비트는 컨볼루션 인코더에 의해 1/2 레이트 컨볼루션 코딩으로 인코딩된다. 컨볼루션 인코더는 456개 비트의 인코딩된 비트를 출력한다. 456개의 인코딩된 비트는 재정렬 및 분할 유닛에 의해 재정렬되고 분할된다. 재정렬 및 분할 유닛은 8개의 비트 블록을 출력한다. 그 다음, 8개의 비트 블록이 인터리버에 의해 대각선으로 인터리빙된다. 재정렬과 인터리빙은 미리 정의된 표를 기초로 수행된다.
2G와 3세대(3G) 서비스 모두를 지원하는 듀얼-모드 WTRU가 시장에서 점점 더 이용되면서, 비용 절감 및 전력 절약을 위해 2G 및 3G에 대해 물리 자원이 공유될 필요가 있다. 데이터 레이트가 증가하고, 변조 기술과 수신기 알고리즘이 더욱 복잡해짐에 따라, DSP에 의해 지원되어야하는 처리 요구치가 계속 증가하고 있다. 보이스 코덱과 같이 DSP에 의해 지원되는 다른 기능들 또한 더욱 복잡해지고 있다. 추가된 기능성을 지원하기 위해 단순히 DSP의 주파수를 증가시키는 것은, 높은 전력 낭비, 메모리 서브시스템에 대한 증가된 수요를 포함하는 다른 문제들을 발생시킬 것이다.
이러한 문제에 대한 가능한 해결책은 처리의 일부를 DSP로부터 하드웨어 가속기로 오프로딩(offload) 하는 것이다. 보통 가속기 내로 입력 데이터를 입력하기 위해 직접 메모리 액세스(DMA, direct memory access) 기술 또는 프로그래밍된 I/O를 이용하고, 가속기를 가동하기 위해 레지스터 기록을 이용하며, 가속기의 결과에 액세스하기 위하여 DMA 기술 또는 프로그래밍된 I/O를 이용함으로써, 종래의 하드웨어 가속기들은 DSP에 의해 제어된다. 종래의 하드웨어 가속기들은 특정한 기능을 수행하기 위하여 일반적으로 "하드와이어(hardwired)" 되고 이에 따라, DSP로부터 하드웨어 가속기로 기능성을 이동시키는 것은, (DSP 상에서 구동하는 소프트웨어와 비교하여) 융통성(flexibility)의 손실을 야기하고, 기능적인 요구사항의 변화가 발생하는 경우에는 주요 하드웨어에 대한 필요성이 변화한다.
본 발명은 무선 통신을 위한 심볼 레이트 하드웨어 가속기에 관한 것이다. 심볼 레이트 기능이 DSP(또는 제어 프로세서)로부터 오프로딩되는 동시에, 변화 또는 새로운 채널 종류를 수용하기 위한 융통성이 유지된다. 하드웨어 가속기는 제1 버퍼, 제2 버퍼, 적어도 하나의 어드레스 발생기, 변환 판독 전용 메모리(ROM), CRC 발생기, 컨볼루션 인코더, 다른 가능한 동작 유닛, 공유 메모리 아키텍처(SMA, shared memory architecture)로의 인터페이스(DSP 및/또는 제어 프로세서에 의해 액세스 가능함), 및 제어기를 포함한다. SMA로의 인터페이스는 공유 메모리로부터 제1 버퍼를 채우고, 제1 버퍼 또는 제2 버퍼로부터의 결과들을 다시 공유 메모리로 전송하기 위한 수단을 제공한다. SMA로의 인터페이스는 또한 가속기가 번역할 명령어를 위한 소스를 제공한다. 제1 버퍼 및 제2 버퍼는 정보 비트를 저장한다. 어드레스 발생기(들)는 제1 버퍼 및 제2 버퍼에 액세스하기 위한 어드레스를 발생시킨다. 변환 ROM은 제1 버퍼 및 제2 버퍼에 액세스하기 위해 변환된 어드레스를 발생시킬 때 이용된다. 제어기는 CRC 발생기, 컨볼루션 인코더, 어드레스 발생기(들), 및 가능한 다른 동작 유닛들에 대해 파라미터들을 설정하고, 공유 메모리, 제1 버퍼, 제2 버퍼, CRC 발생기, 및 컨볼루션 인코더 간에 정보 비트 및 처리된 정보 비트를 이동시키는 동시에, 정보 비트 및 처리된 정보 비트를 조작함으로써, 정보 비트에 대해 채널 처리를 행하기 위한 미리 정의된 시퀀스의 제어 명령어들을 수행한다. 채널 처리는 제1 재정렬, 블록 코딩, 제2 재정렬, 패리티 테일링(parity tailing), 펑춰링(puncturing), 컨볼루션 인코딩, 및 인터리빙 중 적어도 하나를 포함한다.
본 발명은 무선 통신을 위한 심볼 레이트 하드웨어 가속기에 관한 것이다. 심볼 레이트 기능이 DSP(또는 제어 프로세서)로부터 오프로딩되는 동시에, 변화 또는 새로운 채널 종류를 수용하기 위한 융통성이 유지된다.
이후부터 언급될 때, 용어 "WTRU"는 사용자 장치(UE), 이동국, 고정형 또는 이동 가입자 유닛, 무선 호출기, 셀룰러 텔레폰, 개인휴대정보 단말기(PDA), 컴퓨터, 또는 무선 환경에서 동작할 수 있는 임의의 다른 종류의 사용자 장치를 포함하지만, 이들로 한정되는 것은 아니다. 이후부터 언급될 때, 용어 "기지국"은 노드-B, 사이트 제어기, 액세스 포인트(AP), 또는 무선 환경에서 동작할 수 있는 임의의 다른 종류의 인터페이싱 장치를 포함하지만, 이들로 한정되는 것은 아니다.
본 발명은 원하는대로 임의의 종류의 무선 통신 시스템에서 구현될 수 있다. 예로서, 본 발명은 GSM, EDGE, GPRS 시스템 또는 임의의 다른 종류의 무선 통신 시스템에서 구현될 수 있다.
본 발명에 따라, 종래에는 채널 처리(즉, 송신 처리 및/또는 수신 처리를 위한 심볼 레이트 처리)를 위해 사용되던 범용 DSP는 WTRU 또는 기지국에서 채널 처리를 수행하도록 특별히 설계된 하드웨어 가속기로 대체된다. 상이한 종류의 채널에 대한 채널 처리 흐름은 유사하지만(그 채널 처리의 서브세트가 도 2에 도시됨), 특정 파라미터들은 각각의 채널 처리 단계에서 상이하고(즉, 블록 코딩, 컨볼루션 코딩, 재정렬 및 인터리빙을 위한 파라미터들은 상이한 채널 종류에 대해 상이함), 채널 처리가 수행되는 순서도 상이할 수 있다.
본 발명에 따라, 도 2에 도시된 바와 같은 채널 종류에 대한 채널 처리 흐름은 단 하나의 동작 흐름으로 추출된다. 도 3은 본 발명에 따라 하드웨어 가속기에 의해 수행된 예시적 데이터 처리 흐름을 보여준다. 하드웨어 가속기에 의해 수행되는 전형적인 채널 처리 프로세스(300)는 선택적 재정렬(302), 선택적 블록 코딩(304), 재정렬(306), 패리티 테일링(308), 펑춰링(310), 컨볼루션 인코딩(312), 및 인터리빙(314)을 포함한다. 비트 스트림의 비트의 특정 부분을 재정렬하기 위하여 선택적 재정렬이 수행된다. 선택적 블록 코딩은 비트의 특정 부분에 대해 수행되는 블록 코딩이다. 채널 종류에 따라 선택적 재정렬 및 보통의 재정렬 모두 수행될 수 있다. 패리티 테일링은 블록 코딩에 의해 패리티 비트를 비트 블록에 추가하기 위한 것이다. 펑춰링은 레이트 매칭을 위해 비트 스트림으로부터 특정 비트를 제거하기 위해 수행된다. 컨볼루션 인코딩은 에러 검출 및 정정을 위해 수행된다. 인터리빙은 버스트 에러로부터의 보호를 위해 수행된다. 주목할 것은, 도 3에 도시된 처리는 상이한 채널 종류에 대해 상이하게 정의될 수 있다는 것이다. 도 3은 단순히 송신 처리만을 도시한 것이며, 본 발명은 수신 처리에도 동일하게 적용될 수 있다는 것 또한 주목해야 한다. 본 발명에 따라, 상이한 파라미터들을 갖는 명령어 시퀀스가 각각의 채널 종류에 대해 정의되며, 상기 시퀀스의 명령어가 하드웨어 가속기에 의해 실행된다.
도 4는 본 발명에 따른 하드웨어 가속기(400) 및 SMA(420)를 보여주는 도면 이다. 하드웨어 가속기(400)는 제어기(402), 어드레스 발생기(404), 변환 판독 전용 메모리(ROM)(406), 제1 버퍼(408), 제2 버퍼(410), CRC 발생기(412), 컨볼루션 인코더(414), 컨볼루션 디코더(416)(즉, 비터비 디코더), 및 명령어 레지스터(418)를 포함한다. 주목할 것은, 하드웨어 가속기(400)는 채널 처리를 수행하는데 필요한 추가 동작 유닛들을 포함할 수 있다는 것이다. 하드웨어 가속기(400)는 각각의 채널 종류에 대해 정의된 특정 비트 시퀀스 조작을 수행한다. 하드웨어 가속기(400)는 특정 기능을 수행하기 위하여 제어 워드에 따라 비트 스트림(즉, 비트 필드)을 조작한다. 제어 워드는 SMA(420)에 존재하는 제어 블록에 포함되어 있다. 제어 워드는 SMA(420)로부터 검색되고, 제어기(402)에 의해 번역되기 전에 명령어 레지스터(418)에 저장된다.
하드웨어 가속기(400)에 의해 수행되는 전형적인 동작은, 데이터 블록을 SMA(420)로부터 제1 버퍼(408)로 복사하는 동작, 제1 조작을 수행하는 동안 데이터를 제1 버퍼(408)로부터 제2 버퍼(410)로 이동시키는 동작, 제2 조작을 수행하는 동안 데이터를 제2 버퍼(410)로부터 제1 버퍼(408)로 이동시키는 동작, 데이터에 대한 조작을 수행하는 동안 필요한 횟수만큼 제1 버퍼(408)와 제2 버퍼(410) 간의 데이터 이동을 반복하는 동작, 그 다음, 결과 데이터를 엔딩 버퍼(제1 버퍼(408) 또는 제2 버퍼(410))로부터 SMA(420)로 이동시키는 동작을 포함한다.
이러한 동작은 매우 단순한 하드웨어 구조를 요구하고, 하드웨어 가속기(400)는 비트당 1 또는 2 클록으로 동작한다. 제어 시퀀스는 소프트웨어에 의해 제어되며, 각각의 채널 종류에 대해 미리 정의된다. 오직 SMA 포인터만이 하드웨어 가속기를 호출하기 전에 업데이트될 필요가 있다. 제어기(402)는 제어 시퀀스를 유지한다.
하드웨어 가속기(400)는 우선 CRC 발생기(412), 컨볼루션 인코더(414), 비터비 디코더(416), 및 어드레스 발생기(404)에 대한 파라미터들을 설정한다. 그 다음, 하드웨어 가속기(400)는 아래의 명령어들 중 적어도 하나를 N회 반복한다.
1) Copy: 데이터를 제1 버퍼(408)로부터 제2 버퍼(410)로, 또는 제2 버퍼(410)로부터 제1 버퍼로 이동;
2) Copy_translate_src: 변환 ROM(406)을 통해 발생된 어드레스를 이용하여 한 버퍼(제 1 버퍼(408) 또는 제2 버퍼(410))로부터 데이터를 검색하고, 선형 어드레스를 이용하여, 검색한 데이터를 다른 버퍼(제 1 버퍼(408) 또는 제2 버퍼(410))에 넣기;
3) Copy_translate_dst: 선형 어드레스를 이용하여 한 버퍼(제 1 버퍼(408) 또는 제2 버퍼(410))로부터 데이터를 검색하고, 변환 ROM(406)을 통해 발생된 어드레스를 이용하여, 검색한 데이터를 다른 버퍼(제 1 버퍼(408) 또는 제2 버퍼(410))에 넣기;
4) Generate_CRC: 데이터를 제1 버퍼(408)와 제2 버퍼(410) 중 하나로부터 CRC 발생기(412)로 이동;
5) Generate_CRC_translate; 변환 ROM(406)에 의해 발생된 어드레스를 이용하여 제1 버퍼(408)와 제2 버퍼(410) 중 하나로부터 CRC 발생기(412)로 데이터를 이동;
6) Conv_Encode_XXXXXX; 어느 컨볼루션 인코더 구조가 이동시에 포함될 것인지를 결정하기 위하여 패턴 "XXXXXX"를 이용하여 컨볼루션 인코더(414)를 통해 제1 버퍼(408)와 제2 버퍼(410) 중 하나로부터 데이터를 이동;
7) From_CRC; 데이터를 CRC 발생기(412)로부터 제1 버퍼(408)와 제2 버퍼(410) 중 하나로 이동;
8) To_SMA; 데이터를 제1 버퍼(408)와 제2 버퍼(410) 중 하나로부터 SMA(420)로 이동; 및
9) From_SMA: 데이터를 SMA(420)로부터 제1 버퍼(408)와 제2 버퍼(410) 중 하나로 이동.
TCH/FS에 대한 채널 처리를 수행하기 위한 예시적 제어 시퀀스가 지금부터 설명된다. TCH/FS에 대한 처리 흐름은 도 2에 도시되어 있다. 데이터(즉, 1개의 음성 프레임의 260개 비트)가 이미 공유 메모리로부터 제1 버퍼(408)로 이동되었다고 가정해보자. 선택적 블록 코딩을 위한 제어 시퀀스(즉, 선택적 CRC 인코딩)는 아래와 같다.
1) Set CRC parameters;
2) Clear address counter; and
3) Rpt 50; Generate CRC;
"Set CRC parameter" 명령어에 의해 CRC 파라미터들이 설정된다. 어드레스 카운터(선형 어드레스 카운터)는 "Clear address counter" 명령어에 의해 초기화된다. 그 다음, "Rpt 50; Generate CRC" 명령어에 의해 처음 50개의 비트가 제1 버 퍼(408)로부터 CRC 발생기(412)로 이동되어, CRC 발생기(412)에는 계산된 CRC가 남는다.
재정렬 및 패리티 테일링을 위한 제어 시퀀스는 아래와 같다.
1) Set Indx_Base to label "Rearrange_insert_CRC_3.1.2.1" of the translation ROM;
2) Clear address counter; and
3) Rpt 189; Copy_translate.
전술한 바와 같이, 처음 50개의 클래스 1 비트로부터 3개의 패리티 비트가 발생되고, 182개 클래스 1 비트와 3개의 패리티 비트가 재정렬되며, 4개의 패리티 비트가 끝에 추가된다. 상기 3개의 명령어들은 클래스 1 비트 및 패리티 비트를 재정렬하고, 테일링 비트를 추가하기 위한 것이다. 인덱스 베이스는 미리 정의된 값들(즉, 3GPP TS 45.003 v.7.10의 섹션 3.1.2.1에 지정된 바와 같은 값들)로 설정된다. 선형 어드레스 카운터는 "Clear address counter" 명령어에 의해 다시 초기화된다. 변환 ROM(406)을 통해 발생된 어드레스를 이용하여, "Rpt 189; Copy_translate" 명령어에 의해 189개 비트(정보 비트, 패리티 비트, 및 테일링 비트)가 제1 버퍼(408)로부터 제2 버퍼(410)로 이동된다.
컨볼루션 인코딩을 위한 제어 시퀀스는 아래와 같다.
1) Set Conv_encode parameters;
2) Clear address counter;
3) Rpt 189; Leng 2; conv_encode_000011; and
4) Rpt 78; Copy.
"Set Conv_encode parameters" 명령어에 의해 컨볼루션 인코딩을 위한 파라미터들이 설정된다. 어드레스 카운터는 "Clear address counter" 명령어에 의해 초기화된다. 컨볼루션 인코딩을 위한 패턴 "000011"을 이용하여 컨볼루션 인코더(414)를 통해 189개 클래스 1 비트가 제2 버퍼(410)로부터 이동된다. 인코딩된 출력은 제1 버퍼(408)에 넣는다. (78개 클래스 2 비트가 인코딩을 통해 보호되기 않기 때문에) "Rpt 78; Copy" 명령어에 의해 78개 클래스 2 비트가 제2 버퍼(410)로부터 제1 버퍼(408)로 이동된다.
재정렬 및 분할을 위한 제어 시퀀스는 아래와 같다.
1) Set Indx_Base to label "Interleave_3.1.3_Tb1_1_P169" of the translation ROM;
2) Clear address counter; and
3) Rpt 456; Copy_translate.
미리 정의된 규칙에 따라(즉, 미리 정의된 표에 기초하여), 인코딩된 456 비트가 재정렬되고 분할된다. 인덱스 베이스는 미리 정의된 값들(즉, 3GPP TS 45.003 v.7.10의 표 1에 지정된 바와 같은 값들)로 설정된다. 어드레스 카운터는 "Clear address counter" 명령어에 의해 초기화된다. 재정렬 및 분할을 완료하기 위하여, 변환 ROM(406)을 통해 얻어진 어드레스를 이용하여 인코딩된 456개 비트가 제1 버퍼(408)로부터 제2 버퍼(410)로 이동된다. 그 다음, 제2 버퍼(410)의 재정렬되고 분할된 비트가 SMA로 이동된다.
상기 처리는 약 16개의 제어 블록 워드, 약 908개의 ROM 워드, 및 약 1,151개의 클록 틱(clock tick)을 요구한다. 52 MHz에서, 1,500개의 클록 틱은 단지 1개GSM 타임슬롯의 5%에 불과한 28.85μs와 같다. 본 발명에 따라, 비용 및 전력의 상당한 절약이 가능하다.
하드웨어 가속기(400)는 인터리빙을 위해 최대 6개의 상이한 채널들로부터 재정렬되고 분할된 비트를 저장하기 위하여, 바람직하게 6개의 SMA 소스들(즉, 공유 메모리의 6개의 상이한 영역들)을 이용한다. 인터리빙은 대각 인터리빙일 수 있다.
도 5는 본 발명에 따른 예시적 대각 인터리빙 패턴을 보여주는 도면이다. 각각의 채널로부터 재정렬되고 분할된 비트는 SMA에 열(column)로 기록되고(물리적인 것이 아닌 개념적으로), SMA로부터 비트를 행(row)으로 판독함으로써 버스트가 발생됨으로써(물리적인 것이 아닌 개념적으로), 대각 인터리빙이 수행된다. 각각의 열은 한 채널로부터 재정렬되고 분할된 비트를 나타낸다. 최대 6개의 상이한 채널에 대해 재정렬되고 분할된 비트는 SMA의 별도의 영역들에 저장된다. 각각의 채널로부터의 하나의 데이터 프레임은 총 456개 비트를 갖는다. 각각의 행은 버스트를 나타낸다. 각각의 버스트는 114개 비트를 포함한다. 한 채널의 비트는 22개의 버스트 상에 인터리빙된다. 도 5에 도시된 바와 같이, 4개의 상이한 인터리빙 패턴들, 즉 {12,24,24,24,24,6}, {6,24,24,24,24,12}, {24,24,24,24,18}, 및 {18,24,24,24,24}가 존재한다. 4개의 패턴 각각은 최대 6개의 상이한 채널들로부터의 비트를 포함한다. 주목할 것은, 도 5에 도시된 패턴들은 예시이며, 임의의 다른 패턴들이 본 발명에 따른 대안으로서 구현될 수 있다는 것이다. 도 5에 도시된 대각 인터리빙은 별도의 하드웨어 가속기에 의해 구현될 수 있다.
낮은 레벨의 암호화(ciphering)는 버스트 데이터와 XOR 연산된 선형 피드백 시프트 레지스터(LFSR, linear feedback shift register) 기반 스트림의 형태로 제공될 수 있으며, 프론트엔드 RRC(root raised cosine) 필터에 의해 송신(Tx) 칩으로부터 심볼들이 수신된다.
실시예
1. 공유 메모리와 통신하며, 무선 송신 및 수신을 위해 정보 비트들에 대해 채널 처리를 수행하는 하드웨어 가속기.
2. 실시예 1의 하드웨어 가속기는 정보 비트들 및 처리된 정보 비트들을 저장하기 위한 제1 버퍼 및 제2 버퍼를 포함한다.
3. 실시예 2의 하드웨어 가속기는 제1 버퍼 및 제2 버퍼에 액세스하기 위한 어드레스를 발생시키는 적어도 하나의 어드레스 발생기를 포함한다.
4. 실시예 2와 실시예 3의 하드웨어 가속기 중 임의의 하나는 제1 버퍼 및 제2 버퍼에 액세스하기 위해 변환된 어드레스를 발생시키는 변환 ROM을 포함한다.
5. 실시예 1 내지 실시예 4의 하드웨어 가속기 중 임의의 하나는 공유 메모리에 액세스하기 위한 인터페이스를 포함한다.
6. 실시예 1 내지 실시예 5의 하드웨어 가속기 중 임의의 하나는 패리티 비트들을 발생시키기 위하여 정보 비트들과 처리된 정보 비트들 중 한 가지에 대해 블록 코딩을 수행하는 CRC 발생기를 포함한다.
7. 실시예 1 내지 실시예 6의 하드웨어 가속기 중 임의의 하나는 정보 비트들과 처리된 정보 비트들 중 한 가지에 대해 컨볼루션 인코딩을 수행하는 컨볼루션 인코더를 포함한다.
8. 실시예 7의 하드웨어 가속기는 CRC 발생기, 컨볼루션 인코더, 및 어드레스 발생기에 대한 파라미터들을 설정하기 위해 제어 신호를 발생시키고, 제1 버퍼, 제2 버퍼, 공유 메모리, CRC 발생기, 및 컨볼루션 인코더 간에 정보 비트들 및 처리된 정보 비트들을 이동시키는 동안 정보 비트들 및 처리된 정보 비트들을 조작함으로써, 정보 비트들에 대해 채널 처리를 행하기 위한 미리 정의된 시퀀스의 제어 명령어들을 수행하도록 구성된 제어기를 포함한다.
9. 실시예 8의 하드웨어 가속기에 있어서, 상기 제어기는 복수의 채널 각각에 대해 파라미터들을 설정하고, 상기 복수의 채널에 대해 미리 정의된 시퀀스의 제어 명령어들을 수행하도록 구성된다.
10. 실시예 1 내지 실시예 9의 하드웨어 가속기 중 임의의 하나에 있어서, 상기 채널 처리는 제1 재정렬, 블록 코딩, 제2 재정렬, 패리티 테일링, 펑춰링, 컨볼루션 인코딩, 및 인터리빙 중 적어도 하나를 포함한다.
11. 실시예 8 내지 실시예 10의 하드웨어 가속기 중 임의의 하나에 있어서, 상기 제어기는 제어 워드에 기초하여 미리 정의된 시퀀스의 제어 명령어들을 수행하도록 구성된다.
12. 실시예 11의 하드웨어 가속기에 있어서, 상기 제어 워드는 제어 블록에 포함된다.
13. 실시예 11과 실시예 12의 하드웨어 가속기 중 임의의 하나에 있어서, 상기 제어 워드는 공유 메모리로부터 검색된다.
14. 실시예 8 내지 실시예 13의 하드웨어 가속기 중 임의의 하나에 있어서, 상기 제어기는 비트 조작을 수행하는 동안 제1 버퍼와 제2 버퍼 간에 데이터를 이동시키도록 구성된다.
15. 실시예 8 내지 실시예 14의 하드웨어 가속기 중 임의의 하나에 있어서,상기 제어기는 변환 ROM을 통해 발생된 어드레스를 이용하여 제1 버퍼와 제2 버퍼 중 하나로부터 데이터를 검색하고, 검색한 데이터를 다른 버퍼에 넣도록 구성된다.
16. 실시예 8 내지 실시예 15의 하드웨어 가속기 중 임의의 하나에 있어서,상기 제어기는 제1 버퍼와 제2 버퍼 중 하나로부터 데이터를 검색하고, 변환 ROM을 통해 발생된 어드레스를 이용하여, 검색한 데이터를 다른 버퍼에 넣도록 구성된다.
17. 실시예 8 내지 실시예 16의 하드웨어 가속기 중 임의의 하나에 있어서, 상기 제어기는 데이터를 제1 버퍼와 제2 버퍼 중 하나로부터 CRC 발생기로 이동시키도록 구성된다.
18. 실시예 8 내지 실시예 17의 하드웨어 가속기 중 임의의 하나에 있어서,상기 제어기는 변환 ROM에 의해 발생된 어드레스를 이용하여 데이터를 제1 버퍼와 제2 버퍼 중 하나로부터 CRC 발생기로 이동시키도록 구성된다.
19. 실시예 8 내지 실시예 18의 하드웨어 가속기 중 임의의 하나에 있어서,상기 제어기는 컨볼루션 인코더를 통하여 제1 버퍼와 제2 버퍼 중 하나로부터 데이 터를 이동시키도록 구성된다.
20. 실시예 8 내지 실시예 19의 하드웨어 가속기 중 임의의 하나에 있어서,상기 제어기는 데이터를 CRC 발생기로부터 제1 버퍼와 제2 버퍼 중 하나로 이동시키도록 구성된다.
21. 실시예 8 내지 실시예 20의 하드웨어 가속기 중 임의의 하나에 있어서, 상기 제어기는 데이터를 제1 버퍼와 제2 버퍼 중 하나로부터 공유 메모리로 이동시키도록 구성된다.
22. 실시예 8 내지 실시예 21의 하드웨어 가속기 중 임의의 하나에 있어서,상기 제어기는 데이터를 공유 메모리로부터 제1 버퍼와 제2 버퍼 중 하나로 이동시키도록 구성된다.
23. 실시예 8 내지 실시예 22의 하드웨어 가속기 중 임의의 하나에 있어서,상기 제어기는 최대 6개의 상이한 채널들로부터 상기 처리된 정보 비트들을 저장하기 위하여 6개의 SMA 소스들을 이용하도록 구성된다.
24. 실시예 23의 하드웨어 가속기에 있어서, 상기 제어기는 대각 인터리빙을 수행하도록 구성된다.
25. 실시예 24의 하드웨어 가속기에 있어서, 상기 대각 인터리빙은 별도의 하드웨어 가속기를 이용하여 수행된다.
26. 무선 통신 장치의 하드웨어 가속기를 이용하여 채널 처리를 수행하기 위한 방법.
27. 실시예 26에 따른 방법은 정보 비트들을 수신하는 단계를 포함한다.
28. 실시예 27에 따른 방법은 하드웨어 가속기를 이용하여 정보 비트들에 대해 채널 처리를 수행하는 단계를 포함하고, 상기 하드웨어 가속기는 제1 버퍼, 제2 버퍼, 공유 메모리, CRC 발생기, 및 컨볼루션 인코더 간에 정보 비트들 및 처리된 정보 비트들을 이동시키는 동안 미리 정의된 시퀀스의 채널 처리 명령어들을 수행한다.
29. 실시예 28에 따른 방법에 있어서, 복수의 채널 각각에 대해 파라미터들이 설정되고, 상기 복수의 채널에 대해 미리 정의된 시퀀스의 제어 명령어들이 수행된다.
30. 실시예 28과 실시예 29 중 임의의 하나에 따른 방법에 있어서, 상기 채널 처리는 제1 재정렬, 블록 코딩, 제2 재정렬, 패리티 테일링, 펑춰링, 컨볼루션 인코딩, 및 인터리빙 중 적어도 하나를 포함한다.
31. 실시예 28 내지 실시예 30 중 임의의 하나에 따른 방법에 있어서, 상기 하드웨어 가속기는 최대 6개의 상이한 채널들로부터 상기 처리된 정보 비트들을 저장하기 위하여 6개의 SMA 소스들을 이용하도록 구성된다.
32. 실시예 31에 따른 방법에 있어서, 상기 인터리빙은 대각 인터리빙이다.
33. 실시예 32에 따른 방법에 있어서, 상기 대각 인터리빙은 별도의 하드웨어 가속기를 이용하여 수행된다.
34. 실시예 28 내지 실시예 33 중 임의의 하나에 따른 방법에 있어서, 상기 미리 정의된 시퀀스의 제어 명령어는 제어 워드에 기초하여 수행된다.
35. 실시예 34에 따른 방법에 있어서, 상기 제어 워드는 제어 블록에 포함된 다.
36. 실시예 34와 실시예 35 중 임의의 하나에 따른 방법에 있어서, 상기 제어 워드는 공유 메모리로부터 검색된다.
37. 실시예 28 내지 실시예 36 중 임의의 하나에 따른 방법에 있어서, 상기 하드웨어 가속기는 비트 조작을 수행하는 동안 제1 버퍼와 제2 버퍼 간에 데이터를 이동시키도록 구성된다.
38. 실시예 28 내지 실시예 37 중 임의의 하나에 따른 방법에 있어서, 상기 하드웨어 가속기는 변환 ROM을 통하여 발생된 어드레스를 이용하여 제1 버퍼와 제2 버퍼 중 하나로부터 데이터를 검색하고, 검색한 데이터를 다른 버퍼에 넣도록 구성된다.
39. 실시예 28 내지 실시예 38 중 임의의 하나에 따른 방법에 있어서, 상기 하드웨어 가속기는 제1 버퍼와 제2 버퍼 중 하나로부터 데이터를 검색하고, 변환 ROM을 통하여 발생된 어드레스를 이용하여, 검색한 데이터를 다른 버퍼에 넣도록 구성된다.
40. 실시예 28 내지 실시예 39 중 임의의 하나에 따른 방법에 있어서, 상기 하드웨어 가속기는 데이터를 제1 버퍼와 제2 버퍼 중 하나로부터 CRC 발생기로 이동시키도록 구성된다.
41. 실시예 28 내지 실시예 40 중 임의의 하나에 따른 방법에 있어서, 상기 하드웨어 가속기는 변환 ROM에 의해 발생된 어드레스를 이용하여 데이터를 제1 버퍼와 제2 버퍼 중 하나로부터 CRC 발생기로 이동시키도록 구성된다.
42. 실시예 28 내지 실시예 41 중 임의의 하나에 따른 방법에 있어서, 상기 하드웨어 가속기는 컨볼루션 인코더를 통하여 제1 버퍼와 제2 버퍼 중 하나로부터 데이터를 이동시키도록 구성된다.
43. 실시예 28 내지 실시예 42 중 임의의 하나에 따른 방법에 있어서, 상기 하드웨어 가속기는 데이터를 CRC 발생기로부터 제1 버퍼와 제2 버퍼 중 하나로 이동시키도록 구성된다.
44. 실시예 28 내지 실시예 43 중 임의의 하나에 따른 방법에 있어서, 상기 하드웨어 가속기는 데이터를 제1 버퍼와 제2 버퍼 중 하나로부터 공유 메모리로 이동시키도록 구성된다.
45. 실시예 28 내지 실시예 44 중 임의의 하나에 따른 방법에 있어서, 상기 하드웨어 가속기는 데이터를 공유 메모리로부터 제1 버퍼와 제2 버퍼 중 하나로 이동시키도록 구성된다.
본 발명의 특징들 및 요소들이 특정한 조합으로 바람직한 실시예에서 기술되었지만, 각각의 특징 또는 요소는 바람직한 실시예의 다른 특징들 및 요소들 없이 단독으로 이용될 수 있거나 또는 본 발명의 다른 특징들 및 요소들과의 다양한 조합으로 또는 다른 특징들 및 요소들 없이 이용될 수 있다. 본 발명에서 제공되는 방법 또는 순서도는 범용 컴퓨터 또는 프로세서에 의한 실행을 위해 컴퓨터 판독가능 저장 매체에 유형으로 내장된 컴퓨터 프로그램, 소프트웨어, 또는 펌웨어로 구현될 수 있다. 컴퓨터 판독 가능 저장 매체의 예들은, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 레지스터, 캐시 메모리, 반도체 메모리 장치, 내부 하드 디스크 및 탈착가능 디스크와 같은 자기 매체, 자기 광학 매체, 및 CD-ROM 디스크 및 DVD(digital versatile disk)와 같은 광학 매체를 포함한다.
예로서, 적합한 프로세서들은, 범용 프로세서, 특수 용도의 프로세서, 종래의 프로세서, 디지털 신호 프로세서(DSP, digital signal processor), 복수의 마이크로프로세서, DSP 코어와 연관된 하나 이상의 마이크로프로세서, 제어기, 마이크로제어기, 주문형 반도체(ASIC, Application Specific Integrated Circuit), 필드 프로그래머블 게이트 어레이(FPGA, Field Programmable Gate Array) 회로, 임의의 다른 종류의 집적 회로(IC), 및/또는 상태 기계를 포함한다.
소프트웨어와 연관된 프로세서는, 무선 송수신 유닛(WTRU), 사용자 장치(UE), 단말기, 기지국, 무선 네트워크 제어기(RNC, radio network controller), 또는 임의의 호스트 컴퓨터에서 이용하기 위한 무선 주파수 트랜시버를 실행하는데 이용될 수 있다. WTRU는 카메라, 비디오 카메라 모듈, 비디오폰, 스피커폰, 진동 장치, 스피커, 마이크로폰, 텔레비전 트랜시버, 핸즈 프리 헤드셋, 키보드, 블루투스® 모듈, 주파수 변조(FM) 무선 유닛, 액정 디스플레이(LCD) 유닛, 유기 발광 다이오드(OLED) 디스플레이 유닛, 디지털 음악 플레이어, 미디어 플레이어, 비디오 게임 플레이어 모듈, 인터넷 브라우저, 및/또는 무선 근거리 통신망(WLAN) 모듈과 같이, 하드웨어 및/또는 소프트웨어로 실행되는 모듈과 함께 사용될 수 있다.
첨부한 도면들과 함께 이해되기 위하여 예로서 주어진 바람직한 실시예에 대한 후속하는 설명으로부터 본 발명을 더욱 자세히 이해할 수 있다.
도 1은 2G 시스템을 위한 종래의 WTRU의 블록도이다.
도 2는 GSM, GPRS, 및 EDGE의 복수의 채널에 대한 종래의 정보 비트의 처리를 보여주는 도면이다.
도 3은 본 발명에 따라 하드웨어 가속기에 의해 수행된 예시적 데이터 처리 흐름을 보여주는 도면이다.
도 4는 본 발명에 따른 하드웨어 가속기 및 SMA를 보여주는 도면이다.
도 5는 본 발명에 따른 예시적 대각 인터리빙 패턴을 보여주는 도면이다.

Claims (28)

  1. 공유 메모리와 통신하며, 무선 송신 및 수신을 위해 정보 비트들에 대해 채널 처리를 수행하는 하드웨어 가속기에 있어서,
    상기 정보 비트들 및 처리된 정보 비트들을 저장하기 위한 제1 버퍼 및 제2 버퍼;
    상기 제1 버퍼 및 제2 버퍼에 액세스하기 위한 어드레스를 발생시키는 적어도 하나의 어드레스 발생기;
    상기 제1 버퍼 및 제2 버퍼에 액세스하기 위해 변환된 어드레스(translated address)를 발생시키기 위한 변환 판독 전용 메모리(ROM);
    상기 공유 메모리에 액세스하기 위한 인터페이스;
    패리티(parity) 비트들을 발생시키기 위하여 상기 정보 비트들과 처리된 정보 비트들 중 한 가지에 대해 블록 코딩을 수행하는 순환 잉여 검사(CRC, cyclic redundancy check) 발생기;
    상기 정보 비트들과 처리된 정보 비트들 중 한 가지에 대해 컨볼루션(convolutional) 인코딩을 수행하는 컨볼루션 인코더; 및
    상기 CRC 발생기, 상기 컨볼루션 인코더, 및 상기 어드레스 발생기에 대해 파라미터들을 설정하기 위한 제어 신호들을 발생시키고, 상기 제1 버퍼와 상기 제2 버퍼 사이에 상기 정보 비트들 및 처리된 정보 비트들을 서로(back and forth) 이동시키는 동안, 상기 정보 비트들 및 처리된 정보 비트들을 조작함으로 써(manipulate), 상기 정보 비트들에 대해 채널 처리를 행하기 위한 미리 정의된 시퀀스의 제어 명령어들(commands)을 수행하도록 구성된 제어기
    를 포함하는 하드웨어 가속기.
  2. 제1항에 있어서, 상기 제어기는 복수의 채널들 각각에 대해 파라미터들을 설정하고, 상기 복수의 채널들에 대해 미리 정의된 시퀀스의 제어 명령어들을 수행하도록 구성되는 것인, 하드웨어 가속기.
  3. 제1항에 있어서, 상기 채널 처리는 제1 재정렬(reordering), 블록 코딩, 제2 재정렬, 패리티 테일링(parity tailing), 펑춰링(puncturing), 컨볼루션 인코딩, 및 인터리빙(interleaving) 중 적어도 하나를 포함하는 것인, 하드웨어 가속기.
  4. 제1항에 있어서, 상기 제어기는 상기 변환 ROM을 통해 발생된 어드레스를 이용하여 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 데이터를 검색하고, 상기 검색한 데이터를 다른 버퍼에 넣도록 구성되는 것인, 하드웨어 가속기.
  5. 제1항에 있어서, 상기 제어기는 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 데이터를 검색하고, 상기 변환 ROM을 통해 발생된 어드레스를 이용하여 상기 검색한 데이터를 다른 버퍼에 넣도록 구성되는 것인, 하드웨어 가속기.
  6. 제1항에 있어서, 상기 제어기는 데이터를 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 상기 CRC 발생기로 이동시키도록 구성되는 것인, 하드웨어 가속기.
  7. 제1항에 있어서, 상기 제어기는 상기 변환 ROM에 의해 발생된 어드레스를 이용하여 데이터를 상기 제1 버퍼와 제2 버퍼 중 하나로부터 상기 CRC 발생기로 이동시키도록 구성되는 것인, 하드웨어 가속기.
  8. 제1항에 있어서, 상기 제어기는 상기 컨볼루션 인코더를 통해 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 데이터를 이동시키도록 구성되는 것인, 하드웨어 가속기.
  9. 제1항에 있어서, 상기 제어기는 데이터를 상기 CRC 발생기로부터 상기 제1 버퍼와 상기 제2 버퍼 중 하나로 이동시키도록 구성되는 것인, 하드웨어 가속기.
  10. 제1항에 있어서, 상기 제어기는 데이터를 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 상기 공유 메모리로 이동시키도록 구성되는 것인, 하드웨어 가속기.
  11. 제1항에 있어서, 상기 제어기는 데이터를 상기 공유 메모리로부터 상기 제1 버퍼와 제2 버퍼 중 하나로 이동시키도록 구성되는 것인, 하드웨어 가속기.
  12. 제1항에 있어서, 상기 제어기는 최대 6개의 상이한 채널들로부터 상기 처리된 정보 비트들을 저장하기 위해 6개의 SMA 소스들을 이용하도록 구성되는 것인, 하드웨어 가속기.
  13. 제12항에 있어서, 상기 제어기는 대각 인터리빙(diagonal interleaving)을 수행하도록 구성되는 것인, 하드웨어 가속기.
  14. 제13항에 있어서, 상기 대각 인터리빙은 별도의 하드웨어 가속기를 이용하여 수행되는 것인, 하드웨어 가속기.
  15. 무선 통신 장치 내의 하드웨어 가속기를 이용하여 채널 처리를 수행하기 위한 방법에 있어서,
    정보 비트들을 수신하는 단계; 및
    하드웨어 가속기를 이용하여 상기 정보 비트들에 대해 채널 처리를 수행하는 단계를 포함하고,
    상기 하드웨어 가속기는 제1 버퍼와 제2 버퍼 사이에 상기 정보 비트들 및 처리된 정보 비트들을 서로(back and forth) 이동시키는 동안, 채널 처리를 위한 미리 정의된 시퀀스의 명령어들을 수행하는 것인, 채널 처리 수행 방법.
  16. 제15항에 있어서, 복수의 채널들 각각에 대해 파라미터들이 설정되고, 상기 복수의 채널들에 대해 상기 미리 정의된 시퀀스의 제어 명령어들이 수행되는 것인, 채널 처리 수행 방법.
  17. 제15항에 있어서, 상기 채널 처리는, 제1 재정렬, 블록 코딩, 제2 재정렬, 패리티 테일링, 펑춰링, 컨볼루션 인코딩, 및 인터리빙 중 적어도 하나를 포함하는 것인, 채널 처리 수행 방법.
  18. 제17항에 있어서, 상기 하드웨어 가속기는 최대 6개의 상이한 채널들로부터 상기 처리된 정보 비트들을 저장하기 위해 6개의 SMA 소스들을 이용하도록 구성되는 것인, 채널 처리 수행 방법.
  19. 제18항에 있어서, 상기 인터리빙은 대각 인터리빙인 것인, 채널 처리 수행 방법.
  20. 제19항에 있어서, 상기 대각 인터리빙은 별도의 하드웨어 가속기를 이용하여 수행되는 것인, 채널 처리 수행 방법.
  21. 제15항에 있어서, 상기 하드웨어 가속기는 변환 판독 전용 메모리(ROM)를 통해 발생된 어드레스를 이용하여 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 데이터를 검색하고, 상기 검색한 데이터를 다른 버퍼에 넣도록 구성되는 것인, 채널 처리 수행 방법.
  22. 제15항에 있어서, 상기 하드웨어 가속기는 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 데이터를 검색하고, 변환 판독 전용 메모리(ROM)를 통해 발생된 어드레스를 이용하여 상기 검색한 데이터를 다른 버퍼에 넣도록 구성되는 것인, 채널 처리 수행 방법.
  23. 제15항에 있어서, 상기 하드웨어 가속기는 데이터를 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 CRC 발생기로 이동시키시도록 구성되는 것인, 채널 처리 수행 방법.
  24. 제15항에 있어서, 상기 하드웨어 가속기는 변환 판독 전용 메모리(ROM)에 의해 발생된 어드레스를 이용하여 데이터를 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 CRC 발생기로 이동시키도록 구성되는 것인, 채널 처리 수행 방법.
  25. 제15항에 있어서, 상기 하드웨어 가속기는 컨볼루션 인코더를 통하여 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 데이터를 이동시키도록 구성되는 것인, 채널 처리 수행 방법.
  26. 제15항에 있어서, 상기 하드웨어 가속기는 데이터를 CRC 발생기로부터 상기 제1 버퍼와 상기 제2 버퍼 중 하나로 이동시키도록 구성되는 것인, 채널 처리 수행 방법.
  27. 제15항에 있어서, 상기 하드웨어 가속기는 데이터를 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 공유 메모리로 이동시키도록 구성되는 것인, 채널 처리 수행 방법.
  28. 제15항에 있어서, 상기 하드웨어 가속기는 데이터를 공유 메모리로부터 상기 제1 버퍼와 상기 제2 버퍼 중 하나로 이동시키도록 구성되는 것인, 채널 처리 수행 방법.
KR1020097003321A 2006-07-14 2007-07-12 심볼 레이트 하드웨어 가속기 KR20090031783A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US83090906P 2006-07-14 2006-07-14
US60/830,909 2006-07-14

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020097002808A Division KR20090039761A (ko) 2006-07-14 2007-07-12 심볼 레이트 하드웨어 가속기

Publications (1)

Publication Number Publication Date
KR20090031783A true KR20090031783A (ko) 2009-03-27

Family

ID=38777966

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020097003321A KR20090031783A (ko) 2006-07-14 2007-07-12 심볼 레이트 하드웨어 가속기
KR1020097002808A KR20090039761A (ko) 2006-07-14 2007-07-12 심볼 레이트 하드웨어 가속기

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020097002808A KR20090039761A (ko) 2006-07-14 2007-07-12 심볼 레이트 하드웨어 가속기

Country Status (7)

Country Link
US (1) US8015471B2 (ko)
EP (1) EP2052483A2 (ko)
JP (1) JP5216766B2 (ko)
KR (2) KR20090031783A (ko)
CN (1) CN101490994B (ko)
TW (2) TW200947978A (ko)
WO (1) WO2008008512A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170114405A (ko) * 2016-04-04 2017-10-16 주식회사 맴레이 플래시 기반 가속기 및 이를 포함하는 컴퓨팅 디바이스

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171175B2 (en) * 2009-01-23 2012-05-01 Qualcomm Incorporated Methods and systems using data rate driven protocol accelerator for mobile devices
EP3010160A1 (en) * 2010-04-01 2016-04-20 LG Electronics Inc. Compressed ip-plp stream with ofdm
US8971321B2 (en) * 2012-12-11 2015-03-03 Futurewei Technologies, Inc. System and method for accelerating and decelerating packets
JP2014230159A (ja) * 2013-05-23 2014-12-08 株式会社メガチップス 画像処理装置
KR101891116B1 (ko) 2014-06-02 2018-08-23 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
CN104915322B (zh) * 2015-06-09 2018-05-01 中国人民解放军国防科学技术大学 一种卷积神经网络硬件加速方法
US10302600B2 (en) 2016-01-19 2019-05-28 Northrop Grumman Innovation Systems, Inc. Inspection devices and related systems and methods
KR101847262B1 (ko) 2016-03-18 2018-05-28 연세대학교 산학협력단 하드웨어 가속기를 포함하는 메인 메모리 및 메인 메모리의 동작 방법
CN106131228B (zh) * 2016-08-31 2023-05-12 上海赋锦信息技术股份有限公司 智慧城市网络节点通讯系统
JP7242634B2 (ja) * 2017-07-30 2023-03-20 ニューロブレード リミテッド メモリチップ
US10430355B1 (en) 2018-10-30 2019-10-01 International Business Machines Corporation Mixing restartable and non-restartable requests with performance enhancements
US11693795B2 (en) * 2020-04-17 2023-07-04 Texas Instruments Incorporated Methods and apparatus to extend local buffer of a hardware accelerator

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4129809C2 (de) 1991-01-28 2000-08-17 Bosch Gmbh Robert Mehrrechnersystem
EP0710908A3 (en) * 1994-11-01 1998-04-29 Motorola, Inc. A co-processor that performs multiple communication tasks on an integrated circuit
US5845322A (en) * 1996-09-17 1998-12-01 Vlsi Technology, Inc. Modular scalable multi-processor architecture
DE69919059T2 (de) * 1998-02-04 2005-01-27 Texas Instruments Inc., Dallas Datenverarbeitungssytem mit einem digitalen Signalprozessor und einem Koprozessor und Datenverarbeitungsverfahren
US6629187B1 (en) * 2000-02-18 2003-09-30 Texas Instruments Incorporated Cache memory controlled by system address properties
KR20020067918A (ko) * 2000-10-17 2002-08-24 코닌클리케 필립스 일렉트로닉스 엔.브이. 멀티 표준 채널 디코더
US7729322B2 (en) * 2002-02-28 2010-06-01 Qualcomm Incorporated HDLC hardware accelerator
US8284844B2 (en) * 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
EP1416658A1 (en) 2002-10-30 2004-05-06 Agilent Technologies Inc. Power efficient symbol processing
GB2395306B (en) * 2002-11-15 2006-02-15 Imagination Tech Ltd A configurable processor architecture
WO2004099157A1 (en) * 2003-05-07 2004-11-18 Pfizer Products Inc. Cannabinoid receptor ligands and uses thereof
US7257757B2 (en) 2004-03-31 2007-08-14 Intel Corporation Flexible accelerators for physical layer processing
US7636857B2 (en) * 2004-05-24 2009-12-22 Interdigital Technology Corporation Data-mover controller with plural registers for supporting ciphering operations
US7643549B2 (en) * 2004-09-28 2010-01-05 Broadcom Corporation Wireless device having a hardware accelerator to support equalization processing
US20070198815A1 (en) * 2005-08-11 2007-08-23 Coresonic Ab Programmable digital signal processor having a clustered SIMD microarchitecture including a complex short multiplier and an independent vector load unit
US9059946B2 (en) * 2005-09-29 2015-06-16 Broadcom Corporation Passive optical network (PON) packet processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170114405A (ko) * 2016-04-04 2017-10-16 주식회사 맴레이 플래시 기반 가속기 및 이를 포함하는 컴퓨팅 디바이스

Also Published As

Publication number Publication date
WO2008008512A2 (en) 2008-01-17
TW200947978A (en) 2009-11-16
JP2009544224A (ja) 2009-12-10
CN101490994A (zh) 2009-07-22
US20080016287A1 (en) 2008-01-17
TW200810438A (en) 2008-02-16
US8015471B2 (en) 2011-09-06
CN101490994B (zh) 2012-06-20
JP5216766B2 (ja) 2013-06-19
WO2008008512A3 (en) 2008-04-10
EP2052483A2 (en) 2009-04-29
KR20090039761A (ko) 2009-04-22

Similar Documents

Publication Publication Date Title
KR20090031783A (ko) 심볼 레이트 하드웨어 가속기
US20080301536A1 (en) Channel coding and rate matching for lte control channels
JP5379127B2 (ja) レートマッチングによる計算効率の高い畳み込み符号化
US6577678B2 (en) Method and system for reconfigurable channel coding
KR20090077023A (ko) 고속 공유 제어 채널 데이터를 인코딩하고 디코딩하는 방법 및 장치
EP2241012B1 (en) System and method for pseudorandom permutation for interleaving in wireless communications
CA2689587A1 (en) An apparatus comprising a circular buffer and method for assigning redundancy versions to a circular buffer
JP2006042342A (ja) 多重アンテナ通信システムにおける空間インタリーブ通信のための方法および装置
KR20000046050A (ko) 이동통신시스템에서 터보 인코더의 펑처링 장치 및 방법
US20090024909A1 (en) Turbo coding having combined turbo de-padding and rate matching de-padding
KR100341560B1 (ko) 확산 스펙트럼 통신 시스템에서 콘볼루션 코드화된 신호를 인터리빙하는 방법
KR100484555B1 (ko) 에러 정정 방법 및 장치
EP3367575B1 (en) Removal of dummy bits prior to bit collection for 3gpp lte circular buffer rate matching
JP2004282787A (ja) 信号送信装置および符号化装置
RU2542669C1 (ru) Способ кодовой цикловой синхронизации блоков информации для диапазона фиксированных скоростей работы в канале связи
TW202337183A (zh) 資料傳輸的方法、裝置、設備、系統及可讀存儲介質
US8830966B2 (en) Discontinuous transmission in a frame
JP2006304348A (ja) 誤り訂正符号化装置
KR20060091835A (ko) 이동통신 시스템에서의 전송 채널 다중화 방법 및 그 장치
KR20030042687A (ko) 터보 디코더 및 디코딩 방법
KR20070041617A (ko) 업링크 부호화 및 다중화 구현
KR20140144055A (ko) 터보 부호 시스템
JP2011029929A (ja) ターボ符号の復号器及び復号方法

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application