¿Qué son realmente: microcontrolador (uC), sistema en chip (SoC) y procesador de señal digital (DSP)?


9

La pregunta real está al final. Pero leer eso solo podría no mostrarte por qué estoy confundido. Escribí esta publicación comenzando con algunas definiciones, suposiciones y especulaciones y luego haciendo la pregunta real.

Siempre pienso que sé la diferencia, pero cuando recibo una pregunta como: "si pongo un transceptor con un uC, ¿eso es ahora un SoC?" Voy todo confundido y no sé cómo responder. Recuerdo una vez que me dijeron que un uC es esencialmente un SoC . Pero, ¿qué prueba tengo? ¡Pero Arduino no está en un solo chip! ¡Puedo sacar el procesador Atmeg de la "placa" en cualquier momento!

Cuando reviso en línea obtengo todo tipo de respuestas que confirman o contradicen lo que acabo de decir directa o indirectamente. Esto siempre es confuso para mí y no culpo a nadie más que a las personas de marketing que usan estos términos de manera flexible y a veces intercambiable, y a las personas que siguen su ejemplo.

Así que decidí buscar el significado fundamental de estos tres términos: uC, SoC y DSP. Porque, por ejemplo, cuando me confundo acerca de los voltajes en los circuitos, siempre vuelvo a los fundamentos de la física, la tierra no es realmente cero, es solo una "referencia" y los voltajes no son "absolutos", sino "parientes". Esto siempre me señala en la dirección correcta. Pero no hay una base a la que recurrir cuando se habla de uC. "micro" "controlador" es un controlador tan pequeño que está en la escala del micro metro. Pero no tenemos el término nanocontrolador, ¿verdad? Entonces esta forma de pensar no ayudaría.

Lo que estoy tratando de responder es lo siguiente:

  • uC es una unidad de procesamiento con otros periféricos y memoria para uso general, ¿verdad?
  • SoC es un "sistema" completo en un "chip". Entonces, sea cual sea el sistema que coloque en un solo chip, es un SoC, ¿verdad?
  • DSP es una unidad de procesamiento para uso específico, principalmente operaciones matemáticas, ¿verdad?

    Ahora

  • ¿Eso significa que todo en un uC debe estar en un solo chip? porque si es así, entonces uC es de hecho un SoC. Tal vez uno pequeño, pero lo es. ¿Qué hay de Arduino? Probablemente uC "puede" ser un SoC si está en un solo chip, pero no tiene que hacerlo (estoy usando mucho arduino como ejemplo aquí).

  • Entonces arduino es un uC, si tomo todos sus componentes y los pongo en otra placa y agrego XBEE a la mezcla, por ejemplo. Todavía es un uC, ¿verdad? Entonces, ¿cuándo decimos que ahora es un SoC? ¿Solo cuando las mismas cosas se colocan en un solo chip en lugar de recolectarse en un tablero?

Hasta ahora creo que las preguntas anteriores se responden de alguna manera, pero solo quiero confirmar para poder seguir adelante. Cuando trato de pensar "fundamentalmente", el chip o la placa "pueden" ser lo mismo, son solo cables que conectan los diferentes componentes. y en este punto, ¿qué define un componente? ¿Es un solo transistor o un circuito como un ADC? Pero no quiero ir allí.

La siguiente pregunta es de qué trata realmente esta publicación:

  • ¿Es un uC esencialmente un SoC? Un caso especial de un SoC cuyo requisito es que todo el sistema es para uso general.
  • uC es de uso general (según internet) y DSP es principalmente para procesar matemáticamente señales recogidas del mundo real. Pero DSP sigue siendo un "procesador" y un uC contiene un "procesador". ¿Puedo poner un DSP con un grupo o periféricos (digamos ADC y DAC ya que generalmente se usan con él) y llamar a la mezcla un uC? o es que un SoC (ya que ahora la mezcla no es de uso general y, por lo tanto, no podemos llamarlo uC pero sigue siendo un SoC)

