tema 5: conceptos avanzados de microprocesadores … · • las extensiones sse permiten manipular...

58
TEMA 5: Conceptos avanzados de microprocesadores Bibliografía Computer Architecture . Nicholas Carter. Schaum's outlines 2001. Computer Architecture Design . Henesse & Paterson. Morgan Edition. The computer engineering handbook . Chapter 6. CRC 2002. Kevin Skadron. High perfomance computer architecture . Harold S. Stone. 3 edition. Addison- Wesley 1993. INFORMACIÓN ADICIONAL Transparencias, Documentación Electrónica, Enlaces a tutoriales HTML en: http://www.dte.us.es/tec_inf/itig/microele/INDEX.HTM 05/09/05 1

Upload: vandan

Post on 18-Sep-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

TEMA 5: Conceptos avanzados demicroprocesadores

Bibliografía

Computer Architecture. Nicholas Carter. Schaum's outlines 2001.

Computer Architecture Design. Henesse & Paterson. MorganEdition.

The computer engineering handbook. Chapter 6. CRC 2002.Kevin Skadron.

High perfomance computer architecture. Harold S. Stone. 3edition. Addison- Wesley 1993.

• INFORMACIÓN ADICIONALTransparencias, Documentación Electrónica, Enlaces atutoriales HTML en:

http://www.dte.us.es/tec_inf/itig/microele/INDEX.HTM

05/09/05 1

Page 2: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

1. Representación de datos [6][7]

1.1Tamaño Byte, Palabra, Doble palabra, Cuádruple palabra y doble cuádruplepalabra.

1.2Tipos1.2.1.Entero

1.2.2.Flotante (IEEE 754)

05/09/05 2

Page 3: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

05/09/05 3

Page 4: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

2. Modelo de programación.

2.1Arquitecturas: basadas en PILA o en registros de propósito general)

2.2Tipos de instrucciones [6][7]

2.2.1.Instrucciones SISD (Single-Instrucción-Single-Data)

Sólo trabajan con un dato.

– De aritmética entera.

• Utilizan registros de propósito general (Ej.: EAX,EBX,ECX ... enIntel) y la ALU convencional.

• Clasificación (Ej.:Intel): De movimiento de datos, aritméticabinaria, aritmética decimal, instrucciones lógicas, dedesplazamiento y rotación, de manejo de bits y bytes, de control,de cadenas, de entrada/salida, de control de flags, etc.

Se destacan algunas nuevas instrucciones de transferencia quepermiten eliminar saltos condicionales:

CMOVEcc Conditional MoveCc= Z, NZ, AE, LE, NLE,... Equal, Not equal, abobe or equal, less or

equal, not less or equal,... Ej.:

05/09/05 4

Page 5: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

– De aritmética flotante (FPU).

• Utilizan registros específicos de la unidad en coma flotante.

• Arquitectura orientada a PILA.• La carga de un dato en alguno de los registros (ya sea entero o

flotante simple) se convierte a flotante de doble precisiónextendida.

• Registro de Estado: Contiene códigos de condición parainstrucciones de salto, bits de estado y la cima de la pila (top).

• Registro de control: contiene bits de máscara (asociados a los bitsde estado) y establece la precisión y el redondeo.

• Registro de etiquetas: Contiene una etiqueta de 2 bits por cadaregistro de la FPU. Cada etiqueta informa si el registro asociadoestá vacío, contiene datos válidos, un cero o datos especiales(denormalizados, NAN, ...)

• Modos de direccionamiento de operandos: memoria o relativos apila (ST(0),ST(1)...)

• Instrucciones:a) De transferencia de datos

05/09/05 5

Page 6: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

b) De carga de constantes:

c) De aritmética básica:

d) De comparación

e) Trigonométricas

05/09/05 6

Page 7: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

f ) Logarítmicas y exponenciales

g) De control.

2.2.1 Instrucciones SIMD(Single-Instruction-Multiple-Data)

Una instrucción SIMD puede trabajar con vectores de datos(paquetes de datos).

2.2.1.1 MMX, SSE, SSE2 y SSE3

• La tecnología MMX trabaja con enteros empaquetados de 64 bits:• 8 enteros de tamaño byte (con signo o sin signo).• 4 enteros de tamaño palabra (con signo o sin signo).• 2 enteros de tamaño doblepalabra (con signo o sin signo).

05/09/05 7

Page 8: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Dispone de 8 registros de 64 bits (compartidos con la FPU)denominados MMn.

• Las instrucciones MMX pueden utilizar como operandos cualquiera delos registros MM0..7, los registros de propósito general o la memoria.Los mnemónicos empiezan con la letra P.

• La ejecución de una instrucción MMX afecta a varios datossimultáneamente.

• La ejecución de las instrucciones aritméticas pueden generar resultadosfuera de rango. Las instrucciones MMX pueden tratar esos resultados detres formas distintas:

- Wraparound.- Signed saturation.

05/09/05 8

Page 9: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

- Unsigned saturation.

• Juego de instrucciones:

• Las extensiones SSE permiten manipular vectores (y escalares) denúmeros flotantes en precisión simple (32bits) usando 8 registrosindependientes de 128 bits denominados XMM.

05/09/05 9

Page 10: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Los operandos de las instrucciones SSE pueden ser obtenidos de lamemoria, de los registros de propósito general, de los registros MM o delos registros XMM.

