Você está na página 1de 9

CISC vs RISC

Posted by VonNaturAustreVe on 24 de Fevereiro de 2009Leave a comment (20)Go to comments

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 vm com identificao e literatura descrevendo o processador que contm dentro de si, arquitetura CISC e RISC. A CISC (em ingls: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instrues), usada em processadores Intel e AMD; suporta mais instrues no entanto, com isso, mais lenta fica a execuo delas. A RISC (em ingls: Reduced Instruction Set Computing, Computador com um Conjunto Reduzido de Instrues) usada em processadores PowerPC (da Apple, Motorola e IBM) e SPARC (SUN); suporta menos instrues, e com isso executa com mais rapidez o conjunto de instrues que so combinadas. Um processador CISC (Complex Instruction Set Computer), capaz de executar vrias centenas de instrues complexas, sendo extremamente verstil. Exemplos de processadores CISC so os 386 e os 486. No comeo da dcada de 80, a tendncia era construir chips com conjuntos de instrues cada vez mais complexos, mas alguns fabricantes resolveram seguir o caminho oposto, criando o padro RISC (Reduced Instruction Set Computer ). Ao contrrio dos complexos CISC, os processadores RISC so capazes de executar apenas algumas poucas instrues simples. Justamente por isso, os chips baseados nesta arquitetura so mais simples e muito mais baratos. Outra vantagem dos processadores RISC, que por terem um menor nmero de circuitos internos, podem trabalhar com clocks mais altos. Um processador RISC capaz de executar instrues muito mais rapidamente. Assim, em conjunto com um software adequado, estes processadores so capazes de desempenhar todas as funes de um processador CISC, compensando as suas limitaes com uma velocidade maior de operao. Atualmente, vemos processadores hbridos, que so essencialmente Processadores CISC, porm que possuem internamente ncleos RISC. Assim, a parte CISC do processador pode cuidar das instrues mais complexas, enquanto que o ncleo RISC pode cuidar das mais simples, nas quais mais rpido. Parece que o futuro nos reserva uma fuso destas duas tecnologias. Um bom exemplo de processador hbrido o Pentium Pro.

Arquitetura CISC
CISC (Complex Instruction Set Computer, ou, em uma traduo literal, Computador com um Conjunto Complexo de Instrues): um processador capaz de executar centenas de instrues complexas diferentes sendo, assim, extremamente verstil. Exemplos de processadores CISC so os 386 e os 486 da Intel.

Um modelo CISC

Os processadores baseados na computao de conjunto de instrues complexas contm uma micro programao, ou seja, um conjunto de cdigos de instrues que so gravados no processador, permitindo-lhe receber as instrues dos programas e execut-las, utilizando as instrues contidas na sua micro programao. Seria como quebrar estas instrues, j em baixo nvel, em diversas instrues mais prximas do hardware (as instrues contidas no microcdigo do processador). Como caracterstica marcante esta arquitetura contm um conjunto grande de instrues, a maioria deles em um elevado grau de complexidade. Examinando do ponto de vista um pouco mais prtico, a vantagem da arquitetura CISC que j temos muitas das instrues guardadas no prprio processador, o que facilita o trabalho dos programadores de linguagem de mquina; disponibilizando, assim, praticamente todas as instrues que sero usadas em seus programas. Os processadores CISC tm a vantagem de reduzir o tamanho do cdigo executvel por j possurem muito do cdigo comum em vrios programas, em forma de uma nica instruo. Esta arquitetura processa e trata grandes e complexas instrues, nomeadamente operaes de multiplicao e diviso mas tambm executa e/ou descodifica grandes quantidades de operaes, 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-cdigo no processador, sendo difcil modificar a lgica de tratamento de instrues. Esta arquitetura suporta operaes do tipo a=a+b descrita por add a,b, ou seja podem simplesmente utilizar dois operandos para uma nica instruo, sendo um deles fonte e destino (acumulador) e permite um ou mais operadores em memria para a realizao das instrues. Com isto se comprova a necessidade de abranger um elevado leque de modelos de endereamento, com acesso direto memria e com apontadores para as variveis em memria, armazenados eles prprios (ponteiros) em clulas de memria. A complexidade que envolve estes modelos compromete o produto a nvel de comercializao e desenvolvimento, limitando ou diminuindo o aumento a frequncia de relgio no s pelo tempo de acesso s memrias como devido ao reduzido nmero de registos.

