seti 04 054 transp curso micros - csicrafael/seti/seti_04_05... · movimiento de datos (copian...

36
J.L.Huertas SETI-03-04 Tr. 306 Ejemplo de un Procesador: MU0 Registros Instrucciones Datos Memoria Procesador Direcciones Instrucciones y datos Ejemplo de un Procesador: MU0

Upload: others

Post on 13-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 306

Ejemplo de un Procesador: MU0

Registros

Instrucciones

Datos

MemoriaProcesador

Direcciones

Instruccionesy datos

Ejemplo de un Procesador: MU0

Page 2: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 307

float fir_filter(float input, float *coef, int n, float *history{

int i;float *hist_ptr, *hist1_ptr, *coef_ptr;float output;hist_ptr = history;hist1_ptr = hist_ptr; /* use for history update */coef_ptr = coef + n - 1; /* point to last coef */

/*form output accumulation */output = *hist_ptr++ * (*coef_ptr_);for(i = 2; i < n; i++){

*hist1_ptr++ = *hist_ptr; /* update history array */output += (*hist_ptr++) * (*coef_ptr-);

}output += input * (*coef_ptr); /* input tap */*hist1_ptr = input; /* last history */return(output);

}

Page 3: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 308

Elementos del MU0

· Componentes:Un conjunto de dispositivos que configuran la estructura del MU0

· Conjunto de Instrucciones:Las operaciones que pueden ejecutarse con la estructura del MU0

· Configuración Lógica:La estructura operativa del MU0, formada por dos elementos:

El Camino de DatosLa Lógica de Controlww

qMU0 tiene 16 bits, con 12 bits de espacio de direcciones:4 bits

cod.op. Dirección (S)12 bits

Page 4: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 309

Componentes del MU0

· Contador de Programa (PC)

· Acumulador (ACC)

· Unidad Aritmético-Lógica (ALU)

· Registro de Instrucciones (IR)

· Lógica de control y de decodificación de instrucciones

Page 5: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 310

Instrucciones del MU0

Instrucción Cod.Oper. Efecto

LDA S 0000 ACC:=mem16[S]

STO S 0001 mem16[S]:=ACC

ADD S 0010 ACC:=ACC+mem16[S]

SUB S 0011 ACC:=ACC-mem16[S]

JMP S 0100 PC:=S

JGE S 0101 if ACC > 0 PC:=S

JNE S 0110 if ACC = 0 PC:=S

STP 0111 stop

Page 6: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 311

Tipos de Instrucciones

· Procesamiento de datos (ej. ADD, SUB)

· Movimiento de datos (copian datos de un lugar de la memoria

· Control de flujo (cambia la ejecución de una parte del

· Especiales (controlan el estado de ejecución del procesador, ej. STP)

· Puede haber instrucciones que entren en más de una categoría

a otro o de la memoria a los registros del procesador, ej. STO, LDA)

programa a otra diferente, ej. JMP)

Page 7: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 312

Direccionamiento de Instrucciones

Toda instrucción precisa:wel nombre de la instrucciónwel lugar de memoria donde están los operandoswel lugar de memoria donde debe guardarse el resultadowla dirección de la próxima instrucción a ejecutar

Toda instrucción precisa:

Forma “natural” de una instrucción: 4-direcciones

q bits

cod.op. direcc. op.1

m bits

direcc. próxdirecc. dest.direcc. op.2

m bits m bits m bits

Ejemplo: ADD d, s1, s2, next_i; d:=s1+s2

Page 8: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 313

Direccionamiento simplificado de Instrucciones

Instrucción 3-direcciones: suponiendo que la próxima instr.

q bitscod.op. direcc. op.1

m bitsdirecc. dest.direcc. op.2

m bits m bitsestá en la dirección siguiente

Instrucción 2-direcciones: suponiendo que el registro de destinoes el mismo que el registro fuente

q bitscod.op. direcc. op.1

m bitsdirecc. dest.

m bits

Instrucción 1-dirección: suponiendo implícito el registro de destino

Ejemplo: ADD d, s1 ; d:=d+s1

Ejemplo: ADD d, s1, s2, ; d:=s1+s2

q bitscod.op. direcc. op.1

m bits

Ejemplo: ADD s1 ; acumulador:=acumulador+s1

Page 9: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 314

Camino de Datos del MU0

Bus de Direcciones

Bus de Datos

Memoria

Contador dePrograma

Acumulador

Registro de

ALU

InstruccionesControl

Page 10: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 315

Page 11: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 316

Organización a nivel de Transferencias de Registro del MU0

Bsel

ACCce

ALUfs

Asel PCce

ACCoe

ACCzACC[15]

opcode

MEMrq RnW

IRceMU0

Memoria

IR

PC

A

ACC

Mux

Mux

ALUB

10

10

ResetEx/ft (execute/fetch)

Page 12: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 317

a b c d α β γ δ ε φ η ϕ κ λReset xxxx 1 x x x 0 0 1 1 1 0 = 0 1 1 0

LDA S 0000 0 0 x x 1 1 1 0 0 0 = B 1 1 1

0000 0 1 x x 0 0 0 1 1 0 B+1 1 1 0

STO S 0001 0 0 x x 1 x 0 0 0 1 x 1 0 1

0001 0 1 x x 0 0 0 1 1 0 B+1 1 1 0

ADD S 0010 0 0 x x 1 1 1 0 0 0 A+B 1 1 1

0010 0 1 x x 0 0 0 1 1 0 B+1 1 1 0

SUB S 0011 0 0 x x 1 1 1 0 0 0 A - B 1 1 1

0011 0 1 x x 0 0 0 1 1 0 B+1 1 1 0

JMP S 0100 0 x x x 1 0 0 1 1 0 B+1 1 1 0

JGE S 0101 0 x x 0 1 0 0 1 1 0 B+1 1 1 0

0101 0 x x 1 0 0 0 1 1 0 B+1 1 1 0

JNE S 0110 0 x 0 x 1 0 0 1 1 0 B+1 1 1 0

0110 0 x 1 x 0 0 0 1 1 0 B+1 1 1 0

STP 0111 0 x x x 1 x 0 0 0 0 x 0 1 0

SalidasEntradas

Unidad de Control del MU0: Comandos de cada Instrucción

Page 13: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 318

a Reset

b Ex/ft

c ACCz

d ACC15

α Asel

α Bsel

β ACCce

γ PCce

δ IRce

ε ACCoe

φ ALUfs

η MEMrq

ϕ RnW

κ Ex/ft

Salidas

Entradas

Page 14: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 319

Hasta 1980-85: Sólo sistemas CISCq Instruciones muy complejasq Uso de microcódigo en ROM para implementar las operaciones más fre-

cuentes.q Instrucciones de tamaño variable y nuchos formatos diferentesq Valores en memoria pueden ser utilizados directamente como operandosq Cada instrucción requiere muchos ciclos de reloj

Desde 1985:q Instruciones más simplesq Instruciones de tamaño fijo (32-b) y pocos formatos distintosq Un banco de registros (32 de 32-b)q Las instrucciones que procesan datos operan sólo sobre los registrosq Estas instrucciones están “separadas” de las que acceden a memoriaq Cada instrucción requiere muchos ciclos de reloj

Desde 1985: Aparecen sistemas RISCq Instruciones más simplesq Instruciones de tamaño fijo (32-b) y pocos formatos distintosq Un banco de registros (32 de 32-b)q Las instrucciones que procesan datos operan sólo sobre los registrosq Estas instrucciones están “separadas” de las que acceden a memoriaq Cada instrucción requiere un único ciclo de relojq La lógica de decodificación se hace con puertas lógicasq Las instrucciones se ejecutan en “pipeline”

Evolución

Page 15: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 320

Ejecución de Instrucciones

fetch decodif. ALU memor. result.registr.

Ejecución de una instrucción típica: 6 pasos

ejecución

1.- Sacar la instrucción de la memoria2.- Decodificar para saber de qué instrucción se trata3.- Acceder a los operandos que puedan ser necesarios desde el banco de registros4.- Combinar los operandos para formar:

a) el resultadob) una dirección de memoria

