Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Arquiteturas RISC vs CISC: Evolução e Impacto no Desempenho de Processadores, Resumos de Matemática

A evolução das arquiteturas RISC e CISC, detalhando como suas diferenças diminuíram. RISC beneficia-se de instruções menores para execução rápida, enquanto CISC usa microcódigo para instruções complexas. Inovações como pipelining e cache foram incorporadas em ambas. Custo, suporte de software e avanços tecnológicos influenciam a escolha. Essencial para entender a história dos processadores modernos e a influência mútua entre RISC e CISC. Aborda a análise de arquiteturas para identificar fabricantes atualizados e selecionar plataformas viáveis para alto desempenho.

Tipologia: Resumos

2024

Compartilhado em 24/06/2025

emanuel-hoepers
emanuel-hoepers 🇧🇷

2 documentos

1 / 44

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Universidade Católica de
Brasília
Faculdade de Tecnologia (FT)
Departamento de Tecnologia
Curso: Ciência da Computação / Processamento de Dados
Disciplina: Organização de Computadores II
Profª.: Suely
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c

Pré-visualização parcial do texto

Baixe Arquiteturas RISC vs CISC: Evolução e Impacto no Desempenho de Processadores e outras Resumos em PDF para Matemática, somente na Docsity!

Universidade Católica de

Brasília

Faculdade de Tecnologia (FT) Departamento de Tecnologia Curso: Ciência da Computação / Processamento de Dados Disciplina: Organização de Computadores II Profª.: Suely

Universidade Católica de

Brasília

Faculdade de Tecnologia (FT) Departamento de Tecnologia Curso: Ciência da Computação / Processamento de Dados Disciplina: Organização de Computadores II Profª.: Suely

Euclides Pereira do Lago Júnior 96/2607- Marcelo Cândido Brito 96/2394- Marcondes José de Freitas Bastos 96/2396- Renato Toledo da Silva 96/2602-

1. Introdução

A arquitetura RISC foi tratada de modo abrangente e agressivo no final da década de

  1. Seus defensores diziam que os microprocessadores com um conjunto reduzido de instruções logo apareceriam dentro dos processadores Intel x86. Até agora, a RISC ainda não colocou os pés seguramente no mercado de computadores pessoais. Há alguma razão para prever mudanças em breve? A resposta é sim e não, mas principalmente não.

Primeiro, os chamados microprocessadores RISC não apresenta , de fato, grandes benefícios na performance se comparados com os microprocessadores denominados CISC (Complex Instruction Set Computing). Essas vantagens teóricas foram muito ressaltadas a princípio. Um conjunto de instruções menor e mais rápido, por exemplo, também requer que mais instruções sejam executadas. Além disso, estratégias como conjuntos múltiplos de registradores e pipelining (encadeamento) não estão diretamente relacionadas a conjuntos reduzidos de instruções. Os projetos tradicionais dos processadores x86 poderiam empregar as mesmas estratégias.

Na verdade, os tais microprocessadores RISC não chegam perto dos projetos verdadeiramente RISC. Eles possuem conjuntos de instruções relativamente grandes e complexos, se comparados com conceitos RISC "puros". Eles seriam descritos mais precisamente com a expressão influenciado pela arquitetura RISC. O resultado prático de todos esses fatos é que os processadores x86 da Intel e de um número cada vez maior de concorrentes, como a Advanced Micro Devices (AMD) e a Cyrix, conseguiram garantir sua posição contra os novos projetos influenciados pela arquitetura RISC.

A segunda razão é a falta de compatibilidade com versões anteriores. Os usuários simplesmente não querem abrir mão de tudo que já possuem.

O sucesso do Windows 3.0 da Microsoft e do OS/2 2.0 ilustra bem essa idéia. Nem o Windows 1.x ou 2.x e nem o OS/2 1.x foram bem sucedidos. As primeiras versões de ambos os pacotes sofriam do mesmo mal: incapacidade para rodar aplicativos que os usuários já possuíam. Mas conseguiram chegar ao sucesso com a introdução de uma versão capaz de rodar também aplicativos antigos.

A arquitetura RISC possui o mesmo problema fundamental que o Windows e o OS/ apresentavam: os sistemas não rodam de modo adequado os programas que os usuários já possuem. Mas a compatibilidade com versões anteriores existente no Windows e no OS/ poderia ser corrigida. Os sistemas baseados em RISC nunca serão capazes de rodar software desenvolvidos para a arquitetura x86 tão bem quanto os sistemas para os quais esses aplicativos foram originalmente projetados.

