You are on page 1of 40

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
 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

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 dos
Espaço de periféricos Espaço de
endereçamento 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 10
11 12 1
2
9
8 4
3 Relógio
7 6 5

Teclado
Controlador
CPU de
Interrupções 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
 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

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 2. DMA REQ


controlador DMA

Endereço
buffer
Contador
Controlo
3. DMA ACK

5. Interrupção Controlador Controlador


CPU Memória RAM
de DMA de Disco
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
Dados
o
bul
âm
Pre
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
 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

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

Sensor Sinal lido

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 Natural Código EFM


0000 0000 01 0010 0010 0000
Código EFM 0000 0001 10 0001 0000 0000
(só as primeiras 8 palavras) 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)
Camada transparente
1,2 mm
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

780 nm 650 nm 405nm


Comprimento de onda do laser
(vermelho) (vermelho) (azul-violeta)
Capacidade (single layer) 700 MB 4.7 GB 25 GB

27
Teclado
 Estrutura genérica

4
S Multiplexer 16-1
Micro-controlador

3
Descodificador 3/8

Um cruzamento por tecla

28
Teclado
 Estrutura genérica

Tecla premida:
Mux 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
Sistema

Registos
Endereços
Input

Dados Output Micro-controlador

Controlo
IRQ
Estado

Dados (série)

Relógio

Gnd
Vcc
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)
 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

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
Monitor
Digital-Analógico

Ponte
Processador
CPU AGP
gráfico
(ou PCI)

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

You might also like