Arquitetura e Organização de Processadores. Aula 2. Processadores RISC Apresentação do processador MIPS



Documentos relacionados
Arquitetura de Computadores

ISA Instruction Set Architecture (Revisão) Na Aula Anterior... Nesta Aula. Conceitos. Tipos de Dados. Tipos de Dados 11/03/2019

Arquitetura de Computadores II MIPS64. Prof. Gabriel P. Silva

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

Operações de Controle de Fluxo e Acesso a Memória. Na Aula Anterior... Nesta Aula. Instruções de Controle de Fluxo. if then - else.

Data Path / Control Path Controle do MIPS

Conteúdos: Debora, Edcarllos, livros! slides disponíveis!

Na Aula Anterior... Operações Aritméticas e Lógicas

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

Na Aula Anterior... Operações Aritméticas e Lógicas. Nesta Aula. Instruções Aritméticas (N e Z) Exemplo 11/03/2019

SSC0611 Arquitetura de Computadores

Projetando um Computador

Projetando um Computador Parte II Arquitetura do Processador BIP

SSC0114 Arquitetura de Computadores

Arquitetura de Computadores. Linguagem de Máquina

MIPS ISA (Instruction Set Architecture)

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

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

Guia Rápido MIPS. Tipos de Dados e Formatações

Arquitetura FPU: Implementação MIPS32. Guilherme Fernandes Raphanelli Diogo D. Fonseca dos Santos

Oganização e Arquitetura de Computadores

Organização e Arquitetura de Computadores I

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

O Funcionamento do Processador

Especificação do Projeto de Processador RISC

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

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

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

Infraestrutura de Hardware. Instruindo um Computador

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

Organização e Arquitetura de Computadores I

Caminho de Dados e Controle. Prof. Leonardo Barreto Campos 1

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

Microcontroladores e Microprocessadores. Conversão de Bases Prof. Samuel Cavalcante

Relembrando desempenho...

Organização e Arquitetura de Computadores I

Organização de Computadores

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas

ção de Computadores II

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

Relembrando desempenho...

Conjunto de Instruções MIPS Parte IV

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

O Conjunto de Instruções do Processador

Arquitetura de Computadores Moderna

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

Construção de uma via de dados, abordagem monociclo, multiciclo e pipeline

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

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

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

Do alto-nível ao assembly

Revisão de Arquitetura e Organização de Computadores. Na Aula Anterior... Abstração de Computadores. Nesta Aula 19/08/2016

Prova Modelo. Nome: Número:

O Funcionamento do Processador

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

Fundamentos de Arquitetura e Organização de Computadores

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

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

ARQUITECTURA DE COMPUTADORES

Informática Aplicada

Organização e Arquitetura de Computadores I

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

EA960 Aritmética e Representação Numérica

Introdução. Software Básico Aula 3. Prof. Dr. Rogério Vargas.

Aula 14: Instruções e Seus Tipos

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

Questionário Arquitetura e Organização de Computadores

ARQUITECTURA DE COMPUTADORES

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

Infra-estrutura de Hardware

Breve histórico da Evolução dos Computadores (leitura informativa )

TECNOLOGIA EM MECATRÔNICA INDUSTRIAL CONTROLADORES LÓGICOS PROGRAMÁVEIS

AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS

Objetivos. Arquitetura x86. Evolução dos Microprocessadores com arquitetura x86. Universidade São Judas Tadeu. Introdução à Computação

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

Capítulo 3. This material may not be copied or distributed for commercial purposes without express written permission of the copyright holder.

RISC simples. Aula de Março de

Aritmética Computacional. Prof. Leonardo Barreto Campos 1

Prova G2 Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans .data 0x1E20FFF9 seis palavras da memória de programa

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

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

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

Figura 8: modelo de Von Neumann

Introdução aos Computadores Introdução à Ciência de Computadores Outubro / 16

Objetivos. Tópico 02: Arquitetura do Conjunto de Instruções. Page 1. Estudar as principais características de arquiteturas de conjunto de instruções.

Microcontroladores e Interfaces

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

O Processador: Via de Dados e Controle

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

Questionário 1 Arquitetura e Organização de Computadores

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

Organização de Computadores 1

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Conjunto de Instruções MIPS Parte I

Organização ou MicroArquitectura

UCP: Construindo um Caminho de Dados (Parte I)

MIPS. Prof. Carlos Bazilio

4. Modelo de Programação do DLX Introdução

Transcrição:

Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 2 Processadores RISC Apresentação do processador MIPS

1. Processadores RISC década de 60 introdução de famílias de computadores (ex: IBM 360) distinção entre arquitetura e organização uso de microprogramação arquitetura x organização possível compromisso entre custo e desempenho não é definido unicamente pela arquitetura impacto de uma instrução não é decisivo na implementação microprogramação memória principal: núcleos, grande tempo de acesso memória de controle: semicondutora, barata grandes microprogramas não acrescentavam custo maior desempenho: mover software para microprogramas

Processadores CISC instruções mais complexas facilitar tarefa dos compiladores aumentar desempenho Digital VAX 11/780 303 instruções 16 modos de endereçamento Intel 386 111 instruções 8 modos de endereçamento Motorola 68020 109 instruções 18 modos de endereçamento instruções com comprimento e formato variáveis

Mudanças no contexto a partir da metade da década de 70 memória principal: semicondutores no lugar de núcleos memória principal não era mais 10 vezes mais lenta que memória de controle introdução de memórias cache baratas e rápidas acessos à memória cache tão rápidos quanto à memória de controle efeitos colaterais de conjuntos complexos de instruções tempo de projeto mais longo, mais erros de projeto dificuldade no desenvolvimento de microcódigos com até 400 Kbytes

Mudanças no contexto compiladores utilizando sub-conjuntos da arquitetura difícil utilização de instruções complexas otimização de código tornava possível utilização de instruções mais simples maioria das instruções do conjunto eram pouco utilizadas nas aplicações mais comuns advento de circuitos VLSI e problemas no projeto de processadores em um chip único

Uso de instruções exemplo: uso médio de instruções do 8086 em 3 aplicações assembler MASM, compilador Turbo C, Lotus 1-2-3 Transferência de dados MOV 29 PUSH / POP 12 LEA 3 Controle / desvio JMP 2 LOOP 4 CALL / RET 4 desvios condicionais 10 Aritméticas / lógicas CMP 7 SAL / SHR / RCR 5 INC / DEC 5 ADD 3 OR / XOR 3

Fundamentos RISC idéia lançada no final da década de 70 por pesquisadores da Universidade de Berkeley desenvolver conjunto de instruções pequeno e bem simples máquina com arquitetura bem simples pode ter organização mais eficiente e maior velocidade de operação perspectiva global de aumento de desempenho processador num chip único melhor aproveitamento de recursos escassos ganho na lógica de controle aproveitado no bloco operacional maior número de instruções nos programas compensado por instruções mais rápidas instruções mais curtas transferir para o software ( compilador ) o esforço de otimização do tempo de execução

Ganho na lógica de controle uso de lógica hardwired, e não microprogramada maior velocidade microprocessadores convencionais ocupam até 50% do espaço com bloco de controle processadores RISC: controle ocupa apenas 10% do espaço aumento do número de registradores no espaço ganho diminuição do gargalo de von Neumann maior possibilidade de uso de pipelines homogêneos

Exemplo V1 = V2 + V3 + V4 + V5 Processador RISC V1 a V5 são variáveis em memória instruções ocupam 1 palavra Processador CISC LOAD R2, V2 supondo instruções com 3 endereços, LOAD R3, V3 ocupando 3 palavras ADD R1, R2, R3 LOAD R4, V4 V1 = V2 + V3 ADD R1, R1, R4 V1 = V1 + V4 LOAD R5, V5 V1 = V1 + V5 ADD R1, R1, R5 STORE V1, R1 3 x 3 = 9 palavras 3 x 6 = 18 acessos à memória 8 x 1 = 8 palavras 8 x 1 + 5 x 1 = 13 acessos à memória

Medidas concretas fase de execução da instrução num único ciclo de relógio instruções tão rápidas quanto micro-instruções todas as instruções do mesmo tamanho e com o mesmo formato (ou com poucas variações de formato) simplificar implementação do controle dados imediatos pequenos e deslocamentos pequenos usar modos de endereçamento bem simples e poucos tipos de dados acesso à memória principal apenas através de instruções LOAD e STORE demais instruções fazem operações apenas entre registradores simplificar implementação do controle ( pipeline ) tornar operações aritméticas e lógicas mais rápidas

2. MIPS - Registradores 32 registradores de propósitos gerais de 32 bits $0, $1,, $31 operações inteiras endereçamento $0 tem sempre valor 0 $31 guarda endereço de retorno de sub-rotina 32 registradores de ponto flutuante de 32 bits (precisão simples) $f0, $f1,, $f31 podem ser usados em pares para precisão dupla registradores Hi e Lo para uso em multiplicação e divisão

3. MIPS - Tipos de dados dados inteiros disponíveis em instruções load e store bytes meias-palavras de 16 bits palavras de 32 bits dados inteiros disponíveis em instruções aritméticas e lógicas meias-palavras de 16 bits (estendidos para 32 bits) palavras de 32 bits dados em ponto flutuante precisão simples em 32 bits (expoente: 8 bits, magnitude: 24 bits) precisão dupla em 64 bits (expoente: 11 bits, magnitude: 53 bits)

4. MIPS - Modos de endereçamento acessos à memória devem ser alinhados dados de 32 bits devem estar em endereços múltiplos de 4 dados de 16 bits devem estar em endereços múltiplos de 2 modo registrador para instruções aritméticas e lógicas: dado está em registrador para instruções de desvio incondicional: endereço está em registrador modo base e deslocamento para instruções load e store base é registrador inteiro de 32 bits deslocamento de 16 bits contido na própria instrução modo relativo ao PC para instruções de branch condicional endereço é a soma do PC com deslocamento contido na instrução deslocamento é dado em palavras e precisa ser multiplicado por 4

Modos de endereçamento modo imediato para instruções aritméticas e lógicas dado imediato de 16 bits contido na própria instrução dado é estendido para 32 bits extensão com sinal nas instruções aritméticas extensão sem sinal nas instruções lógicas para que se possa especificar constantes de 32 bits instrução lui (load upper immediate) carrega 16 bits imediatos na parte superior do registrador parte inferior do registrador é zerada instrução seguinte precisa fazer soma imediata do registrador com 16 bits da parte inferior

Modos de endereçamento modo absoluto para instruções de desvio incondicional instrução tem campo com endereço de palavra com 26 bits endereço de byte obtido com dois bits menos significativos iguais a 0 4 bits mais significativos obtidos do PC só permite desvios dentro de uma área de 256 Mbytes PC 0 0 4 bits 26 bits

5. MIPS - Formatos das instruções todas as instruções têm 32 bits todas têm op-code de 6 bits modo de endereçamento é codificado juntamente com o op-code instruções de tipo I loads, stores operações aritméticas e lógicas com operando imediato desvios condicionais ( branches ) desvios incondicionais para endereço em registrador 6 5 5 16 op-code rs rt oper. imed. ou deslocam.

Formatos das instruções instruções de tipo R instruções aritméticas e lógicas instruções de movimentação entre registradores shamt (shift amount) é usado em instruções de deslocamento funct é a operação a ser feita pela ALU 6 5 5 5 5 6 op-code rs rt rd shamt funct instruções de tipo J desvios com endereçamento absoluto chamada de sub-rotina 6 26 op-code endereço

