продление срока службы флэш-памяти

Классы МПК:G06F13/14 управление запросами для взаимных отсылок или переноса
Автор(ы):, ,
Патентообладатель(и):МАЙКРОСОФТ КОРПОРЕЙШН (US)
Приоритеты:
подача заявки:
2008-01-31
публикация патента:

Изобретение относится к области вычислительной техники и может быть использовано в компьютерных системах, использующих флэш-память. Технический результат заключается в увеличении срока службы флэш-памяти за счет фильтрации в ней операций ввода/вывода. Способ включает запрос ввода/вывода, направленный во флэш-память, и проверку, соответствует ли он записи большей интенсивности. Если соответствует, то выбирают для выполнения действие управления вводом/выводом флэш-памяти, если не соответствует, то запрос ввода/вывода направляют во флэш-память. Считываемый компьютером носитель, содержащий исполняемые компьютером инструкции для выполнения способа. Система реализует действия способа. 3 н. и 15 з.п. ф-лы, 7 ил. продление срока службы флэш-памяти, патент № 2451993

продление срока службы флэш-памяти, патент № 2451993 продление срока службы флэш-памяти, патент № 2451993 продление срока службы флэш-памяти, патент № 2451993 продление срока службы флэш-памяти, патент № 2451993 продление срока службы флэш-памяти, патент № 2451993 продление срока службы флэш-памяти, патент № 2451993 продление срока службы флэш-памяти, патент № 2451993

Формула изобретения

1. Компьютерно-реализуемый способ фильтрации операций ввода/вывода флэш-памяти, содержащий этапы, на которых:

перехватывают запрос ввода/вывода, направленный в флэш-память, определяют, соответствует ли запрос ввода/вывода операции записи большой интенсивности,

в ответ на определение того, что запрос ввода/вывода соответствует операции записи большой интенсивности, выбирают действие управления вводом/выводом флэш-памяти для выполнения, причем данное действие управления вводом/выводом флэш-памяти содержит по меньшей мере одно из: управления сжатием данных, записываемых в результате запроса ввода/вывода, управления восстановлением сжатых данных, считываемых в результате запроса ввода/вывода, управления буферизацией запроса ввода/вывода и управления переадресацией запроса ввода/вывода в периферийное запоминающее устройство; и

в ответ на определение того, что запрос ввода/вывода не соответствует операции записи большой интенсивности, передают запрос ввода/вывода в флэш-память.

2. Компьютерно-реализуемый способ по п.1, в котором выбор действия управления вводом/выводом флэш-памяти для управления сжатием данных, записываемых в результате запроса ввода/вывода, содержит сжатие данных файла страничного обмена, соответствующего операционной системе.

3. Компьютерно-реализуемый способ по п.1, в котором действие управления вводом/выводом флэш-памяти для управления сжатием данных, записываемых в результате запроса ввода/вывода, содержит сжатие данных файла, ассоциированного с операцией предварительной выборки.

4. Компьютерно-реализуемый способ по п.1, в котором действие управления вводом/выводом флэш-памяти для управления сжатием данных, записываемых в результате запроса ввода/вывода, содержит сжатие данных файла, ассоциированного с операцией индексации поиска.

5. Компьютерно-реализуемый способ по п.1, в котором действие управления вводом/выводом флэш-памяти для управления сжатием данных, записываемых в результате запроса ввода/вывода, содержит запись сжатых данных запроса ввода/вывода в буфер.

6. Компьютерно-реализуемый способ по п.5, в котором действие управления вводом/выводом флэш-памяти для сжатия данных, записываемых в результате упомянутого запроса ввода/вывода, дополнительно содержит запись сжатых данных из буфера в флэш-память.

7. Компьютерно-реализуемый способ по п.1, в котором действие управления вводом/выводом флэш-памяти для управления буферизацией запроса ввода/вывода содержит запись данных из буфера на периферийное запоминающее устройство.

8. Считываемый компьютером носитель, содержащий исполняемые компьютером инструкции для выполнения способа, содержащего этапы, на которых:

перехватывают запрос ввода/вывода, направленный в флэш-память из операционной системы,

определяют сущность запроса ввода/вывода, и

выполняют действие управления вводом/выводом флэш-памяти на основе сущности запроса ввода/вывода, при этом данное действие управления вводом/выводом флэш-памяти содержит по меньшей мере одно из:

управления сжатием данных, записываемых в результате запроса ввода/вывода, управления восстановлением сжатых данных, считываемых в результате запроса ввода/вывода, управления буферизацией запроса ввода/вывода и управления переадресацией запроса ввода/вывода в периферийное запоминающее устройство.

9. Считываемый компьютером носитель по п.8, в котором при определении сущности запроса ввода/вывода определяют, содержит ли запрос ввода/вывода данные, соответствующие операции записи большой интенсивности.

10. Считываемый компьютером носитель по п.9, в котором при определении сущности запроса ввода/вывода определяют, содержит ли запрос ввода/вывода данные, соответствующие операции записи большой интенсивности, определяют, содержит ли запрос ввода/вывода данные, относящиеся к файлу страничного обмена операционной системы.

11. Считываемый компьютером носитель по п.8, в котором при выполнении действия управления вводом/выводом флэш-памяти на основе сущности запроса ввода/вывода сжимают данные, соответствующие операции записи большей интенсивности, в сжатые данные.

12. Считываемый компьютером носитель по п.11, в котором способ содержит этап, на котором записывают сжатые данные в периферийное запоминающее устройство вместо флэш-памяти.

13. Считываемый компьютером носитель по п.11, в котором способ содержит этап, на котором записывают сжатые данные в буфер вместо флэш-памяти.

14. Считываемый компьютером носитель по п.13, в котором способ содержит этапы, на которых:

превращают повторный вариант сжатых данных в обновленные сжатые данные и

в ответ на превышение порога буфера записывают обновленные сжатые данные из буфера в флэш-память.

15. Система для фильтрации операций ввода/вывода флэш-памяти, содержащая: фильтр флэш-памяти, сконфигурированный для подсоединения к флэш-памяти, причем фильтр флэш-памяти сконфигурирован для перехвата запроса ввода/вывода, направленного в флэш-память, при этом фильтр флэш-памяти содержит:

средство определения сущности ввода/вывода для определения сущности запроса ввода/вывода,

средство выбора управления вводом/выводом флэш-памяти, сконфигурированное для выбора действия управления вводом/выводом флэш-памяти на основе сущности запроса ввода/вывода, и

средство управления вводом/выводом флэш-памяти, сконфигурированное для управления выполнением упомянутого действия управления вводом/выводом флэш-памяти, причем средство управления вводом/выводом флэш-памяти содержит по меньшей мере одно из:

средства управления сжатием, сконфигурированного для управления сжатием данных, записываемых в результате запроса ввода/вывода,

средства управления восстановлением, сконфигурированного для управления восстановлением сжатых данных, считываемых в результате запроса ввода/вывода,

средства управления буфером, сконфигурированного для управления буферизацией запроса ввода/вывода, и

средства управления переадресацией, сконфигурированного для управления переадресацией запроса ввода/вывода в периферийное запоминающее устройство.

16. Система по п.15, в которой фильтр флэш-памяти имеет соединение с блоком сжатия/восстановления, причем блок сжатия/восстановления сконфигурирован сжимать выбранные операции записи, направленные в флэш-память, и восстанавливать сжатые данные, считываемые из флэш-памяти.

