ea869leopini/disciplinas/ea869/2018-1/l1... · •conhecer como o disco rígido envia informações...

78
EA869 INTRODUÇÃO A SISTEMAS DE COMPUTAÇÃO DIGITAL 2S2017 PED Tiago Novaes Angelo ENTRADA E SAÍDA Aulas 20 , 23 e 24

Upload: doannhu

Post on 09-Nov-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

EA869 INTRODUÇÃO A SISTEMAS DE COMPUTAÇÃO DIGITAL

2S2017

PED Tiago Novaes Angelo

ENTRADA E SAÍDA

Aulas 20 , 23 e 24

Objetivos

• Conhecer como o computador se comunica com dispositivos externos

• Conhecer a Interface de Entrada/Saída

• Conhecer os mecanismos de Entrada e Saída do processador ARM

• Conhecer as formas de Comunicação paralela/serial

• Conhecer como o Disco Rígido envia informações para a memória

Relembrar é viver... • Há algumas aulas estamos estudando a arquitetura de um computador:

- Começamos conhecendo os elementos de hardware e como eles se comunicam ente si: registradores, memória, UAL, UC e barramentos;

- Unindo estes elementos, projetamos duas arquiteturas de processador: i869 v2 e o i869 EXTREME;

- A primeira arquitetura caracterizava-se pelo controle das instruções via hardware (RISC). A segunda, via microprogramação (CISC).

- Seguimos conhecendo uma forma mais eficiente de executar instruções: o pipeline; e de construir programas modulares: as subrotinas;

- Por fim, no último capítulo, conhecemos como o processador atende a sinais internos e externos executando rotinas de serviço de interrupção de forma assíncrona: interrupção.

Qual é origem destes sinais? Quem o

processador deve atender?

MEMÓRIA

INSTRUÇÕES

DADOS

COMPUTADOR

UC

BANCO DE REGISTRADORES

UAL

CPU

INTER. ENTRADA/SAÍDA

• Nosso foco agora será estudar como os periféricos se comunicam com o processador:

Como enviam e recebem dados? Como interrompem a CPU para serem atendidos? Quem organiza os dados?

ENTRADA E SAÍDA OBSERVAÇÃO!

Ao falarmos de ENTRADA E SAÍDA, estamos sempre nos referindo ao fluxo de informações do ponto de vista da CPU!

• ENTRADA refere-se à entrada de dados na CPU, ou seja, o dado sai da interface\dispositivo e vai para a CPU (registradores, memória, etc)

Exemplos: Mouse, teclado, pen drive, etc

• SAÍDA refere-se à saída de dados da CPU, ou seja, o dado sai da CPU e vai para a Interface\dispositivo

Exemplos: Monitor, impressora, pen drive, etc

MEMÓRIA

INSTRUÇÕES

DADOS

COMPUTADOR

UC

BANCO DE REGISTRADORES

UAL

CPU

INTER. ENTRADA/SAÍDA

ENTRADA E SAÍDA • Para aprendermos como funciona a comunicação entre periféricos e o computador, dividiremos nosso estudo

em 3 partes:

Comunicação Interface E/S -

CPU

Interface E/S

Comunicação Interface E/S - Dispositivos

MEMÓRIA

INSTRUÇÕES

DADOS

COMPUTADOR

UC

BANCO DE REGISTRADORES

UAL

CPU

INTER. ENTRADA/SAÍDA

• Para aprendermos como funciona a comunicação entre periféricos e o computador, dividiremos nosso estudo em 3 partes:

Comunicação Interface E/S -

CPU

COMUNICAÇÃO INTERFACE - CPU

MEMÓRIA

COMPUTADOR

CPU

INTER. ENTRADA/SAÍDA

Como a interface e

conecta à CPU?

E/S BASEADA EM PORTAS

Através de portas no CPU!

...

PORTA A

PORTA B

PORTA C

n bits

j bits

k bits

COMUNICAÇÃO INTERFACE - CPU

MEMÓRIA

COMPUTADOR

CPU

INTER. ENTRADA/SAÍDA

E/S BASEADA EM PORTAS

...

PORTA A

PORTA B

PORTA C

n bits

j bits

k bits

COMUNICAÇÃO INTERFACE - CPU

- Um periférico pode acessar diversas portas;

CARACTERÍSTICAS

- E/S paralela: as portas recebem bits

paralelamente;

- Cada porta terá uma função: entrada de dados, saída de dados, leitura de registradores da interface,

etc;

- Os pinos das portas estão conectados à

registradores da CPU;

A CPU pode acessar esses registradores

endereçando porta e pino. Exemplo: PortaA.2 (pino 2

da Porta A)

Qual a desvantagem dessa arquitetura?

Hardware!

Solução?

Utilizar o hardware já existente (registradores

e barramentos)

MEMÓRIA

COMPUTADOR

CPU

INTER. ENTRADA/SAÍDA ...

COMUNICAÇÃO INTERFACE - CPU E/S BASEADA NO BARRAMENTO

Nesta estratégia, a CPU acessa os periféricos

através de barramentos

A interface pode usar estes barramentos de duas formas lógicas:

ISOLADA

A interface usa os barramentos como se

fossem unicamente dedicados a ela, isolado do CPU

MAPEADO EM MEMÓRIA

