TRIM

TRIM

TRIM — команда интерфейса ATA, позволяющая операционной системе уведомить твердотельный накопитель о том, какие блоки данных больше не используются и могут быть использованы накопителем для подготовки к записи.

TRIM входит в спецификацию интерфейса ATA, стандартизацией которого занимается группа T13 в составе INCITS.[1]

Содержание

Цели использования

Команда TRIM была введена вскоре после появления твердотельных накопителей (SSD), чтобы сделать их конкурентоспособной альтернативой традиционным HDD в персональных компьютерах. Из-за того, что на внутреннем уровне реализация операций в SSD существенно отличаются от тех же операций в традиционных механических жёстких дисках, обычные методы ОС таких операций, как удаление файлов и форматирование диска (не обращаясь непосредственно к затрагиваемым секторам/страницам на накопителе), приводит к прогрессирующему ухудшению производительности операций записи на SSD.[2] Применение TRIM позволяет устройству SSD уменьшить влияние сборки мусора, которая в противном случае в дальнейшем выразится падением производительности операций записи в затронутые секторы.[3]

Хотя утилиты для «сброса» некоторых накопителей в начальное состояние были уже доступны ранее появления TRIM, они, помимо прочего, удаляли все данные на накопителе, что делало их практически неприменимыми для проведения оптимизации.[4]

Особенности работы твердотельных накопителей

Ввиду особенностей методов удаления, обычно применяемых в файловых системах, накопители «не знают», какие сектора/страницы действительно используются, а какие могут считаться незанятыми. Операции удаления обычно ограничиваются пометкой блоков данных как «неиспользуемых» в файловой системе.[5][6] В отличие от, например, операции перезаписи, удаление не приведёт к физической записи в затрагиваемые сектора, содержащие данные. Поскольку накопитель не имеет доступа к структурам файловой системы — таким как список неиспользуемых кластеров — накопитель остаётся в неведении об освобождении блоков. Хотя это часто позволяло восстановить удалённые данные на традиционных HDD, несмотря на то, что они были отмечены как «удалённые» операционной системой, так же это означало, что когда позже операционная система произведёт операцию записи в один из секторов, считающихся свободным местом, эта операция будет считаться операцией перезаписи с точки зрения накопителя. Для традиционных жёстких дисков эта операция никак не отличается от записи в незанятый сектор, но из-за того, как на низком уровне функционируют SSD, перезапись данных существенно отличается от записи в незанятый сектор, потенциально ухудшая производительность дальнейших операций записи.[6]

SSD хранят данные в ячейках флеш-памяти, сгруппированными в «страницы» (обычно по 4 Кбайт каждая), которые, в свою очередь, сгруппированы в блоки (обычно 128 страниц или 512 Кбайт суммарно)[5][7] Ячейки NAND-флеш-памяти могут быть непосредственно записаны лишь в том случае, когда они чисты. В случае, когда они хранят данные, содержимое ячеек должно быть очищено, прежде чем в них будут записаны новые данные. В SSD накопителях операция записи может быть проделана только для страниц, однако из-за аппаратных ограничений команда удаления всегда выполняется на весь блок.[7] В результате, запись на SSD-носитель выполняется очень быстро до тех пор, пока существуют чистые страницы, но значительно замедляется, если необходимо очищать предварительно записанные страницы. Так как очистка ячеек в странице необходима перед тем, как в них можно будет записывать снова, но только целый блок может быть очищен, процесс перезаписи инициирует цикл чтение-очистка-модификация-запись:[5][8] содержимое целого блока должно быть сохранено в кеше перед тем, как оно может быть удалено с накопителя, перезаписываемые данные модифицируются в кеше и только после этого целый блок (с обновленной страницей) записывается на накопитель. Это явление известно как усиление записи (англ.).[9][10]

В своих SSD-контроллерах производители используют различные техники для оптимального распределения операций записи по всему флеш-накопителю.[5][11] Это делается не только для того, чтобы оптимизировать скорость путем минимизации усиления записи, но также для увеличения продолжительности жизни флеш-ячеек (выравнивание износа (англ.)), так как обычные MLC-флеш-ячейки выдерживают около 10 000 циклов записи (информация устарела!).[11] Другой подход заключается в том, чтобы использовать лишнюю память, не задекларированную операционной системе, для предоставления чистых страниц для операций записи как можно дольше перед тем, как начать перезаписывать другие страницы.[3]

Эффективность этих методов по большей части зависит от обмена информацией между ОС и контроллером SSD о том, какие страницы могут считаться занятыми, а какие — свободными. Традиционно большинство ОС не информируют накопители об удаленных секторах/страницах, что препятствует контроллерам SSD оптимально распределять свободное пространство. Команда TRIM была введена чтобы исправить это, очищая неиспользуемые ячейки до того, как в них будет произведена запись, таким образом уменьшая время доступа.[3]

Так как команда полностью стирает данные в ячейках, восстановить из них данные обычно не представляется возможным.[12]

Ограничения

  • TRIM не работает с «виртуальными» дисками, хранящимися в виде образов, что ограничивает использование команды в виртуальной среде.
  • TRIM не всегда поддерживается в RAID-массивах.[13]

Поддержка команды операционными системами и дисками

Для старых твердотельных дисков, произведённых до добавления команды TRIM в стандарт ATA, необходимо обновление прошивки — в противном случае, команда будет ими игнорироваться. Команда TRIM поддерживается также не всеми операционными системами.

Поддержка TRIM в операционных системах
ОС Поддержка
Windows 8 Поддерживается с финального релиза (октябрь 2012)
Windows Server 2012 Поддерживается с финального релиза (октябрь 2012)
Windows 7 Поддерживается с финального релиза (октябрь 2009)[14]
Windows Server 2008 R2 Поддерживается с финального релиза (октябрь 2009)[15][16]
Linux 2.6.33 Поддерживается с февраля 2010[17]
Ubuntu 11.04 Поддерживается с апреля 2011[источник не указан 71 день]
OpenSolaris Поддерживается с июля 2010[18]
FreeBSD 8.3, 9.0 & head Поддерживается с UFS[19], поддерживается с ZFS[20][21].
Mac OS X Поддерживается (на данный момент — только для SSD, входящих в комплект поставки компьютера) с версии 10.6.6 с соответствующим обновлением.[22]

В некоторых случаях, когда TRIM не поддерживается операционной системой, существуют утилиты, позволяющие отправлять эту команду «вручную». Обычно такие программы с помощью ОС составляют список свободных блоков и передают его диску в виде последовательности команд TRIM. Такие продукты существуют как в виде универсальных утилит (hdparm версии 9.17 и выше), так и в виде ПО для отдельных дисков (Intel,[23] G.Skill[24]).

Аналогом команды TRIM для SCSI являются команды UNMAP и WRITE SAME[25].

