마이크로 컨트롤러 (uC), SoC (System on Chip) 및 DSP (Digital Signal Processor)는 무엇입니까?


9

실제 질문은 끝났습니다. 그러나 그 내용 만 읽으면 왜 내가 혼란 스러울 지 알 수 없습니다. 나는이 글을 몇 가지 정의, 가정, 추측으로 시작하여 실제 질문을했다.

나는 항상 그 차이를 알고 있다고 생각하지만 다음과 같은 질문을받을 때 : "uC와 함께 트랜시버를 설치하면 이제 SoC입니까?" 나는 모두 혼란에 빠졌고 어떻게 대답해야할지 모르겠다. 일단 uC가 본질적으로 SoC 라는 말을 들었다 . 그러나 나는 어떤 증거를 가지고 있습니까? 그러나 arduino는 단일 칩이 아닙니다! 언제든지 "보드"에서 Atmeg 프로세서를 꺼낼 수 있습니다!

온라인으로 확인하면 방금 직접 또는 간접적으로 말한 내용을 확인하거나 모순하는 모든 종류의 답변을받습니다. 이것은 항상 저에게 혼란스럽고이 용어를 느슨하고 때로는 상호 교환 적으로 사용하는 사람들과 그들의 리드를 따르는 사람들을 마케팅하는 것 외에는 다른 사람을 비난하지 않습니다.

그래서 저는 세 가지 용어 인 uC, SoC 및 DSP의 기본 의미를 찾기로 결정했습니다. 예를 들어, 회로의 전압에 대해 혼란 스러울 때 항상 물리 기본으로 돌아가고 접지는 실제로 0이 아니며 단지 "기준"이며 전압은 "절대"가 아니라 "상대적"입니다. 이것은 항상 올바른 방향을 가리 킵니다. 그러나 uC에 관해 이야기 할 때 갈 근거가 없습니다. "마이크로" "컨트롤러"는 마이크로 미터 규모의 작은 컨트롤러입니다. 그러나 우리는 나노 컨트롤러라는 용어가 없습니다. 따라서 이러한 사고 방식은 도움이되지 않습니다.

내가 대답하려고하는 것은 다음과 같습니다.

  • uC는 다른 주변 장치와 메모리가있는 처리 장치로서 일반적인 용도로 사용됩니까?
  • SoC는 "칩"의 전체 "시스템"입니다. 단일 칩에 어떤 시스템을 설치하든 SoC가 맞습니까?
  • DSP는 특정 용도, 주로 수학 연산을위한 처리 장치입니다.

    지금

  • 그것은 uC의 모든 것이 하나의 칩에 있어야 함을 의미합니까? 그렇다면, uC는 실제로 SoC이기 때문입니다. 어쩌면 작은 것일 수도 있습니다. arduino는 어떻습니까? 아마도 단일 칩에 있으면 uC "SoC"가 SoC가 될 수 있지만 반드시 그럴 필요는 없습니다 (여기서는 arduino를 많이 사용하고 있습니다).

  • 따라서 arduino는 모든 구성 요소를 가져 와서 다른 보드에 넣고 XBEE를 믹스에 추가하면 uC입니다. 여전히 uC입니다. 그렇다면 언제 SoC라고 말할까요? 같은 물건이 보드에 모이지 않고 단일 칩에 넣어 질 때만?

지금까지 나는 위의 질문이 어떻게 든 스스로 대답한다고 생각하지만, 나는 계속 진행할 수 있도록 확인하고 싶습니다. "기본적으로", 칩 또는 보드 "수"가 동일하다고 생각하면 다른 구성 요소를 연결하는 전선 일뿐입니다. 이 시점에서 컴포넌트를 무엇으로 정의합니까? 단일 트랜지스터입니까 아니면 ADC와 같은 회로입니까? 그러나 나는 그곳에 가고 싶지 않습니다.

다음 질문은이 글의 내용입니다.

  • uC는 본질적으로 SoC입니까? 전체 시스템이 범용으로 사용되어야한다는 요구 사항 중 하나 인 SoC의 특수한 경우.
  • uC는 인터넷에 따라 범용이며 DSP는 주로 실제 세계에서 수집 된 신호를 수학적으로 처리하는 데 사용됩니다. 그러나 DSP는 여전히 "프로세서"이고 uC에는 "프로세서"가 포함되어 있습니다. 뭉치 또는 주변 장치가있는 DSP (ADC 및 DAC를 일반적으로 사용하기 때문에)를 사용하여 믹스를 uC라고 부를 수 있습니까? 또는 SoC인가 (현재 믹스가 범용 적이 아니므로 uC라고 부를 수는 없지만 여전히 SoC 임)