A interface compartilha os barramentos com a

CPU, acessando registradores e memórias

da mesma forma que a CPU acessa.

MEMÓRIA

COMPUTADOR

CPU

INTER. ENTRADA/SAÍDA ...

COMUNICAÇÃO INTERFACE - CPU E/S BASEADA NO BARRAMENTO

ISOLADA

Neste tipo de arquitetura, os barramentos de controle, dados e

endereço para E/S e acesso á memória são logicamente distintos;

Tal característica faz com que o acesso da

CPU à memória e registradores seja ISOLADO do seu

acesso à interface;

Consequência?

1. São necessárias instruções específicas para entrada e saída de dados e acesso à

memória

2. Memória deve ser dividida

entre Endereços da CPU e

endereços dos periféricos

1 .. n

1 .. m

Espaço de memória

Espaço de E/S

E/S BASEADA NO BARRAMENTO

• CARACTERÍSTICAS

- Barramentos de acesso à interface são logicamente distintos dos barramentos da CPU;

- Necessita de instruções específicas para manipular os dados dos periféricos

• EXEMPLOS

IN port CPU lê interface – Registrador Acc recebe dado da interface

OUT port CPU envia dado para interface – Registrador Acc envia seu dado para registrador da interface E/S

LOAD m Carrega conteúdo da Memória no registrador Acc

STORE m Escreve na memória o conteúdo do registrador Acc

1. Transferência de dados entre CPU e Interface E/S

2. Transferência de periféricos entre CPU e a Memória (NÃO É E/S !)

ISOLADA

COMUNICAÇÃO INTERFACE - CPU

MEMÓRIA

COMPUTADOR

CPU

INTER. ENTRADA/SAÍDA ...

COMUNICAÇÃO INTERFACE - CPU E/S BASEADA NO BARRAMENTO

MAPEADA EM MEMÓRIA

Neste tipo de arquitetura não há

barramentos dedicados para E/S;

Consequências?

1. Não há necessidade de instruções

especiais para E/S;

2. Acesso à memória se dá da mesma forma

que a CPU. Deve-se ter cuidado para reservar

endereços para a manipulação de dados

dos periféricos

1 .. n

n + 1 .. m

Espaço de memória

Espaço de E/S

E/S BASEADA NO BARRAMENTO MAPEADA EM MEMÓRIA

• CARACTERÍSTICAS

- Interface envia e recebe dados compartilhando os mesmos barramentos da CPU;

- Desta forma, não há necessidade de instruções especiais. Portas, registradores e memória são acessíveis com as instruções correntes do processador;

- Deve-se atentar-se ao fato de reservar uma faixa de endereços da memória para os dados de Entrada/Saída;

- Não necessita de instruções especiais;

- Pode, caso necessário, acessar qualquer endereço de memória;

- Compartilha memória com a CPU;

- Acesso à memória pode ser mais lento, já que não possui barramentos específicos;

- Interface de E/S precisa ser capaz de reconhecer endereços maiores (+ hardware)

Desvantagens

ENTRADA E SAÍDA

Vantagens

MEMÓRIA

INSTRUÇÕES

DADOS

COMPUTADOR

UC

BANCO DE REGISTRADORES

UAL

CPU

INTER. ENTRADA/SAÍDA

ENTRADA E SAÍDA

Comunicação Interface E/S -

CPU

Interface E/S

Comunicação Interface E/S - Dispositivos

PERIFÉRICOS

PERIFÉRICOS

INTERFACE DE E/S

Mapeada em memória

Isolada

Qual a função da Interface E/S?

Coordenar a transferência de dados entre o processador e

um dispositivo externo

O que ela deve fazer? - Conhecer o estado do periférico para informar a CPU sobre o

momento adequado para transferência de dados;

- Armazenar dados para transferência CPU-Periférico e Periférico-CPU;

- Converter os dados em formato apropriado para transmissão entre o barramento de dados e os dispositivos periféricos (configuração);

CPU INTERFACE

Como?

Registradores de Interface!

REGISTRADOR DE ESTADO (RS) Armazena o estado do dispositivo

REGISTRADOR DE DADOS (RD) Armazena dados para transferência

REGISTRADOR DE CONTROLE (RC) Configura a interface para diferentes dispositivos

RS

RD

RC

PERIFÉRICOS

INTERFACE DE E/S

CPU INTERFACE

RD

REGISTRADOR DE DADOS

• Armazenador temporário de dados;

• Participa de duas operações:

- Saída: é carregado pela CPU e dado fica disponível para o dispositivo ler;

- Entrada: é carregado pelo dispositivo e dado fica disponível para CPU ler.

PERIFÉRICOS

INTERFACE DE E/S

CPU INTERFACE

REGISTRADOR DE ESTADO

RS

• Informa o estado da transferência E/S, ou seja, se o dispositivo está pronto para enviar dados para a CPU ou se ele está pronto para receber dados da CPU;

• Dois bit do RS nos fornecem essa informação:

Indica que o dispositivo carregou dado no RD (pronto para entrada)

Indica que RD já está livre para ser carregado pela CPU (pronto para saída)

PERIFÉRICOS

INTERFACE DE E/S

CPU INTERFACE

REGISTRADOR DE CONTROLE • Responsável pelo estabelecimento dos modos de operação;

