Organização de Computadores

Documentos relacionados
Periféricos possuem características diferentes. Periféricos são mais lentos que UCP e Memória Necessita-se de módulos de Entrada/Saída

Dispositivos de Entrada e Saída

Problemas com Entrada e Saída

Aula 09. Módulos de Entrada e Saída

Organização e Arquitetura de Computadores I

Organização de Computadores 1

Dispositivos de Entrada e Saída

Dispositivos de Entrada e Saída

SSC0611 Arquitetura de Computadores

Entrada e Saída (E/S)

Barramento. Prof. Leonardo Barreto Campos 1

Organização e Arquitetura de Computadores I

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 19. Sistema de Entrada/Saída

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

Organização de Computadores

Sistemas de Entrada e Saída

Fundamentos de Sistemas Operacionais

BARRAMENTOS. Adão de Melo Neto

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

BARRAMENTOS. Adão de Melo Neto

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)

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

Notas da Aula 14 - Fundamentos de Sistemas Operacionais

Entrada e Saída e Dispositivos

Gerência de Entrada e Saída

Capítulo 13: Sistemas de E/S. Operating System Concepts with Java 7th Edition, Nov 15, 2006

Sistemas Operacionais. Sistema de entrada e Saída

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

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

Sistemas Operacionais. Interrupção e Exceção

Introdução a Tecnologia da Informação

Arquitetura de Computadores Unidade 2 Organização Funcional dos Sistemas de Computação tópico 2.3 Subsistemas de E/S

Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto

BARRAMENTO DO SISTEMA. Adão de Melo Neto

Sistemas de Entrada e Saída

Sistemas Operacionais. Entrada/Saída

Aula 03 - Concorrência. por Sediane Carmem Lunardi Hernandes

Sistemas de Entrada e Saída

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -

Capítulo 13: Sistemas de E/S. Operating System Concepts 8 th Edition

Estrutura de Sistemas Operacionais. Capítulo 1: Introdução

ARQUITETURA DE COMPUTADORES

O Sistema de Computação

INFORMÁTICA BÁSICA HARDWARE: COMPONENTES BÁSICOS E FUNCIONAMENTO.

Sistemas Operacionais

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

MICROCOMPUTADORES. Professor Adão de Melo Neto

ENSINO À DISTÂNCIA UNIDADE IV

Montagem e Manutenção de Computadores

Entrada e saída Introdução hardware de E/S

Componentes de um Computador Típico

4.4. Chipset. Prof. Daniel Pezzi Arquitetura de Computadores II (UNICRUZ) 61

Introdução a Tecnologia da Informação

BARRAMENTOS DO SISTEMA FELIPE G. TORRES

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

Estrutura Básica de um Computador

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados

MICROPROCESSADORES. Unidade de Entrada/Saída (I/O) Nuno Cavaco Gomes Horta. Universidade Técnica de Lisboa / Instituto Superior Técnico

Arquitetura de Computadores

Curso Técnico de Nível Médio

Capítulo 7 - Interfaces de Entrada e Saída. Conceito

Parte I Multiprocessamento

Gerência de Dispositivos. Adão de Melo Neto

Arquitectura de Computadores MEEC (2013/14 2º Sem.)

Arquitectura de Computadores MEEC (2013/14 2º Sem.)

AGT0001 Algoritmos Aula 01 O Computador

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Organização e Projeto de Computadores 3: Modo de Endereçamento, Sub-Rotina, Instruções de E/S, Interrupção

ARQUITETURA DE COMPUTADORES

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Organização de computadores. Segundo Bimestre CNAT Prof. Jean Galdino

COMPUTADOR. Adão de Melo Neto

Organização de Computadores I

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

Hardware. Componentes Básicos e Funcionamento

Gerência de Dispositivos. Adão de Melo Neto

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

Transcrição:

Organização de Computadores Aula 23 Entrada e Saída (I/O) Rodrigo Hausen 03 de novembro de 2011 http://cuco.pro.br/ach2034 1/62

Apresentação 1. Bases Teóricas 2. Organização de computadores... 2.3. Estruturas de Interconexão 2.4. Sistema de Memórias 2.5. Subsistema de Entrada/Saída (I/O) Aula de hoje: Stallings (5a. Edição), 6.1. Dispositivos externos; 6.2. Módulos de E/S; 6.3. E/S programada; 6.4. E/S dirigida por interrupção 2/62

