디지털 신호 처리 장치

[섬네일|여러 [샘플러|Akai 샘플러와 하이퍼 네오지오 64 아케이드 보드에 사용된 L7A1045 DSP 칩]]
[섬네일|1990년의 [넥스트큐브는 모토로라 68040 (25&nbsp;MHz)와 인터페이스를 통해 직접 접근 가능한 디지털 신호 처리 장치인 모토로라 56001(25&nbsp;MHz)을 탑재했다.]]

**디지털 신호 처리 장치**(digital signal processor, **DSP**)는 디지털 신호 처리의 운영 요구 사항에 최적화된 아키텍처를 갖춘 특수 마이크로프로세서 칩이다. DSP는 금속 산화물 반도체(MOS) 집적 회로 칩으로 제조된다. 오디오 신호 처리, 전기 통신, 디지털 화상 처리, 레이더, 소나 및 음성 인식 시스템에서 널리 사용되며, 휴대 전화, 디스크 드라이브 및 고선명 텔레비전(HDTV) 제품과 같은 일반적인 가전 제품에서도 사용된다.

DSP의 목표는 대개 연속적인 현실 세계의 아날로그 신호를 측정, 필터링 또는 압축하는 것이다. 대부분의 범용 마이크로프로세서도 디지털 신호 처리 알고리즘을 성공적으로 실행할 수 있지만, 이러한 처리를 실시간으로 연속해서 따라가지 못할 수도 있다. 또한, 전용 DSP는 대개 전력 효율이 더 좋으므로 소비 전력 제약이 있는 휴대 전화와 같은 휴대용 장치에 더 적합하다. DSP는 종종 여러 데이터나 명령을 동시에 가져올 수 있는 특수한 메모리 구조를 사용한다.

## 개요
섬네일|410px|전형적인 디지털 처리 시스템

디지털 신호 처리(DSP) 알고리즘은 일반적으로 일련의 데이터 샘플에 대해 대량의 수학적 연산을 빠르고 반복적으로 수행해야 한다. (오디오나 비디오 센서로부터의) 신호는 끊임없이 아날로그에서 디지털로 변환되고, 디지털로 조작된 다음, 다시 아날로그 형태로 변환된다. 많은 DSP 응용 분야는 지연 시간에 제약이 있다. 즉, 시스템이 작동하려면 DSP 연산이 정해진 시간 내에 완료되어야 하며, 지연된(또는 배치) 처리는 실행 불가능하다.

대부분의 범용 마이크로프로세서와 운영체제는 DSP 알고리즘을 성공적으로 실행할 수 있지만, 전력 효율 제약 때문에 휴대 전화나 PDA와 같은 휴대용 장치에서 사용하기에는 적합하지 않다. 그러나 특화된 DSP는 성능이 더 뛰어나고 지연 시간이 짧으며 특수 냉각 장치나 대용량 배터리가 필요하지 않은 저비용 솔루션을 제공하는 경향이 있다.

이러한 성능 향상은 상업용 통신 위성에 디지털 신호 처리가 도입되는 결과를 낳았다. 수백 또는 수천 개의 아날로그 필터, 개폐기, 주파수 변환기 등이 업링크 신호를 수신 및 처리하여 다운링크 준비를 하는 데 필요한데, 이를 특수 DSP로 교체하면 위성의 무게, 전력 소비, 제작 복잡성/비용, 신뢰성 및 운영 유연성 면에서 상당한 이점을 얻을 수 있다. 예를 들어, 2018년에 발사된 운영사 SES의 SES-12 및 SES-14 위성은 모두 에어버스 디펜스 앤드 스페이스에 의해 제작되었으며 용량의 25%에 DSP를 사용했다.

DSP의 아키텍처는 디지털 신호 처리에 특별히 최적화되어 있다. 신호 처리가 시스템의 유일한 작업인 경우는 드물기 때문에 대부분은 애플리케이션 프로세서나 마이크로컨트롤러의 일부 기능도 지원한다. DSP 알고리즘 최적화에 유용한 몇 가지 특징은 다음과 같다.

## 아키텍처

### 소프트웨어 아키텍처

범용 프로세서의 기준에서 볼 때 DSP 명령어 집합은 종종 매우 불규칙하다. 전통적인 명령어 집합은 더 다양한 연산을 수행할 수 있게 하는 보다 일반적인 명령어들로 구성되는 반면, 디지털 신호 처리에 최적화된 명령어 집합은 DSP 계산에서 빈번하게 발생하는 일반적인 수학적 연산을 위한 명령어들을 포함한다. 전통적인 명령어 집합과 DSP 최적화 명령어 집합 모두 임의의 연산을 계산할 수 있지만, ARM이나 X86 명령어로 여러 개가 필요한 연산이 DSP 최적화 명령어 집합에서는 단 하나의 명령어로 가능할 수도 있다.

