Upload
ines-gama-meneses
View
227
Download
2
Embed Size (px)
Citation preview
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
Mainmemory
I/Ocontroller
I/Ocontroller
I/Ocontroller
Disk Graphicsoutput
Network
Memory– I/O bus
Processor
Cache
Interrupts
Disk
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 TempoCPU TempoE/S Tempototal % tempoI/O
0 90 10 100 101 90/1.5=60 10 70 142 40 10 50 203 27 10 37 274 18 10 28 365 12 10 22 45
Melhora do DesempenhoCPU=7.5
Melhora do TempoTotal=4.5
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)
Memory
I/O
Registers
Cache
ProcessorRegisters
Cache
ProcessorRegisters
Cache
ProcessorRegisters
Cache
Processor
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 re-
escritos)• 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:– IDE– SCSI – Small Computer System Interface– Fibre Channel– …..
• Taxa de Transfêrencia– Cerca de 120 Mbytes/second através da Interface de Barramento.– 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
• Vários pratos, com a informação armazenada magneticamente em ambas superfícies (usual)
• 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
• Bits armazenados em trilhas, que por sua vez são divididas em setores (e.g., 512 Bytes)
Platter
OuterTrack
InnerTrackSector
Actuator
HeadArm
Foto: Braço, Cabeça, Atuador e Pratos
Atuador
Braço Cabeça
Pratos (12)
{Eixo
Discos: Exemplos
Seagate Cheetah ST3146807FC147 Gigabytes
10,000 RPM
4.7 ms avg seek time.
Fibre Channel
$499.00
http://www.seagate.com/cda/products/discsales/marketing/detail/0,1121,355,00.html
4 disks, 8 heads
290,000,000 Total Sectors
50,000 cylinders
Average of 6,000 sectors/cylinder or 800 sectors / track (but different amounts on each track.)
MTBF = 1,200,000 hours
Discos: Exemplos
Barracuda Cheetah ST320822A
200 Gigabytes
7,200 RPM
8.5 ms avg seek time.
ATA
$299.00
http://www.seagate.com/support/disc/manuals/fc/100195490b.pdf
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
Disk Device: Desempenho
Platter
Arm
Actuator
HeadSectorInnerTrack
OuterTrack
• 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
ControllerSpindle
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 SectorTrack
Cylinder
HeadPlatter
• Propósito:– Longo tempo, não volátil– Grande, barato, baixo nível na
hierarquia de memória
• Characterísticas:– Seek Time (~8 ms avg)
• latência posicional• latência rotacional
• Taxa de Transferência– 10-40 MByte/sec– Blocos
• Capacidade– Gigabytes– 4X a cada 3 anos
Tempo de Resposta (Response time) = Queue + Controller + Seek + Rot + Xfer
Service time
Read Cache
Write Cache
Electronics (controller)
Data Control
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 ÁreaYear Areal Density
1973 1.71979 7.71989 631997 30902000 17100
1
10
100
1000
10000
100000
1970 1980 1990 2000
Year
Area
l Den
sity
Areal Density = BPI x TPI
História
fonte: New York Times, 2/23/98, page C3, “Makers of disk drives crowd even mroe data into even smaller spaces”
Data densityMbit/sq. in.
Capacity ofUnit ShownMegabytes
1973:1. 7 Mbit/sq. in140 MBytes
1979:7. 7 Mbit/sq. in2,300 MBytes
História
1989:63 Mbit/sq. in60,000 MBytes
1997:1450 Mbit/sq. in2300 MBytes
1997:3090 Mbit/sq. in8100 MBytes
fonte: New York Times, 2/23/98, page C3, “Makers of disk drives crowd even more data into even smaller spaces”
Históriadisk 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
Arquitetura Não Convencional de Computadores
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 TPIYear Areal Density1973 2 1979 8 1989 63 1997 3,090 2000 17,100 2006 130,000
1
10
100
1,000
10,000
100,000
1,000,000
1970 1980 1990 2000 2010
Year
Are
al D
ensi
ty
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 hours2000 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
0
20
40
60
80
100
1983 1990 1994 1998 2003Year of Introduction
Bandwidth (MB/s)
Latency (msec)
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ção2. Fault tolerance: uso de redundancia ou bypass de
componentes com falhas.l Detecção da Falha vs. correção da Falhal 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?
14”10”5.25”3.5”
3.5”
Disk Array: 1 disk design
Convencional: 4 disk designs
Low End High End
•Katz e Patterson perguntaram 1987: •Seria possível usar discos pequenos para reduzir gap de desempenho entre discos e CPUs?
Substituição de Poucos discos Grandes por Muitos Discos Pequenos (1988 Disks)
Capacity Volume PowerData Rate I/O Rate MTTF Cost
IBM 3390K20 GBytes97 cu. ft.
3 KW15 MB/s
600 I/Os/s250 KHrs
$250K
IBM 3.5" 0061320 MBytes
0.1 cu. ft.11 W
1.5 MB/s55 I/Os/s50 KHrs
$2K
x7023 GBytes11 cu. ft.
1 KW120 MB/s
3900 IOs/s??? Hrs$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???
9X
3X
8X
6X
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
• 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.
Redundant Array of Inexpensive Disks
RAID: Level 0 (No Redundancy; Striping)
• 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.
blk1 blk3blk2 blk4
RAID 1: Disk Mirroring/Shadowing
• 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
recoverygroup
RAID: Level 1 (Redundancy via Mirroring)
• 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.
blk1.1 blk1.3blk1.2 blk1.4 blk1.1 blk1.2 blk1.3 blk1.4
redundant (check) data
RAID: Level 0+1 (Striping with Mirroring)
• 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.
blk1 blk3blk2 blk4 blk1 blk2 blk3 blk4
redundant (check) data
RAID: Level 2 (Redundancy via ECC)
blk1,b0 blk1,b2blk1,b1 blk1,b3Checks 4,5,6,7
Checks 2,3,6,7
Checks 1,3,5,7
3 5 6 7 4 2 1
10 0 0 11
ECC disks0
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.
1
Infra-estrutura de Hardware 2009
• 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 reconstruído.
RAID 3: Parity Disk
P101000111100110110100011
. . . registro lógico 1
0100011
11001101
10100011
11001101
P contem a soma dos discos por stripe mod 2 (“parity”).Se disco falha,basta subtrair P da soma dos outros discos para recuperarInformação
Striped registrosfísicos
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,b2blk1,b1 blk1,b3
10 01(odd)
bit parity disk
Infra-estrutura de Hardware 2009
• 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.
RAID: Level 3 (Bit-Interleaved Parity)
• 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.
blk1,b0 blk1,b2blk1,b1 blk1,b3
10 0 1(odd)
bit parity diskdisk fails
1
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
D0 D1 D2 D3 P
D4 D5 D6 PD7
D8 D9 PD10 D11
D12 PD13 D14 D15
PD16 D17 D18 D19
D20 D21 D22 D23 P...
.
.
.
.
.
.
.
.
.
.
.
.Disk Columns
IncreasingLogical
Disk Address
Stripe
Interior de 5 discos
Exemplo:small read D0 & D5, large write D12-D15
RAID: Level 4 (Block-Interleaved Parity)
• 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
blockparity disk
blk1 blk2 blk3 blk4
RAID 3 vs RAID4
Pequenas Escritas• RAID 3 small writes
New D1 data
D1 D2 D3 D4 P
D1 D2 D3 D4 P
3 leituras e 2 escritas
envolvendo todos os discos
• RAID 4 small writesNew D1 data
D1 D2 D3 D4 P
D1 D2 D3 D4 P
2 leituras e 2 escritas envolvendo apenas dois discos
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 PD7
RAID 5: High I/O Rate Interleaved Parity
Escritas independentes devido a paridade entrelaçada
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
IncreasingLogical
Disk Addresses
Exemplo: Escrita a D0, D5 usa discos 0, 1, 3, 4
RAID: Level 5 (Distributed Block-Interleaved Parity)
• 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
one of these assigned as the block parity disk
Distributing Parity Blocks
• Se distribuirmos os blocos de paridades por todos os discos, escritas poderão se feitas em paralelo.
1 2 3 4 P0
5 6 7 8 P1
9 10 11 12 P2
13 14 15 16 P3
RAID 4 RAID 5
1 2 3 4 P0
5 6 7 P1 8
9 10 P2 11 12
13 P3 14 15 16
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 endereçosBarramento de dados
Barramento de controle
Vantagens: -versatilidade - baixo custo
Desvantagens: - limita taxa de transmissão
- # de dispositivos - tamanho do barramento
Disco lendo memória
M e m o r y P r o c e s s o r
C o n t r o l l i n e s
D a t a l i n e s
D i s k s
M e m o r y P r o c e s s o r
C o n t r o l l i n e s
D a t a l i n e s
D i s k s
P r o c e s s o r
C o n t r o l l i n e s
D a t a l i n e s
D i sk s
a
.
b .
c .
M e m o r y
envio endereço
Leitura dos dados
Disco escrevendo em memória
M e m o r y P r o c e s s o r
C o n t r o l l i n e s
D a t a l i n e s
D i s k s
P r o c e s s o r
C o n t r o l l i n e s
D a t a l i n e s
D i s k s
a .
b .
M e m o r y
envio endereço
Escrita dos dados
Tipos de barramentos
Processor Memory
Backplane bus
a. I/O devices
• Processador-memória– curtos e de alta velocidade– específicos
Tipos de barramentos
Processor Memory
Processor-memory bus
b.
Busadapter
Busadapter
I/Obus
I/Obus
Busadapter
I/Obus
• I/O– longos– compatíveis com vários dispositivos
(padronizados)
Tipos de barramentos
Processor MemoryProcessor-memory bus
c.
Busadapter
Backplanebus
Busadapter
I/O bus
Busadapter
I/O bus
• Backplane (CPU, memória, I/O)– padronizados – baixo custo
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
relógio
endereço
dados
MREQ
RD
dados
endereço de memória
T1 T2 T3
T1 - CPU ativasinais de controlee endereço
T2 - Endereço estável no barra-mento
T3 - Memória li-bera dados nobarramento
-Dados são lidospela CPU-CPU desabilitacontrole
MREQ - 0RD - 0
Memória deco-difica endereço
Memória colocadados no barra -mento de dados
MREQ - 1RD - 1
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
7. I/O device vê DataRdy deastivado e desativa Ack
Leitura da memória por um I/O device
I/O device sinaliza requisição ativando ReadReq e colocando addr nas linhas de dados.
12
3
ReadReq
Data
Ack
DataRdy
addr data
4
56
7
1. Memória vê ReadReq, lê addr da linha de dados e ativa Ack
2. I/O device vê Ack e desativa ReadReq e linhas de dados3. Memory vê ReadReq e desativa Ack4. Quando dado da memória está pronto disponibiliza e ativa DataRdy5. I/O device vê DataRdy, lê dado e ativa Ack6. Memória vê Ack, libera linhas de dados e desativa DataRdy
Melhorando o desempenho
• Aumentar barramento de dados• Separar linhas de dados e endereços• Transferência em blocos
Maior custoMaior 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)
Memory Processor
Bus request lines
Bus
Disks
Bus request lines
Bus
Disks
Processor
Bus request lines
Bus
Disks
a.
b.
c.
ProcessorMemory
Memory
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
Árbitro PCI GN
TR
EQ
GN
TR
EQ
GN
TR
EQ
Disp.PCI A
Disp.PCI B
Disp.PCI C
Arbitragem no barramento PCI (centralizado) Exemplo para três dispositivos O árbitro decide qual mestre controla o barramento Desvantagem:
dependência do árbitro
Barramento - Arbitragem Híbrido
(centralizada e distribuída)
• Barramento de um nível usando daisy-chaining
• 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.
Device n
Lowest priority
Device 2Device 1
Highest priority
Busarbiter
GrantGrant Grant
Release
Request
Barramento - Arbitragem Híbrida(centralizada e distribuída)
Arbitragem com dois níveis de prioridade
• 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.
Árbitro
D1 D2 D3 D4
permissão 1permissão 2
requisição nível 1requisição nível 2
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 Baixo custo
Largura do barramento Endereços e dados separados Multiplexação das linhas deendereço/dados
Largura de dados 16 bits, 32 bits, ... (Quantomaior mais rápido)
Menor, mais barato
Transações por pacotes Múltiplas palavras menosoverhead
Transferência por palavraé mais simples
Barramentos masters Múltiplos mestres (requerarbitragem)
Apenas um mestre (semarbitragem)
Relógio (Clocking) Síncrono Assíncrono
Barramento - PadrõesCaracterística PCI SCSITipo Backplane I/OLargura (dados) 32-64 8-32Multiplexaçãoend/dados?
multiplexado Multiplexado
Número mestres múltiplos MúltiplosArbitragem Centralizada Self-selectionRelógio Síncrono(33-66
MHz)Assíncrono ousíncrono(5-10MHz)
Bandwith(teórica) 133-512 MB/seg 5-40MB/SegBandwith(medida) 80 MB/seg 2.5 – 40 ou 1.5
MB/Seg(ass.)Número de dispo. 1024 7-31Comprimento 0.5 metro 25 metrosNome PCI 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.
Device drivers
Interrupt handler
Tradução de símbolos (dispositivos,tam.etc.)
Código dependentedo dispositivo
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 5- aceita dado, status=ocupado até escrita terminada6- se existe mais dados vápara 1
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
CPU Memóriabackplane
SCSI
...
SCSI
...
...
CPU Memóriabackplane
SCSI
...
SCSI
...
...
Projetando um Sistema de E/S
• CPU– 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
CPU Memóriabackplane
SCSI
...
SCSI
...
...
Projetando um Sistema de E/S
• 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
• 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
Quantos discos podemos ter no sistema?
Projetando um Sistema de E/S
• # 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
Quantos barramentos SCSI?
E/S Macintosh 7200
Mainmemory
I/Ocontroller
I/Ocontroller
Graphicsoutput
PCI
CDROM
Disk
Tape
I/Ocontroller
Stereo
I/Ocontroller
Serialports
I/Ocontroller
Appledesktop bus
Processor
PCIinterface/memory controller
EthernetSCSI bus
outputinput
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