CPU para proyecto retro de escuela de informática

9

Soy un estudiante en una escuela de TI y estamos tratando de pensar en un proyecto que podamos usar para mostrar a los estudiantes de primer año cómo funcionan las cosas detrás del escenario y eventualmente pensamos en hacer una computadora retro.

He leído muchas cosas sobre el procesador Z80, pero supongo que necesitamos algo más potente, todavía nos estamos preguntando sobre la arquitectura, aunque ARM podría ser una buena opción teniendo en cuenta que encontraríamos mucha documentación, tenemos También estableció algunas necesidades especiales:

  • Un bus de direcciones externo si necesitamos más RAM
  • > 50Mhz
  • 16 o 32 bits
  • Sin paquete BGA / QFN
  • Sin placa FPGA
  • Una interfaz en serie (?)
  • No es demasiado caro, ya que tenemos un presupuesto limitado.

El P8X32A-D40 parece una buena CPU pero carece de la cantidad de RAM que necesitaríamos (32k), estaba más pensando en algo como> 1MB. Quizás valga la pena considerar el eZ80. Nos gustaría respuestas de personas experimentadas como tú.

Gracias.

Editar: Aunque he aceptado una respuesta, ya que satisface nuestras necesidades, la pregunta aún está abierta a otras sugerencias, ya que tendremos que discutir las opciones con el equipo de estudiantes dispuestos a participar en el proyecto.

Anthony Teisseire
fuente
44
Primero, habla de hacer una computadora retro, y luego presenta especificaciones (50 MHz,> 1 MB de RAM) para microprocesadores mucho más nuevos. El Z80 tenía una frecuencia de reloj máxima de 2 MHz y podía soportar 64K de memoria. El chip Propeller (P8X32A-D40) es uno de mis favoritos debido a su arquitectura única, pero definitivamente no es computación retro. El Z80 no es una mala elección ya que hay una buena cantidad de información sobre cómo armar un sistema casero, por ejemplo, vea esto .
tcrosley
Sé que estas especificaciones pondrían celosas a las computadoras de antaño, pero creo que algún tipo de retro ++ sería ideal (los otros estudiantes considerarían cualquier cosa por debajo de 1GHz como "retro" de todos modos ...)
Anthony Teisseire
44
En una clase de microcontroladores que tomé, usamos el Motorola 6800 ... es lo suficientemente complejo con todos los diferentes modos de direccionamiento que hace que los Atmels y PIC de 8 bits parezcan un juguete ... Pero no es tan complejo que puedas construir un modelo mental de la cosa sin perder la cabeza. Solo depende de qué tan 'bajo el capó' quieras llegar.
Daniel
Iba a construir algo como esto. Eche un vistazo al WDC 65C816: es el derivado CMOS de 16 bits del venerable 6502, y viene en un paquete DIP40.
Peter
77
Estoy totalmente en desacuerdo con la razón para cerrar esta pregunta. El OP está buscando una arquitectura de computadora apropiada para los estudiantes de la escuela, dado un conjunto de criterios. Primero respondí con una recomendación sobre una arquitectura apropiada, probablemente una que no conocía, y sí, luego recomendé un chip específico porque estaba disponible en un paquete DIP para estudiantes. Pero creo que mi respuesta bastante completa que enumere las razones de mis recomendaciones sería útil en el futuro para cualquier otra persona que intente tomar la misma decisión. Recomiende que se vuelva a abrir.
tcrosley

Respuestas:

6

Aunque las versiones disponibles actualmente no tienen un verdadero bus de direcciones externo (está por llegar), puede considerar el Microchip PIC32 . Su arquitectura se basa en MIPS , que data de 1988, y es uno de los dos principales conjuntos de instrucciones RISC (el otro es ARM). Entonces, en ese sentido, puede considerarse retro. (Un pequeño truco: la Sony Playstation usó un procesador MIPS).

Una de las buenas características del PIC32 (e inusual para un microcontrolador de 32 bits) es que puede obtener varias variedades en un paquete DIP, sin embargo, la memoria máxima disponible será limitada en comparación con las versiones de montaje en superficie. Uno de los PIC con la memoria más grande en un paquete DIP de 28 pines es el PIC32MX250F128 con 128 KB de memoria Flash (programa) y 32 KB de RAM. Está disponible en Digi-Key en los EE . UU . Y Farnell en el Reino Unido .

