A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

EA869 Entrada e Saída Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato.

Apresentações semelhantes


Apresentação em tema: "EA869 Entrada e Saída Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato."— Transcrição da apresentação:

1 EA869 Entrada e Saída Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato

2 Objetivos Conhecer como o computador se comunica com dispositivos externos. Definir os elementos de uma interface de entrada e saída. Conhecer os mecanismos de comunicação paralela e serial.

3 Introdução ● 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, ULA, UC e barramentos.  Unindo estes elementos, projetamos duas arquiteturas de processador: EA869 e EA869M.  A primeira arquitetura caracterizava-se pelo controle das instruções via hardware (RISC). A segunda, via microprogramação (CISC).  Vimos, em seguida, uma forma mais eficiente (1) de executar instruções, através da ideia de pipeline, e (2) de construir programas modulares, via 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.

4 MEMÓRIA INSTRUÇÕES DADOS COMPUTADOR UC BANCO DE REGISTRADORES UAL CPU Interf. 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?

5 MEMÓRIA INSTRUÇÕES DADOS COMPUTADOR UC BANCO DE REGISTRADORES UAL CPU INTER. ENTRADA/SAÍDA 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 do processador. ENTRADA refere-se à chegada de dados na CPU, ou seja, o dado sai da interface/dispositivo e vai para a CPU (registradores, memória, etc). Exemplos: Mouse, teclado, pendrive, etc SAÍDA refere-se à saída de dados da CPU, ou seja, o dado é gerado na CPU e vai para a Interface/dispositivo. Exemplos: Monitor, impressora, pendrive, etc

6 MEMÓRIA INSTRUÇÕES DADOS COMPUTADOR UC BANCO DE REGISTRADORES UAL CPU Interf. 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 Interface E/S Comunicação Interface E/S - Dispositivos Entrada e Saída

7 MEMÓRIA COMPUTADOR CPU INTER. ENTRADA/SAÍDA Como a interface se conecta à CPU? E/S BASEADA EM PORTAS Através das portas do processador... PORTA A PORTA B PORTA C n bits j bits k bits Comunicação Interface-CPU

8 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 a 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)

9 MEMÓRIA COMPUTADOR CPU INTER. ENTRADA/SAÍDA... E/S BASEADA EM 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 da 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. Comunicação Interface-CPU

10 MEMÓRIA COMPUTADOR CPU INTER. ENTRADA/SAÍDA... 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 aos registradores seja ISOLADO do seu acesso à interface. Consequência? São necessárias instruções específicas para entrada e saída de dados e para acesso à memória 1.. n 1.. n Espaço de memória Espaço de E/S E/S BASEADA EM BARRAMENTO Comunicação Interface-CPU

11 ISOLADA CARACTERÍSTICAS - Barramentos de acesso à interface são logicamente distintos dos barramentos da CPU; - Faixa de endereçamento comum entre a CPU/memória e a Interface de entrada/saída; - Necessita de instruções específicas para manipular os dados dos periféricos; A CPU acessa os dados sempre a partir do Registrador Acumulador; 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 MEMÓRIA COMPUTADOR CPU INTER. ENTRADA/SAÍDA... MAPEADA EM MEMÓRIA Comunicação Interface-CPU

12 MEMÓRIA COMPUTADOR CPU INTER. ENTRADA/SAÍDA... E/S BASEADA EM 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 à interface de E/S é feito da mesma forma que um acesso à memória. Deve-se ter cuidado para reservar alguns 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 Comunicação Interface-CPU

13 E/S BASEADA EM 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; Vantagens - 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 MEMÓRIA INSTRUÇÕES DADOS COMPUTADOR UC BANCO DE REGISTRADORES UAL CPU Interf. Entrada/Saída Comunicação Interface E/S - CPU Interface E/S Comunicação Interface E/S - Dispositivos Comunicação Interface-CPU

14 MEMÓRIA INSTRUÇÕES DADOS COMPUTADOR UC BANCO DE REGISTRADORES UAL CPU Interf. Entrada/Saída Entrada e Saída Comunicação Interface E/S - CPU Interface E/S Comunicação Interface E/S - Dispositivos CPU INTERFACE PERIFÉRICOS

15 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

16 PERIFÉRICOS CPU INTERFACE RD REGISTRADOR DE DADOS Armazenador temporário de dados; Participa de duas operações: - Saída: é carregado pela CPU e o dado fica disponível para o dispositivo ler; - Entrada: é carregado pelo dispositivo e o dado fica disponível para CPU ler. Interface de E/S

17 PERIFÉRICOS CPU INTERFACE REGISTRADOR DE ESTADO RS Informa o estado da transferência de 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 bits 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) Interface de E/S

18 PERIFÉRICOS 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 – enviando dados para RC – é a própria CPU. Interface de E/S

19 PERIFÉRICOS 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

20 Vamos supor que queremos escrever um programa que busque dados de um pendrive... 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) RS RD RC CPU Vamos escrever um programa em Assembly que leia os dados do pendrive. Registrador de Estado RS S E Interface de E/S

21 Vamos supor que queremos escrever um programa que busque dados de um pendrive... 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) RD RC CPU Vamos escrever um programa em Assembly que leia os dados do pendrive. Registrador de Dados S E...RD 3 2 1 0 DADO RD RS Interface de E/S

22 Vamos supor que queremos escrever um programa que busque dados de um pendrive... 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 pendrive. 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

23 Vamos supor que queremos escrever um programa que busque dados de um pendrive... 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 pendrive. S E RD RS RC e/s I s/p Configurar RC Testa RS CPU recebe dado RD carregado Interface de E/S

24 Vamos supor que queremos escrever um programa que busque dados de um pendrive... 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 pendrive. 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

25 Vamos supor que queremos escrever um programa que busque dados de um pendrive... 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 pendrive. 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 Interface de E/S

26 MEMÓRIA INSTRUÇÕES DADOS COMPUTADOR UC BANCO DE REGISTRADORES UAL CPU Interf. Entrada/Saída Entrada e Saída

27 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) RS 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

28 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 Interface de E/S

29 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

30 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

31 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

32 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 Interface de E/S

33 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 em 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 operação de entrada ou saída não for concluída. Quais são os métodos alternativos? CONTROLE DE TRANSFERÊNCIA DE DADOS Interface de E/S

34 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 Caracteriza-se pela transferência programada, ou seja, executada pela CPU por instruções definidas pelo controlador (ou pelo programador). 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 independentemente 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 Exemplo? Qual outra alternativa para o controle de transferência de dados? sim

35 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 em relação ao programa. Exemplos? Controle de Transferência de Dados

