Arquiteturas Não Convencionais
de Computadores
Interligando Processador e Periféricos
Roteiro da Aula
• Sistema de Entrada/Saída
– Conceitos básicos
• Discos
• Barramento
– Características
– Sincronização
– Arbitragem
• Implementando Entrada/Saída
– Suporte do S.O.
– Suporte do processador
– Tipos de Entrada/Saída
• Projetando um sistema de Entrada/Saída
• RAID: Melhorando o Desempenho dos Discos
Sistema de E/S
• Dependentes da tecnologia
• Considerações de projeto:
– a possibilidade de expandir o sistema
– o comportamento no caso de falhas
– o desempenho
Sistema de E/S
Processor
Interrupts
Cache
Memory– I/O bus
Main
memory
I/O
controller
Disk
Disk
I/O
controller
I/O
controller
Graphics
output
Network
Sistema de E/S
• Desempenho
– tempo de acesso (latência)
– taxa de transferência (throughput)
– Dependência:
•
•
•
•
características do dispositivo
conexão com o sistema
hierarquia de memória
sistema operacional (software de I/O)
Desempenho com E/S
• Aplicação:
– tempoexecução=100 seg
– CPU = 90 seg, E/S = 10 seg
– tempoexecução= tempoCPU+ tempoE/S
• desempenho da CPU melhora de
50% a cada ano e o do sistema de
E/S não
– tn=to/(1+c)n
• Quanto mais rápida será a aplicação
daqui a 5 anos?
Desempenho com E/S
N anos
0
1
2
3
4
5
TempoCPU
90
90/1.5=60
40
27
18
12
TempoE/S
10
10
10
10
10
10
Tempototal
100
70
50
37
28
22
Melhora do DesempenhoCPU=7.5
Melhora do TempoTotal=4.5
% tempoI/O
10
14
20
27
36
45
Desempenho de E/S
• Métricas
– depende da aplicação
• Taxa de transferência
– Quantidade de dado transferido
– Quantidade de operações de E/S
• Tempo de resposta
Organização de Sistemas Computacionais
(Típico)
Processor
Processor
Processor
Processor
Registers
Registers
Registers
Registers
Cache
Cache
Cache
Cache
Memory
I/O
Desempenho de E/S
• Métricas
– depende da aplicação
• Taxa de transferência
– Quantidade de dado transferido
– Quantidade de operações de E/S
• Tempo de resposta
Dispositivos de E/S
• Comportamento
– Entrada (read once)
– Saída (write only)
– Armazenamento( Podem ser re-lidos e reescritos)
• Taxa de Transferência de Dados
Dispositivos de E/S
Tecnologia dos Dispositivos
• Dirigidos pelo Paradigma de Computação Vigente
– 1950s: migração de batch para processamento on-line
– 1990s: migração para computação ubíqua (unipresente)
• Computação em telefones, livros, carros, vídeo, câmeras, …
• Rede de fibra optica internacionais
• wireless
• Efeitos na Indústria de Dispositivos de Armazenagem:
– Embedded storage
• pequeno, barato, mais confiável, baixo consumo
– Dados
• Alta capacidade, gerenciamento hierarquico do armazenamento
Dispositivos de Armazenamento
•
Finalidade:
– Longa duração, armazenamento não volátil
– Grande, barato, usado nos níveis mais baixo da hierarquia
• Bus Interface:
–
–
–
–
•
Taxa de Transfêrencia
– Cerca de 120 Mbytes/second através da Interface de Barramento.
–
–
•
IDE
SCSI – Small Computer System Interface
Fibre Channel
…..
Cerca de 5 Mbytes/second por Heads.
Dados são movidos em Blocos
Capacidade
– Mais de 500 Gigabytes
– Quadruplica a cada 3 anos
– Podem ser agrupados para armazenarem Terabytes de Dados.
Disk Drivers:Terminologia
Arm Head
Inner Outer
Sector
Track Track
Actuator
Platter
• Vários pratos, com a informação armazenada magneticamente
em ambas superfícies (usual)
• Bits armazenados em trilhas, que por sua vez são divididas em setores
(e.g., 512 Bytes)
• O Atuador move a cabeça (fim do braço,1/superfície) sobre a trilha (“seek”),
seleciona a superfície, espera pelo setor passar sob a cabeça, então lê ou
escreve
– “Cilindro”: todas as trilhas sob as cabeças
Foto: Braço, Cabeça, Atuador e Pratos
Eixo
Braço
Cabeça
Atuador
Pratos (12)
Discos: Exemplos
Seagate Cheetah ST3146807FC
147 Gigabytes
4 disks, 8 heads
10,000 RPM
290,000,000 Total Sectors
4.7 ms avg seek time.
50,000 cylinders
Fibre Channel
Average of 6,000 sectors/cylinder or 800
sectors / track (but different amounts
on each track.)
$499.00
MTBF = 1,200,000 hours
http://www.seagate.com/cda/products/discsales/marketing/detail/0,1121,355,00.html
Discos: Exemplos
Barracuda Cheetah ST320822A
200 Gigabytes
7,200 RPM
8.5 ms avg seek time.
ATA
$299.00
2 disks, 4 heads
390,000,000 Total Sectors
24,000 cylinders
Average of 16,000 sectors/cylinder or 400
sectors / track (but different amounts
on each track.)
MTBF = ???????????? hours
http://www.seagate.com/support/disc/manuals/fc/100195490b.pdf
Disk Device: Desempenho
Outer
Track
Platter
Inner Sector
Head Arm Controller
Spindle
Track
Actuator
• Disk Latency = Seek Time + Rotation Time + Transfer Time +
Controller Overhead
• Seek Time? Depende do no. de trilhas e velocidade de seek
do disco
• Rotation Time? depende da velocidade de rotação do disco
• Transfer Time? depende do data rate (bandwidth) do disco
(densidade dos bits), tamanho da requisição
Disk Device: Desempenho
• Distância Média do setor à Cabeça?
• 1/2 tempo de uma Rotação
– 10000 Revoluções Por Minuto: 166.67 Rev/sec
– 1 revolução = 1/ 166.67 seg: 6.00 millisegundos
– 1/2 rotação (revolução): 3.00 ms
• No Médio de Trilhas Saltadas pelo Braço?
– Soma das distâncias de todos seeke possíveis a
partir de todas as trilhas possíveis / # possibilidades
• Assume-se distribuição randômica
– Indústria usa benchmark padrão
Disco Magnético
Track
Sector
• Propósito:
– Longo tempo, não volátil
– Grande, barato, baixo nível na
hierarquia de memória
Cylinder
Head
Platter
• Characterísticas:
– Seek Time (~8 ms avg)
•
•
•
Read Write
Cache Cache
Electronics
(controller)
Taxa de Transferência
–
–
•
latência posicional
latência rotacional
10-40 MByte/sec
Blocos
Capacidade
–
–
Gigabytes
4X a cada 3 anos
Data
Control
Tempo de Resposta (Response time)
= Queue + Controller + Seek + Rot + Xfer
Service time
Disco: Modelo de Desempenho
• Capacidade
+ 100%/ano (2X / 1.0 ano)
• Transfer rate (BW)
+ 40%/ano (2X / 2.0 anos)
• Tempo de Rotação + Seek
– 8%/ ano (1/2 em 10 anos)
• MB/$
> 100%/ano (2X / 1.0 ano)
Densidade em Área
• Os Bits estão armazenados ao longo da
trilha
– Métrica: Bits Per Inch (BPI)
• Número de trilhas por superfície
– Métrica: Tracks Per Inch (TPI)
• Projetistas de Discos falam em densidade
de bits por área
– Métrica: Bits Per Square Inch
– Denominado: Areal Density
– Areal Density = BPI x TPI
Densidade por Área
Year
Areal Density
1.7
1979
7.7
1989
63
1997
3090
2000
17100
100000
10000
1000
Areal Density
1973
100
10
1
1970
1980
1990
Year
Areal Density = BPI x TPI
2000
História
Data
density
Mbit/sq. in.
Capacity of
Unit Shown
Megabytes
1973:
1. 7 Mbit/sq. in
140 MBytes
1979:
7. 7 Mbit/sq. in
2,300 MBytes
fonte: New York Times, 2/23/98, page C3,
“Makers of disk drives crowd even mroe data into even smaller spaces”
História
1989:
63 Mbit/sq. in
60,000 MBytes
1997:
1450 Mbit/sq. in
2300 MBytes
1997:
3090 Mbit/sq. in
8100 MBytes
fonte: New York Times, 2/23/98, page C3,
“Makers of disk drives crowd even more data into even smaller spaces”
História
disk drive de 1 inch
• 2000 IBM MicroDrive:
– 1.7” x 1.4” x 0.2”
– 1 GB, 3600 RPM,
5 MB/s, 15 ms seek
– Digital camera, PalmPC?
• 2006 MicroDrive?
• 9 GB, 50 MB/s!
– Assumindo que tenham
encontrado um nicho
e o produto é um sucesso
– Assumindo que as tendências
de 2000 continuem
Densidade dos Discos
• Bits armazenados por trilha
– Bits Per Inch (BPI)
• Número de Trilhas por superfície
– Tracks Per Inch (TPI)
• Densidade de Bits por Unidade de Área
– Bits Per Square Inch: Areal Density = BPI x TPI
1,000,000
100,000
Areal Density
Year Areal Density
1973
2
1979
8
1989
63
1997
3,090
2000 17,100
2006 130,000
10,000
1,000
100
10
1
1970
1980
1990
Year
Arquitetura Não Convencional de Computadores
2000
2010
Tendências do tamanho e
desempenho dos discos
• Avanço contínuo de capacidade (60%/yr) e taxa
de transferência (40%/yr)
• Melhora lenta em seek, rotation (8%/yr)
• Tempo de leitura de um disco
Year
Sequentially
Randomly
(1 sector/seek)
1990
4 minutes
6 hours
2000
12 minutes
1 week(!)
2006
56 minutes
3 weeks (SCSI)
2006
171 minutes
7 weeks (SATA)
Custo vs.Desempenho dos Discos
Discos
Discos
Melhora da Latência e Taxa de Transferência
• Enquanto as taxas de transferência dos discos estão
duplicando a latência melhora de um fator de 1.2 a
1.4
100
Bandwidth (MB/s)
80
Latency (msec)
60
40
20
0
1983
1990
1994
1998
Year of Introduction
2003
Dependability
Dependability, Reliability, Availability
•
•
•
•
Reliability –medida pelo mean time to failure (MTTF).
Interrupção de serviço é medida pelo mean time to
repair (MTTR)
Availability – medida do tempo para terminar o serviço
Availability = MTTF/(MTTF + MTTR)
Para aumentar MTTF, deve-se melhorar a qualidade
dos componentes ou projetar o sistema para continuar
operando no caso de falha.
1. Fault avoidance: previne a ocorrência de falha por construção
2. Fault tolerance: uso de redundancia ou bypass de
componentes com falhas.
l
l
Detecção da Falha vs. correção da Falha
Falhas permanentes vs. Faltas transientes
História
• 1956 IBM Ramac — early 1970s Winchester
– Desenvolvido para mainframes, interfaces proprietárias
– Redução de tamanho : 27 in. to 14 in.
• Tamanho e capacidade orientam o mercado mais que
desempenho
• 1970s desenvolvimento
– 5.25 inch floppy disk (microcódigo nos mainframe)
– Emergencia da indústria de padrão de interfaces para discos
• Início dos anos 1980s: PCs e primeiras gerações de
workstations
• Meados dos anos 1980s: Computação Client/server
– Armazenamento centralizado no servidor
• Redução do tamanho dos discos (8 inch para 5.25)
– Mercado de discos se estabiliza
• Padrões industriais : SCSI, IPI, IDE
• Drives para PCs 5.25 inch para 3.5 fim das interfaces proprietárias
• 1900s: Laptops => 2.5 inch drives
• 2000s: Quais dispositivos demandarão novos drives?
Uso de Arrays de Discos Pequenos?
•Katz e Patterson perguntaram 1987:
•Seria possível usar discos pequenos para reduzir gap de
desempenho entre discos e CPUs?
Convencional:
4 disk
3.5” 5.25”
designs
Low End
Disk Array:
1 disk design
3.5”
10”
14”
High End
Substituição de Poucos discos Grandes
por Muitos Discos Pequenos (1988 Disks)
Capacity
Volume
Power
Data Rate
I/O Rate
MTTF
Cost
IBM 3390K
20 GBytes
97 cu. ft.
3 KW
15 MB/s
600 I/Os/s
250 KHrs
$250K
IBM 3.5" 0061
320 MBytes
0.1 cu. ft.
11 W
1.5 MB/s
55 I/Os/s
50 KHrs
$2K
x70
23 GBytes
11 cu. ft.
9X
1 KW
3X
120 MB/s
8X
3900 IOs/s
??? Hrs 6X
$150K
Arrays de Discos tem potencial para altas
taxas de transferência e grande capacidade de
armazenamento (high MB per cu. ft., high MB
per KW) Mas e a Confiabilidade???
Confiabilidade de Array
• Confiabilidade de N discos = Confiabilidade de
1 Disco ÷ N
50,000 Horas ÷ 70 discos = 700 horas
MTTF do sistema: Reduz de 6 anos para 1 mes!
• Arrays (sem redundância) pouco confiável para
ser usado!
Redundant Arrays of (Inexpensive)
Disks
• Arquivos são distrbuídos "striped" entre múltiplos
discos
• Redundância garante disponibilidade do dado
– Disponibilidade: serviço fornecido ao usuário
mesmo no caso de falha de algum componente.
• Discos vão falhar
• Conteúdo reconstruído a partir de dados
redundante armazenado no array.
-Penalidade na capacidade pela informação
redundante
-Penalidade na taxa de transferência pela
atualização da informação redundante
RAIDs: Disk Arrays
Redundant Array of
Inexpensive Disks
• Arrays de discos pequenos e baratos
– Aumento da taxa de transferência
• Dado espalhado sobre múltiplos discos
• Acessos múltiplos são feitos a vários discos simultâneamente
• Confiabilidade é menor que num disco UNICO
• MAS disponibilidade pode ser melhorada pela adição de
discos redundantes(RAID)
– Informação perdida pode ser recuperada através da informação
redundante
– MTTR: tempo de reparo é da ordem de horas
– MTTF: tempo para acontecer uma falha é dezenas de anos.
RAID: Level 0 (No Redundancy; Striping)
blk1
blk2
blk3
blk4
• Discos pequenos múltiplos em vez de um grande disco
– Espalhamento de blocos sobre discos múltiplos– striping –
significa que múltiplos blocos podem ser acessados em paralelo
aumentando o desempenho.
• Um sistema de 4 discos resulta em uma taxa 4X maior que a de
um disco único.
– Mesmo custo que um disco grande
• Nenhuma redundancia, e se um disco falhar?
– Falha em um ou mais discos é mais provável a medida que o
número de discos aumenta.
RAID 1: Disk Mirroring/Shadowing
recovery
group
• Cada disco é duplicado no disco espelho “mirror”
• Redução da taxa na escrita:
Necessidade de duas escritas
• Leituras são otimizadas
• Solução de alto custo:
100% overhead de capacidade
RAID: Level 1 (Redundancy via Mirroring)
blk1.1
blk1.2
blk1.3
blk1.4
blk1.1
blk1.2
blk1.3
blk1.4
redundant (check) data
• Use o dobro de discos de RAID 0 (e.g., 8 pequenos
discos com um segundo conjunto de 4 duplicata de
primeiro conjunto) existe uma cópia do dado.
– # discos redundantes = # de discos de dados – então o custo
duplica
• Escrita deve ser feita em ambos conjunto então o desempenho cai
pela metade.
• E se um disco falha?
– O sistema acessa o disco “espelho” para acessar o dado.
RAID: Level 0+1 (Striping with Mirroring)
blk1
blk2
blk3
blk4
blk1
blk2
blk3
blk4
redundant (check) data
• Combina o melhor de RAID 0 e RAID 1, dado é
espalhado entre quatro discos e espelhado nos outros
quatro discos.
– Melhora taxa de 4X (devido espalhamento)
– # discos redundantes = # discos de dado (2X o custo de um
disco grande)
• Escrita deve ser feita nos dois conjuntos (metade do desempenho
de RAID 0)
• E se um disco falha?
– O sistema acessa o disco “espelho” para acessar o dado.
RAID: Level 2 (Redundancy via ECC)
blk1,b0
blk1,b1
blk1,b2
blk1,b3
Checks
4,5,6,7
1
0
1
0
1
0
1
3
5
6
7
4
2
ECC disks
1
0
Checks
2,3,6,7
Checks
1,3,5,7
ECC discos 4 e 2 aponta para o disco 6 ou 7,
MAS disco ECC disco 1 informa que disco 7 está OK, então disco 6 deve ter
falha.
• ECC discos contem a paridade de um conjunto de discos
diferentes e com sobreposição
– # discos redundantes = log (# total de discos de dado) quase o
dobro do custo de um disco grande.
• Escrita requer computar a paridade para escrever nos discos ECC
• Leitura requer ler disco ECC e confirmar a paridade.
• Pode tolerar falha limitada, desde que o dado pode ser
Infra-estrutura de
reconstruído.
Hardware 2009
RAID 3: Parity Disk
10100011
11001101
10100011
...
registro lógico
Striped registros
físicos
P contem a soma
dos discos por stripe
mod 2 (“parity”).
Se disco falha,
basta subtrair P
da soma dos outros
discos para recuperar
Informação
P
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
RAID 3
• Soma calculada para o grupo de
recuperação para proteger contra falhas
de disco rígido, armazenado em disco P
• Suporta grande capacidade e alta taxa
de transferência do disco: bom para
transferências de grande quantidade de
dados
• Arrays grandes reduzem os custos de
capacidade, mas diminui a disponibilidade
• 33% do Custo da sua capacidade para a
paridade se três discos de dados e um
disco de paridade
RAID: Level 3 (Bit-Interleaved Parity)
blk1,b0
blk1,b1
blk1,b2
blk1,b3
1
0
1
0
(odd)
bit parity disk
• Custo de ter disponibilidade é reduzido a 1/N onde N é
o número de discos em um protection group
– # discos redundantes = 1 × # grupos de proteção
• Escrita requer escrita do dado no disco de dado assim como
computar a paridade (leitura de outros discos)
• Pode tolerar falha limitada desde que o dado pode ser
reconstruído.
• Leitura requer a leitura de todos os discos operacionais assim
como o disco de paridade para calcular o dado desaparecido que
estava armazenado no disco com falha.
Infra-estrutura de
Hardware 2009
RAID: Level 3 (Bit-Interleaved Parity)
blk1,b0
blk1,b1
blk1,b2
blk1,b3
1
0
1
0
disk fails
1
(odd)
bit parity disk
• Custo de alta availability é reduzido a 1/N onde N é o
número de discos em um protection group
– # discos redundantes = 1 × # grupos se proteção
• Escrita requer escrita do dado no disco de dado assim como
computar a paridade (leitura de outros discos)
• Pode tolerar falha limitada desde que o dado pode ser
reconstruído.
• Leitura requer a leitura de todos os discos operacionais assim
como o disco de paridade para calcular o dado desaparecido que
estava armazenado no disco com falha.
Inspiração para RAID 4
• RAID 3 baseia-se no disco de
paridade para descobrir erros na
leitura
• Mas cada setor tem um campo de
detecção de erros
• Para detectar erros na leitura,
poderia usar o campo de detecção
de erros em vez do disco de
paridade
• Suporta leituras independentes de
discos diferentes simultaneamente
RAID 4: High I/O Rate Parity
Interior
de 5
discos
Exemplo:
small read
D0 & D5,
large write
D12-D15
D0
D1
D2
D3
P
D4
D5
D6
D7
P
D8
D9
D10
D11
P
D12
D13
D14
D15
P
D16
D17
D18
D19
P
D20
D21
D22
D23
P
.
.
.
.
Columns
.
.
.
.
.
.
.
.
.
.
Disk
.
Increasing
Logical
Disk
Address
Stripe
RAID: Level 4 (Block-Interleaved Parity)
blk1
blk2
blk3
blk4
block
parity disk
• Custo para maior disponibilidade permanece 1/N mas a paridade é
armazenada como blocos associados com conjuntos de blocos de
dados
– Desempenho 4X maior (striping)
– # discos redundantes = 1 × # de grupos de proteção
– Suporta “small reads” e “small writes” (leituras e escritas que acessam
apenas um disco no grupo de proteção)
• Olhando os bits modificados quando ecrevendo uma nova informação,
necessita apenas mudar bits correspondentes no disco de paridade.
• O disco de paridade deve ser atualizado a cada escrita, tornando-se um
bottleneck.
• Pode tolerar falha limitada desde que o dado pode ser reconstruído
RAID 3 vs RAID4
Pequenas Escritas
• RAID 3 small writes
New D1 data
3 leituras e 2
escritas
envolvendo todos
os discos
D1
D2
D3
D4
P
D1
D2
D3
D4
P
• RAID 4 small writes
New D1 data
2 leituras e
2
escritas envolvendo
apenas dois discos
D1
D2
D3
D4
P
D1
D2
D3
D4
P
Inspiração para RAID 5
• RAID 4 funciona bem para leituras de blocos pequenos
• Escrita de poucos blocos :
– Opção 1: leitura dos outros discos, calcula nova soma e
escreve para Parity Disk
– Opção 2: Como P tem a soma antiga, compare dado
antigo com dado novo e adicione a diferença a P
• Small writes são limitadas pelo Parity Disk: Escrita de D0,
D5 mas ambos escrevem no disco P
D0
D1
D2
D3
P
D4
D5
D6
D7
P
RAID 5: High I/O Rate Interleaved
Parity
Escritas
independentes
devido a
paridade
entrelaçada
Exemplo:
Escrita a
D0, D5 usa
discos 0,
1, 3, 4
D0
D1
D2
D3
P
D4
D5
D6
P
D7
D8
D9
P
D10
D11
D12
P
D13
D14
D15
P
D16
D17
D18
D19
D20
D21
D22
D23
P
.
.
.
.
.
.
.
.
.
.
Disk Columns
.
.
.
.
.
Increasing
Logical
Disk
Addresses
RAID: Level 5 (Distributed Block-Interleaved
Parity)
one of these assigned as the block parity disk
• Custo para maior availability permanece 1/N mas o
bloco de paridade pode ser localizado em qualquer um
dos discos (sem bottleneck para escritas)
– 4X mais desempenho (striping)
– # discos redundantes = 1 × # grupos de proteção
– Suporta “small reads” e “small writes” (leituras e escritas em um
(ou poucos) discos de dados em um grupo de proteção.)
– Permite escrita múltiplas e simultâneas desde que blocos de
paridade não estejam localizados no mesmo disco.
• Pode tolerar falha limitada desde que o dado pode ser
reconstruído
Distributing Parity Blocks
RAID 4
RAID 5
1
2
3
4
P0
1
2
3
4
P0
5
6
7
8
P1
5
6
7
P1
8
9
10
11
12
P2
9
10
13
14
15
16
P3
13
P3
P2
14
11
12
15
16
• Se distribuirmos os blocos de paridades por todos os
discos, escritas poderão se feitas em paralelo.
Comparando…
Berkeley History: RAID-I
• RAID-I (1989)
– Sun 4/280 workstation
com 128 MB de DRAM,
quatro dual-string SCSI
controllers, 28 5.25-inch
SCSI disks and
specialized disk striping
software
• Em 2006 RAID
representava indústria
de $24 billion dollar,
80% dos discos nonPC
vendidos como RAIDs
Barramentos
CPU
Memória
I/O
Barramento de dados
Barramento de endereços
Barramento de controle
Vantagens:
-versatilidade
- baixo custo
Desvantagens:
- limita taxa de transmissão
- # de dispositivos
- tamanho do barramento
Disco lendo memória
envio endereço
C o n t r o l li n e s
M e m o ry
P ro ce s so r
D a t a lin e s
a
Disk s
C o n t r o l li n e s
M e m. o r y
P ro ce s so r
D a t a lin e s
Disk s
b.
C o n t r o l li n e s
P ro ce s so r
M e m o ry
D a t a lin e s
Leitura dos dados
c.
D i sk s
Disco escrevendo em memória
envio endereço
C o n t r o l li n e s
M e m ory
Pro ce s so r
D a t a li n e s
Disks
a.
C o n t r o l li n e s
M e m ory
Pro ce s so r
D a t a li n e s
Escrita dos dados
b.
Disks
Tipos de barramentos
• Processador-memória
– curtos e de alta velocidade
– específicos
Backplane bus
Processor
a.
Memory
I/O devices
Tipos de barramentos
• I/O
– longos
– compatíveis com vários dispositivos
(padronizados)
Processor-memory bus
Processor
Memory
Bus
Bus
Bus
adapter
adapter
adapter
I/O
bus
b.
I/O
bus
I/O
bus
Tipos de barramentos
• Backplane (CPU, memória, I/O)
– padronizados
– baixo custo
Processor-memory bus
Processor
Memory
Bus
adapter
Bus
adapter
I/O bus
Bus
adapter
I/O bus
Backplane
bus
c.
Barramento - Temporização
• Barramento síncrono
• Este tipo de barramento exige que todo o
tráfego de dados e controle seja
sincronizado sob uma mesma base de
tempo (clock)
• Vantagens:
– simplicidade
– desempenho
• Problemas:
– dispositivos devem ter a mesma frequência do
clock
– curtas distancias
• Processador-memória
Barramento - Síncrono
 Ciclo de leitura
