RU2716899C1 - Способ эмуляции eeprom-памяти в flash-памяти - Google Patents

Способ эмуляции eeprom-памяти в flash-памяти Download PDF

Info

Publication number
RU2716899C1
RU2716899C1 RU2019120252A RU2019120252A RU2716899C1 RU 2716899 C1 RU2716899 C1 RU 2716899C1 RU 2019120252 A RU2019120252 A RU 2019120252A RU 2019120252 A RU2019120252 A RU 2019120252A RU 2716899 C1 RU2716899 C1 RU 2716899C1
Authority
RU
Russia
Prior art keywords
memory
image
eeprom memory
area
data
Prior art date
Application number
RU2019120252A
Other languages
English (en)
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 RU2019120252A priority Critical patent/RU2716899C1/ru
Application granted granted Critical
Publication of RU2716899C1 publication Critical patent/RU2716899C1/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
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

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

Description

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

Claims (6)

1. Cпособ эмуляции EEPROM-памяти в flash-памяти, состоящей из секторов в качестве минимальных единиц удаления и блоков в качестве минимальных единиц записи, в котором
разбивают flash-память на три области, каждая из которых занимает по меньшей мере один сектор, а именно, область образа эмулируемой EEPROM-памяти, которая выполнена с возможностью хранения последнего актуального образа эмулируемой EEPROM-памяти, область транзакций, которая выполнена с возможностью записи изменений транзакций к образу эмулируемой EEPROM-памяти, и резервную область, которая выполнена с возможностью временного хранения, данных при выполнении перезаписи образа эмулируемой EEPROM-памяти;
при записи данных в эмулируемую EEPROM-память, записывают изменения транзакции к образу эмулируемой EEPROM-памяти в область транзакций последовательно друг за другом;
при чтении данных из эмулируемой EEPROM-памяти, сначала записывают данные в резервную область из области образа эмулируемой EEPROM-памяти, а затем записывают в резервную область из области транзакций изменения транзакции к образу эмулируемой EEPROM-памяти;
при полном заполнении области транзакций, обновляют образ эмулируемой EEPROM-памяти с внесением всех изменений транзакций к образу эмулируемой EEPROM-памяти, при этом записывают из области образа эмулируемой EEPROM-памяти в резервную область образ эмулируемой EEPROM-памяти одновременно с внесением в него всех изменений транзакций к образу эмулируемой EEPROM-памяти из области транзакций, после этого удаляют все данные в области образа эмулируемой EEPROM-памяти и удаляют все данные в области транзакций.
2. Способ по п. 1, отличающийся тем, что разбивают flash-память на три области, при этом разбивают каждую из трех областей на подобласть замены и подобласть данных, при этом разбивают подобласти на блоки фиксированной длины, каждый из которых защищают контрольной суммой алгоритма CRC (cyclic redundancy check - циклический избыточный код) для проверки целостности данных в блоке, причем, в случае обнаружения некорректной контрольной суммы в блоке из подобласти данных, используют вместо данного блока из подобласти данных соответствующий ему блок из подобласти замены.
RU2019120252A 2019-06-28 2019-06-28 Способ эмуляции eeprom-памяти в flash-памяти RU2716899C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2019120252A RU2716899C1 (ru) 2019-06-28 2019-06-28 Способ эмуляции eeprom-памяти в flash-памяти

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2019120252A RU2716899C1 (ru) 2019-06-28 2019-06-28 Способ эмуляции eeprom-памяти в flash-памяти

Publications (1)

Publication Number Publication Date
RU2716899C1 true RU2716899C1 (ru) 2020-03-17

Family

ID=69898327

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2019120252A RU2716899C1 (ru) 2019-06-28 2019-06-28 Способ эмуляции eeprom-памяти в flash-памяти

Country Status (1)

Country Link
RU (1) RU2716899C1 (ru)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2182375C2 (ru) * 1997-03-21 2002-05-10 КАНАЛЬ+ Сосьетэ Аноним Организация памяти компьютера
US6904400B1 (en) * 1998-09-30 2005-06-07 Stmicroelectronics S.R.L. Flash EEPROM memory emulator of non-flash EEPROM device and corresponding method
US20100250875A1 (en) * 2009-03-25 2010-09-30 Silicon Laboratories Inc. Eeprom emulation using flash memory
US20130080690A1 (en) * 2011-09-23 2013-03-28 William Brooks Barrett Method to emulate eeprom using flash memory
US20170011810A1 (en) * 2012-11-19 2017-01-12 Silicon Storage Technology, Inc. Three-Dimensional Flash Memory System
US20170220252A1 (en) * 2016-01-29 2017-08-03 Faraday&Future Inc. Flash emulated eeprom wrapper

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2182375C2 (ru) * 1997-03-21 2002-05-10 КАНАЛЬ+ Сосьетэ Аноним Организация памяти компьютера
US6904400B1 (en) * 1998-09-30 2005-06-07 Stmicroelectronics S.R.L. Flash EEPROM memory emulator of non-flash EEPROM device and corresponding method
US20100250875A1 (en) * 2009-03-25 2010-09-30 Silicon Laboratories Inc. Eeprom emulation using flash memory
US20130080690A1 (en) * 2011-09-23 2013-03-28 William Brooks Barrett Method to emulate eeprom using flash memory
US20170011810A1 (en) * 2012-11-19 2017-01-12 Silicon Storage Technology, Inc. Three-Dimensional Flash Memory System
US20170220252A1 (en) * 2016-01-29 2017-08-03 Faraday&Future Inc. Flash emulated eeprom wrapper

Similar Documents

Publication Publication Date Title
KR101920531B1 (ko) 고체 상태 드라이브에서의 원자성 기록 커맨드 지원
JP4588431B2 (ja) 頻繁にアクセスされたセクタの動作による不揮発性メモリに対するより速い書込み動作
US9792067B2 (en) Trim command processing in a solid state drive
US8321652B2 (en) Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks
US9836232B1 (en) Data storage device and method for using secondary non-volatile memory for temporary metadata storage
KR100644602B1 (ko) 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
EP1410399B1 (en) Method and apparatus for decreasing block write operation times performed on nonvolatile memory
US9032134B2 (en) Methods of operating a memory system that include outputting a data pattern from a sector allocation table to a host if a logical sector is indicated as being erased
TWI609323B (zh) 資料儲存方法及其系統
EP3489956B1 (en) Erase management in memory systems
JP3587842B2 (ja) データ書き換え装置およびデータ書き換え方法ならびにフラッシュメモリ装置
KR20000048766A (ko) 비휘발성 메모리에서 파일의 연속 중복기재를 수행하는 방법
JPH08137634A (ja) フラッシュディスクカード
JP2007280428A (ja) メモリ管理
RU2716899C1 (ru) Способ эмуляции eeprom-памяти в flash-памяти
US20200272561A1 (en) Data storage device and control method for non-volatile memory
CN117555478A (zh) 一种基于闪存的模拟eeprom读写方法
KR100654344B1 (ko) 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법
TWI745986B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
KR20110016320A (ko) 플래시 메모리를 블록 그룹으로 구분하여 관리하는 방법
KR100654343B1 (ko) 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법
CN113741799A (zh) 存储器装置
KR20210050661A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
JP3670151B2 (ja) フラッシュメモリのアクセス方法、フラッシュメモリへアクセスするドライバを備えるシステム、および、フラッシュメモリ
JP4218406B2 (ja) 情報記録再生方法