¿Puedes basar una computadora alrededor de un microcontrolador de 32 bits?

9

Todos tenemos (principalmente) máquinas de 32 bits en nuestros hogares. Pero las máquinas de 32 bits tienen un microprocesador en ellas. Estaba leyendo un artículo sobre ARM Cortex. Es un microcontrolador de 32 bits. Ahora eso intrigaba una pregunta dentro de mí. Los microcontroladores se hicieron para disminuir la circuitería externa alrededor de un microprocesador, luego los microprocesadores se volvieron más potentes mientras que los microcontroladores permanecieron en formas de 8 bits durante demasiado tiempo. Pero ahora que tenemos microcontroladores de 32 bits, ¿no podemos tener una computadora basada en esas cosas?

Rick_2047
fuente
Relacionado: chiphacker.com/questions/1092/…
endolith

Respuestas:

11

Depende de cómo se defina "computadora".

En el extremo más pequeño de la escala, lo que podríamos llamar microcontroladores tradicionales, no obtiene administración de memoria y rara vez ve más RAM que la pequeña cantidad integrada en el chip. Admitiré muy poco conocimiento sobre la arquitectura de los microcontroladores más capaces ahora disponibles, pero la existencia (o falta de ella) de estas características es probablemente clave para distinguir entre un dispositivo más adecuado para aplicaciones integradas o para cómputo de propósito general .

Por 'gestión de memoria' me refiero a la capacidad de ejecutar programas en espacios de direcciones virtuales y asignarlos a la RAM física disponible en el sistema, una función que se lleva a cabo por lo que generalmente se llama una unidad de gestión de memoria (MMU).

Sin una MMU, si intenta ejecutar múltiples procesos, todos se ven obligados a compartir un solo espacio de direcciones, y esto significa que a menos que todos los procesos involucrados se adhieran a su esquema de asignación de memoria, un proceso puede bloquear fácilmente a otro. Entonces, si tiene el control total del diseño de todos los procesos, como con un sistema embebido, esto no es tan preocupante. Sin embargo, si está tratando de admitir el cómputo de propósito general, no puede garantizar que todo el código que se ejecutará respetará el esquema de asignación de memoria, y el sistema será bastante frágil.

La falta de RAM tampoco es un gran problema para los sistemas integrados, (1) porque generalmente hay mucha memoria flash, y (2) no ser una computadora de uso general significa que no tiene que preocuparse por ejecutar programas inesperados en el a instancias de un usuario. Usted sabe de antemano la suma total de todo el software que se ejecutará en el sistema, y ​​solo necesita RAM para las variables de ese software. Sin embargo, cuando intenta convertir su sistema en una computadora de uso general, los usuarios esperan poder ejecutar lo que les convenga, y esto requiere RAM.

Ahora, está absolutamente bien hacer cómputo de propósito general en dispositivos sin una MMU y sin mucha memoria. La PC IBM original de 128K RAM, basada en 8088 (16 bits) se salió con la suya, siempre que solo necesitara ejecutar un programa a la vez.

Entonces, si desea definir 'computadora' como algo así como la tecnología de 1982, la respuesta es definitivamente sí. O si tiene un sistema cerrado donde puede mitigar los problemas de no tener una MMU y / o mucho ram (por ejemplo, teléfonos celulares) controlando cuidadosamente el diseño del software, también sí. O, si su microcontrolador tiene una MMU incorporada y cantidades de RAM (o puede acomodarlas externamente), debería poder construir un sistema que se parezca más a las computadoras actuales.

JustJeff
fuente
Los desarrollos en compiladores justo a tiempo para cosas como Java hacen que una MMU sea quizás menos necesaria de lo que hubiera sido históricamente. En ausencia de errores relacionados con JIT, uno podría tener múltiples procesamientos independientes ejecutando plataformas independientes en máquinas virtuales Java sin MMU, y tenerlos aislados unos de otros, ya que el JIT no generará instrucciones para un programa que accedería de manera inapropiada a la memoria utilizado por el otro.
supercat
16

¡Absolutamente! Eche un vistazo a casi todos los teléfonos celulares que existen. Por ejemplo, el Motorola Droid utiliza el microcontrolador basado en TI OMAP ARM que ejecuta Android sobre Linux. Básicamente, tiene un sistema operativo completo y muchos otros dispositivos. En algunos de los productos que mi cliente construye, usan procesadores / controladores FreeScale PowerQuicc I & II de 32 bits que pueden ejecutar Linux en ellos. Los PowerQuicc tienen básicamente un núcleo PowerPC junto con un procesador RISC separado para manejar todos los periféricos de una manera altamente configurable. Es un microcontrolador glorificado.

También debe recordar que hace años las computadoras no se ejecutaban en procesadores de 32 bits, sino más bien como procesadores de 8 bits (4 bits en ese entonces) como el Commodore 64. Luego migraron a 16 bits, 32 bits , etc. Realmente no hay mucha diferencia entre un microcontrolador y un microprocesador de arquitectura y velocidad de bits equivalentes. Los microcontroladores generalmente carecen de la unidad de coma flotante, pero eso puede compensarse con matemática de punto fijo. Por ejemplo, el procesador original Motorola 68000 (16 bits) se usó para alimentar esas computadoras Macintosh antiguas y luego se convirtió en una versión de microcontrolador para muchas aplicaciones electrónicas integradas durante años.

