quinta-feira, 16 de setembro de 2010

Perifericos

Periféricos de computadores
João Canas Ferreira
Arquitectura de Computadores
FEUP/LEIC
Contém figuras de “Computer Organization and Design” (cap. 8), D. Patterson & J. Hennessey, 3a. ed., Elsevier
Tópicos
1 Periféricos: aspectos gerais
2 Discos magnéticos
3 Comunicação entre CPU e periféricos
4 Desempenho de subsistemas de E/S
ArqComp: Periféricos de computadores 2/37 2007-05-19
1 Periféricos: aspectos gerais
2 Discos magnéticos
3 Comunicação entre CPU e periféricos
4 Desempenho de subsistemas de E/S
ArqComp: Periféricos de computadores 3/37 2007-05-19
Notas:
3
Subsistema de entrada/saída de dados
+ Todos os componentes usados para transferir dados de/para o
subsistema “CPU + Memória” são designados como periféricos.
+ Periféricos típicos são:
1. teclado, rato, monitor;
2. discos magnéticos, discos ópticos;
3. dispositivos de ligação a redes;
4. impressoras, scanners, etc.
+ Alguns critérios de qualidade:
1. fiabilidade: medida do tempo de funcionamente até falhar;
2. disponibilidade: medida do tempo em que o sistema está
operacional;
3. expansibilidade.
+ Desempenho depende de muitos factores: características do
dispositivo, sistema operativo, método de comunicação com o
resto do sistema.
ArqComp: Periféricos de computadores 4/37 2007-05-19
Notas:
4
Classificação de periféricos
+ A diversidade de periféricos é enorme. Uma classificação
simples utiliza os seguintes três critérios:
+ Comportamento:
1. Entrada (leitura única);
2. Saída (escrita única, sem leitura);
3. Armazenamento (leitura e escrita, geralmente mais que
uma vez).
+ Tipo de cliente/fornecedor: Humano ou máquina.
+ Taxa de dados: taxa máxima de transferência de dados para
CPU ou memória.
+ Exemplo: Teclado
É dispositivo de entrada,
É usado por humano
É taxa máxima de dados de 10 bytes/segundo.
ArqComp: Periféricos de computadores 5/37 2007-05-19
Notas:
5
CPU e periféricos: exemplo
ArqComp: Periféricos de computadores 6/37 2007-05-19
Notas:
6
Critérios de desempenho
+ Os critérios de desempenho dependem muito da aplicação.
+ Exemplo: “largura de banda” de E/S (medida de débito) pode
ser considerada de duas maneiras diferentes:
É Que quantidade de dados passa pelo sistema por unidade
de tempo? (unidade: B/s)
É Quantas operações de E/S podem ser executadas por
unidade de tempo?
Aplicações de multimédia, com transferências de ficheiros
longos, estão no primeiro caso.
Recepção de reservas (transacções pequenas) está no 2o caso.
+ Noutras aplicações, interessa o “tempo de resposta” (medida
de latência, que pode ser dependente da largura de banda da
comunicação). Exemplo: computador desktop.
+ Existem aplicações em que interessam ambos os parâmetros:
Multibanco, servidores Web.
ArqComp: Periféricos de computadores 7/37 2007-05-19
Notas:
7
1 Periféricos: aspectos gerais
2 Discos magnéticos
3 Comunicação entre CPU e periféricos
4 Desempenho de subsistemas de E/S
ArqComp: Periféricos de computadores 8/37 2007-05-19
Notas:
8
Disco magnético: vista interna
ArqComp: Periféricos de computadores 9/37 2007-05-19
Notas:
9
Discos magnéticos variados
ArqComp: Periféricos de computadores 10/37 2007-05-19
Notas:
10
Características de um disco magnético
+ Sistema de armazenamento não-volátil.
+ Conjunto de discos (de metal) rotativos com eixo comum: 5400–15000 RPM.
+ Cada disco tem 2 superfícies de gravação cobertas com material magnético.
+ Cada superfície está dividida em círculos concêntricos: as pistas.
+ Cada pista está dividida em sectores (tradicionalmente de 512 bytes, mais
recentemente 4096 bytes).
+ Todas as pistas que estão simultaneamente sob as cabeças de leitura
constituem um “cilindro” (vertical).
+ Em cada pista, a informação está organizada em: no de sector, espaço livre,
informação do sector, espaço livre, no de sector, espaço livre, etc.
+ Actualmente, o número de sectores varia com a posição da pista: pistas
exteriores têm mais sectores.
+ A densidade (bits por unidade de área) tem vindo a aumentar: 100% ao ano
entre 1997 e 2001; 40% ao ano actualmente.
+ Em 2001: 20 × 109 bits/polˆ2 (comercial), 60 × 109 bits/polˆ2 (lab);
+ A escrita ou leitura são efectuadas por cabeças de escrita/leitura ligadas a
um braço. Todas as cabeças de leitura se movimentam simultaneamente:
todas estão sobre o mesmo sector da mesma pista (mas de superfícies
diferentes).
+ A capacidade é indicada em potências de 10: 1 MB = 106 bytes.
ArqComp: Periféricos de computadores 11/37 2007-05-19
Notas:
11
Constituição de um disco magnético
ArqComp: Periféricos de computadores 12/37 2007-05-19
Notas:
12
Tempos de operação
+ Tempo de acesso—soma dos três tempos mencionados a
seguir;
+ Tempo de busca—tempo que demora a pôr o braço no cilindro
pretendido. Fabricantes especificam os tempos
É máximo,
É mínimo,
É médio (soma dos tempos de todas as buscas possíveis/no
de buscas possíveis).
+ Latência de rotação—tempo que o sector pretendido demora a
“surgir” debaixo do braço após cabeça chegar ao cilindro:
5.6 ms–2.0 ms.
+ Tempo de transferência—tempo que demora a transferir um
sector já posicionado sob a cabeça: 30–80 MB/s (SATA: > 125
MB/s)
+ Alguns controladores de disco têm uma cache: 320 MB/s.
+ Tempo de transferência reduz-se 40% ao ano;
+ Tempo de acesso reduz-se 10% ao ano.
ArqComp: Periféricos de computadores 13/37 2007-05-19
Notas:
13
Proximidade dos acessos
O princípio da proximidade também vale para acessos a disco: na
prática, o tempo de busca médio é muito inferior ao especificado
pelos fabricantes.
Gráficos mostram a percentagem de acessos com buscas de
comprimento entre os dois valores do eixo dos YY.
Exemplo (gráfico da esquerda): 8% dos acessos envolveu uma
distância de busca entre 16 e 30 cilindros.
Linha 0 é um caso especial: acessos no mesmo cilindro.
ArqComp: Periféricos de computadores 14/37 2007-05-19
Notas:
14
Cálculo do tempo de leitura
Objectivo: determinar o tempo médio para ler/escrever um sector
de 512 bytes de um disco de 10000 RPM. Tempo médio de busca é
de 6 ms, taxa de transferência de 50 MB/s. O controlador tem um
overhead de 0.2 ms.
É Tempo médio de busca: 6ms
É Latência de rotação (em segundos):
0.5
10000/60
= 0.003
É Tempo de transferência (em segundos):
0.5KB
50MB
=
0.5
50 × 103 = 0.00001
É Controlador acrescenta sempre 0.2ms por transferência.
É Total = 6.0 + 3.0 + 0.01 + 0.2 = 9.2ms
É Se o tempo médio de busca for apenas 25% do especificado:
Total = 1.5 + 3.0 + 0.01 + 0.2 = 4.7ms
ArqComp: Periféricos de computadores 15/37 2007-05-19
Notas:
15
Disponibilidade e fiabilidade
+ Medida de fiabilidade: MTTF (mean time to failure), tempo
médio até falhar. Exemplo: o mesmo fabricante vende modelos
com MTTF: 1200000 h, 600000 h e 330000 h (a 25 oC).
+ Medida de interrupção de serviço: MTTR (mean time to repair),
tempo médio de reparação.
+ Tempo médio entre avarias MTBF(mean time between failures):
MTTF + MTTR.
+ Medida de disponibilidade:
disponibilidade =
MTTF
MTBF
=
MTTF
(MTTF+MTTR)
+ Como aumentar MTTF ?
Aumentar a tolerância a falhas através do uso controlado de
redundância. Por exemplo, fazer acessos simultâneos a dois
discos, de forma a que cada um seja sempre uma cópia do
outro.
RAID: Redundant Array of Inexpensive Disks
ArqComp: Periféricos de computadores 16/37 2007-05-19
Notas:
16
1 Periféricos: aspectos gerais
2 Discos magnéticos
3 Comunicação entre CPU e periféricos
4 Desempenho de subsistemas de E/S
ArqComp: Periféricos de computadores 17/37 2007-05-19
Notas:
17
Barramentos (1/2)
+ Infra-estrutura de comunicação: barramento.
Meio de comunicação partilhado que usa um conjunto de linhas
comuns para ligar múltiplos subsistemas.
+ Vantagens:
É Versatilidade (é fácil adicionar mais subsistemas)
É Baixo custo
+ Desvantagens:
É Possível estrangulamento da comunicação
É Projecto delicado devido a limitações físicas.
+ Barramentos são compostos por linhas de dados e linhas de
controlo.
+ Linhas de controlo: são usadas para efectuar pedidos e para
especificar o tipo de dados.
+ Linhas de dados: transmitir dados, endereços e parâmetros de
comandos complexos.
ArqComp: Periféricos de computadores 18/37 2007-05-19
Notas:
18
Barramentos (2/2)
+ Transacção de barramento: sequência de operações do barramento iniciada
por um pedido. Pode envolver muitas operações individuais.
+ Barramentos podem ser dividos em:
É barramentos processador-memória: curtos, de muito alta
velocidade, adaptados ao susbsistema de memória;
É barramentos de E/S: mais compridos, vários tipos de dispositivos
com taxas de transferência muito diferentes. Geralmente, não ligam
directamente ao CPU.
+ Um barramento síncrono inclui uma linha de relógio e usa um protocolo fixo
de comunicação (com tempos relativos ao sinal de relógio do barramento):
protocolos tendem a ser rápidos e simples.
Desvantagens: todos os dispositivos devem operar à mesma velocidade e
os barramentos não podem ser compridos (degradação do sinal de relógio).
Muito usados em ligações processador-memória.
+ Um barramento assíncrono não tem um sinal de relógio comum. Adpata-se
naturalmente a dispositivos de diferentes velocidades.
Desvantagens: A transmissão de informação deve ser coordenada de
forma mais complexa (protocolo de “handshaking”).
+ Tendência: passar de barramentos com muitas linhas em paralelo para
ligações ponto-a-ponto com poucas linhas e dispositivos ligados por
comutadores.
ArqComp: Periféricos de computadores 19/37 2007-05-19
Notas:
19
Exemplos de barramentos de E/S
+ Dois barramentos normalizados muito usados.
+ Baseados em comunicação ponto-a-ponto (barramentos
“série”).
ArqComp: Periféricos de computadores 20/37 2007-05-19
Notas:
20
Protocolo de comunicação: “handshaking” (1/2)
+ ReadReq: linha controlada pelo dispositivo de E/S.
+ DataRdy: linhas controladas pela memória.
+ Data e Ack : linhas partilhadas,
ArqComp: Periféricos de computadores 21/37 2007-05-19
Notas:
21
Protocolo de comunicação: “handshaking” (2/2)
Exemplo de uma transacção assíncrona:
Transferência de posição de memória para dispositivo de E/S:
1. Memória detecta que sinal ReadReq está a “1”: obtém endereço
da linha de dados e activa Ack para indicar que foi “activada”.
2. Dispositivo de E/S detecta Ack e liberta as linhas de dados e
ReadReq.
3. Memória detecta ReadReq a “0” e coloca Ack a “0” também.
4. Quando a memória tem os dados prontos a transferir, coloca a
informação nas linhas de dados e coloca DataRdy a “1”.
5. Dipositivo E/S detecta DataRdy a “1”, lê dados do barramento,
após o que leva Ack a “1”.
6. Memória detecta Ack a “1”, pelo que baixa DataRdy e liberta as
linhas de dados.
7. Dispositivo de E/S detecta que DataRdy está a “0”, e coloca Ack
a “0”. Pode começar uma nova transacção.
ArqComp: Periféricos de computadores 22/37 2007-05-19
Notas:
22
Sistema baseado num Pentium 4
ArqComp: Periféricos de computadores 23/37 2007-05-19
Notas:
23
Características de controladores E/S
ArqComp: Periféricos de computadores 24/37 2007-05-19
Notas:
24
Tarefas do sistema operativo
+ Características relavantes do sistema de E/S:
É Vários programas partilham o sistema de E/S.
É Sistema de E/S usam (muitas vezes) interrupções para
comunicar informação sobre as operações de E/S, levando
o CPU a entrar em modo supervisor.
É O controlo de baixo nível dos dispositivos de E/S é muito
complexo porque implica a gestão de muitos eventos
simultâneos e porque os requisitos dos dispositivos são
muito minuciosos.
+ Tarefas a executar pelo S. O.:
É Garantir que cada processo apenas acede aos dispositivos
(ou às partes dos dispositivos) a que tem direito.
É Fornecer abstracções que permitam isolar o acesso aos
dispositivos dos detalhes de cada um deles.
É Atender as interrupções geradas pelos dispositivos de E/S.
É Garantir acesso equitativo e eficiente aos dispositivos.
ArqComp: Periféricos de computadores 25/37 2007-05-19
Notas:
25
Comandos de E/S
+ Para executar uma transferência de E/S, o CPU deve seleccionar o
dispositivo e transmitir um ou mais comandos.
+ Método 1: dispositivos mapeados em memória
É Uma secção do espaço de endereçamento é associada a um
dispositivo: leituras e escritas para esses endereços são interpretadas
como comandos.
O sistema de memória ignora os acessos, mas o controlador do
dispositivo detecta-os e actua em concordância.
É O acesso aos dispositivos é controlado: os dispositivos apenas surgem
no espaço de endereçamento do sistema operativo (e não dos
processos individuais).
É Os dispositivos usam os endereços para determinar o tipo de comando.
É A família MIPS usa esta abordagem. (E o nanoMIPS também. . . )
+ Método 2: instruções especiais de I/O
É Alguns processadores têm instruções especiais de E/S que permitem
especificar o número do dispositivo e os dados a enviar/receber.
É A arquitectura IA-32 da Intel (386, Pentium, etc.) usa esta abordagem.
ArqComp: Periféricos de computadores 26/37 2007-05-19
Notas:
26
Comunicação com o processador
Existem duas abordagens à estratégia de comunicação entre CPU e periféricos:
Varrimento (polling)
+ O CPU verifica periodicamente o estado do periférico.
+ O dispositivo simplesmente coloca a informação apropriada num registo,
que é acedido pelo CPU.
+ Vantagem: simplicidade.
+ Desvantagem: pode desperdiçar tempo de CPU significativo. O processador
pode aceder muitas vezes ao dispositivo, apenas para constatar que este
ainda não está pronto.
Interrupções
+ Quando o dispositivo termina uma tarefa, envia uma interrupção ao CPU
(activando uma linha pré-definida).
+ As interrupções são assíncronas em relação à execução de instruções: uma
interrupção não está associada à execução de uma instrução e não implica o
protelamento/suspensão da execução da instrução.
O CPU apenas necessita de verificar se existe uma interrupção pendente
quando inicia a execução de uma nova instrução.
+ Uma interrupção pode vir acompanhada de informação adicional (por
exemplo, a identidade do dispostivo que a gerou ou a sua prioridade).
ArqComp: Periféricos de computadores 27/37 2007-05-19
Notas:
27
Tratamento de interrupções
...
...
sw $fp, 24($sp)
addu $fp, $sp, 32
move $t0, $a0
sw $t0, 20($sp)
sub $a0, $t0, 1
jal rotina
move $t1, $v0
lw $t0, 20($sp)
sw $t1, 16($sp)
sub $a0, $t0, 2
jal rotina
move $t2, $v0
lw $t1, 16($sp)
add $v0, $t1, $t2
...
# tratmento da interrupção
.text 0x80000080
mfc0 $k0, $13
mfc0 $k1, $14
andi $k0, $k0, 0x003c
...
jr $k1
1. execução “normal”
Periférico
2. interrupção
CPU
3. atendimento da
interrupção
4. retomar a execução “normal”
INTR
ACK
(interrupção atendida)
CPU
periférico
ArqComp: Periféricos de computadores 28/37 2007-05-19
Notas:
28
Transferências memória $dispositivos E/S: DMA
+ A transferência de dados entre um dispositivo de E/S e
memória ocorre tipicamente em duas etapas:
1. transferência do dispositivo de E/S para o CPU;
2. transferência do CPU para memória.
+ Em transferências por DMA (Direct Memory Access), os dados
são transferidos directamente do dispositivi para a memória.
+ DMA é realizado por um controlador dedicado, que pode
trabalhar de maneira independente do processador central.
1. CPU prepara a transferência DMA: identificação do
dispositivo, operação a efectuar, endereço de memória
inicial, no de bytes a transferir.
2. Controlador de DMA efectua a transferência, enquanto CPU
prossegue com as respectivas actividades.
3. Após terminar a transferência, o controlador de DMA envia
uma interrupção ao CPU.
ArqComp: Periféricos de computadores 29/37 2007-05-19
Notas:
29
Sistema com DMA
CPU
endereços
dados
Memória
RAM
Controlador
DMA
pedido de controlo do barramento
autorização
Periférico
A
Periférico
B
activar periféricoA
activar
periférico B
pedido de
transferência de A
pedido de
transferência de B
IO_read_or_write
MEM_read_or_write
fim de operação
(interrupção)
ArqComp: Periféricos de computadores 30/37 2007-05-19
Notas:
30
1 Periféricos: aspectos gerais
2 Discos magnéticos
3 Comunicação entre CPU e periféricos
4 Desempenho de subsistemas de E/S
ArqComp: Periféricos de computadores 31/37 2007-05-19
Notas:
31
Impacto de E/S sobre o desempenho
Um programa demora 100 s a terminar. Desse tempo, 90 s são de
tempo de CPU. Assuma que o desempenho de CPU melhora 50%
por ano durante cinco anos, enquanto o sistema de E/S permanece
igual. Ao fim de cinco anos, quanto mais rápido é o programa?
É Tempo de E/S = 100 - 90 = 10 s
É Tabela para cinco anos (valores arredondado à unidade):
Ano CPU (s) E/S (s) Total (s) % E/S
0 90 10 100 10
1 90/1.5 = 60 10 70 14
2 60/1.5 = 40 10 50 20
3 40/1.5 = 27 10 37 27
4 27/1.5 = 18 10 28 36
5 18/1.5 = 12 10 22 45
É Melhoria de desempenho do CPU: 90/12 = 7.5
É Melhoria de desempenho total: 100/22 = 4.5
ArqComp: Periféricos de computadores 32/37 2007-05-19
Notas:
32
Abordagem ao projecto de um sistema E/S
+ Tarefa típica: projectar sistema de E/S de forma a respeitar
restrições de “largura de banda” para uma certa carga
(conjunto de programas a executar).
+ Alternativa: dado um sistema de E/S parcialmente configurado,
equilibrar o sistema de forma a obter a maior largura de banda
possível.
+ Abordagem geral:
1. Determinar o elo mais fraco no sistema de E/S.
2. Configurar este componente para ter o desempenho
pretendido (taxa de transmissão).
3. Determinar os requisitos do resto do sistema e configurar
os demais elementos para permitirem obter a taxa de
transmissão determinada anteriormente.
ArqComp: Periféricos de computadores 33/37 2007-05-19
Notas:
33
Projecto de um sistema de E/S: especificação
(Trata-de de um exemplo muito simplificado. Muitas vezes apenas
simulação permite obter resultados suficientemente rigorosos.)
Especificação do sistema:
1. CPU capaz de executar 3 × 109 instruções/s. Em média, o S. O. dispende
100000 instruções por operação de E/S.
2. Barramento de acesso a memória com uma taxa de transferência de
1000 MB/s.
3. Controladores de disco SCSI Ultra320 com uma taxa de 320 MB/s e capazes
de usar até 7 discos.
4. Discos magnéticos com taxas de transferência de 75 MB/s e um tempo
médio conjunto de busca e latência rotacional de 6 ms.
A carga (para o sistema de E/S) consiste em leituras de 64KB
(leitura sequencial de sectores de uma mesma pista). Os
programas do utilizador gastam 200000 instruções por cada
operação de E/S.
Objectivo: Determinar a maior taxa sustentável de E/S, bem como o
número de discos e de controladores necessários.
(Assumir que nunca existem conflitos nos acessos a disco.)
ArqComp: Periféricos de computadores 34/37 2007-05-19
Notas:
34
Projecto de um sistema de E/S: cálculos (I)
Os componentes fixos são o CPU e memória.
Começar por determinar as restrições impostas por estes
componentes.
É Taxa máxima de E/S do CPU:
Taxa de execução de instruções
No de instruções por E/S
=
3 × 109
(200+100) × 103 = 10000
E/S
s
É Barramento de memória (transferências de 64 KB):
Largura de banda
Bytes por E/S
=
1000 × 106
64 × 103 = 15625
E/S
s
O CPU é o limitador do desempenho. O sistema deve ser
configurado para uma taxa de 10000 operações de E/S por
segundo.
ArqComp: Periféricos de computadores 35/37 2007-05-19
Notas:
35
Projecto de um sistema de E/S: cálculos (II)
Determinar os restantes requisitos do sistema.
É Tempo gasto por cada disco numa operação de E/S:
Tempo por E/S = 6+
64KB
75MB/s
= 6.9ms
É Cada disco pode realizar:
No operações de E/S =
1000
6.9
146
E/S
s
É Para saturar o CPU são necessárias 10000 operações E/S por segundo.
Portanto, o número de discos é:
No de discos =
10000
146
69discos
É A taxa de transmissão de um disco é:
Tamanho da transferência
Tempo de transferência
=
64KB
6.9ms
9.56MB/s
É 7 discos necessitam de 7 × 9.56 = 66.9 MB/s, o que é menor que 320. Logo,
o controlador não é saturado pelos 7 discos.
É O sistema necessitará de b69/7c = 10 controladores.
ArqComp: Periféricos de computadores 36/37 2007-05-19
Notas:
36
Elementos de consulta
+ [Patterson & Hennessy]:
É Secções 8.1, 8.2 (excepto parte sobre RAID [pág. 575–579
da ed. inglesa]), 8.4–8.6
+ [Delgado & Ribeiro]:
É Secções 6.3–6.4 (parcialmente 6.2)
+ [Arroz, Monteiro & Oliveira]:
É Cap. 14
ArqComp: Periféricos de computadores 37/37 2007-05-19