Introdução à Computação: Arquitetura von Neumann Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória, ES Brazil 1
Arquitetura von Neumann Revisão Aula Passada Arquitetura von Neumann Parte 2: CPU. 2
Máquina de von Neumann Memórias: Função: Armazenar dados e programas (conjunto de instruções), permitindo o processamento automático dos dados. Armazenamento: Volátil, quando perdem seu conteúdo quando estão sem alimentação; Não volátil, quando mantém seu conteúdo mesmo sem alimentação. Tipos: Memórias Principais (MP); Memórias Secundárias (MS). 3
Máquina de von Neumann Memórias Principais: Memórias Principais: Grande velocidade na troca de informações; Limitada (armazena somente alguns programas e dados); É a memória de trabalho, nela são carregados todos os programas e dados usados pela CPU no momento; Geralmente o seu conteúdo será perdido uma vez que o computador seja desligado; Trabalham diretamente integradas ao processador ou são parte dele; Exemplos: RAM (Random Access Memory); SRAM (Static Random Access Memory); Memória Cache. 4
Máquina de von Neumann Memórias RAM: RAM (Randomic Access Memory): Na década de 50 surgiram as primeiras ideias a respeito de memórias de acesso aleatório; Mas foi em 1966 que o Dr. Robert Dennard criou a primeira DRAM (Dynamic Randomic Access Memory), para uma calculadora Tochiba que armazenava dados temporariamente; A partir da década de 70 as memórias DRAM foram definidas como padrão mundial, dominando 70% do mercado e já havia evoluído, contendo diversos conceitos básicos usados nas memórias atuais; As diversas variações de DRAM receberam diversas denominações, de acordo com sua disposição física ou tecnologia. 5
Máquina de von Neumann Memórias DRAM: DIP, SIPP e SIMM: Os módulos DIP (Dual in Parallel) vinha embutida na placa-mãe e funcionava nos primeiros computadores anteriores aos PCs 286; Os módulos SIPP (Single In-line Pin Package), que era uma versão intermediária, mas com problemas relacionados à quebra dos pinos não vingou; O padrão SIMM (Single In-line Memory) foi adotado em PCs e trazia os chips de memória em apenas um dos lados do módulo de memória. 6
Máquina de von Neumann Memórias DRAM: FPM e EDO: A tecnologia FPM (Fast Page Mode) foi usada para para melhorar o padrão SIMM e podia armazenar 256 KB; Basicamente permitia ler ou escrever múltiplos dados em uma linha sucessivamente; As memórias com tecnologia EDO (Extended Data Out), apareceram em 1995, e aumentaram em 5% a performance em comparação com as FPM; Permitia iniciar um novo ciclo de dados antes que os dados de saída anterior fossem enviados para outros componentes. 7
Máquina de von Neumann Memórias SDRAM: DIMM e SDRAM: O padrão SIMM já não era mais o suficiente para comportar a quantidade de dados requisitada pelos processadores, migrou-se para o padrão DIMM (Dual In-line Memory Module); A diferença básica estava no fato dos módulos DIMM possuírem chips de memória instalados nos dois lados do módulo; A transmissão foi aumentada de 32 para 64 bits; A evolução da DIMM, trouxe o padrão SDRAM (Static Random Access Memory) em substituição ao padrão DRAM, que trabalha sincronizando os dados com o barramento do sistema. 8
Máquina de von Neumann Memórias SDRAM: RIMM: Pouco depois do padrão DIMM, surgiu o padrão RIMM (Rambus In-line Memory Module), diferenciando-se somente pela ordenação e formato dos pinos; Foram usadas no Nintendo 64 e no Playstation 2; Era bom mas o padrão não conseguiu acompanhar a evolução que ocorreu com as DIMM; Foi abandonado em 2001 mesmo tendo tido certo incentivo da Intel. 9
Máquina de von Neumann Memórias SDR SDRAM: PC100: Surgiu durante o auge das RIMM; SDR SDRAM (Synchronous Dynamic Random Access Memory), é uma DRAM que é sincronizada com o barramento do sistema; O padrão PC100, que era uma SDR SDRAM, foi criado pela empresa JEDEC; A frequência passou a ser um quesito importante, e o sufixo PC serviu então para indicar a largura de banda das memórias; Por exemplo: PC100 possuía largura de banda de 100 MB/s; PC3200 possuía largura de banda de 3200 MB/s. 10
Máquina de von Neumann Memórias DDR SDRAM: DDR, DDR2 e DDR3: As memórias DDR, operavam com frequências de até 200MHz, mas o barramento operava a apenas 100MHz; O motivo para esta diferença estava no tráfego do barramento que era duplicado, esse é o motivo do nome DDR (Double Data Rate); [número de bytes] x [frequência do barramento] x 2 11
Máquina de von Neumann Memórias DDR SDRAM: DDR, DDR2 e DDR3: As memórias DDR2 e DDR3, são as que estão presentes nos computadores atuais; As memórias DDR2 é exatamente igual a DDR, porém a taxa de dados foi dobrada; Além da largura de banda, a DDR2 é mais eficiente e trabalha em temperaturas mais baixas, porque passou a trabalhar em tensões mais baixas (1,8V); Atualmente as mais avançadas alcançam frequências de 1300MHz, ou seja 650MHz reais. 12
Máquina de von Neumann Memórias DDR SDRAM: DDR, DDR2 e DDR3: O DDR3 é o padrão mais recente, e atualmente está gradualmente substituindo a DDR2; A tensão caiu mais um pouco, de 1,8V da DDR2 para 1,5V; A frequência foi aumentada significativamente e é possível encontrar memórias que operam a 2400MHz. 13
Máquina de von Neumann Memórias DDR SDRAM: Dual-Channel e Triple-Channel: Mesmo com toda esta evolução, as memórias ainda não alcançam as mesmas velocidades das CPUs; Para aumentar o desempenho geral usou-se um truque, conhecido como Dual-Channel, onde se dobra a largura do barramento, mas esta é uma tecnologia dependente da placa-mãe e da capacidade do processador que precisa ter um controlador capaz de trabalhar com o dobro da largura do barramento; É necessário instalar sempre dois módulos para usar este recurso. 14
Máquina de von Neumann Memórias DDR SDRAM: Dual-Channel e Triple-Channel: Muito parecida com o Dual-Channel, o Triple-Channel usa um canal triplo ao invéz de duplo; Da mesma forma é necessário que a placa-mãe e o processador sejam compatíveis; Os primeiros a usar este recurso foram os Intel i7 de primeira geração; Neste caso a largura do barramento é aumentada para 192 bits (o triplo de 64 bits), e consequentemente a taxa de transferência triplica; Neste caso vale a mesma regra, são necessários a instalação de 3 módulos para usar este recurso. 15
Máquina de von Neumann Outras Memórias: Outros padrões: Enquanto os PCs evoluíram nas memórias DIMM SDRAM, outros dispositivos aderiram memórias alternativas; Por exmplo: Playstation 3 aderiu a linha de memórias XDR DRAM. O padrão XDR é como se fosse o sucessor das antigas RIMM; Há também as memórias usadas em placas gráficas, que são do padrão GDDR, variando de primeira a quinta gerações (GDDR a GDDR5). As memórias são semelhantes às DDR, apenas diferem em alguns aspectos e nas suas frequências. 16
Máquina de von Neumann Próximas Memórias: FRAM e MRAM: As FRAM ou FeRAM (Ferro-matnetic Random Access Memory), é um tipo de memória não volátil onde os dados são armazenados em pequenos espaços ou faixas de material revestido com filme magnético; As MRAM (Magneto-resitive Random Access Memory) estão ganhando destaque, porque são compostas de células magnéticas, capaz de reduzir à metade o consumo de energia; Recentemente a Tochiba e a NEC anunciaram o desenvolvimento conjunto de uma nova MRAM não volátil; O futuro parece caminhar na direção das MRAMs. 17
Máquina de von Neumann Comparativo: 18
Máquina de von Neumann Memórias Cache: Memória Cache: Função: Memória Cache refere-se a um bloco de memória de alta velocidade, para armazenamento temporário dos dados que provavelmente serão usados nas próximas operações da CPU; Armazenamento: O cache é composto de uma fila de elementos, onde cada elemento tem um dado que é uma cópia exata do dado presente no local original; Cada elemento possui uma etiqueta (um ponteiro) que especifica a identidade do dado no local de armazenamento original, que foi copiado. 19
Máquina de von Neumann Memórias Cache: Memória Cache: Importante: O termo cache também é usado com referência a algum tipo de armazenamento intermediário e de acesso mais rápido, muitas vezes usado fora do contexto das memórias físicas, por exemplo: cache de rede, cache do navegador web, cache de disco etc. 20
Máquina de von Neumann Memórias Cache: Memória Cache: Cache hit (acerto de cache): Antes de solicitar um acesso à memória a CPU primeiro verifica se o dado se encontra em cache, se o dado está em cache a CPU o utiliza imediatamente; Cache miss (falha de cache): Quando a CPU não encontra o dado no cache, o dado então é trazido da memória para o cache, ficando pronto para uso. 21
Máquina de von Neumann Memórias Cache: Memória Cache: Replacement policy (política de substituição): A capacidade do cache é limitada, assim se não houver espaço para um novo dado, ocorre a substituição de algum dado menos utilizado, LRU (Least Recently Used); LRU é a política de substituição mais comumente usada, porém há outras heurísticas utilizadas; 22
Máquina de von Neumann Memórias Cache: Memória Cache: Write policy (política de gravação): Quando um dado é escrito no cache, precisa ser gravado no local de armazenamento definitivo em algum momento, este processo é conhecido como política de gravação; Há diversas políticas de gravação, por exemplo:» Write-through: a cada gravação no cache o dado também é gravado em seu local original;» Write-back: a heurística do cache identifica quais elementos foram sobrepostos e os marca como sujos e estas posições são colocadas de volta nos locais de armazenamento original somente quando o elemento for retirado do cache. 23
Máquina de von Neumann Memórias Cache: Memória Cache: Protocolos de coerência: Eventualmente os dados podem ser alterados em seu local original, por outras operações além do cache, neste caso a cópia contida no cache passa a ser inválida; Os protocolos de comunicação entre os gerentes do cache, que são responsáveis por manter os dados consistentes são conhecidos como Protocolos de coerência. 24
Máquina de von Neumann Memórias Cache: Memória Cache: Princípio da localidade de referência: É a tendência da CPU ao longo da execução, de referenciar instruções e dados da memória que estão localizados em endereços próximos; Isso ocorre devido às estruturas de repetição (loops de instruções, sub-rotinas, etc.) e às estruturas de dados (vetores, matrizes, strings, etc.), que fazem uso da memória de forma consecutiva. 25
Máquina de von Neumann Memórias Cache: Memória Cache: Tipos mais conhecidos: Mapeamento direto:» Cada bloco da memória é mapeado em uma linha do cache; Totalmente associativa:» Um bloco da memória pode ser carregado para qualquer linha do cache; Associativa por conjunto (N-way):» É um meio termo entre mapeamento direto e associação. 26
Máquina de von Neumann Memórias Cache: Memória Cache: Níveis: Cache L1:» Pequena porção de memória estática, de alta velocidade e que localiza-se internamente à CPU;» Geralmente varia entre 16KB e 128KB; Cache L2:» Porção intermediária de memória estática, que pode estar localizada dentro ou fora do processador (por questões econômicas);» Geralmente varia entre 1MB e 24MB; Cache L3:» Porção intermediária geralmente usada por processadores que usam cache L2 interno, pois este nível fica externo à CPU. 27
Máquina de von Neumann Memórias Secundárias: Memórias Secundárias: Possuem grande capacidade de armazenamento ou mobilidade podendo ser transportadas de um local para outro; Mais lentas em comparação com as memórias principais; Geralmente não voláteis, permitindo guardar os dados permanentemente; Exemplos: Discos rígidos (HD - Hard Disk); CDs e DVDs; Memórias flash (EEPROM, EPROM); Outras mídias mais antigas (disquetes, fitas, cartões perfurados). 28
Arquitetura von Neumann Próxima Aula Arquitetura von Neumann: Para a próxima aula: Componentes. Continuaremos na próxima aula! Até breve. 29
http://nemo.inf.ufes.br/ 30