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

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

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

Publicado el 29 de Julio del 2019
742 visualizaciones desde el 29 de Julio del 2019
348,5 KB
45 paginas
Creado hace 6a (17/11/2017)
Fundamentos de Microprocesadores

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

Índice

• Introducción

• Ruta de datos uniciclo

• Control uniciclo

• Añadir más instrucciones

• Parámetros temporales en la ruta uniciclo

2

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

programador
se
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

Microarquitectura

• Hay múltiples implementaciones de la misma

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

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

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

– Multiciclo (U5)

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

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

distinto

4

Microarquitectura

‐ Uniciclo (U4)

INSTR 1
‐ Multiciclo (U5)

1 2 3

INSTR 1
‐ Segmentado

INSTR 2

1 2 3 4 5

INSTR 2

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

5

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.

6

Índice

• Introducción
• Ruta de datos uniciclo

• Control uniciclo

• Añadir más instrucciones

• Parámetros temporales en la ruta uniciclo

7

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

32

8

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

RD
A
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] =

CLK

WE

RD

A

Data

Memory
WD

lw
$0
$s1
0x2000

9

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

RD

A

Data

Memory
WD

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

lw $s1,0x2000($0)

10

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

15:0

Sign Extend

SignImm

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

lw $s1,0x2000($0)

11

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

RD
A
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

15:0

Sign Extend

SignImm

ALUResult <=

0x00002000 = 0x00000000 + 0x00002000

lw $s1,0x2000($0)

12

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)

13

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

RD

A

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

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

 La dirección de escritura se calculará igual que en el caso de lw

CLK

Instr

25:21

A1

WE3

CLK

PC'

PC

A
RD
Instruction
Memory

ALUControl2:0

010

SrcA

SrcB

Zero
ALUResult

U
L
A

RD1

RD2

A2
A3
WD3

Register

File

15:0

Sign Extend

SignImm

ALUResult <= 0x00002000 = 0x00000000 + 0x00002000 

CLK

WE

A

RD

Data

Memory
WD

15

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)

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

sw $s1,0x2000($0)

Result

16

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

A
RD
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

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

Result

17

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

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

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

(Hay que decodificar opcode y funct)

CLK

PC'

PC

0
1

A
RD
Instruction
Memory

Instr

25:21

A1

WE3

RD1

RD2

MemtoReg
MemWrite
Branch
ALUControl2:0
ALUSrc
RegDst
RegWrite

Control

Unit

31:26

5:0

Op
Funct

CLK

A2
A3
WD3

20:16

20:16

15:11

Register

File

0
1

WriteReg4:0

PCSrc

SrcA

SrcB

0
1

U
L
A

Zero
ALUResult

WriteData

CLK

WE

RD

A

Data

Memory
WD

ReadData

0
1

PCPlus4

+

4

15:0

Sign Extend

SignImm

<<2

PCBranch

+

Result

19

Índice

• Introducción

• Ruta de datos uniciclo
• Control uniciclo

• Añadir más instrucciones

• Parámetros temporales en la ruta uniciclo

20

Unidad de Control

• La UC consite en la generación de 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

21

Decodificador de la ALU

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)

22

Ruta de control

Señal

Significado

Significado de valores

0

1

MemToReg

MemWrite

Branch

PcSrc

ALUSrc

RegDst

Decide si al banco de registros le llega un 
dato de la memoria de datos o si le llega 
el resultado de la ALU
Decide si se va a escribir un registro en la 
memoria de datos.

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

Indica la dirección de registro destino

RegWrite

Indica si el banco de registros debe 
guardar un resultado

No

Resultado de 
la ALU

No

No

No

Registro RT
[20:16]

Registro RT
[20:16]

CLK

PC'

PC

0
1

A
RD
Instruction
Memory



PCPlus4

+

4

Dato de la 
memoria de 
datos






MemtoReg
MemWrite
Branch
ALUControl2:0
ALUSrc
RegDst
RegWrite

Dato Inm

Control

Unit

31:26

5:0

Op
Funct

Registro RD
[15:11]

CLK

Instr

25:21

A1

A2
A3
WD3

WE3

RD1

RD2

Register

File

0
1

WriteReg4:0

20:16

20:16
  • Links de descarga
http://lwp-l.com/pdf16386

Comentarios de: Unidad4. 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...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad