본문 바로가기

Software

DSP란 무엇인가?

해당 글은 : http://digicon.egloos.com/107093#comment_107093 에서 정리되었습니다.

 

DSP란 무엇인가?

DSP는 약자로서, Digital Signal Processing 혹은 Digital Signal Processor를 의미한다. 이 글에서는 특별한 구분이 없는 한 Digital Signal Processor를 가리키는 것으로 한다.

 

그렇다면, Digital Signal Processor는 무엇인가?

우리말로 옮겨 보자면, '디지털 신호 처리를 행하는 무엇' 이라고 할 수 있다. 이 무엇은 사람이 될 수도 있고, 시스템이 될 수도 있으며, 집적회로가 될 수도 있다. 이 글에서는 범위를 한정시켜 집적회로만을 지칭하는 것으로 한다.

'디지털 신호처리용 집적회로'라고 옮긴다 할지라도, 처음 DSP를 접하시는 분들에게는 다소 생경할 수 있다고 본다.  '디지털 신호처리를 아주 잘하는 칩'이라, 그렇다면, 펜티엄 프로세서는 디지털 신호처리를 잘 못하는 칩인가? PDA에서 MP3 나 WMA 같은 형태의 디지털 음악을 재생해서 즐겁게 듣고 있는데, PDA에 장착된 메인 프로세서는 DSP란 말인가?

사실상 구분이 쉽지는 않다. 명확한 구분도 없기에, 마치 접근을 쉽게 허락하는 것처럼은 보이지 않는 것이 시작하는 분들에게 큰 어려움으로 다가서는 듯 보인다. 이런 이유로 이 연재물을 작성하게 된 것이다. 부디 이 연재물이 DSP를 처음 하시는 분들에게 꿈과 희망과 용기를 듬뿍 담아서 드리는 그런 역할을 할 수 있었으면 한다. 하나씩 따져 보자.

 

디지털 신호 처리를 잘하는 칩을 이해하기 위해서는 디지털 신호 처리의 속성을 조금 알 필요가 있다. 많이 알면 더 좋겠지만, 전혀 모른다고 DSP 칩을 사용못하는 것은 아니다. 지레 겁먹는 일은 철저히 경계해야 한다. 디지털 신호 처리의 속성을 파헤쳐 들어가 보면, 단순한 사칙연산으로 귀결된다. 아날로그 영역에서는 사칙연산, 적분, 미분, 미분방정식 등으로 시스템의 입출력이 표현되지만, 이를 디지털 영역으로 옮겨가면 단순한 사칙연산으로 표현된다. (이 부분이 궁금한 분들은 Z-transform을 살펴보시기 바란다.)

 

사칙연산이 마이크로프로세서 시스템에서 수행되는 과정은 그다지 어렵지 않다. 거의 모든 마이크로프로세서 시스템에는 ALU(Arithmatic Logic Unit)라는 회로가 있어서 논리연산과 덧셈을 처리할 수 있기 때문이다. 덧셈만 있으면 사칙은 다 된다. 덧셈을 여러번 하면 곱셈, 부호 바꿔서 더하면 뺄셈, 부호 바꾼 값을 여러 번 더하면 나눗셈. 간단한 ALU만 가지고 사칙연산을 할 수 있기에 기본적으로 마이크로 프로세서 시스템은 모두 디지털 신호 처리를 할 수 있는 능력을 갖추고 있다.

덧셈을 여러번 하면 곱셈이 된다는 사실에 주목해보자. 예를 들어, 2 X 65536를 한다면, 더하기를 몇 번 해야 할까? 쉽게 계산이 안될 것이지만, 많이 더 해야 한다는 감은 생길 것이다. 많이 더 한다는 것은 그만큼 많은 사이클을 소비한다는 것인데, 저 곱셈을 한 클럭에 처리한다면 어떻게 될까? 질문을 조금 더 깊게 가져가서, 한 클럭에 곱셈을 한다면 어떤 일을 해낼 수 있을까? 이 부분에 초점을 맞추어서 설계된  마이크로프로세서를 DSP라고 흔히 부른다. 1사이클에 곱셈을 행할 수 있는 아주 특별한 회로가 설계 탑재되어 있다.

 

실전 과정에서 벌어지는 예를 들어보자.

TMS320LF2407A 라는 DSP 칩은 최고 40MHz로 구동된다. 이 DSP로 Audio Signal을 처리한다고 해보자.  계산 편의를 위해서 오디오 신호를 40KHz로 샘플링한다고 하자. (40KHz로 샘플링한다는 얘기는 , 1초 분량의 아날로그 오디오 신호를 4만 개의 디지털 신호로 변환하다는 얘기다.) 샘플링 신호 사이에서 2407A가 공급받을 수 있는 시스템 클럭은 몇 개인가?  40MHz / 40 KHz = 1K. 샘플링 구간에서 마이크로 프로세서 시스템이 처리할 수 있는 능력은 시스템 클럭 천 개로 제한된다. 곱셈기가 없는 마이크로 프로세서 시스템에서 천 개의 사이클로 처리할 수 있는 일은 별로 없다. DSP가 여기에 투입된다고 보자. 곱셈을 무려 천 번 할 수 있다. 여유감이 있지 않은가?

 

