RU2716899C1 - Способ эмуляции eeprom-памяти в flash-памяти - Google Patents
Способ эмуляции eeprom-памяти в flash-памяти Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional 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 - циклический избыточный код) для проверки целостности данных в блоке, причем, в случае обнаружения некорректной контрольной суммы в блоке из подобласти данных, используют вместо данного блока из подобласти данных соответствующий ему блок из подобласти замены.
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)
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 |
-
2019
- 2019-06-28 RU RU2019120252A patent/RU2716899C1/ru active
Patent Citations (6)
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) | 情報記録再生方法 |