43
Arquitectura de computadoras UI Arquitecturas de cómputo Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Unidad 1 Arquitecturas Segmentados y Escalar

Embed Size (px)

DESCRIPTION

Libro de Morris Mano

Citation preview

Page 1: Unidad 1 Arquitecturas Segmentados y Escalar

Arquitectura de

computadoras

UI Arquitecturas de cómputo

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 2: Unidad 1 Arquitecturas Segmentados y Escalar

Arquitectura Segmentada o Pipeling

(introducción)

Ejemplo de la Lavandería

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 3: Unidad 1 Arquitecturas Segmentados y Escalar

Arquitectura Segmentada o Pipeling

(introducción)

Cuatro cargas de Ropa

Lavado (30 minutos)

Secado (30 minutos)

Planchado y doblado (30 minutos)

Puesta de la ropa en su lugar (30 minutos)

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 4: Unidad 1 Arquitecturas Segmentados y Escalar

Primer caso: Lavado secuencial

El tiempo total de lavado para las cuatro cargas sería de 8 Horas

¿Cuánto tiempo tomaría si se hiciera por segmentación

de tareas?

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 5: Unidad 1 Arquitecturas Segmentados y Escalar

Lavado segmentado

Las cuatro cargas se harían en 3.5 horas!!!Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 6: Unidad 1 Arquitecturas Segmentados y Escalar

Arquitectura Segmentadas (1/5)

Las arquitecturas segmentadas o con segmentación del cauce buscan mejorar el desempeño realizando paralelamente varias etapas del ciclo de instrucción al mismo tiempo.

El procesamiento se realiza con la ayuda de varios elementos físicos como:

Procesador

Memoria

Entrada y salida

Bus

Registros

ALU

Unidad de Control

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 7: Unidad 1 Arquitecturas Segmentados y Escalar

Arquitectura Segmentadas (2/5)

Ciclo de Instrucción (1/3)

Un procesador para realizar una instrucción tiene que hacer los siguientes pasos:

Paso 1. BUSQUEDA. Obtener la de la memoria de programa la operación o instrucción que se va

a realizar.

Paso 2. RECUPERACION. Llevarla dentro de sus registros

Paso 3. DECODIFICACION. La instrucción leída tiene que ser comúnmente “desenvuelta” o

“Traducida” para que pueda interpretarse.

Paso 4. DIRECCIONAMIENTO. Un vez interpretada la instrucción, esta señala frecuentemente que

ahora es necesario ir a localizar los datos que se van a operar, que en términos más técnicos se

les dice operandos. Estos dependiendo de varias circunstancias pueden localizarse en los

registros o en la memoria de programa pero comúnmente los tomará de la memoria de datos.

Paso 5. EJECUCIÓN. Una vez que ha localizado los operandos, los lleva dentro del CPU,

comúnmente a la ALU para operarlos.

Paso 6. ALMACENAMIENTO. El resultado de la operación anterior, es almacenado en algún lugar,

comúnmente la memoria de datos

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 8: Unidad 1 Arquitecturas Segmentados y Escalar

Arquitectura Segmentadas (2/5)

Ciclo de Instrucción (2/3)

Esto muestra el proceso para ejecutar una instrucción

De manera resumida

¿Y si queremos ejecutar 10 instrucciones seguidas que tendríamos que hacerle a este proceso?

BUSQUEDA RECUPERACIONINTERPRETACION

(Decodificacion)DIRECCIONAMIENTO EJECUCION ALMACENAMIENTO

B R I D E A

Ciclo de instrucción

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 9: Unidad 1 Arquitecturas Segmentados y Escalar

Arquitectura Segmentadas (2/5)

Ciclo de Instrucción (3/3)

Se retorna al inicio y se repite de manera indefinida e ininterrumpida

BUSQUEDA RECUPERACIONINTERPRETACION

(Decodificacion)DIRECCIONAMIENTO EJECUCION ALMACENAMIENTO

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 10: Unidad 1 Arquitecturas Segmentados y Escalar

Arquitectura Segmentadas (3/5)

Ciclo de instrucción en una ejecución NO segmentada

De manera simplificada lo podemos agrupar como:

Por lo que una secuencia de cuatro instrucción sería:

B R I D E A

L O

LOCALIZACION OPERACIÓN

