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 .