Aritmética do computador

Description

Mapa mental referente a segunda parte do trabalho final, realizado pelo grupo 7: Matheus Henrique de Sousa dos Reis Andrade, Lucas Juscelino de Sousa, Natan Cesário Martins de Loiola, João Lucas da Silva Dutra e José Maria da Silva Júnior.
Lucas Juscelino
Mind Map by Lucas Juscelino, updated more than 1 year ago
Lucas Juscelino
Created by Lucas Juscelino almost 2 years ago
11
0

Resource summary

Aritmética do computador
  1. A Unidade Lógica e Aritmética (ALU)
    1. A Unidade Lógica Aritmética é a parte do computador que realiza as operações lógicas e aritméticas sobre os dados. Esta parte do computador é considerada, de certa forma, o núcleo do computador, pois todas as outras áreas do computador como por exemplo a UC, os registradores, memórias e E/S levam dados para serem processados.
      1. •Uma ALU é baseada nos dispositivos lógicos digitais simples, que podem armazenar dígitos binários e realizar operações booleanas simples.
        1. Os dados são apresentados à ALU pelos registradores e os resultados de uma operação são armazenados nos registradores.
          1. Uma ALU também pode definir flags como resultado de uma operação como por exemplo, uma flag de overflow é definida como 1 se o resultado do cálculo exceder o tamanho do registrador. Os valores da flag também são armazenados nos registradores dentro do processador.
            1. A unidade de controle dá sinais que controlam a operação da ALU e o movimento de dados para dentro e para fora da ALU.
    2. Representação de inteiros
      1. A base binária, assim como a decimal, é capaz de simbolizar todos os números possíveis e imagináveis. No entanto, ao contrário da forma mais comum, utiliza apenas os símbolos 0 e 1. No caso de "vinte e quatro", por exemplo, se escreve 11000.
        1. No sistema numérico binário, números quaisquer podem ser representados apenas com os dígitos zero e um, o sinal de menos e a vírgula, ou vírgula fracionada.
          1. Para as finalidades de armazenamento e processamento no computador, porém não temos o benefício dos sinais de menos e vírgulas. Somente digitos binários (0 e 1) podem ser usados para representar os números. Se estivermos limitados a inteiros não negativos, a representação é direta.
            1. Existem várias convenções alternativas usadas para representar números inteiros negativos e também positivos, todas envolvem o tratamento do bit mais signifi cativo (mais à esquerda) na palavra como um bit de sinal. Se o bit de sinal for 0, o número é positivo; se o bit de sinal for 1, o número é negativo. A forma de representação mais simples que emprega um bit de sinal é a representação sinal -magnitude. Em uma palavra de n bits, os n – 1 bits mais à direita representam a magnitude do inteiro.
      2. Aritmética com inteiros
        1. Negação: Na representação sinal -magnitude, a regra para formar a negação de um inteiro é simples: inverta o bit de sinal. Na notação de complemento de dois, a negação de um inteiro pode ser formada com as seguintes regras:
          1. 1. Apanhe o complemento booleano de cada bit do inteiro (incluindo o bit de sinal). Ou seja, defi na cada 1 como 0, e cada 0 como 1.
            1. 2. Tratando o resultado como um inteiro binário sem sinal, some 1.
              1. Esse processo em duas etapas é conhecido como a operação de complemento de dois, ou achar o complemento de dois de um inteiro.
                1. Adição e subtração : A adição prossegue como se os dois números fossem inteiros sem sinal. Os quatro primeiros exemplos ilustram operações bem sucedidas. Se o resultado da operação for positivo, obtemos um número positivo na forma de complemento de dois, que é a mesma que na forma de inteiro sem sinal. Se o resultado da operação for negativo, obtemos um número negativo na forma de complemento a dois. Observe que, em alguns casos, existe um bit de carry além do final da palavra (indicado pelo sombreado), que é ignorado.
                  1. Em qualquer adição, o resultado pode ser maior do que pode ser mantido no tamanho da palavra sendo usado. Essa condição é chamada de overflow (estouro). Quando ocorre overflow, a ALU precisa sinalizar esse fato de modo que não haja qualquer tentativa de usar o resultado. Para detectar o overflow, a seguinte regra é observada:
                    1. Regra do overflow: se dois números são somados e ambos são positivos ou ambos negativos, então o overflow ocorre se, e somente se, o resultado tiver o sinal oposto.
                      1. Regra da subtração: para subtrair um número (subtraendo) de outro (minuendo), apanhe o complemento de dois (negação) do subtraendo e some-o ao minuendo.
                        1. Multiplicação Em comparação com a adição e a subtração, a multiplicação é uma operação complexa, seja ela realizada no hardware ou pelo software. Diversos algoritmos foram usados em diversos computadores. A finalidade desta subseção é dar ao leitor alguma ideia do tipo de técnica normalmente utilizado. Começamos com o problema mais simples de multiplicar dois inteiros sem sinal (não negativos) e depois examinamos uma das técnicas mais comuns para a multiplicação de números na representação de complemento a dois
                          1. INTEIROS SEM SINAL: A multiplicação envolve a geração de produtos parciais, um para cada dígito no multiplicador. Esses produtos parciais são então somados para produzir o produto final. 2. Os produtos parciais são facilmente definidos. Quando o bit multiplicador é 0, o produto parcial é 0. Quando o multiplicador é 1, o produto parcial é o multiplicando. 3. O produto total é produzido somando -se os produtos parciais. Para essa operação, cada produto parcial sucessivo é deslocado uma posição à esquerda em relação ao produto parcial anterior. 4. A multiplicação de dois inteiros binários de n bits resulta em um produto de até 2n bits de extensão (por exemplo, 11 × 11 = 1001).
                            1. Divisão: A divisão é um pouco mais complexa que a multiplicação, mas é baseada nos mesmos princípios gerais. Como antes, a base para o algoritmo é a técnica de lápis e papel, e a operação envolve deslocamento repetitivo e adição ou subtração.
                              1. Primeiro, os bits do dividendo são examinados da esquerda para a direita, até que o conjunto de bits examinados represente um número maior ou igual ao divisor; isso é conhecido como o divisor sendo capaz de dividir o número. Até que esse evento ocorra, 0s são colocados no quociente da esquerda para a direita. Quando o evento ocorre, um 1 é colocado no quociente e o divisor é subtraído do dividendo parcial.
                                1. O resultado é conhecido como resto parcial. Desse ponto em diante, a divisão segue um padrão cíclico. Em cada ciclo, bits adicionais do dividendo são anexados ao resto parcial até que o resultado seja maior ou igual ao divisor. Como antes, o divisor é subtraído desse número para produzir um novo resto parcial. O processo continua até que os bits do dividendo terminem.
                                  1. O divisor é colocado no registrador M, o dividendo no registrador Q. Em cada etapa, os registradores A e Q juntos são deslocados à esquerda por 1 bit. M é subtraído de A para determinar se A divide o resto parcial.3 Nesse caso, então Q0 recebe um bit 1. Caso contrário, Q0 recebe um bit 0 e M precisa ser somado de volta a A para restaurar o valor anterior. O contador é então decrementado e o processo continua por n etapas. Ao final, o quociente está no registrador Q e o resto está no registrador A.
                                    1. Esse processo pode, com alguma dificuldade, ser estendido a números negativos.
        2. Representação de ponto flutuante
          1. Uma operação de ponto flutuante pode produzir uma destas condições: Overflow de expoente: um expoente positivo excede o valor máximo possível para expoente. Em alguns sistemas, isso pode ser designado como +∞ ou –∞.
            1. Underflow de expoente: um expoente negativo é menor que o valor mínimo possível para expoente (por exemplo, –200 é menor que –127). Isso significa que o número é muito pequeno para ser representado, e pode ser informado como 0.
              1. Underflow de significando: no processo de alinhamento dos significandos, os dígitos podem sair pela extremidade direita do significando. Conforme veremos, alguma forma de arredondamento é necessária.
                1. Overflow de significando: a adição de dois significandos com o mesmo sinal pode resultar em um carry pelo bit mais significativo. Isso pode ser resolvido pelo realinhamento, conforme explicaremos.
                  1. Adição e subtração;
                    1. Na aritmética de ponto flutuante, adição e subtração são mais complexas do que multiplicação e divisão. Isso deve -se à necessidade de alinhamento. Existem quatro fases básicas do algoritmo para adição e subtração: 1. Verificar zeros. 2. Alinhar os significandos. 3. Somar ou subtrair os significandos. 4. Normalizar o resultado.
                      1. Fase 1: verificação de zero. Como a adição e a subtração são idênticas, exceto por uma mudança de sinal, o processo começa alterando o sinal do subtraendo, se essa for uma operação de subtração. Em seguida, se algum operando for 0, o outro é informado como o resultado.
                        1. Fase 2: alinhamento do significando. A próxima fase é manipular os números de modo que os dois expoentes sejam iguais
                          1. Fase 3: adição. Em seguida, os dois significandos são somados, levando em conta seus sinais. Como os sinais podem ser diferentes, o resultado pode ser 0. Há também a possibilidade de overflow do significando por 1 dígito. Se isso acontecer, o significando do resultado é deslocado para a direita e o expoente é incrementado. Um overflow de expoente poderia ocorrer como resultado; isso seria informado e a operação encerrada.
                            1. Fase 4: normalização. A fase final normaliza o resultado. A normalização consiste no deslocamento dos dígitos do significando para a esquerda até que o dígito mais significativo (bit, ou 4 bits para expoente na base 16) seja diferente de zero. Cada deslocamento causa um decremento do expoente e, portanto, poderia causar um underflow do expoente. Finalmente, o resultado precisa ser arredondado e depois informado. Adiamos uma discussão do arredondamento para a discussão da multiplicação e divisão.
                              1. Padrão do IEEE para a aritmética binária de ponto flutuante; O IEEE 754 vai além da simples definição de um formato para estabelecer práticas e procedimentos específicos de modo que a aritmética de ponto flutuante produza resultados uniformes e previsíveis, independentes da plataforma de hardware. Um aspecto disso já foi discutido, a saber, o arredondamento. Esta subseção examinará três outros tópicos: infinito, NaNs e números desnormalizados
          2. Aritmética de ponto flutuante .
            1. Vírgula flutuante ou ponto flutuante (do inglês floating point): é um formato de representação digital de números racionais, que é usada nos computadores.
              1. Com uma notação de ponto fixo (por exemplo, complemento de dois), é possível representar um intervalo de inteiros positivos e negativos centrados em 0. Assumindo um binário fixo e ponto fracionário, esse formato permite a representação de números também com um componente fracionário.
                1. Essa técnica tem limitações. Números muito grandes não podem ser representados, nem frações muito pequenas. Além do mais, a parte fracionária do quociente em uma divisão de dois números grandes poderia ser perdida.
                  1. Para números decimais, contornamos essa limitação usando a notação científi ca. Assim, 976.000.000.000.000 pode ser representado como 9,76 × 1014, e 0,0000000000000976 pode ser representado como 9,76 × 10–14. O que fi zemos, com efeito, foi deslocar dinamicamente a vírgula decimal para um local conveniente e usar o expoente de 10 para registrar esse ponto decimal. Isso permite que um intervalo de números muito grandes e muito pequenos seja representado com apenas alguns dígitos.
                    1. Para simplificar as operações sobre números de ponto flutuante, normalmente é exigido que eles sejam normalizados. Um número normalizado é aquele em que o dígito mais significativo do significando é diferente de zero. Para a representação na base 2, um número normalizado é, portanto, um número em que o bit mais significativo do significando é 1.
                      1. Números negativos menores que – (2 – 2–23) × 2128, chamados de overflow negativo. Números negativos maiores que 2–127, chamados de underflow negativo. Zero. Números positivos menores que 2–127, chamados de underflow positivo. Números positivos maiores que (2 – 2–23) × 2128, chamados de overflow positivo.
                        1. A representação de ponto flutuante mais importante é definida no IEEE Standard 754, adotado em 1985. Esse padrão foi desenvolvido para facilitar a portabilidade dos programas de um processador para outro e encorajar o desenvolvimento de programas sofisticados, orientados numericamente. O padrão tem sido bastante adotado e é usado em praticamente todos os processadores e coprocessadores aritméticos atuais.
                          1. Para valores de expoente na faixa de 1 a 254 para o formato simples e de 1 a 2046 para o formato duplo, números de ponto flutuantes normalizados diferentes de zero são representados. O expoente é viesado, de modo que o intervalo de expoentes é de –126 a +127 no formato simples e de –1.022 a +1.023. Um número normalizado requer um bit 1 à esquerda da vírgula binária; esse bit é pressuposto, dando um significando efetivo de 24 bits ou 53 bits (chamado de fração no padrão). Um expoente zero junto com uma fração igual a zero representa zero positivo ou negativo, dependendo do bit de sinal. Conforme mencionamos, é útil ter um valor exato de 0 representado. Um expoente com todos os bits 1 junto com uma fração igual a zero representa infinito positivo ou negativo, dependendo do bit de sinal.
                            1. Também é útil ter uma representação de infi nito. Isso deixa para o usuário a função de decidir se tratará o overfl ow como uma condição de erro ou carregar o valor q e prosseguir com o programa que estiver sendo executado. Um expoente de zero junto com uma fração diferente de zero representa um número desnormalizado. Nesse caso, o bit à esquerda do ponto binário é zero e o expoente verdadeiro é –126 ou –1.022. O número é positivo ou negativo, dependendo do bit de sinal. Um expoente com todos os bits 1 junto com uma fração diferente de zero recebe o valor NaN, que signifi ca Not a Number (não um número), e é usado para sinalizar diversas condições de exceção.
            Show full summary Hide full summary

            Similar

            História da informática
            Renato Costa
            QUESTIONÁRIO DE INFORMÁTICA: SISTEMAS OPERACIONAIS
            anapaulabrasilam
            Organização e Arquitetura de Computador
            Rodrigo Gomes
            ARQUITETURA DE COMPUTADORES
            wesley.silva.ads
            LINGUAGEM DE PROGRAMAÇÃO I
            ailtonmidias
            Lógica de Programação- Dados
            Gabriela Alves
            Introdução à Lógica de Computação
            Joselaine Frantz
            FlashCard sobre Pensamento Computacional
            Suéllen Martinelli
            História da Computação - Anos 70 a 2000
            valeriabarbosa67
            Introdução a Banco de dados
            Ícaro Matheus