Aspectos da Arquitetura de Processadores RISC

Autoras: Nádia Pádua de Mattos - SESA Sara Fichman Raskin - GPT

Um comparativo RISC x PC

1 Histórico

O primeiro processador do mundo nasceu juntamente com o primeiro computador, o Eniac (Eletronic Numerical Integrator and Calculator), construído por John Von Neuman em 1946.

O processador é a unidade principal do computador; ele controla o fluxo dos programas, executa operações lógicas e aritméticas, acessa a memória, faz solicitações aos periféricos, confunde-se com a CPU.

Em 1971, na Intel Corporation, Ted Hoff construiu um processador que tinha todas as unidades reunidas em um só chip, o 4004, o primeiro microprocessador.

A diferença básica entre o processador tradicional e o microprocessador é o fato de este último poder ser produzido na linha de montagem, em larga escala, diminuindo drasticamente o custo por causa do preço e do pouco calor dissipado; os microprocessadores se espalharam pelo mundo, conquistaram o mercado e fizeram fortunas incalculáveis.

A idéia original do projeto RISC, de produzir máquinas com um conjunto reduzido de instruções, é, em última análise, uma volta ao início da computação, pois os primeiros computadores digitais tinham poucas instruções.

A crescente complexidade das arquiteturas foi decorrente da necessidade de compatibilizar novos modelos com os anteriores; de reduzir o "gap" semântico entre programas escritos em linguagem de alto nível e o conjunto de instruções das máquinas.

Um projeto de pesquisa da IBM identificou que a maioria das instruções eram usadas com pouca freqüência. Cerca de 20% delas eram usadas 80% das vezes. Os próprios desenvolvedores de sistemas operacionais habituaram-se a determinados subconjuntos de instruções, tendendo a ignorar as demais, principalmente as mais complexas.

A proposta RISC foi então implementar todo um conjunto de instruções em um único chip.

Desde do Eniac, os processadores utilizavam conjuntos de instruções (instruction sets) bastante complexos. Esse tipo de arquitetura, por sua difícil execução, exige que o processador analise as instruções e execute pequenas sub-rotinas gravadas dentro do próprio processador.

Acreditando que essas sub-rotinas ou microcódigos fossem contraproducentes, Jonh Cocke, da IBM, teve a idéia de construir um processador mais simples, que não necessitasse de microcódigo, deixando o trabalho pesado para os programas. Estava criada a filosofia do computador com conjunto reduzido de instruções (Reduced Instruction Set Computer - RISC), um processador menor, mais barato, mais frio. Com o tempo, este termo acabou por se generalizar e denomina todas as máquinas que obedecessem a um conjunto específico de princípios de arquitetura.

Como era preciso identificar os outros computadores não RISC, foi cunhado o termo CISC (Complex Instruction Set Computer). Apesar de inventada em 1974, a filosofia RISC só chegou ao mercado em 1985, pelas mãos da Sun Microsystems, com o Sparc.

Hoje temos como microprocessadores CISC toda a plataforma Intel, dos tradicionais ao Pentium. Do outro lado estão o consórcio PowerPC, MIPS, HP e Digital, cada qual com seu chip RISC.

O PowerPC é o maior desafio aos processadores Intel, que detêm 70% do mercado mundial. O DEC Alpha AXP é o processador RISC de mais alto desempenho rodando em 150MHz ou mais. As outras plataformas RISC populares são o SPARC e o PA-RISC, que geralmente rodam em sistemas operacionais baseados em Unix.

2 Arquitetura Risc

A arquitetura RISC é constituída por um pequeno conjunto de instruções simples que são executadas diretamente pelo hardware, sem a intervenção de um interpretador (microcódigo), ou seja, as instruções são executadas em apenas uma microinstrução.

As máquinas RISC só se tornaram viáveis devido aos avanços de software no aparecimento de compiladores otimizados .

Existe um conjunto de características que permite uma definição de arquitetura básica RISC; são elas:

  • o coração de todo computador é o datapath (ULA, registradores e os barramentos que fazem sua conexão); uma das maiores características das máquinas RISC é utilizar apenas uma instrução por ciclo do datapath (uma instrução é similar a uma microinstrução);
  • projeto carrega/armazena, ou seja, as referências à memória são feitas por instruções especiais de load/store;
  • inexistência de microcódigo; sendo assim, a complexidade está no compilador;
  • instruções de formato fixo, permitindo uso consistente do formato e facilitando a decodificação de instruções por controle fixo, o que torna mais rápido os dutos de controle;
  • conjunto reduzido de instruções, facilitando a organização da UC de modo que esta tenha uma interpretação simples e rápida;
  • utilização de pipeline, uma técnica de dividir a execução de uma instrução em fases ou estágios, abrindo espaço para execução simultânea de múltiplas instruções; à medida que um estágio é concluído, a instrução vai para a frente, no canal, e a instrução seguinte vai para aquele estágio; como as instruções RISC são do mesmo tamanho, elas levam um ciclo para completar cada estágio de pipeline. Por exemplo, se uma instrução pode ser dividida em 4 fases, 4 instruções podem ser executadas simultaneamente;
  • utilização de múltiplos conjuntos de registradores.

A especificação de formatos e o número de instruções são os pontos mais enfocados quando se fala de arquitetura RISC, mas uma generalização bem feita da teoria RISC vai muito além, indicando uma predisposição para estabelecer livremente compromissos de projeto através das fronteiras arquitetura/implementação e tempo de compilação/tempo de execução, de modo a maximizar o desempenho medido em algum contexto específico.

O principal objetivo de uma máquina RISC é executar uma instrução por ciclo; como o acesso à memória utiliza mais ciclos, a solução foi criar um grande número de registradores (overlapping register windows). Este número de registradores tem grande impacto na performance das máquinas RISC, que só são possíveis devido sua simplicidade de projeto (inexistência de microcódigo).

2.1 Comparando Arquiteturas de CPU

O ambiente de aplicação da máquina é muito importante na escolha do projeto a ser adotado. Enquanto milhares de instruções por segundo podem ser uma métrica útil em alguns ambientes de computadores, confiabilidade, disponibilidade e tempo de resposta podem ser o ponto alto para outros. Instruções CISC são fundamentais em supercomputadores vetoriais, que trabalham com muitas operações numéricas, cujo desempenho em velocidade dificilmente poderá ser atingido por máquinas de arquitetura RISC.

Um grande número de novos e rápidos processadores estão aparecendo nos sistemas de computadores pessoais nesses últimos anos. Os CISC processadores Intel e Motorola têm dominado os PCs e os RISC processadores vêm prevalecendo nas classes de estações de trabalho.

A discussão gira em torno de qual arquitetura é melhor, RISC ou CISC. Considerando os argumentos favoráveis às arquiteturas RISC, o primeiro deles é que o projeto RISC é mais simples e seu conjunto pequeno de instruções pode ser implementado mais rapidamente, implicando numa vantagem de desempenho sobre máquinas complexas (os processadores CISC usam um conjunto complexo e maior de instruções).

Além disso, os chips RISC normalmente usam menos que 128 instruções comparados com 200 a 300 nos típicos chips CISC e produzem menos formatos de instruções e modos de endereçamentos remotos que os chips CISC.

O conjunto complexo de instruções CISC produz operações internas lentas e faz com que o chip decodifique instruções.

O tamanho fixo das instruções no RISC (geralmente 32 bits) produz melhor alinhamento de instruções na memória, resultando em mais eficiência nas operações e o conjunto de instruções RISC utiliza o recurso de pipeline (uma instrução por ciclo), sendo mais eficiente que os processadores CISC.

TIPO DE

NÚMERO DE CICLOS POR INSTRUÇÃO

INSTRUÇÃO

486 (CISC)

SPARC (RISC)

MOTOROLA 89000 (RISC)

Load

1

2

1-3

Store

1

3

1

Register-Register

1

1

1

Jump

3/1

1/2

1

Call

3

3

1

Fonte: Computer World

Por outro lado, os processadores RISC, usando instruções mais simplificadas com orientação de carrega/armazena, exigem maior memória de armazenamento para seus programas em linguagem de máquina e apresentam também maior tráfego de memória; ou seja, os programas baseados em RISC sempre requerem mais instruções para completar uma tarefa.

O que temos observado atualmente é que as tecnologias RISC e CISC estão se misturando: os processadores RISC estão aumentando o conjunto de instruções e os CISC estão aumentando o número de registradores.

MICROPROCESSADOR

TECNOLOGIA

NÚMERO INSTRUÇÕES

IBM POWER (RS/6000)

RISC

184

HP PA

RISC

140

SUN SPARC

RISC

70

MOTOROLA 68040

CISC

120

INTEL 386

CISC

96

Fonte: Computer World

3 Emuladores

Estações de trabalho podem ser a plataforma perfeita para atividades empresariais vitais como armazenar banco de dados corporativos ou servir como sistema de desenvolvimento ou engenharia, mas têm um ambiente pobre para rodar os tipos de ferramentas que a maioria dos indivíduos de uma empresa utiliza diariamente, os processadores de textos, planilhas e banco de dados, nos quais o Windows é excelente.

Em testes de desempenho de aplicativos realizados pela Byte, as estações RISC não conseguiram proporcionar o desempenho Windows ao qual os usuários estão acostumados; as atuais estações de trabalho e tecnologia de emulação oferecem somente cerca de 20% da velocidade de uma plataforma Intel, por exemplo, em 486 DX2 66 Mhz com placa aceleradora gráfica. Embora essa performance possa ser adequada para muitos aplicativos comuns de escritórios, tarefas que requerem computação de moderada a pesada sofrerão com a emulação, incluindo aí aplicações como análise de dados, manipulação de imagens e CAD.

Apesar de existirem diferenças de desempenho entre as tecnologias RISC (HP, DEC e SPARC), o resultado como um todo sugere que a performance do Windows em RISC ainda está abaixo de uma boa máquina Windows baseada em Intel (CISC). A interpretação de instruções nativas de outro processador é uma tarefa tão pesada que só é possível porque os RISC são muito rápidos; mesmo assim, não há RISC mais rápido que um 486 para rodar programas DOS/Windows.

O emulador tem como função converter os códigos binários das instruções originais em instruções equivalentes da CPU anfitriã e simular quaisquer outras dependências específicas de plataforma que façam distinção entre as duas máquinas.

Entre os emuladores para estações RISC podemos citar: Wabi (SunSelect), SoftWindows (Insignia Solution), SunPC (SunSelect).

A emulação para aplicativos Windows em sistemas RISC ainda estão em seus estágios iniciais e ainda são muito instáveis; os resultados dos Benchmarcks levam às seguintes conclusões:

  • o Wabi é a melhor tecnologia para aplicações gráficas, mas é um tanto deficiente em emulação;
  • o SoftMindows é forte em todas as áreas, embora o Wabi seja melhor nos gráficos;
  • o SunPC tem excelente emulação e uma boa plataforma DOS, mas é tão veloz com Windows em SPARC quanto as duas outras tecnologias citadas anteriormente disponíveis para essa máquina;
  • a emulação do Windows NT funciona igualmente bem em sistemas Alpha e Mips.

No geral, qualquer aplicativo que requeira desempenho igual ou melhor que o de um 486 de 33 Mhz não é um bom candidato ao uso sob emulação em RISC.

4 Compiladores Risc

Os integrados RISC são geralmente mais velozes do que os processadores CISC populares. O desempenho de qualquer processador RISC está estreitamente ligado ao compilador e à tecnologia de otimização. Compiladores orientados a CISC (como Microsoft, Borland Internacional, Symantec, etc.) competem com base na facilidade de desenvolvimento. Na geração de códigos, otimizações independentes de processador são regra, devido à natureza complexa do conjunto de instruções.

Os compiladores RISC trabalham muito com otimização dependente do processador para aproveitar o máximo de desempenho do hardware; o agendamento de instruções, o gerenciamento de cache e seguimento de registradores são vitais, tendo em vista a natureza canalizada e de utilização intensiva de memória dos integrados RISC.

As ferramentas para desenvolvimento RISC se espelham naquelas usadas para desenvolvimento CISC que ainda são mais abundantes e fáceis de usar, apesar de suas similares para RISC estarem começando a preencher a lacuna. Compiladores, interpretadores, SDBD, linguagem de 4ª geração são usados para a construção de aplicativos. Não é possível construí-los sem tais ferramentas, que são a chave para o sucesso de plataformas RISC.

Entre as ferramentas, os compiladores são o "coração", porque com eles é possível construir todas as outras.

Como o desempenho RISC depende tanto de tecnologia de compilação, os criadores de compiladores freqüentemente trabalham em conjunto com os arquitetos de hardware no projeto do integrado. É por isso que as companhias que vendem os integrados constroem também os compiladores RISC específicos para eles.

O fato dos compiladores RISC tenderem a executar agressivas otimizações torna a depuração a nível de fonte ainda mais desafiadora. Isso porque quanto mais otimizado é o código fonte, menos correspondência há entre ele e o código executado.

A disponibilidade de ferramentas usadas para criar aplicativos é um requisito para que qualquer plataforma prospere.

Tais ferramentas para sistemas baseados em RISC já existem hoje e aumentam as chances de emprego com sucesso desses sistemas de mesa, espaço hoje dominado pela Intel. O Windows NT está na frente desse processo, mas as versões de mesa do Unix ainda não ganharam confiança.

Resumindo:

  • em máquinas CISC, existem várias maneiras de se fazer a mesma coisa e o compilador analisa qual a melhor;
  • em máquinas RISC, a única maneira de realizar a compilação é buscar os operandos para os registradores, executar os cálculos e armazenar os resultados.

5 Tendência

O mercado atualmente vem mudando muito, com os microcomputadores ficando rápidos e os RISC mais ainda, ao ponto de se confundirem os conceitos de computador pessoal e workstation. Essa situação faz com que os RISC diminuam seus preços e desenvolvam interfaces gráficas para disputar o mercado.

A Intel lançou o Pentium de 90 e 100 MHz, que possue uma performance digna de um RISC (na verdade, ele tem um pouco da arquitetura RISC), e os 486 DX4; esses processadores possuem a vantagem de rodar código nativo DOS e Windows, mas a desvantagem de uma arquitetura já exausta.

Os diversos processadores RISC - PowerPC da IBM/Aplle/Motorola, R4x00 da MIPS, SPARC da SUN, PA-RISC da HP e Alpha da DEC - estão competindo para se tornar o padrão RISC, e os desenvolvedores de software terão que escolher não só entre RISC e CISC, mas também entre os RISC. Por enquanto, o PowerPC tem se mostrado o mais atraente dos processadores RISC, pois promete um amplo suporte a programas e sistemas operacionais e sua arquitetura foi projetada para ser escalar; ele tem sido considerado a primeira implementação sólida de uma arquitetura de futuro.

Uma questão com que já estão se defrontando muitos usuários do mundo inteiro é a pergunta: sair ou não da tradicional arquitetura de processamento CISC e migrar para a arquitetura RISC?

Uma pesquisa realizada no ano passado apontou que, apesar do RISC ter melhor performance, pelo menos 95% dos computadores "desktop" ainda usavam CISC por dois motivos simples: CISC é mais barato e roda a maioria do software que todo mundo quer usar. O primeiro motivo já não é mais verdadeiro, pois o PowerPC 601 já tira uma vantagem de preço sobre o CISC.

A decisão de mudança passa por investimentos futuros em novas máquinas, novas arquiteturas de processamento da informação, novos servidores dos sistemas corporativos de informação e também pela escolha de qual será a nova plataforma e ambiente operacional a serem utilizados por estes sistemas nos próximos anos. Tudo isso irá afetar os protagonistas da indústria de informática, se os fabricantes de máquinas RISC (Power PC, Mips, HP, Digital) ou CISC (Intel-DX4, Pentium).

                Comparação entre Power PC e Pentium

