Circuitos Aritméticos II - Autenticação · Só é possível se expoente for o mesmo Se não...

24
Circuitos Aritméticos II José Costa Introdução à Arquitetura de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2013-10-11 José Costa (DEI/IST) Circuitos Aritméticos II 1

Transcript of Circuitos Aritméticos II - Autenticação · Só é possível se expoente for o mesmo Se não...

Circuitos Aritméticos II

José Costa

Introdução à Arquitetura de Computadores

Departamento de Engenharia Informática (DEI)Instituto Superior Técnico

2013-10-11

José Costa (DEI/IST) Circuitos Aritméticos II 1

Sumário

Vírgula Fixa

Representações em Vírgula Flutuante

Unidade Lógica e Aritmética

José Costa (DEI/IST) Circuitos Aritméticos II 2

Números Fracionários

Como são feitas as operações com números fracionários?

José Costa (DEI/IST) Circuitos Aritméticos II 3

Representação em Vírgula FixaFixed-point

Vírgula sempre na mesma posiçãoi bits para parte inteira, j bits para parte fracionária, i + j = n

bitsNúmeros negativos são representados em complemento para doisda mesma forma que os inteirosPosição diferente para a vírgula corresponde a um númerodiferenteSe i = 0 e j = n - só parte fracionáriaSe i = n e j = 0 - só parte inteira

José Costa (DEI/IST) Circuitos Aritméticos II 4

Operações em Vírgula Fixa

Usando Unidades Inteiras

Somas e subtrações funcionam exatamente da mesma formaMultiplicação também com a ressalva de colocar a vírgula nolugar certo e ajustar o número de bits

0 1, 1 0× 0 1, 1 0

0 0 0 00 1 1 0

0 1 1 00 0 0 00 1 0, 0 1 0 0

Divisões também mas no dividendo terá que se ajustar o númerode bits fracionários

José Costa (DEI/IST) Circuitos Aritméticos II 5

Representações em Vírgula FlutuanteFloating Point

Posição da vírgula varia de operando para operando

Teremos então que decidir onde colocar a vírgula

Operações são mais complicadas

José Costa (DEI/IST) Circuitos Aritméticos II 6

Mantissa e Expoente

S E F

(−1)S × 2E× F

0 010 0011 = 12

0 001 0110 = 12

José Costa (DEI/IST) Circuitos Aritméticos II 7

Operações em Vírgula FlutuanteMultiplicação e Divisão

São mais fáceis do que soma e subtração

Op1 = (−1)S1 × F1 × 2E1

Op2 = (−1)S2 × F2 × 2E2

Op1 × Op2 = (−1)S1⊕S2 × (F1 × F2)× 2E1+E2

Op1/Op2 = (−1)S1⊕S2 × (F1/F2)× 2E1−E2

José Costa (DEI/IST) Circuitos Aritméticos II 8

Operações em Vírgula FlutuanteSoma e Subtração

Só é possível se expoente for o mesmo

Se não forem entãoou se aumenta o expoente do menor operando e se desloca a

mantissa para a direita

ou se diminui o expoente do maior operando e se desloca a

mantissa para a esquerda

É preferível deslocar a mantissa para a direita para não seperderem os bits mais significativos

Op1 = (−1)S1 × F1 × 2E1

Op2 = (−1)S2 × F2 × 2E2

Se E1 > E2 entãoOp1 + Op2 = (−1)S1 × (F1 + F2 ≫ (E1 − E2))× 2E1

José Costa (DEI/IST) Circuitos Aritméticos II 9

A Recomendação IEEE-754Formato de precisão simples

32 bits - 8 são expoente e 23 mantissa

Formato de precisão dupla64 bits - 11 para expoente e 52 para mantissa

Mantissa1 implícito na posição mais alta e que não se representa

ExpoenteDeslocamento fixo - 127 para precisão simples e 1023 para

precisão dupla

1 10000001 01100000000000000000000−1, 0112 × 2129−127 = −5, 510

35, 8910 = 100011, 1110012 = 1, 000111110012 × 25

0 10000100 00011111001000000000000

José Costa (DEI/IST) Circuitos Aritméticos II 10

A Recomendação IEEE-754

Precisão E F valor

MáximoSimples 254 tudo 1’s 2254−127 × (1− 2−23) ≈ 1, 7014 × 1038

Dupla 2046 tudo 1’s 22046−1023 × (1− 2−52) ≈ 8, 9885× 10307

MínimoSimples 1 tudo 0’s 21−127 × (1, 0) ≈ 1, 1755 × 10−38

Dupla 1 tudo 0’s 21−1023 × (1, 0) ≈ 2, 2251 × 10−308

Casos EspeciaisE F Significado

255/1023= 0 ±∞

6= 0 Número inválido (NaN)

0= 0 Valor zero

6= 0 Número desnormalizado

José Costa (DEI/IST) Circuitos Aritméticos II 11

