U
a
Arquitetura Cisc e Risc qual diferença por Alan Germano | mar 17, 2011 | Gerais | 20 Comentários
Sem duvidas este é um dos temas mais interessantes quando tratamos de processadores. A arquitetura de
processador descreve o processador que foi usado em um computador. Grande parte dos computadores vêm com identi cação e literatura descrevendo o processador que contém dentro de si, arquitetura CISC e RISC. A CISC (em inglês: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instruções), usada em processadores Intel e AMD; a mais instruções no entanto, com isso, mais lenta ca a execução delas. A RISC (em inglês: Reduced Instruction Set Computing, Computador com um Conjunto Reduzido de Instruções) usada em processadores PowerPC (da Apple, Motorola e IBM) e SPARC (SUN); a menos instruções, e com isso executa com mais rapidez o conjunto de instruções que são combinadas. Um processador CISC (Complex Instruction Set Computer), é capaz de executar várias centenas de instruções complexas, sendo extremamente versátil. Exemplos de processadores CISC são os 386 e os 486. No começo da década de 80, a tendência era construir chips com conjuntos de instruções cada vez mais complexos, mas alguns fabricantes resolveram seguir o caminho oposto, criando o padrão RISC (Reduced Instruction Set Computer ).
Ao contrário dos complexos CISC, os processadores RISC são capazes de executar apenas algumas poucas instruções simples. Justamente por isso, os chips baseados nesta arquitetura são mais simples e muito mais baratos. Outra vantagem dos processadores RISC, é que por terem um menor número de circuitos internos, podem trabalhar com clocks mais altos. Um processador RISC é capaz de executar instruções muito mais rapidamente. Assim, em conjunto com um software adequado, estes processadores são capazes de desempenhar todas as funções de um processador CISC, compensando as suas limitações com uma velocidade maior de operação. Atualmente, vemos processadores híbridos, que são essencialmente Processadores CISC, porém que possuem internamente núcleos RISC. Assim, a parte CISC do processador pode cuidar das instruções mais complexas, enquanto que o núcleo RISC pode cuidar das mais simples, nas quais é mais rápido. Parece que o futuro nos reserva uma fusão destas duas tecnologias. Um bom exemplo de processador híbrido é o Pentium Pro. Arquitetura CISC CISC (Complex Instruction Set Computer, ou, em uma tradução literal, “Computador com um Conjunto Complexo de Instruções”): é um processador 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. Os processadores baseados na computação de conjunto de instruções complexas contêm uma micro programaçã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 micro programaçã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á possuírem muito do código comum em vários programas, em forma de uma única instrução. Esta arquitetura processa e trata grandes e complexas instruções, nomeadamente operações de multiplicação e divisão mas também executa e/ou descodi ca grandes quantidades de operações, parecendo possuir outro processador pelo facto da maioria dos algoritmos já se encontrarem no processador sendo o seu tempo de restabelecimento praticamente nulo. A CISC é implementada e guardada em micro-código no processador, sendo difícil modi car a lógica de tratamento de instruções. Esta arquitetura a operações do tipo “a=a+b” descrita por “add a,b”, ou seja podem simplesmente utilizar dois operandos para uma única instrução, sendo um deles fonte e destino (acumulador) e permite um ou mais operadores em memória para a realização das instruções. Com isto se comprova a necessidade de abranger um elevado leque de modelos de endereçamento, com o direto à memória e com apontadores para as variáveis em memória, armazenados eles próprios (ponteiros) em células de memória. A complexidade que envolve estes modelos compromete o produto a nível de comercialização e desenvolvimento, limitando ou diminuindo o aumento a frequência de relógio não só pelo tempo de o às memórias como devido ao reduzido número de registos. 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. A existência de um grande número de registros nas arquiteturas RISC, aliado à evolução da tecnologia dos compiladores dos últimos anos (em especial, na geração de código), vem permitindo representar a maioria das variáveis escalares diretamente em registro, não havendo necessidade de recorrer com tanta frequência à memória. Esta organização não foi contudo economicamente viável nas gerações anteriores de microprocessadores, com destaque para a família da Motorola (M680x0) e, ainda mais antiga, a família da Intel (ix86). Estes processadores dispunham de um menor nº de registros e, consequentemente, uma diferente organização que asse e cientemente diversos mecanismos de o à memória.
No caso da família M680x0, o programador tinha disponível dois bancos de 8 registros genéricos de 32 bits: um para dados (D) e outro para apontadores para a memória (A), ando este último banco um variado leque de modos de endereçamento à memória. Apenas um dos registros (A7) é usado implicitamente em certas operações de manuseamento da stack. A família Intel é mais complexa por não ter variadamente registros de uso genérico. A arquitetura de base dispõe efetivamente de 4 registros para conter operandos aritméticos (A, B, C e D), mais 4 para trabalhar com apontadores para a memória (BP, SP, DI e SI) e outros 4 para lidar com uma memória segmentada (CS, DS, SS e ES; a única maneira de uma arquitetura de 16 bits poder aceder a mais de 64K células de memória). Cada um destes registros não pode ser considerado de uso genérico, pois quase todos eles são usados implicitamente (isto é, sem o programador explicitar o seu uso) em várias instruções (por exemplo, os registros A e D funcionam de acumuladores em operações de multiplicação e divisão, enquanto o registro C é usado implicitamente como variável de contagem em instruções de controle de ciclos). A situação complica-se ainda mais com a variação da dimensão dos registros na mesma família (de registros de 16 bits no i286 para registros de 32 bits no i386), pois o formato de instrução foi concebido para distinguir apenas operandos de 8 e de 16 bits, e um Bit bastava; para garantir compatibilidade ao longo de toda a arquitetura, os novos processadores têm de distinguir operandos de 8, 16 e 32 bits, usando o mesmo formato de instrução. Arquitetura RISC Reduced Instruction Set Computer ou Computador com um Conjunto Reduzido de Instruções (RISC), é uma linha de arquitetura 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 RISCs, 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 arquitetura CISC em formas baseadas em arquitetura RISC mais simples, utilizando prioridade de execução. Os processadores baseados na computação de conjunto de instruções reduzido não tem micro-programação, as instruções são executadas diretamente pelo hardware. Como característica, esta arquitetura, além de não ter microcódigo, tem o conjunto de instruções reduzido, bem como baixo nível de complexidade.
A ideia foi inspirada pela descoberta de que muitas das características incluídas na arquitetura tradicional de processadores para ganho de desempenho foram ignoradas pelos programas que foram executados neles. Mas o desempenho do processador em relação à memória que ele ava era crescente. Isto resultou num número de técnicas para otimização do processo dentro do processador, enquanto ao mesmo tempo tentando reduzir o número total de os à memória. Esta arquitetura a operações do tipo “a=b+c” descrita por “add a,b,c”, ou seja, podem especi car três operandos para uma única instrução, mas exclusivamente se estes forem registos, originando em situação contrária (operadores em memória) um atraso provocado pela introdução de ações extra no processador que se re ete no funcionamento encadeado (piplining). Para garantir rapidez e e ciência do sistema, pretende-se que os operadores sejam acedidos á velocidade de funcionamento do processador, logo se justi ca a utilização dos registos, e para que a representação de todas as variáveis para processamento sejam apresentadas como registos, tem que se garantir um número elevado destes, assegurando-se atualmente a maioria das variáveis escalares pela utilização de 32 registos genéricos que caracterizam a maioria da tecnologia dos compiladores atuais. Na representação de variáveis estruturadas, a sua atribuição não se apresenta de forma tão linear, a título de exemplo, um inteiro nesta arquitetura ocupa 32 bits, os reais 32 ou 64 bits (consoante a precisão) e cada célula de memória contem apenas 8 bits, logo cada variável ocupa várias células, portanto uma operação básica entre duas variáveis estruturadas implicava várias operações entre registos (efetuadas parcialmente, e implicavam elevado número de operações e registos), para isso utilizam um indicador (.align x) para alinhar a informação apenas em localizações de memória que começam por endereço par para 16 bits (x=1) ou então múltiplos de 4 para 32 bits (x=2). O comprimento das instruções em arquiteturas RISC tiveram que ser xados devido a adoção de tecnologias como o piplining e a maior facilidade e simplicidade e consequente redução do tempo de execução, estando o dimensionamento determinado por 32 bits para permitir especi car os três operandos. Características comuns à maior parte dos processadores RISC:
•número de instruções limitado; •codi cação de instruções em uma palavra de tamanho xo; •execução sem micro-código; •altas taxas de execução (próximas a 1 instrução/ciclo) •uso intenso de pipelines; •poucos modos de endereçamento; •operações envolvendo a memória principal restritas a transferências (LOAD, STORE); •operações lógicas e aritméticas entre registradores, tipicamente com instruções de três endereços. Instruções complexas: apenas incluir quando o benefício no desempenho compensar a degradação de velocidade; Uso de transistores: área de VLSI pode ser utilizada para novas instruções ou para aumentar número de registradores, incluir memória cache no chip do processador, adicionar unidades de execução; Uso de microcódigo: deve ser evitado, pois o overhead associado ao tempo de o a microinstruções na memória de controle ou a ser considerável a partir do momento em que a tecnologia da memória principal ou de núcleos de ferrite para dispositivos semicondutores; Papel do compilador: deve substituir e cientemente as operações complexas eliminadas do hardware. Para atingir este objetivo, otimização é fundamental; projeto de compiladores realizado juntamente com o projeto dos processadores. RISC é também a arquitetura adotada para os processadores dos videogames modernos, que proporcionam um hardware extremamente dedicado somente à execução do jogo, tornando-o muito mais rápido em relação a micro computadores com mais recursos, embora com processador x86. RISC versus CISC Todos os processadores dispõem de instruções de salto “de ida e volta”, normalmente designados de instruções de chamada de sub-rotinas: nestas, para além de se alterar o conteúdo do registro PC como qualquer instrução de salto, primeiro guarda-se o endereço de instrução que segue a instrução de salto ( e que se encontra no PC); nas arquiteturas CISC este valor é normalmente guardado na stack; nas arquiteturas RISC esse valor é normalmente guardado num registro.
Conjunto de instruções de um processador RISC: o conjunto de instruções que cada processador a é bastante variado. Contudo é possível identi car e caracterizar grupos de instruções que se encontram presentes em qualquer arquitetura. Para transferência de informação: integram este grupo as instruções que transferem informação entre registros e a memória (load/store), entre registros (simulado no Assembler do MIPS, e implementando com uma soma com o registro 0), diretamente entre posições de memória (ado por exemplo, no M680x0, mas não disponível em qualquer arquitetura RISC), ou entre registros e a stack, com incremento/decremento automático do sp (disponível em qualquer arquitetura CISC, mas incomum em arquiteturas RISC); Operações aritméticas, lógicas, …: soma, subtração e multiplicação com inteiros e fp, e operações lógicas AND, OR, NOT, ShiftLeft/Right são as mais comuns; alguns processadores am ainda a divisão, quer diretamente por hardware, quer por microprogramação. o a operandos em memória em CISC e RISC:Uma das consequências do fato das arquiteturas CISC disporem de um menor número de registros é a alocação das variáveis escalares, em regra, a posições de memória, enquanto que nas arquiteturas RISC, a regra era a alocação a registros. Atendendo ao modelo de programação estruturada tão em voga nos anos 70, ao fato da maioria das variáveis escalares serem locais a um dado procedimento, e à necessidade do modelo de programação ter de ar o aninhamento e recursividade de procedimentos, as arquiteturas CISC necessitavam de um leque rico de modos de endereçamento à memória, para reduzir o gap semântico entre uma HLL e a linguagem máquina. Resume-se aqui, as principais diferenças entre as arquiteturas CISC e RISC, nas facilidades de o a operandos que se encontram em memória: CISC: grande riqueza na especi cação de modos de endereçamento; exemplo do i86: modo absoluto; por registro indireto –(R), – (SP), (SP)+; por registro base –(Rb)+desloc8,16,32, (Rb)+(R), (Rb)+desloc8,16,32; com os indiretos à memória, isto é, com apontadores para as variáveis sem memória armazenados em células de memória. RISC: apenas em operações load/store e apenas 1 ou 2 modos; exemplo do MIPS: apenas (R)+desloc16.
Operações lógicas e aritméticas em CISC e RISC: Duas grandes diferenças se fazem notar entre estes 2 modelos: na localização dos operandos neste tipo de operações, e o nº de operandos que é possível especi car em cada instrução. CISC: 1 ou mais operandos em memória (máx 1 no i86 e M68K); nem sempre se especi cam 3 operandos (máx 2 no i86 eM68K). RISC: operandos sempre em registros; 3 operandos especi cados (1 dest, 2 fontes). Como pode ser visto no grá co ao lado, a quantidade de etapas pela qual a instrução nos processadores de arquitetura CISC e maior que as RISC, causando o efeito de demora para as instruções serem processadas. Com o aparecimento de linguagens como FORTRAN, Algol, Simula, Pascal e C em 1950-1970 ajudou ao desenvolvimento de metodologias estruturas de programas, a construções lingüísticas de mais alto nível, e a maior quantidade de pessoas a escreverem programas, exigiam e e ciente e adequado, para poupar o trabalho de geração de código, pelos compiladores daquelas linguagens. Esta pressão viria a in uenciar decisivamente a maioria dos processadores, ao ponto, de exemplo ilustrativo, chegar a haver um U que ava diretamente o tipo de dados ‘lista ligada’, oferecendo instruções máquina para ‘inserir’ e ‘remover’ elementos de uma lista em memória. Instruções de grande complexidade e um grande número de instruções, são os dois principais aspectos que caracterizam um modelo CISC (Complex Instruction Set Computer). Os processadores atuais incorporados no computador pessoal (PC – Personal Computer) seguem esta loso a. Arquitetura Híbrida Apesar de por questões de Marketing, muitos fabricantes ainda venderem seus chips, como sendo “Processadores RISC”, não existe praticamente nenhum processador atualmente que siga estritamente uma das duas loso as. Tanto processadores da família x86, como o Pentium II, Pentium III e AMD Athlon, quanto processadores supostamente RISC, como o MIPS R10000 e o HP PA-8000, ou mesmo o G4, utilizado nos Macintoshs misturam características das duas arquiteturas, por simples questão de performance. Por que car de um lado ou de outro, se é possível juntar o melhor dos dois mundos? A última coisa que os fabricantes de processadores são é teimosos, sempre que aparece uma solução melhor, a antiga e abandonada.
Examinando de um ponto de vista um pouco mais prático, a vantagem de uma arquitetura CISC é que já temos muitas das instruções guardadas no próprio processador, o que facilita o trabalho dos programadores, que já dispõe de praticamente todas as instruções que serão usadas em seus programas. No caso de um chip estritamente RISC, o programador já teria um pouco mais de trabalho, pois como disporia apenas de instruções simples, teria sempre que combinar várias instruções sempre que precisasse executar alguma tarefa mais complexa. Seria mais ou menos como se você tivesse duas pessoas, uma utilizando uma calculadora comum, e outra utilizando uma calculadora cienti ca. Enquanto estivessem sendo resolvidos apenas cálculos simples, de soma, subtração, etc. quem estivesse com a calculadora simples poderia até se sair melhor, mas ao executar cálculos mais complicados, a pessoa com a calculadora cientí ca disporia de mais recursos. A ideia de construção de um processador híbrido é bastante interessante, pois faz com que nalmente PCs possam ter um desempenho realmente astronômica. A Intel, porém, errou feio em um detalhe importante do projeto do Pentium Pro: o seu decodi cador CISC foi desenvolvido basicamente para trabalhar com código de 32 bits – ou seja, com sistemas operacionais como o Windows NT, OS/2 e Netware. (Nota: o Windows 95 é um sistema operacional híbrido; apesar da Microsoft declarar que se trata de um “sistema operacional de 32 bits”, isto não é totalmente verdade. Grande parte do seu código ainda é de 16 bits de modo a tornar-se compatível com aplicativos escritos para o Windows . Isto quer dizer que, se tivermos um Pentium-200 e um Pentium Pro-200, um Windows 3.11 será mais rápido no Pentium e não no Pentium Pro, por mais incrível que possa parecer. Conclusão: Não vale a pena adquirir um micro baseado no Pentium Pro se você for utilizar MS-DOS, Windows 3.x ou Windows 95. Processadores de outros fabricantes – em especial o 6×86 da Cyrix e o 5K86 da AMD – também possuem arquitetura híbrida CISC/RISC, com a vantagem de possuírem um decodi cador otimizado para código tanto de 32 bits quanto de 16 bits. Nos chips atuais, que são na verdade misturas das duas arquiteturas, juntamos as duas coisas. Internamente, o processador processa apenas instruções simples. Estas instruções internas, variam de processador para processador, são como uma luva, que se adapta ao projeto do chip. As instruções internas de um K6 são diferentes das de um Pentium por exemplo. Sobre estas instruções internas, temos um circuito decodi cador, que converte as instruções complexas utilizadas pelos programas em várias
instruções simples que podem ser entendidas pelo processador. Estas instruções complexas sim, são iguais em todos os processadores usados em micros PC. é isso que permite que um Athlon e um Pentium III sejam compatíveis entre sí. O conjunto básico de instruções usadas em micros PC é chamado de conjunto x86. Este conjunto é composto por um total de 187 instruções, que são as utilizadas por todos os programas. Além deste conjunto principal, alguns processadores trazem também instruções alternativas, que permitem aos programas executar algumas tarefas mais rapidamente do que seria possível usando as instruções x86 padrão. Alguns exemplos de conjuntos alternativos de instruções são o MMX (usado apartir do Pentium MMX), o 3D-NOW! (usado pelos processadores da AMD, a partir do K62), e o SSE (ado pelo Pentium III). Autor: Fabio Eduardo
20 Comentários danilo no 19 de setembro de 2012 a partir do 18:16 Muito bom!!
Responder
Jhonny Gonçalves no 7 de março de 2013 a partir do 11:03 Excelente trabalho! Sanou todas minhas dúvidas.
Responder
Bruna Oliveira no 27 de março de 2013 a partir do 21:31 Esclareceu Bastante as minhas duvidas! Parabéns pelo Trabalho.
Responder
Wagner no 10 de abril de 2013 a partir do 23:27 Muito bom…. cou completo…Parabéns..
Responder
Leandro no 26 de abril de 2013 a partir do 21:47 Parabéns, cou ótimo. Obrigado
Responder
eurico no 20 de maio de 2013 a partir do 12:07 a materia é excelente, mas nao abordaste muito sobre o processador risc.
Responder
Lucas no 5 de junho de 2013 a partir do 23:30 Excelente ! Parabéns pelo artigo.
Responder
Daniel Paladar no 8 de junho de 2013 a partir do 11:52 Muito bom, ajudou bastante. Parabéns!
Responder
Legal, estou começando a captar a idéia CISC E RISC no 10 de junho de 2013 a partir do 16:11 GOSTEI MUITO, SÓ NÃO PUDE ENTENDER UM POUCO MAIS POR SER INICIANTE NESTE TÓPICOS, MAS, AOS POUCO ESTOU CAPTANDO A IDÉIA CISC E RISC. MUITO BEM! OBRIGADO PELO E TÉCNICO….VALEU!!!
Responder
henrique no 12 de outubro de 2013 a partir do 10:44 A nal, é possível executar em um computador de arquitetura CISC os sistemas operacionais e aplicativos que foram desenvolvido para outra arquitetura? O oposto também se aplica, ou seja, é possível executar os sistemas operacionais e aplicativos desenvolvidos para a arquitetura de computador CISC em um computador que possui uma arquitetura diferente?
Responder
Alan Germano no 14 de outubro de 2013 a partir do 23:51 Infelizmente não
Responder
anonimo no 9 de dezembro de 2013 a partir do 19:48 Otimo trabalho, abordou muito bem sobre o risc e cisc so faltou melhorar em arquitetura hibrida, mas parabens
Responder
Interessante! no 14 de março de 2014 a partir do 21:20 Esclareceu bastante, obrigado! O que esclareceu bastante foi a parte do comparativo de uma calculadora simples (RISC) e cientí ca (CISC).
Responder
José Augusto Susini no 3 de abril de 2014 a partir do 16:35 Belo trabalho. Parabens.
Responder
Wellington Riardo no 25 de abril de 2014 a partir do 17:20 Muito bom,me ajudou muito.
Responder
Adriano Aquino no 28 de abril de 2014 a partir do 06:39 Parábens! Você deve ter se esforçado muito para escrever um material como este, valeu!
Responder
Jeferson no 26 de maio de 2014 a partir do 15:04 Com a utilização de processadores INTEL pela Apple ainda é possível a utilização de arquitetura RISC?
Responder
Alan Germano no 25 de junho de 2014 a partir do 16:09 A Adoção da Arquitetura está relacionada diretamente com as empresas produtoras de softwares, voltar para a arquitetura RISC, acredito que mercadologicamente seria um retrocesso para a Apple, já que na minha opinião o que fez a apple ganhar uma participação no mercado, foi justamente a adoção da arquitetura CISC.
Responder
Gustavo no 9 de outubro de 2014 a partir do 16:34 Olá Alano! Estou precisando de alguns slide que explique a execução interna em um processador com arquitetura CISC e RISC. Tem alguma dica?
Responder
Geronimo Barbosa no 20 de abril de 2016 a partir do 13:14 Muito bom me ajudou muito Obrigado
Responder
Pesquisar
Tópicos recentes CES 2017 – Saiba um Pouco sobre as Novidades Você sabe o que é Mídia Programática? Remarketing – Uma boa maneira de melhorar as reservas diretas pelo site do seu Hotel em 2017 Gravado Durante o Natal, Drone Mostra a Nova Sede da Apple, a Campus 2
Atualização build 14997 do Windows 10 poderá rodar jogos de forma mais e ciente
Comentários Geronimo Barbosa em Arquitetura Cisc e Risc qual diferença Saula em Evite o vírus ‘mude a cor do seu Facebook’ Gustavo em Arquitetura Cisc e Risc qual diferença Marcio dos Santos Melo em Google Pretende disponibizar o a internet por meio de balões Felipe Rocha em Você sabe o que são Sistemas Embarcados?
Av. Januário Miráglia, 2342 Vila Jaguaribe - 12460-000 Campos do Jordão / SP Tel: 55 12 36637321
[email protected]
Copyright © 2003 - 2016 Grupo NetCampos - Todos os direitos reservados | Uma Agência de Marketing Digital Google Partner