• Cada dispositivo demanda um modo de operação diferente, o qual define as características de operação. Por exemplo, se o dispositivo tem permissão para interrupção, se é um dispositivo de entrada ou saída, protocolos de transmissão de dados e outros;

RC

• Cada dispositivo necessita de uma configuração específica da interface. Quem configura a interface enviado dados para RC é a própria CPU.

PERIFÉRICOS

INTERFACE DE E/S

CPU INTERFACE

FLUXO DE INFORMAÇÕES ENTRE INTERFACE E CPU

RS

RD

RC

• Do ponto de vista da CPU:

- No Registrador de estado é permitida apenas a leitura;

- No Registrador de Controle é permitida apenas a escrita;

- No Registrador de Dados é permitido tanto a leitura como a escrita;

INTERFACE DE E/S • Vamos supor que queremos escrever um programa que busque dados de um pen- drive ...

• A interface é composta de 3 registradores: RS, RC e RD;

• A interface permite receber dados dos dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída.

1. Definir os registradores da interface

... RS

3 2 1 0

1 – dados em RD (entrada permitida)

0 – dados ainda não carregados em RD

1 – RD pronto para receber dados (saída permitida)

0 – RD ainda não está disponível

(ENTRADA DE DADOS)

RD

RC

CPU

Vamos escrever um programa em Assembly que leia os dados do pen-drive

Registrador de Estado

RS S E

INTERFACE DE E/S • Vamos supor que queremos escrever um programa que busque dados de um pen- drive ...

• A interface é composta de 3 registradores: RS, RC e RD;

• A interface permite receber dados dos dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída.

1. Definir os registradores da interface

(ENTRADA DE DADOS)

RC

CPU

Vamos escrever um programa em Assembly que leia os dados do pen-drive

Registrador de Dados

S E

... RD

3 2 1 0

DADO

RD

RS

INTERFACE DE E/S • Vamos supor que queremos escrever um programa que busque dados de um pen- drive ...

• A interface é composta de 3 registradores: RS, RC e RD;

• A interface permite receber dados dos dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída.

1. Definir os registradores da interface

(ENTRADA DE DADOS)

CPU

Vamos escrever um programa em Assembly que leia os dados do pen-drive

Registrador de Controle

S E

RD

RS

... RC

3 2 1 0

1 – serial

0 – paralela

1 – Permite interrupção

0 – Não permite interrupção

1 – Entrada

0 – Saída

RC e/s I s/p

INTERFACE DE E/S • Vamos supor que queremos escrever um programa que busque dados de um pen- drive ...

• A interface é composta de 3 registradores: RS, RC e RD;

• A interface permite receber dados dos dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída.

2. Definir o fluxo de informação

(ENTRADA DE DADOS)

CPU

Vamos escrever um programa em Assembly que leia os dados do pen-drive

S E

RD

RS

RC e/s I s/p

Configurar RC

Testa RS

CPU recebe dado

RD carregado

INTERFACE DE E/S • Vamos supor que queremos escrever um programa que busque dados de um pen- drive ...

• A interface é composta de 3 registradores: RS, RC e RD;

• A interface permite receber dados dos dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída.

3a. Escrever o programa considerando um arquitetura de E/S mapeada em memória

(ENTRADA DE DADOS)

CPU

Vamos escrever um programa em Assembly que leia os dados do pen-drive

S E

RD

RS

RC e/s I s/p

Configurar RC

Testa RS

CPU recebe dado

RD carregado

MOVE #101 , RC

MOVE RS , R1

TSTBIT 0 , R1

JZ LOOP

MOVE RD , R2

LOOP:

Carrega 101 em RC // configura RC

R1 ← (RS) // CPU lê RS

Testa bit 0 de R1

R2 ← (RD) // entrada dos dados

Se bit = 0 volta para LOOP, senão continua

INTERFACE DE E/S • Vamos supor que queremos escrever um programa que busque dados de um pen- drive ...

• A interface é composta de 3 registradores: RS, RC e RD;

• A interface permite receber dados dos dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída.

3b. Escrever o programa considerando um arquitetura de E/S isolada

(ENTRADA DE DADOS)

CPU

Vamos escrever um programa em Assembly que leia os dados do pen-drive

S E

RD

RS

RC e/s I s/p

Configurar RC

Testa RS

CPU recebe dado

RD carregado

LDA #101 OUT RC

TSTBIT 0 IN RS LOOP:

IN RD

Carrega 101 no Acc

RC ← (Acc) // Configura RC

Acc ← (RS) // CPU lê RS

Testa bit 0 do RS

JZ LOOP Acc ← (RD) // entrada dos dados

Se bit = 0 volta para LOOP, senão continua

ENTRADA E SAÍDA

MEMÓRIA

INSTRUÇÕES

DADOS

COMPUTADOR

UC

BANCO DE REGISTRADORES

UAL

CPU

INTER. ENTRADA/SAÍDA

INTERFACE DE E/S • Vamos supor que queremos escrever um programa que envie dados a um monitor (VGA) ...

• A interface é composta de 3 registradores: RS, RC e RD;

• A interface permite receber dados dos dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída.

1. Definir os registradores da interface

... RS

3 2 1 0

1 – dados em RD (entrada permitida)

