ट्रिम (कंप्यूटिंग)

एक छोटा नियंत्रण प्रचालन तंत्र को एक ठोस-राज्य अभियान को सूचित करने की अनुमति देता है जो आंकड़े के खंड को अब उपयोग में नहीं माना जाता है और इसलिए आंतरिक रूप से मिटाया जा सकता है SSDs के आने के तुरंत बाद ट्रिम को पेश किया गया था। क्योंकि SSDs का निम्न-स्तरीय संचालन हार्ड ड्राइव से काफी भिन्न होता है, जिस विशिष्ट तरीके से ऑपरेटिंग सिस्टम ऑपरेशन को हैंडल करता है जैसे डिलीट और फॉर्मेट के परिणामस्वरूप SSDs पर लिखने के संचालन के अप्रत्याशित प्रगतिशील प्रदर्शन में गिरावट आई है। ट्रिमिंग SSD को कचरा संग्रह (SSD) को अधिक कुशलता से संभालने में सक्षम बनाती है, जो अन्यथा शामिल ब्लॉकों में भविष्य के लेखन कार्यों को धीमा कर देगी। यथा, कई SSD में कुछ फ़ाइल सिस्टम (जैसे FAT32, NTFS, APFS) के लिए आंतरिक कचरा संग्रह तंत्र था जो ट्रिमिंग से स्वतंत्र रूप से काम करता था। यद्यपि इसने ट्रिम का समर्थन नहीं करने वाले ऑपरेटिंग सिस्टम के तहत भी अपने जीवनकाल और प्रदर्शन को सफलतापूर्वक बनाए रखा, लेकिन इसमें फ्लैश सेल के बढ़े हुए लेखन प्रवर्धन और पहनने की कमियां थीं। TRIM भी व्यापक रूप से है शिंगल चुंबकीय रिकॉर्डिंग (SMR) हार्ड ड्राइव पर उपयोग किया जाता है।

पृष्ठभूमि
जिस तरह से कई फाइल सिस्टम डेटा ब्लॉक को उपयोग में नहीं होने के रूप में फ़्लैग करके, डिलीट ऑपरेशन को हैंडल करते हैं, स्टोरेज मीडिया (एसएसडी, लेकिन पारंपरिक हार्ड ड्राइव भी) आमतौर पर यह नहीं जानते हैं कि कौन से सेक्टर/पेज सही मायने में उपयोग में हैं और किसे खाली स्थान माना जा सकता है। (उदाहरण के लिए) एक ओवरराइट ऑपरेशन के विपरीत, एक डिलीट में डेटा वाले क्षेत्रों में भौतिक लेखन शामिल नहीं होगा। चूंकि एक सामान्य एसएसडी को फ़ाइल सिस्टम संरचनाओं का कोई ज्ञान नहीं है, जिसमें अप्रयुक्त ब्लॉक/सेक्टरों की सूची शामिल है, भंडारण माध्यम अनजान रहता है कि ब्लॉक उपलब्ध हो गए हैं। जबकि यह अक्सर इलेक्ट्रोमैकेनिकल हार्ड डिस्क से फ़ाइलों को पुनर्प्राप्त करने के लिए हटाना रद्द टूल को सक्षम करता है, ऑपरेटिंग सिस्टम द्वारा फाइलों को हटाए जाने के रूप में रिपोर्ट किए जाने के बावजूद, इसका अर्थ यह भी है कि जब ऑपरेटिंग सिस्टम बाद में किसी एक क्षेत्र में राइट ऑपरेशन करता है, जिसे वह मुक्त स्थान मानता है, तो यह प्रभावी रूप से एक ओवरराइट ऑपरेशन बन जाता है। भंडारण माध्यम के दृष्टिकोण से। चुंबकीय डिस्क के लिए, मौजूदा डेटा का ओवरराइट एक खाली क्षेत्र में लिखने से अलग नहीं है, लेकिन कुछ एसएसडी निम्नतम स्तर पर कैसे काम करते हैं, एक ओवरराइट एक खाली पृष्ठ में डेटा लिखने की तुलना में महत्वपूर्ण ओवरहेड उत्पन्न करता है, संभावित रूप से अपंग लेखन प्रदर्शन। SSD डेटा को फ्लैश मेमोरी सेल में स्टोर करते हैं जो आमतौर पर 4 से 16 किबिबाइट के पेजों में समूहित होते हैं, आमतौर पर 128 से 512 पेज के ब्लॉक में एक साथ समूहीकृत होते हैं। उदाहरण: 512 kiB ब्लॉक करता है जो प्रत्येक 4 kiB के 128 पृष्ठों को समूहित करता है। फ्लैश मेमोरी #NAND फ्लैश सेल को सीधे तभी लिखा जा सकता है जब वे खाली हों। यदि उनमें डेटा होता है, तो सामग्री को लिखने के ऑपरेशन से पहले मिटा दिया जाना चाहिए। एक SSD राइट ऑपरेशन एक पेज पर किया जा सकता है लेकिन, हार्डवेयर सीमाओं के कारण, इरेज़ कमांड हमेशा पूरे ब्लॉक को प्रभावित करते हैं; परिणामस्वरूप, SSD पर खाली पृष्ठों पर डेटा लिखना बहुत तेज़ होता है, लेकिन एक बार पहले लिखे गए पृष्ठों को अधिलेखित करने की आवश्यकता होने पर यह काफी धीमा हो जाता है। चूंकि पृष्ठ में सेल्स को फिर से लिखे जाने से पहले मिटाने की आवश्यकता होती है, लेकिन केवल पूरे ब्लॉक मिटाए जा सकते हैं, एक ओवरराइट पढ़ने-मिटाने-संशोधित-लिखने का चक्र शुरू करेगा: पूरे ब्लॉक की सामग्री को कैश में संग्रहीत किया जाता है, फिर पूरे ब्लॉक को एसएसडी से मिटा दिया जाता है, फिर ओवरराइट किए गए पेज को कैश्ड ब्लॉक में लिखा जाता है, और उसके बाद ही पूरे अपडेट किए गए ब्लॉक को हटाया जा सकता है। फ़्लैश माध्यम को लिखा गया। इस घटना को लेखन प्रवर्धन के रूप में जाना जाता है। रेफरी>

