Escolar Documentos
Profissional Documentos
Cultura Documentos
de Computadores
Material Teórico
Memórias e Dispositivos de E/S
Revisão Textual:
Profa. Esp. Márcia Ota
Memórias e Dispositivos de E/S
• Memórias
• Fechamento
• Simulador
OBJETIVO DE APRENDIZADO
· Nesta unidade, tem-se por objetivo capacitar o aluno a identificar os
vários tipos de memória do computador e como seu funcionamento
otimizado melhora o sistema e o desenvolvimento do programa.
ORIENTAÇÕES
Olá, aluno (a)!
Além disso, para que a sua aprendizagem ocorra num ambiente mais
interativo possível, na pasta de atividades, você também encontrará as
atividades de avaliação, uma atividade reflexiva e a videoaula. Cada material
disponibilizado é mais um elemento para seu aprendizado, por favor, estude
todos com atenção!
UNIDADE Memórias e Dispositivos de E/S
Contextualização
Classicamente, define-se a organização de memórias de um computador, de
acordo com sua hierarquia, sendo os níveis mais altos dessa hierarquia as memórias
de auxílio ao trabalho da CPU, como os registradores.
Bom estudo!
6
Memórias
O conceito de memórias e seu funcionamento sempre foram bastante fáceis de
compreender; porém, o que acaba confundindo é a grande quantidade de tipos
de memórias diferentes que existem e para quem elas prestam trabalho, sendo,
muitas vezes, um múltiplo trabalho. Por mais avançadas que essas memórias
sejam, nenhuma delas resolve os problemas do hardware e/ou do software de
forma otimizada, sempre havendo um ponto frágil em cada tipo e sempre uma
suprindo a falha da outra, daí a importância da hierarquia de memórias.
7
7
UNIDADE Memórias e Dispositivos de E/S
Mas como essas memorias são acessadas? Há diferentes formas, por exemplo:
·· Acesso sequencial: Nesse tipo de acesso, é feita a organização dos dados
dentro das memórias em unidades chamadas registros, como já falamos
anteriormente na disciplina. Além de dados, são armazenadas informações
como endereçamentos.
·· Acesso direto: assim como com o acesso sequencial, o acesso direto
emprega um mecanismo compartilhado para leitura e escrita. Entretanto,
cada bloco individual ou registro possui um endereço único, baseado em
sua localização física. O acesso é feito por meio de um acesso direto a uma
vizinhança genérica do registro e, em seguida, por uma pesquisa sequencial,
por contagem ou por espera até atingir a posição final.
·· Acesso aleatório: no método aleatório, cada posição de memória recebe
um mecanismo de endereçamento unido e ligado a ela de forma física.
Assim, qualquer posição de memória pode ser acessada a qualquer momento
aleatoriamente e não mais, sequencialmente, ao processo.
·· Associativo: consiste em um tipo de memória de acesso aleatório que
possibilita comparar simultaneamente certo número de bits de uma palavra
com todas as palavras da memória, determinando quais dessas palavras
contêm o mesmo padrão de bits.
Onde:
TN = tempo médio de leitura ou escrita de (N) bits
TA = tempo médio de acesso
N = número de bits
R = taxa de transferência em bits por segundo (bps)
8
As características físicas são determinantes para sabermos como que
determinada memória funciona, por exemplo, em uma memória volátil, como
a RAM, os dados são perdidos quando a energia é desligada da memória. Já nas
memórias não-voláteis, os dados não são apagados e nenhuma energia é necessária
para manter esses dados “vivos” na memória, como nas memórias de superfície
magnética. Há também as memórias de construção a base de semicondutor que
podem ser somente de leitura, como é o caso da ROM.
Hierarquias de Memória
Na verdade, os elementos mais importantes para uma memória, mais
especificamente, para o projeto de uma memória são sua capacidade, velocidade e
seu custo. A capacidade é importante para o objetivo da memória, por exemplo, o
mercado cada vez mais pede memórias de tráfego de dados e armazenamento. Assim,
fabricantes desenvolvem memórias RAM e HDDs/SSDs cada vez mais potentes.
9
9
UNIDADE Memórias e Dispositivos de E/S
Registra-
dores da
CPU
Cache
Nível 1
Nível 2 Áreas de
RAM Armazenamento
Temporário
Memória Física
Memória Virtual
Tipos de dispositivos de armazenamento Áreas de
ROM - BIOS - Discos Removíveis Armazenamento
Armazenamento em Rede - Internet - Disco Rígido Permanentes
Fontes de Entrada
Teclado - Mouse - Mídia Removível - Scanner - Câmera - Microfone
Vídeo - Fontes Remotas - Outras Fontes
Velocidade: Altíssima
Custo: Altíssimo
Capacidade: Pouquíssimo
Tamanho: Muito Pequeno Registradores
Energizado: Sim
Velocidade: Altíssima
Custo: Altíssimo
Capacidade: Muito Pouco CPU Cache
Tamanho: Muito Pequeno
Energizado: Sim
Velocidade: Alta
Custo: Médio
Capacidade: Alta RAM
Tamanho: Razoável
Energizado: Sim
Velocidade: Baixa
Custo: Baixíssimo
Capacidade: Muito Alta Dispositivos de Armazenamento em Massa
Tamanho: Grande
Energizado: Não
10
Memórias Voláteis e Não Voláteis
Dentre as memórias voláteis, ou seja, aquelas que perdem os dados quando
desligadas, são as memórias de acesso aleatório ou RAM (random access memory),
onde os dados são escritos e lidos de forma rápida e, após seu uso, são perdidos.
As RAMs ainda podem ser divididas em dois tipos: RAM estática e RAM dinâmica.
No caso das RAMs dinâmicas, suas células armazenadoras de dados são feitas
com a carga de capacitores, onde a presença de carga elétrica ou não nesse capacitor
é interpretada como bit 1 ou 0. Se lembrarmos que os capacitores, naturalmente,
possuem carga zero, uma RAM dinâmica sempre precisa ser alimentada para a
representação do bit 1. Essa ação chamamos de refresh de carga, o que mantém
os dados armazenados por um tempo, dando a impressão de que a RAM está
“segurando” a informação momentaneamente.
Para o caso de RAMs estáticas, seus valores binários são armazenados segundo
o uso de flip-flops com portas lógicas, enquanto houver energia também. O flip-
flop é a forma mais simples de representação de um circuito sequencial, pois, uma
vez que ele é um dispositivo biestável, existe em um de dois estados estáveis. Se
um desses estados deixar de existir, como a ausência de sinal de entrada, o flip-flop
permanece nesse estado; logo, ele pode funcionar como uma memória de 1 bit.
Uma parente próxima da RAM é a memória apenas de leitura ou ROM (read only
memory) que armazena uma informação constantemente e inalteradamente; dessa
forma, só é possível ler essa informação. Normalmente, as ROMs são utilizadas
na microprogramação com funções bem definidas, como tabelas de funções ou
bibliotecas de sub-rotinas.
11
11
UNIDADE Memórias e Dispositivos de E/S
A variação Flash só tem esse nome devido à velocidade com que pode ser
reprogramada (Talvez, EEEPROM não ficaria legal? rs). Além disso, é o avanço
direto da EEPROM, em que, agora, pode ser apagado byte por byte e não mais
blocos e ela ainda passa a usar um único transistor por bit, o que aumenta,
consideravelmente, sua densidade de informações possíveis de ser armazenadas.
Memórias Cache
A memória cache tem a função básica de ser intermediária entre a CPU e a
memória principal, conforme a figura 2.
Memória
Principal
Transferência
de Blocos
Transferência
de Palavras
CACHE
CPU
Figura 2: Fluxo de trabalho entre CPU e memórias
Fonte: Acervo do Autor
12
Início
Recebe endereço
RA da CPU
Carrega o bloco da
Entrega a palavra
memória principal na
em RA para a CPU
linha da cache
Fim
Figura 3: Operação de leitura em memória cache
Fonte: Tanenbaum, A., Organização Estruturada de Computadores
13
13
UNIDADE Memórias e Dispositivos de E/S
Memória Principal
0
1
2
3
4
5 Memória Cache
6 Dados Tag Linha
7
8 0 (000)
9 1 (001)
10 2 (010) Exemplo: End. linha = 12 mod 8 = 4
11 3 (011) tag = [12/8] = 1
12 01 4
13 (100) Endereço da Palavra
14 5 (101) Tag Linha Offset
15 6 (110) 0000...01 100 Offset
16 7 (111)
...
31 Offset
Figura 4: Funcionamento do Mapeamento Direto da Cache
14
Obviamente, o mapeamento associativo por conjuntos veio para eliminar as
deficiências dos modelos anteriores, fazendo com que blocos da memória principal
sejam associados a um conjunto de linhas da cache, daí o nome.
Memória Principal
0
1
2
3
4 Memória Cache
5 Dados Tag Conjuntos (sets)
6
7 011
8
9 Exemplo: two-way set associative
10 tag = 12/4 = 3 (0112)
11 set = 12 mod 4 = 0
12
13 Endereço da Palavra
14 Tag Set Offset
15 011 00 Offset
16
...
31 Offset
Figura 6: Funcionamento do Mapeamento Associativo por Conjunto da Cache
Algoritmos de substituição
A substituição deve ser feita quando algum bloco da memória principal é mapeado
para a memória cache, na qual um bloco deve ser retirado para liberar espaço.
Para tanto, o mapeamento associativo e o mapeamento associativo por conjuntos
necessitam do uso de algoritmos que façam essa substituição acontecer. Há 4
principais algoritmos de substituição que devem ser sempre implementadas
em hardware para acelerar o processo.
Um dos mais utilizados algoritmos é o LRU (least recently used) que baseia seu
trabalho na substituição do bloco menos recentemente utilizado, ou seja, o bloco
que será retirado do conjunto é aquele que não é usado há mais tempo. Nesse
algoritmo, cada linha irá incluir um bit adicional, o bit de uso, e quando uma linha
for referenciada será atribuído valor 1 a esse bit de uso e o bit de uso da outra linha
do conjunto recebe valor 0. E quando um novo bloco for armazenado, ele ocupará
o bit 0 da linha no conjunto.
15
15
UNIDADE Memórias e Dispositivos de E/S
Outra técnica não é baseada no histórico de uso das linhas da memória cache e
substitui aleatoriamente uma das linhas candidatas. Estudos baseados em simulação
mostram que a substituição aleatória apresenta um desempenho apenas levemente
inferior ao de um algoritmo baseado no histórico de uso das linhas (Smith, 1982).
O swapping não permite essa ociosidade, uma vez que ele troca um desses
processos, retirando-o da memória para uma fila intermediária no disco, em uma
área chamada área de swap, que contém processos já criados, mas que foram
temporariamente retirados da memória. O sistema operacional, então, carrega
na memória um outro processo dessa fila intermediária ou atende a uma nova
requisição de processo da fila de longo prazo. Assim, a CPU continua com o
processo recém-carregado na memória.
Por fim, há uma técnica mais potente ainda: a segmentação, a qual permite ao
programador ou engenheiro de software visualizar a memória como um conjunto
de espaços endereçáveis ou, como são realmente chamados, segmentos. Seus
tamanhos já não são fixos, como na paginação, mas, sim, variam dinamicamente
pelo sistema operacional, de acordo com taxa de endereçamento das instruções ou
pelo programador diretamente e a esses segmentos são atribuídas permissões de
acesso à memória principal chamada referência de memória, que nada mais é que
um número de segmento e um endereço relativo no segmento, gerando, assim,
tabelas de segmentação que auxiliam no mapeamento dos dados.
Tamanho da cache
Como já discutido anteriormente, o tamanho da cache pode se tornar um
problema. No entanto, com o avanço da tecnologia e maiores velocidades
necessárias, a memória cache necessitou se adequar a vários tipos de dispositivos
e, para tanto, foi dividida em algumas classes ou níveis que diferem na relação
tamanho/desenvolvimento.
16
· Cache L1: representada por uma pequena parte de memória estática
dentro da CPU, sendo dividida em dois níveis: os dados e instruções,
geralmente entre 16KB e 128KB.
· Cache L2: normalmente, colocada fora da CPU devido ao seu tamanho
maior que a L1, o que encareceria demais o chipset do processador. A
L2, em suma, é mais uma memória de auxílio à CPU, fazendo o jogo L1
interno e L2 externo, apesar de alguns chipsets usarem o L2 internamente.
· Cache L3: Esse modelo utiliza o cache externo das placas-mãe como
mais uma memória cache para a CPU.
Dispositivos Externos
Todas as operações que envolvem dispositivos de entrada e saída são realizadas
através de uma extensa gama componentes e aparelhos que são conectados ao
computador por meio de uma conexão de módulo, como uma USB e, assim,
ocorrem as transferências de dados, informações de controle e informações de
estado entre o módulo de E/S e o dispositivo externo, igual quando o sistema
operacional pergunta ao usuário como trabalhar com a USB recém conectada.
Área de armazenamento
Lógica de temporário
Controle
Transdutor
Dados (especificos ao
dispositivo) de e
para o ambiente
17
17
UNIDADE Memórias e Dispositivos de E/S
18
As operações de E/S podem ser realizadas de três formas diferentes, conforme
figura 8:
· E/S programada: onde os dados são transferidos entre a CPU e o
módulo em que uma aplicação tem controle direto sobre a transferência,
incluindo a detecção do estado do dispositivo, o envio de comandos de
leitura ou escrita e a transferência de dados.
· E/S dirigida por interrupção: nesse modelo de transferência, a CPU
envia um comando de E/S e continua seu trabalho de execução de
instruções e volta a ser interrompido pelo dispositivo de E/S quando a
resposta ao comando estiver pronta para ser executada.
· DMA: o acesso direto à memória (direct memory access) é uma evolução
do modelo de interrupção, sendo ele, agora, o responsável pelos comandos
aos dispositivos de entrada e saída, pré-carregamento dos dados em sua
memória DMA, interrupção da CPU para entrega dos dados e retomada
do processo de transferência.
Próxima Instrução
Verifica o Condição Verifica o Condição (c)
estado de Erro estado de Erro
Pronto Pronto
N N
Terminado? Terminado?
S S
19
19
UNIDADE Memórias e Dispositivos de E/S
Para que o DMA realmente funcione, um novo módulo teve de ser adicionado,
o DMA passa, então, a simular algumas funções do processador e também toma o
controle do barramento do sistema.
Fechamento
Abordamos, nesta unidade, os conceitos de memórias sobre a cache, a memória
principal, as memórias de E/S e a memória virtual. Esses conceitos são de supra
importância para a correta determinação de como trabalhar o hardware e o sistema.
Simulador
No material complementar, você terá o link para um simulador de hardware,
onde você poderá criar várias simulações do gerenciamento de memória. Além
disso, há também o link para as experiências de gerência de memória. Então,
execute o programa, é leve e nem precisa instalar, mas trará para você a visualização
de tudo que você aprendeu nesta unidade, o que irá facilitar seu entendimento.
Discuta suas experiências com seus amigos.
20
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Sites
SOsim: Simulador para o Ensino de Sistemas Operacionais
http://www.training.com.br/sosim/
Vídeos
Maravilhas Modernas: A Evolução da Memória
https://www.youtube.com/watch?v=vIY2fSwkUYQ
Que es la memoria Cache y como funciona en los procesadores CPU
https://www.youtube.com/watch?v=m09ZK3ngcHg
Como escolher uma boa memória ram?
https://www.youtube.com/watch?v=rKAJwmJm3QY
21
21
UNIDADE Memórias e Dispositivos de E/S
Referências
MONTEIRO, Mario A.; A Organização de Computadores; 5ª Ed.; Editora:
LTC; 2012.
22