Debe analizar la función del microcontrolador para comprender cómo se utiliza. Normalmente, cuando está diseñando con un microcontrolador, tiene una aplicación altamente especializada en mente y está tratando de colocarla en un espacio más pequeño que el de una torre de PC. Mientras que la computadora tiene un propósito muy general: procesar números y procesar la entrada del usuario. Cuando busca un microcontrolador, busca uno que admita el tipo de interfaz que está creando para su aplicación. ¿Necesita 3 puertos USB, 2 ethernet, 2 UART, puerto SPI, cajero automático e interfaz CAN? Algunas de estas interfaces no vienen en una computadora típica como SPI, ATM y CAN, y un microcontrolador las tiene incorporadas para reducir el espacio en la placa. Puede ver los microcontroladores como procesadores diseñados para una solución específica.

Jay Atkinson
fuente
No creo que ninguna "computadora de uso general" haya usado algo más pequeño que un procesador de 8 bits. Las computadoras de uso general necesitan poder acceder a suficiente RAM para contener un programa utilizable, y no conozco ninguna computadora de cuatro bits que tenga un almacén de códigos RAM de tamaño utilizable.
supercat
tal vez no comercialmente, pero muchos hackers lo hicieron, incluido mi abuelo. Tenía una computadora de 4 bits funcionando en su taller antes de que los Commodore 64 y TRS-80 fueran populares. También tenía RAM (pilas de DIP).
Jay Atkinson el
¿Tiene alguna documentación sobre máquinas de arquitectura Von-Neumann de 4 bits construidas físicamente?
supercat
5

Definitivamente podemos. El iPad, por ejemplo, utiliza un procesador ARM Cortex A8 para su cerebro.

pingswept
fuente
2
Este es un microprocesador, no un microcontrolador, como JPC señala a continuación
Kortuk,
3

Vale la pena señalar que los ARM mencionados (OMAP y A8) son microprocesadores sin memoria Flash y RAM (no totalmente cierto para el A8). El microcontrolador Cortex-M3 es más pequeño, tiene una memoria incorporada pequeña y un acceso más fácil a los periféricos.

Hay una gran brecha (rendimiento y características) entre ellos.

jpc
fuente
+1 por señalar la diferencia entre las series Cortex-A y Cortex-M ...
Johan
1
El microcontrolador ha incorporado flash y ram. Los microprocesadores tienen su memoria externamente.
Kortuk
2

No traté de resucitar un hilo antiguo, pero mi Zaurus SL5500 ejecutó Linux integrado en un procesador ARM con gran cantidad de RAM y más cantidades de almacenamiento a través de ranuras CF y SD. Hasta donde sé, la MMU se implementó principalmente en software (tiene sentido para un sistema Linux de todos modos). La computación de uso general no solo era posible, sino que estaba completamente disponible a través de software de terceros, compiladores y un shell de comandos flexible que proporcionaba la mayoría de las utilidades y características estándar * nix.

No era la computadora GP más rápida del mundo, pero seguro hizo que el ARM (y / o los equivalentes de Samsung, no estoy 100 por ciento seguro de cuál contenía) se vea terriblemente capaz. En cuanto a características y rendimiento, se comparó bastante bien con un WinMobile Ipaq de una versión mucho más reciente (clon definitivo de Samsung StrongArm). Ambas máquinas tenían mucha RAM y mucho almacenamiento, por lo que se está administrando mucha memoria, supongo que tenemos que desdibujar un poco la línea entre los microprocesadores y los microcontroladores cuando llegamos a este nivel de rendimiento.


fuente
2

Usted menciona "microprocesadores" y "microcontroladores", pero cada vez más aparece una tercera categoría de dispositivos conocidos como "SOC" (que significa "sistema en chip", un término que encuentro bastante engañoso)

Los microcontroladores tienen cantidades muy pequeñas de ram y, por lo general, no tienen asignación de memoria y protección de memoria muy limitada. Esto los hace poco adecuados para usar como computadoras de uso general.

Los SOC pueden verse como un punto medio entre microcontroladores convencionales que tienen todo integrado en un chip y microprocesadores convencionales que requieren grandes cantidades de circuitos de soporte. Los SOC tienen el núcleo del procesador y los periféricos integrados en un chip, pero a diferencia de los microcontroladores, usan memoria externa. Por lo general, estos SOC tienen una MMU completa que puede crear un espacio de direcciones virtuales para diferentes aplicaciones. Muchos SoC también tienen bloques de funciones especiales para gráficos 3D, DSP, codificación / decodificación de video, etc.

Los SOC no son tan potentes como una PC de escritorio moderna, pero cuando se combinan con un entorno de software sin plegar son lo suficientemente potentes y funcionales como para contar como "computadoras de uso general".

Peter Green
fuente