Buscar

Unidade IV - Memórias e Dispositivos de ES

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Organização 
de Computadores
Material Teórico
Responsável pelo Conteúdo:
Prof. Ms. Fábio Peppe Beraldo 
Revisão Textual:
Profa. Esp. Márcia Ota
Memórias e Dispositivos de E/S
• Memórias
• Fechamento
• Simulador
 · 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.
OBJETIVO DE APRENDIZADO
Olá, aluno (a)!
Nesta Unidade, aprenderemos os tipos de memórias existentes, como 
a memória cache, memória virtual, memória principal, a hierarquia de 
memória e o DMA. Também serão estudados os dispositivos de E/S mais 
comuns e seus barramentos. 
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!
ORIENTAÇÕES
Memórias e Dispositivos de E/S
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.
Há também as memórias cache, a memória virtual, memória principal até 
chegarmos ao DMA, sem nos esquecermos das memórias de transporte de dados.
Bom estudo!
6
7
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.
Podemos conceitualizar melhor a descrição de trabalho se as dividirmos em 
classes e caracterizarmos cada classe, como pode ser visto na tabela 1.
Tabela 1: Características fundamentais de sistemas de memória de computadores
Característica Descrição
Localização • Processador
• Interna (principal)
• Externa (secundária)
Capacidade • Tamanho da palavra
• Número de palavras
Unidade de Transferência • Palavra
• Bloco
Método de Acesso • Sequencial
• Direto
• Aleatório
• Associativo
Desempenho • Tempo de acesso
• Tempo de ciclo
• Taxa de transferência
Tecnologia • Semicondutores
• Magnética
• Óptica
Características Físicas • Volátil/ não volátil
• Apagável/ não apagável
Fonte: Stallings, W., Arquitetura e Organização de Computadores
A principal característica a ser associada a uma memória é sua capacidade 
que é expressa internamente pela palavra e, externamente, por bytes. Palavra 
é uma unidade utilizada em computação para medir a quantidade de bits usados 
para representar números inteiros ou o tamanho da instrução, definindo, assim, a 
capacidade do processador pela quantidade de palavras executas por ciclo.
Além da capacidade de palavras possíveis de se carregar para a CPU, há 
também a transferência de dados, que é o número de linhas de dados do módulo 
de memória, normalmente, igual ao tamanho da palavra. Para tanto, usa-se uma 
unidade endereçável que é o endereçamento de bytes que, na maioria dos sistemas, 
é a própria palavra, e a unidade de transferência, que são quantos bits podem ser 
lidos ou escritos da/para memória principal.
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.
Chegando à característica de desempenho, considerada por muitos a mais 
importante, temos sua medição feita através de três elementos.
 · Tempo de acesso: nada mais é que o tempo que se gasta para efetuar uma 
operação de leitura ou de escrita; é o tempo decorrido desde o momento em 
que é feita a referência de um endereço na memória até o instante em que 
os dados são, efetivamente, armazenados na memória ou são executados.
 · Tempo de ciclo de memória: é a soma do tempo de acesso e o tempo 
adicional necessário antes de um segundo acesso. Esse tempo adicional é, 
geralmente, usado no caso de necessidade de regeneração de dados, em 
caso de corrompimento dos dados da leitura.
 · Taxa de transferência: é a taxa, na qual os dados podem ser transferidos de/ou 
