ARQUITETURA CISC
Por: alex_96abc • 3/5/2017 • Relatório de pesquisa • 1.116 Palavras (5 Páginas) • 478 Visualizações
ARQUITETURA CISC
No inicio dos anos 70, os compiladores eram muito pobres , sendo a memória lenta no qual causava serias limitações. Estas limitações acabaram causando uma supervalorização no software . O hardware era cada vez mais barato e o software cada vez mais caro. Um grande número de investigadores e projectistas sabiam que isso só mudaria caso se mudasse esta situação do software para o hardware.
Alguns investigadores sugeriram que uma maneira de tornar o trabalho dos programadores mais fácil seria fazer com que o código assembly se parecesse mais com o código das linguagens de alto nível (C ou Pascal), no qual se teve a ideia de se produzir uma arquitetura CISC.
Principais razões para se promover este tipo de arquitetura:
∙ Reduzir as dificuldades de escrita de compiladores;
∙ Reduzir o custo global do sistema;
∙ Reduzir os custos de desenvolvimento de software;
∙ Reduzir drasticamente o software do sistema;
∙ Reduzir a diferença semântica entre linguagens de programação e máquina;
∙ Melhorar a compactação do código;
Com a evolução da tecnologia, o micro-código estava cada vez mais rápido. Como o micro-código era cada vez melhor, fazia cada vez mais sentido transferir funcionalidades do software para o hardware. Assim, os conjuntos de instruções cresceram rapidamente e o número médio de instruções por programa decresceu.
Contudo, à medida que os microprogramas cresceram para fazer face ao crescente número de instruções, alguns problemas começaram a surgir. Para manter um bom desempenho, o micro-código tinha que ser altamente optimizado, eficiente e bastante compacto para que os custos de memória não começassem a crescer desmesuradamente. Como resultado, o micro-código incluído nas máquinas que vinham para o mercado tinha, por vezes, erros e tinha que ser corrigido inúmeras vezes. Foram estas dificuldades de implementação do micro-código que levaram a que os investigadores questionassem se a implementação de todas estas instruções complexas e elaboradas em micro-código seria, realmente o melhor a se fazer.
Esta abordagem provocou a inversão da filosofia iniciada pelos CISC e a complexidade teve que ser retirada do hardware e ser passada para o software. Os investigadores diziam que o suporte para as linguagens de alto nível poderia ser mais eficiente se fosse implementada em software. Esses recursos poderiam ser utilizados em outras tecnologias para melhorar o desempenho. Com base nisto foi realizados diversos estudos nos funcionamentos dos processadores.
O que os investigadores concluíram dos estudos realizados foi que um pequeno conjunto de instruções estava a fazer a maioria do trabalho. Esta ideia da redução do conjunto de instruções, substituindo as instruções mais complexas por conjuntos de instruções mais simples, foi o que esteve na origem do termo Reduced Instruction Set Computer ( RISC) . Ao incluir apenas um pequeno e criteriosamente escolhido grupo de instruções numa máquina, poder-se-ia deixar de fora o suporte do micro-código e passar a usar a execução direta.
ARQUITETURA RISC
Não só o número de instruções foi reduzido, mas também o tamanho das mesmas. Foi decidido que todas as instruções RISC deveriam, sempre que possível, demorar apenas um ciclo de relógio a terminar a sua execução. A razão por trás desta decisão foi baseada em algumas observações feitas pelos investigadores. Em primeiro lugar, aperceberam-se que tudo o que poderia ser feito usando as instruções de micro-código, também poderia ser feito com pequenas e rápidas instruções de assembly. A memória que estava a ser usada para armazenar o micro-código, poderia simplesmente ser usada para armazenar o assembler, assim a necessidade de micro-código seria pura e simplesmente eliminada. É por esta razão que muitas das instruções de uma máquina RISC correspondem a micro-instruções numa máquina CISC.
A segunda razão que levou a que o formato fosse uniformizado e demorasse apenas um ciclo de relógio foi a observação de que a implementação do pipelining só é realmente viável se não tiver que lidar com instruções de diferentes graus de complexidade. Como o pipelining permite a execução de várias instruções em paralelo, uma máquina que o suporte consegue reduzir drasticamente o número médio de ciclos por instrução (CPI – Cycles Per Instruction).
O sucesso deste tipo de arquitectura depende fortemente da “inteligência” e nível de optimização dos compiladores que se “aproveitam” da maior responsabilidade que lhes é concedida para poderem debitar código mais optimizado. Este fato de transferir o fardo da optimização do código do hardware para o compilador foi um dos mais importantes avanços da arquitectura RISC.. Assim, as máquinas RISC dedicavam os seus limitados recursos (transístores) a providenciar um ambiente em que o código poderia ser executado tão depressa quanto o possível, confiando no compilador para fazer o código compacto e optimizado. Este tipo de arquitectura é caracterizado, a este nível, por ter um número bastante grande, por comparação com as máquinas CISC, de registos de uso geral.
...