·

Cursos Gerais ·

Engenharia de Software

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta
Equipe Meu Guru

Prefere sua atividade resolvida por um tutor especialista?

  • Receba resolvida até o seu prazo
  • Converse com o tutor pelo chat
  • Garantia de 7 dias contra erros

Texto de pré-visualização

Arquitetura CISC x RISC\n\nDEFINIÇÃO\n\nConceitos de arquiteturas CISC e RISC: características, vantagens e desvantagens.\n\nPROPÓSITO\n\nCompreender as vantagens e desvantagens das arquiteturas RISC e CISC e suas influências no desenvolvimento dos processadores, assim como identificar os motivos para a escolha de cada uma das arquiteturas, lembrando que, atualmente, os processadores costumam utilizar uma combinação de ambas (em arquiteturas híbridas).\n\nPREPARAÇÃO\n\nAntes de iniciar o conteúdo deste tema, você deve conhecer os conceitos de Estrutura Básica do Computador, Instruções e Etapas de Processamento.\n\nOBJETIVOS MÓDULO 1\n\nIdentificar características e propriedades da arquitetura CISC\n\nMÓDULO 2\n\nIdentificar características e propriedades da arquitetura RISC\n\nINTRODUÇÃO\n\nAntes de iniciarmos este tema, precisamos relembrar alguns conceitos necessários para a compreensão dos assuntos que serão tratados.\n\nNeste vídeo, relembramos alguns conceitos importantes para a contextualização do tema.\n\nPara assistir a um vídeo sobre o assunto, acesse a versão online deste conteúdo.\n\nMÓDULO 1\n\nIdentificar características e propriedades da arquitetura CISC\n\nABORDAGEM CISC\n\nA abordagem CISC (Computador com Conjunto Complexo de Instruções) está relacionada às possibilidades na hora de se projetar a arquitetura de um processador, com instruções específicas para o maior número de funcionalidades possível. Além disso, essas instruções realizam operações com diferentes níveis de complexidade, buscando, muitas vezes, operando na memória principal e retornando a ela os resultados.\n\nIsso faz com que a quantidade de instruções seja extensa e que a Unidade de Controle do processador seja bastante complexa para decodificar a instrução a ser executada. Entretanto, a complexidade é compensada por poucos acessos à memória e soluções adequadas para problemas específicos.\n\nVeja, a seguir, um esquema que ilustra a arquitetura CISC:\n\nUNIDADE DE CONTROLE\n\nMEMÓRIA DE DADOS ↔ REGISTRADORES ↔ MEMÓRIA DE PROGRAMA ↔ UNIDADE DE ENTRADA E SAÍDA\n\nImagem: Elaborado por Leandro Ferreira\n\nORIGEM\n\nA abordagem CISC surgiu de uma evolução dos processadores. Essa sigla só começou a ser usada após a criação do conceito de RISC no início da década de 1980 (a ser visto no próximo módulo), quando os processadores anteriores passaram a ser chamados de CISC de forma retroativa.\n\nConforme a tecnologia de fabricação e a capacidade computacional evoluíam, problemas mais complexos puderam ser resolvidos pelos processadores. Para esses problemas, foram sendo criadas novas instruções específicas.\n\nEXEMPLO\n\nÉ possível adicionar uma instrução específica para multiplicar números reais em vez de realizar repetidas somas (instrução mais simples). CARACTERÍSTICAS\n\nNa tabela a seguir, há exemplos de processadores CISC, onde podemos acompanhar sua evolução no que diz respeito à quantidade e ao tamanho das instruções.\n\nProcessador\t\tAno\t\tTamanho da instrução\t\tQuantidade de instruções\t\tTamanho do registrador\t\tEndereçamento\n\nIBM 370\t\t\t1970\t\t2 a 6 bytes\t\t208\t\t32 bits\t\tR-R; R-M; M-M\n\nVAX11\t\t\t1978\t\t2 a 57 bytes\t\t303\t\t32 bits\t\tR-R; R-M; M-M\n\nIntel 8008\t\t\t1972\t\t1 a 3 bytes\t\t49\t\t8 bits\t\tR-R; R-M; M-M\n\nIntel 286\t\t\t1982\t\t2 a 5 bytes\t\t175\t\t16 bits\t\tR-R; R-M; M-M\n\nIntel 386\t\t\t1985\t\t2 a 16 bytes\t\t312\t\t32 bits\t\tR-R; R-M; M-M\n\nAtenção! Para visualização completa da tabela utilize a rolagem horizontal.\n\nMÚLTIPLO ENDEREÇAMENTO\n\nObservando a última coluna da tabela anterior, é possível perceber o conceito principal e uma das definições mais usuais de arquitetura com abordagem CISC: diversos tipos de endereçamento.\n\nTemos:\n\nR-R Para instruções que usam registradores como entrada e saída.\n\nR-M\n\nQuando algum dos elementos (operandos ou resultado) deve ser buscado/escrito na memória e ao menos um em um registrador.\n\nM-M\n\nPara instruções em que os operandos e o resultado estão na memória.\n\nO princípio fundamental da abordagem CISC é a realização de operações complexas, que envolvem buscar operandos na memória principal, operar sobre eles (na ULA) e guardar o resultado já na memória.\n\nNesses casos, o código de máquina é mais simples de se gerar pelo compilador, pois, geralmente, há relação direta entre uma linha de código em alto nível e uma instrução da arquitetura, como vemos no exemplo em codigo a seguir:\n\nCÓDIGO DE MÁQUINA\n\nA linguagem de máquina é o conjunto de instruções (em binário) que determinado processador consegue executar.\n\nPara ser executado, um programa escrito em alto nível (em C, Python, ou Java, por exemplo) deve ser convertido em linguagem de máquina, formando o código de máquina: versão do programa compreensível pelo processador.\n\nint a = 3\na = a + 5\n\nNa linha 1, temos a declaração da variável a. Vamos assumir que ela está alocada na memória principal em M[&a] (onde &a representa o endereço de a).\n\nNa linha 2, desejamos realizar a soma entre os valores de a e 5 e guardar o resultado, sobrescrevendo o valor da variável a para 8. No caso de uma abordagem CISC, há uma instrução que realiza exatamente esse processo. Como exemplo, na arquitetura do 386, temos a instrução ADDI, que realiza a adição de um valor imediato. Veja a instrução em Assembly a seguir:\n\nADDI M[&a], 5\n\nSegundo o manual do Processador 386, essa instrução leva 2 pulso de Clock (2 CLK) quando operada sobre um registrador e 7 CLK quando operada sobre um endereço de memória. Essa diferença se dá pela necessidade de buscar o operando e escrever o resultado na memória.\n\nCLOCK\n\nPara operar de forma organizada, o processador utiliza um relógio (Clock) que gera pulsos em intervalos regulares. A cada vez que um pulso de Clock é recebido, uma “etapa” é executada, e todo o circuito avança um passo.\n\nDessa forma, uma instrução que leve 2 pulsos (ciclos) de Clock será executada após dois pulsos serem emitidos para o circuito. HAMBUGERIA CISC\n\nOriginalmente, essa loja só vendia hambúrguer (1) ou cheeseburger (2) e, por simplicidade, cada pedido era processado por completo antes de o próximo ser iniciado.\n\nHambúrguer (1) Cheeseburger (2)\n\nO mesmo funcionário desempenhava diferentes funções:\n\nAnotar o pedido (Busca de Instrução)\nMontar os sanduíches – 1 ou 2 (Execução)\n\nEntregar o pedido no balcão\n(WriteBack ou Escrita de Registrador)\n\nCom a evolução da loja, o pedido ganhou acompanhamentos (batata, refrigerante, milkshake, tortinhas etc.) e passou a ter duas opções de entrega: No balcão (registrador)\n\nEm casa (escrita em memória)\n\nASSIM, MAIS DE CEM TIPOS DE LANCHES PODIAM SER PEDIDOS.\n\nAgora, um passo adicional era necessário após o recebimento do pedido (BI – Buscar Instrução): descobrir a receita do sanduíche escolhido, pois ninguém conseguia decorar tantas combinações e separar os ingredientes do pedido (Decodificação de Instrução e Busca de Operandos).\n\nCom isso, dois novos problemas surgiram:\n\nESPAÇO\nAs receitas e os novos ingredientes ocupavam muito espaço na loja, diminuindo a extensão do balcão (registradores).\n\nTEMPO\nPor vezes, a falta de algum ingrediente fazia com que o funcionário fosse buscá-lo no mercado (acesso à memória para buscar um operando), aumentando a espera pelo pedido.\n\nDe forma análoga, a abordagem CISC necessita de um circuito complexo de Unidade de Controle para decodificar as instruções (microprograma) que ocupa parte do processador, limitando o número de registradores.\n\nAlém disso, dependendo da quantidade de acessos à memória, o tempo de execução das instruções varia muito (receber o pedido, buscar ingrediente no mercado, entregar o pedido em casa).\n\nA primeira solução para agilizar a produção na hamburgueria foi contratar cinco funcionários especializados, um para cada uma das atividades: