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

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Operacionais
Software Básico Entrada/Saída Capítulo 2 Mitsuo Takaki
Capitulo 6: Entrada e Saída
Modos de Transferência Acesso Direto à Memória (DMA)
A Interface entre Processadores e Periféricos
Arquitetura e organização de computadores
Arquitetura e organização de computadores.
Barramentos Introdução.
Entrada e Saída Introdução.
Técnicas para operações E/S
4. Input / Output.
ARQUITETURA DE COMPUTADORES II
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Sistemas Operacionais
Problemas com Entrada e Saída
Comunicação local Assíncrona
Maria Aparecida Castro Livi
Rganização de Computadores A Interface entre o Processador e os Periféricos Capítulo 8 – Patterson & Hennessy (seções 8.4 e 8.5) Organização de Computadores.
Sistemas Operacionais
Professor: Erivelto Tschoeke – UDESC/CEPLAN
Professor: Carlos Roberto da Silva Filho, M. Eng.
Sistemas Digitais Microprocessados
Threads.
Processadores – Aula 3 Professor: André Luis Meneses Silva
Arquitetura de Computadores
Sistemas Operacionais I
Fundamentos da Arquitetura de Computadores
Sistemas Operacionais
Sistemas Operacionais
Fundamentos da arquitetura de computadores
Sistemas Operacionais I
Organização de um computador
Conteúdo Processos e threads Partes do processo
Entrada e Saída (E/S ou I/O)
Arquitetura de Computadores
Unidade Central De Processamento: Processador
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Sistemas Operacionais
Unidade Central De Processamento: Processador
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Componentes básicos de um computador
Sistemas Operacionais
Organização e Arquitetura de Computadores
Entrada e Saída (E/S).
Organização e Arquitetura de Computadores 2ºSemestre Aula 11 – Parte 2 Prof. Carlos Vinícius SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL.
Subsistema de Entrada e Saída do Kernel
Processador 2014/2015 Comunicação de Dados Ricardo Bento 12ºL.
Introdução à Computação Componentes Básicos dos Computadores
Estrutura de Interconexão
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Arquitetura de Microcomputadores
Arquitetura de computadores
Arquitetura de ComputadoresProf a Luiza Mourelle Entrada e Saída O processo de fornecer informações ou obtê-las dos computadores é chamado entrada/saída.
Arquitetura de computadores
Sistemas Operacionais IV – Gerenciamento de E/S
Diagrama em blocos: Hardware de Computadores
Arquitetura de Sistemas Operacionais
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Modos de Transferência Acesso Direto à Memória (DMA) ARQUITETURA DE COMPUTADORES II Prof. César Augusto M. Marcon.
EA869 Interrupção Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato 1.
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
EA869 Subrotinas Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato 1.
EA869 Modos de Endereçamento Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato 1.
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI
Transcrição da apresentação:

EA869 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: 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.

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?

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

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

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

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)

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

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

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

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 m Espaço de memória Espaço de E/S Comunicação Interface-CPU

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

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

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

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

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

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

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 – 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

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 DADO RD RS Interface de E/S

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 – 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 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

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

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

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

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 – 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

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

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

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

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

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

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

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

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

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 CPU INTERFACE PERIFÉRICOS Comunicação Interface-Dispositivo

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

... 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

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 (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

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

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

Mapeada em memória Isolada SERIAL PARALEL A INTERFACE COMUNICAÇÃO SERIAL PERIFÉRICO Controle Dados Elétrica CONVERSÃO SERIAL/PARALELO – PARALELO/SERIAL 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 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

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

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: 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

COMUNICAÇÃO SERIAL 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

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

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

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

Arquitetura ARM Entrada e Saída

Entrada/Saída Entrada/Saída é mapeada em memória Não há barramentos dedicados para E/S e nem instruções especiais. Registradores internos de periféricos (controladores de disco, redes e interfaces) são posições de memória endereçáveis e podem ser lidas e escritas por instruções load/store. Alguns sistemas podem incluir hardware externo de DMA para suportar altas taxas de transferência. Periféricos podem usar dois tipos de interrupção: – Interrupção normal (IRQ) ou – Entrada rápida de interrupção (FIQ)

Entrada/Saída 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 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,...

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

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 0x201 Como? 0...0LELD R0 1: acende 0: apaga Exemplo: MOV R0, #1 SWI 0x201 Entrada/Saída ARMSim

Push Buttons Instrução: SWI 0x202 R0 recebe a situação do PB PBEPBD 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

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

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

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

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