소프트웨어 아키텍처에 미치는 한 가지 영향은, 필수 알고리즘을 처리하기 위해 고급 컴파일러 기술에 의존하는 대신 수동으로 최적화된 어셈블리 코드 서브루틴(어셈블리 프로그램)을 재사용을 위해 라이브러리로 패키징하는 경우가 흔하다는 것이다. 현대적인 컴파일러 최적화가 있더라도 수동으로 최적화된 어셈블리 코드가 더 효율적이며, DSP 계산과 관련된 많은 공통 알고리즘은 아키텍처 최적화를 충분히 활용하기 위해 수동으로 작성된다.

#### 명령어 집합
* 단일 곱셈-누산기(MAC, FMA 포함) 연산
** 모든 종류의 행렬 연산에 광범위하게 사용됨
*** 필터링을 위한 합성곱
*** 스칼라곱
*** 다항식 평가
** 근본적인 DSP 알고리즘은 곱셈-누산 성능에 크게 의존함
*** FIR 필터
*** 고속 푸리에 변환(FFT)
* 관련 명령어:
** SIMD
** VLIW
* 원형 버퍼의 모듈로 주소 지정 및 FFT 교차 참조를 위한 비트 반전 주소 지정 모드를 위한 특수 명령어
* DSP는 때때로 하드웨어를 단순화하고 코딩 효율을 높이기 위해 시간 고정 인코딩(time-stationary encoding)을 사용한다.
* 다수의 산술 장치는 명령어 주기당 여러 번의 접근을 지원하기 위해 메모리 구조를 필요로 할 수 있다. 일반적으로 2개의 개별 데이터 버스에서 2개의 데이터 값을 읽는 동시에 (명령어 캐시 또는 제3의 프로그램 메모리에서) 다음 명령어를 읽는 것을 지원한다.
* 명령어를 가져오거나 종료 테스트를 위한 오버헤드 없이 매우 빡빡한 루프 내에서 몇 개의 명령어 워드를 실행하기 위한 아키텍처 지원과 같은 특수한 루프 제어 — 제로 오버헤드 루핑 및 하드웨어 루프 버퍼.

#### 데이터 명령어
* 포화 산술: 오버플로를 발생시키는 연산이 순환(랩 어라운드)하는 대신 레지스터가 보유할 수 있는 최대(또는 최소) 값에서 멈추는 방식이다. (많은 범용 CPU에서처럼 최대 + 1이 최소로 오버플로되지 않고 최대값에 머문다.) 때때로 다양한 스티키 비트(sticky bits) 동작 모드를 사용할 수 있다.
* 산술 처리 속도를 높이기 위해 고정소수점 산술이 종종 사용된다.
* 파이프라이닝의 이점을 높이기 위한 단일 주기 연산.

#### 프로그램 흐름
* 데이터패스에 직접 통합된 부동소수점 장치
* 파이프라인 아키텍처
* 고도로 병렬화된 단일 곱셈-누산기(MAC 장치)
* 루프 연산에 필요한 오버헤드를 줄이거나 제거하기 위한 하드웨어 제어 루핑

### 하드웨어 아키텍처

#### 메모리 아키텍처

DSP는 일반적으로 스트리밍 데이터에 최적화되어 있으며, 별도의 프로그램 및 데이터 메모리를 사용하는 하버드 아키텍처 또는 변형된 폰 노이만 구조(때때로 여러 데이터 버스에서 동시 접근 가능)와 같이 여러 데이터나 명령어를 동시에 가져올 수 있는 특수한 메모리 구조를 사용한다.

DSP는 때때로 캐시 계층 구조와 관련 지연을 알기 위해 지원 코드에 의존할 수 있다. 이는 더 나은 성능을 허용하는 절충안이다. 또한 DMA가 광범위하게 사용된다.

##### 주소 지정 및 가상 메모리

DSP는 빈번하게 멀티태스킹 운영체제를 사용하지만, 가상 메모리나 메모리 보호에 대한 지원은 없다. 가상 메모리를 사용하는 운영체제는 프로세스 간 문맥 교환에 더 많은 시간이 필요하여 레이턴시가 증가한다.

* 하드웨어 모듈로 주소 지정
** 순환을 테스트할 필요 없이 원형 버퍼를 구현할 수 있게 함
* 비트 반전 주소 지정, 특수한 주소 지정 방식
** FFT 계산에 유용함
* 메모리 관리 장치의 제외
* 주소 생성 장치

