CHS para mapeamento LBA - (Armazenamento em Disco)

1

Antes do LBA, você simplesmente tinha o mapeamento físico de um disco, que originalmente acessava o disco com o BIOS em uma antiga máquina compatível com o IBM-PC e seria parecido com o seguinte:

  • Número do cilindro: (10b)
    • 0-1024 (1024 = 2 ^ 10)
  • Número da cabeça: (8b)
    • 0-256 (256 = 2 ^ 8)
  • Número do setor : (6b)

Endereço CHS total: 24b (10 + 8 + 6)

De volta ao dia, o tamanho médio (arquivo | bloco | setor) era de 512B.

Exemplo de wikipedia :

512(bytes) × 63(sectors) x 256(heads) × 1024(cylinders) = 8064 MiB (yields what is known as 8 GiB limit) 

O que eu estou confuso é o que um head significa, quando chamado de heads-per-cylinder na fórmula LBA. Não faz sentido para mim porque, pelo que sei, uma cabeça é cabeça , e a menos que a mídia removível, cada prato tenha dois deles (superior, inferior), um para cada uma de suas superfícies.

Naminhaopinião,fariamaisdesdequesereferisseaelescomoheads-per-diskouheads-per-surface,jáqueumcilindropercorretodoodisco(váriasbandejas).

Endereçamentodeblocoslógicos:

Fórmula:A=(c⋅Nheads+h)⋅Nsectors+(s−1)

  • A-endereçodeblocológico
  • Nheads-Númerodecabeçasemumdiscoheads-per-disk
  • Nsectors-Númerosdesetoresemumatrilhasectors-per-track
  • c,h,s-éocilindro,acabeça,osnúmerosdosetor24-bitstotal(10+8+6)

Olhandoparaoprimeiroexemploem aqui :

For geometry 1020 16 63 of a disk with 1028160 sectors CHS 3 2 1 is LBA  3150=(3× 16+2)× 63

Geometria: (isto é definido pelo fabricante)

  • Cilindros - 1020
  • Cabeças-16
  • Setores - 63
por Jordan Davis 18.09.2015 / 02:40

1 resposta

6

No geral, você é bastante desleixado com a terminologia, de modo que é uma fonte de mais confusão.

1024 bit addressable number (1024 = 2^10)

O IBM PC / XT usava um controlador de disco Western Digital WD1010 que usava (em registros de hardware) um número de cilindro de 10 bits.
O primeiro cilindro tem o endereço 0, então existem 1024 endereços de cilindro. " Número endereçável " é sem sentido.

-1 for the "boot sector" (c-0,h-0,s-0)
63 bit addressable number (63 = 2^6 - 1)

O primeiro setor (de cada faixa) é o endereço 1, portanto, um número de setor de 6 bits pode endereçar até 63 setores (números de setor 1 a 63) em cada trilha.
Não há endereço de setor zero. Não é reservado. Não existe.
A subtração desse deslocamento é uma necessidade aritmética e não está relacionada de alguma forma ao setor de inicialização. O uso do primeiro setor (ou de qualquer setor) da unidade de disco para inicialização (ou qualquer função) é irrelevante para subtrair o deslocamento inicial.

So I get you can get a theoretical maximum address of the following:

512(bytes) × 63(sectors) x 256(heads) × 1024(cylinders) = 8064 MiB

Não, isso é uma capacidade máxima.
Os endereços de disco são para setores, não bytes.

I understand the head number is an 246 bit addressable number...

Huh ??? Um "número endereçável" ???
Um dos parâmetros do drive é o número de cabeças (em um cilindro). Um dos números em um endereço CHS é o número da cabeça.
246 bits ???

What I'm confused on is what a head actually is when it is referred to as heads-per-track.

