aula 26: arquiteturas risc vs. cisc -...

34
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

Upload: dinhdan

Post on 06-Mar-2018

219 views

Category:

Documents


2 download

TRANSCRIPT

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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