• Instrucciones SSE: – De movimiento de datos.– Aritméticas: ADDPS (suma vectorial) ,ADDSS (suma escalar),

MULxS (x=P o S), DIVxS, SQRTxS, RCPxS, RSQRTxS,MAXxS, MINxS.

– Lógicas: ANDPS, ORPS, ANDNPS, XORPS.– Comparación: CMPxS, COMISS (activa señalizadores).– De desempaquetado y mezcla– De conversión: De entero a flotante (CVTPI2PS y CVTSI2SS) o

de flotante a entero (CVTPS2PI y CVTSS2SI).

• SSE incorpora nuevas instrucciones de manipulación de enterosalmacenados en los registros MMX:

• Las extensiones SSE2 permiten trabajar con datos en doble precisión ycon enteros en los registros XMM.

05/09/05 10

Page 11: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Las extensiones SSE3 introducen nuevas instrucciones entre las quedestacamos las que permiten un procesado asimétrico y un movimientode datos horizontal en los registros XMM.

05/09/05 11

Page 12: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

2.3 RISC versus CISC[3]

• Antes de los 80's el diseño estuvo orientado a microprocesadores con juego deinstrucciones complejas (CISC) (objetivo: aumentar prestacionesdisminuyendo distancia entre lenguaje formal e instrucciones).

• Cuando la tecnología de compilación mejoró, los investigadores se plantearonlas ventajas entre computadores con juego de instrucciones reducido (RISC)que ejecutan instrucciones a la misma velocidad y los CISC.

CISC RISCRequieren pocas instrucciones pararealizar una operación (ocupan pocamemoria).

Se favorecen arquitecturas que permitenejecutar instrucciones a mayor velocidad(requieren más registros para suejecución).Permite al compilador atomizaroperaciones y optimizar los tiempos deejecución.

• ¿Quién gana, CISC o RISC?. Existe gran controversia• Desde los 80's la mayor parte de las arquitecturas son RISC.

• Pero IA-32 es CISC (posición dominante en el mercado pornúmero de ventas).

• Existen convergencia entre arquitecturas RISC y CISC:– RISC incorpora algunas instrucciones más complejas sin que

exista pérdida en el tiempo de ejecución.

– CISC ha eliminado algunas instrucciones que no eran losuficientemente útiles como para justificar su implementación.

• Los RISC se caracterizan por arquitecturas Load-Store (sólo lasinstrucciones load y store pueden acceder a memoria).

CISC RISCADD.B (R0),(R1) LD R2,(R0)

LD R3,(R1)ADD R2,R3ST (R0),R2

05/09/05 12

Page 13: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

3. Microarquitectura del procesador3.1Unidades• El procesador puede dividirse en una serie de unidades, que realizan

funciones específicas.

• Por simplicidad sólo consideraremos las siguientes unidades

05/09/05 13

Page 14: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

3.2Pipelining [3][4]

• Los primeros computadores trabajaban deforma muy lineal, procediendoa la búsqueda de una instrucción a partir de que la anterior hayaejecutada.

• Con pipeling, el funcionamiento del procesador se asemeja al de unalínea de montaje:

Ejemplo línea de montaje de un automóvil, con cuatro secciones de montaje(motor, puertas, ruedas y pintura), cuyo tiempo de estancia (latencia) es de 5miny un operario en toda la línea.

5min 10min 15min 20min 25min 30min 35min 40minMotor Coche 1 Coche2

Puertas Coche1 Coche2

Ruedas Coche1 Coche2

Pintura Coche1 Coche2

Ejemplo de línea de montaje con un operario por sección.5min 10min 15min 20min 25min 30min 35min 40min

Motor Coche 1 Coche2 Coche3 Coche4 Coche5 Coche6 Coche7 Coche8

Puertas Coche1 Coche2 Coche3 Coche4 Coche5 Coche6 Coche7

Ruedas Coche1 Coche2 Coche3 Coche4 Coche5 Coche6

Pintura Coche1 Coche2 Coche3 Coche4 Coche5

• Para los microprocesadores, el concepto es el mismo.

Ciclo (PIPELINED)1 2 3 4 5 6 7

(IF) Inst1 Inst2 Inst3 Inst4 Inst5 Inst6 Inst7

(ID) Inst1 Inst2 Inst3 Inst4 Inst5 Inst6

(RR) Inst1 Inst2 Inst3 Inst4 Inst5

(EX) Inst1 Inst2 Inst3 Inst4

(WB) Inst1 Inst2 Inst3

Ciclo (UNPIPELINED)1 2 3 4 5 6 7

(IF) Inst1 Inst2

(ID) Inst1 Inst2

(RR) Inst1

(EX) Inst1

(WB) Inst1

05/09/05 14

Page 15: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Pipelining es la técnica por la que se solapa la ejecución de variasinstrucciones con el objeto de reducir el tiempo de ejecución de unconjunto de instrucciones.

• Parámetros: – Latencia (Latency): tiempo que emplea una instrucción en

ejecutarse– Eficiencia (Throughput): Es la razón que muestra el número de

operaciones que se pueden ejecutar por unidad de tiempo o ciclode reloj. (operaciones/seg o operaciones/ciclo)

EficienciaUnpipelined = 1/ LatenciaEficienciaPipelined > 1/ Latencia

• Para implementar pipelining, los diseñadores dividen el procesador ensecciones, colocando latches entre ellas. Al inicio de cada ciclo, cadalatch captura las salidas de la etapa anterior y mantiene la copia establedurante el resto del ciclo para la siguiente etapa.

