Arquitetura de Computadores 2009 Infra-estrutura Hardware

Slides:



Advertisements
Apresentações semelhantes
Parte 1: Organização de Computadores
Advertisements

Parte 1: Organização de Computadores
CPU: Controle e processamento
Arquitetura de Computadores
WebDesign Redes de Computadores Aula 05
Arquitetura e organização de computadores.
Organização de computadores Professora Marcela Santos Aula 8 – Conjunto de instruções.
SOFTWARE BÁSICO.
A Arquitetura: conjunto de instruções
Aula 4 – Sumário Linguagem assembly do MAC-1 A pilha
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 03: Computador.
Sistemas Embarcados Microcontroladores PIC
Arquitetura dos Microprocessadores 8086 e 8088
Universidade Federal de São Carlos Introdução à Linguagem C Comandos.
Exemplo de arquitetura registrador-registrador- MIPS
Sistemas Operacionais
CISC e RISC.
Introdução à Informática
Professor: Erivelto Tschoeke – UDESC/CEPLAN
O MICROPROCESSADOR INTEL 8080
Sistemas Digitais Microprocessados
Arquitetura de Computadores I
Sincronização e Comunicação entre Processos
Autor: Fernando de Mesentier Silva
Robson Godoi / Sandra Siebra
Instruções: A Linguagem de Máquina – Aula 01
Processadores – Aula 3 Professor: André Luis Meneses Silva
Processadores – Aula 3 Professor: André Luis Meneses Silva
Funcionamento básico de um computador
Representação de Instruções
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Qualificadores.
Classes de Arquiteturas Tipos de operação Codificação das operações
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Computador Cleópatra Arquitetura e Programação.
Unidade Central de Processamento UCP
ORGANIZAÇÃO DE COMPUTADORES
Sistemas Operacionais I
Arquitetura de computadores
Tipos de Dados Paradigmas de Programação
Organização e Arquitetura de Computadores
Organização e Arquitetura de Computadores
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Agenda Modos de Endereçamento.
Processamento de dados na UCP e memória UCP
Linguagem Pascal Prof. Sérgio Rodrigues.
Unidade Central De Processamento: Processador
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
UTILIZAÇÃO DA LINGUAGEM MS-VISUAL BASIC.NET Objetivo: apresentar os principais recursos da linguagem “Visual Basic” necessários à criação de macros para.
DCC 001 Programação de Computadores 2o Semestre de 2011
A Linguagem de Máquina – Desvios e Laços
A Linguagem de Máquina – Funções e recursividade Prof. André Luis M. Silva orgearq wordpress.com.
Microprocesadores x Microcontroladores
8088 Assembly Software Básico Mitsuo Takaki.
8 - 1 Organização Básica de Computadores e Linguagem de Montagem Ricardo Pannain ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM A pilha e subrotinas.
Centro de Informática - UFPE
Nível ISA.
Fundamentos de linguagens de programação
Parte 3 Seção de Dados e Unidade de Controle
Aula 4 – Sumário Linguagem assembly do MAC-1: Funções e procedimentos
1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos.
Introdução à Computação Componentes Básicos dos Computadores
Arquitetura de Microcomputadores
Instruções Condicionais e de Acesso a Memória Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala GSI013 –
Arquitetura de Sistemas Operacionais
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
A linguagem de Máquina – Instruções Básicas
Arquitetura do ARM RISC (Reduced Instruction Set Computer) – Conjunto relativamente grande de registradores – Modelo “load/store “de processamento Operações.
Organização de Computadores Implementação da UCP Construção do caminho de dados Controle Implementação monociclo.
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Transcrição da apresentação:

Arquitetura de Computadores 2009 Infra-estrutura Hardware

Roteiro da Aula Introdução Operações Aritméticas Representação dos operandos Uso de registradores Representando as instruções Mais operações sobre dados Desvios condicionais Subrotinas MIPS Outros processadores Modos de Endereçamento Arquitetura de Computadores 2009 Infra-estrutura Hardware

Conceitos Básicos de Arquitetura de Computadores Capítulo 2 Infra-estrutura Hardware 6

Computador: Hardware + Software Arquitetura de Computadores 2009 Infra-estrutura Hardware