Entrada/Saída: Problemas Entrada/Saída = E/S = Input/Output = I/O 3/62

Entrada/Saída: Problemas Entrada/Saída = E/S = Input/Output = I/O Grande variedade de periféricos em uso Transmitem diferentes quantidades de dados Velocidades de transmissão e acesso diferentes Em formatos diferentes Todos os periféricos são mais lentos do que a CPU e memória principal (memória RAM) 4/62

Entrada/Saída: Problemas Entrada/Saída = E/S = Input/Output = I/O Grande variedade de periféricos em uso Transmitem diferentes quantidades de dados Velocidades de transmissão e acesso diferentes Em formatos diferentes Todos os periféricos são mais lentos do que a CPU e memória principal (memória RAM) Necessidade de módulos de I/O 5/62

Entrada/Saída: Problemas Entrada/Saída = E/S = Input/Output = I/O Grande variedade de periféricos em uso Transmitem diferentes quantidades de dados Velocidades de transmissão e acesso diferentes Em formatos diferentes Todos os periféricos são mais lentos do que a CPU e memória principal (memória RAM) Necessidade de módulos de I/O Circuitos lógicos que fazem a tradução entre os sinais elétricos apropriados à CPU/memória e o dispositivo Interface ao processador e memória principal através do barramento do sistema Interface para um ou mais dispositivos periféricos 6/62

Módulo de I/O: Modelo Genérico interface interna interface externa 7/62

Dispositivos Externos Para interação com o usuário (Human Interaction Devices): monitor de vídeo, impressora, teclado, mouse Para interação com outros dispositivos periféricos: fitas, discos, placa de captura de vídeo sensores de monitoramento e controle Para comunicação com dispositivos remotos: modem, placa de rede 8/62

Dispositivo Externo: Diagrama em Blocos Sinais de controle do módulo de I/O Sinais de estado p/ módulo de I/O Bits de dados de/para módulo de I/O Lógica de controle Buffer Transdutor Dados (esp. do dispositivo) de/para ambiente externo 9/62

Dispositivo Externo: Diagrama em Blocos Sinais de controle do módulo de I/O Sinais de estado p/ módulo de I/O Bits de dados de/para módulo de I/O Lógica de controle Buffer Transdutor determinam função a ser executada Dados (esp. do dispositivo) de/para ambiente externo 10/62

Dispositivo Externo: Diagrama em Blocos Sinais de controle do módulo de I/O Sinais de estado p/ módulo de I/O Bits de dados de/para módulo de I/O Lógica de controle Buffer Transdutor indicam o estado do dispositivo Dados (esp. do dispositivo) de/para ambiente externo 11/62

Dispositivo Externo: Diagrama em Blocos Sinais de controle do módulo de I/O Sinais de estado p/ módulo de I/O Bits de dados de/para módulo de I/O Lógica de controle Buffer Transdutor controla as operações do dispositivo Dados (esp. do dispositivo) de/para ambiente externo 12/62

Dispositivo Externo: Diagrama em Blocos Sinais de controle do módulo de I/O Sinais de estado p/ módulo de I/O Bits de dados de/para módulo de I/O Lógica de controle Buffer Transdutor converte sinais internos de/para formato adequado ao dispositivo Dados (esp. do dispositivo) de/para ambiente externo 13/62

Dispositivo Externo: Diagrama em Blocos Sinais de controle do módulo de I/O Sinais de estado p/ módulo de I/O Bits de dados de/para módulo de I/O Lógica de controle Buffer Transdutor área de armazenamento temporário de dados de/para dispositivo Dados (esp. do dispositivo) de/para ambiente externo 14/62

Dispositivo Externo: Diagrama em Blocos Sinais de controle do módulo de I/O Sinais de estado p/ módulo de I/O Bits de dados de/para módulo de I/O Lógica de controle Buffer Transdutor converte sinais internos de/para formato adequado ao dispositivo Dados (esp. do dispositivo) de/para ambiente externo 15/62

