RU2636107C1 - Method of recording data to digital information drive on basis of nand type flash-memory - Google Patents

Method of recording data to digital information drive on basis of nand type flash-memory Download PDF

Info

Publication number
RU2636107C1
RU2636107C1 RU2016142343A RU2016142343A RU2636107C1 RU 2636107 C1 RU2636107 C1 RU 2636107C1 RU 2016142343 A RU2016142343 A RU 2016142343A RU 2016142343 A RU2016142343 A RU 2016142343A RU 2636107 C1 RU2636107 C1 RU 2636107C1
Authority
RU
Russia
Prior art keywords
block
data
pages
request
journal
Prior art date
Application number
RU2016142343A
Other languages
Russian (ru)
Inventor
Сергей Александрович Образцов
Ксения Петровна Коршунова
Алексей Владимирович Воропаев
Евгений Игоревич Чукляев
Илья Игоревич Чукляев
Original Assignee
Общество с ограниченной ответственностью "Лаборатория информационно-измерительной и преобразовательной техники"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Лаборатория информационно-измерительной и преобразовательной техники" filed Critical Общество с ограниченной ответственностью "Лаборатория информационно-измерительной и преобразовательной техники"
Priority to RU2016142343A priority Critical patent/RU2636107C1/en
Application granted granted Critical
Publication of RU2636107C1 publication Critical patent/RU2636107C1/en

Links

Images

Classifications

    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
    • 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]

Abstract

FIELD: information technology.
SUBSTANCE: at the beginning of the user's session with the drive, the user's script is automatically selected from the set of suggestions. Logging is performed only for the most frequently overwritten pages, determined by the script selected at the beginning of the user's session with the drive. The merge of data block and the corresponding log block is performed when a request is received to read the logging page from this block. For operations of pages overwriting that are not related to logged, a "deferred write" of blocks is performed, which consists of writing information to the buffer block instead of the address block until the current address block number is changed or the first data reading request.
EFFECT: extending life of flash memory and increasing the speed of recording information on the media.
7 dwg

Description

Область техники, к которой относится изобретениеFIELD OF THE INVENTION

Изобретение относится к вычислительной технике и представляет собой способ записи данных на накопитель цифровой информации на базе flash-памяти типа NAND, отличающийся от известных аналогов выбором сценария работы пользователя с накопителем, определяющего наиболее часто перезаписываемые страницы, журналированием наиболее часто перезаписываемых страниц, выполнением слияния журнального блока и соответствующего блока данных при запросе на чтение, а также «отложенной записью» блоков для операций перезаписи страниц, не относящихся к журналируемым. Технический результат заключается в продлении срока эксплуатации flash-памяти и увеличении скорости записи информации на носитель за счет сокращения количества операций блочного стирания, а также увеличении скорости считывания информации.The invention relates to computer technology and is a method of writing data to a digital information storage device based on a NAND flash-memory, which differs from the known analogues by selecting a user script with a storage device that defines the most frequently rewritten pages, journaling the most frequently rewritten pages, and merging a journal block and the corresponding data block for a read request, as well as “deferred write” blocks for rewriting operations of pages not related to the journal sible. The technical result is to extend the life of the flash memory and increase the speed of writing information to the medium by reducing the number of block erase operations, as well as increasing the speed of reading information.

Уровень техникиState of the art

Твердотельные накопители информации на базе flash-памяти широко используются в различных электронных устройствах. Компактность, дешевизна, механическая прочность, низкое энергопотребление позволяют flash-накопителям оставаться одним из самых распространенных способов хранения и транспортировки цифровой информации.Solid-state flash storage devices are widely used in various electronic devices. Compactness, low cost, mechanical strength, low power consumption allow flash drives to remain one of the most common ways of storing and transporting digital information.

Технология flash-памяти типа NAND имеет ряд особенностей:NAND flash technology has a number of features:

1) ячейки памяти обеспечивают ограниченное количество циклов записи-стирания, после чего они приходят в негодность;1) memory cells provide a limited number of write-erase cycles, after which they become unusable;

