Eu sempre estava me perguntando 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 tão circular, como a unidade sabe onde estão o primeiro e o último bits, para que possa transmitir os dados na ordem correta?
hard-drive
data-transfer
uzumaki
fonte
fonte
Respostas:
Ele lê do disco.
Os dados no disco não são apenas estruturados (como o @psusi diz), mas também são codificados. A codificação garante que os dados gravados não possam ser confundidos com os marcadores de posição nos títulos do setor, para que o fluxo circular possa ser lido até que o marcador da posição de destino seja encontrado.
Pelo que entendi, os discos rígidos modernos não fazem isso; eles leem o círculo inteiro em um buffer, controlando onde cada setor está e usam os buffers para enviar de volta os dados solicitados.
ATUALIZAR:
A mídia magnética é um material que possui um campo magnético com duas propriedades principais: 1) nunca muda por si só 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, ele detecta os tempos dessas transições de polaridade; a primeira camada de decodificação está traduzindo esses tempos em valores de bits . Devido a incertezas fisicamente necessárias nesse processo, a codificação não deve exigir longos trechos da mesma polaridade; isto é, deve ser uma RLL ( Codificação Limitada em Duração ).
As particularidades dos designs dos discos rígidos geralmente são segredos comerciais, mas existem basicamente duas maneiras de garantir que os marcadores do setor nunca apareçam no conteúdo do setor:
Crie uma 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 limites do setor, mas também para correção de erros ou qualquer outro objetivo secundário.
Use uma segunda camada de codificação que garanta que os valores dos marcadores apareçam apenas nos marcadores. Isso é um pouco como a codificação de URL para permitir que caracteres especiais sejam "ocultos" em URLs, mas com uma restrição adicional equivalente a limitar quantos caracteres podem ser adicionados e, portanto, acaba mais como a codificação base64 .
Portanto, o cabeçote de leitura se move pela superfície, detectando alterações de polaridade magnética, os tempos dessas alterações são usados para determinar a sequência correspondente de valores de bits (possivelmente incluindo alguns valores excepcionais que não representam dados armazenados), e essa sequência é usada para determine quais setores estão sendo lidos e o conteúdo desses setores. Conforme 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.
fonte
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 de 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 a unidade possa saber quando encontrou o início de um setor e qual é o setor.
fonte
Psusi está correto (os dados no disco estão estruturados e diferentes partes do computador usam diferentes partes dessa estrutura), mas na verdade não atendem à sua pergunta.
A unidade realmente "não sabe" nada. Possui componentes eletrônicos de baixo nível que podem ler marcadores no disco (geralmente gravados 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 dizer se um determinado local no disco está danificado ou danificado ou 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 para outro lugar sozinha, algo mais alto na máquina diz para ...
fonte
Além das outras respostas, os discos rígidos certamente costumavam ter (e ainda podem ter) um prato ("cabeçote" em termos de cilindro / cabeçote / setor), reservado para dados de calibração / posicionamento, que não é usado para armazenamento de dados do usuário .
fonte
A resposta que você está procurando 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 segurando um campo magnético padronizado. Acima das travessas que contêm esses dados, está a cabeça de gravação, que se move para ler e gravar dados, como um toca-discos de vinil. Os pratos sobre os quais ele se move são conectados 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 do cabeçote de gravação, bem como a rotação dos pratos e usa essas informações para decidir como posicionar o cabeçote e os pratos para leitura e gravação. Ele converte solicitações de leitura e gravação do sistema operacional em sinais de controle que movem a cabeça de gravação e giram os pratos, além de converter os dados paralelos que chegam do sistema operacional em uma única linha de dados serial. Ele também divide essa linha serial e decide em que local físico ou setor colocar cada peça e registra essas informações da 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, nesse caso, divide os anéis circulares de dados em segmentos utilizáveis chamados setores e informa ao sistema de arquivos onde esses setores estão localizados fisicamente. O sistema de arquivos fornece a cada setor um endereço, que é apenas um número único, e esse endereço é convertido pelo controlador de hardware em uma rotação específica do prato e na posição da cabeça de leitura para começar a ler ou escrever.
Para mais informações, as seguintes seções nestes artigos da Wikipedia são bastante úteis:
Veja Introdução e seção 3.1 "Gerenciamento de espaço" aqui: https://en.wikipedia.org/wiki/File_system
Consulte a seção 2.1 "Gravação magnética" aqui: https://en.wikipedia.org/wiki/Hard_disk_drive#Magnetic_recording
fonte