1 / 45

Aplicación de Patrones de diseño al diseño de Hardware

Aplicación de Patrones de diseño al diseño de Hardware. Alumnos: Bolatti , Dante Legajo: B-3299/9 Danelon , Javier Legajo : D-2011/7. Características de los Patrones de diseño I.

howe
Télécharger la présentation

Aplicación de Patrones de diseño al diseño de Hardware

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Aplicación de Patrones de diseño al diseño de Hardware Alumnos: Bolatti, Dante Legajo: B-3299/9 Danelon, Javier Legajo: D-2011/7

  2. Características de los Patrones de diseño I • Los patrones son utilizados para lograr un software flexible, capaz de tener componentes reutilizable. • Es un lenguaje entre los diseñadores, capaz de trasmitir a través de experiencias el mejor patrón a seguir ante un determinado problema.

  3. Características de los Patrones de diseño II • Deben ser lo mas abstractos posibles. • Independientes del lenguaje de programación. • Los patrones promueven y facilitan la reutilización de arquitecturas.

  4. Aplicación de Patrones de diseño al diseño de HW. • Robertas Damaševičius • Giedrius Majauskas • Vytautas Štuikys

  5. Introducción I • Patrones que encapsulan soluciones comunes en recurrentes problemas de diseño han contribuido al incremento del uso, calidad y productividad en el diseño del software. • Proponen la utilización de patrones al diseño de hardware. Para la integración de la Propiedad intelectual (IP) en sistemas de diseño “on-Chip”.

  6. Introducción II • Formulan el rol de los patrones de diseño para diseño de hardware y describen la implementación usando meta-Programación. • Proponen el patrón de diseño “Wrapper” para adaptar el comportamiento del “soft IPs” y demuestran una aplicación a la síntesis de las interfase de comunicación.

  7. Introducción III • El beneficio de utilizar Patrones al diseño de hardware pueden ser indicado de la siguiente forma: • Describiendo un sistema hardware de una forma abstracta puede elevar significativamente el nivel de abstracción. • Uso de UML facilita la comunicación entre diferentes equipos de diseñadores. • Uso de diseño OO y las metodologías de testeo pueden asegurar un HW de alta calidad.

  8. Introducción IV • Uso de herramientas graficas, catálogos de diseño de patrones y herramientas de generación de código automático pueden incrementar significativamente la automatización y productividad de HW así como acelerar el reuso, la comparición y la transferencia.

  9. Contribución del trabajo: • Análisis del rol que cumplen los patrones de diseño y los problemas a la aplicación a diseño de HW. • Definen un nuevo patrón de diseño llamado “Wrapper” para adaptar la interfase y el comportamiento de un IP a un contexto de uso. • Proponen la implementación del patrón de diseño de HW usando meta-programación. • Demuestran una aplicación del patrón “Wrapper” a una síntesis de interfase de comunicación.

  10. Contribución del trabajo: • Existen diversos formas de afrontar el diseño de HW. El trabajo se basa en como el patrón de diseño de software puede ser aplicado también al diseño de HW. Pero descubriendo nuevos patrones de diseño en vez de adaptar los existentes. • El patrón descubierto es el “Wrapper” el cual es aplicable a una gran variedad de aplicaciones.

  11. Rol de los patrones de diseños en diseño de HW. • La combinación de grandes bloques IPs y SW embebido en SoC (System on Chip) está precipitando a un cambio de una metodología de diseño de HW basado en contenido a basado en integración

  12. Rol de los patrones de diseños en diseño de HW. Basado en contenido: • Se basa en un diseño que comienza desde cero y luego se procede a la verificación del mismo. Basado en integración: • A diferencia, este último trata los problemas de la evaluación, customizacion y la integración de múltiples bloque IPs.

  13. Proceso de diseño de HW Existen dos procesos: Register-transfer-level (RTL): Es el nivel mas bajo, el cual se encarga de realizar los bloques IPs desde cero. Por lo general con leguaje HDL. System-Level (SL): Es el nivel mas alto, el cual se encarga de interconectar todos los bloques IPs para una requerida funcionalidad.

  14. Proceso de diseño de HW

  15. Ejemplos de aplicación de Patrones de Diseños en el desarrollo de Hardware

  16. En el desarrollo de Hardware no existen aún patrones “formales”, a pesar de ello se utilizan ampliamente patrones “informales” Por Ejemplo: Máquinas de estado finito (MEF), para soluciones basadas en control secuencial. Se implementan con el patrón “STATE” Patrón STATE: Permite que un objeto modifique su comportamiento cada vez que cambie su estado interno.

  17. Los “Wrappers” (envoltorios) ya son utilizados en muchas aplicaciones: • ReliabilityWrapper:se utiliza en aplicaciones críticas para detectar fallas. Provee implementación de manejo de errores, y voto mayoritario. • Bus Wrapper: se utiliza para la síntesis de comunicación en diseños SoC. Provee implementación de un protocolo particular. • ProtocolWrapper: se utiliza para procesamiento de paquetes de Internet superpuestos. Provee una implementación de la capa OSI (Open SystemInterconection, ISO. 1982) de protocolo. • MemoryWrapper: se utiliza para la adaptación automática de interfaces físicas de memoria con redes de comunicaciones que tienen un diferente numero de puertos de acceso. Provee implementación de el controlador, manejo de acceso, comunicación interna, y arbitración.

  18. Adaptación de UML para diseño de Hardware

  19. Existen dificultades cuando se aplican las técnicas de modelado OO (orientadas a Objetos) al desarrollo de Hardware Problema No existen un estándar definido para HDL Orientado a Objetos • Motivos: • La mayoría de los soft IP existentes fueron desarrollados utilizando un lenguaje HDL estandar • Hay pocos esfuerzos para sintetizar conceptos OO en RTL

  20. Hay que definir la forma en que se mapean las abstracciones de un lenguaje HDL (por ej: VHDL), en conceptos OO. Conceptos OO Conceptos HDL UML ??? Existe una analogía entre conceptos y principios

  21. Conceptos Básicos HDL: • Herramienta CAD para el diseño de Hardware • Describe, modela, simula e implementa un circuito electrónico digital • El tipo de descripción puede ser por bloques o por comportamiento • Varios lenguajes disponibles: VHDL, Verilog, ABEL, AHDL (Altera), JHDL (Java),Atom, SystemC(C++). NOTA: Utilizamos para el diseño en este trabajo VHDL

  22. Ejemplo sencillo: Compuerta AND: entityPuertaANDis port ( A,B:inSTD_Logic; C:out STD_LOGIC); endPuertaAND; architecture Estructural of PuertaANDis component AND2 port (I0,I1:in STD_LOGIC; O:out STD_LOGIC); endcomponent; begin U1: AND2 portmap (A,B,C); end Estructural; Caja Negra Caja Blanca

  23. Adaptación: Clase Abstracta Lenguaje OO VHDL Entidad Arquitectura Clase que implementa la clase abstracta Puertos (públicos) Señales (privadas) Atributos Instancias de la clase Configuración Métodos Procesos

  24. Patrón de diseño “WRAPPER” (Envoltorio)

  25. Se propone un patrón de diseño HW llamado “Wrapper”. El mismo se define en un esquema estándar de descripción de patrones: [Intención] Permite adaptar una interface y un comportamiento de un componente IP al contexto de una aplicación dada [Aplicación] Utilice el Wrapper cuando necesite adaptar un componente a los requerimientos de su entorno. [Estructura]

  26. [Consecuencias] El patrón puede anidarse. Diferentes “Wrappers” pueden ser aplicados al mismo componente, como así tambíen un solo “Wrapper” puede aplicarse a distintos IPsCores. Ejemplos: IP1 IP2 IP1 IP2 Wrapper_1 Wrapper_1 Wrapper_1 Wrapper_2

  27. Implementación del patrón utilizando metaprogramacíon

  28. Es posible generar el código que representa a un patrón en forma automática. Para ello se utiliza la “metaprogramación” (MPG). MPG Meta Programa Genera “Consiste en una familia de instancias de programa relacionadas con el domino, que describen la generación de una instancia particular dependiendo de los valores de los parámetros que se le pasan” Abstracción de alto nivel

  29. Damaševičius, Majauskas, Štuikys(Kaunas University of Technology, Lituania, 2003), implementaron un metaprograma (generador de código parametrizado) que aplica un respectivo proceso de diseño (ej: “Wrapping”) a un dado soft IP. • El rol de metaprograma es de servir de puente entre la descripción abstracta del proceso de diseño a nivel de sistema, y su implementación. • Genera de forma automática el código VHDL para el caso en estudio.

  30. Modelado Implementación

  31. Caso de estudio

  32. Problema: Se quiere adaptar la interface de un núcleo IP para la transmisión de datos utilizando un protocolo de datos Handshake de 4 fases. Descripción: El núcleo IP se comunica con un micro controlador (MC), el cual maneja el IP a través de un canal (bus) utilizando un protocolo Handshake de datos (DP).

  33. Wrapper

  34. En este caso de aplicación se estudia el lado Cliente unicamente

  35. Objetivo: Adaptar la interface del núcleo IP, de manera de establecer comunicación directa entre el MC y el IP. Patrón: Permite envolver al núcleo IP, junto con la lógica de control. El sistema envuelto queda listo para integrarlo en un sistema de HW mayor. Que permite el patrón?: • Añade funcionalidad al núcleo IP • Ajusta la interfaz del componente de manera que sea compatible. • Es transparente al hardware. • Similar al patrón “Decorator” de software

  36. Los autores construyeron un generador “Wrapper” para generar automáticamente los envoltorios de cualquier núcleo IP escrito en VHDL. • El generador “Wrapper” utiliza un analizador VHDL para analizar el tipo de interface del núcleo IP. • Utiliza varias clases de JAVA (Metaprograma) para generar código VHDL de acuerdo al patrón. • El proceso de generación es completamente automático.

  37. El generador “Wrapper” (desde un metaprograma ) realiza la envoltura generando una instancia de la MEF (máquina de estado) que implementa el proceso de comunicación, y realiza además un mapeo de puertos, el cual mapea las señales del “envoltorio” con las del núcleo IP. • Se puede ver la arquitectura en un diagrama UML.

  38. - Hereda I/O - Declara nuevos I/O Implementa funcionalidad

  39. Evaluación y discusión

  40. - Las ventajas de utilizar patrones en diseño de Hardware, y que se pudieron evaluar a lo largo del paper fueron: • El contenido de diseño se puede capturar inmediatamente y en forma intuitiva, aumentando la comprensión del diseño. • El diseño basado en patrones puede ser soportado por las herramientas de generación de código y de validación, incrementando la reutilización, calidad y productividad. • El nivel de abstracción se lleva a nivel de sistema, permitiendo así manejar de forma mas sencilla la creciente complejidad de los sistemas HW.

  41. Ventajas adicionales: • Reduce la brecha entre el desarrollo de SW y HW de los diferentes componentes del SoC. • Puede resultar muy útil diseñar las diferentes partes de un sistema utilizando la misma metodología de diseño (OO). • La misma descripción de alto nivel puede ser implementada tanto en HW, como en SW corriendo en un micro embebido, permitiendo así al diseñador optar por cualquiera de las dos implementaciones, dando mayor flexibilidad.

  42. Desventajas: • Brecha conceptual: los diseñadores de SW piensan en términos OO (objetos y mensajes), mientras que los diseñadores de HW piensan en términos de componentes (bloques y cables). • Brecha metodológica:de que forma los procesos SL descriptos utilizando los patrones de HW basados en UML, pueden ser convertidos en forma semi-automática ?. • Brecha Física: como pueden ser reflejadas las restricciones físicas (ej: retardos temporales), en un modelo OO (patrón)? • Brecha Tecnológica:de que manera los objetos, o patrones enteros de diseño pueden ser sintetizados directamente a RTL?

  43. Conclusiones y trabajo futuro

  44. La aplicación de técnicas de modelado orientadas a objetos se ha convertido recientemente en un tema de investigación. • Los autores lograron implementar un patrón de diseño orientado a Hardware, llamado “Wrapper” (Envoltorio), en forma eficiente y eficaz. • Se motiva a continuar la investigación y búsqueda de patrones de diseño en HW, en forma similar a la hecha por el GoF (Gamma, Helm, Johnson, Vlissides). • Se espera que la aplicación de patrones de diseño aplicados a HW contribuya al incremento en la reutilización de los diseños, automatización, incremento en la calidad y productividad del diseñador.

  45. Bibliografía: • R. Damaševičius, G. Majauskas, V. Štuikys. Application of Design Patterns for Hardware Design. ACM, 2003. • E. Gamma, R. Helm, R. Johnson y J. Vlissides. Design Paterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. • Ing. E. D´Agostino. Patrones de diseño y Estructuras de datos. FCEIA, 2008. • F. Pardo Carpio. VHDL, Lenguaje para descripción y modelado de circuitos. Universitat de Valéncia, 1997. • URL: http://www.wikipedia.org/

More Related