UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO …...Dispositivos periféricos 5 . Introdução...

61
Arquitetura e Organização de Computadores Módulos de E/S Prof. Sílvio Fernandes UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO

Transcript of UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO …...Dispositivos periféricos 5 . Introdução...

Arquitetura e Organização de Computadores

Módulos de E/S

Prof. Sílvio Fernandes

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS

CURSO DE CIÊNCIA DA COMPUTAÇÃO

Introdução

• Além do processador e memória o sistema de computação ainda possui os módulos de E/S

• Cada módulo se conecta ao barramento ou comutador central e controla um ou mais periféricos

2

Introdução

• Por que os periféricos não são conectados diretamente no barramento do sistema?

– Existe uma grande variedade de periféricos, com diversos métodos de operação

– A taxa de transferência de dados dos periféricos normalmente é muito mais lenta (ou mais rápida) do que a da memória ou do processador

– Os periféricos normalmente utilizam formatos de dados e tamanhos diferentes

3

Introdução

• Módulo de E/S tem funções

– Interface com o processador e a memória por meio do barramento do sistema ou comutador central

– Interface com um ou mais dispositivos periféricos por conexões de dados adequados

4

Modelo Geral de um Módulo de E/S

Módulo de E/S

Barramento de Endereço

Barramento de Dados

Barramento de Controle

Conexões com Dispositivos periféricos 5

Introdução

• Dispositivos Externos

– Legíveis ao ser humano:

• Monitor, impressora, teclado

– Legíveis à máquina:

• Monitoração e controle

– Comunicação:

• Modem

• Placa de interface de rede (NIC)

6

Introdução

• Dispositivos Externos

7

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

• Controle e Temporização

• Comunicação com o µP

• Comunicação com dispositivos

• Área de armazenamento temporário de dados

• Detecção de erros

8

Exemplo da Função Controle e Temporização

1. O µP interroga o módulo de E/S para verificar o

estado do dispositivo

2. O módulo retorna o estado do dispositivo

3. Se o dispositivo estiver em operação e pronto para

transmitir dados, o µP requisitará a transferência

enviando um comando para o módulo de E/S

4. O módulo de E/S obtém uma unidade de dados (p.ex.,

8 ou 16 bits) do dispositivo

5. Os dados são transferidos do módulo de E/S para o µP 9

Tópicos Envolvidos na Função Comunicação com o µP

• Decodificação de comandos

– Conversão entre sinais transmitidos através do barramento de controle e comandos usados pelos dispositivos

• Dados

– São transferidos entre o µP e o módulo de E/S através do barramento de dados

• Informação de estado

– Lentidão dos periféricos faz com que seja importante conhecer o estado do módulo de E/S

• Reconhecimento de endereço

– O módulo de E/S deve reconhecer um endereço distinto para cada periférico controlado

10

A Função Comunicação com Dispositivos

11

Área de armazenamento

temporário

Transdutor

Lógica De

Controle

Sinais de controle Do módulo de E/S (READ/WRITE)

Sinais de estado p/ o módulo de E/S (READY/BUSY)

Sinais de dados (bits) de e para o módulo de E/S

Dados de e para o ambiente

A Função Armazenamento Temporário de Dados

• A transferência de dados da memória principal para o módulo de E/S é feita rapidamente

– Esses dados são temporariamente armazenados no módulo de E/S e então enviados para o dispositivo numa taxa adequada

• No caminho oposto, os dados são também armazenados temporariamente no módulo de E/S para não reter a memória numa transferência de dados a baixa velocidade

• O módulo de E/S deve ser capaz de realizar operações tanto à velocidade da memória quanto à do dispositivo externo

12

A Função Detecção de Erros

• Erros possíveis:

– Mau funcionamento elétrico ou mecânico

• Falha de alimentação de papel

• Trilha de disco defeituosa

• etc

– Alterações no padrão de bits transmitidos por um

dispositivo para o módulo de E/S

• Bits de paridade (p.ex., 8º bit em 1 Byte contendo um

caractere ASCII) 13

Estrutura Interna de um Módulo de E/S

14

Lógica de interface

com dispositivo

externo

Lógica de interface

com dispositivo

externo

Lógica De E/S

Registradores de dados

Registradores de estado/controle

Linhas de

dados

Linhas de

endereço

Linhas de

controle

Dados

Estado

Controle

Dados

Estado

Controle