2) доступ для записи или чтения возможен к произвольному числу ячеек, но стирание информации производится только для группы ячеек. Логические единицы чтения данных – страницы, которые объединены в блоки – единицы стирания. Запись данных, таким образом, осуществляется постранично, а стирание поблочно;2) access for writing or reading is possible to an arbitrary number of cells, but information is erased only for a group of cells. Logical units of reading data - pages that are combined into blocks - units of erasure. Thus, data is recorded per page, and erasure is block-by-block;

3) при перезаписи информации в уже используемую область памяти для обеспечения ее корректности, данный участок необходимо предварительно стереть, то есть в случае перезаписи нескольких страниц производится очищение целого блока. На операции перезаписи данных расходуется большое количество ресурсов (копирование неперезаписываемых страниц блока, стирание блока, запись новых и скопированных данных).3) when overwriting information in an already used memory area to ensure its correctness, this section must first be erased, that is, in case of overwriting several pages, the whole block is cleared. A large amount of resources are spent on data rewriting operations (copying unwritable block pages, erasing a block, recording new and copied data).

Эти особенности технологии flash-памяти накладывают ограничения на срок эксплуатации накопителей, а также на скорость записи информации.These features of flash-memory technology impose restrictions on the life of drives, as well as on the speed of recording information.

С целью решения этих проблем применяется концепция логических и физических адресов: для адресации информации со стороны операционной системы используются логические адреса, расположенные по порядку, а для доступа к физическому хранилищу данных – физические адреса. Соответствия логических и физических адресов устанавливаются в таблице, содержащей логические адреса и указатели на соответствующие им физические адреса.In order to solve these problems, the concept of logical and physical addresses is used: logical addresses are used in order to address information from the operating system, and physical addresses are used to access a physical data warehouse. Correspondence of logical and physical addresses are set in a table containing logical addresses and pointers to the corresponding physical addresses.

Для уменьшения количества операций блочного стирания, а следовательно, продления срока службы flash-накопителей, было предложено решение, заключающееся в следующем: при записи новой информации в занятый блок (перезапись), осуществляется запись в какой-либо неиспользуемый блок, а занятый блок очищается; затем вносятся изменения в таблицу соответствия логических и физических адресов (логический адрес первоначально адресованного блока назначается реально записанному блоку). При описанной выше перестановке блоков многократный доступ, направленный в один и тот же логический блок, в действительности производят в разные физические блоки, что делает возможным продление срока службы флэш-памяти, определяемого количеством выполненных в ней операций записи [патент RU2243588, МПК G06F 12/06, G06F 12/10, опубликован 27.12.2004].To reduce the number of block erase operations, and therefore, extend the life of flash drives, a solution was proposed consisting in the following: when new information is written to a busy block (overwriting), it is written to some unused block, and the busy block is cleared; then, changes are made to the correspondence table of logical and physical addresses (the logical address of the originally addressed block is assigned to the actually recorded block). With the permutation of the blocks described above, multiple access directed to the same logical block is actually performed in different physical blocks, which makes it possible to extend the service life of the flash memory, determined by the number of write operations performed in it [patent RU2243588, IPC G06F 12 / 06, G06F 12/10, published December 27, 2004].

Блок, из которого данные были удалены, теперь считается неиспользуемым блоком, то есть при следующей операции записи может быть задействован. Очевидным улучшением является идея учета количества осуществленных циклов записи-стирания для каждого физического блока – различные методы «выравнивания износа» (wear-leveling). В [заявка US20070050536, МПК G06F 12/00, опубликована 01.03.2007] очередной блок для записи выбирается из списка, упорядоченного по времени последнего стирания и/или по количеству выполненных ранее циклов записи блока. В [патент US6850443, МПК G11C 11/00, опубликован 01.02.2005] при обнаружении неравномерности износа, т.е. в случае, когда какие-либо физические блоки имеют большее количество циклов перезаписи, чем другие, эти блоки обмениваются информацией с наименее перезаписываемыми блоками, а в таблицу соответствия логических и физических адресов вносятся изменения, отражающие осуществленный обмен.The block from which the data was deleted is now considered an unused block, that is, it can be involved in the next write operation. An obvious improvement is the idea of taking into account the number of write-erase cycles performed for each physical block - various methods of “wear-leveling”. In [application US20070050536, IPC G06F 12/00, published March 1, 2007] the next block for recording is selected from a list sorted by the time of the last erasure and / or by the number of previously recorded recording cycles of the block. In [patent US6850443, IPC G11C 11/00, published 01.02.2005] upon detection of uneven wear, i.e. in the case when some physical blocks have more rewriting cycles than others, these blocks exchange information with the least rewritable blocks, and changes are made to the correspondence table of logical and physical addresses reflecting the exchange made.

Существенно уменьшается производительность и увеличивается износ флеш-памяти в случае многократной перезаписи малого объема данных (меньше размера блока). В этом случае необходимо сначала произвести копирование неперезаписываемых страниц блока, затем стирание блока и, наконец, запись как новых, так и скопированных данных. Было предложено проводить журналирование страниц [патент US6938116, МПК G06F 12/16, G06F 12/00, G06F 12/02, G06F 13/42, G11C 16/02, опубликован 30.08.2005]. Вся доступная память разбивается на 3 группы: блоки данных (занятые), свободные блоки и журнальные блоки (зарезервированные). При осуществлении операции перезаписи страницы данные записываются не в запрошенный блок данных, а в назначенный ему журнальный блок. При повторном запросе перезаписи данной страницы, она снова записывается в журнальный блок (на свободное место). Когда журнальный блок будет заполнен полностью, производится слияние: последняя актуальная версия журналируемой страницы и остальные непереписываемые страницы запрошенного блока копируются в третий свободный блок, которому назначается логический адрес запрошенного. Запрошенный блок очищается. Чтение данных из блока, содержащего журналируемую страницу (страницы), осуществляется следующим образом: нежурналируемые страницы считываются по своему непосредственному адресу, а чтение данных журналируемых страниц осуществляется из журнальной области. При данном подходе улучшается также и скорость работы накопителя за счет сокращения количества операций стирания. Данное решение является наиболее близким аналогом (прототипом) предлагаемого способа записи данных на накопитель цифровой информации на базе flash-памяти типа NAND.Performance is significantly reduced and flash wear is increased in the event of multiple overwriting of a small amount of data (less than the block size). In this case, you must first copy the unwritten pages of the block, then erase the block and, finally, record both new and copied data. It was proposed to conduct page logging [patent US6938116, IPC G06F 12/16, G06F 12/00, G06F 12/02, G06F 13/42, G11C 16/02, published 08/30/2005]. All available memory is divided into 3 groups: data blocks (occupied), free blocks and journal blocks (reserved). When performing a page rewrite operation, data is not written to the requested data block, but to the journal block assigned to it. When you re-request a rewrite of this page, it is again written to the journal block (to free space). When the journal block is completely filled, a merge is performed: the latest current version of the journal page and the remaining unwritten pages of the requested block are copied to the third free block, which is assigned the logical address of the requested. The requested block is cleared. Reading data from a block containing a journaling page (s) is as follows: non-journaling pages are read at their immediate address, and reading data from journaling pages is carried out from the journal area. With this approach, the speed of the drive is also improved by reducing the number of erase operations. This solution is the closest analogue (prototype) of the proposed method of recording data to a digital information storage device based on NAND flash-memory.

Раскрытие изобретенияDisclosure of invention

Сущность изобретения как технического решения заключается в способе записи данных на носитель информации на базе flash-памяти типа NAND, включающем в себяThe essence of the invention as a technical solution lies in a method of recording data on a storage medium based on a flash memory of the NAND type, including

получение запроса на запись данных в незаполненные страницы определенного блока и непосредственную запись данных в эти страницы,receiving a request to write data to the blank pages of a specific block and directly write data to these pages,

получение запроса на перезапись данных в заполненные страницы определенного блока и журналирование данных в журнальном блоке, соответствующем запрошенному блоку,receiving a request to overwrite data in the filled pages of a specific block and logging data in a journal block corresponding to the requested block,

