Arquitetura FPU: Implementação no MIPS32
|
|
- Edson Lemos Espírito Santo
- 7 Há anos
- Visualizações:
Transcrição
1 Universidade Federal de Santa Catarina CTC - Centro Tecnológico Ciências da Computação INE Linguagem Assembly Arquitetura FPU: Implementação no MIPS32 Alunos: Guilherme Fernandes Raphanelli Diogo D. Fonseca dos Santos
2 SUMÁRIO 1. Introdução Representação Binária Registradores Formato de Valores para FPRs Instruções Exceções na FPU Invalid Operation Exception Division By Zero Exception Underflow Exception Overflow Exception Inexact Exception Exercícios Detecção de Overflow para Multiplicação Visualização de Contexto...10 APÊNDICE A Detecção de overflow em multipicação em Ponto flutuante...12 APÊNDICE B Visualização de CONTExto da FPU...14
3 1 1. Introdução O suporte para operações de ponto flutuante nas diferentes arquiteturas é normalmente dado através de componentes diferentes de onde ocorrem as operações com inteiros. Estes componentes são designados como Floating-Point Unit (FPU), ou unidade de ponto flutuante. Na arquitetura MIPS32 - chamada de MIPS ao longo do documento - a FPU é implementada principalmente através do Co-processador 1, o co-processador de ponto flutuante, também conhecido como floating-point accelerator (FPA). Para utilizar a FPU no MIPS é necessário que ela esteja habilitada. Para isto é necessário habilitar o Co-processador 1 através de uma operação privilegiada fornecida pelo Coprocessador de Controle do Sistema. Este documento abordará diferentes aspectos da FPU do MIPS, expostos no seguintes capítulos: 2. Representação Binária A arquitetura MIPS segue o padrão Institute of Electrical and Electronics Engineers (IEEE) 754, o IEEE Standard for Binary Floating-Point Arithmetic. Este padrão define os tipos de dados em ponto flutuante, as operações aritméticas, de comparação e de conversão básicas, e um modelo computacional. A FPU do MIPS oferece suporte aos tipos de dados em ponto flutuante e ao tipos de dados em ponto fixo. Os tipos de dados em ponto flutuante implementados são os single precision, ou de precisão única, e double precision, ou de precisão dobrada, como definidos pelo IEEE 754. O tipo de dado em ponto fixo é o de inteiros sinalizados, fornecido pela arquitetura da CPU. Os formatos definidos são os seguintes:
4 ponto flutuante 32-bit single precision (tipo S, pode ser visto na Figura 1). ponto flutuante 64-bit double precision (tipo D, pode ser visto na Figura 2). ponto fixo 32-bit word (tipo W, pode ser visto na Figura 3). 2 Figura 1 - Formato tipo S Figura 2 - Formato tipo D O formato tipo W oferece a mesma representação utilizada pela CPU nas operações de ponto fixo, mas não suportando inteiros não sinalizados. O formato tipo S é uma representação de ponto flutuante com 32-bits, tendo 8 bits para o expoente, 23 bits de mantissa e 1 para sinalização. O tipo D estende esta representação para 11 bits de expoente e 52 de mantissa. Para acomodar este formato na arquitetura MIPS32, a FPU divide o número em dois registradores de 32- bits, como mostrado na Figura 2. Figura 3 - Formato tipo W 3. Registradores As CPUs MIPS possuem 32 registradores de ponto flutuante, normalmente referidos como $f0-f$31. Entretanto, mesmo as CPUs MIPS32 possuem suporte a números ponto flutuante double precision de 64 bits. Assim, estas CPUs apenas
5 realizam operações aritméticas nos 16 registradores pares, sendo os 16 registradores ímpares usados para cuidar dos 32 bits mais significativos destes números de 64 bits. Para a manipulação de dados inteiros qualquer registrador pode ser utilizado. 3 Registrador Nome Uso $f0,$f2 fv0-fv1 Valor retornado por funções. $f4,$f6,$f8,$f10 ft0-ft3 Temporários. $f12,$f14 fa0-fa1 Argumentos de funções $f16,$f18 ft4-ft5 Temporários. $f20,$f22,$f24 $f26,$f28,$f30 fs0-fs5 Variáveis de registro. Tabela 1 - Convenção para Registradores da FPU Assim como os registradores de uso geral, os registradores de operando ponto flutuante (FPR) também possuem uma convenção de nomes e de uso. A convenção de uso é análoga à dos registrados de uso geral. A Tabela 1 descreve estas convenções. A arquitetura MIPS32 também suporta registradores para controle de ponto flutuante, os Floating Point Control registers (FCRs). Existem 5 registradores para controle da FPU, com 32 bits cada. Os registradores suportados são os seguintes: FIR - FP Implementation and Revision register FCCR - FP Condition Codes register FEXR - FP Exceptions register
6 4 FENR - FP Enables register FCSR - FP Control/Status register O acesso a estes registradores não é privilegiado, eles podem ser acessados por qualquer programa que consiga executar instruções de ponto flutuante. Os FCRs podem ser acessados através das instruções CTC1 e CFC Formato de Valores para FPRs Ao contrário da CPU, a FPU não interpreta a codificação binária dos operadores de origem nem produz uma codificação binária para o resultado de cada operação. Um valor guardado em um FPR tem um formato, ou tipo, e pode ser usado apenas por instruções que operam nesse formato. Este formato pode ser: uninterpreted (não interpretado), unknown (desconhecido), ou um dos tipos numéricos válidos, single, double ou word. Um valor é definido como uninterpreted após ser carregado em um registrador ponto flutuante como dado binário, o que acontece usando moves a partir de inteiros ou loads. Assim que este registrador for utilizado por uma função de formato específico, o valor será definido como sendo do mesmo formato. O formato unknown é utilizado quando uma operação de um formato utiliza um registrador de origem com um valor de formato diferente. Neste caso, tanto o valor utilizado quanto o resultado são definidos como unknown. 4. Instruções Os co-processadores, assim como a CPU, operam em dados naturalmente alinhados. A FPU possui loads e stores que
7 usam o mesmo tipo de endereçamento registrador+offset usado pela CPU. As instruções da FPU possuem formatos diferentes dos especificados para as instruções da CPU. As instruições normalmente possuem uma versão double e uma single, identificadas por d e s respectivamente. A Tabela 2 mostra algumas destas instruções. 5 Instrução lwc1 fd, disp(rs) swc1 fd, disp(rs) mtc1 rs, fd mfc1 rd, fs mov.s fs,fd Uso fd = *(rs + disp). Load da memória para registrador. Pode-se usar as pseudo-intruções l.s fd, address (single) ou l.d(double). *(rs+disp) = fd. Store do registrador para memória. Pseudo-instruções: s.s ou s.d. fd = rs. Move de registrador inteiro (rs) para registrador fp (fd). 32bits não interpretados. rd = fs. Move de registrador fp para registrador inteiro. 32bits não interpretados. fd = fs. Move entre registradores fp. mov.d fs,fd add.s fd, fs1, fs2 fd = fs1 + fs2. add.d fd, fs1, fs2 mul.s fd, fs1, fs2 fd = fs1 x fs2. mul.d fd, fs1, fs2 Tabela 2 - Instruções FP MIPS32 A FPU oferece diversas operações além das operações básicas mostradas na Tabela 2. As operações podem ser separadas em 6 classes distintas: Instruções para transferência de dados, instruções aritméticas, instruções de conversão, instruções para mover valores de operando formatados, instruções condicionais e instruções variadas. Estas operações podem ser encontradas em [2].
8 6 5. Exceções na FPU As exceções FPU são implementadas na arquitetura MIPS FPU com os campos Cause, Enable e campos de Flag do registrador Control/Status. Os bits de Flag implementam os flags de status de exceção IEEE, e os bit Cause e Enable controlam o trapping de exceções. Cada campo tem um bit para cada uma das cinco condições de exceção da IEEE. A FPU possui um modo de funcionamento especial, o precise exception mode. Neste modo o trap é gerado antes que a instrução que causou a exceção, ou qualquer instrução em seguida, possa terminar e escrever seus resultados. Se desejado, o software que detecta a exceção pode recomeçar a execução da instrução interrompida depois de tratá-la. As cinco exceções FPU IEEE implementadas na arquitetura MIPS32 são: Invalid-Operation Exception (Operação Inválida), Division-By-Zero Exception (Divisão por zero), Underflow Exception, Overflow Exception e Inexact Exception. Estas exceções serão explicadas a seguir. 5.1.Invalid Operation Exception Algumas situações que são definadas como uma operação inválida: Um ou ambos os operandos de uma operação aritmética sinalizam NaN. Adição ou subtração: subtração de infinitos. Multiplicação: 0 vezes infinito, com quaisquer sinais. Divisão: 0/0 ou divisão de infinitos, com quaisquer sinais.
9 7 5.2.Division By Zero Exception Acusa-se uma execeção de Divisão por zero se o divisor for zero e o dividendo for um número finito diferente de zero. O resultado, caso nenhuma trap ocorra, é definido como infinito. As divisões (0/0) e ( /0) não causam a exceção de divisão por zero. O resultado de (0/0) é uma exceção inválida da operação. O resultado de ( /0) é uma infinidade corretamente sinalizada. 5.3.Underflow Exception Duas situações podem causar uma exceção de underflow: Tininess: a criação de um resultado não-zero minúsculo que, por ser minúsculo, pode causar alguma outra exceção mais tarde como o excesso na divisão. Perda de exatidão: a perda de exatidão extraordinária que ocorre na aproximação de tais números minúsculos com números não-normalizados. 5.4.Overflow Exception Uma exceção de overflow acontece quando o valor de um resultado arredondado em ponto flutuante, caso o expoente não tivesse limites, é maior do que o formato de destino com o maior número finito. 5.5.Inexact Exception
10 8 Uma Inexact Exception ocorre nas seguintes situações: O resultado arredondado de uma operação não é exato. O resultado arredondado de uma operação gera overflow sem ocasionar um trap de overflow. 6. Exercícios O exercício de detecção de overflow para multiplicação e o de visualização de contexto desenvolvidos em sala de aula foram modificados para utilizarem a FPU. Muitas modificações foram necessárias dadas as diferenças entre a CPU e a FPU, e pelas dificuldades do ambiente de testes. As ferramentas SPIM e gxemul foram utilizadas para reproduzir ao máximo as condições sob as quais os exercícios foram feitos no laboratório. 6.1.Detecção de Overflow para Multiplicação O exercício original era realizar manualmente a detecção de overflow de uma multiplicação, o que para números inteiros era realizado comparando-se os sinais. Os números de ponto flutuante, segundo o padrão IEEE 754 implementado pelo MIPS32, possuem um indicador próprio de overflow, tornando desnecessária a técnica anterior. Quando uma operação em ponto flutuante gera um número muito grande para ser armazenado, situação conhecida como overflow, a FPU automaticamente define todos os bits de expoente do registrador destino como 1. Esta configuração significa um número tido como infinito, positivo ou negativo dependendo do bit de sinal, podendo ser utilizada para a verificação do overflow. O código fonte criado pode ser visto no Apêndice A.
11 As primeiras diferenças com relação ao código anterior do exercício surgem no momento da entrada de dados do usuário. O código de chamada de sistema 6 é utilizado, ao invés do 5 original, para obter um número em ponto flutuante. Esta chamada de sistema coloca o número recebido no registrador $f0. 9 Figura 4 - Multiplicação em Ponto Flutuante Depois de multiplicados os números recebidos, o resultado é movido para um registrador de uso geral. Operações de bits são utilizadas para se isolar os bits de expoente e verificar se todos estão habilitados. Caso afirmativo, é caracterizada a ocorrência de overflow e ocorre a notificação ao usuário. Caso contrário, o resultado é apresentado utilizando-se o código de chamada de sistema 2, que imprime um número em ponto flutuante. Esta chamada de sistema utiliza o registrador $f12 como argumento. Uma operação bem sucedida pode ser vista na Figura 4, e uma onde ocorre overflow na Figura 5. Figura 5 - Overflow Detectado
12 Visualização de Contexto O objetivo deste exercício era a visualização do estado dos registradores de uso geral. Isto era realizado através da chamada de funções implementadas em C, utilizando o template para assembly. Para o exercício original era necessário o salvamento de contexto, mas tratando-se dos registradores da FPU isto não é necessário, já que estes registradores são completamente independentes do fluxo normal dos programas. O código fonte novo pode ser visto no Apêndice B. As primeiras dificuldades encontradas para imprimir o estado atual dos registradores da FPU foram relativas à falta de acesso direto através do template de assembly a estes registradores. Sendo assim, a maneira encontrada para realizar a tarefa foi, para cada registrador, copiar o valor do registrador de ponto flutuante para um registrador de uso geral, imprimindo-se então o valor deste registrador. Para facilitar a impressão das mensagens relativas a cada registrador, a estrutura da função print_register foi modificada, adicionando-lhe um argumento. A Figura 6, que pode ser encontrada junto ao código no Apêndice II, mostra o funcionamento deste programa. Uma versão modificada deste código foi implementada para verificar a consistência das informações através do SPIM. A Figura 7 mostra o resultado, podendo ser encontrada junto ao código no Apêndice B. REFERÊNCIAS BIBLIOGRÁFICAS 1 SWEETMAN, D. See MIPS Run. EUA. Morgan Kaufmann Publishers, 1999.
13 2 MIPS Technologies. MIPS32 Architecture For Programmers Volume I: Introduction to the MIPS32 Architecture. mar
14 12 APÊNDICE A DETECÇÃO DE OVERFLOW EM MULTIPICAÇÃO EM PONTO FLUTUANTE ### ### Area de Dados ### data get_v1:.asciiz "Enter the first value: " get_v2:.asciiz "Enter the second value: " put_res:.asciiz "The result is equal " overflow:.asciiz "Ocorreu overflow. " ### ### Area de Codigo ### text.globl main main: addiu $sp, $sp, -4 sw $ra, 0($sp) la $a0, get_v1 li $v0, 4 li $v0, 6 mov.d $f12, $f0 la $a0, get_v2 li $v0, 4 li $v0, 6 mul.s $f12, $f12, $f0 mfc1 $t0, $f12 srl $t0, $t0, 23 addi $t1, $zero, 255 and $t0, $t0, $t1 bne $t0, $t1, result over: la $a0, overflow li $v0, 4 j prologue result: la $a0, put_res li $v0, 4 li $v0, 2
15 13 prologue: lw $ra, 0($sp) addiu $sp, $sp, 4 jr $ra ### ### Funcao para imprimir elemento na tela ### data.globl newline newline:.asciiz "\n".globl comma comma:.asciiz ",".text.globl print_cmd print_cmd: beq $a0, $zero, F0 li $v0, 1 li $v0, 4 la $a0 comma jr $ra F0:li $v0, 4 la $a0 newline jr $ra.globl print_int print_int: li $v0, 1 li $v0, 4 la $a0 newline jr $ra.globl print_string print_string: li $v0, 4 jr $ra Código 1 - multiplicação. asm
16 14 APÊNDICE B VISUALIZAÇÃO DE CONTEXTO DA FPU ### ### Area de Dados ### data n1:.float 3.5 n2:.float msg:.asciiz "Mostrando registradores da FPU: \n" ### ### Area de Codigo ### extern print_register.extern printstr.text.globl main: main addiu $sp, $sp, -4 sw $ra, 0($sp) l.s l.s $f4, n1 $f6, n2 mul.s $f12, $f4, $f6 cvt.d.s $f22, $f12 mul.d $f24, $f22, $f22 mul.d $f26, $f24, $f24 la jal $4, msg printstr #Imprimindo $f0 mfc1 $16, $f0 addi $4, $0, 16 addi $5, $0, 0 jal print_register #Imprimindo $f1 mfc1 $16, $f1 addi $4, $0, 16 addi $5, $0, 1 jal print_register mfc1 $16, $f2 addi $4, $0, 16 addi $5, $0, 2 jal print_register mfc1 $16, $f3 addi $4, $0, 16 addi $5, $0, 3
17 15 jal print_register mfc1 $16, $f4 addi $4, $0, 16 addi $5, $0, 4 jal print_register mfc1 $16, $f5 addi $4, $0, 16 addi $5, $0, 5 jal print_register mfc1 $16, $f6 addi $4, $0, 16 addi $5, $0, 6 jal print_register mfc1 $16, $f7 addi $4, $0, 16 addi $5, $0, 7 jal print_register ### Código encurtado, continuava assim para todos os registradores ### mfc1 $16, $f31 addi $4, $0, 16 addi $5, $0, 31 jal print_register.globl prologue prologue: lw $ra, 0($sp) addiu $sp, $sp, 4 jr $ra Código 2 - contexto.asm ### ### Area de Dados ### data n1:.float 3.5 n2:.float msg:.asciiz "Mostrando registradores da FPU: \n" ### ### Area de Codigo ### text.globl main main: addiu $sp, $sp, -4 sw $ra, 0($sp)
18 16 l.s l.s $f4, n1 $f6, n2 mul.s $f12, $f4, $f6 cvt.d.s $f22, $f12 mul.d $f24, $f22, $f22 mul.d $f26, $f24, $f24.globl prologue prologue: lw $ra, 0($sp) addiu $sp, $sp, 4 jr $ra Código 3 - Programa auxiliar, contexto- spim. asm Figura 6 - Resultado da Execução do programa contexto.asm
19 Figura 7 - Visualização do contexto através do SPIM 17
Arquitetura FPU: Implementação MIPS32. Guilherme Fernandes Raphanelli Diogo D. Fonseca dos Santos
Arquitetura FPU: Implementação MIPS32 Guilherme Fernandes Raphanelli Diogo D. Fonseca dos Santos Introdução O suporte para operações de ponto flutuante nas diferentes arquiteturas é normalmente dado através
Leia maisAritmética Computacional. Prof. Leonardo Barreto Campos 1
Aritmética Computacional Prof. Leonardo Barreto Campos Sumário Introdução; Representação de Números Inteiros; Aritmética de Números Inteiros; Representação de Números de Ponto Flutuante; Aritmética de
Leia maisEA960 Aritmética e Representação Numérica
EA960 Aritmética e Representação Numérica Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato Introdução Até o momento, nos preocupamos
Leia maisArquitetura de Computadores II MIPS64. Prof. Gabriel P. Silva
Arquitetura de Computadores II MIPS64 Prof. Gabriel P. Silva C:=A+B: Tipos de Arquitetura MIPS64 Arquitetura do tipo Load/Store 32 registradores de uso geral de 64 bits. 32 registradores de ponto flutuante
Leia maisUNIMINAS. 101.. Só é necessário o armazenamento de: Sinal da mantissa: - (menos). Valor da mantissa: 00110101. Sinal do expoente: -(na realidade, háh
Representação em Ponto Flutuante Utiliza-se a representação científica normalizada: 2500 = 2,5 x 10 3 0,00009 = 9,0 x 10-5. Mantissa: 1 =< M < 2. Na realidade, trabalha-se na base 2: -1,00110101 x 2-1012
Leia maisARQUITECTURA DE COMPUTADORES
ARQUITECTURA DE COMPUTADORES CAPÍTULO III AULA I, II e III Abril 2014 Índice Aritmética para computadores Intro Adição e subtração Multiplicação Divisão Virgula Flutuante Virgula Flutuante - aritmética
Leia maisProf. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO
Linguagem de Montagem Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO 1 Introdução Independente da linguagem de programação utilizada, todo programa
Leia maisInformática Aplicada
Informática Aplicada Aula 1 Introdução Diogo Pinheiro Fernandes Pedrosa Departamento de Ciências Exatas e Naturais Universidade Federal Rural do Semi-Árido Introdução Informática informação aplicada; Pressupõe
Leia maisProjetando um Computador
Objetivo Projetando um Computador Parte II (2) Projetando um Computador Parte II Arquitetura do Processador BIP Apresentar as noções do funcionamento de um computador através da descrição da arquitetura
Leia maisArquitetura e Organização de Processadores. Aula 2. Processadores RISC Apresentação do processador MIPS
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 2 Processadores RISC Apresentação do processador
Leia maisflutuante 11. Aritmética de vírgula Operações em números fraccionários
11. Aritmética de vírgula flutuante Vamos falar de aritmética não-inteira (i.e., fraccionária, ou de vírgula flutuante ). Este capítulo pode ser adiado pois precisas de conceitos teóricos importantes sobre
Leia maisArquitetura de Computadores I
Arquitetura de Computadores I Aritmética Computacional - Ponto Flutuante - Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Slides baseados nas lâminas dos profs Ney Calazans e Fernando
Leia maisCaminho de Dados e Controle. Prof. Leonardo Barreto Campos 1
Caminho de Dados e Controle Prof. Leonardo Barreto Campos 1 Sumário Introdução; Convenções Lógicas de Projeto; Construindo um Caminho de Dados; O Controle da ULA; Projeto da Unidade de Controle Principal;
Leia maisCapítulo 6. Aritmética Computacional. 6.1 Números com Sinal e Números sem Sinal
61 Capítulo 6 Aritmética Computacional As palavras de um computador são compostas por bits e podem representar números armazenados na memória. Estes números podem ter diferentes significados, como inteiros
Leia maisIntrodução. Software Básico Aula 3. Prof. Dr. Rogério Vargas.
Introdução Software Básico Aula 3 Prof. Dr. Rogério Vargas http://rogerio.in Provocação Você já se perguntou como é que os programas que você escreve são traduzidos em instruções executáveis pelas estruturas
Leia maisProjetando um Computador Parte II Arquitetura do Processador BIP
Projetando um Computador Parte II Arquitetura do Processador BIP Prof. Dr. Cesar Albenes Zeferino (zeferino@univali.br) Objetivo Projetando um Computador Parte II (2) Apresentar as noções do funcionamento
Leia maisGuilherme Martini Gustavo Schmid de Jesus Luís Armando Bianchin Márcio José Mello da Silva
Guilherme Martini Gustavo Schmid de Jesus Luís Armando Bianchin Márcio José Mello da Silva Formatos Representações Especiais Arredondamentos Operações Exceções rev. 2008 2 O padrão (ANSI /IEEE Std 754-1985,
Leia maisCapítulo VI Circuitos Aritméticos
Capítulo VI Circuitos Aritméticos Introdução No capítulo anterior estudamos a soma e subtração de números binários. Neste capítulo estudaremos como as operações aritméticas de soma e subtração entre números
Leia maisFundamentos de Arquitetura e Organização de Computadores
Fundamentos de Arquitetura e Organização de Computadores Dois conceitos fundamentais no estudo dos sistemas de computação são o de Arquitetura e Organização de computadores. O termo arquitetura refere-se
Leia maisData Path / Control Path Controle do MIPS
Organização e Arquitetura de Computadores Unidade de Controle Uniciclo A unidade de controle deve, a partir do código da instrução, fornecer os sinais que realizam as instruções na unidade operativa. Sequência
Leia maisProva Modelo. Nome: Número:
Arquitectura de Computadores (2008/2009) Licenciatura em Engenharia Informática Prova Modelo 27 de Abril de 2009 Duração: 56 min. + 5 min. de tolerância Nome: Número: Isto trata-se de uma prova modelo
Leia maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Evolução e Desempenho dos Computadores Slide 1 Conceitos Arquitetura do Computador Refere-se aos atributos que são visíveis para o programador. Ex: conjunto
Leia maisConstrução de uma via de dados, abordagem monociclo, multiciclo e pipeline
INSTITUTO FEDERAL DO RIO GRANDE DO NORTE DIRETORIA ACADÊMICA DE GESTÃO E TECNOLOGIA DA INFORMAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES DISCIPLINA: ORGANIZAÇÃO DE COMPUTADORES Construção
Leia maisVírgula flutuante Aula 6
Vírgula flutuante Aula 6 17 de Março de 2005 1 Estrutura desta aula Números em vírgula flutuante Formatos dos números em vírgula fixa e em vírgula flutuante A norma IEEE 754 Normalizações, expoentes, zeros
Leia maisRepresentações de caracteres
Representações de caracteres Sistemas de Numeração A necessidade de contar é algo que acompanha o ser humano desde tempos imemoriais. Sistemas de Numeração Usando o polegar para indicar em cada dedo a
Leia maisRegistradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture
Registradores na Arquitetura MIPS 29/4/2016 MIPS - Instruction Set Architecture 1 Mapa de Memória da Arq. MIPS 2 GB 2 GB 256 MB 64 KB 2 GB 64 KB 256 4 MB 4 MB 29/4/2016 MIPS - Instruction Set Architecture
Leia maisO Conjunto de Instruções do Processador
26 Capítulo 4 O Conjunto de Instruções do Processador O conjunto de instruções é um dos pontos centrais na arquitetura de um processador. Vários aspectos na definição e implementação da arquitetura são
Leia maishttp://www.ic.uff.br/~boeres/fac.html! Conteúdos: Debora, Edcarllos, livros! slides disponíveis!
http://www.ic.uff.br/~boeres/fac.html! 1 Conteúdos: Debora, Edcarllos, livros! slides disponíveis! Unidade central de Processamento realiza operações básicas codificadas em 0s e 1s instrução contém código
Leia maisMicrocontroladores e Microprocessadores. Conversão de Bases Prof. Samuel Cavalcante
Microcontroladores e Microprocessadores Conversão de Bases Prof. Samuel Cavalcante Conteúdo Conversão de Qualquer base para Decimal Decimal para Binário Hexadecimal para binário Componentes básicos de
Leia maisEstruturas de Repetição
Estruturas de Repetição Lista de Exercícios - 04 Algoritmos e Linguagens de Programação Professor: Edwar Saliba Júnior Estruturas de Repetição O que são e para que servem? São comandos que são utilizados
Leia maisSistemas Numéricos. Tiago Alves de Oliveira
Sistemas Numéricos Tiago Alves de Oliveira Sumário Sistemas Numéricos Binário Octal Hexadecimal Operações aritméticas binária e hexadecimal Operações lógicas binárias e decimais Representação Interna de
Leia maisUniversidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.
Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas
Leia maisOganização e Arquitetura de Computadores
Oganização e Arquitetura de Computadores Capítulo 14 e 15 Unidade de Controle Parte I Operação da Unidade de Controle 1 Micro-Operações Um computador executa um programa Ciclo: Busca/Executa Cada ciclo
Leia maisDetecção de erros de comunicação de dados CRC
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Detecção de erros de comunicação de dados CRC Rui Barbosa 12/04/2011 Í NDI CE 1. Introdução... 4 2. Cyclic Redundancy Check... 5 2.1. Fundamentos Teóricos...
Leia maisSistemas Distribuídos Capítulo 4 - Aula 5
Sistemas Distribuídos Capítulo 4 - Aula 5 Aula Passada Clusters de Servidores Migração de Código Comunicação (Cap. 4) Aula de hoje Chamada de Procedimento Remoto - RPC Fundamentos 1 Chamada de Procedimento
Leia maisOrientação a Objetos
Orientação a Objetos 1. Manipulando Atributos Podemos alterar ou acessar os valores guardados nos atributos de um objeto se tivermos a referência a esse objeto. Os atributos são acessados pelo nome. No
Leia maisPARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR
PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Instruções são representadas em linguagem de máquina (binário) E x i s t e m l i n g u a g e n
Leia maisO Sistema de Computação
Departamento de Ciência da Computação - UFF O Sistema de Computação Profa. Débora Christina Muchaluat Saade debora@midiacom.uff.br O Sistema de Computação Capítulo 2 Livro do Mário Monteiro Componentes
Leia maisNotas de Aula Guilherme Sipahi Arquitetura de Computadores
Notas de Aula Guilherme Sipahi Arquitetura de Computadores Aritmética de Ponto Flutuante. 1. Da aritmética de Inteiros a aritmética de Pontos Flutuantes : Números inteiros deixam de representar uma parte
Leia maisTECNOLOGIA EM MECATRÔNICA INDUSTRIAL CONTROLADORES LÓGICOS PROGRAMÁVEIS
TECNOLOGIA EM MECATRÔNICA INDUSTRIAL CONTROLADORES LÓGICOS PROGRAMÁVEIS TECNOLOGIA EM MECATRÔNICA INDUSTRIAL CONTROLADORES LÓGICOS PROGRAMÁVEIS Autor: Prof. Heliliano Carlos Sartori Guedes prof.helilianoguedes@gmail.com
Leia maisArquitetura de Computadores Moderna
Arquitetura de Computadores Moderna Eduardo Barrére (eduardo.barrere@ice.ufjf.br) DCC/UFJF Baseado no material do prof. Marcelo Lobosco Agenda Visão Geral Objetivos do Curso Ementa Bibliografia Avaliações
Leia maisInfraestrutura de Hardware. Instruindo um Computador Subrotinas, Tipos de Dados e Modos de Endereçamento
Infraestrutura de Hardware Instruindo um Computador Subrotinas, Tipos de Dados e Modos de Endereçamento Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de
Leia maisCAPÍTULO 2 SISTEMAS DE NUMERAÇÃO E CÓDIGOS
CAPÍTULO 2 SISTEMAS DE NUMERAÇÃO E CÓDIGOS Código BCD; Comparação entre BCD e Binário; Circuitos Digitais para BCD; Código Gray; Código ASCII; Detecção de erros pelo método de Paridade O que é um Código?
Leia maisManual do Usuário SISCOLE - Sistema de Cadastro de Organismos e Laboratórios Estrangeiros
Manual do Usuário SISCOLE - Sistema de Cadastro de Organismos e Laboratórios Estrangeiros MANUAL DO USUÁRIO 1. SOBRE O SISTEMA 1.1 Informações básicas Nome: SISCOLE - Sistema de Cadastro de Organismos
Leia maisArquitetura de Computadores EL66C 1a. Prova - Gabarito 26/04/10
1. Questão [2,0] Com respeito a operação em modo protegido, da arquitetura IA-32, pede-se: a) [1,0] Qual a finalidade do campo word count' em um descritor tipo call gate? Forneça um exemplo de sua utilização.
Leia maisSistemas Digitais II. Interface com o mundo analógico. Prof. Marlon Henrique Teixeira Abril/2014
Sistemas Digitais II Interface com o mundo analógico Prof. Marlon Henrique Teixeira Abril/2014 Objetivos Compreender a teoria de funcionamento e as limitações dos circuitos de diversos tipos de conversores
Leia maisSistemas de Vírgula Flutuante
Luiz C. G. Lopes Departamento de Matemática e Engenharias Universidade da Madeira MAT 2 05 2007/08 Definição. Diz-se que um número real x R\{0} é um número de vírgula flutuante normalizado se forem verificadas
Leia maisExercícios: comandos de repetição
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Lista de exercícios de programação em linguagem C Exercícios: comandos de repetição 1) Elabore um programa que faça leitura de vários números inteiros, até que se digite
Leia maisÁrvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos
Árvores Parte 1 Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos Árvores uma introdução As listas apresentadas na aula anterior formam um conjunto de TADs extremamente importante
Leia maisDo alto-nível ao assembly
Do alto-nível ao assembly Compiladores Cristina C. Vieira 1 Viagem Como são implementadas as estruturas computacionais em assembly? Revisão dos conceitos relacionados com a programação em assembly para
Leia maisNa Aula Anterior... Operações Aritméticas e Lógicas
GBC36Arq. e Org. de Computadores I 29/8/26 Na Aula Anterior... Operações Aritméticas e Lógicas A linguagem Assembly; Montadores; Ligadores; Ligação Estática; Ligação Dinâmica; Universidade Federal de Uberlândia
Leia maisGestão das E/S por Interrupções
7 Gestão das E/S por Interrupções Never interrupt your enemy when he is making a mistake. Napoleão Bonaparte Neste capítulo iremos conhecer o mecanismo de excepções do processador MIPS e no fim deste capítulo
Leia maisArquitetura de Computadores
Universidade Federal de Santa Catarina Centro Tecnológico Curso de Pós-Graduação em Ciência da Computação Aula 2 Arquitetura do Processador MIPS: características gerais, registradores, formatos de instrução,
Leia maisLINGUAGEM JAVA - RESUMO
LINGUAGEM JAVA - RESUMO 1.1. Estrutura Geral de um Programa 1. ESTRUTURAS BÁSICAS public class nome do programa public static void main(string[] args) instruções do programa 1.2. Tipos Primitivos de Dados
Leia maisConceitos c++ Prof. Demétrios Coutinho INFORMÁTICA BÁSICA
INFORMÁTICA BÁSICA Conceitos c++ Prof. Demétrios Coutinho C a m p u s P a u d o s F e r r o s D i s c i p l i n a d e O r g a n i z a ç ã o d e A l g o r i t m o s D e m e t r i o s. c o u t i n h o @
Leia mais2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.
1) Inicializar um vetor de inteiros com números de 0 a 99 2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média 3)
Leia maisFigura 8: modelo de Von Neumann
3. ORGANIZAÇÃO DE SISTEMA DE COMPUTADORES Olá, caro aluno! Neste capítulo vamos ver como são organizados os componentes que formam um sistema computacional. O conceito é histórico, mas é aplicado até os
Leia maisLinguagem de Programação C. Fluxo de Saída Padrão. Linguagem de Programação C. printf. Fluxo de Saída Padrão. Algoritmos e Lógica de Programação
Algoritmos e Lógica de Programação Linguagem de Programação C Linguagem C Entrada e Saída de dados Reinaldo Gomes reinaldo@cefet-al.br Fluxo de Saída Padrão Saída Formatada: ( ) Tem a função de
Leia maisLinguagem C. Introdução à Programação C. Variáveis. Identificadores. Identificadores 12/03/2011 VARIÁVEIS E TIPOS DE DADOS
Linguagem C Introdução à Programação C Introdução à Ciência da Computação I Prof. Denis F. Wolf Origem de C está associada ao sistema Unix Histórico: 1970: Ken Thompson desenvolve B, baseada em BCPL, para
Leia maisSSC0114 Arquitetura de Computadores
SSC0114 Arquitetura de Computadores 3ª Aula Arquitetura MIPS: ISA, Formato das instruções e Modos de endereçamento MIPS Monociclo: Caminho de Dados e Unidade de Controle Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br
Leia maisExercícios: Vetores e Matrizes
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Escreva um programa que leia 10 números
Leia maisPONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA DEPARTAMENTO: Fundamentos da Computação DISCIPLINA: Arquitetura de Computadores I CÓDIGO: 46185 CRÉDITOS: 04 CARGA HORÁRIA:
Leia maisINTEGRAIS INTEGRAL INDEFINIDA
INTEGRAIS INTEGRAL INDEFINIDA A integração indefinida ou anti-derivação é a operação inversa da derivação, da mesma forma que a subtração é a operação inversa da adição ou a divisão é a operação inversa
Leia maisProf. Adilson Gonzaga. Interface com Displays
Prof. Adilson Gonzaga Interface com Displays Interface com Displays de 7 Segmentos 2 Um Display de 7 segmentos é formado por 7 LED s (a,b,c,d,e,f,g) que são previamente encapsulados e conectados de duas
Leia maisNa Aula Anterior... Operações Aritméticas e Lógicas. Nesta Aula. Instruções Aritméticas (N e Z) Exemplo 11/03/2019
GBC046 Arq. e Org. de Computadores II Operações Aritméticas e Lógicas Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Na Aula Anterior... A linguagem Assembly;
Leia maisO que é Microsoft Excel? Microsoft Excel. Inicialização do Excel. Ambiente de trabalho
O que é Microsoft Excel? Microsoft Excel O Microsoft Excel é um programa para manipulação de planilhas eletrônicas. Oito em cada dez pessoas utilizam o Microsoft Excel pra trabalhar com cálculos e sistemas
Leia maisO Jogo da Velha Dançarina
Departamento de Ciência da Computação IME-USP MAC 110 Introdução à Computação para BM, BE, BMA IME Primeiro Semestre de 2011 1 Introdução Primeiro Exercício-Programa (EP1) O Jogo da Velha Dançarina Prazo
Leia mais3. COMPILAÇÃO E ESTRUTURA BÁSICA DE UM PROGRAMA EM C
3. COMPILAÇÃO E ESTRUTURA BÁSICA DE UM PROGRAMA EM C 3.1. Compilação de um Programa C O compilador C realiza a compilação do código-fonte de um programa em cinco etapas: edição, pré-processamento, compilação,
Leia maisAULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 05: Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE SÃO PROCEDIMENTOS? Procedimentos são um conjunto
Leia maisa) 2 b) 3 c) 4 d) 5 e) 6
Recordando operações básicas 01. Calcule as expressões abaixo: a) 2254 + 1258 = b) 300+590 = c) 210+460= d) 104+23 = e) 239 54 = f) 655-340 = g) 216-56= h) 35 x 15 = i) 50 x 210 = j) 366 x 23 = k) 355
Leia mais- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula E-mail: fernandohs@ifsp.edu.br
Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula E-mail: fernandohs@ifsp.edu.br Sistemas de Arquivos- Parte 2 Pontos importantes de um sistema de arquivos Vários problemas importantes devem
Leia mais7. Funções de Lógica Combinacional. 7. Funções de Lógica Combinacional 1. Somadores Básicos. Objetivos. Objetivos. Circuitos Digitais 03/11/2014
Objetivos 7. Funções de Lógica Combinacional Fazer distinção entre meio-somadores e somadores-completos Usar somadores-completos para implementar somadores binários em paralelo Explicar as diferenças entre
Leia maisGuia Rápido MIPS. Tipos de Dados e Formatações
Tipos de Dados e Formatações Guia Rápido MIPS Tipos de Dados: Todas as instruções são de 32 bits Byte = 8 bits Halfword = 2 bytes Word = 4 bytes Um caractere ocupa 1 byte na memória Um inteiro ocupa 1
Leia maisCapítulo 2. Representação de números em vírgula flutuante
Capítulo 2 Representação de números em vírgula flutuante Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture Números inteiros Os computadores foram
Leia maisMANUAL DE UTILIZAÇÃO DO AUTO ATENDIMENTO SETOR PÚBLICO DO BANCO DO BRASIL
PREFEITURA DE JUIZ DE FORA SECRETARIA DA FAZENDA SUBSECRETARIA DO SISTEMA DE CONTROLE INTERNO DEPARTAMENTO DE NORMAS TÉCNICAS MANUAL DE UTILIZAÇÃO DO AUTO ATENDIMENTO SETOR PÚBLICO DO BANCO DO BRASIL DATA:
Leia maisOperações de Controle de Fluxo e Acesso a Memória. Na Aula Anterior... Nesta Aula. Instruções de Controle de Fluxo. if then - else.
GBC036 Arq. e Org. Computadores I Operações Controle Fluxo e Acesso a Memória Na Aula Anterior... Instruções aritméticas em Z; Formato e Codificação Instruções; Overflow e unrflow; Instruções aritméticas
Leia maisAlgoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz
Algoritmos e Programação : Conceitos e estruturas básicas Hudson Victoria Diniz Relembrando... Um algoritmo é formalmente uma seqüência finita de passos que levam a execução de uma tarefa. Podemos pensar
Leia maisExercícios: Comandos de Repetição
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Comandos de Repetição 1. Elabore um programa que faça leitura de vários
Leia maisO SOFTWARE R EM AULAS DE MATEMÁTICA
O SOFTWARE R EM AULAS DE MATEMÁTICA Renata Teófilo de Sousa (autora) Graduanda - Curso de Matemática UVA Arlécia Albuquerque Melo (co-autora) Graduanda - Curso de Matemática UVA Nilton José Neves Cordeiro
Leia maisUniversidade Federal do ABC Disciplina: Natureza da Informação Lista de Exercícios 02 Códigos e conversão A/D Prof. João Henrique Kleinschmidt
Universidade Federal do ABC Disciplina: Natureza da Informação Lista de Exercícios 02 Códigos e conversão A/D Prof. João Henrique Kleinschmidt A lista é individual e deve ser escrita à mão. 1) Uma importante
Leia maisProgramação para Computação
Programação para Computação Prova 1 22/09/2008 Resolução Prof. Marcus Vinícius Midena Ramos Engenharia de Computação UNIVASF Questão 1 (1,2 ponto): Descreva, de forma clara, completa e concisa, a sintaxe
Leia maisISA Instruction Set Architecture (Revisão) Na Aula Anterior... Nesta Aula. Conceitos. Tipos de Dados. Tipos de Dados 11/03/2019
GBC046 Arq. e Org. de Computadores II ISA Instruction Set Architecture (Revisão) Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Na Aula Anterior... Anatomia
Leia mais12 de Março de 2007 1. Aula 5
12 de Março de 2007 1 Multiplicação e divisão inteiras Aula 5 Estrutura desta aula Multiplicação básica Multiplicações melhoradas Multiplicação em complemento para 2 Algoritmo de Booth Divisão básica Ref:
Leia maisResolução de sistemas de equações lineares: Método de eliminação de Gauss
Resolução de sistemas de equações lineares: Método de eliminação de Gauss Marina Andretta ICMC-USP 21 de março de 2012 Baseado no livro Análise Numérica, de R L Burden e J D Faires Marina Andretta (ICMC-USP)
Leia maisEspecificação do Projeto de Processador RISC
UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO Especificação do Projeto de Processador RISC mycpu Neste documento é apresentada a especificação do projeto da disciplina Organização e Arquitetura de Computadores
Leia maisCadastro de Usuários Manual de Usuário 09/05/2011 FAPESP
Cadastro de Usuários Manual de Usuário 09/05/2011 FAPESP Conteúdo Introdução... 3 Procedimento para cadastro... 3 Cadastro de Usuário Pesquisador... 4 Cadastro de Usuário Comum... 10 Ativação de Conta...
Leia maisRequisitos de Software
Requisitos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 6 Slide 1 Objetivos Descrever requisitos funcionais e não funcionais Explicar como os requisitos de software podem
Leia maisAproximações e Erros
Aproximações e Erros Lucia Catabriga e Andréa Maria Pedrosa Valli Laboratório de Computação de Alto Desempenho (LCAD) Departamento de Informática Universidade Federal do Espírito Santo - UFES, Vitória,
Leia maisCAPÍTULO 4 CAMINHO DE DADOS E CONTROLE
CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE Introdução Uma implementação MIPS básica Sinopse da implementação Sinais de controle Multiplexadores (muxes) Implementação monociclo Metodologia de clocking Construindo
Leia maisUniversidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Structs 1. Utilizando estrutura, fazer um programa em C que permita
Leia maisMultiplicador Binário com Sinal
Multiplicador Binário com Sinal Edson T. Midorikawa/2010 RESUMO Nesta experiência será implementado circuito para multiplicação binária com sinal. Deve ser aplicada a metodologia para projeto estruturado
Leia maisConjunto de Instruções MIPS Parte IV
Faculdade de Ciências Aplicadas e Sociais de Petrolina FACAPE Conjunto de Parte IV Transferência de Dados Lógicas Controle Suporte a procedimentos Prof. Sérgio Adaptado dos slides de Sistemas Processadores
Leia maisOrganização e Arquitetura de Computadores I
Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas
Leia maisSistemas Processadores e Periféricos Aula 2 - Revisão
Sistemas Processadores e Periféricos Aula 2 - Revisão Prof. Frank Sill Torres DELT Escola de Engenharia UFMG Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor Leandro Galvão
Leia maisAnterior Sumário Próximo MATRIZES, DETERMINANTES E SISTEMAS
Anterior Sumário Próximo MATRIZES, DETERMINANTES E SISTEMAS Clicando em, o usuário é conduzido para uma tela onde os conteúdos estão separados por blocos, que são acessados a medida que clicamos em cada
Leia maisa) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização.
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação 2016.2 Profa.: Simone Martins Lista 1 1. Um programa P foi compilado com um compilador
Leia maisUM PROCESSADOR SIMPLES
UM PROCESSADOR SIMPLES Versão 2015 RESUMO Esta experiência tem como objetivo o desenvolvimento do projeto de um núcleo de um processador simples. Na parte experimental este projeto deverá ser sintetizado
Leia maisErros e Incertezas. Rafael Alves Batista Instituto de Física Gleb Wataghin Universidade Estadual de Campinas (Dated: 10 de Julho de 2011.
Rafael Alves Batista Instituto de Física Gleb Wataghin Universidade Estadual de Campinas (Dated: 10 de Julho de 2011.) I. INTRODUÇÃO Quando se faz um experimento, deseja-se comparar o resultado obtido
Leia maisDisciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 22/abril/2009
Prova P1 Aluno Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 22/abril/2009 Valor das questões: 1) 3 pontos 2) 3 pontos 3) 4 pontos 1. O fragmento de
Leia maisMontadores e Compiladores
Montadores e Compiladores Prof. Idevar Gonçalves de Souza Júnior Conteúdo Programático Resumido Revisão da Arquitetura de Computadores Introdução a Teoria das Linguagens Compilação e Interpretação Análise
Leia mais