Isso significa que os microprocessadores influenciados pela arquitetura RISC nunca poderão desafiar com sucesso o x86 no campo dos PCs de mesa? Não. A medida que as ferramentas baseadas em objetos e o desenvolvimento voltado para plataformas diferentes tornam-se mais comuns, fica mais fácil oferecer versões de software para a arquitetura RISC, podendo esta desafiar com sucesso a arquitetura x86 no campo dos PCs de mesa.

A análise dos processadores do mercado mostra que nos aspectos de mips ou operações aritméticas com números inteiros (SPEC Integer), o desempenho dos chips RISC e CISC são similares; em ponto flutuante (SPEC Floating Point) os RISC tendem a apresentar resultados melhores, embora o Pentium lhes seja equivalente.

2.1. Diminui a diferença

Cada vez mais as tecnologias RISC e CISC estão se aproximando: processadores RISC estão aumentando seu conjunto de instruções e os CISC estão adotando técnicas originalmente implementadas nos RISC. Por exemplo, o número de ciclos por instrução é bastante similar em ambos. O resultado prático é que o "path length" destes processadores para executar uma tarefa é praticamente igual.

As razões para isso são simples. Em aplicações comerciais, a CPU trabalha cerca de 30% do tempo com instruções de movimentação de cadeias de caracteres de um lugar a outro na memória; em programação Cobol é interessante dispor de instruções de aritmética decimal e trabalhar com operandos "não alinhados". Desta forma, será necessário adicionar-se instruções tipicamente CISC para trabalhar adequadamente com estas tarefas.

O Pentium, segundo a Intel, utiliza tecnologia CRISC, acoplamento das duas técnicas. Na verdade algumas máquinas RISC utilizam poucas de suas técnicas básicas, ao mesmo tempo que implementam conceitos típicos dos projetos CISC; entretanto, adotam o jargão RISC por questão de marketing.

Um ambiente comercial é caracterizado por processamento transacional, com muita manipulação de cadeias e inteiros além de alto fluxo de entrada/saída. Já o científico se caracteriza por grande número de instruções de ponto flutuante. A conclusão lógica é que as máquinas dos dois tipos tem diferentes concepções para diferentes utilizações.

3. Plataformas CISC e RISC: Uma coexistência pacífica

Agora que se estreitou a diferença entre o desempenho das arquiteturas RISC e CISC, a seleção de uma plataforma depende de fatores como viabilidade de custos, arquitetura do bus, suporte a periféricos, ambiente operacional, suporte a softwares e custos de manutenção. A partir de agora examinaremos as razões da convergência destas tecnologias de processadores, analisando as tendências atuais e identificando quais plataformas específicas irão sobreviver em uma época de aumento de competitividade e redução da diferenciação de produtos a nível do processador.

As workstations e PCs mais antigos baseavam-se em arquiteturas de processadores CISC (complex instruction set computing). Porém, nos últimos anos o mercado tornou-se estratificado. Workstations avançadas baseadas em processadores RISC (reduced instruction set computing) ganharam grande espaço por oferecerem desempenho superior. Neste meio tempo, as plataformas baseadas em CISC (especialmente aquelas baseadas nos microprocessadores Intel x86 e na série 68000 da Motorola) continuaram a dominar as faixas de médio e baixo desempenho devido aos baixos custos e disponibilidade de uma extensa base de aplicativos.

Mais recentemente, houve um aumento do desempenho da plataforma CISC, à medida que os projetistas lançaram mão de algumas estratégias RISC, tais como pipelining, on-chip cache (cache no chip) e wide-instruction buses (barramentos de largas instruções) e desde que se tornaram disponíveis os sistemas operacionais de 32 bits e compiladores otimizadores para este tipo de plataforma. Ao mesmo tempo, os custos das plataformas RISC cairam devido ao aumento da competição no mercado, padronização, disponibilidade de várias fontes para

considerarmos também os conjuntos de instruções dos processadores mais recentes e de maior potência da mesma família (por exemplo o Pentium 200 MHz da Intel versus o 88088 da Motorola) verificaremos que os mesmos são superconjuntos se comparados a seus antecessores. Isto significa que softwares aplicativos mais antigos geralmente operarão em equipamentos que utilizem processadores da mesma família. Um novo software pode ser criado para que utilize ou o conjunto de instruções do processador mais antigo (8088 no caso dos PCs IBM e seus compatíveis) ou defaults do mesmo se um conjunto de instruções de mais alto nível não estiver disponível.

