Você está na página 1de 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


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?

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

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, 0x10 Arquitetura B


LOAD $2, 0x14
MULT 0x10, 0x14
PROD $1, $2
STORE 0x10, $1

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

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 das
linguagens 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 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 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 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.

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

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á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

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

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 e
reduzido.
▶ 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 mais
curtos.
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 ao
processador.
▶ 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 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.

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .

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 e
soluçõ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 a
implementaçã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

Você também pode gostar