t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19 t20 t21 t22 t23

B R I D E A B R I D E A B R I D E A B R I D E A

Ciclo de instrucción 1 Ciclo de instrucción 2 Ciclo de instrucción 3 Ciclo de instrucción 4

t0 t3 t6 t9 t12 t15 t18 t21 t24

L O

Instrucción 2 Instrucción 3 Instrucción 4

O

Instrucción 1

L O L OLInstituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 11: Unidad 1 Arquitecturas Segmentados y Escalar

Arquitectura Segmentadas (4/5)

Considerando que la arquitectura de la máquina posea de manera separada sus unidades de

hardware relacionadas con la localización y la operación.

B R I

L

LOCALIZACION

D E A

O

OPERACIÓN

Unidad de

Localización de la

Instrucción

Unidad de Operación

o de ejecución de ls

operandos

Cola de Instruccones

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 12: Unidad 1 Arquitecturas Segmentados y Escalar

Arquitectura Segmentadas (4/5)

* Load-store unit (LSU). Integer or arithmetic-logic unit (ALU) & Floating-point unit (FPU)

No segmentada Segmentada

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 13: Unidad 1 Arquitecturas Segmentados y Escalar

Arquitectura Segmentadas (5/5)

Ciclo de instrucción en una ejecución segmentada

t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14

Unidad de Operación

Unidad de Localización

O4

L1 L2 L3 L4

O1 O2 O3

t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14

Cauce, Segmento o

Tubería 1

Cauce, Segmento o

Tubería 2

L O

L O

Instrucción 1

Instrucción 2

Instrucción 3

Instrucción 4

L O

L O

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 14: Unidad 1 Arquitecturas Segmentados y Escalar

El tiempo de ciclo de reloj es el mismo.

La Segmentación no ayuda a disminuir el tiempo de una tarea sino del conjunto

El hacer múltiples tareas significa necesariamente múltiples recursos trabajando simultáneamente.

La segmentación mejora el rendimiento del procesador

¿Porqué?

La mejora en el rendimiento mejor al aumentar más segmentos pero no es proporcional al número de estos y tiene un límite

¿Porqué ?

¿Qué obstáculos pueden encontrarse para la efectividad de este método?

¿Qué es la supersegmentación?. Explicación y diagramas

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 15: Unidad 1 Arquitecturas Segmentados y Escalar

Supersegmentación

La supersegmentación consiste en dividir las etapas de un cauce en sub-

etapas aprovechando el hecho de que muchas tareas requieren menos de la

mitad de un ciclo de reloj para completarse. Aumenta el número de

instrucciones en el cauce en un determinado instante.

Dividiendo cada etapa en dos y utilizando un reloj interno del doble de

frecuencia (supersegmentado de grado dos) se pueden obtener dos

instrucciones por ciclo de reloj.

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 16: Unidad 1 Arquitecturas Segmentados y Escalar

Supersegmentación

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 17: Unidad 1 Arquitecturas Segmentados y Escalar

TPP y TPN

Transición de pendiente Positiva y negativa

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 18: Unidad 1 Arquitecturas Segmentados y Escalar

Ejemplo a bloques de un sistema

supersegmentado

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 19: Unidad 1 Arquitecturas Segmentados y Escalar

Arquitectura de Computadoras

De Multiprocesadores

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 20: Unidad 1 Arquitecturas Segmentados y Escalar

¿Qué significa tener

multiprocesamiento?

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 21: Unidad 1 Arquitecturas Segmentados y Escalar

Multiprocesamiento (2/2)

- Multiprocesamiento es la capacidad de un sistema de computo relacionado de ejecutar más de una instrucción de forma simultanea siempre y cuando estas pertenezcan al conjunto de todas las instrucciones que definen un mismo programa o tarea.

- La omisión de la ejecución de una instrucción o una tarea por una unidad parcial de procesamiento(Core, procesador o computadora) dentro del sistema de multiprocesamiento no necesariamente significa que el resultado final del sistema fallará, ya que la actividad omitida por una unidad puede ser suplida y ejecutada por otra unidad.

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 22: Unidad 1 Arquitecturas Segmentados y Escalar

Multiprocesamiento (2/2)

Multicores

Multiprocesadores

Multicomputadoras o

