METODOLOGIAS DE DISEÑO PARA COMPUTACIÓN RECONFIGURABLE.

Documentos relacionados
FPGA FIELD PROGRAMMABLE GATE ARRAY

Electrónica Digital II. Arquitecturas de las Celdas Lógicas. Octubre de 2014

Lógica Estándar. Compuertas lógicas, flip flop, decodificadores, disponibles en chips SSI y MSI. No son una buena solución de diseños grandes.

Computación reconfigurable: tecnología y hardware

UNIDAD 1. INTRODUCCIÓN A LOS DISPOSITIVOS LÓGICOS PROGRAMABLES (PLDs)

FPGAs. Susana Borromeo Área de Tecnología Electrónica. Diseño de Sistemas Electrónicos. 2014/2015. Metodología de Diseño. Características generales

Dispositivos Lógicos Programables

Introducción a los dispositivos de lógica programable en campo (FPGA) Laboratorio de diseño digital

CAPÍTULO II: DISPOSITIVOS LÓGICOS PROGRAMABLES DISPOSITIVOS LÓGICOS PROGRAMABLES IEC FRANCISCO JAVIER TORRES VALLE

FIELD PROGRAMMABLE GATE ARRAY (FPGA)

Tema 1: Microelectrónica. Técnicas de implementación de CID

Introducción a los Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal

4.1. Circuitos Digitales Configurables

Diseño de Sistemas Digitales Utilizando FPGA

Introducción a los Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal

3. CPLD S Y FPGA S UNIVERSIDAD TECNOLÓGICA DE LA MIXTECA. Instituto de Electrónica y Mecatrónica S I S T E M A S D I G I T A L E S

Introducción a VHDL. Sistemas digitales UTM-2006 JJVS

Lógica Programable -Introducción - Introducción n a los Sistemas Lógicos y Digitales 2008

Tema 2: Memorias y Dispositivos Lógicos Programables

El tamaño, estructura, número de bloques y la cantidad y conectividad de las conexiones varian en las distintas arquitecturas.

1. INTRODUCCIÓN A LOS CIRCUITOS DIGITALES PROGRAMABLES

TECNOLOGIA. R = (Vcc Vd) / I (Vd: caida en el LED) INTENSIDAD LUMINICA: SE MIDE EN CANDELA (Cd)

3. CPLD S Y FPGA S UNIVERSIDAD TECNOLÓGICA DE LA MIXTECA. Instituto de Electrónica y Mecatrónica S I S T E M A S D I G I T A L E S

Arreglos de compuertas programables en campo, FPGA's. (compendio)

Técnicas de Programación Hardware: CAD para FPGAs y CPLDs

Dra. Adriana del Carmen Téllez Anguiano DISPOSITIVOS LÓGICOS PROGRAMABLES (PLD)

Microelectrónica. Vicente Baena Departamento de Ingeniería Electrónica. Tema 8 Disposi;vos Programables por el usuario (I)

