Escolar Documentos
Profissional Documentos
Cultura Documentos
Interface entre
Processadores e Periféricos
2
Cenário
interrupts
Processor
Cache
3
Introdução
■ Porque estudar I/O?
O desempenho de CPUs aumenta de 50% a
100% por ano;
O desempenho Supercomputadores com
multiprocessadores aumenta 150% por ano
Já o desempenho de subsistemas de I/O é
limitado por atrasos mecânicos
➔ Em média o crescimento é de 5% por ano (I/O por
seg ou MB por seg)
Lei de Amdahl: Speedup limitado por parte
mais lenta
Na prática, o gargalo é I/O:
➔ CPU estão ficando mais rápidas
➔ Velocidade de CPUs está fazendo menos diferença
4
Introdução
■ Porque estudar I/O?
Avalanche constante de avanços tecnológicos;
Capacidade dos Discos dobra a cada 3 anos;
Hoje:
➔ O poder de processamento dobra a cada 18 meses
➔ Tamanho de memória dobra a cada 18 meses (?)
5
Introdução
■ Tipos de dispositivos
Entrada: teclado, mouse, caneta ótica, scanner,
microfone, joystick, sensores, etc.
Saída: vídeo, impressora, plotter, auto-falante,
etc.
Armazenamento: discos, fitas, etc.
Comunicação: modem, placa de rede, etc.
■ O problema é como conectá-los a CPU de
forma eficiente.
■ Porque isso não ocorre:
Diferentes características físicas (conexão,
pinagem, entre outros)
Diferentes sentidos de comunicação (só vai, só
vem ou ambos)
6
Introdução
Diferentes protocolos (linguagem, formato dos
dados)
Diferentes velocidades (regulares, tempo de
reposta variável)
Diferentes freqüências
Diferentes fabricantes (interoperabilidade)
■ Exemplos
Mouse: sentido único (leitura dos botões e das
coordenadas), freqüênte, tempo de resposta
constante.
Disco rígido: dois sentidos, não tem freqüência,
tempo de resposta variável.
7
Introdução
8
Introdução
■ Então como solucionar esse problema?
■ Uso de controladora (interface de controle)
■ Funções
Conexão física
Conversão de protocolos
Conversão de tipos de dados
Armazenamento temporário (controle de fluxo)
Abstração do hardware
■ Trabalho
Pesquisar alguns tipos (três pelo menos) de
controladoras
Informar algumas de suas características
9
Discos de Armazenamento
■ Histórico (como surgiu)
Década de 50: migração de processamento em
batch para on-line
■ Para onde caminha
Década de 90: migração para dispositivos
únicos
➔ computadores em telefones, livros eletrônicos,
carros, cameras de vídeo, …
➔ redes de alta velocidade
10
Discos de Armazenamento
■ Evolução (1)
1956 IBM Ramac — predecessor do Winchester
➔ desenvolvido para mainframes com interfaces
proprietárias
1970
➔ floppy de 5.25
➔ memória semicondutora e microprocessadores
12
Discos de Armazenamento
■ Objetivos
Armazenamento não-volátil por tempo longo
Alta capacidade
■ Características
Tempo de acesso alto
➔ Seek time, rotational delay
➔ Transfer rate (1 setor/ms)
■ Capacidade
Gigabytes, Terabytes
13
Discos de Armazenamento
A superfície é local para armazenamento das
informações.
Pode-se armazenar de ambos os lados. As velocidades
variam de 3600 e 7200 RPM.
Trilha
Setor
Cilindro
Superfície (disco)
Cabeça
14
Discos de Armazenamento
■ Cada lado de uma determinada superfície do
disco é dividida em círculos concêntricos
chamados de trilhas.
■ Existem de 1000 a 5000 trilhas de cada lado de
uma superfície.
Trilha
Setor
Cilindro
Superfície (disco)
Cabeça
15
Discos de Armazenamento
■ Cada trilha é dividida em setores, onde a
informação é armazenada
■ Cada trilha tem 64 a 200 setores, sendo o setor a
menor unidade de informação que pode ser lida
ou escrita.
Trilha
Setor
Cilindro
Superfície (disco)
Cabeça
16
Discos de Armazenamento
■ As cabeças do disco para cada lado da superfície
estão ligadas juntas, e se movem de maneira
solidária, de modo que todas as cabeças estão
sempre sobre a mesma trilha da cada lado da
superfície.
Trilha
Setor
Cilindro
Superfície (disco)
Cabeça
17
Discos de Armazenamento
■ O termo cilindro é usado para identificar todas as
trilhas situadas sob as cabeças de leitura/escrita
em determinado instante.
Trilha
Setor
Cilindro
Superfície (disco)
Cabeça
18
Discos de Armazenamento
■ Acesso aos dados
O SO precisa dirigir o disco atráves de um
procedimento de três estágios.
➔ O primeiro passo é posicionar as cabeças sobre a
trilha que contém a informação desejada. Esta
operação é chamada de busca (seek), e o tempo
necessário para sua realização é chamado de tempo
de busca.
➔ Os fabricantes de discos informam os tempos de
busca máximo, mínimo e médio de seus produtos.
➔ Por ser alta complexidade, o tempo médio é
calculado (normartizado) como a soma todos tempos
de todas as possíveis buscas, didivida pelo número
de possíveis buscas.
19
Discos de Armazenamento
Uma vez localizada a trilha correta, é preciso esperar
que o setor procurado esteja sobre a cabeça.
O tempo para isso ocorrer é chamado de latência
rotacional ou retardo rotacional
A latência média corresponde a meio disco e
considerando que os disco rodam a 3600 e 7200 RPM,
a latência rotacional média está entre
20
Discos de Armazenamento
O último componente do acesso a um disco é o tempo
de transferência, mais especificamente o tempo
necessário para se transferir um bloco de bits
armazenado em um setor.
O tempo de transferência é função do tamanho do setor
e da velocidade de rotação.
O controle do disco e da transferência da informação
dele para a memória é feito por uma unidade conhecida
como controladora de disco.
A controladora de disco adiciona o componente final ao
tempo de acesso a um disco, o tempo de controladora,
que é o overhead imposto para realiação de um acesso
ao disco.
21
Discos de Armazenamento
■ Qual o tempo médio para ler ou escrever
em um disco com setores de 512 bytes,
rodando a 5400 RPM? O tempo médio de
busca (seek) do fabricante é de 12 ms, a
velocidade de transferência é de 5 MB/seg,
e o overhead da controladora é de 2 ms.
Suponha que não há ninguem usando o
disco, portanto tempo de espera é nulo.
22
Discos de Armazenamento
■ Solução
O tempo médio de acesso a um disco é igual ao
tempo médio de busca mais a latência
rotacional média mais o tempo de tranferência
mais o overhead da controladora
12 ms + 5,6 ms + (0,5 Kb / 5 MB/seg) + 2 ms
12 + 5,6 + 0,1 + 2
19,7 ms
23
Barramento
■ Canal de comunicação compartilhado
composto por um conjunto de “fios” para a
conexão entre subsistemas
■ Utilizado para controlar CPU, memória e
periféricos
■ Possibilita a expansão do computador de
forma organizada
■ Vantagens
Versatilidade: ao se definir um sistema único
para conexão (padrão), novos dispositivos
podem ser adicionados/movidos entre sistemas
computacionais que utilizam o mesmo
barramento
Baixo custo: conjunto de fios compartilhados 24
Barramento
■ Desvantagem
O barramento é o gargalo do sistema, uma vez
que não pode ser utilizado para realizar mais
de uma transferência de forma simultânea
■ Operações realizadas no barramento
Entrada ou saída
➔ (1) envio do endereço;
➔ (2) envio ou recepção do dado (ou controle)
27
Barramento
■ Back-plane
Pano de fundo para a ligação de outros
barramentos
Projetados para possibilitar a ligação de vários
grupos de dispositivos de I/O atráves de um
único adaptador ao barramento P/M
■ Back-side cache
Utilizado para conectar a cache diretamente ao
processador
Funciona muitas vezes na mesma frequência do
processador
Porque chamar de barramento, se na prática é
uma porta?
28
Arquiteturas de barramento
■ Os dispositivos de I/O de um sistema
podem estar ligados ao processador de três
formas:
Arquitetura de barramento único
Arquitetura de barramento em dois níveis
Arquitetura de barramento hierarquica
29
Arquiteturas de barramento
■ Barramento único
Memória e dispositivos de I/O estão ligados a
CPU atráves de um único barramento
Forma mais simples de interconexão
Barramento tem que acomodar dispositivos
com características e velocidades bem
diferentes e o desempenho da comunicação cai
CPU Memória
P1 P2 P3
30
Arquiteturas de barramento
■ Barramento de dois níveis
O processador e a memória podem se
comunicar atravé de um barramento principal
Outros barramentos de I/O estão ligados ao
barramento principal através de adaptadores,
compondo um segundo nível na arquitetura de
barramentos
Dessa forma, o barramento principal pode
funcionar a uma velocidade maior já que os
adaptadores se encarregam da comunicação
com os barramentos de I/O mais lentos
31
Arquiteturas de barramento
■ Barramento de dois níveis
cache
cache
CPU Memória
I/O
I/O
Adaptador Adaptador
A P1 A P1
Barramento de
Barramento de
A P2 A P2
A P3 A P3
32
Arquiteturas de barramento
■ Barramento hierárquico
O processador e a memória se comunicam
atravé de um barramento principal
Um barramento backplane concentra toda I/O
do sistema e é ligado ao barramento principal
(só um adaptador é ligado ao barramento
principal)
Ao barramento backplane estão ligados
diferentes barramentos de I/O através de
adaptadores
33
Arquiteturas de barramento
Barramento
■ cache hierárquico
cache
CPU Memória
Adaptador
Barramento de I/O
Adaptador
A A A
P1 P2 P3
Barramento de I/O
Adaptador
A A A
P1 P2 P3 34
Acesso ao barramento
■ O problema em questão, agora, é como
acessar o barramento, isto é, como um
dispositivo ganha o acesso ao barramento?
■ Se isso for fácil de responder, então como
evitar que todos os dispositivos façam isso
ao memos tempo (caos total)?
35
Acesso ao barramento
■ A solução a primeira pergunta é a adoção
de um ou mais “bus master” - mestre de
barramento
■ Controlam o acesso ao barramento
Iniciar e monitorar todas as requisições feitas
ao barramento
Exemplos mais simples é o processador
O problema com esse método é que exige-se
muito tempo da CPU para esse controle
■ Será que existe uma alternativa?
Adoção de diferentes mestres de barramento,
onde cada um pode iniciar uma transação
diferente
Qual problema isso gera?
36
Acesso ao barramento
■ Já a solução a segunda pergunta, que
complementa a pergunta anterior, é o uso
de arbitragem do barramento (decisão
sobre qual dispositivo vai obter o controle
do barramento)
■ Funcionamento
Um dispositivo que quer o controle do
barramento envia um pedido de acesso
(request)
O controle só lhe será dado quando receber um
sinal de garantia (grant) do barramento
Enquanto não recebe o grant, fica esperando
Ao finalizar o uso, sinaliza ao barramento.
37
Acesso ao barramento
■ A idéia da arbitragem é tentar balancear a
garantia de acesso a todos os dispositivos
■ Para isso, esses dois critérios devem ser
atendidos:
Dispositivos com maior prioridade tem acesso
primeiro
Não abandonar dispositivos de baixa prioridade
38
Acesso ao barramento
■ Como nada é perfeito, existem algumas
soluções (esquemas) para arbitragem de
barramento
Daisy Chain
Centralizada com requisição em paralelo
Distribuída
Distribuída com detecção de colisão
39
Acesso ao barramento
■ Esquema de arbitragem Daisy chain
Existe uma linha com a informação da garantia
de uso (grant) do barramento que está ligada a
todos os dispositivos conectados ao
barramento, a partir do dispositivo de maior
prioridade até o de menor
A prioridade é estabelecida pela posição do
dispositivo no barramento
Assim, um dispositivo de alta prioridade
simplesmente intercepta o sinal, não
permitindo que os outros enxergem o sinal.
Tem a vantagem de ser simples e a desvatagem
de não garantir acesso a todos os dispositivos
de forma igualitária
40
Acesso ao barramento
■ Esquema de arbitragem centralizada com
requisição em paralelo
Usa diversas linhas para requisição de acesso,
sendo permitido que os dispositivos requisitem
o uso do barramento independentemente dos
outros
Um árbitro central escolhe qual dos
dispositivos ganhou o acesso e informa que ele
agora é o mestre do barramento
A desvatagem é a necessidade de um árbitro
central, que pode a vir a ser um gárgalo
Exemplo: barramento PCI.
41
Acesso ao barramento
■ Esquema de arbitragem distribuído com
acesso por auto-seleção
Também usa diversas linhas para requisição de
acesso
Cada dispositivo que desejar acessar o
barramento coloca no barramento um código
que o identifica.
A partir do exame constante do barramento, os
próprios dispositivos podem detectar quem está
requisitando o barramento e tem maior
prioridade
A desvatagem é a necessidade de mais linhas
para transportar os sinais de requisição
Exemplo: barramento NuBus, da apple para o
Macintosh II. 42
Acesso ao barramento
■ Esquema de arbitragem distribuído com
acesso por detecção de colisão
Os dispositivos requisitam o barramento de
forma totalmente independente.
Várias requisições de acesso simultâneas
resultam em uma colisão.
Após a detecção da colisão, utiliza-se um
procedimento para selecionar um dos
dispositivos que solicitaram o barramento
Padrão Ethernet
43
Mapeamento de I/O
■ O que faz um barramento é definir regras
do que deve-se fazer para tranferir um
bloco ou palavra
■ Entretanto, como endereçar os dispositivos
(mapeamento de I/O)?
■ Duas formas:
Memory mapped;
ou em portas de I/O.
■ Memory mapped (1)
Um único espaço de endereçamento
Destina-se um conjunto de endereços aos
periféricos
44
Mapeamento de I/O
■ Memory mapped (2)
Instruções à memória pode ser tanto memória
quanto operações de I/O
O mapeamento em memória tem a vantagem de
permitir uma maior proteção ao acesso direto a
dispositivos, pois os endereços de I/O podem
ser controlados pelo S.O.
Ex: processadores da Motorola
■ Em portas de I/O
Dois espaços distintos de endereçamento
Entrada e saída acessadas por instruções
específicas (IN, OUT)
Ex: Microprocessador da INTEL
45
Modos de transferência
■ Outra questão é quando efetuar a
transferência?
■ O que se deseja é:
Rapidez na resposta a eventos criticos
Não sobrecarga da CPU com atividades como
acesso a disco e refresh de memória
■ Três modos de implementar:
Programado
Interrupção
DMA
46
Modos de transferência
■ I/O programada
É controlada pela CPU (registradores e
instruções específicas)
O processador pergunta para cada dispositivo
se este está apto a receber ou transmitir uma
unidade de informação e em caso afirmativo
realiza a transferência
Existem três tipos:
➔ Bloqueado (busy way);
➔ Polling (inquisição).
47
Modos de transferência
■ Bloqueado (busy way)
Uma vez iniciada a comunicação, a CPU fica
ocupada (escrava) até o término da operação
CPU é subutilizada, pois os periféricos são
muito mais lentos que a CPU
Ex: balança eletrônica
■ Polling
A CPU periodicamente testa o conteúdo dos
bits do(s) registrador(es) de estado existente(s)
nos controladores de I/O
Em cada controlador há registradores que
indicam tranferência a ser realizada (status)
No modo polling a CPU possui controle total,
realizando todo o trabalho
48
Modos de transferência
■ Interrupção
Criada para solucionar o problema do tempo
desperdiçado com múltiplos testes que é
inerente do polling
Controladora é avisada pelo dispositivo que
este está pronto para transmitir/receber dados
Principais características
➔ Assincronismo em relação a qualquer instrução,
ocorrendo a qualquer instante
➔ Na ocorrência de uma interrupção, a mesma é
atendida após o término da instrução corrente. O
teste de interrupção é feito depois da execução da
instrução
➔ Diferenciar interrupção de hardware de excessões
49
Modos de transferência
■ DMA (Transferência direta à memória)
Na idéia de interrupção, a CPU é liberada da
tarefa de aguardar por ocorrência de eventos
de I/O, mas continua sendo o elemente ativo
A solução é usar DMA. Dispositivo controlador
é o responsável pela tranferência de dados,
ficando a CPU livre para realizar outras
operações.
Mecanismos de interrupção continuam sendo
utilizados pelo controlador para comunicação
com o processador, mas apenas no término de
um evento de I/O ou na ocorrência de erros
Durante a operação o controlador DMA se
torna o mestre do barramento e controla a
transferência I/O <-> memória 50
FIM
51