Interface com o barramento do sistema

Interface com Dispositivos externos

.

.

.

Técnicas Usadas para E/S

Sem Interrupções Com Interrupções

Transferência entre memória e E/S por meio do

µP E/S programada E/S dirigida por interrupção

Transferência direta entre memória e E/S

— Acesso Direto à Memória

(DMA)

15

E/S Programada

• Em um programa, a execução de uma instrução relacionada a E/S faz com que um comando seja enviado para o módulo de E/S

• O módulo de E/S executa a operação requisitada e sinaliza o seu término carregando um valor no registrador de estado

• Nenhuma ação é executada pelo módulo para alertar o µP sobre o término da operação

• É responsabilidade do µP verificar periodicamente o estado do módulo, para ver se a operação foi completada

16

E/S Programada 17

Envia cmd de leitura para o

módulo de E/S

Lê o estado do módulo de E/S

Lê uma palavra do

módulo de E/S

Escreve uma palavra na memória

Verifica estado

Terminou?

µP → módulo de E/S

módulo de E/S → µP

Condição de erro

módulo de E/S → µP

µP → memória

Pronto

Não pronto

Não

Sim Próxima instrução

Endereçamento de dispositivos de E/S

• E/S mapeada na memória

– Há um único espaço de endereçamento para posições de memória e dispositivos de E/S

– Exemplo:

• Endereçamento de Byte

• Endereços de 10 bits → 1024 Bytes

– Endereços 0-511: memória principal

– Endereços 512-1023: dispositivos de E/S

• E/S independente

– Espaço de endereçamento de E/S é independente do espaço de endereçamento da memória

18

E/S Mapeada na Memória

ENDEREÇO INSTRUÇÃO OPERANDO COMENTÁRIO

200 Carregar acumulador “1”

201 Armazenar acumulador 517 Iniciar leitura do teclado

202 Carregar acumulador 517 Obter byte de estado

203 Desviar se sinal = 0 202 Repetir até que esteja pronto

204 Carregar o acumulador 516 Carregar byte de dados

19

7 6 5 4 3 2 1 0

Registrador de dados de entrada do teclado

516

7 6 5 4 3 2 1 0

517 Registrador de controle e de estado de entrada do teclado

Atribuir “1” para iniciar a leitura 1 – pronto 0 – ocupado

Como os programas São executados?

PC (Contador de Programa)

• O PC vai evoluindo instrução a instrução (mas os endereços das memórias começam em 0 e não em 1).

• Após cada instrução, o PC contém o endereço da instrução seguinte.

• “Desviar” equivale a escrever um novo valor no PC.

soma EQU 40H (definição do endereço da variável soma) temp EQU 41H (definição do endereço da variável temp) 0 M[soma] 0 (inicializa soma com zero) 1 M[temp] N (inicializa temp com N) 2 Se (M[temp] < 0) PC 7 (se temp for negativo, desvia para o fim) 3 Se (M[temp] = 0) PC 7 (se temp for zero, desvia para o fim) 4 M[soma] M[soma] + M[temp] (adiciona temp à soma) 5 M[temp] M[temp] – 1 (decrementa temp) 6 PC 3 (desvia para o endereço 3) 7 PC 7 (fim do programa)

Fonte: DELGADO, J.; RIBEIRO, C. Arquitetura de Computadores. 2 ed. LTC, 2009.

Vamos somar!

0

0 PC soma temp

Número de instruções executadas

soma EQU 40H (definição do endereço da variável soma) temp EQU 41H (definição do endereço da variável temp) 0 M[soma] 0 (inicializa soma com zero) 1 M[temp] N (inicializa temp com N) 2 Se (M[temp] < 0) PC 7 (se temp for negativo, desvia para o fim) 3 Se (M[temp] = 0) PC 7 (se temp for zero, desvia para o fim) 4 M[soma] M[soma] + M[temp] (adiciona temp à soma) 5 M[temp] M[temp] – 1 (decrementa temp) 6 PC 3 (desvia para o endereço 3) 7 PC 7 (fim do programa)

0

1

1

Valores após a execução da instrução (PC endereça a seguinte):

0 3

2

2 0 3

3

3 0 3

4

4 3 3

5

5 3 2

6

6 3 2

7

3 3 2

8

4 5 2

9

5 5 1

10

6 5 1

11

3 5 1

12

4 6 1

13

5 6 0

14