para a unidade de memória. Na memória de acesso aleatório, é inversamente 
proporcional ao tempo de ciclo (1/tempo de ciclo). Para medirmos essa taxa 
de transferência de dados, podemos usar a seguinte equação:
T T N
RN A
= +
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
9
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.
A velocidade está ligada diretamente a capacidade, pois, para um melhor 
desempenho, a memória deve ter uma mais velocidade que, por sua vez, é 
compatível com a da CPU; isso significa que o processador não deve ficar esperando 
operandos ou opcodes para executar uma instrução, pois gera ociosidade e, por 
consequência, lentidão de processamento.
Ambos, capacidade e velocidade, são extremamente influentes no custo da 
memória, o que faz com que mercadologicamente existam dezenas de tipos de 
memórias diferentes para a mesma função, para que assim possam ser adquiridos 
por diversos níveis de mercado, conforme sua possibilidade de aquisição.
O programador ou engenheiro deve sempre levar em consideração esses 
elementos, pois, apesar de querer o máximo de seu equipamento ou programa, ele 
deve lembrar o foco mercadológico do mesmo: será que trabalhar com equipamentos 
topo de linha somente, fará com que seu produto seja consumido, ou seria melhor 
tentar tirar o máximo via arquitetura ou programação de um equipamento de médioporte? Esse dilema sempre existirá!
A figura 1 mostra duas formas de separação hierárquica: na parte (a), há a 
classificação quanto ao tipo de cada memória; e na parte (b), você pode verificar 
as características de cada classe, como velocidade, custo, capacidade, tamanho e 
carga, conforme acabamos de aprender.
9
UNIDADE Memórias e Dispositivos de E/S
Fontes de Entrada
Tipos de dispositivos de armazenamento
RAM
Cache
Teclado - Mouse - Mídia Removível - Scanner - Câmera - Microfone 
Vídeo - Fontes Remotas - Outras Fontes
Memória Física
Memória Virtual
Nível 1
Nível 2
Registra-
dores da 
CPU
ROM - BIOS - Discos Removíveis
Armazenamento em Rede - Internet - Disco Rígido
Áreas de
Armazenamento
Temporário
Áreas de
Armazenamento
Permanentes
Dispositivos de Armazenamento em Massa
RAM
CPU Cache
Registradores
Velocidade: Altíssima
Custo: Altíssimo
Capacidade: Pouquíssimo
Tamanho: Muito Pequeno
Energizado: Sim
Velocidade: Altíssima
Custo: Altíssimo
Capacidade: Muito Pouco
Tamanho: Muito Pequeno
Energizado: Sim
Velocidade: Alta
Custo: Médio
Capacidade: Alta
Tamanho: Razoável
Energizado: Sim
Velocidade: Baixa
Custo: Baixíssimo
Capacidade: Muito Alta
Tamanho: Grande
Energizado: Não
Figura 1: Representações de hierarquia de memória por classe 
(a) e por características de funcionamento (b)
Fonte: Tanenbaum, A., Organização Estruturada de Computadores
Registradores, cache e a memória principal são três exemplos de memórias 
que empregam o uso de semicondutores. Seus dados são armazenados utilizando 
dispositivos de massa externos a ele, como memórias físicas ou removíveis 
conhecidas por memórias secundárias ou não voláteis, que, em sua maioria, são 
usadas apenas para armazenamento de massa ou backup pelo usuário.
A memória principal discutida aqui, também conhecida como memória virtual, 
possui mais elementos de trabalho não intrínsecos ao hardware, como a paginação 
e a segmentação; porém, essas técnicas são voltadas para o aumento de velocidade 
de resposta do sistema e controle do espaço de memória virtual ou o gerenciamento 
de memória como é conhecido. No entanto, apesar desses conceitos serem melhor 
abordados na disciplina de sistemas operacionais, serão mencionadas quando 
falarmos de algoritmos de substituição.
10
11
 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.
Apesar do método de funcionamento, há uma diferença mais significante na RAM 
dinâmica, que é a sua maior densidade, ou seja, possui mais espaços de memória 
por área, mas precisa ser sempre alimentada usando o refresh, enquanto na RAM 
estática ela está sempre em bit 1 e apenas um sinal a torna 0 e não a alimentação 
constante do refresh; por esse fator, as RAMs estáticas são mais rápidas que as 
dinâmicas. No entanto, agora, depende do engenheiro saber otimizar a memória 
de trabalho que tem em mãos.
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.
As ROMs são um tanto caras, pois a forma de gravação de dados nela é 
mais complexa que nas demais, sendo feita durante a construção do seu circuito 
integrado ou equipamentos especiais e caros. Uma alternativa que surgiu foi a ROM 
Programável ou PROM (programmable ROM), que também não é volátil, mas seus 
dados são gravados de forma muito mais simples, de forma elétrica através de 
equipamentos um pouco mais baratos.
A PROM gerou ainda outras variações como a EPROM, EEPROM e Flash. No 
caso da EPROM ou memória programável apenas de leitura, seus dados podem 
ser apagados por processo óptico e, então, novos dados regravados, funcionando 
como uma formatação da memória, mas fica um problema: esse processo é 
demorado demais para uma CPU.
11
UNIDADE Memórias e Dispositivos de E/S
A variação EEPROM ou memória apenas de leitura programável e apagável 
eletricamente é extremamente parecida com suas antecessoras, diferenciando 
apenas que, nesse modelo, não é preciso a formatação da memória para a 
gravação de novos dados, apenas uma área específica pode ser selecionada para a 
regravação de forma elétrica.
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
Isso ocorre porque as instruções e dados estão sempre alocadas na memória 
principal; porém, essa memória é grande e lenta para a CPU, ou seja, quando 
a CPU quer ler algo, primeiro checa se uma cópia do dado necessário já está na 
memória cache antes que o requerimento do carregamento desse dado na memória 
principal seja feito, e essa ação acelera demais o processamento. Caso esse dado 
não esteja na cache, ele será carregado na memória principal e o dado desejado 
será copiado para a cache e, então, fornecido à CPU para execução, criando uma 
ociosidade de processamento. Esse trabalho todo pode ser visto na figura 3.
12
13
Obtém o conteúdo
da palavra no endereço
RA e entrega para CPU
Aloca linha da cache
para o bloco da
memória principal
Carrega o bloco da
memória principal na
linha da cache
Entrega a palavra
em RA para a CPU
Obtém o conteúdo
da palavra no endereço
RA e entrega para CPU
Recebe endereço
RA da CPU
Efetua acesso à memória
principal para obter o
bloco que contém RA
Fim
Início
Não
Sim
Figura 3: Operação de leitura em memória cache
Fonte: Tanenbaum, A., Organização Estruturada de Computadores
Projetando uma memória cache
O tamanho de uma cache é um fator muito importante na hora do projeto, pois 
o tamanho de uma memória cache deve ser suficientemente pequeno para que o 
custo total médio por bit seja próximo do custo por bit da memória principal e 
deve ser suficientemente grande para que o tempo médio de acesso à memória 
seja próximo ao tempo de acesso da memória cache. Se aumentarmos demais 
o tamanho da memória cache, também aumentaremos a quantidade de portas 
envolvidas na construção e isso tornará a memória lenta.
Uma função importante de se observar é o mapeamento da cache, isso ocorre, 
pois aslinhas de memória da cache são menores do que o de blocos da memória 
principal. Então, para não haver a perda do dado, este é mapeado via mecanismo 
de mapeamento que pode ser direto, associativo ou associativo por conjunto. 
Vamos considerar o seguinte exemplo para fazermos o mapeamento:
No mapeamento direto, divide-se a memória principal em conjuntos de células 
que são armazenadas nas células da cache e, então, é feito um mapeamento 
diretamente estre os blocos da memória principal e as células da cache e isso 
permite que um bloco seja associado à sua contraparte na cache “diretamente”. 
Esse método, por ser sempre ligado diretamente entre a memória principal e a 
cache, gera uma ociosidade no sistema pela demora na resposta para a instrução.
13
UNIDADE Memórias e Dispositivos de E/S
0
0
1
2
3
401
Tag LinhaDados
O�set
5
6
7
(000)
(001)
(010)
(011)
(100)
(101)
(110)
(111)
0000...01 100 O�set
Tag
Endereço da Palavra
Exemplo: End. linha = 12 mod 8 = 4
tag = [12/8] = 1
Linha O�set
Memória Cache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
31
Memória Principal
Figura 4: Funcionamento do Mapeamento Direto da Cache
No mapeamento associativo, não há um lugar fixo na cache para os blocos da 
memória principal serem relacionados. Esses endereços da memória principal são 
interpretados igualmente no mapeamento direto, mas seu número de bits requeridos 
para a determinação do rotulo da memória principal é maior. Esse método que 
mistura gera uma maior associação entre a cache e a memória principal, mas 
consome maior processamento.
0
01100
TagDados
O�set
000000...01100 O�set
Tag
Endereço da Palavra
Exemplo: tag = 12(011002)
O�set
Memória Cache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
31
Memória Principal
Figura 5: Funcionamento do Mapeamento Associativo da Cache
14
15
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.
0
011
Tag Conjuntos (sets)Dados
O�set
011 00 O�set
Tag
Endereço da Palavra
Exemplo: two-way set associative
tag = 12/4 = 3 (0112)
set = 12 mod 4 = 0
Set O�set
Memória Cache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
31
Memória Principal
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.
Outro algoritmo de substituição é o FIFO (first-in-first-out), ou seja, o primeiro a 
chegar é o primeiro a sair ou o bloco a ser substituído é o que está no conjunto há 
mais tempo. O LFU (least frequently used) determina que o bloco a ser substituído 
será aquele que foi utilizado menos vezes e funciona implementando um contador 
a cada linha da cache.
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).
Há ainda algumas técnicas de substituição baseadas em sistema operacional 
e não no hardware, mas também são de supra importância para que não haja 
ociosidade de CPU ou de SO.
A troca de processos na memória ou swapping é uma delas. Essa técnica gerencia 
a fila de processos que aguardam ser executados dentro da memória principal. No 
caso desses processos não estarem prontos ainda ou não tenham sido chamados 
para execução, a fila acaba enchendo e, por consequência, a ociosidade do sistema 
começa a aumentar.
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.
Usando do particionamento de memória principal, que consiste em dividi-la em 
partes iguais de tamanho fixo, relativamente pequenas, podemos dividir também 
cada processo dentro dessas partições em pedaços menores ainda, também 
de tamanho fixo. Esses pedaços de processos são chamados de páginas e são 
alocados em partes disponíveis da memória chamados frames. Dessa forma, o 
espaço desperdiçado na memória com a carga de um processo é, então, apenas 
uma fração do último bloco alocado ao processo.
 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
17
 · 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.
Lógica de
Controle
Sinais de
controle do
módulo de E/S
Sinais de
estado para
o módulo de E/S
Sinais de dados (bits)
de e para o
módulo de E/S
Dados (especi�cos ao
dispositivo) de e
para o ambiente
Área de armazenamento
temporário
Transdutor
Figura 7: Modelo geral de um dispositivo externo
Fonte: Tanenbaum, A., Organização Estruturada de Computadores17
UNIDADE Memórias e Dispositivos de E/S
O módulo de E/S possui algumas funções de maior importância como:
 · Controle e temporização: inclui funções para controlar o fluxo de dados 
entre os recursos internos e os dispositivos eternos, como a transferência 
de dados entre o dispositivo e o processador.
 · Comunicação com o processador: normalmente, essa comunicação 
segue alguns passos:
* Decodificação de comando: o módulo de E/S recebe comandos do 
processador, enviados tipicamente como sinais, através do barramento 
de controle.
* Dados: os dados são transferidos entre o processador e o módulo de EIS 
através do barramento de dados.
* Informação de estado: como os periféricos são, em geral, muito lentos, 
é importante conhecer o estado do módulo de E/S.
* Reconhecimento de endereço: assim como cada palavra da memória, 
cada dispositivo de E/S tem um endereço. Dessa maneira, o módulo 
de EIS deve reconhecer um endereço distinto para cada periférico que 
ele controla.
 · Comunicação com dispositivos: a comunicação também envolve os 
passos anteriores, porém cada tipo de equipamento possui uma velocidade 
de comunicação, como descrito na tabela 2.
 · Área de armazenamento temporário de dados: a área de 
armazenamento temporário de dados é uma área criada para a realização 
do pré-carregamento dos dados para acelerar a transferência, trabalhando 
de forma semelhante a cache para a CPU e a memória principal.
 · Detecção de erro: a detecção de erros ocorre através de um código 
