Escritos
B. Piropo
Anteriores:
< Trilha Zero >
Volte de onde veio
29/01/1996
< EIDE e Fast ATA XII: >
< Modos PIO e DMA >

Uma das vantagens do padrão ATA é sua transparência, que torna desnecessário um driver especial para discos IDE. Isto só é possível porque o padrão é definido e suportado não apenas pela interface mas também pelo próprio pelo BIOS. Portanto, para implementar o padrão foi preciso introduzir modificações nos BIOS dos micros da linha PC. Como vimos semana passada, o sistema operacional "chama" as rotinas de acesso a disco escrevendo os parâmetros necessários nos registradores da CPU e acionando a Int 13h. Assim, para tornar uma placa-mãe compatível com o padrão ATA, basta modificar as rotinas contidas no ROM-BIOS. Feitas estas modificações, como toda a eletrônica de controle foi levada para junto do drive, a "placa controladora IDE" se reduz a quase nada: um par de buffers bidirecionais e um decodificador de endereços. E como a maioria das placas-mãe modernas já incorporam estes componentes, nem é mais necessário "gastar" um slot para a placa IDE: o cabo de dados do drive pode ser conectado diretamente à própria placa-mãe.

O problema é que quando o padrão ATA foi implementado havia milhões de placas-mãe com ROM-BIOS não compatíveis com ele. Mas a solução foi simples: incluir nas primeiras controladoras IDE uma "extensão do BIOS", um chip de memória ROM com as rotinas necessárias para adaptar os antigos BIOS ao novo padrão. Essa técnica, usada em placas controladoras de dispositivos que precisam acrescentar rotinas ao ROM-BIOS como as controladoras SCSI e as velhas ST-506/412, é comum nos micros da linha PC (tão comum que está sendo empregada novamente para conectar dispositivos ATA que obedecem às recentes modificações do padrão denominadas Fast-ATA e EIDE às placas-mãe que não as incorporam, como veremos mais tarde).

Hoje é difícil encontrar um disco rígido que não seja ATA em um PC, um feito notável para um padrão relativamente recente e que mostra uma aceitação extraordinária por parte do mercado. Uma aceitação que não se deve apenas ao fato dos dispositivos ATA serem mais simples e mais baratos que os dos padrões anteriores (inclusive o ESDI), mas sobretudo porque são mais rápidos. Muito mais rápidos.

Conforme as especificações do padrão ATA, os acessos a disco solicitados pelo BIOS são executados pela controladora integrada ao drive. Assim, o modo pelo qual se efetua a transferência de dados entre disco e memória, assim como a rapidez com que isto é feito (taxa de transferência), são ditados pelo hardware da controladora e estabelecidos pelas proprias especificações do padrão ATA.

Os tipos (ou "modos") de transferência de dados aceitos pelo padrão são PIO e DMA.

O modo PIO (Programmed I/O, ou entrada e saída programada) é uma forma de acesso a disco efetuada com ajuda da CPU. Originalmente o padrão ATA estabelecia três modos PIO (PIO 0, PIO 1 e PIO 2) cuja diferença básica era a taxa na qual os dados eram transferidos. Mais tarde foram criados os modos PIO 3 e PIO 4.

O modo DMA (Direct Memory Access ou acesso direto à memória) transfere dados entre disco e memória sem interferência da CPU, que fica liberada para outras tarefas. Em sistemas realmente multitarefa, como OS/2 e Unix, a CPU tem mais o que fazer nessas ocasiões e efetivamente faz. Mas em ambientes DOS/Windows ela apenas espera, e nestes sistemas a utilidade do modo DMA é questionável. O padrão original previa um único modo DMA, o DMA 0. Mais tarde foram incorporados os modos DMA 1 e 2, que também diferem apenas quanto às taxas de transferência.

Em um dado momento há apenas dois modos ativos, um PIO, outro DMA, selecionados via comando. São os modos correntes e a transferência será feita sempre em um deles. Normalmente ela é feita no modo PIO e somente se dará no modo DMA se for especificamente solicitada através dos comandos Read DMA ou Write DMA.

Semana que vem veremos as diferenças entre os diversos modos e suas taxas de transferência máximas teóricas. Mas antes convém salientar um ponto importante: um drive lento é um drive lento e nenhuma interface pode torná-lo mais rápido. Se o fator limitante é a gravação ou leitura física de dados no meio magnético (o que freqüentemente é o caso e nada tem a ver com a interface, mas com a "engenharia" do drive), a única maneira de acelerar o processo é trocar o drive por um mais rápido. As taxas de transferência dos modos PIO e DMA que veremos adiante são limites máximos teóricos e pouco têm a ver com o desempenho do drive na vida real. Elas refletem apenas as taxas máximas nas quais os dados poderiam fluir no barramento caso drive e memória fossem capazes de, fisicamente, abastecer um ao outro com a rapidez necessária para alcançá-las. E durante a operação normal os drives fazem muito mais que enviar dados via barramento: cada setor transferido tem que ser lido ou gravado no meio magnético, a controladora precisa processar internamente os comandos, atualizar tabelas internas (como a FAT e diretórios) e processar informações sobre posicionamento das cabeças. Tudo isso consome tempo e reduz a taxa efetiva de transferência. Portanto, não espere que os dados fluam efetivamente entre seu disco e memória nas taxas que veremos semana que vem. Entenda-as apenas como limites máximos, característicos dos diferentes modos aceitos pelo padrão ATA.

Pronto, isto encerra tudo o que precisávamos saber sobre o padrão ATA original. Agora já estamos prontos para entrar no verdadeiro tema desta série: as interfaces Enhanced IDE e Fast ATA. Mas não se assuste, que estamos relativamente perto do final. E, como sabemos, este não é o primeiro caso - nem será o último - em que os entretantos gastaram muito mais tempo e espaço que os finalmentes.

B. Piropo