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

Documentos relacionados
Organização e Arquitetura de Computadores I

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

Conjunto de Instruções. Prof. Leonardo Barreto Campos 1

SSC0611 Arquitetura de Computadores

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture

Sistemas Processadores e Periféricos Aula 2 - Revisão

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

MIPS ISA (Instruction Set Architecture)

Sistemas de Computação. Instruções de Linguagem de Máquina

SSC0114 Arquitetura de Computadores

Infraestrutura de Hardware. Instruindo um Computador

Especificação do Projeto de Processador RISC

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

Organização e Projetos de Computadores. Capítulo 2. Organização e Projetos de Computadores. Instruções

Organização ou MicroArquitectura

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA VII

DataPath II Tomando o controle!

Microcontroladores e Interfaces

Arquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)

Arquitecturas Alternativas. Arquitectura X86-64 Arquitecturas RISC Exemplo: MIPS Desempenho de sistemas Pipelining

AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS

lw, sw add, sub, and, or, slt beq, j

ção de Computadores II

Arquitetura de Computadores I Prof. Ricardo Santos (Cap 2)

Arquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)

Infra-estrutura de Hardware

1: 2: 2, [1] [2] 0x x001f8021 $16,$0,$31 13 [3] 0x x

PSI3441 Arquitetura de Sistemas Embarcados

UCP: Construindo um Caminho de Dados (Parte I)

Dicas: Nas linhas 7 e 8 as constantes imediatas são especificadas como caracteres ASCIIE, o que é aceito pelo montador MARS.

Organização de Unidades de Processamento

PSI3441 Arquitetura de Sistemas Embarcados

A arquitectura IA32. A arquitectura de um processador é caracterizada pelo conjunto de atributos que são visíveis ao programador.

Exercícios resolvidos (aula de 4 de Maio) Resolução:

Arquitetura de Computadores. Linguagem de Máquina

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

Organização e Arquitetura de Computadores I

Conjunto de Instruções e Arquitectura p.1

O Processador: Via de Dados e Controle

Arquiteturas de Computadores

Desenho do Processador

Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO

66 [2] 0x x c

Figura 1. Datapath do MIPS Superescalar Especulativo CES SE

Conjunto de Instruções MIPS Parte IV

Arquitectura e Organização de Computadores

Relembrando desempenho...

2. Relativamente ao datapath de ciclo único do MIPS podemos dizer que:

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

3. INSTRUÇÕES. Instrução é uma palavra da linguagem de máquina. Instruction Set do MIPS ( usado pela NEC, Nintendo, Silicon Graphics e Sony.

Relembrando desempenho...

Arquitetura de Computadores

Organização de Computadores

Questionário Arquitetura e Organização de Computadores

Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 07/outubro/2009

Sistemas Processadores e Periféricos Aula 1 - Revisão

Aula 17: UCP: Construindo um Caminho de Dados (Parte I)

Prof. Gustavo Oliveira Cavalcanti

18/08/2015. Capítulo 2: Manipulação de dados. Arquitetura de Computadores. Capítulo 2: Manipulação de Dados

1: 2: 2, [1] [2] 0x x3c011001

Infraestrutura de Hardware. Instruindo um Computador Subrotinas, Tipos de Dados e Modos de Endereçamento

ARQUITECTURA DE COMPUTADORES

TEÓRICA. lb $t0, 1($t1)

Lista de Revisão para a Primeira Avaliação

Estrutura do tema ISA do IA-32

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

Conjunto de. Instrução MIPS. Parte II. Instruções MIPS. Instruções MIPS. Instruções MIPS :: Instruções lógicas. :: Instruções lógicas

ORGANIZAÇÃO DE COMPUTADORES

Aula 14: Instruções e Seus Tipos

Conjunto de Instruções MIPS Parte I

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples

Microcontroladores e Interfaces

Microprocessadores. Família x86 - Evolução

Arquitetura de Computadores. Prof. Alexandro Baldassin. 1o semestre/2017

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Otimização de Execução em Processadores Modernos. William Stallings - Computer Organization and Architecture, Chapter 12 [Trad. E.Simões / F.

Organização de Computadores μarquitetura. Na Aula Anterior... Introdução. Nesta Aula. MIPS-Monociclo. Formas de Organização 17/10/2016

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.

2. Descrição do Trabalho. Figura 1. Datapath do MIPS Superescalar CES SE

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans. Lista de associação de números e mnemônicos para os registradores do MIPS

Data types. In C: char. short. int/long. double/long long AC 2017/2018. Pedro Serra / Sérgio Ferreira

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

Escreva um programa em código assembly correspondente ao seguinte programa C.

Universidade Federal de Pernambuco - UFPE. Centro de Informática - CIn

Organização de Computadores

Projetos Digitais e Microprocessadores 1 o Semestre de 2005 Prof. Luis Allan Künzle Prova Final 05/07/2005 Prova sem consulta.

AJProença, Sistemas de Computação, UMinho, 2017/18 1. Componentes (físicos) a analisar: a unidade de processamento / o processador:

[1] $2,$0,$3 105 [2] 0x004000e8

Faculdade de Computação

O estudo da arquitectura de computadores efectua-se com recurso à Abstracção

Organização e Arquitetura de Computadores I

Arquitetura de Sistemas Digitais (FTL066) Instruções: Linguagem do Computador Segunda Lista de Exercícios

MODOS DE ENDEREÇAMENTO

Arquitectura e Organização de Computadores

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans

ORGANIZAÇÃO DE COMPUTADORES

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 1. Cibele Lemos Freire Viginoski

Capítulo 3. Instruções: Aritmética MIPS

Transcrição:

Nível Máquina Formatos de Instruções IA32 e MIPS AC1 11ª aula Formatos de Instruções 1

Stored Program Concept As instruções são números, 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: code código que identifica a eração; identificação dos modos de endereçamento erandos (registos, valores imediatos) Algumas arquitecturas incluem prefixos que modificam o comportamento da instrução. AC1 11ª aula Formatos de Instruções 2

Formato das Instruções : IA32 Instruções podem variar entre 1 a 17 bytes AC1 11ª aula Formatos de Instruções 3

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 code ModR/M SIB deslocamento valor imediato AC1 11ª aula Formatos de Instruções 4

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 rs rt rd shamt Funct 6 bits 6 bits I rs rt Imm 6 bits 16 bits J Target 6 bits 26 bits AC1 11ª aula Formatos de Instruções 5

Tipo R 6 bits 6 bits 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 (eração) rs, rt números do dois registos que contêm os erandos 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 11ª aula Formatos de Instruções 6

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

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

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

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 11ª aula Formatos de Instruções 10

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

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, depois do fetch e antes do execute teremos: 000010 target 0000 0000 0000 0000 0000 0000 10 PC = 1110 0000 1010 1010 0000 0000 0000 0100 Após substituir os 26 bits aprriados do PC teremos PC = 1110 0000 0000 0000 0000 0000 0000 1000 AC1 11ª aula Formatos de Instruções 12

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 aprriado num registo AC1 11ª aula Formatos de Instruções 13

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

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