Baixe o app para aproveitar ainda mais
Prévia do material em texto
Processadores Vetoriais/ Matriciais e Arquiteturas RISC e CISC SST Moreira, Marcelo dos Santos Processadores Vetoriais/Matriciais Arquiteturas RISC e CISC / Marcelo dos Santos Moreira Ano: 2020 nº de p. : 11 Copyright © 2020. Delinea Tecnologia Educacional. Todos os direitos reservados. Processadores Vetoriais/ Matriciais e Arquiteturas RISC e CISC 3 Apresentação Em nosso estudo, veremos os processadores vetoriais/matriciais que realizam operações aritméticas vetoriais e matriciais de números pontos flutuantes. Em um segundo momento, estudaremos a arquitetura de processadores RISC e CISC, relacionando as suas instruções, cada um com suas características específicas. E, na sequência, faremos um comparativo entre essas duas arquiteturas. Processadores Vetoriais/Matriciais Para Stallings (2008), a principal característica do projeto de um processador vetorial reside no fato de que a sua principal tarefa é executar operações aritméticas de vetores ou matrizes de números de ponto lutuante, pois isso requer, necessariamente, uma interação por meio de cada elemento da matriz. Como exemplo, o autor cita dois vetores de números A e B – matrizes unidimensionais. Daí a necessidade de somá-los e os respectivos resultados devem ser registrados em C. Na tabela a seguir, veja a soma de vetores com seis operações separadas. Soma de vetores com operações separadas. 1,5 + 2,0 = 3,5 7,1 39,7 46,8 6,9 1000,003 1006,093 100,5 11 111,5 0 21,1 21,1 59,7 19,7 79,4 A + B = C Fonte: Stallings (2008, p. 542). 4 Uma alternativa proposta pelo mesmo autor na busca da melhoria de desempenho é a aplicação do processamento vetorial, por meio do qual é possível operar em um vetor de dados unidimensional. A mesma operação, que se utiliza de seis operações, pode ser adaptada com o processamento vetorial, expresso em código da linguagem Fortran, o qual passa a ter uma única operação, conforme ilustra a figura a seguir. Soma de vetores com o processamento vetorial. DO 100 I = 1,N C(I,J) = 0,0 (J = 1,N) DO 100 K = 1,N C(I,J) = C(I,J) + A(I,K) + B(K,J) (J = 1,N) 100 CONTINUE Fonte: Stallings (2008, p. 543). No código da figura apresentada, podemos notar que todos os elementos da i-ésima linha serão calculados de forma paralela, ou seja, cada elemento da linha é um somatório, e os somatórios – K – serão processados de forma serial em vez de paralelo. Já Tanenbaum (2013) cita a similaridade de um processador vetorial com um processador SIMD – Single Instruction, Multiple Data, o qual se caracteriza pelo único fluxo de instrução, porém com múltiplos fluxos de dados. Um processador vetorial tem como característica principal a sua eficiência na execução de uma sequência de operações em pares de elementos de dados. O autor destaca a diferença entre um processador vetorial e um SIMD, quando no primeiro as operações de adição são efetuadas em uma única unidade funcional, de alto grau de paralelismo. Em sistemas vetoriais, o acesso à memória deve ser rápido e uniforme, ou seja, o mesmo tempo de acesso para todos os elementos de um vetor. Diante disso, sistemas computacionais com arquitetura vetorial não necessitam de memória cache e nem de memória virtual. Atenção 5 A concepção dos processadores vetoriais está baseada em matrizes de dados, instruções únicas e um registrador vetorial, o qual é carregado com base na memória em uma única instrução. Em seguida, uma instrução de adição vetorial efetua as adições a partir dos elementos de dois desses vetores, alimentando-os em um somador com paralelismos (pipelined) com base em dois registradores vetoriais. O resultado do somador é outro vetor, o qual pode ser armazenado em um registrador vetorial e usado diretamente como um operando para outra operação vetorial. Arquiteturas RISC e CISC Vale aqui descrever um pouco da história das tecnologias dos processadores. A tecnologia de processadores RISC (Reduced Instruction Set Computing ou Computador com um Conjunto Reduzido de Instruções) foi desenvolvida pela IBM em 1980, com a proposta de um conjunto reduzido de instruções, definidas apenas às mais frequentemente utilizadas, evitando o uso de microcódigos (MONTEIRO, 2007). O seu projeto previa instruções simplificadas, utilizando apenas um único operando. A ênfase dos processadores RISC estava no uso de registradores, limitando o acesso à memória a instruções load/store. Como resultado, o processador necessitaria de apenas um ciclo para cada instrução. Diante da dificuldade de se escrever programas complexos, utilizando um conjunto muito reduzido de instruções, tal conjunto foi incrementado com novas instruções, propícias para trabalharem com memória virtual e multiprocessamento. Assim, a tecnologia RISC teve forte predominância em estações de trabalho científicas. Quanto aos processadores CISC (Complex Instrution Set Computing ou Computador com um Conjunto Complexo de Instruções), foi dada uma ênfase mais geral a eles. A sua predominância foi em ambientes comerciais, haja vista não apresentarem velocidade necessária aos trabalhos com extensas manipulações de números e alta resolução gráfica. Para esses ambientes, faz-se necessário contemplar todo o sistema: CPU, memória, velocidade de discos, sistema operacional e software. 6 Destacamos como vantagem de uma arquitetura CISC apresentar grande parte das instruções armazenadas no próprio processador. Assim, o trabalho dos programadores é facilitado, pois acessam rapidamente todas as instruções que serão usadas em seus programas. Outra vantagem dos processadores CISC é a redução do tamanho do código executável, haja vista já disporem de muito do código comum em vários programas na forma de uma única instrução. Os processadores CISC utilizam um conjunto de códigos de instruções que são gravados no processador, permitindo a eles receber as instruções dos programas e executá-las. Esse conjunto de códigos são chamados de microprogramação. Tais instruções, já em baixo nível, são subdivididas em diversas instruções mais próximas do hardware. Elas são implementadas e guardadas na forma microcódigo no processador, dificultando a modificação da sua lógica de tratamento. O resultado disso é que CISC suporta apenas operações similares a [a=a+b], as quais podem ser descritas por [adda,b]. Podemos notar que tais operações conseguem manipular somente dois operandos para uma única instrução. Um deles, fonte; o outro, destino (acumulador). Elas permitem um ou mais operadores em memória para a realização das instruções. Isso reforça a necessidade de um leque de modelos de endereçamento, com acesso direto à memória e com apontadores para as variáveis de memória, armazenados em células de memória. Em se tratando de um processador genuinamente RISC, exige-se do programador outra estratégia, haja vista que os processadores dessa tecnologia não têm microprogramação e, consequentemente, as instruções são executadas diretamente pelo hardware. Ou seja, além de não ter microcódigo, RISC tem o conjunto de instruções reduzido e um baixo nível de complexidade. Uma aplicação prática e muito comum é o uso da tecnologia RISC pelos modernos videogames, pois exigem hardware dedicado para o seu processamento, resultando em dispositivos muito mais rápidos se comparados aos microcomputadores que geralmente contam com mais recursos computacionais. 7 Videogame. Fonte: Plataforma Deduca (2020). Algumas características destacam a tecnologia RISC. Chamamos a atenção ao fato de o RISC apresentar um conjunto menor de instruções, todas de largura fixa, se comparado à CISC, e a vantagem de ter a mesma capacidade de processamento. Outro destaque da tecnologia RISC frente à CISC diz respeito à chamada de rotinas e à passagem de parâmetros. Fato é que as chamadas de funções consomem muito tempo de processador, apesar de requererem poucos dados. Porém, demandam mais tempo para os acessos à memória. Daí o motivo de a tecnologia RISC utilizar maisregistradores. O mesmo acontece com as chamadas de função, as quais são processadas com acessos à memória na tecnologia CISC; e em RISC isso ocorre internamente ao processador. Como já discutido, pipeline traz a ideia de estágios de uma linha de produção e se espera que dois estágios terminem de forma simultânea. O objetivo de cada instrução é completar um estágio de pipeline dentro de um ciclo de clock, entretanto isso nem sempre é o que acontece. 8 Comparativo das arquiteturas RISC e CISC No intuito de uma melhor compreensão sobre esse assunto, elaboramos o quadro abaixo, que apresenta uma comparação entre as arquiteturas RISC e CISC. Comparativo das Arquiteturas RISC e CISC Características RISC CISC Tipo de Arquitetura Registrador-registrador Registrador-memória Tipo de Dados Pouca variedade de dados Muita variedade de dados Modo de Acesso aos Dados Acesso à memória Acesso aos dados pela memória Modo de Acesso à Memória Acesso à memória somente pelas instruções load/store Acesso à memória por várias instruções Quantidade de Conjuntos Registradores Múltiplos conjuntos Um único conjunto Quantidade de Operandos de Registradores por Instrução Três operandos de registradores Até dois operandos por instrução Tipos de Instruções Instruções simples em número reduzido Instruções complexas e em grande quantidade Formato das Instruções Instruções contendo poucos endereços Instruções contendo muitos endereços Tamanho das Instruções Instruções de tamanho fixo Instruções de tamanho variável Número de Instruções por Ciclo Instruções de um único ciclo (load/store) Instruções de múltiplos ciclos Modos de Endereçamento Poucos modos de endereçamento Muitos modos de endereçamento Características de Paralelismo Altamente paralelizado (uso de pipeline) Muito pouco paraliezado 9 Número de estágios de pipeline Entre 4 e 10 Entre 20 e 30 Foco da complexidade Complexidade no compilador Complexidade no código Fonte: Adaptado de Tanenbaum (2013, p.47-48). Stallings (2003) ressalta que em RISC são produzidos programas menores e, consequentemente, executados mais rapidamente. Daí a vantagem de ocuparem menos memória e ter um melhor desempenho. Menos instruções equivalem a um menor número de bytes de instrução para ser obtido. Além disso, considerando um ambiente de paginação, programas menores ocuparão menos páginas, diminuindo a probabilidade de falhas de páginas. Assim, podemos concluir que, para instruções complexas, os processadores CISC têm um melhor desempenho. No entanto, o que se tem visto atualmente é uma forte tendência de utilização de processadores híbridos, os quais, na sua essência, são processadores CISC, que também incorporam recursos encontrados nos processadores RISC. Internamente, o processador híbrido processa apenas instruções simples. Aliado às instruções internas, um circuito decodificador será o responsável por converter as instruções complexas utilizadas pelos programas em várias instruções simples que podem ser entendidas pelo processador. Por questões de marketing, ainda hoje os fabricantes de processadores divulgam a sua linha de produtos como sendo de RISC, porém não há mais quase nenhum processador com essa tecnologia. O mercado de processadores vê a adoção híbrida das tecnologias CISC e RISC por simples questão de desempenho. Por que nos restringir a uma ou outra tecnologia se podemos usufruir do melhor das duas? Reflita 10 Fechamento Chegamos ao final do estudo sobre os processadores vetoriais/matriciais e arquitetura RISC e CISC. Compreendemos que os processadores vetoriais/matriciais têm o objetivo de processar dados aritméticos de vetores ou matrizes de números de ponto flutuante. Vimos que as arquiteturas RISC e CISC apresentam características específicas, em que o processador trabalha com ciclos diferentes para cada instrução. Por fim, realizamos um comparativo entre essas arquiteturas, mostrando a diferença entre as várias características como modos de acesso, tipos e formados de instruções, modos de endereçamento e outras. 11 Referências MONTEIRO, M. A. Introdução à organização de computadores. Rio de Janeiro: LTC, 2007. STALLINGS, W. Arquitetura e organização de computadores. 8. ed. São Paulo: Pearson, 2008. TANENBAUM, A. S. Organização estruturada de computadores. 6. ed. São Paulo: Pearson, 2013.
Compartilhar