Conhecendo seu "HardDisk"

15-12-2012 15:13

 

HARD DISKS:

Os limites de capacidade para os HDs
Ao longo da evolução dos micros PCs, existiram vários limites de capacidade dos HDs, causados por limitações nos endereços
usados pelos BIOS. Instalar um HD IDE de grande capacidade num micro antigo pode ser bastante frustrante, com o BIOS da
placa reconhecendo apenas os primeiros 504 MB ou os primeiros 7.88 GB do HD e o sistema operacional se recusando a carregar
depois de instalado.
Estas limitações surgiram devido à falta de visão por parte dos projetistas que desenvolveram o padrão IDE e as instruções INT
13h do BIOS, as responsáveis pelo acesso ao HD.
Elas foram originalmente desenvolvidas para serem usadas pelo PC AT, mas acabaram sendo perpetuadas até os dias de hoje.
Naquela época, HDs com mais de 504 MB pareciam uma realidade muito distante.
Como vimos, ao formatar o HD, ele é dividido em clusters, que são a menor parcela do disco endereçada pelo sistema de
arquivos. Cada cluster pode ter de 512 bytes a 32 KB, de acordo com o sistema de arquivos e a opção usada durante a
formatação.
Entretanto, num nível mais baixo, os setores do HD precisam ser endereçados diretamente. Cada setor possui apenas 512 bytes,
de forma que é necessária uma grande quantidade de endereços para endereçá-los individualmente.
O padrão IDE reserva 16 bits para o endereçamento dos cilindros (65,536 combinações), 4 bits para o endereçamento das
cabeças de leitura (16 combinações) e 8 bits para os setores dentro de cada cilindro (256 combinações), o que permite endereçar
um total de 256 milhões de setores. Como cada setor tem sempre 512 bytes, teríamos, a princípio, suporte a HDs de até 128 GB.
Entretanto, o BIOS possui outras limitações para o acesso a discos (serviço chamado de INT 13h), reservando 10 bits para o
endereçamento dos cilindros (1,024 combinações), 8 bits para as cabeças de leitura (256) e apenas 6 bits para os setores (63
combinações, pois o endereço 0 é reservado), o que permite endereçar 1.61 milhões de setores e consequentemente discos de
até 7.88 GB.
Como é preciso usar tanto a interface IDE quanto as instruções INT 13h do BIOS, acabamos por juntar suas limitações. O padrão
IDE reserva 16 bits para o endereçamento dos cilindros, porém o BIOS só utiliza 10. O BIOS por sua vez reserva 8 bits para o
endereçamento das cabeças de leitura, porém só pode utilizar 4 por limitações da interface. A capacidade de endereçamento
então acaba sendo nivelada por baixo, combinando as limitações de ambos os padrões, permitindo endereçar discos de no
máximo 504 MB, limite para a maioria dos micros 486 ou inferiores. Este método de endereçamento é chamado de Normal ou
CHS (cilindro, cabeça de leitura e setor). Veja a representação na tabela:
Esta configuração é apenas lógica, o modo como o BIOS enxerga o disco rígido, não tem necessariamente relação com a
organização real do HD. A placa lógica de um HD de 504 MB pode dizer que tem 16 cabeças leitura e 63 setores por cilindro de
forma a utilizar todos os endereços disponibilizados pelo BIOS, mas internamente endereçar os setores de forma diferente. Na
prática não faz muita diferença, desde que cada setor receba uma identificação única.
Na época do 286, onde eram usados HDs de no máximo 20 ou 40 MB, este limite não incomodava ninguém; mas a partir do
momento em que passamos a ter HDs de 800 MB ou mais, alguma coisa precisava ser feita.
A primeira solução foi o Extended CHS ou modo Large. Este padrão continua com as mesmas limitações da interface IDE e do
INT 13, mas usa um pequeno truque para burlar suas limitações.
O BIOS possui mais endereços para as cabeças de leitura (256 contra 16), porém, a interface IDE possui mais endereços para os
cilindros (65.536 contra 1024). Usando o modo Large passamos a utilizar um tradutor, um pequeno programa integrado ao BIOS
encarregado de converter endereços. A conversão é feita usando um simples fator multiplicativo: a interface IDE permite mais
endereços para o cilindro, mas ao mesmo tempo permite menos endereços para a cabeça de leitura, podemos então aplicar a
tradução de endereços dividindo o número de endereços do cilindro e multiplicando os endereços para cabeças de leitura pelo
mesmo número. Podem ser usados os números 2, 4, 8 e 16.
Generated by Foxit PDF Creator © Foxit Software
https://www.foxitsoftware.com For evaluation only.
Se por exemplo, instalássemos um drive com uma geometria lógica de 3,068 cilindros, 16 cabeças e 63 setores, usando o fator 4
passaríamos a ter 3.086 / 4 = 767 cilindros, 16 x 4 = 64 cabeças e 63 setores, veja que agora temos endereços dentro dos limites
do BIOS e por isso podemos utilizar os 1.5 GB do disco sem problemas:
O modo Large nunca foi muito utilizado, pois logo depois surgiu uma solução bem melhor para o problema, conhecida como modo
LBA, contração de "Logical Block Addressing" ou endereçamento lógico de blocos.
A idéia é a seguinte: o padrão IDE reserva 16 bits para o endereçamento do cilindro, 4 bits para o endereçamento da cabeça de
leitura e mais 8 bits para o setor, totalizando 28 bits de endereçamento. O modo LBA abandona o endereçamento CHS, com
endereços independentes para cilindros, cabeças e setores, passando a adotar um endereço único. Os setores passam então a
receber endereços seqüenciais, 0, 1, 2, 3, 4, etc. assim como os clusters no sistema FAT. Os 28 bits de endereçamento permitem
então 228 milhões de endereços, o que corresponde a HDs de até 128 GB (137 GB na notação decimal).
Claro que, para usar o LBA, é preciso que o disco rígido suporte este modo de endereçamento. Felizmente, praticamente todos os
HDs acima de 504 MB e todos os HDs atuais suportam o LBA. Na verdade, o modo Large só deve ser usado nos raríssimos casos
de HDs com mais de 504 MB, que por ventura não suportem o LBA.
Veja que para endereçar os 128 GB permitidos pelo LBA, é preciso abandonar o uso das instruções INT 13h, o que significa
desenvolver novas instruções de acesso à disco para o BIOS. A primeira geração de placas a utilizar o modo LBA (fabricadas até
1999) ainda estavam presas às instruções INT 13h e por isso continuavam limitadas a HDs de 7.88 GB (8.4 GB decimais). Em
muitas das placas fabricadas entre 1998 e 1999 é possível solucionar o problema através de um upgrade de BIOS. O maior
problema no caso é encontrar os arquivos de atualização, já que os fabricantes não costumam dar suporte a placas tão antigas.
As placas fabricadas a partir daí, incluem as "INT 13h Extensions", ou seja, extensões para o conjunto original, que permitem
bipassar as limitações e acessar HDs de até 128 GB, como previsto pelo padrão IDE.
Naturalmente, não demorou para que este limite também se tornasse um problema. A solução definitiva veio em 2001, juntamente
com a introdução das interfaces ATA/100 (ATA-6), onde foi incluída uma extensão para os endereços disponíveis. Passaram a ser
usados 48 bits para o endereçamento, ao invés dos 28 anteriores, resultando em uma capacidade de endereçamento 1.048.576
vezes maior. A extensão foi rapidamente adotada pelos fabricantes, de forma que todas as placas fabricadas a partir do final de
2001 já são capazes de endereçar HDs IDE de grande capacidade normalmente.
Para os casos de placas antigas que não possuam upgrades de BIOS disponíveis, existem um conjunto de soluções criativas que
podem ser usadas. Normalmente, o valor destas placas é muito baixo, de forma que normalmente você não vai querer perder
muito tempo com elas. Mesmo assim, é interessante conhecer as possibilidades, mesmo que apenas para referência histórica.
A primeira é instalar um DDO (Dynamic Drive Overlay), um software tradutor, instalado no primeiro setor do HD, que passa a ser
carregado no início do boot, antes do carregamento do sistema operacional.
O DDO bipassa as instruções do BIOS, permitindo superar suas limitações. A Ontrack comercializa o "Disk Go!", que funciona
com HDs de qualquer fabricante. O problema é que ele é um programa comercial, enquanto as versões dos fabricantes são
gratuitas.
Usar um driver de Overlay traz várias desvantagens: eles não são compatíveis com muitos programas de diagnóstico, não
permitem o uso dos drivers de Bus Mastering, o que prejudica a performance do HD e do sistema como um todo. Também temos
problemas com muitos boot managers, dificultando a instalação de mais de um sistema operacional no mesmo HD.
Uma segunda solução é simplesmente desativar as portas IDE da placa mãe e passar a usar uma interface IDE externa. Elas
permitem também instalar portas ATA/100 ou ATA/133 em placas que contam apenas com interfaces ATA/33, que limitam o
desempenho dos HDs atuais. A grande maioria também oferece a possibilidade de usar RAID:

Crie o seu site grátis Webnode