DISEÑO DE UN COMPUTADOR AUTORECONFIGURABLE

Slides:



Advertisements
Presentaciones similares
Arquitectura RISC & CISC y DSP
Advertisements

Capítulo I Gestión de E/S 1.- Gestión de E/S 2.- Hardware de E/S 3.- Software de E/S.
Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
El modelo de Von Neumann
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
Microprocesadores Componentes básicos..
Arquitectura de Sistema de E/S
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
El Computador Introducción a la Tecnología de la Información.
El ordenador.
Fernando Escribano Pro 1º de Bachillerato
ARQUITECTURA DE COMPUTADORAS
Sistemas Informáticos 2001
Fermín Sánchez Carracedo Universitat Politècnica de Catalunya
RESUMEN: Softmicro de 8 bits Xilinx
Tema: Microprocesadores
Introducción a los Sistemas Operativos Memoria Virtual
Optimización de aplicaciones
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Pipelines: Riesgos.
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
El nivel de la Microprogramación
Arquitectura de Conjunto de Instrucciones (ISA)
Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al costo de una memoria de baja velocidad Los puntos básicos relacionados con.
Composición Interna de un Procesador
“La docencia de las clases prácticas en las asignaturas de Arquitectura de Ordenadores y Sistemas Operativos” en la Universidad Politécnica de Valencia.
3GIO – 3º Generación de entrada/salida Autores: Beltramo Ezequiel Santana Cabrera Bentejuí.
Microcomputadores Prof : Tatiana Marín R.. Sistema basado en microprocesador de 8 bits.
Arquitectura del Computador
Semana 4 - periferico.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
TRADUCTOR DE UN PROGRAMA
La memoria de acceso aleatorio (en inglés:random- access memory, cuyo acrónimo es RAM) es la memoria desde donde el procesador recibe las instrucciones.
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
MICRO Y MACRO ARQUITECTURA
Es el término resultante de la contracción de los vocablos INFORmación y autoMÁTICA. Se define como el conjunto de conocimientos científicos y técnicos.
Operación de Micros e Interfaces
EL MICROPROCESADOR.
Unidad 7 Entrada/Salida
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Overview Sistemas Computacionales
Conceptos Arquitectónicos del computador
Fundamentos de Programación Resolución de Problemas con Computadoras y Herramientas de Programación.
MICROCONTROLADORES NOCIONES BÁSICAS COMPUTO II. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
Diseño de la Unidad de Control Multiciclo: Microprogramación
Arquitectura y Ensamblaje de Computadores
Chips Controladores Pequeño circuito electrónico utilizado para realizar una función electrónica especifica. El chips es el que hace posible que la placa.
LA COMPUTADORA DIGITAL Parte 1 Prof. Domingo Hernández Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad.
“Organización y Arquitectura de Computadores” William Stallings
TARJETAS DE RED.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
HARDWAREHARDWARE FELIX BELLA EDU ROS. INDICE 1-. INTRODUCCION 2-. FUNCIONES BASICAS A) LA UNIDAD CENTRAL (CPU) B) LA MEMORIA PRINCIPAL C) DISPOSITIVOS.
1.1 Introducción A Los Sistemas Informáticos
NOCIONES BÁSICAS COMPUTO II
Nico Puch. Los ordenadores analógicos comenzaron a construirse a principios del siglo XX. Los primeros modelos realizaban los cálculos mediante ejes y.
I.- COMPONENTES BÁSICOS DE UNA MICROCOMPUTADORA
Principio unidad 1.
PICOBLAZE RESUMEN.
RESUMEN: Softmicro de 8 bits Xilinx
EL ORDENADOR PERSONAL Aparato electrónico que sirve para procesar información (transformarla para que sea útil. Para hacerlo codifica la información (descompuesta.
INTEGRANTES: JOSE ESTEVEZ _HUGO ANDRADE CURSO: 5TO “B”
REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE INGENIERÍA ESCUELA DE COMPUTACIÓN ING. PROF. LEONEL SEQUERA MEMORIAS.
José Alvarado – Cristian Anzola
Unidad de transferencia de memoria
Republica Bolivariana de Venezuela Universidad Alonso de Ojeda Facultad de Ingeniería Escuela de Computación Ing. Prof. Leonel Sequera Entrada y Salidas.
El microprocesador y su arquitectura
El Computador. Computador. Máquina compuesta de elementos físicos (en su mayoría de origen electrónico) capaz de aceptar unos datos de entrada, realizar.
INTRODUCCIÓN A LA INFORMÁTICA Realizado por: SARI FOLGADO.
CAPITULO V Arquitectura de Von Neumann
Unidad de Control Ubicación: Es uno de los tres bloques funcionales principales en los que se divide una unidad central de procesamiento (CPU). Realizar.
Transcripción de la presentación:

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

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

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

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

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

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

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

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

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

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

Placa de prototipado XVS-800 mike

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

CLB DE DOS SLICES MIKE

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

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

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

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

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 MIKE

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

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

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

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

Ciclo de lectura ivan

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bus del sistema mike

Bus del sistema mike

Bus del sistema mike

Bus del sistema mike

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

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

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

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

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

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

Estadísticas ivan

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

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

Estudio comparativo jaba

jaba

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

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

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

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

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

FIN

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