Descargar la presentación
La descarga está en progreso. Por favor, espere
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
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.