La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

[ Arquitectura de Computadores ] ORGANIZACIÓN FUNCIONAL Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.

Presentaciones similares


Presentación del tema: "[ Arquitectura de Computadores ] ORGANIZACIÓN FUNCIONAL Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia."— Transcripción de la presentación:

1 [ Arquitectura de Computadores ] ORGANIZACIÓN FUNCIONAL Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC 2342 Semestre 2006-2 Domingo Mery D.Mery 1 Arquitectura de Computadores

2 Präsentat ion D.Mery 2 Arquitectura de Computadores [ Índice ]  6.1 Implementación de datapath simples  6.2 Unidad de control  6.3 Realización hardwired vs. microprogramada  6.4 Pipeling  6.5 Introducción a Instruction-level-paralelism

3 Präsentat ion D.Mery 3 Arquitectura de Computadores [ Índice ]  6.1 Implementación de datapath simples  6.2 Unidad de control  6.3 Realización hardwired vs. microprogramada  6.4 Pipeling  6.5 Introducción a Instruction-level-paralelism

4 Präsentat ion D.Mery 4 Arquitectura de Computadores [ Organización ] Datapath Diagrama esquemático de un computador. Processor

5 Präsentat ion D.Mery 5 Arquitectura de Computadores [ Organización ] Datapath Algunas aclaraciones: Procesador (CPU): es la parte activa del computador, realiza todo el trabajo de manipulación de datos y toma de decisiones. Datapath (circuito por donde circulan los datos): es el hardware que realiza todas las operaciones requeridas tales como ALU, registros y buses internos. Control: es el hardware que le dice al datapath lo que tiene que hacer en términos de switch, selección de operación y movimiento de datos.

6 Präsentat ion D.Mery 6 Arquitectura de Computadores [ Organización ] Datapath Algunas aclaraciones: RISC: reduced (or regular) instruction set computer es una forma de diseñar CPU que contiene un conjunto de instrucciones muy simple y que casi todas las instrucciones toman el mismo tiempo de ejecución. Muchos procesadores modernos son RISC (ejemplos: SPARC, MIPS y PowerPC). Sin embargo, los CPU más utilizados como los x86 son CISC. CISC: complex instruction set computer se basa en que cada instrucción puede corresponder a varias operaciones de bajo nivel, tales como leer de memoria, operación aritmética, escribir en la memoria… todo en una sola instrucción.

7 Präsentat ion D.Mery 7 Arquitectura de Computadores [ Organización ] Datapath Los ejemplos mostrados a continuación corresponden a una arquitectura MIPS (microprocessor without interlocked pipeline stages).

8 Präsentat ion D.Mery 8 Arquitectura de Computadores [ Organización ] Diagrama esquemático de un procesador Datapath

9 Präsentat ion D.Mery 9 Arquitectura de Computadores [ Organización ] Register file: Diagrama de bloques Datapath

10 Präsentat ion D.Mery 10 Arquitectura de Computadores [ Organización ] Register file: implementación de dos read ports Datapath

11 Präsentat ion D.Mery 11 Arquitectura de Computadores [ Organización ] Register file: Implementación de un write port Datapath

12 Präsentat ion D.Mery 12 Arquitectura de Computadores [ Organización ] Diagrama de un datapath MIPS Datapath

13 Präsentat ion D.Mery 13 Arquitectura de Computadores [ Organización ] Data Memory & Sign Extender Datapath

14 Präsentat ion D.Mery 14 Arquitectura de Computadores [ Organización ] Datapath de una instrucción de formato R (operaciones sólo con registros) Datapath

15 Präsentat ion D.Mery 15 Arquitectura de Computadores [ Organización ] Datapath de una instrucción Load/Store Datapath

16 Präsentat ion D.Mery 16 Arquitectura de Computadores [ Organización ] Datapath de una instrucción de Branch (sallto condicional) Datapath

17 Präsentat ion D.Mery 17 Arquitectura de Computadores [ Organización ] Instrucciones R-format + load/store Datapath

