Name Event Date Name Event Date 1 Procesadores de streams 1 Diseño de microprocesadores para multimedia Procesadores de streams Pedro Hernández Fernández.

Slides:



Advertisements
Presentaciones similares
Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
Advertisements

El modelo de Von Neumann
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
Microprocesadores Componentes básicos..
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
UNIX COMP 240.
Sistema operativo Componentes de un sistema operativo
PROCESADORES SUPERESCALARES
PERCY CHUMBE BUENDIA. KIZZY GUTIERREZ VALVERDE. RUTH NOEMY APAZA JARA.
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
EMISION MULTIPLE DE INSTRUCCIONES
Composición Interna de un Procesador
Microcomputadores Prof : Tatiana Marín R.. Sistema basado en microprocesador de 8 bits.
Introducción a la Informática Clase 7
Arquitectura del Computador
Tema 10: Gestión de Memoria
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
PLANIFICACIÓN DINÁMICA DE INSTRUCCIONES
Operación de Micros e Interfaces
5º Microprocesadores para comunicaciones
Ing. Karen Torrealba de Oblitas
Procesamiento paralelo
Arquitectura de ordenadores.
Estructura y Tecnología de Ordenadores Noviembre 2004.
Administración de Memoria Memoria Virtual
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
BUS DE DATOS.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Universidad Tecnológica de la Selva Ing. Emmanuel Gordillo Espinoza.
Asignación de Espacio No Contiguo
Conceptos Arquitectónicos del computador
Arquitectura de Procesadores para Streaming Curso de Doctorado Bienio 2003/2005Ingeniería de Telecomunicación Avanzada Diseño de Procesadores para Multimedia.
Instalación de Computadoras 1 I
Electrónica aplicada al tratamiento de datos Procesadores digitales de señal (PDS) DSP: Digital Signal Processors (procesadores) DSP: Digital.
TEMA 2: Organización de computadores
Organización de Computadoras
MICROCONTROLADORES NOCIONES BÁSICAS COMPUTO II. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
¿Qué unidades conforman el procesador?
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.
Arquitectura de Von Neumann
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
HARDWARE Asier Indurain.
La Unidad Central de Proceso o CPU
UNIVERSIDAD DEL VALLE DE MEXICO
PROCESADORES DE SEÑALES DE VIDEO VSP2000 PALOMA FUENTES Microprocesadores para Comunicaciones – 5º ETSIT.
Sistemas Operativos Avanzados
Capítulo 4 CPU y la memoria.
Tendencias Generales Dotación física Software lógica Más pequeño
NOCIONES BÁSICAS COMPUTO II
ARQUICTECTURA DE SERVIDORES
El microprocesador.
ARQUITECTURA ALTERNATIVA DE SERVIDORES SISTEMAS OPERTIVOS DE RED En un sistema operativo de red los usuarios saben que están conectados a la red y que.
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
Principio unidad 1.
     Jerarquía de memoria.
* UNIVERSIDAD TECNOLOGICA DE PUEBLA TECNOLOGIAS DE LA INFORMACION Y COM. AREA REDES Y TELECOMUNIC IONES ADMINISTRACION DE SERVIDORES «ARQUITECTURA DE COMPUTADORAS»
PICOBLAZE RESUMEN.
INTRODUCCIÒN MICROCONTROLADORES
ARQUITECTURAS DE LOS SERVIDORES El computador tiene 2 aspectos para entender su funcionamiento al nivel de programación: Almacenamiento Procesamiento Para.
INTEGRANTES: JOSE ESTEVEZ _HUGO ANDRADE CURSO: 5TO “B”
El procesador es el cerebro del computador que se encarga de organizar, procesar la información ejecutar cálculos y en general realizar muchos procesos.
LA CPU Ing. Manuel Andrés Belalcázar S. Corporación Universitaria Autónoma del Cauca.
REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE INGENIERÍA ESCUELA DE COMPUTACIÓN ING. PROF. LEONEL SEQUERA MEMORIAS.
Republica Bolivariana de Venezuela Universidad Alonso de Ojeda Facultad de Ingeniería Escuela de Computación Ing. Prof. Leonel Sequera Entrada y Salidas.
Universidad Metropolitana Introducción a la Computación Universidad Metropolitana Introducción a la Computación Septiembre, 2007 Arquitectura Von Newman.
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.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
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:

