Aula 26: Arquiteturas RISC vs. CISC
Diego Passos
Universidade Federal Fluminense
Fundamentos de Arquiteturas de Computadores
Revisão
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.
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.
Contexto Histórico
O Gap Semântico
Evolução de
hardwaredos 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.
Hardware vs. Software
O que é mais eficiente:
▶ Implementar um dado algoritmo emsoftware?
▶ Ou criar uma implementação emhardware do mesmo?
Uma implementação especializada em
hardwareé normalmente mais rápida.
▶ Não há ooverhead do software.
▶ e.g., decodificação de instruções.
Conclusão:
▶ Programas rodam mais rápido se tarefas complexas são implementadas emhardware.
▶ Na forma de instruções.
Mas isso é realmente verdade?
Hardware vs. Software
O que é mais eficiente:
▶ Implementar um dado algoritmo emsoftware?
▶ Ou criar uma implementação emhardware do mesmo?
Uma implementação especializada em
hardwareé normalmente mais rápida.
▶ Não há ooverhead do software.
▶ e.g., decodificação de instruções.
Conclusão:
▶ Programas rodam mais rápido se tarefas complexas são implementadas emhardware.
▶ Na forma de instruções.
Mas isso é realmente verdade?
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 den.
▶ Menos instruções armazenadas na MP.
▶ Um único acesso vs. n.
Redução no Uso de Memória: Exemplo
Exemplo de multiplicação em duas arquiteturas hipotéticas.
▶ Dados armazenados na MP.
▶ Na arquiteturaA, há apenas a instruçãoPRODque opera sobre registradores.
▶ Na arquiteturaB, 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, 0x10 LOAD $2, 0x14 PROD $1, $2 STORE 0x10, $1
Arquitetura B
MULT 0x10, 0x14Consequê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 emhardware 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 das
linguagens de alto nível.
A Filosofia RISC
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.
Características
Instruções mais simples.
▶ Não necessariamente menos instruções.
▶ Mas instruções quefaç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.
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.
RISC vs. CISC
Com o advento da filosofia RISC, convencionou-se chamar as alternativas de arquiteturas CISC.
▶ 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 ohardware.
▶ . . .
RISC: Compiladores
Ao restringir o conjunto de instruções a instruções “simples”, processadores RISC se distanciam 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.
RISC: Número de Instruções
Como já explicado, o termo
reduzidodiz 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ários processadores com arquiteturas RISC.
Exemplos:
Característica CISC RISC
Modelo IBM 370/168 VAX 11/780 Intel 80486 SPARC MIPS R4000
Ano 1973 1978 1989 1987 1991
Instruções 208 303 235 69 94
Registradores 16 16 8 40-520 32
RISC e CISC: Adoção
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.
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.
Micro-Arquiteturas
Um princípio de projeto comum hoje.
Hardware
do processador implementa um conjunto de instruções bastante simples e reduzido.
▶ As micro-instruções.
Memória não-volátil interna ao processador guarda um micro-programa.
▶ Interpretador dasmacro-instruções.
▶ Ciclo de execução implementado emsoftware.
Programas executados no processador são escritos em macro-instruções.
▶ Interpretadas pelo micro-programa.
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.
RISC e CISC: Comparações
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 mais curtos.
Conclusão:
▶ Teoricamente, arquiteturas RISC podem ter ciclos de clock menores.
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.
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 ao processador.
▶ e.g., registradores.
Conclusão:
▶ Arquiteturas RISC geralmente possuem mais registradores.
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.
Escalabilidade
Neste contexto, escalabilidade é a capacidade de combinar múltiplos processadores em um ú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 a
ser mais escaláveis.
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 e soluções para conflitos de pipeline.
▶ Alguns processadores RISC deixam isso a cargo do compilador.
▶ Processadores CISC geralmente lidam com isso emhardware.
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.
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 a
implementação de uma micro-arquitetura RISC.
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.
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 tipoload oustore.
▶ 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.