17. Система по п.15, в которой фильтр флэш-памяти имеет соединение с периферийным запоминающим устройством.

18. Система по п.15, содержащая соединение с буфером, причем буфер сконфигурирован для приема запроса ввода/вывода при буферизации запроса ввода/вывода фильтром флэш-памяти.

Описание изобретения к патенту

Уровень техники

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

Область памяти в обычных устройствах флэш-памяти организована в области или массивы, называемые ячейками. Для флэш-памяти существует ограничение, состоящее в том, что хотя считывание из нее и запись в нее могут осуществляться произвольным образом, очистку или стирание ее содержимого осуществляют только блоками. Ячейка в флэш-памяти может по истечении определенного времени изнашиваться физически после некоторого конечного количества операций стирания содержимого, выполняемых на ячейке, как части процесса записи/перезаписи. Обычно количество циклов операции стирания содержимого, требуемых для износа ячейки, находится приблизительно в диапазоне от 100000 до 1000000 операций стирания.

Обычно, когда требуется перезапись данных в ячейке, старые данные помечают, как недостоверные, и заменяющие данные записывают в доступной области в ячейке. Когда в ячейке не остается больше доступного пространства, то осуществляют стирание содержимого ячейки по блокам и затем в ячейку со стертым содержимым записывают новые данные совместно с достоверными данными, которые были скопированы из ячейки перед стиранием ее содержимого. Такое стирание содержимого освобождает ранее недостоверные участки ячейки для осуществления в них записи вновь. Этот процесс записи данных в флэш-память является всего лишь одним способом "нивелирования износа", используемым в флэш-памяти для ограничения количества операций стирания, выполняемых на ячейке.

Так как флэш-память становится более объемной и распространенной, ее все более используют в качестве вторичной памяти, а также в качестве первичного носителя данных вместо механических накопителей на дисках. Благодаря возросшему доверию в отношении флэш-памяти использование с некоторыми программами и/или приложениями должно приводить к чрезмерным нагрузкам на ячейки в флэш-памяти. Это должно приводить к сокращению срока службы флэш-памяти, несмотря на применение существующих способов нивелирования износа. Сокращение срока службы является нежелательным, особенно, когда флэш-память используют в качестве первичной памяти.

Соответственно должна быть предпочтительна технология, направленная на устранение некоторых из вышеупомянутых недостатков и изъянов устройств флэш-памяти.

Сущность изобретения

Данная сущность изобретения предоставлена для представления в упрощенном виде возможных вариантов концепций, которые описаны ниже в подробном описании. Эта сущность изобретения не предназначена для определения ключевых признаков или неотъемлемых признаков заявленного предмета изобретения, и при этом не предназначено для использования в качестве способствующего определению контекста заявленного предмета изобретения.

Согласно реализуемому компьютером способу фильтрации операций ввода/вывода флэш-памяти принимают запрос ввода/вывода, направленный в флэш-память. Определяют, соответствует ли запрос ввода/вывода операции записи большого объема. Если запрос ввода/вывода соответствует операции записи большого объема, то выбирают для выполнения действие управления вводом/выводом флэш-памяти. Выбранное действие управления вводом/выводом флэш-памяти может содержать такое действие управления, как: управление сжатием данных, записанных в результате запроса ввода/вывода; управление восстановлением сжатых данных, считанных в результате запроса ввода/вывода; управление буферизацией запроса ввода/вывода; или управление переадресацией запроса ввода/вывода в периферийный твердотельный накопитель, но не ограничено ими. Если запрос ввода/вывода не соответствует операции записи большого объема, то запрос ввода/вывода передается в флэш-память.

Фильтрация операций ввода/вывода флэш-памяти и управление операциями записи большого объема, направленными в флэш-память, действуют совместно для уменьшения операций записи, которые иначе, в ходе нормальной операции, должны были быть записаны в флэш-память. Это уменьшение операций записи в флэш-память уменьшает количество операций стирания, выполняемых на ячейке в флэш-памяти, вследствие этого увеличивая срок службы флэш-памяти.

Описание чертежей

Приложенные чертежи, которые включены в описание и формируют его часть, иллюстрируют варианты осуществления технологии продления срока службы флэш-памяти и совместно с описанием служат для пояснения описанных ниже принципов:

Фиг.1 - диаграмма возможной вычислительной системы, используемой совместно с вариантами осуществления представленной технологии продления срока службы флэш-памяти.

Фиг.2 изображает возможный фильтр флэш-памяти, согласно одному варианту осуществления представленной технологии.

Фиг.3 - блок-схема последовательности операций, выполняемых согласно одному варианту осуществления фильтра флэш-памяти представленной технологии.

Фиг.4 изображает один возможный вариант действий управления буферизацией, выполняемых согласно варианту осуществления представленной технологии.

Фиг.5 изображает другой возможный вариант действий управления буферизацией, выполняемых согласно варианту осуществления представленной технологии.

Фиг.6 - блок-схема последовательности операций, выполняемых согласно одному варианту осуществления представленной технологии.

Фиг.7 - блок-схема последовательности операций, выполняемых согласно одному варианту осуществления представленной технологии.

Если это не указано специально, чертежи, упоминаемые в этом описании, приведены не в масштабе.

Подробное описание

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

Если специально не указано иначе, как очевидно из последующего рассуждения, ясно, что по настоящему подробному описанию, рассуждения, в которых используют такие термины, как "прием", "определение", "выбор", "передача", "управление", "сжатие", "восстановление", "запись", "считывание", "принятие решения", "выполнение", "перехват" или подобные относятся к действиям и процессам вычислительной системы (такой как вычислительная система 100 фиг.1) или подобного электронного вычислительного устройства. Вычислительная система или подобное электронное вычислительное устройство оперирует и преобразовывает данные, представленные в виде физических (электронных) величин внутри регистров и блоков памяти вычислительной системы, в другие данные, представленные подобным образом в виде физических величин внутри регистров или блоков памяти вычислительной системы или других таких хранилищах информации, устройствах передачи или отображения (данных) в вычислительной системе. Варианты осуществления представленной технологии продления срока службы флэш-памяти также хорошо подходят для использования другими вычислительными системами, например, такими как оптические и виртуальные компьютеры. Дополнительно, ясно, что варианты осуществления технологии продления срока службы флэш-памяти могут быть использованы также для продления срока службы других твердотельных устройств хранения, которые имеют аппаратные характеристики, подобные флэш-памяти. Дополнительно, понятно, что в некоторых вариантах осуществления представленной технологии продления срока службы флэш-памяти один или большее количество этапов могут быть выполнены вручную.

Обзор рассуждения

Рассуждение начинается с описания возможной среды вычислительной системы, совместно с которой или внутри которой могут функционировать варианты осуществления представленной технологии. Рассуждение продолжается описанием возможного блока в виде фильтра флэш-памяти, который функционирует для продления срока службы флэш-памяти. Кратко описаны компоненты фильтра флэш-памяти. Затем приведено более подробное описание функционирования фильтра флэш-памяти и его компонентов совместно с описанием возможного способа фильтрации операций ввода/вывода флэш-памяти, а также совместно с возможным способом продления срока службы флэш-памяти, используемой в качестве первичной памяти для операционной системы.

Примерная среда вычислительной системы

Согласно фиг.1 все или части различных вариантов осуществления технологии продления срока службы флэш-памяти состоят из инструкций, считываемых компьютером и выполняемых компьютером, которые размещены, например, на используемом компьютером носителе вычислительной системы. То есть фиг.1 иллюстрирует один возможный вариант модели компьютера, который может быть использован для реализации вариантов осуществления представленной технологии продления срока службы флэш-памяти, которые описаны ниже. Фиг.1 иллюстрирует возможную вычислительную систему 100, используемую согласно вариантам осуществления представленной технологии продления срока службы флэш-памяти. Ясно, что система 100 фиг.1 является только возможным вариантом, и что варианты осуществления представленной технологии продления срока службы флэш-памяти могут функционировать на, или внутри нескольких различных вычислительных систем, включая универсальные вычислительные системы с сетевой структурой, встроенные вычислительные системы, маршрутизаторы, коммутаторы, устройства-сервера, устройства-клиенты, различные промежуточные устройства/узлы, автономные вычислительные системы, медиа-центры, портативные вычислительные системы, карманные устройства и т.п. Как изображено на фиг.1, вычислительная система 100 с фиг.1 хорошо приспособлена к наличию подсоединенного к ней периферийного носителя 102, считываемого компьютером, например, такого как гибкий диск, компакт-диск и другие подобные им.

Система 100 с фиг.1 содержит шину 104 адреса/данных для передачи информации и процессор 106A, соединенный с шиной 104, для обработки информации и инструкций. Как изображено на фиг.1, система 100 также хорошо подходит для многопроцессорной среды, в которой существует несколько процессоров 106A, 106B и 106C. С другой стороны, система 100 также хорошо подходит для одного процессора, например, такого как процессор 106A. Процессорами 106A, 106B и 106C могут быть любые из различных видов микропроцессоров. Система 100 также имеет функции хранилища данных, такие как энергозависимая память 108, используемая компьютером, например оперативная память (RAM), подсоединенная к шине 104, для хранения информации и инструкций для процессоров 106A, 106B и 106C. Система 100 содержит также энергонезависимую память 110, используемую компьютером, например постоянное запоминающее устройство (ROM), подсоединенное к шине 104, для хранения статической информации и инструкций для процессоров 106A, 106B и 106C. Также в системе 100 существует флэш-память 112, которая является твердотельным устройством флэш-памяти, используемым в качестве первичной памяти. Как изображено на фиг.1, флэш-память 112 подсоединена к шине 104 через фильтр 210 флэш-памяти. Флэш-память 112 используют для хранения информации и инструкций для вычислительной системы 100. В некоторых вариантах осуществления система 100 может дополнительно, или в виде варианта, быть сконфигурирована с дополнительным устройством хранения (таким как магнитный или оптический диск и накопитель на дисках), который может использоваться совместно с флэш-памятью 112 в качестве первичной памяти.

Система 100 содержит также необязательное устройство 114 ввода алфавитно-цифровых данных, содержащее алфавитно-цифровые и функциональные клавиши, которое подсоединено к шине 104, для передачи информации и вариантов выбора команд в процессор 106A или процессоры 106A, 106B и 106C. Система 100 содержит также необязательное устройство 116 управления курсором, подсоединенное к шине 104, для передачи информации и вариантов выбора команд, введенных пользователем, в процессор 106A или процессоры 106A, 106B и 106C. Система 100 представленного варианта осуществления содержит также необязательное устройство 118 отображения, подсоединенное к шине 104, для отображения информации.

Согласно фиг.1 необязательным устройством 118 отображения с фиг.1 может быть жидкокристаллическое устройство, электронно-лучевая трубка, плазменный дисплей или другое устройство отображения, подходящее для создания графических изображений и алфавитно-цифровых символов, распознаваемых пользователем. Необязательное устройство 116 управления курсором обеспечивает возможность динамической передачи сигнала пользователем компьютера в отношении перемещения видимого символа (курсора) на экране дисплея устройства 118 отображения и указания вариантов выбора пользователем выбираемых элементов, отображенных на устройстве 118 отображения. Из уровня техники известны многие реализации устройства 116 управления курсором, включая шаровой манипулятор, мышь, сенсорную панель, джойстик или специальные клавиши на устройстве 114 ввода алфавитно-цифровых данных, выполненные с возможностью передачи сигналов относительно перемещения в заданном направлении или определенным образом. В виде варианта, ясно, что управление и/или активизация курсора могут быть осуществлены посредством ввода с устройства 114 ввода алфавитно-цифровых данных с использованием специальных клавиш и команд, определенных последовательностью клавиш. Система 100 также хорошо подходит для курсора, управляемого другими средствами, например, такими как речевые команды. Система 100 содержит также устройство 120 ввода/вывода для осуществления связи системы 100 с внешними сущностями. Например, в одном варианте осуществления устройством 120 ввода/вывода является модем для предоставления проводного или беспроводного соединения между системой 100 и внешней сетью, такой как Интернет и т.д. В другом варианте осуществления, например, устройством 120 ввода/вывода является порт универсальной последовательной шины (USB). В варианте осуществления, где устройством 120 ввода/вывода является порт USB, периферийная память (например, твердотельная память или механический накопитель на дисках) может быть подсоединена для использования с вариантами осуществления представленной технологии. Некоторые возможные варианты твердотельной памяти содержат карту памяти или портативную флэш-память.

Согласно фиг.1 изображены различные другие компоненты для системы 100. В частности, операционная система 122, приложения 124, модули 126 и данные 128, если они существуют, изображены, как обычно размещенные в одной или нескольких комбинациях энергозависимой памяти 108, используемой компьютером, например оперативной памяти (RAM), и в блоке 112 хранения данных.

В некоторых вариантах осуществления представленная технология продления срока службы флэш-памяти реализована в приложении 124 или модуле 126, таком как драйвер устройства, которые могут быть размещены в ячейках памяти внутри RAM 108, храниться на периферийном носителе информации 102, считываемом компьютером, или храниться на носителе информации флэш-памяти 112. Как здесь будет описано, в различных вариантах осуществления представленная технология продления срока службы флэш-памяти функционирует в качестве фильтра 210 флэш-памяти, который содержит полностью или часть блока, который принимает и фильтрует запросы ввода/вывода, направленные в флэш-память 112. В таком варианте осуществления, как изображено на фиг.1, вычислительная система 100 (и/или флэш-память 112) хорошо приспособлены для того, чтобы содержать фильтр 210 флэш-памяти или для соединения с ним.

Фильтр флэш-памяти

Теперь, согласно фиг.2. На фиг.2 изображен возможный фильтр 210 флэш-памяти согласно одному варианту осуществления представленной технологии. Фильтр 210 флэш-памяти является блоком для уменьшения количества операций записи в флэш-память, такую как флэш-память 112. Например, в одном варианте осуществления фильтр 210 флэш-памяти реализован в виде программного уровня или блока, такого как часть операционной системы. В еще одном варианте осуществления фильтр 210 флэш-памяти реализован в виде полного или в виде части программно-аппаратного блока. В еще одном варианте осуществления фильтр 210 флэш-памяти реализован в аппаратном блоке. Как изображено в возможном варианте осуществления фиг.2, фильтр флэш-памяти 210 состоит из определителя 220 сущности ввода/вывода (I/O), селектора 230 управления вводом/выводом флэш-памяти, менеджера 241 сжатия, менеджера 242 восстановления, менеджера 243 буфера и менеджера 244 переадресации. Фильтр 210 флэш-памяти соединен с флэш-памятью или сконфигурирован для соединения с флэш-памятью для уменьшения операций записи или стирания в флэш-памяти. Соответственно в результате фильтрации, выполняемой фильтром 210 флэш-памяти, увеличивается срок службы носителя информации флэш-памяти, который может выдерживать только ограниченное количество операций стирания содержимого.

Исключительно в виде возможного варианта фильтр 210 флэш-памяти изображен соединенным с блоком 250 сжатия/восстановления данных, буфером 260 и периферийной памятью 270. Однако ясно, что в различных вариантах осуществления одно или большее количество указанных соединений могут быть необязательными, если функциональные возможности, которые обеспечивает блок 250 сжатия/восстановлении данных, буфер 260 или периферийная память 270, не требуются для определенного варианта осуществления. Подобным образом, ясно, что, как изображено, в различных вариантах осуществления функциональные возможности одного или большего количества из блока 250 сжатия/восстановлении данных, буфера 260 и периферийной памяти 270 могут быть скорее внедрены в фильтр 210 флэш-памяти, чем быть доступны через соединение с внешним объектом.

Блок 250 сжатия/восстановления данных функционирует под управлением фильтра 210 флэш-памяти для выполнения сжатия или восстановления данных совместно с выбранными перехваченными запросами ввода/вывода. Например, в одном варианте осуществления блок 250 сжатия/восстановления данных сжимает выбранную операцию записи, которая первоначально была направлена в флэш-память, но была переадресована фильтром 210 флэш-памяти в блок 250 сжатия/восстановления данных. Подобным образом, под управлением фильтра 210 флэш-памяти блок 250 сжатия/восстановлении данных восстанавливает считанные сжатые данные из флэш-памяти. В некоторых вариантах осуществления блок 250 сжатия/восстановлении данных выполняет также шифрование данных при сжатии данных и расшифровку данных при восстановлении данных.

Буфер 260 используют под управлением фильтра 210 флэш-памяти для приема выбранного перехваченного запроса ввода/вывода, когда запрос ввода/вывода буферизуют фильтром 210 флэш-памяти. В одном варианте осуществления в качестве буфера 260 используют оперативную память, такую как часть RAM 108 (фиг.1).

Периферийную память 270 используют под управлением фильтра 210 флэш-памяти для приема выбранного запроса ввода/вывода, когда запрос ввода/вывода переадресован из флэш-памяти фильтром 210 флэш-памяти. Периферийной памятью 270 может быть механический накопитель на жестких дисках или твердотельная память. Некоторые возможные варианты твердотельной памяти представляют карта памяти и внешняя флэш-память USB, такая как портативная флэш-память.

Функционирование фильтра флэш-памяти

Как изображено на фиг.2, фильтр 210 флэш-памяти функционирует для перехвата запроса ввода/вывода, который направлен в фильтруемую флэш-память. Например, запрос ввода/вывода принимают из операционной системы или приложения, которые работают в вычислительной системе 100. Как изображено на фиг.1 и фиг.2, флэш-память 112 является одним возможным вариантом флэш-памяти, к которой может быть подсоединен фильтр 210 флэш-памяти. Исключительно в виде возможного варианта, здесь иллюстрируются различные возможные варианты использования фильтра 210 флэш-памяти для фильтрования запросов ввода/вывода, направленных в флэш-память 112, которая функционирует в качестве первичной памяти для вычислительной системы 100. Ясно, что варианты осуществления описанной здесь технологии могут быть использованы подобным образом для продления срока службы других устройств флэш-памяти, например, таких как портативная флэш-память, которая является съемной, совместно с устройством 120 ввода/вывода 120 вычислительной системы 100.

Определитель 220 сущности ввода/вывода определяет сущность запроса ввода/вывода. После перехвата запроса ввода/вывода в флэш-память 112 определитель 220 сущности ввода/вывода фильтра 210 флэш-памяти анализирует запрос ввода/вывода для определения его сущности. Например, в одном варианте осуществления определитель 220 сущности ввода/вывода функционирует для определения, является ли запрос ввода/вывода запросом записи большого объема. Подобным образом, в одном варианте осуществления определитель 220 сущности ввода/вывода дополнительно функционирует для определения определенной категории запроса записи большого объема, к которой относится перехваченный запрос ввода/вывода. В одном варианте осуществления, если определитель 220 сущности ввода/вывода определяет, что перехваченный запрос ввода/вывода не соответствует запросу записи большого объема, то запрос ввода/вывода передают в флэш-память 112.

Селектор 230 управления вводом/выводом флэш-памяти выбирает действие управления вводом/выводом флэш-памяти на основе сущности запроса ввода/вывода. После предыдущего возможного варианта селектор 230 управления вводом/выводом флэш-памяти принимает сущность перехваченного запроса ввода/вывода из определителя 220 сущности ввода/вывода. На основе сущности перехваченного запроса ввода/вывода селектор 230 управления вводом/выводом флэш-памяти выбирает, каким образом будет осуществлено управление запросом ввода/вывода. Селектор 230 управления вводом/выводом флэш-памяти осуществляет это посредством выбора менеджера ввода/вывода и соответственно действия управления, которое должно быть выполнено при запросе ввода/вывода, из доступных менеджеров ввода/вывода (241, 242, 243 и 244), с которыми сконфигурирован фильтр 210 флэш-памяти. В некоторых вариантах осуществления, таких как варианты осуществления, где фильтр 210 флэш-памяти сконфигурирован только с одним менеджером ввода/вывода, селектор 230 управления вводом/выводом флэш-памяти может не требоваться.

Менеджер (241, 242, 243, 244) ввода/вывода флэш-памяти сконфигурирован для управления выполнением действия управления вводом/выводом флэш-памяти, которое способствует уменьшению операций записи в флэш-память. После предыдущего возможного варианта, после осуществления выбора, Менеджер (241, 242, 243, 244) ввода/вывода флэш-памяти управляет перехваченным запросом ввода/вывода так, чтобы обеспечивать уменьшение общего количества выполняемых операций записи в флэш-память 112. Уменьшение операций записи уменьшает потребность в выполнении операций стирания содержимого на ячейках флэш-памяти 112, соответственно продлевая срок службы флэш-памяти 112. Фильтр 210 флэш-памяти изображен сконфигурированным с четырьмя менеджерами (241, 242, 243, 244) ввода/вывода флэш-памяти. Ясно, что в различных вариантах осуществления в фильтре 210 флэш-памяти может содержаться большее или меньшее количество менеджеров ввода/вывода флэш-памяти, чем изображено на фиг.2. Подобным образом, ясно, что в некоторых вариантах осуществления функциональные возможности одного или большего количества менеджеров ввода/вывода флэш-памяти могут быть доступны для другого менеджера ввода/вывода флэш-памяти или содержаться в нем.

Менеджер 241 сжатия управляет сжатием выбранных перехваченных запросов ввода/вывода, которые направлены в флэш-память 112. В одном варианте осуществления менеджер 241 сжатия используют для избирательного сжатия всех или некоторой подсовокупности запросов ввода/вывода, которые определены соответствующими операциями записи большого объема. Например, данные для выбранной операции записи направляют в блок 250 сжатия/восстановлении данных, где их сжимают в сжатые данные. В некоторых вариантах осуществления после сжатия менеджер 241 сжатия затем указывает, что сжатые данные должны быть записаны в флэш-память 112. В виде варианта, в некоторых вариантах осуществления после сжатия менеджер 241 сжатия затем указывает, что сжатые данные должны быть записаны в буфер 260 или в периферийную память 270. Затем в некоторых вариантах осуществления при превышении порога буфера буферизированные сжатые данные могут быть записаны в флэш-память 112. При сжатии данных количество операций записи в флэш-память 112 уменьшается, соответственно уменьшая количество операций стирания содержимого, выполняемых на ячейках флэш-памяти 112.

Менеджер 242 восстановления управляет восстановлением сжатых данных, которые были запрошены для считывания из флэш-памяти 112, буфера 260 или периферийной памяти 270, в соответствии с перехваченным запросом ввода/вывода. В одном варианте осуществления считываемые сжатые данные были предварительно сжаты после перехвата запроса ввода/вывода, соответствующего операции записи большого объема. Менеджер 242 восстановления управляет считыванием сжатых данных из местоположения их хранения и затем направляет сжатые данные в блок 250 сжатия/восстановления данных, где их восстанавливают. Затем менеджер 242 восстановления направляет восстановленные данные конечному получателю данных, определенному в перехваченном запросе ввода/вывода.

Менеджер 243 управления буфером управляет буферизацией принятого запроса ввода/вывода, который сохраняют, по меньшей мере, временно в буфере 260. Другая функция менеджера 243 управления буфером состоит в принятии решения относительно повторных, избыточных или перекрывающихся записей данных, которые записывают в буфер 260 в результате последовательности запросов ввода/вывода. В одном варианте осуществления принятие решения выполняют в ситуации, где первый вариант блока данных записывают в буфер 260 и затем последующий, измененный или идентичный вариант этого блока данных записывают в буфер 260, при этом первый вариант данных все еще существует. В одном варианте осуществления менеджер 243 буфера в этой ситуации принимает решение относительно двух вариантов одного блока данных, обновляя первый вариант измененной информацией или отбрасывая первый вариант и сохраняя только второй вариант.

Вариант блока данных, относительно которого принято решение, считают обновленными данными. В случае, где блоком данных, относительно которого принято решение, являются сжатые данные, вариант, относительно которого принято решение, считают обновленными сжатыми данными. Принимая решение относительно нескольких вариантов блока данных, которые записывают в буфер 260, менеджер 243 буфера уменьшает последовательные записи буферизированных данных в флэш-память 112 или в периферийную память 270. Это устраняет избыточные записи блока данных и/или повторные записи блока данных, которые, иначе, были бы необходимы. Записи операционной системы в файл системного реестра являются одним возможным вариантом операции записи большого объема, которая может быть временно сохранена в буфере 260, и относительно которой принимают решение для уменьшения записей в флэш-память 112.

Менеджер 244 переадресации переадресует принятый запрос ввода/вывода, который должен быть записан в другое местоположение, вместо флэш-памяти 112. Например, в одном варианте осуществления менеджер 244 переадресации переадресует выбранные запросы ввода/вывода, которые должны быть записаны в периферийную память 270 вместо флэш-памяти 112. В таком варианте осуществления он может содержать промежуточный этап переадресации записи запроса ввода/вывода в буфер 260 и затем, впоследствии, после превышения порога буфера, в периферийную память 270. Такая переадресация уменьшает количество операций записи, которые, иначе, должны были быть осуществлены в флэш-память 112. Например, в одном варианте осуществления периферийной памятью 270 является дешевая портативная флэш-память, используемая исключительно для приема записей операций большого объема для возможности продления срока службы флэш-памяти 112. В таком варианте осуществления решение относительно выполнения переадресации запроса ввода/вывода может быть основано на наличии периферийной памяти 270 или буфера 260, в которые может быть переадресован запрос ввода/вывода.

Решение относительно выполнения переадресации должно быть также основано на сущности запроса ввода/вывода. Во многих случаях периферийная память 270 может быть легко (и возможно внезапно) удаляема; из-за этого в одном варианте осуществления должна осуществляться переадресация только малозначимых данных операций записи большого объема. Это должно предотвращать потерю значимых данных, которые, например, могут привести к выводу из строя операционной системы или приложения при удалении периферийной памяти 270.

Одним возможным вариантом операции записи большого объема является запись в файл страничного обмена операционной системы. Другими возможными вариантами операции записи большого объема являются операции записи, выполняемые приложениями предварительной выборки или приложениями индексации поиска, которые используют в вычислительной системе.

Относительно файлов страничного обмена, в основном, их используют, чтобы способствовать операционной системе в создании дополнительной используемой памяти, дополнительно к ограниченному количеству оперативной памяти, которая существует внутри вычислительной системы. Дополнительная память может быть создана и использована посредством способов виртуальной памяти. Для использования таких способов некоторые операционные системы разделяют память на участки, называемые страницами. Размер страницы может варьироваться в зависимости от операционной системы, но концепция страниц остается идентичной. "Страницы" виртуальной памяти могут быть доступны в памяти (например, RAM), но также должны дублироваться в файле страничного обмена, который хранится, например, в первичной памяти, такой как флэш-память 112.

При нормальном функционировании операционной системы существуют различные виды страниц. Некоторые страницы памяти являются страницами только для считывания. Возможным вариантом страницы только для считывания является выполняемый файл. Некоторые страницы памяти являются страницами для считывания и записи. Возможным вариантом страницы для считывания и записи являются пользовательские данные, например, такие как страница памяти для хранения пользовательских данных, выделенная для текстового процессора. Эта страница памяти для хранения пользовательских данных может быть считана, и в нее может быть осуществлена запись при внесении изменений при записи или редактировании документа текстовым процессором. Если этот документ текстового процессора минимизирован так, что может быть использована другая программа, то все страницы, которые ранее находились в памяти, записывают в первичную память, так чтобы их могли заменить другие страницы, которые активно используют в доступной оперативной памяти RAM.

Как очевидно, при нормальном функционировании компьютера, такого как вычислительная система 100, обычно, внутри файлов страничного обмена виртуальной памяти имеет место существенное (количество операций) считывания и записи. Хотя эта память определена, как виртуальная, можно действительно осуществлять существенное количество операций считывания и записи, и их выполняют в действительные ячейки памяти, такие как ячейки памяти внутри флэш-памяти 112.

Фиг.3 является блок-схемой 300 операций, выполняемых согласно одному варианту осуществления фильтра 210 флэш-памяти представленной технологии. В блок-схеме 300 представлены операции, выполняемые на рассматриваемом запросе ввода/вывода, направленном в флэш-память, такую как флэш-память 112. Рассматриваемым запросом ввода/вывода является запрос, который был перехвачен вариантом осуществления фильтра 210 флэш-памяти, сконфигурированного для использования сжатия и восстановления данных для уменьшения записей, соответствующих запросам страничной организации памяти операционной системы.

