La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

DISEÑO DE UN COMPUTADOR AUTORECONFIGURABLE

Presentaciones similares


Presentación del tema: "DISEÑO DE UN COMPUTADOR AUTORECONFIGURABLE"— Transcripción de la presentación:

1 DISEÑO DE UN COMPUTADOR AUTORECONFIGURABLE
Ivan Magán Barroso Javier Basilio Pérez Ramas Miguel Péon Quirós TODOS 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 JABA

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 JABA

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 JABA

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 JABA

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. JABA

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 JABA

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 JABA

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 JABA

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

11 Placa de prototipado XVS-800
mike

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

13 CLB DE DOS SLICES MIKE

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

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 MIKE

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

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 MIKE

18 Herramientas software empleadas
Microsoft Visual C 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 MIKE

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

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

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

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 ivan

23 Ciclo de lectura ivan

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 jaba

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 jaba

26 Mapa de memoria Mapped I/O Kernel data Kernel instruction User data
Stack Dinamic data Kernel data Static Data Interrupt Handler Kernel instruction Reservado Stack jaba 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 jaba

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) jaba

29 Selector de entrada de microprograma
Unidad de control Opcode Evaluador cond. Interrupción Excepción Micro PC Selector de entrada de microprograma ROM del microprograma jaba 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 jaba

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 jaba

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). ivan

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. jaba

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 jaba

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 jaba

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 ... MIKE

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 mike

38 Bus del sistema mike

39 Bus del sistema mike

40 Bus del sistema mike

41 Bus del sistema mike

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 JABA

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 JABA 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 IVAN

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 IVAN

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 IVÁN

47 Estadísticas MÓDULO SLICES PUERTAS BIESTABLES U.C. 165 1954 5 CACHE
649 48244 394 CPU 886 47270 432 CORE 1657 97922 960 PS/2 37 627 36 GRAMOLA 555 138287 138 CARG.MEM 66 1205 91 CONT.MEM 178 2890 86 SISTEMA 2516 242000 1340 ivan

48 Estadísticas ivan

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 ivan

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 jaba

51 Estudio comparativo jaba

52 jaba

53 Conclusiones del estudio
La memoria de la placa es muy rápida (15 nanosegundos) en comparación a la velocidad de funcionamiento del computador (6’25 Mhz) La mejora que ofrece la cache es aproximadamente de un 20% Excepto en casos puntuales donde se producen desalojos continuos Más líneas o una cache asociativa mejorarían los resultados apreciablemente jaba

54 Estudio comparativo Con cache Sin cache Acierto en lectura 1 4
Fallo en lectura 16 Fallo en lectura con write-back 25 jaba

55 Estudio comparativo Con cache Sin cache Acierto en escritura 2 4
Fallo en escritura 17 Fallo en escritura (WB) 27 jaba

56 Reconfiguración Modificar parcialmente el bitstream
Fijar en el fichero UCF de Xilinx los puertos de los módulos a reconfigurar La estructura diseñada para la cache permite modificarla de forma fácil mientras el microcomputador sigue funcionando jaba

57 Conclusiones La fpga VIRTEX permite diseñar grandes circuitos y ofrece capacidades de autoreconfiguración Se ha diseñado un computador completo en VHDL sintetizable con sistema de entrada salida, compatible a nivel binario y de periféricos con un MIPS R2000 comercial Se ha diseñado un sistema de memoria cache que posibilita una futura reconfiguración sin modificar la arquitectura ivan

58 FIN

59 Han realizado este proyecto (de izquierda a derecha):
Iván Magán Barroso José Manuel Mendias Cuadros (Director) Javier Basilio Pérez Ramas Miguel Peón Quirós


Descargar ppt "DISEÑO DE UN COMPUTADOR AUTORECONFIGURABLE"

Presentaciones similares


Anuncios Google