PDF de programación - Unidad 4. El Procesador II: Diseño y control de la ruta de datos. Arquitectura uniciclo

Imágen de pdf Unidad 4. El Procesador II: Diseño y control de la ruta de datos. Arquitectura uniciclo

Unidad 4. El Procesador II: Diseño y control de la ruta de datos. Arquitectura uniciclográfica de visualizaciones

Publicado el 16 de Septiembre del 2019
151 visualizaciones desde el 16 de Septiembre del 2019
360,2 KB
10 paginas
Creado hace 1a (23/07/2018)
Fundamentos de Microprocesadores

Índice

Unidad 4. El Procesador II: Diseño y control
de la ruta de datos. Arquitectura uniciclo

Escuela Politécnica Superior ‐ UAM

Copyright © 2007 Elsevier, “Digital Design and Computer Architecture”

1

Introducción

APLICACIÓN 
SOFTWARE

SISTEMAS
OPERATIVOS

PROGRAMAS

DRIVERS

ARQUITECTURA

MICRO‐

ARQUITECURA

LÓGICA

CIRCUITOS 
DIGITALES

CIRCUITOS
ANALÓGICOS

DISPOSITIVOS

INSTRUCCIONES
REGISTROS
CAMINO DE DATOS
CONTROLADORES
SUMADORES
MEMORIA

PUERTAS LÓGICAS

AMPLIFICADORES 
FILTROS
TRANSISTORES
DIODOS

FÍSICA

ELECTRONES

• Arquitectura:
 Es la visión que desde el punto de vista del
sistema

tiene

del

se
programador
computador (U3).

• Microarquitectura:
 Es la implementación en hardware del

computador (U4 y U5).

 Ruta de datos: bloques funcionales
 Ruta de control: señales de control internas

3

• Introducción

• Ruta de datos uniciclo

• Control uniciclo

• Añadir más instrucciones

Microarquitectura

• Hay múltiples implementaciones de la misma

arquitectura (juego de instrucciones):
– Uniciclo (U4)

• Cada instrucción se ejecuta en un ciclo de reloj

– Multiciclo (U5)

reloj mucho más rápido
– Segmentado (pipelined)

• Cada instrucción se divide en pasos cortos, cada uno de un ciclo de 

• Cada instrucción se divide en pasos cortos
• Se ejecutan múltiples instrucciones a la vez, cada una en un paso

(segmento) distinto.

2

4

1

Microarquitectura

‐ Uniciclo (U4)

INSTR 1
‐ Multiciclo (U5)

INSTR 2

1 2 3

INSTR 1

1 2 3 4 5

INSTR 2

‐ Segmentado (ARQ 3º)

1 2 3

INSTR 1

1 2 3 4 5

INSTR 2

1 2 3 4

INSTR 3
1 2 3 4 5

INSTR 4

Índice

• Introducción
• Ruta de datos uniciclo

• Control uniciclo

• Añadir más instrucciones

5

7

Subconjunto del MIPS

• Para estudiar

inicialmente sólo un subconjunto del
instrucciones:

la microarquitectura consideramos
juego de

 R‐Type: and, or, add, sub, slt
 I‐Type, de memoria : lw, sw
 I‐Type, de saltos: beq

• Luego añadiremos más instrucciones (addi, j(J‐Type)).

• En el laboratorio de prácticas se añadirán algunas más.

Estado de la arquitectura

• Se puede conocer en qué situación se encuentra el 

micro conociendo los valores de:
– PC
– Banco de registros (los 32 registros)
– Memoria (de código y de datos)

• Primeros elementos a considerar en la ruta de datos:

CLK

PC'
32

PC
32

32

A
RD
Instruction
Memory

32

CLK

A1
A2

WE3

RD1
RD2

32

32

A3
WD3

Register

File

5

5

5

32

CLK

WE

RD

A

Data

Memory
WD

32

32

6

32

8

2

Ruta de datos: lectura de registros lw

 PASO 2: lectura de los operandos fuente del banco de registros

CLK

PC'

PC

25:21

Instr

A
RD
Instruction
Memory

CLK

A1

A2
A3
WD3

WE3

RD1

RD2

Register

File

CLK

WE

A

RD

Data

Memory
WD

Ruta de datos: captura lw

El análisis de la ruta de datos comienza con la instrucción:
(0x8C112000)
y los pasos para ejecutarla:

lw $s1,0x2000($0)

 PASO 1: captura de instrucción (fetch)

CLK

PC'

PC

Instr

A
RD
Instruction
Memory

CLK

A1

A2
A3
WD3

WE3

RD1

RD2

Register

File

Instr <= “100011  00000  10001  0010000000000000” 
=> 
=> 
=>
=>

“100011” 
“00000”
“10001”
“0010000000000000”

