Arquitetura de Computadores aula-05

Arquitetura de Computadores aula-05

Histórico da computação

Componentes de sistemas computacionais

Conjunto de instruções

Processadores Memórias Periféricos

Sistemas Operacionais

Placa-mãe e componentes de computadores

Vo ltar

Imp rimir

T op o

Arquitetura de Computadores

Professores autores Marcio Kreutz Madiel Filho

Aula 5 – Memórias Apresentação

Até o momento, você já conhece conjuntos de instruções e como estes executam em arquiteturas de processadores. Nesta aula serão abordadas outro tipo de circuito: memórias. As memórias são de fundamental importância para que processadores consigam executar algoritmos, uma vez que todas as instruções bem como os dados dos algoritmos necessitam serem armazenados em algum lugar para serem processados; esse lugar é a memória

Objetivos

Nesta aula você deve ser capaz de:

Entender qual a importância das memórias para que algoritmos possam ser executados em sistemas computacionais e em processadores. Compreender que diferentes tipos de memórias são caracterizados e destacados a sua importância para que dados e instruções possam estar disponíveis quando necessários para processamento.

Memórias Como visto na aula 2 (componentes de sistemas computacionais), a organização interna de sistemas computacionais está fortemente baseada na possibilidade de operações e dados dos algoritmos serem armazenadas em circuitos com capacidade de reter as informações por tempo indeterminado: as memórias. Um circuito de memória pode ser entendido como aquele circuito capaz de reter informações. A importância e a necessidade de os sistemas computacionais possuírem memórias estão no fato de as informações e operações a serem processadas necessitarem de armazenamento. Isto ocorre devido à natureza dos circuitos eletrônicos que compõem estes sistemas: um circuito pode ser entendido como uma caixa preta que possui alguma funcionalidade, entradas e saídas.

O funcionamento ocorre pela leitura das entradas, as quais são processadas e uma ou mais saídas são geradas. As entradas são os operandos fonte (veja aula 3 – Conjunto de Instruções), o processamento são as operações (realizadas pela ULA do processador; veja aula 4 – Processadores) e as saídas são os operandos destino (aula 3). No entanto, os circuitos conseguem apenas processar (operar sobre) as informações, mas não as reter ou armazena-las para posterior processamento. Ao estudarmos a execução de algoritmos, fica bastante evidente que muitas variáveis são reutilizadas (ou processadas mais de uma vez) pelos algoritmos; então, para que não se percam, é necessário que sejam armazenadas. O mesmo acontece com as instruções: observe atentamente um algoritmo e verá que muitas instruções aparecem mais de uma vez ao longo do código.

Memórias podem ser pensadas como um vetor, onde em cada posição do vetor as informações são armazenadas. No caso de sistemas computacionais precisamos determinar qual o tamanho (em bits) de cada uma das posições, ou seja, qual a quantidade de bits que podem ser armazenados em cada posição. Além disso, assim como em vetores cada posição necessita ser determinada através de um endereço único, que é o endereço que ira identificar aquela e somente aquela posição; dessa forma é possível que cada posição seja acessada sem ambigüidade, para ser modificada.

Veja na figura 1 onde as posições de memória e os endereços são ilustrados.

Figura 1 – Representação Lógica de uma Memória Fonte: autoria própria.

Naturalmente, as operações que são realizadas em memórias se restringem a leitura e escrita, uma vez que nenhuma operação é executada sobre informações armazenadas em memórias. Pode-se pensar então em memórias como estruturas auxiliares, que servem para que dados e operações permaneçam dentro do sistema pelo tempo necessário para serem processados e (possivelmente) re-processados.

Veja na aula 2, que devido a necessidade de armazenamento, não ha. como se construir um sistema computacional sem a presença de memórias: na memória de dados são armazenadas todas as variáveis que os algoritmos executam e na memória de instruções, são armazenadas todas as instruções dos algoritmos; veja também na aula 4, que é nessa memória que os processadores buscam as instruções que executam.

Tipos de memórias

As memórias podem ser classificadas quanto ao seu tipo em relação à característica de volatilidade que possuem. Diz-se que uma memória é volátil quando seu conteúdo é perdido ou apagado assim que a energia é cortada. Nesse caso, a memória perde a sua função e para de funcionar. Por outro lado, memórias não voláteis são aquelas que são capazes de continuar memorizando, mesmo sem a presença da energia (quando o sistema é desligado). Essas memórias nunca perdem o seu conteúdo.

Memórias voláteis são chamadas de RAM (Random Access Memory; memórias de acesso aleatório) e memórias não voláteis de ROM (Read Only Memories, memórias apenas de leitura). O fato de memórias não voláteis permitirem apenas a leitura significa que o seu conteúdo é gravado apenas uma vez, quando a memória é fabricada e após isso, somente leituras podem ser realizadas. No entanto, essa definição está de acordo com uma tecnologia especifica de fabricação de memórias. A medida que a tecnologia foi evoluindo, diferentes tipos de memórias não voláteis foram criadas, as quais permitem também a escrita. Exemplos dessas memórias são:

