6 research outputs found

    Fuzzy memoization for floating-point multimedia applications

    Get PDF
    Instruction memoization is a promising technique to reduce the power consumption and increase the performance of future low-end/mobile multimedia systems. Power and performance efficiency can be improved by reusing instances of an already executed operation. Unfortunately, this technique may not always be worth the effort due to the power consumption and area impact of the tables required to leverage an adequate level of reuse. In this paper, we introduce and evaluate a novel way of understanding multimedia floating-point operations based on the fuzzy computation paradigm: performance and power consumption can be improved at the cost of small precision losses in computation. By exploiting this implicit characteristic of multimedia applications, we propose a new technique called tolerant memoization. This technique expands the capabilities of classic memoization by associating entries with similar inputs to the same output. We evaluate this new technique by measuring the effect of tolerant memoization for floating-point operations in a low-power multimedia processor and discuss the trade-offs between performance and quality of the media outputs. We report energy improvements of 12 percent for a set of key multimedia applications with small LUT of 6 Kbytes, compared to 3 percent obtained using previously proposed techniques.Peer ReviewedPostprint (published version

    Energy savings techniques in out-of-order pipeline through value approximation of instructions with data dependencies

    Get PDF
    Approximate computing has emerged as one of the areas studied over the past few years to improve the performance and energy consumption computers. Approximate computing tolerates imprecision during computation, and it produces data values that are close to the actual outputs obtained from exact computation. From software to circuit level, approximate computing techniques have been applied across all computing domains. This study was carried out on microarchitectural level, where dependencies between two instructions are relaxed in the scheduling unit. This research proposed a technique that allows dependent instructions to execute without waiting for values produced by their producer instructions. This process enabled schedulers to skip certain pipeline processes such operand rename lookup, and instruction wake-up in the instruction scheduler queue to provide additional energy savings. The results of this work revealed an average performance acceleration of 1.25x. In addition, the total of energy savings was achieved at 4.6% for approximation cases that produced tolerable error at the output

    Fuzzy Memoization for Floating-Point Multimedia Applications

    Get PDF
    Abstract-Instruction memoization is a promising technique to reduce the power consumption and increase the performance of future low-end/mobile multimedia systems. Power and performance efficiency can be improved by reusing instances of an already executed operation. Unfortunately, this technique may not always be worth the effort due to the power consumption and area impact of the tables required to leverage an adequate level of reuse. In this paper, we introduce and evaluate a novel way of understanding multimedia floating-point operations based on the fuzzy computation paradigm: Performance and power consumption can be improved at the cost of small precision losses in computation. By exploiting this implicit characteristic of multimedia applications, we propose a new technique called tolerant memoization. This technique expands the capabilities of classic memoization by associating entries with similar inputs to the same output. We evaluate this new technique by measuring the effect of tolerant memoization for floating-point operations in a low-power multimedia processor and discuss the trade-offs between performance and quality of the media outputs. We report energy improvements of 12 percent for a set of key multimedia applications with small LUT of 6 Kbytes, compared to 3 percent obtained using previously proposed techniques. Index Terms-Low-power design, special-purpose and application-based systems, real-time and embedded systems

    Low power data processing by elimination of redundant computations

    No full text

    Computación difusa

    Get PDF
    Esta tesis se enmarca en el ámbito de las técnicas de mejora de la eficiencia de ejecución (disminución del consumo y aumento de la velocidad) en el diseño de procesadores orientados a la ejecución de aplicaciones multimedia. En los últimos años la proliferación de los sistemas de baja potencia (móviles, PDAs, etc.) ha generado una enorme demanda de capacidad de cálculo en estos dispositivos. Estos sistemas han de enfrentarse al difícil reto de mejorar sus prestaciones manteniendo limitado su consumo.Se puede ver claramente que la evolución seguida por las arquitecturas de bajo consumo se aparta de la tendencia marcada años atrás por los procesadores de alto rendimiento. En el segmento de alta velocidad los aumentos significativos del rendimiento se han obtenido habitualmente a cambio de ejecutar más instrucciones por unidad de tiempo, muchas de ellas de forma especulativa.En esta tesis se propone un novedoso sistema de cálculo para contenidos multimedia: el cálculo difuso. Este sistema permite aprovechar, por un lado, la redundancia de los contenidos multimedia y, por otro, la tolerancia respecto a los errores exhibida por los destinatarios de los contenidos (los sentidos humanos) para obtener grandes ahorros de tiempo y energía en el procesado.Para conseguir estos objetivos, el cálculo difuso se basa en un principio muy simple: para obtener un resultado correcto para una operación no es necesario realizar un cálculo exacto. O dicho de otro modo, no importa cometer errores si no hay nadie que pueda distinguirlos. Este principio, que aplicado a otros ámbitos (bases de datos, por ejemplo) puede parecer una aberración, cobra pleno sentido cuando se aplica a los contenidos multimedia. De hecho, hace muchos años que este principio se está empleando asiduamente, solo que a otro nivel: Los algoritmos de compresión más usuales (mp3 y jpeg por ejemplo) se basan en obtener resultados inexactos para lograr reducir la cantidad de información que es necesario almacenar o transmitir. En esta tesis proponemos hacer exactamente lo mismo pero para conseguir aumentar la velocidad de los procesadores y reducir la energí¬a que consumen.La implementación de un sistema de cálculo difuso se ha abordado desde dos perspectivas distintas: el cálculo difuso de instrucciones y el cálculo difuso de regiones. El cálculo difuso de instrucciones, como su mismo nombre indica, consiste en la substitución de una instrucción determinista (como una multiplicación) por otra instrucción que de lugar a un resultado aproximado. Esto se ha realizado, o bien mediante unidades funcionales que operan sobre un número menor de bits, o bien mediante un sistema de memorización tolerante.El cálculo difuso de regiones, por su parte, consiste en la substitución de un fragmento de código completo por un mecanismo hardware-software que es capaz de generar un resultado aproximado para las mismas entradas que el código original.Los resultados obtenidos muestran que las ideas propuestas en esta tesis dan lugar a importantes ahorros de energí¬a y tiempo en el procesado de contenidos multimedia sin modificar sustancialmente (es decir, de forma apreciable) la salida de dicho procesado. Se han obtenido ahorros del 15% en tiempo y del 25% en energía para un conjunto de programas multimedia con calidades de salida muy buenas.En resumen, a lo largo de la tesis se han realizado las siguientes aportaciones:- Se ha propuesto una nueva forma de procesar datos: el cálculo difuso}, que permite ahorrar tiempo y energía en el procesado de archivos multimedia.- Se han propuesto diferentes implementaciones de cálculo difuso: la memorización tolerante de regiones, la memorización tolerante de instrucciones y el uso de unidades funcionales reducidas. Todos ellos, sistemas que pueden integrarse en un procesador actual

    Microarchitectural Techniques to Exploit Repetitive Computations and Values

    Get PDF
    La dependencia de datos es una de las principales razones que limitan el rendimiento de los procesadores actuales. Algunos estudios han demostrado, que las aplicaciones no pueden alcanzar más de una decena de instrucciones por ciclo en un procesador ideal, con la simple limitación de las dependencias de datos. Esto sugiere que, desarrollar técnicas que eviten la serialización causada por ellas, son importantes para acelerar el paralelismo a nivel de instrucción y será crucial en los microprocesadores del futuro.Además, la innovación y las mejoras tecnológicas en el diseño de los procesadores de los últimos diez años han sobrepasado los avances en el diseño del sistema de memoria. Por lo tanto, la cada vez mas grande diferencia de velocidades de procesador y memoria, ha motivado que, los actuales procesadores de alto rendimiento se centren en las organizaciones cache para tolerar las altas latencias de memoria. Las memorias cache solventan en parte esta diferencia de velocidades, pero a cambio introducen un aumento de área del procesador, un incremento del consumo energético y una mayor demanda de ancho de banda de memoria, de manera que pueden llegar a limitar el rendimiento del procesador.En esta tesis se proponen diversas técnicas microarquitectónicas que pueden aplicarse en diversas partes del procesador, tanto para mejorar el sistema de memoria, como para acelerar la ejecución de instrucciones. Algunas de ellas intentan suavizar la diferencia de velocidades entre el procesador y el sistema de memoria, mientras que otras intentan aliviar la serialización causada por las dependencias de datos. La idea fundamental, tras todas las técnicas propuestas, consiste en aprovechar el alto porcentaje de repetición de los programas convencionales.Las instrucciones ejecutadas por los programas de hoy en día, tienden a ser repetitivas, en el sentido que, muchos de los datos consumidos y producidos por ellas son frecuentemente los mismos. Esta tesis denomina la repetición de cualquier valor fuente y destino como Repetición de Valores, mientras que la repetición de valores fuente y operación de la instrucción se distingue como Repetición de Computaciones. De manera particular, las técnicas propuestas para mejorar el sistema de memoria se basan en explotar la repetición de valores producida por las instrucciones de almacenamiento, mientras que las técnicas propuestas para acelerar la ejecución de instrucciones, aprovechan la repetición de computaciones producida por todas las instrucciones.Data dependences are some of the most important hurdles that limit the performance of current microprocessors. Some studies have shown that some applications cannot achieve more than a few tens of instructions per cycle in an ideal processor with the sole limitation of data dependences. This suggests that techniques for avoiding the serialization caused by them are important for boosting the instruction-level parallelism and will be crucial for future microprocessors. Moreover, innovation and technological improvements in processor design have outpaced advances in memory design in the last ten years. Therefore, the increasing gap between processor and memory speeds has motivated that current high performance processors focus on cache memory organizations to tolerate growing memory latencies. Caches attempt to bridge this gap but do so at the expense of large amounts of die area, increment of the energy consumption and higher demand of memory bandwidth that can be progressively a greater limit to high performance.We propose several microarchitectural techniques that can be applied to various parts of current microprocessor designs to improve the memory system and to boost the execution of instructions. Some techniques attempt to ease the gap between processor and memory speeds, while the others attempt to alleviate the serialization caused by data dependences. The underlying aim behind all the proposed microarchitectural techniques is to exploit the repetitive behaviour in conventional programs. Instructions executed by real-world programs tend to be repetitious, in the sense that most of the data consumed and produced by several dynamic instructions are often the same. We refer to the repetition of any source or result value as Value Repetition and the repetition of source values and operation as Computation Repetition. In particular, the techniques proposed for improving the memory system are based on exploiting the value repetition produced by store instructions, while the techniques proposed for boosting the execution of instructions are based on exploiting the computation repetition produced by all the instructions
    corecore