RU2235356C2 - Device for storing different versions of data sets in separate memory areas and method for refreshing data sets in memory - Google Patents
Device for storing different versions of data sets in separate memory areas and method for refreshing data sets in memory Download PDFInfo
- Publication number
- RU2235356C2 RU2235356C2 RU2002100204/09A RU2002100204A RU2235356C2 RU 2235356 C2 RU2235356 C2 RU 2235356C2 RU 2002100204/09 A RU2002100204/09 A RU 2002100204/09A RU 2002100204 A RU2002100204 A RU 2002100204A RU 2235356 C2 RU2235356 C2 RU 2235356C2
- Authority
- RU
- Russia
- Prior art keywords
- memory
- tag
- version
- data
- data set
- Prior art date
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
Область техники, к которой относится изобретениеFIELD OF THE INVENTION
Настоящее изобретение относится к средству памяти, содержащему по меньшей мере один набор данных в области памяти. Средство памяти может быть реализовано энергозависимыми устройствами ОЗУ или энергонезависимыми кремниевыми устройствами, такими как ЭСППЗУ, электрически стираемое программируемое постоянное запоминающее устройство, флэш-ППЗУ или ПЗУ. Обычно в такой памяти хранятся программные модули операционной системы, прикладные программы и данные прикладных задач. Там, где такие компьютерные системы в соответствии с изобретением могут найти особенное применение, некоторые или все программные модули операционной системы хранятся в ПЗУ.The present invention relates to a storage medium comprising at least one data set in a memory area. The memory means may be implemented by volatile RAM devices or non-volatile silicon devices such as EEPROM, electrically erasable programmable read-only memory device, flash ROM or ROM. Typically, such memory stores program modules of the operating system, application programs, and application data. Where such computer systems in accordance with the invention may find particular use, some or all of the software modules of the operating system are stored in ROM.
Предшествующий уровень техникиState of the art
В некоторых прикладных задачах, обычно при обработке финансовых операций, хранение должно выполняться с очень высокой надежностью. Такие применения с безопасным хранением известны как требующие “элементарности обновления” в “постоянных” средствах хранения. Для выполнения такого безопасного обновления известно использование регистрации обновления из известного уровня техники. Такой указатель регистрации обновления, который составляет часть набора данных, должен изменяться во время сеанса обновления. Только тогда, когда набор данных вместе с его обновленными частями будет сохранен в памяти, все ссылки на предшествующую версию набора данных могут быть удалены.In some applications, usually in the processing of financial transactions, storage must be performed with very high reliability. Such secure storage applications are known as requiring “basic updates” in “permanent” storage. To perform such a secure update, it is known to use update registration from the prior art. Such an update registration indicator, which forms part of the data set, must be changed during the update session. Only when the data set together with its updated parts is stored in memory, all references to the previous version of the data set can be deleted.
DE-A-19600081 раскрывает считываемый компьютером носитель, способный хранить различные версии набора данных. Такой считываемый компьютером носитель хранит и давнюю версию, и последнюю по времени обновления версию. Чтобы различить разные версии одну от другой, обе из них идентифицируются счетчиком.DE-A-19600081 discloses a computer-readable medium capable of storing various versions of a data set. Such computer-readable media stores both the old version and the latest update version. To distinguish between different versions of one from the other, both of them are identified by a counter.
Цель изобретенияThe purpose of the invention
Целью настоящего изобретения является обеспечение постоянного хранения данных прикладных задач посредством создания усовершенствованного механизма для элементарности обновления данных, хранимых в энергонезависимых запоминающих устройствах, особенно в кремниевых запоминающих устройствах, таких как ЭСППЗУ или флэш-ППЗУ.The aim of the present invention is to provide permanent storage of application data by creating an improved mechanism for the elementary updating of data stored in non-volatile memory devices, especially in silicon storage devices such as EEPROM or flash ROM.
Сущность изобретенияSUMMARY OF THE INVENTION
Изобретение относится к считываемому компьютером носителю, как заявлено в п.1.The invention relates to a computer-readable medium as claimed in
Применение таких уникальных тегов, связанных различными областями памяти, позволяет однозначно идентифицировать, какие из версий являются более старыми. Кроме того, применение таких тегов позволяет идентифицировать, какие версии относятся к одному и тому же исходному набору данных. Таким образом, в памяти одновременно могут присутствовать различные версии различных наборов данных. Более того, во время обновления последней по времени обновления версии более старые версии, а также последняя по времени обновления версия не удаляются из памяти. Только после полного завершения операции обновления последней по времени обновления версии из памяти может быть удалена самая старая версия набора данных.The use of such unique tags associated with different areas of memory allows you to uniquely identify which of the versions are older. In addition, the use of such tags allows you to identify which versions belong to the same source dataset. Thus, different versions of different data sets may simultaneously be present in memory. Moreover, during the update of the latest update version, older versions, as well as the latest update version, are not deleted from memory. Only after the update operation of the latest update has been completed is the oldest version of the data set can be deleted from memory.
Если обновление прерывается во время операции обновления, последняя по времени обновления версия еще присутствует в памяти, таким образом гарантируя присутствие по меньшей мере одной достоверной версии набора данных. Таким образом гарантируется “элементарность обновления”. Такое элементарное обновление гарантирует либо полную замену данных, либо немодифицированных, ранее хранимых данных, даже если прерывается операция обновления.If the update is interrupted during the update operation, the latest version of the update is still present in the memory, thus guaranteeing the presence of at least one reliable version of the data set. Thus, the “elementary update" is guaranteed. Such an elementary update guarantees either a complete replacement of the data, or unmodified, previously stored data, even if the update operation is interrupted.
Каждая версия набора данных хранится на одной или нескольких страницах памяти, и каждая страница памяти включает в себя один тег, причем каждый тег содержит ссылки на набор данных, номер версии и номер страницы.Each version of the data set is stored on one or more pages of memory, and each page of memory includes one tag, each tag containing links to the data set, version number, and page number.
Страница определяется как область памяти с последовательными ячейками памяти, которые имеют дело с единицами хранения, соответствующими для рассматриваемой технологии хранения. Каждая страница может соответствовать одной числовой шине, тем самым облегчая выполнение операций считывания и записи единиц хранения в память. Номера версий присваиваются различным генерациям набора данных. Таким образом, различные номера версий относятся к различным генерациям. Различные номера страниц относятся к различным страницам одной генерации набора данных.A page is defined as a memory area with sequential memory cells that deal with storage units appropriate for the storage technology in question. Each page can correspond to one numerical bus, thereby making it easier to read and write storage units into memory. Version numbers are assigned to different dataset generations. Thus, different version numbers refer to different generations. Different page numbers refer to different pages of the same dataset generation.
Изобретение также относится к компьютерному устройству, включающему в себя процессор и по меньшей мере один считываемый компьютером носитель, как определено выше.The invention also relates to a computer device including a processor and at least one computer-readable medium, as defined above.
Процессор предпочтительно предназначен для записи тегов с избыточностью в отношении содержимого и, после считывания тегов из средства памяти, анализа на основе избыточности, имели ли место ошибки записи или нет. Такая избыточность может быть использована как указание того, имеют или нет достоверные значения рассматриваемые теги и наборы данных, на которые ссылаются теги.The processor is preferably designed to write tags with redundancy in relation to the contents and, after reading the tags from the memory means, analyzing based on redundancy whether there have been write errors or not. Such redundancy can be used as an indication of whether the tags in question and the datasets referenced by the tags have reliable values.
Последняя по времени обновления версия предпочтительно содержит множество страниц, причем каждая страница имеет уникальный тег, и процессор предназначен для обновления упомянутой последней по времени обновления версии упомянутого набора данных и записи предварительно определенного тега предварительно определенной одной из упомянутого множества страниц в упомянутое средство памяти в качестве последнего этапа упомянутого обновления. Предварительно определенный тег, который записывается последним, может быть считан процессором. Если процессор определяет присутствие этого предварительно определенного тега в средстве памяти, то процессор может сделать вывод, что операция обновления была полностью завершена.The latest update version preferably contains a plurality of pages, each page having a unique tag, and the processor is designed to update the last updated version of said data set and write a predetermined tag to a predetermined one of the many pages in said memory medium as the last stage of the mentioned update. The predefined tag that is written last can be read by the processor. If the processor determines the presence of this predefined tag in the memory means, then the processor can conclude that the update operation has been completely completed.
Применение таких тегов обеспечивает несколько новых возможностей. Например, по меньшей мере один из тегов может включать в себя дополнительные данные в отношении указания принадлежности и прав использования, причем процессор предназначен для распознавания принадлежности и прав использования из этих дополнительных данных.The use of such tags provides several new features. For example, at least one of the tags may include additional information regarding the indication of ownership and rights of use, the processor being designed to recognize ownership and rights of use from this additional data.
Права использования могут отличаться для различных частей набора данных, и процессор может быть предназначен для распознавания этих различных прав использования для этих различных частей.Use rights may vary for different parts of the data set, and the processor may be designed to recognize these different use rights for these different parts.
Процессор предпочтительно предназначен для анализа значения тегов и может иметь доступ к версиям набора данных только посредством ссылки через значения тегов. Доступ к различным версиям набора данных, таким образом, не управляется обычным программным счетчиком, а значениями тегов. Другими словами, память стала ассоциативной памятью.The processor is preferably designed to analyze tag values and can only access versions of the data set by reference through tag values. Access to different versions of the data set is thus not controlled by a regular software counter, but by tag values. In other words, memory has become associative memory.
В последнем варианте выполнения процессор предпочтительно содержит центральный процессорный блок и отдельный блок управления памятью, в котором значения тегов известны только блоку управления памятью. Далее, пространство физических адресов средства памяти не включено в адресное пространство центрального процессорного блока, особенно не включено в адресное пространство, где хранятся прикладная программа или программные команды операционной системы. Таким образом может быть получена дополнительная защита против “зондирования”. Для того чтобы реализовать эту потенциальную защиту, блок управления памятью может предоставлять центральному процессорному блоку дополнительные интерфейсные функциональные возможности адресным регистром размера тега.In the latter embodiment, the processor preferably comprises a central processing unit and a separate memory management unit, in which tag values are known only to the memory management unit. Further, the physical address space of the memory means is not included in the address space of the central processing unit, especially not included in the address space where the application program or program instructions of the operating system are stored. In this way, additional protection against “sensing” can be obtained. In order to realize this potential protection, the memory control unit may provide the central processing unit with additional interface functionality with an address register of tag size.
Для того чтобы повысить безопасность хранимых данных, блок управления памятью может кодировать теги криптографическим ключом перед записью их в память, причем криптографический ключ известен только блоку управления памятью. Такой криптографический ключ может относиться к криптографической односторонней функции.In order to increase the security of the stored data, the memory management unit can encode the tags with a cryptographic key before writing them to the memory, and the cryptographic key is known only to the memory management unit. Such a cryptographic key may refer to a cryptographic one-way function.
Настоящее изобретение также относится к способу, как заявлено в п.13.The present invention also relates to a method as claimed in paragraph 13.
(b) хранения последней по времени обновления версии упомянутого набора данных во второй отдельной области памяти, в котором упомянутая вторая область памяти включает в себя второй тег для однозначной идентификации упомянутой последней по времени обновления версии.(b) storing the latest update version of said data set in a second separate memory area in which said second memory area includes a second tag for uniquely identifying said latest update version.
Краткое описание чертежейBrief Description of the Drawings
Настоящее изобретение ниже подробно описывается с ссылкой на несколько чертежей, которые предназначены только для иллюстрации настоящего изобретения, а не для ограничения его объема.The present invention is described in detail below with reference to several drawings, which are intended only to illustrate the present invention, and not to limit its scope.
На фиг.1 представлен пример варианта выполнения в соответствии с настоящим изобретением.Figure 1 presents an example of an embodiment in accordance with the present invention.
На фиг.2 представлено возможное распределение памяти в соответствии с настоящим изобретением.Figure 2 shows a possible memory allocation in accordance with the present invention.
На фиг.3 представлено содержимое страниц памяти в возможном варианте выполнения устройства в соответствии с фиг.2.Figure 3 presents the contents of the memory pages in a possible embodiment of the device in accordance with figure 2.
На фиг.4 изображен способ в соответствии с настоящим изобретением.Figure 4 shows the method in accordance with the present invention.
На фиг.5 представлено возможное устройство блока управления памятью в соответствии с настоящим изобретением.Figure 5 presents a possible device of the memory control unit in accordance with the present invention.
Описание предпочтительного варианта выполненияDescription of the preferred embodiment
На фиг.1 представлено одно возможное устройство в соответствии с настоящим изобретением. Центральный процессорный блок 2 подсоединен к средству 12 ввода/вывода и к памяти, которая может содержать ПЗУ 6, ОЗУ 8 и энергонезависимую память 10. Блок 4 управления памятью может быть выполнен отдельно или внутри центрального процессорного блока 2. Блок 4 управления предназначен для выполнения функций памяти, которые имеют отношение к энергонезависимой памяти 10, а также предпочтительно к другим секциям памяти - ПЗУ 6 и ОЗУ 8. Вариант выполнения, показанный на фиг.1, относится ко всем видам систем управления хранением данных. Изобретение, однако, особенно полезно в отношении хранения данных в энергонезависимых кремниевых устройствах, а не на жестких дисках. Важные применения относятся к области встроенных компьютерных систем и к однокристальным компьютерам, таким как смарт-карты (интеллектуальные карточки).Figure 1 presents one possible device in accordance with the present invention. The central processing unit 2 is connected to the input / output means 12 and to the memory, which may contain ROM 6, RAM 8 and non-volatile memory 10. The
На фиг.2 показано одно возможное устройство хранения данных в памяти в соответствии с настоящим изобретением. Энергонезависимая память 10 данных может быть разделена на блоки хранения. Здесь эти блоки хранения в памяти называются “страницы”. Удобно, если эти страницы будут одинакового размера, например равные размерности “числовой шины” в кремниевых устройствах, используемых для реализации памяти. Страницы, однако, могут быть с другими размерами. Содержимое памяти управляется блоком 4 управления памятью постранично: распределение, обновление и освобождение памяти для хранения данных прикладных программ включает в себя управление одной или несколькими страницами.Figure 2 shows one possible memory storage device in accordance with the present invention. Non-volatile data memory 10 can be divided into storage units. Here, these in-memory storage units are called “pages”. It is convenient if these pages are the same size, for example, equal to the dimensions of the “numerical bus" in silicon devices used to implement memory. Pages, however, may be of different sizes. The contents of the memory are controlled by the
Память содержит различные генерации (или версии) набора элементов данных прикладных программ. Каждая генерация может храниться на одной или нескольких страницах. На фиг.2 показан случай, когда память включает три различные генерации k, k+1, k+2 одного набора элементов данных прикладной задачи. В примере показано, что генерация k занимает три страницы 1, 2 и 3, генерация k+1 - две страницы i, i+1, и генерация k+2 -две страницы n, n+1. Генерация k представляет собой самую старую версию набора элементов прикладных данных в памяти, тогда как генерация k+2 является последней по времени обновления версией набора элементов данных прикладной задачи. Каждая из генераций k, k+1, k+2 может, например, относиться к различным версиям программного объекта.The memory contains various generations (or versions) of a set of data elements of application programs. Each generation can be stored on one or several pages. Figure 2 shows the case where the memory includes three different generations k, k + 1, k + 2 of one set of application data elements. The example shows that generation k occupies three
Генерации k, k+1 и k+2, как указано, образуют “фрагмент данных”, причем этот термин используется здесь как ссылка на один-единственный набор элементов данных прикладной задачи. Страницы, необходимые для хранения, распределяются по любым ячейкам памяти, которые не заняты страницей, что определяется блоком 4 управления памятью. Различные генерации k, k+1, k+2 фрагмента данных, показанного на фиг.2, могут храниться или могут не храниться в памяти в последовательных ячейках памяти. Блок 4 управления памятью является блоком для принятия решения о том, где хранить различные генерации. Даже страницы в одной генерации нет необходимости хранить в последовательных страницах. Для иллюстрации этого страницы n и n+1 показаны расположенными удаленными друг от друга (показано точками между ними).Generations k, k + 1 and k + 2, as indicated, form a “data fragment”, and this term is used here as a reference to a single set of data elements of an applied problem. The pages required for storage are distributed over any memory cells that are not occupied by the page, which is determined by the
На практике память включает несколько “фрагментов данных”, т.е. несколько наборов генераций различных наборов данных.In practice, memory includes several “data fragments”, i.e. multiple sets of generations of different data sets.
В памяти, организованной и управляемой в соответствии с настоящим изобретением, элементарность обновления обеспечивается основным принципом управления, выполняемым блоком 4 управления памятью. Если данные хранятся в памяти, то данные, связанные с версией набора элементов прикладных данных, никогда не модифицируются в одной и той же области памяти. Другими словами, один раз созданная страница никогда не модифицируется. Когда последний обновленный набор элементов прикладных данных требует изменения в соответствии с прикладной программой, работающей на центральном процессорном блоке 2, новая область памяти, например новый набор страниц, распределяется блоком 4 управления памятью. В эту новую область памяти блоком 4 управления памятью заносятся любые измененные значения вместе с значениями элементов данных набора элементов данных прикладных задач, которые не были изменены. Таким образом, память 10 в любой момент времени содержит по меньшей мере одну согласованную, достоверную версию фрагмента данных.In the memory organized and managed in accordance with the present invention, the elementary nature of the update is provided by the basic control principle performed by the
Такая операция обновления может, например, относиться к смарт-карте. Хотя обновление данных в смарт-карте занимает только очень короткий промежуток времени (например, примерно 3 мс), существует небольшая вероятность, что смарт-карта будет вынута из терминала связи до завершения финансовой операции с терминалом. Таким образом, обновление может быть прервано до его завершения. Если это случится, по меньшей мере последняя обновленная версия все же будет присутствовать в памяти смарт-карты.Such an update operation may, for example, relate to a smart card. Although updating the data in the smart card takes only a very short period of time (for example, about 3 ms), there is little chance that the smart card will be removed from the communication terminal before the financial transaction with the terminal is completed. Thus, the update can be interrupted before it is completed. If this happens, at least the latest updated version will still be present in the memory of the smart card.
В одном варианте выполнения, после завершения обновления набора данных, блок 4 управления памятью освобождает область памяти, хранящую самую старую версию набора данных. Блок 4 управления памятью может, например, управлять присутствием не более 10 версий одного набора элементов данных прикладной задачи. При практической реализации прикладная программа, работающая на центральном процессорном блоке 2, взаимодействует с блоком 4 управления памятью, чтобы управлять процессом обновления ее данных, например указывая завершение обновления. Прикладная программа сообщает блоку 4 управления памятью о завершении обновления, после чего блок 4 управления памятью завершает операции записи в память 10. Такая передача сигналов при процессе обновления является обычной в системах обработки финансовых операций.In one embodiment, after the update of the data set is completed, the
Когда несколько версий набора элементов данных прикладных задач присутствуют в памяти, предыстория модификации данных может анализироваться посредством блока 4 управления памятью. Блок 4 управления памятью выполняет это посредством обеспечения средства для проверки, но не модифицирования, прикладной программой, работающей на центральном процессорном блоке 2, значений данных в предыдущих версиях.When several versions of the set of application data items are present in the memory, the history of the data modification can be analyzed by the
На фиг.3 изображена возможная структура страницы памяти в соответствии с настоящим изобретением. Предполагается, что память разделена на страницы. На фиг.3 показаны две страницы i, i+1. Каждая страница i, i+1 содержит данные прикладной программы и тег i, i+1. Значение тега предпочтительно состоит из трех частей: “идентификатора chid фрагмента”, номера gеn# генерации и номера рg# страницы. Идентификатор фрагмента служит в качестве однозначной ссылки на программную единицу хранимых данных. Счетчик gеn# генераций определяет номер версии хранимых данных. По меньшей мере две генерации указываются счетчиками gеn# генераций. Счетчик рg# страниц обозначает номер страницы, рассматриваемой в генерации набора программных данных, к которым принадлежит страница. Счетчик рg# страниц действительно позволяет, чтобы данные генерации набора данных хранились как многочисленное количество страниц.Figure 3 shows a possible structure of a memory page in accordance with the present invention. It is assumed that the memory is divided into pages. Figure 3 shows two pages i, i + 1. Each page i, i + 1 contains the data of the application program and the tag i, i + 1. The tag value preferably consists of three parts: the “identifier of the chid fragment”, the generation number # # and the page number #. The fragment identifier serves as a unique reference to the program unit of the stored data. The counter # generations determines the version number of the stored data. At least two generations are indicated by counters of gen # generations. The pg # page counter indicates the page number considered in generating the set of program data to which the page belongs. The pg # page counter really allows data set generation data to be stored as multiple pages.
В одной конкретной реализации изобретения значение тега хранится в памяти с использованием специального кодирования, например используя избыточность, например, с проверочным количеством битов, установленных в единицу. Это специальное кодирование используется блоком 4 управления памятью для обнаружения корректных/некорректных операций записи данных. Если только проверенное количество битов определяется равными единице (или высокому уровню), то блок 4 управления памятью принимает решение, что значение тега достоверное. Если это проверенное количество битов не является установленным в единицу, то блок 4 управления памятью принимает решение, что значение тега недостоверное. Это может быть вызвано, например, прерыванием питания, подаваемого на запоминающее устройство, например когда пользователь смарт-карты удаляет свою смарт-карту из терминала до завершения финансовой операции.In one particular implementation of the invention, the tag value is stored in memory using special encoding, for example using redundancy, for example, with a check number of bits set to one. This special encoding is used by the
В таком варианте выполнения, перед удалением самой старой генерации набора данных, блок 4 управления памятью определяет достоверность последней по времени обновления генерации. Конкретный способ кодирования тега может быть определен из физических характеристик используемого кремниевого запоминающего устройства. Он должен быть выбран таким, чтобы иметь очень высокую вероятность приведения к недействительному кодированию, если это запоминающее устройство не сможет записать страницу полностью. В зависимости от конструкции кристалла памяти (т.е. используемой транзисторной технологии) перед записью новых данных на страницу некоторые устройства памяти сначала заменяют значения всех ячеек памяти заданной страницы либо нулями, либо единицами. Поэтому, как указано выше, иногда лучше проконтролировать, что проверенное количество битов в теге равно единице, тогда как в других случаях может быть лучше проконтролировать наличие проверенного количества битов, равных нулю. Затем, если при контроле тег определен корректным, то это вопрос общеизвестной вероятности, так же ли правильно или нет записано содержание остальной части страницы, относящейся к тегу.In such an embodiment, before deleting the oldest generation of the data set, the
На фиг.4 суммирована последовательность операций, выполняемых блоком 4 управления памятью в одном варианте выполнения изобретения при обновлении версии хранимых прикладных данных, предписываемых прикладной программой, работающей на центральном процессорном блоке 2:Figure 4 summarizes the sequence of operations performed by the
а) распределение нового набора страниц в памяти 10, этап 40;a) the distribution of a new set of pages in memory 10,
b) определение значения тега каждой новой страницы нового набора страниц, этап 42;b) determining the tag value of each new page of the new page set,
с) запись постранично данных прикладной программы в ее измененной форме и соответствующих тегов в память 10, этап 44;c) writing the page data of the application program in its modified form and the corresponding tags into memory 10,
d) контроль для каждой записанной страницы, что результат корректный, этап 46;d) checking for each recorded page that the result is correct,
этот этап контроля может быть выполнен посредством контроля значения тега, как указано выше;this monitoring step may be performed by monitoring the tag value as described above;
е) освобождение страниц, которые содержат самую старую генерацию набора данных, этап 48.e) releasing pages that contain the oldest data set generation,
Значение тега для каждой новой страницы определяется присвоенным идентификатором chid фрагмента, значением номера gеn# генерации последней по времени обновления версии, увеличенным на 1, и номером рg# страницы.The tag value for each new page is determined by the assigned chid fragment identifier, the value of the #gene # generation number of the latest version update time increased by 1, and the pg # page number.
Страницы предпочтительно записываются в память 10 постранично, как указано на этапе с) выше. Предпочтительно, чтобы одна предварительно определенная страница из набора страниц для одного набора данных записывалась последней, тогда как все другие страницы могут записываться в любом порядке. Удобно, что предварительно определенной страницей является первая страница нового набора страниц. На практике любые страницы могут записываться частями. Например, значение тега страницы может быть записано отдельно от данных прикладной программы на странице. Предпочтительно, однако, чтобы тег предварительно определенной страницы, которая является последней страницей для записи, записывался на последнем этапе операции обновления. Это ясное указание на то, что операция обновления завершена. До тех пор пока этот тег предварительно определенной страницы не будет записан в память, данные прикладной программы, записанные в любую из новых страниц, также могут модифицироваться.The pages are preferably written to the memory 10 per page, as indicated in step c) above. Preferably, one predefined page from a set of pages for one data set is recorded last, while all other pages can be written in any order. Conveniently, the predefined page is the first page of a new set of pages. In practice, any pages can be written in parts. For example, the value of the page tag can be written separately from the application data on the page. Preferably, however, the tag of the predetermined page, which is the last page for recording, is recorded in the last step of the update operation. This is a clear indication that the update operation is complete. Until this tag of the predetermined page is stored in memory, application data recorded in any of the new pages can also be modified.
Однако необходимо заметить, что частичные записи и модификации данных страницы могут уменьшить пользу, получаемую от изобретения, т.е. общее время записи может увеличиться. Запись в энергонезависимую память 10, как ППЗУ, занимает относительно продолжительное время - в настоящее время примерно 3 мс. Поэтому лучше всего записать один раз в память 10, т.е. когда весь модифицированный набор данных будет готов для сохранения, а не записывать модифицированные части набора данных в последовательные периоды времени. Однако, если время позволяет, как часто бывает, в этой области техники обычно записывают модифицированные части набора данных в энергонезависимую память. Это имеет результатом, однако, увеличенное число операций записи, что приводит к излишнему износу энергонезависимой памяти 10.However, it should be noted that partial recordings and modifications to the page data can reduce the benefit gained from the invention, i.e. total recording time may increase. Writing to non-volatile memory 10, as an EPROM, takes a relatively long time - currently about 3 ms. Therefore, it is best to write once to memory 10, i.e. when the entire modified dataset is ready to be saved, rather than writing the modified parts of the dataset in successive periods of time. However, if time permits, as often happens, in this technical field the modified parts of the data set are usually written to non-volatile memory. This results, however, in an increased number of write operations, which leads to excessive wear of the non-volatile memory 10.
Поэтому, в соответствии с вариантом выполнения изобретения предпочтительно, чтобы все этапы, необходимые для полного изменения набора данных, выполнялись на рабочей копии набора данных в ОЗУ 8 перед записью измененного набора данных в энергонезависимую память 10.Therefore, in accordance with an embodiment of the invention, it is preferable that all steps necessary to completely change the data set are performed on a working copy of the data set in RAM 8 before writing the modified data set to non-volatile memory 10.
Запись значения тега предварительно определенной страницы в качестве последней операции в сеансе обновления является полезной мерой при реализации элементарности многостраничного обновления. Наличие или отсутствие достоверного тега в предварительно определенной странице затем служит в качестве флага “фиксации изменений”: достоверный тег в предварительно определенной странице указывает как на достоверность записанной страницы, так и на окончательное завершение всего процесса обновления.Recording the tag value of a predefined page as the last operation in an update session is a useful measure when implementing the elementary nature of a multi-page update. The presence or absence of a valid tag in a predefined page then serves as the “commit changes” flag: a valid tag in a predefined page indicates both the veracity of the recorded page and the final completion of the entire update process.
Хранение в памяти данных прикладной программы может быть выполнено еще более надежным, если данные, хранимые в памяти, могут быть адресованы физически только приложением, использующим идентификатор chid фрагмента. Память 10 тогда становится “ассоциативной памятью”.Storing the data of the application program in memory can be made even more reliable if the data stored in the memory can only be physically addressed by the application using the chid identifier of the fragment. Memory 10 then becomes “associative memory”.
Хотя блок 4 управления памятью и центральный процессорный блок 2 могут быть в одном физическом процессорном блоке, особенно выгодно для этого последнего признака, чтобы центральный процессорный блок 2 и блок 4 управления памятью были двумя физически отдельными блоками, предназначенными для связи друг с другом. Необходимо понять, что термин “физически отдельные” может все же ссылаться на блоки, производимые на одном кристалле. Тогда пространство физических адресов памяти 10 не включается в адресное пространство центрального процессорного блока 2, в особенности не включается в адресное пространство, где хранятся прикладная программа или программные команды операционной системы. Если затем блок 4 управления памятью также выполняется защищенным от несанкционированного вмешательства (как в смарт-карте), то достигается дополнительная защита от “зондирования”.Although the
Для реализации этой потенциальной дополнительной защиты, например, для смарт-карт блок 4 управления памятью может предусматривать дополнительную интерфейсную функциональность, например, включая в состав адресный регистр 54 размера тега и регистр 52 данных размера данных страницы (см. фиг.5). Этот интерфейс 52, 54 затем дополняется логическим блоком 50, чтобы выполнять логические функции для просмотра и сопоставления тегов, хранимых в памяти 10. Другими словами, логический блок 50 может считывать теги из памяти 10 и адресовать память 10 в результате анализа значения тегов.To realize this potential additional protection, for example, for smart cards, the
Интерфейс 52, 54 и связанный с ним логический блок 50 могут быть реализованы аппаратными средствами.The
Кроме того, специфические аппаратные схемы 56, 58 присутствуют соответственно в качестве интерфейсов между памятью 6, 8, 10 и логическим блоком 50 и между центральным процессорным блоком 2 и логическим блоком 50. Логический блок 50 может предусматривать специализированный адресный счетчик, объединенный с логической схемой сравнения тегов. Различные аппаратные схемы могут содержать логические схемы ассоциативной памяти, реализованные по меньшей мере на страницу памяти для хранения битов, резервируемых для размещения значения тега.In addition,
Дополнительная выгода от безопасности может быть получена с памятью, управляемой в соответствии с изобретением, когда, в дополнение к специальному кодированию для обнаружения, значение тега дополнительно кодируется с использованием криптографических методов. Такое криптографическое кодирование тега предназначается для скрытия данных прикладных задач, относящихся к структурной информации, подобной идентификатору chid фрагмента, номеру gеn# генерации, номеру рg# страницы, содержащимся в значениях тега. Криптографическое кодирование может быть выполнено любыми методами кодирования, известными специалистам в этой области техники. Одним полезным способом является использование секретных криптографических односторонних функций, в которых этапы односторонней функции связаны с секретным ключом, известным только блоку 4 управления памятью. Таким образом, блок 4 управления памятью может распознавать предыдущую генерацию применением односторонней функции один или несколько раз к кодированному значению тега этой предыдущей генерации, а затем сравнением результирующего значения тега со значением тега последней по времени обновления генерации. Это препятствует восстановлению данных прикладной программы из злонамеренного принудительного “дампа” содержимого запоминающего устройства.Additional security benefits can be obtained with memory managed in accordance with the invention when, in addition to special encoding for detection, the tag value is further encoded using cryptographic techniques. Such cryptographic tag coding is intended to hide application data related to structural information, such as the identifier of the chid fragment, the generation number # #, the page number # contained in the tag values. Cryptographic coding can be performed by any coding methods known to those skilled in the art. One useful way is to use secret cryptographic one-way functions in which the steps of the one-way function are associated with a secret key known only to the
Теговая структура памяти, как описано выше, обеспечивает несколько полезных возможностей. Например, тег может включать в себя дополнительные данные для указания принадлежности связанных данных прикладной программы. Кроме того, такие дополнительные данные в значении тега могут указывать права использования или наборы прав использования для различных пользователей данных прикладной программы. Такие различные права использования могут, например, быть связаны с различными условиями доступа к различным частям данных (прикладной) программы в памяти 10. Одна часть данных (прикладной) программы может, например, быть определена только для считывания, тогда как другая часть данных прикладной программы может быть определена с доступом к считыванию/записи.The tagged memory structure, as described above, provides several useful features. For example, the tag may include additional data to indicate ownership of related application data. In addition, such additional data in the tag value may indicate usage rights or sets of usage rights for various users of application data. Such various rights of use may, for example, be associated with different conditions of access to different parts of the data of the (application) program in the memory 10. One part of the data of the (application) program can, for example, be determined only for reading, while the other part of the data of the application can be defined with read / write access.
Изобретение эффективно обеспечивает регистрацию финансовых операций, хранимых в памяти, так как память включает предысторию обновлений конкретных элементов прикладных данных в виде последовательных генераций.The invention effectively provides the registration of financial transactions stored in memory, since the memory includes a history of updates of specific elements of application data in the form of successive generations.
Как описано выше, дополнительно количество операций записи в запоминающие устройства, управляемые в соответствии с настоящим изобретением, может быть сокращено при использовании описанного механизма регистрации обновления памяти/финансовой операции. Кроме того, уменьшенное количество операций записи, обеспечиваемое изобретением, может приводить к снижению стоимости кремниевого запоминающего устройства в результате продления его срока службы. Повышается безопасность данных, хранимых особенно в энергонезависимой памяти в защищенных от несанкционированного вмешательства однокристальных компьютерах, таких как смарт-карты. Повышение безопасности всецело может быть достигнуто программными мерами. Аппаратные меры, как блок 4 управления памятью, отдельный от центрального процессорного блока 2, могут дополнительно повысить безопасность, но они не являются строго необходимыми.As described above, in addition, the number of write operations to the storage devices controlled in accordance with the present invention can be reduced by using the described memory update / financial transaction registration mechanism. In addition, the reduced number of write operations provided by the invention can lead to a decrease in the cost of the silicon storage device as a result of extending its service life. The security of data stored especially in non-volatile memory in single-chip computers protected against unauthorized interference, such as smart cards, is enhanced. Improving security can be entirely achieved through programmatic measures. Hardware measures, such as a
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2002100204/09A RU2235356C2 (en) | 1999-06-10 | 1999-06-10 | Device for storing different versions of data sets in separate memory areas and method for refreshing data sets in memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2002100204/09A RU2235356C2 (en) | 1999-06-10 | 1999-06-10 | Device for storing different versions of data sets in separate memory areas and method for refreshing data sets in memory |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2004110744/09A Division RU2004110744A (en) | 2004-04-08 | 2004-04-08 | STORAGE DEVICE FOR DIFFERENT VERSIONS OF THE DATA SET IN SEPARATE MEMORY AREAS AND METHOD FOR UPDATING THE DATA SET IN MEMORY |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2002100204A RU2002100204A (en) | 2003-07-20 |
RU2235356C2 true RU2235356C2 (en) | 2004-08-27 |
Family
ID=33412226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2002100204/09A RU2235356C2 (en) | 1999-06-10 | 1999-06-10 | Device for storing different versions of data sets in separate memory areas and method for refreshing data sets in memory |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2235356C2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019022631A1 (en) * | 2017-07-27 | 2019-01-31 | EMC IP Holding Company LLC | Storing data in slices of different sizes within different storage tiers |
US11385822B2 (en) | 2019-07-31 | 2022-07-12 | EMC IP Holding Company LLC | Moving data from a first group of slices to a second group of slices |
US11461250B2 (en) | 2017-10-26 | 2022-10-04 | EMC IP Holding Company LLC | Tuning data storage equipment based on comparing observed I/O statistics with expected I/O statistics which are defined by operating settings that control operation |
US11461287B2 (en) | 2017-10-26 | 2022-10-04 | EMC IP Holding Company LLC | Managing a file system within multiple LUNS while different LUN level policies are applied to the LUNS |
-
1999
- 1999-06-10 RU RU2002100204/09A patent/RU2235356C2/en active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019022631A1 (en) * | 2017-07-27 | 2019-01-31 | EMC IP Holding Company LLC | Storing data in slices of different sizes within different storage tiers |
US11755224B2 (en) | 2017-07-27 | 2023-09-12 | EMC IP Holding Company LLC | Storing data in slices of different sizes within different storage tiers |
US11461250B2 (en) | 2017-10-26 | 2022-10-04 | EMC IP Holding Company LLC | Tuning data storage equipment based on comparing observed I/O statistics with expected I/O statistics which are defined by operating settings that control operation |
US11461287B2 (en) | 2017-10-26 | 2022-10-04 | EMC IP Holding Company LLC | Managing a file system within multiple LUNS while different LUN level policies are applied to the LUNS |
US11385822B2 (en) | 2019-07-31 | 2022-07-12 | EMC IP Holding Company LLC | Moving data from a first group of slices to a second group of slices |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1208434B1 (en) | Arrangements storing different versions of a set of data in separate memory areas and method for updating a set of data in a memory | |
EP3866017B1 (en) | Security check systems and methods for memory allocations | |
US6539453B1 (en) | Storage system including means for management of a memory with anti-attrition, and process of anti-attrition management of a memory | |
US6535997B1 (en) | Data integrity in smartcard transactions | |
US20090265403A1 (en) | File system | |
CN108319433B (en) | Storage management method for NOR Flash of small-memory single chip microcomputer | |
US11874741B2 (en) | Data recovery method in storage medium, data recovery system, and related device | |
JP2010072965A (en) | Portable electronic device and data processing method in portable electronic device | |
CN109685190B (en) | Power-down protection method and device for IC card | |
DK1634253T3 (en) | Process for writing, updating and allocation of memory used for writing files on a memory carrier, such a smart card | |
RU2235356C2 (en) | Device for storing different versions of data sets in separate memory areas and method for refreshing data sets in memory | |
EP3274902B1 (en) | Modification of data elements using a semantic relationship | |
CN117215488A (en) | Data storage method and device for NFC (near field communication) secure element and NFC secure element | |
JP4047281B2 (en) | How to synchronize cache memory with main memory | |
CN114328283B (en) | Counting address acquisition method, counting method, device, equipment and storage medium | |
US20230161740A1 (en) | A device, a method of performing a file transaction, and a method of performing an access operation | |
JP2003036209A (en) | Nonvolatile memory and data rewriting method thereof | |
EP3504627B1 (en) | Read operation redirect | |
RU2002100204A (en) | STORAGE DEVICE FOR DIFFERENT VERSIONS OF THE DATA SET IN SEPARATE MEMORY AREAS AND METHOD FOR UPDATING THE DATA SET IN MEMORY | |
CN118035997A (en) | Method and device for recovering data in storage device | |
CN114297732A (en) | Monotonic counter, reading method, counting method, device, apparatus and medium | |
CN115114182A (en) | Method, system, terminal and storage medium for improving garbage recovery precision |