Baixe o app para aproveitar ainda mais
Prévia do material em texto
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES Diego Bittencourt de Oliveira Arquitetura RISC e CISC Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: Caracterizar as arquiteturas RISC e CISC. Diferenciar os conjuntos de instruções. Descrever os conceitos de aplicação das arquiteturas. Introdução Na atualidade, praticamente qualquer dispositivo que realize algum tipo de processamento possui um microprocessador com as arquiteturas RISC ou CISC, que são compostas por diferentes conjuntos de instru- ções, características primordiais dessas arquiteturas e que norteiam suas funcionalidades. Por isso, neste capítulo, você vai conhecer essas arquiteturas, assim como os conjuntos de instruções de cada uma delas. Além disso, você vai aprender sobre as aplicações dessas arquiteturas a partir de suas características. Características das arquiteturas RISC e CISC A aparência física dos processadores nas arquiteturas RISC e CISC é muito similar — até mesmo igual em alguns casos. Na Figura 1, você pode observar um exemplo de um processador, que, por sua aparência, pode possuir tanto a arquitetura RISC quanto a arquitetura CISC. No entanto, como veremos a seguir, apesar da aparência similar, ambas as arquiteturas apresentam carac- terísticas próprias e diferenciais. Figura 1. Exemplo da aparência física de um microprocessador. Fonte: Hurst Photo/Shutterstock.com. Segundo Monteiro (2007), RISC é a abreviatura de reduced instruction set computer, ou computador com conjunto reduzido de instruções, que se trata de um tipo de arquitetura de computadores que se coloca à disposição como alternativa à arquitetura CISC. Até meados de 1980, a arquitetura CISC (abreviatura de complex instruction set computer, ou computador com conjunto complexo de instruções) era a arquitetura predominante de todos os micropro- cessadores lançados. Monteiro (2007) ainda cita que praticamente todos os microprocessadores disponibilizados no mercado, desde os primeiros processadores de 8 bits (Intel 8080, Motorola 6800 e Z-80) até os processadores de 32 bits (Intel 80486 e Motorola MC 68040), possuíam a arquitetura CISC como base. Essa arquitetura apresenta uma grande quantidade de instruções e modos de endereçamento e poucos registradores de dados na unidade central de processamento (UCP), além de um processamento controlado por um microprograma. A tecnologia RISC surgiu de estudos realizados a partir da observação do surgimento de três abordagens da tecnologia que, apesar de próximas, direcionaram-se de forma diferente umas das outras. Veja-as abaixo. Nos anos 1970, a IBM lançou uma máquina com baixo desempenho e sem sucesso comercial. Nos anos 1990, com o lançamento das máquinas RS/6000 e da família Arquitetura RISC e CISC2 Com o surgimento dos microprocessadores SPARC (scalable processor architecture, que significa arquitetura de processadores escaláveis), cujo lançamento ocorreu ao final da década de 1980 pela empresa americana Sun Microsystems, a arquitetura RISC se tornou uma opção viável para os grandes fabricantes de computadores. No Quadro 1, você pode observar algumas características das arquiteturas RISC e CISC e notar que a arquitetura CISC se caracteriza por um maior número de instruções (o processador IBM/370-168 chega a possuir 208 instru- ções), um menor número de registradores, além de um tamanho de instrução que pode variar de 1 a 48 bits. A arquitetura RISC claramente se diferencia da CISC: a arquitetura RISC chega a possuir apenas 52 instruções (o SPARC 10 tem exatamente 4 vezes menos instruções que o processador IBM/370-168), com impressionantes 528 registradores (66 vezes mais que algumas opções da arquitetura CISC) e um tamanho de instrução fixo de 32 bits. Fonte: Adaptado de Monteiro (2007). Sistemas Tipo Ano Qtde. inst. Qtde. reg. Tamanho inst. IBM/370-168 CISC 1973 208 16 16–48 bits Intel 80846 CISC 1989 147 8 1–17 bits Intel Pentium CISC 1993 150 8 1–17 bits Power PC 601 RISC 1993 184 32-I 32-PF 32 bits SPARC 10 RISC 1987 52 Até 528 32 bits Alpha 21064 RISC 1992 125 32-I 32-PF 32 bits Quadro 1. Comparação de processadores CISC e RISC PowerPC, ambas com processadores RISC (parceria entre a IBM, a Motorola e a Apple), conseguiu atingir o êxito comercial. A Universidade da Califórnia realizou estudos que resultaram nos processadores RISC; posteriormente, a empresa MIPS foi fundada pelos pesquisadores da Universidade. A Universidade de Berkeley, na Califórnia, realizou estudos que resultaram nos processadores RISC da empresa Sun Microsystems. 3Arquitetura RISC e CISC Segundo Null e Lobur (2011), a existência dessas duas arquiteturas ocorreu em virtude das limitações existentes na época do desenvolvimento de cada uma das arquiteturas. Um exemplo disso é a disponibilidade de espaço de armazenamento em disco existente na época; logo, a arquitetura CISC, por possuir instruções com tamanhos variados, pode resultar em programas me- nores, porém, com mais instruções, e a unidade de processamento ficaria a cargo da complexidade da execução das diversas instruções presentes nesse programa citado — assim, seria mais complexa. Null e Lobur (2011) ainda citam o custo de inserir registradores numerosos em um microprocessador: normalmente, um processador CISC possui poucos registradores (como mostra o Quadro 1), o que torna a arquitetura RISC mais cara que a CISC. Essas vantagens que a arquitetura CISC possuía em relação à arquitetura RISC acabaram por sumir, uma vez que, segundo Stallings (2017), com o passar do tempo, recursos como espaço de armazenamento e a confecção de registradores se tornaram cada vez mais baratos. Dessa forma, uma arquitetura como a RISC ganha espaço, já que os recursos que a limitavam agora estão cada dia mais baratos e abundantes. Patterson e Hennessy (2014) citam outra característica referente a dife- renças entre as arquiteturas abordadas no que diz respeito à complexidade dos compiladores que geram o código de máquina para elas. Uma vez que a arquitetura CISC proporciona compiladores menos complexos com maior desempenho, a arquitetura em questão possui uma quantidade maior de instru- ções com conjuntos de instruções que se assemelham às instruções presentes nas linguagens de programação. Porém, Patterson e Hennessy (2014) alertam que a característica de gerar compiladores com menor complexidade não representa um grande benefício no que diz respeito à quantidade de memória utilizada, pois, muitas vezes, um programa da arquitetura CISC pode possuir menos instruções, porém, a quantidade de bits utilizada para armazenar um programa da arquitetura é muito similar à quantidade de bits que um programa RISC necessita. No Quadro 2, temos uma comparação entre algumas características das arquiteturas RISC e CISC, em que, por exemplo, podemos observar que a arquitetura RISC acessa dados por meio de uma arquitetura registrador- -registrador. A CISC é mais rica nesse sentido, possuindo um acesso a dados registrador-registrador, registrador-memória, memória-registrador e memória- Arquitetura RISC e CISC4 -memória, o que, consequentemente, faz com que essa arquitetura seja dotada de uma maior quantidade de instruções que buscam atender às possibilidades existentes de acesso a dados. Outra característica presente no Quadro 2 é a pouca variedade de modos de endereçamento na arquitetura RISC, o que se deve ao fato de a arquite- tura possuir uma gama menor de instruções, além de que essas instruções, normalmente, possuem um tamanho em memória uniforme (ou seja, todas as instruções ocupam 4 bytes, por exemplo) — logo, modos de endereçamentos variados não são necessários. Fonte: Adaptado de Britto ([201-?]). Características RISC CISC Arquitetura Registrador-Registrador Registrador-Memória Tipos de dados Pouca variedade Muito variada Formato das instruções Instruções poucos endereços Instruções com muitos endereços Modo de endereçamentoPouca variedade Muita variedade Estágios de pipeline Entre 4 e 10 Entre 20 e 30 Acesso aos dados Via registradores Via memória Quadro 2. Comparação das arquiteturas RISC e CISC Conjunto de instruções RISC e CISC Segundo Patterson e Hennessy (2014), os processadores baseados na arquite- tura CISC possuem um microprograma, ou seja, um conjunto de códigos de instruções que são gravados no processador, permitindo-lhe, assim, receber as instruções dos programas e executá-las, utilizando as instruções contidas em seu microprograma. Esse processo se assemelha a quebrar essas instruções, já em baixo nível, em outras instruções mais próximas do hardware. 5Arquitetura RISC e CISC No passado, devido a limitações tecnológicas, algumas estratégias adotadas pelas arquiteturas tinham sentido; porém, com a evolução tecnológica, alguns desses ar- gumentos acabaram deixando de existir. Logo, para compreendermos o que motiva determinadas situações, temos de estar atentos à questão da evolução tencnologica. A partir desse microprograma, foi possível inserir uma característica muito importante para a computação na atualidade, a compatibilidade. Ou seja, in- dependentemente do conjunto de instruções CISC presentes no processador, o microprograma presente disponibiliza o conjunto de instruções comum a todos os microprocessadores com a arquitetura em questão. Esse fato foi chave para o sistema operacional Windows, por exemplo, que podia ser instalado em praticamente qualquer hardware com processador CISC. A arquitetura CISC suporta operações do tipo “a = a + b”, descrita por “add a, b”. Assim, podemos utilizar dois operandos em uma única instrução, sendo que um deles é a fonte e o destino (acumulador) e permite um ou mais operadores em memória para a execução das instruções. Assim, observamos a necessidade de um leque maior de modelos de endereçamento na arquitetura, de modo que todas essas necessidades de endereçamento sejam atendidas na arquitetura. A complexidade que esses modelos de endereçamento possuem compromete um microprocessador CISC em sua comercialização e em seu desenvolvimento, limitando ou diminuindo o aumento da frequência de clock não só pelo tempo de acesso às memórias (embora, com o passar dos anos, essa performance tenha melhorado bastante), mas também devido ao reduzido número de registros. Quando falamos em frequência de clock, referimo-nos a um sinal elétrico que se repete um determinado número de vezes de forma contínua. É esse sinal que dita a execução das instruções do microprocessador e, normalmente, é medido em frequência (hertz), normalmente expressa em megahertz ou gigahertz (que representam milhões ou bilhões de repetições). Porém, isso não significa que um microprocessdor CISC de 1 gigahertz será capaz de realizar 1 bilhão de instruções por segundo, uma vez que, Arquitetura RISC e CISC6 Porém, para a época, a arquitetura enviar complexidade para o microprocessa- dor era a saída mais viável, uma vez que isso tornava a criação de programas em linguagem de máquina mais simplórios. É importante lembrar que estamos falando de épocas em que as linguagens de programação ainda estavam engatinhando; logo, os programas eram escritos na linguagem de máquina dos microprocessadores. Ou seja, a arquitetura RISC não era vista com bons olhos, visto que, ao possuir uma gama menor de instruções, para realizar instruções complexas, era necessário combinar várias instruções básicas RISC. Com o passar dos anos, as técnicas de programação se desenvolveram e, com isso, o argumento da dificuldade de escrita de programas foi diminuindo bastante, uma vez que já existia tecnologia para criar softwares mais complexos sem tanta dificuldade. Outra questão é a impossibilidade de modificar as instruções CISC: com a arquitetura RISC, podemos escrever as instruções da maneira que dese- jarmos utilizando as suas instruções. Assim, podemos observar que existe uma disputa entre tamanho do código e desempenho entre as arquiteturas. Segundo Weber (2012), na arquitetura RISC, o desenvolvedor teria um pouco mais de trabalho, já que contaria com instruções mais simples e, por isso, preci- saria combinar várias instruções para obter a implementação de uma instrução mais complexa, conforme já mencionado, mas teria a possibilidade de criar um código mais eficiente. Os microprocessadores RISC também não possuíam um microcódigo embutido, ou seja, suas instruções eram executadas diretamente pelo hardware. Além de um menor número de instruções, essas instruções tiveram seu ta- manho e ciclo de execução padronizados, possibilitando, por meio de técnicas de pipeline, taxas de execução próximas a uma instrução por ciclo, algo praticamente impossível na arquitetura CISC. A arquitetura RISC suporta operações do tipo “a = b + c”, descritas por “add a,b,c”, ou seja, instruções com três operandos em uma única instrução, desde que eles sejam registros (ao contrário da arquitetura CISC, que permite operadores em memória). Dessa forma, podemos observar a necessidade do alto número de dependendo da instrução CISC, esta pode levar vários ciclos para executá-la. Chamamos isso de ciclo de instrução: na arquitetura RISC, normalmente, as instruções possuem um ciclo uniforme, ou seja, todas as instruções podem levar 4 ciclos de clock para serem executadas. Nesse caso, um microprocessador RISC com clock de 48 megahertz que utiliza 4 ciclos de clock por instrução vai realizar cerca de 12 milhões de instruções por segundo ou 12 MIPS. 7Arquitetura RISC e CISC registradores que a arquitetura prevê. Esses registradores representam um custo, que, no entanto, é equilibrado, uma vez que o processador RISC possui uma complexidade muito menor em comparação com o processador CISC, já que implementa um número bem limitado de instruções simples. Apesar da forte ligação que a arquitetura RISC tem com seus registradores, isso não significa que a ela não possua instruções para manipular memória. Originalmente, existem as seguintes instruções desse tipo na arquitetura RISC. LOAD: comando que carrega um determinado endereço de memória no registrador especificado no comando (por exemplo “LOAD A, 2:3”, onde o conteúdo da memória na posição “2:3” é enviado para o registrador “A”). STORE: comando que salva o conteúdo de um registrador em um endereço de memória especificado no comando (por exemplo “STORE 2:3, A”, onde o conteúdo do registrador “A” é enviado para a posição “2:3” da memória). Na Figura 2, podemos observar um modelo de arquitetura RISC e CISC em que identificamos a memória principal (que pode ser endereçada como “2:1”, ou seja, posição de memória da coluna 2 linha 1), os registradores (“A”, “B”, “C”, “D”, “E” e “F”) e a unidade de execução ou processamento (onde estão previstas as operações de multiplicação, divisão, subtração e soma). Figura 2. Modelo básico de uma arquitetura RISC e CISC. Fonte: Carrera et al. ([201-?], documento on-line). + / -* Unidade de execução Registradores Memória Principal A B C D E F 1 1 2 2 3 3 4 4 5 Arquitetura RISC e CISC8 Vamos tomar por base o exemplo do comando “MULT”, presente em ambas as arquiteturas, e realizar a operação “a = a * b”, ou seja, vamos multiplicar “a” pelo valor de “b” e armazenar o resultado em “a”, onde “a” será a posição de memória “2:4” e “b” será a posição de memória “4:1”. Na arquitetura RISC, o conjunto de comando para a realização dessa multiplicação seria o seguinte: LOAD A, 2:4 LOAD B, 4:1 MULT A, B STORE 2:4, A Na arquitetura CISC, teríamos o seguinte comando: MULT 2:4, 4:1 Como podemos observar, passar de quatro instruções para apenas uma pode parecer uma excelente economia. Porém, a arquitetura RISC tem que carregar o conteúdo das duas posições de memória (“2:4” e “4:1”) para os registradores “A” e “B”, realizar o comando de multiplicação e voltar a armazenar na memória o resultado. Todos esses comandos são de baixo nível de complexidade e são executados em hardware.Já a instrução CISC realiza uma série complexa de operações, em que o programador produz a escrita de apenas um comando, porém, internamente, o microprograma do microprocessador executa diversas instruções para obter o resultado. Assim, podemos observar um exemplo da filosofia CISC de transferir a complexidade do software para o hardware. Conceitos de aplicação das arquiteturas RISC e CISC Uma pergunta crucial sobre o tema das arquiteturas RISC e CISC é: “qual das duas arquiteturas é a melhor?”. Observando o ponto de vista dos pesquisadores da área, não há como dizer que uma ou outra arquitetura em geral é melhor que a outra. Como as arquiteturas RISC e CISC têm características e aplicações distintas, é preciso observar as características da aplicação que melhor se adaptam a cada uma das arquiteturas. 9Arquitetura RISC e CISC Delgado e Ribeiro (2017) citam que a arquitetura RISC, geralmente, resulta em microprocessadores com projetos menores, mais baratos e, consequentemente, consomem uma quantidade menor de energia. Logo, essa arquitetura é muito utilizada em dispositivos embarcados, dispositivos móveis (por exemplo, são alimentados por bateria; logo, o baixo consumo de energia é crucial), além de computadores portáteis mais simples. Segundo Patteson e Hennessy (2014), a empresa ARM (Advanced RISC Machine) projeta e licencia processadores com a arquitetura RISC a diversos fabricantes (Sansung, Motorola, Qualcomm e muitas outras) para que fabriquem chips com a tecnologia da empresa e empreguem tais chips em seus produtos e em produtos de terceiros que adquirem os componentes desses fabricantes. ARM é a arquitetura de conjunto de instruções RISC mais comum para dispositivos embarcados — há mais de três bilhões de dispositivos por ano usando ARM. Além de dispositivos embarcados, ela ainda é amplamente utilizada em dispositivos móveis, como smartphones, tablets e muitos outros dispositivos. Para obter mais informações, acesse o link a seguir. https://qrgo.page.link/113w2 Já a arquitetura CISC trabalha com uma velocidade de “clock” muito elevada, é mais cara e mais poderosa no que diz respeito a desempenho. Entretanto, é maior, uma vez que possui uma complexidade mais expressiva dada a quantidade de instruções (além de outras características) que seu núcleo tem de possuir suporte. Consequentemente, essa complexidade exige um maior número de componentes para atender a tal complexidade que con- somem uma quantidade muito maior de energia, tornando-os mais indicados para computadores de mesa e notebooks mais poderosos, além de servidores e computadores profissionais. Na Figura 3, podemos observar um dissipador de calor normalmente utili- zado em chips que dissipam muito calor. Nesses casos, é crucial a sua utiliza- ção, já que o calor em excesso pode danificá-los. Esse tipo de componente é utilizado, inclusive, em laptops e notebooks que utilizam microprocessadores, em sua grande maioria, com arquitetura CISC. Arquitetura RISC e CISC10 Figura 3. Exemplo de dissipador de calor de um processador com arquitetura CISC. Fonte: Den Rozhnovsky/Shutterstock.com. Os microprocessadores RISC também emitem calor (como qualquer compo- nente semicondutor), porém, em uma escala muito menor, em que dificilmente é necessário um dissipador de calor para ajudar no seu arrefecimento. Esses microprocessadores, muitas vezes, ficam encapsulados em dispositivos que não proporcionam nem mesmo a passagem de ar. Na Figura 4, podemos observar um exemplo de placa de circuito de um smartphone em que se vê que não existe nenhum dispositivo de arrefecimento para os chips. Em um dispositivo móvel, como um smartphone, a existência de muito calor no dispositivo pode não ser uma característica bem vista pelos consumidores. Figura 4. Exemplo de circuito de um smartphone com micropro- cessador RISC. Fonte: Prince9/Shutterstock.com. 11Arquitetura RISC e CISC Nos primórdios, os microprocessadores CISC eram simples e, com o passar do tempo, incorporaram mais funcionalidades. Assim, fabricantes como a Intel e a AMD desenvolviam novos projetos, mantendo a compatibilidade com as gerações anteriores. Dessa forma, o conjunto de instruções executado pelo microprocessador 486 necessitava ser executado pelo microprocessador Pentium, de modo que os programas continuassem compatíveis. Esse ciclo de compatibilidade continuou, e o microprocessador Pentium IV precisou manter-se compatível com o Pentium, e assim por diante, até os dias atuais. Dessa maneira, o projeto dos microprocessadores da Intel e da AMD se tornaram muito complexos e, ao mesmo tempo, muito eficientes — tanto que os computadores líderes mundiais em competições de desempenho computacional utilizam microprocessadores com arquitetura CISC. A Intel Corporation e a ADM (Advanced Micro Devices) são as duas empresas líderes mundiais (consequentemente, concorrentes) na produção e no desenvolvimento de microprocessadores que utilizam a arquitetura CISC em sua grande maioria (ou seja, voltados para computadores do tipo desktop, notebooks, servidores ou dispositivos compativeis). Para obter mais informações sobre essas empresas, acesse os links a seguir. https://qrgo.page.link/tkf14 https://qrgo.page.link/GysCu Ao contrário da plataforma CISC, o foco dos processadores RISC está na simplicidade e previsibilidade da arquitetura. A performance do tempo de execução do pipeline devido à previsibilidade existente na arquitetura é um grande benefício, uma vez que torna a arquitetura muito atraente para aplicações industriais, nas quais são necessários microprocessadores capazes de executar aplicações de tempo real. Essas aplicações têm como principal requisito o tempo de execução das tarefas, em que o sistema operacional necessita conhecer em quantos milissegundos um determinado programa Arquitetura RISC e CISC12 será executado. Esse requisito somente é atendido pela arquitetura RISC, com poucos estágios de pipeline, um pequeno leque de instruções, execução sequencial, dentre outras características. Mesmo que a arquitetura RISC possua uma velocidade menor que a velocidade da arquitetura CISC, a RISC é mais utilizada em aplicações críticas e de tempo real, como aplicações industriais, de automação e robótica. BRITTO, A. V. Introdução a arquitetura de computadores. [S. l.: s. n., 201-?]. Disponível em: http://producao.virtual.ufpb.br/books/edusantana/introducao-a-arquitetura-de- -computadores-livro/livro/livro.chunked/index.html. Acesso em: 8 jul. 2019. CARRERA, A. et al. RISC e CISC: comparação de suas técnicas. In: UFRPE. Recife: [S. n., 201-?]. Disponível em: http://ww2.deinfo.ufrpe.br/14064/arttigos/pt-br/risc-e-cisc- -compara%C3%A7%C3%A3o-de-suas-t%C3%A9cnicas. Acesso em: 8 jul. 2019. DELGADO, J.; RIBEIRO, C. Arquitetura de computadores. 5. ed. Rio de Janeiro: LTC, 2017. MONTEIRO, M. Introdução à organização de computadores. 5. ed. Rio de Janeiro: LTC, 2007. NULL, L.; LOBUR, J. Princípios básicos de arquitetura e organização de computadores. Porto Alegre: Bookman, 2011. PATTERSON, D.; HENNESSY, J. L. Arquitetura de computadores: uma abordagem quan- titativa. 4. ed. São Paulo: Elselvier, 2014. STALLINGS, W. Arquitetura e organização de computadores. 10. ed. São Paulo: Pearson, 2017. WEBER, R. F. Fundamentos de arquitetura de computadores. 4. ed. Porto Alegre: Bookman, 2012. v. 8. Leituras recomendadas ADVANCED MICRO DEVICES. [S. l.]: AMD, 2019. Disponível em: https://www.amd.com/ pt. Acesso em: 8 jul. 2019. ARM LIMITED. [S. l.]: ARM, 2019. Disponível em: https://www.arm.com/. Acesso em: 8 jul. 2019. INTEL CORPORATION. [S. l.]: Intel, 2019. Disponível em: https://www.intel.com.br/content/ www/br/pt/homepage.html. Acesso em: 8 jul. 2019. 13Arquitetura RISC e CISC
Compartilhar