Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura e Organização de Computadores Coordenadoria de Informática Bach. em Sistemas de Informação Prof. Flávio Giraldeli 2017/2 Introdução Nesta disciplina estudaremos a natureza e as características dos computadores dos dias modernos. Dificuldades: Variedade de produtos (de simples chips a supercomputadores); Rápido ritmo das mudanças na tecnologia. Apesar do variedade e do ritmo da mudança, certos conceitos fundamentais se aplicam de forma corrente. 2 Organização e Arquitetura Arquitetura são os atributos visíveis ao programador. Conjunto de instruções, número de bits usados para representação de dados, mecanismos de E/S, técnicas de endereçamento. Por exemplo, existe uma instrução de multiplicação? Organização é como os recursos são implementados. Sinais de controle, interfaces, tecnologia de memória. Por exemplo, existe uma unidade de multiplicação no hardware ou ela é feita pela adição repetitiva? 3 Organização e Arquitetura Muitos fabricantes oferecem uma família de modelos de computador, todos com a mesma arquitetura mas com diferenças na organização. Por exemplo, toda a família Intel x86 compartilha a mesma arquitetura básica. E isso inclui a AMD, que possui licenças para produzir CPU’s x86 (mais detalhes futuramente) Isso gera compatibilidade de código: Pelo menos, com a geração anterior. A organização é diferente entre diferentes versões. 4 Estrutura e Função Computador: Sistema complexo! Natureza hierárquica é essencial para o projeto e a construção de computadores. Estrutura é o modo como os componentes são inter-relacionados. Função é a operação individual de cada componente como parte da estrutura. Abordagem top-down. 5 Função Todas as funções do computador são: Processamento de dados. Armazenamento de dados. Movimentação de dados. Controle. 6 Operações possíveis (a) Mov. de Dados (b) Armazenamento (c) Proc. de/para Armazenamento (d) Proc. de armazenamento para E/S 7 Estrutura Representação mais simples possível de um computador: 8 Estrutura Existem quatro componentes estruturais principais: Unidade Central de Processamento (CPU); Memória Principal; Entrada/Saída (E/S); Interconexão do Sistema. CPU: Unidade de controle; Unidade aritmética e lógica (ALU); Registradores; Interconexão da CPU. 9 Estrutura (níveis) 10 O que estudaremos? Capítulo a capítulo... O que estudaremos? Bases Numéricas e Sinais Digitais [material à parte] Evolução e desempenho do computador [cap. 2] Visão de alto nível da função e interconexão do computador [cap. 3] A memória do computador [caps. 4, 5 e 6] Entrada/Saída [cap. 7 + conteúdo exclusivo dos slides] Aritmética do computador [cap. 9] Linguagem de Montagem: Assembly. O material desses slides é uma junção do tutorial do emu8086 em conjunto com aspectos relevantes dos caps. 10 e 11 do livro texto. 12 Tr a b a lh o 2 P ro v a 2 P ro v a 1 Bases Numéricas e Sinais Digitais O Computador e a Informação Troca de informações entre os seres humanos e o universo a sua volta Vs. Troca de informações entre os dispositivos eletrônicos (câmeras, computadores, etc…) 14 O Computador e a Informação Diferença principal: A forma em que a informação está representada. Informações para o ser humano: analógicas Som, imagens, ... Informações analógicas podem teoricamente assumir qualquer valor numérico real de -∞ a +∞. Ou seja, infinitos valores. Na verdade, lidamos sempre com valores aproximados. 15 O Computador e a Informação Computadores não podem lidar com informações analógicas! Complexidade intratável. Pouco confiável. Solução? Uma “nova” forma de representar a informação, o que implicou diretamente em um novo sistema numérico. Estamos falando dos sistemas digitais e a representação numérica de base 2 (binária). 16 Sinais Digitais e Números Binários Um sistema digital é um sistema no qual os sinais tem um número finito de valores discretos (bem definidos, enumeráveis). Exemplo 1: uma balança digital mede o peso através de sinais discretos que indicam a massa; por outro lado, uma balança analógica mede o peso através de um sinal contínuo correspondente a posição de um ponteiro sobre uma escala. Exemplo 2: Um sintonizador digital de rádio exibe a frequência da estação, digamos 100.1 MHz (exatamente). Já um sintonizador analógico, mostrará uma faixa contínua de frequências e a sintonia será, na verdade, algo aproximado. 17 Benefícios dos sistemas digitais A representação digital é bem adequada tanto para processamento numérico como não- numérico (caracteres, por exemplo) de informação. O processamento da informação pode usar um sistema para propósitos gerais (um computador) que seja programado para uma tarefa de processamento particular (como o de imagens), eliminando a necessidade de haver um sistema diferente para cada tarefa. 18 Benefícios dos sistemas digitais O número finito de valores num sinal digital pode ser representado por um vetor (conjunto de valores) de sinais com apenas dois valores (sinais binários). Por exemplo, os dez valores de um dígito decimal podem ser representados por um vetor de quatro sinais binários (ou bits), da seguinte maneira: Esta representação permite implementações nas quais todos os sinais são binários; em consequência, os dispositivos que processam esses sinais são muito simples (fundamentalmente, apenas chaves com dois estados: aberto e fechado). dígito 0 1 2 3 4 5 6 7 8 9 vetor 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 19 Benefícios dos sistemas digitais Os sinais digitais são bastante insensíveis a variações nos valores dos parâmetros dos componentes (por exemplo, temperatura de operação, ruído), de modo que pequenas variações na representação física não mudam o valor efetivo. Os sistemas digitais numéricos podem se tornar mais exatos simplesmente aumentando-se o número de dígitos usados na sua representação. 20 Bases Numéricas 2 (Binária) 10 (Decimal) 16 (Hexadecimal) O Sistema Binário 22 Números Binários Antes de compreender melhor como funciona a representação em base binária (base 2), observe como um número qualquer é formado na base em que estamos acostumados a lidar, a base 10. Tome por exemplo o número decimal 123. Veja só como o mesmo é formado: 12310 = 1 x 10 2 + 2 x 101 + 3 x 100 base posição relativa 23 Números Binários Pense agora que ao invés de dispor de 10 algarismos diferentes, dispomos de apenas dois. Vamos chamar esses algarismos de 0 (zero) e 1 (um). De forma absolutamente análoga, pense no número 1111011 expresso na base 2. Desmembrando o mesmo temos: 11110112 = 1x2 6 + 1x25 + 1x24 + 1x23 + 0x22 + 1x21 + 1x20 = 12310 24 Números Binários E como ficam os números não inteiros (ou seja, aqueles com “vírgula”)? A ideia é acima é estendida para expoentes negativos na base 10. Observe: 456,7810 = 4x10 2 + 5x101 + 6x100 + 7x10-1 + 8x10-2 De maneira análoga, o raciocínio acima pode ser usado em qualquer base, por exemplo, a base 2: 101,1012 = 1x2 2 + 0x21 + 1x20 + 1x2-1 +0x2-2 + 1x2-3 = 5,62510 25 Números Binários Fato: Na base dez, para se multiplicar um número pela base, isto é, por dez, basta deslocar a vírgula uma casa para a direita. Na divisão por dez, basta deslocar a vírgula para a esquerda. O mesmo ocorre com qualquer base, em particular com a base dois. Para multiplicar um número por dois, basta deslocar a vírgula uma casa para a direita. Ao deslocar para a esquerda, estamos dividindo por dois. 26 Números Binários Não é muito comum descrevermos quantidades binárias em bits. Costumamos expressar os valores em bytes, que são agrupamentos formados por 8 bits. Outros múltiplos também existem e são expressos em relação a byte, alguns deles são: 1 Kilobyte (KB) 210 bytes 1.024 bytes 1 Megabyte (MB) 220 bytes 1.048.576 bytes 1 Gigabyte (GB) 230 bytes 1.073.741.824 bytes 1 Terabyte (TB) 240 bytes 1.099.511.627.776 bytes 27 Números Binários Importante: No caso dos números binários, a faixa de valores possível de ser expressa numa dada quantidade de bits é relativamente pequena comparada aos números decimais. Por exemplo, na base dez, dispondo de uma sequência formada por oito algarismos, conseguimos representar 108 valores diferentes, ou seja, de 0 a 99.999.999. Já na base binária, com uma sequência de oito dígitos (8 bits), conseguimos representar 28 valores diferentes, ou seja, 256 valores distintos (0 a 255). De maneira geral, quanto menos algarismos uma base possui (quanto menor a base), menor é o intervalo representável para uma mesma quantidade de dígitos. 28 Base Hexadecimal (16) Uma vez compreendida a base binária e decimal, fica fácil compreender a base hexadecimal, ou base 16. Essa base possui não apenas 2 ou 10 algarismos, mas 16 algarismos diferentes. Veja a correspondência entre decimais, binários e hexadecimais correspondentes: 010 = 00002 = 016 110 = 00012 = 116 210 = 00102 = 216 310 = 00112 = 316 410 = 01002 = 416 510 = 01012 = 516 610 = 01102 = 616 710 = 01112 = 716 810 = 10002 = 816 910 = 10012 = 916 1010 = 10102 = A16 1110 = 10112 = B16 1210 = 11002 = C16 1310 = 11012 = D16 1410 = 11102 = E16 1510 = 11112 = F16 29 Base Hexadecimal (16) Você pode estar pensando, por que motivo eu precisaria de mais uma base? Resposta, com um exemplo: Curiosidade: Cores são muitas vezes representadas por valores numéricos de 24 bits (16.777.216 cores possíveis). Imagine, perguntarmos para nosso colega que cor ele usou num determinado projeto e o ouvirmos dizer uma sequência de 24 zeros e uns! Obviamente será muito mais simples dizer uma simples sequência de 6 algarismos hexadecimais, por exemplo F7FF29 que é um tom de amarelo. Ou você prefere dizer: 1111 0111 1111 1111 0010 1001 ? Decimal Binário Hexadecimal 4.285.639.982 1111.1111.0111.0001.1010.1101.0010.1110 FF71AD2E 30 Conversões entre Bases Numéricas Porque nenhuma base é ideal para todas as situações! Decimal Binário Números Inteiros Forma 1: Divisões sucessivas por 2 (a base binária). As divisões sucessivas acabam quando o quociente chega finalmente a zero. O número na forma binária é formado pelos restos das divisões, de baixo para cima, tal qual indicado pela seta. Assim: 5310 = 1101012 32 Decimal Binário Números Inteiros Forma 2: Método Direto. Imagine um número binário qualquer, de 6 dígitos. Vamos chamá-lo de b5b4b3b2b1b0 onde cada b é um dígito, que pode ser 0 ou 1, naturalmente. O valor desse número, na base decimal é: b5b4b3b2b1b0 = b5 x 2 5 + b4 x 2 4 + b3 x 2 3 + b2 x 2 2 + b1 x 2 1 + b0 x 2 0 = b5 x 32 + b4 x 16 + b3 x 8 + b2 x 4 + b1 x 2 + b0 x 1 Que valores cada dígito binário deve assumir para que a soma dê, por exemplo, 53? Resposta: 110101 (confira!) 33 Decimal Binário Vamos pensar um pouco mais. Graficamente! Múltiplos da base 2 (números muito conhecidos na computação): 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096... Dependendo da posição relativa do dígito, ele possui um valor, dentre os acima. Qualquer número inteiro pode ser representado como uma soma dessas quantidades (desde que esteja dentro do intervalo representável, claro). Intervalo representável, se considerados apenas os números não negativos: 0 a 2nbits - 1 34 Decimal Binário Números não inteiros: Podemos tratar a parte inteira (já vista) e a parte fracionária de maneira independente. Vamos continuar com o raciocínio: ... 2-5 = 1/32 = 0,03125 2-4 = 1/16 = 0,0625 2-3 = 1/8 = 0,125 2-2 = 1/4 = 0,25 2-1 = 1/2 = 0,5 20 = 1 21 = 2 22 = 4 23 = 8 24 = 16 25 = 32 … 35 Decimal Binário Números não inteiros: Assim, tudo o que precisamos fazer é continuar combinando os dígitos binários após a vírgula (expoentes negativos) de modo que a soma dê o valor (exato ou aproximado) desejado. Ex: 0,62510 = 0,1012 19,62510 = 10011,1012 36 Decimal Binário Números não inteiros: E o raciocínio gráfico (reta numérica) pode ser estendido para expoentes negativos ]0,1[: 37 Decimal Binário Números não inteiros: Mas, existe um método “mecânico” de fazer a conversão da parte fracionária, tal qual existe na parte inteira (divisões sucessivas por 2)? SIM! Exemplo: 0,62510 = 0,?2 Logo, 0,62510 = 0,1012 Residual x 2 ≥ 1 ? 0,625 1,25 Sim = 1 0,25 0,5 Não = 0 0,5 1,0 Sim = 1 0 38 Decimal Binário Números não inteiros: Desafio: Tente! 0,810 = ?2 5,810 = ?2 11,610 = ?2 39 Binário/Decimal Hexadecimal A conversão de binário para hexadecimal é bastante simples. Basta agrupar os dígitos em grupos de 4, a partir da direta e completar o último grupo com zeros. O ponto, neste caso, é apenas para melhor visualização. Ex: 5310 = 0011.01012 = 3516 1297210 = 0011.0010.1010.11002 = 32AC16 1223751410 = 1011.1010.1011.1010.1100.10102 = BABACA16 Acima, a conversão Decimal Hexadecimal foi feita da forma Decimal Binário Hexadecimal. No entanto, ela pode ser feita diretamente usando quaisquer dos dois métodos usados de Binário Decimal (Divisões sucessivas por 16 ou de modo “Direto”). 40 Binário/Hexadecimal Decimal As conversões de hexadecimal/binário para decimal podem ser facilmente executadas a partir da própria expressão do número na base correspondente, efetuando a soma de produtos, conforme extensamente mostrado anteriormente. Por exemplo: 1101012 = 1x2 5 + 1x24 + 0x23 + 1x22 + 0x21 + 1x20 = 5310 32AC16 = 3x16 3 + 2x162 + 10x161 + 12x160 = 1297210 41 Lógica Temporizada Tic, Toc, Tic, Toc, Tic, ... Lógica Temporizada Na comunicação digital, qualquer dado, sob a forma de bits, pode ser representado por sinais elétricos: uma tensão positiva alta (“high” - geralmente no em torno de 5 volts) significando 1 e… uma tensão baixa (“low” - próxima de zero) significando 0. O transmissor coloca o sinal no barramento, espera um tempo (na qual o sinal fica estável), para em seguida colocar um novo sinal. 43 Lógica Temporizada Fica claro que, quanto menor for esse “tempo de espera”, mais bits serão transmitidos por unidade de tempo (logo, maior a velocidade da transmissão). Essa base de tempo, é um dos aspectos mais importantes do mundo da computação. Ela é dada por um sinal de sincronismo, cuja precisão é quase perfeita. Estamos falando do sinal de clock. 44 Clock O pulso de clock nada mais é que uma referência de tempo para todas as atividades e permite o sincronismo das operações internas. O clock é um pulso alternado de sinais de tensão, gerado pelos circuitos de relógio (composto de um cristal oscilador e circuitos auxiliares). Cada um destes intervalos regulares de tempo é delimitado pelo início da descida do sinal, equivalendo um ciclo à excursão do sinal por um “low” e um “high” do pulso. 45 Clock O tempo do ciclo equivale ao período da oscilação. A física diz que período é o inverso da frequência. Ou seja, P = 1 / f. A frequência f do clock é medida em hertz. Inversamente, a duração de cada ciclo é chamada de período, definido por P=1/f (o período é o inverso da frequência). Por exemplo, se f = 10 Hz logo P = 1/10 = 0,1 s. 46 Clock 1 MHz (1 megahertz) = 1.000.000 ciclos/segundo. Sendo a frequência de um processador medida em megahertz, o período será então medido em nanosegundos, como vemos no exemplo abaixo: f = 10 MHz = 10 x 106 Hz P = 10 / 106 = 0,0000001 s (segundo) = 0,0001 ms (milissegundo) = 0,1 µs (microssegundo) = 100 ns (nanosegundo) 47 Clock Se comparados dois processadores de uma mesmaarquitetura, o que tiver maior clock, será mais rápido, pois o período em que cada ciclo ocorre é menor. Por exemplo: A = x Hz | B = 5x Hz 48 Evolução e desempenho do computador Evolução e desempenho do computador [Cap. 2] Um breve histórico dos Computadores [2.1] Projetando visando o desempenho [2.2] Evolução da arquitetura Intel x86 [2.3] Avaliação de desempenho [2.5] Vamos conversar um pouco: Intel Vamos conversar um pouco: AMD 50 Um breve histórico dos computadores 1ª Geração (1946-1957): Válvulas ENIAC Inicialmente projetado para a Guerra, mas chegou tarde, em 1946. Números: Decimal, 18 000 válvulas, 30 ton., 1 500 pés2, 140 kW, 5 000 adições por segundo. 2ª Geração (1958-1964): Transistores 3ª Geração (1965): Circuitos Integrados Integração em pequena escala: Até 100 dispositivos em um chip. Integração em média escala: 100-3.000 dispositivos em um chip. Gerações Posteriores (1971 - ?) 1971-1977: Integração em escala grande; 3.000 – 100.000 dispositivos em um chip 1978 -1991: Integração em escala muito grande; 100.000 – 100.000.000 dispositivos em um chip 1991: Integração em escala ultra grande. Mais de 100.000.000 dispositivos em um chip. 51 1ª Geração: A Máquina de Von Neumann Programar o ENIAC era extremamente enfadonho. Se o programa pudesse ser representado de uma forma adequada (ao invés das chaves que o programavam manualmente) tudo seria mais fácil. Instruções + Dados seriam armazenados na memória. Conceito de programa armazenado. ALU operando sobre dados binários. Unidade de controle interpretando e executando instruções da memória. Equipamento de entrada e saída operado por unidade de controle. Princeton Institute for Advanced Studies: IAS Concluído em 1952. 52 Estrutura da máquina de von Neumann 53 IAS – detalhes Com raras exceções, todos os computadores de hoje tem essa mesma estrutura e função geral, e são conhecidos como máquinas de von Neumann. 1000 “palavras” de 40 bits. Número binário. 2 instruções de 20 bits. Conjunto de registradores (armazenamento em CPU). Registrador de buffer de memória (MBR). Registrador de endereço de memória (MAR). Registrador de instrução (IR). Registrador de buffer de instrução (IBR). Contador de programa (PC). Acumulador (AC). Quociente multiplicador (MQ). 54 IAS – Formato de Memória 55 Estrutura do IAS detalhe 56 Instruções do IAS 57 Computadores Comerciais 1947 – Eckert-Mauchly Computer Corporation. UNIVAC I (Universal Automatic Computer). Birô do Censo dos EUA para cálculos de 1950. Tornou-se parte da Sperry-Rand Corporation. Final da década de 1950 – UNIVAC II. Mais rápido. Mais memória. IBM Equipamento de processamento de cartão perfurado. 1953: 701 Primeiro computador de programa armazenado da IBM. Cálculos científicos. 1955: 702 Aplicações comerciais. Levou à série 700/7000. 58 2ª Geração: Transistores Substituíram as válvulas. Menores. Mais baratos. Menos dissipação de calor. Dispositivo de estado sólido. Feito de silício (areia). Inventado em 1947 na Bell Labs. William Shockley e outros. Introdução de ALU’s e Unidades de Controle complexas. Linguagem de programação de alto nível. 59 3ª Geração: Circuitos Integrados Transistor isolado = componente discreto. Computador era construído usando componentes discretos. Processo dispendioso e complicado, especialmente porque a complexidade cresceu muito rapidamente (milhares de transistores). Surge então a microeletrônica. 60 Microeletrônica Literalmente – “pequena eletrônica”. Um computador é composto de portas (AND, OR, NOT, ...), células de memória e interconexões. 61 Microeletrônica Estas podem ser fabricadas em um semicondutor. Por exemplo, wafer de silício. 62 Intel: The Making of a Chip with 22nm/3D Transistors 63 [VÍDEO] Fonte: www.youtube.com/watch?v=d9SWNLZvA8g http://www.youtube.com/watch?v=d9SWNLZvA8g Wafer de Silício 64 Zoom Into a Microchip... 65 [VÍDEO] Fonte: www.youtube.com/watch?v=Knd-U-avG0c https://www.youtube.com/watch?v=Knd-U-avG0c Lei de Moore Maior densidade de componentes no chip. Gordon Moore – cofundador da Intel. Número de transistores em um chip dobrará a cada ano. Desde 1970, isso diminuiu um pouco. Número de transistores dobra a cada 18 meses. Consequências: Custo de um chip permaneceu quase inalterado. Maior densidade de empacotamento significa caminhos elétricos mais curtos, gerando maior desempenho. Menor tamanho oferece maior flexibilidade. Redução nos requisitos de potência e resfriamento. Menos interconexões aumenta a confiabilidade. 66 Le i d e M o o re n a p rá ti c a 67 68 Lei de Moore - Exemplos recentes Apple A8 (iPhone 6) 2 bilhões de transistores de 20 nm Área do chip = 89 mm2 2 núcleos operando a 1,4 GHz Apple A8X (iPad Air 2) 3 bilhões de transistores de 20 nm 3 núcleos operando a 1,5 GHz GPU “comparável” a um PS3 “The fast and fluid performance of iPad Air 2 begins with its A8X chip. With 64-bit desktop- class architecture and an extraordinary 3 billion transistors, the A8X chip delivers speed and graphics that rival many personal computers.” (by Apple) 2010 2011 2012 2012 2013 2014 69 70 Desempenho dos chips série A da Apple (no Geekbench 4). O A10X é um rumor... Gerações posteriores Difícil caracterização. Houve importantes resultados dos estudos iniciados desde a década de 70. Destacam-se: Memória Semicondutora. Capacidade dobra aproximadamente a cada ano. Gerações: 1K, 4K, 16K, 64K, 256K, 1M, 4M, 16M, 64M, 256M, 1G, 4G, 16Gbits por chip. Microprocessador. Com diversos componentes integrados 71 Projetando visando ao desempenho Fatores mais fortes para se alcançar o máximo de desempenho: Velocidade do microprocessador Balanço do desempenho Melhorias na organização e na arquitetura do chip. 72 Fator 1: Velocidade do microprocessador Princípio básico: Manter o processador ocupado a maior parte do tempo. Técnicas: Pipelining: Conceito de “linha de montagem” no processamento das instruções Previsão de desvio: Tentar antecipar as próximas instruções. Análise do fluxo de dados: reordenação de instruções visando a otimização. Execução especulativa: baseado nas técnicas acima, executar antecipadamente instruções potencialmente necessárias. 73 Fator 2: Balanço do desempenho Necessidade de procurar o equilíbrio do desempenho Ajustes na organização/arquitetura para compensar a diferença entre as capacidades dos diversos componentes (barramentos, memórias, etc.) Lugar crítico (gargalo): Interface processador-barramento- memória. Técnicas: Barramento de dados mais largo; Melhoria da interface da DRAM; Redução da frequência de acesso a memória usando caches; Aumento da largura de banda de interconexão CPU- DRAM. Aumentando-se o número de bits e/ou Aumentando-se a frequência do barramento/memórias. 74 Diferença de desempenho entre lógica e memória 75 Dispositivos de E/S Periféricos com demandas intensas de E/S. Grandes demandas de vazão de dados. Processadores podem tratar disso. Problema de movimentar dados. Soluções: Caching. Buffering. Barramentos de interconexão de maior velocidade. Estruturas de barramentos mais elaboradas. Configurações de processador múltiplo. 76 A chave é o balanço Componentes do processador. Memória principal. Dispositivos de E/S. Estrutura de interconexão. 77 Fator 3: Melhorias na organização e na arquitetura do chip Técnicas para aumentar a velocidade do processador: Aumentar velocidade de hardware do processador. Deve-se fundamentalmente ao encolhimento do tamanho das portas lógicas no chip. Mais portas, reunidas mais de perto,aumentando a taxa de clock. Redução no tempo de propagação dos sinais. Aumentar tamanho e velocidade das caches. Dedicando parte do chip do processador . Tempos de acesso à cache caem significativamente. Mudar organização e arquitetura do processador. Aumento da velocidade de execução efetiva (IPC – Instructions per Clock). Paralelismo. 78 Fator 3: Melhorias na organização e na arquitetura do chip 79 Fator 3: Melhorias na organização e na arquitetura do chip Problemas com velocidade do clock e densidade da lógica: Potência Densidade de potência aumenta com densidade da lógica e velocidade do clock. Dissipação de calor. Atraso de RC Velocidade em que os elétrons fluem pela resistência e capacitância dos fios de metal que os conecta. Aumentos de atraso à medida que o produto RC aumenta. Interconexões de fio mais finas, aumentando a resistência. Fios mais próximos, aumentando a capacitância. Latência da memória Velocidades de memória ficam atrás das velocidades de processador. 80 Fator 3: Melhorias na organização e na arquitetura do chip Solução: Mais ênfase em abordagens de organização e arquitetura. O que vem sido feito neste sentido? Aumento da capacidade do cache; Lógica de execução mais complexa; Múltiplos cores (núcleos); 81 Fator 3: Melhorias na organização e na arquitetura do chip Aumento da capacidade do cache Normalmente, dois ou três níveis de cache entre processador e memória principal. Densidade de chip aumentada. Mais memória cache no chip. Acesso mais rápido à cache. Chip Pentium dedicou cerca de 10% da área do chip à cache. Pentium 4 dedica cerca de 50%. 82 Fator 3: Melhorias na organização e na arquitetura do chip Lógica de execução mais complexa Permite execução de instruções em paralelo. Pipeline funciona como linha de montagem. Diferentes estágios de execução de diferentes instruções ao mesmo tempo ao longo do pipeline. Superescalar permite múltiplos pipelines dentro de um único processador. Instruções que não dependem uma da outra podem ser executadas em paralelo. 83 Fator 3: Melhorias na organização e na arquitetura do chip Fato: Retornos cada vez menores... Complexa organização interna dos processadores. Pode obter muito paralelismo. Aumentos mais significativos provavelmente serão relativamente modestos. Benefícios da cache estão chegando ao limite. Aumentar taxa de clock causa o problema da dissipação de potência. Alguns limites físicos fundamentais estão sendo atingidos. 84 Fator 3: Melhorias na organização e na arquitetura do chip Tendência: Múltiplos cores. Múltiplos processadores em único chip. Grande cache compartilhada. Dentro de um processador, aumento no desempenho proporcional à raiz quadrada do aumento na complexidade. Se o software puder usar múltiplos processadores, dobrar o número de processadores quase dobra o desempenho. Assim, use dois processadores mais simples no chip ao invés de um processador mais complexo. Com dois processadores, caches maiores são justificadas. Consumo de potência da lógica de memória menor que lógica do processamento. 85 Processadores: Tendências 86 Multicore, MICs e GPGPUs Nova abordagem visando aumento da performance geral: Múltiplos processadores num mesmo chip (Multicore). Em computação de altíssimo desempenho, cada vez mais usam-se múltiplos processadores mais simples porém em maior número. Uma GPU usa essencialmente esse conceito. Milhares de processadores simples operando em paralelo. MIC: Many Integrated Core. Hoje com mais de 50 núcleos por chip. GPGPU: General-Purpose computing on GPUs. Usar a GPU para outros fins além de computação gráfica. Destaque para as APUs da AMD. 87 Sistemas Embarcados e a ARM ARM: é uma arquitetura de microprocessadores baseada em RISC e amplamente usada em sistemas embarcados. Sistema Embarcado (Embedded System): Uma combinação de hardware e software, e possivelmente uma mecânica adicional ou outras partes, projetado para executar uma função dedicada. Em muitos casos, sistemas embarcados são parte de um sistema maior ou produto, como no caso de um sistema antitravamento das rodas em um carro (ABS). 88 Hardware Software Propósito Específico Sistema Embarcado Possível organização de um Sistema Embarcado 89 Arquitetura ARM 90 Arquitetura Num de Bits Cores projetados pela ARM Cores projetados por outras empresas Cortex profile ARMv1 32/26 ARM1 ARMv2 32/26 ARM2, ARM3 Amber, STORM Open Soft Core ARMv3 32 ARM6, ARM7 ARMv4 32 ARM8 StrongARM, FA526 ARMv4T 32 ARM7TDMI, ARM9TDMI ARMv5 32 ARM7EJ, ARM9E, ARM10E XScale, FA626TE, Feroceon, PJ1/Mohawk ARMv6 32 ARM11 ARMv6-M 32 ARM Cortex-M0, ARM Cortex-M0+, ARM Cortex-M1 Microcontroller ARMv7-M 32 ARM Cortex-M3 Microcontroller ARMv7E-M 32 ARM Cortex-M4 Microcontroller ARMv7-R 32 ARM Cortex-R4, ARM Cortex-R5, ARM Cortex-R7 Real-time ARMv7-A 32 ARM Cortex-A5, ARM Cortex-A7, ARM Cortex-A8, ARM Cortex-A9, ARM Cortex-A12, ARM Cortex-A15, ARM Cortex-A17 Krait, Scorpion, PJ4/Sheeva, Apple A6/A6X (Swift) Application ARMv8-A 64/32 ARM Cortex-A53, ARM Cortex-A57 X-Gene, Nvidia Project Denver, Apple A7 (Cyclone), AMD K12, Apple A8 Application ARMv8-R 32 Ainda não anunciada Real-time Avaliação de desempenho Principais parâmetros: Desempenho, custo, tamanho, segurança, confiabilidade, consumo de energia. Comparações de desempenho são difíceis. Desempenho depende de vários fatores: Velocidade bruta do processador; Conjunto de instruções; Escolha da linguagem de programação; Habilidade da programação. Há medidas tradicionais de desempenho, que serão analisadas. 91 Clock do Sistema Velocidade do clock do sistema: Em Hz ou múltiplos Velocidade de clock, ciclo de clock, tempo de ciclo. Sinais na CPU levam tempo para se estabilizarem em 1 ou 0. Sinais podem mudar em diferentes velocidades. Operações precisam ser sincronizadas. 92 Clock do Sistema Execução de instrução em etapas discretas. Busca, decodificação, load e store, aritmética ou lógica. Geralmente requer vários ciclos de clock por instrução. Pipelining gera execução simultânea de instruções. Assim, velocidade de clock não é tudo. 93 Taxa de execução de instrução 𝜏 = 1 𝑓 , onde 𝜏 = tempo, 𝑓 = frequência 𝐼𝑐 = contagem de instruções (nº de inst. por período de tempo) 𝐶𝑃𝐼 = σ𝑖=1 𝑛 (𝐶𝑃𝐼𝑖 × 𝐼𝑖) 𝐼𝑐 = média de ciclos por instrução 𝑇 = 𝐼𝑐 × 𝐶𝑃𝐼 × 𝜏 = 𝐼𝑐 × [𝑝 + 𝑚 × 𝑘 ] × 𝜏 𝑝 = número de ciclos para dec. e exec. a instrução 𝑚 = número de referências de memória necessárias 𝑘 = razão entre tempo de ciclo de memória e tempo de ciclo de processador 94 Taxa de execução de instrução Taxa 𝑀𝐼𝑃𝑆 = 𝐼𝑐 𝑇 × 106 = 𝑓 𝐶𝑃𝐼 × 106 Taxa 𝑀𝐹𝐿𝑂𝑃𝑆 = num. de inst. de PF exec. em um programa Tempo de execução × 106 𝐶𝑃𝐼 = 0,6 + 2 × 0,18 + 4 × 0,12 + 8 × 0,1 = 2,24 𝑀𝐼𝑃𝑆 = 400 × 106 2,24 × 106 ≈ 178 Exemplo: 95 Lei de Amdahl Gene Amdahl [AMDA67]. Speedup em potencial do programa usando múltiplos processadores. Concluiu que: Código precisa ser paralelizável. Speedup é limitado, gerando retornos decrescentes para uso de mais processadores. Dependente da tarefa: Servidores ganham mantendo múltiplas conexões em múltiplos processadores. Bancos de dados podem ser divididos em tarefas paralelas. 96 Fórmula da Lei de Amdahl Para programa rodando em único processador: Fração f do código paralelizável sem overhead no escalonamento. Fração (1-f) de código inerentemente serial. T é o tempo de execução total para o programa no único processador. N é o número de processadores que exploram totalmente as partes paralelas do código. Conclusões: f pequeno, processadores paralelos têm pouco efeito. N ->∞, speedup limitado por 1/(1– f). Retornos decrescentes para o uso de mais processadores. 97 Lei de Amdahl para Multiprocessadores 98 Principais pontos estudados Máquina de Von Neumann: Mesma estrutura básica até os dias de hoje. Muito se modernizou, mas a base permanece. Padrão de bits para números e instruções (opcode + endereço) Evolução dos computadores: Aumento na velocidade do processador; Diminuição no tamanho do componente; Aumento no tamanho da memória; Aumento na capacidade e velocidade de E/S. Aumento na velocidade da CPU devido: ao encolhimento do tamanho dos componentes (melhoria das técnicas de fabricação) = permite que eles trabalhem a frequências mais altas sem sobreaquecimento; melhorias na organização do computador... Técnicas de pipeline; Execução paralela; Execução especulativa. Questão crítica: Equilibrar o desempenho dos diversos elementos do computador. Lei de Amdahl: N processadores não significam “N vezes” mais desempenho. 99 Visão de alto nível da função e interconexão do computador Introdução Visão de alto nível de um computador CPU Memória Componentes de E/S Descrição de um sistema de computação: Comportamento externo de cada componente (sinais de dados e controle); Estrutura de interconexão e os controles exigidos para gerenciar o uso da estrutura de interconexão. Conhecimento da estrutura e função de alto nível: Identificação dos gargalos do sistema; Caminhos alternativos; Magnitude de falhas; Facilidade de melhorias de desempenho. 101 Componentes do computador Arquitetura de Von Newmann Dados e instruções armazenados numa única memória de leitura/escrita. Memória endereçável por local, sem considerar seu conteúdo. Execução sequencial (a menos que modificado explicitamente) 102 A Programação do Computador Possibilidade 1: Interconexão entre componentes lógicos básicos para armazenar dados binários e realizar operações lógicas/aritméticas. Cada cálculo em particular exige uma configuração de componentes lógicos específicos. Tais componentes interligados seriam o “programa” na forma de hardware. Programa “hardwired” Inflexíveis Hardware de uso geral pode fazer diferentes tarefas, dados sinais de controle corretos. Ao invés de religar o hardware, forneça um conjunto de sinais de controle. 103 A Programação do Computador Possibilidade 2: Unidades que podem ter seu comportamento alterado dependendo dos sinais de controle aplicados. Ao invés de religar o hardware para cada novo programa, o programador simplesmente fornece novos sinais de controle. O que é um programa? Uma sequência de etapas. Para cada etapa, é feita uma operação aritmética ou lógica. Para cada operação, é necessário um conjunto diferente de sinais de controle. Software: Sequência de códigos ou instruções que, ao serem interpretadas, geram sinais de controle para os componentes. 104 Abordagens de hardware e software 105 Componentes... A Unidade de Controle e a Unidade Lógica e Aritmética constituem a Unidade Central de Processamento. Dados e instruções precisam entrar no sistema, e resultados saem dele. Entrada/saída. É necessário um armazenamento temporário de código e resultados. Memória principal. 106 Componentes do computador: visão de alto nível 107 Função do Computador Função básica Execução de um programa (instruções armazenadas na memória) Existem diversos elementos envolvidos na execução de um programa. Processo básico: Busca de instruções (ciclo de busca) Execução da instrução (ciclo de execução) 108 Busca e execução de instruções Ciclo de Busca Contador de Programa (PC) mantém endereço da próxima instrução a buscar. Processador busca instrução do local de memória apontado pelo PC. Incrementar PC: A menos que seja informado de outra forma. Instrução carregada no Registrador de Instrução (IR). Processador interpreta instrução e realiza ações exigidas. 109 Busca e execução de instruções Ciclo de Execução (Categorias) Processador-memória: Transferência de dados entre CPU e memória principal. E/S do processador: Transferência de dados entre CPU e módulo de E/S. Processamento de dados: Alguma operação aritmética ou lógica sobre dados. Controle: Alteração da sequência de operações. Ex: salto. Combinação dos itens anteriores. 110 Exemplo (Características da máquina hipotética) 111 (AC Memória) (Memória AC) (AC AC + Memória) Exemplo (Execução de um programa) No exemplo (somar 3 + 2): - 3 ciclos de instrução - cada um com um ciclo de busca/execução 112 Diagrama de estado do ciclo de instrução 113 Interrupções Mecanismo pelo qual outros módulos (p.e. E/S) podem interromper a sequência de processamento normal. 114 Ciclo de interrupção Adicionado ao ciclo de instrução. Processador verifica interrupção. Indicado por um sinal de interrupção. Se não houver interrupção, busca próxima instrução. Se houver interrupção pendente: Suspende execução do programa atual. Salva contexto. Define PC para endereço inicial da rotina de tratamento de interrupção. Interrupção de processo. Restaura contexto e continua programa interrompido. 115 Transferência de controle via interrupções 116 Ciclo de instrução com interrupções 117 Interrupções Adicionam um overhead, pois instruções extras precisam ser executadas (no tratador de interrupções). Contudo, devido à quantidade de tempo relativamente grande que seria desperdiçada pela simples espera por uma operação de E/S, o processador pode ser empregado de modo muito mais eficiente com o uso de interrupções. Exemplo em 2 casos: Espera curta pela E/S. Espera longa pela E/S. 118 Sincronização do programa – espera curta pela E/S 119 Sincronização do programa – espera longa pela E/S 120 Ciclo de instrução (com interrupções) Diagrama de estado 121 Múltiplas interrupções A discussão até aqui ficou apenas na ocorrência de uma única interrupção. Suponha, porém, que ocorram múltiplas interrupções. Ex: Um programa pode estar recebendo dados de uma linha de comunicações e imprimindo resultados. A impressora gerará uma interrupção toda vez que completar uma operação de impressão; O controlador de linha de comunicação gerará uma interrupção toda vez que uma unidade de dados chegar (um caractere ou um bloco); Fato: É possível que uma interrupção de comunicações ocorra enquanto uma interrupção de impressora estiver sendo processada! 122 Múltiplas interrupções Técnicas Desativar interrupções: Processador ignorará outras interrupções enquanto processa uma interrupção. Interrupções permanecem pendentes e são verificadas após primeira interrupção ter sido processada. Interrupções tratadas em sequência enquanto ocorrem. Definir prioridades: Interrupções de baixa prioridade podem ser interrompidas por interrupções de prioridade mais alta. Quando interrupção de maior prioridade tiver sido processada, processador retorna à interrupção anterior. 123 Múltiplas interrupções Técnicas 124 Sequência de tempo de múltiplas interrupções 125 Estrutura de Interconexão Computador = 3 componentes/módulos básicos: Processador; Memória; E/S. Tais módulos precisam se interconectar e comunicar-se entre si. A coleção de caminhos conectando os diversos módulos é chamada de estrutura de interconexão. 126 Módulos do computador Conexão de Memória Recebe e envia dados. Recebe endereços (de locais). Recebe sinais de controle: Leitura. Escrita. Temporização. Conexão de E/S Semelhante à memória do ponto de vista do computador. Saída: Recebe dados do computador. Envia dados a periféricos. Entrada: Recebe dados de periféricos. Envia dados ao computador. Recebe sinaisde controle do computador. Envia sinais de controle aos periféricos. P.e., girar disco. Recebe endereços do computador. P.e., número de porta para identificar periférico. Envia sinais de interrupção (controle). Conexão da CPU Lê instruções e dados. Escreve dados (após processamento). Envia sinais de controle a outras unidades. Recebe (e atua sobre) interrupções. 127 Interconexão de Barramento O que é um barramento? Um caminho de comunicação conectando dois ou mais dispositivos. Normalmente, broadcast. Frequentemente agrupado. Uma série de canais em um barramento. Por exemplo, barramento de dados de 32 bits são 32 canais de bits separados. Linhas de potência podem não ser mostradas. Um barramento que conecta os principais componentes do computador (CPU, Memória e E/S) é chamado de barramento do sistema. 128 Estrutura de barramento Um barramento do sistema consiste, normalmente, em cerca de 50 a centenas de linhas separadas, cada uma delas com um significado em particular. Embora existam muitos projetos de barramento diferentes, em qualquer barramento as linhas podem ser classificadas em três grupos funcionais: Linhas de dados (barramento de dados); Linhas de endereço (barramento de endereço); Linhas de controle (barramento de controle). 129 Barramento de dados Transporta dados. Lembre-se de que não existe diferença entre “dados” e “instruções” neste nível. Largura é um determinante fundamental do desempenho. 8, 16, 32, 64 bits. 130 Barramento de endereço Identifica origem ou destino dos dados. Ex: CPU precisa ler uma instrução (dados) de determinado local na memória. Largura do barramento determina capacidade máxima da memória do sistema. Ex: 8080 tem barramento de endereço de 16 bits gerando espaço de endereços de 64k. O barramento de endereços dos sistemas de 32 bits permite endereçar, no máximo, 4 GB de RAM. 131 Barramento de controle Informação de controle e temporização: Sinal de leitura/escrita de memória. Sinal de leitura/escrita de E/S. ACK de transferência. Solicitação de barramento. Concessão de barramento. Requisição de interrupção. ACK de interrupção. Clock. Reset. 132 Estrutura de barramento Se um módulo deseja enviar dados para outro, ele precisa fazer duas coisas: (1) obter o uso do barramento e (2) transferir dados por meio do barramento. Se um módulo quiser requisitar dados de outro módulo, ele precisa: (1) obter o uso do barramento e (2) transferir uma requisição ao outro módulo pelas linhas de controle e endereço apropriadas. (3) Esperar que esse segundo módulo envie os dados. 133 Esquema de interconexão de barramento 134 Como os barramentos se parecem? Linhas paralelas em placas de circuito. Cabos de fita. Conectores em tira nas placas mãe. Ex: PCI. Conjuntos de fios. 135 136 Foto em “close” de múltiplos barramento de uma placa-mãe Problemas do barramento único Muitos dispositivos em um barramento levam a: Atrasos de propagação Longos caminhos de dados significa que a coordenação do uso do barramento pode afetar contrariamente o desempenho. Se a demanda de transferência de dados agregada se aproxima da capacidade do barramento. A maioria dos sistemas utiliza múltiplos barramentos para contornar esses problemas. 137 Arquitetura de barramento tradicional 138 Arquitetura de alto desempenho 139 Elementos do projeto de barramento 140 Tipos de barramento Dedicado: Linhas separadas para dados e endereço. Multiplexado. Linhas compartilhadas. Linha de controle válidas de endereço ou dados. Vantagem Menos linhas Desvantagens: Controle mais complexo. Desempenho máximo. 141 Método de arbitração Arbitração pode ser: Centralizada Existe um árbitro de barramento, responsável por alocar tempo no barramento. Módulo separado ou parte do processador. Distribuída Não existe controlador central. Cada módulo contém lógica de controle de acesso e os módulos atuam juntos para compartilhar o barramento. Finalidade: designar um dispositivo como mestre (inicia a transferência) e outro como escravo (receptor). 142 Temporização Coordenação de eventos no barramento. Síncrona: Eventos determinados por sinais de clock. Barramento de controle inclui linha de clock. Normalmente, sincronismo na borda inicial (rising-edge clock). Geralmente, um único ciclo para um evento. Assíncrona: A ocorrência de um evento em um barramento segue e depende da ocorrência de um evento anterior. É flexível porém mais complexa de implementar e testar (em relação ao método síncrono) Pode-se misturar dispositivos lentos e rápidos, compartilhando o barramento. 143 Outros elementos de projeto Largura do barramento Impacto sobre o desempenho do sistema (dados) ou sobre a capacidade máxima de memória endereçável (endereço). Quanto mais trilhas, mais caro. Tipo de transferência de dados Escrita (mestre para escravo). Leitura (escravo para mestre). Multiplexado (endereço e dados). Leitura-modificação-escrita. Leitura-após-escrita. Transferência de dados em bloco. 144 Interconexão Ponto-a-Ponto A técnica de barramento compartilhado foi a abordagem padrão durante décadas. Porém, hoje em dia, a maioria dos sistemas progressivamente estão adotando a chamada interconexão ponto-a- ponto (point-to-point interconnection). Razão principal: restrições elétricas encontradas com o aumento da frequência em barramentos síncronos muito largos (problemas de sincronização e arbitração). Vantagens: baixa latência, maior taxa de dados (velocidade) e melhor escalabilidade. Exemplos: Intel QPI, AMD HyperTransport, PCI Express, Fibre Channel point-to-point (FC-P2P), etc. 145 Exemplo Intel’s QuickPath Interconnect (QPI) QPI Physical Layer Cada porta QPI é capaz de transmitir 20 bits em paralelo em cada direção. Quando opera a 3.2 GHz, o data rate é de 25,6 GB/s em cada par. O QPI é “inspirado” na usada pela AMD no HyperTransport. 146 Principais pontos estudados Modelo de Von Neumann Função básica do computador: Executar programas. O ciclo de instrução: busca + execução [+ interrupção] Diagrama de estado do ciclo de instrução. Os principais componentes do sistema de computação (CPU, RAM, E/S) precisam ser interconectados (dados e controle). Tipos de barramentos: dados, endereços e controle. Barramentos compartilhados Hierarquia de barramentos. Projeto de barramentos Arbitração; Temporização; Largura. Interconexão Ponto-a-Ponto 147 Questões de Revisão para Prova 1 1) Defina os seguintes conceitos envolvidos na disciplina de AOC: Arquitetura, Organização, Estrutura e Função. 2) Quais os postulados mais importantes propostos por Von Neumann no modelo do computador que, salvo poucas modificações, é a base de quase todos os computadores modernos? Desenhe a máquina e cite os postulados. 3) Apesar de ser, necessariamente, uma verdade nos tempos modernos, quais as ideias por detrás da Lei de Moore? Quais as consequências? 4) Quais os 3 pilares de um projeto de computador visando o desempenho? Cite-os e explique brevemente cada um deles. 5) O disse Gene Amdahl a respeito do speedup alcançado ao rodar um programa em múltiplos processadores (mostre a lei)? Quais as consequências práticas dessa lei no contexto da programação paralela? 6) O que são Interrupções e quais as 4 principais classes? 7) Desenhe e explique o Ciclo de Instrução completo, contendo os 3 principais ciclos pelos quais as instruções passam para serem executadas. 8) Quais as 3 principais linhas envolvidas na Estrutura de Barramento dos computadores? Cite e explique brevemente cada uma delas. 9) Quais os principais Elementos do Projeto de Barramento? Explique. 148 A Memóriado Computador Visão geral Cache Interna/Externa A memória do computador Visão geral do sistema de memória do computador [4.1] Memória cache [4.2] Memória interna/principal [5.1] Memória externa/secundária Disco magnético [6.1] RAID [6.2] Memória Flash e SSD’s [não presente no livro] Memória óptica [6.3] Fita magnética [6.4] 150 Visão geral do sistema de memória do computador Características dos sistemas de memória: Localização. Capacidade. Unidade de transferência. Método de acesso. Desempenho. Tipo físico. Características físicas. Organização. 151 Localização Memória presente na CPU Registradores Cache (hoje, praticamente todos os processadores incluem a cache no próprio núcleo). Memória Interna/Principal RAM Memória Externa/Secundária Armazenamento periférico (acessado via E/S) Unidade Magnética (HD e Fita) Unidades Ópticas (CD, DVD, Blu-ray) Unidades Semicondutora (Memória Flash) 152 Capacidade Normalmente expressa em bytes (e seus múltiplos) Lembrando que alguns dispositivos podem ter os múltiplos do byte arredondados para baixo: 1 KB 1024 bytes (Real) | 1000 bytes (HDs, p.e.) 1 GB 1.073.741.824 bytes (Real) | 1.000.000.000 (HDs, p.e.) Novas nomenclaturas: Controversias! KiB, MiB, GiB, ... = base 2 KB, MB, GB, ... = base 10 153 Capacidade ATENÇÃO: Observe o quando se perde com essa mudança na unidade. 154 Unidade de transferência Memória Interna Número de linhas elétricas do módulo de memória Pode ser igual ao tamanho da palavra, porém frequentemente é maior (para compensar o fato da memória ser mais lenta que a CPU) Ex: PCs modernos = 64 bits Porém há dual channel: 2 x 64 bits = 128 bits por transferência. Conceitos Palavra: Unidade “natural” de organização da memória. Unidades endereçáveis: por palavra ou por byte. De qualquer forma, sempre haverá 2nbits endereços. Unidade de transferência: número de bits lidos/escritos na memória de uma só vez (memória principal). Não é, necessariamente, igual a uma palavra ou unidade endereçável (ex: transf. em blocos, nos HD’s) 155 Método de acesso Sequencial Organização em unidades chamadas registros. Começa no início e lê em ordem. Tempo de acesso depende da localização dos dados e local anterior. Por exemplo, fita. Direto Blocos individuais possuem endereço exclusivo. Acesso saltando para vizinhança, mais busca sequencial. Tempo de acesso depende da localização e local anterior. Por exemplo, disco. 156 Método de acesso Aleatório Endereços individuais identificam localizações com exatidão. Tempo de acesso é independente da localização ou acesso anterior. Por exemplo, RAM. Associativo Dados são localizados por uma comparação com conteúdo de uma parte do armazenamento (ao invés do seu endereço). Tempo de acesso é independente do local ou acesso anterior. Por exemplo, cache. 157 Desempenho Tempo de acesso (latência): Tempo entre apresentar o endereço e obter os dados válidos. Tempo de ciclo de memória: Tempo que pode ser exigido para a memória se “recuperar” antes do próximo acesso. Tempo de ciclo é acesso + recuperação. Taxa de transferência: Taxa em que os dados podem ser movidos. 158 Tecnologias Semicondutora RAM, Cache, Flash, ... Superfície magnética HD’s e fitas Ótica CD, DVD, Blu-ray, etc. Magneto-optica 159 Outras Características físicas Deterioração. Volatilidade. Apagável. Consumo de energia. Organização Arranjo físico dos bits em palavras. Nem sempre óbvia. Por exemplo, intercalada. 160 A hierarquia de memória Os pilares das restrições de projeto de memórias Quanto? (capacidade) Com que velocidade? Com que custo? Relações básicas: Tempo de acesso mais rápido Maior custo por bit. Maior capacidade Menor custo por bit. Maior capacidade Tempo de acesso mais lento. O dilema, é, portanto, claro: Não dá para atender a todos os requisitos ao mesmo tempo. É preciso encontrar um equilíbrio satisfatório. 161 A hierarquia de memória Ao descer na hierarquia: Menor custo/bit Aumento da capacidade Aumento do tempo de acesso. Frequência de acesso é menor. 162 Lista de hierarquia Registradores. Cache L1. Cache L2. Cache L3. Memória principal (RAM). Cache de disco. Flash (Cartões, Pendrives e SSDs) HD (Hard Disk). Óptica (CD/DVD/Blu-ray). Fita. 163 + C a p a c id a d e -C u st o -D e se m p e n h o Voláteis Não voláteis A hierarquia de memória É possível montar um computador que usa apenas RAM estática (conforme veremos adiante). Este seria muito rápido. Este não precisaria de cache. Isso sairia muito caro. Solução? Hierarquia de memória. Localidade de referência Durante o curso da execução de um programa, as referências à memória tendem a se agrupar. Por exemplo, loops. As cache são pequenas e rápidas, e se baseiam nesse princípio 164 Memória cache Pequenas... porém velozes! Princípios da memória cache O uso da memória cache visa obter velocidade de memória próxima das memórias mais rápidas que existem e, ao mesmo tempo, disponibilizar uma memória de grande capacidade ao preço de memórias semicondutoras mais baratas. Pequena quantidade de memória rápida. Fica entre a memória principal normal e a CPU. Pode estar localizada no chip da CPU ou módulo. Seleciona os dados/instruções a serem armazenados usando os princípios: Localidade de Referência Espacial Localidade de Referência Temporal 166 Cache e memória principal 167 Estrutura de cache/memória principal • Memória Principal: até 2n palavras endereçáveis (cada endereço com n bits). Cada bloco de K palavras. Logo, há M = 2n/K blocos na MP. • Cache: m blocos (linhas). Linha = K palavras + tag + bits controle. • Consideração: m << M • Blocos da MP são mapeados em alguma Linha da cache usando algum algoritmo de mapeamento. 168 Operação da cache Visão geral CPU requisita conteúdo do local de memória. Verifica se os dados estão em cache. Se estiverem, apanha da cache (rápido). Se não, lê bloco solicitado da memória principal para a cache e paralelamente entrega à CPU. Cache inclui tags para identificar qual bloco da memória principal está em cada slot da cache. 169 Operação de leitura de cache Fluxograma 170 Memória interna/principal (RAM) Nem tão rápidas, mas essenciais! Memória Interna Em termos práticos, a memória interna é principalmente a RAM. Esta é a memória “de trabalho” do computador, onde os programas e dados são armazenados enquanto são processados. É impossível executar um programa “direto do HD”. Quando se dá duplo-clique para se executar um programa, é preciso saber que, primariamente, ele é copiado para a RAM. Somente após isso, suas instruções começam a ser executadas. A RAM é feita com semicondutores. 172 Memória principal semicondutora (MUITO) Antigamente a memória principal empregava uma matriz de loops ferromagnéticos em forma de anel, chamados de núcleos (cores, em inglês). Magnetic-core Memory (Um plano de memória de 32 x 32 núcleos armazenando 1024 bits de dados 173 Em seguida passaram para chips semicondutores. Examinaremos: Organização; DRAM e SRAM; Tipos de ROM; Memória intercalada; Memória principal semicondutora Organização Elemento principal: célula de memória. Princípios básicos são praticamente idênticos em qualquer tecnologia: Dois estados: 1 e 0; Podem ser escritas (ao menos uma vez); Podem ser lidas. 174 Memória principal semicondutora DRAM e SRAM 175 Memória principal semicondutora DRAM e SRAM RAM Random Access Memory. Nome incorreto, pois toda memória de semicondutor tem acesso aleatório. Leitura/escrita. Volátil. Armazenamento temporário. Estática ou dinâmica. 176 Memória principal semicondutora DRAM e SRAM RAM Dinâmica Bits armazenados com carga em capacitores. As cargas vazam. Precisa de renovação mesmo se alimentada (refresh). Construção mais simples. Menor por bit. Mais barata. Mais lenta. Memória principal. Dispositivo basicamente analógico. Nível de carga determina o valor. 177 Memória principal semicondutora DRAM e SRAM Operação da DRAM Linha de endereço ativa quando bit é lido ou escrito. Chave de transistor fechada (corrente flui). Escrita: Voltagem na linha de bit. Alta para 1 baixa para 0. Depois sinaliza linha de endereço. Transfere carga ao capacitor. Leitura: Linha de endereço selecionada. Transistor liga. Carga do capacitor alimentada por linha de bit para amplificador comparar. Compara com valor de referência para determinar 0 ou 1. Carga do capacitor deve ser restaurada. 178 Memória principal semicondutora DRAM e SRAM RAM Estática Bits armazenados como chaves ligado/desligado. Sem carga para vazar. Não precisa de refresh quando alimentada. Construção mais complexa. Maior por bit. Mais cara. Mais rápida. Cache. Digital. Usa flip-flops. 179 Memória principal semicondutora DRAM e SRAM Operação da SRAM Arranjo de transistores gera estado lógico estável. Estado 0: C1 baixo, C2 alto. T1 T4 ligados, T2 T3 desligados. Estado 1: C1 alta, C2 baixa. T1 T4 desligados, T2 T3 ligados. Linha de endereço controla dois transistores, T5 T6. Escrita – aplica valor a B e complemento a B. Leitura – valor está na linha B. 180 Memória principal semicondutora DRAM e SRAM SRAM versus DRAM Ambas voláteis. É preciso energia para preservar os dados. Célula dinâmica: Mais simples de construir, menor. Mais densa. Mais barata. Precisa de refresh. Maiores unidades de memória. Célula estática: Mais rápida. Cache. 181 Memória principal semicondutora ROM ROM: Read Only Memory Armazenamento permanente. Não volátil. Microprogramação (veja mais adiante). Sub-rotinas de biblioteca. Programas do sistema (BIOS). Tabelas de função. Gravada durante a fabricação: Muito cara para pequenas quantidades. 182 Memória principal semicondutora ROM Programável (uma vez): PROM. Precisa de equipamento especial para programar. Lida “na maioria das vezes” (“principalmente de leitura”): Erasable Programmable (EPROM). Apagada por UV. Electrically Erasable (EEPROM): Leva muito mais tempo para escrever que para ler. Memória flash: Apaga memória inteira eletricamente. 183 Memória principal semicondutora Memória intercalada Coleção de chips de DRAM. Agrupada em banco de memória. Bancos atendem a solicitações de leitura ou escrita independentemente. K bancos podem atender a k solicitações simultaneamente. Exemplo comercial: Dual-Channel (2 canais). 184 Memória Principal (RAM) Evolução... As memórias DRAM usadas como Memória Principal nos computadores do tipo PC passaram por diversas tecnologias e formatos de módulo até chegarem aos módulos DIMM DDR3 4 DDR4 que temos hoje: Regulares: XT e 286 FPM: 386, 486 EDO: Primeira geração do Pentium SDR-SDRAM: Pentium I, II, III e alguns Pentium IV. Havia as denominações PC-66, PC-100 e PC-133 indicando a frequência (MHz) de operação. DDR-SDRAM (2002): Pentium IV DDR2-SDRAM (2004): Core e Core 2 DDR3-SDRAM (2007): Core i de 1ª a 5ª geração (Haswell) DDR4-SDRAM (2013): Core i de 6ª geração (Skylake) 185 186 Resumo das Memórias DDR 187 Padrão Clock do Barramento (MHz) Clock Interno (MHz) Taxa de Transferência (MT/s) Tensão (V) Nº de pinos DIMM SO- DIMM Micro DIMM DDR 100–200 100–200 200–400 2.5/2.6 184 200 172 DDR2 200–533.33 100– 266.67 400–1066.67 1.8 240 200 214 DDR3 400– 1066.67 100– 266.67 800–2133.33 1.5 240 204 214 DDR4 1066.67– 2133.33 133.33– 266.67 2133.33– 4266.67 1.05/1.2 288 256 — 188 Memórias semicondutoras Como são fabricadas? 189 Link: https://www.youtube.com/watch?v=kvf29R7nXlM https://www.youtube.com/watch?v=kvf29R7nXlM Memória externa/secundária Relativamente lentas, porém... grande capacidade e não voláteis (não precisam de energia elétrica para manter os dados)! Memória Externa Disco magnético: HDs RAID Memória Flash Cartões de Memória SSD Óptica: CD-ROM. CD-Recordable (CD-R). CD-R/W. DVD. Fita magnética. 191 Disco Magnético Substrato de disco coberto com material magnetizável (óxido de ferro... ferrugem) Substrato era alumínio. Agora é vidro. Maior uniformidade da superfície. Aumenta confiabilidade. Redução nos defeitos da superfície. Erros reduzidos de leitura/gravação. Alturas de voo mais baixas (veja adiante). Melhor rigidez. Maior resistência a choques e dados. 192 Disco Magnético Sim... Eu disse vidro! 193 Mecanismos de leitura e gravação Gravação e leitura por bobina condutora, chamada cabeça. Pode ser única cabeça de leitura/gravação ou separadas. Durante leitura/gravação, cabeça fica parada, placas giram. Gravação: Corrente pela bobina produz campo magnético. Pulsos enviados à cabeça. Padrão magnético gravado na superfície abaixo dela. Leitura: Cabeça de leitura separada e próxima da cabeça de gravação. Sensor magnetorresistivo (MR) parcialmente blindado. Resistência elétrica depende da direção do campo magnético. Operação em alta frequência. Densidade de armazenamento e velocidade mais altas. 194 Cabeça de gravação indutora/leitura magnetorresistiva 195 Método de Gravação: Longitudinal x Perpendicular 196 Organização e formatação de dados Anéis ou trilhas concêntricas. Lacunas entre as trilhas. Reduza a lacuna para aumentar a capacidade. Mesmo número de bits por trilha (densidade de compactação variável). Velocidade angular constante. Trilhas divididas em setores. Tamanho de bloco mínimo é de um setor (geralmente 521 bytes). Pode haver mais de um setor por bloco. 197 Velocidade do disco Bit próximo do centro do disco girando passa por ponto fixo mais lento que o bit na borda do disco. Para compensar, deve ser aumentado o espaçamento entre bits de diferentes trilhas. Velocidade angular constante (CAV). Setores em forma de fatia de torta e trilhas concêntricas. Trilhas e setores individuais endereçáveis. Mova cabeça para determinada trilha e espere por determinado setor. Perda de espaço nas trilhas externas. Menor densidade de dados. Capacidade limitada pelas trilhas internas Melhoria: Múltiplas zonas para aumentar capacidade. Cada zona tem número fixo de bits por trilha. Circuito mais complexo. 198 Velocidade do disco 199 Diagrama de métodos de layout de disco 200 Localizando setores Deve ser capaz de identificar início da trilha e setor. Formatar disco: Informações adicionais não disponíveis ao usuário. Marca trilhas e setores. 201 Características físicas Cabeça fixa (rara) ou móvel (uma cabeça de leitura e escrita por lado montada sobre um braço móvel) Removível ou fixo. Única ou dupla (mais comum) face. Prato único ou múltiplos. Mecanismo da cabeça: Contato (disquete). Lacuna fixa. Lacuna aerodinâmica (Winchester, ou Disco Rígido). 202 Múltiplas placas Uma cabeça por lado. Cabeças são unidas e alinhadas. Trilhas alinhadas em cada placa formam cilindros. Dados são espalhados pelo cilindro: Reduz movimento da cabeça. Aumenta velocidade (taxa de transferência). 203 Cabeças de Leitura/Gravação 204 Trilhas e cilindros 205 Parâmetros típicos dos HD’s atualmente Tamanho dos pratos: 1.8” (ultraportáteis, como o iPod classic), 2.5” (portáteis, como notebooks) e 3.5” (desktop e NAS) Velocidadedos discos: 5400/5900 RPM, 7200 RPM, 10000/15000 RPM. Tamanhos máximos: 320 GB (1.8” em 2009), 4 TB (2.5” em 2015) e 10 TB (3.5” em 2015) Taxa de transferência interna: por volta de 120 MB/s nos bons modelos de 7200 RPM. 206 Tamanhos... 8", 5.25", 3.5", 2.5", 1.8", e 1" 207 Como o HD funciona? 208 [VÍDEO] Fonte: https://www.youtube.com/watch?v=wteUW2sL7bc https://www.youtube.com/watch?v=wteUW2sL7bc Inside a Hard Disk Drive 209 [VÍDEO] Fonte: www.youtube.com/watch?v=9eMWG3fwiEU http://www.youtube.com/watch?v=9eMWG3fwiEU Parâmetros típicos de HD’s 210 Desempenho Tempo de busca: Movendo cabeça para trilha correta. Latência (rotacional): Esperando dados passarem sob a cabeça. Tempo de acesso= Busca + Latência. Taxa de transferência. 211 Tempo de transferência 𝑇 = 𝑏 𝑟𝑁 onde: 𝑇 = 𝑡𝑒𝑚𝑝𝑜 𝑑𝑒 𝑡𝑟𝑎𝑛𝑠𝑓. 𝑏 = 𝑛𝑢𝑚. 𝑑𝑒 𝑏𝑦𝑡𝑒𝑠 𝑎 𝑠𝑒𝑟𝑒𝑚 𝑡𝑟𝑎𝑛𝑠𝑚𝑖𝑡𝑖𝑑𝑜𝑠 𝑁 = 𝑛ú𝑚. 𝑑𝑒 𝑏𝑦𝑡𝑒𝑠 𝑒𝑚 𝑢𝑚𝑎 𝑡𝑟𝑖𝑙ℎ𝑎 𝑟 = 𝑣𝑒𝑙𝑜𝑐𝑖𝑑𝑎𝑑𝑒 𝑑𝑒 𝑟𝑜𝑡𝑎çã𝑜 (𝑅𝑃𝑀) Total: 𝑇𝑎 = 𝑇𝑠 + 1 2 𝑟 + 𝑏 𝑟𝑁 212 RAID Redundant Array of Independent Disks. Redundant Array of Inexpensive Disks. 6 níveis de uso comum (Há outros não “oficiais”). Não é uma hierarquia. Conjunto dos principais discos vistos como uma única unidade lógica pelo S/O. Dados distribuídos pelas unidades físicas. Pode usar capacidade redundante. Pode usar capacidade redundante para armazenar informação de paridade. IMPORTANTE: RAID não é backup! 213 RAID 0 Block-level striping without parity or mirroring. Não redundante. Dados espalhados por todos os discos. Mapeamento Round Robin. Maior velocidade. Múltiplas solicitações de dados provavelmente não no mesmo disco. Discos buscam em paralelo. Um conjunto de dados provavelmente será espalhado por múltiplos discos. 214 RAID 1 Mirroring without parity or striping. Discos espelhados. Dados espalhados pelos discos. 2 cópias de cada stripe em discos separados. Leitura de qualquer um deles. Gravação em ambos. Recuperação é simples: Troca entre disco com defeito e espelho. Sem tempo de paralisação. Caro. 215 RAID 2 Bit-level striping with dedicated Hamming-code parity. Discos são sincronizados. Stripes muito pequenos. Normalmente, único byte/palavra. Correção de erro calculada pelos bits correspondentes nos discos. Múltiplos discos de paridade armazenam correção de erro via código de Hamming em posições correspondentes. Muita redundância. Caro. Não usado. 216 RAID 3 Byte-level striping with dedicated parity. Semelhante a RAID 2. Somente um disco redundante, não importa o tamanho do array. Bit de paridade simples para cada conjunto de bits correspondentes. Dados sobre unidade com defeito podem ser reconstruídos a partir de dados sobreviventes e informação de paridade. Taxas de transferência muito altas. 217 RAID 4 Block-level striping with dedicated parity. Cada disco opera independentemente. Bom para taxa de solicitação de E/S alta. Grandes stripes. Paridade bit a bit calculada por stripes em cada disco. Paridade armazenada no disco de paridade. 218 RAID 5 Block-level striping with distributed parity. Como RAID 4. Paridade espalhada por todos os discos. Alocação round-robin para stripe de paridade. Evita gargalo do RAID 4 no disco de paridade. Normalmente usado em servidores de rede. 219 RAID 6 Block-level striping with double distributed parity. Dois cálculos de paridade. Armazenado em blocos separados em discos diferentes. Requisito do usuário de N discos precisa de N+2. Alta disponibilidade de dados. Três discos precisam falhar para haver perda de dados. Penalidade de gravação significativa. 220 RAID: Mais informações Nível Mín. # de Drives Eficiência Espacial Tolerância a falhas Benefício Leitura Benefício Escrita 0 2 1 0 nX nX 1 2 1/n n-1 nX 1X 2 3 1 − 1/n ⋅ log2(n-1) 1 ? ? 3 3 1 − 1/n 1 (n−1)X (n−1)X 4 3 1 − 1/n 1 (n−1)X (n−1)X 5 3 1 − 1/n 1 (n−1)X (n−1)X 6 4 1 − 2/n 2 (n−2)X (n−2)X 221 RAID: Mais informações 222 RAID: Comparações 223 RAID: Comparações 224 RAID: Comparações 225 Memória Flash Diferentemente da memória RAM e também das SRAM, a memória Flash permite armazenar dados por longos períodos, sem precisar de alimentação elétrica. É muito usada em dispositivos portáteis, como pendrives, smartphones, tablets, etc, e em SSD’s (Solid State Drive). Tipos: NOR: Mais antigos e fora de uso. NAND: Mais baratas e mais rápidas. Em uso atualmente. Do ponto de vista do sistema, um cartão de memória Flash NAND está mais para um HD do que para uma unidade de memória. Você pode usá-lo para guardar dados, mas na hora que o sistema precisa rodar um programa, precisa primeiro copiá-lo para a memória RAM, da mesma forma que faria ao usar um HD. 226 Memória Flash O grande boom da memória Flash aconteceu entre 2004 e 2005, quando uma combinação de dois fatores fez com que os preços por MB caíssem rapidamente: Aumento brutal na produção e concorrência; Introdução da tecnologia MLC (Mult-Level Cell), onde cada célula passa a armazenar dois ou mais bits em vez de apenas um. Isso é possível graças ao uso de tensões intermediárias. Com 4 tensões diferentes, a célula pode armazenar 2 bits, com 8 pode armazenar 3 bits e assim por diante. Os chips "tradicionais", que armazenam um único bit por célula passaram a ser chamados de "SLC" (Single-Level Cell). São usados em SSDs de alto desempenho e por serem mais duráveis são mais comuns em servidores. 227 Memória Flash: Evolução... 228 Die-Stacking 229 Memória Flash: Funcionamento Funcionamento básico de um transistor Explora a principal propriedade dos semicondutores, onde uma pequena tensão (Volts) aplicada ao gate pode ser usada para controlar um grande fluxo de corrente entre source e drain. 230 Memória Flash: Funcionamento Funcionamento básico de uma célula de memória flash Semelhante a um transistor, porém existe um segundo gate chamado de floating gate (pois é isolado por uma fina camada de óxido). Inicialmente, o FG não interfere na operação do transistor. Neste caso, a célula está armazenando o binário 1. Aplicando-se uma alta tensão através da camada de óxido força os elétrons a se moverem para o FG onde ficam presos, mesmo se a fonte de tensão for desativada. Neste caso, a célula está armazenando o binário 0. O estado da célula pode ser lido por um circuito externo que verifica se o transistor está funcionando ou não. Aplicando-se uma tensão inversa no gate, os elétrons podem ser expulsos, voltando ao estado original. 231 Cartões de memória flash Formatos: CompactFlash [CF] SmartMedia [SM] xD (Olympus e Fujifilm) MMC Memory Stick (Sony) Memory Stick Duo, Pro, Pro Duo, Micro e Pro-HG SD (Secure Digital), miniSD e microSD. SD: até 2 GB SDHC: até 32 GB SDXC: até 2 TB 232 Pendrive 233 SSD (Solid State Drive) Os SSDs ou "Solid State Drive" (discos de estado sólido) são possivelmente a maior revolução dentro do ramo de armazenamento secundário, já que eles utilizam um princípio de armazenamento completamente diferente dos HD’s, com os discos magnéticos dando lugar aos chips de memória Flash. A grande maioria dos SSDs domésticos utilizam módulos de memória Flash MLC ou TLC, assim como nos cartões e pendrives. Entretanto, eles oferecem um diferencial importante, que é o uso de múltiplos canais de acesso (uma espécie de “RAID” com múltiplos chips de memória). 234 SSD (Solid State Drive) Vantagens em relação aos HD’s: Alto desempenho em operações de E/S por segundo (IOPS), especialmente em acesso aleatório. Durabilidade (resistência a choques físicos e vibrações). Longevidade (não são susceptíveis a desgaste mecânico). Baixo consumo elétrico. Frios e silenciosos. Temposde acesso e latência baixos (mais de 10x mais rápido que um HD). Desvantagens: Maior custo por MB. “Baixa” capacidade de armazenamento (se comparado a um HD). 235 SSD’s 236 SSD’s: Aspectos práticos (1) Primeiro: O desempenho de um SSD tende a diminuir progressivamente a medida que ele é usado. Por quê? Para entender a razão, é necessário saber que os arquivos são armazenados como um conjunto de páginas (tipicamente de 4 KB cada) pelo sistema operacional. Normalmente, essas páginas não são contíguas (ou seja, estão fisicamente próximas). Já a memória flash é acessada em blocos com, tipicamente, 512 KB (128 páginas por bloco). 237 SSD’s: Aspectos práticos (1) Agora, considere que deve ser escrita uma página numa memória flash: 1. O bloco inteiro deve ser lido para a memória RAM e então a página dentro do bloco é atualizada/escrita. 2. Antes do bloco poder ser escrito de volta na memória flash, o bloco inteiro da flash precisa ser apagado – não é possível apagar apenas uma página. 3. Após isso, o bloco presente na RAM é escrito de volta na memória flash. Quando o drive está relativamente vazio e um novo arquivo é criado, as páginas do arquivo são escritas no drive de modo contínuo, assim, poucos blocos são afetados. 238 SSD’s: Aspectos práticos (1) Entretanto, com o passar do tempo, o drive começa a ficar fragmentado (páginas dispersadas em diversos blocos). Assim, cada operação de escrita de um arquivo passa a afetar múltiplos blocos, tornando o processo bem mais lento. A principal técnica usada pelos fabricantes (em conjunto com o SO) para minimizar esse problema é o comando TRIM, que permite ao SO informar ao SSD quais blocos de dados não estão mais em uso e assim ele pode ser “limpo” internamente pelo drive (normalmente em momento de ociosidade). 239 SSD’s: Aspectos práticos (2) Segundo: As células flash se tornam inutilizáveis depois de um determinado número de escritas. Ou seja, elas perdem a sua capacidade de serem gravadas e manterem os dados. Resistência a escrita (quant. de apagamentos por bloco): SLC NAND = 100.000 MLC NAND 5.000 a 10.000 para aplicações de média capacidade 1.000 a 3.000 para aplicações de alta capacidade. TLC NAND = 1.000 No entanto, com o uso de tecnologias de wear-leveling (que forçam o uso uniforme do drive) e um sofisticado sistema de detecção/correção de erros, permitem que o drive dure por vários anos (bem mais que a média de vida de um HD). 240 SSD’s 241 mSATA (esq.), M.2 (meio), e 2.5" (dir.) Todos usam Memória Flash 3D V-NAND com 32 camadas e 3 bits por célula (TLC) Samsung 850 EVO Capacidades: 120, 250, 500 e 1000 GB Desempenho: 550 MB/s (Leitura) e 310 MB/s (Escrita) Durabilidade: 70 TB de escrita para os modelos 120 e 250 GB. Ou seja, 39 GB por dia durante 5 anos. 150 TB para os modelos de 500 e 1000 TB. Ou seja, 84 GB por dia durante 5 anos. Memória óptica 242 Memória óptica CD-ROM Originalmente para áudio. 650 MB gerando mais de 74 minutos de áudio. Posteriormente, 700 MB (80 minutos). Policarbonato com cobertura altamente reflexiva, normalmente alumínio. Dados armazenados como sulcos. Lidos pela reflexão do laser. Densidade de empacotamento constante. Velocidade linear constante. 243 Operação do CD 244 Velocidade do CD-ROM Áudio tem velocidade única: Velocidade linear constante. 1,2 m/s. Trilha (espiral) tem 5,27 km de extensão. Oferece 4391 segundos= 73,2 minutos. Outras velocidades indicadas por múltiplos. 1x = 150 KB/s 2x = 300 KB/s 56x = 8400 KB/s Valor indicado é o máximo que a unidade pode conseguir. 245 Formato do CD-ROM Modo 0 =campo de dados em branco. Modo 1 =2048 bytes de dados + correção de erro. Modo 2 =2336 bytes de dados. 246 Acesso aleatório no CD-ROM Difícil. Move cabeça para posição aproximada. Define velocidade correta. Lê endereço. Ajusta para local solicitado. (Boceja!) 247 CD-ROM – prós e contras Grande capacidade (?). Fácil de produzir em massa. Removível. Robusto. Caro para pequenas quantidades. Lento. Somente de leitura. 248 Outro armazenamento óptico CD-Recordable (CD-R): WORM (Write Once Read Many). Agora com preço acessível. Compatível com unidades de CD-ROM. CD-RW: Apagável. Ficando mais barato. Em grande parte compatível com unidade de CD- ROM. Mudança de fase: Material tem duas refletividades diferentes em diferentes estados de fase. 249 DVD Digital Video Disk: Usado para indicar um player para filmes. Só toca discos de vídeo. Digital Versatile Disk: Usado para indicar uma unidade de computador. Lerá discos de computador e tocará discos de vídeo. Multicamadas. Capacidade “muito alta” (4,7 G por camada). Filme de tamanho completo em único disco. Usando compactação MPEG. Finalmente padronizado. Filmes transportam codificação regional. Players só tocam filmes da região correta. 250 DVD – gravável Muito trabalho com padrões. Unidades de DVD de primeira geração podem não ler discos DVD-W de primeira geração. Unidades de DVD de primeira geração podem não ler discos CD-RW. Hoje: Versões oficiais DVD-Forum DVD-R DVD-RW DVD+RW Alliance DVD+R DVD+RW 251 Discos ópticos de alta definição Projetados para vídeos de alta definição. Capacidade muito mais alta que DVD. Laser com comprimento de onda mais curto. Faixa do azul violeta. Sulcos menores. HD-DVD (Mórreu!): 15 GB de único lado, única camada. Blu-ray: Camada de dados mais próxima do laser. Foco mais estreito, menos distorção, sulcos menores. 25 GB em única camada ou 50 GB em dupla camada (DL – Double Layer) Disponível para apenas leitura (BD-ROM), gravável uma vez (BR-R) e regravável (BR-RE). 252 Características da memória óptica 253 Fita magnética Acesso serial. Lenta. Muito barata. Backup e arquivamento. Unidades de fita Linear Tape Open (LTO). Desenvolvida no final da década de 1990. Alternativa de fonte aberto para os diversos sistemas de fita patenteados. 254 Unidades de fita Linear Tape Open (LTO) 255 LTO-1 LTO-2 LTO-3 LTO-4 LTO-5 LTO-6 LTO-7 LTO-8 LTO-9 LTO-10 Ano de lançamento 2000 2003 2005 2007 2010 2012 2015 TBA TBA TBA Capacidade Nativa 100 GB 200 GB 400 GB 800 GB 1.5 TB 2.5 TB 6.0 TB 12.8 TB 26 TB 48 TB Velocidade máxima sem compressão (MB/s) 20 40 80 120 140 160 300 427 708 1100 Aceita compressão de dados? Sim, "2:1" Sim, "2.5:1" Planejado (futuro), "2.5:1" Aceita WORM (Write once read many)? Não Yes Planejado (futuro) Aceita criptografia? Não Yes Planejado (futuro) Aceita particionamento? Não (1) Sim (2) Sim (4) Planejado (futuro) Principais pontos estudados Método de acesso A memória do computador é organizada em hierarquia. Registradores Cache(s) Memória principal (RAM) Memória externa/secundária HD, Discos Opticos, Fita, etc. Hierarquia Nível alto = alto custo, capacidade menor, alta velocidade (menor tempo de acesso). Nível baixo = baixo custo, capacidade maior, baixa velocidade (maior tempo de acesso). 256 Principais pontos estudados Memória cache: Tentativa de manter os dados mais acessados pelo processador. Possui um ou mais níveis. Tipos de RAM Dinâmica (DRAM) = Memória Principal Estática (SRAM) = Memória Cache Discos magnéticos (HD’s): Componentes mais importantes da memória externa. RAID: Técnica com múltiplos discos a fim de atingir maior confiabilidade e/ou velocidade. Memória Flash e SSD’s Armazenamento Óptico CD, DVD, Blu-ray, etc... 257 Entrada/Saída Um overview das diversas tecnologias de E/S modernas Introdução O conjunto de módulos de E/S é o terceiro elemento chave de um sistema de computação, depois do processador e memória. Cada módulo se conecta ao barramento do sistema ou comutador
Compartilhar