Katı Hal Sürücüsü (SSD): Yeni Nesil Sabit Sürücüler Nasıl Çalışır?
Katı Hal Sürücüsü (SSD): Yeni Nesil Sabit Sürücüler Nasıl Çalışır?

Bu yazının içerik özgünlüğü henüz kategorize edilmemiştir. Eğer merak ediyorsanız ve/veya belirtilmesini istiyorsanız, gözden geçirmemiz ve içerik özgünlüğünü belirlememiz için [email protected] üzerinden bize ulaşabilirsiniz.

Yeni nesil SSD'lerin (Katı hal sürücüsü), dönen sürücülerden nasıl ve neden farklı olduğunu anlamak için, sabit sürücüler hakkında biraz konuşmamız gerekiyor. Bir sabit disk, plak adı verilen ve dönen bir dizi manyetik diskte veri saklar. Kendine okuma/yazma kısımları (kafaları) bağlanmış bir işletici kol bulunur. Bu kol, bilgiyi yazmak veya okumak için, okuma-yazma kısımlarını sürücünün doğru bölgesi üzerinde konumlandırır. 

Veriyi okumak veya yazmak için sürücü kafalarının diskin bir bölgesi üzerinde hizalanması gerektiğinden (ayrıca disk devamlı döndüğünden), veriye ulaşılmadan önce, sıfırdan yüksek bir bekleme süresi bulunmaktadır. Sürücünün, bir programı başlatması veya bir dosyayı açması için birçok bölgeyi okuması gerekebilir, bu da verilen emiri tamamlamadan önce, plakların birçok defa uygun konuma dönmesini beklemek zorunda olabileceği anlamına gelir. Eğer bir sürücü uyuyorsa veya düşük güç durumundaysa, diskin tam güçte dönmesi ve kullanıma başlaması fazladan birkaç saniye alabilir. 

İlk baştan beri, sabit disklerin, işlemcilerin çalışabileceği hızlara ayak uydurmasının mümkün olmayabileceği belliydi. HDD'lerdeki (Sabit disk sürücüleri) gecikme süresi milisaniyelerle ölçülür fakat işlemcinizdeki gecikme nanosaniyeler kadardır. Bir milisaniye 1.000.000 nanosaniyedir ve genelde bir sabit sürücünün sürücüdeki veriyi bulup okumaya başlaması 10-15 milisaniye sürer. Sabit sürücü endüstrisi, bu eğilime karşı koymak için daha küçük plaklar, disk üzerinde bulunan önbellekler ve daha yüksek mil hızları sundu, fakat sürücülerin dönme hızında bir sınır bulunuyor. Western Digital'ın 10.000 RPM (Dakikada devir sayısı) VelociRaptor ailesi, tüketici pazarı için şimdiye kadar üretilmiş en hızlı sürücü takımıyken, bazı ticari sürücüler 15.000 RPM'ye kadar dönüyorlar. Fakat en geniş önbelleklere ve en küçük plaklara sahip olup en hızlı dönen sürücü bile, işlemcinize (CPU) göre çok yavaş kalıyor. 

 

SSD'lerin Nesi Farklı?

"Eğer insanlara ne istediklerini sorsaydım, daha hızlı at istediklerini söylerlerdi." - Henry Ford

Katı hal sürücüleri'nin (SSD) bu özel ismi, hareket eden parçalara veya dönen disklere dayalı olmadıklarından gelir. Bunun yerine, veri bir NAND flaş havuzuna kaydedilir. NAND'ın kendisi, yüzen kapı transistörleri olarak adlandırılan şeylerden yapılır. DRAM'da kullanılan ve saniyede birçok kez yenilenmesi gereken transistör tasarımlarından farklı olarak, NAND flaşı, güç almadığı zaman bile yük durumunu korumak için tasarlanmıştır. Bu da NAND'ı, geçici olmayan bir bellek türü yapar. 

 

Flaş Hücre Yapısı

