ENTRADA E SAÍDA (I/O)



Documentos relacionados
ENTRADA E SAÍDA (I/O)

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

Arquitetura de Computadores. Tipos de Instruções

Organização e Arquitetura de Computadores

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Dispositivos de Entrada e Saída

Gerência de Entrada/Saída

Sistemas Operacionais

ENTRADA E SAÍDA DE DADOS

Sistemas Operacionais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Componentes básicos de um sistema computacional. Cap. 1 (Stallings)

Arquitetura e Organização de Computadores I

ARQUITETURA DE COMPUTADORES

Sistemas Operacionais. Prof. André Y. Kusumoto

Mecanismo de Interrupção

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Sistemas Operacionais Entrada / Saída. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

28/9/2010. Unidade de Controle Funcionamento e Implementação

Estruturas do Sistema de Computação

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

BARRAMENTO DO SISTEMA

5 Entrada e Saída de Dados:

3. Arquitetura Básica do Computador

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco

Organização de Computadores Hardware

Organização de Computadores. (Aula 5) Entrada/Saída

SO - Conceitos Básicos. Introdução ao Computador 2010/01 Renan Manola

Entrada e Saída. Prof. Leonardo Barreto Campos 1

Tipos de sistemas operacionais

Entrada e Saída (Input/Output I/O) Organização de Computadores (Aula 5) Entrada/Saída. Diferentes Tipos de Dispositivos (1)

Organização Básica do Computador

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

PROGRAMA DE GERENCIAMENTO DOS AMPLIFICADORES MR 4.50D-XT MR 6.50D-XT MR 6.80-XT Rev. 2.3 de 29/01/2014

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Estrutura de um Computador

Arquitetura de Computadores - Revisão -

E/S PROGRAMADA E/S PROGRAMADA E/S USANDO INTERRUPÇÃO

Organização de Computadores 1

Entradas/Saídas. Programação por espera activa Programação por interrupções

Memória Cache. Prof. Leonardo Barreto Campos 1

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Processos e Threads (partes I e II)

Entradas/Saídas. Programação por interrupções Conceitos gerais Programação da porta série Transmissão

Introdução aos Computadores

Máquina de estados UNIX O

Máquina de estados UNIX O. Sistemas Operacionais 2008/1Profa. Patricia S.O. computação: recursos D. S.O S.O. controla eventos no sistema de

Aula 3. Sistemas Operacionais. Prof: Carlos Eduardo de Carvalho Dantas

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

Modelo Genérico de Módulo de E/S Grande variedade de periféricos

INDICE 1. INTRODUÇÃO CONFIGURAÇÃO MÍNIMA INSTALAÇÃO INTERLIGAÇÃO DO SISTEMA ALGUNS RECURSOS SERVIDOR BAM...

Organização e Arquitetura de Computadores I

INSTALAÇÃO MICROTERMINAL FIT BASIC BEMATECH

Aula 2 Modelo Simplificado de Computador

Organização e Arquitetura de Computadores I

Placa Acessório Modem Impacta

LINEAR EQUIPAMENTOS RUA SÃO JORGE, 267/269 - TELEFONE: (11) SÃO CAETANO DO SUL - SP - CEP:

O processador é um dos elementos componentes do computador moderno, sendo responsável pelo gerenciamento de todo o computador.

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE : SÃO CAETANO DO SUL - SP - CEP:

Geral: Manual de Utilização do Software de Teste Gradual Windows

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Visão Geral de Sistemas Operacionais

Sistemas Operacionais

Informática I. Aula 4. Aula 4-11/09/2006 1

Montagem e Manutenção de Computadores Aula1

ISL - Introdução. Sistema. Binário. Introdução. Tipos de Computador. Sub title text goes here. Unused Section Space 2. Unused Section Space 1

PAINEL DE SENHAS RBSG4JE. Imagem ilustrativa do painel. Operação/Configuração Painel Eletrônico de Senhas / Guichê com jornal de mensagens.

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

Infraestrutura de Hardware. Entrada/Saída: Comunicação Processador, Memória e E/S

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Programa de Atualização de Pontos do Lince GPS

SISTEMAS INFORMÁTICOS

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Componentes do Computador e. aula 3. Profa. Débora Matos

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

MANUTENÇÃO DE MICRO. Mário Gomes de Oliveira

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

O cursor se torna vermelho e uma Paleta de Edição contendo as instruções mais utilizadas é apresentada.

Quadro de consulta (solicitação do mestre)

SIS17-Arquitetura de Computadores

Introdução à Organização de Computadores Entrada e Saída. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Sistemas Operacionais

Sistemas Computacionais II Professor Frederico Sauer

Programa de Instalação do Lince GPS

Sistemas Operacionais

Arquitetura de Computadores I

É o UniNorte facilitando a vida de nossos docentes e discentes.

Manual Técnico Interface Modbus

Introdução a Informática. Prof.: Roberto Franciscatto

Arquitetura de Computadores Arquitetura de entrada e saída

MC404: Organização de Computadores e Linguagem de Montagem Lista de Exercícios

Transcrição:

MICROPROCESSADORES II (EMA864315) ENTRADA E SAÍDA (I/O) 1 O SEMESTRE / 2015 Alexandro Baldassin

MATERIAL DIDÁTICO Patterson & Hennessy (4a edição) Capítulo 6 (Tópicos I/O) 6.1 Introduction 6.5 Connecting Processors, Memory, and I/O Devices 6.6 Interfacing I/O Devices to the Processor, Memory, and Operating System

I/O: REQUISITOS O que precisamos para fazer um sistema de I/O funcionar? Uma forma de conectar os dispositivos com o processador e memória Uma forma de controlar estes dispositivos (responder e transferir dados) Uma forma de apresentá-los aos programas de usuários, para que possam ser úteis Assunto da disciplina de Sistema Operacional

I/O: CONECTIVIDADE Barramento conjunto de linhas (fios) que interligam os dispositivos do sistema computactional (cpu, memória, periféricos) Barramentos: de dados de endereço de controle

CONTROLADOR DE I/O TÍPICO Controlador de E/S MEM ADDR DATA R / W DADO CONTROLE Dispositivo CPU

TIPOS DE INTERFACE Controlador (porta) serial Um único sinal, um bit após o outro Padrões: RS-232, RS-485 Controlador (porta) paralela Um dado inteiro por vez (8 bits, etc...) Padrões: Centronics, etc...

DE2 BASIC COMPUTER barramento Avalon

I/O: CONTROLE Qual o papel do processador nas operações de I/O?

I/O: CONTROLE Qual o papel do processador nas operações de I/O? Entrada: Ler uma sequência de bytes Saída: Escrever uma sequência de bytes Para que o processador possa controlar um dispositivo de I/O, ele deve:

I/O: CONTROLE Qual o papel do processador nas operações de I/O? Entrada: Ler uma sequência de bytes Saída: Escrever uma sequência de bytes Para que o processador possa controlar um dispositivo de I/O, ele deve: Saber como endereçar tal dispositivo Fornecer comandos de controle Dois métodos principais Instruções específicas (ex: in e out no IA32) I/O mapeada em memória

I/O MAPEADA EM MEMÓRIA Parte do espaço de endereçamento é dedicado à comunicação com dispositivos de entrada e saída Instruções de load e store fazem a comunicação com dispositivos Ao invés de acessar memória física, as instruções acessam registradores dos dispositivos

I/O MAPEADA EM MEMÓRIA Parte do espaço de endereçamento é dedicado à comunicação com dispositivos de entrada e saída Instruções de load e store fazem a comunicação com dispositivos Ao invés de acessar memória física, as instruções acessam registradores dos dispositivos 0xFFFFFFFF endereço 0xFFFF0000 registrador controle registrador dados 0

MAPA DA MEMÓRIA DO DE2 BASIC COMPUTER Olhar Basic Computer System for the Altera DE2 Board.pdf

MAPA DA MEMÓRIA DO DE2 BASIC COMPUTER I/O mapeada em memória Olhar Basic Computer System for the Altera DE2 Board.pdf

COMUNICAÇÃO ENTRE CPU E DISPOSITIVOS Prof. Alexandro - Microprocessadores II - I/O Considere um processador de 1GHz... 1 bilhão de instruções de load e store por segundo (4GB/s) Dispositivos de I/O podem ter taxa de transferência variando entre 0.01KB/ s e 1GB/s Problema Um dispositivo pode não estar pronto para enviar ou receber dados na velocidade do processador O que fazer em relação a essa disparidade de velocidade?

COMUNICAÇÃO COM I/O: MÉTODO 1 Prof. Alexandro - Microprocessadores II - I/O Dispositivo geralmente possui dois registradores Controle: informa quando está OK para ler ou escrever Dado: contém o dado (a ser lido ou escrito) Processador lê o registrador de controle em um laço, até que o dispositivo esteja pronto Após sinal de pronto, processador lê ou escreve informação usando o registrador de dado Essa operação reseta o estado do dispositivo (não pronto)

EXEMPLO USANDO MÉTODO 1 Considere um terminal (teclado + display) usando I/O mapeada em memória Leitura do teclado (entrada) 2 registradores Registrador de controle 0xFFFF0000 Não usado (0...0) I.E. Ready teclado Registrador de dado 0xFFFF0004 Não usado (0...0) Byte recebido

EXEMPLO USANDO MÉTODO 1 Considere um terminal (teclado + display) usando I/O mapeada em memória Leitura do teclado (entrada) 2 registradores Registrador de controle 0xFFFF0000 Não usado (0...0) I.E. Ready teclado Registrador de dado 0xFFFF0004 Não usado (0...0) Byte recebido Escrita na tela (saída) 2 registradores Registrador de controle 0xFFFF0008 Não usado (0...0) I.E. Ready display Registrador de dado 0xFFFF000C Não usado (0...0) Byte transmitido

EXEMPLO USANDO MÉTODO 1 Registrador de controle (bit menos significativo) Teclado: Ready == 1 significa que o caractere no registrador de dado ainda não foi lido quando for lido, Ready vai de 1 => 0 Display: Ready == 1 significa que transmissor está apto a aceitar novo caractere bit I.E. discutido mais tarde Registrador de dado (byte menos significativo) Teclado: último caractere digitado Display: caractere a ser impresso na tela

EXEMPLO USANDO MÉTODO 1 Entrada: Lê do teclado para registrador r4

EXEMPLO USANDO MÉTODO 1 Entrada: Lê do teclado para registrador r4 orhi r2, r0, 0xFFFF # 0xFFFF0000 WaitLoop: ldwio r3, 0(r2) # controle andi r3, r3, 0x1 beq r3, r0, WaitLoop ldwio r4, 4(r2) # dado

EXEMPLO USANDO MÉTODO 1 Entrada: Lê do teclado para registrador r4 orhi r2, r0, 0xFFFF # 0xFFFF0000 WaitLoop: ldwio r3, 0(r2) # controle andi r3, r3, 0x1 beq r3, r0, WaitLoop ldwio r4, 4(r2) # dado Note que para realizar leituras (e escritas) de dispositivos em memória mapeada é necessário utilizar instruções especiais (por quê?)

EXEMPLO USANDO MÉTODO 1 Entrada: Lê do teclado para registrador r4 orhi r2, r0, 0xFFFF # 0xFFFF0000 WaitLoop: ldw r3, 0(r2) # controle andi r3, r3, 0x1 beq r3, r0, WaitLoop ldw r4, 4(r2) # dado Saída: Escreve valor em r2 para a tela orhi r4, r0, 0xFFFF # 0xFFFF0000 WaitLoop: ldwio r3, 8(r4) # controle andi r3, r3, 0x1 beq r3, r0, WaitLoop stwio r2, 12(r4) # dado

MÉTODO 1 - POLLING Esse método é conhecido como polling, ou I/O programada Processador espera pelo dispositivo em um laço Qual a desvantagem do polling?

MÉTODO 1 - POLLING Esse método é conhecido como polling, ou I/O programada Processador espera pelo dispositivo em um laço Qual a desvantagem do polling? Processador gasta grande parte de seu tempo sem fazer nada útil (tempo de resposta a outras aplicações é alta) Gostaríamos que o processador não esperasse. Ideias?

MÉTODO 1 - POLLING Esse método é conhecido como polling, ou I/O programada Processador espera pelo dispositivo em um laço Qual a desvantagem do polling? Processador gasta grande parte de seu tempo sem fazer nada útil (tempo de resposta a outras aplicações é alta) Gostaríamos que o processador não esperasse. Ideias? Fazer com que o dispositivo avise: mecanismo de interrupção

LABORATÓRIO I/O Prof. Alexandro - Microprocessadores II - I/O

