The invention relates to a method for writing memory sectors in individually-deletable memory blocks, comprising a number of memory sectors, whereby access to the physical sectors is achieved by means of an allocation table for address conversion of a logical address into a physical block address and a physical sector address, and whereby when a sector write command is to be carried out, which relates to an already written sector, the writing takes place to an alternative memory block by means of an altered address conversion.
The widely used non volatile semiconductor memory (flash memory) are organized in blocks and these are again organized in sectors, whereby a block consists e.g. of 256 sectors with 512 bytes each. It is characteristic for this type of memory that new information can only be written per sector, to sectors that have been deleted before. The deletion, in each case, is carried out for all sectors of one block at a time. Writing a sector to the memory takes longer than reading it and a deletion operation of a block requires a long time, e.g. several milliseconds.
The patent application DE 102 27 256.5 describes a method for searching an alternative block to write a sector, and writing the new information to its sectors. A bit list, operating as a sector mask, notes which sectors were newly written to the respective alternative block. If a sector needs to be written to for a second time, a new alternative block is searched for and written to. It is a disadvantage of this method, that even after only a few writing procedures to one alternative block a new alternative block has to be searched for and sectors have to be copied to another location.
Furthermore, newer memory chips possess the characteristic that the sectors within a block can only be written to in a sequentially ascending manner. Thus, if non-successive sectors are to be written to, also a new alternative block must be searched for and sectors already written to have to be copied. The copying processes are relatively slow writing procedures, which impair the speed of the memory system. From the U.S. Pat. No. 5,835,935 it is known to use the next free sector in a block in each case to use for writing requirements. Thus the blocks are sequentially written to, but in each case the table of allocation between the logical and the physical sector address is adapted, each adaptation requiring a further writing procedure.
It is the object of the invention to reveal a method that avoids the described disadvantages and improves the speed of the memory system.
This object is met in such a way that the writing processes for sectors in the alternative memory block are carried out sequentially and the position of the relevant sector in the alternative block is stored in the sector table.
Advantageous embodiments of the invention are presented in the subclaims.
When writing a sector, it is addressed by a logical address. This address can be split up into a logical sector address and a logical block address. The memory system is organized as physical memory blocks, which can be deleted as a whole, and in physical sectors, which can be written to individually. The logical block addresses are assigned to physical memory block addresses in an allocation table. The logical sector addresses are used directly as physical sector addresses, without an address conversion. Some memory blocks are reserved as alternative blocks, which can be used in the writing operations. An alternative block is assigned to the respective memory block which is to be written to, and the addresses of the alternative blocks and the corresponding lists, indicating which sectors have been written, are kept in the internal indicator memory of the memory controller which is part of the memory system. Hence it is favourable to sequentially write the changed sectors of a block to the corresponding alternative block, and to organize the list as a sector table, indicating to which sector of the alternative block the respective memory sector was written.
In one execution of the invention the sector table is organized as an index table, which is accessed with the physical sector address (which equals the logical sector address). The respective table entry at this position indicates the sector in the alternative block, to which the corresponding memory sector was written.
At the beginning the index table is initialized with the highest possible values (FF). Such a value indicates that the corresponding sector is still located unchanged in the original memory block.
In another execution of the sector table it is organized as a search table, indicating in each table entry the physical sector address with the respective valid sector position in the alternative block. Thereby it is favourable to organize the search table according to physical sector addresses in order to quickly find the current position of a memory sector.
In both executions of the sector table it is favourable to also store the position of the sector in the alternative block in the administration of the sector. Thus, when the memory system is restarted, the sector table can again be reconstructed from the sector positions stored in the administrative part in the indicator memory of the memory controller. During such a restart the highest item number of the corresponding sector is then transferred to the sector table.
In the execution of the method, a typical number of sectors for a memory block is 256 sectors. If executed with an index table, the latter would 256 byte. If executed with a search table, this table would then have a length of 32 byte.
In an execution in which the table has 32 bytes, the sector mask for 256 sectors can be overlaid with a search table for 16 sectors.
The corresponding sector table is filled by a number of writing operations to an alternative block. As soon as the end of the sector table is reached, a new alternative block is searched for, to which the valid sectors from the original memory block together with those from the previous alternative block are copied. Afterwards this block takes the place of the original memory block, as the entry in the allocation table is updated accordingly. The previous memory blocks and alternative blocks are cleared for deletion and, after deletion, serve as new alternative blocks.
In order to establish the most favourable write administration for the respective memory block, strategy indicator is carried along for each logical block address in the allocation table. This indicator shows, whether the last writing operations was carried out with a bit-by-bit sector mask or with a byte-by-byte sector table. This type of administration for the alternative block is also maintained for the next writing operations. Favourably, the strategy indicators are first initialised with the remark “sector mask”, since most writing operations are carried out in a purely sequential manner, in which case administration by means of a sector mask is the fastest.
However, with memory systems of the type “FAT file system” it is favourable to initialise the memory blocks, containing the FAT, immediately with the strategy indicator “sector table”, since this type of memory system carries out frequent writing operations to the same memory sectors. Thus the speed of the memory system is increased from the beginning.
If during the operation of the memory system a more frequent overwriting of individual memory sectors are is stated, it is favourable to change the administration of the alternative block from a sector mask to a sector table. Also the strategy indicator in the allocation table is then adjusted accordingly. If there are no duplicates of sectors, it is favourable to change to the sector mask for administration of the memory block.
An exemplary embodiment of the invention is described by the figures.
In
| Number | Date | Country | Kind |
|---|---|---|---|
| 10349595.9 | Oct 2003 | DE | national |
| Filing Document | Filing Date | Country | Kind | 371c Date |
|---|---|---|---|---|
| PCT/EP04/51975 | 8/31/2004 | WO | 4/21/2006 |