Realmente no importa cómo lo llames, '¡una rosa con cualquier otro nombre olería tan dulce!' SoC es un término de ventas, 'otras personas le venden las piezas, pero nosotros le vendemos todo el sistema' es lo que implica. uC generalmente es como una memoria uP + y, a menudo, ADC. Un DSP está optimizado para DSP, y lo crees, e invariablemente tiene un multiplicador de hardware, pero a menudo en estos días, la memoria del programa y, a veces, los ADC / DAC, casi un SoC. Pero en gran medida, la mayoría de ellos podrían describirse como los demás. No te preocupes, ciertamente no golpees a las personas por eso.
Neil_UK

2
Sé que se entiende ampliamente que usas u y no hay ningún problema real al usarlo, pero si alguna vez quieres crear un µ, presionas AltGr + Mo ⌘ + Mdebes hacer el truco.
Magic Smoke

1
"micro" es equipaje histórico; El controlador "micro" proviene de una computadora "micro", que se distingue de las computadoras "mini" que tenían el tamaño de un refrigerador y las "" computadoras que ocupaban habitaciones enteras.
user253751

Respuestas:


11

uC = un chip de procesamiento independiente: CPU, RAM, ROM, algunos periféricos.

DSP = chip de procesador (puede ser una CPU separada, hoy en día principalmente una uC) que está optimizada para el procesamiento de señales. A menudo tiene un MAC rápido (acumulación múltiple), matemática saturada y múltiples interfaces de memoria. Para aprovecharlo al máximo, a menudo debe ser muy consciente de sus peculiaridades, como qué tipo de acceso a la memoria se puede hacer al mismo tiempo. (Por lo tanto, a menudo se usa con bibliotecas de ensamblaje afinadas proporcionadas por el fabricante). A menudo no es indeseable para usarse con memorias grandes (el bus de direcciones de 16 bits a menudo es suficiente).

SOC = chip de procesador (principalmente una CPU, quizás con algo de RAM para el almacenamiento en caché) que incorpora periféricos que solían estar fuera del chip del procesador principal. Este es, por definición, un objetivo móvil: las funciones en los SOC especializados de hoy en día se pueden encontrar en los chips mainstream de mañana. Los SOC actuales están destinados principalmente a ejecutar un sistema operativo de nivel Linux y contienen la mayoría de las cosas que necesitaría en dicho sistema, excepto la RAM y la ROM (aunque a menudo se incluye alguna ROM, a menudo para leer un FLASH externo).

Ejemplos de periféricos que son comunes en los SOC de hoy (¡pero están llegando a uC!): Puertos Ethernet, estructura de conmutación Ethernet, USB incl. host y OTG, motor (es) gráfico (s), decodificación de mpeg, motor de cifrado, interfaces RAM y FLASH.

Un Arduino es un producto a nivel de placa, por lo que, por definición, no es un uC, DSP o SOC, aunque puede contener uno. El Uno básico contiene un uC.

Un uC no es un SOC (aunque podría haber casos límite): un uC es independiente y (en el nivel actual de tecnología) no está destinado a ejecutar sistemas operativos de nivel Linux. Un SOC no es independiente (necesita RAM y ROM).

Los límites no son 100% correctos y están cambiando con el tiempo. Las interfaces de CPU y memoria de la mayoría de las CPU actuales superan fácilmente los DSP de ayer, incluso en su territorio. Pero los DSP de hoy en día son más rápidos y / o más baratos o consumen menos energía que las CPU de uso general cuando se procesa la señal. Es una carrera entre los fabricantes para hacer el chip más atractivo utilizando el último estado de la tecnología y la demanda. Por el momento, esto había llevado a los 3 puntos clave anteriores (más microprocesadores de uso general), pero esto cambiará con el tiempo (los DSP son menos populares que hace 10 años, en mi opinión, porque el rendimiento de nivel de audio ahora se logra fácilmente por un CPU de uso general).

Un tipo específico de chip que se está volviendo más común en estos días es el uC (o SOC) con alguna interfaz inalámbrica. Verifique el ESP8266 y ESP32 para ver ejemplos de WiFi, y el RN2483 para LoraWan.


2

uC y DSP tienen una definición bastante sencilla.

Un uC es un núcleo de procesamiento que tiene la memoria (volátil y no volátil) integrada internamente. Esto se compara con un microprocesador que generalmente tendrá algo de memoria volátil en su interior pero no no volátil.

