SoC, SoM, development kit, core, bsp... definiciones correctas para cada caso.

138 views
Skip to first unread message

Santiago Pérez

unread,
Nov 14, 2014, 6:54:19 AM11/14/14
to embeb...@googlegroups.com
Hola,

quizás les ha pasado, pero en el mundo de los embebidos hay muchas definiciones, tanto en hard como en soft, que han ido evolucionando y mutando, y a veces cuesta entenderse con otros u otras empresas por hablar casi en diferentes idiomas pero referirse a lo mismo. Muchas definiciones pueden ser estándares, pero otras dependen del fabricante o proveedor...

A partir de uno de los últimos mails de Ezequiel García y la presentación de FreeElectrons[1], dejo algunas definiciones y las que se barajan en el mercado, por así decirlo. Abro a discusión, modificación y agregado de lo que crean puede sumar.

  • SoC - System on Chip
    Sería el core (por ejemplo ARM) más los periféricos?. Diferencia con microcontrolador?
  • SoM - System on Module
    En algunos lados aparece como la placa en formato SO-DIMM por ejemplo, donde se encuentra el SoC, algunas memorias y otros componentes, casi como el corazón, que después se inserta en una placa base. En la presentación de FreeElectrons [1] lo llaman CoM (Component on Module) si no me equivoco.
  • Evaluation Kit - Development Kit - Community development platforms
    Acá se me complicó la diferenciación. Por ejemplo la iMX53-QuickStartBoard la tenía como un kit de desarrollo o development kit, sin embargo la presentación la menciona como "Community development platforms" y hace una salvedad con la "Evaluation Platforms". Depende del fabricante la diferencia?
  • CIAA
    Que sería?

Insisto, si les parece correcto, pueden agregar otras definiciones incluso de soft, como por ejemplo BSP, que surgió en otro topic.


Saludos y espero sus respuestas,

Santiago


--
Atentamente//With best Regards/Mit freundlichen Grüßen

Santiago Pérez
Ingeniero Electrónico

pere...@gmail.com
Córdoba, Argentina.

Gustavo Zacarias

unread,
Nov 14, 2014, 8:14:54 AM11/14/14
to embeb...@googlegroups.com
On 11/14/2014 08:54 AM, Santiago Pérez wrote:

> * SoC - System on Chip
> Sería el core (por ejemplo ARM) más los periféricos?. Diferencia con
> microcontrolador?

Hola.
SoC es un termino que deviene de lo que son/fueron las PC.
Esencialmente es un procesador que tiene todo lo necesario en
perifericos para su uso (basico) incorporado.
En las PC en la mayoria de los casos la CPU necesita de un chipset para
el manejo de uno o mas de: memoria, I/O, ports, buses, red, etc.
Esos procesadores si dependen de algun chipset en particular para ser un
sistema completo no son un SoC.
La linea que separa SoC y microcontrolador es difusa, yo diria que un
gran rasgo que los separa es el aspecto memoria: los microcontroladores
en general tienen ram y flash incorporados que hace que no necesiten
memoria externa, los SoC generalmente por caracteristicas de uso (mas
capacidad) si necesitan.
Obviamente tenes microcontroladores que ademas de tener ram y flash
tienen un controlador de memoria y ahi es donde hay niebla.

> * SoM - System on Module
> En algunos lados aparece como la placa en formato SO-DIMM por
> ejemplo, donde se encuentra el SoC, algunas memorias y otros
> componentes, casi como el corazón, que después se inserta en una
> placa base. En la presentación de FreeElectrons [1] lo llaman CoM
> (Component on Module) si no me equivoco.

SoM son modulos en varios formatos que tienen la mayoria de los
componentes accesorios necesarios (pasivos, regulador, algun driver de
interfase y/o nivel para las interfases, etc) para simplificar la vida
de la gente que por ejemplo va a usar un SoC en cantidades no muy
grandes y no le resulta economicamente viable desarrollar su propia
placa con todo.

> * Evaluation Kit - Development Kit - Community development platforms
> Acá se me complicó la diferenciación. Por ejemplo la
> iMX53-QuickStartBoard la tenía como un kit de desarrollo o
> development kit, sin embargo la presentación la menciona como
> "Community development platforms" y hace una salvedad con la
> "Evaluation Platforms". Depende del fabricante la diferencia?

Generalmente los 'kit' apuntan a tener toda o la mayor cantidad posible
de perifericos del SoC o microcontrolador expuestos de una forma
facilmente utilizable.
Efectivamente cada fabricante tiene su nombre.

Saludos.

Pedro Martos

unread,
Nov 14, 2014, 8:32:29 AM11/14/14
to embeb...@googlegroups.com
Hola



El 14 de noviembre de 2014, 10:14, Gustavo Zacarias<gus...@zacarias.com.ar> escribió:
On 11/14/2014 08:54 AM, Santiago Pérez wrote:

>   * SoC - System on Chip
>     Sería el core (por ejemplo ARM) más los periféricos?. Diferencia con
>     microcontrolador?

Hola.
SoC es un termino que deviene de lo que son/fueron las PC.
Esencialmente es un procesador que tiene todo lo necesario en
perifericos para su uso (basico) incorporado.
En las PC en la mayoria de los casos la CPU necesita de un chipset para
el manejo de uno o mas de: memoria, I/O, ports, buses, red, etc.
Esos procesadores si dependen de algun chipset en particular para ser un
sistema completo no son un SoC.
La linea que separa SoC y microcontrolador es difusa, yo diria que un
gran rasgo que los separa es el aspecto memoria: los microcontroladores
en general tienen ram y flash incorporados que hace que no necesiten
memoria externa, los SoC generalmente por caracteristicas de uso (mas
capacidad) si necesitan.
Obviamente tenes microcontroladores que ademas de tener ram y flash
tienen un controlador de memoria y ahi es donde hay niebla.

Si bien la diferencia es cada vez mas difusa, creo que todavia se pueden separar en dos aspectos: 
1) el video: un microcontrolador apunta a un display grafico mas bien de baja resolucion y un SoC generalmente tiene capacidad para conectarse a un monitor via VGA o HDMI.
2) La conectividad: un microcontrolador normalmente tiene USB 2.0 o ethernet como las interfaces mas rapidas, un SoC puede tener SATA, USB 3.0; GigabitEthernet, PCIe, etc

Obviamente hay excepciones y dispositivos que tienen un poco de ambos, pero creo que en general todavia se puede hacer esta separacion 

 

>   * SoM - System on Module
>     En algunos lados aparece como la placa en formato SO-DIMM por
>     ejemplo, donde se encuentra el SoC, algunas memorias y otros
>     componentes, casi como el corazón, que después se inserta en una
>     placa base. En la presentación de FreeElectrons [1] lo llaman CoM
>     (Component on Module) si no me equivoco.

SoM son modulos en varios formatos que tienen la mayoria de los
componentes accesorios necesarios (pasivos, regulador, algun driver de
interfase y/o nivel para las interfases, etc) para simplificar la vida
de la gente que por ejemplo va a usar un SoC en cantidades no muy
grandes y no le resulta economicamente viable desarrollar su propia
placa con todo.

>   * Evaluation Kit - Development Kit - Community development platforms
>     Acá se me complicó la diferenciación. Por ejemplo la
>     iMX53-QuickStartBoard la tenía como un kit de desarrollo o
>     development kit, sin embargo la presentación la menciona como
>     "Community development platforms" y hace una salvedad con la
>     "Evaluation Platforms". Depende del fabricante la diferencia?

Generalmente los 'kit' apuntan a tener toda o la mayor cantidad posible
de perifericos del SoC o microcontrolador expuestos de una forma
facilmente utilizable.
Efectivamente cada fabricante tiene su nombre.


Por lo que veo, en general la diferencia parece ser la siguiente:
Evaluation Kit: Es un kit de muy bajo costo (casi seguro < U$S 100 y puede llegar a los U$S 10); tiene el componente y poca cosa mas y esta pensado para evaluar el componente y ver si puede servir para la aplicacion, permitiendo sacar mas conclusiones que solo leyendo PDFs
Development Kit: Es un kit con mucha conectividad, se puede usar en distintas configuraciones y esta pensado para que empieces a desarrollar el firmware de tu aplicación en esa plataforma mientras en paralelo se diseña el hardware. Tambien suele incluir uno o varios reference designs y notas de aplicacion basadas en el kit. Arrancan en los U$S 100 y pueden tranquilamente llegar a los U$S 2500
Community development plataform: Puede ser algo como el E.Kit o el D.Kit, pero el fabricante oficialmente no aporta mas informacion que el manual del kit y la datasheet del componente, no suele haber reference designs o notas de aplicacion oficiales, sino que una comunidad de desarrolladores que genera esa información.  


cordialemente,
Pedro Ignacio Martos
 

Santiago Pérez

