circuitos aritméticos ii - autenticação · só é possível se expoente for o mesmo se não...
TRANSCRIPT
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