Porém, existe uma tendência de criarem softwares que não operam em toda a base de PCs instalada. Isto porque os equipamentos mais antigos não possuem os recursos de sistema (por exemplo, resolução do monitor e capacidade de memória) necessários para rodar os atuais softwares gráficos ou orientados para redes. Mesmo quando os recursos destes equipamentos são adequados, a exigência do software para lidar com todas as deferentes configurações de equipamento e com o conjunto de instruções necessariamente diminuiria o seu desempenho. Esta tendência deve continuar com a emergência dos sistemas operacionais realmente de 32 bits que podem explorar as potentes instruções de 64 bits dos mais novos processadores CISC.

Nos processadores CISC, a lógica para a maioria das instruções, com exceção das mais primitivas (shift, add, etc...), é guardada em microcódigo no processador, enquanto que para o processador RISC, é fornecida por software. Considere, por exemplo, uma operação de multiplicação. A maioria dos chips CISC possui como parte de seu conjunto de instruções uma instrução de multiplicação (por exemplo, MUL ou IMUL para a série x86). Porém um chip RISC pode não possuir esta operação de multiplicação, devendo a mesma ser feita por uma seqüência de instruções primárias como "adds" e "shifts".

Os microprocessadores RISC (como aqueles utilizados nas workstations da Sun Microsistems) são baseados em um pequeno conjunto de instruções bastante básicas. A maioria das instruções de alto nível que estão embutidas nos processadores CISC teriam que ser escritas como algoritmos de software. Mas os processadores RISC possuem a vantagem

que com seus conjuntos de instruções menores possibilitam a decodificação e execução das instruções muito mais rapidamente do que seria possível ao processador CISC. Todas as instruções RISC também geralmente possuem palavras do mesmo tamanho e estão restritas a dois operandos, enquanto que o conjunto de instruções do processador CISC normalmente inclui instruções de 8, 16 e 32 bits e muitas operações necessitam de mais de dois operandos.

Ainda mais uma vantagem dos processadores RISC é que suas instruções pegam seus operandos somente dos registradores. Os operandos são transferidos da memória para os registradores embutidos no processador com instruções separadas. Estas instruções não fazem nada mais que carregar os registradores e guardar seu conteúdo na memória. Por esta razão, muitas vezes os processadores RISC são conhecidos como “processadores load/store”. Esta característica simplifica a lógica de controle do processador e elimina muito do overhead e da complexidade associada aos processadores CISC.

Um microprocessador consiste em uma unidade aritmética e lógica, registradores multiuso e registradores dedicados tais como o contador do programa. Porém, necessita também de um tipo de unidade de controle para decodificar as instruções e direcioná-las para o caminho a ser percorrido, afim de que o processamento ocorra de acordo com as instruções. Em um processador CISC, a unidade de controle tem que decodificar tantas instruções e realizar tantas operações que normalmente ela é um outro processador. Os processadores RISC por outro lado possuem conjuntos de operações muito mais simples e podem geralmente utilizar um controlador HARDWIRED menos complexo.

Um ponto controverso no debate entre CISC x RISC envolve o desenho do compilador. Os que advogam para o CISC argumentam que a disponibilidade de instruções de alto nível e a habilidade de especificar múltiplos operandos baseados na memória simplifica o desenho do compilador. Porém, a questão mais importante é qual é a arquitetura que melhora o desenho do compilador (permite que seja feito um compilador otimizador mais efetivo, que por sua vez, irá produzir códigos de execução mais rápidos).

transistores por chips) e wafers mais largos ( mais chips por wafers) aumentaram o desempenho e a capacidade, enquanto abaixavam os custos dos chips de memória: e a arquitetura RISC é intensiva em memória (como sugerido na discussão acima sobre instruções separadas para buscas na memória). Acessos lentos à memória se tornariam um gargalo no desempenho de um processador RISC.

Estes mesmos avanços na tecnologia de semicondutores tornaram possível a colocação de mais circuitos no próprio chip RISC. Como resultado, a maioria dos chips RISC possui um gerenciador de memória embutido para dar suporte ao modelo de paginação por demanda, empregado na maioria das versões UNIX.

Não somente as RAMs dinâmicas como também as RAMs estáticas tornaram-se mais rápidas, densas e baratas. As SRAMs são por si só mais rápidas do que as DRAMs porque elas evitam o ciclo de resfriamento das versões dinâmicas. Isto permitiu que utilizassem estratégias de cache, nas quais uma pequena quantidade de memória SRAM suporta uma grande quantidade de DRAMs mais lentas afim de aumentar a velocidade de acesso à memória. Inicialmente as SRAMs para os processadores RISC ficavam alojadas em chips separados, mas os mais recentes avanços da tecnologia tornaram possível incluir a SRAM no próprio chip do processador, minimizando atrasos de propagação e permitindo cache das instruções, como se isto já fosse inerente à arquitetura do processador.

