KR20090031783A - 심볼 레이트 하드웨어 가속기 - Google Patents
심볼 레이트 하드웨어 가속기 Download PDFInfo
- 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
Links
- 239000000872 buffer Substances 0.000 claims abstract description 168
- 238000012545 processing Methods 0.000 claims abstract description 49
- 238000013519 translation Methods 0.000 claims abstract description 22
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 3
- 238000000034 method Methods 0.000 claims description 43
- 238000004891 communication Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 241000238876 Acari Species 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 241000353097 Molva molva Species 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
- H04L1/0043—Realisations of complexity reduction techniques, e.g. use of look-up tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0065—Serial concatenated codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use 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
본 발명은 무선 통신 시스템에 관한 것이다. 더 상세하게, 본 발명은 무선 통신용 심볼 레이트 하드웨어 가속기에 관한 것이다.
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 버퍼 및 제2 버퍼;상기 제1 버퍼 및 제2 버퍼에 액세스하기 위한 어드레스를 발생시키는 적어도 하나의 어드레스 발생기;상기 제1 버퍼 및 제2 버퍼에 액세스하기 위해 변환된 어드레스(translated address)를 발생시키기 위한 변환 판독 전용 메모리(ROM);상기 공유 메모리에 액세스하기 위한 인터페이스;패리티(parity) 비트들을 발생시키기 위하여 상기 정보 비트들과 처리된 정보 비트들 중 한 가지에 대해 블록 코딩을 수행하는 순환 잉여 검사(CRC, cyclic redundancy check) 발생기;상기 정보 비트들과 처리된 정보 비트들 중 한 가지에 대해 컨볼루션(convolutional) 인코딩을 수행하는 컨볼루션 인코더; 및상기 CRC 발생기, 상기 컨볼루션 인코더, 및 상기 어드레스 발생기에 대해 파라미터들을 설정하기 위한 제어 신호들을 발생시키고, 상기 제1 버퍼와 상기 제2 버퍼 사이에 상기 정보 비트들 및 처리된 정보 비트들을 서로(back and forth) 이동시키는 동안, 상기 정보 비트들 및 처리된 정보 비트들을 조작함으로 써(manipulate), 상기 정보 비트들에 대해 채널 처리를 행하기 위한 미리 정의된 시퀀스의 제어 명령어들(commands)을 수행하도록 구성된 제어기를 포함하는 하드웨어 가속기.
- 제1항에 있어서, 상기 제어기는 복수의 채널들 각각에 대해 파라미터들을 설정하고, 상기 복수의 채널들에 대해 미리 정의된 시퀀스의 제어 명령어들을 수행하도록 구성되는 것인, 하드웨어 가속기.
- 제1항에 있어서, 상기 채널 처리는 제1 재정렬(reordering), 블록 코딩, 제2 재정렬, 패리티 테일링(parity tailing), 펑춰링(puncturing), 컨볼루션 인코딩, 및 인터리빙(interleaving) 중 적어도 하나를 포함하는 것인, 하드웨어 가속기.
- 제1항에 있어서, 상기 제어기는 상기 변환 ROM을 통해 발생된 어드레스를 이용하여 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 데이터를 검색하고, 상기 검색한 데이터를 다른 버퍼에 넣도록 구성되는 것인, 하드웨어 가속기.
- 제1항에 있어서, 상기 제어기는 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 데이터를 검색하고, 상기 변환 ROM을 통해 발생된 어드레스를 이용하여 상기 검색한 데이터를 다른 버퍼에 넣도록 구성되는 것인, 하드웨어 가속기.
- 제1항에 있어서, 상기 제어기는 데이터를 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 상기 CRC 발생기로 이동시키도록 구성되는 것인, 하드웨어 가속기.
- 제1항에 있어서, 상기 제어기는 상기 변환 ROM에 의해 발생된 어드레스를 이용하여 데이터를 상기 제1 버퍼와 제2 버퍼 중 하나로부터 상기 CRC 발생기로 이동시키도록 구성되는 것인, 하드웨어 가속기.
- 제1항에 있어서, 상기 제어기는 상기 컨볼루션 인코더를 통해 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 데이터를 이동시키도록 구성되는 것인, 하드웨어 가속기.
- 제1항에 있어서, 상기 제어기는 데이터를 상기 CRC 발생기로부터 상기 제1 버퍼와 상기 제2 버퍼 중 하나로 이동시키도록 구성되는 것인, 하드웨어 가속기.
- 제1항에 있어서, 상기 제어기는 데이터를 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 상기 공유 메모리로 이동시키도록 구성되는 것인, 하드웨어 가속기.
- 제1항에 있어서, 상기 제어기는 데이터를 상기 공유 메모리로부터 상기 제1 버퍼와 제2 버퍼 중 하나로 이동시키도록 구성되는 것인, 하드웨어 가속기.
- 제1항에 있어서, 상기 제어기는 최대 6개의 상이한 채널들로부터 상기 처리된 정보 비트들을 저장하기 위해 6개의 SMA 소스들을 이용하도록 구성되는 것인, 하드웨어 가속기.
- 제12항에 있어서, 상기 제어기는 대각 인터리빙(diagonal interleaving)을 수행하도록 구성되는 것인, 하드웨어 가속기.
- 제13항에 있어서, 상기 대각 인터리빙은 별도의 하드웨어 가속기를 이용하여 수행되는 것인, 하드웨어 가속기.
- 무선 통신 장치 내의 하드웨어 가속기를 이용하여 채널 처리를 수행하기 위한 방법에 있어서,정보 비트들을 수신하는 단계; 및하드웨어 가속기를 이용하여 상기 정보 비트들에 대해 채널 처리를 수행하는 단계를 포함하고,상기 하드웨어 가속기는 제1 버퍼와 제2 버퍼 사이에 상기 정보 비트들 및 처리된 정보 비트들을 서로(back and forth) 이동시키는 동안, 채널 처리를 위한 미리 정의된 시퀀스의 명령어들을 수행하는 것인, 채널 처리 수행 방법.
- 제15항에 있어서, 복수의 채널들 각각에 대해 파라미터들이 설정되고, 상기 복수의 채널들에 대해 상기 미리 정의된 시퀀스의 제어 명령어들이 수행되는 것인, 채널 처리 수행 방법.
- 제15항에 있어서, 상기 채널 처리는, 제1 재정렬, 블록 코딩, 제2 재정렬, 패리티 테일링, 펑춰링, 컨볼루션 인코딩, 및 인터리빙 중 적어도 하나를 포함하는 것인, 채널 처리 수행 방법.
- 제17항에 있어서, 상기 하드웨어 가속기는 최대 6개의 상이한 채널들로부터 상기 처리된 정보 비트들을 저장하기 위해 6개의 SMA 소스들을 이용하도록 구성되는 것인, 채널 처리 수행 방법.
- 제18항에 있어서, 상기 인터리빙은 대각 인터리빙인 것인, 채널 처리 수행 방법.
- 제19항에 있어서, 상기 대각 인터리빙은 별도의 하드웨어 가속기를 이용하여 수행되는 것인, 채널 처리 수행 방법.
- 제15항에 있어서, 상기 하드웨어 가속기는 변환 판독 전용 메모리(ROM)를 통해 발생된 어드레스를 이용하여 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 데이터를 검색하고, 상기 검색한 데이터를 다른 버퍼에 넣도록 구성되는 것인, 채널 처리 수행 방법.
- 제15항에 있어서, 상기 하드웨어 가속기는 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 데이터를 검색하고, 변환 판독 전용 메모리(ROM)를 통해 발생된 어드레스를 이용하여 상기 검색한 데이터를 다른 버퍼에 넣도록 구성되는 것인, 채널 처리 수행 방법.
- 제15항에 있어서, 상기 하드웨어 가속기는 데이터를 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 CRC 발생기로 이동시키시도록 구성되는 것인, 채널 처리 수행 방법.
- 제15항에 있어서, 상기 하드웨어 가속기는 변환 판독 전용 메모리(ROM)에 의해 발생된 어드레스를 이용하여 데이터를 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 CRC 발생기로 이동시키도록 구성되는 것인, 채널 처리 수행 방법.
- 제15항에 있어서, 상기 하드웨어 가속기는 컨볼루션 인코더를 통하여 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 데이터를 이동시키도록 구성되는 것인, 채널 처리 수행 방법.
- 제15항에 있어서, 상기 하드웨어 가속기는 데이터를 CRC 발생기로부터 상기 제1 버퍼와 상기 제2 버퍼 중 하나로 이동시키도록 구성되는 것인, 채널 처리 수행 방법.
- 제15항에 있어서, 상기 하드웨어 가속기는 데이터를 상기 제1 버퍼와 상기 제2 버퍼 중 하나로부터 공유 메모리로 이동시키도록 구성되는 것인, 채널 처리 수행 방법.
- 제15항에 있어서, 상기 하드웨어 가속기는 데이터를 공유 메모리로부터 상기 제1 버퍼와 상기 제2 버퍼 중 하나로 이동시키도록 구성되는 것인, 채널 처리 수행 방법.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170114405A (ko) * | 2016-04-04 | 2017-10-16 | 주식회사 맴레이 | 플래시 기반 가속기 및 이를 포함하는 컴퓨팅 디바이스 |
Families Citing this family (12)
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)
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 |
-
2007
- 2007-07-12 KR KR1020097003321A patent/KR20090031783A/ko not_active Application Discontinuation
- 2007-07-12 JP JP2009520779A patent/JP5216766B2/ja not_active Expired - Fee Related
- 2007-07-12 WO PCT/US2007/016031 patent/WO2008008512A2/en active Application Filing
- 2007-07-12 KR KR1020097002808A patent/KR20090039761A/ko not_active Application Discontinuation
- 2007-07-12 US US11/776,610 patent/US8015471B2/en not_active Expired - Fee Related
- 2007-07-12 CN CN2007800267951A patent/CN101490994B/zh not_active Expired - Fee Related
- 2007-07-12 EP EP07810468A patent/EP2052483A2/en not_active Withdrawn
- 2007-07-13 TW TW098100241A patent/TW200947978A/zh unknown
- 2007-07-13 TW TW096125758A patent/TW200810438A/zh unknown
Cited By (1)
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 |