arquitetura de computadores - máquinas risc · •o apontador de janela atual e o apontador de...

40
Arquitetura de Computadores - Arquitetura RISC por Helcio Wagner da Silva

Upload: buianh

Post on 09-Nov-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Arquitetura de Computadores- Arquitetura RISC

por

Helcio Wagner da Silva

Page 2: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Introdução

• RISC = Reduced Instruction Set Computer

• Elementos básicos:– Grande número de registradores de propósito

geral ou uso de tecnologias de compilação naotimização do uso de registradores

– Conjunto limitado (reduzido) de instruçõessimples

– Enfoque na utilização de pipeline de instruções

• Arquitetura oposta à CISC (ComplexInstruction Set Computer)

2

Page 3: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Introdução

CARACTERÍSTICAProcessador

80486 (Intel, CISC) SPARC (Sun, RISC)

Ano de desenvolvimento 1989 1987

Número de instruções 235 69

Tamanho de uma instrução (Bytes)

1-11 4

Modos de endereçamento 11 1

Número de registradores de propósito geral

8 40-520

3

Page 4: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Características da Execução de Instruções

• Com as linguagens de programação de baixonível, o custo da produção de SW era bem alto

• Além disso, falhas de SW eram inerentementemais comuns que falhas de HW

• Esse panorama mudou com o surgimento daslinguagens de programação de alto nível

– Elas permitem ao programador abstrair osdetalhes da máquina e expressar algoritmos deforma mais concisa

4

Page 5: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Características da Execução de Instruções

• O preço pago pela adoção das linguagens de altonível é o gap semântico– Há uma enorme distância entre as operações

disponíveis nas linguagens de alto nível e as operaçõesdisponibilizadas pelo HW da máquina

• Os projetistas buscaram arquiteturas quediminuíssem esse gap. Elas incluíam:– Grandes conjuntos de instruções

– Dúzias de modos de endereçamento

– Implementação de diversos comandos de linguagensde alto nível no HW da máquina

5

Page 6: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Características da Execução de Instruções

• Outros pesquisadores tomaram o caminhoinverso: simplificar o conjunto de instruções

• Eles tomaram com base estudos quedeterminavam as características e os padrõesde execução de instruções de máquinageradas por programas de alto nível

• Os aspectos examinados foram:– Operações realizadas

– Operandos usados

– Chamadas de procedimento6

Page 7: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Características da Execução de Instruções – operações realizadas

Ocorrência dinâmica

Ponderada por instrução de máquina

Ponderada por referência à memória

Pascal C Pascal C Pascal C

Comando de atribuição 45 38 13 13 14 15

Comando de repetição 5 3 42 32 33 26

Chamada de proced. 15 12 31 33 44 45

Comando condicional 29 43 11 21 7 13

Desvio incondicional - 3 - - - -

Outros 6 1 3 1 2 1

7

São executados maisfreqüentemente

Consomem mais tempona execução

Page 8: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Características da Execução de Instruções – operandos

• A maioria das referências é para variáveisescalares - e locais

– Referências a vetores ou registros incluemreferências anteriores a seus apontadores, quesão, também, variáveis escalares locais

8

Pascal C Média

Constante inteira 16 23 20

Variável escalar 58 53 55

Vetor/registro 26 24 25

Page 9: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Características da Execução de Instruções –chamadas de procedimentos

• Aspectos significativos:

– Número de parâmetros e variáveis utilizados

– Nível de aninhamento de procedimentos

• Normalmente, o programa permanece limitado a uma janela de profundidade limitada

9

% de execução dechamadas de proc. com:

Compiladores, interpretadores e editores de texto

Pequenos programas não numéricos

> 3 argumentos 0-7 % 0-5 %

> 5 argumentos 0-3 % 0 %

> 8 argumentos e variáveis escalares locais

1-20 % 0-6 %

> 12 argumentos e variáveis escalares locais

1-6 % 0-3 %

Page 10: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Características da Execução de Instruções – resumo das conclusões

• Comandos de atribuição (movimentação dedados) são muito utilizados

• Esses dados são, em sua maioria, variáveisescalares locais

• Abordagens visando melhoria do desempenho– Abordagem baseada em HW

• Banco de Registradores

– Abordagem baseada em SW• Técnicas de compilação que visam otimizar a utilização

de registradores

10

Page 11: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Banco de Registradores

• Registradores são organizados em janelas para diminuir o acesso à memória

• Cada janela é dedicada a uma chamada deprocedimento

• Tipos de registradores em uma janela– Registradores de parâmetros

– Registradores locais

– Registradores temporários11

Registradores de parâmetros

Registradores locais

Registradores temporários Janela i

Page 12: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Banco de Registradores

• Os registradores temporários armazenam osparâmetros passados para o procedimento

• Os registradores locais contêm as variáveis locais aoprocedimento

• Os registradores temporários são usados para trocarresultados/parâmetros com o procedimento seguinte

12

Registradores de parâmetros

Registradores locais

Registradores temporários

Registradores de parâmetros

Registradores locais

Registradores temporários

Janela i

Janela i+1Registradores de