op: Instr [31:26] =
rs: Instr [25:21] = 
rt: Instr [20:16] = 
imm:  Instr [15:0] =

Ruta de datos: dato inmediato lw

 PASO 3: extensión en signo del dato inmediato

CLK

PC'

PC

A
RD
Instruction
Memory

CLK

Instr

25:21

A1

WE3

RD1

RD2

A2
A3
WD3

Register

File

CLK

WE

A

RD

Data

Memory
WD

lw
$0
$s1
0x2000

9

CLK

WE

A

RD

Data

Memory
WD

15:0

Sign Extend

SignImm

SignImm <= 0x00002000 = Sign Extend (0x2000) 

15:0

Sign Extend

SignImm

ALUResult <=

0x00002000 = 0x00000000 + 0x00002000

lw $s1,0x2000($0)

11

lw $s1,0x2000($0)

A1: Instr [25:21] = “00000”;  RD1 <=“0x00000000” = ($0)

lw $s1,0x2000($0)

Ruta de datos: dirección lw

PASO 4: calcular la dirección para acceso a memoria de datos

sumando ([rs] + SignImm) en la ALU

CLK

Instr

25:21

A1

WE3

CLK

PC'

PC

A
RD
Instruction
Memory

A2
A3
WD3

Register

File

ALUControl2:0

010

SrcA

SrcB

Zero
ALUResult

U
L
A

RD1

RD2

CLK

WE

A

RD

Data

Memory
WD

10

12

3

Ruta de datos: leer memoria lw

 PASO 5: leer el dato buscado de memoria y escribirlo en el

registro destino, rt

CLK

PC'

PC

A
RD
Instruction
Memory

RegWrite

CLK

Instr

25:21

A1

20:16

A2
A3
WD3

1

WE3

RD1

RD2

Register

File

ALUControl2:0

010

Zero
ALUResult

SrcA

SrcB

U
L
A

CLK

WE

RD

A

Data

Memory
WD

ReadData

15:0

Sign Extend

SignImm

A3: Instr [20:16] = “10001” ($s1)

$s1 <= WD3 = MEM[0x00002000]   

lw $s1,0x2000($0)

+ Ruta de datos: instrucción sw

Sobre esta ruta de datos, vemos qué falta para otras instrucciones:
Empezamos con     sw $s1,0x2000($0) (0xAC112000)

 Pasos 1, 2, 3 y 4 iguales que en el caso de lw
ALUControl2:0

CLK

PC'

PC

A
RD
Instruction
Memory

CLK

Instr

25:21

A1

WE3

010

U
L
A

Zero
ALUResult

SrcA

SrcB

RD1

RD2

A2
A3
WD3

Register

File

CLK

WE

A

RD

Data

Memory
WD

15:0

Sign Extend

SignImm

ALUResult <= 0x00002000 = 0x00000000 + 0x00002000 

Ruta de datos: incrementar PC

PASO 6: incrementar el PC en 4 para tener la dirección de la

próxima instrucción

CLK

PC'

PC

A
RD
Instruction
Memory

RegWrite

CLK

Instr

25:21

A1

20:16

A2
A3
WD3

1

WE3

RD1

RD2

Register

File

ALUControl2:0

010

Zero
ALUResult

SrcA

SrcB

U
L
A

CLK

WE

A

RD

Data

Memory
WD

ReadData

PCPlus4

+

4

15:0

Sign Extend

SignImm

$PC <= $PC + 4   

lw $s1,0x2000($0)

Result

14

+ Ruta de datos: instrucción sw

 Falta una forma de leer un segundo registro y escribirlo en memoria

CLK

PC'

PC

A
RD
Instruction
Memory

RegWrite

CLK

Instr

25:21

A1

20:16

20:16

A2
A3
WD3

0

WE3

RD1

RD2

Register

File

ALUControl2:0

010

SrcA

SrcB

U
L
A

Zero
ALUResult

WriteData

MemWrite

1

WE

RD

CLK

A

Data

Memory
WD

ReadData

PCPlus4

+

4

15:0

Sign Extend

SignImm

A2: Instr [20:16] = “10001” ($s1)

sw $s1,0x2000($0)

MEM[0x00002000] <= RD2 = ($s1)  

Result

16

4

13

15

+ Ruta de datos: Instrucciones tipo-R

Ejemplo:  add $s1, $t1, $t2
 Leer dos registros fuente, rs y rt. Ambos son entradas de la ALU
 Lo que se escribe en registro es ALUResult y no lo que viene de memoria
 Se escribe en rd (en lugar de rt).

(0x012A8820)

RegWrite

RegDst

ALUSrc

1

0

ALUControl2:0
varies

SrcA

SrcB

U
L
A

Zero
ALUResult

WriteData

0
1

MemWrite

MemtoReg

0

