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


CISC vs RISC: História e Características de Processadores Reduzidos e Complexos, Notas de estudo de Informática

Saiba sobre a história e as principais diferenças entre processadores cisc (computador de instruções complexas) e risc (reduced instruction set computer). Desde a criação dos primeiros processadores até a invenção de microprogramas, compreenda o papel desempenhado por ambas as arquiteturas na evolução da computação.

Tipologia: Notas de estudo

2013

Compartilhado em 27/08/2013

Garoto
Garoto 🇪🇸

4.6

(121)

1 / 10

Toggle sidebar

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

Não perca as partes importantes!

bg1
25
Versões
Clock Interno
6x86-P120+
100 MHz
6x86-P133+
110 MHz
6x86-P150+
120 MHz
6x86-P166+
133 MHz
6x86-P200+
150 MHz
Tab. 2.3: Processador de 150 MHz com desempenho superior ao Pentium 200
3. CISC x RISC
pf3
pf4
pf5
pf8
pf9
pfa

Pré-visualização parcial do texto

Baixe CISC vs RISC: História e Características de Processadores Reduzidos e Complexos e outras Notas de estudo em PDF para Informática, somente na Docsity!

Versões Clock Interno 6x86-P120+ 100 MHz 6x86-P133+ 110 MHz 6x86-P150+ 120 MHz 6x86-P166+ 133 MHz 6x86-P200+ 150 MHz Tab. 2.3: Processador de 150 MHz com desempenho superior ao Pentium 200

3. CISC x RISC

O conceito dos processadores RISC é utilizar um conjunto reduzido de instruções de linguagem de máquina (computador com conjunto de instruções reduzido) em contraste com os processadores CISC (computador com conjunto de instruções complexo). Os primeiros processadores projetados tinham um grande problema que era a produção de software que pudessem rodar nestas máquinas. Era necessário que o programador tivesse conhecimentos profundos sobre o processador que ele ia desenvolver, pois ele tinha que escrever programas em linguagem de máquina pura. Visto essa dificuldade, os projetistas de hardware desenvolveram uma nova técnica, chamada microprogramação (instruções). Microprogramação nada mais é do que criar novas funções que são adicionadas diretamente no hardware, facilitando assim o trabalho do programador. Novas instruções foram criadas, como por exemplo para tratar de comandos case e multiplicações. Conforme eram percebido novas necessidades, os projetistas criavam novas instruções e o adicionavam ao processador. Foi-se então sobrecarregando os processador com inúmeras instruções, tornando-o complexo, surgindo assim o termo CISC. A adição de novos microcódigos acaba tornando o processador mais lento. Então os projetistas criavam um modo de aumentar a velocidade do processador para compensar a lentidão resultante dos microcódigos. Mas, está chegando o dia onde não é mais possível aumentar a velocidade dos processadores sem aumentar o tamanho físico. Um das formas para solucionar problemas era utilizar microcódigos. Havia um outro modo de solucionar esses problemas: a criação de software que pudessem substituir esses microcódigos. Mas, para que isso fosse colocado em prática era necessário a redução da diferença de velocidade entre a memória principal e a CPU, o que tornava inutilizável essa segunda opção. Em exames feitos em programas que rodam em processadores CISC, foi descoberto que 85 % do programa consiste em apenas três instruções: assinalamentos, comandos if e chamadas de procedimentos. Conclui-se então que é desnecessário a adição de microprogramas que quase ou nunca são utilizados. Porém, com o tempo, houve um aumento significativo da velocidade das memórias, possibilitando assim a utilização de software em substituição dos microprogramas. Mas existe uma curiosidade, antes da invenção dos microprogramas todos os processadores eram processadores RISC, com instruções simples executadas diretamente no hardware. Depois que a microprogramação tomou conta, os computadores se tornaram mais complexos e menos eficientes. Agora a industria está voltando às suas raízes, e construindo máquinas rápidas e simples novamente. A descoberta crítica que tornou as máquinas RISC viáveis foi, o que é bastante interessante, uma avanço de software, e não de hardware. Foi o aprimoramento da tecnologia de otimização de compilação que tornou possível gerar microcódigos pelo menos tão bom quanto, se não for melhor, que o microcódigo manuscrito. Mas, como tudo na vida tem problemas, os processadores RISC também tem as suas desvantagens. Uma delas é na execução de uma multiplicação, em processadores RISC é necessário sintetizar uma série de formas, dependendo dos operandos. Outra desvantagem é, que sem ajuda de hardware especial, máquinas RISC não são boas para cálculos em ponto flutuante. A primeira máquina RISC moderna foi o minicomputador 801 construído pela IBM, começando em 1975, Entretanto, a IBM não publicou nada a seu respeito até

  1. Em 1980, um grupo em Berkeley, liderado por David Patterson e Carlo Séquin, começou a projetar pastilhas RISC VLSI. Eles criaram o termo RISC e batizaram sua

