Como as CPUs RISC e CISC são diferentes?

Se você é um entusiasta de tecnologia, deve ter ouvido as palavras Computador de conjunto de instruções reduzido (RISC) e Computador de conjunto de instruções complexo (CISC). E se você conhece um pouco sobre computadores, também deve saber que esses termos se referem a maneiras diferentes de projetar um processador.

Por exemplo, o processador ARM do seu telefone tem uma arquitetura RISC. Em contraste, o processador x86 em seu computador tem um design CISC.

Mas qual é a diferença entre RISC e CISC? Vamos nos aprofundar um pouco mais e descobrir.

O que é um conjunto de instruções?

Sempre que falamos sobre diferentes designs de unidade de processamento central (CPU), uma das coisas que temos que falar é o conjunto de instruções.

O conjunto de instruções de uma CPU é o conjunto de operações que uma CPU pode realizar nativamente. Essas são as operações que são codificadas na CPU em um nível de hardware. Este conjunto pode conter de algumas a milhares de instruções, dependendo do design da CPU.

Em outras palavras, uma CPU não pode realizar nenhuma operação que esteja fora de seu conjunto de instruções, porque não possui o hardware para isso.

Vamos usar uma analogia para entender isso melhor. Veja o exemplo de uma lâmpada. O fabricante de uma lâmpada projetou a lâmpada para converter eletricidade em luz. E uma lâmpada pode fazer isso porque o hardware oferece suporte nativo.

Em essência, uma lâmpada só pode converter eletricidade em luz e nada mais.

Da mesma forma, o conjunto de instruções de uma CPU é o conjunto de operações que o hardware da CPU habilita. Por exemplo, quase todas as CPUs têm uma instrução “Mover” em seu conjunto de instruções. A instrução “Mover” pega alguns dados de um espaço de armazenamento de origem e os move para um espaço de armazenamento de destino.

Sempre que uma CPU precisa mover alguns dados, ela sabe exatamente como fazer isso porque o hardware foi projetado em torno disso.

Resumindo, um conjunto de instruções contém todas as operações que uma CPU suporta em um nível de hardware.

Como funciona uma CPU?

Uma CPU é um labirinto de circuitos elétricos. Esses circuitos elétricos são projetados de uma certa maneira para fornecer à CPU seu conjunto de instruções nativas. Assim, ele só sabe realizar as operações em um conjunto de instruções, pois possui os circuitos para isso.

Para fazer com que a CPU execute uma determinada operação, o circuito correspondente a essa operação é acionado por meio de um sinal elétrico. E uma vez que um circuito é acionado, a CPU executa a rotina associada a esse circuito.

Para fazer a CPU realizar operações complexas como enviar um tweet, os programas de software disparam milhões de sinais elétricos a cada segundo, cada um direcionando uma instrução específica do conjunto de instruções da CPU.

É aqui que entra o conceito de RIS e CIS.

O que é RISC?

Como o nome sugere, uma CPU baseada em RISC tem um conjunto simplificado de operações. Essas instruções simplificadas alcançam objetivos simples e levam apenas um ciclo para serem concluídas.

E como o RISC tem instruções simples, a CPU não precisa ter circuitos complexos para executar essas instruções. É também por isso que os designs RISC são, em termos de hardware, mais baratos de implementar.

Relacionado: Por que meu telefone é mais lento que meu PC? Explicada a velocidade do smartphone vs. computador

Para entender uma CPU RISC em mais detalhes, vamos examinar os princípios de design das CPUs baseadas em RISC.

Primeiro, as CPUs RISC completam cada instrução em um único ciclo.

Em segundo lugar, as CPUs RISC só executam operações em dados armazenados em registros. Isso ocorre porque um dos principais gargalos para a capacidade da CPU de realizar tarefas é a grande diferença entre a velocidade da CPU e a velocidade da memória principal. A memória principal é super lenta em comparação com uma CPU.

Relacionado: Um guia rápido e sujo para RAM: o que você precisa saber

Portanto, se uma CPU tiver que usar dados armazenados na memória principal, isso causará um gargalo na unidade e o processo ficará lento. Em um projeto RISC, os dados são carregados e armazenados nos registros da CPU, porque os registros estão muito mais próximos da velocidade da CPU do que a memória principal.

Em terceiro lugar, as instruções RISC são simples o suficiente para que não haja uma camada de microcódigo interpretativo para traduzir as instruções em formas mais simples.

E, finalmente, os designs RISC suportam pipelining para executar partes de várias instruções ao mesmo tempo. Como as CPUs de design RISC têm velocidades de clock maiores, elas são excepcionalmente rápidas. O pipelining é uma forma de aproveitar essa velocidade e executar partes de várias instruções para aumentar a eficiência.

Para encurtar a história, as CPUs RISC têm instruções simples, velocidades de clock mais altas, estrutura de pipelining eficiente, operação de carga-armazenamento nos registradores e podem executar instruções em um ciclo.

O que é CISC?

O CISC é o oposto do RISC em quase todas as áreas-chave. Quase todos os chips de desktop têm um design CISC.

Primeiro, as instruções de projeto CISC são complexas e, portanto, requerem uma camada de microcódigo para serem traduzidas em instruções simplex.

Em segundo lugar, as instruções CISC podem levar vários ciclos da CPU para serem executadas.

Em terceiro lugar, o pipelining não é tão eficiente no CISC e é ainda mais difícil de implementar devido à natureza complexa das instruções CISC.

Resumindo, CPUs com arquitetura CISC podem realizar várias operações em uma instrução complexa. Mas a instrução leva vários ciclos para ser concluída, é mais difícil de usar em pipelining e requer muitos circuitos na CPU.

RISC vs. CISC: Principais diferenças

A principal diferença entre RISC e CISC é o tipo de instruções que executam.

As instruções RISC são simples, executam apenas uma operação e uma CPU pode executá-las em um ciclo.

As instruções CISC, por outro lado, incluem um monte de operações. Portanto, a CPU não pode executá-los em um ciclo.

As instruções também são o motivo pelo qual as CPUs RISC suportam o pipelining desde o início e as CPUs CISC têm mais dificuldade com isso. Com o RISC, as instruções são simples o suficiente para que possam ser executadas em partes. Isso é mais difícil de fazer com o CISC devido à natureza complexa das instruções.

Em seguida, ao contrário do RISC, as instruções CISC podem funcionar diretamente da RAM. Portanto, não há necessidade de realizar operações separadas de carregamento / armazenamento no projeto CISC.

Finalmente, os requisitos de hardware para um projeto CISC são maiores do que para um projeto RISC, uma vez que o CISC requer que instruções complexas sejam incorporadas ao hardware da CPU. Essencialmente, o que o CISC consegue com o hardware, o RISC visa atingir com o software.

É por isso que os programas que visam uma arquitetura CISC têm menos linhas de código porque as próprias instruções lidam com muitas operações.

Existem vantagens e desvantagens para RISC e CISC

Nenhum processador moderno é totalmente baseado em RISC ou CISC. Os processadores modernos incorporam as filosofias de design de ambas as arquiteturas para obter o melhor dos dois mundos. Por exemplo, a arquitetura x86 que a AMD usa é principalmente CISC, mas tem um microcódigo para converter instruções complexas em instruções reduzidas simples semelhantes a RISC.

Portanto, ao contrário dos processadores do século passado, as CPUs modernas evoluíram além de uma simples classificação RISC ou CISC.