sexta-feira, 5 julho, 2024
spot_img
Mais

    Últimos Posts

    spot_img

    O que é a arquitetura CISC? Veja sua importância para os PCs

    Com o avanço da tecnologia, surgiu a arquitetura RISC, ou Reduced Instruction Set Computer, que propõe justamente o contrário, ou seja, um conjunto reduzido de instruções, tornando a execução mais rápida e eficiente, mas requerendo um nível maior de conhecimento técnico do programador. Dessa forma, apesar de ser considerada “complexa”, a arquitetura CISC traz benefícios significativos para a programação de softwares de alto nível e para a simplificação das tarefas do programador.

    A arquitetura de Computador com Conjunto Complexo de Instruções (CISC) é um padrão de arquitetura de processadores nos quais as instruções são mais complexas, geralmente, unindo várias operações menores em um mesmo comando. Sua principal vantagem é possibilitar que, devido aos componentes extras e especializados associados ao processador, a programação de softwares de alto nível seja muito mais fácil. Nos computadores iniciais, a programação era realizada em Assembly, uma linguagem com alta correspondência com o nível de máquina, onde cada instrução corresponde diretamente a uma operação isolada de hardware. Na prática, o processo aparentemente simples de realizar uma soma de ‘1 + 1’, por exemplo, seria composto de diversas instruções.após a propaganda

    Num exemplo bem simplificado, a estrutura CISC seria o equivalente a programar um conjunto complexo de teclas para um MMO. Em vez de clicar individualmente para utilizar uma poção, ativar uma habilidade de aumento de força, outra de aumento de velocidade e executar o ataque para iniciar o combate, basta criar um conjunto de comandos que realize todas essas tarefas em uma ordem específica e designar uma tecla.

    Comandos de tamanhos variáveis

    Por permitir maior complexidade de operações em um mesmo comando, os comandos em CISC também podem ter tamanhos variáveis. Retomando a operação de soma, por ser extremamente simples, ela acaba sendo semelhante em CISC e RISC, mas poderíamos, por exemplo, criar um comando com condições:

    Continua após a propaganda

    • Registrador 0 = A, Registrador 1 = B
    • Se R0 for igual a R1, somar A e B
    • Se R0 for menor que R1, somar 1
    • Se R0 for maior que R1, encerrar

    Neste exemplo — que não representa funções reais de programação —, temos várias operações complexas descritas, como comparar os dados de dois registradores, e realizar diferentes operações dependendo do dado retornado da comparação. Dependendo do projeto de uma CPU RISC e quão reduzidas precisarem ser as instruções para seu hardware, as etapas de comparação, primeira operação condicional e segunda operação condicional precisarão ser descritas em comandos distintos.

    Em CISC, as operações hipotéticas de comparação, por exemplo, podem ser associadas a uma mesma função de soma, desde que existam aceleradores pré-programados no conjunto para executar essa instrução complexa. Com isso, é possível escrever um código final mais simples, mas com comandos internos mais longos que irão executar toda a função, sem que o programador precise descrever cada etapa.

    Continua após a propaganda

    Naturalmente, por contarem com tantas etapas interdependentes realizadas por um mesmo comando complexo, os tempos de execução irão variar, dependendo do tipo, tamanho e complexidade do comando.

    Manipulação direta de operandos

    Um dos elementos da estrutura CISC que possibilita os comandos mais complexos é também uma de suas limitações. Segundo Pietro, tanto RISC quanto CISC têm a capacidade de manipular diretamente operandos, com algumas diferenças de como isso é realizado em cada estrutura.

    “As operações que são feitas diretamente no CISC demoram mais ciclos de clock porque serão escritas de maneira mais simplificada, mas executadas de maneira mais complexa.” 

    Continua após a propaganda

    Para conseguir operar todos os elementos de uma cadeia complexa de comandos, é necessário que todos os dados sejam armazenados na memória do sistema. Dessa forma, é possível manipular diretamente todos os operandos (elementos) do comando sem a necessidade de ir e voltar aos registradores. 

    Uma vez que a busca ou carregamento das informações em registradores foi realizada, ela é armazenada na memória, a função é executada na própria memória, e apenas o resultado é retornado e escrito no registrador designado.

    Baixa dependência de registros (endereçamento direto)

    Continua após a propaganda

    Outro ponto importante é que, como as operações serão realizadas todas no nível de memória, o endereço na memória precisa ser o mesmo endereço efetivo dos registradores. Isso possibilita dimensionar a quantidade máxima de registradores que precisam compor o design da CPU, uma vez que não serão necessários registradores para dados transitórios de tarefas em execução, apenas os efetivos para o limite de operandos.

    Em contrapartida, essa abordagem exige um volume bem maior de memória para ser efetiva. Além disso, a velocidade de operação de dados em memória é bem inferiorque as operações realizadas diretamente nos registradores têm impacto no desempenho do sistema.

    Ampla variedade de instruções

    Uma vantagem bastante notável da estrutura CISC é que, como mencionado, as variedades de instruções são programadas em aceleradores dedicados, como o MMX ou AVX2, e não diretamente no microcódigo da CPU. Sendo assim, cada acelerador implementado assegura que os processadores x86 atuais, por exemplo, serão capazes de executar as mesmas instruções do primeiro Pentium MMX.

    Por isso, a estrutura x86 tende a ser mais favorável para trabalhar com retrocompatibilidade em aplicações e hardwares legado. Como todas as instruções necessárias já estão integradas, apenas algumas adaptações de código a nível de software se fazem necessárias, como por exemplo, uma eventual emulação de sistemas operacionais mais antigos.

    “[A Intel] trouxe a arquitetura x86 em 1978, com o 8086, e à medida que avançamos, foram adicionadas coisas, como os nossos aceleradores: o MMX, o SSE, o AVX2 e por aí vai. Isso é justamente para simplificar as operações matemáticas [no nível do hardware]. Nós utilizamos dos aceleradores para facilitar a escrita e execução dos códigos.”

    Devido à concepção de incorporar naturalmente um menor número de instruções, conjuntos antigos ou que não são aplicáveis a um CPU RISC, simplesmente não são implementadas. Por essa razão, os processadores RISC geralmente não são compatíveis com programas de modelos diferentes ou mais antigos. 

    “[Nos CPUs Intel] são duas arquiteturas x86 diferentes, a Golden Cove e a Gracemont são focadas em propósitos diferentes, enquanto o P-Core terá habilidades como hyperthreading, o E-Core é direcionado para ter uma eficiência maior. [Comparando os big.LITTLE ARM e x86] o conceito pode ser parecido, mas na hora de montar não é a mesma coisa. “

    Produtos que utilizam processadores CISC

    Após o System/360 da IBM, uma série de fabricantes de semicondutores passaram a abandonar CPUs programáveis exclusivamente em assembly e a projetar chips baseados em CISC. Criar hardwares tecnicamente mais complexos, porém mais simples de programar, foi uma troca que acelerou o avanço da computação rapidamente, pois viabilizou criar mais softwares em menos tempo e para um conjunto mais variado de aplicações.

    Intel (x86)

    Naturalmente, os produtos com arquitetura CISC mais reconhecidos são os processadores Intel, desde os primeiros 8080, passando para os 8086, servindo de base para a arquitetura x86 que praticamente domina o mercado doméstico de PCs até hoje.

    Atualmente, com a arquitetura de núcleos híbridos, a Intel passou a adotar abordagens semelhantes às utilizadas em RISC, trazendo núcleos de eficiência para instruções mais simples, e os núcleos de desempenho para instruções complexas. Em essência, ainda se trata de uma CPU x86, mas muito mais versátil do que o que era possível até os Intel Core de 11⁠ª geração.

    AMD (x64)

    Os processadores AMD também utilizam arquitetura CISC, e a companhia é a única entre as fabricantes de CPUs que ainda faz frente à Intel no setor de processadores domésticos. A nomenclatura x64 em vez de x86 vem do fato de a AMD ter adotado conjuntos de instruções de 64-bit antes da Intel em seus processadores.

    Por muito tempo a arquitetura x86 foi sinônimo de ISA em 32-bit, e com a chegada dos processadores AMD de 64-bit em 2003, a empresa adotou o novo código para se diferenciar da concorrência. Somente em 2004 a Intel introduziu conjuntos de 64-bit em suas CPUs, aproveitando a versatilidade inerente da arquitetura CISC, algo que em RISC exigiria uma reformulação completa do design.

    Motorola 68000

    Por muitos anos a Motorola atuou também como fabricante de processadores, em sua maioria utilizando arquitetura RISC. Em 1979, a empresa desenvolveuO Motorola 68000, também conhecido como m68k, segue a abordagem CISC, porém herda muitas das características de eficiência e ISA dos projetos anteriores.

    Atualmente, evoluções do m68k continuam sendo desenvolvidas, porém apenas para alguns sistemas embarcados, especialmente no setor de automação e telecomunicações.

    VAX

    Os processadores da Digital Equipment Corporation introduziram os conjuntos de instruções VAX (Extensão de Endereço Virtual), combinando elementos da arquitetura CISC, como o acesso ao endereço virtual de memória, a designs para códigos em conjunto. Na prática, os VAX são considerados projetos em CISC pelo padrão de operação e caminho de dados de seu chip, mas seus conjuntos de instruções estão mais próximos da linguagem de máquina.

    Prós e Contras da arquitetura CISC

    Inicialmente, os processadores CISC foram desenvolvidos para simplificar a programação de aplicações de alto nível, transformando instruções básicas, como carregar registradores, em etapas incorporadas a comandos simplificados. No entanto, simplificar processos em uma ponta implica em criar hardwares mais complexos, entre outras questões.

    Prós

    • Facilidade de implementação de novos comandos: com a maioria das etapas básicas de acesso e controle de dados está pré-programada nos microcontroladores, criar novos tipos de comandos não exige a reformulação da estrutura profunda dos conjuntos de instruções.
    • Compiladores mais simples: considerando que a maior parte do código de baixo nível é processada nos microcontroladores e aceleradores, os compiladores em CISC acabam sendo mais simples, pois sua carga de trabalho é reduzida em comparação com máquinas RISC ou em conjunto.
    • Versatilidade de tarefas: simplificar a programação em alto nível e facilitar a criação de códigos sem modificar a estrutura das instruções também possibilitam que CPUs CISC executem tarefas muitot mais diversificadas e complexas.
    • Retrocompatibilidade: Conforme novos aceleradores são embarcados a cada geração, mais instruções são adicionadas sem perder a compatibilidade com conjuntos anteriores. Com isso, PCs modernos conseguem rodar aplicações antigas e de máquinas antigas com certa facilidade.

    Contras

    • Mais transistores: reduzir o volume de códigos de alto nível em favor de microcontroladores e aceleradores dedicados para gerenciar comandos complexoso implica em sempre aumentar o número de transistores nos CPUs.
    • Maior consumo: naturalmente, com o volume sempre crescente de transistores e de componentes embarcados, o consumo energético também aumenta a cada geração. Além disso, as instruções mais complexas quase sempre exigem mais ciclos computacionais para serem executadas, reduzindo a eficiência energética.
    • Menor eficiência térmica: o maior consumo de energia também resulta em maior produção de calor, exigindo soluções de arrefecimento extremamente robustas para evitar danos por superaquecimento.
    • Mais caros: o hardware muito mais complexo e com milhares de aceleradores dedicados encarece consideravelmente o processo de fabricação dos chips, influenciando inclusive no índice de aproveitamento dos wafers de silício.

    Em condições reais de uso, optar por designs em CISC ou RISC sempre irá implicar em trocas, priorizando um ou outro elemento de cada arquitetura conforme a aplicação do produto. Tanto por isso, praticamente todos os processadores modernos são, de alguma forma, híbridos, utilizando conceitos dos dois padrões.

    Enquanto a Apple trabalha com seus processadores M1, M2 e os novos M3 utilizando essencialmente arquitetura RISC, seus projetos também incluem instruções complexas e outros elementos CISC. Já a Intel, desde os Alder Lake optou por uma abordagem híbrida, adotando núcleos de desempenho com hyperthread e execuções complexas, associados a núcleos de eficiência voltados justamente para as instruções de baixo nível.

    Fonte:Computação em Nuvem: Teoria e Prática 3⁠ª Edição, Dan Cristian MarinescuEducative.ioEngenheirosgarage.comSpiceworksUniversidade de StanfordMediumUniversidade do TennesseeAHIRLABS; IBM

    spot_img

    Últimas Postagens

    spot_img

    Não perca

    Brasília
    céu limpo
    14.5 ° C
    18.7 °
    14.5 °
    77 %
    1kmh
    0 %
    sex
    26 °
    sáb
    27 °
    dom
    29 °
    seg
    30 °
    ter
    30 °

    3.147.126.242
    Você não pode copiar o conteúdo desta página!