Computador: Hardware + Software Aplicação Compilador Sistema Operacional Windows Montador Software Repertório de Instruções Arquitetura Hardware Processor Memory I/O system Datapath & Control Digital Design Circuit Design transistors Coordenação de muitos níveis de abstração Infra-estrutura Hardware Infra-estrutura Hardware

Representação da Informação temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; Programa em Linguagem de alto nível (e.g., C) Compilador Programa em linguagem assembly (e.g.,MIPS) lw $to, 0($2) lw $t1, 4($2) sw $t1, 0($2) sw $t0, 4($2) Montador Programa em linguagem de Máquina (MIPS) 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 Interpretação Hardware Infra-estrutura Hardware Infra-estrutura Hardware ° 6

Interface entre hw e sw: Repertório de Instruções: software Repertório de Instruções hardware Infra-estrutura Hardware Infra-estrutura Hardware

Executando um programa Busca instrução Incrementa PC Decodifica instrução Busca operando Executa instrução Armazena resultado Infra-estrutura Hardware

Infra-estrutura Hardware Escopo deste curso...... Arquitetura Organização Conjunto de registradores Tipos de Dados Acesso à memória Formato e Repertório de instruções Tecnologia de memória Interfaces Implementação das instruções interconexões Infra-estrutura Hardware

Operações aritméticas add a,b,c a = b + c a = b + c + d + e? sub a,b,c a = b - c Todas as instruções aritméticas possuem 3 operandos: destino, fonte 1, fonte 2 A simplicidade é favorecida pela regularidade Infra-estrutura Hardware Infra-estrutura Hardware

Expressões Aritméticas f = (g + h) - (i + j) Variáveis auxiliares: t0 e t1 add t0,g,h add t1,i,j sub f,t0,t1 Infra-estrutura Hardware

Operandos no Hardware Para se garantir o desempenho.... Operandos em registradores Vantagens: leitura e escrita em registradores são muito mais rápidas que em memória Quanto menor mais rápido Infra-estrutura Hardware Infra-estrutura Hardware

Infra-estrutura Hardware Operandos no Hardware Registradores $s0, $s1, .... : armazenam variáveis do programa $t0, $t1, .... : armazenam variáveis temporárias f = (g + h) - (i + j)? Variáveis g,h,i e j estão armazenadas nos registradores $s0, $s1, $s2 e $s3 Infra-estrutura Hardware

Tipos de Dados Conceito Tipo de Dado Bits Sinais elétricos Bits Conceitual Ling. Progr. Arquitetura Físico Infra-estrutura Hardware Infra-estrutura Hardware

Tipos de Dados Escalar números caracteres dados lógicos Inteiros Ponto-Flutuante (real) caracteres ASCII EBCDIC dados lógicos Infra-estrutura Hardware Infra-estrutura Hardware

Inteiros Representação binária sinal-magnitude complemento a 1 0000000000001010 1000000000001010 + 10 - 10 0000000000001010 1111111111110101 + 10 - 10 0000000000001010 111111111110110 + 10 - 10 Infra-estrutura Hardware Infra-estrutura Hardware 25

Infra-estrutura Hardware Dados lógicos Representação Uma palavra Um bit 0000000000000000 Verdadeiro 0000000000000001 Falso 0000000000100000 Falso Verdadeiro Infra-estrutura Hardware

Ponto Flutuante Representação 10 00 , 000001 14 3 314 ´ = 10 00 , 6 5 1 10 00 , 000001 14 3 314 - ´ = 6 5 1 10 00 , 000001 14 3 314 - ´ = sinal expoente mantissa (fração) Infra-estrutura Hardware Infra-estrutura Hardware

Ponto Flutuante Padrão IEEE Overflow positivo negativo Num. negativos representáveis Num. positivos Underflow Zero Infra-estrutura Hardware Infra-estrutura Hardware

Infra-estrutura Hardware Tipos de Dados Escalar números Inteiros Ponto-Flutuante (real) caracteres ASCII dados lógicos Estruturas (Estático) Array Record Listas, Árvores (Dinâmico) Infra-estrutura Hardware

