Escritos
B. Piropo
Anteriores:
< Trilha Zero >
Volte de onde veio
25/03/1996
< EIDE e Fast ATA XX: LBA >

O terceiro tipo de tradução, embora de implementação mais difícil por empregar um algoritmo de conversão mais complexo, é o de concepção mais simples e por isto mesmo o mais engenhoso. E, ao contrário do que muitos pensam, não é uma das novidades do "padrão" EIDE. Na verdade já constava da implementação original do padrão ATA. Chama-se LBA, de Logical Block Adressing (endereçamento lógico de blocos) e é a forma mais simples de identificar setores de um drive.

Duvida? Pois chame uma criança e forneça-lhe as noções básicas sobra a geometria de um disco rígido. Diga-lhe que é constituido por uma pilha de discos contendo um certo número de trilhas concêntricas em cada face e que cada trilha é subdividida em setores de mesmo tamanho. Então pergunte-lhe como ela faria para identificar cada um dos setores. Aposto que ela nem vai demorar muito para lhe responder que a forma mais simples seria numerá-los seqüencialmente, desde o primeiro até o último. Se a criança fosse esperta, seria até capaz de descrever a maneira mais fácil de fazê-lo. E diria: "Suponha que seu disco rígido seja formado por uma pilha de três discos. Portanto, terá seis faces. Suponha ainda que cada face tenha mil trilhas concêntricas, cada uma com 50 setores. Então escolha uma ordem qualquer para as faces: por exemplo, diga que a primeira é a que está em baixo de todas e ordene as demais seqüencialmente de baixo para cima. Depois, faça o mesmo com as trilhas: escolha, por exemplo, a mais externa para ser a primeira e ordene seqüencialmente as outras, de fora para dentro. E finalmente repita o procedimento para os setores: escolha um qualquer para ser o primeiro e diga que os demais estão ordenados seqüencialmente, por exemplo, no sentido dos ponteiros do relógio. Agora diga que o primeiro setor da primeira trilha da primeira face é o setor zero. E vá numerando em ordem crescente os demais setores desta trilha até dar a volta completa e chegar no último (que, como você começou com zero, será o de número 49). Como não dá para prosseguir na mesma trilha, salte para a seguinte e dê o número 50 ao seu primeiro setor. Continue numerando e passando para a trilha seguinte até acabarem os 50000 setores da primeira face. Vá então para o primeiro setor da primeira trilha da face seguinte e prossiga. Continue assim face a face e ao terminar terá chegado ao último setor da última trilha da última face, o de número 299999. E cada setor (ou "bloco") poderá ser identificado inequivocamente por seu número, ou "endereço lógico". Pois isto é o endereçamento lógico de blocos, ou LBA.

Acha que uma criança não seria capaz de tal façanha? Engana-se: há dois séculos, acompanhando por sobre o ombro do pai os cálculos que ele fazia da folha de pagamento de seus empregados, uma criança com menos de três anos foi capaz de corrigir o total. É verdade que chamava-se Carl Friedrich Gauss. Mas era uma criança.

O padrão ATA estabeleceu que quando se emprega o LBA o número do setor é armazenado em um conjunto de quatro registradores, usando todos os oito bits dos três primeiros e apenas quatro do último. O que resulta em um total de 28 bits e significa que o número de qualquer setor de um disco rígido que use o LBA tem que "caber" em 28 bits. Como cada setor tem 512 bytes, é fácil concluir que a capacidade máxima teórica de um disco rígido que empregue este esquema de endereçamento é de 128 Gigabytes. Como hoje em dia os maiores discos rígidos ATA estão na casa dos 2Gb, ainda vai levar algum tempo até que este limite se torne inconveniente.

O LBA, por sua simplicidade, é a forma ideal de endereçamento e vem sendo adotado internamente pela maioria dos sistemas operacionais modernos. Mas ao ser usado com DOS e Windows tende a retardar ligeiramente o acesso a disco, já que as solicitações feitas pelo DOS usam o velho esquema CHS empregado pela Int 13h e o BIOS precisa "traduzi-las" para o endereço LBA. Mas a tendência é que breve ele seja adotado universalmente pelos discos ATA. Como ja é, desde o início, pelo padrão SCSI.

Se o BIOS de sua máquina e seu disco rígido suportam o endereçamento por LBA, ele é a melhor forma de romper as limitações de capacidade do padrão ATA original. E para fazê-lo, basta habilitar a opção correspondente no setup. Mas cuidado: escolhida a opção e gravados dados no disco, evite a todo o custo alterá-la. E se você tem uma razão imperiosa para fazê-lo (como por exemplo estar usando apenas os primeiros 504Mb de um disco rígido de maior capacidade por ter ajustado equivocadamente o setup), faça antes um backup completo. Porque a maioria dos BIOS efetua a tradução de tal forma que a ordem dos setores não se altera com a opção escolhida no setup, e neste caso alterá-la não causa problema. Mas alguns BIOS usam algorítmos nos quais a ordem muda conforme a opção selecionada. E neste caso alterar o ajuste causaria um completo embaralhamento dos dados. Pelas mesmas razões, a transferência entre diferentes computadores de discos rígidos contendo dados pode redundar na perda dos dados caso os computadores usem esquemas de tradução distintos. Especialmente ao se transferir um disco de um computador antigo que não suporta tradução para um moderno que a suporta - ou vice-versa. Na maioria das vezes não há problema. Mas lembre-se que se houver, a perda de dados pode ser irrecuperável. E jamais deixe de fazer um backup completo caso pretenda fazer o upgrade de sua placa-mãe.

Pronto. Com o LBA vimos o último dos esquemas de endereçamento usado pelos discos EIDE para contornar a última das limitações do velho padrão ATA.

O que, portanto, encerra esta série.

Graças a Deus. Porque vocês, não sei. Mas eu, não agüentava mais...

B. Piropo