Sempre que se resolver adicionar uma nova instrução ao processador, ela deve ser examinada sob esta luz: como ela afeta o tempo de ciclo da via de dados? Se ela aumentar o tempo de ciclo, provavelmente não vale a pena tê-la. Finalmente, o mesmo processo deve ser repetido para todos os outros recursos dentro da CPU, tais como memória cache, gerenciamento de memória, co- processadores de ponto flutuante, e assim por diante. Máquinas RISC podem diferir de suas concorrente CISC de oito formas críticas, como listado na Tab. 3.2.

RISC CISC 1 Instruções simples levando 1 ciclo Instruções complexas levando múltiplos ciclos 2 Apenas LOADs/STOREs referenciam a memória

Qualquer Instrução pode referenciar a memória 3 Altamente pipelined Não tem pipeline , ou tem pouco 4 Instruções executadas pelo hardware Instruções executadas pelo microprograma 5 Instruções com formato fixo Instruções de vários formatos 6 Poucas instruções e modos Muitas instruções e modos 7 A complexidade está no compilador A complexidade está no microprograma 8 Múltiplos conjuntos de registradores Conjunto único de registradores Tab. 3.2 - Características das máquinas RISC e CISC

3.2 Uma Instrução por Ciclo da Via de Dados

Em certo sentido, nome Reduced Instruction Set Computer , não é um bom nome. Enquanto é verdade que a maioria das máquinas RISC têm relativamente poucas instruções, a característica única mais importante que as distingue das máquinas CISC é que as instruções RISC são completadas em um único ciclo da via de dados. Uma conseqüência do princípio de que toda instrução RISC deve gastar um ciclo é que qualquer operação que não possa ser completada em um ciclo não pode ser incluída no conjunto de instruções Assim, muitas máquinas RISC não possuem instruções para multiplicação ou divisão. Na prática, a maioria das multiplicações são formadas por pequenas constantes conhecidas em tempo de compilação, de modo que elas podem ser simuladas por seqüências de somas e deslocamentos. Instruções de ponto flutuante são executadas por um co-processador.

3.3 Arquitetura LOAD/STORE

Dado o desejo de ter toda instrução gastando um ciclo de relógio, é claro que as instruções que referenciam a memória vão ser um problema. Instruções que buscam seus operandos de registradores e armazenam seus resultados em registradores podem ser manipuladas em um ciclo, mas instruções que carregam a partir de ou armazenam em memória levam muito tempo. Aumentar o ciclo de relógio por um fator de dois ou três para acomodar cargas e armazenamentos a viola a Regra de Ouro 1 do projeto RISC. Como algumas instruções têm que referenciar memória, instruções especiais LOAD e STORE são adicionadas à arquitetura. Apenas estas instruções podem referenciar a memória.

3.4 Pipelining

É claro que proibir que as instruções comuns acessem a memória não resolve o problema de como fazer com que LOADs e STOREs operem em um ciclo. A solução está em um pouco de truque. Vamos agora relaxar nosso objetivos ligeiramente. Em vez de requerer que toda instrução deva ser executada em um ciclo, vamos meramente insistir que seremos capazes de começar uma instrução a cada ciclo, sem levar em consideração quando é que ela termina. Se, em n ciclos, conseguirmos iniciar n instruções, na média teremos atingido uma instrução por ciclo, o que é suficientemente bom. Para atingir este objetivo modificado, todas as máquinas RISC têm pipeline. A CPU contém diversas unidades independentes que trabalham em paralelo. Uma delas busca as instruções, e outras as decodificam e executam. A qualquer instante, diversas instruções estão em vários estágios de processamento. Uma instrução comum utiliza duas unidades pipeline, uma para busca e outra para execução. Num instante de tempo uma instrução é iniciada. No outro instante, a instrução iniciada muda de unidade e é executada. Na unidade que ficou livre é iniciado uma nova instrução. Assim mantemos a média, que é iniciar uma instrução a cada ciclo. Porém instruções LOADs e STOREs requer uma terceira unidade, para referenciar a memória. Então, em vez de finalizar a execução em duas unidades, finalizam em três unidades. Na Tab. 3.3, exemplo de uma pipeline em execução.

Ciclo

1 2 3 4 5 6 7 8 9 10 Busca de instrução 1 2 L 4 5 6 S 8 9 10 Execução de instrução 1 2 L 4 5 6 S 8 9 Referência à memória L S Tab. 3.3: Uma máquina RISC com pipeline contendo LOAD (L) e STORE (L) atrasados

3.5 Uso de Registrador

