Post on 09-Nov-2018
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 é 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)
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)