unread,
Nov 19, 2014, 8:20:50 AM11/19/14
to embeb...@googlegroups.com
Muy claros, muchas gracias por las respuestas.


Saludos!

Santiago

--
Atentamente//With best Regards/Mit freundlichen Grüßen

Santiago Pérez
Ingeniero Electrónico

pere...@gmail.com
Córdoba, Argentina.

--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Ezequiel Garcia

unread,
Nov 24, 2014, 3:24:36 PM11/24/14
to embeb...@googlegroups.com
Santiago,

Si te sirve de algo, puedo sumar un poco más de lo poco que entiendo. El
año pasado en la SASE me preguntaron justamente: ¿qué es un SoC?

Básicamente, un SoC es la "pastilla" que contiene el CPU core (ARM,
MIPS, lo que sea), y los IP blocks de los periféricos (controladores
MAC, UART, SPI, I2C, DMA, etc etc etc).

Hay que pensar que el CPU core es licenciado por las empresas que
diseñan los cores (e.g. ARM o MIPS, que son nombres de arquitecturas y
de empresas al mismo tiempo) e instanciados por los SoC vendors (Texas
Instruments, NXP, Altera, etc.). A su vez, los IP blocks a veces también
son licenciados por empresas que diseñan IP blocks o bien son diseños de
los SoC vendors.

Respecto de la diferencia con un MCU como el LPC43xx, creería que es más
una cuestión histórica. Yo agarro el TRM (i.e. el manual) de uno de
estos y para mi es un SoC como cualquier otro; solo que quizás tiene una
flash adentro. Pero a los efectos prácticos MCU == SoC.

Respecto de los periféricos, cada SoC tiene un segmento del mercado
asociado. Por ejemplo, tenés SoCs para el mercado NAS, dónde el network
es el punto crucial, y el controlador MAC será super complejo y flexible.

O SoCs para mobile dónde importa el consumo y por lo tanto la jerarquía
de los relojes será muy compleja para poder apagar periféricos a discreción.

El LPC43xx (i.e. la CIAA NXP) es claramente para uso industrial, se ve
por los periféricos, la variedad y cantidad de timers, control de
motores, etc.

El BSP es el board support package. Existen empresas que se dedican a
fabricar SoMs alrededor de un SoC (e.g. Emcraft, Phytec, Compulab).

Junto con esto ofrecen un BSP y soporte para el mismo. Otras empresas
compran esto y arman un producto (e.g. una terminal de autoconsulta)
alrededor de todo esto y olvidarse de lo básico y concentrarse solo en
lo que agrega valor.

El BSP entonces te incluye: toolchain, bootloader, kernel, paquetes de
espacio usuario.

A su vez hay muchas compañias pequeñas que no ofrecen un BSP propio,
sino que venden consultoría y soporte alrededor de los proyectos
oficiales (e.g. Linux oficial, Buildroot oficial, toolchains libres).

--
Ezequiel Garcia, VanguardiaSur
www.vanguardiasur.com.ar

Santiago Pérez

unread,
Nov 25, 2014, 8:21:21 AM11/25/14
to embeb...@googlegroups.com
Gracias Ezequiel por la respuesta.

Hago la misma suposición que vos para la diferencia entre SoC y micro. Históricamente fueron micros y ahora se han agregado los SoCs, que si bien son similares, no son lo mismo. Como se dijo en todas las respuestas anteriores, parece que los SoCs no poseen memoria interna por lo general pero si tienen periféricos más potentes o integrados que un micro común, calculo que para que sean necesarios menos controladores externos a la hora de armar un sistema completo  (por ejemplo, si ya posee controlador de video, controlador de touch, usb, y ethernet, quizás solo te falta un periférico para completar tu lista deseada, sobre todo hablando de periféricos de más alto nivel).

Respecto a BSP y demás, quedó bastante claro, y es lo que se ve en general a la hora de buscar SoCs o SOMs, donde el soporte sobre estos han pasado a ser fundamentales para acelerar el tiempo y calidad de los desarrollos, sobre todo si no queres utilizar todos los módulos por separado (toolchain, bootloader, kernel, etc.). Me parece que cada vez es más determinante a la hora de los desarrollos el soporte y las herramientas que el vendor te ofrece por sobre las prestaciones propias de hardware del SoC o el SoM.


Saludos!


Santiago


--
Atentamente//With best Regards/Mit freundlichen Grüßen

Santiago Pérez
Ingeniero Electrónico

pere...@gmail.com
Córdoba, Argentina.

--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages