RU2456664C2 - Технологии уничтожения при удалении для оптимизации твердотельного накопителя - Google Patents
Технологии уничтожения при удалении для оптимизации твердотельного накопителя Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity 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, которые соответствуют информации, удаляемой файловой системой, как недействительные.
драйвер 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 пометить идентифицированные данные как недействительные.
принимают событие, указывающее удаляемую информацию;
идентифицируют данные, сохраненные на SSD, которые соответствуют удаляемой информации; и
инструктируют SSD пометить идентифицированные данные как недействительные.
12. Способ по п.11, в котором событие принимается от файловой системы.
13. Способ по п.11, в котором событие принимается через команду управления вводом-выводом ("IOCTL").
14. Способ по п.11, в котором инструктирование выполняется через интерфейс усовершенствованной технологии присоединения ("АТА").
15. Способ по п.11, в котором инструктирование выполняется через интерфейс малых компьютерных систем ("SCSI").
16. Способ по п.11, в котором идентифицированные данные, помеченные как недействительные, позволяют SSD избежать ненужных операций с недействительными данными.
17. Способ по п.11, в котором удаляемая информация является файлом.
18. Способ по п.11, в котором идентификация включает в себя логическую адресацию блоков ("LBA") и длину.
19. Машиночитаемый носитель, включающий в себя машиночитаемые инструкции, осуществляющие способ пометки данных, сохраненных на твердотельном накопителе ("SSD"), как недействительных, причем способ содержит этапы, на которых:
принимают событие, указывающее удаляемую информацию;
идентифицируют данные, сохраненные на SSD, которые соответствуют удаляемой информации; и
инструктируют SSD пометить идентифицированные данные как недействительные.
принимают событие, указывающее удаляемую информацию;
идентифицируют данные, сохраненные на SSD, которые соответствуют удаляемой информации; и
инструктируют SSD пометить идентифицированные данные как недействительные.
20. Машиночитаемый носитель по п.19, в котором удаляемая информация является файлом.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2767141C1 (ru) * | 2018-07-20 | 2022-03-16 | Зте Корпорейшн | Способ и устройство для выравнивания износа и доступа к энергонезависимой памяти |
Families Citing this family (248)
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)
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)
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 |
-
2008
- 2008-02-12 US US12/030,193 patent/US9207876B2/en active Active
- 2008-04-01 CN CN201610605653.1A patent/CN106293517B/zh active Active
- 2008-04-01 CN CN200880012571A patent/CN101663652A/zh active Pending
- 2008-04-01 JP JP2010504149A patent/JP2010525453A/ja active Pending
- 2008-04-01 WO PCT/US2008/059048 patent/WO2008130799A1/en active Application Filing
- 2008-04-01 RU RU2009138348/08A patent/RU2456664C2/ru active
- 2008-04-01 EP EP08744884.1A patent/EP2135167B1/en active Active
- 2008-04-01 KR KR1020097021257A patent/KR20100015506A/ko not_active Application Discontinuation
- 2008-04-01 BR BRPI0809287-7A patent/BRPI0809287B1/pt active IP Right Grant
- 2008-04-15 TW TW097113635A patent/TWI514134B/zh active
-
2015
- 2015-12-07 US US14/961,809 patent/US9696907B2/en active Active
-
2017
- 2017-06-02 US US15/612,128 patent/US10156988B2/en active Active
-
2018
- 2018-11-12 US US16/186,652 patent/US10976928B2/en active Active
Patent Citations (4)
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)
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 |