TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Arquitetura RISC (Reduced Instruction Set Computing)

Pesquisas Acadêmicas: Arquitetura RISC (Reduced Instruction Set Computing). Pesquise 860.000+ trabalhos acadêmicos

Por:   •  30/9/2014  •  Pesquisas Acadêmicas  •  5.597 Palavras (23 Páginas)  •  379 Visualizações

Página 1 de 23

ESTUDO SOBRE A ARQUITETURA RISC

Carlos Sica, 1999

1. Arquitetura RISC (Reduced Instruction Set Computing)

1.1. Histórico

Inicialmente 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.

1.2. Regras

Sacrifique tudo para reduzir o tempo de ciclo da via de dados.

Microcódigo não é mágico.

1.3. 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.

3. 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.

4. Adicionar novas instruções somente se elas não diminuírem a velocidades da máquina

5. Repetir este processo para outros recursos

1.4. 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.

Um 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.

1.5. 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.

1.5.1. 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.

R8..R15 Parâmetros de entrada Evita o uso de pilha na memória, que é utilizada apenas em caso de exceder 8 parâmetros.

R16..R23 Variáveis locais Em geral 8 variáveis são suficientes para um procedimento, excesso vai na pilha.

R24..R31 Parâmetros de saída Parâmetros para os procedimentos chamados (entrada para eles).

Por este formato, facilmente podemos concluir que os registradores de variáveis globais podem ser os mesmos para todos os procedimentos, assim, não há necessidade de se ter fisicamente um conjunto para cada.

Os parâmetros de saída, que são entradas para o procedimento chamado, também podem ser sobrepostos economizando espaço.

ProcA ProcB ProcC ProcD

Globais Globais Globais Globais

Entrada

Locais

Saída Entrada

Locais

Saída Entrada

Locais

Saída Entrada

Locais

Saída

Quando o procedimento A chama o procedimento B passando parâmetros para ele, a área é comum, este subconjunto de registradores são sobrepostos.

1.5.2. Estudo comparativo: REGISTRADORES x CACHE

Na arquitetura RISC, os registradores são organizados por janelas sobrepostas, e servem para armazenar as variáveis e parâmetros que são acessadas mais rapidamente. Esta filosofia coincide com a filosofia da memória cache utilizada pela maioria das arquiteturas conhecidas atualmente.

1.5.2.1. Variáveis locais

No RISC todas as variáveis locais, com as exceções discutidas no item 1.5.1, são armazenadas em registradores. Já, no caso da cache, isto é feito

...

Baixar como (para membros premium)  txt (39.1 Kb)  
Continuar por mais 22 páginas »
Disponível apenas no TrabalhosGratuitos.com