Arquitectura CISC e RISC
Quando se fala em arquitecturas de processadores, há dois acrónimos a considerar:
- CISC – “Complex Instruction Set Computing”
- RISC – “Reduced Instruction Set Computing”
A diferença principal entre uma arquitectura CISC e uma arquitectura RISC reside, basicamente, no seguinte:
- Um processador CISC é concebido para operar com um conjunto bastante complexo de instruções máquina, de modo a que possa corresponder de uma forma mais próxima e directa às diversas tarefas de processamento; muitas instruções têm versões diferenciadas conforme o tipo e localização (“registers”, RAM, etc.) dos dados a operar; essas diferenças traduzem-se em tempos de execução diferenciados conforme o tipo de instrução – o que implica um ritmo irregular de funcionamentos do processador, em que diferentes tipos de instruções requerem diferente número de ciclos para a sua execução;
- Os processadores RISC são concebidos com base numa organização interna dos circuitos mais optimizada, de modo a que possam funcionar com um número reduzido de instruções máquina (apenas as mais fundamentais) e, ao mesmo tempo, com maior desempenho possível em termos de MIPS (milhões de instruções por segundo).
A tecnologia RISC, bastante mais dispendiosa no fabrico que a CISC, orientou-se, numa fase inicial, apenas para computadores de médio ou grande porte, workstations e servidores de rede, ou seja, máquinas em que são exigidos elevados níveis de desempenho do processador.
O custo dos processadores RISC fazia com que os computadores que os usavam ascendessem a custos impraticáveis no mercado dos computadores pessoais. O primeiro microprocessador de arquitectura RISC surgiu nos finais da década de 70, com o IBM 801.
Para além da IBM, outros fabricantes têm adoptado este tipo de arquitectura, fundamentalmente para a produção de workstations especializadas (por exemplo, para computação gráfica), como as da SUN’s PARC, a MIPS Computers, etc.
A linha de computadores x86, produzida pela Intel e outros fabricantes, começou a assentar no modelo CISC.
A partir do 486 e, mais acentuadamente no Pentium, os processadores Intel passaram a integrar algumas características do modelo RISC.
Actualmente, a tendência que se verifica é para que os processadores, mesmo dos computadores pessoais, passem a integrar características da arquitectura RISC, uma vez que esta apresenta consideráveis vantagens em termos de desempenho.
CISC (sigla para Complex Instruction Set Computer, ou, em uma tradução literal, "Computador com um Conjunto Complexo de Instruções"): é uma linha de arquitetura de processadores capaz de executar centenas de instruções complexas diferentes sendo, assim, extremamente versátil. Exemplos de processadores CISC são os 386 e os 486 da Intel.
ResponderEliminarOs processadores baseados na computação de conjunto de instruções complexas contêm uma microprogramação, ou seja, um conjunto de códigos de instruções que são gravados no processador, permitindo-lhe receber as instruções dos programas e executá-las, utilizando as instruções contidas na sua microprogramação. Seria como quebrar estas instruções, já em baixo nível, em diversas instruções mais próximas do hardware (as instruções contidas no microcódigo do processador). Como característica marcante esta arquitetura contém um conjunto grande de instruções, a maioria deles em um elevado grau de complexidade.
Examinando do ponto de vista um pouco mais prático, a vantagem da arquitetura CISC é que já temos muitas das instruções guardadas no próprio processador, o que facilita o trabalho dos programadores de linguagem de máquina; disponibilizando, assim, praticamente todas as instruções que serão usadas em seus programas. Os processadores CISC têm a vantagem de reduzir o tamanho do código executável por já possuirem muito do código comum em vários programas, em forma de uma única instrução.
Porém, do ponto de vista da performance, os CISC's têm algumas desvantagens em relação aos RISC's, entre elas a impossibilidade de se alterar alguma instrução composta para se melhorar a performance. O código equivalente às instruções compostas do CISC pode ser escrito nos RISC's da forma desejada, usando um conjunto de instruções simples, da maneira que mais se adequar. Sendo assim, existe uma disputa entre tamanho do código X desempenho.
Arquitetura RISC (Reduced Instruction Set Computing)
ResponderEliminarInicialmente os computadores tinham poucas instruções e um ou dois modos de endereçamento.Num segundo passo, surgiram os computadores microprogramados, com um conjunto de instruções extremamente complexo no nível de máquina, essa linguagem de máquina era interpretada por microprograma que ficam em ROM, o que implica em não modificar, apesar de ser um programa. Esta tecnologia levou a criação de computadores (ex. VAX) com 200 instruções e 12 modos de endereçamento.
A linguagem de alto nível começou a predominar e a distância semântica (semantic gap) complicou a construção de compiladores. Instruções de alto nível do tipo: if, while, case, etc., devem ser traduzidas para instruções de baixo nível tipo: mov, add e jump. A solução para reduzir esta distância foi elevar o nível da linguagem de máquina, o que era analisado positivamente por alguns autores, que desejavam instruções de máquina com mais campos e menos registradores.
Também, em outros tempos, a velocidade da RAM era muito mais baixa que a da CPU, além disso, 10 vezes mais baixa que a ROM, o que criou o desejo de que todos as instruções fossem resolvidas em microcódigos ao invés de programação normal.Até a década de 1960, os softwares de sistema eram escritos em linguagem de montagem (incluem-se os sistemas operacionais), era necessário dar muito suporte de hardware à programação e para substituir seqüências de operações aritméticas primitivas.
Os elementos básicos são:Grande número de registradores de propósito geral ou uso de tecnologias de compilação na otimização do uso de registradores, conjunto simples e limitado (reduzido) de instruções e enfoque na utilização de pipeline de instruções.
A arquitetura RISC possui regras:
Sacrifique tudo para reduzir o tempo de ciclo da via de dados.
Filosofia básica
1. Analisar as aplicações para encontrar as operações chave e elaborar uma máquina ótima para as realizadas pelos programas alvo. Segundo Tanenbaum - 1992, quase 50% das instruções de um programa são comandos de atribuição, 23% de comandos de seleção, 15% de chamadas à funções, 6% de laços de repetição e, 10%, de outros comandos.
2. Projetar uma via de dados que seja ótima para as operações chave. Este é o coração de uma máquina RISC. Composto pelos registradores, pela ULA e pelos barramento internos que os conectam. Em um único ciclo, os operandos devem ser lidos dos registradores, operados pela ULA e o resultado armazenado em um registrador.
1. Projetar as instruções que executem as operações chaves, estas devem utilizar de forma ótima as vias de dados, ou seja, cada instrução deve utilizar um único ciclo da via de dados.
ResponderEliminar2. Adicionar novas instruções somente se elas não diminuírem a velocidades da máquina
3. Repetir este processo para outros recursos
Instruções por ciclo de via de dados
A característica mais importante de uma máquina RISC é que as instruções são completadas em um único ciclo de via de dados. Se isso não ocorre, ela não pode fazer parte do conjunto de instruções. Isto acarreta em não ser possível ter instruções como de multiplicação, o que é resolvido por uma série de operações de soma e deslocamento.
Uma instrução RISC é muito parecida com uma microinstrução. Uma operação de alto nível precisa de muitas instruções para ser completada, por outro lado, uma instrução CISC pode levar, muitos ciclos para ser completada devido a interpretação pelo microprograma.
REGISTRADORES
Os compiladores escritos para máquinas RISC fazem uso intenso de registradores, com intenção de reduzir o tráfego na via de dados em comunicação com a memória.
Um processador RISC não tendo microcódigo, não ocupa área de memória para tal tipo de operação, portanto, pode construir um grande número de registradores utilizando esse espaço.
ORGANIZAÇÃO DOS REGISTRADORES
Os registradores são organizados na forma de janelas sobrepostas. Apesar da CPU possuir muitos registradores, em média 512, nesta técnica apenas um conjunto de registadores, em geral de 32 registradores de 32 bits, é visível para o programa a cada momento. Este conjunto é ainda dividido em subconjuntos conforme mostra a figura abaixo.
32 bits
R0..R7 Variáveis globais e ponteiros Utilizados por todos os procedimentos, o compilador decide o que colocar aqui.
Reduced Instruction Set Computer ou Computador com um Conjunto Reduzido de Instruções (RISC), é uma linha de arquitectura de computadores que favorece um conjunto simples e pequeno de instruções que levam aproximadamente a mesma quantidade de tempo para serem executadas. A maioria dos microprocessadores modernos são RISC, por exemplo DEC Alpha, SPARC, MIPS, e PowerPC. O tipo de microprocessador mais largamente usado em desktops, o x86, é mais CISC do que RISC, embora chips mais novos traduzam instruções x86 baseadas em arquitectura CISC em formas baseadas em arquitectura RISC mais simples, utilizando prioridade de execução.
ResponderEliminarOs processadores baseados na computação de conjunto de instruções reduzido não tem micro-programação, as instruções são executadas directamente pelo hardware. Como característica, esta arquitectura, além de não ter micro código, tem o conjunto de instruções reduzido, bem como baixo nível de complexidade.
REPRESENTAÇÃO DE CARACTERES E SÍMBOLOS
ResponderEliminarA representação de caracteres e símbolos em computador é feita atribuindo-se a cada caractere ou símbolo um código binário. Desta forma são construídas tabelas (padrões) em que cada código binário representa para o computador um determinado caractere ou símbolo.
Cada computador (ou cada fabricante) adota um determinado padrão. O número de bits que será utilizado no padrão é uma decisão do fabricante e determinará quantos caracteres (e símbolos) poderão ser representados.
Nota: Se um padrão utiliza 7 bits, será possível representar até 27 = 128 caracteres e símbolos e com 8 bits serão 28 = 256.
O principal padrão hoje utilizado é o ASCII, de 7 bits, com uma variação de 8 bits (ASCII extendido) em que o 8º bit permite representar outros 128 símbolos.
Nota 1: Nos computadores PC, devido às diferenças lingüísticas, com a necessidade de representar caracteres diferentes para para dar suporte a outras línguas que não o inglês, foram criadas diversas "páginas de código". Por exemplo, a página de código 437 refere-se aos Estados Unidos, a 850 é a Multilingüe (Latin I), a 860 para Português (incluindo caracteres que não existem no inglês, tais como ç e os acentos).
Nota 2: ASCII é um acrônimo para American Standard Code for Information Interchange (ou Código Padrão Americano para Intercâmbio de Informações).