LEVO: A resource flow computer

  • 320 views
Uploaded on

Un análisis de la microarquitectura LEVO

Un análisis de la microarquitectura LEVO

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
320
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • No se necesitaría cambiar el código ya existente (ya sea para aplicar técnicas de especulación o para adaptarse a la nueva arquitectura.
  • Independiente del repertorio de instrucciones  Evita recompilar y la aplicación de complicadas técnicas de optimización software El coste de las máquinas existentes crece típicamente con el cuadrado del número de elementos de proceso. Pero aquí no es necesario aumentar el número de buses al aumentar el número de AS
  • Las
  • Las instrucciones sólo se re-ejecutan si el nuevo valor del operando es distinto del valor actual. Es una predicción basada en el último valor generado
  • Ejecutar con los últimos valores supone también una forma de especulación AS son similares a las estaciones de reserva, pero con más funcionalidades. Diferencias: Los Timetags y las direcciones de registro ISA en lugar de renombrar direcciones.
  • The path ID value is used when dynamic multipath execution is done The instruction address and predicate information is used as part of the dynamic predication scheme used The additional execution state of an AS consists of information used to guide the AS through operand acquisition, the handling of requested operands by other ASes, determining when execution is possible or when re-executions are needed, and when commitment of this instruction is possible.
  • Todos los saltos deben ejecutarse concurrentemente, y las instrucciones después del dominio del salto (instrucciones entre el salto y el destino) deben ejecutarse independientemente del salto  Orden O(k), con k el número de instrucciones en la Ventana de Ejecución
  • Una entrada en la tabla de saltos tomados significa salto tomado
  • Múltiples ISSUES y EXECUTES pueden ocurrir concurrentemente y incluso para una misma instrucción
  • El mayor valor de IPC exhibido hasta la fecha está en torno a 7. Corresponde al Superpeculative Engine de Lipasti & Shen
  • both research and industry have pursued the "multicore" approach for future processor development due to its rather straightforward complexity (that is: not too much complexity, just put multiple existing cores on a single chip)

Transcript

  • 1. ARQUITECTURAS ESPECIALIZADAS LEVO Por Orlando Alemán Ortiz
  • 2. Contenidos
    • Introducción [ Ir ]
    • Funcionamiento [ Ir ]
    • Benchmarks [ Ir ]
    • Conclusiones [ Ir ]
    • Referencias [ Ir ]
  • 3. Introducción
    • LEVO, A RESOURCE FLOW COMPUTER
  • 4. LEVO
    • Microarquitectura de propósito general con alto nivel de IPC (>10)
      • Alto nivel de especulación
      • Gran cantidad de recursos para ejecución
      • Predicción por hardware
      • Ejecución disjunta (varios caminos en simultáneo)
    • Surgida de una colaboración entre la universidad de Rhode Island y la Northeastern
      • Augustus K. Uht, David Morano, Alireza Khalafi
  • 5. Características
    • Independiente del repertorio de instrucciones
    • Utiliza menos hardware y más simple que otros métodos anteriores
    • Escalable
      • El coste del hardware crece linealmente con el número de elementos de proceso
    • Alto nivel de paralelismo (ILP > 10)
    • No existe explícitamente un banco de registros
      • El tiempo de vida de los registros suele ser corto (≈ 1 ó 2 Bloques Básicos)
  • 6. Características
    • Data forwarding
    • Flujo guiado por los recursos
      • Ejecutar cualquier instrucción sin tener en cuenta la presencia de sus operandos y luego aplicar las restricciones programáticas para obtener el resultado correcto
    • En Levo se especula con las dependencias de datos y de control. Se ejecutan muchas más instrucciones, ya que se re-ejecutan aquéllas que resulten fallidas
      • No se espera, por lo que se reduce el retardo debido a las dependencias
  • 7.
    • UNA VISIÓN GENERAL DE LEVO
    Funcionamiento
  • 8. Visión de Alto-Nivel de una Resource Flow Microarchitecture.
    • La Ventana de Ejecución es el elemento clave
    • Como se puede observar, la mayor parte de los componentes son idénticos a los de otras microarquitecturas convencionales
    • La excepción está en la Ventana de Ejecución
  • 9. Búsqueda de Instrucciones
    • En cada ciclo de reloj se van a buscar varias líneas a la i-cache.
    • La búsqueda de instrucciones y su ejecución está guiada por estadísticas  Predicción
    • Las instrucciones se decodifican nada más llegar y se almacenan en el Instruction Dispatch Buffer
      • Este buffer tiene la particularidad de que es capaz de capturar y servir varias instrucciones en simultáneo
  • 10. Diagrama lógico de Alto-Nivel
    • Cada columna contiene una secuencia de instrucciones
    • Cuando la columna 0 finaliza se produce un desplazamiento a la izquierda
    • Los datos se envían entonces a la L1 D-Cache y los valores de los registros se pasan a las columnas posteriores
  • 11. La Ventana de Ejecución
    • Para ser ejecutadas, las instrucciones se ensamblan en columnas (bloques de n instrucciones)
    • Una vez lanzadas a ejecución, las instrucciones se cargan en una Active Station, que será quien se encargue de su correcta ejecución
    • Los datos se traen, se pasan entre instrucciones o se almacenan mediante buses
    • Cada vez que los operandos cambian (como resultado de una instrucción más antigua) las instrucciones se re-ejecutan
  • 12. La Ventana de Ejecución
    • Cada instrucción en esta ventana tiene asociada un timetag dinámico
      • timetag = column address | row address
    • Se utiliza para preservar el orden de ejecución y de retirada de las instrucciones.
    • Cuando se retira una columna de la ventana de ejecución, se decrementa el timetag del resto (en 1 unidad)
    • Las instrucciones se retiran cuando todas las anteriores hayan finalizado y se hayan adelantado los resultados
  • 13. Active Stations
    • Una Active Station (AS) se encarga de
      • Cargar y guardar las instrucciones (1 cada vez)
      • Generar y modificar los timetags
      • Obtener los últimos valores de los operandos
      • Controlar que la instrucción se ejecute (o re-ejecute) para generar el valor deseado
      • Proporcionar el nuevo valor del registro o de la posición de memoria (a aquellas estaciones con mayor timetag )
      • Enviar valores a la cola de escritura en memoria (WQI) al finalizar
      • Detectar la finalización de la instrucción
  • 14. Diagrama de Bloques de Alto-Nivel de una Active Station
    • La lógica de control básicamente representa el estado de la Active Station
  • 15. Lógica de las Active Stations
    • La lógica que requieren las Active Stations es realmente sencilla
  • 16. Elementos de proceso y Sharing Groups
    • Los elementos de proceso (EP) son básicamente unidades funcionales generales
      • Se utilizan para cálculo de datos, de direcciones, etc.
    • Los elementos de proceso se comparten entre varias Active Stations formando un Sharing Group
    • La conexión entre AS y EP se realiza mediante buses unidireccionales
  • 17. Buses de intercambio de datos
    • Sirven para pasar los valores de los registros, predicados y posiciones de memoria entre columnas
      • Identificador: timetag + path-ID
    • Son buses particionados en segmentos y separados por Forwarding Units (FU)  ESCALABILIDAD
    • Un ciclo de penalización por cada segmento atravesado
    • Buses:
      • Forwarding: Adelanto del resultado
      • Backwarding: Obtención de un valor más antiguo
    • En la práctica se usan buses bidireccionales
  • 18. Buses de Adelantamiento en una Ventana de Ejecución Genérica
    • No existe un banco central de registros. Se utilizan registros distribuidos de adelantamiento (FU)
    • No hay un buffer de reordenamiento (ROR)
    • Es probable que hayan múltiples instrucciones ejecutándose en el mismo ciclo, por lo que habrán también múltiples buses por segmento
  • 19. Vista ampliada (esquema 8-4-8 )
    • Los esquemas se describen con la notación (SG/Column – AS/SG - #Columns)
  • 20. Saltos
    • Hay más de un camino de ejecución: el principal (ML) y los alternativos (DEE)
    • El camino principal tiene una prioridad mayor para disponer de los recursos
      • El código más probable irá por el camino principal
    • Ante un salto, se ejecutan las dos alternativas. La más probable (según la predictor de saltos) ocupará el camino principal
      • Se reduce la penalización por fallos de predicción
  • 21. Saltos
    • Cada salto en la Ventana de Ejecución genera un predicado, que se guarda en la Active Station
    • Para las instrucciones de salto, su Active Station mantiene:
      • Un predicado
      • Una Tabla de Saltos Tomados
        • PREDICCIÓN del resultado del predicado
        • Cada entrada consiste en un bit de validez y un timetag
    • Cuando se hace la predicción, se envía el predicado y el timetag a las demás AS
      • Una vez se resuelva el predicado, se notifica el resultado
  • 22. Disjoint Eager Execution (DEE)
    • Cada columna se compone de dos o más subcolumnas: los caminos
    • Los caminos predicho (M) y disjunto (D) se ejecutan en simultáneo
  • 23. Analogía con el pipeline clásico
    • Por hacer una analogía con las máquinas tradicionales, el pipeline sería algo así:
    • FETCH: Búsqueda de instrucciones
    • DISPATCH: Se carga el buffer de instrucciones (última columna)
    • ISSUE: Los operandos son enviados a un elemento de proceso (PE)
    • EXECUTE: PE realiza la operación apropiada
    • WRITEBACK: Se almacenan los datos a memoria
  • 24.
    • A DONDE NOS LLEVA
    Benchmarks
  • 25. Máquina base
    • Parámetros utilizados tanto en la máquina base como en la máquina Levo
  • 26. Máquina Levo
    • Parámetros adicionales para la máquina Levo usados en la simulación
  • 27. Benchmarks
    • Comparación entre una máquina superescalar convencional y una máquina Levo
    • La primera figura representa resultados para varios benchmarks
    • La segunda, muestra la media armónica de los rendimientos exhibidos para varias geometrías
    • Recordemos: (SG/Column – AS/SG - #Columns)
  • 28. Otros números
    • Levo aumenta ligeramente el tiempo de ciclo, pero el IPC posible es mucho mayor (>10)
      • El mayor valor de IPC exhibido hasta la fecha está en torno a 7. Corresponde al Superpeculative Engine de Lipasti & Shen
    • Aplicar DEE supone un impacto en el coste:
      • Ligeramente más caro: +10 %
      • Mejora importante en el rendimiento: +45%
  • 29.
    • ALGUNOS COMENTARIOS
    Conclusiones
  • 30. Conclusiones
    • Levo reúne nuevas técnicas para posibilitar la escalabilidad manteniendo el tiempo de ciclo bajo
    • Aplicar este diseño incrementa ligeramente el tiempo de ciclo, pero pese a ello la mejora de rendimiento es atractiva
    • La predicción y evaluación de los saltos en hardware facilita la reutilización del código existente
    • Time-Tags, Active Stations, Buses Segmentados & Resource Flow Execution son técnicas ganadoras
  • 31. Comentario
    • La tendencia actual de la industria es integrar múltiples núcleos en un mismo chip
      • No tiene sentido cambiar de enfoque o aumentar aún más la complejidad sin mejorar considerablemente el rendimiento
    • ¿Tiene sentido Levo?
      • Sólo cuando el nivel de frustración al intentar romper un programa en hilos sea tan alto como para pensar en aumentar el nivel de rendimiento de un hilo individual.
  • 32.
    • DOCUMENTACIÓN UTILIZADA Y ADICIONAL
    Referencias
  • 33. Referencias
    • “ The Levo High ILP Machine Project” URL: http://www.ele.uri.edu/~uht/research/levo/levo.html
    • “ Levo: A Scalable Processor With High IPC” Augustus K. Uht, David Morano, Alireza Khalafi, David Kaeli. Journal of Instruction Level Parallelism, Volume 5, August 2003 URL: http://www.jilp.org/vol5/v5paper10.pdf
    • “ Levo: A Resource-Flow Computer” Augustus K. Uht, David Morano, Alireza Khalafi, Marcos de Alba, David Kaeli. University of Rhode Island. August 2003.
    • "Speculative Execution in High Performance Computer Architectures” D.R.Kaili and P.Yew. Chapman & Hall/CRC Press. ISBN-10 1584884479
  • 34. Referencias
    • “ Exploring Instruction Level Parallelism Using Resource Flow Execution”. Dissertation by David Morano. Northeastern University. May 2007.
  • 35. FIN