Baixe o app para aproveitar ainda mais
Prévia do material em texto
Departamento de Ciência da Computação Arquitetura de Processadores Digitais ULA – Unidade Lógica e Aritmética ALU - Arithmetic Logic Unit ou ULA - Unidade Lógica e Aritmética − É construída com base em portas lógicas − No MIPS, é de 32 bits − Realiza as operações aritméticas e lógicas do computador: soma/subtração em complemento de 2 operação lógica AND operação lógica OR operação slt (set on less than, 1 se a < b) detecção de overflow l Decodificador: “traduz” a entrada de n bits para um outro valor Elementos Básicos da ULA Elementos Básicos da ULA S 00X S l Multiplexador: seletor de entradas 0 1 A B 00 01 X0 X1 10 11 X2 X3 2x1 4x1 F F Elementos Básicos da ULA CarryIn Soma a b CarryOut + Entradas Saídas a b CarryIn CarryOut Soma 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 Somador CarryOut 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Construindo uma ULA de 1 bit l AND e OR de 1 bit Construindo uma ULA de 1 bit Operação a 0 CarryIn l AND l OR l Adição b Saída1 2+ CarryOut ULA de 32 bits adição, AND, OR CarryIn CarryOut ULA 0 a0 b0 CarryIna1 Resultado0 CarryIn Operação CarryIn CarryOut ULA 1 a1 b1 CarryIn ULA 31 a31 b31 Resultado1 Resultado31 Subtração l Negativa de um dos operandos (b): inverter os bits e somar 1 l Para inverter, acrescentamos um multiplexador que escolhe entre b e a sua negação l Para somar 1, somamos o primeiro CarryIn (bit menos significativo) InverteBit OperaçãoCarryIn b 0 1 a Saída 0 1 2+ CarryOut NOR slt (set on less than) 1 se rs < rt, 0 em caso contrário l slt zera todos os bits de 1 a 31. O bit 0 (menos significativo) será 1 ou 0, dependendo do resultado da comparação l Solução: mais uma entrada, Less, que é igual ao resultado de slt para o bit nº 0 e 0 para os bits 1 a 31 slt (set on less than) InverteBit Operação a 0 CarryIn 0 1 InverteBit b 0 1 1 2+ CarryOut 3Less Calculando slt O bit menos significativo (bit 0) da ULA deve ser 1 se rs < rt Calcula-se este valor subtraindo rs de rt e toma-se o bit de sinal: se rs – rt < 0, então rt > rsse rs – rt < 0, então rt > rs Utiliza-se o próprio subtrator da ULA para obter este valor, modificando-se o último estágio Último Estágio da ULA InverteBit Operação a 0 1 CarryIn b 0 1 Saída 1 2+ 3 Overflow Set Overflow Primeiro Estágio da ULA InverteBit Operação a 0 1 CarryIn b 0 1 Saída 1 2+ 3Less Demais Estágios da ULA InverteBit Operação a 0 1 CarryIn b 0 1 Saída 1 2+ 30 ULA de 32 bits As instruções de desvio condicional bne e beq testam se dois valores são iguais ou não Para testar igualdade subtraem-se os dois operandos e testa-se se o resultado é zero: Testando a igualdade A = B se A – B = 0 Teste: operação NOR entre os bits do resultado Igual = not(R0 or R1 or ... or R31) Testando a igualdade ULA 0 a0 b0 a1 Resultado0 Operação NegaBit ULA 1 a1 b1 ULA 31 a31 b31 Resultado1 Resultado31 Overflow0 0 Set Zero ULA de 32 bits Exemplo de Tabela de Linhas de Controle 1 bit - Ainvert 1 bit - Binvert 4 bits - operação
Compartilhar