Quais as principais características e diferenças de uma arquitetura CISC e RISC?

  • Home
  • Arquitetura Cisc e Risc qual diferença

* The preview only show first 10 pages of manuals. Please download to view the full documents.

Loading preview... Please wait.

  • Submitted by: Anderson Raposo
  • File size: 297.8 KB
  • File type: application/pdf

Add to bookmark

Description

Download Arquitetura Cisc e Risc qual diferença PDF for free.

Report "Arquitetura Cisc e Risc qual diferença"

About Us

We believe everything in the web must be free. So this website was created for free download documents from the web.

We are not related with any websites in any case.

Disclaimer

We are not liable for the documents. You are self-liable for your save offline.

This site utilizes cookies to guarantee you get the best experience on our site. You can learn how to disable cookie here.

Privacy Policy

We are committed to ensuring that your privacy is protected.

You can ask for link removal via contact us.

Introdução

Com a evolução acelerada da tecnologia de semicondutores a industria de computação começou a produção de processadores cada vez mais 

velozes, o que levou a diversos estudos para o aperfeiçoamento da arquitetura de computadores no início dos anos 80. Estes estudos, por sua vez, levaram ao surgimento de uma nova arquitetura de computadores, chamada arquitetura RISC.

RISC é a abreviatura de "Reduced Instruction Set Computer", que significa Computador com um Conjunto Reduzido de Instruções e é a identificação de um tipo de arquitetura de UCP e consequentemente uma nova arquitetura de computação. Esta arquitetura se contrapoẽ à arquitetura padrão até então que foi a arquitetura CISC que é a abreviatura de "Complex Instruction Set Computer", que significa Computador com um Conjunto Complexo de Instruções. 

Praticamente todos os computadores lançados no mercado, durante os anos 80, desde os microcomputadores, passando pelos minicomputadores até os computadores de grande porte,

todos usavam a arquitetura CISC como padrão e que tinha uma grande quantidade de instruções, um número reduzido de registradores, vários modos de endereçamento e processamento controlado por microprograma.

Isto mudou no início dos anos 90 com o aparecimento das primeiras estações de trabalho SPARC, que tinham arquitetura RISC, e que foram lançadas pela Sun Microsystems. A partir de então o conceito, projeto e produção de computadores com arquitetura RISC passaram a ser críticos para todo fabricante de computadores e hoje é uma realidade no mercado. A Sun não foi a primeira empresa a comercializar máquinas RISC mas ela foi a empresa que praticamente criou o mercado RISC e se tornou uma grande empresa neste segmento. Os demais fabricantes buscaram desenvolver novos computadores e famílias de servidores com a arquitetura RISC desde então.

Desenvolvimento da tecnologia RISC

Os estudos que levaram ao desenvolvimento da tecnologia RISC se basearam em três caminhos próximos mas que levaram a alternativas diferentes:

  • Projeto da IBM dos anos 70 que desenvolveu uma máquina com baixo desempenho e que levou a um fracasso comercial. A IBM ganhou mercado nos anos 90 com o lançamento das máquinas RS/6000 com processadores RISC e posteriormente com a família PowerPC, também com processadores RISC, e que foi desenvolvida em conjunto com a Motorola e a Apple.

  • Estudos da Universidade da Califórnia, que resultaram nos processadores RISC da empresa MIPS que foi fundada por pesquisadores daquela Universidade.

  • Estudos da Universidade de Berkley na Califórnia, que resultaram nos processadores RISC da empresa Sun Microsystems.

Nestes estudos foram feitos vários testes a fim de verificar o comportamento das instruções de máquina em relação ao desempenho, durante a execução de programas implementados em linguagens de alto nível. O objetivo era conseguir melhores resultados de performance na execução destes programas.

Linguagens de alto nível possuem comandos e instruções poderosos onde cada instrução de alto nível, no processo de conversão para linguagem de máquina, é convertida em muitas instruções de máquina, gerando um alto volume de instruções de máquina a ser processada.

O objetivo daqueles testes era verificar o desempenho das máquinas na execução de programas implementados desta forma. 

A tabela abaixo mostra um quadro comparativo de características de alguns sistemas RISC e CISC dos anos 70, 80 e 90.

Quais as principais características e diferenças de uma arquitetura CISC e RISC?


Com isto vemos que a evolução não somente do hardware, no caso dos semicondutores, mas também do software, das linguagens de programação de alto nível,  levou a necessidade de se projetar processadores mais velozes e com desempenho superior,

