23 research outputs found

    Hardware schemes for early register release

    Get PDF
    Register files are becoming one of the critical components of current out-of-order processors in terms of delay and power consumption, since their potential to exploit instruction-level parallelism is quite related to the size and number of ports of the register file. In conventional register renaming schemes, register releasing is conservatively done only after the instruction that redefines the same register is committed. Instead, we propose a scheme that releases registers as soon as the processor knows that there will be no further use of them. We present two early releasing hardware implementations with different performance/complexity trade-offs. Detailed cycle-level simulations show either a significant speedup for a given register file size, or a reduction in register file size for a given performance level.Peer ReviewedPostprint (published version

    Aplicación del método SERT para analizar la eficiencia energética del computador al variar voltaje y frecuencia del procesador

    Get PDF
    El acelerado proceso de digitalización que esta teniendo lugar a nivel global ha llevado a un creciente interés en la optimización de la eficiencia energética de los sistemas informáticos. Esto plantea el complejo reto de cuantificar dicha eficiencia. Es por ello que en los últimos años se han dado grandes pasos en el desarrollo de benchmarks capaces de puntuar un sistema informático en base a su eficiencia energética cuando es sometido a una carga de trabajo típica.La suite SERT de la cooperativa SPEC una de las herramientas más reconocidas, hasta el punto de ser recientemente adoptada por la agencia de protección medioambiental de Estados Unidos (EPA) para el programa Energy Star de certificación energética de servidores (Version 3.0, ENERGY STAR Computer Server Specification, junio 2019).En este trabajo se realiza un estudio experimental de eficiencia energética en una plataforma Skylake-X de Intel, experimentando con el procesador i7 7800X sobre la placa ASUS Rampage VI Extreme Omega, seleccionada por su facilidad de cambio de frecuencias y tensiones de alimentación. En primer lugar se han realizado pruebas de estabilidad de sistema, seguidas de una caracterización de la potencia consumida por el procesador al variar tensión de alimentación, frecuencia y temperatura. Se ha puesto un gran interés en la temperatura, ya que se trata de una variable difícil de controlar e infravalorada en otros estudios experimentales. Se han comentado en detalle los resultados, así como las anomalías con respecto a los modelos teóricos de consumo en tecnología CMOS. Además se han propuesto explicaciones, tanto físicas como microarquitectónicas, para dichas anomalías.Posteriormente se ha realizado un análisis de la eficiencia energética de la plataforma mediante la SERT Suite haciendo uso un conjunto de diferentes combinaciones de tensión de alimentación y frecuencia, entre las cuales se encuentra la frecuencia de fábrica del procesador, así como configuraciones que hacen uso de overclocking y undervolting. De esta manera, se comentan los resultados en cuanto a las configuraciones más óptimas, hablando en un principio de la mejor configuración para un uso equilibrado entre CPU, memoria y almacenamiento, seguido de las configuraciones óptimas para cargas de trabajo centradas en cada uno de los tres componentes mencionados.Finalmente se propone una metodología alternativa para medir la eficiencia centrada en una carga de trabajo de CPU mucho más intensa que la impuesta por la SERT Suite. Se aporta también un análisis mediante el uso de este método sobre el mismo conjunto de configuraciones usadas al aplicar el método SERT, buscando la mayor eficiencia energética bajo una carga de trabajo realmente intensa en términos de CPU.<br /

    Filtering directory lookups in CMPs

    Get PDF
    Coherence protocols consume an important fraction of power to determine which coherence action should take place. In this paper we focus on CMPs with a shared cache and a directory-based coherence protocol implemented as a duplicate of local caches tags. We observe that a big fraction of directory lookups produce a miss since the block looked up is not cached in any local cache. We propose to add a filter before the directory lookup in order to reduce the number of lookups to this structure. The filter identifies whether the current block was last accessed as a data or as an instruction. With this information, looking up the whole directory can be avoided for most accesses. We evaluate the filter in a CMP with 8 in-order processors with 4 threads each and a memory hierarchy with a shared L2 cache.We show that a filter with a size of 3% of the tag array of the shared cache can avoid more than 70% of all comparisons performed by directory lookups with a performance loss of just 0.2% for SPLASH2 and 1.5% for Specweb2005. On average, the number of 15-bit comparisons avoided per cycle is 54 out of 77 for SPLASH2 and 29 out of 41 for Specweb2005. In both cases, the filter requires less than one read of 1 bit per cycle.Postprint (published version

    Late allocation and early release of physical registers

    Get PDF
    The register file is one of the critical components of current processors in terms of access time and power consumption. Among other things, the potential to exploit instruction-level parallelism is closely related to the size and number of ports of the register file. In conventional register renaming schemes, both register allocation and releasing are conservatively done, the former at the rename stage, before registers are loaded with values, and the latter at the commit stage of the instruction redefining the same register, once registers are not used any more. We introduce VP-LAER, a renaming scheme that allocates registers later and releases them earlier than conventional schemes. Specifically, physical registers are allocated at the end of the execution stage and released as soon as the processor realizes that there will be no further use of them. VP-LAER enhances register utilization, that is, the fraction of allocated registers having a value to be read in the future. Detailed cycle-level simulations show either a significant speedup for a given register file size or a reduction in the register file size for a given performance level, especially for floating-point codes, where the register file pressure is usually high.Peer ReviewedPostprint (published version

    Una aproximación a la optimización de algoritmos mediante el uso de minimización de funciones booleanas

    Get PDF
    Este proyecto explora la posibilidad de optimizar algoritmos utilizando técnicas de minimización de funciones booleanas. La idea de partida es que expresar un programa a muy bajo nivel permitirá localizar y eliminar redundancia. Para ello se trabaja con operaciones bit a bit de lógica booleana. Usamos únicamente la función NAND para expresar cualquier otra función gracias a su propiedad de completitud funcional. Expresar un algoritmo de esta forma nos permite, por un lado, tener una medida del coste del algoritmo en funciones NAND y, por otro, paralelizarlo. Mediante minimización, se puede optimizar un circuito lógico equivalente a un fragmento de código secuencial, que no tenga bucles ni recursividad. Para ello se ha desarrollado una técnica propia de minimización rápida. Se han desarrollado técnicas para este proyecto que permiten aplicar la minimización a algoritmos recursivos. De este modo se eliminan, por ejemplo, operaciones repetidas en diferentes iteraciones de un bucle. Para llevar a cabo este trabajo se ha desarrollado una notación propia, parecida a un lenguaje ensamblador, que permite trabajar con funciones lógicas y recursividad. Se ha creado una base de datos dónde se definen las funciones recursivas, que pueden representar desde una puerta lógica hasta un algoritmo como el de la suma. Se han implementado los métodos de optimización de estas funciones recursivas y un método de evaluación, mediante el que se ejecutan para comprobar que son correctas. También se han implementado una serie de utilidades para, por ejemplo, traducir entre diferentes notaciones. Finalmente se han comparado los resultados con el algoritmo sin optimizar y con la solución que nos ofrecerían otras herramientas

    Light NUCA: a proposal for bridging the inter-cache latency gap

    Get PDF
    To deal with the “memory wall” problem, microprocessors include large secondary on-chip caches. But as these caches enlarge, they originate a new latency gap between them and fast L1 caches (inter-cache latency gap). Recently, Non-Uniform Cache Architectures (NUCAs) have been proposed to sustain the size growth trend of secondary caches that is threatened by wire-delay problems. NUCAs are size-oriented, and they were not conceived to close the inter-cache latency gap. To tackle this problem, we propose Light NUCAs (L-NUCAs) leveraging on-chip wire density to interconnect small tiles through specialized networks, which convey packets with distributed and dynamic routing. Our design reduces the tile delay (cache access plus one-hop routing) to a single processor cycle and places cache lines at a finer-granularity than conventional caches reducing cache latency. Our evaluations show that in general, L-NUCA improves simultaneously performance, energy, and area when integrated into both conventional or D-NUCA hierarchies.Postprint (author’s final draft

    Herramienta software para la enseñanza del paralelismo a nivel de instrucciones (ILP)

    Get PDF
    Resumen—La arquitectura de computadores es una asignatura de gran importancia en las titulaciones de Informática. Debido a la dificultad de poder acceder directamente a los componentes internos de un procesador, es común en la enseñanza hacer uso de una o varias herramientas software que simulen el comportamiento interno del mismo. Sin embargo, suelen ser herramientas limitadas u obsoletas. Esto provoca una gran dificultad a la hora de transmitir los conocimientos en este tipo de asignaturas. Este caso se puede aplicar directamente al paralelismo a nivel de instrucciones (ILP), que precisa poder visualizar el comportamiento a nivel interno del camino de datos del procesador. Para ello, en este trabajo se presenta una herramienta software desarrollada íntegramente a medida para la enseñanza de arquitectura de computadores, que permite la visualización detallada del pipeline del procesador, permitiendo modificaciones sobre su ejecución y aplicar optimizaciones en tiempo de ejecución para poder obtener medidas de rendimiento. Seguidamente, tras tres años de uso en docencia, se presenta un estudio sobre la bondad del uso de la herramienta atendiendo a la evolución de las calificaciones y a encuestas realizadas sobre el alumnado.TEP-108: Robótica y Tecnología de Computadores de la Universidad de Sevill

    Microarchitectural support for speculative register renaming

    Get PDF
    This paper proposes and evaluates a new microarchitecture for out-of-order processors that supports speculative renaming. We call speculative renaming to the speculative omission of physical register allocation along with the speculative early release of physical registers. These renaming policies may cause a register operand not to be kept in the physical register file (PRF). Thus, we add a low-ported auxiliary register file (XRF) located outside the processor core that keeps the values absent in PRF and supplies them at higher latency. To support the location of register operands being either in PRF or XRF, we use virtual registers. We consider omission and release policies directed by hardware prediction. Namely, we use a single last-use predictor that directs both speculative omission and release. We call this mechanism SR-LUP (speculative renaming based on last-use prediction). Two last-use predictor designs of incremental complexity and performance are analyzed. In a 256-ROB, 8-way processor with an 80int+80fp PRF, SR-LUP with an 11-port 256int+256fp XRF, speeds up computations up to 11.5% and 29% for INT and FP SPEC2K benchmarks, respectively. For FP benchmarks, if the PRF limits the clock frequency, a conventionally managed 128int+128fp PRF can be replaced using SR-LUP by a 64int+64fp PRF backed up with a 10-port 224int+224fp XRF, showing 19% IPS gain.Peer ReviewedPostprint (published version

    Microarchitectural support for speculative register renaming

    No full text
    This paper proposes and evaluates a new microarchitecture for out-of-order processors that supports speculative renaming. We call speculative renaming to the speculative omission of physical register allocation along with the speculative early release of physical registers. These renaming policies may cause a register operand not to be kept in the physical register file (PRF). Thus, we add a low-ported auxiliary register file (XRF) located outside the processor core that keeps the values absent in PRF and supplies them at higher latency. To support the location of register operands being either in PRF or XRF, we use virtual registers. We consider omission and release policies directed by hardware prediction. Namely, we use a single last-use predictor that directs both speculative omission and release. We call this mechanism SR-LUP (speculative renaming based on last-use prediction). Two last-use predictor designs of incremental complexity and performance are analyzed. In a 256-ROB, 8-way processor with an 80int+80fp PRF, SR-LUP with an 11-port 256int+256fp XRF, speeds up computations up to 11.5% and 29% for INT and FP SPEC2K benchmarks, respectively. For FP benchmarks, if the PRF limits the clock frequency, a conventionally managed 128int+128fp PRF can be replaced using SR-LUP by a 64int+64fp PRF backed up with a 10-port 224int+224fp XRF, showing 19% IPS gain.Peer Reviewe

    Filtering directory lookups in CMPs

    No full text
    Coherence protocols consume an important fraction of power to determine which coherence action should take place. In this paper we focus on CMPs with a shared cache and a directory-based coherence protocol implemented as a duplicate of local caches tags. We observe that a big fraction of directory lookups produce a miss since the block looked up is not cached in any local cache. We propose to add a filter before the directory lookup in order to reduce the number of lookups to this structure. The filter identifies whether the current block was last accessed as a data or as an instruction. With this information, looking up the whole directory can be avoided for most accesses. We evaluate the filter in a CMP with 8 in-order processors with 4 threads each and a memory hierarchy with a shared L2 cache.We show that a filter with a size of 3% of the tag array of the shared cache can avoid more than 70% of all comparisons performed by directory lookups with a performance loss of just 0.2% for SPLASH2 and 1.5% for Specweb2005. On average, the number of 15-bit comparisons avoided per cycle is 54 out of 77 for SPLASH2 and 29 out of 41 for Specweb2005. In both cases, the filter requires less than one read of 1 bit per cycle
    corecore