0
1

ReadData

CLK

0

WE

RD

A

Data

Memory
WD

CLK

PC'

PC

RD
A
Instruction
Memory

CLK

Instr

25:21

A1

A2
A3
WD3

20:16

20:16

15:11

1

WE3

RD1

RD2

Register

File

0
1

WriteReg4:0

PCPlus4

+

4

15:0

Sign Extend

SignImm

+ Ruta de datos: instrucción beq

Se decide si se salta o no con la bandera Z
 Cálculo de la dirección de salto (Branch Target Address): 

BTA = (PC+4) + (Sign Extend {imm << 2})

RegWrite

RegDst

ALUSrc

x

0

ALUControl2:0

110

Branch

1

PCSrc

MemWrite

MemtoReg

CLK

PC'

PC

0
1

A
RD
Instruction
Memory

CLK

Instr

25:21

A1

A2
A3
WD3

20:16

20:16

15:11

0

WE3

RD1

RD2

Register

File

0
1

WriteReg4:0

PCPlus4

+

4

SrcA

SrcB

0
1

U
L
A

Zero
ALUResult

WriteData

15:0

Sign Extend

SignImm

<<2

PCBranch

+

x

0
1

ReadData

CLK

0

WE

RD

A

Data

Memory
WD

Result

A3: Instr [15:11] = “10001” ($s1)        $s1 <= WD3 = ALUResult ($t1+$t2)

Result

17

Branch se pondrá a 1 si se está ejecutando un beq
PCSrc se pondrá a 1 si Branch=1 y la condición de salto se cumple (Z=1)
18

Ruta de datos y de control

Índice

Las señales de control se generan según cada instrucción

(Hay que decodificar opcode y funct)

15:0

Sign Extend

SignImm

<<2

PCBranch

+

Result

19

20

5

MemtoReg
MemWrite
Branch
ALUControl2:0
ALUSrc
RegDst
RegWrite

Control

Unit

31:26

5:0

Op
Funct

CLK

RD1

RD2

A2
A3
WD3

20:16

20:16

15:11

Register

File

0
1

WriteReg4:0

CLK

PC'

PC

0
1

RD
A
Instruction
Memory

Instr

25:21

A1

WE3

PCPlus4

+

4

PCSrc

SrcA

SrcB

0
1

U
L
A

Zero
ALUResult

WriteData

CLK

WE

RD

A

Data

Memory
WD

ReadData

0
1

• Introducción

• Ruta de datos uniciclo
• Control uniciclo

• Añadir más instrucciones

Unidad de Control

Decodificador de la ALU

• La Unidad de Control UC, genera dos buses de control:

 ALUControl (3 bits): depende de opcode y funct
 Resto (6 bits): sólo depende de opcode, no depende de funct

Control

Unit

Opcode5:0

Main

Decoder

MemtoReg
MemWrite
Branch
ALUSrc
RegDst
RegWrite

Funct5:0

ALU

Decoder

ALUControl2:0

Ruta de control

Señal

Significado

Significado de valores
0
1

MemToReg

Decide si al banco de registros les llega un dato de la memoria de 
datos o si le llega el resultado de la ALU

Resultado de la ALU

Dato de la memoria 
de datos

MemWrite

Decide si se va a escribir un registro en la memoria de datos.

Branch

PcSrc

ALUSrc

Indica si se está ejecutando una instrucción beq

Indica si hay que realizar el salto del beq. Sólo activa cuando 
Branch=1 y Z=1

Decide cuál será el segundo operando de la ALU

RegDst

Indica la dirección de registro destino

No

No

No

Registro RT
[20:16]

Registro RT
[20:16]

RegWrite

Indica si el banco de registros debe guardar un resultado

No

+







Dato Inm

Registro RD
[15:11]



U
L
A

+

21

23

X

OPCODE
100011 (lw)
101011 (sw)
000100 (beq) X
000000
000000
000000
000000
000000

Funct

100000 (add)
100010 (sub)
100100 (and)
100101 (or)
101010 (slt)

ALUControl2:0

010 (Sumar)

110 (Restar)
010 (Sumar)
110 (Restar)
000 (Y lógico)
001 (O lógico)
111 (SetLessThan)

Ruta de control

Señal

Significado

Significado de valores
0
1

MemToReg

Decide si al banco de registros les llega un dato de la memoria de 
datos o si le llega el resultado de la ALU

Resultado de la ALU

Dato de la memoria 

de datos

MemWrite

Decide si se va a escribir un registro en la memoria de datos.

Branch

PcSrc

ALUSrc

Indica si se está ejecutando una instrucci
  • Links de descarga
http://lwp-l.com/pdf16581

Comentarios de: Unidad 4. El Procesador II: Diseño y control de la ruta de datos. Arquitectura uniciclo (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad