Você está na página 1de 28

Fundamentos

de Sistemas
Computacionais
Arquiteturas RISC e CISC
Introduo
O desenvolvimento de linguagens de programao
de alto nvel deu origem a um problema conhecido
como gap semn@co.
Diferena entre as operaes oferecidas pelas linguagens
e aquelas oferecidas pela arquitetura

O gap semn@co deu origem a diversas


inecincias na execuo dos programas, tamanho
excessivo do cdigo binrio e complexidade do
compilador.
Introduo
Para reduzir estes efeitos, foram projetadas
arquiteturas com:
grande nmero de instrues,
diversos modos de endereamento e
instrues complexas oriundas das linguagens de alto
nvel.

Surgiram assim as mquinas com conjuntos de


instrues complexos (CISC).
Introduo - CISC
Arquiteturas CISC @nham como obje@vo simplicar o
compilador e aumentar o desempenho.

Simplicao do compilador: j que o compilador


traduz as instrues de alto nvel em linguagem de
mquina, a traduo ca mais simples se a
arquitetura con@ver instrues similares s de alto
nvel.
Introduo - CISC
No entanto, um conjunto grande e complexo de
instrues de mquina causa os seguintes
problemas:
O compilador tem que ser capaz de analisar o cdigo e
determinar quais instrues de alto nvel podem ser
diretamente mapeadas em instrues complexas de
mquina.
Isso nem sempre simples

O controle do mecanismo de pipeline ca mais


complexo
Introduo - CISC
Dois dos obje@vos de arquiteturas CISC so a
obteno de programas pequenos e mais rpidos.

Porm, geralmente o cdigo ob@do em arquiteturas


CISC grande, apesar de ter menos instrues do
que o equivalente RISC.
O tamanho de cada instruo em nmero de bits maior
Muitos compiladores no usam as instrues complexas
em suas tradues.
Introduo - CISC
Os proje@stas de arquiteturas CISC advogam que,
com instrues maiores e mais complexas, o tempo
de execuo ser reduzido.

Porm, a unidade de controle de mquinas CISC


deve ser mais complexa e ocupar mais espao, o que
aumenta o tempo de execuo de uma nica
instruo
Introduo - RISC
Outra corrente de pensamento tentava resolver o
gap semn@co propondo arquiteturas simples, ao
invs de arquiteturas complexas, dando origem s
arquiteturas RISC.

Alguns obje@vos de projeto:


Formatos simples de instruo, que permitam a execuo
de uma instruo por ciclo de mquina
nfase em operaes registrador-registrador
Estudos na dcada de 80
A jus@ca@va para as arquiteturas RISC est em diversos
estudos feitos sobre linguagens de alto nvel.

Em dados coletados na execuo dos programas, vericou-se


que as atribuies so predominantes, sugerindo que o
movimento simples de dados de grande importncia.

Os estudos apontaram, tambm, diversas instrues


condicionais (if, loop), sugerindo que o controle da sequncia
de execuo do programa tambm importante.
Estudos na dcada de 80
Estudos feitos sobre o @po de variveis acessadas em
C e Pascal em 1982 mostraram que a maioria das
referncias era para variveis escalares simples.

Alm disso, mais de 80% das variveis acessadas


eram locais.

Estudos no Dec-10 e PDP-11 (mainframes)


mostraram que cada instruo referencia em mdia
0.5 operandos em memria e 1.4 registradores.
Mo@vao para RISC
Ao analisar os resultados dos estudos, concluiu-se
que:
As linguagens de alto nvel seriam melhor suportadas por
arquiteturas que o@mizassem o desempenho de suas
instrues e caracters@cas mais u@lizadas.

Esta abordagem contrria a CISC, que visa o@mizar


a execuo da maioria das instrues e
caracters@cas.
Principais caracters@cas
Apesar da existncia de diversas denies, a
maioria dos computadores ditos RISC possui as
seguintes caracters@cas:
1. Grande nmero de registradores de uso geral e uso do
compilador para o@mizar seu uso;
2. Conjunto de instrues pequeno e simples;
3. O@mizaes no pipeline de instrues.
Grande Nmero de Registradores de Uso Geral

Os estudos mostraram que havia um grande nmero


de atribuies simples executadas por linguagens de
alto nvel.
Assim, o uso de diversos registradores pode contribuir
para reduzir o tempo de execuo do programa.

necessria uma estratgia para manter os


operandos mais acessados em registradores, para
reduzir as operaes registrador-memria.
Grande Nmero de Registradores de
Uso Geral
Estratgias por sofware
Atravs de uma anlise sos@cada do programa, o
compilador tenta alocar registradores s variveis
que sero mais u@lizadas em um perodo.