Примечания

  1. T13 documents referring to TRIM  (англ.). INCITS T13. INCITS. Архивировано из первоисточника 1 июля 2012. Проверено 8 июля 2009.
  2. Shimpi, Anand Lal The SSD Anthology  (англ.). AnandTech.com (18 March 2009). Архивировано из первоисточника 1 июля 2012. Проверено 19 июня 2010.
  3. 1 2 3 Shimpi, Anand Lal. (2009-03-18). p. 10.
  4. Shimpi, Anand Lal. (2009-03-18). p. 11.
  5. 1 2 3 4 Savill, John I heard solid-state disks (SSDs) suffer from a decline in write performance as they're used. Why?  (англ.). WindowsITPro (21 April 2009). Архивировано из первоисточника 1 июля 2012. Проверено 19 июня 2010.
  6. 1 2 Shimpi, Anand Lal. (2009-03-18). p. 7.
  7. 1 2 Shimpi, Anand Lal. (2009-03-18). p. 5.
  8. Shimpi, Anand Lal. (2009-03-18). p. 8.
  9. Write Amplification: Intel’s Secret Sauce
  10. Inside the X25-M Controller: Wear Leveling, Write Amplification Control
  11. 1 2 Shimpi, Anand Lal. (2009-03-18). p. 6.
  12. Too TRIM? When SSD Data Recovery is Impossible  (англ.). TechGage. TechGage (5 March 2010). Архивировано из первоисточника 1 июля 2012. Проверено 16 апреля 2010.
  13. Gareth Halfacree Intel release TRIM for RAID  (англ.). bit-tech.net (23 March 2010). Архивировано из первоисточника 1 июля 2012. Проверено 2 ноября 2010.
  14. Support and Q&A for Solid-State Drives  (англ.). MSDN (9 May 2009). Архивировано из первоисточника 1 июля 2012. Проверено 2010-08-12].
  15. Windows 7 Enhancements for Solid-State Drives  (англ.). Microsoft downloads. Microsoft Corporation (12 November 2008). Архивировано из первоисточника 1 июля 2012. Проверено 8 июля 2009.
  16. Q. What is the TRIM function for solid state disks (SSDs) and why is it important?  (англ.). Windows IT Pro. Проверено 1 сентября 2010.
  17. Trim on Linux  (англ.). Kernel Newbies. Архивировано из первоисточника 1 июля 2012. Проверено 1 сентября 2010.
  18. SATA TRIM support in OpenSolaris (29 июля 2010). Архивировано из первоисточника 1 июля 2012.
  19. SVN revision 216796 (29 декабря 2010). Архивировано из первоисточника 1 июля 2012.
  20. SVN revision 240868 (23 сентября 2012). Архивировано из первоисточника 26 октября 2012.
  21. TRIM clustering (5 мая 2011). Архивировано из первоисточника 1 июля 2012.
  22. Daniel Eran Dilger Apple's MacBook Pros ship with active SSD TRIM support in Snow Leopard  (англ.). appleinsider.com (4 March 2011). Архивировано из первоисточника 1 июля 2012. Проверено 7 марта 2011.
  23. Intel SSD Optimizer White Paper  (англ.) (pdf). Intel Corporation. Архивировано из первоисточника 1 июля 2012. Проверено 23 января 2010.
  24. wiper.exe for Falcon Series  (англ.). XtremeSystems. Архивировано из первоисточника 1 июля 2012. Проверено 23 января 2010.
  25. Note for SCSI UNMAP support in FreeBSD mailing list. Архивировано из первоисточника 1 июля 2012.

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "TRIM" в других словарях:

  • trim´ly — trim «trihm», verb, trimmed, trim|ming, adjective, trim|mer, trim|mest, noun, adverb. –v.t. 1. to make neat by cutting away parts: »The gardene …   Useful english dictionary

  • trim — [trim] vt. trimmed, trimming [via ME dial. < OE trymman, to make firm, set in order, array < trum, strong, firm: for IE base see TREE] 1. Obs. to prepare; fit out; dress 2. to put in proper order; make neat or tidy, esp. by clipping,… …   English World dictionary

  • TRIM — ist ein Befehl zur Markierung ungenutzter oder ungültiger Datenblöcke auf Speichermedien zum Zweck der späteren Wiederbeschreibung[1]. Der TRIM Befehl ermöglicht es einem Betriebssystem, dem Speichermedium Solid State Drive (SSD) mitzuteilen,… …   Deutsch Wikipedia

  • Trim — Trim, a. [Compar. {Trimmer}; superl. {Trimmest}.] [See {Trim}, v. t.] Fitly adjusted; being in good order., or made ready for service or use; firm; compact; snug; neat; fair; as, the ship is trim, or trim built; everything about the man is trim;… …   The Collaborative International Dictionary of English

  • Trim — may refer to:Places* Trim, County Meath, a town and castle in Ireland * Trim Station (OC Transpo), a bus station in Ottawa, Canada * Trim Road, in Ottawa, CanadaDecoration* Trim (sewing), ornaments applied to clothing or other textiles * Trim… …   Wikipedia

  • trim — [trɪm] verb trimmed PTandPPX trimming PRESPARTX [transitive] to remove parts of a plan, set of activities, company etc in order to reduce its costs: • We need to trim the Defence budget by another £500m. • The company is to trim its workforce (=… …   Financial and business terms

  • Trim — Trim, v. t. [imp. & p. p. {Trimmed}; p. pr. & vb. n. {Trimming}.] [OE. trimen, trumen, AS. trymian, trymman, to prepare, dispose, make strong, fr. trum firm, strong; of uncertain origin.] 1. To make trim; to put in due order for any purpose; to… …   The Collaborative International Dictionary of English

  • trim — trȉm [b] (II)[/b] prid. <indekl.> DEFINICIJA kao prvi dio polusloženice 1. koji se odnosi na trim (I) (3) [trim specijalist; trim starješina] 2. koji se odnosi na fizičku kondiciju [trim akcija; trim pokret; trim centar] SINTAGMA trim… …   Hrvatski jezični portal

  • Trim — Trim, n. 1. Dress; gear; ornaments. [1913 Webster] Seeing him just pass the window in his woodland trim. Sir W. Scott. [1913 Webster] 2. Order; disposition; condition; as, to be in good trim. The trim of an encounter. Chapman. [1913 Webster] 3.… …   The Collaborative International Dictionary of English

  • trim — [adj1] neat, orderly apple pie order*, clean, clean cut, compact, dapper, fit, in good shape, neat as a pin*, nice, shipshape*, slick, smart, snug, spick and span*, spruce, streamlined, symmetrical, tidy, to rights*, uncluttered, well groomed;… …   New thesaurus

  • Trim — ist: eine Stadt in Irland: Trim (Irland) in der Informatik eine Funktion zum Entfernen von Leerzeichen am Anfang und Ende von Zeichenketten. Figur aus dem Buch Leben und Meinungen des Tristram Shandy von Laurence Sterne der Hund, der den Hund… …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»