400 likes | 569 Vues
I/O. Transferências de dados. Introdução. Um importante aspecto na arquitectura de computador é o modo como são efectuadas as operações de I/O Envio de comandos CPU periféricos Resposta a pedidos dos periféricos CPU periféricos Trocas de dados CPU periféricos
E N D
I/O Transferências de dados
Introdução • Um importante aspecto na arquitectura de computador é o modo como são efectuadas as operações de I/O • Envio de comandos • CPU periféricos • Resposta a pedidos dos periféricos • CPU periféricos • Trocas de dados • CPU periféricos • memória periféricos • periféricos periféricos
Introdução • O sistema tem que dar uma boa resposta a uma grande variedade de periféricos, que funcionam a “velocidades” diferentes
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.
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
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, portcopia o conteúdo do registo do controlador de periférico para um registo da CPU • out port, registocopia o conteúdo de um registo da CPU para um registo do controlador • Requer linhas de controlo dedicadas para cada dispositivo
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
Acesso aos dispositivos • I/O dedicada vs. Memory-mapped I/O Espaço dos periféricos Espaço de endereçamento Espaço de endereçamento Ports I/O Memory-mapped I/O I/O dedicada
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
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
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)
2. Controlador activa linha de interrupções 3. CPU envia Acknowledge 1. Dispositivo termina I/O IRQ é activada 4. Controlador coloca interrupt vector no BUS I/O por Interrupções • Interrupções de hardware (vectorizadas)
I/O por Interrupções • Quando ocorre uma interrupção, o CPU: • Salvaguarda numa pilha todos os seus registos • PUSH dos registos e do estado da unidade funcional (flags) • Desactiva temporariamente as interrupções • 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
4. Transferência de dados 1. CPU programa o controlador DMA 2. DMA REQ 3. DMA ACK 5. Interrupção 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 Endereço buffer Contador Controlo Controlador de DMA Controlador de Disco CPU Memória RAM
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
I/O Periféricos
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
Discos Sectores Cabeça Pistas
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 • 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
Discos • Temporizações típicas • Velocidade de rotação • Velocidade a que o disco roda • Valor típico: 7200 rpm (rotações por minuto) • Tempo de pesquisa (Seek) • Tempo que o braço demora a posicionar a cabeça sobre a pista a ler/escrever • Tempo de acesso • 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
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
Discos Ópticos • CD-ROMs Leitura da informação: ‘1’ Transição Pit-Land ou Land-Pit ‘0’ Sem transição
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)
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
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
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
Discos Ópticos • Comparação entre discos ópticos
Teclado • Estrutura genérica
Teclado • Estrutura genérica Tecla premida:contacto no cruzamento
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
Teclado • Comunicação
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
Monitor e placa gráfica • Esquema genérico (CRT – Cathod Ray Tube) Canhões de electrões Pixel Linhas de varrimento
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)
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) • suficiente para o sistema visual humano • 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 • 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
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
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.
Monitor e placa gráfica • Placa gráfica(estrutura básica) AGP – Accelerated Graphics Port – dedicado para o processamento gráfico
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)
Modem • Modulação Sinal original Modulação em amplitude (AM ou ASK) Modulação em frequência (FM ou FSK) Modulação de fase (PM ou PSK)