Clusters

Super computadorasInstituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 23: Unidad 1 Arquitecturas Segmentados y Escalar

Multicores. Procesamiento superescalar

Un procesador superescalar utiliza paralelimo a

nivel de instrucciones y de flujo para poder

ejecutar más de una microinstrucción por ciclo de

reloj.

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 24: Unidad 1 Arquitecturas Segmentados y Escalar

Ejecución Super escalar de grado dos

IF = Instruction Fetch, ID = Instruction Decode, EX = Execution, MEM = Write Data Memory, WB = Write Back to Registers

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 25: Unidad 1 Arquitecturas Segmentados y Escalar

Arquitectura Superescalar

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 26: Unidad 1 Arquitecturas Segmentados y Escalar

Ejecución Super escalar

Captura de multiples instructions

Logica para determina dependencias verdaderas en las operaciones entre los

registros

Mecanismos para comunicar esos valores

Mechanisms para iniciar multiples operaciones en paralelo

Resources físicos par< la ejecución paralela

Mecanismos para completer los procesos en el órden correcto conforme a la

secuencia lógica de las instrucciones

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 27: Unidad 1 Arquitecturas Segmentados y Escalar

SuperEscalar

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 28: Unidad 1 Arquitecturas Segmentados y Escalar

Problemáticas de la implementación

Superescalar

DEPENDENCIA DE DATOS VERDADERA

DEPENDENCIAS RELATIVAS AL PROCEDIMIENTO

CONFLICTO DE RECURSOS/DEPENDENCIA DE SALIDA

ANTIDEPENDENCIA

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 29: Unidad 1 Arquitecturas Segmentados y Escalar

Problemáticas de la implementación

Superescalar

DEPENDENCIA DE DATOS VERDADERA (Tipo, Read after Write)

Se presenta cuando una instrucción no puede realizarse debido a que una de sus

variables independientes aun no recibe el valor con el que debe de ser operada

debido a que este se obtiene en una instrucción anterior que se esta intentando

intentar simultáneamente con una posterior.

Ej.

ADD R1,R2 (R1 = R1+R2)

MOV R3,R1 (R3=R1)

El valor de R1 depende de que la primera instrucción se termineInstituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 30: Unidad 1 Arquitecturas Segmentados y Escalar

Problemáticas de la implementación

Superescalar Dependencia relativa al procedimiento

Este problema se presenta cuando existe una bifurcación en el software (un salto)

debido a que estrictamente hablando, la siguiente instrucción no se puede captar

sino hasta que se ha calculado la nueva dirección donde se encuentra la instrucción

posterior al salto.

Ej.a=c+d

a>5

z= a-y

x =z+g

Si

NoAunque no se pone de manera expresa esta

línea de salto es una instrucción goto que

debe ser capturada y debe calcularse donde

continúa el programa

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 31: Unidad 1 Arquitecturas Segmentados y Escalar

CONFLICTO DE RECURSOS.

Se produce cuando se intenta utilizar un mismo recurso por dos instrucciones al mismo tiempo.

Ej.

- Las memorias

- Los Caches

- Los puertos

- Las ALUs

- Los Registros

- Etc

Aunque se podría parecer a una dependencia de datos verdadera, la diferencia radica en que algunos de estos conflictos pueden superarse duplicando los recursos que generan conflicto mientras que una dependencia de datos verdadera no se puede eliminar.

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 32: Unidad 1 Arquitecturas Segmentados y Escalar

Dependencia de salida (Del tipo WAW, write after write)

Similar a la dependencia de recursos, se produce, por ejemplo cuando se intenta

escribir al mismo tiempo en un mismo registro

Ej.

mul r2, r2, r3 ; r2 = r2 * r3

add r2, r3, 1 ; r2 = r3 + 1

Si se intenta ejecutar de manera simultánea tendremos una dependencia de

salida.

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 33: Unidad 1 Arquitecturas Segmentados y Escalar

Antidependencia(Tipo WAR, write after read)

