Baixe o app para aproveitar ainda mais
Prévia do material em texto
CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: ARQUITETURA DE COMPUTADORES TEMA 10: Processadores-p3-Arquiteturas Atuais-Risc x Cisc TEXTO PARA APOIO AO ESTUDO (estudo antes da atividade em sala) I - INTRODUÇÃO No texto anterior iniciamos o estudo e descrição dos principais aspectos de organização e funcionamento dos processadores. Naquele texto abordamos uma parte do assunto: • Organização • O que é uma Instrução de Máquina e como é executada (Ciclo de Instrução) • Os componentes básicos necessários para realização do Ciclo de Instrução • Alguns aspectos de execução de programas Em todos esses itens foi abordada uma estrutura individual, isto é, um único processador realizando as etapas do ciclo de instrução. Nesse texto, ainda sobre processadores serão mostrados outros tipos, que envolvem processadores com maior desempenho e teremos então aapresentação de aspectos sobre: • Processamento com Paralelismo Por fim, será mostrada uma breve comparação entre dois padrões de arquiteturas (não uma arquitetura específica, mas um padrão): • Arquiteturas CISC x RISC II – PROCESSAMENTO COM PARALELISMO Nesse item serão abordados alguns aspectos relativos a diversas formas de paralelismo em computação, especificamente no projeto e funcionamento de processadores. Todos essas formas de simultaneidade em computação (em última análise, paralelismo significa fazer coisas simultâneas) tem um único objetivo: AUMENTAR A CAPACIDADE DE PROCESSAMENTO, ISTO É, ELEVAR O DESEMPENHO DO SISTEMA. Desde muito tempo atrás, (pode-se dizer que a partir da década de 1980), a evolução das arquiteturas, impulsionadas, por um lado, pela demanda por mais capacidade e velocidade dos sistemas de computação e, por outro lado, pelas facilidades decorrentes da miniaturização, que a verdade da lei de Moore permitia, vem sendo acentuada graças à redução da espessura dos transistores e de novas criações da imaginação dos projetistas. A necessidade de computação em grande escala vem crescendo sempre devido a: (1) ao advento do uso de várias mídias, como vídeo, imagens e som, não só em transmissão (Internet) como em armazenamento e processamento; (2) devido à necessidade de processamento rápido de vastíssimos volumes de dados, como em meteorologia, prospecções geológicas (de petróleo, gás, etc.) e pesquisas médicas, além de uma infindável série de outras aplicações de grande demanda de processamento. Resumindo os exemplos: - metereologia - simulação em grande escala - biomedicina - prospeção de petróleo - física quântica - energia nuclear (fins pacíficos e militares) Considerando-se apenas UM processador, pode-se fazer algumas observações: Desde aproximadamente 2003 o “clock” dos processadores tem oscilado entre 3GHz e 4,5GHz. Além disso, a atual tecnologia de litografia de fabricação utiliza, geralmente, espessura de 14 nm (nanômetros) e até 10 nm. Já há fabricantes indo para 7 nm. Desde aproximadamente 2003 o “clock” dos processadores tem oscilado entre 3GHz e 4,5GHz. Além disso, a atual tecnologia de litografia de fabricação utiliza, geralmente, espessura de 14 nm (nanômetros) e até 10 nm. Já há fabricantes indo para 7 nm. SOLUÇÃO DESENVOLVIDA PARA AUMENTAR DESEMPENHO DOS SISTEMAS DE COMPUTAÇÃO: Utilização de processamento simultâneo, ou seja, realizar paralelismo, de diversas formas. Um exemplo típico, na realização de operações aritméticas, Suponha ter que executar 10 operações aritméticas independentes uma das outras. Suponha que, cada uma delas gasta 1 seg de execução. Caso 1 – Tem-se apenas 1 calculadora. Nesse caso, serão dispendidos 10 segundos para realizar o total das operações, já que deverão ser feitas uma por uma. Processamento sequencial, escalar. Caso 2 – Tem-se 10 calculadoras Nesse caso, será dispendido 1 segundo para realizar o total das operações, já que serão realizadas simultâneamente, uma em cada calculadora. Total da operação, em 1/10 do tempo total do caso 1. A ideia do paralelismo é, sem dúvida, a de acelerar o início e a conclusão da execução das instruções de máquina (das operações do hardware). Naturalmente, em nossa vida cotidiana temos inúmeros exemplos do aumento de produtividade de alguma atividade qualquer através do uso de paralelismo, como as avenidas, que possuem mais do que uma pista, permitindo a passagem de mais de um veículo por vez (simultaneamente); dos bancos, que possuem mais de um caixa para atender mais de uma pessoa ao mesmo tempo, e assim por diante. Arquiteturas com paralelismo procuram, então, realizar algum tipo de operações simultâneas, seja em software, seja em hardware ou em uma combinação de ambas, como acontece com processamento multinucleo. Uma das mais conhecidas classificações de processamento não-escalar foi idealizada e divulgada por um pesquisador e cientista americano, Michael Flynn, em 1972, antes do surgimento dos primeiros microcomputadores, e se refere à maneira como instruções e dados são organizados em um determinado tipo de processamento. Ele organização sua classificação em 4 tipos de arquitetura, das quais sabe-se ser possível (e tem sido nas arquiteturas reais) 3 delas; serão as mostradas a seguir. • SISD – Single Instruction Single Data (uma instrução e um dado) (Monoprocessador) • SIMD – Single Instruction Multiple Data (uma instrução e múltiplos dados) (Processadores vetoriais – Instruções MMX e SSE) • MIMD – Multiple Instructions Multiple Data (múltiplas instruções e dados) (Multiprocessamento) É possível realizar paralelismo sob diversos aspectos e formas, alguns dos mais importantes são apresentados a seguir: Não há paralelismo com este método, antigo Processamento não-sequencial * Superescalar (paralelismo) * Processamento Vetorial o Multiprocessamento - Neste tipo (obsoleto) cada instrução manipula um dado (tipo SISD – single instruction single data) - O processador somente busca outra instrução quando termina completamente o ciclo da anterior. - O desempenho de processamento estava bem associado à frequência (velocidade) do relógio (“clock”) Há diversos métodos de um processador realizar processamento paralelo. Isto é, formas diversas de executar o ciclo das instruções, em vez de realizar um ciclo completo de cada vez. Entre esses métodos, pode-se analisar: • Paralelismo por instrução – SIMD (single instruction multiple data) - uma instrução manipulando múltiplos dados. Exemplo: as instruções Intel MMX e SSE e AMD 3D now. Processamento vetorial é outro exemplo • Paralelismo no controle da execução das instruções – a técnica pipeline usa esta forma. Diversas instruções em etapas diferentes de execução “simultânea” • Paralelismo na execução – processamento superescalar, que pode realizar diversos pipelines, com diversas unidades de cálculo. • Paralelismo no hardware – multiprocessamento; processadores multinucleo Processamento com Pipelining Consiste em se realizar diversas execuções de instruções ao mesmo tempo, embora cada uma delas em momentos (estágios) diferentes de execução. Um ciclo de instrução é organizado em diversas etapas de execução: Busca da Instrução – Incremento do CI – Decodificação do C. Op – Busca de Operandos – Execução da Operação – Escrita do resultado. No processamento sequencial, o processador somente executa uma instrução completa de cada vez, isto é, somente depois de executar a última etapa do ciclo de uma instrução é que inicia a próxima (busca, etc) e assim sucessivamente. Já no processamento com pipeline, o processador não espera o término de uma instrução para buscar a próxima. Nesse caso, a organização do processamento é dividida em partes (estágios) cada um correspondendo a uma etapa (ou parte de uma etapa) do ciclo. Assim que se conclui a primeira etapa (busca)de uma instrução, o sistema inicia a 2ª etapa (incremento do CI) dessa instrução, mas também busca a seguinte. E quando prossegue na primeira instrução, com a 3ª etapa, a segunda instrução inicia a 2ª etapa e o sistema busca uma terceira instrução e assim sucessivamente. A figura 1 mostra um exemplo de um sistema com dois estágios apenas de execução do ciclo (busca e execução). Observa- se na figura que os dois estágios gastam UMA unidade de tempo • Processamento Sequencial (serial) – escalar ▪ Pipeline Processamento Sequencial (serial) – escalar Processamento Não Sequencial (paralelo) SEM PIPELINE COM PIPELINING Figura 1 – Exemplo de processamento com e sem pipelining- 2 estágios Observa-se na figura a execução de um conjunto de 6 instruções, sendo B-estágio busca e E-de execução No caso do processamento sem pipelining, gasta-se 6 x 2 = 12 unidades de tempo (ut), enquanto no processamento com pipelining consome-se apenas 7 unidades de tempo. Este tempo total (7 ut) pode ser calculado sem o gráfico sabendo-se que a 1 execução gasta o tempo total (2 ut), mas em seguida, as instruções vão se concluindo em 1 ut; como restam 5 (total das 6 menos a primeira) x 1 ut = 5 ut. Soma- se 5 + 2 = 7 ut. Pode-se criar, então, uma fórmula para calcular o tempo total gasto para qualquer quantidade de instruções e de estágios. T = (m x P) + ((n – 1) x P), sendo m = qtde estágios; P=período de cada estágio;n ; n = conj instruções A figura 2 mostra uma execução de 10 instruções, em um processador com pipeline de 6 estágios. Figura 2 – Exemplo de pipelining com 10 instruções e cada uma com 6 estágios de execução Considerando, na fórmula acima os valores d em = 6, n = 10 e P = 1, tem-se um tempo total de execução das instruções de: T = ( 6 x 1)+ ( (10 -1) x 1) = 6 + 9 = 15 ut Processamento superescalar Arquitetura com mais de um pipeline, o qual pode ser parcial (apenas algumas unidades fazem pipelining) ou completo, incluindo todas as unidades de processamento. A figura 3 mostra um exemplo de arquitetura superescalar III – ARQUITETURAS CISC x RISC Multiprocessamento Arquiteturas Multinúcleo – multi threading Cada núcleo é um processador completo, inclusive com um ou outro nível de memória cache. Todos compartilham memória RAM. Exemplos AMD Phenon, Rysen Intel i3, i5, i7 ARM – Samsung A6 A figura 4 mostra exemplos de estruturas multinucleo Figura 4a L2 N u cleo 2 N u cleo 1 N u cleo 2 N u cleo 3 N u cleo 4 Cache L2 Figura 4b – exemplos de estruturas multinucleo III – Arquiteturas CISC x RISC Trata-se de padrões de arquiteturas que estiveram presentes no mercado por mais de 20 anos, tendo alguns fabricantes e instituições defensores de uma padrão e outro grupo defensores do outro. Um padrão de arquitetura constitui-se de um conjunto de especificações que fabricantes adotam em suas arquiteturas. Por exemplo, o padrão CISC tem uma característica (mais adiante serão mostradas outras características) de possuir poucos registradores e muitas instruções. Diversas arquiteturas, Intel X 86 e IBM/370 usavam este tipo de padrão. Características das arquiteturas do tipo CISC-Complex Instruction Set Computer (computador com um conjunto de instruções complexo) • Poucos Registradores de Dados • Muitas Instruções (alguns processadores chegaram a ter mais de 300 instruções) • O controle é implementado por microprogramação ▪ Maior tempo de decodificação ▪ Muitos modos de endereçamento, a maioria não sendo usados pelos compiladores. ▪ Diversas instruções com acesso à memória (lento) POR QUE MUITAS INSTRUÇÕES? Para facilitar a tarefa dos compiladores (bem como seu projeto e implementação) Reduzindo o GAP entre o comando do código fonte e as instruções do código objeto. N u cleo 2 N u cleo 1 Cache L1 L2 L2 L2 N u cleo 2 N u cleo 3 N u cleo 4 Cache L3 L2 Características das arquiteturas do tipo RISC-Reduced Instruction Set Computer (computador com um conjunto de instruções reduzido) As características das arquiteturas RISC tem por objetivo solucionar todas as críticas que se fazia das CISC Em conjunto, elas procuram permitir o desenvolvimento de máquinas simples e rápidas, com custo menor para o benefício que proporcionam. As principais são: o Devem completar cada instrução em 1 ciclo de relógio o Devem possuir grande quantidade de registradores, com o propósito de reduzir acesso à memória. Os dados permanecem nos registradores sendo reutilizados de lá e não da memória. o Acesso à memória apenas para buscar (inicialmente) o dado e retornar eventual resultado de operação) Somente instruções LOAD e STORE. o Todas as operações usam instruções que manipulam dados nos registradores (são menores em largura e mais rápidas). o Deve utilizar um conjunto pequeno de instruções, sem repetir operações (com mais de uma instrução). Isso diminui tempo de decodificação) o Todas as instruções apresentam o mesmo tamanho. Diminui tempo de busca e incremento CI é mais simples o Devem empregar pipeline em larga escala EXEMPLOS DE PROCESSADORES ❖ CISC – IBM/64; Intel Pentium 1, II, III e alguns modelos P4, bem como os correspondentes AMD (mesma arquitetura X86) ❖ RISC - Berkeley RISC 1 – SPARC - MIPS – RS6000 – Power PC Intel i3, i5, i7 - ARM (celulares, palms, embutidos, etc) Características da arquitetura ARM , usada em praticamente todos os dispositivos móveis e embutidos no mundo - Desenvolvida (1983) pela empresa Acorn (atualmente licencia) - Baixo custo – baixo consumo de energia (poucos transistores) - Exemplos: celulares – tablets – console jogos - Características, típicas de arquitetura RISC: • Palavra de 32 bits • Bastante registradores (32 de emprego geral) • Apenas instruções LOAD/STORE para acesso memória • Instruções de tamanho fixo • Instruções aritméticas com 3 operandos • Coprocessador (extende uso do processador) Exemplos de Processadores que utilizam arquitetura ARM • EXYNOS, da Samsung (baseado em ARM Cortex) • A4, A6, etc, da Apple (baseado em ARM Cortex) • Tegra, da nVidia (baseado em ARM Cortex) Snapdragon, da Qualcomm (baseado em Cortex AS INFORMAÇÕES CONTIDAS NESTE MATERIAL DE APOIO AO ESTUDO FORAM EXTRAÍDAS DAS SEGUINTES PUBLICAÇÕES: MONTEIRO, M. Introdução à organização de computadores. 5. ed. Rio de Janeiro: LTC, 2007. STALLINGS, W. Arquitetura e organização de computadores. 8. ed. São Paulo: Pearson Prentice Hall, 2010. TANENBAUM, A. S. Organização estruturada de computadores. 5. ed. Rio de Janeiro: LTC, 2007. Null, Linda - Computer Organization and Architecture Textos na Internet
Compartilhar