Aritmética. E agora: Implementação da Arquitetura



Documentos relacionados
Arquitetura de Computadores

Organização e Arquitetura de Computadores I

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Organização e Arquitetura de Computadores I

Aritmética Binária e. Bernardo Nunes Gonçalves

CAPÍTULO 6 ARITMÉTICA DIGITAL

Capítulo 3 Aula 8. Representação Numérica. Aritmética Computacional Representação Numérica

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Organização e Arquitetura de Computadores. Aula 10 Ponto Flutuante Parte I Juliana F. Camapum Wanderley

Aula 6 Aritmética Computacional

Circuitos Digitais Cap. 5

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Componentes do Computador e. aula 3. Profa. Débora Matos

A FÓRMULA DE CONVERSÃO ENTRE AS UNIDADES É: F = 1.8 C

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Sistemas Computacionais II Professor Frederico Sauer

Operações aritméticas

Organização e Arquitetura de Computadores I

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM. Conceitos Básicos ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

3. O NIVEL DA LINGUAGEM DE MONTAGEM

2. Representação Numérica

2. Sistemas de Numeração, Operações e Códigos. 2. Sistemas de Numeração, Operações e Códigos 1. Números Decimais. Objetivos.

Computadores de Programação (MAB353)

Exemplo de Subtração Binária

3 Sistemas de Numeração:

Aula 9. Introdução à Computação. ADS IFBA

Organização de Computadores. Cálculos Binários e Conversão entre Bases Aritmética Binária

CALCULADORA SIMPLES COM ULA

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Representando Instruções no Computador

Representação de Dados