Arquitetura

Power PC

Pentium

 

RISC

CISC

Máx. Instruções por Ciclo

3

2

Cache

32 kb unificado

8 kb instrução 8 kb dados

Barramento ext. dados

64 bits

64 bits

Barramento ext. endereço

32 bits

32 bits

Registradores

32 GPR/ 32 FPR

8 GPR/ FP Stack

Fonte: Byte, Ago. 1993.

Migrar ou não para arquitetura RISC envolve questões como aproveitamento dos aplicativos já utilizados pelos usuários e os diversos sistemas operacionais existentes para os diferentes processadores. No caso da base instalada do Windows, é necessária a emulação do ambiente Intel pelo processador RISC ou, então, através de ferramentas como o Wabi, que pretendem eliminar a necessidade do uso do Windows dentro do ambiente Unix, já que esta ferramenta se encarrega das chamadas das interfaces das aplicações escritas para o ambiente da Microsoft; os emuladores ainda não atingiram um nível de performance e confiabilidade considerado ideal para os usuários.

Por outro lado, existe um número significativo de desenvolvedores de aplicações para os processadores RISC, o que pode ser um sinal seguro da tendência do mercado corporativo, principalmente com servidores de redes pesadas - ou com aplicações críticas; com isso a Intel deverá perder uma fatia do mercado no caso de servidores que vinham sendo atendidos com os processadores 486 DX2 e Pentium. Dessa forma, nos próximos anos o usuário passará a contar com uma oferta mais diversificada de plataformas de hardware poderosas com preços competitivos, além de uma enorme variedade de sistemas operacionais.

Conclusão

Tem sido muito falado que as arquiteturas RISC resultam em máquinas mais rápidas, mais baratas e fáceis de projetar, mas tudo isso é muito discutível. A simplicidade e o conjunto reduzido de instruções de filosofia RISC inicial se revelam insuficientes. As máquinas ditas RISC atuais têm um conjunto de instruções bastante grande. Um projeto RISC, na prática, também não significa um processador simplificado. A sofisticação da lógica de pipeline e paralelismo aumenta significativamente a complexidade do projeto. Sendo assim, a linha divisória entre RISC e CISC está perdendo a nitidez; as CPUs INTEL, do 486 em diante, já usam parte das técnicas RISC, diminuindo o conjunto de instruções e aumentando o número de registradores.

A simplificação das instruções é um grande mérito e provavelmente continuará a influenciar futuras arquiteturas. Isso significa que os princípios RISC e CISC poderão viver harmoniosamente em um único projeto. As memórias cache maiores (que diminuem a dependência dos acessos à memória) e uma melhoria na tecnologia dos compiladores diminuem ainda mais as diferenças apregoadas entre as máquinas RISC e CISC.

(Extraído de trabalho do curso de análise da PUC, disciplina "Ambientes de pequeno e médio porte".)

Referências Bibliográficas

APIKI, Steve. Windows em RISC. Byte Brasil, São Paulo, v.3, n.5, p.32-37, maio 1994.

BUSSMANN, Luis A. S. Arquitetura  Interna de Computadores RISC. Curitiba: PUC-PR, /1994/

TAURION, Cezar. CISC x RISC: benchmarks confundem usuário. Datanews, São Paulo, v. 16, n. 60 1, p.20-21, jul. 1992.

CISC x RISC: vale a pena discutir? ComputerWorld, São Paulo, v. 1, n. 31, p. 20, jun. 1993.

CPU Architeture. PC Magazine, v.12, n. 11, p. 144, jun. 1993.

RANGEL, Ricardo. Uma pequena história dos processadores. Byte Brasil São Paulo, v.3, n.5, p.78-82, maio 1994.

ZUFFO, João Antõnia. CISC x RISC. Dados e Idéias. v. 11 , n. 10 1 , São Paulo, p.55-59, out. 1986.