Nível Máquina Formatos de Instruções

Slides:



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

Parte 1: Organização de Computadores
PIPELINE (continuação).
Organização e Arquitetura de Computadores I Linguagem de Máquina
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.
A Arquitetura: conjunto de instruções
O Conjunto de Instruções
1 O Conjunto de Instruções ISA – Instruction Set Architecture.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 03: Computador.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Exemplo de arquitetura registrador-registrador- MIPS
MIPS MULTICICLO Fluxo de Dados e Controle
Processador Fluxo de Dados e Controle
Aula-02 Arquitetura do conjunto de instruções – ISA (Instruction Set Architecture)
Arquitetura de Sistemas Operacionais
25/02/ Organização de Computadores: Uma Introdução aos Componentes Fundamentais Lógica Digital Introdução a Arquitetura Prof. Dr. Ronaldo Gonçalves.
MC542 Organização de Computadores Teoria e Prática
Daniel M. Aquino, Marcelo C. Perez, Thais A. B. Fernandes
CISC e RISC.
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
Prof. Fábio M. Costa Instituto de Informática Universidade Federal de Goiás rganização de Computadores Organização do Processador - Parte A Capítulo 5.
Sistemas Digitais Microprocessados
REPRESENTAÇÃO DE INSTRUÇÕES
Arquitetura de Computadores I
Organização da Memória Principal
Autor: Fernando de Mesentier Silva
A arquitectura IA32 A arquitectura de um processador é caracterizada pelo conjunto de atributos que são visíveis ao programador. Tamanho da palavra Número.
Arquitecturas RISC Arquitectura e Conjunto de Instruções
Arquitecturas RISC Programação em assembly
Y86: Definição da Arquitectura
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
Arquitectura de Computadores II
Unidade Central de Processamento
Funcionamento básico de um computador
Representação de Instruções
Aula 3©Universidade do Algarve 1 Do alto-nível ao assembly Compiladores, Aula Nº 3 João M. P. Cardoso.
Classes de Arquiteturas Tipos de operação Codificação das operações
ORGANIZAÇÃO DE COMPUTADORES
Arquitetura de computadores
Computador Simplificado Conceitos p.ex. FLUXO de execução
Hugo Calazans André Ricardo
Projeto de Engenharia de Software e Sistemas
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
Códigos de Detecção e Correcção de erros
Unidade Central De Processamento: Processador
A Linguagem de Máquina – Desvios e Laços
8088 Assembly Software Básico Mitsuo Takaki.
Arquitetura de Computadores 2009 Infra-estrutura Hardware
Parte 3 Seção de Dados e Unidade de Controle
1  1998 Morgan Kaufmann Publishers Paulo C. Centoducatte – MC542 - IC/Unicamp- 2006s Prof. Paulo Cesar Centoducatte
Arquitetura de computadores
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 –
A linguagem de Máquina – Instruções Básicas
Organização de Computadores Implementação da UCP Construção do caminho de dados Controle Implementação monociclo.
Modos de Endereçamento da família MC8051
 Evolução constante das linguagens de programação de alto nível (LAN) desde o Fortran (primeira LAN)  Surgimento de novos paradigmas como a OO, Orientação.
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Computador MIPS Organização básica e conjunto de instruções.
PSI3441 – Arquitetura de Sistemas Embarcados
Conjunto de instruções
Transcrição da apresentação:

Nível Máquina Formatos de Instruções IA32 e MIPS AC1 – Formatos de Instruções

Stored Program Concept As instruções são sequências de bits, armazenados em memória, que são descodificados pela Unidade de Controlo do processador. É possível descodificar estes números porque a Unidade de Controlo conhece o formato da informação que estes contêm. Esta informação consiste geralmente nos seguintes campos: opcode – código que identifica a operação; identificação dos modos de endereçamento operandos (registos, valores imediatos) Algumas arquitecturas incluem prefixos que modificam o comportamento da instrução. AC1 – Formatos de Instruções

Formato das Instruções : IA32 Instruções podem variar entre 1 a 17 bytes AC1 – Formatos de Instruções

Formatos das Instruções : IA32 ADDB $0x20, %AL Opcode = 0x04 0x04 0x20 ADDL $0x5F0043, %EAX Opcode = 0x05 0x05 0x43 0x00 0x5F 0x00 LOCK ADDL $0x5F0043, 0x08FFA021(%eax, %esi, 2) Opcode = 0x81, Prefix = 0xF0 0xF0 0x81 0x84 0x70 0x21 0xA0 0xFF 0x08 0x43 0x00 0x5f 0x00 prefixo opcode ModR/M SIB deslocamento valor imediato AC1 – Formatos de Instruções

