Unidade 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 Sumario da Aula unidade de processamento de um processador banco de registos unidade logica e aritmetica - ULA Arithmetic and Logic Unit - ALU estrutura de uma ULA unidade aritmetica somador subtractor multiplicador divisor unidade logica unidade de deslocamento Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 2 / 17 Unidade de Processamento Banco de registos ULA Palavra de controlo Bits de estado Operandos Resultado k m n n n Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 3 / 17 Banco de Registos Banco de 8 registos 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 Estrutura Interna da Unidade Logica e Aritmetica Unidade aritmtica Unidade de deslocamento Palavra de controlo n n n n Unidade lgica MUX 0 3 Sel n 2 1 A Resultado B n p q r 2 Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 5 / 17 Somador de 1 bit Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 6 / 17 Somador de 1 bit A B C S Semi-Somador Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 6 / 17 Somador de 1 bit A B C S Semi-Somador A B C C S i i i-1 i i Semi-somador Semi-somador Somador Completo Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 6 / 17 Somador em Cascata A B 0 0 C 0 A B 1 1 A B 2 2 A B 3 3 S 0 S 1 S 2 S 3 C out C 1 C 2 C 3 Somador completo Somador completo Somador completo Somador completo C in S A B C out C in S A B C out C in S A B C out C in S A B C out C in Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 7 / 17 Somador de 1 bit G 2 G 0 Y i 00 B i 01 B i 10 1 11 0 G 1 G 0 C in 00 0 01 1 10 C 11 C n n B G Y B B B Y Y Y n-1 n-1 1 1 0 0 G 0 2 ... ... G Cin C G 0 1 Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 8 / 17 Unidade Aritmetica + Cout Cin SelB G C Cout R B A n n n n Y SelC Cin 2 2 3 G 2 G 1 G 0 Y i C in Microoperacao 000 B i 0 R A +B soma 001 B i 1 R A B subtraccao 010 B i C R A +B +C soma com bit de transporte 011 B i 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 Multiplicacao A 1 1 0 1 Multiplicando B 1 0 1 0 Multiplicador 0 0 0 0 Produto parcial 1 1 0 1 Produto parcial 0 0 0 0 Produto parcial 1 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 Multiplicador A B 0 0 A 1 A 2 A 3 B 0 1 1 2 3 A A A A + B 0 2 1 2 3 A A A A 0 + B 0 3 1 2 3 A A A A + M 0 M 1 M 2 M 3 M 4 M 5 M 6 M 7 0 S 1 S 2 S 3 S out C 0 S 1 S 2 S 3 S out C 0 S 1 S 2 S 3 S out C Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 11 / 17 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 1 0 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 Unidade Logica 0 MUX 1 2 3 S S 0 1 A B i i R i H H 0 1 H 1 H 0 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 Operacoes de Deslocamento Deslocamento simples: SHL SHR C 0 C 0 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 Unidade de Deslocamento J 2 J 1 J 0 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 Unidade de Deslocamento A n-1 in 1 0 1 3 0 0 0 0 0 MUX 3 2 MUX Sel n 1 MUX Sel 1 MUX Sel 1 MUX Sel 1 ... R R n-1 R n-2 R 1 R 0 MUX 0 S 2 MUX Sel 1 C A n-1 A 1 n A A 0 J 2 J 1 J 0 A 2 A 0 A n-1 A n-3 A n-2 0 0 C A n-1 in out 0 C A 0 S 0 1 S S 0 1 Jose Monteiro (DEI / IST) Arquitectura de Computadores 2009-04-06 16 / 17 Tabela de Micro-operacoes da ULA S 4 S 3 S 2 S 1 S 0 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