Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Unidade Lógica e Aritmética: Funcionamento, Estrutura e Operações, Notas de estudo de Mecatrônica

Uma unidade de processamento fundamental no funcionamento de um computador: a unidade lógica e aritmética (ula). A ula é responsável pelas operações aritméticas e lógicas executadas pelo computador, como adição, subtração, operações lógicas, deslocamento e comparação. Este texto aborda a composição, funções e entrada/saída da ula, além de considerações sobre a precisão e arredondamento em operações matemáticas.

Tipologia: Notas de estudo

2013

Compartilhado em 07/02/2013

jose-martins-dos-santos-junior-1
jose-martins-dos-santos-junior-1 🇧🇷

5

(9)

111 documentos

1 / 52

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Unidade
Unidade
Lógica e Aritmética
Lógica e Aritmética
CSI - II
CSI - II
Turma 2° R
Turma 2° R
Professor João Bosco
Professor João Bosco
André Matos nº 5
André Matos nº 5
Daniel n° 8
Daniel n° 8
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34

Pré-visualização parcial do texto

Baixe Unidade Lógica e Aritmética: Funcionamento, Estrutura e Operações e outras Notas de estudo em PDF para Mecatrônica, somente na Docsity!

UnidadeUnidade

Lógica e Aritmética Lógica e Aritmética

CSI - II CSI - II

Turma 2° R Turma 2° R

Professor João Bosco Professor João Bosco

André Matos nº 5 André Matos nº 5

Daniel n° 8 Daniel n° 8

Unidade Lógica e Aritmética (ULA)

Arithmetic and Logic Unit (ALU)

  • (^) Esta é a unidade responsável pelas operações aritméticas e lógicas executadas pelo computador. Adição, Subtração, Operações lógicas (E, OU, XOR, INVERSÃO), Deslocamento (à esquerda e à direita) e Comparação.
  • (^) Ela é composta por dispositivos lógicos digitais simples, capazes de armazenar bits e efetuar operações simples de lógica booleana.
  • (^) Os dados são fornecidos à ULA em registradores e uma vez processados eles são armazenados novamente em registradores.
  • (^) Os registradores são interligados a ULA por meio de caminhos de sinal.
  • (^) A ULA também pode ativar bits especiais (flags) para indicar o estado de uma operação.
  • (^) A Unidade de Controle fornece sinais para controlar a operação da ULA e a transferência de dados entre a ULA e os registradores.

Considerações de precisão

Os registradores da ULA que armazenam a mantissa quase sempre são maiores que o número de bits da mantissa mais o bit implícito. Os registradores contém bits adicionais chamados bits de guarda, que são usados para preencher os bits extras até a extremidade direita da mantissa com zeros. Outro fator que afeta a precisão é o arredondamento. O padrão IEEE relaciona quatro abordagens alternativas:

  • (^) Arredondar para o mais próximo, onde o resultado é arredondado pára o número representável mais próximo.
  • (^) Arredondar para cima(+ ), onde o resultado é arredondado para cima, na direção de infinito positivo.
  • (^) Arredondar para baixo(- ), onde o resultado é arredondado para baixo, na direção de infinito negativo.
  • (^) Arredondar para zero, onde o resultado é arredondado na direção de zero.

Estrutura interna da CPU

Registradores visíveis ao usuário

Classificação:

  • (^) Registradores de propósito geral podem conter um operado para qualquer código de operação. Entretanto, existem algumas restrições, como registradores dedicados a operações sobre números de ponto flutuante e para operações sobre pilha.
  • (^) Registradores de dados podem ser usados apenas para conter dados e não podem ser empregados no calculo de endereços de operandos.
  • (^) Registradores de endereços podem ser usados até certo ponto como registradores de propósito geral ou podem ser dedicados para um determinado modo de endereçamento. Alguns exemplos são:
    • (^) Registradores de segmentos: Contém o endereço da base de um segmento
    • (^) Registradores de índice: São usados para endereçamento indexado, possivelmente com auto-indexação.
    • (^) Apontador de topo de pilha: Registrador dedicado para apontar para o topo da pilha.
  • (^) Código de condição(flags): São bits atualizados pelo hardware da CPU como resultado de operação.