Array: endereço inicial de memória elemento a ser transferido Operandos na Memória Manipulando arrays: Armazenados na memória Instruções que permitam transferência de informação entre memória e registrador Instruções de Transferência de Dados load word - lw Array: endereço inicial de memória elemento a ser transferido Infra-estrutura Hardware Infra-estrutura Hardware

Operandos na Memória Arrays no MIPS: Instrução Load Word: endereço inicial: registrador deslocamento: valor na instrução Instrução Load Word: Copia conteúdo de palavra (32bits) de memória para registrador. lw reg_dst, desl(reg_end_inicial) g = h + A[8] onde g e h estão nos registradores $s1 e $s2 e end. Inicial de A está em $s3. lw $t0, 8($s3) add $s1, $s2, $t0 Infra-estrutura Hardware 2009 Infra-estrutura Hardware

Operandos na Memória MIPS Inteiros com 32 bits Memória endereçada por byte 10 A[0] 11 12 End (A[0]) = 10 End (A[1]) = 14 13 14 A[1] 15 16 End(A[i]) = End-inicial + i x 4 17 Infra-estrutura Hardware Infra-estrutura Hardware

Infra-estrutura Hardware Operandos na Memória Escrita em Memória Instrução Store Word: Copia conteúdo de palavra (32bits) de registrador para memória. sw reg_alvo, desl(reg_end_inicial) A[12] = h + A[8] endereço inicial de A em $s3 e h em $s2 lw $t0, 32($s3) add $t0, $s2, $t0 sw $t0, 48($s3) Infra-estrutura Hardware

Infra-estrutura Hardware Operandos na Memória Array com variável de indexação g = h + A[i] endereço inicial de A em $s3 e g, h e i estão em $s1, $s2 e $s4 add $t1, $s4, $s4 add $t1, $t1, $t1 add $t1, $t1, $s3 lw $t0, 0($t1) add $s1, $s2, $t0 Infra-estrutura Hardware

Infra-estrutura Hardware Resumo Operandos no MIPS 32 registradores $s0, $s1,... $t0, $t1,... 230 palavras de memória palavras de 32 bits endereçamento por byte Infra-estrutura Hardware

Infra-estrutura Hardware Resumo Linguagem de montagem do MIPS Aritméticas add regi, regj, regk regi = regj + regk sub regi, regj, regk regi = regj - regk Transferência de dados lw regi, desl(reg_base) regi = mem(reg_base+desl) sw regi, desl(reg_base) mem(reg_base+desl) = regi Infra-estrutura Hardware

Computador de Programa Armazenado Instruções e Dados possuem uma representação numérica na memória M e m o r y A c c o u n t i n g p r o g r a m ( m a c h i n e c o d e ) E d i t o r p r o g r a m ( m a c h i n e c o d e ) C c o m p i l e r P r o c e s s o r ( m a c h i n e c o d e ) P a y r o l l d a t a B o o k t e x t S o u r c e c o d e i n C Infra-estrutura Hardware f o r e d i t o r p r o g r a m

Representação das instruções Informação tem uma representação numérica na base 2 codificação das instruções mapeamento de nomes de registradores para números $s0 a $s7 : 16 a 23 $t0 a $t7 : 8 a 15 add $t0, $s1, $s2 17 18 8 32 op rs rt rd funct 00000 10001 10010 01000 100000 Infra-estrutura Hardware 6 5 5 5 5 6

Representação das instruções Instruções do MIPS Aritméticas Transferência de informação 6 5 op rs rt rd shamt funct op rs rt deslocamento 6 5 5 16 Infra-estrutura Hardware

Linguagem de Montagem vs. Linguagem de Máquina A[300] = h + A[300] lw $t0, 1200($t1) add $t0, $s2, $t0 sw $t0, 1200($t1) Arquitetura de Computadores 2009 Infra-estrutura Hardware

Exemplo: uma CPU simples... Infra-estrutura Hardware

Mais operações sobre dados Transformação de formato Desempacotamento Empacotamento Busca Armazenamento Movimentação de Dado Infra-estrutura Hardware 24