T1
T2
dados
Memória decodifica endereço
T2 - Endereço
estável no barramento
T3
relógio
endereço
MREQ - 0
RD - 0
T1 - CPU ativa
sinais de controle
e endereço
endereço de memória
dados
Memória coloca
dados no barra mento de dados
MREQ
RD
MREQ - 1
RD - 1
T3 - Memória libera dados no
barramento
-Dados são lidos
pela CPU
-CPU desabilita
controle
Barramento -Temporização
• Barramento assíncrono
• Este barramento não possui um relógio mestre. Os
ciclos de barramentos podem ter qualquer duração
e não precisam ser iguais para todas as situações.
• Podem incluir vários dispositivos
• Necessita de protocolo de handshake
• Pode ser longo
• Barramento de I/O
Protocolo de Barramento Assíncrono

Leitura da memória por um I/O device
ReadReq
Data
Ack
1
2
addr
data
3
4
6
5
7
DataRdy
I/O device sinaliza requisição ativando ReadReq e colocando addr nas
linhas de dados.
1. Memória vê ReadReq, lê addr da linha de dados e ativa Ack
2.
3.
4.
5.
6.
7.
I/O device vê Ack e desativa ReadReq e linhas de dados
Memory vê ReadReq e desativa Ack
Quando dado da memória está pronto disponibiliza e ativa DataRdy
I/O device vê DataRdy, lê dado e ativa Ack
Memória vê Ack, libera linhas de dados e desativa DataRdy
I/O device vê DataRdy deastivado e desativa Ack
Melhorando o desempenho
• Aumentar barramento de dados
• Separar linhas de dados e endereços
• Transferência em blocos
Maior custo
Maior tempo de resposta
Acessando o barramento
• Mestre do barramento
– inicia e controla todas as requisições ao
barramento
• Quem pode ser mestre?
– Processador
– Dispositivo de I/O
Mestre único (processador)
Bus request lines
Memory
Processor
Bus
Disks
a.
Bus request lines
Memory
Processor
Bus
Disks
b.
Bus request lines
Memory
Processor
Bus
c.
Disks
Mestre único (processador)
• Vantagem:
– simplicidade
• Desvantagem:
– Processador coordena todas as transações
de barramento
– degradação do desempenho
Múltiplos Mestres
• Processador e dispositivos de E/S podem
se tornar mestres
• Necessidade de protocolo
– request
– granted
– bus-release
• Necessidade de esquema de arbitragem
Barramento - Arbitragem
• O que acontece quando dois ou mais
dispositivos querem se tornar mestres do
barramento ao mesmo tempo?
• A arbitragem decide qual mestre terá o controle do
barramento num dado instante
– Arbitragem centralizada
– Arbitragem descentralizada
Barramento - Arbitragem Centralizada
 Arbitragem no barramento PCI (centralizado)