Porm, do ponto de vista da performance, os CISCs tm algumas desvantagens em rel ao aos RISCs, entre elas a impossibilidade de se alterar alguma instruo composta para se melhorar a performance. O cdigo equivalente s instrues compostas do CISC pode ser escrito nos RISCs da forma desejada, usando um conjunto de instrues simpl es, da maneira que mais se adequar. Sendo assim, existe uma disputa entre tamanho do cdigo X desempenho. A existncia de um grande nmero de registros nas arquiteturas RISC, aliado evoluo da tecnologia dos compiladores dos ltimos anos (em especial, na gerao de cdigo), vem permitindo representar a maioria das variveis escalares diretamente em registro, no havendo necessidade de recorrer com tanta frequncia memria. Esta organizao no foi contudo economicamente vivel nas geraes anteriores de microprocessadores, com destaque para a famlia da Motorola (M680x0) e, ainda mais antiga, a famlia da Intel (ix86). Estes processadores dispunham de um menor n de registros e, consequentemente, uma diferente organizao que suportasse eficientemente diversos mecanismos de acesso memria.

No caso da famlia M680x0, o programador tinha disponvel dois bancos de 8 registros genricos de 32 bits: um para dados (D) e outro para apontadores para a memria (A), suportando este ltimo banco um variado leque de modos de endereamento memria. Apenas um dos registros (A7) usado implicitamente em certas operaes de manuseamento da stack. A famlia Intel mais complexa por no ter variadamente registros de uso genrico. A arquitetura de base dispe efetivamente de 4 registros para conter operandos aritmticos (A, B, C e D), mais 4 para trabalhar com apontadores para a memria (BP, SP, DI e SI) e outros 4 para lidar com uma memria segmentada (CS, DS, SS e ES; a nica maneira de uma arquitetura de 16 bits poder aceder a mais de 64K clulas de memria). Cada um destes registros no pode ser considerado de uso genrico, pois quase todos eles so usados implicitamente (isto , sem o programador explicitar o seu uso) em vrias instrues (por exemplo, os registros A e D funcionam de acumuladores em operaes de multiplicao e diviso, enquanto o registro C usado implicitamente como varivel de contagem em instrues de controle de ciclos). A situao complica-se ainda mais com a variao da dimenso dos registros na mesma famlia (de registros de 16 bits no i286 para registros de 32 bits no i386), pois o formato de instruo 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 tm de distinguir operandos de 8, 16 e 32 bits, usando o mesmo formato de instruo.

Arquitetura RISC

Reduced Instruction Set Computer ou Computador com um Conjunto Reduzido de Instrues (RISC), uma linha de arquitetura de computadores que favorece um conjunto simples e pequeno de instrues que levam aproximadamente a mesma quantidade de tempo para serem executadas. A maioria dos microprocessadores modernos so 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 instrues x86 baseadas em arquitetura CISC em formas baseadas em arquitetura RISC mais simples, utilizando prioridade de execuo. Os processadores baseados na computao de conjunto de instrues reduzido no tem microprogramao, as instrues so executadas diretamente pelo hardware. Como caracterstica, esta arquitetura, alm de no ter microcdigo, tem o conjunto de instrues reduzido, bem como baixo nvel de complexidade. A ideia foi inspirada pela descoberta de que muitas das caractersticas includas na arquitetura tradicional de processadores para ganho de desempenho foram ignoradas pelos programas que foram executados neles. Mas o desempenho do processador em relao memria que ele acessava era crescente. Isto resultou num nmero de tcnicas para otimizao do processo dentro do processador, enquanto ao mesmo tempo tentando reduzir o nmero total de acessos memria. Esta arquitetura suporta operaes do tipo a=b+c descrita por add a,b,c, ou seja, podem especificar trs operandos para uma nica instruo, mas exclusivamente se estes forem registos, originando em situao contrria (operadores em memria) um atraso provocado pela introduo de aes extra no processador que se reflete no funcionamento encadeado (piplining). Para garantir rapidez e eficincia do sistema, pretende-se que os operadores sejam acedidos velocidade de funcionamento do processador, logo se justifica a utilizao dos registos, e para que a representao de todas as variveis para processamento sejam apresentadas como registos, tem que se garantir um nmero elevado destes, assegurando-se atualmente a maioria das variveis escalares pela utilizao de 32 registos genricos que caracterizam a maioria da tecnologia dos compiladores atuais.

