SPEC CPU y Caches en Chip: Evolución e Interacción

XIII JORNADAS DE PARALELISMO-LLEIDA , SEPTIEMBRE 2002 19 SPEC CPU y Caches en Chip: Evolución e Interacción Jesús Alastruey, Oscar Blasco, Pablo Ib

1 downloads 88 Views 70KB Size

Recommend Stories

Story Transcript

XIII JORNADAS DE PARALELISMO-LLEIDA , SEPTIEMBRE

2002

19

SPEC CPU y Caches en Chip: Evolución e Interacción Jesús Alastruey, Oscar Blasco, Pablo Ibáñez, José Luis Briz y Víctor Viñals. Resumen— Los recursos de la memoria cache en chip no han sido estudiados con una perspectiva evolutiva, a diferencia de otros parámetros tecnológicos. Por otra parte, es sabido que el rendimiento de la memoria cache en chip no depende únicamente de la tecnología, sino del software que ejecuta. Como las caches, el software también aumenta en tamaño y complejidad, y es de interés estudiar la relación entre ambas tendencias evolutivas. Este trabajo observa experimentalmente el comportamiento sobre la memoria de SPEC CPU 89, 92, 95 y 2000, analiza la evolución de las caches en chip en las principales familias de micros entre 1989 y 2001, y estudia la interacción entre SPEC CPU y las caches en chip de primer nivel y sus tendencias evolutivas. Palabras Clave— SPEC CPU, cache en chip, tendencias en tecnología y complejidad del software.

I. INTRODUCCIÓN

en un trabajo presentado en el 1975 en el IEEE International Electron Devices Meeting, afirmando que el número de transistores se duplicará cada 18 meses (59% anual, x2,5 cada dos años). Sus predicciones se han cumplido con toda precisión en el mercado de DRAM desde el año 1971 hasta hoy [11]. En la Tabla I se resumen datos de dos fuentes relativos al crecimiento en tecnología y prestaciones de micros [7][12]. Los aumentos en las escalas de integración en SRAM y en lógica son exponenciales, pero de pendientes ligeramente inferiores a los de DRAM. P. Gelsinger, considerando los micros de vanguardia1 de Intel desde el año 1971 determina que el crecimiento de los transistores en chip es de x2 cada 2 años [7]. El último informe de la SIA [12] prevé una desaceleración en estas mejoras en el horizonte 2002-07: crecimiento bianual x2 para DRAM y x1,6 para SRAM y lógica.

a evolución de los parámetros de las memoria cache L en chip (on-chip) a lo largo del tiempo difiere según familias y arquitecturas: así, por ejemplo, mientras Alpha

Tabla I. Crecimientos bianuales en integración y prestaciones para

y MIPS presentan un aumento gradual del tamaño de cache y asociatividad, HP-PA ha pasado de no incluir cache en chip a integrar recientemente Megabytes.

Intel, desde 4004 (71) hasta P4 (2000)

micros de vanguardia. Datos de Intel [7] y de SIA [12].

nº trst/chip en micros

En los procesadores CISC de la arquitectura IA-32 el crecimiento de las caches en chip ha sido más moderado. La reciente aparición del P4 con una cache de 256 KB de segundo nivel rompe esta tendencia. El crecimiento de los parámetros de las caches en chip no es el único factor que determina la evolución de su rendimiento. Las aplicaciones y sistemas operativos, al aumentar también de tamaño y complejidad pueden anular los beneficios de tal crecimiento. Si fijamos un microprocesador con sus caches en chip y lo sometemos al paso del tiempo, en unos pocos años los índices de rendimiento (como la tasa de fallos) pueden disminuir de forma significativa. Estas reflexiones nos llevan a una pregunta genérica que intentaremos responder en este trabajo: ¿Podemos cuantificar el crecimiento en complejidad y tamaño del software y correlacionarlo con el rendimiento de las sucesivas generaciones de cache en chip? Antes de presentar el núcleo del trabajo comentaremos las tendencias en tecnología relacionadas con las caches en chip y las tendencias en programación relacionadas con crecimientos en complejidad y presión sobre la memoria.