ऑपरेशन
टीआरआईएम कमांड एक ऑपरेटिंग सिस्टम को उन पृष्ठों के एसएसडी को सूचित करने में सक्षम बनाता है जिनमें अब वैध डेटा नहीं है। फ़ाइल विलोपन ऑपरेशन के लिए, ऑपरेटिंग सिस्टम फ़ाइल के क्षेत्रों को नए डेटा के लिए मुफ़्त के रूप में चिह्नित करेगा, फिर SSD को TRIM कमांड भेजें। ट्रिमिंग के बाद, फ्लैश मेमोरी के एक पृष्ठ पर नया डेटा लिखते समय एसएसडी ब्लॉक की किसी भी सामग्री को संरक्षित नहीं करेगा, जिसके परिणामस्वरूप कम लेखन प्रवर्धन (कम लेखन), उच्च लेखन थ्रूपुट (पढ़ने-मिटाने-संशोधित अनुक्रम की कोई आवश्यकता नहीं), इस प्रकार ड्राइव जीवन में वृद्धि।

अलग-अलग एसएसडी कमांड को कुछ अलग तरीके से लागू करते हैं, इसलिए प्रदर्शन अलग-अलग हो सकता है।

TRIM SSD को एक तार्किक ब्लॉक एड्रेसिंग क्षेत्र को अमान्य के रूप में चिह्नित करने के लिए कहता है और बाद में इस क्षेत्र पर पढ़ने से कोई सार्थक डेटा वापस नहीं आएगा। बहुत ही कम समय के लिए, डेटा अभी भी आंतरिक रूप से फ्लैश पर रह सकता है। हालाँकि, TRIM कमांड जारी होने और कचरा संग्रह होने के बाद, यह बहुत कम संभावना है कि एक फोरेंसिक वैज्ञानिक भी डेटा को पुनर्प्राप्त करने में सक्षम होगा।

ऑपरेटिंग सिस्टम का समर्थन
TRIM कमांड तभी फायदेमंद होता है जब ड्राइव इसे लागू करता है और ऑपरेटिंग सिस्टम इसका अनुरोध करता है। नीचे दी गई तालिका प्रत्येक उल्लेखनीय ऑपरेटिंग सिस्टम और कमांड का समर्थन करने वाले पहले संस्करण की पहचान करती है। इसके अतिरिक्त, एटीए मानक में टीआरआईएम कमांड को शामिल करने से पहले डिजाइन किए गए पुराने सॉलिड-स्टेट ड्राइव को फर्मवेयर अपडेट की आवश्यकता होगी, अन्यथा नए कमांड को नजरअंदाज कर दिया जाएगा। हालांकि, ट्रिमिंग का समर्थन करने के लिए हर ड्राइव को अपग्रेड नहीं किया जा सकता है।

TRIM के लिए समर्थन इस बात से भी भिन्न होता है कि ऑपरेटिंग सिस्टम पर विशेष फाइलसिस्टम ड्राइवर क्या करने में सक्षम है, क्योंकि डिस्क के किन हिस्सों में खाली स्थान है, इसकी समझ के साथ केवल एक प्रोग्राम सुरक्षित रूप से कमांड जारी कर सकता है, और सिस्टम स्तर पर यह क्षमता होती है। फाइलसिस्टम ड्राइवर में ही झूठ बोलने के लिए।

RAID मुद्दे
, अधिकांश हार्डवेयर-आधारित RAID तकनीकों में TRIM कमांड के लिए समर्थन लागू नहीं किया गया है। हालाँकि, सॉफ़्टवेयर RAID कार्यान्वयन में अक्सर TRIM के लिए समर्थन शामिल होता है।

विंडोज
Windows 10 RAID वॉल्यूम को कॉन्फ़िगर करते समय ऑप्टिमाइज़ ड्राइव विकल्प का उपयोग करके SSD ID वॉल्यूम में TRIM के लिए समर्थन प्रदान करता है।

मैकओएस
macOS RAID ड्राइवर TRIM का समर्थन नहीं करता है। यह Mac OS X के 10.7 से macOS 10.12.x के सभी संस्करणों के लिए सही है।

TRIM को RAID (0,1,4,5 और 10) वॉल्यूम के लिए समर्थित किया जाता है, जब गैर-Apple SSD उपकरणों के साथ TRIM समर्थन सहित तृतीय-पक्ष सॉफ्टराइड® एप्लिकेशन का उपयोग किया जाता है। (नोट: गैर-Apple SSD डिवाइस के लिए TRIM को विशेष रूप से टर्मिनल कमांड sudo trimforce enable का उपयोग करके सक्षम किया जाना चाहिए)

लिनक्स
टीआरआईएम लिनक्स कर्नेल के डिवाइस मैपर के जनवरी-2011 के रिलीज के बाद RAID वॉल्यूम के साथ उपलब्ध है, जो BIOS-सहायता प्राप्त नकली हार्डवेयर RAID समर्थन को लागू करता है, और जो अब RAID सरणी पर मौजूद फाइल सिस्टम से किसी भी टीआरआईएम अनुरोध से गुजरता है। dmraid के साथ भ्रमित न होने के लिए, Linux के सामान्य-उद्देश्य सॉफ़्टवेयर RAID सिस्टम, mdadm, बैच-आधारित के लिए प्रयोगात्मक समर्थन है (फ़ाइल हटाने के बजाय, लाइव होने पर) RAID 1 सरणियों पर TRIM जब सिस्टम समय-समय पर फ़ाइल सिस्टम पर mdtrim उपयोगिता चलाने के लिए कॉन्फ़िगर किया जाता है (यहां तक ​​​​कि ext3 जैसे मूल TRIM समर्थन के बिना)। लिनक्स के बाद के संस्करणों में, उदा। Red Hat Enterprise Linux 6.5 और बाद के संस्करण, mdraid वास्तविक समय में TRIM कमांड से वास्तव में गुजरने का समर्थन करता है, न कि केवल एक बैच जॉब के रूप में। हालाँकि, Red Hat अधिकांश RAID तकनीकों के साथ SSDs पर सॉफ़्टवेयर RAID स्तर 1, 4, 5, और 6 का उपयोग करने के खिलाफ अनुशंसा करता है, क्योंकि आरंभीकरण के दौरान, अधिकांश RAID प्रबंधन उपयोगिताओं (जैसे Linux के mdadm) डिवाइस पर सभी ब्लॉकों को लिखते हैं ताकि यह सुनिश्चित हो सके कि चेकसम ( या ड्राइव-टू-ड्राइव सत्यापित करता है, RAID 1 और 10 के मामले में) ठीक से काम करता है, जिससे SSD को विश्वास हो जाता है कि अतिरिक्त क्षेत्र के अलावा अन्य सभी ब्लॉक उपयोग में हैं, प्रदर्शन में काफी गिरावट आई है। दूसरी ओर, Red Hat SSDs पर लॉजिकल वॉल्यूम मैनेजर (लिनक्स)Linux) RAID के लिए RAID 1 या RAID 10 के उपयोग की अनुशंसा करता है, क्योंकि ये स्तर TRIM (लिनक्स शब्दावली में त्यागें) का समर्थन करते हैं, और LVM उपयोगिताएँ सभी ब्लॉकों को नहीं लिखती हैं। RAID 1 या RAID 10 वॉल्यूम बनाते समय।