SISTEMAS DIGITAIS CIRCUITOS COMBINATÓRIOS TÍPICOS

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Codificação 1. Introdução. C 2 R r {! + codificação

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 13

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

Sistemas de numeração

Sistemas Processadores e Periféricos Aula 5 - Revisão

Arquitetura de Computadores

Organização e Arquitetura de Computadores I

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

ULA Sinais de Controle enviados pela UC

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

Sistema de Computação

Introdução. A Informação e sua Representação (Parte II) Universidade Federal de Campina Grande. Unidade Acadêmica de Sistemas e Computação

Capítulo SETE Números em Ponto Fixo e Ponto Flutuante

Unidade 5: Sistemas de Representação

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Capítulo 3 Processadores de Propósito Geral: Software

Informática I. Aula 5. Aula 5-13/05/2006 1

Sistemas de Numeração. Engenharia da Computação 3 Período Alex Vidigal Bastos

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Aula 14: Instruções e Seus Tipos

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Arquitetura de Computadores I

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

ARQUITETURA DE COMPUTADORES

Dadas a base e a altura de um triangulo, determinar sua área.

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar

Capítulo 1. Introdução. 1.1 Sistemas numéricos

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INF Técnicas Digitais para Computação

1.1. Organização de um Sistema Computacional

Trabalho compilado da Internet Prof. Claudio Passos. Sistemas Numéricos

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano

SISTEMAS DE NUMERAÇÃO

Aula 3 - Sistemas de Numeração

13 Números Reais - Tipo float

Sistemas de Numeração (Aula Extra)

O modelo do computador

Arquitetura e Organização de Computadores

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

COMPUTAÇÕES NUMÉRICAS. 1.0 Representação

Arquitetura e Organização de Computadores Aula 5 Consolidando Conhecimentos de Desempenho e Resumindo Prof. Julio Saraçol

Sistemas de Numerações.

Lição 1 Introdução à programação de computadores

Hardware de Computadores

Arquitetura de Computadores I

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Cálculo Numérico. ECA / 4 créditos / 60 h Introdução, Erros e Matlab. Ricardo Antonello.

Arquitetura de Computadores. Tipos de Instruções

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr.

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Informática I. Aula 4. Aula 4-11/09/2006 1

Sistemas de Numeração

ARQUITETURA DE COMPUTADORES

Estrutura de um Computador

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

5º Experimento: Somador Binário de números com sinal

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

A Figura 1 mostra uma organização do NEANDER com uma UAL de 6 funções. Figura 1: Organização para o NEANDER.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Eletrônica Digital 1 Módulo1 Capítulo 1 Sistemas Numéricos. Prof. Nilton Costa Junior

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Transcrição:

Anotações Parte 4 OBS: Essas anotações são adaptações do material suplementar (apresentações PPT) ao Livro do Hennessy e Patterson, 2ª e 3ª Ed. e do Livro do 5ª. Ed. Supõe-se que os estudantes tenham noções de lógica digital e linguagem assembly para o entendimento das aulas. 1

Aritmética O que foi visto: Visão geral de Sistemas Computacionais Desempenho (segundos, ciclos, instruções) Abstrações: Arquitetura do Conjunto de Instruções (ISA) Ling. Assembly e Ling. de Máquina Conjunto de Instruções MIPS E agora: Implementação da Arquitetura 2

Onde estamos agora... 3

Construindo um processador Estamos quase prontos para iniciar a construção de um processador MIPS Antes, vamos revisar a lógica booleana e construir a ULA que fará parte da CPU (ver Apêndices) Operação ULA (controle) 4 a b 32 ALU 1 32 1 overflow resultado Zero 32 4

Números Bits são apenas bits (sem significado inerente) convenções definem relações entre bits e números Números Binários (base 2) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001... decimal: 0...2 n -1 É claro, existem outras complicações: números são finitos (overflow) frações e números reais números negativos (Ex: não há instrução MIPS tipo subi; addi pode somar um número negativo) Como representar números negativos? i.e., qual o padrão de bits representam tais números? 5

Possíveis Representações Sinal de Magnitude Complemento de 1 Complemento de 2 000 = +0 000 = +0 000 = +0 001 = +1 001 = +1 001 = +1 010 = +2 010 = +2 010 = +2 011 = +3 011 = +3 011 = +3 100 = -0 100 = -3 100 = -4 101 = -1 101 = -2 101 = -3 110 = -2 110 = -1 110 = -2 111 = -3 111 = -0 111 = -1 Questões: Balanceamento, número de zeros, facilidade de operação, facilidade de obtenção dos valores Qual delas é a melhor? Por que? 6

Representação geométrica dos inteiros em complemento de 2 [Stallings] 7

MIPS Números de 32 bit com sinal (em complemento de DOIS): 0000 0000 0000 0000 0000 0000 0000 0000 DOIS = 0 DEZ 0000 0000 0000 0000 0000 0000 0000 0001 DOIS = + 1 DEZ 0000 0000 0000 0000 0000 0000 0000 0010 DOIS = + 2 DEZ... 0111 1111 1111 1111 1111 1111 1111 1110 DOIS = + 2,147,483,646 DEZ 0111 1111 1111 1111 1111 1111 1111 1111 DOIS = + 2,147,483,647 DEZ 1000 0000 0000 0000 0000 0000 0000 0000 DOIS = 2,147,483,648 DEZ 1000 0000 0000 0000 0000 0000 0000 0001 DOIS = 2,147,483,647 DEZ 1000 0000 0000 0000 0000 0000 0000 0010 DOIS = 2,147,483,646 DEZ... 1111 1111 1111 1111 1111 1111 1111 1101 DOIS = 3 DEZ 1111 1111 1111 1111 1111 1111 1111 1110 DOIS = 2 DEZ 1111 1111 1111 1111 1111 1111 1111 1111 DOIS = 1 DEZ maxint minint 8

Operações em Complemento de 2 Negar um número em complemento de 2 = inverter todos os bits e somar 1 ao valor Lembre-se: negar e inverter são coisas muito diferentes! Converter números de N bits em números com mais de N bits: Operando imediato MIPS de 16 bits pode ser convertido para 32 bits para operações aritméticas (lembram-se?) copiar o bit mais significante (o de sinal) nos outros bits 0010 -> 0000 0010 1010 -> 1111 1010 4 bits -> 8 bits 9

Adição & Subtração Exatamente como se aprende soma e subtração na escola (vai 1) 0111 0111 0110 + 0110-0110 - 0101 Operações usando complemento de 2 são simples Ex: subtração a partir da adição de número negativo 0111 0111-0101 + 1011 Overflow (resultado grande demais para uma palavra finita ): Ex: somar dois nos. de n-bits nem sempre resulta num no. n-bits 0111 + 0001 Note que o termo overflow pode gerar dúvidas: 1000 Aqui, ele não indica um vai-1, mas um overflow. Monitorar Overflow: monitorar o bit mais significativo nas operações 10

Detecção de Overflow Não há overflow quando se soma um no. positivo com um negativo Não há overflow se os sinais são os mesmos numa subtração Um overflow ocorre quando o valor afeta o sinal do resultado: overflow quando se somam 2 positivos, dá um negativo ou, a soma de 2 negativos, dá um positivo ou, subtraindo um negativo de um positivo e ter um negativo ou, subtraindo um positivo de um negativo e ter um positivo Considere as operações A + B, e A B É possível ocorrer um overflow se B = 0? É possível ocorrer um overflow se A = 0? 11

Efeitos do Overflow Ocorre uma exceção (interrupção) Fluxo de controle salta para um endereço pré-definido para tratamento da exceção O endereço interrompido é armazenado para um possível retormada do processamento Nem sempre se quer detectar overflow Novas Instruções MIPS: addu, addiu, subu OBS: addiu guarda a extensão-de-sinal! OBS: sltu, sltiu comparações sem sinal Em Multimídia, por exemplo, overflow em um vídeo ou áudio significa saturação em um nível (de cor, brilho, intensidade de som, etc) 12

Tratando o Overflow Tratamento de exceções por linguagem / sistema Ex: Controle de vôo x Automação residencial Algumas linguagens (ex. C) ignora overflows No MIPS, isso corresponde a usar as instruções: addu, addiu, subu Outras linguagens (ex. Ada, Fortran) requirem que se escreva um tratamento para a exceção No MIPS, isso corresponde a usar as instruções: add, addi, sub Quando um overflow ocorre, um tratador de exceção (exception handler) PC é salvo num registrador específico (mov) A CPU salta (jump) para um endereço específico onde se encontra o código de tratamento da exceção Após o tratamento, o PC salvo é recuperado para que a execução retorne ao ponto de execução anterior à ocorrência da exceção (mov) 13

Casos especiais[stalllings] Caso especial 1: 0 0 00000000 Negado 11111111 Soma +1 + 1 Resultado 1 00000000 Então: 0 = 0 (Overflow é ignorado) Caso especial 2: 0 128 10000000 Negado 01111111 Soma +1 + 1 Resultado 1 0000000 Então: ( 128) = 128 X (monitorar bit mais significativo bit de sinal) 14

Construindo uma ULA 15

Revisão: Álgebra de Boole & Portas Lógicas Problema: Considere uma função lógica com 3 entradas: A, B e C. Saída D = V (ou 1) se no mínimo uma entrada é V (ou 1) Saída E = V se exatamente 2 entradas são V Saída F = V somente se as 3 entradas são V Construa a tabela verdade para essas 3 funções. Mostre as equações booleanas para essas 3 funções. Mostre a implementação dessas 3 funções usando portas AND e OR. ( JUMP Material Complementar da Elsevier daqui para frente!) 16

O multiplexador (MUX) / Seletor Seleciona uma das entradas (A, B) para ser a saída (C), com base em uma entrada de controle (S) OBS: Esse seletor é chamado de MUX de no máximo duas entradas, apesar dele ter, de fato, três entradas (1 é de seleção)! O MUX seleciona uma (única) operação da ULA a ser executada com os valores das entradas 17

Uma ULA (Unidade Lógica Aritmética) simples ULA para suporte às instruções add, and e or Solução: Construir ULA de 1 bit e juntar 32 dessas ULAs Operação resultado. Várias implementações possíveis... 18

Diferentes implementações possíveis Não é fácil decidir a melhor maneira de se construir algo Não queremos entradas demais em um única porta Não queremos ter que atravessar muitas portas A facilidade de compreensão é importante Considere uma ULA de 1 bit para adição (add): Como construir uma ULA de 1 bit para add, and e or? Como construir uma ULA de 32 bits? OBS: Solução não é única!!! 19

Construindo uma ULA de 32 bits (adição) 20

Construindo uma ULA de 32 bits (adição) 21

E quanto à subtração (a b)? Usar complemento de dois: simplesmente negar b e somar 1. Negar = inverter todos os bits (inversora) Uma solução inteligente : 22

E quanto à subtração (a b)? Usar complemento de dois: simplesmente negar b e somar 1. Negar = inverter todos os bits (inversora) Uma solução inteligente : 23

E quanto à subtração (a b)? Usar complemento de dois: simplesmente negar b e somar 1. Negar = inverter todos os bits (inversora) Uma solução inteligente : 24

Acrescentando uma função NOR Também pode se desejar inverter a. 25

Acrescentando uma função NOR Também pode se desejar inverter a. 26

Acrescentando uma função NOR Também pode se desejar inverter a. 27

Adequando a ULA ao ISA do MIPS Suporte à instrução set-on-less-than (slt) Note que slt é uma instrução aritmética : Gera 1 se rs < rt e 0, caso contrário Usando a subtração: (a b) < 0 a < b Suporte ao teste de igualdade Uso nas instruções beq/bne $t5, $t6, $t7 Usando a subtração: (a b) = 0 a = b 28

Suporte a slt Podemos imaginar a idéia? 29

Suporte a slt 30

Teste de igualdade Observe as linhas de controle: Nota: Saída ZERO é um 1 quando o resultado da ULA for zero! 31

Conclusão Podemos construir uma ULA para aceitar o conj. de instruções MIPS Ideia básica: usar um multiplexador para selecionar a saída que desejamos Realizar subtração eficientemente usando complemento de dois Duplicar uma ULA de 1 bit para produzir uma ULA de 32 bits Pontos importantes sobre hardware Todas as portas estão sempre operando A velocidade de uma porta é influenciada pelo número de entradas da porta A velocidade de um circuito é influenciada pelo número de portas na série (no caminho crítico ou no nível mais profundo da lógica ) Foco principal aqui: compreensão do funcionamento! Entretanto, mudanças inteligentes na organização podem melhorar o desempenho (semelhante a usar melhores algoritmos no software), como no caso da adição 32

Problema: o somador ripple carry é lento Uma ULA de 32 bits é tão rápida quanto uma ULA de 1 bit? Existe mais de uma maneira de fazer adição? Dois extremos: ripple carry (vai-1) e soma-de-produtos Você consegue ver o problema do ripple? Como você se livraria dele? c 1 = b 0 c 0 + a 0 c 0 + a 0 b 0 c 2 = b 1 c 1 + a 1 c 1 + a 1 b 1 c 2 = c 3 = b 2 c 2 + a 2 c 2 + a 2 b 2 c 3 = c 4 = b 3 c 3 + a 3 c 3 + a 3 b 3 c 4 = Inviável! Por que? 33

Somador com carry look-ahead Um método intermediário entre nossos dois extremos Motivação: Se não soubéssemos o valor do carry-in, o que poderíamos fazer? Quando sempre geraríamos um carry?g i = a i b i Quando propagaríamos o carry? p i = a i + b i Nos livramos do ripple? c 1 = g 0 + p 0 c 0 c 2 = g 1 + p 1 c 1 c 2 = c 3 = g 2 + p 2 c 2 c 3 = c 4 = g 3 + p 3 c 3 c 4 = Viável! Por que? 34

Use princípio para construir somadores maiores Não podemos construir um somador de 16 bits dessa maneira... (grande demais!!!) Poderíamos usar o ripple carry dos somadores CLA (carry look-ahead) de 4 bits Melhor ainda: Poderíamos usar o princípio CLA novamente! 35

Resumo da ALU até agora... Podemos construir uma ULA para aceitar adição MIPS Nosso foco está na compreensão, não do desempenho Processadores reais usam técnicas mais sofisticadas para aritmética Onde o desempenho não é vital, as linguagens de descrição de hardware permitem que os projetistas automatizem completamente a criação do hardware! 36

ULA implementada até agora... Esquecer (por enquanto...) a lógica interna implementada sobre portas lógicas, que são, elas mesmas, implementadas por transistores CMOS (lembram-se?) Abstração utilizada daqui para frente: Operação ULA (controle) 4 a 32 ALU resultado 32 b 32 37

Exemplo de Multiplicação 1011 Multiplicando (11 dec) x 1101 Multiplicador (13 dec) 1011 0000 Produtos parciais 1011 1011 10001111 Produto (143 dec) OBS: resultado possui o dobro do tamanho em bits 38

Multiplicação Mais complexa que a adição Realizada através de deslocamentos e adição Leva mais tempo e ocupa mais área de chip Serão implementadas 3 possíveis versões de solução para a multiplicação... 0010 (multiplicando/multiplicand) x_1011 (multiplicador/multiplier) Números Negativos: Converte e multiplica Podem ser implementadas outras técnicas até melhores, mas para nosso curso, essa será a escolhida... Uma técnica é conhecida como Algoritmo de Booth s (ver Stallings, Cap.9) 39

Multiplicação: implementação sequencial Start Multiplier0 = 1 1. Test Multiplier0 Multiplier0 = 0 1a. Add multiplicand to product and place the result in Product register Multiplicand 64 bits Shift left 2. Shift the Multiplicand register left 1 bit 64-bit ALU Multiplier Shift right 32 bits 3. Shift the Multiplier register right 1 bit Product 64 bits Write Control test 32nd repetition? No: < 32 repetitions Yes: 32 repetitions Se cada passo gastar 1 clock, temos 100 clocks para uma multiplicação 32 bits completa! Done 40

Segunda Versão Start Multiplier0 = 1 1. Test Multiplier0 Multiplier0 = 0 Multiplicand 1a. Add multiplicand to the left half of the product and place the result in the left half of the Product register 32 bits 32-bit ALU Multiplier Shift right 32 bits 2. Shift the Product register right 1 bit Product Shift right Write Control test 3. Shift the Multiplier register right 1 bit 64 bits 32nd repetition? No: < 32 repetitions Os registradores MIPS não têm 32 bits? Como faço as operações com 64? Done Yes: 32 repetitions 41

Segunda Versão Pelos bits do multiplicando, sabe-se, antes de se começar a multiplicação, quando haverá deslocamento ou soma para cálculo do produto. 42

Terceira e Última Versão Start Product0 = 1 1. Test Product0 Product0 = 0 Multiplicand 32 bits 1a. Add multiplicand to the left half of the product and place the result in the left half of the Product register 32-bit ALU 2. Shift the Product register right 1 bit Product 64 bits Shift right Write Control test 32nd repetition? No: < 32 repetitions Yes: 32 repetitions Done 43

Divisão Operação recíproca à multiplicação Problemas com negativos Mais complexa, menos frequente e com possibilidade de gerar operação inválida: divisão por ZERO! (dividendo) 1001010 1000 (divisor) -1000 1001 (quociente) 1010-1000 (resto) 10 Assim como na multiplicação, trabalhar com 0 e 1 facilita o processo de deslocamento e subtração a cada passo do algoritmo de divisão 44

Divisão: possível implementação 45

Divisão: possível implementação 46

Implementação Floating Point É necessário representar: Números racionais e irracionais: ex. 3.14159 Números muito pequenos: ex. 0.000000001 Números muito grandes: ex. 3.15576 10 9 Representação: sinal, expoente, parte fracionária: ( 1) sinal frac. 2 expoente Mais bits da parte fracionária = mais precisão Mais bits no expoente = faixa maior de valores Padrão IEEE 754 floating point : Precisão simples: 8 bits de expoente, 23 bits de frac. Precisão dupla: 11 bits de expoente, 52 bits de frac. 47

Formatos IEEE 754 48

Padrão IEEE 754 floating-point 1 bit da representação da mantissa é implícito Expoente: representação biased (deslocada): facilita ordenação Todos 0s = menor expoente possível; todos 1s, maior possível bias of 127 para precisão simples e 1023 para precisão dupla sumário: ( 1) sinal (1+parte_fracionária) 2 expoente bias Note que em notação científica, a representação normalizada é um pouco diferente, com 1 dígito antes do ponto decimal: ex. 3.123 x 10 3 Exemplo: Decimal: 0.75 = 3/4 = 3/2 2 Binário: 0.11 = 1.1 x 2-1 Em floating point: expoente = 126 = 01111110 IEEE precisão simples: 10111111010000000000000000000000 49

Exemplos de representação Floating Point 50

Complexidades Floating Point Operações são mais complicadas... Além do overflow, pode-se ter o underflow Precisão pode se tornar um grande problema IEEE 754 guarda 2 bits extras ( guard e round ) 4 modos de arredondamento Positivo dividido por zero dá infinito zero dividido por zero dá algo não numérico ou indefinido Outras complexidades Implementar o padrão pode ser muito difícil Não usar o padrão pode ser ainda pior! Veja no livro o problema do bug do Pentium (descrição família 80x86)! 51

Exemplo Somador para operações em PF 52

Sumário Aritmética Computacional tem restrições definidas pelos limites de precisão Padrões de bits que, aparentemente, não possuem um significado claro podem estar codificados em padrões precisos: Complemento de dois para subtração Padrão IEEE 754 para operações floating point As instruções do computador (geradas pelos compiladores) determinam o significado desses padrões de bits Hardware para Aritmética PF normalmente faz: Adição, subtração, multiplicação, divisão, raiz quadrada, potência Conversão PF integer Operações normalmente gastam muitos ciclos de clock Podem ser pipelined Desempenho e precisão são importantes e estão diretamente relacionados ao desempenho das máquinas reais (algoritmos e implementações em hardware) 53

Intervalos de Números representáveis 54

Mais informações Operadores PF no MIPS: pág. 206 a 208 (3ª Edição), 226 a 228 (tabelas resumindo todas as operações) Exemplos de uso de instruções MIPS em ponto-flutuante: pág. 209 a 211: Conversor F para C Multiplicação de matrizes Ver Material do Curso Computer Architecture ECE 4713/6713, Prof. Sherif Abdelwahed, Department of Electrical and Computer Engineering, Mississippi State University, USA. Explanação detalhada do formato IEEE 754 Exemplos anteriores de instruções MIPS 55