слияние блока данных и соответствующего ему журнального блока,merging a data block and its corresponding journal block,

отличающемся тем, чтоcharacterized in that

в начале сеанса работы пользователя с накопителем происходит автоматический выбор сценария работы пользователя из набора предложенных, сформированных на этапе разработки в ходе предварительного моделирования работы пользователя с накопителем на основе собранной статистической информации о частоте перезаписи страниц,at the beginning of the user’s work with the drive, the user’s work scenario is automatically selected from the set of suggestions generated at the development stage during preliminary modeling of the user’s work with the drive based on the collected statistical information about the frequency of page rewriting,

журналирование выполняется только для наиболее часто перезаписываемых страниц, определяемых выбранным в начале сеанса работы пользователя с накопителем сценарием,journaling is performed only for the most frequently rewritten pages defined by the script selected at the beginning of the user’s session with the drive,

слияние блока данных и соответствующего ему журнального блока выполняется при получении запроса на чтение журналируемой страницы из данного блока,the merging of the data block and the corresponding journal block is performed upon receipt of a request to read a journal page from this block,

для операций перезаписи страниц, не относящихся к журналируемым, выполняется «отложенная запись» блоков, которая состоит в записи информации в буферный блок вместо адресуемого блока до момента смены номера текущего адресуемого блока либо первого запроса на чтение данных.for rewriting operations of pages that are not related to journaling, a “deferred write” of blocks is performed, which consists in writing information to the buffer block instead of the addressable block until the current addressable block number or the first request to read data changes.

Изобретение направлено на решение задачи увеличения срока эксплуатации и быстродействия накопителей информации на базе flash-памяти типа NAND. Технический результат заключается в продлении срока эксплуатации flash-памяти и увеличении скорости записи информации на носитель за счет сокращения количества операций блочного стирания, а также увеличении скорости считывания информации.The invention is aimed at solving the problem of increasing the life and speed of information storage devices based on NAND flash-memory. The technical result is to extend the life of the flash memory and increase the speed of writing information to the medium by reducing the number of block erase operations, as well as increasing the speed of reading information.

В начале сеанса работы накопителя информации осуществляется автоматический выбор сценария пользовательского поведения. Исходя из выбранного сценария фиксируется некоторое число (n) наиболее часто перезаписываемых страниц (областей) и осуществляется их журналирование. Слияние последних актуальных данных из журнальных блоков с соответствующими им блоками, в отличие от прототипа, производится не при полном заполнении журнальных блоков, а при поступлении первого запроса на чтение данных. Для перезаписи остальных страниц (не относящихся к журналируемым) предложена «отложенная запись» блоков. При получении запроса на перезапись запись новых данных осуществляется в свободный буферный блок. Если следующий запрос на перезапись относится к тому же блоку, но другим страницам, запись снова осуществляется в буферный блок. При переходе к другому блоку (или при получении запроса на чтение) в незаполненные страницы буферного блока копируются страницы исходного блока, затем исходный блок стирается, а в таблице соответствия логических и физических адресов логический адрес первоначально адресованного блока назначается реально записанному (буферному) блоку.At the beginning of the operation session of the information storage device, an automatic selection of a user behavior scenario is performed. Based on the selected scenario, a certain number (n) of the most frequently rewritten pages (areas) are recorded and their journaling is carried out. The merging of the latest relevant data from the journal blocks with the corresponding blocks, in contrast to the prototype, is carried out not when the journal blocks are completely filled, but when the first request for reading data is received. To rewrite the rest of the pages (not related to journaling), “delayed recording” of blocks is proposed. When a request for overwriting is received, the recording of new data is carried out in a free buffer block. If the next rewrite request refers to the same block, but to different pages, the recording is again performed in the buffer block. When you move to another block (or when you receive a read request), the pages of the source block are copied to the blank pages of the buffer block, then the source block is erased, and in the correspondence table of logical and physical addresses, the logical address of the originally addressed block is assigned to the really recorded (buffer) block.

Журналирование часто используемых страниц (небольших областей) позволяет сократить количество операций их перезаписи (циклов записи-стирания) в число раз, равное количеству страниц (областей данного размера) в блоке (от 64 до 512 в зависимости от объема накопителя), что продлевает срок службы накопителя, а также существенно улучшает скорость записи информации. Logging frequently used pages (small areas) allows you to reduce the number of rewriting operations (write-erase cycles) by the number of times equal to the number of pages (areas of a given size) in a block (from 64 to 512, depending on the size of the drive), which extends the service life drive, and also significantly improves the speed of recording information.

Слияние последних актуальных данных из журнального блока с соответствующим блоком данных не при полном заполнении журнального блока, а, в отличие от аналога, при поступлении запроса на чтение данных журналируемой страницы позволяет повысить скорость как записи (за счет избавления от лишних операций процедуры слияния в случае непрерывной серии запросов на перезапись), так и чтения, поскольку доступ к нефрагментированным, последовательно расположенным данным в пределах одного блока выполняется быстрее.The merging of the latest relevant data from the journal block with the corresponding data block not when the journal block is full, but, unlike the analogue, when a request is made to read the data of the journal page, it can improve write speed (by eliminating unnecessary operations of the merge procedure in case of continuous series of requests for overwriting) and reading, since access to unfragmented, sequentially located data within the same block is faster.

В современных операционных системах запись данных большого объема осуществляется небольшими пакетами в порядке возрастания логических адресов. Размер пакета часто меньше размера блока. «Отложенная запись» блоков улучшает срок службы и быстродействие в случаях перезаписи большого объема данных за счет сокращения количества операций блочного стирания в число раз, равное размеру блока, деленному на размер пакета.In modern operating systems, large amounts of data are recorded in small packets in ascending order of logical addresses. The packet size is often smaller than the block size. “Delayed write” of blocks improves the service life and performance in cases of overwriting a large amount of data by reducing the number of block erase operations by a factor equal to the size of the block divided by the packet size.

Краткое описание чертежейBrief Description of the Drawings

Фиг. 1 – Назначение журнальных блоков для журналируемых страниц.FIG. 1 - Assign journal blocks to journal pages.

Фиг. 2 – Обобщенная схема алгоритма записи данных (журналирование).FIG. 2 - A generalized scheme of the data recording algorithm (logging).

Фиг. 3 – Пример состояния журнала страницы.FIG. 3 - An example of the state of the page history.

Фиг. 4 – Обобщенная схема алгоритма слияния журнального блока и соответствующего блока данных.FIG. 4 - A generalized scheme of the algorithm for merging the journal block and the corresponding data block.

Фиг. 5 – Обобщенная схема алгоритма отложенной записи («отложенная запись» блоков).FIG. 5 - A generalized scheme of the delayed recording algorithm (“delayed recording” of blocks).

Фиг. 6 – Схематичное изображение серии транзакций в соответствии с «отложенной записью».FIG. 6 - Schematic representation of a series of transactions in accordance with the "delayed record."

Фиг. 7 – Схематичное изображение слияния блоков в соответствии с «отложенной записью».FIG. 7 - Schematic representation of the merger of blocks in accordance with the "delayed recording."

Осуществление изобретенияThe implementation of the invention

Выбор сценария работы пользователяUser scenario selection

В тестовом режиме работы носителя информации проведено моделирование пользовательской работы с памятью и собрана статистика о частоте перезаписи страниц. В результате анализа статистической информации сформированы различные сценарии работы пользователя с носителем информации, определяющие наиболее часто используемые (перезаписываемые) области памяти.In the test mode of operation of the storage medium, user work with memory was modeled and statistics on the frequency of page rewriting were collected. As a result of the analysis of statistical information, various scenarios of the user’s work with the storage medium that determine the most frequently used (rewritable) memory areas are formed.

Например, данные сценарии могут соответствовать типу используемой файловой системы. Вне зависимости от того, какой тип файловой системы используется, отдельные логические области памяти небольшого объема (1-2 страницы) при эксплуатации задействованы для записи/перезаписи наиболее часто (так в файловой системе FAT32 это области загрузочной записи BOOT, корневой каталог ROOT, а также сама таблица размещения файлов FAT). Информация о том, в какой файловой системе отформатирован накопитель информации, находится в области загрузочной записи и считывается в начале сеанса работы. Выбирается соответствующий данной файловой системе сценарий работы.For example, these scripts may correspond to the type of file system used. Regardless of what type of file system is used, separate logical areas of small memory (1-2 pages) are most often used for recording / overwriting during operation (for example, in the FAT32 file system, these are boot recording areas BOOT, root directory ROOT, and FAT file allocation table itself). Information about in which file system the information storage device is formatted is located in the boot record area and is read at the beginning of the work session. The operation scenario corresponding to the given file system is selected.

При получении запроса на запись данных в определенный блок проверяется, свободны ли требуемые страницы блока. На свободные страницы запрошенного блока запись данных осуществляется непосредственно. В случае запроса на перезапись (запись информации в заполненные страницы блока) применяется один из двух вариантов: журналирование (для наиболее часто перезаписываемых страниц) или «отложенная запись» блоков.Upon receipt of a request to write data to a specific block, it is checked whether the required pages of the block are free. Data is written directly to the free pages of the requested block. In the case of a request for rewriting (recording information in the filled pages of a block), one of two options is used: journaling (for the most frequently rewritten pages) or “delayed recording” of blocks.

Журналирование наиболее часто используемых страницFrequently Used Pages Logging

В соответствии с выбранным сценарием работы пользователя определяется некоторое число (n) наиболее часто перезаписываемых страниц для журналирования: A.x, B.y, C.z …, где A, B, C – адреса блоков, x, y, z – номера страниц в соответствующих блоках A, B, C. Каждой журналируемой странице назначается журнальный (зарезервированный) блок: A’, B’, C’ … соответственно (рис. 1).In accordance with the selected user's work scenario, a certain number (n) of the most frequently rewritable pages for journaling is determined: Ax, By, Cz ..., where A, B, C are block addresses, x, y, z are page numbers in the corresponding blocks A, B, C. Each journal page is assigned a journal (reserved) block: A ', B', C '... respectively (Fig. 1).

Обобщенная схема алгоритма перезаписи данных представлена на рисунке 2. При получении запроса на перезапись данных по адресу A.x поверяется, является ли страница A.x журналируемой (1). Если да, то проверяется, заполнен ли соответствующий журнальный блок A’ (2). Если блок A’ заполнен, то производится очищение блока A’ (3). Затем производится запись на первую пустую страницу блока A’ (4). Если страница A.x не относится к журналируемым, то для адреса A.x работает «отложенная запись» блоков (5), рисунок 5. A generalized scheme of the data rewrite algorithm is shown in Figure 2. When a request to rewrite data is received at A.x, it is checked whether the page A.x is journaled (1). If so, it checks to see if the corresponding journal block A ’(2) is full. If block A ’is full, block A’ (3) is cleared. Then it is recorded on the first blank page of block A ’(4). If the A.x page is not a journal page, then the “delayed record” of blocks (5) works for the A.x address, Figure 5.

Слияние журнального блока и блока данныхMerge journal block and data block

При поступлении запроса на чтение данных производится слияние запрошенного блока и соответствующего журнального блока, если журнальный блок непустой. Обобщенная схема алгоритма слияния блоков представлена на рисунке 4.Upon receipt of a request to read data, the requested block is merged with the corresponding journal block if the journal block is nonempty. A generalized scheme of the block fusion algorithm is presented in Figure 4.