फर्मवेयर आधारित RAID
मार्च 2010 में थोड़े समय के लिए, उपयोगकर्ताओं को यह विश्वास दिलाया गया था कि विंडोज 7 में इंटेल रैपिड स्टोरेज टेक्नोलॉजी (RST) 9.6 (और बाद में) ड्राइवरों ने RAID वॉल्यूम पर TRIM का समर्थन किया था, लेकिन बाद में Intel ने स्पष्ट किया कि TRIM को BIOS सेटिंग्स के लिए समर्थित किया गया था। उन्नत होस्ट नियंत्रक इंटरफ़ेस मोड और RAID मोड, लेकिन यदि ड्राइव RAID वॉल्यूम का हिस्सा नहीं था। अगस्त 2012 तक, इंटेल पुष्टि करता है कि रैपिड स्टोरेज टेक्नोलॉजी (RST) 11.2 ड्राइवरों के साथ 7-श्रृंखला चिपसेट Microsoft Windows 7 में RAID 0 के लिए TRIM का समर्थन करता है। जबकि इंटेल ने 6-सीरीज़ चिपसेट के लिए समर्थन की पुष्टि नहीं की, RAID 0 वॉल्यूम पर TRIM को संशोधित RAID विकल्प ROM के साथ हार्डवेयर उत्साही लोगों द्वारा Z68, P67, और X79 चिपसेट पर काम करने के लिए दिखाया गया है। यह अनुमान लगाया गया है कि 6-सीरीज़ चिपसेट के लिए आधिकारिक समर्थन की कमी सत्यापन लागत के कारण है या उपभोक्ताओं को अपग्रेड करने के लिए प्रोत्साहित करने का प्रयास, न कि तकनीकी कारणों से।

मदरबोर्ड पर X79 चिपसेट के साथ एक संशोधित विकल्प ROM की आवश्यकता का एक अपवाद है यदि निर्माता ने एक ROM स्विच जोड़ा है; यह RST और RST-E दोनों ROM को BIOS/UEFI के अंदर होने के लिए मजबूर करता है। यह RST-E ROM के बजाय RST ROM का उपयोग करने की अनुमति देता है, जिससे TRIM को कार्य करने की अनुमति मिलती है। इंटेल नोट करता है कि ROM के समान संस्करण वाले ड्राइवर का उपयोग करके सर्वश्रेष्ठ प्रदर्शन प्राप्त किया जा सकता है; उदाहरण के लिए, यदि BIOS/UEFI में 11.0.0.0m विकल्प ROM है, तो 11.x संस्करण ड्राइवर का उपयोग किया जाना चाहिए।

