RU2456664C2 - Технологии уничтожения при удалении для оптимизации твердотельного накопителя - Google Patents

Технологии уничтожения при удалении для оптимизации твердотельного накопителя Download PDF

Info

Publication number
RU2456664C2
RU2456664C2 RU2009138348/08A RU2009138348A RU2456664C2 RU 2456664 C2 RU2456664 C2 RU 2456664C2 RU 2009138348/08 A RU2009138348/08 A RU 2009138348/08A RU 2009138348 A RU2009138348 A RU 2009138348A RU 2456664 C2 RU2456664 C2 RU 2456664C2
Authority
RU
Russia
Prior art keywords
ssd
invalid
data
interface
information
Prior art date
Application number
RU2009138348/08A
Other languages
English (en)
Other versions
RU2009138348A (ru
Inventor
Фрэнк Дж. ШУ (US)
Фрэнк Дж. ШУ
Натан С. ОБР (US)
Натан С. ОБР
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2009138348A publication Critical patent/RU2009138348A/ru
Application granted granted Critical
Publication of RU2456664C2 publication Critical patent/RU2456664C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Изобретение относится к технологии идентификации данных, сохраненных на твердотельном накопителе SSD. Техническим результатом является повышение производительности и надежности SSD, а также увеличение срока эксплуатации ячейки памяти. Включены интерфейсы, функционирующие так, чтобы передавать информацию о недействительных данных и предоставлять команду уничтожения при удалении, которая предоставляет информацию о недействительных данных, достаточную, чтобы идентифицировать SSD-данные, которые должны быть помечены как недействительные. 3 н. и 17 з.п. ф-лы, 3 ил.

Description

Уровень техники
Твердотельные накопители ("SSD") становятся экономичным средством для использования в качестве массовых запоминающих устройств с возможностью загрузки. SSD обычно изготавливаются так, чтобы включать в себя устройства флэш-памяти, такие как устройства энергонезависимой флэш-памяти, включающие в себя устройства типа логического НЕ-И ("NAND"). Соответственно, операция записи SSD имеет другие принципы, чем как это делает типичный накопитель на жестком диске ("HDD"), который может перезаписывать недействительные (удаленные) данные действительными (новыми) данными в том же физическом месте на диске. Операции записи SSD типично включают в себя операцию странично-ориентированного объединения с тем, чтобы объединять новые данные с существующими данными одного и того же блока памяти в новый блок памяти. Если существующие данные должны быть недействительными, такая операция объединения может излишне повлиять на производительность SSD. Дополнительно, по причинам надежности SSD типично выполняют операции "выравнивания степени износа", чтобы уменьшать ухудшение срока эксплуатации ячейки памяти. Такие операции типично перемещают данные из одного блока или страницы в другой блок или страницу. Если данные на одной странице должны быть недействительны, операция выравнивания степени износа для этой страницы может излишне повлиять на производительность SSD и потенциально снижать надежность SSD. Дополнительно, типичные файловые системы обычно хранят информацию о состоянии, указывающую, какие данные рассматриваются как удаленные (недействительные), и какие - нет. Но эти данные типично не переносятся на соответствующее запоминающее устройство, такое как HDD или SSD, способом, который соответствует всем данным, и где данные типично хранятся на устройстве как один или более логических адресов блоков, например. Соответственно, запоминающие устройства, как противоположность файловым системам, обычно не знают о том, какие данные действительны, а какие данные недействительны, и, следовательно, типично не имеют возможности распознавать недействительные данные с тем, чтобы избегать ненужных операций с такими данными.
Сущность изобретения
Далее представлена упрощенная сущность изобретения, для того чтобы предоставить базовое понимание читателям. Эта сущность не является всесторонним обзором изобретения, и она не идентифицирует ключевые/критические элементы изобретения или не очерчивает рамки изобретения. Ее единственная цель - представить некоторые понятия, раскрытые в данном документе, в упрощенной форме в качестве вступления в более подробное описание, которое изложено далее.
Настоящие примеры представляют технологии идентификации данных, сохраненных на устройстве твердотельного накопителя ("SSD"), которые соответствуют данным, ассоциированным с событием удаления, и пометки удаленных данных, сохраненных на SSD, как недействительных, так что SSD может избежать ненужных операций с недействительными данными. В состав изобретения включены интерфейсы, пригодные, чтобы сообщать информацию о недействительных данных и предоставлять команду уничтожения при удалении, которая предоставляет информацию о недействительных данных, достаточную для того, чтобы идентифицировать соответствующие SSD-данные, которые должны быть помечены как недействительные.
Многие из сопутствующих признаков будут более легко поняты, поскольку они становятся более понятными посредством ссылки на последующее подробное описание, рассматриваемое в связи с сопровождающими чертежами.
Описание чертежей
Настоящее описание будет лучше понятно из следующего подробного описания, рассматриваемого в связи с сопровождающими чертежами, на которых:
фиг.1 является блок-схемой, показывающей традиционную операционную систему и интерфейс с твердотельным накопителем и новую операционную систему и интерфейс с твердотельным накопителем.
Фиг.2 является блок-схемой последовательности операций, показывающей пример способа уничтожения при удалении.
Фиг.3 является блок-схемой, показывающей примерное вычислительное окружение, в котором могут быть осуществлены технологии, описанные в данном документе.
Одинаковые ссылочные номера используются для того, чтобы обозначать одинаковые части на сопровождающих чертежах.
Подробное описание
Подробное описание, предоставленное ниже в связи с сопровождающими чертежами, предназначено в качестве описания настоящих примеров и не предназначено представлять только те формы, в которых настоящие примеры могут быть сконструированы или использованы. Описание излагает, по меньшей мере, некоторые из функций примеров и/или последовательность этапов примеров создания и работы. Однако одинаковые или эквивалентные функции и последовательности могут быть выполнены посредством других примеров.
Хотя настоящие примеры описаны и иллюстрированы в данном документе как осуществляемые в вычислительном окружении, описанное окружение предоставлено в качестве примера, а не ограничения. Как поймут специалисты в данной области техники, настоящие примеры подходят для применения во множестве различных типов вычислительных окружений.
Фиг.1 является блок-схемой, показывающей традиционную операционную систему 110a и интерфейс 120a с твердотельным накопителем 130 и новую операционную систему 110b и интерфейс 120b с твердотельным накопителем ("SSD") 130. Традиционная операционная система 110a включает в себя примерную традиционную файловую систему 112a, соединенную с примерным традиционным драйвером 114a SSD через традиционный интерфейс 113a. Одним примером интерфейса 113a является интерфейс управления вводом/выводом ("IOCTL"). Файловая система 112a типично управляет абстракцией данных как файлами, папками, свойствами и т.п. Данные могут быть любым типом цифровой информации, исполняемыми инструкциями или т.п. Эти абстракции типично преобразуются в физические конструкции доступа и хранения данных драйвером 114a SSD, которое взаимодействует с SSD 130 через интерфейс 120a, чтобы хранить и осуществлять доступ к данным на SSD 130. Примеры интерфейса 120a включают в себя интерфейс усовершенствованной технологии присоединения ("ATA") и интерфейс малых компьютерных систем ("SCSI") и т.п.
Примерный SSD 130 является устройством твердотельного накопителя, изготовленным с помощью устройств твердотельной памяти или т.п. в качестве носителя хранения, как противоположность магнитным или оптическим носителям хранения, таким как традиционные HDD, гибкие диски, компакт-диски или т.п. Эти устройства твердотельной памяти могут быть флэш-памятью или любым другим типом или комбинацией твердотельной памяти, оперативного запоминающего устройства ("RAM") или т.п. Такие SSD-устройств могут быть загрузочными устройствами и могут рассматриваться как основные устройства хранения или устройства массовой памяти, такие как описанные в связи с фиг.3. Такие SSD-устройства могут быть сложными SSD-устройствами, т.е. SSD-устройствами, содержащими множество типов или классов памяти, где каждый класс имеет различные характеристики производительности или скорости доступа. Описания функциональности или действия SSD-устройства в данном документе обычно ссылаются на SSD-устройство и/или соответствующий драйвер SSD, такой как примерные драйверы 114a и 114b.
В другом примере SSD 130 может быть традиционным HDD, оптическим накопителем, сетью хранения данных ("SAN"), запоминающим устройством на ленте и/или любой другой формой запоминающего устройства, включающей в себя устройства массовой памяти, описанные в связи с фиг.3, которые могут включать в себя данные, которые могут рассматриваться как недействительные. Настоящее изобретение может применяться к любым таким запоминающим устройствам, системам, механизмам или т.п.
Рассмотрим следующий пример, описывающий то, как недействительные данные типично представлены в SSD. Пользователь, такой как человек или система, может указывать через любой подходящий интерфейс, что некоторые данные, такие как файл, должны быть удалены. Файловая система модифицирует постоянную структуру данных, указывая, что файл был удален, как, например, посредством уничтожения ссылки на удаленный файл из каталога или т.п. Дополнительно, файловая система может пометить данные, представляющие файл в SSD, как недействительные. В одном примере это включает в себя отправку в SSD информации о местоположении файла, указывающую начало файла, через логическую адресацию блоков ("LBA"), за которой типично следует длина файла. LBA или информация о местоположении данных, описывающая данные, которые должны быть удалены, типично отправляется командой через интерфейс с SSD-устройством. При приеме команды и ассоциированной информации о местоположении данных SSD и/или его устройство управления может пометить как недействительные данные, сохраненные в SSD, которые соответствуют удаленному файлу. В традиционной вычислительной системе файловая система может знать о файлах, которые удалены, но SSD - нет. Типично SSD знает только то, что данные записаны на него и считаны с него без различия между действительными и недействительными данными. Некоторые SSD и их ассоциированные драйвера могут выполнять операции, которые смогут извлекать пользу из осведомленности о данных, сохраненных на них, которые являются недействительными. Например, операция записи типичного SSD имеет другие принципы, чем это делает типичный накопитель на жестком диске ("HDD"), который может перезаписывать недействительные (удаленные) данные действительными (новыми) данными в том же физическом месте на диске. В отличие от типичных HDD, операции записи SSD типично включают в себя операцию странично-ориентированного объединения, предназначенную, чтобы объединять новые данные с существующими данными одного и того же блока памяти в новый блок памяти. Если существующие данные должны быть недействительными, такая операция объединения может излишне повлиять на производительность SSD. Дополнительно, по причинам надежности SSD типично выполняют операции "выравнивания степени износа", чтобы уменьшать ухудшение срока эксплуатации ячейки памяти. Такие операции типично перемещают данные из одного блока памяти в другой блок или т.п. Если данные страницы и/или блока должны быть недействительны, операция выравнивания степени износа для этой страницы/блока может излишне повлиять на производительность SSD и потенциально уменьшить надежность SSD.
При использовании в данном документе недействительные данные могут быть данными, сохраненными в ячейках памяти, таких как ячейки SSD-памяти, которые были удалены системой более высокого уровня, такой как файловая система, драйвер, приложение или т.п., или которые не используются, или т.п. Например, когда файл удален, данные, ассоциированные с файлом, могут рассматриваться как недействительные. Отметим, что такие удаленные или недействительные данные типично не уничтожаются или стираются, а могут просто быть классифицированы как недействительные. В одном примере такие недействительные данные остаются сохраненными в запоминающем устройстве. В другом примере недействительные данные могут "вычищаться из памяти" или иным образом уничтожаться, перезаписываться или т.п. Данные, которые не классифицированы как недействительные, типично считаются действительными. Как правило, файловая система или т.п. знает о классификации данных как действительных или недействительных, в противоположность SSD.
Примерная новая операционная система 110b включает в себя примерную новую файловую систему 112b, соединенную с примерным новым драйвером 114b SSD через традиционный интерфейс 113b и новый интерфейс 140. В целом, функциональность элементов 110b, 112b и 114b соответствует их похожим образом пронумерованным "1 xxa" традиционным аналогам, но новая функциональность добавлена для настоящего изобретения. Примерная файловая система 112b может альтернативно быть приложением или т.п., воплощающим функциональность файловой системы.
Файловая система 112b использует новый интерфейс 140, чтобы передавать информацию о недействительных данных драйверу 114b SSD. Такая информация о недействительных данных может включать в себя информацию о местоположении и размере файла. Интерфейс 140 позволяет файловой системе 112b точно указывать драйверу 114b SSD через информацию о недействительных данных, какие данные, сохраненные в SSD 130, являются недействительными. В одном примере интерфейсом 140 является новая команда IOCTL. В другом примере интерфейсом 140 является расширение существующей команды IOCTL. Интерфейс 140 может соответствовать любому формату и/или структуре, подходящей для связывания файловой системы и драйвера SSD, достаточной, чтобы сообщать информацию о недействительных данных. Дополнительно, интерфейс 140 может также позволять файловой системе 112b указывать драйверу 114b SSD, что действительные данные, записываемые в SSD 130, являются действительными, инструктируя не помечать действительные данные, сохраненные на SSD 130, как недействительные.
Интерфейс 120b, в одном примере, соответствует ATA-интерфейсу с дополнительной функциональностью для передачи информации о недействительных данных. А в другом примере интерфейс 120b соответствует SCSI-интерфейсу с дополнительной функциональностью для передачи информации о недействительных данных. Интерфейс 120b может соответствовать любому формату и/или структуре, подходящей для связывания драйвера SSD и SSD-устройства, достаточной, чтобы сообщать информацию о недействительных данных.
Учитывая информацию о недействительных данных, драйвер 114b SSD типично взаимодействует с SSD 130 через интерфейс 120b, чтобы пометить соответствующие данные, блоки, страницы или т.п. как недействительные согласно информации о недействительных данных. Соответственно, операции слияния при записи, операции выравнивания степени износа и т.п. могут выполняться без излишней обработки недействительных данных. Дополнительно, операции оптимизации могут выполняться по SSD-блокам, страницам и т.п., которые помечены как содержащие недействительные данные.
Фиг.2 является блок-схемой последовательности операций, показывающей пример способа 200 уничтожения при удалении. Такой способ может использоваться, чтобы пометить удаленные SSD-данные как недействительные, иначе известный как "уничтожение при удалении". Недействительные или устраненные данные, таким образом, устраняются из рассмотрения SSD-устройством в качестве действительных данных. Это освобождает SSD-устройство от выполнения любых операций по защите или поддержке таких данных.
Этап 210 указывает событие удаления, оказывающее влияние на данные, сохраненные на SSD-устройстве. Одним примером такого события удаления является операция удаления файла, выполненная файловой системой, при этом удаляемый файл в настоящий момент хранится на SSD-устройстве. В других примерах любая система или механизм может выполнять операцию удаления, оказывающую влияние на данные, сохраненные на SSD-устройстве. Типично, драйвер SSD, соответствующий SSD-устройству, принимает и/или обнаруживает событие удаления. Способ 200 типично продолжается на этапе 220.
Этап 220 указывает идентификацию того, какие данные, сохраненные на SSD-устройстве, соответствуют удаляемым данным. В одном примере затрагивается сопоставление данных удаляемого файла с соответствующими данными, сохраненными в SSD. Такое сопоставление имеет в результате информацию о недействительных данных, идентифицирующую, какие данные, сохраненные в SSD, должны быть помечены как недействительные. Такое сопоставление может быть выполнено системой, выполняющей операцию удаления. Информация о недействительных данных идентифицирует точные данные, сохраненные в SSD, которые соответствуют удаляемому файлу и которые должны быть помечены как недействительные. Такие данные могут быть сохранены в SSD как страницы, блоки или т.п. После того как недействительные данные, соответствующие операции удаления и сохраненные в SSD, идентифицированы, способ 200 типично продолжается на этапе 230.
Этап 230 указывает команду уничтожения при удалении. Эта команда типично включает в себя информацию о недействительных данных и инструктирует SSD-устройство и/или его драйвер помечать указанные данные как недействительные. В одном примере такая команда выдается системой, выполняющей операцию удаления, такой как файловая система. После того как команда уничтожения при удалении была выдана, способ 200 типично продолжается на этапе 240.
Этап 240 указывает пометку удаленных данных как недействительных. Такая пометка может иметь любую форму, достаточную, чтобы идентифицировать недействительные данные для SSD-устройства. Такая пометка может затрагивать пометку страниц и/или блоков или т.п. как недействительных в зависимости от того, как SSD структурирует свои данные. Альтернативно, такая пометка может включать в себя перемещение диапазона недействительных данных в таблицу недействительных данных или т.п. После того как удаленные данные помечены как недействительные, SSD-устройство освобождается от выполнения любых операций по защите, поддержке или т.п. недействительных данных. Отметим, что данные считаются удаленными системой более высокого уровня, такой как файловая система, и что соответствующие данные теперь помечаются как недействительные в SSD таким образом, что SSD может распознать соответствующие данные как недействительные. Например, если файловая система удаляет файл "foo.bar", тогда все данные, сохраненные в SSD, которые содержат файл foo.bar, помечаются как недействительные. Информация о сроке может также ссылаться на данные. После того как удаленные данные помечены как недействительные, способ 200 типично завершается.
Фиг.3 является блок-схемой, показывающей примерное вычислительное окружение 300, в котором могут быть осуществлены технологии, описанные в данном документе. Подходящее вычислительное окружение может быть осуществлено с помощью многочисленных универсальных или специализированных систем. Примеры хорошо известных систем могут включать в себя, но не только, сотовые телефоны, персональные цифровые помощники ("PDA"), персональные компьютеры ("PC"), карманные или переносные устройства, микропроцессорные системы, многопроцессорные системы, серверы, рабочие станции, потребительские электронные устройства, телевизионные приставки и т.п.
Вычислительное окружение 300 типично включает в себя вычислительную систему общего назначения в форме вычислительного устройства 301, связанного с различными компонентами, такими как периферийные устройства 302, 303, 304 и т.п. Система 300 может связываться с различными другими компонентами, такими как устройства 303 ввода, включающие в себя устройства распознавания голоса, сенсорные панели, клавиши, клавиатуры и/или указывающие устройства, такие как мышь или трекбол, через один или более интерфейсов 312 ввода/вывода ("I/O"). Компоненты вычислительного устройства 301 могут включать в себя один или более процессоров (включающих в себя центральные процессоры ("CPU"), графические процессоры ("GPU"), микропроцессоры ("μP") и т.п.) 307, системную память 309 и системную шину 308, которая типично связывает различные компоненты. Процессор 307 типично обрабатывает или выполняет различные машиноисполняемые инструкции, чтобы управлять работой вычислительного устройства 301 и связываться с другими электронными и/или вычислительными устройствами, системами или окружением (не показано) через различные соединения связи, такие как сетевое соединение 314 или т.п. Системная шина 308 представляет любое число нескольких типов структур шин, включающих в себя шину памяти или контроллер памяти, периферийную шину, последовательную шину, ускоренный графический порт, процессорную или локальную шину, использующую любую из множества шинных архитектур, и т.п.
Системная память 309 может включать в себя машиночитаемые носители в форме энергозависимой памяти, такой как оперативное запоминающее устройство ("RAM"); и/или энергонезависимой памяти, такой как постоянное запоминающее устройство ("ROM") или флэш-память ("FLASH"). Основная система ввода/ввода ("BIOS") может быть сохранена в энергонезависимой памяти или т.п. Системная память 309 типично хранит данные, машиноисполняемые инструкции и/или программные модули, содержащие машиноисполняемые инструкции, которые непосредственно доступны и/или обрабатываются в настоящий момент одним или более процессорами 307.
Устройства 304 и 310 массовой памяти могут быть связаны с вычислительным устройством 301 или включены в вычислительное устройство 301 через связывание с системной шиной и/или шиной запоминающих устройств или т.п. Такие устройства 304 и 310 массовой памяти могут включать в себя энергонезависимое RAM, накопитель на магнитных дисках, который считывает с и/или записывает на съемный, энергонезависимый магнитный диск (например, "гибкий диск") 305 и/или накопитель на оптических дисках, который считывает с и/или записывает на энергонезависимый оптический диск, такой как CD-ROM, DVD-ROM 306. Альтернативно, устройство массовой памяти, такое как жесткий диск 310, может включать в себя несъемный носитель хранения. Другие устройства массовой памяти могут включать в себя карты памяти, флэш-карты, устройства хранения на ленте и т.п.
Любое число компьютерных программ, файлов, структур данных и т.п. могут храниться в массовом запоминающем устройстве 310, других запоминающих устройствах 304, 305, 306 и системной памяти 309 (типично ограниченной доступным пространством) и включают в себя, в качестве примера, а не ограничения, операционные системы, прикладные программы, файлы данных, структуры каталогов, машиноисполняемые инструкции и т.п.
Компоненты или устройства вывода, такие как устройство 302 отображения, могут быть связаны с вычислительным устройством 301, типично через интерфейс, такой как адаптер 311 дисплея. Устройство 302 вывода может быть жидкокристаллическим дисплеем ("LCD"). Другие примерные устройства вывода могут включать в себя принтеры, устройства вывода звука, устройства вывода речи, дисплеи на электронно-лучевых трубках ("CRT"), тактильные устройства или другие чувствительные механизмы вывода или т.п. Устройства вывода могут позволять вычислительному устройству 301 взаимодействовать с людьми-операторами или другими машинами, системами, вычислительными окружениями или т.п. Пользователь может взаимодействовать с вычислительным окружением 300 через любое число различных I/O-устройств 303, таких как сенсорная панель, кнопки, клавиатура, мышь, джойстик, игровой планшет, порт данных и т.п. Эти и другие I/O-устройства могут быть связаны с процессором 307 через I/O-интерфейсы 312, которые могут быть связаны с системной шиной 308, и/или могут быть связаны посредством других интерфейсов и шинных структур, таких как параллельный порт, игровой порт, универсальная последовательная шина ("USB"), шина сверхбыстрой передачи данных, инфракрасный ("IR") порт и т.п.
Вычислительное устройство 301 может работать в сетевом окружении через соединения связи с одним или более удаленными вычислительными устройствами через одну или более сотовых сетей, беспроводных сетей, локальных вычислительных сетей ("LAN"), глобальных вычислительных сетей ("WAN"), сетей устройств хранения данных ("SAN"), Интернет, линий радиосвязи, оптических линий связи и т.п. Вычислительное устройство 301 может быть связано с сетью через сетевой адаптер 313 или т.п., или, альтернативно, через модем, соединение по цифровой абонентской линии связи ("DSL"), соединение по цифровой сети с интеграцией услуг ("ISDN"), Интернет-соединение, беспроводную линию связи или т.п.
Соединение 314 связи, такое как сетевое соединение, типично обеспечивает связь со средой передачи, такой как сеть. Среда передачи данных типично предоставляет машиночитаемые и машиноисполняемые инструкции, структуры данных, файлы, программные модули и другие данные с помощью модулированного сигнала данных, такого как сигнал несущей или другой механизм передачи. Термин "модулированный сигнал данных" типично означает сигнал, который имеет одну или более из своих характеристик, установленных или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве примера, но не ограничения, среда передачи данных включает в себя проводную среду, такую как проводная сеть или непосредственное проводное соединение или т.п., и беспроводную среду, такую как акустическая среда, радиочастота, инфракрасное излучение и другие механизмы беспроводной связи.
Источник 390 питания, такой как аккумулятор или блок питания, типично предоставляет энергию для частей или всего вычислительного окружения 300. В случае, когда вычислительное окружение 300 является мобильным устройством или переносным устройством или т.п., источником 390 питания может быть аккумулятор. Альтернативно, в случае, когда вычислительное окружение 300 является настольным компьютером или сервером или т.п., источником 390 питания может быть блок питания, предназначенный для подключения к источнику переменного тока ("AC"), например, через настенную розетку.
Некоторые мобильные устройства могут не включать в себя множество из компонентов, описанных в связи с фиг.3. Например, электронный значок может состоять из проволочной спирали вместе с простым процессором 307 или т.п., спираль сконфигурирована, чтобы действовать как источник 390 питания при нахождении поблизости от устройства считывателя карт или т.п. Такая спираль может также быть сконфигурирована, чтобы действовать как антенна, связанная с процессором 307 или т.п., рамочная антенна способна обеспечивать форму связи между электронным значком и устройством считывателя карт. Такая связь может не подразумевать создание сети, а может альтернативно быть универсальной или специализированной связью через телеметрию, соединения точка-точка, RF, IR, звуковое или другое средство. Электронная карта может не включать в себя дисплей 302, I/O-устройство 303 или многие из других компонентов, описанных в связи с фиг.3. Другие мобильные устройства, которые могут не включать в себя многие из компонентов, описанных в связи с фиг.3, в качестве примера, но не ограничения, включают в себя электронные браслеты, электронные метки, имплантируемые устройства и т.п.
Специалисты в области техники поймут, что запоминающие устройства, используемые, чтобы предоставить машиночитаемые и машиноисполняемые инструкции и данные, могут быть распределены по сети. Например, удаленный компьютер или запоминающее устройство могут хранить машиночитаемые и машиноисполняемые инструкции в форме приложений системы программного обеспечения и данных. Локальный компьютер может обращаться к удаленному компьютеру или запоминающему устройству через сеть и загружать часть или все приложение системы программного обеспечения или данные и может выполнять любые машиноисполняемые инструкции. Альтернативно, локальный компьютер может загружать части программного обеспечения или данные, которые необходимы, или распределенно обрабатывать программное обеспечение, выполняя некоторые из инструкций на локальном компьютере, а некоторые на удаленных компьютерах и/или устройствах.
Специалисты в области техники также поймут, что, используя традиционные технологии, все или части машиноисполняемых инструкций программного обеспечения могут исполняться специально предназначенной электронной схемой, такой как цифровой сигнальный процессор ("DSP"), программируемая логическая матрица ("PLA"), дискретные схемы и т.п. Термин "электронное устройство" может включать в себя вычислительные устройства или потребительские электронные устройства, содержащие любое программное обеспечение, микропрограммное обеспечение или т.п., или электронные устройства или схемы, не содержащие программного обеспечения, микропрограммного обеспечения или т.п.
Термин "микропрограммное обеспечение" типично ссылается на исполняемые инструкции, код, данные, приложения, программное обеспечение, программы или т.п., хранящиеся в электронном устройстве, таком как ROM или т.п. Термин "программное обеспечение", как правило, ссылается на исполняемые инструкции, код, данные, драйверы, приложения, программы или т.п., хранящиеся в или на любой форме машиночитаемых носителей. Термин "машиночитаемые носители" типично ссылается на системную память, запоминающие устройства и ассоциированные с ними носители и т.п.
Принимая во внимание многие возможные варианты осуществления, к которым принципы изобретения и упомянутые выше примеры могут быть применены, должно быть понятно, что примеры, описанные в данном документе, подразумеваются только как иллюстративные и не должны быть интерпретированы как ограничивающие рамки настоящего изобретения. Следовательно, изобретение, которое описано в данном документе, рассматривает все такие варианты осуществления, как входящие в рамки последующей формулы и любых ее эквивалентов.

Claims (20)

1. Система для пометки данных, сохраненных на твердотельном накопителе ("SSD"), как недействительных, причем система содержит
драйвер SSD, связанный с файловой системой через первый интерфейс, при этом первый интерфейс включает в себя командный интерфейс, функционирующий так, чтобы передавать информацию о недействительных данных из файловой системы драйверу SSD, и при этом информация о недействительных данных идентифицирует данные, сохраненные на SSD, которые соответствуют информации, удаляемой файловой системой; и
второй интерфейс, функционирующий так, чтобы связывать драйвер SSD с SSD так, чтобы инструктировать SSD пометить данные, сохраненные на SSD, которые соответствуют информации, удаляемой файловой системой, как недействительные.
2. Система по п.1, в которой командный интерфейс осуществлен как новая команда управления вводом-выводом ("IOCTL").
3. Система по п.1, в которой командный интерфейс осуществлен как расширение к команде управления вводом-выводом ("IOCTL").
4. Система по п.1, в которой информация о недействительных данных включает в себя логическую адресацию блоков ("LBA") и длину.
5. Система по п.1, в которой пометка данных, сохраненных на SSD как недействительных, дает возможность SSD избежать ненужных операций с недействительными данными.
6. Система по п.5, в которой предоставление возможности SSD избегать ненужных операций с недействительными данными дополнительно подразумевает операции драйвера SSD.
7. Система по п.1, в которой второй интерфейс является интерфейсом усовершенствованной технологии присоединения ("АТА").
8. Система по п.1, в которой второй интерфейс является интерфейсом малых компьютерных систем ("SCSI").
9. Система по п.1, в которой информация, удаляемая файловой системой, является файлом или его частью.
10. Система по п.1, в которой действительные данные, сохраненные на SSD, которые соответствуют информации, не удаленной файловой системой, не помечаются на SSD как недействительные данные.
11. Способ пометки данных, сохраненных на твердотельном накопителе ("SSD"), как недействительных, причем способ содержит этапы, на которых:
принимают событие, указывающее удаляемую информацию;
идентифицируют данные, сохраненные на SSD, которые соответствуют удаляемой информации; и
инструктируют SSD пометить идентифицированные данные как недействительные.
12. Способ по п.11, в котором событие принимается от файловой системы.
13. Способ по п.11, в котором событие принимается через команду управления вводом-выводом ("IOCTL").
14. Способ по п.11, в котором инструктирование выполняется через интерфейс усовершенствованной технологии присоединения ("АТА").
15. Способ по п.11, в котором инструктирование выполняется через интерфейс малых компьютерных систем ("SCSI").
16. Способ по п.11, в котором идентифицированные данные, помеченные как недействительные, позволяют SSD избежать ненужных операций с недействительными данными.
17. Способ по п.11, в котором удаляемая информация является файлом.
18. Способ по п.11, в котором идентификация включает в себя логическую адресацию блоков ("LBA") и длину.
19. Машиночитаемый носитель, включающий в себя машиночитаемые инструкции, осуществляющие способ пометки данных, сохраненных на твердотельном накопителе ("SSD"), как недействительных, причем способ содержит этапы, на которых:
принимают событие, указывающее удаляемую информацию;
идентифицируют данные, сохраненные на SSD, которые соответствуют удаляемой информации; и
инструктируют SSD пометить идентифицированные данные как недействительные.
20. Машиночитаемый носитель по п.19, в котором удаляемая информация является файлом.
RU2009138348/08A 2007-04-19 2008-04-01 Технологии уничтожения при удалении для оптимизации твердотельного накопителя RU2456664C2 (ru)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US91272807P 2007-04-19 2007-04-19
US60/912,728 2007-04-19
US12/030,193 2008-02-12
US12/030,193 US9207876B2 (en) 2007-04-19 2008-02-12 Remove-on-delete technologies for solid state drive optimization

Publications (2)

Publication Number Publication Date
RU2009138348A RU2009138348A (ru) 2011-04-27
RU2456664C2 true RU2456664C2 (ru) 2012-07-20

Family

ID=39873400

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2009138348/08A RU2456664C2 (ru) 2007-04-19 2008-04-01 Технологии уничтожения при удалении для оптимизации твердотельного накопителя

Country Status (9)

Country Link
US (4) US9207876B2 (ru)
EP (1) EP2135167B1 (ru)
JP (1) JP2010525453A (ru)
KR (1) KR20100015506A (ru)
CN (2) CN106293517B (ru)
BR (1) BRPI0809287B1 (ru)
RU (1) RU2456664C2 (ru)
TW (1) TWI514134B (ru)
WO (1) WO2008130799A1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2767141C1 (ru) * 2018-07-20 2022-03-16 Зте Корпорейшн Способ и устройство для выравнивания износа и доступа к энергонезависимой памяти

Families Citing this family (248)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719501B2 (en) 2009-09-08 2014-05-06 Fusion-Io Apparatus, system, and method for caching data on a solid-state storage device
US20080140724A1 (en) 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for servicing object requests within a storage controller
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8261030B2 (en) * 2008-11-18 2012-09-04 Microsoft Corporation Using delete notifications to free related storage resources
US8255641B2 (en) * 2008-11-18 2012-08-28 Microsoft Corporation Modifying delete notifications in a storage stack
US8156300B2 (en) * 2008-11-18 2012-04-10 Microsoft Corporation Delete notifications for an entire storage volume
US20100185806A1 (en) * 2009-01-16 2010-07-22 Arvind Pruthi Caching systems and methods using a solid state disk
US20100185843A1 (en) * 2009-01-20 2010-07-22 Microsoft Corporation Hardware encrypting storage device with physically separable key storage device
MX2011010822A (es) 2009-04-21 2011-10-28 Internat Bussines Machines Corp Aparato y metodo para controlar un dispositivo de disco de estado solido (ssd).
US8402069B2 (en) 2009-05-04 2013-03-19 Microsoft Corporation Use of delete notifications by file systems and applications to release storage space
US9881039B2 (en) * 2009-05-26 2018-01-30 International Business Machines Corporation Rebalancing operation using a solid state memory device
US9330282B2 (en) * 2009-06-10 2016-05-03 Microsoft Technology Licensing, Llc Instruction cards for storage devices
US8321956B2 (en) 2009-06-17 2012-11-27 Microsoft Corporation Remote access control of storage devices
US8478799B2 (en) 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
WO2011031903A2 (en) 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US8429436B2 (en) 2009-09-09 2013-04-23 Fusion-Io, Inc. Apparatus, system, and method for power reduction in a storage device
JP2011090496A (ja) * 2009-10-22 2011-05-06 Hitachi Ltd 半導体記憶装置および制御方法
US8638010B2 (en) * 2010-02-17 2014-01-28 Integrated Device Technology, Inc. Systems, devices, and methods for providing backup power to a load
US8316176B1 (en) 2010-02-17 2012-11-20 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
WO2011143628A2 (en) 2010-05-13 2011-11-17 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US8521972B1 (en) 2010-06-30 2013-08-27 Western Digital Technologies, Inc. System and method for optimizing garbage collection in data storage
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
EP2598996B1 (en) 2010-07-28 2019-07-10 SanDisk Technologies LLC Apparatus, system, and method for conditional and atomic storage operations
US8661189B2 (en) * 2010-08-31 2014-02-25 Apple Inc. Systems and methods for trimming logical block addresses corresponding to a data structure residing in non-volatile memory
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
KR101893897B1 (ko) * 2010-10-29 2018-08-31 삼성전자주식회사 메모리 시스템 및 사용자 장치 그리고 그것의 데이터 관리 방법
TWI579692B (zh) * 2010-10-29 2017-04-21 三星電子股份有限公司 記憶體系統、資料儲存系統、使用者裝置及其資料管理方法
JP2012118739A (ja) 2010-11-30 2012-06-21 Toshiba Corp 記憶装置、及び制御方法
US8527693B2 (en) 2010-12-13 2013-09-03 Fusion IO, Inc. Apparatus, system, and method for auto-commit memory
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
GB2489405B (en) * 2011-03-22 2018-03-07 Advanced Risc Mach Ltd Encrypting and storing confidential data
JP5405513B2 (ja) 2011-03-22 2014-02-05 株式会社東芝 メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム
US9189392B1 (en) 2011-06-30 2015-11-17 Western Digital Technologies, Inc. Opportunistic defragmentation during garbage collection
US9158670B1 (en) 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8819375B1 (en) 2011-11-30 2014-08-26 Western Digital Technologies, Inc. Method for selective defragmentation in a data storage device
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US8949512B2 (en) 2012-02-17 2015-02-03 Apple Inc. Trim token journaling
JP5659178B2 (ja) 2012-03-16 2015-01-28 株式会社東芝 不揮発性記憶装置及び不揮発性メモリの制御方法
US9774676B2 (en) 2012-05-21 2017-09-26 Google Inc. Storing and moving data in a distributed storage system
US9449006B2 (en) * 2012-06-04 2016-09-20 Google Inc. Method and system for deleting obsolete files from a file system
US8788778B1 (en) 2012-06-04 2014-07-22 Western Digital Technologies, Inc. Garbage collection based on the inactivity level of stored data
US9230000B1 (en) 2012-06-04 2016-01-05 Google Inc. Pipelining Paxos state machines
US9298576B2 (en) 2012-06-04 2016-03-29 Google Inc. Collecting processor usage statistics
WO2013184712A2 (en) 2012-06-04 2013-12-12 Google Inc. Systems and methods of increasing database access concurrency using granular timestamps
US9659038B2 (en) 2012-06-04 2017-05-23 Google Inc. Efficient snapshot read of a database in a distributed storage system
US9195611B2 (en) 2012-06-04 2015-11-24 Google Inc. Efficiently updating and deleting data in a data storage system
JP5586718B2 (ja) 2012-06-19 2014-09-10 株式会社東芝 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10346095B2 (en) 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US8984267B2 (en) 2012-09-30 2015-03-17 Apple Inc. Pinning boot data for faster boot
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US9032264B2 (en) 2013-03-21 2015-05-12 Kabushiki Kaisha Toshiba Test method for nonvolatile memory
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US9304685B2 (en) 2013-09-10 2016-04-05 Kabushiki Kaisha Toshiba Storage array system and non-transitory recording medium storing control program
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
SG11201608791UA (en) 2014-04-23 2016-11-29 Ensconce Data Technology Llc Method for completing a secure erase operation
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9747229B1 (en) * 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
CN104731839B (zh) * 2014-10-08 2018-04-27 记忆科技(深圳)有限公司 一种ssd的前端数据管理加速的方法及一种ssd设备
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US9880780B2 (en) * 2015-11-30 2018-01-30 Samsung Electronics Co., Ltd. Enhanced multi-stream operations
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10235079B2 (en) 2016-02-03 2019-03-19 Toshiba Memory Corporation Cooperative physical defragmentation by a file system and a storage device
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10545861B2 (en) 2016-10-04 2020-01-28 Pure Storage, Inc. Distributed integrated high-speed solid-state non-volatile random-access memory
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US12039165B2 (en) 2016-10-04 2024-07-16 Pure Storage, Inc. Utilizing allocation shares to improve parallelism in a zoned drive storage system
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US10452532B2 (en) * 2017-01-12 2019-10-22 Micron Technology, Inc. Directed sanitization of memory
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
CN114089915B (zh) * 2017-03-27 2022-12-20 珠海极海半导体有限公司 基于flash存储器的文件追加写操作方法及装置
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
KR102271502B1 (ko) 2017-10-25 2021-07-01 삼성전자주식회사 메모리 장치 및 그 제어 방법
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US12032848B2 (en) 2021-06-21 2024-07-09 Pure Storage, Inc. Intelligent block allocation in a heterogeneous storage system
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US12067274B2 (en) 2018-09-06 2024-08-20 Pure Storage, Inc. Writing segments and erase blocks based on ordering
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
FR3077892B1 (fr) * 2018-02-15 2023-12-22 Idemia Système et procédé d'enregistrement d'une transaction associée à une mémoire non volatile orientée page
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US12079494B2 (en) 2018-04-27 2024-09-03 Pure Storage, Inc. Optimizing storage system upgrades to preserve resources
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
CN110780812B (zh) * 2019-09-27 2021-08-24 苏州浪潮智能科技有限公司 一种硬盘数据置无效方法与装置
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
EP4085335A1 (en) 2019-12-31 2022-11-09 Micron Technology, Inc. Data removal marking in memory device
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US12056365B2 (en) 2020-04-24 2024-08-06 Pure Storage, Inc. Resiliency for a storage system
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US12067282B2 (en) 2020-12-31 2024-08-20 Pure Storage, Inc. Write path selection
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US12061814B2 (en) 2021-01-25 2024-08-13 Pure Storage, Inc. Using data similarity to select segments for garbage collection
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US12099742B2 (en) 2021-03-15 2024-09-24 Pure Storage, Inc. Utilizing programming page size granularity to optimize data segment storage in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553261A (en) * 1994-04-01 1996-09-03 Intel Corporation Method of performing clean-up of a solid state disk while executing a read command
US20020116569A1 (en) * 2000-12-27 2002-08-22 Kim Jeong-Ki Ranked cleaning policy and error recovery method for file systems using flash memory
RU2280273C2 (ru) * 2003-07-16 2006-07-20 Открытое акционерное общество "Научно-производственное объединение "Прибор" Способ структурирования и записи цифровой информации и устройство для его осуществления
US20070043900A1 (en) * 2005-08-20 2007-02-22 Samsung Electronics Co., Ltd. Flash memory management method and flash memory system

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193184A (en) * 1990-06-18 1993-03-09 Storage Technology Corporation Deleted data file space release system for a dynamically mapped virtual data storage subsystem
US5740395A (en) * 1992-10-30 1998-04-14 Intel Corporation Method and apparatus for cleaning up a solid state memory disk storing floating sector data
US5337275A (en) * 1992-10-30 1994-08-09 Intel Corporation Method for releasing space in flash EEPROM memory array to allow the storage of compressed data
US5459850A (en) * 1993-02-19 1995-10-17 Conner Peripherals, Inc. Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5682497A (en) * 1993-09-28 1997-10-28 Intel Corporation Managing file structures for a flash memory file system in a computer
US5535399A (en) * 1993-09-30 1996-07-09 Quantum Corporation Solid state disk drive unit having on-board backup non-volatile memory
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
US5867641A (en) 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
US5860124A (en) * 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
KR100330164B1 (ko) * 1999-04-27 2002-03-28 윤종용 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법
US7660941B2 (en) * 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
CN1162782C (zh) * 2001-08-03 2004-08-18 华为技术有限公司 快速存储器文件的处理方法
JP4149167B2 (ja) 2002-01-11 2008-09-10 パイオニア株式会社 情報記録装置及び方法、情報再生装置及び方法、情報記録用プログラム及び情報再生用プログラム、記録媒体並びに情報記録媒体
US7093101B2 (en) * 2002-11-21 2006-08-15 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
US7526598B2 (en) * 2003-03-03 2009-04-28 Sandisk Il, Ltd. Efficient flash memory device driver
WO2005089339A2 (en) 2004-03-12 2005-09-29 Netcell Corporation Disk controller methods and apparatus with improved striping redundancy operations and interfaces
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
KR100684887B1 (ko) 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
US7246195B2 (en) * 2004-12-30 2007-07-17 Intel Corporation Data storage management for flash memory devices
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US9104315B2 (en) * 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US7724693B2 (en) * 2005-07-28 2010-05-25 Qnx Software Systems (Wavemakers), Inc. Network dependent signal processing
US8307148B2 (en) * 2006-06-23 2012-11-06 Microsoft Corporation Flash management techniques
KR100771519B1 (ko) * 2006-10-23 2007-10-30 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
US8572310B2 (en) * 2007-11-06 2013-10-29 Samsung Electronics Co., Ltd. Invalidating storage area of non-volatile storage medium based on metadata

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553261A (en) * 1994-04-01 1996-09-03 Intel Corporation Method of performing clean-up of a solid state disk while executing a read command
US20020116569A1 (en) * 2000-12-27 2002-08-22 Kim Jeong-Ki Ranked cleaning policy and error recovery method for file systems using flash memory
RU2280273C2 (ru) * 2003-07-16 2006-07-20 Открытое акционерное общество "Научно-производственное объединение "Прибор" Способ структурирования и записи цифровой информации и устройство для его осуществления
US20070043900A1 (en) * 2005-08-20 2007-02-22 Samsung Electronics Co., Ltd. Flash memory management method and flash memory system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2767141C1 (ru) * 2018-07-20 2022-03-16 Зте Корпорейшн Способ и устройство для выравнивания износа и доступа к энергонезависимой памяти

Also Published As

Publication number Publication date
BRPI0809287A2 (pt) 2014-10-14
US20080263305A1 (en) 2008-10-23
US20190146673A1 (en) 2019-05-16
TWI514134B (zh) 2015-12-21
WO2008130799A1 (en) 2008-10-30
TW200900925A (en) 2009-01-01
RU2009138348A (ru) 2011-04-27
BRPI0809287B1 (pt) 2019-11-05
EP2135167B1 (en) 2018-08-22
US20170336977A1 (en) 2017-11-23
EP2135167A1 (en) 2009-12-23
EP2135167A4 (en) 2012-06-20
US9207876B2 (en) 2015-12-08
KR20100015506A (ko) 2010-02-12
US9696907B2 (en) 2017-07-04
CN106293517A (zh) 2017-01-04
JP2010525453A (ja) 2010-07-22
US10156988B2 (en) 2018-12-18
US10976928B2 (en) 2021-04-13
CN101663652A (zh) 2010-03-03
CN106293517B (zh) 2019-09-20
US20160162194A1 (en) 2016-06-09

Similar Documents

Publication Publication Date Title
RU2456664C2 (ru) Технологии уничтожения при удалении для оптимизации твердотельного накопителя
US10564859B2 (en) Composite solid state drive identification and optimization technologies
US9928167B2 (en) Information processing system and nonvolatile storage unit
JP6082389B2 (ja) ホストから見たデバイスファームウェア更新の影響の管理
KR101798036B1 (ko) I/o 디바이스 및 컴퓨팅 호스팅 상호동작
US8489803B2 (en) Efficient use of flash memory in flash drives
TW201145022A (en) Virtualization of storage devices
US20060069848A1 (en) Flash emulation using hard disk
US8751760B2 (en) Systems and methods for power state transitioning in an information handling system
US9483195B2 (en) Response reading method and data transmission system
TWI828602B (zh) 用來在預定通訊架構中藉助碎化資訊偵測進行記憶裝置的資料碎化降低控制的方法及設備、以及相關電腦可讀媒體
CN114442911A (zh) 用于固态驱动器的异步输入/输出扫描和聚合的系统和方法
US20110125972A1 (en) Information recording device and information recording method

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150306