• Nenhum resultado encontrado

William Stallings Arquitetura e Organização de Computadores. Capítulo 7 Sistema de Entrada/Saída - I/O

N/A
N/A
Protected

Academic year: 2021

Share "William Stallings Arquitetura e Organização de Computadores. Capítulo 7 Sistema de Entrada/Saída - I/O"

Copied!
78
0
0

Texto

(1)

William Stallings

Arquitetura e Organização de Computadores

Capítulo 7

(2)

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.

 Falhas relacionadas ao endereçamento de E/S tem

sentenciado muitos bons sistemas.

Programa de estudo:

 Módulos de E/S e suas interfaces com o resto do

sistema.

(3)

3

(4)

Problemas da E/S

Dispositivos externos, geralmente, não estão

conectados diretamente na estrutura de

barramento do computador

 Uma ampla variedade de dispositivos requerem

diferentes lógicas de operação.

Interfaces – impraticável para a CPU “saber como”

controlar cada dispositivo

 Disparidade entre as taxas de transferências de dados

 Diferentes representações de dados

Todos mais lentos do que CPU e RAM

(5)

5

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:

ControlStatusDados

Interface entre a CPU e a memória.

Interface para um ou mais periféricos.

(6)

Categorias de Dispositivos Externos

Interpretação humana

 vídeo, impressora, teclado

Operação pela máquina

 Discos magnéticos e ópticos

 Monitoração e controle

Comunicação

 Modem

(7)

7

Typical I/O Data Rates

(8)

Funções do Módulo de E/S

Controle e temporização (

Control & timming

)

 Coordenação do fluxo de dados

Comunicação com a CPU

 Decodificar comandos;

 Enviar e receber dados

 Informar o estado dos periféricos

 Reconhecimento de endereços

Comunicação com o dispositivo periférico

 Emitir comandos; Enviar e receber dados

 Receber informação do estado dos periféricos

Bufferização de dados (

data buffering

)

 Adequação a diferentes taxas de transferência

(9)

9

Funções do Módulo de E/S

The major functions for an I/O module

fall into the following categories: Control and timing

• Coordinates the flow of traffic between internal resources and external devices

Processor communication

• Involves command decoding, data, status reporting, address recognition Device communication • Involves commands, status information, and data Data buffering

• Performs the needed buffering operation to balance device and memory speeds

Error detection

• Detects and reports transmission errors

(10)

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.

(11)

11

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

(12)
(13)

13 RAM CPU Barr ame nto de Sis tem a Módulo de Entrada/Saída Canal de Entrada/Saída Controlador de Interrupção Controlador DMA periférico periférico sss periférico periférico sss 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

(14)

Técnicas para Operações de Entrada/Saída

Programmed I/O

Interrupt driven I/O

(15)

15

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.

Sensing status

 Read/write commands

 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.

(16)

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

 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.

(17)

17

I/O Commands

A CPU fornece os endereços.

 Identifica o módulo (e dispositivo, se mais do que um

por módulo)

A CPU emite os comandos

 Controle – indicar ao módulo o que fazer

✓ e.g. spin up disk

Teste – verificar o status

✓ e.g. power? Error?

 Leitura/Escrita

✓ O módulo transfere, via buffer, dados de/para o dispositivo

Endereçamento de dispositivos de entrada/saída

 Nas entradas/ saídas programadas a transferência de

dados consiste, muito provavelmente, num acesso à memória (ponto de vista da CPU)

 Cada dispositivo possui um identificador único.

 As instruções da CPU contêm um identificador

(18)
(19)

19

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

(20)

I/O Mapping

Memory mapped I/O

 Dispositivos e memória compartilham um espaço de

endereçamento.

 I/O parece como uma memória de leitura/escrita.

 Nenhum comando especial para I/O

✓ Um grande conjunto de comandos de acesso a memória

estão disponíveis.

Isolated I/O

 Espaço de endereçamento separado

 Necessidade de linhas de seleção para I/O ou memória

 Comandos especiais para I/O

(21)
(22)

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.

 Muito ineficiente

 A CPU trabalha na velocidade do periférico.

Vantagens

 Implementação Simples

(23)

23

Interrupt Driven I/O

Técnica para reduzir o tempo gasto nas

operações de E/S.

 A CPU fornece comandos de E/S para o módulo

 A CPU continua com suas outras tarefas enquanto o

