ENTRADA ENTRADA E E SAÍDA SAÍDA DE DE DADOS DADOS n n Os dispositivos de um computador compartilham uma única via de comunicação → BARRAMENTO. BARRAMENTO → Elétrica/Mecânica + Protocolo. GERENCIAMENTO GERENCIAMENTO DE DE E/S E/S n O controle da troca de dados entre dois dispositivos pode ser feito basicamente de três formas: u E/S programada (polling): o processador é responsável por determinar o estado do dispositivo, enviar os comandos de leitura ou escrita e por monitorar o término da transferência. u E/S controlada por interrupção: o processador envia um comando de E/S e continua a executar outras instruções. O processador é interrompido pelo módulo de E/S quanto este tiver completado seu trabalho e transfere os dados para a memória. u Acesso direto à memória (DMA): a transferência dos dados para a memória é controlada por um dispositivo especializado, sem envolver o processador. 1 E/S E/S PROGRAMADA PROGRAMADA (POLLING) (POLLING) n n n n O processador envia um comando de E/S para o dispositivo. O processador fica monitorando o término da operação através do registrador de estado do dispositivo. O dispositivo sinaliza o término da operação carregando um valor apropriado no registrador de estado. O processador transfere o dado para a memória. E/S E/S POR POR INTERRUPÇÃO INTERRUPÇÃO uO processador envia uma comando de E/S para o dispositivo, mas não fica monitorando o seu término. u O processador continua a executar outras instruções enquanto o dispositivo realiza a operação de E/S. u Após cada ciclo de instrução o processador verifica se existe alguma interrupção pendente. u Ao terminar a tarefa, o dispositivo de E/S sinaliza (interrompe) o processador. u O processador transfere o dado para a memória. 2 ACESSO ACESSO DIRETO DIRETO À À MEMÓRIA MEMÓRIA (DMA) (DMA) u E/S programada e controlada por interrupção → toda transferência de dados passa pelo processador. u A técnica mais eficiente para a transferência de grandes volumes de dados é o DMA. u É utilizado um circuito específico, chamada Controlador de DMA u O Controlador realiza a transferência dos dados enquanto a CPU executa outras instruções. u Ao terminar, o controlador interrompe a CPU. INTERRUPÇÕES INTERRUPÇÕES n As interrupções são um mecanismo que permite a um programa ou dispositivo externo interromper o fluxo normal de outro programa. n A geração da interrupção pode ocorrer por software (interrupção de software) ou hardware (interrupção de hardware). Sistema Operacional Rotina p/ tratamento da Interrupção Controlador de Interrupção Interrupção por software Interrupção por hardware Requisição do Programa Hardware 3 CICLO CICLO DE DE INSTRUÇÕES INSTRUÇÕES DA DA CPU CPU INTERRUPÇÕES INTERRUPÇÕES n Interrupção u n suspende a execução do programa normal e grava o estado do processador (PSW, CS e IP). Após a interrupção uma ISR (rotina de processamento da interrupção) é chamada: u para uma interrupção de hardware l l u INTERRUPÇÃO a ISR comunica-se com o dispositivo e processa os dados retorna para o programa que executava quando ocorreu a interrupção ISR para uma interrupção de software l interrompe o programa e chama a ISR Redespachador restaura o estado anterior e retoma o processamento do programa anterior. 4 INTERRUPÇÃO INTERRUPÇÃO DE DE HARDWARE HARDWARE u Na família de PCs existem dois tipos de interrupções de hardware: interrupções MASCARÁVEIS (IRQs) e NÃO-MASCARÁVEIS. u Uma interrupção é dita mascarável quanto ela pode ser desabilitada. u As CPUs da Intel oferecem dois pinos que lidam com estas interrupções: INTR (Interrupt Request) para mascaráveis e NMI (Non Maskable Interrupts) para as não mascaráveis. u As NMIs são usadas para alertar sobre situações catastróficas: l l l l erro de paridade na memória; erro de coprocessador (até 286); erro no canal de I/O (barramento ISA); erro ativado por dispositivos PCI (*SERR). INTERRUPÇÃO INTERRUPÇÃO DE DE HARDWARE HARDWARE n n n n As interrupções mascaráveis (IRQs) são geradas pelos dispositivos de entrada e saída para sinalizar ao processador a conclusão de tarefas. Os processadores da Intel possuem apenas 1 linha de sinalização de interrupção, denominada INTR. Para possibilitar a ligação de vários dispositivos ao processador são utilizados dois circuitos Controladores de Interrupções Programáveis (PIC). Assim, é possível controlar até 16 IRQs diferentes. 5 INTERRUPÇÃO INTERRUPÇÃO DE DE HARDWARE HARDWARE u As IRQs possuem prioridades programáveis. u A programação dos controladores é feita pela BIOS. u Em geral as IRQs mais baixas possuem maior prioridade. Cada IRQ é associada a um evento de hardware e direciona para uma rotina de tratamento diferente. PIC PIC BÁSICO BÁSICO Recebe os pedidos de interrupção em um banco de 8 latches IRR; O IMR é programado para habilitar ou desabilitar os pedidos de int. O resolutor de prioridades identifica qual interrupção deve ser atendida. A interrupção é enviada ao ISR para ser repassada à CPU. 6 INTERRUPÇÃO INTERRUPÇÃO DE DE HARDWARE HARDWARE n A Intel reservou como pré-definidas as interrupções de 0 a 31. Entretanto, no projeto do 8086 foram utilizadas somente as de número 0 a 4. int 00 Divisão por 0 int 01 Execução passo a passo int 02 NMI – Non maskable interrupt int 03 Breakpoint int 04 Overflow As interrupções não pré-definidas são as IRQs. TABELA TABELA DE DE VETORES VETORES DE DE INTERRUPÇÃO INTERRUPÇÃO n Vetores de Interrupção – processador em modo-real u são registros de endereços que informam à CPU onde encontrar as ISR; u às interrupções são atribuídas um número de 0 a 255; u os vetores de interrupção associados com cada número de interrupção são guardados na parte baixa da memória (os primeiros 1024 bytes) do PC, ocupando 4 bytes cada (int-0 0000:0000 à 0000:0003); u a cada interrupção é associada uma tarefa predeterminada (ver tabela); u no modo protegido, o endereço de cada sobrotina de tratamento é obtido diretamente, multiplicando-se o número da interrupção por 4. 7 TABELA TABELA DE DE VETORES VETORES DE DE INTERRUPÇÃO INTERRUPÇÃO TRATAMENTO TRATAMENTO DAS DAS INTERRUPÇÕES INTERRUPÇÕES u u Quando ocorre uma interrupção de hardware o processador precisa determinar qual trecho de código lida com aquele hardware e iniciar a sua execução. Portanto, o tratamento de uma interrupção é simplesmente o processo de determinar o endereço de memória em que se localiza o código que lida com aquele hardware. 8 INTERRUPÇÃO INTERRUPÇÃO DE DE SOFTWARE SOFTWARE n É a interrupção de um programa aplicativo que transfere controle para o kernel quando ele necessita executar funções de baixo-nível (kernel level) u nas máquinas Intel ocorre quando o aplicativo executa uma instrução INT-n (16-39); u esta instrução é formada por dois bytes: o primeiro contém o código da operação INT e o segundo o número da interrupção a ser executada; u o nível de privilégio das interrupções de software é mais baixo dos que das de hardware (as interrupcões de hardware são mais importantes) n No DOS a interrupção de software é executada pelo BIOS INTERRUPÇÕES INTERRUPÇÕES NO NO MODO MODO PROTEGIDO PROTEGIDO u As CPUs que trabalham em modo protegido (80286 e posteriores) possuem um interação muito grande com o sistema operacional. u O tratamento de interrupções nestes casos é realizado em parte pelo Sistema Operacional e em parte pelo processador. u A identificação da rotina que trata as interrupções é feita através de uma Tabela de Descritores de Interrupção (IDT), criada pelo Sistema Operacional, e não mais pela IVT. u Da mesma forma que na IVT, cada descritor de interrupção associa uma interrupção ao seu manipulador. u A IDT pode ser armazenada em qualquer posição da memória. 9 INTERRUPÇÃO INTERRUPÇÃO NO NO PCI-BUS PCI-BUS Dispositivos ISA IRQ15 IRQ2 4 interrupções IRQ0 IRQ1 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 Controlador 8259A Primário IRQ8 IRQ9(IRQ2) IRQ10 Controlador 8259A Secundário Sinais de arbitragem (ligados ao árbitro-PCI na ponte-norte) INTA Dispositivos PCI INTA INTB INTC INTA Advanced Programmable Interrupt Controller INTA INTB CPU INTA INTB 10 INTERRUPÇÃO INTERRUPÇÃO NO NO PCI-BUS PCI-BUS a) Transição (edge-trigger) TTL-driver. ISA n n b) nível (level-triggered) TTL – coletor-aberto. PCI O circuito da direita é característico do barramento ISA. Interrupção não compartilhável. O circuito da esquerda é típico da interrupção do PCI. Vários dispositivos podem compartilhar uma mesma interrupção. DMA DMA n n n n Os métodos de gerenciamento de E/S programada e controlada por interrupção apresentam um inconveniente → o processador ainda é o responsável por transferir os dados entre o dispositivo e a memória. Em transferências que envolvem um grande volume de dados o processador é muito requisitado para as operações de E/S → queda na performance geral do computador. Exemplo: discos rígidos, adaptador de DVD, etc. Solução → Acesso Direto à Memória (DMA). 11 DMA DMA n n Através do controlador de DMA uma interface pode ler ou escrever diretamente na memória, SEM A INTERVENÇÃO DO PROCESSADOR. Durante a evolução da família de PCs surgiram três tipos de arquitetura de DMA: u1 controlador de DMA 8237: l u2 PC XT. Disponibilizava 4 canais de DMA controladores 8237 em cascata: l PC AT. Disponibilizavam 7 canais de DMA u DMA l via mestre do barramento. a partir do 80486 e da implementação da transferência em rajada. Operação Operação de de DMA DMA (visão (visão geral) geral) 12 Canais Canais de de DMA DMA u Nos PCs XT e AT até o 80386 cada dispositivo que realizava DMA tinha seu próprio par de linhas DRQ/*DACK. u Portanto, cada um destes pares caracterizava um Canal de DMA. u No PC AT foram utilizados 2 controladores em cascata, oferecendo 7 canais de DMA. Controle Controle das das transferências transferências u Cada canal de DMA possui 16 registradores de controle. u Os mais importantes para o controle das transferências são: l l l l registrador de endereço base; registrador de endereço corrente; contador base; contador corrente. u Ao realizar uma transferência entre a memória e o dispositivo, a CPU informa ao controlador de DMA: l l l o endereço do dispositivo envolvido na transferência; qual a operação a ser feita (entrada ou saída de dados); o endereço de memória inicial e a quantidade de dados a serem transmitidos. 13 Controle Controle das das transferências transferências n Ex.: supondo uma transferência de 10 dados do dispositivo de E/S para a memória, no endereço inicial 1700(10). Estado inicial M Estado final Após 4 transferências M M END. BASE = 1700 END. BASE = 1700 END. BASE = 1700 END. CORRENTE = 1700 END. CORRENTE = 1704 END. CORRENTE = 1710 CONT. BASE = 9 CONT. BASE = 9 CONT. BASE = 9 CONT. CORRENTE = 9 CONT. CORRENTE = 5 CONT. CORRENTE = FFFF M M M Controle Controle das das transferências transferências n n n O número armazenado nos registradores de contagem é sempre igual ao número de dados a transferir menos 1. Número de transferências Valor a ser programado no contador 200 65536 1 199 65535 0 Quando o controlador de DMA faz a última transferência o Contador Corrente passa de 0000 para FFFF(16). Neste instante o controlador de DMA gera um sinal chamado TC (Terminal Count), que indica o término da transferência (interrompe o processador). 14 Configurações Configurações de de DMA DMA n O mecanismo de DMA pode ser configurado de diversas maneiras: DMA DMA via via arbitragem arbitragem do do barramento barramento n n n n Usado nas arquiteturas mais modernas, o DMA via arbitragem do barramento envolve controladores mais evoluídos. O controlador passa a fazer requisições não mais diretamente ao processador, mas ao árbitro do barramento. Quando o árbitro libera o barramento o controlador tornase o seu mestre, colocando-se no lugar da CPU e realizando a transferência dos dados diretamente para a memória. Técnica utilizada no barramento PCI. 15