Transformação de Formato Afetam a localização dos bits Deslocamento e rotação 1110000001010110 Direita Esquerda 0111000000101011 1100000010101100 1 Lógico/Aritmético Lógico 1111000000101011 Aritmético 0111000000101011 1100000010101101 1 Rotação Infra-estrutura Hardware Rotação

Operações sobre Dados Operações Lógicas Operações Aritméticas Operando Resultado Transformação de formato Desempacotamento Empacotamento Busca Armazenamento Movimentação de Dado Infra-estrutura Hardware 24

Infra-estrutura Hardware Operações Lógicas AND, OR, XOR, NOT Extração de grupos de bits R1 R2 1011011110111100 0000000011111111 0000000010111100 R1 and R2 Infra-estrutura Hardware

Operações Aritméticas Soma, subtração: Tipos de dados inteiros ponto-flutuante Exemplo: Pode gerar resultados não representáveis (overflow e underflow) 00000101 + 00000110 00001011 Infra-estrutura Hardware

Operações Aritméticas Multiplicação resultado: tamanho duplo Divisão dividendo: tamanho duplo resultados: quociente resto Infra-estrutura Hardware

Infra-estrutura Hardware Controle de Fluxo Alterar a sequência de execução das instruções: If ...then ...else case loop go to Ling. alto nível Desvio incondicional Desvio condicional a comparações entre variáveis e/ou valores Linguagem máquina Infra-estrutura Hardware

Infra-estrutura Hardware Desvios no MIPS Realizado por duas instruções jump endereço branch if equal reg1, reg2, endereço lw $S0,a lw $S1,b lw $S2,c beq $S0, $S1, end1 sub $t0, $S0, $S2 j end2 end1: add $t0, $S0, $S2 end2: sw $t0, a Linguagem máquina If a=b then a:= a+c else a:= a-c end if; Ling. alto nível Infra-estrutura Hardware

Desvios condicionais no MIPS Instruções de comparação e desvio: Beq regd, regs, deslocamento PC = PC + (deslocamento*4) se regd = regs, Bne regd, regs, deslocamento PC = PC + (deslocamento*4) se regd <> regs, Infra-estrutura Hardware

Desvios condicionais no MIPS Instruções de Comparação: set less than slt regd, regs1, regs2 Regd = 1 se regs1 menor que regs2, caso contrário regd = 0 Registrador com constante zero Desvio se maior ou igual??? slt $t0, $s0, $s1 beq $t0, $0, end Infra-estrutura Hardware

Infra-estrutura Hardware Desvios no MIPS Instruções de desvio: j endereço PC = endereço Instruções de desvio indireto: jr reg PC = (reg) Infra-estrutura Hardware

Infra-estrutura Hardware MIPS Infra-estrutura Hardware

Infra-estrutura Hardware Subrotinas Implementação de procedimentos e funções Ling. alto nível Programa principal Var i,j,k: integer Procedure A (var x: integer); ... Begin ...(corpo do procedimento) End; A(k); (chamada do procedimento) .... O endereço de retorno deve ser salvo... mas onde? Retorno após a chamada Infra-estrutura Hardware

Onde salvar o endereço de retorno? registradores só permite chamadas seriais pilha permite aninhamento e recursividade ... Procedure A begin Procedure B Procedure C C end end. ret. de A end. ret. de B end. ret. de C topo da pilha Infra-estrutura Hardware

Chamada de subrotina - MIPS Instruções: jal guarda endereço de retorno em $ra (reg. 31) muda fluxo de controle jr - jump register recupera endereço de retorno de $ra Infra-estrutura Hardware

Infra-estrutura Hardware Implementando a pilha Utiliza parte da memória como pilha MIPS: stack-pointer (Reg 29) programas e dados Memória 000...000 Stack-Pointer (topo da pilha) pilha 111...111 Infra-estrutura Hardware

Infra-estrutura Hardware Implementando a pilha Instruções: coloca registrador na pilha: lw $28, QUATRO sw reg, 0($29) sub $29, $29, $28 retira registrador da pilha add $29, $29, $28 lw reg, 0($28) Infra-estrutura Hardware

Chamada de subrotina em outras arquiteturas Instruções: call empilha endereço de retorno muda fluxo de controle ret recupera endereço de retorno Outras instruções de suporte... Salvar todos registradores na pilha alocar parte da pilha para armazenar variáveis locais e parâmetros Infra-estrutura Hardware