módulo realiza a sua operação.

 O módulo sinaliza à CPU quando a operação de E/S

for finalizada (a interrupção)

 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.

 A CPU não precisa realizar uma verificação repetitiva do status do dispositivo.

 O próprio módulo de E/S anuncia quando pronto (via

(24)
(25)

25

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:

 Salva o contexto (registradores)

 Processa a rotina de tratamento da interrupção.

✓ Fetch data & store

Ver notas no conteúdo da disciplina de Sistemas Operacionais.

(26)
(27)
(28)

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?

 Por exemplo, a rotina que manipula a interrupção está

(29)

29

Identificando o módulo que interrompe (1)

Cada módulo possui uma linha de interrupção

diferente.

 PC

 Limita o número de dispositivos.

Software polling

 CPU consulta cada módulo em uma sequência circular

(30)

Identificando o módulo que interrompe (2)

Daisy Chain

ou

Hardware poll

 O recebimento da interrupção (interrupt acknowledge) é

enviado cadeia abaixo.

 O módulo responsável coloca o vetor de identificação no

barramento.

 A CPU usa o vetor para identificar a rotina de tratamento.

Bus Mastering

 O módulo deve requerer o barramento antes que ele

possa gerar a interrupção.  Por exemplo, PCI & SCSI

(31)

31

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

,

(32)

Example - PC Bus

O 80x86 tem uma linha de interrupção

Sistemas baseados no 8086 utilizam um

controlador de interrupção, o 8259A.

(33)

33

Sequê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.

(34)
(35)

35

ISA Bus Interrupt System

ISA bus encadeia dois controladores 8259A juntos.

O Link é via interrupção 2.

Temos um total de 15 linhas.

 16 linhas menos uma para o link

IRQ 9 é usada para redirecionar alguma coisa

tentando usar a IRQ 2.

 Backwards compatibility.

Nas arquiteturas atuais, o 8259A foi incorporado no

(36)

Intel 82C55A

(37)

37

Direct Memory Access

Interrupt driven

e

programmed I/O

requerem

intervenção ativa da CPU.

 A taxa de transferência é limitada

 A CPU fica aprisionada

Para contornar estes problemas a técnica de

DMA

surge como uma solução.

DMA Function

:

Módulo adicional (hardware) no barramento.

O DMA controller

liberta a CPU da lenta tarefa

(38)
(39)

39

DMA Operation

A CPU configura a controladora DMA:

 Read/Write

 Device address

 Endereço inicial do bloco de memória para os dados

 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

(40)

DMA Transfer - Cycle Stealing

“Roubo" de ciclo na transferência DMA

 Controlador DMA toma conta do barramento (bus)

durante um ciclo (clock).

 Transfere uma palavra de dados.

 Não é uma interrupção

✓ A CPU não salvaguarda o contexto

 CPU suspende a ciclo de instrução imediatamente antes

de:

✓ um acesso ao barramento

✓ antes da busca de um operando ou de dados e

✓ da escrita de dados

(41)

41

Pontos de suspensão de DMA

(42)

Aside

Qual é o efeito que memória caching tem no

DMA?

Dica: Quantos são os barramentos de

(43)

43

Configurações DMA

Bus único, controlador DMA separado

 Cada transferência usa o bus duas vezes

✓ Do dispositivo de E/ S para controlador DMA e deste para a

memória

 Operação da CPU é suspensa duas vezes

Bus único, controlador DMA integrado

 Controlador pode suportar mais do que um dispositivo de

E/S

 Cada transferência usa o bus uma vez – do controlador

DMA para a memória

 Transferência entre dispositivos também usam o bus.

 Operação da CPU é suspensa uma vez.

Bus separado, controlador DMA integrado

 suporta todos os dispositivos DMA

 Cada transferência usa o uma vez – do controlador DMA

para a memória

 Operação da CPU é suspensa uma vez

(44)

DMA Configurations (1)

Bus único, controlador DMA separado

 Cada transferência usa o bus duas vezes

✓ Do dispositivo de E/ S para controlador DMA e deste para a

memória

(45)

45

DMA Configurations (2)

Bus único, controlador DMA integrado

 Controlador pode suportar mais do que um dispositivo

de E/S

 Cada transferência usa o bus uma vez – do

controlador DMA para a memória

 Transferência entre dispositivos também usam o bus.

(46)

DMA Configurations (3)

Bus separado, controlador DMA integrado

 suporta todos os dispositivos DMA

 Cada transferência usa o uma vez – do controlador

(47)

47

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

 Assim CPU não precisa conhecer detalhes específicos dos

dispositivos

 CPU usa E/S programada sem interrupção

Surge então, a interrupção

CPU trabalha enquanto ocorre E/S

O módulo de E/S ganha poder para acessar

(48)

Evolução da E/S

(2)

O módulo de E/S torna-se um processador

 Conjunto próprio de instruções para E/S

 Módulo de E/S é capaz de executar um programa sem

intervenção alguma da CPU

 Também conhecido por canal de E/S

Módulo de E/S ganha uma memória local própria

 Maior número de dispositivos podem ser controlados

 Tamanho de buffer maior para troca de dados

 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.

(49)

49

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

:

Paralela

✓ Várias linhas de conexão entre o módulo de E/S e o

periférico.

✓ Diversos bits são transferidos ao mesmo tempo.

✓ Utilizada em periféricos de alta velocidade.

Serial

✓ Apenas uma linha para transmissão dos dados.

✓ Bits transmitidos um de cada vez.

✓ Mais comum para impressoras e terminais.

Transferência

(50)

Ligação entre módulo E/ S e o periférico

Temporização

(

timming

)

 síncrona  assíncrona

Controle

StrobingHandshaking

Taxas de transferência

 Grande diversidade

Multiplicidade

Ponto a ponto

✓ Linha dedicada entre o módulo de E/S e o dispositivo

✓ Conecta, por exemplo, teclado, impressora e modem

(51)

51

Interfaces & Periféricos

RS-232

 modems, faxs, placas

áudio, placas de rede

PS/2

 mouse

Centronics

 impressoras, scanners

AGP

 placas gráficas

ATA/IDE

 discos magnéticos

ATAPI

 discos ópticos

SCSI

 discos magnéticos, discos ópticos, scanners

SATA

 discos magnéticos

USB

 discos magnéticos, impressoras, scanners, modems

Firewire

 discos magnéticos, câmaras fotográficas, de vídeo

PCMCIA

 discos, faxs, modems,

(52)

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:

 Entrada

(53)

53

Interface Externa SCSI

Todos os dispositivos são conectados a uma cadeia

circular

 O último dispositivo desta cadeia é conectado ao

computador

Dispositivos podem trocar dados:

 Diretamente entre si

 Com o computador

 Exemplo: Um HD pode comunicar-se com uma unidade

de fita diretamente, sem passar por um sistema hospedeiro(processador)

(54)

Interface Externa SCSI

Todas as trocas no barramento SCSI são feitas

entre um mestre e um escravo

 Tipicamente o sistema hospedeiro é o mestre e o

periférico é o escravo.

Toda atividade no barramento ocorre em fases:

 Barramento livre: barramento disponível para uso

 Arbitração: permite a um dispositivo ganhar o controle

do barramento. O dispositivo pode iniciar ou retomar o processamento de uma E/S.

 Seleção: permite um mestre a selecionar um escravo

 Restabelecimento de conexão: permite ao escravo

(55)

55

Interface Externa SCSI

Toda atividade no barramento ocorre em fases:

 Comando: permite ao escravo requisitar informações dos

comandos enviados pelo mestre.

 Dados: permite ao escravo requisitar a transferência de

dados para o mestre (Data In) ou do mestre para o escravo (Data Out)

 Estado: permite ao escravo enviar informações de estado

ao mestre

 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)

(56)

SCSI Signaling (1)

Between initiator and target

Usually host & device

Bus free? (c.f. Ethernet)

Arbitration - take control of bus (c.f. PCI)

Select target

Reselection

Allows reconnection after suspension

e.g. if request takes time to execute, bus can

(57)

57

SCSI Signaling (2)

Command - target requesting from initiator

Data request

Status request

(58)
(59)

59

(60)

Configuring SCSI

Bus must be terminated at each end

 Usually one end is host adapter

 Plug in terminator or switch(es)

SCSI Id must be set

 Jumpers or switches

 Unique on chain

 0 (zero) for boot device

(61)

61

Interface Externa SCSI

SCSI 1 – início de 1980s

 Barramento de dados de 8 bits

 Cabo com 18 linhas:

✓ 9 para controle

✓ 9 para dados (8 bits dados + 1 bit paridade)

 Velocidade de 5 MHz - Taxa de transferência de 5

MBytes/s

 Suporta até 7 dispositivos (comparado com 2 da

tradicional IDE)

 Possui linhas de controle

(62)

Interface Externa SCSI

SCSI 2 - 1991

 Padrão corrente

 Expandiu o barramento para 16 ou 32 bits

 Aumentou a velocidade para 10 MHz – Taxa de

transferência entre 20 ou 40 MBytes/s

 Define comandos específicos para:

