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

Иллюстрации

Показать все

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

Реферат

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

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

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