36 Tanto a transferência de dados efetuada por programa quanto a por interrupção são controladas pelo processador (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

37 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 repetidamente para a memória RAM sem que a execução do programa seja interrompida. Uma forma de tornar este processo eficiente é designar o controle da transferência de dados entre dispositivo e memória para 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á o restante da transferência e a CPU ficará livre para continuar a execução do programa. Controle de Transferência de Dados

38 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 a 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 informando ao DMA para executar a transferência Controle de Transferência de Dados

39 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, fazendo com que a CPU pare e execute uma rotina de serviço que irá iniciar a transferência do(s) bloco(s) de dados seguintes. Controle de Transferência de Dados

40 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

41 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

42 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. Controle de Transferência de Dados

43 sim 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 Ciclo da CPU necessita do barramento? DMA assume o barramento e transfere 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; Controle de Transferência de Dados

44 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

45 MEMÓRIA INSTRUÇÕES DADOS COMPUTADOR UC BANCO DE REGISTRADORES UAL CPU INTER. ENTRADA/SAÍDA Comunicação Interface E/S - Dispositivos CPU INTERFACE PERIFÉRICOS Comunicação Interface-Dispositivo

46 BANCO DE REGISTRADORES INTERFACE PERIFÉRICOS Mapeada em memória Isolada RS RD RC Como acontece a comunicação entre a interface e o dispositivo? SERIAL PARALEL A CPU INTERFACE PERIFÉRICOS Comunicação Interface-Dispositivo

47 ... Mapeada em memória Isolada SERIAL PARALEL A 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

48 Mapeada em memória Isolada SERIAL PARALEL A 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 (1) Interface informa ao periférico que está pronto para receber dados Estou pronta! Tenho dados para você! (2) Periférico informa que tem dados para enviar 1001110011 (3) Dado é enviado (4) Periférico informa que interface recebeu o dado Eu vi que você recebeu o dado! (5) Interface informa que de fato recebeu e diz estar pronta para receber mais dados Recebido! Manda mais! Comunicação Interface-Dispositivo

49 Mapeada em memória Isolada SERIAL PARALEL A 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

50 Mapeada em memória Isolada SERIAL PARALEL A 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

51 Mapeada em memória Isolada SERIAL PARALEL A 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 11 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

52 Mapeada em memória Isolada SERIAL PARALEL A 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; Comunicação Interface-Dispositivo

53 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, o receptor necessita de algumas informações para saber que um caractere está sendo transmitido. A estas informações denominamos Start bit e Stop bit. Comunicação Interface-Dispositivo

54 Linha ociosa 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 1 A interface interpreta “linha ociosa” com 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 caractere é 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

55 COMUNICAÇÃO SERIAL 1 0 0 0 0 0 1 0 01 1 Em resumo, o caractere é “envelopado” entre Start Bit e Paridade e Stop Bits e enviado para o receptor! A ASSÍNCRONA Comunicação Interface-Dispositivo

56 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; 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

57 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 é enviada 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 especial; CS C C C C... Início da Transmissão: receptor opera em “modo de busca” procurando, bit a bit, um caractere de sincronismo. Uma vez encontrado o CS, o receptor passa a tratar os próximos caracteres como caracteres de informação. SÍNCRONA Comunicação Interface-Dispositivo

58 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 Comunicação Interface-Dispositivo

59 Arquitetura ARM Entrada e Saída

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

61 Entrada/Saída Entrada/Saída é mapeada em memória

62 Entrada/Saída ARMSim 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 de registradores específicos. Através de instruções especiais: SWI Dois tipos: - Operações básicas: leitura e escrita no terminal do simulador e arquivos externos. - Uso de plugins: LCD, teclado, leds,...

63 Operações básica de Entrada/Saída Escrevendo um caractere no terminal: - Instrução: SWI 0x00 - Como? R0 deve conter 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 terminada com uma word nula. Entrada/Saída ARMSim

64 Operações de Entrada/Saída em plugins Controlados também pelas instruções SWI. Formato e controle definidos pelo programador dos periféricos. Entrada/Saída ARMSim

65 LEDs Instrução: SWI 0x201 Como? 0...0LELD R0 1: acende 0: apaga Exemplo: MOV R0, #1 SWI 0x201 Entrada/Saída ARMSim

66 Push Buttons Instrução: SWI 0x202 R0 recebe a situação do PB. 0...0PBEPBD 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. Entrada/Saída ARMSim

67 Teclado Instrução: SWI 0x203 0T15...T1T0 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.  Seta o bit de R0 equivalente ao número do tecla pressionada. Entrada/Saída ARMSim

68 Display de 7 segmentos Instrução: SWI 0x200 Exemplo: palavra:.word 0x80|0x40|0x20 LDR R1,=palavra LDR R0,[R1] SWI 0x200 Como? Aciona o(s) segmento(s) do display inserindo o valor em R0 conforme a tabela. Entrada/Saída ARMSim

69 LCD R2: “Registrador de dados” R1: Posição da linha R0: Posição da coluna InstruçãoFunção SWI 0x204Escreve uma string no LCD SWI 0x205Escreve um inteiro no LCD SWI 0x206Limpa o LCD SWI 0x207Escreve um caractere no LCD SWI 0x208Limpa a linha contida em R0 Exemplo: MOV R0,#1 MOV R1,#3 MOV R2,#'A SWI 0x207 Entrada/Saída ARMSim

70 Créditos  Este material está baseado nas notas de aula elaboradas pelo Prof. Léo Pini e pelo aluno de doutorado Tiago Novaes.


Carregar ppt "EA869 Entrada e Saída Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato."

Apresentações semelhantes


Anúncios Google