View
220
Download
2
Category
Preview:
Citation preview
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Aula 26: Arquiteturas RISC vs. CISC
Diego Passos
Universidade Federal Fluminense
Fundamentos de Arquiteturas de Computadores
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 1 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Revisão
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 2 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Nas Aulas Anteriores. . .
Discutimos o sistema de E/S.▶ O que é.▶ Exemplos de dispositivos.▶ Barramentos.
Também falamos sobre métodos de acesso e mapeamento dos dispositivos de E/S.▶ Mapeamento em memória, mapeamento por porta.▶ E/S programada, por interrupções, DMA.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 3 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Na Aula de Hoje. . .
Última aula (de conteúdo novo) do período.Vamos encerrar a disciplina discutindo duas abordagens para projetos de arquiteturas:
▶ RISC e CISC.Discutiremos:
▶ O que são.▶ Motivações históricas.▶ Principais características.▶ Exemplos.▶ Vantagens e desvantagens.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 4 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contexto Histórico
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 5 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
O Gap Semântico
Evolução de hardware dos computadores foi muito rápida.▶ Processadores cada vez mais rápidos.▶ Incorporando técnicas cada vez mais complexas.
Simultaneamente, surgiam as linguagens de alto nível.▶ Mais fáceis de programar.▶ Comandos complexos.▶ Faziam muito, em poucas linhas de código.
Gap Semântico:▶ Grande diferença de expressividade das linguagens de alto nível e montagem.▶ Dificuldade no processo de tradução.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 6 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Hardware vs. Software
O que é mais eficiente:▶ Implementar um dado algoritmo em software?▶ Ou criar uma implementação em hardware do mesmo?
Uma implementação especializada em hardware é normalmente mais rápida.▶ Não há o overhead do software.▶ e.g., decodificação de instruções.
Conclusão:▶ Programas rodam mais rápido se tarefas complexas são implementadas em hardware.▶ Na forma de instruções.
Mas isso é realmente verdade?
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 7 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Hardware vs. Software
O que é mais eficiente:▶ Implementar um dado algoritmo em software?▶ Ou criar uma implementação em hardware do mesmo?
Uma implementação especializada em hardware é normalmente mais rápida.▶ Não há o overhead do software.▶ e.g., decodificação de instruções.
Conclusão:▶ Programas rodam mais rápido se tarefas complexas são implementadas em hardware.▶ Na forma de instruções.
Mas isso é realmente verdade?
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 7 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Redução no Uso de Memória
Relembrando:▶ Memória Principal = Gargalo de von Neumann.
Memória é lenta e também tem capacidade limitada.▶ Especialmente até a década de 1980.
Idealmente, queremos minimizar os acessos à memória.E também reduzir o tamanho dos programas armazenados na MP.Com instruções mais complexas, podemos atingir ambos os objetivos:
▶ Uma única instrução substitui sequência de n.▶ Menos instruções armazenadas na MP.▶ Um único acesso vs. n.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 8 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Redução no Uso de Memória: Exemplo
Exemplo de multiplicação em duas arquiteturas hipotéticas.▶ Dados armazenados na MP.▶ Na arquitetura A, há apenas a instrução PROD que opera sobre registradores.▶ Na arquitetura B, há a instrução MULT, que opera “diretamente” sobre a MP.
⋆ Dados ainda são trazidos para registradores, mas de forma transparente.
Arquitetura A
LOAD $1, 0x10LOAD $2, 0x14PROD $1, $2STORE 0x10, $1
Arquitetura B
MULT 0x10, 0x14
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 9 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Consequências
Projetos de processadores se tornavam cada vez mais complexos.▶ Grande número de instruções.▶ Instruções complexas.▶ Inúmeros modos de endereçamento.▶ Implementação em hardware de comandos/estruturas de linguagens de alto nível.▶ Instruções específicas para manipulação de estruturas de dados complexas.▶ Instruções de tamanhos e tempos de execução variados.▶ Circuitos complexos.
Esperava-se fechar o Gap Semântico elevando o conjunto de instruções para o nível daslinguagens de alto nível.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 10 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
A Filosofia RISC
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 11 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Surgimento
RISC: Reduced Instruction Set Computer.Vários projetos surgiram no final da década de 1970.
▶ Stanford.⋆ Daria origem ao MIPS.
▶ Berkeley.⋆ Daria origem ao SPARC.
▶ IBM.⋆ Daria origem ao Power PC.
Ideia básica:▶ Simplificar o conjunto de instruções.▶ Instruções simples podem ser implementadas de forma mais eficiente, barata.▶ Economia pode ser direcionada a outras partes do processador.
⋆ e.g., mais registradores.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 12 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Características
Instruções mais simples.▶ Não necessariamente menos instruções.▶ Mas instruções que façam menos.▶ e.g., no máximo um acesso à MP.
Instruções com formato uniforme.▶ e.g., tamanho fixo.▶ Mais fáceis de serem decodificadas.
Poucos modos de endereçamento.▶ Reduzem complexidade da busca de operandos.
Instruções lidam apenas com dados de tipos primitivos.▶ e.g., não há instruções para strings.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 13 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Características (II)
Registradores de propósito geral equivalentes.▶ Certas arquiteturas conferem significados especiais a determinados registradores de
“propósito geral”.⋆ e.g., contadores em instruções de loop.
▶ Na filosofia RISC, todos são equivalentes.Mais registradores de propósito geral.
▶ Lógica de controle mais simples permite alocar mais recursos em outras áreas.▶ Com mais registradores, espera-se menos acesso à memória para acessar dados.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 14 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
RISC vs. CISC
Com o advento da filosofia RISC, convencionou-se chamar as alternativas de arquiteturasCISC.
▶ CISC: Complex Instruction Set Computer.A filosofia CISC, portanto, consiste em:
▶ Empregar conjuntos de instruções complexas.▶ Permitir instruções em formatos variados.▶ Trazer funcionalidades de alto nível para o hardware.▶ . . .
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 15 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
RISC: Compiladores
Ao restringir o conjunto de instruções a instruções “simples”, processadores RISC sedistanciam das linguagens de alto nível.
▶ Aumentam o Gap Semântico.Isto impõe mais pressão aos compiladores.
▶ Tarefas de tradução e otimização do código se tornam mais difíceis.Por outro lado, compilador tem mais registradores à disposição.
▶ Pode manter mais dados na CPU com menos esforço.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 16 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
RISC: Número de Instruções
Como já explicado, o termo reduzido diz respeito a instruções mais simples.▶ Não necessariamente a menos instruções.
Mas um número menor de instruções é uma consequência comum em váriosprocessadores com arquiteturas RISC.Exemplos:
Característica CISC RISCModelo IBM 370/168 VAX 11/780 Intel 80486 SPARC MIPS R4000Ano 1973 1978 1989 1987 1991Instruções 208 303 235 69 94Registradores 16 16 8 40-520 32
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 17 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
RISC e CISC: Adoção
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 18 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Adoção do Princípio CISC em Processadores Atuais
Principal exemplo: arquiteturas x86 e x86-64.▶ Instruções de tamanho variado.▶ Instruções com tempos de execução variados.▶ Vários modos de endereçamento.▶ Diversas variações da mesma instrução
Há ainda outros exemplos, como o Motorola 68000.▶ Arquitetura menos popular que a x86, mas ainda usada em certos dispositivos.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 19 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Adoção do Princípio RISC em Processadores Atuais
Mais exemplos que para o CISC:▶ ARM.▶ MIPS.▶ PowerPC.▶ Atmel AVR.▶ . . .
Muito encontrados hoje em dispositivos embarcados.▶ Principalmente os alimentados por bateria.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 20 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Micro-Arquiteturas
Um princípio de projeto comum hoje.Hardware do processador implementa um conjunto de instruções bastante simples ereduzido.
▶ As micro-instruções.Memória não-volátil interna ao processador guarda um micro-programa.
▶ Interpretador das macro-instruções.▶ Ciclo de execução implementado em software.
Programas executados no processador são escritos em macro-instruções.▶ Interpretadas pelo micro-programa.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 21 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Micro-Arquiteturas (II)
Micro-arquiteturas geralmente se caracterizam como RISC.▶ Instruções simples.▶ Sempre mesmo tamanho.▶ Sempre mesmo tempo de execução.▶ . . .
E são utilizadas mesmo quando a macro-arquitetura é CISC.▶ e.g., processadores atuais da Intel baseados em x86 ou x86-64.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 22 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
RISC e CISC: Comparações
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 23 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Ciclo de Clock
Instruções mais simples podem ser executadas mais rapidamente.Comprimento do ciclo de clock é determinado pelo tempo da tarefa mais longa.Logo, uma arquitetura com instruções mais simples pode operar com ciclos de clock maiscurtos.Conclusão:
▶ Teoricamente, arquiteturas RISC podem ter ciclos de clock menores.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 24 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Densidade de Código
Medida do quão compacta é a representação dos programas em memória.▶ Maior densidade → menor código.
Arquiteturas CISC têm instruções mais complexas.▶ Fazem mais.▶ Podem substituir sequências de várias instruções mais simples.
Conclusão:▶ Arquiteturas CISC tendem a resultar em maior densidade de código.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 25 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Número de Registradores
Arquiteturas RISC têm uma lógica interna mais simples.▶ Menos componentes.▶ Menor custo.
Recursos economizados geralmente são investidos na forma de mais memória interna aoprocessador.
▶ e.g., registradores.Conclusão:
▶ Arquiteturas RISC geralmente possuem mais registradores.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 26 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Eficiência Energética
Uma lógica interna mais simples permite implementação mais simples.▶ i.e., circuitos menores.▶ Com menos componentes.
Isto tende a se refletir em economia de energia.Conclusão:
▶ Arquiteturas RISC tendem a ser mais eficientes energeticamente.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 27 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Escalabilidade
Neste contexto, escalabilidade é a capacidade de combinar múltiplos processadores emum único computador.
▶ Multiprocessamento.
Há vários fatores que limitam ou dificultam esta escalabilidade.Entre eles:
▶ Consumo energético.▶ Complexidade de projeto.▶ Custo.
Por serem mais simples e mais eficientes energeticamente, processadores RISC tendem aser mais escaláveis.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 28 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Compiladores
Máquinas RISC têm instruções mais simples, básicas.▶ Mais distantes das linguagens de alto nível.▶ Dificulta o processo de tradução.
Máquinas CISC tendem a ter um número maior de instruções.▶ Mais variações de uma mesma operação básica.▶ Mais modos de endereçamento.▶ Compiladores são capazes de tirar proveito disso?
Outra diferença é o ônus de certas otimizações, como mudanças de ordem de execução esoluções para conflitos de pipeline.
▶ Alguns processadores RISC deixam isso a cargo do compilador.▶ Processadores CISC geralmente lidam com isso em hardware.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 29 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Na Prática
Comparações práticas de desempenho entre processadores RISC e CISC são difíceis.▶ Mercados diferentes.▶ Capacidades diferentes.▶ Tecnologias de fabricação diferentes.▶ Compiladores diferentes.
Sem comparações práticas justas, é difícil apontar um vencedor.▶ Há ainda muita controvérsia sobre qual abordagem é superior.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 30 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Na Prática (II)
Mas arquiteturas RISC vêm ganhando popularidade.▶ Dominam mercado de dispositivos embarcados.▶ Começam a entrar no mercado de grandes servidores.
Mesmo em processadores baseados em conjuntos de instrução CISC, é comum aimplementação de uma micro-arquitetura RISC.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 31 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Outra Forma de Comparação: TOP500
TOP500: projeto que lista 500 computadores mais poderosos do mundo.▶ Atualizada a cada 6 meses.
Segundo a lista atual (Novembro de 2014):▶ 80% da lista é composta por computadores baseados em x86.
⋆ Mas pode contabilizar vários fortemente baseados em GPUs.▶ Por outro lado, dos 10 mais rápidos, 5 são baseados em processadores RISC.
⋆ Power e SPARC.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 32 / 33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
RISC e CISC: Aproximação
Nos últimos anos, as diferenças entre processadores RISC e CISC têm diminuído.▶ Processadores RISC têm incorporado funcionalidades complexas, como execução fora de
ordem.▶ Processadores CISC têm adotado implementações baseadas em micro-arquiteturas RISC.
A definição mais precisa hoje para diferenciar as duas abordagens é em relação ao acessoà MP.
▶ Arquiteturas RISC só acessam a memória em instruções do tipo load ou store.▶ Arquiteturas CISC possuem instruções que executam operações lógicas/aritméticas sobre
valores que estão na MP.⋆ i.e., instruções implicitamente trazem valores da MP para registradores.
Diego Passos (UFF) Arquiteturas RISC vs. CISC FAC 33 / 33
Recommended