0 – dados ainda não carregados em RD

1 – RD pronto para receber dados (saída permitida)

0 – RD ainda não está disponível

(SAÍDA DE DADOS)

RD

RC

CPU

Vamos considerar a mesma configuração de interface definida no exemplo anterior

Registrador de Estado

RS S E

INTERFACE DE E/S • Vamos supor que queremos escrever um programa que envie dados a um monitor (VGA) ...

• A interface é composta de 3 registradores: RS, RC e RD;

• A interface permite receber dados dos dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída.

1. Definir os registradores da interface

(SAÍDA DE DADOS)

RC

CPU

Vamos considerar a mesma configuração de interface definida no exemplo anterior

RS S E

Registrador de Dados

... RD

3 2 1 0

DADO

RD RD

INTERFACE DE E/S • Vamos supor que queremos escrever um programa que envie dados a um monitor (VGA) ...

• A interface é composta de 3 registradores: RS, RC e RD;

• A interface permite receber dados dos dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída.

1. Definir os registradores da interface

(SAÍDA DE DADOS)

CPU

Vamos considerar a mesma configuração de interface definida no exemplo anterior

RS S E

RD

Registrador de Controle

... RC

3 2 1 0

1 – serial

0 – paralela

1 – Permite interrupção

0 – Não permite interrupção

1 – Entrada

0 – Saída

RC e/s I s/p

INTERFACE DE E/S • Vamos supor que queremos escrever um programa que envie dados a um monitor (VGA)...

• A interface é composta de 3 registradores: RS, RC e RD;

• A interface permite receber dados dos dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída.

(SAÍDA DE DADOS)

CPU

Vamos considerar a mesma configuração de interface definida no exemplo anterior

RS S E

RD

RC

2. Definir o fluxo de informação

Configurar RC

Testa RS

CPU envia dado

RD livre

RD ocupado

e/s I s/p

INTERFACE DE E/S • Vamos supor que queremos escrever um programa que envie dados a um monitor (VGA) ...

• A interface é composta de 3 registradores: RS, RC e RD;

• A interface permite receber dados dos dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída.

(SAÍDA DE DADOS)

CPU

Vamos considerar a mesma configuração de interface definida no exemplo anterior

RS S E

RD

RC

Configurar RC

Testa RS

CPU envia dado

RD livre

RD ocupado

3a. Escrever o programa considerando um arquitetura de E/S mapeada em memória

MOVE #000 , RC

MOVE RS , R1

TSTBIT 1 , R1

JZ LOOP

MOVE R2 , RD

Carrega 000 em RC // configura RC para saída paralela sem interrupção

R1 ← (RS) // CPU lê RS

Testa bit 0 de R1

RD ← (R2) // Saída de dados

Se bit = 0 volta para LOOP, senão continua

e/s I s/p

LOOP:

INTERFACE DE E/S • Vamos supor que queremos escrever um programa que envie dados a um monitor (VGA) ...

• A interface é composta de 3 registradores: RS, RC e RD;

• A interface permite receber dados dos dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída.

(SAÍDA DE DADOS)

CPU

Vamos considerar a mesma configuração de interface definida no exemplo anterior

RS S E

RD

RC

Configurar RC

Testa RS

CPU envia dado

RD livre

RD ocupado

e/s I s/p

LDA #000 OUT RC

TSTBIT 1 IN RS

OUT RD

Carrega 000 no Acc

RC ← (Acc) // Configura RC

Acc ← (RS) // CPU lê RS

Testa bit 1 do RS

JZ LOOP RD ← (Acc) // entrada dos dados

LOOP:

Se bit = 1 volta para LOOP, senão continua

3b. Escrever o programa considerando um arquitetura de E/S isolada

ENTRADA E SAÍDA

MEMÓRIA

INSTRUÇÕES

DADOS

COMPUTADOR

UC

BANCO DE REGISTRADORES

UAL

CPU

INTER. ENTRADA/SAÍDA

MEMÓRIA

COMPUTADOR

CPU

INTER. ENTRADA/SAÍDA ...

COMUNICAÇÃO INTERFACE - CPU

ISOLADA

MAPEADO EM MEMÓRIA

PORTAS

PERIFÉRICOS

INTERFACE DE E/S

CPU INTERFACE

FLUXO DE INFORMAÇÕES ENTRE INTERFACE E CPU

RS

RD

RC

• Do ponto de vista da CPU:

- No Registrador de estado é permitida apenas a leitura;

- No Registrador de Controle é permitida apenas a escrita;

- No Registrador de Dados é permitido tanto a leitura como a escrita;

INTERFACE DE E/S • Vamos supor que queremos escrever um programa que envie dados a um monitor (VGA)...

• A interface é composta de 3 registradores: RS, RC e RD;

• A interface permite receber dados dos dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída.

(SAÍDA DE DADOS)

CPU

Vamos considerar a mesma configuração de interface definida no exemplo anterior

RS S E

RD

RC

2. Definir o fluxo de informação

Configurar RC

Testa RS

CPU envia dado

RD livre

RD ocupado

e/s I s/p

INTERFACE DE E/S • Vamos supor que queremos escrever um programa que busque dados de um pen- drive ...

• A interface é composta de 3 registradores: RS, RC e RD;