Aunque la RAM puede parecer limitada, tenga en cuenta que los PIC son arquitectura de Harvard , lo que significa que el programa y los espacios de direcciones de datos están separados, y los programas se ejecutan sin flash, por lo que no necesita mucha RAM. (Para los puristas, los PIC32 son en realidad arquitectura Harvard modificada, porque es posible ejecutar programas sin RAM). La otra alternativa es Von Neumannarquitectura (utilizada, por ejemplo, en las PC '), donde hay un espacio de direcciones para todo y los programas generalmente se quedan sin RAM, una excepción es que generalmente necesitan tener al menos algo de Flash o ROM (llamado BIOS en una PC) en El espacio de dirección del procesador para ejecutar una rutina de arranque para cargar el sistema operativo de un dispositivo de almacenamiento masivo o red en la RAM. El Z80 (y la mayoría de los microprocesadores de su tiempo) también usaban una arquitectura Von Neumann. Así que uno tenía que ajustar tanto el programa como los datos en 64 KB. Algunos micros con una arquitectura de Von Neumann también mapearon sus periféricos en el mismo espacio de direcciones de 64K; otros usaron direcciones de puerto separadas.

En el bus externo, los PIC32 actuales (pero solo en paquetes de montaje en superficie, debido a la cantidad de pines) tienen un "Puerto maestro paralelo" (PMP) de 8 o 16 bits de ancho que, junto con DMA, puede transferir datos de un lado a otro. automáticamente entre la RAM del PIC y la RAM externa o un periférico. Sin embargo, esto no permite acceder a la memoria externa directamente (en el espacio de direcciones del procesador) o ejecutar código allí. La nueva familia PIC32MZ , incluida en la lista pero aún no disponible en Digi-Key, tendrá un verdadero bus de direcciones externo, hasta 2 MB de Flash, 1/2 MB de RAM y funcionará a 200 MHz.

El PIC32MX250F128 funciona a 50 MHz, hay otros que funcionan a 80 MHz. Tiene dos puertos seriales UART; Necesitará un convertidor de nivel para traducirlo a señales RS232.

Debido a que está empaquetado como un DIP y puede funcionar sin un oscilador externo, para comenzar, todo lo que necesita es una fuente de alimentación de 3.3.v, unas tapas de desacoplamiento de 0.1 µF y una placa de prueba. Puede obtener un compilador de C e IDE gratuitos de Microchip.

Una vez que tenga el procesador en funcionamiento, puede agregar periféricos como una pantalla LCD, botones (incluso un teclado), etc.

Puede obtener otros PIC32MX con hasta 512 KB de Flash y 128 KB de RAM, pero solo en paquetes de montaje en superficie como TQFP y VQFN que requerirían que diseñe una PCB (también tendría este mismo problema con cualquier procesador ARM).

tcrosley
fuente
Muchas gracias, esto es muy informativo y tal PIC realmente satisfaría nuestras necesidades. Adaptaremos nuestro diseño en caso de que necesitemos cambiar al paquete VQFN o la familia PIC32MZ.
Anthony Teisseire
No diría que es un requisito de las CPU que usan una arquitectura von Neumann para ejecutar sus programas desde la RAM. Ciertamente es posible tener flash y RAM en el mismo mapa de memoria, lo que le permite ejecutar código desde cualquiera de ellos. Las CPU von Neumann simplemente tienen un espacio de bus y dirección para instrucciones y datos.
Jason R
@ Jason No quise decir que los programas en una arquitectura de Von Neumann tenían que quedarse sin RAM, de hecho, necesitan tener al menos un poco de Flash o ROM (llamado BIOS en una PC) para ejecutar una rutina de arranque para cargar el sistema operativo fuera de un dispositivo de almacenamiento masivo o red en RAM. (Por supuesto, las computadoras realmente tempranas, incluidas las primeras PC como Altair 8800 , ni siquiera tenían una ROM de arranque y tenía que activar un cargador de arranque manualmente con los interruptores del panel frontal). He actualizado mi respuesta.
tcrosley
3

Si bien estoy ampliamente de acuerdo con @tcrosley, me siento obligado a señalar que si realmente quieres mostrarles a otros estudiantes cómo funcionan las cosas "detrás del escenario", entonces deberías obtener un tablero FPGA (solo compra uno, no lo intentes y hazlo ) y aprender a construir CPU desde cero utilizando la lógica. Echa un vistazo a esto para un buen punto de partida.

Markt
fuente
1

¿Has considerado la serie MC68000?

Es una CPU de 16/32 bits, excepto la 68008, la línea de datos es de 16 bits, algunos de ellos pueden ejecutarse a 50 MHz fácilmente y el espacio de direcciones es de 16 MB.

  • Un bus de direcciones externo si necesitamos más RAM , sí y solo
  • > 50 MHz - puede ser
  • 16 o 32 bits , ambos
  • No paquete BGA / QFN : sí
  • Sin placa FPGA : no
  • Una interfaz en serie (?) No , tienes que hacer la tuya pero muy fácil
  • Tampoco es demasiado caro, ya que tenemos un presupuesto limitado : sí

Aquí está la documentación completa: https://www.nxp.com/docs/en/reference-manual/MC68000UM.pdf

Jeremy Talus
fuente