Módulo de I/O: Funções Controle e temporização Comunicação com a CPU Comunicação com o dispositivo Armazenamento temporário de dados (buffering) Detecção/correção de erros (opcional) 16/62

Controle e Temporização de I/O 1) CPU requisita estado do dispositivo ao módulo de I/O 2) Módulo de I/O retorna estado 3) Se estado = pronto CPU requisita transf. de dados enviando comando ao módulo de I/O 4) Módulo de I/O obtém uma unidade de dados do dispositivo 5) Dado é transferido do Módulo de I/O para CPU Variações para saída de dados, DMA, etc. 17/62

Comunicação com a CPU Decodificação de comandos: módulo de I/O aceita comandos através de sinais no barramento de controle Dados: transmitidos entre a CPU e o módulo de I/O pelo barramento de dados Informação de estado: comumente, pelo fato de periféricos serem lentos, é comum ter sinais do tipo ocupado (busy) ou pronto (ready). Reconhecimento de endereço: módulo de I/O deve reconhecer endereço único para cada periférico controlado por ele 18/62

Comunicação de um Módulo de I/O Comunicação com o dispositivo: comandos, informação de estado e dados Armazenamento temporário de dados (buffering): dados vêm da CPU/memória em alta velocidade (alta taxa de transferência) e precisam ser temporariamente armazenados pelo módulo de I/O para serem consumidos pelo dispositivo de acordo com a sua velocidade Detecção/correção de erros: responsável por reportar erros à CPU 19/62

Taxas de Transferência Típicas Memória típica (DDR2 PC3200, comum em 2011): 3200MB/s, aprox. 2.6 x 10 10 bps 20/62

Módulo de I/O: Diagrama 21/62

Módulo de I/O: Diagrama conexão com barr. do sistema 22/62

Módulo de I/O: Diagrama armazenamento temporário (buffering) 23/62

Módulo de I/O: Diagrama armazenam informs. de estado e controle 24/62

Módulo de I/O: Diagrama módulo deve reconhecer e gerar endereços para dispositivos controlados por ele 25/62

Módulo de I/O: Diagrama CPU: envia comandos para o módulo de I/O módulo: retorna sinais de estado e interrupção 26/62

Módulo de I/O: Diagrama interpreta comandos da CPU, envia sinais de controle para interfaces de dispositivos, retorna sinais de estado 27/62

Módulo de I/O: Diagrama cada dispositivo possui uma interface diferente, por possuir características diferentes 28/62

Decisões do Módulo de I/O Funções do módulo de I/O permitem à CPU ver o dispositivo de uma maneira simples Módulo de I/O pode ocultar detalhes do dispositivo de tal forma que a CPU pode operar o dispositivo em termos de operações simples de leitura e escrita. Temporização, formatos, etc. podem ser todos traduzidos e controlados automaticamente pelo módulo (ou não!) Módulo de I/O pode escolher deixar o trabalho de controlar um dispositivo visível à CPU: rebobinar uma fita, ejetar um disco, etc. 29/62

Técnicas de I/O I/O programada: CPU tem controle direto sobre a entrada/saída. Mais simples, mas consome mais tempo da CPU. 30/62

Técnicas de I/O I/O programada: CPU tem controle direto sobre a entrada/saída. Mais simples, mas consome mais tempo da CPU. I/O por interrupção: CPU delega parte do controle ao controlador (módulo) do dispositivo. Um pouco mais elaborada, consome menos tempo da CPU. 31/62

Técnicas de I/O I/O programada: CPU tem controle direto sobre a entrada/saída. Mais simples, mas consome mais tempo da CPU. I/O por interrupção: CPU delega parte do controle ao controlador (módulo) do dispositivo. Um pouco mais elaborada, consome menos tempo da CPU. I/O por processadores: CPU delega quase, ou totalmente, o controle da entrada/saída a um processador. DMA I/O por canais 32/62

I/O Programada CPU tem controle direto sobre a entrada/saída Verificando estado dos dispositivos Enviando comandos de leitura/escrita Transferindo dados CPU aguarda término da operação, informado pelo módulo de I/O Desperdiça tempo da CPU 33/62

I/O Programada 34/62

I/O Programada desperdício de tempo da CPU (busy wait) 35/62

I/O Programada desperdício de tempo da CPU (busy wait) note que o módulo de I/O não informa a CPU diretamente sobre o estado do dispositivo 36/62

Comandos de Entrada/Saída CPU fornece endereço Identifica módulo (e dispositivo se há mais de um por módulo) CPU fornece comando Controle diz ao módulo o que fazer ex.: ligar motor do disco rígido Teste - verifica estado do dispositivo ex.: está ligado? ocorreu erro? Leitura/escrita Módulo transfere dados através do buffer de/para o dispositivo 37/62

Endereçamento de Dispositivos Do ponto de vista da CPU, I/O programada é bem parecida com acesso à memória Cada dispositivo possui um identificador único (endereço) comandos da CPU fornecem identificadores necessários I/O mapeada em memória (memory-mapped I/O): Dispositivos de I/O e memória compartilham o mesmo espaço de endereçamento I/O independente (ou I/O por portas): Espaços de endereçamento isolados 38/62

I/O mapeada em Memória Dispositivos e memória compartilham o mesmo espaço de endereçamento isto não quer dizer que os dispositivos copiem os dados diretamente para a memória nem que a CPU os acesse através da memória Os registradores de estado e de dados de cada módulo de I/O são vistos como endereços, indistintamente dos endereços da memória principal Linhas de controle também compartilhadas, portanto não é possível ter um mesmo endereço disponível para acessar a memória e um dispositivo. Não são necessários comandos especiais para I/O Se já há uma vasta gama de comandos de acesso à memória, aumenta a flexibilidade de programação 39/62

I/O independente (I/O por portas) Espaços de endereçamento separados para dispositivos e memória Linhas de controle separadas para memória e dispositivos (podemos ter o mesmo número de endereço para uma posição de memória e um dispositivo) Necessidade de comandos especiais para I/O Ou implementa-se uma variedade maior de comandos (complicando o projeto da CPU), ou restringe-se a variedade de métodos de acesso (menor flexibilidade) Geralmente, são implementados registradores especiais na CPU para lidar com I/O PCs com processadores da família Intel 32/64 bits usam tanto I/O mapeada em memória quanto por portas. 40/62

I/O por Interrupção Evita desperdiçar o tempo da CPU (busy wait) com tarefas menos nobres Não é necessário colocar instruções no programa para que que a CPU fique constantemente verificando o estado do dispositivo Módulo de I/O interrompe a CPU quando pronto Necessário alterar o ciclo de instrução da CPU: ao final de cada ciclo, a CPU verifica as linhas de estado automaticamente e entra em tratamento de interrupção caso haja interrupção 41/62

I/O por Interrupção 42/62

Processamento de Interrupção Controlador de dispositivo ou outro dispositivo de hardware lança uma interrupção Processador termina execução da instrução atual Salva o resto do contexto (estado atual de execução do processo, como conteúdo de regs. de dados) Processador sinaliza reconhecimento da interrupção Processa interrupção (handler) Processador salva o contexto (copia estado do PC e registradores de estado/endereç. para memória) Processador carrega PC com novo valor, baseado no tipo de interrupção Restaura contexto do processo Restaura estado anterior do PC e de registradores de estado e endereçamento 43/62

Interrupções: Questões de Projeto Como identificar o módulo que solicitou a interrupção Como lidar com múltiplas interrupções? p. ex. Um handler de interrupção sendo interrompido 44/62

Identificação do Módulo Múltiplas linhas de interrupção: Número limitado de linhas Geralmente, diversos módulos conectados numa mesma linha Geralmente, em cada linha, usa-se uma técnica diversa: Identificação por software (software polling) Identificação por hardware (hardware polling ou daisy chaining) Arbitração do barramento (bus mastering) 45/62

Identificação por Software Software polling: o handler de interrupção pergunta a cada módulo de I/O qual dispositivo gerou a interrupção Alternativamente, handler pode ler registradores de estado de cada módulo. Handler chama outro handler específico para o dispositivo que gerou interrupção. Consome muito tempo da CPU. 46/62

Identificação por Hardware Também chamado daisy chain ou hardware poll Reconhecimento de interrupção é enviado a uma cadeia de dispositivos Módulo responsável coloca uma palavra no barramento, chamada vetor de interrupção, que consiste de um identificador (endereço) CPU usa esse vetor para identificar dispositivo e handler 47/62

