Como um disco rígido sabe onde os dados começam? [duplicado]

14

Eu sempre quis saber como um disco rígido encontra o primeiro bit de dados.

Quando um disco rígido gira, o que ele lê deve ser um fluxo circular de dados até que o cabeçote de leitura se mova para uma posição diferente.

Mas em um fluxo circular, como a unidade sabe onde estão o primeiro bit e o último bit, para que ele possa transmitir os dados na ordem correta?

    
por uzumaki 11.06.2017 / 03:57

5 respostas

2

O lê do disco.

Os dados no disco não são apenas estruturados (como @psusi diz), mas também codificados. A codificação garante que os dados gravados não possam ser confundidos com os marcadores de posição nos títulos de setor, portanto, o fluxo circular pode ser lido até que o marcador de posição de destino seja encontrado.

Pelo que entendi, os discos rígidos modernos não fazem isso; eles leem todo o círculo em um buffer, controlando onde cada setor está e usam os buffers para enviar os dados solicitados.

ATUALIZAÇÃO:

O meio magnético é um material que possui um campo magnético com duas propriedades principais: 1) ele nunca muda sozinho e 2) o dispositivo de gravação pode alterar a orientação do campo em qualquer ponto da superfície. Ao ler a mídia, o sensor detecta onde o campo está orientado em direção ao sensor e onde o campo está orientado para longe do sensor. À medida que o sensor se move pela superfície, detecta os tempos dessas transições de polaridade; a primeira camada de decodificação está traduzindo esses timings em valores bit . Devido a incertezas fisicamente necessárias neste processo, a codificação não deve exigir longos trechos da mesma polaridade; ou seja, deve ser uma codificação limitada de duração (RLL).

Os detalhes dos projetos de discos rígidos são geralmente segredos comerciais, mas existem essencialmente duas maneiras de garantir que os marcadores de setor nunca apareçam no conteúdo do setor:

  1. Crie um RLL que permita valores especiais que nunca resultarão da codificação de dados de conteúdo. Esses valores especiais podem ser usados não apenas para marcar os limites do setor, mas também para correção de erros ou qualquer outro propósito secundário.

  2. Use uma segunda camada de codificação que garanta que os valores do marcador apareçam apenas nos marcadores. Isso é um pouco como codificação de URL para permitir que caracteres especiais sejam "ocultos" em URLs, mas com uma restrição adicional equivale a limitar quantos caracteres podem ser adicionados, de modo que acaba mais parecido com a codificação base64 .

Assim, a cabeça de leitura move-se pela superfície detectando alterações de polaridade magnética, os tempos dessas mudanças são usados para determinar a seqüência correspondente de valores de bit (possivelmente incluindo alguns valores excepcionais que não representam dados armazenados), e essa sequência é usado para determinar quais setores estão sendo lidos e o conteúdo desses setores. Como o conteúdo dos setores é determinado, os dados podem ser armazenados em um buffer de estado sólido e / ou armazenados em um buffer de RAM e / ou enviados de volta para atender a uma solicitação.

    
por 11.06.2017 / 22:30
17

Os dados não são gravados como um fluxo arbitrário de uns e zeros. Está escrito em setores. Cada setor tem a carga útil dos dados do usuário e um cabeçalho. O cabeçalho contém códigos de correção de erros, bem como um campo de sincronização especial que identifica o início do setor e o número do setor para que o inversor possa saber quando encontrou o início de um setor e qual setor é.

    
por 11.06.2017 / 04:35
7

O Psusi está correto (os dados no disco estão estruturados , e partes diferentes do computador usam partes diferentes daquela estrutura), mas não chega a responder à sua pergunta.

A unidade realmente não "conhece" nada. Ele possui eletrônica de baixo nível que pode ler marcadores no disco (geralmente escritos na fábrica ou pelo próprio cabeçote da unidade), ler blocos de dados do disco ou gravar blocos de dados no disco, ou informar se um ponto em particular no disco disco está danificado ou danificado, ou que deve ser movido para um local específico no disco. Isso é tudo o que "sabe". A cabeça de leitura não decide se mover em outro lugar sozinha, algo mais acima na máquina diz para ...

    
por 11.06.2017 / 08:50
0

Além das outras respostas, os discos rígidos certamente usaram (e podem ainda) ter um prato ("cabeça" em termos de cilindro / cabeça / setor) que é reservado para dados de calibração / posicionamento, não usados armazenamento de dados do usuário.

    
por 11.06.2017 / 22:05
0

A resposta que você procura tem duas partes:

1) Um controlador de hardware

2) Um sistema de arquivos

Como você disse, em um HDD (em oposição a outras tecnologias, como SSDs), os dados reais são gravados em placas de metal redondas como anéis circulares concêntricos contendo um campo magnético padronizado. Acima dos pratos que contêm esses dados está o cabeçote de gravação que se movimenta para ler e gravar dados, muito parecido com um toca-discos de vinil. Os pratos que ele move estão ligados a um motor elétrico que controla sua rotação.

Um controlador de hardware atua como uma interface entre o sistema operacional e o disco rígido. O controlador pode ler a posição da cabeça de gravação, bem como a rotação dos pratos, e usa essa informação para decidir como posicionar a cabeça e os pratos para leitura e escrita. Ele converte solicitações de leitura e gravação do sistema operacional em sinais de controle que movem o cabeçote de gravação e rotacionam os discos, além de converter os dados paralelos provenientes do sistema operacional em uma única linha de dados serial. Ele também divide essa linha serial e decide em qual local físico, ou setor, colocar cada parte e registra essas informações de uma maneira especificada pelo sistema de arquivos.

O sistema de arquivos é uma especificação de como e onde armazenar dados. O sistema operacional do computador sabe como interpretar esse sistema de arquivos e usa esse conhecimento para se comunicar adequadamente com o controlador de hardware, neste caso dividindo os anéis circulares de dados em segmentos utilizáveis chamados setores e informando ao sistema de arquivos onde esses setores estão fisicamente localizados. O sistema de arquivos dá a cada setor um endereço, que é apenas um número único, e esse endereço é traduzido pelo controlador de hardware em uma rotação de prato específica e lê a posição da cabeça para começar a ler ou escrever.

Para mais informações, as seguintes seções nestes artigos da Wikipédia são bastante úteis:

Veja a introdução e a seção 3.1 "Gerenciamento de espaço" aqui: link

Veja a seção 2.1 "Gravação Magnética" aqui: link

    
por 13.06.2017 / 23:07