A. Tendencias en tecnología y prestaciones Gordon E. Moore revisa sus previsiones del año 1965 Financiado por el proyecto TIC98-0511-C02 de la CICYT. Dpto. Informática e Ingeniería de Sistemas. U. Zaragoza. c/ Mª de Luna 1, 50015 Zaragoza. e-mail: [email protected]

x2

x1,145 superficie x1,8 densidad

Intel, desde i486 (89) hasta P4 (2000)

Prestaciones

x2,4

x2,2 frecuencia

x1,7 tecnología x1,3 segmentación

x1,1 microarquitectura

SIA, 2002-07 x1,6

x 1,0 sup. x 1,6 dens.

SIA, 2002-07

x1,6 frecuencia

no disponible

Frec. bus < x1,6 Externo

De acuerdo con [7], la ganancia en prestaciones de la familia Intel en la última década es x2,4 cada 2 años. La mayor parte de este crecimiento es debido al incremento en frecuencia (x2,2 bianual). Para el período 2002-07, la SIA [12] anuncia también una deceleración de este parámetro (x1,6 cada 2 años). Por otra parte, [8] cuantifica la disminución del tiempo de acceso a DRAM: el tiempo de acceso a fila disminuye un 7% anual (x0,87 cada 2 años) y el tiempo de acceso a columna un 25% anual (x0.56 cada 2 años). A partir de estos datos y los de la Tabla I, puede calcularse la tendencia del desnivel entre velocidades o speed gap: factores bianuales de x1,90 para el acceso a fila y x1,24 en el acceso a columna. En [2] se calcula un crecimiento bastante más conservador, de x1,25 para el acceso a fila en micros CISC del período 1974-1993. 1

Lead microprocessors en el artículo citado. Aquellos que inauguran una nueva microarquitectura de características sustancialmente diferentes, tales como una segmentación mejorada y más profunda.

20

J. ALASTRUEY Y COL: SPEC CPU Y CACHES EN CHIP: EVOLUCIÓN Y RENDIMIENTO

B. Tendencias en aplicaciones Las aplicaciones y sistemas operativos también evolucionan a lo largo del tiempo, bien para aprovechar la evolución tecnológica, bien empujándola, o las dos cosas a la vez [11][5]. Por su parte, [8] cuantifica el crecimiento de la cantidad de memoria demandada por el programa medio y sus datos: un factor anual de x1,5 a x2. N. Myhrvold, estudiando la evolución del software de Microsoft entre los años 1975 y 1995 [9], observa que su tamaño y complejidad aumenta más rápido que el hardware: la Ley de Moore se queda corta para el software. Su Primera Ley del Software lo explica magníficamente: “El software es un gas. Se expande hasta ocupar completamente el volumen del hardware que lo contiene” En este trabajo estamos interesados en reflexionar sobre la relación entre cache en chip y software desde un punto de vista evolutivo y cuantitativo. La dificultad principal estriba en disponer de una serie temporal de programas de prueba que responda a la evolución del mercado y en la definición de métricas operativas de complejidad y tamaño. Nosotros vamos a estudiar SPEC CPU 89, 92, 95 y 2000, midiendo la evolución de varias métricas sencillas. Se afirma que estos programas ejercen una baja presión sobre las caches en comparación con aplicaciones comerciales o de supercomputación [6][3][10], por lo que las conclusiones no deben perder de vista este hecho. La interacción programa/cache también es difícil de cuantificar de forma sencilla. El rendimiento de las caches en chip depende en primer término de la tasa de fallos, pero otros parámetros pueden ser también críticos: ejecución en desorden, número de puertos, ancho de banda, prebúsqueda, número máximo de fallos pendientes, latencia, etc. Para simplificar vamos a considerar únicamente la evolución de la tasa de fallos. El resto del trabajo se estructura como sigue: en la siguiente sección presentamos la evolución de las caches en chip para las principales familias de micros RISC y CISC, y confeccionamos un dimensionado concreto para la cache típica de primer nivel en micros RISC. En la Sección III analizamos SPEC CPU 89, 92, 95 y 2000 compilado para SPARC, extrayendo varios índices de complejidad y tamaño. En la Sección IV observamos el rendimiento de las caches anteriores, cruzando generaciones de programas y de cache. En la Sección V presentamos las conclusiones del trabajo.

bilizado como dentro del chip En la Figura 1 puede observarse la evolución temporal del tamaño de la cache en las familias consideradas. El eje de abcisas indica el año de introducción al mercado; el eje de ordenadas mide tamaño de la cache en chip y millones de transistores que forman el chip completo (triángulos). La barra clara representa el tamaño del primer nivel (suma de cache de instrucciones y de datos) y la barra oscura el tamaño de la cache de segundo nivel (unificada, si existe). Tabla II. Familias de micros estudiadas

Familias

RISC

CISC

Alpha, MIPS, HP, Sparc, PowerPC

Intel, AMD

Las líneas siguen las aproximaciones exponenciales relacionadas con estas tres cantidades. El número añadido a cada línea es el factor de crecimiento bianual, obtenido de la recta de regresión del logaritmo de los datos (método de linealización de los datos [14]). En el resto del trabajo se sigue siempre este método. El segundo nivel de cache en chip aparece en contados casos, lo cual impide ver tendencias claras. Por tanto, en este trabajo nos centraremos en el primer nivel. Entre familias se observan diferencias significativas en cantidad y factor de crecimiento. PA y Alpha (aunque con distintas jerarquías) destacan por incluir en el chip las caches más grandes y por crecer con los mayores factores. La tendencia general más apreciable es el aumento simultáneo del tamaño de cache y del número de transistores. De hecho, los factores de crecimiento del número total de transistores y del tamaño total de cache en chip (niveles uno y dos) son muy parecidos o idénticos en todas las familias. Esto nos lleva a una conclusión importante: los diseñadores dedican una fracción prácticamente constante de recursos de chip a las caches. En la Tabla III se presentan los factores de crecimiento de las clases RISC y CISC, calculados agrupando todos los micros de la Figura 1 en una u otra clase. Se añade el comportamiento de la DRAM hasta el 2001 y la predicción de la SIA hasta el 2007 [14]. Tabla III. : Factores de crecimiento bianual del tamaño de cache en chip y de DRAM. L1 = primer nivel. L2 = segundo nivel.

Crecimientos bianuales

II. EVOLUCIÓN TEMPORAL DE LA CACHE EN CHIP En este apartado estudiamos la evolución temporal de la memoria cache en el chip. Vamos a identificar y comparar las tendencias de las arquitecturas RISC y CISC. Además, queremos determinar la cache típica de cada año, para luego medir su interacción con SPEC CPU. Se han seleccionado 31 micros de vanguardia (9 CISC y 22 RISC, ver Tabla II), entre los años 1989 y 2001, recopilándose tres parámetros para cada nivel de cache en chip: tamaño, tamaño de bloque y asociatividad. La bibliografía completa utilizada aparece en [1]. Como criterio de análisis, la cache en el package (caso del Intel Pentium Pro o Pentium II) no se ha conta-

Memoria

RISC

CISC

L1 Instr.

1,94

1,96

L1 Datos

2,14

1,27

L1 I + D

2,05

1,59

L1 + L2

2,43

1,76

DRAM, hasta el 2001

2,52 (x4 cada 3 años)

DRAM, 2001-2007 [12]

2

Lógica, 2001-2007 [12]

1,6

El crecimiento de los distintos tamaños de caches es mayor en las familias RISC que en las CISC, hechos más acusados para la cache de datos de primer nivel (L1

XIII JORNADAS DE PARALELISMO-LLEIDA , SEPTIEMBRE

2002

21

4096

x2,6

512 256 21164

x1,7

21264

128 64

x2,5

32 21064

16 8 4 2

1992

1994 Año de aparición

1997

PA 8600

PA 8500

1024

x2,5

512 256 128

PA 7300LC

64

x2,7

32 16 8 4 2

2001

1995 Año de aparición

512

1998

2000

256

128 UltraSPARC III

x1,8

64 32

UltraSPARC

UltraSPARC II

16

x1,8

8 4 2

1995 1996 Año de aparición

MIPS

128 R12000

R10000

64

x1,6

R4400 R8000

32 R4000

16

x1,8

8 4 2

1999

1992

512

1993

1994 1996 Año de aparición

1998

512 P4

7450 (G4+)

PowerPC

256

x1,8

Tamaño de la cache (KB) / Transistores x 10e6

256 Tamaño de la cache (KB) / Transistores x 10e6

2001

512

UltraSPARC Tamaño de la cache (KB) / Transistores x 10e6

Tamaño de la cache (KB) / Transistores x 10e6

PA

2048

1024

256

PA 8700

4096 21364

ALPHA

Tamaño de la cache (KB) / Transistores x 10e6

Tamaño de la cache (KB) / Transistores x 10e6

2048

128 740 (G3)

620

7400 (G4)

x1,3

64 604

32

x1,8

603

16 8 4 2

1993

1994 1995 Año de aparición

1997

1999

2001

Intel

128

x1,7 64 P3

32

P2 Pentium

16 486DX

Pentium Pro

x1,5

8 4

x1,7

2

1989

1993

1995 Año de aparición

1997

1999

2000

512

Tamaño de la cache (KB) / Transistores x 10e6

256

Leyenda

AMD

AMD K7-Athlon

128 AMD K6

64 32

AMD K5

Cache de segundo nivel en chip (L2)

x2,3

Número de transistores en el chip

16 8

Cache de primer nivel en chip (L1I + L1D)

Tendencias exponenciales: x2,3

Tamaño L1I + L1D

4

Tamaño L1 + L2

2

Número de transistores en el chip 1995 Año de aparición

1997

1999

Fig. 1. Evolución temporal del tamaño de la cache en chip y del número total de transistores en micros de vanguardia para las familias estudiadas. Nótese que hay dos escalas en los ejes de ordenadas: una para las familias Alpha y PA, y otra para el resto de familias.

Datos) y para el total de cache en chip (L1 + L2). El total de cache en chip (L1 + L2) para RISC ha crecido de forma similar a la DRAM (x2,4), mientras que en CISC lo ha hecho por debajo de la lógica (x1,8). Predecir el comportamiento futuro siguiendo las cautelas de la SIA relativas al crecimiento de la DRAM y de la lógica para el 2001-07, implica augurar un parón en el crecimiento. Sin embargo, como veremos en la Sección III y en la Sección IV, la presión del software parece empujar en sentido contrario.

Cache típica de primer nivel Para determinar en cada año los valores de los parámetros de una cache típica, hemos optado por el siguiente procedimiento: a cada micro se le ha dado una

vigencia de tres años: el año de aparición y los dos siguientes. A continuación hemos seleccionado en cada año la moda de cada parámetro (tamaño de cache, de bloque y asociatividad). En caso de duda se ha ponderado más el micro actual y menos el micro antiguo. Este procedimiento proporciona una estimación conservadora de tamaños y asociatividades. Por ejemplo, en el caso RISC los tamaños de la familia PA no han sido seleccionados nunca. Las tablas IV y V muestran el resultado de esta selección en base a los micros de la Figura 1. En el caso CISC no se ha incluido estimación para el bienio 00-01 por los pocos representantes disponibles. Una constante en toda época y familia es el tamaño de bloque: 32B. Sin embargo, a partir del 97 la cache de

J. ALASTRUEY Y COL: SPEC CPU Y CACHES EN CHIP: EVOLUCIÓN Y RENDIMIENTO

datos de algunas familias empieza a tener 64B (Alpha, AMD y MIPS). El aumento de asociatividad es gradual en los RISC, y es más brusco y va por delante en los CISC, estando al principio de la década en el grado 4. Tabla IV. Selección de caches en chip de primer nivel desde el año 1992. Micros RISC. Tamaño en KB, Bloque en Bytes.

Año 1992-93

Instrucciones

Datos

Tamaño Asoc Bloque

Tamaño Asoc Bloque

8

1

32

8

1

32

1994-95

16

1

32

16

1

32

1996-97

16

2

32

16

1

32

1998-99

32

2

32

32

2

32

2000-01

32

4

32

64

4

