목차

DSP

Digital Signal Processor

DSP디지털 신호 처리에 특화된 전자 장치 또는 칩을 가리키는 용어입니다. 이러한 DSP 칩은 아날로그 신호디지털샘플링하고, 디지털 신호를 처리하며, 다양한 신호 처리 작업을 수행하는 데 사용됩니다.

간단하게 정의하면, DSP는 다음과 같은 주요 역할을 수행합니다:

  1. 신호 처리: 주로 오디오, 비디오, 통신 및 센서 데이터와 같은 신호디지털 형식으로 처리합니다. 이것은 필터링, 압축, 인코딩, 변환 및 기타 처리 작업을 포함할 수 있습니다.
  2. 수학 계산: DSP는 수학 계산을 기반으로 작동하며, 신호 처리 및 변형을 위한 다양한 수학적 연산을 수행합니다. 이러한 연산은 고속 및 정확한 처리를 가능하게 합니다.
  3. 고속 처리: DSP 칩은 매우 빠른 속도로 데이터를 처리할 수 있으며, 대부분의 애플리케이션에서 실시간 처리 요구 사항을 충족합니다.
  4. 프로그래밍 가능성: DSP는 프로그래밍 가능한 칩으로, 다양한 애플리케이션에 맞게 프로그램할 수 있습니다. 이는 소프트웨어 업데이트나 다양한 신호 처리 작업에 대한 유연성을 제공합니다.
  5. 특화된 응용 분야: DSP오디오 처리, 이미지 처리, 통신 시스템, 제어 시스템 및 센서 네트워크와 같은 다양한 응용 분야에서 사용됩니다.

DSP는 현대 전자 제품과 시스템에서 빠른 데이터 처리와 복잡한 신호 분석을 가능하게 하므로 디지털 시대에서 더욱 중요한 역할을 합니다.

DSP 칩을 주로 제작하는 회사로는 Texas instrument, Motorola, Analog device 와 같은 회사들이 있다.

DSP

DSP is a term referring to specialized electronic devices or chips designed for digital signal processing. These DSP chips are used to sample analog signals into digital, process digital signals, and perform various signal processing tasks.

In a simple definition, DSP performs the following key roles:

  1. Signal Processing: Primarily, it processes signals like audio, video, communication data, and sensor data into digital formats. This can include tasks such as filtering, compression, encoding, transformation, and other processing operations.
  2. Mathematical Computations: DSP operates based on mathematical computations and performs various mathematical operations for signal processing and transformations. These operations enable fast and precise processing.
  3. High-Speed Processing: DSP chips can process data at very high speeds and meet real-time processing requirements in most applications.
  4. Programmability: DSP is a programmable chip, allowing it to be programmed for various applications. This provides flexibility for software updates and adapting to different signal processing tasks.
  5. Specialized Application Areas: DSP is used in various application areas, including audio processing, image processing, communication systems, control systems, and sensor networks.

DSP plays a crucial role in modern electronics and systems, enabling fast data processing and complex signal analysis. Therefore, it has become increasingly important in the digital age.

Companies that primarily manufacture DSP chips include Texas Instruments, Motorola, Analog Devices, and others.

디지털 신호 처리 장치

Chip 제조사들은 해당 칩의 계산 능력을 사용할 수 있도록 해당 칩에서 돌아가는 전용의 명령어 세트를 여러가지 언어의 명령어 라이브러리 형태로 배포하는데, DSP 칩의 경우에는 보통 그 명령어들이 주로 신호 처리에 관련된 명령어들이다.1)2)

예를 들면, 오디오 시그널 처리의 핵심 해당하는 부분은 DSP가 빠르게 처리하고, 주로 사용하는 명령어 라이브러리를 DSP를 판매하면서 같이 제공한다. 그러면 그 DSP 를 이용한 제품(오디오 제품, 또는 플러그인)을 만드는 회사는 그 명령어들을 이용하여 원하는 신호 처리 소프트웨어를 편하게 제작이 가능하다.3)
사실 DSP로 작동하는 소프트웨어(DSP 믹서플러그인)를 제작하는 것은 범용으로 이미 소스 코드가 많이 공개되어 있는 CPU 용 소프트웨어 제작보다 난이도가 높다.4)

음향업계에서 주로 사용하는 DSP

Analog Device 사의 SHARC 칩을 많이 사용한다.

UAD 2, Avid HDX DSP((32-bit 부동소수 DSP))
UAD 2, Avid HDX DSP5)

TC powercore
TC powercore

UAD1((UAD1 은 1개의 24-bit DSP 칩만 사용했다.))
UAD16)

참고
주요 DSP 엔진에 따른 심도 연산 스펙
참고로 여기 나오는 DSP 제품 중에, 24-bit DSP를 가진 UADTC Powercore 등은 다이내믹 계열 플러그인의 음질에 대하여 논란이 많았다.7)

