45
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

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

  • Upload
    howe

  • View
    61

  • Download
    0

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: 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

Page 2: Aplicación de Patrones de diseño al diseño de Hardware

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.

Page 3: Aplicación de Patrones de diseño al diseño de Hardware

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.

Page 4: Aplicación de Patrones de diseño al diseño de Hardware

Aplicación de Patrones de diseño al diseño de HW.

• Robertas Damaševičius • Giedrius Majauskas• Vytautas Štuikys

Page 5: Aplicación de Patrones de diseño al diseño de Hardware

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”.

Page 6: Aplicación de Patrones de diseño al diseño de Hardware

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.

Page 7: Aplicación de Patrones de diseño al diseño de Hardware

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.

Page 8: Aplicación de Patrones de diseño al diseño de Hardware

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.

Page 9: Aplicación de Patrones de diseño al diseño de Hardware

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.

Page 10: Aplicación de Patrones de diseño al diseño de Hardware

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.

Page 11: Aplicación de Patrones de diseño al diseño de Hardware

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

Page 12: Aplicación de Patrones de diseño al diseño de Hardware

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.

Page 13: Aplicación de Patrones de diseño al diseño de Hardware

Proceso de diseño de HWExisten 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.

Page 14: Aplicación de Patrones de diseño al diseño de Hardware

Proceso de diseño de HW

Page 15: Aplicación de Patrones de diseño al diseño de Hardware

15

Page 16: Aplicación de Patrones de diseño al diseño de Hardware

En el desarrollo de Hardware no existen aún patrones “formales”, a pesar de ello se utilizan ampliamente patrones “informales”

16

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.

Page 17: Aplicación de Patrones de diseño al diseño de Hardware

Los “Wrappers” (envoltorios) ya son utilizados en muchas aplicaciones:

1) Reliability Wrapper: se utiliza en aplicaciones críticas para detectar fallas. Provee implementación de manejo de errores, y voto mayoritario.

2) Bus Wrapper: se utiliza para la síntesis de comunicación en diseños SoC. Provee implementación de un protocolo particular.

3) Protocol Wrapper: se utiliza para procesamiento de paquetes de Internet superpuestos. Provee una implementación de la capa OSI (Open System Interconection, ISO. 1982) de protocolo.

4) Memory Wrapper: 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.

17

Page 18: Aplicación de Patrones de diseño al diseño de Hardware

18

Page 19: Aplicación de Patrones de diseño al diseño de Hardware

Existen dificultades cuando se aplican las técnicas de modelado OO (orientadas a Objetos) al desarrollo de Hardware

19

Problema

No existen un estándar definido para HDL Orientado a Objetos

Motivos:1)La mayoría de los soft IP existentes fueron desarrollados utilizando un lenguaje HDL estandar2)Hay pocos esfuerzos para sintetizar conceptos OO en RTL

Page 20: Aplicación de Patrones de diseño al diseño de Hardware

Hay que definir la forma en que se mapean las abstracciones de un lenguaje HDL (por ej: VHDL), en conceptos OO.

20

Conceptos OO UML

Conceptos HDL ???

Existe una analogía entre conceptos y principios

Page 21: Aplicación de Patrones de diseño al diseño de Hardware

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

21

Page 22: Aplicación de Patrones de diseño al diseño de Hardware

Ejemplo sencillo:Compuerta AND:entity PuertaAND is

port ( A,B:in STD_Logic;C:out STD_LOGIC);

end PuertaAND;

architecture Estructural of PuertaAND iscomponent AND2port (I0,I1:in STD_LOGIC;

O:out STD_LOGIC);end component;

beginU1: AND2port map (A,B,C);

end Estructural;

22

Caja Negra

Caja Blanca

Page 23: Aplicación de Patrones de diseño al diseño de Hardware

Adaptación:

Clase Abstracta

23

EntidadClase que implementa la

clase abstracta Arquitectura

Lenguaje OO VHDL

AtributosPuertos (públicos)Señales (privadas)

Instancias de la clase Configuración

Métodos Procesos

Page 24: Aplicación de Patrones de diseño al diseño de Hardware

24

Page 25: Aplicación de Patrones de diseño al diseño de Hardware

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]

25

Page 26: Aplicación de Patrones de diseño al diseño de Hardware

Wrapper_1

[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 IPs Cores.

26

Ejemplos:

IP1Wrapper_1

IP1

Wrapper_1

Page 27: Aplicación de Patrones de diseño al diseño de Hardware

27

Page 28: Aplicación de Patrones de diseño al diseño de Hardware

Es posible generar el código que representa a un patrón en forma automática. Para ello se utiliza la “metaprogramación” (MPG).

28

MPGGenera

Meta Programa

“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 nivelAbstracción de alto nivel

Page 29: Aplicación de Patrones de diseño al diseño de Hardware

- 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.

29

Page 30: Aplicación de Patrones de diseño al diseño de Hardware

30

Modelado

Implementación

Page 31: Aplicación de Patrones de diseño al diseño de Hardware

31

Page 32: Aplicación de Patrones de diseño al diseño de Hardware

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).

32

Page 33: Aplicación de Patrones de diseño al diseño de Hardware

33

Wrapper

Page 34: Aplicación de Patrones de diseño al diseño de Hardware

34

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

Page 35: Aplicación de Patrones de diseño al diseño de Hardware

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

35

Page 36: Aplicación de Patrones de diseño al diseño de Hardware

- 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.

36

Page 37: Aplicación de Patrones de diseño al diseño de Hardware

- 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.

37

Page 38: Aplicación de Patrones de diseño al diseño de Hardware

38

- Hereda I/O- Declara nuevos I/O

Implementa funcionalidad

Page 39: Aplicación de Patrones de diseño al diseño de Hardware

39

Page 40: Aplicación de Patrones de diseño al diseño de Hardware

- Las ventajas de utilizar patrones en diseño de Hardware, y que se pudieron evaluar a lo largo del paper fueron:

1) El contenido de diseño se puede capturar inmediatamente y en forma intuitiva, aumentando la comprensión del diseño.

2) 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.

3) 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.

40

Page 41: Aplicación de Patrones de diseño al diseño de Hardware

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.

41

Page 42: Aplicación de Patrones de diseño al diseño de Hardware

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?

42

Page 43: Aplicación de Patrones de diseño al diseño de Hardware

43

Page 44: Aplicación de Patrones de diseño al diseño de Hardware

- 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.

44

Page 45: Aplicación de Patrones de diseño al diseño de Hardware

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/

45