18 Präsentat ion D.Mery 18 Arquitectura de Computadores [ Organización ] Instrucciones R-format + load/store + branch Datapath

19 Präsentat ion D.Mery 19 Arquitectura de Computadores [ Organización ] Diagrama esquemático de arquitectura MIPS (microprocessor without interlocked pipeline stages) Datapath

20 Präsentat ion D.Mery 20 Arquitectura de Computadores [ Índice ]  6.1 Implementación de datapath simples  6.2 Unidad de control  6.3 Realización hardwired vs. microprogramada  6.4 Pipeling  6.5 Introducción a Instruction-level-paralelism

21 Para cada instrucción posee un único código de ejecución. Acepta instrucciones y genera las señales de control necesarias para que la instrucción se ejecute. [ Organización ] Unidad de Control Präsentat ion D.Mery 21 Arquitectura de Computadores

22 Tareas de la CPU: 1.Captar instrucción: la CPU lee una instrucción de la memoria. 2.Interpretar instrucción: la instrucción se decodifica para determinar qué acción es necesaria. 3.Captar datos: la ejecución de una instrucción puede exigir leer datos de la memoria o de un módulo I/O. 4.Procesar datos: en la ejecución se puede exigir llevar a cabo alguna operación aritmética o lógica con los datos. 5.Escribir datos: los resultados de la ejecución pueden exigir escribir datos en la memoria o en un módulo I/O. [ Organización ] Unidad de Control Präsentat ion D.Mery 22 Arquitectura de Computadores

23 PC MUX0 MEM IR Control Unit AC1AC2 ALU MUX1MUX2 CC 00 in out dir Präsentat ion D.Mery 23 Arquitectura de Computadores

24 PC MUX0 MEM IR Control Unit AC1AC2 ALU MUX1MUX2 CC 00 in out dir Präsentat ion D.Mery 24 Arquitectura de Computadores

25 PC MUX0 MEM IR Control Unit AC1AC2 ALU MUX1MUX2 CC 00 in out dir Add ac1,ac2 0 0 0 0 1 01 0 1 0: add 1: sub 00: Select 1 01: Select 2 10: Select 3 11: Select 4 0: --- 1: Load 0: Read 1: Write 0 01 Präsentat ion D.Mery 25 Arquitectura de Computadores

26 Präsentat ion D.Mery 26 Arquitectura de Computadores [ Índice ]  6.1 Implementación de datapath simples  6.2 Unidad de control  6.3 Realización hardwired vs. microprogramada  6.4 Pipeling  6.5 Introducción a Instruction-level-paralelism

27 Hardwired: El programa se encuentra implementado íntegramente en microcircuitos integrados a la placa. Micro-programada: El dispositivo posee una ROM con las instrucciones del programa a realizar. Präsentat ion D.Mery 27 Arquitectura de Computadores [ Organización ] Hardwire vs.  programada

28 Ventajas HardwiredMicro-programada Muy rápida, es un flujo directoInterpretar instrucciones toma tiempo Redes muy complejas de implementar Programación estándar, escalable No puede modificarseEs posible hacer upgrade del programa Amarrado a la arquitecturaFlexible, varias implementaciones Präsentat ion D.Mery 28 Arquitectura de Computadores [ Organización ] Hardwire vs.  programada

29 Hardwired: –Control Decode –Mouse (Standar) –ALU Micro-programada (Firmware): –Bios –Palm –Tarjetas de red inalámbrica –Periféricos Präsentat ion D.Mery 29 Arquitectura de Computadores [ Organización ] Hardwire vs.  programada Ejemplos

30 Unidad de Control Präsentat ion D.Mery 30 Arquitectura de Computadores [ Organización ] Hardwire vs.  programada

31 Präsentat ion D.Mery 31 Arquitectura de Computadores [ Índice ]  6.1 Implementación de datapath simples  6.2 Unidad de control  6.3 Realización hardwired vs. microprogramada  6.4 Pipeling  6.5 Introducción a Instruction-level-paralelism

32 Präsentat ion D.Mery 32 Arquitectura de Computadores [ Organización ] Pipelining Lavado de un auto Secuencial

