Anasayfa Makale SSD TRIM Komutu Nedir, Ne İşe Yarar?

SSD TRIM Komutu Nedir, Ne İşe Yarar?

HDD-SSD-Depolama-Disk-Sürücü

SSD’ler söz konusu olduğunda “TRIM” adında bir özelliğin olduğunu duymuşsunuzdur. Bu özelliği TRIM komutuyla Windows’ta aktifleştirmek mümkün. Ayrıca özel SSD sürücü yazılımlarıyla birlikte daha kapsamlı işlevler sunuluyor. Peki trimming (düzeltme, kırpma) nedir, ne gibi faydalar sağlar? Gelin beraber bakalım.

SSD TRIM Nedir?

SSD’lerde trim, katı hal sürücüsünün performansını zaman içinde korumaya yardımcı olan bir işlemdir. Basit bir tabirle trim sayesinde artık kullanılmayan veri blokları periyodik olarak silinir, yani kullanımdan kaldırılır. Süreç biraz karmaşık olduğundan dolayı kırpılan veriler her zaman anında kaldırılmaz. Ancak silindiğinde yalnızca sürücüde yer açılmaz, aynı zamanda SSD’nin performansı artar ve daha uzun süre dayanması sağlanır. Aslında her şey basit gibi görünüyor, şimdi işin detayına biraz inelim.

SSD’lerin Yapısı

Aşağıda nispeten eski bir SATA SSD modelini, Samsung 850 Pro’yu görebilirsiniz. Yeni model SSD’ler de bileşenler açısından çok farklı değil. Ortadaki çip, tüm komutları, veri akışını, şifrelemeyi ve diğer algoritmaları yöneten bir işlemci. Üzerinde ise talimat ve veri önbelleği olarak görev yapan ve ayrıca sürücüdeki veri konumlarının bir tablosunu saklayan düşük kapasiteli bir DRAM bulunuyor.

İşlemcinin sağında ve altında olmak üzere iki adet NAND flash modülü yer alıyor. Veriler bu yongalarda saklanır, yani SSD’nin depolama birimi diyebiliriz. Çiplerin derinliklerinde bitleri tutan, floating-gate metal oxide semiconductor (kayan kapılı metal oksit yarı iletken alan etkili transistörler) olarak adlandırılan milyarlarca küçük bileşen bulunmakta. Bu oldukça karmaşık, ancak günümüz SSD’lerinde veri depolamak için yaygın olarak kullanılan CTF (charge trap flash) sistemi olarak biliniyor.

Samsung 850 Pro
Samsung 850 Pro bileşenleri.

Her bir CTF, bellek ya da bit hücresi olarak bilinen ve kendisine bağlı üç elektrik izine sahip tek bir depolama birimi olarak işlev görüyor. CTF’ler, ilk olarak 32 ila 128 hücre arasında uzun bir sütun (bir dizi) olarak gruplandırılıyor.

Bir dizideki hücreler, içlerinde depolanan verileri okumak için kullanılan ortak bir izi (bir bit çizgisi) paylaşıyor. Birbirleriyle aynı satırda (bunlar page, yani sayfa olarak da bilinir) bulunanların hepsi başka bir ortak ize (word line) bağlanıyor. Okuma, yazma veya silme işleminin gerçekleşip gerçekleşmediğini belirlemek için dize ve zemin seçim satırları word line’lar ile birlikte kullanılıyor.

NAND Yonga Detayları-SSD-Depolama-TRIM

Dizeler ve satırlardan oluşan bir dizi, blok olarak adlandırılan şeyi oluşturuyor. Satırlar ve blok boyutları büyük farklılıklar gösterebilir; birincisi 4 kB kadar küçük, ikincisi ise 512 kB kadar büyük olabilir. Bunlar üreticiye ve modele olarak değişkenlik gösteriyor.

NAND flaş kalıbı binlerce bloktan oluşuyor ve flaş modülleri birden fazla kalıp içerebiliyor. Geniş, karmaşık iz ve transistör ızgaraları, daha ucuz USB belleklerden kurumsal düzeydeki SSD’lere kadar tüm depolama ürünlerinde kullanılıyor.

NAND Depolama Yongaları

Sayfalar ve bloklar önemlidir çünkü bu yapıdaki tüm bellek hücreleri aynı alt tabakayı (tüm transistörlerin üzerine inşa edildiği silikon veya galyum arsenit gibi yarı iletken malzemeler) paylaşır. Herhangi bir hücreden veri silmek için yüksek bir negatif voltaj kullanılması gerekir, bu da CFT’de depolanan elektronları alt tabakaya akmaya zorlar. Silme sürecinde sadece bir hücre değil, bloktaki tüm hücreler temizlenir.