6 6 0

15

3 6 0

16

7 6 0

17

7 6 0

18

7 6 0

19

7 6 0

20

7

Já chega!!!!

Fonte: DELGADO, J.; RIBEIRO, C. Arquitetura de Computadores. 2 ed. LTC, 2009.

E/S Independente

ENDEREÇO INSTRUÇÃO OPERANDO COMENTÁRIO

200 Iniciar E/S 5 Iniciar leitura do teclado

201 Testar E/S 5 Testar se a operação foi completada

202 Desviar se não pronto 201 Repetir até que seja completada

203 Leitura 5 Carregar byte de dados

22

• Acesso aos dispositivos de E/S é feito através de instruções especiais (comandos)

E/S Dirigida por Interrupção

• μP envia um comando de E/S para o módulo e

continua a executar outras instruções

• O módulo de E/S interrompe o μP quando ele (módulo)

estiver pronto para trocar dados

• μP efetua a transferência de dados e depois retorna ao

seu processamento original

• É mais eficiente que a E/S programada, pois elimina

ciclos de espera desnecessários 23

24

Envia cmd de leitura para o

módulo de E/S

Lê o estado do módulo de E/S

Lê uma palavra do

módulo de E/S

Escreve uma palavra na memória

Verifica estado

Terminou?

µP → módulo de E/S

módulo de E/S → µP

Condição de erro

módulo de E/S → µP

µP → memória

Pronto

Não

Sim

Executa outras instruções

Interrupção

E/S Dirigida por Interrupção

Próxima instrução

Processamento da Interrupção

25

Interrupção

ou exceção

Salva conteúdo dos

registradores na pilha

de controle

Identifica a origem do

evento

Obtém o endereço da

rotina de tratamento

Restaura o conteúdo

dos registradores

Programa

principal

Rotina de

tratamento

Processamento da Interrupção

26

Módulo de E/S envia uma interrupção

μP termina execução da instrução corrente

μP reconhece a interrupção

μP armazena PSW e PC na pilha de controle

μP carrega novo valor no PC, conforme interrupção

Demais informações de estado são armazenadas

Processamento da interrupção

Informações de estado do processo são restauradas

Antigos valores de PSW e PC são restaurados

Hardware Software

Início

Processamento da Interrupção

27

Y

N

N+1

Retorno

N+1 T

Y

Y+L

Programa de usuário

Rotina de tratamento

de interrupção

Pilha de controle

PC

T

RTopo

28

Início

Processamento da Interrupção

28

Y

N

N+1

Retorno

N+1

T-M

Y

Y+L

Programa de usuário

Rotina de tratamento

de interrupção

Pilha de controle

PC

T-M

RTopo Registradores

T ...

T-1

29 29

Início

Processamento da Interrupção

29

Y+L

N

N+1

Retorno

N+1

T-M

Y

Y+L

Programa de usuário

Rotina de tratamento

de interrupção

Pilha de controle

PC

T

RTopo Registradores

T ...

T-1

30 30 30

Início

Processamento da Interrupção

30

N+1

N

N+1

Retorno

N+1

Y

Y+L

Programa de usuário

Rotina de tratamento

de interrupção

Pilha de controle

PC

T

Aspectos de Projeto

• Como identificar o módulo que emite a interrupção?

• Como lidar com interrupções múltiplas?

– Ou seja, um tratador de interrupção sendo interrompido

31

Identificação de Dispositivos

• Técnicas utilizadas:

– Múltiplas linhas de interrupção

• Na prática, poucas linhas de μP são usadas para solicitação de interrupções

– Identificação por software (pooling)

• Consome muito tempo

– Daisy Chain - Identificação por hardware (vetorada)

• Consome menos tempo que a identificação por SW

– Arbitração do barramento (vetorada)

• Consome menos tempo que a identificação por SW

32

Identificação de Dispositivos – múltiplas linhas de interrupção

33

Módulo de E/S

Dispositivo

Módulo de E/S

Dispositivo

Módulo de E/S

Dispositivo

μP ...

... INTR#0

INTR#1

INTR#N

Identificação de Dispositivos – identificação por software

• Quando o μP detecta uma interrupção, ele desvia a execução para uma rotina de tratamento de interrupções

• Esta rotina interroga cada módulo de E/S, para determinar qual deles causou a interrupção

– Metodologias de interrogação: • Linha de teste especial (TEST I/O) + colocação de endereços dos