evrimagaci.org/dosyalar/icerikler/74799845_flashcellstructuresv.png" />

Yukarıdaki şema, basit bir flaş hücre tasarımını gösteriyor. Elektronlar yüzen kapıda depolanıyor ve sonra yüklü "0" veya yüksüz "1" şeklinde okunuyorlar. Evet, NAND flaş'ta 0, verinin bir hücrede depolandığı anlamına geliyor: genel olarak sıfır veya biri düşünme şeklimizin tam tersi. Şebeke düzeninin tümü, öbek olarak adlandırılırken, şebekeyi meydana getiren tekil sıralar sayfa olarak adlandırılıyor. Genel sayfa boyutları 2K, 4K, 8K veya 16K (K=1000) ve öbek başına 128 ila 256 sayfa bulunuyor. Bu yüzden öbek boyutları genelde 256 KB ile 4 MB arasında değişiyor.

Bu yapının sahip olduğu bir üstünlük, hemen ortada olmalı. Çünkü SSD'lerin hiç hareket eden parçası yok, genel bir HDD'ninkinden çok daha yüksek hızlarda çalışabilirler. Aşağıdaki tablo, genel depolama ortamları için mikrosaniye cinsinden verilen erişim gecikmesini gösteriyor.

evrimagaci.org/dosyalar/icerikler/74831336_ssd-latencypng.png" />

NAND, ana bellek kadar hızlı olmaktan çok uzak, fakat sahip olduğu birden fazla büyüklük sırasıyla bir sabit diskten daha hızlı. NAND flaş için yazma gecikmesi okuma gecikmesinden önemli oranda yüksek olsa da, yine de geleneksel dönen ortamı geride bırakıyorlar.

Yukarıdaki tabloda dikkat edilmesi gereken iki şey var. Birincisi, NAND hücresi başına daha fazla bit eklemenin, belleğin verimi üzerinde nasıl önemli bir etkiye sahip olduğuna dikkat edin. Okumanın aksine, yazma için daha kötü durumda: okuma için sıradan üç seviyeli hücre (TLC) gecikmesi, tek seviye NAND hücresiyle karşılaştırıldığında (SLC) 4 kat daha kötü, fakat yazma için 6 kat daha kötü durumda. Silme gecikmeleri de önemli oranda etkileniyor. Yine de bu etki orantılı değil: TLC NAND, neredeyse MLC NAND'dan iki kat daha yavaş, buna rağmen tam %50 daha fazla veri tutuyor (hücre başına iki yerine üç bit).

TLC NAND'ın MLC veya SLC'den daha yavaş olmasının sebebi, verinin NAND hücresine nasıl girip çıktığıyla ilgili. SLC NAND'da, denetleyici sadece bitin 0 mı yoksa 1 mi olduğunu bilmek istiyor. MLC NAND'da, hücrenin dört adet değeri olabilir: 00, 01, 10 veya 11. TLC NAND'da, hücre sekiz adet değere sahip olabilir. Hücreden uygun veriyi okumak, denetleyicinin belirli bir hücrenin yüklü mü yoksa değil mi olduğunu anlaması için çok kesin bir gerilim (voltaj) kullanmasını gerektiriyor. 

 

Okumalar, yazmalar ve silinti

SSD'lerin sahip olduğu işlevsel kısıtlamalardan biri de, veriyi boş bir sürücüye çok hızlı okuyup yazabilirlerken, verinin üstüne yazmanın çok daha yavaş olması. Bunun sebebi, çevredeki hücrelerin boş olduğunu varsayarsak SSD'lerin veriyi sayfa seviyesinde okurken (yani NAND bellek şebekesindeki tekil sıralardan) ve sayfa seviyesinde yazabilirken, veriyi sadece öbek seviyesinde silebilmeleridir. Bunun sebebi, NAND flaşını silme eyleminin yüksek miktarda bir gerilim gerektirmesidir. Kuramsal olarak NAND'ı sayfa seviyesinde silebilirken, gereken gerilim miktarı, yeniden yazılmakta olan hücrelerin çevresindeki tekil hücrelere baskı uygular. Veriyi öbek seviyesinde silmek, bu sorunu azaltmaya yardımcı olur. 