'다른 이름의 장미는 달콤한 냄새가납니다!' SoC는 '다른 사람들이 당신에게 부품을 판매하지만 우리는 당신에게 전체 시스템을 판매합니다'라는 판매 용어입니다. uC는 일반적으로 uP + 메모리와 같으며 종종 ADC입니다. DSP는 DSP에 최적화되어 있으며,이를 믿을 수 있으며, 하드웨어 멀티 플라이어를 가지고 있지만, 요즘에는 종종 프로그램 메모리와 때로는 SoC 인 ADC / DAC가 있습니다. 그러나 대부분, 대부분은 다른 것으로 설명 될 수 있습니다. 땀을 흘리지 말고 사람들을 때리지 마십시오.
Neil_UK

2
나는 u를 사용하는 것이 널리 이해되고 그것을 사용하는 실제 문제는 없다는 것을 알고 있지만, µ를 만들 AltGr + M거나 눌러야 하거나 ⌘ + M트릭을 수행해야합니다.
매직 스모크

1
"마이크로"는 역사적인 수하물입니다. "마이크로"컨트롤러는 냉장고 크기의 "미니"컴퓨터 및 ""전체 방을 차지하는 컴퓨터와 구별되는 "마이크로"컴퓨터에서 비롯됩니다.
user253751

답변:


11

uC = 독립형 처리 칩 : CPU, RAM, ROM, 일부 주변 장치.

DSP = 신호 처리에 최적화 된 프로세서 칩 (현재는 대부분 uC 인 별도의 CPU 일 수 있음) 종종 빠른 MAC (multiply-accumulate), 포화 수학 및 다중 메모리 인터페이스가 있습니다. 이를 최대한 활용하려면 동시에 어떤 종류의 메모리 액세스가 수행 될 수 있는지와 같은 특성을 깊이 알아야합니다. (따라서 종종 제조업체에서 제공하는 미세 조정 된 어셈블리 라이브러리와 함께 사용됩니다.) 종종 큰 메모리와 함께 사용하지 않는 경우가 많습니다 (16 비트 주소 버스로 충분 함).

SOC = 메인 프로세서 칩 외부에 있던 주변 장치를 통합 한 프로세서 칩 (대개 CPU, 캐싱 용 RAM이있을 수 있음) 이것은 정의상 이동 목표입니다. 오늘날의 특화된 SOC의 기능은 미래의 주류 칩에서 찾을 수 있습니다. 현재 SOC는 주로 Linux 수준 OS를 실행하기위한 것이며 RAM 및 ROM을 제외하고 이러한 시스템에서 필요한 대부분의 항목을 포함합니다 (일부 ROM이 포함되어 있지만 종종 외부 FLASH를 읽는 경우가 많습니다).

오늘날의 SOC에서 공통적 인 주변 장치의 예 (그러나 uC 로의 길을 찾고 있습니다!) : 이더넷 포트, 이더넷 스위칭 패브릭, USB 포함 호스트 및 OTG, 그래픽 엔진, mpeg 디코딩, 암호화 엔진, RAM 및 FLASH 인터페이스.

Arduino는 보드 수준의 제품이므로 uC, DSP 또는 SOC가 아닙니다. 기본 Uno에는 uC가 포함되어 있습니다.

uC는 SOC가 아닙니다 (자세한 경우가있을 수 있음). uC는 독립형이며 (현재 기술 수준에서) Linux 수준 OS를 실행하기위한 것이 아닙니다. SOC는 독립형이 아닙니다 (RAM 및 ROM 필요).

경계는 100 % 두께가 아니며 시간이 지남에 따라 변화하고 있습니다. 대부분의 최신 CPU의 CPU 및 메모리 인터페이스는 잔디에서도 어제 DSP를 능가합니다. 그러나 오늘날의 DSP는 신호 처리를 수행 할 때 더 일반적인 퍼프 소 CPU보다 더 빠르거나 전력 소비가 적거나 더 적습니다. 최신 기술과 수요를 사용하여 가장 매력적인 칩을 만드는 것이 제조업체 간의 경쟁입니다. 현재 위의 3 가지 스위트 스팟 (범용 마이크로 프로세서 포함)으로 이어졌지만 시간이 지남에 따라 변화 할 것입니다 (DSP는 10 년 전보다 인기가 떨어졌습니다. 오디오 레벨 처리량은 이제 범용 CPU).

요즘보다 일반적으로 사용되는 특정 유형의 칩은 일부 무선 인터페이스가있는 uC (또는 SOC)입니다. WiFi 예제는 ESP8266 및 ESP32, LoraWan은 RN2483을 확인하십시오.


2

uC와 DSP는 매우 직설적으로 정의되어 있습니다.

uC는 메모리 (휘발성 및 비 휘발성)가 내부적으로 통합 된 처리 코어입니다. 이것은 일반적으로 내부에 휘발성 메모리가 있지만 비 휘발성이 아닌 마이크로 프로세서와 비교됩니다.