При получении запроса на чтение данных по адресу A.x поверяется, является ли страница A.x журналируемой (1). Если да, то проверяется, есть ли данные в соответствующем журнальном блоке A’ (2). Если блок A’ непустой, то выделяется третий чистый блок В (3), в который производится копирование последней заполненной (актуальной) страницы журнального блока A’ на свое место (по адресу B.x) (4), а также копирование данных остальных страниц запрошенного блока А (5); блоки А и A’ очищаются (6); в таблице соответствия логических и физических адресов логический адрес первоначально адресованного блока А назначается новому блоку В и наоборот (7). После данных операций, а также если страница A.x не относится к журналируемым или соответствующий журнальный блок A’ не содержит данных, производится непосредственное чтение данных по адресу A.x (8).Upon receipt of a request to read data at A.x, it is checked whether the A.x page is journaled (1). If yes, then it is checked if there is data in the corresponding journal block A ’(2). If block A 'is non-empty, then the third clean block B (3) is selected, into which the last filled (actual) page of journal block A' is copied to its place (at address Bx) (4), as well as copying the data of the remaining pages of the requested block A (5); Blocks A and A ’are cleared (6); in the correspondence table of logical and physical addresses, the logical address of the initially addressed block A is assigned to the new block B and vice versa (7). After these operations, as well as if the page A.x does not belong to the journaled pages or the corresponding journal block A ’does not contain data, the data is read directly to the address A.x (8).

«Отложенная запись» блоков"Delayed recording" of blocks

Для реализации «отложенной записи» зарезервирован один блок, называемый буферным (R).To implement “deferred recording," one block is reserved, called a buffer (R).

Обобщенная схема алгоритма «отложенной записи» блоков представлена на рисунке 5. При получении запроса на перезапись данных по адресу D запись производится в буферный блок R (1). Номер блока текущей транзакции запоминается в переменной prevD (2). Если следующий запрос на перезапись относится к тому же блоку D, но другим страницам, запись снова осуществляется в буферный блок R (1). При переходе к другому блоку (prevD ≠ D) (3) в незаполненные страницы буферного блока R копируются страницы исходного блока prevD (слияние блоков - 4), затем исходный блок prevD очищается (5), а в таблице соответствия логических и физических адресов логический адрес первоначально адресованного блока prevD назначается реально записанному (буферному) блоку R (6).A generalized scheme of the “delayed recording” algorithm of the blocks is shown in Figure 5. When a request is made to rewrite data at address D, writing is made to the buffer block R (1). The block number of the current transaction is stored in the variable prevD (2). If the next rewrite request relates to the same block D, but to different pages, the recording is again performed in the buffer block R (1). When changing to another block (prevD ≠ D) (3), the pages of the original block prevD (merging of blocks - 4) are copied to the empty pages of the buffer block R, then the original block prevD is cleared (5), and the logical address in the table of correspondence of logical and physical addresses The initially addressed prevD block is assigned to the actually recorded (buffer) block R (6).

При первом запросе на чтение данных из блока D также производится слияние блоков prevD и R, стирание prevD и изменение указателей в таблице соответствия логических и физических адресов.The first request to read data from block D also merges the prevD and R blocks, erases the prevD, and changes the pointers in the correspondence table of logical and physical addresses.

Схематично «отложенная запись» изображена на рисунках 6-7.Schematically, “deferred recording” is depicted in figures 6-7.

Claims (10)

Способ записи данных на накопитель цифровой информации на базе flash-памяти типа NAND,A method of recording data to a digital information storage device based on a NAND flash memory, включающийincluding получение запроса на запись данных в незаполненные страницы определенного блока и непосредственную запись данных в эти страницы,receiving a request to write data to the blank pages of a specific block and directly write data to these pages, получение запроса на перезапись данных в заполненные страницы определенного блока и журналирование данных в журнальном блоке, соответствующем запрошенному блоку,receiving a request to overwrite data in the filled pages of a specific block and logging data in a journal block corresponding to the requested block, слияние блока данных и соответствующего ему журнального блока,merging a data block and its corresponding journal block, отличающийся тем, чтоcharacterized in that в начале сеанса работы пользователя с накопителем происходит автоматический выбор сценария работы пользователя из набора предложенных,at the beginning of the user’s work with the drive, the user’s work scenario is automatically selected from the set of proposed ones, журналирование выполняется только для наиболее часто перезаписываемых страниц, определяемых выбранным в начале сеанса работы пользователя с накопителем сценарием,journaling is performed only for the most frequently rewritten pages defined by the script selected at the beginning of the user’s session with the drive, слияние блока данных и соответствующего ему журнального блока выполняется при получении запроса на чтение журналируемой страницы из данного блока,the merging of the data block and the corresponding journal block is performed upon receipt of a request to read a journal page from this block, для операций перезаписи страниц, не относящихся к журналируемым, выполняется «отложенная запись» блоков, которая состоит в записи информации в буферный блок вместо адресуемого блока до момента смены номера текущего адресуемого блока либо первого запроса на чтение данных.for rewriting operations of pages that are not related to journaling, a “deferred write” of blocks is performed, which consists in writing information to the buffer block instead of the addressable block until the current addressable block number or the first request to read data changes.
RU2016142343A 2016-10-28 2016-10-28 Method of recording data to digital information drive on basis of nand type flash-memory RU2636107C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2016142343A RU2636107C1 (en) 2016-10-28 2016-10-28 Method of recording data to digital information drive on basis of nand type flash-memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2016142343A RU2636107C1 (en) 2016-10-28 2016-10-28 Method of recording data to digital information drive on basis of nand type flash-memory

