Arquiteturas Não Convencionais de Computadores
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 • Resumo
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
Main memory I/O controller I/O controller I/O controller Disk Graphics output Network Memory– I/O busProcessor
Cache
Interrupts
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
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 10 1 90/1.5=60 10 70 14 2 40 10 50 20 3 27 10 37 27 4 18 10 28 36 5 12 10 22 45
Melhora do DesempenhoCPU=7.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
Dispositivos de E/S
• Comportamento
– Entrada (read once) – Saída (write only)
– Armazenamento( Podem ser lidos e re-escritos)
Flash Storage
• Armazenamento de semicondutores não
voláteis
– 100 × - 1000 × mais rápido que o disco – Menor, menor potência, mais robusto – Mas mais $ / GB (entre disco e DRAM)
Flash Types
• Flash NOR: bit como a porta NOR
– Acesso aleatório de leitura / gravação
– Usado para armazenamento deinstrução em sistemas embarcados
• Flash NAND: célula bit como porta NAND
– Maior densidade (bits / área), mas acesso de bloco por vez
– Mais barato por GB
Disk Storage
• Armazenamento magnético rotativo não
volátil
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 Outer Track Inner Track Sector Actuator Head Arm
Foto: Braço, Cabeça, Atuador e Pratos
Atuador Braço Cabeça Pratos (12) EixoPlatter Track Platters Sectors Tracks
Discos magnéticos
• # discos: 1-15 (2 lados) • rotação: 3600 - 7200 rpm • diâmetro: 1-8 inch • # trilhas: 1000-5000 • # setores: 64-200 • setor: 512 bytesDiscos magnéticos
• Acesso:
– posicionamento da cabeça leitura/escrita
• seek time (mínimo, máximo, médio)
– seleção do setor
• rotational delay (médio)
• ARD = 0.5/3600 RPM = 0.5/3600/60=8.3ms
– tempo de transferência
• depende do tamanho do setor, rotação e capacidade de armazenamento da trilha • 1997: 2 - 15 MB/seg
Discos magnéticos
• Calculando tempo de leitura:
– Qual o tempo para ler um setor de um disco rotacionando a 10000 rpm?
• Seek time = 6ms (médio) • Taxa = 50 MB/seg
• Overhead controle = 0,2ms
Tempo = seek + rotational + transferencia + overhead
Tempo =6ms + 0.5/(10000/60) + 0.5KB/(50MB/seg) + 0,2ms Tempo =6ms +3 + 0.1+ 0,2ms=9,2ms
Discos / História
1973: 1. 7 Mbit/pol2 140 MBytes 1979: 7. 7 Mbit/pol2 2,300 MBytessource: New York Times, 2/23/98, page C3,
1 10 100 1000 10000 1970 1980 1990 2000 Year A re a l D e n s it y
Discos: história
1989: 63 Mbit/pol2 60,000 MBytes 1997: 1450 Mbit/pol2 2300 Mbytes (2.5” diâmetro)source: N.Y. Times, 2/23/98, page C3
1997: 3090 Mbit/p2. 8100 Mbytes (3.5” diâmetro) 2000: 10,100 Mb/p2 25,000 MBytes 2000: 11,000 Mb/p2 73,400 MBytes
Sistemas de Armazenamento
Confiabilidade e Disponibilidade
Confiança, confiabilidade e Disponibilidade
•
Confiança = qualidade de serviço
1. Especificação do serviço
• Serviço entregue como especificado
2. Interrupção do serviço
• Serviço entregue é diferente do
especificado
•
Transições de 1 para 2: falhas
Infra-estrutura de Hardware Service accomplishment Service delivered as specified Service interruption Deviation from specified service Failure Restoration
Confiança, confiabilidade e Disponibilidade
• Fault: falha de componente
– Pode levar ou não a uma falha no sistema
Confiança, confiabilidade e Disponibilidade
•
Confiabilidade =
– Medida da realização continua do serviço – Tempo para a falha (MTTF)
•
Interrupção do serviço
– Tempo médio para reparo (MTTR)
•
Tempo médio entre falhas (MTBF)
Confiança, confiabilidade e Disponibilidade
•
Disponibilidade: medida de realização
de um serviço:
Confiança, confiabilidade e Disponibilidade
•
Para aumentar a MTTF, deve-se melhorar a
qualidade dos componentes ou projetar o
sistema para continuar operando no caso de
falha.
– Fault avoidance: previne a ocorrência de falha por construção
– Fault tolerance: uso de redundancia ou bypass de componentes com falhas.
– Detecção da Falha vs. correção da Falha – Falhas permanentes vs. Faltas transientes
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
• Reliability é menor que num disco UNICO
• MAS availability 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.
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.2 blk1.3 blk1.4 blk1.1 blk1.2 blk1.3 blk1.4
RAID: Level 2 (Redundancy via ECC)
blk1,b0 blk1,b1 blk1,b2 blk1,b3 Checks 4,5,6,7 Checks 2,3,6,7 Checks 1,3,5,7 3 5 6 7 4 2 1 1 0 0 1 0 1 ECC disks 0ECC 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
Arquiteturas Não Convencionais de Computadores
• 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: Level 3 (Bit-Interleaved Parity)
blk1,b0 blk1,b1 blk1,b2 blk1,b3 1 0 0 1 (odd) bit parity diskArquiteturas Não Convencionais de Computadores
• Custo de alta 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,b1 blk1,b2 blk1,b3
1
0 0 1
(odd) bit parity disk
disk fails
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
block parity disk
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 writes
New D1 data
D1 D2 D3 D4 P
D1 D2 D3 D4 P
2 leituras e 2
escritas envolvendo apenas dois discos
RAID: Level 5 (Distributed Block-Interleaved
Parity)
• Custo para maior disponibilidade 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
• 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
Sistema de E/S
Main memory I/O controller I/O controller I/O controller Disk Graphics output Network Memory– I/O busProcessor
Cache
Interrupts
Barramentos
CPU Memória I/O
Barramento de endereços Barramento de dados Barramento de controle Vantagens: -versatilidade - baixo custo Desvantagens:
- limita taxa de transmissão - # de dispositivos
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 s k s a . b . c . M e m o r y envio endereçoDisco 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çoTipos de barramentos
Processor Memory Processor-memory bus c. Bus adapter Backplane bus Bus adapter I/O bus Bus adapter I/O bus• Processador Memória
• Backplane (CPU, memória, I/O)
• I/O
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
Barramento - Síncrono
Ciclo de leitura relógio endereço dados MREQ RD dados endereço de memória T1 T2 T3 T1 - CPU ativa sinais de controle e endereço T2 - Endereço estável no barra-mento T3 - Memória li-bera dados no barramento-Dados são lidos pela CPU -CPU desabilita controle MREQ - 0 RD - 0 Memória deco-difica endereço Memória coloca dados no barra -mento de dados MREQ - 1 RD - 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
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. 1 2 3 ReadReq Data Ack DataRdy addr data 4 5 6 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 dados 3. Memory vê ReadReq e desativa Ack
4. Quando dado da memória está pronto disponibiliza e ativa DataRdy 5. I/O device vê DataRdy, lê dado e ativa Ack
Melhorando o desempenho
• Aumentar barramento de dados
• Separar linhas de dados e endereços
• Transferência em blocos
Maior custo
Acessando o barramento
• Mestre do barramento
– inicia e controla todas as requisições ao barramento
• Quem pode ser mestre?
– Processador
Mestre único (processador)
Memory Processor
Bus request lines Bus
Disks
Bus request lines Bus
Disks
Processor Bus request lines
Bus Disks a. b. c. Processor Memory Memory
Mestre único (processador)
• Vantagem:
– simplicidade
• Desvantagem:
– Processador coordena todas as transações de barramento
Múltiplos Mestres
• Processador e dispositivos de E/S podem
se tornar mestres
• Necessidade de protocolo
– request – granted
– bus-release
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
Barramento -
Arbitragem Centralizada
Árbitro PCI Disp. PCI A Disp. PCI B Disp. PCI CArbitragem no barramento PCI (centralizado) ⎯ Exemplo para três dispositivos
⎯ O árbitro decide qual mestre controla o barramento ⎯ Desvantagem:
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 2 Device 1 Highest priority Bus arbiter Grant Grant 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 1 permissão 2 requisição nível 1 requisiçã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 de endereço/dados
Largura de dados 16 bits, 32 bits, ... (Quanto maior mais rápido)
Menor, mais barato
Transações por pacotes Múltiplas palavras menos overhead
Transferência por palavra é mais simples
Barramentos masters Múltiplos mestres (requer arbitragem)
Apenas um mestre (sem arbitragem)
Barramento - Padrões
Firewire USB 2.0 PCI Express Serial ATA Serial Attached SCSI Intended use External External Internal Internal External Devices per
channel
63 127 1 1 4
Data width 4 2 2/lane 4 4
Peak bandwidth 50MB/s or 100MB/s 0.2MB/s, 1.5MB/s, or 60MB/s 250MB/s/lane 1×, 2×, 4×, 8×, 16×, 32× 300MB/s 300MB/s Hot pluggable
Yes Yes Depends Yes Yes
Max length 4.5m 5m 0.5m 1m 8m
Standard IEEE 1394 USB
Implementers Forum
PCI-SIG SATA-IO INCITS TC T10
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
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 dependente do dispositivoImplementando 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:
Implementando E/S
• Polling
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 terminada
6- se existe mais dados vá para 1
Polling
• Vantagens:
– E/S controlada pela CPU
– simplicidade de implementação – Dispositivos que iniciam E/S:
• Mouse
• Impressora
• Problema:
Polling - Overhead
• #ciclos
pooling=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.
Polling
• Vantagens:
– E/S controlada pela CPU
– simplicidade de implementação – Dispositivos que iniciam E/S:
• Mouse
• Impressora
• Problema:
Polling - Overhead
• #ciclos
polling=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.
Polling- Overhead
• Mouse:
– #ciclos = 30 x #ciclospolling= 30 x 400 = 12000 ciclos
– FraçãoCPU = 12000x102/500x106 =0.002%
• Floppy:
– (50 KB/seg)/2 bytes = 25K polling/seg
– #ciclos=25K x 400 = 10x106
Polling - Overhead
• Disco rígido:
– (4MB/seg)/16 bytes = 250K pooling/seg
– #ciclos=250K x 400 = 100x106
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:
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
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
E/S Macintosh 7200
Main memory I/O controller I/O controller Graphics output PCI CDROM Disk Tape I/O controller Stereo I/O controller Serial ports I/O controller Apple desktop bus Processor PCI interface/ memory controller Ethernet SCSI bus output inputResumindo
• 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