UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores Módulos de E/S Prof. Sílvio Fernandes Introdução • Além do processador e memória o sistema de computação ainda possui os módulos de E/S • Cada módulo se conecta ao barramento ou comutador central e controla um ou mais periféricos 2 Introdução • Por que os periféricos não são conectados diretamente no barramento do sistema? – Existe uma grande variedade de periféricos, com diversos métodos de operação – A taxa de transferência de dados dos periféricos normalmente é muito mais lenta (ou mais rápida) do que a da memória ou do processador – Os periféricos normalmente utilizam formatos de dados e tamanhos diferentes 3 Introdução • Módulo de E/S tem funções – Interface com o processador e a memória por meio do barramento do sistema ou comutador central – Interface com um ou mais dispositivos periféricos por conexões de dados adequados 4 Modelo Geral de um Módulo de E/S Barramento de Endereço Barramento de Dados Barramento de Controle Módulo de E/S Conexões com Dispositivos periféricos 5 Introdução • Dispositivos Externos – Legíveis ao ser humano: • Monitor, impressora, teclado – Legíveis à máquina: • Monitoração e controle – Comunicação: • Modem • Placa de interface de rede (NIC) 6 Introdução • Dispositivos Externos 7 Funções de um Módulo de E/S • Controle e Temporização • Comunicação com o µP • Comunicação com dispositivos • Área de armazenamento temporário de dados • Detecção de erros 8 Exemplo da Função Controle e Temporização 1. O µP interroga o módulo de E/S para verificar o estado do dispositivo 2. O módulo retorna o estado do dispositivo 3. Se o dispositivo estiver em operação e pronto para transmitir dados, o µP requisitará a transferência enviando um comando para o módulo de E/S 4. O módulo de E/S obtém uma unidade de dados (p.ex., 8 ou 16 bits) do dispositivo 5. Os dados são transferidos do módulo de E/S para o µP 9 Tópicos Envolvidos na Função Comunicação com o µP • Decodificação de comandos – Conversão entre sinais transmitidos através do barramento de controle e comandos usados pelos dispositivos • Dados – São transferidos entre o µP e o módulo de E/S através do barramento de dados • Informação de estado – Lentidão dos periféricos faz com que seja importante conhecer o estado do módulo de E/S • Reconhecimento de endereço – O módulo de E/S deve reconhecer um endereço distinto para cada periférico controlado 10 A Função Comunicação com Dispositivos Sinais de controle Do módulo de E/S (READ/WRITE) Sinais de estado p/ o módulo de E/S (READY/BUSY) Lógica De Controle Sinais de dados (bits) de e para o módulo de E/S Área de armazenamento temporário Transdutor Dados de e para o ambiente 11 A Função Armazenamento Temporário de Dados • A transferência de dados da memória principal para o módulo de E/S é feita rapidamente – Esses dados são temporariamente armazenados no módulo de E/S e então enviados para o dispositivo numa taxa adequada • No caminho oposto, os dados são também armazenados temporariamente no módulo de E/S para não reter a memória numa transferência de dados a baixa velocidade • O módulo de E/S deve ser capaz de realizar operações tanto à velocidade da memória quanto à do dispositivo externo 12 A Função Detecção de Erros • Erros possíveis: – Mau funcionamento elétrico ou mecânico • Falha de alimentação de papel • Trilha de disco defeituosa • etc – Alterações no padrão de bits transmitidos por um dispositivo para o módulo de E/S • Bits de paridade (p.ex., 8º bit em 1 Byte contendo um caractere ASCII) 13 Estrutura Interna de um Módulo de E/S Interface com o barramento do sistema Linhas de dados Linhas de endereço Linhas de controle Interface com Dispositivos externos Registradores de dados Registradores de estado/controle Lógica de interface com dispositivo externo Dados Lógica de interface com dispositivo externo Dados Estado Controle . . . Lógica De E/S Estado Controle 14 Técnicas Usadas para E/S Sem Interrupções Com Interrupções Transferência entre memória e E/S por meio do µP E/S programada E/S dirigida por interrupção Transferência direta entre memória e E/S — Acesso Direto à Memória (DMA) 15 E/S Programada • Em um programa, a execução de uma instrução relacionada a E/S faz com que um comando seja enviado para o módulo de E/S • O módulo de E/S executa a operação requisitada e sinaliza o seu término carregando um valor no registrador de estado • Nenhuma ação é executada pelo módulo para alertar o µP sobre o término da operação • É responsabilidade do µP verificar periodicamente o estado do módulo, para ver se a operação foi completada 16 Não pronto Envia cmd de leitura para o módulo de E/S µP → módulo de E/S Lê o estado do módulo de E/S módulo de E/S → µP Verifica estado Condição de erro Pronto Lê uma palavra do módulo de E/S → µP módulo de E/S Escreve uma palavra na memória Não E/S Programada µP → memória Terminou ? Sim Próxima instrução 17 Endereçamento de dispositivos de E/S • E/S mapeada na memória – Há um único espaço de endereçamento para posições de memória e dispositivos de E/S – Exemplo: • Endereçamento de Byte • Endereços de 10 bits → 1024 Bytes – Endereços 0-511: memória principal – Endereços 512-1023: dispositivos de E/S • E/S independente – Espaço de endereçamento de E/S é independente do espaço de endereçamento da memória 18 E/S Mapeada na Memória 7 6 5 4 3 2 1 0 Como os programas São executados? Registrador de dados de entrada do teclado 516 7 6 5 4 3 2 1 0 Registrador de controle e de estado de entrada do teclado 517 1 – pronto 0 – ocupado Atribuir “1” para iniciar a leitura ENDEREÇO INSTRUÇÃO OPERANDO COMENTÁRIO 200 Carregar acumulador “1” 201 Armazenar acumulador 517 Iniciar leitura do teclado 202 Carregar acumulador 517 Obter byte de estado 203 Desviar se sinal = 0 202 Repetir até que esteja pronto 204 Carregar o acumulador 516 Carregar byte de dados 19 PC (Contador de Programa) • O PC vai evoluindo instrução a instrução (mas os endereços das memórias começam em 0 e não em 1). • Após cada instrução, o PC contém o endereço da instrução seguinte. • “Desviar” equivale a escrever um novo valor no PC. soma temp 0 1 2 3 4 5 6 7 EQU EQU 40H 41H (definição do endereço da variável soma) (definição do endereço da variável temp) M[soma] 0 M[temp] N Se (M[temp] < 0) PC 7 Se (M[temp] = 0) PC 7 M[soma] M[soma] + M[temp] M[temp] M[temp] – 1 PC 3 PC 7 (inicializa soma com zero) (inicializa temp com N) (se temp for negativo, desvia para o fim) (se temp for zero, desvia para o fim) (adiciona temp à soma) (decrementa temp) (desvia para o endereço 3) (fim do programa) Fonte: DELGADO, J.; RIBEIRO, C. Arquitetura de Computadores. 2 ed. LTC, 2009. Vamos somar! Número de instruções executadas 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Valores após a execução da instrução (PC endereça a seguinte): soma 6 0 3 5 0 1 2 4 5 6 3 PC 7 soma temp 0 1 2 3 4 5 6 7 EQU EQU 40H 41H temp 0 3 2 1 (definição do endereço da variável soma) (definição do endereço da variável temp) M[soma] 0 M[temp] N Se (M[temp] < 0) PC 7 Se (M[temp] = 0) PC 7 M[soma] M[soma] + M[temp] M[temp] M[temp] – 1 PC 3 PC 7 (inicializa soma com zero) (inicializa temp com N) (se temp for negativo, desvia para o fim) (se temp for zero, desvia para o fim) (adiciona temp à soma) (decrementa temp) (desvia para o endereço 3) (fim do programa) Já chega!!!! Fonte: DELGADO, J.; RIBEIRO, C. Arquitetura de Computadores. 2 ed. LTC, 2009. E/S Independente ENDEREÇO INSTRUÇÃO OPERANDO COMENTÁRIO 200 Iniciar E/S 5 Iniciar leitura do teclado 201 Testar E/S 5 Testar se a operação foi completada 202 Desviar se não pronto 201 Repetir até que seja completada 203 Leitura 5 Carregar byte de dados • Acesso aos dispositivos de E/S é feito através de instruções especiais (comandos) 22 E/S Dirigida por Interrupção • μP envia um comando de E/S para o módulo e continua a executar outras instruções • O módulo de E/S interrompe o μP quando ele (módulo) estiver pronto para trocar dados • μP efetua a transferência de dados e depois retorna ao seu processamento original • É mais eficiente que a E/S programada, pois elimina ciclos de espera desnecessários 23 Envia cmd de leitura para o módulo de E/S Lê o estado do módulo de E/S µP → módulo de E/S Executa outras instruções módulo de E/S → µP Interrupção Verifica estado Condição de erro Pronto Lê uma palavra do módulo de E/S → µP módulo de E/S Escreve uma palavra na memória Não E/S Dirigida por Interrupção µP → memória Terminou ? Sim Próxima instrução 24 Processamento da Interrupção Programa principal Salva conteúdo dos registradores na pilha de controle Identifica a origem do evento Interrupção ou exceção Rotina de tratamento Obtém o endereço da rotina de tratamento Restaura o conteúdo dos registradores 25 Processamento da Interrupção Módulo de E/S envia uma interrupção μP termina execução da instrução corrente μP reconhece a interrupção μP armazena PSW e PC na pilha de controle μP carrega novo valor no PC, conforme interrupção Demais informações de estado são armazenadas Processamento da interrupção Informações de estado do processo são restauradas Antigos valores de PSW e PC são restaurados Hardware Software 26 Processamento da Interrupção Y PC T RTopo Y Início N N+1 T Programa de usuário Y+L Retorno Rotina de tratamento de interrupção N+1 Pilha de controle 27 Processamento da Interrupção ... Y PC T-M RTopo Registradores Y Início T-M N N+1 T-1 T Programa de usuário Y+L Retorno Rotina de tratamento de interrupção N+1 Pilha de controle 28 Processamento da Interrupção ... Y+L PC T RTopo Registradores Y Início T-M N N+1 T-1 T Programa de usuário Y+L Retorno Rotina de tratamento de interrupção N+1 Pilha de controle 29 Processamento da Interrupção N+1 PC Y Início N N+1 T Programa de usuário Y+L Retorno Rotina de tratamento de interrupção N+1 Pilha de controle 30 Aspectos de Projeto • Como identificar o módulo que emite a interrupção? • Como lidar com interrupções múltiplas? – Ou seja, um tratador de interrupção sendo interrompido 31 Identificação de Dispositivos • Técnicas utilizadas: – Múltiplas linhas de interrupção • Na prática, poucas linhas de μP são usadas para solicitação de interrupções – Identificação por software (pooling) • Consome muito tempo – Daisy Chain - Identificação por hardware (vetorada) • Consome menos tempo que a identificação por SW – Arbitração do barramento (vetorada) • Consome menos tempo que a identificação por SW 32 Identificação de Dispositivos – múltiplas linhas de interrupção INTR#0 INTR#1 ... μP Módulo de E/S Dispositivo Módulo de E/S Dispositivo INTR#N ... Módulo de E/S Dispositivo 33 Identificação de Dispositivos – identificação por software • Quando o μP detecta uma interrupção, ele desvia a execução para uma rotina de tratamento de interrupções • Esta rotina interroga cada módulo de E/S, para determinar qual deles causou a interrupção – Metodologias de interrogação: • Linha de teste especial (TEST I/O) + colocação de endereços dos módulos no barramento de endereços • Leitura de registradores de estado • Identificado o módulo, sua rotina de tratamento de interrupção específica é chamada 34 Identificação de Dispositivos – identificação por hardware Módulo de E/S μP Módulo de E/S Módulo de E/S Módulo de E/S • O sinal de reconhecimento de interrupção se propaga pelos módulos de E/S, até chegar àquele que originou a interrupção • Esse módulo responde colocando uma palavra de dados, chamada vetor de interrupção, nas linhas de dados • O vetor de interrupção contém o endereço do módulo de E/S, e serve para que o μP acione a rotina de tratamento de interrupção adequada ao dispositivo 35 Identificação de Dispositivos - arbitração do barramento • Para enviar um sinal de interrupção, o módulo de E/S precisa inicialmente obter o controle do barramento • Quando o μP detecta a interrupção, ele responde por meio da linha de reconhecimento de interrupção • O módulo de E/S que causou a interrupção coloca seu vetor na linha de dados 36 Interrupções Múltiplas • Múltiplas linhas – O processador apenas apanha a linha de interrupção com a prioridade mais alta • Verificação por Software – A ordem em que os módulos são verificados determina suas prioridades • Daisy – A ordem em que os módulos são verificados determina suas prioridades • Arbitração – Centralizada ou distribuída 37 O Controlador Intel 82C59A • O Intel 80386 possui: – Uma única linha de requisição de interrupção (INTR) – Uma única linha de reconhecimento de interrupção (INTA) • Para manipular vários dispositivos e estruturas de prioridade, ele é normalmente configurado com um controlador de interrupções externo, o Intel 82C59A • Os módulos de E/S são conectados ao 82C59A, que por sua vez é conectado ao 80386 38 O Controlador Intel 82C59A INTR INTR IR0 Módulo de E/S 00 IR1 Módulo de E/S 01 IR2 Módulo de E/S 02 INTA IR7 ... ... INTA Módulo de E/S 07 • Caso seja preciso controlar mais de oito módulos, pode ser usado um arranjo em cascata – possibilitando controlar até 64 módulos 39 O Controlador Intel 82C59A 40 O Controlador Intel 82C59A • O 82C59A é programável • Modos de programação possíveis: – Totalmente aninhado • As requisições de interrupção são ordenadas de acordo com as prioridades de 0 (IR0) a 7 (IR7) – Circular • Num mesmo grupo de dispositivos, aquele que foi mais recentemente atendido recebe a prioridade mais baixa – Máscara especial • Possibilita ao μP inibir interrupções de determinados dispositivos 41 O Módulo de E/S Intel 82C55A • Pode ser programado para E/S programada ou E/S dirigida por interrupção • Como interface externa para dispositivos, possui 3 grupos de linhas de 8 bits (A, B e C) – Em um modo de operação específico, os 3 grupos funcionam como 3 portas de E/S – Nos demais modos, as linhas dos grupos A e B funcionam como portas de E/S e as do grupo C como linhas de controle para os grupos A e B 42 O Módulo de E/S Intel 82C55A Registrador de Dados Barramento de dados do 80386 Alimentação Linhas de A0 endereço A1 Read Write Reset CS Barramento de 8 bits 8 8 8 4 +5V Terra 4 Lógica De Controle A CA CB 8 8 Registrador de Controle buffers B 43 Requisição de interrupção C3 Porta de entrada 82C55A Porta de saída Requisição de interrupção C0 A0 A1 A2 A3 A4 A5 A6 A7 C4 C5 R0 R1 R2 R3 Teclado R4 R5 Shift Control Data Ready Acknowledge B0 B1 B2 B3 B4 B5 B6 B7 C1 C2 C6 C7 S0 S1 Monitor S2 de Vídeo S3 S4 S5 Backspace Clear Data Ready Acknowledge Blanking Clear Line 44 Acesso Direto à Memória (DMA) • Envolve um módulo adicional no barramento do sistema • Esse módulo, denominado controlador de DMA, imita o μP nas funções de E/S de dados • O controlador de DMA pode operar das seguintes maneiras: – Usando o barramento apenas quando o μP não o utiliza – Forçando o μP a suspender temporariamente sua operação – técnica conhecida como roubo de ciclo 45 Roubo de Ciclo Tempo Ciclo de instrução Ciclo do μP Ciclo do μP Ciclo do μP Ciclo do μP Ciclo do μP Busca de instrução Decod. de instrução Busca de operando Execução de instrução Armazenam. Proc. de de resultado interrupção Pontos de suspensão de DMA Ciclo do μP Pontos de suspensão de interrupção 46 Acesso Direto à Memória (DMA) Envia cmd de leitura para o controlador de DMA Lê o estado do controlador DMA µP → controlador DMA Executa outras instruções Controlador DMA → µP Interrupção Próxima instrução 47 Estrutura Interna de Um Módulo DMA Contador de dados Linhas de dados Linhas de endereço Registrador de dados Registrador de endereços DMA Request DMA Acknowledgement Interrupt Read Lógica de Controle Write 48 Configurações de DMA • Algumas possibilidades: – Barramento único, DMA separado – Barramento único, DMA-E/S integrados – Barramento específico de E/S 49 Configurações de DMA – Barramento Único, DMA separado μP DMA E/S ... E/S Memória • Barata • Ineficiente – a transferência de cada palavra consome vários ciclos de barramento 50 Configurações de DMA - Barramento Único, DMA-E/S Integrados μP DMA DMA Memória E/S E/S E/S • Custosa • Eficiente 51 Configurações de DMA - Barramento Específico de E/S Barramento do sistema μP DMA Memória Barramento de E/S E/S E/S E/S • Custosa • Eficiente 52 Controlador DMA Intel 8237A • Interfaces com família 80x86 e DRAM • Quando o módulo de DMA precisa de barramentos, ele envia sinal HOLD ao processador. • CPU responde HLDA (hold acknowledge) . • Módulo de DMA pode usar barramentos. 53 Controlador DMA Intel 8237A 2/6 3 1 4 5 54 Controlador DMA Intel 8237A • Ex: transferir dados da memória para o disco 1. Dispositivo requisita serviço de DMA levantando DREQ (requisição de DMA). 2. DMA levanta sua linha HRQ (hold request). 3. CPU termina ciclo de barramento presente (não necessariamente instrução presente) e levanta linha HDLA HDLA (hold acknowledge). HOLD permanece ativo pela duração do DMA. 55 Controlador DMA Intel 8237A • Ex: transferir dados da memória para o disco 4. DMA ativa DACK (DMA acknowledge), dizendo ao dispositivo para iniciar a transferência. 5. DMA inicia transferência colocando endereço do primeiro byte no barramento de endereço e ativando MEMR; depois, ativa IOW para escrever no periférico. DMA decrementa contador e incrementa ponteiro de endereço. Repete até contagem chegar a zero. 6. DMA desativa HRQ, retornando o controle do barramento de volta à CPU 56 Evolução: canais e processadores de E/S 1. μP controla diretamente dispositivos 2. Módulos de E/S são adicionados 3. Interrupções são utilizadas 4. É introduzido o módulo de DMA 5. O módulo de E/S evolui para um canal, e executa programas de E/S carregados da memória principal 6. O canal evolui para um processador, possuindo sua própria memória local 57 Tipos de Canais • Seletores – Dedicam-se à transferência de dados apenas com um único dispositivo por vez • Multiplexadores – Transferem dados de/para vários dispositivos simultaneamente 58 Canal Seletor Memória principal Canal Seletor μP Módulo de E/S dispositivo Módulo de E/S dispositivo dispositivo 59 Canal Multiplexador Memória principal Canal Multiplexador μP Módulo de E/S dispositivo dispositivo Módulo de E/S dispositivo Módulo de E/S dispositivo 60 Referências • STALLINGS, W. Arquitetura e organização de computadores: projeto para o desempenho. 8. ed. Prentice Hall, 2009. • DELGADO, J.; RIBEIRO, C. Arquitetura de Computadores. 2 ed. LTC, 2009. • PATTERSON, D. A. ; HENNESSY, J.L. Organização e projeto de computadores – a interface hardware software. 3. ed. Editora Campus, 2005. 61