Unidades Lógicas e Aritméticas (ULA)Arithmetic and Logic Unit (ALU)

Circuito que realiza operações lógicas e aritméticas

As operações lógicas e aritméticas não têm muito a ver umascom as outras e por isso opta-se muitas vezes por separar essesdois circuitos

Comum também é termos uma unidade de deslocamento

José Costa (DEI/IST) Circuitos Aritméticos II 12

Estrutura de uma ULA

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

José Costa (DEI/IST) Circuitos Aritméticos II 13

Bits de Estado

Zero (Z): bit a 1 se resultado for 0

Transporte (C) (ou carry): bit de transporte para lá do bit maissignificativo do resultado (usado também nas operações dedeslocamento)

Sinal (N): bit mais significativo do resultado

Excesso (O) (ou overflow): bit a 1 quando resultado excede omáximo que é possível representar (XOR dos 2 últimos bits detransporte)

José Costa (DEI/IST) Circuitos Aritméticos II 14

Unidade Aritmética

+Cout Cin

SelB G

CCout

R

BA

n n

n

n

Y

SelCCin

2

2

3

G2 G0 Yi

0 0 Bi

0 1 Bi

1 0 11 1 0

n

n

B

G

Y

BBB

Y Y Yn-1

n-1

1

1 0

0

G0

2

...

...

José Costa (DEI/IST) Circuitos Aritméticos II 15

Unidade Aritmética

+Cout Cin

SelB G

CCout

R

BA

n n

n

n

Y

SelCCin

2

2

3

G1 G0 Cin

0 0 00 1 11 0 C

1 1 C

GCin

C

G0

1

José Costa (DEI/IST) Circuitos Aritméticos II 16

Unidade Aritmética

+Cout Cin

SelB G

CCout

R

BA

n n

n

n

Y

SelCCin

2

2

3

G2 G0 Yi

0 0 Bi

0 1 Bi

1 0 11 1 0

G1 G0 Cin

0 0 00 1 11 0 C

1 1 C

G2G1G0 Yi Cin Operação

000 Bi 0 R ← A + B soma

001 Bi 1 R ← A− B subtracção

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

011 Bi C R ← A− B − C subtracção 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

José Costa (DEI/IST) Circuitos Aritméticos II 17

Unidade Lógica

0

MUX1

2

3S S0 1

AB

i

i

Ri

HH0 1

H1H0 Operação

00 R ← A complemento

01 R ← A ∧ B conjunção

10 R ← A ∨ B disjunção

11 R ← A⊕ B disjunção exclusiva

José Costa (DEI/IST) Circuitos Aritméticos II 18

Unidade de Deslocamento

Deslocamento LógicoC 0 C0

Deslocamento Aritmético

C 0 C

Rotação

C C

Rotação com Transporte

C C

José Costa (DEI/IST) Circuitos Aritméticos II 19

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

J2J1J0 Operação000 R ← shr A deslocamento lógico à direita001 R ← shl A deslocamento lógico à esquerda010 R ← shra A deslocamento aritmético à direita011 R ← shla A deslocamento aritmético à esquerda100 R ← ror A rotação à direita101 R ← rol A rotação à esquerda110 R ← rorc A rotação à direita com transporte111 R ← rolc A rotação à esquerda com transporte

José Costa (DEI/IST) Circuitos Aritméticos II 20

Tabela de Controlo da ULA

S4S3S2S1S0 Operação00000 R ← A + B soma00001 R ← A− B subtracção00010 R ← A + B + C soma com bit transporte

00011 R ← A− B − C subtracção com transporte negado00100 R ← A− 1 decremento00101 R ← A + 1 incremento

00110 R ← A− C decremento, se C = 000111 R ← A + C incremento, se C = 1

01-00 R ← A complemento01-01 R ← A ∧ B conjunção01-10 R ← A ∨ B disjunção01-11 R ← A⊕ B disjunção exclusiva10000 R ← shr A deslocamento lógico à direita10001 R ← shl A deslocamento lógico à esquerda10010 R ← shra A deslocamento aritmético à direita10011 R ← shla A deslocamento aritmético à esquerda10100 R ← ror A rotação à direita10101 R ← rol A rotação à esquerda10110 R ← rorc A rotação à direita com transporte10111 R ← rolc A rotação à esquerda com transporte11- - - R ← A transferência

José Costa (DEI/IST) Circuitos Aritméticos II 21

Sumário

Vírgula Fixa

Representações em Vírgula Flutuante

Unidade Lógica e Aritmética

José Costa (DEI/IST) Circuitos Aritméticos II 22

Referências

Arquitectura de Computadores: dos Sistemas Digitais aosMicroprocessadores,

G. Arroz, J. Monteiro, A. Oliveira,Secções 5.5, 5.6 e 8.4

José Costa (DEI/IST) Circuitos Aritméticos II 23

Próxima Aula

Conjunto de Instruções (ISA)

José Costa (DEI/IST) Circuitos Aritméticos II 24