UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria.

Slides:



Advertisements
Presentaciones similares
Procesadores Superescalares
Advertisements

DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
A FAST ALGORITHM FOR DNA SEQUENCES.
Diseño y análisis de algoritmos
LICENCIATURA EN SISTEMAS COMPUTACIONALES EN ADMINISTRACION
III - Gestión de memoria
Multiprocesadores 3.1 Dominios de aplicación
Estructura de Datos Hugo Araya Carrasco Hugo Araya Carrasco.
Fermín Sánchez Carracedo Universitat Politècnica de Catalunya
El Microprocesador.
PROCESADORES SUPERESCALARES
Microprocesadores.
MÉTODOS DE ANÁLISIS FINANCIEROS
Representación en espacio de estado
Pipelines: Riesgos.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Ingeniería de sw.
Windows XP sp3.
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
Tema 3. Optimización de Código
Composición Interna de un Procesador
Microcomputadores Prof : Tatiana Marín R.. Sistema basado en microprocesador de 8 bits.
Nuevas Estrategias de Mantenimiento
TRADUCTOR DE UN PROGRAMA
UP C Un Análisis Cuantitativo de Spec95 Agustín Fernández Departament d’Arquitectura de Computadors Universitat Politècnica de Catalunya “Todo lo que usted.
Tema 10: Gestión de Memoria
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
UNIDAD IV ADMINISTRACIÓN DE SISTEMAS CONCEPTOS DE GESTIÓN Y ALMACENAMIENTO.
1 Gestión eficiente de la LSQ basada en mecanismos de filtrado Fernando Castro ArTeCS Group.
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
SOFTWARE DE SIMULACION
Introducción al análisis de algoritmos
Estructura y Tecnología de Ordenadores Noviembre 2004.
Clase 10: Estructuras de datos y arreglos.
Pipelining Predicción dinámica de brincos. Universidad de SonoraArquitectura de Computadoras2 Introducción En base a la historia de la instrucción, predecir.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.
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.),
(Organización y Manejo de Archivos)
Asignación de Espacio No Contiguo
Instalación de Computadoras 1 I
Capítulo 7 Gestión de memoria.
INVESTIGACION DE OPERACIONES
Diseño de la Unidad de Control Multiciclo: Microprogramación
Previsión de Ventas. Métodos no paramétricos Previsión de Ventas. Tema 2. 1 Antonio Montañés Bernal Curso
Gestión de Memoria.
Modelos Alternativos de evaluación
INFORMATICA VII (Programación e implementación de sistemas)
1 Problemas de decisión Tipo particular de problemas de optimización Sistemas que evolucionan con el tiempo Se toman decisiones en momentos sucesivos de.
Sistemas Operativos Avanzados
Punteros Recomendado: 1. Nivelación Funciones
TEMA 3 LA FUNCIÓN PRODUCTIVA.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.
Metodología de la programación
Diseño de Sistemas.
Fundamentos de Sistemas Expertos
ARQUICTECTURA DE SERVIDORES
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 17 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
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.
ACTIVIDAD N° 1. ELEMENTOS DE INFORMACIÓN FUENTE Una fuente es todo aquello que emite mensajes. Por ejemplo, una fuente puede ser una computadora y mensajes.
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
RIESGO, RENDIMIENTO Y VALOR
* Cuando nos permite desarrollar un programa que necesitamos para tomar un conjunto de buenas prácticas para hacer eso. Esto se debe a que podemos ahorrar.
75.41 Algoritmos y Programación II Cátedra Ing. Patricia Calvo Complejidad algorítmica.
REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE INGENIERÍA ESCUELA DE COMPUTACIÓN ING. PROF. LEONEL SEQUERA MEMORIAS.
3.4 PROCESAMIENTO DE LAS INSTRUCCIONES DE SALTO
ANALISIS DE SISTEMAS PROFESOR HECTOR ARCIA.
Gestión de Memoria – Parte 2
CAPITULO V Arquitectura de Von Neumann
Planificación de CPU Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación con Múltiples Procesadores Planificación Real-Time.
Transcripción de la presentación:

UCMUCM 1 2 primeros años en el Departamento: Optimización de la Transformada Wavelet en Microprocesadores de propósito general a) Mejorar el acceso a memoria de la transformada b) Paralelizar y vectorizar la transformada Mi trabajo en el departamento

UCMUCM 2 2 últimos años en el Departamento: Estudio de técnicas para la mejora en el consumo de potencia a) Mejora del predictor de saltos de cara al consumo por medio de profiling b) Extensión de las técnicas anteriores por medio del compilador (TRABAJO ACTUAL) c) Mejora de la LSQ de cara al consumo (TRABAJO ACTUAL) Mi trabajo en el departamento

U C M Reducción de la Complejidad y el Consumo de Potencia del Predictor de Saltos

UCMUCM 4 Circuitos integrados cada vez más complicados Consumo cada vez mayor Vida de las baterías menor Se hace cada vez más complicado disipar todo el calor que desprende el chip Costes de empaquetado y de “sistemas de enfriamiento” están aumentando mucho Puede llegarse a un límite tecnológico en los “sistemas de enfriamiento” Problema en el Consumo de Potencia

UCMUCM 5 Nuestro Objetivo Reducir el consumo del Predictor de Saltos del Procesador, ya que constituye un factor importante en el consumo total del procesador (En torno al 10%) ¿Cómo conseguirlo? Adaptando el predictor en cada momento a las necesidades del programa ¡¡ CUIDADO !! Es muy importante no aumentar el % de fallos del predictor, pues más fallos implican más ejecuciones especulativas incorrectas

UCMUCM 6 Lo que voy a explicar Resumiré el funcionamiento de los Predictores de Salto Describiré el punto de partida de nuestro trabajo: 3 trabajos relacionados con el Low-Power Explicaré nuestro trabajo y resultados obtenidos Trabajo actual y futuro

UCMUCM 7 Predictores de Saltos

UCMUCM 8 Predictores de Salto Los saltos son un factor crítico en el rendimiento del pipe (1 de cada 6 instrucciones son de salto) La búsqueda de instrucciones se para hasta que: SALTOS CONDICIONALES: a)La condición es evaluada b)La dirección de la siguiente instrucción se conoce SALTOS INCONDICIONALES: a)La dirección de la siguiente instrucción se conoce Para aliviar el problema:Predictor de Saltos

UCMUCM 9 Esquema general del Predictor PC PC+4 I CACHE BTB Predictor de Dirección

UCMUCM 10 Existen muchos tipos distintos de predictores, que se pueden clasificar en dos grupos: Predictores estáticos (basados en compilación o profiling) Predictores dinámicos Los predictores más estudiados y utilizados han sido los dinámicos De las dos estructuras, presentaré en detalle los distintos Predictores de Dirección existentes, pues la BTB no es más que una cache Clasificación de los Predictores

UCMUCM 11 Tipos de Predictores Predictor Estático Predictor Bimodal Predictor basado en Historia Global Predictor basado en Historia Local Predictores Gselect y Gshare Predictores Híbridos

UCMUCM 12 Predictor Estático Ejemplo: considerar todos los saltos como tomados o no tomados. Todos los saltos no tomados: a)Peor porcentaje de aciertos b)No requiere BTB Todos los saltos tomados: a)Mejor porcentaje de aciertos b)Requiere BTB

UCMUCM 13 Predictor Bimoldal Asigna contadores de 2 bits a cada entrada de la tabla Cuando el salto es TOMADOIncrementa contador Cuando el salto es NO TOMADODecrementa contador La predicción viene dada por el bit más significativo

UCMUCM 14 Predictor Bimoldal ¿Por qué utilizar 2 bits? 0000 R1=100 for(i=0;i<100;i++)0001 FOR: OPERACIONES0010OPERACIONES end 1000R Salta a FOR si R1>

UCMUCM 15 Predictores basados en historia Solucionan problemas de aliasing existentes en el Bimodal Utilizan dos tablas, la primera contiene una historia de los últimos saltos que han llegado, y la segunda, que se accede con bits de la primera, contiene la predicción

UCMUCM 16 Predictores basados en historia

UCMUCM 17 Predictor de Historia Global La primera tabla tiene una única entrada

UCMUCM 18 Predictor de Historia Local La primera tabla tiene una entrada para cada salto o conjunto

UCMUCM 19 Ejemplo: El problema del Bimodal PROBLEMA EN EL BIMODAL: 0001 FOR: 0010IF: 0011 Salta a IF si … 0100OPERACIONES 1011 Salta a FOR si R1>

UCMUCM 20 Ejemplo: La Solución 0001 FOR: 0011IF: 0011 Salta a IF si … 0100OPERACIONES 1011 Salta a FOR si R1>

UCMUCM 21 Predictor de Historia Gselect Igual que el de historia global, pero añade información del PC para acceder a la tabla

UCMUCM 22 Predictor de Historia Gshare Igual que el de historia global, pero hace una XOR entre el PC y el registro de historia

UCMUCM 23 Idea presentada inicialmente por McFarling Debido a que distintos tipos de predictores se comportan mejor para unos casos y peor para otros, lo ideal sería tener un predictor compuesto de varios, que realice la predicción con el más adecuado en cada momento Predictor Híbrido

UCMUCM 24 Esquema general de un Predictor Híbrido

UCMUCM 25 Tipos de Predictores estudiados Predictor Estático Predictor Bimodal Predictor basado en Historia Global Predictor basado en Historia Local Predictores Gselect y Gshare Predictores Híbridos

UCMUCM 26 Punto de Partida para nuestro trabajo

UCMUCM 27 Tres trabajos previos Michael Huang y Josep Torrellas: “Positional Adaptation of Processors: Application to Energy Reduction” Introduce el concepto de “Adaptación Posicional” Dharmesh Parikh y Kevin Skadron: “ Power Issues Related to Branch Prediction” Estudia distintas técnicas para reducir el consumo del predictor de saltos. Se-Hyun Yang “An Integrated Circuit Approach to reducing Leakage in Deep-Submicron High-Performance I-Caches” Propone una forma de reducir el número de sets activos de la cache, dependiendo de la demanda que haya con memoria

UCMUCM 28 La Adaptación del Procesador PROCESADOR ADAPTATIVO: Procesador capaz de adaptarse a las necesidades de la aplicación El campo principal de utilización de los PROCESADORES ADAPTATIVOS es el del bajo consumo. Usando Técnicas de Bajo Consumo (LPT), se puede reducir mucho el consumo del procesador, a costa de una pequeña pérdida en el rendimiento. Si se pueden activar o desactivar esas técnicas de forma dinámica, obtenemos una menor pérdida de rendimiento Por ejemplo: LPT que nos permite consumir menos potencia en el acceso a la cache, simplemente haciéndola más pequeña. Sería conveniente desactivar la cache cuando no haya muchos accesos a memoria, y en cambio reactivarla cuando tengamos una gran demanda a memoria.

UCMUCM 29 La “Adaptación Temporal” El problema es que conseguir una adaptación eficiente es difícil Casi todos los sistemas adaptativos propuestos hasta ahora realizaban una “Adaptación Temporal” Mediante profiling/compilación se determina el intervalo óptimo La técnica adaptativa, se activa o desactiva por intervalos. La decisión de activar o no la técnica, se toma basándose en los intervalos anteriores

UCMUCM 30 La “Adaptación Temporal” Por ejemplo: LPT que al activarse hace que se consuma menos potencia en el acceso a la cache. Cada ciclo se decide si se adapta (A) o no (N) en función de un voto de lo hecho en los 3 últimos intervalos Historia (t-2):AAADecisiónA Los contadores nos revelan que hay muchos fallos, por lo que sería mejor no desactivar la cache Historia (t-1):AANDecisiónA Historia (t):ANNDecisiónN

UCMUCM 31 La “Adaptación Posicional” En el trabajo que mencioné anteriormente, se estudió la idea de la “Adaptación Posicional” Mediante profiling/compilación se clasifica el código en módulos La técnica adaptativa, se activa o desactiva según la posición en la que nos encontremos en el código, es decir, según el módulo en el que nos encontremos. Por ejemplo: LPT que al activarse hace que se consuma menos potencia en el acceso a la cache. Se toman medidas de profiling para guiar la activación/desactivación en cada módulo.

UCMUCM 32 La “Adaptación Posicional” del Predictor de Saltos En la adaptación del Predictor de Saltos parece lógico utilizar la segunda técnica, la “Adaptación Posicional” El código tiene un fuerte efecto en la demanda del predictor El comportamiento de muchos saltos tiene un sesgo definido De hecho, el acceso a las tablas del predictor se basan en su dirección (PC)

UCMUCM 33 La PPD del segundo trabajo PC PC+4 I CACHE BTB Predictor de Dirección

UCMUCM 34 La PPD del segundo trabajo PC PC+4 I CACHE BTB Predictor de Dirección PPD

UCMUCM 35 La desactivación de sets del tercer trabajo PC PC+4 I CACHE BTB Predictor de Dirección POCA DEMANDA DESACTIVAR UNA PARTE

UCMUCM 36 La desactivación de sets del tercer trabajo PC PC+4 I CACHE BTB Predictor de Dirección DESACTIVADO Selective-Sets

UCMUCM 37 Tres trabajos previos “Adaptación Posicional” PPD Selective-Sets

UCMUCM 38 Adaptación del Predictor

UCMUCM 39 Introducción Consumo de Potencia: Factor crítico en los procesadores actuales Los procesadores utilizan tablas muy grandes para el Predictor de Saltos: Consumo del 10% En nuestro trabajo utilizamos el Predictor de Dirección 2Bc-gskew-pskew, y una BTB de 4096 entradas