UAD 2의 경우에는 DSP 내장 기능인 IIR 필터 명령어를 이용한 안티 앨리어싱 필터를 빠르게 처리 가능하므로, 실시간 리샘플링효과적으로 할 수 있다, 들어오는 오디오 신호를 실시간으로 192kHz로 바꾸어서 192kHz로 연산을 한다.8) 당연히 해당 플러그인의 품질이 매우 좋아지게 된다. 다만 모든 플러그인이 192kHz 실시간 리샘플링을 지원하지 않고 몇몇 개의 플러그인이 지원하며, 이 기능을 사용하는 플러그인은 매우 높은 점유율9)을 가지기 때문에 한 두개 밖에 못쓰게 될 수도 있다. 아래의 내용은 해당 내용이고, UAD software 매뉴얼에서 발췌했다.

UAD Plug-Ins and High Definition Audio
Antialias Filtering
Some UAD plug-ins process audio at high sample rates internally, allowing replication of complex nonlinear behaviors such as distortion, saturation, and other classic analog characteristics. These UAD plug-ins incorporate a linear phase antialiasing filter that removes audio artifacts far above the audio spectrum in order to deliver the highest possible sound quality.
Note: The tables on the following pages list which UAD plug-ins use the linear phase antialiasing filter.
The audible frequency spectrum is generally recognized as 20Hz – 20 kHz, and the UAD antialiasing filter removes all audio above 30 kHz regardless of the session sample rate. This practice eliminates all audio artifacts, but may not be compatible with certain HD audio distributors that check for audio above 30 kHz.
If antialiased UAD plug-ins are used in HD audio productions (generally defined as audio with sample rates of 96 kHz and higher), either avoid using these UAD plug-ins on the master Output bus, or use UAD plug-ins without the antialiasing filter on the master Output bus instead.
Tip: When using any UAD plug-in that has a MIX control (such as API 2500, Fairchild 670, etc.), setting the MIX control to any value below 100% blends full bandwidth audio with the filtered audio — allowing antialiased UAD plug-ins to be used on the master bus for HD audio distributors.
For more in-depth information, see this article from Sound On Sound magazine:
www.soundonsound.com/sound-advice/q-why-do-universal-audio-restrictprocessing-bandwith-their-uad-plug-ins

CPU를 DSP처럼 사용하는 경우

CPU는 따로 오디오 시그널 처리에 대한 명령어 라이브러리를 DSP 칩들 만큼 제공하고 있지는 않지만, 이미 CPU는 긴 역사를 통해 수많은 오디오 시그널 처리에 관한 소스들이 공개되어 있다. 만약 x86(x64) 기계어나, C 언어를 통해서 오디오 시그널 처리에 대한 명령어 라이브러리10)를 사용한다면 CPU도 충분히 DSP 칩으로써 동작할 수 있다. CPU의 경우는 “모든” 계산에 최적화된 “범용” 프로세서이기 때문이다. 오히려, DSP보다 훨씬 빠르고 강력한 계산 능력이 있기 때문에 훨씬 더 강력한 DSP 칩으로써 작동할 수도 있다. CPU의 연산 능력은 매우 발전하여 일반 DSP 칩의 수십,수백배에 달한다.

다만 CPUDSP로만 만들어진 제품에 비해, 매우 전력 소모량이 크고 발열이 매우 심하다. 그리고 DSP 칩에 비해 매우 비싸다.11) 거기에 추가로, 메인보드, 파워 서플라이, 메모리까지 하면 가격이 매우 비싸진다. 즉, DSP 제품에 비해 CPU 제품은 제작 비용이 매우 높아진다.

이러한 여러 문제들 때문에 이제까지 어느 제조사도 CPUDSP 칩 대신 쓰는 일을 하지 않았으나, 그걸 하고 있는 제조사들이 등장하기 시작했다.

이게 가능하게 된 이유는, CPU 의 가성비가 DSP 칩의 가성비를 넘어서고 있기 때문이다.

DSP 보드 구성 방법 중 하나인, DSP 칩을 여러개 사용해서 단일 CPU 와 같은 동급의 성능을 내려면, 여러 개의 DSP 칩을 1개의 DSP 칩 처럼 동작하게 만들어 주는 병렬 프로세서인 FPGA 칩이 필요한데, 이 FPGA 칩이 가격이 매우 비싸고 DSP 칩 8개에다가 FPGA 칩 1개를 구성해서 겨우 티엄 급의 계산 능력을 가지는 DSP 보드를 만드는 것이, 티엄 급의 CPU 로 구성된 보드 1개를 사는 것보다 가격이 높다.(UAD octa core 이야기 입니다.)


FPGA 칩 1개 + DSP 칩 8개12). 어떤 면에서는 가성비가 없다고 볼 수 있다.13)

하지만 CPUDSP로 쓰는 장비들의 경우 발열, 그리고 발열에 의한 냉각 용 소음이 아직 해결해야 할 과제이다.