4. Arquiteturas de Pipeline

Além das já debatidas, a maioria das vantagens associadas aos processadores RISC, na realidade, advém de outras inovações em arquitetura que são possibilitadas por ela, e não pelo próprio número reduzido de instruções. A mais importante destas estratégias é o pipelining, apesar da memória cache embutida no chip também contribuir substancialmente para o desempenho como um todo.

Pipelining é a extensão de uma idéia conhecida como "prefetch", na qual a próxima instrução a ser processada é carregada da memória e decodificada ao mesmo tempo em que se executa a instrução que está sendo processada.

Um processador completamente pipelined utiliza a mesma estratégia de uma linha de montagem de automóveis (na qual vários veículos em vários estágios de montagem são trabalhados simultaneamente, porém cada um em uma operação específica diferente, a serem efetuadas em cada carro por vez). Portanto um pipeline de cinco estágios pode trabalhar com cinco instruções ao mesmo tempo. Enquanto a primeira instrução tem seus resultados guardados nos registradores de destino, a segunda pode estar executando uma operação aritmética, por exemplo. Após o pipeline ter sido preenchido inicialmente, a demora para completar as instruções é meramente o tempo de uma operação (idealmente um ciclo de clock). ao invés do tempo necessário para que todas as operações fossem processadas em seqüência.

A operação de um pipeline RISC hipotético de cinco estágios, está ilustrado no diagrama de tempo do Quadro 1. As instruções passam pelo pipeline da esquerda para a direita e são executadas em uma seqüência de cinco estágios de um ciclo. O tempo é medido de cima para baixo do diagrama em termos de ciclos que irão sendo completados.

gos oferecem menor granulação e, portanto, um processamento mais rápido, porém possuem uma latência mais alta.

Uma exigência importante da arquitetura pipelined, é que para colher os benefícios da mesma, as instruções enviadas ao pipeline, em qualquer momento, devem ser independentes. Se uma das instruções necessita do resultado de outra como seu operando (input), então estas duas instruções devem ser separadas de maneira a nunca estarem no mesmo pipeline simultaneamente, senão haverá travamento do pipeline. A segunda instrução teria que esperar até que a primeira completasse e gravasse todas as suas operações nos registradores de destino.

Entretanto, os processadores pipelined não podem oferecer uma performance além daquela de uma arquitetura comparável não-pipelened, a menos que o compilador (e/ou o programador) tenha evitado tais dependências entre as instruções. Esta é outra razão pela qual desenhar um compilador otimizado para processadores pipelined (e para outras arquiteturas complexas que exploram o paralelismo), pode ser considerada uma tarefa desafiadora. Por estas e outras razões, o desenvolvimento do software tendeu a se atrasar em relação aos rápidos melhoramentos na performance do hardware. Também os sistemas operacionais mais antigos e a maioria dos pacotes de aplicações falharam em explorar por completo o potencial das novas plataformas baseadas em RISC.

Os processadores CISC já se utilizam há bastante tempo da estratégia “prefetch”, porém não se imaginava possível um pipelining completo nestes processadores porque eles não possuíam o pequeno conjunto de instruções simplificadas do RISC. Portanto não haveria um conjunto fixo de operações comuns a todas as instruções. É claro que todas as mesmas necessitam de um operando, mesmo com a utilização da estratégia de “prefetch”.

Diferentemente dos processadores RISC, os CISC também não utilizavam de uma estratégia load/store uniforme para todas as instruções. Contudo, os últimos processadores CISC (por exemplo, o Intel Pentium e o 68050 da Motorola) possuem, de fato, pipelines e cache no chip. Isto foi conseguido com uma arquitetura híbrida, a qual a Intel chamou de

CRISC (Complex reduced instruction set computing). Na unidade de processador matemático de ponto flutuante no mesmo chip, algumas instruções são executadas em estilo RISC, sem microcódigos e em um ciclo do clock.

Parece provável que os futuros processadores Intel da série x86 (e seus conorrentes como a Chips and Technologies, Cyrix e Advance Micro Devices) irão estender esta técnica adicionando pipelines mais potentes, expandindo assim a porção RISC de seus conjuntos complexos de instruções. Em termos de arquitetura, os processadores serão realmente RISC, com chips CISC embutidos que executarão as exceções que não forem próprias para o pipeline.

