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.
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/gravado (por ex.
bytes ou 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.:
RPM, 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):
- O sistema operacional pede leitura de um bloco lógico (LBA).
- 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).
- O controlador do disco ordena ao atuador que posicione a head sobre a trilha correta — isso é o movimento chamado seek.
- Assim que a head está sobre a trilha, o disco gira até trazer o setor requisitado embaixo da head — espera chamada latência rotacional.
- 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:
a ms (depende do modelo). - Rotational latency: tempo médio até o setor desejado chegar sob a head. Se o disco gira a
RPM, o período de rotação é
A latência média é metade de
. Exemplo: para
RPM,
latência média
- Latência total de acesso aleatório típica = tempo médio de seek
latência rotacional média. Ex.:
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 (tamanho do setor
bytes). Fluxo e tempos aproximados:
Suponha que o OS peça para ler o LBA
- Tradução LBA → posição física feita pelo controlador (tempo desprezível relativo aos mecânicos).
- Seek até a trilha alvo: suponha tempo médio de seek
. - Espera latência rotacional: para
RPM, latência média . - 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
. - Read channel processa sinal e ECC corrige erros (alguns microsegundos a poucos ms dependendo do trabalho de correção).
- 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 ≈.
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.