Na representao de variveis estruturadas, a sua atribuio no se apresenta de forma to linear, a ttulo de exemplo, um inteiro nesta arquitetura ocupa 32 bits, os reais 32 ou 64 bits (consoante a preciso) e cada clula de memria contem apenas 8 bits, logo cada varivel ocupa vrias clulas, portanto uma operao bsica entre duas variveis estruturadas implicava vrias operaes entre registos (efetuadas parcialmente, e implicavam elevado nmero de operaes e registos), para isso utilizam um indicador (.align x) para alinhar a informao apenas em localizaes de memria que comeam por endereo par para 16 bits (x=1) ou ento mltiplos de 4 para 32 bits (x=2). O comprimento das instrues em arquiteturas RISC tiveram que ser fixados devido a adoo de tecnologias como o piplining e a maior facilidade e simplicidade e consequente reduo do tempo de execuo, estando o dimensionamento determinado por 32 bits para permitir especificar os trs operandos. Caractersticas comuns maior parte dos processadores RISC: nmero de instrues limitado; codificao de instrues em uma palavra de tamanho fixo; execuo sem micro-cdigo; altas taxas de execuo (prximas a 1 instruo/ciclo) uso intenso de pipelines; poucos modos de endereamento; operaes envolvendo a memria principal restritas a transferncias (LOAD, STORE); operaes lgicas e aritmticas entre registradores, tipicamente com instrues de trs endereos. Instrues complexas: apenas incluir quando o benefcio no desempenho compensar a degradao de velocidade; Uso de transistores: rea de VLSI pode ser utilizada para novas instrues ou para aumentar nmero de registradores, incluir memria cache no chip do processador, adicionar unidades de execuo; Uso de microcdigo: deve ser evitado, pois o overhead associado ao tempo de acesso a microinstrues na memria de controle passou a ser considervel a partir do momento em que a tecnologia da memria principal passou de ncleos de ferrite para dispositivos semicondutores;

Papel do compilador: deve substituir eficientemente as operaes complexas eliminadas do hardware. Para atingir este objetivo, otimizao fundamental; projeto de compiladores realizado juntamente com o projeto dos processadores.

Olha o processador do playstation 3, sim ele e um RISC.

RISC tambm a arquitetura adotada para osprocessadores dos videogames modernos, que proporcionam um hardware extremamente dedicado somente execuo do jogo, tornando-o muito mais rpido em relao a micro computadores com mais recursos, embora com processador x86.

RISC versus CISC


Todos os processadores dispem de instrues de salto de ida e volta, normalmente designados de instrues de chamada de sub-rotinas: nestas, para alm de se alterar o contedo do registro PC como qualquer instruo de salto, primeiro guarda-se o endereo de instruo que segue a instruo 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 instrues de um processador RISC: o conjunto de instrues que cada processador suporta bastante variado. Contudo possvel identificar e caracterizar grupos de instrues que se encontram presentes em qualquer arquitetura. Para transferncia de informao: integram este grupo as instrues que transferem informao entre registros e a memria (load/store), entre registros (simulado no Assembler do MIPS, e implementando com uma soma com o registro 0), diretamente entre posies de memria (suportado por exemplo, no M680x0, mas no disponvel em qualquer arquitetura RISC), ou entre registros e a stack, com incremento/decremento automtico do sp (disponvel em qualquer arquitetura CISC, mas incomum em arquiteturas RISC); Operaes aritmticas, lgicas, : soma, subtrao e multiplicao com inteiros e fp, e operaes lgicas AND, OR, NOT, ShiftLeft/Right so as mais comuns; alguns processadores suportam ainda a diviso, quer diretamente por hardware, quer por microprogramao. Acesso a operandos em memria em CISC e RISC: Uma das consequncias do fato das arquiteturas CISC disporem de um menor nmero de registros a alocao das variveis escalares, em regra, a posies de memria, enquanto que nas arquiteturas RISC, a regra era a alocao a registros. Atendendo ao modelo de programao estruturada to em voga nos anos 70, ao fato da maioria das variveis escalares serem locais a um dado procedimento, e necessidade do modelo de programao ter de suportar o aninhamento e recursividade de procedimentos, as arquiteturas CISC necessitavam de um leque rico de modos de

endereamento memria, para reduzir o gap semntico entre uma HLL e a linguagem mquina. Resume-se aqui, as principais diferenas entre as arquiteturas CISC e RISC, nas facilidades de acesso a operandos que se encontram em memria: CISC: grande riqueza na especificao de modos de endereamento; 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 acessos indiretos memria, isto , com apontadores para as variveis sem memria armazenados em clulas de memria. RISC: apenas em operaes load/store e apenas 1 ou 2 modos; exemplo do MIPS: apenas (R)+desloc16. Operaes lgicas e aritmticas em CISC e RISC : Duas grandes diferenas se fazem notar entre estes 2 modelos: na localizao dos operandos neste tipo de operaes, e o n de operandos que possvel especificar em cada instruo. CISC: 1 ou mais operandos em memria (mx 1 no i86 e M68K); nem sempre se especificam 3 operandos (mx 2 no i86 eM68K). RISC: operandos sempre em registros; 3 operandos especificados (1 dest, 2 fontes).