Exemplo para três dispositivos
 O árbitro decide qual mestre controla o barramento
 Desvantagem:
dependência do árbitro

Árbitro PCI
Disp.
PCI A
Disp.
PCI B
Disp.
PCI C
Barramento - Arbitragem Híbrido
(centralizada e distribuída)
• Barramento de um nível usando daisy-chaining
Highest priority
Device 1
Device 2
Grant
Bus
arbiter
Grant
Lowest priority
Device n
Grant
Release
Request
•
•
•
•
Características
1. Todos os dispositivos são ligados em série, assim a permissão, dada
pelo árbitro, pode ou não se propagar através da cadeia.
2. Cada dispositivo deve solicitar acesso ao barramento.
3. O dispositivo mais próximo do árbitro tem maior prioridade.
Barramento - Arbitragem Híbrida
(centralizada e distribuída)
Arbitragem com dois níveis de prioridade
Árbitro
requisição nível 1
requisição nível 2
permissão 1
permissão 2
D1
•
•
•
•
•
D2
D3
Características
1. Cada dispositivo se liga a um dos níveis de requisição.
2. Os dispositivos com tempos mais críticos se ligam aos níveis de
maior prioridade.
3. Se múltiplos níveis de prioridade são requeridos ao mesmo
tempo, o árbitro solta a
permissão apenas para os de prioridade mais alta.
D4
Barramento - Arbitragem Descentralizada
• Arbitragem distribuída por seleção própria
– múltiplas linhas de requisição
– dispositivos requisitantes determinam quem vai
usar o barramento (prioridade)
– Ex: NuBus (Macintosh)
• Arbitragem distribuída com detecção de
colisão
– requisições independentes
– colisões são detectadas e resolvidas
– Ex: Ethernet
Barramento - Aspectos de projeto
• Considerações na implementação de do
barramento do sistema:
Opções
Alta Performance
Largura do barramento
Endereços e dados separados Multiplexação das linhas de
endereço/dados
16 bits, 32 bits, ... (Quanto
Menor, mais barato
maior mais rápido)
Múltiplas palavras menos
Transferência por palavra
overhead
é mais simples
Múltiplos mestres (requer
Apenas um mestre (sem
arbitragem)
arbitragem)
Largura de dados
Transações por pacotes
Barramentos masters
Relógio (Clocking)
Síncrono
Baixo custo
Assíncrono
Barramento - Padrões
Característica
Tipo
Largura (dados)
Multiplexação
end/dados?
Número mestres
Arbitragem
Relógio
PCI
Backplane
32-64
multiplexado
SCSI
I/O
8-32
Multiplexado
Bandwith(teórica)
Bandwith(medida)
múltiplos
Centralizada
Síncrono(33-66
MHz)
133-512 MB/seg
80 MB/seg
Número de dispo.
Comprimento
Nome
1024
0.5 metro
PCI
Múltiplos
Self-selection
Assíncrono ou
síncrono(5-10MHz)
5-40MB/Seg
2.5 – 40 ou 1.5
MB/Seg(ass.)
7-31
25 metros
ANSI X3.31
Barramento - Padrões
Executando operações de E/S
• Comunicação com os dispositivos de E/S:
– envio de comandos aos dispositivos
– transferência de dados de/para dispositivos
– análise do status dos dispositivos e da
transmissão
• Interface entre usuário e dispositivo
– Sistema Operacional
Suporte do S.O. a E/S
• Proteção
– garante o acesso a dispositivos/dados para os
quais se tenha permissão
• Abstração (dispositivo)
– possui rotinas específicas com detalhes de
cada dispositivo
• Gerenciamento
– trata as interrupções causadas pelos
dispositivos
• Escalonamento
– controla a utilização de dispositivos
compartilhados entre processos
Software de E/S
• Organizado em camadas
Processo
(usuário)
Rotinas indep.
do dispositivo.
Tradução de símbolos
(dispositivos,tam.etc.)
Device drivers
Código dependente
do dispositivo
Interrupt
handler
Implementando E/S
• Instruções especiais
– Registradores especiais
• status dos dispositivos
• dado a ser recebido/transmitido
– Proteção
• instruções privilegiadas (só podem ser executadas
via S.O.)
Implementando E/S
• E/S mapeada em memória
– Range de endereços de memória para
armazenar status e dados
– Instruções de E/S : instruções de acesso à
memória
– Proteção:
• tradução do endereço
Implementando E/S
• Pooling
CPU
DISPOSITIVO
1- lê status do disp.
2- envia status
3- Inspeciona status,
se não está pronto va para 1
4- escreve no reg. dado
6- se existe mais dados vá
para 1
5- aceita dado,
status=ocupado até escrita
terminada
Pooling
• Vantagens:
– E/S controlada pela CPU
– simplicidade de implementação
– Dispositivos que iniciam E/S:
• Mouse
• Impressora
• Problema:
– CPU fica esperando pelo dispositivo
Pooling - Overhead
• #ciclospooling=400, clock= 500 MHz
• Qual a fração de tempo da CPU em cada
um dos casos:
– Mouse deve ser verificado 30 vezes/seg
– Floppy transfere palavras de 16 bits a uma
taxa de 50 KB/seg
– O disco rígido transfere blocos de 4 palavras
a uma taxa de 4MB/seg.
?
Pooling
• Vantagens:
– E/S controlada pela CPU
– simplicidade de implementação
– Dispositivos que iniciam E/S:
• Mouse
• Impressora
• Problema:
– CPU fica esperando pelo dispositivo
Pooling - Overhead
• #ciclospooling=400, clock= 500 MHz
• Qual a fração de tempo da CPU em cada
um dos casos:
– Mouse deve ser verificado 30 vezes/seg
– Floppy transfere palavras de 16 bits a uma
taxa de 50 KB/seg
– O disco rígido transfere blocos de 4 palavras
a uma taxa de 4MB/seg.
?
Pooling - Overhead
• Mouse:
– #ciclos = 30 x #ciclospooling= 30 x 400 =
12000 ciclos
– FraçãoCPU = 12000x102/500x106 =0.002%
• Floppy:
– (50 KB/seg)/2 bytes = 25K pooling/seg
– #ciclos=25K x 400 = 10x106
– FraçãoCPU = 10x106 x102/500x106 =2%
Pooling - Overhead
• Disco rígido:
– (4MB/seg)/16 bytes = 250K pooling/seg
– #ciclos=250K x 400 = 100x106
– FraçãoCPU = 100x106 x102/500x106 =20%
Interrupt-driven I/O
• CPU executa outras instruções enquanto
espera E/S
• Sincronização: interrupção
– disp. E/S está pronto para nova transferência
– operação de E/S terminou
– ocorreu erro
• Vantagem:
– melhor utilização da CPU
Interrupt-driven Overhead
• Exemplo anterior: Disco rígido
• transferência em 5% do tempo
– Overheadinterrupção= 500 ciclos
– (4MB/seg)/16 bytes = 250K transf./seg
– #ciclos=250K x 500 = 125x106
– FraçãoCPU = 125x106 x102/500x106 =25%
como o disco só transmite em 5% do tempo:
– FraçãoCPU =25% x 5% = 1.25%
Vantagem: Ausência de overhead quando dispositivo
não está transmitindo
DMA(transf. autonoma)
• Transferência de blocos de dados
– 80 a 512 bytes
• E/S controlada pelo dispositivo de E/S
– parametros:
• end. memória
• tamanho blocos
• end. Dispositivo
• Interrupção da CPU quando DMA termina
DMA Overhead
• Exemplo anterior: Disco rígido
• Blocos => 8KB
• transmissão em 100% do tempo
– Setup=1000 ciclos
– Overheadinterrupção= 500 ciclos
– TempoDMA= 8KB/(4MB/seg)=2x10-3 seg
– #ciclos/seg= (1000+500)/ 2x10-3=750x103
– FraçãoCPU = 750x103 x102/500x106 =0,2%
Projetando um Sistema de E/S
• Restrições de projeto:
– latência
– taxa de transferência
• Latência:
– tempo de resposta admitido pela aplicação
– simplicidade:
• não considera a carga do sistema
Projetando um Sistema de E/S
• Taxa de Transferência
– taxa do componente mais “lento”
– outros componentes devem ser configurados
de forma a trabalhar nesta taxa
Projetando um Sistema de E/S
backplane
Memória
CPU
SCSI
...
...
SCSI
...
Projetando um Sistema de E/S
• CPU
backplane
Memória
CPU
...
SCSI
...
SCSI
...
– 3000x106 instr./seg
– I/O => 100x103 instr. do S.O
• Bus - taxa=1000 MB/seg
• SCSI
– taxa=320MB/seg
– até 7 discos
• Discos
– taxa=75MB/seg
– seek+rotational=6ms
Projetando um Sistema de E/S
backplane
Memória
CPU
...
SCSI
...
SCSI
...
• Workload (aplicação)
– 64KB de leituras
– prog. Usuário => 200x 103
instruções
Qual a taxa de I/O do sistema e
quantos discos pode ter de forma
que esta taxa seja mantida?
Projetando um Sistema de E/S
• Taxa_I/OCPU= (# instr./seg)/(instr. I/O/seg)
= 3000x106 /(200+100)x103=10.000 I/O/seg
• Taxa_I/Obus=taxa/bytes por I/O =
1000x106 /640x103=15625 I/O/seg
CPU tem a menor taxa
Configurar o resto do sistema de forma a se
ter esta taxa de I/O.
Projetando um Sistema de E/S
Quantos discos podemos ter no sistema?
• Tempo_I/Odisco= seek+rotational+transf.=
6+64K/75MB= 6,9 ms
• Taxa_I/Odisco= 1000ms/6,9ms = 146 I/O/seg
• # discos = 10.000/146 = 69 discos
Projetando um Sistema de E/S
Quantos barramentos SCSI?
• # discos = 69 discos
• Taxadisco= tam.bloco/tempo = 64KB/6,9 ms =
9,56 MB/seg
• TaxaSCSI=320MB/seg => pode ter 7 discos
por barramento
• #Bus_SCSI= 69/7 = 10
E/S Macintosh 7200
Processor
PCI
interface/
memory
controller
Main
memory
Stereo
input
output
Serial
ports
Apple
desktop bus
I/O
controller
I/O
controller
I/O
controller
PCI
CDROM
Disk
Tape
SCSI
bus
I/O
controller
I/O
controller
Graphics
output
Ethernet
Resumindo
• Entrada/Saída
– Desempenho: latência e taxa de transferência
– Dependability
• Discos e RAID
• Barramento
– Síncrono e assíncrono
– Arbitragem
•
Resumindo
• Implementando operações de E/S
– Software de E/S
– Instruções do processador
• Tipo de E/S
– Pooling
– Interrupção
– DMA
• Redundância e Disponibilidade
• Projetando um sistema de E/S
Download

entrada-saida