Buscar

IAC5 - Desempenho 1 - Arquiteturas RISC e CISC

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

06/04/2020 1
Requisitos para 
Alto Desempenho
RISC x CISC
2
Requisitos para Alto Desempenho
• Arquiteturas RISC X CISC
• Histórico
• Arquitetura CISC
• Arquitetura RISC
• Projeto com foco no desempenho 
• Arquitetura RISC x CISC
• Alto desempenho da arquitetura RISC
3
Arquitetura CISC
 Primeiros computadores digitais: arquitetura simples, poucas 
instruções e um ou dois modos de endereçamento.
 Em meados da década de 60 surgiu o IBM/360 que trouxe 
como novidade instruções mais complexas e completes, 
programáveis (instruções eram de fato microprogramas).
 Isso ocorreu devido ao surgimento de novas linguagens de 
programação, com estruturas mais elaboradas, usando 
instruções do tipo: IF_ELSE, WHILE, CASE, … mapeadas 
através das instruções de máquina MOVE, ADD, JMP, JZ, 
JNZ, … com menor expressividade.
 Essa diferença foi chamada de “gap semântico”.
 A solução foi elevar o nível da linguagem de máquina através 
da microprogramação, incorporando novos modos de 
endereçamento.
 Solução CISC - Complex Instruction Set Computers
4
Arquitetura CISC
Nível de Linguagem de Montagem
(Assembly)
Nível de Linguagem de Programação
Orientada a Problemas
Nível de Sistema Operacional
Nível de Máquina
Nível de Microprogramação
Nível de Lógica Digital
Nível 0
Nível 1
Nível 2
Nível 3
Nível 4
Nível 5
Execução
Hardware
Interpretação
Microprograma
Interpretação
Sistema Operacional
Tradução
Montador
Tradução
Compilador
Níveis das Instruções:
5
Arquitetura RISC
 À medida que a linguagem de máquina foi ficando mais 
complexa os microprogramas ficaram maiores e mais lentos.
 Avanços na área de desenvolvimento de software 
possibilitaram o desenvolvimento de compiladores capazes 
de gerar microcódigos eficientes.
 Surgiram as máquinas com instruções simples: um único 
formato de instrução, poucos modos de endereçamento.
 Adoção da técnica denominada “pipeline” onde os passos 
da busca e da execução das instruções são feitos em 
paralelo.
 Solução RISC – Reduced Instruction Set Computers
Projeto com foco no Desempenho
 As técnicas usadas para aumentar a 
velocidade de processamento do 
microprocessador são:
 Execução em pipeline
 Predição de desvio
 Execução superescalar
 Análise de fluxo de dados
 Execução especulativa
7
• Arquitetura de Harvard
• É uma arquitetura onde a leitura de instruções e de alguns 
tipos de operandos pode ser feita ao mesmo tempo em que 
executa instruções. 
• Enquanto uma instrução está sendo executada, a seguinte 
está sendo lida. 
• A busca e a execução das instruções ocorrem em paralelo.
• Esse processo é conhecido como pipelining. 
Ref: https://pt.wikipedia.org/wiki/Arquitetura_Harvard
Projeto com foco no Desempenho
https://pt.wikipedia.org/wiki/Arquitetura_Harvard
 Execução em pipeline
 A execução de uma instrução envolve vários estágios, 
como:
o Busca da instrução na memória;
o Decodificação das diversas partes do código de 
operação (opcode);
o Busca de operandos na memória;
o Realização de cálculos pertinentes à instrução;
 Cada estágio envolve diferentes ciclos de máquina
 O pipeline possibilita que um processador trabalhe 
simultaneamente em diversas instruções ao executar um 
estágio diferente de cada instrução ao mesmo tempo.
Projeto com foco no Desempenho
 Exemplo de Pipeline de 5 estágios:
o Estágio 1 - Busca da instrução na memória;
o Estágio 2 - Decodificação das diversas partes do código de 
operação (opcode);
o Estágio 3 - Busca de operandos na memória;
o Estágio 4 - Realização de cálculos pertinentes à instrução;
o Estágio 5 – Escrita de resultados
 Funcionamento:
Projeto com foco no Desempenho
Estágio 1 instrução1 instrução2 instrução3 instrução4 instrução5
Estágio 2 instrução1 instrução2 instrução3 instrução4
Estágio 3 instrução1 instrução2 instrução3
Estágio 4 instrução1 instrução2
Estágio 5 instrução1
 Predição de desvio
 O processador antecipa o código de instrução 
buscado a partir da memória e prediz quais 
desvios ou grupos de instruções provavelmente 
serão processadas em seguida.
 Se o processador prediz corretamente a maior 
parte do tempo, ele pode antecipar a busca das 
instruções corretas e agrupá-las, de modo a 
mantê-lo ocupado com a execução dos 
programas.
 A predição de desvio potencialmente aumenta a 
quantidade de trabalho do processador.
Projeto com foco no Desempenho
 Conflitos em predição de desvio
 Dependências estruturais – relacionadas ao conflito de 
acesso a recursos comuns. Solução: uma instrução espera a 
outra executar.
 Dependência de dados – uma instrução depende de 
resultados de outra que ainda está em estágio anterior no 
pipeline. Solução: procurar antecipar a obtenção do 
operando que falta.
 Dependências de controle – tomada de decisão com base no 
resultado de uma instrução enquanto outras estão sendo 
executadas. Estão relacionadas a desvios condicionais. 
Solução: pipeline executa a instrução de desvio, 
interrompendo a execução das demais instruções. Se o 
desvio não se efetivar, perde-se um ciclo, caso contrário, são 
ignoradas as demais execuções.
Projeto com foco no Desempenho
Projeto com foco no Desempenho –
Execução superescalar
 Execução superescalar
 Capacidade de enviar mais de uma instrução em 
