Organização e Arquitetura de Computadores Memórias Tópico: 09 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura da bibliografia básica. Os professores da disciplina irão focar alguns dos tópicos da bibliografia assim como poderão adicionar alguns detalhes não presentes na bibliografia, com base em suas experiências profissionais. O conteúdo de slides com o título “Comentário” seguido de um texto, se refere a comentários adicionais ao slide cujo texto indica e tem por objetivo incluir alguma informação adicional aos conteúdo do slide correspondente. Bibliografia básica: PATTERSON, A.D.E.; HENNESSY, L.J.. Organização e projetos de computadores: a interface hardware/software. São Paulo: Campus, 2005.; MONTEIRO, Mário A.. Introdução à organização de computadores. 5.ed. Rio de Janeiro: LTC, 2007. STALLINGS, William. Arquitetura e organização de computadores : projeto para o desempenho. São Paulo: Pearson Education, 2005. 3 CONCEITOS BÁSICOS Em computação, memórias são locais físicos onde são guardados dados e programas de computador. Os dados e programas são transformados em bits para serem guardados em memórias. Os bits são reunidos em bytes, registros lógicos, registros físicos e arquivos. Os arquivos têm uma denominação única dentro da árvore hierárquica de organização dos mesmos. 4 O PROCESSADOR E A MEMÓRIA De acordo com o Modelo de Von Neumann, o processador deve ter acesso direto à memória onde estão os dados e os programas; Isso implica que a situação ideal é a de se ter uma memória única onde seriam guardados todos os dados e programas; Essa solução é economicamente inviável, pois seu custo seria muito elevado; Devido às características físicas das memórias, essa solução também não seria prática, como veremos brevemente. Como organizar a memória? 5 ANALOGIA ENTRE A BANCADA E O ARMÁRIO DE FERRAMENTAS Suponha que você conserta equipamentos e tem uma bancada com todas as ferramentas de uso mais freqüente; Como a bancada tem capacidade reduzida, você também tem um armário de ferramentas, com capacidade bem maior, onde você guarda as ferramentas de uso menos freqüente; O tempo de acesso às ferramentas que estão na bancada é muito menor que o tempo de acesso às ferramentas que estão no armário; Se você precisar de uma ferramenta que esteja no armário, você vai até ele, pega a ferramenta e a coloca na bancada para ser usada. Note que o armário é bem mais barato que uma bancada de ferramentas, o que dificulta a construção de bancadas de ferramentas de grande capacidade. 6 PRINCÍPIO DA LOCALIDADE É evidente que o ideal é se ter todas as ferramentas necessárias sempre localizadas na bancada, pois isso diminui o tempo de acesso às ferramentas e economiza os esforços para ter acesso às ferramentas. Chamamos esse princípio de LOCALIDADE; Se você precisa de uma chave de boca de 6 mm que está no armário, você a pega e a deixa na bancada após usá-la, pois, muito provavelmente, você precisará dela em um breve período de tempo. Esse é um princípio que é conhecido como LOCALIDADE TEMPORAL (note a analogia com dados em tabelas e arrays, por exemplo); Já que você foi até o armário para pegar a chave de boca de 6 mm, você aproveita e pega as chaves de boca de tamanho aproximadamente igual (de 4, 5, 7 e 8 mm), pois é provável que você as necessite em curto espaço de tempo. Chamados esse princípio de LOCALIDADE ESPACIAL (note a analogia com instruções de programas em loops e outras repetições). 7 HIERARQUIA DE MEMÓRIAS Um processador tem uma velocidade que é muitas vezes superior aos tempos de acesso das memórias, mesmo as mais rápidas, como veremos em breve; Quanto menor o tempo de acesso à memória, menor será o tempo perdido pelo processador na espera de um acesso à memória, o que tem grande impacto no desempenho do sistema de computação. Todo computador é constituído de uma série de memórias, construídas com diversas tecnologias e com diferentes características, que apresentam capacidade, tempo de acesso e custos diferentes. Se o processador precisa de um dado ou de uma instrução de um programa, uma cópia do dado ou da instrução é colocada em uma memória mais rápida, que normalmente é a mais cara e a de menor capacidade. Pelos princípios de Localidade Temporal e Espacial, grande parte dos acessos são realizados em memórias mais rápidas, o que aumenta o desempenho do sistema de computação. 8 CONSTITUIÇÃO DAS MEMÓRIAS ARQ QUI TET URA 000 COM 001 PUT 010 ADO 011 RES 100 101 110 111 As memórias são divididas em células; Cada célula tem um endereço próprio; Cada célula tem um conteúdo próprio. (Memórias Magnéticas e Ópticas usam nomenclatura diferente) 9 EQUAÇÕES BÁSICAS Seja T o tamanho total de memória; Seja N o número de células de uma memória; Seja M o tamanho de cada célula; Seja E o número de bits de cada endereço; Temos: T = N x M E T = 2 x M E Então: N x M = 2 x M; E Conseqüentemente: N = 2 10 CÁLCULO DA CAPACIDADE Exemplo: N = 8; M = 3; T = 8 x 3 = 24; OU E = 3; T = 23 x 3 = 8 x 3 = 24 É interessante notar que a unidade da capacidade (bits, bytes etc.) depende da unidade da célula (bits, bytes etc.). 11 CARACTERÍSTICAS DA MEMÓRIAS Para se examinar os diferentes tipos de memória, precisamos examinálas sob diferentes características: Tempo de Acesso – é o tempo necessário para se ler ou escrever um dado na memória, normalmente dado em ns (10-9 segundos); quanto menor o tempo de acesso (memórias mais rápidas), menor será o tempo de espera do processador para obter um dado ou uma instrução; Capacidade – é o número máximo de dados que podem ser armazenados na memória; usamos várias unidades tais como bits, bytes, células, palavras etc.; quanto maior a capacidade maior será a probabilidade de localidade, o que significa que a tendência é usar a memória de maior capacidade, aumentando o desempenho do sistema de computação como um todo; Custo - é o valor a ser pago para cada bit da memória; evidentemente, quanto menor o custo maior a viabilidade de se utilizar essa memória. 12 DETALHES ADICIONAIS Endereço – o endereço da memória não é registrado em nenhum dispositivo; todas as memórias possuem um dispositivo de hardware específico que traduz o endereço fornecido em uma localização da memória onde será lido ou escrito o dado ou a instrução do programa; Célula – é a menor porção da memória que tem um endereço próprio; Palavra – é a quantidade de memória que é transferida em uma operação de leitura; Volatilidade – certas memórias só retem informações enquanto forem alimentadas de energia elétrica; essa característica depende da sua tecnologia de fabricação, como será visto posteriormente; Temporariedade – é o tempo que uma informação deve ser retida; certas informações são muito variáveis (muito voláteis) o que exige memórias de tempo de acesso pequeno, ao contrário de outras informações que pouco variam, podendo ser guardadas em memórias mais lentas. (Para memórias magnéticas e ópticas usamos outra nomenclatura). 13 OPERAÇÕES NAS MEMÓRIAS Em uma memória qualquer, podemos executar somente dois tipos de operações: 1. Leitura de um dado; 2. Escrita de um dado. Em uma operação de leitura, são lidos todos os dados de uma palavra, aproveitando-se da Localidade Espacial; Em uma operação de escrita, são atualizados todos os bits de uma célula da memória. Exemplo: No Pentium IV, cada célula tem o tamanho de 1 byte (8bits) e a palavra tem o tamanho de 64 bits. Assim, na leitura da memória são lidos 64 bits em uma única operação de leitura e é atualizada apenas uma célula em uma operação de escrita. 14 FIGURA ILUSTRATIVA A figura a seguir mostra quais elementos do computador estão envolvidos em uma operação de leitura ou de escrita. Temos: MP – Memória Principal, que é a memória onde estão os dados e os programas a serem utilizados pela UCP; UCP – Unidade Central de Processamento, que já vimos anteriormente; UC – Unidade de Controle, que é a parte central da UCP, cujos detalhes serão vistos em aula posterior; RDM – Registrador de Dados da Memória, que é um registrador que tem o tamanho de uma palavra, onde ficam transitoriamente os dados a serem gravados ou os dados que acabaram de ser lidos; REM – Registrador de Endereços da Memória, que é um registrador em cujo conteúdo encontramos o endereço da célula que vai ser lida ou atualizada. 15 COMUNICAÇÃO UCP/MEMÓRIA A comunicação entre a UCP e a Memória (e periféricos) é feita por fios por onde circulam sinais elétricos, que são chamados de barramentos. Temos os seguintes barramentos: Barramento de Controle, que é uma linha de comunicação pela qual a UC comanda todos os componentes do sistema de computação; enviando sinais elétricos adequados; Barramento de Endereços, que é uma linha de comunicação pela qual os endereços serão enviados da UCP para a memória (e periféricos, como veremos posteriormente); Barramento de Dados, onde são enviados ou recebidos os dados a serem escritos ou lidos, respectivamente. Na figura também está mostrado o Controlador da memória, que recebe os sinais elétricos dos barramentos, interpreta-os e executa as operações de leitura ou gravação 16 ESTRUTURA DA MEMÓRIA Como já vimos, a MP – Memória Principal, é constituída de bits que são agrupados em células. O tamanho de cada célula varia de computador para computador, mas, modernamente, há uma tendência de se ter células de 8 bits (um byte), como por exemplo no Pentium IV. Cada célula tem um endereço próprio; As operações de leitura são feitas por palavras. O tamanho da palavra também varia de computador para computador, mas quanto maior for esse valor, maior será o desempenho do sistema de computação. No Pentium IV a palavra tem 64 bits. O REM – Registrador de Endereços da Memória - deve ter um tamanho que permita o endereçamento de todas as células obedecendo a equação 2E , onde E é o tamanho do REM em bits. Por exemplo, se o REM tiver 32 bits, a MP só poderá ter 4.294.967.296 células (4G). O RDM – Registrador de Dados da Memória deve ter sempre o tamanho de uma palavra. 17 ESTRUTURA PARCIAL UCP/MP UCP UC RDM MP REM CONTROLADOR Barramento de Controle Barramento de Endereços Barramento de Dados 18 CICLO DE LEITURA (“READ”) 19 CICLO DE ESCRITA (“WRITE”) tACC 20 TIPOS DE ACESSO ÀS MEMÓRIAS Podemos acessar as memórias de duas maneiras: Seqüencialmente, em fitas magnéticas, CD. DVD etc.: Quando só podemos ler um arquivo do seu início até o seu fim; Só podemos escrever no arquivo após o último registro gravado, se houver espaço suficiente na memória; Aleatoriamente, em memórias RAM, cache etc.: Podemos ler uma célula qualquer, aleatoriamente, dentro de toda a memória (em inglês, aleatório é “random”, daí o nome de memória randômica – RAM, que usamos); Podemos modificar (escrever) em uma célula qualquer dentro da memória, mas os acréscimos são feitos sempre ao final do arquivo. Observações: Memórias que permitem acesso aleatório também permitem acesso seqüencial; o inverso não é verdadeiro; O conceito de célula varia conforme o tipo de memória e recebe diversos nomes diferentes (por exemplo, setores em HD) 21 TECNOLOGIAS DAS MEMÓRIAS São três as tecnologias básicas de construção das memórias: a. Memórias de Semicondutores – constituídas de transistores, capacitores e resistores, em circuitos eletrônicos específicos; podem ser memórias estáticas, memórias dinâmicas, memórias somente para leitura, CMOS (Complementary Metal Oxide Semiconductor) e memórias Flash; b. Memórias Magnéticas – constituídas de um suporte neutro (vidro, alumínio, plástico etc.) recoberto de uma camada de óxido de ferro, onde a informação é gravada pela construção de pequenos ímãs que representam os valores zero e um, de acordo com a polaridade dos ímãs, em uma tecnologia semelhante às fitas cassete e fitas de vídeo; os principais exemplos são o HD (Hard Disk ou Disco Magnético), os discos flexíveis e as fitas magnéticas; c. Memórias Ópticas – constituídas de materiais que são gravados por raios de luz e que, quando lidos, refletem a luz de maneiras diferentes, produzindo os bits zero e um; os principais exemplos são o CD (vários tipos) e o DVD (também de vários tipos) e Blu Ray. 22 MEMÓRIAS DE SEMICONDUTORES Temos várias tecnologias: Memórias Estáticas – SRAM – Static Random Access Memory – são memórias construídas apenas por elementos eletrônicos, empregando-se de 4 a 8 transistores para cada bit da memória. É o tipo de memória mais rápida que existe, porém é a mais cara; Memórias Dinâmicas – DRAM – Dynamic Random Access Memory – são memórias constituídas de apenas um capacitor e um transistor para cada bit da memória; pois o capacitor retém a informação (zero ou um) por um curto período de tempo e o transistor comanda a leitura e gravação de cada bit; porque retêm a informação por curtos períodos de tempo, elas devem ser regravadas constantemente em uma operação chamada de REFRESH; Memória CMOS – Complementary Metal Oxide Semiconductor – que são memórias de semicondutores que consomem uma quantidade muito pequena de energia e, por isso, podem ser alimentadas por baterias de pequena capacidade e são utilizadas em celulares, máquinas de calcular, relógios etc.; Memórias não Voláteis – serão vistas em uma aula futura; 23 MEMÓRIAS MAGNÉTICAS São de três tipos diferentes: Disco Magnético – também conhecido com Disco Rígido ou Hard Disk (HD), que é constituído de um ou mais discos de alumínio ou vidro, que são recobertos por uma camada de óxido de ferro, onde são gravados os bits de informação. A leitura e gravação são feitas por um braço que desloca em toda a superfície do disco, Haverá uma aula específica sobre HD; Disquetes – é uma tecnologia ultrapassada e muito semelhante ao HD. A diferença é que têm uma capacidade muito menor que o HD e que são removíveis, sendo muito utilizados no passado para transferir dados de um computador para outro; não haverá maiores discussões sobre disquetes; Fitas Magnéticas – é uma tecnologia que utiliza uma fita de plástico recoberta de óxido de ferro. Os bits são gravados em uma cabeça de gravação, com vários gravadores, que produzem trilhas de dados para serem lidos ou gravados. 24 MEMÓRIAS ÓPTICAS As memórias ópticas são muito semelhantes. Todas elas são feitas pela gravação física em um disco de plástico, produzindo saliências e depressões. Para a leitura, um raio de luz é enviado ao disco de plástico e sua reflexão é modificada pelas saliências e depressões, caracterizando os bits zero e um. A diferença entre eles está na qualidade da gravação e leitura, o que significa maior capacidade e menor tempo de acesso. Temos os seguintes tipos: Compact Disk – CD – é o modelo mais antigo desse tipo de memória. Existem vários tipos, tais como CD-ROM (Compact Disk Read Only Memory), CD-R, CD-RW. Digital Video Disk (ou Digital Versatile Disk) – é muito semelhante ao CD, porém com maior capacidade e menor tempo de acesso; Blu Ray – uma evolução do DVD. Haverá uma aula específica sobre esse tipo de memória 25 ANÁLISE DOS TIPOS DE MEMÓRIAS Uma breve análise dos diversos tipos de memória nos indica as seguintes características básicas: As memórias de semicondutores são as mais rápidas e as únicas que podem ser conectadas diretamente com os processadores, pois, apesar de serem mais lentas que os processadores, trazem um impacto relativamente pequeno no desempenho do sistema de computação; No entanto, são as mais caras e, conseqüentemente, são construídas em modelos de pequena capacidade; podem ser voláteis ou não voláteis; As memórias magnéticas são muito mais lentas que as memórias de semicondutores, porém o custo por bit desse tipo de memória é muito menor que os das memórias de semicondutores. Outra característica delas é o fato de serem não voláteis; As memórias ópticas são as que têm o menor custo por bit e têm uma capacidade compatível com as memórias magnéticas. Também são não voláteis e têm a característica de serem removíveis. 26 HIERARQUIA GERAL DAS MEMÓRIAS Memórias Internas Armazenamento Externo Armazenamento de Segurança Registradores Memória Cache Memória Principal ROM HD CD DVD BLU RAY Fitas Magnéticas 27 VISÃO DA HIERARQUIA Com base nas informações sobre as características das memórias, diversos autores puderam construir uma hierarquia de memórias, aplicável a todos os tipos de computadores, do PC até os supercomputadores; há várias versões de diferentes hierarquias; As Memórias Internas, no pico da hierarquia, são elaboradas com semicondutores , são de alta velocidade, baixa capacidade e alto custo; Em direção à base da pirâmide, os custos diminuem, as capacidades aumentam e as velocidades diminuem; Para o PC, normalmente é utilizada uma outra hierarquia, mostrada a seguir. 28 HIERARQUIA DE MEMÓRIAS PARA PC Custo Alto Velocidade Alta Baixa Capacidade Registradores Memória Cache Memória Principal Memórias Magnéticas Custo Baixo Velocidade Baixa Alta Capacidade Memórias Ópticas Memória Secundária 29 REGISTRADORES São memórias muito rápidas e de pequena capacidade. São instaladas no interior da UCP e são utilizadas pela UC e pela UAL (que já vimos superficialmente em aulas anteriores); o tempo de acesso é da ordem de 0,5 ns; Normalmente, têm a capacidade igual a uma palavra; Têm um custo alto; São construídas com a tecnologia SRAM; Os registradores são de uso quase que exclusivo da UCP. A linguagem de máquina e a linguagem Assembly podem acessar os registradores para leitura ou carga dos mesmos, mas as operações com registradores são reservadas apenas para a UCP. Os registradores são uma ferramenta importante para o aumento do desempenho da UCP, como veremos em aulas futuras. O número de registradores em uma UCP varia conforme o tipo e o modelo. 30 MEMÓRIAS CACHE São memórias muito rápidas e que são usadas preferencialmente pela UCP para dados e programas. Seu tempo de acesso varia de 5 a 8 ns; Modernamente, as memórias cache têm capacidade de 2 a 4 Mbytes; São memórias muito caras, mas seu custo tem diminuído; são construídas com a tecnologia SRAM. As memórias cache usam os princípios de localidade temporal e localidade espacial para guardar dados e informações transitoriamente, A CPU só acessa um dado ou informação se eles estiverem na memória cache. Caso o dado ou instrução esteja na memória RAM, uma cópia é colocada na memória cache. Qualquer modificação na memória cache é copiada para a memória RAM. Se a capacidade da memória cache se esgotar e for necessário trazer mais dados ou instruções da memória RAM, isso é feito sobre os dados anteriores (normalmente os que estavam a mais tempo da memória cache), sem se preocupar em salvá-los, uma vez que já existe uma cópia deles na memória RAM 31 MEMÓRIAS RAM São memórias medianamente rápidas, com tempos de acesso que variam de 5 a 50 ns; Modernamente, usam-se memórias RAM de 2 a 4 Gbytes; São construídas com a tecnologia DRAM (em várias modalidades) e têm custo relativamente alto, A memória RAM é conhecida como a Memória Principal – MP – do computador pois todos os dados e programas devem ser carregados na MP para que a UCP tenha acesso a eles, o que é mandatório pelo modelo de von Neumann. Posteriormente, esses dados e informações podem ser transferidos para a memória cache na medida que a UCP precisa acessálos. Os periféricos de um computador não se comunicam entre si. Para tanto, mandam sempre os dados para a MP que providencia a comunicação com outros periféricos, se houver uma programação para tanto. Se a MP enche, usa-se o artifício de Memória Virtual para usar parte da memória magnética simulando extensão da MP 32 MEMÓRIAS MAGNÉTICAS São memórias relativamente muito lentas, sendo as mais rápidas com tempo de acesso de 5 a 20 ms (um ms equivale a 1.000.000 de ns); Têm capacidade muito grande; HD modernos chegam a ter 1Tbyte de capacidade (1Tbyte equivale a 1000 Gbytes); O custo por bit desse tipo de memória é muito pequeno em relação às memórias vistas anteriormente. Em PC, a memória magnética que é praticamente usada é o HD – Hard Disk – que será objeto de uma aula específica. A fita magnética é utilizada somente para backup de servidores. Os antigos discos flexíveis não são mais utilizados. Os pendrive são uma tecnologia mista de semicondutores e memória magnética, que adquiriu muita importância recentemente e que será objeto de estudo dentro da aula de interface USB. Os pendrive têm tido um aumento de capacidade considerável, existindo hoje pendrive com 128 Gbytes de capacidade. São de baixo custo e removíveis, o que abre muitas possibilidades de uso. 33 MEMÓRIAS ÓPTICAS São memórias lentas e de acesso apenas seqüencial; Sua capacidade varia de 700 Mbytes até 25 Gbytes; Seu custo é muito pequeno. As memórias ópticas têm a grande vantagem de serem removíveis. Com isso, elas se transformam em um grande auxiliar na guarda de informações e programas, principalmente de imagens e sons, Após 5 anos de gravados, podem apresentar perda de alguns bits, o que não é percebido para imagens e sons, mas é vital para dados. Há vários tipos de memórias ópticas e haverá uma aula específica para seu estudo. 34 USO DA HIERARQUIA DE MEMÓRIAS O uso racional da hierarquia de memórias leva a um aumento de eficiência dos computadores, uma diminuição de custos e um aumento da proteção dos dados, Para tanto, deve haver um misto de ações de hardware, software e administração; A influência do hardware está na escolha correta de um equipamento pois ele trará um conjunto de dispositivos que maximizarão o uso da hierarquia de memórias, principalmente na questão da memória cache e dos registradores; isso será discutido ao longo da matéria A influência do software está na escolha do Sistema Operacional, as linguagens de programação, os compiladores e os utilitários. Isso será visto pelos alunos durante toda a duração do curso; A influência da administração está no estudo da natureza e importância das informações e programas de uma organização, o que determinará o uso de memórias adequadas para sua guarda e utilização. Esse aspecto deverá ser objeto de acompanhamento durante toda a vida profissional dos estudantes.