32

Tabla V. Selección de caches en chip de primer nivel desde el año 1992. Micros CISC. Tamaño en KB, Bloque en Bytes.

Año 1992

Instrucciones

Datos

Tamaño Asoc Bloque

Tamaño Asoc Bloque

8

4

32

(unificada)

1993-94

8

2

32

8

2

32

1995-96

8

4

32

8

2

32

1997

8

4

32

16

4

32

1998-99

16

4

32

16

4

32

La evolución del tamaño de la cache típica en micros RISC sigue una tendencia diferente a la de los CISC. La evolución de los RISC es muy gradual, en cambio, en los CISC hay un salto marcado en los años 96-97.

III. EVOLUCIÓN DE SPEC CPU En esta sección vamos a mostrar índices sencillos de complejidad para las cuatro generaciones de SPEC CPU ejecutándose en un micro RISC. Nos centramos en medidas dinámicas: número de instrucciones ejecutadas y volumen de los datos referenciados. En [1] se detallan también medidas estáticas y más datos sobre el entorno de compilación y ejecución. Para que la comparación sea limpia, hemos producido en todos los casos binarios optimizados de 32 bits (sin utilizar SPARC V9 de 64 bits para SPEC 2000). En la compilación se ha respetado el escenario temporal de cada generación. Por tanto, se ha utilizado la arquitectura SPARC V7 con SPEC89 y SPEC92, SPARC V8 con SPEC95 y SPARC V8+A con SPEC2000. Se han ejecutado todos los programas de todas las colecciones de principio a fin, utilizando todos los conjuntos de datos de entrada de referencia (ref en terminología SPEC). La única excepción ha sido el programa sc (SPECint 92), que no ha podido simularse. Las medidas se han obtenido con Shade, una herramienta de Sun Microsystems que genera dinámicamente trazas de la ejecución en modo usuario que son tratadas en directo por una aplicación de análisis o de simulación [4].

A. Número de instrucciones ejecutadas Como medida de complejidad adoptamos el número de instrucciones ejecutadas por cada colección. Para ello sumamos todas las instrucciones ejecutadas por todas las instancias de los programas (algunos se ejecutan n veces con n entradas diferentes). Añadimos al total de SPECint92 la media de instrucciones ejecutadas por programa para simular la aportación de sc. En la Figura 2 se presentan dichas medidas por separado para los programas enteros (línea con triángulos), para los de coma flotante (línea con cuadrados) y para la suma total (línea con círculos). También se incluyen las tendencias bianuales. En cada colección, los programas de coma flotante ejecutan un mayor número de instrucciones que los enteros. Sin embargo, en las últimas generaciones de SPEC se observa una tendencia a la igualación. Posiblemente esta tendencia sea objetivo de SPEC; por ejemplo, en SPECint 2000, 7 de sus 12 programas se ejecutan varias veces con diferentes entradas, mientras que en SPECfp 2000 sólo uno de los 14 programas repite. Asumiendo que la siguiente generación de SPEC siga los factores de crecimiento de la Figura 2, tanto SPECint 2004 como SPECfp 2004 ejecutarán en torno a 32 Tinstr. Los factores de crecimiento bianuales que aparecen en la Figura 2, están muy por encima de los crecimientos expuestos en las secciones anteriores. En particular, procede comparar el factor x2,8 de crecimiento de SPEC (int +fp), con el factor x2,4 de crecimiento de prestaciones mostrado en la Tabla I. Si las colecciones SPEC representan correctamente al mercado, podemos afirmar que la complejidad del software crece más que la potencia del hardware. Por el contrario, si el software va detrás de la oferta hardware, podemos concluir que el crecimiento de las colecciones SPEC está sobredimensionado. Pensamos que este es un punto importante, pero que su esclarecimiento precisa más información. 10

10 Instrucciones x 10e9

22

4

SPEC SPECfp SPECint

x2,8 x2,6 x3,1

3

tendencias bianuales 10

10

2

1

1989

1992

1995 SPEC

2000

Fig. 2. Instrucciones ejecutadas en las colecciones SPEC y tendencias.

B. Volumen de memoria referenciada En este apartado vamos a dar medidas sencillas y directas de localidad, contabilizando el volumen de posiciones de memoria visitadas por todas o por un cierto porcentaje de referencias. Para ello vamos a contabilizar el número de referencias que recibe cada bloque de 32B. La lista de todos los bloques referenciados forma el volumen total visitado. A

XIII JORNADAS DE PARALELISMO-LLEIDA , SEPTIEMBRE

2002

23

partir de la lista ordenada podemos construir un volumen parcial. Por ejemplo, el volumen del 50% de las referencias, se obtiene seleccionando el número mínimo de bloques que acumulan el 50% de las referencias. En las gráficas siguientes presentaremos los volúmenes del 50% y del 90%. Estos volúmenes no tienen valor predictivo, pero indican la presión ejercida sobre la jerarquía de memoria y orientan sobre las posibilidades de un determinado tamaño de cache. Para cada colección SPEC se ha calculado la media aritmética del volumen total y los parciales del 50 y 90%, distinguiendo entre las referencias a instrucciones (Figuras 3 y 4) y a datos (Figuras 5 y 6). En cada programa se ha hecho a su vez otra media aritmética si debe ejecutarse con varios conjuntos de entrada. Además cada gráfica incorpora la cache típica obtenida en la Sección II.A (línea de rombos). La línea del volumen total (círculos) se ha enriquecido con los volúmenes de cada programa para dar una medida de dispersión. En los volúmenes parciales se ha observado una tendencia similar y se omiten los puntos. 1024 512

Tocados 90% ref 50% ref Tamaño Cache

256 128

SPEC2000

64 Kbytes

0.14 32

SPEC92

0.94

0.44

0.28

1.75

1.09

8

SPEC95

4 2 1

SPECint

0.5 1989

1992

1995

SPEC 2000 merece mención aparte, pues aunque aumenta el número de referencias, los volúmenes parciales son relativamente muy pequeños. Esto posiblemente implica que en SPEC 2000 se ha buscado aumentar el número total de instrucciones ejecutadas a base de procesar grandes conjuntos de datos. B.2. Datos Los volúmenes totales son mucho más grandes y presentan un crecimiento exponencial bastante claro. SPECint crece desde 1 hasta algo menos de 64MB (factor x2,3) y SPECfp crece desde 2 hasta algo más de 64 MB (factor x2,1). El volumen del 50% para SPECint es pequeño (832KB) y crece lentamente (x 1,6). Es muy comparable a la cache tipo de primer nivel. El volumen del 50% para SPECfp es muy superior (128KB-8MB) y crece igual que el volumen total (x2,1). Es muy superior a las caches tipo de primer nivel, que deberán aumentarse o colaborar con un segundo nivel más grande para no perder prestaciones. En resumen, el volumen del 50% está por debajo del 1% de los bloques para SPECint y ronda el 6-10% para SPECfp, pero el volumen del 90% supone entre un medio y un cuarto de todos los bloques visitados, lo cual imposibilita su captura en el chip (estamos hablando de 16-32MB en año 2000).

16 1.72

trucción, lo que da una idea de la gran localidad de estas aplicaciones. Y entre el 4,7% y el 7,4% de los bloques de instrucciones generan el 90% de las búsquedas, lo cual supera la conocida regla del 10/90. El comportamiento de SPECfp es muy similar, pero con porcentajes de bloques referenciados un poco mayores.

262144

2000

Fig. 3. Bytes de instrucciones que acumulan el 50%, 90% y 100% de las referencias (SPECint) 1024 512

131072 65536

Tocados 90% ref 50% ref Tamaño Cache

32768 16384

Tocados 90% ref 50% ref Tamaño Cache

8192

SPECint

4096 2048 Kbytes

256 128

SPEC2000

128 0.003

Kbytes

512 256

SPEC2000

64

1024

32

SPEC92

0.24

0.59

64

0.24

0.77

SPEC92

32

16 0.93

6.7

0.60

1.6 7.2

16

9.3

4.6

1992

1995

8

8

2.4

4 4

SPEC95

1 0.5

SPEC95

2 1989

2

SPECfp 1989