parâmetros

Page 13: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

13

• Nível de aninhamento é igual a 4(A → B, B → C, C → D)

• D é procedimento ativo atualmente• O Apontador de janela atual identifica a

Janela atualmente ativa (j3)

Page 14: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

14

• Quando D → E, o Apontador de janela atual é movido de j3 para j4 para mostrar a janela atualmente ativa

Page 15: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

15

• Se E → F, o Apontador de janela atual é movido de j4 para j5 para mostrar a janela atualmente ativa

• O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5)• O problema é que os registradores temporários de F serão gravados sobre os registradores de parâmetro de A• Sob estas circunstâncias, ocorre uma interrupção

Page 16: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

16

• Durante a interrupção, parte doconteúdo dos registradores de A é armazenado na memória• O Apontador de janela salva é incrementado; ele aponta agora para j0• A chamada ao procedimento F transcorrenormalmente

Page 17: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

17

• Retorno dos procedimentos (A ← B ← C ← D ← E ← F)

• O Apontador de janela atual Identifica a mesma janela que oApontador de janela salva (j0)

• Sob estas circunstâncias, ocorre umainterrupção

Page 18: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

18

• Durante a interrupção, o conteúdodos registradores de A é restauradoda memória

• O apontador de janela salva é decrementado;ele identifica agora a janela j5

Page 19: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Variáveis Globais

• Usadas por mais de um procedimento

• Duas alternativas para armazenamento

– As variáveis globais são armazenadas na memória

• Abordagem simples

• Ineficiente para variáveis usadas com freqüência

– Variáveis globais são armazenadas em registradoresespecíficos no µP

• Abordagem mais eficiente

• Mais complexa que a anterior

– HW mais complexo; mecanismos de endereçamento diferentes

– Compilador deve decidir quais variáveis devem ser armazenadasnos registradores 19

Page 20: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Banco de Registradores x Memória Cache

Banco de Registradores Memória Cache

Todas as variáveis escalares locais Variáveis escalares locais usadasrecentemente

Variáveis individuais Blocos de memória

Variáveis globais designadas pelo compilador

Variáveis globais usadas recentemente

Operações de salvamento/restauração baseadas na profundidade de

aninhamento de procedimentos

Operações de salvamento/restauração baseadas no algoritmo de substituição

da cache

Endereçamento de registrador Endereçamento de memória

20

Page 21: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Banco de Registradores x Memória Cache

• Banco de registradores baseado em janelas

– Referência simples a um registrador

21

R

decodificadorW#

instrução registradores

Dados

Page 22: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Banco de Registradores x Memória Cache

• Memória cache

– É necessário um endereço de memória completo

22

A

instrução

ComparaçãoDados

Page 23: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Otimização do Uso de Registradores por Compiladores

• Suposições:– Há apenas um pequeno conjunto de registradores

– O objetivo do compilador é armazenar os operandosusados mais freqüentemente nesses registradores,minimizando o acesso à memória

• Cada operando candidato a residir em um dessesregistradores é associado a um registrador virtual

• O problema é definir quais destes(potencialmente) vários registradores virtuaisdevem ser associados aos (relativamente) poucosregistradores reais

23

Page 24: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Otimização do Uso de Registradores por Compiladores

• Exemplo: como mapear seis registradores virtuais(A, B, C, D, E e F) para um conjunto de trêsregistradores reais (R1, R2 e R3)?

• Uma das técnicas mais comumente usadas porcompiladores RISC é a Coloração de Grafos

• Nessa técnica, os nós do grafo são osregistradores virtuais, que devem ser coloridoscom um número de cores igual ao número deregistradores reais

24

Page 25: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Otimização do Uso de Registradores por Compiladores

• Coloração de Grafos– 1º Passo:

• Análise do programa a) definição dos registradores

virtuais

b) Definição da seqüência de intervalos de uso ativo

– 2º Passo:• Construção do grafo

a) Se dois registradores simbólicos estão ativos durante um mesmo trecho de programa, eles são unidos por uma aresta

b) Atribuir 3 cores aos nós de forma que nós adjacentes tenham cores diferentes

25

A B

C D E F

A B C D E Ft

A B

C D E

Page 26: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Otimização do Uso de Registradores por Compiladores

• Coloração de Grafos

– Conclusões:• Os registradores virtuais

de mesma cor podem ser associados ao mesmo registrador real

• O registrador virtual F, por não poder ser colorido, tem seu conteúdo armazenado na memória

26

A B

C D E F

A B C D E Ft

A B

C D E

R1 R2 R3

Page 27: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Características de Arquiteturas RISC

• Uma instrução por ciclo de máquina– Um ciclo de máquina é o tempo requerido para buscar

dois operandos em registradores, executar umaoperação da ULA e armazenar o resultado em umregistrador

• Operações de registrador para registrador– Com operações simples de CARGA e

ARMAZENAMENTO

• Modos de endereçamento simples

• Formatos de instrução simples

27

Page 28: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Operações de Registrador para Registrador

• Opostas conceitualmente às operações queenvolvem somente a memória

• Parâmetros usados para comparação