Un DSP es un disparo de una uC. Los DSP generalmente tienen muy buenas capacidades de muestreo analógico que un uC típico. Los DSP también tienen mejores capacidades matemáticas que uC y vienen con muchas bibliotecas como FFT o autocorrelación para utilizar esas capacidades matemáticas.

SoC es más un término comercial de marketing. SoC es un término que intentan usar cuando un uC ha incorporado suficiente funcionalidad para hacer una solución de chip único o casi único. El término SoC tiende a encontrarse cuando el uC ha integrado procesadores gráficos y controladores gráficos a bordo. Piense en los chips ARM en los teléfonos celulares. Incorporan los gráficos.


Entonces, ¿estás diciendo que un DSP también contiene un ADC, por ejemplo?
himura

@himura uC tiene ADC pero los DSP tienen ADC realmente buenos. Por ejemplo, el Arduino es capaz de alcanzar una frecuencia de muestreo de hasta aproximadamente 10 kHz a 10 bits. El dsPIC33, que es un DSP, es capaz de obtener una frecuencia de muestreo de 1.1MHz a 10 bits. Eso es dos órdenes de magnitud más rápido.
vini_i

Pensé que DSP es solo la unidad de procesamiento sin ninguna capacidad de ADC. Pero ahora parece más un sistema completo. Gracias
himura

1
Creo que esta respuesta es incorrecta. Hay muchos chips DSP que no tienen convertidores. La principal diferencia entre un DSP y una CPU de propósito general es la arquitectura de la memoria. Los DSP tienen múltiples memorias a las que se puede acceder en paralelo. Ver en.wikipedia.org/wiki/Harvard_architecture
Hilmar

@Hilmar, ¿puede proporcionar algunas referencias de DSP sin convertidores? Me gusta este punto
himura

0

Lo que llamamos SOC generalmente tiene un núcleo de procesador mucho más potente que uC. Por lo general, puede encontrar el núcleo ARM allí. Casi todos los procesadores ARM "grandes", como la serie Cortex A, producidos hoy son en realidad SOC. Para ejecutar sistemas operativos grandes como Linux, necesita mucha RAM, por lo que los SOC tienen un controlador de RAM externo que admite chips SDRAM modernos. Pequeña cantidad de RAM estática incorporada utilizada solo en la fase de arranque para ejecutar el cargador de arranque e inicializar los periféricos y el controlador SDRAM.

Los uC generalmente son soluciones completas todo en uno con RAM estática incorporada (cantidad bastante pequeña). La pequeña RAM y la falta de MMU evitan el uso de grandes sistemas operativos en ellos. Hoy en día, la mayoría de los uC tienen un núcleo de 8 bits o de 32 bits. UC de 16 bits utilizados solo en aplicaciones heredadas. La era de 32 bits uSc comenzó con los núcleos de la serie ARM M. Estos núcleos están diseñados especialmente para uC y tienen muy poco en común con los ARM grandes, excepto el conjunto de instrucciones (ARM M usa instrucciones THUMB, un subconjunto del conjunto de instrucciones ARM).

El término DSP trata sobre la arquitectura central. Los DSP tienen más de una ALU y tienen los llamados conjuntos de instrucciones VLIW (palabra de instrucción muy larga). La instrucción VLIW se compone de una serie de subinstrucciones (aproximadamente 4) dirigidas a diferentes subsistemas de CPU. Por ejemplo, una instrucción tan larga puede contener una instrucción para capturar previamente datos de la memoria, una instrucción de multiplicación para ALU multiplicador especializado y una instrucción aritmética para ALU de propósito general.

Puede usar DSP como uC de propósito general, pero el propósito principal es el procesamiento de datos digitales (no solo señales, sino también video). Los filtros digitales, los algoritmos de compresión / descompresión de medios se han beneficiado de la arquitectura paralela DSP.

Los núcleos de CPU modernos generalmente tienen una especie de "extensiones DSP" en forma de instrucciones vectoriales (puede realizar la misma operación aritmética en varios, aproximadamente 8, operantes). Es algo diferente a las instrucciones DSL VLIW.


"¿Casi todos los procesadores ARM producidos hoy son en realidad SOC" realmente? ¿Considera chips Cortex-M0 como los LPC810 SOC?
Wouter van Ooijen

He mencionado la serie Cortex M por separado al hablar de uC. Cortex M son uC obviamente.
e_asphyx
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.