¿Puede basar una computadora en un microcontrolador de 32 bits?

9

Todos tenemos (en su mayoría) 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 el ARM Cortex. Es un microcontrolador de 32 bits. Ahora eso intrigaba una pregunta dentro de mí. Los microcontroladores se hicieron para disminuir los circuitos externos alrededor de un microprocesador, luego los microprocesadores se hicieron más potentes mientras que los microcontroladores permanecieron allí en formas de 8 bits durante un tiempo demasiado largo. Pero ahora que tenemos microcontroladores de 32 bits, ¿no podemos tener una computadora basada en esas cosas?

    
pregunta Rick_2047

7 respuestas

11

Depende de cómo definas 'computadora' ...

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

Por "administració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 realiza en lo que generalmente se denomina unidad de administración de memoria (MMU).

Sin una MMU, si intenta ejecutar varios procesos, todos se ven obligados a compartir un único 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. Por lo tanto, si tiene el control total del diseño de todos los procesos, como ocurre con un sistema integrado, esto no es tan preocupante. Sin embargo, si está intentando admitir el cálculo 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 muchos flashes, y (2) no ser una computadora de propósito general significa que no tiene que preocuparse por correr sin anticipación Programas 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 intentas convertir tu sistema en una computadora de propósito general, los usuarios esperarán poder ejecutar lo que más les convenga, y esto requiere RAM.

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

Entonces, si quieres 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 gran cantidad de RAM (o puede acomodarlas externamente), debería poder construir un sistema que se parezca más a las computadoras actuales.

    
respondido por el JustJeff
16

¡Absolutamente! Echa un vistazo como casi todos los teléfonos celulares por ahí. Por ejemplo, el Motorola Droid usa el microcontrolador basado en OMAP ARM de TI que ejecuta Android sobre Linux. Básicamente, hay un sistema operativo de computadora completo y muchos otros dispositivos. En algunos de los productos que construye mi cliente, usan FreeScale PowerQuicc I & II Procesador / controlador de 32 bits que puede 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 debes 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 punto flotante, pero eso se puede compensar con matemáticas 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 ver la función del microcontrolador para comprender cómo se usa. Normalmente, cuando diseñas con un microcontrolador, tienes en mente una aplicación altamente especializada y tratas de encajar en un espacio más pequeño que, por ejemplo, una PC Tower. Considerando que, la computadora es de propósito muy general: números crujidos y proceso de entrada del usuario. Cuando busca un microcontrolador, está buscando uno que sea compatible con el tipo de interfaz que está creando para su aplicación. ¿Necesita 3 puertos USB, 2 Ethernet, 2 UARTs, puerto SPI, ATM e interfaz CAN? Algunas de estas interfaces no vienen en una computadora típica como SPI, ATM y CAN, y un microcontrolador las tiene integradas para reducir el espacio de la placa. Puede ver a los microcontroladores como procesadores diseñados para una solución específica.

    
respondido por el Jay Atkinson
5

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

    
respondido por el pingswept
3

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

Hay una brecha bastante grande (en cuanto a rendimiento y características) entre ellos.

    
respondido por el jpc
2

Las netbooks recientes se basan en ARM: enlace

    
respondido por el terrace
2

No estoy tratando de resucitar un hilo viejo, pero mi Zaurus SL5500 ejecutó linux integrado en un procesador ARM con gran cantidad de RAM y más ranuras de almacenamiento a través de las ranuras CF y SD. Por lo que sé, la MMU se implementó principalmente en software (de todos modos tiene sentido para un sistema Linux). La computación de propósito 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 que el ARM (y / o los equivalentes de Samsung, no estoy 100% seguro de cuál era el contenido) se ve muy bien. Característica y en cuanto a rendimiento, se compara bastante bien con un WinMobile Ipaq de una cosecha mucho más reciente (clon definitivo de Samsung StrongArm). Ambas máquinas tenían una gran cantidad de memoria RAM y mucho almacenamiento, por lo que se gestionaba mucha memoria. Supongo que tendremos que desenfocar un poco la línea entre los microprocesadores y los microcontroladores cuando lleguemos a este nivel de rendimiento.

    
respondido por el stevoh
2

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

Los microcontroladores tienen cantidades muy pequeñas de RAM y generalmente no tienen mapeo de memoria y la protección de memoria es muy limitada. Esto los hace poco adecuados para usar como computadoras de propósito general.

Los SOC se pueden ver como un punto medio entre los microcontroladores convencionales que tienen todo integrado en un chip y los 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. Normalmente, 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 código, son lo suficientemente potentes y funcionales como para ser considerados como "computadoras de propósito general".

    
respondido por el Peter Green

Lea otras preguntas en las etiquetas