Estratgias por hardware


Usa muitos registradores e assim permite que
mais variveis sejam man@das na CPU.
Ex: Janelas de registradores
Janelas de Registradores
Como a maioria das referncias a variveis locais, a
abordagem mais imediata consiste em armazen-las
em registradores e separar alguns poucos
registradores para variveis globais.

O problema que as variveis locais esto denidas


no contexto de procedimentos/procedures.

Em cada chamada a um procedimento, os valores


dos registradores deveriam ser salvos em memria,
para que os mesmos fossem usados pelo
procedimento a ser executado.
Janelas de Registradores
Na execuo de um return, os valores das
variveis da procedure-pai deveriam ser novamente
carregados em registradores e os valores de retorno
entregues procedure-pai.

Para tanto, vrios pequenos conjuntos de


registradores (janelas de registradores) podem ser
u@lizados, um para cada procedure.
Esta a proposta da SPARC
Janelas de Registradores
Uma chamada a procedure faz com que o
processador automa@camente use uma janela de
registradores diferente, ao invs de salvar
registradores em memria.

As janelas de registradores para procedures


adjacentes so sobrepostas para permi@r a passagem
de parmetros.

Em um dado momento, somente uma janela de


registradores visvel e enderevel.
Janelas de Registradores

A janela dividida em 3 regies de tamanho xo:


Registradores de parmetros
Registradores locais
Registradores temporrios

Reg. Parmetros Reg. locais Reg. temp.

Call/return

Reg. Parmetros Reg. locais Reg. temp.


Janelas de Registradores
Como s existe um conjunto nito de janelas de
registradores, somente os dados das procedures
mais recentes so man@dos em registradores.

Os dados de procedures an@gas so armazenados


em memria.

Assim, a organizao real do register le uma la


circular de janelas sobrepostas.
Organizao das Janelas de
Registradores (Stallings)
Variveis Globais
Uma alterna@va consiste em se manter as variveis globais
em memria.

Alterna@vamente, pode-se incorporar um conjunto de


registradores globais ao processador.

Estes registradores possuem nmero xo e so acessveis por


todas as procedures.
O@mizaes de Registrador feitas pelo
Compilador
Um programa escrito em linguagem de alto
nvel geralmente no faz referncia a
registradores.

tarefa do compilador fazer com que os


operandos muito acessados quem por mais
tempo em registradores, reduzindo as
operaes de load e store.
O@mizaes de Registrador feitas pelo
Compilador
Em geral, o compilador executa o seguinte
procedimento:
A cada varivel (quan@ty) candidata a residir em um
registrador, atribudo um registrador virtual.

Os registradores virtuais so mapeados em registradores


reais de maneira que registradores virtuais que no
possuem sobreposio no tempo sejam mapeados para o
mesmo registrador real.

Caso no haja nmero suciente de registradores reais em


determinado momento, algumas variveis so mapeadas
em memria.
Conjunto de Instrues Pequeno e
Simples
O conjunto de instrues deve ser projetado de
maneira que a grande maioria das instrues seja
executada em um ciclo de mquina.
Execuo mais rpida de programas

A maioria das instrues deve ser registrador-


registrador e as operaes de load e store devem ser
simples.
Simplicao da unidade de controle
Conjunto de Instrues Pequeno e
Simples
A maioria das arquiteturas RISC oferece modos simples de
endereamento (geralmente menos que 5):
Endereamento de registradores
Deslocamento

Os outros modos de endereamento, como o indexado,


podem ser sinte@zados via sofware.

No so usados modos de endereamento que combinam


load/store com operaes aritm@cas

Somente um operando endereado a cada instruo


Conjunto de Instrues Pequeno e
Simples
Os formatos das instrues so simples
O tamanho da instruo xo e alinhado por
word (geralmente 4 bytes).

A localizao do cdigo da operao (opcode)


conhecida e de tamanho xo
Decodicao e busca de operandos podem ser feitas
simultaneamente
Conjunto de Instrues Pequeno e
Simples
O compilador parte fundamental para
obteno de cdigo com bom desempenho.

Chips podem desenvolvidos para arquiteturas


RISC mais rapidamente, j que o nmero de
instrues simples e reduzido.
RISC x CISC
Atualmente, tem-se observado que os projetos de
arquiteturas CISC vem empregando algumas
caracters@cas das arquiteturas RISC e vice-versa.

Atualmente, arquiteturas como o PowerPC,


classicadas como RISC, possuem caracters@cas de
CISC

O Pen@um II, apesar de ser classicado como CISC,


incorpora caracters@cas RISC

Você também pode gostar