Usando a pilha em outras arquiteturas Utiliza parte da memória como pilha SP: Registrador adicional Instruções adicionais: push reg: mem(SP) reg ; decrementa SP pop reg: incrementa SP, reg mem(SP); programas e dados Memória 000...000 Stack-Pointer (topo da pilha) pilha 111...111 Infra-estrutura Hardware

MIPS vs. Outras arquiteturas Endereço de retorno: MIPS: registrador Outras: Memória Melhor desempenho Acesso à Pilha: MIPS: instruções lw e sw Outras: instruções adicionais Menor complexidade na implementação Compilador mais complexo Infra-estrutura Hardware

MIPS vs. Outras arquiteturas Chamadas aninhadas ou recursivas MIPS: implementada pelo compilador Outras: suporte direto da máquina Compilador mais complexo Infra-estrutura Hardware

MIPS Arquitetura de Computadores 2009 Infra-estrutura Hardware

Endereçamento imediato Operações aritméticas e de comparação: O operando é especificado na instrução ADDI R1, R2, #A R7 R0 R6 R5 R4 R3 R2 R1 00...0000 / 00...01010 Registradores 001011 000...01010 00001 00010 Instrução Modo bastante frequente Operando constante Arquitetura de Computadores 2009 Infra-estrutura Hardware

MIPS Arquitetura de Computadores 2009 Infra-estrutura Hardware

Executando um programa Arquitetura de Computadores 2009 Infra-estrutura Hardware

Executando um programa Infra-estrutura Hardware

Usando o Simulador MIPSIT Local: P:\\cin04\apps\ Executar mipsit.exe Criando um projeto: File/new -> criar project Editando um programa File/new -> criar arquivo e editar texto Infra-estrutura Hardware

Exemplo de Programa em Linguagem de Montagem .data Item: .word 5 a: .word 10 .text .globl start .ent start start: lw $8, item lw $9, a add $10, $9, $8 sw $10,a .end start Infra-estrutura Hardware

Usando o Simulador MIPSIT Compilando um programa build -> build Códigos objetos são armazenados na pasta object Carregando código executável para o simulador Executar o simulador mips.exe Carregar usando mipsit: Build/upload -> to simulator Infra-estrutura Hardware

Usando o Simulador MIPSIT Simulando um programa O que é visível: Registradores (CPU) Conteúdo em hexadecimal Associação nome e número Memória (RAM) Quatro colunas: Endereço Conteúdo (hexa) Rótulos Instrução de máquina Infra-estrutura Hardware

Usando o Simulador MIPSIT Simulando um programa Iniciando a execução: Indo para rótulo inicial Jump To Symbol -> start Executando passo a passo CPU -> step Botao: seta para quardrado azul Infra-estrutura Hardware

Outros Modos de Endereçamento Infra-estrutura Hardware

Infra-estrutura Hardware Operandos no MIPS Aritméticas Registradores Load, store Memória Infra-estrutura Hardware

Endereçamento de registrador Operações aritméticas: O operando está em um registrador e a instrução contem o número do registrador ADD R3, R3, R7 R3 <- R3 + R7 R7 R0 R6 R5 R4 R3 R2 R1 00...0001 / 00...00110 00...000101 Registradores 00101010 00011 Opcode Oper.1 Oper.2 Instrução 00111 Infra-estrutura Hardware

Endereçamento base Instruções de acesso à memória: Instrução:deslocamento Registrador de base:end- inicial Lw R1, desl(R2) 001010 00001 00010 Instrução 00..000100 00..101110 0000000000101110 + 00...0001 / 00...00110 Memória R0 R6 ... R2 R1 000000000101010 Registradores 0000000000000101 Infra-estrutura Hardware Arquitetura de Computadores 2009

Endereçamento imediato Operações aritméticas e de comparação: O operando é especificado na instrução ADDI R1, R2, #A R7 R0 R6 R5 R4 R3 R2 R1 00...0000 / 00...01010 Registradores 001011 000...01010 00001 00010 Instrução Modo bastante frequente Operando constante Arquitetura de Computadores 2009 Infra-estrutura Hardware

