Como havia uma
preocupação de alguns projetistas em construir processadores simples (que
executavam instruções simples rapidamente), logo ficou clara a importância de
se projetarem instruções que pudessem ser iniciadas prontamente (o fato de se
iniciar uma nova instrução antes de terminar a execução de outras é de
fundamental importância para o bom êxito da técnica de pipeline). Chegaram a
ser construídos processadores com um pequeno número de instruções (50) e o que
chamou atenção é que os processadores que havia no mercado eram de 200 a 300
instruções. O tempo que uma instrução leva para ser executada passou a importar
menos do que a quantidade de instruções que pudessem ser iniciadas em um
segundo.
Com efeito, a
abreviatura RISC quer dizer Reduced
Instruction Set Computer, que contrastava com a técnica CISC (Complex Instruction Set Computer). Os
adeptos da filosofia RISC defendiam a tese de que a melhor maneira de se
projetar um processador era com um pequeno número de instruções, todas muito
simples, capazes de serem executadas em um ciclo do caminho de dados, buscando
o conteúdo de dois registradores, operando-os de alguma maneira (por exemplo,
adicionando-os ou aplicando-lhes a função AND lógica) e guardando o resultado
em um registrador. O argumento dos adeptos do RISC era que, mesmo que uma
máquina RISC precisasse de quatro ou cinco instruções para fazer o que uma
máquina CISC faria em apenas uma, se as instruções RISC fossem 10 vezes mais
rápidas (por não serem interpretadas) a máquina RISC vencia. É importante
observar que, naquela época, a velocidade das memórias principais havia
alcançado a velocidade das memórias Read-Only, que eram usadas nas memórias de
controle, de modo que a penalidade paga pela interpretação cresceu bastante,
favorecendo em muito as máquinas RISC. Com base naquilo que acabamos de expor,
é lícito pensar que, em função da melhor performance da tecnologia RISC, as
máquinas projetadas nessa tecnologia (como, por exemplo, as máquinas com o chip
Alpha da DEC) tornar-se-iam um sucesso de vendas, suplantando as máquinas
projetadas na tecnologia CISC (como por exemplo, as máquinas com o chip Pentium
da Intel). Nada disso aconteceu. Por que não? Em primeiro lugar, existe a
questão de compatibilidade com máquinas mais antigas, havendo empresas que têm
bilhões de dólares investidos em software para a linha Intel. Portanto mudar de
arquitetura significaria, na prática, jogar no lixo este investimento. Em
segundo lugar, surpreendentemente, a Intel tem-se esforçado por utilizar as
idéias básicas do projeto RISC em suas máquinas cuja filosofia de projeto é
CISC. A partir dos 486, a Intel passou a projetar seus processadores com núcleo
RISC, núcleo este responsável pela execução de instruções mais simples (e,
consequentemente mais frequentes) em um único ciclo do caminho de dados,
enquanto as instruções mais complexas são interpretadas, forma clássica de
execução das instruções na filosofia CISC. Todas as instruções de máquina RISC
são executadas diretamente pelo hardware. Nenhuma delas é interpretada por micro instruções. A eliminação de um nível de interpretação resulta em uma
velocidade de execução bastante rápida para a maioria das instruções de uma
máquina RISC. Para aqueles processadores cujo conjunto de instruções siga a
filosofia CISC, as instruções mais complexas podem ser divididas em várias
partes, cada uma das quais sendo executadas por uma sequencia de micro instruções. Esse passo extra, a interpretação, torna a máquina mais lenta,
porém, como ela só é empregada nas instruções que ocorrem com menos frequência,
isso pode ser tolerado.
OBSERVAÇÕES IMPORTANTES
Exemplos de processadores CISC: 386,
486.
RISC: possuem um menor número de
circuitos internos e podem trabalhar a frequências + altas.
Endereçamento apenas por registrador uma das consequências da regra de ouro é na redução
drástica dos modos de endereçamento. Ao contrário das máquinas CISC, que
possuem muitos modos de endereçamento, as máquinas RISC apresentam apenas o endereçamento
por registrador. Assim, não envolvendo acessos à memória, as instruções são
executadas uma por ciclo. A pergunta natural que se faz é como carregar e
descarregar registradores. A solução é permitir apenas duas instruções, LOAD e
STORE, que acessam a memória. Tais instruções em geral não podem ser
completadas em um ciclo. Aumentar o ciclo por causa de LOAD e STORE não é
recomendado. A solução é o uso de pipelining como veremos a seguir.
RISC
guarda o endereço de instruções em um registrador
CISC, guarda o endereço de instruções na stack.
RISC, Operandos sempre em registradores.
CISC, Operandos em memória.
Leia também: Filosofia ARM
TABELA COMPARATIVA
REFERÊNCIA BIBLIOGRÁFICA
TANENBAUM, A., Organização Estruturada de Computadores, Prentice Hall do Brasil, 2013
Nenhum comentário:
Postar um comentário