• A interface permite receber dados dos dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída.

2. Definir o fluxo de informação

(ENTRADA DE DADOS)

CPU

Vamos escrever um programa em Assembly que leia os dados do pen-drive

S E

RD

RS

RC e/s I s/p

Configurar RC

Testa RS

CPU recebe dado

RD carregado

INTERFACE DE E/S • Nos exemplos anteriores, definimos uma forma de atender dispositivos enviando ou

recebendo dados a partir de um programa;

• Neste tipo de transferência, o programador tem total controle sobre o momento que irá enviar ou receber dados da interface de E/S.

Qual é a desvantagem deste

método?

A CPU não continua a execução do programa

enquanto a Entrada ou Saída não for concluída!

Quais são os métodos alternativos?

CONTROLE DE TRANSFERÊNCIA DE DADOS

não

CONTROLE DE TRANSFERÊNCIA DE DADOS • O controle de transferência de dados dos exemplos que acabamos de fazer é chamado de:

E/S CONTROLADA POR PROGRAMA

• E caracteriza-se pela transferência programada, ou seja, executada pela CPU por instruções definidas pela controlador. Logo, é uma transferência síncrona.

• Este tipo de controle pode ser de dois tipos:

Transferência condicional

Transferência incondicional

Programa efetua a transferência dos dados independente do estado do dispositivo (não ocorre a leitura do RS e loop de

espera)

A transferência só é efetuada quando o dispositivo está pronto para a mesma. Há leitura do RS e loop de

espera

Dispositivo pronto?

Transferência

Transferência

Exemplo? Exemplo?

Qual outra alternativa para o controle de transferência de

dados?

sim

CONTROLE DE TRANSFERÊNCIA DE DADOS

Qual outra alternativa para o controle de transferência de

dados?

CONTROLE DE TRANSFERÊNCIA DE DADOS E/S CONTROLADA POR INTERRUPÇÃO

PROGRAMA

Transferência Interrupção

ROTINA DE SERVIÇO

• No controle de transferência por interrupção, a interface gera um sinal de interrupção quando está pronta para realizar a transferência de dados. O programa em execução é interrompido e a rotina de serviço de interrupção executa a transferência desejada;

• A vantagem dessa estratégia é que a transferência pode ser realizada a qualquer momento. É uma transferência assíncrona ao programa.

Exemplos?

CONTROLE DE TRANSFERÊNCIA DE DADOS

• Tanto a transferência de dados efetuada por programa quanto a por interrupção são controladas pela CPU;

• Sua operação envolve uma série de execuções de instruções, seja no próprio programa, seja na rotina de serviço de interrupção. Tal fato exige o uso de diversos ciclos de máquina para completar uma transferência de entrada ou de saída.

Este tipo de transferência controlada por CPU é

rápida ou lenta?

LENTA!

Qual periférico pode ter sua operação comprometida

por processos lentos?

DISCO RÍGIDO (HD)

Solução

E/S controlada por Hardware

CONTROLE DE TRANSFERÊNCIA DE DADOS E/S CONTROLADA POR HARDWARE

• Operações de E/S controlada por CPU são inadequadas para transferência de dados entre a Memória e dispositivos de “alta velocidade”, tal como o HD.

• Um HD necessita transferir grandes blocos de dados repetitivamente para a memória RAM sem que a execução do programa seja interrompida.

• Uma forma de tornar este processo eficiente é controlando a transferência de dados entre dispositivo e memória através de um hardware específico, o qual denominaremos de controlador DMA (Direct Memory Access)

• Com o controlador DMA, a CPU apenas inicia a transferência de um bloco de dados; após esta inicialização, o Controlador DMA realizará a transferência e a CPU ficará livre para continuar a execução do programa.

CONTROLE DE TRANSFERÊNCIA DE DADOS E/S CONTROLADA POR HARDWARE

MEMÓRIA

COMPUTADOR

CPU

INTER. ENTRADA/SAÍDA ...

Barramento de dados

DMA

Linhas de controle e dados

Linha de controle

Barr. de endereços

DMA transfere blocos de dados do HD diretamente para a memória sem

intervenção da CPU

Apesar de ter um barramento de endereço próprio, o DMA compartilha

com a CPU o barramento de dados

A CPU apenas envia um sinal de controle informado ao DMA para executar a

transferência

CONTROLE DE TRANSFERÊNCIA DE DADOS E/S CONTROLADA POR HARDWARE

OPERAÇÃO DO DMA

1. Quem requisita o DMA?

CPU

• Programa: O programa em execução informa ao DMA para iniciar a transferência de um bloco de dados. Durante a transferência, a CPU prossegue com o programa em execução;

Caso a continuação da execução do programa dependa do bloco, um laço de espera aguarda o registrador de estado do DMA informar o fim da transferência;

• Interrupção: Neste caso, o programa solicita ao DMA a transferência de um bloco de dados. Ao término da transferência, o DMA envia um sinal de interrupção, a CPU pára e executa uma rotina de serviço que irá iniciar a transferência do(s) bloco(s) de dados seguintes.

CONTROLE DE TRANSFERÊNCIA DE DADOS E/S CONTROLADA POR HARDWARE

OPERAÇÃO DO DMA

2. Como é efetuada a transferência de dados?

