Emu68 v1.1: Más novedades

El desarrollador Michal Schulz continúa detallando las novedades de Emu68 v1.1, centradas esta vez en la gestión de la caché y en un nuevo mecanismo llamado Dumpster, diseñado para mejorar de forma notable el rendimiento en escenarios donde las frecuentes limpiezas de caché penalizaban la velocidad.

En versiones anteriores, cada vez que AmigaOS ejecutaba un LoadSeg —acción habitual en cada arranque del sistema o al cargar nuevos programas—, la caché de instrucciones se vaciaba y Emu68 se veía obligado a recompilar los bloques JIT desde cero. Aunque en el uso normal este impacto era asumible, el problema se agravaba con la emulación de MacOS mediante ShapeShifter o Fusion, ya que este sistema operativo fuerza decenas de limpiezas por segundo. El resultado: lentitud generalizada y una experiencia inferior incluso a la de aceleradoras clásicas 68040 o 68060.

Schulz observó que, en la mayoría de los casos, la memoria no cambia tras un vaciado de caché. De ahí surgió la idea de no descartar los bloques compilados, sino almacenarlos temporalmente en un “contenedor” (Dumpster) junto con un checksum CRC32 de la zona de memoria asociada. Si el contenido permanece inalterado, el bloque puede reutilizarse sin necesidad de recompilación, recuperándose en apenas microsegundos.

La primera aproximación utilizaba una segunda tabla hash, pero implicaba recortes en el tamaño de la caché y mayores colisiones, lo que reducía la velocidad en otros contextos. Finalmente, la solución definitiva llegó con la introducción del concepto de Epoch: un contador global que marca la validez temporal de los bloques JIT.

  • Cuando se vacía la caché, basta con incrementar el valor de Epoch.
  • Cada bloque JIT conserva un número de Epoch asociado.
  • Si su checksum es válido y el Epoch coincide con el actual, puede reutilizarse de inmediato.
  • El uso combinado del hash table y la caché LRU garantiza búsquedas más rápidas y eficientes.

Este sistema evita movimientos de datos innecesarios, mantiene la tabla hash en su tamaño completo y reduce drásticamente la pérdida de rendimiento en situaciones críticas como la emulación de MacOS.

Con estas mejoras, AmigaOS y MacOS arrancan de forma significativamente más rápida y la utilización de la caché JIT es mucho más eficiente. Además, el nuevo enfoque libera un núcleo extra de la Raspberry Pi para futuros proyectos, como la posible emulación de PowerPC dentro del mismo entorno.

Aunque el Dumpster todavía está en fase de refinamiento, las pruebas iniciales no muestran efectos adversos y confirman un avance importante en la experiencia de usuario con Emu68. De hecho, MacOS 7.5 ya puede iniciarse en apenas unos segundos, un hito impensable en versiones previas.

https://www.youtube.com/watch?v=JNZGNLweUyQ

#amigaos #arranqueRápido #caché #CRC32 #Dumpster #Emu68V11 #emulación #Epoch #Fusion #hashTable #jit #LoadSeg #LRUCache #macos #MichalSchulz #powerpc #raspberryPi #recompilación #rendimiento #ShapeShifter

Preview de Michal Schulz: PiStorm y Emu68

Michal Schulz y Claude Schwarz continúan innovando en la emulación del hardware y software del Amiga con sus proyectos PiStorm y Emu68. Su trabajo en la emulación del procesador Motorola 68K ha permitido que los amigueros podamos disfrutar de sistemas vitaminados con una gran dosis de potencia extra necesaria en estos tiempos gracias a las soluciones basadas en Raspberry Pi. Ahora, están avanzando con nuevas mejoras y proyectos que buscan ampliar aún más las capacidades de estos desarrollos.

Uno de los avances más recientes es Framethrower, una extensión para PiStorm diseñada para mejorar la salida de video. Hasta ahora, la emulación RTG se proporcionaba a través del puerto HDMI de la PiStorm, mientras que la señal RGB se obtenía directamente del chip Denise del Amiga, lo que requería una conexión separada. Con Framethrower, el objetivo es permitir la salida RGB directamente desde la PiStorm a través del puerto de cámara, simplificando la configuración. Sin embargo, el desarrollo aún enfrenta desafíos técnicos debido a interferencias en la señal MIPI generadas por el diseño de la placa Tang Nano 9K, lo que provoca distorsiones o la pérdida de sincronización en la imagen. Claude Schwarz sigue trabajando para resolver este problema antes de su lanzamiento final.

