Organização de Computadores Antônio Borges / Gabriel P. Silva 8. Entrada e Saída 8.1. Introdução As unidades que compõem o modelo de barramento de sistema são o processador, a memória e entrada/saída. Neste capítulo iremos apresentar maiores detalhes sobre a unidade de entrada e saída (E/S). A unidade de entrada/saída é uma abstração que é composta pelas interfaces de entrada e de saída. Através das interfaces de entrada os dados necessários para a computação são transferidos para o computador e, depois de codificados no formato binário, serão adequadamente processados. Com o uso das interfaces de saída todo o resultado da computação pode ser armazenado ou colocado à disposição do usuário sob a forma de texto, som, imagem ou meios digitais removíveis, como fita, cd-rom, etc. Algumas interfaces, como por exemplo placa de áudio, possuem tanto a função de entrada (microfone) como a de saída (caixas de som) de dados. Nos modernos sistemas operacionais o usuário não pode realizar as operações de entrada/saída diretamente, mas somente através do sistema operacional. Este procedimento é utilizado porque os programas encarregados de realizar a interface com os dispositivos de entrada e saída (os “drivers”) são parte integrante do sistema operacional. Como conseqüência temos uma maior segurança nas operações de E/S, já que um usuário não pode fazer um acesso indevido, por exemplo, aos arquivos de um outro usuário. As interfaces de entrada e saída recebem também o nome de periféricos e se interconectam com o processador através de barramentos. Ao contrário do que se poderia imaginar, a maioria dos periféricos não se conectam diretamente ao barramento de sistema. Para essa conexão são utilizados barramentos, especializados, de entrada e saída. Isso é necessário porque cada tipo de periférico tem características particulares, como por exemplo taxa de transmissão/recepção de dados. Portanto, deve haver um padrão específico de barramento de E/S mais adequado para cada periférico. Assim, é necessário que o computador disponha de diversos padrões de barramentos de E/S para permitir a conexão de diversos tipos de periféricos ao computador. O padrão de barramento utilizado depende das características do periférico, tais como velocidade e volume de dados que precisam ser transferidos de/para o periférico a cada instante e até mesmo da época em que o periférico foi produzido, já que alguns padrões de barramento são muito recentes. Qualquer que seja o barramento de E/S escolhido, deverá haver um componente no computador para fazer a interligação entre os diversos tipos de barramento de entrada/saída e o barramento do sistema, onde estão conectados o processador e a memória principal. 8.2. Comunicação com o Processador A ponte é o dispositivo que faz a interligação entre barramentos com padrões diferentes e com o processador. Esta situação é ilustrada no diagrama a seguir: Organização de Computadores Antônio Borges / Gabriel P. Silva Figura 21 – Pontes de Barramenteos No caso acima existe uma ponte que interliga o barramento do sistema a outros dois barramentos com padrões distintos, no caso o PCI e o AGP. Uma outra ponte faz interligação entre o barramento com padrão PCI (mais moderno) e o padrão ISA (mais antigo). Nós estudaremos os diversos padrões de barramento com mais detalhes adiante. O sistema operacional controla toda a atividade de entrada e saída através de rotinas executadas no processador. Nenhuma operação de entrada e saída pode ser realizada sem que seja autorizada pelo sistema operacional, ou seja, pelo processador. Ao término de toda operação de entrada, o processador deve ser notificado para que os dados recebidos sejam convenientemente tratados. Antes de toda operação de saída, os dados devem ser preparados e os periféricos programados convenientemente. O processador tem várias maneiras para saber se uma determinada tarefa solicitada a um periférico foi realizada: O processador verifica periodicamente registradores especiais nos periféricos para saber se a operação foi completada. É o que é chamado “loop de status“ ou “polling”. Ao final da operação, o periférico ativa um sinal especial no barramento de E/S, que é enviado ao processador, fazendo com que este desvie para uma rotina no núcleo do Organização de Computadores Antônio Borges / Gabriel P. Silva sistema operacional, para executar uma rotina de tratamento. Esta forma de notificação recebe o nome de interrupção. O modo de notificação por interrupção é utilizado quando um programa transfere grandes volumes de dados e o tempo entre o início e o término da operação de E/S é longo. Deste modo o processador pode executar outros programas especificados pelo sistema operacional e, quando da chegada da interrupção, a execução do programa original é retomada. O modo de “polling” é utilizado em ambientes em que haja apenas um programa em execução, ou quando o tempo entre o início e o término da operação é muito curto, ou quando o periférico não tem possibilidade de utilizar a interrupção. Quando um arquivo é lido do disco, o seu conteúdo é transferido para a memória principal, antes que possa ser processado ou transmitido para um outro dispositivo, como o disquete ou interface de rede. Quando as informações que estão na memória do computador precisam ser transferidas de/para um periférico, também há duas maneiras principais de realizar essa transferência: O processador realiza esta operação, lendo os dados de registradores especiais do dispositivo de E/S para a memória ou vice-versa. Um componente de “hardware”, chamado de controlador de DMA (Acesso Direto à Memória), é programado pelo processador como endereço de memória de/para onde estão serão lidos/escritos, com o tamanho total de bytes a serem transferidos e para/de qual periférico serão escritos/lidos. Figura 22 – Modos de Transferência O uso de DMA oferece maior desempenho para as transferências de grande volume de dados, enquanto que o primeiro método é mais adequado quando o volume de dados é pequeno. 8.3. Barramentos de E/S Os dispositivos de entrada e saída podem ser de diversos tipos: teclado, mouse, vídeo, disco, impressora, áudio, etc. Para cada tipo de dispositivo existe um barramento mais adequado que é escolhido considerando-se fatores como a taxa necessária para a transmissão das informações (Mbytes/s); se o barramento será compartilhado por mais de um dispositivo ou não; se há necessidade do uso de linhas de interrupção; etc. Organização de Computadores Antônio Borges / Gabriel P. Silva Assim como o barramento do sistema, os barramentos de E/S são compostos por barramentos de endereço, de dados e de controle. A largura em bits de cada um deles varia de acordo como padrão utilizado. Variam também com relação a uma série de outros parâmetros, que são utilizadas para a classificação dos barramentos, que são apresentados a seguir: Os barramentos síncronos são aqueles que possuem um sinal de relógio em suas linhas de controle que determina que os dados sejam transmitidos em intervalos de tempo definidos. Os barramentos assíncronos não possuem sinal de relógio. Os dados são transmitidos mediante um protocolo implementado por sinais de controle e podem levar tempos diferentes para serem transmitidos. Hoje em dia a tendência é a utilização dos barramentos síncronos, porque apresentam um melhor desempenho (taxa de transferência) que os barramentos assíncronos. Figura 23 - Barramento AssíncronoFigura 24 - Barramento Síncrono Quando o barramento é compartilhado por diversos periféricos, é preciso organizar o acesso ao barramento, ou seja, que dispositivo vai poder fazer uso naquel momento do barramento. Isto é feito com a implementação de árbitros, que podem ser centralizados ou distribuídos. Os barramentos com árbitros centralizados, como o nome já indica, possuem um único árbitro que recebe todos os pedidos, que são feitos através de linhas especiais do barramento. Segundo critérios diversos, tais como a prioridade de cada dispositivo, tempo do último acesso, etc., o uso do barramento será concedido a um ou outro dispositivo. Os barramentos com árbitros descentralizados realizam as mesmas funções, mas o controle de arbitragem está distribuído pelos diversos dispositivos que estão conectados ao barramento. Os barramentos de endereços e dados podem ainda utilizar linhas distintas ou compartilhadas em um mesmo barramento. Quando as mesmas linhas do barramento são utilizadas, ora para a transmissão de dados, ora para a transmissão de endereços, diz-se que o barramento é multiplexado. Em caso contrário, ou seja, quando existem linhas separadas para os sinais de endereço e de dados, diz-se que o barramento é não-multiplexado. Organização de Computadores Antônio Borges / Gabriel P. Silva O uso de barramento não multiplexados exige um número maior de linhas, ou seja, fios para a transmissão dos sinais, que muitas vezes não está disponível. Se o barramento pode operar com modos de transferência em bloco (rajada), onde a partir de um endereço inicial vários dados são transferidos, é comum encontramos o uso do barramento multiplexado. A taxa de transmissão de um barramento de E/S é diretamente proporcional à largura em bytes do seu barramento de dados e à velocidade com uma transferência é realizada através do barramento. No caso dos barramentos síncronos é usual encontramos que a taxa de transmissão seja obtida com a multiplicação da freqüência do relógio pela largura em bytes do seu barramento de dados. Quanto maior for a taxa de transmissão, maior será o desempenho de um barramento Os vários fatores que influenciam o desempenho do barramento são: Largura do barramento de dados: 8, 16, 32 ou 64 bits; Multiplexação ou não das linhas de dados e endereço; Uso ou não de transferências em bloco (em rajada); Freqüência do relógio; Comprimento máximo do barramento; Vários são os padrões possíveis para os barramentos de E/S, a seguir relacionamos alguns padrões de barramentos bastante difundidos: ISA: Industry Standard ArchitecturePCI: Peripheral Component InterconnectIDE: Integrated Drive Electronics SCSI: Small Computer System InterfaceAGP: Accelerated Graphics Port 8.3.1. Padrão ISA O padrão ISA foi o primeiro padrão de barramento de E/S utilizado nos computadores do tipo IBM/PC, lançado em 1981. É um barramento síncrono, com freqüência de 4.77 ou 8 MHz, não multiplexado, com uma largura de dados de 8 bits em sua versão inicial, que depois foi expandida para 16 bits, quando do lançamento do IBM PC/AT em 1984. Permitia o uso de interrupção para os periféricos se comunicarem com o processador, além de suportar transferências com o uso de DMA. O conector ISA na realidade é um conjunto de dois conectores um 62 pinos e o outro com 36 pinos. Figura 25 – Conector do barramento ISA 8.3.2. Padrão PCI O padrão PCI foi introduzido nas versões mais recentes dos computadores compatíveis com o IBM/PC, sendo também utilizado em computadores de outras marcas, como os do tipo Mac e Sun. O barramento PCI é um barramento síncrono, com freqüências de relógio de 33 e 66 Mhz, com barramento multiplexado para dados e endereços. Existem versões com 32 ou 64 bits de largura de dados. Como todo o barramento moderno, o PCI tem suporte para interrupção e permite que múltiplos dipositivos possam fazer uso do barramento para iniciar transferências de dados, além do processador. Organização de Computadores Antônio Borges / Gabriel P. Silva O PCI trata todas as transferências como transferências em bloco. Cada ciclo começa com uma fase de endereço seguida por uma ou mais fases de dados. As fases de dados podem se repetir indefinidamente, mas são limitadas por um temporizador que define o máximo perído de tempo que um dispositivo pode controlar o barramento. Largura Multiplexado Arbitragem Síncrono Freqüencia do Relógio Taxa de Transferência Comprimento Máximo 32 ou 64 bits SIM Centralizada SIM 33 a 66 Mhz 132 a 528 MBytes/s 0,5 m Figura 25 – Características do PCI Figura 26 – Barramento PCI 8.3.3. Padrão SCSI O padrão SCSI (Small Computer System Interface) foi criado com a finalidade de oferecer um padrão de alto desempenho para transferência de dados para periféricos nos microcomputadores. Uma de suas características é permitir a ligação de dispositivos de vários tipos (fitas, discos, etc.) simultaneamente ao barramento. A maior distância de ligação dos periféricos ao computador é de alguns metros, o que permite a colocação dos dispositivos fora do gabinete do computador. O barramento SCSI oferece ainda dois modos de conexão: síncrono e assíncrono, sendo o modo síncrono é utilizado para a transferência em bloco de dados e o assíncrono para comandos e pequeno volume de dados. Este padrão vem evoluindo bastante desde a sua criação de modo a oferecer taxas de transferências cada vez maiores, mantendo-o à frente em termos de desempenho dos padrões de barramento concorrentes, entre eles o IDE. O barramento Ultra 320 SCSI, finalizado em 2001, veio para manter o SCSI à frente do barramento IDE em termos de velocidade, já que o ATA 133, com uma largura de banda de 133 MB/s já havia chegado muito perto do padrão anterior. O Ultra 320 SCSI é destinado apenas a servidores, pois as placas utilizam obrigatoriamente slots PCI de 64 bits e 66 MHz (que transmitem a 533 MB/s), que não são encontrados em placas destinadas a Organização de Computadores Antônio Borges / Gabriel P. Silva PCs domésticos. Os requisitos de cabeamento são os mesmos do Ultra 160 SCSI, o que permite a substituição direta de uma placa pela outra. Tipos SCSI SCSI 2 Ultra SCSI Ultra 2 SCSI 8-bit (Fast) 8-bit (Ultra) 16-bit 16-bit (Fast/Wide) 16-bit (Ultra Wide) 10 MB/s 20 MB/s 80 MB/s Taxa de 40 MB/s Transferência 20 MB/s Barramento Dispositivos Suportados 7 7 15 Ultra 160 Ultra 320 SCSI SCSI 16-bit 16-bit 160 MB/s 320 MB/s 15 15 Tabela 4 – Evolução do SCSI Característica Largura Multiplexado Arbitragem Relógio Banda Passante Comprimento SCSI 8 a 32 bits SIM Distribuída Assíncrono/Síncrono (5 - 160 Mhz) 5 a 320 MB/s (sincr.) 25 metros Tabela 5 – Caracterísiticas do SCI 8.3.4. Barramento IDE/ATA O barramento IDE surgiu especificamente para possibilitar a ligação de discos rígidos dentro dos gabinetes dos computadores com os respectivos processadores. Possui diversos modos de transferência de dados. No modo PIO as transferências de dados são realizadas pelo processador. O modo PIO determina a velocidade de transferência de dados de/para o disco: O modo mais lento é o modo 0, onde o ciclo de dados não pode exceder 600 ns. Considerando que 2 bytes são transferidos em um ciclo, a taxa máxima de transferência no modo PIO 0 é de 3,3 MB/s. No barramento IDE/ATA, no modo 1 o ciclo máximo é de 383 ns; no modo 2, de 240 ns. No barramento ATA-2, no modo 3 o ciclo máximo é de 180 ns; no modo 4 é de 120 ns. O modo DMA (Acesso Direto à Memória) significa que os dados são transferidos diretamente entre o disco e a memória sem o uso do processador, ao contrário do modo PIO. Alguns discos per- Organização de Computadores Antônio Borges / Gabriel P. Silva mitem o modo de transferência em bloco, onde vários setores são transferidos do disco para a memória sem necessidade de interrupção do processador. Isto diminui a sobrecarga do processador, já que cada interrupção força uma troca de contexto, verificação do dispositivo e preparação de uma nova transferência de dados. O modo de DMA “single word” é de pouca utilidade e está obsoleto no ATA-3. Single word DMA 0 PIO mode 0 Single word DMA 1 Multi word DMA 0 PIO mode 1 PIO mode 2 Single word DMA 2 PIO mode 3 Multi word DMA 1 PIO mode 4 Multi word DMA 2 Ultra DMA 3 (ATA 33) Ultra DMA 4 (ATA 66) Ultra DMA 5 (ATA100) 2.1 MB/s 3.3 MB/s 4.2 MByte/s 5.2 MByte/s 8.3 MByte/s 11.1 MByte/s 13.3 MByte/s 16.6 MByte/s 33.3 MByte/s 66.6 Mbytes/s 100 Mbytes/s Tabela 6 - Características IDE/ATA 8.3.5. Barramento AGP O barramento de padrão AGP foi desenvolvido exclusivamente para interface com o vídeo, já que a taxa de transferência oferecida pelo padrão PCI, que era utilizado anteriormente, não era suficientemente rápido para o processador acessar as informações contidas na memória das modernas interfaces de vídeo. O barramento AGP é um padrão que permite que placas de vídeo tenham acesso diretamente à memória principal do computador, onde informações de vídeo estão armazenadas. A taxa de transferência obtida entre a placa de interface vídeo e a memória principal do computador dependerá do modo de operação do barramento AGP, que depende tanto do tipo da ponte de barramento utilizada como também da placa de interface de vídeo. Interface PCI Relógio 33 Mhz Largura de Banda 132 MB/s Comparação 1.0 AGP, 1x AGP, 2x AGP, 4x AGP, 8x 66 MHz 66 MHz 66 MHz 66 Mhz 264 MB/s 528 MB/s 1056 MB/s 2133 MB/s 2.0 4.0 8.0 16.0 Tabela 7 - Padrão AGP Apesar da velocidade do barramento AGP 8x ser muito menor que a velocidade da memória de vídeo das placas mais atuais, esta nova versão do AGP significa um grande ganho de desempenho para as interfaces de vídeo montadas na placa mãe, que utilizam memória principal compartilhada como memória de vídeo. Organização de Computadores Antônio Borges / Gabriel P. Silva Figura 26 - Transferência via AGP Para o uso do padrão AGP 8X ou 4X possa ser eficaz, é necessário que a memória principal do processador utilize memórias do tipo DDR ou RAMBUS, que possuem velocidade adequada para permitir que as altas taxas de transferências destes barramentos. Em caso contrário, as mesmas poderão se tornar gargalos e limitar em valores menores as taxas de transferência de dados. 8.4. Disco Rígido Nesta seção procuraremos explicar como os dados são organizados nos discos rígidos e falar um pouco sobre a sua organização interna, em termos de cabeça, cilindros e superfícies. A figura abaixo apresenta um esquemático desta organização: Organização de Computadores Antônio Borges / Gabriel P. Silva Figura 27 - Disco Rígido Organização de Computadores Antônio Borges / Gabriel P. Silva Ou seja, um disco rígido é um conjunto de discos com superfícies recobertas com material magnético, onde são armazenados os dados no formato binário. Pequenas partículas de material magnético são orientadas em uma ou outra polaridade, correspondendo ao zero e um lógicos. Cada disco tem duas superfícies, e em cada uma destas superfícies existem trilhas concêntricas, igualmente espaçadas, correspondendo ao raio mais externo até o raio mais interno do disco. Estas trilhas, por sua vez, estão divididas em setores, e cada setor pode armazenar um determinado número de bytes. Os discos, devido a sua geometria circular, possuem mais setores nas trilhas exteriores, já que essas possuem um comprimento maior do que as trilhas mais internas. Mas o programador, convenientemente, enxerga uma geometria "cúbica" do disco. É feita uma tradução da geometria interna de CHS (cilindros, cabeças e setores), para um padrão em que cada trilha possui 63 setores, e cada setor tem 512 bytes. Os discos mais novos têm uma interface muito mais simples. Em vez de reportar-se aos setores por seu endereço CHS (cilindros, cabeças e setores) usam a modalidade LBA (Logical Block Addressing). Na modalidade LBA, um programa tem que especificar somente o número do setor em relação ao começo do disco (todos os setores no disco são numerados seqüencialmente: 0, 1, 2, 3...). O sistema operacional precisa guardar os arquivos de uma forma organizada. Normalmente os discos são divididos em partições, que podem conter diferentes sistemas de arquivos e diferentes sistemas operacionais. O primeiro setor de um disco no padrão do IBM/PC é chamado de MBR (Master Boot Record) e contém a tabela de partição. Esta tabela tem quatro registros, cada um podendo descrever uma partição. A figura abaixo ilustra um MBR: Figura 28 - Master Boot Record No exemplo abaixo o “boot sector” começa apenas na trilha de número 1. São deixados 62 setores sem uso na trilha 0 para forçar o início de uma partição coincidir com o início de uma trilha. O tipo da partição indica qual sistema de arquivos que está contido na mesma. Organização de Computadores Antônio Borges / Gabriel P. Silva Figura 29 - Disco particionado com FAT O diretório raiz mantém os ponteiros para os diretórios, arquivos e outros diretórios que possam estar contidos no disco. Os “clusters” são a unidade mínima de alocação e podem conter vários setores. O tamanho do “cluster” varia de acordo como tamanho do disco e do sistema operacional. A FAT contém a tabela de alocação dos “clusters” do disco, indicando quais os que estão livres, ocupados ou danificados. Organização de Computadores Antônio Borges / Gabriel P. Silva Figura 30 - Disco com duas partições FAT Organização de Computadores Antônio Borges / Gabriel P. Silva Figura 31 - Disco com partições FAT e Linux