I/O Transferências de dados 1 Introdução Um importante aspecto na arquitectura de computador é o modo como são efectuadas as operações de I/O Envio de comandos Resposta a pedidos dos periféricos CPU periféricos CPU periféricos Trocas de dados CPU periféricos memória periféricos periféricos periféricos 2 Introdução O sistema tem que dar uma boa resposta a uma grande variedade de periféricos, que funcionam a “velocidades” diferentes Dispositivo Ritmo das transferências (máximo) Teclado 10 B/s Rato 100 B/s Scanner 400 KB/s Impressora laser 400 KB/s Placa de som 1 MB/s Monitor 100 MB/s a 1 GB/s (depende da resolução) Disco (magnético) 30 a 320 MB/s (depende do disco) CD-R (52x) 8 MB/s DVD-R (16x) 21.6 MB/s Blu-ray (6x) 27 MB/s 3 Introdução Ao mesmo tempo... Não é conveniente o CPU estar à espera de respostas de periféricos Se isso acontece, desperdiça-se tempo de processamento... Não é conveniente o CPU ter um papel activo quando as transferências de dados são entre dispositivos externos Memória disco Disco memória Memória placa gráfica etc. 4 Acesso aos dispositivos Controladores de dispositivo (adapters) Interface que cada dispositivo apresenta ao resto do sistema Um controlador é geralmente constituído por: Conjunto de registos programáveis Conjunto de registos para escrita e leitura de dados Lógica de controlo Mais ou menos complexa, consoante o dispositivo 5 Acesso aos dispositivos I/O dedicada A cada registo dos diversos controladores é atribuído um número designado por porto (I/O Port) O acesso é feito utilizando instruções do tipo in e out (assembly) in registo, port copia o conteúdo do registo do controlador de periférico para um registo da CPU out port, registo copia o conteúdo de um registo da CPU para um registo do controlador Requer linhas de controlo dedicadas para cada dispositivo 6 Acesso aos dispositivos Memory-mapped I/O Deste modo o acesso aos dispositivos é feito como se tratasse de um acesso à memória Cada registo do controlador encontra-se mapeado para uma posição de memória Uma escrita ou leitura nessa posição de memória corresponde na realidade a uma escrita / leitura no registo do controlador Os dispositivos, CPU e memória podem partilhar os mesmos barramentos 7 Acesso aos dispositivos I/O dedicada vs. Memory-mapped I/O Espaço de endereçamento Espaço dos periféricos Espaço de endereçamento Ports I/O I/O dedicada Memory-mapped I/O 8 Operações de I/O Existem basicamente três formas diferentes de efectuar operações de I/O I/O programada I/O por interrupções I/O por DMA 9 I/O Programada (Polling) O CPU efectua todo o trabalho de I/O enviando e recebendo os dados dos dispositivos Após despachar um conjunto de dados (normalmente organizados por blocos), verifica se o periférico está pronto para continuar Problema: O processador desperdiça muito tempo de processamento à espera de poder continuar, pois de um modo geral os periféricos são muito lentos face à sua velocidade 10 I/O por Interrupções Uma maneira mais eficiente deixar o CPU a correr normalmente os programas, interrompendo apenas quando é necessário Exemplo: para se servir um pedido de um periférico que não pode esperar Diz-se que ocorre uma interrupção O programa que foi interrompido poderá mais tarde ser retomado a partir do ponto em que se encontrava na altura da interrupção Vantagem: Com este modelo, o processador envia / recebe dados do periférico, mas depois pode dedicar-se a outra tarefa – não fica em espera Eventual problema: As interrupções podem ocorrer com demasiada frequência (se existirem muitos dados envolvidos na transferência) 11 I/O por Interrupções Interrupções de hardware (vectorizadas) 2. Controlador activa linha de interrupções 11 12 1 2 10 9 3 8 4 7 6 5 CPU Controlador de Interrupções Relógio Teclado Disco Impressora 3. CPU envia Acknowledge 1. Dispositivo termina I/O 4. Controlador coloca interrupt vector no BUS IRQ é activada 12 I/O por Interrupções Quando ocorre uma interrupção, o CPU: Salvaguarda numa pilha todos os seus registos Desactiva temporariamente as interrupções PUSH dos registos e do estado da unidade funcional (flags) Para não ser “interrompido” enquanto trata de uma interrupção Lê o interrupt vector obtendo o endereço de início da rotina de serviço à interrupção Salta para esse endereço e executa essa rotina Terminado o serviço à interrupção: Restauram-se os valores dos registos e do estado Activam-se as interrupções Salta-se para o valor restaurado de PC Continua a partir do ponto onde estava quando foi interrompido 13 I/O por DMA DMA (Direct Memory Access) Liberta o processador em transferências de dados que envolvem a memória e periféricos BUS 4. Transferência de dados 1. CPU programa o controlador DMA 2. DMA REQ Endereço Contador Controlo CPU 5. Interrupção Controlador de DMA buffer 3. DMA ACK Controlador de Disco Memória RAM 14 I/O por DMA Semelhante a I/O programada, mas o controlador DMA substitui o processador O processador limita-se a dar as instruções necessárias ao controlador de DMA para iniciar a transferência de dados Quando o controlador DMA terminar a transferência de dados, notifica o processador através de uma interrupção Vantagem Uma só interrupção após toda a operação de I/O terminar Desvantagem (só em alguns casos): Este esquema pode não funcionar se o periférico for demasiado rápido em relação ao controlador de DMA Nesse caso pode-se usar I/O por interrupções 15 I/O Periféricos 16 Discos Geometria de um disco rígido Cabeças magnéticas Superfície 0 Superfície 1 Superfície 2 Superfície 3 Superfície 4 Superfície 5 17 Discos Sectores Cabeça Pistas 18 Discos Geometria de um disco Cada arco circular completo designa-se pista O conjunto de pistas na mesma posição radial (nas várias superfícies) designa-se cilindro As pistas estão divididas em arcos de comprimento angular fixo designados sectores Estrutura de um sector o bul m â Pre Dados EC C Preâmbulo – sequência de bits para sincronização Dados – parte onde é armazenada a informação útil (512 Bytes) ECC – código de correcção de erros 19 Discos Temporizações típicas Velocidade de rotação Tempo de pesquisa (Seek) Tempo que o braço demora a posicionar a cabeça sobre a pista a ler/escrever Tempo de acesso Velocidade a que o disco roda Valor típico: 7200 rpm (rotações por minuto) Tempo que a cabeça demora a posicionar-se sobre o sector a aceder (tempo de pesquisa + tempo de rotação) Ritmo de transferência Ritmo a que é lida/escrita informação do/no disco (depende do tempo de acesso, da dimensão dos sectores e da interface do disco com o resto do sistema) Valor médio típico nos dias correntes: 70 MByte/s 20 Discos Ópticos CD-ROMs (Compact-Disk Read Only Memory) Dados organizados segundo uma espiral Blocos de dados com 2 KB de informação útil Pit Land 21 Discos Ópticos CD-ROMs Sinal lido Sensor Espelho móvel Feixe reflectido Feixe emitido Diodo Laser Prisma Leitura da informação: ‘1’ Transição Pit-Land ou Land-Pit ‘0’ Sem transição Superfície do disco 22 Discos Ópticos Dificuldade física em repetir ‘1’s É utilizada codificação EFM (Eight to Fourteen Modulation) Por cada 8 bits, são na realidade escritos 14 bits no CD O objectivo deste código é garantir que os ‘1’s ficam salteados Código EFM (só as primeiras 8 palavras) Código Natural Código EFM 0000 0000 01 0010 0010 0000 0000 0001 10 0001 0000 0000 0000 0010 10 0100 0010 0000 0000 0011 10 0010 0010 0000 0000 0100 01 0001 0000 0000 0000 0101 00 0001 0001 0000 0000 0110 00 0100 0010 0000 0000 0111 00 1001 0000 0000 ... ... 23 Discos Ópticos Estrutura de um bloco 16 bytes 2048 bytes 288 bytes Dados ECC Preâmbulo – sequência de sincronização + identificação do bloco Nota: no caso de ser um CD áudio, todo o bloco é utilizado para dados 24 Discos Ópticos CD-Rs (CD-Recordable) Um CD-R é um CD em que os dados, uma vez gravados, não podem regravados Os dados são gravados ofuscando uma superfície transparente através de uma queimadura provocada pelo laser (deste modo simula-se um Pit) Áreas queimadas Laser Substrato (policarbonato) 1,2 mm Camada transparente Camada reflectora Camada protectora 25 Discos Ópticos CD-RWs (CD-Rewritable) Ao contrário dos CD-Rs, um CD-RW pode ser regravado múltiplas vezes Utiliza numa das camadas um material com dois estados: Cristalino (mais reflectivo) Amorfo (menos reflectivo) O laser do gravador opera a 3 níveis de potência: Alta – Converte áreas cristalinas em amorfas (Pit) Média – Converte as áreas amorfas em cristalinas (Land) Baixa – Não efectua mudanças ao estado do material. É utilizada para leitura 26 Discos Ópticos Comparação entre discos ópticos CD DVD Blu-ray Dimensão mínima das pits 0.8 m 0.4 m 0.15 m Distância entre arcos da espiral 1.5 m 0.74 m 0.32 m Comprimento de onda do laser 780 nm (vermelho) 650 nm (vermelho) 405nm (azul-violeta) 700 MB 4.7 GB 25 GB Capacidade (single layer) 27 Teclado Estrutura genérica 4 S Multiplexer 16-1 3 Descodificador 3/8 Micro-controlador Um cruzamento por tecla 28 Teclado Estrutura genérica Mux Tecla premida: contacto no cruzamento Dec 29 Teclado Funcionamento: O micro-controlador produz todas as combinações binárias de 7 bits (com base num contador) Estes bits são apresentados às entradas do descodificador e às linhas de selecção do multiplexer A frequência de funcionamento do contador é elevada, varrendo toda a matriz de cruzamentos centenas de vezes por segundo. Tanto o carregar como o largar de uma tecla (ou combinação de teclas) são detectados por inspecção da linha de saída do multiplexer O código da tecla (ou teclas) pressionada – K-scan code – é obtido a partir das saídas do contador 30 Teclado Comunicação Controlador de teclado RD/WR Endereços Registos Input Dados Micro-controlador Output Controlo IRQ Gnd Relógio Dados (série) Estado Vcc Sistema Teclado Micro-controlador 31 Teclado Comunicação O controlador de teclado tem a função de efectuar a interface com o resto do sistema Depois de pressionada uma tecla, é colocado no registo de input um código normalizado da tecla e enviado um sinal de interrupção O tratamento da interrupção “obriga” o CPU a ler o registo de input, copiando o código de tecla para a memória O controlador comunica com o teclado através de uma linha de dados série sincronizada com um sinal de relógio Para além disso, fornece a alimentação ao teclado 32 Monitor e placa gráfica Esquema genérico (CRT – Cathod Ray Tube) Canhões de electrões Pixel Linhas de varrimento 33 Monitor e placa gráfica Funcionamento (CRT) Cada ponto no écran designa-se pixel Por cada ponto existem três tubos de raios catódicos, que são “bombardeados” por electrões Cada tubo -> uma componente de cor (R, G, B) Obtém-se cores regulando a intensidade do “bombardeamento” em cada uma das componentes Os canhões de electrões varrem todo o écran a uma frequência superior à que um humano consegue ver Tipicamente superior a 60 Hz (60 varrimentos por segundo) 34 Monitor e placa gráfica Memória ocupada por uma imagem Tipicamente cada amostra de componente de cor requer 8 bits (variando portanto entre 0 e 255) Como em cada ponto se tem 3 componentes, cada ponto no écran requer 24 bits (3 bytes) Se a resolução do écran for Nh x Nv, a memória necessária para cada imagem será de suficiente para o sistema visual humano Nv x Nh x 3 bytes Exemplo: Resolução: 1024 x 768 Quantidade de informação por imagem = 1024 x 768 x 3 = 2.4 MBytes 35 Monitor e placa gráfica Ritmo de transmissão dos dados O sistema terá que ser capaz de debitar dados a um ritmo compatível com o sistema visual humano Exemplo Com as resoluções indicadas atrás, para enviar para o écran 60 imagens por segundo, seria necessário um ritmo binário superior a: 1024 x 768 x 3 x 60 = 14 MBytes/s Para libertar o processador de grande parte do processamento gráfico, existem as placas gráficas 36 Monitor e placa gráfica Placa gráfica Inicialmente serviam apenas para efectuar a interface entre o processador e o écran Hoje em dia têm muitas outras funcionalidades: Efectuam diversos cálculos gráficos, poupando trabalho ao CPU Desenho de objectos geométricos planos (linhas, polígonos) Computação 3D (profundidade, modelos de iluminação) Melhoria da qualidade de imagem (anti-aliasing, filtragem, correcção do factor gamma) Possuem memórias adaptadas para processamento de vídeo (VRAMs) Permitem ligação de/a dispositivos externos (e.g., câmaras de vídeo) Etc. 37 Monitor e placa gráfica Placa gráfica (estrutura básica) Placa gráfica Conversor Digital-Analógico CPU Ponte AGP (ou PCI) Monitor Processador gráfico VRAM AGP – Accelerated Graphics Port – dedicado para o processamento gráfico 38 Modem Modem – Modulator-Demodulator Dispositivo para comunicação entre computadores ligados a uma rede telefónica / cabo O sinal binário a transmitir é modulado: Em vez de ser transmitido um sinal entre 0 e 5 Volt, é utilizado um sinal sinusoidal (a portadora) 39 Modem Modulação 1 0 0 1 1 0 1 0 0 Sinal original Modulação em amplitude (AM ou ASK) Modulação em frequência (FM ou FSK) Modulação de fase (PM ou PSK) 40