• Nenhum resultado encontrado

Processadores RISC

N/A
N/A
Protected

Academic year: 2022

Share "Processadores RISC"

Copied!
26
0
0

Texto

(1)

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

(2)

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

(3)

Processadores CISC

instruções mais complexas

facilitar tarefa dos compiladores aumentar desempenho

Digital VAX 11/780303 instruções

16 modos de endereçamento

Intel 386

111 instruções

8 modos de endereçamento

Motorola 68020109 instruções

18 modos de endereçamento

instruções com comprimento e formato variáveis

(4)

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

(5)

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

(6)

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

Aritméticas / lógicas

CMP 7

SAL / SHR / RCR 5

INC / DEC 5

ADD 3

OR / XOR 3

Controle / desvio

JMP 2

LOOP 4

CALL / RET 4

desvios condicionais 10

(7)

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 porinstruções mais rápidas

instruções mais curtas

transferir para o software ( compilador ) o esforço de otimização do tempo de execução

(8)

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

(9)

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

(10)

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

(11)

2. MIPS - Registradores

32 registradores de propósitos gerais de 32 bits

$0, $1, …, $31

operações inteirasendereç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

(12)

3. MIPS - Tipos de dados

dados inteiros disponíveis em instruções load e store

bytes

meias-palavras de 16 bitspalavras 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)

(13)

4. MIPS - Modos de endereçamento

acessos à memória devem ser alinhados

dados de 32 bits devem estar em endereços múltiplos de 4dados 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çãodeslocamento é dado em palavras e precisa ser multiplicado por 4

(14)

Modos de endereçamento

modo imediato

para instruções aritméticas e lógicas

dado imediato de 16 bits contido na própria instruçãodado é 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 registradorparte inferior do registrador é zerada

instrução seguinte precisa fazer soma imediata do registrador com 16 bits da parte inferior

(15)

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 04 bits mais significativos obtidos do PC

só permite desvios dentro de uma área de 256 Mbytes

PC

0 0 26 bits

4 bits

(16)

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 imediatodesvios condicionais (“branches”)

desvios incondicionais para endereço em registrador

op-code rs

6 5 5 16

rt oper. imed. ou deslocam.

(17)

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

instruções de tipo J

desvios com endereçamento absolutochamada de sub-rotina

op-code rs rt

6 5 5

rd

5

op-code

6

endereço

26

shamt funct

5 6

(18)

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, palavrasendereç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

(19)

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

existem versões com operando imediato, de tipo I

addi, andi, ori, xori, slti

op-code rs rt

6 5 5

rd

5

0 funct

5 6

op-code rs rt operando imediato

6 5 5 16

(20)

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

mover de registrador para registrador = soma com $0

add $6, $2, $0

op-code

op-code

rs

6 5 5 16

rt operando imediato

rs

6 5 5

rt rd

5 5 6

0 funct

(21)

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

op-code rs

6 5 5

rt rd

5 5 6

shamt funct

(22)

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 rtquociente colocado em lo

resto colocado em hi

instruções de movimentação permitem transferir dados entre hi e lo e os demais registradores

mfhi Rd, mflo Rdmthi Rs, mtlo Rs

op-code rs rt

6 5 5

0

10

funct

6

(23)

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

instrução jr

tipo I: endereço destino contido em registradortambém serve para retornar de sub-rotina

op-code

6

endereço

26

op-code rs 8

6 5 15

0

6

(24)

Instruções de desvio incondicional

instrução jal (jump and link)

tipo J

desvio para sub-rotina, endereço especificado na instruçãoendereço de retorno salvo em $31

instrução jalr (jump and link register)

tipo R

desvio para sub-rotina, endereço especificado em rsendereço de retorno salvo em rd

op-code

6

endereço

26

6 5 5 5 5 6

(25)

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)

op-code rs

6 5 5 16

rt offset

(26)

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.sadd.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 singlecvt.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

Referências

Documentos relacionados

2 m alt.; ramos densamente vilosos, tricomas 0,5–1 mm compr., não retrorsos Folhas 10–13 × 4–5,5 cm, ovado-elípticas, base assimétrica, um lado 1–3 mm mais curto em

 INTEGRAÇÃO: Estabelecimento de relações entre as partes interessadas nas atividades de planejamento, desenvolvimento e execução dos projetos e ações de interesse comum,

Este relatório descreve os trabalhos de pesquisa para avaliar a utilização da técnica de emissão acústica na identificação de descargas parciais em laboratório e no

Embora o QFCA forneça estimativas confiáveis do consumo de nutrientes disponíveis para uso em estudos epidemiológicos, fontes de erro incluem a habilidade dos

Os antigos celtas e provavelmente outros povos da Idade do Ferro da Europa temperada (não mediterrânica) acreditavam em uma forma de orientação espacial

a) Legalidade, individualidade, moralidade, pessoalidade e eficiência. É o conjunto de órgãos constitucionais responsáveis pela função política do Estado, ou seja,

Está chegando a hora de, democraticamente, elegermos um estadista para presidir o Estado brasileiro. O Brasil precisa, urgentemente, de um presidente competente e honrado que conduza

Estes sistemas foram amplamente disseminados e adotados entre as empresas na década de 1990, invertendo a lógica dominante existente no passado no desenvolvimento