UCMUCM 40 Entorno de Simulación Utilizamos el SimpleScalar junto con el Wattch para realizar las simulaciones Empleamos los SPEC-2000 como benchmarks para las medidas

UCMUCM 41 Recordatorio de un Predictor Híbrido

UCMUCM 42 El Predictor de Dirección 2Bc-gskew-pskew SKEW PREDICTOR o2 GA Predictor o2 PA Predictor o1 Bimodal Predictor o2 Chooser Tables GA B PA MUX Meta1 Meta2 MUX 1 1 Majority Vote Majority Vote PREDICTION

UCMUCM 43 Idea Reducir el consumo de potencia del Predictor de Saltos, ajustando de forma dinámica su complejidad (Predicción bajo demanda) Se particiona la aplicación en módulos, se caracteriza la demanda de cada módulo por medio de Profiling, y se instrumenta la aplicación para reconfigurar el predictor en tiempo de ejecución Técnicas de Reconfiguración:Access gating Structure resizing

UCMUCM 44 Esquema general del Predictor PC PC+4 I CACHE BTB Predictor de Dirección

UCMUCM 45 Recordatorio de la Estructura del Predictor PC PC+4 I CACHE BTB Predictor de Dirección ACCESS GATING STRUCTURE RESIZING

UCMUCM 46 ¿Por qué adaptar el Predictor de Dirección?

UCMUCM 47 BZIP ¿Por qué adaptar el Predictor de Dirección?

UCMUCM 48 Predictor Adaptativo mediante ACCESS GATING GA B PA MUX Meta1 Meta2 MUX 1 1 Majority Vote Majority Vote PREDICTION

UCMUCM 49 STRUCTURE RESIZING: ¿Por qué adaptar la BTB?

UCMUCM 50 STRUCTURE RESIZING: ¿Por qué adaptar la BTB? MP3DEC

UCMUCM 51 BTB: Memoria que proporciona la dirección destino de un salto Para ciertas aplicaciones, estructuras muy grandes pueden estar desaprovechadas, por lo que sería bueno poder adaptar el tamaño La BTB tiene una estructura muy parecida a una cache Existen técnicas para deshabilitar partes de una cache (BTB= 2048 sets / 2 ways) Selective sets (BTB= 256 sets / 2 ways) BTB Adaptativa mediante STRUCTURE RESIZING

UCMUCM 52 Resultados Para un conjunto de 8 aplicaciones del SPEC-2000 Energía ganada en el Predictor: 71,7% Energía ganada en el Procesador: 6,2%

UCMUCM 53 Recordatorio de la PPD PC PC+4 I CACHE BTB Predictor de Dirección PPD

UCMUCM 54 Comparación con la Técnica de la PPD Ventajas: No requiere Profiling, las decisiones se toman de forma dinámica Inconvenientes: Requiere acceso secuencial para ahorrar toda la energía Es una cache, con lo que también consume energía Para un conjunto de 8 aplicaciones del SPEC-2000, y suponiendo una PPD ideal Energía ganada en el Predictor: 51% Energía ganada en el Procesador: 3,9%

UCMUCM 55 Trabajo Actual y Futuro

UCMUCM 56 Determinar la Demanda de forma Estática A partir del ejecutable (utilizando un reescritor de binario: Alto, Diablo, …) En tiempo de compilación (Open Research Compiler) Trabajo Actual y Futuro

UCMUCM 57 ALTO: reescritor de binario para arquitectura Alpha A partir de un ejecutable obtiene un grafo de flujo “aproximado” del programa A partir de dicho diagrama es posible analizar el código y modificar el binario incluyendo optimizaciones De forma natural permite análisis Interprocedural Que optimizaciones son posibles? “Inner Loop sin saltos dentro” “Hard to predict branches” Trabajo Actual y Futuro

UCMUCM 58 Ejemplo: Inner Loops

UCMUCM 59 Trabajo Actual y Futuro Idea: Generalización de este tipo de adaptación a otros componentes del microprocesador utilizando la misma filosofía –LSQ –Banco de Registros –Trace Cache Objetivo: encontrar heurísticas que permitan: –Información obtenida del ejecutable –Información obtenida en tiempo de compilación –Profiling Determinar la demanda de los diferentes componentes para guiar la adaptación

UCMUCM 60 for(j=0;j<1000;j++) FORJ: for(i=0;i<1000;i++) FORI: OPERACIONES end Salta a FORI end Salta a FORJ INNER LOOP