В одном варианте осуществления на этапе 310 определитель 220 сущности ввода/вывода принимает запрос ввода/вывода, направленный в флэш-память 112. Определитель 220 сущности ввода/вывода определяет, соответствует ли запрос ввода/вывода операции записи большого объема. В рассматриваемой реализации фильтра 210 флэш-памяти это содержит определение, является ли запрос ввода/вывода страничным запросом ввода/вывода. Если нет, то запрос ввода/вывода передают на этапе 320, например, в флэш-память 112. Затем после передачи запроса ввода/вывода это ответвление блок-схемы 300 заканчивается на этапе 390.

В одном варианте осуществления, как изображено на этапе 330, если запрос ввода/вывода соответствует страничному запросу, то селектор 230 управления вводом/выводом флэш-памяти используют для определения, является ли запрос ввода/вывода операцией считывания или операцией записи. Если запрос ввода/вывода является операцией считывания, то блок-схема переходит к этапу 340, если нет, то блок схема переходит к этапу 370.

В одном варианте осуществления на этапе 340 менеджер 242 восстановления используют для управления действиями восстановления, выполняемыми на данных, считываемых при запросе ввода/вывода. Например, менеджер 242 восстановления направляет сжатые данные, которые должны быть считаны из местоположения, в котором они хранятся. Например, сжатые данные могут храниться в флэш-памяти 112, в буфере 260 или в периферийной памяти 270. Затем на этапе 350 менеджер 242 восстановления направляет сжатые данные в блок сжатия/восстановлении данных 250, где их восстанавливают в восстановленные данные. Затем на этапе 360 менеджер 242 восстановления направляет восстановленные данные, которые должны быть переданы, как это требуется в соответствии с перехваченным запросом ввода/вывода. Затем это ответвление блок-схемы 300 заканчивается на этапе 390.

В одном варианте осуществления на этапе 370 менеджер 241 сжатия используют для управления действиями сжатия, выполняемыми на данных, записываемых в соответствии с запросом ввода/вывода. Данные, записываемые в соответствии с запросом ввода/вывода, направляют посредством менеджера 241 сжатия в блок 250 сжатия/восстановлении данных, где их сжимают в сжатые данные.

На этапе 380 менеджер 241 сжатия направляет сжатые данные для записи. Это может содержать запись сжатых данных непосредственно в флэш-память 112. Это может содержать также запись сжатых данных, соответствующих запросу ввода/вывода в буфер 260 или в периферийную память 270. Это может также содержать запись сжатых данных, соответствующих запросу ввода/вывода, в буфер 260 и затем, после превышения порога буфера, запись сжатых данных в флэш-память 112 или в периферийную память 270. Как здесь описано ранее, это может содержать также принятие решения относительно избыточных, повторных или перекрывающихся вариантов сжатых данных, которые записывают в буфер 260. Затем это ответвление блок-схемы 300 заканчивается на этапе 390.

Для ускорения работы компьютера для пользователя обычно используют такие приложения, как предварительный поиск и индексация поиска (упомянутые здесь ранее). Эти приложения обычно увеличивают количество считываний из флэш-памяти 112, но могут также увеличивать количество записей в флэш-память 112, что обусловлено обновлениями, записываемыми в соответствующий им индекс или файлы базы данных. Это является увеличением записей по отношению к обычному уровню, который испытывает флэш-память 112 без использования указанных технологий. В одном варианте осуществления управление данными операций записи большого объема, соответствующим файлам приложений предварительной выборки и/или индексации поиска, осуществляют подобно сжатию и восстановлению запросов ввода/вывода страничной организации памяти, что проиллюстрировано блок-схемой 300 фиг.3.

Фиг.4 изображает один возможный вариант действий управления буферизацией, выполняемых согласно варианту осуществления представленной технологии. На фиг.4 изображен менеджер 243 буфера, управляющий буфером 260, таким как буфер вида FIFO («первый вошел, первый вышел»). Как изображено на фиг.4, последовательные записи в буфер 260 организуют в очередь слева направо. При заполнении буфера 260 или при превышении обозначенного порога буфера буфер 260 освобождают и записывают в флэш-память 112. Одним возможным вариантом порога буфера является истечение таймера, соответствующего буферу 260. Другим возможным вариантом порога буфера является превышение предварительно определенного уровня заполнения буфера 260. Затем организованные в очередь записи 410 записывают в порядке поступления в ячейки (421, 422, 423, 424, 425, 426, 427) флэш-памяти 112. Как видно, это приводит к двум записям в ячейке 421, одной записи в ячейке 422, трем записям в ячейке 424 и одной записи в ячейке 426. В одном варианте осуществления посредством принятия решения относительно избыточных, повторных или перекрывающихся вариантов данных (как описано ранее), уменьшают общее количество записей в флэш-память 112, обеспечивая возможность передачи блока данных в флэш-память 112 в одной операции записи вместо нескольких операций записи. В таком варианте осуществления операцию FIFO немного изменяют для обеспечения возможности принятия решения относительно данных внутри буфера 260.

Фиг.5 изображает другой возможный вариант действий управления буферизацией, выполняемых согласно варианту осуществления представленной технологии. На фиг.5 изображен менеджер 243 буфера, управляющий буфером 260, таким как буфер вида корзины. Как изображено на фиг.5, буфер 260 разделен на корзины (521, 522, 523, 524, 525, 526, 527), в которых хранятся записи между определенными смещениями внутри флэш-памяти 112 (например, определенной ячейке, или иначе определенном диапазоне адресов, которые могут существовать внутри ячейки или могут быть распространены по нескольким ячейкам флэш-памяти 112).

При приеме записи для флэш-памяти 112 менеджер 243 буфера размещает запись в соответствующую корзину для выделенного диапазона смещения памяти. Если корзины для записи не существует, то менеджер 243 буфера начинает новую корзину для записей с подобными смещениями, и затем операцию записи буферизуют в этой новой корзине. Перехваченные запросы ввода/вывода, которые определяют другие операции записи внутри диапазона корзины, должны быть сгруппированы вместе в одной корзине. При выполнении буферизации менеджер 243 буфера также принимает решение относительно повторных и избыточных данных внутри каждой корзины, так как описано ранее.

При заполнении корзины или при превышении порога буфера накопленные в корзине записи записывают группой в соответствующей ячейке или ячейках (421-427), которые содержат смещения, назначенные для определенной корзины. Одним возможным вариантом превышаемого порога буфера является предварительно определенный уровень заполнения, достигаемый определенной корзиной или буфером 260 в целом. Другим возможным вариантом превышаемого порога буфера является истечение таймера, соответствующего буферу 260 или определенной корзине или совокупности корзин в буфере 260. На фиг.5 опустошение буфера 260 приводит к трем записям из корзины 521 в ячейку 421, двум записям из корзины 522 в ячейку 422, одной записи из корзины 523 в ячейку 423, одной записи из корзины 524 в ячейку 424 и одной записи из корзины 526 в ячейку 426. Как показывает сравнение фиг.4 и фиг.5, способ буферизации с использованием корзины является более гранулированным, чем способ буферизации FIFO, так как в нем сохраняют большее количество записей для определенной ячейки или участка ячейки, и может обеспечивать возможность более детальной разборки записей перед их передачей, чем способ буферизации FIFO.

Возможные способы функционирования