Name Event Date Name Event Date 1 Procesadores de streams 1 Diseño de microprocesadores para multimedia Procesadores de streams Pedro Hernández Fernández Antonio Núñez Ordóñez

Name Event Date Name Event Date 2 Procesadores de streams 2 Contenido - Características generales - Arquitectura IMAGINE - Arquitectura MERRIMAC Procesadores de streams

Name Event Date Name Event Date 3 Procesadores de streams 3 Procesadores programables optimizados para ejecutar aplicaciones multimedia Procesador de streams Aplicaciones multimedia - Comprensión de video - Gráfico en tres dimensiones - Procesamiento de imágenes - Procesamiento de señales - Videoconferencia - Reconocimiento de voz Procesadores de streams

Name Event Date Name Event Date 4 Procesadores de streams 4  Características aplicaciones multimedia Procesador de streams Aplicaciones multimedia - Alto nivel de paralelismo - Poca reutilización de los datos - Alta carga computacional - Alta relación operaciones/accesos a memoria - Localidad Productor-Consumidor Procesadores de streams

Name Event Date Name Event Date 5 Procesadores de streams 5 Opciones actuales  EFICIENCIA Procesadores de aplicaciones específicas (ASIC)  50 a 500 GOPS/W  Flexibilidad mínima o nula  PROGRAMABILIDAD Microprocesadores o DSPs  Eficiencia pequeña 10GOPS/W  Programables usando lenguajes de alto nivel

Name Event Date Name Event Date 6 Procesadores de streams 6 Opciones actuales DSPs Microprocesadores Procesadores aplicaciones específicas Eficientes Flexibilidad mínima Poco eficientes Programables Procesadores de streams Eficientes Programables

Name Event Date Name Event Date 7 Procesadores de streams 7 Fichero de registros central  Área proporcional al cubo del número de unidades funcionales  Potencia proporcional al cubo del número de unidades funcionales  Retardo proporcional 3/2 del número de unidades funcionales

Name Event Date Name Event Date 8 Procesadores de streams 8  Sustituir el fichero único por múltiples ficheros de registros  Las unidades funcionales se agrupan  Se asigna a cada grupo su propio fichero de registros 1ª Solución: Fichero de registros múltiples

Name Event Date Name Event Date 9 Procesadores de streams 9 2ª Solución: Fichero de registros múltiples con buses compartidos  Las unidades funcionales se conectan usando buses compartidos  Las unidades funcionales pueden leer/escribir directamente en los ficheros de registros

Name Event Date Name Event Date 10 Procesadores de streams 10 Modelo de programación con streams Definiciones  El dato mínimo con el que se trabaja se denomina STREAM  STREAM: Conjunto de datos relacionados de longitud variable  KERNEL: Pequeño programa que realiza la misma operación sobre todos los elementos de un stream de entrada, produce un stream de salida para el siguiente kernel de la aplicación

Name Event Date Name Event Date 11 Procesadores de streams 11 Programmable Kernel Stream 4 data Stream 3 data Stream 2 data Stream 1 data Modelo de programación con streams  Los programas se estructuran como una secuencia de streams de datos que pasan a través de unos kernels de cálculo  Las operaciones se realizan sobre el stream completo