o que resultou na arquitetura RISC que tem por objetivo melhor desempenho na execução de programas implementados em linguagens de alto nível, sobretudo as linguagens de 4a geração.

Isto foi necessário pois cada linguagem de alto nível possuía comandos poderosos que foram criados para facilitar a vida dos programadores. Esses comandos ofereciam facilidade para os programadores escreverem programas complexos, com menor esforço, em vista que os comandos tinham capacidade de realizar muitas tarefas complexas, como criar elementos de interface com usuário mais elaboradas, com menus, desenho de gráficos e imagens, suporte à programação multiusuário, redes de computadores, bibliotecas de funções matemáticas, etc.

No entanto, estes comandos não facilitavam o processamento pelo hardware, comprometendo o desempenho do sistema de computação durante a execução dos programas.  

Isto acontenceu devido ao fato de que as instruções de máquina eram primitivas em relação aos comandos das linguagens de alto nível.

As instruções de máquina continuavam simples, primitivas e rudimentares, realizando tarefas simples e diretas, como adicionar dois valores ( ADD ), mover o conteúdo de uma célula de memória para outra ( MOV ) ou ainda saltar para outro endereço de memória ( JMP ). 

Desta forma,  cada comando de uma linguagem de alto nível precisava de muitas instruções de máquina para realizar um processamento.

Imagine por exemplo, quantas instruções de máquina são necessárias para executar um comando SELECT da linguagem SQL ou para construir um menu de barras em uma aplicação desktop ou ainda para gerar um gráfico em um relatório por um sistema financeiro.

Assim se um único comando de linguagem de alto nível precisava ser desmembrado em muitas instruções de máquina então isso significava que:

-

Havia uma distância muito grande entre os comandos de alto nível e as instruções primitivas. Esta distância era conhecida por 'gap semântico'.

-

Devido a este 'gap' era necessária a construção de compiladores e ligadores ( linkeditores ) bastante sofisticados e capazes de realizar o mapeamento de comandos de alto nível em muitas instruções primitivas da forma correta.

Era realmente um esforço muito grande desses compiladores para, durante a compilação e linkedição, realizar a conversão das duas linguagens, a linguagem de alto nível e a linguagem de máquina. 

O resultado final deste processo pesado de conversão em linguagem de máquina era um código pesado, com muitas instruções e que se tornava mais lento ao ser executado, resultando em ineficiência na execução dos programas

. Para reduzir este 'gap semântico', os arquitetos de processadores imaginaram as seguintes soluções:

  • Aumentar a quantidade de instruções de máquina e torná-las mais complexas a fim de atender aos requisitos de processamentos dos complexos comandos das linguagens de alto nível. Esta estratégia levou a criação das máquinas CISC diminuindo o 'gap semântico' mas nem por isso resultou em melhor desempenho;
  • Incluir mais modos de endereçamento de memória no conjunto de instruções;
  • Utilizar mais micro programação ao invés de realizar operações por firmware.

Firmware é o termo usado para se referir ao conjunto de instruções programadas diretamente no hardware de um dispositivo eletrônico e armazenado de forma permanente em um circuito integrado de memória de hardware ( ROM, PROM, EPROM, ERPROM ). Nos computadores o firmware é usado na BIOS e nos leitores e/ou gravadores de CD/DVD.

Diferente do firmware que tinha as instruções implementadas diretamente na máquina, a micro programação utiliza um conjunto de instruções implementadas em um interpretador que executa um micro programa. São exemplos de máquinas micro programadas as famílias Intel e Motorola.

Além disso, os pesquisadores começaram a analisar, através de testes de desempenho, os programas que eram executados a fim de melhorar o projeto dos processadores. A figura abaixo mostra uma tabela com um estudo do comportamento dos programas. Este estudo também influenciou o projeto de hardware para melhorar os processadores.

Quais as principais características e diferenças de uma arquitetura CISC e RISC?


Outros estudos que também influenciaram o projeto das máquinas RISC foram realizados na Universidade da Califórnia e que tinham como objeto de estudo o consumo de recursos nas chamadas de funções e subrotinas pelos programas ( CALL ). 

Nestes estudos foi verificado que não era necessário ter um conjunto tão grande de instruções de máquina se apenas algumas instruções eram utilizadas pela maioria dos programas

e podiam atender aos requisitos de processamento durante a execução dos programas.

Muitas instruções significa que existem muitos códigos de operação, um para cada instrução, e muitos bits em cada código, conforme o número de instruções do processador. Este fato acarreta em dupla desvantagem: instrução com maior comprimento, devido ao tamanho do código de operação, consome maior número de bits e leva mais tempo de interpretação para ser decodificada, pelo decodificador,  e posteriormente executada pelo processador. 