Далее подробно изложено действие нескольких возможных способов функционирования вариантов осуществления представленной технологии продления срока службы флэш-памяти. Фиг.6 и фиг.7 представляют блок-схемы 600 и 700, каждая из которых иллюстрирует возможные этапы, используемые в различных вариантах осуществления представленной технологии продления срока службы флэш-памяти. Блок-схемы 600 и 700 содержат процессы, которые в различных вариантах осуществления выполняет процессор под управлением инструкций, считываемых компьютером и выполняемых компьютером. Инструкции, считываемые компьютером и выполняемые компьютером, размещены, например, в функциях хранилища данных, таком как энергозависимая память 108, используемая компьютером, энергонезависимая память 110, используемая компьютером, периферийный носитель информации 102, считываемый компьютером, и/или флэш-память 112 с фиг.1. Инструкции, считываемые компьютером и выполняемые компьютером, применяют для управления или для функционирования, например, совместно с процессором 106A и/или процессорами 106A, 106B, и 106C фиг.1. Хотя в блок-схемах 600 и 700 раскрыты определенные этапы, такие этапы являются возможными вариантами. То есть варианты осуществления хорошо соответствуют выполнению различных других этапов или вариантов этапов, приведенных в блок-схемах 600 и 700. Ясно, что этапы в блок-схемах 600 и 700 могут быть выполнены в порядке, отличном от представленного, и что могут быть выполнены не все этапы блок-схем 600 и 700.

Фильтрация операций ввода/вывода флэш-памяти

Фиг.6 - блок-схема 600 операций, выполняемых согласно одному варианту осуществления представленной технологии продления срока службы флэш-памяти. Более конкретно, фиг.6 иллюстрирует блок-схему 600 возможного варианта осуществления реализуемого компьютером способа фильтрации операций ввода/вывода флэш-памяти, например, такой как флэш-память 112. Элементы блок-схемы 600 пояснены ниже, в соответствии с элементами фиг.1, фиг.2 и фиг.3.

В одном варианте осуществления этап 610 блок-схемы 600 содержит прием запроса ввода/вывода, который направлен в флэш-память. Как здесь описано посредством различных возможных вариантов, в одном варианте осуществления он содержит прием фильтром 210 флэш-памяти запроса ввода/вывода, который направлен в флэш-память, например, такую как флэш-память 112.

В одном варианте осуществления этап 620 блок-схемы 600 содержит определение того, соответствует ли запрос ввода/вывода, принятый на этапе 610, операции записи большого объема. Это определение делает определитель 220 сущности ввода/вывода. Здесь были описаны несколько конкретных возможных вариантов операций записи большого объема. Эти возможные варианты содержат запросы ввода/вывода, относящиеся к файлам страничного обмена, предварительной выборке, индексации и записям в регистр. Ясно, что это только несколько из многих запросов ввода/вывода, которые соответствуют операциям записи большого объема, и которые могут быть идентифицированы определителем 220 сущности ввода/вывода так, как здесь описано. Возможный вариант функционирования определителя 220 сущности ввода/вывода в отношении определения запросов ввода/вывода, соответствующих запросам ввода/вывода страничной организации памяти, проиллюстрирован возможным вариантом этапа 310 блок-схемы 300. Ясно, что определитель 220 сущности ввода/вывода 220 функционирует подобным образом при оценке принятого запроса ввода/вывода для любой из нескольких возможных операций записи большого объема.

В одном варианте осуществления в ответ на определение, что запрос ввода/вывода соответствует операции записи большого объема, этап 630 блок-схемы 600 содержит выбор действия управления вводом/выводом флэш-памяти для выполнения. В одном варианте осуществления этот выбор выполняет селектор 230 управления вводом/выводом флэш-памяти так, как описано здесь ранее. Например, селектор 230 управления вводом/выводом флэш-памяти выбирает действие управления для выполнения частично на основе сущности запроса ввода/вывода и частично на основе доступных менеджеров (241, 242, 243, 244) ввода/вывода, с которыми сконфигурирован фильтр 210 флэш-памяти.

Соответственно, как описано посредством варианта осуществления фильтра 210 флэш-памяти, представленного в блок-схеме 300, селектор 230 управления вводом/выводом флэш-памяти выбирает действие управления флэш-памятью из группы действий управления, состоящей из управления сжатием данных, записываемых в результате запроса ввода/вывода, и управления восстановлением сжатых данных, считываемых в результате запроса ввода/вывода.

Подобным образом, в варианте осуществления фильтра 210 флэш-памяти, как иллюстрирует фиг.2, селектор 230 управления вводом/выводом флэш-памяти выбирает действие управления флэш-памятью из группы действий управления, состоящей из: управления сжатием данных, записываемых в результате запроса ввода/вывода, управления восстановлением сжатых данных, считываемых в результате запроса ввода/вывода, управления буферизацией запроса ввода/вывода и управления переадресацией запроса ввода/вывода в периферийный твердотельный накопитель на дисках.

Ясно, что в некоторых вариантах осуществления, как здесь описано, выбранное действие управления вводом/выводом для управления сжатием данных, записываемых в результате запроса ввода/вывода, содержит запись сжатых данных запроса ввода/вывода в буфер. Это может быть выполнено посредством записи менеджера 241 сжатия сжатых данных в буфер 260, или посредством доступа менеджером 241 сжатия к менеджеру 243 буфера и его использования для записи сжатых данных в буфер 260. Дополнительно, после записи сжатых данных в буфер 260 менеджер 241 сжатия может дополнительно осуществить управление для записи сжатых данных из буфера 260 в флэш-память 112.

Также ясно, что в некоторых вариантах осуществления, как здесь описано, выбранное действие управления вводом/выводом для управления буферизацией запроса ввода/вывода дополнительно содержит запись данных, соответствующих запросу ввода/вывода, из буфера в периферийную память. Это может быть выполнено посредством управления, осуществляемого менеджером 243 буфера, для записи данных из буфера 260 в периферийную память 270. Дополнительно, ясно, что в таком варианте осуществления периферийной памятью 270 может быть твердотельный накопитель на дисках, такой как карта памяти или флэш-память USB.

Когда для выбора доступны несколько и, возможно, перекрывающихся действий управления, селектор 230 управления вводом/выводом флэш-памяти делает выбор на основе сущности запроса ввода/вывода и сравнения сущности с предварительно определенной совокупностью правил. Например, в одном таком варианте осуществления все запросы записи ввода/вывода страничной организации памяти передают в менеджер 241 сжатия, так чтобы данные файла страничного обмена, соответствующего операционной системе, могли быть сжаты, в то время как все запросы считывания ввода/вывода страничной организации памяти передают в менеджер 242 восстановления, так чтобы данные файла страничного обмена могли быть считаны и восстановлены. Подобным образом в таком варианте осуществления, основанном на правилах, запросы записи ввода/вывода, соответствующие операции индексации, передают в менеджер 241 сжатия, так чтобы данные, соответствующие файлу операции индексации, могли быть сжаты перед записью. Подобным образом, в таком варианте осуществления, основанном на правилах, запросы записи ввода/вывода, соответствующие операции предварительной выборки, передают в менеджер 241 сжатия, так чтобы данные файла, соответствующего операции индексации, могли быть сжаты перед записью. Дополнительно, в одном таком варианте осуществления, основанном на правилах, все запросы ввода/вывода файла системного реестра передают в менеджер 243 буфера, хотя все остальные операции записи большого объема передают в менеджер 244 переадресации для переадресации, если доступна периферийная память 270.