Publications (1)

Publication Number Publication Date
RU2636107C1 true RU2636107C1 (en) 2017-11-20

Family

ID=60328616

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2016142343A RU2636107C1 (en) 2016-10-28 2016-10-28 Method of recording data to digital information drive on basis of nand type flash-memory

Country Status (1)

Country Link
RU (1) RU2636107C1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2243588C2 (en) * 1998-07-28 2004-12-27 Сони Корпорейшн Energy-independent memory device, recording device and recording method
US6938116B2 (en) * 2001-06-04 2005-08-30 Samsung Electronics Co., Ltd. Flash memory management method
US8027194B2 (en) * 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8261010B2 (en) * 2008-12-31 2012-09-04 Sungkyunkwan University Foundation For Corporate Collaboration Methods for distributing log block associativity for real-time system and flash memory devices performing the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) * 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
RU2243588C2 (en) * 1998-07-28 2004-12-27 Сони Корпорейшн Energy-independent memory device, recording device and recording method
US6938116B2 (en) * 2001-06-04 2005-08-30 Samsung Electronics Co., Ltd. Flash memory management method
US8261010B2 (en) * 2008-12-31 2012-09-04 Sungkyunkwan University Foundation For Corporate Collaboration Methods for distributing log block associativity for real-time system and flash memory devices performing the same

Similar Documents

Publication Publication Date Title
US11416391B2 (en) Garbage collection
US10275162B2 (en) Methods and systems for managing data migration in solid state non-volatile memory
US8332574B2 (en) Method for efficient storage of metadata in flash memory
KR100453053B1 (en) Flash memory file system
US8312204B2 (en) System and method for wear leveling in a data storage device
CN101288054B (en) Virtual-to-physical address translation in a flash file system
CN108038026B (en) Flash memory-based data rapid recovery method and system
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
US10956317B2 (en) Garbage collection in non-volatile memory that fully programs dependent layers in a target block
US20070016721A1 (en) Flash file system power-up by using sequential sector allocation
KR20070060070A (en) Fat analysis for optimized sequential cluster management
US8225050B2 (en) Memory storage device and a control method thereof
KR20050067203A (en) Maintaining an average erase count in a non-volatile storage system
KR20050065632A (en) Maintaining an average erase count in a non-volatile storage system
WO2010077920A1 (en) Method and apparatus for relocating selected data between flash partitions in a memory device
CN110389712B (en) Data writing method and device, solid state disk and computer readable storage medium
CN112130749B (en) Data storage device and non-volatile memory control method
CN115114180A (en) Method and related controller for performing wear leveling operation in flash memory and storage system
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
KR20020092261A (en) Management Scheme for Flash Memory with the Multi-Plane Architecture
US8068363B2 (en) Flash memory apparatus and read operation control method therefor
KR100932801B1 (en) Memory management methods, memory devices, and computer readable storage media
RU2636107C1 (en) Method of recording data to digital information drive on basis of nand type flash-memory
WO2014185038A1 (en) Semiconductor storage device and control method thereof
JP2011227802A (en) Data recording device

Legal Events

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

Effective date: 20181029