Organização de Computadores B 1
Universidade Federal do Rio Grande do Sul
Instituto de Informática
Organização de Computadores
Aula 3a
Processadores RISC
Organização de Computadores B 2
Processadores RISC
1. Motivação
2. Fundamentos RISC
3. Medidas concretas
4. Ganho na lógica de controle
Organização de Computadores B 3
O contexto e a solução
• É preciso projetar um computador
• a memória é 10x mais lenta que a CPU, e extremamente
cara
• é melhor usar instruções de poucos bits, que são mais
fáceis de decodificar, ou usar instruções complexas, que
levam mais tempo a decodificar?
• Se você respondeu que é melhor usar instruções
complexas, você é um ótimo engenheiro dos anos 60!
Organização de Computadores B 4
1. Motivação
• década de 60
• introdução de famílias de computadores (ex: IBM 360)
• distinção entre arquitetura e organização
• uso de microprogramação
• arquitetura x organização
• possível compromisso entre custo e desempenho não é definido
unicamente pela arquitetura
• impacto de uma instrução não é decisivo na implementação
• microprogramação
• memória principal: núcleos, grande tempo de acesso
• memória de controle: semicondutora (bipolar), barata
• grandes microprogramas não acrescentavam custo
• maior desempenho: mover software para microprogramas
Organização de Computadores B 5
Uma arquitetura microprogramada
Organização de Computadores B 6
Processadores CISC
• instruções mais complexas
• facilitar tarefa dos compiladores
• aumentar desempenho (por quê?)
• Digital VAX 11/780
• 303 instruções
• 16 modos de endereçamento
• Intel 386
• 111 instruções
• 8 modos de endereçamento
• Motorola 68020
• 109 instruções
• 18 modos de endereçamento
• instruções com comprimento e formato variáveis
Organização de Computadores B 7
Mudanças no contexto
• a partir da metade da década de 70
• memória principal: semicondutores no lugar de núcleos
• memória principal não era mais 10 vezes mais lenta que memória de
controle (MOS)
• introdução de memórias cache baratas e rápidas
• acessos à memória cache tão rápidos quanto à memória de controle
• efeitos colaterais de conjuntos complexos de instruções
• dificuldade no desenvolvimento de microcódigos com até 400 Kbytes
• tempo de projeto mais longo, mais erros de projeto
Organização de Computadores B 8
Mudanças no contexto (II)
• compiladores utilizando sub-conjuntos da arquitetura
• difícil utilização de instruções complexas
• otimização de código tornava possível utilização de instruções
mais simples
• maioria das instruções do conjunto eram pouco
utilizadas nas aplicações mais comuns (lição a ser
aprendida: SEMPRE monitore o ambiente)
• advento de circuitos VLSI e problemas no projeto de
processadores em um chip único
Organização de Computadores B 9
Uso de instruções – Contexto Histórico
• exemplo: uso médio de instruções do 8086 em 3 aplicações –
assembler MASM, compilador Turbo C, Lotus 1-2-3
Transferência de dados Aritméticas / lógicas
MOV 29 CMP 7
PUSH / POP 12 SAL / SHR / RCR 5
LEA 3 INC / DEC 5
ADD 3
OR / XOR 3
Controle / desvio
JMP 2
LOOP 4
CALL / RET 4
desvios condicionais 10
Organização de Computadores B 10
Família X86
FIGURE 2.43 Growth of x86 instruction set over time. While there is clear technical value to some of these extensions, this rapid
change also increases the diffi culty for other companies to try to build compatible processors. Copyright © 2009 Elsevier, Inc. All
rights reserved.
Organização de Computadores B 11
Resumo do contexto tecnológico
• Memória semicondutora rápida e baixando de preço
• Processadores complexos, difícil acelerá-los
• tecnologia de compiladores não utiliza a grande
variedade de instruções disponíveis
• A pergunta permanece: COMO acelerar um processador?
Organização de Computadores B 12
Processadores RISC
1. Motivação
2. Fundamentos RISC
3. Medidas concretas
4. Ganho na lógica de controle
Organização de Computadores B 13
Fundamentos RISC
• Idéia lançada no final da década de 70 por pesquisadores da
Universidade de Berkeley
• Desenvolver conjunto de instruções pequeno e bem simples
• afinal, o compilador não usa muitas diferentes
• Máquina com arquitetura bem simples pode ter: organização
mais eficiente e maior velocidade de operação
• é mais fácil de decodificar, e no espaco livre pode-se colocar outras
coisas
• perspectiva global de aumento de desempenho
• processador num chip único
• melhor aproveitamento de recursos escassos
• ganho na lógica de controle aproveitado no bloco operacional
Organização de Computadores B 14
Dúvidas:
• P: se só poucas instruções estão disponíveis, como fazer um
programa complexo?
• R: usando mais instruções simples (ex: swap)
• P: se temos mais instruções, não vamos usar mais memória?
• R: sim, mas a memória está mais barata e mais rápida
• P: se temos mais instruções, o programa não será mais lento?
• R1: freqüência do relógio pode subir
• R2: máquinas mais simples podem sofrer outras otimizações
(pipe)
Organização de Computadores B 15
Fundamentos RISC
• maior número de instruções nos programas
compensado por instruções mais rápidas/simples
• transferir para o software (compilador) o esforço de
otimização do tempo de execução
• dar suporte a linguagens de alto nível
• escolher instruções que otimizem desempenho tendo em vista
construções mais comuns em linguagens de alto nível
Organização de Computadores B 16
Processadores RISC
1. Motivação
2. Fundamentos RISC
3. Medidas concretas
4. Ganho na lógica de controle
Organização de Computadores B 17
Medidas concretas
• fase de execução da instrução num único ciclo de relógio
• instruções tão rápidas quanto micro-instruções
• todas as instruções do mesmo tamanho e com o mesmo
formato (ou com poucas variações de formato)
• simplificar implementação do controle
• dados imediatos pequenos e deslocamentos pequenos
• de novo, estatísticas obtidas do compilador
• acesso à memória principal apenas através de instruções
LOAD e STORE
• demais instruções fazem operações apenas entre registradores
• simplificar implementação do controle ( pipeline )
• tornar operações aritméticas e lógicas mais rápidas
Organização de Computadores B 18
Medidas concretas
• usar modos de endereçamento bem simples
• simplificar implementação do controle
• poucos tipos de dados
• usar arquitetura Harvard
• memórias de dados e instruções separadas permitem aumentar
bandwidth de memória
• uso de instruções compare-and-branch
• estatísticas mostram que até 98% dos branches são precedidos por
uma comparação
• comparação e branch reunidos numa única instrução evitam
necessidade de flags (N, Z) e permitem execução num único ciclo
Organização de Computadores B 19
Exemplo
V1 = V2 + V3 + V4 + V5 Processador RISC
V1 a V5 são variáveis em memória
Instruções ocupam 1 palavra
Processador CISC
LOAD R2, V2
supondo instruções com 3 endereços, LOAD R3, V3
ocupando 3 palavras ADD R1, R2, R3
LOAD R4, V4
V1 = V2 + V3 ADD R1, R1, R4
V1 = V1 + V4 LOAD R5, V5
V1 = V1 + V5 ADD R1, R1, R5
STORE V1, R1
Instruções: 3 inst. x 3 pal. = 9 palavras
Dados: 9 váriáveis = 9 palavras
Total: 18 acessos à memória Instruções: 8 inst. x 1 pal. = 8 palavras
Dados: 5 variáveis = 5 palavras
Total = 13 acessos à memória
CISC (Complex) versus RISC (Reduced
Instruction Set Computer)
CISC RISC
Ênfase no hardware (Microprogramação) Ênfase no software (Compilador)
Inclui muitas instruções complexas que levam
Instruções geralmente levam um ciclo, e são
vários ciclos (diversas maneiras de fazer
simples
a mesma coisa)
Operações de Memória para Memória. Operações de registrador para registrador.
Acessos à memória estão incorporados na Acesso à memória com instruçõs
instrução específicas (Máquinas Load/Store)
Tamanho de código reduzido Tamanho de código maior
Vários formatos de instrução Poucos formatos de instrução
Vários métodos de endereçamento Poucos métodos de endereçamento
Transistores são gastos para o controle Transistores são gastos para registradores (há
mais registradores aqui) e execução
Organização de Computadores B 21
CISC vs RISC
• Exemplos CISC
• X86 (cuidado), IBM 360
• Exemplos RISC
• MIPS, PowerPC, Sparc, ARM (cuidado)
• E hoje?
• Mercado dominado por IA32/64 (antigo X86) e ARM
• Mistura de CISC e RISC
Organização de Computadores B 22
Processadores RISC
1. Motivação
2. Fundamentos RISC
3. Medidas concretas
4. Ganho na lógica de controle
Organização de Computadores B 23
Ganho na lógica de controle
• uso de lógica hardwired, e não microprogramada –
maior velocidade
• microprocessadores convencionais ocupam até 50%
do espaço com bloco de controle
• processadores RISC: controle ocupa apenas 10% do
espaço
• aumento do número de registradores no espaço ganho
• maior possibilidade de uso de pipelines homogêneos
Organização de Computadores B 24
O que a história ensinou:
• Olhe sempre a tecnologia
• FPGAs, Flash memories...
• Final da lei de Moore?
• Olhe o ambiente onde o processador é usado
• benchmarks
• peculiaridades do compilador em uso