В одном варианте осуществления в ответ на определение, что запрос ввода/вывода не соответствует операции записи большого объема, этап 640 блок-схемы 600 содержит передачу запроса ввода/вывода в флэш-память. После предыдущего возможного варианта определитель 220 сущности ввода/вывода фильтра 210 флэш-памяти при определении, что запрос ввода/вывода не соответствует операции записи большого объема, передает запрос ввода/вывода в флэш-память 112.

Продление срока службы флэш-памяти, используемой в качестве первичной памяти для операционной системы.

Фиг.7 - блок-схема 700 операций, выполняемых согласно одному варианту осуществления представленной технологии продления срока службы флэш-памяти. Более конкретно, фиг.7 иллюстрирует блок-схему 700 возможного способа продления срока службы флэш-памяти, используемой в качестве первичной памяти для операционной системы. Ниже пояснены элементы блок-схемы 700 в соответствии с элементами фиг.1, фиг.2 и фиг.3.

В одном варианте осуществления этап 710 блок-схемы 700 содержит прием запроса ввода/вывода, который направлен в флэш-память из операционной системы. Как здесь описано посредством различных возможных вариантов, в одном варианте осуществления он содержит прием фильтром 210 флэш-памяти запроса ввода/вывода, который направлен в флэш-память, например, такую как флэш-память 112. В одном варианте осуществления операционная система использует флэш-память 112 в качестве средства первичной памяти для хранения действий, выполняемых совместно с работой операционной системы.

В одном варианте осуществления этап 720 блок-схемы 700 содержит определение сущности принятого запроса ввода/вывода. Например, в одном варианте осуществления он содержит определение, содержит ли запрос ввода/вывода данные, соответствующие операции записи большого объема, например, такие как: данные, относящиеся к файлу страничного обмена операционной системы, данные, относящиеся к операции предварительной выборки, выполняемой операционной системой, данные, относящиеся к файлу системного реестра операционной системы, и/или данные, относящиеся к операции индексирования, выполняемой операционной системой. В одном варианте осуществления, как здесь описано, определитель 220 сущности ввода/вывода определяет, содержит ли запрос ввода/вывода данные, соответствующие такой операции записи большого объема.

В одном варианте осуществления этап 730 блок-схемы 700 содержит выполнение действия управления вводом/выводом флэш-памяти на основе сущности запроса ввода/вывода, так чтобы уменьшить количество операций записи, выполняемых в флэш-память операционной системой при одновременном поддержании целостности операционной системы. Как здесь описано, в одном варианте осуществления он содержит сжатие данных, соответствующих операции записи большого объема. Целостность операционной системы поддерживают посредством точного управления сжатием данных, так чтобы не были потеряны данные. В одном варианте осуществления целостность операционной системы также защищают посредством обеспечения сохранения данных, необходимых для функционирования операционной системы, только в флэш-памяти 112 и не переадресуют их в периферийную память 270, где они могут быть легко потеряны при удалении периферийной памяти 270 из вычислительной системы (например, при удалении портативной флэш-памяти). Дополнительно, в одном варианте осуществления целостность операционной системы защищают посредством шифрования сжатых данных, в частности, в случаях, где их переадресуют для хранения в периферийную память 270, которую легко удалить из вычислительной системы.

В одном варианте осуществления селектор 230 управления вводом/выводом флэш-памяти выбирает менеджер 241 сжатия. Менеджер 241 сжатия выполняет указанное сжатие данных, соответствующих операции записи большого объема, направляя данные, соответствующие операции записи большого объема, в блок 250 сжатия/восстановления данных, где данные сжимают в сжатые данные. В одном варианте осуществления это может также содержать шифрование сжатых данных. Блок-схема 300 описывает одну реализацию такого варианта осуществления.

В одном варианте осуществления сжатые данные этапа 730 записывают в периферийную память вместо флэш-памяти. Например, в одном варианте осуществления после сжатия данных менеджер 241 сжатия управляет переадресацией сжатых данных для записи сжатых данных в периферийную память 270 вместо флэш-памяти 112. Менеджер 241 сжатия может выполнять эту переадресацию посредством доступа к блоку 244 управления переадресацией и его использования. В одном варианте осуществления, как здесь описано, периферийной памятью 270 может быть твердотельный накопитель на дисках, такой как карта памяти или портативная флэш-память.

В одном варианте осуществления сжатые данные этапа 730 записывают в буфер вместо флэш-памяти. Например, в одном варианте осуществления после сжатия данных, соответствующих запросу ввода/вывода, менеджер 241 сжатия управляет переадресацией и/или буферизацией сжатых данных для записи сжатых данных в буфер 260 вместо флэш-памяти 112. Менеджер 241 сжатия может выполнять эту переадресацию и/или буферизацию посредством доступа к менеджеру 243 буфера и его использования и/или посредством доступа к менеджеру 244 переадресации и его использования или, иначе, включая в себя подобные функциональные возможности.

В одном варианте осуществления запись сжатых данных в буфер также содержит принятие решения относительно повторного, избыточного или перекрывающегося варианта данных для изменения в обновленные сжатые данные; затем, в ответ на превышение порога буфера, запись обновленных сжатых данных из буфера в флэш-память. В одном варианте осуществления, как здесь описано, менеджер 241 сжатия осуществляет доступ к функциональным возможностям блока 243 управления буфером или содержит их для принятия решения относительно сжатых данных, которые хранятся в буфере 260, и для записи данных, относительно которых принято решение, из буфера 260 в флэш-память 112. В одном варианте осуществления вместо записи данных, относительно которых принято решение, в флэш-память 112, данные, относительно которых принято решение, могут быть переадресованы в периферийную память 270, если периферийная память 270 доступна и если данные, относительно которых принято решение, не являются необходимыми для функционирования операционной системы.

Соответственно описаны возможные варианты осуществления представленной технологии продления срока службы флэш-памяти. Хотя рассматриваемый предмет был описан на языке, определенном для структурных признаков и/или методологических действий, понятно, что не обязательно рассматриваемый предмет, определенный в приложенной формуле изобретения, ограничен определенными признаками или действиями, описанными выше. Скорее, определенные признаки и действия, описанные выше, раскрыты в виде возможных видов реализации формулы изобретения.

Класс G06F13/14 управление запросами для взаимных отсылок или переноса

способ синхронизации доступа к разделяемым ресурсам вычислительной системы и обнаружения и устранения повисших блокировок с использованием блокировочных файлов -  патент 2526282 (20.08.2014)
способ и устройство для обеспечения потоков на основе идентификатора через шину pci express -  патент 2509348 (10.03.2014)
система и способ описания приложений для обеспечения управляемости и эффективной масштабируемой установки -  патент 2502125 (20.12.2013)
соединения и динамическое конфигурирование интерфейсов для мобильных телефонов и многофункциональных устройств -  патент 2497186 (27.10.2013)
система и способ улучшения работы медиасервера -  патент 2465637 (27.10.2012)
устройство для вывода информации -  патент 2451323 (20.05.2012)
устройство управления соединением источника и приемника данных при сетевом обмене данных -  патент 2434271 (20.11.2011)
сервер сообщений и способ уведомления пользователя о поступлении электронного сообщения -  патент 2431888 (20.10.2011)
сетевая система -  патент 2419845 (27.05.2011)
многомерная база данных и способ управления многомерной базой данных -  патент 2389066 (10.05.2010)
Наверх