Circuitos Aritméticos II José Costa Itrodução à Arquitetura de Computadores Departameto de Egeharia Iformática (DEI) Istituto Superior Técico 2013-10-11 José Costa (DEI/IST) Circuitos Aritméticos II 1
Sumário Vírgula Fixa Represetações em Vírgula Flutuate Uidade Lógica e Aritmética José Costa (DEI/IST) Circuitos Aritméticos II 2
Números Fracioários Como são feitas as operações com úmeros fracioários? José Costa (DEI/IST) Circuitos Aritméticos II 3
Represetação em Vírgula Fixa Fixed-poit Vírgula sempre a mesma posição i bits para parte iteira, j bits para parte fracioária, i + j = bits Números egativos são represetados em complemeto para dois da mesma forma que os iteiros Posição diferete para a vírgula correspode a um úmero diferete Se i = 0 e j = - só parte fracioária Se i = e j = 0 - só parte iteira José Costa (DEI/IST) Circuitos Aritméticos II 4
Operações em Vírgula Fixa Usado Uidades Iteiras Somas e subtrações fucioam exatamete da mesma forma Multiplicação também com a ressalva de colocar a vírgula o lugar certo e ajustar o úmero de bits 0 1, 1 0 0 1, 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0, 0 1 0 0 Divisões também mas o dividedo terá que se ajustar o úmero de bits fracioários José Costa (DEI/IST) Circuitos Aritméticos II 5
Represetações em Vírgula Flutuate Floatig Poit Posição da vírgula varia de operado para operado Teremos etão que decidir ode colocar a vírgula Operações são mais complicadas José Costa (DEI/IST) Circuitos Aritméticos II 6
Matissa e Expoete S E F ( 1) S 2 E F 0 010 0011 = 12 0 001 0110 = 12 José Costa (DEI/IST) Circuitos Aritméticos II 7
Operações em Vírgula Flutuate Multiplicação e Divisão São mais fáceis do que soma e subtração Op1 = ( 1) S 1 F 1 2 E 1 Op2 = ( 1) S 2 F 2 2 E 2 Op1 Op2 = ( 1) S 1 S 2 (F 1 F 2 ) 2 E 1+E 2 Op1/Op2 = ( 1) S 1 S 2 (F 1 /F 2 ) 2 E 1 E 2 José Costa (DEI/IST) Circuitos Aritméticos II 8
Operações em Vírgula Flutuate Soma e Subtração Só é possível se expoete for o mesmo Se ão forem etão ou se aumeta o expoete do meor operado e se desloca a matissa para a direita ou se dimiui o expoete do maior operado e se desloca a matissa para a esquerda É preferível deslocar a matissa para a direita para ão se perderem os bits mais sigificativos Op1 = ( 1) S 1 F 1 2 E 1 Op2 = ( 1) S 2 F 2 2 E 2 Se E 1 > E 2 etão Op1+Op2 = ( 1) S 1 (F 1 + F 2 (E 1 E 2 )) 2 E 1 José Costa (DEI/IST) Circuitos Aritméticos II 9
A Recomedação IEEE-754 Formato de precisão simples 32 bits - 8 são expoete e 23 matissa Formato de precisão dupla 64 bits - 11 para expoete e 52 para matissa Matissa 1 implícito a posição mais alta e que ão se represeta Expoete Deslocameto fixo - 127 para precisão simples e 1023 para precisão dupla 1 10000001 01100000000000000000000 1, 011 2 2 129 127 = 5, 5 10 35, 89 10 = 100011, 111001 2 = 1, 00011111001 2 2 5 0 10000100 00011111001000000000000 José Costa (DEI/IST) Circuitos Aritméticos II 10
A Recomedação IEEE-754 Máximo Míimo Precisão E F valor Simples 254 tudo 1 s 2 254 127 (1 2 23 ) 1, 7014 10 38 Dupla 2046 tudo 1 s 2 2046 1023 (1 2 52 ) 8, 9885 10 307 Simples 1 tudo 0 s 2 1 127 (1, 0) 1, 1755 10 38 Dupla 1 tudo 0 s 2 1 1023 (1, 0) 2, 2251 10 308 Casos Especiais E F Sigificado 255/1023 = 0 ± 0 Número iválido (NaN) 0 = 0 Valor zero 0 Número desormalizado José Costa (DEI/IST) Circuitos Aritméticos II 11
Uidades Lógicas e Aritméticas (ULA) Arithmetic ad Logic Uit (ALU) Circuito que realiza operações lógicas e aritméticas As operações lógicas e aritméticas ão têm muito a ver umas com as outras e por isso opta-se muitas vezes por separar esses dois circuitos Comum também é termos uma uidade de deslocameto José Costa (DEI/IST) Circuitos Aritméticos II 12
Estrutura de uma ULA A B Palavra de cotrolo Uidade aritmética Uidade lógica p q r 0 1 2 3 SelMUX 2 Uidade de deslocameto Resultado José Costa (DEI/IST) Circuitos Aritméticos II 13
Bits de Estado Zero (Z): bit a 1 se resultado for 0 Trasporte (C) (ou carry): bit de trasporte para lá do bit mais sigificativo do resultado (usado também as operações de deslocameto) Sial (N): bit mais sigificativo do resultado Excesso (O) (ou overflow): bit a 1 quado resultado excede o máximo que é possível represetar (XOR dos 2 últimos bits de trasporte) José Costa (DEI/IST) Circuitos Aritméticos II 14
Uidade Aritmética A B SelB Y 2 2 3 G Cout Cout + Ci Ci SelC C R B G 2 G 0 Y i 0 0 B i 0 1 B i 1 0 1 1 1 0 B-1 B1 B0...... Y-1 Y1 Y0 G2 G 0 Y José Costa (DEI/IST) Circuitos Aritméticos II 15
Uidade Aritmética A B SelB Y 2 2 3 G Cout Cout + Ci Ci SelC C R G 1 G 0 C i 0 0 0 0 1 1 1 0 C 1 1 C Ci G 0 G1 C José Costa (DEI/IST) Circuitos Aritméticos II 16
Uidade Aritmética A B SelB Y 2 2 3 G G 2 G 0 Y i 0 0 B i 0 1 B i 1 0 1 1 1 0 Cout Cout + R Ci Ci SelC G 2 G 1 G 0 Y i C i Operação 000 B i 0 R A+B soma 001 B i 1 R A B subtracção C G 1 G 0 C i 0 0 0 0 1 1 1 0 C 1 1 C 010 B i C R A+B + C soma com bit de trasporte 011 B i C R A B C subtracção com trasporte egado 100 1 0 R A 1 decremeto 101 0 1 R A+1 icremeto 110 1 C R A C decremeto, se C = 0 111 0 C R A+C icremeto, se C = 1 José Costa (DEI/IST) Circuitos Aritméticos II 17
Uidade Lógica 0 1 2 MUX R i A B i i 3 S S 0 1 H 0 H 1 H 1 H 0 Operação 00 R A complemeto 01 R A B cojução 10 R A B disjução 11 R A B disjução exclusiva José Costa (DEI/IST) Circuitos Aritméticos II 18
Uidade de Deslocameto Deslocameto Lógico C 0 0 C Deslocameto Aritmético C 0 C Rotação C C Rotação com Trasporte C C José Costa (DEI/IST) Circuitos Aritméticos II 19
Uidade de Deslocameto A A -2 A 0 A -1 A -3 A -1 A 0 A 2 A -1 A 1 Ci 0 Ci 0 0 S 3 2 1 0 S 3 2 1 0 S 1 MUX S 1 0 0 MUX A -1 A 0 J 2 J 1 J 0 Sel 1 0 0 MUX Sel 1 MUX... 0 0 Sel 1 MUX Sel 1 MUX R -1 R -2 R 1 R 0 0 Sel 1 MUX R Cout J 2 J 1 J 0 Operação 000 R shr A deslocameto lógico à direita 001 R shl A deslocameto lógico à esquerda 010 R shra A deslocameto aritmético à direita 011 R shla A deslocameto aritmético à esquerda 100 R ror A rotação à direita 101 R rol A rotação à esquerda 110 R rorc A rotação à direita com trasporte 111 R rolc A rotação à esquerda com trasporte José Costa (DEI/IST) Circuitos Aritméticos II 20
Tabela de Cotrolo da ULA S 4 S 3 S 2 S 1 S 0 Operação 00000 R A+B soma 00001 R A B subtracção 00010 R A+B + C soma com bit trasporte 00011 R A B C subtracção com trasporte egado 00100 R A 1 decremeto 00101 R A+1 icremeto 00110 R A C decremeto, se C = 0 00111 R A+C icremeto, se C = 1 01-00 R A complemeto 01-01 R A B cojução 01-10 R A B disjução 01-11 R A B disjução exclusiva 10000 R shr A deslocameto lógico à direita 10001 R shl A deslocameto lógico à esquerda 10010 R shra A deslocameto aritmético à direita 10011 R shla A deslocameto aritmético à esquerda 10100 R ror A rotação à direita 10101 R rol A rotação à esquerda 10110 R rorc A rotação à direita com trasporte 10111 R rolc A rotação à esquerda com trasporte 11- - - R A trasferêcia José Costa (DEI/IST) Circuitos Aritméticos II 21
Sumário Vírgula Fixa Represetações em Vírgula Flutuate Uidade Lógica e Aritmética José Costa (DEI/IST) Circuitos Aritméticos II 22
Referêcias Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, G. Arroz, J. Moteiro, A. Oliveira, Secções 5.5, 5.6 e 8.4 José Costa (DEI/IST) Circuitos Aritméticos II 23
Próxima Aula Cojuto de Istruções (ISA) José Costa (DEI/IST) Circuitos Aritméticos II 24