módulos no barramento de endereços

• Leitura de registradores de estado

• Identificado o módulo, sua rotina de tratamento de interrupção específica é chamada

34

Identificação de Dispositivos – identificação por hardware

• O sinal de reconhecimento de interrupção se propaga pelos módulos de E/S, até chegar àquele que originou a interrupção

• Esse módulo responde colocando uma palavra de dados, chamada vetor de interrupção, nas linhas de dados

• O vetor de interrupção contém o endereço do módulo de E/S, e serve para que o μP acione a rotina de tratamento de interrupção adequada ao dispositivo 35

Módulo de E/S

Módulo de E/S

Módulo de E/S

μP Módulo de E/S

Identificação de Dispositivos - arbitração do barramento

• Para enviar um sinal de interrupção, o módulo de E/S

precisa inicialmente obter o controle do barramento

• Quando o μP detecta a interrupção, ele responde por

meio da linha de reconhecimento de interrupção

• O módulo de E/S que causou a interrupção coloca seu

vetor na linha de dados

36

Interrupções Múltiplas

• Múltiplas linhas – O processador apenas apanha a linha de interrupção

com a prioridade mais alta

• Verificação por Software – A ordem em que os módulos são verificados

determina suas prioridades

• Daisy – A ordem em que os módulos são verificados

determina suas prioridades

• Arbitração – Centralizada ou distribuída

37

O Controlador Intel 82C59A

• O Intel 80386 possui:

– Uma única linha de requisição de interrupção (INTR)

– Uma única linha de reconhecimento de interrupção (INTA)

• Para manipular vários dispositivos e estruturas de prioridade, ele é normalmente configurado com um controlador de interrupções externo, o Intel 82C59A

• Os módulos de E/S são conectados ao 82C59A, que por sua vez é conectado ao 80386

38

O Controlador Intel 82C59A

• Caso seja preciso controlar mais de oito módulos, pode

ser usado um arranjo em cascata – possibilitando

controlar até 64 módulos 39

IR0 INTR

Módulo de E/S 00

Módulo de E/S 01 IR1

Módulo de E/S 02 IR2

Módulo de E/S 07 IR7 ...

... INTR

INTA INTA

O Controlador Intel 82C59A

40

O Controlador Intel 82C59A

• O 82C59A é programável

• Modos de programação possíveis:

– Totalmente aninhado

• As requisições de interrupção são ordenadas de acordo com as prioridades de 0 (IR0) a 7 (IR7)

– Circular

• Num mesmo grupo de dispositivos, aquele que foi mais recentemente atendido recebe a prioridade mais baixa

– Máscara especial

• Possibilita ao μP inibir interrupções de determinados dispositivos

41

O Módulo de E/S Intel 82C55A

• Pode ser programado para E/S programada ou E/S

dirigida por interrupção

• Como interface externa para dispositivos, possui 3

grupos de linhas de 8 bits (A, B e C)

– Em um modo de operação específico, os 3 grupos

funcionam como 3 portas de E/S

– Nos demais modos, as linhas dos grupos A e B funcionam

como portas de E/S e as do grupo C como linhas de

controle para os grupos A e B 42

O Módulo de E/S Intel 82C55A

43

Lógica De

Controle

Registrador de Dados

Registrador de Controle

Read Write Reset

CS

A0 A1

Linhas de endereço

Barramento de 8 bits

buffers

8

8

8

4

4

8

8

Alimentação +5V Terra

Barramento de dados do 80386

A

B

CA

CB

44

R0 R1 R2 R3 R4 R5 Shift Control Data Ready Acknowledge

Teclado

S0 S1 S2 S3 S4 S5 Backspace Clear Data Ready Acknowledge Blanking Clear Line

Monitor de Vídeo

82C55A

A0 A1 A2 A3 A4 A5 A6 A7 C4 C5

B0 B1 B2 B3 B4 B5 B6 B7 C1 C2 C6 C7

Porta de entrada

Porta de saída

Requisição de

interrupção

C3

Requisição de

interrupção

C0

Acesso Direto à Memória (DMA)

• Envolve um módulo adicional no barramento do sistema

• Esse módulo, denominado controlador de DMA, imita o μP nas funções de E/S de dados

• O controlador de DMA pode operar das seguintes maneiras:

– Usando o barramento apenas quando o μP não o utiliza

