Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura de Computadores (ARQI1) ADS171 Aula 07: Memória Conceito Arquitetura Von Neummann: código (programa) armazenado em memória: o código é buscado (lido) e executado, repetindo o ciclo até o fim do programa. Classificação básica: - primária ou principal: aquela que se encontra dentro da CPU; - secundária: formada por outros dispositivos de armazenamento (discos fixos, unidades de backup, pendrives, etc...). Finalidade: armazenar dados, de forma temporária, e programas, estes de forma temporária ou permanente. A princípio, podemos guardar dados e programas em qualquer parte da memória, sem distinção. Operações básicas A memória é composta, logicamente falando, de posições ou endereços, onde, em cada endereço pode ser armazenado um byte, um valor de 0 a 255. A quantidade de endereços vai depender do quanto de memória nós disponibilizamos na CPU e de quanto o processador poderá manipular. Pode-se realizar duas operações em cada endereço de memória: ler ou escrever um dado. Logicamente, isto vai depender também do tipo de memória envolvido (se permite escrita ou não). Uma operação de leitura é um processo não destrutível: lê-se o conteúdo de um determinado endereço de memória e este não é alterado ou apagado. Já uma operação de escrita é um processo destrutivo: grava-se um dado em um determinado endereço, sendo o dado anterior perdido, sobreposto pelo novo. Níveis de memória Tipos básicos ROM, sigla de Read Only Memory, memória apenas de leitura. Tal tipo de memória tem como características principais, não permitir operações de escrita e não perder seu conteúdo após ser desenergizada (não-volátil). RAM, sigla de Random Access Memory, memória de acesso randômico (aleatório). Também conhecida como memória de escrita e leitura, tendo como características principais podermos efetuar tanto escrita como leitura, porém, é volátil, ou seja, perde seu conteúdo quando não energizada (à exceção das RAM não-voláteis). ROM ROM A memória ROM pode ser gravada (escrita) durante o processo de fabricação, pelo próprio fabricante ou por processos eletrônicos. Atualmente, nos microcomputadores compatíveis com o padrão PC, a memória ROM contidas nestes tem três programas básicos, conhecidos também por firmware: ROM • BIOS (ou a BIOS): Basic Input Output System: Sistema básico de entrada e saída. Contém pequenos trechos de programas (rotinas), os quais o processador executa quando necessita realizar algumas operações básicas de Entrada e Saída; • POST (Power-On Self Test): um programa de auto-teste que é automaticamente executado quando ligamos o microcomputador; Alem do auto-teste, inicializa os circuitos chipsets e carrega o sistema operacional da memória secundária para a RAM. Ao terminar estas tarefas, o controle passa para o sistema operacional; • SETUP: programa de configuração do hardware do microcomputador. Tipos de memória ROM Mask-ROM; PROM (Programmable ROM); EPROM (Erasable Programmable ROM); EEPROM ou E2PROM: (Electrically Erasable PROM) FLASH-ROM. RAM Onde são armazenados dados e programas no momento da execução, inclusive o Sistema Operacional, quando ele é carregado do disco rígido para a memória. Torna-se óbvia a afirmação de que o microcomputador não funcionaria sem memória RAM. O quanto de memória RAM necessitamos é uma pergunta que a resposta é quase sempre a mesma: quanto mais, melhor. Na verdade, alguns programas e sistemas operacionais necessitam de uma quantidade mínima de memória. RAM Devemos considerar também a aplicação a ser dada ao computador: aplicações gráficas, que manipulem grande quantidade de imagens de alta definição, necessitam de grande quantidade de memória para funcionar satisfatoriamente, pois quando a memória RAM fica sem espaço livre, o Sistema Operacional pode “enxergar” o disco rígido como uma extensão da memória, gravando e lendo dados deste (arquivo de troca ou swap), o que não é uma operação rápida. Tipos de RAM Estáticas: conhecidas também por SRAM (Static RAM), tem suas células de armazenamento formadas por circuitos eletrônicos digitais. Este tipo de memória RAM não necessita de refresh, isto é, o refrescamento, o reavivamento dos conteúdos de memória, pois os circuitos eletrônicos não perdem seu conteúdo com o tempo durante o funcionamento. São mais rápidas que o outro tipo, porém maiores e mais caras. Utilizadas em pequenas porções para memória cache. Tipos de RAM Dinâmicas: conhecidas por DRAM (de Dynamic RAM). Neste tipo de memória, suas células são formadas por pequenos capacitores, componentes eletrônicos que armazenam tensão elétrica. Porém, tais componentes se descarregam com o tempo, sendo necessário um reavivamento de seu conteúdo, conhecido por refresh. O refresh de memória é efetuado por um circuito chamado controlador de memória, presente no chipset da motherboard. Como no período de refresh a memória não pode ser acessada, apesar de ser um intervalo de tempo muito pequeno, o acesso a este tipo de memória é mais lento que o de uma SRAM. Entretanto, tais memórias são mais baratas, consomem menos energia e tem um tamanho menor que uma SRAM. Tipos de RAM Arquitetura de Computadores (ARQI1) ADS171 Aula 07: Memória Conceito Arquitetura Von Neummann: código (programa) armazenado em memória: o código é buscado (lido) e executado, repetindo o ciclo até o fim do programa. Classificação básica: - primária ou principal: aquela que se encontra dentro da CPU; - secundária: formada por outros dispositivos de armazenamento (discos fixos, unidades de backup, pendrives, etc...). Finalidade: armazenar dados, de forma temporária, e programas, estes de forma temporária ou permanente. A princípio, podemos guardar dados e programas em qualquer parte da memória, sem distinção. Operações básicas A memória é composta, logicamente falando, de posições ou endereços, onde, em cada endereço pode ser armazenado um byte, um valor de 0 a 255. A quantidade de endereços vai depender do quanto de memória nós disponibilizamos na CPU e de quanto o processador poderá manipular. Pode-se realizar duas operações em cada endereço de memória: ler ou escrever um dado. Logicamente, isto vai depender também do tipo de memória envolvido (se permite escrita ou não). Uma operação de leitura é um processo não destrutível: lê-se o conteúdo de um determinado endereço de memória e este não é alterado ou apagado. Já uma operação de escrita é um processo destrutivo: grava-se um dado em um determinado endereço, sendo o dado anterior perdido, sobreposto pelo novo. Níveis de memória Tipos básicos ROM, sigla de Read Only Memory, memória apenas de leitura. Tal tipo de memória tem como características principais, não permitir operações de escrita e não perder seu conteúdo após ser desenergizada (não-volátil). RAM, sigla de Random Access Memory, memória de acesso randômico (aleatório). Também conhecida como memória de escrita e leitura, tendo como características principais podermos efetuar tanto escrita como leitura, porém, é volátil, ou seja, perde seu conteúdo quando não energizada (à exceção das RAM não-voláteis). ROM ROM A memória ROM pode ser gravada (escrita) durante o processo de fabricação,pelo próprio fabricante ou por processos eletrônicos. Atualmente, nos microcomputadores compatíveis com o padrão PC, a memória ROM contidas nestes tem três programas básicos, conhecidos também por firmware: ROM • BIOS (ou a BIOS): Basic Input Output System: Sistema básico de entrada e saída. Contém pequenos trechos de programas (rotinas), os quais o processador executa quando necessita realizar algumas operações básicas de Entrada e Saída; • POST (Power-On Self Test): um programa de auto-teste que é automaticamente executado quando ligamos o microcomputador; Alem do auto-teste, inicializa os circuitos chipsets e carrega o sistema operacional da memória secundária para a RAM. Ao terminar estas tarefas, o controle passa para o sistema operacional; • SETUP: programa de configuração do hardware do microcomputador. Tipos de memória ROM Mask-ROM; PROM (Programmable ROM); EPROM (Erasable Programmable ROM); EEPROM ou E2PROM: (Electrically Erasable PROM) FLASH-ROM. RAM Onde são armazenados dados e programas no momento da execução, inclusive o Sistema Operacional, quando ele é carregado do disco rígido para a memória. Torna-se óbvia a afirmação de que o microcomputador não funcionaria sem memória RAM. O quanto de memória RAM necessitamos é uma pergunta que a resposta é quase sempre a mesma: quanto mais, melhor. Na verdade, alguns programas e sistemas operacionais necessitam de uma quantidade mínima de memória. RAM Devemos considerar também a aplicação a ser dada ao computador: aplicações gráficas, que manipulem grande quantidade de imagens de alta definição, necessitam de grande quantidade de memória para funcionar satisfatoriamente, pois quando a memória RAM fica sem espaço livre, o Sistema Operacional pode “enxergar” o disco rígido como uma extensão da memória, gravando e lendo dados deste (arquivo de troca ou swap), o que não é uma operação rápida. Tipos de RAM Estáticas: conhecidas também por SRAM (Static RAM), tem suas células de armazenamento formadas por circuitos eletrônicos digitais. Este tipo de memória RAM não necessita de refresh, isto é, o refrescamento, o reavivamento dos conteúdos de memória, pois os circuitos eletrônicos não perdem seu conteúdo com o tempo durante o funcionamento. São mais rápidas que o outro tipo, porém maiores e mais caras. Utilizadas em pequenas porções para memória cache. Tipos de RAM Dinâmicas: conhecidas por DRAM (de Dynamic RAM). Neste tipo de memória, suas células são formadas por pequenos capacitores, componentes eletrônicos que armazenam tensão elétrica. Porém, tais componentes se descarregam com o tempo, sendo necessário um reavivamento de seu conteúdo, conhecido por refresh. O refresh de memória é efetuado por um circuito chamado controlador de memória, presente no chipset da motherboard. Como no período de refresh a memória não pode ser acessada, apesar de ser um intervalo de tempo muito pequeno, o acesso a este tipo de memória é mais lento que o de uma SRAM. Entretanto, tais memórias são mais baratas, consomem menos energia e tem um tamanho menor que uma SRAM. Funcionamento da RAM dinâmica Dentro de uma memória RAM, as células de armazenamento (onde se armazenam os bits) são formadas por pequenos capacitores – componentes eletrônicos que retém por um determinado tempo, uma carga elétrica. Tais capacitores são montados dentro da memória em um arranjo semelhante à uma matriz, com linhas e colunas. No momento em que o processador quer efetuar uma operação, por exemplo, leitura, ele coloca no barramento de endereços o endereço desejado e no barramento de controle um sinal que deseja efetuar uma operação de leitura da memória. O endereço e os sinais são recebidos pelo circuito controlador de barramento (ponte norte). Presente neste circuito está o controlador de memória, que divide o endereço recebido em duas partes: parte alta e parte baixa. Funcionamento da RAM dinâmica A parte alta selecionará uma linha desta matriz e a parte baixa selecionará a coluna. Entre o controlador de memória e o banco de memória há um barramento chamado de barramento de memória. É neste barramento que seguem as duas partes do endereço. Seguem, em conjunto com os endereços, dois sinais: o RAS (Row Address Strobe) e o CAS (Column Address Strobe), indicando, respectivamente, que a parte do endereço fornecida é para selecionar linha ou coluna. Teremos, então a seguinte seqüência: Funcionamento da RAM dinâmica Dentro de uma memória RAM, as células de armazenamento (onde se armazenam os bits) são formadas por pequenos capacitores – componentes eletrônicos que retém por um determinado tempo, uma carga elétrica. Tais capacitores são montados dentro da memória em um arranjo semelhante à uma matriz, com linhas e colunas. No momento em que o processador quer efetuar uma operação, por exemplo, leitura, ele coloca no barramento de endereços o endereço desejado e no barramento de controle um sinal que deseja efetuar uma operação de leitura da memória. O endereço e os sinais são recebidos pelo circuito controlador de barramento (ponte norte). Presente neste circuito está o controlador de memória, que divide o endereço recebido em duas partes: parte alta e parte baixa. Funcionamento da RAM dinâmica A parte alta selecionará uma linha desta matriz e a parte baixa selecionará a coluna. Entre o controlador de memória e o banco de memória há um barramento chamado de barramento de memória. É neste barramento que seguem as duas partes do endereço. Seguem, em conjunto com os endereços, dois sinais: o RAS (Row Address Strobe) e o CAS (Column Address Strobe), indicando, respectivamente, que a parte do endereço fornecida é para selecionar linha ou coluna. Teremos, então a seguinte seqüência: Funcionamento da RAM dinâmica 1. O processador coloca no barramento de endereços o endereço e o sinal de leitura; 2. O controlador de memória divide o endereço, colocando a parte alta no barramento de memória e aciona o sinal RAS; 3. Ainda com o sinal RAS acionado, a parte baixa é colocada no barramento de memória e o sinal CAS é acionado; 4. Os sinais RAS e CAS são desacionados, e o dado solicitado é colocado no barramento de memória, que por sua vez é colocado no barramento de dados pelo controlador de memória. Funcionamento da RAM dinâmica Tempo e ciclo de acesso Tempo de acesso é o intervalo de tempo, dado em segundos, entre o recebimento do sinal RAS pelo banco de memória e a entrega ou armazenamento do dado. Também chamado de tRAC. É uma característica física das memórias, determinado pelo processo de construção desta. Normalmente, é fornecido em nanosegundos (bilhionésimos de segundos). O tempo de acesso deve ser compatível com o clock do barramento, para que o processador não fique esperando muito tempo pelo término da operação, causando uma queda de performance. Nos chips de memória DRAM, há estampado, de alguma forma, o tempo de acesso: .6 ou –60 ou 60 para simbolizar 60 ns (nanosegundos) por exemplo. SRAMs tem, atualmente, tempos de acesso na casa dos 5 ns. Tempo e ciclo de acesso O processador gasta para acessar a memória, dois ciclos de clock. Para se ter uma idéia deste período, chamado de ciclo de acesso, calculemos o tempo de um sinal de clock, sendo um período: o inverso da freqüência. A freqüência neste caso será a do barramento local, não ado microprocessador. Um microcomputador cuja freqüência (FSB) seja de 100 MHz, por exemplo terá o ciclo de clock calculado da seguinte forma: Ou seja, 10 nanosegundos. Tempo e ciclo de acesso Como gasta 2 ciclos de clock, o tempo de acesso será de 20 nanosegundos. Para que a memória, mais lenta do que esse valor, possa trabalhar em uma velocidade destas, são acrescentados ao ciclo de acesso, ciclos extras, chamados de wait states. Isto faz com que o processador espere um tempo a mais para que a memória responda. Podemos incluir, caso seja necessário, mais de um ciclo wait states, para que o tempo de acesso da memória seja compatível com o tempo do ciclo de acesso. A adição de wait states faz com que a performance do processador caia, visto que durante este ciclo, ele não fará nenhuma operação. Para contornar este problema, surgiu o cache de memória, formado por memórias RAM estáticas, o qual representa uma pequena porção da memória RAM, porém sem a necessidade de wait states. SDRAM Synchronous Dynamic RAM é uma memória RAM que é sincronizada com o barramento do sistema, ou, mais precisamente, com a transição de subida do clock , permite uma operação mais rápida, pois a CPU saberá exatamente quando os dados estarão disponíveis. Diferente das memórias DRAM clássicas, que possuem uma interface assíncrona, e por isto respondem tão rápido quanto possível, a SDRAM possui uma interface síncrona, significando que ela espera pelo sinal do clock antes de responder às entradas de comando e é portanto sincronizada com o barramento do sistema do computador. SDRAM A mudança mais significativa, e a razão pela qual a SDRAM suplantou a RAM assíncrona, é o suporte a múltiplos bancos internos dentro de um chip DRAM: usando uns poucos bits de "endereço do banco" que acompanham cada comando, um segundo banco pode ser ativado e começar a ler dados enquanto a leitura do primeiro banco estiver em progresso. Por alternar os bancos, um dispositivo SDRAM pode manter o barramento de dados continuamente ocupado. DDR O tipo de memória instalada nos módulos DDR é o SDRAM, mas o arranjo (posicionamento dos chips nas peças) dessas memórias funciona de acordo com o padrão DIMM. A sigla vem de Dual Inline Memory Module (Módulo de Memória em Linha Dupla). Esse termo é usado para designar que um determinado componente tem chips instalados dos dois lados do módulo. Na prática, isso significa que as memórias DIMM trabalham com 64 bits de dados. Portanto, esse padrão garante o dobro de dados e consequentemente, na teoria, pode significa que temos o dobro do desempenho. Costumeiramente, chamamos os módulos de memória DDR apenas pela sigla DDR, mas o correto (e mais completo) seria usar a designação DDR- SDRAM DIMM. . DDR A sigla DDR vem de Double-Data-Rate (Taxa Dupla de Transferência). A memória DDR permite que dois dados sejam transferidos ao mesmo tempo. Assim, basicamente, uma DDR-SDRAM é uma memória do tipo SDRAM que permite que dois dados sejam transferidos no mesmo ciclo de clock. Um módulo de memória do tipo DDR-SDRAM é, teoricamente, duas vezes mais rápido que um SDRAM comum. DDR2 A taxa de transferência por ciclo de clock foram dobradas, fornecendo 4 vezes mais dados por ciclo, mantendo praticamente o mesmo tempo de acesso inicial, o que resulta em ótimos resultados em aplicativos que processam uma uma grande quantidade de leitura sequencial. DDR3 As DDR3 dobram as taxas das DDR2: Cache de memória ou memórica cache Pequena quantidade RAM estática, de alto desempenho, que armazena uma cópia dos últimos dados acessados, aumentando a velocidade do processamento. Em um sistema com cache todos os dados são armazenados na memória principal e apenas alguns são duplicados no cachê, pois o mesmo é muito menor do que a memória principal. O tamanho menor provém do fato de o cache ser construído com RAMs estáticas, mais caras. Cache de memória ou memórica cache Quando um dado é solicitado da memória, seja este um dado ou uma instrução, ele será procurado primeiramente no cache. Se esta dado for encontrado no cache dizemos que houve um acerto (hit). Caso contrário, será necessário o acesso a memória principal, mais lento. Um parâmetro para se medir a eficiência do cache implementado é o “hit rate” que é definido como a porcentagem de acertos em relação ao número total de acessos ao cache. O “hit rate” é afetado diretamente pelo tamanho do cache, o tamanho dos blocos transferidos para ele, sua forma de implementação e indiretamente pelo programa que esta sendo executado. . Tipos de cache • Cache de nível 1, também conhecido por L1 (L de level): interno ao processador, normalmente dividido em cache de instruções e cache de dados como o cache de nível 2 (L2) são internos, havendo também a implementação de caches de nível 3 (L3). O cachê também pode ser unificado. • Cache de nível 2, ou L2: complementar ao L1; • Cache de nível 3, ou L3: complementar ao L2. . Exemplo de cache Intel Core i7 Quad Core -L1 em dois blocos de 32 KB: um bloco para dados, outro bloco para instruções; -L2: 512 KB ou 1 MB, divididos em 4 módulos, uma para cada núcleo; -L3: de 4 a 15 MB, compartilhado entre os núcleos. Atualização de cache Há duas formas de o controlador do cachê atualizar seu conteúdo com os dados/instruções recentemente acessados: a) Sistemas “Write-Through”: O controlador copia o dado para o cachê e para a memória principal A memória principal deste modo, sempre conterá um dado atualizado. A implementação deste sistema é simples, mas sua performance é reduzida devido ao tempo gasto para a escrita do dado na memória principal. Atualização de cache b) Sistemas “Write-Back”: Mais complexo. Cada bloco no cache é associado a um bit. O estado deste bit é alterado quando ocorre uma nova escrita no cache, sendo, portanto, mais atual que a memória principal. Quando não ocorrer um acerto (hit), antes do dado proveniente da memória principal ser escrito no cache, o controlador verifica se o bloco que contém este dado foi alterado. Caso tenha sido, o respectivo bloco é gravado na memória principal. A atualização dos dados nos sistemas “Write-Back” é mais rápida que nos sistemas “Write-Through” porque o número de vezes que um bloco alterado é copiado na memória principal é menor que o número de acesso de escrita. Leitura e escrita no cache. Organização de memória A memória que o processador consegue acessar através de seus barramentos é chamada de memória física. Ela é organizada em endereços, cada um podendo armazenar um byte (8 bits). Cada endereço na memória é chamado de endereço físico. A faixa de endereços físicos vai de 0 até o suportado pelo processador, por exemplo, 4 ou 64 gigabytes. Como o processador trabalha com modelos de memórias, os programas não acessam diretamente o endereço físico. O acesso a memória é feito através de três modelo: flat, segmentado ou modo de endereçamento real Organização de memória Flat No modelo flat, a memória é acessada como um espaço contínuo, chamado espaço linear de endereçamento. Cada byte armazenado na memória pode ser acessado por um endereço de forma linear, chamado deendereço linear. Organização de memória Segmentado No modelo segmentado, a memória é acessada em grupos independentes de espaços de endereços, chamados de segmentos. Quando este modelo é utilizado, código (programa), dados e outras informações estão normalmente contidos em segmentos diferentes. Para se acessar um determinado endereço dentro de um segmento, o processador trabalha com o endereço lógico, que consiste em duas partes: o seletor de segmento e o offset. O seletor de segmento indica qual segmento será acessado e o offset indica qual endereço, dentro do segmento selecionado, será acessado. O processador pode endereçar 16.383 segmentos de diferentes tamanhos e tipos. A conversão entre endereço lógico para endereço físico é feita de forma transparente para a aplicação. Tal modelo traz segurança entre as aplicações e alta performance de execução Organização de memória Real O modelo de endereçamento real, o processador se comporta como um 8086/88, acessando segmentos de tamanho fixo, de 64 kilobytes e tendo também um offset para indicar o endereço dentro do segmento. O espaço máximo de memória neste caso é de 1 Megabyte. A conversão do endereço lógico (segmento e offset) para endereço físico é feita de forma transparente para a aplicação e é feito da seguinte forma: Organização de memória
Compartilhar