5.- Acceder a la memoria para obtener un dato-operando6.- Escribir el resultado en el banco de registros

tiempo

Page 16: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 321

Pipelining

Métodos para acelerar la ejecución de instrucciones:

a.- Varios/muchos registros en “pipeline”b.- Caché3.- Instrucciones super-escalares

tiempo

fetch decodif. ALU memor. result.registr.

fetch decodif. ALU memor. result.registr.

fetch decodif. ALU memor. result.registr.

fetch decodif. ALU memor. result.registr.

fetch decodif. ALU memor. result.registr.

fetch decodif. ALU memor. result.registr.

Page 17: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 322

Pipelining: Conflictos

tiempo

fetch decodif. ALU memor. result.registr.

fetch decodif. ALU memor. result.registr.

fetch decodif. ALU memor. result.registr.

fetch decodif. ALU memor. result.registr.espera

Page 18: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 323

Evolución de los Sistemas de Tratamiento de Información

CISC RISC

INTEL AMD

SPARC

ARM MIPS

LEON

Virtex

Page 19: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 324

ALU para ARM6

Registro Oper. A Registro Oper. B

Detector de Cero

Invierte A Invierte BPuertas XOR Puertas XOR

Funciones Lógicas Sumador

Mux Resultados

Función

Cin

C

Selector

V

N

Z

Page 20: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 325

Buses y Registros en ARM6

Registro de Direcciones

Desplazador

Incrementador

Banco de Registros

Multiplicador

ALU

B

Data In

Data Out

Tubería de Instrucciones

A

W

Din

Ad

PC Inc

shift out

Page 21: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 326

Estructura de Control de ARM6

Instrucción

Load/Store

Coprocesador

Direcciones

ControlMultiplicac.

CuentaCiclo

PLA Decodif.

Registros ALU DesplazadorControl Control Control Control

Page 22: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 327

Organización a nivel de Transferencias de Registro del MU0

Bsel

ACCce

ALUfs

Asel PCce

ACCoe

ACCzACC[15]

opcode

MEMrq RnW

IRceMU0

Page 23: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 328

Organización de ARM con pipeline de 3 etapas

· Un banco de registros

· Un desplazador/rotador (barrel

· Una ALU

· Registro de direcciones e increm.

· Registros de datos

shifter)

· Decodificador de instrucciones

· Lógica de control

Page 24: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 329

Organización de ARM con pipeline de 5 etapas

Page 25: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 330

Actividad de una instrucción de procesamiento de datos

Page 26: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 331

Actividad de una instrucción de almacenamiento

Page 27: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 332

Los dos primeros ciclos de actividad de una instrucción de salto

Page 28: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 333

Ejemplo: ARM7100

Page 29: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 334

Ejemplo: ARM7500 en un sistema

Proceso: 0,6 µmTransistores: 550.000

MIPs: 30

Niveles de metalización: 2 Area: 70 mm2

Potencia: 690 mWVDD: 5 VReloj: 33 MHz

MIPs/W: 43

Page 30: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 335

Ejemplo: SA-1100

Proceso: 0,35 µmTransistores: 2.500.000

MIPs: 220/250

Niveles de metalización: 32 Area: 75 mm2

Potencia: 330/550 mWVDD: 1,5/2 VReloj: 190/220 MHz

MIPs/W: 665/450

Page 31: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 336

Ejemplo: LEON e implementaciones

Page 32: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 337

Evolución actual y en el futuro cercano

Page 33: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 338

Evolución actual y en el futuro cercano

Page 34: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 339

Page 35: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 340

Evolución actual y en el futuro cercano

Page 36: SETI 04 054 transp curso micros - CSICrafael/SETI/SETI_04_05... · Movimiento de datos (copian datos de un lugar de la memoria · Control de flujo (cambia la ejecución de una parte

J.L.Huertas SETI-03-04

Tr. 341

Proceso: 0,25 µmTransistores: 110.000

MIPs: 220

Niveles de metalización: 3Area: 2,1 mm2

Potencia: 150 mWVDD: 2,5 VReloj: 200 MHz

MIPs/W: 1500