그렇다면, 곱셈을 잘하는 칩이면 무조건 DSP인가?

그렇지는 않다. 좀 쓸 만하다는 칩에는 곱셈기 회로가 탑재된 경우가 많다. 이런 경향으로, DSP와 마이크로프로세서의 구분은 더욱더 어려워 지고 있다. 다음 연재물에서, DSP라고 구분 지을 수 있는 보다 강력한 요소들을 살펴보겠다. 하지만, 이것은 DSP이고 저것은 범용 마이크로프로세서라고 특별히 구분할 필요는 없다. 어차피 다 같은 마이크로 프로세서이기 때문이다. 처음 시작할 때, 칩 구조를 이해하는 능력을 키워서, 앞으로 새로운 칩을 접할 때, 아하... 이 칩은 이런 부분이 뛰어나니 내가 하고자 하는 일에 잘 맞겠구나 하고 판단만 할 수 있을 정도면 된다.

 

 

다음은 세종대 정보통신공학과 구 자현학생이 작성한  에세이로 'DSP'를 아주 잘 설명하고 있다.

 

1. DSP란 무엇인가?

DSP(Digital Signal Processing:디지털신호처리)는 아날로그 신호를 A/D(아날로그/디지털) 변환하여 얻어진 디지털 데이터에 대수적인 연산을 해 필터링이나 스펙트럼 분석 등의 신호처리를 하는 것을 말한다. 기본적으로 아날로그 신호의 실시간 디지털 처리를 목적으로 한다. DSP는 디지털 신호를 수학적으로 빨리 계산할 수 있는 수학 연산 전문 반도체로 마이크로프로세서도 이러한 기능을 수행하지만 수학 연산만 전문으로 하는 DSP에 비해 속도가 느리다. DSP는 범용 마이크로프로세서의 하드웨어 아키텍처를 대폭적으로 개량, 고속 연산성과 컴팩트화를 추구한 전용 프로세서이다. DSP를 사용하면 소프트웨어만을 교체함으로써 시스템을 업그레이드할 수 있는 장점이 있다. 또한 PC로 영화를 보거나 가요반주를 즐길 수 있고, 고속 모뎀과 ISDN을 사용하여 TV회의도 실현할 수 있고 게임 등에 응용하면 고속 3차원 그래픽과 가상현실 등의 구현이 가능하다.



2. DSP는 왜 생겼는가?

DSP는 주로 디지털 신호를 고속으로 처리하기 위하여 덧셈, 뺄셈, 곱셈 등의 반복 연산을 고속으로 처리할 수 있는 회로를 채용하고 있다.1960~70년대 디지털 컴퓨터가 처음으로 사용되면서 DSP가 사용되기 시작했고 이 때는 매우 제한적 어플리케이션이었다. 이때에는 레이다. 소나, 유전 조사, 우주탐사, 의학분야 등에 사용되었었다. 그러나 퍼스널 컴퓨터가 1980~90년대에 발전하면서 DSP는 폭발적으로 상용화되기 시작했고 이에 대학 교육과정에 포함되기 시작했다. 오늘날에 이르러 DSP는 과학자들과 엔지니어들에게 기본적으로 갖춰야 할 기본 지식이 되었다. 

 

3. DSP는 어디에 쓰일 수 있는가?

최근에는 그 사용범위가 넓어져 아날로그 신호인 음성신호를 디지털화 하는 음성 코딩에 사용되어 디지털 이동통신, 자동 응답기 및 화상 전화기, 멀티미디어에 이용되고 있다. 또한 음향신호 처리 분야에서는 맹인 또는 일반인을 위한 전자 음성 발생 장치, 전자오락 등에 이용되며, 3차원 영상처리와 애니메이션에도 이용된다. HDD와 같은 소형의 기계장치를 제어할 수 있으며, 순수한 통신을 위한 디지털 필터로 이용된다. 컴퓨터에 이용될 때는 주 CPU와는 별도의 보조 처리기로 사용되어 음향이나 영상처리를 할 때에 CPU의 부담을 줄여주는 역할을 한다. DSP는 음성과 데이터, 비디오 신호들을 실시간으로 계산해주는 강력한 기능을 발휘하여 자동차 사고 시 위험을 줄여주는 「충돌 방지 시스템」, 옷이 다 말랐음을 알려주는 「건조기」, 팬이나 냄비가 얼마나 깨끗해졌는지 알려주는 「자동세척기」 등의 정보가전제품에 탑재될 것으로 보인다. 또한 DSP는 감각을 느끼는 「로봇 팔」이라든가 첨단 기능을 내장한 「귓속형 보청기」 등에도 활용될 수 있을 것으로 보인다.

반응형