Escritos
B. Piropo
Anteriores:
< Trilha Zero >
Volte de onde veio
24/08/1992

< Avaliando o Desempenho >


Meu primeiro micro não tinha disco rígido. Nem flexível. Programas eram laboriosamente carregados de um deplorável gravador cassete. Um drive de disquete foi meu primeiro upgrade. Que maravilha! Para quem tinha se acostumado a iniciar a carga de um programa e ir tomar um cafezinho enquanto aquela tralha chupava o código para dentro da máquina, o drive era rápido como quem rouba (o que talvez explique o preço que paguei por ele). Um dia me perguntaram se o acesso a disco de minha máquina era rápido. Ora, que bobagem! Claro que sim! Rapidíssimo! Pois era acesso a disco!

E continuei pensando assim até o dia em que o destino me colocou em frente a um PC. Foi quando descobri que o bicho acessava disco três ou quatro vezes mais depressa que minha velha máquina e percebi a triste relatividade do termo "rápido". E entendi que tempos de acesso a disco podem variar tremendamente.

Pois no que toca a discos rígidos, embora sejam muitíssimo mais rápidos que drives de disquetes, há enormes diferenças entre eles mesmos. Um exemplo: meus IDE acessam dados cinco vezes mais depressa que meu primeiro MFM. E isso, quando se carrega um programa muito grande, quando se usa um aplicativo que acessa disco freqüentemente ou quando se trabalha com Windows ou OS/2, que passam o tempo todo trocando informações da memória para o disco e vice-versa, faz uma diferença brutal no desempenho do sistema.

Por que essas diferenças? Bem, para entendê-las é preciso lembrar como os dados são lidos em um HD. Vejamos o que acontece quando seu programa manda o sistema ler um arquivo em disco.

(Há formas de acelerar esse processo: as mais comuns e eficazes são usar um cache de disco, que armazena na memória parte das informações do disco, e programas desfragmentadores, que "juntam" os clusters dos arquivos fragmentados. Mas por ora, vamos ficar no básico mesmo.)

Primeiro, o sistema consulta o diretório: a cabeça de leitura é movida até a trilha onde ele está gravado e lê a localização do cluster que contém o primeiro setor do arquivo. Depois é deslocada para a trilha da tabela de alocação de arquivos para descobrir onde estão os outros. Finalmente, salta para a trilha do primeiro setor, lê os dados, e vai pulando de cluster em cluster para ler os demais (um cluster é um grupo de setores usado como menor unidade de armazenamento de arquivos). Se o arquivo for grande ou "fragmentado" (disperso por muitos clusters em trilhas não contíguas), a cabeça fica saltando de um lado para outro até que todo o arquivo seja lido. E esse vai-e-vem toma tempo. Quanto tempo? Bem, depende do HD. Em um velho MFM ou RLL de 5" 1/4, com suas trilhas espalhadas em uma grande superfície, o processo é mais lento que nos novos IDE, com muito mais trilhas comprimidas em uma face de apenas 3" 1/2: a menor distância entre trilhas reduz o tempo gasto para se deslocar entre elas.

O tempo médio que a cabeça leva para se deslocar entre duas trilhas quaisquer, escolhidas ao acaso, pode ser medido. Geralmente é expresso em milissegundos e denomina-se "Average Access Time" (tempo médio de acesso). Este é o índice mais importante a ser considerado para avaliar o desempenho de um disco. Nos primeiros HD, variava de 85ms a 115ms. Nos MFM e RLL mais novos, valores típicos se situam em torno dos 60ms. Os mais rápidos chegam a 28ms, o que parece ser o limite inferior para esses discos. Já os IDE apresentam valores típicos na faixa dos 20ms, os mais rápidos atingindo a 13ms. Um desempenho cerca de dez vezes superior ao dos primeiros MFM. (Não confunda "Average Access Time" com "Average Seek Time", ou tempo médio de busca: este último é o tempo médio de deslocamento entre duas trilhas adjacentes, varia de 3ms a 8ms e é muito menos significativo que o primeiro, já que nem sempre os dados estarão tão "arrumadinhos" no disco).

Há ainda um outro parâmetro, a latência média (Average Latency), que mede o tempo médio que a cabeça deve esperar, depois que se posicionou sobre a trilha, até que o setor desejado "passe" sob ela para ser lido. Na prática isso corresponde ao tempo necessário para que o disco gire meia volta (pense um pouco que logo vai descobrir porque). Quase todos os HD, independentemente do tipo, giram a 3600RPM, o que corresponde a uma latência média de 8ms. Alguns IDE, no entanto, giram mais rápido podem chegar a 7ms. Seja como for, a diferença não é significativa a ponto de ser considerada como fator de decisão para a escolha de um HD.

Finalmente, há um último e, este sim, cada vez mais importante índice de desempenho: a taxa de transferência (Transfer Rate), que tem muito mais a ver com a interface que com o disco propriamente dito, já que mede a velocidade com que os dados, depois de lidos, são transferidos do disco para o sistema. Se a interface usa uma memória intermediária (buffer) para armazenar dados lidos do disco antes de transferi-los para o sistema, esta taxa pode ser dividida em "externa" e "interna", (a interna mede a transferência do disco para o buffer, a externa do buffer para o sistema). A mais importante é a menor das duas, por razões evidentes: ela funciona como um "gargalo" e limita o desempenho global.

Como vimos, a taxa de transferência depende primordialmente da interface (e do esquema de codificação). Discos MFM chegam a transferir 625K por segundo. Os RLL, graças a um esquema de codificação mais compacto, chegam a 940K por segundo. E deles não se pode esperar muito mais, já que sua própria geometria impede que valores muito mais altos sejam alcançados: o máximo teórico é de 1,1Mb por segundo. Essa faixa era perfeitamente aceitável para as lentas máquinas antigas: não adianta transferir dados mais depressa do que o sistema pode processá-los. Hoje, com CPUs trabalhando a 33MHz ou mais, a coisa ficou crítica (por isso o "cada vez mais importante" lá de cima): se a taxa de transferência for lenta, o sistema terá que ficar esperando os dados chegarem para poder processá-los. Os modernos IDE atingem facilmente a taxas de 1 a 1,5Mb por segundo, e com a evolução tecnológica espera-se que valores ainda maiores sejam alcançados: os atuais estão abaixo da metade do limite teórico deste tipo de interface.

Pronto. O que havia de mais importante está aí. Agora já temos quase todos os elementos que nos permitirão escolher o disco certo para a máquina certa.

B. Piropo