EA 869 Entrada e Sada Faculdade de Engenharia




































































- Slides: 68
EA 869 Entrada e Saída Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato
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.
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: EA 869 e EA 869 M. Ø 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.
• 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? COMPUTADOR CPU UC MEMÓRIA BANCO DE REGISTRADORES UAL Interf. Entrada/Saída INSTRUÇÕES DADOS
Entrada e Saída COMPUTADOR CPU Ao falarmos de entrada e saída, estamos sempre nos referindo ao UC fluxo de informações do ponto de vista do processador. MEMÓRIA • ENTRADA refere-se à chegada de dados na CPU, ou seja, o dado sai INSTRUÇÕES da interface/dispositivo e vai. BANCO para a. DECPU (registradores, memória, REGISTRADORES etc). DADOS OBSERVAÇÃO! UAL Mouse, teclado, Exemplos: 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 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: COMPUTADOR Comunicação Interface E/S Dispositivos Comunicação Interface E/S CPU UC MEMÓRIA BANCO REGISTRADORES DE UAL Interf. Entrada/Saída INSTRUÇÕES DADOS Interface E/S
Comunicação Interface-CPU E/S BASEADA EM BARRAMENTO COMPUTADOR CPU MEMÓRIA 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. . INTER. ENTRADA/SAÍDA 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 E/S BASEADA EM BARRAMENTO ISOLADA COMPUTADOR CPU MEMÓRIA . . . INTER. ENTRADA/SAÍDA 1. . n Espaço de memória 1. . n Espaço de E/S 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
Comunicação Interface-CPU MAPEADA ISOLADA EM MEMÓRIA COMPUTADOR • CARACTERÍSTICAS - CPU Barramentos de acesso à interface são logicamente distintos dos barramentos da MEMÓRIA 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 periféricos; A CPU acessa os dados sempre a partir do Registrador Acumulador; • EXEMPLOS 1. Transferência de dados entre CPU e Interface E/S 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 INTER. ENTRADA/SAÍDA 2. Transferência de periféricos entre CPU e a Memória LOAD m Carrega conteúdo da Memória no registrador Acc STORE m Escreve na memória o conteúdo do registrador Acc
Comunicação Interface-CPU E/S BASEADA EM BARRAMENTO MAPEADA EM MEMÓRIA COMPUTADOR CPU MEMÓRIA . . . INTER. ENTRADA/SAÍDA 1. . n Espaço de memória n+1. . m Espaço de E/S 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 periféricos.
Comunicação Interface-CPU E/S BASEADA EM BARRAMENTO COMPUTADOR • MAPEADA EM MEMÓRIA Comunicação Interface E/S - Interface envia e. UC recebe dados compartilhando os mesmos barramentos da CPU; CPU CARACTERÍSTICAS - Desta forma, não há necessidade de instruções especiais. Portas, MEMÓRIA registradores e memória são acessíveis com as instruções correntes do processador; INSTRUÇÕES - Deve-se atentar-se ao fato de reservar. BANCO uma faixa para os DE de endereços da memória REGISTRADORES dados de Entrada/Saída; UAL Vantagens - Não necessita de instruções especiais; DADOS Desvantagens - Compartilha memória com a CPU; - Acesso à memória pode ser mais lento, já que Interface não possui E/S Interf. Entrada/Saída - Pode, caso necessário, acessar barramentos específicos; qualquer endereço de memória; Comunicação Interface E/S Dispositivos - Interface de E/S precisa ser capaz de reconhecer endereços maiores (+ hardware).
Entrada e Saída COMPUTADOR CPU Comunicação Interface E/S Dispositivos INTERFACE Comunicação Interface E/S CPU UC MEMÓRIA PERIFÉRICOS BANCO DE REGISTRADORES UAL Interf. Entrada/Saída INSTRUÇÕES DADOS Interface E/S
Interface de E/S INTERFACE CPU RS Mapeada em memória RD Qual a função da Interface E/S? Coordenar a transferência de dados entre o processador e um dispositivo externo PERIFÉRICOS Isolada RC - Armazenar dados para transferência CPU-Periférico e Periférico-CPU. O que ela deve fazer? REGISTRADOR DE DADOS (RD) Armazena dados para transferência - Conhecer o estado do periférico para informar a CPU sobre o momento adequado para transferência de dados. REGISTRADOR DE ESTADO (RS) Armazena o estado do dispositivo Como? - Converter os dados em formato apropriado para transmissão entre o barramento de dados e os dispositivos periféricos (configuração). Configura a interface para Registradores de Interface! REGISTRADOR DE CONTROLE (RC) diferentes dispositivos
Interface de E/S INTERFACE CPU RD PERIFÉRICOS 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 CPU INTERFACE RS PERIFÉRICOS REGISTRADOR DE ESTADO • 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 CPU INTERFACE PERIFÉRICOS RC 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; 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 INTERFACE CPU RS RD PERIFÉRICOS RC FLUXO DE INFORMAÇÕES ENTRE INTERFACE E CPU • 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 queremos escrever um programa que busque dados de um pendrive. . . (ENTRADA DE DADOS) CPU RS RS S E • A interface é composta de 3 registradores: RS, RC e RD; • A interface permite receber dados dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída. RD RC Vamos escrever um programa em Assembly que leia os dados do pendrive. 1. Definir os registradores da interface Registrador de Estado 3 2 RS 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
Interface de E/S • Vamos supor queremos escrever um programa que busque dados de um pendrive. . . (ENTRADA DE DADOS) CPU RS RD S E • A interface é composta de 3 registradores: RS, RC e RD; • A interface permite receber dados dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída. RD RC Vamos escrever um programa em Assembly que leia os dados do pendrive. 1. Definir os registradores da interface Registrador de Dados 3 2 RD . . . DADO 1 0
Interface de E/S • Vamos supor queremos escrever um programa que busque dados de um pendrive. . . (ENTRADA DE DADOS) CPU RS S E • A interface é composta de 3 registradores: RS, RC e RD; • A interface permite receber dados dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída. RD RC RCI s/p e/s Vamos escrever um programa em Assembly que leia os dados do pendrive. 1. Definir os registradores da interface Registrador de Controle 3 2 1 0 RC . . . 1 – serial 0 – paralela 1 – Permite interrupção 0 – Não permite interrupção 1 – Entrada 0 – Saída
Interface de E/S • Vamos supor queremos escrever um programa que busque dados de um pendrive. . . (ENTRADA DE DADOS) CPU RS S E • A interface é composta de 3 registradores: RS, RC e RD; • A interface permite receber dados dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída. RD RC e/s I s/p Vamos escrever um programa em Assembly que leia os dados do pendrive. 2. Definir o fluxo de informação Configurar RC Testa RS RD carregado CPU recebe dado
Interface de E/S • Vamos supor queremos escrever um programa que busque dados de um pendrive. . . (ENTRADA DE DADOS) CPU RS S E • A interface é composta de 3 registradores: RS, RC e RD; • A interface permite receber dados dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída. RD RC e/s I s/p Vamos escrever um programa em Assembly que leia os dados do pendrive. 3 a. Escrever o programa considerando um arquitetura de E/S mapeada em memória MOVE #101 , RC Carrega 101 em RC // configura RC Configurar RC LOOP: MOVE RS , R 1 Testa RS RD carregado CPU recebe dado R 1 ← (RS) // CPU lê RS TSTBIT 0 , R 1 Testa bit 0 de R 1 JZ LOOP Se bit = 0 volta para LOOP, senão continua MOVE RD , R 2 ← (RD) // entrada dos dados
Interface de E/S • Vamos supor queremos escrever um programa que busque dados de um pendrive. . . (ENTRADA DE DADOS) CPU RS S E • A interface é composta de 3 registradores: RS, RC e RD; • A interface permite receber dados dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída. RD RC e/s I s/p Vamos escrever um programa em Assembly que leia os dados do pendrive. 3 b. Escrever o programa considerando um arquitetura de E/S isolada Configurar RC Testa RS RD carregado CPU recebe dado LDA #101 OUT RC LOOP: IN RS TSTBIT 0 JZ LOOP IN RD Carrega 101 no Acc RC ← (Acc) // Configura RC Acc ← (RS) // CPU lê RS Testa bit 0 do RS Se bit = 0 volta para LOOP, senão continua Acc ← (RD) // entrada dos dados
Entrada e Saída COMPUTADOR CPU UC MEMÓRIA BANCO DE REGISTRADORES UAL Interf. Entrada/Saída INSTRUÇÕES DADOS
Interface de E/S • Vamos supor queremos escrever um programa que envie dados a um monitor (VGA). . . (SAÍDA DE DADOS) CPU RS RS S E • A interface é composta de 3 registradores: RS, RC e RD; • A interface permite receber dados dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída. RD RC Vamos considerar a mesma configuração de interface definida no exemplo anterior. 1. Definir os registradores da interface Registrador de Estado 3 2 RS 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
Interface de E/S • Vamos supor queremos escrever um programa que envie dados a um monitor (VGA). . . (SAÍDA DE DADOS) CPU RS RD S E • A interface é composta de 3 registradores: RS, RC e RD; • A interface permite receber dados dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída. RD RC Vamos considerar a mesma configuração de interface definida no exemplo anterior. 1. Definir os registradores da interface Registrador de Dados 3 2 RD . . . DADO 1 0
Interface de E/S • Vamos supor queremos escrever um programa que envie dados a um monitor (VGA). . . (SAÍDA DE DADOS) CPU RS S E • A interface é composta de 3 registradores: RS, RC e RD; • A interface permite receber dados dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída. RD RC RCI s/p e/s Vamos considerar a mesma configuração de interface definida no exemplo anterior. 1. Definir os registradores da interface Registrador de Controle 3 2 1 0 RC . . . 1 – serial 0 – paralela 1 – Permite interrupção 0 – Não permite interrupção 1 – Entrada 0 – Saída
Interface de E/S • Vamos supor queremos escrever um programa que envie dados a um monitor (VGA). . . (SAÍDA DE DADOS) CPU RS S E • A interface é composta de 3 registradores: RS, RC e RD; • A interface permite receber dados dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída. RD RC e/s I s/p Vamos considerar a mesma configuração de interface definida no exemplo anterior. 2. Definir o fluxo de informação Configurar RC RD ocupado Testa RS RD livre CPU envia dado
Interface de E/S • Vamos supor queremos escrever um programa que envie dados a um monitor (VGA). . . (SAÍDA DE DADOS) CPU RS S E • A interface é composta de 3 registradores: RS, RC e RD; • A interface permite receber dados dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída. RD RC e/s I s/p Vamos considerar a mesma configuração de interface definida no exemplo anterior. 3 a. Escrever o programa considerando um arquitetura de E/S mapeada em memória Carrega 000 em RC // configura RC MOVE #000 , RC Configurar RC para saída paralela sem interrupção LOOP: MOVE RS , R 1 RD ocupado Testa RS RD livre CPU envia dado R 1 ← (RS) // CPU lê RS TSTBIT 1 , R 1 JZ LOOP Testa bit 0 de R 1 MOVE R 2 , RD RD ← (R 2) // Saída de dados Se bit = 0 volta para LOOP, senão continua
Interface de E/S • Vamos supor queremos escrever um programa que envie dados a um monitor (VGA). . . (SAÍDA DE DADOS) CPU RS S E • A interface é composta de 3 registradores: RS, RC e RD; • A interface permite receber dados dispositivos de forma serial ou paralela, permite interrupção, e realiza entrada e saída. RD RC e/s I s/p Vamos considerar a mesma configuração de interface definida no exemplo anterior. 3 b. Escrever o programa considerando um arquitetura de E/S isolada Configurar RC RD ocupado Testa RS RD livre CPU envia dado OP: LDA #000 LO OUT RC IN RS TSTBIT 1 JZ LOOP OUT RD Carrega 000 no Acc RC ← (Acc) // Configura RC Acc ← (RS) // CPU lê RS Testa bit 1 do RS Se bit = 1 volta para LOOP, senão continua RD ← (Acc) // entrada dos dados
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 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
Controle de Transferência de Dados • O controle de transferência de dados 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 Exemplo? Dispositivo pronto? Qual outra alternativa para o controle de transferência de não dados? sim Transferência incondicional Exemplo? Transferência A transferência só é efetuada quando o dispositivo está pronto para a mesma. Há leitura do RS e loop de espera Programa efetua a transferência dos dados independentemente do estado do dispositivo (não ocorre a leitura do RS e loop de espera)
Controle de Transferência de Dados E/S CONTROLADA POR INTERRUPÇÃO Exemplos? Interrupção PROGRAMA ROTINA DE SERVIÇO Transferência • 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.
Controle de Transferência de Dados • Tanto a transferência de dados efetuada por programa quanto a por interrupção são controladas pelo processador (CPU). Este tipo de transferência controlada por CPU é rápida ou lenta? LENTA! • 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. Qual periférico pode ter sua operação comprometida por Solução processos lentos? DISCO RÍGIDO (HD) 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 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 E/S CONTROLADA POR HARDWARE COMPUTADOR CPU DMA transfere blocos de dados do HD diretamente para a memória sem a intervenção da CPU MEMÓRIA A CPU apenas envia um sinal de controle informando ao DMA para executar a transferência Apesar de ter um barramento de endereço próprio, o DMA compartilha com a CPU o barramento de dados Barr. de endereços Linha de controle . . . INTER. ENTRADA/SAÍDA DMA Linhas de controle e dados
Controle de Transferência de Dados E/S CONTROLADA POR HARDWARE OPERAÇÃO DO DMA 1. Quem requisita o DMA? Programa: CPU 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 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 Programa solicita o DMA assume o barramento 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) Transfere uma palavra Desvantagem Devolve o barramento para a CPU 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 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; Programa solicita o DMA Ciclo da CPU necessita do barramento? sim Transferência DMA é interrompida Desvantagem não DMA assume o barramento e transfere dados sem interromper a CPU DMA precisa conhecer os ciclos de máquina que não utilizarão o barramento de dados;
Entrada e Saída COMPUTADOR Comunicação Interface E/S Dispositivos Comunicação Interface E/S CPU UC MEMÓRIA BANCO DE REGISTRADORES UAL INTER. ENTRADA/SAÍDA INSTRUÇÕES DADOS Interface E/S
Comunicação Interface-Dispositivo COMPUTADOR CPU Comunicação Interface E/S Dispositivos INTERFACE UC MEMÓRIA PERIFÉRICOS BANCO DE REGISTRADORES UAL INTER. ENTRADA/SAÍDA INSTRUÇÕES DADOS
Comunicação Interface-Dispositivo CPU INTERFACE RS Mapeada em memória RD SERIAL PERIFÉRICOS Isolada BANCO DE RC REGISTRADORES Como acontece a comunicação entre a interface e o dispositivo? PARALEL A
Comunicação Interface-Dispositivo INTERFACE COMUNICAÇÃO PARALELA Mapeada em memória Isolada SERIAL. . . PERIFÉRICOS PARALEL A • 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 COMUNICAÇÃO PARALELA HANDSHAKING • Vamos supor uma comunicação paralela de 5 bits de dados e duas linhas de controle: • O periférico deseja enviar dado para a interface INTERFACE Mapeada em memória Isolada Estou. Manda pronta!mais! Recebido! Eu vi. Tenho que você recebeu o dado! dados para você! PERIFÉRICO SERIAL 1 0 0 1 PARALEL 1 A (1) Interface informa ao periférico que está pronto para receber dados (2) Periférico informa que tem dados para enviar (3) Dado é enviado (4) Periférico informa que interface recebeu o dado (5) Interface informa que de fato recebeu e diz estar pronta para receber mais dados
Comunicação Interface-Dispositivo COMUNICAÇÃO PARALELA HANDSHAKING • Vamos supor uma comunicação paralela de 5 bits de dados e duas linhas de controle: • O periférico deseja enviar dado para a interface INTERFACE Mapeada em memória Isolada Qual o problema deste tipo de comunicação? PERIFÉRICO SERIAL PARALEL A Distância grande entre periférico e interface: capacitâncias parasitas interferem no sinal Alternativa? COMUNICAÇÃO SERIAL
Comunicação Interface-Dispositivo COMUNICAÇÃO SERIAL • É apropriada para periféricos que estão distantes da interface. • A comunicação requer um número menor de linhas de comunicação. INTERFACE Mapeada em Controle memória PERIFÉRICO SERIAL Dados Isolada Elétrica PARALEL A • 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 COMUNICAÇÃO SERIAL CONVERSÃO SERIAL/PARALELO – PARALELO/SERIAL • Exemplo: conversão paralelo/serial na saída de dados INTERFACE 1 0 1 1 1 0 Mapeada em Controle memória Dados Isolada Elétrica PERIFÉRICO SERIAL 1 0 1 1 10 PARALEL A • 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 COMUNICAÇÃO SERIAL FLUXO DE INFORMAÇÃO • Há 3 configurações para o fluxo de informações entre interface e dispositivo: INTERFACE Mapeada em Controle memória PERIFÉRICO SERIAL Dados Isolada Elétrica PARALEL A • 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 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: Assíncrona - Nesta estratégia, os caracteres (conjunto de bits) são enviados um a um, na medida que haja caracteres a serem transmitidos; Transmissão Serial - 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 COMUNICAÇÃO SERIAL ASSÍNCRONA • Vamos supor queremos enviar o caractere “A” para a interface; • Em ASCII, o caractere “A” equivale ao valor binário: Linha ociosa 0 1 0 11 Linha ociosa Início de novo caractere • A interface interpreta “linha ociosa” com o sinal 1; • 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; • 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; • Por fim, dois bits indicam o fim da transmissão: Stop Bits, expressos por “ 1”; • Terminada a transmissão, a linha pode voltar a ficar ociosa ou já iniciar o envio de outro caractere;
Comunicação Interface-Dispositivo COMUNICAÇÃO SERIAL ASSÍNCRONA • Em resumo, o caractere é “envelopado” entre Start Bit e Paridade e Stop Bits e enviado para o receptor! 0 1 0 0 A 0 0 0 101 1
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: Assíncrona - Nesta estratégia, os caracteres (conjunto de bits) são enviados um a um, na medida que haja caracteres a serem transmitidos; Transmissão Serial - 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 COMUNICAÇÃO SERIAL SÍNCRONA • 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 C C CCS 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.
Comunicação Interface-Dispositivo COMUNICAÇÃO SERIAL TRANSMISSÃO SERIAL Assíncrona Síncrona Informação é “envelopada” e enviada Informação é enviada ininterruptamente Vantagem Não necessita sincronização de relógios Maior velocidade na transmissão Desvantagem Baixa taxa de aproveitamento da informação Se há um erro na sincronização, todo bloco é perdido
Arquitetura ARM Entrada e 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. • Periféricos podem usar dois tipos de interrupção: – Interrupção normal (IRQ) ou – Entrada rápida de interrupção (FIQ) • Alguns sistemas podem incluir hardware externo de DMA para suportar altas taxas de transferência.
Entrada/Saída é mapeada em memória
Entrada/Saída ARMSim Instruções de Software Reproduzindo operações de Entrada/Saída no simulador #ARMSim • Através de instruções especiais: SWI Entrada/ Saída • Envio ou recebimento de dados do periférico é feito através de registradores específicos. • Dois tipos: - Operações básicas: leitura e escrita no terminal do simulador e arquivos externos. - Uso de plugins: LCD, teclado, leds, . . .
Entrada/Saída ARMSim Operações básica de Entrada/Saída • Escrevendo um caractere no terminal: - Instrução: SWI 0 x 00 - Como? R 0 deve conter o caractere. - Exemplo: MOV R 0, #’A SWI 0 x 00 • Escrevendo uma string: - Instrução: SWI 0 x 02 - Como? R 0 deve receber o endereço da string. - Exemplo: Minha. String: . asciz “Olá Mundo” LDR R 0, =Minha. String SWI 0 x 02 Pseudo-Instrução que define uma string terminada com uma word nula.
Entrada/Saída ARMSim 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 LEDs • Instrução: SWI 0 x 201 • Como? R 0 0 . . . • Exemplo: MOV R 0, #1 SWI 0 x 201 0 LE LD 1: acende 0: apaga
Entrada/Saída ARMSim Push Buttons • Instrução: SWI 0 x 202 • Como? Verifica se um dos PB foi acionado. R 0 recebe a situação do PB. R 0 0 . . . 0 PBE • Exemplo: Testa. PB: SWI 0 x 202 ; CMP R 0 , #0 x 01 BEQ PBda. Direita. Acionado BAL Testa. PB PBD 1: PB acionado 0: PB não acionado
Entrada/Saída ARMSim Teclado • Instrução: SWI 0 x 203 • Como? Ø Verifica se um dos botões do teclado foi acionado. Ø Seta o bit de R 0 equivalente ao número do tecla pressionada. R 0 0 T 15 . . . T 1 T 0 • Exemplo: Testa. TX: SWI 0 x 203 CMP R 0 , #0 x 01 BEQ Botao 0 BAL Testa. TX 1: caso TX tenha sido apertado 0: TX não acionado
Entrada/Saída ARMSim Display de 7 segmentos • Instrução: SWI 0 x 200 • Como? Aciona o(s) segmento(s) do display inserindo o valor em R 0 conforme a tabela. • Exemplo: palavra: . word 0 x 80|0 x 40|0 x 20 LDR R 1, =palavra LDR R 0, [R 1] SWI 0 x 200
Entrada/Saída ARMSim LCD • R 2: “Registrador de dados” • R 1: Posição da linha • R 0: Posição da coluna Instrução Função SWI 0 x 204 Escreve uma string no LCD SWI 0 x 205 Escreve um inteiro no LCD SWI 0 x 206 Limpa o LCD SWI 0 x 207 Escreve um caractere no LCD SWI 0 x 208 Limpa a linha contida em R 0 • Exemplo: MOV R 0, #1 MOV R 1, #3 MOV R 2, #'A SWI 0 x 207
Créditos Ø Este material está baseado nas notas de aula elaboradas pelo Prof. Léo Pini e pelo aluno de doutorado Tiago Novaes.




































































