Escolar Documentos
Profissional Documentos
Cultura Documentos
Risc Cisc
Risc Cisc
Email: ee91163@fe.up.pt
Email: ee95070@fe.up.pt
1. Introduo
Talvez a abordagem mais comum para a comparao
entre RISC e CISC seja a de listar as caractersticas de
ambas e coloc-las lado-a-lado para comparao,
discutindo o modo como cada caracterstica ajuda ou
no o desempenho. Esta abordagem correcta se
estivermos a comparar duas peas de tecnologia
contemporneas, como os sistemas operativos, placas de
vdeo, CPUs especficos, etc., mas ela falha quando
aplicada ao nosso debate. Falha porque RISC e CISC
no so exactamente tecnologias, so antes estratgias
de projecto de CPUs abordagens para atingir um
certo nmero de objectivos definidos em relao a um
certo conjunto de problemas. Ou, para ser um pouco
mais abstracto, poderamos chamar-lhes filosofias de
projecto de CPUs, ou maneiras de pensar acerca de um
determinado conjunto de problemas e das suas solues.
importante olhar para estas duas estratgias como
tendo evoludo a partir de um conjunto de condies
tecnolgicas que existiram num dado momento. Cada
uma delas foi uma abordagem ao projecto de mquinas
que os projectistas sentiram ser a mais eficiente no uso
dos recursos tecnolgicos existentes na poca. Na
formulao e aplicao destas estratgias, os projectistas
tomaram em considerao as limitaes da tecnologia
da altura limitaes essas que no so exactamente as
mesmas de hoje. Compreender estas limitaes e a
Compiladores
O trabalho de um compilador era relativamente simples
nesta altura: traduzir cdigo escrito numa linguagem de
alto nvel, como C ou Pascal, em assembly. O assembly
era depois convertido para cdigo mquina por um
assemblador. A compilao demorava bastante tempo e
o resultado dificilmente se poderia dizer ptimo. O
melhor que se poderia esperar era que a traduo da
linguagem de alto nvel para o assembly fosse correcta.
Se realmente se quisesse cdigo compacto e optimizado,
a nica soluo era programar em assembly.
VLSI
Em termos de VLSI (Very Large Scale Integration) a
tecnologia da altura apenas permitia densidades de
transstores que seriam muito baixas quando
comparadas com os standards de hoje. Era
simplesmente
impossvel
colocar
muitas
funcionalidades num nico chip. No incio dos anos 80,
quando se comeou a desenvolver a arquitectura RISC,
um milho de transstores num nico chip era j
bastante [2]. Devido falta de recursos (transstores) as
mquinas CISC da altura tinham as suas unidades
funcionais espalhadas por vrios chips. Isto era um
problema por causa do alto tempo de espera nas
transferncias de dados entre os mesmos, o que desde
logo era um bice ao desempenho. Uma implementao
num nico chip seria o ideal.
2. CISC
No inicio dos anos 70, quer porque os compiladores
eram muito pobres e pouco robustos, quer porque a
memria era lenta e cara causando srias limitaes no
tamanho do cdigo, levou a que uma certa corrente
previsse uma crise no software. O hardware era cada
vez mais barato e o software cada vez mais caro. Um
grande nmero de investigadores e projectistas
defendiam que a nica maneira de contornar os grandes
problemas que se avizinhavam era mudar a
complexidade do (cada vez mais caro) software e
transport-la para o (cada vez mais barato) hardware.
Se houvesse uma funo mais comum, que o
programador tivesse de escrever vezes sem conta num
programa, porque no implementar essa funo em
hardware? Afinal de contas o hardware era barato e o
tempo do programador no. Esta ideia de mover o fardo
da complexidade do software para o hardware foi a
ideia impulsionadora por trs da filosofia CISC, e quase
tudo o que um verdadeiro CISC faz tem este objectivo.
Alguns investigadores sugeriram que uma maneira de
tornar o trabalho dos programadores mais fcil seria
fazer com que o cdigo assembly se parecesse mais com
o cdigo das linguagens de alto nvel (C ou Pascal).
Os mais extremistas falavam j de uma arquitectura de
computao baseada numa linguagem de alto nvel. Este
tipo de arquitectura era CISC levado ao extremo. A sua
motivao primria era reduzir o custo global do
sistema fazendo computadores para os quais fosse mais
3. RISC
Como j foi referido, muitas das implementaes da
arquitectura CISC eram to complexas que eram
VAX
RISC
8086
SPARC I
MIPS I
11/780
Ano
1973
1973
1978
1981
1983
N Instr.
208
303
100
39
55
Microc.
54Kb
400Kb
11Kb
Instr.
(bytes)
2-6
2-57
1-17
4. RISC vs CISC
Vamos agora tecer uma breve considerao acerca do
estado actual dos trs parmetros que definiram o
ambiente tecnolgico do qual partiu estudo em questo:
Armazenamento e memria
A memria, hoje em dia, rpida e barata; qualquer
pessoa que tenha instalado recentemente um programa
da Microsoft sabe que muitas das companhias que
desenvolvem software j no tm em considerao as
limitaes de memria. Assim, as preocupaes com o
tamanho do cdigo que deram origem ao vasto conjunto
de instrues da arquitectura CISC j no existem. De
facto, os processadores da era ps-RISC tm conjuntos
de instrues cada vez maiores de um tamanho e
diversidade sem precedentes, e ningum pensa duas
vezes no efeito que isso provoca no uso da memria.
Compiladores
O desenvolvimento dos compiladores sofreu um
tremendo avano nos ltimos anos. De facto, chegou a
um ponto tal que a prxima gerao de arquitecturas
(como o IA-64 ou Merced da Intel) dependem apenas
do compilador para ordenar as instrues tendo em vista
a mxima taxa de instrues executadas.
Os compiladores RISC tentam manter os operandos em
registos por forma a poderem usar simples instrues
registo-registo. Os compiladores tradicionais, por outro
lado, tentam descobrir o modo de endereamento ideal e
o menor formato de instruo para fazerem os acessos
memria. Em geral, os programadores de compiladores
RISC preferem o modelo de execuo registo-registo de
forma que os compiladores possam manter os operandos
que vo ser reutilizados em registos, em vez de
repetirem os acessos memria de cada vez que
necessrio um operando. Usam, por isso, LOADs e
STOREs para aceder memria para que os operandos
no sejam, implicitamente, rejeitados aps terminada a
execuo de uma determinada instruo, como acontece
nas arquitecturas que utilizam um modelo de execuo
memria-memria.
VLSI
O nmero de transstores que cabem numa placa de
silcio extremamente elevado e com tendncia a
crescer ainda mais. O problema agora j no a falta de
espao para armazenar as funcionalidades necessrias,
mas o que fazer com todos os transstores
disponibilizados.
Retirar
s
arquitecturas
as
funcionalidades que s raramente so utilizadas j no
uma estratgia moderna de projecto de processadores.
ax, b
add
ax, c
mov
a, ax
ax, 10
mov
bx, 5
mul
bx
ax, 0
mov
bx, 10
mov
cx, 5
add
ax, bx
loop
begin:
Decises Arquitectnicas
CISC
As instrues podem
aceder os registos internos
ou a memria.
A descodificao das
instrues trivial.
A descodificao das
instrues pode demorar
mais do que um ciclo de
relgio.
RISC
Um grande e variado
conjunto de instrues
que inclu instrues
rpidas e simples para
executar tarefas
bsicas assim como
complexas e multiciclo que
correspondem a
declaraes em
HLL**.
Modos de
endereamento
memria-memria.
Tabela 2
Uma unidade de
controlo em microcdigo.
Gastar menos
Instrues simples e
de um s ciclo que
executam somente
funes bsicas.
Instrues em
assembly
correspondem a
instrues em microcdigo numa
arquitectura CISC.
Todo o suporte HLL**
feito em software.
Modos de
endereamento
simples permitem
somente que as
funes LOAD e
STORE acedam
memria. Todas as
operaes so do tipo
registo-registo.
transstores no fabrico
dos registos internos.
Unidade de controlo
de execuo directa.
Gastar mais
transstores em vrios
bancos de registos.
Uso de execuo em
pipeline para baixar
CPI*.
**
5. O FUTURO
A maior ameaa para as arquitecturas RISC e CISC
pode no ser nenhuma delas (por oposio outra), mas
uma nova arquitectura denominada EPIC (Explicit
Parallel Instruction Computer). Como se pode
depreender da palavra paralelo a arquitectura EPIC
pode executar vrias instrues em paralelo umas com
as outras. Esta filosofia foi criada pela Intel e , de certa
forma, a combinao das arquitecturas RISC e CISC.
A Intel e a Hewlet Packard esto a desenvolver um
processador usando esta filosofia sob o nome MERCED
(IA-64) e a Microsoft j est a desenvolver uma
plataforma (WIN64) para o mesmo. O processador
MERCED ser um processador de 64 bits.
Se esta arquitectura for bem sucedida poder tornar-se
na maior ameaa arquitectura RISC. Todas as grandes
marcas de fabricantes de processadores, exceptuando a
Sun e a Motorola, esto neste momento a comercializar
produtos baseados no x86 e alguns esto apenas
espera que o MERCED venha para o mercado. Por
causa do mercado dos x86, no provvel que a
arquitectura CISC desaparea num futuro prximo, mas
a arquitectura RISC poder vir a ser uma arquitectura
em extino. O futuro poder trazer-nos processadores
baseados na arquitectura EPIC bem como mais famlias
de processadores CISC, enquanto que os processadores
baseados em arquitecturas RISC podero tender a
desaparecer do mercado.
6. CONCLUSO
A diferena entre processadores RISC e CISC j no
reside no tamanho nem no tipo do conjunto de
instrues, mas sim na arquitectura em si.
As nomenclaturas RISC e CISC j no descrevem a
realidade das arquitecturas actuais. O que conta
actualmente a velocidade com que o processador
consegue executar as instrues que lhe so passadas e a
fiabilidade com que consegue correr o software.
Referncias:
[1] John L. Hennessy, David A. Patterson, Computer
Architecture: A Quantitative Approach, Second
Edition Morgan Kaufmann Publishers, 1996.
[2] David A. Patterson, Carlo H. Sequin, RISC I: A
Reduced Instruction Set VLSI Computer. 25 years of
the international symposia on Computer architecture
(selected papers), 1998.
[3] David R. Ditzel, David A. Patterson, Retrospective
on HLLCA. 25 years of the international symposia on
Computer architecture (selected papers), 1998.
[4] David A. Patterson, Reduced Instruction Set
Computers, Commun. ACM 28, Jan. 1985.
[5]Jeff Duntemann, Ron Pronk, Inside the PowerPC
Revolution, Coriolis Group, 1994.