Arquitetura de Computadores MIPS
|
|
|
- Cármen Barroso Carlos
- 8 Há anos
- Visualizações:
Transcrição
1 Arquitetura de Computadores MIPS
2 Arquitetura de von Neumann CPU Memory Input / Output Control bus Address bus Data bus System BUS
3 Arquitetura de von Neumann Executa as instruções do programa Working copy do programa CPU Memory Input / Output Control bus Address bus Data bus System BUS
4 Arquitetura de von Neumann Executa as instruções do programa Working copy do programa Modifica dados do programa; lê/escrever input/output CPU Memory Input / Output Control bus Address bus Data bus System BUS
5 Arquitetura de von Neumann Executa as instruções do programa Working copy do programa Modifica dados do programa; lê/escrever input/output CPU Memory Input / Output Na realidade executa sobre uma cópia do programa Control bus Address bus Data bus System BUS
6 CPU Registers System Clock Output Control Unit Main Memory ALU Input
7 CPU Mantêm uma cópia dos dados programa Registers System Clock Output Controla a execução do programa Control Unit Main Memory Efetua cálculos sobre os dados dos registos ALU Input
8 ISA Instruction Set Architecture Interface entre o hardware e o software Linguagem máquina Define as regras para codificar e interpretar instruções máquina ISA define Instruções Regras de endereçamento Tipos de dados Registos Arquitetura da memória Interrupt & exception handling External I/O
9 MIPS Processador de 32 bits 32 registos de 32 bits Versões mais recentes de 64 bits Arquitetura RISC Reduced instruction set computer Cache 32 kb dados e 63 kb de instruções
10 MIPS Registos Nome Número U)lização $zero $0 Constante 0 $at $1 Reservado ao assembler $v0.. $v1 $2.. $3 Resultado de uma função/procedimento $a0.. $a3 $4.. $7 Argumentos 1, 2, 3 e 4 $t0.. $t7 $8.. $15 Temporários (não preservados entre chamadas) $s0.. $s7 $16.. $23 Persistentes (preservados entre chamadas) $t8.. $t9 $24.. $25 Temporários (não preservados entre chamadas) $k0.. $k1 $26.. $27 Reservados ao kernel do S.O. $gp $28 Ponteiro para a área global (dados estáticos) $sp $29 Ponteiro da stack $fp $30 Ponteiro da frame $ra $31 Enderec o de retorno (usado pela chamada de uma função)
11 MIPS Tipos de dados.word 4 bytes (32 bits).half (half-word) 2 bytes (16 bits).byte 1 byte (8 bits).char 1 byte (8 bits)
12 MIPS Endereçamento Endereços de 32 bits (4 bytes) Little endian Bit menos significativo está no endereço do byte menor Endereçamento ao byte Tamanho máximo de um programa: (2 32 1) bytes 0x x c 0x x x F E D C B A Porquê? 32 bits (4 bytes) 1 byte
13 MIPS Regras de endereçamento word tem que ocupar uma linha de memória Tem que ter endereço múltiplo de 4 half-word ocupa os 2 primeiros/últimos bytes Tem que ter endereço par byte ocupa o 1º byte livre 0x x c 0x x x F E D C B A byte endereço 0x half endereço 0x word endereço 0x
14 MIPS Memória 0x7FFFFFFF Stack 32 bits (4 bytes) 0x x x Heap (dynamic data).data (static data).text Reserved
15 Program structure Labels # this is a comment.data A:.word 10 B:.byte 20 C:.half 30.text main: lw $s0, A lh $s1, B add $s2, $s0, $s1 Definição do segmento de dados (dados estáticos do programa) Definição do segmento de texto (instruções do programa)
16 Program structure # this is a comment.data A:.word 10 B:.byte 20 C:.half 30.text main: lw $s0, A lh $s1, B add $s2, $s0, $s1 0x7FFFFFFF 0x x x Stack Heap (dynamic data).data C:.half 30 B:.byte 20 A:.word 10.text add $s2, $s0, $s1 lh $s1, B lw $s0, A Reserved
17 Instruções Load (l?) / Store (s?) lw registo_destino, endereço_memória lh registo_destino, endereço_memória lb registo_destino, endereço_memória sw registo_origem, endereço_memória sh registo_origem, endereço_memória sb registo_origem, endereço_memória
18 Instruções Aritmética add $s0, $s1, $s2 ## $s0 = $s1 + $s2 sub $s0, $s1, $s2 ## $s0 = $s1 - $s2 Controlo (branches e jumps) bgt $s0, $s1, target ## branch to target if $s0 > $s1 blt $s0, $s1, target ## branch to target if $s0 < $s1 beq $s0, $s1, target ## branch to target if $s0 = $s1 bne $s0, $s1, target ## branch to target if $s0!= $s1
19 Program structure Tanto os dados como as instruções (programas) são mantidas em memória 0x7FFFFFFF Stack Heap (dynamic data) Dados podem ter tamanhos diferentes (byte; half; word) Todas as instruções são codificadas em 4 bytes (1 word) 0x x x data C:.half 30 B:.byte 20 A:.word 10.text add $s2, $s0, $s1 lh $s1, B lw $s0, A Reserved
20 Codificação de instruções Trabalho produzido pelo assembler Uma das fases da compilação Compilar um programa, transformar programa A -> B Pré-processamento Inclui substituição de macros, remoção de comentários, Processamento (ou compilação) Tradução do código fonte em código assembly Para a arquitectura de CPU correspondente (x86, x86_64, mips, arm64, powerpc, etc) Assembler Tradução do código assembly em código máquina Linker Rearranjo do código de forma a incluir código não fornecido (ex: funções externas)
21 MIPS Codificação de instruções Todas as instruções têm o mesmo tamanho 1 word 4 bytes 32 bits ISA define 3 formatos de instruções R-Type (register) I-Type (immediate) J-Type (jump) Todos os formato são consistente opcode ocupa sempre os mesmos bits
22 MIPS Codificação de instruções R-type instructions (register instructions) opcode rs rt rd shamt func 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits opcode código da operação rd destination register rs source register rt source/destination register (transient) shamt used for shift operations func used for special functions
23 MIPS Codificação de instruções Porquê 5 bits Porquê 5 bits R-type instructions (register instructions) opcode rs rt rd shamt func 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits opcode código da operação rd destination Porquê register 5 bits rs source register rt source/destination register (transient) shamt used for shift operations func used for special functions
24 MIPS Codificação de instruções R-type instructions (register instructions) opcode rs rt rd shamt func 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Formato XXX rd, rt, rs
25 MIPS Codificação de instruções I-type instructions (immediate instructions) opcode rs rt immed 6 bits 5 bits 5 bits 16 bits rs source register rt source/destination register (transient) immed 16 bit immediate value Formato XXXi rt, rs, immed
26 MIPS Codificação de instruções J-type instructions (Jump intructions) opcode 6 bits 26 bits addr addr address Formato j? addr
27 MIPS Codificação de instruções opcode opcode permite diferenciar as instruções Ver anexo A do livro (ou wiki)
28 MIPS Codificação de instruções opcode permite diferenciar as instruções Ver anexo A do livro (ou wiki) Mnemonic Meaning Type Opcode Funct add Add R 0x00 0x20 addi Add Immediate I 0x08 NA addiu Add Unsigned Immediate I 0x09 NA addu Add Unsigned R 0x00 0x21 and Bitwise AND R 0x00 0x24 andi Bitwise AND Immediate I 0x0C NA beq Branch if Equal I 0x04 NA bne Branch if Not Equal I 0x05 NA div Divide R 0x00 0x1A divu Unsigned Divide R 0x00 0x1B j Jump to Address J 0x02 NA
29 MIPS Codificação de instruções Exemplo: add $s0, $s1, $s2 opcode -> 0x00 > funct -> 0x20 > $s0 > $16 > $s1 > $17 > $s2 > $18 > ou 0x Mnemonic Meaning Type Opcode Funct add Add R 0x00 0x20 addi Add Immediate I 0x08 NA addiu Add Unsigned Immediate I 0x09 NA Registos Nome Número $zero $0 $at $1 $v0.. $v1 $2.. $3 $a0.. $a3 $4.. $7 $t0.. $t7 $8.. $15 $s0.. $s7 $16.. $23 $t8.. $t9 $24.. $25 $k0.. $k1 $26.. $27 $gp $28 $sp $29 $fp $30 $ra $31
30 Machine, Assembly, and C Code
31 Machine, Assembly, and C Code beq $4, $5, 28 slt $2, $5, $4 bne $2, $0, 12 subu $5, $5, $4 bgez $0-16 subu $4, $4, $5 bgez $0-24 addu $2, $0, $4 jr $31
32 Machine, Assembly, and C Code gcd: beq $a0, $a1,.l slt $v0, $a1, $a bne $v0, $zero,.l subu $a1, $a1, $a b gcd L1: subu $a0, $a0, $a1 b gcd.l2: move $v0, $a0 j $ra beq $4, $5, 28 slt $2, $5, $4 bne $2, $0, 12 subu $5, $5, $4 bgez $0-16 subu $4, $4, $5 bgez $0-24 addu $2, $0, $4 jr $31
33 Machine, Assembly, and C Code gcd: beq $a0, $a1,.l slt $v0, $a1, $a bne $v0, $zero,.l subu $a1, $a1, $a b gcd L1: subu $a0, $a0, $a1 b gcd }.L2: move $v0, $a0 j $ra beq $4, $5, 28 slt $2, $5, $4 bne $2, $0, 12 int gcd subu (int a, $5, int $5, b) $4 { while bgez (a!= $0 b) -16 { if subu (a > b) $4, $4, $5 bgez a = a $0 - b; -24 else addu $2, $0, $4 jr b $31 = b - a; } return a;
34 MIPS Intruções Load l* $reg, address lb > load byte lh > load half-word lw > load word la > load address li > load immediate
35 MIPS Intruções Load (exemplo).data A:.word 10 B:.byte 30 C:.half 40.text main: lw $s0, A # s0 = valor de A lb $s1, B # s1 = valor de B lh $s2, C # s2 = valor de c li $s3, 25 # s3 = 25 la $s4, A # s4 = endereço de A
36 MIPS Intruções Store s* $reg, address sb > store byte sh > store half-word sw > store word
37 MIPS Intruções Store (exemplo).data A:.word 0 B:.byte 0 C:.half 0.text main: li $s0, 15 sw $s0, A sb $s0, B sh $s0, C # A = valor de s0 # B = valor de s0 # C = valor de s0
38 MIPS Intruções Aritmética add $reg, $reg, $reg -> add $s0, $s1, $s2 # s0=s1+s2 addi $reg, $reg, value -> addi $s0, $s1, 20 # s0=s1+20 sub $reg, $reg, $reg -> sub $s0, $s1, $s2 # s0=s1-s2 mult $reg, $reg -> mult $s0, $s1 # (hi,lo) = s0*s1 div $reg, $reg -> div $s0, $s1 # hi s0%s1, lo = s0/s1
39 MIPS Intruções Controlo b** $reg1, $reg2, address bgt $reg1, $reg2, addr # jump to addr if reg1 > reg2 bge $reg1, $reg2, addr # jump to addr if reg1 >= reg2 blt $reg1, $reg2, addr # jump to addr if reg1 < reg2 ble $reg1, $reg2, addr # jump to addr if reg1 <= reg2 beq $reg1, $reg2, addr # jump to addr if reg1 == reg2 bne $reg1, $reg2, addr # jump to addr if reg1!= reg2
40 MIPS Branches e Jumps Permitem definir estruturas de controlo e ciclos Exemplo: if (x < 0) x = 0 else y += x.data.text main: blt $s0, $zero, LT add $s1, $s1, $s0 j END LT: li $s0, 0 END:...
41 MIPS Branches e Jumps Permitem definir estruturas de controlo e ciclos Exemplo: while (x < 0) x += 1.data.text main: INIT: bge $s0, $zero, END addi $s0, $s0, 1 j INIT END:...
42 MIPS Arrays Array -> coleção de valores do mesmo tipo acedidos por indexação Mantidos em memória em posições contiguas Exemplos:.data A:.word 10, 20, 30, 40, 50 B:.word 5:10 C:.space 40.text main:
43 MIPS Arrays Exemplos:.data A:.word 10, 20, 30, 40, 50 B:.word 5:10 C:.space 40.text main:
44 MIPS Arrays e Ciclos Exemplo 1: int x = [10, 20, 30, 40, 50]; int i, sum = 0; for (i = 0; i < 5; i++) { sum += x[i]; }.data A:.word 10, 20, 30, 40, 50 B:.word 0.text main: la $s0, A li $s1, 0 li $s2, 0 init: bge $s1, 5, end add $t2, $s1, $s1 add $t2, $t2, $t2 add $t2, $s0, $t2 lw $s3, 0($t2) add $s2, $s2, $s3 addi $s1, $s1, 1 j init end: sw $s2, B
45 MIPS Arrays e Ciclos Exemplo 1: int x = [10, 20, 30, 40, 50]; int i, sum = 0; for (i = 0; i < 5; i++) { sum += x[i]; }.data A:.word 10, 20, 30, 40, 50 B:.word 0.text main: la $s0, A addi $s1, $s0, 20 li $s2, 0 init: bge $s0, $s1, end lw $s3, 0($s0) add $s2, $s2, $s3 addi $s0, $s0, 4 j init end: sw $s2, B
46 MIPS Arrays e Ciclos Exemplo 2: int x = [10, 20, 30, 40, 50]; int i, sum = 0; for (i = 0; i < 5; i++) { x[i] += 1; }.data A:.word 10, 20, 30, 40, 50 B:.word 0.text main: la $s0, A addi $s1, $s0, 20 li $s2, 0 init: bge $s0, $s1, end lw $s3, 0($s0) addi $s3, $s3, 1 sw $s3, 0($s0) addi $s0, $s0, 4 j init end: sw $s2, B
47 MIPS Syscalls Chamadas ao sistema permitem interagir com o sistema Ler do input Escrever p/ output Terminar o programa O contexto da execução do programa muda A execução do programa só continua após a execução da chamada
48 MIPS Syscalls São definidas pelo código da operação Service Code in $v0 Arguments Result print integer 1 $a0 = integer to print print float 2 $f12 = float to print print double 3 $f12 = double to print print string 4 $a0 = address of null-terminated string to print read integer 5 $v0 contains integer read read float 6 $f0 contains float read read double 7 $f0 contains double read read string 8 exit 10 $a0 = address of input buffer $a1 = maximum number of characters to read
49 MIPS Syscalls Exemplo: int x; scanf( %d, &x); x += 1; printf( new x value: %d, x);.data txt:.asciiz new x value:.text main: li $v0, 5 syscall move $s0, $v0 addi $s0, $s0, 1 li $v0, 4 la $a0, txt syscall li $v0, 1 move $a0, $s0 syscall
50 Funções
51 Funções Funções permitem criar abstrações, bem como reutilizar código A assinatura da função abstrai a sua utilização dos detalhes de implementação O mesmo código pode ser usado em diferentes zonas do programa (sempre que a função é chamada) Quando uma função é chamada Os seus argumentos são avaliados e passados a valores O fluxo de execução do programa passa para o corpo da função Quando o resultado é obtido, o fluxo de execução do programa retorna para o endereço após a chamada da função
52 Funções As funções têm o seu próprio espaço de memória Variáveis locais não são visíveis do exterior, e vice-versa Mesmo quando funções se chamam a elas próprias (recursividade) int max (int[] array, int n) { int i, max = array[0]; for (i = 1; i < n; i ++) { if (array[i] > max) max = array[i]; } return max; }
53 MIPS Funções No entanto há um nº limitado de registos do processador Como é que se garante que uma função não altera valores de registos utilizados fora da função?
54 MIPS Funções (stack) Stack Segmento de memória usado como pilha de dados (comportamento LIFO) Permite empilhar (push) e desempilhar (pop) dados Stack cresce no sentido dos endereços menores Tem como base o maior endereço do pograma Permite guardar valores dos registos, para que possam ser reutilizados, sem comprometer a execução do programa
55 MIPS Funções (stack) ISA do MIPS não oferece operações de push e pop Mas permite manipular o registo stack pointer ($sp) $sp mantêm o endereço atual do topo da stack O endereço do topo da pilha diminui ao fazer push e aumenta quando se faz pop
56 MIPS Funções (stack) 0x7FFFFFFF $sp Stack 0x7FFFFFFF $sp Push ($sp = $sp 12) Stack 0x7FFFFFFF $sp Pop ($sp = $sp + 12) Stack 0x x x
57 MIPS Funções (stack) Push -> permite empilhar dados na stack Guardar valores dos registos pré chamadas a funções push: addi $sp, $sp, -8 sw $s0, 0($sp) sw $s1, 4($sp) Pop -> permite desempilhar dados na stack Restaurar valores dos registos após chamadas a funções pop: lw $s0, 0($sp) lw $s1, 4($sp) addi $sp, $sp, 8
58 MIPS Funções (chamada) Caller deve passar os argumentos utilizando os registos $a0 $a3 Caller chama a função usando a instrução jal Realiza o salto e guarda em $ra o endereço de retorno (valor de $pc antes do salto) Callee calcula o resultado e guarda-o nos registos $v0 e $v1 Callee retorna a execução para o Caller usando a instrução jr
59 MIPS Funções (chamada) Caller é responsável por guardar o valor dos registos $t0..$t9 Convenção Callee é responsável por guardar o valor dos registos $s0..$s7 Convenção Caller deve guardar o valor do $ra e dos $a0..$a3 Caso ele próprio tenha que chamar outras funções
60 MIPS Funções (exemplo) int max (int[] array, int n) { int i, max = array[0]; for (i = 1; i < n; i ++) { if (array[i] > max) max = array[i]; } return max; } int main() { int max, x = [10, 20, 30, 40, 50]; max = max(x, 5); printf( max: %d, max); }.data X:.word 10, 50, 30, 40, 20 Y:.asciiz "max:.text main: la $a0, X li $a1, 5 jal max move $s0, $v0 li $v0, 4 la $a0, Y syscall move $a0, $s0 li $v0, 1 syscall li $v0, 10 syscall max: addi $sp, $sp, -12 sw $s0, 8($sp) sw $s1, 4($sp) sw $s2, 0($sp) lw $s0, ($a0) li $s1, 1 loop: addi $a0, $a0, 4 bge $s1, $a1, end lw $s2, ($a0) blt $s2, $s0, cont move $s0, $s2 cont: addi $s1, $s1, 1 j loop end: move $v0, $s0 lw $s0, 8($sp) lw $s1, 4($sp) lw $s2, 0($sp) addi $sp, $sp, 12 jr $ra
61 MIPS Funções (exemplo) int fact(int x) { if (x == 1) return 1; else return x * fact(x-1); } int main() { int x = fact(5); printf("%d", x); }.data.text main: li $a0, 5 jal fact move $a0, $v0 li $v0, 1 syscall li $v0, 10 syscall fact: add $sp, $sp, -8 sw $a0, 4($sp) sw $ra, 0($sp) bne $a0, 1, cont addi $v0, $zero, 1 add $sp, $sp, 8 jr $ra cont: sub $a0, $a0, 1 jal fact lw $a0, 4($sp) lw $ra, 0($sp) addi $sp, $sp, 8 mul $v0, $v0, $a0 jr $ra
SSC0611 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 [email protected] 1 Arquitetura MIPS MIPS: Microprocessor
PARTE 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
SSC0114 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 [email protected]
ORGANIZAÇÃ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 [email protected] Colegiado de Engenharia
ARQUITECTURA DE COMPUTADORES
ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA III Março 2014 Índice Instruction Set Revisões Procedimentos Stack Comunicar com pessoas ASCII Programar em MIPS estrutura, input e output Programar em MIPS
Registradores 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
Infraestrutura 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
3. 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
AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 05: Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação O QUE SÃO PROCEDIMENTOS? Procedimentos são um conjunto
Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10
Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10 Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação QUAL É A INTERFACE ENTRE
Organizaçã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
Sistemas Processadores e Periféricos Aula 3 - Revisão
Sistemas Processadores e Periféricos Aula 3 - 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
Sistemas 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
Conjunto 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
Prof. 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
Relembrando desempenho...
Parte 5 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. A parte final do material corresponde às aulas
Arquitetura de Computadores I Prof. Ricardo Santos (Cap 2)
Arquitetura de Computadores I Prof. Ricardo Santos [email protected] (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 =
Organizaçã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
Guia 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
MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS
Datapath do MIPS MIPS Implementação Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS Instruções de leitura (load lw) e de escrita (store sw) Instruções aritméticas e lógicas
Sistemas 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
DataPath II Tomando o controle!
DataPath II Tomando o controle! Datapath and Control Queremos implementar parte do MIPS lw, sw add, sub, and, or, slt beq e depois o j Instruction Word Formats Register format: add, sub, and, or, slt op-code
Faculdade de Computação
Faculdade de Computação Arquitetura e Organização de Computadores 2 1 a Laboratório de Programação MIPS entrega 03/05/2018 Prof. Cláudio C. Rodrigues Problemas: P1) Execute as conversões abaixo: a) Converta
Lista de Revisão para a Primeira Avaliação
Lista de Revisão para a Primeira Avaliação 1. Explique a diferença entre as instruções add e addi. Qual formato de instrução cada uma delas utiliza? 2. Quantos bits a instrução j reserva para o endereço
lw, sw add, sub, and, or, slt beq, j
Datapath and Control Queremos implementar o MIPS Instruções de referência à memória: lw, sw Instruções aritméticas e lógicas: add, sub, and, or, slt Controle de fluxo: beq, j Cinco passos de execução Busca
Disciplina: 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
Microcontroladores e Interfaces
Microcontroladores e Interfaces 3º Ano Eng. Electrónica Industrial Carlos A. Silva 2º Semestre de 2005/2006 http://www.dei.uminho.pt/lic/mint Aula A3 15 Mar 05 - M Datapath e a sua Unidade de Controlo
Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples
Infraestrutura de Hardware Implementação Monociclo de um Processador Simples Componentes de um Computador Unid. Controle Controle Memória Registradores PC MAR IR AC Programa + Dados Instrução Endereço
Arquitetura 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
Sumário. Aula Anterior. Exercício 7.1 Contagem de bits a 1 numa palavra Exercício 7.2 Deslocamento de n bits num operando de 64 bits.
Sumário Aula Anterior Exercício 7.1 Contagem de bits a 1 numa palavra Exercício 7.2 Deslocamento de n bits num operando de 64 bits Aula 12 1 Sumário Nesta Aula Esclarecimento de dúvidas para o Exame Resolução
Capítulo 3. Instruções: Aritmética MIPS
Capítulo 3 Permission is granted to copy and distribute this material for e ducational purposes only, provided that the complete bibliographic citation and following credit line is included: "Copyright
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,
Procedimentos e Gestão de Subrotinas
5 Procedimentos e Gestão de Subrotinas Wait a minute, Doc. Are you telling me you built a time machine out of a DeLorean? Marty McFly para o Dr. Brown no filme de 1985, Back to the future O desenho de
Cap - 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
Especificaçã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
MIPS. Prof. Carlos Bazilio http://www.ic.uff.br/~bazilio [email protected]
MIPS Prof. Carlos Bazilio http://www.ic.uff.br/~bazilio [email protected] Introdução Plataforma projetada da parceria entre NEC, Nintendo, Silicon Graphics e Sony Possui um conjunto de instruções que e
Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans
Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 18/abril/2012 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome
Organizaçã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
Arquitectura de Computadores ARQC MIPS. Serviços de Sistemas Exemplos. Serviços de Sistema
Arquitectura de Computadores ARQC MIPS Serviços de Sistemas Exemplos Serviços de Sistema Exemplo 1 Somar duas variáveis veis em um registrador register int a=1, b=3, c; c = a + b; (usar os códigos c de
Organização ou MicroArquitectura
Organização ou MicroArquitectura DataPath MIPS32 AC Micro-Arquitectura: DataPath do MIPS Datapath e Controlpath Datapath circuito percorrido pelas instruções, endereços e ados IP Inst. Mem. Register File
[1] $2,$0,$3 105 [2] 0x004000e8
Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 14/setembro/2017 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome
O Processador: Via de Dados e Controle
O Processador: Via de Dados e Controle Ch5A Via de Dados e Controle Implementação da arquitetura MIPS Visão simplificada de uma arquitetura monociclo Instruções de memória: lw, sw Instruções lógicas aritméticas:
Conjunto de Instruções e Arquitectura p.1
Conjunto de Instruções e Arquitectura Luís Nogueira [email protected] Departamento Engenharia Informática Instituto Superior de Engenharia do Porto Conjunto de Instruções e Arquitectura p.1 Organização
1: 2: 2, [1] [2] 0x x001f8021 $16,$0,$31 13 [3] 0x x
Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 14/setembro/2012 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Arquiteturas de Computadores Turma :A1 Lista 1 Profa.: Simone Martins 1. Tentando projetar o futuro: a) Em
Faculdade de Computação
Problemas: Faculdade de Computação Arquitetura e Organização de Computadores 2 1 a Laboratório de Programação MIPS entrega 18/04/2016 Prof. Cláudio C. Rodrigues P1) Considere que você é um projetista da
Faculdade de Computação
Faculdade de Computação Arquitetura e Organização de Computadores 1 Prática 2 entrega 10/05/2019 Prof. Cláudio C. Rodrigues Programando a Arquitetura MIPS P1) Traduza os códigos de máquina a seguir para
ARQUITETURA DO PROCESSADOR MIPS
Arquitetura Infra-estrutura de Computadores Hardware 2009 Infra-estrutura de Hardware ARQUITETURA DO PROCESSADOR MIPS Infra-estrutura de Hardware Capítulo 1 Roteiro da Aula Introdução Operações Aritméticas
Escreva um programa em código assembly correspondente ao seguinte programa C.
Exercício 11.1 Escreva um programa em código assembly correspondente ao seguinte programa C. cont=0; for (n=0; n
O Funcionamento do Processador
O Funcionamento do Processador Arquiteturas para Alto Desmpenho Prof. [email protected] Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Os cinco componentes clássicos de um Computador - Controle O
Questionário 1 Arquitetura e Organização de Computadores
Questionário 1 Arquitetura e Organização de Computadores Os exercícios desta lista estão em geral organizados seguindo a apresentação do conteúdo em aula. No entanto, alguns exercícios podem requerem conhecimentos
ARQUITETURA DO PROCESSADOR MIPS/ RISC V
Arquitetura Infra-estrutura de Computadores Hardware 2009 Infra-estrutura de Hardware ARQUITETURA DO PROCESSADOR MIPS/ RISC V Infra-estrutura de Hardware Capítulo 1 Roteiro da Aula Introdução Operações
Questionário Arquitetura e Organização de Computadores
Questionário Arquitetura e Organização de Computadores Os exercícios desta lista estão organizados em geral seguindo a apresentação do conteúdo em aula. No entanto, alguns exercícios podem requerem conhecimentos
66 [2] 0x x c
Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 16/setembro/2015 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome
Anotaçõ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
Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples
Infraestrutura de Hardware Implementação Multiciclo de um Processador Simples Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e
Microarquitetura IJVM. Datapath mic-1. Função dos Registradores. mic-1
Microarquitetura IJVM mic-1 Datapath mic-1 Este é mais um exemplo de datapath para microarquitetura IJVM desenvolvida por Andew Tanenbaum Parte da CPU que contém a ALU, suas entradas e saídas 2 Função
MODOS 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
O Funcionamento do Processador
O Funcionamento do Processador Arquiteturas para Alto Desmpenho Prof. [email protected] Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Os cinco componentes clássicos de um Computador - Controle O
1: 2: 2, [1] [2] 0x x3c011001
Prova P1 Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans Aluno: 13/setembro/2013 Lista de associação de números e mnemônicos para os registradores do MIPS Número (Decimal) Nome
Faculdade de Computação
Faculdade de Computação Arquitetura e Organização de Computadores 2 1 a Lista de Exercícios entrega em 19/04/2018 Prof. Cláudio C. Rodrigues Problemas: P1) Explique o que há de errado com as métricas de
SSC0902 Organização e Arquitetura de Computadores
SSC0902 Organização e Arquitetura de Computadores 3ª Aula Assembly MIPS Profa. Sarita Mazzini Bruschi [email protected] 1 Arquitetura MIPS MIPS: Microprocessor without interlocked pipeline stages (microprocessador
Organizaçã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
Arquitetura de Computadores. Prof. Alexandro Baldassin. 1o semestre/2017
Arquitetura de Computadores Prof. Alexandro Baldassin 1o semestre/2017 Personagens da Semana David Pa5erson (le9) John Hennessy (right) In 2000 they shared the IEEE John Von Neumann Medal for crea(ng a
Conjunto de Instruções MIPS Parte I
Faculdade de Ciências Aplicadas e Sociais de Petrolina FACAPE Conjunto de Parte I Prof. Sérgio Adaptado dos slides de Sistemas Processadores do Prof. Frank Torres - UFMG O que aprenderemos hoje? Barramento
CAPÍ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
ARQUITECTURA 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
Do 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
