Silně zjednodušeně
SSD se navenek tváří jako pole sektorů - když mu pošleš příkaz na nějaký sektor něco zapsat a pak příkaz ten sektor přečíst, tak ti vrátí to, co jsi zapsal.
Pod kapotou je to trochu složitější.
Všechny "sektory" jsou jen označení pro pomyslná místa. Pak je tam řadič, který je vlastně takový malý počítač, co se o to stará. A je tam paměť, rozdělená do bloků (jejichž velikost se sektory vlastně nesouvisí).
Při příkazu "zapiš do sektoru X tohle" se řadič předně podívá, zda je k sektoru X přiřazený nějaký blok(y).
Pokud ne, tak tam přiřadí z volných bloků ten nejmíň opotřebený a zapíše to na něj
Pokud tam nějaký blok už je, tak se podívá, zda jde ten zápis vůbec udělat (umí pouze nulovat jedničky):
- pokud ano (čili oproti předchozímu obsahu tam jen přibyly nuly), tak tam ty nuly vypálí a má hotovo
- pokud ne (nějaké nuly by se měly změnit na jedničky), tak vezme volný blok, zapíše na něj novou verzi, ten nový blok připojí na ten sektor a ten starý blok hodí do mazací fronty
Při příkazu "přečti sektor" si zjistí, jaký blok tam je namapovaný právě teď a vrátí data z nějaké jeho části zrovna odpovídající tomu "sektoru"
Mazací fronta si jede tak nějak sama na pozadí a bloky v ní speciálním způsobem vymaže, takže jsou na nich jen jedničky a pak je hodí na hromadu volných bloků
Když tam máš něco, čemy by se dalo říkat filesystém (FAT, NTFS, ext2/3/4, JFS, Btrs, ....), tak ten filesystém (lépe řečeno program v PC, který je za to zodpovědný) někam cpe data, která tvoří soubory a někam cpe, jaké soubory tam vlastně má a kde jsou.
Při vytvoření souboru teda na některé sektory napíše jméno toho souboru, komu patí, jaká jsou k němu práva a tak, pak si taky na nějaké sektory zapíše, na jakých sektorech se ten "soubor" nachází a do nějakých sektorů zapíše jeho obsah.
Při změně dat v souboru prostě příslušné sektory nechá řadičem přepsat na nové hodnoty. Ale vlastně se chová, jako kdyby tam všechny sektory byly od začátku a pořád a furt na stejném místě (což u disket a HDD dávalo docela dobrý smysl).
A když ten soubor smažeš, tak si filesystém někam poznamená, že ten soubor už není, a někam si nějak napíše, že ty sektory jsou volné (nebo je naopak vyřadí ze seznamu použitých nebo tak něco). Což se projeví zápisy do nějakých sektorů úplně někde jinde.
Řadiči je to jedno, sektor jako sektor, ten si to zpracovává po svém.
Ale po nějaké době by došlo k tomu, že by každý sektor na disku měl přiřazený nějaký ten blok (nebo jeho kus), i když by z hlediska uživatele ten disk byl v podstatě prázdný.
Což by byl problém, protože řadič zase nemá tolik bloků navíc (a pokud se nějaký blok porouchá/opotřebuje, tak se vyřadí, což věc ještě zhorší), takže by musel při spoustě zápisů čekat, až mu Mazací fronta něco smaže (a to je pomalá operace a hlavně je mnohem rychlejší brát z hromady uprázdněných bloků, než čekat, až tam něco doputuje).
Samořejmě by se to snadno vylepšilo tím, že by tam těch bloků měl výrazněš víc, ale to zase nechce výrobce, protože je finanční rozdíl přihodit k 5GB disku pár kilobytů paměti navíc a nebo tam přihodit pár gigabytů navíc - takže těch bloků navíc není moc a postupně ubývají, když se něco opotřebuje.
Takže se vymyslel TRIM, který umožňuje řadiči říct "tenhle sektor už není potřeba". Řadič od sektoru odpojí blok a hodí ho do Mazací fronty a po chvíli se mu ten prázdný blok objeví mezi volnými bloky, už smazaný.
Filesystém teda při mazání (pokud opravdu maže a nejen háže do koše nebo tak něco) kromě "potřebných" zápisů udělá ještě jedno volání navíc, že to, co si označil jako smazané může řadič taky za smazané považovat.
Jenže nic není zdarma, jsou případy, kdy tohle "automatické" TRIMování může dělat problémy, takže se někdy vypíná a pak se to otrimuje čas od času "ručně". (Například je možno "smazat soubor", ve kterém je program, který ještě běží a tak se obsah souboru musí zachovat, dokud program neskončí. Nebo při optimalizaci práce s diskem je potřeba dělat nějaké věci v daném pořadí, aby se zachovala integrita dat a TRIM se nedá ve frontě jen tak přesouvat bez rozmyslu - ostatně ani některé jiné věci - pokud například soubor přejmenuješ a smažeš, tak to musí být v tomto pořadí, protože přejmenování je zapsání nového jména zatímco smazání je vymazání toho jména a když to prohodíš, tak by se nejdřív to jméno smazalo a pak zapsal nový tvar, čili by tam zůstalo. Ale přeházet pořadí mazání souborů už se dá, zvláště pokud se nejdřív zbavíš jmen v jednom velkém bloku (a tedy zapisuješ do adresáře jen jednou, ne desetkrát) a pak se zbavíš obsazených sektorů (a zase to možná bude jeden blok zápisů místo deseti), a to nemluvím o pokročilekších legracích jako snashotech, copy-on-write a podobně)
Takže běžně se TRIMuje při formátování a podle očekávaného použití se TRIMuje, nebo ne i při běžném používání automaticky. A to už záleží na nastaveních a filesystému (a třeba i jiných okolnostech).
Co přesně znamená tvoje kombinace příkazů a výstupů z nich nevím, CrystalDiskInfo nemám a znám z něj jen jméno, ale někdo to tu asi bude vědět.