Bir SSD'nin mevcut bir sayfayı güncellemesi için tek yol, bütün öbekteki içerikleri belleğe kopyalamak, öbeği silmek ve sonra eski öbeğin + güncellenmiş sayfanın içeriklerini yazmaktır. Eğer sürücü doluysa ve hiç boş sayfa yoksa, SSD önce silinme için işaretlenmiş fakat henüz silinmemiş olan öbekleri taramalı, onları silmeli ve sonra veriyi yeni silinmiş sayfaya yazmalıdır. SSD'lerin eskidikçe yavaşlayabilmelerinin sebebi budur: çoğunlukla boş olan bir sürücü, hemen yazılabilen öbeklerle doludur, çoğunlukla dolu bir sürücünün ise bütün program/silme sırası boyunca zorlanması daha olasıdır. 

Eğer SSD'leri kullandıysanız, muhtemelen "çöp toplanması" diye bir şey duymuşsunuzdur. Çöp toplanması, bir sürücünün program/silme devrinin verim etkisini arkaplanda belirli görevler gerçekleştirerek azaltmasına olanak sağlayan bir arkaplan işlemidir. Aşağıdaki resim, çöp toplanması işleminin adımlarını gösterir.

Bu örnekte dikkat edin, sürücü, ilk dört öbek için (A'-D') yeni değerler yazarak boş sayfalara çok hızlı yazabildiği gerçeğinden faydalanıyor. Ayrıca E ile H adında iki yeni öbek yazılı. A-D öbekleri şimdi eski olarak işaretlenmiş, yani sürücünün tarihi geçmiş olarak işaretlediği bilgileri içeriyorlar. SSD, boş bir zamanda yeni sayfaları yeni bir öbeğe taşıyacak, eski öbeği silecek ve onu boş alan olarak işaretleyecek. Yani SSD'nin bir sonraki sefer bir yazım gerçekleştirmesi gerektiğinde, program/silme devri gerçekleştirmek yerine şimdi boş olan Öbek X'e doğrudan yazım yapabilir.

