1 / 59

DISEÑO DE UN COMPUTADOR AUTORECONFIGURABLE

DISEÑO DE UN COMPUTADOR AUTORECONFIGURABLE. Ivan Magán Barroso Javier Basilio Pérez Ramas Miguel Péon Quirós. Departamento de Arquitectura de Computadores y Automática. Puntos. Introducción Dispositivo experimental Arquitectura del sistema Herramientas software desarrolladas Estadísticas

eben
Download Presentation

DISEÑO DE UN COMPUTADOR AUTORECONFIGURABLE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DISEÑO DE UN COMPUTADOR AUTORECONFIGURABLE Ivan Magán Barroso Javier Basilio Pérez Ramas Miguel Péon Quirós Departamento de Arquitectura de Computadores y Automática

  2. Puntos • Introducción • Dispositivo experimental • Arquitectura del sistema • Herramientas software desarrolladas • Estadísticas • Estudio comparativo sobre la cache • Reconfiguración • Conclusiones

  3. Introducción • Objetivo inicial del proyecto • Diseño de un computador completo compatible con el R2000 • Core R2000 compatible a nivel binario • Protocolo de periféricos y bus de sistema compatible MIPS • Gráficos alfanuméricos y controlador de teclado • Diseño de una memoria cache para el microprocesador • Estudio de la capacidad de reconfiguración dinámica de la FPGA Virtex aplicándola a la cache del microprocesador

  4. Computador completo • CORE MIPS R2000 • Objetivo: ejecutar los mismos programas que el simulador SPIM • Protocolos de bus y periféricos según la especificación de MIPS • Memoria cache write-back

  5. Problemas • La placa XVS de la Facultad de Informática no está disponible hasta mediados de mayo • La placa XVS del departamento de arquitectura de computadores y automática no está disponible hasta principios de mayo • Computador simulable disponible en enero • Hasta disponibilidad de placas no es posible realizar un estudio práctico ni continuar con el proyecto • Problemas adicionales • Simulador y ensamblador SPIM defectuoso • XVS carece de una herramienta para cargar la RAM • Hay que diseñar módulos hardware y herramientas software para poder cargar la RAM

  6. Problemas • Xilinx Foundation 2.1i no es válido en la práctica • El rutado de señales es inabordable • Sólo el core R2000 tarda en sintetizarse más de una hora • La herramienta no es capaz de rutar todas las señales, especialmente en presencia de grandes constantes • Los problemas se solucionan con Foundation 3.1i • Esta versión no está disponible hasta muy avanzado el curso • Sin embargo, el circuito sigue siendo demasiado complejo, hay que conservar la jerarquía para que sea sintetizable en un tiempo razonable.

  7. Simulador SPIM Defectuoso • Semántica de las instrucciones de salto distinta a la especificada por MIPS • Opciones • Seguir la semántica no estándar de SPIM • Seguir la semántica estándar de MIPS • No es un ensamblador puro • Ofrece código hexadecimal mezclado con otro tipo de datos • Es necesario • Realizar una herramienta que corrija el código generado por SPIM y genere código binario para el R2000

  8. Carga de la memoria RAM • No existe herramienta para cargar la RAM estática de la XVS • En las placas basadas en la XC4010 se podía utilizar XSLOAD • Hay que crear un módulo hardware y una herramienta software para cargar la RAM a través del puerto paralelo • Una vez diseñada, la herramienta será muy útil en el futuro para todo tipo de proyectos

  9. Nuevos objetivos del proyecto • Diseño de un computador completo • Diseño de una memoria cache • Preparar el computador para una futura reconfiguración • Crear una herramienta para reparar la salida de SPIM y convertirla a binario • Crear un módulo hardware y una herramienta software para cargar la memoria de la placa XESS • Estudio de rendimiento : computador con cache y computador sin cache

  10. Dispositivo experimental • Dispositivo hardware • FPGA Virtex de Xilinx • Placa XESS XVS-800 • Herramientas software utilizadas

  11. Placa de prototipado XVS-800

  12. FPGA VIRTEX 800 • 900.000 puertas lógicas equivalentes • SelectRam+ (TM) • Celdas reconfigurables más versátiles (SLICES) • Capacidad de reconfiguración

  13. CLB DE DOS SLICES

  14. SelectRam+ (TM) • Bloques dedicados de memoria • Memoria síncrona de doble puerto • 144.688 bits en total

  15. CPLD XC9500 • Inicialmente se emplea para programar la FPGA VIRTEX • Ha sido modificada para permitir la carga de la memoria principal a través del puerto paralelo

  16. Prestaciones empleadas • FPGA Virtex • CPLD • Memoria estática • Interfaz VGA • Interfaz PS/2 • Interfaz de puerto paralelo

  17. Herramientas software empleadas • Xilinx Foundation 3.1i • La versión anterior no es utilizable en la práctica • XSTOOLS • Simulador SPIM de microprocesador R2000 • Se han descubierto varios defectos

  18. Herramientas software empleadas • Microsoft Visual C++ 6.00 • Desarrollo de Loadmem y Comspin • LCC • Compilador de ANSI C cruzado • Genera código para el MIPS R2000 • Útil para programar las pruebas de rendimiento

  19. Arquitectura del sistema • Core R2000 • Bus del sistema • Controlador alfanumérico • Controlador de teclado • Controlador de memoria • Cargador de memoria

  20. Arquitectura del sistema PS/2 Controlador memoria Gramola RAM CORE R2000 Cargador de memoria

  21. CORE R2000 Nadieficador Controlito B.L.A.S.A. CPU R2000 Memoria cache Controlador universal de memoria cache

  22. B.L.A.S.A. • Bus interno del core 2000 • Estilo “Common Data Bus” (CDB) • Las peticiones se identifican por el que la realiza • El interesado escribe su identificador • El módulo correspondiente responde • 32 bits de datos, 32 bits de direcciones, líneas de control • Permite transferencias de bloque

  23. Ciclo de lectura

  24. MIPS R2000 • Procesador RISC clásico • 32 registros de 32 bits • Modelo lineal de memoria • Coprocesadores del R2000 • CP0: Coprocesador de control • CP1: Coprocesador aritmético de coma flotante • CP2,CP3 opcionales

  25. Ciclo completo del R2000 • Instruction Fetch (First Half) • Instruction Fetch (Second Hald) • Register Fetch • Execution • Data Fetch (First half) • Data fetch exception (DFE) • específico de nuestra implementación • DS (Second Half) • Write Back

  26. Mapa de memoria Mapped I/O Stack Dinamic data Kernel data Static Data Interrupt Handler Kernel instruction Reservado Stack User data Dinamic data Static Data User instruction RESERVADO

  27. Implementación del R2000 • Implementación del MIPS R2000 totalmente compatible a nivel binario • Se respetan todos los protocolos de bus, ciclos, estructura de registros de control, etc... originales • Gestión de excepciones, coprocesador CP0 • Diferencias con el R2000 completo • No hay coprocesador de coma flotante • No hay gestión de memoria virtual • No se permite entrada/salida no alineada

  28. CPU R2000 • Unidad de control microprogramada • Dos niveles de microprogramación • Alu monociclo para operaciones básicas • Desplazamientos multiciclo • Los desplazamientos de 1 y 8 bits ya están multiplexados, se toma el más cercano y se realizan el resto de desplazamientos • Banco de registros implementado con SelectRam+ (TM)

  29. Unidad de control Opcode Evaluador cond. Interrupción Excepción Micro PC Selector de entrada de microprograma ROM del microprograma Señales a la ruta de datos

  30. Selector de entrada de microprograma • Las instrucciones que tienen un comportamiento equivalente en un ciclo de ejecución concreto comparten entrada en el microprograma • Esta tabla hace corresponder la entrada de microprograma correcta a cada opcode según el microcontador y el estado general de la CPU

  31. Microprograma • Contiene sólo 35 entradas diferentes gracias al módulo anterior • Proporciona • El valor de las señales de control de la CPU • El siguiente estado • Las señales de control de cálculo muy sencillo no están en el microprograma sino que se generan mediante lógica combinacional • Por ejemplo, la señal de comienzo de la ALU

  32. Controlito • Comunica al CORE con el bus del sistema • Actúa ante fallos de cache o direcciones de mapped I/O • Adapta diferencias entre los protocolos del bus del sistema y del bus interno. • Optimizado para evitar la sobrecarga en transferencias (1 ciclo al inicio únicamente) • Regula el flujo desde el CORE al bus del sistema en escrituras de bloque (ráfagas).

  33. Memoria cache • Lógica de control de bus BLASA y de control de la memoria cache perfectamente separadas • Es trivial modificar el sistema para añadir nuevas memoria cache de distintas características • El sistema queda preparado para una futura reconfiguración de la memoria cache.

  34. Memoria cache • 4 KB (además de memoria para tags y bits de estado) • Emplazamiento directo • 32 líneas de 4 palabras • Política de Write-Back • Escritura en reemplazo • Mejora de la eficiencia

  35. Memoria cache • Dispone de registros de estadísticas que posibilitan realizar mediciones con facilidad • Número de aciertos y número de fallos en lectura • Número de aciertos y número de fallos en escricuta • Número de write-backs • Registros mapeados en memoria de forma que son accesibles desde el CORE R2000

  36. Bus del sistema • Implementación del protocolo estándar de MIPS • Señales • SysAD, bus de datos y direcciones (32 bits) • SysCMD, comando de bus (9 bits) • Cinco señales para hand-shaking: • RdRdy: el periférico puede aceptar una petición de lectura dentro de dos ciclos • WrRdy: el periférico puede aceptar una petición de escritura dentro de dos ciclos ...

  37. Bus del sistema • Release : el bus libera el micro para aceptar una respuesta • ValidOut:el micro ha puesto datos correctos en el bus • ValidIn: el periférico ha puesto datos correctos en el bus • Se han eliminado, respecto al protocolo completo del MIPS R2000, peticiones por iniciativa de un periférico externo

  38. Bus del sistema

  39. Bus del sistema

  40. Bus del sistema

  41. Bus del sistema

  42. GRAMOLA • Dispositivo de visualización alfanumérico • Señal VGA de 256*480 pixels • Caracteres de 8x8 pixels • Matriz de 32*60 caracteres • Juego de 128 caracteres • Vídeo inverso • Juego de caracteres redefinible • Bancos de SelectRam+ para almacenar el mapa de pantalla y el juego de caracteres • Segundo banco de RAM compartido con RAMDAC de la placa XVS

  43. GRAMOLA • Lógica de bus del sistema • E/S mapeada en memoria • Dirección FFFFC: cambio de color de fondo y carácter, activación • Dirección FFFF8: escribir caracteres en la pantalla Juego de caracteres VGA Interfaz con bus de sistema Mapa de caracteres Lógica de control Bus de sistema

  44. Controlador de teclado • Interfaz síncrono con teclado PS/2 • Lógica de control de bus de sistema • Entrada/salida mapeada en memoria • FFFFF0 • La palabra baja contiene el SCAN CODE de la última tecla pulsada • El bit menos significativo de la palabra alta indica si hay alguna tecla pendiente por leer

  45. Cargador de memoria • “Carga” información procedente del puerto paralelo en la memoria del sistema • Utiliza un protocolo con handsake para transferencias de nibbles • Opera con el reset del sistema activo para no interferir con él

  46. Herramientas software desarrolladas • Loadmem • Utilidad para cargar la memoria RAM estática de la placa XVS gracias al módulo hardware creado a tal efecto • Conspim • Utilidad que trata la salida del simulador SPIM • Repara los opcodes de salto defectuosos • Lo traduce al formato de LOADMEM

  47. Estadísticas

  48. Estadísticas

  49. Estadísticas • Además • 10 bloques de Smart Ram • 2 para el banco de registros • 8 para el interfaz alfanumérico • 612 Lut ocupadas como RAM (memoria cache) • Líneas • Tag • Bit de modificado • Bit de validez

  50. Estudio comparativo • Se trata de realizar pruebas en un computador con una cache nula (siempre falla) y la cache de emplazamiento directo • Se ejecutan los mismos programas en ambas situaciones • Los programas se crean con el compilador cruzado de ANSI C++ para MIPS R2000 LCC

More Related