DSP는 uC의 오프 샷입니다. DSP는 일반적으로 전형적인 uC보다 실제로 우수한 아날로그 샘플링 기능을 가지고 있습니다. DSP는 또한 uC보다 우수한 수학 기능을 제공하며 이러한 수학 기능을 활용하기 위해 FFT 또는 자동 상관과 같은 많은 라이브러리가 제공됩니다.

SoC는 마케팅 용어입니다. SoC는 uC가 단일 또는 거의 단일 칩 솔루션을 만들기에 충분한 기능을 끌어들일 때 사용하려고하는 용어입니다. SoC라는 용어는 uC에 내장 된 그래픽 처리 및 그래픽 드라이버가있을 때 발견되는 경향이 있습니다. 휴대 전화의 ARM 칩을 생각해보십시오. 그들은 그래픽을 통합합니다.


DSP에 ADC가 포함되어 있다고 말하는가?
himura

@himura uC에는 ADC가 있지만 DSP에는 정말 좋은 ADC가 있습니다. 예를 들어 Arduino는 10 비트에서 최대 약 10kHz 샘플링 속도가 가능합니다. DSP 인 dsPIC33은 10 비트에서 1.1MHz 샘플링 속도가 가능합니다. 그것은 2 배 더 빠릅니다.
vini_i

DSP는 ADC 기능이없는 처리 장치라고 생각했습니다. 그러나 이제는 완전한 시스템처럼 보입니다. 감사합니다
himura

1
이 답변이 잘못되었다고 생각합니다. 변환기가없는 많은 DSP 칩이 있습니다. DSP와 범용 CPU의 주요 차이점은 메모리 아키텍처입니다. DSP에는 병렬로 액세스 할 수있는 여러 메모리가 있습니다. en.wikipedia.org/wiki/Harvard_architecture
Hilmar를

@Hilmar 변환기없이 DSP에 대한 참고 자료를 제공해 주시겠습니까? 나는이 점이 좋다
himura

0

우리가 말하는 SOC는 일반적으로 uC보다 훨씬 강력한 프로세서 코어를 가지고 있습니다. 일반적으로 거기에서 ARM 코어를 찾을 수 있습니다. 오늘날 Cortex A 시리즈와 같은 거의 모든 "큰"ARM 프로세서는 실제로 SOC입니다. Linux와 같은 큰 OS를 실행하려면 많은 RAM이 필요하므로 SOC에는 최신 SDRAM 칩을 지원하는 외부 RAM 컨트롤러가 있습니다. 부팅 로더를 실행하고 주변 장치 및 SDRAM 컨트롤러를 초기화하기 위해 부팅 단계에서만 사용되는 소량의 내장 정적 RAM.

uC는 일반적으로 내장 정적 RAM (quite small amount)을 갖춘 완벽한 올인원 솔루션입니다. 작은 RAM과 MMU가 없으면 큰 OS를 사용할 수 없습니다. 오늘날 대부분의 uC에는 8 비트 또는 32 비트 코어가 있습니다. 레거시 애플리케이션에서만 사용되는 16 비트 uC 32 비트 uSc의 시대는 ARM M 시리즈 코어에서 시작되었습니다. 이 코어는 uC 용으로 특별히 설계되었으며 명령어 세트를 제외하고 큰 ARM과 거의 공통점이 거의 없습니다 (ARM M은 ARM 명령어 세트의 하위 세트 인 THUMB 명령어를 사용합니다).

DSP 용어는 핵심 아키텍처에 관한 것입니다. DSP에는 둘 이상의 ALU가 있으며 VLIW (매우 ​​긴 명령어) 명령어 세트가 있습니다. VLIW 명령어는 다른 CPU 하위 시스템을 대상으로하는 많은 하위 명령어 (약 4 개)로 구성됩니다. 예를 들어, 이러한 긴 명령어는 메모리에서 데이터를 프리 페치하는 명령어, 특수 곱셈기 -ALU 로의 곱셈 명령어 및 범용 ALU 로의 산술 명령어를 포함 할 수 있습니다.

DSP를 범용 uC로 사용할 수 있지만 주요 목적은 디지털 데이터 처리 (신호뿐만 아니라 비디오)입니다. 디지털 필터, 미디어 압축 / 압축 해제 알고리즘은 DSP 병렬화 된 아키텍처의 이점을 제공합니다.

최신 CPU 코어는 일반적으로 벡터 명령어의 형태로 정렬 "DSP 확장"을 갖습니다 (여러 개의 약 8 개의 피연산자에 대해 동일한 산술 연산을 수행 할 수 있습니다). DSP VLIW 명령어와는 다릅니다.


"오늘날 생산되는 거의 모든 ARM 프로세서는 실제로 SOC"입니까? LPC810 SOC와 같은 Cortex-M0 칩을 고려하십니까?
Wouter van Ooijen

uC에 대해 이야기하면서 Cortex M 시리즈를 별도로 언급했습니다. Cortex M은 분명히 uC입니다.
e_asphyx
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.