Hola, colegas ingenieros,
Necesito ayuda con el diseño del diseño con una computadora con base en Z80 que estoy construyendo. Contará con un panel frontal binario.
Las siguientes funciones se pueden realizar a través del panel frontal. Estas son las cosas habituales que uno encontraría en una mini computadora vintage.
- Bootstrapping
- Examen de memoria y carga.
- visualización del estado de la CPU
- LED de identificación del ciclo de la CPU
- Identificación de modo (instrucción de captura, ISR, I / O, DMA, etc.)
- control del procesador
- Control de interrupción
- Protección de memoria
- restablecer
- afirmación DMA
- Selección de velocidad del reloj
- Ejecutar / Detener
- Opción de diseño del panel frontal
Un panel frontal se puede construir de varias maneras. Todavía queda mucho por decidir aquí. Básicamente, hay dos opciones de diseño llamadas A y B.
-
Opción A: el panel frontal está vinculado directamente a la dirección, los datos y los buses de control que supervisa. Se emplea hardware adicional para leer y escribir en la memoria y cargar (y rastrear) el contador del programa. El Altair 8800 original realmente atascó las instrucciones de salto en el bus cuando se presionó el interruptor de funcionamiento.
-
Opción B: el panel frontal es esencialmente una pantalla LED elaborada y un periférico de entrada binaria que se controla mediante un software (un controlador). Esto podría agregar la visualización del registro de la CPU.
Las consideraciones se detallan a continuación.
-
Certeza: en la Opción A, el estado real de los autobuses siempre se mostrará fielmente. En la Opción B, el estado de los buses no siempre puede representarse de manera confiable porque se requiere una capa de software de intermediación que sea menos confiable que el hardware. Además, el software deberá distinguir entre el estado informado del procesador y el estado real en tiempo real del procesador al mostrar el estado del panel frontal.
-
Legibilidad: si, en la Opción A, los indicadores LED del panel frontal siguen los buses en todo momento, se pueden esperar pantallas indeterminadas que representan el bus entre los tiempos de datos válidos. Esto podría resultar engañoso. Como mínimo, se necesitarán pestillos para capturar los estados del bus en el momento adecuado. Esto tomará un poco de hardware. La opción B no plantea tales problemas, o mejor dicho, esto se hace en el software.
-
Confusión: la pantalla se ejecutará durante las aplicaciones de usuario. En la Opción B, el software de pantalla deberá ejecutarse con la aplicación. Esto complica las cosas. ¿Con qué frecuencia puede actualizarse el panel frontal? ¿Debe actualizarse después de cada instrucción?
-
Autenticidad: la opción A está vinculada al hardware y es representativa de los paneles frontales reales utilizados en las computadoras mini y mainframe vintage. La opción B tiene una sensación más moderna y de emulación.
- Utilidad: ¿Se puede diseñar el panel frontal de una manera, con la Opción A o la Opción B, para admitir puntos de interrupción y depuración?
Aquí algunas reflexiones sobre la Opción B.
A. Usando la Opción B, el panel frontal podría actualizarse en cada instrucción usando señales de bus de extracción de instrucciones, interrupciones y algunas puertas. Pero el rendimiento de la aplicación será excelente.
B. Alternativamente, un controlador del panel frontal podría tomar instantáneas periódicas del estado del procesador a una velocidad específica y publicar los resultados en el panel frontal.
C. Si se usa la Opción B, el Panel frontal podría ignorarse durante la ejecución de la aplicación y estar disponible para la aplicación de luces intermitentes y entradas de interruptor, lo cual es atractivo y tiene mucho mérito. La opción A no permite el uso de la aplicación del Panel frontal.
D. La utilidad, como se definió anteriormente, y la disponibilidad para la aplicación son las consideraciones de diseño más importantes. La certeza, como se definió anteriormente, es la siguiente consideración de diseño importante.
La opción A, me temo, aumentará significativamente la cantidad de fichas.
¿Alguien tiene alguna idea sobre esto? ¿Alguien ha resuelto este problema antes que yo?