SSD Nasıl Çalışır? SSD Disklerin Çalışma Prensibi
SSD NASIL ÇALIŞIR?
SSD DİSKLERİN ÇALIŞMA PRENSİBİ NEDİR?
SSD DİSKLER NEDEN DAHA HIZLI ÇALIŞIRLAR?
Maarif Mecra'da, farklı NAND yapı türleri arasındaki farkı sık sık tartıştık - dikey NAND ile düzlemsel veya çok seviyeli hücre (MLC) ile üçlü seviyeli hücreler (TLC) ve dört seviyeli hücreler (QLC). Şimdi, konuyla ilgili daha temel sorudan bahsedelim: SSD'ler ilk etapta nasıl çalışır ve Intel'in uçucu olmayan depolama teknolojisi Optane gibi yeni teknolojilerle nasıl karşılaştırılır ?
SSD'lerin dönen disklerden nasıl ve neden farklı olduğunu anlamak için biraz sabit disklerden bahsetmemiz gerekiyor. Bir sabit sürücü, verileri plaka adı verilen bir dizi dönen manyetik diskte depolar. Üzerinde okuma / yazma kafaları olan bir aktüatör kolu var. Bu kol, bilgi okumak veya yazmak için okuma-yazma kafalarını sürücünün doğru alanına konumlandırır.
Verileri okumak veya yazmak için sürücü kafalarının diskin bir alanı üzerinde hizalanması gerektiğinden ve disk sürekli döndüğünden, verilere erişilmeden önce bir gecikme olur. Bir programı başlatmak veya bir dosyayı yüklemek için sürücünün birden fazla yerden okuması gerekebilir; bu, komutu tamamlayabilmek için plakaların birden çok kez doğru konuma dönmesini beklemesi gerektiği anlamına gelir. Bir sürücü uykudaysa veya düşük güç durumundaysa, diskin tam güce dönmesi ve çalışmaya başlaması birkaç saniye daha sürebilir.
En başından beri, sabit sürücülerin CPU'ların çalışabileceği hızlarla muhtemelen eşleşemeyeceği açıktı. HDD'lerdeki gecikme, tipik CPU'nuz için nanosaniye ile karşılaştırıldığında milisaniye cinsinden ölçülür. Bir milisaniye 1.000.000 nanosaniyedir ve genellikle bir sabit sürücünün sürücüdeki verileri bulması ve okumaya başlaması 10-15 milisaniye sürer. Sabit sürücü endüstrisi, bu eğilime karşı koymak için daha küçük plakalar, disk üzerinde bellek önbellekleri ve daha yüksek iş mili hızları sundu, ancak yalnızca bu kadar hızlı sürücüler dönebilir. Western Digital'in 10.000 RPM VelociRaptor ailesi, tüketici pazarı için şimdiye kadar üretilmiş en hızlı sürücü setidir ve bazı kurumsal sürücüler 15.000 RPM kadar hızlı bir şekilde döndürülür. Sorun şu ki, en büyük önbelleklere ve en küçük plakalara sahip en hızlı dönen sürücü bile CPU'nuz söz konusu olduğunda hala ağrılı bir şekilde yavaş.
SSD Disklerin Farklı Yapısı
Elektronlar yüzer kapıda depolanır ve daha sonra "0" yüklü veya yüklü olmayan "1" olarak okunur. Evet, NAND flash'ta 0, verilerin bir hücrede depolandığı anlamına gelir - bu, genellikle sıfır veya bir düşündüğümüzün tam tersidir. NAND flaş bir ızgara şeklinde düzenlenmiştir. Tüm ızgara düzeni bir blok olarak adlandırılırken, ızgarayı oluşturan tek tek satırlar bir sayfa olarak adlandırılır. Ortak sayfa boyutları, blok başına 128 ila 256 sayfa ile 2K, 4K, 8K veya 16K'dır. Bu nedenle blok boyutu tipik olarak 256KB ile 4MB arasında değişir.
Bu sistemin bir avantajı hemen aşikar olmalıdır. SSD'lerin hareketli parçaları olmadığından, tipik bir HDD'nin çok üzerindeki hızlarda çalışabilirler. Aşağıdaki grafik, mikrosaniye cinsinden verilen tipik depolama ortamları için erişim gecikmesini göstermektedir.NAND, ana bellek kadar hızlı değildir, ancak bir sabit diskten çok sayıda kat daha hızlıdır. NAND flash için yazma gecikmeleri okuma gecikmelerinden önemli ölçüde daha yavaş olsa da, yine de geleneksel dönen medyayı geride bırakıyorlar.
Yukarıdaki tabloda dikkat edilmesi gereken iki nokta var. İlk olarak, NAND hücresi başına daha fazla bit eklemenin belleğin performansı üzerinde nasıl önemli bir etkisi olduğuna dikkat edin. Okumaların aksine yazma işlemleri için daha kötü - tipik üç seviyeli hücre (TLC) gecikmesi, okumalar için tek seviyeli hücre (SLC) NAND ile karşılaştırıldığında 4 kat daha kötü, ancak yazma için 6 kat daha kötü. Silme gecikmeleri de önemli ölçüde etkilenir. Etki de orantılı değil - TLC NAND, yalnızca% 50 daha fazla veri tutmasına rağmen (iki yerine hücre başına üç bit), MLC NAND'den neredeyse iki kat daha yavaş. Bu, aynı hücre içinde değişen voltaj seviyelerinde daha fazla bit depolayan QLC sürücüler için de geçerlidir.TLC NAND'in MLC veya SLC'den daha yavaş olmasının nedeni, verilerin NAND hücresine nasıl girip çıktığı ile ilgilidir. SLC NAND ile, denetleyicinin yalnızca bitin 0 mı yoksa 1 mi olduğunu bilmesi gerekir. MLC NAND ile hücre dört değere sahip olabilir - 00, 01, 10 veya 11. TLC NAND ile hücre sekiz değere sahip olabilir ve QLC'de 16. Hücreden uygun değerin okunması, bellek denetleyicisinin herhangi bir hücrenin şarjlı olup olmadığını belirlemek için kesin bir voltaj kullanmasını gerektirir.
Okuma, Yazma Ve Silme
SSD'lerin işlevsel sınırlamalarından biri, verileri boş bir sürücüye çok hızlı okuyup yazarken, verilerin üzerine yazmanın çok daha yavaş olmasıdır. Bunun nedeni, SSD'lerin verileri sayfa düzeyinde okurken (NAND bellek ızgarasındaki tek tek satırlardan) ve sayfa düzeyinde yazabilmeleridir, çevreleyen hücrelerin boş olduğunu varsayarak, verileri yalnızca blok düzeyinde silebilirler. Bunun nedeni, NAND flaşını silme eyleminin yüksek miktarda voltaj gerektirmesidir. NAND'yi teorik olarak sayfa düzeyinde silebilirken, gerekli voltaj miktarı, yeniden yazılan hücrelerin etrafındaki tek tek hücreleri zorlar. Verilerin blok düzeyinde silinmesi, bu sorunun azaltılmasına yardımcı olur.
Bir SSD'nin mevcut bir sayfayı güncellemesinin tek yolu, tüm bloğun içeriğini belleğe kopyalamak, bloğu silmek ve ardından eski bloğun + güncellenmiş sayfanın içeriğini yazmaktır. Sürücü doluysa ve boş sayfa yoksa, SSD önce silinmek üzere işaretlenmiş ancak henüz silinmemiş blokları taramalı, bunları silmeli ve ardından verileri şimdi silinen sayfaya yazmalıdır. Bu nedenle SSD'ler yaşlandıkça yavaşlayabilir - çoğunlukla boş olan bir sürücü hemen yazılabilen bloklarla doludur, çoğunlukla dolu olan bir sürücünün tüm program / silme dizisi boyunca zorlanması daha olasıdır.
SSD'ler kullandıysanız, muhtemelen "çöp toplama" adı verilen bir şey duymuşsunuzdur. Çöp toplama, bir sürücünün arka planda belirli görevleri gerçekleştirerek program / silme döngüsünün performans etkisini azaltmasına olanak tanıyan bir arka plan işlemidir. Aşağıdaki görüntü çöp toplama işleminde adım adım ilerlemektedir.
Bu örnekte, sürücünün ilk dört blok (A'-D ') için yeni değerler yazarak boş sayfalara çok hızlı yazabileceği gerçeğinden yararlandığını unutmayın. Ayrıca iki yeni blok yazılmıştır, E ve H Blokları artık eski olarak işaretlenmiştir, yani sürücünün güncelliğini yitirmiş olarak işaretlediği bilgileri içerirler. Boşta kalma süresi boyunca, SSD yeni sayfaları yeni bir bloğa taşır, eski bloğu siler ve boş alan olarak işaretler. Bu, SSD'nin bir dahaki sefere bir yazma gerçekleştirmesi gerektiğinde, program / silme döngüsünü gerçekleştirmek yerine, artık boş olan Blok X'e doğrudan yazabileceği anlamına gelir.
Tartışmak istediğim bir sonraki kavram TRIM. Tipik bir sabit sürücüde Windows'tan bir dosyayı sildiğinizde, dosya hemen silinmez. Bunun yerine, işletim sistemi sabit sürücüye, bir dahaki sefere bir yazma gerçekleştirmesi gerektiğinde, bu verilerin depolandığı diskin fiziksel alanının üzerine yazabileceğini söyler. Bu nedenle, dosyaların silinmesini geri almak mümkündür (ve Windows'ta dosya silmek, geri dönüşüm kutusunu boşaltıncaya kadar genellikle fazla fiziksel disk alanını boşaltmaz). Geleneksel bir HDD ile, işletim sisteminin verilerin nereye yazıldığına veya blokların veya sayfaların göreceli durumunun ne olduğuna dikkat etmesi gerekmez. Bir SSD ile bu önemlidir.
TRIM komutu, işletim sisteminin SSD'ye bir dahaki sefere bir blok silme işlemi gerçekleştirdiğinde belirli verileri yeniden yazmayı atlayabileceğini söylemesini sağlar. Bu, sürücünün yazdığı toplam veri miktarını azaltır ve SSD'nin ömrünü uzatır. Hem okuma hem de yazma işlemleri NAND flash'a zarar verir, ancak yazmalar, okumalardan çok daha fazla zarar verir. Neyse ki, blok düzeyinde uzun ömürlülüğün modern NAND flash'ta bir sorun olduğu kanıtlanmadı. Teknik Rapor sayesinde SSD ömrü hakkında daha fazla veri burada bulunabilir.
Maarif Mecra da bahsetmek istediğimiz son iki kavram yıpranma dengeleme ve yazma büyütmedir. SSD'ler verileri sayfalara yazıp bloklar halinde sildiğinden, sürücüye yazılan veri miktarı her zaman gerçek güncellemeden daha büyüktür. Örneğin bir 4KB dosyasında değişiklik yaparsanız, 4K dosyasının içinde bulunduğu tüm bloğun güncellenmesi ve yeniden yazılması gerekir. Blok başına sayfa sayısına ve sayfaların boyutuna bağlı olarak, bir 4KB dosyasını güncellemek için 4MB değerinde veri yazabilirsiniz. Çöp toplama, TRIM komutunun yaptığı gibi, yazma yükseltmesinin etkisini azaltır. Sürücünün önemli bir bölümünü ücretsiz tutmak ve / veya üreticinin aşırı provizyonunu sağlamak, yazma amplifikasyonunun etkisini de azaltabilir.
Aşınma seviyelendirme, belirli NAND bloklarının diğerlerinden daha sık yazılmamasını ve silinmemesini sağlama pratiğini ifade eder. Aşınma seviyelendirme, NAND'a eşit şekilde yazarak bir sürücünün ömrünü ve dayanıklılığını artırırken, aslında yazma büyütmeyi artırabilir. Diğer yandan, yazma işlemlerini diske eşit olarak dağıtmak için, içerikleri gerçekten değişmemiş olsa bile bazen blokları programlamak ve silmek gerekir. İyi bir aşınma dengeleme algoritması bu etkileri dengelemeye çalışır.
SSD Denetleyici
Şimdiye kadar SSD'lerin sabit sürücülerden çok daha karmaşık kontrol mekanizmaları gerektirdiği aşikârdır. Bu, manyetik ortamı aşağılamak değil - aslında HDD'lerin verilenden daha fazla saygıyı hak ettiğini düşünüyorum. 5.400 ila 10.000 RPM arasında dönen plakaların nanometre üzerindeki çoklu okuma-yazma kafalarının dengelenmesinde yer alan mekanik zorluklar hapşırılacak bir şey değil. HDD'lerin manyetik ortama yeni kayıt yöntemlerine öncülük ederken bu zorluğu gerçekleştirmesi ve sonunda gigabayt başına 3-5 sentlik sürücüler satması gerçekten inanılmaz.
Bununla birlikte, SSD denetleyicileri kendi başlarına bir sınıftadır. NAND'ın kendisini yönetmeye yardımcı olmak için genellikle bir DDR3 veya DDR4 bellek havuzuna sahiptirler. Pek çok sürücü aynı zamanda tampon görevi gören tek seviyeli hücre önbellekleri içerir ve hızlı NAND'yi okuma / yazma döngülerine ayırarak sürücü performansını artırır. Bir SSD'deki NAND flash tipik olarak denetleyiciye bir dizi paralel bellek kanalı üzerinden bağlandığından, sürücü denetleyicisinin üst düzey bir depolama dizisi ile aynı yük dengeleme işini gerçekleştirdiğini düşünebilirsiniz - SSD'ler RAID'i dahili olarak dağıtın ancak yıpranma seviyelendirme, çöp toplama ve SLC önbellek yönetiminin tümü büyük demir dünyasında paralelliklere sahiptir.
Bazı sürücüler ayrıca toplam yazma sayısını azaltmak ve sürücünün ömrünü uzatmak için veri sıkıştırma algoritmaları kullanır. SSD denetleyici, hata düzeltmeyi yönetir ve tek bitlik hataları kontrol eden algoritmalar, zaman geçtikçe giderek daha karmaşık hale gelir.
Maalesef, şirketler çeşitli gizli soslarını kilitledikleri için SSD denetleyicileri hakkında çok fazla ayrıntıya giremiyoruz. NAND flash'ın performansının çoğu, temeldeki denetleyici tarafından belirlenir ve şirketler, bir rakibe bir avantaj sağlamak için, yaptıkları şeyi nasıl yaptıkları konusunda kapağı çok fazla kaldırmaya istekli değildir.

Hiç yorum yok