최근 DSP 제품 동향과 ZSP 코어 3G 무선 단말기용 DSP 시스템 - 2부 |
현존하는 많은 코덱을 적용하고, 향후에 나올 수 있는 표준들을 적용하기 위해서 는 소프트웨어를 바꿀 수 있는 DSP가 최선의 선택이다. 현재의 제품에서 다음 제품으로 갈 때 시스템을 완전 재설계하지 않고 약간의 변경으로 사용가능 하도록 하려면 호환성이 있는 DSP 시리즈를 가지는 것을 선택하는 것이 중요하다.
글 | 김재용 차장,블랜드 슬레이드,ZSP Division of LSI Logic |
다년간의 노력과 실패를 거치고, 이제는 3세대 무선단말기의 시대가 왔다. 베이스밴드 프로세서는 소비자들이 2세대와 2.5세대 제품을 거쳐 3세대 단말기로 발전하면서 기대되는 기능과 가격, 에너지 효율을 만족시키고 있지만, 다중모드의 필요성이 점점 더 대두되고 있다. 3세대는 2세대에 비해서 몇 배의 복잡도를 가지고 있어서 소프트웨어에 많은 부담이 되고 있다. 3세대 단말기 베이스밴드의 기능을 소프트웨어와 하드웨어로 분리할 수 있는 플랫폼이 절실히 요구되고 있다. 설계자들은 베이스밴드 처리 능력뿐만 아니라 생산성,향후 검증의 용이성, 소비전력, 가격 등을 고려해서 DSP 코어를 선택해야한다. 2부에서는 3세대 무선단말기를 설계하는데 있어서 설계자들이 고려해야 하는 베이스밴드의 어려움과 DSP의 필요성, 기능의 분할 등에 대해서 논할 것이다. 어떻게 3세대 무선단말기 모뎀의 기능을 분할 할 것인지를 분석하기 위해서는 이러한 표준들을 살펴볼 필요가 있다. 3세대 표준들은 매우 복잡해서 이번 지면을 통해서는 자세하게 살펴볼 수는 없고, TD-SCDMA(Time Division Multiplexed Synchronous Code Division Multiplexed Access)와 WCDMA의 베이스밴드에 대해서 간단하게 분석을 할 것이다. TD-SCDMA
아래의 예제 1에서는 복소수를 계산하는 C 코드와 어셈블리 코드를 보여준다. 두 개의 MAC(ZSP500), 네 개의 MAC(ZSP540)을 가지는 DSP에 대한 어셈블리 코드를 각각 표시하였다. 복소수 MAC 연산은 4번의 곱셈과 3번의 덧셈, 1번의 뺄셈이 필요하다.
동시 추출 알고리즘(Joint Detection)과 같은 함수에서는 중간변수에 대해서 빠른 속도로 읽고 쓸 필요가 있는데, 이 때는 메모리 대역폭이 연산처리 능력만큼 지원이 되어야 한다. 일반적으로 4개의 MAC을 가지는 경우에는 2개의 64비트 대역폭이 필요로 한다. FFT 연산은 Channel Estimation에서 많이 사용되는데 이 또한 DSP에서 효과적으로 지원이 되어야만 한다. MAC연산뿐만 아니라 덧셈, 뺄셈, Bitreversed 연산을 동시에 수행 할 수 있어야 한다. 이것은 오래된 DSP 구조 혹은 단순한 DSP 기능을 지원하는 MCU와는 확연하게 구분되는 부분이다. 베이스 밴드의 Joint Detection에서는 수많은 경우의 수가 있는데, 이것은 DSP를 사용해야 하는 이유 중에 하나이다. 실행시간을 예측할 수 있으면서도, 효과적으로 각 경우의 수를 판단하고 분기할 수 있게 하려면 조건부 실행 명령어가 절실하게 필요하다. 특히 고성능 다단계 파이프라인 프로세서를 검토할 때는 더욱더 중요하다. 마지막으로 효과적으로 비트열을 처리하기 위해서는 비트단위로 관리할 수 있는 명령어가 있어야만 각 비트를 AND/OR/SHIFT 하는데 사이클을 낭비하는 것을 막을 수 있다. 그림 2에서 본 것과 같이 Joint Detection이 TD-SCDMA 수신기의 가장 중요한 기능이기 때문에 DSP로 구현하는 것이 가장 적당하다. 수신기의 일부 다른 블록들은 데이터의 전속속도가 너무 높거나, 연산이 고정되어 있는 경우에는 하드웨어로 구현하는 것이 확실히 좋다. FEC(Forward Error Correction)에서 사용되는 Viterbi나 Turbo Decoder는 아주 복잡하지만 잘 정의되어 있다.이러한 블록을 DSP에서 구현하기 위해서는 최신의 DSP 에서도 많은 연산 사이클을 필요로 하기 때문에 에너지 소비효율과 칩 크기의 측면에서 효과적이지 못하다.FEC 디코더 같은 기능은 데이터를 블록단위로 처리하기 때문에 공유메모리를 사용할 수 있다. 소프트웨어와 하드웨어 설계를 적절히 조절하면, 저전력을 구현할 수 있는 하드웨어 설계의 장점과 유연성을 가질 수 있는 DSP의 장점을 최대한 살릴 수 있다. 이렇게 하기 위해서는 DSP와 하드웨어 설계 간에 밀접하게 연관되어 있는 공유 메모리를 사용할 수 있다. 하지만 합성할 때 타이밍 문제를 발생시킬 수 있고, 또 다른 세대의 베이스밴드 규격을 지원하기 위해서는 하드웨어 설계의 호환성 문제가 발생할 수 있다.그래서 사용자가 원하는 명령어를 추가할 수 있는 보조처리기(Co-Processor)를 사용했을 경우에는 원래의 명령어는 전혀 영향을 받지 않으면서 보조처리기는 사용자가 원하는 명령어를 수행 할수 있다.그림 3에서는 이러한 보조처리기를 사용하는 경우의 예를 보여준다. 레지스터의 값이 보조처리기의 입력이 되고, 결과는 다시 레지스터로 들어오도록 되어 있다. 보조처리기는 필요하면 stall신호를 통해서 주 프로세서를 세울 수도 있다. 이러한 하드웨어적인 기능은 주 프로세서가 필요 없이 결과를 기다리는 루프를 실행할 필요가 없도록 만들고, 또한 합성할 때의 타이밍 문제가 발생하지 않도록 완전히 분리시켜 준다. OpCode 부분은 설계자가 정하는 것으로 여러 개의 보조처리기 중에 하나를 선택하도록 할 수 있다. 일부의 프로세서에서는 보조처리기의 기능을 C 컴파일러에서 사용할 수 있지만 무선단말기의 베이스밴드에서 필요로 하는 데이터 전송률을 만족시키기 위해서는 보조처리기의 기능은 어셈블리 언어로 작성하는 것이 바람직하다. 또한 C 언어에서는 적절한 데이터 형이 없거나 해당하는 기능을 C로 표현하기 어려울 수있다. 그래서 전체적인 기술은 C 언어로 하되 보조처리기의 특별한 기능을어셈블리로 기술하는 것이 유리하다.FFT를 기반으로 하는 많은 알고리즘과 다른 연산에서 필요로 하는 기능들을 종합적으로 봤을 때, 2개의 MAC을 가지는 구조가 많이 고려된다. 또한어셈블리의 호환성이 있는 DSP군을 선택을 해야만, 더 작은 공정과 더 높은 성능의 프로세서가 준비되었을 때 공정 변경을 쉽게 할 수 있다. 예를 들어 2개의 MAC과 FFT 보조처리기를가지는 0.13um 공정의 프로세서는 4개의 MAC을 가지는 90nm 공정의 코어로 교체될 수 있기 때문이다. 표 1에서는 TD-SCDMA 단말기에서 필요로 하는 성능을 보여준다. 여기에서 AMR 음성 코덱을 포함하고 있고, 384Kbps 양방향 단일 채널일 경우의 한 예이다.
WCDMA W-CDMA FDD(Frequency DivisionDuplex) 단말기에서의 기능분할과 필요한 연산 량의 정도는 TD-SCDMA 단말기와는 많은 차이가 있다. WCDMA FDD에서는 5MHz의 광대역이 사용되고, 사용자는 코드를 분산시켜서 대역폭을 공유하기 때문에 TD-SCDMA에 비해서 많은 계산 량을 필요로 한다. 그림 4에서는 분산된 데이터를 검출해 내는 수신기를 보여준다. 특정 사용자의 데이터를 검출해 내기 위해서 여러 개의 경로에서 들어오는 데이터를 조합해야 한다. 여기에서많은 수의 복소수에 대한 연산을 반복적으로 수행해야 한다. 이러한 수신기의 연산은 구조가 단순한 편이어서 하드웨어로 구현하는 것이 쉬울 수 있지만, 최신의 고성능 DSP에서도 쉽게 구현될 수 있다.
결론 DSP는 3세대 휴대용 단말기가 가능할 정도로 발전해 있지만, 설계자는 어떻게 하드웨어와 소프트웨어의 기능을 나눌 것인지에 대한 고민을 해야 한다. 너무 많은 부분을 하드웨어로 구현했을 때는 개발기간이 지연될 수 있고,특별한 기능을 추가할 때 호환성이 떨어지거나 필요 없는 기능이 하드웨어로 들어 있을 수 있다. 반대로 너무 많은 기능을 소프트웨어로 구현했을 때는 DSP에 추가기능을 구현할 여유가 없거나 너무 많은 전력소모 때문에 어려울 수 있다. 오늘날에는 올바른 소프트웨어/하드웨어 분할을 할 수 있으면서 또한 적절한 모델링 툴을 적용할 수 있는 DSP를 선택할수 있기에 설계자들은 3세대 단말기의 개발의 어려움을 극복하기가 훨씬 쉬워졌다 |
<자료제공 반도체네트워크 2006년 2월호>