Como pode ser visto no grfico acima, a quantidade de etapas pela qual a instruo nos processadores de arquitetura CISC e maior que as RISC, causando o efeito de demora para as instrues serem processadas. Com o aparecimento de linguagens como FORTRAN, Algol, Simula, Pascal e C em 19501970 ajudou ao desenvolvimento de metodologias estruturas de programas, a construes lingsticas de mais alto nvel, e a maior quantidade de pessoas a escreverem programas, exigiam suporte eficiente e adequado, para poupar o trabalho de gerao de cdigo, pelos compiladores daquelas linguagens. Esta presso viria a influenciar decisivamente a maioria dos processadores, ao ponto, de exemplo ilustrativo, chegar a haver um CPU que suportava diretamente o tipo de dados lista ligada, oferecendo instrues mquina para inserir e remover elementos de uma lista em memria. Instrues de grande complexidade e um grande nmero de instrues, so 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 filosofia.

Arquitetura Hbrida
Apesar de por questes de Marketing, muitos fabricantes ainda venderem seus chips, como sendo Processadores RISC, no existe praticamente nenhum processador atualmente que siga estritamente uma das duas filosofias. Tanto processadores da famlia 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 caractersticas das duas arquiteturas, por simples questo de performance. Por que ficar de um lado ou de outro, se possvel juntar o melhor dos dois mundos? A ltima coisa que os fabricantes de processadores so teimosos, sempre que aparece uma soluo melhor, a antiga e abandonada.

Um exemplo de processador hibrido.

Examinando de um ponto de vista um pouco mais prtico, a vantagem de uma arquitetura CISC que j temos muitas das instrues guardadas no prprio processador, o que facilita o trabalho dos programadores, que j dispe de praticamente todas as instrues que sero 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 instrues simples, teria sempre que combinar vrias instrues 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 cientifica. Enquanto estivessem sendo resolvidos apenas clculos simples, de soma, subtrao, etc. quem estivesse com a calculadora simples poderia at se sair melhor, mas ao executar clculos mais complicados, a pessoa com a calculadora cientfica disporia de mais recursos. A ideia de construo de um processador hbrido bastante interessante, pois faz com que finalmente PCs possam ter um desempenho realmente astronmica. A Intel, porm, errou feio em um detalhe importante do projeto do Pentium Pro: o seu decodificador CISC foi desenvolvido basicamente para trabalhar com cdigo de 32 bits ou seja, com sistemas operacionais como o Windows NT, OS/2 e Netware. (Nota: o Windows 95 um sistema operacional hbrido; apesar da Microsoft declarar que se trata de um sistema operacional de 32 bits, isto no totalmente verdade. Grande parte do seu cdigo ainda de 16 bits de modo a tornar-se compatvel com aplicativos escritos para o Windows 3.x). Isto quer dizer que, se tivermos um Pentium-200 e um Pentium Pro-200, um Windows 3.11 ser mais rpido no Pentium e no no Pentium Pro, por mais incrvel que possa parecer.

Concluso: No vale a pena adquirir um micro baseado no Pentium Pro se voc for utilizar MSDOS, Windows 3.x ou Windows 95. Processadores de outros fabricantes em especial o 686 da Cyrix e o 5K86 da AMD tambm possuem arquitetura hbrida CISC/RISC, com a vantagem de possurem um decodificador otimizado para cdigo tanto de 32 bits quanto de 16 bits. Nos chips atuais, que so na verdade misturas das duas arquiteturas, juntamos as duas coisas. Internamente, o processador processa apenas instrues simples. Estas instrues internas, variam de processador para processador, so como uma luva, que se adapta ao projeto do chip. As instrues internas de um K6 so diferentes das de um Pentium por exemplo. Sobre estas instrues internas, temos um circuito decodificador, que converte as instrues complexas utilizadas pelos programas em vrias instrues simples que podem ser entendidas pelo processador. Estas instrues complexas sim, so iguais em todos os processadores usados em micros PC. isso que permite que um Athlon e um Pentium III sejam compatveis entre s. O conjunto bsico de instrues usadas em micros PC chamado de conjunto x86. Este conjunto composto por um total de 187 instrues, que so as utilizadas por todos os programas. Alm deste conjunto principal, alguns processadores trazem tambm instrues alternativas, que permitem aos programas executar algumas tarefas mais rapidamente do que seria possvel usando as instrues x86 padro. Alguns exemplos de conjuntos alternativos de instrues so o MMX (usado apartir do Pentium MMX), o 3D-NOW! (usado pelos processadores da AMD, a partir do K6-2), e o SSE (suportado pelo Pentium III).

Você também pode gostar