33 Präsentat ion D.Mery 33 Arquitectura de Computadores [ Organización ] Pipelining Lavado de un auto Paralelo

34 Präsentat ion D.Mery 34 Arquitectura de Computadores [ Organización ] Pipelining Lavado de un auto Pipeline

35 Präsentat ion D.Mery 35 Arquitectura de Computadores [ Organización ] Pipelining Secuencial Paralelo (3 personas) Pipeline (3 estados) Duración de lavado Velocidad de de un auto (T) procesamiento (V) 15 min 4 autos/hora 5 min 12 autos/hora 15 min 12 autos/hora

36 Präsentat ion D.Mery 36 Arquitectura de Computadores [ Organización ] Pipelining Idea de la estrategia pipeline: –Divide un proceso en estados independientes. –Mueve los objetos a través de los estados en forma secuencial. –Múltiples objetos son procesados al mismo tiempo. SecuencialParalelo Pipeline

37 Präsentat ion D.Mery 37 Arquitectura de Computadores [ Organización ] Pipelining Ejemplo con un solo estado: Descripción: –El cómputo requiere 300 nanosegundos –Adicionalmente, otros 20 ns para escribir los resultados –El reloj debe tener al menos un ciclo de 320 ns Lógica combinacional RegReg 300 ns20 ns Clock T = 320 ns V = 3.125 MOPS* MOPS* = Millones de operaciones por segundo

38 Präsentat ion D.Mery 38 Arquitectura de Computadores [ Organización ] Pipelining Descripción del sistema: –Se divide en tres bloques de lógica combinacional de 100 ns c/u. –Se puede iniciar una nueva opearación apenas se haya completado el estado A. Esto quiere decir que cada 120 ns se puede iniciar una nueva operación. –La latencia se incrementa (en total se necesitan 360 ns desde el inicio hasta el final). RegReg Clock Comb. logic A RegReg Comb. logic B RegReg Comb. logic C 100 ns20 ns100 ns20 ns100 ns20 ns T = 360 ns V = 8.33 MOPS Ejemplo con tres estados:

39 Präsentat ion D.Mery 39 Arquitectura de Computadores [ Organización ] Pipelining Tiempo OP1 OP2 OP3 Tiempo ABC ABC ABC OP1 OP2 OP3 Diagramas: Sin Pipeline No puede comenzar una nueva operación hasta que la anterior no haya terminado. Con Pipeline En este ejemplo, hasta tres operaciones se pueden estar ejecutando de manera simultanea.

40 Präsentat ion D.Mery 40 Arquitectura de Computadores [ Organización ] Pipelining Tiempo OP1 OP2 OP3 ABC ABC ABC 0120240360480640 Clock RegReg Comb. logic A RegReg Comb. logic B RegReg Comb. logic C 100 ns20 ns100 ns20 ns100 ns20 ns 239 RegReg Clock Comb. logic A RegReg Comb. logic B RegReg Comb. logic C 100 ns20 ns100 ns20 ns100 ns20 ns 241 RegReg RegReg RegReg 100 ns20 ns100 ns20 ns100 ns20 ns Comb. logic A Comb. logic B Comb. logic C Clock 300 RegReg Clock Comb. logic A RegReg Comb. logic B RegReg Comb. logic C 100 ns20 ns100 ns20 ns100 ns20 ns 359

41 Präsentat ion D.Mery 41 Arquitectura de Computadores [ Organización ] Pipelining –El desempeño está limitado por el estado más lento. –Los otros estados permanecen ociosos mucho tiempo. –Es necesario balancear las tareas RegReg Clock RegReg Log B RegReg Log C 50 ns 20 ns150 ns20 ns100 ns20 ns T = 510 ns V = 5.88 MOPS Log A Tiempo OP1 OP2 OP3 ABCABCABC Ejemplo con tres estados de distinta duración:

42 Präsentat ion D.Mery 42 Arquitectura de Computadores [ Organización ] Pipelining –El uso de más estados conlleva a mayores retrasos por los registros, sin embargo aumenta la velocidad. –Porcentaje de ciclo de reloj utilizado en la carga de registros. 1 estado 6.25%T=320nsV= 3.12MOPS 3 estados 16.67%T=360nsV= 8.33MOPS 6 estados28.57%T=420nsV=14.29MOPS –Los procesadores hoy en día usan muchos estados para aumentar su velocidad. T = 420 ns, V = 14.29 MOPSClock RegReg Comb. logic 50 ns20 ns RegReg Comb. logic 50 ns20 ns RegReg Comb. logic 50 ns20 ns RegReg Comb. logic 50 ns20 ns RegReg Comb. logic 50 ns20 ns RegReg Comb. logic 50 ns20 ns Ejemplo con seis estados:

43 Präsentat ion D.Mery 43 Arquitectura de Computadores [ Organización ] Pipelining Clock Lógica Combinacional RegReg Tiempo OP1 OP2 OP3 Cada operación depende del resultado de la operación anterior. Dependencia de los datos:

44 Präsentat ion D.Mery 44 Arquitectura de Computadores [ Organización ] Pipelining Es necesario tener cuidado con los resultados de la operación i, ya que aún no están disponibles al inicio de la operación i+1. Dependencia de los datos: RegReg Clock Comb. logic A RegReg Comb. logic B RegReg Comb. logic C Tiempo OP1 OP2 OP3 ABC ABC ABC OP4 ABC

45 Präsentat ion D.Mery 45 Arquitectura de Computadores [ Organización ] Pipelining Dependencia de los datos en una CPU: 1.LOAD A,50 2.ADD A,B 3.STORE (B), 100 –El resultado de una operación depende del resultado anterior. –Secuencia muy común en los programas. –Se debe asegurar que el pipeline maneje esta secuencia de manera correcta.

46 Präsentat ion D.Mery 46 Arquitectura de Computadores [ Organización ] Pipelining Hardware secuencial: –Los estados ocurren en forma secuencial. –Las operaciones se ejecutan una por una.

47 Präsentat ion D.Mery 47 Arquitectura de Computadores [ Organización ] Pipelining Estrategia pipeline: –Los estados son: Fetch selecciona PC actual lee instrucción incrementa PC Decodificación lee registros de programa Ejecución ejecución de ALU Uso de memoria lee/escribe memoria Actualización de PC actualiza register file

48 D.Mery 48 Arquitectura de Computadores [ Organización ] Pipelining Estrategia pipeline: Präsentat ion –Se agregan registros en cada estado

49 Präsentat ion D.Mery 49 Arquitectura de Computadores [ Organización ] Pipelining Hardware pipeline: –Los valores de los resitros se pasan hacia arriba. –Es imposible retroceder.

50 Präsentat ion D.Mery 50 Arquitectura de Computadores [ Organización ] Pipelining Ejemplo 1 de ejecución: LOAD A,01h #I1 123456789 FDEM W LOAD C,02h #I2 FDEM W LOAD D,03h #I3 FDEMW LOAD B,04h #I4 FDEMW HALT #I5 FDEMW Ciclo 5 W I1 M I2 E I3 D I4 F I5

51 Präsentat ion D.Mery 51 Arquitectura de Computadores [ Organización ] Pipelining Ejemplo 2 de ejecución: Es necesario utilizar 3 NOP 123456789 FDEMWFDEMW FDEMWFDEMW FDEMWFDEMW FDEMWFDEMW FDEMWFDEMW FDEMWFDEMW 10 W R[ %eax ]  3 W R[ %A ]  3 D valA  R[ %edx ]=10 valB  R[ %eax ]=3 D valA  R[ %D ]=10 valB  R[ %D ]=3 Ciclo 6 11 FDEMWFDEMW Ciclo 7 LOAD D,010h #I1 LOAD A,03h #I2 NOP #I3 NOP #I4 NOP #I5 ADD A,D #I6 HALT #I7

