¿Por qué los sistemas integrados deben ser programables?

6

Según mi entendimiento, ciertos tipos de sistemas integrados están dedicados a una tarea en particular. Entonces, ¿por qué los ingenieros no transfieren toda la carga del procesamiento al hardware en forma de Circuitos Integrados Específicos de la Aplicación (ASIC)? Seguramente, esto haría que los controladores sean más eficientes? Este enfoque debería funcionar para todos los sistemas integrados que no necesitan ejecutar software de aplicación, ¿no?

    
pregunta Joebevo

3 respuestas

14

En grandes cantidades (millones de copias), ASIC puede ser más económico que las partes programables. Por otro lado, el desarrollo de silicio ASIC cuesta al menos un orden de magnitud más que el desarrollo de FPGA o código de microcontrolador (μC). Lo mejor del software es que, casi por definición, "disfruta de un entorno de creación rápida de prototipos" [1]. El silicio no.

También considera la flexibilidad. ¿Qué pasa si uno quiere cambiar el comportamiento del producto en el futuro? Hacer otro diseño de silicona ASIC incurriría en otro gasto NRE. El firmware de una parte programable no requiere cambios en el silicio.

[1] Rick Dove

editar: subprocesos relacionados
¿Cuánto cuesta hacer un ASIC personalizado?
¿Cuáles son los usos prácticos de ASIC?

    
respondido por el Nick Alexeev
5

Me gustaría ampliar un poco la respuesta (genial) de Nick.

Sí, el costo de producción suele ser el parámetro más importante de todos, pero, incluso suponiendo que se podrían diseñar ASIC al mismo costo que, por ejemplo, los FPGA, esto no llevaría a una adopción mucho más amplia de ASIC. .

El problema aquí es el hecho de que hay muy pocos fabricantes de ASIC y están muy ocupados en satisfacer la demanda de iPhones, iPads, galaxias, etc. Esto significa que su diseño (de lo contrario listo para la producción) podría quedar estancado Debido a la solicitud conflictiva de uno de los "gigantes". Generalmente, cada proyecto tiene muchas dependencias, y no querría agregar este tipo de dependencia sin una gran justificación.

Los FPGA y los microcontroladores son pequeñas "libertades" empaquetadas: una vez que haya comprado suficientes, puede que no se preocupe por quedarse atascado. Incluso si no compra la cantidad requerida antes de tiempo, los proveedores generalmente tienen casi todo en stock, por lo que no es una preocupación para proyectos que no están planificados para la producción en masa.

Por cierto, no siempre se trata de reducir el costo. Tomemos, por ejemplo, los osciloscopios y los analizadores lógicos: cualquier dispositivo de gama alta (del que he oído hablar) viene con su propio ASIC (por lo general, estos ASIC son específicos de una familia, no de un solo dispositivo). Estos dispositivos de gama alta se venden en miles (a veces en cientos), ¡pero aún tienen un ASIC personalizado en ellos! ¿Por qué? Porque hay compañías que pagarán decenas de miles de dólares por estos dispositivos, siempre y cuando se especifiquen como los mejores. En estos casos, vale la pena diseñar ASIC para un producto de tan bajo volumen: los márgenes de ingresos cubrirán los gastos.

    
respondido por el Vasiliy
1

Un punto que aún no se menciona es que los microprocesadores no se inventaron no como reemplazos para computadoras más grandes, sino como reemplazos para cierres discretos, contadores y otra lógica interconectada; aunque los microprocesadores actuales han asumido los roles que solían jugar las computadoras construidas con lógica discreta, continúan funcionando bien como sustitutos de otros tipos de lógica.

A mediados de la década de 1970, Atari diseñó una máquina de arcade llamada Tank, que usaba lógica discreta para implementar un juego con dos tanques que podían conducir alrededor de un campo de juego e intentar dispararse entre sí. Tenía circuitos dedicados para manejar la posición horizontal, la posición vertical y el ángulo de cada tanque, así como el disparo de cada jugador, más circuitos dedicados para los dígitos de puntuación y campo de juego, circuitos para determinar qué parte de cada tanque (si existe) para mostrar cada línea de escaneo, etc. Una máquina bastante complicada.

En 1977, Atari lanzó una consola de videojuegos para el hogar llamada Atari Video Computer System (CX-2600). Contenía un microprocesador 6502, un chip RIOT (llamado así por su contenido: 128 bytes Ram, I / O y un temporizador), y un ASIC personalizado relativamente simple llamado TIA (también llamado Stella, después de la bicicleta del diseñador). El ASIC mantuvo 20 pestillos para un patrón de fondo de baja resolución, dos pestañas de 8 bits para la forma del jugador, cinco contadores de posición horizontal (uno para cada jugador, uno para cada disparo del jugador y uno para un objeto no específico del jugador llamado "bola"), y unos pocos pestillos de control de modo y selección de color. También tenía una ranura para aceptar un cartucho ROM. El cartucho de "Combate" era una ROM de 2K y proporcionaba casi todas las funciones del juego arcade original de Tank, además de muchos otros modos no incluidos en el juego de arcade como laberintos alternativos, disparos de rebotes, aviones, etc. [Lo único que Tank tenía el combate no era cuatro minas de posición fija].

Tenga en cuenta que el TIA no incluyó ningún hardware para mostrar la puntuación, ni determinar qué datos deben mostrarse en cada línea de exploración, ni tampoco nada relacionado con el recuento de líneas de exploración. El único soporte para la sincronización vertical era un pestillo que el procesador era responsable de activar para tres líneas de exploración de cada 262. La gran mayoría de las funciones que se habían manejado mediante lógica discreta en el juego original de Tank se manejaban por código en el Cartucho de combate.

Una cosa esencial a tener en cuenta al comparar el hardware del Tanque con un Combate en ejecución 2600 es que la mayoría de los circuitos en el Tanque estaban inactivos el 90% del tiempo, pero tenían que existir de forma continua a pesar de todo. En contraste, Combat pudo usar el mismo circuito que dibuja el campo de juego en la parte inferior de la pantalla para dibujar la puntuación en la parte superior; los únicos circuitos que debían estar "dedicados" a mantener los puntajes eran los dos bytes de RAM utilizados para mantener los puntajes. Del mismo modo, los únicos circuitos dedicados a la posición o rotación vertical fueron los bytes de RAM que mantuvieron las posiciones verticales y los ángulos de rotación para cada tanque (o avión) y sus disparos asociados.

Es posible utilizar técnicas de multiplexación para reutilizar los circuitos, incluso cuando uno no está utilizando un procesador. El juego Tank (e incluso PONG®, para el caso) usó una pieza de circuito para mostrar la puntuación del jugador 1 en el lado izquierdo de la pantalla y la puntuación del jugador 2 en el lado derecho. No obstante, el uso de un procesador facilita un nivel de reutilización de los circuitos mucho más allá de lo que sería conveniente con las técnicas convencionales.

    
respondido por el supercat

Lea otras preguntas en las etiquetas