Name Event Date Name Event Date 12 Procesadores de streams 12 Programmable Kernel Stream 4 data Stream 3 data Stream 2 data Stream 1 transformed data Modelo de programación con streams  Los kernels no pueden hacer referencias a memoria  Los kernels operan con datos locales, (los streams de salida de un kernel son función de los streams de entrada

Name Event Date Name Event Date 13 Procesadores de streams 13 Programmable Kernel Stream 4 data Stream 3 data Stream 2 data Stream 1 transformed data Modelo de programación con streams

Name Event Date Name Event Date 14 Procesadores de streams 14 Programmable Kernel Stream 4 data Stream 3 data Stream 2 data Stream 1 transformed data Modelo de programación con streams

Name Event Date Name Event Date 15 Procesadores de streams 15 Programmable Kernel Stream 4 data Stream 3 data Stream 2 data Stream 1 transformed data Modelo de programación con streams

Name Event Date Name Event Date 16 Procesadores de streams 16 Los programas en este modelo se especifican en dos niveles  A nivel de streams - La secuencia de kernels que forman la aplicación - Como están conectados esos kernels - Nombre y tamaño de los streams con los que se opera  A nivel de kernel - Especifica las operaciones a realizar con los datos Modelo de programación con streams

Name Event Date Name Event Date 17 Procesadores de streams 17  Las aplicaciones requieren un manejo adecuado del ancho de banda con memoria  La jerarquía de memoria tiene tres niveles: - Un nivel de memoria principal: datos grandes o que se acceden de forma no frecuente - Nivel intermedio : Aprovechar la localidad de los datos dentro del chip - Nivel local: Almacenar datos temporales en las operaciones de cálculo  Las aplicaciones multimedia se adaptan perfectamente a este jerarquía  La ejecución de los kernels es rápida y eficiente (sólo datos locales)  El 90% del movimiento de datos es local Jerarquía de memoria

Name Event Date Name Event Date 18 Procesadores de streams 18 Imagine Scott Rixner Universidad de Stanford

Name Event Date Name Event Date 19 Procesadores de streams 19  Procesador multimedia programable diseñado para implementar el modelo de programación con streams  Diseñado para ser una prueba del concepto de procesador de streams programable, mostrando la viabilidad de las estructuras  Está pensado para actuar como un coprocesador que opera sobre streams de datos multimedia.  Diseño organizado alrededor de tres niveles de memoria - Memoria del sistema (memoria principal) - Un Fichero de registros global (nivel intermedio) - Un conjunto de ficheros de registros local (nivel local) IMAGINE

Name Event Date Name Event Date 20 Procesadores de streams 20 IMAGINE: Jerarquía de memoria - Memoria del sistema (2GB/S)

Name Event Date Name Event Date 21 Procesadores de streams 21 IMAGINE: Jerarquía de memoria - Memoria del sistema (2GB/S) - Fichero de registros global (32GB/s) (arquitectura load/store)

Name Event Date Name Event Date 22 Procesadores de streams 22 IMAGINE: Jerarquía de memoria - Memoria del sistema (2GB/S) - Fichero de registros global (32GB/s) (arquitectura load/store) - Conjunto de ficheros de registros local (544GB/s)

Name Event Date Name Event Date 23 Procesadores de streams 23 IMAGINE

Name Event Date Name Event Date 24 Procesadores de streams 24 IMAGINE Comunicación con el host y emisión de instrucciones

Name Event Date Name Event Date 25 Procesadores de streams 25 IMAGINE Almacena los kernels de la aplicación

Name Event Date Name Event Date 26 Procesadores de streams 26 IMAGINE Ejecutan los kernels

Name Event Date Name Event Date 27 Procesadores de streams 27 IMAGINE Conección con otros integrados IMAGINE

Name Event Date Name Event Date 28 Procesadores de streams 28 IMAGINE Transfiere datos entre bloques del chip

Name Event Date Name Event Date 29 Procesadores de streams 29 IMAGINE Almacenamiento local

Name Event Date Name Event Date 30 Procesadores de streams 30 IMAGINE: Stream Register File

Name Event Date Name Event Date 31 Procesadores de streams 31 IMAGINE: Stream Register File  Contiene SRAM de 128KB organizada en bloques de 32 palabras de 32 bits  Puede almacenar streams de datos de longitud variable  La carga/almacen. de streams ocurre entre la memoria y el SRF  El envío y recepción de datos a través de la red ocurre entre el interfase de red y el SRF  Proporciona el streams de entrada a los kernels y almacena el stream de salida

Name Event Date Name Event Date 32 Procesadores de streams 32 IMAGINE: Stream Register File

Name Event Date Name Event Date 33 Procesadores de streams 33 IMAGINE: Stream Register File IMAGINE tiene 22 stream buffers: ocho cluster stream buffers ocho cluster stream buffers (ocho palabras por ciclo) ocho network stream buffers ocho network stream buffers (dos palabras por ciclo) cuatro memory system stream buffers (una palabra por ciclo) cuatro memory system stream buffers (una palabra por ciclo) un microcontroller stream buffer un microcontroller stream buffer (una palabra por ciclo), un host processorstream buffer un host processor stream buffer (una palabra por ciclo)

Name Event Date Name Event Date 34 Procesadores de streams 34 IMAGINE: Clusters aritméticos

Name Event Date Name Event Date 35 Procesadores de streams 35 IMAGINE: Clusters aritméticos - Operaciones en coma flotante de 32 bits en precisión simple - Operaciones enteras de 32 bits. - Están totalmente segmentadas, permitiendo una nueva operación en cada ciclo.

Name Event Date Name Event Date 36 Procesadores de streams 36 Red de comunicación intracluster IMAGINE: Red de comunicación intracluster Permite el intercambio de datos entre las unidades aritméticas dentro del mismo cluster

Name Event Date Name Event Date 37 Procesadores de streams 37 Red de comunicación intercluster IMAGINE: Red de comunicación intercluster

Name Event Date Name Event Date 38 Procesadores de streams 38 Red de comunicación intercluster IMAGINE: Red de comunicación intercluster  La unidad de comunicación facilita el intercambio de datos entre clusters  La unidad de comunicación puede enviar una palabra cada ciclo de reloj  El microcontrolador tiene un bus propio para enviar datos a los clusters

Name Event Date Name Event Date 39 Procesadores de streams 39 IMAGINE: Microcontrolador

Name Event Date Name Event Date 40 Procesadores de streams 40 IMAGINE: Microcontrolador  Envía instrucciones a los clusters aritméticos  Cada ciclo envía una instrucción VLIW de 568 bits a los ocho clusters  Los kernels están almacenados en una memoria de 2K instrucciones por 568 bits   Los kernels se cargan solamente una vez de memoria al comienzo de la aplicación

Name Event Date Name Event Date 41 Procesadores de streams 41 IMAGINE: Streaming Memory System

Name Event Date Name Event Date 42 Procesadores de streams 42  Todas las referencias a memoria hacen uso de las instrucciones LOAD y STORE que transfieren una stream completo de memoria al SRF - simplifica la programación - minimiza las paradas de las unidades aritméticas  El sistema de memoria consiste en: - dos generadores de direcciones - cuatro bancos de memoria entrelazados - dos buffers de reordenación IMAGINE: Streaming Memory System

Name Event Date Name Event Date 43 Procesadores de streams 43 IMAGINE: Streaming Memory System Genera direcciones de memoria

Name Event Date Name Event Date 44 Procesadores de streams 44 IMAGINE: Streaming Memory System Almacena las referencias a memoria

Name Event Date Name Event Date 45 Procesadores de streams 45 IMAGINE: Streaming Memory System Transfiere los datos al SRF en orden

Name Event Date Name Event Date 46 Procesadores de streams 46 IMAGINE: Interface de red

Name Event Date Name Event Date 47 Procesadores de streams 47 IMAGINE: Interfase de red  Transfiere streams de un procesador a otro, a través de la red  Se utiliza en las instrucciones de enviar o recibir (SEND/RECEIVE)  Dispone de cuatro canales de entrada y cuatro canales de salida  Cada canal puede transferir 2 bytes cada ciclo de reloj

Name Event Date Name Event Date 48 Procesadores de streams 48 IMAGINE: Procesador

Name Event Date Name Event Date 49 Procesadores de streams 49 IMAGINE: Procesador  Un procesador externo ejecuta el programa y transfiere las instrucciones que operan con streams al IMAGINE a través del controlador interno de streams.

Name Event Date Name Event Date 50 Procesadores de streams 50 IMAGINE: Controlador de streams

Name Event Date Name Event Date 51 Procesadores de streams 51 IMAGINE: Controlador de streams  Recibe instrucciones del procesador  Las almacena en una cola de instrucciones pendientes  Determina qué instrucciones están preparadas para emitir  Existen unas señales de estado desde las unidades funcionales que determinan cuando se completa una operación  Se emiten a las unidades que estén libres, sin violar las dependencias  Este emisión pueden hacerse fuera de orden

Name Event Date Name Event Date 52 Procesadores de streams 52 Los programas en este modelo se especifican en dos niveles  A nivel de streams - La secuencia de kernels que forman la aplicación - Como están conectados esos kernels - Nombre y tamaño de los streams con los que se opera  A nivel de kernel - Especifica las operaciones a realizar con los datos Modelo de programación con streams

Name Event Date Name Event Date 53 Procesadores de streams 53 Los programas en este modelo se especifican en dos niveles  A nivel de streams (STREAMC) - La secuencia de kernels que forman la aplicación - Como están conectados esos kernels - Nombre y tamaño de los streams con los que se opera  A nivel de kernel - Especifica las operaciones a realizar con los datos Modelo de programación con streams

Name Event Date Name Event Date 54 Procesadores de streams 54 Los programas en este modelo se especifican en dos niveles  A nivel de streams (STREAMC) - La secuencia de kernels que forman la aplicación - Como están conectados esos kernels - Nombre y tamaño de los streams con los que se opera  A nivel de kernel (KERNELC) - Especifica las operaciones a realizar con los datos Modelo de programación con streams

Name Event Date Name Event Date 55 Procesadores de streams 55 KERNEL example1( istream a, istream b, ostream c, uc uc_amul, uc uc_bmul) { int amul = ucRead(uc_amul); int bmul = ucRead(uc_bmul); loop_stream(a) { int ai, bi, ci; a >> ai; b >> bi; ci = select(ai > 0, ai * amul, bi * bmul); c << ci; } Código ejecutado por un kernel (kernelC) void main() { stream a(256); stream b(256); stream c(512); stream cEven = c(0, 512, FIXED, STRIDE, 2) uc uc_amul = 2; uc uc_bmul = 3;... example1(a, b, cEven, uc_amul, uc_bmul);... } Código ejecutado en el procesador (StreamC)

Name Event Date Name Event Date 56 Procesadores de streams 56   IMAGINE está implementado con un proceso CMOS de 0,15 micras de Texas Instruments, operando a 500MHz   El chip mide menos de 16x16mm, incluyendo los pads   Necesita 456 pines y 21 millones de transistores IMAGINE: Implementación

Name Event Date Name Event Date 57 Procesadores de streams 57 Merrimac Bill Dally Universidad de Stanford

Name Event Date Name Event Date 58 Procesadores de streams 58 MERRIMAC: Jerarquía de memoria

Name Event Date Name Event Date 59 Procesadores de streams 59 MERRIMAC: Jerarquía de memoria

Name Event Date Name Event Date 60 Procesadores de streams 60 MERRIMAC

Name Event Date Name Event Date 61 Procesadores de streams 61 MERRIMAC: Clusters aritméticos

Name Event Date Name Event Date 62 Procesadores de streams 62 MERRIMAC

Name Event Date Name Event Date 63 Procesadores de streams 63 Diseño de microprocesadores para multimedia Procesadores de streams Pedro Hernández Fernández Antonio Núñez 8 agosto 2004