DISPOSITIVOS DE MEMÓRIA Introdução A principal vantagem que um sistema digital apresenta sobre o analógico é o fato de ser capaz de armazenar facilmente uma grande quantidade de informação por períodos de tempo curtos ou longos. Essa característica torna-os bastante versáteis e adaptáveis a um grande número de situações. Para o armazenamento da informação, os circuitos digitais utilizam flipflops quanto registradores, que é um circuito eletrônico especial capaz de armazenar um bit de informação. Quando agrupados, eles adquirem a capacidade de armazenar informações estruturadas (dados ou instruções) recebendo nesse caso o nome de Registradores. Estes são elementos de memória de alta velocidade, empregados no armazenamento de informação durante o processo de execução de instruções pela unidade de controle da máquina, havendo uma constante movimentação de informações entre os registradores e os demais dispositivos componentes do sistema. As informações em sistemas digitais podem ser armazenadas em memórias a semicondutor bipolares, MOS, ou em memórias que utilizam capacitores como elementos básicos de armazenamento, em lugar dos flip-flops. Este último tipo de memória citado apresenta uma alta densidade de componentes, com consumo de energia extremamente baixo. As memórias a semicondutor são usadas como memória principal (interna) de um computador, onde é exigida uma velocidade de operação bastante alta. As memórias baseadas em semicondutor apresentam um custo muito alto tornando sua utilização não recomendada quando se necessita armazenar dados secundários que não serão processados pelo computador. Neste caso, usa-se dispositivos chamados memória de massa. Estes dispositivos são mais lentos que os empregados para armazenamento interno, porém apresentam uma melhor relação custo/benefício quando o assunto é o armazenamento de dados por tempo indeterminado. Os dispositivos de memória de massa mais populares são as fitas e os discos magnético. Página 1 TERMINOLOGIA Abaixo alguns dos termos e conceitos mais importantes para o estudo dos dispositivos e sistemas de memória. Célula de Memória: Dispositivo ou circuito elétrico usado para armazenar um único bit (0 ou 1). Como exemplos de células de memória, podemos citar o flip-flop, um capacitor, um ponto magnético em fita ou em disco. Palavra de Memória: Um grupo de bits (células) em memória que representa instruções ou dados. Por exemplo, um registrador constituído de oito flip-flops pode ser considerado uma memória armazenando uma palavra de oito bits. Byte: Termo usado para designar palavra de oito bits. Ele é constituído de oito bits, sendo este o tamanho da palavra da maioria das máquinas atuais. Capacidade: Uma forma de especificar armazenados em determinada memória. Endereço: memória. Operação de Leitura: Operação em que uma palavra binária armazenada em posição específica de memória (endereço) é identificada e transferida para outro dispositivo qualquer do sistema. Operação de Escrita: Operação na qual uma nova palavra é colocada em determinada posição de memória. Também chamada operação de armazenamento. Tempo de Acesso: Uma medida da velocidade do dispositivo de memória. É a quantidade de tempo necessária à efetivação de uma operação de leitura. Memória Volátil: Qualquer tipo de memória que necessite de energia elétrica para reter a informação armazenada. Se a energia for retirada, toda a informação armazenada na memória será perdida. Memória de Acesso Randômico (RAM): É um tipo de memória onde o tempo de acesso é constante para qualquer endereço de dados. A grande maioria das memórias a semicondutor e todas as de núcleo magnético são de acesso randômico. Memória de Acesso Seqüencial (SAM): Memória onde o tempo de acesso não é constante, mas dependente do endereço. A localização da informação é feito sempre de forma sequencial. Memória de Leitura/Escrita (RWM): Qualquer memória que possa ser lida ou escrita com igual facilidade. Memória de Leitura (ROM): É uma categoria de memórias baseadas em semicondutor projetadas para aplicações onde a taxa de operações de leitura é infinitamente mais alta do que as de escrita. Todas as ROMs Um número que identifica a quantos posição de bits uma podem ser palavra na Página 2 são não-voláteis e continuarão a reter a informação armazenada, mesmo quando não há fornecimento de energia. Dispositivos de Memória Estática: Dispositivos de memória a semicondutor nos quais as informações armazenadas permanecerão armazenadas enquanto houver energia elétrica aplicada à memória, sem que haja necessidade da informação ser periodicamente reescrita na memória. Dispositivos de Memória Dinâmica: Dispositivos de memória a semicondutor nos quais as informações armazenadas não permanecerão constantemente armazenadas, mesmo em presença da energia elétrica necessária à alimentação do circuito, a não ser que as informações sejam reescritas na memória com determinada freqüência. Memória Principal (interna): Serve para armazenar as instruções e os dados que estão sendo usados pelo processador. É a memória mais rápida do sistema de memória da máquina, sendo normalmente construída à base de semicondutores. Memória de Massa: Este tipo de memória é também chamado de auxiliar ou secundária, armazenando uma imensa quantidade de informação. Em geral, é bem mais lenta do que a memória principal, e é sempre nãovolátil. Fitas magnéticas e discos são os exemplos mais comuns deste tipo de memória. DESCRIÇÃO GERAL DA OPERAÇÃO DA MEMÓRIA Apesar das diferenças existentes na implementação de cada um dos tipos de memória, um certo conjunto de princípios básicos de operação permanece o mesmo para todos os sistemas de memória. Cada sistema requer um conjunto de tipos diferentes de linhas de entrada e saída para realizar as seguintes funções: Selecionar o endereço que está sendo acessado para uma operação de leitura ou escrita. Selecionar a operação a ser realizada, leitura ou escrita. Fornecer os dados de entrada para a operação de escrita. Manter estáveis as informações de saída da memória resultantes de uma operação de escrita, durante um tempo determinado. Habilitar (ou desabilitar) a memória, de forma a fazê-la (ou não) responder ao endereço na entrada e ao comando de leitura/escrita. Para seu funcionamento, as memórias dispõem de circuitos especiais que a ajudarão a armazenar e ler informações/ habilitar e desabilitar comandos: Entradas de endereço: São utilizadas para indicar em que posição da memória determinada informação encontra-se armazenada, ou então para indicar onde armazená-la. Entrada R/W: Determina qual a operação que será efetuada, se leitura (R) ou escrita (W) de dados. Página 3 Habilitação da memória: Fornece meios de desabilitar toda ou parte da memória de forma que não responda a nenhuma solicitação enquanto estiver nesta condição. CONEXõES DO PROCESSADOR COM A MEMÓRIA A memória principal de um computador é formada de CIs de RAMs e ROMs cujas interfaces com o processador são realizadas por três grupos de sinais ou barramentos, designados por linhas de endereço ou barramento de endereço, linhas de dados ou barramento de dados e linhas de controle ou barramento de controle. Cada um destes barramentos é constituído de várias linhas, sendo que o número de linhas em cada barramento varia de computador para computador. Os três barramentos permitem que o processador possa ler dados da memória e escrever dados na memória. Basicamente o processador lê e grava informações em determinas posições da memória, para isso ele obedece aos seguintes passos: Operação de escrita 0 processador gera o endereço da posição de memória onde o dado deve ser armazenado. Ela coloca este endereço nas linhas do barramento de endereço. 0 processador coloca no barramento de dados o dado a ser armazenado. 0 processador ativa as linhas correspondentes aos sinais de controle apropriados à operação de escrita. Os Cls da memória decodificam o endereço para determinar qual posição está sendo selecionada para a operação de armazenamento. 0 dado no barramento de dados é transferido para a posição de memória selecionada. Operação de leitura 0 processador gera o endereço da posição de memória de onde o dado deve ser retirado. Ela coloca este endereço nas linhas do barramento de endereço. Página 4 0 processador ativa as linhas correspondentes aos sinais de controle apropriados à operação de leitura. Os CIs da memória decodificam o endereço para determinar qual posição está sendo selecionada para a operação de leitura. Os Cls da memória colocam no barramento de dados o dado que está armazenado na posição selecionada, de onde ele será transferido para o processador. Barramento de Endereço É um barramento unidirecional que leva o endereço em binário que aparece na saída do processador, para os Cls de memória. Barramento de Dados: É um barramento bidirecional por onde trafegam dados, tanto no sentido do processador para os Cls de memória quanto no sentido inverso. Barramento de Controle: É um barramento bidirecional por onde trafegam sinais de controle, principalmente no sentido do processador para os Cls de memória. MEMÓRIAS DE LEITURA (READ-ONLY MEMORIES ROM) É um tipo de memória baseada em semicondutor, projetada para armazenar informações que nunca mudam ou que mudem com pouca freqüência. Durante a operação normal nenhum dado novo poderá ser escrito na ROM, sendo no entanto permitida a leitura dos dados que estiverem armazenados. Uma das principais aplicações da ROM é no armazenamento de alguns programas do sistema operacional dos microcomputadores. Uma vez que as ROMs são não-voláteis, estes programas não se perdem quando o microcomputador é desligado, permitindo que, quando ele for novamente ligado, comece imediatamente a executar um programa armazenado em ROM. A ROM tem três conjuntos de sinais: entradas de endereço, entrada(s) de controle e saídas de dados. As saídas de dados da maioria das ROMs são de três estados para permitir a conexão de vários chips de memória ROM ao mesmo barramento de dados, permitindo a construção de memórias de diversas capacidades. As ROMs com saídas de dados de oito bits são bastante comuns. A entrada de controle CS, seleção de chip (chip selection) é fundamentalmente uma entrada de habilitação/desabilitação das saídas da ROM. Muitas ROMs têm mais de uma entrada de controle que devem estar ativas de modo a habilitar as saídas de dados de forma que a informação possa ser lida do endereço selecionado. ARQUITETURA DA ROM Analisando a ROM de uma forma bastante simplificada podemos dividi-la em 4 partes básicas: O decodificador de linha, o decodificador de coluna, a matriz de registradores e os buffers de saída. Página 5 Matriz de Registradores: A matriz de registradores armazena as informações que foram programadas na ROM. Cada registrador tem um número de células de memória igual ao tamanho da palavra. Decodificadores de Endereços: Se encarrega de decodificar o código do endereço aplicado e determinar qual dos registradores da matriz deve ser habilitado para colocar suas informações no barramento. Conforme o código passado, as linhas e colunas respectivas serão selecionadas. Buffers de Saída: Se encarrega de repassar para as saídas externas os dados disponíveis no barramento de dados fornecidos pelos registradores. TIPOS DE ROM ROM Programada por Máscara (MROMs) Este tipo de ROM tem suas posições de memória escritas pelo fabricante de acordo com as especificações do cliente. No seu processo de gravação usa-se um negativo fotográfico, denominado máscara, que especifica as conexões elétricas do chip. Devido ao fato das máscaras serem caras, sua produção só é viável quando feita em grande escala usando a mesma máscara. Estas ROMs apresentam como desvantagem o fato de não poderem ser apagadas e reprogramadas, quando uma mudança qualquer no projeto do dispositivo exigir modificações nos dados armazenados. Neste caso a ROM com os dados antigos não pode ser reaproveitada, devendo ser substituída por uma outra com os novos dados gravados. ROMs Programáveis (PROMs) Para o uso em aplicações modestas, em relação à quantidade de chips produzidos, a utilização de ROMs programadas por máscaras não é recomendada devido seu alto elevado custo de produção. Para solucionar este problema a indústria eletrônica desenvolveu a PROM programada pelo usuário. Neste tipo de circuito os dados da memória são programadas pelo usuário de acordo com suas necessidades e não mais pelo fabricante no ato da produção. Esse tipo de memória só pode ser programada uma única vez. ROM Programável Apagável (EPROM) A EPROM possui o comportamento similar ao das PROMs, porém dando ao usuário a possibilidade de apagar e regravar as informações contidas em memória. Uma vez programada, ela comporta-se como uma memória não-volátil, ou seja, reterá as informações por tempo indeterminado. O processo de programação é realizado por um dispositivo especial, separado do ambiente onde a EPROM irá eventualmente trabalhar. Este processo consome vários minutos para a programação de um chip. A composição de uma EPROM é baseada em transistores MOSFET com uma porta de silício sem conexões elétricas. Quando uma EPROM sofre uma reprogramação todas as informações contidas em sua memória são apagadas. Elas não permitem a reprogramação parcial. PROM Apagável Eletricamente Página 6 Esse tipo de memória possui funcionamento similar às EPROMs, porém com a vantagem de permitir a reprogramação parcial, substituindo apenas determinadas palavras armazenadas em memória sem a perda das demais. O tempo de programação é bastante rápido, e não há a necessidade de se remover o chip do conector para realizar tal ação. APLICAÇÃO DAS ROMs As ROMs são utilizadas em aplicações que requeiram o armazenamento de dados de forma não-volátil e onde os dados não mudam com muita freqüência. Abaixo algumas das aplicações mais freqüentes para as ROMs: Firmware (Microprograma): Armazenam microprogramas que comandam determinadas funções em dispositivos eletrônicos. Normalmente programas de microcomputadores ou produtos de consumo que usam microprocessadores para controlar sua operação, tais como jogos eletrônicos, terminais de vendas, sistemas de injeção eletrônica de combustíveis, etc. Memória de Partida (BOOTSTRAP): São programas especiais residentes em ROMs cuja finalidade é inicializar microcomputadores auxiliando ao sistema operacional a iniciar sua tarefa de gerenciamento do equipamento e dispositivos anexos. Tabelas de Dados: São ROMs utilizadas para armazenar tabelas de dados que não mudam nunca, tais como tabelas trigonométricas e de conversão de códigos. Conversores de Dados: São circuitos que recebem um dado expresso em determinado tipo de código, e produzem uma saída expressa em outro tipo de código. A conversão é necessária, por exemplo, quando o microprocessador está dando saída a dados em binário puro, e precisamos converter tais dados para BCD de forma a excitar corretamente um display de 7 segmentos. Gerador de Caracteres: É um tipo de ROM que armazena os códigos do padrão de pontos de cada caracter em um endereço que corresponde ao código ASCII do caracter em questão. São muito usadas em qualquer aplicação que tenha por objetivo colocar dados alfanuméricos em displays ou em impressoras. Gerador de Funções: É um circuito que produz em sua saída formas de onda das mais diversas, como senóides, dentes de serra, triangulares e quadradas. Esse tipo de circuito é muito empregado em aplicações comerciais que requeiram geradores de funções (Sintetizadores de Voz, Geradores de Ondas, etc...). Página 7 DISPOSITIVOS LÓGICOS PROGRAMÁVEIS O grande número de circuitos integrados existentes no mercado dá aos projetistas uma grande variedade de possibilidade de projetar qualquer tipo de circuito digital. Isso não chega a ser uma vantagem, pois conforme o tipo de dispositivo a ser produzido a quantidade de CIs utilizados para produzir o resultado desejado poderia chegar facilmente a casa dos milhares, exigindo um grande trabalho em soldagens e um grande espaço para seu armazenamento nas placas de circuito-impressos. A redução do número de CIs em um projeto tem uma série de vantagens: menor espaço, menor custos, sistemas mais eficientes com baixo consumo de energia, maior confiabilidade, etc. Uma forma de contornar esse tipo de problema foi com o aparecimento dos circuitos tipo LSI e VLSI que utilizam uma tecnologia que permite o uso de milhares de portas lógicas num único invólucro de maneira operar de forma pré-definida. No entanto, existem diversas situações para as quais não há uma solução LSI ou VLSI. Nesses casos o projetista é obrigado a utilizar chips MSI ou SSI para implementar a função lógica desejada. Os recentes desenvolvimentos de Dispositivos Lógicos Programáveis (PLDs) têm proporcionado aos projetistas de sistemas uma forma de substituir um conjunto de chips padrão por um único CI. PLD: É um CI que contém um grande número de portas lógicas e flipflops interconectados dentro do chip. A maioria das conexões é feita através de fusíveis que podem ser queimados ou mantidos intactos. Ele é considerado programável pelo fato de podermos especificar a função ou as funções lógicas que ele deverá implementar, através da queima seletiva dos fusíveis internos. PAL (Matriz Lógica Programável): A arquitetura da PROM é adequada àquelas aplicações onde cada possível combinação de entrada é necessária à geração das funções de saída. Exemplos típicos são os conversores de código e as tabelas de dados utilizadas na geração de funções. Existem muitas aplicações que não necessitam de que todas as combinações de entradas sejam programáveis. Para estas aplicações existe uma classe especial de PLD, denominada Matriz Lógica Programável (PAL). A arquitetura de uma PAL é um pouco diferente da de uma PROM. No caso da PAL, apenas as entradas AND são programáveis, enquanto as entradas OR são hardwired, ou seja, são fixas, não programáveis. Matriz Programável Logicamente (PLA): Uma PLA combina as características de uma PROM e de uma PAL, fornecendo matrizes programáveis não só de ANDs como de ORs. Esta característica torna a PLA o mais versátil de todos os dispositivos lógicos programáveis. Contudo, tal dispositivo tem suas desvantagens. Pelo fato de possuir dois conjuntos de fusíveis, é mais difícil de fabricar, programar e testar que uma PROM ou PAL. As PLAs também são denominadas matrizes programáveis logicamente em campo (FPLAs). PLDs Apagáveis: Todos os PLDs vistos até o momento eram programáveis através da queima de fusíveis. Uma vez queimado, o fusível não pode ser recomposto. Então, se houve algum erro na programação, ou se você mudar o projeto do sistema ao qual o PLD pertence, tal dispositivo não poderá ser reutilizado. Nestes casos, deverá jogá-lo fora e comprar outro para ser reprogramado, Esta desvantagem foi eliminada pela maioria dos fabricantes de PLDs, que desenvolveram dispositivos Página 8 que podem ser apagados e reprogramados quantas vezes forem necessárias. Estes dispositivos são chamados de dispositivos lógicos programáveis apagáveis (EPLDs), sendo os mesmos programados e apagados de maneira semelhante às EPROMs e EEPROMS. MEMÓRIAS DE ACESSO RANDÔMICO A SEMICONDUTOR(RAMs) As RAMs são usadas em computadores para armazenamento temporário de programas e dados. 0 conteúdo de diversos endereços de RAM serão lidos e escritos no decorrer da execução de um programa. Isto requer ciclos de leitura e escrita extremamente rápidos, de maneira a não impactar negativamente a operação do computador. A grande desvantagem das RAMs reside no fato de elas serem voláteis, vindo a perder todas as informações armazenadas se o fornecimento de energia ao sistema for interrompido por qualquer motivo. Algumas RAMs CMOS têm a capacidade de operar em standby, consumindo muito pouca energia quando não estiverem sendo acessadas, de maneira a poderem ser alimentadas por baterias, quando de eventuais interrupções de energia. A maior vantagem da RAM é sua capacidade de poder ser lida e escrita rapidamente e com igual facilidade. ARQUITETURA DA RAM Tal como no caso das ROMs, podemos uma RAM como constituída de um conjunto de registradores, cada um dos quais armazenando uma única palavra de dados, e possuindo cada um deles um único endereço. Tanto a capacidade da RAM quanto o seu tamanho de palavra podem ser expandidos pela combinação de diversos chips de memória. Operação de Leitura: O código de endereço escolhe um dos registradores do chip de memória para ser lido ou escrito. A combinação de RW (Read/Write) e CS (Chip Select) habilita os buffers de saída, de modo que o conteúdo de um determinado registrador aparecerá nas linhas de saída. Operação de Escrita: Com a devida combinação, esta operação habilitará os buffers de entrada, fazendo com que a palavra aplicada na entrada seja escrita no registrador selecionado. A realização de uma operação de escrita destrói o conteúdo armazenado anteriormente no registrador selecionado. Seleção de Chip: São entradas usadas para habilitar ou desabilitar o chip. Quando desabilitado todas suas entradas e saídas de dados não realizarão nenhuma operação de leitura ou escrita. Neste modo de operação o conteúdo da memória não poderá sofrer modificação. Página 9 RAM ESTÁTICA (SRAM) RAMs estáticas são aquelas que só podem manter a informação armazenada enquanto a alimentação estiver aplicada ao chip. Suas células de memória são formadas por flip-flops que estarão em certo estado, por tempo indeterminado, desde que a alimentação esteja ligada. A grande maioria das aplicações envolvendo SRAMs usam tecnologia CMOS e NMOS, apesar de estarem também disponíveis nas tecnologias bipolares e MOS. Os dispositivos bipolares tem a vantagem da velocidade, enquanto os baseados em MOS têm maior capacidade de armazenamento e menor consumo de potência. Temporização da RAM Estática Os Cls de RAM são utilizados quase sempre como memória interna (principal) de um computador. 0 processador realiza continuamente operações de leitura/escrita nesta memória, a velocidades normalmente bem altas. Os chips de memória que interfaceiam com o processador devem ser rápidos o suficiente para responder aos comandos de leitura e escrita sem retardar a operação do processador. Desta forma, um projetista de computador deve estar bem familiarizado com as várias particularidades relativas à temporização das RAMs. Um exemplo de chip SRAM disponível no mercado é o CMOS 6264, com uma capacidade de SK x 8 com tempos de ciclo de leitura e escrita de 100 ns e com consumo em standby de somente 0,1 mW. Ele possui 13 linhas de endereço, pois 213 = 8192 = 8K, e oito linhas para entrada/saída de dados. As quatro entradas de controle determinam o modo de operação do dispositivo. RAM DINÂMICA (DRAM) São fabricadas usando a tecnologia MOS, possuindo alta capacidade de armazenamento, baixo consumo de energia e velocidade de operação moderada. Elas armazenam ls e Os como cargas de microcapacitores MOS, tipicamente de poucos picofarads. Em função da tendência destes capacitores se descarregarem após decorrido determinado tempo, as RAMs dinâmicas necessitam de recarga periódica das células de memória, operação esta denominada refresh da memória RAM dinâmica. Tipicamente, cada célula precisa ser recarregada decorridos de 2 a 10 ms, ou a informação nela armazenada será perdida. Para sistemas de memória com capacidade de mais de 64K palavras, a solução que, em geral, se adota envolve um custo relativamente alto. Página 10 Para aplicações onde velocidade alta e complexidade reduzida do circuito são pontos mais críticos do que espaço e consumo de potência, as RAMs estáticas constituem a melhor solução, pois são mais rápidas do que as dinâmicas e não precisam de estrutura de refresh. As estáticas são bem mais simples de projetar, mas não podem competir com a alta capacidade de armazenamento e o baixo consumo de potência das RAMs dinâmicas. As principais aplicações das SRAMs são em áreas onde não é necessário o emprego de uma memória muito grande, e onde um tempo de acesso rápido é de fundamental importância para o sucesso do projeto. Muitos instrumentos controlados por microprocessador e diversas outras aplicações requerem uma capacidade de memória muito pequena. Outros instrumentos, como osciloscópios com memória e analisadores lógicos, precisam de memórias de alta velocidade. Nestes casos, a SRAM deve ser usada. A memória principal da maioria dos microcomputadores atuais usa DRAM em virtude de sua alta capacidade e baixo consumo. Às vezes tais computadores utilizam também pequenas quantidades de SRAM para aplicações requerendo uma velocidade tão alta quanto possível. ESTRUTURA E OPERAÇÃO DA RAM DINÂMICA A arquitetura interna de uma RAM dinâmica pode ser visualizada como uma matriz de células de um bit. A capacidade dos chips DRAM mais comuns anda em torno de 1.024K x 1 (lM x 1) ou de 256K x 4. Multiplexação de Endereços: Para cada entrada de um chip DRAM há a necessidade de um pino por endereço. Isso cria um problema para chips com alta capacidade de memória, pois se mantida a relação de um pino para cada bit componente do endereço a quantidade de pinos seria muito grande. Para evitar esse inconveniente os fabricantes usam uma técnica chamada Multiplexação, na qual alterando a relação dos pinos com os bits de endereço, eles conseguem acomodar dois bits num único pino do integrado. A economia no número de pinos acarreta uma diminuição considerável no tamanho da embalagem do chip. Isto é muito importante no projeto de sistemas de memória de alta capacidade, onde se deseja colocar o maior número possível de chips de memória em uma única placa. A OPERAÇÃO DE REFRESH DE UMA DRAM As células de uma DRAM dever ser recarregadas periodicamente (a cada 2 ms em média), ou os dados nelas armazenados serão perdidos. Tal célula deve sofrer uma operação de refresh toda vez que uma operação de leitura for realizada nesta célula. Os fabricantes têm projetado seus chips DRAM de modo que sempre que uma operação de leitura for realizada em determinada célula DRAM, todas as células desta mesma linha sofrerão o refresh. Muitos fabricantes de CIs de memória dinâmica desenvolveram chips especiais que tratam da operação de refresh e da operação de multiplexação dos endereços, ambas necessárias ao bom funcionamento de um sistema de memória DRAM. Tais chips são denominados controladores de RAM dinâmica. Página 11 EXPANSÃO DO TAMANHO DA PALAVRA/CAPACIDADE DE UMA MEMÓRIA Em geral, a capacidade global do sistema e o tamanho necessário à palavra não podem ser obtidos com a atualização de um único chip. Em vez disso, diversos chips de memória devem ser combinados para fornecer a capacidade e o tamanho de palavra desejados. Expansão do Tamanho da Palavra: A combinação de um ou mais chips de RAM permite que tais chips apresentem um comportamento como se fossem um único módulo. Esta característica permite a expansão do tamanho de sua palavra sem a necessidade de sua troca. Expansão da Capacidade: De forma similar a expansão do tamanho da palavra, pode-se combinar mais de um chip para obter a expansão da capacidade de memória desejada. Combinação de DRAMs: Os CIs DRAM muitas vezes têm palavras de comprimento entre um e quatro bits. A fim de utilizar tais CIs em sistemas de memória de computadores que requerem palavras com tamanho entre 8 e 16 bits, é necessário combinar vários deles de forma similar à usada para as RAMs. RAM NÃO-VOLÁTIL Dispositivos RAM a semicondutor têm a grande vantagem da alta velocidade de operação. No entanto eles são voláteis, o que significa dizer que perderão as informações armazenadas se a energia for interrompida, mesmo que momentaneamente. As ROMs, por outro lado, são não-voláteis, mas não podem ser usadas como memória de leitura/escrita. Em algumas aplicações, a volatilidade da RAM pode significar a perda de informações importantes, na eventualidade da falta de energia. Existem duas soluções para este problema. A primeira é usar memórias que possam ser alimentadas por baterias sempre que ocorrer falta de energia. Para tanto precisamos de memórias de muito baixo consumo, que não irão consumir rapidamente toda a carga da bateria. A tecnologia CMOS tem obtido chips com consumo muito baixo, na implementação de RAMs a semicondutor, e na maioria dos casos podem ser alimentados por baterias. Naturalmente que, nestes casos, tais memórias devem ser mantidas em seu modo standby, para consumirem o mínimo de potência possível. Algumas SRAMs CMOS incluem no chip pequenas baterias de lítio. Outra solução emprega um dispositivo denominado RAM não-volátil (NVRAM). Esse chip combina a alta velocidade de operação das RAMs estáticas com a capacidade de armazenamento não-volátil das EEPROMS. A NVRAM tem a vantagem de não precisar de bateria, no entanto ela é muito mais complexa do que uma chip de memória normal. Quando há necessidade de se usar memórias não-voláteis de alta capacidade, lançase mão das RAMs CMOS com bateria. Página 12 MEMÓRIAS DE ACESSO SEQUENCIAL As memórias a semicondutor discutidas são todas de acesso randômico pelo fato das informações armazenadas em qualquer endereço poderem ser obtidas rapidamente, sem que precisemos percorrer outras posições da memória, situadas entre o último acesso e o atual. A alta velocidade de operação dos dispositivos de acesso randômico torna-os apropriados para utilização na memória principal do computador. As memórias seqüenciais a semicondutor utilizam registradores de deslocamento para armazenar os dados que podem ser acessados de forma seqüencial. Apesar de tais memórias não poderem ser usadas nos sistemas de memória principal de um computador por causa de sua baixa velocidade de operação, as memórias com registrador de deslocamento encontram aplicação em áreas onde o acesso aos dados é feito de maneira seqüencial e repetitiva. Um primeiro exemplo de aplicação deste tipo de memória é no armazenamento e na transmissão seqüencial de dados codificados em ASCII, a serem mostrados no vídeo de um determinado microcomputador. Estes dados devem ser enviados periodicamente aos circuitos do vídeo, de forma a dar um refresh na imagem da tela. Registradores de Deslocamento Circular: Nesse tipo de registrador os dados que entram pela entrada sequencial são deslocados seqüencialmente e ao atingir a última saída é passado por uma lógica de controle e então reaplicado a entrada inicial. A lógica de controle disponibiliza dois modos de operação que são controlados pela entrada de circulação REC. O nível em REC determina a fonte do dado que vai aparecer na entrada serial. REC = 1 (MODO DE CIRCULAÇÃO): Neste modo a entrada de dados fica inibida e os dados entram em movimento circular. REC = 0 (MODO DE ENTRADA DE DADOS): Este modo desabilita o deslocamento de bits e é usado para colocar um novo dado dentro do registrador através da entrada de dados. Memórias FIFO (Primeiro a Entrar, Primeiro a Sair) A FIFO é um outro tipo de memória de acesso seqüencial que utiliza registradores de deslocamento em sua implementação. Ela é similar à memória de registradores de deslocamento circular, à medida que as palavras entram em Entrada de Dados na mesma ordem em que são descarregadas em Saída de Dados. Em resumo, a primeira palavra que for escrita será a primeira a ser lida, daí o nome primeira a entrar, primeira a sair (FIFO). Algumas diferenças entre as memórias FIFO e as circulares são: Na FIFO as saídas dos dados não vão circular de volta pelo registrador. Em vista de serem deslocadas para a saída, elas serão perdidas. A operação de deslocamento de dados para dentro da memória FIFO independe completamente da operação de deslocamento de dados para fora da memória. Isto torna as memórias FIFO particularmente adequadas para a operação de transferência de dados entre sistemas operando a velocidades muito diferentes. Página 13 Um exemplo comum deste tipo de transferência envolvendo memória FIFO é a realizada de um computador para uma impressora. 0 computador envia dados para a impressora numa velocidade extremamente superior àquela que a impressora pode aceitá-los. Uma memória FIFO pode agir com um buffer equalizador da taxa de dados trocados entre o computador e a impressora, aceitando os dados que vêm do computador a uma velocidade alta e armazenando-os. Após isto, os dados são deslocados para a saída, ligada à impressora, numa velocidade bem mais baixa. MEMÓRIAS MAGNÉTICAS As memórias baseadas em semicondutor armazenam informações na forma de uma carga elétrica ou de uma tensão, devido à sua alta velocidade de operação, ao pouco espaço ocupado e à sua simplicidade, elas são normalmente usadas para implementação da memória principal de computadores. A desvantagem desse tipo de dispositivo é a sua volatilidade, o que impede seu uso para armazenamento de dados por longo prazo. Para evitar esse tipo de problema, o uso de dispositivos baseados em armazenamento magnético é utilizado em larga escala. Sua principal característica é a não-volatilidade. Núcleo Magnético: A memória de núcleos magnéticos é uma memória de acesso randômico, de leitura e escrita, não-volátil, que foi a antecessora da memória a semicondutor. Quase todos os computadores mais antigos utilizavam memórias de núcleo para a implementação de seus sistemas de memória principal. Os sistemas de memória de núcleos magnéticos possuem tempos de acesso que variam entre 100 ns e 500 ns, e ainda podem ser encontrados em alguns minicomputadores e computadores de grande porte antigos. Tais sistemas tornaram se obsoletos nas aplicações modernas. Memória de Bolhas Magnéticas (MBM): A memória de bolhas magnéticas é uma memória a semicondutor que armazena a informação binária na forma de bolhas magnéticas muito pequenas, formadas sobre um filme fino de material magnético. A presença ou não de uma bolha numa posição específica é interpretada como 1 ou 0, respectivamente. As mudanças contínuas dos campos magnéticos são usadas para mover as bolhas em loops dentro do material magnético, similarmente aos registradores de deslocamento circular. A principal vantagem das MBMs é a sua nãovolatilidade; se a alimentação for interrompida, os dados armazenados não serão perdidos, uma vez que as bolhas simplesmente permanecem em suas posições. Quando a energia for restabelecida, as bolhas recomeçam a circular em torno de seus loops. As MBMs são bastante Página 14 compactas e dissipam pouquíssima potência. Um dispositivo típico de MBM pode armazenar mais de um milhão de bits. Apesar de todos estes pontos favoráveis, as MBMs não possuem velocidade que permita seu emprego na implementação de sistemas de memória principal. Atualmente, as MBMs são em torno de 100 vezes mais rápidas do que os disquetes, porém são ainda bem mais caras devido à complexidade de seus circuitos de suporte. Com a queda gradual de seu custo, poderemos ver mais e mais sistemas MBM sendo usados em lugar dos lentos e pouco confiáveis disquetes. Discos e Fitas Magnéticas: Os dispositivos de fita e de disco realizam a gravação e a leitura de pontos magnéticos sobre uma superfície móvel. Nestas superfícies, é aplicada uma camada bem fina de material magnético, de maneira a cobrir toda a superfície com tal material. 0 armazenamento e a leitura de informações binárias em discos e fitas utilizam os mesmos princípios básicos. A cabeça de leitura/escrita é composta por um núcleo de ferro macio, de alta permeabilidade, com uma bobina envolvendo-o em parte. Na escrita, a corrente passa na bobina, estabelecendo linhas de fluxo magnético no núcleo. Durante a leitura, a bobina é usada como sensor. Enquanto a superfície magnética se move sob a cabeça, os pontos que foram magnetizados produzem um fluxo que entra no núcleo. Esta mudança no fluxo do núcleo induz uma tensão na bobina, tensão esta que é amplificada e interpretada como correspondente a 0 ou 1. Tanto os discos quanto as fitas são não-voláteis, sendo normalmente utilizados como memória de massa. Pelo fato de ambos os sistemas usarem meios mecânicos para gravação e leitura da informação, seus tempos de acesso são extremamente altos, impedindo tais dispositivos de serem usados na implementação de sistemas de memória principal. 0 baixo custo do bit armazenado, aliado à imensa capacidade de armazenamento dos discos e fitas, tornam tais dispositivos ideais para serem usados como memória secundária, podendo transferir seus dados para a memória principal, sempre que necessário. Sistemas de Disco Rígido(Hard Disk): Em um sistema de disco rígido, os dados são armazenados em trilhas concêntricas sobre uma superfície Página 15 de alumínio coberta com uma camada magnética em ambos os lados. Um disco rígido típico de cinco polegadas, tal como os encontrados nos PCs da IBM, são constituídos na verdade por dois discos, quatro superfícies, com uma capacidade total de 10 a 20M bytes. A tecnologia atual nos permite contar com discos rígidos com capacidades na faixa de 100 a 1000M bytes. A maioria de tais sistemas é fixo, fazendo com que os discos estejam permanentemente montados no sistema, não podendo ser removidos, a não ser por pessoal especializado. Sistemas de Disco Flexível (Floppy Disk): Um disco flexível, também chamado disquete, é um disco que tem as duas superfícies cobertas com camadas magnéticas, de forma que os dados podem ser gravados em ambos os lados do disco. Tal disco gira dentro de um envoltório de papelão (ou plástico), e é apresentado em três tamanhos-padrão: 8 polegadas (original), 5,25 polegadas (o minifloppy) e 3,5 polegadas (o microfloppy). Quando inserido na unidade, o disco flexível roda a uma velocidade fixa de 300 ou 360 rpm, bem menor do que a dos discos rígidos. A capacidade destes discos gira em torno de IOOK a 1M bytes, apesar de alguns fabricantes já estarem comercializando disquetes de 3,5 com 4M bytes de capacidade. Os disquetes têm tempo de acesso de mais ou menos 10 vezes maior que o dos discos rígidos, além de sua taxa de transferência de dados ser também 10 vezes mais lenta. Apesar de os capacidade de vantagem da transportados pelo correio. discos flexíveis armazenamento do portabilidade e de um computador serem mais lentos e possuírem menos que os discos rígidos, eles têm a do baixo custo, sendo facilmente para outro, podendo ser enviados até Fita Magnética: 0 uso mais comum para a memória em fita magnética é como backup para as informações de um disco rígido. A maior vantagem da fita é o baixo custo por bit armazenado e a imensa capacidade de armazenamento. Uma pequena fita cassete, como a usada para gravação de sinais de áudio, pode armazenar facilmente 1000M bytes. A principal desvantagem da memória em fita é o tempo de acesso muito alto em função do acesso ao meio físico ser eminentemente seqüencial. Este problema não deve ser considerado quando a fita for usada para armazenar informações de backup. Neste caso, as informações não serão lidas com freqüência, e, quando o forem, a fita será lida em sua totalidade, de forma seqüencial, da primeira informação à última. Memória em Disco Ótico: A memória em disco ótico é a mais nova tecnologia para sistemas de memória de massa, apresentando atualmente uma forte tendência a vir a ser a tecnologia dominante para este tipo de aplicação. Um ponto forte dos sistemas de memória ótica é a sua alta capacidade de armazenamento - 1000M bytes em uma superfície de diâmetro de 5,5 polegadas. Outras vantagens são seu custo relativamente baixo e a imunidade à poeira. Seu tempo de acesso e sua capacidade de transferência de dados são comparáveis aos dos discos rígidos. Os sistemas de discos óticos estão disponíveis em três tipos básicos: 0 disco que só pode ser lido é denominado ROM ótico (OROM), ou compact-disk ROM (CD-ROM). Um disco ótico que só pode ser escrito uma única vez é chamado de escrito-uma-vez-lido-multas (write-once-readmany) cuja abreviatura é WORM. Tanto os CD-ROMs quanto os WORMs não podem ser apagados. 0 disco ótico de leitura/escrita pode ser escrito Página 16 quantas vezes forem necessárias, operando, portanto, como um disco rígido. PESQUISA DE FALHAS EM SISTEMAS COM MEMÓRIA RAM Devido ao fato dos computadores usarem memórias do tipo RAM e ROM, e esses dispositivos serem formados de milhares de células de memória, uma simples falha em uma dessas células poderá “derrubar” o sistema ou então gerar instabilidade, tornando sua operação não-confiável. Qualquer tipo de teste para análise de falhas envolverá a avaliação e identificação das posições que estão funcionando bem e quais não estão apresentando funcionamento satisfatório. Em geral, tais problemas podem ser identificados como devidos a um CI de memória ruim, a um decodificador que não esteja funcionando bem, a uma porta lógica, a um sinal fora de sincronismo, ou a um problema envolvendo conexões entre as partes componentes do circuito (curtocircuito ou conexão aberta). Pelo fato de as RAMs poderem ser lidas e escritas, seu teste é mais complexo do que o das ROMs. Qualquer operação de identificação de falhas deve partir do princípio que “o sucesso de qualquer metodologia empregada na pesquisa de problemas em circuitos ou sistemas relativamente complexos depende fundamentalmente de um conhecimento profundo da operação do circuito ou do sistema em análise”. Testando a Lógica de Decodificação: Nesta técnica, desconecta-se o processador, aplica-se o sinal em suas portas de entrada juntamente com a onda do clock. Gerando-os a partir de um circuito externo de teste, de maneira a realizar um teste estático, usando chaves operadas manualmente para cada um dos sinais, ou um teste dinâmico, usando um contador cíclico, que conte na faixa dos endereços do sistema. Com tais sinais aplicados, as saídas do decodificador poderão ser verificadas com muita facilidade. Técnicas mais ou menos padrão para o rastreamento de sinais poderão ser usadas para isolar qualquer falha na lógica de decodificação. Testando todo o Sistema de Memória RAM: Quando o teste da lógica de decodificação não consegue identificar o problema, o método mais comum é testar a operação do sistema completo da RAM. Esse teste consiste em escrever padrões conhecidos de Os e ls em cada posição de memória, e lê-los de volta, para verificar se o padrão foi ou não armazenado corretamente naquela particular posição de memória. Embora existam diversos padrões diferentes que possam ser usados, um dos mais utilizados é o chamado "padrão de verificação de quadro". Neste padrão, os 1s e Os são escritos na memória alternadamente, como mostrado a seguir, 01010101. Uma vez que todas as posições tenham sido testadas com este padrão, este deve ser invertido, ficando 10101010, sendo cada posição de memória novamente testada com o novo padrão. Note que esta seqüência de testes vai verificar se todas as células da memória estão conseguindo armazenar um 0 e um 1. Pelo fato de armazenar os bits alternadamente, este padrão também pode verificar a existência de curto ou de qualquer interação entre células adjacentes. Nenhum teste de memória pode descobrir todas as possíveis falhas que podem ocorrer numa RAM com 100% de exatidão. Página 17 TESTANDO A ROM Devido a similaridade de funcionamento da RAM com ROM, o teste da lógica de decodificação são praticamente idênticos. Os chips de ROM, no entanto, devem ser testados de maneira diferente que os chips RAM. Existem diversos métodos para verificar o conteúdo de um CI de ROM. Uma possibilidade é colocar a ROM em um soquete que pertença a um instrumento especial de teste, controlado por um microprocessador. Tal instrumento pode ser programado para ler cada posição da ROM em teste, e ímprimir uma listagem do seu conteúdo. Esta lista deve ser comparada com o suposto conteúdo da ROM. Tal procedimento de teste é muito demorado, só sendo aplicável às ROMs de baixa capacidade. Numa abordagem mais eficiente da questão, o próprio instrumento de teste vai conter os dados corretos, armazenados em uma memória interna, denominada chip ROM de referência. 0 instrumento é programado para ler o conteúdo de cada posição da ROM em teste e comparar a informação lida com o conteúdo da posição equivalente da ROM de referência, listando as discrepâncias porventura encontradas. Tal procedimento exige, naturalmente, que esteja disponível uma memória ROM pré-programada para servir como referência. Uma outra abordagem usa o método da verificação da soma (checksum) que coloca um código especial na última ou nas duas últimas posições do chip da ROM, por ocasião de sua programação. Este código é obtido somando-se as palavras a ser armazenadas em todas as posições da ROM, excluindo apenas aquelas onde o resultado da soma vai ser armazenado. Enquanto o instrumento de teste lê os dados de cada posição durante a realização do teste, vai também acumulando a soma do conteúdo das posições lidas. Ao final da leitura, o programa de teste compara a soma obtida por ele com o código armazenado na própria ROM. Se houver coincidência de valores, significa que a ROM muito provavelmente está boa. Se tais valores não coincidirem, existe realmente um problema na ROM. A metodologia da verificação da soma também pode ser usada por um computador ou por um microprocessador durante um autoteste automático para verificação do conteúdo da ROM, realizado quando o sistema é ligado. Página 18