05/09/05 15

Page 16: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Tiempo de ciclo (cycle time): Número de ciclos de reloj transcurridospara que se elimine una instrucción ejecutada del pipeline.

Cycle time pipelined = cycle time unpipelined numero de etapas

latencia de latch

Ejemplo: Supóngase un procesador sin pipeline que tenga un tiempode ciclo de 25ns y una misma versión del procesador con un pipelinede 5 etapas y una latencia de latch de 1ns.

Unpipelined PipelinedTiempo de ciclo 25ns 25ns/5 + 1ns = 6nsLatencia 25ns 25ns + 4ns = 29nsEficiencia 1/25 ns = 40 M op/seg. 1/6ns = 166 M op/seg

05/09/05 16

Page 17: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Muy a menudo, la trayectoria de datos del pipeline (datapatah) no sepuede dividir en etapas que tengan idénticos tiempos de latencia. Entales casos, el tiempo de ciclo lo determina el tiempo de latencia de laetapa más lenta.

Ejemplo: Supóngase un procesador sin pipeline que tenga un tiempode ciclo de 25ns y una misma versión del procesador con un pipelinede 5 etapas con latencias 5,7,3,6 y 4ns y una latencia de latch de 1ns.

Unpipelined PipelinedTiempo de ciclo 25ns 7ns + 1ns = 8nsLatencia 25ns (5+7+3+6+4)ns + 4ns = 29nsEficiencia 1/25 ns = 40 M op/seg. 1/8ns = 125 M op/seg

05/09/05 17

Page 18: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Existen múltiples factores que impiden que el pipeline ejecuteinstrucciones a su máxima velocidad:

– Dependencia entre las instrucciones– Saltos– Tiempo necesario para acceder a la memoria– Impedimentos estructurales

• Las dependencias (Instruction hazards) tienen lugar cuando lasinstrucciones leen o escriben los registros que son utilizados por otrasinstrucciones. Se pueden dividir en cuatro categorías:

– RAR (Read after Read) Ocurre cuando dos instrucciones leen elmismo registro.

Ej: MOVE r1,r2 (Formato: inst op_destino,op_fuente) CMP r3,r2

Este tipo de dependencia no causa problemas, por no cambiar elcontenido del registro. Dos instrucciones con dependencia RAR sepueden ejecutar en ciclos distintos (o incluso en el mismo ciclo de reloj)

– RAW (Read after Write) Ocurre cuando una instrucción procedea leer un registro cuyo contenido ha sido modificado por algunainstrucción previa. Se conoce como dependencia verdadera.

Ej: MOVE r1,r2 CMP r1,r3

En RAW se producen “burbujas” en el pipeline, motivadas por la esperaque una instrucción debe realizar para leer el dato que otra modifica.

ciclo1 2 3 4 5 6 7 8

(IF) MOVE r1,r3 CMP r1,r3

(ID) MOVE r1,r3 CMP r1,r3

(RR) MOVE r1,r CMP r1,r3 CMP r1,r3 CMP r1,r3

(EX) MOVE r1,r3 Burbuja Burbuja CMP r1,r3

(WB) MOVE r1,r3 Burbuja Burbuja CMP r1,r3

El correcto funcionamiento de la secuencia requiere que, hasta que elregistro r1 no haya sido modificado en la etapa WB por la instrucciónMOVE, la siguiente instrucción, CMP, deberá esperar en la etapa RR.Esto se consigue con la técnica del Scoreboarding.

05/09/05 18

Page 19: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

– Una instrucción en la etapa RR procede a leer un registro si el bit depresencia marca que ésta está ocupado (la lectura borra el bit depresencia). En caso contrario, la instrucción se retiene en la etapa RR yse introducen burbujas en las siguientes. Una instrucción en la etapaWB, cuando escribe en un registro, lo marca como ocupado,permitiendo que las instrucciones en la etapa RR puedan leer sucontenido.

– WAR (Write after read) Ocurre cuando una instrucción procede aescribir un registro después de que la instrucción previa lo hayaleído. Si el procesador ejecuta las instrucciones en el orden en queellas aparecen en el programa, esta dependencia no plantea ningúnproblema.

Ej: MOVE r1,r2 MOVE r2,r3

– WAW (Write after write) Ej: ADD r1,r2

MOVE r1,r3Al igual que WAR, no plantea ningún problema en procesadores queejecutan instrucciones en el orden en la que éstas aparecen.

A WAW y WAR se denominan dependencias de nombre. Si elprocesador tuviese un número infinito de registros y cada instrucciónusara uno de ellos, estas dependencias no ocurrirían.

• Los impedimentos estructurales ocurren cuando el hardware es incapazde ejecutar todas las instrucciones del pipeline simultáneamente. P. ej: siel conjunto de registros no tienen el número de puertos necesarios comopara que una instrucción en la etapa WB del pipeline pueda escribir en

05/09/05 19

Page 20: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

un registro a la vez que otra, en la etapa RR, pueda leer del conjunto deregistros.

• Los saltos provocan retrasos en procesadores con pipeline, porque no sepueden determinar cuál es la siguiente instrucción a buscar hasta que elsalto se haya ejecutado.

ciclo1 2 3 4 5 6 7 8

