O primeiro disco rígido (o IBM 350) foi construído em 1956 e era formado por um conjunto de nada menos que 50 discos de 24 polegadas de diâmetro, com uma capacidade total de 4.36 MB (5 milhões de caracteres, com 7 bits cada um), algo espantoso para a época. Comparado com os discos atuais, este pioneiro custava uma verdadeira fortuna: 35 mil dólares. Porém, apesar de inicialmente serem extremamente caros, os discos rígidos foram tornando-se populares nos sistemas corporativos, pois forneciam um meio rápido de armazenamento de dados. Foram produzidas cerca de 1000 unidades do 350 entre 1956 e 1961, quando a produção foi descontinuada em favor de versões mais modernas. Esta foto rara, cortesia do museu digital da IBM dá uma idéia das suas dimensões:
Como você pode ver, o IBM 350 não era exatamente um "disco rígido" dentro da concepção que temos hoje em dia. O gabinete tinha 1.70 metros de altura e quase o mesmo de comprimento e pesava quase uma tonelada.
Na época ele era chamado de "unidade de disco" (termo ainda usado hoje em dia por alguns) e podia ser acoplado a diversos computadores produzidos pela IBM. O termo "disco rígido" só surgiu duas décadas depois, junto com os modelos mais compactos.
De lá pra cá, tivemos uma evolução notável. Hoje em dia os HDs já ultrapassaram a marca de 1 TB, utilizam gravação perpendicular e interfaces SATA 300. São brutalmente mais rápidos que os modelos antigos e também mais baratos. Mesmo com o barateamento da memória Flash, os HDs ainda continuam imbatíveis na hora de armazenar grandes quantidades de dados.
Dentro do disco rígido, os dados são gravados em discos magnéticos, chamados de platters. O nome "disco rígido" vem justamente do fato de os discos internos serem extremamente rígidos. Os platters são compostos de duas camadas. A primeira é chamada de substrato, e nada mais é do que um disco metálico, feito de ligas de alumínio. Mais recentemente, alguns fabricantes passaram a utilizar também vidro, que oferece algumas vantagens, como a maior dureza, embora também seja mais difícil de se trabalhar. Os primeiros HDs com discos de vidro foram os IBM Deskstar 75GXP, lançados em 2001. Independentemente do material usado, o disco precisa ser completamente plano. Como os discos giram a grandes velocidades e as cabeças de leitura trabalham extremamente próximas da superfície magnética, qualquer variação seria fatal. Para atingir a perfeição necessária, o disco é polido em uma sala limpa, até que se torne perfeitamente plano. Vem então a parte final, que é a colocação da superfície magnética nos dois lados do disco. Como a camada magnética tem apenas alguns microns de espessura, ela é recoberta por uma fina camada protetora, que oferece alguma proteção contra pequenos impactos. Os discos são montados em um eixo também feito de alumínio, que deve ser sólido o suficiente para evitar qualquer vibração dos discos, mesmo a altas rotações. Este é mais um componente que passa por um processo de polimento, já que os discos devem ficar perfeitamente presos e alinhados. No caso de HDs com vários discos, eles são separados usando espaçadores, novamente feitos de ligas de alumínio. Finalmente, temos o motor de rotação, responsável por manter uma rotação constante. O motor é um dos maiores responsáveis pela durabilidade do disco rígido, pois uma grande parte das falhas graves provém justamente do motor. Os HDs mais antigos utilizavam motores de 3.600 rotações por minuto, enquanto que atualmente são utilizados motores de 5.400, 7.200 ou 10.000 RPM.
Nos HDs de notebook ainda são comuns motores de 4.200 RPM, mas os de 5.400 RPM já são maioria.
Embora não seja o único, a velocidade de rotação é sem dúvida o fator que influencia mais diretamente no desempenho. Para ler e gravar dados no disco, são usadas cabeças de leitura eletromagnéticas (heads) que são presas a um braço móvel (arm), o que permite seu acesso a todo o disco. O braço de leitura é uma peça triangular, também feita de ligas de alumínio, para que seja ao mesmo tempo leve e resistente. O mecanismo que movimenta o braço de leitura é chamado de actuator. Nos primeiros discos rígidos, eram usados motores de passo para movimentar os braços e cabeças de leitura. Eles são o mesmo tipo de motor usado nos drives de disquete, onde ao receber um impulso elétrico o motor move o braço por uma curta distância, correspondente ao comprimento de uma trilha. O problema é que eles eram muito suscetíveis a problemas de desalinhamento e não permitiam densidades de gravação muito altas. Os discos contemporâneos (qualquer coisa acima de 80 MB) utilizam um mecanismo bem mais sofisticado para essa tarefa, composto por um dispositivo que atua através de atração e repulsão eletromagnética, sistema chamado de voice coil. Basicamente temos um eletroímã na base do braço móvel, que permite que a placa controladora o movimente variando rapidamente a potência e a polaridade do ímã. Apesar de parecer suspeito à primeira vista, esse sistema é muito mais rápido, preciso e confiável que os motores de passo. Para você ter uma idéia, os HDs do início da década de 80, com motores de passo, utilizavam apenas 300 ou 400 trilhas por polegada, enquanto um Seagate ST3750640AS (de 750 GB) atual utiliza nada menos do que 145.000. Aqui temos um diagrama mostrando os principais componentes do HD:
Para que o HD possa posicionar a cabeça de leitura sobre a área exata referente à trilha que vai ser lida, existem sinais de feedback gravados na superfícies do disco, que orientam o posicionamento da cabeça de leitura. Eles são sinais magnéticos especiais, gravados durante a fabricação dos discos (a famosa formatação física), que são protegidos através de instruções de bloqueio incluídas no firmware do HD contra alteração posterior. Esses sinais eliminam os problemas de desalinhamento que existiam nos primeiros HDs. Ao ler um arquivo, a controladora posiciona a cabeça de leitura sobre a trilha onde está o primeiro setor referente a ele e espera que o disco gire até o setor correto. Este tempo inicial, necessário para iniciar a leitura, é chamado de tempo de acesso, e mesmo os HDs atuais de 7.200 RPM fica em torno de 12 milésimos de segundo, o que é uma eternidade em se tratando de tempo computacional. O HD é relativamente rápido ao ler setores seqüenciais, mas ao ler vários pequenos arquivos espalhados pelo HD, o desempenho pode cair assustadoramente. É por isso que existem programas desfragmentadores, que procuram reorganizar a ordem dos arquivos, de forma que eles sejam gravados em setores contínuos. Outro dado interessante é a maneira como as cabeças de leitura lêem os dados, sem tocar na camada magnética. Se você tiver a oportunidade de ver um disco rígido aberto, verá que, com os discos parados, as cabeças de leitura são pressionadas levemente em direção ao disco, tocando-o com uma certa pressão. Aqui temos o braço de leitura de um HD, depois de removido. Veja que mesmo sem o disco magnético entre elas, as duas cabeças de leitura pressionam-se mutuamente:
Apesar disso, quando os discos giram à alta rotação, forma-se uma espécie de colchão de ar, que repele a cabeça de leitura, fazendo com que ela fique sempre a alguns nanômetros de distância dos discos.
É o mesmo princípio utilizado na asa de um avião; a principal diferença neste caso é que a cabeça de leitura é fixa, enquanto os discos é que se movem, mas, de qualquer forma, o efeito é o mesmo. Como veremos a seguir, os HDs não são fechados hermeticamente, muito menos a vácuo, pois é necessário ar para criar o efeito. Esta foto mostra a cabeça de leitura "flutuando" sobre o disco em movimento. A distância é tão curta que mesmo ao vivo você tem a impressão de que a cabeça está raspando no disco, embora na realidade não esteja.
Os discos magnéticos são montados diretamente sobre o eixo do motor de rotação, sem o uso de correias ou qualquer coisa do gênero. É justamente este design simples que permite que os discos girem a uma velocidade tão grande. Embora mais potente e muito mais durável, o motor de rotação usado nos HDs é similar aos usados nos coolers. Nos HDs antigos, eram usados motores sleeve bearing, o sistema mais simples e menos durável, que foi usado nos HDs de 3600 RPM. Em seguida, foram adotados motores ball-bearing, onde são usados rolamentos para aumentar a precisão e a durabilidade.
Nos HDs modernos, é utilizado o sistema fluid-dynamic bearing, onde os rolamentos são substituídos por um fluído especial, que elimina o atrito, reduzindo o ruído e o nível de vibração. Aqui temos o mesmo HD da foto anterior completamente desmontado, mostrando o interior do motor de rotação:
Assim como a maioria dos modelos de baixa capacidade, este HD utiliza um único disco, mas a maioria dos modelos utiliza dois, três ou quatro, que são montados usando espaçadores. O HD possui duas cabeças de leitura para cada disco (uma para cada face), de forma que um HD com 4 discos utilizaria 8 cabeças de leitura, presas ao mesmo braço móvel. Embora usar mais discos permita construir HDs de maior capacidade, não é comum que os fabricantes utilizem mais de 4, pois a partir daí torna-se muito difícil (e caro) produzir componentes com a precisão necessária para manter todos os discos alinhados. Antigamente, era comum que HDs de alta capacidade (e alto custo :), sobretudo os destinados a servidores, possuíssem 6, ou até mesmo 12 discos, mas eles saíram de moda a partir da década de 90, devido à baixa demanda. Desde então, os fabricantes padronizaram a produção em torno dos HDs com até 4 discos e quem precisa de mais capacidade compra vários e monta um sistema RAID. No caso dos servidores, é muito comum o uso de racks, com um grande número de HDs SAS ou SATA.
Naturalmente, qualquer HD aberto fora de uma sala limpa acaba sendo impregnado por partículas de poeira e por isso condenado a apresentar badblocks e outros defeitos depois de alguns minutos de operação.
Todo HD é montado e selado em um ambiente livre de partículas, as famosas salas limpas. Apesar disso, eles não são hermeticamente fechados. Em qualquer HD, você encontra um pequeno orifício para entrada de ar (geralmente escondido embaixo da placa lógica ou diretamente sob a tampa superior), que permite que pequenos volumes de ar entrem e saiam, mantendo a pressão interna do HD sempre igual à do ambiente. Esse orifício é sempre protegido por um filtro, que impede a entrada de partículas de poeira. Orifício de ventilação do HD
Devido a isso, a pressão do ar tem uma certa influência sobre a operação do HD. Os HDs são normalmente projetados para funcionar a altitudes de até 3.000 metros acima do nível do mar. Em altitudes muito elevadas, a pressão do ar é menor, comprometendo a criação do colchão de ar. Para casos extremos (uso militar, por exemplo), existem HDs pressurizados, que podem trabalhar a qualquer altitude. Internamente, o HD possui um segundo filtro, que filtra continuamente o ar movimentado pelos discos. Ele tem a função de capturar as partículas que se desprendam dos componentes internos durante o uso, devido a desgaste ou choques diversos.
Aqui temos uma foto de um, preso num dos cantos da parte interna do HD:
Filtro interno
Enquanto o HD está desligado, as cabeças de leitura ficam em uma posição de descanso. Elas só saem dessa posição quando os discos já estão girando à velocidade máxima. Para prevenir acidentes, as cabeças de leitura voltam à posição de descanso sempre que não estão sendo lidos dados, apesar dos discos continuarem girando. É justamente por isso que às vezes, ao sofrer um pico de tensão, ou o micro ser desligado enquanto o HD está sendo acessado, surgem setores defeituosos. Ao ser cortada a energia, os discos param de girar e é desfeito o colchão de ar, fazendo com que as cabeças de leitura possam vir a tocar os discos magnéticos. Para diminuir a ocorrência desse tipo de acidente, nos HDs modernos é utilizado um sistema que recolhe as cabeças de leitura automaticamente para a área de descanso quando a energia é cortada (tecnologia chamada de auto-parking). A área de descanso é também chamada de "landing zone" e engloba algumas das trilhas mais centrais do disco, uma área especialmente preparada para receber o impacto do "pouso" das cabeças de leitura.
Uma das tecnologias mais populares é a LZT (Laser Zone Texture), uma tecnologia desenvolvida pela IBM, onde um laser é usado para produzir pequenas cavidades ao longo da zona de pouso, que reduzem o atrito com a cabeça de leitura:
Outra técnica consiste em usar "rampas" feitas de material plástico, posicionadas na área externa dos discos, que suspendem as cabeças de leitura, evitando que elas toquem os discos mesmo quando eles param de girar. Esta tecnologia foi inicialmente usada em HDs de notebook, mas recentemente passou a ser usada também nos de 3.5" para desktops. Ela pode parecer simples, mas na verdade exige bastante tecnologia, devido à precisão necessária:
Rampas de descanso para as cabeças de leitura Apesar de evitar danos físicos, o auto-parking nada pode fazer para evitar perda de dados ao desligar o micro incorretamente. Mesmo que todos os arquivos estejam salvos, ainda existem dados no cache de disco (criado pelo sistema operacional, usando parte de memória RAM) e também no cache do HD, que utiliza memória SDRAM (também volátil).
Para acelerar as operações de gravação, todos os arquivos (sobretudo os pequenos) são salvos inicialmente nos caches e depois transferidos para os discos magnéticos em momentos de ociosidade. Quando o micro é desligado abruptamente, os dados em ambos os caches são perdidos, fazendo com que você sempre perca as últimas alterações, muitas vezes em arquivos que acreditava estarem salvos. Por causa de tudo isso, é sempre importante usar um nobreak em micros de trabalho. A longo prazo, os dados perdidos e possíveis danos ao equipamento por causa de quedas de energia acabam custando muito mais do que um nobreak popular. Mesmo assim, por melhores que sejam as condições de trabalho, o HD continua sendo um dispositivo baseado em componentes mecânicos, que têm uma vida útil muito mais curta que a de outros componentes do micro. De uma forma geral, os HDs para desktop funcionam de forma confiável por de dois a três anos (em um PC usado continuamente). Depois disso, é melhor substituir o HD por um novo e mover o antigo para outro micro secundário, onde ele não vá armazenar informações importantes, pois a possibilidade de defeitos começa a crescer exponencialmente. Fala-se muito sobre a vulnerabilidade dos HDs com relação a ímãs. Como os HDs armazenam os dados em discos magnéticos, colocar um ímã suficientemente forte próximo a ele pode apagar rapidamente todos os dados. Existem inclusive "desmagnetizadores", que são eletroímãs ligados na tomada, que você passa sobre os HDs e outros discos magnéticos, justamente com a intenção de apagar os dados rapidamente. Entretanto, se você abrir um HD condenado, vai encontrar dois ímãs surpreendentemente fortes instalados dentro do mecanismo que move a cabeça de leitura. Naturalmente, estes ímãs não danificam os dados armazenados (senão não estariam ali ;). O principal motivo disso é que eles estão instalados numa posição perpendicular aos discos magnéticos. Se você remover os ímãs e colocá-los sobre outro HD, vai ver que no outro dia uma boa parte dos dados terão sido perdidos. Se você (como todos nós) é do tipo que não consegue desmontar um micro sem deixar cair parafusos nos locais mais inacessíveis do gabinete, tem dificuldades em colocar os parafusos dos dois lados ao instalar o HD e ainda por cima nunca acha uma chave de fenda magnética para comprar, pode usar esses magnetos "roubados" do HD para transformar qualquer chave de fenda em uma chave magnética. Basta "encaixar" os ímãs nela quando quiser o efeito.
Esses magnetos são feitos de uma liga contendo neodímio e, além de parafusos, permitem levantar objetos um pouco mais pesados, como martelos, por exemplo... ;)
Naturalmente, você deve tomar cuidado de não passá-los sobre discos magnéticos, a menos que queira intencionalmente apagá-los. Se você deixar a chave em contato com os ímãs por um longo período, ela continuará magnetizada (por algum tempo) mesmo depois de retirá-los. Ao contrário da crença popular, chaves magnéticas não são perigosas para os HDs, pois os magnetos usados são muito fracos se comparados aos magnetos usados no mecanismo de leitura e no motor de rotação do HD. Os próprios discos magnéticos são relativamente resistentes a forças magnéticas externas, de forma que ímãs de baixa potência não oferecem grande perigo. A placa controladora
A placa controladora
A placa lógica, ou placa controladora, é a parte "pensante" do HD. Com exceção dela, o HD é um dispositivo relativamente simples, composto por uma série de dispositivos mecânicos. É a controladora que faz a interface com a placa-mãe, controla a rotação do motor e o movimento das cabeças de leitura, de forma que elas leiam os setores corretos, faz a verificação das leituras, de forma a identificar erros (e se possível corrigi-los, usando os bits de ECC disponíveis em cada setor), atualiza e usa sempre que possível os dados armazenados no cache de disco (já que acessá-lo é muito mais rápido do que fazer uma leitura nas mídias magnéticas) e assim por diante.
Veja que a placa possui apenas três chips. O maior, no canto superior, é um Samsung K4S641632H-UC60. Você pode notar que ele é muito semelhante a um chip de memória, e na verdade é :). Ele é um chip de memória SDRAM de 8 MB, que armazena o cache de disco. Até pouco tempo atrás, os HDs utilizavam chips de memória SRAM, mas os fabricantes passaram a utilizar, cada vez mais, chips de memória SDRAM convencional para reduzir o custo de produção. Na prática não muda muita coisa, pois apesar de mais lenta, a memória SDRAM oferece desempenho suficiente para a tarefa. Assim como no caso dos processadores, o cache é um componente importante para o desempenho do HD. Ele armazena os dados acessados, diminuindo bastante o número de leituras. Dados armazenados no cache podem ser transferidos quase que instantaneamente, usando toda a velocidade permitida pela interface SATA ou IDE, enquanto um acesso a dados gravados nos discos magnéticos demoraria muito mais tempo.
Continuando, temos o controlador principal, um chip Marvell 88i6525, que é quem executa todo o processamento. Este chip é na verdade um SOC (System On a Chip), formado por um conjunto de vários chips menores, que são combinados dentro do mesmo wafer de silício. Por exemplo, este HD é um modelo SATA. A controladora da placa-mãe se comunica com ele utilizando comandos padronizados, que são comuns a qualquer HD SATA. É por isso que você não precisa instalar um driver especial para cada modelo de HD, precisa apenas de um driver padrão, que sabe se comunicar com qualquer HD. Internamente, os comandos SATA são processados e convertidos nos comandos que irão mover a cabeça de leitura, fazer girar os discos até o ponto correto e assim por diante. O sistema operacional não gerencia diretamente o cache de disco, quem faz isso é a própria controladora, que se esforça para usá-lo da forma mais eficiente possível. Naturalmente, tudo isso exige processamento, daí a complexidade interna do chip controlador. Apesar de pequena, a placa controladora de um disco atual é muito mais sofisticada do que um micro antigo inteiro (um 286 por exemplo). Elas possuem mais poder de processamento e até mesmo mais memória, na forma do cache. Os HDs atuais usam de 8 a 32 MB de cache de disco, mais memória do que era usada em micros 386 e 486 e, ainda por cima, muito mais rápida! :) Uma curiosidade é que muitos HDs antigos utilizavam um processador Intel 186 como controlador de discos. O 186 é, como você pode imaginar, o "elo perdido" entre o 8088 usado no PC XT e o 286. Ele é um chip que acabou não sendo usado nos micros PCs, mas fez um grande sucesso como microcontrolador para funções diversas. Concluindo, temos um terceiro chip, escondido na parte inferior esquerda da foto. Ele é um Hitachi HA13645, um chip especializado, que controla o movimento das cabeças de leitura e também a rotação do motor. O chip principal envia comandos a ele, dizendo que quer acessar o setor X, ou que o motor deve entrar em modo de economia de energia, por exemplo, e ele os transforma nos impulsos elétricos apropriados. Essas funções mudam de um modelo de HD para o outro, por isso os fabricantes preferem usar um chip de uso geral como o Marvell 88i6525 como controlador principal, mudando apenas o controlador auxiliar, que é um chip menor e mais barato.
A placa controladora é um componente "externo" do HD, que pode ser rapidamente substituído caso necessário.
Grande parte (talvez até a maioria) dos casos onde o HD "queima" devido a problemas na rede elétrica, ou defeitos diversos, podem ser solucionados através da troca da placa controladora, permitindo recuperar os dados sem ter que recorrer aos caros serviços de uma empresa especializada. O grande problema é justamente onde encontrar outra placa. Os fabricantes vendem placas avulsas em pequenas quantidades para empresas de recuperação, mas o fornecimento é muito restrito. Para técnicos autônomos e pequenas empresas, a única solução é usar placas doadas por outros HDs. Se o HD for um modelo recente, você pode simplesmente comprar outro, pegar a placa emprestada para fazer a recuperação dos dados e depois devolvê-la ao dono. Mas, no caso de HDs mais antigos, a única forma é procurar nos sites de leilão e fóruns em busca de uma placa usada. Existe um verdadeiro mercado paralelo de venda de placas avulsas, já que existem muitos casos de HDs inutilizados por problemas na mídia magnética, onde a placa ainda é utilizável. É comum que os fabricantes utilizem a mesma placa lógica e os mesmos discos magnéticos em vários HDs da mesma família, variando apenas o número de discos usados. Assim, o modelo de 500 GB pode ter 4 discos, enquanto o modelo de 250 GB possui apenas dois, por exemplo. Nesses casos, é normal que a placa controladora de um funcione no outro. Remover a placa é simples, basta usar uma chave torx para remover os parafusos e desencaixar a placa com cuidado. Na maioria dos HDs atuais, a placa é apenas encaixada sobre os contatos, mas em outros ela é ligada através de um cabo flat, que precisa ser desconectado com cuidado.
Mais uma curiosidade é que os primeiros PCs utilizavam HDs com interfaces MFM ou RLL.
Eles utilizavam controladoras externas, instaladas em um slot ISA e ligadas ao HD por dois cabos de dados. Esse arranjo era muito ineficiente, pois a distância tornava a comunicação muito suscetível a interferências e corrupção de dados. Esses HDs possuíam várias peculiaridades com relação aos atuais, como a possibilidade de fazer uma "formatação física", onde as trilhas de dados eram realmente regravadas, o que permitia recuperar HDs com problemas de alinhamento. Esses HDs jurássicos foram usados nos micros XT e 286 e sobreviveram até os primeiros micros 386, quando foram finalmente substituídos pelos HDs IDE (que por sua vez foram substituídos pelos HDs SATA que usamos atualmente), onde a controladora é parte integrante do HD. Hoje em dia, a "formatação física" sobrevive apenas como um vício de linguagem. Muitos dizem que "fizeram uma formatação física" ao reparticionar o HD ou ao usar um programa que apaga os dados gravados (como o "zero-fill", ou o "dd" do Linux), embora uma coisa não tenha nada a ver com a outra.
Os Discos
A capacidade de um HD é determinada por basicamente dois fatores: a tecnologia utilizada, que determina sua densidade e o diâmetro dos discos, que determina a área útil de gravação. A densidade de gravação dos HDs tem aumentado de forma surpreendente, com a introdução de sucessivas novas técnicas de fabricação. Para você ter uma idéia, no IBM 350 os discos eram simplesmente pintados usando uma tinta especial contendo limalha de ferro, um processo bastante primitivo. Com o passar do tempo, passou a ser usado o processo de eletroplating, que é semelhante à eletrólise usada para banhar bijuterias à ouro. Esta técnica não permite uma superfície muito uniforme e justamente por isso só funciona em discos de baixa densidade. Ela foi usada até o final da década de 80. A técnica usada atualmente (chamada de sputtering) é muito mais precisa. Nela a superfície magnética é construída depositando grãos microscópicos de forma incrivelmente uniforme. Quanto menores os grãos, mais fina e sensível é a superfície, permitindo densidades de gravação mais altas. A densidade de gravação de um HD é medida em gigabits por polegada quadrada. Os HDs fabricados na segunda metade de 2006, por exemplo, utilizavam em sua maioria discos com densidade de 100 gigabits (ou 12.5 GB) por polegada quadrada.
Neles, cada bit é armazenado em uma área magnética com aproximadamente 200x50 nanômetros (uma área pouco maior que a de um transístor nos processadores fabricados numa técnica de 0.09 micron) e é composta por apenas algumas centenas de grãos magnéticos. Estes grãos medem apenas alguns nanômetros e são compostos por ligas de cobalto, cromo, platina, boro e outros materiais raros, muito longe da limalha de ferro utilizada pelos pioneiros. Considerando que os discos giram a 7200 RPM e a cabeça de leitura lê os dados a mais de 50 MB/s (quando lendo setores seqüenciais), atingir densidades como as atuais é simplesmente impressionante. Este esquema mostra como funciona o processo de escrita e gravação em um HD:
Como você pode ver, a cabeça é composta por dois dispositivos separados, um para gravação e outro para leitura. O dispositivo de gravação é similar a um eletroímã, onde é usada eletricidade para criar o campo magnético usado para realizar a gravação. Nos primeiros HDs, tínhamos um filamento de cobre enrolado sobre um corpo de ferro. Nos HDs atuais, os materiais usados são diferentes, mas o princípio de funcionamento continua o mesmo. O dispositivo de leitura, por sua vez, faz o processo oposto. Quando ele passa sobre os bits gravados, capta o campo magnético emitido por eles, através de um processo de indução (nos HDs antigos) ou resistência (nos atuais), resultando em uma fraca corrente, que é posteriormente amplificada. O dispositivo de leitura é protegido por um escudo eletromagnético, que faz com que ele capte apenas o campo magnético do bit que está sendo lido, e não dos seguintes. Você pode notar que não existe isolamento entre os dispositivos de leitura e gravação. Isso acontece porque apenas um deles é usado de cada vez.
Note que essa divisão existe apenas nos HDs modernos, que utilizam cabeças de leitura/gravação MR ou GMR. Nos antigos, que ainda utilizavam cabeças de leitura de ferrite, o mesmo dispositivo fazia a leitura e a gravação. O grande problema é que, assim como em outras áreas da informática, a tecnologia avançou até o ponto em que se começou a atingir os limites físicos da matéria. Em um HD, a área referente a cada bit armazenado funciona como um minúsculo ímã, que tem sua orientação magnética alterada pela cabeça de leitura. Quando ela é orientada em um sentido temos um bit 1 e no sentido oposto temos um bit 0. A área da superfície utilizada para a gravação de cada bit é chamada de "magnetic element", ou elemento magnético. A partir de um certo ponto, a área de gravação torna-se tão pequena que a orientação magnética dos bits pode ser alterada de forma aleatória pela própria energia térmica presente no ambiente (fenômeno chamado de superparamagnetismo), o que faz com que a mídia deixe de ser confiável. A tecnologia usada nos HDs fabricados até a primeira metade de 2007 é chamada de gravação longitudinal (longitudinal recording), onde a orientação magnética dos bits é gravada na horizontal, de forma paralela à mídia. O problema é que a partir dos 100 gigabits por polegada quadrada, tornou-se muito difícil aumentar a densidade de gravação, o que acelerou a migração para o sistema de gravação perpendicular (perpendicular recording), onde a orientação magnética passa a ser feita na vertical, aumentando muito a densidade dos discos. Estima-se que, utilizando gravação longitudinal, seria possível atingir densidades de no máximo 200 gigabits por polegada, enquanto que utilizando gravação perpendicular seja possível atingir até 10 vezes mais. Isso significa que os fabricantes ainda terão margem para produzir HDs de até 10 terabytes antes de esgotar as possibilidades oferecidas pela nova tecnologia. Na gravação perpendicular, a mídia de gravação é composta de duas camadas. Inicialmente temos uma camada de cromo, que serve como um indutor, permitindo que o sinal magnético gerado pelo dispositivo de gravação "atravesse" a superfície magnética, criando um impulso mais forte e, ao mesmo tempo, como uma espécie de isolante entre a superfície de gravação e as camadas inferiores do disco. Ele poderia (até certo ponto) ser comparado à camada extra usada nos processadores fabricados com tecnologia SOI (silicon on insulator), onde uma camada isolante é criada entre os transístores e o wafer de silício, reduzindo a perda de elétrons e, conseqüentemente, o consumo elétrico do processador. Sobre a camada de cromo, são depositados os grãos magnéticos.
A diferença é que agora eles são depositados de forma que a orientação magnética seja vertical, e não horizontal.
A cabeça de leitura e gravação também é modificada, de forma a serem capazes de lidar com a nova orientação:
Embora pareça uma modificação simples, o uso da gravação perpendicular em HDs é uma conquista técnica notável. Em termos comparativos, seria como se a NASA conseguisse enviar uma missão tripulada até Marte. O processo de gravação perpendicular foi adotado rapidamente por todos os principais fabricantes. O primeiro foi a Fujitsu, que lançou um HD de 1.8" com gravação perpendicular ainda em 2005. A próxima foi a Seagate que, em abril de 2006, anunciou o Barracuda 7200.10, um disco de 3.5" com 750 GB. Em agosto de 2006 a Fujitsu anunciou um HD de 2.5" com 160 GB, e em Janeiro de 2007 a Hitachi anunciou o Deskstar 7K1000, um HD de 3.5" com 1 TB, que utiliza um design incomum, com 5 platters em vez dos 4 comumente usados. Em seguida, temos a questão do diâmetro dos discos. Como vimos, os primeiros HDs eram gigantescos, e utilizavam discos de até 24 polegadas de diâmetro. Com o passar das décadas, os discos foram encolhendo, até chegar ao que temos hoje. Mas, como tudo na vida, existem receitas ideais para o tamanho dos discos magnéticos, de acordo com a área onde eles serão utilizados. O problema em produzir discos muito compactos é que a superfície de gravação fica exponencialmente menor, permitindo gravar um volume menor de dados. Apesar disso, os demais componentes continuam custando quase o mesmo (ou até mais, dependendo da escala de miniaturização necessária). Isso faz com que o custo por megabyte cresça, conforme o tamanho físico do HD diminui.
Um exemplo prático disso é a diferença no custo por megabyte entre os HDs de 2.5" para notebooks e os modelos de 3.5" para desktops. A partir de um certo nível de miniaturização, o custo por megabyte se torna mais alto que o dos cartões de memória Flash, e os HDs deixam de ser viáveis. O melhor exemplo é o HD de 0.85" apresentado pela Toshiba em 2005, que tinha como objetivo atender o mercado de palmtops e smartphones. Ele era tão pequeno que podia ser produzido no formato de um cartão SD e possuía um consumo elétrico baixíssimo:
O problema é que ele seria lançado em versões de apenas 2 e 4 GB, com preços a partir de US$ 150. Com a rápida queda no custo da memória Flash, logo surgiram cartões de 2 e 4 GB que custavam menos, de forma que o mini-HD acabou não encontrando seu lugar no mercado e foi descontinuado silenciosamente. O interessante é que o oposto também é verdadeiro. HDs com discos muito grandes também acabam sendo inviáveis, pois são mais lentos e mais passíveis de problemas que HDs baseados em discos menores. Isso se deve a vários fatores. O primeiro é a questão da rotação, já que discos maiores são mais pesados e demandam um maior esforço do motor de rotação, consumindo mais energia e gerando mais calor e mais barulho. Discos maiores também acabam sendo menos rígidos, o que impede que sejam girados a velocidades muito altas e tornam todo o equipamento mais sensível a impactos. Dobrar o diâmetro dos discos faz com que a rigidez proporcional seja reduzida em até 75%. O segundo é a dificuldade de produção. Com o avanço da tecnologia, a mídia de gravação precisa ser cada vez mais fina e uniforme. Quanto maiores os discos, mais difícil é recobrir toda a superfície sem o surgimento de um grande número de pontos defeituosos.
Como se não bastasse, temos o terceiro motivo, que é o maior tempo de acesso, já que com uma superfície maior as cabeças de leitura demoram muito mais tempo para localizar os dados (justamente devido à maior distância a ser percorrida). Se combinarmos isso com a velocidade mais baixa de rotação, acabamos tendo uma redução muito grande no desempenho. Isso explica porque os HDs com discos de 5.25" usados nos primeiros PCs foram rapidamente substituídos pelos de 3.5". O pico evolutivo dos HDs de 5.25" foram os Quantum Bigfoot, produzidos até 1999, em capacidades de até 18 GB. Embora eles armazenassem um maior volume de dados por platter, a velocidade de rotação era bem mais baixa (apenas 3600 RPM), os tempos de acesso eram maiores e, ainda por cima, a durabilidade era menor. Os HDs de 3.5" e de 2.5" atuais parecem ser o melhor balanço entre os dois extremos. Os HDs de 3.5" oferecem um melhor desempenho, mais capacidade de armazenamento e um custo por megabyte mais baixo (combinação ideal para um desktop), enquanto os HDs de 2.5" são mais compactos, mais silenciosos, consomem menos energia e são mais resistentes a impactos, características fundamentais no caso dos notebooks. Temos ainda os HDs de 1.8" (mais finos e do tamanho de um cartão PCMCIA), que são usados em notebooks ultra-portáteis, além de mp3players e alguns dispositivos de armazenamento portátil. Uma quarta categoria são os microdrives, que utilizam discos de 1" (pequenos o suficiente para serem produzidos no formato de cartões CompactFlash) e podem ser utilizados em palmtops e mp3players. Eles foram utilizados no Palm Life Drive (4 GB) e também no iPod Nano (4 e 8 GB), mas acabaram perdendo seu espaço para os cartões de memória Flash. A Hitachi chegou a anunciar o desenvolvimento de microdrives de 20 GB, utilizando tecnologia de gravação perpendicular, mas a produção em série acabou sendo cancelada, pois o preço de venda seria mais alto que o da mesma quantidade de memória Flash.
Para organizar o processo de gravação e leitura dos dados, a superfície dos discos é dividida em trilhas e setores. As trilhas são círculos concêntricos, que começam no final do disco e vão se tornando menores conforme se aproximam do centro. É diferente de um CD-ROM ou DVD, onde temos uma espiral contínua. Cada trilha recebe um número de endereçamento, que permite sua localização. A trilha mais externa recebe o número 0 e as seguintes recebem os números 1, 2, 3, e assim por diante. Para facilitar ainda mais o acesso aos dados, as trilhas se dividem em setores, que são pequenos trechos de 512 bytes cada um, onde são armazenados os dados. Além das trilhas e setores, temos também as faces de disco. Como vimos, os HDs atuais possuem de 1 a 4 discos. Como são utilizadas ambas as faces de cada disco, temos um total de 2 a 8 faces e o mesmo número de cabeças de leitura. Como todas as cabeças de leitura estão presas no mesmo braço móvel, elas não possuem movimento independente. Para acessar informações armazenadas na trilha 199.982 da face de disco 3, por exemplo, a controladora do disco ativa a cabeça de leitura responsável pelo disco 3 e, a seguir, ordena ao braço de leitura que se dirija à trilha correspondente. Não é possível que uma cabeça de leitura esteja na trilha 199.982 ao mesmo tempo que outra esteja na trilha 555.631 de outro disco, por exemplo. Já que todas as cabeças de leitura sempre estarão na mesma trilha de seus respectivos discos, deixamos de chamá-las de trilhas e passamos a usar o termo "cilindro". Um cilindro nada mais é do que o conjunto de trilhas com o mesmo número nos vários discos. Por exemplo, o cilindro 1 é formado pela trilha 1 de cada face de disco, o cilindro 2 é formado pela trilha 2 de cada face, e assim por diante. Esta antiga ilustração da Quantum mostra como funciona esta divisão:
A trilha mais externa do disco possui mais que o dobro de diâmetro da trilha mais interna e, conseqüentemente, possui capacidade para armazenar um volume muito maior de dados. Porém, nos primeiros discos rígidos, assim como nos disquetes, todas as trilhas do disco, independentemente de seu diâmetro, possuíam o mesmo número de setores, fazendo com que nas trilhas mais externas, os setores ocupassem um espaço muito maior do que os setores das trilhas mais internas. Tínhamos então um grande espaço desperdiçado, pois era preciso nivelar por baixo, fazendo com que todas as trilhas possuíssem o mesmo número de setores permitido pelas trilhas mais internas, acabando por desperdiçar enormes quantidades de espaço nas primeiras trilhas do disco. Atualmente, os HDs utilizam o Zoned bit Recording (ZBR), que permite variar a quantidade de setores por trilha, de acordo com o diâmetro da trilha a ser dividida, permitindo uma organização mais racional do espaço em disco e, conseqüentemente, uma maior densidade de gravação. O HD pode ter então 1584 setores por trilha na área mais externa dos discos e apenas 740 na área mais interna, por exemplo. Como os discos giram sempre na mesma velocidade, isso causa um pequeno efeito colateral, que é uma considerável variação no desempenho de acordo com a área do disco que está sendo lida, proporcional ao número de setores por trilha. Trocando em miúdos, o desempenho ao ler as trilhas mais externas acaba sendo mais que o dobro do obtido ao ler as mais internas. É por isso que em geral se recomenda colocar a partição com a instalação do sistema, ou com a partição swap no início do disco (que corresponde às trilhas mais externas) para obter o melhor desempenho.
Um dos principais motivos do desempenho dos HDs não ter crescido na mesma proporção da capacidade ao longo das últimas décadas é que a densidade das trilhas aumentou numa escala muito maior que a dos setores dentro destas. Ou seja, as trilhas foram ficando mais "finas", mas o número de setores por trilha passou a aumentar em escala incremental. Aumentar o número de trilhas permite aumentar a área de armazenamento, mas é o número de setores por trilha, combinado com a velocidade de rotação do HD que determina a performance. Um antigo Maxtor 7040A, de 40 MB, por exemplo, possuía uma taxa de leitura média em torno de 700 KB/s, o que permitia ler todo o conteúdo do disco em cerca de um minuto. Um Seagate Barracuda 7200.10 atual, de 750 GB, é bem mais rápido, com uma taxa média de leitura de 64 MB/s, mas, apesar disso, como a capacidade é brutalmente maior, ler todos os dados do disco demoraria pelo menos 3:15 horas! No futuro, esta tendência deve se manter, pois é muito mais simples para os fabricantes produzir cabeças de leitura e sistemas de codificação capazes de lidarem com trilhas mais finas, do que espremer mais dados dentro de cada trilha, já que elementos magnéticos mais curtos correspondem a um sinal magnético mais fraco e mais difícil de ser captado pela cabeça de leitura. Como um agravante, temos o problema do superparamagnetismo, que vimos há pouco.
Correção de erros e badblocks
Concluindo, temos a questão da detecção e correção de erros, que faz parte do processo de leitura e gravação. Por melhor que seja sua qualidade, nenhuma mídia magnética é 100% confiável (como pode confirmar quem já teve o desprazer de trabalhar com disquetes ;). Pequenas falhas na superfície da mídia podem levar a erros de leitura, sobretudo quando ela possui uma densidade de gravação de mais de 100 gigabits por polegada quadrada e gira a 7.200 RPM ou mais, como nos HDs atuais. Isso não significa que o seu HD vá pifar amanhã, mas que são comuns erros na leitura de um setor ou outro. Obviamente, como todos os nossos dados importantes são guardados no disco rígido, a possibilidade de erros na leitura de "um setor ou outro" não seria aceitável, principalmente no caso de máquinas destinadas a operações críticas. Imagine se, nesse "setor ou outro" do servidor de um grande banco, estivessem gravados os dados referentes à conta bancária de um cliente importante, por exemplo.
De modo a tornar os HDs uma forma de armazenamento confiável, os fabricantes utilizam sistemas de ECC para detectar e corrigir erros de leitura eventualmente encontrados. O ECC é o mesmo sistema utilizado em módulos de memória destinados a servidores e também em CD-ROMs, onde são usados nada menos do que 276 bytes de códigos de correção de erros para cada setor de 2048 bytes. Em um HD, cada setor armazena, além dos 512 bytes de dados, mais algumas dezenas de bytes contendo os códigos ECC. A criação dos bytes de ECC, assim como sua utilização posterior é feita pela placa lógica, um processo automático que é feito de forma completamente transparente ao sistema operacional. Quando um setor é lido pela cabeça de leitura, juntamente com os dados são lidos alguns dos códigos ECC, que visam apenas verificar se os dados que estão sendo lidos são os mesmos que foram gravados, uma técnica que lembra o sistema de paridade antigamente usado na memória RAM. Caso seja verificado um erro, são usados os demais códigos para tentar corrigir o problema. Na grande maioria dos casos, esta primeira tentativa é suficiente. Estes erros transitórios, que são corrigidos com a ajuda dos códigos ECC são chamados de "soft errors" e não causam nenhum efeito colateral além de um delay de alguns milissegundos na leitura. Caso não seja possível corrigir o erro usando o ECC, a controladora faz uma nova tentativa de leitura do setor, pois é grande a possibilidade do erro ter sido causado por alguma interferência ou instabilidade momentânea. Caso o erro persista, ela fará várias tentativas sucessivas, reduzindo a velocidade de rotação dos discos e comparando o resultado de várias leituras, de forma a tentar recuperar os dados gravados no setor. Esse processo gera aquele ruído característico de HD sendo "mastigado" e quase sempre indica o aparecimento de um badblock. Por serem defeitos físicos na mídia magnética, não existe muito o que fazer com relação a eles. O jeito é marcar os badblocks, de forma que eles não sejam mais usados. Os HDs atuais são capazes de marcar automaticamente os setores defeituosos. A própria controladora faz isso, independentemente do sistema operacional. Existe uma área reservada no início do disco chamada "defect map" (mapa de defeitos) com alguns milhares de setores que ficam reservados para alocação posterior.
Sempre que a controladora do HD encontra um erro ao ler ou gravar num determinado setor, ela remapeia o setor defeituoso, substituindo-o pelo endereço de um setor "bom", dentro do defect map. Como a alocação é feita pela própria controladora, o HD continua parecendo intacto para o sistema operacional. De fato, é normal que os HDs já venham de fábrica com alguns setores remapeados, causados por pequenas imperfeições na superfície da mídia. Como eles não são visíveis para o sistema operacional, nem causam problemas no uso normal, acabam passando despercebidos. Naturalmente, o defect map é uma área limitada, que corresponde normalmente a uma única trilha. Caso o HD possua algum problema crônico, eventualmente os endereços se esgotarão e os badblocks realmente passarão a se tornar visíveis. Deste ponto em diante, entram em cena utilitários como o scandisk (no Windows) e o badblocks (no Linux), que permitem realizar um exame de superfície, marcando os setores defeituosos encontrados. Estes setores não são marcados no defect map, mas sim em uma área reservada da partição. Um grande número de setores defeituosos são indício de problemas graves, como envelhecimento da mídia, defeitos no mecanismo de leitura ou mesmo contaminação do HD por partículas provenientes do ambiente. O ideal nesses casos é fazer backup de todos os dados e substituir o HD o mais rápido possível. Entretanto, mesmo para estes HDs condenados, às vezes existe uma solução. É comum a maioria dos setores aparecerem mais ou menos agrupados, englobando uma área relativamente pequena do disco.Se houver muitos badblocks em áreas próximas, você pode reparticionar o disco, isolando a área com problemas. Se, por exemplo, você percebesse que a maioria dos defeitos se encontra nos últimos 20% do disco, bastaria abrir o particionador, deletar a partição atual e criar uma nova, englobando apenas 80% do disco. Neste caso, você perderia uma boa parte da área útil, mas pelo menos teria a possibilidade de continuar usando a parte "boa" do HD (em algum micro usado para tarefas secundárias, sem dados importantes), até que ele desse seus derradeiros suspiros.
Desempenho
O desempenho do HD é determinado basicamente pela densidade dos discos, velocidade de rotação e, em menor grau, pelo tamanho do cache de leitura e suporte ao NCQ.
Por ser um componente mecânico, não existe muito o que os fabricantes possam fazer para melhorar o desempenho de forma considerável sem mexer nesses fatores. Outra questão é que o mercado de HDs é um ramo incrivelmente competitivo, de forma que tecnologias revolucionárias, como, por exemplo, a técnica de gravação perpendicular, são rapidamente adotadas por todos os fabricantes, já que os que não são capazes de acompanhar a evolução tecnológica simplesmente não conseguem se manter no mercado. Em se tratando de HDs "normais", destinados ao mercado de consumo, dois HDs produzidos na mesma época, com a mesma velocidade de rotação e a mesma quantidade de cache, tendem a possuir um desempenho muito parecido. Na hora da compra você deve se preocupar mais em não levar para casa HDs antigos, baseados em tecnologias obsoletas que por algum motivo tenham ficado parados no estoque dos distribuidores. Um HD de 120 GB produzido em 2007 muito provavelmente possuirá um único platter e será mais rápido que um HD produzido um ano atrás, com a mesma capacidade, mas que utilize dois platters, mesmo que ambos sejam de 7200 RPM e sejam vendidos por mais ou menos o mesmo preço. Existem ainda casos de HDs "premium", que utilizam tecnologias recentemente introduzidas ou mudanças radicais no design e dessa forma conseguem ficar um passo à frente em termos de desempenho. Eles naturalmente ficam no topo das tabelas comparativas, mas em geral não são uma boa opção de compra fora de nichos muito específicos, pois sempre possuem um custo por megabyte muito mais alto. Um bom exemplo são os Maxtor Atlas 15K II, uma série de HDs SCSI que até 2006 estavam entre os mais rápidos do mercado, em detrimento da capacidade de armazenamento. Como você pode ver na foto a seguir, embora o Atlas 15K II fosse um HD de 3.5", internamente ele utilizava discos de 2.5", similares aos usados em notebooks.O menor diâmetro dos discos reduz a capacidade de armazenamento, mas permitiu que os discos girassem a 15.000 RPM. O menor diâmetro também permitiu reduzir o tempo de acesso (já que a distância a ser percorrida pelas cabeças de leitura era menor) o que, combinado com outras melhorias, resultou num HD Ultra 320 SCSI com tempo de acesso de apenas 5.5 ms e taxa de leitura seqüencial (nas trilhas externas) de 98 MB/s:
O problema é que, além de caro, a capacidade de armazenamento era pequena, mesmo para os padrões da época. O modelo com 1 platter armazenava apenas 37 GB, enquanto o modelo com 4 armazenava 147 GB. Ou seja, você pagaria até US$ 1.000 para ter uma capacidade equivalente à de um HD low-end. De uma forma geral, o melhor em termos de custo-benefício é comprar HDs de geração atual, escolhendo entre os modelos de baixo custo e substituir o HD a cada 18 ou 24 meses, se possível revendendo o antigo (por algum motivo os HDs costumam ser um item valorizado no mercado de componentes usados, talvez porque todo mundo sempre precisa de mais espaço ;). Dessa forma, você vai conseguir sempre manter o seu equipamento relativamente atualizado, gastando pouco. Acaba sendo muito melhor do que gastar o dobro, tentando comprar "o melhor HD", que vai estar desatualizado da mesma forma daqui a dois anos. Tenha em mente que a vida útil de qualquer equipamento é limitada, então só vale a pena gastar mais se o ganho de desempenho realmente for lhe trazer um retorno tangível ao longo desse período. Em um servidor, o investimento em HDs topo de linha pode compensar em muitos casos, já que um melhor desempenho equivale a mais requisições e, conseqüentemente, mais clientes atendidos. A perda acumulada de algumas visitas diárias, ao longo de alguns anos, poderia corresponder a um prejuízo equivalente a várias vezes o valor investido nos HDs, por exemplo. Mas, tenha em mente que o perfil de uso de disco em um servidor é bem diferente do uso em um desktop típico, sem contar que, dada a sua importância, pequenos ganhos de desempenho podem realmente compensar pequenas extravagâncias, o que não é o caso de um desktop típico. Por mais que você mantenha vários programas abertos e realize muitas operações ao mesmo tempo, não vai conseguir chegar nem perto do que acontece num servidor web, por exemplo, que precisa responder a um grande volume de requisições simultâneas a cada segundo. Num servidor típico, são realizadas um enorme número de pequenas leituras, que são usadas para montar as páginas ou arquivos que serão enviados aos clientes. Um fórum com um grande número de mensagens pode facilmente resultar em um banco de dados de 10 ou mesmo 20 GB, contendo uma infinidade de pequenas mensagens de texto e ter 1000 ou 2000 visitantes simultâneos em determinados períodos. Para cada página a ser exibida, o servidor precisa ler várias entradas dentro do banco de dados (o tópico propriamente dito, informações sobre os usuários e assim por diante).
Mesmo com o uso de caches, não é difícil imaginar que tantas requisições simultâneas levam o desempenho dos HDs ao limite. Nesse cenário, qualquer redução no tempo de acesso representa um grande ganho de desempenho. Em um desktop, o HD acaba sendo mais relacionado ao tempo de boot e carregamento dos programas, por isso a taxa de transferência acaba sendo o item mais importante. A única operação que se aproxima um pouco do que acontece nos servidores é o uso intensivo de swap, onde o HD também precisa realizar um grande número de pequenas leituras. Entretanto, nesses casos o problema não seria o HD, mas sim a falta de memória RAM. O único swap bom é o swap que não é feito. :) Em casos onde você realmente faz questão do melhor desempenho, normalmente faz mais sentido usar 2 ou 4 HDs medianos em RAID 0 do que comprar um único HD topo de linha. Considere também a compra de mais memória RAM (já que mais memória significa menor uso de swap e mais cache de disco) e também o uso o ReadyBoost do Vista em conjunto com um Pendrive de 2 GB ou mais (o ganho de desempenho ao usar o ReadyBoost não é tão grande assim, mas como os pendrives são atualmente bastante baratos, o custo-benefício acaba compensando). Para a maioria das tarefas, o ganho de desempenho é maior do que o uso de um HD mais rápido. Existem ainda casos onde o desempenho simplesmente não é um fator importante, como por exemplo no caso de HDs secundários, usados apenas para guardar arquivos ou fazer backup, onde você acessa os dados apenas esporadicamente. Nesses casos, o melhor negócio é simplesmente procurar os HDs com o menor custo por megabyte, dentro da capacidade de que você precisa e escolher um baseado na reputação do fabricante. Em casos como este, um HD mais lento, de 5400 RPM, pode ser até desejável, já que eles consomem menos energia e geram menos calor que os de 7200 RPM. De qualquer forma, é importante entender os fatores que determinam o desempenho dos HDs, de forma a não ser enganado pelas frases floridas usadas pelos fabricantes e não fazer feio nas rodas de amigos. :)
Tempo de Busca (Seek Time)
Ao comparar dois HDs fabricados na mesma época, que utilizam a mesma velocidade de rotação e possuem uma capacidade e número de discos similar (o que indica que possuem mais ou menos a mesma densidade), o tempo de busca é provavelmente o único fator que pode diferir de forma significativa entre os dois.
O tempo de busca indica o tempo que a cabeça de leitura demora para ir de uma trilha à outra do disco, ou seja, indica a performance do actuator usado no HD. O tempo de busca é importante, pois ele é o fator que mais influencia no tempo de acesso e conseqüentemente na performance geral do HD. Existem três índices diferentes para o cálculo do tempo de busca: Full Stroke, Track-to-Track e Average. O primeiro (Full Stroke) indica o tempo que a cabeça de leitura demora para se deslocar da primeira até a última trilha do HD, o que normalmente demora entre 15 e 20 milissegundos. Como é o maior dos três, este valor não costuma ser divulgado muito abertamente pelos fabricantes. O Track-to-Track é justamente o oposto; o tempo que a cabeça demora para mudar de uma trilha para a seguinte. Como a distância a ser percorrida é muito pequena, ele costuma ser muito baixo, inferior a 1 milissegundo. Como ele é o valor mais baixo dos três, muitos fabricantes divulgam o valor do Track-to-Track nas especificações, omitindo os outros dois. Finalmente, temos o Average (valor médio), que é justamente um meio termo entre os dois. Ele indica o tempo médio que a cabeça demora para se locomover até um setor aleatório do HD. Ao pesquisar nas especificações, procure justamente se informar sobre o valor Average, já que ele é o mais indicativo dos três. Aqui temos as especificações de um Samsung HD300LJ, um HD de 300 GB e 7.200 RPM, que era um modelo de médio custo no início de 2007: Track to Track: 0.8 ms Average: 8.9 ms Full Stroke: 18 ms Aqui temos as de um Western Digital Raptor X, um "topo de linha" de 10.000 RPM, que utiliza platters de 2.5". O menor diâmetro dos discos faz com que ele tenha apenas 150 GB de capacidade (2 discos), mas em troca permitiu obter tempos de acesso bem mais baixos: Read Seek Time: 4.6 ms Write Seek Time: 5.2 ms (average)
Track-To-Track Seek Time: 0.4 ms (average) Full Stroke Seek: 10.2 ms (average) Veja que as descrições usadas pela Samsung e pela Western Digital são ligeiramente diferentes. Tanto o "Average" da Samsung quanto o "Read Seek Time" da WD referem-se ao tempo de busca médio para operações de leitura. A WD incluiu também o Write Seek Time, que é o tempo de busca para operações de gravação, que é sempre um pouco mais alto e por isso nem sempre divulgado nas especificações. Como você pode ver, esses são dois exemplos extremos. O Raptor possui tempos de busca quase 50% menores, mas em compensação é mais caro e possui menos da metade da capacidade do Samsung. Você acaba pagando muito mais caro pela maior performance.
Tempo de Latência (Latency Time)
Dentro do disco rígido, os discos magnéticos giram continuamente. Por isso, dificilmente os setores a serem lidos estarão sob a cabeça de leitura/gravação no exato momento de executar a operação. No pior dos casos, pode ser necessária uma volta completa do disco até o setor desejado passar novamente sob a cabeça de leitura. O tempo de latência é tão importante quanto o tempo de busca. Felizmente, ele é fácil de ser calculado, bastando dividir 60 pela velocidade de rotação do HD em RPM (rotações por minuto), e multiplicar o resultado por 1000. Teremos então o tempo de latência em milissegundos. Um HD de 5400 RPM, por exemplo, terá um tempo de latência de 11.11 milissegundos (o tempo de uma rotação), já que 60 ÷ 5200 x 1000 = 11.11. Geralmente é usado o tempo médio de latência, que corresponde à metade de uma rotação do disco (assumindo que os setores desejados estarão, em média, a meio caminho da cabeça de leitura). Um HD de 5400 RPM teria um tempo de latência médio de 5.55 ms, um de 7.200 RPM de 4.15 ms e um de 10.000 RPM de apenas 3 ms. Muitos fabricantes publicam o tempo de latência médio nas especificações ao invés do tempo de busca ou o tempo de acesso (já que ele é menor), o que acaba confundindo os desavisados.
Tempo de Acesso (Access Time)
O tempo de acesso é a combinação do tempo de busca e do tempo de latência, o tempo médio necessário para realizar um acesso a um setor aleatório do HD.
Assim que o comando é processado, a cabeça de leitura é movida para a trilha especificada (tempo de busca) e aguarda até que a rotação dos discos a faça passar pelo setor especificado (tempo de latência). Aos dois, somamos também o settle time (o tempo que a cabeça de leitura demora para estabilizar depois de movimentada) e o command overhead time, que é o tempo que a placa controladora demora para processar o comando e iniciar ambas as operações. Estes dois valores são bem menos significantes (somam algo em torno de 0.5 ms), por isso nem sempre são divulgados pelos fabricantes, embora também entrem na conta. Os fabricantes calculam o tempo de latência dos HDs de formas diferentes, tornando difícil uma comparação direta. O ideal é que você mesmo calcule o tempo de acesso médio com base nas informações anteriores. Para isso, basta somar o tempo de busca médio (Average) e o tempo de latência, calculado com base na velocidade de rotação dos discos. Como é muito difícil encontrar o settle time e o command overhead time nas especificações, você pode adicionar 0.5 ms, que é um valor aproximado. O Samsung HD300LJ tem tempo de busca de 8.9 ms e latência de 4.15 ms. Adicionando os 0.5 ms temos um total de 14.55 ms. Um Seagate ST3200822A (um modelo IDE, de 200 GB) tem tempo de busca de 8.5 ms. Como ele também é um modelo de 7.200 RPM, a latência também é de 4.15 ms, o que (incluindo os 0.5 ms) daria um total de 14.15 ms. O Raptor X tem apenas 4.6 ms de tempo de busca e, por ser um HD de 10.000 RPM, tem latência de 3 ms. Somando os 0.5 ms, teríamos um total de 9.1 ms. Veja que a diferença entre o HD300LJ ST3200822A é muito pequena. O Raptor consegue ser 35% mais rápido, mas em compensação é muito mais caro, como vimos. Apesar de importante, o tempo de acesso é um fator que não deve ser superestimado. Ele afeta o desempenho do HD quando é lida uma grande quantidade de arquivos pequenos, espalhados pelo HD, mas não afeta muito a taxa de transferência seqüencial, que é o que você vê ao carregar um programa pesado ou copiar uma grande quantidade de arquivos, por exemplo.
Head Switch Time
Um disco rígido é composto internamente por (na grande maioria dos casos) de 1 a 4 discos, sendo que cada disco possui duas faces e temos uma cabeça de leitura para cada face.
Mesmo possuindo várias cabeças de leitura, apenas uma delas pode ser usada de cada vez, de forma que a controladora precisa constantemente chavear entre elas durante a leitura ou gravação dos dados. Você poderia perguntar por que os dados não são organizados de forma que a controladora pudesse ler e gravar usando todas as cabeças simultaneamente, com cada uma armazenando parte dos arquivos, como em uma espécie de "RAID interno". O problema aqui é que é tecnicamente impossível manter as trilhas dos diferentes discos perfeitamente alinhadas entre si. Quando a controladora chaveia de uma cabeça de leitura para a outra, é necessário executar o procedimento normal de posicionamento, onde ela verifica as marcações servo dos discos e o braço de leitura move-se para a posição apropriada. Devido a isso, o chaveamento acaba demorando um pouco mais do que poderíamos pensar inicialmente. Ele é apenas um pouco menor que o tempo de busca Track-to-Track e quase sempre proporcional a ele. Embora o Head Switch Time não seja um fator tão significativo quanto o tempo de acesso, ele acaba sendo um fator importante para a taxa de leitura seqüencial do HD, já que a controladora lê um cilindro por vez, chaveando entre todas as cabeças antes de ir para o próximo.
Taxa de Transferência Interna (Internal Transfer Rate)
A taxa de transferência interna é a velocidade "real" do HD ao ler arquivos gravados em setores seqüenciais. Se tivéssemos à mão todas as especificações do HD, incluindo o número de setores por trilha, seria simples calcular a taxa de leitura real do HD. Em um HD que tivesse 1584 setores por trilha na área mais externa dos discos e 740 na área mais interna, com 2 patters, rotação de 7200 RPM, tempo de busca Track-to-Track de 0.8 ms e Head Switch Time de 0.6 ms, por exemplo, teríamos o seguinte: Cada trilha externa possui 1584 setores, cada um com 512 bytes, de forma que temos 792 KB por trilha. Os discos giram a 7200 RPM, de forma que temos 120 rotações por segundo. Dividindo um segundo por 120 rotações, temos 8.33 milissegundos para cada rotação completa do disco, que corresponde à leitura de cada trilha. Como o disco tem 2 platters, temos um total de 4 trilhas por cilindro. Para ler cada cilindro, a cabeça de leitura precisa realizar 3 chaveamentos entre as cabeças (0.6 ms cada) e em seguida precisa mover o braço de leitura para o cilindro seguinte, o que demora mais 0.8 ms.
Somando tudo, a leitura de cada cilindro demora aproximadamente 36 ms, o que significa que temos a leitura de 27.7 cilindros por segundo. Cada cilindro é composto por 4 trilhas, o que corresponde a 3.093 MB. Se o HD consegue ler 27.7 deles por segundo, significaria que o nosso HD hipotético teria uma taxa de transferência interna (nas trilhas externas) de aproximadamente 85.9 MB/s. Nas trilhas internas a densidade cai para apenas 1.44 MB por cilindro (já que cada trilha possui apenas 740 setores), de forma que a taxa de leitura cai para apenas 40.1 MB/s. Ao ler pequenos arquivos, temos a interferência do cache de disco, mas ao ler uma grande quantidade de arquivos, ele deixa de ser eficaz (já que armazena apenas uma pequena quantidade de dados), de forma que a taxa real de transferência cai para os valores da taxa de transferência interna, variando entre 85.9 MB/s e 40.1 MB/s, de acordo com a parte do disco que estivesse sendo lida. Quando houver referências à "Internal Transfer Rate" ou "Buffer to Disc" nas especificações de um HD, pode ter certeza de tratar-se da velocidade "máxima", atingida quando são lidos setores seqüenciais nas bordas do disco. Tenha em mente que no centro do disco você obterá um pouco menos da metade do número divulgado. No caso dos HDs de notebook, ou de HDs que utilizam platters de 2.5" (como o Raptor), a diferença entre a taxa de leitura nas trilhas internas e externas é menor, numa relação de aproximadamente 2/3 em vez de 1/2. O grande problema é que os fabricantes raramente divulgam o número de setores por trilha, nem o Head Switch Time dos HDs, de forma que acaba sendo impossível calcular diretamente a taxa de transferência interna com base nas especificações. Normalmente, você encontrará apenas o número de setores por trilhas visto pelo BIOS (64), que não tem nenhuma relação com o número real. Resta então usar o método empírico, realizando um teste longo de leitura, como o teste realizado pelo HD Tach, onde são lidos grandes volumes de dados, começando pela borda e prosseguindo até o centro dos discos. O cache pode ajudar o início da leitura, mas os dados armazenados logo se esgotam, deixando apenas a taxa real. Um bom lugar para pesquisar sobre as taxas de leitura (e outros índices) de diversos modelos é a tabela do Storage Review, disponível no: http://www.storagereview.com/comparison.html. Outra tabela recomendada é a disponível no TomsHardware:
http://www23.tomshardware.com/storage.html.
Outra curiosidade é que é comum que os fabricantes produzam alguns modelos de HDs onde não são utilizadas todas as trilhas dos discos, de forma a criar HDs com capacidades definidas, que se adaptem a determinados nichos do mercado.
Imagine, por exemplo, que o fabricante X está produzindo todos os seus discos usando platters de 200 GB. Isso significaria que ele teria modelos de 200, 400, 600 e 800 GB, de acordo com o número de platters usados. Imagine agora que o fabricante Y, que ainda usa uma técnica anterior de produção, lança um HD de 160 GB, que é mais barato que o de 200 GB do fabricante X e por isso começa a roubar mercado dele. Ao invés de reduzir o custo do HD de 200 GB e perder dinheiro na venda de todos os HDs, o fabricante X pode criar um HD de 160 GB fazendo uma simples alteração no firmware do HD de 200 GB, que faça a controladora deixar de usar as trilhas mais externas do disco. Ele pode agora vender estes HDs de "160 GB" a um preço mais baixo, sem ter que mexer no preço do restante da linha. Por incrível que possa parecer, isto é bastante comum. Ao medir o desempenho deste HD "castrado", você perceberia que a diferença entre o desempenho nas trilhas internas e externas é bem menor que nos outros modelos. O tempo de acesso médio tende também a ser um pouco menor, já que a cabeça de leitura precisa se deslocar por uma área menor do disco.
NCQ
A grande maioria dos HDs SATA atuais suporta o NCQ, onde a controladora utiliza o tempo ocioso, entre uma leitura e outra, para estudar e reorganizar a ordem das leituras seguintes, de forma que elas possam ser executadas na ordem em que seja necessário o menor movimento possível dos discos. É como no caso de um ônibus, que precisa fazer um itinerário passando por diversos pontos da cidade. Com o NCQ o motorista tem autonomia para fazer alterações na rota, de acordo com as condições do trânsito, escolhendo a rota mais rápida. Esta ilustração fornecida pela nVidia mostra como o sistema funciona. O HD à esquerda não possui suporte a NCQ, de forma que, ao realizar 4 leituras a setores aleatórios do disco ele precisa realizá-las em ordem, fazendo com que sejam necessários um número maior de rotações do disco, À direita, o HD com NCQ usa um atalho para realizar a mesma seqüência de leitura em menos tempo, lendo os setores fora de ordem:
HD sem NCQ (à esquerda) e com NCQ
Na prática, o NCQ pode melhorar a taxa de transferência do HD em até 10% em situações específicas, onde são lidos diversos arquivos pequenos espalhados pelo HD, como durante o carregamento do sistema operacional, ou de um programa pesado, mas faz pouca diferença quando você está transferindo grandes arquivos. De qualquer forma, ele é uma otimização implementada via software, que não aumenta o custo de produção dos discos e não tem contra indicações.
Cache (Buffer)
Embora não seja tão importante para o desempenho quanto geralmente se pensa, o cache permite à controladora executar um conjunto de operações úteis para melhorar o desempenho. Geralmente ao ler um arquivo, serão lidos vários setores seqüenciais. A forma mais rápida de fazer isso é, naturalmente, fazer com que a cabeça de leitura leia de uma vez todos os setores da trilha, passe para a trilha seguinte, passe para a terceira e assim por diante. Isso permite obter o melhor desempenho possível. O problema é que na prática não é assim que funciona. O sistema pede o primeiro setor do arquivo e só solicita o próximo depois de recebê-lo e certificar-se de que não existem erros. Se não houvesse nenhum tipo de buffer, a cabeça de leitura do HD acabaria tendo que passar várias vezes sobre a mesma trilha, lendo um setor a cada passagem, já que não daria tempo de ler os setores seqüencialmente depois de todo tempo perdido antes de cada novo pedido. Graças ao cache, este problema é resolvido, pois a cada passagem a cabeça de leitura lê todos os setores próximos, independentemente de terem sido solicitados ou não. Após fazer sua verificação de rotina, o sistema solicitará o próximo setor, que por já estar carregado no cache será fornecido em tempo recorde. Nos HDs atuais, o cache pode ser usado também nas operações de escrita. Imagine, por exemplo, que a controladora está ocupada lendo um arquivo longo e o sistema solicita que ela atualize um pequeno arquivo de log. Em vez de precisar parar o que está fazendo, a controladora pode armazenar a operação no cache e executá-la mais adiante, em um momento de ociosidade. Nos HDs SATA com NCQ, a controladora possui liberdade para reorganizar as operações, realizando-as de forma que sejam concluídas mais rápido. A controladora passa então a armazenar os dados no cache, de forma que, depois de concluídas as operações, possa organizar os dados e entregá-los na ordem correta para o sistema.
O espaço excedente é usado para armazenar os últimos arquivos acessados, de forma que eles possam ser fornecidos rapidamente caso sejam requisitados novamente. A principal vantagem de usar um cache maior seria justamente ter mais espaço para arquivos. A questão é que o sistema operacional também mantém um cache de leitura e gravação utilizando a memória RAM que, por ser maior que o cache do HD, acaba sendo mais eficiente e também mais rápido, já que o cache do HD tem sua velocidade de transferência limitada à velocidade da interface IDE ou SATA, enquanto o cache feito pelo sistema operacional está limitado apenas à velocidade de acesso da própria memória RAM. Esse é o principal motivo de um HD com mais cache não ser tão mais rápido quanto se pensa. Enquanto dobrar o tamanho do cache L2 de um processador aumenta seu desempenho em até 10%, aumentar o cache de um HD de 16 para 32 MB, por exemplo, acaba aumentando seu desempenho real em menos de 1% na maioria das aplicações. Uma pequena quantidade de cache é importante por causa de todos os recursos que vimos, mas a partir de um certo ponto, o tamanho do cache acaba fazendo pouca diferença. No final das contas, a melhor forma de melhorar o desempenho do HD é comprando mais memória :). No caso do Windows XP, verifique a configuração do cache de disco no Painel de Controle > Sistema > Avançado > Configurações > Avançado > Uso de memória, mudando de "Uso dos programas" para "Cache do sistema". No caso do Windows 98/ME a configuração fica no Painel de Controle > Sistema > Performance, onde a opção "Servidor de rede" é a que reserva mais memória para o cache. No caso do Linux, o cache é gerenciado de forma automática pelo sistema, usando a memória disponível, de forma que não é necessária nenhuma configuração adicional.
Atualmente muito se fala nos HDs híbridos, onde é utilizado um cache maior, feito de memória Flash. A principal vantagem neste caso é que os dados armazenados no cache são preservados mesmo ao desligar o micro, permitindo que sejam usados no boot seguinte. Muitos arquivos carregados durante o boot (sobretudo arquivos pequenos) podem então ficar permanentemente armazenados no cache, tornando mais rápido o boot e o carregamento dos programas mais usados. Veremos mais detalhes sobre os HDs híbridos e outras tecnologias similares mais adiante.
MTBF e service life
Duas informações que constam nas especificações dos HD e que são freqüentemente mal entendidas são o MTBF e o service life, que se destinam a dar uma idéia estimada da confiabilidade do HD. MTBF significa "Mean Time Between Failures" ou "tempo médio entre falhas". A maioria dos HDs de baixo custo, destinados ao mercado doméstico, possuem MTBF de 300.000 ou 600.000 horas, enquanto os modelos high-end, ou destinados a servidores, normalmente ostentam um MTBF de 1.200.000 horas. Complementando temos o "service life" ou "component design life", que normalmente é de 5 anos. Como era de se esperar, o service life indica o tempo de vida "recomendado" pelo fabricante. Como o HD é composto por componentes mecânicos, um certo desgaste é acumulado durante o uso, culminando na falha do HD. Um service life de 5 anos indica que o HD é projetado para durar 5 anos e que a grande maioria das unidades deve realmente resistir ao tempo especificado. O MTBF, por sua vez, não é uma indicação do tempo de vida do HD, mas sim indica a percentagem de chance do HD apresentar defeito antes do final do service life. Se o service life é de 5 anos e o MTFB é de 600.000 horas, significa que existe uma possibilidade de 1.4% do seu HD apresentar defeito antes disso. Parece complicado, mas na verdade não é tanto :). A idéia é que se você tivesse um datacenter com 1.000 HDs iguais, um deles pifaria em média a cada 600.000 horas somadas (somando os 1.000 HDs), ou seja a cada 25 dias, ao longo dos primeiros 5 anos de uso.
Depois isso, você pode esperar que a taxa de mortalidade seja cada vez maior nos anos seguintes, embora um pequeno número dos HDs possa resistir a 10 anos de uso ou mais.
Outra forma de explicar seria que, se você substituísse seu HD por outro igual a cada 5 anos, aposentando os antigos, seriam necessárias (em média) 600.000 horas, ou seja, 68.4 anos para que você perdesse os dados por causa de falha em um dos HDs. Ou seja, tudo gira em torno de possibilidades. Se você for "sortudo", mesmo um HD com MTBF de 1.200.000 horas pode pifar no primeiro mês de uso, da mesma forma que o HD de 200 reais do vizinho pode resistir durante 10 anos e ainda voltar a funcionar depois de removido o pó acumulado ;). O MTBF apenas serve como um indicativo da possibilidade de qualquer um dos dois extremos ocorrer. Outra questão interessante é sobre como o MTBF é calculado, já que obviamente o fabricante não tem como realizar um teste de 5 anos antes de colocar um novo HD no mercado. Normalmente o número é calculado com base nos materiais e tecnologia usados na fabricação, simulações, dados estatísticos sobre outros modelos similares lançados anteriormente e, em geral, também um teste piloto de curta duração, usando algumas dezenas de unidades. Complementando, temos também o "Start/Stop Cycles", ou seja, o número de ciclos de desligamento que o drive é projetado para suportar. Quando o HD é ligado, o motor de rotação precisa realizar um esforço maior que o habitual para acelerar os discos, o que acentua o desgaste. Nos HDs antigos, onde ainda não são utilizadas rampas para estacionar as cabeças de leitura, existe também o desgaste causado pelo atrito das cabeças ao tocar a landing zone a cada desligamento. Contam não apenas o número de vezes em que o micro é desligado, mas também o número de vezes que o HD entra em modo de economia de energia. Os HDs atuais normalmente são projetados para suportarem 50.000 ciclos, de forma que este normalmente não é um problema dentro do uso normal. Tenha apenas o cuidado de não configurar o tempo de desligamento do HD com valores muito agressivos, como de 1 em 1 minuto por exemplo. Se o HD precisar acelerar 30 vezes por hora, pode ter certeza de que isso poderá levar a uma falha prematura mais cedo ou mais tarde. :) Como sempre, estamos falando sobre probabilidade e não sobre dados infalíveis. Um exemplo histórico são os IBM Deskstar 75GX que, devido a um conjunto de problemas de projeto, possuíam uma taxa de mortalidade assustadoramente alta, embora possuíssem um MTBF de 500.000 horas.
O caso foi tão grave que acabou dando origem a uma ação coletiva por parte dos usuários afetados, que levou a um recall dos drives.
Pouco depois a IBM decidiu sair do ramo de produção de HDs, vendendo toda a divisão para a Hitachi. Como de praxe, a única forma de se proteger contra falhas é fazer backups regulares. Existe ainda a opção de utilizar um sistema RAID 1, onde temos dois HDs e o segundo armazena uma cópia atualizada do conteúdo do primeiro. O RAID não substitui o backup, mas evita que seu servidor ou máquina de trabalho fique fora do ar enquanto você restaura os dados.
As interfaces
Assim como outros componentes, as interfaces usadas como meio de conexão para os HDs passaram por um longo caminho evolutivo. As placas-mãe usadas nos primeiros PCs sequer possuíam interfaces de disco embutidas. Naquela época, as interfaces IDE ainda não existiam, de forma que novas interfaces eram vendidas junto com os HDs e instaladas em slots ISA disponíveis. A primeira interface foi criada pela Seagate, para uso em conjunto com o ST-506, um HD de 5 MB. Em seguida foi lançado o ST-412, de 10 MB. As duas interfaces são chamadas respectivamente de MFM e RLL devido ao método de codificação usado. Além da Seagate, estes HDs e interfaces foram produzidos também por outros fabricantes, como a Quantum e a Maxtor. Em 1985 a Quantum lançou um produto bastante peculiar, o "Plus HardCard", que era um HD RLL de 20 MB onde tanto o HD quanto a controladora eram integrados a uma única placa ISA, e o "HD" era instalado diretamente no slot, sem ocupar uma das baias do gabinete. Como você pode imaginar, estes HDs eram um tanto quanto problemáticos, pois a placa era presa por um único parafuso, o que causava problemas de vibração excessiva e barulho. Mesmo assim, o Plus HardCard foi um produto relativamente popular na época:
O padrão seguinte foi o ESDI (Enhanced Small Device Interface), criado por um consórcio de diversos fabricantes, incluindo a Maxtor. As interfaces ESDI ainda eram instaladas em slots ISA, mas trabalhavam a uma velocidade muito maior que as MFM e RLL, oferecendo um barramento teórico de 3 MB/s. É bem pouco para os padrões atuais, mas os HDs da época trabalhavam com taxas de transferências muito mais baixas, de forma que a velocidade acabava sendo mais do que satisfatória.
IDE
Tanto as interfaces MFM e RLL quanto a ESDI possuem uma característica em comum, que é o fato de a controladora fazer parte da interface (e não do próprio HD, como temos hoje em dia). Naturalmente, integrar a controladora ao HD oferece diversas vantagens, pois elimina os problemas de sincronismo causados pelo uso de cabos longos e simplifica todo o design. Não demorou para que os fabricantes percebessem isso. Surgiu então o padrão IDE, abreviação de "Integrated Drive Eletronics" (que indica justamente o uso da controladora integrada), desenvolvido pela Quantum e a Western Digital. Os primeiros HDs e interfaces IDE chegaram ao mercado em 1986, mas inicialmente não existia um padrão bem definido, o que fez com que os primeiros anos fossem marcados por problemas de compatibilidade entre os produtos dos diferentes fabricantes. Em 1990 o padrão foi ratificado pelo ANSI, dando origem ao padrão ATA. Como o nome "IDE" já estava mais difundido, muita gente continuou usando o termo "IDE", e outros passaram a usar "IDE/ATA" ou simplesmente "ATA", fazendo com que os dois termos acabassem virando sinônimos. As primeiras placas IDE traziam apenas uma ou duas portas IDE e eram instaladas em um slot ISA de 16 bits. Mas, logo os fabricantes passaram a integrar também outros conectores, dando origem às placas "super-ide", que eram usadas na grande maioria dos micros 386 e 486. As placas mais comuns incluíam uma porta IDE, uma porta FDD (para o drive de disquete), duas portas seriais e uma paralela, além do conector do joystick:
Placa super-ide, usada em micros 386 e 486
Como você pode ver, estas placas eram configuradas através de um conjunto de jumpers, já que na época ainda não existia plug-and-play. Os jumpers permitiam configurar os endereços de IRQ, DMA e I/O usados, além de desativar os componentes individualmente. Se você precisasse de duas portas paralelas, por exemplo, utilizaria duas placas e configuraria uma delas para usar o IRQ 5 e endereço de I/O 378 e a outra para usar o IRQ 7 e o endereço de I/O 278. A partir de um certo ponto, os fabricantes passaram a integrar os controladores diretamente no chipset da placa-mãe, dando origem às placas com conectores integrados que conhecemos. A exceção ficou por conta do conector do joystick, que passou a ser integrado nas placas de som.
Inicialmente, as interfaces IDE suportavam apenas a conexão de HDs. Devido a isso, os primeiros drives de CD utilizavam interfaces proprietárias, incorporadas à placa de som, ou mesmo controladoras SCSI. Na época eram comuns os "kits multimídia", que incluíam o CD-ROM, placa de som, caixinhas e microfone. Para solucionar o problema, foi desenvolvido o protocolo ATAPI (AT Attachment Packet Interface) que tornou-se rapidamente o padrão, riscando as interfaces proprietárias do mapa. É graças a ele que você pode comprar um drive de CD ou DVD e instalá-lo diretamente em uma das portas IDE, sem ter que comprar junto uma placa de som do mesmo fabricante. :) Na placa-mãe você encontra duas portas IDE (primária e secundária). Mesmo com a popularização das interfaces SATA, as portas IDE ainda continuam sendo incluídas nas placas recentes (muitas placas passaram a trazer apenas uma porta IDE, mas deve demorar mais um pouco até que elas desapareçam completamente).
Cada uma das portas permite instalar dois drives, de forma que podemos instalar um total de 4 HDs ou CD-ROMs na mesma placa:
Existem casos de placas-mãe com 4 portas IDE (permitindo usar até 8 drives) e também controladoras IDE PCI, que incluem duas portas adicionais, que podem ser usadas em casos onde você precise usar mais do que 4 drives IDE no mesmo micro. Para diferenciar os dois drives instalados na mesma porta, é usado um jumper, que permite configurar cada drive como master (mestre) ou slave. Dois drives instalados na mesma porta compartilham o barramento oferecido por ela, o que acaba sempre causando uma pequena perda de desempenho. Por isso, quando são usados apenas dois drives (um HD e um CD-ROM, por exemplo), é preferível instalar cada um em uma das portas, deixando ambos jumpeados como master. Ao adicionar um terceiro, você poderia escolher entre instalar na primeira ou segunda porta IDE, mas, de qualquer forma, precisaria configurá-lo como slave, mudando a posição do jumper. Instalar cada drive em uma porta separada ajuda principalmente quando você precisa copiar grandes quantidades de dados de um HD para outro, ou gravar DVDs, já que cada drive possui seu canal exclusivo com o chipset. No Windows, os drives são simplesmente identificados de forma seqüencial. O HD instalado como master da IDE primária apareceria no Windows Explorer como "C:" e o CD-ROM, instalado na IDE secundária como "D:", por exemplo. Se você adicionasse um segundo HD, instalado como slave da primeira IDE, ele passaria a ser o "D:" e o CD-ROM o "E:". No Linux, os drives recebem endereços fixos, de acordo com a posição em que forem instados:
IDE primária
Master = /dev/hda
Slave = /dev/hdb
IDE secundária
Master = /dev/hdc
Slave = /dev/hdd
O cabo IDE possui três encaixes, onde um é ligado na placa-mãe e os outros dois são ligados cada um em um dos dois dispositivos. Mesmo que você tenha apenas um dispositivo IDE, você deverá ligá-lo no conector da ponta, nunca no conector do meio. O motivo para isto, é que, ligando no conector do meio, o cabo ficará sem terminação, fazendo com que os dados venham até o final do cabo e retornem na forma de interferência, prejudicando a transmissão. Como de praxe, as interfaces IDE/ATA passaram por um longo caminho evolutivo. As interfaces antigas, usadas em micros 386/486 e nos primeiros micros Pentium, suportam (de acordo com seu nível de atualização), cinco modos de operação, que vão do PIO mode 0, ao PIO mode 4:
Modo de Operação Taxa de transferência
PIO mode 0 3.3 MB/s
PIO mode 1 5.2 MB/s
PIO mode 2 8.3 MB/s
PIO mode 3 11.1 MB/s
PIO mode 4 16.6 MB/s
As mais recentes suportam também o Multiword DMA, que é um modo de acesso direto, onde o HD ou CD-ROM pode transferir dados diretamente para a memória, sem que o processador precise se envolver diretamente na transferência. O uso do DMA melhora bastante o desempenho e a responsividade do sistema, evitando que o micro "pare" enquanto um programa pesado está sendo carregado, ou durante a gravação de um CD, por exemplo. Apesar disso, o Multiword DMA não chegou a ser muito usado, pois não era diretamente suportado pelo Windows 95 e os drivers desenvolvidos pelos fabricantes freqüentemente apresentavam problemas de estabilidade. Para piorar, muitos drives de CD e HDs antigos não funcionavam quando o DMA era ativado. A solução veio com o padrão ATA-4, ratificado em 1998. Ele nada mais é do que o padrão Ultra ATA/33 (o nome mais popularmente usado) que é usado em placas para micros Pentium II e K6-2 fabricadas até 2000.
Nele, a taxa de transferência máxima é de 33 MB/s e é suportado o modo UDMA 33, que permite transferências diretas para a memória também a 33 MB/s.
É graças a ele que você pode assistir a filmes em alta resolução e DVDs no seu PC sem falhas Você pode fazer uma experiência, desativando temporariamente o suporte a UDMA para o seu DVD-ROM para ver o que acontece. No Linux, use o comando "hdparm -d0 /dev/dvd" (como root). No Windows, acesse o gerenciador de dispositivos, acesse as propriedades do drive e desmarque a opção referente ao DMA. Tente agora assistir a um DVD. Você vai perceber que tanto o vídeo quanto o som ficam cheios de falhas, tornando a experiência bastante desagradável. Isso acontece porque, com o UDMA desativado, o processador precisa periodicamente parar o processamento do vídeo para ler mais dados no DVD. Quanto mais rápido o processador, mais curtas são as falhas, mas elas persistem mesmo em um processador de 2 ou 3 GHz. Para reverter, use o comando "hdparm -d1 /dev/dvd" ou marque novamente a opção do DMA, no caso do Windows. Depois que o problema do DMA foi finalmente resolvido, os fabricantes se concentraram em aumentar a velocidade das portas. Surgiram então os padrões ATA-5 (Ultra ATA/66), ATA-6 (Ultra ATA/100) e ATA-7 (Ultra ATA/133), que é o usado atualmente. Eles suportam (respectivamente), os modos UDMA 66, UDMA 100 e UDMA 133, além de manterem compatibilidade com os padrões anteriores:
Modo de Operação Taxa de Transferência
ATA-4 (Ultra ATA/33, UDMA 33) 33 MB/s
ATA-5 (Ultra ATA/66, UDMA 66) 66 MB/s
ATA-6 (Ultra ATA/100, UDMA 100) 100 MB/s
ATA-7 (Ultra ATA/133, UDMA 133) 133 MB/s
As portas ATA/133 usadas nas placas atuais são uma necessidade, por dois motivos. O primeiro é que os HDs atuais já superam a marca dos 70 ou 80 MB/s de taxa de transferência ao ler setores contínuos, e a interface precisa ser substancialmente mais rápida que o HD para absorver também as transferências feitas a partir do cache, que são bem mais rápidas. O segundo motivo é que só a partir das interfaces ATA/100 foi introduzido o suporte a HDs IDE com mais de 137 GB (decimais) de capacidade, como veremos em detalhes a seguir.
Cabo IDE de 80 vias (à esquerda) e cabo de 40 vias
A adição dos 40 finos adicionais é uma história interessante, pois eles não se destinam a transportar dados. Tanto os conectores quanto os encaixes nos drives continuam tendo apenas 40 pinos, mantendo o mesmo formato dos cabos anteriores. Os 40 cabos adicionais são intercalados com os cabos de dados e servem como neutros, reduzindo o nível de interferência entre eles. Este "upgrade" acabou sendo necessário, pois os cabos IDE de 40 vias foram introduzidos em 1986, projetados para transmitir dados a apenas 3.3 MB/s! Os cabos de 80 vias são obrigatórios para o uso do UDMA 66 em diante. A placa-mãe é capaz de identificar o uso do cabo de 80 vias graças ao pino 34, que é ligado de forma diferente. Ao usar um cabo antigo, de 40 vias, a placa baixa a taxa de transmissão da interface, passando a utilizar o modo UDMA 33. Veja que no caso dos CD-ROMs e DVDs, ainda é comum o uso dos cabos de 40 vias, simplesmente porque, como vimos, eles ainda utilizam o modo UDMA 33. Entretanto, se você precisar instalar um HD junto com o drive óptico, é interessante substituir o cabo por um de 80 vias, caso contrário o desempenho do HD ficará prejudicado. Outra exigência trazida pelos novos padrões é o uso de cabos com no máximo 45 centímetros de comprimento, já que acima disso o nível de interferência e atenuação dos sinais passa a prejudicar a transmissão dos dados. O padrão ATA original (o de 1990) permitia o uso de cabos de até 90 centímetros (!) que não são mais utilizáveis hoje em dia, nem mesmo para a conexão do drive de CD/DVD. Mais uma mudança introduzida pelos cabos de 80 vias é o uso de cores para diferenciar os três conectores do cabo. O conector azul deve ser ligado na placa-mãe, o conector preto é ligado no drive configurado com master da interface, enquanto o conector do meio (cinza) é usado para a conexão do segundo drive, caso presente. Os cabos de 80 vias também suportam o uso do sistema cabe select (nos de 40 vias o suporte era opcional), onde a posição dos drives (master/slave) é determinada pelo conector do cabo ao qual eles estão ligados, eliminando a possibilidade de conflitos, já que instalar dois drives configurados como master na mesma interface normalmente faz com que ambos deixem de ser identificados no Setup.