– Forçando o μP a suspender temporariamente sua operação – técnica conhecida como roubo de ciclo

45

Roubo de Ciclo

46

Busca de instrução

Decod. de instrução

Busca de operando

Execução de instrução

Armazenam. de resultado

Proc. de interrupção

Ciclo do μP Ciclo do μP Ciclo do μP Ciclo do μP Ciclo do μP Ciclo do μP

Ciclo de instrução

Tempo

Pontos de suspensão de DMA

Pontos de suspensão de interrupção

Acesso Direto à Memória (DMA)

47

Envia cmd de leitura para o controlador de

DMA

Lê o estado do controlador DMA

µP → controlador DMA

Controlador DMA → µP

Próxima instrução

Executa outras instruções

Interrupção

Estrutura Interna de Um Módulo DMA

48

Contador de dados

Registrador de dados

Registrador de endereços

Lógica de

Controle

DMA Request

DMA Acknowledgement

Interrupt

Read

Write

Linhas de endereço

Linhas de dados

Configurações de DMA

• Algumas possibilidades:

– Barramento único, DMA separado

– Barramento único, DMA-E/S integrados

– Barramento específico de E/S

49

Configurações de DMA – Barramento Único, DMA separado

• Barata

• Ineficiente – a transferência de cada palavra consome vários ciclos de barramento

50

μP DMA E/S E/S Memória ...

Configurações de DMA - Barramento Único, DMA-E/S Integrados

• Custosa

• Eficiente

51

μP DMA

E/S E/S

Memória

E/S

DMA

Configurações de DMA - Barramento Específico de E/S

52

μP

E/S E/S

Memória

E/S

DMA

• Custosa

• Eficiente

Barramento do sistema

Barramento de E/S

Controlador DMA Intel 8237A

• Interfaces com família 80x86 e DRAM

• Quando o módulo de DMA precisa de

barramentos, ele envia sinal HOLD ao

processador.

• CPU responde HLDA (hold acknowledge) .

• Módulo de DMA pode usar barramentos. 53

Controlador DMA Intel 8237A

54

1 2 / 6

3 4

5

Controlador DMA Intel 8237A

• Ex: transferir dados da memória para o disco

1. Dispositivo requisita serviço de DMA levantando DREQ (requisição de DMA).

2. DMA levanta sua linha HRQ (hold request). 3. CPU termina ciclo de barramento presente (não

necessariamente instrução presente) e levanta linha HDLA HDLA (hold acknowledge). HOLD permanece ativo pela duração do DMA.

55

Controlador DMA Intel 8237A

• Ex: transferir dados da memória para o disco

4. DMA ativa DACK (DMA acknowledge), dizendo ao dispositivo para iniciar a transferência.

5. DMA inicia transferência colocando endereço do primeiro byte no barramento de endereço e ativando MEMR; depois, ativa IOW para escrever no periférico. DMA decrementa contador e incrementa ponteiro de endereço. Repete até contagem chegar a zero.

6. DMA desativa HRQ, retornando o controle do barramento de volta à CPU

56

Evolução: canais e processadores de E/S

1. μP controla diretamente dispositivos

2. Módulos de E/S são adicionados

3. Interrupções são utilizadas

4. É introduzido o módulo de DMA

5. O módulo de E/S evolui para um canal, e executa

programas de E/S carregados da memória principal

6. O canal evolui para um processador, possuindo sua

própria memória local

57

Tipos de Canais

• Seletores

– Dedicam-se à transferência de dados apenas com

um único dispositivo por vez

• Multiplexadores

– Transferem dados de/para vários dispositivos

simultaneamente

58

Canal Seletor

59

Canal Seletor

Módulo de E/S

Módulo de E/S

dispositivo dispositivo dispositivo

Memória principal

μP

Canal Multiplexador

60

Canal Multiplexador

Módulo de E/S

Módulo de E/S

dispositivo

dispositivo

dispositivo

Memória principal

μP

Módulo de E/S

dispositivo

Referências

• STALLINGS, W. Arquitetura e organização de computadores: projeto para o desempenho. 8. ed. Prentice Hall, 2009.

• DELGADO, J.; RIBEIRO, C. Arquitetura de Computadores. 2 ed. LTC, 2009.

• PATTERSON, D. A. ; HENNESSY, J.L. Organização e projeto de computadores – a interface hardware software. 3. ed. Editora Campus, 2005.

61