Os resultados das pesquisas acima levaram os pesquisadores e projetistas a trabalhar em uma arquitetura de computação que trata-se estes problemas, com o propósito de reduzir o "gap semântico" entre os comandos de alto nível e as instruções de máquina mas que também acelerasse o desempenho das máquinas. O Este novo projeto de hardware deu origem à arquitetura RISC.

 Características da Arquitetura RISC

A arquitetura RISC possui características específicas que tem como objetivo tratar os problemas e limitações da arquitetura CISC. Entre as principais características da arquitetura RISC estão os seguintes:

  • Menor quantidade de instruções e um conjunto de instruções com tamanho fixo;
  • Execução otimizada de Chamada de Funções (CALL);
  • Menor quantidade de modos de endereçamento;
  • Modo de execução com Pipelining.

Vamos ver um pouco sobre cada uma dessas características da arquitetura RISC.

Menos Quantidade de Instruções e instruções com tamanho fixo

Esta é a característica mais importante da arquitetura RISC. Possuir um conjunto menor de instruções do que uma máquina CISC de mesma capacidade.

Com menor quantidade de instruções e com cada uma delas tendo sua execução otimizada, o sistema deve produzir resultados com melhor desempenho.

Além disso, todas as instruções tem tamanho fixo, todas tem o mesmo tamanho em bits, o que torna sua busca e interpretação mais rápida e eficiente

. Isto porque não é necessário avaliar o tamanho do código de operação para que se possa incrementar corretamente o CI ( Contador de Instruções ).

Execução Otimizada na chamada de Funções

Outra característica da arquitetura RISC diz respeito à forma como é feita a chamada de funções ( CALL ) e passagem de parâmetros.  Os estudos sobre o comportamento dos programas mostrou que a chamada de funções requer poucos dados mas que para a passagem de parâmetros é necessário que sejam feitas várias transferências, acessos à memória principal, para leitura e escrita, ou seja, vários ciclos de memória, um para cada parâmetro. 

Enquanto que nas máquinas CISC a passagem de parâmetros conduz a operações de leitura/escrita com a memória, nas máquinas RISC a passagem de parâmetros ocorre no processador através do uso de um número muito maior de registradores, minimizando acessos à memória principal, otimizando o processo e aumentando o desempenho graças ao número maior de registradores que existem nas máquinas RISC. 

A colocação de mais registradores na UCP foi possível devido à redução do tamanho de circuitos ( miniaturização do hardware ) necessários à decodificação e execução de instruções uma vez que o número de instruções é menor e portanto não são necessários tantos circuitos para decodificação/execução. 

Isto possibilitou a adição de mais registradores na UCP, que passaram a ser utilizados para transferência dos parâmetros das operações minimizando o acesso à memória principal e aumentando o desempenho geral nas chamadas de funções.

Menor Quantidade de Modos de Endereçamento

Para facilitar o trabalho dos compiladores, o conjunto de instruções das máquinas CISC tende a suportar vários modos de endereçamento.

Assim, em uma máquina CISC, uma simples instrução de somar dois operandos pode ser executada de vários formas diferentes: com os dois operandos em registradores, com os dois operandos na memória principal, com um operando na memória principal e outro em um registrador, etc.

Nas máquinas RISC, com um projeto mais simples, existem apenas duas instruções para acesso à memória LOAD e STORE e que usam o modo de endereçamento direto.  

Todas as demais operações, operações matemáticas por exemplo, são feitas diretamente no processador.

Esta abordagem, simplifica o projeto e a implementação das instruções, reduzindo ainda mais o tempo para sua execução.

Modo de Execução Pipeline

Talvez a característica mais importante da arquitetura RISC.

O uso altamente produtivo de processamento pipelining devido ao conjunto mais simples de instruções, com formato único e simples dessas instruções de máquina.

A técnica pipelining funciona mais eficientemente quando as instruções são todas semelhantes, no que se refere ao seu formato e complexidade. Com isto a arquitetura RISC pode se beneficiar da técnica pipeline para o processamento paralelo das instruções.

Imagine que em uma linha de montagem, numa fábrica de automóveis por exemplo, a montagem dos automóveis é mais rápida se todos os automóveis forem do mesmo modelo, com as mesmas peças para serem montadas, ou seja, sendo necessário as mesmas tarefas com tempo semelhante para serem realizadas. Isto aumenta a produtividade da linha de montagem, fazendo com que seja maior. No caso de computadores, o ideal seria que cada instrução consumisse um 1 ciclo de relógio para sua execução mas isso nem sempre é possível.