## 역사
섬네일|TRW TDC1010 곱셈-누산기
### 발전
1976년 리처드 위긴스(Richard Wiggins)는 텍사스 인스트루먼트(TI)의 댈러스 연구 시설에 있는 폴 브리드러브(Paul Breedlove), 래리 브랜팅엄(Larry Brantingham), 진 프란츠(Gene Frantz)에게 Speak & Spell 개념을 제안했다. 2년 후인 1978년, 그들은 업계 최초의 디지털 신호 처리 장치인 TMS5100을 핵심 기술로 한 최초의 Speak & Spell을 제작했다. 이는 음성 합성을 수행하기 위해 선형 예측 코딩을 사용한 최초의 칩으로서 다른 이정표도 세웠다. 이 칩은 7 μm PMOS 제조 공정으로 만들어질 수 있었다.

1978년 American Microsystems(AMI)는 S2811을 출시했다. AMI S2811 "신호 처리 주변 장치"는 이후의 많은 DSP와 마찬가지로 단일 명령으로 곱셈-누산 연산을 할 수 있게 해주는 하드웨어 곱셈기를 갖추고 있었다. S2281은 DSP로 특별히 설계된 최초의 집적 회로 칩이었으며, 이전에는 양산되지 않았던 기술인 수직 금속 산화물 반도체(VMOS)를 사용하여 제조되었다. 이는 모토로라 6800용 마이크로프로세서 주변 장치로 설계되었으며, 호스트에 의해 초기화되어야 했다. S2811은 시장에서 성공하지 못했다.

1979년 인텔은 2920을 "아날로그 신호 프로세서"로 출시했다. 내부 신호 프로세서와 함께 온칩 ADC/DAC를 갖추고 있었으나 하드웨어 곱셈기가 없었고 시장에서 성공하지 못했다.

1980년, 최초의 단독형 완전한 DSP인 NEC의 변형된 하버드 아키텍처 기반 NEC μPD7720과 AT&T의 DSP1이 국제 고체 회로 설계 회의(ISSCC) '80에서 발표되었다. 두 프로세서 모두 공중 교환 전화망(PSTN) 전기 통신 연구에서 영감을 받았다. 음성 대역 애플리케이션을 위해 도입된 μPD7720은 상업적으로 가장 성공한 초기 DSP 중 하나였다.

Altamira DX-1은 지연 분기와 분기 예측을 갖춘 쿼드 정수 파이프라인을 활용한 또 다른 초기 DSP였다.

텍사스 인스트루먼트(TI)에서 생산한 또 다른 DSP인 1983년에 발표된 TMS32010은 더 큰 성공을 거두었다. 이는 하버드 아키텍처를 기반으로 하여 별도의 명령어 및 데이터 메모리를 가졌다. 이미 로드-앤-어큐뮬레이트(load-and-accumulate)나 멀티플라이-앤-어큐뮬레이트(multiply-and-accumulate)와 같은 특수 명령어 집합을 갖추고 있었다. 16비트 숫자를 처리할 수 있었으며 곱셈-가산 연산에 390&nbsp;ns가 필요했다. TI는 현재 범용 DSP 시장의 리더이다.

약 5년 후, 2세대 DSP가 보급되기 시작했다. 이들은 두 개의 피연산자를 동시에 저장하기 위한 3개의 메모리를 가졌고 빡빡한 루프를 가속하기 위한 하드웨어를 포함했으며, 루프 주소 지정이 가능한 주소 지정 장치를 갖추고 있었다. 일부는 24비트 변수로 작동했으며 전형적인 모델은 MAC에 약 21&nbsp;ns만 필요했다. 이 세대의 일원으로는 AT&T DSP16A 또는 모토로라 56000 등이 있었다.

3세대의 주요 개선 사항은 데이터패스에 애플리케이션 특화 유닛과 명령어가 등장하거나 때로는 코프로세서로 등장한 것이었다. 이러한 유닛들은 푸리에 변환이나 행렬 연산과 같이 매우 구체적이지만 복잡한 수학적 문제의 직접적인 하드웨어 가속을 가능하게 했다. 모토로라 MC68356과 같은 일부 칩은 병렬로 작동하기 위해 하나 이상의 프로세서 코어를 포함하기도 했다. 1995년의 다른 DSP로는 TI TMS320C541이나 TMS 320C80이 있다.

4세대는 명령어 집합과 명령어 인코딩/디코딩의 변화로 가장 잘 특징지어진다. SIMD 확장이 추가되었고, VLIW와 슈퍼스칼라 아키텍처가 등장했다. 항상 그렇듯이 클럭 속도가 증가하여 이제 3&nbsp;ns MAC이 가능해졌다.