NAND çiplerde tüm hücreler silinmeden bellek hücreleri yeni veriler için programlanamaz. Başka bir deyişle SSD’ler, geleneksel sabit disklerin yaptığı gibi eski verilerin üzerine asla doğrudan yeni veri yazamazlar. Ayrıca silme işleminin blok seviyesinde yapılması gerekirken, yazma işlemi sayfa seviyesinde yapılmakta. Bu da bir SSD’nin programlanmasının silinmesinden çok daha hızlı olduğu anlamına geliyor.

SSD veri yazma ve silme süreci.
SSD veri yazma ve silme süreci.

Programlama ve silme işlemi ayrıca her seferinde bellek hücrelerine zarar vererek transistörün içindeki yükü depolayan katmanı aşındırır. Çiplerin ömrünü uzatan, cihaz içindeki her şeyin yönetimini üstelenen işlemci, her biri bir kez kullanılana kadar tüm bloklar arasında döngü yapar ve sonra başa döner. NAND flash yongalar yazma işlemini hızlı, silme işlemini yavaş yapar. Bu işlemler yapıldığında ise yonganın kullanım ömrü etkilenir.

SSD TRIM Süreci

Şimdi SSD trim işlemine tekrar geri dönelim. Trimming sürecini anlatmak için 4 kB sayfaları ve 256 kB blokları, yani blok başına 64 sayfası olan bir SSD’yi ele alalım. SSD’nizde 3056 kB yer kaplayan tek bir dosyayı silmek isterseniz ne olur?

Bu dosya 764 sayfa (11 tam blok ve 64 sayfanın 60’ının kullanıldığı bir blok) kaplar. Yani halen bir boşluk var. Başka bir veri içerebilecek son 4 sayfayı etkilemeden bu dosyayı nasıl silebiliriz?

Hiçbir işlem yapmadığımızda tüm veriler depolama sürücüsünde olduğu haliyle kalır. Peki trimming ile ne yapılıyor? İşletim sistemi tarafından silinen dosyalar ve klasörler artık gerekli olmadıkları için işaretlenir ve TRIM komutu verildiğinde SSD’nin DRAM’inde (ya da sürücüde DRAM yoksa NAND flash’ın kendisinde) depolanan tablo bunu yansıtacak şekilde güncellenir.

SSD-NAND-Trim-veri silme-veri yazma
TRIM süreci nasıl işliyor?

Önemli bir hatırlatma yapacak olursak, her SSD üreticisi bu işleme TRIM adını vermiyor. Ancak Windows’ta TRIM olarak biliniyor. TRIM komutu gönderildikten sonra veriler aniden silinmez, bu işlem ya sürücü boştayken ya da bir bloğa bir sonraki veri yazımında gerçekleşir. Kullanılan yöntem ise üreticiye bağlı; tüketici sınıfı modeller silme işlemini boştayken gerçekleştirirken, kurumsal düzeydeki ürünler genellikle yazma sırasında gerçekleştirir.

İşaretlenen veriler, NAND flash’ın firmware’i çöp toplama (garbage collection) işlemini başlattıktan sonra silinir. Bu süreçte bir bloğun okunması ve saklanması gereken sayfalar önbelleğe kopyalanır, ardından tamamen boş bir bloğa yazılır. Bir önceki blok ise silinmek üzere işaretlenmiş sayfalarla birlikte silinir. Anlattığımız işlem aslında geleneksel sabit disklerde kullanılan disk birleştirmeye benziyor, ancak aynı şey değil.

TRIM İşleminin Farkı

Düzeltme (trimming) ve birleştirme (defragmenting) aynı şey değildir. Birleştirme, diskteki verileri bitişik bir şekilde depolanacak şekilde yeniden düzenleyerek sabit disk sürücülerinin (HDD’ler) performansını optimize etmek için kullanılan bir işlemdir. Böylelikle verileri okumak ve yazmak için gereken süreyi azaltarak sürücünün verimliliği artırılır.

Diğer yandan trimming SSD’lere özgüdür ve sürücünün performansını zaman içinde korumak için kullanılır. Biraz önce bahsettiğimiz gibi, SSD’ler flash bellekler kullanır. Yani sınırlı sayıda yazma döngüsüne sahip birimlerden bahsediyoruz. Veriler bir SSD’den silindiğinde kapladıkları alan hemen yeniden kullanıma hazır hale gelmez. Bunun yerine, sürücünün aygıt yazılımı (firmware) alanı “geçersiz” olarak işaretler ve TRIM işlemi gerçekleştirilinceye kadar üzerine yazılmaz. Bu işlem sürücünün parçalanmasını ve yavaşlamasını önlemeye yardımcı olur.

Çöp toplama olarak tabir edebileceğimiz işlem SSD’nin ömrü ve genel performansı için faydalıdır. TRIM ise her şeyin daha verimli olmasını sağlar. Aslında bazen iki terim birbirinin yerine de kullanılıyor. TRIM komutu gelmediğinde, yeni silinmiş blokları programlama için kullanılabilir tutmak amacıyla kısmen dolu bloklar yoğunlaştırılır, tüm sayfalar sürekli hareket halinde kalır. Ancak bu süreçte zaman kaybı daha fazladır ve bellek hücrelerindeki aşınma artar. TRIM ise bölümleri işaretlediğinden dolayı her şey daha hızlı gerçekleşir.

Windows Tarafı

TRIM komutu bir dosyayı kalıcı olarak sildiğinizde (yani Geri Dönüşüm Kutusundan kaldırdığınızda) Windows tarafından otomatik olarak verilir ancak işlem anında gerçekleşmez. İşlemler bir kuyruğa eklenir ve SSD hazır olduğunda süreç işlemeye başlar. Ancak bu kuyruğun maksimum bir boyutu var ve dolması halinde TRIM isteklerinden bazıları iptal edilir. Varsayılan olarak Windows, TRIM komutlarını belirli aralıklarla yeniden düzenler. Buna da retrim adı veriliyor.

Pek önermesek de TRIM sürecinin gerçekleşmesi için sistemi zorlayabilirsiniz. Bunu yapmak için Dosya Gezgini’ni açın, bir sürücüye sağ tıklayın, Özellikler’e ve ardından Araçlar sekmesine tıklayın. Son olarak “En iyi duruma” getir butonuna tıklayın.  Bilgisayarınızda SSD yoksa bu süreçte normal disk birleştirme işlemi yapılır. Ancak NAND flash yongalar bu komutla birlikte TRIM komutunu işleme alır.

İşletim sisteminiz ya da SSD’niz TRIM desteğine sahip olmayabilir, ancak bu büyük bir sorun değil. Düzeltme işlemi olmasa bile garbage collection işlemi sürekli devam eder. Eski veriler eninde sonunda silinir çünkü sürücüler er ya da geç istenmeyen sayfaların üzerine veri yazacaktır.

Windows 7 kullanan bilgisayarlarda TRIM yalnızca SATA SSD’lerde destekleniyor. NVMe SSD’lerde ise bu komut sadece Windows 8, Windows 10 ve Windows 11 tarafından desteklenmekte. Öte yandan, TRIM özelliği macOS’a 2011 yılında Snow Leopard’a yapılan son güncellemede eklendi. Çoğu Linux dağıtımı da bu işlemi desteklemekte, ancak her dosya sistemi uyumlu değil. Son bir bilgi olarak, RAID sistemler genellikle TRIM’i desteklemiyor.

HDD ve SSD’ler

Mekanik sürücülerde herhangi bir dosyayı sildiğiniz zaman o dosya fiziksel olarak silinmez, sadece plaka üzerindeki adresi silinir. Kayıtlı bir adres olmayınca okuma/yazma kafası veriye ulaşamaz ve biz veriyi göremediğimiz için silindiğini düşünürüz. Ancak mekanik sürücülerde adresleri kayıt defterinden silinmiş olduğu halde hala plaka üzerinde fiziksel olarak var olan verilerin üzerine tekrar yazma işlemi yapılabiliyor. Yani 1 GB’lık bir veriyi plaka üzerinden tamamen kaldırmadan üzerine başka bir veri yazabiliyoruz.

SSD’lerde ise mekanik sürücülerde olduğu gibi silinmiş ama fiziksel olarak blok içinde yer alan verinin üzerine tekrar kayıt yapabilmemiz için 4K büyüklüğündeki blokların tamamen boş olması gerekir. Adres defterinden çıkartıldığı halde içi dolu olan herhangi bir hücreye tekrar kayıt yapılamaz.

TRIM komutu tam bu anda burada devreye giriyor. İşletim sistemi desteği ile kullanıcının hiçbir müdahalesi ya da haberi olmadan 4K’lık hücre blokları fiziksel olarak tamamen boşaltılıyor, sistemin boş hücrelere verileri tekrar yazması sağlanıyor.

SSD’lerin kalbindeki NAND yongaların içinde milyarlarca hücre yer alıyor. Her hücrenin bir silme/yazma ömrü var. TRIM komutunun ikinci fonksiyonu ise hücreler içindeki kayıtlı verileri diğer boş olan hücrelere eşit olarak dağıtmak. Bu sayede ortalama 3000-8000 arası kayıt ömrü olan hücreler eşit zamanda aşınıyor.

TRIM İşlemi Faydalı mı?

Uzun lafın kısası, TRIM özelliği sürücü performansı, verimliliği ve ömrü açısından faydalı bir işlem.