Universidade Federal do Rio Grande do Sul
Instituto de Informática
Organização de Computadores
Aula 2
Processadores RISC
INF01113 - Organização de Computadores
Processadores RISC
1. Motivação
2. Fundamentos RISC
3. Medidas concretas
4. Ganho na lógica de controle
INF01113 - Organização de Computadores
1
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, barata
– grandes microprogramas não acrescentavam custo
– maior desempenho: mover software para microprogramas
INF01113 - Organização de Computadores
Processadores CISC
• instruções mais complexas
– facilitar tarefa dos compiladores
– aumentar desempenho
• 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
INF01113 - Organização de Computadores
2
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
• 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
INF01113 - Organização de Computadores
Mudanças no contexto
• 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
• advento de circuitos VLSI e problemas no projeto de processadores
em um chip único
INF01113 - Organização de Computadores
3
Uso de instruções
• 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
INF01113 - Organização de Computadores
2. 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
• máquina com arquitetura bem simples pode ter organização mais
eficiente e maior velocidade de operação
• 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
INF01113 - Organização de Computadores
4
Fundamentos RISC
• maior número de instruções nos programas compensado por
– instruções mais rápidas
– instruções mais curtas
• 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
INF01113 - Organização de Computadores
3. 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
• 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
INF01113 - Organização de Computadores
5
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
INF01113 - Organização de Computadores
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
3 x 3 = 9 palavras
3 x 6 = 18 acessos à memória 8 x 1 = 8 palavras
8 x 1 + 5 x 1 = 13 acessos à memória
INF01113 - Organização de Computadores
6
4. 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
INF01113 - Organização de Computadores