Usando SDRAM con un MC68000

5

Actualmente estoy trabajando en el desarrollo de una computadora basada en la CPU Motorola 68000 y actualmente estoy trabajando en la interfaz RAM. Como quiero un sistema operativo multitarea básico, quiero usar 1 MB de RAM. La SRAM de ese tamaño es tremendamente costosa (alrededor de $ 25), pero las SDRAM del mismo tamaño y velocidades que exceden lo que necesito son mucho más baratas.

La pregunta es esta: ¿qué debo hacer para que SDRAM funcione con un MC6800? Sé que necesita un reloj de actualización, ¿entonces ese reloj debería ser el reloj de mi sistema (20 MHz) o el reloj de mi bus (Reloj del sistema / 4 = 5 MHz)? ¿Qué más debo tener en cuenta si deseo utilizar SDRAM?

    
pregunta Tristan Seifert

3 respuestas

4

Suena como un proyecto muy educativo.

Normalmente, los fabricantes de DRAM especifican que cada fila debe tener los condensadores de su celda de almacenamiento actualizados cada 64 ms o menos.

Tengo entendido que puede usar cualquiera de las siguientes 4 formas para mantener actualizada la DRAM:

(a) Entiendo que todos los SDRAM tiene un temporizador interno en el chip que se actualiza automáticamente la SDRAM cuando la SDRAM se coloca en modo de actualización automática y el reloj de la SRDRAM se detiene. Entiendo que la mayoría de los sistemas simples no se molestan con el modo de auto actualización, y en su lugar usan uno de los otros métodos para actualizar DRAM:

(b) Algunos sistemas tienen un hardware de actualización especial que detiene periódicamente la CPU, realiza una actualización y luego reanuda la CPU.

(c) Algunos sistemas tienen una "interrupción de actualización" especial: una señal de temporizador dispara periódicamente una interrupción de hardware, y el software en el controlador de interrupciones realiza una actualización y regresa. (Algunos sistemas interrumpen una vez cada 64 ms, y el controlador de interrupciones lee N bytes, un byte de cada fila DRAM: actualiza toda la DRAM de un solo golpe y luego regresa. Otros sistemas interrumpen una vez cada 64 / N ms, incremente el contador de una fila y lea un byte de esa fila DRAM, luego regrese). El enfoque de "interrupción de actualización" requiere la menor cantidad de hardware. Por desgracia, una "interrupción de actualización" tiene el inconveniente de que errores menores en el software de interrupción de actualización, o errores en cualquier otro software que demore la interrupción de actualización demasiado tiempo, causan problemas extraños difíciles de reproducir en otros lugares cuando la memoria se corrompe.

(d) Muchos sistemas informáticos antiguos tenían un hardware especial de video DMA que detiene la CPU, lee datos de video de la DRAM y los envía al hardware de video. Muchos de ellos están configurados de tal manera que el proceso de lectura de todos los datos de video, como efecto secundario, también lee al menos 1 byte de cada fila de DRAM, actualizando indirectamente toda la DRAM.

p.s .: ¿Realmente está utilizando un 68000 bits (efectivamente) de 32 bits, como el Macintosh original y el Palm Pilot? Si es así, puede resultarle útil consultar el Proyecto Minimig , que utiliza un 68000 (y un montón de SRAM), y el "núcleos blandos" FPGA que ejecutan el conjunto de instrucciones 68000 .

¿O en realidad estás usando un Motorola 6800 de 8 bits? Si es así, te recomiendo que revises el N8VEM Home Brew Computer Project .

    
respondido por el davidcary
1

El libro 68000 Hardware Manual le mostrará cómo construir una interfaz DRAM básica para "oldschool "DRAM, que debería poder encontrar muy barato y lo suficientemente rápido como para tener 0 estados de espera.

Por otra parte, US $ 25 podría valer la conveniencia de diseño de solo usar SRAM, y me parece que, dado que no necesita SRAM muy rápido para mantenerse al día con un 68000, es probable que encuentre Más de 4MB por un poco más barato. (Incluso si necesita usar un pestillo o algo para conectar una CPU lenta con la SRAM moderna muy rápida).

Ah, y si puede encontrar uno, intente utilizar un 68010 en lugar de un 68000. Es eléctricamente compatible pero el modo supervisor tiene un par de correcciones de errores para la recuperación de errores de bus, por lo que puede implementar la virtualización.

    
respondido por el Chris Hanson
0

Una respuesta que falta en esta antigua pregunta es que tendrá que buscar mucho tiempo si desea encontrar una SDRAM que pueda ejecutarse a los 5 voltios en los que desea ejecutar su CPU 68000. Puede encontrar que agregar el convertidor de nivel bidireccional a su sistema agrega demasiado costo y complejidad al proyecto.

    
respondido por el pipe

Lea otras preguntas en las etiquetas