• O controlador DMA e a CPU compartilham o mesmo barramento para transmitir dados. Desta forma, faz-se necessário alguma estratégia para coordenar o uso deste barramento. Iremos conhecer algumas a seguir...

CONTROLE DE TRANSFERÊNCIA DE DADOS E/S CONTROLADA POR HARDWARE

RAJADA

DMA solicita barramento

CPU libera o barramento

DMA transfere o bloco enquanto a CPU aguarda o

término

Vantagem

Dados não passam pela CPU (DMA → RAM): maior velocidade;

Desvantagem

Não há paralelismo entre E/S e CPU, ou seja, a CPU para a execução do programa enquanto o DMA transfere o bloco de dados para a memória;

CONTROLE DE TRANSFERÊNCIA DE DADOS E/S CONTROLADA POR HARDWARE

ROUBO DE CICLO

Vantagem

Quando o DMA assume o controle do barramento, a CPU pode executar instruções que não necessitam do barramento (pode haver paralelismo em alguns momentos)

Desvantagem

DMA assume o

barramento

Transfere uma palavra

Devolve o barramento para a CPU

Programa solicita o DMA

A execução da CPU pode ficar um pouco mais lenta já que, periodicamente, o DMA a interrompe para transmitir uma palavra.

sim

CONTROLE DE TRANSFERÊNCIA DE DADOS E/S CONTROLADA POR HARDWARE

DMA TRANSPARENTE

Vantagem

Não há interferência do DMA na execução de instruções pela CPU: paralelismo completo;

Desvantagem

Programa solicita o DMA

Cliclo da CPU

necessita do barramento

?

DMA assume o barramento e tranfere

dados sem interromper a CPU

Transferência DMA é interrompida

não DMA precisa conhecer os ciclos de máquina que não utilizarão o barramento de dados;

MEMÓRIA

INSTRUÇÕES

DADOS

COMPUTADOR

UC

BANCO DE REGISTRADORES

UAL

CPU

INTER. ENTRADA/SAÍDA

Comunicação Interface E/S -

CPU

Interface E/S

Comunicação Interface E/S - Dispositivos

ENTRADA E SAÍDA

MEMÓRIA

INSTRUÇÕES

DADOS

COMPUTADOR

UC

BANCO DE REGISTRADORES

UAL

CPU

INTER. ENTRADA/SAÍDA

Comunicação Interface E/S - Dispositivos

COMUNICAÇÃO INTERFACE - DISPOSITIVO

BANCO DE REGISTRADORES

INTERFACE

PERIFÉRICOS

COMUNICAÇÃO INTERFACE - DISPOSITIVO

Mapeada em memória

Isolada

RS

RD

RC

Como acontece a comunicação entre a

interface e o dispositivo?

SERIAL

PARALELA

CPU

...

COMUNICAÇÃO INTERFACE - DISPOSITIVO

Mapeada em memória

Isolada

SERIAL

PARALELA

INTERFACE

PERIFÉRICOS

COMUNICAÇÃO PARALELA

• Comunicação entre interface e periférico se dá através de n linhas (em paralelo) de dados;

• A quantidade de linhas está relacionada ao tamanho da palavra do processador;

• Linhas de controle garantem o envio e recebimento correto dos dados a partir de protocolos de controle. Um dos protocolos mais comuns é conhecido como handshaking;

COMUNICAÇÃO INTERFACE - DISPOSITIVO

Mapeada em memória

Isolada

SERIAL

PARALELA

INTERFACE

COMUNICAÇÃO PARALELA

HANDSHAKING

• Vamos supor uma comunicação paralela de 5 bits de dados e duas linhas de controle:

PERIFÉRICO

• O periférico deseja enviar dado para a interface (entrada de dados)

(1) Interface informa ao periférico que está pronto para receber dados

1. Estou pronta!

2. Tenho dados para você!

(2) Periférico informa que tem dados para enviar

1 0 0 1 1

(3) Dado é enviado (4) Interface informa que recebeu o dado

5. Eu vi que você recebeu o dado!

(5) Periférico informa que de fato recebeu ACK e diz estar pronta para enviar mais dados

4. Recebido!

(1) (4) (1)

(2) (5)

COMUNICAÇÃO INTERFACE - DISPOSITIVO

Mapeada em memória

Isolada

SERIAL

PARALELA

INTERFACE

COMUNICAÇÃO PARALELA

HANDSHAKING

• Vamos supor uma comunicação paralela de 5 bits de dados e duas linhas de controle:

PERIFÉRICO

• O periférico deseja enviar dado para a interface

Qual o problema deste tipo de

comunicação?

Distância grande entre periférico e interface:

capacitâncias parasitas interferem no sinal

Alternativa?

COMUNICAÇÃO SERIAL!

COMUNICAÇÃO INTERFACE - DISPOSITIVO

Mapeada em memória

Isolada

SERIAL

PARALELA

INTERFACE

COMUNICAÇÃO SERIAL

PERIFÉRICO

• É apropriada para periféricos que estão distantes da interface;

• A comunicação requer um número menor de linhas de comunicação;

Controle

Dados

Elétrica

• A interface serial deve prover duas funções: - Compatibilização elétrica;

- Formatação lógica dos dados: conversão serial/paralelo e paralelo/serial;