En cuanto a Emu68, se espera que la versión 1.1 se publique este año, trayendo consigo varias optimizaciones además de correcciones de errores. Entre las mejoras más destacadas está la reutilización de bloques de caché que normalmente serían eliminados por el CPU cache flush, lo que reduce el tiempo de compilación y acelera procesos como el arranque del Amiga y la ejecución de macOS bajo Shapeshifter. Las primeras pruebas indican que el rendimiento ha mejorado notablemente. Además, continúan los esfuerzos en el desarrollo deL controlador WiFi para Emu68, y si el tiempo lo permite, se abordará la implementación de un driver Ethernet para Raspberry Pi 4/CM4, con el objetivo de expandir las opciones de conectividad. En el horizonte también se encuentra la posibilidad de añadir soporte para USB.

Otro proyecto en marcha es PiStorm16, una aceleradora diseñada para el Amiga 600 que ya ha sido producida en una primera tanda de 25 unidades y será distribuida entre los primeros usuarios. Tras esta fase inicial, el diseño se liberará como código abierto para que cualquier empresa o entusiasta pueda fabricarlo y comercializarlo libremente. PiStorm16 comparte varias características con PiStorm32, incluyendo el uso de la misma FPGA y la carga del firmware directamente desde Emu68 en el arranque, lo que habilita funciones como el modo «sigiloso» que permite arrancar el Amiga en su estado original sin ninguna extensión simplemente manteniendo pulsadas las teclas CTRL y Amiga. En el futuro, se planean más variantes de PiStorm16, adaptadas para diferentes modelos de Amiga como el A500 y el A2000.

A largo plazo, Schulz y Schwarz están explorando nuevas posibilidades para mejorar la compatibilidad del hardware no soportado por PiStorm con el Amiga. Una de las iniciativas más ambiciosas es la implementación del chipset del Amiga en un módulo FPGA que se comunicaría con el procesador a través de una interfaz PCIe. Aunque PCIe no es la opción más adecuada para una solución clásica de PiStorm, podría ser viable en un escenario donde PiStorm actúe como un chipset Amiga en lugar de una simple interfaz. En este contexto, Claude Schwarz ha desarrollado una placa base para Raspberry Pi 3/4 llamada PocketStorm, que integra el chipset MiniMig y la interfaz PiStorm en una FPGA Tang Nano 20K, creando así un sistema Amiga completamente funcional pero basado en emulación. De forma paralela, Schulz trabaja en la integración de Emu68 con EFI (Unified Extensible Firmware Interface), lo que permitiría ejecutar Emu68 en sistemas EFI compatibles. Si estos experimentos tienen éxito, el siguiente paso sería llevar la implementación FPGA del chipset Amiga a una interfaz PCIe y hacerlo funcionar con la versión EFI de Emu68.

Si bien estos desarrollos sugieren una evolución hacia nuevas plataformas, Schulz y Schwarz aseguran que su compromiso con el Amiga clásico sigue intacto. La investigación en FPGA y nuevas interfaces no significa que abandonen los proyectos actuales, sino que buscan ampliar las opciones y explorar nuevas oportunidades para mejorar la experiencia de los usuarios de Amiga, manteniendo viva la esencia de estos sistemas históricos mientras se adaptan a las posibilidades del hardware moderno.

FUENTE DE LA NOTICIA.

#Sigiloso_ #aceleradora #amiga #Amiga2000 #Amiga500 #amiga600 #códigoAbierto #chipDenise #chipset #claudeSchwarz #Compatibilidad #comunidadAmiga #distorsiones #EFI #emu68 #emulación #firmware #fpga #FPGATangNano20K #Framethrower #Hardware #HDMI #interfaces #investigación #MichalSchulz #minimig #MIPI #Motorola68K #PCIe #pistorm #PiStorm16 #PiStorm32 #PocketStorm #raspberryPi #RaspberryPi34 #rtg #salidaDeVideo #señalRGB #sistemaAmiga #software #UnifiedExtensibleFirmwareInterface