Infra-estrutura Hardware Endereços no MIPS Endereço na Instrução J endereço PC = endereço Endereço em Registrador Jr reg PC = (reg) Endereço relativo a registrador Beq deslocamento PC = PC + deslocamento*4 Infra-estrutura Hardware

Endereçamento (Pseudo)Direto Instrução de Desvio: o endereço da próxima instrução é especificado na instrução J end1 PC <- end1 PC=00..101010 PC=0..101110 Add R1, R1, R3 J 000000.....101010 Memória 001010 000000000000000000101010 Instrução Infra-estrutura Hardware Arquitetura de Computadores 2009

Endereçamento Relativo a PC Instrução de Branch: o número de instruções a serem puladas a partir da instrução é especificado na instrução Beq R1, R3, desl1 PC <- PC + desl1*4 PC=1010...0000 PC=1010...1000 Add R1, R1, R3 Beq r1, r3, 111...10 Memória 001010 1111111111111110 Instrução 00011 00001 1010...001000 + 1010...000000 *4 Infra-estrutura Hardware Arquitetura de Computadores 2009

Endereçamento de Registrador Instrução de Desvio: o endereço do operando na memória é especificado em um registrador Jr R1 PC <- (R1) PC=00..101010 PC=00..101110 Add R2, R2, R3 Jr R1 Memória 001010 00001 Instrução 00000..000000101010 R1 Infra-estrutura Hardware Arquitetura de Computadores 2009

Modos do MIPS Arquitetura de Computadores 2009 Infra-estrutura Hardware

Em geral... Aritméticas: Vários modos de endereçamento Operandos em registradores Operandos em memórias ... Vários modos de endereçamento Como especificar na instrução onde está o operando e como este pode ser acessado ? Campo na Instrução Infra-estrutura Hardware Arquitetura de Computadores 2009

Endereçamento em outras arquiteturas Aritméticas Registrador-Registrador Registrador - Memória Memória - registrador Memória - Memória Exemplo: Adição Infra-estrutura Hardware

Endereçamento de registrador O operando está em um registrador e a instrução contem o número do registrador ADD R3, R7 R3 <- R3 + R7 R7 R0 R6 R5 R4 R3 R2 R1 00...0001 / 00...00110 00...000101 Registradores Instrução Modo2 Oper.2 00101010 001 001 011 111 Opcode Modo1 Oper.1 Infra-estrutura Hardware

Infra-estrutura Hardware Endereçamento Direto Registradores O endereço do operando na memória é especificado na instrução ADD R1, end2 R1<- R1+ [end2] R7 R0 R6 R5 R4 R3 R2 R1 00...0001 / 00...00010 Instrução Modo1 Modo2 00000...0000001 Memória 00101010 001 010 001 000000000000101010 instruções maiores 00..101010 Infra-estrutura Hardware

Endereçamento imediato O operando é especificado na instrução ADD R1, #A R7 R0 R6 R5 R4 R3 R2 R1 00...0000 / 00...01010 Registradores Instrução 00101010 00 01 001 00001010 Modo do operando 2 Modo do operando 1 Modo bastante frequente Operando constante Infra-estrutura Hardware

Endereçamento indireto O endereço (reg. ou memória) contem o endereço do operando ADD R1,(R2) R1 <- R1 + mem(R2) 00..101010 00...0001 / 00...00110 Memória R0 ... R3 R2 R1 0000000000101010 Registradores 0000000000000101 00101010 001 010 Modo do operando 1 Modo do operando 2 11 00 Instrução Endereço variável ponteiros Infra-estrutura Hardware

Endereçamento indexado Instrução: endereço inicial do array Registrador de índice: deslocamento ADD R1, [R2]end 00..101110 0000000000101110 + 00...0001 / 00...00110 Memória R0 R6 ... R2 R1 0000000000000100 Registradores 0000000000000101 00101010 001 010 Mod2 Instrução Mod1 0000000000101010 Arquitetura de Computadores 2009 Infra-estrutura Hardware