Esta se presenta cuando en una variable se escribe (indepbidamente y luego se lee. Esto solo se puede producir al intentar corregir el proceso de dependencia de datos verdaderas cambiando el orden de las instrucciones

Ej.

ADD F9,F0,F8 (significa que se realizará F9=F0+F8)

SUB F8,F8,F14 (significa que se realizará F8=F8-F14)

ORDENADO EJECUCION FUERA DE ORDEN

ADD F9,F0,F8 SUB F8,F8,F14

SUB F8,F8,F14 ADD F9,F0,F8

Como se puede notar, en la ejecución desordenada se crea una dependencia que antes no existía y que algorítmicamente hablando no debería ser motivo de conflicto ya que fue programada de una manera en la que no se tenía ninguna dependencia

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 34: Unidad 1 Arquitecturas Segmentados y Escalar

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 35: Unidad 1 Arquitecturas Segmentados y Escalar

Recursos para resolver las dependencias producidos

por la ejecución simultanea o paralela

Ejecución Desordenada

Renombramiento de Registros

Predicción de saltos

Duplicación de recursos

¿Cómo funcionan estos?

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 36: Unidad 1 Arquitecturas Segmentados y Escalar

Ejecución desordenada

Mediante esta técnica, el procesador busca las dependencias existentes y va

tomando de manera desordenada las instrucciones para irlas ejecutando

adelantando procesos. Puede haber diversa políticas de emisión desordenada.

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 37: Unidad 1 Arquitecturas Segmentados y Escalar

Renombramiento de Registros

Sirve para disminuir la dependencia de salida

Características:

El hardware mantiene una lista grande de registros.

Los registros son invisibles al programador y no

necesariamente son registros físicos.

Se asignan dinámicamente según se necesitan.

Puede haber varias versiones de un registro físico al

mismo tiempo.

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 38: Unidad 1 Arquitecturas Segmentados y Escalar

Renombramiento de registros

Ejemplo:

1. mul r2, r2, r3 ; r2 = r2 * r3

2. add r4, r2, 1 ; r4 = r2 + 1

3. add r2, r3, 1 ; r2 = r3 + 1

4. div r5, r2, r4 ; r5 = r2 / r4

Hay una dependencia de salida entre 1 y 3.

Hay una antidependencia entre 2 y 3.

Hay una dependencia de datos entre 3 y 4.

La instrucción 3 no puede comenzar hasta que la 1 haya terminado y la 2 haya

comenzado.

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 39: Unidad 1 Arquitecturas Segmentados y Escalar

Renombramiento de registros

Al renombrarlos los registros se pueden etiquetar:

1. mul r2_b, r2_a, r3_a ; r2 = r2 * r3

2. add r4_b, r2_b, 1 ; r4 = r2 + 1

3. add r2_c, r3_a, 1 ; r2 = r3 + 1

4. div r5_b, r2_c, r4_b ; r5 = r2 / r4

Ahora la instrucción 3 puede comenzar porque usa un registro r2 “diferente”

que 1 y 2.

Las etiquetas funcionan como historia de cada registro: r2_c es la versión mas

nueva de r2, mientras que r2_a es la versión mas vieja.

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 40: Unidad 1 Arquitecturas Segmentados y Escalar

Pre-captar instrucciones después del salto,

predicción de saltos

Esta técnica se basa en “adivinar” cual será la siguiente instrucción después del salto a pesar de no haberse resuelto esta.

Puede haber de varias formas

Estáticas:

1) Siempre salta

2) Nunca salta

3) Según el código de operación

Dinámicas:

4) Una ves salta otra vez no salta (Conmutador)

5) Tabla de historia de saltos (estadístico). Es una pequeña memoria cache asociada a la etapa de captación de instrucción del cauce

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 41: Unidad 1 Arquitecturas Segmentados y Escalar

Diagrama de flujo de

Prediccion de Saltos

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 42: Unidad 1 Arquitecturas Segmentados y Escalar

Duplicación de Recursos

Pretende resolver el conflicto de recursos y consiste en aumentar determinados

recursos del procesador durante su diseño para evitar los conflictos de accesos

hacia un mismo elemento de hardware. Un claro ejemplo de esto es duplicando

las ALU o las unidades de punto flotante con la finalidad de poder realizar

operaciones de forma simultanea.

La alternativa es insertar tiempos de espera.

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM

Page 43: Unidad 1 Arquitecturas Segmentados y Escalar

Ejecución Supér escalar

Instituto Tecnológico de Mérida - Arquitectura de computadoras - WMM