СПОСОБ ЭМУЛЯЦИИ EEPROM-ПАМЯТИ В FLASH-ПАМЯТИ
METHOD OF EMULATING EEPROM-MEMORY IN FLASH-MEMORY

Изобретение относится к области вычислительной техники, к устройствам для программного управления, а именно, к способу эмуляции EEPROM-памяти в flash-памяти, и может быть использовано в flash-памяти любого типа.
В настоящее время широко применяют принцип эмуляции EEPROM-памяти в flash-памяти по причине того, что EEPROM-память дороже flash-памяти, поэтому эмуляция позволяет получить больший объем данных на flash-памяти, доступный для данного типа микроконтроллера (MCU – microcontroller unit).
Наиболее близким к заявленному изобретению является способ эмуляции EEPROM-памяти в flash-памяти, описанный в заявке US2013080690 (A1). Данный способ выбран в качестве прототипа заявленного изобретения.
Недостатком способа-прототипа является то, что, во-первых, он не является быстродействующим, поскольку не позволяет записывать и перезаписывать информацию от одного байта и более без выполнения при этом процедуры форматирования больших блоков данных (секторов), а, во-вторых, ограничивает ресурс использования flash-памяти количеством циклов перезаписи данных равным 10000, поскольку не позволяет выполнять более 10000 циклов перезаписи данных в flash-память.
Техническим результатом изобретения является создание способа эмуляции EEPROM-памяти в flash-памяти с увеличенным быстродействием, за счет отсутствия в нем процедуры форматирования больших блоков данных (секторов), который позволяет увеличить ресурс использования flash-памяти путем уменьшения количества циклов перезаписи в несколько раз, за счет разделения на несколько областей flash-памяти, отведенной на эмуляцию EEPROM-памяти, а именно, на первую область - образ эмулируемой EEPROM-памяти, на вторую область - область транзакций и на третью область - резервную область.
Поставленный технический результат достигнут путем создания способа эмуляции EEPROM-памяти в flash-памяти, состоящей из секторов в качестве минимальных единиц удаления и блоков в качестве минимальных единиц записи, в котором
- разбивают flash-память на три области, каждая из которых занимает, по меньшей мере, один сектор, а именно, область образа эмулируемой EEPROM-памяти, которая выполнена с возможностью хранения последнего актуального образа эмулируемой EEPROM-памяти, область транзакций, которая выполнена с возможностью записи изменений (транзакций) к образу эмулируемой EEPROM-памяти, и резервную область, которая выполнена с возможностью временного хранения, данных при выполнении перезаписи образа эмулируемой EEPROM-памяти;
- при записи данных в эмулируемую EEPROM-память:
a) записывают изменения (транзакции) к образу эмулируемой EEPROM-памяти в область транзакций последовательно друг за другом;
b) при полном заполнении области транзакций, обновляют образ эмулируемой EEPROM-памяти с внесением всех изменений (транзакций) к образу эмулируемой EEPROM-памяти, при этом записывают из области образа эмулируемой EEPROM-памяти в резервную область образ эмулируемой EEPROM-памяти одновременно с внесением в него всех изменений (транзакций) к образу эмулируемой EEPROM-памяти из области транзакций, после этого удаляют все данные в области образа эмулируемой EEPROM-памяти и удаляют все данные в области транзакций;
- при чтении данных из эмулируемой EEPROM-памяти, сначала считывают данные из области образа эмулируемой EEPROM-памяти, а затем вносят в считанные данные изменения (транзакции) к образу эмулируемой EEPROM-памяти из области транзакций.
В предпочтительном варианте осуществления способа разбивают flash-память на три области, при этом разбивают каждую из трех областей на подобласть замены и подобласть данных, при этом разбивают подобласти на блоки фиксированной длины, каждый из которых защищают контрольной суммой алгоритма CRC (cyclic redundancy check - циклический избыточный код) для проверки целостности данных в блоке, причем, в случае обнаружения некорректной контрольной суммы в блоке из подобласти данных, используют вместо данного блока из подобласти данных соответствующий ему блок из подобласти замены.
Для лучшего понимания заявленного изобретения далее приводится его подробное описание с соответствующими графическими материалами.
Фиг. 1. Схема начального состояния областей памяти, выполненная согласно изобретению.
Фиг. 2. Схема операции записи 8 байт (0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00) данных по адресу 0x0001 в память, выполненная согласно изобретению.
Фиг. 3. Схема операции записи 8 байт (0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01) данных по адресу 0x0002 в память, выполненная согласно изобретению.
Фиг. 4. Схема операции записи 10 байт (0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF) данных по адресу 0x0009 в память, выполненная согласно изобретению.
Фиг. 5. Схема операции записи 8 байт (0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA) данных по адресу 0x0009 в память, выполненная согласно изобретению.
Фиг. 6. Схема операции переноса образа эмулируемой EEPROM-памяти из области образа в резервную область, одновременно с внесением в него всех изменений (транзакций), выполненная согласно изобретению.
Фиг. 7. Схема операции удаления всех данных в области образа эмулируемой EEPROM-памяти, при этом установки данных из области образа в качестве резервных, выполненная согласно изобретению.
Фиг. 8. Схема операции удаления всех данных в области транзакций, выполненная согласно изобретению.
Фиг. 9. Схема разбиения трех областей flash-памяти, на подобласть замены и подобласть данных, а также на блоки фиксированной длины, выполненная согласно изобретению.
Рассмотрим более подробно функционирование заявленного способа эмуляции EEPROM-памяти в flash-памяти (Фиг. 1 - 9).
Flash память состоит из секторов, сектора состоят из блоков. Минимальная единица записи данных в память - блок, минимальная единица удаления данных в памяти - сектор.
Flash-память отведенную на эмуляцию EEPROM-памяти разбивают на несколько областей: область образа эмулируемой EEPROM-памяти, область транзакций, резервную область.
Область образа эмулируемой EEPROM-памяти состоит, по меньшей мере, из одного сектора, в ней хранят последний актуальный образ эмулируемой EEPROM-памяти.
Область транзакций также состоит, по меньшей мере, из одного сектора. В неё записывают изменения (транзакции) к образу эмулируемой EEPROM-памяти.
Резервная область состоит, по меньшей мере, из одного сектора. Её используют в качестве временного буфера для операции перезаписи образа эмулируемой EEPROM-памяти.
При записи данных в эмулируемую EEPROM-память, формируют, по меньше мере, одно изменение (транзакцию) к образу эмулируемой EEPROM-памяти (в зависимости от максимального размера транзакции), которое содержит в себе: адрес изменяемых данных, информацию о количестве изменяемых данных, новые подлежащие записи данные, контрольную сумму.
Изменение (транзакцию) записывают в область транзакций. Запись изменений (транзакций) осуществляют последовательно друг за другом.
При чтении данных из эмулируемой EEPROM-памяти, сначала в буфер считывают данные из области данных, а затем из области транзакций перезаписывают изменения (транзакции), в случае их наличия.
При полном заполнении сектора транзакций, выполняют операцию обновления образа эмулируемой EEPROM-памяти одновременно с внесением всех изменений из области транзакций. Данные из области образа эмулируемой EEPROM-памяти записывают в резервную область, при этом вносят в них все изменения из области транзакций. После этого удаляют все данные в области образа эмулируемой EEPROM-памяти и удаляют все данные в области транзакций.
Разбивают (Фиг. 9) flash-память на три области, при этом разбивают каждую из трех областей на подобласть замены и подобласть данных, при этом разбивают подобласти на блоки фиксированной длины, каждый из которых защищают контрольной суммой алгоритма CRC (cyclic redundancy check - циклический избыточный код) для проверки целостности данных в блоке, причем, в случае обнаружения некорректной контрольной суммы в блоке из подобласти данных, используют вместо данного блока из подобласти данных соответствующий ему блок из подобласти замены.
Хотя описанный выше вариант выполнения изобретения был изложен с целью иллюстрации заявленного изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла заявленного изобретения, раскрытого в прилагаемой формуле изобретения.