Uma arquitetura superescalar aumenta o paralelismo por operar vários processadores pipelined separados simultaneamente. Esta estratégia e seus benefícios irão além da mera utilização de processadores adicionais (como a utilização de chip coprocessador matemático separado nos PCs). Em uma verdadeira arquitetura superescalar, as operações ocorrem ao mesmo tempo em todos os processadores aumentando o número de instruções executadas por ciclo. Atualmente, isto significa que individualmente os processadores pipelined deveriam estar em um mesmo chip (para minimizar atrasos de propagação), que todos os buses e acessos à memória deveriam ser "cached"(para favorecer a redução dos atrasos), e que os buses deveriam ser largos o suficiente para acomodar simultaneamente várias instruções.

Um exemplo de um verdadeiro processador superescalar é o chip utilizado para as workstations IBM RS/6000. Este chip possui três seções principais: um processador de inteiros (FXU), uma unidade de ponto flutuante (FPU) e uma unidade cache de instruções (ICU). A ICU carrega duas instruções ao mesmo tempo da memória através de seu cache de instruções. Os caminhos do bus para/da ICU têm a largura de duas palavras. Desta maneira a ICU pode alimentar simultaneamente os pipelines da FXU e da FPU com as novas instruções.

A arquitetura superescalar do processador RS/6000 é a base do chip PowerPC, atualmente sendo desenvolvido em conjunto pela IBM, Apple e Motorola. O objetivo desta aliança é desenvolver a estratégia para a próxima geração de plataformas workstations, com desempenho superior ao dos existentes IBM PS/2 e Macintosh da Apple.

As tendências da tecnologia de semicondutores em grande parte determinam as estratégias de arquitetura que serão mais eficazes nos microprocessadores. Se as velocidades dos chips semicondutores estivessem crescendo mais que sua densidade de circuitos, não haveria justificativa em arriscar oscilações do clock e os problemas resultantes para o compilador em arquiteturas avançadas de pipeline. Poderíamos simplesmente aumentar a freqüência do clock de um processador mais simples. O PA (Precision Architecture) da Hewlett-Packard, não se utiliza nem das técnicas, de superpipelining, nem de superescalar. É somente uma bem projetada CPU pipelined com uma freqüência alta de clock.

Porém, as novas versões do RISC PA incluem um processador de ponto flutuante no mesmo chip a fim de competir com outros chips que oferecem este recurso. Portanto, assim como o chip 486 da Intel que também possui um processador de ponto flutuante no mesmo chip que a unidade de processamento de inteiros, poderíamos argumentar que ele é superescalar. O ponto é que com a experiência desta empresa como pioneira no projeto de chips RISC e como fabricante de chips de alta velocidade utilizados em instrumentos de medições, a HP não necessitou imediatamente dos benefícios de aumento de desempenho utilizados nas arquiteturas mais recentes.

Matematicamente os processadores superpipelined e superescalar são duplicações um do outro, portanto nenhum oferece uma vantagem de desempenho mensurável sobre o outro. Ambos alcançam o paralelismo (permitir que duas instruções sejam processadas simultaneamente) utilizando-se de circuitos altamente densos, possíveis graças aos chips semicondutores de litografia submecron. Uma razão primária para a aceitação mais rápida das arquiteturas superescalar em relação a superpipelined é a sua modularidade.

Com a arquitetura superescalar, os vários componentes (por exemplo, o processador de inteiros e o de ponto flutuante) podem ser projetados como células-padrão e podem ser utilizados em várias combinações para chips específicos. Assim sendo, a Intel oferece versões do 486 com o coprocessador matemático desativado. Também poderiam oferecer uma versão que inclui somente o processador de inteiros, com o processador matemático em um chip separado. Da mesma maneira, o RISC PA da HP encontra-se disponível em versões de um ou dois chips. Claramente a modularidade das arquiteturas superescalar permite uma maior customização dos microprocessadores a fim de se adaptarem às diversas estratégias de marketing.

Para os futuros chips de computação de alta performance e multiuso pode-se também equilibrar o uso das estratégias RISC e CISC. Por exemplo, o chip de mais alto-desempenho anunciado até agora são os utilizados nos equipamentos da série Alpha da Digital Equipment Corporation, os quais estão disponíveis em freqüência de clock de até 300 MHz (Alpha XL 300). Os chips Alpha combinam tanto as técnicas de pipelining como de superescalar, ainda