Como um HDD determina qual prato/setor usar? Existe um controlador embutido na própria unidade? Ou é a placa-mãe? O sistema operacional?
Que tipo de algoritmo escolhe isso? Certamente não pode ser aleatório nem sequencial.
Da mesma forma, como as mesmas perguntas se aplicam a um SSD?
Responder1
Como um HDD determina qual prato/setor usar?
Que tipo de algoritmo escolhe isso? Certamente não pode ser aleatório nem sequencial.
Essas são informações proprietárias que dificilmente você encontrará. A "segredo comercial" ou "molho secreto" Se você for...
Não há "raso"razão para que não seja aleatório ou sequencial... mas suspeito que os fabricantes de discos otimizarão o rendimento dos dados, colocando-os em todos os pratos. Muito provavelmente haverá um "profundo" razão para colocar os dados onde eles estão (os discos rígidos modernos estão se aproximando do reino da magia, com um enorme conhecimento técnico necessário para entender a maior parte do que está acontecendo).
Historicamente, foi aberto e bem compreendido (verCHS, abaixo).
Existe um controlador embutido na própria unidade?
Sim - um disco rígido moderno apresentará umSataouSASinterface para a máquina host... Este link de comunicação é executado entre a placa-mãe e o controlador integrado do disco rígido.
O controlador é subsequentemente responsável por gerenciar a velocidade do fuso, a posição do cabeçote, o processamento entre as instruções de leitura/gravação e os sinais analógicos precisamente cronometrados de/para os cabeçotes de leitura/gravação, etc...
Ou é a placa-mãe? O sistema operacional?
Historicamente, o disco rígido era apresentado como um dispositivo muito bruto - um motor de passo ou bobina de voz era acionado diretamente da placa-mãe para gerenciar as posições dos cabeçotes, e os sinais analógicos eram grosseiramente limpos antes de serem transmitidos à placa-mãe.
Veja issodesmontagem de vídeo de um disco rígido Fujitsu 337 MB de 8 polegadaspelos detalhes sangrentos. Pule para ~2:04 para ver um resumo das interfaces (Dispositivo de módulo de armazenamento). Mesmo assim, como você pode ver, há circuitos de suporte consideráveis para interface.
Os discos rígidos foram endereçados usandoCHS (Cilindro - Cabeça - Setor), mas mais recentemente eles são abordados usandoLBA (Endereçamento de Bloco Lógico).
EUpensarque com a introdução do LBA, também começamos a ver discos que gerenciavam seus próprios setores defeituosos - realocando-os para "provisionados"poupar"espaço quando foram detectados como ruins. Portanto, não temos mais controle direto de onde os cabeçotes estão posicionados, qual cabeçote é usado e qual setor é acessado.
Antes dos discos gerenciarem seus próprios setores defeituosos, você veria rótulos com uma lista de setores defeituosos de fábrica, que você tinha que alimentar o sistema durante a criação do sistema de arquivos. Alternativamente, você usaria uma ferramenta comobadblocks
para procurar problemas. Por exemplo:
Da mesma forma, como as mesmas perguntas se aplicam a um SSD?
Com um SSD, todo o armazenamento flash é mapeado do espaço de endereço físico para o virtual. Isto permitenivelamento de desgasteser implementado de forma transparente, semqualquerconhecimento da máquina host.
Responder2
O que determina em qual prato/setor um HDD grava?
Os algoritmos e instruções individuais contidos no disco rígido controlado determinam a localização da maioria dos dados enviados aos HDDs.
Com HDDs giratórios, o sistema operacional pode acessar todos os endereços possíveis na unidade e PODE especificar um local específico para leitura ou gravação.
Com SSDs, o controlador virtualiza os endereços reais para oferecer suporte a alguns dos recursos avançados que os SSDs oferecem, como provisionamento excessivo e a capacidade de localizar e marcar bits ruins e colocá-los na lista negra sem realmente reduzi-los, bem como armazenamento em cache e outras coisas. , portanto, o sistema operacional normalmente não conhece os endereços reais possíveis em um SSD.