Dispositivos lógicos programables (PLDs(

Departamento de Tecnología Electrónica.

TEMA 0: Introducción: Aspectos Tecnológicos y Metodológicos del diseño de sistemas

Arquitectura de FPGAs

50 s. Transistor. Segunda generación de Computadoras 1952, FET tiristor comercial. 1956, Tiristor 1947, BJT. Nobel Física (1956) Brattain

METODOLOGIA DE DISEÑO DE CIRCUITOS INTEGRADOS DIGITALES

Bloques funcionales combinacionales. Bloques para el encaminamiento y/o transferencia de datos

MEMORIAS Y LÓGICA PROGRAMABLE

Reconfiguración Dinámica: Fundamentos y Métodos

Resumen. Este trabajo se divide principalmente en 2 partes:

Implementación Hardware de Aplicaciones de la Pirámide

Discusión. Modelo de una compuerta. Arquitecturas de Computadores Prof. Mauricio Solar. Temario. ...Introducción

2.- Con qué palabras inglesas se define la parte física del ordenador y cómo se llama la parte de programas, la que no se ve.

Electrónica Digital. Tema 2. Dispositivos Lógicos Programables (PLD)

Estructura interna de una memoria RAM estática

METODOLOGÍA PARA EL APRENDIZAJE DE SISTEMAS ELECTRÓNICOS DIGITALES Y SU DISEÑO

Estructura interna de una memoria RAM estática

Objetivos. Instituto Tecnológico de Costa Rica Escuela de Ingeniería Electrónica I SEMESTRE Contenido del Curso EL FLUJO DE DISEÑO O DIGITAL

LÓGICA PROGRAMABLE. Introducción Simple PLDs Complex PLDs FPGAs. Dpto. Ingeniería Electrónica y Comunicaciones

Electrónica Digital. Introducción

Universidad Carlos III de Madrid Electrónica Digital Ejercicios

CONTROL DIGITAL PARA CONVERTIDOR MULTINIVEL ALIMENTADO CON ENERGÍA SOLAR. Anexo A: FPGA. Introducción

Procesador. Daniel Rúa Madrid

Programación Automática de FPGAs desde lenguajes de alto nivel para aplicaciones multimedias

ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA UNIDAD CULHUACAN CARRERA DE INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN

Hardware Dinámicamente Reconfigurable. Julio Septién del Castillo Hortensia Mecha López

Arquitectura de un Controlador Electrónico de Procesos

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA ELECTRÓNICA

INTRODUCCIÓN A LOS CIRCUITOS INTEGRADOS

Componentes Digitales Estructurados

circuitos digitales números binario.

Sistema de Gestión de Aplicaciones Implementadas en FPGAs

Curso: Programación de FPGAs con VHDL (teórico-práctico)

SDR: equipos de radio definidos por software Una introducción

Curso: Programación de FPGAs con VHDL (teórico-práctico)

Diseño de Circuitos Integrados

Introducción al Diseño Digital con FPGAs.

LOS procesos de fabricación de

LÓGICA PROGRAMABLE. Sergio Noriega

Consiste en un conjunto de circuitos impresos y conectores integrados en una única placa donde se alojan todos los componentes internos del ordenador

1. INTRODUCCIÓN Y OBJETIVOS

Dispositivos Digitales. EL-611 Complemento de Diseño Lógico y. Dispositivos Digitales

Dispositivos Lógicos Programables. Breve descripción

GIA DE LABORATORIO DISEÑO AVANZADO DE HARDWARE

CAPÍTULO II. SISTEMA DE CONTROL Y GENERADOR DE PWM. dramáticamente la necesidad de diseño de sistemas más sofisticados que permitan la

Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech

Tema 9. SISTEMAS COMBINACIONALES PROGRAMABLES SISTEMAS COMBINACIONALES PROGRAMABLES NO UNIVERSALES

Arquitectura de FPGAs

INSTRUMENTACIÓN ELECTRÓNICA

Lógica cableada: Lógica programada:

Pr. Dr. Xavier Bonnaire

Introducción a FPGAs. Contenido

TOTAL DE HORAS: Semanas de clase: 5 Teóricas: 3 Prácticas: 2. SERIACIÓN OBLIGATORIA ANTECEDENTE: Ninguna SERIACIÓN OBLIGATORIA SUBSECUENTE: Ninguna

Raúl Finker de la Iglesia Director: Koldo Basterretxea Oyarzabal Universidad del País Vasco/Euskal Herriko Unibertsitatea

BLOQUE 2. (PARTE 3: Tema 1) CONJUNTO CONFIGURABLE DE PUERTAS FPGA (Field Programmable Gate Array) Clasificación y descripción

CAPITULO III CONTROLADORES

Diseñando Hardware a la Medida con el Módulo de LabVIEW FPGA. ni.com/fpga

Curso: Programación de FPGAs con VHDL (teórico-práctico)

GUÍA PARA PROGRAMACIÓN DE FPGAS

Diseño de Hardware con VHDL

Diseño de un generador de funciones Capítulo II Antecedentes

1 INTRODUCCIÓN AL PROYECTO

COMPONENTES DEL PC LEONARDO OLIVARES VILLA MATEO CARDONA ARENAS

M. C. Felipe Santiago Espinosa

FPGAs - Métodos disponibles de depuración y análisis

3. Topologías 3.1 En canal.

BLOQUE 2 (PARTE 2) DISPOSITIVOS LÓGICOS PROGRAMABLES

Transcripción:

METODOLOGIAS DE DISEÑO PARA COMPUTACIÓN RECONFIGURABLE. Iñigo Aguirre; Jose Angel Ezquerra. Universidad del País Vasco. Euskal Herriko Unibertsitatea. jtpagpoi@sc.ehu.es. RESUMEN Este trabajo tiene por objeto el estudio de las características de las tarjetas comerciales para su utilización como coprocesadores hardware en un ordenador personal. Se pretende utilizar una tarjeta de este tipo para implantar y acelerar el entrenamiento de redes neuronales. El estudio se centrará en dos aspectos fundamentales relativos a la aplicación: - Las características ideales que deberían incorporar dichos coprocesadores. - La adecuación de la metodología propuesta por cada fabricante. Los coprocesadores hardware se diseñan en base a dispositivos de lógica programable de alta densidad de integración (Field Programmable Gate Arrays: FPGAs). El interés de utilizar las FPGAs como soporte para el diseño de redes neuronales reside en los siguientes aspectos: - La utilización de técnicas de paralelismo que facilitan el diseño de un procesador neuronal de gran velocidad de computación. - La estructura reprogramable de las FPGAs facilita el diseño de diferentes topologías sobre el mismo sustrato, a diferencia de un neurochip diseñado para un tipo específico de red. La fase de entrenamiento de una red neuronal determinada consiste en un proceso iterativo en el que la red es alimentada con un gran conjunto de datos para adaptar en cada caso los pesos de las neuronas correspondientes. Si se implementa toda la circuitería necesaria para realizar el entrenamiento de cada tipo de red sobre una FPGA supondría acelerar, por hardware, dicha fase de entrenamiento. Este trabajo es el inicio para una futura implementación consistente en una aplicación para la optimización de redes neuronales en el análisis de faltas en sistemas de distribución de energía eléctrica.

1. INTRODUCCIÓN. Hay dos métodos para la ejecución de algoritmos en la computación tradicional. El primero es usar un Circuito Integrado de Aplicación Específica o ASIC que opera en hardware. Se diseñan ASICs para realizar una aplicación específica. Estos son muy rápidos y eficaces siempre que realicen exactamente la aplicación para la que han sido diseñados. Sin embargo, después de la fabricación el circuito no puede alterarse. Si parte del circuito necesita una modificación será necesario un nuevo diseño y fabricación de otro chip. Éste es un proceso caro, sobre todo cuando uno considera las dificultades de reemplazar los ASICs de un gran número de sistemas desplegados. Los microprocesadores presentan una solución más flexible. Para realizar las operaciones pertinentes los procesadores ejecutan un juego de instrucciones. Si cambiamos las instrucciones del software, modificaremos la funcionalidad del sistema sin cambiar el hardware. Sin embargo, la desventaja de esta flexibilidad es que la velocidad de actuación está por debajo del de un ASIC. El procesador debe leer cada instrucción de la memoria, determinar su significado, y sólo entonces lo ejecuta. Adicionalmente, el juego de instrucciones que pueden usarse por un programa se determina en el momento de la fabricación del procesador. Cualquier otro funcionamiento que sea llevada a cabo deberá construirse fuera de las instrucciones ya existentes. Esto produce un tiempo alto de ejecución. La computación reconfigurable llena el hueco entre el hardware (ASIC) y el software (Microprocesador), mientras consigue una actuación, potencialmente, más rápida que los microprocesadores mantiene un nivel más alto de flexibilidad que los ASICs. Este tipo de computación se consigue con la utilización de FPGAs (Field Programmable Gate Arrays). Estos dispositivos contienen una serie de bloques lógicos cuya funcionalidad se determina a través de múltiples celdas de SRAM. Estos elementos, también conocidos como bloques lógicos, se conectan entre sí mediante recursos de interconexión programables. De este modo, se pueden trazar los circuitos con las funciones lógicas dentro de los bloques lógicos y posteriormente programar las conexiones entre dichos bloques lógicos formando el circuito necesario dentro de la FPGA. Se han utilizado FPGAs y programación reconfigurable para acelerar una variedad de aplicaciones. Para lograr estas ventajas, para una amplia gama de aplicaciones, se utiliza la programación reconfigurable, normalmente se forman los sistemas con una combinación de lógica reconfigurable y microprocesadores de propósito general. El procesador realiza las funciones que no pueden hacerse eficazmente utilizando la lógica reconfigurable. En una FPGA hay tres factores principales que marcan su funcionamiento: Cómo se programa el dispositivo personalizandolo a una aplicación específica. Cuales son los elementos lógicos que contiene. Cómo se conectan los elementos lógicos para formar el circuito completo. Estos tres factores los repasaremos en las próximas secciones.

2. LAS FPGAs 2.1. Tecnologías de programación Se han desarrollado FPGAs con una variedad de tecnologías de programación. Los más conocidos son los anti-fuse y las celdas SRAM. Los anti-fuse están normalmente desconectados y se posicionan entre dos cables interconectables. Si aplicamos entre los extremos un voltaje elevado se conectarán los dos cables de forma permanente. Estos no sirven para sistemas reconfigurables donde los dispositivos deben cambiar contínuamente toda o parte de su programación. La mayoría de las FPGAs actuales se basan en celdas SRAM programables. Estas celdas poseen la información para realizar las conexiones entre los cables interconectables. Estas celdas se pueden programar y reprogramar fácilmente por lo que podremos modificar el comportamiento del chip sin tener que sustituirlo. Fig. 1- Estructura Antifuse Fig. 2- Interruptores programables controlados por SRAM También se pueden utilizar para programar las líneas de control de los multiplexores. Estos multiplexores los podemos utilizar tanto, en las salidas para obtener una salida biestable, utilizando un Flip-Flop tipo D, o no como en los LUTs. Los LUTs son unas pequeñas memorias que poseen varias funciones lógicas. Estos elementos se pueden comportar como cualquier función lógica dependiendo de las líneas de control. Fig. 3- Flip-Flop tipo D con bypass opcional y un LUT con tres entradas.

2.2. Bloques Lógicos Desde la introducción de las FPGAs, a mediados de los 80, se han realizado varias investigaciones acerca de los elementos de programación a insertar en los bloques lógicos. Una de las opciones es la de crear FPGAs en base a elementos PAL, selectores de funciones o sistemas formados por mezcla de funciones simples como las puertas NAND o XOR. Las FPGAs normalmente están formadas por bloques lógicos con un LUT de cuatro entradas y un Flip-Flop tipo D. Fig. 4-Bloque lógico básico, acarreo encadenado y Flip-Flop tipo D. 2.3. El ruteado Del mismo modo que se ha investigado, ampliamente, sobre la arquitectura de los bloques lógicos se ha investigado en el interconexionado de estos bloques. La mayoría de las FPGAs organiza la asignación del ruteado con el objeto de conseguir un conexionado rápido y eficaz entre las líneas y columnas de los bloques lógicos. Los bloques de conexión están formados por multiplexores programables para realizar las conexiones entre los bloques lógicos. Fig. 5-Arquitectura del ruteado de una FPGA.

3. FABRICANTES DE FPGAs. Vamos a mencionar algunos de los productos más utilizados. 3.1. Xilinx Xilinx se basa en una estructura en la que los bloques lógicos (CLB) están distribuidos formando una matriz, estos bloques se interconectan mediante canales verticales y horizontales. La familia XC4000, basada en SRAM, se caracteriza por bloques lógicos basados en LUTs. Tiene dos LUTs de cuatro entradas, que se corresponden con las entradas del bloque lógico. Esta estructura permite al CLB llevar a cabo una amplia gama de funciones lógicas. Los XC4000 contienen una circuitería que les permite realizar eficazmente operaciones aritméticas. Otra característica importante reside en los tipos de cables de interconexión que pueden ser cortos (recorren el tramo entre dos CLBs vecinos), más largos (recorren el tramo entre dos CLBs no vecinos) y muy largos que recorren la longitud entera o el ancho del chip. La capacidad de esta familia va desde 2000 hasta 15000 compuertas equivalentes. 3.2. Altera Fig. 5-Líneas de conexión XC4000. La serie FLEX8000, de Altera, está basada en SRAM y su capacidad va desde 4000 hasta más de 15000 compuertas equivalentes. La arquitectura la podemos ver en la Figura 6 donde cada LAB es un conjunto de bloques lógicos básicos llamados elementos lógicos (LE). Estos LE tienen interconexión local dentro del mismo LAB, la conexión local también se conecta a la interconexión global (FastTrack). La interconexión global está formada por líneas largas que atraviesan el dispositivo. Todos los cables del FastTrack son idénticos por lo que los retrasos de interconexión son más predecibles que en los FPGAs en los que se utilizan segmentos más cortos.

Fig. 6-Arquitectura del FLEX8000. 4. CONCLUSIONES La computación reconfigurable se está convirtiendo en un tema de investigación para las arquitecturas de computadoras, ya que utilizando esta posibilidad se pueden acelerar las partes de la aplicación que más lo requieran. Esto es debido a que la computación reconfigurable mantiene los beneficios del software y las aplicaciones de los ASICs. Del mismo modo que los ASICs proporcionan un método para trazar los circuitos en el hardware logrando una actuación más rápida que los microprocesadores y además permite la ejecución paralela de múltiples operaciones. Hay una gama de herramientas para implementar el circuito en la FPGA desde el método completamente manual hasta un método totalmente automático que utilizan un código de programa de alto nivel. Finalmente, la reconfiguración en tiempo de ejecución permite acelerar de una forma más eficiente debido a que permite modificar la configuración del hardware a lo largo del tiempo. 5. REFERENCIAS BIBLIOGRÁFICAS. [1] Journal of VLSI Signal Processing Systems, Kluwer Academic Publishers [2] IEEE Design & Test of Computers. [3] IEEE Computer [4] IEEE Transaction on Computers [5] IEEE Transaction on VLSI Systems [6] IEE Proceedings - Computers and Digital Techniques [7] Architecture of FPGAs and CPLDs: A Tutorial. S. BROWN; J. ROSE. [8] Reconfigurable Computing: A Survey of Systems and Software. K.COMPTON; S. HAUK.