Vamos considerar, por exemplo, uma linha de montagem de um objeto que consome 4 etapas, sendo cada etapa com tarefas que consomem 15 minutos no total. Se utilizamos pipelining nessa linha de montagem e cada etapa dura 15 minutos e colocamos as 4 etapas em paralelo podemos então produzir um objeto a cada 15 minutos e com isso temos um sistema altamente eficiente e produtivo.

Por outro lado, se as tarefas são diferentes, e consomem portanto tempos diferentes, o tempo total de produção de um objeto será superior a 15 minutos, pois a tarefas que consome mais tempo se torna um gargalo no sistema e determina um atraso no processo geral, sendo que o objeto seguinte não será mais produzido em 15 minutos mas com atraso, comprometendo a produtividade geral da linha de montagem.

O projeto de processadores que executam várias instruções quase que totalmente em paralelo é uma técnica bastante eficaz para acelerar o desempenho dos processadores, reduzindo o tempo de execução das instruções a poucos ciclos.

Medidas de Desempenho

Há vários métodos e unidades de medida para medir e divulgar o desempenho de processadores e de sistemas de computação. 

Uma das mais conhecidas e que pode gerar resultados ambíguos é o MIPS ( Milhões de Instruções Por Segundo ).  É ambígua porque cada processador executa uma instrução de modo diferente e ainda porque possui um conjunto de instruções diferentes.

Como comparar adequadamente medidas de comportamentos que são diferentes?

MIPS não é uma unidade de medida adequada para medir o desempenho de máquinas RISC e CISC porque pode iludir o observador com resultados inadequados devido aos diferentes princípios e conceitos que envolvem o projeto da ambas as arquiteturas. Como as máquinas RISC possuem instruções de máquina mais simples do que as instruções de máquina das máquinas CISC, é necessário que um número maior de instruções de máquinas seja executado para atender aos requisitos de processamento de um programa. Isto pode dar uma ilusão de que as máquinas RISC são capazes de executar um número maior de instruções e portanto são mais rápidas.

Na verdade, dois processadores um RISC e um CISC podem levar o mesmo tempo de execução de um programa, por exemplo, 3 minutos. Porém o processador RISC irá executar um número de instruções de máquina muito maior do que o processador CISC, justamente por ter um conjunto mais simples de instruções de máquina.

A taxa MIPS do processador RISC será maior do que a taxa MIPS do processador CISC, embora ambos tenham processado o programa no mesmo tempo de 3 minutos.

Uma outra unidade de medida é o MFLOPS ( Milhões de Operações de Ponto Flutuante por Segundo ). Esta é uma unidade de medida mais adequada para medir o desempenho de um processador que executa programas envolvendo grande quantidade de cálculos matemáticos

.

Entretanto, os testes devem ser feitos  sempre com o mesmo programa em todos os processadores

. Além disso, deve-se ter atenção quanto à linguagem de programação utilizada, pois existem linguagens mais adequadas à processamento matemático, como é o caso da linguagem FORTRAN. Um programa em FORTRAN seria executado muito mais rapidamente do que um programa em JAVA pois FORTRAN é uma linguagem para aplicações matemáticas enquanto JAVA é uma linguagem de uso geral.

A unidade de medida mais usada atualmente chama-se SPECMARK que foi criada em 1989 por um comitê formado por diversos fabricantes de hardware.

o teste feito com esta unidade de medida é composto por 10 programas, 6 programas são usados para cálculos matemáticos e outros 4 programas são usados para operações com inteiros e caracteres. Os programas são escritos em C e FORTRAN e são compilados no compilador do sistema onde será executado o teste.

Esta unidade de medida é a mais adequada para se avaliar o desempenho de máquinas atualmente.

Quais as principais características da arquitetura CISC?

Pode-se concluir que os projetistas de arquiteturas CISC consideram três aspectos básicos: - uso de microcódigo; - construção de conjuntos com instruções completas e eficientes (completeza no conjunto); - criação de instruções de máquina de “alto nível”, ou seja, com complexidade semelhante à dos comandos de alto nível ...

Quais as principais características da arquitetura RISC?

Estão descritos a seguir os elementos base que constituem a arquitetura RISC (Reduced Instruction Set Computer): - pequeno conjunto de instruções, todas com largura fixa; - execução otimizada de chamada de função; - menor quantidade de modos de endereçamento; - uso de pipelining; - execução rápida de cada instrução ( ...