PDF ing. sumoso 2015 Etc2 0304 cs1

15
CS1: Unidad de datos RT AC ALU 8 6 R W AB DB RAM 2 6 x8 Aumentar la cantidad de datos a manejar: incrementar el número de registros incluir una memoria RAM Ejecutar las instrucciones de forma autónoma: Almacenar las instrucciones en una memoria: en la memoria donde se almacenan los datos: arquitectura Von Neumann en otra memoria, específica para instrucciones: arquitectura Harvard La instrucción a ejecutar se extrae de la memoria y se almacena temporalmente en el registro de instrucción (IR, Instruction Register) CS1 CS1 Datos e instrucciones WT ZAC RAC s r WAC

Transcript of PDF ing. sumoso 2015 Etc2 0304 cs1

Page 1: PDF ing. sumoso 2015 Etc2 0304 cs1

CS1: Unidad de datos

RT

AC

ALU

8

6

R W

AB

DB

RAM 26x8

• Aumentar la cantidad de datos a manejar:

• incrementar el número de registros

• incluir una memoria RAM

• Ejecutar las instrucciones de forma autónoma:

• Almacenar las instrucciones en una memoria:

• en la memoria donde se almacenan los datos: arquitectura Von Neumann

• en otra memoria, específica para instrucciones: arquitectura Harvard

• La instrucción a ejecutar se extrae de la memoria y se almacena temporalmente en el registro de instrucción (IR, Instruction Register)

CS1

CS1

Datos e instrucciones

WT

ZACRAC

s

r

WAC

Page 2: PDF ing. sumoso 2015 Etc2 0304 cs1

CS1: Unidad de datos (2)

• En el CS1, las instrucciones incluyen un campo de dirección de operando (CD) donde se indica la dirección de la RAM donde se encuentra el operando

Cada instrucción tiene dos partes:

• Código de operación (CO): tipo de operación a realizar

• Operandos: datos con los que la instrucción va a trabajar:

• A veces la instrucción no necesita operandos; otras veces, los operandos están implícitos y no hay que incluirlos en la instrucción

CS1

R W

AB

DB

RAM 26x8

6

OpCD

CONTROLXs

CO

IR

TB

2

6[8]8

CS1 • |IR|=8bits; |CD|=6bits ⇒|CO|=2bits ⇒ 4 tipos de instrucciones

Page 3: PDF ing. sumoso 2015 Etc2 0304 cs1

CS1: Unidad de datos (3)

• Una vez ejecutada la instrucción actual, hay que extraer la siguiente desde memoria y almacenarla en IR

• Para ello es necesario un registro puntero de instrucciones (PC, Program Counter):

• almacena la dirección de memoria donde se encuentra la siguiente instrucción

• una vez transferida la nueva instrucción a IR, hay que incrementar PC (IPC) para apuntar a la siguiente

• inicialmente, PC vale 0 (CLPC), por lo que la primera instrucción siempre estará en la dirección 0 de la RAM

PC

6

IPCCLPC

Page 4: PDF ing. sumoso 2015 Etc2 0304 cs1

CS1: Unidad de datos (4)

ALU

RT

AC

AB

DB

RAM 26x8

CONTROL

IR[8]

CO CD

2

6

TB

MARTIR

TPC

PC

6

IPCCLPC PC

6

CD

6

El bus de direcciones de la RAM debe ser accedido por:

R W

6• El campo CDdel registro IR: para poder acceder al operando en memoria

8

WT

• El registro PC: para poder indicar la dirección de la siguiente instrucción

s

rXs

WAC

ZACRAC

• Se incluye el registro de direcciones de memoria (MAR, Memory Address Register) para almacenar temporalmente la dirección de la instrucción (TPC) o del dato (TIR)

Page 5: PDF ing. sumoso 2015 Etc2 0304 cs1

CS1: Instrucciones

1. Fase de búsqueda (fetch): la unidad de control se encarga de emitir las microoperaciones que permiten cargar en IR la instrucción apuntada por PC;

2. Fase de ejecución (exec): la unidad de control se encarga de emitir las microoperaciones necesarias (entre otras, acceder a los operandos) en función del código de operación de la instrucción.

1

0Xs

PC ← 0

CARTA ASM DE BUSQUEDA

01, 10, 11(ADD, SUB,STA)

00 (STOP)CO

CA

RTA

AS

M

DE

EJE

CU

CIÓ

N

Las instrucciones del CS1 son:CO (IR7-6) Registro IR Mnemónico Descripción nivel RT

00 0 0 x x x x x x STOP (Fin ejecución)

01 0 1 A5 A4 A3 A2 A1 A0 ADD A5-0 AC ← AC + RAM(A5-0)

10 1 0 A5 A4 A3 A2 A1 A0 SUB A5-0 AC ← AC - RAM(A5-0)

11 1 1 A5 A4 A3 A2 A1 A0 STA A5-0 RAM(A5-0) ← AC

Page 6: PDF ing. sumoso 2015 Etc2 0304 cs1

CS1: Instrucciones. Fase de búsqueda (1)

En el CS1, para cargar la siguiente instrucción en IR, necesitamos dos ciclos de reloj:

6

AB

DB

RAM 26x8MAR

TIRTPC

PC

6

IPCCLPC

Dir_Instr (dirección de la instrucción)R W

ALU

RT

AC

CONTROL

CO CD

2

IR[8]1. MAR ← PC 68

TB WT

2. IR ← RAM; PC ← PC + 1

s

rXs

WAC

ZACRAC

Page 7: PDF ing. sumoso 2015 Etc2 0304 cs1

CS1: Instrucciones. Fase de búsqueda (2)

6

AB

DB

RAM 26x8MAR

TIRTPC

PC

6

IPCCLPC

Dir_Instr

Dir_Instr

Dir_InstrR W

Dir_Instr Instrucción

ALU

RT

AC

8

CONTROL

CO CD

2

InstrucciónIR[8]1. MAR ← PC 6

TB WT

2. IR ← RAM; PC ← PC + 1

s

rXs

WAC

ZACRAC

Page 8: PDF ing. sumoso 2015 Etc2 0304 cs1

CS1: Instrucciones. Fase de búsqueda (fin)

Tras la fase de búsqueda:

• la instrucción a ejecutar estáalmacenada en IR

• PC contiene la dirección de la siguiente instrucción

6

AB

DB

RAM 26x8MAR

TIRTPC

PC

6

IPCCLPC

Dir_Instr

Dir_Instr

Dir_Instr +1R W

ALU

RT

AC

CONTROL

IR[8]

CO CD

2

6

Instrucción

8

TB WT

s

rXs

WAC

ZACRAC

Page 9: PDF ing. sumoso 2015 Etc2 0304 cs1

CS1: Instrucciones. Fase de ejecución [ADD] (1)

RT

AC

ALU

8

6

AB

DB

RAM 26x8

CONTROL

IR[8]

Dir_dato

2

6

TB

MARTIR

TPC

PC

6

IPCCLPC

01(ADD)

La fase de ejecución comienza donde terminó la fase de búsqueda.

ADD: AC ← AC + RAM(Dir_dato)

1º Extraer el dato(2 clk):

AC0

Dir_Instr +1

Dir_Instr

Dir_Instr

R W

WT

1. MAR ← IR s

2. RT ← RAM rXs

2º Realizar la suma(1 clk):

WAC

ZACRAC

3. AC ← AC + RTNota: antes de comenzar, AC = AC0

Page 10: PDF ing. sumoso 2015 Etc2 0304 cs1

CS1: Instrucciones. Fase de ejecución (2)

6

AB

DB

RAM 26x8MAR

TIRTPC

PC

6

IPCCLPC

Dir_dato

Dir_dato

Dir_Instr +1R W

Dir_dato Dato

LU

RTWT

AC AC0

WAC

ZACRAC

s

r A

8

CONTROL

IR[8]

Dir_dato

2

6

01(ADD)

Xs

TB

ADD: AC ← AC + RAM(Dir_dato)

1º Extraer el dato(2 clk):

Dato

1. MAR ← IR2. RT ← RAM

2º Realizar la suma(1 clk):

3. AC ← AC + RT

Page 11: PDF ing. sumoso 2015 Etc2 0304 cs1

CS1: Instrucciones. Fase de ejecución (3)

6

AB

DB

RAM 26x8MAR

TIRTPC

PC

6

IPCCLPC

Dir_dato

Dir_dato

Dir_Instr +1R W

AC

LU

AC0

AC+Dato

RTDato

WT

WAC

ZACRAC

s

r A

8

CONTROL

IR[8]

Dir_dato

2

6

01(ADD)TB

ADD: AC ← AC + RAM(Dir_dato)

