Arquitetura de Computadores II - Seja Bem vindo(a) ao ...fuber/Arquitetura_II/ArqII-RISC.pdf ·...
Transcript of Arquitetura de Computadores II - Seja Bem vindo(a) ao ...fuber/Arquitetura_II/ArqII-RISC.pdf ·...
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Arquitetura de Computadores II
Prof. Flávio Rogério Uber
Universidade Estadual de MaringáCentro de TecnologiaDepartamento de Informática
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Informações Úteis
Professor: Flávio Rogério Uber Bloco C-56 – Sala 204 E-mail: [email protected]
Critério de Avaliação:− 4 avaliações:
70% Prova 30% Trabalho
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Arquitetura de Computadores II
Arquiteturas Avançadas– Superescalares– RISC x CISC– Paralelismo
Simuladores
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Inovações
Conceito de Família (1964) Separa a arquitetura de uma máquina de sua
implementação. Uma mesma arquitetura pode ter implementações diferentes.
Unidade de Controle microprogramada Fornece suporte para o conceito de família
Memória cache (1968) Melhora do desempenho
Pipeline Introduz o paralelismo
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Inovações
Múltiplos processadores Arquitetura RISC
Importância dos registradores de propósito geral e a otimização do seu uso
Conjunto de instruções simples Otimização do pipeline
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Comparação RISC x CISC
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Características
Estudos sobre padrões de execução das instruções
Objetivo: tornar a arquitetura mais simples Aspectos:–Operações efetuadas–Operandos usados–Sequência da execução
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Execução de Instruções
Linguagens de alto nível causaram “diferenças semânticas”, portanto:
– Ineficiência da execução– Tamanho excessivo no código de máquina– Complexidade de compiladores
Em contrapartida os projetos das arquiteturas passaram a contemplar:
– Grande conjunto de instruções– Dúzias de modos de endereçamento– Instruções implementadas no hardware
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Operações
Predominância de atribuição Alto índice de instruções condicionais (if / loop) E o tempo de execução?
Comando Fortran (%) C (%) Pascal (%)
Atribuição 51 38 45
if 10 43 29
call 5 12 15
loop 9 3 5
goto 9 3 0
outros 16 1 6
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Operações
Frequência relativa de ocorrência das instruções Chamadas/retornos consome mais tempo
Ocorrência Dinâmica Instr. Máquina Refer. Memória
Comando Pascal (%) C (%) Pascal C Pascal C
Atribuição 45 38 13 13 14 15
if 29 43 11 21 7 13
call 15 12 31 33 44 45
loop 5 3 42 34 33 26
goto - 3 - - - -
outros 6 1 3 1 2 1
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Operandos
Maioria de ocorrência de variáveis escalares simples
Um dos estudos concluiu que cada instrução referencia em média 0,5 operandos e 1,4 registradores
Pascal (%) C (%) Média (%)
Constante Inteira 16 23 20
Variável Escalar 58 53 55
Array/Estrutura 26 24 25
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Chamadas de Procedimentos
Dois aspectos importantes: número de parâmetros e a profundidade de aninhamento
98% dos procedimentos utilizam menos de 6 argumentos
É raro haver uma grande sequência de chamadas de procedimentos consecutivas
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Conclusões
Uma arquitetura com um conjunto de instruções parecida com as linguagens de programação de alto nível não é eficaz
Um grande número de registradores otimiza a referência aos operandos (grande proporção de atribuições)
É preciso cuidado no projeto do pipeline de instruções em função da grande quantidade de chamadas e desvios
É indicado um conjunto de instruções simplificado (veremos adiante)
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Banco de Registradores
Grande quantidade de atribuição Registradores tem acesso rápido aos dados Duas abordagens:– Software: compiladores alocam registradores
para dados mais usados– Hardware: usar mais registradores
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Banco de Registradores
Maioria das referências é para operadores locais– O que é local em se tratando de chamadas
de procedimentos? Outros resultados dos estudos:– Há pouca passagem de parâmetros– Não há muita profundidade
Janela de registradores– Cada procedimento é direcionado a usar um
conjunto de registradores
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Banco de Registradores
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Banco de Registradores
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Banco de Registradores
Variáveis Globais– Incorporação de um conjunto global de
registradores– Problemas:• Hardware precisa acomodar a divisão de
registradores• O compilador precisa decidir que variáveis
globais serão atribuídas aos registradores
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Banco de Registradores
Para pequenas quantidades de registradores Necessidade de otimizar seu uso Coloração em grafos
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Exercícios
1)Explique de forma sucinta o funcionamento da janela de registradores.
2)Explique porque não há necessidade de salvar os registradores temporários.
3)Explique de forma sucinta o funcionamento da coloração de grafos para otimizar o uso de registradores.
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Pipeline
RISC: maioria de instruções reg-reg I: busca da instrução E: Execução
Para carregar e armazenar: I: Busca da instrução E: execução. Calcular endereço de memória D: Memória. Operação reg-mem ou mem-reg
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Pipeline
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Pipeline
RISC Projeto de 3 ou 4 estágios é mais fácil ser
alcançado Simplicidade e regularidade das instruções
Dependências e desvios reduzem a taxa de execução
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Otimização de Pipeline
Técnicas de reorganização de código Desvio Atrasado: otimização através da
inversão na execução de instruções
Endereço Desvio Normal Desvio Atrasado Desvio 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
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Otimização de Pipeline
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Otimização de Pipeline
Leitura Atrasada: técnica semelhante. Instruções LOAD podem ser reposicionadas para evitar a ociosidade até o término da leitura
Laço Desenrolado: Replicar o corpo de um laço em um número de vezes chamado de fator de desenrolar (u) e faz a iteração pelo passo “u” (e não pelo passo 1)
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Otimização de Pipeline
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Comparação RISC/CISC
Unidade deControle
ControleMicroprogramado
Caminho p/ dadose instruções
Cache
Memória Principal
Unidade deControle
Hardwired
Cache deInstruções
Caminho p/ dados
Cache de Dados
Memória Principal
Unid. Controle CISC Unid. Controle RISC
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Comparação RISC/CISC
MemóriaPrincipal
CPU
Unid.Controle
Unid. Pto.Flutuante
ULA
MemóriaPrincipal
CPU
Unid.Controle
Co-Processdor
ULA
CPU CISC CPU RISC
UE
M/D
IN– P
rof. Flá
vio
Ub
er
RISC CISC
1 Instruções simples levando 1 ciclo
Instruções complexas levando múltiplos ciclos
2 Apenas LOADs/STOREs referenciam a memória
Qualquer Instrução pode referenciar a memória
3 Altamente pipelined Não tem pipeline, ou tem pouco
4 Instruções executadas pelo hardware
Instruções executadas pelo microprograma
5 Instruções com formato fixo Instruções de vários formatos
6 Poucas instruções e modos Muitas instruções e modos
7 A complexidade está no compilador
A complexidade está no microprograma
8 Múltiplos conjuntos de registradores
Conjunto único de registradores
UE
M/D
IN– P
rof. Flá
vio
Ub
er
Exercícios
1)Descreva a diferença das máquinas RISC e CISC no que se refere a operações de ponto flutuante
2)Fale sobre as diferenças básicas entre máquinas RISC e CISC e como essas diferenças foram minimizadas ao longo do tempo
3)Explique as vantagens e desvantagens da microprogramação existente em máquinas CISC e ausentes nas RISC