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

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

Info

Publication number
RU2451993C2
RU2451993C2 RU2009129412/08A RU2009129412A RU2451993C2 RU 2451993 C2 RU2451993 C2 RU 2451993C2 RU 2009129412/08 A RU2009129412/08 A RU 2009129412/08A RU 2009129412 A RU2009129412 A RU 2009129412A RU 2451993 C2 RU2451993 C2 RU 2451993C2
Authority
RU
Russia
Prior art keywords
request
flash
flash memory
data
control
Prior art date
Application number
RU2009129412/08A
Other languages
English (en)
Other versions
RU2009129412A (ru
Inventor
Дилеш ДХОКИА (US)
Дилеш ДХОКИА
Мукеш КАРКИ (US)
Мукеш КАРКИ
Майкл Р. ФОРТИН (US)
Майкл Р. ФОРТИН
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2009129412A publication Critical patent/RU2009129412A/ru
Application granted granted Critical
Publication of RU2451993C2 publication Critical patent/RU2451993C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/463File
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

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

Description

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

Claims (18)

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, содержащая соединение с буфером, причем буфер сконфигурирован для приема запроса ввода/вывода при буферизации запроса ввода/вывода фильтром флэш-памяти.
RU2009129412/08A 2007-01-31 2008-01-31 Продление срока службы флэш-памяти RU2451993C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/700,443 US8560760B2 (en) 2007-01-31 2007-01-31 Extending flash drive lifespan
US11/700,443 2007-01-31

Publications (2)

Publication Number Publication Date
RU2009129412A RU2009129412A (ru) 2011-02-10
RU2451993C2 true RU2451993C2 (ru) 2012-05-27

Family

ID=39669223

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2009129412/08A RU2451993C2 (ru) 2007-01-31 2008-01-31 Продление срока службы флэш-памяти

Country Status (9)

Country Link
US (1) US8560760B2 (ru)
EP (1) EP2108151B1 (ru)
JP (1) JP5452233B2 (ru)
KR (1) KR101465816B1 (ru)
CN (1) CN101595461B (ru)
BR (1) BRPI0806587A2 (ru)
RU (1) RU2451993C2 (ru)
TW (1) TWI528378B (ru)
WO (1) WO2008095134A1 (ru)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8111707B2 (en) * 2007-12-20 2012-02-07 Packeteer, Inc. Compression mechanisms for control plane—data plane processing architectures
JP2009087509A (ja) * 2007-10-03 2009-04-23 Toshiba Corp 半導体記憶装置
US9183133B2 (en) * 2007-11-28 2015-11-10 Seagate Technology Llc System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
US8473946B2 (en) 2008-07-03 2013-06-25 Vmware, Inc. Efficient recording and replaying of non-deterministic instructions in a virtual machine and CPU therefor
US20110035540A1 (en) * 2009-08-10 2011-02-10 Adtron, Inc. Flash blade system architecture and method
JP2011128792A (ja) 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
TWI451425B (zh) * 2011-04-25 2014-09-01 Silicon Motion Inc 快閃記憶裝置及其資料保護方法
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US9298252B2 (en) 2012-04-17 2016-03-29 SMART Storage Systems, Inc. Storage control system with power down mechanism and method of operation thereof
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US10565099B2 (en) * 2012-12-28 2020-02-18 Apple Inc. Methods and apparatus for compressed and compacted virtual memory
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
JP6069031B2 (ja) 2013-03-04 2017-01-25 株式会社日立製作所 計算機及びメモリ管理方法
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9317211B2 (en) 2014-05-02 2016-04-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method of life management for low endurance SSD NAND devices used as secondary cache
US9811459B1 (en) * 2014-06-16 2017-11-07 Amazon Technologies, Inc. Data storage optimization for non-volatile memory
US10223000B2 (en) * 2015-05-21 2019-03-05 International Business Machines Corporation Data compression for grid-oriented storage systems
US11461010B2 (en) 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
US10282324B2 (en) 2015-07-13 2019-05-07 Samsung Electronics Co., Ltd. Smart I/O stream detection based on multiple attributes
CN106527959B (zh) * 2015-09-10 2019-07-26 阿里巴巴集团控股有限公司 刷新磁盘输入输出请求的处理方法及设备
CN109074269B (zh) * 2016-07-08 2022-08-05 惠普发展公司,有限责任合伙企业 确定设备磨损率
US10268386B2 (en) * 2016-12-28 2019-04-23 Western Digital Technologies, Inc. Data storage device including temporary storage locations
CN115658625B (zh) * 2022-12-12 2023-03-14 北京象帝先计算技术有限公司 数据解压系统、图形处理系统、装置、设备及解压方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2178949C2 (ru) * 1996-10-04 2002-01-27 Моторола, Инк. Фильтрующий сопроцессор
RU2189630C1 (ru) * 2001-11-21 2002-09-20 Бабаян Борис Арташесович Способ фильтрации межпроцессорных запросов в многопроцессорных вычислительных системах и устройство для его осуществления

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490260A (en) 1990-12-14 1996-02-06 Ceram, Inc. Solid-state RAM data storage for virtual memory computer using fixed-sized swap pages with selective compressed/uncompressed data store according to each data size
DE19540915A1 (de) * 1994-11-10 1996-05-15 Raymond Engineering Redundante Anordnung von Festkörper-Speicherbausteinen
US5568423A (en) * 1995-04-14 1996-10-22 Unisys Corporation Flash memory wear leveling system providing immediate direct access to microprocessor
JPH0944381A (ja) * 1995-07-31 1997-02-14 Toshiba Corp データ格納方法およびデータ格納装置
US5835935A (en) * 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
US6711666B1 (en) * 1995-11-29 2004-03-23 Zf Micro Solutions, Inc. IBM PC compatible multi-chip module
US5787484A (en) 1996-08-08 1998-07-28 Micron Technology, Inc. System and method which compares data preread from memory cells to data to be written to the cells
US6418506B1 (en) * 1996-12-31 2002-07-09 Intel Corporation Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array
DE69719377D1 (de) 1997-03-21 2003-04-03 Canal & Technologies Paris Speicherorganisation eines rechners und verfahren dafür
US6154788A (en) * 1997-04-25 2000-11-28 Simple Technology, Inc. Multi-function module incorporating flash memory having additional controller adapted to configure the data from the memory that is to be provided to the external source
US6704838B2 (en) 1997-10-08 2004-03-09 Seagate Technology Llc Hybrid data storage and reconstruction system and method for a data storage device
US6189069B1 (en) 1998-02-17 2001-02-13 Microsoft Corporation Optimized logging of data elements to a data storage device
JP2000036947A (ja) 1998-07-17 2000-02-02 Mitsubishi Electric Corp 映像蓄積配信表示装置
JP2000201333A (ja) 1999-01-05 2000-07-18 Matsushita Electric Ind Co Ltd 多重化通信装置
US6145069A (en) 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices
US8078794B2 (en) * 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
US20050160218A1 (en) * 2004-01-20 2005-07-21 Sun-Teck See Highly integrated mass storage device with an intelligent flash controller
US7509420B2 (en) * 2000-02-18 2009-03-24 Emc Corporation System and method for intelligent, globally distributed network storage
US20030046396A1 (en) * 2000-03-03 2003-03-06 Richter Roger K. Systems and methods for managing resource utilization in information management environments
US20020174227A1 (en) * 2000-03-03 2002-11-21 Hartsell Neal D. Systems and methods for prioritization in information management environments
US6883044B1 (en) * 2000-07-28 2005-04-19 Micron Technology, Inc. Synchronous flash memory with simultaneous access to one or more banks
US7689510B2 (en) * 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
JP2002132454A (ja) 2000-10-19 2002-05-10 Xaxon R & D Corp 圧縮伸張装置を備えた半導体ディスク装置
US6681506B2 (en) * 2000-10-27 2004-01-27 The Procter & Gamble Company Process for the ironing of fabrics, and refill cartridge for irons
EP1205838A3 (en) 2000-11-07 2007-10-10 Matsushita Electric Industrial Co., Ltd. Carryable memory media, portable information terminal using the same and method for managing files therein
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US7454446B2 (en) * 2001-08-31 2008-11-18 Rocket Software, Inc. Techniques for storing data based upon storage policies
KR100393619B1 (ko) * 2001-09-07 2003-08-02 삼성전자주식회사 휴대 단말기의 메모리 장치 및 그 제어방법
KR100454119B1 (ko) * 2001-10-24 2004-10-26 삼성전자주식회사 캐쉬 기능을 갖는 불 휘발성 반도체 메모리 장치 및 그것의 프로그램, 읽기, 그리고 페이지 카피백 방법들
US7127550B1 (en) * 2001-10-31 2006-10-24 Sandisk Corporation Multi-module simultaneous program, erase test, and performance method for flash memory
US6681309B2 (en) * 2002-01-25 2004-01-20 Hewlett-Packard Development Company, L.P. Method and apparatus for measuring and optimizing spatial segmentation of electronic storage workloads
US20050036387A1 (en) * 2002-04-24 2005-02-17 Seal Brian K. Method of using flash memory for storing metering data
JP4063615B2 (ja) * 2002-08-30 2008-03-19 Necエレクトロニクス株式会社 不揮発性メモリおよびその書き込み処理方法
US7020758B2 (en) * 2002-09-18 2006-03-28 Ortera Inc. Context sensitive storage management
US6993603B2 (en) * 2002-12-09 2006-01-31 Microsoft Corporation Managed file system filter model and architecture
US7814128B2 (en) 2003-05-30 2010-10-12 Symantec Operating Corporation Multi-volume file support
TWI220959B (en) 2003-06-05 2004-09-11 Carry Computer Eng Co Ltd Storage device with optimized compression management mechanism
ITVA20030025A1 (it) 2003-07-17 2005-01-18 Lamberti Spa Depolimerizzazione enzimatica di carbossimetilcellulosa e relativi prodotti.
KR100546348B1 (ko) * 2003-07-23 2006-01-26 삼성전자주식회사 플래시 메모리 시스템 및 그 데이터 저장 방법
US6876579B2 (en) * 2003-08-04 2005-04-05 Phison Electronics Corp. Method writing data to a large block of a flash memory cell
KR101087906B1 (ko) 2003-11-18 2011-11-30 파나소닉 주식회사 파일기록장치
US20090193184A1 (en) * 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
CN100538900C (zh) * 2003-12-31 2009-09-09 深圳市朗科科技股份有限公司 闪存介质中的数据操作方法
JP4568502B2 (ja) * 2004-01-09 2010-10-27 株式会社日立製作所 情報処理システムおよび管理装置
WO2005096220A1 (ja) * 2004-03-31 2005-10-13 Matsushita Electric Industrial Co., Ltd. メモリカード及びメモリカードシステム
US8352697B2 (en) * 2004-05-17 2013-01-08 Sandisk Il Ltd. Method of managing files for optimal performance
US7702848B2 (en) * 2004-06-10 2010-04-20 Marvell World Trade Ltd. Adaptive storage system including hard disk drive with flash interface
EP1759284A4 (en) * 2004-06-15 2007-07-25 Ti Technologies Ltd A New Zeal METHOD AND SYSTEM FOR INITIALIZING A COMPUTER SYSTEM
US20060069896A1 (en) * 2004-09-27 2006-03-30 Sigmatel, Inc. System and method for storing data
US20060117018A1 (en) 2004-11-30 2006-06-01 Microsoft Corporation Method and system for caching remote files locally
US7087953B2 (en) * 2004-12-03 2006-08-08 Aplus Flash Technology, Inc. Unified non-volatile memory device and method for integrating NOR and NAND-type flash memory and EEPROM device on a single substrate
KR100684942B1 (ko) * 2005-02-07 2007-02-20 삼성전자주식회사 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
KR100590388B1 (ko) * 2005-03-10 2006-06-19 주식회사 하이닉스반도체 멀티-플레인 타입 플래쉬 메모리 장치와, 그 프로그램 동작및 리드 동작 제어 방법
KR100626392B1 (ko) * 2005-04-01 2006-09-20 삼성전자주식회사 읽기 속도를 향상시킬 수 있는 플래시 메모리 장치
KR100704037B1 (ko) * 2005-04-15 2007-04-04 삼성전자주식회사 이종의 비휘발성 메모리를 가지는 데이터 저장장치와 그의구동 방법
JP2007004710A (ja) 2005-06-27 2007-01-11 Nec Corp ストレージアクセス方式、データ転送装置、ストレージアクセス方法、及びプログラム
US7747812B2 (en) * 2005-12-22 2010-06-29 Pitney Bowes Inc. Method for manipulating state machine storage in a small memory space
US8286159B2 (en) * 2005-12-22 2012-10-09 Alan Joshua Shapiro Method and apparatus for gryphing a data storage medium
US7555575B2 (en) * 2006-07-27 2009-06-30 Hitachi, Ltd. Method and apparatus for migrating data between storage volumes of different data pattern
US20080228998A1 (en) * 2007-03-16 2008-09-18 Spansion Llc Memory storage via an internal compression algorithm

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2178949C2 (ru) * 1996-10-04 2002-01-27 Моторола, Инк. Фильтрующий сопроцессор
RU2189630C1 (ru) * 2001-11-21 2002-09-20 Бабаян Борис Арташесович Способ фильтрации межпроцессорных запросов в многопроцессорных вычислительных системах и устройство для его осуществления

Also Published As

Publication number Publication date
RU2009129412A (ru) 2011-02-10
TWI528378B (zh) 2016-04-01
TW200841353A (en) 2008-10-16
CN101595461B (zh) 2012-07-04
WO2008095134A1 (en) 2008-08-07
EP2108151B1 (en) 2014-09-24
KR20090117919A (ko) 2009-11-16
US20080183918A1 (en) 2008-07-31
US8560760B2 (en) 2013-10-15
EP2108151A1 (en) 2009-10-14
KR101465816B1 (ko) 2014-11-26
BRPI0806587A2 (pt) 2014-05-13
JP2010518491A (ja) 2010-05-27
EP2108151A4 (en) 2012-12-26
CN101595461A (zh) 2009-12-02
JP5452233B2 (ja) 2014-03-26

Similar Documents

Publication Publication Date Title
RU2451993C2 (ru) Продление срока службы флэш-памяти
US7930499B2 (en) Method to accelerate block level snapshots in archiving storage systems
JP6870246B2 (ja) ストレージ装置、及びストレージ制御装置
KR100684942B1 (ko) 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
CN102150144B (zh) 使用写入配置快照的动态存储分层的方法和系统
US6941420B2 (en) Log-structure array
CN102576293B (zh) 固态存储设备和分层存储系统中的数据管理
US8131927B2 (en) Fast accessible compressed thin provisioning volume
US9229870B1 (en) Managing cache systems of storage systems
US20140244935A1 (en) Storage system capable of managing a plurality of snapshot families and method of snapshot family based read
US20030236944A1 (en) System and method for reorganizing data in a raid storage system
JP2009093571A (ja) 記憶制御装置、記憶制御装置のデータアーカイブ方法及びストレージシステム
US7743209B2 (en) Storage system for virtualizing control memory
KR20100021868A (ko) 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
US7032093B1 (en) On-demand allocation of physical storage for virtual volumes using a zero logical disk
JP2019028954A (ja) ストレージ制御装置、プログラム、及び重複排除方法
JP2010237907A (ja) ストレージ装置および記録方法
KR101153688B1 (ko) 데이터 페이지들에 대해 무효화 기회를 부여하는 방법 및 이를 위한 낸드 플래시 메모리 시스템
JP3111912B2 (ja) ディスクキャッシュ制御方式
US10608670B2 (en) Control device, method and non-transitory computer-readable storage medium
KR100541642B1 (ko) 플래시 메모리의 데이터 관리 장치 및 방법
EP4235433A1 (en) Persistent memory with cache coherent interconnect interface
JPH05257810A (ja) 情報記録再生装置および情報記録方法
JP3376316B2 (ja) ディスクアレイ装置及びそれに用いる高速通信方法並びにその制御プログラムを記録した記録媒体

Legal Events

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

Effective date: 20150526

MM4A The patent is invalid due to non-payment of fees

Effective date: 20200201