Endereçamento base Instrução:deslocamento Registrador de base:end- inicial ADD R1, desl(R2) 00..101110 0000000000101110 + 00...0001 / 00...00110 Memória R0 R6 ... R2 R1 000000000101010 Registradores 0000000000000101 00101010 001 010 Mod2 Instrução Mod1 00000100 Arquitetura de Computadores 2009 Infra-estrutura Hardware

Modos de Endereçamento Addressing mode Example Meaning Register Add R4,R3 R4  R4+R3 Immediate Add R4,#3 R4  R4+3 Displacement Add R4,100(R1) R4  R4+Mem[100+R1] Register indirect Add R4,(R1) R4  R4+Mem[R1] Indexed / Base Add R3,(R1+R2) R3  R3+Mem[R1+R2] Direct or absolute Add R1,(1001) R1  R1+Mem[1001] Memory indirect Add R1,@(R3) R1  R1+Mem[Mem[R3]] Auto-increment Autoinc/dec change source register! Why auto inc/dec Why reverse order of inc/dec? Scaled multiples by d, a small constant Why? Hint: byte addressing Add R1,(R2)+ R1  R1+Mem[R2]; R2  R2+d Auto-decrement Add R1,–(R2) R2  R2–d; R1  R1+Mem[R2] Scaled Add R1,100(R2)[R3] R1  R1+Mem[100+R2+R3*d] Why Auto-increment/decrement? Scaled? Infra-estrutura Hardware

Endereçamento de desvio Especificação do endereço de desvio: Absoluto: PC Endereço de Desvio restrito a algumas funções do S.O. implícito: vetor de interrupções Relativo (PC = endereço base): PC PC + Deslocamento (instrução) permite relocação codificação econômica (poucos bits para o deslocamento) Infra-estrutura Hardware

Modos do MIPS Arquitetura de Computadores 2009 Infra-estrutura Hardware

MIPS Arquitetura de Computadores 2009 Infra-estrutura Hardware

Executando um programa Arquitetura de Computadores 2009 Infra-estrutura Hardware

Executando um programa Infra-estrutura Hardware

Usando o Simulador MIPSIT Local: P:\\cin04\apps\ Executar mipsit.exe Criando um projeto: File/new -> criar project Editando um programa File/new -> criar arquivo e editar texto Infra-estrutura Hardware

Exemplo de Programa em Linguagem de Montagem .data Item: .word 5 a: .word 10 .text .globl start .ent start start: lw $8, item lw $9, a add $10, $9, $8 sw $10,a .end start Infra-estrutura Hardware

Usando o Simulador MIPSIT Compilando um programa build -> build Códigos objetos são armazenados na pasta object Carregando código executável para o simulador Executar o simulador mips.exe Carregar usando mipsit: Build/upload -> to simulator Infra-estrutura Hardware

Usando o Simulador MIPSIT Simulando um programa O que é visível: Registradores (CPU) Conteúdo em hexadecimal Associação nome e número Memória (RAM) Quatro colunas: Endereço Conteúdo (hexa) Rótulos Instrução de máquina Infra-estrutura Hardware

Usando o Simulador MIPSIT Simulando um programa Iniciando a execução: Indo para rótulo inicial Jump To Symbol -> start Executando passo a passo CPU -> step Botao: seta para quardrado azul Para usar nomes simbólicos: Inclua no programa em linguagem de montagem: #include ,iregdef.h> Infra-estrutura Hardware

Infra-estrutura Hardware Resumindo Organização de um computador Definição de arquitetura Tipos de Dados Inteiros Booleanos Ponto-Flutuante Formato das instruções Conjunto de registradores Infra-estrutura Hardware

Infra-estrutura Hardware Resumindo ...Definição de Arquitetura Repertório de instruções sobre o dado movimentação transformação codificação aritméticas lógicas alteração do fluxo de execução desvios condicionais desvios incondicionais Subrotinas Infra-estrutura Hardware

Infra-estrutura Hardware Resumindo ...Definição de Arquitetura Modos de Endereçamento: Dados Operações Aritméticas e de Comparação: Registrador Imediato Load/Store: Base Modos de Endereçamento: Instruções Desvio Incondicional (pseudo) direto Indireto de registrador Desvio Condicional Relativo ao PC Subrotina Infra-estrutura Hardware