MIPS. Prof. Carlos Bazilio
|
|
- Lucca Ximenes Alcântara
- 8 Há anos
- Visualizações:
Transcrição
1 MIPS Prof. Carlos Bazilio
2 Introdução Plataforma projetada da parceria entre NEC, Nintendo, Silicon Graphics e Sony Possui um conjunto de instruções que e utilizado em muitos produtos destes fabricantes Possui um simulador que permite a experimentação durante o curso:
3 Introdução Visualizando um computador como uma máquina de vários níveis, o MIPS se localiza no nível 1 Nível n: Máquina Virtual M n com linguagem de máquina L n... Nível 2: Máquina Virtual M 2 com linguagem de máquina L 2 Nível 1: Máquina Virtual M 1 com linguagem de máquina L 1 Nível 0: Máquina Virtual M 0 com linguagem de máquina L 0 (circuitos eletrônicos)
4 Operações no Hardware As instruções utilizadas para se programar um hardware são comumente chamadas de conjuntos de instruções Operações aritméticas são suportadas por todos os computadores Em MIPS, add a, b, c instrui o computador a somar b e c e armazenar em a o resultado
5 Operações no Hardware Entretanto, o conjunto de instruções do MIPS é rígido, só permitindo, para as instruções de adição, 3 argumentos Ou seja, para realizarmos a soma a = b + c + d + e Temos que quebrar a atribuição em várias somas: add a, b, c add a, a, d add a, a, e
6 Operações no Hardware Esta característica rígida de 3 operandos para estas operações aritméticas favorece a simplicidade do projeto do hardware Suponha agora a seguinte atribuição em linguagem de alto nível f = (g + h) (i + j); A instrução de subtração no MIPS é sub e possui o mesmo número de operados da instrução add Como traduzimos para a linguagem do MIPS?
7 Operações no Hardware Iniciamos a tradução da instrução f = (g + h) (i + j); como as anteriores add f, g, h Entretanto, a soma de i e j não pode ser atribuída a f, nem a i ou j Como isso, vemos a necessidade de utilizarmos temporárias add t0, i, j sub f, f, t0
8 Operandos das Instruções Diferentemente das linguagens de alto nível, as linguagens de montagem possuem restrições quanto ao tamanho de suas instruções No MIPS, os operandos das operações aritméticas são os registradores Nesta arquitetura estão disponíveis 32 registradores, cada qual com 32 bits de tamanho Esta limitação possibilita eficiência no uso dos recursos
9 Convenção no MIPS No MIPS, os identificadores dos registradores são precedidos por um $s para variáveis de um programa e $t para temporárias Dessa forma, o resultado da última tradução ficaria, supondo f, g, h, i, j em $s0, $s1, $s2, $s3, $s4: add $s0, $s1, $s2 add $t0, $s3, $s4 sub $s0, $s0, $t0
10 Operandos em Memória Operandos de instruções em memória precisam ser trazidos para a CPU para que possam ser manipulados As instruções do MIPS que realizam acesso à memória são lw (load word) e sw (store word) Suponha que A seja um vetor de 100 palavras (palavra word - possui tamanho de 32 bits) Como compilamos a expressão g = h + A[8];
11 Operandos em Memória Suponha que para a expressão g = h + A[8];, g esteja em $s1, h esteja em $s2 e o endereço base de A esteja em $s3 Relembrando que acessamos elementos diferentes num vetor realizando deslocamentos (offsets) à partir da base, temos: lw $t0, 8($s3) add $s1, $s2, $t0
12 Operandos em Memória Observe que, para o MIPS, a memória está organizada em palavras (sequências de 32 bits) Além disso, as instruções lw e sw realizam transferências de 32 bits Com isso, o offset fornecido precisa ser multiplicado por 4 para obter o elemento do vetor correto lw $t0, 32($s3) add $s1, $s2, $t0
13 Operandos em Memória Como compilamos a seguinte instrução para MIPS: A[12] = h + A[i]; Suponha que o endereço base de A está em $s3, h em $s2 e i em $s4 Inicialmente, temos que multiplicar o índice i por 4 para endereçar palavras add $t1, $s4, $s4 add $t1, $t1, $t1
14 Operandos em Memória Compilando A[12]=h+A[i]; Podemos adicionar a i o endereço base de A add $t1, $t1, $s3 Carregamos o valor de A[i] para memória: Somamos o valor de h lw $t0, 0($t1) add $t0, $t0, $s2 Finalmente, armazenamos em A[12] sw $t0, 48($t0)
15 Algumas Observações Iniciais Transferências entre registradores e memória, na verdade, são cópias A memória pode ser vista como um vetor unidimensional Considerando que é tarefa do compilador alocar área de memória para um programa, fica fácil realizar a associação entre variáveis e registradores
16 Algumas Observações Iniciais Máquinas que endereçam palavras (sequências de 32 bits) podem ser: Big endians: consideram o byte mais à direita como endereço da palavra Little endians: consideram o byte mais à esquerda como endereço da palavra
17 Representação de Instruções A convenção entre os registradores e seus valores no MIPS é: $s0..$s7 16 a 23 $t0..$t7 8 a 15 Assim, a instrução add $t0, $s1, $s2 tem a seguinte representação (em decimal): opcode rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits
18 Representação de Instruções Descrição dos campos: op (opcode): operação básica da instrução rs: registrador do primeiro operando de origem rt: registrador do segundo operando de origem rd: registrador do operando de destino shamt (shift ammount): quantidade de deslocamento (não utilizado na adição) funct: seleciona a variante da operação básica definida Instrução add $t0, $s1, $s2 em representação binária: opcode rs rt rd shamt funct
19 Representação de Instruções Para as instruções de acesso a memória, 5 bits permitiriam o endereçamento de apenas 32 (2 5 ) células de memória De forma a ampliar esta limitação, o formato das instruções é modificado da seguinte forma: opcode rs rt constante ou endereço 6 bits 5 bits 5 bits 16 bits No MIPS, este formato é chamado de formato do tipo I, enquanto o primeiro é chamado de tipo R
20 Representação de Instruções Exemplificanto a representação do tipo I, a instrução lw $t0, 32($s3) é traduzida para a seguinte sequência de bits: opcode rs rt endereço, onde $s3 (registrador 19) é colocado em rs, $t0 (registrador 8) é colocado em rt e 32 é colocado no campo endereço
21 Representação de Instruções Outro exemplo de instrução do tipo I é a adição imediata (addi) Esta instrução permite a adição de constantes Por exemplo: addi $s3, $s3, 4 # $s3=$s opcode rs rt endereço
22 Resumo das Instru Resumo das Instruções ões endereço n.a. n.a. n.a. reg reg 43 I sw endereço n.a. n.a. n.a. reg reg 35 I lw constante n.a. n.a. n.a. reg reg 8 I addi n.a reg reg reg 0 R sub n.a reg reg reg 0 R add endereço funct shamt rd rt rs op Tipo Instrução
23 Instruções de Operadores Lógicos O MIPS oferece operações lógicas and (& em C), andi, or ( em C), ori e nor (~ em C) As instruções and, or e nor utilizam o formato R, enquanto que andi e ori utilizam o formato I Por exemplo: and $t0, $t1, $t2 #$t0=$t1&$t2 é representado pela seguinte sequência de bits opcode rs rt rd shamt funct
24 Instruções de Deslocamento Também são oferecidas operações de deslocamento: sll (<< - shift à esquerda), srl (>> - shift à direita) Por exemplo: sll $t2, $s0, 4 #$t2=$s0<<4 é representado pela sequência opcode rs rt rd shamt funct
25 Resumo de Instruções Lógicas e Deslocamento Instrução Tipo op rs rt rd shamt funct endereço and R 0 reg reg reg 0 36 n.a. or R 0 reg reg reg 0 37 n.a. andi I 12 reg reg n.a. n.a. n.a. c te ori I 13 reg reg n.a. n.a. n.a. c te nor R 0 reg reg n.a. n.a. 39 n.a. sll R 0 n.a. reg reg c te 0 n.a. srl R 0 n.a. reg reg c te 2 n.a.
26 Instruções para Tomada de Decisão beq (branch if equal) e bne (branch if not equal) são instruções de desvio condicional O formato geral destas instruções é: (bne / beq) reg1, reg2, L1 onde reg1 e reg2 são os operandos da instrução e L1 é o endereço para onde a execução desviará caso a condição seja válida
27 Instruções para Tomada de Decisão Supondo o seguinte código em C if (i == j) go to L1; f = g + h; L1: f = f i; // onde, f..j em $s0.. $s4 Podemos ter o seguinte código em MIPS beq $s3, $s4, L1 add $s0, $s1, $s2 L1: sub $s0, $s0, $s3
28 Instruções para Tomada de Decisão Supondo o seguinte código em C if (i == j) else f = g + h; f = g h; // onde, f.. j em $s0.. $s4 Podemos ter o seguinte código em MIPS bne $s3, $s4, Else add $s0, $s1, $s2 j Exit # desvio incondicional Else: sub $s0, $s1, $s2 Exit:
29 Loops while (save[i] == k) i = i + j; save em $s6 // onde i, j, k em $s3..5 e Loop: add $t1, $s3, $s3 add $t1, $t1, $t1 # $t1 = 4*i add $t1, $t1, $s6 lw $t0, 0($t1) bne $t0, $s5, Exit add $s3, $s3, $s4 j Loop Exit:
30 Instruções para Tomada de Decisão slt (set on less than): compara 2 operandos e define 1 se o 1º. é menor que o 2º. Exemplo: slt $t0, $s3, $s4 # t0 é 1 se s3<s4 bne $t0, $zero, Less #desvia para Less se $t0<>0 (s3<s4)
31 Switch / Case switch(k) { case 0: f = i + j; break; case 1: f = g + h; break; case 2: f = g h; break; } // f.. k em $s0..5, $t2 = 3, L0..2 iniciando em $t4
32 Procedimentos Passos a serem tomados na execução de um procedimento: 1. Colocar os argumentos num local onde possam ser acessados pelo procedimento chamado (responsabilidade do chamador) 2. Garantir os recursos de memória necessários para execução do procedimento (chamador) 3. Transferir o controle para o procedimento (chamador)
33 Procedimentos (... continuação da execução de um procedimento): 4. Realizar a tarefa desejada (chamado) 5. Colocar o resultado em local acessível (chamado) 6. Retornar ao ponto de origem e liberar os recursos (chamador ou chamado)
34 Procedimentos Registradores e Instruções $a0 - $a3: 4 registradores utilizados como parâmetros de um procedimento $v0 - $v1: 2 registradores utilizados para o retorno de valores por um procedimento $ra: registrador que guarda o ponto de desvio na chamada do procedimento (endereço de retorno return address) jal Endereço # desvia a execução para Endereço e salva o endereço da instrução seguinte em $ra jr $ra # após a execução do procedimento, retorna para o procedimento chamador
35 Procedimentos Registradores e Instruções Procedimentos que requerem mais registradores (parâmetros e retorno) devem utilizar uma pilha para a passagem de valores Esta pilha é acessada pelo registrador $sp (stack pointer)
36 Procedimentos Exemplo int f_exemplo (int g, int h, int i, int j) { int f; f = (g + h) - (i + j); return f; } // onde g.. j em $a0..3, f em $s0... jal rotina # chamada da função f_exemplo()... f_exemplo: sub $sp, $sp, 12 sw $t1, 8 ($sp) sw $t0, 4 ($sp) sw $s0, 0 ($sp) add $t0, $a0, $a1 add $t1, $a2, $a3 sub $s0, $t0, $t1 add $v0, $s0, $zero lw $s0, 0($sp) lw $t0, 4($sp) lw $t1, 8($sp) add $sp, $sp, 12 jr $ra
37 Convenção do MIPS $t0..9 são registradores temporários que não precisam ser preservados $s0..7 são de salvamento que precisam ser preservados
38 Procedimentos Recursivos Exemplo do fatorial
39 Mais Registradores $fp (frame pointer) $gp (global pointer)
40 Descrição Completa dos Registradores Nome No. Uso Preservado $zero 0 Cte Não $v0-$v1 2-3 Resultado Não $a Argumentos Sim $t Temporários Não $s Salvos Sim $t Temporários Não $gp 28 Global Sim $sp 29 Pilha Sim $fp 30 Frame Sim $ra 31 End. Retorno Sim
41 Caracteres / Strings Cada caracter ocupa 1 byte (8 bits) Como o MIPS trabalha com transferências de 4 bytes, precisamos de operações específicas lb e sb são operações que lêem e escrevem 1 byte lb $t0, 0($sp) # lê 1 byte (8 bits + à direita) sb $t0, 0($gp) # escreve 1 byte (8 bits + à direita)
42 Strings em C Terminam com o caracter \0 (caracter 0 na tabela ASCII) Ex.: cal é definido por: 67, 97, 108, 0 void strcpy (char x[], char y[]) { int i = 0; while ((x[i] = y[i])!= 0) i++ } onde x,y em $a0,$a1 e i em $s0 strcpy: subi $sp, $sp, 4 sw $s0, 0($sp) add $s0, $zero, $zero L1: add $t1, $a1, $s0 # y[i] lb $t2, 0($t1) add $t3, $a0, $s0 # x[i] sb $t2, 0($t3) addi $s0, $s0, 1 # i++ bne $t2, $zero, L1 lw $s0, 0($sp) addi $sp, $sp, 4 jr $ra
43 Estilos de Endereçamento Em Registrador Operando é um registrador Base ou Deslocamento Operando em memória, cujo endereço é a soma de um registrador com constante na instrução Imediato Operando é uma constante dentro da instrução Relativo ao PC Soma do PC a uma constante na instrução Pseudodireto Endereço de desvio são os 26 bits da instrução concatenados com os bits mais altos do PC
44 Tradução dos Labels while (save[i] == k) i = i + j; save em $s // onde i, j, k em $s3..5 e Loop: add $t1, $s3, $s3 add $t1, $t1, $t1 add $t1, $t1, $s6 lw $t0, 0($t1) bne $t0, $s5, Exit add $s3, $s3, $s4 j Loop Exit:
45 Tradução de um Programa Programa C Compilador Programa em Assembly Montador Módulo em Linguagem de Máquina + Bibliotecas Link-Editor Executável em Linguagem de Máquina Loader Memória
46 Tradução de um Programa Um programa em Linguagem de Montagem (Assembly) é composto de instruções e pseudoinstruções A instrução move no MIPS é um exemplo de pseudo-instrução, pois é traduzida numa instrução equivalente: move $t0, $t1 add $t0, $zero, $t1 Outro exemplo de pseudo-instrução é blt (branch on less than) que é traduzida para slt/bne
47 Arquivo Objeto Típico T em Sistemas Unix Cabeçalho do Arquivo Objeto: tamanho e posição das demais partes do arquivo Segmento de Texto: código do programa em linguagem de máquina Segmento de Dados: dados necessários à execução do programa Informações sobre relocação: identificar as palavras que dependem de endereços absolutos Tabela de símbolos: labels não definidos, como por exemplo, as referências externas Informações para análise de erro (auxílio para o depurador)
48 Ligador / Link-Editor O papel do ligador é unir as diferentes partes de um programa de forma a se ter um único arquivo executável
49 Carregador / Loader Etapas de um carregador: Leitura do cabeçalho para identificar tamanhos Alocação de espaço para armazenamento do programa Cópia para a memória Cópia de parâmetros para a pilha Inicialização dos registradores
50 Vetores x Ponteiros
51 Outras Arquiteturas Baseadas em Acumulador A = B + C é traduzido para: load AddressB add AddressC store AddressA Arquiteturas em Pilha A = B + C é traduzido para: push AddressC push AddressB add pop AddressA
52 Outras Arquiteturas Registradores de Propósito Geral Nome define seu significado Podem ser do tipo: registrador memória (permitem operando na memória; por ex., acumulador) load/store ou reg/reg (só operandos em registradores; por ex., MIPS) mem/mem (por ex., add EndA, EndB, EndC)
53 IA-32 80x86 Ao contrário do MIPS, esta plataforma foi desenvolvida ao longo de anos (quase 20) por muitos projetistas Esse longo período torna ainda mais difícil a evolução de uma arquitetura, pois é preciso manter uma compatibilidade com versões anteriores (softwares específicos) Análogo a este problema temos o IE e os websites voltados especificamente para o seu funcionamento
54 IA-32 80x86 Tipos de Instruções Instruções de movimentos de dados Instruções aritméticas e lógicas; operações de teste e sobre binários e decimais Instruções para controle do fluxo de execução Instruções para manipulação de strings (movimento e comparação, herança do 8080)
55 IA-32 80x86 Codificação das Instruções Complexa, com muitos formatos diferentes Tamanho varia de 1 a 17 bytes (possibilidade de + de 1 acesso à memória) Usualmente 1 bit indica o tamanho dos operandos (8 ou 32) e a sequência inicial de bits (opcode) indica o formato da instrução
56 IA-32 80x86 Falácias e Armadilhas Instruções mais poderosas significam melhor desempenho O IA-32 usa prefixos, os quais podem modificar o comportamento da instrução seguinte (por ex., repetir sua execução até um contador chegar a 0) Realizar a replicação simples desta instrução diminuía significativamente o tempo de execução destas instruções
57 IA-32 80x86 Falácias e Armadilhas Programar diretamente em linguagem de montagem para obter melhor desempenho Atualmente os compiladores geram código bastante otimizado Incoerência atual em C: uso de variável register pode tornar a execução mais lenta Amarração com a plataforma destino
58 Aritmética tica Computacional Utilização de complemento a 2 Qual é o maior número negativo em 32 bits? Lembre que:
59 Aritmética tica Computacional Em C, temos: int e unsigned int No MIPS, temos: lb e lbu, slt e sltu, slti e sltiu Por exemplo, suponha: $s0 = $s1 = Quanto vale $t0 em: slt $t0, $s0, $s1 sltu $t0, $s0, $s1 1 e 0, respectivamente
60 Regras de Transformação de Valores Regra para a Negação Inversão dos bits e adição de 1, descartando o carry do overflow As instruções add, addi, sub,... sinalizam a ocorrência de overflow As instruções addu, addiu, subu,... não sinalizam Regra para extensão de sinal Como converter o valor -2 em 16 bits para 32 bits? Adição de bits de sinal à esquerda (16 bits)
Arquitetura 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 maisArquitetura de Computadores. Linguagem de Máquina
Arquitetura de Computadores Linguagem de Máquina Ivan Saraiva Silva Formato de Instrução MAC O MIC possui dois formatos de instrução: 4 bits 12 bits Formato 1 CODOP ENDEREÇO 8 bits 8 bits Formato 2 CODOP
Leia maisComputadores de Programação (MAB353)
Computadores de Programação (MAB353) Aula 6: 27 de abril de 2010 1 Recaptulando operações já estudadas Operações lógicas 2 3 Exercícios Referências bibliográficas Recaptulando operações já estudadas Operações
Leia maisComputadores de Programação (MAB353)
Computadores de Programação (MAB353) Aula 8: 04 de maio de 2010 1 Formatos de instruções MIPS 2 Endereçamento de operandos imediatos de 32 bits Endereçamento em desvios Modos de endereçamento do MIPS 3
Leia maisConjunto de Instruções. Conjunto de Instruções
Conjunto de Instruções It is easy to see by formal-logical methods that there exist certain [instruction sets] that are in abstract adequate to control and cause the execution of any sequence of operations...
Leia maisMODOS DE ENDEREÇAMENTO
UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO ERINALDO SANCHES NASCIMENTO MODOS DE ENDEREÇAMENTO MARINGÁ 2014 SUMÁRIO 6 MODOS DE ENDEREÇAMENTO...2 6.1 ENDEREÇAMENTO
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 maisArquitetura de Computadores. Assembly Miscelâneas. Mário O. de Menezes. http://www.tf.ipen.br/~mario
Arquitetura de Computadores Assembly Miscelâneas Mário O. de Menezes http://www.tf.ipen.br/~mario AC Mário O. de Menezes 1 Lembrando Instruções Lógicas e Shift operam em bits individuais, diferente de
Leia maisAula 14: Instruções e Seus Tipos
Aula 14: Instruções e Seus Tipos Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Instruções e Seus Tipos FAC 1 / 35 Conceitos Básicos Diego Passos
Leia maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Caminho de Dados Slide 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 maisConjunto de Instruções
Conjunto de Instruções Para comandar o hardware do computador, é necessário que falemos sua língua: As palavras da linguagem de máquina são chamadas de instruções; O vocabulário forma o conjunto de instruções,
Leia maisConjunto de. Instrução MIPS. Parte II. Instruções MIPS. Instruções MIPS. Instruções MIPS :: Instruções lógicas. :: Instruções lógicas
Faculdade de Ciências Aplicadas e Sociais de Petrolina FACAPE Conjunto de Pae II Transferência de Dados Lógicas Controle Supoe a procedimentos Prof. Sérgio Adaptado dos slides de Sistemas Processadores
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 maisComponentes do Computador e. aula 3. Profa. Débora Matos
Componentes do Computador e modelo de Von Neumann aula 3 Profa. Débora Matos O que difere nos componentes que constituem um computador? Princípios básicos Cada computador tem um conjunto de operações e
Leia maisAnotações da 2a Edição
Anotações da 2a Edição OBS: Essas anotações são adaptações do material suplementar (apresentações PPT) ao Livro do Hennessy e Patterson. Supõe-se que os estudantes tenham noções de lógica digital e linguagem
Leia maisIntrodução à Arquitetura de Computadores
1 Introdução à Arquitetura de Computadores Hardware e software Organização de um computador: Processador: registradores, ALU, unidade de controle Memórias Dispositivos de E/S Barramentos Linguagens de
Leia maisCAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM
CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas
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 maisORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 04: ASPECTO BÁSICO DO PROJETO DE UMA CPU SIMPLES E LINGUAGEM DE MONTAGEM Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia
Leia maisMIPS ISA (Instruction Set Architecture)
MIPS ISA (Instruction Set Architecture) MIcroprocessor without Interlocking Pipeline Stages MIPS Processador RISC de 32 bits Referência dos Processadores RISC Mais de 100 Milhões de processadores vendidos
Leia maisArquitetura de Sistemas Digitais (FTL066) Instruções: Linguagem do Computador Segunda Lista de Exercícios
Arquitetura de Sistemas Digitais (FTL066) Instruções: Linguagem do Computador Segunda Lista de Exercícios 1) Explore conversões de números a partir de números binárias com sinal e sem sinal para decimal:
Leia maisSistemas de Computação. Instruções de Linguagem de Máquina
Instruções de Linguagem de Máquina Linguagem de montagem do processador MIPS Operações aritméticas Instrução Exemplo Significado soma add a, b, c a = b + c subtração sub a, b, c a = b - c Compilação de
Leia maisSSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 2ª e 3ª Aulas Arquitetura MIPS: ISA, Formato das instruções e Modos de endereçamento Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Arquitetura MIPS MIPS: Microprocessor
Leia maisImplementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I
UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA CURSO DE CIÊNCIAS DA COMPUTAÇÃO Rafael Vargas Implementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I
Leia maisGeração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO
Geração de código Ivan Ricarte 2008 Sumário Geração de código intermediário Código de três endereços Notação pós-fixa Otimização de código Heurísticas de otimização Geração de código em linguagem simbólica
Leia maisConjunto de Instruções e Arquitectura p.1
Conjunto de Instruções e Arquitectura Luís Nogueira luis@dei.isep.ipp.pt Departamento Engenharia Informática Instituto Superior de Engenharia do Porto Conjunto de Instruções e Arquitectura p.1 Organização
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 mais3. INSTRUÇÕES. Instrução é uma palavra da linguagem de máquina. Instruction Set do MIPS ( usado pela NEC, Nintendo, Silicon Graphics e Sony.
3. INSTRUÇÕES Instrução é uma palavra da linguagem de máquina Instruction Set do MIPS ( usado pela NEC, Nintendo, Silicon Graphics e Sony. Operações O MIPS trabalha com 3 operandos. add a,b,c # a b + c
Leia maisNOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann
Universidade Federal de Santa Maria NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann O modelo (ou arquitetura) de von
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 maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Linguagem de Montagem Slide 1 Operações Lógicas Embora os primeiros computadores se concentrassem em words completas, logo ficou claro que era útil atuar sobre
Leia maisALP Algoritmos e Programação. . Linguagens para Computadores
ALP Algoritmos e Programação Iniciação aos computadores. Linguagens para Computadores. Compiladores, Interpretadores. Ambientes de Programação 1 Linguagens para Computadores. Linguagem binária: Dispositivos
Leia mais2 Formalidades referentes ao trabalho
Bacharelado em Ciência da Computação DINF / UFPR Projetos Digitais e Microprocessadores 1 o Semestre de 2006 MICO-v12.r0 07/03/2006 Profs. Luis Allan Künzle e Armando Luiz Nicolini Delgado Atenção: Este
Leia maisOrganização de Computadores 1
Organização de Computadores 1 5 CONJUNTO DE INSTRUÇÕES Prof. Luiz Gustavo A. Martins Introdução O que é um conjunto de instruções? Coleção completa das instruções que a CPU é capaz de executar (entende).
Leia maisTais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.
Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:
Leia maisInfraestrutura de Hardware. Instruindo um Computador
Infraestrutura de Hardware Instruindo um Computador Componentes de um Computador Unid. Controle Controle Memória Registradores PC MAR IR AC Programa + Dados Instrução Endereço Operando ALU Temp Datapath
Leia maisEdeyson Andrade Gomes
Sistemas Operacionais Conceitos de Arquitetura Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Máquinas de Níveis Revisão de Conceitos de Arquitetura 2 Máquina de Níveis Máquina de níveis Computador
Leia maisARQUITETURA DE COMPUTADORES - 1866
7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um
Leia maisArquitetura de Computadores. Tipos de Instruções
Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada
Leia maisOrganização e Arquitetura de computadores
Organização e Arquitetura de computadores Instruções: a linguagem de máquina Prof. Dr. Luciano José Senger Introdução Operações no hardware do computador Operandos do hardware do computador Representando
Leia maisOrganização e Projetos de Computadores. Capítulo 2. Organização e Projetos de Computadores. Instruções
Capítulo 2 Hennessy Patterson 1 Instruções Linguagem da máquina Vamos trabalhar com a arquitetura do conjunto de instruções MIPS (Micrrocessor without interlocked pipeline stages Micrrocessador sem estágios
Leia maisLinguagem de Montagem 2. Operações e Operandos
Linguagem de Montagem 2 Operações e Operandos Revisão Para executar uma tarefa qualquer, um computador precisa receber instruções precisas sobre o que fazer Esse conjunto de instruções chamamos de algoritmo
Leia maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Caminho de Dados Slide 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 maisIntrodução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br
Introdução INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br introdução Tópicos conceitos básicos o que é um programa um programa na memória decifrando um código referência Capítulo
Leia maisARQUITETURA DE COMPUTADORES
01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100
Leia maisProva P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans lui+ori syscall 1. .text 2. main: $s0, string 3.
Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans Aluno: 30/novembro/2012 1. (4 pontos) Assumindo uma frequência de relógio de 500 MHz para a organização MIPS multiciclo
Leia maisSistemas Processadores e Periféricos Aula 5 - Revisão
Sistemas Processadores e Periféricos Aula 5 - 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 maisLÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES
LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o funcionamento do computador Apresentar a função da memória e dos dispositivos
Leia maisLinguagem de Montagem Funcionamento de CPU e Assembly Rudimentar
Componentes de um Computador (5) Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) 2007/01 - INF02597 Com slides de Roberta Lima Gomes
Leia maisArquiteturas RISC. (Reduced Instructions Set Computers)
Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina
Leia maisProcessadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:
Processadores BIP A família de processadores BIP foi desenvolvida por pesquisadores do Laboratório de Sistemas Embarcados e Distribuídos (LSED) da Universidade do Vale do Itajaí UNIVALI com o objetivo
Leia maisGeração de código intermediário. Novembro 2006
Geração de código intermediário Novembro 2006 Introdução Vamos agora explorar as questões envolvidas na transformação do código fonte em uma possível representação intermediária Como vimos, nas ações semânticas
Leia maisComputadores de Programação (MAB353)
Computadores de Programação (MAB353) Aula 7: 29 de abril de 2010 1 2 Subrotinas Um procedimento ou função é uma subrotina armazenada que executa uma tarefa específica baseada nos parâmetros de entrada
Leia maisULA Sinais de Controle enviados pela UC
Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento
Leia mais3. O NIVEL DA LINGUAGEM DE MONTAGEM
3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também
Leia maisConjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)
Arquitectura de um computador Caracterizada por: Conjunto de instruções do processador (ISA Estrutura interna do processador (que registadores existem, etc Modelo de memória (dimensão endereçável, alcance
Leia maisPROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
- Aula 5 - O NÍVEL DA LINGUAGEM DE MONTAGEM 1. INTRODUÇÃO É relativamente fácil compreender os fundamentos da programação de computadores, sob o ponto de vista da inteligibilidade dos comandos de alto
Leia maisOrganização de Computadores
Organização do Processador - Parte A Capítulo 5 Patterson & Hennessy Prof. Fábio M. Costa Instituto de Informática Universidade Federal de Goiás Conteúdo Caminho de dados Caminho de controle Implementação
Leia maisCapítulo 3 Aula 8. Representação Numérica. Aritmética Computacional Representação Numérica
Universidade de Brasília Instituto de Ciências Exatas Departamento de Ciências da Computação Capítulo 3 Aula 8 Aritmética Computacional Representação Numérica 1 Representação Numérica Base binária (base
Leia maisEstrutura de Dados. Ricardo José Cabeça de Souza www.ricardojcsouza.com.br ricardo.souza@ifpa.edu.br. Parte 1
Estrutura de Dados Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Parte 1 MODELO DE UM COMPUTADOR CPU Central Processing Unit MODELO DE UM COMPUTADOR O canal de comunicação (conhecido como BUS)
Leia maisMontadores, Link-editores e o Simulador SPIM
A Montadores, Link-editores e o Simulador SPIM James R. Larus Microsoft Research Microsoft O receio do insulto sério não pode justificar sozinho a supressão da livre expressão. Louis Brandeis Whitney v.
Leia maisO processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.
O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. Unidade aritmética e lógica - Executa operações aritméticas (cálculos);
Leia maisULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h
ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Sumário Unidade Lógica Aritmetrica Registradores Unidade Lógica Operações da ULA Unidade de Ponto Flutuante Representação
Leia maisInfra-estrutura de Hardware
CPU: Estrutura e Funcionalidade Roteiro da Aula Ciclo de Instrução Projeto de uma CPU simples: conceitos Componentes básicos Leitura da instrução Operação entre registradores Acesso à memória Implementação
Leia maisConjunto de Instruções. Prof. Leonardo Barreto Campos 1
Conjunto de Instruções Prof. Leonardo Barreto Campos 1 Sumário Introdução; CISC; RISC; MIPS; Representação de Instruções; SPIM; Prof. Leonardo Barreto Campos 2/58 Sumário Operações Lógicas; Instruções
Leia maisArquitectura de Computadores
Arquitectura de Computadores Prof. Doutora Ana Isabel Leiria Ano Lectivo 2004/05 Prof. Doutora Margarida Madeira e Moura Eng. António Rosado Ano lectivo 2005/06 Pág. 1 Guias das aulas práticas 1. INTRODUÇÃO
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 - 3: Linguagem de Máquina - MIPS
Cap - 3: Linguagem de Máquina - MIPS Arquitetura de Sistemas Computacionais Prof Ricardo Pannain 1 Arquitetura MIPS MIPS Microprocessor without Interlocking Pipes Stages (Microprocessador sem Intertravamento
Leia mais3. Arquitetura Básica do Computador
3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,
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 maisO COMPUTADOR. Introdução à Computação
O COMPUTADOR Introdução à Computação Sumário O Hardware O Software Linguagens de Programação Histórico da Linguagem C Componentes Básicos do Computador O HARDWARE: O equipamento propriamente dito. Inclui:
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 maisSistemas Operacionais
Sistemas Operacionais Aula 3 Software Prof.: Edilberto M. Silva http://www.edilms.eti.br SO - Prof. Edilberto Silva Barramento Sistemas Operacionais Interliga os dispositivos de E/S (I/O), memória principal
Leia maisRISC simples. Aula 7. 31 de Março de 2005 1
RISC simples Aula 7 31 de Março de 2005 1 Estrutura desta aula Principais características dos processadores RISC Estrutura de um processador (MIPS) sem pipeline, de ciclo único O datapath ou circuito de
Leia maisUnidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01
Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal
Leia maisDescrição e análise da implementação em Assembly MIPS da função itoa
Descrição e análise da implementação em Assembly MIPS da função itoa Alana Rocha 1, Guilherme Alves 2, Guilherme Nunes 3 e Luiz Guilherme 4 Objetivo e visão geral do documento Este documento tem o objetivo
Leia maisOrganização de Computadores Hardware
Organização de Computadores Hardware Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br www.univasf.edu.br/~marcus.ramos Computador Ferramenta
Leia maisArquitetura de Computadores I Prof. Ricardo Santos (Cap 2)
Arquitetura de Computadores I Prof. Ricardo Santos ricr.santos@gmail.com (Cap 2) 1 Fluxo de controle Vimos até agora: beq, bne Uma nova instrução: if $s1 < $s2 then $t0 = 1 slt $t0, $s1, $s2 else $t0 =
Leia maisMáquina Multinível. Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa.
Máquina Multinível Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa. Uma instrução pode ser definida como um comando para o processador.
Leia maisRepresentação de Dados (inteiros não negativos)
Representação de Dados (inteiros não negativos) 1 Memória Armazena instruções e dados durante a execução de um programa A memória principal pode ser vista como um array de bytes, cada um com seu endereço
Leia maisConjunto de Instruções MIPS
Conjunto de Instruções MIPS Ch3-1 RISC X CISC RISC (Reduced Instruction Set Computer) CISC (Complex Instruction Set Computer) 1. Instruções simples 2. Referencias a memória só com LOAD/STORE 3. Uso intensivo
Leia maisProgramação Básica em Arduino Aula 2
Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Variáveis são lugares (posições) na memória principal que servem para armazenar dados. As variáveis são acessadas
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 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 maisExemplo de Subtração Binária
Exemplo de Subtração Binária Exercícios Converta para binário e efetue as seguintes operações: a) 37 10 30 10 b) 83 10 82 10 c) 63 8 34 8 d) 77 8 11 8 e) BB 16 AA 16 f) C43 16 195 16 3.5.3 Divisão binária:
Leia maisIntrodução à Programação
Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5
Leia maisIntrodução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis
Ciência da Computação Arq. e Org. de Computadores Máquinas Multiníveis Prof. Sergio Ribeiro Computador digital máquina que resolve problemas executando uma série de instruções. Programa conjunto de instruções
Leia maisIntrodução às Linguagens de Programação
Introdução às Linguagens de Programação Histórico de Linguagens de Programação O computador não faz nada sozinho Precisamos informar, de forma clara, como ele deve executar as tarefas Ou seja, o computador
Leia maisProgramação de Computadores III
Programação de Computadores III Introdução a Linguagens de Programação Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157
Leia maisConjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas
Conjunto de instruções O Conjunto de Instruções ISA Instruction Set Architecture Alguns conceitos... Linguagem máquina Combinação de 0 s e 1 s organizados segundo palavras que são as instruções que o processador
Leia maisAmbiente de desenvolvimento de Programação Assembly MCU 8051 IDE
SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Prof. Evandro L. L. Rodrigues Ambiente de desenvolvimento de Programação Assembly MCU 8051 IDE http://mcu8051ide.sourceforge.net/ Tela inicial Criar novo projeto:
Leia maisLP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br
LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de
Leia maisOrganização Básica do Computador
Organização Básica do Computador Modelo de Von Neumann MEMÓRIA ENTRADA ARITMÉTICA LÓGICA SAÍDA CONTROLE Modelo de Von Neumann Introduziu o conceito do computador controlado por programa armazenado. Todo
Leia maisRISC - Reduced Instruction Set Computer
Arquietura MAC 412- Organizãção de Computadores - Siang W. Song Baseado no livro de Tanenbaum - Structured Computer Organization Arquietura Índice 1 Avaliação da arquitetura CISC (microprogramada) Críticas
Leia maisANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software
ANHANGUERA EDUCACIONAL Capítulo 2 Conceitos de Hardware e Software Hardware Um sistema computacional é um conjunto de de circuitos eletronicos. Unidade funcionais: processador, memória principal, dispositivo
Leia maisArquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)
Arquitetura de Computadores I Prof. Ricardo Santos ricr.santos@gmail.com (Cap 2) Fluxo de Controle Vimos até agora: beq, bne Uma nova instrução: slt $t0, $s1, $s2 if $s1 < $s2 then $t0 = 1 else $t0 = 0
Leia maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Pipeline Slide 1 Pipeline Pipeline Hazards: Hazards Estruturais Hazards de Dados Hazards de Controle Organização e Arquitetura de Computadores I Caminho de Dados
Leia maisPrimeiro nível desenvolvido, historicamente Atualmente existente entre o nível da microarquitetura e do sistema operacional
Capítulo 5 Nível ISA Primeiro nível desenvolvido, historicamente Atualmente existente entre o nível da microarquitetura e do sistema operacional Compatibilidade com os níveis ISA anteriores!! => Pressão
Leia maisTE11008 Arquitetura e Organização de Computadores Nível da Linguagem de Montagem p. 1
TE11008 Arquitetura e Organização de Computadores Nível da Linguagem de Montagem Ronaldo de Freitas Zampolo LaPS/ENGCOMP/ITEC/UFPA TE11008 Arquitetura e Organização de Computadores Nível da Linguagem de
Leia mais