52 D.Mery 52 Arquitectura de Computadores [ Organización ] Pipelining Ejemplo 3 de ejecución: Con sólo 2 NOP LOAD D,010h #I1 LOAD A,03h #I2 NOP #I3 NOP #I4 ADD A,D #I5 HALT #I6 Präsentat ion 123456789 FDEMWFDEMW FDEMWFDEMW FDEMWFDEMW FDEMWFDEMW FDEMWFDEMW FDEMWFDEMW 10 W R[ %eax ]  3 D valA  R[ %edx ]=10 valB  R[ %eax ]=0 W R[ %eax ]  3 W R[ %A ]  3 D valA  R[ %edx ]=10 valB  R[ %eax ]=0 D valA  R[ %D ]=10 valB  R[ %A ]=0 Ciclo 6 Error

53 Präsentat ion D.Mery 53 Arquitectura de Computadores [ Índice ]  6.1 Implementación de datapath simples  6.2 Unidad de control  6.3 Realización hardwired vs. microprogramada  6.4 Pipeling  6.5 Introducción a Instruction-level-paralelism

54 Präsentat ion D.Mery 54 Arquitectura de Computadores [ Organización ] ILP Instruction Level Parallelism (ILP): Es la habilidad para ejecutar múltiples instrucciones simultáneamente.

55 Präsentat ion D.Mery 55 Arquitectura de Computadores [ Organización ] ILP ILP también se refiere a una medición que indica el número de operaciones de un programa computacional que pueden ser ejecutadas al mismo tiempo. Ejemplo:1.E = A + B 2.F = C + D 3. G = E x F Las instrucciones 1 y 2 no dependen de las anteriores, entonces se pueden ejecutar simultáneamente. Sin embargo, la instrucción 3 sólo se puede ejecutar cuando 1 y 2 hayan finalizado. En este caso ILP = 3/2.

56 Präsentat ion D.Mery 56 Arquitectura de Computadores [ Organización ] Procesador multi-ciclo secuencial ILP

57 Präsentat ion D.Mery 57 Arquitectura de Computadores [ Organización ] Pipelining (la forma más sencilla de ILP): muchas instrucciones se pueden ejecutar al mismo tiempo. ILP

58 Präsentat ion D.Mery 58 Arquitectura de Computadores [ Organización ] Hay otras posibilidades de ILP? ILP

59 Präsentat ion D.Mery 59 Arquitectura de Computadores [ Organización ] Dynamic scheduling: Consiste en extender la idea del paralelismo. Ejemplo: 1.ADD A,B 2.ADD A,C 3.ADD D,E La instrucción 2 depende de la instrucción 1, pero 3 no depende de 1, entonces: ¿por qué no ejecutar 1 y 3 de manera simultánea? ILP

60 Präsentat ion D.Mery 60 Arquitectura de Computadores [ Organización ] Dynamic scheduling: Se relaja la regla fundamental de la programación, ahora: Las instrucciones pueden ser ejecutadas en desorden, siempre y cuando se obtenga el mismo resultado. ILP 1.ADD A,B 2.ADD A,C 3.ADD D,E 1.ADD A,B 2.ADD D,E 3.ADD A,C Simultaneo!

61 Präsentat ion D.Mery 61 Arquitectura de Computadores [ Organización ] Dynamic scheduling ILP

62 Präsentat ion D.Mery 62 Arquitectura de Computadores [ Organización ] ILP Hay otras posibilidades de ILP?

63 Präsentat ion D.Mery 63 Arquitectura de Computadores [ Organización ] ILP Ejecución superescalar: ¿Por qué no se ejecuta más de una instrucción a la vez?

64 Präsentat ion D.Mery 64 Arquitectura de Computadores [ Organización ] ILP Ejecución superescalar:

65 Präsentat ion D.Mery 65 Arquitectura de Computadores [ Organización ] Ejecución superescalar, la decisión del orden de ejecución la toma la CPU ILP

66 Präsentat ion D.Mery 66 Arquitectura de Computadores [ Organización ] ILP


Descargar ppt "[ Arquitectura de Computadores ] ORGANIZACIÓN FUNCIONAL Präsentat ion Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia."

Presentaciones similares


Anuncios Google