Şimdi ele alacağımız kavram TRIM. Sıradan bir sabit sürücüdeki Windows işletim sisteminde bir dosya sildiğiniz zaman, dosya hemen silinmez. Bunun yerine, işletim sistemi sabit sürücüye eğer bir sonraki sefer bir yazım gerçekleştirmesi gerekirse, o verinin saklandığı fiziksel disk bölgesinin üzerine yazım yapabileceğini söyler. Silinen dosyaları geri getirmek bu nedenle mümkündür (ve Windows'ta dosyaları silmenin siz geri dönüşüm kutusunu boşaltmadıkça genelde pek fiziksel alan temizlememesinin sebebi budur). Geleneksel bir HDD'de işletim sisteminin verinin nereye yazıldığına veya öbek veya sayfaların ilgili durumunun ne olduğuna dikkat etmesine gerek yoktur. SSD'de ise bu durum önemlidir. 

TRIM emri, işletim sisteminin SSD'ye bir sonraki sefer bir öbek silimi gerçekleştirdiğinde, belirli bir veriyi yeniden yazmayı atlayabileceğini söylemesini sağlar. Bu da sürücünün yazdığı toplam veri miktarını azaltarak SSD'nin ömrünü uzatır. Hem okuma hem de yazma işlemleri NAND flaşına zarar verir fakat yazım işlemleri okuma işlemlerinden çok daha fazla zarar verir. Neyse ki, öbek seviyesindeki ömrün çağdaş NAND flaşlarda bir sorun olduğu kanıtlanmamıştır. SSD ömrü hakkında daha fazla veri, buradan bulunabilir.

Hakkında konuşmak istediğimiz son iki kavram ise yıpranma seviyelendirmesi ve yazma yükseltmesidir. SSD'ler veriyi sayfalara yazıp veriyi öbeklerde sildiği için, sürücüye yazılan veri miktarı her zaman daha büyüktür. Örneğin, 4KB'lık bir dosyada değişiklik yaparsanız, 4K dosyanın içinde bulunduğu bütün öbeğin güncellenmesi ve yeniden yazılması gerekir. Öbek başına sayfa sayısına ve sayfaların boyutuna bağlı olarak, 4KB'lık bir dosyayı güncellemek için 4MB değerinde bir veri yazmış olabilirsiniz. Çöp toplanması, TRIM emrinin yaptığı gibi yazma yükseltmesinin etkisini azaltır. Ayrıca sürücünün önemli bir yığınını boş bırakmak ve/veya üreticinin fazladan önlem alması, yazma yükseltmesinin etkisini azaltabilir.

Aşınma seviyelendirmesi, belirli NAND öbeklerine diğerlerinden daha sık şekilde yazılmamasını ve silinmemesini sağlama işlemine denir. Aşınma seviyelendirmesi, NAND'a eşit şekilde yazarak bir sürücünün ömür beklentisini ve sürekliliğini artırırken, aslında yazım yükseltmesini artırabilir. Yazım işlemlerini disk boyunca eşit şekilde dağıtmak için, sahip oldukları içerikler aslında değişmemiş olsa bile bazen öbekleri programlamak ve silmek gereklidir. İyi bir aşınma seviyelendirme algoritması, bu etkileri dengelemeye çalışır.

 

SSD Denetleyicisi

Şu ana kadar SSD'lerin sabit sürücülerden çok daha gelişmiş denetim mekanizmalarına ihtiyaç duydukları belli olmalı. Bu manyetik ortamı aşağılamak demek değildir - aslında HDD'lere daha fazla saygı gösterilmelidir. Dakikada 5.400'den 10.000 devre kadar dönen plakların nanometrelerce üstündeki birden çok okuma-yazma kafasını dengelemede bulunan mekanik zorluklar yabana atılamaz. HDD'lerin bu zorlukları yerine getirirken manyetik ortama yeni kayıt yöntemlerinde çığır açtıkları ve neticede cigabayt başına 9-15 kuruşta sürücü satışını kapattıkları gerçeği tamamen inanılmazdır.

Bununla beraber, SSD denetleyicileri kendi başlarına bir sınıf oluşturur. NAND'ın kendisini idare etmeye yardımcı olmak için genelde bir DDR3 bellek havuzuna sahiplerdir. Çoğu sürücü de tampon olarak görev yapan tek seviyeli hücre önbelleklerini dahil ederek, hızlı NAND'ı okuma/yazma devirlerine adayarak sürücü verimini artırırlar. Bir SSD içinde bulunan NAND flaşı genelde bir dizi paralel bellek kanalları üzerinden denetleyiciye bağlı olduğu için, sürücü denetleyicisini en yüksek kalitedeki bir depolama dizilişi ile aynı yük dengeleme işinin bir kısmını yapıyor olarak düşünebilirsiniz: SSD'lerde dahili RAID bulunmaz fakat aşınma seviyelendirmesi, çöp toplaması ve SLC önbellek yönetiminin hepsi, benzer şeylerdir.

Bazı sürücüler de, toplam yazım sayısını azaltmak ve sürücünün ömrünü yükseltmek için veri sıkıştırma algoritmaları kullanır. SSD denetleyicisi hata düzeltme işlemini idare eder ve tekil bit hatalarını denetleyen algoritmalar, zaman geçtikçe artan şekilde daha karmaşık hale gelmiştir.

Maalesef, şirketler sahip oldukları çeşitli gizli soslara kilit vurdukları için SSD denetleyicileri üzerinde çok fazla detaya giremiyoruz. NAND flaşlarının veriminin çoğu, altında yatan denetleyiciler tarafından belirlenir ve şirketler, rakiplerine bir üstünlük vermemek için yaptıkları şeyi nasıl yaptıklarını çok fazla açığa çıkarmaya istekli değiller.

 

Önümüzdeki Yol

NAND flaşı, sabit sürücülere karşı kocaman bir ilerleme sunuyor, fakat sahip olduğu engel ve zorlukları da beraberinde getiriyor. Sürücü hacimleri ve cigabayt başına fiyatların sırasıyla yükselip düşmeye devam etmeleri bekleniyor, fakat SSD'lerin cigabayt başına fiyatta sabit sürücüleri yakalama şansları az. NAND flaş için işlem düğümlerini azaltmak önemli bir zorluk: çoğu donanım, düğümler azaldıkça gelişirken, NAND daha kırılgan hale geliyor. Veri tutma süreleri ve yazma verimi, veri yoğunluğu ve toplam hacim çok gelişmiş olsa bile 20nm NAND için 40nm NAND'dan doğal olarak daha düşük.

Şimdiye kadar SSD üreticileri daha hızlı veri ölçütleri, daha fazla bant genişliği ve denetleyici başına daha fazla kanal ve ayrıca daha önce bahsettiğimiz SLC önbelleklerinin kullanımını sunarak daha iyi verim sağladılar. Yine de uzun vadede, NAND'ın yerini başka bir şeyin alacağı varsayılıyor. 

Bu başka bir şeyin nasıl görüneceği hâlâ tartışmaya açık. Hem manyetik RAM, hem faz değişim belleği, kendilerini aday olarak sundular fakat iki teknoloji de henüz erken aşamada ve gerçekten NAND'ın yerini alabilmeleri için önemli zorlukların üstesinden gelmeleri lazım. Tüketicilerin farkı hissedip hissedemeyeceği açık bir soru. Eğer NAND'dan bir SSD'ye ve sonra daha hızlı bir SSD'ye yükseltim yaptıysanız, nispeten mütevazi bir sürücüden yükseltme yaparken bile, HDD ile SSD arasındaki uçurumun SSD - SSD uçurumundan çok daha büyük olduğunu farketmeniz muhtemel. Erişim sürelerini milisaniyelerden mikrosaniyelere çıkarmak büyük bir önem taşıyor, fakat bunları mikrosaniyelerden nanosaniyelere çıkarmak, insanların çoğu durumdan gerçekten algılayabileceği şeyin altında olabilir.

Şimdilik NAND ağır top konumunda ve en aşağı önümüzdeki 4-5 yıl boyunca orada durması bekleniyor. 

 

Not: Bu yazı ExtremeTech adresinden çevrilmiştir.

Kediler Neden Hep Tuhaf Davranır?

4 Yıl Savaşları: Gombe Şempanze Savaşı (1974-1978)

Yazar

Katkı Sağlayanlar

Çağrı Mert Bakırcı

Çağrı Mert Bakırcı

Editör

Evrim Ağacı'nın kurucusu ve idari sorumlusudur. Popüler bilim yazarı ve anlatıcısıdır. Doktorasını Texas Tech Üniversitesi'nden almıştır. Araştırma konuları evrimsel robotik, yapay zeka ve teorik/matematiksel evrimdir.

Konuyla Alakalı İçerikler
  • Anasayfa
  • Gece Modu

Göster

Şifremi unuttum Üyelik Aktivasyonu

Göster

Göster

Şifrenizi mi unuttunuz? Lütfen e-posta adresinizi giriniz. E-posta adresinize şifrenizi sıfırlamak için bir bağlantı gönderilecektir.

Geri dön

Eğer aktivasyon kodunu almadıysanız lütfen e-posta adresinizi giriniz. Üyeliğinizi aktive etmek için e-posta adresinize bir bağlantı gönderilecektir.

Geri dön

Close
Geri Bildirim