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:
-
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.
-
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.