2000

Fig. 5. Bytes de datos que acumulan el 50%, 90% y 100% de las referencias (SPECint). 1992

1995

2000

262144

Fig. 4. Bytes de instrucciones que acumulan el 50%, 90% y 100% de las referencias (SPECfp)

131072 65536

Tocados 90% ref 50% ref Tamaño Cache

32768 16384

B.1. Instrucciones

8192 4096 2048 Kbytes

No existe crecimiento en el volumen total. El volumen medio en SPECint está en la franja 128-256KB y en SPECfp ronda los 128KB.

1024 512

SPEC2000

256 128

El volumen del 50% es muy pequeño tanto para SPECint como para SPECfp: unos 2KB. El volumen del 90% es moderado: 16KB para SPECint (comparable o por debajo de la cache de instrucciones) y 8KB para SPECfp (siempre por debajo de la cache). En SPECint, entre el 0,6% y el 1,2% de los bloques de instrucciones generan el 50% de las búsquedas de ins-

8.0

64

SPEC92

32

2

5.1

16.7

9.0

1992

1995

8 4

4.4 10.6

16

SPECfp 1989

SPEC95 2000

Fig. 6. Bytes de datos que acumulan el 50%, 90% y 100% de las referencias (SPECfp).

24

J. ALASTRUEY Y COL: SPEC CPU Y CACHES EN CHIP: EVOLUCIÓN Y RENDIMIENTO

IV. SPEC CPU Y CACHE EN CHIP

V. CONCLUSIONES

Hasta ahora se han visto por separado las tendencias tecnológicas relativas a cache en chip y las tendencias de SPEC CPU en número de instrucciones y en presión a la jerarquía de memoria. En esta Sección vamos a ver la interacción entre la cache tipo definida en la Sección II.A y las diferentes generaciones de SPEC CPU.

La contribución de este trabajo ha sido la observación experimental de: i) la evolución de la complejidad y la presión sobre la memoria en SPEC CPU, ii) la evolución de las caches en chip y, iii) la interacción entre la cache de primer nivel y SPEC CPU. Podemos destacar los siguientes hechos en el período analizado (1989-2001):

Para ello se ha simulado la cache típica de cada año con la generación de SPEC CPU vigente en ese año, realizando medias aritméticas entre todos lo programas (y otra media previa si el programa tiene varios conjuntos de entrada). Se ha utilizado SPEC92 desde 1992 hasta 1995, ambos inclusive, SPEC95 desde 1995 hasta 2000, y SPEC2000 para los años 2000 y 2001. Las tasas de fallos de instrucciones y datos están representadas en la Figura 7. Los mismos datos están colocados numéricamente cerca de la línea de cache tipo (rombos) en las cuatro últimas figuras de la Sección anterior.



La fracción de recursos del chip dedicados a cache es constante.



El crecimiento de la cache en chip ha sido próximo al de la DRAM para RISC (x2,4)1, y por debajo al de la lógica para CISC (x1,8).



La complejidad de SPEC CPU medida en número de instrucciones ejecutadas crece en un factor x2,8, por encima de la ley de Moore (x2,5).



El volumen de instrucciones referenciadas se mantiene prácticamente constante en todo SPEC CPU y es muy pequeño.



El volumen total de referencias a datos crece x2,3 en SPECint y x2,1 en SPECfp. Esto entra en clara contradicción con las hipótesis de otros autores [8], que cifran este crecimiento en un factor x2,6-x4.

Excluyendo la última muestra (año 2000-01, SPEC 2000) los fallos de la cache de datos disminuyen uniformemente con el tiempo (desde el 9,3% hasta el 1,6% para SPECint; desde el 16,7% hasta el 4,4% para SPECfp). Sin embargo, a pesar de la clara mejora cuantitativa en los parámetros de la cache 2000-01, las tasas de fallos se disparan por encima del 6,7% / 8% (SPECint / SPECfp).



Las discrepancias de crecimiento entre volumen de datos y tamaño de cache de primer nivel, junto con el repunte en la tasa de fallos de SPEC 2000, parecen sugerir que el crecimiento del primer nivel de cache de datos puede mantenerse o incluso aumentar.