COMUNICAÇÃO INTERFACE - DISPOSITIVO

Mapeada em memória

Isolada

SERIAL

PARALELA

INTERFACE

COMUNICAÇÃO SERIAL

PERIFÉRICO

Controle

Dados

Elétrica

CONVERSÃO SERIAL/PARALELO – PARALELO/SERIAL

1 0 1 1

1 0

1 0 1 1 1 0

• Exemplo: conversão paralelo/serial na saída de dados

• CARACTERÍSTICAS: - Formatação deve estar de acordo com o dispositivo, ou seja, sua taxa de transmissão; - A taxa de transmissão diz respeito a quantos bits/caracteres por segundo dispositivo consegue enviar ou receber; - “Bit Rate” indica quantos bits/seg é possível transmitir; - “Baud Rate” indica quantos caracteres/seg é possível transmitir (lembrar de representação não-numérica)

COMUNICAÇÃO INTERFACE - DISPOSITIVO

Mapeada em memória

Isolada

SERIAL

PARALELA

INTERFACE

COMUNICAÇÃO SERIAL

PERIFÉRICO

Controle

Dados

Elétrica

FLUXO DE INFORMAÇÃO

• Há 3 configurações para o fluxo de informações entre interface e dispositivo:

• Simplex: há apenas um único sentido de transmissão;

• Half Duplex: ambos os sentido de transmissão, um de cada vez;

• Full Duplex: ambos os sentidos de transmissão, simultaneamente;

Exemplos?

COMUNICAÇÃO INTERFACE - DISPOSITIVO COMUNICAÇÃO SERIAL

• Agora que sabemos o conceito de comunicação serial, precisamos compreender quais estratégias a interface usa para enviar os bits para o periférico e vice-versa.

• Existem basicamente duas estratégias:

Transmissão Serial

Assíncrona

- Nesta estratégia, os caracteres (conjunto de bits) são enviados um a um, na medida que haja caracteres a serem transmitidos;

- Desta forma, a linha está ora ociosa e ora ocupada;

- Por este motivo, para o receptor necessita de algumas informações para saber que um caractere está sendo transmitido. A estas informações, denominamos Star bit e Stop bit.

Linha ociosa

COMUNICAÇÃO INTERFACE - DISPOSITIVO COMUNICAÇÃO SERIAL

ASSÍNCRONA

• Vamos supor que queremos enviar o caractere “A” para a interface;

• Em ASCII, o caractere “A” equivale ao valor binário:

1 0 0 0 0 0 1

• A interface interpreta “linha ociosa” o sinal 1;

Linha ociosa

• Para reconhecer que o caractere está sendo enviado, devemos “envelopá-lo” com Star Bit, Stop Bit e um Bit de Paridade (correção de erro);

• O Star Bit é o primeiro bit que o receptor recebe após linha ociosa. Equivale a mudar o estado de 1 para 0;

0

• Recebido os bits do caractere, o receptor recebe o Bit de Paridade, o qual indica se a quantidade de valores “1” do caracter é par ou ímpar (geralmente 0 é par e 1 é ímpar). Sua função é detectar erros na transmissão;

0

• Por fim, dois bits indicam o fim da transmissão: Stop Bits, expressos por “1”;

1 1

• Terminada a transmissão, a linha pode voltar a ficar ociosa ou já iniciar o envio de outro caractere;

Início de novo caractere

COMUNICAÇÃO INTERFACE - DISPOSITIVO COMUNICAÇÃO SERIAL

1 0 0 0 0 0 1 0 0 1 1

• Em resumo, o caractere é “envelopado” entre Start Bit e Paridade e Stop Bits e enviado para o receptor!

ASSÍNCRONA

COMUNICAÇÃO INTERFACE - DISPOSITIVO COMUNICAÇÃO SERIAL

• Agora que sabemos o conceito de comunicação serial, precisamos compreender quais estratégias a interface usa para enviar os bits para o periférico e vice-versa.

• Existem basicamente duas estratégias:

Transmissão Serial

Assíncrona

- Nesta estratégia, os caracteres (conjunto de bits) são enviados um a um, na medida que haja caracteres a serem transmitidos;

- Desta forma, a linha está ora ociosa e ora ocupada;

- Por este motivo, para o receptor necessita de algumas informações para saber que um caractere está sendo transmitido. A estas informações, denominamos Star bit e Stop bit.

Síncrona

- Nesta estratégia, os caracteres são transmitidos ininterruptamente, eliminando a necessidade dos bits Start Bit e Stop Bit;

- Os dados transmitidos constituem uma sequência contínua de bits sem indicação de fronteiras entre caracteres adjacentes;

COMUNICAÇÃO INTERFACE - DISPOSITIVO COMUNICAÇÃO SERIAL

C C C C C C C C C C C C ... C C C C C C C C

• Neste tipo de transmissão, uma grande quantidade de caracteres são enviados ininterruptamente;

• Os relógios do transmissor e receptor devem operar exatamente na mesma frequência e devem ser muito estáveis para manter o sincronismo por um longo período de tempo;

• O sincronismo é garantido através do chamado caractere de sincronismo (CS): a cada n caracteres de informação, o transmissor gera um caractere de sincronismo e o receptor deve detectar este caractere;