– I: tamanho das instruções executadas

– D: tamanho dos dados usados

– M: tráfego total da memória

• M = I + D

28

Page 29: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Operações de Registrador para Registrador

• À princípio, abordagem desvantajosa

29

Add B C A

8 16 16 16

Load BrB

Load rC C

Add rA rB rC

Store rA C

8 4 16

A ← B + C

De memória para memóriaI1 = 56, D1 = 96, M1 = 152

Entre registrador e memóriaI2 = 104, D2 = 96, M2 = 200

(M2 > M1)

Page 30: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Operações de Registrador para Registrador

• Com base em resultado anterior, foi sugeridoque as (então) futuras arquiteturas nãoincluíssem registradores!

• No entanto, considerando-se que boa partedos operandos não precisam ser armazenadosna memória durante a execução do programa,a abordagem mostra-se vantajosa

30

Page 31: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Operações de Registrador para Registrador

31

Add B C A

8 16 16 16

De memória para memóriaI1 = 168, D1 = 288, M1 = 456

Add A C B

Sub B D D

Add rA rB rC

Entre registrador e memóriaI2 = 60, D2 = 0, M2 = 0

Add rB rA rC

Sub rD rD rB

A ← B + CB ← A + CD ← D - B

(M2 < M1)

8 4 4 4

Page 32: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Pipeline de Instruções RISC

• Fases de um ciclo de instrução:– I: busca da instrução

– E: execução da instrução• Realiza uma operação da ULA, com entrada e saída em

registradores

• A execução de instruções de carga earmazenamento requer três fases:– I: busca da instrução

– E: cálculo do endereço da memória

– D: transferência de dados entre memória e registrador

32

Page 33: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Execução Seqüencial

33

Load rA ← M I E D

Load rB ← M I E D

Add rC ← rA + rB I E

Store M ← rC I E D

Branch XI E

Page 34: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Pipeline com Dois Caminhos

34

Load rA ← M I E D

Load rB ← M I E D

Add rC ← rA + rB I E

Store M ← rC I E D

Branch XI E

NOOPI E

• Apenas um acesso à memória por estágio é permitido

Page 35: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Pipeline com Três Caminhos

35

Load rA ← M I E D

Load rB ← M I E D

Add rC ← rA + rB I E

Store M ← rC I E D

Branch XI E

NOOPI E

• São permitidos dois acessos à memória por estágioNOOP I E

Page 36: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Pipeline com Quatro Caminhos

36

Load rA ← M I E1 D

Load rB ← M

Add rC ← rA + rB

Store M ← rC

Branch X

NOOP

• São permitidos dois acessos à memória por estágio

• Estágio E é dividido em:- E1: leitura do banco de

registradores- E2: operação da ULA e escrita

em registrador

E2

I E1 DE2

I E1 E2

I E1 DE2

I E1 E2

I E1 E2

NOOP I E1 E2

NOOP I E1 E2

NOOP I E1 E2

Page 37: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Otimização do Pipeline

37

Endereço Desvio normal Desvio atrasadoDesvio atrasado

otimizado

100 LOAD X,rA LOAD X,rA LOAD X,rA

101 ADD 1,rA ADD 1,rA JUMP 105

102 JUMP 105 JUMP 106 ADD 1,rA

103 ADD rA,rB NOOP ADD rA,rB

104 SUB rC,rB ADD rA,rB SUB rC,rB

105 STORE rA,Z SUB rC,rB STORE rA,Z

106 STORE rA,Z

Page 38: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Otimização do Pipeline

38

100 LOAD X,rA I E D

101 ADD 1,rA I E

102 JUMP 106 I E

103 NOOP I E

106 STORE rA,ZI E D

100 LOAD X,rA I E D

101 JUMP 105 I E

102 ADD 1,rA I E

105 STORE rA,Z I E D

Desvio atrasado - Inserção de instrução NOOP

Desvio atrasado otimizado- Inversão de instruções

Page 39: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Controvérsia RISC x CISC

• Critérios de avaliação da arquitetura RISC

– Quantitativos

• Comparação de tamanho e velocidade entre programasexecutáveis gerados em máquinas RISC e CISC

– Qualitativos

• Exame de parâmetros tais como suporte a linguagensde alto nível e uso ótimo da VLSI

• Entusiastas da arquitetura CISC refutaram oscritérios apresentados acima

39

Page 40: Arquitetura de Computadores - Máquinas RISC · •O Apontador de janela atual e o Apontador de Janela salva apontam para a mesma janela (j5) •O problema é que os registradores

Controvérsia RISC x CISC

• Alguns contra-argumentos apresentados

– Não há um conjunto definitivos de programas a seremutilizados para teste

– É difícil distinguir os efeitos gerados pelo HW daquelesgerados pela maneira como o compilador foi escrito

• Hoje, tem-se a convergência entre RISC e CISC

– Densidade de chip crescente faz com que os μP fiquemmais complexos (característica CISC)

– Demanda por melhor desempenho faz com que haja umaumento do número de registradores de uso geral e naotimização do pipeline de instruções (característica RISC)

40