## 현대의 DSP

현대의 신호 프로세서는 더 큰 성능을 낸다. 이는 부분적으로 더 낮은 설계 규칙, 고속 액세스 2단계 캐시, (E)DMA 회로 및 더 넓은 버스 시스템과 같은 기술적 및 아키텍처적 발전 덕분이다. 모든 DSP가 동일한 속도를 제공하는 것은 아니며, 약 US$1.50에서 US$300까지의 가격대에 걸쳐 각각 특정 작업에 더 적합한 다양한 종류의 신호 프로세서가 존재한다.

텍사스 인스트루먼트는 1.2&nbsp;GHz의 클럭 속도를 가지며 별도의 명령어 및 데이터 캐시를 구현하는 C6000 시리즈 DSP를 생산한다. 또한 8&nbsp;MiB의 2단계 캐시와 64개의 EDMA 채널을 갖추고 있다. 최상위 모델은 최대 8000 MIPS(백만 개의 명령어 처리)가 가능하며, VLIW를 사용하고 클럭 사이클당 8개의 연산을 수행하며 광범위한 외부 주변 장치 및 다양한 버스(PCI/직렬/등)와 호환된다. TMS320C6474 칩은 각각 3개의 이러한 DSP를 포함하며, 최신 세대 C6000 칩은 고정소수점뿐만 아니라 부동소수점 처리도 지원한다.

Freescale은 멀티 코어 DSP 제품군인 MSC81xx를 생산한다. MSC81xx는 StarCore 아키텍처 프로세서를 기반으로 하며, 최신 MSC8144 DSP는 4개의 프로그래머블 SC3400 StarCore DSP 코어를 결합한다. 각 SC3400 StarCore DSP 코어는 1&nbsp;GHz의 클럭 속도를 갖는다.

XMOS는 DSP 연산에 적합한 멀티 코어 멀티스레딩 프로세서 라인을 생산한다. 400에서 1600 MIPS 범위의 다양한 속도로 제공된다. 이 프로세서들은 코어당 최대 8개의 실시간 스레드를 허용하는 멀티스레딩 아키텍처를 가지고 있어, 4코어 장치는 최대 32개의 실시간 스레드를 지원할 수 있다. 스레드들은 최대 가 가능한 버퍼 채널을 통해 서로 통신한다. 이 장치들은 C 언어로 쉽게 프로그래밍할 수 있으며 기존 마이크로컨트롤러와 FPGA 사이의 간극을 메우는 것을 목표로 한다.

CEVA, Inc.는 세 가지 뚜렷한 DSP 제품군을 생산하고 라이선스를 제공한다. 아마도 가장 잘 알려지고 널리 보급된 것은 CEVA-TeakLite DSP 제품군으로, 16비트 또는 32비트 워드 너비와 단일 또는 이중 MAC을 갖춘 고전적인 메모리 기반 아키텍처이다. CEVA-X DSP 제품군은 VLIW와 SIMD 아키텍처의 조합을 제공하며, 제품군에 따라 이중 또는 쿼드 16비트 MAC을 제공한다. CEVA-XC DSP 제품군은 소프트웨어 정의 라디오(SDR) 모뎀 설계를 목표로 하며 32개의 16비트 MAC과 함께 VLIW 및 벡터 아키텍처의 독특한 조합을 활용한다.

아날로그 디바이스는 SHARC 기반 DSP를 생산하며 성능 범위는 66&nbsp;MHz/198 MFLOPS(초당 백만 번의 부동소수점 연산)에서 400&nbsp;MHz/2400 MFLOPS에 이른다. 일부 모델은 다중 곱셈기 및 ALU, SIMD 명령어 및 오디오 처리 전용 구성 요소와 주변 장치를 지원한다. 블랙핀 임베디드 디지털 신호 프로세서 제품군은 DSP의 특징과 범용 프로세서의 특징을 결합한다. 결과적으로 이러한 프로세서들은 실시간 데이터를 처리하면서 μCLinux, Velocity 및 Nucleus RTOS와 같은 단순한 운영체제를 실행할 수 있다. SHARC 기반 ADSP-210xx는 지연 분기와 비지연 분기를 모두 제공한다.

NXP 반도체는 오디오 및 비디오 처리에 최적화된 TriMedia VLIW 기술 기반의 DSP를 생산한다. 일부 제품에서 DSP 코어는 SoC 내부의 고정 기능 블록으로 숨겨져 있지만, NXP는 유연한 싱글 코어 미디어 프로세서 범위도 제공한다. TriMedia 미디어 프로세서는 고정소수점 산술뿐만 아니라 부동소수점 산술도 지원하며, 복잡한 필터 및 엔트로피 코딩을 처리하기 위한 특정 명령어를 가지고 있다.