✓ Impressoras

✓ Processadores

✓ CD-ROMs

✓ Scanners

(63)

63

Interface Externa FireWire

IEEE standard 1394 (serial bus FireWire)

Vantagens sobre SCSI

 Maior velocidade

 Baixo custo

 Fácil implementação

Utiliza transmissão de 1 bit por vez (serial)

 Requer cabos mais simples que SCSI (que tem mais

linhas)

✓ Menor custo pois cabos paralelos precisam de sincronização

para enviar informação (problema notado em cabos + longos)

(64)

Interface Externa FireWire

Usa daisy chain (cadeia circular) com até 63

dispositivos interconectados em uma única porta

Permite hot plugging (conexão a quente)

 Computador não precisa ser desligado para

conectar/desconectar dispositivos

Configuração automática de IDs para os

dispositivos

 Não é manual

(65)

65

Interface Externa FireWire

Comparando com SCSI:

 SCSI:

✓ requer terminadores nas pontas

✓ Deve-se associar um único ID para cada dispositivo (durante

a configuração)

 FireWire:

✓ Não há terminadores

✓ O sistema define os IDs automaticamente

(66)
(67)

67

Interface Externa FireWire

FireWire define 3 camadas de protocolos para o

sistema hospedeiro interagir com os dispositivos:

Physical layer – define o meio de transmissão

✓ Características de sinais e elétricas

Link layer – descreve a transmissão dos dados em pacotes

Transaction layer – define um protocolo de requisição-resposta que esconde detalhes do barramento

(68)

FireWire - Physical Layer

Data rates from 25 to 400Mbps

Two forms of arbitration

 Based on tree structure

 Root acts as arbiter

 First come first served

 Natural priority controls simultaneous requests

✓ i.e. who is nearest to root

 Fair arbitration

(69)

69

FireWire - Link Layer

Two transmission types

 Asynchronous

✓ Variable amount of data and several bytes of transaction

data transferred as a packet

✓ To explicit address

✓ Acknowledgement returned

 Isochronous

✓ Variable amount of data in sequence of fixed size packets at

regular intervals

✓ Simplified addressing

(70)
(71)

71

FireWire Subactions

(72)

Interface Externa FireWire

Comparando com SCSI:

 SCSI:

✓ requer terminadores nas pontas

✓ Deve-se associar um único ID para cada dispositivo (durante

a configuração)

 FireWire:

✓ Não há terminadores

✓ O sistema define os IDs automaticamente

(73)

73

InfiniBand

I/O specification aimed at high end servers

 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

(74)

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

 17m using copper

(75)

75

InfiniBand Switch Fabric

(76)

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

(77)

77

InfiniBand Protocol Stack

(78)

Foreground Reading

Pesquise sobre Universal Serial Bus (USB)

Faça comparações com outros padrões de

Referências

Documentos relacionados

E nem todos os países estavam na mesma condição norte- americana, acabada a Guerra; e, pouco a pouco, reorganizada a produção europeia, havia países que não encontravam,

Os modelos preconizados pelas normas NBR 6118:2014, ACI-318/2014 e fib MODEL CODE 2010 são comparados com os resultados dos ensaios com o objetivo de mostrar que a utilização

Dada uma função f(x) contínua no intervalo [a,b] onde existe uma raiz única, é possível determinar tal raiz subdividindo sucessivas vezes o intervalo que a contém pelo ponto

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

servidores, software, equipamento de rede, etc, clientes da IaaS essencialmente alugam estes recursos como um serviço terceirizado completo...

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for

garantidas as funções de crescimento e renovação, bem como a síntese de um conjunto de compostos essenciais ao exercício de funções biológicas, processos que constituem

ensino superior como um todo e para o curso específico; desenho do projeto: a identidade da educação a distância; equipe profissional multidisciplinar;comunicação/interatividade