DSP 칩들의 프로세싱 파워는 CPU와 비교하면 어느 정도 일까?

CPU 기반의 DSP 제품들

레이턴시

DSP는 제로 레이턴시에 가깝게 동작한다.

CPUDSP로 활용하는 경우, 대다수의 사람들이 Windows나 맥 OS에서 CPU 네이티브 시스템을 연상하며 “레이턴시가 있지 않나?”하고 생각하는 사람들도 있다. 하지만 레이턴시는 어디까지나 OS가 멀티태스킹을 해야 해서 여러가지 어플리케이션에 대기시간을 할당하는 방식 때문에 필수적으로 오디오 처리 버퍼를 크게 사용해야 하기 때문에 존재하는 것이다. 만약 멀티태스킹 OS가 아닌 RTOS14)를 사용하면 CPU도 실시간으로 동작하게 된다. Linux RT의 경우는 오디오 레이턴시가 1ms 정도로 나온다고 한다.

CPUDSP로 활용하는 위와 같은 제품들은 모두 DSP 처리를 해주는 RTOS를 사용하여 동작한다.

사실 최근에 제작되어 만들어지는 디지털 콘솔들, 마이다스의 M32, 베링거의 X32, Yamaha의 PM, CL, TF 등, 여러가지 디지털 콘솔의 내부를 자세히 들여다보면 이러한 RTOS15)가 설치되어 있고, 그 위에 실시간으로 돌아가는 소프트웨어 믹서 어플리케이션을 구성한 것이다. 거기에 추가로 따로 DSP 보드가 있는 경우가 많다.(주로 디지털 콘솔 용으로 사용되는 OS는 Yamaha는 리눅스, 디지코 등은 Windows 7기반이다. 안정성이 좋다고 알려진 맥 OSX를 사용하는 디지털 콘솔은 의외로 없다. 이유는 무엇일까?)

참고할만한 글

https://www.mcublog.co.kr/6
https://www.mcublog.co.kr/7

여러가지 연산기의 간략한 구조


AMD ZEN Micro 아키텍쳐, 왼쪽이 ALU(정수 연산자) 오른쪽이 FPU(부동소수 연산자)16)

CPU와 GPU의 차이
CPU와 GPU의 차이



DSP와 FPGA의 차이
DSP와 FPGA의 차이

DSP LoadLock

UAD의 경우에는 설정에서 DSP 점유율이 어느 정도 이상이 되게 되면 더 이상 플러그인을 못걸게 Lock을 설정 가능하다.

retronica 2019/01/06 13:04

1)
오디오 관련 명령어는 보통 필터, 푸리에 변환, 컨벌루젼 등
2)
CPUDSP의 차이점은 , CPU 는 원래는 정수 연산 용의 계산기+메모리나 하드웨어 등 주변기기 컨트롤러 형태 인것을 말하는데, 현재의 CPU부동소수 연산기+정수 연산기+컨트롤러 등으로 발전해왔고, DSP의 경우는 스펙에 따라 정수 연산 형태(24-bit, 48-bit)인 것이 있고, 부동소수 연산 형태(32-bit 부동소수, 64-bit 부동소수)인 것도 있다. 현재는 CPU가 매우 발전하여, 계산 능력은 CPU가 훨씬 우수하지만, 문제는 CPUDSP에 비해 전력 소모량과 발열이 매우 크고, 가격이 DSP에 비해 비싸다.
3)
사실 업계 일하시는 분들 말로는 제공하는 기본 명령어 라이브러리는 아주 기본적인 것들만 있어서 그냥 다시 명령어 라이브러리를 해당 Chip의 기계어로 새로 만들어 쓰는 경우가 더 많다고 한다. 그리고 그렇게 만들어서 쌓인 명령어 라이브러리는 해당 프로그래머/회사의 자산이 된다.
4)
그래서 DSP플러그인이 더 비싼 경우가 많다. 노동의 댓가
6)
UAD1 은 1개의 24-bit DSP 칩만 사용했다.
7)
이 시절엔 오히려 외장 DSP를 쓰는 플러그인CPU 기반 Native 플러그인보다 음질이 떨어지는 것에 대해 말이 많았을 정도.
8)
UAD 만 지원하는 것은 당연히 아니다. CPU로 동작하는 플러그인도 이 기능을 넣으면 된다. Waves 경우도 당연히 이 기능이 되는 플러그인이 많다.
9)
48kHz기준으로 4배, 보통 4배
10)
openAL, JUCE와 같은 것들이 있다.
11)
DSP 단가가 몇 만원 단위라면, CPU는 몇십 만원 단위이다.
12)
UAD octacore의 연산 능력은 티엄이나 I3 CPU 와 비슷한 수준이다
13)
가격이 컴퓨터 보다 비쌈.
14)
Realtime operating system
15)
Linux RT 같은
16)
MMX나 AVX 는 부동소수 연산에 관련된 명령어 유닛들이다.