Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

19
Arquitectura de Computadores Unidade de Processamento de um Processador (5.1 a 5.4, 8.4) Jos´ e Monteiro Licenciatura em Engenharia Inform´ atica e de Computadores Departamento de Engenharia Inform´ atica (DEI) Instituto Superior T´ ecnico 6 de Abril, 2009 Jos´ e Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 1 / 17

Transcript of Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Page 1: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Arquitectura de ComputadoresUnidade de Processamento de um Processador (5.1 a 5.4, 8.4)

Jose Monteiro

Licenciatura em Engenharia Informatica e de Computadores

Departamento de Engenharia Informatica (DEI)Instituto Superior Tecnico

6 de Abril, 2009

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 1 / 17

Page 2: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Sumario da Aula

unidade de processamento de um processador

banco de registosunidade logica e aritmetica - ULAArithmetic and Logic Unit - ALU

estrutura de uma ULA

unidade aritmetica

somadorsubtractormultiplicadordivisor

unidade logica

unidade de deslocamento

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 2 / 17

Page 3: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Unidade de Processamento

Bancode

registos

ULA

Palavra decontrolo

Bits deestado

Operandos

Resultado

k

m

n

n n

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 3 / 17

Page 4: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Banco de Registos

Banco de 8registos

A

SelA

Escrita

SelB

SelD

D

B

n

3

3 3

n n

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 4 / 17

Page 5: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Estrutura Interna da Unidade Logica e Aritmetica

Unidadearitmética

Unidade dedeslocamento

Palavra decontrolo

n n

n

n

Unidadelógica

MUX0 3

Sel

n

21

A

Resultado

B

n

p q r

2

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 5 / 17

Page 6: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Somador de 1 bit

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 6 / 17

Page 7: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Somador de 1 bit

A

B

C

S

Semi-Somador

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 6 / 17

Page 8: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Somador de 1 bit

A

B

C

S

Semi-Somador

A

B

CC

Si

i

i-1

i

i

Semi-somador Semi-somador

Somador Completo

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 6 / 17

Page 9: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Somador em Cascata

A B0 0

C0

A B1 1

A B2 2

A B3 3

S0 S1 S2 S3

CoutC

1C

2C

3

Somadorcompleto

Somadorcompleto

Somadorcompleto

Somadorcompleto

Cin

SA B

CoutCin

SA B

CoutC in

SA B

CoutC in

SA B

CoutC in

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 7 / 17

Page 10: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Somador de 1 bit

G2G0 Yi

00 Bi

01 Bi

10 1

11 0

G1G0 Cin

00 0

01 1

10 C

11 C

n

n

B

G

Y

BBB

Y Y Yn-1

n-1

1

1 0

0

G0

2

...

...

GCin

C

G0

1

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 8 / 17

Page 11: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Unidade Aritmetica

+Cout Cin

SelB G

CCout

R

BA

n n

n

n

Y

SelCCin

2

2

3

G2G1G0 Yi Cin Microoperacao

000 Bi 0 R ← A + B soma

001 Bi 1 R ← A− B subtraccao

010 Bi C R ← A + B + C soma com bit de transporte

011 Bi C R ← A− B − C subtraccao com transporte negado

100 1 0 R ← A− 1 decremento

101 0 1 R ← A + 1 incremento

110 1 C R ← A− C decremento, se C = 0

111 0 C R ← A + C incremento, se C = 1

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 9 / 17

Page 12: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Multiplicacao

A 1 1 0 1 MultiplicandoB × 1 0 1 0 Multiplicador

0 0 0 0 Produto parcial1 1 0 1 Produto parcial

0 0 0 0 Produto parcial1 1 0 1 Produto parcial

M 1 0 0 0 0 0 1 0 Resultado

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 10 / 17

Page 13: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

MultiplicadorA

B

0

0

A1

A2

A3

B

0

1

123AAAA

+

B

0

2

123AAAA

0

+

B

0

3

123AAAA

+

M0

M1

M2

M3

M4

M5

M6

M7

0S1S2S3SoutC

0S1S2S3SoutC

0S1S2S3SoutC

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 11 / 17

Page 14: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Divisao

Dividendo A Divisor B

1 0 0 1 0 0 1 1 0101− 0 1 0 1 00011101

0 1 0 0 0 Resultado D

− 0 1 0 10 0 1 1 0− 0 1 0 1

0 0 0 1 1 1− 0 1 0 1

0 0 1 0 Resto R

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 12 / 17

Page 15: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Unidade Logica

0

MUX1

2

3S S0 1

AB

i

i

Ri

HH0 1

H1H0 Microoperacao

00 R ← A complemento

01 R ← A ∧ B conjuncao

10 R ← A ∨ B disjuncao

11 R ← A⊕ B disjuncao exclusiva

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 13 / 17

Page 16: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Operacoes de Deslocamento

Deslocamento simples:

SHL SHRC 0 C0

Deslocamento aritmetico:

SHLA SHRA

C 0 C

Rotacao:ROL ROR

C C

Rotacao com transporte:

ROLC RORC

C C

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 14 / 17

Page 17: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Unidade de Deslocamento

J2J1J0 Microoperacao

000 R ← shr A deslocamento logico a direita

001 R ← shl A deslocamento logico a esquerda

010 R ← shra A deslocamento aritmetico a direita

011 R ← shla A deslocamento aritmetico a esquerda

100 R ← ror A rotacao a direita

101 R ← rol A rotacao a esquerda

110 R ← rorc A rotacao a direita com transporte

111 R ← rolc A rotacao a esquerda com transporte

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 15 / 17

Page 18: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Unidade de Deslocamento

An-1

in

1 0 13

0

0000

MUX3 2

MUXSel

n

1MUXSel1

MUXSel1

MUXSel1

...

R

Rn-1 Rn-2 R1 R0

MUX0S 2

MUXSel1

C

An-1A1

n

A

A0

J 2J 1

J 0

A2A0An-1An-3An-2

00CAn-1

in

out

0CA0

S01S

S01

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 16 / 17

Page 19: Unidade de Processamento de Um Processador (5.1 a 5.4, 8.4)

Tabela de Micro-operacoes da ULA

S4S3S2S1S0 Microoperacao

00000 R ← A + B soma

00001 R ← A− B subtraccao

00010 R ← A + B + C soma com bit transporte

00011 R ← A− B − C subtraccao com transporte negado

00100 R ← A− 1 decremento

00101 R ← A + 1 incremento

00110 R ← A− C decremento, se C = 0

00111 R ← A + C incremento, se C = 1

01-00 R ← A complemento

01-01 R ← A ∧ B conjuncao

01-10 R ← A ∨ B disjuncao

01-11 R ← A⊕ B disjuncao exclusiva

10000 R ← shr A deslocamento logico a direita

10001 R ← shl A deslocamento logico a esquerda

10010 R ← shra A deslocamento aritmetico a direita

10011 R ← shla A deslocamento aritmetico a esquerda

10100 R ← ror A rotacao a direita

10101 R ← rol A rotacao a esquerda

10110 R ← rorc A rotacao a direita com transporte

10111 R ← rolc A rotacao a esquerda com transporte

11- - - R ← A transferencia

Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 17 / 17