La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— 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 Departamento de Arquitectura de Computadores y Automática

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

3 Introducción Objetivo inicial del proyecto 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 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 Protocolos de bus y periféricos según la especificación de MIPS Memoria cache write-back 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 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 La placa XVS del departamento de arquitectura de computadores y automática no está disponible hasta principios de mayo Computador simulable disponible en enero Computador simulable disponible en enero –Hasta disponibilidad de placas no es posible realizar un estudio práctico ni continuar con el proyecto Problemas adicionales 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 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 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 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 No es un ensamblador puro –Ofrece código hexadecimal mezclado con otro tipo de datos Es necesario 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 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 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 un computador completo Diseño de una memoria cache Diseño de una memoria cache Preparar el computador para una futura reconfiguración Preparar el computador para una futura reconfiguración Crear una herramienta para reparar la salida de SPIM y convertirla a binario 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 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 Estudio de rendimiento : computador con cache y computador sin cache

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

11 Placa de prototipado XVS-800

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

13 CLB DE DOS SLICES

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

15 CPLD XC9500 Inicialmente se emplea para programar la FPGA VIRTEX 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 Ha sido modificada para permitir la carga de la memoria principal a través del puerto paralelo

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

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

18 Herramientas software empleadas Microsoft Visual C Microsoft Visual C –Desarrollo de Loadmem y Comspin LCC 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 Core R2000 Bus del sistema Bus del sistema Controlador alfanumérico Controlador alfanumérico Controlador de teclado Controlador de teclado Controlador de memoria Controlador de memoria Cargador de memoria Cargador de memoria

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

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

22 B.L.A.S.A. Bus interno del core 2000 Bus interno del core 2000 Estilo Common Data Bus (CDB) Estilo Common Data Bus (CDB) Las peticiones se identifican por el que la realiza 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 32 bits de datos, 32 bits de direcciones, líneas de control Permite transferencias de bloque Permite transferencias de bloque

23 Ciclo de lectura

24 MIPS R2000 Procesador RISC clásico Procesador RISC clásico 32 registros de 32 bits 32 registros de 32 bits Modelo lineal de memoria Modelo lineal de memoria Coprocesadores del R2000 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 (First Half) Instruction Fetch (Second Hald) Instruction Fetch (Second Hald) Register Fetch Register Fetch Execution Execution Data Fetch (First half) Data Fetch (First half) –Data fetch exception (DFE) »específico de nuestra implementación DS (Second Half) DS (Second Half) Write Back Write Back

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

27 Implementación del R2000 Implementación del MIPS R2000 totalmente compatible a nivel binario 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 Se respetan todos los protocolos de bus, ciclos, estructura de registros de control, etc... originales Gestión de excepciones, coprocesador CP0 Gestión de excepciones, coprocesador CP0 Diferencias con el R2000 completo 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 Unidad de control microprogramada –Dos niveles de microprogramación Alu monociclo para operaciones básicas 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) Banco de registros implementado con SelectRam+ (TM)

29 Unidad de control Micro PC Selector de entrada de microprograma ROM del microprograma Opcode Evaluador cond. Interrupción Excepción 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 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 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 Contiene sólo 35 entradas diferentes gracias al módulo anterior Proporciona 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 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 Comunica al CORE con el bus del sistema Actúa ante fallos de cache o direcciones de mapped I/O 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. 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) 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). 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 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) 4 KB (además de memoria para tags y bits de estado) Emplazamiento directo Emplazamiento directo 32 líneas de 4 palabras 32 líneas de 4 palabras Política de Write-Back 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 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 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 Implementación del protocolo estándar de MIPS Señales 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 Se han eliminado, respecto al protocolo completo del MIPS R2000, peticiones por iniciativa de un periférico externo

38 Bus del sistema

39

40

41

42 GRAMOLA Dispositivo de visualización alfanumérico Dispositivo de visualización alfanumérico Señal VGA de 256*480 pixels Señal VGA de 256*480 pixels Caracteres de 8x8 pixels Caracteres de 8x8 pixels –Matriz de 32*60 caracteres –Juego de 128 caracteres –Vídeo inverso Juego de caracteres redefinible 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 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 Interfaz con bus de sistema VGA Juego de caracteres Mapa de caracteres Lógica de control Bus de sistema

44 Controlador de teclado Interfaz síncrono con teclado PS/2 Interfaz síncrono con teclado PS/2 Lógica de control de bus de sistema Lógica de control de bus de sistema Entrada/salida mapeada en memoria 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 Carga información procedente del puerto paralelo en la memoria del sistema Utiliza un protocolo con handsake para transferencias de nibbles Utiliza un protocolo con handsake para transferencias de nibbles Opera con el reset del sistema activo para no interferir con él Opera con el reset del sistema activo para no interferir con él

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

47 Estadísticas MÓDULOSLICESPUERTASBIESTABLES U.C CACHE CPU CORE PS/ GRAMOLA CARG.MEM CONT.MEM SISTEMA

48 Estadísticas

49 Estadísticas Además 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 Líneas Tag Tag Bit de modificado Bit de modificado Bit de validez 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 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 Se ejecutan los mismos programas en ambas situaciones Los programas se crean con el compilador cruzado de ANSI C++ para MIPS R2000 LCC Los programas se crean con el compilador cruzado de ANSI C++ para MIPS R2000 LCC

51 Estudio comparativo

52

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 (625 Mhz) La memoria de la placa es muy rápida (15 nanosegundos) en comparación a la velocidad de funcionamiento del computador (625 Mhz) La mejora que ofrece la cache es aproximadamente de un 20% 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

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

55 Estudio comparativo Con cache Sin cache Acierto en escritura 24 Fallo en escritura 17 Fallo en escritura (WB) 27

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

57 Conclusiones La fpga VIRTEX permite diseñar grandes circuitos y ofrece capacidades de autoreconfiguración 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 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 Se ha diseñado un sistema de memoria cache que posibilita una futura reconfiguración sin modificar la arquitectura

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 Ivan Magán Barroso Javier Basilio Pérez Ramas Miguel Péon Quirós Departamento de Arquitectura de Computadores."

Presentaciones similares


Anuncios Google