¿qué son realmente: Microcontrolador (uC), Sistema en chip (SoC) y Procesador de señal digital (DSP)?

8

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 formulando la pregunta real.

Siempre pienso que conozco la diferencia, pero cuando recibo una pregunta como: "si pongo un transceptor con una unidad de control, ¿es eso ahora un SoC?" voy todo desordenado y no se como contestar Recuerdo una vez que me dijeron que una uC es esencialmente un SoC . Pero ¿qué pruebas tengo? ¡Pero el arduino no está en un solo chip! ¡Puedo sacar el procesador Atmeg de la "placa" en cualquier momento!

Cuando verifico en línea recibo 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 más que a las personas de mercadeo que usan estos términos de manera indiferente y, a veces, indistintamente, ya 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 confunden 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", son "parientes". Esto siempre me apunta a la dirección correcta. Pero no hay una base a la que ir cuando se habla de Estados Unidos. "micro" "controlador" es un controlador tan pequeño que se encuentra en la escala de micro metros. Pero no tenemos el término nanocontrolador, ¿verdad? Así que 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 con ella para uso general, ¿verdad?
  • SoC es un "sistema" completo en un "chip". Entonces, cualquier sistema que coloques en un solo chip, es un SoC, ¿verdad?
  • DSP es una unidad de procesamiento para uso específico, principalmente operaciones matemáticas, ¿verdad?

    Now

  • ¿Eso significa que todo lo que en una unidad de control de temperatura tiene que ser en un chip? porque si es así, entonces uC es de hecho un SoC. Tal vez uno pequeño, pero lo es. ¿Qué pasa con el 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 confirmarlas 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, uno de sus requisitos es que todo el sistema es para uso general.
  • uC es de propósito general (según Internet) y DSP es principalmente para procesar matemáticamente señales recopiladas del mundo real. Pero DSP sigue siendo un "procesador" y una unidad de control contiene un "procesador". ¿Puedo simplemente poner un DSP con un montón o periféricos (digamos ADC y DAC, ya que generalmente se usan con este) y llamar a la mezcla una unidad de control de temperatura? o es que un SoC (ya que ahora la mezcla no es un propósito general y, por lo tanto, no podemos llamarlo uC pero sigue siendo un SoC)
pregunta himura

3 respuestas

10

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 unidad de control de datos) que está optimizada para el procesamiento de la señal. A menudo tiene MAC rápido (acumulación múltiple), saturación matemática y múltiples interfaces de memoria. Para sacar el máximo provecho de esto, a menudo necesita estar muy consciente de sus peculiaridades, como el tipo de acceso a la memoria que se puede realizar al mismo tiempo. (Por lo tanto, a menudo se usa con las bibliotecas de ensamblajes ajustadas con precisión proporcionadas por el fabricante). A menudo no se pretende usarlas con memorias grandes (el bus de direcciones de 16 bits suele ser suficiente).

SOC = chip de procesador (principalmente una CPU, tal vez con algo de RAM para almacenamiento en caché) que incorpora periféricos que solían estar fuera del chip del procesador principal. Esto es, por definición, un objetivo en movimiento: 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 diseñados principalmente para ejecutar un sistema operativo de nivel Linux, y contienen la mayoría de las cosas que necesitaría en un sistema de este tipo, a excepción de la RAM y la ROM (aunque a menudo se incluye alguna ROM, para leer un FLASH externo). p>

Ejemplos de periféricos que son comunes en los SOC de hoy (¡pero están encontrando su camino en los uC!): puertos Ethernet, estructura de conmutación de Ethernet, USB incl. host & OTG, motor (es) gráfico (s), decodificación de mpeg, motor criptográfico, RAM & Interfaces FLASH.

Un Arduino es un producto de nivel de placa, por lo que no es un uC, DSP o SOC por definición, 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á diseñado para ejecutar sistemas operativos a nivel de Linux. Un SOC no es independiente (necesita RAM y ROM).

Los límites no son del 100% y cambian con el tiempo. Las interfaces de CPU y de memoria de la mayoría de las CPU actuales superan fácilmente a los DSP de ayer, incluso en su territorio. Sin embargo, los DSP de hoy en día son más rápidos y / o más económicos o tienen menos consumo de energía que las CPU de uso general cuando se realiza el procesamiento de señales. Es una carrera entre los fabricantes para hacer el chip más atractivo utilizando el último estado de la tecnología y la demanda. En este momento, esto llevó a los 3 puntos clave anteriores (más los microprocesadores de propósito general), pero esto cambiará con el tiempo (los DSP son menos populares que hace 10 años, IMO porque el rendimiento del nivel de audio ahora se logra fácilmente mediante una CPU de propósito 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 los ejemplos de ESP8266 y ESP32 para WiFi, y el RN2483 para LoraWan.

    
respondido por el Wouter van Ooijen
2

uC y DSPs 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 fuera de línea de un uC. Los DSP generalmente tienen capacidades de muestreo analógico realmente buenas que un uC típico. Los DSP también tienen mejores capacidades matemáticas que los de Estados Unidos y vienen con muchas bibliotecas como FFT o autocorrelación para utilizar esas capacidades matemáticas.

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

    
respondido por el vini_i
0

Lo que llamamos SOC generalmente tiene un núcleo de procesador mucho más poderoso que uC. Por lo general, usted puede encontrar el núcleo ARM allí. Casi todos los procesadores ARM "grandes", como la serie Cortex A, que se producen en la actualidad son en realidad SOC. Para ejecutar un sistema operativo grande como Linux, se necesita una gran cantidad de RAM, por lo que los SOC tienen un controlador de RAM externo que admite chips SDRAM modernos. Una pequeña cantidad de RAM estática integrada utilizada solo en la fase de inicio para ejecutar el cargador de inicio e inicializar los periféricos y el controlador SDRAM.

los uC por lo general son soluciones completas todo en uno con RAM estática integrada (una cantidad bastante pequeña). La pequeña memoria 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 o 32 bits. UCs de 16 bits utilizados solo en aplicaciones heredadas. La era de 32 bit uSc comenzó con los núcleos de la serie ARM M. Estos núcleos están diseñados especialmente para unidades uC y tienen muy poco en común con las grandes ARM, excepto el conjunto de instrucciones (ARM M utiliza instrucciones THUMB, un subconjunto del conjunto de instrucciones ARM).

El término DSP se refiere a la arquitectura del núcleo. 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 varias subinstrucciones (aproximadamente 4) dirigidas a diferentes subsistemas de CPU. Por ejemplo, una instrucción tan larga puede contener una instrucción para obtener previamente datos de la memoria, una instrucción de multiplicación para un ALU multiplicador especializado y una instrucción aritmética para un ALU de propósito general.

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

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

    
respondido por el e_asphyx

Lea otras preguntas en las etiquetas

Comentarios Recientes

¿Y por qué los microcontroladores son difíciles de poner en producción antes de ARMV7 y ARMv8? Para mis respuestas sobre el primer uso de ARMUIMP cuando estoy con estas preguntas, me concentraré en la selección posterior al envío. Quiero responder estas preguntas después de terminar mi estudio en la Universidad McGill, que está llegando a su fin, pero necesito hacer la presentación, mostrar presentaciones, eventos posteriores al juego y después del lanzamiento y la prensa negra. El estado de juego de los... Lees verder