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