Formato de instruções – MIPS32 A simplicidade do formato das instruções permite o desenho de uma unidade de controlo mais simples, mais rápida e que facilita a incorporação de outras funcionalidades no processador. Simplicidade: as instruções têm tamanho fixo e apenas 3 tipos diferentes R op rs rt rd shamt Funct 6 bits 5 bits I Imm 16 bits J Target 26 bits AC1 – Formatos de Instruções

Tipo R 6 bits 5 bits op rs rt rd shamt funct Op – código que identifica a instrução. Para R é sempre 0 (excepto rfe=0x10) funct – identifica a função (operação) rs, rt – números do dois registos que contêm os operandos rd – número do registo que virá a conter o resultado Número de shifts – apenas para sll, srl e sra (0 nas outras instruções) AC1 – Formatos de Instruções

Tipo R add $t0, $t2, $s0 op = 0x00 rt = $s0 = 16 funct = 0x20 rd = $t0 = 8 rs = $t2 = 10 shamt = 0 op rs rt rd shamt funct 000000 01010 10000 01000 00000 100000 1 5 4 2 Hexa: AC1 – Formatos de Instruções

Tipo I addi $t0, $t2, 256 op = 0x08 rt = $t0 = 8 rs = $t2 = 10 imm = 256 op rs rt imm 001000 01010 01000 0000 0001 0000 0000 2 1 4 8 1 AC1 – Formatos de Instruções

Tipo I lw $t9, -20 ($sp) op = 0x23 rt = $t9 = 25 rs = $sp = 29 imm = -20 op rs rt imm 100011 11101 11001 1111 1111 1110 1100 8 f b 9 f f e c AC1 – Formatos de Instruções

Instruções de salto – branch e jump Branch (Tipo I) – endereçamento relativo A constante de 16 bits indica o número de instruções a saltar Jump (Tipo J) – endereçamento absoluto A constante de 26 bits indica os 26 bits menos significativos do endereço de destino (excluindo os 2 bits menos significativos que são 00) Jump register (Tipo R) – endereçamento absoluto O registo indica o endereço de destino AC1 – Formatos de Instruções

Endereçamento relativo op = 05 rs = $t0 = 8 rt = $0 = 0 for: subi $t0, $t0, -1 bne $t0, $0, for addi $t0, $t0, -1 op rs rt imm 000101 001000 000000 1111 1111 1111 1110 PC = imm*4 + PC AC1 – Formatos de Instruções

Endereçamento Absoluto –Tipo J Endereço destino do jump é dado por: 4 bits mais significativos – são obtidos do PC 26 bits do meio – obtidos do campo target da instrução 2 bits menos significativos – 00 pois as instruções têm que estar em endereços múltiplos de 4 PC: Old PC Instruction Target Field 00 Para saltos que necessitem da especificação dos 32 bits do endereço de destino usar a instrução jr (jump register) carregando previamente o valor apropriado num registo AC1 – Formatos de Instruções

Endereçamento absoluto – Tipo J j longe Supondo que esta instrução está no endereço de memória 0XE0AA0000 e que longe é uma etiqueta que corresponde a 0xE0000008 então teremos: op target 000010 0000 0000 0000 0000 0000 0000 10 PC = 1110 0000 1010 1010 0000 0000 0000 0100 Após substituir os 26 bits apropriados do PC teremos PC = 1110 0000 0000 0000 0000 0000 0000 1000 AC1 – Formatos de Instruções

Valores Imediatos Como lidar com instruções que tenham constantes de mais de 16 bits addi $t0, $t0, 0xA00CD Carregar a constante para $at usando lui e ori Usar a versão R da instrução lui $at, 0x000A ori $at, $at, 0x00CD add $t0, $t0, $at 0x000A0000 lui $at, 0x000A 0x000A00CD ori $at, $at, 0x00CD $at: 0x???????? AC1 – Formatos de Instruções

Formato de Instruções Tema H & P Manual Intel MIPS - Instruções I e R Sec 3.4, 3.5 MIPS - Instruções J Sec 3.8 MIPS - Constantes > 16 bits Instruções Intel Página da disciplina: “IA32 - Intel Architecture Software Developer's Manual. Volume 2: The Instruction Set Reference” AC1 – Formatos de Instruções