LABORATÓRIO I/O Neste laboratório veremos os dispositivos I/O que usam portas de comunicação paralela Seção 2.3 da referência Basic Computer System for the Altera DE2 Board A interface PIO (Parallel I/O) pode conter até 4 registradores

INTERFACES PARALELAS DE2 Slider/Toggle switches Green LEDs

INTERFACE DISPLAY 7-SEG Prof. Alexandro - Microprocessadores II - I/O

MÉTODO 2 - INTERRUPÇÃO Dispositivo de I/O interrompe execução do processador para indicar que precisa de sua atenção Interrupção é assíncrona em relação à execução de instruções Necessário alguma forma de identificar qual dispositivo gerou interrupção Interrupção vetorizada A interrupção possui um ID que identifica a rotina específica para lidar com a interrupção Uma única rotina de tratamento de exceção

INTERRUPÇÃO Rotina de Tratamento de Interrupção (RTI)... instr05 instr04 instr03 instr02 PC instr01 instr00

INTERRUPÇÃO Rotina de Tratamento de Interrupção (RTI)... instr05 instr04 instr03 PC instr02 instr01 instr00

INTERRUPÇÃO Rotina de Tratamento de Interrupção (RTI)... instr05 instr04 PC instr03 instr02 instr01 instr00

INTERRUPÇÃO Rotina de Tratamento de Interrupção (RTI)... instr05 instr04 u Interrupção de I/O PC instr03 instr02 instr01 instr00

INTERRUPÇÃO Rotina de Tratamento de Interrupção (RTI) v u Salva PC (contexto) Interrupção de I/O PC... instr05 instr04 instr03 instr02 instr01 instr00

INTERRUPÇÃO Rotina de Tratamento de Interrupção (RTI) w v u Salta para RTI Salva PC (contexto) Interrupção de I/O PC... instr05 instr04 instr03 instr02 instr01 instr00

INTERRUPÇÃO x Trata do dispositivo Rotina de Tratamento de Interrupção (RTI) w v u Salta para RTI Salva PC (contexto) Interrupção de I/O PC... instr05 instr04 instr03 instr02 instr01 instr00

INTERRUPÇÃO x Trata do dispositivo Rotina de Tratamento de Interrupção (RTI) w Salta para RTI v Salva PC (contexto)... instr05 y Restaura PC (contexto) instr04 u Interrupção de I/O PC instr03 instr02 instr01 instr00

EXEMPLO USANDO INTERRUPÇÃO Prof. Alexandro - Microprocessadores II - I/O I.E. = Interrupt Enable Basta setar bit de interrupção Controle do receptor 0xFFFF0000 Não usado (0...0) I.E. Ready teclado Dado do receptor 0xFFFF0004 Não usado (0...0) Byte recebido Controle do transmissor 0xFFFF0008 Não usado (0...0) I.E. Ready display Dado do transmissor 0xFFFF000C Não usado (0...0) Byte transmitido

INTERRUPÇÃO Vantagens Libera o processador da necessidade de checar pelo dispositivo constantemente (polling) Programa do usuário é suspenso apenas quando a transferência de dados entre CPU e dispositivo é necessária Desvantagens Hardware relativamente complexo necessário Processador ainda é responsável por toda transferência

EXCEÇÕES NO DE2 BASIC COMPUTER Prof. Alexandro - Microprocessadores II - I/O O endereço de reset do DE2 Basic Computer é 0x00000000 Quando o pushbutton 0 (KEY0) é pressionado, o PC é automaticamente ajustado para 0x00000000 O endereço para a rotina de tratamento de exceção é 0x00000020 Uma exceção pode ser gerada por: Instrução trap Instrução não implementada Divisão por zero Interrupção de hardware Mais informações no capítulo 3, página 3-30, da referência Nios II Processor Reference Handbook

EXCEÇÕES NO DE2 BASIC COMPUTER Prof. Alexandro - Microprocessadores II - I/O Registradores do Nios II relativos a exceções Registrador Nome Função r24 et Temporário para tratamento de exceção r29 ea Endereço de retorno da exceção Para retornar da rotina de tratamento de exceção você deve usar a instrução eret