Heads-per-track é algo que você criou, já que não há esse parâmetro para o disco rígido típico usado em um PC (ou seja, esse número sempre seria unidade).
Uma faixa específica seria lida e escrita por apenas uma cabeça específica de R / W. Há uma cabeça R / W por superfície. (Você provavelmente não usará uma unidade de porta dupla).
A cabeça do R / W está montada na extremidade de um braço.
Todas as cabeças e braços R / W compreendem um conjunto que é movido / girado por um atuador.
(Mas também existem unidades de disco de cabeça fixas , por exemplo, uma cabeça por faixa, que têm tempo de busca zero.)

These terms don't makes any sense to me because from what I know a head is, (the actual arm that does the read/writes) and unless it removable media each platter has two of them (top,bottom) so it really would makes more since to referred to them as heads-per-platter or heads-per-disk... and really it should be sectors-per-track, right?

Então, aparentemente você está confuso sobre o que é uma cabeça.
Você também está confundindo "prato" com "superfície". Não há exigência de que ambos os lados de um prato devam ser usados, de modo que cada superfície seja tratada como uma unidade, em vez do prato como uma unidade. Existe um parâmetro de unidade chamado sectors per track .

Now this term heads-per-track appears when you looks at the conversion from CHS-to-LBA.

Novamente, algo que você parecia ter inventado. Cabeças por faixa é unidade.

but how does the geometry 1020,16,63 translate to CHS 3,2,1 can someone please explain it to me?

O LBA é um endereço do setor.
CHS também é um endereço do setor.
Para converter um estilo de endereço para outro, é necessário especificar a geometria da unidade:

. number of cylinders  
. number of heads (per cylinder)  
. number of sectors per track

Você não pode * traduzir * a geometria para um endereço; você usa a geometria para converter um endereço.
O endereço CHS 3,2,1 é equivalente ao endereço LBA 3150 se a geometria do inversor for 1020,16,63 .

ADENDO para a pergunta revisada

In my mind it would make more since to referred to them as heads-per-disk or heads-per-surface, since a cylinder goes through the entire disk (multiple platters).

Dos numerosos documentos técnicos (dos fabricantes de unidades de disco) que eu li, a tabela de especificações para uma unidade (de porta única) listaria o número de cabeças de R / W e o < strong> número de bandejas . Nunca houve uma proporção de heads per disk , heads per surface ou heads per platter .

No meu trabalho como engenheiro de software / firmware desenvolvendo firmware de controlador, drivers de dispositivo para discos e manipuladores de sistema de arquivos, eu nunca me preocupei ou tive que usar o número de pratos. O número de pratos ou que existem duas superfícies possíveis para um prato são propriedades mecânicas que são totalmente irrelevantes para a geometria do inversor para o endereçamento CHS.

O C em CHS refere-se ao endereço do cilindro. A unidade de disco tem que (eletromecanicamente) procurar o endereço / local do cilindro solicitado, para que o conjunto da cabeça de R / W seja posicionado corretamente.

O H em CHS refere-se ao endereço da cabeça do R / W. O controlador de disco (eletricamente) seleciona a cabeça de R / W solicitada (após a busca ser completada) pelo seu endereço para acessar a trilha correta. Todas as outras cabeças R / W estão (eletricamente) desativadas.

O S no CHS refere-se ao endereço do setor. O controlador de disco (programaticamente) varre cada setor (após a seleção de busca e cabeça) à medida que gira sob a cabeça R / W (selecionada) até que o setor solicitado seja localizado (por exemplo, lê o registro de ID do setor e executa um endereço comparação).

e também Se você estiver familiarizado com a Análise dimensional, especifique o número de cabeças de uma unidade de disco, pois heads per cylinder faz mais sentido do que heads per drive .

I understand the geometry CHS numbers, but where are the (3,2,1) tuple CHS numbers coming from?

Isso é apenas um endereço CHS arbitrário escolhido para uso em exemplos de conversões para endereços LBA.

BTW
No jargão do usuário final, "disk" == disk drive.
No jargão profissional do HDD, "disco" == bandeja de disco.

    
por 18.09.2015 / 04:39