Arquitetura e Organização de Computadores Entrada/Saída Material adaptado, atualizado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição
Problemas Entrada/Saída Grande variedade de periféricos Oferecendo diferentes quantidades de dados Em diferentes velocidades Em diferentes formatos Normalmente mais lento do que CPU e memória RAM Necessita de módulos de E/S
Problemas Entrada/Saída Interface para CPU e Memória Interface para um ou mais periféricos
Dispositivos Externos Legíveis ao ser humano Monitores de vídeo, impressoras Legíveis à máquina Discos, fitas, sensores e atuadores (robôs) Comunicação Permitem a troca de dados entre qualquer dispositivo Modem, placa de rede
Dispositivos Externos Interface com o módulo de E/S Sinais de controle Dados Sinais de estado
Função dos Módulos de E/S Controle e temporização Coordena o fluxo de tráfego Comunicação com o processador Decodificação do comando Dados Informação de estado Reconhecimento de endereço Comunicação com o dispositivo Comandos Informação de estados Dados
Função dos Módulos de E/S Armazenamento temporário de dados (buffer) Interface entre dispositivos e memória Detecção de erro Defeitos mecânicos e/ou elétricos Mudanças não intencionais na transmissão de bits Uso de técnicas para correção Ex: Bit de paridade
Etapas de E/S CPU verifica status do módulo de E/S Módulo E/S retorna estado do dispositivo Se pronto, pedidos da CPU p/ transferência de dados Módulo E/S recebe dados de um dispositivo Módulo E/S transfere os dados para CPU
Estrutura de um Módulo de E/S
Técnicas de Entrada e Saída Programada Controlada por Interrupção Acesso Direto a Memória (DMA)
E/S Programada CPU tem controle direto sobre E/S Percepção do status Comando de leitura ou escrita Transferência de dados CPU aguarda até que módulo de E/S complete a operação Desperdício de tempo da CPU
Comandos E/S CPU emite um endereço Identifica o módulo (& dispositivo se >1 por módulo) CPU emite um comando Controle diz ao módulo o que fazer Ex: rebobinar uma fita Teste verifica estado Ex: ligado? Erro? Leitura/Escrita Módulo transfere dados do buffer de/para dispositivo
Instruções de E/S E/S mapeada na memória Dispositivos e memória compartilham um espaço de endereço Processador trata registradores de estado e dados dos módulos de E/S como locais de memória E/S independente Espaço endereço separados Necessita que E/S selecione linhas E/S ou memória Portas E/S acessíveis apenas por comandos especiais Grupo limitado de instruções
E/S Programada Gráfico
E/S controlada por interrupção Melhora o tempo de espera da CPU Não há verificação repetida do dispositivo pela CPU Módulo E/S interrompe quando estiver pronto Ainda ocupa tempo da CPU para cada palavra transmitida entre módulo de E/S e memória
E/S controlada por Interrupção Operação Básica CPU emite comando de leitura Módulo de E/S obtém dados do periférico enquanto CPU faz outro trabalho Módulo de E/S interrompe a CPU CPU requisita os dados Módulo de E/S transfere os dados
Ponto de Vista da CPU Emite comando leitura Faz outro trabalho Ao fim de cada ciclo de instrução, verifica se há interrupções Se houver: Salva contexto (registradores) Interrompe processo Obtém dados e armazena Restaura o contexto do programa em que estava trabalhando e retoma a execução
Aspectos de projeto Como identificar o módulo que emitiu a interrupção? Como lidar com múltiplas interrupções? Ex: Um manipulador de interrupção ser interrompido
Identificando o Módulo de Interrupção (1) Diferentes linhas de interrupção para cada módulo Número limitado de linhas Necessita da presença de outras técnicas Verificação por Software (polling) CPU pergunta cada módulo Lento
Identificando o Módulo de Interrupção (2) Daisy Chain ou Hardware poll Sinal de confirmação da interrupção enviado sobre uma cadeia circular Módulo responsável coloca vetor de interrupção (identificador) na linha de dados CPU usa vetor para identificar a rotina de manipulação apropriada Arbitração de barramento Módulo precisa obter controle do barramento antes de ativar requisição de interrupção
Interrupções Múltiplas Cada linha de interrupção tem uma prioridade Linhas de maior prioridade podem interromper linhas de menor prioridade
E/S Controlada por Interrupção Gráfico
Acesso Direto a Memória E/S Controlada por Interrupção e Programada requerem intervenção ativa da CPU Taxa de Transferência é limitada CPU fica ocupado DMA é a resposta
Função do DMA Módulo adicional (hardware) sobre barramento Controlador de DMA assume as tarefas da CPU para E/S
Operação de DMA CPU chama o controlador de DMA: Indica operação de Leitura/Escrita Endereço do dispositivo O local inicial na memória para ler ou escrever O número de palavras a serem lidas ou gravadas CPU continua com outro trabalho Controlador de DMA realiza a transferência Controlador de DMA envia sinal de interrupção quando termina
Tranferência usando DMA Roubo de Ciclo - Cycle Stealing Controlador de DMA assume o barramento para um ciclo Transferência de uma palavra de dados Não é uma interrupção CPU não salva o contexto CPU suspensa pouco antes de acessar o barramento, isto é, antes de buscar dados ou instruções, ou antes de uma gravação de dados Retarda CPU, mas não tanto quanto CPU fazendo transferência
Configurações de DMA (1) Barramento Único, Controlador de DMA separado Cada transferência usa o barramento duas vezes E/S para DMA, em seguida, DMA para memória CPU é suspensa por duas vezes
Configurações de DMA (2) Barramento único, Controlador DMA Integrado Controlador pode suportar + de 1 dispositivo Cada transferência usa o barramento somente uma vez DMA para memória CPU é suspensa uma vez
Configurações de DMA (3) Barramento E/S separado Barramento suporta todos dispositivos DMA ativos Cada transferência usa o barramento somente uma vez DMA para memória CPU é suspensa uma vez
Canais de E/S Dispositivos de E/S mais complexos e sofisticados Ex: Placas Gráficas 3D CPU instrui controlador de E/S para fazer transferências e coloca instruções na memória Controlador de E/S faz toda transferência Ganho de velocidade Retira a carga da CPU Processador dedicado é mais rápido
Interface Serial Única linha de transmissão Ex: Impressoras Paralela Várias linhas de impressão Estão desaparecendo com a evolução das interfaces seriais Ex: Discos, fitas
Configurações ponto a ponto e multiponto Conexão entre dispositivo e módulo de E/S pode ser: Multiponto Suporte a dispositivos de massa e dispositivos multimídia Verdadeiros Barramentos externos Ex: FireWire e InfiniBand Ponto a ponto linha dedicada entre eles Ex: teclado, impressora
Barramento Serial FireWire Padrão IEEE 1394 Barramento Serial de Alto Desempenho Solução alternativa ao SCSI (Small Computer System Interface) para sistemas pequenos Vantagens Maior velocidade Baixo custo Fácil implementaçaõ Também usados em câmeras digitais, gravadores e reprodutores de DVD, além de TV s
FireWire vs SCSI SCSI Paralela = Mais fios Cabos mais caros e grossos Conectores maiores e mais caros Blindagem nos fios para evitar interferências Sincronismo entre fios é exigência Difícil de garantir em cabos mais longos Computadores estão cada vez menores, porém com poder de computação cada vez maior
FireWire vs SCSI FireWire Único conector que pode tratar de diversos dispositivos através de uma única porta Mouse, impressora a laser, unidade de disco externa, som e conexões de rede local usariam este mesmo conector
Configurações de FireWire Daisy chain Até 63 dispositivos sobre uma única porta Até 1022 barramentos podem ser conectados entre si usando pontes = tantos periféricos quanto necessário Hot plugging Configuração automática Podem ser estruturados na forma de árvores
Configurações de FireWire
FireWire Camadas de Protocolo Física Meios de transmissão permitidos e as características elétricas e de sinalização de cada um Enlace Transmissão de dados nos pacotes Transação Protocolo do tipo Requisição-Resposta Esconde das aplicações os detalhes da camada inferior do FireWire
FireWire Camada Física Taxa de transferência de dados de 25 a 3200Mbps Duas formas de arbitração Baseado na estrutura de árvore Nó raiz da árvore atua como árbitro Primeiro a chegar, primeiro a ser servido Em requisições simultâneas, a prioridade mais alta é dada ao nó mais próximo da raiz (Em caso de empate, prioridade para o ID menor)
FireWire Camada Física Suplementado pela arbitração imparcial e urgente Arbitração imparcial Barramento organizado em intervalos imparciais Flag Arbitration_enable Mais justo pois evita monopólio Arbitração urgente Defini alguns dispositivos como urgentes Podem controlar 75% do tempo de barramento (1 pacote não urgente para cada 3 urgentes)
FireWire Camada de Enlace Dois tipos de transmissão Assíncrona Quantidade variável de dados e diversos bytes são transferidos como um pacote Para um endereço específico Um pacote de confirmação (ACK) é retornado Isócrona Quantidade variável de dados é transferida em uma sequência de pacotes de tamanhos fixos em intervalos regulares Endereçamento simplificado Sem confirmação
FireWire Camadas de Protocolo
InfiniBand Lançada em 2001 Voltada para o mercado de servidores de ponta Permite que servidores, armazenamento remoto e outros dispositivos de rede sejam conectados a switches e links Até 64000 servidores, sistemas de armazenamento e dispositivos de rede
Arquitetura InfiniBand Diferente do PCI, pois não fica ligado ao chassi do servidor Permite servidores mais densos, flexíveis e expansíveis Diferente do PCI que limita dispositivos a alguns centímetros da placa-mãe, o InfiniBand permite dispositivos de E/S a 30 m usando cobre, 300 m usando fibra ótica multimodo e 10 km usando fibra ótica modo único. Até 30 Gbps
Arquitetura InfiniBand Principais Elementos HCA Adaptador do canal do host Única interface HCA substitui série de slots PCI Usa DMA Conecta host ao comutador TCA Adaptador do canal do destino Conecta dispositivos ao comutador Comutador InfiniBand Oferece conexões ponto a ponto para vários dispositivos Direciona o tráfego
Arquitetura InfiniBand Principais Elementos Conexões Conexão entre comutador/adaptador de canal ou comutador/comutador Sub-rede Um ou mais comutadores mais os links que conectam outros dispositivos a estes comutadores Permite limitar transmissões broadcast e multicast Roteador Conecta sub-rede ou um comutador InfiniBand a uma rede
Camadas do InfiniBand Física 3 velocidades de conexão (1X ou 2.5 Gbps, 4X ou 10 Gbps e 12X ou 30 Gbps) Define o meio físico (cobre ou fibra ótica) Enlace Define a estrutura básica do pacote, incluindo esquema de endereçamento e código de detecção de erro Rede Direciona os pacotes entre diferentes sub-redes Transporte Oferece mecanismo de confiabilidade nas transferências ponta a ponta entre uma ou mais sub-redes
Exercícios 1. Quais são as categorias de dispositivos externos? 2. Cite os 3 tipos de E/S existentes 3. Diferencie interface serial e paralela. 4. Cite as vantagens da interface FireWire sobre a SCSI. 5. Quais os principais elementos da interface InfiniBand? Comente.