REGISTRADORES DE CONTROLE NIOS II Prof. Alexandro - Microprocessadores II - I/O Registradores de controle úteis no DE2 Basic Computer Registrador Nome Função ctl0 status armazena vários status da CPU ctl1 estatus cópia de ctl0 durante exceção ctl2 bstatus cópia de ctl0 durante pausa de depuração ctl3 ienable habilitação de interrupção ctl4 ipending interrupções pendentes ctl5 cpuid identificador único do processador A escrita e leitura desses registradores devem ser feitas com as instruções wrctl e rdctl, respectivamente

REGISTRADOR STATUS NO DE2 BASIC COMPUTER Prof. Alexandro - Microprocessadores II - I/O status Reservado U PIE bits 2 a 31 1 0

REGISTRADOR STATUS NO DE2 BASIC COMPUTER Prof. Alexandro - Microprocessadores II - I/O status Reservado U PIE bits 2 a 31 1 0 Processor Interrupt-Enable bit - quando 1, indica que o processador aceita interrupções externas

REGISTRADOR STATUS NO DE2 BASIC COMPUTER Prof. Alexandro - Microprocessadores II - I/O user (1)/supermode (0) bit sempre 0 no DE2 Basic Computer status Reservado U PIE bits 2 a 31 1 0 Processor Interrupt-Enable bit - quando 1, indica que o processador aceita interrupções externas

REGISTRADORES DE INTERRUPÇÃO Prof. Alexandro - Microprocessadores II - I/O O Nios II possui 32 entradas para pedido de interrupção (irq0 irq31) A habilitação ou não de algumas dessas interrupções é feita através do registrador ienable Se o valor do respectivo bit for 0, a interrupção não será considerada Exemplo: se o bit 2 for igual a 0, o dispositivo ligado à irq2 não poderá gerar interrupção O registrador ipending indica quais interrupções estão pendentes (ainda não foram tratadas)

IRQS DO DE2 BASIC COMPUTER

INTERRUPÇÕES NO DE2 BASIC COMPUTER Prof. Alexandro - Microprocessadores II - I/O Uma interrupção de hardware é gerada se e somente se as seguintes 3 condições forem verdadeiras 1. O bit PIE do registrador status for 1 2. Uma linha de pedido de interrupção, irqn, estiver ativa 3. O bit n correspondente no registrador ienable for 1 Após desviar o controle para a rotina de interrupção, o processador limpa o bit PIE, desabilitando interrupções futuras O valor do registrador ipending indica quais interrupções estão pendentes

TRATAMENTO DE EXCEÇÕES Em resposta a um evento de exceção, o processador Nios II automaticamente realiza as seguintes ações: 1. Salva o status atual do processador ao copiar o registrador status (ctl0) para o estatus (ctl1) 2. Limpa o bit U do registrador status para garantir que o processador esteja em modo supervisor 3. Limpa o bit PIE do registrador status para desabilitar futuras interrupções por hardware 4. Escreve o endereço da instrução seguinte a que gerou a exceção no registrador ea (r29) 5. Transfere a execução para a rotina que trata a execeção (nosso caso, endereço 0x00000020) Para maiores informações consulte o capítulo 11 do Introduction to the Altera Nios II Soft Processor

DETERMINANDO O TIPO DA EXCEÇÃO Prof. Alexandro - Microprocessadores II - I/O Lembre-se que uma exceção pode ser causada por diferentes motivos Instrução trap Instrução não implementada Interrupção de hardware Para determinar o tipo de exceção... 1. Leia o registrador ipending para checar se existe alguma interrupção de hardware caso afirmativo, desvie para a rotina de tratamento de interrupção de hardware adequada 2. Leia a instrução que estava sendo executada quando a exceção ocorreu caso seja a trap, desvie para a rotina de tratamento de interrupção de software adequada 3. Caso contrário a exceção é devida a uma instrução não implementada.

RETORNANDO DA EXCEÇÃO A última instrução da rotina de tratamento de exceção deve ser a eret Essa instrução, entre outras coisas, atribui ao PC o valor do registrador ea Atenção!!! Se a exceção for devida a uma interrupção de hardware, o valor do registrador ea deve ser decrementado de 4 A instrução sendo executada quando do aparecimento da interrupção não é completada antes da rotina de exceção ser invocada

Página 25 do Introduction to the Altera Nios II Soft Processor EXEMPLO DE TRATAMENTO DE EXCEÇÃO Prof. Alexandro - Microprocessadores II - I/O

INTERFACE PUSHBUTTON Prof. Alexandro - Microprocessadores II - I/O