(IF) Inst. Salto Burbuja Burbuja Burbuja Inst. N Inst. N+1 Inst. N+2 Inst. N+3

(ID) Inst. Salto Burbuja Burbuja Burbuja Insta. N Inst. N+1 Inst. N+2

(RR) Inst. Salto Burbuja Burbuja Burbuja Inst. N Inst. N+1

(EX) Inst. Salto Burbuja Burbuja Burbuja Inst. N

(WB) Inst. Salto Burbuja Burbuja Burbuja

Los retrasos provocados por los saltos se denominan tambiénimpedimentos de control y, para evitarlos, se necesitan técnicas depredicción en las primeras etapas del pipeline.

3.2.1 Branch prediction [1],[2]

• Predicción estática– Basada en estadísticas obtenidas mediante SPEC (Standard

Perfomance Evaluation Corporation -http://www.spec.org/-). Lossaltos siempre se evalúan como Tomados (Taken)

– Poco eficiente.

• Predicción dinámica1. 1-bit branch perdiction

• Utiliza una tabla de 2n x 1 bits (PHT pattern history table )indexada con los n bits menos significativos de la direccióndel PC.

05/09/05 20

Page 21: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Cada entrada de la PHT registra la historia reciente de unsalto (si este fue tomado, T, o no, NT)

• El pipeline busca la siguiente instrucción de acuerdo con elbit almacenado en la entrada de la PHT.

• En el caso de que al evaluar la instrucción de salto en launidad EX su resultado hubiera sido distinto al predicho, seactualiza el valor de la PHT.

• Esta técnica no predice ni el inicio ni el fin de un bucle.

2. 2-bit branch perdiction (Bimodal branch prediction)

• Utiliza una PHT con contadores de 2 bits con saturacióncon cuatro estados: strongly taken, weakly taken, stronglynot taken, weaky not taken.

• Cada contador se actualiza en la evaluación del salto.• Mejora el número de predicciones en comparación con el

modelo de 1bit.

05/09/05 21

Page 22: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Esta técnica no predice el fin de un bucle.• Los contadores se inicializan a 3 (según autores y estudios

de eficacia).• En SPEC'89 benchmarks, este predictor satura en 93.5% de

aciertos.

3. Local branch prediction.

• Se puede mejorar la predicción para aquellos bucles con unpatrón de comportamiento concreto.

• Esta técnica utiliza dos niveles: tabla de histórico de saltos(BHT) y tabla de contadores saturantes de 2 bits (PHT).

• La PHT se direcciona con los bits menos significativos dela dirección del salto.

• Cada entrada de la PHT registra el comportamiento delsalto las n últimas veces que fue evaluado.

• Cada patrón de la tabla indexa un contador de la BHT(bimodal) que se actualiza en cada nueva evaluación ypermite realizar una predicción.

• SPEC'89 benchmarks arrojan un porcentaje de prediccióndel 97.1% que varía con el tamaño de la tabla BHT.

05/09/05 22

Page 23: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• La implementación hardware es compleja y el tiempo depredicción puede ser lento por tener dos niveles debúsqueda (aunque se puede reducir “cacheado” la entradadel PHT en un campo adicional de la BHT).

4. Global Branch Prediction

• Esta técnica sólo utiliza un único registro dedesplazamiento, GBHR (global branch history register) paraalmacenar el histórico de todos los saltos (basándose en lacorrelación de los mismos).

• Presenta “ruido” por la influencia global de todos lossaltos, por lo que para reducirlo, se concatena el contenidodel GBHR con unos pocos bits (tres como mínimo) de ladirección del salto (gselect).

05/09/05 23

Page 24: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• McFarling propone realizar la operación XOR entre los bitsde la dirección y el histórico almacenado en GBHR(gshare).

05/09/05 24

Page 25: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• En SPEC'89 benchmarks, el predictor gshare satura a96,6%.

• Gshare es algo inferior al predictor local pero más rápido,al no precisar de una doble búsqueda.

5. Métodos híbridos

• Une la acción de dos predictores con un tercero que, enfunción de la historia de aciertos y fallos de los dosanteriores, elige la acción a seguir.

3.3Paralelismo a nivel de instrucción

• Los computadores actuales, además de pipeline, emplean, como mejora,técnicas que permiten ejecutar más de una instrucción por ciclo:multiprocesadores o procesadores ILP (Instruction Level Parallel).

05/09/05 25

Page 26: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Un procesador ILP contiene múltiples unidades de ejecución quemanejan operandos almacenados en un fichero de registros común. Lasinstrucciones son suministradas, en paralelo, por la lógica de expediciónde instrucciones.

• Algunas unidades de ejecución está habilitadas para ejecutar unsubconjunto de instrucciones. Ej1.: unidad de enteros y unidad en comaflotante. Ej2.: unidades de enteros diseñadas para ejecutar subconjuntosde instrucciones (coste frente paralelización).

• ¿Cómo trabaja ILP? --> Independencia entre instruccionesconsecutivas.

• Limitaciones de ILP: Dependencias entre instrucciones e instruccionesde bifurcación.

– Dependencias:• RAW. (exige la ejecución en secuencia de las instrucciones, es la

más importante limitación)• WAW (exige seguir la secuencia para obtener el resultado

correcto) se elimina con la técnica “register renaming”.• WAR (factible en el mismo ciclo pero no “sin orden”) se elimina

con la técnica “register renaming”.– Saltos:

05/09/05 26

Page 27: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

Pueden solucionarse mediante técnicas de predicción y conejecución especulativa.

• Aparte de las técnicas hardware para favorecer ILP existen técnicas decompilación como: “loop unrolling” y “software pipeline”.

3.3.1 Procesadores superescalares

• Son aquellos que consiguen ejecutar instrucciones en paralelo deprogramas secuenciales.

• La unidad de expedición examina una ventana de instrucciones y lasenvía a las diferentes unidades de ejecución cuando sea posible.

3.3.2 Ejecución “In Order” frente a ejecución “Out of order”

• La ejecución “en orden” o “sin orden” representa uno de los puntos mássignificativos en los procesadores escalares (prestación frente acomplejidad).

• Ejecución “en orden”.• El procesador ejecuta instrucciones en el orden en el que éstas

aparecen en el programa. • Se examina una ventana de instrucciones para seleccionar

aquellas instrucciones que podrán ser suministradas en paralelo alas diferentes unidades de ejecución.

• El tamaño de la ventana es pequeño (igual al número de unidadesde ejecución)

• Ejecución “sin orden”.• El procesador ejecuta instrucciones en cualquier orden mientras

que no cambien el resultado del programa. • Más prestaciones que la ejecución “en orden”• Precisa de ventanas de mayor tamaño.• Complejidad mayor. (n2 para ventanas de n instrucciones)• Dificultad de manejo de excepciones (-> precisa unidad “in order

retirement”)3.3.3 Register renaming

• Esta técnica pretender eliminar o paliar las dependencias de nombre(WAR y WAW) que provienen del número reducido de registros depropósito general.

05/09/05 27

Page 28: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Asignación automática de un nuevo registro a aquellas instruccionesque presentan dependencias WAR y WAW

• La lógica de renombrado establece un “mapeo” entre los registrospropios de la arquitectura del procesador y los ocultos.

• Esta técnica es mejor que aumentar el número de registrosarquitecturales que el procesador pueda manejar por:

1. Mantener compatibilidad con programas compilados paraversiones anteriores.

2. Por evitar incrementar el número de bits en cada instrucción parael manejo del operando fuente y destino.

05/09/05 28

Page 29: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

3.3.4 Ejecución especulativa.

• Consigue mayor paralelismo mediante la ejecución de bloques deinstrucciones asociados a dependencias de control que todavía no hansido resueltas (control speculation) o evitando dependencias de datos(data speculation)

• Ejemplo de ejecución especulativa: suma BCD

Suponiendo que existen tres unidades de ejecución...

05/09/05 29

Page 30: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

3.3.5Técnicas software

3.3.5.1 Loop unrolling

• Los bucles tienden a tener bajo ILP por presentar a menudoinstrucciones dependientes y por el bajo número de instruccionesentre saltos.

• Esta técnica transforma un bucle de N iteraciones en otro deN/M, donde cada iteración del nuevo bucle realiza M iteracionesdel antiguo.

3.3.5.2 Software pipelining

• Esta técnica distribuye cada iteración del bucle original sobremúltiples iteraciones del 'pipelined loop', de manera que cadaiteración del nuevo bucle realiza múltiples iteraciones del bucleoriginal.

05/09/05 30

Page 31: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

Ejecución de la iteración i de un bucle sin pipeline (dependencias entre instrucciones-no favorece ILP-)

.... Iteración i Iteración i+1 ...

FTCH b[i]; c[i] b[i+1]; c[i+1]

EX. R = b[i] + c[i] R = b[i+1] + c[i+1]

WB A[i] = R A[i+1] = R

Ejecución de la iteración i de un bucle con pipeline (Independencia entreinstrucciones -favorece ILP- )

.... Iteración i Iteración i+1 Iteración i+2 ....

WB a[i-1]=R a[i]=R a[i+1]=R

EX. R = b[i] + c[i] R = b[i+1] + c[i+1] R = b[i+2] + c[i+2]

FTCH b[i+1];c[i+1] b[i+2];c[i+2] b[i+3];c[i+3]

4. Arquitectura de memoria

05/09/05 31

Page 32: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

4.1Memoria principal (memoria semiconductora)

• La unidad mínima de almecenamiento es el bit y la estructura física quelo soporta se denomina celda básica.

• La memoria organiza las celdas por filas y columnas (estructuramatricial).

• Existen varias formas de acceder la celdas (o grupos de ellas):decodificación por filas y decodificación por filas y columnas.

DECODIFICACIÓN POR FILAS Y COLUMNAS

05/09/05 32

Page 33: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

ROM

• Son memorias de sólo lectura.

• No pierden la información aunque se interrumpa la alimentación.

• Tipos: ROM, PROM (OTP ROM), EPROM, EEPROM ( FLASH )

• Las memorias ROM se programan en fábrica y no es posible modificarsu contenido

• Las memorias PROM contienen una matriz de fusibles que. Sonprogramables por el usuario una sola vez

• Las EPROM permiten su reprogramación después de someter al chip aun proceso de borrado por radiación ultravioleta.

• Las EEPROM permiten su reprogramación eléctrica. Las FLASHEEPROM son más rápidas por permitir borrado y escritura por bloquesaunque tienen el inconveniente del desgaste (10.000-90.000 borrados).

• Ejemplo: Memoria EPROM

Señales de control: #OE (habilitador salida), #CE (habilitador chip)

05/09/05 33

Page 34: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Proceso de lectura:

- Establecer dirección

- Habilitar chip y salidas

RAM

• Son memorias de lectura y escritura.

• Tipos: SRAM y DRAM.

• Características de la SRAM:

- Celda básica basada en un biestable (6 transistores)

- Rápidas (-> Caché)

– La información no se pierde mientras exista alimentación

05/09/05 34

Tiempo de acceso

Page 35: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Ejemplo de SRAM

Señales de control ( #CS, Habilitador de chip; #WE, Lectura/Escritura ;#OE, Habilitador de salida)

RAM DINÁMICA (DRAM)

- celda básica: 1 transistor + condensador

- Necesita refresco.

- Requiere lógica externa compleja.

- Mayor densidad que SRAM -> mayor capacidad

– Menor velocidad de acceso

05/09/05 35

Establecer la direcciónPoner #WE a 1 lógicoHabilitar salidas y chip

Proceso de lectura

Page 36: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Ejemplo de DRAM:

Señales de control: #RAS, (Habilitador de fila), #CAS,(Habilitador de columna), #CS, #WE y #OE.

• La reducción del tiempo de latencia es imprescindible para mejorar lavelocidad de las DRAM.

- FPM (Fast Page Mode) /EDO (Extended Data Output) DRAM.Agiliza los accesos a los bits de una misma fila (página). Dentro de unapágina sólo es necesario identificar la columna.

- El tiempo de acceso a n datos de una página es Trac*n en DRAM yTrac+(n-1)*Tpc en FPM/EDO RAM (Tpc = tiempo de ciclo en modopagina). Tpc es menor en EDO DRAM que en FPM DRAM.

05/09/05 36

TIEMPO DE LATENCIA

Tiempo de pulso de la señal RAS Tiempo de mantenimiento de columnaTiempo de establecimiento de columna

Establecer la FILA (primera mitad de la dirección)Validar FILA (#RAS)Establecer la COLUMNA (segunda mitad de la dirección)Validar COLUMNA (#CAS)Poner #WE a 1 lógicoHabilitar salidas y chip

Proceso de lectura(ver secuencia de pasos

en el cronograma)

Page 37: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

– Ejemplo: Si n=8, Trac=60ns y Tpc=25ns -> Tacceso DRAM = 480ns,Tacceso FPM/EDO DRAM = 235ns

• Los microprocesadores tienden a buscar bytes en posicionesconsecutivas de la memoria y, si disponen de caché, además, en ráfagas.(Ej. Caché L2 de un pentium busca bloques de 32 bytes).

• Las SDRAM (DRAM síncronas) incorporan una señal de reloj queestablece la base de tiempos para el modo paginado y un contadorinterno que genera las direcciones de columna para cada ciclo de reloj.

• El tiempo de acceso para n bytes es Trac+(n-1)Tclk.

• Ejemplo: Una SDRAM PC-100Mhz, tiene Tclk = 10ns, si Trac=60ns yn=8, entonces Tacceso SDRAM = 130ns.

05/09/05 37

Page 38: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Las DDR (Double Data Rate) RAM permiten duplicar la velocidad alutilizar, tanto los flancos de subida como los de bajada del reloj paratransferir un bit. Tacceso de n bytes en DDR RAM = Trac + (n-1)*Tclk/2. (95ns si se usan los mismos datos de la SDRAM anterior)

• Futuro: QDR (Quad Data Rate) RAM (cuatro transferencias por ciclode reloj)

• Las memorias para un ordenador personal vienen en módulos: SIMM ,DIMM

05/09/05 38

Page 39: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

4.2 Sistemas Caché [3][5]

• Nivel más alto en la jerarquía de memoria (SRAM).

• Basadas en principio de vecindad (datos e instrucciones próximos enespacio y tiempo son más probables de ser requeridos).

• Permiten procesar instrucciones y datos casi a la misma velocidad queen el caso ideal en el que toda la memoria principal fuera SRAM, perocon un coste algo superior a sólo DRAM.

• Contienen hardware que permite identificar las direcciones de memoriade los datos almacenados en la caché y copiar datos, si es necesario,desde la memoria a la caché o a la inversa.

• Disponen de una memoria de etiquetas y una memoria de datos.

05/09/05 39

Page 40: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• En memorias caché es habitual separar datos e instrucciones (Harvardcaché) aunque también es común las cachés unificadas (datos einstrucciones)

• La capacidad de una caché indica la cantidad de datos que puedealmacenar. Ej.: Caché de 32KB almacena 32Kilobytes de datos(internamente se necesita más memoria-> etiquetas).

• La longitud de línea de una caché es el tamaño del bloque de datosmínimo que el sistema caché se trae de la memoria en Caché miss o quepuede escribir en la memoria. (Ej.: caché de 32 bytes de línea lee 32bytes de datos en cada acceso a memoria).

Longitud de línea Tiempo de acceso Probabilidad de aciertoGrande Alto AltaPequeña Bajo Baja

Longitudes de línea actuales (32 bytes – 128 bytes )

• La asociatividad de una caché determina cuantas posiciones internaspueden contener una dirección de memoria dada:

1. Cachés totalmente asociativas. Cualquier dirección se puedealmacenar en cualquier posición interna. Asociatividad m.

2. Cachés directamente mapeadas. Una dirección dada sólo puedealmacenarse en una posición concreta. Asociatividad 1.

3. Cachés asociativas por conjuntos. Una dirección dada puedealmacenarse en una única posición dentro de un conjunto, pero entantos conjuntos distintos como existan. Asociatividad n.

05/09/05 40

Page 41: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

Memoria caché totalmente asociativa

• Cualquier dirección de la memoria principal se puede almacenar encualquier línea de la caché.

• Los bits MSB de la dirección se compara con los valores almacenadosen la memoria de etiquetas.

05/09/05 41

Page 42: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Mayor tasa de aciertos

• Gran complejidad circuital (tamaño de la memoria de etiquetas ynúmero de comparadores)

• Ejemplo: Memoria principal 16Mb (24 bits de direcciones) y MemoriaCaché de 2Kb con 4 bytes por línea (512 líneas y 22 bits de etiqueta)

05/09/05 42

Page 43: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

Memoria caché directamente mapeada

• La memoria principal se ve dividida en páginas de igual tamaño a lacaché.

• La posición relativa de un dato en cada página ocupa la misma que en lacaché de datos.

• Menor complejidad circuital que la totalmente asociativa (memoria deetiquetas más pequeña y un sólo comparador).

05/09/05 43

Page 44: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Pueden eliminarse bloques de la caché aún teniendo espacio disponible.

• Menor tasa de acierto.

• Ejemplo: Memoria principal 16Mb (24 bits de direcciones) y MemoriaCaché de 2Kb con 4 bytes por línea (512 líneas -> 9 bits de línea y 22-9 = 13 bits de etiqueta)

05/09/05 44

Page 45: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

Memoria caché asociativa por conjuntos (caché de n-vías)

• La memoria principal se ve dividida en bloques o páginas de tamañoigual al de una vía.

• La memoria de datos de la caché se divide en n-vías o bloques de igualtamaño.

• La posición relativa de un dato en una página de la memoria ocupa lamisma posición relativa que en una vía de la caché.

05/09/05 45

Page 46: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Ahora bien, un dato de un bloque de la memoria principal puede serubicado en n posibles posiciones en la memoria caché (tantas comovias).

• Este esquema requiere n comparadores.

• Elevada tasa de aciertos.

05/09/05 46

Page 47: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Ejemplo: Memoria principal 16Mb (24 bits de direcciones) y MemoriaCaché de 2Kb con 4 bytes por línea (512 líneas -> 9 bits de línea y 22-9 = 13 bits de etiqueta)

05/09/05 47

Page 48: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• La política de reemplazo determina qué línea es desechada cuando lacachés está llena o hay conflictos entre conjuntos.

Totalmente asociativa Directamente mapeada Asociativa por conjuntosSi la caché está llena sedeberá sustituir alguna línea

No hay conflicto alguno,cada dato nuevo tiene unalocalización predeterminadaque sobrescribe al antiguo(incluso si existenposiciones libres)

Si todos los conjuntostienen ocupadas la mismaposición interna, se deberádecidir cuál de ellas esvaciada.

• La política de reemplazo deberá mejorar el cache hit a un costehardware razonable.

• Algoritmo LRU (Last Recently Used) – Se sustituye el menos reciente.– Cada línea debe tener unos bits que registren su orden de

utilización.– Cada sustitución de una línea requiere la actualización de los bits

en las restantes.– Eficiente pero costoso.

• Algoritmo NMRU (Not-Most-Recently-Used):– Salvo la línea más reciente, se puede sustituir cualquier otra

(aleatorio).– Cada línea sólo requiere un bit.– Menos costoso y algo menos eficiente que LRU.

05/09/05 48

Page 49: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Coherencia de la caché

– La información de la caché es una copia de la informaciónalmacenada en la memoria. Por tanto, cualquier modificación enalguna de ellas, deberá ser actualizada en la otra. (Coherencia).

– Modificación en Caché (actualización en memoria).• Write-Through.

– Se actualiza la memoria cuando se produce unamodificación en alguna línea.

– Simple de implementar.– Requiere mucho uso del bus.

• Write-Back– Se actualiza la memoria sólo cuando la línea

modificada va a ser sustituida.– Cada línea requiere registrar información sobre si su

contenido ha sido modificado por el Procesador(Línea sucia).

– Necesitan buffers intermedios (almacenar línea aactualizar en memoria y evitar retrasos en lasustitución).

– Más compleja de implementar.– Uso más eficiente del bus.

– Modificación en Memoria (actualización de la caché- Snooping-).• El controlador de caché rastrea el uso de la memoria por

otros controladores.• Captura, si procede, del dato en la caché o etiquetado de la

línea como no válida (posterior actualización).

• Non-cacheable cycles

Algunos accesos a memoria no deben ser copiados en la caché: zona deentradas/salida y reconocimiento de interrupciones.

05/09/05 49

Page 50: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Memoria de etiquetas.

– Contienen bits de la dirección y bits adicionales de gestión.

– El bit de etiqueta válida indica sobre si la línea contiene datosválidos o no.

• Lógica de Ausencia/Presencia (Hit/Miss)

– Una presencia en la caché requiere de que la etiqueta coincida conla dirección y el bit de etiqueta válida sea correcto.

05/09/05 50

Page 51: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• Jerarquía de Cachés (Multilevel caches)

– Diferentes niveles mejoran, en promedio, el tiempo de acceso.

– Niveles superiores (más cercanos a la memoria principal) debentener mayor capacidad.

– Niveles inferiores (más próximos a la CPU) deben tener mayorvelocidad.

05/09/05 51

Page 52: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

5. Memoria virtual [3][5]

• La memoria virtual es una técnica que permite al microprocesadorutilizar un espacio de memoria mucho mayor que el proporcionado porla memoria física.

• El microprocesador trabaja con direcciones virtuales que definen elespacio virtual (de mucha mayor capacidad que el espacio físico).

• La unidad MMU (Memory Management Unity) es la encargada defacilitar la traducción de direcciones virtuales a direcciones físicas.

05/09/05 52

Page 53: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• El SO debe disponer de las siguientes funciones:1. Lista de todos los “objetos” residentes tanto en la memoria virtual

como física.2. Cargar los objetos en la memoria física en tiempo de ejecución.3. Establecer la política de sustitución de objetos de la memoria

física por otros nuevos.

• Existen distintos modelos de memoria virtual: paginada, segmentada yde segmentos paginados.

5.1 Memoria virtual paginada

• La memoria virtual se divide en bloques de tamaño fijo llamadospáginas. La memoria física contendrá un determinado número depáginas virtuales.

• La dirección virtual se divide en dos campos: número de página virtual(npv) y desplazamiento (d).

• Existe una tabla de páginas en la Memoria que dispone de una entradapor cada página virtual.

05/09/05 53

Page 54: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• La tabla de páginas (TP) se crea en el arranque del sistema y reside enmemoria principal. Un registro de la CPU denominado RBTP (RegistroBase de la Tabla de Páginas) se inicializa con la posición de memoriadonde comienza dicha tabla.

• Cuando la CPU lanza una dirección (virtual) el campo npv se desagregade la misma y se utiliza como índice al RBTP para acceder a memoria aleer la entrada asociada a la página virtual. De dicha entrada se obtienela dirección de la memoria principal donde se ubica la página requeridaque, junto, con el desplazamiento (d), forman la dirección física. Métodode correspondencia directa.

• El método de correspondencia directa requiere dos accesos a memoria(uno a la TP y otro para acceder al objeto propiamente dicho) lo queimplica reducción de prestaciones. Para evitarlo se suele implementarcon un buffer de traducción adelantada (TLB- Translation LookasideBuffer)

• El TLB es una pequeña caché que contiene las entradas de la tabla quese han usado más recientemente.

05/09/05 54

Page 55: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

• La tabla de páginas es de gran tamaño (1 entrada por cada páginavirtual). Para reducir dicho tamaño (método de correspondenciaasociativa) se podría utilizar una TP inversa que al número de páginafísica se le asigna un número de página virtual.

• Requiere de una memoria cara de tipo asociativo (búsqueda porcontenido en lugar de búsqueda por dirección).

05/09/05 55

Page 56: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

5.2 Memoria virtual segmentada.

• La memoria virtual se divide en bloques de tamaño variable llamadossegmentos.

• Conceptualmente parecida a la paginada. Se requiere almacenar ahorala longitud del segmento.

5.3Memoria virtual de segmentos paginados.

• La segmentación presenta algunas ventajas:1. Simplifica la gestión de estructuras de datos crecientes. El SO

puede aumentar el tamaño del segmento a demanda.2. Se presta a la protección3. Modularidad.

• La paginación elimina la fragmentación y permite aprovechar lamemoria principal de forma más eficiente.

• Un dirección virtual en el modelo virtual de segmentos paginadosdispone de tres campos: nsv, npv y d.

• Existen una Tabla de Segmentos y tantas tablas de páginas comopáginas en segmentos.

05/09/05 56

Page 57: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

5.4Algoritmos de gestión de memoria (SO)

• Política de lectura: Demanda y previa.

• Política de ubicación: mejora ajuste, pero ajuste, otras.

• Política de reemplazo: • LRU (dificultad de implementación).• FIFO (cola circular de fácil implementación).• Reloj

05/09/05 57

Page 58: TEMA 5: Conceptos avanzados de microprocesadores … · • Las extensiones SSE permiten manipular vectores (y escalares) de números flotantes en precisión simple ... no plantea

[1] The computer engineering handbook. Chapter 6. CRC 2002. Kevin Skadron.

[2] Evaluation of branch-prediction methods on traces from commercial applications.Journal of Research and Development. Volume 43, number 4, 1999. R. B. Hilgendorf,G. J. Heim and W. Rosenstiel.

http://www.research.ibm.com/journal/rd/434/hilgendorf.html

[3] Computer Architecture. Nicholas Carter. Schaum's outlines 2001.

[4] High perfomance computer architecture. Harold S. Stone. 3 edition. Addison-Wesley 1993.

[5] Computer Architecture Design. Henesse & Paterson. Morgan Edition.

[6] IA-32 Architecture. Vol1. Intel corporation.

[7] AMD64 Architecture. Programmer's manual. Volumen 1.

Enlaces a páginas web:

• Applet para simulación de predictores simples:http://www.ecs.umass.edu/ece/koren/architecture/BrPredict/BranchPrediction.html

• Evaluación de los métodos de predicción de saltos. Hilgendorf. http://www.research.ibm.com/journal/rd/434/hilgendorf.html

• Pipelines y evaluación de saltos: http://www.cs.ucsb.edu/~cs290i/a1_branch.html

• Tutorial de la Universidad de Massachusetts: http://euler.ecs.umass.edu/arch/parts/Part7-brnchprdct.pdf

05/09/05 58