RU2479013C2 - Способ оптимизации твердотельного накопителя и оптимизатор - Google Patents

Способ оптимизации твердотельного накопителя и оптимизатор Download PDF

Info

Publication number
RU2479013C2
RU2479013C2 RU2010112956/08A RU2010112956A RU2479013C2 RU 2479013 C2 RU2479013 C2 RU 2479013C2 RU 2010112956/08 A RU2010112956/08 A RU 2010112956/08A RU 2010112956 A RU2010112956 A RU 2010112956A RU 2479013 C2 RU2479013 C2 RU 2479013C2
Authority
RU
Russia
Prior art keywords
ssd
free space
threshold
fragment
fragment size
Prior art date
Application number
RU2010112956/08A
Other languages
English (en)
Other versions
RU2010112956A (ru
Inventor
Бэсил ТОМАС
Крейг ДЖЕНСЕН
Эндрю СТАФФЕР
Сантош РАМАНКУТТИ
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 RU2010112956A publication Critical patent/RU2010112956A/ru
Application granted granted Critical
Publication of RU2479013C2 publication Critical patent/RU2479013C2/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • 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
    • 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/061Improving I/O performance
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в оптимизации твердотельного накопителя (SSD) путем обеспечения высокой скорости записи за счет сокращения числа операций записи. Способ оптимизации твердотельного накопителя, содержащий следующие стадии: получение порогового размера фрагмента, в котором пороговый размер фрагмента вычисляется на основании, по меньшей мере, одной или нескольких скоростей последовательной записи твердотельного накопителя или скорости ввода-вывода (I/O) в/из SSD в секунду; определение, является ли фрагмент свободного пространства на диске SSD меньше порогового размера фрагмента; если фрагмент свободного пространства на диске SSD меньше порогового размера фрагмента, удаление фрагмента свободного пространства; и если фрагмент свободного пространства на диске SSD не меньше порогового размера фрагмента, фрагмент свободного пространства используется для хранения данных. 3 н. и 14 з.п. ф-лы, 3 ил.

Description

ПРИТЯЗАНИЕ НА ПРИОРИТЕТ
По настоящей заявке истребован приоритет по предварительной патентной заявке США номер 60/978,086, зарегистрированной 5 октября 2007 года, и по предварительной патентной заявке США номер 12/244,771, зарегистрированной 3 октября 2008.
ВКЛЮЧЕНИЕ ССЫЛОК
Настоящая заявка объединяется ссылкой на патентную заявку США номер 11/546,072, поданную 10 октября 2006 года, патентную заявку США номер 11/546,514, поданную 10 октября 2006 года, и патентную заявку США номер 11/471,466, поданную 19 июня 2006 года.
КРАТКОЕ СОДЕРЖАНИЕ ИЗОБРЕТЕНИЯ
Настоящее изобретение в целом относится к твердотельным накопителям. Более конкретно, изобретение относится к оптимизации твердотельных накопителей.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
Подходы, описанные в этом разделе, являются подходами, которых следовало добиваться, но они не обязательно должны быть достигнуты, как ранее задуманные или преследовались. Следовательно, если не обозначено иначе, нельзя считать, что любой из подходов, описанных в этом разделе, готовился как предшествующая технология просто на основании их включения в этот раздел.
Твердотельный накопитель (SSD), который также упоминается здесь как твердотельный диск, является запоминающим устройством, которое хранит данные, используя энергозависимую или энергонезависимую твердотельную память. Твердотельная память состоит из электронных компонентов, которые состоят из полупроводников. Твердотельные накопители могут содержать различные типы элементов памяти, включая, без ограничения, статическую оперативную память (SRAM), динамическую оперативную память (DRAM), запоминающее устройство с произвольной выборкой PRAM, флэш-память (например, флэш-память НЕ-ИЛИ и флэш-память И-НЕ), или Фазовращательную память (РСМ).
Поскольку накопители SSD не имеют никаких движущихся частей, они значительно снижают риск механических повреждений. Меньшее количество механических отказов приводит к повышению надежности системы. Кроме того, благодаря отсутствию движущихся частей накопители SSD обеспечивают меньшее время чтения и записи по сравнению со стандартными жесткими дисками со средней скоростью вращения. Соответственно, накопители SSD обеспечивают более высокую скорость считывания и записи последовательных и случайных данных.
Хотя накопитель SSD не имеет никаких подвижных частей, тем не менее возникают проблемы снижения быстродействия в результате определенных ограничивающих факторов и возможной фрагментации свободного пространства. Например, одним из ограничений по быстродействию может быть ограниченное число операций записи, которые SSD может выполнить в любом данном интервале времени. Когда SSD записывает данные во множество небольших фрагментов свободного пространства, файл должен быть фрагментирован в ряд различных участков памяти на SSD. При записи каждого фрагмента в свободное пространство могут потребоваться операции стирания и операции записи, и число операций записи, которые может выполнить накопитель SSD, может быть ограничено, причем множество небольших фрагментов свободного пространства может привести к невозможности максимального использования скорости последовательной записи, что приводит к ограничению числа операций записи на диск SSD.
При нормальном использовании компьютера современные операционные системы, такие как Windows (Windows - торговый знак изготовителя - Корпорации Майкрософт, Сиэтл, Вашингтона), создают множество фрагментов свободного пространства. Например, просмотр Интернета потенциально может создать множество нежелательных фрагментов свободного пространства. Web-браузер при его использовании создает много временных файлов. Большинство временных файлов являются небольшими по объему, имеют краткосрочное время существования и часто удаляются, например, во время очистки буферной памяти браузера и т.д. Однако все временные файлы не удаляются одновременно или в порядке, в котором они были созданы. Это явление ускоряет создание фрагментов свободного пространства.
Кроме того, когда вновь созданный файл хранится на диске, файловые системы вообще начинают писать вновь созданный файл либо (а) в последний освобожденный фрагмент свободного пространства, либо (b) в первоначально идентифицированный фрагмент свободного пространства, не рассматривая размер фрагмента свободного пространства. Если записываемый файл является большим, а идентифицированные фрагменты свободного пространства являются малыми, файл разбивается на множество фрагментов, соответствующих идентифицированным фрагментам свободного пространства, и множество операций записи обеспечивают хранение файла на диске. В дополнение к операциям записи, требуемым для хранения фактического файла, требуется множество операций записи для обновления структуры файловой системы, когда файл хранится во множестве фрагментов.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Настоящее изобретение описывается на не ограничивающем примере его реализации со ссылками на приложенные чертежи, в которых цифровые позиции обозначают одинаковые элементы и в которых:
Фигура 1 - блок-схема, иллюстрирующая твердотельный накопитель и оптимизатор твердотельного накопителя в соответствии с примером воплощения изобретения.
Фигура 2 - технологическая схема, иллюстрирующая пример воплощения для оптимизации твердотельного накопителя.
Фигура 3 - блок-схема, иллюстрирующая компьютерную систему, которая может использоваться при осуществлении примера воплощения настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
В последующем описании приведены многочисленные конкретные детали, чтобы обеспечить полное понимание настоящего изобретения. Однако специалистам понятно, что настоящее изобретение может быть осуществлено без этих конкретных деталей. В других примерах известные структуры и устройства показаны в виде блок-схем, чтобы избежать излишнего затенения сущности изобретения.
Несколько признаков описаны таким образом, что каждый из них может использоваться независимо друг от друга или с любой комбинацией других признаков. Однако любой индивидуальный признак не может быть отнесен ни к одной из проблем, обсужденных выше, или может быть отнесен только к одной из этих проблем. Некоторые из обсужденных выше проблем не могут быть полностью отнесены ни одному из описанных здесь признаков. Хотя предусмотрены заголовки, информация, связанная с конкретным заголовком и не найденная в разделе, имеющем этот заголовок, может быть найдена в другом месте описания.
ОБЗОР
Предлагается способ для оптимизации твердотельного накопителя (SSD). Запись файла на диск SSD может потребовать множества операций стирания и записи, если записанные фрагменты свободного пространства являются слишком малыми для всего файла. Например, если каждый фрагмент свободного пространства на SSD, в который пишется файл, намного меньше размера файла, то файл может быть разбит на множество фрагментов и операция записи может требоваться для каждого фрагмента свободного пространства, пока весь файл не будет записан на диск SSD. Соответственно, настоящее изобретение оптимизирует SSD, отделяя малые фрагменты свободного пространства, заполняя фрагменты свободного пространства данными или делая фрагменты свободного пространства большими с тем, чтобы это не влияло на скорость записи. Это принуждает операционную систему записывать файлы последовательно или, по меньшей мере, в меньшем количестве фрагментов свободного пространства, что обеспечивает высокую скорость записи.
В соответствии с одним примером воплощения пороговый размер фрагмента используется как основа для решения, удалить ли фрагменты свободного пространства или сохранить фрагменты свободного пространства в SSD для хранения данных. Размер фрагментов свободного пространства сравнивается с пороговым размером фрагмента. Если фрагменты свободного пространства меньше порогового размера фрагмента, фрагменты свободного пространства удаляются с тем, чтобы диск SSD не использовал эти фрагменты свободного пространства для записи файла. Если фрагменты свободного пространства, по меньшей мере, равны пороговому размеру фрагмента, фрагменты свободного пространства сохраняются для хранения данных на диске SSD. Удаление фрагментов свободного пространства, имеющих размер меньше пороговой величины, позволяет записывать файл в фрагменты с большим свободным пространством и, соответственно, требует меньшего числа фрагментов свободного пространства для записи файла и меньшего числа операций записи. Сокращая число операций записи за промежуток времени, меньший или равный числу операций записи, которые могут фактически быть выполнены диском SSD, улучшает его рабочие характеристики. Улучшение рабочих характеристик SSD не ограничивается числом операций записи, которые могут быть выполнены, начиная с числа операций записи, необходимых для оптимизированного диска SSD, меньше числа операций записи, которые могут быть выполнены. В примере воплощения пороговый размер фрагмента определяется как основанный, по меньшей мере, на последовательной скорости записи в SSD и на числе операций ввода-вывода (I/O), осуществленных за установленный промежуток времени на диск SSD. Например, пороговый размер фрагмента может быть определен, по меньшей мере, частично, разделяя скорость последовательной записи на скорость ввода-вывода в/из SSD в секунду.
В примере воплощения могут быть проверены несколько различных пороговых размеров фрагмента, используя при записи файлов пороговый размер фрагмента, который соответствует оптимальным рабочим характеристикам. Оптимизация порогового размера фрагмента может выполняться периодически либо на основании предопределенного условия, например при низком уровне скорости SSD, либо на предопределенном числе фрагментов свободного пространства.
Хотя конкретные компоненты описаны здесь как стадии выполнения способа, в других примерах воплощения механизмы, действующие как части указанных компонентов, могут выполнить все стадии способа. Далее, хотя изобретение обсуждается по отношению к компонентам единственной системы, изобретение может быть осуществлено с компонентами, расположенными во множестве систем. Кроме того, хотя изобретение обсуждается по отношению к твердотельному накопителю (SSD), примеры воплощения изобретения могут быть применимыми к любому диску для хранения данных (например, оно может использоваться в дисководе с вращающимся диском).
Примеры воплощения изобретения также включают любую систему, которая содержит средства для выполнения стадий описанного здесь способа. Примеры воплощения изобретения также включают машинно-считываемую среду с командами, которые затем выполняются компьютером, таким образом, осуществляя стадии описываемого здесь способа.
УДАЛЕНИЕ ФРАГМЕНТОВ СВОБОДНОГО ПРОСТРАНСТВА
Фрагменты свободного пространства на уровне файловой системы являются блоками памяти или участками хранения, которые не обязательно являются хранилищем данных и доступны для распределения. Фрагменты свободного пространства могут быть созданы, когда объект, хранившийся в памяти, удален, например при удалении ссылки из пространства памяти. Поскольку объекты не могут быть удалены в том же самом порядке, в каком они были созданы, фрагменты свободного пространства, соответствующие удаленным объектам, создаются между блоками памяти, где хранятся данные. Запись в каждый фрагмент свободного пространства может потребовать операции стирания и последующей операции записи. Соответственно, если фрагменты свободного пространства являются слишком малыми, чтобы сохранить файл полностью, файл должен быть фрагментирован и записан во многие различные фрагменты свободного пространства. Чем меньше фрагменты свободного пространства, тем более высокая фрагментация необходима для записи файла. Поскольку число операций записи, которые диск может выполнить за определенный промежуток времени, ограничено, множество малых фрагментов свободного пространства могут потребовать высокого уровня фрагментации файла и предотвратить использование максимальной скорости записи диска. Соответственно, в примере воплощения изобретения фрагменты свободного пространства, которые меньше указанного порогового размера фрагмента, удаляются. Удаление этих фрагментов свободного пространства уменьшает количество фрагментов свободного пространства, которые записаны в файловой системе.
Удаление фрагмента свободного пространства может включать заполнение фрагмента свободного пространства, по меньшей мере, частью другого файла. Например, для заполнения фрагмента свободного пространства могут использоваться файлы к концу диска, редко используемые файлы или временные файлы наполнителя. Заполнение фрагмента свободного пространства при сохранении, по меньшей мере, части другого файла удаляет фрагменты свободного пространства, которые могут потенциально влиять на рабочие характеристики SSD. Удаление фрагмента свободного пространства также может включить объединение фрагмента свободного пространства с одним или несколькими смежными фрагментами свободного пространства так, чтобы объединенный фрагмент свободного пространства, по меньшей мере, был бы столь же большим, как и фрагмент порогового размера. В примере воплощения фрагмент свободного пространства удаляется, если ресурс, требуемый для удаления фрагмента свободного пространства, отвечает критерию бездействия. Например, если использование ресурса ниже предопределенного процента, критерий бездействия удовлетворен. В другом примере критерии бездействия могут включить частоту использования ресурса, где предопределенная низкая частота использования соответствует критериям бездействия. Более подробное описание критериев бездействия и ресурсов описано в патентной заявке США номер 11/546,514, поданной 10 октября 2006 года, которая включена здесь в качестве ссылки.
АРХИТЕКТУРА СИСТЕМЫ
Хотя здесь описана определенная архитектура вычислительной системы, другие примеры воплощения изобретения применимы к любой архитектуре, которая может использоваться для оптимизации твердотельного накопителя (SSD) на основе порогового размера фрагмента.
На фигуре 1 показаны накопитель SSD (100) и оптимизатор SSD (125) в соответствии с одним или несколькими примерами воплощения изобретения. Как показано на фигуре 1, SSD (100) включает интерфейс (105), контроллер памяти (110) и твердотельную память (115).
ИНТЕРФЕЙС
Интерфейс (105), как правило, представляет собой любое соединение, которое может использоваться для обмена информацией (например, сохраненными данными или восстановленными данными) с SSD (100). Например, интерфейс (105) может быть включен между SSD (100) и системной платой для передачи данных, Интерфейс (105) может нести слова информации параллельно или поразрядно. Примеры интерфейса (105) включают, без ограничения, интерфейс АТА (например, последовательный интерфейс (SATA) и параллельный интерфейс (РАТА)) или интерфейс со встроенным контроллером (IDE) или системный интерфейс персональных компьютеров (SCSI). Интерфейс (105) позволяет внешнему узлу прямо или косвенно обращаться к твердотельной памяти (115) по командам контроллера памяти (110).
КОНТРОЛЛЕР ПАМЯТИ
В одном или нескольких примерах воплощения твердотельная память (115) в целом представляет собой компонент хранения данных, который включает логику для хранения цифровых данных. Твердотельная память (115) включает полупроводниковые устройства, которые содержат логику и аппаратные средства, чтобы сохранять цифровые данные. Например, твердотельная память (115) может сохранять биты в фазосдвигающей оперативной памяти, одноуровневых ячейках (SLC) или многоуровневых ячейках (MLC). Описанный выше пороговый размер фрагмента (120) может быть вычислен по другой методике на основании того, сохраняются ли биты в ячейках SLC или MLC в твердотельной памяти (115). Кроме того, пороговый размер фрагмента (120) также может быть вычислен на основе числа уровней в многоуровневых ячейках. Твердотельная память (115) может быть осуществлена как статическая оперативная память (SRAM), динамическая оперативная память (DRAM), параметрическая оперативная память (PRAM), флэш-память (например, флеш-пямять НЕ-И, флеш-пямять И-НЕ), фазовращательная память (РСМ) или другой тип подходящей памяти.
ОПТИМИЗАТОР ТВЕРДОТЕЛЬНОГО НАКОПИТЕЛЯ
В одном или нескольких примерах воплощения оптимизатор твердотельного накопителя (125) в целом представляет собой программные и/или аппаратные средства, используемые для оптимизации SSD (100), чтобы улучшить рабочие характеристики диска SSD. Например, оптимизатор SSD (125) может соответствовать приложению, выполняемому в устройстве, подключенном к SSD (100). В компьютерной системе оптимизатор твердотельного накопителя (125) может быть приложением, работающим одновременно с другими приложениями, которые хранят данные на диске SSD (100). В другом примере оптимизатор SSD (125) может соответствовать устройству с логикой, внедренной, чтобы оптимизировать SSD (100). Хотя на фигуре 1 оптимизатор SSD (125) показан соединенным с SSD (100), оптимизатор SSD (125) может также соответствовать программному обеспечению и/или компоненту непосредственно на диске SSD (100), в соответствии с одним примером воплощения изобретения.
Оптимизатор SSD (125) включает логику для оптимизации SSD (100) путем удаления фрагментов свободного пространства, которые меньше порогового размера фрагмента (120), таким образом вынуждая операционную систему записывать данные или файлы последовательно, как описано выше. Оптимизатор SSD (125) может быть активизирован пользователем, может активизироваться периодически или может быть активизирован на основании предопределенного условия (условий) (например, на предопределенном уровне фрагментации SSD (100) или на уровне низких рабочих характеристик SSD (100)). Оптимизатор SSD (125) может также быть активизирован при низком использовании ресурса. Например, если ресурс (например, процессор) используемый оптимизатором SSD (125) при оптимизации SSD (100), имеет низкий текущий уровень использования, оптимизатор SSD (125) может быть активизирован. В одном примере воплощения могут потребоваться несколько условий одновременно для активизации оптимизатора SSD (125) (например, низкий уровень рабочих характеристик SSD (100) и низкий текущий уровень использования ресурса).
В одном примере воплощения оптимизатор SSD (125) может включать логику, чтобы планировать любые задания, выполняемые как компьютерные микрозадачи. Компьютерные микрозадачи описаны в патентной заявке США номер 11/471,466, поданной 19 июня 2006 года, и патентной заявке США номер 11/546,072, поданной 10 октября 2006 года, которые включены здесь в качестве ссылки. Соответственно, задачи, поставленные оптимизатору SSD (125) для оптимизации диска SSD (100), могут выполняться в течение длительного времени как различные компьютерные микрозадачи.
ПОРОГОВЫЙ РАЗМЕР ФРАГМЕНТА
В одном или нескольких примерах воплощения пороговый размер фрагмента (120), показанный как сохраненный на оптимизаторе SSD (125), соответствует конкретному размеру фрагмента свободного пространства, используемому оптимизатором SSD (125) при выполнении вышеописанных задач. Иными словами, фрагменты свободного пространства, которые меньше порогового размера фрагмента (120), удаляются оптимизатором SSD (125), и фрагменты свободного пространства, которые больше чем или равны пороговому размеру фрагмента (120), выделяются для хранения данных оптимизатором SSD (125). Использование порогового размера фрагмента (120) при удалении фрагментов свободного пространства меньше порогового размера фрагмента (120) может вынудить файловую систему записать файл последовательно в единственный фрагмент свободного пространства или во множество фрагментов свободного пространства в пределах памяти записи 10 в секунду (IOPS) диска SSD, который не влияет на рабочие характеристики SSD, основанные на записи 10 в секунду SSD.
Хотя на чертеже показано сохранение на оптимизаторе SSD (125), пороговый размер фрагмента (120) может поддерживаться любым компонентом (например, оптимизатором SSD (125), SSD (100) или другим подходящим устройством). Пороговый размер фрагмента может поддерживаться приложением (например, оптимизатором SSD) как переменная или может быть передан в устройство по проводам. Например, пороговый размер фрагмента может быть аппаратным решением на диске SSD (100), оптимизатором SSD (125), если оптимизатор SSD осуществлен как устройство, системой, реализующей оптимизатор SSD (125), если оптимизатор SSD осуществлен как приложение, выполняемое системой или другим подходящим устройством. Пороговый размер фрагмента (120) также может быть получен из области конфигурации, которая может управляться пользователем (120).
В одном примере воплощения пороговый размер фрагмента (120), вычисляется оптимизатором SSD (125), контроллером памяти (110), пользователем или другим подходящим объектом. В другом примере воплощения пороговый размер фрагмента (120) может быть вычислен на основе скорости последовательной записи или числа операций записи, которые SSD (100) может выполнить за определенный промежуток времени. Одна из стадий вычисления порогового размера фрагмента может включать деление последовательной скорости записи на число операций записи, которые SSD может выполнить в установленный период времени. Например, если скорость последовательной записи равна 40 МВ/с и число операций записи, которые могут быть выполнены SSD (100), составляет 10/с, то пороговый размер вычисленного фрагмента, полученный путем деления 40 на 10, равен 4 МБ. Соответственно, пороговый размер фрагмента может быть установлен как 4 МБ. Кроме того, вычисление порогового размера фрагмента может также включить дополнительные вычисления (например, умножение на константу 3 или 4, чтобы получить 12 МБ или 16 МБ) с учетом разницы между фактическими рабочими характеристиками и теоретическими рабочими характеристиками или скоростью.
Пороговый размер фрагмента (120) для SSD может быть определен динамически или может быть статическим значением, используемым оптимизатором SSD (125). Например, аппаратный пороговый размер фрагмента (120) может постоянно использоваться для оптимизации диска SSD (100). Альтернативно, каждый раз, когда диск SSD (100) оптимизируется периодически, пороговый размер фрагмента (120) может быть вычислен или получен повторно.
В одном примере воплощения могут использоваться различные пороговые размеры фрагмента, чтобы определить оптимальные рабочие характеристики. Например, изменение значений порогового размера фрагмента может использоваться для оптимизации SSD (100), удаляя фрагменты свободного пространства на диске SSD (100). После того как эксплуатационные качества могут быть определены за время, последующее за оптимизацией SSD (100). Пороговый размер фрагмента, который приводит к улучшению рабочих характеристик, является результатом оптимизации и может быть установлен как пороговый размер фрагмента (120).
В одном примере воплощения, когда установлен пороговый размер фрагмента (120), повторное испытание порогового размера фрагментов (120) может выполняться периодически. Во время повторного испытания значения выше и ниже порогового размера фрагмента (120) могут временно использоваться для оптимизации диска SSD (100). После использования более высокого и/или более низкого порогового размера фрагмента, полученные рабочие характеристики диска SSD (100) могут быть оценены, чтобы определить, должен ли пороговый размер фрагмента (120) быть увеличен, уменьшен или сохранен без изменения.
ОПТИМИЗАЦИЯ ТВЕРДОТЕЛЬНОГО НАКОПИТЕЛЯ
На фигуре 2 представлена блок-схема оптимизации твердотельного накопителя (SSD), используя пороговый размер фрагмента, в соответствии с одним или несколькими примерами воплощения изобретения. Описанные ниже стадии могут быть опущены, повторены и/или выполнены в различном порядке. Соответственно, определенное расположение стадий, показанных на фигуре 2, не должно рассматриваться как ограничение объема изобретения.
В одном примере воплощения, описанном ниже, перед выполнением одной или нескольких стадий оптимизации твердотельного накопителя может быть проведена проверка доступности ресурса. Проверка доступности ресурса может быть выполнена, чтобы гарантировать, что ресурсы для выполнения этой стадии доступны и соответствуют критериям бездействия, как описано выше. Кроме того, одна или несколько стадий, описанных ниже, могут быть спланированы как описанные выше компьютерные микрозадачи.
Сначала принимается решение, оптимизировать ли SSD (стадия 202). Решение оптимизации SSD может быть основано на одном или нескольких условиях. Например, решение оптимизировать SSD может быть основано на текущих низких рабочих характеристиках SSD, наличии предопределенного уровня фрагментации (например, имеется много фрагментов свободного пространства, число фрагментов свободного пространства меньше порогового размера фрагмента и т.д.), пригодности ресурса, учитывая планирование по времени (например, периодическая оптимизация), уровень фрагментации файла, или на основании любых других подходящих критериев. Оптимизатор SSD также может дефрагментировать слишком фрагментированные файлы, что делает доступ к файлу более эффективным и надежным.
Затем SSD осуществляет идентификацию фрагментов свободного пространства как кандидатов на удаление (стадия 204). Поиск свободного пространства может включить поиск файловой системы или API операционной системы или поиск адреса памяти, которого нет в файловой системе, или адресов, индексированных как местоположения блоков памяти, доступных для распределения. Поиск файловой системы может быть выполнен последовательно, в порядке освобождения памяти, или в любом другом подходящем порядке. В одном примере воплощения фрагменты свободного пространства могут быть идентифицированы как кандидаты на удаление в порядке от наименьшего до наибольшего с тем, чтобы наименьшие фрагменты свободного пространства могли быть удалены первыми.
Затем определяется, является ли фрагмент свободного пространства, идентифицированный как кандидат на удаление, по размеру меньше, чем пороговый размер фрагмента (стадия 206). Если идентифицированный фрагмент свободного пространства не меньше порогового размера фрагмента, то идентифицированный фрагмент свободного пространства подходит для записи файла и, соответственно, идентифицированный фрагмент свободного пространства сохраняется для записи. Однако если фрагмент свободного пространства меньше порогового размера фрагмента, то идентифицированный фрагмент свободного пространства не подходит для хранения данных и, соответственно, удаляется, как описано выше (стадия 208). Идентифицированный фрагмент свободного пространства также может быть удален, объединяя фрагмент свободного пространства с одним или несколькими смежными фрагментами свободного пространства, чтобы создать объединенный фрагмент свободного пространства, где такой фрагмент свободного пространства является, по меньшей мере, столь же большим, что и пороговый размер фрагмента.
Затем определяется, следует ли продолжить оптимизацию SSD (стадия 210). Может быть принято решение продолжить оптимизацию до тех пор, пока все SSD не были проверены на наличие фрагментов свободного пространства меньше, чем пороговый размер фрагмента. В другом примере выполнения SSD может подвергаться оптимизации до тех пор, пока не будут свободно доступны все ресурсы (например, в течение непиковых часов). SSD может также быть оптимизирован по таймеру, где блок времени настроен на оптимизацию SSD.
Хотя вышеупомянутые стадии описаны в последовательном порядке относительно удаления каждого фрагмента свободного пространства, который меньше порогового размера фрагмента, примеры воплощения изобретения включают любой подходящий способ выполнения описанных выше задач. Например, все фрагменты свободного пространства могут быть идентифицированы сначала как кандидаты на удаление. После этого каждый из идентифицированных фрагментов свободного пространства может сравниваться с пороговым размером фрагмента и удаляться, если он меньше порогового размера фрагмента.
КРАТКОЕ ОПИСАНИЕ АППАРАТНЫХ СРЕДСТВ
На фигуре 3 представлена блок-схема, иллюстрирующая компьютерную систему 300, которая может быть осуществлена как вариант воплощения изобретения. Компьютерная система 300 включает шину 302 или другой механизм связи для передачи информации и процессор 304 вместе с шиной 302 для обработки информации. Компьютерная система 300 также включает оперативную память 306, например память с произвольным доступом (ОЗУ) или другое устройство динамической памяти, соединенное с шиной 302 и используемое для хранения информации и команд, которые будут выполняться процессором 304. Оперативная память 306 также может использоваться для того, чтобы сохранить временные переменные или другую промежуточную информацию во время выполнения команд, которые будут выполняться процессором 304. Компьютерная система 300 далее включает постоянное запоминающее устройство (ROM) 308 или другое статическое запоминающее устройство, соединенное с шиной 302 для хранения статической информации и команд для процессора 304. Запоминающее устройство 310, например магнитный или оптический диск, соединено с шиной 302 и служит для хранения информации и команд.
Компьютерная система 300 может быть соединена через шину 302 с дисплеем 312 типа электронно-лучевой трубки (CRT) для отображения информации пользователю компьютера. Устройство ввода данных 314, включая алфавитно-цифровую клавиатуру, соединено с шиной 302 для передачи информации и набора команд на процессор 304. Другой тип пользовательского устройства ввода данных представляет собой устройство управления курсором 316, например мышь, шаровой указатель или управляющие клавиши курсора, используемые для передачи информации направления и команд на процессор 304 и для направления движения курсора 312. Это устройство ввода данных обычно имеет две степени свободы в двух осях, таких как первая ось (например, x) и вторая ось (например, у), которые позволяют устройству определять положения на плоскости.
Изобретение связано с использованием компьютерной системы 300 для осуществления описанного здесь способа. Согласно одному примеру воплощения изобретения этот способ выполняется компьютерной системой 300 в ответ на действия процессора 304, выполняя одну или несколько последовательностей одной или нескольких команд, содержавшихся в оперативной памяти 306. Такие команды могут считываться в оперативную память 306 от другой машинно-читаемой передающей среды, такой как запоминающее устройство 310. Выполнение последовательностей команд содержащихся в оперативной памяти 306 процессоров причин 304 необходимо для выполнения описанных здесь стадий технологического процесса. В альтернативных примерах воплощения аппаратные средства могут использоваться вместо программных средств или в сочетании с ними, чтобы осуществить настоящее изобретение. Таким образом, примеры воплощения изобретения не ограничены никакой определенной комбинацией схем аппаратных средств и программного обеспечения.
Термин "машинно-читаемая среда", как он используется здесь, относится к любой среде, предназначенной для передачи данных, которые обрабатываются компьютером. В одном примере воплощения, осуществляемом, используя компьютерную систему 300, используются различные машинно-читаемые носители, например, для передачи команд на процессор 304 с целью их выполнения. Такая среда может иметь различные формы, включая, без ограничения, среду для хранения и среду для передачи данных. Носители данных включают как энергонезависимые носители, так и энергозависимые носители. Энергонезависимые носители включают, например, оптические или магнитные диски, такие как запоминающее устройство 310. Энергозависимые носители включают динамическую память типа оперативной памяти 306. Передающая среда включает коаксиальные кабели, медную проводную и волоконную оптику, включая провода, содержащие шину 302. Передающая среда может также принять форму слухового аппарата или световых волн, например радиоволны и инфракрасное излучение, используемое для передачи данных. Все такие носители должны быть физическими элементами, способными передавать команды, носимые этими средами, которые будут обнаружены физическим механизмом, который считывает эти команды и передает их компьютеру.
Стандартные формы машинно-читаемых носителей включают, например, гибкий диск, жесткий диск, магнитную ленту или любую другую магнитную среду, CD-ROM, любую другую оптическую среду, перфокарты, перфоленты или другую физическую среду с перфорацией, оперативную память, ППЗУ и программируемую ПЗУ, любые другие микросхемы памяти или картриджи, несущую частоту, как описано ниже, или любую другую среду, которая может быть считана компьютером.
Различные формы машинно-читаемых носителей могут быть использованы для передачи одной или нескольких последовательностей одной или нескольких команд на процессор 304 для их выполнения. Например, команды первоначально могут быть записаны на магнитном диске удаленного компьютера. Удаленный компьютер может загрузить команды в свою динамическую память и послать команды по телефонной линии, используя модем. Модем, встроенный в местный компьютер 300, может получить данные по телефонной линии и использовать инфракрасный передатчик, чтобы преобразовать данные в инфракрасный сигнал. Детектор инфракрасных сигналов может получать данные, которые заложены в инфракрасном сигнале, и использовать схему передачи данных по шине 302. Шина 302 переносит данные в оперативную память 306, из которой процессор 304 извлекает и выполняет команды. Команды, полученные оперативной памятью 306, могут быть произвольно сохранены в запоминающем устройстве 310 до или после их выполнения процессором 304.
Компьютерная система 300 также включает интерфейс связи 318, соединенный с шиной 302. Интерфейс связи 318 обеспечивает дуплексную связь при передаче данных по сети 320, которая соединена с местной сетью 322. Например, интерфейс связи 318 может быть цифровой сетью с предоставлением комплексных услуг (цифровая сеть комплексного обслуживания), платой или модемом, чтобы обеспечить передачу данных по телефонной линии соответствующего типа. В качестве другого примера, интерфейс связи 318 может быть карточкой местной сети (LAN), которая обеспечивает соединение при передаче данных через совместимую локальную сеть. Могут быть также беспроводные линии связи. В любой такой практической реализации интерфейс связи 318 посылает и получает электрические, электромагнитные или оптические сигналы, которые несут цифровые потоки данных, представляющие различные типы информации.
Сетевая система 320 обычно обеспечивает передачу данных через одну или несколько сетей на другие устройства обработки данных. Например, сеть связи 320 может обеспечить соединение через местную сеть 322 с главным компьютером 324 или с оборудованием обработки данных, эксплуатируемое поставщиком услуг Интернета (провайдером) 326. Провайдер 326, в свою очередь, оказывает услуги по передаче данных через всемирную сеть передачи пакетов данных, теперь обычно называемую "Интернетом" 328. Местная сеть 322 и Интернет 328 используют электрические, электромагнитные или оптические сигналы, которые несут цифровые потоки данных. Сигналы через различные сети и сигналы сети 320, передаваемые с помощью интерфейса 318 на компьютерную систему 300, являются примером несущих, транспортирующих информацию.
Компьютерная система 300 может посылать сообщения и получить данные, включая код программы, через сеть (сети) связи 320, и эта связь осуществляется с помощью интерфейса 318. В Интернет-примере сервер 330 может передать требуемый код для прикладной программы через Интернет 328, поставщика услуг 326, местную сеть 322 и интерфейс связи 318.
Полученный код может быть выполнен процессором 304 по его получении через сеть и/или из запоминающего устройства 310 или из другой энергонезависимой памяти для более позднего выполнения. Этим способом компьютерная система 300 может получить код программы в виде несущей.
МОДИФИКАЦИИ И АЛЬТЕРНАТИВЫ
Вышеприведенные варианты воплощения изобретения были описаны на примере различных конкретных деталей, которые могут изменяться от реализации до реализации. Таким образом, единственный и исключительный индикатор того, что является изобретением и заявлено заявителями как изобретение, является перечень пунктов патентования, которые исходят из данной заявки, в конкретной форме, в которой такие пункты сформулированы, включая любое последующее изменение. Любые определения, явно сформулированные здесь для терминов, содержавшихся в таких пунктах, должны управлять значениями таких терминов, как использующихся в этих пунктах. Следовательно, никакое ограничение, элемент, свойство, признак, преимущество или атрибут, который явно не приведен в пункте, в любом случае не должны ограничить объем такого пункта. Соответственно, описание и чертежи должны рассматриваться в иллюстративном, а не в ограничительном смысле.

Claims (16)

1. Способ оптимизации твердотельного накопителя, содержащий следующие стадии:
получение порогового размера фрагмента, в котором пороговый размер фрагмента вычисляется на основании, по меньшей мере, одной или нескольких скоростей последовательной записи твердотельного накопителя (SSD) или скорости ввода-вывода (I/O) в/из SSD в секунду;
определение, является ли фрагмент свободного пространства на диске SSD меньше порогового размера фрагмента;
если фрагмент свободного пространства на диске SSD меньше порогового размера фрагмента, удаление фрагмента свободного пространства;
и, если фрагмент свободного пространства на диске SSD не меньше порогового размера фрагмента, фрагмент свободного пространства используется для хранения данных.
2. Способ по п.1, в котором пороговый размер фрагмента вычисляется на основании, по меньшей мере, скорости последовательной записи SSD.
3. Способ по п.1, в котором пороговый размер фрагмента вычисляется, используя одну или несколько стадий, включающих деление скорости последовательной записи SSD на скорость ввода-вывода SSD в секунду.
4. Способ по п.1, в котором удаление фрагмента свободного пространства содержит:
определение, когда использование одного или нескольких ресурсов, требуемых для удаления фрагмента свободного пространства, отвечает критериям бездействия; и
отклик на использование одного или некоторого количества ресурсов, отвечающих критериям бездействия, для удаления фрагмента свободного пространства.
5. Способ по п.1, в котором удаление фрагмента свободного пространства содержит:
наполнение фрагмента свободного пространства, по меньшей мере, частью файла.
6. Способ по п.5, в котором файл представляет собой один или несколько временных файлов наполнителя или редко используемый файл.
7. Способ по п.1, в котором пороговый размер фрагмента вычисляется на основании, по меньшей мере, скорости ввода-вывода в/из SSD в секунду.
8 Способ по п.1, в котором пороговый размер фрагмента определяется путем:
получения порогового размера фрагмента от пользователя;
вычисления порогового размера фрагмента;
получения порогового размера фрагмента от аппаратно зашитого элемента в SSD;
определения порогового размера фрагмента, проверяя различные значения порогового размера фрагмента и выбирая пороговый размер фрагмента, обеспечивающий оптимальные рабочие характеристики.
9. Оптимизатор твердотельного накопителя (SSD), содержащий:
средство для получения порогового размера фрагмента, в котором пороговый размер фрагмента вычисляется на основании, по меньшей мере, одной или нескольких скоростей последовательной записи SSD или скорости ввода-вывода (I/O) в/из SSD в секунду;
средство для определения, является ли фрагмент свободного пространства на диске SSD меньше порогового размера фрагмента;
средство для удаления фрагмента свободного пространства, если фрагмент свободного пространства на диске SSD меньше порогового размера фрагмента; и
средство для сохранения фрагмента свободного пространства для хранения данных, если фрагмент свободного пространства на диске SSD не меньше порогового размера фрагмента.
10. Оптимизатор SSD по п.9, дополнительно содержащий средство для вычисления порогового размера фрагмента на основании, по меньшей мере, скорости последовательное записи SSD.
11. Оптимизатор SSD по п.9, дополнительно содержащий средство для вычисления порогового размера фрагмента, сконфигурированный для определения порогового размера фрагмента путем деления, по меньшей мере, скорости последовательной записи SSD на скорость ввода-вывода SSD.
12. Оптимизатор SSD по п.9, в котором средство для удаления фрагмента свободного пространства содержит;
средство для определения, когда использование одного или нескольких ресурсов, требуемых для удаления фрагмента свободного пространства, отвечает критериям бездействия.
13. Оптимизатор SSD по п.9, в котором средство для удаления фрагмента свободного пространства содержит
средство для заполнения фрагмента свободного пространства, по меньшей мере, частью файла.
14. Оптимизатор SSD по п.13, в котором файл представляет собой один или несколько
временных файлов наполнителя или редко используемый файл.
15. Оптимизатор SSD по п.9, дополнительно содержащий средство для вычисления порогового размера фрагмента на основании, по меньшей мере, скорости ввода-вывода SSD в секунду.
16. Оптимизатор SSD по п.9, в котором средство для получения пороговых фрагментов дополнительно содержит:
средство для получения порогового размера фрагмента от пользователя;
средство для получения порогового размера фрагмента от аппаратно зашитого элемента в SSD или
средство для определения порогового размера фрагмента, проверяя различные значения порогового фрагмента, и выбор порогового размера фрагмента, обеспечивающий оптимальные рабочие характеристики.
17. Машинно-считываемый носитель данных, содержащий одну или несколько последовательностей команд, при выполнении которых одним или несколькими процессорами, процессоры реализуют способ, согласно любому из пп.1-8.
RU2010112956/08A 2007-10-05 2008-10-03 Способ оптимизации твердотельного накопителя и оптимизатор RU2479013C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US97808607P 2007-10-05 2007-10-05
US60/978,086 2007-10-05
PCT/US2008/078823 WO2009046353A1 (en) 2007-10-05 2008-10-03 Solid state drive optimizer

Publications (2)

Publication Number Publication Date
RU2010112956A RU2010112956A (ru) 2011-10-10
RU2479013C2 true RU2479013C2 (ru) 2013-04-10

Family

ID=40097481

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010112956/08A RU2479013C2 (ru) 2007-10-05 2008-10-03 Способ оптимизации твердотельного накопителя и оптимизатор

Country Status (10)

Country Link
US (1) US8086819B2 (ru)
EP (1) EP2195730A1 (ru)
JP (1) JP2010541107A (ru)
KR (1) KR20100071063A (ru)
CN (1) CN102203717A (ru)
AU (1) AU2008308549B9 (ru)
CA (1) CA2700872A1 (ru)
RU (1) RU2479013C2 (ru)
TW (1) TW200937276A (ru)
WO (1) WO2009046353A1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2624563C2 (ru) * 2013-05-31 2017-07-04 Интел Корпорейшн Оперативное регулирование производительности твердотельных запоминающих устройств

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9875033B2 (en) * 2009-05-12 2018-01-23 International Business Machines Corporation Apparatus and method for minimizing data storage media fragmentation
US8285955B2 (en) * 2009-10-16 2012-10-09 Lenovo (Singapore) Pte. Ltd. Method and apparatus for automatic solid state drive performance recovery
KR101638061B1 (ko) * 2009-10-27 2016-07-08 삼성전자주식회사 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법
KR20110046243A (ko) * 2009-10-27 2011-05-04 삼성전자주식회사 사용자 장치 및 그것의 맵핑 데이터 관리 방법
US8638010B2 (en) * 2010-02-17 2014-01-28 Integrated Device Technology, Inc. Systems, devices, and methods for providing backup power to a load
US8380949B2 (en) 2010-05-20 2013-02-19 International Business Machines Corporation Managing write operations to an extent of tracks migrated between storage devices
US8615640B2 (en) 2011-03-17 2013-12-24 Lsi Corporation System and method to efficiently schedule and/or commit write data to flash based SSDs attached to an array controller
US8639900B2 (en) * 2011-05-25 2014-01-28 International Business Machines Corporation Defragmentation of data storage pools
JP5579135B2 (ja) * 2011-07-29 2014-08-27 株式会社東芝 データ記憶装置、メモリ制御装置及びメモリ制御方法
US9026503B2 (en) * 2012-02-29 2015-05-05 Netapp, Inc. Fragmentation control for performing deduplication operations
US8990477B2 (en) * 2012-04-19 2015-03-24 Sandisk Technologies Inc. System and method for limiting fragmentation
US9218281B2 (en) 2012-05-04 2015-12-22 Seagate Technology Llc Maintaining ordering via a multi-level map of a solid-state media
US9443591B2 (en) 2013-01-23 2016-09-13 Seagate Technology Llc Storage device out-of-space handling
US8918583B2 (en) * 2012-12-20 2014-12-23 Virtium Technology, Inc. Adapting behavior of solid-state drive using real usage model
CN103631940B (zh) * 2013-12-09 2017-02-08 中国联合网络通信集团有限公司 一种应用于hbase数据库的数据写入方法及系统
JP6289128B2 (ja) * 2014-01-30 2018-03-07 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
US10621041B2 (en) * 2016-03-25 2020-04-14 Intel Corporation Methods and apparatus to assign indices and relocate object fragments in distributed storage systems
US9747106B1 (en) * 2016-09-30 2017-08-29 International Business Machines Corporation Allocating multiple operand data areas of a computer instruction within a program buffer
US11029856B2 (en) * 2018-03-02 2021-06-08 Qualcomm Incorporated Flash memory device with data fragment function
TWI687921B (zh) * 2019-02-01 2020-03-11 宏碁股份有限公司 主機、疊瓦式磁記錄硬碟及其運作方法
US11520663B2 (en) * 2019-09-04 2022-12-06 Waters Technologies Ireland Limited Techniques for analytical application installation optimization

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675790A (en) * 1993-04-23 1997-10-07 Walls; Keith G. Method for improving the performance of dynamic memory allocation by removing small memory fragments from the memory pool
EP0880139A2 (en) * 1997-05-19 1998-11-25 Sony Corporation Signal recording and/or reproducing
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US6401166B2 (en) * 1997-08-04 2002-06-04 Tokyo Electron Device Limited Data processing system, block erasing type memory device and memory storing program for controlling memory device
RU2280273C2 (ru) * 2003-07-16 2006-07-20 Открытое акционерное общество "Научно-производственное объединение "Прибор" Способ структурирования и записи цифровой информации и устройство для его осуществления

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330583B1 (en) 1994-09-09 2001-12-11 Martin Reiffin Computer network of interactive multitasking computers for parallel processing of network subtasks concurrently with local tasks
US5987479A (en) * 1997-09-24 1999-11-16 Sony Corporation, Inc. Large block allocation for disk-based file systems
US7268774B2 (en) * 1998-08-18 2007-09-11 Candledragon, Inc. Tracking motion of a writing instrument
US6591287B1 (en) 1999-09-08 2003-07-08 Lucent Technologies Inc. Method to increase the efficiency of job sequencing from sequential storage
US7096327B2 (en) * 2000-03-24 2006-08-22 Koninklijke Philips Electronics N.V. System for and method of accessing blocks on a storage medium
US7170891B2 (en) * 2001-08-30 2007-01-30 Messenger Terabit Networks, Inc. High speed data classification system
US7076781B2 (en) 2002-05-31 2006-07-11 International Business Machines Corporation Resource reservation for large-scale job scheduling
US7451704B1 (en) * 2003-03-20 2008-11-18 The United States Of America As Represented By The Secretary Of The Army Multifunctional explosive fragmentation airburst munition
JP2005050192A (ja) * 2003-07-30 2005-02-24 Matsushita Electric Ind Co Ltd 情報記録システム
US20050240934A1 (en) 2004-04-21 2005-10-27 Hewlett-Packard Development Company, L.P. Task management based on system utilization
JP2006113938A (ja) * 2004-10-18 2006-04-27 Ricoh Co Ltd データの再配置方法と追加記録方法およびプログラム
CN101268449B (zh) * 2005-09-22 2012-04-04 松下电器产业株式会社 数据记录装置以及数据记录方法
US20070143759A1 (en) 2005-12-15 2007-06-21 Aysel Ozgur Scheduling and partitioning tasks via architecture-aware feedback information
GB2439577B (en) * 2006-06-30 2011-12-14 Data Equation Ltd Data processing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675790A (en) * 1993-04-23 1997-10-07 Walls; Keith G. Method for improving the performance of dynamic memory allocation by removing small memory fragments from the memory pool
EP0880139A2 (en) * 1997-05-19 1998-11-25 Sony Corporation Signal recording and/or reproducing
US6401166B2 (en) * 1997-08-04 2002-06-04 Tokyo Electron Device Limited Data processing system, block erasing type memory device and memory storing program for controlling memory device
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
RU2280273C2 (ru) * 2003-07-16 2006-07-20 Открытое акционерное общество "Научно-производственное объединение "Прибор" Способ структурирования и записи цифровой информации и устройство для его осуществления

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2624563C2 (ru) * 2013-05-31 2017-07-04 Интел Корпорейшн Оперативное регулирование производительности твердотельных запоминающих устройств

Also Published As

Publication number Publication date
EP2195730A1 (en) 2010-06-16
CN102203717A (zh) 2011-09-28
US20090094433A1 (en) 2009-04-09
US8086819B2 (en) 2011-12-27
TW200937276A (en) 2009-09-01
AU2008308549A2 (en) 2010-06-24
JP2010541107A (ja) 2010-12-24
RU2010112956A (ru) 2011-10-10
AU2008308549A1 (en) 2009-04-09
AU2008308549B9 (en) 2012-10-18
KR20100071063A (ko) 2010-06-28
WO2009046353A1 (en) 2009-04-09
CA2700872A1 (en) 2009-04-09
AU2008308549B2 (en) 2012-08-09

Similar Documents

Publication Publication Date Title
RU2479013C2 (ru) Способ оптимизации твердотельного накопителя и оптимизатор
US11340812B2 (en) Efficient modification of storage system metadata
US9256542B1 (en) Adaptive intelligent storage controller and associated methods
CN102782683B (zh) 用于数据库服务器的缓冲池扩展
US9965196B2 (en) Resource reservation for storage system metadata updates
CN109213696B (zh) 用于缓存管理的方法和设备
US8458394B2 (en) Storage device and method of managing a buffer memory of the storage device
CN111742291A (zh) 具有用户空间闪存转换层的用户空间存储i/o栈的方法和系统
KR101947503B1 (ko) 트리 인덱스를 제공하는 컴퓨팅 장치
US10860225B2 (en) Apparatus and method for routing access based on device load
KR20110110720A (ko) 고체 상태 드라이브에서의 웨어 레벨링을 위한 방법 및 시스템
CN107526534B (zh) 管理存储设备的输入输出(i/o)的方法和设备
US10970254B2 (en) Utilization of tail portions of a fixed size block in a deduplication environment by deduplication chunk virtualization
US11947839B2 (en) Storage device, system, and method for customizable metadata
CN112748863A (zh) 用于处理数据的方法、电子设备和计算机程序产品
US20090216916A1 (en) Method and apparatus for inputting/outputting data using virtualization technique
CN107632781B (zh) 一种分布式存储多副本快速校验一致性的方法及存储结构
US20170068483A1 (en) Storage device, computer readable recording medium, and storage device control method
US9753803B2 (en) Storage system and information processing apparatus
CN111625180B (zh) 数据写入方法及装置、存储介质
KR20140041408A (ko) 저장 위치 속성 및 데이터 사용량 통계에 기초하여 데이터 저장을 위한 저장 위치 선택
CN101526887B (zh) 将数据写入硬盘的方法、装置及系统
CN108572924B (zh) 一种3d mlc闪存设备的请求处理方法
CN103064762A (zh) 重删备份数据的恢复方法和装置
KR20090053164A (ko) 상태 정보를 관리하는 플래시 메모리 제어 장치 및 방법

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20131004