Method, device and computer program for writing and reading non-volatile electronic memory and storage device and semiconductor component
Patent Information
- Application Number
- CN202210367906.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-04-09
- Filing Date
- 2022-04-08
- Publication Date
- 2026-10-30
- Estimated Expiration
- 2042-04-08
AI Technical Summary
然而,这种“分页(Paging)”方法缩放得较差,因为一次性可编程存储器必须设计得明显更大以用于每个附加的页面
Smart Images

Figure CN115202570B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a method for writing to non-volatile memory. It also relates to a method for reading from non-volatile electronic memory. Furthermore, it relates to an apparatus for writing to non-volatile memory. Finally, it relates to an apparatus for reading from non-volatile electronic memory. Finally, it relates to a computer program product. Background Technology
[0002] In integrated semiconductor circuits (ICs), values often need to be stored on a chip-by-chip basis, for purposes such as calibration. If these values are known to remain unchanged, one-time programmable memory (e.g., one-time programmable (OTP) memory or programmable read-only memory (PROM)) can be used for this purpose. These memories typically offer advantages in terms of area requirements, or storage density and power consumption, compared to reprogrammable memories.
[0003] A drawback of one-time programmable memories is that, for example, during recalibration, subsequent value changes are impossible without additional measures, which are required for this purpose. The memory can, for example, be designed to be significantly larger and divided into pages. By writing a new page, the old value of a previously written page can be replaced. However, this "paging" method scales poorly because the one-time programmable memory must be designed to be significantly larger for each additional page. Summary of the Invention
[0004] The objective of this invention is to provide an improved method for writing to and reading from non-volatile electronic memory.
[0005] According to the first aspect, this task is solved using a method for writing data words and associated index information into a non-volatile electronic memory, wherein the non-volatile electronic memory is initially filled only with empty data frames, and the empty data frames can be overwritten by multiple data frames and / or a single data frame.
[0006] - Wherein, a multi-data frame includes an optional number of sequentially stored data words and a multi-data frame header, wherein the multi-data frame header stores a frame type flag, the number of data words, and a selectable starting index, so that each data word can be assigned its own index value from an index range by incrementing or decrementing, wherein the index range is defined by the number and the starting index;
[0007] - Wherein, a single data frame includes a data word and a single data frame header, wherein the single data frame header stores a frame type flag and a selectable index value for the data word of the single data frame;
[0008] Its features are,
[0009] - Sequentially overwrite the empty data frames, and
[0010] - Write at least a portion of the data words to be stored and the associated index information into at least one multi-data frame, wherein the number of data words and the starting index of the data words in the multi-data frame are selected individually and written into the data header of the multi-data frame.
[0011] Advantageously, the method can be used, for example, in places where configuration data must be changed, thereby compensating for the manufacturing dispersion of electronic hardware in a simple manner with low overhead. In non-volatile electronic memory, data frames do not overlap due to sequential writing, which allows the latest useful data to be read separately during downstream read operations.
[0012] According to another aspect, the task is solved using a device configured to perform the proposed method.
[0013] According to another aspect, the task is solved using a method for reading non-volatile electronic memory, wherein stored frames are read sequentially in the form of multiple data frames, single data frames, and empty data frames, and the method includes the following steps for each frame to be read:
[0014] - The frame type is determined based on header information, especially on the number of frame type markers (Rahmentyp-Markers) and / or data words.
[0015] In the case of multiple data frames, each data word is read sequentially, and the assigned index value is determined based on the starting index stored in the multi-data frame header and the number of data words.
[0016] In the case of a single data frame, read a data word along with the index value stored in the single data frame header, and
[0017] - Store each read data word and its associated index value in a rewritable data memory, either as a new record if a record with the associated index value does not yet exist in the rewritable data memory, or by overwriting an existing record with the same index value.
[0018] In this way, the non-volatile memory is subsequently read sequentially, similar to the sequential writes that occurred previously. For example, in this way, useful data can be replaced, for instance, as calibration data, so that the current calibration data is written into the volatile memory and used. The data memory here can be volatile memory or a register.
[0019] The reading is therefore performed in a manner and method in which it is clear how the stored contents of the non-volatile electronic memory should be interpreted. This method can be implemented, for example, in hardware (e.g., in a memory controller) and / or in software.
[0020] According to another aspect, the task is solved using a device for reading non-volatile electronic memory, wherein the device is configured to perform the proposed method for reading non-volatile electronic memory.
[0021] According to another aspect, the task is solved using a computer program with program code units.
[0022] According to another aspect, the task is solved using a storage device comprising at least one non-volatile electronic memory initially filled only with empty data frames and written using the proposed method for writing to the non-volatile electronic memory, such that individually addressable data words and associated index information are stored in sequentially stored multiple data frames and / or single data frames.
[0023] Advantageous extensions of the method and the device are described below.
[0024] An advantageous extension of the method involves writing at least a portion of the data word to be stored and associated index information into at least one single data frame, wherein the index value of a data word within the single data frame is individually selected and written into the single data frame header. Advantageously, the writing order of the non-volatile electronic memory, or the type of data frame used, is irrelevant.
[0025] An advantageous extension of the method involves selecting the number of data words and the starting index of the data words in the multi-data frames to be written such that the index range of the multi-data frames to be written does not intersect with the index range of already written multi-data frames and / or with the index values of a single data frame. Thus, by using disjoint index ranges, or index values, efficient full utilization of non-volatile memory is supported using both multi-data frames and single data frames. Here, the index values do not need to be directly adjacent to each other; that is, the index ranges do not need to intersect. Index values can be freely assigned to the multi-data frames. For each data frame, the number and index are completely independent and can be freely chosen.
[0026] Another advantageous extension of the method sets the number of data words and the starting index of the data words, wherein the number of data words and the starting index of the data words in the multiple data frames to be written are selected such that the index range of the multiple data frames to be written at least partially intersects with the index range of the multiple data frames already written and / or with the index value of at least one single data frame. This addresses the case where the index ranges overlap or intersect.
[0027] Another advantageous extension of the method is to select the index value of the data word of the single data frame to be written such that the index value is different from all the index values of the data words of the multiple data frames and / or single data frames that have been written.
[0028] Another advantageous extension of the method is to select the index value of the data word to be replaced in at least one written multi-data frame and / or single data frame as the index value for the single data word to be written.
[0029] Advantageously, this method allows for the writing of individual data words using the same indexing order, thereby advantageously minimizing the storage space requirements of the non-volatile electronic memory. Advantageously, the method can be executed using different types of data frames, thus enabling efficient updating of configuration data, for example, based on data range. The more useful data synthesized in a frame, the better the method scales.
[0030] Another advantageous extension of the method is configured such that at least one multi-data frame is invalidated by an identifier in the multi-data frame header, and / or at least one single data frame is invalidated by an identifier in the single data frame header. Advantageously, this allows for adherence to hardware-defined startup times.
[0031] Another advantageous extension of the method is provided in which at least one multi-data frame is invalidated by overwriting the starting index stored in the multi-data frame header with a first index value defined as invalid and / or by setting an invalidation flag in the multi-data frame header.
[0032] Another advantageous extension of the method involves invalidating at least one single data frame by overwriting an index value stored in the header of the single data frame with a second index value defined as invalid, and / or by setting an invalidation flag in the header of the single data frame. In this manner, different possibilities for invalidating different data frames are provided.
[0033] Another advantageous extension of the method is to check the validity of the multi-data frames and / or single data frames to be read during reading, and to skip invalid multi-data frames or single data frames.
[0034] Another advantageous extension of the method is that the reading of the non-volatile electronic memory continues only until an empty data frame is identified as the next frame to be read. This specifies the end of the reading process, whereby the reading process can be terminated when an empty data frame is identified.
[0035] The invention will now be described in detail with reference to several accompanying drawings, taking into account further features and advantages. The drawings are primarily intended to illustrate principles essential to the invention.
[0036] The features of the disclosed method are similarly derived from the corresponding features of the disclosed device, and vice versa. This in particular means that the features, technical advantages, and embodiments associated with the proposed method are derived in a similar manner from the corresponding embodiments, features, and advantages associated with the proposed device, and vice versa. Attached Figure Description
[0037] As shown in the attached figure:
[0038] Figures 1 to 3 Data frames used for the proposed method; and
[0039] Figure 4 A block diagram illustrating the data flow or the overall system principle. Detailed Implementation
[0040] In the sense described below, the width of a data element, or the number of data bits, will be understood in general as meaning that such an element can have a defined number of data bits. Therefore, the terms "data header" and "data word" can have any defined number of data bits without general limitation.
[0041] The proposed method advantageously enables the execution of individual updates in the same way as the efficient initialization of data words, where multiple data words are typically corrected rather than a single data word.
[0042] By properly arranging data words, the proposed method can further reduce overhead and thus achieve improved memory utilization.
[0043] Advantageously, the proposed method offers greater flexibility even after the IC is completed. Advantageously, the proposed method can be implemented simply and thus in a resource-efficient manner in hardware (chip surface) and / or software (program code).
[0044] Instead of predefined storage areas (e.g., pages, index areas, value areas, etc.), data frames are used, which are stored or read from non-volatile memory linearly or sequentially—that is, in continuously increasing or decreasing addresses. Each data frame consists of a data header and optionally one or more data words. Data frame types are distinguished from each other by the data header, i.e., they can be explicitly decoded. Data words contained in a data frame can be explicitly assigned to data words DW(0)…DW(N-1) stored in volatile memory by index, where N is the total number of data words in volatile memory. The following reference is proposed. Figures 1 to 3 The following data frame types are described in detail.
[0045] The non-volatile memory 100, which is capable of executing the proposed methods for writing and reading, initially (e.g., from the time of manufacture) contains either only 0s or only 1s.
[0046] Figure 1 An empty data frame (No-Data-Frame) 10 with a data header word HW1 is shown, where the data header word contains a value or quantity i = 0. Since only 1s can typically be written in a one-time programmable memory, this type of data frame can be completely overridden.
[0047] An empty data frame 10 can be considered a defined boundary data element or a termination condition. From the moment the defined boundary data element or termination condition is identified, no further reading of the non-volatile electronic memory 100 will be performed during the reading process.
[0048] Figure 2 A single data frame 30 is shown, which differs from the previously mentioned data frame type 10 in that it contains a frame type marker M in its header. Generally speaking, the frame type must be able to be explicitly identified in some way from the header.
[0049] Figure 3 The schematic structure of a bulk data frame 20 is shown. The bulk data frame differs from the empty data frame 10 in that it contains a frame type marker M in its header. Furthermore, the bulk data frame 20 has two header words, HW1 and HW2, where the first header word HW1 contains a quantity i > 0. It is not necessary to have two header words; this is only an example in this embodiment. This is also permitted, for example, if information i and n match in a common word in another example.
[0050] The number i of data words is stored in the first data header word HW1, and the start index n is stored in the second data header word HW2. Following the data header with the two data header words HW1, HW2 are the data words DW(n)...DW(n+i-1), starting from the start index n.
[0051] The multi-data frame 20 has higher efficiency than the single-data frame 30, because the multi-data frame requires less overhead for the data words DW(n)...DW(n+i-1), wherein the more data words DW(n)...DW(n+i-1) that are integrated in one multi-data frame 20, that is, the larger i can be selected, the better scaling of the data words DW(n)...DW(n+i-1) can be achieved.
[0052] For example, the frame type flag M can be configured as the most significant bit of the data header word HW1. The data header word HW1 of the single-data frame 30 contains the start index n of the single data word DW(n) stored immediately after the data header word HW1.
[0053] The start indices of the multi-data frame 20 and the single-data frame 30 can be, for example, addresses, by means of which the assignment of the data words of the data frames in the non-volatile electronic memory 100 to the data words DW(0)...DW(N-1) of the volatile memory 200 is implemented. However, other types of start index n are also conceivable, which allow the mentioned assignment of data words, for example via an assignment table (lookup table).
[0054] In the case where the data frames have completely or partially overlapping target value indices, when two data frames are read consecutively from the non-volatile electronic memory 100 and written to the volatile memory 200, some data words of the first data frame will later be overwritten by the subsequent data frame. In this way, the data words DW(n)...DW(n+i-1) can be simply updated in the volatile memory 200. As a result, the data words DW(n)...DW(n+i-1) can subsequently be changed in a simple manner.
[0055] This possibility is particularly advantageous if only a single value of the configuration data is to be changed subsequently (for example to take account of aging effects of the hardware, etc.). An update also occurs when two frames do not share the same start index but still cover a common subset. This is particularly the case when the initial multi-data frame covers all target values DW(0)...D(N-1) and a subsequently written smaller multi-data frame with i<N only updates a subset of all target values.
[0056] As already mentioned, the non-volatile electronic memory 100 by default There are empty data frames 10. In this way, none of the data words DW(0)...DW(N-1) in the volatile memory are overwritten. These empty data frames 10 can be overwritten by a single data frame or multiple data frames 20, 30. These empty data frames also serve as an indicator for when no other data word follows. If all data words DW(0)...DW(N-1) should be set initially, multiple data frames 20 with i=N and n=0 can be used for this purpose, so that all data words DW(0)...DW(N-1) are set once. If a single data word DW(n) should be updated later, a single data frame 30 can be appended for this purpose.
[0057] However, it is typically necessary to update multiple data words DW(n)…DW(n+i-1) at once (e.g., in the case of a calibration system). The overhead generated by multiple single data frames 30 would be non-negligible in this case. However, if these data words DW(n)…DW(n+i-1) are arranged in a suitable manner, i.e. with consecutive indices, the advantages of the proposed method become apparent:
[0058] Now, instead of multiple single data frames 30, a single multi-data frame 20 can be used, where for i target values, instead of i data headers, only a single data header is generated.
[0059] In another option, it is possible to configure the individual frames in the non-volatile electronic memory 100 to be invalidated afterward. This occurs, for example, by setting the starting index n of the useful data frame to its maximum value afterward, which is all 1s in binary representation. This ensures that when reading from the non-volatile memory 100, it is determined that the mentioned data word DW(n)…DW(n+i-1) should not be read from the frame in the non-volatile memory 100 and should not be written to the volatile memory 200. This is contingent upon the maximum value that can be represented by n being greater than the number of data words N in the volatile memory, i.e., the maximum value does not correspond to a valid index value.
[0060] Therefore, it is advantageous to prevent the recording of unfavorable configuration data into sensitive hardware during this period, which could lead to hardware instability (e.g., voltage, current, etc.). The invalidation of this definition of data words DW(n)…DW(n+i-1) in the non-volatile memory 100 also advantageously supports adherence to the defined startup time.
[0061] Figure 4A schematic block diagram of the proposed method flow is shown, which utilizes the proposed device to perform the method. Device 40 for writing to the non-volatile electronic memory 100 can be seen. Device 50 for reading from the non-volatile electronic memory 100 can also be seen, wherein data words are extracted from useful data frames stored in the non-volatile electronic memory 100 and copied to volatile electronic memory 200 (e.g., RAM or registers). Empty data frames 10, which define the end of useful data regions in the non-volatile electronic memory 100, can also be seen in the non-volatile electronic memory 100.
[0062] The proposed method for writing data words and associated index information into a non-volatile electronic memory 100 is configured such that the non-volatile electronic memory 100 is initially (e.g., from the factory) filled only with empty data frames 10, and the empty data frames 10 can be overwritten by multiple data frames 20 and / or a single data frame 30.
[0063] Here, a multi-data frame 20 includes a selectable number i of sequentially stored data words and a multi-data frame header, wherein the multi-data frame header stores a frame type flag, the number i of data words, and a selectable starting index n, thereby assigning each data word its own index value from an index range by incrementing or decrementing, wherein the index range is defined by the number i and the starting index n.
[0064] A single data frame 30 includes a data word and a single data frame header, wherein the single data frame header stores the frame type flag M and the selectable index value of the data word of the single data frame 30.
[0065] The configuration sequentially overwrites the empty data frames 10 of the non-volatile electronic memory 100, wherein at least a portion of the data words to be stored and the associated index information are written into at least one multi-data frame 20, wherein the number i of data words and the starting index n of the data words in the multi-data frame 20 are individually selected and written into the multi-data frame data header having two data header words HW1, HW2.
[0066] Preferably, the number of data words i and the starting index n of the data words in the multi-data frame 20 to be written are selected in such a way that the index range of the multi-data frame 20 to be written does not intersect with the index range of the multi-data frame 20 already written and / or with the index value of the single data frame 30.
[0067] Furthermore, in an alternative variant, the number of data words i and the starting index n of the data words in the multi-data frame 20 to be written can be selected such that the index range of the multi-data frame 20 to be written intersects at least partially with the index range of the multi-data frame 20 already written and / or with the index value of at least one single data frame 30.
[0068] In another alternative, the starting index or index value of the data word to be written in a single data frame 30 can be selected such that the starting index or index value is different from all the index values of the data words of the multiple data frames 20 and / or the single data frame 30 that have been written.
[0069] Preferably, it is also possible to set the index value of the data word to be replaced in at least one written multi-data frame 20 and / or single data frame 30 as the starting index or index value for the data word in the single data frame 30 to be written.
[0070] A preferred variant for invalidating useful data involves invalidating at least one multi-data frame 20 by an identifier in the multi-data frame header. Alternatively, at least one single data frame 30 can be invalidated by an identifier in the multi-data frame header. Here, at least one multi-data frame 20 can be invalidated by overwriting the starting index n stored in the multi-data frame header with a first index value defined as invalid and / or by setting an invalidation flag in the multi-data frame header.
[0071] In addition, in order to enable data invalidation, at least one single data frame 30 is invalidated by overwriting the index value n stored in the single data frame header with a second index value defined as invalid and / or by setting an invalidation flag in the single data frame header.
[0072] A method for reading a non-volatile electronic memory is implemented using device 50, wherein stored frames are read sequentially in the form of multiple data frames (20), single data frames (30), and empty data frames 10, wherein the method includes the following steps for each frame to be read:
[0073] The frame type is determined based on header information, particularly based on the frame type marker and / or the number of data words, i.
[0074] - In the case of multiple data frames 20: each data word is read sequentially and the assigned index value is determined based on the starting index n and the number of data words i stored in the multiple data frame header.
[0075] - In the case of a single data frame 30: Read the data word along with the index value stored in the single data frame header, and
[0076] Each read data word, along with its associated index value, is stored in a rewritable (i.e., volatile) data memory. The storage is performed either as a new record if the associated index value does not yet exist in the rewritable data memory, or by overwriting an existing record with the same index value.
[0077] The proposed devices 40, 50 can each be configured at least partially in the form of software and in the form of hardware, respectively. The two devices 40, 50 advantageously "understand" the data formats 10, 20, 30 of the non-volatile electronic memory 100 and are capable of interpreting said data formats in a correct manner for proper use in the volatile electronic memory 200.
[0078] Due to the specific data frame, in the case of reading the first data header word of the data frame from the non-volatile electronic memory 100, the type of the involved data frame is already known.
[0079] Advantageous applications of the proposed method are set out below:
[0080] A total of N=70 data words (e.g. bytes) shall be stored in a 3-axis acceleration sensor. The non-volatile electronic memory 100 has, for example, 128 bytes, wherein the data header format set forth above is used. With the proposed method, 72 bytes are required to initialize all data words by means of a multi-data frame with i=N and n=0, since the data header also needs to be stored in addition to i=N data words. However, if some of the data words DW(0)...DW(N-1) are arranged at the end of the index list as reserves for the future (e.g. in the form of reserved registers), these data words do not necessarily have to be written by means of the proposed method, and the initial multi-data frame 20 can be made shorter, where i<N. If the reserved registers remain permanently unused, the storage area that has become free as a result can also be permanently used for other purposes. Starting from two such reserved target values, the two methods are already balanced.
[0081] The 36 hitherto unwritten bytes of the non-volatile electronic memory 100 still contain empty data frames after all N data words have been initialized, and these empty data frames can be overwritten at a later point in time.
[0082] After the initial configuration, the calibration values shall be determined anew and corrected at a later point in time. For a 3-axis acceleration sensor, this will involve, for example, six bytes. In the case of using the multi-data frame 20, eight bytes in the non-volatile memory (two data header words HW1, HW2, i=6 data words) will be required in order to correct the calibration values. After this correction step, the non-volatile electronic memory 100 will still contain 28 empty data frames, which can be overwritten for further corrections.
[0083] It can be seen that the more adjacent data words DW(n)...DW(n+i-1) that must be corrected at once, the more efficient the proposed method becomes. Here, if necessary, data words that do not need to be changed can also be overwritten with the same value, as this requires only a single multi-data frame 20 instead of two. The higher storage efficiency of the proposed method enables the design of a smaller non-volatile electronic memory 100, thereby advantageously reducing silicon area and power consumption. Alternatively, more correction steps can be provided with the same memory size.
[0084] Hardware or software solutions for reading stored content and writing target values must be designed for such products. However, the proposed method is very flexible in this regard. The size of the non-volatile electronic memory used (over 100) and the number of data words DW(0)…DW(N-1) play a limited role. In the proposed method, advantageously, only a small match (e.g., the number of memory addresses) is required to allow the hardware or software solution to be adapted to other products and reused.
[0085] In the proposed method, the non-volatile electronic memory 100 can be read and processed sequentially, linearly, or continuously in a simple manner, wherein the reading process can be terminated immediately when an empty data frame 10 is identified. Otherwise, it is only necessary to distinguish between single data frames and multiple data frames 20 and 30. The target address and target data can also be easily obtained without jumps.
[0086] The proposed method is not complex, yet it still offers great flexibility. Advantageously, it can be implemented simply, i.e. with few errors, while simultaneously requiring a small area (in hardware solutions) or program memory (in software solutions).
[0087] Depending on the memory word width and the number of possible data words, the value of the starting index n and the number i in the multiple data frames 20 can also be stored in the memory word.
[0088] Conversely, in the case of a large number of data words, multiple storage locations may be needed for indexing n and the quantity i.
[0089] If the data word is larger than the memory word, multiple memory words can be used for each target value; however, preferably, the non-volatile electronic memory 100 has been designed to be optimized for the data word size.
[0090] If one of the data words is a checksum, then single and multiple data frames can be modified as follows: the new checksum value is always appended to the frame type. This saves the overhead of otherwise appending a single data frame needed for the checksum, but makes the method more strongly suited to the correct system, which reduces reusability.
[0091] If the non-volatile electronic memory 100 contains 1 instead of 0 by default, the method can be implemented similarly by defining the empty data frame 10 and the marker M in 10, 20 and 30 in a correspondingly complementary manner.
[0092] Advantageously, the proposed method for reading the non-volatile memory 100 can be used for starting or booting up electronic systems. This method is particularly advantageous in systems that are highly area-sensitive and have a very limited area available for the non-volatile memory, such as sensor systems.
[0093] As a result, this enables advantageously high storage density of non-volatile memory and efficient utilization of these limited resources. Advantageously, in this way, configuration data can be changed retroactively in a simple manner without having to replace the device with highly integrated non-volatile memory. Advantageously, this method supports a trade-off between flexibility and storage efficiency.
[0094] Advantageously, the proposed method can be implemented in hardware and / or software, which runs on a device used to create access permission schemes. This achieves simple adaptability of the method.
[0095] Those skilled in the art will modify and / or combine the features of the present invention in a suitable manner without departing from the core of the present invention.
Claims
1. A method for writing data words and associated index information into a non-volatile electronic memory (100), wherein, The non-volatile electronic memory (100) is initially filled only with empty data frames (10), and the empty data frames (10) can be covered by multiple data frames (20) and / or a single data frame (30). - Wherein, a multi-data frame (20) includes a selectable number (i) of sequentially stored data words and a multi-data frame header, wherein the multi-data frame header stores a frame type flag, the number (i) of the data words and a selectable starting index (n), so that each data word can be assigned its own index value from an index range by incrementing or decrementing, wherein the index range is defined by the number (i) and the starting index (n); - Wherein, a single data frame (30) includes a data word and a single data frame header, wherein the single data frame header stores a frame type flag and an index value that can be selected for the data word of the single data frame (30); Its features are, - Sequentially overwrite the empty data frame (10), and - Write at least a portion of the data words to be stored and the associated index information into at least one multi-data frame (20), wherein the number (i) of data words and the starting index (n) of the data words of the multi-data frame (20) are selected individually and written into the data header of the multi-data frame.
2. The method according to claim 1, wherein at least a portion of the data word to be stored and the associated index information is written into at least one single data frame (30), wherein, Select the index value of a single data word in the single data frame (30) and write it into the data header of the single data frame.
3. The method according to claim 1 or 2, wherein the number (i) of data words and the starting index (n) of the data words of the multi-data frame (20) to be written are selected such that the index range of the multi-data frame (20) to be written does not intersect with the index range of the multi-data frame (20) already written and / or does not intersect with the index value of the single data frame (30).
4. The method according to any one of claims 1 or 2, wherein the number (i) of data words and the starting index (n) of the data words of the multi-data frame (20) to be written are selected such that the index range of the multi-data frame (20) to be written intersects at least partially with the index range of the multi-data frame (20) already written and / or with the index value of at least one single data frame (30).
5. The method according to any one of claims 2 to 4, wherein the index value of the one data word of the single data frame (30) to be written is selected such that the index value is different from all the index values of the data words of the multiple data frames (20) and / or the single data frame (30) that have been written.
6. The method according to any one of claims 2 to 4, wherein the index value of the data word to be replaced of at least one written multi-data frame (20) and / or single data frame (30) is selected as the index value of the single data word to be written in the single data frame (30).
7. The method according to any one of claims 1 to 6, wherein at least one multi-data frame (20) is invalidated by an identifier in the multi-data frame header, and / or, in the method, at least one single data frame is invalidated by an identifier in the multi-data frame header.
8. The method according to claim 7, wherein at least one multi-data frame (20) is invalidated by overwriting the starting index stored in the multi-data frame header with a first index value defined as invalid and / or by setting an invalidation flag in the multi-data frame header.
9. The method according to claim 7, wherein at least one single data frame (30) is invalidated by overwriting an index value stored in the single data frame header with a second index value defined as invalid and / or by setting an invalidation flag in the single data frame header.
10. A device (40) for writing to a non-volatile electronic memory (100), wherein, The device (40) is configured to perform the method according to any one of claims 1 to 9.
11. A computer program product having program code units, the computer program product being configured to perform the method according to any one of claims 1 to 9 when the computer program product is run on the device (40) according to claim 10 or stored on a computer-readable data carrier.
12. A storage device comprising at least one non-volatile electronic memory initially filled only with empty data frames (10) and written using the method according to any one of claims 1 to 9, such that individually addressable data words and associated index information are stored in sequentially stored multiple data frames (20) and / or single data frames (30).
13. A method for reading the non-volatile electronic memory according to claim 12, wherein, The stored frames are read sequentially in the form of multiple data frames (20), single data frames (30), and empty data frames (10), and the method includes the following steps for each frame to be read: - The frame type is determined based on the header information, which includes a frame type marker and / or the number of data words (i). - In the case of multiple data frames (20), each data word is read sequentially and the associated index value is determined based on the starting index (n) stored in the data header of the multiple data frames and the number of data words (i). In the case of a single data frame (30), a data word is read along with the index value stored in the single data frame header, and - Store each read data word along with its associated index value in a rewritable data storage device. Alternatively, if the associated index value does not yet exist in the rewritable data storage, it can be stored as a new record. Alternatively, it can be stored by overwriting an existing record with the same index value.
14. The method according to claim 13, wherein, Check the validity of the multi-data frames (20) and / or single data frames (30) to be read, and skip invalid multi-data frames (20) and / or single data frames (30).
15. The method according to any one of claims 13 or 14, wherein, The reading of the non-volatile electronic memory continues only until an empty data frame (10) is identified as the next frame to be read.
16. A device (50) for reading a non-volatile electronic memory (100), wherein, The device (50) is configured to perform the method according to any one of claims 13 to 15.
17. A computer program product having program code units, the computer program product being configured to perform the method according to any one of claims 13 to 15 when the computer program product is run on the device (50) according to claim 16 or stored on a computer-readable data carrier.
18. A semiconductor component comprising a MEMS sensor element and an ASIC element having a non-volatile electronic memory according to claim 12 for storing component-specific data.
19. The semiconductor component according to claim 18, wherein, The semiconductor component is an integrated sensor.
20. The semiconductor component according to claim 18, wherein, The component-specific data includes calibration data.
Citation Information
Patent Citations
Index management in a flash memory
CN107807886A
Storage apparatus and method for controlling storage apparatus
US20110296062A1