emitido pelo dispositivo quando houve algum mau funcionamento 
mecânico ou elétrico ou alterações no padrão de bits transmitidos entre 
dispositivo e módulo.
Dispositivo Comportamento Interação Taxa de dados (Mbit/seg)
Teclado entrada humana 0.0001
Mouse entrada humana 0.0038
Captura Voz entrada humana 0.2640
Captura Som entrada máquina 3.0000
Scanner entrada humana 3.2000
Reprodução Voz saída humana 0.2640
Reprodução Som saída humana 8.0000
Impressora Laser saída humana 3.2000
Monitor saída humana 800.00 - 8000.0000
Modem entrada e saída máquina 0.0160 - 0.0640
Rede Cabeada entrada e saída máquina 100.0000 - 1000.0000
Rede Wireless entrada e saída máquina 11.000 - 54.0000
Disco Óptico armazenamento máquina 80.0000
Fita Magnética armazenamento máquina 32.0000
Disco Magnético armazenamento máquina 240.0000 - 2560.0000
18
19
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.
Os comandos de E/S são:
 · Controle: que tem a função de ativar um periférico e indicar qual ação 
será executada.
 · Teste: usado para testar várias condições de estado associadas a um 
módulo de E/S e seus periféricos.
 · Leitura: faz com que o módulo de E/S obtenha um item de dado do 
periférico e o armazene em uma área de armazenamento temporário 
interna.
 · Gravação: faz com que o módulo de E/S obtenha um item de dado do 
barramento de dados e, em seguida, o transmita para o periférico.
Próxima Instrução
(c)
Interrupção
DMA > CPU
CPU > DMA
Executa outras
Instruções
Envia comando
de leitura de
bloco para o
módulo de E/S
Lê o estado
do módulo
DMA
Envio comando
de leitura para
o módulo de E/S
Lê o estado
do módulo
de E/S
E/S > CPU
E/S > CPU
Pronto
Nã
o P
ro
nt
o
CPU > Memória
Próxima Instrução
S
N
(a)
Condição
de Erro
Lê uma palavra
do módulo
de E/S
Escreve uma
palavra na
memória
Veri�ca o
estado
Terminado?
Pronto
S
Próxima Instrução
(b)
Interrupção
E/S > CPU
CPU > E/S
Executa outras
Instruções
E/S > CPU
CPU > Memória
Condição
de Erro
Envio comando
de leitura para
o módulo de E/S
Lê o estado
do módulo
de E/S
Lê uma palavra
do módulo
de E/S
Escreve uma
palavra na
memória
Veri�ca o
estado
Terminado?
N
Figura 8: Técnicas de entrada de um bloco de dados
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.
Uma das formas de interrupção da CPU pela DMA é assumir o barramento da 
CPU quando esta não o está usando e, assim, o interrompe; isso é chamado de 
roubo de ciclo. Depois de enviar o comando, a CPU pode continuar executando 
outras instruções.
A execução da operação de E/S é delegada ao módulo de DMA que transfere 
diretamente todo o bloco de dados, uma palavra de cada vez, diretamente de/
ou para a memória, sem a intervenção do processador. Quando a transferência é 
concluída, o módulo de DMA envia um sinal de interrupção para o processador. 
Dessa maneira, o processador é envolvido apenas no início e no fim da transferência 
do bloco de dados o módulo de DMA, então, transfere uma palavra e retorna o 
controle para o processador.
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.
Para se aprofundar ainda mais, leia o material complementar com atenção e 
não deixe de fazer a experiência do simulador!
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
21
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
UNIDADE Memórias e Dispositivos de E/S
Referências
MONTEIRO, Mario A.; A Organização de Computadores; 5ª Ed.; Editora: 
LTC; 2012.
TANENBAUM, Andrew S.; Organização Estruturada de Computadores; 5ª 
Ed.; Editora: Pearson Education; 2006.
22

Outros materiais