Como os dados são lidos em um disco magnético?

Passo 1

Você perguntou: “Como os dados são lidos em um disco magnético?”
Aqui estão as perguntas que esse enunciado implica e as informações que vou usar para responder: (1) quero entender, passo a passo, o que fisicamente acontece no disco quando o sistema pede para ler dados; (2) quero saber quais componentes estão envolvidos; (3) quero entender os tempos envolvidos (seek, latência rotacional, transferência) e como o sinal magnético vira bits confiáveis na memória do computador; (4) quero ver um exemplo numérico simples para ter noção dos tempos. Não há figura enviada; não faz falta para responder — tudo pode ser descrito com texto e pequenos cálculos.

Passo 2

Componentes principais e definições (o vocabulário que usaremos):
  • Platters: discos circulares revestidos por material magnético onde os bits ficam registrados. Cada face do disco é uma superfície de gravação.
  • Trilha (track): anel concêntrico onde os dados são gravados.
  • Setor (sector): pedaço de pista que contém o bloco mínimo lido/grava­do (por ex. 512 bytes ou 4096 bytes).
  • Cabeça de leitura/gravação (head): pequena estrutura que lê e grava sobre uma superfície. Leitura moderna usa sensor magnetorresistivo (MR/GMR/TMR) e gravação usa uma bobina que gera campo magnético.
  • Atuador/voice-coil: mecanismo que move radialmente as heads para posicioná-las sobre a trilha correta.
  • Motor de spindle: gira os platters a velocidade constante (ex.: 5400 RPM, 7200 RPM).
  • Controlador de disco e firmware: circuito que converte pedidos do computador em comandos para atuador, cabeça e eletrônica de leitura/gravação.
  • Servo: informações de posicionamento gravadas no disco que permitem ao controlador saber a posição da head com precisão (posicionamento em malhas de nanômetros).
Entender esses termos é crucial antes de ver o fluxo de leitura.

Passo 3

Como os bits ficam gravados (conceito físico básico):
  • A superfície magnética é composta por pequenos grãos cuja magnetização local pode apontar em direções que representam “0” ou “1”. Na prática o que se grava são transições de fluxo magnético ao longo da trilha.
  • Esquemas de codificação (NRZ, NRZI, MFM, RLL, etc.) organizam os bits de forma que o sinal tenha mudanças de magnetização suficientes para recuperar o clock e distinguir zeros e uns. Isso evita longos trechos sem transição que confundiriam a recuperação do sinal.
  • Resumindo: o disco armazena padrões magnéticos; o que o leitor detecta são variações (transições) de campo magnético conforme a superfície passa abaixo da head.

Passo 4

Como a cabeça lê o sinal (parte física/eletromagnética):
  • A head de leitura moderna é um sensor magnetorresistivo (MR). Quando o campo magnético local muda, a resistência do sensor muda levemente. Essa variação é convertida em uma pequena tensão elétrica.
  • Essa tensão é um sinal analógico muito fraco que representa as transições magnéticas (não é diretamente “0” ou “1”).
  • Em gravação, uma corrente passa por uma bobina na cabeça de gravação, criando um campo que magnetiza os grãos do disco conforme necessário.

Passo 5

Do pedido do sistema até o início da leitura — visão em alto nível (fluxo de controle):
  1. O sistema operacional pede leitura de um bloco lógico (LBA).
  2. O sistema de arquivos/firmware traduz esse LBA para uma localização física (no passado era CHS: cilindro/head/setor; hoje geralmente o próprio disco traduz LBA internamente).
  3. O controlador do disco ordena ao atuador que posicione a head sobre a trilha correta — isso é o movimento chamado seek.
  4. Assim que a head está sobre a trilha, o disco gira até trazer o setor requisitado embaixo da head — espera chamada latência rotacional.
  5. Quando o setor passa pela head, o sinal analógico é lido e processado eletronicamente; depois os bytes são enviados ao host (normalmente por DMA).
Vou detalhar cada um desses passos a seguir.

Passo 6

Tempo de seek e latência rotacional (como estimar e por que importa):
  • Seek time: tempo para o atuador mover a head de uma trilha à outra. Valores típicos de média: \sim 5 a 15 ms (depende do modelo).
  • Rotational latency: tempo médio até o setor desejado chegar sob a head. Se o disco gira a R RPM, o período de rotação T é
T = \frac{60}{R}\\ \text{(segundos)}.
A latência média é metade de T. Exemplo: para R = 7200 RPM,
T = \frac{60}{7200} = 0{,}008333\\ \text{s} = 8{,}333\\ \text{ms},
latência média = \frac{T}{2} = 4{,}167\\ \text{ms}.
  • Latência total de acesso aleatório típica = tempo médio de seek + latência rotacional média. Ex.: 9\\ \text{ms} + 4{,}17\\ \text{ms} \approx 13{,}17\\ \text{ms}.

Passo 7

O que acontece com o sinal analógico após a head detectar as variações magnéticas (cadeia de leitura, “read channel”):
  • Pré-amplificador de head (preampl): amplifica o sinal fraco.
  • AGC (automatic gain control): normaliza amplitude do sinal.
  • Equalizador/filtragem: condiciona a forma do sinal para compensar distorções de frequência.
  • Conversão A/D (ou processamento contínuo em PRML): o sinal é amostrado e entra em um detector que recupera a sequência de bits. Hoje em dia usa-se PRML (Partial-Response Maximum-Likelihood) com algoritmos Viterbi para converter o sinal em uma sequência de bits mesmo com ruído.
  • ECC (error-correcting code) e EDC (error-detecting code): cada setor contém códigos de correção de erro (por exemplo, códigos como Reed–Solomon ou outras variantes) que permitem detectar e corrigir erros de leitura dentro do setor. Se a correção falhar, o firmware geralmente tenta múltiplas leituras e, se necessário, remapeia o setor como defeituoso.
Explicação didática do ECC: pense num setor como um pacote que tem dados mais “paridade avançada”. Se alguns bits mudarem por ruído, o ECC consegue reconstruir os bits corretos desde que não haja erros demais. É diferente da paridade simples; ECC usa mais redundância e matemática para corrigir.

Passo 8

Servo e posicionamento fino (por que a cabeça fica exatamente na pista certa):
  • Informações servo são gravadas periódica/embebidas nas trilhas (embedded servo) ou em trilhas dedicadas (dedicated servo). Essas informações incluem campos (bursts) que o controlador lê para saber o deslocamento radial e ajustar a corrente do voice-coil.
  • É um sistema de controle em malha fechada: o controlador usa leitura contínua do sinal servo para manter a cabeça exatamente sobre a trilha (com precisão de dezenas a centenas de nanômetros). Sem isso, a head poderia ler a trilha adjacente e dar erro.

Passo 9

Tratamento de erro, remapeamento e retry (como o disco garante confiabilidade):
  • Se a leitura de um setor falha inicialmente, o firmware tenta releituras com ajustes (mudar ganho, read channel, tentar múltiplas vezes).
  • Se o setor for consistentemente defeituoso, o disco o marca como ruim e remapeia o LBA para um setor de reserva (reallocation / G-list). Isso é transparente para o sistema operacional.
  • O disco mantém tabelas internas de setores realocados e informações SMART para diagnóstico.

Passo 10

Exemplo prático e numérico (passo a passo de uma leitura simples):
Suponha que o OS peça para ler o LBA 12345 (tamanho do setor =512 bytes). Fluxo e tempos aproximados:
  1. Tradução LBA → posição física feita pelo controlador (tempo desprezível relativo aos mecânicos).
  2. Seek até a trilha alvo: suponha tempo médio de seek =9\\ \text{ms}.
  3. Espera latência rotacional: para 7200 RPM, latência média =4{,}167\\ \text{ms}.
  4. Head lê o setor: a duração de leitura do setor (transferencia serial enquanto os bits passam) depende da densidade e da taxa de transferência; assumindo taxa que faz o setor passar em menos de 1\\ \text{ms}.
  5. Read channel processa sinal e ECC corrige erros (alguns microsegundos a poucos ms dependendo do trabalho de correção).
  6. Dados são transferidos via DMA para RAM e o controlador confirma leitura ao OS.
    Tempo total aproximado para um acesso aleatório desse setor ≈ 9 + 4{,}17 + 1 \approx 14{,}17\\ \text{ms}.
    Observação: leituras sequenciais (ler blocos contíguos) são muito mais rápidas porque o atuador não precisa se mover entre setores vizinhos — só espera a rotação e a transferência contínua.

Resposta

Dados são lidos em um disco magnético seguindo este fluxo: o sistema pede um bloco (LBA), o controlador traduz para a posição física, o atuador move a head até a trilha correta (seek), espera-se a rotação até o setor ficar sob a head (latência rotacional), a head MR detecta variações magnéticas que são amplificadas e condicionadas pelo read channel (pré-ampl, AGC, equalizador, A/D, PRML/Viterbi), os bits recuperados passam por ECC para corrigir possíveis erros, e então o bloco é transferido ao host; se houver falha o firmware tenta retries e pode remapear setores defeituosos.

Exercícios relacionados