En general, puede decirse que la presión a la cache de datos es significativa, y que en algunos casos el acceso a memoria de datos puede ser recurso crítico.

[1]

Los fallos de la cache de instrucciones son muy escasos y disminuyen con el tiempo (desde el 1,7% hasta el 0,14% para SPECint; desde el 0,9% hasta el 0.003% para SPECfp). O sea, la presión sobre la cache de instrucciones es mínima.

No queda clara la tendencia de la interacción cache SPEC CPU en el futuro, pero posiblemente la creciente presión del software se vea aliviada por la combinación de la ejecución fuera de orden y las posiblemente muy grandes caches de segundo nivel. En todo caso, las discrepancias de crecimiento mostradas en la Figura 5 y en la Figura 6 entre volúmenes y cache, y el repunte en la tasa de fallos, parecen sugerir que el crecimiento en primer nivel de datos debe mantenerse o incluso aumentar. SPEC92 SPEC95

SPECint

2

VI. BIBLIOGRAFÍA

[2] [3] [4]

[5] [6] [7]

SPECfp

Tasa de fallos (%)

SPEC2K

[8]

1.5

1

[9]

0.5

0 92

93

94

95

96

97

98

99

00

01

92

93

94

95

96

97

98

99

00

01

Cache de instrucciones

Tasa de fallos (%)

20

SPECint

SPECfp

[10] [11]

15

[12]

10

5

[13]

0 92

93

94

95

96

97

98

99

00

01

92

93

94

95

96

97

98

99

00

01

Cache de datos

[14]

J. Alastruey, O. Blasco, P. Ibáñez, J.L. Briz y V. Viñals.”SPEC CPU y Caches en Chip: Evolución y Rendimiento“. RR-06-02, Junio 2002. Dpto. Informática e Ing. de Sist. U. de Zaragoza. K. Boland and A. Dollas. “Predicting and Precluding Problems with Memory Latency“. IEEE Micro, 14(4):59-67, 1994 M.J. Charney and T.R. Puzak. “Prefetching and Memory System Behavior of the SPEC95 Benchmark Suite“. IBM Journal of Research and Development, 41(3), May 1997. R.F. Cmelik, D. Keppel. “Shade: A Fast Instruction-Set Simulator for Execution Profiling,’’ Proceedings of the 1994 ACM SIGMETRICS. Conference on the Measurement and Modeling of Computer Systems, pp 128-137, May 1994. M.J. Flynn. Computer Arquitecture: pipelined and parallel processor design. Jones and Bartlett Publishers, Boston MA, 1995 J.G. Gee, M.D. Hill, D.N. Pnevmatikatos, and A.J. Smith. “Cache Performance of the Spec92 Benchmark Suite”. IEEE Micro, 13(4):17-27, 1993. P.P. Gelsinger. “Microprocessors for the New Millennium: Challenges, Opportunities, and New Frontiers“. In Digests of 2001 IEEE ISSC Conf., pp. 22-25, Feb. 2001. J.L. Hennessy and D.A. Patterson. Computer Architecture: a Quantitative Approach. Morgan-Kaufman, San Francisco, CA, 1996. A. S. Tanembaum. Structured Computer Organization (sección 1.3.1). Prentice-Hall, Upper Saddle River, NJ, 1999. S. Sair and M. Charney. “Memory Behavior of the SPEC2000 Benchmark Suite“. IBM Res. Report, RC 21852 (98345) 6 Oct. 2000, 22 pp. R.R. Schaller. “Moore’s Law: Past, Present, and Future“. IEEE Spectrum, 34(6):52-59, 1997. SIA. International Technology Roadmap for Semiconductors. 2001 Edition. SPEC: Standard Performance Evaluation Corporation. http:// www.spec.org, September 2000. J.H. Mathews, K.D. Fink. Métodos numéricos con Matlab, pp285-286. Prentice-Hall, Madrid 2000.

Fig. 7. Evolución de la tasas de fallos de datos e instrucciones para la cache típica de un micro RISC (ver Tabla IV). 1

Todos los factores de crecimiento son bianuales.

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.