Registradores de controle e de estado

Alguns registradores de controle e de estados

  • (^) Contador de programas (PC): contém o endereço da instrução a ser buscada.
  • (^) Registrador de instruções(IR): contém a última instrução buscada.
  • (^) Registrador de endereçamento à memória(MAR): contém o endereço de uma posição de memória.
  • (^) Registrador de armazenamento temporário de dados(MBR): contém uma palavra de dados a ser escrita na memória ou a palavra lida mais recente. Os quatro registradores apresentados são usados para a transferência de dados entre a CPU e a memória. Dentro do processador os dados devem ser apresentados a ULA para processamento. A ULA pode ter acesso direto a MBR e aos registradores visíveis para o usuário. Podem existir registradores adicionais para armazenamento temporário de dados. Todo projeto de CPU inclui um registrador, ou conjunto de registradores conhecido como palavra de estado de programa (PSW), que contém informações de estado.

Organização

Dos

Registradores

no 8086

Importante

Saber

Operações complexas

Um engenheiro pode projetar uma ULA para calcular qualquer operação, no entanto isso gera complexidade; o problema é que quanto mais complexa a operação, mais cara é a ULA, mais espaço utiliza do processador e mais dissipa energia. Então, engenheiros sempre calculam um compromisso entre o poder de processamento e a sua complexidade, satisfazendo aos requisitos do processador ou de outro circuito. Imagine um cenário, onde é preciso calcular a raiz quadrada. O engenheiro teria as seguintes opções: Projetar uma ULA extremamente complexa que calcula a raiz quadrada de qualquer número num único passo. Isso é chamado cálculo em passo-único de clock. Projetar uma ULA bastante complexa que calcula a raiz quadrada de qualquer número em vários passos. Mas, existe um truque, os resultados intermediários vão através de uma série de circuitos arranjados em linha, como numa linha de produção. Que faz com que a ULA seja capaz de aceitar novos números para cálculo antes mesmo de terminar o cálculo dos anteriores. Isso faz com que a ULA seja capaz de produzir números tão rápido como cálculos em passo-único de relógio, com um atraso inicial até os números começarem a sair. Isso é chamado cálculo em pipeline .Projetar uma ULA complexa que calcula a raiz quadrada através de vários passos. Isso é chamado de cálculo iterativo , e usualmente confia no controle de uma complexa unidade de controle com microcódigo.Projetar uma ULA simples no processador e vender separadamente um processador especializado e caro que o consumidor possa instalá-lo ao lado desse, realizando uma das opções acima. Isso é chamado de co-processador .Dizer aos programadores que não há nenhum co-processador e que não há nenhuma emulação, assim eles tem que escrever seus próprios algoritmos para calcular a raiz quadrada por software. Isso é chamado de bibliotecas de software .Emular a existência de um co-processador, ou seja, sempre que um programa tenta realizar o cálculo da raiz quadrada, faz o processador verificar se há co-processador presente e o utiliza se está ali; se não há, interrompe o programa e invoca o sistema operacional para realiza o cálculo da raiz através de algum algoritmo de software. Isso é chamado de emulação de software .As opções acima vão desde a mais rápida e cara até a mais lenta e mais complicada. Então, enquanto o mais simples computador pode calcular a mais complexa fórmula, os computadores mais simples vão usualmente levar mais tempo fazendo isso porque levam vários passos para calcular a fórmula. Processadores poderosos como Intel Core e AMD64 utilizam a opção #1 para as operações mais simples, #2 para as operações complexas mais comuns e #3 para as operações extremamente complexas. Isso é possível através da construção de ULAs muito complexas nesses processadores.

Em muitos projetos a ULA também leva ou gera as entradas

ou saídas um conjunto de códigos de condições de ou para

um registro de status. Esses códigos são usados para indicar

casos como vai-um (empresta-um), (em inglês)overflow,

divisão-por-zero

Exemplos

de Unidade

Lógica e

Aritmética

UL A