todos os ciclos de clock de processador, o que 
requer o uso de pipelines paralelos.
Projeto com foco no Desempenho
 Análise de fluxo de dados
 O processador analisa quais instruções são 
dependentes dos resultados ou dados, uma das 
outras, a fim de criar uma lista otimizada de 
instruções.
 As instruções são listadas para serem 
executadas quando prontas, de forma 
independente do pedido do programa original, 
para prevenir atrasos desnecessários.
Projeto com foco no Desempenho
 Execução especulativa
 Usando a predição de desvio e a análise de fluxo 
de dados, alguns processadores 
especulativamente executam instruções antes de 
seu surgimento real na execução do programa, 
mantendo os resultados em locais separados.
 O objetivo é manter os mecanismos de execução 
do processador ocupados o máximo possível, a 
partir da execução de instruções que 
provavelmente serão executadas.
 Técnicas especulativas sobre desvios (busca do 
fluxo de maior probabilidade de execução)
 Implementadas por software:
 Delayed branch – consiste na reorganização das instruções, 
preservando a semântica do programa e minimizando os 
retardos impostos pela ramificação. O compilador tenta 
realocar instruções para depois das instruções de desvio.
 Branch Folding – em instruções que dependem dos flags é 
possível que os flags já estejam ‘setados’ e o resultado do 
desvio seja conhecido quando for executado. Neste caso a 
instrução de desvio pode ser removida do fluxo, sendo 
substituída pela instrução de seu sucessor lógico. Essa 
técnica tem como efeito um desvio de fluxo zero.
Projeto com foco no Desempenho
 Técnicas especulativas sobre desvios (busca do 
fluxo de maior probabilidade de execução)
 Implementadas por software:
 In-line – consiste em substituir as procedures pelo código 
objeto correspondente, nos locais de ativação. Isso reduz o 
tempo de execução de troca dos parâmetros e transferência 
do controle de execução (chamadas e retornos). Tem como 
desvantagem o aumento do código objeto. 
 Desenrolamento de loops – consiste de usar registradores 
para controle de loops (variáveis de controle do for) evitando 
as instruções de load e store nessas variáveis.
Projeto com foco no Desempenho
 Técnicas especulativas sobre desvios (busca do 
fluxo de maior probabilidade de execução)
 Implementadas por hardware: atuam em tempo de 
execução do programa.
 Técnicas estáticas – implementadas em 3 variações: o desvio 
sempre ocorrerá, nunca ocorrerá ou o código da operação 
determina a previsão. Na primeira é buscada a instrução no 
endereço alvo ao invés de buscar a do código adjacenteà 
instrução de desvio. Na segunda, é buscada a instrução 
adjacente ao comando de desvio (usada na busca antecipada 
de instruções). A terceira considera o código de operação já 
que alguns códigos têm uma tendência maior para um dos 
fluxos. Essa técnica usa resultados de simulações sobre o 
comportamento dos desvios, calcula suas probabilidades e 
armazena os resultados em uma ROM no interior do 
processador, que é consultada em tempo de execução.
Projeto com foco no Desempenho
 Técnicas especulativas sobre desvios (busca do 
fluxo de maior probabilidade de execução)
 Implementadas por hardware: atuam em tempo de 
execução do programa.
 Técnicas dinâmicas – armazenam informações em tempo de 
execução e, quando o desvio for novamente executado, 
verifica o desvio utilizado no passado mais recente e 
especula o resultado. Para isso utiliza uma tabela de histórico 
de desvios e o endereço da próxima instrução a ser 
executada ou mesmo a instrução a ser executada, eliminando 
o passo da busca da instrução de desvio. As técnicas 
dinâmicas podem ser melhoradas se contarem com bits de 
sucesso/insucesso nas operações de desvio e mesmo 
contadores indicando a quantidade de iterações.
Projeto com foco no Desempenho
19
Arquitetura RISC x CISC
 Diferenças entre as arquiteturas RISC e CISC
RISC CISC
Instruções LOAD e STORE 
referenciam a memória principal
Altamente pipelined
Instruções executadas por 
hardware
Instruções com formato fixo
Poucas instruções e 
modos de endereçamento
Múltiplos conjuntos de registradores
Compilador arca com a tarefa 
mais complexa
Instruções simples, com 1 ciclo Instruções com vários ciclos
Várias instruções 
referenciam a memória
Pouco uso do pipeline
Instruções interpretadas por
microprograma
Vários formatos de instrução
Vários formatos de instrução
Conjunto único de registradores
Microprogramas arcam com as
Tarefas mais complexas
20
Alto Desempenho da Arquitetura RISC
 Instruções executadas por hardware e não por 
microprogramas.
 Menor quantidade de instruções: o número de bits do código 
da instrução é menor, ganho de tempo na decodificação.
 Instruções de um único tamanho: apenas 1 acesso à 
memória para busca da instrução e 1 para execução das 
instruções LOAD e STORE (fazem acesso à memória).
 Execução otimizada das chamadas de funções (parâmetros 
são armazenados em registradores). A arquitetura conta com 
múltiplos conjuntos de registradores.
 Menor quantidade de modos de endereçamento, facilitando a 
decodificação das instruções também.
 E, o mais importante, execução em pipeline. A arquitetura 
tem melhor desempenho por se beneficiar do paralelismo.
Perguntas?

Continue navegando