असमर्थित फ़ाइल सिस्टम को सक्षम करना
जहाँ फ़ाइल सिस्टम स्वचालित रूप से TRIM का समर्थन नहीं करता है, कुछ उपयोगिताएँ मैन्युअल रूप से ट्रिमिंग कमांड भेज सकती हैं। आमतौर पर वे निर्धारित करते हैं कि कौन से ब्लॉक मुक्त हैं और फिर इस सूची को ड्राइव में ट्रिमिंग कमांड की एक श्रृंखला के रूप में पास करते हैं। ये उपयोगिताएँ विभिन्न निर्माताओं से उपलब्ध हैं (जैसे इंटेल, जी.स्किल रेफरी> ), या सामान्य उपयोगिताओं के रूप में (v9.17 के बाद से Linux hdparm वाइपर में, या mdtrim, जैसा कि उल्लेख किया गया है #RAID मुद्दे)। एचडीपार्म और एमडीट्रिम दोनों फाइल सिस्टम पर एक बड़ी फाइल आवंटित करके और इसे किस भौतिक स्थान को सौंपा गया था, को हल करके मुफ्त ब्लॉक ढूंढते हैं।

ऑपरेटिंग सिस्टम के बावजूद, ड्राइव यह पता लगा सकता है कि जब कंप्यूटर एक ब्लॉक में सभी-शून्य लिखता है, और शून्य के ब्लॉक को रिकॉर्ड करने के बजाय उस ब्लॉक को डी-आवंटित (ट्रिम) करता है। यदि किसी डी-आवंटित ब्लॉक को पढ़ना हमेशा शून्य देता है, तो यह शॉर्टकट उपयोगकर्ता के लिए पारदर्शी होता है, अप्रयुक्त क्षेत्रों में तेजी से लिखने के सामान्य लाभ के अलावा, सभी शून्य ब्लॉकों के तेजी से लेखन (और पढ़ने) को छोड़कर। ऑपरेटिंग सिस्टम डेटा वाइपिंग के लिए ऑल-जीरो नहीं लिखते हैं फ़ाइलें मिटाएँ या स्थान खाली करें, लेकिन कुछ उपयोगिताएँ ऐसा करती हैं।

एटीए
TRIM कमांड विनिर्देश सूचना प्रौद्योगिकी मानकों के लिए अंतर्राष्ट्रीय समिति (INCITS) की तकनीकी समिति T13 के नेतृत्व में एटी अटैचमेंट (ATA) इंटरफ़ेस मानक के हिस्से के रूप में मानकीकृत किया गया है। TRIM को DATA SET MANAGEMENT कमांड (opcode 06h) के ड्राफ्ट ACS-2 विनिर्देश के तहत लागू किया गया है। ATA मानक समानांतर (IDE, PATA) और सीरियल (SATA) ATA हार्डवेयर दोनों द्वारा समर्थित है।

मूल ATA TRIM कमांड की एक खामी यह है कि इसे एक गैर-कतारबद्ध कमांड के रूप में परिभाषित किया गया था और इसलिए कतारबद्ध पढ़ने और लिखने के कार्यों के सामान्य वर्कलोड के साथ आसानी से मिश्रित नहीं किया जा सकता था। SATA 3.1 ने इसका समाधान करने के लिए एक पंक्तिबद्ध TRIM कमांड प्रस्तुत किया। ATA IDENTIFY DEVICE कमांड से लौटे SATA Words 69 और 169 द्वारा परिभाषित विभिन्न प्रकार के TRIM हैं:
 * गैर-नियतात्मक TRIM: TRIM के बाद लॉजिकल ब्लॉक एड्रेसिंग (LBA) के लिए प्रत्येक रीड कमांड अलग डेटा लौटा सकता है।
 * नियतात्मक TRIM (DRAT): TRIM के बाद LBA के लिए सभी पढ़े गए आदेश समान डेटा लौटाएंगे, या निर्धारित हो जाएंगे।
 * TRIM (RZAT) के बाद नियतात्मक रीड ज़ीरो: TRIM के बाद LBA के लिए सभी रीड कमांड शून्य वापस आ जाएंगे।

SATA Word 105 में अतिरिक्त जानकारी है जो प्रति DATA SET MANAGEMENT कमांड के लिए 512-बाइट ब्लॉक की अधिकतम संख्या का वर्णन करती है जिसका एक ड्राइव समर्थन कर सकता है। आम तौर पर यह डिफ़ॉल्ट रूप से 8 (या 4 kB) होता है, लेकिन कई ड्राइव TRIM के लिए Microsoft Windows हार्डवेयर आवश्यकताओं को पूरा करने के लिए इसे घटाकर 1 कर देते हैं, कमांड पूरा करने का समय 20 ms या 8 ms × (LBA रेंज प्रविष्टियों की संख्या) से अधिक नहीं होना चाहिए, जो भी हो अधिक, और हमेशा 600 ms से कम होना चाहिए। एक व्यक्तिगत एलबीए रेंज को एलबीए रेंज एंट्री कहा जाता है और इसे आठ बाइट्स द्वारा दर्शाया जाता है। एलबीए एलबीए रेंज एंट्री के पहले छह बाइट्स द्वारा व्यक्त किया गया है और रेंज की लंबाई शून्य-आधारित काउंटर है (उदाहरण के लिए, 0 = 0 और 1 = 1) शेष दो बाइट्स द्वारा दर्शाया गया है। यदि दो-बाइट श्रेणी की लंबाई शून्य है, तो LBA श्रेणी प्रविष्टि को पैडिंग के रूप में छोड़ दिया जाएगा। इसका मतलब यह है कि टीआरआईएम रेंज के प्रत्येक 512-बाइट ब्लॉक के लिए जो एक डिवाइस का समर्थन करता है, अधिकतम 64 रेंज 32 एमबी या 2 जीबी है। यदि कोई डिवाइस 8 पर सैटा वर्ड 105 का समर्थन करता है तो उसे एक ही ट्रिम (डेटा सेट प्रबंधन) कमांड में 16 जीबी ट्रिम करने में सक्षम होना चाहिए।

एससीएसआई
SCSI UNMAP कमांड (TRIM का एक पूर्ण एनालॉग) और UNMAP फ्लैग सेट के साथ WRITE SAME कमांड (10 और 16 प्रकार) प्रदान करता है।

एसडी/एमएमसी
MultiMediaCard और SD कार्ड ERASE (CMD38) कमांड ATA TRIM कमांड के समान कार्यक्षमता प्रदान करता है, हालाँकि इसके लिए आवश्यक है कि मिटाए गए ब्लॉकों को शून्य या एक के साथ अधिलेखित किया जाए। एक DISCARD सब-ऑपरेशन को eMMC 4.5 में और वैकल्पिक रूप से SDHC और SDXC कार्ड में परिभाषित किया गया है, जो कि ATA TRIM से अधिक निकटता से मेल खाता है, जिसमें छोड़े गए ब्लॉक की सामग्री को अनिश्चित माना जा सकता है (यानी, परवाह नहीं है)।

एनवीएम एक्सप्रेस
एनवीएम एक्सप्रेस कमांड सेट में एक जेनेरिक डेटासेट मैनेजमेंट कमांड सेट होता है, जो ब्लॉक रेंज के सेट पर स्टोरेज डिवाइस के लिए होस्ट के इरादे को इंगित करता है। इसके संचालन में से एक, DEALLOCATE ट्रिम करता है। इसमें WRITE ZEROES कमांड भी है जो DEALLOCATE संकेत प्रदान करता है और डिस्क को ट्रिम करने और शून्य वापस करने की अनुमति देता है।

नुकसान
इन उपकरणों को लिनक्स कर्नेल में ब्लैकलिस्ट किया गया है libata-core.c गैर-कतारबद्ध TRIM आदेश भेजने के लिए बाध्य करने के लिए (ATA_HORKAGE_NO_NCQ_TRIM) कतारबद्ध TRIM कमांड के बजाय इन ड्राइव्स पर:
 * कुछ अस्वीकृत एन्क्रिप्शन योजनाओं में संपूर्ण डिस्क को यादृच्छिक कचरे की तरह दिखाना शामिल है। TRIM का उपयोग करने से प्रशंसनीय खंडन की यह परत पराजित हो जाती है क्योंकि बनाए गए सभी-शून्य (या सभी-एक) ब्लॉक आसानी से इंगित करते हैं कि कौन से ब्लॉक का उपयोग किया जाता है। यह तर्क दिया गया है कि TRIM को अक्षम करना संदिग्ध भी हो सकता है।
 * TRIM कमांड के मूल संस्करण को T13 उपसमिति द्वारा एक गैर-कतारबद्ध कमांड के रूप में परिभाषित किया गया है, और इसके परिणामस्वरूप लापरवाही से उपयोग किए जाने पर बड़े पैमाने पर निष्पादन जुर्माना लगाया जा सकता है, उदाहरण के लिए, यदि प्रत्येक फाइलसिस्टम डिलीट कमांड के बाद भेजा जाता है। कमांड की गैर-कतारबद्ध प्रकृति के लिए ड्राइवर को पहले सभी बकाया कमांडों के समाप्त होने की प्रतीक्षा करने की आवश्यकता होती है, TRIM कमांड जारी करें, फिर सामान्य कमांड्स को फिर से शुरू करें। एसएसडी में फर्मवेयर के आधार पर टीआरआईएम को पूरा होने में काफी समय लग सकता है, और कचरा संग्रह (एसएसडी) चक्र भी ट्रिगर कर सकता है। इस पेनल्टी को उन समाधानों में कम किया जा सकता है जो सिस्टम उपयोग कम होने पर ऐसे बैच जॉब्स को शेड्यूल करके प्रत्येक फ़ाइल हटाने पर ट्रिमिंग करने के बजाय बैच टीआरआईएम और/या आवधिक टीआरआईएम करते हैं। कतारबद्ध TRIM कमांड की शुरुआत के साथ सीरियल ATA संशोधन 3.1 में इस TRIM नुकसान को दूर किया गया है।
 * केवल कुछ हाइपरविजर (जैसे हाइपर-वी, समानताएं डेस्कटॉप) ने अतिथि ओएस (2023 तक) के लिए टीआरआईएम लागू किया है।
 * दोषपूर्ण ड्राइव फर्मवेयर जो कतारबद्ध TRIM के लिए समर्थन की गलत सूचना देता है या इसके कार्यान्वयन में महत्वपूर्ण बग हैं, गंभीर डेटा भ्रष्टाचार और/या गंभीर बग जैसे कई उपकरणों में लगातार फ्रीज से जुड़ा हुआ है, विशेष रूप से माइक्रोन और क्रूसियल का M500 और सैमसंग की 840 और 850 श्रृंखला। लिनक्स ऑपरेटिंग सिस्टम पर डेटा भ्रष्टाचार की पुष्टि की गई है (1 जुलाई 2015 तक कतारबद्ध ट्रिम समर्थन वाला एकमात्र ओएस)।
 * माइक्रोन/क्रूशियल M500 फ़ैक्टरी पुन: प्रमाणित एसएसडी सहित सभी फ़र्मवेयर संस्करणों का उपयोग कर रहा है
 * फर्मवेयर संस्करण MU01 का उपयोग करके माइक्रोन M510
 * फर्मवेयर संस्करण MU01 का उपयोग कर माइक्रोन/क्रूशियल M550
 * फर्मवेयर संस्करण MU01 का उपयोग करते हुए महत्वपूर्ण MX100
 * सभी फर्मवेयर संस्करणों का उपयोग कर सैमसंग 840 और 850 श्रृंखला एसएसडी

यह फ़ाइल सामान्य रूप से TRIM के विरुद्ध SuperSpeed ​​S238 को भी ब्लैकलिस्ट करती है क्योंकि TRIM जारी होने पर गलत ब्लॉक डेटा खो देता है।

libata-core.c के पास SSDs को सूचीबद्ध करने के लिए एक श्वेतसूची भी है जो DRAT और RZAT फ़्लैग्स को सही ढंग से लागू करने के लिए सबसिस्टम के अनुरक्षकों के लिए विश्वसनीय रूप से ज्ञात हैं, उन्हें अनदेखा करने के बजाय, जैसा कि कई ड्राइव करते हैं। श्वेतसूचीबद्ध ड्राइव इस प्रकार हैं: * महत्वपूर्ण एसएसडी
 * Intel SSDs, Intel SSD 510 को छोड़कर
 * माइक्रोन एसएसडी
 * सैमसंग एसएसडी
 * सीगेट एसएसडी

यह भी देखें

 * डेटा अवशेष

बाहरी संबंध

 * From write down to flash chips – An explanation on how the TRIM command lets SSDs erase data not used by the filesystem
 * TRIM Command White Paper – A white paper explaining the command's purpose and actions
 * Fusion-io Patent "Apparatus, system, and method for redundant write caching"