Bir sabit sürücü verinin nerede başladığını nasıl bilir? [çiftleme]


14

Her zaman bir sabit diskin ilk veriyi nasıl bulduğunu merak ediyordum.

Bir sabit sürücü döndüğünde, ne okursa oku, okuma kafası farklı bir konuma gelene kadar dairesel bir veri akışı olmalıdır.

Ancak böyle dairesel bir akışta, sürücü ilk bitin ve son bitin nerede olduğunu nasıl bilebilir, böylece verileri doğru sırayla aktarabilir?


BTW (nadiren bahsedilen ancak dikkat çekici) Parçanın başlangıcını (ve sonunu) gösteren bir indeks işareti vardır . Disk denetleyicisi dizinle ikinci kez karşılaştığında, izdeki her sektörü okuduğunu gösterir.
talaş

Yanıtlar:


2

Diskten okur.

Diskteki veriler yalnızca yapılandırılmış (@psusi'nin dediği gibi) değil, aynı zamanda kodlanmıştır. Kodlama, kaydedilen verilerin sektör başlıklarındaki konum işaretleyicileri için karıştırılmamasını sağlar, böylece hedef konum işaretçisi bulunana kadar dairesel akış okunabilir.

Anladığım kadarıyla, modern sabit diskler bunu pek yapmıyor; her bir dairenin bulunduğu yeri takip ederek tüm çevreyi bir arabellekte okurlar ve istenen verileri geri göndermek için arabellekleri kullanırlar.

GÜNCELLEME:

Manyetik ortam, iki temel özelliğe sahip manyetik alana sahip bir malzemedir: 1) asla kendi başına değişmez ve 2) kayıt cihazı, alanın herhangi bir noktasında yönünü değiştirebilir. Medyayı okurken, sensör alanın sensöre nerede yöneldiğini ve alanın sensörden nereye yönlendirildiğini algılar. Sensör yüzey boyunca hareket ettikçe, bu polarite geçişlerinin zamanlamalarını algılar; ilk kod çözme katmanı bu zamanlamaları bit değerlerine çevirmektir . Bu işlemdeki fiziksel olarak gerekli belirsizlikler nedeniyle, kodlama aynı polaritede uzun uzanımlar gerektirmemelidir; yani, Çalışma uzunluğu sınırlı bir kodlama (RLL) olmalıdır.

Sabit disk tasarımlarının ayrıntıları genellikle ticari sırlardır, ancak sektör belirteçlerinin sektör içeriğinde asla görünmemesini sağlamak için esasen iki yol vardır:

  1. İçerik verilerinin kodlanmasından asla sonuçlanmayacak özel değerlere izin veren bir RLL tasarlayın. Bu özel değerler sadece sektör sınırlarını işaretlemek için değil, aynı zamanda hata düzeltme veya başka bir ikincil amaç için de kullanılabilir.

  2. İşaretçi değerlerinin yalnızca işaretçilerde görünmesini sağlayan ikinci bir kodlama katmanı kullanın. Bu, özel karakterlerin URL'lerde "gizlenmesine" izin vermek için biraz URL kodlamasına benzer , ancak kaç karakterin eklenebileceğini sınırlamaya eşdeğer ek bir kısıtlamayla, bu yüzden daha çok base64 kodlamasına benzer .

Bu nedenle, okuma kafası yüzeyde manyetik polarite değişikliklerini saptamak için hareket eder, bu değişikliklerin zamanlamaları, karşılık gelen bit değerleri sırasını (muhtemelen depolanan verileri temsil etmeyen bazı istisnai değerler dahil) belirlemek için kullanılır ve bu sıra, hangi sektörlerin okunduğunu ve bu sektörlerin içeriğini belirler. Sektörlerin içeriği belirlendiğinde, veriler bir katı hal tamponunda saklanabilir ve / veya bir RAM tamponunda saklanabilir ve / veya bir talebi yerine getirmek için geri gönderilebilir.


Bu kodlama Huffman kodlaması gibi mi? Birisi bunun böyle bir donanım düzeyinde nasıl çalıştığına dair net bir örnek verebilirse: "Kafa, 010111010010111010 gibi dairesel bir veri akışını okur; burada her 111, bir sektörün başlangıcını işaretler ve sonra ..." cevabı kabul et.
uzumaki

Sabit sürücüler soyut verileri manyetik ortamın fiziksel özellikleri olarak kodlamak zorundadır ve sonuç kolayca adreslenebilir olmalıdır; Huffman kodlaması bir soyut veri akışını (genellikle) daha kısa bir soyut veri akışıyla eşleştirir (adreslenebilirliği bozar). Çoğunlukla ilgisizler.
ShadSterling

Güncellemem herhangi bir örnek eklemedi, ancak RLL bağlantısını takip ederseniz bazı var.
ShadSterling

18

Veriler, bunların ve sıfırların keyfi akışı olarak yazılmaz. Sektörlerde yazılmıştır. Her sektörde kullanıcı verisi yükü ve bir başlık bulunur. Başlık, hata düzeltme kodlarının yanı sıra sektörün başlangıcını ve sektör numarasını tanımlayan özel bir senkronizasyon alanı ve sürücünün bir sektörün başlangıcını ne zaman bulduğunu ve hangi sektörü olduğunu bilmesini sağlar.


3
Bazı referanslar veya bağlantılar bu iyi cevabı harika yapacaktır. : D
kedi

1
@cat, sanırım "Bilgisayarlar nasıl çalışır?" ya da Peter Norton'un "PC'nin İçinde", bunlardan herhangi biri hala basılıysa ... kitaplığımdakilerden beri muhtemelen birkaç yeni baskı.
psusi