1º Extraer el dato (2 clk):

1. MAR ← IR2. RT ← RAM Xs

2º Realizar la suma(1 clk):

3. AC ← AC + RT

Page 12: PDF ing. sumoso 2015 Etc2 0304 cs1

CS1: Instrucciones. Fase de ejecución (fin)

Al terminar la fase de ejecución de ADD, el registro AC queda actualizado con el resultado de la suma.

El sistema estálisto para buscar y ejecutar la siguiente instrucción (apuntada por PC).

6

AB

DB

RAM 26x8MAR

TIRTPC

PC

6

IPCCLPC

Dir_dato

Dir_dato

Dir_Instr +1R W

LU

RTDato

WT

AC

WAC

ZACRAC

AC0+Dato

s

r ACONTROL

IR[8]

Dir_dato

2

6

01(ADD)

8

TB

Xs

Page 13: PDF ing. sumoso 2015 Etc2 0304 cs1

MAR ← PC(TPC)

S1

IR ← RAMPC ← PC + 1(R, TB, IPC)

S2

RT ← RAM(R, WT)

11 01, 10IR7,6

S4

RAM←AC(RAC, W)

01, 10, 11

00IR7,6

S3

01 10IR7,6

AC ← AC+RT(s, WAC)

AC ← AC-RT(r, WAC)

S5

MAR ← IR(TIR)

Espera Xs, PC ← 0 (CLPC)

CS1: Controlador. Carta ASMEj

ecu

ción

IR ← RAM; PC ← PC + 1 (R, TB, IPC)

MAR ← PC (TPC)1

2

squ

eda

-AC ← AC - RT(r, WAC)

AC ← AC + RT(s, WAC)

-5

RAM ← AC(RAC, W)

RT ← RAM(R, WT)

-4

MAR ← IR (TIR)NOP3

STA AIR7,6=11

SUB AIR7,6=10

ADD AIR7,6=01

STOPIR7,6=00

Page 14: PDF ing. sumoso 2015 Etc2 0304 cs1

MAR ← PC(TPC)

S1

IR ← RAMPC ← PC + 1(R, TB, IPC)

S2

RT ← RAM(R, WT)

11 01, 10IR7,6

S4

RAM←AC(RAC, W)

01, 10, 11

00IR7,6

S3

01 10IR7,6

AC ← AC+RT(s, WAC)

AC ← AC-RT(r, WAC)

S5

MAR ← IR(TIR)

Espera Xs, PC ← 0 (CLPC)

CS1: Controlador. Implementación 1 b/e

0

1D q

1

≥1

0

1

2

3

0

1

DEC2:4

D q

2

D q

3

D q

4

D q

50

1

0

1

CLPC

Xs

IR7

TPC R1, TB, IPC

TIR

RAC, W

R2, WT WAC

sr

IR6

(ADD)

(STOP)

(STA)

≥1R1

R2R

Page 15: PDF ing. sumoso 2015 Etc2 0304 cs1

CS1: Ejemplo de programaDIR CONTENIDO RAM RT 00 1 1 1 0 0 0 0 0 STA $20 RAM($20) ← AC

01 1 0 1 0 0 0 0 0 SUB $20 AC ← AC – RAM($20) 02 0 1 1 1 1 1 1 0 ADD $3E AC ← AC + RAM($3E) 03 0 1 1 1 1 1 0 1 ADD $3D AC ← AC + RAM($3D) 04 1 0 1 1 1 1 0 0 SUB $3C AC ← AC – RAM($3C) 05 1 1 1 1 1 1 1 1 STA $3F RAM($3F) ← AC 06 0 0 0 0 0 0 0 0 STOP ... ... ... 20 Uso transitorio ... ... ... 3C Sustraendo: R 3D Sumando 2: S2 3E Sumando 1: S1 3F Resultado

CO (IR7-6) Registro IR Mnemónico Descripción nivel RT

00 0 0 x x x x x x STOP (Fin ejecución)

01 0 1 A5 A4 A3 A2 A1 A0 ADD A5-0 AC ← AC + RAM(A5-0)

10 1 0 A5 A4 A3 A2 A1 A0 SUB A5-0 AC ← AC - RAM(A5-0)

11 1 1 A5 A4 A3 A2 A1 A0 STA A5-0 RAM(A5-0) ← AC

AC = 0AC = S1AC = S1 + S2AC = S1 + S2 – RResultado = S1 + S2 - R