CSR은 스캐너 및 복사기 애플리케이션을 위한 문서 이미지 데이터 처리에 최적화된 하나 이상의 맞춤형 이미지 DSP를 포함하는 Quatro SoC 제품군을 생산한다.

마이크로칩 테크놀로지는 PIC24 기반 dsPIC DSP 라인을 생산한다. 2004년에 도입된 dsPIC는 모터 제어 및 전원 공급 장치와 같이 진정한 DSP뿐만 아니라 진정한 마이크로컨트롤러가 필요한 애플리케이션을 위해 설계되었다. dsPIC는 최대 40MIPS로 작동하며 16비트 고정소수점 MAC, 비트 반전 및 모듈로 주소 지정, DMA를 지원한다.

대부분의 DSP는 고정소수점 산술을 사용하는데, 이는 실제 신호 처리에서 부동소수점이 제공하는 추가 범위가 필요하지 않고 하드웨어 복잡성 감소로 인한 큰 속도 및 비용 이점이 있기 때문이다. 부동소수점 DSP는 넓은 동적 범위가 필요한 애플리케이션에서 매우 중요할 수 있다. 제품 개발자는 더 비싼 하드웨어 대신 소프트웨어 개발의 비용과 복잡성을 줄이기 위해 부동소수점 DSP를 사용할 수도 있는데, 이는 일반적으로 알고리즘을 부동소수점으로 구현하는 것이 더 쉽기 때문이다.

일반적으로 DSP는 전용 집적 회로이지만, DSP 기능은 FPGA 칩을 사용하여 구현될 수도 있다.

임베디드 범용 RISC 프로세서들은 기능 면에서 점점 더 DSP와 유사해지고 있다. 예를 들어, OMAP3 프로세서들은 ARM Cortex-A8과 C6000 DSP를 포함한다.

통신 분야에서는 DSP 기능과 하드웨어 가속 기능을 융합한 새로운 종류의 DSP가 주류로 자리 잡고 있다. 이러한 모뎀 프로세서에는 ASOCS ModemX와 CEVA의 XC4000이 포함된다.

2018년 5월, 중국전자과기집단 산하 남경전자기술연구소에서 설계한 Huarui-2가 검수를 통과했다. 0.4 TFLOPS의 처리 속도를 갖춘 이 칩은 현재의 주류 DSP 칩보다 더 나은 성능을 달성할 수 있다. 설계팀은 TFLOPS 수준의 처리 속도와 인공지능 지원 기능을 갖춘 Huarui-3 제작에 착수했다.

### 아날로그 라디오용 DSP 기반 튜너

섬네일|right|Panasonic RF-2400D AM/FM 라디오. 현대적인 DSP 기반 내부 설계에도 불구하고 전통적인 레이아웃과 기계식 튜닝, 그리고 이전 아날로그 RF-2400과 동일한 외부 외형을 유지하고 있다.

2010년대 이후로 전통적인 아날로그 FM 방송 및 AM 단파 및 중파 방송 수신용으로 설계된 라디오의 증가하는 비율이 이전 설계의 아날로그 튜닝 회로 대부분을 DSP 기반 디지털 집적 회로로 대체했다. 이들은 디지털 영역에서 대부분의 처리 및 디코딩을 수행한다. 그러한 IC의 예로는 단일 칩 내에서 FM 및 AM 디코딩을 모두 지원하는 Silicon Labs/Skyworks Si4831/35 시리즈가 있다.

(위의 Si4831/35를 포함한) 많은 그러한 IC들은 외형적으로 전통적인 기계식 튜닝 설계에 적합하도록 설계되었다. 전통적인 "순수" 아날로그 회로와 비교할 때, 특히 오래된 DSP 기반 설계의 경우 튜닝 및 오디오 특이점(예: 연속적이 아닌 이산적인 "단계"로 점프하는 튜닝)이 나타날 수 있다.

## 같이 보기
* 디지털 신호 컨트롤러
* 그래픽 처리 장치
* 하드웨어 가속
* MDSP – 멀티프로세서 DSP
* OpenCL
* 사운드 카드
* 시스템 온 칩
* 비전 처리 장치

## 각주

## 외부 링크
* DSP 온라인 도서
* DSP용 프로세서 포켓 가이드 - Berkeley Design Technology, INC


분류:디지털 신호 처리
분류:집적 회로
분류:컴퓨터 공학
분류:코프로세서
분류:하드웨어 가속