Arbitração do Barramento Também utiliza interrupção vetorada O módulo primeiramente obtém o controle do barramento (tornando-se mestre), depois ativa a linha de interrupção CPU detecta a linha de interrupção, depois responde pela linha de barramento Módulo coloca seu byte de dados no barramento Usado nos barramentos de expansão PCI e SCSI Se diversas linhas de interrupção são utilizadas, a CPU utiliza a de maior prioridade comparação: na identificação por software, a ordem de pesquisa determina a prioridade; na identificação por hardware, a ordem de conexão determina prioridade. 48/62

Interrupções Múltiplas Cada linha de interrupção tem uma prioridade Interrupções em linhas com maior prioridade podem interromper interrupções em linhas com maior prioridade Se identificação é feita por arbitração do barramento, apenas o mestre atual pode gerar interrupção 49/62

... Exemplo: Barramento PC (legado) Processadores antigos da família 80x86 (do 8086 até o 80365) possuem apenas uma linha de interrupção (INTR) e uma linha de reconhecimento de interrupção (INTA) Sistemas baseados no 8086 usam controlador de interrupção 8259A, que tem 8 linhas de interrupção IRQ0 IRQ1 8259A INTR INTA 8086 CPU IRQ7 barr. dados 50/62

... Exemplo: Barramento PC (legado) Modo de funcionamento: 1.1) 8259A recebe interrupções IRQ0 IRQ1 8259A INTR INTA 8086 CPU IRQ7 barr. dados 51/62

... Exemplo: Barramento PC (legado) Modo de funcionamento: 1.2) 8259A determina prioridade IRQ0 IRQ1 8259A INTR INTA 8086 CPU IRQ7 barr. dados 52/62

... Exemplo: Barramento PC (legado) Modo de funcionamento: 1.3) 8259A avisa a CPU (8086), colocando INTR em 1 IRQ0 IRQ1 8259A INTR INTA 8086 CPU IRQ7 barr. dados 53/62

... Exemplo: Barramento PC (legado) Modo de funcionamento: 1.4) CPU reconhece, colocando INTA em 1 IRQ0 IRQ1 8259A INTR INTA 8086 CPU IRQ7 barr. dados 54/62

... Exemplo: Barramento PC (legado) Modo de funcionamento: 1.5) 8259A coloca vetor correto no barramento de dados IRQ0 IRQ1 8259A 00000000 INTR INTA 8086 CPU IRQ7 barr. dados 55/62

... Exemplo: Barramento PC (legado) Modo de funcionamento: 1.6) CPU comunica-se diretamente com módulo de I/O para ler/escrever dados IRQ0 IRQ1 IRQ7 8259A barr. dados INTR INTA 8086 CPU end. ctrl.. 56/62

... Exemplo: Barramento PC (legado) Modo de funcionamento: 1.7) 8259A prepara-se para próxima interrupção IRQ0 IRQ1 8259A INTR INTA 8086 CPU IRQ7 barr. dados 57/62

... Exemplo: Barramento PC (legado) Modo de funcionamento: 2.3) 8259A avisa a CPU (8086), colocando INTR em 1 IRQ0 IRQ1 8259A INTR INTA 8086 CPU IRQ7 barr. dados 58/62

... Exemplo: Barramento PC (legado) Modo de funcionamento: 2.4) CPU reconhece, colocando INTA em 1 IRQ0 IRQ1 8259A INTR INTA 8086 CPU IRQ7 barr. dados 59/62

... Exemplo: Barramento PC (legado) Modo de funcionamento: 2.5) 8259A coloca vetor correto no barramento de dados IRQ0 IRQ1 8259A 00000001 INTR INTA 8086 CPU IRQ7 barr. dados 60/62

... Exemplo: Barramento PC (legado) Modo de funcionamento: 2.6) CPU comunica-se diretamente com módulo de I/O para ler/escrever dados IRQ0 IRQ1 IRQ7 8259A barr. dados INTR INTA 8086 CPU end. ctrl.. 61/62

Mais de 8 linhas de Interrupção 62/62