Bu soruya cevap vermiyor. Soru, sürücünün üstbilginin veya eşitleme alanının nerede başladığını nasıl bileceği.
Martin Argerami

@MartinArgerami - Bu soruya OP'nin yanlış algısını düzeltir ve sektörlerin belirgin konseptini tanıtır. Manyetik alanların okuma / yazma seviyesine inmek OP IMO için çok yoğun görünüyor. Daha fazla ayrıntı istiyorsanız, bkz. Superuser.com/questions/427554/…
talaş

1
@ user134593 - Senkronizasyon baytları her zaman bir boşluktan sonradır ve kaydın ilk baytlarıdır. Sadece kaydın başlangıcını gösterirler. Bu nedenle disk denetleyicisinin hiçbir zaman yük veya kullanıcı verileriyle çakışması veya karışıklığı yoktur. Biraz akış olduğunu düşünüyorsunuz (OP gibi), ancak manyetik medya, yani istediğiniz herhangi bir noktada okuyamaz veya yazamazsınız.
talaş

7

Psusi doğrudur (diskteki veriler yapılandırılmıştır ve bilgisayarın farklı bölümleri bu yapının farklı bölümlerini kullanır), ancak gerçekten sorunuzu almaz.

Sürücü gerçekten hiçbir şey "bilmiyor". Disk üzerindeki işaretleyicileri (genellikle fabrikada veya sürücü kafasının kendisi tarafından yazılır) okuyabilir, diskteki veri bloklarını okuyabilir veya diske veri blokları yazabilir veya diskteki belirli bir noktanın olup olmadığını söyleyebilir. disk bozuk veya hasar görmüş ya da disk üzerindeki belirli bir konuma taşınması gerektiğidir. Bu "bildiği" her şeyle ilgili. Okuma kafası başka bir yere hareket etmeye karar vermez, makinede daha yüksek bir şey ona ...


2
Ancak daha yüksek bir şey hala sabit sürücünün bir parçasıdır. (Bir şey metafizik tarafından komuta olduğu bilgisayarda, dış şeye tarafından komuta edilmektedir sabit sürücüden dışında bir şey tarafından kumanda edilmekte, ancak bunların hiçbirinin bahsetmiyoruz Hangi)
user253751

0

Diğer cevaplara ek olarak, kesinlikle kullanıcı veri depolama için kullanılmayan kalibrasyon / konumlandırma verileri için ayrılmış bir tabla (silindir / kafa / sektör terimlerinde "kafa") kullanılır (ve hala da olabilir). .


3
Bu duyduğum bir şey değil, referansınız var mı?
ShadSterling

Evet, hayır .... bu bir şey değil.
psusi

Servo yüzeye / tabağa atıfta bulunuyorsunuz. Ancak bu, orijinal IBM PC-XT'nin ST-506 HDD'lerinden önce gelen 14 inç disk paketlerinden beri görmediğim eski bir teknolojidir. Winchester ve modern disk sürücüleri gömülü bir servo kullanır.
talaş

Tamam, bunu uzun zamandır duymadım, ancak modern disklere siyah kutular olarak koymam da.
Mark K Cowan

0

Aradığınız cevabın iki kısmı vardır:

1) Bir donanım denetleyicisi

2) Bir dosya sistemi

Dediğiniz gibi, bir HDD'de (SSD'ler gibi diğer teknolojilerin aksine) gerçek veriler, metal plakalara desenli bir manyetik alan tutan eşmerkezli dairesel halkalar olarak yazılır. Bu verileri tutan plakaların üstünde, bir vinil plak çalar gibi, verileri okumak ve yazmak için hareket eden yazma kafası bulunur. Üzerinde hareket ettiği plakalar, dönüşlerini kontrol eden bir elektrik motoruna bağlanır.

Donanım denetleyicisi, işletim sistemi ile sabit sürücü arasında bir arabirim görevi görür. Kontrolör, yazma kafasının konumunu ve plakaların dönüşünü okuyabilir ve bu bilgileri, başın ve plakaların okuma ve yazma için nasıl konumlandırılacağına karar vermek için kullanır. İşletim sisteminden okuma ve yazma isteklerini, yazma kafasını hareket ettiren ve plakaları döndüren kontrol sinyallerine dönüştürürken, işletim sisteminden gelen paralel verileri tek bir seri veri hattına dönüştürür. Ayrıca bu seri hattını böler ve her parçayı hangi fiziksel konuma veya sektöre koyacağına karar verir ve bu bilgileri dosya sistemi tarafından belirtilen şekilde kaydeder.

Dosya sistemi, verilerin nasıl ve nerede saklanacağının bir özelliğidir. Bilgisayarın işletim sistemi bu dosya sistemini nasıl yorumlayacağını bilir ve bu bilgiyi donanım denetleyicisiyle uygun şekilde iletişim kurmak için kullanır, bu durumda dairesel veri halkalarını sektör adı verilen kullanılabilir bölümlere böler ve dosya sistemine bu sektörlerin fiziksel olarak nerede bulunduğunu söyler. Dosya sistemi her sektöre sadece benzersiz bir sayı olan bir adres verir ve bu adres donanım denetleyicisi tarafından belirli bir tabla dönüşüne ve okuma veya yazmaya başlamak için okuma kafası konumuna çevrilir.

Daha fazla bilgi için, bu Wikipedia makalelerindeki aşağıdaki bölümler oldukça yararlıdır:

Giriş ve bölüm 3.1 "Alan yönetimi" bölümüne bakın: https://en.wikipedia.org/wiki/File_system

Bkz. Bölüm 2.1 "Manyetik Kayıt": https://en.wikipedia.org/wiki/Hard_disk_drive#Magnetic_recording

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.