CS CS C C C C ...

• Início da Transmissão: receptor opera em “modo de busca” procurando, bit a bit, um caractere de sincronismo. Encontrado, o receptor passa a tratar os próximos caracteres como caracteres de informação.

SÍNCRONA

COMUNICAÇÃO INTERFACE - DISPOSITIVO COMUNICAÇÃO SERIAL

TRANSMISSÃO SERIAL

Síncrona Assíncrona

Informação é “envelopada” e

enviada

Vantagem

Informação é enviada

ininterruptamente

Não necessita sincronização

de relógios

Maior velocidade na transmissão

Se há um erro na sincronização, todo

bloco é perdido

Baixa taxa de aproveitamento da informação

Desvantagem

Vantagem

Desvantagem

ENTRADA E SAÍDA

MEMÓRIA

COMPUTADOR

CPU

INTER. ENTRADA/SAÍDA ...

Barramento de dados

DMA

Linha de controle

Entrada/Saída

Entrada/Saída é mapeada em memória

• Não há barramentos dedicados para E/S e nem instruções especiais.

• Registradores internos de periféricos (controladores de disco, redes e interfaces) são posições de memória endereçáveis e podem ser lidas e escritas por instruções load/store

• Alguns sistemas podem incluir hardware externo de DMA para suportar altas taxas de transferência

• Periféricos podem usar dois tipos de interrupção – Interrupção normal (IRQ) ou – Entrada rápida de interrupção(FIQ)

Entrada/Saída é mapeada em memória

Instruções de Software

Reproduzindo operações de Entrada/Saída no simulador #ARMSim

Entrada/ Saída

• Envio ou recebimento de dados do periférico é feito através do registrador R0

• Através de instruções SWI

• Dois tipos: - Operações básicas: leitura e escrita no terminal do simulador e arquivos externos - Uso de Plug-ins: LCD, teclado, Leds, Displays...

Operações básica de Entrada/Saída

• Escrevendo um caractere no terminal: - Instrução: SWI 0x00 - Como? R0 deve receber o caractere - Exemplo: MOV R0, #’A SWI 0x00

• Escrevendo uma string:

- Instrução: SWI 0x02 - Como? R0 deve receber o endereço da string - Exemplo: MinhaString: .asciz “Olá Mundo” LDR R0,=MinhaString SWI 0x02

Pseudo-Instrução que define uma string

Operações de Entrada/Saída em Plug-Ins

• Controlados também pelas instruções SWI

• Formato e controle definidos pelo programador dos periféricos

LEDs

• Instrução: SWI 0x201

• Como?

0 ... 0 LE LD R0

1: acende 0: apaga

• Exemplo: MOV R0, #1 SWI 0x201

PushButtons

• Instrução: SWI 0x202

R0 recebe a situação do PB

0 ... 0 PBE PBD R0

1: PB acionado 0: PB não acionado

• Exemplo: TestaPB: SWI 0x202 ; CMP R0 , #0x01 BEQ PBdaDireitaAcionado BAL TestaPB

• Como? Verifica se um dos PB foi acionado

Teclado

• Instrução: SWI 0x203

Seta o bit de R0 equivalente ao número do teclado

0 T15 ... T1 T0 R0

1: caso TX tenha sido apertado 0: TX não acionado

• Exemplo: TestaTX: SWI 0x203 CMP R0 , #0x01 BEQ Botao0 BAL TestaTX

• Como? Verifica se um dos botões do teclado foi acionado

Display

• Instrução: SWI 0x200

• Exemplo: palavra: .word 0x80|0x40|0x20 LDR R1,=palavra LDR R0,[R1] SWI 0x200

• Como? Aciona o(s) seguimento(s) do display inserindo o valor em R0 conforme a tabela.

LCD

• R2: “Registrador de dados” • R1: Posição da linha • R0: Posição da coluna

Instrução Função

SWI 0x204 Escreve uma string no LCD

SWI 0x205 Escreve um inteiro no LCD

SWI 0x206 Limpa o LCD

SWI 0x207 Escreve um caractere no LCD

SWI 0x208 Limpa a linha contida em R0

• Exemplo: MOV R0,#1 MOV R1,#3 MOV R2,#'A SWI 0x207

CONCLUSÕES • Os processos de entrada e saída de um processador se referem à comunicação da

CPU com os dispositivos externos (mouse, monitor, pendrive, etc)

• Para estabelecer essa comunicação, é necessária uma interface de entrada e saída

• A interface de entrada e saída possui 3 registradores: Registrador de Estado, de Dados e de Controle. Todos devem ser adequadamente lidos/programados para estabelecer a comunicação.

• A comunicação entre a interface e o periférico pode ser de dois tipos: serial ou paralela

• A transferência de dados pode acontecer através de programa ou interrupção

• Uma caso especial de comunicação é com o Dísco Rígido, o qual contém a sua própria interface, o DMA

• Por fim, três estratégias o DMA pode utilizar para transferir dados do HD para a CPU: rajada, roubo de ciclo e DMA transparente

• A comunicação entre a interface e o CPU pode ser baseada em portas , mapeada em memória ou isolada

• A comunicação serial, mais comumente utilizada, pode ser assíncrona (“envelopamento” com Start e Stop bits) ou síncrona (Caractere Especial)