William Stallings
Computer Organization and Architecture
Capítulo 6
Sistema de Entrada/Saída
I/O
Visão Abrangente
ª
Módulo de E/S (Input / Output) é o terceiro
elemento crítico do sistema computador (os
outros são, a CPU e a memória)
ª
Todos os sistemas computadores devem ter
meios eficientes para receberem
entradas
e
deliberarem
saídas
.
8 Falhas relacionadas ao endereçamento de E/S tem
sentenciado muitos bons sistemas.
ª
Programa de estudo:
8 Módulos de E/S e suas interfaces com o resto do
sistema
3
Problemas da E/S
ª
Dispositivos externos, geralmente, não estão
conectados diretamente na estrutura de
barramento do computador
8 Uma ampla variedade de dispositivos requerem diferentes lógicas de operação.
8 Interfaces – impraticável para a CPU “saber como” controlar cada dispositivo
8 Disparidade entre as taxas de transferências de dados
8 Diferentes representações de dados
ª
Todos mais lentos do que CPU e RAM
ª
Necessidade de módulos entrada/ saída
(I/O)
8 Intermediários na comunicação entre a CPU, RAM e os
periféricos.
Módulo de Entrada/Saída
ª
Provê uma interface padronizada para a CPU e o
barramento.
ª
Moldada para um dispositivo de E/S específico e a
seus requisitos de interface.
ª
Delega a CPU o gerenciamento dos dispositivos de
E/S.
ª
A interface consiste em sinais de:
8 Control 8 Status 8 Dados
ª
Interface entre a CPU e a memória.
ª
Interface para um ou mais periféricos.
5
Dispositivos Externos
ª
Interpretação humana
8 vídeo, impressora, teclado
ª
Operação pela máquina
8 Discos magnéticos e ópticos 8 Monitoração e controle
ª
Comunicação
8 Modem
8 Placa de rede ( "Network Interface Card" – NIC)
7
Função do Módulo de E/S
ª
Controle e temporização (
Control & timming
)
8 Coordenação do fluxo de dados
ª
Comunicação com a CPU
8 Decodificar comandos; 8 Enviar e receber dados
8 Informar o estado dos periféricos 8 Reconhecimento de endereços
ª
Comunicação com o dispositivo periférico
8 Emitir comandos; Enviar e receber dados 8 Receber informação do estado dos periféricos
ª
Bufferização de dados (
data buffering
)
8 Adequação a diferentes taxas de transferência
ª
Deteção de erros
8 Funcionamento incorreto dos periféricos 8 Transmissão de dados (bit de paridade)
Etapas da operação de E/S
ª
A CPU verifica o status do módulo de E/S
ª
O módulo de E/S retorna o status
ª
Se pronto (ready), a CPU requisita a transferência
de dados
ª
O módulo de E/S obtém os dados do dispositivo
ª
O módulo de E/S transfere os dados para a CPU
ª
Variações para a saída, DMA, etc.
9
Decisões de um módulo de E/S
ª
Esconder e/ou revelar as propriedades do
dispositivo para a CPU.
ª
Suportar simples/múltiplos dispositivo(s).
ª
Controlar as funções de um dispositivo ou delegar
para a CPU.
ª
Também são decisões do Sistema Operacional
8 Por exemplo, Unix trata tudo, se possível, como arquivo.
11 RAM CPU Barrame n to de Sis tema Módulo de Entrada/Saída Canal de Entrada/Saída Controlador de Interrupção Controlador DMA periférico periférico periférico periférico dos módulos (ou canais) de Entrada/Saída
dos módulos (ou canais) de Entrada/Saída
Técnicas de
Entrada/Saída Interface externa
Entrada/Saída – perspectiva geral
Técnicas de Entrada/Saída
ª
Programmed I/O
ª
Interrupt driven I/O
13
Programmed I/O
ª
Operação de E/S onde a CPU envia um comando de
E/S para o módulo de E/S.
ª
A CPU tem controle direto da operação.
8 Sensing status
8 Read/write commands
8 Transferring data
ª
A CPU espera até que a operação de E/S seja
finalizada, antes de realizar outras tarefas.
ª
A finalização é indicada pela mudança dos bits de
status do módulo de E/S.
ª
A CPU deve, periodicamente, consultar (
polling
) o
módulo para verificar seu status.
ª
Isto, consome tempo de CPU.
Programmed I/O - detalhes
ª
CPU requer uma operação de E/S
ª
O módulo de E/S realiza a operação
ª
O módulo de E/S configura os bits de status
ª
A CPU verifica os bits de status periodicamente
8 O módulo de E/S não informa a CPU diretamente.
ª
O módulo de E/S não interrompe as atividades da
CPU.
15
I/O Commands
ª
A CPU fornece os endereços.
8 Identifica o módulo (e dispositivo, se mais do que um
por módulo)
ª
A CPU emite os comandos
8 Controle – indicar ao módulo o que fazer
9 e.g. spin up disk
8 Teste – verificar o status
9 e.g. power? Error?
8 Leitura/Escrita
9 O módulo transfere, via buffer, dados de/para o dispositivo
ª
Endereçamento de dispositivos de entrada/saída
8 Nas entradas/ saídas programadas a transferência de
dados consiste, muito provavelmente, num acesso à memória (ponto de vista da CPU)
8 Cada dispositivo possui um identificador único. 8 As instruções da CPU contêm um identificador
(endereço).
17
Endereçando Dispositivos de E/S
ª
O modo de transferência de dados programada
(
programmed I/O
) é muito parecido com o
acesso a memória (do ponto de vista da CPU)
ª
A cada dispositivo é atribuído um identificador
único.
ª
Os comandos da CPU carregam este
identificador (endereços).
I/O Mapping
ª
Memory mapped I/O
8 Dispositivos e memória compartilham um espaço de
endereçamento.
8 I/O parece como uma memória de leitura/escrita. 8 Nenhum comando especial para I/O
9 Um grande conjunto de comandos de acesso a memória estão disponíveis.
ª
Isolated I/O
8 Espaço de endereçamento separado
8 Necessidade de linhas de seleção para I/O ou memória 8 Comandos especiais para I/O
19
Programmed I/O - Resumo
ª
Devido a diferença de velocidade entre a CPU e os
dispositivos periféricos (ordens de magnitude),
programmed I/O
consome uma enorme
quantidade do potencial de processamento da
CPU.
8 Muito ineficiente
8 A CPU trabalha na velocidade do periférico.
ª
Vantagens
8 Implementação Simples
8 Requer pouquíssimo software especial ou hardware.
Interrupt Driven I/O
ª
Técnica para reduzir o tempo gasto nas
operações de E/S.
8 A CPU fornece comandos de E/S para o módulo
8 A CPU continua com suas outras tarefas enquanto o
módulo realiza a sua operação.
8 O módulo sinaliza à CPU quando a operação de E/S
for finalizada (a interrupção)
8 A CPU responde a interrupção, executando uma rotina
de serviço de interrupção (isr), logo após, continua a tarefa que estava executando durante este evento.
ª
Contorna os problemas de espera da CPU.
8 A CPU não precisa realizar uma verificação repetitiva
do status do dispositivo.
8 O próprio módulo de E/S anuncia quando pronto (via
21
Interrupt Driven I/O -
Basic Operation
CPU Viewpoint
ª
Envia o comando de leitura
ª
Realiza outro trabalho.
ª
Verifica se há interrupção pendente a cada final
de ciclo de execução de instrução.
ª
Se houver interrupção:
8 Salva o contexto (registradores)
8 Processa a rotina de tratamento da interrupção.
9 Fetch data & store
ª Ver notas no conteúdo da disciplina de Sistemas Operacionais.
23
Interrupt-driven: decisões de projeto
Com múltiplos módulos e, portanto, múltiplas
interrupções.
ª
Como identificar o módulo que gerou o sinal de
interrupção?
ª
Como lidar com múltiplas interrupções?
8 Por exemplo, a rotina que manipula a interrupção está
25
Identificando o módulo que interrompe (1)
ª
Cada módulo possui uma linha de interrupção
diferente.
8 PC
8 Limita o número de dispositivos.
ª
Software polling
8 CPU consulta cada módulo em uma seqüência circular 8 Lento.
Identificando o módulo que interrompe (2)
ª
Daisy Chain
ou
Hardware poll
8 O recebimento da interrupção (interrupt acknowledge) é
enviado cadeia abaixo.
8 O módulo responsável coloca o vetor de identificação no
barramento.
8 A CPU usa o vetor para identificar a rotina de tratamento.
ª
Bus Mastering
8 O módulo deve requerer o barramento antes que ele
possa gerar a interrupção.
27
Multiplas Interrupções
ª
Cada linha de interrupção tem uma prioridade.
ª
Linhas de prioridade mais alta podem interromper
as linhas de prioridades mais baixas.
ª
Se o método empregado for
bus mastering
,
somente o mestre atual pode interromper.
Example - PC Bus
ª
O 80x86 tem uma linha de interrupção
ª
Sistemas baseados no 8086 utilizam um
controlador de interrupção, o 8259A.
29
Seqüência de Eventos
ª
8259A aceita interrupções.
ª
8259A determina prioridades.
ª
8259A sinaliza o 8086 (eleva a linha INTR).
ª
A CPU reconhece (
acknowledges
).
ª
8259A coloca o vetor correto no barramento de
dados.
ª
A CPU processa a interrupção.
PC Interrupt Layout
8086
INTR
8259A
IRQ0
IRQ1
IRQ2
IRQ3
IRQ4
IRQ5
IRQ6
31
ISA Bus Interrupt System
ª
ISA bus encadeia dois controladores 8259A juntos.
ª
O Link é via interrupção 2.
ª
Temos um total de 15 linhas.
8 16 linhas menos uma para o link
ª
IRQ 9 é usada para redirecionar alguma coisa
tentando usar a IRQ 2.
8 Backwards compatibility.
ª
Nas arquiteturas atuais, o 8259A foi incorporado no
chipset.
ISA Interrupt Layout
80x86
INTR
8259A
IRQ0
IRQ1
IRQ2
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
8259A
IRQ0 (8)
IRQ1 (9)
IRQ2 (10)
IRQ3 (11)
IRQ4 (12)
IRQ5 (13)
IRQ6 (14)
IRQ7 (15)
(IRQ 2)
33
Direct Memory Access
ª
Interrupt driven
e
programmed I/O
requerem
intervenção ativa da CPU.
8 A taxa de transferência é limitada 8 A CPU fica aprisionada
ª
Para contornar estes problemas a técnica de
DMA
surge como uma solução.
ª DMA Function
:
8
Módulo adicional (hardware) no barramento.
8O
DMA controller
liberta a CPU da lenta tarefa
das operações de E/S.
35
DMA Operation
ª
A CPU configura a controladora DMA:
8 Read/Write
8 Device address
8 Endereço inicial do bloco de memória para os dados 8 A quantidade de dados a ser transferida
ª
A CPU preocupa-se com outra tarefa.
ª
A controladora DMA realiza as operações de
transferência.
ª
A controladora DMA envia um sinal de interrupção
quando a transferência for finalizada.
DMA Transfer - Cycle Stealing
ª
“Roubo" de ciclo na transferência DMA
8 Controlador DMA toma conta do barramento (bus)
durante um ciclo (clock).
8 Transfere uma palavra de dados. 8 Não é uma interrupção
9 A CPU não salvaguarda o contexto
8 CPU suspende a ciclo de instrução imediatamente antes
de:
9 um acesso ao barramento
9 antes da busca de um operando ou de dados e 9 da escrita de dados
8 Provoca um atraso na CPU, mas não tanto como se a
37
Pontos de suspensão de DMA
Aside
ª
Qual é o efeito que memória caching tem no
DMA?
ª
Dica: Quantos são os barramentos de
39
Configurações DMA
ª
Bus único, controlador DMA separado
8 Cada transferência usa o bus duas vezes
9 Do dispositivo de E/ S para controlador DMA e deste para a memória
8 Operação da CPU é suspensa duas vezes
ª
Bus único, controlador DMA integrado
8 Controlador pode suportar mais do que um dispositivo de
E/S
8 Cada transferência usa o bus uma vez – do controlador
DMA para a memória
8 Transferência entre dispositivos também usam o bus. 8 Operação da CPU é suspensa uma vez.
ª
Bus separado, controlador DMA integrado
8 suporta todos os dispositivos DMA
8 Cada transferência usa o uma vez – do controlador DMA
para a memória
8 Operação da CPU é suspensa uma vez
8 Transferência entre dispositivos não usam o bus
DMA Configurations (1)
ª
Bus único, controlador DMA separado
8 Cada transferência usa o bus duas vezes
9 Do dispositivo de E/ S para controlador DMA e deste para a memória
41
DMA Configurations (2)
ª
Bus único, controlador DMA integrado
8 Controlador pode suportar mais do que um dispositivo
de E/S
8 Cada transferência usa o bus uma vez – do
controlador DMA para a memória
8 Transferência entre dispositivos também usam o bus. 8 Operação da CPU é suspensa uma vez
DMA Configurations (3)
ª
Bus separado, controlador DMA integrado
8 suporta todos os dispositivos DMA
8 Cada transferência usa o uma vez – do controlador
DMA para a memória
43
Evolução da E/S
(1)
ª
No início CPU controlava diretamente o dispositivo
(
microprocessor-controlled devices
)
ª
Módulo de E/S (ou controlador) foi acrescentado
8 Assim CPU não precisa conhecer detalhes específicos dos
dispositivos
8 CPU usa E/S programada sem interrupção
ª
Surge então, a interrupção
8
CPU trabalha enquanto ocorre E/S
ª
O módulo de E/S ganha poder para acessar
memória diretamente (DMA)
Evolução da E/S
(2)
ª
O módulo de E/S torna-se um processador
8 Conjunto próprio de instruções para E/S
8 Módulo de E/S é capaz de executar um programa sem
intervenção alguma da CPU
8 Também conhecido por canal de E/S
ª
Módulo de E/S ganha uma memória local própria
8 Maior número de dispositivos podem ser controlados 8 Tamanho de buffer maior para troca de dados
8 Também conhecido como processador de E/S
ª
Ocasionalmente os termos canais de E/S (
I/O
Channel
) e processador de E/S (
I/O Processor
) são
usados para designar os mesmos módulos de E/S.
45
Interfaces Externas
ª
A interface de um módulo de E/S com um periférico
depende da natureza e da operação do periférico.
ª Transmissão
:
8 Paralela
9 Várias linhas de conexão entre o módulo de E/S e o periférico.
9 Diversos bits são transferidos ao mesmo tempo. 9 Utilizada em periféricos de alta velocidade.
8 Serial
9 Apenas uma linha para transmissão dos dados. 9 Bits transmitidos um de cada vez.
9 Mais comum para impressoras e terminais.
ª Transferência
8 simplex, half ou full-duplex
Ligação entre módulo E/ S e o periférico
ª Temporização
(
timming
)
8 síncrona 8 assíncronaª Controle
8 Strobing 8 Handshakingª Taxas de transferência
8 Grande diversidadeª Multiplicidade
8 Ponto a ponto9 Linha dedicada entre o módulo de E/S e o dispositivo 9 Conecta, por exemplo, teclado, impressora e modem
47
Interfaces & Periféricos
ª
RS-232
8 modems, faxs, placas
áudio, placas de rede
ª
PS/2
8 mouseª
Centronics
8 impressoras, scannersª
AGP
8 placas gráficasª
ATA/IDE
8 discos magnéticosª
ATAPI
8 discos ópticosª
SCSI
8 discos magnéticos, discos ópticos, scannersª
SATA
8 discos magnéticosª
USB
8 discos magnéticos, impressoras, scanners, modemsª
Firewire
8 discos magnéticos, câmaras fotográficas, de vídeoª
PCMCIA
8 discos, faxs, modems,
placas de rede
Interface Externa SCSI
ª Small Computer System Interface
ª
Popularizada no Machintosh 1984
ª
Utilizada nos sistemas Windows / Intel
ª
Suporta comunicação síncrona e assíncrona
ª
Cada dispositivo SCSI tem dois conectores:
8 Entrada
49
Interface Externa SCSI
ª
Todos os dispositivos são conectados a uma cadeia
circular
8 O último dispositivo desta cadeia é conectado ao
computador
ª
Dispositivos podem trocar dados:
8 Diretamente entre si
8 Com o computador
8 Exemplo: Um HD pode comunicar-se com uma unidade
de fita diretamente, sem passar por um sistema hospedeiro(processador)
Interface Externa SCSI
ª
Todas as trocas no barramento SCSI são feitas
entre um mestre e um escravo
8 Tipicamente o sistema hospedeiro é o mestre e o
periférico é o escravo.
ª
Toda atividade no barramento ocorre em fases:
8 Barramento livre: barramento disponível para uso
8 Arbitração: permite a um dispositivo ganhar o controle
do barramento. O dispositivo pode iniciar ou retomar o processamento de uma E/S.
8 Seleção: permite um mestre a selecionar um escravo 8 Restabelecimento de conexão: permite ao escravo
restabelecer a conexão com um mestre para retomar uma operação iniciada anteriormente mas suspensa pelo
51
Interface Externa SCSI
ª
Toda atividade no barramento ocorre em fases:
8 Comando: permite ao escravo requisitar informações dos
comandos enviados pelo mestre.
8 Dados: permite ao escravo requisitar a transferência de
dados para o mestre (Data In) ou do mestre para o escravo (Data Out)
8 Estado: permite ao escravo enviar informações de estado
ao mestre
8 Mensagem: Permite ao escravo requisitar a transferência
de uma ou mais mensagens para o mestre (Message In) ou do mestre para o escravo (Message Out)
SCSI Signaling (1)
ª
Between initiator and target
8
Usually host & device
ª
Bus free? (c.f. Ethernet)
ª
Arbitration - take control of bus (c.f. PCI)
ª
Select target
ª
Reselection
8
Allows reconnection after suspension
8
e.g. if request takes time to execute, bus can
53
SCSI Signaling (2)
ª
Command - target requesting from initiator
ª
Data request
ª
Status request
ª
Message request (both ways)
55
SCSI Timing Diagram
Configuring SCSI
ª
Bus must be terminated at each end
8 Usually one end is host adapter 8 Plug in terminator or switch(es)
ª
SCSI Id must be set
8 Jumpers or switches 8 Unique on chain
8 0 (zero) for boot device
57
Interface Externa SCSI
ª
SCSI 1 – início de 1980s
8 Barramento de dados de 8 bits 8 Cabo com 18 linhas:
9 9 para controle
9 9 para dados (8 bits dados + 1 bit paridade)
8 Velocidade de 5 MHz - Taxa de transferência de 5
MBytes/s
8 Suporta até 7 dispositivos (comparado com 2 da
tradicional IDE)
8 Possui linhas de controle
8 Mensagens são utilizadas para gerenciar o barramento
Interface Externa SCSI
ª
SCSI 2 - 1991
8 Padrão corrente
8 Expandiu o barramento para 16 ou 32 bits
8 Aumentou a velocidade para 10 MHz – Taxa de
transferência entre 20 ou 40 MBytes/s
8 Define comandos específicos para:
9 Impressoras 9 Processadores 9 CD-ROMs 9 Scanners
59
Interface Externa FireWire
ª
IEEE standard 1394 (serial bus FireWire)
ª
Vantagens sobre SCSI
8 Maior velocidade 8 Baixo custo
8 Fácil implementação
ª
Utiliza transmissão de 1 bit por vez (serial)
8 Requer cabos mais simples que SCSI (que tem mais
linhas)
9 Menor custo pois cabos paralelos precisam de sincronização para enviar informação (problema notado em cabos +
longos)
Interface Externa FireWire
ª
Usa daisy chain (cadeia circular) com até 63
dispositivos interconectados em uma única porta
ª
Permite hot plugging (conexão a quente)
8 Computador não precisa ser desligado para
conectar/desconectar dispositivos
ª
Configuração automática de IDs para os
dispositivos
8 Não é manual
61
Interface Externa FireWire
ª
Comparando com SCSI:
8 SCSI:
9 requer terminadores nas pontas
9 Deve-se associar um único ID para cada dispositivo (durante a configuração)
8 FireWire:
9 Não há terminadores
9 O sistema define os IDs automaticamente 9 Não precisa ser daisy chain (árvore)
63
Interface Externa FireWire
ª
FireWire define 3 camadas de protocolos para o
sistema hospedeiro interagir com os dispositivos:
8 Physical layer – define o meio de transmissão
9 Características de sinais e elétricas
8 Link layer – descreve a transmissão dos dados em
pacotes
8 Transaction layer – define um protocolo de
requisição-resposta que esconde detalhes do barramento
FireWire - Physical Layer
ª
Data rates from 25 to 400Mbps
ª
Two forms of arbitration
8 Based on tree structure 8 Root acts as arbiter 8 First come first served
8 Natural priority controls simultaneous requests
9 i.e. who is nearest to root
8 Fair arbitration 8 Urgent arbitration
65
FireWire - Link Layer
ª
Two transmission types
8 Asynchronous
9 Variable amount of data and several bytes of transaction data transferred as a packet
9 To explicit address
9 Acknowledgement returned
8 Isochronous
9 Variable amount of data in sequence of fixed size packets at regular intervals
9 Simplified addressing 9 No acknowledgement
FireWire Protocol Stack
67
FireWire Subactions
Interface Externa FireWire
ª
Comparando com SCSI:
8 SCSI:
9 requer terminadores nas pontas
9 Deve-se associar um único ID para cada dispositivo (durante a configuração)
8 FireWire:
9 Não há terminadores
9 O sistema define os IDs automaticamente 9 Não precisa ser daisy chain (árvore)
69
InfiniBand
ª
I/O specification aimed at high end servers
8 Merger of Future I/O (Cisco, HP, Compaq, IBM) and Next
Generation I/O (Intel)
ª
Version 1 released early 2001
ª
Architecture and spec. for data flow between
processor and intelligent I/O devices
ª
Intended to replace PCI in servers
ª
Increased capacity, expandability, flexibility
InfiniBand Architecture
ª
Remote storage, networking and connection
between servers
ª
Attach servers, remote storage, network devices to
central fabric of switches and links
ª
Greater server density
ª
Scalable data centre
ª
Independent nodes added as required
ª
I/O distance from server up to
8 17m using copper
8 300m multimode fibre optic 8 10km single mode fibre
71
InfiniBand Switch Fabric
InfiniBand Operation
ª
16 logical channels (virtual lanes) per physical link
ª
One lane for management, rest for data
ª
Data in stream of packets
ª
Virtual lane dedicated temporarily to end to end
transfer
73