6. MIPS - Tipos de instruções instruções load / store são sempre tipo I qualquer registrador de propósitos gerais pode ser carregado ou armazenado da / na memória pode-se carregar ou armazenar bytes, meias palavras, palavras endereçamento sempre por base e deslocamento lb, lh, lw load byte, halfword, word sinal é estendido em lb e lh lbu, lhu load byte, halfword sem extensão de sinal sb, sh, sw store byte, halfword, word 6 5 5 16 op-code rs (base) rt deslocamento

Instruções aritméticas e lógicas operação entre 2 registradores, resultado num terceiro registrador tipo R add, sub, and, or, nor, xor comparação slt compara dois registradores e coloca valor 1 ou 0 em registrador destino 6 5 5 op-code rs rt 5 rd 5 6 0 funct existem versões com operando imediato, de tipo I addi, andi, ori, xori, slti 6 5 5 16 op-code rs rt operando imediato

Instruções aritméticas e lógicas $0 usado para sintetizar operações populares carga de constante = soma imediata onde $0 é um dos operandos addi $5, $0, 10 6 5 5 16 op-code rs rt operando imediato mover de registrador para registrador = soma com $0 add $6, $2, $0 6 5 5 op-code rs rt 5 5 6 rd 0 funct

Instruções aritméticas e lógicas instruções de deslocamento variável tipo R sllv, srlv shift lógico (entra 0 na extremidade) srav shift aritmético (duplica sinal) desloca registrador rt pela distância especificada no registrador rs e coloca resultado no registrador rd instruções de deslocamento constante tipo R sll, sra, srl desloca registrador rt pela distância especificada no campo shamt e coloca resultado no registrador rd 6 5 5 op-code rs rt 5 5 6 rd shamt funct

Instruções aritméticas e lógicas instrução de multiplicação: mul multiplica registradores rs e rt resultado colocado em hi (32 msb) e lo (32 lsb) instrução de divisão: div divide registrador rs pelo registrador rt quociente colocado em lo resto colocado em hi 6 5 5 op-code rs rt instruções de movimentação permitem transferir dados entre hi e lo e os demais registradores mfhi Rd, mflo Rd mthi Rs, mtlo Rs 10 0 6 funct

Instruções de desvio incondicional instrução j tipo J endereço destino = concatenação dos 4 msb do PC com endereço imediato de 28 bits 6 op-code 26 endereço instrução jr tipo I: endereço destino contido em registrador também serve para retornar de sub-rotina 6 5 15 6 op-code rs 0 8

Instruções de desvio incondicional instrução jal (jump and link) tipo J desvio para sub-rotina, endereço especificado na instrução endereço de retorno salvo em $31 6 op-code 26 endereço instrução jalr (jump and link register) tipo R desvio para sub-rotina, endereço especificado em rs endereço de retorno salvo em rd 6 5 5 5 5 6 op-code rs 0 rd 0 funct

Instruções de desvio condicional são sempre tipo I endereço destino = soma do PC com offset imediato de 16 bits instruções que testam um único registrador bgez, bgtz, blez, bltz desvia se registrador é, >,, < zero bgezal, bltzal como bgez e bltz, mas salva de endereço de retorno em $31 instruções que comparam dois registradores beq, bne desvia se registradores são iguais (ou diferentes) 6 5 5 16 op-code rs rt offset

Instruções de ponto flutuante mover operandos de precisão simples ou dupla entre registradores mov.d, mov.s soma, subtração, negação, multiplicação, divisão em precisão simples e dupla add.s, sub.s, neg.s, mul.s, div.s add.d, sub.d, neg.d, mul.d, div.d comparações em precisão simples e dupla c.eq.s, c.le.s, c.lt.s, c.eq.d, c.le.d, c.lt.d, conversão para ponto flutuante de precisão simples (ou dupla) cvt.s.d, cvt.s.w converter FP double (ou inteiro) para FP single cvt.d.s, cvt.d.w converter FP single (ou inteiro) para FP double conversão de ponto flutuante para inteiro cvt.w.s, cvt.w.d converter FP double (ou single) para inteiro