PROM (Programmable ROM; ROM programável; programável aqui quer dizer que pode ter o seu conteúdo re-escrito); EEPROM (Electrically Erasable Programmable Read- Only Memory; PROM apagavel eletricamente); Flash, as quais compõem os atuais pen-drives e tocadores de MP3.

Você pode se perguntar nesse momento se existem memórias não voláteis, porque utilizar as voláteis, correndo o risco de se perder informações em caso de queda de energia ?? A resposta esta no desempenho: memórias voláteis conseguem (devido a sua natureza física) serem mais rápidas. Como na maioria dos sistemas computacionais, desempenho é fator crucial, opta-se pela utilização do máximo possível de memórias mais rápidas (a próxima seção exemplifica isso também). Além do mais, de nada adiantaria termos processadores extremamente velozes se estes precisam esperar muito para acessar a memória na busca de instruções e operandos.

Atividade 1

1. Você é capaz de lembrar quais os principais tipos de memória estudados até o momento? 2. Você já sabe identificar porque utilizamos as memórias voláteis, mesmo com a possibilidade de perder informações?

Classificação quanto ao tamanho e funcionalidade

Devido à tecnologia de fabricação, as memórias possuem diferentes preços (normalmente calculados em US$/bits ) e desempenhos: quanto mais cara é a memória, mais rápida também. Como normalmente o desempenho é fator crucial em sistemas computacionais, estes implementam uma hierarquia de memória, de modo a aproveitar ao Maximo o desempenho oferecido pelas memórias. A hierarquia é necessária porque, devido aos custos, memórias mais caras são menos usadas na construção dos sistemas computacionais. A hierarquia é implementada sob o ponto de vista do processador e determina que este sempre acesse por primeiro, a memória mais rápida; se a instrução ou o dado que o processador precisa acessar não se encontra nessa memória, um segundo acesso é feito em uma memória mais lenta e assim sucessivamente.

A figura 2 ilustra uma hierarquia típica de memória encontrada na maioria dos sistemas computacionais, exemplificando custo X velocidade.

Figura 2 – Representação do custo X velocidade das memórias Fonte: autoria própria.

Os registradores encontrados dentro dos processadores, como vimos na aula 4, são as memórias mais caras e de pequena capacidade, entretanto são as memórias mais rápidas, por isso se encontram no topo da hierarquia. Em seguida, as memórias conhecidas como cache também são rápidas e portanto, de menor tamanho em um sistema. Observe que memórias cachê são voláteis. Alguns sistemas implementam mais de uma memória cache na hierarquia de memória, criando níveis de cache, limitados a 3. quando mais de uma memória cache é utilizada a cache de nível 2 (L2; Level 2) é maior que a de nível 1 (cache L1) e menor que a de nível 3 (cache L3). Naturalmente a cache L1 é a mais cara e mais rápida e a cache L3 a menor e mais barata dentre as três.

Logo após na hierarquia de memória (ver figura 2) vem a memória principal ou memória RAM; essa é uma memória volátil com tamanho maior e menor custo em relação às memórias cache e aos registradores. Em seguida temos as memórias secundarias que são as unidades de disco (a serem estudados na aula 7, uma vez que são também considerados periféricos de entrada e saída).

próxima lição

Na figura 3 a seguir podemos observar um exemplo de como ocorre a comunicação da memória com os outros elementos que representam um computador.Já vimos na aula anterior como funciona o Processador, já os Periféricos iremos estudar na Figura 3 – Representação da comunicação entre os elementos do computador Fonte: autoria própria.

Resumo

Nesta aula foram estudados diferentes tipos de memórias e como estes são organizados e como estas são conectadas aos processadores para que algoritmos possam ser executados de maneira correta.

Autoavaliação

A execução de algoritmos em sistemas computacionais pressupõe que dados e instruções possam ser armazenados de maneira eficiente, para que estejam disponíveis no momento em que devem ser processados. Para tanto, diferentes tipos de memórias existem e são organizados apropriadamente, de modo a que sempre que necessário, os processadores possam encontrar as instruções demandadas por algoritmos bem como as suas variáveis. A importância da disponibilidade de dados e instruções deve ter ficado clara nessa lição. Agora, é importante que você avalie a necessidade de memórias em computadores, respondendo às questões:

1. Quais as operações que são realizadas na memória?

2. O que podemos definir sobre uma memória volátil? Cite exemplos de memória volátil e não volátil.

3. Descreva a hierarquia das memórias quanto ao custo X velocidade.

Referencias

MEMÓRIA. Disponível em: <http://w.ime.usp.br/~weslley/memoria.htm>. Acesso em: 23 dez. 2009.

MEMÓRIA cache: aula 4. Disponível em: <http://regulus.pcs.usp.br/~jean/arquitetura/Aula%2004%20- %20Mem%F3ria%20Cache.pdf>. Acesso em: 23 dez. 2009.

NÓBREGA FILHO, Raimundo de Gouveia. Fundamentos de hardware. Disponível em: <http://w.di.ufpb.br/raimundo/ArqDI/Arq3.htm>. Acesso em: 23 dez. 2009.

Tanembaum. Organização estruturada de computadores. São Paulo: Prentice-Hall, 2006.

Voltar

Imprimir Topo

Comentários