O objetivo de toda máquina RISC é executar uma instrução por ciclo, na média. Uma vez que LOAD e STORE tipicamente requerem dois ciclos, está média só pode ser atingida se o compilador tiver sucesso no preenchimento de 100 % dos buracos de atraso depois de cada um deles. Isto leva a raciocinar que, quanto menos LOADs e STOREs existirem, menos serão desperdiçados devido à inabilidade do compilador em preenchê-los com alguma coisa útil. Por está razão, compiladores para máquinas RISC fazem uso intenso de registradores, para reduzir o tráfego de memória (isto é, o número de LOADs e STOREs). As máquinas RISC possuem substancialmente mais registradores do que máquinas CISC.

3.6 Por que processadores RISC não decolaram?

"Nos anos, alguns engenheiros de RISC ridicularizaram o CISC e predisseram o fim da família x86. Infelizmente para eles, a penalidade por menosprezar os fabricantes (principalmente a Intel) é até maior que a penalidade para não prever corretamente os desvios. Negócios e tecnologia são duas coisas diferentes. o RISC poderia ser tecnicamente superior ao CISC, mas vastos recursos da Intel e o embalo do

fiquem livres. A ordem de programa é finalmente restaurada pela "graduação" (que é jargão da MIPS para a retirada) da instrução mais antiga. Isso assegura também um preciso relato de exceções. Esse reordenamento de instruções auxiliado por hardware oferece uma grande vantagem para os usuário finais porque o código escrito para as CPUs escalares mais antigas da MIPS ganharão o beneficio quase total de velocidade sem necessidade de recompilação. O MIPS tem potencial para emitir cinco instruções por ciclo, mas pode trazer e retirar somente quatro; uma quinta não pode ser completada no mesmo ciclo. Entretanto, esse excesso de largura de faixa de despacho oferece oportunidades mais flexíveis para o agendamento de instruções.

3.7.3 Sun Microsystems

Pioneira na adoção da tecnologia RISC, a Sun especificou o SPARC como uma arquitetura escalável. Contém nove unidades de execução: duas ALUs de inteiros, cinco FPUs (duas para adição em ponto flutuante, duas para multiplicação de ponto flutuante e uma para divisão/raiz quadrada em ponto flutuante), uma unidade de processamento de ramificações e uma unidade de carga/armazenagem. Tem previsão dinâmica de ramificações previstas, mas não pode emitir instruções fora de ordem. Depende de compiladores otimizados para ordená-las bem.

3.7.4 Hewlett – Packard (HP)

A HP foi das primeiras a entrar no mercado RISC, lançando o seu primeiro processador PA-RISC de 32 bits em 1986. Os chips da HP possuem 10 unidades funcionais: duas ALUs de inteiros, duas unidades de deslocamentos/mescla, duas unidades multiplicar/acumular (MAC) de ponto flutuante, duas unidades de divisão/raiz quadrada em ponto flutuante e duas unidades de carga/armazenagem. As unidades MAC têm latência de três ciclos e são totalmente canalizadas para processamento em precisão simples para proporcionar até 4 FLOPS por ciclo. As unidades de divisão tem latência de 17 e não são canalizadas, mas podem funcionar concorrentemente com as MACs.

4. CONSIDERAÇÕES FINAIS

Chegamos a uma conclusão que os microprocessadores evoluíram de uma maneira tão rápida que a Informática se firma como uma “ciência” mutante, sofrendo constantes alterações. Essas mudanças freqüentes tornam a Informática muito dinâmica. Com essa velocidade de alterações os fabricantes de software e hardware desenvolveram produtos para utilizarem os recursos que esses processadores fornecem associado ao lado do o processador ser a peça mais importante em um computador. Esses processadores evoluíram de tal maneira que bits que eram trafegados em barramentos de 8 bits hoje trafegam em velocidades bem superiores o mesmo acontecendo com os registradores internos que tinham 16 bits, clock´s e memória cache que a principio os primeiros processadores não possuíram. Isso sem frisar muito a velocidade de clock que tornam a execução de programas mais rápida junto com memórias apropriadas. Com toda essa pesquisa feita, chegamos a um ponto comum que a tecnologia de processadores é o carro chefe da Informática e as empresas e os usuários finais ainda vão usufruir muito de uma tecnologia que o homem está sempre superando. Para cada vez executar programas no menor espaço de tempo.

5. BIBLIOGRAFIA

ROSCH, Winn L. Desvendando O Hardware do PC : microprocessadores, 2 ed. Rio de Janeiro: Campus, 1993. 59-77 pgs.

TANENBAUM, Andrew S. Organização Estruturada de Computadores. 3 ed. Rio de Janeiro. Prentice-Hall do Brasil LTDA, 1992.

HALFHILL, Tom R., MONTGOMERY, John. Adrenalina Pura, Revista Byte Rio de Janeiro, p. 19-38 , Novembro 1995.