Top Banner
ARQUITECTURAS ESPECIALIZADAS LEVO Por Orlando Alemán Ortiz
35

LEVO: A resource flow computer

Jun 13, 2015

Download

Technology

Orlando Alemán

Un análisis de la microarquitectura LEVO
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: LEVO: A resource flow computer

ARQUITECTURAS ESPECIALIZADAS

LEVO

Por Orlando Alemán Ortiz

Page 2: LEVO: A resource flow computer

Contenidos

Introducción [Ir]Funcionamiento [Ir]Benchmarks [Ir]Conclusiones [Ir]Referencias [Ir]

Page 3: LEVO: A resource flow computer

Introducción

LEVO, A RESOURCE FLOW COMPUTER

Page 4: LEVO: A resource flow computer

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

Page 5: LEVO: A resource flow computer

Características

Independiente del repertorio de instruccionesUtiliza menos hardware y más simple que

otros métodos anterioresEscalable

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)

Page 6: LEVO: A resource flow computer

Características

Data forwardingFlujo 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

Page 7: LEVO: A resource flow computer

UNA VISIÓN GENERAL DE LEVO

Funcionamiento

Page 8: LEVO: A resource flow computer

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

Page 9: LEVO: A resource flow computer

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

Page 10: LEVO: A resource flow computer

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

Page 11: LEVO: A resource flow computer

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

Page 12: LEVO: A resource flow computer

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

Page 13: LEVO: A resource flow computer

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

Page 14: LEVO: A resource flow computer

Diagrama de Bloques de Alto-Nivel de una Active Station

La lógica de control básicamente representa el estado de la Active Station

Page 15: LEVO: A resource flow computer

Lógica de las Active Stations

La lógica que requieren las Active Stations es realmente sencilla

Page 16: LEVO: A resource flow computer

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

Page 17: LEVO: A resource flow computer

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

Page 18: LEVO: A resource flow computer

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

Page 19: LEVO: A resource flow computer

Vista ampliada (esquema 8-4-8 )

Los esquemas se describen con la notación (SG/Column – AS/SG - #Columns)

Page 20: LEVO: A resource flow computer

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

Page 21: LEVO: A resource flow computer

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

Page 22: LEVO: A resource flow computer

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

Page 23: LEVO: A resource flow computer

Analogía con el pipeline clásico

Por hacer una analogía con las máquinas tradicionales, el pipeline sería algo así:1.FETCH: Búsqueda de instrucciones2.DISPATCH: Se carga el buffer de instrucciones (última columna) 3.ISSUE: Los operandos son enviados a un elemento de proceso (PE)4.EXECUTE: PE realiza la operación apropiada5.WRITEBACK: Se almacenan los datos a memoria

Page 24: LEVO: A resource flow computer

A DONDE NOS LLEVA

Benchmarks

Page 25: LEVO: A resource flow computer

Máquina base

Parámetros utilizados tanto en la máquina base como en la máquina Levo

Page 26: LEVO: A resource flow computer

Máquina Levo

Parámetros adicionales para la máquina Levo usados en la simulación

Page 27: LEVO: A resource flow computer

BenchmarksComparació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)

Page 28: LEVO: A resource flow computer

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%

Page 29: LEVO: A resource flow computer

ALGUNOS COMENTARIOS

Conclusiones

Page 30: LEVO: A resource flow computer

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

Page 31: LEVO: A resource flow computer

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.

Page 32: LEVO: A resource flow computer

DOCUMENTACIÓN UTILIZADA Y ADICIONAL

Referencias

Page 33: LEVO: A resource flow computer

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

Page 34: LEVO: A resource flow computer

Referencias

“Exploring Instruction Level Parallelism Using Resource Flow Execution”. Dissertation by David Morano. Northeastern University. May 2007.

Page 35: LEVO: A resource flow computer

FIN